framefields 2.13.0 → 2.14.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 (302) hide show
  1. package/README.md +9 -4
  2. package/dist/audio/index.d.mts +5 -5
  3. package/dist/audio/index.mjs +10 -10
  4. package/dist/{audio-CHV33Od9.d.mts → audio-CdCuGK5d.d.mts} +3 -3
  5. package/dist/{audio-CHV33Od9.d.mts.map → audio-CdCuGK5d.d.mts.map} +1 -1
  6. package/dist/{audio-DHzLQ_RG.mjs → audio-DFwRbID_.mjs} +3 -3
  7. package/dist/{audio-DHzLQ_RG.mjs.map → audio-DFwRbID_.mjs.map} +1 -1
  8. package/dist/cli/check-worker.mjs +43 -43
  9. package/dist/cloud/index.d.mts.map +1 -1
  10. package/dist/components/index.d.mts +13 -13
  11. package/dist/components/index.mjs +42 -42
  12. package/dist/{dist-D3BeAZ7X.mjs → dist--Uu5bQ_6.mjs} +870 -348
  13. package/dist/dist--Uu5bQ_6.mjs.map +1 -0
  14. package/dist/{dist-CUNvNDS3.mjs → dist-B8Nby2CU.mjs} +18 -4
  15. package/dist/dist-B8Nby2CU.mjs.map +1 -0
  16. package/dist/effects/index.d.mts +5 -5
  17. package/dist/effects/index.mjs +34 -34
  18. package/dist/{effects-BiDgCK1L.mjs → effects-WMgv8ZaD.mjs} +2 -2
  19. package/dist/{effects-BiDgCK1L.mjs.map → effects-WMgv8ZaD.mjs.map} +1 -1
  20. package/dist/fonts/index.mjs +2 -2
  21. package/dist/{fonts-DeDPWdvJ.mjs → fonts-OW3yAfO5.mjs} +2 -2
  22. package/dist/{fonts-DeDPWdvJ.mjs.map → fonts-OW3yAfO5.mjs.map} +1 -1
  23. package/dist/{gpu-CWjgql4C.mjs → gpu-R4T2Tndu.mjs} +2 -2
  24. package/dist/{gpu-CWjgql4C.mjs.map → gpu-R4T2Tndu.mjs.map} +1 -1
  25. package/dist/{index-E2IXX0Cz.d.mts → index-9xte4JgL.d.mts} +110 -61
  26. package/dist/index-9xte4JgL.d.mts.map +1 -0
  27. package/dist/{index-YB9j9KUx.d.mts → index-B0Vq8Bwf.d.mts} +3 -3
  28. package/dist/{index-YB9j9KUx.d.mts.map → index-B0Vq8Bwf.d.mts.map} +1 -1
  29. package/dist/{index-BFTtXosj.d.mts → index-BVd6nXd5.d.mts} +2 -2
  30. package/dist/index-BVd6nXd5.d.mts.map +1 -0
  31. package/dist/{index-CnZhBlob.d.mts → index-Bv7gxGK1.d.mts} +2 -2
  32. package/dist/{index-CnZhBlob.d.mts.map → index-Bv7gxGK1.d.mts.map} +1 -1
  33. package/dist/{index-a6JrbAK0.d.mts → index-C-V6CAhP.d.mts} +32 -2
  34. package/dist/index-C-V6CAhP.d.mts.map +1 -0
  35. package/dist/{index-DQ1U3HC3.d.mts → index-C7-p9zwU.d.mts} +3 -3
  36. package/dist/{index-DQ1U3HC3.d.mts.map → index-C7-p9zwU.d.mts.map} +1 -1
  37. package/dist/{index-rtCXNxGO.d.mts → index-CEKxvGY-.d.mts} +2 -2
  38. package/dist/{index-rtCXNxGO.d.mts.map → index-CEKxvGY-.d.mts.map} +1 -1
  39. package/dist/{index-X2u96TEo.d.mts → index-CRaydvLi.d.mts} +29 -11
  40. package/dist/index-CRaydvLi.d.mts.map +1 -0
  41. package/dist/{index-DBh3WphX.d.mts → index-D1FqV1eu.d.mts} +2 -2
  42. package/dist/{index-DBh3WphX.d.mts.map → index-D1FqV1eu.d.mts.map} +1 -1
  43. package/dist/{index-Dibc_xpC.d.mts → index-DoP6EiHj.d.mts} +5 -5
  44. package/dist/{index-Dibc_xpC.d.mts.map → index-DoP6EiHj.d.mts.map} +1 -1
  45. package/dist/{index-D68eGFNE.d.mts → index-GA9_Z8Fn.d.mts} +2 -2
  46. package/dist/{index-D68eGFNE.d.mts.map → index-GA9_Z8Fn.d.mts.map} +1 -1
  47. package/dist/index.d.mts +14 -14
  48. package/dist/index.mjs +50 -50
  49. package/dist/preview/index.d.mts +5 -5
  50. package/dist/preview/index.mjs +10 -10
  51. package/dist/{preview-PDz7o2xg.mjs → preview-D7BGmE1E.mjs} +3 -3
  52. package/dist/{preview-PDz7o2xg.mjs.map → preview-D7BGmE1E.mjs.map} +1 -1
  53. package/dist/preview-engine/audio.mjs +1 -1
  54. package/dist/preview-engine/{chunk-IEEV5RB3.mjs → chunk-3C2XT64C.mjs} +1 -1
  55. package/dist/preview-engine/chunk-52X7SURQ.mjs +494 -0
  56. package/dist/preview-engine/{chunk-XYCR3STG.mjs → chunk-5DZTPUMH.mjs} +198 -92
  57. package/dist/preview-engine/{chunk-4P3MMJWD.mjs → chunk-FZ4RD7HV.mjs} +1 -1
  58. package/dist/preview-engine/chunk-GNDE3OXQ.mjs +5 -0
  59. package/dist/preview-engine/chunk-OBIJIQCZ.mjs +1 -0
  60. package/dist/preview-engine/{chunk-SMHEMYCV.mjs → chunk-UBY2UYEL.mjs} +1 -1
  61. package/dist/preview-engine/{chunk-UFPA36D2.mjs → chunk-UPZURPJY.mjs} +31 -31
  62. package/dist/preview-engine/components.mjs +1 -1
  63. package/dist/preview-engine/effects.mjs +1 -1
  64. package/dist/preview-engine/framefields.mjs +1 -1
  65. package/dist/preview-engine/player.mjs +1 -1
  66. package/dist/preview-engine/renderers-DLJOA3BM.mjs +228 -0
  67. package/dist/preview-engine/signals.mjs +1 -1
  68. package/dist/{program-Bn6ko_I4.mjs → program-tFKCWU2j.mjs} +109 -12
  69. package/dist/program-tFKCWU2j.mjs.map +1 -0
  70. package/dist/renderer/index.d.mts +4 -4
  71. package/dist/renderer/index.mjs +2 -2
  72. package/dist/{renderer-BCTUqJG7.mjs → renderer-03mYJLgX.mjs} +3 -3
  73. package/dist/{renderer-BCTUqJG7.mjs.map → renderer-03mYJLgX.mjs.map} +1 -1
  74. package/dist/{renderer-CyUiXLRa.mjs → renderer-0rveCDm-.mjs} +3 -3
  75. package/dist/{renderer-CyUiXLRa.mjs.map → renderer-0rveCDm-.mjs.map} +1 -1
  76. package/dist/{renderer-BUj7jE6t.mjs → renderer-2PjR3w-q.mjs} +3 -3
  77. package/dist/{renderer-BUj7jE6t.mjs.map → renderer-2PjR3w-q.mjs.map} +1 -1
  78. package/dist/{renderer-BqUAyzCZ.mjs → renderer-47y12Z37.mjs} +2 -2
  79. package/dist/{renderer-BqUAyzCZ.mjs.map → renderer-47y12Z37.mjs.map} +1 -1
  80. package/dist/renderer-6_bzbbXt.mjs +5 -0
  81. package/dist/renderer-8M-9G6F_.mjs +5 -0
  82. package/dist/{renderer-CwlY8Tb-.mjs → renderer-B0yVUOPP.mjs} +2 -2
  83. package/dist/{renderer-CwlY8Tb-.mjs.map → renderer-B0yVUOPP.mjs.map} +1 -1
  84. package/dist/renderer-B5OzKvF8.mjs +5 -0
  85. package/dist/{renderer-CgK7Q1G8.mjs → renderer-B7G1KohJ.mjs} +2 -2
  86. package/dist/renderer-BBCZ2qbE.mjs +5 -0
  87. package/dist/{renderer-CuPAQjDK.mjs → renderer-BBMtmxks.mjs} +3 -3
  88. package/dist/{renderer-CuPAQjDK.mjs.map → renderer-BBMtmxks.mjs.map} +1 -1
  89. package/dist/renderer-BChbxCux.mjs +5 -0
  90. package/dist/{renderer-C-GTxnfv.mjs → renderer-BDzn1AKF.mjs} +2 -2
  91. package/dist/{renderer-C-GTxnfv.mjs.map → renderer-BDzn1AKF.mjs.map} +1 -1
  92. package/dist/renderer-BGeMPr8C.mjs +5 -0
  93. package/dist/{renderer-RzkU_O1i.mjs → renderer-BGp0An5A.mjs} +3 -3
  94. package/dist/{renderer-RzkU_O1i.mjs.map → renderer-BGp0An5A.mjs.map} +1 -1
  95. package/dist/{renderer-BZgJj8Cl.mjs → renderer-BH7UCMPQ.mjs} +2 -2
  96. package/dist/{renderer-BZgJj8Cl.mjs.map → renderer-BH7UCMPQ.mjs.map} +1 -1
  97. package/dist/{renderer-aRk849b3.d.mts → renderer-BHYJlK6H.d.mts} +2 -2
  98. package/dist/{renderer-aRk849b3.d.mts.map → renderer-BHYJlK6H.d.mts.map} +1 -1
  99. package/dist/{renderer-Cu3iKMSJ.mjs → renderer-BJ8ea92W.mjs} +3 -3
  100. package/dist/{renderer-Cu3iKMSJ.mjs.map → renderer-BJ8ea92W.mjs.map} +1 -1
  101. package/dist/{renderer-Dp5ChuOs.mjs → renderer-BOSZAdgF.mjs} +2 -2
  102. package/dist/{renderer-Dp5ChuOs.mjs.map → renderer-BOSZAdgF.mjs.map} +1 -1
  103. package/dist/renderer-BPQ8Pkjb.mjs +5 -0
  104. package/dist/renderer-BTRpA3HD.mjs +5 -0
  105. package/dist/{renderer-vll8LX0I.mjs → renderer-BVIXKfbC.mjs} +132 -116
  106. package/dist/renderer-BVIXKfbC.mjs.map +1 -0
  107. package/dist/{renderer-DpZballM.mjs → renderer-BVU22lBS.mjs} +2 -2
  108. package/dist/{renderer-DpZballM.mjs.map → renderer-BVU22lBS.mjs.map} +1 -1
  109. package/dist/renderer-BVsECSn-.mjs +5 -0
  110. package/dist/{renderer-DwGlDNOV.mjs → renderer-BWSRryIA.mjs} +2 -2
  111. package/dist/{renderer-DwGlDNOV.mjs.map → renderer-BWSRryIA.mjs.map} +1 -1
  112. package/dist/{renderer-BMpmmYOq.mjs → renderer-BacY4nh8.mjs} +2 -2
  113. package/dist/{renderer-BMpmmYOq.mjs.map → renderer-BacY4nh8.mjs.map} +1 -1
  114. package/dist/{renderer-CZ5mwBW1.mjs → renderer-Baw6Utxi.mjs} +2 -2
  115. package/dist/{renderer-CZ5mwBW1.mjs.map → renderer-Baw6Utxi.mjs.map} +1 -1
  116. package/dist/{renderer-NBMmvqWl.mjs → renderer-Bcu3UrI-.mjs} +3 -3
  117. package/dist/{renderer-NBMmvqWl.mjs.map → renderer-Bcu3UrI-.mjs.map} +1 -1
  118. package/dist/{renderer-DxB_OfLs.mjs → renderer-BeNl_6EG.mjs} +2 -2
  119. package/dist/{renderer-DxB_OfLs.mjs.map → renderer-BeNl_6EG.mjs.map} +1 -1
  120. package/dist/{renderer-BHPgkoEL.mjs → renderer-BfZNIiSv.mjs} +2 -2
  121. package/dist/{renderer-BHPgkoEL.mjs.map → renderer-BfZNIiSv.mjs.map} +1 -1
  122. package/dist/renderer-Bgos68gc.mjs +6 -0
  123. package/dist/{renderer-CnL8Cmmr.mjs → renderer-BjDddtw9.mjs} +2 -2
  124. package/dist/renderer-BjHOvoqO.mjs +5 -0
  125. package/dist/renderer-BjXMPPlV.mjs +5 -0
  126. package/dist/{renderer-FPiLBwj5.mjs → renderer-BpVOk9ux.mjs} +2 -2
  127. package/dist/{renderer-FPiLBwj5.mjs.map → renderer-BpVOk9ux.mjs.map} +1 -1
  128. package/dist/{renderer-DJPZs_zV.mjs → renderer-Bpm145BW.mjs} +3 -3
  129. package/dist/{renderer-DJPZs_zV.mjs.map → renderer-Bpm145BW.mjs.map} +1 -1
  130. package/dist/{renderer-45ifiDkn.mjs → renderer-Brmbl12Y.mjs} +3 -3
  131. package/dist/{renderer-45ifiDkn.mjs.map → renderer-Brmbl12Y.mjs.map} +1 -1
  132. package/dist/renderer-Byobxqkv.mjs +5 -0
  133. package/dist/{renderer-DOZPZTxe.mjs → renderer-C20efMI0.mjs} +3 -3
  134. package/dist/{renderer-DOZPZTxe.mjs.map → renderer-C20efMI0.mjs.map} +1 -1
  135. package/dist/{renderer-puQhVfDS.mjs → renderer-C5AoaymD.mjs} +3 -3
  136. package/dist/{renderer-puQhVfDS.mjs.map → renderer-C5AoaymD.mjs.map} +1 -1
  137. package/dist/{renderer-B-LUGB9h.mjs → renderer-CCxk-RJR.mjs} +2 -2
  138. package/dist/{renderer-B-LUGB9h.mjs.map → renderer-CCxk-RJR.mjs.map} +1 -1
  139. package/dist/{renderer-BKi6jDi_.mjs → renderer-CKo7VR8x.mjs} +3 -3
  140. package/dist/{renderer-BKi6jDi_.mjs.map → renderer-CKo7VR8x.mjs.map} +1 -1
  141. package/dist/renderer-CKrsg3EG.mjs +5 -0
  142. package/dist/{renderer--Q0pM9Vh.mjs → renderer-COgwYqev.mjs} +3 -3
  143. package/dist/{renderer--Q0pM9Vh.mjs.map → renderer-COgwYqev.mjs.map} +1 -1
  144. package/dist/{renderer-B5b-ehRb.mjs → renderer-CP108ABB.mjs} +2 -2
  145. package/dist/{renderer-B5b-ehRb.mjs.map → renderer-CP108ABB.mjs.map} +1 -1
  146. package/dist/{renderer-BPOh9x5X.mjs → renderer-CP8wLzTU.mjs} +2 -2
  147. package/dist/{renderer-BPOh9x5X.mjs.map → renderer-CP8wLzTU.mjs.map} +1 -1
  148. package/dist/{renderer-BPiWsrC2.mjs → renderer-CT3zkfbf.mjs} +2 -2
  149. package/dist/{renderer-BPiWsrC2.mjs.map → renderer-CT3zkfbf.mjs.map} +1 -1
  150. package/dist/{renderer-CQFMyC_c.mjs → renderer-Ca1KjNCO.mjs} +2 -2
  151. package/dist/{renderer-CQFMyC_c.mjs.map → renderer-Ca1KjNCO.mjs.map} +1 -1
  152. package/dist/renderer-Cj875NuH.mjs +5 -0
  153. package/dist/{renderer-CMnlgAGs.mjs → renderer-Cm0tsbQH.mjs} +2 -2
  154. package/dist/{renderer-CMnlgAGs.mjs.map → renderer-Cm0tsbQH.mjs.map} +1 -1
  155. package/dist/renderer-CnmzJoMv.mjs +5 -0
  156. package/dist/{renderer-BtgqTg2K.mjs → renderer-Cqb7PGrI.mjs} +2 -2
  157. package/dist/{renderer-C9dqx3U7.mjs → renderer-CrxwW6VQ.mjs} +3 -3
  158. package/dist/{renderer-C9dqx3U7.mjs.map → renderer-CrxwW6VQ.mjs.map} +1 -1
  159. package/dist/renderer-CtklDaMg.mjs +5 -0
  160. package/dist/{renderer-dRXP2dJU.mjs → renderer-Cw6_NL2i.mjs} +3 -3
  161. package/dist/{renderer-dRXP2dJU.mjs.map → renderer-Cw6_NL2i.mjs.map} +1 -1
  162. package/dist/{renderer-C_1eqfI0.mjs → renderer-D-KHHWQD.mjs} +3 -3
  163. package/dist/{renderer-C_1eqfI0.mjs.map → renderer-D-KHHWQD.mjs.map} +1 -1
  164. package/dist/{renderer-CxSFvKd1.mjs → renderer-D-RhYvVl.mjs} +2 -2
  165. package/dist/{renderer-CxSFvKd1.mjs.map → renderer-D-RhYvVl.mjs.map} +1 -1
  166. package/dist/renderer-D1tK3in_.mjs +5 -0
  167. package/dist/{renderer-Nnu32rqg.mjs → renderer-D2wNFNRf.mjs} +2 -2
  168. package/dist/{renderer-Nnu32rqg.mjs.map → renderer-D2wNFNRf.mjs.map} +1 -1
  169. package/dist/renderer-D2yc9P61.mjs +5 -0
  170. package/dist/renderer-D4v-JvSr.mjs +5 -0
  171. package/dist/renderer-D7WRWDwB.mjs +5 -0
  172. package/dist/{renderer-DXFJv_e6.mjs → renderer-DA8YEo_d.mjs} +3 -3
  173. package/dist/{renderer-DXFJv_e6.mjs.map → renderer-DA8YEo_d.mjs.map} +1 -1
  174. package/dist/{renderer-CYwVNbUh.mjs → renderer-DEjo6dw_.mjs} +2 -2
  175. package/dist/{renderer-CYwVNbUh.mjs.map → renderer-DEjo6dw_.mjs.map} +1 -1
  176. package/dist/renderer-DGvA0tdB.mjs +5 -0
  177. package/dist/{renderer-Br8km655.mjs → renderer-DIEeHiQA.mjs} +2 -2
  178. package/dist/{renderer-Br8km655.mjs.map → renderer-DIEeHiQA.mjs.map} +1 -1
  179. package/dist/{renderer-SJyp9-62.mjs → renderer-DNxWOz8Q.mjs} +2 -2
  180. package/dist/{renderer-SJyp9-62.mjs.map → renderer-DNxWOz8Q.mjs.map} +1 -1
  181. package/dist/renderer-DO7v5Sdm.mjs +5 -0
  182. package/dist/renderer-DRVvt7-V.mjs +5 -0
  183. package/dist/{renderer-DGb_wgTW.mjs → renderer-DVPgWHZw.mjs} +3 -3
  184. package/dist/{renderer-DGb_wgTW.mjs.map → renderer-DVPgWHZw.mjs.map} +1 -1
  185. package/dist/{renderer-BjgFpwVK.mjs → renderer-DWq9gYRw.mjs} +3 -3
  186. package/dist/{renderer-BjgFpwVK.mjs.map → renderer-DWq9gYRw.mjs.map} +1 -1
  187. package/dist/renderer-DYMCd3jL.mjs +5 -0
  188. package/dist/{renderer-C1ctHdXl.mjs → renderer-D_j1WKMD.mjs} +3 -3
  189. package/dist/{renderer-C1ctHdXl.mjs.map → renderer-D_j1WKMD.mjs.map} +1 -1
  190. package/dist/{renderer-BsMZ5Iaq.mjs → renderer-DcAKDAnS.mjs} +3 -3
  191. package/dist/{renderer-BsMZ5Iaq.mjs.map → renderer-DcAKDAnS.mjs.map} +1 -1
  192. package/dist/{renderer-g9SstkTz.mjs → renderer-Dgj46uEU.mjs} +2 -2
  193. package/dist/{renderer-DRal7Goa.mjs → renderer-DhyMfG1v.mjs} +3 -3
  194. package/dist/{renderer-DRal7Goa.mjs.map → renderer-DhyMfG1v.mjs.map} +1 -1
  195. package/dist/{renderer-BO_wuUKA.mjs → renderer-Dj2H5JPR.mjs} +3 -3
  196. package/dist/{renderer-BO_wuUKA.mjs.map → renderer-Dj2H5JPR.mjs.map} +1 -1
  197. package/dist/{renderer-BlZgyBSo.mjs → renderer-DkOuQi84.mjs} +3 -3
  198. package/dist/{renderer-BlZgyBSo.mjs.map → renderer-DkOuQi84.mjs.map} +1 -1
  199. package/dist/renderer-DmHKw-MM.mjs +5 -0
  200. package/dist/renderer-DoDsuZ6G.mjs +5 -0
  201. package/dist/{renderer-BgjPbgbn.mjs → renderer-Dr0tXA4k.mjs} +3 -3
  202. package/dist/{renderer-BgjPbgbn.mjs.map → renderer-Dr0tXA4k.mjs.map} +1 -1
  203. package/dist/{renderer-opVuiAQR.mjs → renderer-DtMVitEF.mjs} +2 -2
  204. package/dist/{renderer-opVuiAQR.mjs.map → renderer-DtMVitEF.mjs.map} +1 -1
  205. package/dist/{renderer-D-fzEZfX.mjs → renderer-Dwwnx7Dk.mjs} +2 -2
  206. package/dist/{renderer-D-fzEZfX.mjs.map → renderer-Dwwnx7Dk.mjs.map} +1 -1
  207. package/dist/{renderer-dGEMVaZ3.mjs → renderer-DzLrvCB2.mjs} +2 -2
  208. package/dist/{renderer-dGEMVaZ3.mjs.map → renderer-DzLrvCB2.mjs.map} +1 -1
  209. package/dist/renderer-EpgclS70.mjs +5 -0
  210. package/dist/{renderer-549d94qG.mjs → renderer-FYOL5Za6.mjs} +3 -3
  211. package/dist/{renderer-549d94qG.mjs.map → renderer-FYOL5Za6.mjs.map} +1 -1
  212. package/dist/renderer-GroKiYyK.mjs +5 -0
  213. package/dist/{renderer-CciiDHuU.mjs → renderer-I0Hh9cLK.mjs} +3 -3
  214. package/dist/{renderer-CciiDHuU.mjs.map → renderer-I0Hh9cLK.mjs.map} +1 -1
  215. package/dist/renderer-MQ5K_xIS.mjs +5 -0
  216. package/dist/{renderer-C7m7Yxgc.mjs → renderer-NRMlYkX6.mjs} +3 -3
  217. package/dist/{renderer-C7m7Yxgc.mjs.map → renderer-NRMlYkX6.mjs.map} +1 -1
  218. package/dist/{renderer-BIieU9pY.mjs → renderer-Nnmi8Gt6.mjs} +3 -3
  219. package/dist/{renderer-BIieU9pY.mjs.map → renderer-Nnmi8Gt6.mjs.map} +1 -1
  220. package/dist/renderer-U43SflML.mjs +5 -0
  221. package/dist/renderer-UqOmBgCv.mjs +5 -0
  222. package/dist/{renderer-KgsVk9c6.mjs → renderer-W1bVNVR6.mjs} +3 -3
  223. package/dist/{renderer-KgsVk9c6.mjs.map → renderer-W1bVNVR6.mjs.map} +1 -1
  224. package/dist/renderer-XLULgJM0.mjs +5 -0
  225. package/dist/{renderer-CE4535aW.mjs → renderer-ZnrEfkYh.mjs} +2 -2
  226. package/dist/{renderer-CE4535aW.mjs.map → renderer-ZnrEfkYh.mjs.map} +1 -1
  227. package/dist/{renderer-RAq3LnNy.mjs → renderer-_pC-jB9O.mjs} +2 -2
  228. package/dist/{renderer-RAq3LnNy.mjs.map → renderer-_pC-jB9O.mjs.map} +1 -1
  229. package/dist/{renderer-Dz6P-rPI.mjs → renderer-iMiYStcW.mjs} +2 -2
  230. package/dist/{renderer-Dz6P-rPI.mjs.map → renderer-iMiYStcW.mjs.map} +1 -1
  231. package/dist/{renderer-S9tVGneU.mjs → renderer-jUKdkmG5.mjs} +69 -69
  232. package/dist/{renderer-S9tVGneU.mjs.map → renderer-jUKdkmG5.mjs.map} +1 -1
  233. package/dist/{renderer-_54hiCq0.mjs → renderer-k5d7JSbs.mjs} +3 -3
  234. package/dist/{renderer-_54hiCq0.mjs.map → renderer-k5d7JSbs.mjs.map} +1 -1
  235. package/dist/renderer-lNjxY1GG.mjs +5 -0
  236. package/dist/{renderer-CL-vyXgX.mjs → renderer-nHS3Sius.mjs} +3 -3
  237. package/dist/{renderer-CL-vyXgX.mjs.map → renderer-nHS3Sius.mjs.map} +1 -1
  238. package/dist/{renderer-Cp_HOmp7.mjs → renderer-ngmYIIob.mjs} +3 -3
  239. package/dist/{renderer-Cp_HOmp7.mjs.map → renderer-ngmYIIob.mjs.map} +1 -1
  240. package/dist/{renderer-LXhEPCmy.mjs → renderer-raxwsiGI.mjs} +3 -3
  241. package/dist/{renderer-LXhEPCmy.mjs.map → renderer-raxwsiGI.mjs.map} +1 -1
  242. package/dist/renderer-ukufL7pl.mjs +5 -0
  243. package/dist/renderer-wb0NCKdF.mjs +5 -0
  244. package/dist/{renderer-D8gN7aqk.mjs → renderer-zRq0j6Xy.mjs} +3 -3
  245. package/dist/{renderer-D8gN7aqk.mjs.map → renderer-zRq0j6Xy.mjs.map} +1 -1
  246. package/dist/{renderers-CP8CFWDs-BRQyvcut.mjs → renderers-CP8CFWDs-CshljORp.mjs} +2 -2
  247. package/dist/{renderers-CP8CFWDs-BRQyvcut.mjs.map → renderers-CP8CFWDs-CshljORp.mjs.map} +1 -1
  248. package/dist/sam/index.d.mts +3 -3
  249. package/dist/signals/index.d.mts +5 -5
  250. package/dist/signals/index.mjs +4 -4
  251. package/dist/{src-BzFGotRc.mjs → src-Dy4gnc6w.mjs} +43 -13
  252. package/dist/src-Dy4gnc6w.mjs.map +1 -0
  253. package/package.json +60 -60
  254. package/dist/dist-CUNvNDS3.mjs.map +0 -1
  255. package/dist/dist-D3BeAZ7X.mjs.map +0 -1
  256. package/dist/index-BFTtXosj.d.mts.map +0 -1
  257. package/dist/index-E2IXX0Cz.d.mts.map +0 -1
  258. package/dist/index-X2u96TEo.d.mts.map +0 -1
  259. package/dist/index-a6JrbAK0.d.mts.map +0 -1
  260. package/dist/preview-engine/chunk-77WWW75O.mjs +0 -5
  261. package/dist/preview-engine/chunk-7M5LE6EM.mjs +0 -483
  262. package/dist/preview-engine/chunk-FRJPXWAG.mjs +0 -1
  263. package/dist/preview-engine/renderers-TTXTV4PC.mjs +0 -228
  264. package/dist/program-Bn6ko_I4.mjs.map +0 -1
  265. package/dist/renderer-1aSF5BmY.mjs +0 -5
  266. package/dist/renderer-B2e4Gr9u.mjs +0 -5
  267. package/dist/renderer-B6fz4j50.mjs +0 -5
  268. package/dist/renderer-BEftIYw-.mjs +0 -5
  269. package/dist/renderer-BHTnO-7e.mjs +0 -5
  270. package/dist/renderer-BMlnQqTO.mjs +0 -5
  271. package/dist/renderer-BOzcFezY.mjs +0 -5
  272. package/dist/renderer-BVbjJIKJ.mjs +0 -5
  273. package/dist/renderer-BXsHKf4k.mjs +0 -5
  274. package/dist/renderer-Bks49NVl.mjs +0 -5
  275. package/dist/renderer-C-t7qFKr.mjs +0 -5
  276. package/dist/renderer-C24n-6CX.mjs +0 -6
  277. package/dist/renderer-CCReX-7M.mjs +0 -5
  278. package/dist/renderer-CIxFQrAm.mjs +0 -5
  279. package/dist/renderer-CLHBMIqJ.mjs +0 -5
  280. package/dist/renderer-CMJKi-Ye.mjs +0 -5
  281. package/dist/renderer-C_H3mHZa.mjs +0 -5
  282. package/dist/renderer-CfkTdR5B.mjs +0 -5
  283. package/dist/renderer-CnhkXJ0R.mjs +0 -5
  284. package/dist/renderer-CqpyVsq_.mjs +0 -5
  285. package/dist/renderer-CtWgIpTE.mjs +0 -5
  286. package/dist/renderer-CyuKr5ca.mjs +0 -5
  287. package/dist/renderer-D9ON_1Hf.mjs +0 -5
  288. package/dist/renderer-DAnTgh4o.mjs +0 -5
  289. package/dist/renderer-DWgpivA3.mjs +0 -5
  290. package/dist/renderer-Dh_qNNwR.mjs +0 -5
  291. package/dist/renderer-DkCpXPMP.mjs +0 -5
  292. package/dist/renderer-Dre-6cDR.mjs +0 -5
  293. package/dist/renderer-Ds5z4_HX.mjs +0 -5
  294. package/dist/renderer-HGSCOMyP.mjs +0 -5
  295. package/dist/renderer-KMY8W-cJ.mjs +0 -5
  296. package/dist/renderer-R21YvXz3.mjs +0 -5
  297. package/dist/renderer-RtzCz37W.mjs +0 -5
  298. package/dist/renderer-iMrqAjix.mjs +0 -5
  299. package/dist/renderer-sMed1u1O.mjs +0 -5
  300. package/dist/renderer-tsAuo46l.mjs +0 -5
  301. package/dist/renderer-vll8LX0I.mjs.map +0 -1
  302. package/dist/src-BzFGotRc.mjs.map +0 -1
