framefields 2.4.2 → 2.5.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 (504) hide show
  1. package/README.md +26 -1
  2. package/dist/audio/index.d.mts +4 -4
  3. package/dist/audio/index.mjs +13 -13
  4. package/dist/{audio-DJeVoE8b.mjs → audio-BluXgSeG.mjs} +1 -1
  5. package/dist/{audio-DJeVoE8b.mjs.map → audio-BluXgSeG.mjs.map} +1 -1
  6. package/dist/{audio-DHuEMOtQ.d.mts → audio-C1A4N3Wh.d.mts} +3 -3
  7. package/dist/{audio-DHuEMOtQ.d.mts.map → audio-C1A4N3Wh.d.mts.map} +1 -1
  8. package/dist/{audio-Bb31xJuX.mjs → audio-CMHpfOoS.mjs} +4 -4
  9. package/dist/{audio-Bb31xJuX.mjs.map → audio-CMHpfOoS.mjs.map} +1 -1
  10. package/dist/cli.d.mts +1 -0
  11. package/dist/cli.mjs +221 -0
  12. package/dist/cli.mjs.map +1 -0
  13. package/dist/components/index.d.mts +12 -0
  14. package/dist/components/index.mjs +49 -0
  15. package/dist/{dist-CspOG4V1.mjs → dist-BBUrGwqd.mjs} +24 -3
  16. package/dist/{dist-CspOG4V1.mjs.map → dist-BBUrGwqd.mjs.map} +1 -1
  17. package/dist/{dist-SB9qfAko.mjs → dist-CQZ5_60A.mjs} +2 -2
  18. package/dist/{dist-SB9qfAko.mjs.map → dist-CQZ5_60A.mjs.map} +1 -1
  19. package/dist/{dist-0QGroRYZ.mjs → dist-C_SMBmHr.mjs} +1 -1
  20. package/dist/{dist-0QGroRYZ.mjs.map → dist-C_SMBmHr.mjs.map} +1 -1
  21. package/dist/{dist-ClyC_d66.mjs → dist-DFeF-ygz.mjs} +117 -40
  22. package/dist/dist-DFeF-ygz.mjs.map +1 -0
  23. package/dist/{dist-CxGfrigI.mjs → dist-QMVy31gR.mjs} +23 -4
  24. package/dist/dist-QMVy31gR.mjs.map +1 -0
  25. package/dist/effects/index.d.mts +5 -5
  26. package/dist/effects/index.mjs +36 -36
  27. package/dist/{effects-BOk_2kzM.mjs → effects-mRe-rLte.mjs} +71 -3
  28. package/dist/effects-mRe-rLte.mjs.map +1 -0
  29. package/dist/fonts/index.d.mts +1 -1
  30. package/dist/fonts/index.mjs +3 -3
  31. package/dist/{fonts-CsMDfqv9.mjs → fonts-wI3CUYHM.mjs} +2 -2
  32. package/dist/{fonts-CsMDfqv9.mjs.map → fonts-wI3CUYHM.mjs.map} +1 -1
  33. package/dist/{gpu-DtT5I4ME.mjs → gpu-I5fdrflL.mjs} +2 -2
  34. package/dist/{gpu-DtT5I4ME.mjs.map → gpu-I5fdrflL.mjs.map} +1 -1
  35. package/dist/{index-BTPLbjt4.d.mts → index-B-KVpJMb.d.mts} +2 -2
  36. package/dist/{index-BTPLbjt4.d.mts.map → index-B-KVpJMb.d.mts.map} +1 -1
  37. package/dist/index-BJe_GEyj.d.mts +5968 -0
  38. package/dist/index-BJe_GEyj.d.mts.map +1 -0
  39. package/dist/{index-D-l-yCv6.d.mts → index-BpdVOlsV.d.mts} +3 -3
  40. package/dist/{index-D-l-yCv6.d.mts.map → index-BpdVOlsV.d.mts.map} +1 -1
  41. package/dist/index-C2f4Hm-p.d.mts +89 -0
  42. package/dist/index-C2f4Hm-p.d.mts.map +1 -0
  43. package/dist/{index-B-55dXDu.d.mts → index-CalU-mpZ.d.mts} +1 -1
  44. package/dist/{index-B-55dXDu.d.mts.map → index-CalU-mpZ.d.mts.map} +1 -1
  45. package/dist/{index-B2Xesdug.d.mts → index-D6-lH1Mx.d.mts} +477 -327
  46. package/dist/index-D6-lH1Mx.d.mts.map +1 -0
  47. package/dist/{index-B3-gwjK6.d.mts → index-DNKM3to5.d.mts} +3 -3
  48. package/dist/{index-B3-gwjK6.d.mts.map → index-DNKM3to5.d.mts.map} +1 -1
  49. package/dist/{index-DujpgUUq.d.mts → index-fymoeGNW.d.mts} +245 -152
  50. package/dist/index-fymoeGNW.d.mts.map +1 -0
  51. package/dist/index.d.mts +13 -4593
  52. package/dist/index.mjs +59 -6654
  53. package/dist/preview/index.d.mts +4 -90
  54. package/dist/preview/index.mjs +12 -12
  55. package/dist/{preview-DyGw2b3_.mjs → preview--DEgW67P.mjs} +3 -3
  56. package/dist/{preview-DyGw2b3_.mjs.map → preview--DEgW67P.mjs.map} +1 -1
  57. package/dist/preview-engine/audio.mjs +1 -1
  58. package/dist/preview-engine/{chunk-FHKBALVI.mjs → chunk-24H3QVYB.mjs} +1 -1
  59. package/dist/preview-engine/{chunk-SWXVITCQ.mjs → chunk-25T3M6MI.mjs} +1 -1
  60. package/dist/preview-engine/chunk-2AV7HRRL.mjs +174 -0
  61. package/dist/preview-engine/{chunk-HNNIVJ2K.mjs → chunk-4EOS6ZWW.mjs} +1 -1
  62. package/dist/preview-engine/{chunk-67SSYK7D.mjs → chunk-4UI3S3UG.mjs} +1 -1
  63. package/dist/preview-engine/{chunk-LLDIDE5Q.mjs → chunk-5N3GW3NE.mjs} +1 -1
  64. package/dist/preview-engine/{chunk-KAQUNOVB.mjs → chunk-5P764TTF.mjs} +1 -1
  65. package/dist/preview-engine/{chunk-WJJIISQJ.mjs → chunk-7BUKVFWB.mjs} +1 -1
  66. package/dist/preview-engine/{chunk-HUKAC5MJ.mjs → chunk-7EHUT5A3.mjs} +1 -1
  67. package/dist/preview-engine/{chunk-34ACEGNW.mjs → chunk-7HTTYP6T.mjs} +1 -1
  68. package/dist/preview-engine/{chunk-6K7US2WD.mjs → chunk-7JYMNGNK.mjs} +1 -1
  69. package/dist/preview-engine/{chunk-NRAZV5OA.mjs → chunk-A5OUYV3I.mjs} +1 -1
  70. package/dist/preview-engine/{chunk-VONDRBA2.mjs → chunk-AJLPRIXB.mjs} +1 -1
  71. package/dist/preview-engine/{chunk-HDGFNBYK.mjs → chunk-ANZDLSSM.mjs} +1 -1
  72. package/dist/preview-engine/{chunk-FFMPC7QA.mjs → chunk-C2TA65CH.mjs} +1 -1
  73. package/dist/preview-engine/{chunk-7QJUC6YY.mjs → chunk-CBQOJAIS.mjs} +14 -14
  74. package/dist/preview-engine/{chunk-GMGGDADT.mjs → chunk-CEIOI4HO.mjs} +1 -1
  75. package/dist/preview-engine/{chunk-RHRMEBNK.mjs → chunk-DKXKOUQR.mjs} +1 -1
  76. package/dist/preview-engine/chunk-DPIED3EG.mjs +1 -0
  77. package/dist/preview-engine/{chunk-QJZKIY4H.mjs → chunk-ENS4KUJV.mjs} +1 -1
  78. package/dist/preview-engine/{chunk-Z6UKUHPU.mjs → chunk-HXHP3UHZ.mjs} +1 -1
  79. package/dist/preview-engine/chunk-I6E3AKLS.mjs +1 -0
  80. package/dist/preview-engine/{chunk-2DDBSI75.mjs → chunk-ILKBHDFB.mjs} +1 -1
  81. package/dist/preview-engine/{chunk-O6NRIXS5.mjs → chunk-JMOJKT5W.mjs} +1 -1
  82. package/dist/preview-engine/{chunk-PZF6T7DM.mjs → chunk-KKBJ7X3T.mjs} +1 -1
  83. package/dist/preview-engine/{chunk-NNQUIVTE.mjs → chunk-KRVXRP5F.mjs} +1 -1
  84. package/dist/preview-engine/{chunk-FLPSWDX4.mjs → chunk-MJN3LOZ7.mjs} +1 -1
  85. package/dist/preview-engine/{chunk-GQLZXCW3.mjs → chunk-MLW6Y4RN.mjs} +1 -1
  86. package/dist/preview-engine/{chunk-KT35IPCF.mjs → chunk-MRDJNDYV.mjs} +1 -1
  87. package/dist/preview-engine/{chunk-RKVB47IA.mjs → chunk-MZAAJXUL.mjs} +1 -1
  88. package/dist/preview-engine/{chunk-FFGBUS76.mjs → chunk-NB55FW7D.mjs} +1 -1
  89. package/dist/preview-engine/{chunk-JX22B2FS.mjs → chunk-NG5WSR3A.mjs} +1 -1
  90. package/dist/preview-engine/{chunk-XOEEGC4Z.mjs → chunk-NVTPJUNG.mjs} +1 -1
  91. package/dist/preview-engine/{chunk-ZKPQGQE3.mjs → chunk-NXKXOSE6.mjs} +1 -1
  92. package/dist/preview-engine/{chunk-WCZ5DKZ4.mjs → chunk-NYEDWUFS.mjs} +1 -1
  93. package/dist/preview-engine/{chunk-WACWOKEP.mjs → chunk-O6LGKH4S.mjs} +1 -1
  94. package/dist/preview-engine/chunk-OLLY3Q7M.mjs +1 -0
  95. package/dist/preview-engine/{chunk-A5OVKZ52.mjs → chunk-OOJAQBS3.mjs} +1 -1
  96. package/dist/preview-engine/{chunk-6AEU4DC7.mjs → chunk-PJN7DD55.mjs} +3 -3
  97. package/dist/preview-engine/{chunk-R26SY5D4.mjs → chunk-QCUGWPYP.mjs} +1 -1
  98. package/dist/preview-engine/{chunk-LK3T65RB.mjs → chunk-QQJPPGH5.mjs} +1 -1
  99. package/dist/preview-engine/{chunk-3ACCCPBN.mjs → chunk-QVUT3QNF.mjs} +1 -1
  100. package/dist/preview-engine/chunk-RNFYEZLL.mjs +1 -0
  101. package/dist/preview-engine/{chunk-GNG4YH2W.mjs → chunk-TA5OBYRR.mjs} +1 -1
  102. package/dist/preview-engine/{chunk-NQZKBFC6.mjs → chunk-V6DAD4S4.mjs} +14 -14
  103. package/dist/preview-engine/{chunk-5RQHNB6Y.mjs → chunk-VRNN6H6Y.mjs} +1 -1
  104. package/dist/preview-engine/{chunk-C6Z7H2RZ.mjs → chunk-VTE3IISK.mjs} +1 -1
  105. package/dist/preview-engine/{chunk-RDP6QROU.mjs → chunk-VZGDX7II.mjs} +1 -1
  106. package/dist/preview-engine/{chunk-DOCSX45C.mjs → chunk-XJ4CQIZZ.mjs} +1 -1
  107. package/dist/preview-engine/{chunk-7LVOSEGN.mjs → chunk-XYRBFLFF.mjs} +1 -1
  108. package/dist/preview-engine/{chunk-LIQA5OOU.mjs → chunk-YMQMPBTL.mjs} +1 -1
  109. package/dist/preview-engine/{chunk-G4J662EL.mjs → chunk-Z4ZO4RVT.mjs} +1 -1
  110. package/dist/preview-engine/{chunk-2GIWWDE4.mjs → chunk-ZFURUTVW.mjs} +1 -1
  111. package/dist/preview-engine/effects.mjs +1 -1
  112. package/dist/preview-engine/framefields.mjs +30 -28
  113. package/dist/preview-engine/player.mjs +5 -5
  114. package/dist/preview-engine/renderers-2CBJYNOC.mjs +1 -0
  115. package/dist/preview-engine/renderers-37CN7O4S.mjs +1 -0
  116. package/dist/preview-engine/renderers-3AZ5PMGC.mjs +1 -0
  117. package/dist/preview-engine/renderers-3UGG2IMP.mjs +1 -0
  118. package/dist/preview-engine/renderers-3VXNHICC.mjs +1 -0
  119. package/dist/preview-engine/{renderers-BDWVXYTW.mjs → renderers-3ZYXHUSW.mjs} +1 -1
  120. package/dist/preview-engine/renderers-4FONYSBA.mjs +1 -0
  121. package/dist/preview-engine/renderers-54I5SFXR.mjs +1 -0
  122. package/dist/preview-engine/renderers-5LXALKB4.mjs +1 -0
  123. package/dist/preview-engine/renderers-5TICPV2K.mjs +1 -0
  124. package/dist/preview-engine/renderers-5YS5WHAV.mjs +1 -0
  125. package/dist/preview-engine/renderers-6UTRYW7Z.mjs +1 -0
  126. package/dist/preview-engine/{renderers-R4WMM6IX.mjs → renderers-6ZCFR7BL.mjs} +1 -1
  127. package/dist/preview-engine/renderers-AYEWAW7F.mjs +1 -0
  128. package/dist/preview-engine/{renderers-75TL7RLS.mjs → renderers-BOT4H6KJ.mjs} +1 -1
  129. package/dist/preview-engine/{renderers-NJLGPPX7.mjs → renderers-C44CEIYB.mjs} +1 -1
  130. package/dist/preview-engine/{renderers-UDOBX433.mjs → renderers-C4G7X7LD.mjs} +1 -1
  131. package/dist/preview-engine/renderers-CLCPP3TZ.mjs +1 -0
  132. package/dist/preview-engine/{renderers-RKZGYWDG.mjs → renderers-DBRC3SQE.mjs} +1 -1
  133. package/dist/preview-engine/{renderers-HZHEGONW.mjs → renderers-DSICQMRF.mjs} +1 -1
  134. package/dist/preview-engine/renderers-DTZ2AER5.mjs +1 -0
  135. package/dist/preview-engine/renderers-DUF2CTX6.mjs +1 -0
  136. package/dist/preview-engine/{renderers-AZYJFJLO.mjs → renderers-EOIMH7UE.mjs} +1 -1
  137. package/dist/preview-engine/renderers-EOMMSENQ.mjs +1 -0
  138. package/dist/preview-engine/{renderers-CK3ZL3GM.mjs → renderers-GSRKNT75.mjs} +1 -1
  139. package/dist/preview-engine/renderers-GUJTPO37.mjs +1 -0
  140. package/dist/preview-engine/{renderers-TCNPEANL.mjs → renderers-HE42AT5T.mjs} +1 -1
  141. package/dist/preview-engine/{renderers-GUPEJK3O.mjs → renderers-JM7JEVBN.mjs} +1 -1
  142. package/dist/preview-engine/{renderers-FKH5S64C.mjs → renderers-JRU2GNPE.mjs} +1 -1
  143. package/dist/preview-engine/{renderers-IHRFEZNP.mjs → renderers-K6J77OI5.mjs} +1 -1
  144. package/dist/preview-engine/{renderers-IJDQJEE5.mjs → renderers-L7EITUCD.mjs} +1 -1
  145. package/dist/preview-engine/renderers-LGUHDWWB.mjs +1 -0
  146. package/dist/preview-engine/renderers-LGXD24IJ.mjs +1 -0
  147. package/dist/preview-engine/renderers-MCTBJEL7.mjs +1 -0
  148. package/dist/preview-engine/renderers-OBXNUQMP.mjs +1 -0
  149. package/dist/preview-engine/renderers-OZGEXW2X.mjs +1 -0
  150. package/dist/preview-engine/{renderers-7CPYTCNW.mjs → renderers-PJGFJGJS.mjs} +1 -1
  151. package/dist/preview-engine/{renderers-SW7FIEKO.mjs → renderers-PPGOYOID.mjs} +1 -1
  152. package/dist/preview-engine/renderers-PUJRHBUW.mjs +1 -0
  153. package/dist/preview-engine/renderers-PVUROEGR.mjs +1 -0
  154. package/dist/preview-engine/renderers-QBVVTQV6.mjs +1 -0
  155. package/dist/preview-engine/{renderers-K7B5PQBT.mjs → renderers-QPHOG7QR.mjs} +1 -1
  156. package/dist/preview-engine/{renderers-WR6MKT5S.mjs → renderers-RV62K5JC.mjs} +1 -1
  157. package/dist/preview-engine/{renderers-UMPOVFRA.mjs → renderers-SBX64ERA.mjs} +1 -1
  158. package/dist/preview-engine/renderers-SCJTTOEJ.mjs +1 -0
  159. package/dist/preview-engine/{renderers-FM6A5YR4.mjs → renderers-SD35PBEM.mjs} +1 -1
  160. package/dist/preview-engine/{renderers-LVLVJHOL.mjs → renderers-SIHL5GLI.mjs} +1 -1
  161. package/dist/preview-engine/renderers-SNUVYUDE.mjs +1 -0
  162. package/dist/preview-engine/renderers-SPW4SWZ2.mjs +228 -0
  163. package/dist/preview-engine/renderers-SRKCF3LD.mjs +1 -0
  164. package/dist/preview-engine/{renderers-GAIUTII6.mjs → renderers-T3S7QVM4.mjs} +1 -1
  165. package/dist/preview-engine/renderers-TBP2EKJ4.mjs +1 -0
  166. package/dist/preview-engine/renderers-UN6YLFHW.mjs +1 -0
  167. package/dist/preview-engine/renderers-UTWKTBZI.mjs +1 -0
  168. package/dist/preview-engine/{renderers-6JZ4HYIU.mjs → renderers-V5MJJH33.mjs} +1 -1
  169. package/dist/preview-engine/{renderers-XKHNBARD.mjs → renderers-V67L3MCY.mjs} +1 -1
  170. package/dist/preview-engine/{renderers-FADYGSLK.mjs → renderers-VYK2BJID.mjs} +1 -1
  171. package/dist/preview-engine/renderers-W6762MNW.mjs +1 -0
  172. package/dist/preview-engine/renderers-W6ZTVA2I.mjs +1 -0
  173. package/dist/preview-engine/renderers-WDV7ENJA.mjs +1 -0
  174. package/dist/preview-engine/{renderers-MBSOKWKB.mjs → renderers-WPBTAU2E.mjs} +1 -1
  175. package/dist/preview-engine/renderers-XP7YFWBV.mjs +1 -0
  176. package/dist/preview-engine/renderers-XVUOO7B6.mjs +1 -0
  177. package/dist/preview-engine/renderers-YPFM5UJO.mjs +1 -0
  178. package/dist/preview-engine/renderers-YW3LBALW.mjs +1 -0
  179. package/dist/preview-engine/{renderers-4AJWVIJG.mjs → renderers-ZAPIBQZC.mjs} +1 -1
  180. package/dist/preview-engine/renderers-ZRR4TUVQ.mjs +1 -0
  181. package/dist/preview-engine/{renderers-TY7DVI7E.mjs → renderers-ZVKXIQ3E.mjs} +1 -1
  182. package/dist/preview-engine/signals.mjs +1 -1
  183. package/dist/{program-C2cJayA1.mjs → program-CEHCeDpG.mjs} +204 -61
  184. package/dist/program-CEHCeDpG.mjs.map +1 -0
  185. package/dist/registry/annotate.json +30 -0
  186. package/dist/registry/app-frame.json +38 -0
  187. package/dist/registry/backdrop.json +37 -0
  188. package/dist/registry/before-after.json +33 -0
  189. package/dist/registry/callout.json +30 -0
  190. package/dist/registry/captions.json +37 -0
  191. package/dist/registry/card-stack.json +30 -0
  192. package/dist/registry/chat-thread.json +32 -0
  193. package/dist/registry/code-block.json +45 -0
  194. package/dist/registry/confetti.json +29 -0
  195. package/dist/registry/counter.json +36 -0
  196. package/dist/registry/device-frame.json +36 -0
  197. package/dist/registry/focus-zoom.json +32 -0
  198. package/dist/registry/index.json +408 -0
  199. package/dist/registry/logo-reveal.json +37 -0
  200. package/dist/registry/lower-third.json +34 -0
  201. package/dist/registry/meter.json +35 -0
  202. package/dist/registry/mouse-pointer.json +44 -0
  203. package/dist/registry/selection.json +31 -0
  204. package/dist/registry/spotlight.json +28 -0
  205. package/dist/registry/terminal.json +40 -0
  206. package/dist/registry/text-reveal.json +39 -0
  207. package/dist/registry/title-card.json +34 -0
  208. package/dist/registry/toasts.json +28 -0
  209. package/dist/registry/touch-point.json +33 -0
  210. package/dist/registry/waveform.json +29 -0
  211. package/dist/registry/word-cycle.json +32 -0
  212. package/dist/renderer/index.d.mts +2 -2
  213. package/dist/renderer/index.mjs +3 -3
  214. package/dist/{renderer-BMKFzfSQ.mjs → renderer--wMbTRFg.mjs} +4 -4
  215. package/dist/{renderer-BMKFzfSQ.mjs.map → renderer--wMbTRFg.mjs.map} +1 -1
  216. package/dist/{renderer-CDUxAtsk.mjs → renderer-3aLw-la1.mjs} +5 -5
  217. package/dist/{renderer-CDUxAtsk.mjs.map → renderer-3aLw-la1.mjs.map} +1 -1
  218. package/dist/renderer-7vCBWQVP.mjs +5 -0
  219. package/dist/{renderer-DILUmb-e.mjs → renderer-AkRxGnFU.mjs} +5 -5
  220. package/dist/{renderer-DILUmb-e.mjs.map → renderer-AkRxGnFU.mjs.map} +1 -1
  221. package/dist/renderer-B-XgGMCq.mjs +5 -0
  222. package/dist/renderer-B0yabPlf.mjs +5 -0
  223. package/dist/{renderer-CoWfz-9p.mjs → renderer-B1yPBJQc.mjs} +74 -74
  224. package/dist/{renderer-CoWfz-9p.mjs.map → renderer-B1yPBJQc.mjs.map} +1 -1
  225. package/dist/{renderer-BPixWnmY.mjs → renderer-B41jTHFs.mjs} +6 -6
  226. package/dist/{renderer-BPixWnmY.mjs.map → renderer-B41jTHFs.mjs.map} +1 -1
  227. package/dist/{renderer-BTd2sWDC.mjs → renderer-B5HG6Czb.mjs} +4 -4
  228. package/dist/{renderer-BTd2sWDC.mjs.map → renderer-B5HG6Czb.mjs.map} +1 -1
  229. package/dist/{renderer-gRMkQabv.mjs → renderer-B5oJN3A5.mjs} +5 -5
  230. package/dist/{renderer-gRMkQabv.mjs.map → renderer-B5oJN3A5.mjs.map} +1 -1
  231. package/dist/renderer-B9MYevrF.mjs +5 -0
  232. package/dist/renderer-BA2Ko4H1.mjs +3 -0
  233. package/dist/renderer-BCGosndi.mjs +5 -0
  234. package/dist/{renderer-CzRqzp8P.mjs → renderer-BEmDSqXg.mjs} +4 -4
  235. package/dist/{renderer-CzRqzp8P.mjs.map → renderer-BEmDSqXg.mjs.map} +1 -1
  236. package/dist/{renderer-Csss5GFQ.mjs → renderer-BG8jNTHr.mjs} +3 -3
  237. package/dist/{renderer-Csss5GFQ.mjs.map → renderer-BG8jNTHr.mjs.map} +1 -1
  238. package/dist/{renderer-BTigwMQp.mjs → renderer-BMnrBPh1.mjs} +4 -4
  239. package/dist/{renderer-BTigwMQp.mjs.map → renderer-BMnrBPh1.mjs.map} +1 -1
  240. package/dist/{renderer-yyUpCeWb.mjs → renderer-BORzpTQP.mjs} +3 -3
  241. package/dist/{renderer-yyUpCeWb.mjs.map → renderer-BORzpTQP.mjs.map} +1 -1
  242. package/dist/{renderer-RDCax5CK.mjs → renderer-BWtI3wKu.mjs} +4 -4
  243. package/dist/{renderer-RDCax5CK.mjs.map → renderer-BWtI3wKu.mjs.map} +1 -1
  244. package/dist/renderer-BXTHDEnd.mjs +5 -0
  245. package/dist/{renderer-G1pMJH5C.mjs → renderer-Baw30QRI.mjs} +3 -3
  246. package/dist/{renderer-G1pMJH5C.mjs.map → renderer-Baw30QRI.mjs.map} +1 -1
  247. package/dist/renderer-BbJoZ-zL.mjs +5 -0
  248. package/dist/{renderer-Dwu_zfdL.mjs → renderer-BbdgwkDB.mjs} +5 -5
  249. package/dist/{renderer-Dwu_zfdL.mjs.map → renderer-BbdgwkDB.mjs.map} +1 -1
  250. package/dist/{renderer-D6BXR7P4.mjs → renderer-BgOEqtZu.mjs} +3 -3
  251. package/dist/{renderer-D6BXR7P4.mjs.map → renderer-BgOEqtZu.mjs.map} +1 -1
  252. package/dist/{renderer-NizuhHsH.mjs → renderer-Bv0-WmP4.mjs} +4 -4
  253. package/dist/{renderer-NizuhHsH.mjs.map → renderer-Bv0-WmP4.mjs.map} +1 -1
  254. package/dist/renderer-BvcqncI2.mjs +3 -0
  255. package/dist/{renderer-BljMOvry.mjs → renderer-Bvhj-05p.mjs} +4 -4
  256. package/dist/{renderer-BljMOvry.mjs.map → renderer-Bvhj-05p.mjs.map} +1 -1
  257. package/dist/renderer-BxAZKOQy.mjs +5 -0
  258. package/dist/{renderer-92eLJg24.mjs → renderer-BxDhx8KM.mjs} +5 -5
  259. package/dist/{renderer-92eLJg24.mjs.map → renderer-BxDhx8KM.mjs.map} +1 -1
  260. package/dist/renderer-BxgkH__7.mjs +5 -0
  261. package/dist/{renderer-7y5Cj8rV.mjs → renderer-C1XZ0fQ-.mjs} +4 -4
  262. package/dist/{renderer-7y5Cj8rV.mjs.map → renderer-C1XZ0fQ-.mjs.map} +1 -1
  263. package/dist/{renderer-UcdqCarR.mjs → renderer-C8KEfda3.mjs} +4 -4
  264. package/dist/{renderer-UcdqCarR.mjs.map → renderer-C8KEfda3.mjs.map} +1 -1
  265. package/dist/{renderer-BSitV56h.mjs → renderer-C9r0-KY4.mjs} +10 -1
  266. package/dist/{renderer-BSitV56h.mjs.map → renderer-C9r0-KY4.mjs.map} +1 -1
  267. package/dist/{renderer-B3e4LSE6.mjs → renderer-CF25oNd3.mjs} +5 -5
  268. package/dist/{renderer-B3e4LSE6.mjs.map → renderer-CF25oNd3.mjs.map} +1 -1
  269. package/dist/renderer-CFEvikBH.mjs +5 -0
  270. package/dist/{renderer-DzSMeQBC.mjs → renderer-CHFUJyul.mjs} +5 -5
  271. package/dist/{renderer-DzSMeQBC.mjs.map → renderer-CHFUJyul.mjs.map} +1 -1
  272. package/dist/{renderer-ByCX4JYg.mjs → renderer-CKGOKBZi.mjs} +5 -5
  273. package/dist/{renderer-ByCX4JYg.mjs.map → renderer-CKGOKBZi.mjs.map} +1 -1
  274. package/dist/{renderer-If8JOkBi.mjs → renderer-CNs1vBUy.mjs} +4 -4
  275. package/dist/{renderer-If8JOkBi.mjs.map → renderer-CNs1vBUy.mjs.map} +1 -1
  276. package/dist/{index-B1XcyMm8.d.mts → renderer-COXKPofU.d.mts} +18 -18
  277. package/dist/renderer-COXKPofU.d.mts.map +1 -0
  278. package/dist/{renderer-CNuVJ4nG.mjs → renderer-COZCwiIr.mjs} +3 -3
  279. package/dist/{renderer-CNuVJ4nG.mjs.map → renderer-COZCwiIr.mjs.map} +1 -1
  280. package/dist/{renderer-V5uEyDFz.mjs → renderer-CPmoA87K.mjs} +4 -4
  281. package/dist/{renderer-V5uEyDFz.mjs.map → renderer-CPmoA87K.mjs.map} +1 -1
  282. package/dist/{renderer-Cw6Sagih.mjs → renderer-CYZb9uoO.mjs} +4 -4
  283. package/dist/{renderer-Cw6Sagih.mjs.map → renderer-CYZb9uoO.mjs.map} +1 -1
  284. package/dist/renderer-C_u9B-_7.mjs +5 -0
  285. package/dist/{renderer-BwpgDLYO.mjs → renderer-CaUJlGoB.mjs} +5 -5
  286. package/dist/{renderer-BwpgDLYO.mjs.map → renderer-CaUJlGoB.mjs.map} +1 -1
  287. package/dist/{renderer-DjwITRvg.mjs → renderer-CcS3Zntx.mjs} +3 -3
  288. package/dist/{renderer-BDCy8NgT.mjs → renderer-CddpdCL3.mjs} +4 -4
  289. package/dist/{renderer-BDCy8NgT.mjs.map → renderer-CddpdCL3.mjs.map} +1 -1
  290. package/dist/{renderer-BV48PFjX.mjs → renderer-Cg-d78nf.mjs} +192 -27
  291. package/dist/renderer-Cg-d78nf.mjs.map +1 -0
  292. package/dist/renderer-Cgx_qzGT.mjs +5 -0
  293. package/dist/{renderer-DScyMHpJ.mjs → renderer-ChNCtBMR.mjs} +3 -3
  294. package/dist/{renderer-DScyMHpJ.mjs.map → renderer-ChNCtBMR.mjs.map} +1 -1
  295. package/dist/renderer-ClOkY1Ny.mjs +5 -0
  296. package/dist/{renderer-DyyIXLQK.mjs → renderer-CrU0kbiB.mjs} +5 -5
  297. package/dist/{renderer-DyyIXLQK.mjs.map → renderer-CrU0kbiB.mjs.map} +1 -1
  298. package/dist/renderer-CtDub_ig.mjs +5 -0
  299. package/dist/{renderer-ut1GqW89.mjs → renderer-CyhSWLKq.mjs} +4 -4
  300. package/dist/{renderer-ut1GqW89.mjs.map → renderer-CyhSWLKq.mjs.map} +1 -1
  301. package/dist/{renderer-DaSxr9fM.mjs → renderer-D-bmSKv4.mjs} +5 -5
  302. package/dist/{renderer-DaSxr9fM.mjs.map → renderer-D-bmSKv4.mjs.map} +1 -1
  303. package/dist/renderer-D0duAhCo.mjs +5 -0
  304. package/dist/{renderer-BBAbZfBl.mjs → renderer-D2tdNoM6.mjs} +6 -6
  305. package/dist/{renderer-BBAbZfBl.mjs.map → renderer-D2tdNoM6.mjs.map} +1 -1
  306. package/dist/renderer-D4wM1dqg.mjs +6 -0
  307. package/dist/renderer-D5U3d09T.mjs +5 -0
  308. package/dist/{renderer-B1QREs7J.mjs → renderer-D86Y5YYi.mjs} +5 -5
  309. package/dist/{renderer-B1QREs7J.mjs.map → renderer-D86Y5YYi.mjs.map} +1 -1
  310. package/dist/{renderer-Cbsnj9vV.mjs → renderer-D8D7dKxq.mjs} +4 -4
  311. package/dist/{renderer-Cbsnj9vV.mjs.map → renderer-D8D7dKxq.mjs.map} +1 -1
  312. package/dist/{renderer-D0vom99O.mjs → renderer-DATAjI6x.mjs} +3 -3
  313. package/dist/{renderer-D0vom99O.mjs.map → renderer-DATAjI6x.mjs.map} +1 -1
  314. package/dist/{renderer-X0eKSD7v.mjs → renderer-DGhCIVI4.mjs} +5 -5
  315. package/dist/{renderer-X0eKSD7v.mjs.map → renderer-DGhCIVI4.mjs.map} +1 -1
  316. package/dist/{renderer-CJ4bxCld.mjs → renderer-DILjs1tz.mjs} +3 -3
  317. package/dist/{renderer-DjBCWxYy.mjs → renderer-DIyzKouj.mjs} +4 -4
  318. package/dist/{renderer-DjBCWxYy.mjs.map → renderer-DIyzKouj.mjs.map} +1 -1
  319. package/dist/{renderer-BwwZB2mt.mjs → renderer-DJ78Bgv7.mjs} +5 -5
  320. package/dist/{renderer-BwwZB2mt.mjs.map → renderer-DJ78Bgv7.mjs.map} +1 -1
  321. package/dist/renderer-DKqFxYfP.mjs +5 -0
  322. package/dist/renderer-DQZNI1zf.mjs +5 -0
  323. package/dist/{renderer-B4RpSd4A.mjs → renderer-DVnrUnkh.mjs} +3 -3
  324. package/dist/{renderer-B4RpSd4A.mjs.map → renderer-DVnrUnkh.mjs.map} +1 -1
  325. package/dist/{renderer-C1E5Rt5q.mjs → renderer-DWtquP0s.mjs} +4 -4
  326. package/dist/{renderer-C1E5Rt5q.mjs.map → renderer-DWtquP0s.mjs.map} +1 -1
  327. package/dist/renderer-DXITcVbS.mjs +5 -0
  328. package/dist/renderer-DY1QgdDC.mjs +5 -0
  329. package/dist/renderer-DYEz06xn.mjs +5 -0
  330. package/dist/renderer-D_2OrSMc.mjs +5 -0
  331. package/dist/renderer-DcCl9CO6.mjs +5 -0
  332. package/dist/{renderer-rXgqgAjw.mjs → renderer-DetTl6bQ.mjs} +3 -3
  333. package/dist/{renderer-rXgqgAjw.mjs.map → renderer-DetTl6bQ.mjs.map} +1 -1
  334. package/dist/{renderer-BjCHW9Jp.mjs → renderer-DfxwJVjW.mjs} +3 -3
  335. package/dist/{renderer-Cv4lchUP.mjs → renderer-DhQZiRL3.mjs} +5 -5
  336. package/dist/{renderer-Cv4lchUP.mjs.map → renderer-DhQZiRL3.mjs.map} +1 -1
  337. package/dist/{renderer-EZp_IIPK.mjs → renderer-Djn4BYtz.mjs} +5 -5
  338. package/dist/{renderer-EZp_IIPK.mjs.map → renderer-Djn4BYtz.mjs.map} +1 -1
  339. package/dist/{renderer-Bkrk0M0r.mjs → renderer-DkS6cblv.mjs} +5 -5
  340. package/dist/{renderer-Bkrk0M0r.mjs.map → renderer-DkS6cblv.mjs.map} +1 -1
  341. package/dist/{renderer-DKfwlE4e.mjs → renderer-DkeJefRk.mjs} +5 -5
  342. package/dist/{renderer-DKfwlE4e.mjs.map → renderer-DkeJefRk.mjs.map} +1 -1
  343. package/dist/renderer-DotZXhrh.mjs +5 -0
  344. package/dist/renderer-DpYDVTzs.mjs +5 -0
  345. package/dist/renderer-DpZxLVQF.mjs +5 -0
  346. package/dist/{renderer-Za4D9hej.mjs → renderer-DqabtpGN.mjs} +5 -5
  347. package/dist/{renderer-Za4D9hej.mjs.map → renderer-DqabtpGN.mjs.map} +1 -1
  348. package/dist/{renderer-DaqWTx7s.mjs → renderer-DqdD8gzX.mjs} +5 -5
  349. package/dist/{renderer-DaqWTx7s.mjs.map → renderer-DqdD8gzX.mjs.map} +1 -1
  350. package/dist/{renderer-DZJJHCtm.mjs → renderer-DstROEvX.mjs} +4 -4
  351. package/dist/{renderer-DZJJHCtm.mjs.map → renderer-DstROEvX.mjs.map} +1 -1
  352. package/dist/{renderer-BjvNEbML.mjs → renderer-DuawUm8D.mjs} +3 -3
  353. package/dist/{renderer-BjvNEbML.mjs.map → renderer-DuawUm8D.mjs.map} +1 -1
  354. package/dist/{renderer-CDOobs18.mjs → renderer-DvIWhLnY.mjs} +5 -5
  355. package/dist/{renderer-CDOobs18.mjs.map → renderer-DvIWhLnY.mjs.map} +1 -1
  356. package/dist/renderer-DvJbouz0.mjs +5 -0
  357. package/dist/{renderer-apeDrNXM.mjs → renderer-Dw2ZFwDT.mjs} +5 -5
  358. package/dist/{renderer-apeDrNXM.mjs.map → renderer-Dw2ZFwDT.mjs.map} +1 -1
  359. package/dist/{renderer-CxqPeATd.d.mts → renderer-Dx28wTi1.d.mts} +2 -2
  360. package/dist/{renderer-CxqPeATd.d.mts.map → renderer-Dx28wTi1.d.mts.map} +1 -1
  361. package/dist/{renderer-CcoUNzlQ.mjs → renderer-DxLkZGUK.mjs} +4 -4
  362. package/dist/{renderer-CcoUNzlQ.mjs.map → renderer-DxLkZGUK.mjs.map} +1 -1
  363. package/dist/{renderer-CeiCJCg4.mjs → renderer-GY7D1oAn.mjs} +4 -4
  364. package/dist/{renderer-CeiCJCg4.mjs.map → renderer-GY7D1oAn.mjs.map} +1 -1
  365. package/dist/{renderer-D2-V9nQq.mjs → renderer-JaSEubRQ.mjs} +4 -4
  366. package/dist/{renderer-D2-V9nQq.mjs.map → renderer-JaSEubRQ.mjs.map} +1 -1
  367. package/dist/{renderer-CqtIbe5n.mjs → renderer-MrvH4L7b.mjs} +4 -4
  368. package/dist/{renderer-CqtIbe5n.mjs.map → renderer-MrvH4L7b.mjs.map} +1 -1
  369. package/dist/{renderer-DO5r7ZV-.mjs → renderer-PNIgmWft.mjs} +2 -2
  370. package/dist/{renderer-DO5r7ZV-.mjs.map → renderer-PNIgmWft.mjs.map} +1 -1
  371. package/dist/renderer-S305xm67.mjs +5 -0
  372. package/dist/renderer-TgUloP-y.mjs +5 -0
  373. package/dist/{renderer-DFJQ6v0F.mjs → renderer-VcPoZAM2.mjs} +3 -3
  374. package/dist/{renderer-DFJQ6v0F.mjs.map → renderer-VcPoZAM2.mjs.map} +1 -1
  375. package/dist/{renderer-DcBGYN3V.mjs → renderer-ZGJWn-_L.mjs} +4 -4
  376. package/dist/{renderer-DcBGYN3V.mjs.map → renderer-ZGJWn-_L.mjs.map} +1 -1
  377. package/dist/{renderer-DTw-W0Yz.mjs → renderer-aXwxbXcE.mjs} +5 -5
  378. package/dist/{renderer-DTw-W0Yz.mjs.map → renderer-aXwxbXcE.mjs.map} +1 -1
  379. package/dist/renderer-gZ5SMvbU.mjs +5 -0
  380. package/dist/{renderer-CCGzT6bX.mjs → renderer-gniIzAsk.mjs} +3 -3
  381. package/dist/renderer-kEpx7pUy.mjs +5 -0
  382. package/dist/{renderer-BkWd4-YO.mjs → renderer-mSlww_MA.mjs} +4 -4
  383. package/dist/{renderer-BkWd4-YO.mjs.map → renderer-mSlww_MA.mjs.map} +1 -1
  384. package/dist/{renderer-B0gPTXhe.mjs → renderer-mWfgWQy_.mjs} +5 -5
  385. package/dist/{renderer-B0gPTXhe.mjs.map → renderer-mWfgWQy_.mjs.map} +1 -1
  386. package/dist/{renderer-BajIOuZH.mjs → renderer-nLPfvY3-.mjs} +2 -2
  387. package/dist/{renderer-BajIOuZH.mjs.map → renderer-nLPfvY3-.mjs.map} +1 -1
  388. package/dist/renderer-oPWZmzua.mjs +5 -0
  389. package/dist/{renderer--ruTGlPo.mjs → renderer-pcpDwv3K.mjs} +4 -4
  390. package/dist/{renderer--ruTGlPo.mjs.map → renderer-pcpDwv3K.mjs.map} +1 -1
  391. package/dist/renderer-qCNOffLy.mjs +5 -0
  392. package/dist/{renderer-DwVOxdzC.mjs → renderer-vPJRRVNN.mjs} +5 -5
  393. package/dist/{renderer-DwVOxdzC.mjs.map → renderer-vPJRRVNN.mjs.map} +1 -1
  394. package/dist/{renderer-JvcR1vYI.mjs → renderer-vQrX7Qsw.mjs} +3 -3
  395. package/dist/{renderer-JvcR1vYI.mjs.map → renderer-vQrX7Qsw.mjs.map} +1 -1
  396. package/dist/{renderer-Bi6W4RSn.mjs → renderer-wld_ZR0-.mjs} +3 -3
  397. package/dist/{renderer-Bi6W4RSn.mjs.map → renderer-wld_ZR0-.mjs.map} +1 -1
  398. package/dist/renderer-xEVoeq12.mjs +5 -0
  399. package/dist/renderer-ypw8fzVD.mjs +5 -0
  400. package/dist/{renderers-CP8CFWDs-DzGXDs5p.mjs → renderers-CP8CFWDs-DgKdGMvS.mjs} +4 -4
  401. package/dist/{renderers-CP8CFWDs-DzGXDs5p.mjs.map → renderers-CP8CFWDs-DgKdGMvS.mjs.map} +1 -1
  402. package/dist/signals/index.d.mts +6 -6
  403. package/dist/signals/index.mjs +8 -8
  404. package/dist/{signals-C5nOrRmn.mjs → signals-Cf9mfNGE.mjs} +4 -4
  405. package/dist/{signals-C5nOrRmn.mjs.map → signals-Cf9mfNGE.mjs.map} +1 -1
  406. package/dist/src-CU_7ui4I.mjs +8373 -0
  407. package/dist/src-CU_7ui4I.mjs.map +1 -0
  408. package/package.json +68 -58
  409. package/dist/dist-ClyC_d66.mjs.map +0 -1
  410. package/dist/dist-CxGfrigI.mjs.map +0 -1
  411. package/dist/effects-BOk_2kzM.mjs.map +0 -1
  412. package/dist/index-B1XcyMm8.d.mts.map +0 -1
  413. package/dist/index-B2Xesdug.d.mts.map +0 -1
  414. package/dist/index-DujpgUUq.d.mts.map +0 -1
  415. package/dist/index.d.mts.map +0 -1
  416. package/dist/index.mjs.map +0 -1
  417. package/dist/preview/index.d.mts.map +0 -1
  418. package/dist/preview-engine/chunk-AQNTIWTK.mjs +0 -1
  419. package/dist/preview-engine/chunk-CPFPY35C.mjs +0 -1
  420. package/dist/preview-engine/chunk-UZBVCYRY.mjs +0 -174
  421. package/dist/preview-engine/chunk-XDMZP3E2.mjs +0 -1
  422. package/dist/preview-engine/chunk-YKMBRUAE.mjs +0 -1
  423. package/dist/preview-engine/renderers-3CXFGRE7.mjs +0 -1
  424. package/dist/preview-engine/renderers-3FC3WCJN.mjs +0 -1
  425. package/dist/preview-engine/renderers-3S2FM33K.mjs +0 -1
  426. package/dist/preview-engine/renderers-53ZTBI3C.mjs +0 -1
  427. package/dist/preview-engine/renderers-5USBVCMQ.mjs +0 -1
  428. package/dist/preview-engine/renderers-65G6BLEA.mjs +0 -1
  429. package/dist/preview-engine/renderers-7XU7BXE7.mjs +0 -1
  430. package/dist/preview-engine/renderers-BFXM32BC.mjs +0 -1
  431. package/dist/preview-engine/renderers-CDXHCWWK.mjs +0 -1
  432. package/dist/preview-engine/renderers-CLUN7WU6.mjs +0 -1
  433. package/dist/preview-engine/renderers-DTB4HEXU.mjs +0 -1
  434. package/dist/preview-engine/renderers-EFKNRLYF.mjs +0 -1
  435. package/dist/preview-engine/renderers-EI6MQ2EL.mjs +0 -228
  436. package/dist/preview-engine/renderers-G2K7ZA5O.mjs +0 -1
  437. package/dist/preview-engine/renderers-GTUO5LIV.mjs +0 -1
  438. package/dist/preview-engine/renderers-HSJIVP57.mjs +0 -1
  439. package/dist/preview-engine/renderers-IHACBWXI.mjs +0 -1
  440. package/dist/preview-engine/renderers-IO3BVVJ7.mjs +0 -1
  441. package/dist/preview-engine/renderers-IR772VSN.mjs +0 -1
  442. package/dist/preview-engine/renderers-L6TRJOXA.mjs +0 -1
  443. package/dist/preview-engine/renderers-N6H6RSF2.mjs +0 -1
  444. package/dist/preview-engine/renderers-O5NFQYRQ.mjs +0 -1
  445. package/dist/preview-engine/renderers-O6V3OEKX.mjs +0 -1
  446. package/dist/preview-engine/renderers-OODA27UH.mjs +0 -1
  447. package/dist/preview-engine/renderers-RIGW33ZI.mjs +0 -1
  448. package/dist/preview-engine/renderers-RUZRBQ4K.mjs +0 -1
  449. package/dist/preview-engine/renderers-SKB2GGKS.mjs +0 -1
  450. package/dist/preview-engine/renderers-T4D2TASM.mjs +0 -1
  451. package/dist/preview-engine/renderers-T74XV36Q.mjs +0 -1
  452. package/dist/preview-engine/renderers-TOPW2UM3.mjs +0 -1
  453. package/dist/preview-engine/renderers-UO5G3Y2G.mjs +0 -1
  454. package/dist/preview-engine/renderers-UOV7VOJJ.mjs +0 -1
  455. package/dist/preview-engine/renderers-UWKSTSTA.mjs +0 -1
  456. package/dist/preview-engine/renderers-VHPAOUTA.mjs +0 -1
  457. package/dist/preview-engine/renderers-YEQRQJFC.mjs +0 -1
  458. package/dist/preview-engine/renderers-YRZ3WODX.mjs +0 -1
  459. package/dist/preview-engine/renderers-YUTFGVRY.mjs +0 -1
  460. package/dist/preview-engine/renderers-YXOTRKPA.mjs +0 -1
  461. package/dist/preview-engine/renderers-ZOU5ARVD.mjs +0 -1
  462. package/dist/preview-engine/renderers-ZW75LQTR.mjs +0 -1
  463. package/dist/program-C2cJayA1.mjs.map +0 -1
  464. package/dist/renderer-BAhZeUUn.mjs +0 -5
  465. package/dist/renderer-BHAE_dKq.mjs +0 -5
  466. package/dist/renderer-BNYZY3FE.mjs +0 -5
  467. package/dist/renderer-BSvubMvI.mjs +0 -5
  468. package/dist/renderer-BV48PFjX.mjs.map +0 -1
  469. package/dist/renderer-B_M_yhTc.mjs +0 -5
  470. package/dist/renderer-B_xSsTuy.mjs +0 -5
  471. package/dist/renderer-BePHurAU.mjs +0 -5
  472. package/dist/renderer-BfZquJrW.mjs +0 -5
  473. package/dist/renderer-BuY5ypB2.mjs +0 -5
  474. package/dist/renderer-BvOQgFHo.mjs +0 -5
  475. package/dist/renderer-C7NkSvUz.mjs +0 -5
  476. package/dist/renderer-CIuxV2q1.mjs +0 -5
  477. package/dist/renderer-CKp97tSQ.mjs +0 -5
  478. package/dist/renderer-CY89dTFR.mjs +0 -5
  479. package/dist/renderer-C_B_4Bl0.mjs +0 -5
  480. package/dist/renderer-Cd87JOjP.mjs +0 -5
  481. package/dist/renderer-Cev6orIK.mjs +0 -6
  482. package/dist/renderer-Cewf6UPh.mjs +0 -5
  483. package/dist/renderer-CnHsMLIv.mjs +0 -5
  484. package/dist/renderer-CoxuAr7b.mjs +0 -5
  485. package/dist/renderer-CrdG7trA.mjs +0 -5
  486. package/dist/renderer-Cu5MFgbk.mjs +0 -5
  487. package/dist/renderer-CuOjhtoo.mjs +0 -5
  488. package/dist/renderer-D2_0g6Oi.mjs +0 -5
  489. package/dist/renderer-D62FwolD.mjs +0 -5
  490. package/dist/renderer-DDNY9N7I.mjs +0 -5
  491. package/dist/renderer-DF_ONJ3v.mjs +0 -5
  492. package/dist/renderer-DbzrVHEE.mjs +0 -5
  493. package/dist/renderer-DlYchp1v.mjs +0 -5
  494. package/dist/renderer-DqcUNP8J.mjs +0 -5
  495. package/dist/renderer-DqvFhEQj.mjs +0 -5
  496. package/dist/renderer-DuuOlYIG.mjs +0 -3
  497. package/dist/renderer-DxBav2bE.mjs +0 -5
  498. package/dist/renderer-GvSRoQje.mjs +0 -5
  499. package/dist/renderer-KP7Ita9g.mjs +0 -5
  500. package/dist/renderer-Pc8dyNXt.mjs +0 -5
  501. package/dist/renderer-ezRCmU09.mjs +0 -3
  502. package/dist/renderer-h6ev1ogx.mjs +0 -5
  503. /package/dist/{chunk-GBe2k3y8.mjs → chunk-D7gtBK74.mjs} +0 -0
  504. /package/dist/{renderer-B-BcgA6d.mjs → renderer-B7fX0C62.mjs} +0 -0
