framefields 2.8.0 → 2.9.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 (460) hide show
  1. package/README.md +30 -1
  2. package/dist/audio/index.d.mts +4 -4
  3. package/dist/audio/index.mjs +10 -10
  4. package/dist/{audio-CGVJlZb9.mjs → audio-BfQg37MW.mjs} +3 -3
  5. package/dist/{audio-CGVJlZb9.mjs.map → audio-BfQg37MW.mjs.map} +1 -1
  6. package/dist/{audio-CxAUxVyA.d.mts → audio-Ccpl9mjV.d.mts} +3 -3
  7. package/dist/{audio-CxAUxVyA.d.mts.map → audio-Ccpl9mjV.d.mts.map} +1 -1
  8. package/dist/cli/check-worker.mjs +44 -44
  9. package/dist/components/index.d.mts +10 -10
  10. package/dist/components/index.mjs +43 -43
  11. package/dist/{dist-CnFcSau0.mjs → dist-C1cCW7Bt.mjs} +2297 -213
  12. package/dist/dist-C1cCW7Bt.mjs.map +1 -0
  13. package/dist/{dist-C5eZw8ms.mjs → dist-C8Xq3zgx.mjs} +2 -2
  14. package/dist/{dist-C5eZw8ms.mjs.map → dist-C8Xq3zgx.mjs.map} +1 -1
  15. package/dist/effects/index.d.mts +4 -4
  16. package/dist/effects/index.mjs +35 -35
  17. package/dist/{effects-DdvkiI3u.mjs → effects-CemgqEPv.mjs} +2 -2
  18. package/dist/{effects-DdvkiI3u.mjs.map → effects-CemgqEPv.mjs.map} +1 -1
  19. package/dist/fonts/index.mjs +2 -2
  20. package/dist/{fonts-k_89s1HO.mjs → fonts-BW0pPcvJ.mjs} +2 -2
  21. package/dist/{fonts-k_89s1HO.mjs.map → fonts-BW0pPcvJ.mjs.map} +1 -1
  22. package/dist/{gpu-BoyykRdD.mjs → gpu-CMaa63nz.mjs} +2 -2
  23. package/dist/{gpu-BoyykRdD.mjs.map → gpu-CMaa63nz.mjs.map} +1 -1
  24. package/dist/{index-CPFKis94.d.mts → index-7Z9_a_iB.d.mts} +3 -3
  25. package/dist/{index-CPFKis94.d.mts.map → index-7Z9_a_iB.d.mts.map} +1 -1
  26. package/dist/{index-CFKMZDv1.d.mts → index-BIjMAW1h.d.mts} +2 -2
  27. package/dist/{index-CFKMZDv1.d.mts.map → index-BIjMAW1h.d.mts.map} +1 -1
  28. package/dist/{index-BukqOGDa.d.mts → index-CFoAmh7q.d.mts} +3 -3
  29. package/dist/{index-BukqOGDa.d.mts.map → index-CFoAmh7q.d.mts.map} +1 -1
  30. package/dist/{index-CPeaSZoz.d.mts → index-CJL0JAU8.d.mts} +2 -2
  31. package/dist/{index-CPeaSZoz.d.mts.map → index-CJL0JAU8.d.mts.map} +1 -1
  32. package/dist/{index-Ds9_v60R.d.mts → index-CZjrnylh.d.mts} +544 -336
  33. package/dist/index-CZjrnylh.d.mts.map +1 -0
  34. package/dist/{index-Ced1Ry4S.d.mts → index-D5UDyVMb.d.mts} +211 -9
  35. package/dist/index-D5UDyVMb.d.mts.map +1 -0
  36. package/dist/{index-B_nooAhS.d.mts → index-Du5YgdzM.d.mts} +53 -15
  37. package/dist/index-Du5YgdzM.d.mts.map +1 -0
  38. package/dist/index.d.mts +11 -11
  39. package/dist/index.mjs +50 -50
  40. package/dist/preview/index.d.mts +3 -3
  41. package/dist/preview/index.mjs +10 -10
  42. package/dist/{preview-DHqCrFhG.mjs → preview-BQVgn6Ho.mjs} +2 -2
  43. package/dist/{preview-DHqCrFhG.mjs.map → preview-BQVgn6Ho.mjs.map} +1 -1
  44. package/dist/preview-engine/audio.mjs +1 -1
  45. package/dist/preview-engine/{chunk-JGDZQCNU.mjs → chunk-2B722GXM.mjs} +1 -1
  46. package/dist/preview-engine/{chunk-GFW3D464.mjs → chunk-2DWY7UBV.mjs} +1 -1
  47. package/dist/preview-engine/{chunk-72DYOIMP.mjs → chunk-2PYTDN2C.mjs} +1 -1
  48. package/dist/preview-engine/{chunk-PF3SXQNV.mjs → chunk-34DL53D5.mjs} +1 -1
  49. package/dist/preview-engine/{chunk-GLXJOXBE.mjs → chunk-34RJ7GAS.mjs} +1 -1
  50. package/dist/preview-engine/{chunk-6OY4YLTC.mjs → chunk-35HMRW4I.mjs} +1 -1
  51. package/dist/preview-engine/chunk-374QY63R.mjs +1974 -0
  52. package/dist/preview-engine/{chunk-W26U6BP2.mjs → chunk-4WYM72ZN.mjs} +1 -1
  53. package/dist/preview-engine/{chunk-EQ4VBUWM.mjs → chunk-5AWAOMBR.mjs} +1 -1
  54. package/dist/preview-engine/{chunk-J4SHMCTG.mjs → chunk-6R3UJBL5.mjs} +1 -1
  55. package/dist/preview-engine/{chunk-VHGC72XP.mjs → chunk-73CNXGAK.mjs} +1 -1
  56. package/dist/preview-engine/{chunk-K5F4ZW6T.mjs → chunk-7U34VKNO.mjs} +1 -1
  57. package/dist/preview-engine/{chunk-KYOPOCO5.mjs → chunk-AHQCDTD6.mjs} +1 -1
  58. package/dist/preview-engine/{chunk-ADV2TIKA.mjs → chunk-BEYA25UZ.mjs} +1 -1
  59. package/dist/preview-engine/{chunk-RBDIRBEI.mjs → chunk-BJV2LBII.mjs} +1 -1
  60. package/dist/preview-engine/{chunk-LBJBBEKP.mjs → chunk-BVDWS3D2.mjs} +1 -1
  61. package/dist/preview-engine/chunk-BXPM5SJ3.mjs +1 -0
  62. package/dist/preview-engine/{chunk-NIPWL6Z5.mjs → chunk-C4M3B2Q2.mjs} +1 -1
  63. package/dist/preview-engine/{chunk-LLUFOFF4.mjs → chunk-CC4NNNIY.mjs} +1 -1
  64. package/dist/preview-engine/chunk-CCB3VTY2.mjs +39 -0
  65. package/dist/preview-engine/{chunk-NX66555S.mjs → chunk-CN2VLYLB.mjs} +1 -1
  66. package/dist/preview-engine/{chunk-SK7PUBTC.mjs → chunk-DMSZXG56.mjs} +1 -1
  67. package/dist/preview-engine/{chunk-WC257OBY.mjs → chunk-DVZITDQS.mjs} +1 -1
  68. package/dist/preview-engine/chunk-FKG27DVO.mjs +4 -0
  69. package/dist/preview-engine/{chunk-COZG35ZR.mjs → chunk-FTCEG3SF.mjs} +1 -1
  70. package/dist/preview-engine/{chunk-57LES7TL.mjs → chunk-GA4HNR44.mjs} +1 -1
  71. package/dist/preview-engine/chunk-GEUUXTDL.mjs +138 -0
  72. package/dist/preview-engine/{chunk-S4WNCEMO.mjs → chunk-GIICZZQI.mjs} +1 -1
  73. package/dist/preview-engine/{chunk-RTHU7REC.mjs → chunk-GRJJVSOV.mjs} +1 -1
  74. package/dist/preview-engine/{chunk-RGDM6PQ5.mjs → chunk-GZWA5QJS.mjs} +1 -1
  75. package/dist/preview-engine/{chunk-LZNNM5OB.mjs → chunk-H7BSN7V7.mjs} +1 -1
  76. package/dist/preview-engine/{chunk-JXUENEQO.mjs → chunk-HOV6DDBZ.mjs} +1 -1
  77. package/dist/preview-engine/{chunk-C6XLAJLL.mjs → chunk-JSYG6OWZ.mjs} +1 -1
  78. package/dist/preview-engine/{chunk-GZVPVOHB.mjs → chunk-K3C6GUQD.mjs} +1 -1
  79. package/dist/preview-engine/chunk-KOVN277Z.mjs +1 -0
  80. package/dist/preview-engine/{chunk-Y6TWMUJC.mjs → chunk-LVYVXVZO.mjs} +1 -1
  81. package/dist/preview-engine/chunk-MIEH74UH.mjs +480 -0
  82. package/dist/preview-engine/{chunk-AVDHZNIZ.mjs → chunk-OH5W5EL6.mjs} +1 -1
  83. package/dist/preview-engine/{chunk-22F33PPP.mjs → chunk-P5FKRQFU.mjs} +1 -1
  84. package/dist/preview-engine/{chunk-7X2AUKTU.mjs → chunk-PM2W4VLT.mjs} +1 -1
  85. package/dist/preview-engine/chunk-QCSVT73T.mjs +2403 -0
  86. package/dist/preview-engine/{chunk-523CTDOC.mjs → chunk-RJIAES3X.mjs} +1 -1
  87. package/dist/preview-engine/{chunk-DPQN7WYQ.mjs → chunk-S2ABWY5G.mjs} +1 -1
  88. package/dist/preview-engine/{chunk-G7JJ6HVL.mjs → chunk-SF37HXAH.mjs} +1 -1
  89. package/dist/preview-engine/{chunk-OKLYIQ5F.mjs → chunk-SPJPM43P.mjs} +1 -1
  90. package/dist/preview-engine/{chunk-UOTMBWBJ.mjs → chunk-TNJEZKXM.mjs} +1 -1
  91. package/dist/preview-engine/chunk-ULOFDFHJ.mjs +1 -0
  92. package/dist/preview-engine/{chunk-LLB3AGBQ.mjs → chunk-UQKPDGEH.mjs} +1 -1
  93. package/dist/preview-engine/{chunk-DISKQ5MH.mjs → chunk-UXYM2G6J.mjs} +1 -1
  94. package/dist/preview-engine/{chunk-U5YNECNG.mjs → chunk-VN36PRVD.mjs} +1 -1
  95. package/dist/preview-engine/{chunk-PMOKPVSD.mjs → chunk-VVE2QHVG.mjs} +1 -1
  96. package/dist/preview-engine/{chunk-PEUQRSIM.mjs → chunk-Y5K5LVOR.mjs} +1 -1
  97. package/dist/preview-engine/chunk-YGKO4NIU.mjs +1 -0
  98. package/dist/preview-engine/{chunk-PSEMCJBH.mjs → chunk-ZJ5SWTCW.mjs} +1 -1
  99. package/dist/preview-engine/chunk-ZY47XIRK.mjs +5 -0
  100. package/dist/preview-engine/components.mjs +1 -1
  101. package/dist/preview-engine/effects.mjs +1 -1
  102. package/dist/preview-engine/framefields.mjs +1 -1
  103. package/dist/preview-engine/player.mjs +1 -1
  104. package/dist/preview-engine/renderers-3BOQOUEU.mjs +1 -0
  105. package/dist/preview-engine/renderers-3M2FESR2.mjs +1 -0
  106. package/dist/preview-engine/{renderers-FEEIDQF3.mjs → renderers-4F7WLQD5.mjs} +1 -1
  107. package/dist/preview-engine/{renderers-OP6MKYRM.mjs → renderers-5KANN7XF.mjs} +1 -1
  108. package/dist/preview-engine/{renderers-TVRR7PGN.mjs → renderers-5TO2SXFR.mjs} +1 -1
  109. package/dist/preview-engine/{renderers-DR7UZ3QR.mjs → renderers-5UZ3YFBD.mjs} +1 -1
  110. package/dist/preview-engine/renderers-6LHIWKMZ.mjs +1 -0
  111. package/dist/preview-engine/{renderers-7F2KF5RE.mjs → renderers-6Z7DWAPH.mjs} +1 -1
  112. package/dist/preview-engine/renderers-77PDUMYI.mjs +1 -0
  113. package/dist/preview-engine/{renderers-3J3NCOAI.mjs → renderers-7C5RA3R5.mjs} +1 -1
  114. package/dist/preview-engine/renderers-7XHO6M3B.mjs +228 -0
  115. package/dist/preview-engine/{renderers-KJAOPYAU.mjs → renderers-A24KZK2Q.mjs} +1 -1
  116. package/dist/preview-engine/renderers-A43VCJ7X.mjs +1 -0
  117. package/dist/preview-engine/renderers-AKY464RY.mjs +1 -0
  118. package/dist/preview-engine/renderers-C5UO6PL5.mjs +1 -0
  119. package/dist/preview-engine/renderers-C64QSZO4.mjs +1 -0
  120. package/dist/preview-engine/renderers-CIRCR6NG.mjs +1 -0
  121. package/dist/preview-engine/renderers-CIWOPETY.mjs +1 -0
  122. package/dist/preview-engine/renderers-CUMVIVHI.mjs +1 -0
  123. package/dist/preview-engine/renderers-CZEZCELP.mjs +1 -0
  124. package/dist/preview-engine/{renderers-R3YVLWKV.mjs → renderers-ENMY4DKF.mjs} +1 -1
  125. package/dist/preview-engine/{renderers-AAENCA7X.mjs → renderers-FSI5KNGZ.mjs} +1 -1
  126. package/dist/preview-engine/renderers-FSQMWHQM.mjs +1 -0
  127. package/dist/preview-engine/renderers-FZEW5C23.mjs +1 -0
  128. package/dist/preview-engine/renderers-HCET2IML.mjs +1 -0
  129. package/dist/preview-engine/{renderers-LBX7GPDU.mjs → renderers-IHGAWLUF.mjs} +1 -1
  130. package/dist/preview-engine/renderers-IUOOC6K7.mjs +1 -0
  131. package/dist/preview-engine/{renderers-VXMR47WZ.mjs → renderers-KC6ZSKCW.mjs} +1 -1
  132. package/dist/preview-engine/renderers-KYYJLVIJ.mjs +1 -0
  133. package/dist/preview-engine/renderers-L4GE7WV3.mjs +1 -0
  134. package/dist/preview-engine/renderers-L6YDX6GS.mjs +1 -0
  135. package/dist/preview-engine/renderers-LRAFWKCO.mjs +1 -0
  136. package/dist/preview-engine/renderers-LU3XZWEB.mjs +1 -0
  137. package/dist/preview-engine/{renderers-4YYGKLDK.mjs → renderers-MD3PRFZL.mjs} +1 -1
  138. package/dist/preview-engine/renderers-MOEC2XZZ.mjs +1 -0
  139. package/dist/preview-engine/{renderers-RGDTRVZM.mjs → renderers-NCGH2WWJ.mjs} +1 -1
  140. package/dist/preview-engine/renderers-ND2WV4K3.mjs +1 -0
  141. package/dist/preview-engine/renderers-NJ5CWVVH.mjs +1 -0
  142. package/dist/preview-engine/renderers-NKXYPR3V.mjs +1 -0
  143. package/dist/preview-engine/{renderers-WVQQZQ6Y.mjs → renderers-NUAI4TO5.mjs} +1 -1
  144. package/dist/preview-engine/renderers-NWR66CGK.mjs +1 -0
  145. package/dist/preview-engine/renderers-O22WTBRM.mjs +1 -0
  146. package/dist/preview-engine/renderers-O55BEDQZ.mjs +1 -0
  147. package/dist/preview-engine/renderers-PBBA7LQB.mjs +1 -0
  148. package/dist/preview-engine/{renderers-BL7Z3FTF.mjs → renderers-PIIEUKFE.mjs} +1 -1
  149. package/dist/preview-engine/renderers-PPZK6VEW.mjs +1 -0
  150. package/dist/preview-engine/renderers-Q6LJRZ7R.mjs +1 -0
  151. package/dist/preview-engine/{renderers-7TNEKJZS.mjs → renderers-QA2HKUJJ.mjs} +1 -1
  152. package/dist/preview-engine/renderers-RMEACSRL.mjs +1 -0
  153. package/dist/preview-engine/{renderers-AWRIELVX.mjs → renderers-RN2MHIFK.mjs} +1 -1
  154. package/dist/preview-engine/renderers-SEIAUKJF.mjs +1 -0
  155. package/dist/preview-engine/renderers-SP42LCSI.mjs +1 -0
  156. package/dist/preview-engine/{renderers-OE55O27K.mjs → renderers-T74CQCEN.mjs} +1 -1
  157. package/dist/preview-engine/renderers-T7SZA3BX.mjs +1 -0
  158. package/dist/preview-engine/{renderers-ZUQ2ZBYY.mjs → renderers-TGJSOKDY.mjs} +1 -1
  159. package/dist/preview-engine/renderers-TSBV4KPE.mjs +1 -0
  160. package/dist/preview-engine/{renderers-2SE5BLLB.mjs → renderers-U4M7ZCV4.mjs} +1 -1
  161. package/dist/preview-engine/{renderers-YEI4K4W4.mjs → renderers-V3AQO7AR.mjs} +1 -1
  162. package/dist/preview-engine/renderers-VADTDAHD.mjs +1 -0
  163. package/dist/preview-engine/renderers-VNNWI5C3.mjs +1 -0
  164. package/dist/preview-engine/{renderers-YYMRKHAA.mjs → renderers-WEYAHOBK.mjs} +1 -1
  165. package/dist/preview-engine/renderers-WZ75MLP3.mjs +1 -0
  166. package/dist/preview-engine/renderers-XB5R4UQA.mjs +1 -0
  167. package/dist/preview-engine/{renderers-YIVPMPQS.mjs → renderers-Y22VSOXF.mjs} +1 -1
  168. package/dist/preview-engine/{renderers-Y53D5CQ7.mjs → renderers-YBIUZDGQ.mjs} +1 -1
  169. package/dist/preview-engine/renderers-YESJR4O7.mjs +1 -0
  170. package/dist/preview-engine/renderers-YKSRZRRT.mjs +1 -0
  171. package/dist/preview-engine/{renderers-V4VML5IG.mjs → renderers-ZACSHGNZ.mjs} +1 -1
  172. package/dist/preview-engine/signals.mjs +1 -1
  173. package/dist/preview-engine/src-NGVAJYHC.mjs +8 -0
  174. package/dist/{program-CqQDWfSV.mjs → program-CKpKkllV.mjs} +5 -6
  175. package/dist/program-CKpKkllV.mjs.map +1 -0
  176. package/dist/renderer/index.d.mts +2 -2
  177. package/dist/renderer/index.mjs +2 -2
  178. package/dist/renderer--Ac-dg4A.mjs +5 -0
  179. package/dist/renderer--N7TMqzU.mjs +5 -0
  180. package/dist/{renderer-DYfNgEhK.mjs → renderer--fkmiVjl.mjs} +2 -2
  181. package/dist/{renderer-DYfNgEhK.mjs.map → renderer--fkmiVjl.mjs.map} +1 -1
  182. package/dist/{renderer-JDLYPnRh.mjs → renderer-1r-Uq-Ae.mjs} +2 -2
  183. package/dist/{renderer-JDLYPnRh.mjs.map → renderer-1r-Uq-Ae.mjs.map} +1 -1
  184. package/dist/renderer-2ecmdOae.mjs +5 -0
  185. package/dist/{renderer-DZKZup7n.mjs → renderer-8QIwXh7O.mjs} +3 -3
  186. package/dist/{renderer-DZKZup7n.mjs.map → renderer-8QIwXh7O.mjs.map} +1 -1
  187. package/dist/{renderer-DCyp-jzQ.mjs → renderer-B-ur0Ej8.mjs} +3 -3
  188. package/dist/{renderer-DCyp-jzQ.mjs.map → renderer-B-ur0Ej8.mjs.map} +1 -1
  189. package/dist/{renderer-BD25uND8.mjs → renderer-B0piZg9r.mjs} +383 -171
  190. package/dist/renderer-B0piZg9r.mjs.map +1 -0
  191. package/dist/{renderer-Cn34qZC4.mjs → renderer-B2jjxsjO.mjs} +2 -2
  192. package/dist/{renderer-Cn34qZC4.mjs.map → renderer-B2jjxsjO.mjs.map} +1 -1
  193. package/dist/{renderer-DbO4xZBb.mjs → renderer-B39I6CQw.mjs} +3 -3
  194. package/dist/{renderer-DbO4xZBb.mjs.map → renderer-B39I6CQw.mjs.map} +1 -1
  195. package/dist/{renderer-CTr_Zi08.mjs → renderer-B522Dkdk.mjs} +3 -3
  196. package/dist/{renderer-CTr_Zi08.mjs.map → renderer-B522Dkdk.mjs.map} +1 -1
  197. package/dist/renderer-B5RJp5g-.mjs +5 -0
  198. package/dist/renderer-B7xyT1Vb.mjs +5 -0
  199. package/dist/{renderer-4a4koLCl.mjs → renderer-BAYTI6jj.mjs} +2 -2
  200. package/dist/{renderer-4a4koLCl.mjs.map → renderer-BAYTI6jj.mjs.map} +1 -1
  201. package/dist/{renderer-CCnrG0Pd.mjs → renderer-BAusZ6Vu.mjs} +2 -2
  202. package/dist/{renderer-CCnrG0Pd.mjs.map → renderer-BAusZ6Vu.mjs.map} +1 -1
  203. package/dist/renderer-BBeArN_x.mjs +5 -0
  204. package/dist/renderer-BCAZDu-r.mjs +5 -0
  205. package/dist/{renderer-bE6yZ_Ef.mjs → renderer-BF0hx_iJ.mjs} +3 -3
  206. package/dist/{renderer-bE6yZ_Ef.mjs.map → renderer-BF0hx_iJ.mjs.map} +1 -1
  207. package/dist/renderer-BJnhik7Y.mjs +5 -0
  208. package/dist/{renderer-kg8-ngnB.mjs → renderer-BPWDsufX.mjs} +2 -2
  209. package/dist/{renderer-kg8-ngnB.mjs.map → renderer-BPWDsufX.mjs.map} +1 -1
  210. package/dist/{renderer-DXu0nrzo.d.mts → renderer-BX7jS14r.d.mts} +2 -2
  211. package/dist/{renderer-DXu0nrzo.d.mts.map → renderer-BX7jS14r.d.mts.map} +1 -1
  212. package/dist/{renderer-DBN6SV8L.mjs → renderer-BXJXziIt.mjs} +2 -2
  213. package/dist/{renderer-DBN6SV8L.mjs.map → renderer-BXJXziIt.mjs.map} +1 -1
  214. package/dist/{renderer-4F4FypvN.mjs → renderer-BdyopiLC.mjs} +2 -2
  215. package/dist/{renderer-4F4FypvN.mjs.map → renderer-BdyopiLC.mjs.map} +1 -1
  216. package/dist/{renderer-wH_l-jMH.mjs → renderer-Bfk6A7UO.mjs} +3 -3
  217. package/dist/{renderer-wH_l-jMH.mjs.map → renderer-Bfk6A7UO.mjs.map} +1 -1
  218. package/dist/{renderer-DYT4iPi-.mjs → renderer-BgO6BA_z.mjs} +2 -2
  219. package/dist/{renderer-DYT4iPi-.mjs.map → renderer-BgO6BA_z.mjs.map} +1 -1
  220. package/dist/{renderer-Dv5yE4LE.mjs → renderer-BlPqTEii.mjs} +2 -2
  221. package/dist/{renderer-Dv5yE4LE.mjs.map → renderer-BlPqTEii.mjs.map} +1 -1
  222. package/dist/{renderer-CuK1lPnA.mjs → renderer-BlvGcyAN.mjs} +2 -2
  223. package/dist/{renderer-CuK1lPnA.mjs.map → renderer-BlvGcyAN.mjs.map} +1 -1
  224. package/dist/{renderer-DX5ZpEBB.mjs → renderer-BpIF1QIE.mjs} +3 -3
  225. package/dist/{renderer-DX5ZpEBB.mjs.map → renderer-BpIF1QIE.mjs.map} +1 -1
  226. package/dist/renderer-BxRW8MZO.mjs +5 -0
  227. package/dist/renderer-C-lfsEAN.mjs +5 -0
  228. package/dist/{renderer-DRLtfxdW.mjs → renderer-C41U1tK6.mjs} +95 -16
  229. package/dist/renderer-C41U1tK6.mjs.map +1 -0
  230. package/dist/renderer-C6nOFN4-.mjs +5 -0
  231. package/dist/{renderer-CpEU-TRR.mjs → renderer-C7L8Ceqr.mjs} +2 -2
  232. package/dist/{renderer-CpEU-TRR.mjs.map → renderer-C7L8Ceqr.mjs.map} +1 -1
  233. package/dist/{renderer-BMnX_-PZ.mjs → renderer-C7eFJf0_.mjs} +3 -3
  234. package/dist/{renderer-BMnX_-PZ.mjs.map → renderer-C7eFJf0_.mjs.map} +1 -1
  235. package/dist/renderer-C84TSQmS.mjs +5 -0
  236. package/dist/renderer-C8_6YofT.mjs +5 -0
  237. package/dist/{renderer-CeIXVu9F.mjs → renderer-CCycwCEB.mjs} +2 -2
  238. package/dist/{renderer-CeIXVu9F.mjs.map → renderer-CCycwCEB.mjs.map} +1 -1
  239. package/dist/{renderer-CNVzJIBz.mjs → renderer-CHr7MiYW.mjs} +3 -3
  240. package/dist/{renderer-CNVzJIBz.mjs.map → renderer-CHr7MiYW.mjs.map} +1 -1
  241. package/dist/renderer-COR66Sby.mjs +3 -0
  242. package/dist/renderer-COb3tOPG.mjs +5 -0
  243. package/dist/{renderer-Crl8q_vD.mjs → renderer-CQvmbRQ5.mjs} +3 -3
  244. package/dist/{renderer-Crl8q_vD.mjs.map → renderer-CQvmbRQ5.mjs.map} +1 -1
  245. package/dist/renderer-CSCIzaLy.mjs +5 -0
  246. package/dist/{renderer-DO15Nj-w.mjs → renderer-CYC32bDW.mjs} +3 -3
  247. package/dist/{renderer-DO15Nj-w.mjs.map → renderer-CYC32bDW.mjs.map} +1 -1
  248. package/dist/{renderer-NvGahExL.mjs → renderer-CcvvoKiZ.mjs} +3 -3
  249. package/dist/{renderer-NvGahExL.mjs.map → renderer-CcvvoKiZ.mjs.map} +1 -1
  250. package/dist/{renderer-vVKNp3ri.mjs → renderer-CiQhD8Gg.mjs} +3 -3
  251. package/dist/{renderer-vVKNp3ri.mjs.map → renderer-CiQhD8Gg.mjs.map} +1 -1
  252. package/dist/renderer-CmI4c8MS.mjs +5 -0
  253. package/dist/{renderer-Sj11W1xq.mjs → renderer-CpUJBOfb.mjs} +2 -2
  254. package/dist/renderer-CqVltdX9.mjs +5 -0
  255. package/dist/{renderer-j-3XB8YI.mjs → renderer-CwFqqpWY.mjs} +3 -3
  256. package/dist/{renderer-j-3XB8YI.mjs.map → renderer-CwFqqpWY.mjs.map} +1 -1
  257. package/dist/renderer-D-FpMzLY.mjs +5 -0
  258. package/dist/renderer-D-Oyn9mG.mjs +5 -0
  259. package/dist/renderer-D2QrkA8_.mjs +5 -0
  260. package/dist/{renderer-ClxmV_id.mjs → renderer-D47AEJE_.mjs} +2 -2
  261. package/dist/{renderer-ClxmV_id.mjs.map → renderer-D47AEJE_.mjs.map} +1 -1
  262. package/dist/{renderer-BrXkb-9N.mjs → renderer-D61B9bXF.mjs} +2 -2
  263. package/dist/{renderer-BrXkb-9N.mjs.map → renderer-D61B9bXF.mjs.map} +1 -1
  264. package/dist/renderer-D64r4iN-.mjs +5 -0
  265. package/dist/{renderer-DXsV3mZD.mjs → renderer-D7Al3_-5.mjs} +3 -3
  266. package/dist/{renderer-DXsV3mZD.mjs.map → renderer-D7Al3_-5.mjs.map} +1 -1
  267. package/dist/{renderer-Bw3tlr9I.mjs → renderer-D7r6onRT.mjs} +2 -2
  268. package/dist/{renderer-Bw3tlr9I.mjs.map → renderer-D7r6onRT.mjs.map} +1 -1
  269. package/dist/{renderer-Dypn26aP.mjs → renderer-D8bBHrWC.mjs} +3 -3
  270. package/dist/{renderer-Dypn26aP.mjs.map → renderer-D8bBHrWC.mjs.map} +1 -1
  271. package/dist/renderer-DCq6YkgP.mjs +5 -0
  272. package/dist/{renderer-BHwbnT6S.mjs → renderer-DDEkFbVI.mjs} +3 -3
  273. package/dist/{renderer-BHwbnT6S.mjs.map → renderer-DDEkFbVI.mjs.map} +1 -1
  274. package/dist/renderer-DDHG3GdR.mjs +5 -0
  275. package/dist/{renderer-DqMZiy5N.mjs → renderer-DEmYyaqj.mjs} +2 -2
  276. package/dist/{renderer-DqMZiy5N.mjs.map → renderer-DEmYyaqj.mjs.map} +1 -1
  277. package/dist/{renderer-CyELq6P6.mjs → renderer-DF-yvIrV.mjs} +2 -2
  278. package/dist/{renderer-CyELq6P6.mjs.map → renderer-DF-yvIrV.mjs.map} +1 -1
  279. package/dist/{renderer-XnWe1hSL.mjs → renderer-DFzI3yI_.mjs} +2 -2
  280. package/dist/{renderer-XnWe1hSL.mjs.map → renderer-DFzI3yI_.mjs.map} +1 -1
  281. package/dist/{renderer-Cx2Sw9Ib.mjs → renderer-DIw3UtEU.mjs} +3 -3
  282. package/dist/{renderer-Cx2Sw9Ib.mjs.map → renderer-DIw3UtEU.mjs.map} +1 -1
  283. package/dist/{renderer-D_Mf-Zft.d.mts → renderer-DKgPVOLL.d.mts} +2 -2
  284. package/dist/{renderer-D_Mf-Zft.d.mts.map → renderer-DKgPVOLL.d.mts.map} +1 -1
  285. package/dist/renderer-DMdNfcud.mjs +6 -0
  286. package/dist/{renderer-CaRPsrbX.mjs → renderer-DMvmf3T2.mjs} +2 -2
  287. package/dist/{renderer-jvgqy4Td.mjs → renderer-DNQvOrkY.mjs} +3 -3
  288. package/dist/{renderer-jvgqy4Td.mjs.map → renderer-DNQvOrkY.mjs.map} +1 -1
  289. package/dist/{renderer-DB7PM7nZ.mjs → renderer-DO-KbpYZ.mjs} +3 -3
  290. package/dist/{renderer-DB7PM7nZ.mjs.map → renderer-DO-KbpYZ.mjs.map} +1 -1
  291. package/dist/{renderer-CQkZUsvc.mjs → renderer-DTqDy2m9.mjs} +3 -3
  292. package/dist/{renderer-CQkZUsvc.mjs.map → renderer-DTqDy2m9.mjs.map} +1 -1
  293. package/dist/{renderer-DPUULdjh.mjs → renderer-DVCJjVn7.mjs} +2 -2
  294. package/dist/{renderer-DPUULdjh.mjs.map → renderer-DVCJjVn7.mjs.map} +1 -1
  295. package/dist/{renderer-C7SYbHgB.mjs → renderer-DX41niRU.mjs} +2 -2
  296. package/dist/{renderer-C7SYbHgB.mjs.map → renderer-DX41niRU.mjs.map} +1 -1
  297. package/dist/{renderer-BYIa_hnS.mjs → renderer-DXEWbnRF.mjs} +3 -3
  298. package/dist/{renderer-BYIa_hnS.mjs.map → renderer-DXEWbnRF.mjs.map} +1 -1
  299. package/dist/renderer-DZQXZ4lK.mjs +5 -0
  300. package/dist/{renderer-iA7rxZmR.mjs → renderer-DbRZe0Re.mjs} +3 -3
  301. package/dist/{renderer-iA7rxZmR.mjs.map → renderer-DbRZe0Re.mjs.map} +1 -1
  302. package/dist/renderer-DczJJLA1.mjs +5 -0
  303. package/dist/renderer-DfqJj9oe.mjs +5 -0
  304. package/dist/renderer-DgO9ihVJ.mjs +5 -0
  305. package/dist/renderer-DhgnQZYb.mjs +5 -0
  306. package/dist/{renderer-l-K6iZLC.mjs → renderer-DiY70S8S.mjs} +3 -3
  307. package/dist/{renderer-l-K6iZLC.mjs.map → renderer-DiY70S8S.mjs.map} +1 -1
  308. package/dist/renderer-DjxKjHMf.mjs +5 -0
  309. package/dist/{renderer-Qd-HCwKj.mjs → renderer-DkRSZg5g.mjs} +3 -3
  310. package/dist/{renderer-Qd-HCwKj.mjs.map → renderer-DkRSZg5g.mjs.map} +1 -1
  311. package/dist/{renderer-CaE0rp9j.mjs → renderer-DmkWrWAk.mjs} +2 -2
  312. package/dist/{renderer-CaE0rp9j.mjs.map → renderer-DmkWrWAk.mjs.map} +1 -1
  313. package/dist/{renderer-BUV6IH0o.mjs → renderer-DpruWmZU.mjs} +2 -2
  314. package/dist/{renderer-BUV6IH0o.mjs.map → renderer-DpruWmZU.mjs.map} +1 -1
  315. package/dist/renderer-DqLA5cdR.mjs +5 -0
  316. package/dist/{renderer-DfTnsfy9.mjs → renderer-DqvoMLca.mjs} +3 -3
  317. package/dist/{renderer-DfTnsfy9.mjs.map → renderer-DqvoMLca.mjs.map} +1 -1
  318. package/dist/{renderer-Dhi0Q1cI.mjs → renderer-DsEyjwfT.mjs} +70 -70
  319. package/dist/{renderer-Dhi0Q1cI.mjs.map → renderer-DsEyjwfT.mjs.map} +1 -1
  320. package/dist/renderer-Dudp6ZlH.mjs +5 -0
  321. package/dist/{renderer-Bw5jGUo5.mjs → renderer-EaLUCobW.mjs} +2 -2
  322. package/dist/{renderer-Bw5jGUo5.mjs.map → renderer-EaLUCobW.mjs.map} +1 -1
  323. package/dist/{renderer-Ca-LoeJh.mjs → renderer-GBmWjBvy.mjs} +2 -2
  324. package/dist/{renderer-Ca-LoeJh.mjs.map → renderer-GBmWjBvy.mjs.map} +1 -1
  325. package/dist/{renderer-DS-Gv-3w.mjs → renderer-Lth37j17.mjs} +2 -2
  326. package/dist/{renderer-BlUfAZyK.mjs → renderer-SSBL4M1o.mjs} +3 -3
  327. package/dist/{renderer-BlUfAZyK.mjs.map → renderer-SSBL4M1o.mjs.map} +1 -1
  328. package/dist/{renderer-DSM5c7UA.mjs → renderer-SWr3vbrV.mjs} +2 -2
  329. package/dist/{renderer-DSM5c7UA.mjs.map → renderer-SWr3vbrV.mjs.map} +1 -1
  330. package/dist/{renderer-BLrhcSex.mjs → renderer-WCZu2Rf5.mjs} +3 -3
  331. package/dist/{renderer-BLrhcSex.mjs.map → renderer-WCZu2Rf5.mjs.map} +1 -1
  332. package/dist/{renderer-D7FuHXiz.mjs → renderer-Xv6GfNUI.mjs} +2 -2
  333. package/dist/{renderer-D7FuHXiz.mjs.map → renderer-Xv6GfNUI.mjs.map} +1 -1
  334. package/dist/renderer-_jC5KIT1.mjs +5 -0
  335. package/dist/{renderer-8pS82_mX.mjs → renderer-bAKUeHF3.mjs} +3 -3
  336. package/dist/{renderer-8pS82_mX.mjs.map → renderer-bAKUeHF3.mjs.map} +1 -1
  337. package/dist/renderer-cTgAuVmJ.mjs +5 -0
  338. package/dist/{renderer-DjWBBISJ.mjs → renderer-cod5Ona9.mjs} +2 -2
  339. package/dist/{renderer-C55eLbl1.mjs → renderer-g_vrrAQU.mjs} +2 -2
  340. package/dist/{renderer-C55eLbl1.mjs.map → renderer-g_vrrAQU.mjs.map} +1 -1
  341. package/dist/{renderer-CT_aJBk2.mjs → renderer-hSCfnvaK.mjs} +3 -3
  342. package/dist/{renderer-CT_aJBk2.mjs.map → renderer-hSCfnvaK.mjs.map} +1 -1
  343. package/dist/{renderer-BuYRrBRf.mjs → renderer-ktWXVYka.mjs} +3 -3
  344. package/dist/{renderer-BuYRrBRf.mjs.map → renderer-ktWXVYka.mjs.map} +1 -1
  345. package/dist/renderer-nVKDvDLO.mjs +5 -0
  346. package/dist/{renderer-7Tx-L9Vf.mjs → renderer-oKRF4A0M.mjs} +2 -2
  347. package/dist/{renderer-7Tx-L9Vf.mjs.map → renderer-oKRF4A0M.mjs.map} +1 -1
  348. package/dist/{renderer-fv9WvK0d.mjs → renderer-pHWEHDnM.mjs} +3 -3
  349. package/dist/{renderer-fv9WvK0d.mjs.map → renderer-pHWEHDnM.mjs.map} +1 -1
  350. package/dist/renderer-pZ6_pUo1.mjs +5 -0
  351. package/dist/{renderer-DsGE9qtz.mjs → renderer-sCovEubT.mjs} +3 -3
  352. package/dist/{renderer-DsGE9qtz.mjs.map → renderer-sCovEubT.mjs.map} +1 -1
  353. package/dist/{renderer-BcHpcLq3.mjs → renderer-sYSkIUfo.mjs} +3 -3
  354. package/dist/{renderer-BcHpcLq3.mjs.map → renderer-sYSkIUfo.mjs.map} +1 -1
  355. package/dist/{renderer-4GwADfB0.mjs → renderer-zXPVLRlD.mjs} +3 -3
  356. package/dist/{renderer-4GwADfB0.mjs.map → renderer-zXPVLRlD.mjs.map} +1 -1
  357. package/dist/{renderers-CP8CFWDs-fYqxoIKK.mjs → renderers-CP8CFWDs-DH2oktaC.mjs} +2 -2
  358. package/dist/{renderers-CP8CFWDs-fYqxoIKK.mjs.map → renderers-CP8CFWDs-DH2oktaC.mjs.map} +1 -1
  359. package/dist/signals/index.d.mts +5 -5
  360. package/dist/signals/index.mjs +4 -4
  361. package/dist/{src-DggYlKaX.mjs → src-CK5rGVbh.mjs} +664 -72
  362. package/dist/src-CK5rGVbh.mjs.map +1 -0
  363. package/package.json +67 -58
  364. package/dist/dist-CnFcSau0.mjs.map +0 -1
  365. package/dist/index-B_nooAhS.d.mts.map +0 -1
  366. package/dist/index-Ced1Ry4S.d.mts.map +0 -1
  367. package/dist/index-Ds9_v60R.d.mts.map +0 -1
  368. package/dist/preview-engine/chunk-3OXRGTQ2.mjs +0 -2390
  369. package/dist/preview-engine/chunk-3U2A3RW4.mjs +0 -5
  370. package/dist/preview-engine/chunk-6E3JSPJN.mjs +0 -1
  371. package/dist/preview-engine/chunk-7EYVBRN3.mjs +0 -480
  372. package/dist/preview-engine/chunk-7WBDEZ2A.mjs +0 -1974
  373. package/dist/preview-engine/chunk-F4F2UDRX.mjs +0 -1
  374. package/dist/preview-engine/chunk-HPP52AQI.mjs +0 -4
  375. package/dist/preview-engine/chunk-PYSBWKIJ.mjs +0 -1
  376. package/dist/preview-engine/chunk-U2IFQMS3.mjs +0 -174
  377. package/dist/preview-engine/renderers-2GMY2ZNK.mjs +0 -1
  378. package/dist/preview-engine/renderers-2QJNKL7Q.mjs +0 -1
  379. package/dist/preview-engine/renderers-3OYU6O6F.mjs +0 -1
  380. package/dist/preview-engine/renderers-433Y2PCK.mjs +0 -1
  381. package/dist/preview-engine/renderers-4AGPGEL4.mjs +0 -1
  382. package/dist/preview-engine/renderers-54DBHGUW.mjs +0 -1
  383. package/dist/preview-engine/renderers-5M2O55U3.mjs +0 -1
  384. package/dist/preview-engine/renderers-6FVMDEAY.mjs +0 -1
  385. package/dist/preview-engine/renderers-6R7ZJ7DU.mjs +0 -1
  386. package/dist/preview-engine/renderers-75GCMFOD.mjs +0 -1
  387. package/dist/preview-engine/renderers-7LWLUCVQ.mjs +0 -1
  388. package/dist/preview-engine/renderers-BLDENIEV.mjs +0 -1
  389. package/dist/preview-engine/renderers-CCOEGTZJ.mjs +0 -228
  390. package/dist/preview-engine/renderers-CDB3YK3R.mjs +0 -1
  391. package/dist/preview-engine/renderers-D6D4XDFY.mjs +0 -1
  392. package/dist/preview-engine/renderers-DJVFQZYU.mjs +0 -1
  393. package/dist/preview-engine/renderers-DMXSV7VO.mjs +0 -1
  394. package/dist/preview-engine/renderers-EBMASIOE.mjs +0 -1
  395. package/dist/preview-engine/renderers-F262HDFS.mjs +0 -1
  396. package/dist/preview-engine/renderers-FMXKIF22.mjs +0 -1
  397. package/dist/preview-engine/renderers-GJKSZ6DR.mjs +0 -1
  398. package/dist/preview-engine/renderers-GR3RLYDZ.mjs +0 -1
  399. package/dist/preview-engine/renderers-GT3W2QIA.mjs +0 -1
  400. package/dist/preview-engine/renderers-IHC7HUK3.mjs +0 -1
  401. package/dist/preview-engine/renderers-J56ZGEVM.mjs +0 -1
  402. package/dist/preview-engine/renderers-KYM6352U.mjs +0 -1
  403. package/dist/preview-engine/renderers-LFXX6TWI.mjs +0 -1
  404. package/dist/preview-engine/renderers-NAHUPFPU.mjs +0 -1
  405. package/dist/preview-engine/renderers-NM3FZLHH.mjs +0 -1
  406. package/dist/preview-engine/renderers-NNB4BTJA.mjs +0 -1
  407. package/dist/preview-engine/renderers-OYVQW6QI.mjs +0 -1
  408. package/dist/preview-engine/renderers-P5RIFU3C.mjs +0 -1
  409. package/dist/preview-engine/renderers-QB7HJUTS.mjs +0 -1
  410. package/dist/preview-engine/renderers-QRQVOCDC.mjs +0 -1
  411. package/dist/preview-engine/renderers-QVFHJTZA.mjs +0 -1
  412. package/dist/preview-engine/renderers-R3WQIE4L.mjs +0 -1
  413. package/dist/preview-engine/renderers-SQBVOLG7.mjs +0 -1
  414. package/dist/preview-engine/renderers-TLXMYEDI.mjs +0 -1
  415. package/dist/preview-engine/renderers-X4S3WELJ.mjs +0 -1
  416. package/dist/preview-engine/renderers-XT7U25I7.mjs +0 -1
  417. package/dist/preview-engine/renderers-XVGLMBB3.mjs +0 -1
  418. package/dist/preview-engine/renderers-YUWU3TQZ.mjs +0 -1
  419. package/dist/preview-engine/renderers-ZNUD5OVO.mjs +0 -1
  420. package/dist/program-CqQDWfSV.mjs.map +0 -1
  421. package/dist/renderer-68XHoE2b.mjs +0 -5
  422. package/dist/renderer-AqUForA-.mjs +0 -5
  423. package/dist/renderer-B0J-uGBG.mjs +0 -5
  424. package/dist/renderer-BD25uND8.mjs.map +0 -1
  425. package/dist/renderer-BF2R0rwb.mjs +0 -5
  426. package/dist/renderer-BLrO9lqK.mjs +0 -5
  427. package/dist/renderer-BMy8jXhL.mjs +0 -5
  428. package/dist/renderer-BUxENp9L.mjs +0 -5
  429. package/dist/renderer-C-ebryrM.mjs +0 -5
  430. package/dist/renderer-C8Gbs3kr.mjs +0 -5
  431. package/dist/renderer-CFZvMv2-.mjs +0 -5
  432. package/dist/renderer-CGXW7mOs.mjs +0 -5
  433. package/dist/renderer-CNq6OGbb.mjs +0 -5
  434. package/dist/renderer-CO-Ddz6-.mjs +0 -5
  435. package/dist/renderer-CRdxAsP7.mjs +0 -5
  436. package/dist/renderer-CZLo0ALi.mjs +0 -5
  437. package/dist/renderer-CdvVUkhR.mjs +0 -5
  438. package/dist/renderer-Cjg7kmTq.mjs +0 -5
  439. package/dist/renderer-Cvz22ZSh.mjs +0 -3
  440. package/dist/renderer-CxKymhVa.mjs +0 -5
  441. package/dist/renderer-Cxlpu3pN.mjs +0 -5
  442. package/dist/renderer-Cz6qZ2Ii.mjs +0 -5
  443. package/dist/renderer-DDGvF2YA.mjs +0 -5
  444. package/dist/renderer-DFxtOKpi.mjs +0 -5
  445. package/dist/renderer-DGBNjTsB.mjs +0 -6
  446. package/dist/renderer-DRLtfxdW.mjs.map +0 -1
  447. package/dist/renderer-DUFcdZmw.mjs +0 -5
  448. package/dist/renderer-DUMu6EOH.mjs +0 -5
  449. package/dist/renderer-DdULrvJo.mjs +0 -5
  450. package/dist/renderer-DoaOOP6_.mjs +0 -5
  451. package/dist/renderer-DqmZqV-a.mjs +0 -5
  452. package/dist/renderer-LxTQ2E-G.mjs +0 -5
  453. package/dist/renderer-SpU-RddZ.mjs +0 -5
  454. package/dist/renderer-W6ahCM9z.mjs +0 -5
  455. package/dist/renderer-gGqtzw-S.mjs +0 -5
  456. package/dist/renderer-l0Wn1AoV.mjs +0 -5
  457. package/dist/renderer-rpXHvMZG.mjs +0 -5
  458. package/dist/renderer-twdsKOiz.mjs +0 -5
  459. package/dist/renderer-uJz-eIqO.mjs +0 -5
  460. package/dist/src-DggYlKaX.mjs.map +0 -1
