framefields 2.4.3 → 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 (484) 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-BymXfAvH.d.mts → audio-C1A4N3Wh.d.mts} +3 -3
  7. package/dist/{audio-BymXfAvH.d.mts.map → audio-C1A4N3Wh.d.mts.map} +1 -1
  8. package/dist/{audio-BzHHpImj.mjs → audio-CMHpfOoS.mjs} +4 -4
  9. package/dist/{audio-BzHHpImj.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-hmWTJPik.mjs → dist-BBUrGwqd.mjs} +24 -3
  16. package/dist/{dist-hmWTJPik.mjs.map → dist-BBUrGwqd.mjs.map} +1 -1
  17. package/dist/{dist-Bo2_zeCn.mjs → dist-CQZ5_60A.mjs} +2 -2
  18. package/dist/{dist-Bo2_zeCn.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-TrtLGPvc.mjs → dist-DFeF-ygz.mjs} +1 -1
  22. package/dist/{dist-TrtLGPvc.mjs.map → dist-DFeF-ygz.mjs.map} +1 -1
  23. package/dist/{dist-DMa2BbYs.mjs → dist-QMVy31gR.mjs} +23 -4
  24. package/dist/dist-QMVy31gR.mjs.map +1 -0
  25. package/dist/effects/index.d.mts +4 -4
  26. package/dist/effects/index.mjs +36 -36
  27. package/dist/{effects-CiZjSwIh.mjs → effects-mRe-rLte.mjs} +3 -3
  28. package/dist/{effects-CiZjSwIh.mjs.map → effects-mRe-rLte.mjs.map} +1 -1
  29. package/dist/fonts/index.d.mts +1 -1
  30. package/dist/fonts/index.mjs +3 -3
  31. package/dist/{fonts-Da1JDKpc.mjs → fonts-wI3CUYHM.mjs} +2 -2
  32. package/dist/{fonts-Da1JDKpc.mjs.map → fonts-wI3CUYHM.mjs.map} +1 -1
  33. package/dist/{gpu-CHIgM_YH.mjs → gpu-I5fdrflL.mjs} +2 -2
  34. package/dist/{gpu-CHIgM_YH.mjs.map → gpu-I5fdrflL.mjs.map} +1 -1
  35. package/dist/{index-DIvWBm-q.d.mts → index-B-KVpJMb.d.mts} +2 -2
  36. package/dist/{index-DIvWBm-q.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-WMofVN02.d.mts → index-BpdVOlsV.d.mts} +3 -3
  40. package/dist/{index-WMofVN02.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-CJkihekp.d.mts → index-D6-lH1Mx.d.mts} +189 -189
  46. package/dist/index-D6-lH1Mx.d.mts.map +1 -0
  47. package/dist/{index-Dwf76Qep.d.mts → index-DNKM3to5.d.mts} +3 -3
  48. package/dist/{index-Dwf76Qep.d.mts.map → index-DNKM3to5.d.mts.map} +1 -1
  49. package/dist/{index-DGe83M-p.d.mts → index-fymoeGNW.d.mts} +6 -1
  50. package/dist/index-fymoeGNW.d.mts.map +1 -0
  51. package/dist/index.d.mts +13 -4659
  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-5E4B96RD.mjs → preview--DEgW67P.mjs} +3 -3
  56. package/dist/{preview-5E4B96RD.mjs.map → preview--DEgW67P.mjs.map} +1 -1
  57. package/dist/preview-engine/audio.mjs +1 -1
  58. package/dist/preview-engine/{chunk-TFFG5YFI.mjs → chunk-24H3QVYB.mjs} +1 -1
  59. package/dist/preview-engine/{chunk-7J4OK4VE.mjs → chunk-25T3M6MI.mjs} +1 -1
  60. package/dist/preview-engine/{chunk-YJ6GWVL4.mjs → chunk-2AV7HRRL.mjs} +1 -1
  61. package/dist/preview-engine/{chunk-U4SQUTDV.mjs → chunk-4EOS6ZWW.mjs} +1 -1
  62. package/dist/preview-engine/{chunk-O3NOB5IB.mjs → chunk-4UI3S3UG.mjs} +1 -1
  63. package/dist/preview-engine/{chunk-YQYLBXOX.mjs → chunk-5N3GW3NE.mjs} +1 -1
  64. package/dist/preview-engine/{chunk-JJYNYYPA.mjs → chunk-5P764TTF.mjs} +1 -1
  65. package/dist/preview-engine/{chunk-5CWQHYQP.mjs → chunk-7BUKVFWB.mjs} +1 -1
  66. package/dist/preview-engine/{chunk-6WKWYUOM.mjs → chunk-7EHUT5A3.mjs} +1 -1
  67. package/dist/preview-engine/{chunk-A2775RSO.mjs → chunk-7HTTYP6T.mjs} +1 -1
  68. package/dist/preview-engine/{chunk-AWX4YGC5.mjs → chunk-7JYMNGNK.mjs} +1 -1
  69. package/dist/preview-engine/{chunk-JTUK7ZXK.mjs → chunk-A5OUYV3I.mjs} +1 -1
  70. package/dist/preview-engine/{chunk-5JSSXOBB.mjs → chunk-AJLPRIXB.mjs} +1 -1
  71. package/dist/preview-engine/{chunk-KJ2DTA77.mjs → chunk-ANZDLSSM.mjs} +1 -1
  72. package/dist/preview-engine/{chunk-OZDZQMTB.mjs → chunk-C2TA65CH.mjs} +1 -1
  73. package/dist/preview-engine/{chunk-C45ROXI6.mjs → chunk-CBQOJAIS.mjs} +11 -11
  74. package/dist/preview-engine/{chunk-E7DH7EPX.mjs → chunk-DKXKOUQR.mjs} +1 -1
  75. package/dist/preview-engine/{chunk-5SVJIGPK.mjs → chunk-DPIED3EG.mjs} +1 -1
  76. package/dist/preview-engine/{chunk-AY2ZIXST.mjs → chunk-ENS4KUJV.mjs} +1 -1
  77. package/dist/preview-engine/{chunk-5EVEGKWT.mjs → chunk-HXHP3UHZ.mjs} +1 -1
  78. package/dist/preview-engine/chunk-I6E3AKLS.mjs +1 -0
  79. package/dist/preview-engine/{chunk-JJA4G3OU.mjs → chunk-ILKBHDFB.mjs} +1 -1
  80. package/dist/preview-engine/{chunk-7QE6II7R.mjs → chunk-JMOJKT5W.mjs} +1 -1
  81. package/dist/preview-engine/{chunk-ILBZQLUF.mjs → chunk-KKBJ7X3T.mjs} +1 -1
  82. package/dist/preview-engine/{chunk-EEOUHDUD.mjs → chunk-KRVXRP5F.mjs} +1 -1
  83. package/dist/preview-engine/{chunk-UVWGZUKZ.mjs → chunk-MLW6Y4RN.mjs} +1 -1
  84. package/dist/preview-engine/{chunk-UMF7NNUA.mjs → chunk-MRDJNDYV.mjs} +1 -1
  85. package/dist/preview-engine/{chunk-XTPEGKOZ.mjs → chunk-MZAAJXUL.mjs} +1 -1
  86. package/dist/preview-engine/{chunk-AKYUVDKM.mjs → chunk-NB55FW7D.mjs} +1 -1
  87. package/dist/preview-engine/{chunk-UDDK5QZF.mjs → chunk-NG5WSR3A.mjs} +1 -1
  88. package/dist/preview-engine/{chunk-FDNR4PRC.mjs → chunk-NXKXOSE6.mjs} +1 -1
  89. package/dist/preview-engine/{chunk-N3PRZLZJ.mjs → chunk-NYEDWUFS.mjs} +1 -1
  90. package/dist/preview-engine/{chunk-6TGNQ5FD.mjs → chunk-O6LGKH4S.mjs} +1 -1
  91. package/dist/preview-engine/{chunk-LSBCFJZM.mjs → chunk-OOJAQBS3.mjs} +1 -1
  92. package/dist/preview-engine/{chunk-6AEU4DC7.mjs → chunk-PJN7DD55.mjs} +3 -3
  93. package/dist/preview-engine/{chunk-V6LCSK6Q.mjs → chunk-QCUGWPYP.mjs} +1 -1
  94. package/dist/preview-engine/{chunk-BIS3W4Z5.mjs → chunk-QQJPPGH5.mjs} +1 -1
  95. package/dist/preview-engine/{chunk-37P2KIFE.mjs → chunk-QVUT3QNF.mjs} +1 -1
  96. package/dist/preview-engine/{chunk-FSAELHVT.mjs → chunk-RNFYEZLL.mjs} +1 -1
  97. package/dist/preview-engine/{chunk-3SOD7OTO.mjs → chunk-TA5OBYRR.mjs} +1 -1
  98. package/dist/preview-engine/{chunk-6MBYREBG.mjs → chunk-VRNN6H6Y.mjs} +1 -1
  99. package/dist/preview-engine/{chunk-GIH5QURF.mjs → chunk-VTE3IISK.mjs} +1 -1
  100. package/dist/preview-engine/{chunk-GQN35VLT.mjs → chunk-VZGDX7II.mjs} +1 -1
  101. package/dist/preview-engine/{chunk-54HE34HO.mjs → chunk-XJ4CQIZZ.mjs} +1 -1
  102. package/dist/preview-engine/{chunk-LMZHCWXP.mjs → chunk-XYRBFLFF.mjs} +1 -1
  103. package/dist/preview-engine/{chunk-O5LA63CK.mjs → chunk-YMQMPBTL.mjs} +1 -1
  104. package/dist/preview-engine/{chunk-S7NG26UG.mjs → chunk-Z4ZO4RVT.mjs} +1 -1
  105. package/dist/preview-engine/{chunk-W3QGP5XF.mjs → chunk-ZFURUTVW.mjs} +1 -1
  106. package/dist/preview-engine/effects.mjs +1 -1
  107. package/dist/preview-engine/framefields.mjs +33 -31
  108. package/dist/preview-engine/player.mjs +5 -5
  109. package/dist/preview-engine/renderers-2CBJYNOC.mjs +1 -0
  110. package/dist/preview-engine/renderers-37CN7O4S.mjs +1 -0
  111. package/dist/preview-engine/renderers-3AZ5PMGC.mjs +1 -0
  112. package/dist/preview-engine/renderers-3UGG2IMP.mjs +1 -0
  113. package/dist/preview-engine/{renderers-ELARGDRC.mjs → renderers-3VXNHICC.mjs} +1 -1
  114. package/dist/preview-engine/{renderers-WNMRLGZS.mjs → renderers-3ZYXHUSW.mjs} +1 -1
  115. package/dist/preview-engine/{renderers-43LBWRY2.mjs → renderers-4FONYSBA.mjs} +1 -1
  116. package/dist/preview-engine/renderers-54I5SFXR.mjs +1 -0
  117. package/dist/preview-engine/renderers-5LXALKB4.mjs +1 -0
  118. package/dist/preview-engine/renderers-5TICPV2K.mjs +1 -0
  119. package/dist/preview-engine/{renderers-X2XGDF3R.mjs → renderers-5YS5WHAV.mjs} +1 -1
  120. package/dist/preview-engine/renderers-6UTRYW7Z.mjs +1 -0
  121. package/dist/preview-engine/{renderers-XPO2WQNF.mjs → renderers-6ZCFR7BL.mjs} +1 -1
  122. package/dist/preview-engine/renderers-AYEWAW7F.mjs +1 -0
  123. package/dist/preview-engine/{renderers-QJNGN722.mjs → renderers-BOT4H6KJ.mjs} +1 -1
  124. package/dist/preview-engine/{renderers-FNPXT2EH.mjs → renderers-C44CEIYB.mjs} +1 -1
  125. package/dist/preview-engine/{renderers-KW75FYFG.mjs → renderers-C4G7X7LD.mjs} +1 -1
  126. package/dist/preview-engine/renderers-CLCPP3TZ.mjs +1 -0
  127. package/dist/preview-engine/{renderers-7M3YOI7E.mjs → renderers-DBRC3SQE.mjs} +1 -1
  128. package/dist/preview-engine/{renderers-PM4Q5QOW.mjs → renderers-DSICQMRF.mjs} +1 -1
  129. package/dist/preview-engine/renderers-DTZ2AER5.mjs +1 -0
  130. package/dist/preview-engine/renderers-DUF2CTX6.mjs +1 -0
  131. package/dist/preview-engine/{renderers-5OGAF66H.mjs → renderers-EOIMH7UE.mjs} +1 -1
  132. package/dist/preview-engine/renderers-EOMMSENQ.mjs +1 -0
  133. package/dist/preview-engine/{renderers-K23EAM2J.mjs → renderers-GSRKNT75.mjs} +1 -1
  134. package/dist/preview-engine/{renderers-J6DEIWTU.mjs → renderers-GUJTPO37.mjs} +1 -1
  135. package/dist/preview-engine/{renderers-VD5GHHK6.mjs → renderers-HE42AT5T.mjs} +1 -1
  136. package/dist/preview-engine/{renderers-Q6AO5M54.mjs → renderers-JM7JEVBN.mjs} +1 -1
  137. package/dist/preview-engine/{renderers-WOLTH5VI.mjs → renderers-JRU2GNPE.mjs} +1 -1
  138. package/dist/preview-engine/{renderers-TFEDHXPY.mjs → renderers-K6J77OI5.mjs} +1 -1
  139. package/dist/preview-engine/{renderers-U2ZWRL25.mjs → renderers-L7EITUCD.mjs} +1 -1
  140. package/dist/preview-engine/renderers-LGUHDWWB.mjs +1 -0
  141. package/dist/preview-engine/renderers-LGXD24IJ.mjs +1 -0
  142. package/dist/preview-engine/renderers-MCTBJEL7.mjs +1 -0
  143. package/dist/preview-engine/{renderers-3YHETAPE.mjs → renderers-OBXNUQMP.mjs} +1 -1
  144. package/dist/preview-engine/renderers-OZGEXW2X.mjs +1 -0
  145. package/dist/preview-engine/{renderers-ZRR7BLB7.mjs → renderers-PJGFJGJS.mjs} +1 -1
  146. package/dist/preview-engine/{renderers-35G4KCQ2.mjs → renderers-PPGOYOID.mjs} +1 -1
  147. package/dist/preview-engine/{renderers-7UKFQ75V.mjs → renderers-PUJRHBUW.mjs} +1 -1
  148. package/dist/preview-engine/renderers-PVUROEGR.mjs +1 -0
  149. package/dist/preview-engine/renderers-QBVVTQV6.mjs +1 -0
  150. package/dist/preview-engine/{renderers-2GE5HE56.mjs → renderers-QPHOG7QR.mjs} +1 -1
  151. package/dist/preview-engine/{renderers-2A7YDJMJ.mjs → renderers-RV62K5JC.mjs} +1 -1
  152. package/dist/preview-engine/{renderers-6GYRMHGQ.mjs → renderers-SBX64ERA.mjs} +1 -1
  153. package/dist/preview-engine/renderers-SCJTTOEJ.mjs +1 -0
  154. package/dist/preview-engine/{renderers-MHDLRY3S.mjs → renderers-SD35PBEM.mjs} +1 -1
  155. package/dist/preview-engine/{renderers-XTRFEQO4.mjs → renderers-SIHL5GLI.mjs} +1 -1
  156. package/dist/preview-engine/{renderers-UBO4ZNE6.mjs → renderers-SNUVYUDE.mjs} +1 -1
  157. package/dist/preview-engine/renderers-SPW4SWZ2.mjs +228 -0
  158. package/dist/preview-engine/renderers-SRKCF3LD.mjs +1 -0
  159. package/dist/preview-engine/{renderers-LF6W5P2I.mjs → renderers-T3S7QVM4.mjs} +1 -1
  160. package/dist/preview-engine/renderers-TBP2EKJ4.mjs +1 -0
  161. package/dist/preview-engine/renderers-UN6YLFHW.mjs +1 -0
  162. package/dist/preview-engine/renderers-UTWKTBZI.mjs +1 -0
  163. package/dist/preview-engine/{renderers-DKOWLKDE.mjs → renderers-V5MJJH33.mjs} +1 -1
  164. package/dist/preview-engine/{renderers-NJAKGI25.mjs → renderers-V67L3MCY.mjs} +1 -1
  165. package/dist/preview-engine/{renderers-XTCBHTHC.mjs → renderers-VYK2BJID.mjs} +1 -1
  166. package/dist/preview-engine/renderers-W6762MNW.mjs +1 -0
  167. package/dist/preview-engine/{renderers-NPKRNXAT.mjs → renderers-W6ZTVA2I.mjs} +1 -1
  168. package/dist/preview-engine/renderers-WDV7ENJA.mjs +1 -0
  169. package/dist/preview-engine/{renderers-ATL5ARUV.mjs → renderers-WPBTAU2E.mjs} +1 -1
  170. package/dist/preview-engine/{renderers-C4XIAG3F.mjs → renderers-XP7YFWBV.mjs} +1 -1
  171. package/dist/preview-engine/renderers-XVUOO7B6.mjs +1 -0
  172. package/dist/preview-engine/renderers-YPFM5UJO.mjs +1 -0
  173. package/dist/preview-engine/renderers-YW3LBALW.mjs +1 -0
  174. package/dist/preview-engine/{renderers-DFJDEPCU.mjs → renderers-ZAPIBQZC.mjs} +1 -1
  175. package/dist/preview-engine/renderers-ZRR4TUVQ.mjs +1 -0
  176. package/dist/preview-engine/{renderers-4H34AFW2.mjs → renderers-ZVKXIQ3E.mjs} +1 -1
  177. package/dist/preview-engine/signals.mjs +1 -1
  178. package/dist/{program-KwDdbC0-.mjs → program-CEHCeDpG.mjs} +133 -30
  179. package/dist/program-CEHCeDpG.mjs.map +1 -0
  180. package/dist/registry/annotate.json +30 -0
  181. package/dist/registry/app-frame.json +38 -0
  182. package/dist/registry/backdrop.json +37 -0
  183. package/dist/registry/before-after.json +33 -0
  184. package/dist/registry/callout.json +30 -0
  185. package/dist/registry/captions.json +37 -0
  186. package/dist/registry/card-stack.json +30 -0
  187. package/dist/registry/chat-thread.json +32 -0
  188. package/dist/registry/code-block.json +45 -0
  189. package/dist/registry/confetti.json +29 -0
  190. package/dist/registry/counter.json +36 -0
  191. package/dist/registry/device-frame.json +36 -0
  192. package/dist/registry/focus-zoom.json +32 -0
  193. package/dist/registry/index.json +408 -0
  194. package/dist/registry/logo-reveal.json +37 -0
  195. package/dist/registry/lower-third.json +34 -0
  196. package/dist/registry/meter.json +35 -0
  197. package/dist/registry/mouse-pointer.json +44 -0
  198. package/dist/registry/selection.json +31 -0
  199. package/dist/registry/spotlight.json +28 -0
  200. package/dist/registry/terminal.json +40 -0
  201. package/dist/registry/text-reveal.json +39 -0
  202. package/dist/registry/title-card.json +34 -0
  203. package/dist/registry/toasts.json +28 -0
  204. package/dist/registry/touch-point.json +33 -0
  205. package/dist/registry/waveform.json +29 -0
  206. package/dist/registry/word-cycle.json +32 -0
  207. package/dist/renderer/index.d.mts +2 -2
  208. package/dist/renderer/index.mjs +3 -3
  209. package/dist/{renderer-DcOT5c0t.mjs → renderer--wMbTRFg.mjs} +4 -4
  210. package/dist/{renderer-DcOT5c0t.mjs.map → renderer--wMbTRFg.mjs.map} +1 -1
  211. package/dist/{renderer-Ci6YMa4u.mjs → renderer-3aLw-la1.mjs} +5 -5
  212. package/dist/{renderer-Ci6YMa4u.mjs.map → renderer-3aLw-la1.mjs.map} +1 -1
  213. package/dist/renderer-7vCBWQVP.mjs +5 -0
  214. package/dist/{renderer-CUPWHfEY.mjs → renderer-AkRxGnFU.mjs} +5 -5
  215. package/dist/{renderer-CUPWHfEY.mjs.map → renderer-AkRxGnFU.mjs.map} +1 -1
  216. package/dist/renderer-B-XgGMCq.mjs +5 -0
  217. package/dist/renderer-B0yabPlf.mjs +5 -0
  218. package/dist/{renderer-CLxQ4rU6.mjs → renderer-B1yPBJQc.mjs} +74 -74
  219. package/dist/{renderer-CLxQ4rU6.mjs.map → renderer-B1yPBJQc.mjs.map} +1 -1
  220. package/dist/{renderer-DWG4Podv.mjs → renderer-B41jTHFs.mjs} +6 -6
  221. package/dist/{renderer-DWG4Podv.mjs.map → renderer-B41jTHFs.mjs.map} +1 -1
  222. package/dist/{renderer-BtWWpFvl.mjs → renderer-B5HG6Czb.mjs} +4 -4
  223. package/dist/{renderer-BtWWpFvl.mjs.map → renderer-B5HG6Czb.mjs.map} +1 -1
  224. package/dist/{renderer-OEpwc9Zk.mjs → renderer-B5oJN3A5.mjs} +5 -5
  225. package/dist/{renderer-OEpwc9Zk.mjs.map → renderer-B5oJN3A5.mjs.map} +1 -1
  226. package/dist/renderer-B9MYevrF.mjs +5 -0
  227. package/dist/renderer-BA2Ko4H1.mjs +3 -0
  228. package/dist/renderer-BCGosndi.mjs +5 -0
  229. package/dist/{renderer-CwO8T8l8.mjs → renderer-BEmDSqXg.mjs} +4 -4
  230. package/dist/{renderer-CwO8T8l8.mjs.map → renderer-BEmDSqXg.mjs.map} +1 -1
  231. package/dist/{renderer-B4ydDdo6.mjs → renderer-BG8jNTHr.mjs} +3 -3
  232. package/dist/{renderer-B4ydDdo6.mjs.map → renderer-BG8jNTHr.mjs.map} +1 -1
  233. package/dist/{renderer-Du8eOWWU.mjs → renderer-BMnrBPh1.mjs} +4 -4
  234. package/dist/{renderer-Du8eOWWU.mjs.map → renderer-BMnrBPh1.mjs.map} +1 -1
  235. package/dist/{renderer-CE83KHgr.mjs → renderer-BORzpTQP.mjs} +3 -3
  236. package/dist/{renderer-CE83KHgr.mjs.map → renderer-BORzpTQP.mjs.map} +1 -1
  237. package/dist/{renderer-BUwHWIf7.mjs → renderer-BWtI3wKu.mjs} +4 -4
  238. package/dist/{renderer-BUwHWIf7.mjs.map → renderer-BWtI3wKu.mjs.map} +1 -1
  239. package/dist/renderer-BXTHDEnd.mjs +5 -0
  240. package/dist/{renderer-gm0zoV4t.mjs → renderer-Baw30QRI.mjs} +3 -3
  241. package/dist/{renderer-gm0zoV4t.mjs.map → renderer-Baw30QRI.mjs.map} +1 -1
  242. package/dist/renderer-BbJoZ-zL.mjs +5 -0
  243. package/dist/{renderer-Bhfl-WFX.mjs → renderer-BbdgwkDB.mjs} +5 -5
  244. package/dist/{renderer-Bhfl-WFX.mjs.map → renderer-BbdgwkDB.mjs.map} +1 -1
  245. package/dist/{renderer-qYhNf6iB.mjs → renderer-BgOEqtZu.mjs} +3 -3
  246. package/dist/{renderer-qYhNf6iB.mjs.map → renderer-BgOEqtZu.mjs.map} +1 -1
  247. package/dist/{renderer-I3Wxk1tL.mjs → renderer-Bv0-WmP4.mjs} +4 -4
  248. package/dist/{renderer-I3Wxk1tL.mjs.map → renderer-Bv0-WmP4.mjs.map} +1 -1
  249. package/dist/renderer-BvcqncI2.mjs +3 -0
  250. package/dist/{renderer-DXSIstnn.mjs → renderer-Bvhj-05p.mjs} +4 -4
  251. package/dist/{renderer-DXSIstnn.mjs.map → renderer-Bvhj-05p.mjs.map} +1 -1
  252. package/dist/renderer-BxAZKOQy.mjs +5 -0
  253. package/dist/{renderer-C-z6bxj9.mjs → renderer-BxDhx8KM.mjs} +5 -5
  254. package/dist/{renderer-C-z6bxj9.mjs.map → renderer-BxDhx8KM.mjs.map} +1 -1
  255. package/dist/renderer-BxgkH__7.mjs +5 -0
  256. package/dist/{renderer-GapR_An3.mjs → renderer-C1XZ0fQ-.mjs} +4 -4
  257. package/dist/{renderer-GapR_An3.mjs.map → renderer-C1XZ0fQ-.mjs.map} +1 -1
  258. package/dist/{renderer-BAoKytKL.mjs → renderer-C8KEfda3.mjs} +4 -4
  259. package/dist/{renderer-BAoKytKL.mjs.map → renderer-C8KEfda3.mjs.map} +1 -1
  260. package/dist/{renderer-BSitV56h.mjs → renderer-C9r0-KY4.mjs} +10 -1
  261. package/dist/{renderer-BSitV56h.mjs.map → renderer-C9r0-KY4.mjs.map} +1 -1
  262. package/dist/{renderer-B9ssmkbx.mjs → renderer-CF25oNd3.mjs} +5 -5
  263. package/dist/{renderer-B9ssmkbx.mjs.map → renderer-CF25oNd3.mjs.map} +1 -1
  264. package/dist/renderer-CFEvikBH.mjs +5 -0
  265. package/dist/{renderer-DGT141pN.mjs → renderer-CHFUJyul.mjs} +5 -5
  266. package/dist/{renderer-DGT141pN.mjs.map → renderer-CHFUJyul.mjs.map} +1 -1
  267. package/dist/{renderer-C5WkQZGR.mjs → renderer-CKGOKBZi.mjs} +5 -5
  268. package/dist/{renderer-C5WkQZGR.mjs.map → renderer-CKGOKBZi.mjs.map} +1 -1
  269. package/dist/{renderer-CzgDJcot.mjs → renderer-CNs1vBUy.mjs} +4 -4
  270. package/dist/{renderer-CzgDJcot.mjs.map → renderer-CNs1vBUy.mjs.map} +1 -1
  271. package/dist/{index-B0BZMhtw.d.mts → renderer-COXKPofU.d.mts} +13 -13
  272. package/dist/renderer-COXKPofU.d.mts.map +1 -0
  273. package/dist/{renderer-QaN-aejD.mjs → renderer-COZCwiIr.mjs} +3 -3
  274. package/dist/{renderer-QaN-aejD.mjs.map → renderer-COZCwiIr.mjs.map} +1 -1
  275. package/dist/{renderer-DP_In2uT.mjs → renderer-CPmoA87K.mjs} +4 -4
  276. package/dist/{renderer-DP_In2uT.mjs.map → renderer-CPmoA87K.mjs.map} +1 -1
  277. package/dist/{renderer-BCLmYH4S.mjs → renderer-CYZb9uoO.mjs} +4 -4
  278. package/dist/{renderer-BCLmYH4S.mjs.map → renderer-CYZb9uoO.mjs.map} +1 -1
  279. package/dist/renderer-C_u9B-_7.mjs +5 -0
  280. package/dist/{renderer-PuN2_AL_.mjs → renderer-CaUJlGoB.mjs} +5 -5
  281. package/dist/{renderer-PuN2_AL_.mjs.map → renderer-CaUJlGoB.mjs.map} +1 -1
  282. package/dist/{renderer-Blm4Dv_h.mjs → renderer-CcS3Zntx.mjs} +3 -3
  283. package/dist/{renderer-DZhIe8Gj.mjs → renderer-CddpdCL3.mjs} +4 -4
  284. package/dist/{renderer-DZhIe8Gj.mjs.map → renderer-CddpdCL3.mjs.map} +1 -1
  285. package/dist/{renderer-GbVNyv-E.mjs → renderer-Cg-d78nf.mjs} +192 -27
  286. package/dist/renderer-Cg-d78nf.mjs.map +1 -0
  287. package/dist/renderer-Cgx_qzGT.mjs +5 -0
  288. package/dist/{renderer-kNjMhwiZ.mjs → renderer-ChNCtBMR.mjs} +3 -3
  289. package/dist/{renderer-kNjMhwiZ.mjs.map → renderer-ChNCtBMR.mjs.map} +1 -1
  290. package/dist/renderer-ClOkY1Ny.mjs +5 -0
  291. package/dist/{renderer-plx7_lUQ.mjs → renderer-CrU0kbiB.mjs} +5 -5
  292. package/dist/{renderer-plx7_lUQ.mjs.map → renderer-CrU0kbiB.mjs.map} +1 -1
  293. package/dist/renderer-CtDub_ig.mjs +5 -0
  294. package/dist/{renderer-DQeUc1yY.mjs → renderer-CyhSWLKq.mjs} +4 -4
  295. package/dist/{renderer-DQeUc1yY.mjs.map → renderer-CyhSWLKq.mjs.map} +1 -1
  296. package/dist/{renderer-D96Pu8yX.mjs → renderer-D-bmSKv4.mjs} +5 -5
  297. package/dist/{renderer-D96Pu8yX.mjs.map → renderer-D-bmSKv4.mjs.map} +1 -1
  298. package/dist/renderer-D0duAhCo.mjs +5 -0
  299. package/dist/{renderer-CPLfsRe1.mjs → renderer-D2tdNoM6.mjs} +6 -6
  300. package/dist/{renderer-CPLfsRe1.mjs.map → renderer-D2tdNoM6.mjs.map} +1 -1
  301. package/dist/renderer-D4wM1dqg.mjs +6 -0
  302. package/dist/renderer-D5U3d09T.mjs +5 -0
  303. package/dist/{renderer-DOxmmN6Q.mjs → renderer-D86Y5YYi.mjs} +5 -5
  304. package/dist/{renderer-DOxmmN6Q.mjs.map → renderer-D86Y5YYi.mjs.map} +1 -1
  305. package/dist/{renderer-mqUBkx-a.mjs → renderer-D8D7dKxq.mjs} +4 -4
  306. package/dist/{renderer-mqUBkx-a.mjs.map → renderer-D8D7dKxq.mjs.map} +1 -1
  307. package/dist/{renderer-CTYKUnDq.mjs → renderer-DATAjI6x.mjs} +3 -3
  308. package/dist/{renderer-CTYKUnDq.mjs.map → renderer-DATAjI6x.mjs.map} +1 -1
  309. package/dist/{renderer-C4vHq0X8.mjs → renderer-DGhCIVI4.mjs} +5 -5
  310. package/dist/{renderer-C4vHq0X8.mjs.map → renderer-DGhCIVI4.mjs.map} +1 -1
  311. package/dist/{renderer-CrwYWVsV.mjs → renderer-DILjs1tz.mjs} +3 -3
  312. package/dist/{renderer-DYbgd6Ye.mjs → renderer-DIyzKouj.mjs} +4 -4
  313. package/dist/{renderer-DYbgd6Ye.mjs.map → renderer-DIyzKouj.mjs.map} +1 -1
  314. package/dist/{renderer-f7A01ArI.mjs → renderer-DJ78Bgv7.mjs} +5 -5
  315. package/dist/{renderer-f7A01ArI.mjs.map → renderer-DJ78Bgv7.mjs.map} +1 -1
  316. package/dist/renderer-DKqFxYfP.mjs +5 -0
  317. package/dist/renderer-DQZNI1zf.mjs +5 -0
  318. package/dist/{renderer-C1U85w9f.mjs → renderer-DVnrUnkh.mjs} +3 -3
  319. package/dist/{renderer-C1U85w9f.mjs.map → renderer-DVnrUnkh.mjs.map} +1 -1
  320. package/dist/{renderer-1P3yS8YM.mjs → renderer-DWtquP0s.mjs} +4 -4
  321. package/dist/{renderer-1P3yS8YM.mjs.map → renderer-DWtquP0s.mjs.map} +1 -1
  322. package/dist/renderer-DXITcVbS.mjs +5 -0
  323. package/dist/renderer-DY1QgdDC.mjs +5 -0
  324. package/dist/renderer-DYEz06xn.mjs +5 -0
  325. package/dist/renderer-D_2OrSMc.mjs +5 -0
  326. package/dist/renderer-DcCl9CO6.mjs +5 -0
  327. package/dist/{renderer-OsA-Lg4d.mjs → renderer-DetTl6bQ.mjs} +3 -3
  328. package/dist/{renderer-OsA-Lg4d.mjs.map → renderer-DetTl6bQ.mjs.map} +1 -1
  329. package/dist/{renderer-Bkq1PT0g.mjs → renderer-DfxwJVjW.mjs} +3 -3
  330. package/dist/{renderer-DK9etIAz.mjs → renderer-DhQZiRL3.mjs} +5 -5
  331. package/dist/{renderer-DK9etIAz.mjs.map → renderer-DhQZiRL3.mjs.map} +1 -1
  332. package/dist/{renderer-C0ds-UfM.mjs → renderer-Djn4BYtz.mjs} +5 -5
  333. package/dist/{renderer-C0ds-UfM.mjs.map → renderer-Djn4BYtz.mjs.map} +1 -1
  334. package/dist/{renderer-B4jxP8vF.mjs → renderer-DkS6cblv.mjs} +5 -5
  335. package/dist/{renderer-B4jxP8vF.mjs.map → renderer-DkS6cblv.mjs.map} +1 -1
  336. package/dist/{renderer-CjQAYeYz.mjs → renderer-DkeJefRk.mjs} +5 -5
  337. package/dist/{renderer-CjQAYeYz.mjs.map → renderer-DkeJefRk.mjs.map} +1 -1
  338. package/dist/renderer-DotZXhrh.mjs +5 -0
  339. package/dist/renderer-DpYDVTzs.mjs +5 -0
  340. package/dist/renderer-DpZxLVQF.mjs +5 -0
  341. package/dist/{renderer-BHLYKy8b.mjs → renderer-DqabtpGN.mjs} +5 -5
  342. package/dist/{renderer-BHLYKy8b.mjs.map → renderer-DqabtpGN.mjs.map} +1 -1
  343. package/dist/{renderer-DVFFVy9v.mjs → renderer-DqdD8gzX.mjs} +5 -5
  344. package/dist/{renderer-DVFFVy9v.mjs.map → renderer-DqdD8gzX.mjs.map} +1 -1
  345. package/dist/{renderer-CDky5Gva.mjs → renderer-DstROEvX.mjs} +4 -4
  346. package/dist/{renderer-CDky5Gva.mjs.map → renderer-DstROEvX.mjs.map} +1 -1
  347. package/dist/{renderer-Cy4a31rZ.mjs → renderer-DuawUm8D.mjs} +3 -3
  348. package/dist/{renderer-Cy4a31rZ.mjs.map → renderer-DuawUm8D.mjs.map} +1 -1
  349. package/dist/{renderer-CS8VMTp1.mjs → renderer-DvIWhLnY.mjs} +5 -5
  350. package/dist/{renderer-CS8VMTp1.mjs.map → renderer-DvIWhLnY.mjs.map} +1 -1
  351. package/dist/renderer-DvJbouz0.mjs +5 -0
  352. package/dist/{renderer-BI8QhEj9.mjs → renderer-Dw2ZFwDT.mjs} +5 -5
  353. package/dist/{renderer-BI8QhEj9.mjs.map → renderer-Dw2ZFwDT.mjs.map} +1 -1
  354. package/dist/{renderer-DBtt-7wt.d.mts → renderer-Dx28wTi1.d.mts} +2 -2
  355. package/dist/{renderer-DBtt-7wt.d.mts.map → renderer-Dx28wTi1.d.mts.map} +1 -1
  356. package/dist/{renderer-BT0x6KPK.mjs → renderer-DxLkZGUK.mjs} +4 -4
  357. package/dist/{renderer-BT0x6KPK.mjs.map → renderer-DxLkZGUK.mjs.map} +1 -1
  358. package/dist/{renderer-y6k54AM6.mjs → renderer-GY7D1oAn.mjs} +4 -4
  359. package/dist/{renderer-y6k54AM6.mjs.map → renderer-GY7D1oAn.mjs.map} +1 -1
  360. package/dist/{renderer-D4No_jA4.mjs → renderer-JaSEubRQ.mjs} +4 -4
  361. package/dist/{renderer-D4No_jA4.mjs.map → renderer-JaSEubRQ.mjs.map} +1 -1
  362. package/dist/{renderer-CAi-lhR2.mjs → renderer-MrvH4L7b.mjs} +4 -4
  363. package/dist/{renderer-CAi-lhR2.mjs.map → renderer-MrvH4L7b.mjs.map} +1 -1
  364. package/dist/{renderer-DO5r7ZV-.mjs → renderer-PNIgmWft.mjs} +2 -2
  365. package/dist/{renderer-DO5r7ZV-.mjs.map → renderer-PNIgmWft.mjs.map} +1 -1
  366. package/dist/renderer-S305xm67.mjs +5 -0
  367. package/dist/renderer-TgUloP-y.mjs +5 -0
  368. package/dist/{renderer-DSbRWfgl.mjs → renderer-VcPoZAM2.mjs} +3 -3
  369. package/dist/{renderer-DSbRWfgl.mjs.map → renderer-VcPoZAM2.mjs.map} +1 -1
  370. package/dist/{renderer-DCsTCvdo.mjs → renderer-ZGJWn-_L.mjs} +4 -4
  371. package/dist/{renderer-DCsTCvdo.mjs.map → renderer-ZGJWn-_L.mjs.map} +1 -1
  372. package/dist/{renderer-B_b8-ztW.mjs → renderer-aXwxbXcE.mjs} +5 -5
  373. package/dist/{renderer-B_b8-ztW.mjs.map → renderer-aXwxbXcE.mjs.map} +1 -1
  374. package/dist/renderer-gZ5SMvbU.mjs +5 -0
  375. package/dist/{renderer-BMLJgnbU.mjs → renderer-gniIzAsk.mjs} +3 -3
  376. package/dist/renderer-kEpx7pUy.mjs +5 -0
  377. package/dist/{renderer-DOvzHN60.mjs → renderer-mSlww_MA.mjs} +4 -4
  378. package/dist/{renderer-DOvzHN60.mjs.map → renderer-mSlww_MA.mjs.map} +1 -1
  379. package/dist/{renderer-DBKyuPl1.mjs → renderer-mWfgWQy_.mjs} +5 -5
  380. package/dist/{renderer-DBKyuPl1.mjs.map → renderer-mWfgWQy_.mjs.map} +1 -1
  381. package/dist/{renderer-BajIOuZH.mjs → renderer-nLPfvY3-.mjs} +2 -2
  382. package/dist/{renderer-BajIOuZH.mjs.map → renderer-nLPfvY3-.mjs.map} +1 -1
  383. package/dist/renderer-oPWZmzua.mjs +5 -0
  384. package/dist/{renderer-C4xvz_Ft.mjs → renderer-pcpDwv3K.mjs} +4 -4
  385. package/dist/{renderer-C4xvz_Ft.mjs.map → renderer-pcpDwv3K.mjs.map} +1 -1
  386. package/dist/renderer-qCNOffLy.mjs +5 -0
  387. package/dist/{renderer-BaJQx0Bp.mjs → renderer-vPJRRVNN.mjs} +5 -5
  388. package/dist/{renderer-BaJQx0Bp.mjs.map → renderer-vPJRRVNN.mjs.map} +1 -1
  389. package/dist/{renderer-DHUlVqST.mjs → renderer-vQrX7Qsw.mjs} +3 -3
  390. package/dist/{renderer-DHUlVqST.mjs.map → renderer-vQrX7Qsw.mjs.map} +1 -1
  391. package/dist/{renderer-P4OPsD82.mjs → renderer-wld_ZR0-.mjs} +3 -3
  392. package/dist/{renderer-P4OPsD82.mjs.map → renderer-wld_ZR0-.mjs.map} +1 -1
  393. package/dist/renderer-xEVoeq12.mjs +5 -0
  394. package/dist/renderer-ypw8fzVD.mjs +5 -0
  395. package/dist/{renderers-CP8CFWDs-D1FHpA7I.mjs → renderers-CP8CFWDs-DgKdGMvS.mjs} +4 -4
  396. package/dist/{renderers-CP8CFWDs-D1FHpA7I.mjs.map → renderers-CP8CFWDs-DgKdGMvS.mjs.map} +1 -1
  397. package/dist/signals/index.d.mts +6 -6
  398. package/dist/signals/index.mjs +8 -8
  399. package/dist/{signals-BwdVfK3p.mjs → signals-Cf9mfNGE.mjs} +4 -4
  400. package/dist/{signals-BwdVfK3p.mjs.map → signals-Cf9mfNGE.mjs.map} +1 -1
  401. package/dist/src-CU_7ui4I.mjs +8373 -0
  402. package/dist/src-CU_7ui4I.mjs.map +1 -0
  403. package/package.json +68 -58
  404. package/dist/dist-DMa2BbYs.mjs.map +0 -1
  405. package/dist/index-B0BZMhtw.d.mts.map +0 -1
  406. package/dist/index-CJkihekp.d.mts.map +0 -1
  407. package/dist/index-DGe83M-p.d.mts.map +0 -1
  408. package/dist/index.d.mts.map +0 -1
  409. package/dist/index.mjs.map +0 -1
  410. package/dist/preview/index.d.mts.map +0 -1
  411. package/dist/preview-engine/chunk-PCWWKYFO.mjs +0 -1
  412. package/dist/preview-engine/renderers-2AD6AHAO.mjs +0 -1
  413. package/dist/preview-engine/renderers-37UYW266.mjs +0 -1
  414. package/dist/preview-engine/renderers-4I4UDLDR.mjs +0 -1
  415. package/dist/preview-engine/renderers-5EITT2FW.mjs +0 -1
  416. package/dist/preview-engine/renderers-AIRDDXRB.mjs +0 -1
  417. package/dist/preview-engine/renderers-BUOGMWAA.mjs +0 -1
  418. package/dist/preview-engine/renderers-EU5VM2S2.mjs +0 -1
  419. package/dist/preview-engine/renderers-GEPP3YKK.mjs +0 -1
  420. package/dist/preview-engine/renderers-IQNZQWYU.mjs +0 -1
  421. package/dist/preview-engine/renderers-JQ7AI473.mjs +0 -228
  422. package/dist/preview-engine/renderers-JTVCE5PV.mjs +0 -1
  423. package/dist/preview-engine/renderers-KCNUETAD.mjs +0 -1
  424. package/dist/preview-engine/renderers-KKBHXAWS.mjs +0 -1
  425. package/dist/preview-engine/renderers-LER7SUT2.mjs +0 -1
  426. package/dist/preview-engine/renderers-MOERLDWF.mjs +0 -1
  427. package/dist/preview-engine/renderers-O57YIIAO.mjs +0 -1
  428. package/dist/preview-engine/renderers-OPUIAD7I.mjs +0 -1
  429. package/dist/preview-engine/renderers-PENUAXDD.mjs +0 -1
  430. package/dist/preview-engine/renderers-PFCI7ZFW.mjs +0 -1
  431. package/dist/preview-engine/renderers-Q4HDP2IE.mjs +0 -1
  432. package/dist/preview-engine/renderers-QMHUOKMM.mjs +0 -1
  433. package/dist/preview-engine/renderers-R26YPECG.mjs +0 -1
  434. package/dist/preview-engine/renderers-TAFDMFEA.mjs +0 -1
  435. package/dist/preview-engine/renderers-TMZLWQP2.mjs +0 -1
  436. package/dist/preview-engine/renderers-TP6ZMGU4.mjs +0 -1
  437. package/dist/preview-engine/renderers-TY63VTZB.mjs +0 -1
  438. package/dist/preview-engine/renderers-UCNQ536S.mjs +0 -1
  439. package/dist/preview-engine/renderers-WOZQDE4A.mjs +0 -1
  440. package/dist/preview-engine/renderers-XG3BDROH.mjs +0 -1
  441. package/dist/preview-engine/renderers-XS4CFZWR.mjs +0 -1
  442. package/dist/preview-engine/renderers-ZQDMRWN7.mjs +0 -1
  443. package/dist/program-KwDdbC0-.mjs.map +0 -1
  444. package/dist/renderer-5C41E6gT.mjs +0 -5
  445. package/dist/renderer-6SXF9Ykm.mjs +0 -5
  446. package/dist/renderer-B2C2w3Wr.mjs +0 -5
  447. package/dist/renderer-B2QSfPYZ.mjs +0 -5
  448. package/dist/renderer-B5cQcMl1.mjs +0 -5
  449. package/dist/renderer-BDhD8Yab.mjs +0 -3
  450. package/dist/renderer-BSDdTHDh.mjs +0 -5
  451. package/dist/renderer-BTUjk8uY.mjs +0 -5
  452. package/dist/renderer-Bcey5Gvk.mjs +0 -5
  453. package/dist/renderer-Bd2MuOeJ.mjs +0 -5
  454. package/dist/renderer-Bd5A0zer.mjs +0 -5
  455. package/dist/renderer-CC-WlYa2.mjs +0 -5
  456. package/dist/renderer-Cb0qf1UG.mjs +0 -5
  457. package/dist/renderer-CfX13dgQ.mjs +0 -5
  458. package/dist/renderer-ChFkRLrv.mjs +0 -5
  459. package/dist/renderer-CjkfJj5R.mjs +0 -5
  460. package/dist/renderer-Ck7Lu6c9.mjs +0 -5
  461. package/dist/renderer-CuquqG_c.mjs +0 -5
  462. package/dist/renderer-Cwz2E4QD.mjs +0 -5
  463. package/dist/renderer-Czkt9YYp.mjs +0 -5
  464. package/dist/renderer-DFTIhSdJ.mjs +0 -5
  465. package/dist/renderer-DFaa-Ats.mjs +0 -5
  466. package/dist/renderer-DIHXKvPl.mjs +0 -5
  467. package/dist/renderer-DMzOqVM3.mjs +0 -5
  468. package/dist/renderer-DOId5U8x.mjs +0 -5
  469. package/dist/renderer-DQXFOup8.mjs +0 -5
  470. package/dist/renderer-DRt3BSTj.mjs +0 -5
  471. package/dist/renderer-Di_5vQ81.mjs +0 -6
  472. package/dist/renderer-DkmpsPIa.mjs +0 -5
  473. package/dist/renderer-Ds6wd9Gk.mjs +0 -5
  474. package/dist/renderer-DuuOlYIG.mjs +0 -3
  475. package/dist/renderer-Dv4p0lp9.mjs +0 -5
  476. package/dist/renderer-DzWoOlVc.mjs +0 -5
  477. package/dist/renderer-GbVNyv-E.mjs.map +0 -1
  478. package/dist/renderer-IOz63OWg.mjs +0 -5
  479. package/dist/renderer-JkSrsUa5.mjs +0 -5
  480. package/dist/renderer-Ocs1Djwu.mjs +0 -5
  481. package/dist/renderer-Wdn7m_uN.mjs +0 -5
  482. package/dist/renderer-mKpjaoE3.mjs +0 -5
  483. /package/dist/{chunk-GBe2k3y8.mjs → chunk-D7gtBK74.mjs} +0 -0
  484. /package/dist/{renderer-B-BcgA6d.mjs → renderer-B7fX0C62.mjs} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"renderer-GbVNyv-E.mjs","names":[],"sources":["../../../nodes/node-compositor/dist/renderers-D6Ve5Vi1.mjs"],"sourcesContent":["import { defineRenderer } from \"@framefields/node-sdk/renderer\";\nimport { resolveMediaSourceUrl } from \"@framefields/client-utils\";\nimport { decodeAudioSource, resolveLayerDuration } from \"@framefields/compositions\";\nimport { collectNodeOps, computeLayout, evaluateKeyframes, evaluateTrackAtFrame, initLayout } from \"@framefields/compositions/program\";\nimport { DEFAULT_DURATION_MS, getActiveMediaMetadata, reportRenderDiagnostic } from \"@framefields/core\";\nimport { audioRegistry, resolveBoolean, resolveFrameNumber, resolveNumber, solveHomography } from \"@framefields/node-sdk\";\nimport { FULLSCREEN_QUAD_WGSL, PREMULTIPLIED_BLEND, createFullscreenPipeline, fragmentBindGroupLayout } from \"@framefields/node-sdk/gpu\";\nimport { measureText } from \"@framefields/renderers\";\nimport { TemporalDeflickerPipeline } from \"@framefields/tensor-webgpu\";\nimport { AudioLatentTrackCache, Camera3D, Light3D, Matrix4Math, Renderer3D, ScreenSpaceRelightPipeline, SlugFontCache, Vector3Math, fitSpansToText, generateExtrudedTextGeometry, getPrimitiveGeometry, jointMatrices, measureMaxCaptionHeight, parseColor, poseNodes, resolveTextSpans, spansText, srtLoader } from \"@framefields/webgpu-renderers\";\nimport gsapModule from \"gsap\";\n\n//#region src/shared/bezier-solver.ts\n/**\n* Solves a cubic bezier curve defined by control points (x1, y1) and (x2, y2)\n* for a given progress parameter t in [0, 1].\n*/\nfunction solveCubicBezier(x1, y1, x2, y2, t) {\n\tif (t <= 0) return 0;\n\tif (t >= 1) return 1;\n\tif (x1 === y1 && x2 === y2) return t;\n\tlet u = t;\n\tfor (let i = 0; i < 8; i++) {\n\t\tconst oneMinusU$1 = 1 - u;\n\t\tconst oneMinusU2 = oneMinusU$1 * oneMinusU$1;\n\t\tconst u2 = u * u;\n\t\tconst diff = 3 * oneMinusU2 * u * x1 + 3 * oneMinusU$1 * u2 * x2 + u2 * u - t;\n\t\tif (Math.abs(diff) < 1e-6) break;\n\t\tconst dx = 3 * oneMinusU2 * x1 + 6 * oneMinusU$1 * u * (x2 - x1) + 3 * u2 * (1 - x2);\n\t\tif (Math.abs(dx) < 1e-6) break;\n\t\tu -= diff / dx;\n\t\tu = Math.max(0, Math.min(1, u));\n\t}\n\tconst oneMinusU = 1 - u;\n\tconst checkX = 3 * oneMinusU * oneMinusU * u * x1 + 3 * oneMinusU * u * u * x2 + u * u * u;\n\tif (Math.abs(checkX - t) > .001) {\n\t\tlet low = 0;\n\t\tlet high = 1;\n\t\tu = t;\n\t\tfor (let i = 0; i < 16; i++) {\n\t\t\tconst mid = (low + high) * .5;\n\t\t\tconst oMid = 1 - mid;\n\t\t\tconst xMid = 3 * oMid * oMid * mid * x1 + 3 * oMid * mid * mid * x2 + mid * mid * mid;\n\t\t\tif (Math.abs(xMid - t) < 1e-5) {\n\t\t\t\tu = mid;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (xMid < t) low = mid;\n\t\t\telse high = mid;\n\t\t\tu = mid;\n\t\t}\n\t}\n\tconst oU = 1 - u;\n\treturn 3 * oU * oU * u * y1 + 3 * oU * u * u * y2 + u * u * u;\n}\n\n//#endregion\n//#region src/shared/compiler.ts\nconst gsap = gsapModule.timeline ? gsapModule : gsapModule.default || gsapModule;\n/** GSAP's shaping for a keyframe segment, so draw-time tracks ease like baked ones. */\nfunction gsapEase(fps) {\n\treturn (ease, deltaFrames, t) => {\n\t\tconst e = mappedEase(ease, deltaFrames, fps);\n\t\tconst fn = typeof e === \"function\" ? e : gsap.parseEase(e);\n\t\treturn fn ? fn(t) : t;\n\t};\n}\nfunction evaluateLive(live, frame, fps, signals) {\n\tif ((live.track.source ?? { type: \"keyframe\" }).type === \"keyframe\") return evaluateKeyframes(live.track, frame - live.startFrame, gsapEase(fps));\n\treturn evaluateTrackAtFrame(live.track, frame, fps, {\n\t\tstartFrame: live.startFrame,\n\t\tbaseValues: live.stub,\n\t\tsignals\n\t});\n}\n/** Seeks the compiled timeline to a frame and applies its live signal tracks. */\nfunction seekTimeline(result, frame, fps) {\n\tresult.tl.seek(frame / fps);\n\tfor (const live of result.live) {\n\t\tlet f = Math.max(live.startFrame, Math.min(live.endFrame, frame));\n\t\tif (live.step && live.step > 1) f = live.startFrame + Math.floor((f - live.startFrame) / live.step) * live.step;\n\t\tlive.stub[live.track.prop] = evaluateLive(live, f, fps, result.signals);\n\t}\n}\nconst cache = /* @__PURE__ */ new Map();\nconst nodesHashMemo = /* @__PURE__ */ new WeakMap();\n/** Entries untouched for this long are dropped (and their timeline killed). */\nconst CACHE_TTL_MS = 1e4;\n/** Max compiled timelines retained per cache. */\nconst TIMELINE_CACHE_MAX = 50;\nconst LAYER_TIMELINE_CACHE_MAX = 50;\nfunction fnv1a(str) {\n\tlet hash = 2166136261;\n\tfor (let i = 0; i < str.length; i++) {\n\t\thash ^= str.charCodeAt(i);\n\t\thash += (hash << 1) + (hash << 4) + (hash << 7) + (hash << 8) + (hash << 24);\n\t}\n\treturn (hash >>> 0).toString(16);\n}\nconst signalIds = /* @__PURE__ */ new WeakMap();\nlet nextSignalId = 0;\nfunction signalsKey(signals) {\n\tif (!signals || typeof signals !== \"object\") return stableStringify(signals);\n\treturn Object.keys(signals).sort().map((name) => {\n\t\tconst s = signals[name];\n\t\tif (s && typeof s === \"object\" && typeof s.get === \"function\") {\n\t\t\tlet id = signalIds.get(s);\n\t\t\tif (id === void 0) {\n\t\t\t\tid = nextSignalId++;\n\t\t\t\tsignalIds.set(s, id);\n\t\t\t}\n\t\t\treturn `${JSON.stringify(name)}:#${id}`;\n\t\t}\n\t\treturn `${JSON.stringify(name)}:${stableStringify(s)}`;\n\t}).join(\",\");\n}\n/**\n* Paused gsap timelines stay attached to gsap's global timeline until killed,\n* so anything dropped from a cache must be killed or it is never collected.\n*/\nfunction release(value) {\n\tvalue.tl.kill();\n}\n/**\n* Make room for one insertion: drop and kill TTL-expired entries, then evict\n* the least-recently-used entry if the cache is at capacity. Every dropped\n* timeline MUST be killed — see `release`.\n*/\nfunction evictForInsert(cache$1, maxSize) {\n\tconst now = Date.now();\n\tfor (const [key, entry] of cache$1.entries()) if (now - entry.cacheTime > CACHE_TTL_MS) {\n\t\tcache$1.delete(key);\n\t\trelease(entry.value);\n\t}\n\tif (cache$1.size >= maxSize) {\n\t\tconst oldestKey = cache$1.keys().next().value;\n\t\tif (oldestKey !== void 0) {\n\t\t\tconst oldest = cache$1.get(oldestKey);\n\t\t\tcache$1.delete(oldestKey);\n\t\t\tif (oldest) release(oldest.value);\n\t\t}\n\t}\n}\nfunction stableStringify(obj) {\n\tif (obj === null) return \"null\";\n\tif (obj === void 0) return \"undefined\";\n\tif (typeof obj !== \"object\") return JSON.stringify(obj);\n\tif (ArrayBuffer.isView(obj)) return `[TypedArray:${obj.byteLength}]`;\n\tif (Array.isArray(obj)) return \"[\" + obj.map(stableStringify).join(\",\") + \"]\";\n\treturn \"{\" + Object.keys(obj).sort().map((key) => {\n\t\treturn `${JSON.stringify(key)}:${stableStringify(obj[key])}`;\n\t}).join(\",\") + \"}\";\n}\nfunction getCachedTimeline(cacheKey) {\n\tconst entry = cache.get(cacheKey);\n\tif (entry) {\n\t\tif (Date.now() - entry.cacheTime > CACHE_TTL_MS) {\n\t\t\tcache.delete(cacheKey);\n\t\t\trelease(entry.value);\n\t\t\treturn;\n\t\t}\n\t\tentry.cacheTime = Date.now();\n\t\tcache.delete(cacheKey);\n\t\tcache.set(cacheKey, entry);\n\t\treturn entry.value;\n\t}\n}\nfunction setCachedTimeline(cacheKey, value) {\n\tevictForInsert(cache, TIMELINE_CACHE_MAX);\n\tcache.set(cacheKey, {\n\t\tcacheTime: Date.now(),\n\t\tvalue\n\t});\n}\nfunction mappedEase(ease, durationFrames, fps = 24) {\n\tif (!ease) return \"none\";\n\tconst { name, dir, params } = ease;\n\tif (name === \"none\") return \"none\";\n\tif (name === \"spring\") {\n\t\tconst damping = Math.max(.001, params?.[0] ?? 10);\n\t\tconst stiffness = Math.max(.001, params?.[1] ?? 100);\n\t\tconst mass = Math.max(.001, params?.[2] ?? 1);\n\t\treturn (p) => {\n\t\t\tconst t = p * (durationFrames && durationFrames > 0 ? durationFrames / (fps > 0 ? fps : 24) : 1);\n\t\t\tconst m = mass;\n\t\t\tconst k = stiffness;\n\t\t\tconst c = damping;\n\t\t\tconst w0 = Math.sqrt(k / m);\n\t\t\tconst zeta = c / (2 * Math.sqrt(k * m));\n\t\t\tlet x = 0;\n\t\t\tif (zeta < 1) {\n\t\t\t\tconst wd = w0 * Math.sqrt(1 - zeta * zeta);\n\t\t\t\tconst A = -1;\n\t\t\t\tconst B = -zeta * w0 / wd;\n\t\t\t\tx = Math.exp(-zeta * w0 * t) * (A * Math.cos(wd * t) + B * Math.sin(wd * t));\n\t\t\t} else if (zeta === 1) {\n\t\t\t\tconst A = -1;\n\t\t\t\tconst B = -w0;\n\t\t\t\tx = Math.exp(-w0 * t) * (A + B * t);\n\t\t\t} else {\n\t\t\t\tconst r1 = -w0 * (zeta - Math.sqrt(zeta * zeta - 1));\n\t\t\t\tconst r2 = -w0 * (zeta + Math.sqrt(zeta * zeta - 1));\n\t\t\t\tconst C1 = -1 / (1 - r1 / r2);\n\t\t\t\tconst C2 = -1 - C1;\n\t\t\t\tx = C1 * Math.exp(r1 * t) + C2 * Math.exp(r2 * t);\n\t\t\t}\n\t\t\treturn 1 + x;\n\t\t};\n\t}\n\tif (name === \"cubic\") {\n\t\tconst x1 = params?.[0] ?? .25;\n\t\tconst y1 = params?.[1] ?? .1;\n\t\tconst x2 = params?.[2] ?? .25;\n\t\tconst y2 = params?.[3] ?? 1;\n\t\treturn (p) => solveCubicBezier(x1, y1, x2, y2, p);\n\t}\n\tif (name === \"hold\") return (p) => p >= .9999 ? 1 : 0;\n\tconst easeName = name;\n\tlet suffix = \"\";\n\tif (params && params.length > 0) suffix = `(${params.join(\", \")})`;\n\telse if (name === \"back\") suffix = \"(1.7)\";\n\telse if (name === \"elastic\") suffix = \"(1, 0.3)\";\n\treturn `${easeName}.${dir}${suffix}`;\n}\nfunction compileTrackToTimeline(tl, stub, track, startFrame, fps, durationFrames, signals, live, step) {\n\tconst prop = track.prop;\n\tconst source = track.source ?? { type: \"keyframe\" };\n\tconst stepped = step !== void 0 && step > 1;\n\tif ((source.type === \"signal\" || stepped || prop === \"d\") && live && !track.repeat) {\n\t\tconst entry = {\n\t\t\tstub,\n\t\t\ttrack,\n\t\t\tstartFrame,\n\t\t\tendFrame: startFrame + (Number.isFinite(durationFrames) ? durationFrames : Math.round(fps * 5)),\n\t\t\t...stepped && { step }\n\t\t};\n\t\tstub[prop] = evaluateLive(entry, startFrame, fps, signals);\n\t\tlive.push(entry);\n\t\treturn {\n\t\t\tdropped: 0,\n\t\t\tmaxAuthoredFrame: 0\n\t\t};\n\t}\n\tif (source.type !== \"keyframe\") {\n\t\tconst endF = Number.isFinite(durationFrames) ? durationFrames : Math.round(fps * 5);\n\t\tconst frameStepSec = 1 / fps;\n\t\tconst kfList = [];\n\t\tconst firstVal = evaluateTrackAtFrame(track, startFrame, fps, {\n\t\t\tstartFrame,\n\t\t\tbaseValues: stub,\n\t\t\tsignals\n\t\t});\n\t\tstub[prop] = firstVal;\n\t\tkfList.push({\n\t\t\t[prop]: firstVal,\n\t\t\tduration: 0\n\t\t});\n\t\tfor (let f = 1; f <= endF; f++) {\n\t\t\tconst val = evaluateTrackAtFrame(track, startFrame + f, fps, {\n\t\t\t\tstartFrame,\n\t\t\t\tbaseValues: stub,\n\t\t\t\tsignals\n\t\t\t});\n\t\t\tkfList.push({\n\t\t\t\t[prop]: val,\n\t\t\t\tduration: frameStepSec,\n\t\t\t\tease: \"none\"\n\t\t\t});\n\t\t}\n\t\ttl.to(stub, {\n\t\t\tkeyframes: kfList,\n\t\t\trepeat: track.repeat ?? 0,\n\t\t\tyoyo: !!track.yoyo,\n\t\t\tlazy: false,\n\t\t\toverwrite: false,\n\t\t\timmediateRender: false\n\t\t}, startFrame / fps);\n\t\treturn {\n\t\t\tdropped: 0,\n\t\t\tmaxAuthoredFrame: 0\n\t\t};\n\t}\n\tconst sortedKeyframes = [...track.keyframes].sort((a, b) => a.frame - b.frame);\n\tconst validKeyframes = sortedKeyframes.filter((kf) => kf.frame >= 0 && kf.frame <= durationFrames);\n\tconst dropped = sortedKeyframes.length - validKeyframes.length;\n\tconst maxAuthoredFrame = dropped > 0 ? sortedKeyframes[sortedKeyframes.length - 1].frame : 0;\n\tif (validKeyframes.length === 0) return {\n\t\tdropped,\n\t\tmaxAuthoredFrame\n\t};\n\tif (prop === \"hidden\" || prop === \"muted\") for (const kf of validKeyframes) {\n\t\tconst absoluteSec = (startFrame + kf.frame) / fps;\n\t\ttl.set(stub, {\n\t\t\t[prop]: kf.value,\n\t\t\timmediateRender: false\n\t\t}, absoluteSec);\n\t}\n\telse {\n\t\tconst repeat = track.repeat ?? 0;\n\t\tconst yoyo = !!track.yoyo;\n\t\tif (validKeyframes.length === 1) {\n\t\t\tconst kf0 = validKeyframes[0];\n\t\t\tconst absoluteSec = (startFrame + kf0.frame) / fps;\n\t\t\ttl.set(stub, {\n\t\t\t\t[prop]: kf0.value,\n\t\t\t\timmediateRender: false\n\t\t\t}, absoluteSec);\n\t\t} else if (validKeyframes.length === 2) {\n\t\t\tconst kf0 = validKeyframes[0];\n\t\t\tconst kf1 = validKeyframes[1];\n\t\t\tconst val0 = kf0.value;\n\t\t\tconst val1 = kf1.value;\n\t\t\tconst startSec = (startFrame + kf0.frame) / fps;\n\t\t\tconst durSec = (kf1.frame - kf0.frame) / fps;\n\t\t\tconst trackDurationFrames = track.durationFrames ?? kf1.frame - kf0.frame;\n\t\t\tconst easeVal = mappedEase(kf1.ease ?? kf0.ease, trackDurationFrames, fps);\n\t\t\tif (val0 === stub[prop]) tl.to(stub, {\n\t\t\t\t[prop]: val1,\n\t\t\t\tduration: durSec,\n\t\t\t\tease: easeVal,\n\t\t\t\trepeat,\n\t\t\t\tyoyo,\n\t\t\t\tlazy: false,\n\t\t\t\toverwrite: false,\n\t\t\t\timmediateRender: false\n\t\t\t}, startSec);\n\t\t\telse tl.fromTo(stub, { [prop]: val0 }, {\n\t\t\t\t[prop]: val1,\n\t\t\t\tduration: durSec,\n\t\t\t\tease: easeVal,\n\t\t\t\trepeat,\n\t\t\t\tyoyo,\n\t\t\t\tlazy: false,\n\t\t\t\toverwrite: false,\n\t\t\t\timmediateRender: false\n\t\t\t}, startSec);\n\t\t} else {\n\t\t\tconst kf0 = validKeyframes[0];\n\t\t\tconst startSec = (startFrame + kf0.frame) / fps;\n\t\t\tconst kfList = [];\n\t\t\tkfList.push({\n\t\t\t\t[prop]: kf0.value,\n\t\t\t\tduration: 0\n\t\t\t});\n\t\t\tfor (let i = 1; i < validKeyframes.length; i++) {\n\t\t\t\tconst prevKf = validKeyframes[i - 1];\n\t\t\t\tconst currKf = validKeyframes[i];\n\t\t\t\tconst deltaFrames = currKf.frame - prevKf.frame;\n\t\t\t\tconst durSec = deltaFrames / fps;\n\t\t\t\tconst easeVal = mappedEase(currKf.ease, deltaFrames, fps);\n\t\t\t\tkfList.push({\n\t\t\t\t\t[prop]: currKf.value,\n\t\t\t\t\tduration: durSec,\n\t\t\t\t\tease: easeVal\n\t\t\t\t});\n\t\t\t}\n\t\t\ttl.to(stub, {\n\t\t\t\tkeyframes: kfList,\n\t\t\t\trepeat,\n\t\t\t\tyoyo,\n\t\t\t\tlazy: false,\n\t\t\t\toverwrite: false,\n\t\t\t\timmediateRender: false\n\t\t\t}, startSec);\n\t\t}\n\t}\n\treturn {\n\t\tdropped,\n\t\tmaxAuthoredFrame\n\t};\n}\n/**\n* Dedupe per compiled cache key — a fresh render of the same broken doc SHOULD\n* re-warn. Single-frame renders are the exception: each `renderFrame` call has\n* its own `img-` render id, so probing a doc frame by frame would repeat the\n* warning on every frame; those dedupe per document instead.\n*/\nconst truncationWarnedKeys = /* @__PURE__ */ new Set();\nconst TRUNCATION_WARNED_CAP = 100;\nfunction warnTruncationOnce(cacheKey, truncations) {\n\tif (truncationWarnedKeys.has(cacheKey)) return;\n\tif (truncationWarnedKeys.size >= TRUNCATION_WARNED_CAP) truncationWarnedKeys.clear();\n\ttruncationWarnedKeys.add(cacheKey);\n\tconst details = truncations.map((t) => `'${t.prop}' (track '${t.trackId}') on '${t.layerId}': ${t.dropped} keyframe(s) past the clip window (last authored frame ${t.maxAuthoredFrame})`).join(\"; \");\n\tconsole.warn(`[compositor] ${truncations.length} track(s) truncated — animation tails will not play: ${details}. Extend durationFrames or move those keyframes.`);\n}\nfunction hashNodes(nodeOps, width, height, fps, durationSec) {\n\treturn fnv1a(stableStringify({\n\t\tnodes: nodeOps.map((vm) => {\n\t\t\tconst lop = vm?.operation || {};\n\t\t\treturn {\n\t\t\t\tid: lop.id,\n\t\t\t\tanimation: lop.animation,\n\t\t\t\tstartFrame: lop.startFrame,\n\t\t\t\tdurationFrames: lop.durationFrames,\n\t\t\t\tx: lop.x,\n\t\t\t\ty: lop.y,\n\t\t\t\tscale: lop.scale,\n\t\t\t\trotation: lop.rotation,\n\t\t\t\topacity: lop.opacity,\n\t\t\t\tvolume: lop.volume,\n\t\t\t\twidth: lop.width,\n\t\t\t\theight: lop.height,\n\t\t\t\thidden: lop.hidden,\n\t\t\t\tmuted: lop.muted,\n\t\t\t\tbackgroundColor: lop.backgroundColor,\n\t\t\t\tfill: lop.fill,\n\t\t\t\tborderColor: lop.borderColor,\n\t\t\t\ttextBackgroundColor: lop.textBackgroundColor,\n\t\t\t\trotateX: lop.rotateX,\n\t\t\t\trotateY: lop.rotateY,\n\t\t\t\trotateZ: lop.rotateZ,\n\t\t\t\tperspective: lop.perspective,\n\t\t\t\tperspectiveOriginX: lop.perspectiveOriginX,\n\t\t\t\tperspectiveOriginY: lop.perspectiveOriginY,\n\t\t\t\ttranslateZ: lop.translateZ,\n\t\t\t\tbackfaceVisibility: lop.backfaceVisibility,\n\t\t\t\ttransformStyle: lop.transformStyle,\n\t\t\t\tis3D: lop.is3D,\n\t\t\t\tz: lop.z,\n\t\t\t\tscaleZ: lop.scaleZ,\n\t\t\t\ttwoSided: lop.twoSided,\n\t\t\t\tcameraX: lop.cameraX,\n\t\t\t\tcameraY: lop.cameraY,\n\t\t\t\tcameraZ: lop.cameraZ,\n\t\t\t\ttargetX: lop.targetX,\n\t\t\t\ttargetY: lop.targetY,\n\t\t\t\ttargetZ: lop.targetZ,\n\t\t\t\tcameraPitch: lop.cameraPitch,\n\t\t\t\tcameraYaw: lop.cameraYaw,\n\t\t\t\tcameraRoll: lop.cameraRoll,\n\t\t\t\tcameraFov: lop.cameraFov,\n\t\t\t\tcameraZoom: lop.cameraZoom,\n\t\t\t\tfocalLength: lop.focalLength,\n\t\t\t\tfocusDistance: lop.focusDistance,\n\t\t\t\tfStop: lop.fStop,\n\t\t\t\tmaxBlurRadius: lop.maxBlurRadius,\n\t\t\t\tshakeTranslation: lop.shakeTranslation,\n\t\t\t\tshakeRotation: lop.shakeRotation,\n\t\t\t\torbitRadius: lop.orbitRadius,\n\t\t\t\torbitAzimuth: lop.orbitAzimuth,\n\t\t\t\torbitElevation: lop.orbitElevation,\n\t\t\t\tmaterial: lop.material,\n\t\t\t\tshininess: lop.shininess,\n\t\t\t\troughness: lop.roughness,\n\t\t\t\tspecularIntensity: lop.specularIntensity,\n\t\t\t\tambientIntensity: lop.ambientIntensity,\n\t\t\t\tmetallic: lop.metallic,\n\t\t\t\tlightType: lop.lightType,\n\t\t\t\tintensity: lop.intensity,\n\t\t\t\tradius: lop.radius,\n\t\t\t\tangle: lop.angle,\n\t\t\t\tpenumbra: lop.penumbra,\n\t\t\t\tanimationProgress: lop.animationProgress,\n\t\t\t\tanimationTime: lop.animationTime,\n\t\t\t\tanimationSpeed: lop.animationSpeed,\n\t\t\t\twireframe: lop.wireframe,\n\t\t\t\tscaleX: lop.scaleX,\n\t\t\t\tscaleY: lop.scaleY,\n\t\t\t\tfontSize: lop.fontSize,\n\t\t\t\ttext: lop.text\n\t\t\t};\n\t\t}),\n\t\twidth,\n\t\theight,\n\t\tfps,\n\t\tdurationSec\n\t}));\n}\nfunction compileTimeline(renderId, virtualMedia, options) {\n\tconst fps = options.fps;\n\tconst durationSec = options.durationSec;\n\tconst width = virtualMedia?.metadata?.width ?? 1920;\n\tconst height = virtualMedia?.metadata?.height ?? 1080;\n\tconst nodeOps = collectNodeOps(virtualMedia?.children ?? []);\n\tconst memoKey = virtualMedia?.children;\n\tconst memo = memoKey ? nodesHashMemo.get(memoKey) : void 0;\n\tlet nodesHash;\n\tif (memo && memo.width === width && memo.height === height && memo.fps === fps && memo.durationSec === durationSec) nodesHash = memo.hash;\n\telse {\n\t\tnodesHash = hashNodes(nodeOps, width, height, fps, durationSec);\n\t\tif (memoKey) nodesHashMemo.set(memoKey, {\n\t\t\twidth,\n\t\t\theight,\n\t\t\tfps,\n\t\t\tdurationSec,\n\t\t\thash: nodesHash\n\t\t});\n\t}\n\tconst irHash = fnv1a(`${nodesHash}|${signalsKey(virtualMedia?.operation?.signals ?? virtualMedia?.signals)}`);\n\tconst cacheKey = `${renderId}_${irHash}`;\n\tconst cached = getCachedTimeline(cacheKey);\n\tif (cached) return cached;\n\tconst tl = gsap.timeline({\n\t\tpaused: true,\n\t\tsmoothChildTiming: false\n\t});\n\tconst targetsById = {};\n\tconst signals = virtualMedia?.operation?.signals ?? virtualMedia?.signals ?? {};\n\tnodeOps.forEach((vm, index) => {\n\t\tconst lop = vm?.operation || {};\n\t\tconst layerId = lop.id || lop.inputHandleId || `layer_${index}`;\n\t\tconst stub = {\n\t\t\tid: layerId,\n\t\t\tinputHandleId: lop.inputHandleId || `layer_${index}`,\n\t\t\ttrackId: layerId,\n\t\t\tx: lop.kind === \"camera\" || lop.kind === \"light\" ? lop.x ?? lop.cameraX : lop.x ?? 0,\n\t\t\ty: lop.kind === \"camera\" || lop.kind === \"light\" ? lop.y ?? lop.cameraY : lop.y ?? 0,\n\t\t\tscale: lop.scale ?? 1,\n\t\t\trotation: lop.rotation ?? 0,\n\t\t\topacity: lop.opacity ?? 1,\n\t\t\tvolume: lop.volume ?? 1,\n\t\t\twidth: lop.width,\n\t\t\theight: lop.height,\n\t\t\thidden: !!lop.hidden,\n\t\t\tmuted: !!lop.muted,\n\t\t\trotateX: lop.rotateX ?? 0,\n\t\t\trotateY: lop.rotateY ?? 0,\n\t\t\trotateZ: lop.rotateZ ?? 0,\n\t\t\tperspective: lop.perspective ?? 0,\n\t\t\tperspectiveOriginX: lop.perspectiveOriginX ?? .5,\n\t\t\tperspectiveOriginY: lop.perspectiveOriginY ?? .5,\n\t\t\ttranslateZ: lop.translateZ ?? 0,\n\t\t\tbackfaceVisibility: lop.backfaceVisibility ?? \"visible\",\n\t\t\ttransformStyle: lop.transformStyle ?? \"flat\",\n\t\t\tfontSize: lop.fontSize,\n\t\t\ttext: 1,\n\t\t\tfill: lop.fill,\n\t\t\tfillColor: lop.fillColor ?? lop.fill,\n\t\t\tstrokeColor: lop.strokeColor ?? lop.stroke,\n\t\t\tstrokeWidth: lop.strokeWidth,\n\t\t\tletterSpacing: lop.letterSpacing,\n\t\t\tfirstMargin: lop.firstMargin ?? lop.pathOptions?.firstMargin,\n\t\t\tlastMargin: lop.lastMargin ?? lop.pathOptions?.lastMargin,\n\t\t\tbaselineShift: lop.baselineShift ?? lop.pathOptions?.baselineShift,\n\t\t\toffset: lop.offset,\n\t\t\trangeStart: lop.rangeStart,\n\t\t\trangeEnd: lop.rangeEnd,\n\t\t\tanimators: lop.animators,\n\t\t\tpathOptions: lop.pathOptions,\n\t\t\ttypewriter: lop.typewriter,\n\t\t\tmarquee: lop.marquee,\n\t\t\tis3D: lop.is3D ?? (lop.kind === \"camera\" || lop.kind === \"light\" || lop.kind === \"model3d\" ? true : false),\n\t\t\tz: lop.z ?? (lop.kind === \"camera\" ? lop.z ?? -1500 : 0),\n\t\t\tscaleZ: lop.scaleZ ?? 1,\n\t\t\ttwoSided: lop.twoSided ?? true,\n\t\t\tmaterial: lop.material,\n\t\t\tshininess: lop.shininess,\n\t\t\troughness: lop.roughness,\n\t\t\tspecularIntensity: lop.specularIntensity,\n\t\t\tambientIntensity: lop.ambientIntensity,\n\t\t\tmetallic: lop.metallic,\n\t\t\tanimationProgress: lop.animationProgress ?? 0,\n\t\t\tanimationTime: lop.animationTime ?? 0,\n\t\t\tanimationSpeed: lop.animationSpeed ?? 1,\n\t\t\twireframe: lop.wireframe ?? false,\n\t\t\tscaleX: lop.scaleX ?? 1,\n\t\t\tscaleY: lop.scaleY ?? 1,\n\t\t\tcameraX: lop.cameraX ?? (lop.kind === \"camera\" ? lop.x : void 0),\n\t\t\tcameraY: lop.cameraY ?? (lop.kind === \"camera\" ? lop.y : void 0),\n\t\t\tcameraZ: lop.cameraZ ?? (lop.kind === \"camera\" ? lop.z : void 0),\n\t\t\ttargetX: lop.targetX,\n\t\t\ttargetY: lop.targetY,\n\t\t\ttargetZ: lop.targetZ,\n\t\t\tcameraPitch: lop.cameraPitch ?? lop.pitch ?? 0,\n\t\t\tcameraYaw: lop.cameraYaw ?? lop.yaw ?? 0,\n\t\t\tcameraRoll: lop.cameraRoll ?? lop.roll ?? 0,\n\t\t\tcameraFov: lop.cameraFov ?? lop.lens?.fov ?? 50,\n\t\t\tcameraZoom: lop.cameraZoom ?? lop.lens?.zoom ?? 1,\n\t\t\tfocalLength: lop.focalLength ?? lop.lens?.focalLength ?? 50,\n\t\t\tfocusDistance: lop.focusDistance ?? lop.dof?.focusDistance,\n\t\t\tfStop: lop.fStop ?? lop.dof?.fStop ?? 2.8,\n\t\t\tmaxBlurRadius: lop.maxBlurRadius ?? lop.dof?.maxBlurRadius ?? 24,\n\t\t\tshakeTranslation: lop.shakeTranslation ?? (lop.shake?.enabled ? lop.shake?.translationAmplitude ?? 0 : 0),\n\t\t\tshakeRotation: lop.shakeRotation ?? (lop.shake?.enabled ? lop.shake?.rotationAmplitude ?? 0 : 0),\n\t\t\torbitRadius: lop.orbitRadius,\n\t\t\torbitAzimuth: lop.orbitAzimuth,\n\t\t\torbitElevation: lop.orbitElevation,\n\t\t\tlightType: lop.lightType,\n\t\t\tintensity: lop.intensity ?? (lop.kind === \"light\" ? 1 : void 0),\n\t\t\tradius: lop.radius,\n\t\t\tangle: lop.angle,\n\t\t\tpenumbra: lop.penumbra,\n\t\t\tdecay: lop.decay\n\t\t};\n\t\tfor (const track of lop.animation?.tracks ?? []) if ((track.source ?? { type: \"keyframe\" }).type !== \"keyframe\") stub[track.prop] = evaluateTrackAtFrame(track, lop.startFrame ?? 0, fps, {\n\t\t\tstartFrame: lop.startFrame ?? 0,\n\t\t\tbaseValues: stub,\n\t\t\tsignals\n\t\t});\n\t\telse if (track.keyframes && track.keyframes.length > 0) {\n\t\t\tconst kf0 = track.keyframes[0];\n\t\t\tconst seeded = stub;\n\t\t\tif (kf0.frame === 0) seeded[track.prop] = kf0.value;\n\t\t\telse if (seeded[track.prop] === void 0) seeded[track.prop] = lop[track.prop] ?? kf0.value;\n\t\t}\n\t\ttargetsById[layerId] = stub;\n\t});\n\tconst truncations = [];\n\tconst live = [];\n\tnodeOps.forEach((vm) => {\n\t\tconst lop = vm?.operation || {};\n\t\tconst layerId = lop.id || lop.inputHandleId;\n\t\tconst stub = layerId ? targetsById[layerId] : void 0;\n\t\tif (!stub) return;\n\t\tconst startFrame = lop.startFrame ?? 0;\n\t\tlet durationFrames = lop.durationFrames;\n\t\tif (durationFrames === void 0) {\n\t\t\tconst child = vm.children?.[0];\n\t\t\tconst childMeta = child ? getActiveMediaMetadata(child) : null;\n\t\t\tconst composeDuration = virtualMedia?.metadata?.durationMs ?? DEFAULT_DURATION_MS;\n\t\t\tconst layerType = lop.type ?? (lop.kind === \"text\" ? \"Text\" : lop.kind === \"media\" ? child ? child.operation?.dataType : void 0 : void 0);\n\t\t\tconst durationMs = resolveLayerDuration(void 0, childMeta?.durationMs ?? void 0, composeDuration, layerType);\n\t\t\tdurationFrames = Math.max(1, Math.round(durationMs / 1e3 * fps));\n\t\t}\n\t\tfor (const track of lop.animation?.tracks ?? []) {\n\t\t\tconst { dropped, maxAuthoredFrame } = compileTrackToTimeline(tl, stub, track, startFrame, fps, durationFrames, signals, live, lop.animation?.frameStep);\n\t\t\tif (dropped > 0) truncations.push({\n\t\t\t\tlayerId,\n\t\t\t\ttrackId: track.id,\n\t\t\t\tprop: track.prop,\n\t\t\t\tdropped,\n\t\t\t\tmaxAuthoredFrame\n\t\t\t});\n\t\t}\n\t});\n\tif (truncations.length > 0) {\n\t\twarnTruncationOnce(renderId.startsWith(\"img-\") ? `frame_${irHash}` : cacheKey, truncations);\n\t\tfor (const t of truncations) reportRenderDiagnostic(renderId, {\n\t\t\tseverity: \"warning\",\n\t\t\tcode: \"animation_truncated\",\n\t\t\tlayerId: t.layerId,\n\t\t\tmessage: `'${t.prop}' on '${t.layerId}': ${t.dropped} keyframe(s) past the clip window (last authored frame ${t.maxAuthoredFrame}) never play`\n\t\t});\n\t}\n\ttl.seek(1e-6);\n\ttl.seek(0);\n\tconst compileResult = {\n\t\ttl,\n\t\ttargetsById,\n\t\tnodes: nodeOps,\n\t\tlive,\n\t\tsignals\n\t};\n\tsetCachedTimeline(cacheKey, compileResult);\n\treturn compileResult;\n}\nconst layerTimelineCache = /* @__PURE__ */ new Map();\nfunction compileLayerTimeline(layerId, animation, baseVolume, baseMuted, fps) {\n\tconst cacheKey = `layer_${layerId}_${fnv1a(stableStringify({\n\t\tanimation,\n\t\tbaseVolume,\n\t\tbaseMuted,\n\t\tfps\n\t}))}`;\n\tconst cached = layerTimelineCache.get(cacheKey);\n\tif (cached) {\n\t\tif (Date.now() - cached.cacheTime <= CACHE_TTL_MS) {\n\t\t\tcached.cacheTime = Date.now();\n\t\t\treturn cached.value;\n\t\t}\n\t\tlayerTimelineCache.delete(cacheKey);\n\t\trelease(cached.value);\n\t}\n\tconst tl = gsap.timeline({\n\t\tpaused: true,\n\t\tsmoothChildTiming: false\n\t});\n\tconst stub = {\n\t\tvolume: baseVolume,\n\t\tmuted: baseMuted\n\t};\n\tconst tracks = animation?.tracks ?? [];\n\tfor (const track of tracks) {\n\t\tconst prop = track.prop;\n\t\tif (prop !== \"volume\" && prop !== \"muted\") continue;\n\t\tcompileTrackToTimeline(tl, stub, track, 0, fps, Infinity);\n\t}\n\ttl.seek(1e-6);\n\ttl.seek(0);\n\tconst result = {\n\t\ttl,\n\t\tstub\n\t};\n\tevictForInsert(layerTimelineCache, LAYER_TIMELINE_CACHE_MAX);\n\tlayerTimelineCache.set(cacheKey, {\n\t\tcacheTime: Date.now(),\n\t\tvalue: result\n\t});\n\treturn result;\n}\n\n//#endregion\n//#region src/renderers/container-bg.ts\n/**\n* Which container kinds paint their own background.\n*\n* flex/block/box all accept an optional `background` in the program schema.\n* The renderer must draw the rounded background pass for ALL of them (the old\n* code only painted `box`, so flex/block backgrounds were silently dropped and\n* their \"transparent-optimized\" fast path skipped the fill entirely).\n*/\nfunction shouldPaintContainerBackground(kind, background) {\n\tif (!background) return false;\n\treturn kind === \"flex\" || kind === \"block\" || kind === \"box\";\n}\n\n//#endregion\n//#region src/renderers/transform.ts\nfunction translate(tx, ty) {\n\treturn {\n\t\ta: 1,\n\t\tb: 0,\n\t\tc: 0,\n\t\td: 1,\n\t\te: tx,\n\t\tf: ty\n\t};\n}\n/** Rotation in degrees (screen convention: positive = clockwise, y-down). */\nfunction rotate(degrees) {\n\tconst rad = degrees * Math.PI / 180;\n\tconst cos = Math.cos(rad);\n\tconst sin = Math.sin(rad);\n\treturn {\n\t\ta: cos,\n\t\tb: sin,\n\t\tc: -sin,\n\t\td: cos,\n\t\te: 0,\n\t\tf: 0\n\t};\n}\nfunction scale(sx, sy = sx) {\n\treturn {\n\t\ta: sx,\n\t\tb: 0,\n\t\tc: 0,\n\t\td: sy,\n\t\te: 0,\n\t\tf: 0\n\t};\n}\n/** m1 ∘ m2 (m2 applied first — matches DOMMatrix.multiply ordering). */\nfunction multiply(m1, m2) {\n\treturn {\n\t\ta: m1.a * m2.a + m1.c * m2.b,\n\t\tb: m1.b * m2.a + m1.d * m2.b,\n\t\tc: m1.a * m2.c + m1.c * m2.d,\n\t\td: m1.b * m2.c + m1.d * m2.d,\n\t\te: m1.a * m2.e + m1.c * m2.f + m1.e,\n\t\tf: m1.b * m2.e + m1.d * m2.f + m1.f\n\t};\n}\n/** Materialize into a DOMMatrix for the renderer's transform stack. */\nfunction toDOMMatrix(m) {\n\treturn new DOMMatrix([\n\t\tm.a,\n\t\tm.b,\n\t\tm.c,\n\t\tm.d,\n\t\tm.e,\n\t\tm.f\n\t]);\n}\n/**\n* Layer transform matrix with anchor-aware pivot semantics.\n*\n* The composition node box is drawn at (0, 0, width, height) in local space\n* and positioned at `x`/`y`. `anchorX`/`anchorY` (0–1 fractions of the box)\n* select the pivot point that scale/rotation are applied AROUND:\n*\n* position → pivot → rotate → scale → un-pivot\n*\n* With the default center anchor (0.5, 0.5) a `scale: 2` animation grows the\n* node symmetrically from its middle instead of from its top-left corner.\n* The pivot point itself is invariant under rotation and scale.\n*/\nfunction buildLayerMatrix(params) {\n\tconst ax = params.anchorX ?? .5;\n\tconst ay = params.anchorY ?? .5;\n\tconst px = ax * params.width;\n\tconst py = ay * params.height;\n\treturn multiply(translate(params.x, params.y), multiply(translate(px, py), multiply(rotate(params.rotation), multiply(scale(params.scale), translate(-px, -py)))));\n}\n\n//#endregion\n//#region src/renderers/transform3d.ts\nconst Transform3DMath = {\n\tidentity() {\n\t\treturn [\n\t\t\t1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1\n\t\t];\n\t},\n\tmultiply(a, b) {\n\t\tconst out = new Array(16);\n\t\tfor (let row = 0; row < 4; row++) for (let col = 0; col < 4; col++) out[col * 4 + row] = a[0 + row] * b[col * 4 + 0] + a[4 + row] * b[col * 4 + 1] + a[8 + row] * b[col * 4 + 2] + a[12 + row] * b[col * 4 + 3];\n\t\treturn out;\n\t},\n\ttranslate(tx, ty, tz = 0) {\n\t\treturn [\n\t\t\t1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1,\n\t\t\t0,\n\t\t\ttx,\n\t\t\tty,\n\t\t\ttz,\n\t\t\t1\n\t\t];\n\t},\n\tscale(sx, sy, sz = 1) {\n\t\treturn [\n\t\t\tsx,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\tsy,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\tsz,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1\n\t\t];\n\t},\n\trotateX(rad) {\n\t\tconst c = Math.cos(rad);\n\t\tconst s = Math.sin(rad);\n\t\treturn [\n\t\t\t1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\tc,\n\t\t\ts,\n\t\t\t0,\n\t\t\t0,\n\t\t\t-s,\n\t\t\tc,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1\n\t\t];\n\t},\n\trotateY(rad) {\n\t\tconst c = Math.cos(rad);\n\t\tconst s = Math.sin(rad);\n\t\treturn [\n\t\t\tc,\n\t\t\t0,\n\t\t\t-s,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0,\n\t\t\ts,\n\t\t\t0,\n\t\t\tc,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1\n\t\t];\n\t},\n\trotateZ(rad) {\n\t\tconst c = Math.cos(rad);\n\t\tconst s = Math.sin(rad);\n\t\treturn [\n\t\t\tc,\n\t\t\ts,\n\t\t\t0,\n\t\t\t0,\n\t\t\t-s,\n\t\t\tc,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1\n\t\t];\n\t},\n\tperspective(d) {\n\t\tif (d <= 0) return Transform3DMath.identity();\n\t\tconst m = Transform3DMath.identity();\n\t\tm[11] = -1 / d;\n\t\treturn m;\n\t},\n\tbuildLayer3DMatrix(config) {\n\t\tconst { x, y, width, height, rotateXDeg = 0, rotateYDeg = 0, rotateZDeg = 0, scaleX = 1, scaleY = 1, perspectivePx = 0, originXRatio = .5, originYRatio = .5, translateZPx = 0 } = config;\n\t\tconst pivotX = x + width * originXRatio;\n\t\tconst pivotY = y + height * originYRatio;\n\t\tconst rxRad = rotateXDeg * Math.PI / 180;\n\t\tconst ryRad = rotateYDeg * Math.PI / 180;\n\t\tconst rzRad = rotateZDeg * Math.PI / 180;\n\t\tlet m = Transform3DMath.identity();\n\t\tm = Transform3DMath.multiply(m, Transform3DMath.translate(pivotX, pivotY, 0));\n\t\tif (perspectivePx > 0) m = Transform3DMath.multiply(m, Transform3DMath.perspective(perspectivePx));\n\t\tif (translateZPx !== 0) m = Transform3DMath.multiply(m, Transform3DMath.translate(0, 0, translateZPx));\n\t\tif (rzRad !== 0) m = Transform3DMath.multiply(m, Transform3DMath.rotateZ(rzRad));\n\t\tif (ryRad !== 0) m = Transform3DMath.multiply(m, Transform3DMath.rotateY(ryRad));\n\t\tif (rxRad !== 0) m = Transform3DMath.multiply(m, Transform3DMath.rotateX(rxRad));\n\t\tm = Transform3DMath.multiply(m, Transform3DMath.translate(-width * originXRatio, -height * originYRatio, 0));\n\t\tif (scaleX !== 1 || scaleY !== 1) m = Transform3DMath.multiply(m, Transform3DMath.scale(scaleX, scaleY, 1));\n\t\treturn m;\n\t},\n\tprojectPoint(m, p) {\n\t\tconst x = p.x;\n\t\tconst y = p.y;\n\t\tconst z = p.z;\n\t\tconst X = m[0] * x + m[4] * y + m[8] * z + m[12];\n\t\tconst Y = m[1] * x + m[5] * y + m[9] * z + m[13];\n\t\tconst W = m[3] * x + m[7] * y + m[11] * z + m[15];\n\t\tconst wInv = Math.abs(W) > 1e-6 ? 1 / W : 1;\n\t\treturn {\n\t\t\tx: X * wInv,\n\t\t\ty: Y * wInv\n\t\t};\n\t},\n\tprojectRectangleCorners(matrix, width, height) {\n\t\treturn {\n\t\t\ttopLeft: Transform3DMath.projectPoint(matrix, {\n\t\t\t\tx: 0,\n\t\t\t\ty: 0,\n\t\t\t\tz: 0\n\t\t\t}),\n\t\t\ttopRight: Transform3DMath.projectPoint(matrix, {\n\t\t\t\tx: width,\n\t\t\t\ty: 0,\n\t\t\t\tz: 0\n\t\t\t}),\n\t\t\tbottomLeft: Transform3DMath.projectPoint(matrix, {\n\t\t\t\tx: 0,\n\t\t\t\ty: height,\n\t\t\t\tz: 0\n\t\t\t}),\n\t\t\tbottomRight: Transform3DMath.projectPoint(matrix, {\n\t\t\t\tx: width,\n\t\t\t\ty: height,\n\t\t\t\tz: 0\n\t\t\t})\n\t\t};\n\t},\n\tcomputeSignedArea(quad) {\n\t\tconst { topLeft: p0, topRight: p1, bottomRight: p2, bottomLeft: p3 } = quad;\n\t\treturn .5 * (p0.x * p1.y - p1.x * p0.y + (p1.x * p2.y - p2.x * p1.y) + (p2.x * p3.y - p3.x * p2.y) + (p3.x * p0.y - p0.x * p3.y));\n\t}\n};\n/**\n* Checks whether a layer operation or compiled stub activates the 3D perspective path.\n*/\nfunction has3DTransform(target, lop) {\n\tconst rx = target?.rotateX ?? lop?.rotateX ?? 0;\n\tconst ry = target?.rotateY ?? lop?.rotateY ?? 0;\n\tconst rz = target?.rotateZ ?? lop?.rotateZ ?? 0;\n\tconst tz = target?.translateZ ?? lop?.translateZ ?? 0;\n\tconst p = target?.perspective ?? lop?.perspective ?? 0;\n\tif (rx !== 0 || ry !== 0 || tz !== 0 || p > 0 && (rx !== 0 || ry !== 0 || tz !== 0 || rz !== 0)) return true;\n\tif (target?.rotateZ !== void 0 && target.rotateZ !== 0 || lop?.rotateZ !== void 0 && lop.rotateZ !== 0) return true;\n\tconst tracks = lop?.animation?.tracks;\n\tif (tracks && tracks.length > 0) {\n\t\tfor (const t of tracks) if (t.prop === \"rotateX\" || t.prop === \"rotateY\" || t.prop === \"rotateZ\" || t.prop === \"translateZ\" || t.prop === \"perspective\") return true;\n\t}\n\treturn false;\n}\n\n//#endregion\n//#region src/renderers/webgpu-renderer.ts\nconst LAYOUT_PROPS = [\n\t\"width\",\n\t\"height\",\n\t\"gap\",\n\t\"padding\",\n\t\"fontSize\",\n\t\"letterSpacing\"\n];\nconst layoutMemo = /* @__PURE__ */ new WeakMap();\nfunction layoutKey(width, height, targetsById, mediaDims) {\n\tconst parts = [width, height];\n\tfor (const id in targetsById) {\n\t\tconst t = targetsById[id];\n\t\tfor (const k of LAYOUT_PROPS) if (t[k] !== void 0) parts.push(id, k, t[k]);\n\t}\n\tfor (const [id, d] of mediaDims) parts.push(id, d.width, d.height);\n\treturn JSON.stringify(parts);\n}\nconst compositorHomographyWgsl = `\nstruct HomographyUniforms {\n\tmatrix_row0 : vec4<f32>,\n\tmatrix_row1 : vec4<f32>,\n\tmatrix_row2 : vec4<f32>,\n\tparams : vec4<f32>, // params.x = opacity\n};\n\n@group(0) @binding(0) var<uniform> u : HomographyUniforms;\n@group(1) @binding(0) var tex : texture_2d<f32>;\n@group(1) @binding(1) var samp : sampler;\n${FULLSCREEN_QUAD_WGSL}\n\n@fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {\n\tlet x = in.uv.x;\n\tlet y = in.uv.y;\n\n\tlet d = u.matrix_row2.x * x + u.matrix_row2.y * y + u.matrix_row2.z;\n\tif (d <= 1e-6) {\n\t\treturn vec4<f32>(0.0);\n\t}\n\n\tlet src_u = (u.matrix_row0.x * x + u.matrix_row0.y * y + u.matrix_row0.z) / d;\n\tlet src_v = (u.matrix_row1.x * x + u.matrix_row1.y * y + u.matrix_row1.z) / d;\n\n\tif (src_u < 0.0 || src_u > 1.0 || src_v < 0.0 || src_v > 1.0) {\n\t\treturn vec4<f32>(0.0);\n\t}\n\n\tlet color = textureSampleLevel(tex, samp, vec2<f32>(src_u, src_v), 0.0);\n\treturn color * u.params.x;\n}\n`;\nconst deviceHomographyCache = /* @__PURE__ */ new WeakMap();\nfunction getHomographyResources(device, format) {\n\tlet res = deviceHomographyCache.get(device);\n\tif (!res) {\n\t\tconst uniformLayout = fragmentBindGroupLayout(device, [\"uniform\"]);\n\t\tconst textureLayout = fragmentBindGroupLayout(device, [\"texture\", \"sampler\"]);\n\t\tres = {\n\t\t\tpipeline: createFullscreenPipeline(device, {\n\t\t\t\tlabel: \"CompositorHomographyPipeline\",\n\t\t\t\tmodule: device.createShaderModule({\n\t\t\t\t\tlabel: \"compositor_homography.wgsl\",\n\t\t\t\t\tcode: compositorHomographyWgsl\n\t\t\t\t}),\n\t\t\t\tlayouts: [uniformLayout, textureLayout],\n\t\t\t\tformat,\n\t\t\t\tblend: PREMULTIPLIED_BLEND\n\t\t\t}),\n\t\t\tuniformLayout,\n\t\t\ttextureLayout\n\t\t};\n\t\tdeviceHomographyCache.set(device, res);\n\t}\n\treturn res;\n}\nconst audioTrackLatentCache = /* @__PURE__ */ new Map();\nconst deviceRenderer3DCache = /* @__PURE__ */ new WeakMap();\n/** One Renderer3D per device, target format and MSAA sample count. */\nfunction getRenderer3D(device, format, sampleCount) {\n\tlet byConfig = deviceRenderer3DCache.get(device);\n\tif (!byConfig) {\n\t\tbyConfig = /* @__PURE__ */ new Map();\n\t\tdeviceRenderer3DCache.set(device, byConfig);\n\t}\n\tconst key = `${format}|${sampleCount}`;\n\tlet r3d = byConfig.get(key);\n\tif (!r3d) {\n\t\tr3d = new Renderer3D(device, format, sampleCount);\n\t\tbyConfig.set(key, r3d);\n\t}\n\treturn r3d;\n}\nconst deviceRelightPipelineCache = /* @__PURE__ */ new WeakMap();\nfunction getScreenSpaceRelightPipeline(device, format) {\n\tlet relight = deviceRelightPipelineCache.get(device);\n\tif (!relight || relight.format !== format) {\n\t\trelight = new ScreenSpaceRelightPipeline(device, format);\n\t\tdeviceRelightPipelineCache.set(device, relight);\n\t}\n\treturn relight;\n}\nconst deviceDeflickerPipelineCache = /* @__PURE__ */ new WeakMap();\nfunction getTemporalDeflickerPipeline(device, layerKey) {\n\tlet map = deviceDeflickerPipelineCache.get(device);\n\tif (!map) {\n\t\tmap = /* @__PURE__ */ new Map();\n\t\tdeviceDeflickerPipelineCache.set(device, map);\n\t}\n\tlet pipe = map.get(layerKey);\n\tif (!pipe) {\n\t\tpipe = new TemporalDeflickerPipeline(device);\n\t\tmap.set(layerKey, pipe);\n\t}\n\treturn pipe;\n}\nfunction synthesizeRelightLights(relightOpts, sceneLights, bounds, shiftedFrame, fps) {\n\tif (sceneLights.length > 0 || relightOpts.lightType === void 0 && relightOpts.intensity === void 0 && relightOpts.lightPosX === void 0) return sceneLights;\n\tconst lightTypeStr = String(relightOpts.lightType ?? \"point\").toLowerCase();\n\tconst lightKind = lightTypeStr === \"directional\" ? \"directional\" : lightTypeStr === \"spot\" ? \"spot\" : \"point\";\n\tconst intensity = resolveFrameNumber(relightOpts.intensity ?? 1, 1, shiftedFrame, fps);\n\tconst normX = resolveFrameNumber(relightOpts.lightPosX, .5, shiftedFrame, fps);\n\tconst normY = resolveFrameNumber(relightOpts.lightPosY, .5, shiftedFrame, fps);\n\tconst normZ = resolveFrameNumber(relightOpts.lightPosZ, .25, shiftedFrame, fps);\n\tconst normRadius = resolveFrameNumber(relightOpts.lightRadius, .75, shiftedFrame, fps);\n\tconst lightX = bounds.x + normX * bounds.width;\n\tconst lightY = bounds.y + normY * bounds.height;\n\tconst lightZ = normZ * Math.max(bounds.width, bounds.height);\n\tconst lightRadius = normRadius * Math.max(bounds.width, bounds.height);\n\tconst synthLight = {\n\t\tlightType: lightKind,\n\t\tcolor: relightOpts.lightColor ?? \"#ffffff\",\n\t\tintensity,\n\t\tx: lightX,\n\t\ty: lightY,\n\t\tz: lightZ,\n\t\tradius: lightRadius,\n\t\tdecay: 1\n\t};\n\tconst ambientInt = resolveFrameNumber(relightOpts.ambientIntensity, .15, shiftedFrame, fps);\n\treturn [{\n\t\tlightType: \"ambient\",\n\t\tcolor: relightOpts.ambientColor ?? \"#ffffff\",\n\t\tintensity: ambientInt\n\t}, synthLight];\n}\nfunction drawProjectedQuad(ctx, encoder, destView, sourceTex, quad, destWidth, destHeight, opacity) {\n\tif (Math.abs(Transform3DMath.computeSignedArea(quad)) < 1e-4) return;\n\tconst minX = Math.max(0, Math.min(destWidth, Math.floor(Math.min(quad.topLeft.x, quad.topRight.x, quad.bottomLeft.x, quad.bottomRight.x))));\n\tconst minY = Math.max(0, Math.min(destHeight, Math.floor(Math.min(quad.topLeft.y, quad.topRight.y, quad.bottomLeft.y, quad.bottomRight.y))));\n\tconst maxX = Math.max(0, Math.min(destWidth, Math.ceil(Math.max(quad.topLeft.x, quad.topRight.x, quad.bottomLeft.x, quad.bottomRight.x))));\n\tconst maxY = Math.max(0, Math.min(destHeight, Math.ceil(Math.max(quad.topLeft.y, quad.topRight.y, quad.bottomLeft.y, quad.bottomRight.y))));\n\tconst scissorW = maxX - minX;\n\tconst scissorH = maxY - minY;\n\tif (scissorW <= 0 || scissorH <= 0) return;\n\tconst h = solveHomography([\n\t\t{\n\t\t\tx: quad.topLeft.x / destWidth,\n\t\t\ty: quad.topLeft.y / destHeight\n\t\t},\n\t\t{\n\t\t\tx: quad.topRight.x / destWidth,\n\t\t\ty: quad.topRight.y / destHeight\n\t\t},\n\t\t{\n\t\t\tx: quad.bottomLeft.x / destWidth,\n\t\t\ty: quad.bottomLeft.y / destHeight\n\t\t},\n\t\t{\n\t\t\tx: quad.bottomRight.x / destWidth,\n\t\t\ty: quad.bottomRight.y / destHeight\n\t\t}\n\t]);\n\tfor (const val of h) if (!Number.isFinite(val)) return;\n\tconst uniformData = new Float32Array(16);\n\tuniformData[0] = h[0];\n\tuniformData[1] = h[1];\n\tuniformData[2] = h[2];\n\tuniformData[3] = 0;\n\tuniformData[4] = h[3];\n\tuniformData[5] = h[4];\n\tuniformData[6] = h[5];\n\tuniformData[7] = 0;\n\tuniformData[8] = h[6];\n\tuniformData[9] = h[7];\n\tuniformData[10] = h[8];\n\tuniformData[11] = 0;\n\tuniformData[12] = opacity;\n\tuniformData[13] = 0;\n\tuniformData[14] = 0;\n\tuniformData[15] = 0;\n\tconst { pipeline, uniformLayout, textureLayout } = getHomographyResources(ctx.device, ctx.renderer.format);\n\tconst sampler = ctx.renderer.samplerCache.getSampler(ctx.device);\n\tconst uniformBuffer = ctx.renderer.getTemporaryBuffer(uniformData);\n\tconst uniformBindGroup = ctx.device.createBindGroup({\n\t\tlayout: uniformLayout,\n\t\tentries: [{\n\t\t\tbinding: 0,\n\t\t\tresource: { buffer: uniformBuffer }\n\t\t}]\n\t});\n\tconst textureBindGroup = ctx.renderer.bindGroupCache.getBindGroup(ctx.device, textureLayout, sourceTex, sampler);\n\tconst renderPass = encoder.beginRenderPass({ colorAttachments: [{\n\t\tview: destView,\n\t\tloadOp: \"load\",\n\t\tstoreOp: \"store\"\n\t}] });\n\trenderPass.setPipeline(pipeline);\n\trenderPass.setScissorRect(minX, minY, scissorW, scissorH);\n\trenderPass.setBindGroup(0, uniformBindGroup);\n\trenderPass.setBindGroup(1, textureBindGroup);\n\trenderPass.draw(4);\n\trenderPass.end();\n}\n/**\n* Emissive and shadow participation for a 3D draw: animated values first,\n* then the node's own, then (meshes) the model file's material.\n*/\nfunction surfaceProps(target, lop, mat) {\n\tconst toSrgb = (v) => v <= .0031308 ? 12.92 * v : 1.055 * v ** (1 / 2.4) - .055;\n\tconst emissive = target?.emissive ?? lop.emissive ?? (mat?.emissive ? [\n\t\ttoSrgb(mat.emissive[0]),\n\t\ttoSrgb(mat.emissive[1]),\n\t\ttoSrgb(mat.emissive[2])\n\t] : void 0);\n\tconst out = {};\n\tif (emissive !== void 0) {\n\t\tout.emissive = emissive;\n\t\tout.emissiveIntensity = target?.emissiveIntensity ?? lop.emissiveIntensity ?? mat?.emissiveStrength ?? 1;\n\t}\n\tif (lop.castShadow !== void 0) out.castShadow = lop.castShadow;\n\treturn out;\n}\nfunction computeContainerScissor(matrix, width, height) {\n\tconst corners = [\n\t\tmatrix.transformPoint(new DOMPoint(0, 0)),\n\t\tmatrix.transformPoint(new DOMPoint(width, 0)),\n\t\tmatrix.transformPoint(new DOMPoint(0, height)),\n\t\tmatrix.transformPoint(new DOMPoint(width, height))\n\t];\n\tconst xs = corners.map((p) => p.x);\n\tconst ys = corners.map((p) => p.y);\n\tconst minX = Math.min(...xs);\n\tconst minY = Math.min(...ys);\n\tconst maxX = Math.max(...xs);\n\tconst maxY = Math.max(...ys);\n\treturn {\n\t\tx: Math.round(minX),\n\t\ty: Math.round(minY),\n\t\twidth: Math.max(0, Math.round(maxX - minX)),\n\t\theight: Math.max(0, Math.round(maxY - minY))\n\t};\n}\nconst CompositorWebGPURenderer = async (args) => {\n\tconst { ctx, pass, targetView, targetTexture, targetWidth, targetHeight, encoder, props, drawChild } = args;\n\tconst { virtualMedia, fps, frame } = props;\n\tconst op = virtualMedia.operation;\n\tif (!op) return;\n\tpass.end();\n\tif (op.op === \"CompositorLayer\") {\n\t\tconsole.warn(\"CompositorWebGPURenderer called directly with legacy CompositorLayer operation. This is a bug.\");\n\t\targs.pass = ctx.renderer.beginFrame(encoder, targetView, {\n\t\t\tr: 0,\n\t\t\tg: 0,\n\t\t\tb: 0,\n\t\t\ta: 0\n\t\t}, targetWidth, targetHeight, \"load\");\n\t\treturn;\n\t}\n\tif (op.op === \"Compositor\") {\n\t\tconst vop = op;\n\t\tconst sampleCount3d = vop.antialias3d === false ? 1 : 4;\n\t\tconst containerWidth = props.containerWidth ?? ctx.surface.width;\n\t\tconst containerHeight = props.containerHeight ?? ctx.surface.height;\n\t\tconst nativeWidth = vop.width ?? containerWidth;\n\t\tconst nativeHeight = vop.height ?? containerHeight;\n\t\tconst opacity = typeof vop.opacity === \"number\" ? vop.opacity : 1;\n\t\tconst isVideoMode = props.isVideoMode ?? (vop.mode === \"Video\" || vop.dataType === \"Video\" || virtualMedia?.metadata?.durationMs != null);\n\t\tconst inheritedSeekOffset = props.inheritedSeekOffset ?? 0;\n\t\tconst shiftedFrame = Math.max(0, frame != null && fps != null ? frame + Math.round(inheritedSeekOffset * fps) : frame ?? 0);\n\t\tconst compositionFrame = props.compositionFrame ?? shiftedFrame;\n\t\tconst compTex = ctx.renderer.getTemporaryTexture(nativeWidth, nativeHeight, [...props.excludeTextures || [], targetTexture]);\n\t\tconst compView = compTex.createView();\n\t\tconst composeDuration = virtualMedia?.metadata?.durationMs ?? DEFAULT_DURATION_MS;\n\t\tconst durationSec = composeDuration / 1e3;\n\t\tconst compiled = compileTimeline(props.renderId, virtualMedia, {\n\t\t\tfps: fps ?? 24,\n\t\t\tdurationSec\n\t\t});\n\t\tconst { targetsById } = compiled;\n\t\tseekTimeline(compiled, shiftedFrame, fps ?? 24);\n\t\tgetRenderer3D(ctx.device, ctx.renderer.format ?? \"rgba8unorm\", sampleCount3d).resetPools();\n\t\tgetScreenSpaceRelightPipeline(ctx.device, ctx.renderer.format ?? \"rgba8unorm\").resetPools();\n\t\tconst clearColor = parseColor(vop.backgroundColor);\n\t\tctx.renderer.beginFrame(encoder, compView, clearColor, nativeWidth, nativeHeight, \"clear\").end();\n\t\tlet currentCompTex = compTex;\n\t\tctx.renderer.pushScissor({\n\t\t\tx: 0,\n\t\t\ty: 0,\n\t\t\twidth: nativeWidth,\n\t\t\theight: nativeHeight\n\t\t});\n\t\tctx.renderer.pushIdentity();\n\t\tawait initLayout();\n\t\tconst mediaDims = /* @__PURE__ */ new Map();\n\t\tfor (const vm of collectNodeOps(virtualMedia.children)) {\n\t\t\tconst lop = vm.operation;\n\t\t\tif (lop.kind === \"media\") {\n\t\t\t\tconst meta = getActiveMediaMetadata(vm.children?.[0]);\n\t\t\t\tif (meta?.width && meta?.height) mediaDims.set(lop.id, {\n\t\t\t\t\twidth: meta.width,\n\t\t\t\t\theight: meta.height\n\t\t\t\t});\n\t\t\t\telse if (lop.dataType === \"Caption\" || (vm.children?.[0]?.operation)?.dataType === \"Caption\" || (vm.children?.[0]?.operation)?.srtText !== void 0) {\n\t\t\t\t\tconst lopWidth = targetsById[lop.id]?.width ?? lop.width;\n\t\t\t\t\tconst autoWidth = typeof lopWidth === \"number\" ? lopWidth : Math.round(nativeWidth * .8);\n\t\t\t\t\tconst lopHeight = targetsById[lop.id]?.height ?? lop.height;\n\t\t\t\t\tlet autoHeight = typeof lopHeight === \"number\" ? lopHeight : 160;\n\t\t\t\t\tconst contentVM = vm.children?.[0];\n\t\t\t\t\tconst src = resolveMediaSourceUrl(contentVM) ?? (contentVM?.operation)?.url ?? (contentVM?.operation)?.src ?? (contentVM?.operation)?.srtText ?? lop.src ?? lop.url;\n\t\t\t\t\tif (typeof lopHeight !== \"number\" && src) try {\n\t\t\t\t\t\tconst captions = await srtLoader.load(src);\n\t\t\t\t\t\tif (captions && captions.length > 0) autoHeight = measureMaxCaptionHeight(captions, lop, autoWidth);\n\t\t\t\t\t} catch {}\n\t\t\t\t\tmediaDims.set(lop.id, {\n\t\t\t\t\t\twidth: autoWidth,\n\t\t\t\t\t\theight: autoHeight\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tconst frameResolveNode = (vm) => {\n\t\t\tconst lop = vm?.operation ?? {};\n\t\t\tconst target = targetsById[lop.id];\n\t\t\tconst pick = (k) => target && target[k] !== void 0 ? target[k] : lop[k];\n\t\t\tconst node = {\n\t\t\t\t...lop,\n\t\t\t\twidth: pick(\"width\"),\n\t\t\t\theight: pick(\"height\"),\n\t\t\t\tgap: pick(\"gap\"),\n\t\t\t\tpadding: pick(\"padding\"),\n\t\t\t\tfontSize: pick(\"fontSize\"),\n\t\t\t\tletterSpacing: pick(\"letterSpacing\")\n\t\t\t};\n\t\t\tnode.children = (vm?.children ?? []).map(frameResolveNode);\n\t\t\tif (!node.children.length) node.children = void 0;\n\t\t\treturn node;\n\t\t};\n\t\tconst layoutRoots = () => (virtualMedia.children ?? []).map(frameResolveNode).filter((node) => node?.kind !== \"camera\" && node?.kind !== \"light\");\n\t\tconst memoTree = virtualMedia.children;\n\t\tconst memoKey = layoutKey(nativeWidth, nativeHeight, targetsById, mediaDims);\n\t\tconst memo = memoTree ? layoutMemo.get(memoTree) : void 0;\n\t\tconst { rects } = memo?.key === memoKey ? memo : await computeLayout({\n\t\t\tlayout: layoutRoots(),\n\t\t\tviewport: {\n\t\t\t\twidth: nativeWidth,\n\t\t\t\theight: nativeHeight\n\t\t\t},\n\t\t\tmeasure: (node, constraintWidth) => {\n\t\t\t\tif (node.kind === \"text\") {\n\t\t\t\t\tconst textStyle = {\n\t\t\t\t\t\tfontSize: node.fontSize ?? 48,\n\t\t\t\t\t\tfontWeight: node.fontWeight,\n\t\t\t\t\t\tfontFamily: node.fontFamily,\n\t\t\t\t\t\tletterSpacing: node.letterSpacing,\n\t\t\t\t\t\tlineHeight: node.lineHeight,\n\t\t\t\t\t\tpadding: node.padding,\n\t\t\t\t\t\tdirection: node.direction\n\t\t\t\t\t};\n\t\t\t\t\tif (constraintWidth !== void 0) {\n\t\t\t\t\t\tconst isAuto = typeof node.width !== \"number\";\n\t\t\t\t\t\tconst wrapped$1 = measureText(node.text ?? \"\", {\n\t\t\t\t\t\t\t...textStyle,\n\t\t\t\t\t\t\twidth: isAuto ? void 0 : constraintWidth,\n\t\t\t\t\t\t\tkeepNaturalWidth: true\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\twidth: isAuto ? Math.ceil(wrapped$1.width) : Math.min(constraintWidth, Math.ceil(wrapped$1.width)),\n\t\t\t\t\t\t\theight: Math.ceil(wrapped$1.height)\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\tconst natural = measureText(node.text ?? \"\", textStyle);\n\t\t\t\t\tif (typeof node.width !== \"number\") return {\n\t\t\t\t\t\twidth: Math.ceil(natural.width),\n\t\t\t\t\t\theight: Math.ceil(natural.height)\n\t\t\t\t\t};\n\t\t\t\t\tconst wrapped = measureText(node.text ?? \"\", {\n\t\t\t\t\t\t...textStyle,\n\t\t\t\t\t\twidth: node.width\n\t\t\t\t\t});\n\t\t\t\t\treturn {\n\t\t\t\t\t\twidth: Math.ceil(wrapped.width),\n\t\t\t\t\t\theight: Math.ceil(wrapped.height)\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tif (node.kind === \"media\") return mediaDims.get(node.id) ?? null;\n\t\t\t\treturn null;\n\t\t\t}\n\t\t});\n\t\tif (memoTree && memo?.key !== memoKey) layoutMemo.set(memoTree, {\n\t\t\tkey: memoKey,\n\t\t\trects\n\t\t});\n\t\tconst allNodeOps = collectNodeOps(virtualMedia.children ?? []);\n\t\tconst cameraVMs = allNodeOps.filter((vm) => vm.operation?.kind === \"camera\");\n\t\tconst cameraVM = isVideoMode ? cameraVMs.filter((vm) => {\n\t\t\tconst op$1 = vm.operation;\n\t\t\tconst start = op$1.startFrame ?? 0;\n\t\t\tconst dur = op$1.durationFrames;\n\t\t\treturn shiftedFrame >= start && (dur === void 0 || shiftedFrame < start + dur);\n\t\t}).sort((a, b) => (b.operation.startFrame ?? 0) - (a.operation.startFrame ?? 0))[0] : cameraVMs[0];\n\t\tconst lightVMs = allNodeOps.filter((vm) => vm.operation?.kind === \"light\");\n\t\tconst has3DLayer = allNodeOps.some((vm) => {\n\t\t\tconst lop = vm.operation;\n\t\t\tconst target = lop.id ? targetsById[lop.id] : void 0;\n\t\t\treturn lop.kind !== \"camera\" && lop.kind !== \"light\" && (Boolean(target?.is3D ?? lop.is3D) || (target?.z ?? lop.z ?? 0) !== 0);\n\t\t});\n\t\tconst is3DScene = Boolean(cameraVM || has3DLayer || lightVMs.length > 0);\n\t\tlet camera = null;\n\t\tlet dofEnabled = false;\n\t\tconst sceneLights = [];\n\t\tlet sceneEnvironment = null;\n\t\tlet sceneBloom = null;\n\t\tlet shadowMapSize;\n\t\tif (is3DScene) {\n\t\t\tconst camOp = cameraVM?.operation;\n\t\t\tconst camStub = camOp?.id ? targetsById[camOp.id] : void 0;\n\t\t\tconst fov = camStub?.cameraFov ?? camOp?.lens?.fov ?? 50;\n\t\t\tcamera = Camera3D.createDefaultCamera(nativeWidth, nativeHeight, fov);\n\t\t\tcamera.near = camOp?.lens?.near ?? 1;\n\t\t\tcamera.far = camOp?.lens?.far ?? 5e4;\n\t\t\tcamera.zoom = camStub?.cameraZoom ?? camOp?.lens?.zoom ?? 1;\n\t\t\tconst defaultEye = camera.eye;\n\t\t\tconst defaultTarget = camera.target;\n\t\t\tconst eyeX = camStub?.cameraX ?? camStub?.x ?? camOp?.x ?? defaultEye[0];\n\t\t\tconst eyeY = camStub?.cameraY ?? camStub?.y ?? camOp?.y ?? defaultEye[1];\n\t\t\tconst eyeZ = camStub?.cameraZ ?? camStub?.z ?? camOp?.z ?? defaultEye[2];\n\t\t\tcamera.eye = [\n\t\t\t\teyeX,\n\t\t\t\teyeY,\n\t\t\t\teyeZ\n\t\t\t];\n\t\t\tif (camStub?.targetX !== void 0 || camStub?.targetY !== void 0 || camStub?.targetZ !== void 0 || camOp?.targetX !== void 0 || camOp?.targetY !== void 0 || camOp?.targetZ !== void 0) camera.target = [\n\t\t\t\tcamStub?.targetX ?? camOp?.targetX ?? defaultTarget[0],\n\t\t\t\tcamStub?.targetY ?? camOp?.targetY ?? defaultTarget[1],\n\t\t\t\tcamStub?.targetZ ?? camOp?.targetZ ?? defaultTarget[2]\n\t\t\t];\n\t\t\telse camera.target = [\n\t\t\t\teyeX,\n\t\t\t\teyeY,\n\t\t\t\t0\n\t\t\t];\n\t\t\tconst pitch = camStub?.cameraPitch ?? camOp?.pitch ?? 0;\n\t\t\tconst yaw = camStub?.cameraYaw ?? camOp?.yaw ?? 0;\n\t\t\tconst roll = camStub?.cameraRoll ?? camOp?.roll ?? 0;\n\t\t\tif (pitch !== 0 || yaw !== 0 || roll !== 0) camera = Camera3D.applyOrientation(camera, pitch, yaw, roll);\n\t\t\tconst orbitAzimuth = camStub?.orbitAzimuth;\n\t\t\tconst orbitElevation = camStub?.orbitElevation;\n\t\t\tconst orbitRadius = camStub?.orbitRadius;\n\t\t\tif (orbitAzimuth !== void 0 || orbitElevation !== void 0 || orbitRadius !== void 0) {\n\t\t\t\tconst radius = orbitRadius ?? Vector3Math.distance(camera.eye, camera.target);\n\t\t\t\tcamera.eye = Camera3D.orbit(camera.target, radius, orbitAzimuth ?? 0, orbitElevation ?? 0);\n\t\t\t}\n\t\t\tconst shakeTrans = camStub?.shakeTranslation ?? (camOp?.shake?.enabled ? camOp?.shake?.translationAmplitude : 0) ?? 0;\n\t\t\tconst shakeRot = camStub?.shakeRotation ?? (camOp?.shake?.enabled ? camOp?.shake?.rotationAmplitude : 0) ?? 0;\n\t\t\tif (shakeTrans > 0 || shakeRot > 0) {\n\t\t\t\tconst t = shiftedFrame / (fps ?? 24);\n\t\t\t\tcamera = Camera3D.applyCameraShake(camera, t, {\n\t\t\t\t\ttranslationAmplitude: shakeTrans,\n\t\t\t\t\trotationAmplitude: shakeRot,\n\t\t\t\t\tfrequency: camOp?.shake?.frequency ?? 1.5,\n\t\t\t\t\toctaves: camOp?.shake?.octaves ?? 3,\n\t\t\t\t\tseed: camOp?.shake?.seed ?? 42\n\t\t\t\t});\n\t\t\t}\n\t\t\tdofEnabled = Boolean(camOp?.dof?.enabled || camStub?.focusDistance !== void 0);\n\t\t\tif (dofEnabled) {\n\t\t\t\tcamera.focusDistance = camStub?.focusDistance ?? camOp?.dof?.focusDistance ?? Vector3Math.distance(camera.eye, camera.target);\n\t\t\t\tcamera.fStop = camStub?.fStop ?? camOp?.dof?.fStop ?? 2.8;\n\t\t\t\tcamera.maxBlurRadius = camStub?.maxBlurRadius ?? camOp?.dof?.maxBlurRadius ?? 24;\n\t\t\t}\n\t\t\tfor (const lvm of lightVMs) {\n\t\t\t\tconst lop = lvm.operation;\n\t\t\t\tconst targetId = lop.id || lop.inputHandleId;\n\t\t\t\tconst target = targetId ? targetsById[targetId] : void 0;\n\t\t\t\tif (target?.hidden || lop.hidden) continue;\n\t\t\t\tif (isVideoMode) {\n\t\t\t\t\tconst startFrame = lop.startFrame ?? 0;\n\t\t\t\t\tconst durationFrames = lop.durationFrames;\n\t\t\t\t\tif (shiftedFrame < startFrame) continue;\n\t\t\t\t\tif (durationFrames !== void 0 && shiftedFrame >= startFrame + durationFrames) continue;\n\t\t\t\t}\n\t\t\t\tconst lightType = target?.lightType ?? lop.lightType ?? \"point\";\n\t\t\t\tif (lightType === \"environment\") {\n\t\t\t\t\tconst intensity$1 = target?.intensity ?? lop.intensity;\n\t\t\t\t\tsceneEnvironment = {\n\t\t\t\t\t\tpreset: lop.preset,\n\t\t\t\t\t\ttop: lop.top,\n\t\t\t\t\t\thorizon: lop.horizon,\n\t\t\t\t\t\tbottom: lop.bottom,\n\t\t\t\t\t\tsoftboxes: target?.softboxes ?? lop.softboxes,\n\t\t\t\t\t\trotation: target?.rotation ?? lop.rotation,\n\t\t\t\t\t\texposure: target?.exposure ?? lop.exposure,\n\t\t\t\t\t\ttoneMapping: lop.toneMapping,\n\t\t\t\t\t\tfog: lop.fog,\n\t\t\t\t\t\t...intensity$1 !== void 0 && { intensity: intensity$1 }\n\t\t\t\t\t};\n\t\t\t\t\tsceneBloom = lop.bloom === true ? {} : lop.bloom && typeof lop.bloom === \"object\" ? { ...lop.bloom } : null;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst color = parseColor(target?.color ?? lop.color ?? \"#ffffff\");\n\t\t\t\tconst intensity = target?.intensity ?? lop.intensity ?? 1;\n\t\t\t\tconst x = target?.x ?? lop.x ?? 0;\n\t\t\t\tconst y = target?.y ?? lop.y ?? 0;\n\t\t\t\tconst z = target?.z ?? lop.z ?? 0;\n\t\t\t\tconst targetX = target?.targetX ?? lop.targetX ?? 0;\n\t\t\t\tconst targetY = target?.targetY ?? lop.targetY ?? 0;\n\t\t\t\tconst targetZ = target?.targetZ ?? lop.targetZ ?? 0;\n\t\t\t\tconst radius = target?.radius ?? lop.radius ?? 1e3;\n\t\t\t\tconst angle = target?.angle ?? lop.angle ?? 45;\n\t\t\t\tconst penumbra = target?.penumbra ?? lop.penumbra ?? .2;\n\t\t\t\tconst decay = target?.decay ?? lop.decay ?? 1;\n\t\t\t\tsceneLights.push({\n\t\t\t\t\ttype: lightType,\n\t\t\t\t\tcolor,\n\t\t\t\t\tintensity,\n\t\t\t\t\tposition: [\n\t\t\t\t\t\tx,\n\t\t\t\t\t\ty,\n\t\t\t\t\t\tz\n\t\t\t\t\t],\n\t\t\t\t\ttarget: [\n\t\t\t\t\t\ttargetX,\n\t\t\t\t\t\ttargetY,\n\t\t\t\t\t\ttargetZ\n\t\t\t\t\t],\n\t\t\t\t\tradius,\n\t\t\t\t\tangle,\n\t\t\t\t\tpenumbra,\n\t\t\t\t\tdecay,\n\t\t\t\t\tcastShadow: Boolean(lop.castShadow),\n\t\t\t\t\tshadowSoftness: target?.shadowSoftness ?? lop.shadowSoftness,\n\t\t\t\t\tshadowDarkness: target?.shadowDarkness ?? lop.shadowDarkness\n\t\t\t\t});\n\t\t\t\tif (lop.castShadow && lop.shadowMapSize) shadowMapSize = lop.shadowMapSize;\n\t\t\t}\n\t\t}\n\t\tconst pending3DItems = [];\n\t\t/** Textures the queued 3D items still read: their layers and mattes. */\n\t\tconst pendingTextures = () => pending3DItems.flatMap((q) => [q.texture, q.opts.matte]).filter((t) => Boolean(t));\n\t\tconst flush3DPass = (curTex, curView, curExcludes) => {\n\t\t\tif (pending3DItems.length === 0 || !camera) return {\n\t\t\t\tfinalTex: curTex,\n\t\t\t\tfinalView: curView\n\t\t\t};\n\t\t\tconst r3d = getRenderer3D(ctx.device, ctx.renderer.format ?? \"rgba8unorm\", sampleCount3d);\n\t\t\tfor (const item of pending3DItems) if (item.kind === \"mesh\" && item.opts.audioDeform) item.meshBuffers = r3d.deformMesh(encoder, item.mesh, item.opts.audioDeform);\n\t\t\tconst itemTextures = pendingTextures();\n\t\t\tconst scene3dTex = ctx.renderer.getTemporaryTexture(nativeWidth, nativeHeight, [\n\t\t\t\tcurTex,\n\t\t\t\ttargetTexture,\n\t\t\t\t...curExcludes,\n\t\t\t\t...itemTextures\n\t\t\t]);\n\t\t\tconst scene3dView = scene3dTex.createView();\n\t\t\tlet linearDepthTex;\n\t\t\tlet linearDepthView;\n\t\t\tif (dofEnabled) {\n\t\t\t\tlinearDepthTex = r3d.getOrCreateLinearDepthTexture(nativeWidth, nativeHeight);\n\t\t\t\tlinearDepthView = linearDepthTex.createView();\n\t\t\t}\n\t\t\tlet shadow = null;\n\t\t\tconst casterIndex = Light3D.shadowCasterIndex(sceneLights);\n\t\t\tif (casterIndex >= 0) {\n\t\t\t\tconst casters = [];\n\t\t\t\tconst receivers = [];\n\t\t\t\tfor (const item of pending3DItems) if (item.kind === \"mesh\") {\n\t\t\t\t\tconst caster = {\n\t\t\t\t\t\tkind: \"mesh\",\n\t\t\t\t\t\tmesh: item.mesh,\n\t\t\t\t\t\tbuffers: item.meshBuffers,\n\t\t\t\t\t\topts: item.opts\n\t\t\t\t\t};\n\t\t\t\t\treceivers.push(r3d.worldBounds(caster));\n\t\t\t\t\tif (item.opts.castShadow !== false && item.opts.material !== \"unlit\") casters.push(caster);\n\t\t\t\t} else if (item.kind === \"quad\") {\n\t\t\t\t\tconst caster = {\n\t\t\t\t\t\tkind: \"quad\",\n\t\t\t\t\t\ttexture: item.texture,\n\t\t\t\t\t\topts: item.opts\n\t\t\t\t\t};\n\t\t\t\t\treceivers.push(r3d.worldBounds(caster));\n\t\t\t\t\tif (item.opts.castShadow === true) casters.push(caster);\n\t\t\t\t}\n\t\t\t\tconst shadowLight = sceneLights.filter((l) => (l.lightType ?? l.type) !== \"ambient\")[casterIndex];\n\t\t\t\tif (shadowLight && casters.length > 0) shadow = r3d.renderShadowMap(encoder, shadowLight, casterIndex, casters, receivers, { mapSize: shadowMapSize });\n\t\t\t}\n\t\t\tconst { pass: pass3d, cameraBindGroup, cameraBuffer, lightsBindGroup } = r3d.beginPass(encoder, scene3dView, nativeWidth, nativeHeight, camera, \"clear\", {\n\t\t\t\tr: 0,\n\t\t\t\tg: 0,\n\t\t\t\tb: 0,\n\t\t\t\ta: 0\n\t\t\t}, linearDepthView, sceneLights, {\n\t\t\t\tenvironment: sceneEnvironment,\n\t\t\t\tshadow\n\t\t\t}, Boolean(sceneBloom));\n\t\t\tconst isGlass = (item) => item.kind === \"mesh\" && (item.opts.material === \"glass\" || item.opts.material === \"acrylic\" || item.opts.material === \"frosted\");\n\t\t\tconst ordered = [...pending3DItems.filter((i) => !isGlass(i)), ...pending3DItems.filter(isGlass)];\n\t\t\tfor (const item of ordered) if (item.kind === \"quad\") r3d.drawTextureQuad(pass3d, cameraBindGroup, lightsBindGroup, item.texture, item.opts, dofEnabled);\n\t\t\telse if (item.kind === \"slug\") r3d.drawSlugText(pass3d, cameraBindGroup, lightsBindGroup, item.batches, item.opts, item.stackBase, dofEnabled);\n\t\t\telse if (item.kind === \"mesh\") r3d.drawMesh3D(pass3d, cameraBindGroup, lightsBindGroup, item.meshBuffers ?? item.mesh, item.texture, isGlass(item) ? {\n\t\t\t\t...item.opts,\n\t\t\t\tbackdrop: curTex\n\t\t\t} : item.opts, dofEnabled);\n\t\t\tpass3d.end();\n\t\t\tlet final3dTex = scene3dTex;\n\t\t\tif (dofEnabled && linearDepthTex) {\n\t\t\t\tconst dofResultTex = ctx.renderer.getTemporaryTexture(nativeWidth, nativeHeight, [\n\t\t\t\t\tcurTex,\n\t\t\t\t\ttargetTexture,\n\t\t\t\t\tscene3dTex,\n\t\t\t\t\t...curExcludes\n\t\t\t\t]);\n\t\t\t\tr3d.applyDepthOfField(encoder, scene3dTex, linearDepthTex, dofResultTex.createView(), cameraBuffer);\n\t\t\t\tfinal3dTex = dofResultTex;\n\t\t\t}\n\t\t\tif (sceneBloom) {\n\t\t\t\tconst bloomTex = ctx.renderer.getTemporaryTexture(nativeWidth, nativeHeight, [\n\t\t\t\t\tcurTex,\n\t\t\t\t\ttargetTexture,\n\t\t\t\t\tfinal3dTex,\n\t\t\t\t\tscene3dTex,\n\t\t\t\t\t...curExcludes\n\t\t\t\t]);\n\t\t\t\tr3d.applyBloom(encoder, final3dTex, bloomTex, sceneBloom, r3d.hdrSource());\n\t\t\t\tfinal3dTex = bloomTex;\n\t\t\t}\n\t\t\tconst nextTex = ctx.renderer.composite(encoder, curTex, final3dTex, \"normal\", [targetTexture, ...curExcludes]);\n\t\t\tpending3DItems.length = 0;\n\t\t\treturn {\n\t\t\t\tfinalTex: nextTex,\n\t\t\t\tfinalView: nextTex.createView()\n\t\t\t};\n\t\t};\n\t\tlet nodeIndex = 0;\n\t\tconst renderNodeTree = async (vms, initialTex, initialView, excludes, accumulatedOpacity = 1, parentMatrix = new DOMMatrix(), parentRect = null, targetW = nativeWidth, targetH = nativeHeight, parent3DMatrix = null, isRootScene = false) => {\n\t\t\tconst sorted = [...vms].sort((a, b) => {\n\t\t\t\treturn (a.operation?.zIndex ?? 0) - (b.operation?.zIndex ?? 0);\n\t\t\t});\n\t\t\tlet activeTex = initialTex;\n\t\t\tlet activeView = initialView;\n\t\t\tlet activeExcludes = excludes;\n\t\t\tconst mattesByOwner = /* @__PURE__ */ new Map();\n\t\t\tfor (const vm of vms) {\n\t\t\t\tconst owner = vm.operation?.matteOf;\n\t\t\t\tif (owner) mattesByOwner.set(owner, vm);\n\t\t\t}\n\t\t\tfor (const child of sorted) {\n\t\t\t\tconst lop = child.operation;\n\t\t\t\tif (lop.kind === \"camera\" || lop.kind === \"light\") continue;\n\t\t\t\tif (lop.matteOf) continue;\n\t\t\t\tconst targetId = lop.id || lop.inputHandleId;\n\t\t\t\tconst target = targetId ? targetsById[targetId] : void 0;\n\t\t\t\tconst isChild3D = Boolean(target?.is3D ?? lop.is3D) || Boolean(camera && ((target?.z ?? lop.z ?? 0) !== 0 || lop.is3D)) || Boolean(parent3DMatrix);\n\t\t\t\tif (isRootScene && !isChild3D && pending3DItems.length > 0) {\n\t\t\t\t\tconst flushed = flush3DPass(activeTex, activeView, activeExcludes);\n\t\t\t\t\tif (flushed.finalTex !== activeTex) activeExcludes = [...activeExcludes, flushed.finalTex];\n\t\t\t\t\tactiveTex = flushed.finalTex;\n\t\t\t\t\tactiveView = flushed.finalView;\n\t\t\t\t}\n\t\t\t\tif (lop.op !== \"CompositorLayer\") {\n\t\t\t\t\tawait drawChild(child, {\n\t\t\t\t\t\tcontainerWidth: targetW,\n\t\t\t\t\t\tcontainerHeight: targetH,\n\t\t\t\t\t\trenderId: `${props.renderId}-c${nodeIndex}-${lop.op}`,\n\t\t\t\t\t\tfps,\n\t\t\t\t\t\tisVideoMode,\n\t\t\t\t\t\tframe: shiftedFrame,\n\t\t\t\t\t\tcompositionFrame,\n\t\t\t\t\t\texcludeTextures: [targetTexture, ...activeExcludes]\n\t\t\t\t\t}, activeView, activeTex, targetW, targetH);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tnodeIndex += 1;\n\t\t\t\tconst matteVM = lop.matteId ? mattesByOwner.get(lop.id) : void 0;\n\t\t\t\tif (matteVM) {\n\t\t\t\t\tconst isolate = async (vm, index) => {\n\t\t\t\t\t\tconst queued = pending3DItems.splice(0);\n\t\t\t\t\t\tconst busy = [\n\t\t\t\t\t\t\ttargetTexture,\n\t\t\t\t\t\t\tactiveTex,\n\t\t\t\t\t\t\t...activeExcludes,\n\t\t\t\t\t\t\t...queued.flatMap((q) => [q.texture, q.opts.matte])\n\t\t\t\t\t\t].filter((t) => Boolean(t));\n\t\t\t\t\t\tconst tex = ctx.renderer.getTemporaryTexture(targetW, targetH, busy);\n\t\t\t\t\t\tconst view = tex.createView();\n\t\t\t\t\t\tctx.renderer.beginFrame(encoder, view, {\n\t\t\t\t\t\t\tr: 0,\n\t\t\t\t\t\t\tg: 0,\n\t\t\t\t\t\t\tb: 0,\n\t\t\t\t\t\t\ta: 0\n\t\t\t\t\t\t}, targetW, targetH, \"clear\").end();\n\t\t\t\t\t\tconst drawn = (await renderLayerVM(vm, index, tex, view, busy.filter((t) => t !== targetTexture), accumulatedOpacity, parentMatrix, parentRect, targetW, targetH, parent3DMatrix, false))?.finalTex ?? tex;\n\t\t\t\t\t\tconst flat = flush3DPass(drawn, drawn.createView(), busy).finalTex;\n\t\t\t\t\t\tpending3DItems.push(...queued);\n\t\t\t\t\t\treturn flat;\n\t\t\t\t\t};\n\t\t\t\t\tconst mode = matteVM.operation.matteMode ?? \"alpha\";\n\t\t\t\t\tconst blend = mode === \"luma\" ? \"luma-in\" : mode === \"luma-inverted\" ? \"luma-out\" : mode === \"alpha-inverted\" ? \"destination-out\" : \"destination-in\";\n\t\t\t\t\tif (isChild3D) {\n\t\t\t\t\t\tlet coverage = await isolate(matteVM, nodeIndex);\n\t\t\t\t\t\tactiveExcludes = [...activeExcludes, coverage];\n\t\t\t\t\t\tnodeIndex += 1;\n\t\t\t\t\t\tif (mode !== \"alpha\") {\n\t\t\t\t\t\t\tconst white = ctx.renderer.getTemporaryTexture(targetW, targetH, [\n\t\t\t\t\t\t\t\ttargetTexture,\n\t\t\t\t\t\t\t\tactiveTex,\n\t\t\t\t\t\t\t\t...activeExcludes,\n\t\t\t\t\t\t\t\t...pendingTextures()\n\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\tctx.renderer.beginFrame(encoder, white.createView(), {\n\t\t\t\t\t\t\t\tr: 1,\n\t\t\t\t\t\t\t\tg: 1,\n\t\t\t\t\t\t\t\tb: 1,\n\t\t\t\t\t\t\t\ta: 1\n\t\t\t\t\t\t\t}, targetW, targetH, \"clear\").end();\n\t\t\t\t\t\t\tcoverage = ctx.renderer.composite(encoder, white, coverage, blend, [\n\t\t\t\t\t\t\t\ttargetTexture,\n\t\t\t\t\t\t\t\tactiveTex,\n\t\t\t\t\t\t\t\t...activeExcludes,\n\t\t\t\t\t\t\t\t...pendingTextures(),\n\t\t\t\t\t\t\t\twhite\n\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\tactiveExcludes = [...activeExcludes, coverage];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst before = pending3DItems.length;\n\t\t\t\t\t\tconst res$1 = await renderLayerVM(child, nodeIndex, activeTex, activeView, activeExcludes, accumulatedOpacity, parentMatrix, parentRect, targetW, targetH, parent3DMatrix, isRootScene);\n\t\t\t\t\t\tfor (const item of pending3DItems.slice(before)) item.opts.matte = coverage;\n\t\t\t\t\t\tif (res$1) {\n\t\t\t\t\t\t\tif (res$1.finalTex !== activeTex) activeExcludes = [...activeExcludes, res$1.finalTex];\n\t\t\t\t\t\t\tactiveTex = res$1.finalTex;\n\t\t\t\t\t\t\tactiveView = res$1.finalView;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tconst contentTex = await isolate(child, nodeIndex);\n\t\t\t\t\tactiveExcludes = [...activeExcludes, contentTex];\n\t\t\t\t\tnodeIndex += 1;\n\t\t\t\t\tconst matteTex = await isolate(matteVM, nodeIndex);\n\t\t\t\t\tconst masked = ctx.renderer.composite(encoder, contentTex, matteTex, blend, [\n\t\t\t\t\t\ttargetTexture,\n\t\t\t\t\t\tactiveTex,\n\t\t\t\t\t\t...activeExcludes,\n\t\t\t\t\t\tmatteTex\n\t\t\t\t\t]);\n\t\t\t\t\tconst next = ctx.renderer.composite(encoder, activeTex, masked, \"normal\", [\n\t\t\t\t\t\ttargetTexture,\n\t\t\t\t\t\t...activeExcludes,\n\t\t\t\t\t\tmatteTex\n\t\t\t\t\t]);\n\t\t\t\t\tactiveExcludes = [...activeExcludes, next];\n\t\t\t\t\tactiveTex = next;\n\t\t\t\t\tactiveView = next.createView();\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst res = await renderLayerVM(child, nodeIndex, activeTex, activeView, activeExcludes, accumulatedOpacity, parentMatrix, parentRect, targetW, targetH, parent3DMatrix, isRootScene);\n\t\t\t\tif (res) {\n\t\t\t\t\tif (res.finalTex !== activeTex) activeExcludes = [...activeExcludes, res.finalTex];\n\t\t\t\t\tactiveTex = res.finalTex;\n\t\t\t\t\tactiveView = res.finalView;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (isRootScene && pending3DItems.length > 0) {\n\t\t\t\tconst flushed = flush3DPass(activeTex, activeView, activeExcludes);\n\t\t\t\tif (flushed.finalTex !== activeTex) activeExcludes = [...activeExcludes, flushed.finalTex];\n\t\t\t\tactiveTex = flushed.finalTex;\n\t\t\t\tactiveView = flushed.finalView;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tfinalTex: activeTex,\n\t\t\t\tfinalView: activeView\n\t\t\t};\n\t\t};\n\t\tconst renderLayerVM = async (nodeVM, i, destTex, destView, baseExcludes, accumulatedOpacity, parentMatrix, parentRect, targetW = nativeWidth, targetH = nativeHeight, parent3DMatrix = null, isRootScene = false) => {\n\t\t\tconst excludes = [...baseExcludes, ...pendingTextures()];\n\t\t\tconst lop = nodeVM.operation;\n\t\t\tif (lop.kind === \"camera\" || lop.kind === \"light\") return;\n\t\t\tconst targetId = lop.id || lop.inputHandleId;\n\t\t\tconst target = targetId ? targetsById[targetId] : void 0;\n\t\t\tif (target?.hidden || lop.hidden) return;\n\t\t\tconst kind = lop.kind;\n\t\t\tconst isContainer = kind === \"flex\" || kind === \"block\" || kind === \"box\";\n\t\t\tif (isVideoMode) {\n\t\t\t\tconst startFrame = lop.startFrame ?? 0;\n\t\t\t\tconst durationFrames = lop.durationFrames;\n\t\t\t\tif (shiftedFrame < startFrame) return;\n\t\t\t\tif (durationFrames !== void 0 && shiftedFrame >= startFrame + durationFrames) return;\n\t\t\t}\n\t\t\tif (kind === \"model3d\") {\n\t\t\t\tconst r3d = getRenderer3D(ctx.device, ctx.renderer.format ?? \"rgba8unorm\", sampleCount3d);\n\t\t\t\tlet modelSrc = lop.modelData ?? lop.src;\n\t\t\t\tif (!modelSrc && lop.text3dOptions) {\n\t\t\t\t\tconst tOpts = lop.text3dOptions;\n\t\t\t\t\tconst font = (tOpts.fontFamily ? SlugFontCache.getParsed(tOpts.fontFamily) : null) ?? SlugFontCache.getParsed(\"Inter\") ?? SlugFontCache.getParsed(\"Unbounded\") ?? SlugFontCache.getFirstParsed();\n\t\t\t\t\tif (font) {\n\t\t\t\t\t\tmodelSrc = generateExtrudedTextGeometry({\n\t\t\t\t\t\t\t...tOpts,\n\t\t\t\t\t\t\tfont\n\t\t\t\t\t\t}).modelData;\n\t\t\t\t\t\tlop.modelData = modelSrc;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!modelSrc && lop.primitive3d) {\n\t\t\t\t\tmodelSrc = getPrimitiveGeometry(lop.primitive3d);\n\t\t\t\t\tlop.modelData = modelSrc;\n\t\t\t\t}\n\t\t\t\tif (!modelSrc) return;\n\t\t\t\tlet model;\n\t\t\t\ttry {\n\t\t\t\t\tmodel = typeof modelSrc === \"object\" && modelSrc !== null && \"meshes\" in modelSrc ? modelSrc : r3d.loadModel(modelSrc, lop.modelFormat ?? \"auto\", {\n\t\t\t\t\t\tcenter: lop.center,\n\t\t\t\t\t\tnormalizeSize: lop.normalizeSize\n\t\t\t\t\t});\n\t\t\t\t} catch (err) {\n\t\t\t\t\tconsole.error(\"Failed to load 3D model:\", err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (!model || model.meshes.length === 0) return;\n\t\t\t\tconst posX = target?.x ?? lop.x ?? 0;\n\t\t\t\tconst posY = target?.y ?? lop.y ?? 0;\n\t\t\t\tconst posZ = target?.z ?? lop.z ?? 0;\n\t\t\t\tconst rotX = target?.rotateX ?? lop.rotateX ?? 0;\n\t\t\t\tconst rotY = target?.rotateY ?? lop.rotateY ?? 0;\n\t\t\t\tconst rotZ = (target?.rotateZ ?? lop.rotateZ ?? 0) !== 0 ? target?.rotateZ ?? lop.rotateZ ?? 0 : target?.rotation ?? lop.rotation ?? 0;\n\t\t\t\tconst sc = target?.scale ?? lop.scale ?? 1;\n\t\t\t\tconst scX = (target?.scaleX ?? lop.scaleX ?? 1) * sc;\n\t\t\t\tconst scY = (target?.scaleY ?? lop.scaleY ?? 1) * sc;\n\t\t\t\tconst scZ = (target?.scaleZ ?? lop.scaleZ ?? 1) * sc;\n\t\t\t\tlet localM = Matrix4Math.identity();\n\t\t\t\tlocalM = Matrix4Math.multiply(localM, Matrix4Math.translate(posX, posY, posZ));\n\t\t\t\tconst rxRad = rotX * Math.PI / 180;\n\t\t\t\tconst ryRad = rotY * Math.PI / 180;\n\t\t\t\tconst rzRad = rotZ * Math.PI / 180;\n\t\t\t\tif (rzRad !== 0) localM = Matrix4Math.multiply(localM, Matrix4Math.rotateZ(rzRad));\n\t\t\t\tif (ryRad !== 0) localM = Matrix4Math.multiply(localM, Matrix4Math.rotateY(ryRad));\n\t\t\t\tif (rxRad !== 0) localM = Matrix4Math.multiply(localM, Matrix4Math.rotateX(rxRad));\n\t\t\t\tlocalM = Matrix4Math.multiply(localM, Matrix4Math.scale(scX, scY, scZ));\n\t\t\t\tconst finalModelMatrix = parent3DMatrix ? Matrix4Math.multiply(parent3DMatrix, localM) : localM;\n\t\t\t\tconst colorParsed = target?.colorTint || target?.color || lop.colorTint || lop.color ? parseColor(target?.colorTint ?? target?.color ?? lop.colorTint ?? lop.color) : void 0;\n\t\t\t\tconst colorTint = colorParsed ? [\n\t\t\t\t\tcolorParsed.r,\n\t\t\t\t\tcolorParsed.g,\n\t\t\t\t\tcolorParsed.b,\n\t\t\t\t\tcolorParsed.a\n\t\t\t\t] : [\n\t\t\t\t\t1,\n\t\t\t\t\t1,\n\t\t\t\t\t1,\n\t\t\t\t\t1\n\t\t\t\t];\n\t\t\t\tconst modelOpacity = (target?.opacity ?? lop.opacity ?? 1) * accumulatedOpacity;\n\t\t\t\tlet skinningMatrices;\n\t\t\t\tconst animProgress = target?.animationProgress ?? lop.animationProgress ?? 0;\n\t\t\t\tconst animTime = target?.animationTime ?? lop.animationTime ?? 0;\n\t\t\t\tconst animSpeed = target?.animationSpeed ?? lop.animationSpeed ?? 1;\n\t\t\t\tconst clip = (lop.animationName ? model.animations.find((a) => a.name === lop.animationName) : void 0) ?? model.animations[0];\n\t\t\t\tlet clipSec = 0;\n\t\t\t\tif (clip && clip.duration > 0) {\n\t\t\t\t\tclipSec = animProgress > 0 ? animProgress * clip.duration : animTime + (shiftedFrame ?? 0) / (fps || 30) * animSpeed;\n\t\t\t\t\tif (lop.loop ?? true) clipSec %= clip.duration;\n\t\t\t\t}\n\t\t\t\tconst sceneRoot = Matrix4Math.multiply(finalModelMatrix, model.rootTransform ?? Matrix4Math.identity());\n\t\t\t\tconst posed = model.nodes ? poseNodes(model, clip, clipSec) : void 0;\n\t\t\t\tconst skinCache = /* @__PURE__ */ new Map();\n\t\t\t\tconst placeMesh = (mesh) => {\n\t\t\t\t\tif (!posed) return { matrix: sceneRoot };\n\t\t\t\t\tif (mesh.skin !== void 0) {\n\t\t\t\t\t\tlet joints = skinCache.get(mesh.skin);\n\t\t\t\t\t\tif (!joints) {\n\t\t\t\t\t\t\tjoints = jointMatrices(model, mesh.skin, posed);\n\t\t\t\t\t\t\tskinCache.set(mesh.skin, joints);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tmatrix: sceneRoot,\n\t\t\t\t\t\t\tjoints\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\tif (mesh.node !== void 0) return { matrix: Matrix4Math.multiply(sceneRoot, posed[mesh.node]) };\n\t\t\t\t\treturn { matrix: sceneRoot };\n\t\t\t\t};\n\t\t\t\tif (!posed && clip && clip.duration > 0) {\n\t\t\t\t\tconst currentSec = clipSec;\n\t\t\t\t\tif (model.skeleton && model.skeleton.bones.length > 0) {\n\t\t\t\t\t\tconst numBones = Math.min(128, model.skeleton.bones.length);\n\t\t\t\t\t\tskinningMatrices = new Float32Array(2048);\n\t\t\t\t\t\tfor (let b = 0; b < 128; b++) {\n\t\t\t\t\t\t\tskinningMatrices[b * 16] = 1;\n\t\t\t\t\t\t\tskinningMatrices[b * 16 + 5] = 1;\n\t\t\t\t\t\t\tskinningMatrices[b * 16 + 10] = 1;\n\t\t\t\t\t\t\tskinningMatrices[b * 16 + 15] = 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor (const track of clip.tracks) {\n\t\t\t\t\t\t\tconst boneIdx = model.skeleton.boneIndicesByName[track.nodeName];\n\t\t\t\t\t\t\tif (boneIdx !== void 0 && boneIdx < numBones) {\n\t\t\t\t\t\t\t\tconst times = track.times;\n\t\t\t\t\t\t\t\tlet sampleIdx = 0;\n\t\t\t\t\t\t\t\tfor (let k = 0; k < times.length - 1; k++) if (currentSec >= times[k] && currentSec <= times[k + 1]) {\n\t\t\t\t\t\t\t\t\tsampleIdx = k;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tconst t0 = times[sampleIdx] ?? 0;\n\t\t\t\t\t\t\t\tconst t1 = times[sampleIdx + 1] ?? t0;\n\t\t\t\t\t\t\t\tconst alpha = t1 > t0 ? (currentSec - t0) / (t1 - t0) : 0;\n\t\t\t\t\t\t\t\tif (track.translations) {\n\t\t\t\t\t\t\t\t\tconst x0 = track.translations[sampleIdx * 3] ?? 0;\n\t\t\t\t\t\t\t\t\tconst y0 = track.translations[sampleIdx * 3 + 1] ?? 0;\n\t\t\t\t\t\t\t\t\tconst z0 = track.translations[sampleIdx * 3 + 2] ?? 0;\n\t\t\t\t\t\t\t\t\tconst x1 = track.translations[(sampleIdx + 1) * 3] ?? x0;\n\t\t\t\t\t\t\t\t\tconst y1 = track.translations[(sampleIdx + 1) * 3 + 1] ?? y0;\n\t\t\t\t\t\t\t\t\tconst z1 = track.translations[(sampleIdx + 1) * 3 + 2] ?? z0;\n\t\t\t\t\t\t\t\t\tconst curX = x0 + (x1 - x0) * alpha;\n\t\t\t\t\t\t\t\t\tconst curY = y0 + (y1 - y0) * alpha;\n\t\t\t\t\t\t\t\t\tconst curZ = z0 + (z1 - z0) * alpha;\n\t\t\t\t\t\t\t\t\tconst boneMat = Matrix4Math.translate(curX, curY, curZ);\n\t\t\t\t\t\t\t\t\tconst bone = model.skeleton.bones[boneIdx];\n\t\t\t\t\t\t\t\t\tconst skinMat = bone ? Matrix4Math.multiply(boneMat, bone.inverseBindMatrix) : boneMat;\n\t\t\t\t\t\t\t\t\tskinningMatrices.set(skinMat, boneIdx * 16);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tconst isBlend = (m) => m.materialName ? model.materials[m.materialName]?.alphaMode === \"blend\" : false;\n\t\t\t\tconst drawOrder = [...model.meshes].sort((a, b) => Number(isBlend(a)) - Number(isBlend(b)));\n\t\t\t\tfor (const mesh of drawOrder) {\n\t\t\t\t\tconst mat = mesh.materialName ? model.materials[mesh.materialName] : void 0;\n\t\t\t\t\tconst placed = placeMesh(mesh);\n\t\t\t\t\tconst meshSkin = placed.joints ?? skinningMatrices;\n\t\t\t\t\tlet meshColorTint;\n\t\t\t\t\tif (colorParsed) if (mat?.diffuseColor) meshColorTint = [\n\t\t\t\t\t\tmat.diffuseColor[0] * colorTint[0],\n\t\t\t\t\t\tmat.diffuseColor[1] * colorTint[1],\n\t\t\t\t\t\tmat.diffuseColor[2] * colorTint[2],\n\t\t\t\t\t\t(mat.diffuseColor[3] ?? 1) * colorTint[3]\n\t\t\t\t\t];\n\t\t\t\t\telse meshColorTint = colorTint;\n\t\t\t\t\telse if (mat?.diffuseColor) meshColorTint = mat.diffuseColor;\n\t\t\t\t\telse meshColorTint = [\n\t\t\t\t\t\t.8,\n\t\t\t\t\t\t.8,\n\t\t\t\t\t\t.85,\n\t\t\t\t\t\t1\n\t\t\t\t\t];\n\t\t\t\t\tconst audioDeformConfig = target?.audioDeform ?? lop.audioDeform;\n\t\t\t\t\tlet meshAudioDeform;\n\t\t\t\t\tif (audioDeformConfig) {\n\t\t\t\t\t\tconst currentSec = (shiftedFrame ?? 0) / (fps || 30);\n\t\t\t\t\t\tconst timeMs = currentSec * 1e3;\n\t\t\t\t\t\tlet latentBuffer = audioDeformConfig.latentBuffer;\n\t\t\t\t\t\tif (!latentBuffer && audioDeformConfig.audioBuffer) latentBuffer = audioDeformConfig.audioBuffer;\n\t\t\t\t\t\tif (!latentBuffer) {\n\t\t\t\t\t\t\tconst directAudio = audioDeformConfig.audioData;\n\t\t\t\t\t\t\tif (directAudio) {\n\t\t\t\t\t\t\t\tconst cacheKey = (lop.id ?? \"audio-mesh\") + \"-direct-audio\";\n\t\t\t\t\t\t\t\tlet trackCache = audioTrackLatentCache.get(cacheKey);\n\t\t\t\t\t\t\t\tif (!trackCache) {\n\t\t\t\t\t\t\t\t\tconst chs = Array.isArray(directAudio) ? directAudio : directAudio.channels;\n\t\t\t\t\t\t\t\t\tconst sRate = Array.isArray(directAudio) ? 48e3 : directAudio.sampleRate;\n\t\t\t\t\t\t\t\t\tconst totalF = Math.max(10, Math.ceil((chs[0]?.length ?? 0) / sRate * (fps || 30)) + 10);\n\t\t\t\t\t\t\t\t\ttrackCache = new AudioLatentTrackCache(chs, sRate, fps || 30, totalF);\n\t\t\t\t\t\t\t\t\taudioTrackLatentCache.set(cacheKey, trackCache);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tlatentBuffer = trackCache.getGpuBuffer(ctx.device, shiftedFrame ?? 0);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!latentBuffer && audioDeformConfig.audioTrackId) {\n\t\t\t\t\t\t\tconst trackId = audioDeformConfig.audioTrackId;\n\t\t\t\t\t\t\tlet foundAudioUrl;\n\t\t\t\t\t\t\tconst searchVms = (list) => {\n\t\t\t\t\t\t\t\tfor (const v of list) {\n\t\t\t\t\t\t\t\t\tconst op$1 = v.operation;\n\t\t\t\t\t\t\t\t\tif (op$1) {\n\t\t\t\t\t\t\t\t\t\tif (op$1.id === trackId || op$1.inputHandleId === trackId) {\n\t\t\t\t\t\t\t\t\t\t\tfoundAudioUrl = op$1.inputHandleId || op$1.src || op$1.url;\n\t\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tif (v.children) searchVms(v.children);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tif (virtualMedia.children) searchVms(virtualMedia.children);\n\t\t\t\t\t\t\tif (!foundAudioUrl && (trackId.endsWith(\".mp3\") || trackId.endsWith(\".wav\") || trackId.endsWith(\".ogg\"))) foundAudioUrl = trackId;\n\t\t\t\t\t\t\tif (foundAudioUrl) try {\n\t\t\t\t\t\t\t\tlet trackCache = audioTrackLatentCache.get(foundAudioUrl);\n\t\t\t\t\t\t\t\tif (!trackCache) {\n\t\t\t\t\t\t\t\t\tconst decoded = await decodeAudioSource(foundAudioUrl);\n\t\t\t\t\t\t\t\t\tif (decoded && decoded.channels.length > 0) {\n\t\t\t\t\t\t\t\t\t\tconst sRate = decoded.sampleRate || 48e3;\n\t\t\t\t\t\t\t\t\t\tconst ch0Len = decoded.channels[0]?.length ?? 0;\n\t\t\t\t\t\t\t\t\t\tconst durationSec$1 = decoded.durationSec ?? ch0Len / sRate;\n\t\t\t\t\t\t\t\t\t\tconst totalF = Math.max(10, Math.ceil(durationSec$1 * (fps || 30)) + 10);\n\t\t\t\t\t\t\t\t\t\ttrackCache = new AudioLatentTrackCache(decoded.channels, sRate, fps || 30, totalF);\n\t\t\t\t\t\t\t\t\t\taudioTrackLatentCache.set(foundAudioUrl, trackCache);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (trackCache) latentBuffer = trackCache.getGpuBuffer(ctx.device, shiftedFrame ?? 0);\n\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\tconsole.warn(\"[webgpu-renderer] Failed to decode audio for deformWithAudio:\", err);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (latentBuffer) {\n\t\t\t\t\t\t\tlet amplitudeMultiplier = audioDeformConfig.amplitudeMultiplier ?? 1;\n\t\t\t\t\t\t\tif (typeof amplitudeMultiplier !== \"number\" && typeof amplitudeMultiplier?.get === \"function\") {\n\t\t\t\t\t\t\t\tconst frameCtx = {\n\t\t\t\t\t\t\t\t\tframe: shiftedFrame ?? 0,\n\t\t\t\t\t\t\t\t\tfps: fps || 30,\n\t\t\t\t\t\t\t\t\ttime: currentSec,\n\t\t\t\t\t\t\t\t\tduration: 0,\n\t\t\t\t\t\t\t\t\tdurationMs: 0,\n\t\t\t\t\t\t\t\t\tprogress: 0,\n\t\t\t\t\t\t\t\t\tdeltaTime: 1 / (fps || 30)\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\tamplitudeMultiplier = Number(amplitudeMultiplier.get(frameCtx));\n\t\t\t\t\t\t\t} else if (typeof amplitudeMultiplier !== \"number\" && typeof amplitudeMultiplier?.value === \"number\") amplitudeMultiplier = amplitudeMultiplier.value;\n\t\t\t\t\t\t\tmeshAudioDeform = {\n\t\t\t\t\t\t\t\tconfig: {\n\t\t\t\t\t\t\t\t\t...audioDeformConfig,\n\t\t\t\t\t\t\t\t\tamplitudeMultiplier: Number.isFinite(amplitudeMultiplier) ? amplitudeMultiplier : 1\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tlatentBuffer,\n\t\t\t\t\t\t\t\ttimeMs,\n\t\t\t\t\t\t\t\tsampleRate: 48e3\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tconst meshOpts = {\n\t\t\t\t\t\tmodelMatrix: placed.matrix,\n\t\t\t\t\t\topacity: modelOpacity * (mat?.opacity ?? 1),\n\t\t\t\t\t\tcolorTint: meshColorTint,\n\t\t\t\t\t\ttwoSided: target?.twoSided ?? lop.twoSided ?? mat?.twoSided ?? true,\n\t\t\t\t\t\twireframe: Boolean(target?.wireframe ?? lop.wireframe),\n\t\t\t\t\t\tisSkinned: Boolean(meshSkin || mesh.jointIndices && mesh.jointWeights),\n\t\t\t\t\t\tskinningMatrices: meshSkin,\n\t\t\t\t\t\tmaterial: target?.material ?? lop.material ?? mat?.shading ?? \"lit\",\n\t\t\t\t\t\tshadeColor: mat?.shadeColor,\n\t\t\t\t\t\talphaCutoff: mat?.alphaCutoff,\n\t\t\t\t\t\ttextureWrap: mat?.textureWrap,\n\t\t\t\t\t\ttextureFilter: mat?.textureFilter,\n\t\t\t\t\t\tshininess: target?.shininess ?? lop.shininess ?? mat?.shininess ?? 32,\n\t\t\t\t\t\troughness: target?.roughness ?? lop.roughness ?? mat?.roughness,\n\t\t\t\t\t\tspecularIntensity: target?.specularIntensity ?? lop.specularIntensity ?? .5,\n\t\t\t\t\t\tambientIntensity: target?.ambientIntensity ?? lop.ambientIntensity ?? 1,\n\t\t\t\t\t\tmetallic: target?.metallic ?? lop.metallic ?? mat?.metallic,\n\t\t\t\t\t\t...surfaceProps(target, lop, mat),\n\t\t\t\t\t\tior: target?.ior ?? lop.ior,\n\t\t\t\t\t\tdispersion: target?.dispersion ?? lop.dispersion,\n\t\t\t\t\t\tthickness: target?.thickness ?? lop.thickness,\n\t\t\t\t\t\taudioDeform: meshAudioDeform\n\t\t\t\t\t};\n\t\t\t\t\tif (mat) meshOpts.maps = await r3d.materialMaps(mat);\n\t\t\t\t\tpending3DItems.push({\n\t\t\t\t\t\tkind: \"mesh\",\n\t\t\t\t\t\tmesh,\n\t\t\t\t\t\ttexture: mat ? await r3d.materialTexture(mat) : void 0,\n\t\t\t\t\t\topts: meshOpts\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tfinalTex: destTex,\n\t\t\t\t\tfinalView: destView\n\t\t\t\t};\n\t\t\t}\n\t\t\tconst rect = rects[lop.id];\n\t\t\tif (!rect) {\n\t\t\t\tif (isContainer) return await renderNodeTree(nodeVM.children ?? [], destTex, destView, excludes, accumulatedOpacity, parentMatrix, parentRect, targetW, targetH, parent3DMatrix, isRootScene);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst baseX = lop.x ?? 0;\n\t\t\tconst baseY = lop.y ?? 0;\n\t\t\tconst sampledX = target?.x ?? baseX;\n\t\t\tconst sampledY = target?.y ?? baseY;\n\t\t\tlet localX = 0;\n\t\t\tlet localY = 0;\n\t\t\tif (parentRect) {\n\t\t\t\tconst localLayoutX = rect.x - parentRect.x;\n\t\t\t\tconst localLayoutY = rect.y - parentRect.y;\n\t\t\t\tlocalX = localLayoutX + (sampledX - baseX);\n\t\t\t\tlocalY = localLayoutY + (sampledY - baseY);\n\t\t\t} else {\n\t\t\t\tlocalX = rect.x + (sampledX - baseX);\n\t\t\t\tlocalY = rect.y + (sampledY - baseY);\n\t\t\t}\n\t\t\tconst scale$1 = target?.scale ?? lop.scale ?? 1;\n\t\t\tconst rotation = target?.rotation ?? lop.rotation ?? 0;\n\t\t\tconst layerOpacity = (target?.opacity ?? lop.opacity ?? 1) * accumulatedOpacity;\n\t\t\tconst rawAnimators = target?.animators ?? lop.animators;\n\t\t\tconst isPathText = kind === \"text\" && Boolean(lop.pathOptions || target?.pathOptions);\n\t\t\tconst hasKineticAnimators = kind === \"text\" && Array.isArray(rawAnimators) && rawAnimators.length > 0;\n\t\t\tconst hasFormation = kind === \"text\" && Array.isArray(rawAnimators) && rawAnimators.some((a) => {\n\t\t\t\tconst anim = a;\n\t\t\t\treturn anim?.props?.formation !== void 0 || anim?.formation !== void 0;\n\t\t\t});\n\t\t\tlet padX = 0;\n\t\t\tlet padY = 0;\n\t\t\tif (hasFormation) {\n\t\t\t\tlet formationRadius = 0;\n\t\t\t\tlet formationPitch = 0;\n\t\t\t\tfor (const a of rawAnimators) {\n\t\t\t\t\tconst anim = a;\n\t\t\t\t\tconst f = anim?.props?.formation ?? anim?.formation;\n\t\t\t\t\tif (f) {\n\t\t\t\t\t\tif (typeof f.radius === \"number\") formationRadius = Math.max(formationRadius, f.radius);\n\t\t\t\t\t\tif (typeof f.pitch === \"number\") formationPitch = Math.max(formationPitch, f.pitch);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tpadX = Math.max(160, Math.ceil(formationRadius + 100));\n\t\t\t\tpadY = Math.max(100, Math.ceil(formationRadius + formationPitch * 15 + 100));\n\t\t\t} else if (!isPathText && hasKineticAnimators) {\n\t\t\t\tpadX = Math.max(80, Math.ceil(rect.width * .2));\n\t\t\t\tpadY = Math.max(50, Math.ceil(rect.height * .5));\n\t\t\t}\n\t\t\tconst layerW = isPathText ? targetW : rect.width + padX * 2;\n\t\t\tconst layerH = isPathText ? targetH : rect.height + padY * 2;\n\t\t\tif (!isPathText && hasKineticAnimators) {\n\t\t\t\tlocalX -= padX;\n\t\t\t\tlocalY -= padY;\n\t\t\t}\n\t\t\tconst anchorX = lop.anchorX ?? .5;\n\t\t\tconst anchorY = lop.anchorY ?? .5;\n\t\t\tconst localMatrix = toDOMMatrix(buildLayerMatrix({\n\t\t\t\tx: localX,\n\t\t\t\ty: localY,\n\t\t\t\twidth: layerW,\n\t\t\t\theight: layerH,\n\t\t\t\trotation,\n\t\t\t\tscale: scale$1,\n\t\t\t\tanchorX: isPathText ? anchorX * rect.width / layerW : anchorX,\n\t\t\t\tanchorY: isPathText ? anchorY * rect.height / layerH : anchorY\n\t\t\t}));\n\t\t\tconst layerMatrix = parentMatrix.multiply(localMatrix);\n\t\t\tconst blendMode = lop.blendMode || \"normal\";\n\t\t\tlet activeTex = destTex;\n\t\t\tlet activeView = destView;\n\t\t\tconst is3D = has3DTransform(target, lop);\n\t\t\tconst rotateX = target?.rotateX ?? lop.rotateX ?? 0;\n\t\t\tconst rotateY = target?.rotateY ?? lop.rotateY ?? 0;\n\t\t\tconst rotateZ = target?.rotateZ ?? lop.rotateZ ?? 0;\n\t\t\tconst translateZ = target?.translateZ ?? lop.translateZ ?? 0;\n\t\t\tconst perspective = target?.perspective ?? lop.perspective ?? 0;\n\t\t\tconst perspectiveOriginX = target?.perspectiveOriginX ?? lop.perspectiveOriginX ?? lop.anchorX ?? .5;\n\t\t\tconst perspectiveOriginY = target?.perspectiveOriginY ?? lop.perspectiveOriginY ?? lop.anchorY ?? .5;\n\t\t\tconst backfaceVisibility = target?.backfaceVisibility ?? lop.backfaceVisibility ?? \"visible\";\n\t\t\tlet quad3D = null;\n\t\t\tif (is3D) {\n\t\t\t\tconst m3d = Transform3DMath.buildLayer3DMatrix({\n\t\t\t\t\tx: localX,\n\t\t\t\t\ty: localY,\n\t\t\t\t\twidth: layerW,\n\t\t\t\t\theight: layerH,\n\t\t\t\t\trotateXDeg: rotateX,\n\t\t\t\t\trotateYDeg: rotateY,\n\t\t\t\t\trotateZDeg: rotateZ !== 0 ? rotateZ : rotation,\n\t\t\t\t\tscaleX: scale$1,\n\t\t\t\t\tscaleY: scale$1,\n\t\t\t\t\tperspectivePx: perspective,\n\t\t\t\t\toriginXRatio: perspectiveOriginX,\n\t\t\t\t\toriginYRatio: perspectiveOriginY,\n\t\t\t\t\ttranslateZPx: translateZ\n\t\t\t\t});\n\t\t\t\tlet q = Transform3DMath.projectRectangleCorners(m3d, layerW, layerH);\n\t\t\t\tif (!parentMatrix.isIdentity) q = {\n\t\t\t\t\ttopLeft: parentMatrix.transformPoint(new DOMPoint(q.topLeft.x, q.topLeft.y)),\n\t\t\t\t\ttopRight: parentMatrix.transformPoint(new DOMPoint(q.topRight.x, q.topRight.y)),\n\t\t\t\t\tbottomLeft: parentMatrix.transformPoint(new DOMPoint(q.bottomLeft.x, q.bottomLeft.y)),\n\t\t\t\t\tbottomRight: parentMatrix.transformPoint(new DOMPoint(q.bottomRight.x, q.bottomRight.y))\n\t\t\t\t};\n\t\t\t\tif (backfaceVisibility === \"hidden\" && Transform3DMath.computeSignedArea(q) < 0) return;\n\t\t\t\tquad3D = q;\n\t\t\t}\n\t\t\tconst isTrue3D = Boolean(target?.is3D ?? lop.is3D) || Boolean(camera && ((target?.z ?? lop.z ?? 0) !== 0 || lop.is3D));\n\t\t\tif (isContainer) {\n\t\t\t\tif (lop.transformStyle === \"preserve-3d\" && isTrue3D) {\n\t\t\t\t\tlet current3DMatrix = Matrix4Math.identity();\n\t\t\t\t\tconst containerX = parent3DMatrix !== null ? target?.x ?? lop.x ?? 0 : target?.x ?? lop.x ?? localX + layerW * .5;\n\t\t\t\t\tconst containerY = parent3DMatrix !== null ? target?.y ?? lop.y ?? 0 : target?.y ?? lop.y ?? localY + layerH * .5;\n\t\t\t\t\tconst containerZ = target?.z ?? lop.z ?? 0;\n\t\t\t\t\tcurrent3DMatrix = Matrix4Math.multiply(current3DMatrix, Matrix4Math.translate(containerX, containerY, containerZ));\n\t\t\t\t\tconst rxRad = (target?.rotateX ?? lop.rotateX ?? 0) * Math.PI / 180;\n\t\t\t\t\tconst ryRad = (target?.rotateY ?? lop.rotateY ?? 0) * Math.PI / 180;\n\t\t\t\t\tconst rzRad = ((target?.rotateZ ?? lop.rotateZ ?? 0) !== 0 ? target?.rotateZ ?? lop.rotateZ ?? 0 : rotation) * (Math.PI / 180);\n\t\t\t\t\tif (rzRad !== 0) current3DMatrix = Matrix4Math.multiply(current3DMatrix, Matrix4Math.rotateZ(rzRad));\n\t\t\t\t\tif (ryRad !== 0) current3DMatrix = Matrix4Math.multiply(current3DMatrix, Matrix4Math.rotateY(ryRad));\n\t\t\t\t\tif (rxRad !== 0) current3DMatrix = Matrix4Math.multiply(current3DMatrix, Matrix4Math.rotateX(rxRad));\n\t\t\t\t\tconst csX = (target?.scaleX ?? lop.scaleX ?? 1) * scale$1;\n\t\t\t\t\tconst csY = (target?.scaleY ?? lop.scaleY ?? 1) * scale$1;\n\t\t\t\t\tconst csZ = (target?.scaleZ ?? lop.scaleZ ?? 1) * scale$1;\n\t\t\t\t\tif (csX !== 1 || csY !== 1 || csZ !== 1) current3DMatrix = Matrix4Math.multiply(current3DMatrix, Matrix4Math.scale(csX, csY, csZ));\n\t\t\t\t\tif (parent3DMatrix) current3DMatrix = Matrix4Math.multiply(parent3DMatrix, current3DMatrix);\n\t\t\t\t\tif (nodeVM.children && nodeVM.children.length > 0) {\n\t\t\t\t\t\tconst res = await renderNodeTree(nodeVM.children, activeTex, activeView, excludes, layerOpacity, new DOMMatrix(), null, layerW, layerH, current3DMatrix, false);\n\t\t\t\t\t\tactiveTex = res.finalTex;\n\t\t\t\t\t\tactiveView = res.finalView;\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\tfinalTex: activeTex,\n\t\t\t\t\t\tfinalView: activeView\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tif (isTrue3D) {\n\t\t\t\t\tconst texW$1 = Math.max(1, Math.ceil(layerW));\n\t\t\t\t\tconst texH$1 = Math.max(1, Math.ceil(layerH));\n\t\t\t\t\tconst groupExcludes$1 = [\n\t\t\t\t\t\tactiveTex,\n\t\t\t\t\t\ttargetTexture,\n\t\t\t\t\t\t...excludes,\n\t\t\t\t\t\t...pendingTextures()\n\t\t\t\t\t];\n\t\t\t\t\tconst groupTex$1 = ctx.renderer.getTemporaryTexture(texW$1, texH$1, groupExcludes$1);\n\t\t\t\t\tconst groupView$1 = groupTex$1.createView();\n\t\t\t\t\tctx.renderer.beginFrame(encoder, groupView$1, {\n\t\t\t\t\t\tr: 0,\n\t\t\t\t\t\tg: 0,\n\t\t\t\t\t\tb: 0,\n\t\t\t\t\t\ta: 0\n\t\t\t\t\t}, texW$1, texH$1, \"clear\").end();\n\t\t\t\t\tconst br$2 = Math.min(lop.borderRadius ?? lop.strokeRadius ?? 0, layerW / 2, layerH / 2);\n\t\t\t\t\tif (shouldPaintContainerBackground(kind, lop.background)) {\n\t\t\t\t\t\tconst bgPass = ctx.renderer.beginFrame(encoder, groupView$1, {\n\t\t\t\t\t\t\tr: 0,\n\t\t\t\t\t\t\tg: 0,\n\t\t\t\t\t\t\tb: 0,\n\t\t\t\t\t\t\ta: 0\n\t\t\t\t\t\t}, texW$1, texH$1, \"load\");\n\t\t\t\t\t\tctx.renderer.drawRect(bgPass, {\n\t\t\t\t\t\t\tx: 0,\n\t\t\t\t\t\t\ty: 0,\n\t\t\t\t\t\t\twidth: layerW,\n\t\t\t\t\t\t\theight: layerH\n\t\t\t\t\t\t}, lop.background, 0, { opacity: 1 });\n\t\t\t\t\t\tbgPass.end();\n\t\t\t\t\t}\n\t\t\t\t\tlet activeGroupTex$1 = groupTex$1;\n\t\t\t\t\tlet activeGroupView$1 = groupView$1;\n\t\t\t\t\tif (nodeVM.children && nodeVM.children.length > 0) {\n\t\t\t\t\t\tconst res = await renderNodeTree(nodeVM.children, groupTex$1, groupView$1, [groupTex$1, ...groupExcludes$1], 1, new DOMMatrix(), rect, texW$1, texH$1, null, false);\n\t\t\t\t\t\tactiveGroupTex$1 = res.finalTex;\n\t\t\t\t\t\tactiveGroupView$1 = res.finalView;\n\t\t\t\t\t}\n\t\t\t\t\tconst borderResult$2 = !isTrue3D && lop.borderWidth !== void 0 && lop.borderColor ? createBorderTexture(ctx, encoder, layerW, layerH, br$2, lop.borderWidth, lop.borderColor, lop.strokeAlign ?? \"inside\", [activeGroupTex$1, ...groupExcludes$1]) : null;\n\t\t\t\t\tif (borderResult$2) {\n\t\t\t\t\t\tconst borderPass = ctx.renderer.beginFrame(encoder, activeGroupView$1, {\n\t\t\t\t\t\t\tr: 0,\n\t\t\t\t\t\t\tg: 0,\n\t\t\t\t\t\t\tb: 0,\n\t\t\t\t\t\t\ta: 0\n\t\t\t\t\t\t}, texW$1, texH$1, \"load\");\n\t\t\t\t\t\tctx.renderer.drawTexture(borderPass, borderResult$2.borderTex, {\n\t\t\t\t\t\t\tx: borderResult$2.ox,\n\t\t\t\t\t\t\ty: borderResult$2.oy,\n\t\t\t\t\t\t\twidth: borderResult$2.ow,\n\t\t\t\t\t\t\theight: borderResult$2.oh\n\t\t\t\t\t\t}, { opacity: 1 });\n\t\t\t\t\t\tborderPass.end();\n\t\t\t\t\t}\n\t\t\t\t\tlet modelMatrix;\n\t\t\t\t\tif (parent3DMatrix) {\n\t\t\t\t\t\tlet localM = Matrix4Math.identity();\n\t\t\t\t\t\tconst childX = target?.x ?? lop.x ?? 0;\n\t\t\t\t\t\tconst childY = target?.y ?? lop.y ?? 0;\n\t\t\t\t\t\tconst childZ = target?.z ?? lop.z ?? 0;\n\t\t\t\t\t\tlocalM = Matrix4Math.multiply(localM, Matrix4Math.translate(childX, childY, childZ));\n\t\t\t\t\t\tconst rxRad = (target?.rotateX ?? lop.rotateX ?? 0) * Math.PI / 180;\n\t\t\t\t\t\tconst ryRad = (target?.rotateY ?? lop.rotateY ?? 0) * Math.PI / 180;\n\t\t\t\t\t\tconst rzRad = ((target?.rotateZ ?? lop.rotateZ ?? 0) !== 0 ? target?.rotateZ ?? lop.rotateZ ?? 0 : rotation) * (Math.PI / 180);\n\t\t\t\t\t\tif (rzRad !== 0) localM = Matrix4Math.multiply(localM, Matrix4Math.rotateZ(rzRad));\n\t\t\t\t\t\tif (ryRad !== 0) localM = Matrix4Math.multiply(localM, Matrix4Math.rotateY(ryRad));\n\t\t\t\t\t\tif (rxRad !== 0) localM = Matrix4Math.multiply(localM, Matrix4Math.rotateX(rxRad));\n\t\t\t\t\t\tconst sx = layerW * scale$1;\n\t\t\t\t\t\tconst sy = layerH * scale$1;\n\t\t\t\t\t\tconst sz = target?.scaleZ ?? lop.scaleZ ?? 1;\n\t\t\t\t\t\tlocalM = Matrix4Math.multiply(localM, Matrix4Math.scale(sx, sy, sz));\n\t\t\t\t\t\tconst ax = lop.anchorX ?? .5;\n\t\t\t\t\t\tconst ay = lop.anchorY ?? .5;\n\t\t\t\t\t\tconst pivotX = .5 - ax;\n\t\t\t\t\t\tconst pivotY = .5 - ay;\n\t\t\t\t\t\tif (pivotX !== 0 || pivotY !== 0) localM = Matrix4Math.multiply(localM, Matrix4Math.translate(pivotX, pivotY, 0));\n\t\t\t\t\t\tmodelMatrix = Matrix4Math.multiply(parent3DMatrix, localM);\n\t\t\t\t\t}\n\t\t\t\t\tconst quadOpts = {\n\t\t\t\t\t\tposition: [\n\t\t\t\t\t\t\tlocalX + layerW * .5,\n\t\t\t\t\t\t\tlocalY + layerH * .5,\n\t\t\t\t\t\t\ttarget?.z ?? lop.z ?? 0\n\t\t\t\t\t\t],\n\t\t\t\t\t\twidth: layerW,\n\t\t\t\t\t\theight: layerH,\n\t\t\t\t\t\ttextureExtent: [layerW / activeGroupTex$1.width, layerH / activeGroupTex$1.height],\n\t\t\t\t\t\trotation: [\n\t\t\t\t\t\t\ttarget?.rotateX ?? lop.rotateX ?? 0,\n\t\t\t\t\t\t\ttarget?.rotateY ?? lop.rotateY ?? 0,\n\t\t\t\t\t\t\t(target?.rotateZ ?? lop.rotateZ ?? 0) !== 0 ? target?.rotateZ ?? lop.rotateZ ?? 0 : rotation\n\t\t\t\t\t\t],\n\t\t\t\t\t\tscale: [\n\t\t\t\t\t\t\tscale$1,\n\t\t\t\t\t\t\tscale$1,\n\t\t\t\t\t\t\ttarget?.scaleZ ?? lop.scaleZ ?? 1\n\t\t\t\t\t\t],\n\t\t\t\t\t\tanchor: [lop.anchorX ?? .5, lop.anchorY ?? .5],\n\t\t\t\t\t\tborderRadius: br$2,\n\t\t\t\t\t\tborderWidth: lop.borderWidth,\n\t\t\t\t\t\tborderColor: lop.borderColor,\n\t\t\t\t\t\topacity: layerOpacity,\n\t\t\t\t\t\ttwoSided: target?.twoSided ?? lop.twoSided ?? true,\n\t\t\t\t\t\tmaterial: target?.material ?? lop.material,\n\t\t\t\t\t\tshininess: target?.shininess ?? lop.shininess,\n\t\t\t\t\t\troughness: target?.roughness ?? lop.roughness,\n\t\t\t\t\t\tspecularIntensity: target?.specularIntensity ?? lop.specularIntensity,\n\t\t\t\t\t\tambientIntensity: target?.ambientIntensity ?? lop.ambientIntensity,\n\t\t\t\t\t\tmetallic: target?.metallic ?? lop.metallic,\n\t\t\t\t\t\t...surfaceProps(target, lop),\n\t\t\t\t\t\t...modelMatrix && { modelMatrix }\n\t\t\t\t\t};\n\t\t\t\t\tpending3DItems.push({\n\t\t\t\t\t\tkind: \"quad\",\n\t\t\t\t\t\ttexture: activeGroupTex$1,\n\t\t\t\t\t\topts: quadOpts\n\t\t\t\t\t});\n\t\t\t\t\treturn {\n\t\t\t\t\t\tfinalTex: activeTex,\n\t\t\t\t\t\tfinalView: activeView\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tif (is3D && quad3D) {\n\t\t\t\t\tconst texW$1 = Math.max(1, Math.ceil(layerW));\n\t\t\t\t\tconst texH$1 = Math.max(1, Math.ceil(layerH));\n\t\t\t\t\tconst groupExcludes$1 = [\n\t\t\t\t\t\tactiveTex,\n\t\t\t\t\t\ttargetTexture,\n\t\t\t\t\t\t...excludes\n\t\t\t\t\t];\n\t\t\t\t\tconst groupTex$1 = ctx.renderer.getTemporaryTexture(texW$1, texH$1, groupExcludes$1);\n\t\t\t\t\tconst groupView$1 = groupTex$1.createView();\n\t\t\t\t\tctx.renderer.beginFrame(encoder, groupView$1, {\n\t\t\t\t\t\tr: 0,\n\t\t\t\t\t\tg: 0,\n\t\t\t\t\t\tb: 0,\n\t\t\t\t\t\ta: 0\n\t\t\t\t\t}, texW$1, texH$1, \"clear\").end();\n\t\t\t\t\tconst br$2 = Math.min(lop.borderRadius ?? lop.strokeRadius ?? 0, layerW / 2, layerH / 2);\n\t\t\t\t\tif (shouldPaintContainerBackground(kind, lop.background)) {\n\t\t\t\t\t\tconst bgPass = ctx.renderer.beginFrame(encoder, groupView$1, {\n\t\t\t\t\t\t\tr: 0,\n\t\t\t\t\t\t\tg: 0,\n\t\t\t\t\t\t\tb: 0,\n\t\t\t\t\t\t\ta: 0\n\t\t\t\t\t\t}, texW$1, texH$1, \"load\");\n\t\t\t\t\t\tctx.renderer.drawRect(bgPass, {\n\t\t\t\t\t\t\tx: 0,\n\t\t\t\t\t\t\ty: 0,\n\t\t\t\t\t\t\twidth: layerW,\n\t\t\t\t\t\t\theight: layerH\n\t\t\t\t\t\t}, lop.background, br$2, { opacity: 1 });\n\t\t\t\t\t\tbgPass.end();\n\t\t\t\t\t}\n\t\t\t\t\tlet activeGroupTex$1 = groupTex$1;\n\t\t\t\t\tlet activeGroupView$1 = groupView$1;\n\t\t\t\t\tif (nodeVM.children && nodeVM.children.length > 0) {\n\t\t\t\t\t\tconst res = await renderNodeTree(nodeVM.children, groupTex$1, groupView$1, [groupTex$1, ...groupExcludes$1], 1, new DOMMatrix(), rect, texW$1, texH$1, null, false);\n\t\t\t\t\t\tactiveGroupTex$1 = res.finalTex;\n\t\t\t\t\t\tactiveGroupView$1 = res.finalView;\n\t\t\t\t\t}\n\t\t\t\t\tconst borderResult$2 = lop.borderWidth !== void 0 && lop.borderColor ? createBorderTexture(ctx, encoder, layerW, layerH, br$2, lop.borderWidth, lop.borderColor, lop.strokeAlign ?? \"inside\", [activeGroupTex$1, ...groupExcludes$1]) : null;\n\t\t\t\t\tif (borderResult$2) {\n\t\t\t\t\t\tconst borderPass = ctx.renderer.beginFrame(encoder, activeGroupView$1, {\n\t\t\t\t\t\t\tr: 0,\n\t\t\t\t\t\t\tg: 0,\n\t\t\t\t\t\t\tb: 0,\n\t\t\t\t\t\t\ta: 0\n\t\t\t\t\t\t}, texW$1, texH$1, \"load\");\n\t\t\t\t\t\tctx.renderer.drawTexture(borderPass, borderResult$2.borderTex, {\n\t\t\t\t\t\t\tx: borderResult$2.ox,\n\t\t\t\t\t\t\ty: borderResult$2.oy,\n\t\t\t\t\t\t\twidth: borderResult$2.ow,\n\t\t\t\t\t\t\theight: borderResult$2.oh\n\t\t\t\t\t\t}, { opacity: 1 });\n\t\t\t\t\t\tborderPass.end();\n\t\t\t\t\t}\n\t\t\t\t\tconst container3DShutter = target?.motionBlurShutter ?? lop.motionBlurShutter ?? 0;\n\t\t\t\t\tif (container3DShutter > 0 && fps && shiftedFrame !== void 0) {\n\t\t\t\t\t\tseekTimeline(compiled, shiftedFrame - 1, fps);\n\t\t\t\t\t\tconst prevTarget = targetId ? targetsById[targetId] : void 0;\n\t\t\t\t\t\tconst prevX = prevTarget?.x ?? baseX;\n\t\t\t\t\t\tconst prevY = prevTarget?.y ?? baseY;\n\t\t\t\t\t\tseekTimeline(compiled, shiftedFrame, fps);\n\t\t\t\t\t\tconst vx = sampledX - prevX;\n\t\t\t\t\t\tconst vy = sampledY - prevY;\n\t\t\t\t\t\tif (Math.hypot(vx, vy) > .5) {\n\t\t\t\t\t\t\tactiveGroupTex$1 = ctx.renderer.applyMotionBlur(encoder, activeGroupTex$1, vx, vy, container3DShutter, 16, [\n\t\t\t\t\t\t\t\tactiveTex,\n\t\t\t\t\t\t\t\ttargetTexture,\n\t\t\t\t\t\t\t\t...excludes\n\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\tactiveGroupView$1 = activeGroupTex$1.createView();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (blendMode === \"normal\" || blendMode === \"source-over\") drawProjectedQuad(ctx, encoder, activeView, activeGroupTex$1, quad3D, targetW, targetH, layerOpacity);\n\t\t\t\t\telse {\n\t\t\t\t\t\tconst compositeExcludes$1 = [\n\t\t\t\t\t\t\tactiveTex,\n\t\t\t\t\t\t\ttargetTexture,\n\t\t\t\t\t\t\tactiveGroupTex$1,\n\t\t\t\t\t\t\t...excludes\n\t\t\t\t\t\t];\n\t\t\t\t\t\tif (borderResult$2) compositeExcludes$1.push(borderResult$2.borderTex);\n\t\t\t\t\t\tconst layerTex = ctx.renderer.getTemporaryTexture(targetW, targetH, compositeExcludes$1);\n\t\t\t\t\t\tconst layerView = layerTex.createView();\n\t\t\t\t\t\tctx.renderer.beginFrame(encoder, layerView, {\n\t\t\t\t\t\t\tr: 0,\n\t\t\t\t\t\t\tg: 0,\n\t\t\t\t\t\t\tb: 0,\n\t\t\t\t\t\t\ta: 0\n\t\t\t\t\t\t}, targetW, targetH, \"clear\").end();\n\t\t\t\t\t\tdrawProjectedQuad(ctx, encoder, layerView, activeGroupTex$1, quad3D, targetW, targetH, layerOpacity);\n\t\t\t\t\t\tactiveTex = ctx.renderer.composite(encoder, activeTex, layerTex, blendMode, [targetTexture, ...excludes]);\n\t\t\t\t\t\tactiveView = activeTex.createView();\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\tfinalTex: activeTex,\n\t\t\t\t\t\tfinalView: activeView\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tconst shouldClip = lop.overflow !== \"visible\";\n\t\t\t\tconst scissorRect = shouldClip ? computeContainerScissor(layerMatrix, layerW, layerH) : null;\n\t\t\t\tconst clipRadius = shouldClip ? Math.min(target?.borderRadius ?? lop.borderRadius ?? 0, layerW / 2, layerH / 2) : 0;\n\t\t\t\tif ((kind === \"flex\" || kind === \"block\") && clipRadius <= 0 && !shouldPaintContainerBackground(kind, lop.background) && layerOpacity === 1 && blendMode === \"normal\" && !lop.borderWidth && !lop.borderColor && (typeof lop.relighting !== \"object\" || !lop.relighting) && (typeof lop.relight !== \"object\" || !lop.relight) && (typeof target?.relighting !== \"object\" || !target?.relighting) && (typeof target?.relight !== \"object\" || !target?.relight) && (typeof lop.deflicker !== \"object\" || !lop.deflicker) && (typeof target?.deflicker !== \"object\" || !target?.deflicker)) {\n\t\t\t\t\tif (scissorRect) ctx.renderer.pushScissor(scissorRect);\n\t\t\t\t\tconst res = await renderNodeTree(nodeVM.children ?? [], activeTex, activeView, excludes, accumulatedOpacity, layerMatrix, rect, targetW, targetH, null, isRootScene);\n\t\t\t\t\tif (scissorRect) ctx.renderer.popScissor();\n\t\t\t\t\treturn res;\n\t\t\t\t}\n\t\t\t\tconst groupExcludes = [\n\t\t\t\t\tactiveTex,\n\t\t\t\t\ttargetTexture,\n\t\t\t\t\t...excludes\n\t\t\t\t];\n\t\t\t\tconst groupTex = ctx.renderer.getTemporaryTexture(targetW, targetH, groupExcludes);\n\t\t\t\tconst groupView = groupTex.createView();\n\t\t\t\tctx.renderer.beginFrame(encoder, groupView, {\n\t\t\t\t\tr: 0,\n\t\t\t\t\tg: 0,\n\t\t\t\t\tb: 0,\n\t\t\t\t\ta: 0\n\t\t\t\t}, targetW, targetH, \"clear\").end();\n\t\t\t\tconst br$1 = Math.min(target?.borderRadius ?? lop.borderRadius ?? lop.strokeRadius ?? 0, layerW / 2, layerH / 2);\n\t\t\t\tif (shouldPaintContainerBackground(kind, lop.background)) {\n\t\t\t\t\tconst bgPass = ctx.renderer.beginFrame(encoder, groupView, {\n\t\t\t\t\t\tr: 0,\n\t\t\t\t\t\tg: 0,\n\t\t\t\t\t\tb: 0,\n\t\t\t\t\t\ta: 0\n\t\t\t\t\t}, targetW, targetH, \"load\");\n\t\t\t\t\tctx.renderer.pushTransform(layerMatrix);\n\t\t\t\t\tctx.renderer.drawRect(bgPass, {\n\t\t\t\t\t\tx: 0,\n\t\t\t\t\t\ty: 0,\n\t\t\t\t\t\twidth: layerW,\n\t\t\t\t\t\theight: layerH\n\t\t\t\t\t}, lop.background, br$1, { opacity: layerOpacity });\n\t\t\t\t\tctx.renderer.popTransform();\n\t\t\t\t\tbgPass.end();\n\t\t\t\t}\n\t\t\t\tlet activeGroupTex = groupTex;\n\t\t\t\tlet activeGroupView = groupView;\n\t\t\t\tif (nodeVM.children && nodeVM.children.length > 0) {\n\t\t\t\t\tif (scissorRect) ctx.renderer.pushScissor(scissorRect);\n\t\t\t\t\tconst res = await renderNodeTree(nodeVM.children, groupTex, groupView, [groupTex, ...groupExcludes], layerOpacity, layerMatrix, rect, targetW, targetH, null, false);\n\t\t\t\t\tif (scissorRect) ctx.renderer.popScissor();\n\t\t\t\t\tactiveGroupTex = res.finalTex;\n\t\t\t\t\tactiveGroupView = res.finalView;\n\t\t\t\t}\n\t\t\t\tif (clipRadius > 0) {\n\t\t\t\t\tconst maskTex = ctx.renderer.getTemporaryTexture(targetW, targetH, [activeGroupTex, ...groupExcludes]);\n\t\t\t\t\tconst maskPass = ctx.renderer.beginFrame(encoder, maskTex.createView(), {\n\t\t\t\t\t\tr: 0,\n\t\t\t\t\t\tg: 0,\n\t\t\t\t\t\tb: 0,\n\t\t\t\t\t\ta: 0\n\t\t\t\t\t}, targetW, targetH, \"clear\");\n\t\t\t\t\tctx.renderer.pushTransform(layerMatrix);\n\t\t\t\t\tctx.renderer.drawRect(maskPass, {\n\t\t\t\t\t\tx: 0,\n\t\t\t\t\t\ty: 0,\n\t\t\t\t\t\twidth: layerW,\n\t\t\t\t\t\theight: layerH\n\t\t\t\t\t}, \"#ffffff\", clipRadius);\n\t\t\t\t\tctx.renderer.popTransform();\n\t\t\t\t\tmaskPass.end();\n\t\t\t\t\tactiveGroupTex = ctx.renderer.composite(encoder, activeGroupTex, maskTex, \"mask-in\", [\n\t\t\t\t\t\tactiveGroupTex,\n\t\t\t\t\t\tmaskTex,\n\t\t\t\t\t\t...groupExcludes\n\t\t\t\t\t]);\n\t\t\t\t\tactiveGroupView = activeGroupTex.createView();\n\t\t\t\t}\n\t\t\t\tconst borderResult$1 = lop.borderWidth !== void 0 && lop.borderColor ? createBorderTexture(ctx, encoder, layerW, layerH, br$1, lop.borderWidth, lop.borderColor, lop.strokeAlign ?? \"inside\", [activeGroupTex, ...groupExcludes]) : null;\n\t\t\t\tif (borderResult$1) {\n\t\t\t\t\tconst borderPass = ctx.renderer.beginFrame(encoder, activeGroupView, {\n\t\t\t\t\t\tr: 0,\n\t\t\t\t\t\tg: 0,\n\t\t\t\t\t\tb: 0,\n\t\t\t\t\t\ta: 0\n\t\t\t\t\t}, targetW, targetH, \"load\");\n\t\t\t\t\tctx.renderer.pushTransform(layerMatrix);\n\t\t\t\t\tctx.renderer.drawTexture(borderPass, borderResult$1.borderTex, {\n\t\t\t\t\t\tx: borderResult$1.ox,\n\t\t\t\t\t\ty: borderResult$1.oy,\n\t\t\t\t\t\twidth: borderResult$1.ow,\n\t\t\t\t\t\theight: borderResult$1.oh\n\t\t\t\t\t}, { opacity: layerOpacity });\n\t\t\t\t\tctx.renderer.popTransform();\n\t\t\t\t\tborderPass.end();\n\t\t\t\t}\n\t\t\t\tconst containerShutter = target?.motionBlurShutter ?? lop.motionBlurShutter ?? 0;\n\t\t\t\tif (containerShutter > 0 && fps && shiftedFrame !== void 0) {\n\t\t\t\t\tseekTimeline(compiled, shiftedFrame - 1, fps);\n\t\t\t\t\tconst prevTarget = targetId ? targetsById[targetId] : void 0;\n\t\t\t\t\tconst prevX = prevTarget?.x ?? baseX;\n\t\t\t\t\tconst prevY = prevTarget?.y ?? baseY;\n\t\t\t\t\tseekTimeline(compiled, shiftedFrame, fps);\n\t\t\t\t\tconst vx = sampledX - prevX;\n\t\t\t\t\tconst vy = sampledY - prevY;\n\t\t\t\t\tif (Math.hypot(vx, vy) > .5) {\n\t\t\t\t\t\tactiveGroupTex = ctx.renderer.applyMotionBlur(encoder, activeGroupTex, vx, vy, containerShutter, 16, [\n\t\t\t\t\t\t\tactiveTex,\n\t\t\t\t\t\t\ttargetTexture,\n\t\t\t\t\t\t\t...excludes\n\t\t\t\t\t\t]);\n\t\t\t\t\t\tactiveGroupView = activeGroupTex.createView();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tconst deflickerFromEffects = Array.isArray(lop.effects) ? lop.effects.find((e) => e?.op === \"TemporalDeflicker\" || e?.op === \"Deflicker\" || e?.constructor?.name === \"TemporalDeflicker\") : void 0;\n\t\t\t\tconst rawDeflicker = target?.deflicker ?? lop.deflicker ?? deflickerFromEffects;\n\t\t\t\tconst deflickerOpts$1 = typeof rawDeflicker === \"object\" && rawDeflicker !== null ? rawDeflicker : void 0;\n\t\t\t\tif (deflickerOpts$1) {\n\t\t\t\t\tconst deflickerPipe = getTemporalDeflickerPipeline(ctx.device, lop.id || `layer_${i}`);\n\t\t\t\t\tif (shiftedFrame === 0) deflickerPipe.reset();\n\t\t\t\t\tactiveGroupTex = deflickerPipe.execute(activeGroupTex, deflickerOpts$1, encoder);\n\t\t\t\t\tactiveGroupView = activeGroupTex.createView();\n\t\t\t\t}\n\t\t\t\tconst relightEffect = Array.isArray(lop.effects) ? lop.effects.find((e) => e?.op === \"Relight3D\" || e?.constructor?.name === \"Relight3D\") : void 0;\n\t\t\t\tconst rawRelight = target?.relighting ?? lop.relighting ?? (typeof lop.relight === \"object\" ? lop.relight : void 0) ?? relightEffect;\n\t\t\t\tconst relightOpts$1 = typeof rawRelight === \"object\" && rawRelight !== null ? rawRelight : void 0;\n\t\t\t\tif (relightOpts$1) {\n\t\t\t\t\tconst relightPipeline = getScreenSpaceRelightPipeline(ctx.device, ctx.renderer.format ?? \"rgba8unorm\");\n\t\t\t\t\tconst r3dInstance = getRenderer3D(ctx.device, ctx.renderer.format ?? \"rgba8unorm\", sampleCount3d);\n\t\t\t\t\tconst activeLights = synthesizeRelightLights(relightOpts$1, sceneLights, rect, compositionFrame, fps ?? 24);\n\t\t\t\t\tconst lightsBuffer = r3dInstance.getOrCreateLightsBuffer(activeLights);\n\t\t\t\t\tconst relitTex = ctx.renderer.getTemporaryTexture(targetW, targetH, [\n\t\t\t\t\t\tactiveGroupTex,\n\t\t\t\t\t\tactiveTex,\n\t\t\t\t\t\ttargetTexture,\n\t\t\t\t\t\t...excludes\n\t\t\t\t\t]);\n\t\t\t\t\tconst relitView = relitTex.createView();\n\t\t\t\t\tconst normalTex = relightOpts$1.normalTexture ?? relightOpts$1.normalMap;\n\t\t\t\t\trelightPipeline.execute(encoder, relitView, activeGroupTex, normalTex, lightsBuffer, {\n\t\t\t\t\t\tviewportWidth: targetW,\n\t\t\t\t\t\tviewportHeight: targetH,\n\t\t\t\t\t\tlayerX: 0,\n\t\t\t\t\t\tlayerY: 0,\n\t\t\t\t\t\troughness: resolveFrameNumber(target?.roughness ?? target?.relightRoughness ?? relightOpts$1.specularRoughness ?? relightOpts$1.roughness, .35, compositionFrame, fps ?? 24),\n\t\t\t\t\t\tspecularStrength: resolveFrameNumber(target?.specularStrength ?? target?.relightSpecularStrength ?? relightOpts$1.specularStrength, .7, compositionFrame, fps ?? 24),\n\t\t\t\t\t\tmetallic: resolveFrameNumber(target?.metallic ?? target?.relightMetallic ?? relightOpts$1.metallic, 0, compositionFrame, fps ?? 24),\n\t\t\t\t\t\tambientIntensity: resolveFrameNumber(target?.ambientIntensity ?? target?.relightAmbientIntensity ?? relightOpts$1.ambientIntensity, .15, compositionFrame, fps ?? 24),\n\t\t\t\t\t\tdepthScale: resolveFrameNumber(target?.depthScale ?? target?.relightDepthScale ?? relightOpts$1.depthScale, 1, compositionFrame, fps ?? 24),\n\t\t\t\t\t\topacity: 1\n\t\t\t\t\t}, \"clear\");\n\t\t\t\t\tactiveGroupTex = relitTex;\n\t\t\t\t\tactiveGroupView = relitView;\n\t\t\t\t}\n\t\t\t\tconst compositeExcludes = [\n\t\t\t\t\tactiveTex,\n\t\t\t\t\ttargetTexture,\n\t\t\t\t\t...excludes\n\t\t\t\t];\n\t\t\t\tif (borderResult$1) compositeExcludes.push(borderResult$1.borderTex);\n\t\t\t\tactiveTex = ctx.renderer.composite(encoder, activeTex, activeGroupTex, blendMode, compositeExcludes);\n\t\t\t\tactiveView = activeTex.createView();\n\t\t\t\treturn {\n\t\t\t\t\tfinalTex: activeTex,\n\t\t\t\t\tfinalView: activeView\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (!(layerW > 0 && layerH > 0)) return {\n\t\t\t\tfinalTex: activeTex,\n\t\t\t\tfinalView: activeView\n\t\t\t};\n\t\t\tconst br = Math.min(lop.borderRadius ?? lop.strokeRadius ?? 0, layerW / 2, layerH / 2);\n\t\t\tconst texW = Math.ceil(layerW);\n\t\t\tconst texH = Math.ceil(layerH);\n\t\t\tconst savedScissors = ctx.renderer.suspendScissors?.() ?? [];\n\t\t\tconst localTex = ctx.renderer.getTemporaryTexture(texW, texH, [\n\t\t\t\tactiveTex,\n\t\t\t\ttargetTexture,\n\t\t\t\t...excludes\n\t\t\t]);\n\t\t\tconst localView = localTex.createView();\n\t\t\tctx.renderer.beginFrame(encoder, localView, {\n\t\t\t\tr: 0,\n\t\t\t\tg: 0,\n\t\t\t\tb: 0,\n\t\t\t\ta: 0\n\t\t\t}, texW, texH, \"clear\").end();\n\t\t\tlet content;\n\t\t\tlet isCaption = false;\n\t\t\tif (kind === \"media\") {\n\t\t\t\tcontent = nodeVM.children?.[0];\n\t\t\t\tisCaption = content?.operation?.dataType === \"Caption\" || lop.dataType === \"Caption\" || (content?.operation)?.srtText !== void 0;\n\t\t\t} else if (kind === \"text\") {\n\t\t\t\tconst rawSpans = target?.spans ?? lop.spans;\n\t\t\t\tconst spanFps = fps ?? 24;\n\t\t\t\tconst spans = rawSpans?.length ? resolveTextSpans(rawSpans, {\n\t\t\t\t\tframe: compositionFrame,\n\t\t\t\t\tfps: spanFps,\n\t\t\t\t\ttime: compositionFrame / spanFps,\n\t\t\t\t\tduration: composeDuration / 1e3,\n\t\t\t\t\tdurationMs: composeDuration,\n\t\t\t\t\tprogress: composeDuration > 0 ? Math.min(1, compositionFrame / spanFps * 1e3 / composeDuration) : 0,\n\t\t\t\t\tdeltaTime: 1 / spanFps\n\t\t\t\t}) : void 0;\n\t\t\t\tconst fullText = spans ? spansText(spans) : lop.text ?? \"\";\n\t\t\t\tlet displayText = fullText;\n\t\t\t\tlet resolvedAnimators = rawAnimators;\n\t\t\t\tif (Array.isArray(rawAnimators) && rawAnimators.length > 0) resolvedAnimators = rawAnimators.map((animator, idx) => {\n\t\t\t\t\tconst a = {\n\t\t\t\t\t\t...animator,\n\t\t\t\t\t\ttransform: { ...animator.transform ?? {} }\n\t\t\t\t\t};\n\t\t\t\t\tif (idx === 0) {\n\t\t\t\t\t\tconst offsetVal = typeof target?.offset === \"number\" ? target.offset : typeof target?.animatorOffset === \"number\" ? target.animatorOffset : void 0;\n\t\t\t\t\t\tconst rangeStartVal = typeof target?.rangeStart === \"number\" ? target.rangeStart : typeof target?.animatorRangeStart === \"number\" ? target.animatorRangeStart : void 0;\n\t\t\t\t\t\tconst rangeEndVal = typeof target?.rangeEnd === \"number\" ? target.rangeEnd : typeof target?.animatorRangeEnd === \"number\" ? target.animatorRangeEnd : void 0;\n\t\t\t\t\t\tif (offsetVal !== void 0) a.offset = offsetVal;\n\t\t\t\t\t\tif (rangeStartVal !== void 0) a.rangeStart = rangeStartVal;\n\t\t\t\t\t\tif (rangeEndVal !== void 0) a.rangeEnd = rangeEndVal;\n\t\t\t\t\t\tif (Array.isArray(a.selectors)) a.selectors = a.selectors.map((s) => {\n\t\t\t\t\t\t\tif (s.type === \"range\") return {\n\t\t\t\t\t\t\t\t...s,\n\t\t\t\t\t\t\t\t...offsetVal !== void 0 ? { offset: offsetVal } : {},\n\t\t\t\t\t\t\t\t...rangeStartVal !== void 0 ? { start: rangeStartVal } : {},\n\t\t\t\t\t\t\t\t...rangeEndVal !== void 0 ? { end: rangeEndVal } : {}\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\treturn s;\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\treturn a;\n\t\t\t\t});\n\t\t\t\tconst hasKineticAnimators$1 = Array.isArray(resolvedAnimators) && resolvedAnimators.length > 0;\n\t\t\t\tconst hasTypewriter = Boolean(lop.typewriter || target?.typewriter);\n\t\t\t\tconst textTrack = lop.animation?.tracks?.find((t) => t.prop === \"text\");\n\t\t\t\tif (!hasKineticAnimators$1 && !hasTypewriter && (textTrack !== void 0 || typeof target?.text === \"number\") && fullText.length > 0) {\n\t\t\t\t\tconst progress = typeof target?.text === \"number\" ? Math.max(0, Math.min(1, target.text)) : 1;\n\t\t\t\t\tconst countsUnits = typeof target?.text === \"number\" && target.text > 1.0001;\n\t\t\t\t\tif (progress >= 1 && !countsUnits) displayText = fullText;\n\t\t\t\t\telse if (progress <= 0) displayText = \"\";\n\t\t\t\t\telse {\n\t\t\t\t\t\tconst presetType = textTrack?.keyframes?.find((k) => k.presetType)?.presetType ?? \"typewriter\";\n\t\t\t\t\t\tconst textNumeric = typeof target?.text === \"number\" ? target.text : null;\n\t\t\t\t\t\tconst isDirectCount = textNumeric !== null && textNumeric > 1.0001;\n\t\t\t\t\t\tif (presetType === \"word-reveal\" || presetType === \"karaoke\") {\n\t\t\t\t\t\t\tconst tokens = fullText.split(/(\\s+)/);\n\t\t\t\t\t\t\tconst wordIndices = [];\n\t\t\t\t\t\t\ttokens.forEach((token, idx) => {\n\t\t\t\t\t\t\t\tif (token.trim().length > 0) wordIndices.push(idx);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tconst visibleWordCount = isDirectCount && textNumeric !== null ? Math.min(wordIndices.length, Math.round(textNumeric)) : Math.round(wordIndices.length * progress);\n\t\t\t\t\t\t\tif (visibleWordCount === 0) displayText = \"\";\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tconst lastTokenIdx = wordIndices[Math.min(wordIndices.length - 1, visibleWordCount - 1)];\n\t\t\t\t\t\t\t\tdisplayText = tokens.slice(0, lastTokenIdx + 1).join(\"\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (presetType === \"line-reveal\") {\n\t\t\t\t\t\t\tconst lines = fullText.split(\"\\n\");\n\t\t\t\t\t\t\tconst visibleLineCount = isDirectCount && textNumeric !== null ? Math.min(lines.length, Math.round(textNumeric)) : Math.round(lines.length * progress);\n\t\t\t\t\t\t\tdisplayText = lines.slice(0, Math.max(0, visibleLineCount)).join(\"\\n\");\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst visibleChars = isDirectCount && textNumeric !== null ? Math.min(fullText.length, Math.round(textNumeric)) : Math.round(fullText.length * progress);\n\t\t\t\t\t\t\tdisplayText = fullText.slice(0, visibleChars);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcontent = {\n\t\t\t\t\tmetadata: {},\n\t\t\t\t\toperation: {\n\t\t\t\t\t\top: \"text\",\n\t\t\t\t\t\ttext: displayText,\n\t\t\t\t\t\tspans: spans && displayText !== fullText ? fitSpansToText(spans, displayText) : spans,\n\t\t\t\t\t\tanimators: resolvedAnimators,\n\t\t\t\t\t\tpathOptions: target?.pathOptions ?? lop.pathOptions,\n\t\t\t\t\t\ttypewriter: target?.typewriter ?? lop.typewriter,\n\t\t\t\t\t\tmarquee: target?.marquee ?? lop.marquee,\n\t\t\t\t\t\ttextProgress: typeof target?.text === \"number\" ? target.text : void 0,\n\t\t\t\t\t\tfirstMargin: target?.firstMargin ?? lop.firstMargin,\n\t\t\t\t\t\tlastMargin: target?.lastMargin ?? lop.lastMargin,\n\t\t\t\t\t\tbaselineShift: target?.baselineShift ?? lop.baselineShift,\n\t\t\t\t\t\tsignals: virtualMedia?.operation?.signals ?? virtualMedia?.signals,\n\t\t\t\t\t\tfontSize: target?.fontSize ?? lop.fontSize,\n\t\t\t\t\t\tfontFamily: lop.fontFamily,\n\t\t\t\t\t\tfontStyle: lop.fontStyle,\n\t\t\t\t\t\tfontWeight: lop.fontWeight,\n\t\t\t\t\t\tfill: target?.fill ?? target?.color ?? lop.fill,\n\t\t\t\t\t\talign: lop.align,\n\t\t\t\t\t\tdirection: lop.direction,\n\t\t\t\t\t\tverticalAlign: lop.verticalAlign,\n\t\t\t\t\t\tletterSpacing: target?.letterSpacing ?? lop.letterSpacing,\n\t\t\t\t\t\tlineHeight: lop.lineHeight,\n\t\t\t\t\t\tpadding: lop.padding,\n\t\t\t\t\t\ttextBackgroundColor: target?.textBackgroundColor ?? target?.background ?? lop.background,\n\t\t\t\t\t\tborderRadius: lop.borderRadius,\n\t\t\t\t\t\tstroke: target?.stroke ?? target?.strokeColor ?? lop.stroke,\n\t\t\t\t\t\tstrokeWidth: target?.strokeWidth ?? lop.strokeWidth,\n\t\t\t\t\t\tstrokeAlign: lop.strokeAlign,\n\t\t\t\t\t\ttextShadow: lop.textShadow,\n\t\t\t\t\t\tshadows: lop.shadows,\n\t\t\t\t\t\tx: isPathText ? 0 : padX,\n\t\t\t\t\t\ty: isPathText ? 0 : padY,\n\t\t\t\t\t\twidth: isPathText ? targetW : lop.width !== void 0 ? rect.width : void 0,\n\t\t\t\t\t\theight: isPathText ? targetH : lop.height !== void 0 ? rect.height : void 0\n\t\t\t\t\t},\n\t\t\t\t\tchildren: []\n\t\t\t\t};\n\t\t\t}\n\t\t\tlet glyphBatches = null;\n\t\t\tlet layerHasRaster = true;\n\t\t\tif (content) {\n\t\t\t\tconst contentDurationMs = getActiveMediaMetadata(content)?.durationMs ?? composeDuration;\n\t\t\t\tconst layerDurationInMS = Math.max(1, Math.round(contentDurationMs / 1e3 * (fps ?? 24))) / (fps ?? 24) * 1e3;\n\t\t\t\tconst contentIsImageCompositor = content.operation?.op === \"Compositor\" && content.operation?.dataType === \"Image\";\n\t\t\t\tconst captureGlyphs = isTrue3D && kind === \"text\";\n\t\t\t\tconst rasterDrawsBefore = ctx.renderer.rasterDrawCount;\n\t\t\t\tif (captureGlyphs) ctx.renderer.slugPipeline.beginCapture();\n\t\t\t\ttry {\n\t\t\t\t\tawait drawChild(content, {\n\t\t\t\t\t\tcontainerWidth: layerW,\n\t\t\t\t\t\tcontainerHeight: layerH,\n\t\t\t\t\t\trenderId: `${props.renderId}-l${i}`,\n\t\t\t\t\t\tdurationMs: layerDurationInMS,\n\t\t\t\t\t\topacity: 1,\n\t\t\t\t\t\tfps,\n\t\t\t\t\t\t...typeof lop.dpr === \"number\" && { dpr: lop.dpr },\n\t\t\t\t\t\texcludeTextures: [\n\t\t\t\t\t\t\tactiveTex,\n\t\t\t\t\t\t\ttargetTexture,\n\t\t\t\t\t\t\t...excludes\n\t\t\t\t\t\t],\n\t\t\t\t\t\tisVideoMode: isVideoMode && !contentIsImageCompositor,\n\t\t\t\t\t\t...isVideoMode && { frame: Math.max(0, shiftedFrame - (lop.startFrame ?? 0)) + (lop.mediaStartFrame ?? lop.trimStartFrames ?? (lop.trimStartSec != null ? Math.round(lop.trimStartSec * (fps ?? 24)) : 0)) },\n\t\t\t\t\t\tcompositionFrame,\n\t\t\t\t\t\t...isCaption && {\n\t\t\t\t\t\t\tfontFamily: lop.fontFamily,\n\t\t\t\t\t\t\tfontSize: target?.fontSize ?? lop.fontSize,\n\t\t\t\t\t\t\tfontWeight: lop.fontWeight,\n\t\t\t\t\t\t\tfontStyle: lop.fontStyle,\n\t\t\t\t\t\t\tfill: lop.fill,\n\t\t\t\t\t\t\tcolor: lop.fill,\n\t\t\t\t\t\t\talign: lop.align ?? \"center\",\n\t\t\t\t\t\t\tdirection: lop.direction,\n\t\t\t\t\t\t\tverticalAlign: lop.verticalAlign ?? lop.textAlignVertical,\n\t\t\t\t\t\t\tlineHeight: lop.lineHeight,\n\t\t\t\t\t\t\tletterSpacing: lop.letterSpacing,\n\t\t\t\t\t\t\ttextBackgroundColor: lop.background ?? lop.textBackgroundColor,\n\t\t\t\t\t\t\tborderRadius: lop.borderRadius ?? lop.strokeRadius,\n\t\t\t\t\t\t\tstrokeRadius: lop.strokeRadius ?? lop.borderRadius,\n\t\t\t\t\t\t\tstroke: lop.stroke,\n\t\t\t\t\t\t\tstrokeWidth: lop.strokeWidth,\n\t\t\t\t\t\t\tshadows: lop.shadows,\n\t\t\t\t\t\t\tpadding: lop.padding,\n\t\t\t\t\t\t\tmaxWidth: lop.maxWidth ?? layerW\n\t\t\t\t\t\t}\n\t\t\t\t\t}, localView, localTex, texW, texH);\n\t\t\t\t} finally {\n\t\t\t\t\tif (captureGlyphs) glyphBatches = ctx.renderer.slugPipeline.endCapture();\n\t\t\t\t}\n\t\t\t\tlayerHasRaster = ctx.renderer.rasterDrawCount !== rasterDrawsBefore;\n\t\t\t} else if (kind === \"shape\") {\n\t\t\t\tconst shapePass = ctx.renderer.beginFrame(encoder, localView, {\n\t\t\t\t\tr: 0,\n\t\t\t\t\tg: 0,\n\t\t\t\t\tb: 0,\n\t\t\t\t\ta: 0\n\t\t\t\t}, texW, texH, \"load\");\n\t\t\t\tconst shapeConfig = {\n\t\t\t\t\tshapeType: lop.shapeType ?? lop.shape ?? \"rect\",\n\t\t\t\t\twidth: layerW,\n\t\t\t\t\theight: layerH,\n\t\t\t\t\tpath: target?.d ?? lop.d ?? lop.path,\n\t\t\t\t\tcornerRadius: target?.cornerRadius ?? lop.cornerRadius ?? lop.borderRadius ?? lop.radius ?? 0,\n\t\t\t\t\tstarPoints: lop.starPoints ?? 5,\n\t\t\t\t\tstarInnerRadiusRatio: target?.starInnerRadiusRatio ?? lop.starInnerRadiusRatio ?? .5,\n\t\t\t\t\tpolygonSides: lop.polygonSides ?? 5\n\t\t\t\t};\n\t\t\t\tconst fillType = lop.fillType ?? \"solid\";\n\t\t\t\tconst fillColor = target?.fillColor ?? target?.fill ?? lop.fillColor ?? lop.fill ?? \"#38bdf8\";\n\t\t\t\tconst color2 = target?.gradientEndColor ?? lop.gradientEndColor ?? lop.fillColor2 ?? \"#9333ea\";\n\t\t\t\tlet startX = lop.fillStartX;\n\t\t\t\tlet startY = lop.fillStartY;\n\t\t\t\tlet endX = lop.fillEndX;\n\t\t\t\tlet endY = lop.fillEndY;\n\t\t\t\tif (fillType === \"linear\" && startX === void 0 && lop.gradientAngle !== void 0) {\n\t\t\t\t\tconst rad = lop.gradientAngle * Math.PI / 180;\n\t\t\t\t\tconst cx = layerW / 2;\n\t\t\t\t\tconst cy = layerH / 2;\n\t\t\t\t\tconst half = (Math.abs(layerW * Math.cos(rad)) + Math.abs(layerH * Math.sin(rad))) / 2;\n\t\t\t\t\tstartX = cx - Math.cos(rad) * half;\n\t\t\t\t\tstartY = cy - Math.sin(rad) * half;\n\t\t\t\t\tendX = cx + Math.cos(rad) * half;\n\t\t\t\t\tendY = cy + Math.sin(rad) * half;\n\t\t\t\t}\n\t\t\t\tconst fillConfig = {\n\t\t\t\t\ttype: fillType,\n\t\t\t\t\tcolor: fillColor,\n\t\t\t\t\tcolor2,\n\t\t\t\t\tstartX,\n\t\t\t\t\tstartY,\n\t\t\t\t\tendX,\n\t\t\t\t\tendY,\n\t\t\t\t\tcx: lop.fillCx,\n\t\t\t\t\tcy: lop.fillCy,\n\t\t\t\t\tradius: lop.fillRadius\n\t\t\t\t};\n\t\t\t\tconst strokeWidth = target?.strokeWidth ?? lop.strokeWidth ?? 0;\n\t\t\t\tconst strokeColor = target?.strokeColor ?? lop.strokeColor ?? lop.stroke ?? \"#ffffff\";\n\t\t\t\tconst strokeLineCap = lop.strokeLineCap ?? \"round\";\n\t\t\t\tconst strokeDashArray = lop.strokeDashArray;\n\t\t\t\tconst strokeDashOffset = target?.strokeDashOffset ?? lop.strokeDashOffset ?? 0;\n\t\t\t\tconst trimStart = target?.trimStart ?? lop.trimStart ?? 0;\n\t\t\t\tconst trimEnd = target?.trimEnd ?? lop.trimEnd ?? 1;\n\t\t\t\tconst trimOffset = target?.trimOffset ?? lop.trimOffset ?? 0;\n\t\t\t\tctx.renderer.drawShape(shapePass, shapeConfig, fillConfig, strokeWidth > 0 ? {\n\t\t\t\t\tcolor: strokeColor,\n\t\t\t\t\twidth: strokeWidth,\n\t\t\t\t\tcap: strokeLineCap,\n\t\t\t\t\ttrimStart,\n\t\t\t\t\ttrimEnd,\n\t\t\t\t\ttrimOffset,\n\t\t\t\t\tdashArray: strokeDashArray,\n\t\t\t\t\tdashOffset: strokeDashOffset\n\t\t\t\t} : void 0);\n\t\t\t\tshapePass.end();\n\t\t\t}\n\t\t\tconst leafDeflickerEffect = Array.isArray(lop.effects) ? lop.effects.find((e) => e?.op === \"TemporalDeflicker\" || e?.constructor?.name === \"TemporalDeflicker\") : void 0;\n\t\t\tconst deflickerOpts = target?.deflicker ?? lop.deflicker ?? leafDeflickerEffect;\n\t\t\tconst leafRelightEffect = Array.isArray(lop.effects) ? lop.effects.find((e) => e?.op === \"Relight3D\" || e?.constructor?.name === \"Relight3D\") : void 0;\n\t\t\tconst rawLeafRelight = target?.relighting ?? lop.relighting ?? (typeof lop.relight === \"object\" ? lop.relight : void 0) ?? leafRelightEffect;\n\t\t\tconst relightOpts = typeof rawLeafRelight === \"object\" && rawLeafRelight !== null ? rawLeafRelight : void 0;\n\t\t\tconst shutterAngle = target?.motionBlurShutter ?? lop.motionBlurShutter ?? 0;\n\t\t\tif (glyphBatches && glyphBatches.length > 0 && (deflickerOpts || relightOpts || shutterAngle > 0)) {\n\t\t\t\tconst glyphPass = ctx.renderer.beginFrame(encoder, localView, {\n\t\t\t\t\tr: 0,\n\t\t\t\t\tg: 0,\n\t\t\t\t\tb: 0,\n\t\t\t\t\ta: 0\n\t\t\t\t}, texW, texH, \"load\");\n\t\t\t\tctx.renderer.slugPipeline.drawBatches(glyphPass, glyphBatches, texW, texH);\n\t\t\t\tglyphPass.end();\n\t\t\t\tglyphBatches = null;\n\t\t\t\tlayerHasRaster = true;\n\t\t\t}\n\t\t\tlet finalTex = localTex;\n\t\t\tif (!isTrue3D && br > 0 && !isCaption && kind !== \"shape\") {\n\t\t\t\tconst maskTex = ctx.renderer.getTemporaryTexture(texW, texH, [\n\t\t\t\t\tlocalTex,\n\t\t\t\t\tactiveTex,\n\t\t\t\t\ttargetTexture,\n\t\t\t\t\t...excludes\n\t\t\t\t]);\n\t\t\t\tconst maskView = maskTex.createView();\n\t\t\t\tctx.renderer.beginFrame(encoder, maskView, {\n\t\t\t\t\tr: 0,\n\t\t\t\t\tg: 0,\n\t\t\t\t\tb: 0,\n\t\t\t\t\ta: 0\n\t\t\t\t}, texW, texH, \"clear\").end();\n\t\t\t\tconst maskPass = ctx.renderer.beginFrame(encoder, maskView, {\n\t\t\t\t\tr: 0,\n\t\t\t\t\tg: 0,\n\t\t\t\t\tb: 0,\n\t\t\t\t\ta: 0\n\t\t\t\t}, texW, texH, \"load\");\n\t\t\t\tctx.renderer.drawRect(maskPass, {\n\t\t\t\t\tx: 0,\n\t\t\t\t\ty: 0,\n\t\t\t\t\twidth: layerW,\n\t\t\t\t\theight: layerH\n\t\t\t\t}, {\n\t\t\t\t\tr: 1,\n\t\t\t\t\tg: 1,\n\t\t\t\t\tb: 1,\n\t\t\t\t\ta: 1\n\t\t\t\t}, br);\n\t\t\t\tmaskPass.end();\n\t\t\t\tfinalTex = ctx.renderer.composite(encoder, localTex, maskTex, \"mask-in\", [\n\t\t\t\t\tactiveTex,\n\t\t\t\t\ttargetTexture,\n\t\t\t\t\t...excludes\n\t\t\t\t]);\n\t\t\t}\n\t\t\tif (deflickerOpts) {\n\t\t\t\tconst deflickerPipe = getTemporalDeflickerPipeline(ctx.device, lop.id || `layer_${i}`);\n\t\t\t\tif (shiftedFrame === 0) deflickerPipe.reset();\n\t\t\t\tfinalTex = deflickerPipe.execute(finalTex, deflickerOpts, encoder);\n\t\t\t}\n\t\t\tif (relightOpts) {\n\t\t\t\tconst relightPipeline = getScreenSpaceRelightPipeline(ctx.device, ctx.renderer.format ?? \"rgba8unorm\");\n\t\t\t\tconst r3dInstance = getRenderer3D(ctx.device, ctx.renderer.format ?? \"rgba8unorm\", sampleCount3d);\n\t\t\t\tconst activeLights = synthesizeRelightLights(relightOpts, sceneLights, {\n\t\t\t\t\tx: sampledX,\n\t\t\t\t\ty: sampledY,\n\t\t\t\t\twidth: texW,\n\t\t\t\t\theight: texH\n\t\t\t\t}, compositionFrame, fps ?? 24);\n\t\t\t\tconst lightsBuffer = r3dInstance.getOrCreateLightsBuffer(activeLights);\n\t\t\t\tconst relitTex = ctx.renderer.getTemporaryTexture(texW, texH, [\n\t\t\t\t\tfinalTex,\n\t\t\t\t\tactiveTex,\n\t\t\t\t\ttargetTexture,\n\t\t\t\t\t...excludes\n\t\t\t\t]);\n\t\t\t\tconst relitView = relitTex.createView();\n\t\t\t\tconst normalTex = relightOpts.normalTexture ?? relightOpts.normalMap;\n\t\t\t\trelightPipeline.execute(encoder, relitView, finalTex, normalTex, lightsBuffer, {\n\t\t\t\t\tviewportWidth: texW,\n\t\t\t\t\tviewportHeight: texH,\n\t\t\t\t\tlayerX: sampledX,\n\t\t\t\t\tlayerY: sampledY,\n\t\t\t\t\troughness: resolveFrameNumber(target?.roughness ?? target?.relightRoughness ?? relightOpts.specularRoughness ?? relightOpts.roughness, .35, compositionFrame, fps ?? 24),\n\t\t\t\t\tspecularStrength: resolveFrameNumber(target?.specularStrength ?? target?.relightSpecularStrength ?? relightOpts.specularStrength, .7, compositionFrame, fps ?? 24),\n\t\t\t\t\tmetallic: resolveFrameNumber(target?.metallic ?? target?.relightMetallic ?? relightOpts.metallic, 0, compositionFrame, fps ?? 24),\n\t\t\t\t\tambientIntensity: resolveFrameNumber(target?.ambientIntensity ?? target?.relightAmbientIntensity ?? relightOpts.ambientIntensity, .15, compositionFrame, fps ?? 24),\n\t\t\t\t\tdepthScale: resolveFrameNumber(target?.depthScale ?? target?.relightDepthScale ?? relightOpts.depthScale, 1, compositionFrame, fps ?? 24),\n\t\t\t\t\topacity: 1\n\t\t\t\t}, \"clear\");\n\t\t\t\tfinalTex = relitTex;\n\t\t\t}\n\t\t\tlet blurPadX = 0;\n\t\t\tlet blurPadY = 0;\n\t\t\tif (shutterAngle > 0 && fps && shiftedFrame !== void 0) {\n\t\t\t\tseekTimeline(compiled, shiftedFrame - 1, fps);\n\t\t\t\tconst prevTarget = targetId ? targetsById[targetId] : void 0;\n\t\t\t\tconst prevX = prevTarget?.x ?? baseX;\n\t\t\t\tconst prevY = prevTarget?.y ?? baseY;\n\t\t\t\tseekTimeline(compiled, shiftedFrame, fps);\n\t\t\t\tconst vx = sampledX - prevX;\n\t\t\t\tconst vy = sampledY - prevY;\n\t\t\t\tif (Math.hypot(vx, vy) > .5) {\n\t\t\t\t\tif (!isTrue3D && !(is3D && quad3D)) {\n\t\t\t\t\t\tconst reach = shutterAngle / 360;\n\t\t\t\t\t\tblurPadX = Math.ceil(Math.abs(vx) * reach);\n\t\t\t\t\t\tblurPadY = Math.ceil(Math.abs(vy) * reach);\n\t\t\t\t\t\tconst paddedTex = ctx.renderer.getTemporaryTexture(texW + blurPadX * 2, texH + blurPadY * 2, [\n\t\t\t\t\t\t\tfinalTex,\n\t\t\t\t\t\t\tactiveTex,\n\t\t\t\t\t\t\ttargetTexture,\n\t\t\t\t\t\t\t...excludes\n\t\t\t\t\t\t]);\n\t\t\t\t\t\tconst padPass = ctx.renderer.beginFrame(encoder, paddedTex.createView(), {\n\t\t\t\t\t\t\tr: 0,\n\t\t\t\t\t\t\tg: 0,\n\t\t\t\t\t\t\tb: 0,\n\t\t\t\t\t\t\ta: 0\n\t\t\t\t\t\t}, paddedTex.width, paddedTex.height, \"clear\");\n\t\t\t\t\t\tctx.renderer.drawTexture(padPass, finalTex, {\n\t\t\t\t\t\t\tx: blurPadX,\n\t\t\t\t\t\t\ty: blurPadY,\n\t\t\t\t\t\t\twidth: texW,\n\t\t\t\t\t\t\theight: texH\n\t\t\t\t\t\t}, { opacity: 1 });\n\t\t\t\t\t\tpadPass.end();\n\t\t\t\t\t\tfinalTex = paddedTex;\n\t\t\t\t\t}\n\t\t\t\t\tconst streakPx = Math.hypot(vx, vy) * (shutterAngle / 360) * 2;\n\t\t\t\t\tconst samples = Math.min(128, Math.max(16, Math.ceil(streakPx / 2)));\n\t\t\t\t\tfinalTex = ctx.renderer.applyMotionBlur(encoder, finalTex, vx, vy, shutterAngle, samples, [\n\t\t\t\t\t\tactiveTex,\n\t\t\t\t\t\ttargetTexture,\n\t\t\t\t\t\t...excludes\n\t\t\t\t\t]);\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst borderExcludes = [\n\t\t\t\tlocalTex,\n\t\t\t\tfinalTex,\n\t\t\t\tactiveTex,\n\t\t\t\ttargetTexture,\n\t\t\t\t...excludes\n\t\t\t];\n\t\t\tconst borderResult = !isTrue3D && lop.borderWidth !== void 0 && lop.borderColor ? createBorderTexture(ctx, encoder, layerW, layerH, br, lop.borderWidth, lop.borderColor, lop.strokeAlign ?? \"inside\", borderExcludes) : null;\n\t\t\tif (savedScissors.length > 0) ctx.renderer.resumeScissors?.(savedScissors);\n\t\t\tif (isTrue3D) {\n\t\t\t\tconst renderedTex = finalTex;\n\t\t\t\tif (borderResult) {\n\t\t\t\t\tconst borderPass = ctx.renderer.beginFrame(encoder, renderedTex.createView(), {\n\t\t\t\t\t\tr: 0,\n\t\t\t\t\t\tg: 0,\n\t\t\t\t\t\tb: 0,\n\t\t\t\t\t\ta: 0\n\t\t\t\t\t}, texW, texH, \"load\");\n\t\t\t\t\tctx.renderer.drawTexture(borderPass, borderResult.borderTex, {\n\t\t\t\t\t\tx: borderResult.ox,\n\t\t\t\t\t\ty: borderResult.oy,\n\t\t\t\t\t\twidth: borderResult.ow,\n\t\t\t\t\t\theight: borderResult.oh\n\t\t\t\t\t}, { opacity: 1 });\n\t\t\t\t\tborderPass.end();\n\t\t\t\t}\n\t\t\t\tlet modelMatrix;\n\t\t\t\tif (parent3DMatrix) {\n\t\t\t\t\tlet localM = Matrix4Math.identity();\n\t\t\t\t\tconst childX = target?.x ?? lop.x ?? 0;\n\t\t\t\t\tconst childY = target?.y ?? lop.y ?? 0;\n\t\t\t\t\tconst childZ = target?.z ?? lop.z ?? 0;\n\t\t\t\t\tlocalM = Matrix4Math.multiply(localM, Matrix4Math.translate(childX, childY, childZ));\n\t\t\t\t\tconst rxRad = (target?.rotateX ?? lop.rotateX ?? 0) * Math.PI / 180;\n\t\t\t\t\tconst ryRad = (target?.rotateY ?? lop.rotateY ?? 0) * Math.PI / 180;\n\t\t\t\t\tconst rzRad = ((target?.rotateZ ?? lop.rotateZ ?? 0) !== 0 ? target?.rotateZ ?? lop.rotateZ ?? 0 : rotation) * (Math.PI / 180);\n\t\t\t\t\tif (rzRad !== 0) localM = Matrix4Math.multiply(localM, Matrix4Math.rotateZ(rzRad));\n\t\t\t\t\tif (ryRad !== 0) localM = Matrix4Math.multiply(localM, Matrix4Math.rotateY(ryRad));\n\t\t\t\t\tif (rxRad !== 0) localM = Matrix4Math.multiply(localM, Matrix4Math.rotateX(rxRad));\n\t\t\t\t\tconst sx = layerW * scale$1;\n\t\t\t\t\tconst sy = layerH * scale$1;\n\t\t\t\t\tconst sz = target?.scaleZ ?? lop.scaleZ ?? 1;\n\t\t\t\t\tlocalM = Matrix4Math.multiply(localM, Matrix4Math.scale(sx, sy, sz));\n\t\t\t\t\tconst ax = lop.anchorX ?? .5;\n\t\t\t\t\tconst ay = lop.anchorY ?? .5;\n\t\t\t\t\tconst pivotX = .5 - ax;\n\t\t\t\t\tconst pivotY = .5 - ay;\n\t\t\t\t\tif (pivotX !== 0 || pivotY !== 0) localM = Matrix4Math.multiply(localM, Matrix4Math.translate(pivotX, pivotY, 0));\n\t\t\t\t\tmodelMatrix = Matrix4Math.multiply(parent3DMatrix, localM);\n\t\t\t\t}\n\t\t\t\tconst quadOpts = {\n\t\t\t\t\tposition: [\n\t\t\t\t\t\tlocalX + layerW * .5,\n\t\t\t\t\t\tlocalY + layerH * .5,\n\t\t\t\t\t\ttarget?.z ?? lop.z ?? 0\n\t\t\t\t\t],\n\t\t\t\t\twidth: layerW,\n\t\t\t\t\theight: layerH,\n\t\t\t\t\ttextureExtent: [layerW / texW, layerH / texH],\n\t\t\t\t\trotation: [\n\t\t\t\t\t\ttarget?.rotateX ?? lop.rotateX ?? 0,\n\t\t\t\t\t\ttarget?.rotateY ?? lop.rotateY ?? 0,\n\t\t\t\t\t\t(target?.rotateZ ?? lop.rotateZ ?? 0) !== 0 ? target?.rotateZ ?? lop.rotateZ ?? 0 : rotation\n\t\t\t\t\t],\n\t\t\t\t\tscale: [\n\t\t\t\t\t\tscale$1,\n\t\t\t\t\t\tscale$1,\n\t\t\t\t\t\ttarget?.scaleZ ?? lop.scaleZ ?? 1\n\t\t\t\t\t],\n\t\t\t\t\tanchor: [lop.anchorX ?? .5, lop.anchorY ?? .5],\n\t\t\t\t\tborderRadius: br,\n\t\t\t\t\tborderWidth: lop.borderWidth,\n\t\t\t\t\tborderColor: lop.borderColor,\n\t\t\t\t\topacity: layerOpacity,\n\t\t\t\t\ttwoSided: target?.twoSided ?? lop.twoSided ?? true,\n\t\t\t\t\tmaterial: target?.material ?? lop.material,\n\t\t\t\t\tshininess: target?.shininess ?? lop.shininess,\n\t\t\t\t\troughness: target?.roughness ?? lop.roughness,\n\t\t\t\t\tspecularIntensity: target?.specularIntensity ?? lop.specularIntensity,\n\t\t\t\t\tambientIntensity: target?.ambientIntensity ?? lop.ambientIntensity,\n\t\t\t\t\tmetallic: target?.metallic ?? lop.metallic,\n\t\t\t\t\t...surfaceProps(target, lop),\n\t\t\t\t\t...modelMatrix && { modelMatrix }\n\t\t\t\t};\n\t\t\t\tconst quadHasContent = layerHasRaster || Boolean(quadOpts.borderWidth && quadOpts.borderWidth > 0 && quadOpts.borderColor);\n\t\t\t\tif (!glyphBatches || quadHasContent) pending3DItems.push({\n\t\t\t\t\tkind: \"quad\",\n\t\t\t\t\ttexture: renderedTex,\n\t\t\t\t\topts: quadOpts\n\t\t\t\t});\n\t\t\t\tif (glyphBatches && glyphBatches.length > 0) pending3DItems.push({\n\t\t\t\t\tkind: \"slug\",\n\t\t\t\t\tbatches: glyphBatches,\n\t\t\t\t\topts: quadOpts,\n\t\t\t\t\tstackBase: quadHasContent ? 1 : 0\n\t\t\t\t});\n\t\t\t\treturn {\n\t\t\t\t\tfinalTex: activeTex,\n\t\t\t\t\tfinalView: activeView\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (is3D && quad3D) {\n\t\t\t\tconst renderedTex = finalTex;\n\t\t\t\tif (borderResult) {\n\t\t\t\t\tconst borderPass = ctx.renderer.beginFrame(encoder, renderedTex.createView(), {\n\t\t\t\t\t\tr: 0,\n\t\t\t\t\t\tg: 0,\n\t\t\t\t\t\tb: 0,\n\t\t\t\t\t\ta: 0\n\t\t\t\t\t}, texW, texH, \"load\");\n\t\t\t\t\tctx.renderer.drawTexture(borderPass, borderResult.borderTex, {\n\t\t\t\t\t\tx: borderResult.ox,\n\t\t\t\t\t\ty: borderResult.oy,\n\t\t\t\t\t\twidth: borderResult.ow,\n\t\t\t\t\t\theight: borderResult.oh\n\t\t\t\t\t}, { opacity: 1 });\n\t\t\t\t\tborderPass.end();\n\t\t\t\t}\n\t\t\t\tif (blendMode === \"normal\" || blendMode === \"source-over\") drawProjectedQuad(ctx, encoder, activeView, renderedTex, quad3D, targetW, targetH, layerOpacity);\n\t\t\t\telse {\n\t\t\t\t\tconst layerExcludes = [\n\t\t\t\t\t\tactiveTex,\n\t\t\t\t\t\ttargetTexture,\n\t\t\t\t\t\trenderedTex,\n\t\t\t\t\t\t...excludes\n\t\t\t\t\t];\n\t\t\t\t\tif (borderResult) layerExcludes.push(borderResult.borderTex);\n\t\t\t\t\tconst layerTex = ctx.renderer.getTemporaryTexture(targetW, targetH, layerExcludes);\n\t\t\t\t\tconst layerView = layerTex.createView();\n\t\t\t\t\tctx.renderer.beginFrame(encoder, layerView, {\n\t\t\t\t\t\tr: 0,\n\t\t\t\t\t\tg: 0,\n\t\t\t\t\t\tb: 0,\n\t\t\t\t\t\ta: 0\n\t\t\t\t\t}, targetW, targetH, \"clear\").end();\n\t\t\t\t\tdrawProjectedQuad(ctx, encoder, layerView, renderedTex, quad3D, targetW, targetH, layerOpacity);\n\t\t\t\t\tactiveTex = ctx.renderer.composite(encoder, activeTex, layerTex, blendMode, [targetTexture, ...excludes]);\n\t\t\t\t\tactiveView = activeTex.createView();\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tfinalTex: activeTex,\n\t\t\t\t\tfinalView: activeView\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (blendMode === \"normal\" || blendMode === \"source-over\") {\n\t\t\t\tconst drawPass = ctx.renderer.beginFrame(encoder, activeView, {\n\t\t\t\t\tr: 0,\n\t\t\t\t\tg: 0,\n\t\t\t\t\tb: 0,\n\t\t\t\t\ta: 0\n\t\t\t\t}, targetW, targetH, \"load\");\n\t\t\t\tctx.renderer.pushTransform(layerMatrix);\n\t\t\t\tctx.renderer.drawTexture(drawPass, finalTex, {\n\t\t\t\t\tx: -blurPadX,\n\t\t\t\t\ty: -blurPadY,\n\t\t\t\t\twidth: layerW + blurPadX * 2,\n\t\t\t\t\theight: layerH + blurPadY * 2\n\t\t\t\t}, { opacity: layerOpacity });\n\t\t\t\tif (borderResult) ctx.renderer.drawTexture(drawPass, borderResult.borderTex, {\n\t\t\t\t\tx: borderResult.ox,\n\t\t\t\t\ty: borderResult.oy,\n\t\t\t\t\twidth: borderResult.ow,\n\t\t\t\t\theight: borderResult.oh\n\t\t\t\t}, { opacity: layerOpacity });\n\t\t\t\tctx.renderer.popTransform();\n\t\t\t\tdrawPass.end();\n\t\t\t} else {\n\t\t\t\tconst layerExcludes = [\n\t\t\t\t\tfinalTex,\n\t\t\t\t\tactiveTex,\n\t\t\t\t\ttargetTexture,\n\t\t\t\t\t...excludes\n\t\t\t\t];\n\t\t\t\tif (borderResult) layerExcludes.push(borderResult.borderTex);\n\t\t\t\tconst layerTex = ctx.renderer.getTemporaryTexture(targetW, targetH, layerExcludes);\n\t\t\t\tconst layerView = layerTex.createView();\n\t\t\t\tctx.renderer.beginFrame(encoder, layerView, {\n\t\t\t\t\tr: 0,\n\t\t\t\t\tg: 0,\n\t\t\t\t\tb: 0,\n\t\t\t\t\ta: 0\n\t\t\t\t}, targetW, targetH, \"clear\").end();\n\t\t\t\tconst drawPass = ctx.renderer.beginFrame(encoder, layerView, {\n\t\t\t\t\tr: 0,\n\t\t\t\t\tg: 0,\n\t\t\t\t\tb: 0,\n\t\t\t\t\ta: 0\n\t\t\t\t}, targetW, targetH, \"load\");\n\t\t\t\tctx.renderer.pushTransform(layerMatrix);\n\t\t\t\tctx.renderer.drawTexture(drawPass, finalTex, {\n\t\t\t\t\tx: -blurPadX,\n\t\t\t\t\ty: -blurPadY,\n\t\t\t\t\twidth: layerW + blurPadX * 2,\n\t\t\t\t\theight: layerH + blurPadY * 2\n\t\t\t\t}, { opacity: layerOpacity });\n\t\t\t\tif (borderResult) ctx.renderer.drawTexture(drawPass, borderResult.borderTex, {\n\t\t\t\t\tx: borderResult.ox,\n\t\t\t\t\ty: borderResult.oy,\n\t\t\t\t\twidth: borderResult.ow,\n\t\t\t\t\theight: borderResult.oh\n\t\t\t\t}, { opacity: layerOpacity });\n\t\t\t\tctx.renderer.popTransform();\n\t\t\t\tdrawPass.end();\n\t\t\t\tactiveTex = ctx.renderer.composite(encoder, activeTex, layerTex, blendMode, [targetTexture, ...excludes]);\n\t\t\t\tactiveView = activeTex.createView();\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tfinalTex: activeTex,\n\t\t\t\tfinalView: activeView\n\t\t\t};\n\t\t};\n\t\tconst initialExcludes = [\n\t\t\tcompTex,\n\t\t\ttargetTexture,\n\t\t\t...props.excludeTextures || []\n\t\t];\n\t\tcurrentCompTex = (await renderNodeTree(virtualMedia.children ?? [], compTex, compView, initialExcludes, 1, new DOMMatrix(), null, nativeWidth, nativeHeight, null, true)).finalTex;\n\t\tctx.renderer.popTransform();\n\t\tctx.renderer.popScissor();\n\t\tconst finalPass = ctx.renderer.beginFrame(encoder, targetView, {\n\t\t\tr: 0,\n\t\t\tg: 0,\n\t\t\tb: 0,\n\t\t\ta: 0\n\t\t}, targetWidth, targetHeight, \"load\");\n\t\tctx.renderer.drawTexture(finalPass, currentCompTex, {\n\t\t\tx: 0,\n\t\t\ty: 0,\n\t\t\twidth: props.containerWidth ?? targetWidth,\n\t\t\theight: props.containerHeight ?? targetHeight\n\t\t}, { opacity });\n\t\targs.pass = finalPass;\n\t}\n};\nfunction createBorderTexture(ctx, encoder, w, h, br, borderWidth, borderColor, strokeAlign, excludeTextures) {\n\tif (w <= 0 || h <= 0 || !borderColor || !borderWidth || borderWidth <= 0) return null;\n\tlet ox = 0;\n\tlet oy = 0;\n\tlet ow = w;\n\tlet oh = h;\n\tlet outerRadius = br;\n\tlet innerRadius = br;\n\tif (strokeAlign === \"inside\") {\n\t\tox = 0;\n\t\toy = 0;\n\t\tow = w;\n\t\toh = h;\n\t\touterRadius = br;\n\t\tinnerRadius = Math.max(0, br - borderWidth);\n\t} else if (strokeAlign === \"outside\") {\n\t\tox = -borderWidth;\n\t\toy = -borderWidth;\n\t\tow = w + 2 * borderWidth;\n\t\toh = h + 2 * borderWidth;\n\t\touterRadius = br + borderWidth;\n\t\tinnerRadius = br;\n\t} else {\n\t\tox = -borderWidth / 2;\n\t\toy = -borderWidth / 2;\n\t\tow = w + borderWidth;\n\t\toh = h + borderWidth;\n\t\touterRadius = br + borderWidth / 2;\n\t\tinnerRadius = Math.max(0, br - borderWidth / 2);\n\t}\n\tif (br <= 0) {\n\t\touterRadius = 0;\n\t\tinnerRadius = 0;\n\t}\n\tif (ow <= 0 || oh <= 0) return null;\n\tconst borderTexW = Math.ceil(ow);\n\tconst borderTexH = Math.ceil(oh);\n\tconst outerTex = ctx.renderer.getTemporaryTexture(borderTexW, borderTexH, excludeTextures);\n\tconst outerView = outerTex.createView();\n\tctx.renderer.beginFrame(encoder, outerView, {\n\t\tr: 0,\n\t\tg: 0,\n\t\tb: 0,\n\t\ta: 0\n\t}, borderTexW, borderTexH, \"clear\").end();\n\tconst outerDrawPass = ctx.renderer.beginFrame(encoder, outerView, {\n\t\tr: 0,\n\t\tg: 0,\n\t\tb: 0,\n\t\ta: 0\n\t}, borderTexW, borderTexH, \"load\");\n\tctx.renderer.drawRect(outerDrawPass, {\n\t\tx: 0,\n\t\ty: 0,\n\t\twidth: ow,\n\t\theight: oh\n\t}, borderColor, outerRadius);\n\touterDrawPass.end();\n\tconst innerW = ow - 2 * borderWidth;\n\tconst innerH = oh - 2 * borderWidth;\n\tif (innerW > 0 && innerH > 0) {\n\t\tconst innerTex = ctx.renderer.getTemporaryTexture(borderTexW, borderTexH, [outerTex, ...excludeTextures]);\n\t\tconst innerView = innerTex.createView();\n\t\tctx.renderer.beginFrame(encoder, innerView, {\n\t\t\tr: 0,\n\t\t\tg: 0,\n\t\t\tb: 0,\n\t\t\ta: 0\n\t\t}, borderTexW, borderTexH, \"clear\").end();\n\t\tconst innerDrawPass = ctx.renderer.beginFrame(encoder, innerView, {\n\t\t\tr: 0,\n\t\t\tg: 0,\n\t\t\tb: 0,\n\t\t\ta: 0\n\t\t}, borderTexW, borderTexH, \"load\");\n\t\tctx.renderer.drawRect(innerDrawPass, {\n\t\t\tx: borderWidth,\n\t\t\ty: borderWidth,\n\t\t\twidth: innerW,\n\t\t\theight: innerH\n\t\t}, {\n\t\t\tr: 1,\n\t\t\tg: 1,\n\t\t\tb: 1,\n\t\t\ta: 1\n\t\t}, innerRadius);\n\t\tinnerDrawPass.end();\n\t\treturn {\n\t\t\tborderTex: ctx.renderer.composite(encoder, outerTex, innerTex, \"mask-out\", excludeTextures),\n\t\t\tox,\n\t\t\toy,\n\t\t\tow,\n\t\t\toh\n\t\t};\n\t}\n\treturn {\n\t\tborderTex: outerTex,\n\t\tox,\n\t\toy,\n\t\tow,\n\t\toh\n\t};\n}\n\n//#endregion\n//#region src/renderers/audio-processor.ts\nconst compositorLayerAudioProcessor = async (channels, sampleRate, virtualMedia, ctx) => {\n\tconst op = virtualMedia.operation;\n\tif (!op) return;\n\tconst numChannels = channels.length;\n\tif (numChannels === 0) return;\n\tconst numSamples = channels[0].length;\n\tif (numSamples === 0) return;\n\tif (op.op === \"Compositor\") {\n\t\tconst master = resolveNumber(op.volume, 1);\n\t\tif (master === 1) return;\n\t\tfor (let c = 0; c < numChannels; c++) {\n\t\t\tconst ch = channels[c];\n\t\t\tfor (let i = 0; i < ch.length; i++) ch[i] *= master;\n\t\t}\n\t\treturn;\n\t}\n\tconst volume = resolveNumber(op.volume, 1);\n\tconst muted = resolveBoolean(op.muted, false);\n\tconst animation = op.animation;\n\tconst fps = ctx?.fps ?? 24;\n\tconst tracks = animation?.tracks || [];\n\tconst hasVolumeKeys = tracks.some((t) => t.prop === \"volume\" && t.keyframes && t.keyframes.length > 0);\n\tconst hasMutedKeys = tracks.some((t) => t.prop === \"muted\" && t.keyframes && t.keyframes.length > 0);\n\tif (!hasVolumeKeys && !hasMutedKeys) return;\n\tconst { tl, stub } = compileLayerTimeline(op.id || op.inputHandleId || \"layer\", animation, volume, muted, fps);\n\tconst startTimeSec = (ctx?.elapsedMs ?? 0) / 1e3;\n\tconst subChunkSize = 128;\n\ttl.seek(startTimeSec);\n\tlet lastVol = stub.volume;\n\tlet lastMuted = stub.muted;\n\tconst baseGain = muted ? 0 : volume;\n\tfor (let i = 0; i < numSamples; i += subChunkSize) {\n\t\tconst nextI = Math.min(numSamples, i + subChunkSize);\n\t\tconst tNext = startTimeSec + nextI / sampleRate;\n\t\ttl.seek(tNext);\n\t\tconst nextVol = stub.volume;\n\t\tconst nextMuted = stub.muted;\n\t\tfor (let j = i; j < nextI; j++) {\n\t\t\tconst p = (j - i) / (nextI - i);\n\t\t\tconst currentVol = Math.min(1, Math.max(0, lastVol + (nextVol - lastVol) * p));\n\t\t\tconst finalGain = (j - i < (nextI - i) / 2 ? lastMuted : nextMuted) ? 0 : currentVol;\n\t\t\tconst relativeGain = baseGain === 0 ? 0 : finalGain / baseGain;\n\t\t\tif (relativeGain !== 1) for (let c = 0; c < numChannels; c++) channels[c][j] *= relativeGain;\n\t\t}\n\t\tlastVol = nextVol;\n\t\tlastMuted = nextMuted;\n\t}\n};\naudioRegistry.register(\"CompositorLayer\", compositorLayerAudioProcessor);\n\n//#endregion\n//#region src/renderers/index.ts\nvar renderers_default = defineRenderer({ WebGPURenderer: CompositorWebGPURenderer });\n\n//#endregion\nexport { compileTimeline as a, seekTimeline as c, compileLayerTimeline as i, setCachedTimeline as l, Transform3DMath as n, getCachedTimeline as o, has3DTransform as r, mappedEase as s, renderers_default as t };\n//# sourceMappingURL=renderers-D6Ve5Vi1.mjs.map"],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import "./chunk-GBe2k3y8.mjs";
