framefields 2.6.1 → 2.7.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 (471) hide show
  1. package/dist/audio/index.d.mts +4 -4
  2. package/dist/audio/index.mjs +10 -10
  3. package/dist/{audio-CYrO9q9P.mjs → audio-j3ttoRDX.mjs} +4 -4
  4. package/dist/{audio-CYrO9q9P.mjs.map → audio-j3ttoRDX.mjs.map} +1 -1
  5. package/dist/{audio-B5mdR8vv.d.mts → audio-tL8CcPra.d.mts} +3 -3
  6. package/dist/{audio-B5mdR8vv.d.mts.map → audio-tL8CcPra.d.mts.map} +1 -1
  7. package/dist/components/index.d.mts +10 -10
  8. package/dist/components/index.mjs +44 -44
  9. package/dist/{dist-cC6nOaMR.mjs → dist-BHTd-EC1.mjs} +164 -34
  10. package/dist/dist-BHTd-EC1.mjs.map +1 -0
  11. package/dist/{dist-DSKhnhDk.mjs → dist-BM0ilHvQ.mjs} +115 -21
  12. package/dist/dist-BM0ilHvQ.mjs.map +1 -0
  13. package/dist/{dist-D021IFfp.mjs → dist-BRXsfWKQ.mjs} +444 -8
  14. package/dist/dist-BRXsfWKQ.mjs.map +1 -0
  15. package/dist/{dist-BPOi5xb_.mjs → dist-CPtFZxtu.mjs} +2 -2
  16. package/dist/{dist-BPOi5xb_.mjs.map → dist-CPtFZxtu.mjs.map} +1 -1
  17. package/dist/effects/index.d.mts +4 -4
  18. package/dist/effects/index.mjs +35 -35
  19. package/dist/{effects-Dvdwndk0.mjs → effects-Dy661XS_.mjs} +3 -3
  20. package/dist/{effects-Dvdwndk0.mjs.map → effects-Dy661XS_.mjs.map} +1 -1
  21. package/dist/fonts/index.mjs +2 -2
  22. package/dist/{fonts-B6a4CyoM.mjs → fonts-BcFhAqqO.mjs} +2 -2
  23. package/dist/{fonts-B6a4CyoM.mjs.map → fonts-BcFhAqqO.mjs.map} +1 -1
  24. package/dist/{gpu-CrQADlcf.mjs → gpu-zIhSz_0X.mjs} +2 -2
  25. package/dist/{gpu-CrQADlcf.mjs.map → gpu-zIhSz_0X.mjs.map} +1 -1
  26. package/dist/{index-ocZc12ZS.d.mts → index-B1ENegOQ.d.mts} +224 -2
  27. package/dist/index-B1ENegOQ.d.mts.map +1 -0
  28. package/dist/{index-D-Gnyffj.d.mts → index-CJRTBLZ4.d.mts} +4 -4
  29. package/dist/{index-D-Gnyffj.d.mts.map → index-CJRTBLZ4.d.mts.map} +1 -1
  30. package/dist/{index-BhzlG_1Q.d.mts → index-Cg30slle.d.mts} +2 -2
  31. package/dist/{index-BhzlG_1Q.d.mts.map → index-Cg30slle.d.mts.map} +1 -1
  32. package/dist/{index-B4o6F1JC.d.mts → index-DeeMmoEA.d.mts} +2 -2
  33. package/dist/{index-B4o6F1JC.d.mts.map → index-DeeMmoEA.d.mts.map} +1 -1
  34. package/dist/{index-CWG19cm-.d.mts → index-ePGQ_C7f.d.mts} +39 -16
  35. package/dist/index-ePGQ_C7f.d.mts.map +1 -0
  36. package/dist/{index-o8LxWdwz.d.mts → index-l1yRugLc.d.mts} +3 -3
  37. package/dist/{index-o8LxWdwz.d.mts.map → index-l1yRugLc.d.mts.map} +1 -1
  38. package/dist/{index-3Vdef2KE.d.mts → index-uDZ9Yuv-.d.mts} +5 -8
  39. package/dist/index-uDZ9Yuv-.d.mts.map +1 -0
  40. package/dist/index.d.mts +11 -11
  41. package/dist/index.mjs +53 -53
  42. package/dist/preview/index.d.mts +3 -3
  43. package/dist/preview/index.mjs +10 -10
  44. package/dist/{preview-OTsGYyOU.mjs → preview-IpdVFuxv.mjs} +3 -2
  45. package/dist/{preview-OTsGYyOU.mjs.map → preview-IpdVFuxv.mjs.map} +1 -1
  46. package/dist/preview-engine/audio.mjs +1 -1
  47. package/dist/preview-engine/{chunk-RF62TV3G.mjs → chunk-25WRUINA.mjs} +1 -1
  48. package/dist/preview-engine/{chunk-MMVFX42U.mjs → chunk-2AEWPT6Y.mjs} +1 -1
  49. package/dist/preview-engine/{chunk-IIOHF7MH.mjs → chunk-2MDTUA3W.mjs} +1 -1
  50. package/dist/preview-engine/{chunk-KWTTANYN.mjs → chunk-2TLABBER.mjs} +1 -1
  51. package/dist/preview-engine/{chunk-MUOJMF7M.mjs → chunk-3QOJVABU.mjs} +1 -1
  52. package/dist/preview-engine/{chunk-RDEQ4LQU.mjs → chunk-4Q3ZUTQC.mjs} +1 -1
  53. package/dist/preview-engine/{chunk-OXXRKNHW.mjs → chunk-5BXCJ2QX.mjs} +1 -1
  54. package/dist/preview-engine/{chunk-JTT3YX7W.mjs → chunk-5R4UF7YK.mjs} +1 -1
  55. package/dist/preview-engine/{chunk-4C26NVQY.mjs → chunk-6THE6J3A.mjs} +1 -1
  56. package/dist/preview-engine/{chunk-SVE3XWO7.mjs → chunk-6VDYWMP5.mjs} +1 -1
  57. package/dist/preview-engine/{chunk-ULPLHKM2.mjs → chunk-7B7QQDPZ.mjs} +1 -1
  58. package/dist/preview-engine/{chunk-ULVX4VYT.mjs → chunk-7ZA36EZE.mjs} +1 -1
  59. package/dist/preview-engine/{chunk-LYSU6S4O.mjs → chunk-AJ6BVUDB.mjs} +1 -1
  60. package/dist/preview-engine/{chunk-J24VHZS6.mjs → chunk-BDXGUSSF.mjs} +1 -1
  61. package/dist/preview-engine/{chunk-B7J72YSP.mjs → chunk-CC5V7UBF.mjs} +1 -1
  62. package/dist/preview-engine/{chunk-JD4TBC6Z.mjs → chunk-CP42LYD7.mjs} +1 -1
  63. package/dist/preview-engine/{chunk-LN3YAWUD.mjs → chunk-DJWDD3OE.mjs} +1 -1
  64. package/dist/preview-engine/{chunk-V3FODTPI.mjs → chunk-DZEWY4PR.mjs} +22 -22
  65. package/dist/preview-engine/{chunk-RKNV5N7D.mjs → chunk-ENGQ55LR.mjs} +1 -1
  66. package/dist/preview-engine/{chunk-AGLAJGQJ.mjs → chunk-FBXKVLTB.mjs} +14 -14
  67. package/dist/preview-engine/{chunk-MJCK5FLZ.mjs → chunk-FMEXTHL7.mjs} +1 -1
  68. package/dist/preview-engine/{chunk-UEQIO6AH.mjs → chunk-FQ7UCMWR.mjs} +1 -1
  69. package/dist/preview-engine/{chunk-TPFDAOW7.mjs → chunk-FRIBHQTM.mjs} +1 -1
  70. package/dist/preview-engine/chunk-FT7HJ6IE.mjs +3 -0
  71. package/dist/preview-engine/{chunk-YEPYVASB.mjs → chunk-G3UOUGIE.mjs} +1 -1
  72. package/dist/preview-engine/{chunk-4JX5LBE2.mjs → chunk-H4GDIVX4.mjs} +1 -1
  73. package/dist/preview-engine/{chunk-LHCEQ77S.mjs → chunk-HU73APZL.mjs} +1 -1
  74. package/dist/preview-engine/{chunk-DDFWN7DI.mjs → chunk-I7QIQURU.mjs} +1 -1
  75. package/dist/preview-engine/{chunk-3KHD67Q3.mjs → chunk-ID344UBN.mjs} +1 -1
  76. package/dist/preview-engine/{chunk-5NT7WWJR.mjs → chunk-IGCXUGHT.mjs} +1 -1
  77. package/dist/preview-engine/{chunk-QPBTLJ5W.mjs → chunk-IK3YA6MC.mjs} +1 -1
  78. package/dist/preview-engine/chunk-J5SKQFJ6.mjs +1 -0
  79. package/dist/preview-engine/{chunk-Q7JN4EHX.mjs → chunk-JOPZNSZJ.mjs} +1 -1
  80. package/dist/preview-engine/{chunk-SQ52PBF3.mjs → chunk-JOSNIMFT.mjs} +1 -1
  81. package/dist/preview-engine/{chunk-SXNCNG4L.mjs → chunk-JR443L5E.mjs} +1 -1
  82. package/dist/preview-engine/{chunk-FZLKPBKS.mjs → chunk-KCAFMWDM.mjs} +1 -1
  83. package/dist/preview-engine/{chunk-QRYCB6E3.mjs → chunk-LAEPNVOE.mjs} +1 -1
  84. package/dist/preview-engine/chunk-MAALUQK3.mjs +1974 -0
  85. package/dist/preview-engine/chunk-MHCXSWK7.mjs +1 -0
  86. package/dist/preview-engine/{chunk-4INGTMZ5.mjs → chunk-MWBARRK2.mjs} +1 -1
  87. package/dist/preview-engine/chunk-MXK2PP6K.mjs +1 -0
  88. package/dist/preview-engine/{chunk-GQIRV466.mjs → chunk-MXPN2GB7.mjs} +1 -1
  89. package/dist/preview-engine/{chunk-W2EZFV4Q.mjs → chunk-NHYB5YC3.mjs} +1 -1
  90. package/dist/preview-engine/{chunk-K3IMPV6T.mjs → chunk-PXSKIGAP.mjs} +6 -6
  91. package/dist/preview-engine/{chunk-SP22JWN2.mjs → chunk-PYM2FBFA.mjs} +1 -1
  92. package/dist/preview-engine/chunk-QDTJ4MOJ.mjs +1 -0
  93. package/dist/preview-engine/{chunk-6PMATELR.mjs → chunk-RQU2GFGH.mjs} +1 -1
  94. package/dist/preview-engine/{chunk-UQD2UE6I.mjs → chunk-RWDPBES3.mjs} +1 -1
  95. package/dist/preview-engine/{chunk-QVW5METG.mjs → chunk-S5ONWSZF.mjs} +1 -1
  96. package/dist/preview-engine/{chunk-2YGR5YCN.mjs → chunk-SIU6JU2R.mjs} +1 -1
  97. package/dist/preview-engine/{chunk-NQZRPPUU.mjs → chunk-SJ3Q4AQP.mjs} +1 -1
  98. package/dist/preview-engine/{chunk-Q6CRERSJ.mjs → chunk-T36SKUWK.mjs} +9 -9
  99. package/dist/preview-engine/chunk-TEBZRQPG.mjs +1 -0
  100. package/dist/preview-engine/{chunk-WDWHOXSA.mjs → chunk-UUDML2SN.mjs} +1 -1
  101. package/dist/preview-engine/{chunk-RHXZXWJ4.mjs → chunk-VAS4IJZR.mjs} +1 -1
  102. package/dist/preview-engine/{chunk-DOCFOSA6.mjs → chunk-WTDK6H46.mjs} +1 -1
  103. package/dist/preview-engine/chunk-XNMEVVQB.mjs +1 -0
  104. package/dist/preview-engine/{chunk-AKT4YQWL.mjs → chunk-YVGT4NK6.mjs} +2 -2
  105. package/dist/preview-engine/{chunk-ZGMA27IG.mjs → chunk-ZR4QFIJR.mjs} +1 -1
  106. package/dist/preview-engine/chunk-ZYTXBBIX.mjs +1 -0
  107. package/dist/preview-engine/components.mjs +1 -1
  108. package/dist/preview-engine/effects.mjs +1 -1
  109. package/dist/preview-engine/fonts.mjs +1 -1
  110. package/dist/preview-engine/framefields.mjs +1 -1
  111. package/dist/preview-engine/player.mjs +2 -2
  112. package/dist/preview-engine/{renderers-FC7G7KU7.mjs → renderers-2AKYMAIK.mjs} +1 -1
  113. package/dist/preview-engine/renderers-363CKEIG.mjs +1 -0
  114. package/dist/preview-engine/{renderers-EJGF3PYQ.mjs → renderers-36L24ZVS.mjs} +1 -1
  115. package/dist/preview-engine/renderers-3FMMVDMA.mjs +1 -0
  116. package/dist/preview-engine/{renderers-56TGEFDK.mjs → renderers-44AANAXR.mjs} +1 -1
  117. package/dist/preview-engine/renderers-4UUU62VV.mjs +1 -0
  118. package/dist/preview-engine/renderers-4ZTZFSAR.mjs +1 -0
  119. package/dist/preview-engine/{renderers-PYDOSDEY.mjs → renderers-5ZSB75GY.mjs} +1 -1
  120. package/dist/preview-engine/renderers-6KDD75BM.mjs +1 -0
  121. package/dist/preview-engine/renderers-7BJRD4G2.mjs +1 -0
  122. package/dist/preview-engine/{renderers-HBIBRZD7.mjs → renderers-AIIHGDJM.mjs} +1 -1
  123. package/dist/preview-engine/{renderers-P2FTCDZ7.mjs → renderers-AU746ORP.mjs} +1 -1
  124. package/dist/preview-engine/renderers-BIF2BETK.mjs +1 -0
  125. package/dist/preview-engine/{renderers-FD3ZT73R.mjs → renderers-BTQCHVHV.mjs} +1 -1
  126. package/dist/preview-engine/{renderers-HMNCIEU3.mjs → renderers-CFHBOAZG.mjs} +1 -1
  127. package/dist/preview-engine/renderers-CU5RW5UA.mjs +1 -0
  128. package/dist/preview-engine/renderers-DK5OBTKE.mjs +1 -0
  129. package/dist/preview-engine/renderers-EAKCDGTY.mjs +1 -0
  130. package/dist/preview-engine/{renderers-FYI6QNUH.mjs → renderers-EGBGC7MU.mjs} +1 -1
  131. package/dist/preview-engine/renderers-EVXCU7G7.mjs +1 -0
  132. package/dist/preview-engine/renderers-EXEYEH3F.mjs +1 -0
  133. package/dist/preview-engine/{renderers-RDHHVXRE.mjs → renderers-EXJDPS3T.mjs} +1 -1
  134. package/dist/preview-engine/renderers-F3WALPWI.mjs +1 -0
  135. package/dist/preview-engine/{renderers-4RVSLTCX.mjs → renderers-FS3EOB4J.mjs} +1 -1
  136. package/dist/preview-engine/{renderers-C3YXNKNM.mjs → renderers-GUL2MXDD.mjs} +1 -1
  137. package/dist/preview-engine/{renderers-EQDINUMT.mjs → renderers-H4HC44B5.mjs} +1 -1
  138. package/dist/preview-engine/renderers-H6565HO4.mjs +1 -0
  139. package/dist/preview-engine/renderers-HT5V6OZ2.mjs +1 -0
  140. package/dist/preview-engine/renderers-HXMOARWO.mjs +1 -0
  141. package/dist/preview-engine/renderers-HZ2Q7BGK.mjs +1 -0
  142. package/dist/preview-engine/renderers-I4N2K2KW.mjs +1 -0
  143. package/dist/preview-engine/renderers-I5J7U6CB.mjs +1 -0
  144. package/dist/preview-engine/renderers-IZV6QXR5.mjs +1 -0
  145. package/dist/preview-engine/renderers-JWGAPHWX.mjs +1 -0
  146. package/dist/preview-engine/renderers-KNDSVQTY.mjs +1 -0
  147. package/dist/preview-engine/renderers-KNDUOO6M.mjs +1 -0
  148. package/dist/preview-engine/renderers-KQAO3QEI.mjs +1 -0
  149. package/dist/preview-engine/{renderers-7SW2AHM2.mjs → renderers-LCSQLXRD.mjs} +1 -1
  150. package/dist/preview-engine/renderers-M34LOEHC.mjs +1 -0
  151. package/dist/preview-engine/renderers-ML6GNCWB.mjs +1 -0
  152. package/dist/preview-engine/renderers-NARG274F.mjs +1 -0
  153. package/dist/preview-engine/renderers-NCFPOSWR.mjs +1 -0
  154. package/dist/preview-engine/{renderers-ZAMSS7QN.mjs → renderers-PCOTECQB.mjs} +1 -1
  155. package/dist/preview-engine/renderers-PG5JHI2S.mjs +1 -0
  156. package/dist/preview-engine/{renderers-LTV5RFDJ.mjs → renderers-Q7MNLQJF.mjs} +1 -1
  157. package/dist/preview-engine/{renderers-GHP7SL5M.mjs → renderers-QXVSJYZL.mjs} +1 -1
  158. package/dist/preview-engine/{renderers-H2UI7YEO.mjs → renderers-R3ERZ3ZY.mjs} +1 -1
  159. package/dist/preview-engine/renderers-RXQKV65L.mjs +1 -0
  160. package/dist/preview-engine/renderers-SA73GD2B.mjs +1 -0
  161. package/dist/preview-engine/renderers-SLIXUHNX.mjs +1 -0
  162. package/dist/preview-engine/renderers-T462JZNA.mjs +1 -0
  163. package/dist/preview-engine/{renderers-LV6LLULR.mjs → renderers-TH2XZAYW.mjs} +1 -1
  164. package/dist/preview-engine/{renderers-ART3EGSZ.mjs → renderers-UHZIERVH.mjs} +1 -1
  165. package/dist/preview-engine/renderers-V7CFVGYK.mjs +1 -0
  166. package/dist/preview-engine/renderers-VY5E7BPK.mjs +1 -0
  167. package/dist/preview-engine/{renderers-ZDMDDWLN.mjs → renderers-WKXGELRG.mjs} +1 -1
  168. package/dist/preview-engine/{renderers-GY4R467B.mjs → renderers-WLDIIFR5.mjs} +1 -1
  169. package/dist/preview-engine/{renderers-NTKSN32T.mjs → renderers-WM6WBRH6.mjs} +1 -1
  170. package/dist/preview-engine/renderers-WT5FQZM7.mjs +228 -0
  171. package/dist/preview-engine/{renderers-YK74777T.mjs → renderers-WTKRLNNR.mjs} +1 -1
  172. package/dist/preview-engine/{renderers-BWRNCXR6.mjs → renderers-X6GKEVP7.mjs} +1 -1
  173. package/dist/preview-engine/renderers-Y47N5EYR.mjs +1 -0
  174. package/dist/preview-engine/renderers-Y4CUVZYI.mjs +1 -0
  175. package/dist/preview-engine/renderers-Y6YC7ZAK.mjs +1 -0
  176. package/dist/preview-engine/renderers-Y6ZYUAQG.mjs +1 -0
  177. package/dist/preview-engine/{renderers-YBTWN76S.mjs → renderers-YRWXYT5A.mjs} +1 -1
  178. package/dist/preview-engine/{renderers-SY435YU3.mjs → renderers-YWC4MXPG.mjs} +1 -1
  179. package/dist/preview-engine/{renderers-7GMW52G3.mjs → renderers-ZWNPYZN6.mjs} +1 -1
  180. package/dist/preview-engine/signals.mjs +1 -1
  181. package/dist/{program-W4CWO2bp.mjs → program-KPBfq9tw.mjs} +95 -21
  182. package/dist/program-KPBfq9tw.mjs.map +1 -0
  183. package/dist/registry/index.json +1 -1
  184. package/dist/registry/lower-third.json +1 -1
  185. package/dist/registry/terminal.json +1 -1
  186. package/dist/registry/text-reveal.json +2 -2
  187. package/dist/registry/title-card.json +1 -1
  188. package/dist/renderer/index.d.mts +2 -2
  189. package/dist/renderer/index.mjs +2 -2
  190. package/dist/{renderer-CX4rvqm9.mjs → renderer-1-FLx8kd.mjs} +3 -3
  191. package/dist/{renderer-CX4rvqm9.mjs.map → renderer-1-FLx8kd.mjs.map} +1 -1
  192. package/dist/{renderer-BIMm7lYG.mjs → renderer-47d3etrX.mjs} +4 -4
  193. package/dist/{renderer-BIMm7lYG.mjs.map → renderer-47d3etrX.mjs.map} +1 -1
  194. package/dist/{renderer-CPtyQrJI.mjs → renderer-6GCG6JxD.mjs} +3 -3
  195. package/dist/{renderer-CPtyQrJI.mjs.map → renderer-6GCG6JxD.mjs.map} +1 -1
  196. package/dist/{renderer-BE6K88VR.mjs → renderer-8BIDdgjt.mjs} +3 -3
  197. package/dist/{renderer-BE6K88VR.mjs.map → renderer-8BIDdgjt.mjs.map} +1 -1
  198. package/dist/renderer-B-5TlncB.mjs +5 -0
  199. package/dist/{renderer-FgP_1OgD.mjs → renderer-B1yzSbvC.mjs} +4 -4
  200. package/dist/{renderer-FgP_1OgD.mjs.map → renderer-B1yzSbvC.mjs.map} +1 -1
  201. package/dist/{renderer-158rymL0.mjs → renderer-B2YiXpp-.mjs} +2 -2
  202. package/dist/{renderer-158rymL0.mjs.map → renderer-B2YiXpp-.mjs.map} +1 -1
  203. package/dist/{renderer-eQP0fvgc.mjs → renderer-B55ljMI_.mjs} +2 -2
  204. package/dist/{renderer-eQP0fvgc.mjs.map → renderer-B55ljMI_.mjs.map} +1 -1
  205. package/dist/{renderer-Duorbrb8.mjs → renderer-B6Tg4UgH.mjs} +4 -4
  206. package/dist/{renderer-Duorbrb8.mjs.map → renderer-B6Tg4UgH.mjs.map} +1 -1
  207. package/dist/{renderer-DmrP4dsn.mjs → renderer-BFnf-8Yt.mjs} +3 -3
  208. package/dist/{renderer-DmrP4dsn.mjs.map → renderer-BFnf-8Yt.mjs.map} +1 -1
  209. package/dist/{renderer-CLP6Lm7y.mjs → renderer-BGHHoPiD.mjs} +2 -2
  210. package/dist/{renderer-BO5u8eFS.mjs → renderer-BHUjPi24.mjs} +2 -2
  211. package/dist/{renderer-BO5u8eFS.mjs.map → renderer-BHUjPi24.mjs.map} +1 -1
  212. package/dist/renderer-BHXtDg5_.mjs +3 -0
  213. package/dist/{renderer-HPBahXjt.mjs → renderer-BIk67-jU.mjs} +2 -2
  214. package/dist/{renderer-HPBahXjt.mjs.map → renderer-BIk67-jU.mjs.map} +1 -1
  215. package/dist/{renderer-C-dcd14F.d.mts → renderer-BLEmr0Lt.d.mts} +2 -2
  216. package/dist/{renderer-C-dcd14F.d.mts.map → renderer-BLEmr0Lt.d.mts.map} +1 -1
  217. package/dist/{renderer-tYmQUp4d.mjs → renderer-BLs5sDdk.mjs} +3 -3
  218. package/dist/{renderer-tYmQUp4d.mjs.map → renderer-BLs5sDdk.mjs.map} +1 -1
  219. package/dist/renderer-BPd3gvEt.mjs +5 -0
  220. package/dist/{renderer-BiH29MS6.mjs → renderer-BXul0Wy6.mjs} +3 -3
  221. package/dist/{renderer-BiH29MS6.mjs.map → renderer-BXul0Wy6.mjs.map} +1 -1
  222. package/dist/{renderer-DVdRzDwX.mjs → renderer-B_1SLBPa.mjs} +3 -3
  223. package/dist/{renderer-DVdRzDwX.mjs.map → renderer-B_1SLBPa.mjs.map} +1 -1
  224. package/dist/renderer-B_ep98BH.mjs +5 -0
  225. package/dist/renderer-Ba_KUbKW.mjs +5 -0
  226. package/dist/{renderer-dX7Fy1NR.mjs → renderer-BbyNUjE_.mjs} +3 -3
  227. package/dist/{renderer-dX7Fy1NR.mjs.map → renderer-BbyNUjE_.mjs.map} +1 -1
  228. package/dist/{renderer-0n4A8P2_.mjs → renderer-BcVr_cIk.mjs} +2 -2
  229. package/dist/{renderer-0n4A8P2_.mjs.map → renderer-BcVr_cIk.mjs.map} +1 -1
  230. package/dist/renderer-BeL2hstU.mjs +5 -0
  231. package/dist/renderer-Bj81osPQ.mjs +5 -0
  232. package/dist/{renderer-ZM2jwJbX.mjs → renderer-BjL7sKGU.mjs} +3 -3
  233. package/dist/{renderer-ZM2jwJbX.mjs.map → renderer-BjL7sKGU.mjs.map} +1 -1
  234. package/dist/{renderer-Bh7d3RSt.mjs → renderer-BjNcuJ4H.mjs} +3 -3
  235. package/dist/{renderer-Bh7d3RSt.mjs.map → renderer-BjNcuJ4H.mjs.map} +1 -1
  236. package/dist/{renderer-Sdsy27LH.mjs → renderer-Br8aDmf0.mjs} +2 -2
  237. package/dist/renderer-BvZQngSm.mjs +5 -0
  238. package/dist/renderer-BxgN8oXx.mjs +5 -0
  239. package/dist/{renderer-BQ-pHSPI.mjs → renderer-ByOvGGzp.mjs} +3 -3
  240. package/dist/{renderer-BQ-pHSPI.mjs.map → renderer-ByOvGGzp.mjs.map} +1 -1
  241. package/dist/{renderer-KkDYCAkn.mjs → renderer-C11qLlrz.mjs} +3 -3
  242. package/dist/{renderer-KkDYCAkn.mjs.map → renderer-C11qLlrz.mjs.map} +1 -1
  243. package/dist/{renderer-D52KWsb8.mjs → renderer-C5dyPQjG.mjs} +3 -3
  244. package/dist/{renderer-D52KWsb8.mjs.map → renderer-C5dyPQjG.mjs.map} +1 -1
  245. package/dist/renderer-C5jDrTBc.mjs +5 -0
  246. package/dist/{renderer-DTKtkgTO.mjs → renderer-C6TbU8U5.mjs} +3 -3
  247. package/dist/{renderer-DTKtkgTO.mjs.map → renderer-C6TbU8U5.mjs.map} +1 -1
  248. package/dist/{renderer-aT6MUYPr.mjs → renderer-C9bcEaBE.mjs} +3 -3
  249. package/dist/{renderer-aT6MUYPr.mjs.map → renderer-C9bcEaBE.mjs.map} +1 -1
  250. package/dist/{renderer-CsxO_wBG.mjs → renderer-CAH00Lub.mjs} +2 -2
  251. package/dist/{renderer-Cb74SQHm.mjs → renderer-CAhsBEpU.mjs} +2 -2
  252. package/dist/{renderer-Cb74SQHm.mjs.map → renderer-CAhsBEpU.mjs.map} +1 -1
  253. package/dist/renderer-CBK4M82Y.mjs +5 -0
  254. package/dist/{renderer-CFSh2eG-.mjs → renderer-CCH0gSF7.mjs} +3 -3
  255. package/dist/{renderer-CFSh2eG-.mjs.map → renderer-CCH0gSF7.mjs.map} +1 -1
  256. package/dist/{renderer-CHvEgLHy.mjs → renderer-CCbOp0BM.mjs} +3 -3
  257. package/dist/{renderer-CHvEgLHy.mjs.map → renderer-CCbOp0BM.mjs.map} +1 -1
  258. package/dist/{renderer-DrrWvz8l.mjs → renderer-CEb5GjcU.mjs} +3 -3
  259. package/dist/{renderer-DrrWvz8l.mjs.map → renderer-CEb5GjcU.mjs.map} +1 -1
  260. package/dist/{renderer-1KfQICGK.mjs → renderer-CIL9zh-a.mjs} +3 -3
  261. package/dist/{renderer-1KfQICGK.mjs.map → renderer-CIL9zh-a.mjs.map} +1 -1
  262. package/dist/{renderer-CEvj79Wg.mjs → renderer-CIbXIFOb.mjs} +4 -4
  263. package/dist/{renderer-CEvj79Wg.mjs.map → renderer-CIbXIFOb.mjs.map} +1 -1
  264. package/dist/renderer-CLHtCctc.mjs +5 -0
  265. package/dist/{renderer-DxOJv_G7.mjs → renderer-CLX33fIK.mjs} +3 -3
  266. package/dist/{renderer-DxOJv_G7.mjs.map → renderer-CLX33fIK.mjs.map} +1 -1
  267. package/dist/{renderer-BcaT2j3R.mjs → renderer-CLXpWDqx.mjs} +2 -2
  268. package/dist/{renderer-BcaT2j3R.mjs.map → renderer-CLXpWDqx.mjs.map} +1 -1
  269. package/dist/renderer-CLin7MNN.mjs +5 -0
  270. package/dist/{renderer-COcFh5bK.mjs → renderer-CLypsmiH.mjs} +3 -3
  271. package/dist/{renderer-COcFh5bK.mjs.map → renderer-CLypsmiH.mjs.map} +1 -1
  272. package/dist/renderer-CN7TypOB.mjs +5 -0
  273. package/dist/renderer-CV5Jfwq7.mjs +5 -0
  274. package/dist/renderer-Ca5E46WK.mjs +5 -0
  275. package/dist/renderer-CdbOtoOU.mjs +5 -0
  276. package/dist/renderer-CeD_bqWj.mjs +5 -0
  277. package/dist/{renderer-BnpMAub0.mjs → renderer-CfEuoZ7b.mjs} +3 -3
  278. package/dist/{renderer-BnpMAub0.mjs.map → renderer-CfEuoZ7b.mjs.map} +1 -1
  279. package/dist/renderer-CfzNNUOd.mjs +5 -0
  280. package/dist/{renderer-0W-Ty55h.mjs → renderer-Cg3h0Mz9.mjs} +3 -3
  281. package/dist/{renderer-0W-Ty55h.mjs.map → renderer-Cg3h0Mz9.mjs.map} +1 -1
  282. package/dist/renderer-Cl8TmdU8.mjs +5 -0
  283. package/dist/{renderer-CoaDDIS6.mjs → renderer-ClHqvIps.mjs} +10 -10
  284. package/dist/renderer-ClHqvIps.mjs.map +1 -0
  285. package/dist/renderer-CosBP_IM.mjs +5 -0
  286. package/dist/renderer-CpwVs5Fh.mjs +5 -0
  287. package/dist/renderer-Cq7baxNb.mjs +5 -0
  288. package/dist/{renderer-B_Oz9L3g.mjs → renderer-CqMz_iXy.mjs} +2 -2
  289. package/dist/{renderer-B_Oz9L3g.mjs.map → renderer-CqMz_iXy.mjs.map} +1 -1
  290. package/dist/{renderer-DORydJHm.mjs → renderer-CqSmfrE1.mjs} +3 -3
  291. package/dist/{renderer-DORydJHm.mjs.map → renderer-CqSmfrE1.mjs.map} +1 -1
  292. package/dist/{renderer-WTvo3wo9.d.mts → renderer-CrhJJKFY.d.mts} +5 -3
  293. package/dist/renderer-CrhJJKFY.d.mts.map +1 -0
  294. package/dist/{renderer-Bt3F1tmP.mjs → renderer-CxxwhUwy.mjs} +3 -3
  295. package/dist/{renderer-Bt3F1tmP.mjs.map → renderer-CxxwhUwy.mjs.map} +1 -1
  296. package/dist/{renderer-Cba208C9.mjs → renderer-D24aiXmB.mjs} +3 -3
  297. package/dist/{renderer-Cba208C9.mjs.map → renderer-D24aiXmB.mjs.map} +1 -1
  298. package/dist/renderer-D6GkxwAx.mjs +5 -0
  299. package/dist/renderer-D7SfGdzX.mjs +5 -0
  300. package/dist/renderer-D7wt09_l.mjs +5 -0
  301. package/dist/{renderer-CdJoOfQw.mjs → renderer-DBslE7fc.mjs} +2 -2
  302. package/dist/{renderer-CdJoOfQw.mjs.map → renderer-DBslE7fc.mjs.map} +1 -1
  303. package/dist/{renderer-Df-rf7RC.mjs → renderer-DE3Ki96C.mjs} +3 -3
  304. package/dist/{renderer-Df-rf7RC.mjs.map → renderer-DE3Ki96C.mjs.map} +1 -1
  305. package/dist/{renderer-DqIrYB0P.mjs → renderer-DJCqc98W.mjs} +3 -3
  306. package/dist/{renderer-DqIrYB0P.mjs.map → renderer-DJCqc98W.mjs.map} +1 -1
  307. package/dist/{renderer-E54Vv1_W.mjs → renderer-DODOyrty.mjs} +3 -3
  308. package/dist/{renderer-E54Vv1_W.mjs.map → renderer-DODOyrty.mjs.map} +1 -1
  309. package/dist/{renderer-DuFwDHHF.mjs → renderer-DRYxcfgi.mjs} +2 -2
  310. package/dist/renderer-DSuDMYqY.mjs +5 -0
  311. package/dist/{renderer-BGDKxfsM.mjs → renderer-DYreml_A.mjs} +3 -3
  312. package/dist/{renderer-BGDKxfsM.mjs.map → renderer-DYreml_A.mjs.map} +1 -1
  313. package/dist/{renderer-BGnMRdUK.mjs → renderer-DZJnNISO.mjs} +2 -2
  314. package/dist/{renderer-BGnMRdUK.mjs.map → renderer-DZJnNISO.mjs.map} +1 -1
  315. package/dist/renderer-DaIstCIs.mjs +5 -0
  316. package/dist/renderer-DbOD3Nc0.mjs +5 -0
  317. package/dist/{renderer-B3gQT1uq.mjs → renderer-DbenSRjl.mjs} +3 -3
  318. package/dist/{renderer-B3gQT1uq.mjs.map → renderer-DbenSRjl.mjs.map} +1 -1
  319. package/dist/{renderer-DGsWlXjl.mjs → renderer-DcXxkxds.mjs} +75 -72
  320. package/dist/renderer-DcXxkxds.mjs.map +1 -0
  321. package/dist/renderer-DdRCA1bn.mjs +6 -0
  322. package/dist/{renderer-PDs21Gsq.mjs → renderer-DdUtL-qF.mjs} +3 -3
  323. package/dist/{renderer-PDs21Gsq.mjs.map → renderer-DdUtL-qF.mjs.map} +1 -1
  324. package/dist/renderer-DfO37haf.mjs +5 -0
  325. package/dist/renderer-DjZwzxZ7.mjs +5 -0
  326. package/dist/renderer-DnAvySNy.mjs +5 -0
  327. package/dist/{renderer-BwnQRuce.mjs → renderer-DnbY04Qk.mjs} +3 -3
  328. package/dist/{renderer-BwnQRuce.mjs.map → renderer-DnbY04Qk.mjs.map} +1 -1
  329. package/dist/renderer-DnvEPm5E.mjs +5 -0
  330. package/dist/{renderer-C_-hWBF1.mjs → renderer-Do9mW_-B.mjs} +3 -3
  331. package/dist/{renderer-C_-hWBF1.mjs.map → renderer-Do9mW_-B.mjs.map} +1 -1
  332. package/dist/{renderer-PDAlUGKG.mjs → renderer-Dqg8qxjq.mjs} +3 -3
  333. package/dist/{renderer-PDAlUGKG.mjs.map → renderer-Dqg8qxjq.mjs.map} +1 -1
  334. package/dist/{renderer-wrXFfvpJ.mjs → renderer-DvkRbmb2.mjs} +3 -3
  335. package/dist/{renderer-wrXFfvpJ.mjs.map → renderer-DvkRbmb2.mjs.map} +1 -1
  336. package/dist/renderer-DwNpKnWf.mjs +5 -0
  337. package/dist/{renderer-Cv6od7Be.mjs → renderer-Dw_xy3zx.mjs} +3 -3
  338. package/dist/{renderer-Cv6od7Be.mjs.map → renderer-Dw_xy3zx.mjs.map} +1 -1
  339. package/dist/renderer-Dx3Dghus.mjs +5 -0
  340. package/dist/{renderer-lP23pU1s.mjs → renderer-DyrNti45.mjs} +3 -3
  341. package/dist/{renderer-lP23pU1s.mjs.map → renderer-DyrNti45.mjs.map} +1 -1
  342. package/dist/renderer-KvaoEwIk.mjs +5 -0
  343. package/dist/{renderer-Cw7R1U43.mjs → renderer-SwUFJ4aA.mjs} +3 -3
  344. package/dist/{renderer-Cw7R1U43.mjs.map → renderer-SwUFJ4aA.mjs.map} +1 -1
  345. package/dist/{renderer-C4Jfgjm5.mjs → renderer-XEoQnDs5.mjs} +3 -3
  346. package/dist/{renderer-C4Jfgjm5.mjs.map → renderer-XEoQnDs5.mjs.map} +1 -1
  347. package/dist/{renderer-BXGr426R.mjs → renderer-Xw9Zn3pD.mjs} +2 -2
  348. package/dist/{renderer-BXGr426R.mjs.map → renderer-Xw9Zn3pD.mjs.map} +1 -1
  349. package/dist/{renderer-BEpA2g1_.mjs → renderer-ZWIDTOLV.mjs} +2 -2
  350. package/dist/{renderer-BEpA2g1_.mjs.map → renderer-ZWIDTOLV.mjs.map} +1 -1
  351. package/dist/{renderer-D36Pjp0B.mjs → renderer-bGhRdKB7.mjs} +2 -2
  352. package/dist/{renderer-D36Pjp0B.mjs.map → renderer-bGhRdKB7.mjs.map} +1 -1
  353. package/dist/{renderer-ZarULMvJ.mjs → renderer-d4weUlVq.mjs} +2 -2
  354. package/dist/{renderer-ZarULMvJ.mjs.map → renderer-d4weUlVq.mjs.map} +1 -1
  355. package/dist/{renderer-YEDoDnsE.mjs → renderer-g7CMgD1v.mjs} +3 -3
  356. package/dist/{renderer-YEDoDnsE.mjs.map → renderer-g7CMgD1v.mjs.map} +1 -1
  357. package/dist/{renderer-CZGpETnc.mjs → renderer-gjLFqdv-.mjs} +4 -4
  358. package/dist/{renderer-CZGpETnc.mjs.map → renderer-gjLFqdv-.mjs.map} +1 -1
  359. package/dist/{renderer-H-Adf8Za.mjs → renderer-gv0u9XmU.mjs} +3 -3
  360. package/dist/{renderer-H-Adf8Za.mjs.map → renderer-gv0u9XmU.mjs.map} +1 -1
  361. package/dist/{renderer-FPYVmSf6.mjs → renderer-jJWwrha1.mjs} +3 -3
  362. package/dist/{renderer-FPYVmSf6.mjs.map → renderer-jJWwrha1.mjs.map} +1 -1
  363. package/dist/{renderer-BKhdqykZ.mjs → renderer-kl_pAczD.mjs} +3 -3
  364. package/dist/{renderer-BKhdqykZ.mjs.map → renderer-kl_pAczD.mjs.map} +1 -1
  365. package/dist/{renderer-BKL3UEzN.mjs → renderer-lrKwPhZi.mjs} +2 -2
  366. package/dist/{renderer-BKL3UEzN.mjs.map → renderer-lrKwPhZi.mjs.map} +1 -1
  367. package/dist/{renderer-C2O4nK9x.mjs → renderer-pnYj1REL.mjs} +3 -3
  368. package/dist/{renderer-C2O4nK9x.mjs.map → renderer-pnYj1REL.mjs.map} +1 -1
  369. package/dist/{renderers-CP8CFWDs-CZJ7NRsl.mjs → renderers-CP8CFWDs-CDikhBRO.mjs} +3 -3
  370. package/dist/{renderers-CP8CFWDs-CZJ7NRsl.mjs.map → renderers-CP8CFWDs-CDikhBRO.mjs.map} +1 -1
  371. package/dist/signals/index.d.mts +5 -5
  372. package/dist/signals/index.mjs +6 -6
  373. package/dist/{signals-BrNF9l9s.mjs → signals-BeAWA_1Y.mjs} +3 -3
  374. package/dist/{signals-BrNF9l9s.mjs.map → signals-BeAWA_1Y.mjs.map} +1 -1
  375. package/dist/{src-_l81YkMD.mjs → src-LYcH_X8o.mjs} +233 -27
  376. package/dist/src-LYcH_X8o.mjs.map +1 -0
  377. package/package.json +58 -58
  378. package/dist/dist-D021IFfp.mjs.map +0 -1
  379. package/dist/dist-DSKhnhDk.mjs.map +0 -1
  380. package/dist/dist-cC6nOaMR.mjs.map +0 -1
  381. package/dist/index-3Vdef2KE.d.mts.map +0 -1
  382. package/dist/index-CWG19cm-.d.mts.map +0 -1
  383. package/dist/index-ocZc12ZS.d.mts.map +0 -1
  384. package/dist/preview-engine/chunk-3SR6BI4B.mjs +0 -1
  385. package/dist/preview-engine/chunk-5NLDETDV.mjs +0 -1974
  386. package/dist/preview-engine/chunk-ALSOO22Q.mjs +0 -1
  387. package/dist/preview-engine/chunk-NKGXINCU.mjs +0 -1
  388. package/dist/preview-engine/chunk-PJMX2GFY.mjs +0 -1
  389. package/dist/preview-engine/chunk-SIXIF5QZ.mjs +0 -3
  390. package/dist/preview-engine/renderers-4CRXZJ5G.mjs +0 -1
  391. package/dist/preview-engine/renderers-5QF4OLFQ.mjs +0 -1
  392. package/dist/preview-engine/renderers-5SOW6OVE.mjs +0 -1
  393. package/dist/preview-engine/renderers-6M2HPY2J.mjs +0 -1
  394. package/dist/preview-engine/renderers-7HT5NW7W.mjs +0 -1
  395. package/dist/preview-engine/renderers-ATTGUTYY.mjs +0 -1
  396. package/dist/preview-engine/renderers-AYWCRBQC.mjs +0 -1
  397. package/dist/preview-engine/renderers-BA6ZCPI5.mjs +0 -1
  398. package/dist/preview-engine/renderers-BAS7RXTC.mjs +0 -1
  399. package/dist/preview-engine/renderers-CZTCW4FC.mjs +0 -1
  400. package/dist/preview-engine/renderers-D2XEQ2YY.mjs +0 -1
  401. package/dist/preview-engine/renderers-DFIJYBW2.mjs +0 -1
  402. package/dist/preview-engine/renderers-EJN6M6DO.mjs +0 -1
  403. package/dist/preview-engine/renderers-EK3HQUUF.mjs +0 -1
  404. package/dist/preview-engine/renderers-G34C5J27.mjs +0 -1
  405. package/dist/preview-engine/renderers-GKVTNDVH.mjs +0 -1
  406. package/dist/preview-engine/renderers-HZBYQKIQ.mjs +0 -1
  407. package/dist/preview-engine/renderers-IK7ZJJKJ.mjs +0 -1
  408. package/dist/preview-engine/renderers-ISASPH6T.mjs +0 -1
  409. package/dist/preview-engine/renderers-IT5ISWSA.mjs +0 -228
  410. package/dist/preview-engine/renderers-IW5MWDBI.mjs +0 -1
  411. package/dist/preview-engine/renderers-K2PI4WJS.mjs +0 -1
  412. package/dist/preview-engine/renderers-KESHVFL2.mjs +0 -1
  413. package/dist/preview-engine/renderers-KTZZVAB2.mjs +0 -1
  414. package/dist/preview-engine/renderers-KY5CJEOV.mjs +0 -1
  415. package/dist/preview-engine/renderers-M5W6SUQD.mjs +0 -1
  416. package/dist/preview-engine/renderers-MEM3REMI.mjs +0 -1
  417. package/dist/preview-engine/renderers-N36R42RL.mjs +0 -1
  418. package/dist/preview-engine/renderers-O5XMWFPY.mjs +0 -1
  419. package/dist/preview-engine/renderers-QJA35PKC.mjs +0 -1
  420. package/dist/preview-engine/renderers-TJIFTQHV.mjs +0 -1
  421. package/dist/preview-engine/renderers-TN4XN436.mjs +0 -1
  422. package/dist/preview-engine/renderers-UDYLCYCB.mjs +0 -1
  423. package/dist/preview-engine/renderers-WZ7SFIBZ.mjs +0 -1
  424. package/dist/preview-engine/renderers-X6QNDC6R.mjs +0 -1
  425. package/dist/preview-engine/renderers-X6RNTJOV.mjs +0 -1
  426. package/dist/preview-engine/renderers-Y3N7236P.mjs +0 -1
  427. package/dist/preview-engine/renderers-YP3ASXIJ.mjs +0 -1
  428. package/dist/preview-engine/renderers-YVJAG3PD.mjs +0 -1
  429. package/dist/preview-engine/renderers-ZPPZNMKJ.mjs +0 -1
  430. package/dist/program-W4CWO2bp.mjs.map +0 -1
  431. package/dist/renderer-8HnHWqYj.mjs +0 -5
  432. package/dist/renderer-8itujues.mjs +0 -5
  433. package/dist/renderer-BFods-7v.mjs +0 -5
  434. package/dist/renderer-BbQygRwc.mjs +0 -5
  435. package/dist/renderer-Bq_sPaCg.mjs +0 -5
  436. package/dist/renderer-BrkDrvqS.mjs +0 -5
  437. package/dist/renderer-C1diVT5Q.mjs +0 -5
  438. package/dist/renderer-C8E7ajTR.mjs +0 -5
  439. package/dist/renderer-CAz8JW5c.mjs +0 -5
  440. package/dist/renderer-CKfrUdGw.mjs +0 -5
  441. package/dist/renderer-CL0rqBA4.mjs +0 -5
  442. package/dist/renderer-COyavIEv.mjs +0 -5
  443. package/dist/renderer-CUrShvUZ.mjs +0 -5
  444. package/dist/renderer-CWvJ_GaL.mjs +0 -5
  445. package/dist/renderer-Ck0mGIo9.mjs +0 -5
  446. package/dist/renderer-CoaDDIS6.mjs.map +0 -1
  447. package/dist/renderer-CqIXqdf0.mjs +0 -5
  448. package/dist/renderer-Csod6biL.mjs +0 -5
  449. package/dist/renderer-CueO924-.mjs +0 -5
  450. package/dist/renderer-D1vM4obC.mjs +0 -5
  451. package/dist/renderer-DB7QUt90.mjs +0 -5
  452. package/dist/renderer-DGsWlXjl.mjs.map +0 -1
  453. package/dist/renderer-DLMDnKlA.mjs +0 -6
  454. package/dist/renderer-DNs7yWMr.mjs +0 -5
  455. package/dist/renderer-DOrtuoa9.mjs +0 -5
  456. package/dist/renderer-D_JgOawb.mjs +0 -5
  457. package/dist/renderer-DdLo1uoa.mjs +0 -5
  458. package/dist/renderer-DeX3JEZV.mjs +0 -5
  459. package/dist/renderer-DfgZVACG.mjs +0 -5
  460. package/dist/renderer-DoYG7Pn6.mjs +0 -5
  461. package/dist/renderer-Jwqa-BUN.mjs +0 -5
  462. package/dist/renderer-WTvo3wo9.d.mts.map +0 -1
  463. package/dist/renderer-WyaqnVMz.mjs +0 -3
  464. package/dist/renderer-Z2Vs-IqP.mjs +0 -5
  465. package/dist/renderer-ZnyCpdWE.mjs +0 -5
  466. package/dist/renderer-emCnsnTH.mjs +0 -5
  467. package/dist/renderer-ioxa4-Dy.mjs +0 -5
  468. package/dist/renderer-iyIwrDWO.mjs +0 -5
  469. package/dist/renderer-tuudA_RZ.mjs +0 -5
  470. package/dist/renderer-yyn8S821.mjs +0 -5
  471. package/dist/src-_l81YkMD.mjs.map +0 -1