@@ -1 +1 @@
1
- import{w as P,x as V}from"./chunk-7M5LE6EM.mjs";import{c as I}from"./chunk-FRJPXWAG.mjs";import{n as S}from"./chunk-HOV6DDBZ.mjs";import{a as x,b as y,d as D,f as m}from"./chunk-UE7Y65C3.mjs";import{b,j as p,v as T}from"./chunk-64L4GUOF.mjs";import{b as g}from"./chunk-354GX6IB.mjs";import{g as h}from"./chunk-Y4NIR77Z.mjs";h();var f=class{constructor(e,t){this.url=e;this.isHeadless=t}url;isHeadless;input=null;initPromise=null;iterator=null;iteratorStartTimestamp=-1;currentFetchId=0;fetchLock=Promise.resolve();destroyed=!1;async init(){if(!this.input)return this.initPromise?this.initPromise:(this.destroyed=!1,this.initPromise=(async()=>{try{let e=await m.acquire(this.url);this.destroyed?m.release(this.url):this.input=e}catch(e){throw this.initPromise=null,e}})(),this.initPromise)}destroy(){this.destroyed=!0,this.iterator?.return(),this.input&&(m.release(this.url),this.input=null),this.initPromise=null,this.onDestroy()}},w=class extends f{canvasSink=null;videoSampleSink=null;currentFrame=null;nextFrame=null;currentSample=null;nextSample=null;headlessQueue=[];backwardFrames=[];backwardBytes=0;backwardEnd;lastHeadlessTimestamp;isDecoding=!1;decodeBuffer=null;nextRequest=null;async durationSec(){await this.init();let e=await this.input?.getPrimaryVideoTrack();if(!e)throw new Error(`No video track in ${this.url}`);return e.computeDuration()}pushHeadlessQueue(e){let t=this.headlessQueue.findIndex(r=>r.timestamp>e.timestamp);t===-1?this.headlessQueue.push(e):this.headlessQueue.splice(t,0,e)}async fillHeadlessQueue(e){if(this.iterator)for(;this.headlessQueue.length<2;){let t=await this.iterator.next();if(this.currentFetchId!==e){t.value?.close?.();return}if(t.done||!t.value)break;this.pushHeadlessQueue(t.value)}}async closeIterator(e){if(e)try{await e.return()}catch{}}resetSinks(){let e=this.iterator;if(this.iterator=null,e)try{e.return()}catch{}this.canvasSink=null,this.videoSampleSink=null,this.currentFrame=null,this.nextFrame=null,this.currentSample?.close(),this.currentSample=null,this.nextSample?.close(),this.nextSample=null;for(let t of this.headlessQueue)try{t.close()}catch{}this.headlessQueue=[],this.clearBackwardFrames(),this.lastHeadlessTimestamp=void 0,this.decodeBuffer=null,this.iteratorStartTimestamp=-1}clearBackwardFrames(){for(let e of this.backwardFrames)e.close();this.backwardFrames=[],this.backwardBytes=0,this.backwardEnd=void 0}async copyHeadlessSample(e,t){let r=e.displayWidth,i=e.displayHeight,a=r*i*4,s=this.decodeBuffer;return(!s||s.length!==a)&&(s=new Uint8Array(a),this.decodeBuffer=s),await e.copyTo(s,{format:"RGBA"}),this.currentFetchId!==t||this.destroyed||!this.input?null:(g(s),{width:r,height:i,buffer:s})}cachedBackwardFrame(e){let t,r=-1;for(let[a,s]of this.backwardFrames.entries()){if(s.timestamp>e+1e-4)break;t=s,r=a}let i=this.backwardFrames[r+1]?.timestamp??this.backwardEnd;if(!(!t||!(t.duration>0)||e+1e-4>=Math.min(t.timestamp+t.duration,i??1/0)))return t}async fillBackwardFrames(e,t){if(!this.videoSampleSink)return;await this.closeIterator(this.iterator),this.iterator=null;for(let i of this.headlessQueue)i.close();this.headlessQueue=[],this.clearBackwardFrames();let r=this.videoSampleSink.samples(Math.max(0,e-.5));try{for await(let i of r){if(i.timestamp>e+1e-4&&(this.backwardEnd=i.timestamp),this.destroyed||this.currentFetchId!==t||i.timestamp>e+1e-4){i.close();break}let a=i.displayWidth*i.displayHeight*4;if(a>48*1024*1024){i.close();break}for(this.backwardFrames.push(i),this.backwardBytes+=a;this.backwardBytes>48*1024*1024&&this.backwardFrames.length>1;){let s=this.backwardFrames.shift();s&&(this.backwardBytes-=s.displayWidth*s.displayHeight*4,s.close())}}}finally{await this.closeIterator(r)}}onDestroy(){this.resetSinks()}async startIterator(e,t){if(!this.canvasSink)return;let r=Math.max(0,Number.isFinite(e)?e:0),i=this.iterator;if(this.iterator=null,await this.closeIterator(i),this.currentFetchId!==t||this.destroyed)return;this.iterator=this.canvasSink.canvases(r);let a=await this.iterator.next();if(this.currentFetchId!==t||this.destroyed)return;this.currentFrame=a.value??null;let s=await this.iterator.next();this.currentFetchId!==t||this.destroyed||(this.nextFrame=s.value??null,this.iteratorStartTimestamp=r)}async startIteratorHeadless(e,t){if(!this.videoSampleSink)return;let r=Math.max(0,Number.isFinite(e)?e:0),i=this.iterator;if(this.iterator=null,await this.closeIterator(i),this.currentFetchId!==t||this.destroyed)return;for(let s of this.headlessQueue)s.close();this.headlessQueue=[];let a=Math.max(0,r-.1);this.iterator=this.videoSampleSink.samples(a),await this.fillHeadlessQueue(t),!(this.currentFetchId!==t||this.destroyed)&&(this.iteratorStartTimestamp=r)}async getFrame(e){if(await this.init(),this.destroyed||!this.input)return null;let t=Math.max(0,Number.isFinite(e)?e:0);return this.isDecoding?(this.nextRequest&&this.nextRequest.resolve(null),new Promise((r,i)=>{this.nextRequest={timestampSec:t,resolve:r,reject:i}})):this.executeDecode(t)}async executeDecode(e){this.isDecoding=!0;try{return await this.performDecode(e)}finally{if(this.isDecoding=!1,this.nextRequest){let t=this.nextRequest;this.nextRequest=null,this.executeDecode(t.timestampSec).then(t.resolve).catch(t.reject)}}}async performDecodeHeadless(e,t){if(!this.videoSampleSink){if(this.destroyed||!this.input)return null;let d=await this.input.getPrimaryVideoTrack();if(!d)return null;this.videoSampleSink=new x(d)}let r=1e-4,i=1,a=.01,s=this.lastHeadlessTimestamp!==void 0&&e<this.lastHeadlessTimestamp-1e-4;this.lastHeadlessTimestamp=e;let o=this.cachedBackwardFrame(e);if(!o&&s&&(await this.fillBackwardFrames(e,t),o=this.cachedBackwardFrame(e)),o)return this.copyHeadlessSample(o,t);if((!this.iterator||e<this.iteratorStartTimestamp-r||this.headlessQueue.length>0&&e<this.headlessQueue[0].timestamp-a||this.headlessQueue.length>0&&e-this.headlessQueue[0].timestamp>i)&&(await this.startIteratorHeadless(e,t),this.currentFetchId!==t||this.destroyed||!this.input))return null;for(;;){if(await this.fillHeadlessQueue(t),this.currentFetchId!==t||this.destroyed||!this.input)return null;if(this.headlessQueue.length>=2&&this.headlessQueue[1].timestamp<=e+r){this.headlessQueue.shift()?.close();continue}break}let n=this.headlessQueue[0];return n?this.copyHeadlessSample(n,t):null}async performDecodeInternal(e){this.currentFetchId++;let t=this.currentFetchId;if(this.isHeadless)return this.performDecodeHeadless(e,t);if(!this.canvasSink){if(this.destroyed||!this.input)return null;let o=await this.input.getPrimaryVideoTrack();if(!o)return null;this.canvasSink=new y(o,{poolSize:3,alpha:!0})}let r=1e-4;if((!this.iterator||e<this.iteratorStartTimestamp-r||this.currentFrame&&e<this.currentFrame.timestamp-.01||this.currentFrame&&e-this.currentFrame.timestamp>1)&&(await this.startIterator(e,t),this.currentFetchId!==t||this.destroyed||!this.input))return null;for(;this.nextFrame&&this.nextFrame.timestamp<=e+r;)if(this.currentFrame=this.nextFrame,this.nextFrame=null,this.iterator){let o=await this.iterator.next();if(this.currentFetchId!==t||this.destroyed||!this.input)return null;this.nextFrame=o.value??null}if(!this.currentFrame)return null;let s=this.currentFrame.canvas;return{width:s.width,height:s.height,canvas:s}}async performDecode(e){let t=Math.max(0,Number.isFinite(e)?e:0);try{return await this.performDecodeInternal(t)}catch(r){let i=r;if(i?.name==="InputDisposedError"||i?.message?.includes("disposed")||this.destroyed||!this.input)return null;this.resetSinks();try{if(!this.isHeadless&&this.input&&!this.destroyed){let a=await this.input.getPrimaryVideoTrack();if(a&&!this.destroyed)return this.canvasSink=new y(a,{poolSize:3,alpha:!0,decoderOptions:{hardwareAcceleration:"prefer-software"}}),await this.performDecodeInternal(t)}}catch{}throw r}}},v=class extends f{audioSink=null;onDestroy(){this.audioSink=null}async startIterator(e,t){this.audioSink&&(this.iterator?.return(),this.iterator=this.audioSink.buffers(e),this.iteratorStartTimestamp=e)}async*getBuffers(e){try{if(await this.init(),this.destroyed||!this.input)return;if(!this.audioSink){let i=await this.input.getPrimaryAudioTrack();if(!i)return;this.audioSink=new D(i)}(!this.iterator||Math.abs(e-this.iteratorStartTimestamp)>.05)&&(this.currentFetchId++,await this.startIterator(e,this.currentFetchId));let r=this.currentFetchId;if(!this.iterator)return;for await(let i of this.iterator){if(this.currentFetchId!==r||this.destroyed||!this.input)break;this.iteratorStartTimestamp=i.timestamp+i.duration,yield i}}catch(t){let r=t;if(r?.name==="InputDisposedError"||r?.message?.includes("disposed")||this.destroyed||!this.input)return;throw t}finally{let t=this.currentFetchId;this.currentFetchId===t&&(this.iterator=null)}}},k=class{videoDecoders=new Map;audioDecoders=new Map;lastAccessed=new Map;ticks=0;lastTick=new Map;touchKey(e){this.lastAccessed.set(e,Date.now()),this.lastTick.set(e,this.ticks)}dropKey(e){let t=this.videoDecoders.get(e);if(t){try{t.destroy()}catch{}this.videoDecoders.delete(e)}let r=this.audioDecoders.get(e);if(r){try{r.destroy()}catch{}this.audioDecoders.delete(e)}this.lastAccessed.delete(e),this.lastTick.delete(e)}tick(e=120){this.ticks++;for(let[t,r]of this.lastTick)this.ticks-r>e&&this.dropKey(t)}destroy(){for(let e of this.videoDecoders.values())try{e.destroy()}catch{}this.videoDecoders.clear();for(let e of this.audioDecoders.values())try{e.destroy()}catch{}this.audioDecoders.clear(),this.lastAccessed.clear(),this.lastTick.clear()}get size(){return this.videoDecoders.size+this.audioDecoders.size}prune(e=3e5){let t=Date.now();for(let[r,i]of this.lastAccessed.entries())t-i>e&&this.dropKey(r)}getVideo(e,t,r){let i=`${e}-${t}-${r??"default"}`,a=this.videoDecoders.get(i);return a||(a=new w(e,t),this.videoDecoders.set(i,a)),this.touchKey(i),this.prune(),a}getAudio(e,t){let r=`${e}-${t??"default"}`,i=this.audioDecoders.get(r);return i||(i=new v(e,!1),this.audioDecoders.set(r,i)),this.touchKey(r),this.prune(),i}clearNode(e){let t=[...this.videoDecoders.keys(),...this.audioDecoders.keys()];for(let r of t)r.includes(e)&&this.dropKey(r)}},j=new k;h();async function A(c,e){if(typeof window<"u"&&typeof FontFace<"u"){let t=typeof e=="string"?e:"its registered bytes";try{let i=await new FontFace(c,typeof e=="string"?`url(${e})`:e).load();document.fonts.add(i),await document.fonts.ready}catch(r){console.warn(`[preloadFont] Failed to load font "${c}" from ${t}:`,r)}}else typeof e=="string"&&await b(c,e)}h();var M=!1;async function O(c,e,t=(r,i)=>console.warn(`[framefields] ${i}`,r)){let r=new Set,i=new Map;(function s(o){let n=o.operation;if(n){let d=n.op==="text"||n.kind==="text"||n.op==="caption"||n.kind==="caption"||typeof n.text=="string",u=n.fontFamily||(d?"Inter":"");if(u&&r.add(u),d&&typeof n.text=="string"){let l=n.fontSize??48;for(let B of T(n.text))i.set(`${B}-${l}`,l)}}for(let d of o.children??[])s(d)})(c);let a=[];for(let s of r){let o=P(s),n=V(s),d=typeof o=="string"?o:"its registered bytes";a.push(A(s,o).catch(u=>t(u,`font "${s}" from ${d}`))),e&&a.push(p.preloadSlugFont(e,s,n).catch(u=>t(u,`Slug font "${s}" from ${n}`)))}if(e&&i.size>0){!p.hasEmojiFont()&&!M&&(M=!0,console.warn("[framefields] Text uses emoji but no emoji font is registered, so exports draw nothing for them. Run `npx framefields fonts add emoji` and call the generated `registerFonts()`, or register a color emoji font (e.g. Noto Color Emoji) with FontManager.registerEmojiFont(path). `comp.lint()` names the layers (missing_emoji_font)."));for(let[s,o]of i){let n=s.slice(0,s.lastIndexOf("-"));a.push(p.preloadEmoji(e,n,o).catch(d=>{p.hasEmojiFont()&&t(d,`emoji "${n}"`)}))}}await Promise.all(a)}h();function $(c){if(c.operation?.op==="source")return I(c).sourceUrl;for(let e of c.children??[]){let t=$(e);if(t)return t}}async function Y(c,e){let t=async r=>{let i=r.operation;if(i?.op==="CompositorLayer"&&i.timeRemap&&i.durationFrames){let a=$(r);if(!a)throw new Error(`Time remap on '${i.id}' has no media source`);let s=[],o=await m.acquire(a);try{let d=i.dataType==="Video"?await o.getPrimaryVideoTrack():null,u=i.dataType==="Video"&&(i.muted||i.volume===0)?null:await o.getPrimaryAudioTrack();if(i.dataType==="Video"&&!d)throw new Error(`Time remap on '${i.id}': source has no video track`);if(i.dataType==="Audio"&&!u)throw new Error(`Time remap on '${i.id}': source has no audio track`);for(let l of[d,u])l&&s.push({first:await o.getFirstTimestamp([l]),last:await l.computeDuration()})}finally{m.release(a)}let n=d=>{for(let{first:u,last:l}of s)if(d.min<u-1e-8||d.max>l+1e-8||d.maxIncluded&&d.max>=l-1e-8)throw new Error(`Time remap on '${i.id}' requests source ${d.min.toFixed(6)}\u2013${d.max.toFixed(6)}s outside ${u.toFixed(6)}\u2013${l.toFixed(6)}s`)};i.timeRemap.kind==="recorded"?i.timeRemap.recorder.checkRange(n):n(S(i.timeRemap,0,i.durationFrames,e))}for(let a of r.children??[])await t(a)};await t(c)}export{j as a,A as b,O as c,Y as d};
1
+ import{y as P,z as V}from"./chunk-52X7SURQ.mjs";import{c as I}from"./chunk-OBIJIQCZ.mjs";import{n as S}from"./chunk-HOV6DDBZ.mjs";import{a as x,b as y,d as D,f as m}from"./chunk-UE7Y65C3.mjs";import{b,j as p,v as T}from"./chunk-64L4GUOF.mjs";import{b as g}from"./chunk-354GX6IB.mjs";import{g as h}from"./chunk-Y4NIR77Z.mjs";h();var f=class{constructor(e,t){this.url=e;this.isHeadless=t}url;isHeadless;input=null;initPromise=null;iterator=null;iteratorStartTimestamp=-1;currentFetchId=0;fetchLock=Promise.resolve();destroyed=!1;async init(){if(!this.input)return this.initPromise?this.initPromise:(this.destroyed=!1,this.initPromise=(async()=>{try{let e=await m.acquire(this.url);this.destroyed?m.release(this.url):this.input=e}catch(e){throw this.initPromise=null,e}})(),this.initPromise)}destroy(){this.destroyed=!0,this.iterator?.return(),this.input&&(m.release(this.url),this.input=null),this.initPromise=null,this.onDestroy()}},w=class extends f{canvasSink=null;videoSampleSink=null;currentFrame=null;nextFrame=null;currentSample=null;nextSample=null;headlessQueue=[];backwardFrames=[];backwardBytes=0;backwardEnd;lastHeadlessTimestamp;isDecoding=!1;decodeBuffer=null;nextRequest=null;async durationSec(){await this.init();let e=await this.input?.getPrimaryVideoTrack();if(!e)throw new Error(`No video track in ${this.url}`);return e.computeDuration()}pushHeadlessQueue(e){let t=this.headlessQueue.findIndex(r=>r.timestamp>e.timestamp);t===-1?this.headlessQueue.push(e):this.headlessQueue.splice(t,0,e)}async fillHeadlessQueue(e){if(this.iterator)for(;this.headlessQueue.length<2;){let t=await this.iterator.next();if(this.currentFetchId!==e){t.value?.close?.();return}if(t.done||!t.value)break;this.pushHeadlessQueue(t.value)}}async closeIterator(e){if(e)try{await e.return()}catch{}}resetSinks(){let e=this.iterator;if(this.iterator=null,e)try{e.return()}catch{}this.canvasSink=null,this.videoSampleSink=null,this.currentFrame=null,this.nextFrame=null,this.currentSample?.close(),this.currentSample=null,this.nextSample?.close(),this.nextSample=null;for(let t of this.headlessQueue)try{t.close()}catch{}this.headlessQueue=[],this.clearBackwardFrames(),this.lastHeadlessTimestamp=void 0,this.decodeBuffer=null,this.iteratorStartTimestamp=-1}clearBackwardFrames(){for(let e of this.backwardFrames)e.close();this.backwardFrames=[],this.backwardBytes=0,this.backwardEnd=void 0}async copyHeadlessSample(e,t){let r=e.displayWidth,i=e.displayHeight,a=r*i*4,s=this.decodeBuffer;return(!s||s.length!==a)&&(s=new Uint8Array(a),this.decodeBuffer=s),await e.copyTo(s,{format:"RGBA"}),this.currentFetchId!==t||this.destroyed||!this.input?null:(g(s),{width:r,height:i,buffer:s})}cachedBackwardFrame(e){let t,r=-1;for(let[a,s]of this.backwardFrames.entries()){if(s.timestamp>e+1e-4)break;t=s,r=a}let i=this.backwardFrames[r+1]?.timestamp??this.backwardEnd;if(!(!t||!(t.duration>0)||e+1e-4>=Math.min(t.timestamp+t.duration,i??1/0)))return t}async fillBackwardFrames(e,t){if(!this.videoSampleSink)return;await this.closeIterator(this.iterator),this.iterator=null;for(let i of this.headlessQueue)i.close();this.headlessQueue=[],this.clearBackwardFrames();let r=this.videoSampleSink.samples(Math.max(0,e-.5));try{for await(let i of r){if(i.timestamp>e+1e-4&&(this.backwardEnd=i.timestamp),this.destroyed||this.currentFetchId!==t||i.timestamp>e+1e-4){i.close();break}let a=i.displayWidth*i.displayHeight*4;if(a>48*1024*1024){i.close();break}for(this.backwardFrames.push(i),this.backwardBytes+=a;this.backwardBytes>48*1024*1024&&this.backwardFrames.length>1;){let s=this.backwardFrames.shift();s&&(this.backwardBytes-=s.displayWidth*s.displayHeight*4,s.close())}}}finally{await this.closeIterator(r)}}onDestroy(){this.resetSinks()}async startIterator(e,t){if(!this.canvasSink)return;let r=Math.max(0,Number.isFinite(e)?e:0),i=this.iterator;if(this.iterator=null,await this.closeIterator(i),this.currentFetchId!==t||this.destroyed)return;this.iterator=this.canvasSink.canvases(r);let a=await this.iterator.next();if(this.currentFetchId!==t||this.destroyed)return;this.currentFrame=a.value??null;let s=await this.iterator.next();this.currentFetchId!==t||this.destroyed||(this.nextFrame=s.value??null,this.iteratorStartTimestamp=r)}async startIteratorHeadless(e,t){if(!this.videoSampleSink)return;let r=Math.max(0,Number.isFinite(e)?e:0),i=this.iterator;if(this.iterator=null,await this.closeIterator(i),this.currentFetchId!==t||this.destroyed)return;for(let s of this.headlessQueue)s.close();this.headlessQueue=[];let a=Math.max(0,r-.1);this.iterator=this.videoSampleSink.samples(a),await this.fillHeadlessQueue(t),!(this.currentFetchId!==t||this.destroyed)&&(this.iteratorStartTimestamp=r)}async getFrame(e){if(await this.init(),this.destroyed||!this.input)return null;let t=Math.max(0,Number.isFinite(e)?e:0);return this.isDecoding?(this.nextRequest&&this.nextRequest.resolve(null),new Promise((r,i)=>{this.nextRequest={timestampSec:t,resolve:r,reject:i}})):this.executeDecode(t)}async executeDecode(e){this.isDecoding=!0;try{return await this.performDecode(e)}finally{if(this.isDecoding=!1,this.nextRequest){let t=this.nextRequest;this.nextRequest=null,this.executeDecode(t.timestampSec).then(t.resolve).catch(t.reject)}}}async performDecodeHeadless(e,t){if(!this.videoSampleSink){if(this.destroyed||!this.input)return null;let d=await this.input.getPrimaryVideoTrack();if(!d)return null;this.videoSampleSink=new x(d)}let r=1e-4,i=1,a=.01,s=this.lastHeadlessTimestamp!==void 0&&e<this.lastHeadlessTimestamp-1e-4;this.lastHeadlessTimestamp=e;let o=this.cachedBackwardFrame(e);if(!o&&s&&(await this.fillBackwardFrames(e,t),o=this.cachedBackwardFrame(e)),o)return this.copyHeadlessSample(o,t);if((!this.iterator||e<this.iteratorStartTimestamp-r||this.headlessQueue.length>0&&e<this.headlessQueue[0].timestamp-a||this.headlessQueue.length>0&&e-this.headlessQueue[0].timestamp>i)&&(await this.startIteratorHeadless(e,t),this.currentFetchId!==t||this.destroyed||!this.input))return null;for(;;){if(await this.fillHeadlessQueue(t),this.currentFetchId!==t||this.destroyed||!this.input)return null;if(this.headlessQueue.length>=2&&this.headlessQueue[1].timestamp<=e+r){this.headlessQueue.shift()?.close();continue}break}let n=this.headlessQueue[0];return n?this.copyHeadlessSample(n,t):null}async performDecodeInternal(e){this.currentFetchId++;let t=this.currentFetchId;if(this.isHeadless)return this.performDecodeHeadless(e,t);if(!this.canvasSink){if(this.destroyed||!this.input)return null;let o=await this.input.getPrimaryVideoTrack();if(!o)return null;this.canvasSink=new y(o,{poolSize:3,alpha:!0})}let r=1e-4;if((!this.iterator||e<this.iteratorStartTimestamp-r||this.currentFrame&&e<this.currentFrame.timestamp-.01||this.currentFrame&&e-this.currentFrame.timestamp>1)&&(await this.startIterator(e,t),this.currentFetchId!==t||this.destroyed||!this.input))return null;for(;this.nextFrame&&this.nextFrame.timestamp<=e+r;)if(this.currentFrame=this.nextFrame,this.nextFrame=null,this.iterator){let o=await this.iterator.next();if(this.currentFetchId!==t||this.destroyed||!this.input)return null;this.nextFrame=o.value??null}if(!this.currentFrame)return null;let s=this.currentFrame.canvas;return{width:s.width,height:s.height,canvas:s}}async performDecode(e){let t=Math.max(0,Number.isFinite(e)?e:0);try{return await this.performDecodeInternal(t)}catch(r){let i=r;if(i?.name==="InputDisposedError"||i?.message?.includes("disposed")||this.destroyed||!this.input)return null;this.resetSinks();try{if(!this.isHeadless&&this.input&&!this.destroyed){let a=await this.input.getPrimaryVideoTrack();if(a&&!this.destroyed)return this.canvasSink=new y(a,{poolSize:3,alpha:!0,decoderOptions:{hardwareAcceleration:"prefer-software"}}),await this.performDecodeInternal(t)}}catch{}throw r}}},v=class extends f{audioSink=null;onDestroy(){this.audioSink=null}async startIterator(e,t){this.audioSink&&(this.iterator?.return(),this.iterator=this.audioSink.buffers(e),this.iteratorStartTimestamp=e)}async*getBuffers(e){try{if(await this.init(),this.destroyed||!this.input)return;if(!this.audioSink){let i=await this.input.getPrimaryAudioTrack();if(!i)return;this.audioSink=new D(i)}(!this.iterator||Math.abs(e-this.iteratorStartTimestamp)>.05)&&(this.currentFetchId++,await this.startIterator(e,this.currentFetchId));let r=this.currentFetchId;if(!this.iterator)return;for await(let i of this.iterator){if(this.currentFetchId!==r||this.destroyed||!this.input)break;this.iteratorStartTimestamp=i.timestamp+i.duration,yield i}}catch(t){let r=t;if(r?.name==="InputDisposedError"||r?.message?.includes("disposed")||this.destroyed||!this.input)return;throw t}finally{let t=this.currentFetchId;this.currentFetchId===t&&(this.iterator=null)}}},k=class{videoDecoders=new Map;audioDecoders=new Map;lastAccessed=new Map;ticks=0;lastTick=new Map;touchKey(e){this.lastAccessed.set(e,Date.now()),this.lastTick.set(e,this.ticks)}dropKey(e){let t=this.videoDecoders.get(e);if(t){try{t.destroy()}catch{}this.videoDecoders.delete(e)}let r=this.audioDecoders.get(e);if(r){try{r.destroy()}catch{}this.audioDecoders.delete(e)}this.lastAccessed.delete(e),this.lastTick.delete(e)}tick(e=120){this.ticks++;for(let[t,r]of this.lastTick)this.ticks-r>e&&this.dropKey(t)}destroy(){for(let e of this.videoDecoders.values())try{e.destroy()}catch{}this.videoDecoders.clear();for(let e of this.audioDecoders.values())try{e.destroy()}catch{}this.audioDecoders.clear(),this.lastAccessed.clear(),this.lastTick.clear()}get size(){return this.videoDecoders.size+this.audioDecoders.size}prune(e=3e5){let t=Date.now();for(let[r,i]of this.lastAccessed.entries())t-i>e&&this.dropKey(r)}getVideo(e,t,r){let i=`${e}-${t}-${r??"default"}`,a=this.videoDecoders.get(i);return a||(a=new w(e,t),this.videoDecoders.set(i,a)),this.touchKey(i),this.prune(),a}getAudio(e,t){let r=`${e}-${t??"default"}`,i=this.audioDecoders.get(r);return i||(i=new v(e,!1),this.audioDecoders.set(r,i)),this.touchKey(r),this.prune(),i}clearNode(e){let t=[...this.videoDecoders.keys(),...this.audioDecoders.keys()];for(let r of t)r.includes(e)&&this.dropKey(r)}},j=new k;h();async function A(c,e){if(typeof window<"u"&&typeof FontFace<"u"){let t=typeof e=="string"?e:"its registered bytes";try{let i=await new FontFace(c,typeof e=="string"?`url(${e})`:e).load();document.fonts.add(i),await document.fonts.ready}catch(r){console.warn(`[preloadFont] Failed to load font "${c}" from ${t}:`,r)}}else typeof e=="string"&&await b(c,e)}h();var M=!1;async function O(c,e,t=(r,i)=>console.warn(`[framefields] ${i}`,r)){let r=new Set,i=new Map;(function s(o){let n=o.operation;if(n){let d=n.op==="text"||n.kind==="text"||n.op==="caption"||n.kind==="caption"||typeof n.text=="string",u=n.fontFamily||(d?"Inter":"");if(u&&r.add(u),d&&typeof n.text=="string"){let l=n.fontSize??48;for(let B of T(n.text))i.set(`${B}-${l}`,l)}}for(let d of o.children??[])s(d)})(c);let a=[];for(let s of r){let o=P(s),n=V(s),d=typeof o=="string"?o:"its registered bytes";a.push(A(s,o).catch(u=>t(u,`font "${s}" from ${d}`))),e&&a.push(p.preloadSlugFont(e,s,n).catch(u=>t(u,`Slug font "${s}" from ${n}`)))}if(e&&i.size>0){!p.hasEmojiFont()&&!M&&(M=!0,console.warn("[framefields] Text uses emoji but no emoji font is registered, so exports draw nothing for them. Run `npx framefields fonts add emoji` and call the generated `registerFonts()`, or register a color emoji font (e.g. Noto Color Emoji) with FontManager.registerEmojiFont(path). `comp.lint()` names the layers (missing_emoji_font)."));for(let[s,o]of i){let n=s.slice(0,s.lastIndexOf("-"));a.push(p.preloadEmoji(e,n,o).catch(d=>{p.hasEmojiFont()&&t(d,`emoji "${n}"`)}))}}await Promise.all(a)}h();function $(c){if(c.operation?.op==="source")return I(c).sourceUrl;for(let e of c.children??[]){let t=$(e);if(t)return t}}async function Y(c,e){let t=async r=>{let i=r.operation;if(i?.op==="CompositorLayer"&&i.timeRemap&&i.durationFrames){let a=$(r);if(!a)throw new Error(`Time remap on '${i.id}' has no media source`);let s=[],o=await m.acquire(a);try{let d=i.dataType==="Video"?await o.getPrimaryVideoTrack():null,u=i.dataType==="Video"&&(i.muted||i.volume===0)?null:await o.getPrimaryAudioTrack();if(i.dataType==="Video"&&!d)throw new Error(`Time remap on '${i.id}': source has no video track`);if(i.dataType==="Audio"&&!u)throw new Error(`Time remap on '${i.id}': source has no audio track`);for(let l of[d,u])l&&s.push({first:await o.getFirstTimestamp([l]),last:await l.computeDuration()})}finally{m.release(a)}let n=d=>{for(let{first:u,last:l}of s)if(d.min<u-1e-8||d.max>l+1e-8||d.maxIncluded&&d.max>=l-1e-8)throw new Error(`Time remap on '${i.id}' requests source ${d.min.toFixed(6)}\u2013${d.max.toFixed(6)}s outside ${u.toFixed(6)}\u2013${l.toFixed(6)}s`)};i.timeRemap.kind==="recorded"?i.timeRemap.recorder.checkRange(n):n(S(i.timeRemap,0,i.durationFrames,e))}for(let a of r.children??[])await t(a)};await t(c)}export{j as a,A as b,O as c,Y as d};
@@ -0,0 +1,5 @@
1
+ import{a as Kt,b as ue,c as de,d as fe,e as he,f as me,g as ge,h as xe,i as ye,j as be,k as we,l as Se,n as Ce}from"./chunk-52X7SURQ.mjs";import{b as Yt}from"./chunk-OBIJIQCZ.mjs";import{e as se}from"./chunk-GXFYRMJZ.mjs";import{h as ce,i as le,j as L,x as bt}from"./chunk-64L4GUOF.mjs";import{a as dt}from"./chunk-354GX6IB.mjs";import{f as Pt,g as wt}from"./chunk-Y4NIR77Z.mjs";wt();function Ee(e){return typeof e=="object"&&e!==null&&typeof e.get=="function"}function Rt(e,n){return Ee(e)?e.get(n):e}function Me(e,n){return e.map(t=>{let i={...t,text:String(Rt(t.text,n)??"")};return t.fontSize!==void 0&&(i.fontSize=Number(Rt(t.fontSize,n))),t.fill!==void 0&&(i.fill=String(Rt(t.fill,n))),t.opacity!==void 0&&(i.opacity=Number(Rt(t.opacity,n))),t.mark&&(i.mark={...t.mark,background:String(Rt(t.mark.background,n))}),i})}function ze(e){let n="";for(let t of e)n+=typeof t.text=="string"?t.text:"";return n}function Ie(e,n){let t=[],i=0;for(let[r,c]of e.entries()){if(i>=n.length)break;let d=typeof c.text=="string"?c.text.length:0,u=r===e.length-1?n.length:i+d;u>i&&t.push({...c,text:n.slice(i,u)}),i=u}return t}wt();function Xe(e,n,t,i,r=0,c=0){let d=se.getChannelSamples(n,"primary");if(d&&d.length>0){let m=i>0?i:24,C=t/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(!e)return 0;let u=e[n];if(u==null)return 0;if(typeof u=="number")return u;if(typeof u=="function")return Number(u(t,i))||0;if(typeof u=="object"){let m=u;if(typeof m.get=="function"){let C=i>0?t/i:0,h=r!==0?c*r/(2*Math.PI):0;return Number(m.get({frame:t,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(t)));return Number(C[h])||0}}return 0}function Ae(e){return e<.5?2*e*e:1-(-2*e+2)**2/2}function Ye(e){let n=0;for(let t=0;t<e.length;t++)n=e.charCodeAt(t)+((n<<5)-n);return()=>{let t=Math.sin(n++)*1e4;return t-Math.floor(t)}}function Ge(e,n){let t=Ye(n),i=Array.from({length:e},(r,c)=>c);for(let r=i.length-1;r>0;r--){let c=Math.floor(t()*(r+1)),d=i[r];i[r]=i[c],i[c]=d}return i}function je(e,n,t){let i=`${n}-${t}`,r=L.emojiTextureCache.get(i);if(r)return r;let c=4,d=Math.max(16,Math.ceil(t*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=e.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=`${t*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=e.createTexture({label:`Emoji-${n}`,size:[u,u],format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT}),e.queue.copyExternalImageToTexture({source:C},{texture:r,premultipliedAlpha:!0},[u,u]),L.emojiTextureCache.set(i,r),r}function Gt(e,n,t,i,r,c,d){if(!d)return{p_in:1,p_out:1};let u=1;if(t>0){let C=t*.5,h=c>1?t*.5/(c-1):0,k=r*h,a=k+C;e<k?u=0:e>a?u=1:u=(e-k)/(a-k)}let m=1;if(i>0){let C=n-i;if(e>C){let h=i*.5,k=c>1?i*.5/(c-1):0,a=C+r*k,A=a+h;e<a?m=1:e>A?m=0:m=1-(e-a)/(A-a)}}return{p_in:u,p_out:m}}function jt(e,n,t,i,r,c,d,u,m,C,h,k,a){let A=t?Ae(e):e,w=t?Ae(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,tt=1;i==="slideUp"&&d<m&&(P+=(1-A)*30),r==="slideUp"&&d>u-C&&(P-=(1-w)*30);let ot=a?1:Math.PI/180;c==="stack"?(tt=.8+.2*v,H=(1-v)*15*ot):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)*ot):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)*ot);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:tt,blurAmount:x,visible:!0}}var _e={linear:e=>e,none:e=>e,smoothstep:e=>e,"power1.out":e=>1-(1-e)**2,"quad.out":e=>1-(1-e)**2,"power1.in":e=>e**2,"quad.in":e=>e**2,"power1.inout":e=>e<.5?2*e*e:1-(-2*e+2)**2/2,"quad.inout":e=>e<.5?2*e*e:1-(-2*e+2)**2/2,"power2.out":e=>1-(1-e)**3,"cubic.out":e=>1-(1-e)**3,"power2.in":e=>e**3,"cubic.in":e=>e**3,"power2.inout":e=>e<.5?4*e**3:1-(-2*e+2)**3/2,"cubic.inout":e=>e<.5?4*e**3:1-(-2*e+2)**3/2,"power3.out":e=>1-(1-e)**4,"quart.out":e=>1-(1-e)**4,"power3.in":e=>e**4,"quart.in":e=>e**4,"power3.inout":e=>e<.5?8*e**4:1-(-2*e+2)**4/2,"quart.inout":e=>e<.5?8*e**4:1-(-2*e+2)**4/2,"power4.out":e=>1-(1-e)**5,"quint.out":e=>1-(1-e)**5,"power4.in":e=>e**5,"quint.in":e=>e**5,"sine.out":e=>Math.sin(e*Math.PI/2),"sine.in":e=>1-Math.cos(e*Math.PI/2),"sine.inout":e=>-(Math.cos(Math.PI*e)-1)/2,"expo.out":e=>e===1?1:1-2**(-10*e),"back.out":e=>1+2.70158*(e-1)**3+1.70158*(e-1)**2};function Oe(e,n){let t=Math.max(0,Math.min(1,n));if(!e)return t;let i=_e[e.toLowerCase().trim()];return i?i(t):t}function He(e,n,t){if(t<=0)return 0;let i=t>1?n/(t-1):.5,r=e.offset??0,c=(e.rangeStart??0)+r,d=(e.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 Oe(e.easing??"power2.out",m)}function pe(e,n,t,i,r,c){let d=Math.max(1,t.charsCount??1),u=Math.max(1,t.wordsCount??1),m=Math.max(1,t.linesCount??1),C=e.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=we(w,a.randomSeed??12345)[v%w]??v);let X=a.units==="index"?v:w>1?v/(w-1):.5,j=a.start??e.rangeStart??0,P=a.end??e.rangeEnd??(a.units==="index"?w:1),H=a.offset??e.offset??0;A=ye(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=be(a.randomSeed??42,n.charIndex??0,j,a.correlation??.5),H=a.minAmount??-1,tt=a.maxAmount??1;A=H+(P*.5+.5)*(tt-H)}else if(a.type==="signal")A=Xe(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=he(w.expression,X)*(w.amount??1)}k===0?h=A:h=Se(h,A,a.mode??"add")}return h}function ke(e,n,t,i,r=!1,c=0,d=24,u){if(!e||e.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,tt=i.vfxParam??0,ot=i.skewM01??0,x=i.skewM10??0,ft=i.anchorConfig,lt=i.fillOpacity??1,rt=i.strokeWidth,U=i.strokeColor,ut=i.longShadow,ht=i.lineSpacing,Z=i.lineAnchor,mt=r?1:Math.PI/180,z=Math.max(1,t.charsCount??1),K=Math.max(1,t.wordsCount??1),at=Math.max(1,t.linesCount??1);for(let nt of e)if("selectors"in nt&&Array.isArray(nt.selectors)){let it=nt,l=it.props??{},et=pe(it,n,{charsCount:z,wordsCount:K,linesCount:at},u,c,d),f=et,Y=1,q=1;if(l.spring){let b=(n.charIndex??0)*.035,N=Math.max(0,(d>0?c/d:0)-b);q=Kt(N,l.spring.stiffness,l.spring.damping,l.spring.mass,l.spring.initialVelocity),Y=1-q,f=et*Y}if(f!==0||et!==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*mt*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*mt*f),l.translateZ!==void 0&&(X+=l.translateZ*f),l.skew!==void 0){let[,b,N]=ue(l.skew*f,l.skewAxis??0);ot+=b,x+=N}if(l.formation!==void 0){let b=me(n.charIndex??0,z,l.formation),N=t.layoutCenter?.x??0,Q=t.layoutCenter?.y??0,xt=n.x??0,Ft=n.y??0,Wt=N+b.x,Et=Q+b.y;if(m+=(Wt-xt)*f,C+=(Et-Ft)*f,X+=b.z*f,b.rotX){let yt=b.rotX*f*Math.PI/180;A*=Math.max(.5,Math.abs(Math.cos(yt)))}if(b.rotY){let yt=b.rotY*f*Math.PI/180;a*=Math.max(.5,Math.abs(Math.cos(yt)))}b.rotZ&&(h+=b.rotZ*Math.PI/180*f),b.depthOpacity!==void 0&&(w*=1+(b.depthOpacity-1)*f)}if(l.anchor!==void 0&&(ft=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),N=l.chromaticGlitch.sliceProbability??.35,Q=Math.sin(c*17.13+(n.charIndex??0)*43.17),xt=Math.abs(Q-Math.floor(Q));xt<N&&(b+=(l.chromaticGlitch.sliceAmplitude??12)*(xt*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&&(ut=l.longShadow),l.audioSpectrum!==void 0){let b=xe(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&&(lt*=1-f+l.stroke.fillOpacity*f),l.stroke.strokeWidth!==void 0&&(rt=(l.stroke.strokeWidth??0)*f),l.stroke.strokeColor&&(U=l.stroke.strokeColor)),l.lineSpacing!==void 0&&(ht=l.lineSpacing*(l.spring?q:f),Z=l.lineAnchor??0),l.fillColor){let b=dt(l.fillColor),N=j??{r:1,g:1,b:1,a:1},Q=et;j={r:N.r*(1-Q)+b.r*Q,g:N.g*(1-Q)+b.g*Q,b:N.b*(1-Q)+b.b*Q,a:N.a*(1-Q)+b.a*Q}}}}else{let it=nt,l=n.charIndex??n.unitIndex??0,et=Math.max(1,t.charsCount??1);it.unit==="word"?(l=n.wordIndex??0,et=Math.max(1,t.wordsCount??1)):it.unit==="line"&&(l=n.lineIndex??0,et=Math.max(1,t.linesCount??1));let f=He(it,l,et),Y=it.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*mt*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=dt(Y.color),N=j??{r:1,g:1,b:1,a:1};j={r:N.r*(1-f)+b.r*f,g:N.g*(1-f)+b.g*f,b:N.b*(1-f)+b.b*f,a:N.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:tt,skewM01:ot,skewM10:x,anchorConfig:ft,fillOpacity:Math.max(0,Math.min(1,lt)),strokeWidth:rt,strokeColor:U,longShadow:ut,lineSpacing:ht,lineAnchor:Z}}function Te(e,n,t){let i=t.fontFamily??"Inter";if(L.isFailed(i)&&(i="Inter"),L.isFailed(i))return;let r=t.fontSize??48,c=L.getFont(i,t.fontWeight,e.device,void 0,r,t.variableAxes),d=t.stroke&&t.strokeWidth&&t.strokeWidth>0,u=null;if(c&&d&&e.device){let o=t.strokeAlign==="outside"?2:1,y=(t.strokeWidth??0)*o*(c.unitsPerEm/r);u=L.getFont(i,t.fontWeight,e.device,y,r,t.variableAxes)??null}if(!c?.curvesTex||d&&!u?.curvesTex){let o=Yt(i);L.preloadSlugFont(e.device,i,o,void 0,t.renderId).catch(s=>{console.warn(`[drawParagraphNode] Failed to load Slug font for ${i}:`,s)});return}let m=t.letterSpacing??0,C=t.lineHeight!==void 0&&t.lineHeight<10?t.lineHeight*r:t.lineHeight??r*1.2,h=t.align??"start",k=t.direction??"auto",a=t.isCaption?0:t.textBackgroundColor?t.padding??0:0,A=t.text,w;if(t.typewriter){let o=t.fps??24,s=t.durationMs!==void 0?Math.round(t.durationMs/1e3*o):60;w=Ce(t.text,t.frame??0,0,s,t.typewriter.cadence,t.typewriter.scramble,t.typewriter.cursor?.blinkFrequency??2,t.typewriter.granularity??"character",t.textProgress),A=w.currentDisplayString}let v=w&&t.spans?.length?Ie(Me(t.spans),A):t.spans,X=t.pathOptions?{...t.pathOptions,firstMargin:t.firstMargin!==void 0?t.firstMargin:t.pathOptions.firstMargin,lastMargin:t.lastMargin!==void 0?t.lastMargin:t.pathOptions.lastMargin,baselineShift:t.baselineShift!==void 0?t.baselineShift:t.pathOptions.baselineShift}:void 0,j,P;t.width!=null?(j=Math.max(0,t.width-a*2),P=bt.measure(A,c,r,m,C,j,v,k)):(P=bt.measure(A,c,r,m,C,void 0,v,k),j=P.width);let H=t.isCaption?t.dstRect.width:j,tt=t.animation?.applyBy??"word",x=(h==="left"||h==="start"&&!P.layout?.hasRtl)&&(H===void 0||H===j)&&!X&&tt==="word"&&!!P?.layout&&P.layout?P.layout:bt.layout(A,c,r,m,C,j,h,tt,H,X,v,k),ft=t.verticalAlign??"top",lt=t.height!=null&&!X&&!t.isCaption?t.height-(P.height+a*2):0,rt={...t.dstRect,y:t.dstRect.y+(ft==="middle"?lt/2:ft==="bottom"?lt:0)},U=t.animation,ut=t.fontWeight==="bold"||typeof t.fontWeight=="number"&&t.fontWeight>=600||typeof t.fontWeight=="string"&&parseInt(t.fontWeight,10)>=600,ht="hasTrueWeight"in c&&!!c.hasTrueWeight,Z=c;if(ut&&!ht&&e.device){let o=le(t.fontWeight),s=Math.max(0,(o-400)/500)*.055*r;if(s>0){let y=s*(c.unitsPerEm/r),S=L.getFont(i,400,e.device,y,r,t.variableAxes);S?.curvesTex&&(Z=S)}}let mt=x.glyphs.length,z=t.elapsedMs!==void 0?t.elapsedMs:t.frame!==void 0&&t.fps!==void 0?t.frame/t.fps*1e3:0,K=t.durationMs!==void 0?t.durationMs:3e3,at=t.isCaption?U?.in==="none"||!U?.in?0:K:U?.entranceMs?U.entranceMs:U?.in==="none"||!U?.in?0:K,nt=t.isCaption?0:U?.exitMs?U.exitMs:U?.out==="none"||!U?.out?0:K,it=U?.in||"none",l=U?.out||"none",et=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=et==="shuffle"||it==="shuffle"?Ge(q,t.text):Array.from({length:q},(o,s)=>s);if(t.textBackgroundColor){let o=t.strokeRadius??t.borderRadius??8,s=0,y=t.opacity??1;if(t.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}=Gt(z,K,at,nt,T,q,!0),_=jt(M,g,f,it,l,et,z,K,at,nt,T,y,!1);_.visible&&_.opacity>s&&(s=_.opacity)}for(let S of x.emojis){let I=t.animation?.applyBy==="line"?0:Math.floor(S.x/(r+m)),T=b[I%q]??0,{p_in:M,p_out:g}=Gt(z,K,at,nt,T,q,!0),_=jt(M,g,f,it,l,et,z,K,at,nt,T,y,!0);_.visible&&_.opacity>s&&(s=_.opacity)}}if(s>.001){let S=t.width!=null?t.width:P.width+a*2,I=t.height!=null?t.height:P.height+a*2;e.renderer.drawRRect(n,{rect:{x:t.dstRect.x,y:t.dstRect.y,width:S,height:I},rx:o,ry:o},t.textBackgroundColor,{opacity:s})}}if(x.marks&&x.marks.length>0)for(let o of x.marks){let s=o.borderRadius??4;e.renderer.drawRRect(n,{rect:{x:t.dstRect.x+a+o.x,y:rt.y+a+o.y,width:o.width,height:o.height},rx:s,ry:s},o.background,{opacity:t.opacity??1})}let N=dt(t.color??"white"),Q=dt(t.highlightColor??"yellow"),xt=new Float32Array(x.glyphs.length),Ft=0,Wt=0;if(x.glyphs.length>0){let o=x.glyphs.filter(s=>!s.isSpace);o.length>0&&(Ft=(o[0].x+o[o.length-1].x)/2,Wt=(o[0].y+o[o.length-1].y)/2)}let Et={charsCount:x.charsCount,wordsCount:x.wordsCount,linesCount:x.linesCount,layoutCenter:{x:Ft,y:Wt}};if(t.animators&&t.animators.length>0){for(let o of t.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]],$=pe(s,O,Et,t.signals,t.frame??0,t.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,D=0;for(let F=0;F<M.length;F++){let O=D;R==="center"?O-=G*.5:R==="right"&&(O-=G);for(let $ of M[F])xt[$]+=O;F<M.length-1&&(D+=y*_[F])}}}}}let yt=new Float32Array(Math.max(1024,mt*24)),Jt=(o,s)=>s.cp.glyphId!==void 0&&(s.font??c).fontFamily===o.fontFamily,te=new Set,Pe=o=>{if(te.has(o))return;te.add(o);let s=[];for(let y of x.glyphs){let S=y.cp.glyphId;S!==void 0&&(y.font??c)!==o&&Jt(o,y)&&!o.glyphs?.has(S)&&s.push(S)}s.length>0&&ce.ensureGlyphs(o,s)},Re=(o,s)=>{if((s.font??c)===o)return s.cp;if(Jt(o,s)){let y=o.glyphs?.get(s.cp.glyphId);if(y)return y}return o.codePoints.get(s.cp.codePoint)||s.cp},St=(o,s,y=0,S=0,I,T)=>{let M=mt*24;yt.length<M&&(yt=new Float32Array(M));let g=yt,_=0;Pe(o);for(let G=0;G<x.glyphs.length;G++){let p=x.glyphs[G];if(p.isSpace||T&&!T(p))continue;let R=Re(o,p);if(!R||R.width===0||R.height===0)continue;let D=p.unitIndex,F=b[D]??D,O=t.opacity??1,$=0,J=0,st=0,V=1,Ct=I!==void 0?I:0;if(t.isVideoMode!==!1){let{p_in:W,p_out:E}=Gt(z,K,at,nt,F,q,!0),B=jt(W,E,f,it,l,et,z,K,at,nt,F,t.opacity??1,!1);if(!B.visible)continue;O=B.opacity,$=B.transX,J=B.transY,st=B.rot,V=B.scale,I===void 0&&(Ct=B.blurAmount)}let Ht=t.highlightWordIndex!==void 0&&p.wordIndex===t.highlightWordIndex,Fe=p.fill?dt(p.fill):void 0,Ut=Ht?Q:Fe??N,Dt=1,Nt=1,Lt=0,ie=0,oe=0,re=0,Bt=0,zt=0,Vt,ae=1;if(t.animators&&t.animators.length>0){let W=ke(t.animators,p,Et,{transX:$,transY:J,rot:st,scale:V,scaleX:Dt,scaleY:Nt,opacity:O,blurAmount:Ct,color:Ut},!1,t.frame??0,t.fps??24,t.signals);$=W.transX,J=W.transY,st=W.rot,V=W.scale,Dt=W.scaleX,Nt=W.scaleY,O=W.opacity,I===void 0&&(Ct=W.blurAmount),W.color&&(Ut=W.color),W.lineSpacing!==void 0&&(J+=fe(p.lineIndex,x.linesCount,W.lineSpacing,W.lineAnchor??0)),Lt=W.transZ??0,ie=W.chromaticShift??0,oe=W.dissolveProgress??0,re=W.vfxParam??0,Bt=W.skewM01??0,zt=W.skewM10??0,Vt=W.anchorConfig,ae=W.fillOpacity??1}$+=xt[G];let qt=p.x;if(t.marquee){let W=(t.frame??0)/(t.fps??24),E=x.glyphs.length>0?x.glyphs[x.glyphs.length-1].x+r:t.dstRect.width;qt=ge(p.x,t.dstRect.width,E,t.marquee,W)}let Xt=s??Ut;(W=>{let E=_*24,B=p.fontScale??r/o.unitsPerEm,Mt=R.width*B/2*Dt,It=R.height*B/2*Nt;if(Lt!==0){let ct=Math.max(100,1200-Lt),gt=ct>1?1200/ct:1;Mt*=gt,It*=gt}let At=st+(p.pathTangentAngleRad??0),kt,pt;if(p.pathTangentAngleRad!==void 0){let Tt=R.bearingX*B+Mt,ct=-R.bearingY*B+It,gt=Math.cos(At),vt=Math.sin(At),$t=Tt*gt-ct*vt,Zt=Tt*vt+ct*gt;kt=qt+$t+t.dstRect.x+a+y+W,pt=p.y+Zt+rt.y+a+S}else kt=qt+R.bearingX*B+Mt+t.dstRect.x+a+y+W,pt=p.y-R.bearingY*B+It+rt.y+a+S;if(Vt){let Tt={width:R.width*B,height:R.height*B,ascender:(o.ascender??800)*B,descender:(o.descender??-200)*B},ct=de(Tt,Vt),gt=Math.cos(At),vt=Math.sin(At),$t=ct.px*(1-gt*V)+ct.py*(vt*V),Zt=-ct.px*(vt*V)+ct.py*(1-gt*V);kt+=$t,pt+=Zt}(Bt!==0||zt!==0)&&(kt+=It*Bt,pt+=Mt*zt),g[E+0]=Mt,g[E+1]=It,g[E+2]=kt,g[E+3]=pt,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]=At,g[E+13]=V,g[E+14]=$,g[E+15]=J,g[E+16]=Xt.r,g[E+17]=Xt.g,g[E+18]=Xt.b;let We=p.opacity??1;g[E+19]=Xt.a*O*ae*We,g[E+20]=Ct,g[E+21]=ie,g[E+22]=oe,g[E+23]=re,_++})(0)}return{data:g,visibleCount:_}};if(t.shadows&&t.shadows.length>0)for(let o of t.shadows){let s=dt(o.color),y=o.offset?.x??0,S=o.offset?.y??0,I=o.blurRadius??0,{data:T,visibleCount:M}=St(Z,s,y,S,I);if(M>0){let g=T.subarray(0,M*24),G=t.fontStyle==="italic"?.21:0;e.renderer.slugPipeline.draw(n,e.renderer.getTransformStack(),Z,g,M,o.color,e.renderer.getSurfaceWidth(),e.renderer.getSurfaceHeight(),{opacity:t.opacity??1,transform:t.matrix,customParam:G})}}let _t=t.animators?.find(o=>"props"in o&&o.props?.longShadow&&(o.props?.longShadow?.length??0)>0);if(_t&&"props"in _t){let o=_t,s=o.props?.longShadow;if(s){let y=o.props?.spring,S=s.length,I=s.angle;if(y){let G=(t.frame??0)/(t.fps??30),p=Kt(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,(t.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,_=dt(s.color??"#000000");for(let G=1;G<=M;G++){let p=G*g,R=p*Math.cos(T),D=p*Math.sin(T),F=G/M,O=(s.startOpacity??.8)*(1-F)+(s.endOpacity??0)*F,$={..._,a:_.a*O},{data:J,visibleCount:st}=St(c,$,R,D,0);if(st>0){let V=J.subarray(0,st*24),Ht=t.fontStyle==="italic"?.21:0;e.renderer.slugPipeline.draw(n,e.renderer.getTransformStack(),Z,V,st,s.color??"black",e.renderer.getSurfaceWidth(),e.renderer.getSurfaceHeight(),{opacity:(t.opacity??1)*O,transform:t.matrix,customParam:Ht})}}}}if(d&&u){let o=dt(t.stroke),{data:s,visibleCount:y}=St(u,o);if(y>0){let S=s.subarray(0,y*24),T=t.fontStyle==="italic"?.21:0;e.renderer.slugPipeline.draw(n,e.renderer.getTransformStack(),u,S,y,t.stroke??"#000000",e.renderer.getSurfaceWidth(),e.renderer.getSurfaceHeight(),{opacity:t.opacity??1,transform:t.matrix,customParam:T})}}let Ot=new Set,ee=!1;for(let o of x.glyphs)o.font&&o.font!==Z&&(Ot.add(o.font),ee=!0);let ne=t.fontStyle==="italic"?.21:0;if(ee){Ot.add(Z);for(let o of Ot){if(e.device&&!o.curvesTex&&L.ensureTextures(e.device,o),!o.curvesTex)continue;let{data:s,visibleCount:y}=St(o,void 0,0,0,void 0,S=>(S.font??Z)===o);if(y>0){let S=s.subarray(0,y*24);e.renderer.slugPipeline.draw(n,e.renderer.getTransformStack(),o,S,y,t.color??"white",e.renderer.getSurfaceWidth(),e.renderer.getSurfaceHeight(),{opacity:t.opacity??1,transform:t.matrix,customParam:ne})}}}else{let{data:o,visibleCount:s}=St(Z);if(s>0){let y=o.subarray(0,s*24);e.renderer.slugPipeline.draw(n,e.renderer.getTransformStack(),Z,y,s,t.color??"white",e.renderer.getSurfaceWidth(),e.renderer.getSurfaceHeight(),{opacity:t.opacity??1,transform:t.matrix,customParam:ne})}}for(let o of x.emojis){let s=t.animation?.applyBy==="line"?0:Math.floor(o.x/(r+m)),y=b[s%q]??0,S=t.opacity??1,I=0,T=0,M=0,g=1;if(t.isVideoMode!==!1){let{p_in:J,p_out:st}=Gt(z,K,at,nt,y,q,!0),V=jt(J,st,f,it,l,et,z,K,at,nt,y,t.opacity??1,!0);if(!V.visible)continue;S=V.opacity,I=V.transX,T=V.transY,M=V.rot,g=V.scale}if(t.animators&&t.animators.length>0){let J=ke(t.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 _=je(e.device,o.char,o.size),G=o.size*1.15,p=(G-o.size)/2,R={x:t.dstRect.x+o.x+a-p,y:rt.y+o.y+a-p,width:G,height:G},D=new DOMMatrix,F=R.x+G/2,O=R.y+G/2;D=D.translate(F,O),(I!==0||T!==0)&&(D=D.translate(I,T)),M!==0&&(D=D.rotate(M)),g!==1&&(D=D.scale(g)),D=D.translate(-F,-O);let $=t.matrix?t.matrix.multiply(D):D;e.renderer.drawTextureRegion(n,_,{x:0,y:0,width:_.width,height:_.height},R,{opacity:S,transform:$})}if(t.typewriter?.cursor?.enabled&&w&&w.isCursorVisible&&(!t.typewriter.cursor.hideOnComplete||w.visibleChars<t.text.length)){let o=t.typewriter.cursor,s=o.color??t.color??"white",y=o.width??2.5,S=o.spacing??3,I=t.dstRect.x+a,T=rt.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=t.dstRect.x+a+(M.rtl?G-S-p:G+_+S),T=M.y+rt.y+a}o.style==="underscore"?e.renderer.drawRect(n,{x:I,y:T,width:r*.5,height:y},s,0,{opacity:t.opacity??1}):o.style==="block"?e.renderer.drawRect(n,{x:I,y:T-r*.8,width:r*.5,height:r},s,0,{opacity:t.opacity??1}):e.renderer.drawRect(n,{x:I,y:T-r*.8,width:y,height:r},s,0,{opacity:t.opacity??1})}}wt();function ve(e){let t=e.trim().replace(",",".").split(":");if(t.length<2||t.length>3)throw new Error(`Invalid timestamp: ${e}`);if(t.length===2){let[d,u]=t;return parseInt(d,10)*60+parseFloat(u)}let[i,r,c]=t;return parseInt(i,10)*3600+parseInt(r,10)*60+parseFloat(c)}function Ue(e){let n=e.replace(/\r\n/g,`
2
+ `).split(`
3
+ `),t=[];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=ve(d[0]),m=ve(d[1]);t.push({text:"",startMs:u*1e3,endMs:m*1e3,confidence:1,timestampMs:(u+m)/2*1e3})}else r?.includes(" --> ")||(r?.trim()===""?t.length>0&&(t[t.length-1].text=t[t.length-1].text.trim()):t.length>0&&(t[t.length-1].text+=r+`
4
+ `))}return{captions:t.map(i=>({...i,text:i.text.trimEnd()}))}}function De(e,n,t=!0){if(!e||e.length===0)return null;let i=e.find(r=>n>=r.startMs&&n<r.endMs);return i||(!t&&e.length>0?e[0]:null)}function un(e,n,t){if(!e||e.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=t?Math.max(10,t-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 e){if(!k.text)continue;let a=0;if(C&&C.codePoints){let w=bt.measure(k.text,C,i,r,c,u);a=Math.ceil(w.height)}else{let w=k.text.split(`
5
+ `),v=0;for(let X of w)if(u){let j=X.length*i*.55+r*X.length,P=Math.max(1,Math.ceil(j/u));v+=P}else v+=1;a=Math.ceil(v*c)}let A=a+d*2;A>h&&(h=A)}return Math.max(20,h||160)}var Qt=class{cache=new Map;resolvedCache=new Map;getCached(n){return this.resolvedCache.get(n)}setCached(n,t){this.resolvedCache.set(n,t)}clear(){this.cache.clear(),this.resolvedCache.clear()}async load(n){if(!n)return[];let t=this.resolvedCache.get(n);if(t)return t;let i=this.cache.get(n);return i||(i=(async()=>{let r="";if(n.startsWith("data:")){let d=n.indexOf(",");if(d!==-1){let u=n.substring(0,d),m=n.substring(d+1);r=u.includes(";base64")?typeof Buffer<"u"?Buffer.from(m,"base64").toString("utf-8"):new TextDecoder().decode(Uint8Array.from(atob(m),h=>h.charCodeAt(0))):decodeURIComponent(m)}}else if(n.includes("-->"))r=n;else if(n.startsWith("http://")||n.startsWith("https://")){let d=await fetch(n);if(!d.ok)throw new Error(`Failed to fetch SRT: ${n}`);r=await d.text()}else{let d=n;if(d.startsWith("file://"))try{d=new URL(d).pathname}catch{d=d.replace(/^file:\/\//,"")}if(typeof Pt<"u"&&Pt.versions?.node)try{r=await(await import("./shims/fs-promises.mjs")).readFile(d,"utf-8")}catch{let u=await fetch(n);if(!u.ok)throw new Error(`Failed to fetch SRT: ${n}`);r=await u.text()}else{let u=await fetch(n);if(!u.ok)throw new Error(`Failed to fetch SRT: ${n}`);r=await u.text()}}let c=Ue(r).captions;return this.resolvedCache.set(n,c),c})(),this.cache.set(n,i),i.catch(()=>{this.cache.delete(n),this.resolvedCache.delete(n)})),i}},Ne=new Qt;async function dn(e,n,t){if(!t.src)return;let i=await Ne.load(t.src);if(!i||i.length===0)return;let r=t.frame/t.fps*1e3,c=De(i,r,t.isVideoMode!==!1);if(!c)return;let d=c.text,u=t.dstRect.width,m=t.padding??(t.textBackgroundColor?12:0),C=Math.max(10,u-m*2),h=t.maxWidth!==void 0?Math.min(t.maxWidth,C):C,k=t.fontSize??48,a=t.fontFamily??"Inter";if(L.isFailed(a)&&(a="Inter"),L.isFailed(a))return;let A=t.letterSpacing??0,w=L.getFont(a,t.fontWeight,e.device,void 0,k);if(!w||!w.curvesTex){let z=Yt(a);L.preloadSlugFont(e.device,a,z,void 0,t.renderId).catch(K=>{console.warn(`[drawCaptionNode] Failed to load Slug font for ${a}:`,K)});return}let v=t.lineHeight!==void 0&&t.lineHeight<10?t.lineHeight*k:t.lineHeight??k*1.2,X=bt.measure(d,w,k,A,v,h,void 0,t.direction),j=X.width,P=X.height,H=j+m*2,tt=P+m*2,ot=t.align??"center",x=X.layout?.glyphs[0]?.baseRtl??t.direction==="rtl",ft=ot==="start"?x?"right":"left":ot==="end"?x?"left":"right":ot,lt=0;ft==="center"?lt=Math.max(0,(u-H)/2):ft==="right"&&(lt=Math.max(0,u-H));let rt=t.dstRect.height,U=t.verticalAlign??t.textAlignVertical??"bottom",ut=0;U==="top"?ut=0:U==="middle"?ut=(rt-tt)/2:ut=rt-tt;let ht={x:t.dstRect.x+lt,y:t.dstRect.y+ut,width:H,height:tt},Z=t.opacity??1;if(t.textBackgroundColor){let z=t.strokeRadius??t.borderRadius??8;e.renderer.drawRRect(n,{rect:ht,rx:z,ry:z},t.textBackgroundColor,{opacity:Z})}let mt={x:ht.x+m,y:ht.y+m,width:j,height:P};Te(e,n,{...t,text:d,dstRect:mt,width:h,height:P,align:ot,opacity:Z,isCaption:!0,animation:void 0,textBackgroundColor:void 0})}export{Me as a,ze as b,Ie as c,Te as d,un as e,Ne as f,dn as g};
@@ -0,0 +1 @@
1
+ import{k as Oe,l as We,n as Pe}from"./chunk-HOV6DDBZ.mjs";import{g as Be,i as Ae,l as J}from"./chunk-RECQ74RP.mjs";import{c as ve,e as He,f as Re}from"./chunk-UE7Y65C3.mjs";import{a as ze}from"./chunk-LZNHGH56.mjs";import{a as Ge}from"./chunk-UZTA2EUU.mjs";import{l as ke}from"./chunk-77MT33VR.mjs";import{f as L,g as j}from"./chunk-Y4NIR77Z.mjs";j();j();var De=()=>typeof L<"u"&&!!L.versions?.node||!!globalThis.__IS_HEADLESS_RENDERER__;function ee(e){if(!e||De()||typeof window>"u")return e;let t=e.replace(/^file:\/\//,"");return t.startsWith("/")&&!t.startsWith("/@fs/")&&!t.startsWith("/api/")?`/@fs${t}`:e}function Me(e){if(!e)return;if(e?.sourceUrl&&typeof e.sourceUrl=="string")return ee(e.sourceUrl);if(e?.url&&typeof e.url=="string")return ee(e.url);let t=e?.entity;if(t)return typeof t=="string"?ee(t):t.url&&typeof t.url=="string"?ee(t.url):je(t);if(e.operation?.op==="source"){let s=e.operation.source;if(typeof s=="string")return ee(s);if(s?.url&&typeof s.url=="string")return ee(s.url);if(s?.entity)return je(s.entity);if(e.operation.sourceUrl&&typeof e.operation.sourceUrl=="string")return ee(e.operation.sourceUrl);if(e.operation.url&&typeof e.operation.url=="string")return ee(e.operation.url);let l=e.operation.srtText;if(l)return`data:text/srt;base64,${typeof Buffer<"u"?Buffer.from(l).toString("base64"):btoa(unescape(encodeURIComponent(l)))}`;let y=e.operation.svgContent;if(y)return`data:image/svg+xml;base64,${typeof Buffer<"u"?Buffer.from(y).toString("base64"):btoa(unescape(encodeURIComponent(y)))}`}let n=e.operation?.svgDataUrl;if(n&&typeof n=="string")return n;let r=e.operation?.svgContent;if(r&&typeof r=="string")return`data:image/svg+xml;base64,${typeof Buffer<"u"?Buffer.from(r).toString("base64"):btoa(unescape(encodeURIComponent(r)))}`;let i=e.operation?.lutUrl;if(i&&typeof i=="string")return i;if(e.operation?.op==="ExtractLUT")return;if(Array.isArray(e.children))for(let s of e.children){let l=Me(s);if(l)return l}let o=e.operation?.inputs;if(o&&typeof o=="object"){for(let s of Object.values(o))if(s?.outputItem?.data&&typeof s.outputItem.data=="object"){let l=Me(s.outputItem.data);if(l)return l}}}function je(e){if(!e)return"";if(e.url&&typeof e.url=="string"){let o=e.url;if(typeof window<"u"&&!De()){let s=o.replace(/^file:\/\//,"");if(s.startsWith("/")&&!s.startsWith("/@fs/")&&!s.startsWith("/api/"))return`/@fs${s}`}return o}let{id:t,key:n}=e;if(n&&(n.startsWith("file://")||n.startsWith("/")||n.startsWith("http://")||n.startsWith("https://"))){if(typeof window<"u"&&!De()){let o=n.replace(/^file:\/\//,"");if(o.startsWith("/")&&!o.startsWith("/@fs/")&&!o.startsWith("/api/"))return`/@fs${o}`}return n.startsWith("/")?`file://${n}`:n}let r=n.includes(".")?n.split(".").pop():null,i=r?`.${r}`:"";return`/api/v1/assets/${t}${i}`}function yt(e){return`assets/fonts/${e}.ttf`}j();function Ye(e){let t=e.operation,n=J(e),r={sourceUrl:void 0,trimStartSec:0,trimEndSec:null,speed:1,cropRegion:null,flipH:!1,flipV:!1,rotation:0,effectiveDurationSec:0,mimeType:Be(e)||null};t.op==="text"?r.sourceUrl=void 0:r.sourceUrl=Me(e);let i=(n?.durationMs??0)/1e3;return r.effectiveDurationSec=((r.trimEndSec??i)-r.trimStartSec)/r.speed,r}j();j();function qe(e,t){return Math.round(e*t)}function Fe(e,t,n={timeOffsetSec:0}){if(!e)return e;let{operation:r,metadata:i={},children:o=[]}=e,{timeOffsetSec:s,durationLimitMs:l}=n;if(!r)return{...e,children:(o||[]).map(c=>Fe(c,t,n))};let y=r.timeline,p=y?.segments||[],g=J(e)?.durationMs??0;if(p.length>0){let c=p.reduce(($,d)=>{let C=d.endSec!=null?d.endSec-d.startSec:0,V=Math.max(1,Math.round(C*t));return $+V},0);c>0&&(g=c/t*1e3)}let b={...r},u=y?.startFrame??b.startFrame;if(typeof u=="number"){let c=qe(s,t);b.startFrame=u-c}let S={...i,durationMs:g},F=typeof u=="number"||b.op==="compose"?{timeOffsetSec:0,durationLimitMs:void 0}:{timeOffsetSec:s,durationLimitMs:l},te=(o||[]).map(c=>Fe(c,t,F));return{metadata:S,operation:b,children:te}}var at=typeof L<"u"&&/^(debug|trace)$/i.test(L.env?.LOG_LEVEL??""),T={debug:(e,...t)=>{at&&(typeof e=="object"&&e!==null?console.info("[AudioExtractor]",e,...t):console.info(`[AudioExtractor] ${e}`,...t))},warn:(e,...t)=>{typeof e=="object"&&e!==null?console.warn("[AudioExtractor]",e,...t):console.warn(`[AudioExtractor] ${e}`,...t)},error:(e,...t)=>{typeof e=="object"&&e!==null?console.error("[AudioExtractor]",e,...t):console.error(`[AudioExtractor] ${e}`,...t)}},$e=()=>{if(typeof window>"u")return Promise.resolve();let e=globalThis.scheduler;return typeof e?.yield=="function"?e.yield():new Promise(t=>setTimeout(t,0))},it=async(e=3e4)=>{await new Promise(n=>setTimeout(n,100));let t=Date.now();return new Promise(n=>{let r=()=>{let i=typeof window<"u"&&window.renderer_delayRenderHandles?window.renderer_delayRenderHandles:[],o=typeof globalThis<"u"?globalThis.__GATEWAI_DELAYS__:null,s=i.length>0,l=o instanceof Set&&o.size>0;if(!s&&!l){n();return}if(Date.now()-t>e){T.warn(`[AudioExtractor] waitForDelayRender timed out waiting for handles: ${JSON.stringify({browserHandles:i,globalDelays:o?Array.from(o):[]})}`),n();return}setTimeout(r,50)};r()})};async function Nt(e){let t=await Xe(e);return t?{channels:t.channels,sampleRate:t.sampleRate}:null}var st=.5,Ce=class extends Error{name="AudioDecodeUnavailable"};async function ct(e){let t=window.AudioContext||window.webkitAudioContext;if(!t)throw new Ce(`No decoder here for ${e}: WebCodecs can't decode it and there is no AudioContext (a worker).`);let n=new t;try{let r=await fetch(He(e,!1));if(T.debug(`[AudioExtractor] Fetch response status for ${e}: ${r.status} (${r.statusText})`),!r.ok)throw new Error(`Failed to fetch audio source: ${r.statusText}`);let i=await r.arrayBuffer();T.debug(`[AudioExtractor] Fetched ${i.byteLength} bytes. Decoding audio data...`);let o=await n.decodeAudioData(i);T.debug(`[AudioExtractor] Decoded successfully: ${o.numberOfChannels} channels, sampleRate: ${o.sampleRate}, duration: ${o.duration}s`);let s=[];for(let l=0;l<o.numberOfChannels;l++)s.push(new Float32Array(o.getChannelData(l)));return{channels:s,sampleRate:o.sampleRate,startIndex:0,validFromSec:0,validToSec:Number.POSITIVE_INFINITY}}finally{n.close(),T.debug(`[AudioExtractor] AudioContext closed for ${e}`)}}async function Xe(e,t){T.debug(`[AudioExtractor] decodeAudioSource started for url: ${e}`);try{let n=!(typeof L<"u"&&L.versions?.node),r=!1;try{T.debug(`[AudioExtractor] Acquiring from inputStore for ${e}...`);let i=await Re.acquire(e);r=!0,T.debug("[AudioExtractor] inputStore acquired. Retrieving primary audio track...");let o=await i.getPrimaryAudioTrack();if(!o)return T.warn(`[AudioExtractor] No primary audio track found in input for ${e}`),null;let s=new ve(o),l=t?Math.max(0,t.startSec-st):0,y=s.samples(l,t?.endSec),p=[],g=0,b=48e3,u=1,S=null;T.debug(`[AudioExtractor] Starting mediabunny generator loop for ${e}...`);for await(let c of y){S===null&&(S=c.timestamp),b=c.sampleRate,u=c.numberOfChannels;let $=c.numberOfFrames;if(p.length===0)for(let d=0;d<u;d++)p.push([]);for(let d=0;d<u;d++){let C;try{let V=c.allocationSize({planeIndex:d,format:"f32-planar"});C=new Float32Array(V/4),c.copyTo(C,{planeIndex:d,format:"f32-planar"})}catch{let V=c.allocationSize({planeIndex:d});if(c.format==="s16"||c.format==="s16-planar"){let E=new Int16Array(V/2);c.copyTo(E,{planeIndex:d}),C=new Float32Array(E.length);for(let w=0;w<E.length;w++)C[w]=(E[w]??0)/32768}else if(c.format==="s32"||c.format==="s32-planar"){let E=new Int32Array(V/4);c.copyTo(E,{planeIndex:d}),C=new Float32Array(E.length);for(let w=0;w<E.length;w++)C[w]=(E[w]??0)/2147483648}else if(c.format==="u8"||c.format==="u8-planar"){let E=new Uint8Array(V);c.copyTo(E,{planeIndex:d}),C=new Float32Array(E.length);for(let w=0;w<E.length;w++)C[w]=((E[w]??128)-128)/128}else C=new Float32Array(V/4),c.copyTo(C,{planeIndex:d})}p[d].push(C)}g+=$,c.close()}if(T.debug(`[AudioExtractor] Generator loop finished. Decoded total frames: ${g}`),g===0||p.length===0)return null;let _=p.map(c=>{let $=new Float32Array(g),d=0;for(let C of c)$.set(C,d),d+=C.length;return $}),F=0;if(l>0&&S!==null){let c=await s.getSample(0),$=c?.timestamp??await o.getFirstTimestamp();c?.close(),F=Math.round((S-$)*b)}let te=!t||(F+g)/b<t.endSec;return{channels:_,sampleRate:b,startIndex:F,validFromSec:l>0&&t?t.startSec:0,validToSec:te||!t?Number.POSITIVE_INFINITY:t.endSec}}catch(i){if(i instanceof Error&&i.message.includes("Cannot open local media file"))throw i;if(n)return ct(e);if(typeof L<"u"&&L.versions?.node)try{let{execFileSync:o}=await import("./child_process-B2TV2STW.mjs"),s=t?Math.round(Math.max(0,t.startSec)*48e3):0,l=s/48e3,y=o("ffmpeg",["-v","error",...l>0?["-ss",String(l)]:[],"-i",e,...t?["-t",String(t.endSec-l)]:[],"-f","f32le","-ar","48000","-ac","2","pipe:1"],{maxBuffer:Number.POSITIVE_INFINITY}),p=y.byteLength/4,g=p/2,b=new Float32Array(y.buffer,y.byteOffset,p),u=new Float32Array(g),S=new Float32Array(g);for(let F=0;F<g;F++)u[F]=b[F*2],S[F]=b[F*2+1];let _=!t||l+g/48e3<t.endSec;return{channels:[u,S],sampleRate:48e3,startIndex:s,validFromSec:l,validToSec:_||!t?Number.POSITIVE_INFINITY:t.endSec}}catch(o){T.warn({ffmpegErr:o},`[AudioExtractor] ffmpeg fallback decode failed for ${e}`)}return T.error({err:i},`[AudioExtractor] Failed to decode source ${e}`),null}finally{r&&Re.release(e)}}catch(n){if(n instanceof Ce||n instanceof Error&&n.message.includes("Cannot open local media file"))throw n;return T.error({err:n},`[AudioExtractor] Failed to decode source ${e}`),null}}async function Je(e,t,n,r,i,o,s,l){let y=new Float32Array(r);for(let p=0;p<r;p++){p>0&&p%1e5===0&&await $e();let g=s+p/n*l;if(We(o,g))continue;let b=Oe(o,g,l)*t-i,u=Math.floor(b);if(u<0||u>=e.length)continue;let S=e[u];y[p]=S+((e[u+1]??S)-S)*(b-u)}return y}async function Ke(e,t,n,r,i,o,s=0,l=0){let y=new Float32Array(i),g=t/n*r,b=1e5;for(let u=0;u<i;u++){u>0&&u%b===0&&await $e();let S=o+(l+u)*g-s,_=Math.floor(S),F=Math.ceil(S);if(_<0){y[u]=0;continue}if(_>=e.length)break;let te=S-_,c=e[_]??0,$=F>=0&&F<e.length?e[F]??c:c,d=c+te*($-c);y[u]=Number.isFinite(d)?d:0}return y}var Qe=.05,lt=new Set(["Compositor","CompositorLayer"]);function ut(e){let t=e?.animation?.tracks??[],n=r=>t.some(i=>i.prop===r&&(i.keyframes?.length??0)>0);return{volume:n("volume"),muted:n("muted")}}function dt(e,t,n){let r=Math.max(0,-n),i=Math.min(t.length,e.length-n);for(let o=r;o<i;o++)e[n+o]+=t[o]}var Ee=class{constructor(t){this.length=t}length;channels=null;get(){return this.channels??=[new Float32Array(this.length),new Float32Array(this.length)],this.channels}canAdopt(t,n){return this.channels===null&&n===0&&t.every(r=>r.length===this.length)}add(t,n){if(this.canAdopt(t,n)&&t[0]!==t[1]){this.channels=t;return}let r=this.get();for(let i=0;i<2;i++)dt(r[i],t[i],n)}};function ft(e,t){for(let n of e)for(let r=0;r<n.length;r++){let i=(n[r]??0)*t;n[r]=Number.isFinite(i)?Math.tanh(i):0}}function mt(e){return e>.95?.92/e:1}function pt(e){if(e.startsWith("data:"))return"inline audio";let t=e.split(/[?#]/)[0].split(/[\\/]/).pop();return t?ht(t):"audio"}function ht(e){try{return decodeURIComponent(e)}catch{return e}}async function Lt(e,t,n=48e3,r,i,o={}){T.debug(`[AudioExtractor] mixAudioTracks started. FPS: ${t}, targetSampleRate: ${n}`),await it(),r&&!o.continue&&ze.resetState(i??"global",r),Ge.registerSignalsFromComposition(i,e);let s=J(e)?.durationMs||1e3,l=s/1e3,y=Math.ceil(l*n),p=o.window?Math.max(0,Math.round(o.window.startSec*n)):0,g=o.window?Math.min(y,Math.round(o.window.endSec*n)):Number.POSITIVE_INFINITY,b=o.window?Math.max(0,g-p):y,u=(a,f)=>({lo:Math.max(0,p-a),hi:Math.min(f,g-a)});T.debug(`[AudioExtractor] Composition total duration: ${s}ms (${l}s). Total mixed samples to allocate: ${y}`);let S=new Map,_=new Set;async function F(a,f,h,x=!0){if(_.has(a))return null;let A=S.get(a),M=x?A?.find(R=>R.validFromSec<=f&&R.validToSec>=h):void 0;if(M)return M;let P=await Xe(a,{startSec:f,endSec:h});return P?(x&&(A||(A=[],S.set(a,A)),A.push(P)),P):(_.add(a),null)}async function te(a,f,h,x,A=0){let M=new Float32Array(f),P=new Float32Array(f);for(let R=0;R<f;){let m=Math.min(f-R,n*2),Y=x+(A+R)/n*t,U=Pe(h,Y,Y+(m-1)/n*t,t);for(;U.max-U.min>3&&m>1;)m=Math.max(1,Math.floor(m/2)),U=Pe(h,Y,Y+(m-1)/n*t,t);let W=await F(a,U.min,U.max+Qe,!1);if(!W)return null;let ne=await Je(W.channels[0],W.sampleRate,n,m,W.startIndex,h,Y,t),ie=W.channels.length>1?await Je(W.channels[1],W.sampleRate,n,m,W.startIndex,h,Y,t):ne;M.set(ne,R),P.set(ie,R),R+=m}return[M,P]}let c=new WeakMap;function $(a){let f=c.get(a);if(f!==void 0)return f;let h=a.operation,x=!1;if(h?.op==="source"){let A=Ae(a);x=A==="Audio"||A==="Video"}else h?.op&&!lt.has(h.op)&&ke.get(h.op)&&(x=!0);return!x&&a.children&&(x=a.children.some(A=>A&&$(A))),c.set(a,x),x}async function d(a,f,h,x,A,M,P,R=0){if(!a||!$(a))return null;let m=a.operation;if(!m){let B=J(a)?.durationMs??0,G=Math.round(B/1e3*t),ue=P&&M!==null?M:M!==null?G>0?Math.min(M,G):M:G,K=Math.ceil(ue/t*n);if(K<=0)return null;let{lo:Q,hi:oe}=u(R,K);if(oe<=Q)return null;let de=new Ee(oe-Q);for(let k of a.children){let ye=k.operation,N=ye?.startFrame??ye?.timeline?.startFrame??0,I=Math.round(N/t*n),D=await d(k,f,h,x,A,ue,P,R+I);D&&de.add(D,Math.max(I,Q)-Q)}return de.channels}let Y=ut(m),U=x*(Y.volume?1:m.volume??1)*(m.opacity===0?0:1)*(!Y.muted&&m.muted?0:1),W=A,ne=m.startFrame??m.timeline?.startFrame??0,ie=m.timeRemap,he=ie?{map:ie,offsetFrames:0}:P?{map:P.map,offsetFrames:P.offsetFrames+ne}:void 0,Ue=m.op==="CompositorLayer"?ne:h+ne,Ne=m.timeline?.segments||[],se=m,Le=se.op==="CompositorLayer"?(se.mediaStartFrame??se.trimStartFrames??null)!==null?(se.mediaStartFrame??se.trimStartFrames??0)/t:Math.round((se.trimStartSec??0)*t)/t:0,tt=J(a)?.durationMs??0,ge=Math.round(tt/1e3*t),nt=P&&!ie&&M!==null?M:M!==null?ge>0?Math.min(M,ge):M:ge,ce=Math.ceil(nt/t*n);if(ce<=0)return null;let{lo:q,hi:Se}=u(R,ce);if(Se<=q)return null;let le=new Ee(Se-q),_e=async(B,G)=>{let ue=B?B.startSec:0,K=f+Le+ue,Q=Ue+G,oe=0;B?oe=Math.max(1,Math.round(((B.endSec??0)-B.startSec)*t)):oe=ge;let de=P&&!ie&&!B&&M!==null?M:M!==null?Math.min(M,oe):oe,k=Math.round(G/t*n);if(m.op==="source"){let N=Ae(a),I=Ye(a);if(I.sourceUrl&&(N==="Audio"||N==="Video")&&U>0){let D=Math.max(.5,W*(Number(I.speed)||1)),X=Math.max(0,(Number(I.trimStartSec)||0)+K),fe=de/t,me=Math.min(ce-k,Math.ceil(fe*n)),be=Math.max(k,q),z=Math.min(k+me,Se)-be,re=be-k,xe=be-q,Ie=he&&z>0?await te(I.sourceUrl,z,he.map,he.offsetFrames+G,re):null,v=!he&&z>0&&k<ce?await F(I.sourceUrl,X+re/n*D,X+(re+z)/n*D+Qe):null;if(Ie||v){let H,Z;if(Ie)[H,Z]=Ie;else if(v){let O=Math.round(X*v.sampleRate);H=await Ke(v.channels[0],v.sampleRate,n,D,z,O,v.startIndex,re),Z=v.channels.length>1?await Ke(v.channels[1],v.sampleRate,n,D,z,O,v.startIndex,re):H}else throw new Error("No decoded audio");let ot=[H,Z];if(le.canAdopt(ot,xe)){if(U!==1){for(let O=0;O<z;O++)H[O]*=U;if(Z!==H)for(let O=0;O<z;O++)Z[O]*=U}le.channels=[H,Z===H?H.slice():Z]}else{let[O,rt]=le.get();for(let we=0;we<z;we++){let Ve=xe+we;O[Ve]+=H[we]*U,rt[Ve]+=Z[we]*U}}}await $e()}(N==="Audio"||N==="Video")&&(E++,o.onProgress?.({done:E,total:V,...I.sourceUrl&&{source:pt(I.sourceUrl)}}))}if(a.children)for(let N of a.children){let I=N.operation,D=I?.startFrame??I?.timeline?.startFrame??0,X=m.op==="CompositorLayer"&&I?.op==="CompositorLayer"?D-ne:D,fe=k+Math.round(X/t*n),me=await d(N,K,Q,U,W,de,he,R+fe);me&&le.add(me,Math.max(fe,q)-q)}let ye=ke.get(m.op);if(ye)try{let N=de/t,I=Math.min(ce-k,Math.ceil(N*n)),D=Math.max(k,q),X=Math.min(k+I,Se),fe=D-k;if(X>D&&k<ce&&k>=0){let me=le.get().map(xe=>xe.subarray(D-q,X-q)),be=m.op==="CompositorLayer"?Ue:0,Te=fe/n,z=((Q-be)/t+K-Le+Te)*1e3,re=J(a)?.durationMs??void 0;await ye(me,n,a,{device:r,frame:Q+Te*t,fps:t,renderId:i,elapsedMs:z,durationMs:re})}}catch(N){T.error({err:N},`[AudioExtractor] Custom plugin for operation '${m.op}' failed`)}};if(Ne.length>0){let B=0;for(let G of Ne){let ue=(G.endSec??0)-G.startSec,K=Math.max(1,Math.round(ue*t));await _e(G,B),B+=K}}else await _e(null,0);return le.channels}let C=Fe(e,t),V=0,E=0;if(o.onProgress){let a=f=>{if(!f)return;let h=f.operation;if(h?.op==="source"){let x=Ae(f);(x==="Audio"||x==="Video")&&(V+=Math.max(1,h.timeline?.segments?.length??0))}for(let x of f.children??[])a(x)};a(C),o.onProgress({done:0,total:V})}let w=await d(C,0,0,1,1,null),pe=w?.every(a=>a.length===b)&&w[0]!==w[1]?w:[new Float32Array(b),new Float32Array(b)],[Ze,et]=pe;if(w&&pe!==w)for(let a=0;a<2;a++){let f=pe[a],h=w[a],x=Math.min(h.length,f.length);for(let A=0;A<x;A++)f[A]=h[A]}S.clear();let ae=0;for(let a=0;a<b;a++){let f=Math.abs(Ze[a]??0),h=Math.abs(et[a]??0);f>ae&&(ae=f),h>ae&&(ae=h)}return o.master!==!1&&ft(pe,mt(ae)),{channels:pe,sampleRate:n,peak:ae}}export{Me as a,yt as b,Ye as c,Nt as d,ut as e,Lt as f};
@@ -1 +1 @@
1
- import{a as o}from"./chunk-PH3UUX6A.mjs";import{a as pe}from"./chunk-IEEV5RB3.mjs";import{h as ie}from"./chunk-ULOFDFHJ.mjs";import{f as d,g as p}from"./chunk-Y4NIR77Z.mjs";p();p();p();p();p();p();function de(r){return typeof d<"u"?d.env?.[r]:void 0}function me(){let r=de("FRAMEFIELDS_STRICT_PROPS");return r==="1"||r==="true"}function ze(){return me()||de("NODE_ENV")!=="production"}var ue=new Set;function se(r){if(me())throw new Error(r);ue.has(r)||(ue.add(r),console.warn(`[framefields] ${r}`))}function ce(r){if(typeof r!="object"||r===null||Array.isArray(r)||ie(r))return!1;let e=Object.getPrototypeOf(r);return e===Object.prototype||e===null}function Fe(r,e){let n=Array.from({length:e.length+1},(l,i)=>i);for(let l=1;l<=r.length;l++){let i=n[0];n[0]=l;for(let s=1;s<=e.length;s++){let c=n[s];n[s]=Math.min(n[s]+1,n[s-1]+1,i+(r[l-1]===e[s-1]?0:1)),i=c}}return n[e.length]}function Ve(r,e){let n,l=Number.POSITIVE_INFINITY,i=r.toLowerCase();for(let c of e){let u=c.toLowerCase(),m=u.includes(i)||i.includes(u)?1:Fe(i,u);m<l&&(l=m,n=c)}return n&&l<=Math.max(2,Math.ceil(r.length/2))?` Did you mean "${n}"?`:` Known props: ${e.join(", ")}.`}function qe(r,e,n){if(typeof e=="number"){let{min:l,max:i}=n,s=l!==void 0&&e<l,c=i!==void 0&&e>i;if(s||c||Number.isNaN(e)){let u=l!==void 0&&i!==void 0?`${l} to ${i}`:l!==void 0?`\u2265 ${l}`:`\u2264 ${i}`;se(Number.isNaN(e)?`${r} is NaN`:`${r} = ${e} is outside ${u}`)}return}n.enum&&(typeof e=="string"||typeof e=="boolean")&&!n.enum.includes(e)&&se(`${r} = ${JSON.stringify(e)} is not one of ${n.enum.map(l=>JSON.stringify(l)).join(", ")}`)}function be(r,e,n){let l=Object.keys(n);for(let[i,s]of Object.entries(e)){if(s===void 0)continue;let c=n[i];if(!c){se(`${r}: unknown prop "${i}".${Ve(i,l)}`);continue}ie(s)||typeof s=="function"||(c.props&&ce(s)?be(`${r}.${i}`,s,c.props):qe(`${r}.${i}`,s,c))}}function Xe(r){return typeof r=="object"&&r!==null?structuredClone(r):r}function t(r,e,n,l){let i=n;ze()&&be(r,i,l);let s={};for(let[c,u]of Object.entries(e))s[c]=Xe(u);for(let[c,u]of Object.entries(i)){if(u===void 0)continue;let m=s[c];s[c]=ce(m)&&ce(u)?{...m,...Object.fromEntries(Object.entries(u).filter(([,Oe])=>Oe!==void 0))}:u}return s}p();var a={Ascii:{cellSize:{min:4,max:64},colorMode:{enum:["mono","source","green"]},fg:{},bg:{},contrast:{min:.5,max:3},invert:{}},AudioCompressor:{threshold:{min:-60,max:0},ratio:{min:1,max:100},attack:{min:1e-4,max:1},release:{min:.01,max:5},knee:{min:0,max:24},makeupGain:{min:0,max:24}},AudioDelay:{delayTime:{min:.001,max:5},feedback:{min:0,max:.95},wet:{min:0,max:1},dry:{min:0,max:1},pingPong:{}},AudioFade:{fadeInDuration:{min:0,max:60},fadeOutDuration:{min:0,max:60},fadeInCurve:{enum:["linear","exponential","scurve"]},fadeOutCurve:{enum:["linear","exponential","scurve"]}},AudioNoiseGate:{threshold:{min:-120,max:0},attack:{min:1e-4,max:1},hold:{min:.001,max:5},release:{min:.01,max:5},range:{min:-120,max:0}},AudioParametricEq:{type:{enum:["lowShelf","highShelf","peak","lowPass","highPass","notch"]},frequency:{min:20,max:2e4},gain:{min:-24,max:24},q:{min:.01,max:10}},AudioReverb:{roomSize:{min:0,max:.98},damping:{min:0,max:1},wet:{min:0,max:1},dry:{min:0,max:1},width:{min:0,max:1}},Blur:{blurType:{enum:["Gaussian","Box","Median","Motion","Bilateral","Edge-preserving","Radial","Zoom"]},strength:{min:0,max:100},angle:{min:0,max:360},sigmaColor:{min:.01,max:1},centerX:{min:0,max:1},centerY:{min:0,max:1},partialBlur:{},radius:{min:.01,max:1},radiusY:{min:0,max:1},shape:{enum:["ellipse","circle","rect"]}},CameraParallax3D:{motionPreset:{enum:["Custom","DollyZoom","Orbit","FlyThrough","HandheldShake","RackFocus"]},panX:{min:-1,max:1},panY:{min:-1,max:1},dollyZ:{min:-1,max:1},fov:{min:15,max:120},parallaxAmount:{min:0,max:2},dofAperture:{min:0,max:1},focusPlane:{min:0,max:1},edgeDilation:{min:0,max:1},depthInvert:{}},ChannelMerger:{colorSpace:{enum:["RGBA","HSLA","CMYK","LAB"]},defaultChannel4:{min:0,max:1}},ChannelSplitter:{colorSpace:{enum:["RGBA","HSLA","CMYK","LAB"]}},ColorBalance:{shadows:{props:{cyanRed:{min:-100,max:100},magentaGreen:{min:-100,max:100},yellowBlue:{min:-100,max:100}}},midtones:{props:{cyanRed:{min:-100,max:100},magentaGreen:{min:-100,max:100},yellowBlue:{min:-100,max:100}}},highlights:{props:{cyanRed:{min:-100,max:100},magentaGreen:{min:-100,max:100},yellowBlue:{min:-100,max:100}}},preserveLuminosity:{}},ColorKey:{keyColor:{},similarity:{min:0,max:1},smoothness:{min:0,max:1},spillSuppression:{min:0,max:1},colorSpace:{enum:["YUV","RGB"]},spillSuppressionType:{enum:["Desaturate","Neutralize","None"]}},Contour:{levels:{min:2,max:64},lineWidth:{min:.5,max:8},lineColor:{},fill:{enum:["source","flat","none"]},fillColor:{},smoothing:{min:0,max:8}},CornerPin:{points:{}},CRT:{scanlines:{min:0,max:1},lineCount:{min:100,max:2160},curvature:{min:0,max:1},mask:{min:0,max:1},vignette:{min:0,max:1},noise:{min:0,max:1},flicker:{min:0,max:1},tracking:{min:0,max:1},chroma:{min:0,max:20}},Datamosh:{keyframes:{},strength:{min:0,max:10},bleed:{min:0,max:1},warmup:{min:1,max:240}},DisplacementMap:{strengthX:{min:0,max:500},strengthY:{min:0,max:500},xChannel:{enum:["Red","Green","Blue","Alpha","Luminance"]},yChannel:{enum:["Red","Green","Blue","Alpha","Luminance"]},wrapMode:{enum:["Clamp","Repeat","Mirror"]}},Dither:{mode:{enum:["bayer","noise","halftone"]},levels:{min:2,max:16},scale:{min:1,max:16},monochrome:{},dark:{},light:{}},ExtractLUT:{strategy:{enum:["deterministic","statistical"]},samplePoints:{min:10,max:500}},Flip:{horizontal:{},vertical:{},diagonal:{},mode:{enum:["horizontal","vertical","both","diagonal","antiDiagonal","custom"]},symmetry:{enum:["none","leftToRight","rightToLeft","topToBottom","bottomToTop","quadrant"]}},Gooey:{radius:{min:1,max:60},threshold:{min:0,max:1},softness:{min:.001,max:.5}},Iridescence:{strength:{min:0,max:1},scale:{min:.1,max:10},shift:{min:-3600,max:3600},mode:{enum:["luminance","relief"]}},Kaleidoscope:{segments:{min:2,max:32},rotation:{min:-3600,max:3600},centerX:{min:0,max:1},centerY:{min:0,max:1},zoom:{min:.2,max:4}},KenBurns:{keyframes:{},motionBlurSize:{min:0,max:10},movementStyle:{enum:["spline","direct"]},aspectRatio:{enum:["input","16:9","9:16","21:9","9:21","1:1","4:3","3:2","2:3","4:5","5:4"]}},LayerStyle:{dropShadow:{props:{enabled:{},color:{},opacity:{min:0,max:1},angle:{min:0,max:360},distance:{min:0,max:500},spread:{min:0,max:100},size:{min:0,max:250},blendMode:{}}},innerShadow:{props:{enabled:{},color:{},opacity:{min:0,max:1},angle:{min:0,max:360},distance:{min:0,max:500},choke:{min:0,max:100},size:{min:0,max:250},blendMode:{}}},outerGlow:{props:{enabled:{},color:{},opacity:{min:0,max:1},size:{min:0,max:250},spread:{min:0,max:100},blendMode:{}}},innerGlow:{props:{enabled:{},color:{},opacity:{min:0,max:1},size:{min:0,max:250},spread:{min:0,max:100},blendMode:{}}},stroke:{props:{enabled:{},size:{min:0,max:100},position:{enum:["inside","center","outside"]},color:{},opacity:{min:0,max:1},blendMode:{}}},bevelEmboss:{props:{enabled:{},style:{enum:["InnerBevel","OuterBevel","Emboss","PillowEmboss"]},technique:{enum:["Smooth","ChiselHard","ChiselSoft"]},depth:{min:1,max:1e3},direction:{enum:["Up","Down"]},size:{min:0,max:250},soften:{min:0,max:50},angle:{min:0,max:360},altitude:{min:0,max:90},highlightColor:{},highlightOpacity:{min:0,max:1},shadowColor:{},shadowOpacity:{min:0,max:1}}},colorOverlay:{props:{enabled:{},color:{},opacity:{min:0,max:1},blendMode:{}}},dropShadowAngleHandleId:{},dropShadowDistanceHandleId:{},dropShadowSpreadHandleId:{},dropShadowSizeHandleId:{},dropShadowOpacityHandleId:{},innerShadowAngleHandleId:{},innerShadowDistanceHandleId:{},innerShadowChokeHandleId:{},innerShadowSizeHandleId:{},innerShadowOpacityHandleId:{},outerGlowSizeHandleId:{},outerGlowSpreadHandleId:{},outerGlowOpacityHandleId:{},innerGlowSizeHandleId:{},innerGlowSpreadHandleId:{},innerGlowOpacityHandleId:{},strokeSizeHandleId:{},strokeOpacityHandleId:{},bevelEmbossDepthHandleId:{},bevelEmbossSizeHandleId:{},bevelEmbossSoftenHandleId:{},bevelEmbossAngleHandleId:{},bevelEmbossAltitudeHandleId:{},bevelEmbossHighlightOpacityHandleId:{},bevelEmbossShadowOpacityHandleId:{},colorOverlayOpacityHandleId:{}},Liquify:{operations:{}},MaskMath:{operation:{enum:["Union","Intersect","Subtract","Difference","Invert","Dilate","Erode","Choke","Feather"]},radius:{min:0,max:200},threshold:{min:0,max:1},clampMin:{min:0,max:1},clampMax:{min:0,max:1},channelA:{enum:["Alpha","Luminance","Red","Green","Blue"]},channelB:{enum:["Alpha","Luminance","Red","Green","Blue"]},binarize:{},invertResult:{},outputFormat:{enum:["WhiteWithAlpha","GrayscaleRGB","AlphaOnly","PassthroughRGB"]}},MeshWarp:{cols:{min:2,max:12},rows:{min:2,max:12},points:{}},NoiseGenerator:{noiseType:{enum:["Perlin","Simplex","Voronoi"]},outputType:{enum:["Image","Video"]},width:{min:16,max:4096},height:{min:16,max:4096},scale:{min:.1,max:100},octaves:{min:1,max:8},persistence:{min:0,max:1},lacunarity:{min:1,max:4},speed:{min:0,max:10},colorStart:{},colorEnd:{},durationMs:{min:1,max:6e4},fps:{min:1,max:120}},OpArt:{pattern:{enum:["stripes","rings","checker","waves"]},frequency:{min:2,max:300},angle:{min:-360,max:360},warp:{min:0,max:3},source:{min:0,max:1},colorA:{},colorB:{}},Paint:{width:{min:1,max:16384},height:{min:1,max:16384},maintainAspect:{},aspectRatio:{},backgroundColor:{},strokes:{}},Painterly:{style:{enum:["oil","watercolor"]},radius:{min:2,max:12},edgeDarkening:{min:0,max:1},paper:{min:0,max:1},saturation:{min:0,max:2}},PatchHeal:{patches:{},centerX:{min:0,max:1},centerY:{min:0,max:1},offsetX:{min:-4096,max:4096},offsetY:{min:-4096,max:4096},radius:{min:1,max:500},sourceRadius:{min:1,max:500},feather:{min:0,max:100},opacity:{min:0,max:1},mode:{enum:["Clone","SeamlessHeal","TextureTransfer"]}},Pixelate:{size:{min:1,max:256},shape:{enum:["square","circle","diamond"]},gap:{min:0,max:.9}},Posterize:{levels:{min:2,max:64},palette:{enum:["none","gameboy","teletext","cga","pico8","c64","grayscale","sepia","custom"]},colors:{},dither:{min:0,max:1},pixelSize:{min:1,max:64}},ProceduralVFX:{effectType:{enum:["Smoke","Fire","Rain","Sparks","Snow","Dust","Lightning","Magic","LensFlare","Embers","EnergyBeam","Aurora"]},outputType:{enum:["Image","Video"]},width:{min:16,max:4096},height:{min:16,max:4096},density:{min:0,max:1},scale:{min:.001,max:10},speed:{min:0,max:10},intensity:{min:0,max:1},seed:{min:0,max:1e6},colorStart:{},colorEnd:{},durationMs:{min:100,max:1e5},fps:{min:1,max:120}},RefineEdge:{decontaminateAmount:{min:0,max:1},radius:{min:.5,max:50},smooth:{min:0,max:100},feather:{min:0,max:50},shiftEdge:{min:-100,max:100},matteChannel:{enum:["Alpha","Luminance","Red","Green","Blue"]},outputMode:{enum:["Composite","MatteOnly","DecontaminatedRGB"]}},RefractionCaustics3D:{ior:{min:1,max:2.5},dispersion:{min:0,max:.2},refractionScale:{min:0,max:2},causticBrightness:{min:0,max:2},causticScale:{min:.1,max:5},fluidRipples:{min:0,max:1},rippleSpeed:{min:0,max:5},roughness:{min:0,max:1},specularIntensity:{min:0,max:2},lightPosX:{min:0,max:1},lightPosY:{min:0,max:1},tintColor:{},tintStrength:{min:0,max:1},depthInvert:{},depthScale:{min:.1,max:5}},ResizerScaler:{aspectRatioPreset:{enum:["9:16","16:9","1:1","4:5","21:9","custom"]},resolutionPreset:{enum:["4k","1080p","720p","480p","custom"]},targetWidth:{min:1,max:8192},targetHeight:{min:1,max:8192},fitMode:{enum:["cover","contain","stretch","manual"]},zoom:{min:1,max:1e3},offsetX:{min:-8192,max:8192},offsetY:{min:-8192,max:8192},backgroundMode:{enum:["solid","blurred","gradient","transparent"]},backgroundColor:{},backgroundColor2:{},blurRadius:{min:0,max:100},backgroundBrightness:{min:0,max:1},anchorX:{enum:["left","center","right"]},anchorY:{enum:["top","center","bottom"]}},RGBSplit:{amount:{min:0,max:200},angle:{min:-360,max:360},radial:{}},Rotate:{angle:{},fit:{enum:["cover","contain","fill"]},scale:{min:.01,max:20}},StereoPanning:{pan:{min:-1,max:1}},Toon:{levels:{min:2,max:12},edgeThreshold:{min:0,max:1},edgeWidth:{min:.5,max:4},edgeColor:{},saturation:{min:0,max:2}},Trails:{decay:{min:0,max:1},mode:{enum:["blend","over","add","max"]},zoom:{min:.5,max:2},rotation:{min:-45,max:45},offsetX:{min:-500,max:500},offsetY:{min:-500,max:500},hueShift:{min:-180,max:180},warmup:{min:0,max:240}},Vignette:{strength:{min:0,max:100},radius:{min:.1,max:2},softness:{min:0,max:1},roundness:{min:0,max:1},centerX:{min:0,max:1},centerY:{min:0,max:1}}};var Ke={cellSize:10,colorMode:"mono",fg:"#e8e8e8",bg:"#0b0b0b",contrast:1.2,invert:!1},b=class extends o{op="Ascii";domain="visual";constructor(e={}){super(t("Ascii",Ke,e,a.Ascii))}},Ye={threshold:-24,ratio:4,attack:.003,release:.25,knee:6,makeupGain:0},f=class extends o{op="AudioCompressor";domain="audio";constructor(e={}){super(t("AudioCompressor",Ye,e,a.AudioCompressor))}},We={delayTime:.25,feedback:.4,wet:.3,dry:1,pingPong:!1},P=class extends o{op="AudioDelay";domain="audio";constructor(e={}){super(t("AudioDelay",We,e,a.AudioDelay))}},Ne={fadeInDuration:0,fadeOutDuration:0,fadeInCurve:"linear",fadeOutCurve:"linear"},h=class extends o{op="AudioFade";domain="audio";constructor(e={}){super(t("AudioFade",Ne,e,a.AudioFade))}},Ue={threshold:-40,attack:.005,hold:.05,release:.1,range:-80},y=class extends o{op="AudioNoiseGate";domain="audio";constructor(e={}){super(t("AudioNoiseGate",Ue,e,a.AudioNoiseGate))}},je={type:"peak",frequency:1e3,gain:0,q:1},g=class extends o{op="AudioParametricEq";domain="audio";constructor(e={}){super(t("AudioParametricEq",je,e,a.AudioParametricEq))}},$e={roomSize:.5,damping:.5,wet:.3,dry:1,width:1},x=class extends o{op="AudioReverb";domain="audio";constructor(e={}){super(t("AudioReverb",$e,e,a.AudioReverb))}},Ze={blurType:"Gaussian",strength:5,angle:0,sigmaColor:.1,centerX:.5,centerY:.5,partialBlur:!1,radius:.3,radiusY:0,shape:"circle"},le=class extends o{op="Blur";domain="visual";constructor(e={}){super(t("Blur",Ze,e,a.Blur))}},_e={motionPreset:"DollyZoom",panX:0,panY:0,dollyZ:0,fov:50,parallaxAmount:.6,dofAperture:.3,focusPlane:.4,edgeDilation:.5,depthInvert:!1},v=class extends o{op="CameraParallax3D";domain="visual";constructor(e={}){super(t("CameraParallax3D",_e,e,a.CameraParallax3D))}},Je={colorSpace:"RGBA",defaultChannel4:1},S=class extends o{op="ChannelMerger";domain="visual";constructor(e={}){super(t("ChannelMerger",Je,e,a.ChannelMerger))}},Qe={colorSpace:"RGBA"},C=class extends o{op="ChannelSplitter";domain="visual";constructor(e={}){super(t("ChannelSplitter",Qe,e,a.ChannelSplitter))}},er={shadows:{cyanRed:0,magentaGreen:0,yellowBlue:0},midtones:{cyanRed:0,magentaGreen:0,yellowBlue:0},highlights:{cyanRed:0,magentaGreen:0,yellowBlue:0},preserveLuminosity:!0},E=class extends o{op="ColorBalance";domain="visual";constructor(e={}){super(t("ColorBalance",er,e,a.ColorBalance))}},rr={keyColor:"#00ff00",similarity:.4,smoothness:.1,spillSuppression:.2,colorSpace:"YUV",spillSuppressionType:"Desaturate"},A=class extends o{op="ColorKey";domain="visual";constructor(e={}){super(t("ColorKey",rr,e,a.ColorKey))}},or={levels:14,lineWidth:1.2,lineColor:"#2b1d0e",fill:"source",fillColor:"#f3ead8",smoothing:2},w=class extends o{op="Contour";domain="visual";constructor(e={}){super(t("Contour",or,e,a.Contour))}},ar={},R=class extends o{op="CornerPin";domain="visual";constructor(e={}){super(t("CornerPin",ar,e,a.CornerPin))}},tr={scanlines:.45,lineCount:540,curvature:.12,mask:.25,vignette:.35,noise:.08,flicker:.03,tracking:0,chroma:0},M=class extends o{op="CRT";domain="visual";constructor(e={}){super(t("CRT",tr,e,a.CRT))}},nr={keyframes:[],strength:1,bleed:0,warmup:48},D=class extends o{op="Datamosh";domain="visual";constructor(e={}){super(t("Datamosh",nr,e,a.Datamosh))}},lr={strengthX:50,strengthY:50,xChannel:"Red",yChannel:"Green",wrapMode:"Clamp"},k=class extends o{op="DisplacementMap";domain="visual";constructor(e={}){super(t("DisplacementMap",lr,e,a.DisplacementMap))}},ir={mode:"bayer",levels:2,scale:2,monochrome:!0,dark:"#111111",light:"#f2efe6"},B=class extends o{op="Dither";domain="visual";constructor(e={}){super(t("Dither",ir,e,a.Dither))}},sr={strategy:"deterministic",samplePoints:150},T=class extends o{op="ExtractLUT";domain="visual";constructor(e={}){super(t("ExtractLUT",sr,e,a.ExtractLUT))}},cr={horizontal:!0,vertical:!1,diagonal:!1,mode:"horizontal",symmetry:"none"},G=class extends o{op="Flip";domain="visual";constructor(e={}){super(t("Flip",cr,e,a.Flip))}},pr={radius:12,threshold:.5,softness:.04},I=class extends o{op="Gooey";domain="visual";constructor(e={}){super(t("Gooey",pr,e,a.Gooey))}},ur={strength:.6,scale:2,shift:0,mode:"relief"},H=class extends o{op="Iridescence";domain="visual";constructor(e={}){super(t("Iridescence",ur,e,a.Iridescence))}},dr={segments:6,rotation:0,centerX:.5,centerY:.5,zoom:1},L=class extends o{op="Kaleidoscope";domain="visual";constructor(e={}){super(t("Kaleidoscope",dr,e,a.Kaleidoscope))}},mr={keyframes:[],motionBlurSize:1.5,movementStyle:"spline",aspectRatio:"input"},O=class extends o{op="KenBurns";domain="visual";constructor(e={}){super(t("KenBurns",mr,e,a.KenBurns))}},br={dropShadow:{enabled:!1,color:"#000000",opacity:.75,angle:120,distance:10,spread:0,size:10,blendMode:"multiply"},innerShadow:{enabled:!1,color:"#000000",opacity:.75,angle:120,distance:5,choke:0,size:5,blendMode:"multiply"},outerGlow:{enabled:!1,color:"#ffffff",opacity:.75,size:15,spread:0,blendMode:"screen"},innerGlow:{enabled:!1,color:"#ffffff",opacity:.75,size:15,spread:0,blendMode:"screen"},stroke:{enabled:!1,size:2,position:"outside",color:"#ffffff",opacity:1,blendMode:"normal"},bevelEmboss:{enabled:!1,style:"InnerBevel",technique:"Smooth",depth:100,direction:"Up",size:5,soften:0,angle:120,altitude:30,highlightColor:"#ffffff",highlightOpacity:.75,shadowColor:"#000000",shadowOpacity:.75},colorOverlay:{enabled:!1,color:"#ff0000",opacity:1,blendMode:"normal"}},z=class extends o{op="LayerStyle";domain="visual";constructor(e={}){super(t("LayerStyle",br,e,a.LayerStyle))}},fr={operations:[]},F=class extends o{op="Liquify";domain="visual";constructor(e={}){super(t("Liquify",fr,e,a.Liquify))}},Pr={operation:"Union",radius:0,threshold:.5,clampMin:0,clampMax:1,channelA:"Alpha",channelB:"Alpha",binarize:!1,invertResult:!1,outputFormat:"WhiteWithAlpha"},V=class extends o{op="MaskMath";domain="visual";constructor(e={}){super(t("MaskMath",Pr,e,a.MaskMath))}},hr={cols:3,rows:3},q=class extends o{op="MeshWarp";domain="visual";constructor(e={}){super(t("MeshWarp",hr,e,a.MeshWarp))}},yr={noiseType:"Perlin",outputType:"Image",width:512,height:512,scale:10,octaves:4,persistence:.5,lacunarity:2,speed:1,colorStart:"#000000",colorEnd:"#ffffff",durationMs:5e3,fps:30},X=class extends o{op="NoiseGenerator";domain="visual";constructor(e={}){super(t("NoiseGenerator",yr,e,a.NoiseGenerator))}},gr={pattern:"stripes",frequency:48,angle:0,warp:.6,source:1,colorA:"#0a0a0a",colorB:"#f5f5f5"},K=class extends o{op="OpArt";domain="visual";constructor(e={}){super(t("OpArt",gr,e,a.OpArt))}},xr={width:1080,height:1080,maintainAspect:!0,backgroundColor:"#ffffff"},Y=class extends o{op="Paint";domain="visual";constructor(e={}){super(t("Paint",xr,e,a.Paint))}},vr={style:"oil",radius:5,edgeDarkening:.5,paper:.3,saturation:1.05},W=class extends o{op="Painterly";domain="visual";constructor(e={}){super(t("Painterly",vr,e,a.Painterly))}},Sr={centerX:.5,centerY:.5,offsetX:50,offsetY:0,radius:25,sourceRadius:25,feather:50,opacity:1,mode:"SeamlessHeal"},N=class extends o{op="PatchHeal";domain="visual";constructor(e={}){super(t("PatchHeal",Sr,e,a.PatchHeal))}},Cr={size:12,shape:"square",gap:0},U=class extends o{op="Pixelate";domain="visual";constructor(e={}){super(t("Pixelate",Cr,e,a.Pixelate))}},Er={levels:6,palette:"none",colors:[],dither:0,pixelSize:1},j=class extends o{op="Posterize";domain="visual";constructor(e={}){super(t("Posterize",Er,e,a.Posterize))}},Ar={effectType:"Smoke",outputType:"Video",width:1080,height:1080,density:.6,scale:.01,speed:1,intensity:.8,seed:1234,colorStart:"#ffffff",colorEnd:"#ff5500",durationMs:5e3,fps:30},$=class extends o{op="ProceduralVFX";domain="visual";constructor(e={}){super(t("ProceduralVFX",Ar,e,a.ProceduralVFX))}},wr={decontaminateAmount:.7,radius:2,smooth:5,feather:.5,shiftEdge:0,matteChannel:"Alpha",outputMode:"Composite"},Z=class extends o{op="RefineEdge";domain="visual";constructor(e={}){super(t("RefineEdge",wr,e,a.RefineEdge))}},Rr={ior:1.52,dispersion:.04,refractionScale:.5,causticBrightness:.6,causticScale:1,fluidRipples:0,rippleSpeed:1,roughness:0,specularIntensity:.8,lightPosX:.5,lightPosY:.2,tintColor:"#ffffff",tintStrength:0,depthInvert:!1,depthScale:1},_=class extends o{op="RefractionCaustics3D";domain="visual";constructor(e={}){super(t("RefractionCaustics3D",Rr,e,a.RefractionCaustics3D))}},Mr={aspectRatioPreset:"16:9",resolutionPreset:"1080p",targetWidth:1920,targetHeight:1080,fitMode:"contain",zoom:100,offsetX:0,offsetY:0,backgroundMode:"solid",backgroundColor:"#000000FF",backgroundColor2:"#000000FF",blurRadius:40,backgroundBrightness:.6,anchorX:"center",anchorY:"center"},J=class extends o{op="ResizerScaler";domain="visual";constructor(e={}){super(t("ResizerScaler",Mr,e,a.ResizerScaler))}},Dr={amount:8,angle:0,radial:!1},Q=class extends o{op="RGBSplit";domain="visual";constructor(e={}){super(t("RGBSplit",Dr,e,a.RGBSplit))}},kr={angle:90,fit:"cover",scale:1},ee=class extends o{op="Rotate";domain="visual";constructor(e={}){super(t("Rotate",kr,e,a.Rotate))}},Br={pan:0},re=class extends o{op="StereoPanning";domain="audio";constructor(e={}){super(t("StereoPanning",Br,e,a.StereoPanning))}},Tr={levels:4,edgeThreshold:.2,edgeWidth:1,edgeColor:"#111111",saturation:1.15},oe=class extends o{op="Toon";domain="visual";constructor(e={}){super(t("Toon",Tr,e,a.Toon))}},Gr={decay:.9,mode:"blend",zoom:1,rotation:0,offsetX:0,offsetY:0,hueShift:0,warmup:60},ae=class extends o{op="Trails";domain="visual";constructor(e={}){super(t("Trails",Gr,e,a.Trails))}},Ir={strength:50,radius:1,softness:.5,roundness:.5,centerX:.5,centerY:.5},te=class extends o{op="Vignette";domain="visual";constructor(e={}){super(t("Vignette",Ir,e,a.Vignette))}};function Hr(r){return{partialBlur:!0,centerX:r.center.x,centerY:r.center.y,radius:r.bounds.width.multiply(.55),radiusY:r.bounds.height.multiply(.55),shape:"ellipse",strength:r.active.multiply(25)}}var ne=class extends le{constructor(e={}){let{track:n,...l}=e;super(n?{...Hr(n),...Lr(l)}:l)}};function Lr(r){return Object.fromEntries(Object.entries(r).filter(([,e])=>e!==void 0))}p();var Or={ascii:r=>new b(r),audioCompressor:r=>new f(r),audioDelay:r=>new P(r),audioFade:r=>new h(r),audioNoiseGate:r=>new y(r),audioParametricEq:r=>new g(r),audioReverb:r=>new x(r),blur:r=>new ne(r),cameraParallax3D:r=>new v(r),channelMerger:r=>new S(r),channelSplitter:r=>new C(r),colorBalance:r=>new E(r),colorKey:r=>new A(r),contour:r=>new w(r),cornerPin:r=>new R(r),cRT:r=>new M(r),datamosh:r=>new D(r),displacementMap:r=>new k(r),dither:r=>new B(r),extractLUT:r=>new T(r),flip:r=>new G(r),gooey:r=>new I(r),iridescence:r=>new H(r),kaleidoscope:r=>new L(r),kenBurns:r=>new O(r),layerStyle:r=>new z(r),liquify:r=>new F(r),maskMath:r=>new V(r),meshWarp:r=>new q(r),noiseGenerator:r=>new X(r),opArt:r=>new K(r),paint:r=>new Y(r),painterly:r=>new W(r),patchHeal:r=>new N(r),pixelate:r=>new U(r),posterize:r=>new j(r),proceduralVFX:r=>new $(r),refineEdge:r=>new Z(r),refractionCaustics3D:r=>new _(r),resizerScaler:r=>new J(r),rGBSplit:r=>new Q(r),rotate:r=>new ee(r),stereoPanning:r=>new re(r),toon:r=>new oe(r),trails:r=>new ae(r),vignette:r=>new te(r)};var fe=class extends o{op="Levels";domain="visual";constructor(e={}){let n={inBlack:0,inWhite:1,outBlack:0,outWhite:1};super({master:e.master??{...n},red:e.red??{...n},green:e.green??{...n},blue:e.blue??{...n},...e})}},Pe=class extends o{op="FilmGrain";domain="visual";constructor(e={}){super({strength:e.strength??15,size:e.size??1.5,monochrome:e.monochrome??!0,animated:e.animated??!0,speed:e.speed??50,shadows:e.shadows??.2,midtones:e.midtones??1,highlights:e.highlights??.2,...e})}},he=class extends o{op;domain="visual";constructor(e,n={}){super(n),this.op=e}},ye=class extends o{op="AudioSignalExtractor";domain="audio";constructor(e={}){super({extractionMode:e.extractionMode??"rms_envelope",attackMs:e.attackMs??10,releaseMs:e.releaseMs??120,sensitivity:e.sensitivity??1,noiseFloorDb:e.noiseFloorDb??-48,dynamicRangeDb:e.dynamicRangeDb??48,autoRange:e.autoRange??!0,smoothing:e.smoothing??.15,curve:e.curve??"linear",beatThreshold:e.beatThreshold??.08,beatDecayMs:e.beatDecayMs??80,previewMode:e.previewMode??"envelope",nodeId:e.nodeId??"audio_extractor",...e})}async extract(e,n={}){return pe.extract(e,{extractionMode:this.extractionMode,attackMs:this.attackMs,releaseMs:this.releaseMs,sensitivity:this.sensitivity,noiseFloorDb:this.noiseFloorDb,dynamicRangeDb:this.dynamicRangeDb,smoothing:this.smoothing,curve:this.curve,beatThreshold:this.beatThreshold,beatDecayMs:this.beatDecayMs,previewMode:this.previewMode,...n})}},ge=class extends o{op="Curves";domain="visual";constructor(e={}){super({...e,curveType:e.curveType??"rgb",master:e.master??[{x:0,y:0},{x:1,y:1}],red:e.red??[{x:0,y:0},{x:1,y:1}],green:e.green??[{x:0,y:0},{x:1,y:1}],blue:e.blue??[{x:0,y:0},{x:1,y:1}],hueVsHue:e.hueVsHue??[{x:0,y:.5},{x:1,y:.5}],hueVsSat:e.hueVsSat??[{x:0,y:1},{x:1,y:1}],lumVsSat:e.lumVsSat??[{x:0,y:1},{x:1,y:1}],satVsSat:e.satVsSat??[{x:0,y:1},{x:1,y:1}]})}},xe=class extends o{op="SelectiveColor";domain="visual";constructor(e={}){let n={cyan:0,magenta:0,yellow:0,black:0};super({...e,method:e.method??"Relative",reds:{...n,...e.reds},yellows:{...n,...e.yellows},greens:{...n,...e.greens},cyans:{...n,...e.cyans},blues:{...n,...e.blues},magentas:{...n,...e.magentas},whites:{...n,...e.whites},neutrals:{...n,...e.neutrals},blacks:{...n,...e.blacks}})}},ve=class extends o{op="GradientMap";domain="visual";constructor(e={}){let n=[{position:0,color:"#000000"},{position:1,color:"#ffffff"}];super({...e,stops:e.stops??n,smooth:e.smooth??!0,dither:e.dither??!0,opacity:e.opacity??1})}},Se=class extends o{op="ShadowsHighlights";domain="visual";constructor(e={}){super({...e,shadowAmount:e.shadowAmount??0,shadowTonalWidth:e.shadowTonalWidth??50,shadowRadius:e.shadowRadius??30,highlightAmount:e.highlightAmount??0,highlightTonalWidth:e.highlightTonalWidth??50,highlightRadius:e.highlightRadius??30,colorCorrection:e.colorCorrection??0,midtoneContrast:e.midtoneContrast??0})}},Ce=class extends o{op="ApplyLUT";domain="visual";constructor(e={}){super({...e,lutUrl:e.lutUrl??"",intensity:e.intensity??1})}},Ee=class extends o{op="UnsharpMask";domain="visual";constructor(e={}){super({...e,amount:e.amount??100,radius:e.radius??1.5,threshold:e.threshold??3})}},Ae=class extends o{op="HighPass";domain="visual";constructor(e={}){super({...e,radius:e.radius??3,contrastBoost:e.contrastBoost??1,monochrome:e.monochrome??!0})}},we=class extends o{op="HalftoneScreen";domain="visual";constructor(e={}){super({...e,mode:e.mode??"Monochrome",dotShape:e.dotShape??"Circle",frequency:e.frequency??30,angle:e.angle??45,contrast:e.contrast??1,dotColor:e.dotColor??"#000000",paperColor:e.paperColor??"#ffffff",smooth:e.smooth??!0,invert:e.invert??!1,cyanAngle:e.cyanAngle??15,magentaAngle:e.magentaAngle??75,yellowAngle:e.yellowAngle??0,blackAngle:e.blackAngle??45,opacity:e.opacity??1})}},Re=class extends o{op="TileOffset";domain="visual";constructor(e={}){super({...e,offsetX:e.offsetX??0,offsetY:e.offsetY??0,wrap:e.wrap??!0,edgeMode:e.edgeMode??"wrap"})}},Me=class extends o{op="MotionBlur";domain="visual";constructor(e={}){super({...e,shutterAngle:e.shutterAngle??180,samples:e.samples??16,maxVelocity:e.maxVelocity??64,shutterCurve:e.shutterCurve??"gaussian",depthAware:e.depthAware??!0})}},De=class extends o{op="SSAO";domain="visual";constructor(e={}){super({...e,radius:e.radius??45,bias:e.bias??.025,intensity:e.intensity??1.5,kernelSamples:e.kernelSamples??16,blurRadius:e.blurRadius??4})}},ke=class extends o{op="PBRGlass";domain="visual";constructor(e={}){super({...e,ior:e.ior??1.49,roughness:e.roughness??.15,transmission:e.transmission??.92,dispersion:e.dispersion??.015,fresnelPower:e.fresnelPower??5,tintColor:e.tintColor??"#ffffff"})}},Be=class extends o{op="DepthOfField";domain="visual";constructor(e={}){super({...e,focusDistance:e.focusDistance??500,focalLength:e.focalLength??50,aperture:e.aperture??2.8,maxBlur:e.maxBlur??16,quality:e.quality??"high"})}},Te=class extends o{op="Crop";domain="visual";constructor(e={}){super({cropType:e.cropType??"rect",leftPercentage:e.leftPercentage??0,topPercentage:e.topPercentage??0,widthPercentage:e.widthPercentage??100,heightPercentage:e.heightPercentage??100,roundness:e.roundness??0,...e})}},Ge=class extends o{op="Vision";domain="visual";constructor(e={}){super({enableDetection:e.enableDetection!==!1,enableSegmentation:e.enableSegmentation===!0,enablePose:e.enablePose===!0,enableMatte:e.enableMatte===!0,confidence:e.confidence??.3,variant:e.variant??"s",mode:e.mode??"passthrough",matteSource:e.matteSource??"instance",...e})}},Ie=class extends o{op="Relight3D";domain="visual";constructor(e={}){super({lightType:e.lightType??"Point",intensity:e.intensity??1,lightPosX:e.lightPosX??.5,lightPosY:e.lightPosY??.5,lightPosZ:e.lightPosZ??.3,lightRadius:e.lightRadius??.8,spotConeAngle:e.spotConeAngle??45,specularRoughness:e.specularRoughness??.35,specularStrength:e.specularStrength??.7,metallic:e.metallic??0,ambientIntensity:e.ambientIntensity??.4,volumetricDensity:e.volumetricDensity??.2,depthScale:e.depthScale??1,depthInvert:e.depthInvert??!1,lightColor:e.lightColor??"#ffffff",ambientColor:e.ambientColor??"#ffffff",normalMap:e.normalMap,...e})}},He=class extends o{op="TemporalDeflicker";domain="visual";constructor(e={}){super({blendWeight:e.blendWeight??.35,disocclusionThreshold:e.disocclusionThreshold??.15,maxMotionPixels:e.maxMotionPixels??64,scale:e.scale??.5,windowSize:e.windowSize??2,...e})}},Le=class extends o{op="Modulate";domain="visual";constructor(e={}){super({hue:e.hue??0,brightness:e.brightness??1,contrast:e.contrast??1,exposure:e.exposure??0,saturation:e.saturation??1,sepia:e.sepia??0,...e})}};export{a,b,f as c,P as d,h as e,y as f,g,x as h,v as i,S as j,C as k,E as l,A as m,w as n,R as o,M as p,D as q,k as r,B as s,T as t,G as u,I as v,H as w,L as x,O as y,z,F as A,V as B,q as C,X as D,K as E,Y as F,W as G,N as H,U as I,j as J,$ as K,Z as L,_ as M,J as N,Q as O,ee as P,re as Q,oe as R,ae as S,te as T,ne as U,Or as V,fe as W,Pe as X,he as Y,ye as Z,ge as _,xe as $,ve as aa,Se as ba,Ce as ca,Ee as da,Ae as ea,we as fa,Re as ga,Me as ha,De as ia,ke as ja,Be as ka,Te as la,Ge as ma,Ie as na,He as oa,Le as pa};
1
+ import{a as o}from"./chunk-PH3UUX6A.mjs";import{a as pe}from"./chunk-3C2XT64C.mjs";import{h as ie}from"./chunk-ULOFDFHJ.mjs";import{f as d,g as p}from"./chunk-Y4NIR77Z.mjs";p();p();p();p();p();p();function de(r){return typeof d<"u"?d.env?.[r]:void 0}function me(){let r=de("FRAMEFIELDS_STRICT_PROPS");return r==="1"||r==="true"}function ze(){return me()||de("NODE_ENV")!=="production"}var ue=new Set;function se(r){if(me())throw new Error(r);ue.has(r)||(ue.add(r),console.warn(`[framefields] ${r}`))}function ce(r){if(typeof r!="object"||r===null||Array.isArray(r)||ie(r))return!1;let e=Object.getPrototypeOf(r);return e===Object.prototype||e===null}function Fe(r,e){let n=Array.from({length:e.length+1},(l,i)=>i);for(let l=1;l<=r.length;l++){let i=n[0];n[0]=l;for(let s=1;s<=e.length;s++){let c=n[s];n[s]=Math.min(n[s]+1,n[s-1]+1,i+(r[l-1]===e[s-1]?0:1)),i=c}}return n[e.length]}function Ve(r,e){let n,l=Number.POSITIVE_INFINITY,i=r.toLowerCase();for(let c of e){let u=c.toLowerCase(),m=u.includes(i)||i.includes(u)?1:Fe(i,u);m<l&&(l=m,n=c)}return n&&l<=Math.max(2,Math.ceil(r.length/2))?` Did you mean "${n}"?`:` Known props: ${e.join(", ")}.`}function qe(r,e,n){if(typeof e=="number"){let{min:l,max:i}=n,s=l!==void 0&&e<l,c=i!==void 0&&e>i;if(s||c||Number.isNaN(e)){let u=l!==void 0&&i!==void 0?`${l} to ${i}`:l!==void 0?`\u2265 ${l}`:`\u2264 ${i}`;se(Number.isNaN(e)?`${r} is NaN`:`${r} = ${e} is outside ${u}`)}return}n.enum&&(typeof e=="string"||typeof e=="boolean")&&!n.enum.includes(e)&&se(`${r} = ${JSON.stringify(e)} is not one of ${n.enum.map(l=>JSON.stringify(l)).join(", ")}`)}function be(r,e,n){let l=Object.keys(n);for(let[i,s]of Object.entries(e)){if(s===void 0)continue;let c=n[i];if(!c){se(`${r}: unknown prop "${i}".${Ve(i,l)}`);continue}ie(s)||typeof s=="function"||(c.props&&ce(s)?be(`${r}.${i}`,s,c.props):qe(`${r}.${i}`,s,c))}}function Xe(r){return typeof r=="object"&&r!==null?structuredClone(r):r}function t(r,e,n,l){let i=n;ze()&&be(r,i,l);let s={};for(let[c,u]of Object.entries(e))s[c]=Xe(u);for(let[c,u]of Object.entries(i)){if(u===void 0)continue;let m=s[c];s[c]=ce(m)&&ce(u)?{...m,...Object.fromEntries(Object.entries(u).filter(([,Oe])=>Oe!==void 0))}:u}return s}p();var a={Ascii:{cellSize:{min:4,max:64},colorMode:{enum:["mono","source","green"]},fg:{},bg:{},contrast:{min:.5,max:3},invert:{}},AudioCompressor:{threshold:{min:-60,max:0},ratio:{min:1,max:100},attack:{min:1e-4,max:1},release:{min:.01,max:5},knee:{min:0,max:24},makeupGain:{min:0,max:24}},AudioDelay:{delayTime:{min:.001,max:5},feedback:{min:0,max:.95},wet:{min:0,max:1},dry:{min:0,max:1},pingPong:{}},AudioFade:{fadeInDuration:{min:0,max:60},fadeOutDuration:{min:0,max:60},fadeInCurve:{enum:["linear","exponential","scurve"]},fadeOutCurve:{enum:["linear","exponential","scurve"]}},AudioNoiseGate:{threshold:{min:-120,max:0},attack:{min:1e-4,max:1},hold:{min:.001,max:5},release:{min:.01,max:5},range:{min:-120,max:0}},AudioParametricEq:{type:{enum:["lowShelf","highShelf","peak","lowPass","highPass","notch"]},frequency:{min:20,max:2e4},gain:{min:-24,max:24},q:{min:.01,max:10}},AudioReverb:{roomSize:{min:0,max:.98},damping:{min:0,max:1},wet:{min:0,max:1},dry:{min:0,max:1},width:{min:0,max:1}},Blur:{blurType:{enum:["Gaussian","Box","Median","Motion","Bilateral","Edge-preserving","Radial","Zoom"]},strength:{min:0,max:100},angle:{min:0,max:360},sigmaColor:{min:.01,max:1},centerX:{min:0,max:1},centerY:{min:0,max:1},partialBlur:{},radius:{min:.01,max:1},radiusY:{min:0,max:1},shape:{enum:["ellipse","circle","rect"]}},CameraParallax3D:{motionPreset:{enum:["Custom","DollyZoom","Orbit","FlyThrough","HandheldShake","RackFocus"]},panX:{min:-1,max:1},panY:{min:-1,max:1},dollyZ:{min:-1,max:1},fov:{min:15,max:120},parallaxAmount:{min:0,max:2},dofAperture:{min:0,max:1},focusPlane:{min:0,max:1},edgeDilation:{min:0,max:1},depthInvert:{}},ChannelMerger:{colorSpace:{enum:["RGBA","HSLA","CMYK","LAB"]},defaultChannel4:{min:0,max:1}},ChannelSplitter:{colorSpace:{enum:["RGBA","HSLA","CMYK","LAB"]}},ColorBalance:{shadows:{props:{cyanRed:{min:-100,max:100},magentaGreen:{min:-100,max:100},yellowBlue:{min:-100,max:100}}},midtones:{props:{cyanRed:{min:-100,max:100},magentaGreen:{min:-100,max:100},yellowBlue:{min:-100,max:100}}},highlights:{props:{cyanRed:{min:-100,max:100},magentaGreen:{min:-100,max:100},yellowBlue:{min:-100,max:100}}},preserveLuminosity:{}},ColorKey:{keyColor:{},similarity:{min:0,max:1},smoothness:{min:0,max:1},spillSuppression:{min:0,max:1},colorSpace:{enum:["YUV","RGB"]},spillSuppressionType:{enum:["Desaturate","Neutralize","None"]}},Contour:{levels:{min:2,max:64},lineWidth:{min:.5,max:8},lineColor:{},fill:{enum:["source","flat","none"]},fillColor:{},smoothing:{min:0,max:8}},CornerPin:{points:{}},CRT:{scanlines:{min:0,max:1},lineCount:{min:100,max:2160},curvature:{min:0,max:1},mask:{min:0,max:1},vignette:{min:0,max:1},noise:{min:0,max:1},flicker:{min:0,max:1},tracking:{min:0,max:1},chroma:{min:0,max:20}},Datamosh:{keyframes:{},strength:{min:0,max:10},bleed:{min:0,max:1},warmup:{min:1,max:240}},DisplacementMap:{strengthX:{min:0,max:500},strengthY:{min:0,max:500},xChannel:{enum:["Red","Green","Blue","Alpha","Luminance"]},yChannel:{enum:["Red","Green","Blue","Alpha","Luminance"]},wrapMode:{enum:["Clamp","Repeat","Mirror"]}},Dither:{mode:{enum:["bayer","noise","halftone"]},levels:{min:2,max:16},scale:{min:1,max:16},monochrome:{},dark:{},light:{}},ExtractLUT:{strategy:{enum:["deterministic","statistical"]},samplePoints:{min:10,max:500}},Flip:{horizontal:{},vertical:{},diagonal:{},mode:{enum:["horizontal","vertical","both","diagonal","antiDiagonal","custom"]},symmetry:{enum:["none","leftToRight","rightToLeft","topToBottom","bottomToTop","quadrant"]}},Gooey:{radius:{min:1,max:60},threshold:{min:0,max:1},softness:{min:.001,max:.5}},Iridescence:{strength:{min:0,max:1},scale:{min:.1,max:10},shift:{min:-3600,max:3600},mode:{enum:["luminance","relief"]}},Kaleidoscope:{segments:{min:2,max:32},rotation:{min:-3600,max:3600},centerX:{min:0,max:1},centerY:{min:0,max:1},zoom:{min:.2,max:4}},KenBurns:{keyframes:{},motionBlurSize:{min:0,max:10},movementStyle:{enum:["spline","direct"]},aspectRatio:{enum:["input","16:9","9:16","21:9","9:21","1:1","4:3","3:2","2:3","4:5","5:4"]}},LayerStyle:{dropShadow:{props:{enabled:{},color:{},opacity:{min:0,max:1},angle:{min:0,max:360},distance:{min:0,max:500},spread:{min:0,max:100},size:{min:0,max:250},blendMode:{}}},innerShadow:{props:{enabled:{},color:{},opacity:{min:0,max:1},angle:{min:0,max:360},distance:{min:0,max:500},choke:{min:0,max:100},size:{min:0,max:250},blendMode:{}}},outerGlow:{props:{enabled:{},color:{},opacity:{min:0,max:1},size:{min:0,max:250},spread:{min:0,max:100},blendMode:{}}},innerGlow:{props:{enabled:{},color:{},opacity:{min:0,max:1},size:{min:0,max:250},spread:{min:0,max:100},blendMode:{}}},stroke:{props:{enabled:{},size:{min:0,max:100},position:{enum:["inside","center","outside"]},color:{},opacity:{min:0,max:1},blendMode:{}}},bevelEmboss:{props:{enabled:{},style:{enum:["InnerBevel","OuterBevel","Emboss","PillowEmboss"]},technique:{enum:["Smooth","ChiselHard","ChiselSoft"]},depth:{min:1,max:1e3},direction:{enum:["Up","Down"]},size:{min:0,max:250},soften:{min:0,max:50},angle:{min:0,max:360},altitude:{min:0,max:90},highlightColor:{},highlightOpacity:{min:0,max:1},shadowColor:{},shadowOpacity:{min:0,max:1}}},colorOverlay:{props:{enabled:{},color:{},opacity:{min:0,max:1},blendMode:{}}},dropShadowAngleHandleId:{},dropShadowDistanceHandleId:{},dropShadowSpreadHandleId:{},dropShadowSizeHandleId:{},dropShadowOpacityHandleId:{},innerShadowAngleHandleId:{},innerShadowDistanceHandleId:{},innerShadowChokeHandleId:{},innerShadowSizeHandleId:{},innerShadowOpacityHandleId:{},outerGlowSizeHandleId:{},outerGlowSpreadHandleId:{},outerGlowOpacityHandleId:{},innerGlowSizeHandleId:{},innerGlowSpreadHandleId:{},innerGlowOpacityHandleId:{},strokeSizeHandleId:{},strokeOpacityHandleId:{},bevelEmbossDepthHandleId:{},bevelEmbossSizeHandleId:{},bevelEmbossSoftenHandleId:{},bevelEmbossAngleHandleId:{},bevelEmbossAltitudeHandleId:{},bevelEmbossHighlightOpacityHandleId:{},bevelEmbossShadowOpacityHandleId:{},colorOverlayOpacityHandleId:{}},Liquify:{operations:{}},MaskMath:{operation:{enum:["Union","Intersect","Subtract","Difference","Invert","Dilate","Erode","Choke","Feather"]},radius:{min:0,max:200},threshold:{min:0,max:1},clampMin:{min:0,max:1},clampMax:{min:0,max:1},channelA:{enum:["Alpha","Luminance","Red","Green","Blue"]},channelB:{enum:["Alpha","Luminance","Red","Green","Blue"]},binarize:{},invertResult:{},outputFormat:{enum:["WhiteWithAlpha","GrayscaleRGB","AlphaOnly","PassthroughRGB"]}},MeshWarp:{cols:{min:2,max:12},rows:{min:2,max:12},points:{}},NoiseGenerator:{noiseType:{enum:["Perlin","Simplex","Voronoi"]},outputType:{enum:["Image","Video"]},width:{min:16,max:4096},height:{min:16,max:4096},scale:{min:.1,max:100},octaves:{min:1,max:8},persistence:{min:0,max:1},lacunarity:{min:1,max:4},speed:{min:0,max:10},colorStart:{},colorEnd:{},durationMs:{min:1,max:6e4},fps:{min:1,max:120}},OpArt:{pattern:{enum:["stripes","rings","checker","waves"]},frequency:{min:2,max:300},angle:{min:-360,max:360},warp:{min:0,max:3},source:{min:0,max:1},colorA:{},colorB:{}},Paint:{width:{min:1,max:16384},height:{min:1,max:16384},maintainAspect:{},aspectRatio:{},backgroundColor:{},strokes:{}},Painterly:{style:{enum:["oil","watercolor"]},radius:{min:2,max:12},edgeDarkening:{min:0,max:1},paper:{min:0,max:1},saturation:{min:0,max:2}},PatchHeal:{patches:{},centerX:{min:0,max:1},centerY:{min:0,max:1},offsetX:{min:-4096,max:4096},offsetY:{min:-4096,max:4096},radius:{min:1,max:500},sourceRadius:{min:1,max:500},feather:{min:0,max:100},opacity:{min:0,max:1},mode:{enum:["Clone","SeamlessHeal","TextureTransfer"]}},Pixelate:{size:{min:1,max:256},shape:{enum:["square","circle","diamond"]},gap:{min:0,max:.9}},Posterize:{levels:{min:2,max:64},palette:{enum:["none","gameboy","teletext","cga","pico8","c64","grayscale","sepia","custom"]},colors:{},dither:{min:0,max:1},pixelSize:{min:1,max:64}},ProceduralVFX:{effectType:{enum:["Smoke","Fire","Rain","Sparks","Snow","Dust","Lightning","Magic","LensFlare","Embers","EnergyBeam","Aurora"]},outputType:{enum:["Image","Video"]},width:{min:16,max:4096},height:{min:16,max:4096},density:{min:0,max:1},scale:{min:.001,max:10},speed:{min:0,max:10},intensity:{min:0,max:1},seed:{min:0,max:1e6},colorStart:{},colorEnd:{},durationMs:{min:100,max:1e5},fps:{min:1,max:120}},RefineEdge:{decontaminateAmount:{min:0,max:1},radius:{min:.5,max:50},smooth:{min:0,max:100},feather:{min:0,max:50},shiftEdge:{min:-100,max:100},matteChannel:{enum:["Alpha","Luminance","Red","Green","Blue"]},outputMode:{enum:["Composite","MatteOnly","DecontaminatedRGB"]}},RefractionCaustics3D:{ior:{min:1,max:2.5},dispersion:{min:0,max:.2},refractionScale:{min:0,max:2},causticBrightness:{min:0,max:2},causticScale:{min:.1,max:5},fluidRipples:{min:0,max:1},rippleSpeed:{min:0,max:5},roughness:{min:0,max:1},specularIntensity:{min:0,max:2},lightPosX:{min:0,max:1},lightPosY:{min:0,max:1},tintColor:{},tintStrength:{min:0,max:1},depthInvert:{},depthScale:{min:.1,max:5}},ResizerScaler:{aspectRatioPreset:{enum:["9:16","16:9","1:1","4:5","21:9","custom"]},resolutionPreset:{enum:["4k","1080p","720p","480p","custom"]},targetWidth:{min:1,max:8192},targetHeight:{min:1,max:8192},fitMode:{enum:["cover","contain","stretch","manual"]},zoom:{min:1,max:1e3},offsetX:{min:-8192,max:8192},offsetY:{min:-8192,max:8192},backgroundMode:{enum:["solid","blurred","gradient","transparent"]},backgroundColor:{},backgroundColor2:{},blurRadius:{min:0,max:100},backgroundBrightness:{min:0,max:1},anchorX:{enum:["left","center","right"]},anchorY:{enum:["top","center","bottom"]}},RGBSplit:{amount:{min:0,max:200},angle:{min:-360,max:360},radial:{}},Rotate:{angle:{},fit:{enum:["cover","contain","fill"]},scale:{min:.01,max:20}},StereoPanning:{pan:{min:-1,max:1}},Toon:{levels:{min:2,max:12},edgeThreshold:{min:0,max:1},edgeWidth:{min:.5,max:4},edgeColor:{},saturation:{min:0,max:2}},Trails:{decay:{min:0,max:1},mode:{enum:["blend","over","add","max"]},zoom:{min:.5,max:2},rotation:{min:-45,max:45},offsetX:{min:-500,max:500},offsetY:{min:-500,max:500},hueShift:{min:-180,max:180},warmup:{min:0,max:240}},Vignette:{strength:{min:0,max:100},radius:{min:.1,max:2},softness:{min:0,max:1},roundness:{min:0,max:1},centerX:{min:0,max:1},centerY:{min:0,max:1}}};var Ke={cellSize:10,colorMode:"mono",fg:"#e8e8e8",bg:"#0b0b0b",contrast:1.2,invert:!1},b=class extends o{op="Ascii";domain="visual";constructor(e={}){super(t("Ascii",Ke,e,a.Ascii))}},Ye={threshold:-24,ratio:4,attack:.003,release:.25,knee:6,makeupGain:0},f=class extends o{op="AudioCompressor";domain="audio";constructor(e={}){super(t("AudioCompressor",Ye,e,a.AudioCompressor))}},We={delayTime:.25,feedback:.4,wet:.3,dry:1,pingPong:!1},P=class extends o{op="AudioDelay";domain="audio";constructor(e={}){super(t("AudioDelay",We,e,a.AudioDelay))}},Ne={fadeInDuration:0,fadeOutDuration:0,fadeInCurve:"linear",fadeOutCurve:"linear"},h=class extends o{op="AudioFade";domain="audio";constructor(e={}){super(t("AudioFade",Ne,e,a.AudioFade))}},Ue={threshold:-40,attack:.005,hold:.05,release:.1,range:-80},y=class extends o{op="AudioNoiseGate";domain="audio";constructor(e={}){super(t("AudioNoiseGate",Ue,e,a.AudioNoiseGate))}},je={type:"peak",frequency:1e3,gain:0,q:1},g=class extends o{op="AudioParametricEq";domain="audio";constructor(e={}){super(t("AudioParametricEq",je,e,a.AudioParametricEq))}},$e={roomSize:.5,damping:.5,wet:.3,dry:1,width:1},x=class extends o{op="AudioReverb";domain="audio";constructor(e={}){super(t("AudioReverb",$e,e,a.AudioReverb))}},Ze={blurType:"Gaussian",strength:5,angle:0,sigmaColor:.1,centerX:.5,centerY:.5,partialBlur:!1,radius:.3,radiusY:0,shape:"circle"},le=class extends o{op="Blur";domain="visual";constructor(e={}){super(t("Blur",Ze,e,a.Blur))}},_e={motionPreset:"DollyZoom",panX:0,panY:0,dollyZ:0,fov:50,parallaxAmount:.6,dofAperture:.3,focusPlane:.4,edgeDilation:.5,depthInvert:!1},v=class extends o{op="CameraParallax3D";domain="visual";constructor(e={}){super(t("CameraParallax3D",_e,e,a.CameraParallax3D))}},Je={colorSpace:"RGBA",defaultChannel4:1},S=class extends o{op="ChannelMerger";domain="visual";constructor(e={}){super(t("ChannelMerger",Je,e,a.ChannelMerger))}},Qe={colorSpace:"RGBA"},C=class extends o{op="ChannelSplitter";domain="visual";constructor(e={}){super(t("ChannelSplitter",Qe,e,a.ChannelSplitter))}},er={shadows:{cyanRed:0,magentaGreen:0,yellowBlue:0},midtones:{cyanRed:0,magentaGreen:0,yellowBlue:0},highlights:{cyanRed:0,magentaGreen:0,yellowBlue:0},preserveLuminosity:!0},E=class extends o{op="ColorBalance";domain="visual";constructor(e={}){super(t("ColorBalance",er,e,a.ColorBalance))}},rr={keyColor:"#00ff00",similarity:.4,smoothness:.1,spillSuppression:.2,colorSpace:"YUV",spillSuppressionType:"Desaturate"},A=class extends o{op="ColorKey";domain="visual";constructor(e={}){super(t("ColorKey",rr,e,a.ColorKey))}},or={levels:14,lineWidth:1.2,lineColor:"#2b1d0e",fill:"source",fillColor:"#f3ead8",smoothing:2},w=class extends o{op="Contour";domain="visual";constructor(e={}){super(t("Contour",or,e,a.Contour))}},ar={},R=class extends o{op="CornerPin";domain="visual";constructor(e={}){super(t("CornerPin",ar,e,a.CornerPin))}},tr={scanlines:.45,lineCount:540,curvature:.12,mask:.25,vignette:.35,noise:.08,flicker:.03,tracking:0,chroma:0},M=class extends o{op="CRT";domain="visual";constructor(e={}){super(t("CRT",tr,e,a.CRT))}},nr={keyframes:[],strength:1,bleed:0,warmup:48},D=class extends o{op="Datamosh";domain="visual";constructor(e={}){super(t("Datamosh",nr,e,a.Datamosh))}},lr={strengthX:50,strengthY:50,xChannel:"Red",yChannel:"Green",wrapMode:"Clamp"},k=class extends o{op="DisplacementMap";domain="visual";constructor(e={}){super(t("DisplacementMap",lr,e,a.DisplacementMap))}},ir={mode:"bayer",levels:2,scale:2,monochrome:!0,dark:"#111111",light:"#f2efe6"},B=class extends o{op="Dither";domain="visual";constructor(e={}){super(t("Dither",ir,e,a.Dither))}},sr={strategy:"deterministic",samplePoints:150},T=class extends o{op="ExtractLUT";domain="visual";constructor(e={}){super(t("ExtractLUT",sr,e,a.ExtractLUT))}},cr={horizontal:!0,vertical:!1,diagonal:!1,mode:"horizontal",symmetry:"none"},G=class extends o{op="Flip";domain="visual";constructor(e={}){super(t("Flip",cr,e,a.Flip))}},pr={radius:12,threshold:.5,softness:.04},I=class extends o{op="Gooey";domain="visual";constructor(e={}){super(t("Gooey",pr,e,a.Gooey))}},ur={strength:.6,scale:2,shift:0,mode:"relief"},H=class extends o{op="Iridescence";domain="visual";constructor(e={}){super(t("Iridescence",ur,e,a.Iridescence))}},dr={segments:6,rotation:0,centerX:.5,centerY:.5,zoom:1},L=class extends o{op="Kaleidoscope";domain="visual";constructor(e={}){super(t("Kaleidoscope",dr,e,a.Kaleidoscope))}},mr={keyframes:[],motionBlurSize:1.5,movementStyle:"spline",aspectRatio:"input"},O=class extends o{op="KenBurns";domain="visual";constructor(e={}){super(t("KenBurns",mr,e,a.KenBurns))}},br={dropShadow:{enabled:!1,color:"#000000",opacity:.75,angle:120,distance:10,spread:0,size:10,blendMode:"multiply"},innerShadow:{enabled:!1,color:"#000000",opacity:.75,angle:120,distance:5,choke:0,size:5,blendMode:"multiply"},outerGlow:{enabled:!1,color:"#ffffff",opacity:.75,size:15,spread:0,blendMode:"screen"},innerGlow:{enabled:!1,color:"#ffffff",opacity:.75,size:15,spread:0,blendMode:"screen"},stroke:{enabled:!1,size:2,position:"outside",color:"#ffffff",opacity:1,blendMode:"normal"},bevelEmboss:{enabled:!1,style:"InnerBevel",technique:"Smooth",depth:100,direction:"Up",size:5,soften:0,angle:120,altitude:30,highlightColor:"#ffffff",highlightOpacity:.75,shadowColor:"#000000",shadowOpacity:.75},colorOverlay:{enabled:!1,color:"#ff0000",opacity:1,blendMode:"normal"}},z=class extends o{op="LayerStyle";domain="visual";constructor(e={}){super(t("LayerStyle",br,e,a.LayerStyle))}},fr={operations:[]},F=class extends o{op="Liquify";domain="visual";constructor(e={}){super(t("Liquify",fr,e,a.Liquify))}},Pr={operation:"Union",radius:0,threshold:.5,clampMin:0,clampMax:1,channelA:"Alpha",channelB:"Alpha",binarize:!1,invertResult:!1,outputFormat:"WhiteWithAlpha"},V=class extends o{op="MaskMath";domain="visual";constructor(e={}){super(t("MaskMath",Pr,e,a.MaskMath))}},hr={cols:3,rows:3},q=class extends o{op="MeshWarp";domain="visual";constructor(e={}){super(t("MeshWarp",hr,e,a.MeshWarp))}},yr={noiseType:"Perlin",outputType:"Image",width:512,height:512,scale:10,octaves:4,persistence:.5,lacunarity:2,speed:1,colorStart:"#000000",colorEnd:"#ffffff",durationMs:5e3,fps:30},X=class extends o{op="NoiseGenerator";domain="visual";constructor(e={}){super(t("NoiseGenerator",yr,e,a.NoiseGenerator))}},gr={pattern:"stripes",frequency:48,angle:0,warp:.6,source:1,colorA:"#0a0a0a",colorB:"#f5f5f5"},K=class extends o{op="OpArt";domain="visual";constructor(e={}){super(t("OpArt",gr,e,a.OpArt))}},xr={width:1080,height:1080,maintainAspect:!0,backgroundColor:"#ffffff"},Y=class extends o{op="Paint";domain="visual";constructor(e={}){super(t("Paint",xr,e,a.Paint))}},vr={style:"oil",radius:5,edgeDarkening:.5,paper:.3,saturation:1.05},W=class extends o{op="Painterly";domain="visual";constructor(e={}){super(t("Painterly",vr,e,a.Painterly))}},Sr={centerX:.5,centerY:.5,offsetX:50,offsetY:0,radius:25,sourceRadius:25,feather:50,opacity:1,mode:"SeamlessHeal"},N=class extends o{op="PatchHeal";domain="visual";constructor(e={}){super(t("PatchHeal",Sr,e,a.PatchHeal))}},Cr={size:12,shape:"square",gap:0},U=class extends o{op="Pixelate";domain="visual";constructor(e={}){super(t("Pixelate",Cr,e,a.Pixelate))}},Er={levels:6,palette:"none",colors:[],dither:0,pixelSize:1},j=class extends o{op="Posterize";domain="visual";constructor(e={}){super(t("Posterize",Er,e,a.Posterize))}},Ar={effectType:"Smoke",outputType:"Video",width:1080,height:1080,density:.6,scale:.01,speed:1,intensity:.8,seed:1234,colorStart:"#ffffff",colorEnd:"#ff5500",durationMs:5e3,fps:30},$=class extends o{op="ProceduralVFX";domain="visual";constructor(e={}){super(t("ProceduralVFX",Ar,e,a.ProceduralVFX))}},wr={decontaminateAmount:.7,radius:2,smooth:5,feather:.5,shiftEdge:0,matteChannel:"Alpha",outputMode:"Composite"},Z=class extends o{op="RefineEdge";domain="visual";constructor(e={}){super(t("RefineEdge",wr,e,a.RefineEdge))}},Rr={ior:1.52,dispersion:.04,refractionScale:.5,causticBrightness:.6,causticScale:1,fluidRipples:0,rippleSpeed:1,roughness:0,specularIntensity:.8,lightPosX:.5,lightPosY:.2,tintColor:"#ffffff",tintStrength:0,depthInvert:!1,depthScale:1},_=class extends o{op="RefractionCaustics3D";domain="visual";constructor(e={}){super(t("RefractionCaustics3D",Rr,e,a.RefractionCaustics3D))}},Mr={aspectRatioPreset:"16:9",resolutionPreset:"1080p",targetWidth:1920,targetHeight:1080,fitMode:"contain",zoom:100,offsetX:0,offsetY:0,backgroundMode:"solid",backgroundColor:"#000000FF",backgroundColor2:"#000000FF",blurRadius:40,backgroundBrightness:.6,anchorX:"center",anchorY:"center"},J=class extends o{op="ResizerScaler";domain="visual";constructor(e={}){super(t("ResizerScaler",Mr,e,a.ResizerScaler))}},Dr={amount:8,angle:0,radial:!1},Q=class extends o{op="RGBSplit";domain="visual";constructor(e={}){super(t("RGBSplit",Dr,e,a.RGBSplit))}},kr={angle:90,fit:"cover",scale:1},ee=class extends o{op="Rotate";domain="visual";constructor(e={}){super(t("Rotate",kr,e,a.Rotate))}},Br={pan:0},re=class extends o{op="StereoPanning";domain="audio";constructor(e={}){super(t("StereoPanning",Br,e,a.StereoPanning))}},Tr={levels:4,edgeThreshold:.2,edgeWidth:1,edgeColor:"#111111",saturation:1.15},oe=class extends o{op="Toon";domain="visual";constructor(e={}){super(t("Toon",Tr,e,a.Toon))}},Gr={decay:.9,mode:"blend",zoom:1,rotation:0,offsetX:0,offsetY:0,hueShift:0,warmup:60},ae=class extends o{op="Trails";domain="visual";constructor(e={}){super(t("Trails",Gr,e,a.Trails))}},Ir={strength:50,radius:1,softness:.5,roundness:.5,centerX:.5,centerY:.5},te=class extends o{op="Vignette";domain="visual";constructor(e={}){super(t("Vignette",Ir,e,a.Vignette))}};function Hr(r){return{partialBlur:!0,centerX:r.center.x,centerY:r.center.y,radius:r.bounds.width.multiply(.55),radiusY:r.bounds.height.multiply(.55),shape:"ellipse",strength:r.active.multiply(25)}}var ne=class extends le{constructor(e={}){let{track:n,...l}=e;super(n?{...Hr(n),...Lr(l)}:l)}};function Lr(r){return Object.fromEntries(Object.entries(r).filter(([,e])=>e!==void 0))}p();var Or={ascii:r=>new b(r),audioCompressor:r=>new f(r),audioDelay:r=>new P(r),audioFade:r=>new h(r),audioNoiseGate:r=>new y(r),audioParametricEq:r=>new g(r),audioReverb:r=>new x(r),blur:r=>new ne(r),cameraParallax3D:r=>new v(r),channelMerger:r=>new S(r),channelSplitter:r=>new C(r),colorBalance:r=>new E(r),colorKey:r=>new A(r),contour:r=>new w(r),cornerPin:r=>new R(r),cRT:r=>new M(r),datamosh:r=>new D(r),displacementMap:r=>new k(r),dither:r=>new B(r),extractLUT:r=>new T(r),flip:r=>new G(r),gooey:r=>new I(r),iridescence:r=>new H(r),kaleidoscope:r=>new L(r),kenBurns:r=>new O(r),layerStyle:r=>new z(r),liquify:r=>new F(r),maskMath:r=>new V(r),meshWarp:r=>new q(r),noiseGenerator:r=>new X(r),opArt:r=>new K(r),paint:r=>new Y(r),painterly:r=>new W(r),patchHeal:r=>new N(r),pixelate:r=>new U(r),posterize:r=>new j(r),proceduralVFX:r=>new $(r),refineEdge:r=>new Z(r),refractionCaustics3D:r=>new _(r),resizerScaler:r=>new J(r),rGBSplit:r=>new Q(r),rotate:r=>new ee(r),stereoPanning:r=>new re(r),toon:r=>new oe(r),trails:r=>new ae(r),vignette:r=>new te(r)};var fe=class extends o{op="Levels";domain="visual";constructor(e={}){let n={inBlack:0,inWhite:1,outBlack:0,outWhite:1};super({master:e.master??{...n},red:e.red??{...n},green:e.green??{...n},blue:e.blue??{...n},...e})}},Pe=class extends o{op="FilmGrain";domain="visual";constructor(e={}){super({strength:e.strength??15,size:e.size??1.5,monochrome:e.monochrome??!0,animated:e.animated??!0,speed:e.speed??50,shadows:e.shadows??.2,midtones:e.midtones??1,highlights:e.highlights??.2,...e})}},he=class extends o{op;domain="visual";constructor(e,n={}){super(n),this.op=e}},ye=class extends o{op="AudioSignalExtractor";domain="audio";constructor(e={}){super({extractionMode:e.extractionMode??"rms_envelope",attackMs:e.attackMs??10,releaseMs:e.releaseMs??120,sensitivity:e.sensitivity??1,noiseFloorDb:e.noiseFloorDb??-48,dynamicRangeDb:e.dynamicRangeDb??48,autoRange:e.autoRange??!0,smoothing:e.smoothing??.15,curve:e.curve??"linear",beatThreshold:e.beatThreshold??.08,beatDecayMs:e.beatDecayMs??80,previewMode:e.previewMode??"envelope",nodeId:e.nodeId??"audio_extractor",...e})}async extract(e,n={}){return pe.extract(e,{extractionMode:this.extractionMode,attackMs:this.attackMs,releaseMs:this.releaseMs,sensitivity:this.sensitivity,noiseFloorDb:this.noiseFloorDb,dynamicRangeDb:this.dynamicRangeDb,smoothing:this.smoothing,curve:this.curve,beatThreshold:this.beatThreshold,beatDecayMs:this.beatDecayMs,previewMode:this.previewMode,...n})}},ge=class extends o{op="Curves";domain="visual";constructor(e={}){super({...e,curveType:e.curveType??"rgb",master:e.master??[{x:0,y:0},{x:1,y:1}],red:e.red??[{x:0,y:0},{x:1,y:1}],green:e.green??[{x:0,y:0},{x:1,y:1}],blue:e.blue??[{x:0,y:0},{x:1,y:1}],hueVsHue:e.hueVsHue??[{x:0,y:.5},{x:1,y:.5}],hueVsSat:e.hueVsSat??[{x:0,y:1},{x:1,y:1}],lumVsSat:e.lumVsSat??[{x:0,y:1},{x:1,y:1}],satVsSat:e.satVsSat??[{x:0,y:1},{x:1,y:1}]})}},xe=class extends o{op="SelectiveColor";domain="visual";constructor(e={}){let n={cyan:0,magenta:0,yellow:0,black:0};super({...e,method:e.method??"Relative",reds:{...n,...e.reds},yellows:{...n,...e.yellows},greens:{...n,...e.greens},cyans:{...n,...e.cyans},blues:{...n,...e.blues},magentas:{...n,...e.magentas},whites:{...n,...e.whites},neutrals:{...n,...e.neutrals},blacks:{...n,...e.blacks}})}},ve=class extends o{op="GradientMap";domain="visual";constructor(e={}){let n=[{position:0,color:"#000000"},{position:1,color:"#ffffff"}];super({...e,stops:e.stops??n,smooth:e.smooth??!0,dither:e.dither??!0,opacity:e.opacity??1})}},Se=class extends o{op="ShadowsHighlights";domain="visual";constructor(e={}){super({...e,shadowAmount:e.shadowAmount??0,shadowTonalWidth:e.shadowTonalWidth??50,shadowRadius:e.shadowRadius??30,highlightAmount:e.highlightAmount??0,highlightTonalWidth:e.highlightTonalWidth??50,highlightRadius:e.highlightRadius??30,colorCorrection:e.colorCorrection??0,midtoneContrast:e.midtoneContrast??0})}},Ce=class extends o{op="ApplyLUT";domain="visual";constructor(e={}){super({...e,lutUrl:e.lutUrl??"",intensity:e.intensity??1})}},Ee=class extends o{op="UnsharpMask";domain="visual";constructor(e={}){super({...e,amount:e.amount??100,radius:e.radius??1.5,threshold:e.threshold??3})}},Ae=class extends o{op="HighPass";domain="visual";constructor(e={}){super({...e,radius:e.radius??3,contrastBoost:e.contrastBoost??1,monochrome:e.monochrome??!0})}},we=class extends o{op="HalftoneScreen";domain="visual";constructor(e={}){super({...e,mode:e.mode??"Monochrome",dotShape:e.dotShape??"Circle",frequency:e.frequency??30,angle:e.angle??45,contrast:e.contrast??1,dotColor:e.dotColor??"#000000",paperColor:e.paperColor??"#ffffff",smooth:e.smooth??!0,invert:e.invert??!1,cyanAngle:e.cyanAngle??15,magentaAngle:e.magentaAngle??75,yellowAngle:e.yellowAngle??0,blackAngle:e.blackAngle??45,opacity:e.opacity??1})}},Re=class extends o{op="TileOffset";domain="visual";constructor(e={}){super({...e,offsetX:e.offsetX??0,offsetY:e.offsetY??0,wrap:e.wrap??!0,edgeMode:e.edgeMode??"wrap"})}},Me=class extends o{op="MotionBlur";domain="visual";constructor(e={}){super({...e,shutterAngle:e.shutterAngle??180,samples:e.samples??16,maxVelocity:e.maxVelocity??64,shutterCurve:e.shutterCurve??"gaussian",depthAware:e.depthAware??!0})}},De=class extends o{op="SSAO";domain="visual";constructor(e={}){super({...e,radius:e.radius??45,bias:e.bias??.025,intensity:e.intensity??1.5,kernelSamples:e.kernelSamples??16,blurRadius:e.blurRadius??4})}},ke=class extends o{op="PBRGlass";domain="visual";constructor(e={}){super({...e,ior:e.ior??1.49,roughness:e.roughness??.15,transmission:e.transmission??.92,dispersion:e.dispersion??.015,fresnelPower:e.fresnelPower??5,tintColor:e.tintColor??"#ffffff"})}},Be=class extends o{op="DepthOfField";domain="visual";constructor(e={}){super({...e,focusDistance:e.focusDistance??500,focalLength:e.focalLength??50,aperture:e.aperture??2.8,maxBlur:e.maxBlur??16,quality:e.quality??"high"})}},Te=class extends o{op="Crop";domain="visual";constructor(e={}){super({cropType:e.cropType??"rect",leftPercentage:e.leftPercentage??0,topPercentage:e.topPercentage??0,widthPercentage:e.widthPercentage??100,heightPercentage:e.heightPercentage??100,roundness:e.roundness??0,...e})}},Ge=class extends o{op="Vision";domain="visual";constructor(e={}){super({enableDetection:e.enableDetection!==!1,enableSegmentation:e.enableSegmentation===!0,enablePose:e.enablePose===!0,enableMatte:e.enableMatte===!0,confidence:e.confidence??.3,variant:e.variant??"s",mode:e.mode??"passthrough",matteSource:e.matteSource??"instance",...e})}},Ie=class extends o{op="Relight3D";domain="visual";constructor(e={}){super({lightType:e.lightType??"Point",intensity:e.intensity??1,lightPosX:e.lightPosX??.5,lightPosY:e.lightPosY??.5,lightPosZ:e.lightPosZ??.3,lightRadius:e.lightRadius??.8,spotConeAngle:e.spotConeAngle??45,specularRoughness:e.specularRoughness??.35,specularStrength:e.specularStrength??.7,metallic:e.metallic??0,ambientIntensity:e.ambientIntensity??.4,volumetricDensity:e.volumetricDensity??.2,depthScale:e.depthScale??1,depthInvert:e.depthInvert??!1,lightColor:e.lightColor??"#ffffff",ambientColor:e.ambientColor??"#ffffff",normalMap:e.normalMap,...e})}},He=class extends o{op="TemporalDeflicker";domain="visual";constructor(e={}){super({blendWeight:e.blendWeight??.35,disocclusionThreshold:e.disocclusionThreshold??.15,maxMotionPixels:e.maxMotionPixels??64,scale:e.scale??.5,windowSize:e.windowSize??2,...e})}},Le=class extends o{op="Modulate";domain="visual";constructor(e={}){super({hue:e.hue??0,brightness:e.brightness??1,contrast:e.contrast??1,exposure:e.exposure??0,saturation:e.saturation??1,sepia:e.sepia??0,...e})}};export{a,b,f as c,P as d,h as e,y as f,g,x as h,v as i,S as j,C as k,E as l,A as m,w as n,R as o,M as p,D as q,k as r,B as s,T as t,G as u,I as v,H as w,L as x,O as y,z,F as A,V as B,q as C,X as D,K as E,Y as F,W as G,N as H,U as I,j as J,$ as K,Z as L,_ as M,J as N,Q as O,ee as P,re as Q,oe as R,ae as S,te as T,ne as U,Or as V,fe as W,Pe as X,he as Y,ye as Z,ge as _,xe as $,ve as aa,Se as ba,Ce as ca,Ee as da,Ae as ea,we as fa,Re as ga,Me as ha,De as ia,ke as ja,Be as ka,Te as la,Ge as ma,Ie as na,He as oa,Le as pa};