2
- import "./dist-hmWTJPik.mjs";
3
- import { t as renderers_default } from "./renderer-C1U85w9f.mjs";
4
-
5
- export { renderers_default as default };
@@ -1,5 +0,0 @@
1
- import "./chunk-GBe2k3y8.mjs";
2
- import "./dist-hmWTJPik.mjs";
3
- import { n as renderers_default, t as WebGPURenderer } from "./renderer-DCsTCvdo.mjs";
4
-
5
- export { WebGPURenderer, renderers_default as default };
@@ -1,5 +0,0 @@
1
- import "./chunk-GBe2k3y8.mjs";
2
- import "./dist-hmWTJPik.mjs";
3
- import { n as renderers_default, t as WebGPURenderer } from "./renderer-BCLmYH4S.mjs";
4
-
5
- export { WebGPURenderer, renderers_default as default };
@@ -1,5 +0,0 @@
1
- import "./chunk-GBe2k3y8.mjs";
2
- import "./dist-hmWTJPik.mjs";
3
- import { t as renderers_default } from "./renderer-DYbgd6Ye.mjs";
4
-
5
- export { renderers_default as default };
@@ -1,5 +0,0 @@
1
- import "./chunk-GBe2k3y8.mjs";
2
- import "./dist-hmWTJPik.mjs";
3
- import { t as renderers_default } from "./renderer-GapR_An3.mjs";
4
-
5
- export { renderers_default as default };
File without changes