@@ -0,0 +1 @@
1
+ import{a}from"./chunk-DZEWY4PR.mjs";import{h as w}from"./chunk-TEBZRQPG.mjs";import{e as l}from"./chunk-BVF64D6H.mjs";l();function F(i){let e=new M(i);for(let r=0;r<=i.durationFrames;r++){let t=i.startFrame+r;e.record(t,i.sample(t))}return e.finish()}function N(i){let{fps:e,compositionDurationFrames:r,signal:t}=i;if(!Number.isInteger(r)||r<=0)throw new Error("Invalid composition duration");return F({...i,sample:n=>t.get(R(n,e,r))})}function R(i,e,r){return{frame:i,fps:e,time:i/e,duration:r/e,durationMs:r/e*1e3,progress:Math.min(1,i/r),deltaTime:1/e}}function f(i,e){if(!Number.isFinite(e))throw new Error("Invalid media signal frame");let r=i.values.length-1,t=Math.max(0,Math.min(r,e)),n=Math.min(Math.floor(t),r-1),s=t-n,o=i.values[n],c=i.values[n+1];return i.mode==="source-time"?o*(1-s)+c*s:i.positions[n]+(o*(s-s*s/2)+c*(s*s/2))/i.fps}function b(i,e,r){if(!Number.isFinite(e)||!Number.isFinite(r))throw new Error("Invalid media signal range");let t=i.values.length-1,n=Math.max(0,Math.min(t,Math.min(e,r))),s=Math.max(0,Math.min(t,Math.max(e,r))),o=f(i,n),c=o,h=n<s,u=d=>{let m=f(i,d);o=Math.min(o,m),m>c?(c=m,h=d<s):m===c&&d<s&&(h=!0)};u(s);for(let d=Math.floor(n);d<s;d++)if(d>n&&u(d),i.mode==="speed"){let m=i.values[d],p=i.values[d+1];if(m<0&&p>0||m>0&&p<0){let y=Math.abs(m)/2,g=d+y/(y+Math.abs(p)/2);g>n&&g<s&&u(g)}}return{min:o,max:c,maxIncluded:h}}var M=class{values;positions;recorded=0;evaluating=!1;horizon=-1;sampler;check;startFrame;durationFrames;fps;mode;constructor(e){if(!Number.isFinite(e.fps)||e.fps<=0||!Number.isInteger(e.startFrame)||e.startFrame<0||!Number.isInteger(e.durationFrames)||e.durationFrames<=0)throw new Error("Invalid media signal timing");let r=e.sourceStartSec??0;if(!Number.isFinite(r)||r<0)throw new Error("Invalid media signal source start");this.mode=e.mode,this.fps=e.fps,this.startFrame=e.startFrame,this.durationFrames=e.durationFrames,this.sampler=e.sample,this.values=new Float64Array(e.durationFrames+1),e.mode==="speed"&&(this.positions=new Float64Array(e.durationFrames+1),this.positions[0]=r)}get nextFrame(){return this.startFrame+this.recorded}get complete(){return this.recorded===this.values.length}advance(e){e>this.horizon&&(this.horizon=e)}checkRange(e){this.check=e,this.recorded>1&&e(this.range(0,this.recorded-1))}record(e,r){let t=e-this.startFrame;if(!Number.isInteger(e)||t<0||t>this.durationFrames)throw new Error(`Media signal frame ${e} is outside the layer`);if(!Number.isFinite(r))throw new Error(`Non-finite media signal at composition frame ${e}`);if(t<this.recorded){if(this.values[t]!==r)throw new Error(`Media signal frame ${e} was already recorded with a different value`);return}if(t!==this.recorded)throw new Error(`Media signal frame ${e} was recorded out of order`);if(this.values[t]=r,this.positions&&t>0){let n=this.positions[t-1]+(this.values[t-1]/2+r/2)/this.fps;if(!Number.isFinite(n))throw new Error(`Media signal integration overflow at composition frame ${e}`);this.positions[t]=n}this.check&&t>0&&this.check(this.interval(t-1)),this.recorded++}recordFrom(e,r){if(this.evaluating)throw new Error(`Circular media signal dependency at composition frame ${e}`);if(!(e-this.startFrame<this.recorded)){this.evaluating=!0;try{this.record(e,r())}finally{this.evaluating=!1}}}ensure(e){let r=this.sampler;if(!r)return;let t=Math.min(e,this.horizon,this.startFrame+this.durationFrames);if(this.evaluating&&e>=this.nextFrame)throw new Error(`Circular media signal dependency at composition frame ${this.nextFrame}`);for(let n=this.nextFrame;n<=t;n++)this.recordFrom(n,()=>r(n))}close(){if(this.recorded===0)throw new Error("Media signal history has no recorded frames");let e=this.values[this.recorded-1];for(;!this.complete;)this.record(this.nextFrame,e)}at(e){this.ensure(e);let r=e-this.startFrame;if(!Number.isInteger(e)||r<0||r>=this.recorded)throw new Error(`Media signal frame ${e} has not been recorded`);return this.positions?this.positions[r]:this.values[r]}sourceTime(e){if(Number.isFinite(e)&&this.ensure(this.startFrame+Math.ceil(e)),!Number.isFinite(e)||e<0||e>this.recorded-1)throw new Error(`Media signal local frame ${e} has not been recorded`);if(Number.isInteger(e))return this.at(this.startFrame+e);let r=Math.floor(e),t=e-r,n=this.values[r],s=this.values[r+1];return this.positions?this.positions[r]+(n*(t-t*t/2)+s*(t*t/2))/this.fps:n*(1-t)+s*t}rate(e){let r=this.knownInterval(e),t=this.values[r],n=this.values[r+1],s=e-r;return this.positions?t*(1-s)+n*s:(n-t)*this.fps}isHold(e){let r=this.knownInterval(e);return this.positions?this.values[r]===0&&this.values[r+1]===0:this.values[r]===this.values[r+1]}range(e,r){if(Number.isFinite(e)&&Number.isFinite(r)&&this.ensure(this.startFrame+Math.ceil(Math.max(e,r))),!Number.isFinite(e)||!Number.isFinite(r)||e<0||r<0||Math.max(e,r)>this.recorded-1)throw new Error("Media signal range has not been recorded");if(this.recorded===1){let t=this.sourceTime(0);return{min:t,max:t,maxIncluded:!1}}return b(this.history(0,this.recorded),e,r)}finish(){if(!this.complete)throw new Error("Media signal history is incomplete");let e=this.values.slice();return this.positions?{mode:"speed",fps:this.fps,values:e,positions:this.positions.slice()}:{mode:"source-time",fps:this.fps,values:e}}knownInterval(e){let r=Math.floor(e);if(Number.isFinite(e)&&this.ensure(this.startFrame+r+1),!Number.isFinite(e)||r<0||r+1>=this.recorded)throw new Error(`Media signal interval ${e} has not been recorded`);return r}interval(e){return b(this.history(e,e+2),0,1)}history(e,r){let t=this.values.subarray(e,r);return this.positions?{mode:"speed",fps:this.fps,values:t,positions:this.positions.subarray(e,r)}:{mode:"source-time",fps:this.fps,values:t}}};l();var T=a.discriminatedUnion("kind",[a.object({kind:a.literal("rate"),sourceStartSec:a.number().finite().nonnegative(),rate:a.number().finite().refine(i=>i!==0,"rate must not be zero")}).strict(),a.object({kind:a.literal("keyframes"),keyframes:a.array(a.object({frame:a.number().int().nonnegative(),sourceSec:a.number().finite().nonnegative(),interpolation:a.enum(["linear","ease-in","ease-out","smooth"]).optional()}).strict()).min(2)}).strict()]),E=a.object({kind:a.literal("signal"),mode:a.enum(["speed","source-time"]),signal:a.union([a.string().min(1),a.custom(w,"signal must be a Signal or the name of a composition signal")]),sourceStartSec:a.number().finite().nonnegative().optional()}).strict(),H=a.discriminatedUnion("kind",[...T.options,E]);function S(i,e){if(i.fps!==e)throw new Error(`Media signal history fps ${i.fps} does not match composition fps ${e}`)}function U(i,e){if(!Number.isInteger(e)||e<=0)return"durationFrames must be a positive integer";if(i.kind==="signal")return i.mode==="source-time"&&i.sourceStartSec!==void 0?"sourceStartSec applies only to speed signals":void 0;if(i.kind==="rate")return;let r=i.keyframes;if(r.length<2||r[0].frame!==0||r[r.length-1].frame!==e)return"time remap keyframes must start at frame 0 and end at durationFrames";for(let t=1;t<r.length;t++)if(r[t].frame<=r[t-1].frame)return"time remap keyframes must have strictly increasing frames"}function v(i,e){let r=0,t=i.keyframes.length-1;for(;t-r>1;){let n=Math.floor((r+t)/2);i.keyframes[n].frame<=e?r=n:t=n}return r}function I(i,e){switch(e){case"ease-in":return i*i;case"ease-out":return 1-(1-i)*(1-i);case"smooth":return i*i*(3-2*i);default:return i}}function x(i,e,r){if(!Number.isFinite(e)||!Number.isFinite(r)||r<=0)throw new Error("Invalid media time or fps");if(i.kind==="recorded"){if(i.recorder.fps!==r)throw new Error("Media signal recorder fps does not match composition fps");return i.recorder.sourceTime(e)}if(i.kind==="sampled")return S(i.history,r),f(i.history,e);if(i.kind==="rate")return i.sourceStartSec+e/r*i.rate;let t=i.keyframes;if(t.length<2)throw new Error("Time remap needs at least two keyframes");if(e<=t[0].frame)return t[0].sourceSec;if(e>=t[t.length-1].frame)return t[t.length-1].sourceSec;let n=v(i,e),s=t[n],o=t[n+1],c=(e-s.frame)/(o.frame-s.frame);return s.sourceSec+(o.sourceSec-s.sourceSec)*I(c,s.interpolation??"linear")}function q(i,e){if(i.kind==="rate")return!1;if(i.kind==="recorded")return i.recorder.isHold(e);if(i.kind==="sampled"){let t=i.history.values,n=Math.max(0,Math.min(t.length-2,Math.floor(e)));return i.history.mode==="speed"?t[n]===0&&t[n+1]===0:t[n]===t[n+1]}let r=v(i,e);return i.keyframes[r].sourceSec===i.keyframes[r+1].sourceSec}function B(i,e,r){if(i.kind==="rate")return i.rate;if(i.kind==="recorded"){if(i.recorder.fps!==r)throw new Error("Media signal recorder fps does not match composition fps");return i.recorder.rate(e)}if(i.kind==="sampled"){S(i.history,r);let h=i.history.values,u=Math.max(0,Math.min(h.length-2,Math.floor(e))),d=Math.max(0,Math.min(1,e-u));return i.history.mode==="speed"?h[u]*(1-d)+h[u+1]*d:(h[u+1]-h[u])*i.history.fps}let t=v(i,e),n=i.keyframes[t],s=i.keyframes[t+1],o=Math.max(0,Math.min(1,(e-n.frame)/(s.frame-n.frame))),c=n.interpolation==="ease-in"?2*o:n.interpolation==="ease-out"?2*(1-o):n.interpolation==="smooth"?6*o*(1-o):1;return(s.sourceSec-n.sourceSec)/(s.frame-n.frame)*r*c}function D(i,e,r,t){if(i.kind==="recorded"){if(i.recorder.fps!==t)throw new Error("Media signal recorder fps does not match composition fps");return i.recorder.range(e,r)}if(i.kind==="sampled")return S(i.history,t),b(i.history,e,r);let n=Math.min(e,r),s=Math.max(e,r),o=x(i,n,t),c=x(i,s,t),h=Math.min(o,c),u=Math.max(o,c),d=n<s&&o===u;if(i.kind==="keyframes")for(let m of i.keyframes)m.frame<=n||m.frame>=s||(h=Math.min(h,m.sourceSec),m.sourceSec>u?(u=m.sourceSec,d=!0):m.sourceSec===u&&(d=!0));return{min:h,max:u,maxIncluded:d}}export{F as a,N as b,R as c,f as d,b as e,M as f,T as g,E as h,H as i,U as j,x as k,q as l,B as m,D as n};
@@ -1 +1 @@
1
- import{A as F}from"./chunk-ALSOO22Q.mjs";import{a as H}from"./chunk-IQC2I5A5.mjs";import{e as u}from"./chunk-BVF64D6H.mjs";u();u();var N=async P=>{let{ctx:e,pass:L,targetView:z,targetTexture:f,targetWidth:w,targetHeight:T,encoder:o,props:n,drawChild:E}=P,{virtualMedia:b}=n;if(b.operation?.op!=="Paint")return;let c=b?.children?.[0],a=n.containerWidth??c?.metadata?.width??w,t=n.containerHeight??c?.metadata?.height??T,g=b.operation,y=g.mode==="mask",k=g.strokes??[];L.end(),e.renderer.pushIdentity();let s=e.renderer.getTemporaryTexture(a,t,[...n.excludeTextures||[],f]),h=s.createView();if(y)e.renderer.beginFrame(o,h,{r:0,g:0,b:0,a:1},a,t,"clear").end();else if(c)await E(c,n,h,s,a,t);else{let l=e.renderer.beginFrame(o,h,{r:0,g:0,b:0,a:0},a,t,"clear");g.backgroundColor&&e.renderer.drawRect(l,{x:0,y:0,width:a,height:t},g.backgroundColor),l.end()}let R=s;if(k.length>0){let l=c?.metadata?.width??a,C=c?.metadata?.height??t,M=l>0?a/l:1,V=C>0?t/C:1,G=!1;(M!==1||V!==1)&&(e.renderer.pushTransform(new DOMMatrix().scale(M,V)),G=!0);let p=e.renderer.getTemporaryTexture(a,t,[s,f,...n.excludeTextures||[]]),j=p.createView();e.renderer.beginFrame(o,j,{r:0,g:0,b:0,a:0},a,t,"clear").end();let v=k,m=p,d=null;for(let i of v)if(i.tool==="brush"){d||(d=e.renderer.beginFrame(o,m.createView(),{r:0,g:0,b:0,a:0},a,t,"load"));let r=H(i.color),x=y?{r:r.a,g:r.a,b:r.a,a:r.a}:{r:r.r*r.a,g:r.g*r.a,b:r.b*r.a,a:r.a};e.renderer.drawPath(d,i.path,x,i.size,{opacity:i.opacity??1,blendMode:"max"})}else if(i.tool==="eraser"){d&&(d.end(),d=null);let r=e.renderer.getTemporaryTexture(a,t,[s,p,f,...n.excludeTextures||[]]),x=r.createView(),U=e.renderer.beginFrame(o,x,{r:0,g:0,b:0,a:0},a,t,"clear");e.renderer.drawPath(U,i.path,"#ffffff",i.size,{blendMode:"max"}),U.end(),m=e.renderer.composite(o,m,r,"mask-out",[s,p,f,...n.excludeTextures||[]])}d&&d.end(),R=e.renderer.composite(o,s,m,"normal",[s,m,f,...n.excludeTextures||[]]),G&&e.renderer.popTransform()}e.renderer.popTransform();let W=e.renderer.beginFrame(o,z,{r:0,g:0,b:0,a:0},w,T,"load");e.renderer.drawTexture(W,R,{x:0,y:0,width:a,height:t}),P.pass=W};var A=F({WebGPURenderer:N});export{A as a};
1
+ import{A as F}from"./chunk-TEBZRQPG.mjs";import{a as H}from"./chunk-IQC2I5A5.mjs";import{e as u}from"./chunk-BVF64D6H.mjs";u();u();var N=async P=>{let{ctx:e,pass:L,targetView:z,targetTexture:f,targetWidth:w,targetHeight:T,encoder:o,props:n,drawChild:E}=P,{virtualMedia:b}=n;if(b.operation?.op!=="Paint")return;let c=b?.children?.[0],a=n.containerWidth??c?.metadata?.width??w,t=n.containerHeight??c?.metadata?.height??T,g=b.operation,y=g.mode==="mask",k=g.strokes??[];L.end(),e.renderer.pushIdentity();let s=e.renderer.getTemporaryTexture(a,t,[...n.excludeTextures||[],f]),h=s.createView();if(y)e.renderer.beginFrame(o,h,{r:0,g:0,b:0,a:1},a,t,"clear").end();else if(c)await E(c,n,h,s,a,t);else{let l=e.renderer.beginFrame(o,h,{r:0,g:0,b:0,a:0},a,t,"clear");g.backgroundColor&&e.renderer.drawRect(l,{x:0,y:0,width:a,height:t},g.backgroundColor),l.end()}let R=s;if(k.length>0){let l=c?.metadata?.width??a,C=c?.metadata?.height??t,M=l>0?a/l:1,V=C>0?t/C:1,G=!1;(M!==1||V!==1)&&(e.renderer.pushTransform(new DOMMatrix().scale(M,V)),G=!0);let p=e.renderer.getTemporaryTexture(a,t,[s,f,...n.excludeTextures||[]]),j=p.createView();e.renderer.beginFrame(o,j,{r:0,g:0,b:0,a:0},a,t,"clear").end();let v=k,m=p,d=null;for(let i of v)if(i.tool==="brush"){d||(d=e.renderer.beginFrame(o,m.createView(),{r:0,g:0,b:0,a:0},a,t,"load"));let r=H(i.color),x=y?{r:r.a,g:r.a,b:r.a,a:r.a}:{r:r.r*r.a,g:r.g*r.a,b:r.b*r.a,a:r.a};e.renderer.drawPath(d,i.path,x,i.size,{opacity:i.opacity??1,blendMode:"max"})}else if(i.tool==="eraser"){d&&(d.end(),d=null);let r=e.renderer.getTemporaryTexture(a,t,[s,p,f,...n.excludeTextures||[]]),x=r.createView(),U=e.renderer.beginFrame(o,x,{r:0,g:0,b:0,a:0},a,t,"clear");e.renderer.drawPath(U,i.path,"#ffffff",i.size,{blendMode:"max"}),U.end(),m=e.renderer.composite(o,m,r,"mask-out",[s,p,f,...n.excludeTextures||[]])}d&&d.end(),R=e.renderer.composite(o,s,m,"normal",[s,m,f,...n.excludeTextures||[]]),G&&e.renderer.popTransform()}e.renderer.popTransform();let W=e.renderer.beginFrame(o,z,{r:0,g:0,b:0,a:0},w,T,"load");e.renderer.drawTexture(W,R,{x:0,y:0,width:a,height:t}),P.pass=W};var A=F({WebGPURenderer:N});export{A as a};
@@ -0,0 +1 @@
1
+ import{e}from"./chunk-BVF64D6H.mjs";e();var n=/\p{Emoji_Presentation}|\p{Emoji_Modifier}|⃣/u,i=/\p{Extended_Pictographic}/u,o=/\p{Extended_Pictographic}️/u;function r(t){return t.includes("\uFE0E")?"text":n.test(t)||o.test(t)||t.includes("\u200D")&&i.test(t)?"emoji":i.test(t)?"either":"text"}export{r as a};
@@ -1 +1 @@
1
- import{b}from"./chunk-QKQYHPBK.mjs";import{a as l}from"./chunk-PJMX2GFY.mjs";import{a as g}from"./chunk-6YJP57MZ.mjs";import{l as n}from"./chunk-ALSOO22Q.mjs";import{e as c}from"./chunk-BVF64D6H.mjs";c();var S={async extractFromChannels(a,u,r={}){let x=await b(),t=r.fps??24,p=r.targetWidth??512,e=await g.extractFeatures(x,a,u,t,r,p),i=e.channelSamples??{primary:new Float32Array(e.numFrames),beat:new Float32Array(e.numFrames),bass:new Float32Array(e.numFrames),energy:new Float32Array(e.numFrames)},y={nodeId:"audio_primary",channel:"primary",textureView:e.textureView,texture:e.texture,buffer:e.primaryBuffer,stats:e.stats.primary},w={nodeId:"audio_beat",channel:"beat",textureView:e.textureView,texture:e.texture,buffer:e.beatBuffer,stats:e.stats.beat},B={nodeId:"audio_bass",channel:"bass",textureView:e.textureView,texture:e.texture,buffer:e.bassBuffer,stats:e.stats.bass},F={nodeId:"audio_energy",channel:"energy",textureView:e.textureView,texture:e.texture,buffer:e.energyBuffer,stats:e.stats.energy},o=n(i.primary,t,y),m=n(i.beat,t,w),d=n(i.bass,t,B),f=n(i.energy,t,F);return{primary:o,beat:m,bass:d,energy:f,durationSec:e.durationSec,numFrames:e.numFrames,sampleRate:u,textureView:e.textureView,texture:e.texture,primaryBuffer:e.primaryBuffer,beatBuffer:e.beatBuffer,bassBuffer:e.bassBuffer,energyBuffer:e.energyBuffer,seekFrame(s){o.seekFrame?.(s),m.seekFrame?.(s),d.seekFrame?.(s),f.seekFrame?.(s)}}},async extract(a,u={}){let r=await l(a);if(!r||r.channels.length===0)throw new Error(`Failed to decode audio source for feature extraction: ${a}`);return S.extractFromChannels(r.channels,r.sampleRate,u)}};export{S as a};
1
+ import{b}from"./chunk-QKQYHPBK.mjs";import{a as l}from"./chunk-ZYTXBBIX.mjs";import{a as g}from"./chunk-6YJP57MZ.mjs";import{l as n}from"./chunk-TEBZRQPG.mjs";import{e as c}from"./chunk-BVF64D6H.mjs";c();var S={async extractFromChannels(a,u,r={}){let x=await b(),t=r.fps??24,p=r.targetWidth??512,e=await g.extractFeatures(x,a,u,t,r,p),i=e.channelSamples??{primary:new Float32Array(e.numFrames),beat:new Float32Array(e.numFrames),bass:new Float32Array(e.numFrames),energy:new Float32Array(e.numFrames)},y={nodeId:"audio_primary",channel:"primary",textureView:e.textureView,texture:e.texture,buffer:e.primaryBuffer,stats:e.stats.primary},w={nodeId:"audio_beat",channel:"beat",textureView:e.textureView,texture:e.texture,buffer:e.beatBuffer,stats:e.stats.beat},B={nodeId:"audio_bass",channel:"bass",textureView:e.textureView,texture:e.texture,buffer:e.bassBuffer,stats:e.stats.bass},F={nodeId:"audio_energy",channel:"energy",textureView:e.textureView,texture:e.texture,buffer:e.energyBuffer,stats:e.stats.energy},o=n(i.primary,t,y),m=n(i.beat,t,w),d=n(i.bass,t,B),f=n(i.energy,t,F);return{primary:o,beat:m,bass:d,energy:f,durationSec:e.durationSec,numFrames:e.numFrames,sampleRate:u,textureView:e.textureView,texture:e.texture,primaryBuffer:e.primaryBuffer,beatBuffer:e.beatBuffer,bassBuffer:e.bassBuffer,energyBuffer:e.energyBuffer,seekFrame(s){o.seekFrame?.(s),m.seekFrame?.(s),d.seekFrame?.(s),f.seekFrame?.(s)}}},async extract(a,u={}){let r=await l(a);if(!r||r.channels.length===0)throw new Error(`Failed to decode audio source for feature extraction: ${a}`);return S.extractFromChannels(r.channels,r.sampleRate,u)}};export{S as a};
@@ -1,4 +1,4 @@
1
- import{a as v,c as _,d,g as w,h as G,j as b,m as T}from"./chunk-ENKKLU7B.mjs";import{A as h,u as g}from"./chunk-ALSOO22Q.mjs";import{e as u}from"./chunk-BVF64D6H.mjs";u();u();u();function N(){return[{x:0,y:0},{x:100,y:0},{x:0,y:100},{x:100,y:100}]}function L(e){let r=e&&e.length===4?e:N();return g(r.map(t=>({x:t.x/100,y:t.y/100})))}var z=`
1
+ import{a as v,c as _,d,g as w,h as G,j as b,m as T}from"./chunk-ENKKLU7B.mjs";import{A as h,u as g}from"./chunk-TEBZRQPG.mjs";import{e as u}from"./chunk-BVF64D6H.mjs";u();u();u();function N(){return[{x:0,y:0},{x:100,y:0},{x:0,y:100},{x:100,y:100}]}function L(e){let r=e&&e.length===4?e:N();return g(r.map(t=>({x:t.x/100,y:t.y/100})))}var z=`
2
2
  struct CornerPinUniforms {
3
3
  matrix_row0 : vec4<f32>,
4
4
  matrix_row1 : vec4<f32>,
@@ -1,4 +1,4 @@
1
- import{a as ot}from"./chunk-LKYN3BM2.mjs";import{o as Gt,p as C,q as T,r as Mt,s as Ut,t as Bt}from"./chunk-4C26NVQY.mjs";import{c as yt,d as xt,e as $}from"./chunk-SYP4AJMF.mjs";import{a as vt,b as it,d as bt,e as A}from"./chunk-KJGNTREI.mjs";import{B as wt,b as Pt,j as O,v as St,y as G,z as U}from"./chunk-Q6CRERSJ.mjs";import{a as D,b as gt}from"./chunk-IQC2I5A5.mjs";import{e as x}from"./chunk-BVF64D6H.mjs";x();var I=class{constructor(t,e){this.url=t;this.isHeadless=e}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 t=await A.acquire(this.url);this.destroyed?A.release(this.url):this.input=t}catch(t){throw this.initPromise=null,t}})(),this.initPromise)}destroy(){this.destroyed=!0,this.iterator?.return(),this.input&&(A.release(this.url),this.input=null),this.initPromise=null,this.onDestroy()}},st=class extends I{canvasSink=null;videoSampleSink=null;currentFrame=null;nextFrame=null;currentSample=null;nextSample=null;headlessQueue=[];isDecoding=!1;decodeBuffer=null;nextRequest=null;pushHeadlessQueue(t){let e=this.headlessQueue.findIndex(r=>r.timestamp>t.timestamp);e===-1?this.headlessQueue.push(t):this.headlessQueue.splice(e,0,t)}async fillHeadlessQueue(t){if(this.iterator)for(;this.headlessQueue.length<2;){let e=await this.iterator.next();if(this.currentFetchId!==t){e.value?.close?.();return}if(e.done||!e.value)break;this.pushHeadlessQueue(e.value)}}async closeIterator(t){if(t)try{await t.return()}catch{}}resetSinks(){let t=this.iterator;if(this.iterator=null,t)try{t.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 e of this.headlessQueue)try{e.close()}catch{}this.headlessQueue=[],this.decodeBuffer=null,this.iteratorStartTimestamp=-1}onDestroy(){this.resetSinks()}async startIterator(t,e){if(!this.canvasSink)return;let r=Math.max(0,Number.isFinite(t)?t:0),i=this.iterator;if(this.iterator=null,await this.closeIterator(i),this.currentFetchId!==e||this.destroyed)return;this.iterator=this.canvasSink.canvases(r);let n=await this.iterator.next();if(this.currentFetchId!==e||this.destroyed)return;this.currentFrame=n.value??null;let s=await this.iterator.next();this.currentFetchId!==e||this.destroyed||(this.nextFrame=s.value??null,this.iteratorStartTimestamp=r)}async startIteratorHeadless(t,e){if(!this.videoSampleSink)return;let r=Math.max(0,Number.isFinite(t)?t:0),i=this.iterator;if(this.iterator=null,await this.closeIterator(i),this.currentFetchId!==e||this.destroyed)return;for(let s of this.headlessQueue)s.close();this.headlessQueue=[];let n=Math.max(0,r-.1);this.iterator=this.videoSampleSink.samples(n),await this.fillHeadlessQueue(e),!(this.currentFetchId!==e||this.destroyed)&&(this.iteratorStartTimestamp=r)}async getFrame(t){if(await this.init(),this.destroyed||!this.input)return null;let e=Math.max(0,Number.isFinite(t)?t:0);return this.isDecoding?(this.nextRequest&&this.nextRequest.resolve(null),new Promise((r,i)=>{this.nextRequest={timestampSec:e,resolve:r,reject:i}})):this.executeDecode(e)}async executeDecode(t){this.isDecoding=!0;try{return await this.performDecode(t)}finally{if(this.isDecoding=!1,this.nextRequest){let e=this.nextRequest;this.nextRequest=null,this.executeDecode(e.timestampSec).then(e.resolve).catch(e.reject)}}}async performDecodeHeadless(t,e){if(!this.videoSampleSink){if(this.destroyed||!this.input)return null;let h=await this.input.getPrimaryVideoTrack();if(!h)return null;this.videoSampleSink=new vt(h)}let r=1e-4;if((!this.iterator||t<this.iteratorStartTimestamp-r||this.headlessQueue.length>0&&t<this.headlessQueue[0].timestamp-.01||this.headlessQueue.length>0&&t-this.headlessQueue[0].timestamp>1)&&(await this.startIteratorHeadless(t,e),this.currentFetchId!==e||this.destroyed||!this.input))return null;for(;;){if(await this.fillHeadlessQueue(e),this.currentFetchId!==e||this.destroyed||!this.input)return null;if(this.headlessQueue.length>=2&&this.headlessQueue[1].timestamp<=t+r){this.headlessQueue.shift()?.close();continue}break}let s=this.headlessQueue[0];if(!s)return null;let a=s.displayWidth,o=s.displayHeight,c=a*o*4,u=this.decodeBuffer;return(!u||u.length!==c)&&(u=new Uint8Array(c),this.decodeBuffer=u),await s.copyTo(u,{format:"RGBA"}),this.currentFetchId!==e||this.destroyed||!this.input?null:(gt(u),{width:a,height:o,buffer:u})}async performDecodeInternal(t){this.currentFetchId++;let e=this.currentFetchId;if(this.isHeadless)return this.performDecodeHeadless(t,e);if(!this.canvasSink){if(this.destroyed||!this.input)return null;let a=await this.input.getPrimaryVideoTrack();if(!a)return null;this.canvasSink=new it(a,{poolSize:3,alpha:!0})}let r=1e-4;if((!this.iterator||t<this.iteratorStartTimestamp-r||this.currentFrame&&t<this.currentFrame.timestamp-.01||this.currentFrame&&t-this.currentFrame.timestamp>1)&&(await this.startIterator(t,e),this.currentFetchId!==e||this.destroyed||!this.input))return null;for(;this.nextFrame&&this.nextFrame.timestamp<=t+r;)if(this.currentFrame=this.nextFrame,this.nextFrame=null,this.iterator){let a=await this.iterator.next();if(this.currentFetchId!==e||this.destroyed||!this.input)return null;this.nextFrame=a.value??null}if(!this.currentFrame)return null;let s=this.currentFrame.canvas;return{width:s.width,height:s.height,canvas:s}}async performDecode(t){let e=Math.max(0,Number.isFinite(t)?t:0);try{return await this.performDecodeInternal(e)}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 n=await this.input.getPrimaryVideoTrack();if(n&&!this.destroyed)return this.canvasSink=new it(n,{poolSize:3,alpha:!0,decoderOptions:{hardwareAcceleration:"prefer-software"}}),await this.performDecodeInternal(e)}}catch{}throw r}}},nt=class extends I{audioSink=null;onDestroy(){this.audioSink=null}async startIterator(t,e){this.audioSink&&(this.iterator?.return(),this.iterator=this.audioSink.buffers(t),this.iteratorStartTimestamp=t)}async*getBuffers(t){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 bt(i)}(!this.iterator||Math.abs(t-this.iteratorStartTimestamp)>.05)&&(this.currentFetchId++,await this.startIterator(t,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(e){let r=e;if(r?.name==="InputDisposedError"||r?.message?.includes("disposed")||this.destroyed||!this.input)return;throw e}finally{let e=this.currentFetchId;this.currentFetchId===e&&(this.iterator=null)}}},at=class{videoDecoders=new Map;audioDecoders=new Map;lastAccessed=new Map;ticks=0;lastTick=new Map;touchKey(t){this.lastAccessed.set(t,Date.now()),this.lastTick.set(t,this.ticks)}dropKey(t){let e=this.videoDecoders.get(t);if(e){try{e.destroy()}catch{}this.videoDecoders.delete(t)}let r=this.audioDecoders.get(t);if(r){try{r.destroy()}catch{}this.audioDecoders.delete(t)}this.lastAccessed.delete(t),this.lastTick.delete(t)}tick(t=120){this.ticks++;for(let[e,r]of this.lastTick)this.ticks-r>t&&this.dropKey(e)}destroy(){for(let t of this.videoDecoders.values())try{t.destroy()}catch{}this.videoDecoders.clear();for(let t of this.audioDecoders.values())try{t.destroy()}catch{}this.audioDecoders.clear(),this.lastAccessed.clear(),this.lastTick.clear()}get size(){return this.videoDecoders.size+this.audioDecoders.size}prune(t=3e5){let e=Date.now();for(let[r,i]of this.lastAccessed.entries())e-i>t&&this.dropKey(r)}getVideo(t,e,r){let i=`${t}-${e}-${r??"default"}`,n=this.videoDecoders.get(i);return n||(n=new st(t,e),this.videoDecoders.set(i,n)),this.touchKey(i),this.prune(),n}getAudio(t,e){let r=`${t}-${e??"default"}`,i=this.audioDecoders.get(r);return i||(i=new nt(t,!1),this.audioDecoders.set(r,i)),this.touchKey(r),this.prune(),i}clearNode(t){let e=[...this.videoDecoders.keys(),...this.audioDecoders.keys()];for(let r of e)r.includes(t)&&this.dropKey(r)}},ee=new at;x();x();var Dt=`
1
+ import{a as st}from"./chunk-LKYN3BM2.mjs";import{o as Gt,p as D,q as T,r as Mt,s as Ut,t as kt}from"./chunk-6THE6J3A.mjs";import{c as yt,d as xt,e as $}from"./chunk-SYP4AJMF.mjs";import{a as Pt,b as it,d as bt,e as A}from"./chunk-KJGNTREI.mjs";import{B as wt,b as vt,j as O,v as St,y as G,z as U}from"./chunk-T36SKUWK.mjs";import{a as B,b as gt}from"./chunk-IQC2I5A5.mjs";import{e as x}from"./chunk-BVF64D6H.mjs";x();var I=class{constructor(t,e){this.url=t;this.isHeadless=e}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 t=await A.acquire(this.url);this.destroyed?A.release(this.url):this.input=t}catch(t){throw this.initPromise=null,t}})(),this.initPromise)}destroy(){this.destroyed=!0,this.iterator?.return(),this.input&&(A.release(this.url),this.input=null),this.initPromise=null,this.onDestroy()}},ot=class extends I{canvasSink=null;videoSampleSink=null;currentFrame=null;nextFrame=null;currentSample=null;nextSample=null;headlessQueue=[];backwardFrames=[];backwardBytes=0;backwardEnd;lastHeadlessTimestamp;isDecoding=!1;decodeBuffer=null;nextRequest=null;pushHeadlessQueue(t){let e=this.headlessQueue.findIndex(r=>r.timestamp>t.timestamp);e===-1?this.headlessQueue.push(t):this.headlessQueue.splice(e,0,t)}async fillHeadlessQueue(t){if(this.iterator)for(;this.headlessQueue.length<2;){let e=await this.iterator.next();if(this.currentFetchId!==t){e.value?.close?.();return}if(e.done||!e.value)break;this.pushHeadlessQueue(e.value)}}async closeIterator(t){if(t)try{await t.return()}catch{}}resetSinks(){let t=this.iterator;if(this.iterator=null,t)try{t.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 e of this.headlessQueue)try{e.close()}catch{}this.headlessQueue=[],this.clearBackwardFrames(),this.lastHeadlessTimestamp=void 0,this.decodeBuffer=null,this.iteratorStartTimestamp=-1}clearBackwardFrames(){for(let t of this.backwardFrames)t.close();this.backwardFrames=[],this.backwardBytes=0,this.backwardEnd=void 0}async copyHeadlessSample(t,e){let r=t.displayWidth,i=t.displayHeight,n=r*i*4,s=this.decodeBuffer;return(!s||s.length!==n)&&(s=new Uint8Array(n),this.decodeBuffer=s),await t.copyTo(s,{format:"RGBA"}),this.currentFetchId!==e||this.destroyed||!this.input?null:(gt(s),{width:r,height:i,buffer:s})}cachedBackwardFrame(t){let e,r=-1;for(let[n,s]of this.backwardFrames.entries()){if(s.timestamp>t+1e-4)break;e=s,r=n}let i=this.backwardFrames[r+1]?.timestamp??this.backwardEnd;if(!(!e||!(e.duration>0)||t+1e-4>=Math.min(e.timestamp+e.duration,i??1/0)))return e}async fillBackwardFrames(t,e){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,t-.5));try{for await(let i of r){if(i.timestamp>t+1e-4&&(this.backwardEnd=i.timestamp),this.destroyed||this.currentFetchId!==e||i.timestamp>t+1e-4){i.close();break}let n=i.displayWidth*i.displayHeight*4;if(n>48*1024*1024){i.close();break}for(this.backwardFrames.push(i),this.backwardBytes+=n;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(t,e){if(!this.canvasSink)return;let r=Math.max(0,Number.isFinite(t)?t:0),i=this.iterator;if(this.iterator=null,await this.closeIterator(i),this.currentFetchId!==e||this.destroyed)return;this.iterator=this.canvasSink.canvases(r);let n=await this.iterator.next();if(this.currentFetchId!==e||this.destroyed)return;this.currentFrame=n.value??null;let s=await this.iterator.next();this.currentFetchId!==e||this.destroyed||(this.nextFrame=s.value??null,this.iteratorStartTimestamp=r)}async startIteratorHeadless(t,e){if(!this.videoSampleSink)return;let r=Math.max(0,Number.isFinite(t)?t:0),i=this.iterator;if(this.iterator=null,await this.closeIterator(i),this.currentFetchId!==e||this.destroyed)return;for(let s of this.headlessQueue)s.close();this.headlessQueue=[];let n=Math.max(0,r-.1);this.iterator=this.videoSampleSink.samples(n),await this.fillHeadlessQueue(e),!(this.currentFetchId!==e||this.destroyed)&&(this.iteratorStartTimestamp=r)}async getFrame(t){if(await this.init(),this.destroyed||!this.input)return null;let e=Math.max(0,Number.isFinite(t)?t:0);return this.isDecoding?(this.nextRequest&&this.nextRequest.resolve(null),new Promise((r,i)=>{this.nextRequest={timestampSec:e,resolve:r,reject:i}})):this.executeDecode(e)}async executeDecode(t){this.isDecoding=!0;try{return await this.performDecode(t)}finally{if(this.isDecoding=!1,this.nextRequest){let e=this.nextRequest;this.nextRequest=null,this.executeDecode(e.timestampSec).then(e.resolve).catch(e.reject)}}}async performDecodeHeadless(t,e){if(!this.videoSampleSink){if(this.destroyed||!this.input)return null;let c=await this.input.getPrimaryVideoTrack();if(!c)return null;this.videoSampleSink=new Pt(c)}let r=1e-4,i=1,n=.01,s=this.lastHeadlessTimestamp!==void 0&&t<this.lastHeadlessTimestamp-1e-4;this.lastHeadlessTimestamp=t;let a=this.cachedBackwardFrame(t);if(!a&&s&&(await this.fillBackwardFrames(t,e),a=this.cachedBackwardFrame(t)),a)return this.copyHeadlessSample(a,e);if((!this.iterator||t<this.iteratorStartTimestamp-r||this.headlessQueue.length>0&&t<this.headlessQueue[0].timestamp-n||this.headlessQueue.length>0&&t-this.headlessQueue[0].timestamp>i)&&(await this.startIteratorHeadless(t,e),this.currentFetchId!==e||this.destroyed||!this.input))return null;for(;;){if(await this.fillHeadlessQueue(e),this.currentFetchId!==e||this.destroyed||!this.input)return null;if(this.headlessQueue.length>=2&&this.headlessQueue[1].timestamp<=t+r){this.headlessQueue.shift()?.close();continue}break}let o=this.headlessQueue[0];return o?this.copyHeadlessSample(o,e):null}async performDecodeInternal(t){this.currentFetchId++;let e=this.currentFetchId;if(this.isHeadless)return this.performDecodeHeadless(t,e);if(!this.canvasSink){if(this.destroyed||!this.input)return null;let a=await this.input.getPrimaryVideoTrack();if(!a)return null;this.canvasSink=new it(a,{poolSize:3,alpha:!0})}let r=1e-4;if((!this.iterator||t<this.iteratorStartTimestamp-r||this.currentFrame&&t<this.currentFrame.timestamp-.01||this.currentFrame&&t-this.currentFrame.timestamp>1)&&(await this.startIterator(t,e),this.currentFetchId!==e||this.destroyed||!this.input))return null;for(;this.nextFrame&&this.nextFrame.timestamp<=t+r;)if(this.currentFrame=this.nextFrame,this.nextFrame=null,this.iterator){let a=await this.iterator.next();if(this.currentFetchId!==e||this.destroyed||!this.input)return null;this.nextFrame=a.value??null}if(!this.currentFrame)return null;let s=this.currentFrame.canvas;return{width:s.width,height:s.height,canvas:s}}async performDecode(t){let e=Math.max(0,Number.isFinite(t)?t:0);try{return await this.performDecodeInternal(e)}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 n=await this.input.getPrimaryVideoTrack();if(n&&!this.destroyed)return this.canvasSink=new it(n,{poolSize:3,alpha:!0,decoderOptions:{hardwareAcceleration:"prefer-software"}}),await this.performDecodeInternal(e)}}catch{}throw r}}},nt=class extends I{audioSink=null;onDestroy(){this.audioSink=null}async startIterator(t,e){this.audioSink&&(this.iterator?.return(),this.iterator=this.audioSink.buffers(t),this.iteratorStartTimestamp=t)}async*getBuffers(t){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 bt(i)}(!this.iterator||Math.abs(t-this.iteratorStartTimestamp)>.05)&&(this.currentFetchId++,await this.startIterator(t,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(e){let r=e;if(r?.name==="InputDisposedError"||r?.message?.includes("disposed")||this.destroyed||!this.input)return;throw e}finally{let e=this.currentFetchId;this.currentFetchId===e&&(this.iterator=null)}}},at=class{videoDecoders=new Map;audioDecoders=new Map;lastAccessed=new Map;ticks=0;lastTick=new Map;touchKey(t){this.lastAccessed.set(t,Date.now()),this.lastTick.set(t,this.ticks)}dropKey(t){let e=this.videoDecoders.get(t);if(e){try{e.destroy()}catch{}this.videoDecoders.delete(t)}let r=this.audioDecoders.get(t);if(r){try{r.destroy()}catch{}this.audioDecoders.delete(t)}this.lastAccessed.delete(t),this.lastTick.delete(t)}tick(t=120){this.ticks++;for(let[e,r]of this.lastTick)this.ticks-r>t&&this.dropKey(e)}destroy(){for(let t of this.videoDecoders.values())try{t.destroy()}catch{}this.videoDecoders.clear();for(let t of this.audioDecoders.values())try{t.destroy()}catch{}this.audioDecoders.clear(),this.lastAccessed.clear(),this.lastTick.clear()}get size(){return this.videoDecoders.size+this.audioDecoders.size}prune(t=3e5){let e=Date.now();for(let[r,i]of this.lastAccessed.entries())e-i>t&&this.dropKey(r)}getVideo(t,e,r){let i=`${t}-${e}-${r??"default"}`,n=this.videoDecoders.get(i);return n||(n=new ot(t,e),this.videoDecoders.set(i,n)),this.touchKey(i),this.prune(),n}getAudio(t,e){let r=`${t}-${e??"default"}`,i=this.audioDecoders.get(r);return i||(i=new nt(t,!1),this.audioDecoders.set(r,i)),this.touchKey(r),this.prune(),i}clearNode(t){let e=[...this.videoDecoders.keys(),...this.audioDecoders.keys()];for(let r of e)r.includes(t)&&this.dropKey(r)}},ee=new at;x();x();var Bt=`
2
2
  struct CompositeUniforms {
3
3
  blendMode : u32,
4
4
  padding1 : u32,
@@ -183,7 +183,7 @@ fn fs(@builtin(position) pos: vec4<f32>) -> @location(0) vec4<f32> {
183
183
 
184
184
  return accum / max(totalWeight, 0.0001);
185
185
  }
186
- `,ut=class{textures=[];texturesByKey=new Map;index=0;getTexture(t,e,r,i,n){let s=new Set(Array.isArray(n)?n:n?[n]:[]),a=`${e}x${r}:${i}`,o=this.texturesByKey.get(a);if(o)for(let u=0;u<o.length;u++){let h=o[u];if(!s.has(h)){o.splice(u,1),o.unshift(h);let p=this.textures.indexOf(h);return p>=this.index&&(this.textures.splice(p,1),this.textures.splice(this.index,0,h),this.index++),h}}let c=t.createTexture({size:[e,r],format:i,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC});return this.texturesByKey.has(a)||this.texturesByKey.set(a,[]),this.texturesByKey.get(a).unshift(c),this.textures.splice(this.index,0,c),this.index++,c}reset(){this.index=0}destroy(){for(let t of this.textures)t.destroy();this.textures=[],this.texturesByKey.clear(),this.index=0}},Wt={normal:0,"source-over":0,multiply:1,screen:2,overlay:3,darken:4,lighten:5,"color-dodge":6,"color-burn":7,"hard-light":8,"soft-light":9,difference:10,exclusion:11,hue:12,saturation:13,color:14,luminosity:15,"mask-in":16,"destination-in":16,"mask-out":17,"destination-out":17,"source-in":18,"source-out":19,"source-atop":20,"destination-over":21,"destination-atop":22,lighter:23,copy:24,xor:25,"luma-in":26,"luma-out":27},E=class{device;compositeUniformLayout;dualTextureLayout;motionBlurUniformLayout;singleTextureLayout;compositePipeline;motionBlurPipeline;compositePool;motionBlurPool;texturePool;compositeUniformBindGroupCache=new U;motionBlurUniformBindGroupCache=new U;compositeData=new Uint32Array(4);motionBlurData=new Float32Array(8);constructor(t,e){this.device=t,this.compositePool=new G(1024,GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST),this.motionBlurPool=new G(1024,GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST),this.texturePool=new ut,this.compositeUniformLayout=t.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),this.dualTextureLayout=t.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:2,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}}]}),this.motionBlurUniformLayout=t.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),this.singleTextureLayout=t.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}}]});let r=t.createPipelineLayout({bindGroupLayouts:[this.compositeUniformLayout,this.dualTextureLayout]}),i=t.createShaderModule({label:"composite.wgsl",code:Dt});this.compositePipeline=t.createRenderPipeline({label:"CompositePipeline",layout:r,vertex:{module:i,entryPoint:"vs"},fragment:{module:i,entryPoint:"fs",targets:[{format:e}]},primitive:{topology:"triangle-strip"}});let n=t.createPipelineLayout({bindGroupLayouts:[this.motionBlurUniformLayout,this.singleTextureLayout]}),s=t.createShaderModule({label:"motion-blur-2d.wgsl",code:Vt});this.motionBlurPipeline=t.createRenderPipeline({label:"MotionBlurPipeline",layout:n,vertex:{module:s,entryPoint:"vs"},fragment:{module:s,entryPoint:"fs",targets:[{format:e}]},primitive:{topology:"triangle-list"}})}resetPools(){this.compositePool.reset(),this.motionBlurPool.reset(),this.texturePool.reset()}getTexture(t,e,r,i,n){return this.texturePool.getTexture(t,e,r,i,n)}getBuffer(t,e){return this.compositePool.getBuffer(t,e)}composite(t,e,r,i,n,s,a,o){let c=r.getSampler(this.device),u=[i,n];o&&(Array.isArray(o)?u.push(...o):u.push(o));let h=this.texturePool.getTexture(this.device,i.width,i.height,a,u);this.compositeData[0]=Wt[s]??0;let p=this.compositePool.getBuffer(this.device,this.compositeData),d=t.beginRenderPass({colorAttachments:[{view:h.createView(),loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});d.setPipeline(this.compositePipeline);let f=this.compositeUniformBindGroupCache.getBindGroup(this.device,this.compositeUniformLayout,p);d.setBindGroup(0,f);let m=e.getCompositeBindGroup(this.device,this.dualTextureLayout,i,n,c);return d.setBindGroup(1,m),d.draw(4),d.end(),h}applyMotionBlur(t,e,r,i,n,s,a=180,o=16,c,u){if(Math.abs(n)<.1&&Math.abs(s)<.1||a<=0)return i;let h=r.getSampler(this.device),p=[i];u&&(Array.isArray(u)?p.push(...u):p.push(u));let d=this.texturePool.getTexture(this.device,i.width,i.height,c,p);this.motionBlurData[0]=n/i.width,this.motionBlurData[1]=s/i.height,this.motionBlurData[2]=0,this.motionBlurData[3]=0,this.motionBlurData[4]=a/360,this.motionBlurData[5]=o,this.motionBlurData[6]=i.width,this.motionBlurData[7]=i.height;let f=this.motionBlurPool.getBuffer(this.device,this.motionBlurData),m=t.beginRenderPass({colorAttachments:[{view:d.createView(),loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});m.setPipeline(this.motionBlurPipeline);let y=this.motionBlurUniformBindGroupCache.getBindGroup(this.device,this.motionBlurUniformLayout,f);return m.setBindGroup(0,y),m.setBindGroup(1,e.getBindGroup(this.device,this.singleTextureLayout,i,h)),m.draw(3),m.end(),d}destroy(){this.compositePool.destroy(),this.motionBlurPool.destroy(),this.texturePool.destroy(),this.compositeUniformBindGroupCache.destroy(),this.motionBlurUniformBindGroupCache.destroy()}};x();x();var V=class{cache=new WeakMap;dualCache=new WeakMap;getBindGroup(t,e,r,i){let n=this.cache.get(r);n||(n=new Map,this.cache.set(r,n));let s=n.get(e);return s||(s=t.createBindGroup({layout:e,entries:[{binding:0,resource:r.createView()},{binding:1,resource:i}]}),n.set(e,s)),s}getCompositeBindGroup(t,e,r,i,n){let s=this.dualCache.get(r);s||(s=new WeakMap,this.dualCache.set(r,s));let a=s.get(i);a||(a=new Map,s.set(i,a));let o=a.get(e);return o||(o=t.createBindGroup({layout:e,entries:[{binding:0,resource:r.createView()},{binding:1,resource:i.createView()},{binding:2,resource:n}]}),a.set(e,o)),o}destroy(){this.cache=new WeakMap,this.dualCache=new WeakMap}};x();var W=class{scissorStack=[];stencilStack=[];pushScissor(t,e,r){this.scissorStack.push({rect:t,surfaceWidth:e,surfaceHeight:r})}popScissor(){this.scissorStack.length>0&&this.scissorStack.pop()}saveScissors(){return[...this.scissorStack]}restoreScissors(t){this.scissorStack=[...t]}clearScissors(){this.scissorStack=[]}getCurrentScissor(t,e){let r=this.scissorStack[this.scissorStack.length-1];if(r&&!(t!==void 0&&e!==void 0&&r.surfaceWidth!==void 0&&r.surfaceHeight!==void 0&&r.surfaceWidth!==0&&r.surfaceHeight!==0&&(r.surfaceWidth!==t||r.surfaceHeight!==e)))return r.rect}pushStencilClip(t){this.stencilStack.push(t)}popStencilClip(){this.stencilStack.length>0&&this.stencilStack.pop()}getCurrentStencil(){return this.stencilStack[this.stencilStack.length-1]}applyScissorToPass(t,e,r){let i=this.getCurrentScissor(e,r);if(!i){t.setScissorRect(0,0,Math.max(1,Math.floor(e)),Math.max(1,Math.floor(r)));return}let n=Math.max(0,Math.floor(i.x)),s=Math.max(0,Math.floor(i.y)),a=Math.min(e,Math.ceil(i.x+i.width)),o=Math.min(r,Math.ceil(i.y+i.height)),c=Math.max(0,a-n),u=Math.max(0,o-s);if(!Number.isFinite(n)||!Number.isFinite(s)||!Number.isFinite(c)||!Number.isFinite(u)||c<=0||u<=0)t.setScissorRect(0,0,1,1);else{let h=Math.min(c,Math.max(0,e-n)),p=Math.min(u,Math.max(0,r-s));h<=0||p<=0?t.setScissorRect(0,0,1,1):t.setScissorRect(Math.floor(n),Math.floor(s),Math.floor(h),Math.floor(p))}}destroy(){this.scissorStack=[],this.stencilStack=[]}};x();function Ct(l,t,e,r,i=24){let n=[],s=l;for(let a=1;a<=i;a++){let o=a/i,c=1-o,u=c*c,h=u*c,p=o*o,d=p*o,f={x:h*l.x+3*u*o*t.x+3*c*p*e.x+d*r.x,y:h*l.y+3*u*o*t.y+3*c*p*e.y+d*r.y};n.push({p0:s,p1:f}),s=f}return n}function kt(l,t,e,r=16){let i=[],n=l;for(let s=1;s<=r;s++){let a=s/r,o=1-a,c=o*o,u=a*a,h={x:c*l.x+2*o*a*t.x+u*e.x,y:c*l.y+2*o*a*t.y+u*e.y};i.push({p0:n,p1:h}),n=h}return i}function zt(l,t,e,r,i,n,s){let a=Math.abs(t),o=Math.abs(e);if(a<1e-9||o<1e-9)return[{p0:l,p1:s}];if(Math.hypot(s.x-l.x,s.y-l.y)<1e-9)return[];let c=r*Math.PI/180,u=Math.cos(c),h=Math.sin(c),p=(l.x-s.x)/2,d=(l.y-s.y)/2,f=u*p+h*d,m=-h*p+u*d,y=f*f/(a*a)+m*m/(o*o);y>1&&(a*=Math.sqrt(y),o*=Math.sqrt(y));let g=a*a*o*o-a*a*m*m-o*o*f*f,v=a*a*m*m+o*o*f*f,b=(i===n?-1:1)*Math.sqrt(Math.max(0,g/v)),P=b*a*m/o,S=-b*o*f/a,M=u*P-h*S+(l.x+s.x)/2,F=h*P+u*S+(l.y+s.y)/2,tt=(k,_,R,L)=>Math.atan2(k*L-_*R,k*R+_*L),et=tt(1,0,(f-P)/a,(m-S)/o),B=tt((f-P)/a,(m-S)/o,(-f-P)/a,(-m-S)/o);!n&&B>0&&(B-=2*Math.PI),n&&B<0&&(B+=2*Math.PI);let rt=Math.max(4,Math.ceil(Math.abs(B)/(2*Math.PI)*64)),ft=[],dt=l;for(let k=1;k<=rt;k++){let _=et+B*k/rt,R=a*Math.cos(_),L=o*Math.sin(_),mt=k===rt?s:{x:u*R-h*L+M,y:h*R+u*L+F};ft.push({p0:dt,p1:mt}),dt=mt}return ft}function z(l){let t=[];if(!l||typeof l!="string")return t;let e=[],r=/([a-df-z])|([-+]?(?:\d*\.\d+|\d+)(?:[eE][-+]?\d+)?)/gi,i;for(;(i=r.exec(l))!==null;)i[1]?e.push(i[1]):i[2]&&e.push(parseFloat(i[2]));let n=0,s={x:0,y:0},a={x:0,y:0},o=null,c=null;for(;n<e.length;){let u=e[n++];if(typeof u!="string")continue;let h=u,p=h===h.toLowerCase(),d=h.toUpperCase(),f=()=>n<e.length&&typeof e[n]=="number"?e[n++]:0;switch(d){case"M":{let m=!0;for(;n<e.length&&typeof e[n]=="number";){let y=f(),g=f();p&&(y+=s.x,g+=s.y),m?(s={x:y,y:g},a={x:y,y:g},m=!1):(t.push({p0:s,p1:{x:y,y:g}}),s={x:y,y:g})}o=null,c=null;break}case"L":{for(;n<e.length&&typeof e[n]=="number";){let m=f(),y=f();p&&(m+=s.x,y+=s.y),t.push({p0:s,p1:{x:m,y}}),s={x:m,y}}o=null,c=null;break}case"H":{for(;n<e.length&&typeof e[n]=="number";){let m=f();p&&(m+=s.x);let y={x:m,y:s.y};t.push({p0:s,p1:y}),s=y}o=null,c=null;break}case"V":{for(;n<e.length&&typeof e[n]=="number";){let m=f();p&&(m+=s.y);let y={x:s.x,y:m};t.push({p0:s,p1:y}),s=y}o=null,c=null;break}case"C":{for(;n<e.length&&typeof e[n]=="number";){let m=f(),y=f(),g=f(),v=f(),b=f(),P=f();p&&(m+=s.x,y+=s.y,g+=s.x,v+=s.y,b+=s.x,P+=s.y);let S={x:m,y},M={x:g,y:v},F={x:b,y:P};t.push(...Ct(s,S,M,F)),s=F,o=M}c=null;break}case"S":{for(;n<e.length&&typeof e[n]=="number";){let m=f(),y=f(),g=f(),v=f();p&&(m+=s.x,y+=s.y,g+=s.x,v+=s.y);let b;o?b={x:2*s.x-o.x,y:2*s.y-o.y}:b={x:s.x,y:s.y};let P={x:m,y},S={x:g,y:v};t.push(...Ct(s,b,P,S)),s=S,o=P}c=null;break}case"Q":{for(;n<e.length&&typeof e[n]=="number";){let m=f(),y=f(),g=f(),v=f();p&&(m+=s.x,y+=s.y,g+=s.x,v+=s.y);let b={x:m,y},P={x:g,y:v};t.push(...kt(s,b,P)),s=P,c=b}o=null;break}case"T":{for(;n<e.length&&typeof e[n]=="number";){let m=f(),y=f();p&&(m+=s.x,y+=s.y);let g;c?g={x:2*s.x-c.x,y:2*s.y-c.y}:g={x:s.x,y:s.y};let v={x:m,y};t.push(...kt(s,g,v)),s=v,c=g}o=null;break}case"A":{for(;n<e.length&&typeof e[n]=="number";){let m=f(),y=f(),g=f(),v=f()!==0,b=f()!==0,P=f(),S=f();p&&(P+=s.x,S+=s.y);let M={x:P,y:S};t.push(...zt(s,m,y,g,v,b,M)),s=M}o=null,c=null;break}case"Z":{Math.hypot(s.x-a.x,s.y-a.y)>1e-5&&t.push({p0:s,p1:a}),s=a,o=null,c=null;break}default:break}}return t}function j(l,t,e,r=0){if(l.length===0)return[];let i=[],n=0;for(let u of l){let h=Math.hypot(u.p1.x-u.p0.x,u.p1.y-u.p0.y);i.push(h),n+=h}if(n<1e-6)return[];let s=Math.abs(r)>1?r%360/360:r,a=(t+s)%1,o=(e+s)%1;a<0&&(a+=1),o<0&&(o+=1);let c=(u,h)=>{if(u>=h)return[];let p=[],d=0;for(let f=0;f<l.length;f++){let m=l[f],y=i[f],g=d,v=d+y;if(d=v,v<=u||g>=h||y<1e-6)continue;let b=Math.max(0,(u-g)/y),P=Math.min(1,(h-g)/y);if(P>b){let S={x:m.p0.x+(m.p1.x-m.p0.x)*b,y:m.p0.y+(m.p1.y-m.p0.y)*b},M={x:m.p0.x+(m.p1.x-m.p0.x)*P,y:m.p0.y+(m.p1.y-m.p0.y)*P};p.push({p0:S,p1:M})}}return p};if(t===0&&e===1&&r===0)return[...l];if(Math.abs(a-o)<1e-5)return[];if(a<=o)return c(a*n,o*n);{let u=c(a*n,n),h=c(0,o*n);return[...u,...h]}}function lt(l,t,e=0){if(l.length===0||t.length===0)return l;let r=0;for(let d of t)r+=d;if(r<1e-5)return l;let i=0,n=[];for(let d of l){let f=Math.hypot(d.p1.x-d.p0.x,d.p1.y-d.p0.y);n.push(f),i+=f}let s=[],a=(e%r+r)%r,o=0,c=!0,u=a;for(;u>t[o];)u-=t[o],o=(o+1)%t.length,c=!c;let h=t[o]-u,p=0;for(;p<i;){let d=Math.min(h,i-p);if(c&&d>1e-4){let f=j(l,p/i,(p+d)/i);s.push(...f)}p+=d,o=(o+1)%t.length,c=!c,h=t[o]}return s}function Ft(l,t,e=0,r=0,i=0,n=0){let s=Math.min(l/2,t/2),a=Math.min(e,s),o=Math.min(r,s),c=Math.min(i,s),u=Math.min(n,s);return a===0&&o===0&&c===0&&u===0?`M 0 0 L ${l} 0 L ${l} ${t} L 0 ${t} Z`:[`M ${a} 0`,`L ${l-o} 0`,o>0?`Q ${l} 0 ${l} ${o}`:`L ${l} 0`,`L ${l} ${t-c}`,c>0?`Q ${l} ${t} ${l-c} ${t}`:`L ${l} ${t}`,`L ${u} ${t}`,u>0?`Q 0 ${t} 0 ${t-u}`:`L 0 ${t}`,`L 0 ${a}`,a>0?`Q 0 0 ${a} 0`:"L 0 0","Z"].join(" ")}function jt(l,t){let e=Math.min(l,t)/2,r=l/2,i=t/2,n=e*.5522847498;return[`M ${r} ${i-e}`,`C ${r+n} ${i-e} ${r+e} ${i-n} ${r+e} ${i}`,`C ${r+e} ${i+n} ${r+n} ${i+e} ${r} ${i+e}`,`C ${r-n} ${i+e} ${r-e} ${i+n} ${r-e} ${i}`,`C ${r-e} ${i-n} ${r-n} ${i-e} ${r} ${i-e}`,"Z"].join(" ")}function Ht(l,t){let e=l/2,r=t/2,i=e,n=r,s=e*.5522847498,a=r*.5522847498;return[`M ${i} ${n-r}`,`C ${i+s} ${n-r} ${i+e} ${n-a} ${i+e} ${n}`,`C ${i+e} ${n+a} ${i+s} ${n+r} ${i} ${n+r}`,`C ${i-s} ${n+r} ${i-e} ${n+a} ${i-e} ${n}`,`C ${i-e} ${n-a} ${i-s} ${n-r} ${i} ${n-r}`,"Z"].join(" ")}function Nt(l,t,e=5){let r=Math.max(3,e),i=Math.min(l,t)/2,n=l/2,s=t/2,a=[];for(let o=0;o<r;o++){let c=-Math.PI/2+o*2*Math.PI/r;a.push({x:n+i*Math.cos(c),y:s+i*Math.sin(c)})}return a.map((o,c)=>`${c===0?"M":"L"} ${o.x} ${o.y}`).join(" ")+" Z"}function qt(l,t,e=5,r=.5){let i=Math.max(3,e),n=Math.min(l,t)/2,s=n*Math.max(.01,Math.min(.99,r)),a=l/2,o=t/2,c=[];for(let u=0;u<i*2;u++){let h=-Math.PI/2+u*Math.PI/i,p=u%2===0?n:s;c.push({x:a+p*Math.cos(h),y:o+p*Math.sin(h)})}return c.map((u,h)=>`${h===0?"M":"L"} ${u.x} ${u.y}`).join(" ")+" Z"}function Qt(l,t,e=40,r=40,i=20){let n=Math.min(e,t),s=Math.min(r,l),a=Math.min(i,n),o=t/2;return[`M 0 ${o-a/2}`,`L ${l-s} ${o-a/2}`,`L ${l-s} ${o-n/2}`,`L ${l} ${o}`,`L ${l-s} ${o+n/2}`,`L ${l-s} ${o+a/2}`,`L 0 ${o+a/2}`,"Z"].join(" ")}function ct(l){let{shapeType:t,width:e,height:r}=l;switch(t){case"rect":return Ft(e,r,l.cornerRadius??0,l.cornerRadius??0,l.cornerRadius??0,l.cornerRadius??0);case"circle":return jt(e,r);case"ellipse":return Ht(e,r);case"polygon":return Nt(e,r,l.polygonSides??5);case"star":return qt(e,r,l.starPoints??5,l.starInnerRadiusRatio??.5);case"arrow":return Qt(e,r,l.arrowHeadWidth??40,l.arrowHeadLength??40,l.arrowShaftWidth??20);case"path":return l.path??"";default:return""}}function Tt(l){if(l.length<3)return[];if(l.length===3)return[l[0],l[1],l[2]];let t=[...l],e=t[t.length-1],r=t[0];if(Math.hypot(e.x-r.x,e.y-r.y)<1e-5&&t.pop(),t.length<3)return[];let i=0;for(let h=0;h<t.length;h++){let p=(h+1)%t.length;i+=t[h].x*t[p].y-t[p].x*t[h].y}i<0&&t.reverse();let n=(h,p,d,f)=>{let m=(d.x-p.x)*(h.y-p.y)-(d.y-p.y)*(h.x-p.x),y=(f.x-d.x)*(h.y-d.y)-(f.y-d.y)*(h.x-d.x),g=(p.x-f.x)*(h.y-f.y)-(p.y-f.y)*(h.x-f.x);return m>=-1e-6&&y>=-1e-6&&g>=-1e-6},s=(h,p,d,f)=>{if((p.x-h.x)*(d.y-h.y)-(p.y-h.y)*(d.x-h.x)<=1e-7)return!1;for(let y of f)if(!(y===h||y===p||y===d)&&n(y,h,p,d))return!1;return!0},a=[],o=[...t],c=0,u=o.length*o.length*2;for(;o.length>3&&c<u;){c++;let h=!1;for(let p=0;p<o.length;p++){let d=o[(p-1+o.length)%o.length],f=o[p],m=o[(p+1)%o.length];if(s(d,f,m,o)){a.push(d,f,m),o.splice(p,1),h=!0;break}}h||(a.push(o[0],o[1],o[2]),o.splice(1,1))}return o.length===3&&a.push(o[0],o[1],o[2]),a}function _t(l){let{shapeType:t,width:e,height:r}=l;if(t==="rect"){let i=l.cornerRadius??0;if(i<=0)return new Float32Array([0,0,e,0,e,r,0,0,e,r,0,r]);let n=Ft(e,r,i,i,i,i),a=z(n).map(u=>u.p0),o=Tt(a),c=new Float32Array(o.length*2);for(let u=0;u<o.length;u++)c[u*2]=o[u].x,c[u*2+1]=o[u].y;return c}if(t==="circle"||t==="ellipse"){let i=e/2,n=r/2,s=t==="circle"?Math.min(e,r)/2:e/2,a=t==="circle"?s:r/2,o=48,c=new Float32Array(o*3*2),u=0;for(let h=0;h<o;h++){let p=h*2*Math.PI/o,d=(h+1)*2*Math.PI/o;c[u++]=i,c[u++]=n,c[u++]=i+s*Math.cos(p),c[u++]=n+a*Math.sin(p),c[u++]=i+s*Math.cos(d),c[u++]=n+a*Math.sin(d)}return c}if(t==="polygon"){let i=Math.max(3,l.polygonSides??5),n=Math.min(e,r)/2,s=e/2,a=r/2,o=new Float32Array(i*3*2),c=0;for(let u=0;u<i;u++){let h=-Math.PI/2+u*2*Math.PI/i,p=-Math.PI/2+(u+1)*2*Math.PI/i;o[c++]=s,o[c++]=a,o[c++]=s+n*Math.cos(h),o[c++]=a+n*Math.sin(h),o[c++]=s+n*Math.cos(p),o[c++]=a+n*Math.sin(p)}return o}if(t==="star"){let i=Math.max(3,l.starPoints??5),n=Math.min(e,r)/2,s=n*Math.max(.01,Math.min(.99,l.starInnerRadiusRatio??.5)),a=e/2,o=r/2,c=i*2,u=new Float32Array(c*3*2),h=0;for(let p=0;p<c;p++){let d=-Math.PI/2+p*Math.PI/i,f=-Math.PI/2+(p+1)*Math.PI/i,m=p%2===0?n:s,y=(p+1)%2===0?n:s;u[h++]=a,u[h++]=o,u[h++]=a+m*Math.cos(d),u[h++]=o+m*Math.sin(d),u[h++]=a+y*Math.cos(f),u[h++]=o+y*Math.sin(f)}return u}if(t==="arrow"){let i=Math.min(l.arrowHeadWidth??40,r),n=Math.min(l.arrowHeadLength??40,e),s=Math.min(l.arrowShaftWidth??20,i),a=r/2,o=0,c=e-n,u=e,h=a-s/2,p=a+s/2,d=a-i/2,f=a+i/2;return new Float32Array([o,h,c,h,c,p,o,h,c,p,o,p,c,d,u,a,c,f])}if(t==="path"&&l.path){let i=z(l.path);if(i.length===0)return new Float32Array(0);let n=i.map(o=>o.p0),s=Tt(n),a=new Float32Array(s.length*2);for(let o=0;o<s.length;o++)a[o*2]=s[o].x,a[o*2+1]=s[o].y;return a}return new Float32Array(0)}x();x();var Rt=`
186
+ `,lt=class{textures=[];texturesByKey=new Map;index=0;getTexture(t,e,r,i,n){let s=new Set(Array.isArray(n)?n:n?[n]:[]),a=`${e}x${r}:${i}`,o=this.texturesByKey.get(a);if(o)for(let u=0;u<o.length;u++){let p=o[u];if(!s.has(p)){o.splice(u,1),o.unshift(p);let h=this.textures.indexOf(p);return h>=this.index&&(this.textures.splice(h,1),this.textures.splice(this.index,0,p),this.index++),p}}let c=t.createTexture({size:[e,r],format:i,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC});return this.texturesByKey.has(a)||this.texturesByKey.set(a,[]),this.texturesByKey.get(a).unshift(c),this.textures.splice(this.index,0,c),this.index++,c}reset(){this.index=0}destroy(){for(let t of this.textures)t.destroy();this.textures=[],this.texturesByKey.clear(),this.index=0}},Wt={normal:0,"source-over":0,multiply:1,screen:2,overlay:3,darken:4,lighten:5,"color-dodge":6,"color-burn":7,"hard-light":8,"soft-light":9,difference:10,exclusion:11,hue:12,saturation:13,color:14,luminosity:15,"mask-in":16,"destination-in":16,"mask-out":17,"destination-out":17,"source-in":18,"source-out":19,"source-atop":20,"destination-over":21,"destination-atop":22,lighter:23,copy:24,xor:25,"luma-in":26,"luma-out":27},E=class{device;compositeUniformLayout;dualTextureLayout;motionBlurUniformLayout;singleTextureLayout;compositePipeline;motionBlurPipeline;compositePool;motionBlurPool;texturePool;compositeUniformBindGroupCache=new U;motionBlurUniformBindGroupCache=new U;compositeData=new Uint32Array(4);motionBlurData=new Float32Array(8);constructor(t,e){this.device=t,this.compositePool=new G(1024,GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST),this.motionBlurPool=new G(1024,GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST),this.texturePool=new lt,this.compositeUniformLayout=t.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),this.dualTextureLayout=t.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:2,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}}]}),this.motionBlurUniformLayout=t.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),this.singleTextureLayout=t.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}}]});let r=t.createPipelineLayout({bindGroupLayouts:[this.compositeUniformLayout,this.dualTextureLayout]}),i=t.createShaderModule({label:"composite.wgsl",code:Bt});this.compositePipeline=t.createRenderPipeline({label:"CompositePipeline",layout:r,vertex:{module:i,entryPoint:"vs"},fragment:{module:i,entryPoint:"fs",targets:[{format:e}]},primitive:{topology:"triangle-strip"}});let n=t.createPipelineLayout({bindGroupLayouts:[this.motionBlurUniformLayout,this.singleTextureLayout]}),s=t.createShaderModule({label:"motion-blur-2d.wgsl",code:Vt});this.motionBlurPipeline=t.createRenderPipeline({label:"MotionBlurPipeline",layout:n,vertex:{module:s,entryPoint:"vs"},fragment:{module:s,entryPoint:"fs",targets:[{format:e}]},primitive:{topology:"triangle-list"}})}resetPools(){this.compositePool.reset(),this.motionBlurPool.reset(),this.texturePool.reset()}getTexture(t,e,r,i,n){return this.texturePool.getTexture(t,e,r,i,n)}getBuffer(t,e){return this.compositePool.getBuffer(t,e)}composite(t,e,r,i,n,s,a,o){let c=r.getSampler(this.device),u=[i,n];o&&(Array.isArray(o)?u.push(...o):u.push(o));let p=this.texturePool.getTexture(this.device,i.width,i.height,a,u);this.compositeData[0]=Wt[s]??0;let h=this.compositePool.getBuffer(this.device,this.compositeData),f=t.beginRenderPass({colorAttachments:[{view:p.createView(),loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});f.setPipeline(this.compositePipeline);let d=this.compositeUniformBindGroupCache.getBindGroup(this.device,this.compositeUniformLayout,h);f.setBindGroup(0,d);let m=e.getCompositeBindGroup(this.device,this.dualTextureLayout,i,n,c);return f.setBindGroup(1,m),f.draw(4),f.end(),p}applyMotionBlur(t,e,r,i,n,s,a=180,o=16,c,u){if(Math.abs(n)<.1&&Math.abs(s)<.1||a<=0)return i;let p=r.getSampler(this.device),h=[i];u&&(Array.isArray(u)?h.push(...u):h.push(u));let f=this.texturePool.getTexture(this.device,i.width,i.height,c,h);this.motionBlurData[0]=n/i.width,this.motionBlurData[1]=s/i.height,this.motionBlurData[2]=0,this.motionBlurData[3]=0,this.motionBlurData[4]=a/360,this.motionBlurData[5]=o,this.motionBlurData[6]=i.width,this.motionBlurData[7]=i.height;let d=this.motionBlurPool.getBuffer(this.device,this.motionBlurData),m=t.beginRenderPass({colorAttachments:[{view:f.createView(),loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});m.setPipeline(this.motionBlurPipeline);let y=this.motionBlurUniformBindGroupCache.getBindGroup(this.device,this.motionBlurUniformLayout,d);return m.setBindGroup(0,y),m.setBindGroup(1,e.getBindGroup(this.device,this.singleTextureLayout,i,p)),m.draw(3),m.end(),f}destroy(){this.compositePool.destroy(),this.motionBlurPool.destroy(),this.texturePool.destroy(),this.compositeUniformBindGroupCache.destroy(),this.motionBlurUniformBindGroupCache.destroy()}};x();x();var V=class{cache=new WeakMap;dualCache=new WeakMap;getBindGroup(t,e,r,i){let n=this.cache.get(r);n||(n=new Map,this.cache.set(r,n));let s=n.get(e);return s||(s=t.createBindGroup({layout:e,entries:[{binding:0,resource:r.createView()},{binding:1,resource:i}]}),n.set(e,s)),s}getCompositeBindGroup(t,e,r,i,n){let s=this.dualCache.get(r);s||(s=new WeakMap,this.dualCache.set(r,s));let a=s.get(i);a||(a=new Map,s.set(i,a));let o=a.get(e);return o||(o=t.createBindGroup({layout:e,entries:[{binding:0,resource:r.createView()},{binding:1,resource:i.createView()},{binding:2,resource:n}]}),a.set(e,o)),o}destroy(){this.cache=new WeakMap,this.dualCache=new WeakMap}};x();var W=class{scissorStack=[];stencilStack=[];pushScissor(t,e,r){this.scissorStack.push({rect:t,surfaceWidth:e,surfaceHeight:r})}popScissor(){this.scissorStack.length>0&&this.scissorStack.pop()}saveScissors(){return[...this.scissorStack]}restoreScissors(t){this.scissorStack=[...t]}clearScissors(){this.scissorStack=[]}getCurrentScissor(t,e){let r=this.scissorStack[this.scissorStack.length-1];if(r&&!(t!==void 0&&e!==void 0&&r.surfaceWidth!==void 0&&r.surfaceHeight!==void 0&&r.surfaceWidth!==0&&r.surfaceHeight!==0&&(r.surfaceWidth!==t||r.surfaceHeight!==e)))return r.rect}pushStencilClip(t){this.stencilStack.push(t)}popStencilClip(){this.stencilStack.length>0&&this.stencilStack.pop()}getCurrentStencil(){return this.stencilStack[this.stencilStack.length-1]}applyScissorToPass(t,e,r){let i=this.getCurrentScissor(e,r);if(!i){t.setScissorRect(0,0,Math.max(1,Math.floor(e)),Math.max(1,Math.floor(r)));return}let n=Math.max(0,Math.floor(i.x)),s=Math.max(0,Math.floor(i.y)),a=Math.min(e,Math.ceil(i.x+i.width)),o=Math.min(r,Math.ceil(i.y+i.height)),c=Math.max(0,a-n),u=Math.max(0,o-s);if(!Number.isFinite(n)||!Number.isFinite(s)||!Number.isFinite(c)||!Number.isFinite(u)||c<=0||u<=0)t.setScissorRect(0,0,1,1);else{let p=Math.min(c,Math.max(0,e-n)),h=Math.min(u,Math.max(0,r-s));p<=0||h<=0?t.setScissorRect(0,0,1,1):t.setScissorRect(Math.floor(n),Math.floor(s),Math.floor(p),Math.floor(h))}}destroy(){this.scissorStack=[],this.stencilStack=[]}};x();function Dt(l,t,e,r,i=24){let n=[],s=l;for(let a=1;a<=i;a++){let o=a/i,c=1-o,u=c*c,p=u*c,h=o*o,f=h*o,d={x:p*l.x+3*u*o*t.x+3*c*h*e.x+f*r.x,y:p*l.y+3*u*o*t.y+3*c*h*e.y+f*r.y};n.push({p0:s,p1:d}),s=d}return n}function Ct(l,t,e,r=16){let i=[],n=l;for(let s=1;s<=r;s++){let a=s/r,o=1-a,c=o*o,u=a*a,p={x:c*l.x+2*o*a*t.x+u*e.x,y:c*l.y+2*o*a*t.y+u*e.y};i.push({p0:n,p1:p}),n=p}return i}function zt(l,t,e,r,i,n,s){let a=Math.abs(t),o=Math.abs(e);if(a<1e-9||o<1e-9)return[{p0:l,p1:s}];if(Math.hypot(s.x-l.x,s.y-l.y)<1e-9)return[];let c=r*Math.PI/180,u=Math.cos(c),p=Math.sin(c),h=(l.x-s.x)/2,f=(l.y-s.y)/2,d=u*h+p*f,m=-p*h+u*f,y=d*d/(a*a)+m*m/(o*o);y>1&&(a*=Math.sqrt(y),o*=Math.sqrt(y));let g=a*a*o*o-a*a*m*m-o*o*d*d,P=a*a*m*m+o*o*d*d,b=(i===n?-1:1)*Math.sqrt(Math.max(0,g/P)),v=b*a*m/o,S=-b*o*d/a,M=u*v-p*S+(l.x+s.x)/2,F=p*v+u*S+(l.y+s.y)/2,tt=(C,_,R,L)=>Math.atan2(C*L-_*R,C*R+_*L),et=tt(1,0,(d-v)/a,(m-S)/o),k=tt((d-v)/a,(m-S)/o,(-d-v)/a,(-m-S)/o);!n&&k>0&&(k-=2*Math.PI),n&&k<0&&(k+=2*Math.PI);let rt=Math.max(4,Math.ceil(Math.abs(k)/(2*Math.PI)*64)),dt=[],ft=l;for(let C=1;C<=rt;C++){let _=et+k*C/rt,R=a*Math.cos(_),L=o*Math.sin(_),mt=C===rt?s:{x:u*R-p*L+M,y:p*R+u*L+F};dt.push({p0:ft,p1:mt}),ft=mt}return dt}function z(l){let t=[];if(!l||typeof l!="string")return t;let e=[],r=/([a-df-z])|([-+]?(?:\d*\.\d+|\d+)(?:[eE][-+]?\d+)?)/gi,i;for(;(i=r.exec(l))!==null;)i[1]?e.push(i[1]):i[2]&&e.push(parseFloat(i[2]));let n=0,s={x:0,y:0},a={x:0,y:0},o=null,c=null;for(;n<e.length;){let u=e[n++];if(typeof u!="string")continue;let p=u,h=p===p.toLowerCase(),f=p.toUpperCase(),d=()=>n<e.length&&typeof e[n]=="number"?e[n++]:0;switch(f){case"M":{let m=!0;for(;n<e.length&&typeof e[n]=="number";){let y=d(),g=d();h&&(y+=s.x,g+=s.y),m?(s={x:y,y:g},a={x:y,y:g},m=!1):(t.push({p0:s,p1:{x:y,y:g}}),s={x:y,y:g})}o=null,c=null;break}case"L":{for(;n<e.length&&typeof e[n]=="number";){let m=d(),y=d();h&&(m+=s.x,y+=s.y),t.push({p0:s,p1:{x:m,y}}),s={x:m,y}}o=null,c=null;break}case"H":{for(;n<e.length&&typeof e[n]=="number";){let m=d();h&&(m+=s.x);let y={x:m,y:s.y};t.push({p0:s,p1:y}),s=y}o=null,c=null;break}case"V":{for(;n<e.length&&typeof e[n]=="number";){let m=d();h&&(m+=s.y);let y={x:s.x,y:m};t.push({p0:s,p1:y}),s=y}o=null,c=null;break}case"C":{for(;n<e.length&&typeof e[n]=="number";){let m=d(),y=d(),g=d(),P=d(),b=d(),v=d();h&&(m+=s.x,y+=s.y,g+=s.x,P+=s.y,b+=s.x,v+=s.y);let S={x:m,y},M={x:g,y:P},F={x:b,y:v};t.push(...Dt(s,S,M,F)),s=F,o=M}c=null;break}case"S":{for(;n<e.length&&typeof e[n]=="number";){let m=d(),y=d(),g=d(),P=d();h&&(m+=s.x,y+=s.y,g+=s.x,P+=s.y);let b;o?b={x:2*s.x-o.x,y:2*s.y-o.y}:b={x:s.x,y:s.y};let v={x:m,y},S={x:g,y:P};t.push(...Dt(s,b,v,S)),s=S,o=v}c=null;break}case"Q":{for(;n<e.length&&typeof e[n]=="number";){let m=d(),y=d(),g=d(),P=d();h&&(m+=s.x,y+=s.y,g+=s.x,P+=s.y);let b={x:m,y},v={x:g,y:P};t.push(...Ct(s,b,v)),s=v,c=b}o=null;break}case"T":{for(;n<e.length&&typeof e[n]=="number";){let m=d(),y=d();h&&(m+=s.x,y+=s.y);let g;c?g={x:2*s.x-c.x,y:2*s.y-c.y}:g={x:s.x,y:s.y};let P={x:m,y};t.push(...Ct(s,g,P)),s=P,c=g}o=null;break}case"A":{for(;n<e.length&&typeof e[n]=="number";){let m=d(),y=d(),g=d(),P=d()!==0,b=d()!==0,v=d(),S=d();h&&(v+=s.x,S+=s.y);let M={x:v,y:S};t.push(...zt(s,m,y,g,P,b,M)),s=M}o=null,c=null;break}case"Z":{Math.hypot(s.x-a.x,s.y-a.y)>1e-5&&t.push({p0:s,p1:a}),s=a,o=null,c=null;break}default:break}}return t}function H(l,t,e,r=0){if(l.length===0)return[];let i=[],n=0;for(let u of l){let p=Math.hypot(u.p1.x-u.p0.x,u.p1.y-u.p0.y);i.push(p),n+=p}if(n<1e-6)return[];let s=Math.abs(r)>1?r%360/360:r,a=(t+s)%1,o=(e+s)%1;a<0&&(a+=1),o<0&&(o+=1);let c=(u,p)=>{if(u>=p)return[];let h=[],f=0;for(let d=0;d<l.length;d++){let m=l[d],y=i[d],g=f,P=f+y;if(f=P,P<=u||g>=p||y<1e-6)continue;let b=Math.max(0,(u-g)/y),v=Math.min(1,(p-g)/y);if(v>b){let S={x:m.p0.x+(m.p1.x-m.p0.x)*b,y:m.p0.y+(m.p1.y-m.p0.y)*b},M={x:m.p0.x+(m.p1.x-m.p0.x)*v,y:m.p0.y+(m.p1.y-m.p0.y)*v};h.push({p0:S,p1:M})}}return h};if(t===0&&e===1&&r===0)return[...l];if(Math.abs(a-o)<1e-5)return[];if(a<=o)return c(a*n,o*n);{let u=c(a*n,n),p=c(0,o*n);return[...u,...p]}}function ct(l,t,e=0){if(l.length===0||t.length===0)return l;let r=0;for(let f of t)r+=f;if(r<1e-5)return l;let i=0,n=[];for(let f of l){let d=Math.hypot(f.p1.x-f.p0.x,f.p1.y-f.p0.y);n.push(d),i+=d}let s=[],a=(e%r+r)%r,o=0,c=!0,u=a;for(;u>t[o];)u-=t[o],o=(o+1)%t.length,c=!c;let p=t[o]-u,h=0;for(;h<i;){let f=Math.min(p,i-h);if(c&&f>1e-4){let d=H(l,h/i,(h+f)/i);s.push(...d)}h+=f,o=(o+1)%t.length,c=!c,p=t[o]}return s}function Ft(l,t,e=0,r=0,i=0,n=0){let s=Math.min(l/2,t/2),a=Math.min(e,s),o=Math.min(r,s),c=Math.min(i,s),u=Math.min(n,s);return a===0&&o===0&&c===0&&u===0?`M 0 0 L ${l} 0 L ${l} ${t} L 0 ${t} Z`:[`M ${a} 0`,`L ${l-o} 0`,o>0?`Q ${l} 0 ${l} ${o}`:`L ${l} 0`,`L ${l} ${t-c}`,c>0?`Q ${l} ${t} ${l-c} ${t}`:`L ${l} ${t}`,`L ${u} ${t}`,u>0?`Q 0 ${t} 0 ${t-u}`:`L 0 ${t}`,`L 0 ${a}`,a>0?`Q 0 0 ${a} 0`:"L 0 0","Z"].join(" ")}function Ht(l,t){let e=Math.min(l,t)/2,r=l/2,i=t/2,n=e*.5522847498;return[`M ${r} ${i-e}`,`C ${r+n} ${i-e} ${r+e} ${i-n} ${r+e} ${i}`,`C ${r+e} ${i+n} ${r+n} ${i+e} ${r} ${i+e}`,`C ${r-n} ${i+e} ${r-e} ${i+n} ${r-e} ${i}`,`C ${r-e} ${i-n} ${r-n} ${i-e} ${r} ${i-e}`,"Z"].join(" ")}function jt(l,t){let e=l/2,r=t/2,i=e,n=r,s=e*.5522847498,a=r*.5522847498;return[`M ${i} ${n-r}`,`C ${i+s} ${n-r} ${i+e} ${n-a} ${i+e} ${n}`,`C ${i+e} ${n+a} ${i+s} ${n+r} ${i} ${n+r}`,`C ${i-s} ${n+r} ${i-e} ${n+a} ${i-e} ${n}`,`C ${i-e} ${n-a} ${i-s} ${n-r} ${i} ${n-r}`,"Z"].join(" ")}function Nt(l,t,e=5){let r=Math.max(3,e),i=Math.min(l,t)/2,n=l/2,s=t/2,a=[];for(let o=0;o<r;o++){let c=-Math.PI/2+o*2*Math.PI/r;a.push({x:n+i*Math.cos(c),y:s+i*Math.sin(c)})}return a.map((o,c)=>`${c===0?"M":"L"} ${o.x} ${o.y}`).join(" ")+" Z"}function qt(l,t,e=5,r=.5){let i=Math.max(3,e),n=Math.min(l,t)/2,s=n*Math.max(.01,Math.min(.99,r)),a=l/2,o=t/2,c=[];for(let u=0;u<i*2;u++){let p=-Math.PI/2+u*Math.PI/i,h=u%2===0?n:s;c.push({x:a+h*Math.cos(p),y:o+h*Math.sin(p)})}return c.map((u,p)=>`${p===0?"M":"L"} ${u.x} ${u.y}`).join(" ")+" Z"}function Qt(l,t,e=40,r=40,i=20){let n=Math.min(e,t),s=Math.min(r,l),a=Math.min(i,n),o=t/2;return[`M 0 ${o-a/2}`,`L ${l-s} ${o-a/2}`,`L ${l-s} ${o-n/2}`,`L ${l} ${o}`,`L ${l-s} ${o+n/2}`,`L ${l-s} ${o+a/2}`,`L 0 ${o+a/2}`,"Z"].join(" ")}function ut(l){let{shapeType:t,width:e,height:r}=l;switch(t){case"rect":return Ft(e,r,l.cornerRadius??0,l.cornerRadius??0,l.cornerRadius??0,l.cornerRadius??0);case"circle":return Ht(e,r);case"ellipse":return jt(e,r);case"polygon":return Nt(e,r,l.polygonSides??5);case"star":return qt(e,r,l.starPoints??5,l.starInnerRadiusRatio??.5);case"arrow":return Qt(e,r,l.arrowHeadWidth??40,l.arrowHeadLength??40,l.arrowShaftWidth??20);case"path":return l.path??"";default:return""}}function Tt(l){if(l.length<3)return[];if(l.length===3)return[l[0],l[1],l[2]];let t=[...l],e=t[t.length-1],r=t[0];if(Math.hypot(e.x-r.x,e.y-r.y)<1e-5&&t.pop(),t.length<3)return[];let i=0;for(let p=0;p<t.length;p++){let h=(p+1)%t.length;i+=t[p].x*t[h].y-t[h].x*t[p].y}i<0&&t.reverse();let n=(p,h,f,d)=>{let m=(f.x-h.x)*(p.y-h.y)-(f.y-h.y)*(p.x-h.x),y=(d.x-f.x)*(p.y-f.y)-(d.y-f.y)*(p.x-f.x),g=(h.x-d.x)*(p.y-d.y)-(h.y-d.y)*(p.x-d.x);return m>=-1e-6&&y>=-1e-6&&g>=-1e-6},s=(p,h,f,d)=>{if((h.x-p.x)*(f.y-p.y)-(h.y-p.y)*(f.x-p.x)<=1e-7)return!1;for(let y of d)if(!(y===p||y===h||y===f)&&n(y,p,h,f))return!1;return!0},a=[],o=[...t],c=0,u=o.length*o.length*2;for(;o.length>3&&c<u;){c++;let p=!1;for(let h=0;h<o.length;h++){let f=o[(h-1+o.length)%o.length],d=o[h],m=o[(h+1)%o.length];if(s(f,d,m,o)){a.push(f,d,m),o.splice(h,1),p=!0;break}}p||(a.push(o[0],o[1],o[2]),o.splice(1,1))}return o.length===3&&a.push(o[0],o[1],o[2]),a}function _t(l){let{shapeType:t,width:e,height:r}=l;if(t==="rect"){let i=l.cornerRadius??0;if(i<=0)return new Float32Array([0,0,e,0,e,r,0,0,e,r,0,r]);let n=Ft(e,r,i,i,i,i),a=z(n).map(u=>u.p0),o=Tt(a),c=new Float32Array(o.length*2);for(let u=0;u<o.length;u++)c[u*2]=o[u].x,c[u*2+1]=o[u].y;return c}if(t==="circle"||t==="ellipse"){let i=e/2,n=r/2,s=t==="circle"?Math.min(e,r)/2:e/2,a=t==="circle"?s:r/2,o=48,c=new Float32Array(o*3*2),u=0;for(let p=0;p<o;p++){let h=p*2*Math.PI/o,f=(p+1)*2*Math.PI/o;c[u++]=i,c[u++]=n,c[u++]=i+s*Math.cos(h),c[u++]=n+a*Math.sin(h),c[u++]=i+s*Math.cos(f),c[u++]=n+a*Math.sin(f)}return c}if(t==="polygon"){let i=Math.max(3,l.polygonSides??5),n=Math.min(e,r)/2,s=e/2,a=r/2,o=new Float32Array(i*3*2),c=0;for(let u=0;u<i;u++){let p=-Math.PI/2+u*2*Math.PI/i,h=-Math.PI/2+(u+1)*2*Math.PI/i;o[c++]=s,o[c++]=a,o[c++]=s+n*Math.cos(p),o[c++]=a+n*Math.sin(p),o[c++]=s+n*Math.cos(h),o[c++]=a+n*Math.sin(h)}return o}if(t==="star"){let i=Math.max(3,l.starPoints??5),n=Math.min(e,r)/2,s=n*Math.max(.01,Math.min(.99,l.starInnerRadiusRatio??.5)),a=e/2,o=r/2,c=i*2,u=new Float32Array(c*3*2),p=0;for(let h=0;h<c;h++){let f=-Math.PI/2+h*Math.PI/i,d=-Math.PI/2+(h+1)*Math.PI/i,m=h%2===0?n:s,y=(h+1)%2===0?n:s;u[p++]=a,u[p++]=o,u[p++]=a+m*Math.cos(f),u[p++]=o+m*Math.sin(f),u[p++]=a+y*Math.cos(d),u[p++]=o+y*Math.sin(d)}return u}if(t==="arrow"){let i=Math.min(l.arrowHeadWidth??40,r),n=Math.min(l.arrowHeadLength??40,e),s=Math.min(l.arrowShaftWidth??20,i),a=r/2,o=0,c=e-n,u=e,p=a-s/2,h=a+s/2,f=a-i/2,d=a+i/2;return new Float32Array([o,p,c,p,c,h,o,p,c,h,o,h,c,f,u,a,c,d])}if(t==="path"&&l.path){let i=z(l.path);if(i.length===0)return new Float32Array(0);let n=i.map(o=>o.p0),s=Tt(n),a=new Float32Array(s.length*2);for(let o=0;o<s.length;o++)a[o*2]=s[o].x,a[o*2+1]=s[o].y;return a}return new Float32Array(0)}x();x();var Rt=`
187
187
  struct Uniforms {
188
188
  transformCol0 : vec4<f32>,
189
189
  transformCol1 : vec4<f32>,
@@ -260,7 +260,7 @@ fn sdSegmentWithCap(p: vec2<f32>, a: vec2<f32>, b: vec2<f32>, radius: f32, capTy
260
260
 
261
261
  return vec4<f32>(u.color.rgb * alpha, alpha);
262
262
  }
263
- `;var H=class{device;pipeline;maxPipeline;uniformLayout;uniformPool;vertexPool;uniformBindGroupCache=new U;scratchData=new Float32Array(28);constructor(t,e){this.device=t,this.uniformPool=new G(4096,GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST),this.vertexPool=new G(4096,GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST);let r=t.createShaderModule({label:"path.wgsl",code:Rt});this.uniformLayout=C(t),this.pipeline=T(t,{label:"PathPipeline",module:r,uniformLayout:this.uniformLayout,format:e,topology:"triangle-strip"}),this.maxPipeline=T(t,{label:"PathPipeline.max",module:r,uniformLayout:this.uniformLayout,format:e,topology:"triangle-strip",blend:{color:{srcFactor:"one",dstFactor:"one",operation:"max"},alpha:{srcFactor:"one",dstFactor:"one",operation:"max"}}})}resetPools(){this.uniformPool.reset(),this.vertexPool.reset()}drawPath(t,e,r,i,n,s,a,o){let c=z(r);if(c.length===0||((o?.trimStart!==void 0||o?.trimEnd!==void 0||o?.trimOffset!==void 0)&&(c=j(c,o.trimStart??0,o.trimEnd??1,o.trimOffset??0)),o?.strokeDashArray&&o.strokeDashArray.length>0&&(c=lt(c,o.strokeDashArray,o.strokeDashOffset??0)),c.length===0))return;let u=D(i),h=o?.opacity??1,p=0;o?.strokeLineCap==="butt"?p=1:o?.strokeLineCap==="square"&&(p=2);for(let d of c)this.drawSegment(t,e,d.p0,d.p1,u,n,p,s,a,h,o)}drawSegments(t,e,r,i,n,s,a,o){let c=r;if((o?.trimStart!==void 0||o?.trimEnd!==void 0||o?.trimOffset!==void 0)&&(c=j(c,o.trimStart??0,o.trimEnd??1,o.trimOffset??0)),o?.strokeDashArray&&o.strokeDashArray.length>0&&(c=lt(c,o.strokeDashArray,o.strokeDashOffset??0)),c.length===0)return;let u=D(i),h=o?.opacity??1,p=0;o?.strokeLineCap==="butt"?p=1:o?.strokeLineCap==="square"&&(p=2);for(let d of c)this.drawSegment(t,e,d.p0,d.p1,u,n,p,s,a,h,o)}drawSegment(t,e,r,i,n,s,a,o,c,u,h){let p=this.scratchData;e.packIntoBuffer(p,u,o,c,h?.transform),p[15]=s,p[16]=n.r,p[17]=n.g,p[18]=n.b,p[19]=n.a,p[20]=a,p[21]=0,p[22]=0,p[23]=0,p[24]=r.x,p[25]=r.y,p[26]=i.x,p[27]=i.y;let d=this.uniformPool.getBuffer(this.device,p),f=i.x-r.x,m=i.y-r.y,y=Math.sqrt(f*f+m*m);if(y<1e-6)return;let g=s*.5+2,v=f/y*g,b=m/y*g,P=-b,S=v,M=new Float32Array([r.x-v-P,r.y-b-S,r.x-v+P,r.y-b+S,i.x+v-P,i.y+b-S,i.x+v+P,i.y+b+S]),F=this.vertexPool.getBuffer(this.device,M),et=h?.blendMode==="max"?this.maxPipeline:this.pipeline;t.setPipeline(et);let B=this.uniformBindGroupCache.getBindGroup(this.device,this.uniformLayout,d);t.setBindGroup(0,B),t.setVertexBuffer(0,F),t.draw(4)}destroy(){this.uniformPool.destroy(),this.vertexPool.destroy(),this.uniformBindGroupCache.destroy()}};x();x();var Lt=`
263
+ `;var j=class{device;pipeline;maxPipeline;uniformLayout;uniformPool;vertexPool;uniformBindGroupCache=new U;scratchData=new Float32Array(28);constructor(t,e){this.device=t,this.uniformPool=new G(4096,GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST),this.vertexPool=new G(4096,GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST);let r=t.createShaderModule({label:"path.wgsl",code:Rt});this.uniformLayout=D(t),this.pipeline=T(t,{label:"PathPipeline",module:r,uniformLayout:this.uniformLayout,format:e,topology:"triangle-strip"}),this.maxPipeline=T(t,{label:"PathPipeline.max",module:r,uniformLayout:this.uniformLayout,format:e,topology:"triangle-strip",blend:{color:{srcFactor:"one",dstFactor:"one",operation:"max"},alpha:{srcFactor:"one",dstFactor:"one",operation:"max"}}})}resetPools(){this.uniformPool.reset(),this.vertexPool.reset()}drawPath(t,e,r,i,n,s,a,o){let c=z(r);if(c.length===0||((o?.trimStart!==void 0||o?.trimEnd!==void 0||o?.trimOffset!==void 0)&&(c=H(c,o.trimStart??0,o.trimEnd??1,o.trimOffset??0)),o?.strokeDashArray&&o.strokeDashArray.length>0&&(c=ct(c,o.strokeDashArray,o.strokeDashOffset??0)),c.length===0))return;let u=B(i),p=o?.opacity??1,h=0;o?.strokeLineCap==="butt"?h=1:o?.strokeLineCap==="square"&&(h=2);for(let f of c)this.drawSegment(t,e,f.p0,f.p1,u,n,h,s,a,p,o)}drawSegments(t,e,r,i,n,s,a,o){let c=r;if((o?.trimStart!==void 0||o?.trimEnd!==void 0||o?.trimOffset!==void 0)&&(c=H(c,o.trimStart??0,o.trimEnd??1,o.trimOffset??0)),o?.strokeDashArray&&o.strokeDashArray.length>0&&(c=ct(c,o.strokeDashArray,o.strokeDashOffset??0)),c.length===0)return;let u=B(i),p=o?.opacity??1,h=0;o?.strokeLineCap==="butt"?h=1:o?.strokeLineCap==="square"&&(h=2);for(let f of c)this.drawSegment(t,e,f.p0,f.p1,u,n,h,s,a,p,o)}drawSegment(t,e,r,i,n,s,a,o,c,u,p){let h=this.scratchData;e.packIntoBuffer(h,u,o,c,p?.transform),h[15]=s,h[16]=n.r,h[17]=n.g,h[18]=n.b,h[19]=n.a,h[20]=a,h[21]=0,h[22]=0,h[23]=0,h[24]=r.x,h[25]=r.y,h[26]=i.x,h[27]=i.y;let f=this.uniformPool.getBuffer(this.device,h),d=i.x-r.x,m=i.y-r.y,y=Math.sqrt(d*d+m*m);if(y<1e-6)return;let g=s*.5+2,P=d/y*g,b=m/y*g,v=-b,S=P,M=new Float32Array([r.x-P-v,r.y-b-S,r.x-P+v,r.y-b+S,i.x+P-v,i.y+b-S,i.x+P+v,i.y+b+S]),F=this.vertexPool.getBuffer(this.device,M),et=p?.blendMode==="max"?this.maxPipeline:this.pipeline;t.setPipeline(et);let k=this.uniformBindGroupCache.getBindGroup(this.device,this.uniformLayout,f);t.setBindGroup(0,k),t.setVertexBuffer(0,F),t.draw(4)}destroy(){this.uniformPool.destroy(),this.vertexPool.destroy(),this.uniformBindGroupCache.destroy()}};x();x();var Lt=`
264
264
  struct Uniforms {
265
265
  transformCol0 : vec4<f32>,
266
266
  transformCol1 : vec4<f32>,
@@ -314,7 +314,7 @@ struct VSOut {
314
314
  return color * opacity;
315
315
  }
316
316
  }
317
- `;var N=class{buffers=[];index=0;size;usage;constructor(t,e){this.size=t,this.usage=e}getBuffer(t,e){if(this.index>=this.buffers.length){let i=t.createBuffer({size:this.size,usage:this.usage});this.buffers.push(i)}let r=this.buffers[this.index++];return t.queue.writeBuffer(r,0,e),r}reset(){this.index=0}destroy(){for(let t of this.buffers)t.destroy();this.buffers=[]}},q=class{device;pipeline;uniformLayout;textureLayout;uniformPool;vertexPool;uniformBindGroupCache=new U;uniformData=new Float32Array(16);vertexData=new Float32Array(16);constructor(t,e){this.device=t,this.uniformPool=new N(64,GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST),this.vertexPool=new N(64,GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST);let r=t.createShaderModule({label:"quad.wgsl",code:Lt});this.uniformLayout=C(t),this.textureLayout=t.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}}]});let i=t.createPipelineLayout({bindGroupLayouts:[this.uniformLayout,this.textureLayout]});this.pipeline=t.createRenderPipeline({label:"QuadPipeline",layout:i,vertex:{module:r,entryPoint:"vs",buffers:[{arrayStride:16,attributes:[{shaderLocation:0,offset:0,format:"float32x2"},{shaderLocation:1,offset:8,format:"float32x2"}]}]},fragment:{module:r,entryPoint:"fs",targets:[{format:e,blend:Gt}]},primitive:{topology:"triangle-strip"}})}resetPools(){this.uniformPool.reset(),this.vertexPool.reset()}draw(t,e,r,i,n,s,a,o,c,u){let h=u?.opacity??1;r.packIntoBuffer(this.uniformData,h,o,c,u?.transform);let p=this.uniformPool.getBuffer(this.device,this.uniformData),d=s.x/i.width,f=s.y/i.height,m=(s.x+s.width)/i.width,y=(s.y+s.height)/i.height;this.vertexData[0]=a.x,this.vertexData[1]=a.y,this.vertexData[2]=d,this.vertexData[3]=f,this.vertexData[4]=a.x+a.width,this.vertexData[5]=a.y,this.vertexData[6]=m,this.vertexData[7]=f,this.vertexData[8]=a.x,this.vertexData[9]=a.y+a.height,this.vertexData[10]=d,this.vertexData[11]=y,this.vertexData[12]=a.x+a.width,this.vertexData[13]=a.y+a.height,this.vertexData[14]=m,this.vertexData[15]=y;let g=this.vertexPool.getBuffer(this.device,this.vertexData),v=this.uniformBindGroupCache.getBindGroup(this.device,this.uniformLayout,p),b=e.getBindGroup(this.device,this.textureLayout,i,n);t.setPipeline(this.pipeline),t.setBindGroup(0,v),t.setBindGroup(1,b),t.setVertexBuffer(0,g),t.draw(4)}destroy(){this.uniformPool.destroy(),this.vertexPool.destroy(),this.uniformBindGroupCache.destroy()}};x();x();var Q=`
317
+ `;var N=class{buffers=[];index=0;size;usage;constructor(t,e){this.size=t,this.usage=e}getBuffer(t,e){if(this.index>=this.buffers.length){let i=t.createBuffer({size:this.size,usage:this.usage});this.buffers.push(i)}let r=this.buffers[this.index++];return t.queue.writeBuffer(r,0,e),r}reset(){this.index=0}destroy(){for(let t of this.buffers)t.destroy();this.buffers=[]}},q=class{device;pipeline;uniformLayout;textureLayout;uniformPool;vertexPool;uniformBindGroupCache=new U;uniformData=new Float32Array(16);vertexData=new Float32Array(16);constructor(t,e){this.device=t,this.uniformPool=new N(64,GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST),this.vertexPool=new N(64,GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST);let r=t.createShaderModule({label:"quad.wgsl",code:Lt});this.uniformLayout=D(t),this.textureLayout=t.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}}]});let i=t.createPipelineLayout({bindGroupLayouts:[this.uniformLayout,this.textureLayout]});this.pipeline=t.createRenderPipeline({label:"QuadPipeline",layout:i,vertex:{module:r,entryPoint:"vs",buffers:[{arrayStride:16,attributes:[{shaderLocation:0,offset:0,format:"float32x2"},{shaderLocation:1,offset:8,format:"float32x2"}]}]},fragment:{module:r,entryPoint:"fs",targets:[{format:e,blend:Gt}]},primitive:{topology:"triangle-strip"}})}resetPools(){this.uniformPool.reset(),this.vertexPool.reset()}draw(t,e,r,i,n,s,a,o,c,u){let p=u?.opacity??1;r.packIntoBuffer(this.uniformData,p,o,c,u?.transform);let h=this.uniformPool.getBuffer(this.device,this.uniformData),f=s.x/i.width,d=s.y/i.height,m=(s.x+s.width)/i.width,y=(s.y+s.height)/i.height;this.vertexData[0]=a.x,this.vertexData[1]=a.y,this.vertexData[2]=f,this.vertexData[3]=d,this.vertexData[4]=a.x+a.width,this.vertexData[5]=a.y,this.vertexData[6]=m,this.vertexData[7]=d,this.vertexData[8]=a.x,this.vertexData[9]=a.y+a.height,this.vertexData[10]=f,this.vertexData[11]=y,this.vertexData[12]=a.x+a.width,this.vertexData[13]=a.y+a.height,this.vertexData[14]=m,this.vertexData[15]=y;let g=this.vertexPool.getBuffer(this.device,this.vertexData),P=this.uniformBindGroupCache.getBindGroup(this.device,this.uniformLayout,h),b=e.getBindGroup(this.device,this.textureLayout,i,n);t.setPipeline(this.pipeline),t.setBindGroup(0,P),t.setBindGroup(1,b),t.setVertexBuffer(0,g),t.draw(4)}destroy(){this.uniformPool.destroy(),this.vertexPool.destroy(),this.uniformBindGroupCache.destroy()}};x();x();var Q=`
318
318
  struct GradientUniforms {
319
319
  info : vec4<f32>, // x = type (0 none, 1 linear, 2 radial, 3 conic), y = stop count
320
320
  geom : vec4<f32>, // linear: cx, cy, dir.x / len, dir.y / len; radial: cx, cy, rx, ry; conic: cx, cy, from (rad)
@@ -417,7 +417,7 @@ struct VSOut {
417
417
 
418
418
  return vec4<f32>(outColor.rgb * alpha, alpha);
419
419
  }
420
- `;x();var Yt={linear:1,radial:2,conic:3};function Y(l){return typeof l=="string"&&l.includes("gradient(")?yt(l):null}function X(l,t,e,r){if(e.fill(0,r,r+48),!l)return;let i=xt(l.stops),n=Math.max(t.width,.001),s=Math.max(t.height,.001),a=t.x+l.center[0]*n,o=t.y+l.center[1]*s;if(e[r]=Yt[l.type],e[r+1]=i.length,e[r+4]=l.type==="linear"?t.x+n/2:a,e[r+5]=l.type==="linear"?t.y+s/2:o,l.type==="linear"){let c=l.angle*Math.PI/180,u=Math.sin(c),h=-Math.cos(c),p=Math.abs(n*u)+Math.abs(s*h);e[r+6]=u/p,e[r+7]=h/p}else if(l.type==="radial"){let c,u;l.radius?[c,u]=l.radius:[c,u]=Xt(l,a-t.x,t.x+n-a,o-t.y,t.y+s-o),e[r+6]=c,e[r+7]=u}else e[r+6]=l.from*Math.PI/180;i.forEach((c,u)=>{e[r+8+u]=c.offset}),$(i).forEach((c,u)=>{e.set(c,r+16+u*4)})}function Xt(l,t,e,r,i){let n=l.extent??"farthest-corner",s=n.startsWith("farthest"),a=s?Math.max(t,e):Math.min(t,e),o=s?Math.max(r,i):Math.min(r,i),c=l.shape==="circle";if(n.endsWith("side")){if(!c)return[a,o];let u=s?Math.max(a,o):Math.min(a,o);return[u,u]}if(c){let u=Math.hypot(a,o);return[u,u]}return[a*Math.SQRT2,o*Math.SQRT2]}var K=class{device;pipeline;uniformLayout;uniformPool;vertexPool;uniformData=new Float32Array(68);constructor(t,e){this.device=t,this.uniformPool=new G(2048,GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST),this.vertexPool=new G(8192,GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST);let r=t.createShaderModule({label:"shape-fill.wgsl",code:Ot});this.uniformLayout=C(t),this.pipeline=T(t,{label:"ShapeFillPipeline",module:r,uniformLayout:this.uniformLayout,format:e,topology:"triangle-list"})}resetPools(){this.uniformPool.reset(),this.vertexPool.reset()}draw(t,e,r,i,n,s,a,o){if(r.length<6||i.type==="none")return;let c=o?.opacity??1;e.packIntoBuffer(this.uniformData,c,s,a,o?.transform),this.uniformData[15]=0;let u=Y(i.color);if(u)this.uniformData.fill(0,16,20),X(u,n,this.uniformData,20);else{let d=D(i.color??"#ffffff");this.uniformData[16]=d.r,this.uniformData[17]=d.g,this.uniformData[18]=d.b,this.uniformData[19]=d.a,this.packTwoColorGradient(i,n,d)}let h=this.uniformPool.getBuffer(this.device,this.uniformData),p=this.vertexPool.getBuffer(this.device,r);t.setPipeline(this.pipeline),t.setBindGroup(0,this.device.createBindGroup({layout:this.uniformLayout,entries:[{binding:0,resource:{buffer:h}}]})),t.setVertexBuffer(0,p),t.draw(r.length/2)}packTwoColorGradient(t,e,r){if(this.uniformData.fill(0,20,68),t.type!=="linear"&&t.type!=="radial")return;let n=D(t.color2??t.color??"#ffffff"),s=this.uniformData;if(t.type==="linear"){let o=t.startX??e.x,c=t.startY??e.y,u=t.endX??e.x+e.width,h=t.endY??e.y+e.height,p=u-o,d=h-c,f=Math.max(p*p+d*d,1e-6);s.set([1,2,0,0,(o+u)/2,(c+h)/2,p/f,d/f],20)}else{let o=t.radius??Math.max(e.width,e.height)/2;s.set([2,2,0,0,t.cx??e.x+e.width/2,t.cy??e.y+e.height/2,o,o],20)}s[28]=0,s[29]=1;let a=$([{offset:0,color:[r.r,r.g,r.b,r.a]},{offset:1,color:[n.r,n.g,n.b,n.a]}]);s.set(a[0],36),s.set(a[1],40)}destroy(){this.uniformPool.destroy(),this.vertexPool.destroy()}};x();x();var $t=`
420
+ `;x();var Yt={linear:1,radial:2,conic:3};function Y(l){return typeof l=="string"&&l.includes("gradient(")?yt(l):null}function X(l,t,e,r){if(e.fill(0,r,r+48),!l)return;let i=xt(l.stops),n=Math.max(t.width,.001),s=Math.max(t.height,.001),a=t.x+l.center[0]*n,o=t.y+l.center[1]*s;if(e[r]=Yt[l.type],e[r+1]=i.length,e[r+4]=l.type==="linear"?t.x+n/2:a,e[r+5]=l.type==="linear"?t.y+s/2:o,l.type==="linear"){let c=l.angle*Math.PI/180,u=Math.sin(c),p=-Math.cos(c),h=Math.abs(n*u)+Math.abs(s*p);e[r+6]=u/h,e[r+7]=p/h}else if(l.type==="radial"){let c,u;l.radius?[c,u]=l.radius:[c,u]=Xt(l,a-t.x,t.x+n-a,o-t.y,t.y+s-o),e[r+6]=c,e[r+7]=u}else e[r+6]=l.from*Math.PI/180;i.forEach((c,u)=>{e[r+8+u]=c.offset}),$(i).forEach((c,u)=>{e.set(c,r+16+u*4)})}function Xt(l,t,e,r,i){let n=l.extent??"farthest-corner",s=n.startsWith("farthest"),a=s?Math.max(t,e):Math.min(t,e),o=s?Math.max(r,i):Math.min(r,i),c=l.shape==="circle";if(n.endsWith("side")){if(!c)return[a,o];let u=s?Math.max(a,o):Math.min(a,o);return[u,u]}if(c){let u=Math.hypot(a,o);return[u,u]}return[a*Math.SQRT2,o*Math.SQRT2]}var K=class{device;pipeline;uniformLayout;uniformPool;vertexPool;uniformData=new Float32Array(68);constructor(t,e){this.device=t,this.uniformPool=new G(2048,GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST),this.vertexPool=new G(8192,GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST);let r=t.createShaderModule({label:"shape-fill.wgsl",code:Ot});this.uniformLayout=D(t),this.pipeline=T(t,{label:"ShapeFillPipeline",module:r,uniformLayout:this.uniformLayout,format:e,topology:"triangle-list"})}resetPools(){this.uniformPool.reset(),this.vertexPool.reset()}draw(t,e,r,i,n,s,a,o){if(r.length<6||i.type==="none")return;let c=o?.opacity??1;e.packIntoBuffer(this.uniformData,c,s,a,o?.transform),this.uniformData[15]=0;let u=Y(i.color);if(u)this.uniformData.fill(0,16,20),X(u,n,this.uniformData,20);else{let f=B(i.color??"#ffffff");this.uniformData[16]=f.r,this.uniformData[17]=f.g,this.uniformData[18]=f.b,this.uniformData[19]=f.a,this.packTwoColorGradient(i,n,f)}let p=this.uniformPool.getBuffer(this.device,this.uniformData),h=this.vertexPool.getBuffer(this.device,r);t.setPipeline(this.pipeline),t.setBindGroup(0,this.device.createBindGroup({layout:this.uniformLayout,entries:[{binding:0,resource:{buffer:p}}]})),t.setVertexBuffer(0,h),t.draw(r.length/2)}packTwoColorGradient(t,e,r){if(this.uniformData.fill(0,20,68),t.type!=="linear"&&t.type!=="radial")return;let n=B(t.color2??t.color??"#ffffff"),s=this.uniformData;if(t.type==="linear"){let o=t.startX??e.x,c=t.startY??e.y,u=t.endX??e.x+e.width,p=t.endY??e.y+e.height,h=u-o,f=p-c,d=Math.max(h*h+f*f,1e-6);s.set([1,2,0,0,(o+u)/2,(c+p)/2,h/d,f/d],20)}else{let o=t.radius??Math.max(e.width,e.height)/2;s.set([2,2,0,0,t.cx??e.x+e.width/2,t.cy??e.y+e.height/2,o,o],20)}s[28]=0,s[29]=1;let a=$([{offset:0,color:[r.r,r.g,r.b,r.a]},{offset:1,color:[n.r,n.g,n.b,n.a]}]);s.set(a[0],36),s.set(a[1],40)}destroy(){this.uniformPool.destroy(),this.vertexPool.destroy()}};x();x();var $t=`
421
421
  ${Q}
422
422
 
423
423
  struct Uniforms {
@@ -477,4 +477,4 @@ fn sdRoundedRect(p: vec2<f32>, b: vec2<f32>, r: f32) -> f32 {
477
477
 
478
478
  return vec4<f32>(fill.rgb * alpha, alpha);
479
479
  }
480
- `;var Z=class{device;pipeline;uniformLayout;uniformPool;vertexPool;uniformBindGroupCache=new U;uniformData=new Float32Array(72);vertexData=new Float32Array(8);constructor(t,e){this.device=t,this.uniformPool=new G(1024,GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST),this.vertexPool=new G(256,GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST);let r=t.createShaderModule({label:"solid.wgsl",code:$t});this.uniformLayout=C(t),this.pipeline=T(t,{label:"SolidPipeline",module:r,uniformLayout:this.uniformLayout,format:e,topology:"triangle-strip"})}resetPools(){this.uniformPool.reset(),this.vertexPool.reset()}draw(t,e,r,i,n,s,a=0,o){let c=Y(i),u=c?{r:0,g:0,b:0,a:1}:D(i),h=o?.opacity??1;e.packIntoBuffer(this.uniformData,h,n,s,o?.transform),this.uniformData[15]=a,this.uniformData[16]=u.r,this.uniformData[17]=u.g,this.uniformData[18]=u.b,this.uniformData[19]=u.a,this.uniformData[20]=r.x,this.uniformData[21]=r.y,this.uniformData[22]=r.width,this.uniformData[23]=r.height,X(c,r,this.uniformData,24);let p=this.uniformPool.getBuffer(this.device,this.uniformData),d=0;if(a>0){let P=o?.transform?e.getCurrent().multiply(o.transform):e.getCurrent(),S=Math.min(Math.hypot(P.a,P.b),Math.hypot(P.c,P.d));d=2/Math.max(S,.001)}let f=r.x-d,m=r.y-d,y=r.x+r.width+d,g=r.y+r.height+d;this.vertexData[0]=f,this.vertexData[1]=m,this.vertexData[2]=y,this.vertexData[3]=m,this.vertexData[4]=f,this.vertexData[5]=g,this.vertexData[6]=y,this.vertexData[7]=g;let v=this.vertexPool.getBuffer(this.device,this.vertexData);t.setPipeline(this.pipeline);let b=this.uniformBindGroupCache.getBindGroup(this.device,this.uniformLayout,p);t.setBindGroup(0,b),t.setVertexBuffer(0,v),t.draw(4)}destroy(){this.uniformPool.destroy(),this.vertexPool.destroy(),this.uniformBindGroupCache.destroy()}};x();var J=class{stack=[new DOMMatrix];push(t){let r=this.stack[this.stack.length-1].multiply(t);this.stack.push(r)}pop(){this.stack.length>1&&this.stack.pop()}getCurrent(){return this.stack[this.stack.length-1]}packIntoBuffer(t,e,r,i,n,s){let a=this.getCurrent();n&&(a=a.multiply(n)),t[0]=a.a,t[1]=a.b,t[2]=0,t[3]=0,t[4]=a.c,t[5]=a.d,t[6]=0,t[7]=0,t[8]=a.e,t[9]=a.f,t[10]=1,t[11]=0,t[12]=e,t[13]=r,t[14]=i,t[15]=s??0}destroy(){this.stack=[new DOMMatrix]}};function Kt(l){if(Array.isArray(l)){let r=l[3]??1;return[l[0]*r,l[1]*r,l[2]*r,r]}if("r"in l){let r=l.a??1;return{r:l.r*r,g:l.g*r,b:l.b*r,a:r}}let t=Array.from(l),e=t[3]??1;return[t[0]*e,t[1]*e,t[2]*e,e]}var At=new WeakMap;function br(l,t){let e=At.get(l);return(!e||e.format!==t||e.isDestroyed)&&(e=new pt(l,t),At.set(l,e)),e.resetPools(),e}var pt=class{device;transformStack=new J;clipStack=new W;quadPipeline;solidPipeline;shapeFillPipeline;pathPipeline;effectPipeline;slugPipeline;bindGroupCache=new V;samplerCache=new Mt;format;isDestroyed=!1;rasterDrawCount=0;surfaceWidth=0;surfaceHeight=0;lastEncoder=null;constructor(t,e){this.device=t,this.format=e,this.quadPipeline=new q(t,e),this.solidPipeline=new Z(t,e),this.shapeFillPipeline=new K(t,e),this.pathPipeline=new H(t,e),this.effectPipeline=new E(t,e),this.slugPipeline=new wt(t,e)}beginFrame(t,e,r={r:0,g:0,b:0,a:0},i,n,s="clear"){this.surfaceWidth=i,this.surfaceHeight=n,t!==this.lastEncoder&&(this.lastEncoder=t,this.resetPools());let a=t.beginRenderPass({colorAttachments:[{view:e,clearValue:Kt(r),loadOp:s,storeOp:"store"}]});return this.clipStack.applyScissorToPass(a,i,n),a}endFrame(t){}resetPools(){this.quadPipeline.resetPools(),this.solidPipeline.resetPools(),this.shapeFillPipeline.resetPools(),this.pathPipeline.resetPools(),this.effectPipeline&&this.effectPipeline.resetPools(),this.slugPipeline.resetPools(),ot.flushRetired(this.device),ot.prune(this.device)}drawTexture(t,e,r,i){let n=this.samplerCache.getSampler(this.device),s={x:0,y:0,width:e.width,height:e.height};this.rasterDrawCount++,this.quadPipeline.draw(t,this.bindGroupCache,this.transformStack,e,n,s,r,this.surfaceWidth,this.surfaceHeight,i)}drawTextureRegion(t,e,r,i,n){let s=this.samplerCache.getSampler(this.device);this.rasterDrawCount++,this.quadPipeline.draw(t,this.bindGroupCache,this.transformStack,e,s,r,i,this.surfaceWidth,this.surfaceHeight,n)}drawRect(t,e,r,i=0,n){let s=0,a=n;typeof i=="object"&&i!==null?(a=i,s=0):typeof i=="number"&&(s=i),this.rasterDrawCount++,this.solidPipeline.draw(t,this.transformStack,e,r,this.surfaceWidth,this.surfaceHeight,s,a)}drawPath(t,e,r,i,n){this.rasterDrawCount++,this.pathPipeline.drawPath(t,this.transformStack,e,r,i,this.surfaceWidth,this.surfaceHeight,n)}drawShapeFill(t,e,r,i,n){this.rasterDrawCount++,this.shapeFillPipeline.draw(t,this.transformStack,e,r,i,this.surfaceWidth,this.surfaceHeight,n)}drawShape(t,e,r,i,n){let s={x:0,y:0,width:e.width,height:e.height};if(r&&r.type!=="none"){let a=_t(e);if(a.length>0&&(this.drawShapeFill(t,a,r,s,n),(!i||!i.width||i.width<=0)&&(r.type??"solid")==="solid"&&r.color)){let o=ct(e);o&&this.drawPath(t,o,r.color,1,{...n,strokeLineCap:"round"})}}if(i&&i.width&&i.width>0&&i.color){let a=ct(e);a&&this.drawPath(t,a,i.color,i.width,{...n,strokeLineCap:i.cap,trimStart:i.trimStart,trimEnd:i.trimEnd,trimOffset:i.trimOffset,strokeDashArray:i.dashArray,strokeDashOffset:i.dashOffset})}}drawRRect(t,e,r,i){this.drawRect(t,e.rect,r,e.rx,i)}getTemporaryTexture(t,e,r){return this.effectPipeline.getTexture(this.device,t,e,this.format,r)}getTemporaryBuffer(t){return this.effectPipeline.getBuffer(this.device,t)}composite(t,e,r,i,n){return this.effectPipeline.composite(t,this.bindGroupCache,this.samplerCache,e,r,i,this.format,n)}applyMotionBlur(t,e,r,i,n=180,s=16,a){return this.effectPipeline.applyMotionBlur(t,this.bindGroupCache,this.samplerCache,e,r,i,n,s,this.format,a)}getCurrentTransform(){return this.transformStack.getCurrent()}getTransformStack(){return this.transformStack}getSurfaceWidth(){return this.surfaceWidth}getSurfaceHeight(){return this.surfaceHeight}pushIdentity(){let t=this.transformStack.getCurrent();this.pushTransform(t.inverse())}pushTransform(t){this.transformStack.push(t)}popTransform(){this.transformStack.pop()}pushScissor(t){this.clipStack.pushScissor(t,this.surfaceWidth,this.surfaceHeight)}pushScissorIntersect(t){let e=this.clipStack.getCurrentScissor(this.surfaceWidth,this.surfaceHeight);if(!e){this.pushScissor(t);return}let r=Math.max(t.x,e.x),i=Math.max(t.y,e.y),n=Math.min(t.x+t.width,e.x+e.width),s=Math.min(t.y+t.height,e.y+e.height);this.pushScissor({x:r,y:i,width:Math.max(0,n-r),height:Math.max(0,s-i)})}pushScissorLocal(t){let e=this.transformStack.getCurrent(),r=[e.transformPoint(new DOMPoint(t.x,t.y)),e.transformPoint(new DOMPoint(t.x+t.width,t.y)),e.transformPoint(new DOMPoint(t.x,t.y+t.height)),e.transformPoint(new DOMPoint(t.x+t.width,t.y+t.height))],i=r.map(h=>h.x),n=r.map(h=>h.y),s=Math.min(...i),a=Math.min(...n),o=Math.max(...i)-s,c=Math.max(...n)-a,u=this.clipStack.getCurrentScissor(this.surfaceWidth,this.surfaceHeight);if(u){let h=Math.max(s,u.x),p=Math.max(a,u.y),d=Math.min(s+o,u.x+u.width),f=Math.min(a+c,u.y+u.height);s=h,a=p,o=Math.max(0,d-h),c=Math.max(0,f-p)}this.clipStack.pushScissor({x:s,y:a,width:o,height:c},this.surfaceWidth,this.surfaceHeight)}popScissor(){this.clipStack.popScissor()}suspendScissors(){let t=this.clipStack.saveScissors();return this.clipStack.clearScissors(),t}resumeScissors(t){this.clipStack.restoreScissors(t)}pushStencilClip(t){this.clipStack.pushStencilClip(t)}popStencilClip(){this.clipStack.popStencilClip()}destroy(){this.isDestroyed=!0,this.transformStack.destroy(),this.clipStack.destroy(),this.bindGroupCache.destroy(),this.samplerCache.destroy(),this.quadPipeline.destroy(),this.solidPipeline.destroy(),this.shapeFillPipeline.destroy(),this.pathPipeline.destroy(),this.effectPipeline.destroy(),this.slugPipeline.destroy(),this.lastEncoder=null}};x();async function It(l,t){if(typeof window<"u"&&typeof FontFace<"u"){let e=typeof t=="string"?t:"its registered bytes";try{let i=await new FontFace(l,typeof t=="string"?`url(${t})`:t).load();document.fonts.add(i),await document.fonts.ready}catch(r){console.warn(`[preloadFont] Failed to load font "${l}" from ${e}:`,r)}}else typeof t=="string"&&await Pt(l,t)}x();var Et=!1;async function Fr(l,t,e=(r,i)=>console.warn(`[framefields] ${i}`,r)){let r=new Set,i=new Map;(function s(a){let o=a.operation;if(o){let c=o.op==="text"||o.kind==="text"||o.op==="caption"||o.kind==="caption"||typeof o.text=="string",u=o.fontFamily||(c?"Inter":"");if(u&&r.add(u),c&&typeof o.text=="string"){let h=o.fontSize??48;for(let p of St(o.text))i.set(`${p}-${h}`,h)}}for(let c of a.children??[])s(c)})(l);let n=[];for(let s of r){let a=Ut(s),o=Bt(s),c=typeof a=="string"?a:"its registered bytes";n.push(It(s,a).catch(u=>e(u,`font "${s}" from ${c}`))),t&&n.push(O.preloadSlugFont(t,s,o).catch(u=>e(u,`Slug font "${s}" from ${o}`)))}if(t&&i.size>0){!O.hasEmojiFont()&&!Et&&(Et=!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,a]of i){let o=s.slice(0,s.lastIndexOf("-"));n.push(O.preloadEmoji(t,o,a).catch(c=>{O.hasEmojiFont()&&e(c,`emoji "${o}"`)}))}}await Promise.all(n)}export{ee as a,E as b,z as c,ct as d,br as e,pt as f,It as g,Fr as h};
480
+ `;var Z=class{device;pipeline;uniformLayout;uniformPool;vertexPool;uniformBindGroupCache=new U;uniformData=new Float32Array(72);vertexData=new Float32Array(8);constructor(t,e){this.device=t,this.uniformPool=new G(1024,GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST),this.vertexPool=new G(256,GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST);let r=t.createShaderModule({label:"solid.wgsl",code:$t});this.uniformLayout=D(t),this.pipeline=T(t,{label:"SolidPipeline",module:r,uniformLayout:this.uniformLayout,format:e,topology:"triangle-strip"})}resetPools(){this.uniformPool.reset(),this.vertexPool.reset()}draw(t,e,r,i,n,s,a=0,o){let c=Y(i),u=c?{r:0,g:0,b:0,a:1}:B(i),p=o?.opacity??1;e.packIntoBuffer(this.uniformData,p,n,s,o?.transform),this.uniformData[15]=a,this.uniformData[16]=u.r,this.uniformData[17]=u.g,this.uniformData[18]=u.b,this.uniformData[19]=u.a,this.uniformData[20]=r.x,this.uniformData[21]=r.y,this.uniformData[22]=r.width,this.uniformData[23]=r.height,X(c,r,this.uniformData,24);let h=this.uniformPool.getBuffer(this.device,this.uniformData),f=0;if(a>0){let v=o?.transform?e.getCurrent().multiply(o.transform):e.getCurrent(),S=Math.min(Math.hypot(v.a,v.b),Math.hypot(v.c,v.d));f=2/Math.max(S,.001)}let d=r.x-f,m=r.y-f,y=r.x+r.width+f,g=r.y+r.height+f;this.vertexData[0]=d,this.vertexData[1]=m,this.vertexData[2]=y,this.vertexData[3]=m,this.vertexData[4]=d,this.vertexData[5]=g,this.vertexData[6]=y,this.vertexData[7]=g;let P=this.vertexPool.getBuffer(this.device,this.vertexData);t.setPipeline(this.pipeline);let b=this.uniformBindGroupCache.getBindGroup(this.device,this.uniformLayout,h);t.setBindGroup(0,b),t.setVertexBuffer(0,P),t.draw(4)}destroy(){this.uniformPool.destroy(),this.vertexPool.destroy(),this.uniformBindGroupCache.destroy()}};x();var J=class{stack=[new DOMMatrix];push(t){let r=this.stack[this.stack.length-1].multiply(t);this.stack.push(r)}pop(){this.stack.length>1&&this.stack.pop()}getCurrent(){return this.stack[this.stack.length-1]}packIntoBuffer(t,e,r,i,n,s){let a=this.getCurrent();n&&(a=a.multiply(n)),t[0]=a.a,t[1]=a.b,t[2]=0,t[3]=0,t[4]=a.c,t[5]=a.d,t[6]=0,t[7]=0,t[8]=a.e,t[9]=a.f,t[10]=1,t[11]=0,t[12]=e,t[13]=r,t[14]=i,t[15]=s??0}destroy(){this.stack=[new DOMMatrix]}};function Kt(l){if(Array.isArray(l)){let r=l[3]??1;return[l[0]*r,l[1]*r,l[2]*r,r]}if("r"in l){let r=l.a??1;return{r:l.r*r,g:l.g*r,b:l.b*r,a:r}}let t=Array.from(l),e=t[3]??1;return[t[0]*e,t[1]*e,t[2]*e,e]}var At=new WeakMap;function br(l,t){let e=At.get(l);return(!e||e.format!==t||e.isDestroyed)&&(e=new pt(l,t),At.set(l,e)),e.resetPools(),e}var pt=class{device;transformStack=new J;clipStack=new W;quadPipeline;solidPipeline;shapeFillPipeline;pathPipeline;effectPipeline;slugPipeline;bindGroupCache=new V;samplerCache=new Mt;format;isDestroyed=!1;rasterDrawCount=0;surfaceWidth=0;surfaceHeight=0;lastEncoder=null;constructor(t,e){this.device=t,this.format=e,this.quadPipeline=new q(t,e),this.solidPipeline=new Z(t,e),this.shapeFillPipeline=new K(t,e),this.pathPipeline=new j(t,e),this.effectPipeline=new E(t,e),this.slugPipeline=new wt(t,e)}beginFrame(t,e,r={r:0,g:0,b:0,a:0},i,n,s="clear"){this.surfaceWidth=i,this.surfaceHeight=n,t!==this.lastEncoder&&(this.lastEncoder=t,this.resetPools());let a=t.beginRenderPass({colorAttachments:[{view:e,clearValue:Kt(r),loadOp:s,storeOp:"store"}]});return this.clipStack.applyScissorToPass(a,i,n),a}endFrame(t){}resetPools(){this.quadPipeline.resetPools(),this.solidPipeline.resetPools(),this.shapeFillPipeline.resetPools(),this.pathPipeline.resetPools(),this.effectPipeline&&this.effectPipeline.resetPools(),this.slugPipeline.resetPools(),st.flushRetired(this.device),st.prune(this.device)}drawTexture(t,e,r,i){let n=this.samplerCache.getSampler(this.device),s={x:0,y:0,width:e.width,height:e.height};this.rasterDrawCount++,this.quadPipeline.draw(t,this.bindGroupCache,this.transformStack,e,n,s,r,this.surfaceWidth,this.surfaceHeight,i)}drawTextureRegion(t,e,r,i,n){let s=this.samplerCache.getSampler(this.device);this.rasterDrawCount++,this.quadPipeline.draw(t,this.bindGroupCache,this.transformStack,e,s,r,i,this.surfaceWidth,this.surfaceHeight,n)}drawRect(t,e,r,i=0,n){let s=0,a=n;typeof i=="object"&&i!==null?(a=i,s=0):typeof i=="number"&&(s=i),this.rasterDrawCount++,this.solidPipeline.draw(t,this.transformStack,e,r,this.surfaceWidth,this.surfaceHeight,s,a)}drawPath(t,e,r,i,n){this.rasterDrawCount++,this.pathPipeline.drawPath(t,this.transformStack,e,r,i,this.surfaceWidth,this.surfaceHeight,n)}drawShapeFill(t,e,r,i,n){this.rasterDrawCount++,this.shapeFillPipeline.draw(t,this.transformStack,e,r,i,this.surfaceWidth,this.surfaceHeight,n)}drawShape(t,e,r,i,n){let s={x:0,y:0,width:e.width,height:e.height};if(r&&r.type!=="none"){let a=_t(e);if(a.length>0&&(this.drawShapeFill(t,a,r,s,n),(!i||!i.width||i.width<=0)&&(r.type??"solid")==="solid"&&r.color)){let o=ut(e);o&&this.drawPath(t,o,r.color,1,{...n,strokeLineCap:"round"})}}if(i&&i.width&&i.width>0&&i.color){let a=ut(e);a&&this.drawPath(t,a,i.color,i.width,{...n,strokeLineCap:i.cap,trimStart:i.trimStart,trimEnd:i.trimEnd,trimOffset:i.trimOffset,strokeDashArray:i.dashArray,strokeDashOffset:i.dashOffset})}}drawRRect(t,e,r,i){this.drawRect(t,e.rect,r,e.rx,i)}getTemporaryTexture(t,e,r){return this.effectPipeline.getTexture(this.device,t,e,this.format,r)}getTemporaryBuffer(t){return this.effectPipeline.getBuffer(this.device,t)}composite(t,e,r,i,n){return this.effectPipeline.composite(t,this.bindGroupCache,this.samplerCache,e,r,i,this.format,n)}applyMotionBlur(t,e,r,i,n=180,s=16,a){return this.effectPipeline.applyMotionBlur(t,this.bindGroupCache,this.samplerCache,e,r,i,n,s,this.format,a)}getCurrentTransform(){return this.transformStack.getCurrent()}getTransformStack(){return this.transformStack}getSurfaceWidth(){return this.surfaceWidth}getSurfaceHeight(){return this.surfaceHeight}pushIdentity(){let t=this.transformStack.getCurrent();this.pushTransform(t.inverse())}pushTransform(t){this.transformStack.push(t)}popTransform(){this.transformStack.pop()}pushScissor(t){this.clipStack.pushScissor(t,this.surfaceWidth,this.surfaceHeight)}pushScissorIntersect(t){let e=this.clipStack.getCurrentScissor(this.surfaceWidth,this.surfaceHeight);if(!e){this.pushScissor(t);return}let r=Math.max(t.x,e.x),i=Math.max(t.y,e.y),n=Math.min(t.x+t.width,e.x+e.width),s=Math.min(t.y+t.height,e.y+e.height);this.pushScissor({x:r,y:i,width:Math.max(0,n-r),height:Math.max(0,s-i)})}pushScissorLocal(t){let e=this.transformStack.getCurrent(),r=[e.transformPoint(new DOMPoint(t.x,t.y)),e.transformPoint(new DOMPoint(t.x+t.width,t.y)),e.transformPoint(new DOMPoint(t.x,t.y+t.height)),e.transformPoint(new DOMPoint(t.x+t.width,t.y+t.height))],i=r.map(p=>p.x),n=r.map(p=>p.y),s=Math.min(...i),a=Math.min(...n),o=Math.max(...i)-s,c=Math.max(...n)-a,u=this.clipStack.getCurrentScissor(this.surfaceWidth,this.surfaceHeight);if(u){let p=Math.max(s,u.x),h=Math.max(a,u.y),f=Math.min(s+o,u.x+u.width),d=Math.min(a+c,u.y+u.height);s=p,a=h,o=Math.max(0,f-p),c=Math.max(0,d-h)}this.clipStack.pushScissor({x:s,y:a,width:o,height:c},this.surfaceWidth,this.surfaceHeight)}popScissor(){this.clipStack.popScissor()}suspendScissors(){let t=this.clipStack.saveScissors();return this.clipStack.clearScissors(),t}resumeScissors(t){this.clipStack.restoreScissors(t)}pushStencilClip(t){this.clipStack.pushStencilClip(t)}popStencilClip(){this.clipStack.popStencilClip()}destroy(){this.isDestroyed=!0,this.transformStack.destroy(),this.clipStack.destroy(),this.bindGroupCache.destroy(),this.samplerCache.destroy(),this.quadPipeline.destroy(),this.solidPipeline.destroy(),this.shapeFillPipeline.destroy(),this.pathPipeline.destroy(),this.effectPipeline.destroy(),this.slugPipeline.destroy(),this.lastEncoder=null}};x();async function It(l,t){if(typeof window<"u"&&typeof FontFace<"u"){let e=typeof t=="string"?t:"its registered bytes";try{let i=await new FontFace(l,typeof t=="string"?`url(${t})`:t).load();document.fonts.add(i),await document.fonts.ready}catch(r){console.warn(`[preloadFont] Failed to load font "${l}" from ${e}:`,r)}}else typeof t=="string"&&await vt(l,t)}x();var Et=!1;async function Fr(l,t,e=(r,i)=>console.warn(`[framefields] ${i}`,r)){let r=new Set,i=new Map;(function s(a){let o=a.operation;if(o){let c=o.op==="text"||o.kind==="text"||o.op==="caption"||o.kind==="caption"||typeof o.text=="string",u=o.fontFamily||(c?"Inter":"");if(u&&r.add(u),c&&typeof o.text=="string"){let p=o.fontSize??48;for(let h of St(o.text))i.set(`${h}-${p}`,p)}}for(let c of a.children??[])s(c)})(l);let n=[];for(let s of r){let a=Ut(s),o=kt(s),c=typeof a=="string"?a:"its registered bytes";n.push(It(s,a).catch(u=>e(u,`font "${s}" from ${c}`))),t&&n.push(O.preloadSlugFont(t,s,o).catch(u=>e(u,`Slug font "${s}" from ${o}`)))}if(t&&i.size>0){!O.hasEmojiFont()&&!Et&&(Et=!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,a]of i){let o=s.slice(0,s.lastIndexOf("-"));n.push(O.preloadEmoji(t,o,a).catch(c=>{O.hasEmojiFont()&&e(c,`emoji "${o}"`)}))}}await Promise.all(n)}export{ee as a,E as b,z as c,ut as d,br as e,pt as f,It as g,Fr as h};
@@ -1,4 +1,4 @@
1
- import{a as _}from"./chunk-Q7JN4EHX.mjs";import{A as O,c as a,z as n}from"./chunk-ALSOO22Q.mjs";import{e as u}from"./chunk-BVF64D6H.mjs";u();u();var U=["roomSize","damping","wet","dry","width"],G=()=>`
1
+ import{a as _}from"./chunk-JOPZNSZJ.mjs";import{A as O,c as a,z as n}from"./chunk-TEBZRQPG.mjs";import{e as u}from"./chunk-BVF64D6H.mjs";u();u();var U=["roomSize","damping","wet","dry","width"],G=()=>`
2
2
  struct Uniforms {
3
3
  sampleRate : f32,
4
4
  roomSize : f32,
@@ -0,0 +1 @@
1
+ import{G as n,h as r,s as t,t as o}from"./chunk-XNMEVVQB.mjs";import{a as e}from"./chunk-DZEWY4PR.mjs";import{e as i}from"./chunk-BVF64D6H.mjs";i();var a=["source-over","source-in","source-out","source-atop","destination-over","destination-in","destination-out","destination-atop","lighter","copy","xor","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],p=e.enum(a),l=e.string().optional(),d=e.number().min(0).max(100),h=e.number().min(0).optional(),S=e.object({animations:e.array(e.object({id:e.string(),type:e.enum(["fade-in","fade-out","slide-in-left","slide-in-right","slide-in-top","slide-in-bottom","zoom-in","zoom-out","rotate-cw","rotate-ccw","bounce","shake"]),value:e.number()})).optional()}),x=e.object({stroke:l,strokeWidth:e.number().min(0).optional(),strokeAlign:e.enum(["inside","center","outside"]).optional().default("inside"),strokeRadius:e.number().min(0).optional()}),g=o(t(e.literal("Image"),r)),b=o(t(e.literal("Video"),n)),f=o(t(e.literal("Audio"),n)),R=o(t(e.literal("Text"),e.string())),y=o(t(e.literal("Number"),e.number())),k=o(t(e.literal("Signal"),e.unknown())),z=e.record(e.string(),e.object({connectionValid:e.boolean(),outputItem:e.object({type:e.string(),data:e.unknown()}).nullable().optional()}));export{l as a,g as b,b as c,k as d};
@@ -1,4 +1,4 @@
1
- import{a as F,d as L,e as N,f as W,g as C,h as V,j as B,k as H,l as $,m as E}from"./chunk-ENKKLU7B.mjs";import{A as D,w as U}from"./chunk-ALSOO22Q.mjs";import{e as p}from"./chunk-BVF64D6H.mjs";p();p();var fe=`
1
+ import{a as F,d as L,e as N,f as W,g as C,h as V,j as B,k as H,l as $,m as E}from"./chunk-ENKKLU7B.mjs";import{A as D,w as U}from"./chunk-TEBZRQPG.mjs";import{e as p}from"./chunk-BVF64D6H.mjs";p();p();var fe=`
2
2
  struct TileOffsetUniforms {
3
3
  offsetX : f32,
4
4
  offsetY : f32,
@@ -1,4 +1,4 @@
1
- import{a as g}from"./chunk-Q7JN4EHX.mjs";import{A as l,c as m,h as u}from"./chunk-ALSOO22Q.mjs";import{e as t}from"./chunk-BVF64D6H.mjs";t();t();var x=["pan"],w=()=>`
1
+ import{a as g}from"./chunk-JOPZNSZJ.mjs";import{A as l,c as m,h as u}from"./chunk-TEBZRQPG.mjs";import{e as t}from"./chunk-BVF64D6H.mjs";t();t();var x=["pan"],w=()=>`
2
2
  struct Uniforms {
3
3
  sampleRate : f32,
4
4
  pan : f32,
@@ -1 +1 @@
1
- import{a as r}from"./chunk-V3FODTPI.mjs";import{e as a}from"./chunk-BVF64D6H.mjs";a();var s=class n{constructor(e={},t={strict:!0}){this.shape=e;this.options=t}shape;options;field(e,t,i){let o=i?t.meta({...i}):t,p={...this.shape,[e]:o};return new n(p,this.options)}build(){let e=r.object(this.shape);return{schema:this.options.strict!==!1?e.strict():e}}};function l(n={strict:!0}){return new s({},n)}export{l as a};
1
+ import{a as r}from"./chunk-DZEWY4PR.mjs";import{e as a}from"./chunk-BVF64D6H.mjs";a();var s=class n{constructor(e={},t={strict:!0}){this.shape=e;this.options=t}shape;options;field(e,t,i){let o=i?t.meta({...i}):t,p={...this.shape,[e]:o};return new n(p,this.options)}build(){let e=r.object(this.shape);return{schema:this.options.strict!==!1?e.strict():e}}};function l(n={strict:!0}){return new s({},n)}export{l as a};
@@ -1 +1 @@
1
- import{a as x}from"./chunk-2JKXYG6J.mjs";import{h as b,j as g}from"./chunk-ENKKLU7B.mjs";import{A as T,v as w}from"./chunk-ALSOO22Q.mjs";import{e as u}from"./chunk-BVF64D6H.mjs";u();u();function d(n,r,i,m,f,h,o){let e=`${r}HandleId`,l=n[e],c=l?n.inputs?.[l]:null,s;if(c?.connectionValid&&c.outputItem){let t=c.outputItem.data;s=t&&typeof t=="object"&&"offset"in t?t.offset:c.outputItem.data}else s=n[r];let p=w(s,i,h,o);return Math.max(m,Math.min(f,p))}var P=new Map;function z(n,r){let i=P.get(r);return i||(i=new x(n),P.set(r,i)),i}var D=async n=>{let{ctx:r,encoder:i,pass:m,targetWidth:f,targetHeight:h,props:o}=n,e=o.virtualMedia?.operation;if(!e||e.op!=="TemporalDeflicker"&&e.op!=="Deflicker")return;let l=o.virtualMedia?.children?.[0];if(!l)return;m.end();let c=f,s=h,p=o.frame??0,t=o.compositionFrame??p,a=o.fps||30,{texture:M}=await b(n,l,{props:{...o,virtualMedia:l,containerWidth:c,containerHeight:s}});n.pass.end();let W=d(e,"blendWeight",.35,0,1,t,a),y=d(e,"disocclusionThreshold",.15,.01,1,t,a),I=d(e,"maxMotionPixels",64,1,256,t,a),v=d(e,"scale",.5,.1,1,t,a),R=Math.round(d(e,"windowSize",2,1,5,t,a)),G=o.virtualMedia?.metadata?.id||e.id||`deflicker_${o.renderId??"global"}`,k=z(r.device,G);p===0&&k.reset();let H=k.execute(M,{blendWeight:W,disocclusionThreshold:y,maxMotionPixels:I,scale:v,windowSize:R},i),U=typeof e.opacity=="number"?e.opacity:1;g(n,H,U)};var j=T({WebGPURenderer:D});export{j as a};
1
+ import{a as x}from"./chunk-2JKXYG6J.mjs";import{h as b,j as g}from"./chunk-ENKKLU7B.mjs";import{A as T,v as w}from"./chunk-TEBZRQPG.mjs";import{e as u}from"./chunk-BVF64D6H.mjs";u();u();function d(n,r,i,m,f,h,o){let e=`${r}HandleId`,l=n[e],c=l?n.inputs?.[l]:null,s;if(c?.connectionValid&&c.outputItem){let t=c.outputItem.data;s=t&&typeof t=="object"&&"offset"in t?t.offset:c.outputItem.data}else s=n[r];let p=w(s,i,h,o);return Math.max(m,Math.min(f,p))}var P=new Map;function z(n,r){let i=P.get(r);return i||(i=new x(n),P.set(r,i)),i}var D=async n=>{let{ctx:r,encoder:i,pass:m,targetWidth:f,targetHeight:h,props:o}=n,e=o.virtualMedia?.operation;if(!e||e.op!=="TemporalDeflicker"&&e.op!=="Deflicker")return;let l=o.virtualMedia?.children?.[0];if(!l)return;m.end();let c=f,s=h,p=o.frame??0,t=o.compositionFrame??p,a=o.fps||30,{texture:M}=await b(n,l,{props:{...o,virtualMedia:l,containerWidth:c,containerHeight:s}});n.pass.end();let W=d(e,"blendWeight",.35,0,1,t,a),y=d(e,"disocclusionThreshold",.15,.01,1,t,a),I=d(e,"maxMotionPixels",64,1,256,t,a),v=d(e,"scale",.5,.1,1,t,a),R=Math.round(d(e,"windowSize",2,1,5,t,a)),G=o.virtualMedia?.metadata?.id||e.id||`deflicker_${o.renderId??"global"}`,k=z(r.device,G);p===0&&k.reset();let H=k.execute(M,{blendWeight:W,disocclusionThreshold:y,maxMotionPixels:I,scale:v,windowSize:R},i),U=typeof e.opacity=="number"?e.opacity:1;g(n,H,U)};var j=T({WebGPURenderer:D});export{j as a};
@@ -1 +1 @@
1
- import{a as o}from"./chunk-AKT4YQWL.mjs";import{a as pe}from"./chunk-GQIRV466.mjs";import{h as ie}from"./chunk-ALSOO22Q.mjs";import{d,e as p}from"./chunk-BVF64D6H.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-YVGT4NK6.mjs";import{a as pe}from"./chunk-MXPN2GB7.mjs";import{h as ie}from"./chunk-TEBZRQPG.mjs";import{d,e as p}from"./chunk-BVF64D6H.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};