@@ -1,4 +1,4 @@
1
- import{a as X,d as f,e as _,f as P,g as Y,h as D,j as U,k as V,m as B}from"./chunk-IB6GZJOL.mjs";import{d}from"./chunk-VVY4PG5E.mjs";import{A as R}from"./chunk-F4F2UDRX.mjs";import{g}from"./chunk-Y4NIR77Z.mjs";g();g();var j=0,Q=500;function q(t,e,r){return Math.min(r,Math.max(e,t))}var z=`
1
+ import{a as X,d as f,e as _,f as P,g as Y,h as D,j as U,k as V,m as B}from"./chunk-IB6GZJOL.mjs";import{d}from"./chunk-VVY4PG5E.mjs";import{g as R}from"./chunk-KOVN277Z.mjs";import{g}from"./chunk-Y4NIR77Z.mjs";g();g();var j=0,Q=500;function q(t,e,r){return Math.min(r,Math.max(e,t))}var z=`
2
2
  struct DisplacementUniforms {
3
3
  strengthX : f32,
4
4
  strengthY : f32,
@@ -1,4 +1,4 @@
1
- import{a as W,d as V,e as $,f as j,g as E,h as F,j as A,k as Y,m as q}from"./chunk-IB6GZJOL.mjs";import{d as p}from"./chunk-VVY4PG5E.mjs";import{A as O}from"./chunk-F4F2UDRX.mjs";import{g as C}from"./chunk-Y4NIR77Z.mjs";C();C();var ne=`
1
+ import{a as W,d as V,e as $,f as j,g as E,h as F,j as A,k as Y,m as q}from"./chunk-IB6GZJOL.mjs";import{d as p}from"./chunk-VVY4PG5E.mjs";import{g as O}from"./chunk-KOVN277Z.mjs";import{g as C}from"./chunk-Y4NIR77Z.mjs";C();C();var ne=`
2
2
  struct ColorKeyUniforms {
3
3
  similarity : f32,
4
4
  smoothness : f32,
@@ -1,4 +1,4 @@
1
- import{a as X,b as J,d as U,g as Z,j as ee,m as ae}from"./chunk-IB6GZJOL.mjs";import{A as Q}from"./chunk-F4F2UDRX.mjs";import{g as W}from"./chunk-Y4NIR77Z.mjs";W();W();function h(l){if(!l)return[1,1,1,1];let t=l.trim().replace(/^#/,"");if(t.length===3)t=t.split("").map(m=>m+m).join("")+"ff";else if(t.length===6)t=t+"ff";else if(t.length!==8)return[1,1,1,1];let s=parseInt(t.slice(0,2),16)/255,u=parseInt(t.slice(2,4),16)/255,n=parseInt(t.slice(4,6),16)/255,c=parseInt(t.slice(6,8),16)/255;return[Number.isFinite(s)?s:1,Number.isFinite(u)?u:1,Number.isFinite(n)?n:1,Number.isFinite(c)?c:1]}var A={normal:0,"source-over":0,multiply:1,screen:2,overlay:3,darken:4,lighten:5,"color-dodge":6,"color-burn":7,"hard-light":8,"soft-light":9,difference:10,exclusion:11,hue:12,saturation:13,color:14,luminosity:15,"mask-in":16,"destination-in":16,"mask-out":17,"destination-out":17,"source-in":18,"source-out":19,"source-atop":20,"destination-over":21,"destination-atop":22,lighter:23,copy:24,xor:25},ea={InnerBevel:0,OuterBevel:1,Emboss:2,PillowEmboss:3},aa={Smooth:0,ChiselHard:1,ChiselSoft:2},ta={outside:0,center:1,inside:2},z=24,ra=`
1
+ import{a as X,b as J,d as U,g as Z,j as ee,m as ae}from"./chunk-IB6GZJOL.mjs";import{g as Q}from"./chunk-KOVN277Z.mjs";import{g as W}from"./chunk-Y4NIR77Z.mjs";W();W();function h(l){if(!l)return[1,1,1,1];let t=l.trim().replace(/^#/,"");if(t.length===3)t=t.split("").map(m=>m+m).join("")+"ff";else if(t.length===6)t=t+"ff";else if(t.length!==8)return[1,1,1,1];let s=parseInt(t.slice(0,2),16)/255,u=parseInt(t.slice(2,4),16)/255,n=parseInt(t.slice(4,6),16)/255,c=parseInt(t.slice(6,8),16)/255;return[Number.isFinite(s)?s:1,Number.isFinite(u)?u:1,Number.isFinite(n)?n:1,Number.isFinite(c)?c:1]}var A={normal:0,"source-over":0,multiply:1,screen:2,overlay:3,darken:4,lighten:5,"color-dodge":6,"color-burn":7,"hard-light":8,"soft-light":9,difference:10,exclusion:11,hue:12,saturation:13,color:14,luminosity:15,"mask-in":16,"destination-in":16,"mask-out":17,"destination-out":17,"source-in":18,"source-out":19,"source-atop":20,"destination-over":21,"destination-atop":22,lighter:23,copy:24,xor:25},ea={InnerBevel:0,OuterBevel:1,Emboss:2,PillowEmboss:3},aa={Smooth:0,ChiselHard:1,ChiselSoft:2},ta={outside:0,center:1,inside:2},z=24,ra=`
2
2
  struct LayerStyleUniforms {
3
3
  // Drop Shadow (vec4 x 3)
4
4
  dropShadowColor : vec4<f32>,
@@ -1,4 +1,4 @@
1
- import{a as p}from"./chunk-GZVPVOHB.mjs";import{A as m,c as t,z as n}from"./chunk-F4F2UDRX.mjs";import{g as s}from"./chunk-Y4NIR77Z.mjs";s();s();var C=["threshold","attack","hold","release","range"],I=()=>`
1
+ import{a as p}from"./chunk-K3C6GUQD.mjs";import{f as n,g as m}from"./chunk-KOVN277Z.mjs";import{c as t}from"./chunk-ULOFDFHJ.mjs";import{g as s}from"./chunk-Y4NIR77Z.mjs";s();s();var C=["threshold","attack","hold","release","range"],I=()=>`
2
2
  struct Uniforms {
3
3
  sampleRate : f32,
4
4
  threshold : f32,
@@ -1,4 +1,4 @@
1
- import{a as $e,b as lt,c as ut,d as dt,e as ft,f as ht,g as mt,h as gt,i as xt,j as yt,k as bt,l as wt,n as St}from"./chunk-HPP52AQI.mjs";import{b as Ge}from"./chunk-P4Y3PMJF.mjs";import{d as at}from"./chunk-VVY4PG5E.mjs";import{h as st,i as ct,j as L,x as be}from"./chunk-BJXNKMSY.mjs";import{a as de}from"./chunk-354GX6IB.mjs";import{f as Re,g as we}from"./chunk-Y4NIR77Z.mjs";we();function Et(t){return typeof t=="object"&&t!==null&&typeof t.get=="function"}function Fe(t,n){return Et(t)?t.get(n):t}function Ct(t,n){return t.map(e=>{let i={...e,text:String(Fe(e.text,n)??"")};return e.fontSize!==void 0&&(i.fontSize=Number(Fe(e.fontSize,n))),e.fill!==void 0&&(i.fill=String(Fe(e.fill,n))),e.opacity!==void 0&&(i.opacity=Number(Fe(e.opacity,n))),e.mark&&(i.mark={...e.mark,background:String(Fe(e.mark.background,n))}),i})}function zt(t){let n="";for(let e of t)n+=typeof e.text=="string"?e.text:"";return n}function Mt(t,n){let e=[],i=0;for(let[r,c]of t.entries()){if(i>=n.length)break;let d=typeof c.text=="string"?c.text.length:0,u=r===t.length-1?n.length:i+d;u>i&&e.push({...c,text:n.slice(i,u)}),i=u}return e}we();function Xt(t,n,e,i,r=0,c=0){let d=at.getChannelSamples(n,"primary");if(d&&d.length>0){let m=i>0?i:24,C=e/m,h=r!==0?c*r/(2*Math.PI):0,k=Math.max(0,C+h),a=Math.max(0,Math.min(d.length-1,Math.round(k*m)));return Number(d[a])||0}if(!t)return 0;let u=t[n];if(u==null)return 0;if(typeof u=="number")return u;if(typeof u=="function")return Number(u(e,i))||0;if(typeof u=="object"){let m=u;if(typeof m.get=="function"){let C=i>0?e/i:0,h=r!==0?c*r/(2*Math.PI):0;return Number(m.get({frame:e,fps:i,time:C+h}))||0}if(Array.isArray(m.samples)||ArrayBuffer.isView(m.samples)){let C=m.samples,h=Math.max(0,Math.min(C.length-1,Math.round(e)));return Number(C[h])||0}}return 0}function It(t){return t<.5?2*t*t:1-(-2*t+2)**2/2}function Yt(t){let n=0;for(let e=0;e<t.length;e++)n=t.charCodeAt(e)+((n<<5)-n);return()=>{let e=Math.sin(n++)*1e4;return e-Math.floor(e)}}function Gt(t,n){let e=Yt(n),i=Array.from({length:t},(r,c)=>c);for(let r=i.length-1;r>0;r--){let c=Math.floor(e()*(r+1)),d=i[r];i[r]=i[c],i[c]=d}return i}function jt(t,n,e){let i=`${n}-${e}`,r=L.emojiTextureCache.get(i);if(r)return r;let c=4,d=Math.max(16,Math.ceil(e*1.5*c)),u=Math.ceil(d/4)*4;if(!!globalThis.__IS_HEADLESS_RENDERER__||typeof window>"u"||typeof globalThis.document>"u")return L.hasEmojiFont()&&console.warn(`[getOrCreateEmojiTexture] Emoji "${n}" not preloaded. Returning fallback dummy texture.`),r=t.createTexture({label:`Emoji-Dummy-${n}`,size:[1,1],format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING}),L.emojiTextureCache.set(i,r),r;let C=new OffscreenCanvas(u,u),h=C.getContext("2d");return h&&(h.font=`${e*c}px "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif`,h.textBaseline="middle",h.textAlign="center",h.fillText(n,u/2,u/2)),r=t.createTexture({label:`Emoji-${n}`,size:[u,u],format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT}),t.queue.copyExternalImageToTexture({source:C},{texture:r,premultipliedAlpha:!0},[u,u]),L.emojiTextureCache.set(i,r),r}function je(t,n,e,i,r,c,d){if(!d)return{p_in:1,p_out:1};let u=1;if(e>0){let C=e*.5,h=c>1?e*.5/(c-1):0,k=r*h,a=k+C;t<k?u=0:t>a?u=1:u=(t-k)/(a-k)}let m=1;if(i>0){let C=n-i;if(t>C){let h=i*.5,k=c>1?i*.5/(c-1):0,a=C+r*k,A=a+h;t<a?m=1:t>A?m=0:m=1-(t-a)/(A-a)}}return{p_in:u,p_out:m}}function _e(t,n,e,i,r,c,d,u,m,C,h,k,a){let A=e?It(t):t,w=e?It(n):n,v=A*w;if(A<=0&&i!=="blur"||w<=0&&r!=="blur")return{opacity:0,transX:0,transY:0,rot:0,scale:1,blurAmount:0,visible:!1};let X=k;if(i==="fade"||i==="slideUp"||i==="blur"?X*=A:i==="appear"&&A<.5&&(X=0),r==="fade"||r==="slideUp"||r==="blur"?X*=w:r==="appear"&&w<.5&&(X=0),X<.001)return{opacity:0,transX:0,transY:0,rot:0,scale:1,blurAmount:0,visible:!1};let j=0,P=0,H=0,ee=1;i==="slideUp"&&d<m&&(P+=(1-A)*30),r==="slideUp"&&d>u-C&&(P-=(1-w)*30);let oe=a?1:Math.PI/180;c==="stack"?(ee=.8+.2*v,H=(1-v)*15*oe):c==="wave"?P+=10*Math.sin(d*.005-h*.5):c==="wiggle"?(j+=5*Math.sin(d*.008+h*1.7),P+=5*Math.cos(d*.006+h*1.3),H+=4*Math.sin(d*.005+h*2.1)*oe):c==="shuffle"&&(j+=3*Math.sin(d*.015+h*3.1),P+=3*Math.cos(d*.012+h*2.3),H+=8*Math.sin(d*.02+h*1.1)*oe);let x=0;return i==="blur"&&(x=Math.max(x,(1-A)*20)),r==="blur"&&(x=Math.max(x,(1-w)*20)),{opacity:X,transX:j,transY:P,rot:H,scale:ee,blurAmount:x,visible:!0}}var _t={linear:t=>t,none:t=>t,smoothstep:t=>t,"power1.out":t=>1-(1-t)**2,"quad.out":t=>1-(1-t)**2,"power1.in":t=>t**2,"quad.in":t=>t**2,"power1.inout":t=>t<.5?2*t*t:1-(-2*t+2)**2/2,"quad.inout":t=>t<.5?2*t*t:1-(-2*t+2)**2/2,"power2.out":t=>1-(1-t)**3,"cubic.out":t=>1-(1-t)**3,"power2.in":t=>t**3,"cubic.in":t=>t**3,"power2.inout":t=>t<.5?4*t**3:1-(-2*t+2)**3/2,"cubic.inout":t=>t<.5?4*t**3:1-(-2*t+2)**3/2,"power3.out":t=>1-(1-t)**4,"quart.out":t=>1-(1-t)**4,"power3.in":t=>t**4,"quart.in":t=>t**4,"power3.inout":t=>t<.5?8*t**4:1-(-2*t+2)**4/2,"quart.inout":t=>t<.5?8*t**4:1-(-2*t+2)**4/2,"power4.out":t=>1-(1-t)**5,"quint.out":t=>1-(1-t)**5,"power4.in":t=>t**5,"quint.in":t=>t**5,"sine.out":t=>Math.sin(t*Math.PI/2),"sine.in":t=>1-Math.cos(t*Math.PI/2),"sine.inout":t=>-(Math.cos(Math.PI*t)-1)/2,"expo.out":t=>t===1?1:1-2**(-10*t),"back.out":t=>1+2.70158*(t-1)**3+1.70158*(t-1)**2};function Ot(t,n){let e=Math.max(0,Math.min(1,n));if(!t)return e;let i=_t[t.toLowerCase().trim()];return i?i(e):e}function Ht(t,n,e){if(e<=0)return 0;let i=e>1?n/(e-1):.5,r=t.offset??0,c=(t.rangeStart??0)+r,d=(t.rangeEnd??1)+r,u=0;d<=c?u=i>=c?1:0:u=Math.max(0,Math.min(1,(i-c)/(d-c)));let m=u*u*(3-2*u);return Ot(t.easing??"power2.out",m)}function kt(t,n,e,i,r,c){let d=Math.max(1,e.charsCount??1),u=Math.max(1,e.wordsCount??1),m=Math.max(1,e.linesCount??1),C=t.selectors??[];if(C.length===0)return 1;let h=0;for(let k=0;k<C.length;k++){let a=C[k],A=0;if(a.type==="range"){let w=d,v=n.charIndex??0;a.basedOn==="words"?(w=u,v=n.wordIndex??0):a.basedOn==="lines"&&(w=m,v=n.lineIndex??0),a.randomizeOrder&&(v=bt(w,a.randomSeed??12345)[v%w]??v);let X=a.units==="index"?v:w>1?v/(w-1):.5,j=a.start??t.rangeStart??0,P=a.end??t.rangeEnd??(a.units==="index"?w:1),H=a.offset??t.offset??0;A=xt(X,j,P,H,a.shape??"smooth",a.easeHigh??0,a.easeLow??0)*(a.amount??1)}else if(a.type==="wiggly"){let w=c>0?r/c:0,v=(a.temporalPhaseDeg??0)*Math.PI/180,X=(a.spatialPhaseDeg??0)*Math.PI/180,j=w*(a.wigglesPerSecond??2)*2*Math.PI+v+X,P=yt(a.randomSeed??42,n.charIndex??0,j,a.correlation??.5),H=a.minAmount??-1,ee=a.maxAmount??1;A=H+(P*.5+.5)*(ee-H)}else if(a.type==="signal")A=Xt(i,a.signalId,r,c,a.phaseSpread??0,n.charIndex??0)*(a.multiplier??1)+(a.offset??0);else if(a.type==="expression"){let w=a,v=c>0?r/c:0,X={charIndex:n.charIndex??0,wordIndex:n.wordIndex??0,lineIndex:n.lineIndex??0,totalChars:d,totalWords:u,totalLines:m,frame:r,fps:c,time:v,signals:i};A=ft(w.expression,X)*(w.amount??1)}k===0?h=A:h=wt(h,A,a.mode??"add")}return h}function At(t,n,e,i,r=!1,c=0,d=24,u){if(!t||t.length===0)return i;let{transX:m,transY:C,rot:h,scale:k,scaleX:a,scaleY:A,opacity:w,blurAmount:v}=i,X=i.transZ??0,j=i.color,P=i.chromaticShift??0,H=i.dissolveProgress??0,ee=i.vfxParam??0,oe=i.skewM01??0,x=i.skewM10??0,fe=i.anchorConfig,le=i.fillOpacity??1,re=i.strokeWidth,U=i.strokeColor,ue=i.longShadow,he=i.lineSpacing,Z=i.lineAnchor,me=r?1:Math.PI/180,z=Math.max(1,e.charsCount??1),K=Math.max(1,e.wordsCount??1),ae=Math.max(1,e.linesCount??1);for(let ne of t)if("selectors"in ne&&Array.isArray(ne.selectors)){let ie=ne,l=ie.props??{},te=kt(ie,n,{charsCount:z,wordsCount:K,linesCount:ae},u,c,d),f=te,Y=1,q=1;if(l.spring){let b=(n.charIndex??0)*.035,D=Math.max(0,(d>0?c/d:0)-b);q=$e(D,l.spring.stiffness,l.spring.damping,l.spring.mass,l.spring.initialVelocity),Y=1-q,f=te*Y}if(f!==0||te!==0){if(l.x!==void 0&&(m+=l.x*f),l.y!==void 0&&(C+=l.y*f),l.scale!==void 0&&(k*=1+(l.scale-1)*f),l.scaleX!==void 0&&(a*=1+(l.scaleX-1)*f),l.scaleY!==void 0&&(A*=1+(l.scaleY-1)*f),l.rotation!==void 0&&(h+=l.rotation*me*f),l.rotationX!==void 0){let b=l.rotationX*f*Math.PI/180;A*=Math.max(.08,Math.abs(Math.cos(b)))}if(l.rotationY!==void 0){let b=l.rotationY*f*Math.PI/180;a*=Math.max(.08,Math.abs(Math.cos(b)))}if(l.rotationZ!==void 0&&(h+=l.rotationZ*me*f),l.translateZ!==void 0&&(X+=l.translateZ*f),l.skew!==void 0){let[,b,D]=lt(l.skew*f,l.skewAxis??0);oe+=b,x+=D}if(l.formation!==void 0){let b=ht(n.charIndex??0,z,l.formation),D=e.layoutCenter?.x??0,Q=e.layoutCenter?.y??0,xe=n.x??0,We=n.y??0,Ee=D+b.x,Xe=Q+b.y;if(m+=(Ee-xe)*f,C+=(Xe-We)*f,X+=b.z*f,b.rotX){let ye=b.rotX*f*Math.PI/180;A*=Math.max(.5,Math.abs(Math.cos(ye)))}if(b.rotY){let ye=b.rotY*f*Math.PI/180;a*=Math.max(.5,Math.abs(Math.cos(ye)))}b.rotZ&&(h+=b.rotZ*Math.PI/180*f),b.depthOpacity!==void 0&&(w*=1+(b.depthOpacity-1)*f)}if(l.anchor!==void 0&&(fe=l.anchor),l.opacity!==void 0&&(w*=1+(l.opacity-1)*f),l.blur!==void 0&&(v=Math.max(v,l.blur*f)),l.chromaticGlitch!==void 0){let b=(l.chromaticGlitch.redShiftX??0)*Math.max(0,f),D=l.chromaticGlitch.sliceProbability??.35,Q=Math.sin(c*17.13+(n.charIndex??0)*43.17),xe=Math.abs(Q-Math.floor(Q));xe<D&&(b+=(l.chromaticGlitch.sliceAmplitude??12)*(xe*2-1)),P+=b}if(l.particleDissolve!==void 0&&(H=Math.max(H,(l.particleDissolve.progress??0)*(l.spring?q:Math.max(0,f)))),l.longShadow!==void 0&&(ue=l.longShadow),l.audioSpectrum!==void 0){let b=gt(n.charIndex??0,z,l.audioSpectrum,u,c,d);l.audioSpectrum.scaleAxis==="scaleY"?A*=b:l.audioSpectrum.scaleAxis==="scaleX"?a*=b:k*=b}if(l.stroke!==void 0&&(l.stroke.fillOpacity!==void 0&&(le*=1-f+l.stroke.fillOpacity*f),l.stroke.strokeWidth!==void 0&&(re=(l.stroke.strokeWidth??0)*f),l.stroke.strokeColor&&(U=l.stroke.strokeColor)),l.lineSpacing!==void 0&&(he=l.lineSpacing*(l.spring?q:f),Z=l.lineAnchor??0),l.fillColor){let b=de(l.fillColor),D=j??{r:1,g:1,b:1,a:1},Q=te;j={r:D.r*(1-Q)+b.r*Q,g:D.g*(1-Q)+b.g*Q,b:D.b*(1-Q)+b.b*Q,a:D.a*(1-Q)+b.a*Q}}}}else{let ie=ne,l=n.charIndex??n.unitIndex??0,te=Math.max(1,e.charsCount??1);ie.unit==="word"?(l=n.wordIndex??0,te=Math.max(1,e.wordsCount??1)):ie.unit==="line"&&(l=n.lineIndex??0,te=Math.max(1,e.linesCount??1));let f=Ht(ie,l,te),Y=ie.transform;if(!Y||f<=0)continue;Y.x!==void 0&&(m+=Y.x*f),Y.y!==void 0&&(C+=Y.y*f),Y.rotation!==void 0&&(h+=Y.rotation*me*f),Y.scale!==void 0&&(k*=1+(Y.scale-1)*f),Y.scaleX!==void 0&&(a*=1+(Y.scaleX-1)*f);let q=1+((Y.scaleY??1)-1)*f;if(Y.rotationX){let b=Y.rotationX*f*Math.PI/180;q*=Math.cos(b)}if(A*=q,Y.opacity!==void 0&&(w*=1+(Y.opacity-1)*f),Y.blur!==void 0&&(v=Math.max(v,Y.blur*f)),Y.color){let b=de(Y.color),D=j??{r:1,g:1,b:1,a:1};j={r:D.r*(1-f)+b.r*f,g:D.g*(1-f)+b.g*f,b:D.b*(1-f)+b.b*f,a:D.a*(1-f)+b.a*f}}}return{transX:m,transY:C,transZ:X,rot:h,scale:k,scaleX:a,scaleY:A,opacity:Math.max(0,Math.min(1,w)),blurAmount:v,color:j,chromaticShift:P,dissolveProgress:H,vfxParam:ee,skewM01:oe,skewM10:x,anchorConfig:fe,fillOpacity:Math.max(0,Math.min(1,le)),strokeWidth:re,strokeColor:U,longShadow:ue,lineSpacing:he,lineAnchor:Z}}function pt(t,n,e){let i=e.fontFamily??"Inter";if(L.isFailed(i)&&(i="Inter"),L.isFailed(i))return;let r=e.fontSize??48,c=L.getFont(i,e.fontWeight,t.device,void 0,r,e.variableAxes),d=e.stroke&&e.strokeWidth&&e.strokeWidth>0,u=null;if(c&&d&&t.device){let o=e.strokeAlign==="outside"?2:1,y=(e.strokeWidth??0)*o*(c.unitsPerEm/r);u=L.getFont(i,e.fontWeight,t.device,y,r,e.variableAxes)??null}if(!c?.curvesTex||d&&!u?.curvesTex){let o=Ge(i);L.preloadSlugFont(t.device,i,o,void 0,e.renderId).catch(s=>{console.warn(`[drawParagraphNode] Failed to load Slug font for ${i}:`,s)});return}let m=e.letterSpacing??0,C=e.lineHeight!==void 0&&e.lineHeight<10?e.lineHeight*r:e.lineHeight??r*1.2,h=e.align??"start",k=e.direction??"auto",a=e.isCaption?0:e.textBackgroundColor?e.padding??0:0,A=e.text,w;if(e.typewriter){let o=e.fps??24,s=e.durationMs!==void 0?Math.round(e.durationMs/1e3*o):60;w=St(e.text,e.frame??0,0,s,e.typewriter.cadence,e.typewriter.scramble,e.typewriter.cursor?.blinkFrequency??2,e.typewriter.granularity??"character",e.textProgress),A=w.currentDisplayString}let v=w&&e.spans?.length?Mt(Ct(e.spans),A):e.spans,X=e.pathOptions?{...e.pathOptions,firstMargin:e.firstMargin!==void 0?e.firstMargin:e.pathOptions.firstMargin,lastMargin:e.lastMargin!==void 0?e.lastMargin:e.pathOptions.lastMargin,baselineShift:e.baselineShift!==void 0?e.baselineShift:e.pathOptions.baselineShift}:void 0,j,P;e.width!=null?(j=Math.max(0,e.width-a*2),P=be.measure(A,c,r,m,C,j,v,k)):(P=be.measure(A,c,r,m,C,void 0,v,k),j=P.width);let H=e.isCaption?e.dstRect.width:j,ee=e.animation?.applyBy??"word",x=(h==="left"||h==="start"&&!P.layout?.hasRtl)&&(H===void 0||H===j)&&!X&&ee==="word"&&!!P?.layout&&P.layout?P.layout:be.layout(A,c,r,m,C,j,h,ee,H,X,v,k),fe=e.verticalAlign??"top",le=e.height!=null&&!X&&!e.isCaption?e.height-(P.height+a*2):0,re={...e.dstRect,y:e.dstRect.y+(fe==="middle"?le/2:fe==="bottom"?le:0)},U=e.animation,ue=e.fontWeight==="bold"||typeof e.fontWeight=="number"&&e.fontWeight>=600||typeof e.fontWeight=="string"&&parseInt(e.fontWeight,10)>=600,he="hasTrueWeight"in c&&!!c.hasTrueWeight,Z=c;if(ue&&!he&&t.device){let o=ct(e.fontWeight),s=Math.max(0,(o-400)/500)*.055*r;if(s>0){let y=s*(c.unitsPerEm/r),S=L.getFont(i,400,t.device,y,r,e.variableAxes);S?.curvesTex&&(Z=S)}}let me=x.glyphs.length,z=e.elapsedMs!==void 0?e.elapsedMs:e.frame!==void 0&&e.fps!==void 0?e.frame/e.fps*1e3:0,K=e.durationMs!==void 0?e.durationMs:3e3,ae=e.isCaption?U?.in==="none"||!U?.in?0:K:U?.entranceMs?U.entranceMs:U?.in==="none"||!U?.in?0:K,ne=e.isCaption?0:U?.exitMs?U.exitMs:U?.out==="none"||!U?.out?0:K,ie=U?.in||"none",l=U?.out||"none",te=U?.kinetic||"none",f=U?.smoothing!==!1,Y=0;for(let o of x.glyphs)!o.isSpace&&o.unitIndex>Y&&(Y=o.unitIndex);let q=Y+1,b=te==="shuffle"||ie==="shuffle"?Gt(q,e.text):Array.from({length:q},(o,s)=>s);if(e.textBackgroundColor){let o=e.strokeRadius??e.borderRadius??8,s=0,y=e.opacity??1;if(e.isVideoMode===!1)s=y;else{for(let S of x.glyphs){if(S.isSpace)continue;let I=S.unitIndex,T=b[I]??I,{p_in:M,p_out:g}=je(z,K,ae,ne,T,q,!0),_=_e(M,g,f,ie,l,te,z,K,ae,ne,T,y,!1);_.visible&&_.opacity>s&&(s=_.opacity)}for(let S of x.emojis){let I=e.animation?.applyBy==="line"?0:Math.floor(S.x/(r+m)),T=b[I%q]??0,{p_in:M,p_out:g}=je(z,K,ae,ne,T,q,!0),_=_e(M,g,f,ie,l,te,z,K,ae,ne,T,y,!0);_.visible&&_.opacity>s&&(s=_.opacity)}}if(s>.001){let S=e.width!=null?e.width:P.width+a*2,I=e.height!=null?e.height:P.height+a*2;t.renderer.drawRRect(n,{rect:{x:e.dstRect.x,y:e.dstRect.y,width:S,height:I},rx:o,ry:o},e.textBackgroundColor,{opacity:s})}}if(x.marks&&x.marks.length>0)for(let o of x.marks){let s=o.borderRadius??4;t.renderer.drawRRect(n,{rect:{x:e.dstRect.x+a+o.x,y:re.y+a+o.y,width:o.width,height:o.height},rx:s,ry:s},o.background,{opacity:e.opacity??1})}let D=de(e.color??"white"),Q=de(e.highlightColor??"yellow"),xe=new Float32Array(x.glyphs.length),We=0,Ee=0;if(x.glyphs.length>0){let o=x.glyphs.filter(s=>!s.isSpace);o.length>0&&(We=(o[0].x+o[o.length-1].x)/2,Ee=(o[0].y+o[o.length-1].y)/2)}let Xe={charsCount:x.charsCount,wordsCount:x.wordsCount,linesCount:x.linesCount,layoutCenter:{x:We,y:Ee}};if(e.animators&&e.animators.length>0){for(let o of e.animators)if("selectors"in o&&Array.isArray(o.selectors)){let s=o;if(s.props?.tracking!==void 0&&s.props.tracking!==0){let y=s.props.tracking,S=new Map;for(let I=0;I<x.glyphs.length;I++){let M=x.glyphs[I].lineIndex??0,g=S.get(M);g||(g=[],S.set(M,g)),g.push(I)}for(let I of S.values()){let T=new Map;for(let F of I){let O=x.glyphs[F].charIndex,$=T.get(O);$?$.push(F):T.set(O,[F])}let M=Array.from(T.values()),g=F=>{let O=x.glyphs[F[0]];return O.clusterX??O.x};M.sort((F,O)=>g(F)-g(O));let _=[];for(let F of M){let O=x.glyphs[F[0]],$=kt(s,O,Xe,e.signals,e.frame??0,e.fps??24);_.push($)}let G=0;for(let F=0;F<M.length-1;F++)G+=y*_[F];let p=x.glyphs[I[0]]?.baseRtl??!1,R=h==="start"?p?"right":"left":h==="end"?p?"left":"right":h,N=0;for(let F=0;F<M.length;F++){let O=N;R==="center"?O-=G*.5:R==="right"&&(O-=G);for(let $ of M[F])xe[$]+=O;F<M.length-1&&(N+=y*_[F])}}}}}let ye=new Float32Array(Math.max(1024,me*24)),Ke=(o,s)=>s.cp.glyphId!==void 0&&(s.font??c).fontFamily===o.fontFamily,Qe=new Set,vt=o=>{if(Qe.has(o))return;Qe.add(o);let s=[];for(let y of x.glyphs){let S=y.cp.glyphId;S!==void 0&&(y.font??c)!==o&&Ke(o,y)&&!o.glyphs?.has(S)&&s.push(S)}s.length>0&&st.ensureGlyphs(o,s)},Pt=(o,s)=>{if((s.font??c)===o)return s.cp;if(Ke(o,s)){let y=o.glyphs?.get(s.cp.glyphId);if(y)return y}return o.codePoints.get(s.cp.codePoint)||s.cp},Se=(o,s,y=0,S=0,I,T)=>{let M=me*24;ye.length<M&&(ye=new Float32Array(M));let g=ye,_=0;vt(o);for(let G=0;G<x.glyphs.length;G++){let p=x.glyphs[G];if(p.isSpace||T&&!T(p))continue;let R=Pt(o,p);if(!R||R.width===0||R.height===0)continue;let N=p.unitIndex,F=b[N]??N,O=e.opacity??1,$=0,J=0,se=0,V=1,Ce=I!==void 0?I:0;if(e.isVideoMode!==!1){let{p_in:W,p_out:E}=je(z,K,ae,ne,F,q,!0),B=_e(W,E,f,ie,l,te,z,K,ae,ne,F,e.opacity??1,!1);if(!B.visible)continue;O=B.opacity,$=B.transX,J=B.transY,se=B.rot,V=B.scale,I===void 0&&(Ce=B.blurAmount)}let Me=1,Ue=1,tt,De=0,nt=0,it=0,ot=0,Ne=0,Le=0,Be,rt=1;if(e.animators&&e.animators.length>0){let W=At(e.animators,p,Xe,{transX:$,transY:J,rot:se,scale:V,scaleX:Me,scaleY:Ue,opacity:O,blurAmount:Ce,color:D},!1,e.frame??0,e.fps??24,e.signals);$=W.transX,J=W.transY,se=W.rot,V=W.scale,Me=W.scaleX,Ue=W.scaleY,O=W.opacity,I===void 0&&(Ce=W.blurAmount),W.color&&(tt=W.color),W.lineSpacing!==void 0&&(J+=dt(p.lineIndex,x.linesCount,W.lineSpacing,W.lineAnchor??0)),De=W.transZ??0,nt=W.chromaticShift??0,it=W.dissolveProgress??0,ot=W.vfxParam??0,Ne=W.skewM01??0,Le=W.skewM10??0,Be=W.anchorConfig,rt=W.fillOpacity??1}$+=xe[G];let ze=p.x;if(e.marquee){let W=(e.frame??0)/(e.fps??24),E=x.glyphs.length>0?x.glyphs[x.glyphs.length-1].x+r:e.dstRect.width;ze=mt(p.x,e.dstRect.width,E,e.marquee,W)}let Rt=e.highlightWordIndex!==void 0&&p.wordIndex===e.highlightWordIndex,Ft=p.fill?de(p.fill):void 0,Ye=tt??s??(Rt?Q:Ft??D);(W=>{let E=_*24,B=p.fontScale??r/o.unitsPerEm,Ie=R.width*B/2*Me,Ae=R.height*B/2*Ue;if(De!==0){let ce=Math.max(100,1200-De),ge=ce>1?1200/ce:1;Ie*=ge,Ae*=ge}let ke=se+(p.pathTangentAngleRad??0),pe,Te;if(p.pathTangentAngleRad!==void 0){let ve=R.bearingX*B+Ie,ce=-R.bearingY*B+Ae,ge=Math.cos(ke),Pe=Math.sin(ke),Ve=ve*ge-ce*Pe,qe=ve*Pe+ce*ge;pe=ze+Ve+e.dstRect.x+a+y+W,Te=p.y+qe+re.y+a+S}else pe=ze+R.bearingX*B+Ie+e.dstRect.x+a+y+W,Te=p.y-R.bearingY*B+Ae+re.y+a+S;if(Be){let ve={width:R.width*B,height:R.height*B,ascender:(o.ascender??800)*B,descender:(o.descender??-200)*B},ce=ut(ve,Be),ge=Math.cos(ke),Pe=Math.sin(ke),Ve=ce.px*(1-ge*V)+ce.py*(Pe*V),qe=-ce.px*(Pe*V)+ce.py*(1-ge*V);pe+=Ve,Te+=qe}(Ne!==0||Le!==0)&&(pe+=Ae*Ne,Te+=Ie*Le),g[E+0]=Ie,g[E+1]=Ae,g[E+2]=pe,g[E+3]=Te,g[E+4]=R.width,g[E+5]=R.height,g[E+6]=R.width/R.bandDimX,g[E+7]=R.height/R.bandDimY,g[E+8]=R.bandCount-1,g[E+9]=R.bandCount-1,g[E+10]=R.bandsTexCoordX,g[E+11]=R.bandsTexCoordY,g[E+12]=ke,g[E+13]=V,g[E+14]=$,g[E+15]=J,g[E+16]=Ye.r,g[E+17]=Ye.g,g[E+18]=Ye.b;let Wt=p.opacity??1;g[E+19]=Ye.a*O*rt*Wt,g[E+20]=Ce,g[E+21]=nt,g[E+22]=it,g[E+23]=ot,_++})(0)}return{data:g,visibleCount:_}};if(e.shadows&&e.shadows.length>0)for(let o of e.shadows){let s=de(o.color),y=o.offset?.x??0,S=o.offset?.y??0,I=o.blurRadius??0,{data:T,visibleCount:M}=Se(Z,s,y,S,I);if(M>0){let g=T.subarray(0,M*24),G=e.fontStyle==="italic"?.21:0;t.renderer.slugPipeline.draw(n,t.renderer.getTransformStack(),Z,g,M,o.color,t.renderer.getSurfaceWidth(),t.renderer.getSurfaceHeight(),{opacity:e.opacity??1,transform:e.matrix,customParam:G})}}let Oe=e.animators?.find(o=>"props"in o&&o.props?.longShadow&&(o.props?.longShadow?.length??0)>0);if(Oe&&"props"in Oe){let o=Oe,s=o.props?.longShadow;if(s){let y=o.props?.spring,S=s.length,I=s.angle;if(y){let G=(e.frame??0)/(e.fps??30),p=$e(G,y.stiffness,y.damping,y.mass,y.initialVelocity);S=Math.max(0,s.length*p),I=s.angle+(1-Math.min(1,p))*25}else{let p=1-(1-Math.min(1,(e.frame??0)/36))**3;S=s.length*p}let T=I*Math.PI/180,M=Math.max(4,Math.min(64,s.steps??16)),g=S/M,_=de(s.color??"#000000");for(let G=1;G<=M;G++){let p=G*g,R=p*Math.cos(T),N=p*Math.sin(T),F=G/M,O=(s.startOpacity??.8)*(1-F)+(s.endOpacity??0)*F,$={..._,a:_.a*O},{data:J,visibleCount:se}=Se(c,$,R,N,0);if(se>0){let V=J.subarray(0,se*24),Me=e.fontStyle==="italic"?.21:0;t.renderer.slugPipeline.draw(n,t.renderer.getTransformStack(),Z,V,se,s.color??"black",t.renderer.getSurfaceWidth(),t.renderer.getSurfaceHeight(),{opacity:(e.opacity??1)*O,transform:e.matrix,customParam:Me})}}}}if(d&&u){let o=de(e.stroke),{data:s,visibleCount:y}=Se(u,o);if(y>0){let S=s.subarray(0,y*24),T=e.fontStyle==="italic"?.21:0;t.renderer.slugPipeline.draw(n,t.renderer.getTransformStack(),u,S,y,e.stroke??"#000000",t.renderer.getSurfaceWidth(),t.renderer.getSurfaceHeight(),{opacity:e.opacity??1,transform:e.matrix,customParam:T})}}let He=new Set,Je=!1;for(let o of x.glyphs)o.font&&o.font!==Z&&(He.add(o.font),Je=!0);let et=e.fontStyle==="italic"?.21:0;if(Je){He.add(Z);for(let o of He){if(t.device&&!o.curvesTex&&L.ensureTextures(t.device,o),!o.curvesTex)continue;let{data:s,visibleCount:y}=Se(o,void 0,0,0,void 0,S=>(S.font??Z)===o);if(y>0){let S=s.subarray(0,y*24);t.renderer.slugPipeline.draw(n,t.renderer.getTransformStack(),o,S,y,e.color??"white",t.renderer.getSurfaceWidth(),t.renderer.getSurfaceHeight(),{opacity:e.opacity??1,transform:e.matrix,customParam:et})}}}else{let{data:o,visibleCount:s}=Se(Z);if(s>0){let y=o.subarray(0,s*24);t.renderer.slugPipeline.draw(n,t.renderer.getTransformStack(),Z,y,s,e.color??"white",t.renderer.getSurfaceWidth(),t.renderer.getSurfaceHeight(),{opacity:e.opacity??1,transform:e.matrix,customParam:et})}}for(let o of x.emojis){let s=e.animation?.applyBy==="line"?0:Math.floor(o.x/(r+m)),y=b[s%q]??0,S=e.opacity??1,I=0,T=0,M=0,g=1;if(e.isVideoMode!==!1){let{p_in:J,p_out:se}=je(z,K,ae,ne,y,q,!0),V=_e(J,se,f,ie,l,te,z,K,ae,ne,y,e.opacity??1,!0);if(!V.visible)continue;S=V.opacity,I=V.transX,T=V.transY,M=V.rot,g=V.scale}if(e.animators&&e.animators.length>0){let J=At(e.animators,{charIndex:s,wordIndex:0,lineIndex:o.lineIndex},{charsCount:x.charsCount,wordsCount:x.wordsCount,linesCount:x.linesCount},{transX:I,transY:T,rot:M,scale:g,scaleX:1,scaleY:1,opacity:S,blurAmount:0},!0);I=J.transX,T=J.transY,M=J.rot,g=J.scale,S=J.opacity}let _=jt(t.device,o.char,o.size),G=o.size*1.15,p=(G-o.size)/2,R={x:e.dstRect.x+o.x+a-p,y:re.y+o.y+a-p,width:G,height:G},N=new DOMMatrix,F=R.x+G/2,O=R.y+G/2;N=N.translate(F,O),(I!==0||T!==0)&&(N=N.translate(I,T)),M!==0&&(N=N.rotate(M)),g!==1&&(N=N.scale(g)),N=N.translate(-F,-O);let $=e.matrix?e.matrix.multiply(N):N;t.renderer.drawTextureRegion(n,_,{x:0,y:0,width:_.width,height:_.height},R,{opacity:S,transform:$})}if(e.typewriter?.cursor?.enabled&&w&&w.isCursorVisible&&(!e.typewriter.cursor.hideOnComplete||w.visibleChars<e.text.length)){let o=e.typewriter.cursor,s=o.color??e.color??"white",y=o.width??2.5,S=o.spacing??3,I=e.dstRect.x+a,T=re.y+a;if(x.glyphs.length>0){let M=x.glyphs[x.glyphs.length-1],g=r/c.unitsPerEm,_=M.clusterAdvance??(M.cp?.advanceWidth||0)*g,G=M.clusterX??M.x,p=o.style==="underscore"||o.style==="block"?r*.5:y;I=e.dstRect.x+a+(M.rtl?G-S-p:G+_+S),T=M.y+re.y+a}o.style==="underscore"?t.renderer.drawRect(n,{x:I,y:T,width:r*.5,height:y},s,0,{opacity:e.opacity??1}):o.style==="block"?t.renderer.drawRect(n,{x:I,y:T-r*.8,width:r*.5,height:r},s,0,{opacity:e.opacity??1}):t.renderer.drawRect(n,{x:I,y:T-r*.8,width:y,height:r},s,0,{opacity:e.opacity??1})}}we();function Tt(t){let e=t.trim().replace(",",".").split(":");if(e.length<2||e.length>3)throw new Error(`Invalid timestamp: ${t}`);if(e.length===2){let[d,u]=e;return parseInt(d,10)*60+parseFloat(u)}let[i,r,c]=e;return parseInt(i,10)*3600+parseInt(r,10)*60+parseFloat(c)}function Ut(t){let n=t.replace(/\r\n/g,`
1
+ import{a as $e,b as lt,c as ut,d as dt,e as ft,f as ht,g as mt,h as gt,i as xt,j as yt,k as bt,l as wt,n as St}from"./chunk-FKG27DVO.mjs";import{b as Ge}from"./chunk-P4Y3PMJF.mjs";import{d as at}from"./chunk-VVY4PG5E.mjs";import{h as st,i as ct,j as L,x as be}from"./chunk-BJXNKMSY.mjs";import{a as de}from"./chunk-354GX6IB.mjs";import{f as Re,g as we}from"./chunk-Y4NIR77Z.mjs";we();function Et(t){return typeof t=="object"&&t!==null&&typeof t.get=="function"}function Fe(t,n){return Et(t)?t.get(n):t}function Ct(t,n){return t.map(e=>{let i={...e,text:String(Fe(e.text,n)??"")};return e.fontSize!==void 0&&(i.fontSize=Number(Fe(e.fontSize,n))),e.fill!==void 0&&(i.fill=String(Fe(e.fill,n))),e.opacity!==void 0&&(i.opacity=Number(Fe(e.opacity,n))),e.mark&&(i.mark={...e.mark,background:String(Fe(e.mark.background,n))}),i})}function zt(t){let n="";for(let e of t)n+=typeof e.text=="string"?e.text:"";return n}function Mt(t,n){let e=[],i=0;for(let[r,c]of t.entries()){if(i>=n.length)break;let d=typeof c.text=="string"?c.text.length:0,u=r===t.length-1?n.length:i+d;u>i&&e.push({...c,text:n.slice(i,u)}),i=u}return e}we();function Xt(t,n,e,i,r=0,c=0){let d=at.getChannelSamples(n,"primary");if(d&&d.length>0){let m=i>0?i:24,C=e/m,h=r!==0?c*r/(2*Math.PI):0,k=Math.max(0,C+h),a=Math.max(0,Math.min(d.length-1,Math.round(k*m)));return Number(d[a])||0}if(!t)return 0;let u=t[n];if(u==null)return 0;if(typeof u=="number")return u;if(typeof u=="function")return Number(u(e,i))||0;if(typeof u=="object"){let m=u;if(typeof m.get=="function"){let C=i>0?e/i:0,h=r!==0?c*r/(2*Math.PI):0;return Number(m.get({frame:e,fps:i,time:C+h}))||0}if(Array.isArray(m.samples)||ArrayBuffer.isView(m.samples)){let C=m.samples,h=Math.max(0,Math.min(C.length-1,Math.round(e)));return Number(C[h])||0}}return 0}function It(t){return t<.5?2*t*t:1-(-2*t+2)**2/2}function Yt(t){let n=0;for(let e=0;e<t.length;e++)n=t.charCodeAt(e)+((n<<5)-n);return()=>{let e=Math.sin(n++)*1e4;return e-Math.floor(e)}}function Gt(t,n){let e=Yt(n),i=Array.from({length:t},(r,c)=>c);for(let r=i.length-1;r>0;r--){let c=Math.floor(e()*(r+1)),d=i[r];i[r]=i[c],i[c]=d}return i}function jt(t,n,e){let i=`${n}-${e}`,r=L.emojiTextureCache.get(i);if(r)return r;let c=4,d=Math.max(16,Math.ceil(e*1.5*c)),u=Math.ceil(d/4)*4;if(!!globalThis.__IS_HEADLESS_RENDERER__||typeof window>"u"||typeof globalThis.document>"u")return L.hasEmojiFont()&&console.warn(`[getOrCreateEmojiTexture] Emoji "${n}" not preloaded. Returning fallback dummy texture.`),r=t.createTexture({label:`Emoji-Dummy-${n}`,size:[1,1],format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING}),L.emojiTextureCache.set(i,r),r;let C=new OffscreenCanvas(u,u),h=C.getContext("2d");return h&&(h.font=`${e*c}px "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif`,h.textBaseline="middle",h.textAlign="center",h.fillText(n,u/2,u/2)),r=t.createTexture({label:`Emoji-${n}`,size:[u,u],format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT}),t.queue.copyExternalImageToTexture({source:C},{texture:r,premultipliedAlpha:!0},[u,u]),L.emojiTextureCache.set(i,r),r}function je(t,n,e,i,r,c,d){if(!d)return{p_in:1,p_out:1};let u=1;if(e>0){let C=e*.5,h=c>1?e*.5/(c-1):0,k=r*h,a=k+C;t<k?u=0:t>a?u=1:u=(t-k)/(a-k)}let m=1;if(i>0){let C=n-i;if(t>C){let h=i*.5,k=c>1?i*.5/(c-1):0,a=C+r*k,A=a+h;t<a?m=1:t>A?m=0:m=1-(t-a)/(A-a)}}return{p_in:u,p_out:m}}function _e(t,n,e,i,r,c,d,u,m,C,h,k,a){let A=e?It(t):t,w=e?It(n):n,v=A*w;if(A<=0&&i!=="blur"||w<=0&&r!=="blur")return{opacity:0,transX:0,transY:0,rot:0,scale:1,blurAmount:0,visible:!1};let X=k;if(i==="fade"||i==="slideUp"||i==="blur"?X*=A:i==="appear"&&A<.5&&(X=0),r==="fade"||r==="slideUp"||r==="blur"?X*=w:r==="appear"&&w<.5&&(X=0),X<.001)return{opacity:0,transX:0,transY:0,rot:0,scale:1,blurAmount:0,visible:!1};let j=0,P=0,H=0,ee=1;i==="slideUp"&&d<m&&(P+=(1-A)*30),r==="slideUp"&&d>u-C&&(P-=(1-w)*30);let oe=a?1:Math.PI/180;c==="stack"?(ee=.8+.2*v,H=(1-v)*15*oe):c==="wave"?P+=10*Math.sin(d*.005-h*.5):c==="wiggle"?(j+=5*Math.sin(d*.008+h*1.7),P+=5*Math.cos(d*.006+h*1.3),H+=4*Math.sin(d*.005+h*2.1)*oe):c==="shuffle"&&(j+=3*Math.sin(d*.015+h*3.1),P+=3*Math.cos(d*.012+h*2.3),H+=8*Math.sin(d*.02+h*1.1)*oe);let x=0;return i==="blur"&&(x=Math.max(x,(1-A)*20)),r==="blur"&&(x=Math.max(x,(1-w)*20)),{opacity:X,transX:j,transY:P,rot:H,scale:ee,blurAmount:x,visible:!0}}var _t={linear:t=>t,none:t=>t,smoothstep:t=>t,"power1.out":t=>1-(1-t)**2,"quad.out":t=>1-(1-t)**2,"power1.in":t=>t**2,"quad.in":t=>t**2,"power1.inout":t=>t<.5?2*t*t:1-(-2*t+2)**2/2,"quad.inout":t=>t<.5?2*t*t:1-(-2*t+2)**2/2,"power2.out":t=>1-(1-t)**3,"cubic.out":t=>1-(1-t)**3,"power2.in":t=>t**3,"cubic.in":t=>t**3,"power2.inout":t=>t<.5?4*t**3:1-(-2*t+2)**3/2,"cubic.inout":t=>t<.5?4*t**3:1-(-2*t+2)**3/2,"power3.out":t=>1-(1-t)**4,"quart.out":t=>1-(1-t)**4,"power3.in":t=>t**4,"quart.in":t=>t**4,"power3.inout":t=>t<.5?8*t**4:1-(-2*t+2)**4/2,"quart.inout":t=>t<.5?8*t**4:1-(-2*t+2)**4/2,"power4.out":t=>1-(1-t)**5,"quint.out":t=>1-(1-t)**5,"power4.in":t=>t**5,"quint.in":t=>t**5,"sine.out":t=>Math.sin(t*Math.PI/2),"sine.in":t=>1-Math.cos(t*Math.PI/2),"sine.inout":t=>-(Math.cos(Math.PI*t)-1)/2,"expo.out":t=>t===1?1:1-2**(-10*t),"back.out":t=>1+2.70158*(t-1)**3+1.70158*(t-1)**2};function Ot(t,n){let e=Math.max(0,Math.min(1,n));if(!t)return e;let i=_t[t.toLowerCase().trim()];return i?i(e):e}function Ht(t,n,e){if(e<=0)return 0;let i=e>1?n/(e-1):.5,r=t.offset??0,c=(t.rangeStart??0)+r,d=(t.rangeEnd??1)+r,u=0;d<=c?u=i>=c?1:0:u=Math.max(0,Math.min(1,(i-c)/(d-c)));let m=u*u*(3-2*u);return Ot(t.easing??"power2.out",m)}function kt(t,n,e,i,r,c){let d=Math.max(1,e.charsCount??1),u=Math.max(1,e.wordsCount??1),m=Math.max(1,e.linesCount??1),C=t.selectors??[];if(C.length===0)return 1;let h=0;for(let k=0;k<C.length;k++){let a=C[k],A=0;if(a.type==="range"){let w=d,v=n.charIndex??0;a.basedOn==="words"?(w=u,v=n.wordIndex??0):a.basedOn==="lines"&&(w=m,v=n.lineIndex??0),a.randomizeOrder&&(v=bt(w,a.randomSeed??12345)[v%w]??v);let X=a.units==="index"?v:w>1?v/(w-1):.5,j=a.start??t.rangeStart??0,P=a.end??t.rangeEnd??(a.units==="index"?w:1),H=a.offset??t.offset??0;A=xt(X,j,P,H,a.shape??"smooth",a.easeHigh??0,a.easeLow??0)*(a.amount??1)}else if(a.type==="wiggly"){let w=c>0?r/c:0,v=(a.temporalPhaseDeg??0)*Math.PI/180,X=(a.spatialPhaseDeg??0)*Math.PI/180,j=w*(a.wigglesPerSecond??2)*2*Math.PI+v+X,P=yt(a.randomSeed??42,n.charIndex??0,j,a.correlation??.5),H=a.minAmount??-1,ee=a.maxAmount??1;A=H+(P*.5+.5)*(ee-H)}else if(a.type==="signal")A=Xt(i,a.signalId,r,c,a.phaseSpread??0,n.charIndex??0)*(a.multiplier??1)+(a.offset??0);else if(a.type==="expression"){let w=a,v=c>0?r/c:0,X={charIndex:n.charIndex??0,wordIndex:n.wordIndex??0,lineIndex:n.lineIndex??0,totalChars:d,totalWords:u,totalLines:m,frame:r,fps:c,time:v,signals:i};A=ft(w.expression,X)*(w.amount??1)}k===0?h=A:h=wt(h,A,a.mode??"add")}return h}function At(t,n,e,i,r=!1,c=0,d=24,u){if(!t||t.length===0)return i;let{transX:m,transY:C,rot:h,scale:k,scaleX:a,scaleY:A,opacity:w,blurAmount:v}=i,X=i.transZ??0,j=i.color,P=i.chromaticShift??0,H=i.dissolveProgress??0,ee=i.vfxParam??0,oe=i.skewM01??0,x=i.skewM10??0,fe=i.anchorConfig,le=i.fillOpacity??1,re=i.strokeWidth,U=i.strokeColor,ue=i.longShadow,he=i.lineSpacing,Z=i.lineAnchor,me=r?1:Math.PI/180,z=Math.max(1,e.charsCount??1),K=Math.max(1,e.wordsCount??1),ae=Math.max(1,e.linesCount??1);for(let ne of t)if("selectors"in ne&&Array.isArray(ne.selectors)){let ie=ne,l=ie.props??{},te=kt(ie,n,{charsCount:z,wordsCount:K,linesCount:ae},u,c,d),f=te,Y=1,q=1;if(l.spring){let b=(n.charIndex??0)*.035,D=Math.max(0,(d>0?c/d:0)-b);q=$e(D,l.spring.stiffness,l.spring.damping,l.spring.mass,l.spring.initialVelocity),Y=1-q,f=te*Y}if(f!==0||te!==0){if(l.x!==void 0&&(m+=l.x*f),l.y!==void 0&&(C+=l.y*f),l.scale!==void 0&&(k*=1+(l.scale-1)*f),l.scaleX!==void 0&&(a*=1+(l.scaleX-1)*f),l.scaleY!==void 0&&(A*=1+(l.scaleY-1)*f),l.rotation!==void 0&&(h+=l.rotation*me*f),l.rotationX!==void 0){let b=l.rotationX*f*Math.PI/180;A*=Math.max(.08,Math.abs(Math.cos(b)))}if(l.rotationY!==void 0){let b=l.rotationY*f*Math.PI/180;a*=Math.max(.08,Math.abs(Math.cos(b)))}if(l.rotationZ!==void 0&&(h+=l.rotationZ*me*f),l.translateZ!==void 0&&(X+=l.translateZ*f),l.skew!==void 0){let[,b,D]=lt(l.skew*f,l.skewAxis??0);oe+=b,x+=D}if(l.formation!==void 0){let b=ht(n.charIndex??0,z,l.formation),D=e.layoutCenter?.x??0,Q=e.layoutCenter?.y??0,xe=n.x??0,We=n.y??0,Ee=D+b.x,Xe=Q+b.y;if(m+=(Ee-xe)*f,C+=(Xe-We)*f,X+=b.z*f,b.rotX){let ye=b.rotX*f*Math.PI/180;A*=Math.max(.5,Math.abs(Math.cos(ye)))}if(b.rotY){let ye=b.rotY*f*Math.PI/180;a*=Math.max(.5,Math.abs(Math.cos(ye)))}b.rotZ&&(h+=b.rotZ*Math.PI/180*f),b.depthOpacity!==void 0&&(w*=1+(b.depthOpacity-1)*f)}if(l.anchor!==void 0&&(fe=l.anchor),l.opacity!==void 0&&(w*=1+(l.opacity-1)*f),l.blur!==void 0&&(v=Math.max(v,l.blur*f)),l.chromaticGlitch!==void 0){let b=(l.chromaticGlitch.redShiftX??0)*Math.max(0,f),D=l.chromaticGlitch.sliceProbability??.35,Q=Math.sin(c*17.13+(n.charIndex??0)*43.17),xe=Math.abs(Q-Math.floor(Q));xe<D&&(b+=(l.chromaticGlitch.sliceAmplitude??12)*(xe*2-1)),P+=b}if(l.particleDissolve!==void 0&&(H=Math.max(H,(l.particleDissolve.progress??0)*(l.spring?q:Math.max(0,f)))),l.longShadow!==void 0&&(ue=l.longShadow),l.audioSpectrum!==void 0){let b=gt(n.charIndex??0,z,l.audioSpectrum,u,c,d);l.audioSpectrum.scaleAxis==="scaleY"?A*=b:l.audioSpectrum.scaleAxis==="scaleX"?a*=b:k*=b}if(l.stroke!==void 0&&(l.stroke.fillOpacity!==void 0&&(le*=1-f+l.stroke.fillOpacity*f),l.stroke.strokeWidth!==void 0&&(re=(l.stroke.strokeWidth??0)*f),l.stroke.strokeColor&&(U=l.stroke.strokeColor)),l.lineSpacing!==void 0&&(he=l.lineSpacing*(l.spring?q:f),Z=l.lineAnchor??0),l.fillColor){let b=de(l.fillColor),D=j??{r:1,g:1,b:1,a:1},Q=te;j={r:D.r*(1-Q)+b.r*Q,g:D.g*(1-Q)+b.g*Q,b:D.b*(1-Q)+b.b*Q,a:D.a*(1-Q)+b.a*Q}}}}else{let ie=ne,l=n.charIndex??n.unitIndex??0,te=Math.max(1,e.charsCount??1);ie.unit==="word"?(l=n.wordIndex??0,te=Math.max(1,e.wordsCount??1)):ie.unit==="line"&&(l=n.lineIndex??0,te=Math.max(1,e.linesCount??1));let f=Ht(ie,l,te),Y=ie.transform;if(!Y||f<=0)continue;Y.x!==void 0&&(m+=Y.x*f),Y.y!==void 0&&(C+=Y.y*f),Y.rotation!==void 0&&(h+=Y.rotation*me*f),Y.scale!==void 0&&(k*=1+(Y.scale-1)*f),Y.scaleX!==void 0&&(a*=1+(Y.scaleX-1)*f);let q=1+((Y.scaleY??1)-1)*f;if(Y.rotationX){let b=Y.rotationX*f*Math.PI/180;q*=Math.cos(b)}if(A*=q,Y.opacity!==void 0&&(w*=1+(Y.opacity-1)*f),Y.blur!==void 0&&(v=Math.max(v,Y.blur*f)),Y.color){let b=de(Y.color),D=j??{r:1,g:1,b:1,a:1};j={r:D.r*(1-f)+b.r*f,g:D.g*(1-f)+b.g*f,b:D.b*(1-f)+b.b*f,a:D.a*(1-f)+b.a*f}}}return{transX:m,transY:C,transZ:X,rot:h,scale:k,scaleX:a,scaleY:A,opacity:Math.max(0,Math.min(1,w)),blurAmount:v,color:j,chromaticShift:P,dissolveProgress:H,vfxParam:ee,skewM01:oe,skewM10:x,anchorConfig:fe,fillOpacity:Math.max(0,Math.min(1,le)),strokeWidth:re,strokeColor:U,longShadow:ue,lineSpacing:he,lineAnchor:Z}}function pt(t,n,e){let i=e.fontFamily??"Inter";if(L.isFailed(i)&&(i="Inter"),L.isFailed(i))return;let r=e.fontSize??48,c=L.getFont(i,e.fontWeight,t.device,void 0,r,e.variableAxes),d=e.stroke&&e.strokeWidth&&e.strokeWidth>0,u=null;if(c&&d&&t.device){let o=e.strokeAlign==="outside"?2:1,y=(e.strokeWidth??0)*o*(c.unitsPerEm/r);u=L.getFont(i,e.fontWeight,t.device,y,r,e.variableAxes)??null}if(!c?.curvesTex||d&&!u?.curvesTex){let o=Ge(i);L.preloadSlugFont(t.device,i,o,void 0,e.renderId).catch(s=>{console.warn(`[drawParagraphNode] Failed to load Slug font for ${i}:`,s)});return}let m=e.letterSpacing??0,C=e.lineHeight!==void 0&&e.lineHeight<10?e.lineHeight*r:e.lineHeight??r*1.2,h=e.align??"start",k=e.direction??"auto",a=e.isCaption?0:e.textBackgroundColor?e.padding??0:0,A=e.text,w;if(e.typewriter){let o=e.fps??24,s=e.durationMs!==void 0?Math.round(e.durationMs/1e3*o):60;w=St(e.text,e.frame??0,0,s,e.typewriter.cadence,e.typewriter.scramble,e.typewriter.cursor?.blinkFrequency??2,e.typewriter.granularity??"character",e.textProgress),A=w.currentDisplayString}let v=w&&e.spans?.length?Mt(Ct(e.spans),A):e.spans,X=e.pathOptions?{...e.pathOptions,firstMargin:e.firstMargin!==void 0?e.firstMargin:e.pathOptions.firstMargin,lastMargin:e.lastMargin!==void 0?e.lastMargin:e.pathOptions.lastMargin,baselineShift:e.baselineShift!==void 0?e.baselineShift:e.pathOptions.baselineShift}:void 0,j,P;e.width!=null?(j=Math.max(0,e.width-a*2),P=be.measure(A,c,r,m,C,j,v,k)):(P=be.measure(A,c,r,m,C,void 0,v,k),j=P.width);let H=e.isCaption?e.dstRect.width:j,ee=e.animation?.applyBy??"word",x=(h==="left"||h==="start"&&!P.layout?.hasRtl)&&(H===void 0||H===j)&&!X&&ee==="word"&&!!P?.layout&&P.layout?P.layout:be.layout(A,c,r,m,C,j,h,ee,H,X,v,k),fe=e.verticalAlign??"top",le=e.height!=null&&!X&&!e.isCaption?e.height-(P.height+a*2):0,re={...e.dstRect,y:e.dstRect.y+(fe==="middle"?le/2:fe==="bottom"?le:0)},U=e.animation,ue=e.fontWeight==="bold"||typeof e.fontWeight=="number"&&e.fontWeight>=600||typeof e.fontWeight=="string"&&parseInt(e.fontWeight,10)>=600,he="hasTrueWeight"in c&&!!c.hasTrueWeight,Z=c;if(ue&&!he&&t.device){let o=ct(e.fontWeight),s=Math.max(0,(o-400)/500)*.055*r;if(s>0){let y=s*(c.unitsPerEm/r),S=L.getFont(i,400,t.device,y,r,e.variableAxes);S?.curvesTex&&(Z=S)}}let me=x.glyphs.length,z=e.elapsedMs!==void 0?e.elapsedMs:e.frame!==void 0&&e.fps!==void 0?e.frame/e.fps*1e3:0,K=e.durationMs!==void 0?e.durationMs:3e3,ae=e.isCaption?U?.in==="none"||!U?.in?0:K:U?.entranceMs?U.entranceMs:U?.in==="none"||!U?.in?0:K,ne=e.isCaption?0:U?.exitMs?U.exitMs:U?.out==="none"||!U?.out?0:K,ie=U?.in||"none",l=U?.out||"none",te=U?.kinetic||"none",f=U?.smoothing!==!1,Y=0;for(let o of x.glyphs)!o.isSpace&&o.unitIndex>Y&&(Y=o.unitIndex);let q=Y+1,b=te==="shuffle"||ie==="shuffle"?Gt(q,e.text):Array.from({length:q},(o,s)=>s);if(e.textBackgroundColor){let o=e.strokeRadius??e.borderRadius??8,s=0,y=e.opacity??1;if(e.isVideoMode===!1)s=y;else{for(let S of x.glyphs){if(S.isSpace)continue;let I=S.unitIndex,T=b[I]??I,{p_in:M,p_out:g}=je(z,K,ae,ne,T,q,!0),_=_e(M,g,f,ie,l,te,z,K,ae,ne,T,y,!1);_.visible&&_.opacity>s&&(s=_.opacity)}for(let S of x.emojis){let I=e.animation?.applyBy==="line"?0:Math.floor(S.x/(r+m)),T=b[I%q]??0,{p_in:M,p_out:g}=je(z,K,ae,ne,T,q,!0),_=_e(M,g,f,ie,l,te,z,K,ae,ne,T,y,!0);_.visible&&_.opacity>s&&(s=_.opacity)}}if(s>.001){let S=e.width!=null?e.width:P.width+a*2,I=e.height!=null?e.height:P.height+a*2;t.renderer.drawRRect(n,{rect:{x:e.dstRect.x,y:e.dstRect.y,width:S,height:I},rx:o,ry:o},e.textBackgroundColor,{opacity:s})}}if(x.marks&&x.marks.length>0)for(let o of x.marks){let s=o.borderRadius??4;t.renderer.drawRRect(n,{rect:{x:e.dstRect.x+a+o.x,y:re.y+a+o.y,width:o.width,height:o.height},rx:s,ry:s},o.background,{opacity:e.opacity??1})}let D=de(e.color??"white"),Q=de(e.highlightColor??"yellow"),xe=new Float32Array(x.glyphs.length),We=0,Ee=0;if(x.glyphs.length>0){let o=x.glyphs.filter(s=>!s.isSpace);o.length>0&&(We=(o[0].x+o[o.length-1].x)/2,Ee=(o[0].y+o[o.length-1].y)/2)}let Xe={charsCount:x.charsCount,wordsCount:x.wordsCount,linesCount:x.linesCount,layoutCenter:{x:We,y:Ee}};if(e.animators&&e.animators.length>0){for(let o of e.animators)if("selectors"in o&&Array.isArray(o.selectors)){let s=o;if(s.props?.tracking!==void 0&&s.props.tracking!==0){let y=s.props.tracking,S=new Map;for(let I=0;I<x.glyphs.length;I++){let M=x.glyphs[I].lineIndex??0,g=S.get(M);g||(g=[],S.set(M,g)),g.push(I)}for(let I of S.values()){let T=new Map;for(let F of I){let O=x.glyphs[F].charIndex,$=T.get(O);$?$.push(F):T.set(O,[F])}let M=Array.from(T.values()),g=F=>{let O=x.glyphs[F[0]];return O.clusterX??O.x};M.sort((F,O)=>g(F)-g(O));let _=[];for(let F of M){let O=x.glyphs[F[0]],$=kt(s,O,Xe,e.signals,e.frame??0,e.fps??24);_.push($)}let G=0;for(let F=0;F<M.length-1;F++)G+=y*_[F];let p=x.glyphs[I[0]]?.baseRtl??!1,R=h==="start"?p?"right":"left":h==="end"?p?"left":"right":h,N=0;for(let F=0;F<M.length;F++){let O=N;R==="center"?O-=G*.5:R==="right"&&(O-=G);for(let $ of M[F])xe[$]+=O;F<M.length-1&&(N+=y*_[F])}}}}}let ye=new Float32Array(Math.max(1024,me*24)),Ke=(o,s)=>s.cp.glyphId!==void 0&&(s.font??c).fontFamily===o.fontFamily,Qe=new Set,vt=o=>{if(Qe.has(o))return;Qe.add(o);let s=[];for(let y of x.glyphs){let S=y.cp.glyphId;S!==void 0&&(y.font??c)!==o&&Ke(o,y)&&!o.glyphs?.has(S)&&s.push(S)}s.length>0&&st.ensureGlyphs(o,s)},Pt=(o,s)=>{if((s.font??c)===o)return s.cp;if(Ke(o,s)){let y=o.glyphs?.get(s.cp.glyphId);if(y)return y}return o.codePoints.get(s.cp.codePoint)||s.cp},Se=(o,s,y=0,S=0,I,T)=>{let M=me*24;ye.length<M&&(ye=new Float32Array(M));let g=ye,_=0;vt(o);for(let G=0;G<x.glyphs.length;G++){let p=x.glyphs[G];if(p.isSpace||T&&!T(p))continue;let R=Pt(o,p);if(!R||R.width===0||R.height===0)continue;let N=p.unitIndex,F=b[N]??N,O=e.opacity??1,$=0,J=0,se=0,V=1,Ce=I!==void 0?I:0;if(e.isVideoMode!==!1){let{p_in:W,p_out:E}=je(z,K,ae,ne,F,q,!0),B=_e(W,E,f,ie,l,te,z,K,ae,ne,F,e.opacity??1,!1);if(!B.visible)continue;O=B.opacity,$=B.transX,J=B.transY,se=B.rot,V=B.scale,I===void 0&&(Ce=B.blurAmount)}let Me=1,Ue=1,tt,De=0,nt=0,it=0,ot=0,Ne=0,Le=0,Be,rt=1;if(e.animators&&e.animators.length>0){let W=At(e.animators,p,Xe,{transX:$,transY:J,rot:se,scale:V,scaleX:Me,scaleY:Ue,opacity:O,blurAmount:Ce,color:D},!1,e.frame??0,e.fps??24,e.signals);$=W.transX,J=W.transY,se=W.rot,V=W.scale,Me=W.scaleX,Ue=W.scaleY,O=W.opacity,I===void 0&&(Ce=W.blurAmount),W.color&&(tt=W.color),W.lineSpacing!==void 0&&(J+=dt(p.lineIndex,x.linesCount,W.lineSpacing,W.lineAnchor??0)),De=W.transZ??0,nt=W.chromaticShift??0,it=W.dissolveProgress??0,ot=W.vfxParam??0,Ne=W.skewM01??0,Le=W.skewM10??0,Be=W.anchorConfig,rt=W.fillOpacity??1}$+=xe[G];let ze=p.x;if(e.marquee){let W=(e.frame??0)/(e.fps??24),E=x.glyphs.length>0?x.glyphs[x.glyphs.length-1].x+r:e.dstRect.width;ze=mt(p.x,e.dstRect.width,E,e.marquee,W)}let Rt=e.highlightWordIndex!==void 0&&p.wordIndex===e.highlightWordIndex,Ft=p.fill?de(p.fill):void 0,Ye=tt??s??(Rt?Q:Ft??D);(W=>{let E=_*24,B=p.fontScale??r/o.unitsPerEm,Ie=R.width*B/2*Me,Ae=R.height*B/2*Ue;if(De!==0){let ce=Math.max(100,1200-De),ge=ce>1?1200/ce:1;Ie*=ge,Ae*=ge}let ke=se+(p.pathTangentAngleRad??0),pe,Te;if(p.pathTangentAngleRad!==void 0){let ve=R.bearingX*B+Ie,ce=-R.bearingY*B+Ae,ge=Math.cos(ke),Pe=Math.sin(ke),Ve=ve*ge-ce*Pe,qe=ve*Pe+ce*ge;pe=ze+Ve+e.dstRect.x+a+y+W,Te=p.y+qe+re.y+a+S}else pe=ze+R.bearingX*B+Ie+e.dstRect.x+a+y+W,Te=p.y-R.bearingY*B+Ae+re.y+a+S;if(Be){let ve={width:R.width*B,height:R.height*B,ascender:(o.ascender??800)*B,descender:(o.descender??-200)*B},ce=ut(ve,Be),ge=Math.cos(ke),Pe=Math.sin(ke),Ve=ce.px*(1-ge*V)+ce.py*(Pe*V),qe=-ce.px*(Pe*V)+ce.py*(1-ge*V);pe+=Ve,Te+=qe}(Ne!==0||Le!==0)&&(pe+=Ae*Ne,Te+=Ie*Le),g[E+0]=Ie,g[E+1]=Ae,g[E+2]=pe,g[E+3]=Te,g[E+4]=R.width,g[E+5]=R.height,g[E+6]=R.width/R.bandDimX,g[E+7]=R.height/R.bandDimY,g[E+8]=R.bandCount-1,g[E+9]=R.bandCount-1,g[E+10]=R.bandsTexCoordX,g[E+11]=R.bandsTexCoordY,g[E+12]=ke,g[E+13]=V,g[E+14]=$,g[E+15]=J,g[E+16]=Ye.r,g[E+17]=Ye.g,g[E+18]=Ye.b;let Wt=p.opacity??1;g[E+19]=Ye.a*O*rt*Wt,g[E+20]=Ce,g[E+21]=nt,g[E+22]=it,g[E+23]=ot,_++})(0)}return{data:g,visibleCount:_}};if(e.shadows&&e.shadows.length>0)for(let o of e.shadows){let s=de(o.color),y=o.offset?.x??0,S=o.offset?.y??0,I=o.blurRadius??0,{data:T,visibleCount:M}=Se(Z,s,y,S,I);if(M>0){let g=T.subarray(0,M*24),G=e.fontStyle==="italic"?.21:0;t.renderer.slugPipeline.draw(n,t.renderer.getTransformStack(),Z,g,M,o.color,t.renderer.getSurfaceWidth(),t.renderer.getSurfaceHeight(),{opacity:e.opacity??1,transform:e.matrix,customParam:G})}}let Oe=e.animators?.find(o=>"props"in o&&o.props?.longShadow&&(o.props?.longShadow?.length??0)>0);if(Oe&&"props"in Oe){let o=Oe,s=o.props?.longShadow;if(s){let y=o.props?.spring,S=s.length,I=s.angle;if(y){let G=(e.frame??0)/(e.fps??30),p=$e(G,y.stiffness,y.damping,y.mass,y.initialVelocity);S=Math.max(0,s.length*p),I=s.angle+(1-Math.min(1,p))*25}else{let p=1-(1-Math.min(1,(e.frame??0)/36))**3;S=s.length*p}let T=I*Math.PI/180,M=Math.max(4,Math.min(64,s.steps??16)),g=S/M,_=de(s.color??"#000000");for(let G=1;G<=M;G++){let p=G*g,R=p*Math.cos(T),N=p*Math.sin(T),F=G/M,O=(s.startOpacity??.8)*(1-F)+(s.endOpacity??0)*F,$={..._,a:_.a*O},{data:J,visibleCount:se}=Se(c,$,R,N,0);if(se>0){let V=J.subarray(0,se*24),Me=e.fontStyle==="italic"?.21:0;t.renderer.slugPipeline.draw(n,t.renderer.getTransformStack(),Z,V,se,s.color??"black",t.renderer.getSurfaceWidth(),t.renderer.getSurfaceHeight(),{opacity:(e.opacity??1)*O,transform:e.matrix,customParam:Me})}}}}if(d&&u){let o=de(e.stroke),{data:s,visibleCount:y}=Se(u,o);if(y>0){let S=s.subarray(0,y*24),T=e.fontStyle==="italic"?.21:0;t.renderer.slugPipeline.draw(n,t.renderer.getTransformStack(),u,S,y,e.stroke??"#000000",t.renderer.getSurfaceWidth(),t.renderer.getSurfaceHeight(),{opacity:e.opacity??1,transform:e.matrix,customParam:T})}}let He=new Set,Je=!1;for(let o of x.glyphs)o.font&&o.font!==Z&&(He.add(o.font),Je=!0);let et=e.fontStyle==="italic"?.21:0;if(Je){He.add(Z);for(let o of He){if(t.device&&!o.curvesTex&&L.ensureTextures(t.device,o),!o.curvesTex)continue;let{data:s,visibleCount:y}=Se(o,void 0,0,0,void 0,S=>(S.font??Z)===o);if(y>0){let S=s.subarray(0,y*24);t.renderer.slugPipeline.draw(n,t.renderer.getTransformStack(),o,S,y,e.color??"white",t.renderer.getSurfaceWidth(),t.renderer.getSurfaceHeight(),{opacity:e.opacity??1,transform:e.matrix,customParam:et})}}}else{let{data:o,visibleCount:s}=Se(Z);if(s>0){let y=o.subarray(0,s*24);t.renderer.slugPipeline.draw(n,t.renderer.getTransformStack(),Z,y,s,e.color??"white",t.renderer.getSurfaceWidth(),t.renderer.getSurfaceHeight(),{opacity:e.opacity??1,transform:e.matrix,customParam:et})}}for(let o of x.emojis){let s=e.animation?.applyBy==="line"?0:Math.floor(o.x/(r+m)),y=b[s%q]??0,S=e.opacity??1,I=0,T=0,M=0,g=1;if(e.isVideoMode!==!1){let{p_in:J,p_out:se}=je(z,K,ae,ne,y,q,!0),V=_e(J,se,f,ie,l,te,z,K,ae,ne,y,e.opacity??1,!0);if(!V.visible)continue;S=V.opacity,I=V.transX,T=V.transY,M=V.rot,g=V.scale}if(e.animators&&e.animators.length>0){let J=At(e.animators,{charIndex:s,wordIndex:0,lineIndex:o.lineIndex},{charsCount:x.charsCount,wordsCount:x.wordsCount,linesCount:x.linesCount},{transX:I,transY:T,rot:M,scale:g,scaleX:1,scaleY:1,opacity:S,blurAmount:0},!0);I=J.transX,T=J.transY,M=J.rot,g=J.scale,S=J.opacity}let _=jt(t.device,o.char,o.size),G=o.size*1.15,p=(G-o.size)/2,R={x:e.dstRect.x+o.x+a-p,y:re.y+o.y+a-p,width:G,height:G},N=new DOMMatrix,F=R.x+G/2,O=R.y+G/2;N=N.translate(F,O),(I!==0||T!==0)&&(N=N.translate(I,T)),M!==0&&(N=N.rotate(M)),g!==1&&(N=N.scale(g)),N=N.translate(-F,-O);let $=e.matrix?e.matrix.multiply(N):N;t.renderer.drawTextureRegion(n,_,{x:0,y:0,width:_.width,height:_.height},R,{opacity:S,transform:$})}if(e.typewriter?.cursor?.enabled&&w&&w.isCursorVisible&&(!e.typewriter.cursor.hideOnComplete||w.visibleChars<e.text.length)){let o=e.typewriter.cursor,s=o.color??e.color??"white",y=o.width??2.5,S=o.spacing??3,I=e.dstRect.x+a,T=re.y+a;if(x.glyphs.length>0){let M=x.glyphs[x.glyphs.length-1],g=r/c.unitsPerEm,_=M.clusterAdvance??(M.cp?.advanceWidth||0)*g,G=M.clusterX??M.x,p=o.style==="underscore"||o.style==="block"?r*.5:y;I=e.dstRect.x+a+(M.rtl?G-S-p:G+_+S),T=M.y+re.y+a}o.style==="underscore"?t.renderer.drawRect(n,{x:I,y:T,width:r*.5,height:y},s,0,{opacity:e.opacity??1}):o.style==="block"?t.renderer.drawRect(n,{x:I,y:T-r*.8,width:r*.5,height:r},s,0,{opacity:e.opacity??1}):t.renderer.drawRect(n,{x:I,y:T-r*.8,width:y,height:r},s,0,{opacity:e.opacity??1})}}we();function Tt(t){let e=t.trim().replace(",",".").split(":");if(e.length<2||e.length>3)throw new Error(`Invalid timestamp: ${t}`);if(e.length===2){let[d,u]=e;return parseInt(d,10)*60+parseFloat(u)}let[i,r,c]=e;return parseInt(i,10)*3600+parseInt(r,10)*60+parseFloat(c)}function Ut(t){let n=t.replace(/\r\n/g,`
2
2
  `).split(`
3
3
  `),e=[];for(let i=0;i<n.length;i++){let r=n[i],c=n[i+1];if(r?.match(/([0-9]+)/)&&c?.includes(" --> ")){let d=c.split(" --> "),u=Tt(d[0]),m=Tt(d[1]);e.push({text:"",startMs:u*1e3,endMs:m*1e3,confidence:1,timestampMs:(u+m)/2*1e3})}else r?.includes(" --> ")||(r?.trim()===""?e.length>0&&(e[e.length-1].text=e[e.length-1].text.trim()):e.length>0&&(e[e.length-1].text+=r+`
4
4
  `))}return{captions:e.map(i=>({...i,text:i.text.trimEnd()}))}}function Dt(t,n,e=!0){if(!t||t.length===0)return null;let i=t.find(r=>n>=r.startMs&&n<r.endMs);return i||(!e&&t.length>0?t[0]:null)}function un(t,n,e){if(!t||t.length===0)return 160;let i=n.fontSize??48,r=n.letterSpacing??0,c=n.lineHeight!==void 0&&n.lineHeight<10?n.lineHeight*i:n.lineHeight??i*1.2,d=n.padding??(n.background?12:0),u=e?Math.max(10,e-d*2):void 0,m=n.fontFamily??"Inter";L.isFailed(m)&&(m="Inter");let C=L.getFont(m,n.fontWeight,null,void 0,i),h=0;for(let k of t){if(!k.text)continue;let a=0;if(C&&C.codePoints){let w=be.measure(k.text,C,i,r,c,u);a=Math.ceil(w.height)}else{let w=k.text.split(`
@@ -1,4 +1,4 @@
1
- import{a as F,d as L,e as N,f as W,g as C,h as V,j as B,k as H,l as $,m as E}from"./chunk-IB6GZJOL.mjs";import{A as D,w as U}from"./chunk-F4F2UDRX.mjs";import{g as p}from"./chunk-Y4NIR77Z.mjs";p();p();var fe=`
1
+ import{a as F,d as L,e as N,f as W,g as C,h as V,j as B,k as H,l as $,m as E}from"./chunk-IB6GZJOL.mjs";import{c as U,g as D}from"./chunk-KOVN277Z.mjs";import{g as p}from"./chunk-Y4NIR77Z.mjs";p();p();var fe=`
2
2
  struct TileOffsetUniforms {
3
3
  offsetX : f32,
4
4
  offsetY : f32,
@@ -1,4 +1,4 @@
1
- import{a as p}from"./chunk-GZVPVOHB.mjs";import{A as u,c as n,z as f}from"./chunk-F4F2UDRX.mjs";import{g as t}from"./chunk-Y4NIR77Z.mjs";t();t();var P=["threshold","ratio","attack","release","knee","makeupGain"],y=()=>`
1
+ import{a as p}from"./chunk-K3C6GUQD.mjs";import{f,g as u}from"./chunk-KOVN277Z.mjs";import{c as n}from"./chunk-ULOFDFHJ.mjs";import{g as t}from"./chunk-Y4NIR77Z.mjs";t();t();var P=["threshold","ratio","attack","release","knee","makeupGain"],y=()=>`
2
2
  struct Uniforms {
3
3
  sampleRate : f32,
4
4
  threshold : f32,
@@ -1,4 +1,4 @@
1
- import{d as w,h as G,i as P}from"./chunk-IB6GZJOL.mjs";import{A as b}from"./chunk-F4F2UDRX.mjs";import{g as u}from"./chunk-Y4NIR77Z.mjs";u();u();u();function W(e,r){let n=[];for(let i=0;i<r;i++){let c=i/(r-1)*100;for(let l=0;l<e;l++){let o=l/(e-1)*100;n.push({x:o,y:c})}}return n}var F=`
1
+ import{d as w,h as G,i as P}from"./chunk-IB6GZJOL.mjs";import{g as b}from"./chunk-KOVN277Z.mjs";import{g as u}from"./chunk-Y4NIR77Z.mjs";u();u();u();function W(e,r){let n=[];for(let i=0;i<r;i++){let c=i/(r-1)*100;for(let l=0;l<e;l++){let o=l/(e-1)*100;n.push({x:o,y:c})}}return n}var F=`
2
2
  struct MeshUniforms {
3
3
  gridSize : vec2<f32>,
4
4
  layerSize : vec2<f32>,
@@ -1,4 +1,4 @@
1
- import{a as le}from"./chunk-2GA735OZ.mjs";import{b as se,c as ue}from"./chunk-3DXMWDQ3.mjs";import{a as te,d as ae,e as G,g as ie,h as _,j as ne,k as re,l as oe,m as L}from"./chunk-IB6GZJOL.mjs";import{a as r}from"./chunk-6FULVULN.mjs";import{A as ee,x as Z}from"./chunk-F4F2UDRX.mjs";import{g as n}from"./chunk-Y4NIR77Z.mjs";n();n();n();n();var N=0,U=1,V=.5,O=50,P=0,F=100,B=0,W=50,H=-100,z=100,ye=r.enum(["Alpha","Luminance","Red","Green","Blue"]),De=r.enum(["Composite","MatteOnly","DecontaminatedRGB"]),we=le().field("decontaminateAmount",r.number().multipleOf(.01).min(N).max(U).default(.7),{bindable:!0,dataTypes:["Number","Signal"],label:"Decontaminate Colors",description:"Amount of edge color spill decontamination/defringing (0.0\u20131.0)."}).field("radius",r.number().multipleOf(.1).min(V).max(O).default(2),{bindable:!0,dataTypes:["Number","Signal"],label:"Edge Detection Radius (px)",description:"Radius in pixels around alpha transitions to refine and decontaminate."}).field("smooth",r.number().min(P).max(F).default(5),{bindable:!0,dataTypes:["Number","Signal"],label:"Smoothness",description:"Matte edge smoothing curve intensity (0\u2013100)."}).field("feather",r.number().multipleOf(.1).min(B).max(W).default(.5),{bindable:!0,dataTypes:["Number","Signal"],label:"Feather (px)",description:"Sub-pixel gaussian softness along the matte boundary."}).field("shiftEdge",r.number().min(H).max(z).default(0),{bindable:!0,dataTypes:["Number","Signal"],label:"Shift Edge (%)",description:"Contract (<0) or expand (>0) the edge boundary (-100% to +100%)."}).field("matteChannel",ye.default("Alpha"),{label:"Matte Channel",description:"Channel to extract matte from (Alpha, Luminance, Red, Green, Blue)."}).field("outputMode",De.default("Composite"),{label:"Output Mode",description:"Composite (decontaminated RGB + refined alpha), MatteOnly (grayscale mask), DecontaminatedRGB (clean RGB with full alpha)."}).build(),Oe=we.schema,Pe=r.union([se,ue]);n();var Ge={Alpha:0,Luminance:1,Red:2,Green:3,Blue:4},_e={Composite:0,MatteOnly:1,DecontaminatedRGB:2},Le=`
1
+ import{a as le}from"./chunk-2GA735OZ.mjs";import{b as se,c as ue}from"./chunk-3DXMWDQ3.mjs";import{a as te,d as ae,e as G,g as ie,h as _,j as ne,k as re,l as oe,m as L}from"./chunk-IB6GZJOL.mjs";import{a as r}from"./chunk-6FULVULN.mjs";import{d as Z,g as ee}from"./chunk-KOVN277Z.mjs";import{g as n}from"./chunk-Y4NIR77Z.mjs";n();n();n();n();var N=0,U=1,V=.5,O=50,P=0,F=100,B=0,W=50,H=-100,z=100,ye=r.enum(["Alpha","Luminance","Red","Green","Blue"]),De=r.enum(["Composite","MatteOnly","DecontaminatedRGB"]),we=le().field("decontaminateAmount",r.number().multipleOf(.01).min(N).max(U).default(.7),{bindable:!0,dataTypes:["Number","Signal"],label:"Decontaminate Colors",description:"Amount of edge color spill decontamination/defringing (0.0\u20131.0)."}).field("radius",r.number().multipleOf(.1).min(V).max(O).default(2),{bindable:!0,dataTypes:["Number","Signal"],label:"Edge Detection Radius (px)",description:"Radius in pixels around alpha transitions to refine and decontaminate."}).field("smooth",r.number().min(P).max(F).default(5),{bindable:!0,dataTypes:["Number","Signal"],label:"Smoothness",description:"Matte edge smoothing curve intensity (0\u2013100)."}).field("feather",r.number().multipleOf(.1).min(B).max(W).default(.5),{bindable:!0,dataTypes:["Number","Signal"],label:"Feather (px)",description:"Sub-pixel gaussian softness along the matte boundary."}).field("shiftEdge",r.number().min(H).max(z).default(0),{bindable:!0,dataTypes:["Number","Signal"],label:"Shift Edge (%)",description:"Contract (<0) or expand (>0) the edge boundary (-100% to +100%)."}).field("matteChannel",ye.default("Alpha"),{label:"Matte Channel",description:"Channel to extract matte from (Alpha, Luminance, Red, Green, Blue)."}).field("outputMode",De.default("Composite"),{label:"Output Mode",description:"Composite (decontaminated RGB + refined alpha), MatteOnly (grayscale mask), DecontaminatedRGB (clean RGB with full alpha)."}).build(),Oe=we.schema,Pe=r.union([se,ue]);n();var Ge={Alpha:0,Luminance:1,Red:2,Green:3,Blue:4},_e={Composite:0,MatteOnly:1,DecontaminatedRGB:2},Le=`
2
2
  struct RefineEdgeUniforms {
3
3
  dirX : f32,
4
4
  dirY : f32,
@@ -0,0 +1 @@
1
+ import{a as L,c as F}from"./chunk-5RRKGN2U.mjs";import{f,g as m}from"./chunk-Y4NIR77Z.mjs";m();var R=8,$=/^\s*(linear|radial|conic)-gradient\(\s*([\s\S]*)\)\s*$/i;function ne(n){return typeof n=="string"&&$.test(n)}function te(n){let e=[],r=0,o="";for(let t of n)t==="("&&r++,t===")"&&r--,t===","&&r===0?(e.push(o.trim()),o=""):o+=t;return o.trim()&&e.push(o.trim()),e}function k(n){let e=/^(-?[\d.]+)(deg|turn|rad|grad)?$/i.exec(n.trim());if(!e)return null;let r=parseFloat(e[1]);switch((e[2]??"deg").toLowerCase()){case"turn":return r*360;case"rad":return r*180/Math.PI;case"grad":return r*.9;default:return r}}var C={top:0,right:90,bottom:180,left:270,"top right":45,"right top":45,"bottom right":135,"right bottom":135,"bottom left":225,"left bottom":225,"top left":315,"left top":315},B={left:0,top:0,center:.5,right:1,bottom:1};function oe(n){let e=n.map(t=>t in B?{v:B[t],axis:t==="top"||t==="bottom"?"y":t==="left"||t==="right"?"x":"any"}:{v:t.endsWith("%")?parseFloat(t)/100:.5,axis:"any"}),r=.5,o=.5;return e.length===1?e[0].axis==="y"?o=e[0].v:r=e[0].v:e.length>=2&&(e[0].axis==="y"||e[1].axis==="x"?(o=e[0].v,r=e[1].v):(r=e[0].v,o=e[1].v)),[r,o]}function ie(n){let e=/^((?:[a-z]+\([^)]*\))|#[0-9a-f]+|[a-z]+)\s*(.*)$/i.exec(n.trim());if(!e)return null;let r=F(e[1]);if(!r)return null;let o=[];for(let t of e[2].split(/\s+/).filter(Boolean))if(t.endsWith("%"))o.push(parseFloat(t)/100);else if(t==="0")o.push(0);else if(/(deg|turn|rad|grad)$/i.test(t)){let i=k(t);i!==null&&o.push(i/360)}return{color:r,positions:o.filter(t=>Number.isFinite(t))}}function se(n){let e=n.length;if(e===0)return[];let r=n.map(t=>t.position);r[0]===void 0&&(r[0]=0),r[e-1]===void 0&&(r[e-1]=1);let o=-1/0;for(let t=0;t<e;t++){let i=r[t];i!==void 0&&(r[t]=Math.max(i,o),o=r[t])}for(let t=1;t<e;t++){if(r[t]!==void 0)continue;let i=t;for(;r[i]===void 0;)i++;let a=r[t-1],s=r[i];for(let u=t;u<i;u++)r[u]=a+(s-a)*(u-t+1)/(i-t+1)}return n.map((t,i)=>({offset:r[i],color:t.color}))}var A=new Map;function ae(n){let e=A.get(n);if(e!==void 0)return e;let r=ce(n);return A.size>512&&A.clear(),A.set(n,r),r}function ce(n){let e=$.exec(n);if(!e)return null;let r=e[1].toLowerCase(),o=te(e[2]),t={type:r,angle:180,center:[.5,.5],shape:"ellipse",from:0,stops:[]},i=o[0]?.toLowerCase().trim()??"",a=!1;if(r==="linear")if(i.startsWith("to ")){let u=i.slice(3).trim().replace(/\s+/g," ");u in C&&(t.angle=C[u],a=!0)}else{let u=k(i);u!==null&&(t.angle=u,a=!0)}else{let u=i.split(/\s+/).filter(Boolean),l=u.indexOf("at"),c=l>=0?u.slice(0,l):u;if(l>=0||c.some(p=>p==="circle"||p==="ellipse"||p==="from"||/^closest|^farthest/.test(p)||r==="radial"&&/px$/.test(p)))if(a=!0,l>=0&&(t.center=oe(u.slice(l+1))),r==="radial"){c.includes("circle")&&(t.shape="circle");let p=c.find(g=>/^(closest|farthest)-(side|corner)$/.test(g));p&&(t.extent=p);let y=c.filter(g=>/px$/.test(g)).map(g=>parseFloat(g));y.length===1?(t.shape="circle",t.radius=[y[0],y[0]]):y.length>=2&&(t.radius=[y[0],y[1]])}else{let p=c.indexOf("from");p>=0&&c[p+1]&&(t.from=k(c[p+1])??0)}}let s=[];for(let u of a?o.slice(1):o){let l=ie(u);if(!l)return null;l.positions.length===0&&s.push({color:l.color});for(let c of l.positions)s.push({color:l.color,position:c})}return s.length===0?null:(s.length===1&&s.push({...s[0]}),t.stops=se(s),t)}function tr(n){if(n.length<=R)return n;let e=[],r=n[0].offset,o=n[n.length-1].offset;for(let t=0;t<R;t++){let i=r+(o-r)*t/(R-1),a=1;for(;a<n.length-1&&n[a].offset<i;)a++;let s=n[a-1],u=n[a],l=u.offset-s.offset,c=l>0?Math.min(1,Math.max(0,(i-s.offset)/l)):1;e.push({offset:i,color:s.color.map((d,p)=>d+(u.color[p]-d)*c)})}return e}function or(n){let e=n.map(r=>L(r.color[0],r.color[1],r.color[2]));return n.map((r,o)=>{let t=e[o];if(r.color[3]<1e-4){let i=n.slice(0,o).reverse().findIndex(l=>l.color[3]>1e-4),a=n.slice(o+1).findIndex(l=>l.color[3]>1e-4),s=i>=0?o-1-i:-1,u=a>=0?o+1+a:-1;if(s>=0&&u>=0){let l=e[s],c=e[u];t=[(l[0]+c[0])/2,(l[1]+c[1])/2,(l[2]+c[2])/2]}else s>=0?t=e[s]:u>=0&&(t=e[u])}return[t[0],t[1],t[2],r.color[3]]})}function G(n){return n.map(e=>typeof e=="string"?e:`${e.color} ${Math.round(e.offset*1e4)/100}%`).join(", ")}var ir={linear(n,e=180){return`linear-gradient(${e}deg, ${G(n)})`},radial(n,e={}){let r=e.at??[.5,.5];return`radial-gradient(${e.radius!==void 0?`${e.radius}px`:e.circle?"circle":"ellipse"} at ${r[0]*100}% ${r[1]*100}%, ${G(n)})`},conic(n,e={}){let r=e.at??[.5,.5];return`conic-gradient(from ${e.from??0}deg at ${r[0]*100}% ${r[1]*100}%, ${G(n)})`},parse:ae,is:ne};m();m();m();function P(n,e){let r=0,o=1;for(;;){if(e>=n.length)throw new Error("ONNX model: truncated varint");let t=n[e++];if(r+=(t&127)*o,t<128)return[r,e];o*=128}}function v(n){let e=[],r=0;for(;r<n.length;){let o=r,[t,i]=P(n,r);r=i;let a=Math.floor(t/8),s=t&7,u=n.subarray(r,r);if(s===0)r=P(n,r)[1];else if(s===1)r+=8;else if(s===5)r+=4;else if(s===2){let[l,c]=P(n,r);u=n.subarray(c,c+l),r=c+l}else throw new Error(`ONNX model: unsupported wire type ${s}`);if(r>n.length)throw new Error("ONNX model: truncated field");e.push({number:a,wire:s,raw:n.subarray(o,r),body:u})}return e}var ue=new TextDecoder,H=new TextEncoder;function I(n,e){return v(n).filter(r=>r.number===e&&r.wire===2).map(r=>ue.decode(r.body))}function S(n,e){return I(n,e)[0]}function x(n){let e=[];for(;n>=128;)e.push(n%128|128),n=Math.floor(n/128);return e.push(n),e}function b(n,e){let r=[...x(n*8+2),...x(e.length)],o=new Uint8Array(r.length+e.length);return o.set(r,0),o.set(e,r.length),o}function h(n){let e=new Uint8Array(n.reduce((o,t)=>o+t.length,0)),r=0;for(let o of n)e.set(o,r),r+=o.length;return e}var ye=4,ge=5,ve=2,j=1,Pe=3,he=5,we=1;function Y(n){let e=[];if(n.wire===2){let r=0;for(;r<n.body.length;){let[o,t]=P(n.body,r);e.push(o),r=t}}else if(n.wire===0){let r=0;r=P(n.raw,r)[1],e.push(P(n.raw,r)[0])}return e}function z(n){return v(n).filter(e=>e.number===we).flatMap(Y)}function X(n){let e;try{e=v(n).find(t=>t.number===7&&t.wire===2)}catch{return!0}if(!e)return!0;let r=new Map,o=[];for(let t of v(e.body))if(t.number===5){let i=S(t.body,8);i!==void 0&&r.set(i,z(t.body))}else if(t.number===1){let i=S(t.body,ye);if(i!=="Conv"&&i!=="Constant")continue;let a=v(t.body).filter(d=>d.number===ge).map(d=>d.body);if(i==="Constant"){let d=a.find(g=>S(g,j)==="value"),p=d&&v(d).find(g=>g.number===he),y=I(t.body,ve)[0];p&&y&&r.set(y,z(p.body));continue}let s=a.find(d=>S(d,j)==="group"),u=s&&v(s).find(d=>d.number===Pe),l=u?Y(u)[0]??1:1,c=I(t.body,1)[1];l>1&&c&&o.push({weight:c,group:l})}return o.some(({weight:t})=>{let i=r.get(t)?.[1];return i!==void 0&&i>1&&i%4!==0})}var xe="onnxruntime-web",Se=()=>import(xe),T=class{kind="webgpu";_loader;_providers;_wasmFallback;_ortPromise;device;constructor(e={}){this._loader=e.loader??Se,this._providers=e.executionProviders??["webgpu","wasm"],this._wasmFallback=e.wasmFallback!==!1,this.device=e.device}ort(){return this._ortPromise||(this._ortPromise=this._loader().catch(e=>{throw this._ortPromise=void 0,new Error(`onnxruntime-web failed to load (${String(e)}). Install it in the browser bundle or pass a custom loader.`)})),this._ortPromise}async createOrtSession(e,r,o){try{let t=this.device,i=X(r)?"NCHW":"NHWC";return await e.InferenceSession.create(r,{executionProviders:this._providers.map(a=>Oe(a,t,i)),graphOptimizationLevel:"all",externalData:o?.externalData?.map(({path:a,data:s})=>({path:a,data:s})),logSeverityLevel:3})}catch(t){if(!this._wasmFallback||!this._providers.includes("webgpu"))throw t;return await e.InferenceSession.create(r,{executionProviders:["wasm"],graphOptimizationLevel:"all",externalData:o?.externalData?.map(({path:i,data:a})=>({path:i,data:a})),logSeverityLevel:3})}}async createSession(e,r){let o=await this.ort(),t=await V(o,()=>this.createOrtSession(o,e,r)),i=async a=>{let s={};for(let c of a){let d=a.length===1&&!t.inputNames.includes(c.name)?t.inputNames[0]??c.name:c.name;if(c.gpuBuffer&&!(c.data instanceof Float32Array))throw new Error("GPU-buffer vision inputs must be float32.");s[d]=c.gpuBuffer&&o.Tensor.fromGpuBuffer?o.Tensor.fromGpuBuffer(c.gpuBuffer,{dataType:"float32",dims:[...c.dims]}):new o.Tensor(c.data instanceof Uint8Array?"bool":c.data instanceof BigInt64Array?"int64":c.data instanceof Int32Array?"int32":"float32",c.data,[...c.dims])}let u=await V(o,()=>t.run(s)),l={};for(let[c,d]of Object.entries(u))l[c]={data:d.data,dims:[...d.dims]};return l};return{run:a=>i([a]),runMany:i,release:()=>{V(o,()=>t.release())}}}};function Oe(n,e,r){return n!=="webgpu"?n:e?{name:n,preferredLayout:r,device:e}:{name:n,preferredLayout:r}}var K=new WeakMap;function V(n,e){let r=(K.get(n)??Promise.resolve()).then(e,e);return K.set(n,r.catch(()=>{})),r}m();m();var _e=1,Ee=8,Ae=7,Ie=2,Te=1,Ne=2,Ue=11,Re=12,Ge=1,ke=2,Ve=4,We=1,De=2,Me=1,Le=1,Fe=2,Ce=1,Be=1,$e=1,O=(n,e)=>b(n,H.encode(e)),N=(n,e)=>new Uint8Array([...x(n*8),...x(e)]);function Q(n){let e=b(Ce,N(Be,1)),r=h([N(Le,$e),b(Fe,e)]);return h([O(We,n),b(De,b(Me,r))])}var Z;function J(){return Z??=h([N(_e,8),b(Ee,N(Ie,13)),b(Ae,h([b(Te,h([O(Ge,"x"),O(ke,"y"),O(Ve,"Identity")])),O(Ne,"probe"),b(Ue,Q("x")),b(Re,Q("y"))]))]),Z}m();var He="onnxruntime-web/webgpu",je="webgpu",_,ze=/llvmpipe|lavapipe|swiftshader|software/i;function qe(){return _||(_=(async()=>{let n=globalThis;if(!n.navigator?.gpu){let{create:i,globals:a}=await import(je);Object.assign(globalThis,a),n.navigator??={},Object.defineProperty(n.navigator,"gpu",{value:i([]),configurable:!0,writable:!0})}let r=await(n.navigator?.gpu).requestAdapter({powerPreference:"high-performance"});if(!r)throw new Error("No WebGPU adapter.");let o=r.info??{},t=[o.vendor,o.architecture,o.device,o.description].filter(Boolean).join(" ");if(r.isFallbackAdapter===!0||o.isFallbackAdapter===!0||ze.test(t))throw new Error(`WebGPU adapter is a software rasterizer (${t}).`);Ye(r.features)})(),_.catch(()=>{_=void 0})),_}function Ye(n){let e=Object.getPrototypeOf(n);!e||typeof e.keys!="function"||(typeof e.forEach!="function"&&Object.defineProperty(e,"forEach",{value(r,o){for(let t of this.keys())r.call(o,t,t,this)},configurable:!0,writable:!0}),typeof e.values!="function"&&Object.defineProperty(e,"values",{value(){return this.keys()},configurable:!0,writable:!0}),typeof e.entries!="function"&&Object.defineProperty(e,"entries",{*value(){for(let r of this.keys())yield[r,r]},configurable:!0,writable:!0}))}var U=class{kind="webgpu";device;_inner;constructor(e={}){let r=e.loader??(async()=>{await qe();let o=await import(He);return o.env?.wasm&&(o.env.wasm.numThreads=1),o.env?.webgpu&&(o.env.webgpu.powerPreference="high-performance"),o});this.device=e.device,this._inner=new T({wasmFallback:!1,...e,loader:r})}createSession(e,r){return this._inner.createSession(e,r)}};function Xe(n){return n.backend?n.backend():Promise.resolve(n.kind==="webgpu"?"webgpu":"cpu")}var W,D;function Or(n){D=n}function _r(n){W=n}var Ke=Symbol.for("framefields.vision.backend");function E(n){let e=globalThis[Ke];if(typeof e=="function")try{e(n)}catch{}}function Qe(){let n=typeof f<"u"?f.env.FRAMEFIELDS_VISION_PROVIDER?.trim().toLowerCase():void 0;return n==="webgpu"||n==="cuda"||n==="cpu"?n:"auto"}var M=class{_resolved;_resolving;get kind(){return this._resolved?.kind??"webgpu"}get device(){return this._resolved?.device}async createSession(e,r){if(this._resolved)return this._resolved.createSession(e,r);if(this._resolving)return(await this._resolving).provider.createSession(e,r);let{provider:o,first:t}=await this.start(e,r);return t??o.createSession(e,r)}async backend(){!this._resolved&&!this._resolving&&(await this.start(J())).first?.release();let e=this._resolved??(await this._resolving)?.provider;if(!e)throw new Error("No vision backend could be resolved.");return Xe(e)}start(e,r){let o=this.resolve(e,r);return this._resolving=o,o.then(({provider:t})=>{this._resolved=t},()=>{this._resolving=void 0}),o}async resolve(e,r){let o=Qe();if(o==="cpu")return E({backend:"cpu",sharedDevice:!1,reason:"FRAMEFIELDS_VISION_PROVIDER=cpu"}),{provider:new w};if(o==="cuda")return E({backend:"cuda",sharedDevice:!1}),{provider:ee()};if(o==="auto"&&await Ze())try{let i=await new w({executionProviders:["cuda"]}).createSession(e,r);return E({backend:"cuda",sharedDevice:!1}),i.release(),{provider:ee()}}catch{}let t=new U({wasmFallback:!1,device:D});try{let i=await t.createSession(e,r);return E({backend:"webgpu",sharedDevice:!!D}),{provider:t,first:i}}catch(i){if(o==="webgpu")throw i;return E({backend:"cpu",sharedDevice:!1,reason:i instanceof Error?i.message:String(i)}),{provider:new w}}}};function ee(){return new w({executionProviders:["cuda","cpu"]})}async function Ze(){if(typeof f>"u"||f.platform!=="linux")return!1;try{let{access:n}=await import("./shims/fs-promises.mjs");return await n("/proc/driver/nvidia/version"),!0}catch{return!1}}var re;function Er(){return W?W():(re??=new M,re)}async function Je(){let n=await import("./shims/os.mjs"),e=typeof n.availableParallelism=="function"?n.availableParallelism():n.cpus().length,r=await er();return Math.max(1,r!==void 0?Math.min(e,r):e)}async function er(){if(typeof f>"u"||f.platform!=="linux")return;let{readFile:n}=await import("./shims/fs-promises.mjs"),e=a=>n(a,"utf8").then(s=>s.trim(),()=>{}),r=(a,s)=>a>0&&s>0?Math.ceil(a/s):void 0,o=await e("/sys/fs/cgroup/cpu.max");if(o!==void 0){let[a,s]=o.split(/\s+/);return a==="max"?void 0:r(Number(a),Number(s))}let t=await e("/sys/fs/cgroup/cpu/cpu.cfs_quota_us"),i=await e("/sys/fs/cgroup/cpu/cpu.cfs_period_us");if(!(t===void 0||i===void 0))return r(Number(t),Number(i))}async function rr(){let n=typeof f<"u"?Number.parseInt(f.env.FRAMEFIELDS_VISION_THREADS??"",10):Number.NaN;if(Number.isFinite(n)&&n>0)return n;if(!(typeof f>"u"||f.platform!=="linux"))return Je()}var w=class{kind="node";_executionProviders;constructor(e={}){this._executionProviders=e.executionProviders??["cpu"]}backend(){return Promise.resolve(this._executionProviders.includes("cuda")?"cuda":"cpu")}ortPromise;async ort(){return this.ortPromise||(this.ortPromise=import("./onnxruntime-node-JCLVQ7P3.mjs").catch(e=>{throw this.ortPromise=void 0,new Error(`onnxruntime-node failed to load (${String(e)}). Install it in the environment or provide a custom SessionProvider.`)})),this.ortPromise}async createSession(e,r){let o=await this.ort(),t=await rr(),i=await o.InferenceSession.create(e,{executionProviders:[...this._executionProviders],externalData:r?.externalData?.map(({path:s,data:u})=>({path:s,data:u})),graphOptimizationLevel:"all",...t!==void 0?{intraOpNumThreads:t,interOpNumThreads:1}:{}}),a=async s=>{let u={};for(let d of s){let p=s.length===1&&!i.inputNames.includes(d.name)?i.inputNames[0]??d.name:d.name;if(d.gpuBuffer)throw new Error("CPU vision sessions do not accept GPU buffers.");u[p]=d.data instanceof Uint8Array?new o.Tensor("bool",d.data,[...d.dims]):d.data instanceof BigInt64Array?new o.Tensor("int64",d.data,[...d.dims]):d.data instanceof Int32Array?new o.Tensor("int32",d.data,[...d.dims]):new o.Tensor("float32",d.data,[...d.dims])}let l=await i.run(u),c={};for(let[d,p]of Object.entries(l))c[d]={data:p.data,dims:[...p.dims]};return c};return{run:s=>a([s]),runMany:a,release:()=>{i.release()}}}};export{R as a,ne as b,ae as c,tr as d,or as e,ir as f,P as g,v as h,H as i,I as j,S as k,x as l,b as m,h as n,T as o,Xe as p,Or as q,_r as r,Er as s};
@@ -1 +1 @@
1
- import{k as Te,l as Ce,n as he}from"./chunk-JXUENEQO.mjs";import{a as Ee}from"./chunk-UZTA2EUU.mjs";import{c as Pe}from"./chunk-P4Y3PMJF.mjs";import{i as me,l as Z}from"./chunk-RECQ74RP.mjs";import{c as Ie,e as be}from"./chunk-32WC4FRR.mjs";import{E as ye}from"./chunk-F4F2UDRX.mjs";import{f as Y,g as ie}from"./chunk-Y4NIR77Z.mjs";ie();ie();ie();function Re(t,e){return Math.round(t*e)}function fe(t,e,n={timeOffsetSec:0}){if(!t)return t;let{operation:b,metadata:i={},children:a=[]}=t,{timeOffsetSec:y,durationLimitMs:m}=n;if(!b)return{...t,children:(a||[]).map(r=>fe(r,e,n))};let f=b.timeline,c=f?.segments||[],h=Z(t)?.durationMs??0;if(c.length>0){let r=c.reduce((P,s)=>{let F=s.endSec!=null?s.endSec-s.startSec:0,L=Math.max(1,Math.round(F*e));return P+L},0);r>0&&(h=r/e*1e3)}let p={...b},w=f?.startFrame??p.startFrame;if(typeof w=="number"){let r=Re(y,e);p.startFrame=w-r}let S={...i,durationMs:h},C=typeof w=="number"||p.op==="compose"?{timeOffsetSec:0,durationLimitMs:void 0}:{timeOffsetSec:y,durationLimitMs:m},V=(a||[]).map(r=>fe(r,e,C));return{metadata:S,operation:p,children:V}}var Ve=typeof Y<"u"&&/^(debug|trace)$/i.test(Y.env?.LOG_LEVEL??""),I={debug:(t,...e)=>{Ve&&(typeof t=="object"&&t!==null?console.info("[AudioExtractor]",t,...e):console.info(`[AudioExtractor] ${t}`,...e))},warn:(t,...e)=>{typeof t=="object"&&t!==null?console.warn("[AudioExtractor]",t,...e):console.warn(`[AudioExtractor] ${t}`,...e)},error:(t,...e)=>{typeof t=="object"&&t!==null?console.error("[AudioExtractor]",t,...e):console.error(`[AudioExtractor] ${t}`,...e)}},we=()=>{if(typeof window>"u")return Promise.resolve();let t=globalThis.scheduler;return typeof t?.yield=="function"?t.yield():new Promise(e=>setTimeout(e,0))},Be=async(t=3e4)=>{await new Promise(n=>setTimeout(n,100));let e=Date.now();return new Promise(n=>{let b=()=>{let i=typeof window<"u"&&window.renderer_delayRenderHandles?window.renderer_delayRenderHandles:[],a=typeof globalThis<"u"?globalThis.__GATEWAI_DELAYS__:null,y=i.length>0,m=a instanceof Set&&a.size>0;if(!y&&!m){n();return}if(Date.now()-e>t){I.warn(`[AudioExtractor] waitForDelayRender timed out waiting for handles: ${JSON.stringify({browserHandles:i,globalDelays:a?Array.from(a):[]})}`),n();return}setTimeout(b,50)};b()})};async function rt(t){let e=await De(t);return e?{channels:e.channels,sampleRate:e.sampleRate}:null}var ze=.5;async function De(t,e){I.debug(`[AudioExtractor] decodeAudioSource started for url: ${t}`);try{if(typeof window<"u"&&typeof window.document<"u"&&!(typeof Y<"u"&&Y.versions&&Y.versions.node)){I.debug(`[AudioExtractor] Browser detected. Fetching arrayBuffer for ${t}...`);let i=window.AudioContext||window.webkitAudioContext;if(!i)throw new Error("AudioContext is not supported in this browser");let a=new i;try{let y=await fetch(t);if(I.debug(`[AudioExtractor] Fetch response status for ${t}: ${y.status} (${y.statusText})`),!y.ok)throw new Error(`Failed to fetch audio source: ${y.statusText}`);let m=await y.arrayBuffer();I.debug(`[AudioExtractor] Fetched ${m.byteLength} bytes. Decoding audio data...`);let f=await a.decodeAudioData(m);I.debug(`[AudioExtractor] Decoded successfully: ${f.numberOfChannels} channels, sampleRate: ${f.sampleRate}, duration: ${f.duration}s`);let c=[];for(let h=0;h<f.numberOfChannels;h++)c.push(new Float32Array(f.getChannelData(h)));return{channels:c,sampleRate:f.sampleRate,startIndex:0,validFromSec:0,validToSec:Number.POSITIVE_INFINITY}}finally{a.close(),I.debug(`[AudioExtractor] AudioContext closed for ${t}`)}}let b=!1;try{I.debug(`[AudioExtractor] Server / Node.js detected. Acquiring from inputStore for ${t}...`);let i=await be.acquire(t);b=!0,I.debug("[AudioExtractor] inputStore acquired. Retrieving primary audio track...");let a=await i.getPrimaryAudioTrack();if(!a)return I.warn(`[AudioExtractor] No primary audio track found in input for ${t}`),null;let y=new Ie(a),m=e?Math.max(0,e.startSec-ze):0,f=y.samples(m,e?.endSec),c=[],h=0,p=48e3,w=1,S=null;I.debug(`[AudioExtractor] Starting mediabunny generator loop for ${t}...`);for await(let r of f){S===null&&(S=r.timestamp),p=r.sampleRate,w=r.numberOfChannels;let P=r.numberOfFrames;if(c.length===0)for(let s=0;s<w;s++)c.push([]);for(let s=0;s<w;s++){let F;try{let L=r.allocationSize({planeIndex:s,format:"f32-planar"});F=new Float32Array(L/4),r.copyTo(F,{planeIndex:s,format:"f32-planar"})}catch{let L=r.allocationSize({planeIndex:s});if(r.format==="s16"||r.format==="s16-planar"){let E=new Int16Array(L/2);r.copyTo(E,{planeIndex:s}),F=new Float32Array(E.length);for(let M=0;M<E.length;M++)F[M]=(E[M]??0)/32768}else if(r.format==="s32"||r.format==="s32-planar"){let E=new Int32Array(L/4);r.copyTo(E,{planeIndex:s}),F=new Float32Array(E.length);for(let M=0;M<E.length;M++)F[M]=(E[M]??0)/2147483648}else if(r.format==="u8"||r.format==="u8-planar"){let E=new Uint8Array(L);r.copyTo(E,{planeIndex:s}),F=new Float32Array(E.length);for(let M=0;M<E.length;M++)F[M]=((E[M]??128)-128)/128}else F=new Float32Array(L/4),r.copyTo(F,{planeIndex:s})}c[s].push(F)}h+=P,r.close()}if(I.debug(`[AudioExtractor] Generator loop finished. Decoded total frames: ${h}`),h===0||c.length===0)return null;let _=c.map(r=>{let P=new Float32Array(h),s=0;for(let F of r)P.set(F,s),s+=F.length;return P}),C=0;if(m>0&&S!==null){let r=await y.getSample(0),P=r?.timestamp??await a.getFirstTimestamp();r?.close(),C=Math.round((S-P)*p)}let V=!e||(C+h)/p<e.endSec;return{channels:_,sampleRate:p,startIndex:C,validFromSec:m>0&&e?e.startSec:0,validToSec:V||!e?Number.POSITIVE_INFINITY:e.endSec}}catch(i){if(i instanceof Error&&i.message.includes("Cannot open local media file"))throw i;if(typeof Y<"u"&&Y.versions?.node)try{let{execFileSync:a}=await import("./child_process-B2TV2STW.mjs"),y=e?Math.round(Math.max(0,e.startSec)*48e3):0,m=y/48e3,f=a("ffmpeg",["-v","error",...m>0?["-ss",String(m)]:[],"-i",t,...e?["-t",String(e.endSec-m)]:[],"-f","f32le","-ar","48000","-ac","2","pipe:1"],{maxBuffer:Number.POSITIVE_INFINITY}),c=f.byteLength/4,h=c/2,p=new Float32Array(f.buffer,f.byteOffset,c),w=new Float32Array(h),S=new Float32Array(h);for(let C=0;C<h;C++)w[C]=p[C*2],S[C]=p[C*2+1];let _=!e||m+h/48e3<e.endSec;return{channels:[w,S],sampleRate:48e3,startIndex:y,validFromSec:m,validToSec:_||!e?Number.POSITIVE_INFINITY:e.endSec}}catch(a){I.warn({ffmpegErr:a},`[AudioExtractor] ffmpeg fallback decode failed for ${t}`)}return I.error({err:i},`[AudioExtractor] Failed to decode source ${t}`),null}finally{b&&be.release(t)}}catch(n){if(n instanceof Error&&n.message.includes("Cannot open local media file"))throw n;return I.error({err:n},`[AudioExtractor] Failed to decode source ${t}`),null}}async function ve(t,e,n,b,i,a,y,m){let f=new Float32Array(b);for(let c=0;c<b;c++){c>0&&c%1e5===0&&await we();let h=y+c/n*m;if(Ce(a,h))continue;let p=Te(a,h,m)*e-i,w=Math.floor(p);if(w<0||w>=t.length)continue;let S=t[w];f[c]=S+((t[w+1]??S)-S)*(p-w)}return f}async function $e(t,e,n,b,i,a,y=0){let m=new Float32Array(i),c=e/n*b,h=1e5;for(let p=0;p<i;p++){p>0&&p%h===0&&await we();let w=a+p*c-y,S=Math.floor(w),_=Math.ceil(w);if(S<0){m[p]=0;continue}if(S>=t.length)break;let C=w-S,V=t[S]??0,r=_>=0&&_<t.length?t[_]??V:V,P=V+C*(r-V);m[p]=Number.isFinite(P)?P:0}return m}var ke=.05,Ue=new Set(["Compositor","CompositorLayer"]);function Ge(t,e,n){let b=Math.max(0,-n),i=Math.min(e.length,t.length-n);for(let a=b;a<i;a++)t[n+a]+=e[a]}var pe=class{constructor(e){this.length=e}length;channels=null;get(){return this.channels??=[new Float32Array(this.length),new Float32Array(this.length)],this.channels}canAdopt(e,n){return this.channels===null&&n===0&&e.every(b=>b.length===this.length)}add(e,n){if(this.canAdopt(e,n)&&e[0]!==e[1]){this.channels=e;return}let b=this.get();for(let i=0;i<2;i++)Ge(b[i],e[i],n)}};function Ye(t){if(t.startsWith("data:"))return"inline audio";let e=t.split(/[?#]/)[0].split(/[\\/]/).pop();return e?He(e):"audio"}function He(t){try{return decodeURIComponent(t)}catch{return t}}async function at(t,e,n=48e3,b,i,a={}){I.debug(`[AudioExtractor] mixAudioTracks started. FPS: ${e}, targetSampleRate: ${n}`),await Be(),Ee.registerSignalsFromComposition(i,t);let y=Z(t)?.durationMs||1e3,m=y/1e3,f=Math.ceil(m*n);I.debug(`[AudioExtractor] Composition total duration: ${y}ms (${m}s). Total mixed samples to allocate: ${f}`);let c=new Map,h=new Set;async function p(o,l,u,g=!0){if(h.has(o))return null;let A=c.get(o),x=g?A?.find(d=>d.validFromSec<=l&&d.validToSec>=u):void 0;if(x)return x;let T=await De(o,{startSec:l,endSec:u});return T?(g&&(A||(A=[],c.set(o,A)),A.push(T)),T):(h.add(o),null)}async function w(o,l,u,g){let A=new Float32Array(l),x=new Float32Array(l);for(let T=0;T<l;){let d=Math.min(l-T,n*2),R=g+T/n*e,j=he(u,R,R+(d-1)/n*e,e);for(;j.max-j.min>3&&d>1;)d=Math.max(1,Math.floor(d/2)),j=he(u,R,R+(d-1)/n*e,e);let v=await p(o,j.min,j.max+ke,!1);if(!v)return null;let K=await ve(v.channels[0],v.sampleRate,n,d,v.startIndex,u,R,e),Q=v.channels.length>1?await ve(v.channels[1],v.sampleRate,n,d,v.startIndex,u,R,e):K;A.set(K,T),x.set(Q,T),T+=d}return[A,x]}let S=new WeakMap;function _(o){let l=S.get(o);if(l!==void 0)return l;let u=o.operation,g=!1;if(u?.op==="source"){let A=me(o);g=A==="Audio"||A==="Video"}else u?.op&&!Ue.has(u.op)&&ye.get(u.op)&&(g=!0);return!g&&o.children&&(g=o.children.some(A=>A&&_(A))),S.set(o,g),g}async function C(o,l,u,g,A,x,T){if(!o||!_(o))return null;let d=o.operation;if(!d){let B=Z(o)?.durationMs??0,z=Math.round(B/1e3*e),ne=T&&x!==null?x:x!==null?z>0?Math.min(x,z):x:z,q=Math.ceil(ne/e*n);if(q<=0)return null;let re=new pe(q);for(let X of o.children){let ae=await C(X,l,u,g,A,ne,T);if(ae){let $=X.operation,de=$?.startFrame??$?.timeline?.startFrame??0,k=Math.round(de/e*n);re.add(ae,k)}}return re.channels}let R=g*(d.volume??1)*(d.opacity===0?0:1)*(d.muted?0:1),j=A,v=d.startFrame??d.timeline?.startFrame??0,K=d.timeRemap,Q=K?{map:K,offsetFrames:0}:T?{map:T.map,offsetFrames:T.offsetFrames+v}:void 0,Se=d.op==="CompositorLayer"?v:u+v,Fe=d.timeline?.segments||[],ee=d,Me=ee.op==="CompositorLayer"?(ee.mediaStartFrame??ee.trimStartFrames??null)!==null?(ee.mediaStartFrame??ee.trimStartFrames??0)/e:Math.round((ee.trimStartSec??0)*e)/e:0,Ne=Z(o)?.durationMs??0,ue=Math.round(Ne/1e3*e),Le=T&&!K&&x!==null?x:x!==null?ue>0?Math.min(x,ue):x:ue,te=Math.ceil(Le/e*n);if(te<=0)return null;let oe=new pe(te),ge=async(B,z)=>{let ne=B?B.startSec:0,q=l+Me+ne,re=Se+z,X=0;B?X=Math.max(1,Math.round(((B.endSec??0)-B.startSec)*e)):X=ue;let ae=T&&!K&&!B&&x!==null?x:x!==null?Math.min(x,X):X,$=Math.round(z/e*n);if(d.op==="source"){let k=me(o),D=Pe(o);if(D.sourceUrl&&(k==="Audio"||k==="Video")&&R>0){let H=Math.max(.5,j*(Number(D.speed)||1)),W=Math.max(0,(Number(D.trimStartSec)||0)+q),se=ae/e,N=Math.min(te-$,Math.ceil(se*n)),ce=Q&&N>0?await w(D.sourceUrl,N,Q.map,Q.offsetFrames+z):null,U=!Q&&N>0&&$<te?await p(D.sourceUrl,W,W+N/n*H+ke):null;if(ce||U){let G,J;if(ce)[G,J]=ce;else if(U){let O=Math.round(W*U.sampleRate);G=await $e(U.channels[0],U.sampleRate,n,H,N,O,U.startIndex),J=U.channels.length>1?await $e(U.channels[1],U.sampleRate,n,H,N,O,U.startIndex):G}else throw new Error("No decoded audio");let Oe=[G,J];if(oe.canAdopt(Oe,$)){if(R!==1){for(let O=0;O<N;O++)G[O]*=R;if(J!==G)for(let O=0;O<N;O++)J[O]*=R}oe.channels=[G,J===G?G.slice():J]}else{let[O,_e]=oe.get();for(let le=0;le<N;le++){let xe=$+le;O[xe]+=G[le]*R,_e[xe]+=J[le]*R}}}await we()}(k==="Audio"||k==="Video")&&(P++,a.onProgress?.({done:P,total:r,...D.sourceUrl&&{source:Ye(D.sourceUrl)}}))}if(o.children)for(let k of o.children){let D=await C(k,q,re,R,j,ae,Q);if(D){let H=k.operation,W=H?.startFrame??H?.timeline?.startFrame??0,se=d.op==="CompositorLayer"&&H?.op==="CompositorLayer"?W-v:W,N=Math.round(se/e*n);oe.add(D,$+N)}}let de=ye.get(d.op);if(de)try{let k=ae/e,D=Math.min(te-$,Math.ceil(k*n));if(D>0&&$<te&&$>=0){let H=oe.get().map(ce=>ce.subarray($,$+D)),W=d.op==="CompositorLayer"?Se:0,se=((re-W)/e+q-Me)*1e3,N=Z(o)?.durationMs??void 0;await de(H,n,o,{device:b,frame:re,fps:e,renderId:i,elapsedMs:se,durationMs:N})}}catch(k){I.error({err:k},`[AudioExtractor] Custom plugin for operation '${d.op}' failed`)}};if(Fe.length>0){let B=0;for(let z of Fe){let ne=(z.endSec??0)-z.startSec,q=Math.max(1,Math.round(ne*e));await ge(z,B),B+=q}}else await ge(null,0);return oe.channels}let V=fe(t,e),r=0,P=0;if(a.onProgress){let o=l=>{if(!l)return;let u=l.operation;if(u?.op==="source"){let g=me(l);(g==="Audio"||g==="Video")&&(r+=Math.max(1,u.timeline?.segments?.length??0))}for(let g of l.children??[])o(g)};o(V),a.onProgress({done:0,total:r})}let s=await C(V,0,0,1,1,null),F=s?.every(o=>o.length===f)&&s[0]!==s[1]?s:[new Float32Array(f),new Float32Array(f)],[L,E]=F;if(s&&F!==s)for(let o=0;o<2;o++){let l=F[o],u=s[o],g=Math.min(u.length,l.length);for(let A=0;A<g;A++)l[A]=u[A]}c.clear();let M=0;for(let o=0;o<f;o++){let l=Math.abs(L[o]??0),u=Math.abs(E[o]??0);l>M&&(M=l),u>M&&(M=u)}let Ae=M>.95?.92/M:1;for(let o=0;o<f;o++){let l=(L[o]??0)*Ae,u=(E[o]??0)*Ae;L[o]=Number.isFinite(l)?Math.tanh(l):0,E[o]=Number.isFinite(u)?Math.tanh(u):0}return{channels:F,sampleRate:n}}export{rt as a,at as b};
1
+ import{k as Te,l as Ce,n as he}from"./chunk-HOV6DDBZ.mjs";import{a as Ee}from"./chunk-UZTA2EUU.mjs";import{c as Pe}from"./chunk-P4Y3PMJF.mjs";import{i as me,l as Z}from"./chunk-RECQ74RP.mjs";import{c as Ie,e as be}from"./chunk-32WC4FRR.mjs";import{k as ye}from"./chunk-KOVN277Z.mjs";import{f as Y,g as ie}from"./chunk-Y4NIR77Z.mjs";ie();ie();ie();function Re(t,e){return Math.round(t*e)}function fe(t,e,n={timeOffsetSec:0}){if(!t)return t;let{operation:b,metadata:i={},children:a=[]}=t,{timeOffsetSec:y,durationLimitMs:m}=n;if(!b)return{...t,children:(a||[]).map(r=>fe(r,e,n))};let f=b.timeline,c=f?.segments||[],h=Z(t)?.durationMs??0;if(c.length>0){let r=c.reduce((P,s)=>{let F=s.endSec!=null?s.endSec-s.startSec:0,L=Math.max(1,Math.round(F*e));return P+L},0);r>0&&(h=r/e*1e3)}let p={...b},w=f?.startFrame??p.startFrame;if(typeof w=="number"){let r=Re(y,e);p.startFrame=w-r}let S={...i,durationMs:h},C=typeof w=="number"||p.op==="compose"?{timeOffsetSec:0,durationLimitMs:void 0}:{timeOffsetSec:y,durationLimitMs:m},V=(a||[]).map(r=>fe(r,e,C));return{metadata:S,operation:p,children:V}}var Ve=typeof Y<"u"&&/^(debug|trace)$/i.test(Y.env?.LOG_LEVEL??""),I={debug:(t,...e)=>{Ve&&(typeof t=="object"&&t!==null?console.info("[AudioExtractor]",t,...e):console.info(`[AudioExtractor] ${t}`,...e))},warn:(t,...e)=>{typeof t=="object"&&t!==null?console.warn("[AudioExtractor]",t,...e):console.warn(`[AudioExtractor] ${t}`,...e)},error:(t,...e)=>{typeof t=="object"&&t!==null?console.error("[AudioExtractor]",t,...e):console.error(`[AudioExtractor] ${t}`,...e)}},we=()=>{if(typeof window>"u")return Promise.resolve();let t=globalThis.scheduler;return typeof t?.yield=="function"?t.yield():new Promise(e=>setTimeout(e,0))},Be=async(t=3e4)=>{await new Promise(n=>setTimeout(n,100));let e=Date.now();return new Promise(n=>{let b=()=>{let i=typeof window<"u"&&window.renderer_delayRenderHandles?window.renderer_delayRenderHandles:[],a=typeof globalThis<"u"?globalThis.__GATEWAI_DELAYS__:null,y=i.length>0,m=a instanceof Set&&a.size>0;if(!y&&!m){n();return}if(Date.now()-e>t){I.warn(`[AudioExtractor] waitForDelayRender timed out waiting for handles: ${JSON.stringify({browserHandles:i,globalDelays:a?Array.from(a):[]})}`),n();return}setTimeout(b,50)};b()})};async function rt(t){let e=await De(t);return e?{channels:e.channels,sampleRate:e.sampleRate}:null}var ze=.5;async function De(t,e){I.debug(`[AudioExtractor] decodeAudioSource started for url: ${t}`);try{if(typeof window<"u"&&typeof window.document<"u"&&!(typeof Y<"u"&&Y.versions&&Y.versions.node)){I.debug(`[AudioExtractor] Browser detected. Fetching arrayBuffer for ${t}...`);let i=window.AudioContext||window.webkitAudioContext;if(!i)throw new Error("AudioContext is not supported in this browser");let a=new i;try{let y=await fetch(t);if(I.debug(`[AudioExtractor] Fetch response status for ${t}: ${y.status} (${y.statusText})`),!y.ok)throw new Error(`Failed to fetch audio source: ${y.statusText}`);let m=await y.arrayBuffer();I.debug(`[AudioExtractor] Fetched ${m.byteLength} bytes. Decoding audio data...`);let f=await a.decodeAudioData(m);I.debug(`[AudioExtractor] Decoded successfully: ${f.numberOfChannels} channels, sampleRate: ${f.sampleRate}, duration: ${f.duration}s`);let c=[];for(let h=0;h<f.numberOfChannels;h++)c.push(new Float32Array(f.getChannelData(h)));return{channels:c,sampleRate:f.sampleRate,startIndex:0,validFromSec:0,validToSec:Number.POSITIVE_INFINITY}}finally{a.close(),I.debug(`[AudioExtractor] AudioContext closed for ${t}`)}}let b=!1;try{I.debug(`[AudioExtractor] Server / Node.js detected. Acquiring from inputStore for ${t}...`);let i=await be.acquire(t);b=!0,I.debug("[AudioExtractor] inputStore acquired. Retrieving primary audio track...");let a=await i.getPrimaryAudioTrack();if(!a)return I.warn(`[AudioExtractor] No primary audio track found in input for ${t}`),null;let y=new Ie(a),m=e?Math.max(0,e.startSec-ze):0,f=y.samples(m,e?.endSec),c=[],h=0,p=48e3,w=1,S=null;I.debug(`[AudioExtractor] Starting mediabunny generator loop for ${t}...`);for await(let r of f){S===null&&(S=r.timestamp),p=r.sampleRate,w=r.numberOfChannels;let P=r.numberOfFrames;if(c.length===0)for(let s=0;s<w;s++)c.push([]);for(let s=0;s<w;s++){let F;try{let L=r.allocationSize({planeIndex:s,format:"f32-planar"});F=new Float32Array(L/4),r.copyTo(F,{planeIndex:s,format:"f32-planar"})}catch{let L=r.allocationSize({planeIndex:s});if(r.format==="s16"||r.format==="s16-planar"){let E=new Int16Array(L/2);r.copyTo(E,{planeIndex:s}),F=new Float32Array(E.length);for(let M=0;M<E.length;M++)F[M]=(E[M]??0)/32768}else if(r.format==="s32"||r.format==="s32-planar"){let E=new Int32Array(L/4);r.copyTo(E,{planeIndex:s}),F=new Float32Array(E.length);for(let M=0;M<E.length;M++)F[M]=(E[M]??0)/2147483648}else if(r.format==="u8"||r.format==="u8-planar"){let E=new Uint8Array(L);r.copyTo(E,{planeIndex:s}),F=new Float32Array(E.length);for(let M=0;M<E.length;M++)F[M]=((E[M]??128)-128)/128}else F=new Float32Array(L/4),r.copyTo(F,{planeIndex:s})}c[s].push(F)}h+=P,r.close()}if(I.debug(`[AudioExtractor] Generator loop finished. Decoded total frames: ${h}`),h===0||c.length===0)return null;let _=c.map(r=>{let P=new Float32Array(h),s=0;for(let F of r)P.set(F,s),s+=F.length;return P}),C=0;if(m>0&&S!==null){let r=await y.getSample(0),P=r?.timestamp??await a.getFirstTimestamp();r?.close(),C=Math.round((S-P)*p)}let V=!e||(C+h)/p<e.endSec;return{channels:_,sampleRate:p,startIndex:C,validFromSec:m>0&&e?e.startSec:0,validToSec:V||!e?Number.POSITIVE_INFINITY:e.endSec}}catch(i){if(i instanceof Error&&i.message.includes("Cannot open local media file"))throw i;if(typeof Y<"u"&&Y.versions?.node)try{let{execFileSync:a}=await import("./child_process-B2TV2STW.mjs"),y=e?Math.round(Math.max(0,e.startSec)*48e3):0,m=y/48e3,f=a("ffmpeg",["-v","error",...m>0?["-ss",String(m)]:[],"-i",t,...e?["-t",String(e.endSec-m)]:[],"-f","f32le","-ar","48000","-ac","2","pipe:1"],{maxBuffer:Number.POSITIVE_INFINITY}),c=f.byteLength/4,h=c/2,p=new Float32Array(f.buffer,f.byteOffset,c),w=new Float32Array(h),S=new Float32Array(h);for(let C=0;C<h;C++)w[C]=p[C*2],S[C]=p[C*2+1];let _=!e||m+h/48e3<e.endSec;return{channels:[w,S],sampleRate:48e3,startIndex:y,validFromSec:m,validToSec:_||!e?Number.POSITIVE_INFINITY:e.endSec}}catch(a){I.warn({ffmpegErr:a},`[AudioExtractor] ffmpeg fallback decode failed for ${t}`)}return I.error({err:i},`[AudioExtractor] Failed to decode source ${t}`),null}finally{b&&be.release(t)}}catch(n){if(n instanceof Error&&n.message.includes("Cannot open local media file"))throw n;return I.error({err:n},`[AudioExtractor] Failed to decode source ${t}`),null}}async function ve(t,e,n,b,i,a,y,m){let f=new Float32Array(b);for(let c=0;c<b;c++){c>0&&c%1e5===0&&await we();let h=y+c/n*m;if(Ce(a,h))continue;let p=Te(a,h,m)*e-i,w=Math.floor(p);if(w<0||w>=t.length)continue;let S=t[w];f[c]=S+((t[w+1]??S)-S)*(p-w)}return f}async function $e(t,e,n,b,i,a,y=0){let m=new Float32Array(i),c=e/n*b,h=1e5;for(let p=0;p<i;p++){p>0&&p%h===0&&await we();let w=a+p*c-y,S=Math.floor(w),_=Math.ceil(w);if(S<0){m[p]=0;continue}if(S>=t.length)break;let C=w-S,V=t[S]??0,r=_>=0&&_<t.length?t[_]??V:V,P=V+C*(r-V);m[p]=Number.isFinite(P)?P:0}return m}var ke=.05,Ue=new Set(["Compositor","CompositorLayer"]);function Ge(t,e,n){let b=Math.max(0,-n),i=Math.min(e.length,t.length-n);for(let a=b;a<i;a++)t[n+a]+=e[a]}var pe=class{constructor(e){this.length=e}length;channels=null;get(){return this.channels??=[new Float32Array(this.length),new Float32Array(this.length)],this.channels}canAdopt(e,n){return this.channels===null&&n===0&&e.every(b=>b.length===this.length)}add(e,n){if(this.canAdopt(e,n)&&e[0]!==e[1]){this.channels=e;return}let b=this.get();for(let i=0;i<2;i++)Ge(b[i],e[i],n)}};function Ye(t){if(t.startsWith("data:"))return"inline audio";let e=t.split(/[?#]/)[0].split(/[\\/]/).pop();return e?He(e):"audio"}function He(t){try{return decodeURIComponent(t)}catch{return t}}async function at(t,e,n=48e3,b,i,a={}){I.debug(`[AudioExtractor] mixAudioTracks started. FPS: ${e}, targetSampleRate: ${n}`),await Be(),Ee.registerSignalsFromComposition(i,t);let y=Z(t)?.durationMs||1e3,m=y/1e3,f=Math.ceil(m*n);I.debug(`[AudioExtractor] Composition total duration: ${y}ms (${m}s). Total mixed samples to allocate: ${f}`);let c=new Map,h=new Set;async function p(o,l,u,g=!0){if(h.has(o))return null;let A=c.get(o),x=g?A?.find(d=>d.validFromSec<=l&&d.validToSec>=u):void 0;if(x)return x;let T=await De(o,{startSec:l,endSec:u});return T?(g&&(A||(A=[],c.set(o,A)),A.push(T)),T):(h.add(o),null)}async function w(o,l,u,g){let A=new Float32Array(l),x=new Float32Array(l);for(let T=0;T<l;){let d=Math.min(l-T,n*2),R=g+T/n*e,j=he(u,R,R+(d-1)/n*e,e);for(;j.max-j.min>3&&d>1;)d=Math.max(1,Math.floor(d/2)),j=he(u,R,R+(d-1)/n*e,e);let v=await p(o,j.min,j.max+ke,!1);if(!v)return null;let K=await ve(v.channels[0],v.sampleRate,n,d,v.startIndex,u,R,e),Q=v.channels.length>1?await ve(v.channels[1],v.sampleRate,n,d,v.startIndex,u,R,e):K;A.set(K,T),x.set(Q,T),T+=d}return[A,x]}let S=new WeakMap;function _(o){let l=S.get(o);if(l!==void 0)return l;let u=o.operation,g=!1;if(u?.op==="source"){let A=me(o);g=A==="Audio"||A==="Video"}else u?.op&&!Ue.has(u.op)&&ye.get(u.op)&&(g=!0);return!g&&o.children&&(g=o.children.some(A=>A&&_(A))),S.set(o,g),g}async function C(o,l,u,g,A,x,T){if(!o||!_(o))return null;let d=o.operation;if(!d){let B=Z(o)?.durationMs??0,z=Math.round(B/1e3*e),ne=T&&x!==null?x:x!==null?z>0?Math.min(x,z):x:z,q=Math.ceil(ne/e*n);if(q<=0)return null;let re=new pe(q);for(let X of o.children){let ae=await C(X,l,u,g,A,ne,T);if(ae){let $=X.operation,de=$?.startFrame??$?.timeline?.startFrame??0,k=Math.round(de/e*n);re.add(ae,k)}}return re.channels}let R=g*(d.volume??1)*(d.opacity===0?0:1)*(d.muted?0:1),j=A,v=d.startFrame??d.timeline?.startFrame??0,K=d.timeRemap,Q=K?{map:K,offsetFrames:0}:T?{map:T.map,offsetFrames:T.offsetFrames+v}:void 0,Se=d.op==="CompositorLayer"?v:u+v,Fe=d.timeline?.segments||[],ee=d,Me=ee.op==="CompositorLayer"?(ee.mediaStartFrame??ee.trimStartFrames??null)!==null?(ee.mediaStartFrame??ee.trimStartFrames??0)/e:Math.round((ee.trimStartSec??0)*e)/e:0,Ne=Z(o)?.durationMs??0,ue=Math.round(Ne/1e3*e),Le=T&&!K&&x!==null?x:x!==null?ue>0?Math.min(x,ue):x:ue,te=Math.ceil(Le/e*n);if(te<=0)return null;let oe=new pe(te),ge=async(B,z)=>{let ne=B?B.startSec:0,q=l+Me+ne,re=Se+z,X=0;B?X=Math.max(1,Math.round(((B.endSec??0)-B.startSec)*e)):X=ue;let ae=T&&!K&&!B&&x!==null?x:x!==null?Math.min(x,X):X,$=Math.round(z/e*n);if(d.op==="source"){let k=me(o),D=Pe(o);if(D.sourceUrl&&(k==="Audio"||k==="Video")&&R>0){let H=Math.max(.5,j*(Number(D.speed)||1)),W=Math.max(0,(Number(D.trimStartSec)||0)+q),se=ae/e,N=Math.min(te-$,Math.ceil(se*n)),ce=Q&&N>0?await w(D.sourceUrl,N,Q.map,Q.offsetFrames+z):null,U=!Q&&N>0&&$<te?await p(D.sourceUrl,W,W+N/n*H+ke):null;if(ce||U){let G,J;if(ce)[G,J]=ce;else if(U){let O=Math.round(W*U.sampleRate);G=await $e(U.channels[0],U.sampleRate,n,H,N,O,U.startIndex),J=U.channels.length>1?await $e(U.channels[1],U.sampleRate,n,H,N,O,U.startIndex):G}else throw new Error("No decoded audio");let Oe=[G,J];if(oe.canAdopt(Oe,$)){if(R!==1){for(let O=0;O<N;O++)G[O]*=R;if(J!==G)for(let O=0;O<N;O++)J[O]*=R}oe.channels=[G,J===G?G.slice():J]}else{let[O,_e]=oe.get();for(let le=0;le<N;le++){let xe=$+le;O[xe]+=G[le]*R,_e[xe]+=J[le]*R}}}await we()}(k==="Audio"||k==="Video")&&(P++,a.onProgress?.({done:P,total:r,...D.sourceUrl&&{source:Ye(D.sourceUrl)}}))}if(o.children)for(let k of o.children){let D=await C(k,q,re,R,j,ae,Q);if(D){let H=k.operation,W=H?.startFrame??H?.timeline?.startFrame??0,se=d.op==="CompositorLayer"&&H?.op==="CompositorLayer"?W-v:W,N=Math.round(se/e*n);oe.add(D,$+N)}}let de=ye.get(d.op);if(de)try{let k=ae/e,D=Math.min(te-$,Math.ceil(k*n));if(D>0&&$<te&&$>=0){let H=oe.get().map(ce=>ce.subarray($,$+D)),W=d.op==="CompositorLayer"?Se:0,se=((re-W)/e+q-Me)*1e3,N=Z(o)?.durationMs??void 0;await de(H,n,o,{device:b,frame:re,fps:e,renderId:i,elapsedMs:se,durationMs:N})}}catch(k){I.error({err:k},`[AudioExtractor] Custom plugin for operation '${d.op}' failed`)}};if(Fe.length>0){let B=0;for(let z of Fe){let ne=(z.endSec??0)-z.startSec,q=Math.max(1,Math.round(ne*e));await ge(z,B),B+=q}}else await ge(null,0);return oe.channels}let V=fe(t,e),r=0,P=0;if(a.onProgress){let o=l=>{if(!l)return;let u=l.operation;if(u?.op==="source"){let g=me(l);(g==="Audio"||g==="Video")&&(r+=Math.max(1,u.timeline?.segments?.length??0))}for(let g of l.children??[])o(g)};o(V),a.onProgress({done:0,total:r})}let s=await C(V,0,0,1,1,null),F=s?.every(o=>o.length===f)&&s[0]!==s[1]?s:[new Float32Array(f),new Float32Array(f)],[L,E]=F;if(s&&F!==s)for(let o=0;o<2;o++){let l=F[o],u=s[o],g=Math.min(u.length,l.length);for(let A=0;A<g;A++)l[A]=u[A]}c.clear();let M=0;for(let o=0;o<f;o++){let l=Math.abs(L[o]??0),u=Math.abs(E[o]??0);l>M&&(M=l),u>M&&(M=u)}let Ae=M>.95?.92/M:1;for(let o=0;o<f;o++){let l=(L[o]??0)*Ae,u=(E[o]??0)*Ae;L[o]=Number.isFinite(l)?Math.tanh(l):0,E[o]=Number.isFinite(u)?Math.tanh(u):0}return{channels:F,sampleRate:n}}export{rt as a,at as b};
@@ -1,4 +1,4 @@
1
- import{b as S,c as G}from"./chunk-3DXMWDQ3.mjs";import{d as g,g as M,h as C,j as R,m as P}from"./chunk-IB6GZJOL.mjs";import{a}from"./chunk-6FULVULN.mjs";import{A as k}from"./chunk-F4F2UDRX.mjs";import{g as c}from"./chunk-Y4NIR77Z.mjs";c();c();c();var w=`
1
+ import{b as S,c as G}from"./chunk-3DXMWDQ3.mjs";import{d as g,g as M,h as C,j as R,m as P}from"./chunk-IB6GZJOL.mjs";import{a}from"./chunk-6FULVULN.mjs";import{g as k}from"./chunk-KOVN277Z.mjs";import{g as c}from"./chunk-Y4NIR77Z.mjs";c();c();c();var w=`
2
2
  struct ColorMatrixUniforms {
3
3
  row0 : vec4<f32>,
4
4
  row1 : vec4<f32>,
@@ -0,0 +1,39 @@
1
+ import{W as be,Z as ye,ba as xe,ea as ve,fa as Te,ga as Me,ha as Ue,ka as we}from"./chunk-GEUUXTDL.mjs";import{q as ke}from"./chunk-BXPM5SJ3.mjs";import{g as he}from"./chunk-KOVN277Z.mjs";import{g as S}from"./chunk-Y4NIR77Z.mjs";S();S();S();var ne=new Uint8Array(0),Pe=new Uint32Array(0);function Ce(t,e,n){ne.length<t.length&&(ne=new Uint8Array(t.length),Pe=new Uint32Array(t.length));let r=ne,a=Pe,i=0,s=0;for(let u=1;u<=t.length;u++)(u===t.length||t[u]!==t[s])&&(r[i]=t[s],a[i]=u-s,i++,s=u);return{width:e,height:n,values:r.slice(0,i),lengths:a.slice(0,i)}}function Ve(t){let e=new Uint8Array(t.width*t.height),n=0;for(let r=0;r<t.values.length;r++){let a=n+t.lengths[r];t.values[r]!==0&&e.fill(t.values[r],n,a),n=a}return e}function Re(t){return t.values.byteLength+t.lengths.byteLength}function ie(t){let{mask:e,...n}=t;return{...n,rle:Ce(e,t.width,t.height)}}function oe(t){let{rle:e,...n}=t;return{...n,mask:Ve(e)}}function re(t){let e=512+t.detections.length*128+t.objects.length*256;for(let n of t.masks??[])e+=Re(n.rle);return t.subject&&(e+=Re(t.subject.mask.rle)),e}var L=class{constructor(e=256*1024*1024){this.maxBytes=e}maxBytes;entries=new Map;bytes=0;get(e,n){let r=`${e}#${n}`,a=this.entries.get(r);return a&&(this.entries.delete(r),this.entries.set(r,a)),a}set(e,n,r){let a=`${e}#${n}`,i=this.entries.get(a);i&&(this.bytes-=re(i),this.entries.delete(a)),this.entries.set(a,r),this.bytes+=re(r);for(let[s,u]of this.entries){if(this.bytes<=this.maxBytes)break;this.entries.delete(s),this.bytes-=re(u)}}clear(){this.entries.clear(),this.bytes=0}get size(){return this.entries.size}};S();var Be=`
2
+ struct Params {
3
+ mode: u32, // 0 matte, 1 mask, 2 crop
4
+ _pad: u32,
5
+ cropMin: vec2<f32>, // uv of the subject bounds (crop)
6
+ cropMax: vec2<f32>,
7
+ _pad2: vec2<f32>,
8
+ };
9
+
10
+ @group(0) @binding(0) var<uniform> params: Params;
11
+ @group(0) @binding(1) var picture: texture_2d<f32>;
12
+ @group(0) @binding(2) var mask: texture_2d<f32>;
13
+ @group(0) @binding(3) var samp: sampler;
14
+
15
+ struct VSOut {
16
+ @builtin(position) pos: vec4<f32>,
17
+ @location(0) uv: vec2<f32>,
18
+ };
19
+
20
+ @vertex fn vs(@builtin(vertex_index) i: u32) -> VSOut {
21
+ var p = array<vec2<f32>, 3>(vec2(-1.0, -1.0), vec2(3.0, -1.0), vec2(-1.0, 3.0));
22
+ var out: VSOut;
23
+ out.pos = vec4(p[i], 0.0, 1.0);
24
+ out.uv = vec2(p[i].x * 0.5 + 0.5, 0.5 - p[i].y * 0.5);
25
+ return out;
26
+ }
27
+
28
+ @fragment fn fs(in: VSOut) -> @location(0) vec4<f32> {
29
+ var uv = in.uv;
30
+ if (params.mode == 2u) {
31
+ uv = mix(params.cropMin, params.cropMax, uv);
32
+ }
33
+ let m = textureSampleLevel(mask, samp, uv, 0.0).r;
34
+ if (params.mode == 1u) {
35
+ return vec4(m, m, m, 1.0);
36
+ }
37
+ return textureSampleLevel(picture, samp, uv, 0.0) * m;
38
+ }
39
+ `,$=class{constructor(e,n){this.device=e;let r=e.createShaderModule({label:"vision_matte_composite",code:Be});this.pipeline=e.createRenderPipeline({label:"vision_matte_composite",layout:"auto",vertex:{module:r,entryPoint:"vs"},fragment:{module:r,entryPoint:"fs",targets:[{format:n}]},primitive:{topology:"triangle-list"}}),this.sampler=e.createSampler({magFilter:"linear",minFilter:"linear"})}device;pipeline;sampler;uniforms=[];uniformIndex=0;masks=new Map;uploadMask(e,n,r,a){let i=this.masks.get(e);(!i||i.width!==r||i.height!==a)&&(i?.destroy(),i=this.device.createTexture({label:`vision_mask_${e}`,size:[r,a],format:"r8unorm",usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST}),this.masks.set(e,i));let s=Math.ceil(r/256)*256,u=n;if(s!==r){u=new Uint8Array(s*a);for(let f=0;f<a;f++)u.set(n.subarray(f*r,(f+1)*r),f*s)}return this.device.queue.writeTexture({texture:i},u.buffer,{offset:u.byteOffset,bytesPerRow:s,rowsPerImage:a},{width:r,height:a}),i}draw(e,n,r,a,i,s){let u=a.width,f=a.height,c=new Float32Array(8),g=new Uint32Array(c.buffer);g[0]=i==="matte"?0:i==="mask"?1:2,i==="crop"&&s?(c[2]=s.x0/u,c[3]=s.y0/f,c[4]=(s.x1+1)/u,c[5]=(s.y1+1)/f):(c[2]=0,c[3]=0,c[4]=1,c[5]=1,i==="crop"&&(g[0]=0)),this.uniformIndex>=this.uniforms.length&&this.uniforms.push(this.device.createBuffer({size:c.byteLength,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}));let o=this.uniforms[this.uniformIndex];this.uniformIndex=(this.uniformIndex+1)%16,this.device.queue.writeBuffer(o,0,c);let p=this.device.createBindGroup({layout:this.pipeline.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:o}},{binding:1,resource:r.createView()},{binding:2,resource:a.createView()},{binding:3,resource:this.sampler}]}),y=e.beginRenderPass({label:"vision_matte_composite",colorAttachments:[{view:n,loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});y.setPipeline(this.pipeline),y.setBindGroup(0,p),y.draw(3),y.end()}};var F=new Map,Fe=4,ae=null,z=null,Ge=null,Ie=new L,je=new Map,De=new Map,Ee=new Map,Ne=new Map,Se=new Map,ce=new WeakMap,_=new Map,D=new Map,Ye=3;function ue(t,e,n,r,a,i){let s=t.get(n);return(!s||s.width!==r.width||s.height!==r.height||s.format!==r.format)&&(s?.destroy(),s=e.createTexture({size:[r.width,r.height],format:r.format,usage:a,label:i}),t.set(n,s)),s}var Xe=(t,e,n)=>ue(De,t,e,n,GPUTextureUsage.COPY_DST|GPUTextureUsage.TEXTURE_BINDING,"vision_held_frame"),Le=(t,e,n)=>ue(Ee,t,e,n,GPUTextureUsage.COPY_DST|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC,"vision_analysis_frame"),$e=(t,e,n)=>ue(Ne,t,e,n,GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC,"vision_matte");function ze(t,e,n,r,a){let i=e;return JSON.stringify([t,i?.operation?.id??i?.id??null,r,a,n.mode??"passthrough",n.variant,n.confidence,n.classes,n.maskThreshold,n.featherRadius,n.matteSource,n.keyBackground===!0,n.maxMissedFrames])}function Ke(t,e,n){let r=t.backgroundKeyThreshold;return typeof r=="number"?r:typeof r?.get=="function"?Number(r.get({frame:e,fps:n})):typeof r?._value=="number"?Number(r._value):70}function We(t,e,n){if(t)return D.set(e,{mask:t,frame:n}),t;let r=D.get(e);if(r&&n-r.frame<=Ye)return r.mask}function _e(t){let e={variant:t.variant,modelsDir:t.modelsDir,baseUrl:t.baseUrl},n=JSON.stringify(e),r=F.get(n);if(!r){if(F.size>=Fe){let[u,f]=F.entries().next().value;f.runner.close(),F.delete(u)}r={runner:ve.create(e),derived:new Map},F.set(n,r)}let a={confidence:t.confidence,classes:t.classes,maskThreshold:t.maskThreshold,featherRadius:t.featherRadius},i=JSON.stringify(a),s=r.derived.get(i);return s||(s=r.runner.derive(a),r.derived.set(i,s)),s}function qe(t,e){let n=Se.get(t);return n||(n=new be({maxMissedFrames:e.maxMissedFrames??15}),Se.set(t,n)),n}function He(t,e,n){return e<=0||n<=0?t:{people:t.people.map(r=>({...r,keypoints:r.keypoints.map(a=>({x:a.x/e,y:a.y/n,visibility:a.visibility}))}))}}function Je(t,e){if(!e)return!0;let n=t.toLowerCase();return e.some(r=>r.toLowerCase()===n)}function Qe(t,e){return t.map(n=>{let{cx:r,cy:a}=nt(n),i=null;for(let s of e){let u=s.centerX-r,f=s.centerY-a,c=u*u+f*f;(!i||c<i.distance)&&(i={trackId:s.trackId,distance:c})}return i?{...n,trackId:i.trackId}:n})}function Ze(t,e,n){let r=e*n,a=new Uint8Array(r),i=new Int32Array(r),s=0,u=c=>{a[c]||t[c]>0||(a[c]=1,i[s++]=c)};for(let c=0;c<e;c++)u(c),u((n-1)*e+c);for(let c=0;c<n;c++)u(c*e),u(c*e+e-1);let f=0;for(;f<s;){let c=i[f++],g=c%e,o=c+1;g+1<e&&!a[o]&&t[o]===0&&(a[o]=1,i[s++]=o),o=c-1,g>0&&!a[o]&&t[o]===0&&(a[o]=1,i[s++]=o),o=c+e,o<r&&!a[o]&&t[o]===0&&(a[o]=1,i[s++]=o),o=c-e,o>=0&&!a[o]&&t[o]===0&&(a[o]=1,i[s++]=o)}for(let c=0;c<r;c++)t[c]===0&&a[c]===0&&(t[c]=255)}function et(t,e,n,r=2){if(r<=0)return t;let a=new Uint8Array(e*n),i=new Uint8Array(e*n),s=2*r+1;for(let f=0;f<n;f++){let c=f*e,g=0;for(let o=-r;o<=r;o++){let p=Math.max(0,Math.min(e-1,o));g+=t[c+p]}for(let o=0;o<e;o++){a[c+o]=Math.round(g/s);let p=Math.max(0,o-r),y=Math.min(e-1,o+r+1);g+=t[c+y]-t[c+p]}}let u=new Float64Array(e);for(let f=-r;f<=r;f++){let c=Math.max(0,Math.min(n-1,f))*e;for(let g=0;g<e;g++)u[g]+=a[c+g]}for(let f=0;f<n;f++){let c=f*e,g=Math.max(0,f-r)*e,o=Math.min(n-1,f+r+1)*e;for(let p=0;p<e;p++)i[c+p]=Math.round(u[p]/s),u[p]+=a[o+p]-a[g+p]}return i}function tt(t,e,n,r,a,i){let s=0,u=0,f=0,c=0,g=(d,U)=>{let l=U*e+d;if(t[l])return;let V=l*4;s+=r[V],u+=r[V+1],f+=r[V+2],c++};for(let d=0;d<e;d+=4)g(d,0),g(d,n-1);for(let d=0;d<n;d+=4)g(0,d),g(e-1,d);if(c===0)return t;s/=c,u/=c,f/=c;let o=e*n,p=new Uint8Array(o);for(let d=0,U=0;d<o;d++,U+=4)p[d]=Math.max(Math.abs(r[U]-s),Math.abs(r[U+1]-u),Math.abs(r[U+2]-f))>a?1:0;let y=new Int32Array(o),R=0;for(let d=0;d<o;d++)t[d]>0&&(p[d]&&(t[d]=255),y[R++]=d);let v=0;for(;v<R;){let d=y[v++],U=d%e,l=d+1;U+1<e&&t[l]!==255&&p[l]&&(t[l]=255,y[R++]=l),l=d-1,U>0&&t[l]!==255&&p[l]&&(t[l]=255,y[R++]=l),l=d+e,l<o&&t[l]!==255&&p[l]&&(t[l]=255,y[R++]=l),l=d-e,l>=0&&t[l]!==255&&p[l]&&(t[l]=255,y[R++]=l)}Ze(t,e,n);let O=i!==void 0&&i>0?Math.max(1,Math.min(8,Math.round(i*50))):2;return et(t,e,n,O)}function nt(t){let{mask:e,width:n,height:r}=t,a=0,i=0,s=0;for(let u=0;u<r;u++){let f=u*n;for(let c=0;c<n;c++)e[f+c]>0&&(a+=c,i+=u,s++)}return s===0?{cx:0,cy:0}:{cx:a/s,cy:i/s}}var Oe=async t=>{let{ctx:e,encoder:n,pass:r,targetView:a,targetWidth:i,targetHeight:s,props:u,drawChild:f}=t,{virtualMedia:c}=u;ke(e.device);let g=c?.operation;if(g?.op!=="Vision")return;let o=g;r.end();let p=c?.children?.[0];if(!p)return;let y=o.effect,R=y!=null,v=c?.id??g?.id??`${i}x${s}_${o.mode}_${o.variant}_${o.keyBackground}_${o.backgroundKeyThreshold}`,O=`vision-${v}`,d=R?ce.get(y):_.get(O);d&&(d.width!==i||d.height!==s)&&(d.destroy(),d=void 0,R?ce.delete(y):_.delete(O));let U=d!==void 0;if(!d&&(d=e.device.createTexture({size:[i,s],format:e.renderer.format,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC,label:"vision_child_persistent"}),R?ce.set(y,d):_.set(O,d),_.size>4)){let m=_.keys().next().value;m&&m!==O&&(_.get(m)?.destroy(),_.delete(m))}let l=u.frame??0,V=u.compositionFrame??l,E=u.fps??24,w=o.mode??"passthrough",I=w==="mask"||w==="matte"||w==="crop",M=o.visionBundle??c.visionBundle,K=o.enableDetection!==!1||w==="boxes"||w==="tracking",N=o.enableSegmentation===!0||I&&o.matteSource!=="selfie",W=o.enableMatte===!0||I&&o.matteSource==="selfie",q=o.enablePose===!0||w==="skeleton",de=I&&!M&&!q&&!W&&o.keyBackground!==!0?rt(y,u.sourceTimeSec===void 0?l:u.sourceTimeSec*E,E,i,s):void 0,Y=de!==void 0,H=!Y&&!W&&!q&&(K||N),le=H?ze(v,p,o,i,s):"",J=m=>o.keyBackground===!0?Ke(o,V-(l-m),E):void 0,fe=m=>{if(!H||m===void 0)return;let h=Ie.get(le,m);if(!(!h||h.keyThreshold!==J(m))&&!(N&&M&&!h.masks))return h},B=U?je.get(v):void 0,P=fe(l),me=Y||P!==void 0;P||(P=fe(B));let Q;I&&U&&!me&&(Q=Xe(e.device,v,d),n.copyTextureToTexture({texture:d},{texture:Q},[i,s,1]));let X,Z=null;if(U&&!P&&!Y){let m=Le(e.device,v,d),h=e.device.createCommandEncoder({label:"vision_analysis_copy"});h.copyTextureToTexture({texture:d},{texture:m},[i,s,1]),e.device.queue.submit([h.finish()]),X={texture:m,device:e.device,width:i,height:s},I&&o.keyBackground===!0&&(Z=(await ye(X)).data)}let ge=d.createView();e.renderer.beginFrame(n,ge,{r:0,g:0,b:0,a:0},i,s,"clear").end(),await f(p,{...u},ge,d,i,s),je.set(v,l);let j=[],A=[],ee,te,x;if(Y)x=de??void 0,x?D.set(v,{mask:x,frame:l}):D.delete(v);else if(P)j=P.objects,K&&M?.setObjectResult(l,{objects:P.objects,rawDetections:P.detections}),N&&M&&P.masks&&(A=P.masks.map(oe),M.setMaskResult(l,A)),P.subject&&(x=oe(P.subject.mask),D.set(v,{mask:x,frame:l}));else if(X){let m=_e(o),h=X,T=[];if(K){T=await m.detect(h);let k=qe(v,o);l===0&&k.reset(),j=k.update(T,l,E),M?.setObjectResult(l,{objects:j,rawDetections:T})}let G=[];if(N){let k=I&&o.matteSource!=="selfie"&&o.classes!==void 0,C=await(k?_e({...o,classes:void 0}):m).segment(h);A=Qe(k?C.masks.filter(Ae=>Je(Ae.category,o.classes)):C.masks,j),G=k?C.masks:A,M?.setMaskResult(l,A)}if(W&&(ee=await m.matte(h),M?.setMatteResult(l,ee)),q){let k=await m.pose(h),b=He(k,h.width,h.height);te={people:we(b.people,j)},M?.setPoseResult(l,te)}if(I){x=We(o.matteSource==="selfie"?st(ee):Ue(G.length>0?G:M?.getMaskResult(l)??[],{classes:o.classes}),v,l);let k=J(B??l);x&&k!==void 0&&Z&&(x={...x,mask:tt(x.mask,x.width,x.height,Z,k,o.featherRadius)})}H&&B!==void 0&&Ie.set(le,B,{detections:T,objects:j,masks:M?A.map(ie):null,subject:x?{mask:ie(x)}:null,keyThreshold:J(B)})}if(I){let m=me?d:Q;if(!x||!m){e.renderer.beginFrame(n,a,{r:0,g:0,b:0,a:0},i,s,"clear").end();return}(!z||Ge!==e.renderer.format)&&(z=new $(e.device,e.renderer.format),Ge=e.renderer.format);let h=z.uploadMask(v,x.mask,x.width,x.height),T=$e(e.device,v,d);z.draw(n,T.createView(),m,h,w,w==="crop"?Me(x)??void 0:void 0),M?.setStencilTexture(T);let G=e.renderer.beginFrame(n,a,{r:0,g:0,b:0,a:0},i,s,"clear");e.renderer.drawTexture(G,T,{x:0,y:0,width:i,height:s}),G.end();return}if(w==="skeleton"){ae||(ae=new xe(e.device));let h=(M?.getPoseResult(l)??te)?.people[0];if(h&&h.keypoints.length>0){let T=ae.renderToTexture(h.keypoints,{width:i,height:s}),G=e.renderer.beginFrame(n,a,{r:0,g:0,b:0,a:0},i,s,"clear");e.renderer.drawTexture(G,T,{x:0,y:0,width:i,height:s}),G.end();return}}if(w==="boxes"||w==="tracking"){let m=e.renderer.beginFrame(n,a,{r:0,g:0,b:0,a:0},i,s,"clear");e.renderer.drawTexture(m,d,{x:0,y:0,width:i,height:s});let h=j.length>0?j:M?.getObjectResult(l).objects??[];if(h.length>0){let T="#38bdf8";for(let k of h){if(!k.active)continue;let b=k.boundingBox;e.renderer.drawRect(m,{x:b.originX,y:b.originY,width:b.width,height:2},T),e.renderer.drawRect(m,{x:b.originX,y:b.originY+b.height-2,width:b.width,height:2},T),e.renderer.drawRect(m,{x:b.originX,y:b.originY,width:2,height:b.height},T),e.renderer.drawRect(m,{x:b.originX+b.width-2,y:b.originY,width:2,height:b.height},T);let C=Math.min(16,b.width/4,b.height/4);e.renderer.drawRect(m,{x:b.originX,y:b.originY,width:C,height:4},"#ffffff"),e.renderer.drawRect(m,{x:b.originX,y:b.originY,width:4,height:C},"#ffffff"),w==="tracking"&&e.renderer.drawRect(m,{x:k.centerX-3,y:k.centerY-3,width:6,height:6},"#ef4444",3)}}m.end();return}let pe=e.renderer.beginFrame(n,a,{r:0,g:0,b:0,a:0},i,s,"clear");e.renderer.drawTexture(pe,d,{x:0,y:0,width:i,height:s}),pe.end()};function rt(t,e,n,r,a){let i=t?.[Te],s=i?.subject(e,n);if(!s)return s;let u=s.width/s.height/(r/a);if(Math.abs(u-1)<.01)return s;if(i?.exact)throw new Error("A prompted clip matte requires the source aspect ratio. Apply layout cropping after the source matte.")}function st(t){if(!t||t.coverage<=0)return;let e=Math.round(t.coverage*t.width*t.height);return{category:"person",mask:t.mask,width:t.width,height:t.height,area:e,coverage:t.coverage,detectionIndex:-1}}var bt=he({WebGPURenderer:Oe});export{bt as a};
@@ -1,4 +1,4 @@
1
- import{a as F}from"./chunk-2GA735OZ.mjs";import{b as I,c as B}from"./chunk-3DXMWDQ3.mjs";import{a as L,d as y,g as N,h as V,j as D,m as k}from"./chunk-IB6GZJOL.mjs";import{a as p}from"./chunk-6FULVULN.mjs";import{e as b}from"./chunk-32WC4FRR.mjs";import{A as U}from"./chunk-F4F2UDRX.mjs";import{g as c}from"./chunk-Y4NIR77Z.mjs";c();c();c();var C=new Map;function _(e){let t=C.get(e);return t||(t=(async()=>{try{let r=await b.acquire(e);try{let o=await r.getPrimaryVideoTrack();return o?{width:o.displayWidth,height:o.displayHeight}:null}finally{b.release(e)}}catch{return null}})(),C.set(e,t)),t}c();var J=F().field("angle",p.number().default(90),{bindable:!0,dataTypes:["Number","Signal"],label:"Angle Signal",description:"Rotation in degrees about the frame center, clockwise. Any value; 90 / 180 / 270 fix footage shot sideways or upside down."}).field("fit",p.enum(["cover","contain","fill"]).default("cover"),{description:"How the rotated source sits in the output: cover fills it (cropping the overhang), contain shows all of it (transparent margins), fill keeps the unrotated source stretched to the output and only turns it."}).field("scale",p.number().min(.01).max(20).default(1),{bindable:!0,dataTypes:["Number","Signal"],label:"Scale Signal",description:"Extra zoom applied after the fit (1 = exactly fitted)."}).build(),ie=J.schema,ae=p.union([I,B]);function A(e,t,r,o,i,a){if(a==="fill")return{width:r,height:o};let d=i*Math.PI/180,n=Math.abs(Math.cos(d)),u=Math.abs(Math.sin(d)),s=a==="cover"?Math.max((n*r+u*o)/e,(u*r+n*o)/t):Math.min(r/(n*e+u*t),o/(u*e+n*t));return{width:e*s,height:t*s}}var K=`
1
+ import{a as F}from"./chunk-2GA735OZ.mjs";import{b as I,c as B}from"./chunk-3DXMWDQ3.mjs";import{a as L,d as y,g as N,h as V,j as D,m as k}from"./chunk-IB6GZJOL.mjs";import{a as p}from"./chunk-6FULVULN.mjs";import{e as b}from"./chunk-32WC4FRR.mjs";import{g as U}from"./chunk-KOVN277Z.mjs";import{g as c}from"./chunk-Y4NIR77Z.mjs";c();c();c();var C=new Map;function _(e){let t=C.get(e);return t||(t=(async()=>{try{let r=await b.acquire(e);try{let o=await r.getPrimaryVideoTrack();return o?{width:o.displayWidth,height:o.displayHeight}:null}finally{b.release(e)}}catch{return null}})(),C.set(e,t)),t}c();var J=F().field("angle",p.number().default(90),{bindable:!0,dataTypes:["Number","Signal"],label:"Angle Signal",description:"Rotation in degrees about the frame center, clockwise. Any value; 90 / 180 / 270 fix footage shot sideways or upside down."}).field("fit",p.enum(["cover","contain","fill"]).default("cover"),{description:"How the rotated source sits in the output: cover fills it (cropping the overhang), contain shows all of it (transparent margins), fill keeps the unrotated source stretched to the output and only turns it."}).field("scale",p.number().min(.01).max(20).default(1),{bindable:!0,dataTypes:["Number","Signal"],label:"Scale Signal",description:"Extra zoom applied after the fit (1 = exactly fitted)."}).build(),ie=J.schema,ae=p.union([I,B]);function A(e,t,r,o,i,a){if(a==="fill")return{width:r,height:o};let d=i*Math.PI/180,n=Math.abs(Math.cos(d)),u=Math.abs(Math.sin(d)),s=a==="cover"?Math.max((n*r+u*o)/e,(u*r+n*o)/t):Math.min(r/(n*e+u*t),o/(u*e+n*t));return{width:e*s,height:t*s}}var K=`
2
2
  struct RotateUniforms {
3
3
  outSize: vec2<f32>,
4
4
  size : vec2<f32>,
@@ -1,4 +1,4 @@
1
- import{a as m}from"./chunk-IB56SYTG.mjs";import{a as U,d as c,f as A,g as M,h as V,j as D,k as B,m as H}from"./chunk-IB6GZJOL.mjs";import{d as h}from"./chunk-VVY4PG5E.mjs";import{A as P}from"./chunk-F4F2UDRX.mjs";import{g as L}from"./chunk-Y4NIR77Z.mjs";L();L();var Q=`
1
+ import{a as m}from"./chunk-IB56SYTG.mjs";import{a as U,d as c,f as A,g as M,h as V,j as D,k as B,m as H}from"./chunk-IB6GZJOL.mjs";import{d as h}from"./chunk-VVY4PG5E.mjs";import{g as P}from"./chunk-KOVN277Z.mjs";import{g as L}from"./chunk-Y4NIR77Z.mjs";L();L();var Q=`
2
2
  struct LutUniforms {
3
3
  intensity : f32,
4
4
  lutSize : f32,
@@ -1,4 +1,4 @@
1
- import{a as C,d as G,g as O,h as V,m as A}from"./chunk-IB6GZJOL.mjs";import{A as I}from"./chunk-F4F2UDRX.mjs";import{g as M}from"./chunk-Y4NIR77Z.mjs";M();M();var se=e=>e*e,ae=e=>e*(2-e),ue=e=>e<.5?2*e*e:-1+(4-2*e)*e,ce=e=>{let t=2*Math.PI/3;return e===0?0:e===1?1:2**(-10*e)*Math.sin((e*10-.75)*t)+1},le=(e,t)=>{switch(t){case"ease-in":return se(e);case"ease-out":return ae(e);case"ease-in-out":return ue(e);case"spring":return ce(e);default:return e}},T=(e,t,o,s,i)=>{let n=i*i,r=n*i;return .5*(2*t+(-e+o)*i+(2*e-5*t+4*o-s)*n+(-e+3*t-3*o+s)*r)};function E(e,t,o="spline"){if(e.length===0)return{x:50,y:50,scale:1};if(e.length===1){let n=e[0];return{x:n.x??50,y:n.y??50,scale:n.scale??1}}let s=0;for(let n=0;n<e.length;n++){let r=e[n],h=r.holdMs??0,m=r.durationMs??0;if(t<=s+h)return{x:r.x??50,y:r.y??50,scale:r.scale??1};if(s+=h,n<e.length-1&&m>0){if(t<=s+m){let f=(t-s)/m,a=le(Math.max(0,Math.min(1,f)),r.easing),u=e[n+1];if(o==="spline"){let b=e[n-1]??r,x=e[n+2]??u;return{x:T(b.x??50,r.x??50,u.x??50,x.x??50,a),y:T(b.y??50,r.y??50,u.y??50,x.y??50,a),scale:T(b.scale??1,r.scale??1,u.scale??1,x.scale??1,a)}}return{x:(r.x??50)+((u.x??50)-(r.x??50))*a,y:(r.y??50)+((u.y??50)-(r.y??50))*a,scale:(r.scale??1)+((u.scale??1)-(r.scale??1))*a}}s+=m}}let i=e[e.length-1];return{x:i.x??50,y:i.y??50,scale:i.scale??1}}function X(e,t,o,s){let i=100,n=100;if(s!=="input"){let p=s.split(":"),g=Number(p[0]),c=Number(p[1]);if(!Number.isNaN(g)&&!Number.isNaN(c)&&g>0&&c>0){let l=g/c,y=t/o;y>l?(n=100,i=l/y*100):(i=100,n=y/l*100)}}let r=i/100*t,h=n/100*o,m=Math.max(e.scale,1),f=r/m,a=h/m,u=e.x/100*t,b=e.y/100*o,x=f/2,B=a/2,P=Math.max(x,Math.min(t-x,u)),R=Math.max(B,Math.min(o-B,b));return{x:P-x,y:R-B,width:f,height:a}}var me=`
1
+ import{a as C,d as G,g as O,h as V,m as A}from"./chunk-IB6GZJOL.mjs";import{g as I}from"./chunk-KOVN277Z.mjs";import{g as M}from"./chunk-Y4NIR77Z.mjs";M();M();var se=e=>e*e,ae=e=>e*(2-e),ue=e=>e<.5?2*e*e:-1+(4-2*e)*e,ce=e=>{let t=2*Math.PI/3;return e===0?0:e===1?1:2**(-10*e)*Math.sin((e*10-.75)*t)+1},le=(e,t)=>{switch(t){case"ease-in":return se(e);case"ease-out":return ae(e);case"ease-in-out":return ue(e);case"spring":return ce(e);default:return e}},T=(e,t,o,s,i)=>{let n=i*i,r=n*i;return .5*(2*t+(-e+o)*i+(2*e-5*t+4*o-s)*n+(-e+3*t-3*o+s)*r)};function E(e,t,o="spline"){if(e.length===0)return{x:50,y:50,scale:1};if(e.length===1){let n=e[0];return{x:n.x??50,y:n.y??50,scale:n.scale??1}}let s=0;for(let n=0;n<e.length;n++){let r=e[n],h=r.holdMs??0,m=r.durationMs??0;if(t<=s+h)return{x:r.x??50,y:r.y??50,scale:r.scale??1};if(s+=h,n<e.length-1&&m>0){if(t<=s+m){let f=(t-s)/m,a=le(Math.max(0,Math.min(1,f)),r.easing),u=e[n+1];if(o==="spline"){let b=e[n-1]??r,x=e[n+2]??u;return{x:T(b.x??50,r.x??50,u.x??50,x.x??50,a),y:T(b.y??50,r.y??50,u.y??50,x.y??50,a),scale:T(b.scale??1,r.scale??1,u.scale??1,x.scale??1,a)}}return{x:(r.x??50)+((u.x??50)-(r.x??50))*a,y:(r.y??50)+((u.y??50)-(r.y??50))*a,scale:(r.scale??1)+((u.scale??1)-(r.scale??1))*a}}s+=m}}let i=e[e.length-1];return{x:i.x??50,y:i.y??50,scale:i.scale??1}}function X(e,t,o,s){let i=100,n=100;if(s!=="input"){let p=s.split(":"),g=Number(p[0]),c=Number(p[1]);if(!Number.isNaN(g)&&!Number.isNaN(c)&&g>0&&c>0){let l=g/c,y=t/o;y>l?(n=100,i=l/y*100):(i=100,n=y/l*100)}}let r=i/100*t,h=n/100*o,m=Math.max(e.scale,1),f=r/m,a=h/m,u=e.x/100*t,b=e.y/100*o,x=f/2,B=a/2,P=Math.max(x,Math.min(t-x,u)),R=Math.max(B,Math.min(o-B,b));return{x:P-x,y:R-B,width:f,height:a}}var me=`
2
2
  struct MotionBlurUniforms {
3
3
  prev_origin : vec2<f32>,
4
4
  prev_size : vec2<f32>,
@@ -0,0 +1,4 @@
1
+ import{b as G}from"./chunk-P4Y3PMJF.mjs";import{d as q}from"./chunk-VVY4PG5E.mjs";import{c as V,e as B}from"./chunk-BJXNKMSY.mjs";import{g as $}from"./chunk-Y4NIR77Z.mjs";$();function ot(r,a=180,t=12,l=1,s=0){if(r<=0)return 0;let o=Math.sqrt(Math.max(1e-4,a)/Math.max(1e-4,l)),n=t/(2*Math.sqrt(Math.max(1e-4,a*l)));if(n<1){let i=o*Math.sqrt(1-n*n),e=Math.exp(-n*o*r),c=-1,u=(s-n*o*-1)/Math.max(1e-6,i),h=e*(c*Math.cos(i*r)+u*Math.sin(i*r));return Math.min(2,Math.max(-1,1+h))}else if(Math.abs(n-1)<1e-4){let i=Math.exp(-o*r);return 1+(-1+(s-o)*r)*i}else{let i=-o*(n-Math.sqrt(n*n-1)),e=-o*(n+Math.sqrt(n*n-1)),c=(s+e)/Math.max(1e-6,i-e),u=-1-c;return 1+(c*Math.exp(i*r)+u*Math.exp(e*r))}}function st(r,a=0){if(r===0)return[1,0,0,1];let t=r*Math.PI/180,l=a*Math.PI/180,s=Math.cos(l),o=Math.sin(l),n=Math.tan(t),i=1-n*s*o,e=n*s*s,c=-n*o*o,u=1+n*o*s;return[i,e,c,u]}function it(r,a){let t=a.anchorX,l=a.anchorY;switch(a.preset){case"center":t=.5,l=.5;break;case"baseline":t=.5,l=r.height>0?r.ascender/r.height:.8;break;case"bottom_left":t=0,l=1;break;case"bottom_center":t=.5,l=1;break;case"bottom_right":t=1,l=1;break;case"top_left":t=0,l=0;break;case"top_center":t=.5,l=0;break;case"top_right":t=1,l=0;break;default:t=.5,l=.5;break}let s=(t-.5)*r.width+a.offsetX,o=(l-.5)*r.height+a.offsetY;return{px:s,py:o}}function lt(r,a,t,l=0){if(t===0||a<=1)return 0;let s=l*(a-1);return(r-s)*t}function ct(r,a){try{let t={textIndex:a.charIndex,textTotal:Math.max(1,a.totalChars),wordIndex:a.wordIndex,wordTotal:Math.max(1,a.totalWords),lineIndex:a.lineIndex,lineTotal:Math.max(1,a.totalLines),time:a.time,frame:a.frame,fps:a.fps,sin:Math.sin,cos:Math.cos,tan:Math.tan,exp:Math.exp,log:Math.log,abs:Math.abs,min:Math.min,max:Math.max,sqrt:Math.sqrt,pow:Math.pow,floor:Math.floor,ceil:Math.ceil,round:Math.round,PI:Math.PI,clamp:(i,e,c)=>Math.max(e,Math.min(c,i)),noise:i=>{let e=Math.sin(i*12.9898+a.frame*.1)*43758.5453;return(e-Math.floor(e))*2-1},signals:a.signals??{}},l=Object.keys(t),s=Object.values(t),o=new Function(...l,`return (${r});`),n=Number(o(...s));return Number.isFinite(n)?Math.max(-1,Math.min(1,n)):0}catch{return 0}}function ut(r,a,t){let l=Math.max(1,a),s=l>1?r/(l-1):0,o=t.totalAngle*Math.PI/180,n=s*o,i=0,e=0,c=0,u=0,h=0,m=0,y=1;switch(t.mode){case"cylinder":{let d=t.totalAngle<360?(s-.5)*o:n;t.axis==="y"?(i=t.radius*Math.sin(d),c=t.radius*Math.cos(d)-t.radius,h=d*180/Math.PI):t.axis==="x"?(e=t.radius*Math.sin(d),c=t.radius*Math.cos(d)-t.radius,u=d*180/Math.PI):(i=t.radius*Math.sin(d),e=t.radius*Math.cos(d),m=d*180/Math.PI);let b=Math.cos(d);y=Math.max(.25,(b+1)*.5);break}case"vortex":{let b=-Math.PI/2+n,f=t.radius*(1-s*.35);i=f*Math.cos(b),e=f*Math.sin(b),c=-r*t.pitch||0;let P=-.35*t.radius/(o||1),g=P*Math.cos(b)-f*Math.sin(b),S=P*Math.sin(b)+f*Math.cos(b);m=Math.atan2(S,g)*180/Math.PI,y=Math.max(.65,1-s*.35);break}case"helix":{if(t.axis==="x"){let d=t.pitch>10?t.pitch:28;i=(r-(l-1)/2)*d,e=t.radius*Math.sin(n),c=t.radius*Math.cos(n)-t.radius,u=Math.sin(n)*22,y=.75+.25*((Math.cos(n)+1)*.5)}else{let d=(s-.5)*o;i=t.radius*Math.sin(d),e=(r-(l-1)/2)*t.pitch,c=t.radius*Math.cos(d)-t.radius,h=d*180/Math.PI;let b=Math.cos(d);y=Math.max(.65,(b+1)*.5)}break}default:{c=0;break}}let p=Math.max(100,t.perspective??1200),M=p-c,x=M>1?p/M:1;return{x:i*x,y:e*x,z:c,rotX:u,rotY:h,rotZ:m,scaleMult:Math.max(.1,x),depthOpacity:y}}function ht(r,a,t,l,s){let n=(a>0?Math.max(a,t):t)+l.repeatGap;if(n<=0)return r;let i=l.velocity*s;if(l.snap?.enabled){let e=l.snap.stopIndex??0,c=l.snap.granularity==="character"?40:120,u=e*c,h=Math.min(1,s*1.5);i=i*(1-h)+u*h}if((l.direction==="right"||l.direction==="down")&&(i=-i),l.loop){let e=(r-i)%n;return e<-t?e+n:e}return r-i}function mt(r,a,t,l,s,o){let n=Math.max(1,a),i=n>1?r/(n-1):.5,e=Math.max(20,t.minFreqHz),c=Math.max(e+100,t.maxFreqHz),u=e*(c/e)**i,h=0,m=q.getChannelSamples(t.signalChannel,"primary");if(m&&m.length>0){let p=o>0?o:24,M=Math.max(0,Math.min(m.length-1,Math.round(s/p*24)));h=Number(m[M])||0}else if(l){let p=l[t.signalChannel];if(typeof p=="number")h=p;else if(typeof p=="function")h=Number(p(s,o,u))||0;else if(typeof p=="object"&&p!==null){let M=p;if(typeof M.get=="function")h=Number(M.get({frame:s,fps:o,freq:u}))||0;else if(Array.isArray(M.samples)||ArrayBuffer.isView(M.samples)){let x=M.samples,d=Math.floor(i*(x.length-1));h=Number(x[d])||0}}}let y=Math.max(0,Math.min(1,h));return t.minScale+y*(t.maxScale-t.minScale)}$();function xt(r,a,t,l,s,o=0,n=0){let i=a+l,e=t+l;if(e<=i)return 0;let c=(r-i)/(e-i),u=0;switch(s){case"square":u=c>=0&&c<=1?1:0;break;case"ramp_up":u=Math.max(0,Math.min(1,c));break;case"ramp_down":u=1-Math.max(0,Math.min(1,c));break;case"triangle":{c<0||c>1?u=0:c<.5?u=c*2:u=(1-c)*2;break}case"round":{c<0||c>1?u=0:u=.5-.5*Math.cos(c*2*Math.PI);break}case"smooth":{c<=0?u=0:c>=1?u=1:u=c*c*(3-2*c);break}}if(u>0&&u<1){if(o!==0&&u>.5){let h=(u-.5)*2,m=o>0?1+o*3:1/(1-o*3);u=.5+.5*h**m}if(n!==0&&u<=.5){let h=u*2,m=n>0?1+n*3:1/(1-n*3);u=.5*h**m}}return Math.max(0,Math.min(1,u))}function yt(r,a,t,l){let s=(a*(1-l)+l)*12.9898+t+r*78.233,o=Math.sin(s)*43758.5453;return(o-Math.floor(o))*2-1}function dt(r,a){let t=a,l=()=>(t=(t*9301+49297)%233280,t/233280),s=Array.from({length:r},(o,n)=>n);for(let o=s.length-1;o>0;o--){let n=Math.floor(l()*(o+1)),i=s[o];s[o]=s[n],s[n]=i}return s}function bt(r,a,t){switch(t){case"add":return Math.max(0,Math.min(1,r+a));case"subtract":return Math.max(0,Math.min(1,r-a));case"intersect":return r*a;case"min":return Math.min(r,a);case"max":return Math.max(r,a);case"difference":return Math.abs(r-a)}}$();var D={ascii:"!@#$%^&*()_+{}[]:;<>,.?",alphanumeric:"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",matrix:"010101<>[]{}+=*~#%&!?/\\:;|X0123456789",binary:"01",hex:"0123456789ABCDEF"};function Q(r,a){return r==="custom"&&a&&a.length>0?a:D[r]??D.alphanumeric}function gt(r,a,t,l,s={mode:"human",jitter:.35,commaPauseMultiplier:3,sentencePauseMultiplier:5.5,paragraphPauseMultiplier:7},o={enabled:!1,charset:"alphanumeric",scrambleFramesPerChar:8,highlightProbability:.25},n=2,i="character",e){if(e===void 0&&a<t)return{visibleChars:0,currentDisplayString:"",isCursorVisible:!1};let c=e!==void 0?Math.max(0,Math.min(1,e)):Math.min(1,(a-t)/Math.max(1,l)),u=e!==void 0?c*l:a-t,h=r.length,m=Math.floor(c*h);if(i==="word"){let M=r.split(/(\s+)/),x=[];M.forEach((b,f)=>{b.trim().length>0&&x.push(f)});let d=Math.min(x.length,Math.floor(c*(x.length+1)));if(d<=0)m=0;else{let b=x[Math.min(x.length-1,d-1)];m=M.slice(0,b+1).join("").length}}else if(i==="line"){let M=r.split(`
2
+ `),x=Math.min(M.length,Math.floor(c*(M.length+1)));m=M.slice(0,x).join(`
3
+ `).length}else if(s.mode==="human"&&c<1){let M=0,x=0,d=l/Math.max(1,h);for(let b=0;b<h;b++){let f=r[b],P=1,g=s.commaPauseMultiplier??3,S=s.sentencePauseMultiplier??5.5,I=s.paragraphPauseMultiplier??7,v=s.jitter??.35;f===","||f===";"?P=g:f==="."||f==="!"||f==="?"?P=S:f===`
4
+ `&&(P=I);let R=1+Math.sin(b*17.3+42)*.5*v,w=d*P*R;if(x+=w,x<=u)M=b+1;else break}m=Math.min(h,M)}let y=r.slice(0,m);if(o.enabled&&m<h&&m>0){let M=Q(o.charset,o.customCharset),x=Math.min(m,Math.max(1,o.scrambleFramesPerChar>4?3:2)),d="";for(let b=0;b<x;b++){let f=Math.floor(Math.abs(Math.sin(a*7+b*13))*M.length)%M.length;d+=M[f]}y=y.slice(0,y.length-x)+d}let p=!0;if(n>0){let M=Math.max(1,Math.round(30/(2*n)));p=Math.floor(u/M)%2===0}return{visibleChars:m,currentDisplayString:y,isCursorVisible:p}}$();function _(r,a,t,l,s=24){let o=[],n=r;for(let i=1;i<=s;i++){let e=i/s,c=1-e,u=c*c,h=u*c,m=e*e,y=m*e,p={x:h*r.x+3*u*e*a.x+3*c*m*t.x+y*l.x,y:h*r.y+3*u*e*a.y+3*c*m*t.y+y*l.y};o.push({p0:n,p1:p}),n=p}return o}function Z(r,a,t,l=16){let s=[],o=r;for(let n=1;n<=l;n++){let i=n/l,e=1-i,c=e*e,u=i*i,h={x:c*r.x+2*e*i*a.x+u*t.x,y:c*r.y+2*e*i*a.y+u*t.y};s.push({p0:o,p1:h}),o=h}return s}function X(r,a,t,l,s,o,n){let i=Math.abs(a),e=Math.abs(t);if(i<1e-9||e<1e-9)return[{p0:r,p1:n}];if(Math.hypot(n.x-r.x,n.y-r.y)<1e-9)return[];let c=l*Math.PI/180,u=Math.cos(c),h=Math.sin(c),m=(r.x-n.x)/2,y=(r.y-n.y)/2,p=u*m+h*y,M=-h*m+u*y,x=p*p/(i*i)+M*M/(e*e);x>1&&(i*=Math.sqrt(x),e*=Math.sqrt(x));let d=i*i*e*e-i*i*M*M-e*e*p*p,b=i*i*M*M+e*e*p*p,f=(s===o?-1:1)*Math.sqrt(Math.max(0,d/b)),P=f*i*M/e,g=-f*e*p/i,S=u*P-h*g+(r.x+n.x)/2,I=h*P+u*g+(r.y+n.y)/2,v=(C,k,L,A)=>Math.atan2(C*A-k*L,C*L+k*A),R=v(1,0,(p-P)/i,(M-g)/e),w=v((p-P)/i,(M-g)/e,(-p-P)/i,(-M-g)/e);!o&&w>0&&(w-=2*Math.PI),o&&w<0&&(w+=2*Math.PI);let U=Math.max(4,Math.ceil(Math.abs(w)/(2*Math.PI)*64)),T=[],E=r;for(let C=1;C<=U;C++){let k=R+w*C/U,L=i*Math.cos(k),A=e*Math.sin(k),j=C===U?n:{x:u*L-h*A+S,y:h*L+u*A+I};T.push({p0:E,p1:j}),E=j}return T}function z(r){let a=[];if(!r||typeof r!="string")return a;let t=[],l=/([a-df-z])|([-+]?(?:\d*\.\d+|\d+)(?:[eE][-+]?\d+)?)/gi,s;for(;(s=l.exec(r))!==null;)s[1]?t.push(s[1]):s[2]&&t.push(parseFloat(s[2]));let o=0,n={x:0,y:0},i={x:0,y:0},e=null,c=null;for(;o<t.length;){let u=t[o++];if(typeof u!="string")continue;let h=u,m=h===h.toLowerCase(),y=h.toUpperCase(),p=()=>o<t.length&&typeof t[o]=="number"?t[o++]:0;switch(y){case"M":{let M=!0;for(;o<t.length&&typeof t[o]=="number";){let x=p(),d=p();m&&(x+=n.x,d+=n.y),M?(n={x,y:d},i={x,y:d},M=!1):(a.push({p0:n,p1:{x,y:d}}),n={x,y:d})}e=null,c=null;break}case"L":{for(;o<t.length&&typeof t[o]=="number";){let M=p(),x=p();m&&(M+=n.x,x+=n.y),a.push({p0:n,p1:{x:M,y:x}}),n={x:M,y:x}}e=null,c=null;break}case"H":{for(;o<t.length&&typeof t[o]=="number";){let M=p();m&&(M+=n.x);let x={x:M,y:n.y};a.push({p0:n,p1:x}),n=x}e=null,c=null;break}case"V":{for(;o<t.length&&typeof t[o]=="number";){let M=p();m&&(M+=n.y);let x={x:n.x,y:M};a.push({p0:n,p1:x}),n=x}e=null,c=null;break}case"C":{for(;o<t.length&&typeof t[o]=="number";){let M=p(),x=p(),d=p(),b=p(),f=p(),P=p();m&&(M+=n.x,x+=n.y,d+=n.x,b+=n.y,f+=n.x,P+=n.y);let g={x:M,y:x},S={x:d,y:b},I={x:f,y:P};a.push(..._(n,g,S,I)),n=I,e=S}c=null;break}case"S":{for(;o<t.length&&typeof t[o]=="number";){let M=p(),x=p(),d=p(),b=p();m&&(M+=n.x,x+=n.y,d+=n.x,b+=n.y);let f;e?f={x:2*n.x-e.x,y:2*n.y-e.y}:f={x:n.x,y:n.y};let P={x:M,y:x},g={x:d,y:b};a.push(..._(n,f,P,g)),n=g,e=P}c=null;break}case"Q":{for(;o<t.length&&typeof t[o]=="number";){let M=p(),x=p(),d=p(),b=p();m&&(M+=n.x,x+=n.y,d+=n.x,b+=n.y);let f={x:M,y:x},P={x:d,y:b};a.push(...Z(n,f,P)),n=P,c=f}e=null;break}case"T":{for(;o<t.length&&typeof t[o]=="number";){let M=p(),x=p();m&&(M+=n.x,x+=n.y);let d;c?d={x:2*n.x-c.x,y:2*n.y-c.y}:d={x:n.x,y:n.y};let b={x:M,y:x};a.push(...Z(n,d,b)),n=b,c=d}e=null;break}case"A":{for(;o<t.length&&typeof t[o]=="number";){let M=p(),x=p(),d=p(),b=p()!==0,f=p()!==0,P=p(),g=p();m&&(P+=n.x,g+=n.y);let S={x:P,y:g};a.push(...X(n,M,x,d,b,f,S)),n=S}e=null,c=null;break}case"Z":{Math.hypot(n.x-i.x,n.y-i.y)>1e-5&&a.push({p0:n,p1:i}),n=i,e=null,c=null;break}default:break}}return a}function Y(r,a,t,l=0){if(r.length===0)return[];let s=[],o=0;for(let u of r){let h=Math.hypot(u.p1.x-u.p0.x,u.p1.y-u.p0.y);s.push(h),o+=h}if(o<1e-6)return[];let n=Math.abs(l)>1?l%360/360:l,i=(a+n)%1,e=(t+n)%1;i<0&&(i+=1),e<0&&(e+=1);let c=(u,h)=>{if(u>=h)return[];let m=[],y=0;for(let p=0;p<r.length;p++){let M=r[p],x=s[p],d=y,b=y+x;if(y=b,b<=u||d>=h||x<1e-6)continue;let f=Math.max(0,(u-d)/x),P=Math.min(1,(h-d)/x);if(P>f){let g={x:M.p0.x+(M.p1.x-M.p0.x)*f,y:M.p0.y+(M.p1.y-M.p0.y)*f},S={x:M.p0.x+(M.p1.x-M.p0.x)*P,y:M.p0.y+(M.p1.y-M.p0.y)*P};m.push({p0:g,p1:S})}}return m};if(a===0&&t===1&&l===0)return[...r];if(Math.abs(i-e)<1e-5)return[];if(i<=e)return c(i*o,e*o);{let u=c(i*o,o),h=c(0,e*o);return[...u,...h]}}function wt(r,a,t=0){if(r.length===0||a.length===0)return r;let l=0;for(let y of a)l+=y;if(l<1e-5)return r;let s=0,o=[];for(let y of r){let p=Math.hypot(y.p1.x-y.p0.x,y.p1.y-y.p0.y);o.push(p),s+=p}let n=[],i=(t%l+l)%l,e=0,c=!0,u=i;for(;u>a[e];)u-=a[e],e=(e+1)%a.length,c=!c;let h=a[e]-u,m=0;for(;m<s;){let y=Math.min(h,s-m);if(c&&y>1e-4){let p=Y(r,m/s,(m+y)/s);n.push(...p)}m+=y,e=(e+1)%a.length,c=!c,h=a[e]}return n}function N(r,a,t=0,l=0,s=0,o=0){let n=Math.min(r/2,a/2),i=Math.min(t,n),e=Math.min(l,n),c=Math.min(s,n),u=Math.min(o,n);return i===0&&e===0&&c===0&&u===0?`M 0 0 L ${r} 0 L ${r} ${a} L 0 ${a} Z`:[`M ${i} 0`,`L ${r-e} 0`,e>0?`Q ${r} 0 ${r} ${e}`:`L ${r} 0`,`L ${r} ${a-c}`,c>0?`Q ${r} ${a} ${r-c} ${a}`:`L ${r} ${a}`,`L ${u} ${a}`,u>0?`Q 0 ${a} 0 ${a-u}`:`L 0 ${a}`,`L 0 ${i}`,i>0?`Q 0 0 ${i} 0`:"L 0 0","Z"].join(" ")}function K(r,a){let t=Math.min(r,a)/2,l=r/2,s=a/2,o=t*.5522847498;return[`M ${l} ${s-t}`,`C ${l+o} ${s-t} ${l+t} ${s-o} ${l+t} ${s}`,`C ${l+t} ${s+o} ${l+o} ${s+t} ${l} ${s+t}`,`C ${l-o} ${s+t} ${l-t} ${s+o} ${l-t} ${s}`,`C ${l-t} ${s-o} ${l-o} ${s-t} ${l} ${s-t}`,"Z"].join(" ")}function J(r,a){let t=r/2,l=a/2,s=t,o=l,n=t*.5522847498,i=l*.5522847498;return[`M ${s} ${o-l}`,`C ${s+n} ${o-l} ${s+t} ${o-i} ${s+t} ${o}`,`C ${s+t} ${o+i} ${s+n} ${o+l} ${s} ${o+l}`,`C ${s-n} ${o+l} ${s-t} ${o+i} ${s-t} ${o}`,`C ${s-t} ${o-i} ${s-n} ${o-l} ${s} ${o-l}`,"Z"].join(" ")}function W(r,a,t=5){let l=Math.max(3,t),s=Math.min(r,a)/2,o=r/2,n=a/2,i=[];for(let e=0;e<l;e++){let c=-Math.PI/2+e*2*Math.PI/l;i.push({x:o+s*Math.cos(c),y:n+s*Math.sin(c)})}return i.map((e,c)=>`${c===0?"M":"L"} ${e.x} ${e.y}`).join(" ")+" Z"}function tt(r,a,t=5,l=.5){let s=Math.max(3,t),o=Math.min(r,a)/2,n=o*Math.max(.01,Math.min(.99,l)),i=r/2,e=a/2,c=[];for(let u=0;u<s*2;u++){let h=-Math.PI/2+u*Math.PI/s,m=u%2===0?o:n;c.push({x:i+m*Math.cos(h),y:e+m*Math.sin(h)})}return c.map((u,h)=>`${h===0?"M":"L"} ${u.x} ${u.y}`).join(" ")+" Z"}function et(r,a,t=40,l=40,s=20){let o=Math.min(t,a),n=Math.min(l,r),i=Math.min(s,o),e=a/2;return[`M 0 ${e-i/2}`,`L ${r-n} ${e-i/2}`,`L ${r-n} ${e-o/2}`,`L ${r} ${e}`,`L ${r-n} ${e+o/2}`,`L ${r-n} ${e+i/2}`,`L 0 ${e+i/2}`,"Z"].join(" ")}function Ct(r){let{shapeType:a,width:t,height:l}=r;switch(a){case"rect":return N(t,l,r.cornerRadius??0,r.cornerRadius??0,r.cornerRadius??0,r.cornerRadius??0);case"circle":return K(t,l);case"ellipse":return J(t,l);case"polygon":return W(t,l,r.polygonSides??5);case"star":return tt(t,l,r.starPoints??5,r.starInnerRadiusRatio??.5);case"arrow":return et(t,l,r.arrowHeadWidth??40,r.arrowHeadLength??40,r.arrowShaftWidth??20);case"path":return r.path??"";default:return""}}function H(r){if(r.length<3)return[];if(r.length===3)return[r[0],r[1],r[2]];let a=[...r],t=a[a.length-1],l=a[0];if(Math.hypot(t.x-l.x,t.y-l.y)<1e-5&&a.pop(),a.length<3)return[];let s=0;for(let h=0;h<a.length;h++){let m=(h+1)%a.length;s+=a[h].x*a[m].y-a[m].x*a[h].y}s<0&&a.reverse();let o=(h,m,y,p)=>{let M=(y.x-m.x)*(h.y-m.y)-(y.y-m.y)*(h.x-m.x),x=(p.x-y.x)*(h.y-y.y)-(p.y-y.y)*(h.x-y.x),d=(m.x-p.x)*(h.y-p.y)-(m.y-p.y)*(h.x-p.x);return M>=-1e-6&&x>=-1e-6&&d>=-1e-6},n=(h,m,y,p)=>{if((m.x-h.x)*(y.y-h.y)-(m.y-h.y)*(y.x-h.x)<=1e-7)return!1;for(let x of p)if(!(x===h||x===m||x===y)&&o(x,h,m,y))return!1;return!0},i=[],e=[...a],c=0,u=e.length*e.length*2;for(;e.length>3&&c<u;){c++;let h=!1;for(let m=0;m<e.length;m++){let y=e[(m-1+e.length)%e.length],p=e[m],M=e[(m+1)%e.length];if(n(y,p,M,e)){i.push(y,p,M),e.splice(m,1),h=!0;break}}h||(i.push(e[0],e[1],e[2]),e.splice(1,1))}return e.length===3&&i.push(e[0],e[1],e[2]),i}function It(r){let{shapeType:a,width:t,height:l}=r;if(a==="rect"){let s=r.cornerRadius??0;if(s<=0)return new Float32Array([0,0,t,0,t,l,0,0,t,l,0,l]);let o=N(t,l,s,s,s,s),i=z(o).map(u=>u.p0),e=H(i),c=new Float32Array(e.length*2);for(let u=0;u<e.length;u++)c[u*2]=e[u].x,c[u*2+1]=e[u].y;return c}if(a==="circle"||a==="ellipse"){let s=t/2,o=l/2,n=a==="circle"?Math.min(t,l)/2:t/2,i=a==="circle"?n:l/2,e=48,c=new Float32Array(e*3*2),u=0;for(let h=0;h<e;h++){let m=h*2*Math.PI/e,y=(h+1)*2*Math.PI/e;c[u++]=s,c[u++]=o,c[u++]=s+n*Math.cos(m),c[u++]=o+i*Math.sin(m),c[u++]=s+n*Math.cos(y),c[u++]=o+i*Math.sin(y)}return c}if(a==="polygon"){let s=Math.max(3,r.polygonSides??5),o=Math.min(t,l)/2,n=t/2,i=l/2,e=new Float32Array(s*3*2),c=0;for(let u=0;u<s;u++){let h=-Math.PI/2+u*2*Math.PI/s,m=-Math.PI/2+(u+1)*2*Math.PI/s;e[c++]=n,e[c++]=i,e[c++]=n+o*Math.cos(h),e[c++]=i+o*Math.sin(h),e[c++]=n+o*Math.cos(m),e[c++]=i+o*Math.sin(m)}return e}if(a==="star"){let s=Math.max(3,r.starPoints??5),o=Math.min(t,l)/2,n=o*Math.max(.01,Math.min(.99,r.starInnerRadiusRatio??.5)),i=t/2,e=l/2,c=s*2,u=new Float32Array(c*3*2),h=0;for(let m=0;m<c;m++){let y=-Math.PI/2+m*Math.PI/s,p=-Math.PI/2+(m+1)*Math.PI/s,M=m%2===0?o:n,x=(m+1)%2===0?o:n;u[h++]=i,u[h++]=e,u[h++]=i+M*Math.cos(y),u[h++]=e+M*Math.sin(y),u[h++]=i+x*Math.cos(p),u[h++]=e+x*Math.sin(p)}return u}if(a==="arrow"){let s=Math.min(r.arrowHeadWidth??40,l),o=Math.min(r.arrowHeadLength??40,t),n=Math.min(r.arrowShaftWidth??20,s),i=l/2,e=0,c=t-o,u=t,h=i-n/2,m=i+n/2,y=i-s/2,p=i+s/2;return new Float32Array([e,h,c,h,c,m,e,h,c,m,e,m,c,y,u,i,c,p])}if(a==="path"&&r.path){let s=z(r.path);if(s.length===0)return new Float32Array(0);let o=s.map(e=>e.p0),n=H(o),i=new Float32Array(n.length*2);for(let e=0;e<n.length;e++)i[e*2]=n[e].x,i[e*2+1]=n[e].y;return i}return new Float32Array(0)}$();var nt={color:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"}};function Lt(r){return r.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]})}function At(r,a){let{module:t}=a;return r.createRenderPipeline({label:a.label,layout:r.createPipelineLayout({bindGroupLayouts:[a.uniformLayout]}),vertex:{module:t,entryPoint:"vs",buffers:[{arrayStride:8,attributes:[{shaderLocation:0,offset:0,format:"float32x2"}]}]},fragment:{module:t,entryPoint:"fs",targets:[{format:a.format,blend:a.blend??nt}]},primitive:{topology:a.topology}})}$();var O=class{samplers=new Map;lru=[];maxCapacity;constructor(a=32){this.maxCapacity=a}getSampler(a,t={}){let l=Math.max(1,Math.min(16,t.maxAnisotropy??4)),s=`${t.magFilter??"linear"}:${t.minFilter??"linear"}:${t.mipmapFilter??"linear"}:${t.addressModeU??"clamp-to-edge"}:${t.addressModeV??"clamp-to-edge"}:${l}`,o=this.samplers.get(s);if(o)this.lru=this.lru.filter(n=>n!==s);else{if(o=a.createSampler({magFilter:t.magFilter??"linear",minFilter:t.minFilter??"linear",mipmapFilter:t.mipmapFilter??"linear",addressModeU:t.addressModeU??"clamp-to-edge",addressModeV:t.addressModeV??"clamp-to-edge",maxAnisotropy:l}),this.samplers.size>=this.maxCapacity){let n=this.lru.pop();n&&this.samplers.delete(n)}this.samplers.set(s,o)}return this.lru.unshift(s),o}destroy(){this.samplers.clear(),this.lru=[]}};$();function rt(r){return B(r)??V(r)??G(r)}function jt(r){let a=rt(r);return typeof a=="string"?a:G(r)}export{ot as a,st as b,it as c,lt as d,ct as e,ut as f,ht as g,mt as h,xt as i,yt as j,dt as k,bt as l,Q as m,gt as n,X as o,z as p,Y as q,wt as r,Ct as s,It as t,nt as u,Lt as v,At as w,O as x,rt as y,jt as z};
@@ -1,4 +1,4 @@
1
- import{a as N,d as K,e as $,f as z,g as E,h as j,j as Q,k as J,l as X,m as Z}from"./chunk-IB6GZJOL.mjs";import{A as W,w as F}from"./chunk-F4F2UDRX.mjs";import{a as w}from"./chunk-354GX6IB.mjs";import{g as S}from"./chunk-Y4NIR77Z.mjs";S();S();var Me=`
1
+ import{a as N,d as K,e as $,f as z,g as E,h as j,j as Q,k as J,l as X,m as Z}from"./chunk-IB6GZJOL.mjs";import{c as F,g as W}from"./chunk-KOVN277Z.mjs";import{a as w}from"./chunk-354GX6IB.mjs";import{g as S}from"./chunk-Y4NIR77Z.mjs";S();S();var Me=`
2
2
  struct HalftoneUniforms {
3
3
  mode : f32, // 0 = Monochrome, 1 = CMYK
4
4
  dotShape : f32, // 0 = Circle, 1 = Diamond, 2 = Line, 3 = Square
@@ -1 +1 @@
1
- import{a as x}from"./chunk-OGSZZ4JO.mjs";import{h as b,j as g}from"./chunk-IB6GZJOL.mjs";import{A as T,v as w}from"./chunk-F4F2UDRX.mjs";import{g as u}from"./chunk-Y4NIR77Z.mjs";u();u();function d(n,r,i,m,f,h,o){let e=`${r}HandleId`,l=n[e],c=l?n.inputs?.[l]:null,s;if(c?.connectionValid&&c.outputItem){let t=c.outputItem.data;s=t&&typeof t=="object"&&"offset"in t?t.offset:c.outputItem.data}else s=n[r];let p=w(s,i,h,o);return Math.max(m,Math.min(f,p))}var P=new Map;function z(n,r){let i=P.get(r);return i||(i=new x(n),P.set(r,i)),i}var D=async n=>{let{ctx:r,encoder:i,pass:m,targetWidth:f,targetHeight:h,props:o}=n,e=o.virtualMedia?.operation;if(!e||e.op!=="TemporalDeflicker"&&e.op!=="Deflicker")return;let l=o.virtualMedia?.children?.[0];if(!l)return;m.end();let c=f,s=h,p=o.frame??0,t=o.compositionFrame??p,a=o.fps||30,{texture:M}=await b(n,l,{props:{...o,virtualMedia:l,containerWidth:c,containerHeight:s}});n.pass.end();let W=d(e,"blendWeight",.35,0,1,t,a),y=d(e,"disocclusionThreshold",.15,.01,1,t,a),I=d(e,"maxMotionPixels",64,1,256,t,a),v=d(e,"scale",.5,.1,1,t,a),R=Math.round(d(e,"windowSize",2,1,5,t,a)),G=o.virtualMedia?.metadata?.id||e.id||`deflicker_${o.renderId??"global"}`,k=z(r.device,G);p===0&&k.reset();let H=k.execute(M,{blendWeight:W,disocclusionThreshold:y,maxMotionPixels:I,scale:v,windowSize:R},i),U=typeof e.opacity=="number"?e.opacity:1;g(n,H,U)};var j=T({WebGPURenderer:D});export{j as a};
1
+ import{a as x}from"./chunk-OGSZZ4JO.mjs";import{h as b,j as g}from"./chunk-IB6GZJOL.mjs";import{b as w,g as T}from"./chunk-KOVN277Z.mjs";import{g as u}from"./chunk-Y4NIR77Z.mjs";u();u();function d(n,r,i,m,f,h,o){let e=`${r}HandleId`,l=n[e],c=l?n.inputs?.[l]:null,s;if(c?.connectionValid&&c.outputItem){let t=c.outputItem.data;s=t&&typeof t=="object"&&"offset"in t?t.offset:c.outputItem.data}else s=n[r];let p=w(s,i,h,o);return Math.max(m,Math.min(f,p))}var P=new Map;function z(n,r){let i=P.get(r);return i||(i=new x(n),P.set(r,i)),i}var D=async n=>{let{ctx:r,encoder:i,pass:m,targetWidth:f,targetHeight:h,props:o}=n,e=o.virtualMedia?.operation;if(!e||e.op!=="TemporalDeflicker"&&e.op!=="Deflicker")return;let l=o.virtualMedia?.children?.[0];if(!l)return;m.end();let c=f,s=h,p=o.frame??0,t=o.compositionFrame??p,a=o.fps||30,{texture:M}=await b(n,l,{props:{...o,virtualMedia:l,containerWidth:c,containerHeight:s}});n.pass.end();let W=d(e,"blendWeight",.35,0,1,t,a),y=d(e,"disocclusionThreshold",.15,.01,1,t,a),I=d(e,"maxMotionPixels",64,1,256,t,a),v=d(e,"scale",.5,.1,1,t,a),R=Math.round(d(e,"windowSize",2,1,5,t,a)),G=o.virtualMedia?.metadata?.id||e.id||`deflicker_${o.renderId??"global"}`,k=z(r.device,G);p===0&&k.reset();let H=k.execute(M,{blendWeight:W,disocclusionThreshold:y,maxMotionPixels:I,scale:v,windowSize:R},i),U=typeof e.opacity=="number"?e.opacity:1;g(n,H,U)};var j=T({WebGPURenderer:D});export{j as a};