@@ -1 +1 @@
1
- import{a}from"./chunk-ZKPQGQE3.mjs";import"./chunk-XDMZP3E2.mjs";import"./chunk-IQC2I5A5.mjs";import"./chunk-IQKIHFNZ.mjs";import"./chunk-BVF64D6H.mjs";export{a as default};
1
+ import{a}from"./chunk-NXKXOSE6.mjs";import"./chunk-RNFYEZLL.mjs";import"./chunk-IQC2I5A5.mjs";import"./chunk-IQKIHFNZ.mjs";import"./chunk-BVF64D6H.mjs";export{a as default};
@@ -0,0 +1 @@
1
+ import{a}from"./chunk-MLW6Y4RN.mjs";import"./chunk-KRVXRP5F.mjs";import"./chunk-37EFVZWT.mjs";import"./chunk-RNFYEZLL.mjs";import"./chunk-6YJP57MZ.mjs";import"./chunk-BVF64D6H.mjs";export{a as default};
@@ -0,0 +1 @@
1
+ import{ea as a}from"./chunk-2AV7HRRL.mjs";import"./chunk-YQRKT47I.mjs";import"./chunk-VXUJWPIK.mjs";import"./chunk-OLLY3Q7M.mjs";import"./chunk-XKO4RYKN.mjs";import"./chunk-X6HUH6K4.mjs";import"./chunk-V6DAD4S4.mjs";import"./chunk-24P6DAB3.mjs";import"./chunk-RNFYEZLL.mjs";import"./chunk-4GEWSUX5.mjs";import"./chunk-MTJHQATU.mjs";import"./chunk-IQKIHFNZ.mjs";import"./chunk-YAQFFQPG.mjs";import"./chunk-BVF64D6H.mjs";export{a as default};
@@ -0,0 +1 @@
1
+ import{a,b}from"./chunk-25T3M6MI.mjs";import"./chunk-ENKKLU7B.mjs";import"./chunk-RNFYEZLL.mjs";import"./chunk-6YJP57MZ.mjs";import"./chunk-BVF64D6H.mjs";export{a as LiquifyWebGPURenderer,b as default};
@@ -1,4 +1,4 @@
1
- import{A as B}from"./chunk-XDMZP3E2.mjs";import{e as h}from"./chunk-BVF64D6H.mjs";h();h();h();function M(r){return typeof r=="object"&&r!==null&&"particleStatic"in r&&typeof r.particleFrame=="function"}var w=32,S=32,R=8,L=8,T=24,E=64,_=64,F=`
1
+ import{A as B}from"./chunk-RNFYEZLL.mjs";import{e as h}from"./chunk-BVF64D6H.mjs";h();h();h();function M(r){return typeof r=="object"&&r!==null&&"particleStatic"in r&&typeof r.particleFrame=="function"}var w=32,S=32,R=8,L=8,T=24,E=64,_=64,F=`
2
2
  struct Particle {
3
3
  pos : vec2<f32>,
4
4
  vel : vec2<f32>,
@@ -0,0 +1 @@
1
+ import{a}from"./chunk-7EHUT5A3.mjs";import"./chunk-NVTPJUNG.mjs";import"./chunk-MJN3LOZ7.mjs";import"./chunk-V6DAD4S4.mjs";import"./chunk-ENKKLU7B.mjs";import"./chunk-RNFYEZLL.mjs";import"./chunk-6YJP57MZ.mjs";import"./chunk-BVF64D6H.mjs";export{a as default};
@@ -0,0 +1 @@
1
+ import{a}from"./chunk-XJ4CQIZZ.mjs";import"./chunk-ENKKLU7B.mjs";import"./chunk-RNFYEZLL.mjs";import"./chunk-6YJP57MZ.mjs";import"./chunk-BVF64D6H.mjs";export{a as default};
@@ -0,0 +1 @@
1
+ import{a}from"./chunk-ENS4KUJV.mjs";import"./chunk-ENKKLU7B.mjs";import"./chunk-RNFYEZLL.mjs";import"./chunk-6YJP57MZ.mjs";import"./chunk-BVF64D6H.mjs";export{a as default};
@@ -0,0 +1 @@
1
+ import{a,b}from"./chunk-24H3QVYB.mjs";import"./chunk-ENKKLU7B.mjs";import"./chunk-RNFYEZLL.mjs";import"./chunk-6YJP57MZ.mjs";import"./chunk-BVF64D6H.mjs";export{a as ColorBalanceWebGPURenderer,b as default};
@@ -1,4 +1,4 @@
1
- import{a as k,d as F,e as V,f as T,g as D,k as L}from"./chunk-ENKKLU7B.mjs";import{A,y as o}from"./chunk-XDMZP3E2.mjs";import{d as b}from"./chunk-6YJP57MZ.mjs";import{e as u}from"./chunk-BVF64D6H.mjs";u();u();var z=`
1
+ import{a as k,d as F,e as V,f as T,g as D,k as L}from"./chunk-ENKKLU7B.mjs";import{A,y as o}from"./chunk-RNFYEZLL.mjs";import{d as b}from"./chunk-6YJP57MZ.mjs";import{e as u}from"./chunk-BVF64D6H.mjs";u();u();var z=`
2
2
  struct VFXUniforms {
3
3
  effectType : f32,
4
4
  outputType : f32,
@@ -0,0 +1 @@
1
+ import{a}from"./chunk-QQJPPGH5.mjs";import"./chunk-MJN3LOZ7.mjs";import"./chunk-V6DAD4S4.mjs";import"./chunk-ENKKLU7B.mjs";import"./chunk-RNFYEZLL.mjs";import"./chunk-6YJP57MZ.mjs";import"./chunk-BVF64D6H.mjs";export{a as default};
@@ -1,4 +1,4 @@
1
- import{a as x,d as g,f as T,h as v,j as U,m as P}from"./chunk-ENKKLU7B.mjs";import{A as h}from"./chunk-XDMZP3E2.mjs";import"./chunk-6YJP57MZ.mjs";import{e as p}from"./chunk-BVF64D6H.mjs";p();p();var w="rgba16float",k=`
1
+ import{a as x,d as g,f as T,h as v,j as U,m as P}from"./chunk-ENKKLU7B.mjs";import{A as h}from"./chunk-RNFYEZLL.mjs";import"./chunk-6YJP57MZ.mjs";import{e as p}from"./chunk-BVF64D6H.mjs";p();p();var w="rgba16float",k=`
2
2
  struct U { a : vec4<f32>, b : vec4<f32> };
3
3
  @group(0) @binding(0) var<uniform> u : U;
4
4
  @group(0) @binding(1) var historyTex : texture_2d<f32>;
@@ -1 +1 @@
1
- import{a as l,b as m,c as n,d as o}from"./chunk-GMGGDADT.mjs";import"./chunk-CPFPY35C.mjs";import{a as p}from"./chunk-RHRMEBNK.mjs";import{a as k}from"./chunk-KT35IPCF.mjs";import"./chunk-FLPSWDX4.mjs";import"./chunk-NQZKBFC6.mjs";import"./chunk-ENKKLU7B.mjs";import"./chunk-VUFDQJ2B.mjs";import"./chunk-Z6UKUHPU.mjs";import"./chunk-VONDRBA2.mjs";import"./chunk-37EFVZWT.mjs";import"./chunk-2SJ4BBMT.mjs";import"./chunk-NIRW77QA.mjs";import"./chunk-24P6DAB3.mjs";import"./chunk-Q4Z54DQ7.mjs";import{i as a,k as b,q as c,r as d,s as e,t as f}from"./chunk-XDMZP3E2.mjs";import{a as g,b as h,c as i,d as j}from"./chunk-6YJP57MZ.mjs";import"./chunk-BVF64D6H.mjs";export{p as AudioSignal,g as AudioSignalComputePipeline,l as AudioSignalExtractorNode,f as Signal,n as SignalGateNode,o as SignalMathNode,m as SignalNode,i as SignalRegistry,h as buildWGSLSignalFn,b as computed,e as cosineSignal,k as modulateRenderer,a as signal,c as signalBuilder,j as signalRegistry,d as sineSignal};
1
+ import{a as l,b as m,c as n,d as o}from"./chunk-CEIOI4HO.mjs";import"./chunk-I6E3AKLS.mjs";import{a as p}from"./chunk-DKXKOUQR.mjs";import{a as k}from"./chunk-MRDJNDYV.mjs";import"./chunk-MJN3LOZ7.mjs";import"./chunk-V6DAD4S4.mjs";import"./chunk-ENKKLU7B.mjs";import"./chunk-VUFDQJ2B.mjs";import"./chunk-HXHP3UHZ.mjs";import"./chunk-AJLPRIXB.mjs";import"./chunk-37EFVZWT.mjs";import"./chunk-2SJ4BBMT.mjs";import"./chunk-NIRW77QA.mjs";import"./chunk-24P6DAB3.mjs";import"./chunk-Q4Z54DQ7.mjs";import{i as a,k as b,q as c,r as d,s as e,t as f}from"./chunk-RNFYEZLL.mjs";import{a as g,b as h,c as i,d as j}from"./chunk-6YJP57MZ.mjs";import"./chunk-BVF64D6H.mjs";export{p as AudioSignal,g as AudioSignalComputePipeline,l as AudioSignalExtractorNode,f as Signal,n as SignalGateNode,o as SignalMathNode,m as SignalNode,i as SignalRegistry,h as buildWGSLSignalFn,b as computed,e as cosineSignal,k as modulateRenderer,a as signal,c as signalBuilder,j as signalRegistry,d as sineSignal};
@@ -1,6 +1,6 @@
1
- import { Ht as parseCssGradient, Rt as mixColors, Vt as parseCssColor, ht as createVirtualMedia, l as Color, wt as getActiveMediaMetadata } from "./dist-ClyC_d66.mjs";
2
- import { t as ColorSchema } from "./dist-SB9qfAko.mjs";
3
- import { Mt as KineticMarqueeConfigSchema, Nn as signalRegistry, Yt as TextPathOptionsSchema, gt as AETextAnimatorSchema, nn as TypewriterAnimatorSchema, vt as AdvancedTextAnimatorSchema } from "./dist-CspOG4V1.mjs";
1
+ import { $t as parseCssGradient, Kt as mixColors, Ot as getActiveMediaMetadata, Qt as parseCssColor, gt as createVirtualMedia, l as Color, ut as assertNever, y as Effect } from "./dist-DFeF-ygz.mjs";
2
+ import { t as ColorSchema } from "./dist-CQZ5_60A.mjs";
3
+ import { Mt as KineticMarqueeConfigSchema, Nn as signalRegistry, Yt as TextPathOptionsSchema, gt as AETextAnimatorSchema, nn as TypewriterAnimatorSchema, vt as AdvancedTextAnimatorSchema } from "./dist-BBUrGwqd.mjs";
4
4
  import { z } from "zod";
5
5
  import { loadYoga } from "yoga-layout/load";
6
6
 
@@ -57,6 +57,12 @@ function dirOf(node) {
57
57
  case "flex": return node.dir ?? "row";
58
58
  case "block": return "column";
59
59
  case "box": return node.children && node.children.length > 0 ? "column" : null;
60
+ case "text":
61
+ case "media":
62
+ case "shape":
63
+ case "camera":
64
+ case "light":
65
+ case "model3d":
60
66
  default: return null;
61
67
  }
62
68
  }
@@ -164,7 +170,7 @@ function buildYogaNode(yoga, layoutNode, parentExtent, measure, parentDir) {
164
170
  const measured = measure?.(node) ?? null;
165
171
  if (measured) {
166
172
  const hasRatio = node.aspectRatio !== void 0;
167
- const isCaption = node.dataType === "Caption";
173
+ const isCaption = node.kind === "media" && node.dataType === "Caption";
168
174
  const intrinsicRatio = measured.height > 0 ? measured.width / measured.height : 1;
169
175
  if (node.kind === "media" && !isCaption && !hasRatio) yn.setAspectRatio(intrinsicRatio);
170
176
  const isWAuto = wSpec === void 0 || wSpec === "auto" || wSpec === "fit";
@@ -512,18 +518,14 @@ var LayerAnimation = class LayerAnimation$1 {
512
518
  tracks = [];
513
519
  /** Hold each value for this many frames (see {@link LayerAnimation.stepped}). */
514
520
  frameStep;
521
+ defaultRepeat;
522
+ defaultYoyo;
515
523
  constructor(tracks = []) {
516
524
  this.tracks = [...tracks];
517
525
  }
518
526
  static create() {
519
527
  return new LayerAnimation$1();
520
528
  }
521
- /**
522
- * Stepped timing for the whole layer: every animated value is held for
523
- * `frames` frames ("on twos" = 2, "on threes" = 3), the choppy, hand-made
524
- * look of stop motion and cel animation. Applies to all of the layer's
525
- * tracks, including ones added by other `.animate()` calls.
526
- */
527
529
  static stepped(frames = 2) {
528
530
  return new LayerAnimation$1().stepped(frames);
529
531
  }
@@ -536,8 +538,8 @@ var LayerAnimation = class LayerAnimation$1 {
536
538
  return new LayerAnimation$1().fromTo(prop, fromValue, toValue, options);
537
539
  }
538
540
  /** A track from a list of `[frame, value, ease?]` keyframes; see {@link LayerAnimation.keys}. */
539
- static keys(prop, keyframes) {
540
- return new LayerAnimation$1().keys(prop, keyframes);
541
+ static keys(prop, keyframes, options) {
542
+ return new LayerAnimation$1().keys(prop, keyframes, options);
541
543
  }
542
544
  static signal(prop, signalOrHandleId, options = {}) {
543
545
  return new LayerAnimation$1().signal(prop, signalOrHandleId, options);
@@ -578,11 +580,47 @@ var LayerAnimation = class LayerAnimation$1 {
578
580
  static rotation(fromAngle, toAngle, options = {}) {
579
581
  return new LayerAnimation$1().fromTo("rotation", fromAngle, toAngle, options);
580
582
  }
583
+ static scale(fromScale, toScale, options = {}) {
584
+ return new LayerAnimation$1().fromTo("scale", fromScale, toScale, options);
585
+ }
586
+ static scaleX(fromScale, toScale, options = {}) {
587
+ return new LayerAnimation$1().fromTo("scaleX", fromScale, toScale, options);
588
+ }
589
+ static scaleY(fromScale, toScale, options = {}) {
590
+ return new LayerAnimation$1().fromTo("scaleY", fromScale, toScale, options);
591
+ }
581
592
  addTrack(track) {
582
593
  this.tracks.push(track);
583
594
  return this;
584
595
  }
585
596
  /**
597
+ * Configures repeat count on all tracks, or on a specific prop's track:
598
+ * - `-1`: loops indefinitely.
599
+ * - `N`: repeats N times after the initial iteration (total N + 1 iterations).
600
+ */
601
+ repeat(count = -1, prop) {
602
+ this.defaultRepeat = count;
603
+ for (const track of this.tracks) if (!prop || track.prop === prop) track.repeat = count;
604
+ return this;
605
+ }
606
+ /**
607
+ * Enables or disables yoyo (alternate playback direction on each repeat iteration).
608
+ */
609
+ yoyo(enable = true, prop) {
610
+ this.defaultYoyo = enable;
611
+ for (const track of this.tracks) if (!prop || track.prop === prop) track.yoyo = enable;
612
+ return this;
613
+ }
614
+ /**
615
+ * Shorthand to loop keyframed animation continuously (infinite repeat).
616
+ * If `options.yoyo` is true, oscillates back and forth.
617
+ */
618
+ loop(options = {}, prop) {
619
+ this.repeat(-1, prop);
620
+ if (options.yoyo) this.yoyo(true, prop);
621
+ return this;
622
+ }
623
+ /**
586
624
  * Creates a keyframed track animating from fromValue to toValue.
587
625
  */
588
626
  fromTo(prop, fromValue, toValue, options = {}) {
@@ -591,13 +629,19 @@ var LayerAnimation = class LayerAnimation$1 {
591
629
  const ease = parseEase(options.ease);
592
630
  let track = this.tracks.find((t) => t.prop === prop && (!t.source || t.source.type === "keyframe"));
593
631
  if (!track) {
594
- track = {
632
+ const newTrack = {
595
633
  id: `${prop}_fromTo_${this.tracks.length}`,
596
634
  prop,
597
- keyframes: []
635
+ keyframes: [],
636
+ ...this.defaultRepeat !== void 0 && { repeat: this.defaultRepeat },
637
+ ...this.defaultYoyo !== void 0 && { yoyo: this.defaultYoyo }
598
638
  };
599
- this.tracks.push(track);
639
+ this.tracks.push(newTrack);
640
+ track = newTrack;
600
641
  }
642
+ if (options.repeat !== void 0) track.repeat = options.repeat;
643
+ if (options.yoyo !== void 0) track.yoyo = options.yoyo;
644
+ if (options.durationFrames !== void 0) track.durationFrames = options.durationFrames;
601
645
  const id = track.id;
602
646
  if (track.keyframes.length === 0 && start > 0) track.keyframes.push({
603
647
  id: `${id}_k0`,
@@ -624,12 +668,15 @@ var LayerAnimation = class LayerAnimation$1 {
624
668
  keyframe(prop, frame, value, ease) {
625
669
  let track = this.tracks.find((t) => t.prop === prop && (!t.source || t.source.type === "keyframe"));
626
670
  if (!track) {
627
- track = {
671
+ const newTrack = {
628
672
  id: `${prop}_track_${this.tracks.length}`,
629
673
  prop,
630
- keyframes: []
674
+ keyframes: [],
675
+ ...this.defaultRepeat !== void 0 && { repeat: this.defaultRepeat },
676
+ ...this.defaultYoyo !== void 0 && { yoyo: this.defaultYoyo }
631
677
  };
632
- this.tracks.push(track);
678
+ this.tracks.push(newTrack);
679
+ track = newTrack;
633
680
  }
634
681
  const parsedEase = parseEase(ease);
635
682
  const kf = {
@@ -649,8 +696,16 @@ var LayerAnimation = class LayerAnimation$1 {
649
696
  * `.keys("scale", [[0, 0], [12, 1.1, "back.out"], [20, 1]])`.
650
697
  * Frames are rounded to whole frames, so beat math can be passed straight in.
651
698
  */
652
- keys(prop, keyframes) {
699
+ keys(prop, keyframes, options) {
653
700
  for (const [frame, value, ease] of keyframes) this.keyframe(prop, Math.round(frame), value, ease);
701
+ if (options) {
702
+ const track = this.tracks.find((t) => t.prop === prop && (!t.source || t.source.type === "keyframe"));
703
+ if (track) {
704
+ if (options.repeat !== void 0) track.repeat = options.repeat;
705
+ if (options.yoyo !== void 0) track.yoyo = options.yoyo;
706
+ if (options.durationFrames !== void 0) track.durationFrames = options.durationFrames;
707
+ }
708
+ }
654
709
  return this;
655
710
  }
656
711
  /**
@@ -761,6 +816,24 @@ var LayerAnimation = class LayerAnimation$1 {
761
816
  return this.fromTo("rotateZ", fromAngle, toAngle, options);
762
817
  }
763
818
  /**
819
+ * Animate scale along the X axis.
820
+ */
821
+ scaleX(fromScale, toScale, options = {}) {
822
+ return this.fromTo("scaleX", fromScale, toScale, options);
823
+ }
824
+ /**
825
+ * Animate scale along the Y axis.
826
+ */
827
+ scaleY(fromScale, toScale, options = {}) {
828
+ return this.fromTo("scaleY", fromScale, toScale, options);
829
+ }
830
+ /**
831
+ * Animate uniform scale.
832
+ */
833
+ scale(fromScale, toScale, options = {}) {
834
+ return this.fromTo("scale", fromScale, toScale, options);
835
+ }
836
+ /**
764
837
  * Animate perspective camera distance in pixels.
765
838
  */
766
839
  perspective(fromDist, toDist, options = {}) {
@@ -1027,13 +1100,18 @@ var LayerAnimation = class LayerAnimation$1 {
1027
1100
  return this;
1028
1101
  }
1029
1102
  static merge(...anims) {
1030
- return new LayerAnimation$1().merge(...anims);
1103
+ const result = new LayerAnimation$1();
1104
+ result.tracks = mergeAnimationTracks(anims.flatMap((o) => o.tracks));
1105
+ return result;
1031
1106
  }
1032
1107
  /**
1033
1108
  * Returns the validated LayerAnimation specification object.
1034
1109
  */
1035
1110
  toSpec() {
1036
- return { tracks: this.tracks };
1111
+ return {
1112
+ tracks: this.tracks,
1113
+ ...this.frameStep !== void 0 && { frameStep: this.frameStep }
1114
+ };
1037
1115
  }
1038
1116
  toJSON() {
1039
1117
  return this.toSpec();
@@ -1899,21 +1977,47 @@ const COLOR_PROPS$1 = new Set([
1899
1977
  "textBackgroundColor",
1900
1978
  "color"
1901
1979
  ]);
1980
+ function computeRepeatFrame(track, localFrame, startFrame, lastFrame) {
1981
+ const repeat = track.repeat ?? 0;
1982
+ const cycleSpan = lastFrame - startFrame;
1983
+ const cycleDuration = track.durationFrames !== void 0 && track.durationFrames > 0 ? track.durationFrames : cycleSpan;
1984
+ if (repeat === 0 || cycleDuration <= 0) {
1985
+ if (localFrame >= lastFrame) {
1986
+ const kfs = track.keyframes ?? [];
1987
+ return { completedValue: kfs[kfs.length - 1].value };
1988
+ }
1989
+ return { frame: localFrame };
1990
+ }
1991
+ const delta = localFrame - startFrame;
1992
+ const cycleIndex = Math.floor(delta / cycleDuration);
1993
+ if (repeat > 0 && cycleIndex >= 1 + repeat) {
1994
+ const isFinalReverse = Boolean(track.yoyo) && repeat % 2 === 1;
1995
+ const kfs = track.keyframes ?? [];
1996
+ return { completedValue: isFinalReverse ? kfs[0].value : kfs[kfs.length - 1].value };
1997
+ }
1998
+ const cycleOffset = delta - cycleIndex * cycleDuration;
1999
+ if (Boolean(track.yoyo) && cycleIndex % 2 === 1) return { frame: cycleOffset >= cycleSpan ? startFrame : lastFrame - cycleOffset };
2000
+ return { frame: cycleOffset >= cycleSpan ? lastFrame : startFrame + cycleOffset };
2001
+ }
1902
2002
  /**
1903
- * Standard keyframe track evaluation.
2003
+ * Standard keyframe track evaluation with loop (repeat/yoyo) support.
1904
2004
  */
1905
2005
  function evaluateKeyframes(track, localFrame, ease) {
1906
2006
  const keyframes = track.keyframes ?? [];
1907
2007
  if (keyframes.length === 0) return 0;
1908
2008
  if (keyframes.length === 1) return keyframes[0].value;
1909
- if (localFrame <= keyframes[0].frame) return keyframes[0].value;
1910
- if (localFrame >= keyframes[keyframes.length - 1].frame) return keyframes[keyframes.length - 1].value;
2009
+ const startFrame = keyframes[0].frame;
2010
+ if (localFrame <= startFrame) return keyframes[0].value;
2011
+ const lastFrame = keyframes[keyframes.length - 1].frame;
2012
+ const repeatResolution = computeRepeatFrame(track, localFrame, startFrame, lastFrame);
2013
+ if ("completedValue" in repeatResolution) return repeatResolution.completedValue;
2014
+ const evalFrame = repeatResolution.frame;
1911
2015
  for (let i = 0; i < keyframes.length - 1; i++) {
1912
2016
  const kf0 = keyframes[i];
1913
2017
  const kf1 = keyframes[i + 1];
1914
- if (localFrame >= kf0.frame && localFrame <= kf1.frame) {
2018
+ if (evalFrame >= kf0.frame && evalFrame <= kf1.frame) {
1915
2019
  const delta = kf1.frame - kf0.frame;
1916
- const linear = delta > 0 ? (localFrame - kf0.frame) / delta : 0;
2020
+ const linear = delta > 0 ? (evalFrame - kf0.frame) / delta : 0;
1917
2021
  const t = ease ? ease(kf1.ease ?? kf0.ease, delta, linear) : linear;
1918
2022
  if (typeof kf0.value === "boolean") return linear >= 1 ? kf1.value : kf0.value;
1919
2023
  if (typeof kf0.value === "string" && typeof kf1.value === "string") {
@@ -1995,6 +2099,12 @@ const COLOR_PROPS = [
1995
2099
  "emissive",
1996
2100
  "color"
1997
2101
  ];
2102
+ /**
2103
+ * Keyframes on one layer past which an animation is probably keyed every
2104
+ * frame by mistake. There is no hard limit: evaluation and playback handle
2105
+ * any count, but programs this size are slow to send, read and edit.
2106
+ */
2107
+ const LARGE_ANIMATION_KEYFRAMES = 2e3;
1998
2108
  /** Contrast below this makes text hard to read (WCAG large-text minimum). */
1999
2109
  const MIN_TEXT_CONTRAST = 3;
2000
2110
  function tracksOf(node) {
@@ -2081,11 +2191,15 @@ function lintComposition(config) {
2081
2191
  "translateX",
2082
2192
  "translateY",
2083
2193
  "scale",
2194
+ "scaleX",
2195
+ "scaleY",
2084
2196
  "rotation"
2085
2197
  ])) {
2086
2198
  const { x, y, width, height } = node;
2087
2199
  if (x + width <= 0 || y + height <= 0 || x >= W || y >= H) push("warning", "offscreen_layer", `'${id}' sits entirely outside the ${W}×${H} canvas (x ${x}, y ${y}) and never moves in.`, id);
2088
2200
  }
2201
+ const keyframeCount = tracksOf(node).reduce((n, t) => n + (t.keyframes?.length ?? 0), 0);
2202
+ if (keyframeCount > LARGE_ANIMATION_KEYFRAMES) push("warning", "large_animation", `'${id}' has ${keyframeCount} keyframes across its tracks (over ${LARGE_ANIMATION_KEYFRAMES}). Keying every frame is rarely needed: key the turning points and let eases fill in, or drive the prop from a signal.`, id);
2089
2203
  for (const t of tracksOf(node)) {
2090
2204
  const kfs = t.keyframes ?? [];
2091
2205
  if ((!t.source || t.source.type === "keyframe") && kfs.length >= 2 && kfs.every((k) => JSON.stringify(k.value) === JSON.stringify(kfs[0].value))) push("info", "static_track", `'${id}' animates \`${t.prop}\` but every keyframe holds ${JSON.stringify(kfs[0].value)}.`, id);
@@ -2143,6 +2257,21 @@ function hoistOne(owner) {
2143
2257
  function hoistMattes(nodes) {
2144
2258
  return nodes.flatMap((n) => hoistOne(n));
2145
2259
  }
2260
+ /**
2261
+ * Compositor program document v2 — THE single source of truth for a
2262
+ * composition (spec: `nodes/node-compositor/SKILL.md`).
2263
+ *
2264
+ * The config IS a tree of HTML-like layout nodes (`layout`), replacing the
2265
+ * v1 flat `layers[]`. No `layers`, no `layerUpdates`, no aliases: the tree
2266
+ * is what agents write, what the editor edits, what the renderer renders.
2267
+ *
2268
+ * Design rules (hard):
2269
+ * - strict zod, `.strict()` everywhere; unknown keys are rejected by the
2270
+ * pre-parse scan in `validate.ts` (zod alone would silently strip them)
2271
+ * - recursive container fields use `z.lazy`; leaf kinds are plain objects
2272
+ * - every field that can animate is in `AnimatablePropSchema`
2273
+ * - no backwards compatibility: v1 shapes fail fast with E-codes
2274
+ */
2146
2275
  /** number px | "auto" (intrinsic) | "fit" (shrink-wrap) | "fill" (parent extent). */
2147
2276
  const SizeSpecSchema = z.union([
2148
2277
  z.number().min(0),
@@ -2162,6 +2291,11 @@ const ShapeTypeSchema = z.enum([
2162
2291
  "arrow",
2163
2292
  "path"
2164
2293
  ]);
2294
+ const EffectSpecSchema = z.union([
2295
+ z.instanceof(Effect),
2296
+ z.object({ op: z.string().min(1) }).passthrough(),
2297
+ z.custom((val) => Boolean(val && typeof val === "object" && "op" in val && typeof val.op === "string"))
2298
+ ]);
2165
2299
  const AnimatablePropSchema = z.enum([
2166
2300
  "x",
2167
2301
  "y",
@@ -2398,11 +2532,9 @@ const TrackSourceSchema = z.preprocess((val) => {
2398
2532
  }, RawTrackSourceSchema);
2399
2533
  const animationInvariants = (anim, ctx) => {
2400
2534
  if (!anim?.tracks) return;
2401
- let totalKeyframes = 0;
2402
2535
  for (let tIdx = 0; tIdx < anim.tracks.length; tIdx++) {
2403
2536
  const track = anim.tracks[tIdx];
2404
2537
  const keyframes = track.keyframes ?? [];
2405
- totalKeyframes += keyframes.length;
2406
2538
  if ((!track.source || track.source.type === "keyframe") && keyframes.length < 1) ctx.addIssue({
2407
2539
  code: z.ZodIssueCode.custom,
2408
2540
  message: `Track for property '${track.prop}' must have at least 1 keyframe.`,
@@ -2488,11 +2620,6 @@ const animationInvariants = (anim, ctx) => {
2488
2620
  });
2489
2621
  }
2490
2622
  }
2491
- if (totalKeyframes > 128) ctx.addIssue({
2492
- code: z.ZodIssueCode.custom,
2493
- message: `Total keyframes across all tracks (${totalKeyframes}) exceeds the limit of 128.`,
2494
- path: ["tracks"]
2495
- });
2496
2623
  };
2497
2624
  const AnimationTrackSchema = z.object({
2498
2625
  id: z.string().min(1),
@@ -2531,9 +2658,11 @@ const BaseNodeFields = {
2531
2658
  hidden: z.boolean().default(false),
2532
2659
  opacity: z.number().min(0).max(1).default(1),
2533
2660
  blendMode: z.string().optional(),
2534
- effects: z.array(z.unknown()).optional(),
2661
+ effects: z.array(EffectSpecSchema).optional(),
2535
2662
  rotation: z.number().default(0),
2536
2663
  scale: z.number().min(0).default(1),
2664
+ scaleX: z.number().default(1),
2665
+ scaleY: z.number().default(1),
2537
2666
  anchorX: z.number().min(0).max(1).default(.5),
2538
2667
  anchorY: z.number().min(0).max(1).default(.5),
2539
2668
  startFrame: z.number().int().min(0).default(0),
@@ -2968,6 +3097,7 @@ const MediaNodeSchema = z.object({
2968
3097
  ...BaseNodeFields,
2969
3098
  kind: z.literal("media"),
2970
3099
  inputHandleId: z.string().min(1),
3100
+ src: z.string().optional(),
2971
3101
  dataType: z.string().optional(),
2972
3102
  fit: z.enum([
2973
3103
  "cover",
@@ -3107,7 +3237,14 @@ const Model3DNodeSchema = z.object({
3107
3237
  text3dOptions: z.unknown().optional(),
3108
3238
  primitive3d: z.unknown().optional()
3109
3239
  }).strict();
3110
- const LayoutNodeSchema = z.lazy(() => z.union([
3240
+ /**
3241
+ * Dispatch on `kind`, not a plain union: a plain union tries every member,
3242
+ * and each member parses `children` before failing, so parse time grows
3243
+ * ~3x per nesting level (a depth-14 tree took minutes). The node schemas
3244
+ * are typed `ZodType<…>` for their recursive types, but each is a strict
3245
+ * object with a `kind` literal, which is all `discriminatedUnion` reads.
3246
+ */
3247
+ const LayoutNodeSchema = z.lazy(() => z.discriminatedUnion("kind", [
3111
3248
  FlexNodeSchema,
3112
3249
  BlockNodeSchema,
3113
3250
  BoxNodeSchema,
@@ -3129,7 +3266,7 @@ const CompositorProgramSchema = z.object({
3129
3266
  layout: z.array(LayoutNodeSchema).default([]),
3130
3267
  fonts: z.array(z.string()).optional(),
3131
3268
  signals: z.record(z.string(), z.unknown()).optional(),
3132
- effects: z.array(z.unknown()).optional(),
3269
+ effects: z.array(EffectSpecSchema).optional(),
3133
3270
  vision: z.unknown().optional(),
3134
3271
  onRequestFrame: z.custom().optional()
3135
3272
  }).strict();
@@ -3327,8 +3464,8 @@ function computeStaggerDelay(index, totalCount, staggerFrames, direction = "forw
3327
3464
  const dist = Math.abs(index - center);
3328
3465
  return Math.round(dist * staggerFrames);
3329
3466
  }
3330
- case "forward":
3331
- default: return index * staggerFrames;
3467
+ case "forward": return index * staggerFrames;
3468
+ default: return assertNever(direction);
3332
3469
  }
3333
3470
  }
3334
3471
  /**
@@ -3361,12 +3498,12 @@ function applyStaggerToChildren(children, staggerFrames, direction = "forward",
3361
3498
  */
3362
3499
  function nodeToVirtualMedia(node, resolveMedia, fps, inheritedOffset = 0, compDurationMs, inheritedDurationFrames) {
3363
3500
  let children = [];
3364
- const sourceRef = node.src ?? node.inputHandleId;
3501
+ const sourceRef = node.kind === "media" ? node.src ?? node.inputHandleId : "inputHandleId" in node ? node.inputHandleId : void 0;
3365
3502
  const isDirectMediaSource = (s) => typeof s === "string" && (s.startsWith("http://") || s.startsWith("https://") || s.startsWith("file://") || s.startsWith("/") || s.startsWith("./") || s.startsWith("blob:") || s.startsWith("data:") || /\.(png|jpe?g|webp|gif|svg|mp4|webm|mov|mkv|mp3|wav|ogg|m4a|srt|vtt|json|lottie)$/i.test(s));
3366
3503
  let media;
3367
3504
  if (node.kind === "media") {
3368
- if (resolveMedia) media = resolveMedia(node.inputHandleId);
3369
- if (!media && sourceRef && (isDirectMediaSource(sourceRef) || node.src)) media = createVirtualMedia(sourceRef, node.dataType ?? "Video");
3505
+ if (resolveMedia && node.inputHandleId) media = resolveMedia(node.inputHandleId);
3506
+ if (!media && sourceRef && (isDirectMediaSource(sourceRef) || Boolean(node.src))) media = createVirtualMedia(sourceRef, node.dataType ?? "Video");
3370
3507
  if (!media && !resolveMedia && sourceRef && (sourceRef.includes(".") || sourceRef.includes("/"))) console.warn(`[Compositor] Media layer '${node.id ?? "?"}' source '${sourceRef}' could not be resolved.`);
3371
3508
  if (media && node.crop) {
3372
3509
  const cropRaw = node.crop;
@@ -3381,18 +3518,23 @@ function nodeToVirtualMedia(node, resolveMedia, fps, inheritedOffset = 0, compDu
3381
3518
  children: [media]
3382
3519
  };
3383
3520
  }
3384
- if (media && Array.isArray(node.effects)) for (const eff of node.effects) {
3385
- const effOp = typeof eff.toOperation === "function" ? eff.toOperation() : eff;
3386
- media = {
3387
- metadata: { ...media.metadata },
3388
- operation: {
3389
- id: node.id ? `${node.id}-${effOp.op ?? "effect"}` : void 0,
3390
- effect: eff,
3391
- ...effOp,
3392
- dataType: media.operation.dataType
3393
- },
3394
- children: [media]
3395
- };
3521
+ if (media && Array.isArray(node.effects)) {
3522
+ let currentMedia = media;
3523
+ for (const eff of node.effects) {
3524
+ const effOp = eff && typeof eff.toOperation === "function" ? eff.toOperation() : eff;
3525
+ currentMedia = {
3526
+ metadata: { ...currentMedia.metadata },
3527
+ operation: {
3528
+ op: String(effOp.op ?? "effect"),
3529
+ id: node.id ? `${node.id}-${effOp.op ?? "effect"}` : void 0,
3530
+ effect: eff,
3531
+ ...effOp,
3532
+ dataType: currentMedia.operation.dataType
3533
+ },
3534
+ children: [currentMedia]
3535
+ };
3536
+ }
3537
+ media = currentMedia;
3396
3538
  }
3397
3539
  if (media && node.vision) {
3398
3540
  const visionRaw = node.vision;
@@ -3412,12 +3554,13 @@ function nodeToVirtualMedia(node, resolveMedia, fps, inheritedOffset = 0, compDu
3412
3554
  }
3413
3555
  if (node.kind === "media") children = media ? [media] : [];
3414
3556
  else if ("children" in node && node.children) {
3415
- const staggerFrames = "staggerFrames" in node && typeof node.staggerFrames === "number" ? node.staggerFrames : 0;
3416
- const staggerDirection = "staggerDirection" in node && typeof node.staggerDirection === "string" ? node.staggerDirection : "forward";
3557
+ const staggerFrames = node.kind === "flex" && typeof node.staggerFrames === "number" ? node.staggerFrames : 0;
3558
+ const staggerDirection = node.kind === "flex" && typeof node.staggerDirection === "string" ? node.staggerDirection : "forward";
3417
3559
  const nodeStart = typeof node.startFrame === "number" && Number.isFinite(node.startFrame) ? Math.round(node.startFrame) : 0;
3418
3560
  const nodeDuration = typeof node.durationFrames === "number" && Number.isFinite(node.durationFrames) ? Math.round(node.durationFrames) : inheritedDurationFrames;
3419
- children = node.children.map((c, idx) => {
3420
- const delay = computeStaggerDelay(idx, node.children.length, staggerFrames, staggerDirection);
3561
+ const nodeChildren = node.children;
3562
+ children = nodeChildren.map((c, idx) => {
3563
+ const delay = computeStaggerDelay(idx, nodeChildren.length, staggerFrames, staggerDirection);
3421
3564
  return nodeToVirtualMedia(c, resolveMedia, fps, inheritedOffset + nodeStart + delay, compDurationMs, c.durationFrames === void 0 ? nodeDuration : void 0);
3422
3565
  });
3423
3566
  }
@@ -3435,7 +3578,7 @@ function nodeToVirtualMedia(node, resolveMedia, fps, inheritedOffset = 0, compDu
3435
3578
  const defaultCompDuration = inheritedDurationFrames ?? Math.round((compDurationMs ?? 1e4) / 1e3 * fps);
3436
3579
  if (isContainer && children.length > 0) {
3437
3580
  if (dur === void 0) {
3438
- const childEnds = children.map((c) => (c.operation?.startFrame ?? 0) + (c.operation?.durationFrames ?? defaultCompDuration));
3581
+ const childEnds = children.map((c) => (c.operation.startFrame ?? 0) + (c.operation.durationFrames ?? defaultCompDuration));
3439
3582
  dur = Math.max(1, Math.max(...childEnds) - startFrame);
3440
3583
  }
3441
3584
  } else if (isCaption && limit !== void 0 && limit > 0) dur = limit;
@@ -3490,13 +3633,13 @@ function compositorToProgram(config, options) {
3490
3633
  ...collectInlineSignals(config.layout),
3491
3634
  ...signals ?? config.signals ?? {}
3492
3635
  },
3493
- ...(config.onRequestFrame || options.onRequestFrame) && { onRequestFrame: config.onRequestFrame ?? options.onRequestFrame }
3636
+ ...config.onRequestFrame || options.onRequestFrame ? { onRequestFrame: config.onRequestFrame ?? options.onRequestFrame } : {}
3494
3637
  },
3495
3638
  children: hoistMattes(config.layout).map((n) => nodeToVirtualMedia(n, resolveMedia, fps, 0, durationMs))
3496
3639
  };
3497
3640
  const effectsList = Array.isArray(options.effects) ? options.effects : Array.isArray(config.effects) ? config.effects : [];
3498
3641
  for (const eff of effectsList) {
3499
- const effOp = typeof eff.toOperation === "function" ? eff.toOperation() : eff;
3642
+ const effOp = eff && typeof eff.toOperation === "function" ? eff.toOperation() : eff;
3500
3643
  rootMedia = {
3501
3644
  metadata: { ...rootMedia.metadata },
3502
3645
  operation: {
@@ -3534,4 +3677,4 @@ function collectNodeOps(nodes) {
3534
3677
 
3535
3678
  //#endregion
3536
3679
  export { applyStaggerToChildren as A, evaluateTrackAtFrame as B, ShapeNodeSchema as C, TextSpanMarkSchema as D, TextNodeSchema as E, computeLayout as F, initLayout as H, computeLayoutSync as I, computeStaggerDelay as L, collectNodeOps as M, compositorToProgram as N, TextSpanSchema as O, computeCarrierContinuity as P, evaluateAnimationAtFrame as R, Sequence as S, TextAnimatorSchema as T, lintComposition as U, hoistMattes as V, mergeAnimationTracks as W, MediaNodeSchema as _, CarrierHandoffConfigSchema as a, SceneDefinitionSchema as b, EnvironmentFogSchema as c, LayerAnimation as d, LayoutNodeSchema as f, MatteModeSchema as g, MaterialTypeSchema as h, CameraNodeSchema as i, calculateSequenceTimeline as j, ToneMappingSchema as k, EnvironmentPresetSchema as l, LightTypeSchema as m, BoxNodeSchema as n, ColorStopSchema as o, LightNodeSchema as p, CameraAnimation as r, CompositorProgramSchema as s, BloomConfigSchema as t, FlexNodeSchema as u, Model3DNodeSchema as v, TextAnimator as w, SceneTransitionTypeSchema as x, Scene as y, evaluateKeyframes as z };
3537
- //# sourceMappingURL=program-C2cJayA1.mjs.map
3680
+ //# sourceMappingURL=program-CEHCeDpG.mjs.map