framefields 2.0.10 → 2.1.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 (562) hide show
  1. package/README.md +39 -11
  2. package/dist/audio/index.d.mts +4 -4
  3. package/dist/audio/index.mjs +13 -12
  4. package/dist/{audio-BxA0sL9z.d.mts → audio-C2fLC3Tx.d.mts} +3 -3
  5. package/dist/{audio-BxA0sL9z.d.mts.map → audio-C2fLC3Tx.d.mts.map} +1 -1
  6. package/dist/{audio-TAvPwzLR.mjs → audio-DJeVoE8b.mjs} +1 -1
  7. package/dist/{audio-TAvPwzLR.mjs.map → audio-DJeVoE8b.mjs.map} +1 -1
  8. package/dist/{audio-B7Al-W_0.mjs → audio-D_4SeMRK.mjs} +4 -4
  9. package/dist/{audio-B7Al-W_0.mjs.map → audio-D_4SeMRK.mjs.map} +1 -1
  10. package/dist/{client-CwRhflHE.mjs → client-dVxUnmHz.mjs} +1 -1
  11. package/dist/{client-CwRhflHE.mjs.map → client-dVxUnmHz.mjs.map} +1 -1
  12. package/dist/{dist-C_hjvkdN.mjs → dist-0QGroRYZ.mjs} +1 -1
  13. package/dist/{dist-C_hjvkdN.mjs.map → dist-0QGroRYZ.mjs.map} +1 -1
  14. package/dist/{dist-DzUJmIHt.mjs → dist-BY0bIWgr.mjs} +10 -2
  15. package/dist/dist-BY0bIWgr.mjs.map +1 -0
  16. package/dist/{dist-B9PkqWnN.mjs → dist-Bun_TUvZ.mjs} +24046 -20774
  17. package/dist/dist-Bun_TUvZ.mjs.map +1 -0
  18. package/dist/{dist-BFjSQP7i.mjs → dist-DlzqyRar.mjs} +75 -618
  19. package/dist/dist-DlzqyRar.mjs.map +1 -0
  20. package/dist/{dist-cjs-TsA8LFXC.mjs → dist-cjs-91nR6B7Z.mjs} +3 -3
  21. package/dist/{dist-cjs-TsA8LFXC.mjs.map → dist-cjs-91nR6B7Z.mjs.map} +1 -1
  22. package/dist/{dist-cjs-DJ8fcQEe.mjs → dist-cjs-BAIenEMC.mjs} +11 -11
  23. package/dist/{dist-cjs-DJ8fcQEe.mjs.map → dist-cjs-BAIenEMC.mjs.map} +1 -1
  24. package/dist/{dist-cjs-BmyyWYWv.mjs → dist-cjs-BEQhh76X.mjs} +2 -2
  25. package/dist/{dist-cjs-BmyyWYWv.mjs.map → dist-cjs-BEQhh76X.mjs.map} +1 -1
  26. package/dist/{dist-cjs--pxyGFw2.mjs → dist-cjs-BYPq7pfw.mjs} +1 -1
  27. package/dist/{dist-cjs--pxyGFw2.mjs.map → dist-cjs-BYPq7pfw.mjs.map} +1 -1
  28. package/dist/{dist-cjs--lfMLs3U.mjs → dist-cjs-BocDqSCX.mjs} +4 -4
  29. package/dist/{dist-cjs--lfMLs3U.mjs.map → dist-cjs-BocDqSCX.mjs.map} +1 -1
  30. package/dist/{dist-cjs-CsU2sZoX.mjs → dist-cjs-CWiNggTl.mjs} +4 -4
  31. package/dist/{dist-cjs-CsU2sZoX.mjs.map → dist-cjs-CWiNggTl.mjs.map} +1 -1
  32. package/dist/{dist-cjs-DjzmP0-x.mjs → dist-cjs-CwabutT6.mjs} +13 -13
  33. package/dist/{dist-cjs-DjzmP0-x.mjs.map → dist-cjs-CwabutT6.mjs.map} +1 -1
  34. package/dist/{dist-cjs-BDpO-TH_.mjs → dist-cjs-D-EE4Ahy.mjs} +1 -1
  35. package/dist/{dist-cjs-BDpO-TH_.mjs.map → dist-cjs-D-EE4Ahy.mjs.map} +1 -1
  36. package/dist/{dist-cjs-CQwmMllY.mjs → dist-cjs-DNtDUWfk.mjs} +6 -6
  37. package/dist/{dist-cjs-CQwmMllY.mjs.map → dist-cjs-DNtDUWfk.mjs.map} +1 -1
  38. package/dist/{dist-cjs-CND_ghfH.mjs → dist-cjs-DbZhsgS0.mjs} +1 -1
  39. package/dist/{dist-cjs-CND_ghfH.mjs.map → dist-cjs-DbZhsgS0.mjs.map} +1 -1
  40. package/dist/{dist-cjs-CgFzrgj8.mjs → dist-cjs-Dh7REKcN.mjs} +1 -1
  41. package/dist/{dist-cjs-CgFzrgj8.mjs.map → dist-cjs-Dh7REKcN.mjs.map} +1 -1
  42. package/dist/{dist-cjs-DT2jJlcK.mjs → dist-cjs-Dobx0Nz-.mjs} +5 -5
  43. package/dist/{dist-cjs-DT2jJlcK.mjs.map → dist-cjs-Dobx0Nz-.mjs.map} +1 -1
  44. package/dist/{dist-cjs-DzjrlfbE.mjs → dist-cjs-Du0UpNof.mjs} +14 -14
  45. package/dist/{dist-cjs-DzjrlfbE.mjs.map → dist-cjs-Du0UpNof.mjs.map} +1 -1
  46. package/dist/dist-cjs-DyHiUfsr.mjs +6 -0
  47. package/dist/{dist-cjs-M-8QOgS_.mjs → dist-cjs-HHMfMF5a.mjs} +2 -2
  48. package/dist/{dist-cjs-M-8QOgS_.mjs.map → dist-cjs-HHMfMF5a.mjs.map} +1 -1
  49. package/dist/{dist-cjs-BiKQozdJ.mjs → dist-cjs-UJYQzLNT.mjs} +3 -3
  50. package/dist/{dist-cjs-BiKQozdJ.mjs.map → dist-cjs-UJYQzLNT.mjs.map} +1 -1
  51. package/dist/{dist-cjs-agQl9T8M.mjs → dist-cjs-UKxm5cFR.mjs} +6 -6
  52. package/dist/{dist-cjs-agQl9T8M.mjs.map → dist-cjs-UKxm5cFR.mjs.map} +1 -1
  53. package/dist/{dist-B9Afsv83.mjs → dist-fjKpBYkc.mjs} +662 -28
  54. package/dist/dist-fjKpBYkc.mjs.map +1 -0
  55. package/dist/effects/index.d.mts +4 -4
  56. package/dist/effects/index.mjs +36 -34
  57. package/dist/{effects-CREopCyP.mjs → effects-FTlu0dri.mjs} +3 -3
  58. package/dist/{effects-CREopCyP.mjs.map → effects-FTlu0dri.mjs.map} +1 -1
  59. package/dist/{event-streams-BaNGaLxh.mjs → event-streams-DnRe8uwT.mjs} +2 -2
  60. package/dist/{event-streams-BaNGaLxh.mjs.map → event-streams-DnRe8uwT.mjs.map} +1 -1
  61. package/dist/fonts/index.d.mts +2 -2
  62. package/dist/fonts/index.mjs +3 -1
  63. package/dist/{fonts-DhEQ5h6E.mjs → fonts-UM5xaBOx.mjs} +66 -6
  64. package/dist/fonts-UM5xaBOx.mjs.map +1 -0
  65. package/dist/gpu-RkpiFGOA.mjs +215 -0
  66. package/dist/gpu-RkpiFGOA.mjs.map +1 -0
  67. package/dist/{index-BXNNJVs8.d.mts → index-CHQ39_Oe.d.mts} +2 -2
  68. package/dist/{index-BXNNJVs8.d.mts.map → index-CHQ39_Oe.d.mts.map} +1 -1
  69. package/dist/{index-CvDVpaKn.d.mts → index-CzQseCtg.d.mts} +8 -8
  70. package/dist/{index-CvDVpaKn.d.mts.map → index-CzQseCtg.d.mts.map} +1 -1
  71. package/dist/{index-D1zaOwEU.d.mts → index-D67p-rHX.d.mts} +3506 -1280
  72. package/dist/index-D67p-rHX.d.mts.map +1 -0
  73. package/dist/{index-J9CIK_nu.d.mts → index-DPicEt8H.d.mts} +10 -2
  74. package/dist/index-DPicEt8H.d.mts.map +1 -0
  75. package/dist/{index-oodg5k9K.d.mts → index-Db8Z3AtX.d.mts} +3 -3
  76. package/dist/{index-oodg5k9K.d.mts.map → index-Db8Z3AtX.d.mts.map} +1 -1
  77. package/dist/{index-fo4E7A6C.d.mts → index-DsOqONsj.d.mts} +3 -3
  78. package/dist/{index-fo4E7A6C.d.mts.map → index-DsOqONsj.d.mts.map} +1 -1
  79. package/dist/{index-CQcdKyxF.d.mts → index-l03NV8JS.d.mts} +59 -2
  80. package/dist/index-l03NV8JS.d.mts.map +1 -0
  81. package/dist/index.d.mts +416 -1849
  82. package/dist/index.d.mts.map +1 -1
  83. package/dist/index.mjs +669 -79
  84. package/dist/index.mjs.map +1 -1
  85. package/dist/{package-XpCRbTOA.mjs → package-CudzAF-n.mjs} +1 -1
  86. package/dist/{package-XpCRbTOA.mjs.map → package-CudzAF-n.mjs.map} +1 -1
  87. package/dist/preview/index.d.mts +2 -2
  88. package/dist/preview/index.mjs +13 -12
  89. package/dist/{preview-9ifxywUM.mjs → preview-DwClLMlU.mjs} +3 -3
  90. package/dist/{preview-9ifxywUM.mjs.map → preview-DwClLMlU.mjs.map} +1 -1
  91. package/dist/preview-engine/audio.mjs +1 -1
  92. package/dist/preview-engine/{chunk-AW7HNZKR.mjs → chunk-3GNP7TJH.mjs} +3 -3
  93. package/dist/preview-engine/{chunk-LIHUEYI5.mjs → chunk-44CQSOYE.mjs} +2 -2
  94. package/dist/preview-engine/{chunk-6JW37VJA.mjs → chunk-5AUB4Y3L.mjs} +3 -23
  95. package/dist/preview-engine/chunk-5DOD2NVY.mjs +26 -0
  96. package/dist/preview-engine/chunk-5FC7GOWW.mjs +474 -0
  97. package/dist/preview-engine/chunk-5W4AFQP7.mjs +97 -0
  98. package/dist/preview-engine/chunk-63SFBHEH.mjs +1 -0
  99. package/dist/preview-engine/chunk-7EPIRODI.mjs +91 -0
  100. package/dist/preview-engine/{chunk-PQD5UPHG.mjs → chunk-7G3XIOP7.mjs} +1 -1
  101. package/dist/preview-engine/chunk-7J2FWGVD.mjs +1 -0
  102. package/dist/preview-engine/chunk-AXHB4J37.mjs +147 -0
  103. package/dist/preview-engine/chunk-AY7UX37L.mjs +450 -0
  104. package/dist/preview-engine/chunk-B43Z3J7J.mjs +5 -0
  105. package/dist/preview-engine/chunk-BWJS6G7R.mjs +314 -0
  106. package/dist/preview-engine/{chunk-24DXIKXL.mjs → chunk-DIGIQ5MJ.mjs} +2 -2
  107. package/dist/preview-engine/{chunk-AEK5BO3J.mjs → chunk-E4RAFHZM.mjs} +1 -1
  108. package/dist/preview-engine/chunk-ENKKLU7B.mjs +22 -0
  109. package/dist/preview-engine/{chunk-XLFYM7KH.mjs → chunk-EVXWDOCL.mjs} +2 -2
  110. package/dist/preview-engine/{chunk-EQ4QZRXB.mjs → chunk-EYWPOCZW.mjs} +2 -2
  111. package/dist/preview-engine/{chunk-IYVN2QEL.mjs → chunk-FLPSWDX4.mjs} +1 -1
  112. package/dist/preview-engine/chunk-FU7AIAMM.mjs +88 -0
  113. package/dist/preview-engine/{chunk-CBM7B7EW.mjs → chunk-GMGGDADT.mjs} +1 -1
  114. package/dist/preview-engine/chunk-GSFN4WCH.mjs +62 -0
  115. package/dist/preview-engine/chunk-HE4R7EZM.mjs +121 -0
  116. package/dist/preview-engine/chunk-IQC2I5A5.mjs +1 -0
  117. package/dist/preview-engine/chunk-IQKIHFNZ.mjs +1 -0
  118. package/dist/preview-engine/{chunk-XCYFPA34.mjs → chunk-IR5DNNWR.mjs} +3 -23
  119. package/dist/preview-engine/chunk-IUPDOATX.mjs +114 -0
  120. package/dist/preview-engine/{chunk-GHMCGTJ2.mjs → chunk-J2R5R7YY.mjs} +3 -23
  121. package/dist/preview-engine/chunk-JAJOZG5P.mjs +1 -0
  122. package/dist/preview-engine/chunk-JXNG2ACR.mjs +118 -0
  123. package/dist/preview-engine/{chunk-V6VU46ZG.mjs → chunk-L6BH5J4P.mjs} +1 -1
  124. package/dist/preview-engine/chunk-LGVEFPOG.mjs +3 -0
  125. package/dist/preview-engine/{chunk-MDDF2GCF.mjs → chunk-MLY5M7Y5.mjs} +3 -23
  126. package/dist/preview-engine/chunk-NPD6W3RP.mjs +1 -0
  127. package/dist/preview-engine/chunk-OCX5AD23.mjs +1 -0
  128. package/dist/preview-engine/{chunk-D3TETPLI.mjs → chunk-OG62XGCT.mjs} +1 -1
  129. package/dist/preview-engine/chunk-OJ2PKBXE.mjs +40 -0
  130. package/dist/preview-engine/chunk-OKH2VU2U.mjs +97 -0
  131. package/dist/preview-engine/chunk-PAQNDZQB.mjs +83 -0
  132. package/dist/preview-engine/chunk-PEWYB6WP.mjs +43 -0
  133. package/dist/preview-engine/chunk-PL4IH5V4.mjs +89 -0
  134. package/dist/preview-engine/chunk-PSRQA3QW.mjs +84 -0
  135. package/dist/preview-engine/{chunk-JAOXXYXG.mjs → chunk-PXT52LEH.mjs} +3 -23
  136. package/dist/preview-engine/chunk-Q22PJXFJ.mjs +69 -0
  137. package/dist/preview-engine/chunk-Q4Z54DQ7.mjs +1 -0
  138. package/dist/preview-engine/{chunk-BHFI3Y4T.mjs → chunk-QBEUICZD.mjs} +1 -1
  139. package/dist/preview-engine/chunk-RQLMW6MA.mjs +4 -0
  140. package/dist/preview-engine/chunk-RSMO7NPN.mjs +1 -0
  141. package/dist/preview-engine/chunk-RW2F3XLQ.mjs +90 -0
  142. package/dist/preview-engine/{chunk-25IW7NYO.mjs → chunk-S2CTIJSI.mjs} +1 -1
  143. package/dist/preview-engine/chunk-SGPRLTNF.mjs +52 -0
  144. package/dist/preview-engine/{chunk-Y6FEU4TV.mjs → chunk-SZW5J72T.mjs} +3 -23
  145. package/dist/preview-engine/{chunk-7DIAFPQP.mjs → chunk-T2FE5VOW.mjs} +3 -23
  146. package/dist/preview-engine/{chunk-ZSIJB76A.mjs → chunk-TS3JI3BH.mjs} +2 -2
  147. package/dist/preview-engine/{chunk-AMBSW6OA.mjs → chunk-U4JIFQRR.mjs} +2 -2
  148. package/dist/preview-engine/chunk-VRGREB3V.mjs +1 -0
  149. package/dist/preview-engine/{chunk-BJKH76OM.mjs → chunk-VXS5SIEC.mjs} +3 -23
  150. package/dist/preview-engine/chunk-WFGJXCZT.mjs +53 -0
  151. package/dist/preview-engine/chunk-WH5Q2NFN.mjs +32 -0
  152. package/dist/preview-engine/{chunk-YG35X5R5.mjs → chunk-WUKH7BD7.mjs} +1 -1
  153. package/dist/preview-engine/chunk-XC5WZNOY.mjs +1448 -0
  154. package/dist/preview-engine/chunk-YQZOGEPZ.mjs +186 -0
  155. package/dist/preview-engine/{chunk-VVLM6LZ3.mjs → chunk-ZDQF3OTC.mjs} +1 -1
  156. package/dist/preview-engine/chunk-ZIIFTWDH.mjs +58 -0
  157. package/dist/preview-engine/effects.mjs +1 -1
  158. package/dist/preview-engine/fonts.mjs +1 -1
  159. package/dist/preview-engine/framefields.mjs +127 -130
  160. package/dist/preview-engine/player.mjs +6 -6
  161. package/dist/preview-engine/renderers-2H7YEUTD.mjs +1 -0
  162. package/dist/preview-engine/renderers-2ILG23ED.mjs +1 -0
  163. package/dist/preview-engine/renderers-2P6KXWEZ.mjs +1 -0
  164. package/dist/preview-engine/renderers-2SVWAB42.mjs +1 -0
  165. package/dist/preview-engine/renderers-2VN3AH45.mjs +104 -0
  166. package/dist/preview-engine/renderers-3RC5FDWX.mjs +1 -0
  167. package/dist/preview-engine/renderers-57WDL6XN.mjs +1 -0
  168. package/dist/preview-engine/{renderers-CAUWP4XH.mjs → renderers-6OGFUSH6.mjs} +3 -23
  169. package/dist/preview-engine/renderers-6WH7NZCC.mjs +1 -0
  170. package/dist/preview-engine/renderers-7VJN5L3Z.mjs +1 -0
  171. package/dist/preview-engine/renderers-A6HM64UZ.mjs +1 -0
  172. package/dist/preview-engine/{renderers-WLH4HRUE.mjs → renderers-A7VH3ON5.mjs} +1 -1
  173. package/dist/preview-engine/renderers-B7DSGUMI.mjs +1 -0
  174. package/dist/preview-engine/renderers-BFNJ7VCI.mjs +1 -0
  175. package/dist/preview-engine/renderers-BSKZXITT.mjs +35 -0
  176. package/dist/preview-engine/renderers-CGYIDAVV.mjs +1 -0
  177. package/dist/preview-engine/renderers-CRRLV7IO.mjs +1 -0
  178. package/dist/preview-engine/{renderers-JQHUBWLL.mjs → renderers-D6T6IPER.mjs} +3 -23
  179. package/dist/preview-engine/renderers-DXHJAMZR.mjs +1 -0
  180. package/dist/preview-engine/renderers-ECA3P4ON.mjs +1 -0
  181. package/dist/preview-engine/{renderers-W5CVDJVH.mjs → renderers-F55XFVMP.mjs} +1 -1
  182. package/dist/preview-engine/renderers-FWGMNPYB.mjs +1 -0
  183. package/dist/preview-engine/renderers-H46TS3IG.mjs +228 -0
  184. package/dist/preview-engine/renderers-HXFRTIJD.mjs +1 -0
  185. package/dist/preview-engine/renderers-IWQ3V6AJ.mjs +1 -0
  186. package/dist/preview-engine/renderers-JHFT27YU.mjs +1 -0
  187. package/dist/preview-engine/renderers-KZWGSKRF.mjs +1 -0
  188. package/dist/preview-engine/renderers-MON4QFRF.mjs +1 -0
  189. package/dist/preview-engine/renderers-NQXMYNSY.mjs +1 -0
  190. package/dist/preview-engine/renderers-NWHS7N2L.mjs +1 -0
  191. package/dist/preview-engine/renderers-ORAIXUL3.mjs +1 -0
  192. package/dist/preview-engine/renderers-OT7D3BUA.mjs +1 -0
  193. package/dist/preview-engine/renderers-Q4OFCMXI.mjs +1 -0
  194. package/dist/preview-engine/renderers-QVZVEYP5.mjs +1 -0
  195. package/dist/preview-engine/renderers-RJO6H4FC.mjs +1 -0
  196. package/dist/preview-engine/renderers-RKDPX5JU.mjs +1 -0
  197. package/dist/preview-engine/{renderers-2US2NIUG.mjs → renderers-RLHTNLRE.mjs} +3 -23
  198. package/dist/preview-engine/renderers-SBFF7JP5.mjs +1 -0
  199. package/dist/preview-engine/renderers-SCJ6OKTB.mjs +1 -0
  200. package/dist/preview-engine/renderers-T4JMJXWL.mjs +1 -0
  201. package/dist/preview-engine/renderers-TAWT3ZSS.mjs +1 -0
  202. package/dist/preview-engine/renderers-U6KY34TP.mjs +100 -0
  203. package/dist/preview-engine/renderers-UHTO6BQA.mjs +1 -0
  204. package/dist/preview-engine/renderers-UNK6I4JJ.mjs +1 -0
  205. package/dist/preview-engine/renderers-UPTJJE5F.mjs +1 -0
  206. package/dist/preview-engine/renderers-W773SBPV.mjs +1 -0
  207. package/dist/preview-engine/renderers-XHTMRXC5.mjs +1 -0
  208. package/dist/preview-engine/renderers-YECY2YFT.mjs +1 -0
  209. package/dist/preview-engine/renderers-YMN6QXK7.mjs +1 -0
  210. package/dist/preview-engine/renderers-ZANPE3OK.mjs +1 -0
  211. package/dist/preview-engine/renderers-ZHTX73PR.mjs +1 -0
  212. package/dist/preview-engine/renderers-ZJTRANIX.mjs +1 -0
  213. package/dist/preview-engine/signals.mjs +1 -1
  214. package/dist/preview-engine/skia-canvas-QBXAOGPB.mjs +1 -0
  215. package/dist/{program-xRfFoPxe.mjs → program-BqFVw5Mu.mjs} +295 -2279
  216. package/dist/program-BqFVw5Mu.mjs.map +1 -0
  217. package/dist/renderer/index.d.mts +2 -2
  218. package/dist/renderer/index.mjs +3 -3
  219. package/dist/{renderer-BgdkEFmv.mjs → renderer-2Nf9ypST.mjs} +85 -279
  220. package/dist/renderer-2Nf9ypST.mjs.map +1 -0
  221. package/dist/{renderer-BREIjsUU.mjs → renderer-2uN2cd0y.mjs} +14 -40
  222. package/dist/renderer-2uN2cd0y.mjs.map +1 -0
  223. package/dist/renderer-31jAuNzF.mjs +5 -0
  224. package/dist/renderer-36EI7Rsz.mjs +5 -0
  225. package/dist/renderer-3io-cjTt.mjs +5 -0
  226. package/dist/renderer-9_zWTHbg.mjs +5 -0
  227. package/dist/{renderer-5h0llpx7.mjs → renderer-B12_76qk.mjs} +4 -3
  228. package/dist/{renderer-5h0llpx7.mjs.map → renderer-B12_76qk.mjs.map} +1 -1
  229. package/dist/{renderer-_bygZSKk.mjs → renderer-B4oS8ZFO.mjs} +29 -98
  230. package/dist/renderer-B4oS8ZFO.mjs.map +1 -0
  231. package/dist/renderer-B6KnbfdA.mjs +5 -0
  232. package/dist/renderer-B7Y2bmRc.mjs +5 -0
  233. package/dist/renderer-BA6miaaI.mjs +5 -0
  234. package/dist/{renderer-CoZKST2Y.mjs → renderer-BGr_cBKV.mjs} +61 -208
  235. package/dist/renderer-BGr_cBKV.mjs.map +1 -0
  236. package/dist/renderer-BHi-Q6Z_.mjs +5 -0
  237. package/dist/{renderer-BiSALMQy.mjs → renderer-BLcu9RDt.mjs} +3 -1
  238. package/dist/{renderer-D2XD4QYk.mjs → renderer-BO2lYmtE.mjs} +34 -147
  239. package/dist/renderer-BO2lYmtE.mjs.map +1 -0
  240. package/dist/renderer-BOlN9HeG.mjs +5 -0
  241. package/dist/renderer-BSitV56h.mjs +268 -0
  242. package/dist/renderer-BSitV56h.mjs.map +1 -0
  243. package/dist/renderer-BTOW-ceB.mjs +5 -0
  244. package/dist/{renderer-wVldKtFU.mjs → renderer-BYqfkwLf.mjs} +51 -163
  245. package/dist/renderer-BYqfkwLf.mjs.map +1 -0
  246. package/dist/{renderer-bZU_ndxf.mjs → renderer-BajIOuZH.mjs} +2 -2
  247. package/dist/{renderer-bZU_ndxf.mjs.map → renderer-BajIOuZH.mjs.map} +1 -1
  248. package/dist/{renderer-jkZ_IQnW.mjs → renderer-BgnJUx24.mjs} +80 -258
  249. package/dist/renderer-BgnJUx24.mjs.map +1 -0
  250. package/dist/renderer-BiQ0PYOp.mjs +5 -0
  251. package/dist/{renderer-BnvqEqvE.mjs → renderer-BjTq3a0L.mjs} +5 -4
  252. package/dist/{renderer-BnvqEqvE.mjs.map → renderer-BjTq3a0L.mjs.map} +1 -1
  253. package/dist/{renderer-DEJwPRkR.mjs → renderer-BkN20ZKO.mjs} +15 -51
  254. package/dist/renderer-BkN20ZKO.mjs.map +1 -0
  255. package/dist/renderer-Bla7GDyV.mjs +5 -0
  256. package/dist/renderer-BoYyLVKy.mjs +5 -0
  257. package/dist/{renderer-D7zvPHKn.mjs → renderer-BpZaHFRc.mjs} +18 -28
  258. package/dist/renderer-BpZaHFRc.mjs.map +1 -0
  259. package/dist/renderer-BqOgb7bM.mjs +5 -0
  260. package/dist/{renderer-DNNqpK7t.mjs → renderer-Bq_dO0LG.mjs} +10 -17
  261. package/dist/renderer-Bq_dO0LG.mjs.map +1 -0
  262. package/dist/renderer-BqeM8yTJ.mjs +5 -0
  263. package/dist/{renderer-DryPrxYc.mjs → renderer-BqsV75Ml.mjs} +3 -1
  264. package/dist/{renderer-8qpGxSSO.mjs → renderer-Bs4tz_pw.mjs} +20 -87
  265. package/dist/renderer-Bs4tz_pw.mjs.map +1 -0
  266. package/dist/{renderer-DdVBt8Rz.mjs → renderer-Bsaokil3.mjs} +24 -104
  267. package/dist/renderer-Bsaokil3.mjs.map +1 -0
  268. package/dist/{renderer-D7ztfQHX.mjs → renderer-BvG1GF1c.mjs} +10 -16
  269. package/dist/renderer-BvG1GF1c.mjs.map +1 -0
  270. package/dist/{renderer-BGXbGqY4.mjs → renderer-BvpSIFkw.mjs} +83 -266
  271. package/dist/renderer-BvpSIFkw.mjs.map +1 -0
  272. package/dist/{renderer-Dju9CaeL.mjs → renderer-BwAqwTQq.mjs} +62 -209
  273. package/dist/renderer-BwAqwTQq.mjs.map +1 -0
  274. package/dist/{renderer-CzPWB0Ss.mjs → renderer-BwVfhrEx.mjs} +13 -45
  275. package/dist/renderer-BwVfhrEx.mjs.map +1 -0
  276. package/dist/renderer-BzpRe50i.mjs +5 -0
  277. package/dist/renderer-C0eAPwpr.mjs +5 -0
  278. package/dist/{renderer-But0u-xi.mjs → renderer-C3RfT8Gv.mjs} +59 -194
  279. package/dist/renderer-C3RfT8Gv.mjs.map +1 -0
  280. package/dist/{renderer-CgmFh6MY.mjs → renderer-C3cYDT3m.mjs} +3 -1
  281. package/dist/{renderer-D-4Yh-RK.mjs → renderer-CEGbqT2m.mjs} +236 -96
  282. package/dist/renderer-CEGbqT2m.mjs.map +1 -0
  283. package/dist/{renderer-CcU7dVn9.mjs → renderer-CGldH-Zx.mjs} +40 -142
  284. package/dist/renderer-CGldH-Zx.mjs.map +1 -0
  285. package/dist/renderer-CGn8V63v.mjs +5 -0
  286. package/dist/{renderer-DffynBHa.mjs → renderer-CH9Qtpy7.mjs} +4 -4
  287. package/dist/{renderer-DffynBHa.mjs.map → renderer-CH9Qtpy7.mjs.map} +1 -1
  288. package/dist/{renderer-ho_jXJ0H.mjs → renderer-CLyuu_19.mjs} +23 -117
  289. package/dist/renderer-CLyuu_19.mjs.map +1 -0
  290. package/dist/renderer-CM5Syo9r.mjs +5 -0
  291. package/dist/{renderer-BJ6Y-7ke.mjs → renderer-CRIM_XRK.mjs} +3 -3
  292. package/dist/{renderer-BJ6Y-7ke.mjs.map → renderer-CRIM_XRK.mjs.map} +1 -1
  293. package/dist/{renderer-2NQWaZd7.d.mts → renderer-CTGe8SqQ.d.mts} +2 -2
  294. package/dist/{renderer-2NQWaZd7.d.mts.map → renderer-CTGe8SqQ.d.mts.map} +1 -1
  295. package/dist/renderer-CWCEW6Wv.mjs +5 -0
  296. package/dist/{renderer-CNF10fCq.mjs → renderer-CgyOylPO.mjs} +10 -17
  297. package/dist/renderer-CgyOylPO.mjs.map +1 -0
  298. package/dist/{renderer-DjTiNeAp.mjs → renderer-CjT5Zy-J.mjs} +81 -221
  299. package/dist/renderer-CjT5Zy-J.mjs.map +1 -0
  300. package/dist/{renderer-_uvdg48N.mjs → renderer-Cjq1s3br.mjs} +24 -93
  301. package/dist/renderer-Cjq1s3br.mjs.map +1 -0
  302. package/dist/renderer-Cl70zxkP.mjs +5 -0
  303. package/dist/renderer-ClJjoVpB.mjs +6 -0
  304. package/dist/{renderer-DBlPbsgi.mjs → renderer-CpKNqciR.mjs} +3 -1
  305. package/dist/{renderer-DTvfYkI9.mjs → renderer-Cwhux4VX.mjs} +9 -16
  306. package/dist/renderer-Cwhux4VX.mjs.map +1 -0
  307. package/dist/{renderer-CJNyhr_S.mjs → renderer-D0nWLogn.mjs} +99 -282
  308. package/dist/renderer-D0nWLogn.mjs.map +1 -0
  309. package/dist/{renderer-9wp5R7PL.mjs → renderer-D1lynYuy.mjs} +23 -107
  310. package/dist/renderer-D1lynYuy.mjs.map +1 -0
  311. package/dist/{renderer-DYm4duFr.mjs → renderer-D4sYVV-I.mjs} +41 -140
  312. package/dist/renderer-D4sYVV-I.mjs.map +1 -0
  313. package/dist/{renderer-CroHPOsX.mjs → renderer-D5z3WDkm.mjs} +99 -287
  314. package/dist/renderer-D5z3WDkm.mjs.map +1 -0
  315. package/dist/renderer-D8C-pamu.mjs +148 -0
  316. package/dist/renderer-D8C-pamu.mjs.map +1 -0
  317. package/dist/{renderer-D_1oDOCP.mjs → renderer-DAtBnNGC.mjs} +14 -69
  318. package/dist/renderer-DAtBnNGC.mjs.map +1 -0
  319. package/dist/{renderer-DZGtBUCx.mjs → renderer-DG1NFsSV.mjs} +35 -185
  320. package/dist/renderer-DG1NFsSV.mjs.map +1 -0
  321. package/dist/{renderer-BM05sB8m.mjs → renderer-DHAErBtJ.mjs} +11 -74
  322. package/dist/renderer-DHAErBtJ.mjs.map +1 -0
  323. package/dist/{renderer-CStktK20.mjs → renderer-DIDSmoFA.mjs} +73 -73
  324. package/dist/{renderer-CStktK20.mjs.map → renderer-DIDSmoFA.mjs.map} +1 -1
  325. package/dist/{renderer-BA8YwBRQ.mjs → renderer-DKtP7-fr.mjs} +58 -234
  326. package/dist/renderer-DKtP7-fr.mjs.map +1 -0
  327. package/dist/renderer-DLnF-V_h.mjs +5 -0
  328. package/dist/renderer-DN1rjmcL.mjs +5 -0
  329. package/dist/{renderer-BZmfKIom.mjs → renderer-DOEsFT7Q.mjs} +57 -192
  330. package/dist/renderer-DOEsFT7Q.mjs.map +1 -0
  331. package/dist/{renderer-6GeDT4Mx.mjs → renderer-DPYB6ZcB.mjs} +57 -197
  332. package/dist/renderer-DPYB6ZcB.mjs.map +1 -0
  333. package/dist/{renderer-DCkSR2Ne.mjs → renderer-DRsPCkxr.mjs} +76 -210
  334. package/dist/renderer-DRsPCkxr.mjs.map +1 -0
  335. package/dist/renderer-DXTw9Oqb.mjs +5 -0
  336. package/dist/{renderer-DAMJZNtX.mjs → renderer-DZLJnnU2.mjs} +63 -190
  337. package/dist/renderer-DZLJnnU2.mjs.map +1 -0
  338. package/dist/{renderer-BtRfKx5N.mjs → renderer-DZrQffIP.mjs} +56 -167
  339. package/dist/renderer-DZrQffIP.mjs.map +1 -0
  340. package/dist/renderer-DbAVSBNI.mjs +5 -0
  341. package/dist/renderer-Dg8rD--8.mjs +5 -0
  342. package/dist/{renderer-BpCxKWQm.mjs → renderer-DhEyjn6Q.mjs} +52 -202
  343. package/dist/renderer-DhEyjn6Q.mjs.map +1 -0
  344. package/dist/{renderer-CIYcdZuZ.mjs → renderer-Dmv_Aj6x.mjs} +161 -457
  345. package/dist/renderer-Dmv_Aj6x.mjs.map +1 -0
  346. package/dist/renderer-DnFxegGu.mjs +5 -0
  347. package/dist/renderer-DnfmelHn.mjs +5 -0
  348. package/dist/{renderer-DxtHmyAa.mjs → renderer-Dpj68gTn.mjs} +11 -18
  349. package/dist/renderer-Dpj68gTn.mjs.map +1 -0
  350. package/dist/renderer-DuOjzggd.mjs +5 -0
  351. package/dist/renderer-DuuOlYIG.mjs +3 -0
  352. package/dist/renderer-DvYql0Cl.mjs +5 -0
  353. package/dist/{renderer-xKOVmd2O.mjs → renderer-DzhRNdBS.mjs} +245 -231
  354. package/dist/renderer-DzhRNdBS.mjs.map +1 -0
  355. package/dist/renderer-GSFP7v2z.mjs +3 -0
  356. package/dist/renderer-LfUdjgjF.mjs +5 -0
  357. package/dist/{renderer-CfeoxM_3.mjs → renderer-Q63y7HP_.mjs} +8 -15
  358. package/dist/renderer-Q63y7HP_.mjs.map +1 -0
  359. package/dist/renderer-SecCv3U8.mjs +5 -0
  360. package/dist/{renderer-b6sZN90h.mjs → renderer-mp1NN5zk.mjs} +4 -4
  361. package/dist/{renderer-b6sZN90h.mjs.map → renderer-mp1NN5zk.mjs.map} +1 -1
  362. package/dist/renderer-oZyoB4CT.mjs +5 -0
  363. package/dist/renderer-rzci_kTy.mjs +5 -0
  364. package/dist/{renderer-CpkiHRhh.mjs → renderer-to9DwqXK.mjs} +17 -99
  365. package/dist/renderer-to9DwqXK.mjs.map +1 -0
  366. package/dist/{renderer-CepMDQ06.mjs → renderer-v0vuUUUI.mjs} +19 -106
  367. package/dist/renderer-v0vuUUUI.mjs.map +1 -0
  368. package/dist/renderer-vLaZuZbX.mjs +5 -0
  369. package/dist/{renderers-CP8CFWDs-BLgwUYX2.mjs → renderers-CP8CFWDs-DlFq8jmz.mjs} +4 -4
  370. package/dist/{renderers-CP8CFWDs-BLgwUYX2.mjs.map → renderers-CP8CFWDs-DlFq8jmz.mjs.map} +1 -1
  371. package/dist/signals/index.d.mts +5 -5
  372. package/dist/signals/index.mjs +7 -7
  373. package/dist/{signals-CsxqD2AA.mjs → signals-BDkO0xcZ.mjs} +3 -3
  374. package/dist/{signals-CsxqD2AA.mjs.map → signals-BDkO0xcZ.mjs.map} +1 -1
  375. package/dist/{signin-Db08vl-g.mjs → signin-SVSXQw9i.mjs} +9 -9
  376. package/dist/{signin-Db08vl-g.mjs.map → signin-SVSXQw9i.mjs.map} +1 -1
  377. package/dist/{sso-oidc-CpLz_lIu.mjs → sso-oidc-B3Sagl43.mjs} +9 -9
  378. package/dist/{sso-oidc-CpLz_lIu.mjs.map → sso-oidc-B3Sagl43.mjs.map} +1 -1
  379. package/dist/{sts-BQefGuml.mjs → sts-CYeWec9i.mjs} +2 -2
  380. package/dist/{sts-Dgl0kH-t.mjs → sts-ClVtt-bV.mjs} +9 -9
  381. package/dist/{sts-Dgl0kH-t.mjs.map → sts-ClVtt-bV.mjs.map} +1 -1
  382. package/package.json +55 -55
  383. package/dist/dist-B9Afsv83.mjs.map +0 -1
  384. package/dist/dist-B9PkqWnN.mjs.map +0 -1
  385. package/dist/dist-BFjSQP7i.mjs.map +0 -1
  386. package/dist/dist-DzUJmIHt.mjs.map +0 -1
  387. package/dist/dist-cjs-3pon9kTt.mjs +0 -6
  388. package/dist/fonts-DhEQ5h6E.mjs.map +0 -1
  389. package/dist/index-CQcdKyxF.d.mts.map +0 -1
  390. package/dist/index-D1zaOwEU.d.mts.map +0 -1
  391. package/dist/index-J9CIK_nu.d.mts.map +0 -1
  392. package/dist/preview-engine/chunk-36YGYLKD.mjs +0 -58
  393. package/dist/preview-engine/chunk-5JD65JSJ.mjs +0 -110
  394. package/dist/preview-engine/chunk-7O24H4YT.mjs +0 -117
  395. package/dist/preview-engine/chunk-AG5JNZYQ.mjs +0 -8
  396. package/dist/preview-engine/chunk-AUFSM5KI.mjs +0 -141
  397. package/dist/preview-engine/chunk-BQ65MU6H.mjs +0 -138
  398. package/dist/preview-engine/chunk-BWDARDO6.mjs +0 -117
  399. package/dist/preview-engine/chunk-CNSHAFEA.mjs +0 -1
  400. package/dist/preview-engine/chunk-DLXQDDIN.mjs +0 -46
  401. package/dist/preview-engine/chunk-EJGLUZMW.mjs +0 -1
  402. package/dist/preview-engine/chunk-FE6RSVKZ.mjs +0 -73
  403. package/dist/preview-engine/chunk-HPIULG7P.mjs +0 -111
  404. package/dist/preview-engine/chunk-HRIKNYPF.mjs +0 -60
  405. package/dist/preview-engine/chunk-JPXQPP6J.mjs +0 -1
  406. package/dist/preview-engine/chunk-K52S5DJX.mjs +0 -109
  407. package/dist/preview-engine/chunk-MJM3NFEC.mjs +0 -315
  408. package/dist/preview-engine/chunk-NRHSNPZV.mjs +0 -182
  409. package/dist/preview-engine/chunk-OWOSYNMF.mjs +0 -104
  410. package/dist/preview-engine/chunk-QGBSLNFI.mjs +0 -52
  411. package/dist/preview-engine/chunk-QM3XFEJN.mjs +0 -63
  412. package/dist/preview-engine/chunk-QTKJXDIW.mjs +0 -997
  413. package/dist/preview-engine/chunk-R3ZH7YF3.mjs +0 -89
  414. package/dist/preview-engine/chunk-R6YNSBKL.mjs +0 -108
  415. package/dist/preview-engine/chunk-RNOO4UR5.mjs +0 -3
  416. package/dist/preview-engine/chunk-S4CSX6K5.mjs +0 -610
  417. package/dist/preview-engine/chunk-SNYAHQ25.mjs +0 -186
  418. package/dist/preview-engine/chunk-SRT2OCQW.mjs +0 -1
  419. package/dist/preview-engine/chunk-SUUUYXXT.mjs +0 -1
  420. package/dist/preview-engine/chunk-T6CC2KCZ.mjs +0 -418
  421. package/dist/preview-engine/chunk-T6COGNOW.mjs +0 -134
  422. package/dist/preview-engine/chunk-UC7CSW2A.mjs +0 -1
  423. package/dist/preview-engine/chunk-XFYXT76H.mjs +0 -52
  424. package/dist/preview-engine/chunk-XUM42I4R.mjs +0 -1
  425. package/dist/preview-engine/chunk-YITWSOG4.mjs +0 -103
  426. package/dist/preview-engine/chunk-ZDCA6NVT.mjs +0 -82
  427. package/dist/preview-engine/chunk-ZNGOAGAI.mjs +0 -1
  428. package/dist/preview-engine/renderers-27Q5X3U6.mjs +0 -1
  429. package/dist/preview-engine/renderers-32PIFHPS.mjs +0 -1
  430. package/dist/preview-engine/renderers-3Y3EMRDJ.mjs +0 -1
  431. package/dist/preview-engine/renderers-4AHH6BHF.mjs +0 -1
  432. package/dist/preview-engine/renderers-6PRVCTYV.mjs +0 -1
  433. package/dist/preview-engine/renderers-76PQY2SO.mjs +0 -1
  434. package/dist/preview-engine/renderers-7HNVXNAI.mjs +0 -248
  435. package/dist/preview-engine/renderers-B52QT6MT.mjs +0 -55
  436. package/dist/preview-engine/renderers-BE6RVJSE.mjs +0 -1
  437. package/dist/preview-engine/renderers-BMM2BH56.mjs +0 -1
  438. package/dist/preview-engine/renderers-CHJWUJVI.mjs +0 -1
  439. package/dist/preview-engine/renderers-CHOGQHVQ.mjs +0 -1
  440. package/dist/preview-engine/renderers-CI2GXWLP.mjs +0 -1
  441. package/dist/preview-engine/renderers-CRKRWR2Y.mjs +0 -1
  442. package/dist/preview-engine/renderers-DEYDSGJX.mjs +0 -1
  443. package/dist/preview-engine/renderers-DZTNRCR7.mjs +0 -1
  444. package/dist/preview-engine/renderers-EE2GFG7J.mjs +0 -1
  445. package/dist/preview-engine/renderers-ELO3KWTK.mjs +0 -1
  446. package/dist/preview-engine/renderers-F2KJNDWA.mjs +0 -124
  447. package/dist/preview-engine/renderers-FCV4COVB.mjs +0 -1
  448. package/dist/preview-engine/renderers-GJSUN5HU.mjs +0 -1
  449. package/dist/preview-engine/renderers-GXCRINGC.mjs +0 -1
  450. package/dist/preview-engine/renderers-IHKORHMT.mjs +0 -1
  451. package/dist/preview-engine/renderers-JA4SLMG3.mjs +0 -1
  452. package/dist/preview-engine/renderers-JLN77CFZ.mjs +0 -1
  453. package/dist/preview-engine/renderers-KBFW7B5F.mjs +0 -1
  454. package/dist/preview-engine/renderers-LJRJMFCR.mjs +0 -1
  455. package/dist/preview-engine/renderers-LPAPZ5QS.mjs +0 -1
  456. package/dist/preview-engine/renderers-NQUDQEHY.mjs +0 -1
  457. package/dist/preview-engine/renderers-NS3AIJVG.mjs +0 -1
  458. package/dist/preview-engine/renderers-NSY2SDIE.mjs +0 -1
  459. package/dist/preview-engine/renderers-PW4OJWHF.mjs +0 -120
  460. package/dist/preview-engine/renderers-PWLWOZY4.mjs +0 -1
  461. package/dist/preview-engine/renderers-Q3MD34JN.mjs +0 -1
  462. package/dist/preview-engine/renderers-RXGNA2Q7.mjs +0 -1
  463. package/dist/preview-engine/renderers-UGZUPONY.mjs +0 -1
  464. package/dist/preview-engine/renderers-VTTGFO55.mjs +0 -1
  465. package/dist/preview-engine/renderers-W3VVM5HB.mjs +0 -1
  466. package/dist/preview-engine/renderers-WG7QBD4D.mjs +0 -1
  467. package/dist/preview-engine/renderers-WLLJFZTF.mjs +0 -1
  468. package/dist/preview-engine/renderers-WN4SYFCU.mjs +0 -1
  469. package/dist/preview-engine/renderers-WSMLLSWX.mjs +0 -1
  470. package/dist/preview-engine/renderers-XFBSGTHU.mjs +0 -1
  471. package/dist/preview-engine/renderers-XFC6ZPO5.mjs +0 -1
  472. package/dist/preview-engine/renderers-XUHRY3XH.mjs +0 -1
  473. package/dist/preview-engine/renderers-YAOB5XU6.mjs +0 -1
  474. package/dist/preview-engine/renderers-YTB4FOHT.mjs +0 -1
  475. package/dist/program-xRfFoPxe.mjs.map +0 -1
  476. package/dist/renderer-6GeDT4Mx.mjs.map +0 -1
  477. package/dist/renderer-8qpGxSSO.mjs.map +0 -1
  478. package/dist/renderer-9wp5R7PL.mjs.map +0 -1
  479. package/dist/renderer-B2XzjK0z.mjs +0 -3
  480. package/dist/renderer-B4F6wL68.mjs +0 -3
  481. package/dist/renderer-B4i1jmiT.mjs +0 -3
  482. package/dist/renderer-B5ylY3uM.mjs +0 -3
  483. package/dist/renderer-BA8YwBRQ.mjs.map +0 -1
  484. package/dist/renderer-BGXbGqY4.mjs.map +0 -1
  485. package/dist/renderer-BM05sB8m.mjs.map +0 -1
  486. package/dist/renderer-BPw23wiR.mjs +0 -3
  487. package/dist/renderer-BREIjsUU.mjs.map +0 -1
  488. package/dist/renderer-BTu2EVhF.mjs +0 -3
  489. package/dist/renderer-BZmfKIom.mjs.map +0 -1
  490. package/dist/renderer-BfJSUjPN.mjs +0 -3
  491. package/dist/renderer-BgdkEFmv.mjs.map +0 -1
  492. package/dist/renderer-BghW-bSZ.mjs +0 -3
  493. package/dist/renderer-BpCxKWQm.mjs.map +0 -1
  494. package/dist/renderer-BtRfKx5N.mjs.map +0 -1
  495. package/dist/renderer-But0u-xi.mjs.map +0 -1
  496. package/dist/renderer-Bw3oZ9YT.mjs +0 -3
  497. package/dist/renderer-C-H680_l.mjs +0 -3
  498. package/dist/renderer-C2009W-_.mjs +0 -3
  499. package/dist/renderer-C36yoGXG.mjs +0 -3
  500. package/dist/renderer-CDLrNgfo.mjs +0 -3
  501. package/dist/renderer-CIYcdZuZ.mjs.map +0 -1
  502. package/dist/renderer-CJNyhr_S.mjs.map +0 -1
  503. package/dist/renderer-CL3evUmF.mjs +0 -3
  504. package/dist/renderer-CM1_2ZWA.mjs +0 -3
  505. package/dist/renderer-CNF10fCq.mjs.map +0 -1
  506. package/dist/renderer-CQdVj2JS.mjs +0 -3
  507. package/dist/renderer-CQiTodg9.mjs +0 -337
  508. package/dist/renderer-CQiTodg9.mjs.map +0 -1
  509. package/dist/renderer-CWlzudP8.mjs +0 -3
  510. package/dist/renderer-CZgB5st8.mjs +0 -3
  511. package/dist/renderer-CcU7dVn9.mjs.map +0 -1
  512. package/dist/renderer-Cd5vzrGs.mjs +0 -3
  513. package/dist/renderer-CeJ_vDXI.mjs +0 -3
  514. package/dist/renderer-CepMDQ06.mjs.map +0 -1
  515. package/dist/renderer-CfeoxM_3.mjs.map +0 -1
  516. package/dist/renderer-CjY77sB_.mjs +0 -3
  517. package/dist/renderer-CkykdR_D.mjs +0 -3
  518. package/dist/renderer-CoZKST2Y.mjs.map +0 -1
  519. package/dist/renderer-CpkiHRhh.mjs.map +0 -1
  520. package/dist/renderer-CroHPOsX.mjs.map +0 -1
  521. package/dist/renderer-CtVkU_GA.mjs +0 -44
  522. package/dist/renderer-CtVkU_GA.mjs.map +0 -1
  523. package/dist/renderer-CzPWB0Ss.mjs.map +0 -1
  524. package/dist/renderer-D-4Yh-RK.mjs.map +0 -1
  525. package/dist/renderer-D2XD4QYk.mjs.map +0 -1
  526. package/dist/renderer-D5Z6mda5.mjs +0 -3
  527. package/dist/renderer-D7ztfQHX.mjs.map +0 -1
  528. package/dist/renderer-D7zvPHKn.mjs.map +0 -1
  529. package/dist/renderer-D9NnIx7o.mjs +0 -3
  530. package/dist/renderer-DAMJZNtX.mjs.map +0 -1
  531. package/dist/renderer-DCJa7OGk.mjs +0 -3
  532. package/dist/renderer-DCkSR2Ne.mjs.map +0 -1
  533. package/dist/renderer-DEJwPRkR.mjs.map +0 -1
  534. package/dist/renderer-DGwSl7g1.mjs +0 -3
  535. package/dist/renderer-DNNqpK7t.mjs.map +0 -1
  536. package/dist/renderer-DNoRNfMm.mjs +0 -3
  537. package/dist/renderer-DOZ8bpyY.mjs +0 -3
  538. package/dist/renderer-DRHyRNU8.mjs +0 -3
  539. package/dist/renderer-DTvfYkI9.mjs.map +0 -1
  540. package/dist/renderer-DYm4duFr.mjs.map +0 -1
  541. package/dist/renderer-DZGtBUCx.mjs.map +0 -1
  542. package/dist/renderer-D_1oDOCP.mjs.map +0 -1
  543. package/dist/renderer-DdVBt8Rz.mjs.map +0 -1
  544. package/dist/renderer-DjTiNeAp.mjs.map +0 -1
  545. package/dist/renderer-Dju9CaeL.mjs.map +0 -1
  546. package/dist/renderer-DlD85Xoi.mjs +0 -3
  547. package/dist/renderer-Dr0bgOrW.mjs +0 -3
  548. package/dist/renderer-DurtG-Hc.mjs +0 -3
  549. package/dist/renderer-DxtHmyAa.mjs.map +0 -1
  550. package/dist/renderer-_bygZSKk.mjs.map +0 -1
  551. package/dist/renderer-_uvdg48N.mjs.map +0 -1
  552. package/dist/renderer-d5-F_48R.mjs +0 -3
  553. package/dist/renderer-eFv9HBmL.mjs +0 -3
  554. package/dist/renderer-ho_jXJ0H.mjs.map +0 -1
  555. package/dist/renderer-iuV6wQoL.mjs +0 -4
  556. package/dist/renderer-jkZ_IQnW.mjs.map +0 -1
  557. package/dist/renderer-n-uuWPF4.mjs +0 -3
  558. package/dist/renderer-rzccTFuY.mjs +0 -3
  559. package/dist/renderer-wVldKtFU.mjs.map +0 -1
  560. package/dist/renderer-xKOVmd2O.mjs.map +0 -1
  561. package/dist/renderer-y9eGFPFL.mjs +0 -3
  562. /package/dist/{renderer-C2n-EHxg.mjs → renderer-B-BcgA6d.mjs} +0 -0
@@ -1 +1 @@
1
- import{a as k,b as l,c as m,d as n}from"./chunk-CURR5X7D.mjs";import{a as j}from"./chunk-V6VU46ZG.mjs";import{a as b}from"./chunk-24DXIKXL.mjs";import{a as c}from"./chunk-LIHUEYI5.mjs";import{a as d}from"./chunk-ZSIJB76A.mjs";import{a as e}from"./chunk-EQ4QZRXB.mjs";import{a as f}from"./chunk-AMBSW6OA.mjs";import{a as g}from"./chunk-XLFYM7KH.mjs";import{a}from"./chunk-D3TETPLI.mjs";import{a as h}from"./chunk-PQD5UPHG.mjs";import{b as i}from"./chunk-BHFI3Y4T.mjs";import"./chunk-37EFVZWT.mjs";import"./chunk-4VOHF3FF.mjs";import"./chunk-24P6DAB3.mjs";import"./chunk-36YGYLKD.mjs";import"./chunk-ZNGOAGAI.mjs";import"./chunk-6YJP57MZ.mjs";import"./chunk-HYBAPT6I.mjs";import"./chunk-BVF64D6H.mjs";export{a as WebGPUAudioProcessor,d as audioFadeRenderer,h as audioSignalExtractorRenderer,b as compressorRenderer,c as delayRenderer,n as encodeStereoWav,i as mixAudioTracks,l as mixSfxInto,e as noiseGateRenderer,f as parametricEqRenderer,k as renderSfx,g as reverbRenderer,m as softLimit,j as stereoPanningRenderer};
1
+ import{a as k,b as l,c as m,d as n}from"./chunk-CURR5X7D.mjs";import{a as j}from"./chunk-L6BH5J4P.mjs";import{a as b}from"./chunk-DIGIQ5MJ.mjs";import{a as c}from"./chunk-44CQSOYE.mjs";import{a as d}from"./chunk-TS3JI3BH.mjs";import{a as e}from"./chunk-EYWPOCZW.mjs";import{a as f}from"./chunk-U4JIFQRR.mjs";import{a as g}from"./chunk-EVXWDOCL.mjs";import{a}from"./chunk-OG62XGCT.mjs";import{a as h}from"./chunk-7G3XIOP7.mjs";import{b as i}from"./chunk-QBEUICZD.mjs";import"./chunk-37EFVZWT.mjs";import"./chunk-4VOHF3FF.mjs";import"./chunk-24P6DAB3.mjs";import"./chunk-ZIIFTWDH.mjs";import"./chunk-Q4Z54DQ7.mjs";import"./chunk-63SFBHEH.mjs";import"./chunk-6YJP57MZ.mjs";import"./chunk-HYBAPT6I.mjs";import"./chunk-BVF64D6H.mjs";export{a as WebGPUAudioProcessor,d as audioFadeRenderer,h as audioSignalExtractorRenderer,b as compressorRenderer,c as delayRenderer,n as encodeStereoWav,i as mixAudioTracks,l as mixSfxInto,e as noiseGateRenderer,f as parametricEqRenderer,k as renderSfx,g as reverbRenderer,m as softLimit,j as stereoPanningRenderer};
@@ -1,4 +1,4 @@
1
- import{a as je}from"./chunk-VXUJWPIK.mjs";import{a as mt}from"./chunk-XKO4RYKN.mjs";import{c as ft}from"./chunk-UC7CSW2A.mjs";import{I as ot,a as S,b as L}from"./chunk-NQZKBFC6.mjs";import{b as rt,h as pe,i as Ee,l as te,t as st}from"./chunk-ZNGOAGAI.mjs";import{a as ct,e as lt,i as Ve,j as dt}from"./chunk-4GEWSUX5.mjs";import{b as be,c as it,e as at}from"./chunk-MTJHQATU.mjs";import{d as ut,e as ye,g as Ae}from"./chunk-YAQFFQPG.mjs";import{a as Qt,c as en,d as A,e as y}from"./chunk-BVF64D6H.mjs";var At=Qt((To,Vt)=>{y();var Se=()=>new Proxy(function(){},{get:(r,e)=>e==="__esModule"?!0:e===Symbol.toPrimitive?()=>"":Se(),apply:()=>Se(),construct:()=>Se()});Vt.exports=Se()});y();y();var ht=class{signals;config;_frameHooks=[];constructor(e){this.config={...e},this.signals={};for(let[t,n]of Object.entries(e))pe(n)?this.signals[t]=n:this.signals[t]=Ee(n);return new Proxy(this,{get(t,n,o){if(typeof n=="string"&&n in t.signals){let s=t.signals[n];return s?s.value:void 0}return Reflect.get(t,n,o)},set(t,n,o,s){if(typeof n=="string"&&n in t.signals){let i=t.signals[n];return pe(o)?(t.signals[n]=o,t.config[n]=o):i&&typeof i.set=="function"?(i.set(o),t.config[n]=o):(t.signals[n]=Ee(o),t.config[n]=o),!0}return Reflect.set(t,n,o,s)}})}onRequestFrame(e){return this._frameHooks.push(e),this}notifyFrame(e){for(let t of this._frameHooks)t(e)}resolveUniforms(e){let t={};for(let[n,o]of Object.entries(this.signals))t[n]=o.get(e);return t}resolveTextures(){let e={};for(let[t,n]of Object.entries(this.signals)){let o=n.gpuBinding;o?.textureView&&(e[`${t}TextureView`]=o.textureView),o?.texture&&(e[`${t}Texture`]=o.texture)}return e}toOperation(){let e={op:this.op,effect:this,onRequestFrame:t=>this.notifyFrame(t),signals:this.signals,...this.config};for(let[t,n]of Object.entries(this.signals)){let o=this.config[t];!pe(o)&&(typeof o=="string"||typeof o=="boolean")?e[t]=n.value:e[t]=n}return e}};y();var gt=class extends Error{constructor(e){super(e),this.name="ModerationError"}},pt=class extends Error{constructor(e){super(e),this.name="ModerationUnrefundableError"}};y();y();y();var bt="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var yt=(r=21)=>{let e="",t=crypto.getRandomValues(new Uint8Array(r|=0));for(;r--;)e+=bt[t[r]&63];return e};var Jn=r=>yt(r);y();var xt=L.object({dataTypes:L.custom(),label:L.string(),required:L.boolean().optional(),order:L.number(),description:L.string().optional()}),tn=L.object({configKey:L.string(),dataTypes:L.custom(),label:L.string(),description:L.string().optional()}),nr=L.object({type:L.string().min(1),version:L.number().int().positive().optional(),baseType:L.string().optional(),displayName:L.string().min(1),description:L.string().optional(),showInQuickAccess:L.boolean().optional(),showInSidebar:L.boolean().optional(),advanced:L.boolean().optional(),category:L.string().min(1),subcategory:L.string().optional(),defaultDimensions:L.object({width:L.number().positive().optional(),height:L.number().positive().optional()}).optional(),handles:L.object({inputs:L.array(xt),outputs:L.array(xt)}),variableInputs:L.discriminatedUnion("enabled",[L.object({enabled:L.literal(!0),dataTypes:L.custom()}),L.object({enabled:L.literal(!1),dataTypes:L.custom().optional()})]).optional(),variableOutputs:L.discriminatedUnion("enabled",[L.object({enabled:L.literal(!0),dataTypes:L.custom()}),L.object({enabled:L.literal(!1),dataTypes:L.custom().optional()})]).optional(),isTerminal:L.boolean().optional(),isTransient:L.boolean().optional(),configSchema:L.custom().optional(),defaultConfig:L.record(L.string(),L.unknown()).optional(),validation:L.any().optional(),resultSchema:L.custom().optional(),configHandles:L.array(tn).optional()});y();var sr={Text:{bg:"bg-blue-500",stroke:"stroke-blue-500",hex:"#3b82f6",text:"text-blue-500",border:"border-blue-500"},Image:{bg:"bg-purple-500",stroke:"stroke-purple-500",hex:"#a855f7",text:"text-purple-500",border:"border-purple-500"},Video:{bg:"bg-teal-500",stroke:"stroke-teal-500",hex:"oklch(60% 0.118 184.704)",text:"text-teal-500",border:"border-teal-500"},Audio:{bg:"bg-orange-500",stroke:"stroke-orange-500",hex:"#f97316",text:"text-orange-500",border:"border-orange-500"},Number:{bg:"bg-green-600",stroke:"stroke-green-600",hex:"#16a34a",text:"text-green-600",border:"border-green-600"},Boolean:{bg:"bg-amber-600",stroke:"stroke-amber-600",hex:"#d97706",text:"text-amber-600",border:"border-amber-600"},SVG:{bg:"bg-lime-600",stroke:"stroke-lime-600",hex:"#65a30d",text:"text-lime-600",border:"border-lime-600"},Caption:{bg:"bg-rose-500",stroke:"stroke-rose-500",hex:"#f43f5e",text:"text-rose-500",border:"border-rose-500"},GIF:{bg:"bg-pink-500",stroke:"stroke-pink-500",hex:"#ec4899",text:"text-pink-500",border:"border-pink-500"},Lottie:{bg:"bg-indigo-500",stroke:"stroke-indigo-500",hex:"#6366f1",text:"text-indigo-500",border:"border-indigo-500"},Signal:{bg:"bg-fuchsia-500",stroke:"stroke-fuchsia-500",hex:"#d946ef",text:"text-fuchsia-500",border:"border-fuchsia-500"},LUT:{bg:"bg-cyan-600",stroke:"stroke-cyan-600",hex:"#0891b2",text:"text-cyan-600",border:"border-cyan-600"}};y();var lr={Image:"png",Video:"mp4",Audio:"mp3",Text:"txt",Number:"txt",Boolean:"txt",SVG:"svg",Caption:"srt",Lottie:"json",ThreeD:"glb",GIF:"gif",Signal:"txt",LUT:"cube"},dr={png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp",svg:"image/svg+xml",mp4:"video/mp4",webm:"video/webm",mov:"video/quicktime",mp3:"audio/mpeg",wav:"audio/wav",ogg:"audio/ogg",pdf:"application/pdf",json:"application/json",txt:"text/plain",srt:"text/srt",aac:"audio/aac",flac:"audio/flac"},nn=["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"],Tt=S.enum(nn),kt=class r{static schemas=new Map;static register(e,t){r.schemas.set(e,t)}static get(e){return r.schemas.get(e)}static clear(){r.schemas.clear()}};y();var fr={FONT_FAMILY:"Inter",FONT_SIZE:64,FILL:"#ffffff",LINE_HEIGHT:1.1,ALIGN:"left",VERTICAL_ALIGN:"top",LETTER_SPACING:0,STROKE_WIDTH:0,STROKE:"#000000",CORNER_RADIUS:0,PADDING:0};y();var rn=S.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"]),on=S.object({id:S.string(),type:rn,value:S.number()}),sn=S.object({x:S.number().default(0),y:S.number().default(0),width:S.number().optional(),height:S.number().optional(),rotation:S.number().default(0),scale:S.number().min(0).default(1),opacity:S.number().min(0).max(1).default(1),zIndex:S.number().int().optional(),blendMode:Tt.optional()}),an=S.object({startFrame:S.number().int().min(0).default(0),durationInMS:S.number().int().min(1).optional(),trimStart:S.number().int().min(0).optional(),trimEnd:S.number().int().min(0).optional(),speed:S.number().min(.25).max(4).optional()}),cn=S.object({text:S.string().optional(),fontSize:S.number().optional(),fontFamily:S.string().optional(),fontStyle:S.string().optional(),fontWeight:S.union([S.number(),S.string()]).optional(),fill:S.string().optional(),align:S.string().optional(),verticalAlign:S.string().optional(),letterSpacing:S.number().optional(),lineHeight:S.number().optional(),padding:S.number().optional(),stroke:S.string().optional(),strokeWidth:S.number().optional(),strokeAlign:S.enum(["inside","center","outside"]).optional(),textShadow:S.string().optional(),textBackgroundColor:S.string().optional(),shadows:S.array(S.object({color:S.string(),offset:S.object({x:S.number(),y:S.number()}).optional(),blurRadius:S.number().optional()})).optional(),textAnimation:S.any().optional(),bottomPadding:S.number().optional(),maxWidth:S.number().optional()}),ln=S.object({backgroundColor:S.string().optional(),borderColor:S.string().optional(),borderWidth:S.number().optional(),strokeRadius:S.number().optional(),autoDimensions:S.boolean().optional()}),Be=S.enum(["Video","Image","Audio","Text","Caption","SVG","GIF","Lottie"]),_t=sn.merge(an).merge(cn).merge(ln).extend({type:Be.optional(),animations:S.array(on).optional()});y();y();var dn=S.enum(["none","crossfade","wipe-left","wipe-right","slide-up","slide-down"]),De=S.object({type:dn,durationFrames:S.number().min(1)});var Pr=_t.extend({id:S.string(),name:S.string().optional(),type:Be,virtualMedia:ot.optional(),transitionIn:De.optional(),transitionOut:De.optional(),durationInMS:S.number(),maxDurationInMS:S.number().optional(),src:S.string().optional(),volume:S.number().default(1),inputHandleId:S.string().optional(),isPlaceholder:S.boolean().optional(),lockAspect:S.boolean().optional(),lockRatio:S.boolean().optional(),zIndex:S.number().optional()}).strict();y();function St(r,e){if(r===e||typeof r=="number"&&typeof e=="number"&&Number.isNaN(r)&&Number.isNaN(e))return!0;if(r&&e&&typeof r=="object"&&typeof e=="object"){if(r.constructor!==e.constructor)return!1;if(Array.isArray(r)){if(r.length!==e.length)return!1;for(let n=0;n<r.length;n++)if(!St(r[n],e[n]))return!1;return!0}if(r instanceof Date)return r.getTime()===e.getTime();if(r instanceof RegExp)return r.toString()===e.toString();let t=Object.keys(r);if(t.length!==Object.keys(e).length)return!1;for(let n of t)if(!Object.hasOwn(e,n)||!St(r[n],e[n]))return!1;return!0}return!1}y();function Er(r,e){if(!r?.sourceFingerprint)return null;let t=je(e);return r.sourceFingerprint!==t?null:r}function jr(r,e){return{...r,sourceFingerprint:je(e)}}y();function Br(r){try{let t=r.toString("utf-8").match(/<svg[^>]*>/i);if(!t)return null;let n=t[0],o=a=>{let c=n.match(new RegExp(`${a}=["']([^"']+)["']`,"i"));if(!c)return null;let h=parseFloat(c[1].replace(/[a-z%]/gi,""));return isNaN(h)?null:h},s=o("width"),i=o("height"),u=n.match(/viewBox=["']([^"']+)["']/i);if(u){let a=u[1].split(/[\s,]+/).map(parseFloat);if(a.length>=4&&!isNaN(a[2])&&!isNaN(a[3])){let c=a[2],h=a[3];s==null&&i==null?(s=c,i=h):s!=null&&i==null?i=s*(h/c):i!=null&&s==null&&(s=i*(c/h))}}return s!=null&&i!=null&&s>0&&i>0?{w:s,h:i}:null}catch(e){return console.error("Error parsing SVG dimensions",e),null}}y();y();y();y();var se=(r,e,t)=>`https://huggingface.co/${r}/resolve/${e}/${t}`,Fe="tori29umai/rtmdet-ins-onnx-person-masks",Ue="e5218e8d47d7c50077f27f9893a28e0ef2ad5656",He="RTMDet-Ins (OpenMMLab mmdetection, Apache-2.0), mmdeploy ONNX export",ze="RTMO (OpenMMLab mmpose, Apache-2.0), ONNX export",wt="MediaPipe Selfie Segmenter (Google, Apache-2.0), ONNX export",oe={"rtmdet-ins-t":{key:"rtmdet-ins-t",family:"rtmdet-ins",filename:"rtmdet-ins-t.onnx",url:se(Fe,Ue,"models/tiny/rtmdet-ins_tiny_640x640.onnx"),bytes:24032356,sha256:"99ee670820c4493aa13e20578b6a8e39781c319846dc41796a77765734beac5c",input:[640,640],source:He},"rtmdet-ins-s":{key:"rtmdet-ins-s",family:"rtmdet-ins",filename:"rtmdet-ins-s.onnx",url:se(Fe,Ue,"models/s/rtmdet-ins_s_640x640.onnx"),bytes:43236976,sha256:"9cd1787fbf3eb2bd64cc2d8154f41c036f5484b85599e1cbe0227a2dc5a4a08b",input:[640,640],source:He},"rtmdet-ins-m":{key:"rtmdet-ins-m",family:"rtmdet-ins",filename:"rtmdet-ins-m.onnx",url:se(Fe,Ue,"models/m/rtmdet-ins_m_640x640.onnx"),bytes:115735979,sha256:"a003bce80316e03467c2c2b483df2d5c0398220c2357a44f9bf985929f7eb052",input:[640,640],source:He},"rtmo-t":{key:"rtmo-t",family:"rtmo",filename:"rtmo-t.onnx",url:se("Xenova/RTMO-t","f29d13ce5ee291fbe505e9d06a049992f05699dc","onnx/model.onnx"),bytes:27360569,sha256:"cb54dd042bf997df86d938721c94238940f2bff98ba8d2ccc834430de5c65c13",input:[416,416],source:ze},"rtmo-s":{key:"rtmo-s",family:"rtmo",filename:"rtmo-s.onnx",url:se("Xenova/RTMO-s","d8c526187f341d287753831c9c8b1ecc4855bba1","onnx/model.onnx"),bytes:39636400,sha256:"1cd6a3517658903233e9ccb78666554862f57f0944b6886e2048093594aef4e7",input:[640,640],source:ze},"rtmo-m":{key:"rtmo-m",family:"rtmo",filename:"rtmo-m.onnx",url:se("Xenova/RTMO-m","3aba1280472b98ee2bf663482e27e243038d23fe","onnx/model.onnx"),bytes:89291929,sha256:"76d82c45e5c4810baf587ecf2638d15cbf7ed196afb2055e977382532021b59e",input:[640,640],source:ze},"selfie-square":{key:"selfie-square",family:"selfie",filename:"selfie-square.onnx",url:se("onnx-community/mediapipe_selfie_segmentation","be49485c8e027524be38591817fc5cd31bd9d00e","onnx/model.onnx"),bytes:462352,sha256:"3241ac4ad8aa35bdaf33946776db29f7c283a413aa0b0dacb9483594b4531aad",input:[256,256],source:wt},"selfie-landscape":{key:"selfie-landscape",family:"selfie",filename:"selfie-landscape.onnx",url:se("onnx-community/mediapipe_selfie_segmentation_landscape","2497d5bec26c626c7b3c4edc6e1fefc21b64f6c3","onnx/model.onnx"),bytes:462338,sha256:"7a0adcfdb1715d3b0ff0f61486d8a181c33f4a208343a5abfccbc6540e872d24",input:[256,144],source:wt}};function vt(r,e="s",t=1){return r==="pose"?`rtmo-${e}`:r==="matte"?t>1.3?"selfie-landscape":"selfie-square":`rtmdet-ins-${e}`}var xe=["person","bicycle","car","motorcycle","airplane","bus","train","truck","boat","traffic light","fire hydrant","stop sign","parking meter","bench","bird","cat","dog","horse","sheep","cow","elephant","bear","zebra","giraffe","backpack","umbrella","handbag","tie","suitcase","frisbee","skis","snowboard","sports ball","kite","baseball bat","baseball glove","skateboard","surfboard","tennis racket","bottle","wine glass","cup","fork","knife","spoon","bowl","banana","apple","sandwich","orange","broccoli","carrot","hot dog","pizza","donut","cake","chair","couch","potted plant","bed","dining table","toilet","tv","laptop","mouse","remote","keyboard","cell phone","microwave","oven","toaster","sink","refrigerator","book","clock","vase","scissors","teddy bear","hair drier","toothbrush"];y();function ae(r,e){let t=Math.max(r.originX,e.originX),n=Math.max(r.originY,e.originY),o=Math.min(r.originX+r.width,e.originX+e.width),s=Math.min(r.originY+r.height,e.originY+e.height),i=Math.max(0,o-t),u=Math.max(0,s-n),a=i*u;if(a<=0)return 0;let c=r.width*r.height,h=e.width*e.height,m=c+h-a;return m>0?a/m:0}var ue=class{_nextTrackId=1;_tracks=[];_iouThreshold;_maxMissedFrames;_minHits;_positionSmoothing;_activeDuringCoast;constructor(e={}){this._iouThreshold=e.iouThreshold??.25,this._maxMissedFrames=e.maxMissedFrames??15,this._minHits=e.minHits??1,this._positionSmoothing=Math.max(.1,Math.min(1,e.positionSmoothing??.75)),this._activeDuringCoast=e.activeDuringCoast!==!1}update(e,t,n=24){let o=n>0?1/n:.0416;for(let a of this._tracks)if(a.age++,a.timeSinceUpdate++,a.timeSinceUpdate>0){let c=a.centerX+a.vx*o,h=a.centerY+a.vy*o;a.centerX=c,a.centerY=h;let m=a.box.width,p=a.box.height,T=a.box.normalizedWidth,j=a.box.normalizedHeight,P=a.box.normalizedX+T/2+a.vx*o/Math.max(1,a.box.width/T),E=a.box.normalizedY+j/2+a.vy*o/Math.max(1,a.box.height/j);a.box={originX:c-m/2,originY:h-p/2,width:m,height:p,normalizedX:P-T/2,normalizedY:E-j/2,normalizedWidth:T,normalizedHeight:j},a.vx*=.92,a.vy*=.92,a.isCoasting=!0}let s=new Set,i=new Set,u=[];for(let a=0;a<this._tracks.length;a++){let c=this._tracks[a];for(let h=0;h<e.length;h++){let m=e[h];if(c.category!==m.category)continue;let p=ae(c.box,m.boundingBox);p>=this._iouThreshold&&u.push({trackIdx:a,detIdx:h,iou:p})}}u.sort((a,c)=>c.iou-a.iou);for(let a of u){if(i.has(a.trackIdx)||s.has(a.detIdx))continue;i.add(a.trackIdx),s.add(a.detIdx);let c=this._tracks[a.trackIdx],h=e[a.detIdx],m=h.boundingBox,p=m.originX+m.width/2,T=m.originY+m.height/2,j=(p-c.centerX)/o,P=(T-c.centerY)/o;c.vx=c.vx*.4+j*.6,c.vy=c.vy*.4+P*.6;let E=this._positionSmoothing,g=c.box.width*(1-E)+m.width*E,_=c.box.height*(1-E)+m.height*E,b=c.centerX*(1-E)+p*E,V=c.centerY*(1-E)+T*E;c.centerX=b,c.centerY=V,c.score=h.score,c.timeSinceUpdate=0,c.hits++,c.isCoasting=!1,c.hits>=this._minHits&&(c.active=!0),c.box={originX:b-g/2,originY:V-_/2,width:g,height:_,normalizedX:m.normalizedX,normalizedY:m.normalizedY,normalizedWidth:m.normalizedWidth,normalizedHeight:m.normalizedHeight}}for(let a=0;a<e.length;a++){if(s.has(a))continue;let c=e[a],h=c.boundingBox,m=h.originX+h.width/2,p=h.originY+h.height/2;this._tracks.push({trackId:this._nextTrackId++,category:c.category,score:c.score,box:h,centerX:m,centerY:p,vx:0,vy:0,age:1,hits:1,timeSinceUpdate:0,active:this._minHits<=1,isCoasting:!1})}return this._tracks=this._tracks.filter(a=>a.timeSinceUpdate<=this._maxMissedFrames),this._tracks.filter(a=>a.active).map(a=>{let c=a.box.normalizedWidth,h=a.box.normalizedHeight,m=a.box.normalizedX+c/2,p=a.box.normalizedY+h/2,T=Math.sqrt(a.vx*a.vx+a.vy*a.vy);return{trackId:a.trackId,category:a.category,score:a.score,boundingBox:a.box,centerX:a.centerX,centerY:a.centerY,normalizedCenterX:m,normalizedCenterY:p,velocity:{vx:a.vx,vy:a.vy},speed:T,age:a.age,hits:a.hits,active:this._activeDuringCoast?!0:a.timeSinceUpdate===0,isCoasting:a.isCoasting}})}trackSequence(e,t,n=24){this.reset();let o=n>0?1/n:.0416,s=new Map;for(let a=0;a<t;a++){let c=e[a]??[],h=this.update(c,a,n);for(let m of h)s.has(m.trackId)||s.set(m.trackId,{category:m.category,observations:[]}),m.isCoasting||s.get(m.trackId).observations.push({frame:a,box:m.boundingBox,score:m.score})}let i=new Map;for(let[a,c]of s.entries()){let h=c.observations;if(h.length===0)continue;h.sort((g,_)=>g.frame-_.frame);let m=new Array(t).fill(null);for(let g of h)m[g.frame]={box:g.box,score:g.score};let p=h[0];for(let g=0;g<p.frame;g++)m[g]={box:{...p.box},score:p.score*.9};for(let g=0;g<h.length-1;g++){let _=h[g],b=h[g+1],V=b.frame-_.frame;if(!(V<=1))for(let f=_.frame+1;f<b.frame;f++){let l=(f-_.frame)/V,M=_.box.originX+(b.box.originX-_.box.originX)*l,x=_.box.originY+(b.box.originY-_.box.originY)*l,w=_.box.width+(b.box.width-_.box.width)*l,O=_.box.height+(b.box.height-_.box.height)*l,U=_.box.normalizedX+(b.box.normalizedX-_.box.normalizedX)*l,I=_.box.normalizedY+(b.box.normalizedY-_.box.normalizedY)*l,v=_.box.normalizedWidth+(b.box.normalizedWidth-_.box.normalizedWidth)*l,d=_.box.normalizedHeight+(b.box.normalizedHeight-_.box.normalizedHeight)*l;m[f]={box:{originX:M,originY:x,width:w,height:O,normalizedX:U,normalizedY:I,normalizedWidth:v,normalizedHeight:d},score:_.score*(1-l)+b.score*l}}}let T=h[h.length-1];for(let g=T.frame+1;g<t;g++)m[g]={box:{...T.box},score:T.score*.9};let j=[],P=2,E=[.06136,.24477,.38774,.24477,.06136];for(let g=0;g<t;g++){let _=0,b=0,V=0,f=0,l=0,M=0,x=0,w=0,O=0,U=0;for(let v=-P;v<=P;v++){let d=Math.max(0,Math.min(t-1,g+v)),R=m[d];if(R){let z=E[v+P];_+=z,b+=R.box.originX*z,V+=R.box.originY*z,f+=R.box.width*z,l+=R.box.height*z,M+=R.box.normalizedX*z,x+=R.box.normalizedY*z,w+=R.box.normalizedWidth*z,O+=R.box.normalizedHeight*z,U+=R.score*z}}let I=_>0?1/_:1;j.push({box:{originX:b*I,originY:V*I,width:f*I,height:l*I,normalizedX:M*I,normalizedY:x*I,normalizedWidth:w*I,normalizedHeight:O*I},score:U*I})}i.set(a,{category:c.category,frames:j})}let u=[];for(let a=0;a<t;a++){let c=[];for(let[h,m]of i.entries()){let p=m.frames[a];if(!p)continue;let T=m.frames[Math.max(0,a-1)]??p,j=m.frames[Math.min(t-1,a+1)]??p,P=p.box.originX+p.box.width/2,E=p.box.originY+p.box.height/2,g=T.box.originX+T.box.width/2,_=T.box.originY+T.box.height/2,b=j.box.originX+j.box.width/2,V=j.box.originY+j.box.height/2,f=a===0||a===t-1?o:2*o,l=(b-g)/f,M=(V-_)/f,x=Math.sqrt(l*l+M*M),w=p.box.normalizedWidth,O=p.box.normalizedHeight;c.push({trackId:h,category:m.category,score:p.score,boundingBox:p.box,centerX:P,centerY:E,normalizedCenterX:p.box.normalizedX+w/2,normalizedCenterY:p.box.normalizedY+O/2,velocity:{vx:l,vy:M},speed:x,age:a+1,hits:10,active:!0,isCoasting:!1})}u.push(c)}return u}reset(){this._tracks=[],this._nextTrackId=1}};var Mt=()=>typeof performance<"u"&&typeof performance.now=="function"?performance.now():Date.now();async function Gr(r,e){let{runner:t}=e,n=e.fps??24,o=e.tasks&&e.tasks.length>0?e.tasks:["detect"],s=new Set(o),i=e.categories?new Set(e.categories.map(v=>v.toLowerCase())):null,u=e.includeMasks===!0&&s.has("segment"),a=s.has("detect")||s.has("segment"),c=[],h={},m=new Map,p=0,T=0,j=v=>!i||i.has(v.toLowerCase()),P=async(v,d,R)=>{let z=t.modelKeyFor(v,d.width/d.height),F=t.downloadStatus.get(z)==="ready",C=Mt(),B=await R(),$=Mt()-C;return p+=$,!F&&!h[z]&&(h[z]={bytes:oe[z].bytes,ms:$}),B},E=v=>{for(let d of v){if(!j(d.category))continue;let R=m.get(d.category)??{sum:0,count:0};R.sum+=d.coverage,R.count++,m.set(d.category,R)}};for await(let v of r){let d=[];if(u){let R=await P("segment",v,()=>t.segment(v));E(R.masks),d=R.detections}else a&&(d=await P("detect",v,()=>t.detect(v)));s.has("pose")&&await P("pose",v,()=>t.pose(v)),s.has("matte")&&await P("matte",v,()=>t.matte(v)),c.push(i?d.filter(R=>j(R.category)):d),T++}let g=T,b=new ue({iouThreshold:e.iouThreshold??.25,maxMissedFrames:e.maxMissedFrames??15}).trackSequence(c,g,n),V=e.pathStride??Math.max(1,Math.ceil(g/50)),f=new Map,l=new Map,M=new Map,x=new Map,w=(v,d,R)=>{let z=v.get(d);return z===void 0&&(z=R(),v.set(d,z)),z};for(let v=0;v<g;v++)for(let d of b[v]??[]){if(!j(d.category))continue;let R=f.get(d.trackId);R||(R={category:d.category,firstFrame:v,lastFrame:v,speedSum:0,speedCount:0,centers:[]},f.set(d.trackId,R)),R.lastFrame=v,Number.isFinite(d.speed)&&(R.speedSum+=d.speed,R.speedCount++),(v-R.firstFrame)%V===0&&R.centers.push({frame:v,x:d.centerX,y:d.centerY}),w(l,d.category,()=>new Set).add(v),M.set(d.category,Math.max(M.get(d.category)??0,d.score)),w(x,d.category,()=>new Set).add(d.trackId)}let O=Array.from(f.entries()).map(([v,d])=>({trackId:v,category:d.category,frames:[d.firstFrame,d.lastFrame],speedMeanPxS:d.speedCount>0?d.speedSum/d.speedCount:0,centerPath:d.centers.map(R=>[R.x,R.y])})).sort((v,d)=>v.trackId-d.trackId),U={};for(let[v,d]of l)U[v]={framesPresent:d.size,totalFrames:g,maxConfidence:M.get(v)??0,tracks:x.get(v)?.size??0};let I={};for(let[v,d]of m)I[v]={meanCoverage:d.count>0?d.sum/d.count:0};return{source:e.source??"frames",totalFrames:g,fps:n,durationSec:n>0?g/n:0,tasks:Array.from(s),modelDownloads:h,inferenceMs:p,trackCount:O.length,classes:U,tracks:O,masks:I}}y();var un=[103.53,116.28,123.675],mn=[57.375,57.12,58.395],fn={"rtmdet-ins":{fit:"topLeft",channels:"bgr",mean:un,std:mn,padValue:114},rtmo:{fit:"center",channels:"bgr",mean:[0,0,0],std:[1,1,1],padValue:114},selfie:{fit:"stretch",channels:"rgb",mean:[0,0,0],std:[255,255,255],padValue:0}};function Pt(r,e){return{...fn[r],width:e[0],height:e[1]}}function hn(r,e,t){if(t.fit==="stretch")return{scaleX:t.width/r,scaleY:t.height/e,offsetX:0,offsetY:0,inputWidth:t.width,inputHeight:t.height};let n=Math.min(t.width/r,t.height/e),o=Math.round(r*n),s=Math.round(e*n),i=t.fit==="center";return{scaleX:n,scaleY:n,offsetX:i?(t.width-o)/2:0,offsetY:i?(t.height-s)/2:0,inputWidth:t.width,inputHeight:t.height}}function ce(r,e,t){return{x:(r-t.offsetX)/t.scaleX,y:(e-t.offsetY)/t.scaleY}}function Rt(r,e,t){let{width:n,height:o,data:s}=r,{width:i,height:u}=e,a=hn(n,o,e),{scaleX:c,scaleY:h,offsetX:m,offsetY:p}=a,T=i*u;(!t||t.length<3*T)&&(t=new Float32Array(3*T));let j=e.channels==="bgr"?[2,1,0]:[0,1,2],[P,E,g]=e.mean,_=1/e.std[0],b=1/e.std[1],V=1/e.std[2],f=(e.padValue-P)*_,l=(e.padValue-E)*b,M=(e.padValue-g)*V,[x,w,O]=j,U=Math.ceil(m),I=Math.ceil(p),v=Math.min(i,Math.floor(m+n*c))-1,d=Math.min(u,Math.floor(p+o*h))-1;for(let R=0;R<u;R++){let z=R*i,F=R<I||R>d,C=Math.max(0,(R+.5-p)/h-.5),B=Math.min(o-1,Math.floor(C)),$=Math.min(o-1,B+1),N=C-B;for(let X=0;X<i;X++){let q=z+X;if(F||X<U||X>v){t[q]=f,t[T+q]=l,t[2*T+q]=M;continue}let W=Math.max(0,(X+.5-m)/c-.5),H=Math.min(n-1,Math.floor(W)),ne=Math.min(n-1,H+1),J=W-H,Y=(B*n+H)*4,re=(B*n+ne)*4,D=($*n+H)*4,G=($*n+ne)*4,Z=(1-J)*(1-N),Q=J*(1-N),ee=(1-J)*N,K=J*N;t[q]=(s[Y+x]*Z+s[re+x]*Q+s[D+x]*ee+s[G+x]*K-P)*_,t[T+q]=(s[Y+w]*Z+s[re+w]*Q+s[D+w]*ee+s[G+w]*K-E)*b,t[2*T+q]=(s[Y+O]*Z+s[re+O]*Q+s[D+O]*ee+s[G+O]*K-g)*V}}return{tensor:t,transform:a}}y();var ke=8;function Ye(r,e){let{sourceWidth:t,sourceHeight:n,transform:o}=e,s=e.classes?new Set(e.classes.map(P=>P.toLowerCase())):null,i=[];for(let P=0;P<r.count;P++){let E=r.dets[P*5+4];if(!(E>=e.confidence))continue;let g=Number(r.labels[P]),_=e.classNames[g]??`class_${g}`;if(s&&!s.has(_.toLowerCase()))continue;let b=ce(r.dets[P*5],r.dets[P*5+1],o),V=ce(r.dets[P*5+2],r.dets[P*5+3],o),f=ie(b.x,0,t),l=ie(b.y,0,n),M=ie(V.x,0,t)-f,x=ie(V.y,0,n)-l;M<=0||x<=0||i.push({index:P,detection:{category:_,score:E,boundingBox:{originX:f,originY:l,width:M,height:x,normalizedX:f/t,normalizedY:l/n,normalizedWidth:M/t,normalizedHeight:x/n}}})}i.sort((P,E)=>E.detection.score-P.detection.score);let u=i.map(P=>P.detection),a=[];if(!r.masks)return{detections:u,masks:a};let c=Ne(e.maskThreshold??.5,e.featherRadius??.05),{maskWidth:h,maskHeight:m}=r,p=h*m,T=h/o.inputWidth,j=m/o.inputHeight;for(let P=0;P<i.length;P++){let{index:E,detection:g}=i[P],_=g.boundingBox,b=E*p,V=Math.max(0,Math.floor(_.originX)-ke),f=Math.max(0,Math.floor(_.originY)-ke),l=Math.min(t-1,Math.ceil(_.originX+_.width)+ke),M=Math.min(n-1,Math.ceil(_.originY+_.height)+ke),x=new Uint8Array(t*n),w=0;for(let O=f;O<=M;O++){let U=((O+.5)*o.scaleY+o.offsetY)*j-.5,I=ie(Math.floor(U),0,m-1),v=Math.min(m-1,I+1),d=ie(U-I,0,1),R=O*t;for(let z=V;z<=l;z++){let F=((z+.5)*o.scaleX+o.offsetX)*T-.5,C=ie(Math.floor(F),0,h-1),B=Math.min(h-1,C+1),$=ie(F-C,0,1),N=r.masks[b+I*h+C]*(1-$)*(1-d)+r.masks[b+I*h+B]*$*(1-d)+r.masks[b+v*h+C]*(1-$)*d+r.masks[b+v*h+B]*$*d,X=c(N);X>0&&(x[R+z]=X,w+=X/255)}}w=Math.round(w),w!==0&&a.push({category:g.category,mask:x,width:t,height:n,area:w,coverage:w/(t*n),detectionIndex:P})}return{detections:u,masks:a}}function Ne(r,e){if(e<=0)return o=>o>r?255:0;let t=r-e,n=255/(2*e);return o=>o<=t?0:o>=r+e?255:(o-t)*n}function ie(r,e,t){return r<e?e:r>t?t:r}y();var It=17,Xe=.3;function Ct(r,e){let{sourceWidth:t,sourceHeight:n,transform:o}=e,s=r.keypointStride,i=[];for(let c=0;c<r.count;c++){let h=r.dets[c*5+4];if(!(h>=e.confidence))continue;let m=ce(r.dets[c*5],r.dets[c*5+1],o),p=ce(r.dets[c*5+2],r.dets[c*5+3],o),T=le(m.x,0,t),j=le(m.y,0,n),P=le(p.x,0,t)-T,E=le(p.y,0,n)-j;if(P<=0||E<=0)continue;let g=[],_=c*It*s;for(let V=0;V<It;V++){let f=_+V*s,l=ce(r.keypoints[f],r.keypoints[f+1],o);g.push({x:le(l.x,0,t),y:le(l.y,0,n),visibility:le(r.keypoints[f+2],0,1)})}let b=0;for(let V of g)V.visibility>=Xe&&b++;b<(e.minVisibleKeypoints??3)||i.push({score:h,boundingBox:{originX:T,originY:j,width:P,height:E,normalizedX:T/t,normalizedY:j/n,normalizedWidth:P/t,normalizedHeight:E/n},keypoints:g})}i.sort((c,h)=>h.score-c.score);let u=e.iouThreshold??.6,a=[];for(let c of i)a.some(h=>gn(h,c,u))||a.push(c);return{people:a}}function le(r,e,t){return r<e?e:r>t?t:r}function gn(r,e,t){if(ae(r.boundingBox,e.boundingBox)>t)return!0;let n=Math.sqrt(r.boundingBox.width*r.boundingBox.height),o=0,s=0;for(let i=0;i<r.keypoints.length;i++){let u=r.keypoints[i],a=e.keypoints[i];u.visibility<Xe||a.visibility<Xe||(o+=Math.hypot(u.x-a.x,u.y-a.y),s++)}return s>=3&&o/s<.1*n}y();function Ot(r,e,t,n){let{sourceWidth:o,sourceHeight:s}=n,i=Ne(n.maskThreshold??.5,n.featherRadius??.2),u=new Uint8Array(o*s),a=e/o,c=t/s,h=0;for(let m=0;m<s;m++){let p=Math.max(0,(m+.5)*c-.5),T=Math.min(t-1,Math.floor(p)),j=Math.min(t-1,T+1),P=p-T;for(let E=0;E<o;E++){let g=Math.max(0,(E+.5)*a-.5),_=Math.min(e-1,Math.floor(g)),b=Math.min(e-1,_+1),V=g-_,f=r[T*e+_]*(1-V)*(1-P)+r[T*e+b]*V*(1-P)+r[j*e+_]*(1-V)*P+r[j*e+b]*V*P,l=i(f);u[m*o+E]=l,h+=l}}return{mask:u,width:o,height:s,coverage:o*s>0?h/(255*o*s):0}}y();y();y();var Lt=`
1
+ import{a as je}from"./chunk-VXUJWPIK.mjs";import{a as mt}from"./chunk-XKO4RYKN.mjs";import{i as ft}from"./chunk-VRGREB3V.mjs";import{I as ot,a as _,b as L}from"./chunk-NQZKBFC6.mjs";import{b as rt,h as pe,i as Ee,l as te,z as st}from"./chunk-63SFBHEH.mjs";import{a as ct,e as lt,i as Ve,j as dt}from"./chunk-4GEWSUX5.mjs";import{b as be,c as it,e as at}from"./chunk-MTJHQATU.mjs";import{d as ut,e as ye,g as Ae}from"./chunk-YAQFFQPG.mjs";import{a as Qt,c as en,d as A,e as y}from"./chunk-BVF64D6H.mjs";var At=Qt((To,Vt)=>{y();var Se=()=>new Proxy(function(){},{get:(r,e)=>e==="__esModule"?!0:e===Symbol.toPrimitive?()=>"":Se(),apply:()=>Se(),construct:()=>Se()});Vt.exports=Se()});y();y();var ht=class{signals;config;_frameHooks=[];constructor(e){this.config={...e},this.signals={};for(let[t,n]of Object.entries(e))pe(n)?this.signals[t]=n:this.signals[t]=Ee(n);return new Proxy(this,{get(t,n,o){if(typeof n=="string"&&n in t.signals){let s=t.signals[n];return s?s.value:void 0}return Reflect.get(t,n,o)},set(t,n,o,s){if(typeof n=="string"&&n in t.signals){let i=t.signals[n];return pe(o)?(t.signals[n]=o,t.config[n]=o):i&&typeof i.set=="function"?(i.set(o),t.config[n]=o):(t.signals[n]=Ee(o),t.config[n]=o),!0}return Reflect.set(t,n,o,s)}})}onRequestFrame(e){return this._frameHooks.push(e),this}notifyFrame(e){for(let t of this._frameHooks)t(e)}resolveUniforms(e){let t={};for(let[n,o]of Object.entries(this.signals))t[n]=o.get(e);return t}resolveTextures(){let e={};for(let[t,n]of Object.entries(this.signals)){let o=n.gpuBinding;o?.textureView&&(e[`${t}TextureView`]=o.textureView),o?.texture&&(e[`${t}Texture`]=o.texture)}return e}toOperation(){let e={op:this.op,effect:this,onRequestFrame:t=>this.notifyFrame(t),signals:this.signals,...this.config};for(let[t,n]of Object.entries(this.signals)){let o=this.config[t];!pe(o)&&(typeof o=="string"||typeof o=="boolean")?e[t]=n.value:e[t]=n}return e}};y();var gt=class extends Error{constructor(e){super(e),this.name="ModerationError"}},pt=class extends Error{constructor(e){super(e),this.name="ModerationUnrefundableError"}};y();y();y();var bt="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var yt=(r=21)=>{let e="",t=crypto.getRandomValues(new Uint8Array(r|=0));for(;r--;)e+=bt[t[r]&63];return e};var Jn=r=>yt(r);y();var xt=L.object({dataTypes:L.custom(),label:L.string(),required:L.boolean().optional(),order:L.number(),description:L.string().optional()}),tn=L.object({configKey:L.string(),dataTypes:L.custom(),label:L.string(),description:L.string().optional()}),nr=L.object({type:L.string().min(1),version:L.number().int().positive().optional(),baseType:L.string().optional(),displayName:L.string().min(1),description:L.string().optional(),showInQuickAccess:L.boolean().optional(),showInSidebar:L.boolean().optional(),advanced:L.boolean().optional(),category:L.string().min(1),subcategory:L.string().optional(),defaultDimensions:L.object({width:L.number().positive().optional(),height:L.number().positive().optional()}).optional(),handles:L.object({inputs:L.array(xt),outputs:L.array(xt)}),variableInputs:L.discriminatedUnion("enabled",[L.object({enabled:L.literal(!0),dataTypes:L.custom()}),L.object({enabled:L.literal(!1),dataTypes:L.custom().optional()})]).optional(),variableOutputs:L.discriminatedUnion("enabled",[L.object({enabled:L.literal(!0),dataTypes:L.custom()}),L.object({enabled:L.literal(!1),dataTypes:L.custom().optional()})]).optional(),isTerminal:L.boolean().optional(),isTransient:L.boolean().optional(),configSchema:L.custom().optional(),defaultConfig:L.record(L.string(),L.unknown()).optional(),validation:L.any().optional(),resultSchema:L.custom().optional(),configHandles:L.array(tn).optional()});y();var sr={Text:{bg:"bg-blue-500",stroke:"stroke-blue-500",hex:"#3b82f6",text:"text-blue-500",border:"border-blue-500"},Image:{bg:"bg-purple-500",stroke:"stroke-purple-500",hex:"#a855f7",text:"text-purple-500",border:"border-purple-500"},Video:{bg:"bg-teal-500",stroke:"stroke-teal-500",hex:"oklch(60% 0.118 184.704)",text:"text-teal-500",border:"border-teal-500"},Audio:{bg:"bg-orange-500",stroke:"stroke-orange-500",hex:"#f97316",text:"text-orange-500",border:"border-orange-500"},Number:{bg:"bg-green-600",stroke:"stroke-green-600",hex:"#16a34a",text:"text-green-600",border:"border-green-600"},Boolean:{bg:"bg-amber-600",stroke:"stroke-amber-600",hex:"#d97706",text:"text-amber-600",border:"border-amber-600"},SVG:{bg:"bg-lime-600",stroke:"stroke-lime-600",hex:"#65a30d",text:"text-lime-600",border:"border-lime-600"},Caption:{bg:"bg-rose-500",stroke:"stroke-rose-500",hex:"#f43f5e",text:"text-rose-500",border:"border-rose-500"},GIF:{bg:"bg-pink-500",stroke:"stroke-pink-500",hex:"#ec4899",text:"text-pink-500",border:"border-pink-500"},Lottie:{bg:"bg-indigo-500",stroke:"stroke-indigo-500",hex:"#6366f1",text:"text-indigo-500",border:"border-indigo-500"},Signal:{bg:"bg-fuchsia-500",stroke:"stroke-fuchsia-500",hex:"#d946ef",text:"text-fuchsia-500",border:"border-fuchsia-500"},LUT:{bg:"bg-cyan-600",stroke:"stroke-cyan-600",hex:"#0891b2",text:"text-cyan-600",border:"border-cyan-600"}};y();var lr={Image:"png",Video:"mp4",Audio:"mp3",Text:"txt",Number:"txt",Boolean:"txt",SVG:"svg",Caption:"srt",Lottie:"json",ThreeD:"glb",GIF:"gif",Signal:"txt",LUT:"cube"},dr={png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp",svg:"image/svg+xml",mp4:"video/mp4",webm:"video/webm",mov:"video/quicktime",mp3:"audio/mpeg",wav:"audio/wav",ogg:"audio/ogg",pdf:"application/pdf",json:"application/json",txt:"text/plain",srt:"text/srt",aac:"audio/aac",flac:"audio/flac"},nn=["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"],Tt=_.enum(nn),kt=class r{static schemas=new Map;static register(e,t){r.schemas.set(e,t)}static get(e){return r.schemas.get(e)}static clear(){r.schemas.clear()}};y();var fr={FONT_FAMILY:"Inter",FONT_SIZE:64,FILL:"#ffffff",LINE_HEIGHT:1.1,ALIGN:"left",VERTICAL_ALIGN:"top",LETTER_SPACING:0,STROKE_WIDTH:0,STROKE:"#000000",CORNER_RADIUS:0,PADDING:0};y();var rn=_.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"]),on=_.object({id:_.string(),type:rn,value:_.number()}),sn=_.object({x:_.number().default(0),y:_.number().default(0),width:_.number().optional(),height:_.number().optional(),rotation:_.number().default(0),scale:_.number().min(0).default(1),opacity:_.number().min(0).max(1).default(1),zIndex:_.number().int().optional(),blendMode:Tt.optional()}),an=_.object({startFrame:_.number().int().min(0).default(0),durationInMS:_.number().int().min(1).optional(),trimStart:_.number().int().min(0).optional(),trimEnd:_.number().int().min(0).optional(),speed:_.number().min(.25).max(4).optional()}),cn=_.object({text:_.string().optional(),fontSize:_.number().optional(),fontFamily:_.string().optional(),fontStyle:_.string().optional(),fontWeight:_.union([_.number(),_.string()]).optional(),fill:_.string().optional(),align:_.string().optional(),direction:_.enum(["ltr","rtl","auto"]).optional(),verticalAlign:_.string().optional(),letterSpacing:_.number().optional(),lineHeight:_.number().optional(),padding:_.number().optional(),stroke:_.string().optional(),strokeWidth:_.number().optional(),strokeAlign:_.enum(["inside","center","outside"]).optional(),textShadow:_.string().optional(),textBackgroundColor:_.string().optional(),shadows:_.array(_.object({color:_.string(),offset:_.object({x:_.number(),y:_.number()}).optional(),blurRadius:_.number().optional()})).optional(),textAnimation:_.any().optional(),bottomPadding:_.number().optional(),maxWidth:_.number().optional()}),ln=_.object({backgroundColor:_.string().optional(),borderColor:_.string().optional(),borderWidth:_.number().optional(),strokeRadius:_.number().optional(),autoDimensions:_.boolean().optional()}),Be=_.enum(["Video","Image","Audio","Text","Caption","SVG","GIF","Lottie"]),_t=sn.merge(an).merge(cn).merge(ln).extend({type:Be.optional(),animations:_.array(on).optional()});y();y();var dn=_.enum(["none","crossfade","wipe-left","wipe-right","slide-up","slide-down"]),De=_.object({type:dn,durationFrames:_.number().min(1)});var Pr=_t.extend({id:_.string(),name:_.string().optional(),type:Be,virtualMedia:ot.optional(),transitionIn:De.optional(),transitionOut:De.optional(),durationInMS:_.number(),maxDurationInMS:_.number().optional(),src:_.string().optional(),volume:_.number().default(1),inputHandleId:_.string().optional(),isPlaceholder:_.boolean().optional(),lockAspect:_.boolean().optional(),lockRatio:_.boolean().optional(),zIndex:_.number().optional()}).strict();y();function St(r,e){if(r===e||typeof r=="number"&&typeof e=="number"&&Number.isNaN(r)&&Number.isNaN(e))return!0;if(r&&e&&typeof r=="object"&&typeof e=="object"){if(r.constructor!==e.constructor)return!1;if(Array.isArray(r)){if(r.length!==e.length)return!1;for(let n=0;n<r.length;n++)if(!St(r[n],e[n]))return!1;return!0}if(r instanceof Date)return r.getTime()===e.getTime();if(r instanceof RegExp)return r.toString()===e.toString();let t=Object.keys(r);if(t.length!==Object.keys(e).length)return!1;for(let n of t)if(!Object.hasOwn(e,n)||!St(r[n],e[n]))return!1;return!0}return!1}y();function Er(r,e){if(!r?.sourceFingerprint)return null;let t=je(e);return r.sourceFingerprint!==t?null:r}function jr(r,e){return{...r,sourceFingerprint:je(e)}}y();function Br(r){try{let t=r.toString("utf-8").match(/<svg[^>]*>/i);if(!t)return null;let n=t[0],o=a=>{let c=n.match(new RegExp(`${a}=["']([^"']+)["']`,"i"));if(!c)return null;let h=parseFloat(c[1].replace(/[a-z%]/gi,""));return isNaN(h)?null:h},s=o("width"),i=o("height"),u=n.match(/viewBox=["']([^"']+)["']/i);if(u){let a=u[1].split(/[\s,]+/).map(parseFloat);if(a.length>=4&&!isNaN(a[2])&&!isNaN(a[3])){let c=a[2],h=a[3];s==null&&i==null?(s=c,i=h):s!=null&&i==null?i=s*(h/c):i!=null&&s==null&&(s=i*(c/h))}}return s!=null&&i!=null&&s>0&&i>0?{w:s,h:i}:null}catch(e){return console.error("Error parsing SVG dimensions",e),null}}y();y();y();y();var se=(r,e,t)=>`https://huggingface.co/${r}/resolve/${e}/${t}`,Fe="tori29umai/rtmdet-ins-onnx-person-masks",Ue="e5218e8d47d7c50077f27f9893a28e0ef2ad5656",He="RTMDet-Ins (OpenMMLab mmdetection, Apache-2.0), mmdeploy ONNX export",ze="RTMO (OpenMMLab mmpose, Apache-2.0), ONNX export",wt="MediaPipe Selfie Segmenter (Google, Apache-2.0), ONNX export",oe={"rtmdet-ins-t":{key:"rtmdet-ins-t",family:"rtmdet-ins",filename:"rtmdet-ins-t.onnx",url:se(Fe,Ue,"models/tiny/rtmdet-ins_tiny_640x640.onnx"),bytes:24032356,sha256:"99ee670820c4493aa13e20578b6a8e39781c319846dc41796a77765734beac5c",input:[640,640],source:He},"rtmdet-ins-s":{key:"rtmdet-ins-s",family:"rtmdet-ins",filename:"rtmdet-ins-s.onnx",url:se(Fe,Ue,"models/s/rtmdet-ins_s_640x640.onnx"),bytes:43236976,sha256:"9cd1787fbf3eb2bd64cc2d8154f41c036f5484b85599e1cbe0227a2dc5a4a08b",input:[640,640],source:He},"rtmdet-ins-m":{key:"rtmdet-ins-m",family:"rtmdet-ins",filename:"rtmdet-ins-m.onnx",url:se(Fe,Ue,"models/m/rtmdet-ins_m_640x640.onnx"),bytes:115735979,sha256:"a003bce80316e03467c2c2b483df2d5c0398220c2357a44f9bf985929f7eb052",input:[640,640],source:He},"rtmo-t":{key:"rtmo-t",family:"rtmo",filename:"rtmo-t.onnx",url:se("Xenova/RTMO-t","f29d13ce5ee291fbe505e9d06a049992f05699dc","onnx/model.onnx"),bytes:27360569,sha256:"cb54dd042bf997df86d938721c94238940f2bff98ba8d2ccc834430de5c65c13",input:[416,416],source:ze},"rtmo-s":{key:"rtmo-s",family:"rtmo",filename:"rtmo-s.onnx",url:se("Xenova/RTMO-s","d8c526187f341d287753831c9c8b1ecc4855bba1","onnx/model.onnx"),bytes:39636400,sha256:"1cd6a3517658903233e9ccb78666554862f57f0944b6886e2048093594aef4e7",input:[640,640],source:ze},"rtmo-m":{key:"rtmo-m",family:"rtmo",filename:"rtmo-m.onnx",url:se("Xenova/RTMO-m","3aba1280472b98ee2bf663482e27e243038d23fe","onnx/model.onnx"),bytes:89291929,sha256:"76d82c45e5c4810baf587ecf2638d15cbf7ed196afb2055e977382532021b59e",input:[640,640],source:ze},"selfie-square":{key:"selfie-square",family:"selfie",filename:"selfie-square.onnx",url:se("onnx-community/mediapipe_selfie_segmentation","be49485c8e027524be38591817fc5cd31bd9d00e","onnx/model.onnx"),bytes:462352,sha256:"3241ac4ad8aa35bdaf33946776db29f7c283a413aa0b0dacb9483594b4531aad",input:[256,256],source:wt},"selfie-landscape":{key:"selfie-landscape",family:"selfie",filename:"selfie-landscape.onnx",url:se("onnx-community/mediapipe_selfie_segmentation_landscape","2497d5bec26c626c7b3c4edc6e1fefc21b64f6c3","onnx/model.onnx"),bytes:462338,sha256:"7a0adcfdb1715d3b0ff0f61486d8a181c33f4a208343a5abfccbc6540e872d24",input:[256,144],source:wt}};function vt(r,e="s",t=1){return r==="pose"?`rtmo-${e}`:r==="matte"?t>1.3?"selfie-landscape":"selfie-square":`rtmdet-ins-${e}`}var xe=["person","bicycle","car","motorcycle","airplane","bus","train","truck","boat","traffic light","fire hydrant","stop sign","parking meter","bench","bird","cat","dog","horse","sheep","cow","elephant","bear","zebra","giraffe","backpack","umbrella","handbag","tie","suitcase","frisbee","skis","snowboard","sports ball","kite","baseball bat","baseball glove","skateboard","surfboard","tennis racket","bottle","wine glass","cup","fork","knife","spoon","bowl","banana","apple","sandwich","orange","broccoli","carrot","hot dog","pizza","donut","cake","chair","couch","potted plant","bed","dining table","toilet","tv","laptop","mouse","remote","keyboard","cell phone","microwave","oven","toaster","sink","refrigerator","book","clock","vase","scissors","teddy bear","hair drier","toothbrush"];y();function ae(r,e){let t=Math.max(r.originX,e.originX),n=Math.max(r.originY,e.originY),o=Math.min(r.originX+r.width,e.originX+e.width),s=Math.min(r.originY+r.height,e.originY+e.height),i=Math.max(0,o-t),u=Math.max(0,s-n),a=i*u;if(a<=0)return 0;let c=r.width*r.height,h=e.width*e.height,m=c+h-a;return m>0?a/m:0}var ue=class{_nextTrackId=1;_tracks=[];_iouThreshold;_maxMissedFrames;_minHits;_positionSmoothing;_activeDuringCoast;constructor(e={}){this._iouThreshold=e.iouThreshold??.25,this._maxMissedFrames=e.maxMissedFrames??15,this._minHits=e.minHits??1,this._positionSmoothing=Math.max(.1,Math.min(1,e.positionSmoothing??.75)),this._activeDuringCoast=e.activeDuringCoast!==!1}update(e,t,n=24){let o=n>0?1/n:.0416;for(let a of this._tracks)if(a.age++,a.timeSinceUpdate++,a.timeSinceUpdate>0){let c=a.centerX+a.vx*o,h=a.centerY+a.vy*o;a.centerX=c,a.centerY=h;let m=a.box.width,p=a.box.height,T=a.box.normalizedWidth,j=a.box.normalizedHeight,P=a.box.normalizedX+T/2+a.vx*o/Math.max(1,a.box.width/T),E=a.box.normalizedY+j/2+a.vy*o/Math.max(1,a.box.height/j);a.box={originX:c-m/2,originY:h-p/2,width:m,height:p,normalizedX:P-T/2,normalizedY:E-j/2,normalizedWidth:T,normalizedHeight:j},a.vx*=.92,a.vy*=.92,a.isCoasting=!0}let s=new Set,i=new Set,u=[];for(let a=0;a<this._tracks.length;a++){let c=this._tracks[a];for(let h=0;h<e.length;h++){let m=e[h];if(c.category!==m.category)continue;let p=ae(c.box,m.boundingBox);p>=this._iouThreshold&&u.push({trackIdx:a,detIdx:h,iou:p})}}u.sort((a,c)=>c.iou-a.iou);for(let a of u){if(i.has(a.trackIdx)||s.has(a.detIdx))continue;i.add(a.trackIdx),s.add(a.detIdx);let c=this._tracks[a.trackIdx],h=e[a.detIdx],m=h.boundingBox,p=m.originX+m.width/2,T=m.originY+m.height/2,j=(p-c.centerX)/o,P=(T-c.centerY)/o;c.vx=c.vx*.4+j*.6,c.vy=c.vy*.4+P*.6;let E=this._positionSmoothing,g=c.box.width*(1-E)+m.width*E,S=c.box.height*(1-E)+m.height*E,b=c.centerX*(1-E)+p*E,V=c.centerY*(1-E)+T*E;c.centerX=b,c.centerY=V,c.score=h.score,c.timeSinceUpdate=0,c.hits++,c.isCoasting=!1,c.hits>=this._minHits&&(c.active=!0),c.box={originX:b-g/2,originY:V-S/2,width:g,height:S,normalizedX:m.normalizedX,normalizedY:m.normalizedY,normalizedWidth:m.normalizedWidth,normalizedHeight:m.normalizedHeight}}for(let a=0;a<e.length;a++){if(s.has(a))continue;let c=e[a],h=c.boundingBox,m=h.originX+h.width/2,p=h.originY+h.height/2;this._tracks.push({trackId:this._nextTrackId++,category:c.category,score:c.score,box:h,centerX:m,centerY:p,vx:0,vy:0,age:1,hits:1,timeSinceUpdate:0,active:this._minHits<=1,isCoasting:!1})}return this._tracks=this._tracks.filter(a=>a.timeSinceUpdate<=this._maxMissedFrames),this._tracks.filter(a=>a.active).map(a=>{let c=a.box.normalizedWidth,h=a.box.normalizedHeight,m=a.box.normalizedX+c/2,p=a.box.normalizedY+h/2,T=Math.sqrt(a.vx*a.vx+a.vy*a.vy);return{trackId:a.trackId,category:a.category,score:a.score,boundingBox:a.box,centerX:a.centerX,centerY:a.centerY,normalizedCenterX:m,normalizedCenterY:p,velocity:{vx:a.vx,vy:a.vy},speed:T,age:a.age,hits:a.hits,active:this._activeDuringCoast?!0:a.timeSinceUpdate===0,isCoasting:a.isCoasting}})}trackSequence(e,t,n=24){this.reset();let o=n>0?1/n:.0416,s=new Map;for(let a=0;a<t;a++){let c=e[a]??[],h=this.update(c,a,n);for(let m of h)s.has(m.trackId)||s.set(m.trackId,{category:m.category,observations:[]}),m.isCoasting||s.get(m.trackId).observations.push({frame:a,box:m.boundingBox,score:m.score})}let i=new Map;for(let[a,c]of s.entries()){let h=c.observations;if(h.length===0)continue;h.sort((g,S)=>g.frame-S.frame);let m=new Array(t).fill(null);for(let g of h)m[g.frame]={box:g.box,score:g.score};let p=h[0];for(let g=0;g<p.frame;g++)m[g]={box:{...p.box},score:p.score*.9};for(let g=0;g<h.length-1;g++){let S=h[g],b=h[g+1],V=b.frame-S.frame;if(!(V<=1))for(let f=S.frame+1;f<b.frame;f++){let l=(f-S.frame)/V,M=S.box.originX+(b.box.originX-S.box.originX)*l,x=S.box.originY+(b.box.originY-S.box.originY)*l,w=S.box.width+(b.box.width-S.box.width)*l,O=S.box.height+(b.box.height-S.box.height)*l,U=S.box.normalizedX+(b.box.normalizedX-S.box.normalizedX)*l,I=S.box.normalizedY+(b.box.normalizedY-S.box.normalizedY)*l,v=S.box.normalizedWidth+(b.box.normalizedWidth-S.box.normalizedWidth)*l,d=S.box.normalizedHeight+(b.box.normalizedHeight-S.box.normalizedHeight)*l;m[f]={box:{originX:M,originY:x,width:w,height:O,normalizedX:U,normalizedY:I,normalizedWidth:v,normalizedHeight:d},score:S.score*(1-l)+b.score*l}}}let T=h[h.length-1];for(let g=T.frame+1;g<t;g++)m[g]={box:{...T.box},score:T.score*.9};let j=[],P=2,E=[.06136,.24477,.38774,.24477,.06136];for(let g=0;g<t;g++){let S=0,b=0,V=0,f=0,l=0,M=0,x=0,w=0,O=0,U=0;for(let v=-P;v<=P;v++){let d=Math.max(0,Math.min(t-1,g+v)),R=m[d];if(R){let z=E[v+P];S+=z,b+=R.box.originX*z,V+=R.box.originY*z,f+=R.box.width*z,l+=R.box.height*z,M+=R.box.normalizedX*z,x+=R.box.normalizedY*z,w+=R.box.normalizedWidth*z,O+=R.box.normalizedHeight*z,U+=R.score*z}}let I=S>0?1/S:1;j.push({box:{originX:b*I,originY:V*I,width:f*I,height:l*I,normalizedX:M*I,normalizedY:x*I,normalizedWidth:w*I,normalizedHeight:O*I},score:U*I})}i.set(a,{category:c.category,frames:j})}let u=[];for(let a=0;a<t;a++){let c=[];for(let[h,m]of i.entries()){let p=m.frames[a];if(!p)continue;let T=m.frames[Math.max(0,a-1)]??p,j=m.frames[Math.min(t-1,a+1)]??p,P=p.box.originX+p.box.width/2,E=p.box.originY+p.box.height/2,g=T.box.originX+T.box.width/2,S=T.box.originY+T.box.height/2,b=j.box.originX+j.box.width/2,V=j.box.originY+j.box.height/2,f=a===0||a===t-1?o:2*o,l=(b-g)/f,M=(V-S)/f,x=Math.sqrt(l*l+M*M),w=p.box.normalizedWidth,O=p.box.normalizedHeight;c.push({trackId:h,category:m.category,score:p.score,boundingBox:p.box,centerX:P,centerY:E,normalizedCenterX:p.box.normalizedX+w/2,normalizedCenterY:p.box.normalizedY+O/2,velocity:{vx:l,vy:M},speed:x,age:a+1,hits:10,active:!0,isCoasting:!1})}u.push(c)}return u}reset(){this._tracks=[],this._nextTrackId=1}};var Mt=()=>typeof performance<"u"&&typeof performance.now=="function"?performance.now():Date.now();async function Gr(r,e){let{runner:t}=e,n=e.fps??24,o=e.tasks&&e.tasks.length>0?e.tasks:["detect"],s=new Set(o),i=e.categories?new Set(e.categories.map(v=>v.toLowerCase())):null,u=e.includeMasks===!0&&s.has("segment"),a=s.has("detect")||s.has("segment"),c=[],h={},m=new Map,p=0,T=0,j=v=>!i||i.has(v.toLowerCase()),P=async(v,d,R)=>{let z=t.modelKeyFor(v,d.width/d.height),F=t.downloadStatus.get(z)==="ready",C=Mt(),B=await R(),$=Mt()-C;return p+=$,!F&&!h[z]&&(h[z]={bytes:oe[z].bytes,ms:$}),B},E=v=>{for(let d of v){if(!j(d.category))continue;let R=m.get(d.category)??{sum:0,count:0};R.sum+=d.coverage,R.count++,m.set(d.category,R)}};for await(let v of r){let d=[];if(u){let R=await P("segment",v,()=>t.segment(v));E(R.masks),d=R.detections}else a&&(d=await P("detect",v,()=>t.detect(v)));s.has("pose")&&await P("pose",v,()=>t.pose(v)),s.has("matte")&&await P("matte",v,()=>t.matte(v)),c.push(i?d.filter(R=>j(R.category)):d),T++}let g=T,b=new ue({iouThreshold:e.iouThreshold??.25,maxMissedFrames:e.maxMissedFrames??15}).trackSequence(c,g,n),V=e.pathStride??Math.max(1,Math.ceil(g/50)),f=new Map,l=new Map,M=new Map,x=new Map,w=(v,d,R)=>{let z=v.get(d);return z===void 0&&(z=R(),v.set(d,z)),z};for(let v=0;v<g;v++)for(let d of b[v]??[]){if(!j(d.category))continue;let R=f.get(d.trackId);R||(R={category:d.category,firstFrame:v,lastFrame:v,speedSum:0,speedCount:0,centers:[]},f.set(d.trackId,R)),R.lastFrame=v,Number.isFinite(d.speed)&&(R.speedSum+=d.speed,R.speedCount++),(v-R.firstFrame)%V===0&&R.centers.push({frame:v,x:d.centerX,y:d.centerY}),w(l,d.category,()=>new Set).add(v),M.set(d.category,Math.max(M.get(d.category)??0,d.score)),w(x,d.category,()=>new Set).add(d.trackId)}let O=Array.from(f.entries()).map(([v,d])=>({trackId:v,category:d.category,frames:[d.firstFrame,d.lastFrame],speedMeanPxS:d.speedCount>0?d.speedSum/d.speedCount:0,centerPath:d.centers.map(R=>[R.x,R.y])})).sort((v,d)=>v.trackId-d.trackId),U={};for(let[v,d]of l)U[v]={framesPresent:d.size,totalFrames:g,maxConfidence:M.get(v)??0,tracks:x.get(v)?.size??0};let I={};for(let[v,d]of m)I[v]={meanCoverage:d.count>0?d.sum/d.count:0};return{source:e.source??"frames",totalFrames:g,fps:n,durationSec:n>0?g/n:0,tasks:Array.from(s),modelDownloads:h,inferenceMs:p,trackCount:O.length,classes:U,tracks:O,masks:I}}y();var un=[103.53,116.28,123.675],mn=[57.375,57.12,58.395],fn={"rtmdet-ins":{fit:"topLeft",channels:"bgr",mean:un,std:mn,padValue:114},rtmo:{fit:"center",channels:"bgr",mean:[0,0,0],std:[1,1,1],padValue:114},selfie:{fit:"stretch",channels:"rgb",mean:[0,0,0],std:[255,255,255],padValue:0}};function Pt(r,e){return{...fn[r],width:e[0],height:e[1]}}function hn(r,e,t){if(t.fit==="stretch")return{scaleX:t.width/r,scaleY:t.height/e,offsetX:0,offsetY:0,inputWidth:t.width,inputHeight:t.height};let n=Math.min(t.width/r,t.height/e),o=Math.round(r*n),s=Math.round(e*n),i=t.fit==="center";return{scaleX:n,scaleY:n,offsetX:i?(t.width-o)/2:0,offsetY:i?(t.height-s)/2:0,inputWidth:t.width,inputHeight:t.height}}function ce(r,e,t){return{x:(r-t.offsetX)/t.scaleX,y:(e-t.offsetY)/t.scaleY}}function Rt(r,e,t){let{width:n,height:o,data:s}=r,{width:i,height:u}=e,a=hn(n,o,e),{scaleX:c,scaleY:h,offsetX:m,offsetY:p}=a,T=i*u;(!t||t.length<3*T)&&(t=new Float32Array(3*T));let j=e.channels==="bgr"?[2,1,0]:[0,1,2],[P,E,g]=e.mean,S=1/e.std[0],b=1/e.std[1],V=1/e.std[2],f=(e.padValue-P)*S,l=(e.padValue-E)*b,M=(e.padValue-g)*V,[x,w,O]=j,U=Math.ceil(m),I=Math.ceil(p),v=Math.min(i,Math.floor(m+n*c))-1,d=Math.min(u,Math.floor(p+o*h))-1;for(let R=0;R<u;R++){let z=R*i,F=R<I||R>d,C=Math.max(0,(R+.5-p)/h-.5),B=Math.min(o-1,Math.floor(C)),$=Math.min(o-1,B+1),N=C-B;for(let X=0;X<i;X++){let q=z+X;if(F||X<U||X>v){t[q]=f,t[T+q]=l,t[2*T+q]=M;continue}let W=Math.max(0,(X+.5-m)/c-.5),H=Math.min(n-1,Math.floor(W)),ne=Math.min(n-1,H+1),J=W-H,Y=(B*n+H)*4,re=(B*n+ne)*4,D=($*n+H)*4,G=($*n+ne)*4,Z=(1-J)*(1-N),Q=J*(1-N),ee=(1-J)*N,K=J*N;t[q]=(s[Y+x]*Z+s[re+x]*Q+s[D+x]*ee+s[G+x]*K-P)*S,t[T+q]=(s[Y+w]*Z+s[re+w]*Q+s[D+w]*ee+s[G+w]*K-E)*b,t[2*T+q]=(s[Y+O]*Z+s[re+O]*Q+s[D+O]*ee+s[G+O]*K-g)*V}}return{tensor:t,transform:a}}y();var ke=8;function Ye(r,e){let{sourceWidth:t,sourceHeight:n,transform:o}=e,s=e.classes?new Set(e.classes.map(P=>P.toLowerCase())):null,i=[];for(let P=0;P<r.count;P++){let E=r.dets[P*5+4];if(!(E>=e.confidence))continue;let g=Number(r.labels[P]),S=e.classNames[g]??`class_${g}`;if(s&&!s.has(S.toLowerCase()))continue;let b=ce(r.dets[P*5],r.dets[P*5+1],o),V=ce(r.dets[P*5+2],r.dets[P*5+3],o),f=ie(b.x,0,t),l=ie(b.y,0,n),M=ie(V.x,0,t)-f,x=ie(V.y,0,n)-l;M<=0||x<=0||i.push({index:P,detection:{category:S,score:E,boundingBox:{originX:f,originY:l,width:M,height:x,normalizedX:f/t,normalizedY:l/n,normalizedWidth:M/t,normalizedHeight:x/n}}})}i.sort((P,E)=>E.detection.score-P.detection.score);let u=i.map(P=>P.detection),a=[];if(!r.masks)return{detections:u,masks:a};let c=Ne(e.maskThreshold??.5,e.featherRadius??.05),{maskWidth:h,maskHeight:m}=r,p=h*m,T=h/o.inputWidth,j=m/o.inputHeight;for(let P=0;P<i.length;P++){let{index:E,detection:g}=i[P],S=g.boundingBox,b=E*p,V=Math.max(0,Math.floor(S.originX)-ke),f=Math.max(0,Math.floor(S.originY)-ke),l=Math.min(t-1,Math.ceil(S.originX+S.width)+ke),M=Math.min(n-1,Math.ceil(S.originY+S.height)+ke),x=new Uint8Array(t*n),w=0;for(let O=f;O<=M;O++){let U=((O+.5)*o.scaleY+o.offsetY)*j-.5,I=ie(Math.floor(U),0,m-1),v=Math.min(m-1,I+1),d=ie(U-I,0,1),R=O*t;for(let z=V;z<=l;z++){let F=((z+.5)*o.scaleX+o.offsetX)*T-.5,C=ie(Math.floor(F),0,h-1),B=Math.min(h-1,C+1),$=ie(F-C,0,1),N=r.masks[b+I*h+C]*(1-$)*(1-d)+r.masks[b+I*h+B]*$*(1-d)+r.masks[b+v*h+C]*(1-$)*d+r.masks[b+v*h+B]*$*d,X=c(N);X>0&&(x[R+z]=X,w+=X/255)}}w=Math.round(w),w!==0&&a.push({category:g.category,mask:x,width:t,height:n,area:w,coverage:w/(t*n),detectionIndex:P})}return{detections:u,masks:a}}function Ne(r,e){if(e<=0)return o=>o>r?255:0;let t=r-e,n=255/(2*e);return o=>o<=t?0:o>=r+e?255:(o-t)*n}function ie(r,e,t){return r<e?e:r>t?t:r}y();var It=17,Xe=.3;function Ct(r,e){let{sourceWidth:t,sourceHeight:n,transform:o}=e,s=r.keypointStride,i=[];for(let c=0;c<r.count;c++){let h=r.dets[c*5+4];if(!(h>=e.confidence))continue;let m=ce(r.dets[c*5],r.dets[c*5+1],o),p=ce(r.dets[c*5+2],r.dets[c*5+3],o),T=le(m.x,0,t),j=le(m.y,0,n),P=le(p.x,0,t)-T,E=le(p.y,0,n)-j;if(P<=0||E<=0)continue;let g=[],S=c*It*s;for(let V=0;V<It;V++){let f=S+V*s,l=ce(r.keypoints[f],r.keypoints[f+1],o);g.push({x:le(l.x,0,t),y:le(l.y,0,n),visibility:le(r.keypoints[f+2],0,1)})}let b=0;for(let V of g)V.visibility>=Xe&&b++;b<(e.minVisibleKeypoints??3)||i.push({score:h,boundingBox:{originX:T,originY:j,width:P,height:E,normalizedX:T/t,normalizedY:j/n,normalizedWidth:P/t,normalizedHeight:E/n},keypoints:g})}i.sort((c,h)=>h.score-c.score);let u=e.iouThreshold??.6,a=[];for(let c of i)a.some(h=>gn(h,c,u))||a.push(c);return{people:a}}function le(r,e,t){return r<e?e:r>t?t:r}function gn(r,e,t){if(ae(r.boundingBox,e.boundingBox)>t)return!0;let n=Math.sqrt(r.boundingBox.width*r.boundingBox.height),o=0,s=0;for(let i=0;i<r.keypoints.length;i++){let u=r.keypoints[i],a=e.keypoints[i];u.visibility<Xe||a.visibility<Xe||(o+=Math.hypot(u.x-a.x,u.y-a.y),s++)}return s>=3&&o/s<.1*n}y();function Ot(r,e,t,n){let{sourceWidth:o,sourceHeight:s}=n,i=Ne(n.maskThreshold??.5,n.featherRadius??.2),u=new Uint8Array(o*s),a=e/o,c=t/s,h=0;for(let m=0;m<s;m++){let p=Math.max(0,(m+.5)*c-.5),T=Math.min(t-1,Math.floor(p)),j=Math.min(t-1,T+1),P=p-T;for(let E=0;E<o;E++){let g=Math.max(0,(E+.5)*a-.5),S=Math.min(e-1,Math.floor(g)),b=Math.min(e-1,S+1),V=g-S,f=r[T*e+S]*(1-V)*(1-P)+r[T*e+b]*V*(1-P)+r[j*e+S]*(1-V)*P+r[j*e+b]*V*P,l=i(f);u[m*o+E]=l,h+=l}}return{mask:u,width:o,height:s,coverage:o*s>0?h/(255*o*s):0}}y();y();y();var Lt=`
2
2
  struct Bone {
3
3
  start: vec2<f32>,
4
4
  end: vec2<f32>,
@@ -57,7 +57,7 @@ fn computePoseSkeleton(@builtin(global_invocation_id) id: vec3<u32>) {
57
57
 
58
58
  textureStore(outputTex, id.xy, outColor);
59
59
  }
60
- `;var pn=[{from:0,to:11,color:[0,1,1,1]},{from:0,to:12,color:[0,1,1,1]},{from:11,to:12,color:[1,0,0,1]},{from:11,to:13,color:[1,.333,0,1]},{from:13,to:15,color:[1,.667,0,1]},{from:12,to:14,color:[1,1,0,1]},{from:14,to:16,color:[.667,1,0,1]},{from:11,to:23,color:[.333,1,0,1]},{from:12,to:24,color:[0,1,0,1]},{from:23,to:24,color:[0,1,.333,1]},{from:23,to:25,color:[0,1,.667,1]},{from:25,to:27,color:[0,1,1,1]},{from:24,to:26,color:[0,.667,1,1]},{from:26,to:28,color:[0,.333,1,1]}],Te=class{constructor(e){this.device=e;let t=e.createShaderModule({label:"pose_skeleton.wgsl",code:Lt});this.computePipeline=e.createComputePipeline({label:"PoseSkeletonComputePipeline",layout:"auto",compute:{module:t,entryPoint:"computePoseSkeleton"}}),this.uniformBuffer=e.createBuffer({size:1280,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST,label:"pose_skeleton_uniform_buffer"})}device;computePipeline;uniformBuffer;cachedOutputTexture;execute(e,t={},n){let o=n??pn,s=t.width??1024,i=t.height??1024,u=t.lineWidth??6,a=Math.max(1,u/2),c=1280,h=new ArrayBuffer(c),m=new Uint32Array(h),p=new Float32Array(h);m[0]=s,m[1]=i,m[2]=o.length,m[3]=0;let T=4;for(let g=0;g<o.length;g++){let _=o[g],b=e[_.from],V=e[_.to],f=T+g*12;if(!b||!V||(b.visibility??1)<.2||(V.visibility??1)<.2){p[f+9]=0;continue}p[f+0]=b.x*s,p[f+1]=b.y*i,p[f+2]=V.x*s,p[f+3]=V.y*i,p[f+4]=_.color[0],p[f+5]=_.color[1],p[f+6]=_.color[2],p[f+7]=_.color[3],p[f+8]=a,p[f+9]=1}this.device.queue.writeBuffer(this.uniformBuffer,0,h),(!this.cachedOutputTexture||this.cachedOutputTexture.width!==s||this.cachedOutputTexture.height!==i)&&(this.cachedOutputTexture?.destroy(),this.cachedOutputTexture=this.device.createTexture({label:"openpose_skeleton_texture",size:[s,i],format:"rgba8unorm",usage:GPUTextureUsage.STORAGE_BINDING|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC}));let j=this.device.createCommandEncoder({label:"pose_skeleton_command_encoder"}),P=this.device.createBindGroup({label:"pose_skeleton_bind_group",layout:this.computePipeline.getBindGroupLayout(0),entries:[{binding:0,resource:this.cachedOutputTexture.createView({label:"pose_skeleton_output_view"})},{binding:1,resource:{buffer:this.uniformBuffer}}]}),E=j.beginComputePass({label:"pose_skeleton_compute_pass"});return E.setPipeline(this.computePipeline),E.setBindGroup(0,P),E.dispatchWorkgroups(Math.ceil(s/16),Math.ceil(i/16),1),E.end(),this.device.queue.submit([j.finish()]),this.cachedOutputTexture}destroy(){this.cachedOutputTexture?.destroy(),this.cachedOutputTexture=void 0,this.uniformBuffer.destroy()}};y();var k={NOSE:0,LEFT_EYE:1,RIGHT_EYE:2,LEFT_EAR:3,RIGHT_EAR:4,LEFT_SHOULDER:5,RIGHT_SHOULDER:6,LEFT_ELBOW:7,RIGHT_ELBOW:8,LEFT_WRIST:9,RIGHT_WRIST:10,LEFT_HIP:11,RIGHT_HIP:12,LEFT_KNEE:13,RIGHT_KNEE:14,LEFT_ANKLE:15,RIGHT_ANKLE:16},Ge=["nose","leftEye","rightEye","leftEar","rightEar","leftShoulder","rightShoulder","leftElbow","rightElbow","leftWrist","rightWrist","leftHip","rightHip","leftKnee","rightKnee","leftAnkle","rightAnkle"],Et=[{from:k.NOSE,to:k.LEFT_SHOULDER,color:[0,1,1,1]},{from:k.NOSE,to:k.RIGHT_SHOULDER,color:[0,1,1,1]},{from:k.LEFT_SHOULDER,to:k.RIGHT_SHOULDER,color:[1,0,0,1]},{from:k.LEFT_SHOULDER,to:k.LEFT_ELBOW,color:[1,.333,0,1]},{from:k.LEFT_ELBOW,to:k.LEFT_WRIST,color:[1,.667,0,1]},{from:k.RIGHT_SHOULDER,to:k.RIGHT_ELBOW,color:[1,1,0,1]},{from:k.RIGHT_ELBOW,to:k.RIGHT_WRIST,color:[.667,1,0,1]},{from:k.LEFT_SHOULDER,to:k.LEFT_HIP,color:[.333,1,0,1]},{from:k.RIGHT_SHOULDER,to:k.RIGHT_HIP,color:[0,1,0,1]},{from:k.LEFT_HIP,to:k.RIGHT_HIP,color:[0,1,.333,1]},{from:k.LEFT_HIP,to:k.LEFT_KNEE,color:[0,1,.667,1]},{from:k.LEFT_KNEE,to:k.LEFT_ANKLE,color:[0,1,1,1]},{from:k.RIGHT_HIP,to:k.RIGHT_KNEE,color:[0,.667,1,1]},{from:k.RIGHT_KNEE,to:k.RIGHT_ANKLE,color:[0,.333,1,1]}];var _e=class{pipeline;constructor(e){this.pipeline=new Te(e)}renderToTexture(e,t,n=Et){return this.pipeline.execute(e,t,n)}destroy(){this.pipeline.destroy()}};y();var jt=class{device;pool=new Map;constructor(e){this.device=e}getOrCreateTexture(e,t){let n=this.pool.get(e);if(n&&n.width===t.width&&n.height===t.height)return n;n&&n.destroy();let o=t.format??"rgba8unorm",s=this.device.createTexture({label:t.label??`vision_segmentation_${e}`,size:[t.width,t.height,1],format:o,usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT});return this.pool.set(e,s),s}uploadMask(e,t,n,o){let s=t.length>=n*o*4,i=s?"rgba8unorm":"r8unorm",u=this.getOrCreateTexture(e,{width:n,height:o,format:i}),a;if(t instanceof Float32Array){a=new Uint8Array(t.length);for(let T=0;T<t.length;T++)a[T]=Math.round(Math.max(0,Math.min(1,t[T]))*255)}else a=t;let h=n*(s?4:1),m=Math.ceil(h/256)*256,p;if(m===h)p=a;else{p=new Uint8Array(m*o);for(let T=0;T<o;T++)p.set(a.subarray(T*h,(T+1)*h),T*m)}return this.device.queue.writeTexture({texture:u},p.buffer,{offset:p.byteOffset,bytesPerRow:m,rowsPerImage:o},{width:n,height:o}),u}destroy(){for(let e of this.pool.values())e.destroy();this.pool.clear()}};y();var Bt=en(At(),1);function bn(){return A.env.FRAMEFIELDS_MODELS_DIR?ye(A.env.FRAMEFIELDS_MODELS_DIR):ye(mt(),".cache/framefields/models")}var we=class{_modelsDir;_baseUrl;_timeoutMs;_retries;_retryDelayMs;_verify;_fetch;_onProgress;_inflight=new Map;_buffers=new Map;_status=new Map;constructor(e={}){this._modelsDir=e.modelsDir?ye(e.modelsDir):bn(),this._baseUrl=e.baseUrl??A.env.FRAMEFIELDS_MODELS_BASE_URL??void 0,this._timeoutMs=e.timeoutMs,this._retries=Math.max(0,e.retries??2),this._retryDelayMs=e.retryDelayMs??1e3,this._verify=e.verify!==!1,this._fetch=e.fetchImpl??globalThis.fetch,this._onProgress=e.onProgress}get modelsDir(){return this._modelsDir}pathFor(e){return ut(this._modelsDir,oe[e].filename)}descriptor(e){return oe[e]}urlFor(e){let t=oe[e];return this._baseUrl?`${this._baseUrl.replace(/\/+$/,"")}/${t.filename}`:t.url}has(e){let t=this.pathFor(e);if(!be(t))return!1;try{let n=it(t).size;return this._verify?n===oe[e].bytes:n>0}catch{return!1}}async evict(e){this._buffers.delete(e),this._status.set(e,"pending"),await Ve(this.pathFor(e)).catch(()=>{})}status(e){return this._status.get(e)??"pending"}statuses(){return new Map(this._status)}isLoaded(e){return this._buffers.has(e)}async ensure(e){let t=this._buffers.get(e);if(t)return t;let n=this._inflight.get(e);if(n)return n;let o=this.load(e).finally(()=>this._inflight.delete(e));return this._inflight.set(e,o),o}async preload(e){await Promise.all([...new Set(e)].map(t=>this.ensure(t)))}async load(e){let t=this.pathFor(e);if(this.has(e))return this._status.set(e,"ready"),this.readBuffer(e,t);let n=this.urlFor(e);this._status.set(e,"downloading"),be(Ae(t))||at(Ae(t),{recursive:!0});let o=`${t}.tmp.${Date.now()}`;try{let{buffer:s,totalBytes:i}=await this.download(e,n);if(s.byteLength===0)throw new Error(`Downloaded vision model '${e}' is empty (0 bytes).`);return this._verify&&this.verifyBytes(e,s,n),this._onProgress?.(e,s.byteLength,i||s.byteLength),await lt(o,s),await dt(o,t),this._buffers.set(e,s),this._status.set(e,"ready"),s}catch(s){throw this._status.set(e,"error"),be(o)&&await Ve(o).catch(()=>{}),s}}async download(e,t){for(let n=0;;n++){let o;try{let s=await this._fetch(t,{signal:this._timeoutMs?AbortSignal.timeout(this._timeoutMs):void 0});if(s.ok){let u=Number(s.headers.get("content-length")??0);return{buffer:new Uint8Array(await s.arrayBuffer()),totalBytes:u}}let i=new Error(`Failed to download vision model '${e}' from ${t}: HTTP ${s.status} ${s.statusText}`);if(s.status!==429&&s.status<500)throw i;o=i}catch(s){if(!(s instanceof TypeError))throw s;o=s}if(n>=this._retries)throw new Error(`Failed to download vision model '${e}' from ${t} after ${n+1} attempts: ${String(o)}`,{cause:o});await new Promise(s=>setTimeout(s,this._retryDelayMs*2**n))}}verifyBytes(e,t,n){let o=oe[e];if(t.byteLength!==o.bytes)throw new Error(`Vision model '${e}' from ${n} is ${t.byteLength} bytes, expected ${o.bytes}.`);let s=(0,Bt.createHash)("sha256").update(t).digest("hex");if(s!==o.sha256)throw new Error(`Vision model '${e}' from ${n} failed its SHA-256 check (got ${s}, expected ${o.sha256}).`)}async readBuffer(e,t){let n=await ct(t),o=new Uint8Array(n.buffer,n.byteOffset,n.byteLength);return this._buffers.set(e,o),o}clearMemoryCache(){this._buffers.clear()}};y();function Dt(){return{objects:[],rawDetections:[]}}function Ft(){return{people:[]}}function Ut(){let r=[];for(let e=0;e<17;e++)r.push({x:.5,y:.5,z:0,visibility:0});return r}y();var fe=class r{variant;confidence;classes;maskThreshold;featherRadius;_store;_provider;_sessions=new Map;_tensorScratch=new Map;_instancePass;constructor(e){this.variant=e.variant??"s",this.confidence=e.confidence??.3,this.classes=e.classes,this.maskThreshold=e.maskThreshold??.5,this.featherRadius=e.featherRadius,this._store=e.store??new we({modelsDir:e.modelsDir,baseUrl:e.baseUrl,timeoutMs:e.timeoutMs,onProgress:e.onProgress}),this._provider=e.provider??ft()}static create(e={}){return new r(e)}get modelsDir(){return this._store.modelsDir}get downloadStatus(){let e=new Map;for(let t of Object.keys(oe))e.set(t,"pending");for(let[t,n]of this._store.statuses())e.set(t,n);return e}modelKeyFor(e,t=1){return vt(e,this.variant,t)}async preload(e=["detect"]){let t=new Set;for(let n of e)n==="matte"?(t.add("selfie-square"),t.add("selfie-landscape")):t.add(this.modelKeyFor(n));await this._store.preload([...t]),await Promise.all([...t].map(n=>this.session(n)))}async detect(e){let t=await this.instancePass(e);return Ye({...t.outputs,masks:void 0},this.instanceDecodeOptions(e,t.transform)).detections}async segment(e){let t=await this.instancePass(e);return Ye(t.outputs,this.instanceDecodeOptions(e,t.transform))}async pose(e){let t=this.modelKeyFor("pose"),{outputs:n,transform:o}=await this.infer(t,e),s=me(n,"dets",t),i=me(n,"keypoints",t);return Ct({dets:s.data,keypoints:i.data,count:s.dims[1]??0,keypointStride:i.dims[3]??3},{confidence:this.confidence,transform:o,sourceWidth:e.width,sourceHeight:e.height})}async matte(e){let t=this.modelKeyFor("matte",e.width/e.height),[n,o]=oe[t].input,{outputs:s}=await this.infer(t,e),i=me(s,"alphas",t);return Ot(i.data,n,o,{sourceWidth:e.width,sourceHeight:e.height,maskThreshold:this.maskThreshold,...this.featherRadius!==void 0?{featherRadius:this.featherRadius}:{}})}close(){for(let e of this._sessions.values())e.then(t=>t.release()).catch(()=>{});this._sessions.clear(),this._instancePass=void 0,this._store.clearMemoryCache()}instancePass(e){if(this._instancePass?.frame===e.data)return this._instancePass.result;let t=this.modelKeyFor("segment"),n=this.infer(t,e).then(({outputs:o,transform:s})=>{let i=me(o,"dets",t),u=me(o,"masks",t);return{transform:s,outputs:{dets:i.data,labels:me(o,"labels",t).data,masks:u.data,count:i.dims[1]??0,maskHeight:u.dims[u.dims.length-2]??0,maskWidth:u.dims[u.dims.length-1]??0}}});return this._instancePass={frame:e.data,result:n},n.catch(()=>{this._instancePass?.result===n&&(this._instancePass=void 0)}),n}instanceDecodeOptions(e,t){return{confidence:this.confidence,classes:this.classes,classNames:xe,transform:t,sourceWidth:e.width,sourceHeight:e.height,maskThreshold:this.maskThreshold,...this.featherRadius!==void 0?{featherRadius:this.featherRadius}:{}}}async infer(e,t){let n=await this.session(e),o=oe[e],s=Pt(o.family,o.input),i=3*s.width*s.height,u=this._tensorScratch.get(e);(!u||u.length<i)&&(u=new Float32Array(i),this._tensorScratch.set(e,u));let{tensor:a,transform:c}=Rt(t,s,u);return{outputs:await n.run({name:"input",data:a,dims:[1,3,s.height,s.width]}),transform:c}}session(e){let t=this._sessions.get(e);return t||(t=this._store.ensure(e).then(n=>this._provider.createSession(n)).catch(n=>{throw this._sessions.delete(e),this._store.evict(e),n}),this._sessions.set(e,t)),t}};function me(r,e,t){let n=r[e];if(!n)throw new Error(`Vision model '${t}' returned no '${e}' output (got: ${Object.keys(r).join(", ")||"none"}). Expected the ${oe[t].source}.`);return n}y();function $e(r){let e;for(let t of r){if(!e){e=t;continue}let n=Ht(t),o=Ht(e);n!==o?n&&(e=t):(n?t.area>e.area:t.detectionIndex<e.detectionIndex)&&(e=t)}return e}function Ht(r){return r.category.toLowerCase()==="person"}function ve(r){let{mask:e,width:t,height:n}=r,o=t,s=n,i=-1,u=-1;for(let a=0;a<n;a++){let c=a*t;for(let h=0;h<t;h++)e[c+h]!==0&&(h<o&&(o=h),h>i&&(i=h),a<s&&(s=a),a>u&&(u=a))}return i<0?null:{x0:o,y0:s,x1:i,y1:u}}function zt(r,e=.5,t=2){let n=$e(r);if(!n)return;let o=ve(n);if(!o)return n;let s=Me(o),i=r.filter(c=>{if(c===n)return!1;let h=ve(c);return h!==null&&Me(h)<=s*t&&yn(o,h)>=e});if(i.length===0)return n;let u=n.mask.slice();for(let c of i){let h=c.mask;for(let m=0;m<u.length;m++)h[m]>u[m]&&(u[m]=h[m])}let a=0;for(let c=0;c<u.length;c++)a+=u[c];return a=Math.round(a/255),{...n,mask:u,area:a,coverage:a/(n.width*n.height)}}function Me(r){return(r.x1-r.x0+1)*(r.y1-r.y0+1)}function yn(r,e){let t=Math.min(r.x1,e.x1)-Math.max(r.x0,e.x0)+1,n=Math.min(r.y1,e.y1)-Math.max(r.y0,e.y0)+1;return t<=0||n<=0?0:t*n/Math.min(Me(r),Me(e))}y();y();var Pe=class{width;height;fovRad;focalDistance;constructor(e){this.width=e.width,this.height=e.height;let t=e.fov??60;this.fovRad=t*Math.PI/180,this.focalDistance=e.cameraDistance??this.height/2/Math.tan(this.fovRad/2)}projectNormalizedLandmark(e,t=0){let n=e.x*this.width,o=e.y*this.height,s=e.z*this.width+t,i=Math.min(s,this.focalDistance-10),u=this.focalDistance/(this.focalDistance-i);return{x:n,y:o,z:s,scale:Math.max(.1,u)}}projectWorldLandmark(e,t=2,n=800){let o=this.width/2,s=this.height/2,i=e.x*n,u=e.y*n,a=(e.z+t)*n,c=Math.min(a,this.focalDistance-10),h=this.focalDistance/(this.focalDistance-c);return{x:o+i*h,y:s+u*h,z:a,scale:Math.max(.1,h)}}};y();function We(r){if(r.boundingBox&&r.boundingBox.width>0&&r.boundingBox.height>0)return{originX:r.boundingBox.originX,originY:r.boundingBox.originY,width:r.boundingBox.width,height:r.boundingBox.height};let e=1/0,t=1/0,n=-1/0,o=-1/0,s=0;for(let i of r.keypoints)i.visibility>.1&&(s++,i.x<e&&(e=i.x),i.y<t&&(t=i.y),i.x>n&&(n=i.x),i.y>o&&(o=i.y));return s===0||e>=n||t>=o?{originX:r.boundingBox?.originX??0,originY:r.boundingBox?.originY??0,width:r.boundingBox?.width??0,height:r.boundingBox?.height??0}:{originX:e,originY:t,width:n-e,height:o-t}}function Yt(r,e,t=.15){if(r.length===0)return[];let n=e.filter(a=>a.category.toLowerCase()==="person"&&a.active);if(n.length===0)return[...r];let o=[];for(let a=0;a<r.length;a++){let c=r[a];if(c.trackId!==void 0)continue;let h=We(c),m=h.width<=1.05&&h.height<=1.05;for(let p of n){let T=m&&p.boundingBox.normalizedWidth>0?{originX:p.boundingBox.normalizedX,originY:p.boundingBox.normalizedY,width:p.boundingBox.normalizedWidth,height:p.boundingBox.normalizedHeight}:p.boundingBox,j=ae(h,T);j>=t&&o.push({personIdx:a,trackId:p.trackId,iou:j})}}o.sort((a,c)=>c.iou-a.iou);let s=new Set,i=new Set,u=new Map;for(let a of o)s.has(a.personIdx)||i.has(a.trackId)||(s.add(a.personIdx),i.add(a.trackId),u.set(a.personIdx,a.trackId));return r.length===1&&n.length===1&&!u.has(0)&&r[0].trackId===void 0&&u.set(0,n[0].trackId),r.map((a,c)=>{if(a.trackId!==void 0)return a;let h=u.get(c);return h!==void 0?{...a,trackId:h}:a})}var Re=class{objects;poseLandmarks;masks;segmentation;classes;poseLandmarksTensor;objectsTensor;masksTensor;histogramTensor;_totalFrames;_fps;_width;_height;_transformer;_stencilTexture;_poseCache=new Map;_objectCache=new Map;_maskCache=new Map;_matteCache=new Map;_poseLmCache=new Map;_trackCache=new Map;_categoryCache=new Map;_classCache=new Map;_maskTrackCache=new Map;_registeredSignals=new Set;constructor(e={}){this._totalFrames=e.totalFrames??120,this._fps=e.fps??24,this._width=e.width??1920,this._height=e.height??1080,this._transformer=new Pe({width:this._width,height:this._height,fov:e.cameraFov??60});let t=this,n=(f,l)=>{let M=rt(f,l);return this._registeredSignals.add(M),M},o=f=>this.getPoseResult(f).people[0]?.keypoints??Ut(),s=(f,l)=>{let M=v=>o(v)[f]??{x:.5,y:.5,z:0},x=n(v=>M(v.frame).x,{fps:this._fps,label:`${l}_x`}),w=n(v=>M(v.frame).y,{fps:this._fps,label:`${l}_y`}),O=n(v=>M(v.frame).z??0,{fps:this._fps,label:`${l}_z`}),U=n(v=>this._transformer.projectNormalizedLandmark(M(v.frame)).x,{fps:this._fps,label:`${l}_screenX`}),I=n(v=>this._transformer.projectNormalizedLandmark(M(v.frame)).y,{fps:this._fps,label:`${l}_screenY`});return{x,y:w,z:O,screenX:U,screenY:I}},i=f=>{let l=this._poseLmCache.get(f);return l||(l=s(f,Ge[f]??`kpt_${f}`),this._poseLmCache.set(f,l)),l},u={nose:i(k.NOSE),leftEye:i(k.LEFT_EYE),rightEye:i(k.RIGHT_EYE),leftEar:i(k.LEFT_EAR),rightEar:i(k.RIGHT_EAR),shoulder:i(k.LEFT_SHOULDER),leftShoulder:i(k.LEFT_SHOULDER),rightShoulder:i(k.RIGHT_SHOULDER),leftElbow:i(k.LEFT_ELBOW),rightElbow:i(k.RIGHT_ELBOW),leftWrist:i(k.LEFT_WRIST),rightWrist:i(k.RIGHT_WRIST),leftHip:i(k.LEFT_HIP),rightHip:i(k.RIGHT_HIP),leftKnee:i(k.LEFT_KNEE),rightKnee:i(k.RIGHT_KNEE),leftAnkle:i(k.LEFT_ANKLE),rightAnkle:i(k.RIGHT_ANKLE),get:i};this.poseLandmarks=new Proxy(u,{get(f,l,M){return typeof l=="string"&&/^\d+$/.test(l)?f.get(Number(l)):typeof l=="number"?f.get(l):Reflect.get(f,l,M)}});let a=(f,l="unknown")=>({trackId:f,category:l,score:0,boundingBox:{originX:this._width/2,originY:this._height/2,width:0,height:0,normalizedX:.5,normalizedY:.5,normalizedWidth:0,normalizedHeight:0},centerX:this._width/2,centerY:this._height/2,normalizedCenterX:.5,normalizedCenterY:.5,velocity:{vx:0,vy:0},speed:0,age:0,hits:0,active:!1,isCoasting:!1}),c=(f,l)=>{let M=n(I=>f(I.frame).sx,{fps:this._fps,label:`${l}_screenX`}),x=n(I=>f(I.frame).sy,{fps:this._fps,label:`${l}_screenY`}),w=n(I=>this._width>0?f(I.frame).sx/this._width:0,{fps:this._fps,label:`${l}_x`}),O=n(I=>this._height>0?f(I.frame).sy/this._height:0,{fps:this._fps,label:`${l}_y`}),U=n(()=>0,{fps:this._fps,label:`${l}_z`});return{x:w,y:O,z:U,screenX:M,screenY:x}},h=(f,l,M)=>{let x=F=>{let C=t.getPoseResult(F);if(C.people.length===0)return;let B=f(F),$=M??B.trackId,N=C.people.find(W=>W.trackId===$);if(N)return N;if(!B.active&&C.people.length>1)return;if(C.people.length===1)return C.people[0];let X,q=.1;for(let W of C.people){let H=We(W),J=H.width<=1.05&&H.height<=1.05&&B.boundingBox.normalizedWidth>0?{originX:B.boundingBox.normalizedX,originY:B.boundingBox.normalizedY,width:B.boundingBox.normalizedWidth,height:B.boundingBox.normalizedHeight}:B.boundingBox,Y=ae(H,J);Y>q&&(q=Y,X=W)}return X},w=n(F=>x(F.frame)?1:0,{fps:this._fps,label:`${l}_hasPose`}),O=(F,C)=>{let B=H=>{let J=x(H)?.keypoints[F];if(J&&J.visibility>.05)return{x:J.x,y:J.y,z:0};let Y=f(H);return{x:Y.normalizedCenterX,y:Y.normalizedCenterY,z:0}},$=n(H=>B(H.frame).x,{fps:this._fps,label:`${l}_${C}_x`}),N=n(H=>B(H.frame).y,{fps:this._fps,label:`${l}_${C}_y`}),X=n(H=>B(H.frame).z??0,{fps:this._fps,label:`${l}_${C}_z`}),q=n(H=>t._transformer.projectNormalizedLandmark(B(H.frame)).x,{fps:this._fps,label:`${l}_${C}_screenX`}),W=n(H=>t._transformer.projectNormalizedLandmark(B(H.frame)).y,{fps:this._fps,label:`${l}_${C}_screenY`});return{x:$,y:N,z:X,screenX:q,screenY:W}},U=new Map,I=F=>{let C=U.get(F);return C||(C=O(F,Ge[F]??`kpt_${F}`),U.set(F,C)),C},v=n(F=>{let C=F.frame,B=x(C);if(!B)return 0;let $=x(Math.max(0,C-1)),N=B.keypoints,X=$?.keypoints,q=N[k.RIGHT_WRIST],W=X?.[k.RIGHT_WRIST],H=0;if(q&&W&&q.visibility>.1&&W.visibility>.1){let re=(q.x-W.x)*this._width,D=(q.y-W.y)*this._height;H=Math.sqrt(re*re+D*D)*this._fps}let ne=N[k.LEFT_WRIST],J=X?.[k.LEFT_WRIST],Y=0;if(ne&&J&&ne.visibility>.1&&J.visibility>.1){let re=(ne.x-J.x)*this._width,D=(ne.y-J.y)*this._height;Y=Math.sqrt(re*re+D*D)*this._fps}return Math.max(H,Y)},{fps:this._fps,label:`${l}_wristSpeed`}),d=n(F=>{let C=x(F.frame);if(!C)return 0;let B=C.keypoints,$=B[k.LEFT_WRIST],N=B[k.LEFT_SHOULDER],X=B[k.RIGHT_WRIST],q=B[k.RIGHT_SHOULDER],W=$&&N&&$.visibility>.1&&N.visibility>.1&&$.y<N.y,H=X&&q&&X.visibility>.1&&q.visibility>.1&&X.y<q.y;return W||H?1:0},{fps:this._fps,label:`${l}_handRaised`}),R=n(F=>{let C=x(F.frame);if(!C)return 0;let B=C.keypoints,$=B[k.LEFT_SHOULDER],N=B[k.RIGHT_SHOULDER],X=B[k.LEFT_HIP],q=B[k.RIGHT_HIP];if(!$||!N||!X||!q)return 0;let W=($.x+N.x)/2*this._width,H=($.y+N.y)/2*this._height,ne=(X.x+q.x)/2*this._width,J=(X.y+q.y)/2*this._height,Y=W-ne,re=H-J;return Y===0&&re===0?0:Math.atan2(Y,-re)},{fps:this._fps,label:`${l}_bodyTiltAngle`}),z={hasPose:w,wristSpeed:v,handRaised:d,bodyTiltAngle:R,nose:I(k.NOSE),leftEye:I(k.LEFT_EYE),rightEye:I(k.RIGHT_EYE),leftEar:I(k.LEFT_EAR),rightEar:I(k.RIGHT_EAR),shoulder:I(k.LEFT_SHOULDER),leftShoulder:I(k.LEFT_SHOULDER),rightShoulder:I(k.RIGHT_SHOULDER),leftElbow:I(k.LEFT_ELBOW),rightElbow:I(k.RIGHT_ELBOW),leftWrist:I(k.LEFT_WRIST),rightWrist:I(k.RIGHT_WRIST),leftHip:I(k.LEFT_HIP),rightHip:I(k.RIGHT_HIP),leftKnee:I(k.LEFT_KNEE),rightKnee:I(k.RIGHT_KNEE),leftAnkle:I(k.LEFT_ANKLE),rightAnkle:I(k.RIGHT_ANKLE),get:I};return new Proxy(z,{get(F,C,B){return typeof C=="string"&&/^\d+$/.test(C)?F.get(Number(C)):typeof C=="number"?F.get(C):Reflect.get(F,C,B)}})},m=(f,l,M,x)=>{let w=d=>f(d).boundingBox,O=h(f,`${l}_pose`,x),U=(d,R,z)=>c(F=>({sx:R(w(F)),sy:z(w(F))}),`${l}_${d}`),I=U("center",d=>d.originX+d.width/2,d=>d.originY+d.height/2),v=n(d=>f(d.frame).speed,{fps:this._fps,label:`${l}_speed`});return{get trackId(){return x??f(0).trackId},get category(){return M??f(0).category},bounds:{x:n(d=>w(d.frame).normalizedX,{fps:this._fps,label:`${l}_normX`}),y:n(d=>w(d.frame).normalizedY,{fps:this._fps,label:`${l}_normY`}),width:n(d=>w(d.frame).normalizedWidth,{fps:this._fps,label:`${l}_normWidth`}),height:n(d=>w(d.frame).normalizedHeight,{fps:this._fps,label:`${l}_normHeight`}),screenX:n(d=>w(d.frame).originX,{fps:this._fps,label:`${l}_screenX`}),screenY:n(d=>w(d.frame).originY,{fps:this._fps,label:`${l}_screenY`}),screenWidth:n(d=>w(d.frame).width,{fps:this._fps,label:`${l}_screenWidth`}),screenHeight:n(d=>w(d.frame).height,{fps:this._fps,label:`${l}_screenHeight`}),aspectRatio:n(d=>{let R=w(d.frame);return R.height>0?R.width/R.height:1},{fps:this._fps,label:`${l}_aspectRatio`}),area:n(d=>{let R=w(d.frame);return R.width*R.height},{fps:this._fps,label:`${l}_area`})},anchors:{topLeft:U("topLeft",d=>d.originX,d=>d.originY),topCenter:U("topCenter",d=>d.originX+d.width/2,d=>d.originY),topRight:U("topRight",d=>d.originX+d.width,d=>d.originY),centerLeft:U("centerLeft",d=>d.originX,d=>d.originY+d.height/2),center:I,centerRight:U("centerRight",d=>d.originX+d.width,d=>d.originY+d.height/2),bottomLeft:U("bottomLeft",d=>d.originX,d=>d.originY+d.height),bottomCenter:U("bottomCenter",d=>d.originX+d.width/2,d=>d.originY+d.height),bottomRight:U("bottomRight",d=>d.originX+d.width,d=>d.originY+d.height)},kinematics:{vx:n(d=>f(d.frame).velocity.vx,{fps:this._fps,label:`${l}_vx`}),vy:n(d=>f(d.frame).velocity.vy,{fps:this._fps,label:`${l}_vy`}),speed:v,acceleration:v.velocity(1),headingRad:n(d=>{let R=f(d.frame).velocity;return Math.atan2(R.vy,R.vx)},{fps:this._fps,label:`${l}_headingRad`}),headingDeg:n(d=>{let R=f(d.frame).velocity;return Math.atan2(R.vy,R.vx)*180/Math.PI},{fps:this._fps,label:`${l}_headingDeg`})},confidence:n(d=>f(d.frame).score,{fps:this._fps,label:`${l}_score`}),active:n(d=>f(d.frame).active?1:0,{fps:this._fps,label:`${l}_active`}),isCoasting:n(d=>f(d.frame).isCoasting?1:0,{fps:this._fps,label:`${l}_isCoasting`}),age:n(d=>f(d.frame).age,{fps:this._fps,label:`${l}_age`}),pose:O,center:I,topCenter:this.__pending,bottomCenter:I,topLeft:I,bottomLeft:I}},p=(f,l,M,x)=>{let w=m(f,l,M,x),O=w.anchors;return Object.assign(w,{topCenter:O.topCenter,bottomCenter:O.bottomCenter,topLeft:O.topLeft,bottomLeft:O.bottomLeft}),w},T=f=>{let l=this._trackCache.get(f);return l||(l=p(M=>this.getObjectResult(M).objects.find(x=>x.trackId===f)??a(f),`track_${f}`,void 0,f),this._trackCache.set(f,l)),l},j=(f,l=0)=>{let M=`${f.toLowerCase()}_${l}`,x=this._categoryCache.get(M);return x||(x=p(w=>this.getObjectResult(w).objects.filter(I=>I.category.toLowerCase()===f.toLowerCase()&&I.active)[l]??a(0,f),`cat_${f}_${l}`,f),this._categoryCache.set(M,x)),x},P=p(f=>{let l=this.getObjectResult(f);if(l.objects.length===0)return a(0);let M=l.objects[0];for(let x=1;x<l.objects.length;x++)l.objects[x].score>M.score&&(M=l.objects[x]);return M},"primary_object"),E=f=>{let l=new Set;for(let M of this.getObjectResult(f).objects)M.active&&l.add(M.category);return Array.from(l).sort()},g=f=>{let l=f.toLowerCase(),M=this._classCache.get(l);return M||(M={count:n(x=>this.getObjectResult(x.frame).objects.filter(w=>w.active&&w.category.toLowerCase()===l).length,{fps:this._fps,label:`class_${l}_count`}),maxConfidence:n(x=>{let w=0;for(let O of this.getObjectResult(x.frame).objects)O.active&&O.category.toLowerCase()===l&&O.score>w&&(w=O.score);return w},{fps:this._fps,label:`class_${l}_maxConf`}),present:n(x=>this.getObjectResult(x.frame).objects.some(w=>w.active&&w.category.toLowerCase()===l)?1:0,{fps:this._fps,label:`class_${l}_present`}),primary:j(f)},this._classCache.set(l,M),M)};this.classes={get:g,get names(){return E(te.value)},histogram:{get:f=>t.getClassHistogramTensor(f?.frame??te.value),get value(){return t.getClassHistogramTensor(te.value)}}},this.objects={get:T,byCategory:j,primary:P,count:n(f=>this.getObjectResult(f.frame).objects.filter(l=>l.active).length,{fps:this._fps,label:"tracked_objects_count"}),hasCategory:f=>g(f).present,getActiveTracks:f=>this.getObjectResult(f).objects.filter(l=>l.active),get detectedCategories(){return E(te.value)}};let _=(f,l)=>this.getMaskResult(f).find(M=>M.trackId===l),b=f=>$e(this.getMaskResult(f)),V=(f,l)=>{let M=x=>{let w=f(x);if(!(!w||w.trackId===void 0))return this.getObjectResult(x).objects.find(O=>O.trackId===w.trackId)};return{get trackId(){return f(te.value)?.trackId??0},get category(){return f(te.value)?.category??"unknown"},area:n(x=>f(x.frame)?.area??0,{fps:this._fps,label:`${l}_area`}),coverage:n(x=>f(x.frame)?.coverage??0,{fps:this._fps,label:`${l}_coverage`}),solidity:n(x=>{let w=f(x.frame),O=M(x.frame);if(!w||!O)return 0;let U=O.boundingBox.width*O.boundingBox.height;return U>0?w.area/U:0},{fps:this._fps,label:`${l}_solidity`}),bboxFill:n(x=>{let w=f(x.frame);if(!w||w.width*w.height===0)return 0;let O=M(x.frame);return O?O.boundingBox.width*O.boundingBox.height/(w.width*w.height):0},{fps:this._fps,label:`${l}_bboxFill`})}};this.masks={get:f=>{let l=this._maskTrackCache.get(f);return l||(l=V(M=>_(M,f),`mask_${f}`),this._maskTrackCache.set(f,l)),l},subject:V(b,"subject"),count:n(f=>new Set(this.getMaskResult(f.frame).map(l=>l.trackId??-1)).size,{fps:this._fps,label:"mask_count"})},this.segmentation={humanSilhouette:this.masks.subject,subject:this.masks.subject,instanceMasks:this.masks,matte:{coverage:n(f=>t.getMatteResult(f.frame)?.coverage??0,{fps:this._fps,label:"matte_coverage"}),at:f=>t.getMatteResult(f)},get stencilTexture(){return t._stencilTexture}},this.poseLandmarksTensor={get:f=>t.getPoseLandmarksTensor(f?.frame??te.value),get value(){return t.getPoseLandmarksTensor(te.value)}},this.objectsTensor={get:f=>t.getObjectsTensor(f?.frame??te.value),get value(){return t.getObjectsTensor(te.value)}},this.masksTensor={get:f=>t.getMasksTensor(f?.frame??te.value),get value(){return t.getMasksTensor(te.value)}},this.histogramTensor={get:f=>t.getClassHistogramTensor(f?.frame??te.value),get value(){return t.getClassHistogramTensor(te.value)}}}setStencilTexture(e){this._stencilTexture=e}get stencilTexture(){return this._stencilTexture}latestAtOrBefore(e,t,n=8){let o=this.clamp(t),s=Math.max(0,o-n);for(let i=o;i>=s;i--){let u=e.get(i);if(u!==void 0)return u}}invalidateSignals(){for(let e of this._registeredSignals)e.invalidate()}setPoseResult(e,t){this._poseCache.set(this.clamp(e),t),this.invalidateSignals()}getPoseResult(e){return this.latestAtOrBefore(this._poseCache,e)??Ft()}setObjectResult(e,t){let n="objects"in t?t:{objects:t,rawDetections:[]};this._objectCache.set(this.clamp(e),{objects:n.objects,rawDetections:n.rawDetections??[]}),this.invalidateSignals()}getObjectResult(e){return this.latestAtOrBefore(this._objectCache,e)??Dt()}setMaskResult(e,t){this._maskCache.set(this.clamp(e),t),this.invalidateSignals()}getMaskResult(e){return this.latestAtOrBefore(this._maskCache,e)??[]}setMatteResult(e,t){this._matteCache.set(this.clamp(e),t),this.invalidateSignals()}getMatteResult(e){return this.latestAtOrBefore(this._matteCache,e)}summary(e=te.value){let t=this.clamp(e),n=this.getObjectResult(t),o=n.objects.map(u=>({trackId:u.trackId,category:u.category,score:u.score,center:[u.centerX,u.centerY],speed:u.speed,active:u.active})),s=new Set;for(let u of n.objects)u.active&&s.add(u.category);let i={};for(let u of this.getMaskResult(t))i[u.category]=(i[u.category]??0)+1;return{frame:t,objects:o,classes:Array.from(s).sort(),masks:i}}getPoseLandmarksTensor(e){let n=this.getPoseResult(e).people[0]?.keypoints??[],o=new Float32Array(51);for(let s=0;s<17;s++)o[s*3]=n[s]?.x??.5,o[s*3+1]=n[s]?.y??.5,o[s*3+2]=n[s]?.visibility??0;return{data:o,shape:[17,3],dtype:"float32"}}getObjectsTensor(e,t=16){let n=this.getObjectResult(e),o=new Float32Array(t*8),s=Math.min(t,n.objects.length);for(let i=0;i<s;i++){let u=n.objects[i],a=i*8,c=0;for(let h=0;h<u.category.length;h++)c=c*31+u.category.charCodeAt(h)&65535;o[a]=u.active?1:0,o[a+1]=c,o[a+2]=u.centerX,o[a+3]=u.centerY,o[a+4]=u.boundingBox.width,o[a+5]=u.boundingBox.height,o[a+6]=u.velocity.vx,o[a+7]=u.velocity.vy}return{data:o,shape:[t,8],dtype:"float32"}}getMasksTensor(e,t=16){let n=this.getMaskResult(e),o=new Float32Array(t*2),s=Math.min(t,n.length);for(let i=0;i<s;i++){let u=n[i];o[i*2]=u.coverage;let a=this.getObjectResult(e).objects.find(h=>h.trackId===u.trackId),c=a?a.boundingBox.width*a.boundingBox.height:0;o[i*2+1]=c>0?u.area/c:0}return{data:o,shape:[t,2],dtype:"float32"}}getClassHistogramTensor(e,t=80){let n=new Float32Array(t);for(let o of this.getObjectResult(e).objects)if(o.active){let s=xn.get(o.category.toLowerCase());s!==void 0&&(n[s]+=1)}return{data:n,shape:[t],dtype:"float32"}}clamp(e){return Math.max(0,Math.min(this._totalFrames-1,Math.round(e)))}};var xn=new Map(xe.map((r,e)=>[r,e]));y();function Nt(r,e,t={}){let n=t.offsetX??0,o=t.offsetY??0,s=t.offsetZ??0;if(!e||typeof e!="object")return r;if("screenX"in e&&e.screenX&&typeof e.screenX=="object"){let i=e;r.x=n!==0?i.screenX.add(n):i.screenX,r.y=o!==0?i.screenY.add(o):i.screenY,r.z=s!==0?i.z.add(s):i.z}else if("x"in e&&typeof e.x=="object"&&e.x!==null){let i=e;r.x=n!==0?i.x.add(n):i.x,r.y=o!==0?i.y.add(o):i.y,r.z=s!==0?i.z.add(s):i.z}else{let i=e;r.x=(i.screenX??i.x)+n,r.y=(i.screenY??i.y)+o,r.z=(i.z??0)+s}return r}function os(r,e,t={}){if(!e||typeof e!="object")return r;if("anchors"in e&&e.anchors){let n=e,o=t.anchor??(t.matchWidth||t.matchHeight?"topLeft":"center"),s=n.anchors[o]??n.center,i=s;return t.smoothFrames&&t.smoothFrames>1&&(i={x:s.x.smooth(t.smoothFrames),y:s.y.smooth(t.smoothFrames),z:s.z,screenX:s.screenX.smooth(t.smoothFrames),screenY:s.screenY.smooth(t.smoothFrames)}),t.matchWidth&&(r.width=t.smoothFrames&&t.smoothFrames>1?n.bounds.screenWidth.smooth(t.smoothFrames):n.bounds.screenWidth),t.matchHeight&&(r.height=t.smoothFrames&&t.smoothFrames>1?n.bounds.screenHeight.smooth(t.smoothFrames):n.bounds.screenHeight),t.hideWhenLost&&(r.opacity=n.active),Nt(r,i,t)}return Nt(r,e,t)}y();function kn(r){let e=[];return r.enableDetection===!0&&e.push("detect"),r.enableSegmentation===!0&&e.push("segment"),r.enablePose===!0&&e.push("pose"),r.enableMatte===!0&&e.push("matte"),e.length>0?e:["detect"]}var Ke=class r{id;kind="vision";source;config;vision;_runner;_runnerOptions;constructor(e,t={},n={},o={}){this.id=`vision-${Math.random().toString(36).slice(2,9)}`,this.source=e,this.config=t,this._runnerOptions=o,this.vision=new Re({...n,config:t})}runner(){if(!this._runner){let{variant:e,confidence:t,classes:n,modelsDir:o,baseUrl:s,maskThreshold:i,featherRadius:u}=this.config;this._runner=fe.create({...this._runnerOptions,...e!==void 0?{variant:e}:{},...t!==void 0?{confidence:t}:{},...n!==void 0?{classes:n}:{},...o!==void 0?{modelsDir:o}:{},...s!==void 0?{baseUrl:s}:{},...i!==void 0?{maskThreshold:i}:{},...u!==void 0?{featherRadius:u}:{}})}return this._runner}async ready(){let e=this.runner();return await e.preload(kn(this.config)),e}close(){this._runner?.close(),this._runner=void 0}static attach(e,t={},n={}){let o=new r(e,t,n),s=o.vision;return Object.defineProperties(s,{node:{value:o.toNode(),enumerable:!0},ready:{value:()=>o.ready()},runner:{value:()=>o.runner()},close:{value:()=>o.close()}}),s}toNode(){return{id:this.id,kind:"vision",source:this.source,config:this.config}}};y();var qe=new Uint8Array(0),Xt=new Uint32Array(0);function Tn(r,e,t){qe.length<r.length&&(qe=new Uint8Array(r.length),Xt=new Uint32Array(r.length));let n=qe,o=Xt,s=0,i=0;for(let u=1;u<=r.length;u++)(u===r.length||r[u]!==r[i])&&(n[s]=r[i],o[s]=u-i,s++,i=u);return{width:e,height:t,values:n.slice(0,s),lengths:o.slice(0,s)}}function _n(r){let e=new Uint8Array(r.width*r.height),t=0;for(let n=0;n<r.values.length;n++){let o=t+r.lengths[n];r.values[n]!==0&&e.fill(r.values[n],t,o),t=o}return e}function Gt(r){return r.values.byteLength+r.lengths.byteLength}function Je(r){let{mask:e,...t}=r;return{...t,rle:Tn(e,r.width,r.height)}}function Qe(r){let{rle:e,...t}=r;return{...t,mask:_n(e)}}function Ze(r){let e=512+r.detections.length*128+r.objects.length*256;for(let t of r.masks??[])e+=Gt(t.rle);return r.subject&&(e+=Gt(r.subject.mask.rle)),e}var Ie=class{constructor(e=256*1024*1024){this.maxBytes=e}maxBytes;entries=new Map;bytes=0;get(e,t){let n=`${e}#${t}`,o=this.entries.get(n);return o&&(this.entries.delete(n),this.entries.set(n,o)),o}set(e,t,n){let o=`${e}#${t}`,s=this.entries.get(o);s&&(this.bytes-=Ze(s),this.entries.delete(o)),this.entries.set(o,n),this.bytes+=Ze(n);for(let[i,u]of this.entries){if(this.bytes<=this.maxBytes)break;this.entries.delete(i),this.bytes-=Ze(u)}}clear(){this.entries.clear(),this.bytes=0}get size(){return this.entries.size}};y();var Sn=`
60
+ `;var pn=[{from:0,to:11,color:[0,1,1,1]},{from:0,to:12,color:[0,1,1,1]},{from:11,to:12,color:[1,0,0,1]},{from:11,to:13,color:[1,.333,0,1]},{from:13,to:15,color:[1,.667,0,1]},{from:12,to:14,color:[1,1,0,1]},{from:14,to:16,color:[.667,1,0,1]},{from:11,to:23,color:[.333,1,0,1]},{from:12,to:24,color:[0,1,0,1]},{from:23,to:24,color:[0,1,.333,1]},{from:23,to:25,color:[0,1,.667,1]},{from:25,to:27,color:[0,1,1,1]},{from:24,to:26,color:[0,.667,1,1]},{from:26,to:28,color:[0,.333,1,1]}],Te=class{constructor(e){this.device=e;let t=e.createShaderModule({label:"pose_skeleton.wgsl",code:Lt});this.computePipeline=e.createComputePipeline({label:"PoseSkeletonComputePipeline",layout:"auto",compute:{module:t,entryPoint:"computePoseSkeleton"}}),this.uniformBuffer=e.createBuffer({size:1280,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST,label:"pose_skeleton_uniform_buffer"})}device;computePipeline;uniformBuffer;cachedOutputTexture;execute(e,t={},n){let o=n??pn,s=t.width??1024,i=t.height??1024,u=t.lineWidth??6,a=Math.max(1,u/2),c=1280,h=new ArrayBuffer(c),m=new Uint32Array(h),p=new Float32Array(h);m[0]=s,m[1]=i,m[2]=o.length,m[3]=0;let T=4;for(let g=0;g<o.length;g++){let S=o[g],b=e[S.from],V=e[S.to],f=T+g*12;if(!b||!V||(b.visibility??1)<.2||(V.visibility??1)<.2){p[f+9]=0;continue}p[f+0]=b.x*s,p[f+1]=b.y*i,p[f+2]=V.x*s,p[f+3]=V.y*i,p[f+4]=S.color[0],p[f+5]=S.color[1],p[f+6]=S.color[2],p[f+7]=S.color[3],p[f+8]=a,p[f+9]=1}this.device.queue.writeBuffer(this.uniformBuffer,0,h),(!this.cachedOutputTexture||this.cachedOutputTexture.width!==s||this.cachedOutputTexture.height!==i)&&(this.cachedOutputTexture?.destroy(),this.cachedOutputTexture=this.device.createTexture({label:"openpose_skeleton_texture",size:[s,i],format:"rgba8unorm",usage:GPUTextureUsage.STORAGE_BINDING|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC}));let j=this.device.createCommandEncoder({label:"pose_skeleton_command_encoder"}),P=this.device.createBindGroup({label:"pose_skeleton_bind_group",layout:this.computePipeline.getBindGroupLayout(0),entries:[{binding:0,resource:this.cachedOutputTexture.createView({label:"pose_skeleton_output_view"})},{binding:1,resource:{buffer:this.uniformBuffer}}]}),E=j.beginComputePass({label:"pose_skeleton_compute_pass"});return E.setPipeline(this.computePipeline),E.setBindGroup(0,P),E.dispatchWorkgroups(Math.ceil(s/16),Math.ceil(i/16),1),E.end(),this.device.queue.submit([j.finish()]),this.cachedOutputTexture}destroy(){this.cachedOutputTexture?.destroy(),this.cachedOutputTexture=void 0,this.uniformBuffer.destroy()}};y();var k={NOSE:0,LEFT_EYE:1,RIGHT_EYE:2,LEFT_EAR:3,RIGHT_EAR:4,LEFT_SHOULDER:5,RIGHT_SHOULDER:6,LEFT_ELBOW:7,RIGHT_ELBOW:8,LEFT_WRIST:9,RIGHT_WRIST:10,LEFT_HIP:11,RIGHT_HIP:12,LEFT_KNEE:13,RIGHT_KNEE:14,LEFT_ANKLE:15,RIGHT_ANKLE:16},Ge=["nose","leftEye","rightEye","leftEar","rightEar","leftShoulder","rightShoulder","leftElbow","rightElbow","leftWrist","rightWrist","leftHip","rightHip","leftKnee","rightKnee","leftAnkle","rightAnkle"],Et=[{from:k.NOSE,to:k.LEFT_SHOULDER,color:[0,1,1,1]},{from:k.NOSE,to:k.RIGHT_SHOULDER,color:[0,1,1,1]},{from:k.LEFT_SHOULDER,to:k.RIGHT_SHOULDER,color:[1,0,0,1]},{from:k.LEFT_SHOULDER,to:k.LEFT_ELBOW,color:[1,.333,0,1]},{from:k.LEFT_ELBOW,to:k.LEFT_WRIST,color:[1,.667,0,1]},{from:k.RIGHT_SHOULDER,to:k.RIGHT_ELBOW,color:[1,1,0,1]},{from:k.RIGHT_ELBOW,to:k.RIGHT_WRIST,color:[.667,1,0,1]},{from:k.LEFT_SHOULDER,to:k.LEFT_HIP,color:[.333,1,0,1]},{from:k.RIGHT_SHOULDER,to:k.RIGHT_HIP,color:[0,1,0,1]},{from:k.LEFT_HIP,to:k.RIGHT_HIP,color:[0,1,.333,1]},{from:k.LEFT_HIP,to:k.LEFT_KNEE,color:[0,1,.667,1]},{from:k.LEFT_KNEE,to:k.LEFT_ANKLE,color:[0,1,1,1]},{from:k.RIGHT_HIP,to:k.RIGHT_KNEE,color:[0,.667,1,1]},{from:k.RIGHT_KNEE,to:k.RIGHT_ANKLE,color:[0,.333,1,1]}];var _e=class{pipeline;constructor(e){this.pipeline=new Te(e)}renderToTexture(e,t,n=Et){return this.pipeline.execute(e,t,n)}destroy(){this.pipeline.destroy()}};y();var jt=class{device;pool=new Map;constructor(e){this.device=e}getOrCreateTexture(e,t){let n=this.pool.get(e);if(n&&n.width===t.width&&n.height===t.height)return n;n&&n.destroy();let o=t.format??"rgba8unorm",s=this.device.createTexture({label:t.label??`vision_segmentation_${e}`,size:[t.width,t.height,1],format:o,usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT});return this.pool.set(e,s),s}uploadMask(e,t,n,o){let s=t.length>=n*o*4,i=s?"rgba8unorm":"r8unorm",u=this.getOrCreateTexture(e,{width:n,height:o,format:i}),a;if(t instanceof Float32Array){a=new Uint8Array(t.length);for(let T=0;T<t.length;T++)a[T]=Math.round(Math.max(0,Math.min(1,t[T]))*255)}else a=t;let h=n*(s?4:1),m=Math.ceil(h/256)*256,p;if(m===h)p=a;else{p=new Uint8Array(m*o);for(let T=0;T<o;T++)p.set(a.subarray(T*h,(T+1)*h),T*m)}return this.device.queue.writeTexture({texture:u},p.buffer,{offset:p.byteOffset,bytesPerRow:m,rowsPerImage:o},{width:n,height:o}),u}destroy(){for(let e of this.pool.values())e.destroy();this.pool.clear()}};y();var Bt=en(At(),1);function bn(){return A.env.FRAMEFIELDS_MODELS_DIR?ye(A.env.FRAMEFIELDS_MODELS_DIR):ye(mt(),".cache/framefields/models")}var we=class{_modelsDir;_baseUrl;_timeoutMs;_retries;_retryDelayMs;_verify;_fetch;_onProgress;_inflight=new Map;_buffers=new Map;_status=new Map;constructor(e={}){this._modelsDir=e.modelsDir?ye(e.modelsDir):bn(),this._baseUrl=e.baseUrl??A.env.FRAMEFIELDS_MODELS_BASE_URL??void 0,this._timeoutMs=e.timeoutMs,this._retries=Math.max(0,e.retries??2),this._retryDelayMs=e.retryDelayMs??1e3,this._verify=e.verify!==!1,this._fetch=e.fetchImpl??globalThis.fetch,this._onProgress=e.onProgress}get modelsDir(){return this._modelsDir}pathFor(e){return ut(this._modelsDir,oe[e].filename)}descriptor(e){return oe[e]}urlFor(e){let t=oe[e];return this._baseUrl?`${this._baseUrl.replace(/\/+$/,"")}/${t.filename}`:t.url}has(e){let t=this.pathFor(e);if(!be(t))return!1;try{let n=it(t).size;return this._verify?n===oe[e].bytes:n>0}catch{return!1}}async evict(e){this._buffers.delete(e),this._status.set(e,"pending"),await Ve(this.pathFor(e)).catch(()=>{})}status(e){return this._status.get(e)??"pending"}statuses(){return new Map(this._status)}isLoaded(e){return this._buffers.has(e)}async ensure(e){let t=this._buffers.get(e);if(t)return t;let n=this._inflight.get(e);if(n)return n;let o=this.load(e).finally(()=>this._inflight.delete(e));return this._inflight.set(e,o),o}async preload(e){await Promise.all([...new Set(e)].map(t=>this.ensure(t)))}async load(e){let t=this.pathFor(e);if(this.has(e))return this._status.set(e,"ready"),this.readBuffer(e,t);let n=this.urlFor(e);this._status.set(e,"downloading"),be(Ae(t))||at(Ae(t),{recursive:!0});let o=`${t}.tmp.${Date.now()}`;try{let{buffer:s,totalBytes:i}=await this.download(e,n);if(s.byteLength===0)throw new Error(`Downloaded vision model '${e}' is empty (0 bytes).`);return this._verify&&this.verifyBytes(e,s,n),this._onProgress?.(e,s.byteLength,i||s.byteLength),await lt(o,s),await dt(o,t),this._buffers.set(e,s),this._status.set(e,"ready"),s}catch(s){throw this._status.set(e,"error"),be(o)&&await Ve(o).catch(()=>{}),s}}async download(e,t){for(let n=0;;n++){let o;try{let s=await this._fetch(t,{signal:this._timeoutMs?AbortSignal.timeout(this._timeoutMs):void 0});if(s.ok){let u=Number(s.headers.get("content-length")??0);return{buffer:new Uint8Array(await s.arrayBuffer()),totalBytes:u}}let i=new Error(`Failed to download vision model '${e}' from ${t}: HTTP ${s.status} ${s.statusText}`);if(s.status!==429&&s.status<500)throw i;o=i}catch(s){if(!(s instanceof TypeError))throw s;o=s}if(n>=this._retries)throw new Error(`Failed to download vision model '${e}' from ${t} after ${n+1} attempts: ${String(o)}`,{cause:o});await new Promise(s=>setTimeout(s,this._retryDelayMs*2**n))}}verifyBytes(e,t,n){let o=oe[e];if(t.byteLength!==o.bytes)throw new Error(`Vision model '${e}' from ${n} is ${t.byteLength} bytes, expected ${o.bytes}.`);let s=(0,Bt.createHash)("sha256").update(t).digest("hex");if(s!==o.sha256)throw new Error(`Vision model '${e}' from ${n} failed its SHA-256 check (got ${s}, expected ${o.sha256}).`)}async readBuffer(e,t){let n=await ct(t),o=new Uint8Array(n.buffer,n.byteOffset,n.byteLength);return this._buffers.set(e,o),o}clearMemoryCache(){this._buffers.clear()}};y();function Dt(){return{objects:[],rawDetections:[]}}function Ft(){return{people:[]}}function Ut(){let r=[];for(let e=0;e<17;e++)r.push({x:.5,y:.5,z:0,visibility:0});return r}y();var fe=class r{variant;confidence;classes;maskThreshold;featherRadius;_store;_provider;_sessions=new Map;_tensorScratch=new Map;_instancePass;constructor(e){this.variant=e.variant??"s",this.confidence=e.confidence??.3,this.classes=e.classes,this.maskThreshold=e.maskThreshold??.5,this.featherRadius=e.featherRadius,this._store=e.store??new we({modelsDir:e.modelsDir,baseUrl:e.baseUrl,timeoutMs:e.timeoutMs,onProgress:e.onProgress}),this._provider=e.provider??ft()}static create(e={}){return new r(e)}get modelsDir(){return this._store.modelsDir}get downloadStatus(){let e=new Map;for(let t of Object.keys(oe))e.set(t,"pending");for(let[t,n]of this._store.statuses())e.set(t,n);return e}modelKeyFor(e,t=1){return vt(e,this.variant,t)}async preload(e=["detect"]){let t=new Set;for(let n of e)n==="matte"?(t.add("selfie-square"),t.add("selfie-landscape")):t.add(this.modelKeyFor(n));await this._store.preload([...t]),await Promise.all([...t].map(n=>this.session(n)))}async detect(e){let t=await this.instancePass(e);return Ye({...t.outputs,masks:void 0},this.instanceDecodeOptions(e,t.transform)).detections}async segment(e){let t=await this.instancePass(e);return Ye(t.outputs,this.instanceDecodeOptions(e,t.transform))}async pose(e){let t=this.modelKeyFor("pose"),{outputs:n,transform:o}=await this.infer(t,e),s=me(n,"dets",t),i=me(n,"keypoints",t);return Ct({dets:s.data,keypoints:i.data,count:s.dims[1]??0,keypointStride:i.dims[3]??3},{confidence:this.confidence,transform:o,sourceWidth:e.width,sourceHeight:e.height})}async matte(e){let t=this.modelKeyFor("matte",e.width/e.height),[n,o]=oe[t].input,{outputs:s}=await this.infer(t,e),i=me(s,"alphas",t);return Ot(i.data,n,o,{sourceWidth:e.width,sourceHeight:e.height,maskThreshold:this.maskThreshold,...this.featherRadius!==void 0?{featherRadius:this.featherRadius}:{}})}close(){for(let e of this._sessions.values())e.then(t=>t.release()).catch(()=>{});this._sessions.clear(),this._instancePass=void 0,this._store.clearMemoryCache()}instancePass(e){if(this._instancePass?.frame===e.data)return this._instancePass.result;let t=this.modelKeyFor("segment"),n=this.infer(t,e).then(({outputs:o,transform:s})=>{let i=me(o,"dets",t),u=me(o,"masks",t);return{transform:s,outputs:{dets:i.data,labels:me(o,"labels",t).data,masks:u.data,count:i.dims[1]??0,maskHeight:u.dims[u.dims.length-2]??0,maskWidth:u.dims[u.dims.length-1]??0}}});return this._instancePass={frame:e.data,result:n},n.catch(()=>{this._instancePass?.result===n&&(this._instancePass=void 0)}),n}instanceDecodeOptions(e,t){return{confidence:this.confidence,classes:this.classes,classNames:xe,transform:t,sourceWidth:e.width,sourceHeight:e.height,maskThreshold:this.maskThreshold,...this.featherRadius!==void 0?{featherRadius:this.featherRadius}:{}}}async infer(e,t){let n=await this.session(e),o=oe[e],s=Pt(o.family,o.input),i=3*s.width*s.height,u=this._tensorScratch.get(e);(!u||u.length<i)&&(u=new Float32Array(i),this._tensorScratch.set(e,u));let{tensor:a,transform:c}=Rt(t,s,u);return{outputs:await n.run({name:"input",data:a,dims:[1,3,s.height,s.width]}),transform:c}}session(e){let t=this._sessions.get(e);return t||(t=this._store.ensure(e).then(n=>this._provider.createSession(n)).catch(n=>{throw this._sessions.delete(e),this._store.evict(e),n}),this._sessions.set(e,t)),t}};function me(r,e,t){let n=r[e];if(!n)throw new Error(`Vision model '${t}' returned no '${e}' output (got: ${Object.keys(r).join(", ")||"none"}). Expected the ${oe[t].source}.`);return n}y();function $e(r){let e;for(let t of r){if(!e){e=t;continue}let n=Ht(t),o=Ht(e);n!==o?n&&(e=t):(n?t.area>e.area:t.detectionIndex<e.detectionIndex)&&(e=t)}return e}function Ht(r){return r.category.toLowerCase()==="person"}function ve(r){let{mask:e,width:t,height:n}=r,o=t,s=n,i=-1,u=-1;for(let a=0;a<n;a++){let c=a*t;for(let h=0;h<t;h++)e[c+h]!==0&&(h<o&&(o=h),h>i&&(i=h),a<s&&(s=a),a>u&&(u=a))}return i<0?null:{x0:o,y0:s,x1:i,y1:u}}function zt(r,e=.5,t=2){let n=$e(r);if(!n)return;let o=ve(n);if(!o)return n;let s=Me(o),i=r.filter(c=>{if(c===n)return!1;let h=ve(c);return h!==null&&Me(h)<=s*t&&yn(o,h)>=e});if(i.length===0)return n;let u=n.mask.slice();for(let c of i){let h=c.mask;for(let m=0;m<u.length;m++)h[m]>u[m]&&(u[m]=h[m])}let a=0;for(let c=0;c<u.length;c++)a+=u[c];return a=Math.round(a/255),{...n,mask:u,area:a,coverage:a/(n.width*n.height)}}function Me(r){return(r.x1-r.x0+1)*(r.y1-r.y0+1)}function yn(r,e){let t=Math.min(r.x1,e.x1)-Math.max(r.x0,e.x0)+1,n=Math.min(r.y1,e.y1)-Math.max(r.y0,e.y0)+1;return t<=0||n<=0?0:t*n/Math.min(Me(r),Me(e))}y();y();var Pe=class{width;height;fovRad;focalDistance;constructor(e){this.width=e.width,this.height=e.height;let t=e.fov??60;this.fovRad=t*Math.PI/180,this.focalDistance=e.cameraDistance??this.height/2/Math.tan(this.fovRad/2)}projectNormalizedLandmark(e,t=0){let n=e.x*this.width,o=e.y*this.height,s=e.z*this.width+t,i=Math.min(s,this.focalDistance-10),u=this.focalDistance/(this.focalDistance-i);return{x:n,y:o,z:s,scale:Math.max(.1,u)}}projectWorldLandmark(e,t=2,n=800){let o=this.width/2,s=this.height/2,i=e.x*n,u=e.y*n,a=(e.z+t)*n,c=Math.min(a,this.focalDistance-10),h=this.focalDistance/(this.focalDistance-c);return{x:o+i*h,y:s+u*h,z:a,scale:Math.max(.1,h)}}};y();function We(r){if(r.boundingBox&&r.boundingBox.width>0&&r.boundingBox.height>0)return{originX:r.boundingBox.originX,originY:r.boundingBox.originY,width:r.boundingBox.width,height:r.boundingBox.height};let e=1/0,t=1/0,n=-1/0,o=-1/0,s=0;for(let i of r.keypoints)i.visibility>.1&&(s++,i.x<e&&(e=i.x),i.y<t&&(t=i.y),i.x>n&&(n=i.x),i.y>o&&(o=i.y));return s===0||e>=n||t>=o?{originX:r.boundingBox?.originX??0,originY:r.boundingBox?.originY??0,width:r.boundingBox?.width??0,height:r.boundingBox?.height??0}:{originX:e,originY:t,width:n-e,height:o-t}}function Yt(r,e,t=.15){if(r.length===0)return[];let n=e.filter(a=>a.category.toLowerCase()==="person"&&a.active);if(n.length===0)return[...r];let o=[];for(let a=0;a<r.length;a++){let c=r[a];if(c.trackId!==void 0)continue;let h=We(c),m=h.width<=1.05&&h.height<=1.05;for(let p of n){let T=m&&p.boundingBox.normalizedWidth>0?{originX:p.boundingBox.normalizedX,originY:p.boundingBox.normalizedY,width:p.boundingBox.normalizedWidth,height:p.boundingBox.normalizedHeight}:p.boundingBox,j=ae(h,T);j>=t&&o.push({personIdx:a,trackId:p.trackId,iou:j})}}o.sort((a,c)=>c.iou-a.iou);let s=new Set,i=new Set,u=new Map;for(let a of o)s.has(a.personIdx)||i.has(a.trackId)||(s.add(a.personIdx),i.add(a.trackId),u.set(a.personIdx,a.trackId));return r.length===1&&n.length===1&&!u.has(0)&&r[0].trackId===void 0&&u.set(0,n[0].trackId),r.map((a,c)=>{if(a.trackId!==void 0)return a;let h=u.get(c);return h!==void 0?{...a,trackId:h}:a})}var Re=class{objects;poseLandmarks;masks;segmentation;classes;poseLandmarksTensor;objectsTensor;masksTensor;histogramTensor;_totalFrames;_fps;_width;_height;_transformer;_stencilTexture;_poseCache=new Map;_objectCache=new Map;_maskCache=new Map;_matteCache=new Map;_poseLmCache=new Map;_trackCache=new Map;_categoryCache=new Map;_classCache=new Map;_maskTrackCache=new Map;_registeredSignals=new Set;constructor(e={}){this._totalFrames=e.totalFrames??120,this._fps=e.fps??24,this._width=e.width??1920,this._height=e.height??1080,this._transformer=new Pe({width:this._width,height:this._height,fov:e.cameraFov??60});let t=this,n=(f,l)=>{let M=rt(f,l);return this._registeredSignals.add(M),M},o=f=>this.getPoseResult(f).people[0]?.keypoints??Ut(),s=(f,l)=>{let M=v=>o(v)[f]??{x:.5,y:.5,z:0},x=n(v=>M(v.frame).x,{fps:this._fps,label:`${l}_x`}),w=n(v=>M(v.frame).y,{fps:this._fps,label:`${l}_y`}),O=n(v=>M(v.frame).z??0,{fps:this._fps,label:`${l}_z`}),U=n(v=>this._transformer.projectNormalizedLandmark(M(v.frame)).x,{fps:this._fps,label:`${l}_screenX`}),I=n(v=>this._transformer.projectNormalizedLandmark(M(v.frame)).y,{fps:this._fps,label:`${l}_screenY`});return{x,y:w,z:O,screenX:U,screenY:I}},i=f=>{let l=this._poseLmCache.get(f);return l||(l=s(f,Ge[f]??`kpt_${f}`),this._poseLmCache.set(f,l)),l},u={nose:i(k.NOSE),leftEye:i(k.LEFT_EYE),rightEye:i(k.RIGHT_EYE),leftEar:i(k.LEFT_EAR),rightEar:i(k.RIGHT_EAR),shoulder:i(k.LEFT_SHOULDER),leftShoulder:i(k.LEFT_SHOULDER),rightShoulder:i(k.RIGHT_SHOULDER),leftElbow:i(k.LEFT_ELBOW),rightElbow:i(k.RIGHT_ELBOW),leftWrist:i(k.LEFT_WRIST),rightWrist:i(k.RIGHT_WRIST),leftHip:i(k.LEFT_HIP),rightHip:i(k.RIGHT_HIP),leftKnee:i(k.LEFT_KNEE),rightKnee:i(k.RIGHT_KNEE),leftAnkle:i(k.LEFT_ANKLE),rightAnkle:i(k.RIGHT_ANKLE),get:i};this.poseLandmarks=new Proxy(u,{get(f,l,M){return typeof l=="string"&&/^\d+$/.test(l)?f.get(Number(l)):typeof l=="number"?f.get(l):Reflect.get(f,l,M)}});let a=(f,l="unknown")=>({trackId:f,category:l,score:0,boundingBox:{originX:this._width/2,originY:this._height/2,width:0,height:0,normalizedX:.5,normalizedY:.5,normalizedWidth:0,normalizedHeight:0},centerX:this._width/2,centerY:this._height/2,normalizedCenterX:.5,normalizedCenterY:.5,velocity:{vx:0,vy:0},speed:0,age:0,hits:0,active:!1,isCoasting:!1}),c=(f,l)=>{let M=n(I=>f(I.frame).sx,{fps:this._fps,label:`${l}_screenX`}),x=n(I=>f(I.frame).sy,{fps:this._fps,label:`${l}_screenY`}),w=n(I=>this._width>0?f(I.frame).sx/this._width:0,{fps:this._fps,label:`${l}_x`}),O=n(I=>this._height>0?f(I.frame).sy/this._height:0,{fps:this._fps,label:`${l}_y`}),U=n(()=>0,{fps:this._fps,label:`${l}_z`});return{x:w,y:O,z:U,screenX:M,screenY:x}},h=(f,l,M)=>{let x=F=>{let C=t.getPoseResult(F);if(C.people.length===0)return;let B=f(F),$=M??B.trackId,N=C.people.find(W=>W.trackId===$);if(N)return N;if(!B.active&&C.people.length>1)return;if(C.people.length===1)return C.people[0];let X,q=.1;for(let W of C.people){let H=We(W),J=H.width<=1.05&&H.height<=1.05&&B.boundingBox.normalizedWidth>0?{originX:B.boundingBox.normalizedX,originY:B.boundingBox.normalizedY,width:B.boundingBox.normalizedWidth,height:B.boundingBox.normalizedHeight}:B.boundingBox,Y=ae(H,J);Y>q&&(q=Y,X=W)}return X},w=n(F=>x(F.frame)?1:0,{fps:this._fps,label:`${l}_hasPose`}),O=(F,C)=>{let B=H=>{let J=x(H)?.keypoints[F];if(J&&J.visibility>.05)return{x:J.x,y:J.y,z:0};let Y=f(H);return{x:Y.normalizedCenterX,y:Y.normalizedCenterY,z:0}},$=n(H=>B(H.frame).x,{fps:this._fps,label:`${l}_${C}_x`}),N=n(H=>B(H.frame).y,{fps:this._fps,label:`${l}_${C}_y`}),X=n(H=>B(H.frame).z??0,{fps:this._fps,label:`${l}_${C}_z`}),q=n(H=>t._transformer.projectNormalizedLandmark(B(H.frame)).x,{fps:this._fps,label:`${l}_${C}_screenX`}),W=n(H=>t._transformer.projectNormalizedLandmark(B(H.frame)).y,{fps:this._fps,label:`${l}_${C}_screenY`});return{x:$,y:N,z:X,screenX:q,screenY:W}},U=new Map,I=F=>{let C=U.get(F);return C||(C=O(F,Ge[F]??`kpt_${F}`),U.set(F,C)),C},v=n(F=>{let C=F.frame,B=x(C);if(!B)return 0;let $=x(Math.max(0,C-1)),N=B.keypoints,X=$?.keypoints,q=N[k.RIGHT_WRIST],W=X?.[k.RIGHT_WRIST],H=0;if(q&&W&&q.visibility>.1&&W.visibility>.1){let re=(q.x-W.x)*this._width,D=(q.y-W.y)*this._height;H=Math.sqrt(re*re+D*D)*this._fps}let ne=N[k.LEFT_WRIST],J=X?.[k.LEFT_WRIST],Y=0;if(ne&&J&&ne.visibility>.1&&J.visibility>.1){let re=(ne.x-J.x)*this._width,D=(ne.y-J.y)*this._height;Y=Math.sqrt(re*re+D*D)*this._fps}return Math.max(H,Y)},{fps:this._fps,label:`${l}_wristSpeed`}),d=n(F=>{let C=x(F.frame);if(!C)return 0;let B=C.keypoints,$=B[k.LEFT_WRIST],N=B[k.LEFT_SHOULDER],X=B[k.RIGHT_WRIST],q=B[k.RIGHT_SHOULDER],W=$&&N&&$.visibility>.1&&N.visibility>.1&&$.y<N.y,H=X&&q&&X.visibility>.1&&q.visibility>.1&&X.y<q.y;return W||H?1:0},{fps:this._fps,label:`${l}_handRaised`}),R=n(F=>{let C=x(F.frame);if(!C)return 0;let B=C.keypoints,$=B[k.LEFT_SHOULDER],N=B[k.RIGHT_SHOULDER],X=B[k.LEFT_HIP],q=B[k.RIGHT_HIP];if(!$||!N||!X||!q)return 0;let W=($.x+N.x)/2*this._width,H=($.y+N.y)/2*this._height,ne=(X.x+q.x)/2*this._width,J=(X.y+q.y)/2*this._height,Y=W-ne,re=H-J;return Y===0&&re===0?0:Math.atan2(Y,-re)},{fps:this._fps,label:`${l}_bodyTiltAngle`}),z={hasPose:w,wristSpeed:v,handRaised:d,bodyTiltAngle:R,nose:I(k.NOSE),leftEye:I(k.LEFT_EYE),rightEye:I(k.RIGHT_EYE),leftEar:I(k.LEFT_EAR),rightEar:I(k.RIGHT_EAR),shoulder:I(k.LEFT_SHOULDER),leftShoulder:I(k.LEFT_SHOULDER),rightShoulder:I(k.RIGHT_SHOULDER),leftElbow:I(k.LEFT_ELBOW),rightElbow:I(k.RIGHT_ELBOW),leftWrist:I(k.LEFT_WRIST),rightWrist:I(k.RIGHT_WRIST),leftHip:I(k.LEFT_HIP),rightHip:I(k.RIGHT_HIP),leftKnee:I(k.LEFT_KNEE),rightKnee:I(k.RIGHT_KNEE),leftAnkle:I(k.LEFT_ANKLE),rightAnkle:I(k.RIGHT_ANKLE),get:I};return new Proxy(z,{get(F,C,B){return typeof C=="string"&&/^\d+$/.test(C)?F.get(Number(C)):typeof C=="number"?F.get(C):Reflect.get(F,C,B)}})},m=(f,l,M,x)=>{let w=d=>f(d).boundingBox,O=h(f,`${l}_pose`,x),U=(d,R,z)=>c(F=>({sx:R(w(F)),sy:z(w(F))}),`${l}_${d}`),I=U("center",d=>d.originX+d.width/2,d=>d.originY+d.height/2),v=n(d=>f(d.frame).speed,{fps:this._fps,label:`${l}_speed`});return{get trackId(){return x??f(0).trackId},get category(){return M??f(0).category},bounds:{x:n(d=>w(d.frame).normalizedX,{fps:this._fps,label:`${l}_normX`}),y:n(d=>w(d.frame).normalizedY,{fps:this._fps,label:`${l}_normY`}),width:n(d=>w(d.frame).normalizedWidth,{fps:this._fps,label:`${l}_normWidth`}),height:n(d=>w(d.frame).normalizedHeight,{fps:this._fps,label:`${l}_normHeight`}),screenX:n(d=>w(d.frame).originX,{fps:this._fps,label:`${l}_screenX`}),screenY:n(d=>w(d.frame).originY,{fps:this._fps,label:`${l}_screenY`}),screenWidth:n(d=>w(d.frame).width,{fps:this._fps,label:`${l}_screenWidth`}),screenHeight:n(d=>w(d.frame).height,{fps:this._fps,label:`${l}_screenHeight`}),aspectRatio:n(d=>{let R=w(d.frame);return R.height>0?R.width/R.height:1},{fps:this._fps,label:`${l}_aspectRatio`}),area:n(d=>{let R=w(d.frame);return R.width*R.height},{fps:this._fps,label:`${l}_area`})},anchors:{topLeft:U("topLeft",d=>d.originX,d=>d.originY),topCenter:U("topCenter",d=>d.originX+d.width/2,d=>d.originY),topRight:U("topRight",d=>d.originX+d.width,d=>d.originY),centerLeft:U("centerLeft",d=>d.originX,d=>d.originY+d.height/2),center:I,centerRight:U("centerRight",d=>d.originX+d.width,d=>d.originY+d.height/2),bottomLeft:U("bottomLeft",d=>d.originX,d=>d.originY+d.height),bottomCenter:U("bottomCenter",d=>d.originX+d.width/2,d=>d.originY+d.height),bottomRight:U("bottomRight",d=>d.originX+d.width,d=>d.originY+d.height)},kinematics:{vx:n(d=>f(d.frame).velocity.vx,{fps:this._fps,label:`${l}_vx`}),vy:n(d=>f(d.frame).velocity.vy,{fps:this._fps,label:`${l}_vy`}),speed:v,acceleration:v.velocity(1),headingRad:n(d=>{let R=f(d.frame).velocity;return Math.atan2(R.vy,R.vx)},{fps:this._fps,label:`${l}_headingRad`}),headingDeg:n(d=>{let R=f(d.frame).velocity;return Math.atan2(R.vy,R.vx)*180/Math.PI},{fps:this._fps,label:`${l}_headingDeg`})},confidence:n(d=>f(d.frame).score,{fps:this._fps,label:`${l}_score`}),active:n(d=>f(d.frame).active?1:0,{fps:this._fps,label:`${l}_active`}),isCoasting:n(d=>f(d.frame).isCoasting?1:0,{fps:this._fps,label:`${l}_isCoasting`}),age:n(d=>f(d.frame).age,{fps:this._fps,label:`${l}_age`}),pose:O,center:I,topCenter:this.__pending,bottomCenter:I,topLeft:I,bottomLeft:I}},p=(f,l,M,x)=>{let w=m(f,l,M,x),O=w.anchors;return Object.assign(w,{topCenter:O.topCenter,bottomCenter:O.bottomCenter,topLeft:O.topLeft,bottomLeft:O.bottomLeft}),w},T=f=>{let l=this._trackCache.get(f);return l||(l=p(M=>this.getObjectResult(M).objects.find(x=>x.trackId===f)??a(f),`track_${f}`,void 0,f),this._trackCache.set(f,l)),l},j=(f,l=0)=>{let M=`${f.toLowerCase()}_${l}`,x=this._categoryCache.get(M);return x||(x=p(w=>this.getObjectResult(w).objects.filter(I=>I.category.toLowerCase()===f.toLowerCase()&&I.active)[l]??a(0,f),`cat_${f}_${l}`,f),this._categoryCache.set(M,x)),x},P=p(f=>{let l=this.getObjectResult(f);if(l.objects.length===0)return a(0);let M=l.objects[0];for(let x=1;x<l.objects.length;x++)l.objects[x].score>M.score&&(M=l.objects[x]);return M},"primary_object"),E=f=>{let l=new Set;for(let M of this.getObjectResult(f).objects)M.active&&l.add(M.category);return Array.from(l).sort()},g=f=>{let l=f.toLowerCase(),M=this._classCache.get(l);return M||(M={count:n(x=>this.getObjectResult(x.frame).objects.filter(w=>w.active&&w.category.toLowerCase()===l).length,{fps:this._fps,label:`class_${l}_count`}),maxConfidence:n(x=>{let w=0;for(let O of this.getObjectResult(x.frame).objects)O.active&&O.category.toLowerCase()===l&&O.score>w&&(w=O.score);return w},{fps:this._fps,label:`class_${l}_maxConf`}),present:n(x=>this.getObjectResult(x.frame).objects.some(w=>w.active&&w.category.toLowerCase()===l)?1:0,{fps:this._fps,label:`class_${l}_present`}),primary:j(f)},this._classCache.set(l,M),M)};this.classes={get:g,get names(){return E(te.value)},histogram:{get:f=>t.getClassHistogramTensor(f?.frame??te.value),get value(){return t.getClassHistogramTensor(te.value)}}},this.objects={get:T,byCategory:j,primary:P,count:n(f=>this.getObjectResult(f.frame).objects.filter(l=>l.active).length,{fps:this._fps,label:"tracked_objects_count"}),hasCategory:f=>g(f).present,getActiveTracks:f=>this.getObjectResult(f).objects.filter(l=>l.active),get detectedCategories(){return E(te.value)}};let S=(f,l)=>this.getMaskResult(f).find(M=>M.trackId===l),b=f=>$e(this.getMaskResult(f)),V=(f,l)=>{let M=x=>{let w=f(x);if(!(!w||w.trackId===void 0))return this.getObjectResult(x).objects.find(O=>O.trackId===w.trackId)};return{get trackId(){return f(te.value)?.trackId??0},get category(){return f(te.value)?.category??"unknown"},area:n(x=>f(x.frame)?.area??0,{fps:this._fps,label:`${l}_area`}),coverage:n(x=>f(x.frame)?.coverage??0,{fps:this._fps,label:`${l}_coverage`}),solidity:n(x=>{let w=f(x.frame),O=M(x.frame);if(!w||!O)return 0;let U=O.boundingBox.width*O.boundingBox.height;return U>0?w.area/U:0},{fps:this._fps,label:`${l}_solidity`}),bboxFill:n(x=>{let w=f(x.frame);if(!w||w.width*w.height===0)return 0;let O=M(x.frame);return O?O.boundingBox.width*O.boundingBox.height/(w.width*w.height):0},{fps:this._fps,label:`${l}_bboxFill`})}};this.masks={get:f=>{let l=this._maskTrackCache.get(f);return l||(l=V(M=>S(M,f),`mask_${f}`),this._maskTrackCache.set(f,l)),l},subject:V(b,"subject"),count:n(f=>new Set(this.getMaskResult(f.frame).map(l=>l.trackId??-1)).size,{fps:this._fps,label:"mask_count"})},this.segmentation={humanSilhouette:this.masks.subject,subject:this.masks.subject,instanceMasks:this.masks,matte:{coverage:n(f=>t.getMatteResult(f.frame)?.coverage??0,{fps:this._fps,label:"matte_coverage"}),at:f=>t.getMatteResult(f)},get stencilTexture(){return t._stencilTexture}},this.poseLandmarksTensor={get:f=>t.getPoseLandmarksTensor(f?.frame??te.value),get value(){return t.getPoseLandmarksTensor(te.value)}},this.objectsTensor={get:f=>t.getObjectsTensor(f?.frame??te.value),get value(){return t.getObjectsTensor(te.value)}},this.masksTensor={get:f=>t.getMasksTensor(f?.frame??te.value),get value(){return t.getMasksTensor(te.value)}},this.histogramTensor={get:f=>t.getClassHistogramTensor(f?.frame??te.value),get value(){return t.getClassHistogramTensor(te.value)}}}setStencilTexture(e){this._stencilTexture=e}get stencilTexture(){return this._stencilTexture}latestAtOrBefore(e,t,n=8){let o=this.clamp(t),s=Math.max(0,o-n);for(let i=o;i>=s;i--){let u=e.get(i);if(u!==void 0)return u}}invalidateSignals(){for(let e of this._registeredSignals)e.invalidate()}setPoseResult(e,t){this._poseCache.set(this.clamp(e),t),this.invalidateSignals()}getPoseResult(e){return this.latestAtOrBefore(this._poseCache,e)??Ft()}setObjectResult(e,t){let n="objects"in t?t:{objects:t,rawDetections:[]};this._objectCache.set(this.clamp(e),{objects:n.objects,rawDetections:n.rawDetections??[]}),this.invalidateSignals()}getObjectResult(e){return this.latestAtOrBefore(this._objectCache,e)??Dt()}setMaskResult(e,t){this._maskCache.set(this.clamp(e),t),this.invalidateSignals()}getMaskResult(e){return this.latestAtOrBefore(this._maskCache,e)??[]}setMatteResult(e,t){this._matteCache.set(this.clamp(e),t),this.invalidateSignals()}getMatteResult(e){return this.latestAtOrBefore(this._matteCache,e)}summary(e=te.value){let t=this.clamp(e),n=this.getObjectResult(t),o=n.objects.map(u=>({trackId:u.trackId,category:u.category,score:u.score,center:[u.centerX,u.centerY],speed:u.speed,active:u.active})),s=new Set;for(let u of n.objects)u.active&&s.add(u.category);let i={};for(let u of this.getMaskResult(t))i[u.category]=(i[u.category]??0)+1;return{frame:t,objects:o,classes:Array.from(s).sort(),masks:i}}getPoseLandmarksTensor(e){let n=this.getPoseResult(e).people[0]?.keypoints??[],o=new Float32Array(51);for(let s=0;s<17;s++)o[s*3]=n[s]?.x??.5,o[s*3+1]=n[s]?.y??.5,o[s*3+2]=n[s]?.visibility??0;return{data:o,shape:[17,3],dtype:"float32"}}getObjectsTensor(e,t=16){let n=this.getObjectResult(e),o=new Float32Array(t*8),s=Math.min(t,n.objects.length);for(let i=0;i<s;i++){let u=n.objects[i],a=i*8,c=0;for(let h=0;h<u.category.length;h++)c=c*31+u.category.charCodeAt(h)&65535;o[a]=u.active?1:0,o[a+1]=c,o[a+2]=u.centerX,o[a+3]=u.centerY,o[a+4]=u.boundingBox.width,o[a+5]=u.boundingBox.height,o[a+6]=u.velocity.vx,o[a+7]=u.velocity.vy}return{data:o,shape:[t,8],dtype:"float32"}}getMasksTensor(e,t=16){let n=this.getMaskResult(e),o=new Float32Array(t*2),s=Math.min(t,n.length);for(let i=0;i<s;i++){let u=n[i];o[i*2]=u.coverage;let a=this.getObjectResult(e).objects.find(h=>h.trackId===u.trackId),c=a?a.boundingBox.width*a.boundingBox.height:0;o[i*2+1]=c>0?u.area/c:0}return{data:o,shape:[t,2],dtype:"float32"}}getClassHistogramTensor(e,t=80){let n=new Float32Array(t);for(let o of this.getObjectResult(e).objects)if(o.active){let s=xn.get(o.category.toLowerCase());s!==void 0&&(n[s]+=1)}return{data:n,shape:[t],dtype:"float32"}}clamp(e){return Math.max(0,Math.min(this._totalFrames-1,Math.round(e)))}};var xn=new Map(xe.map((r,e)=>[r,e]));y();function Nt(r,e,t={}){let n=t.offsetX??0,o=t.offsetY??0,s=t.offsetZ??0;if(!e||typeof e!="object")return r;if("screenX"in e&&e.screenX&&typeof e.screenX=="object"){let i=e;r.x=n!==0?i.screenX.add(n):i.screenX,r.y=o!==0?i.screenY.add(o):i.screenY,r.z=s!==0?i.z.add(s):i.z}else if("x"in e&&typeof e.x=="object"&&e.x!==null){let i=e;r.x=n!==0?i.x.add(n):i.x,r.y=o!==0?i.y.add(o):i.y,r.z=s!==0?i.z.add(s):i.z}else{let i=e;r.x=(i.screenX??i.x)+n,r.y=(i.screenY??i.y)+o,r.z=(i.z??0)+s}return r}function os(r,e,t={}){if(!e||typeof e!="object")return r;if("anchors"in e&&e.anchors){let n=e,o=t.anchor??(t.matchWidth||t.matchHeight?"topLeft":"center"),s=n.anchors[o]??n.center,i=s;return t.smoothFrames&&t.smoothFrames>1&&(i={x:s.x.smooth(t.smoothFrames),y:s.y.smooth(t.smoothFrames),z:s.z,screenX:s.screenX.smooth(t.smoothFrames),screenY:s.screenY.smooth(t.smoothFrames)}),t.matchWidth&&(r.width=t.smoothFrames&&t.smoothFrames>1?n.bounds.screenWidth.smooth(t.smoothFrames):n.bounds.screenWidth),t.matchHeight&&(r.height=t.smoothFrames&&t.smoothFrames>1?n.bounds.screenHeight.smooth(t.smoothFrames):n.bounds.screenHeight),t.hideWhenLost&&(r.opacity=n.active),Nt(r,i,t)}return Nt(r,e,t)}y();function kn(r){let e=[];return r.enableDetection===!0&&e.push("detect"),r.enableSegmentation===!0&&e.push("segment"),r.enablePose===!0&&e.push("pose"),r.enableMatte===!0&&e.push("matte"),e.length>0?e:["detect"]}var Ke=class r{id;kind="vision";source;config;vision;_runner;_runnerOptions;constructor(e,t={},n={},o={}){this.id=`vision-${Math.random().toString(36).slice(2,9)}`,this.source=e,this.config=t,this._runnerOptions=o,this.vision=new Re({...n,config:t})}runner(){if(!this._runner){let{variant:e,confidence:t,classes:n,modelsDir:o,baseUrl:s,maskThreshold:i,featherRadius:u}=this.config;this._runner=fe.create({...this._runnerOptions,...e!==void 0?{variant:e}:{},...t!==void 0?{confidence:t}:{},...n!==void 0?{classes:n}:{},...o!==void 0?{modelsDir:o}:{},...s!==void 0?{baseUrl:s}:{},...i!==void 0?{maskThreshold:i}:{},...u!==void 0?{featherRadius:u}:{}})}return this._runner}async ready(){let e=this.runner();return await e.preload(kn(this.config)),e}close(){this._runner?.close(),this._runner=void 0}static attach(e,t={},n={}){let o=new r(e,t,n),s=o.vision;return Object.defineProperties(s,{node:{value:o.toNode(),enumerable:!0},ready:{value:()=>o.ready()},runner:{value:()=>o.runner()},close:{value:()=>o.close()}}),s}toNode(){return{id:this.id,kind:"vision",source:this.source,config:this.config}}};y();var qe=new Uint8Array(0),Xt=new Uint32Array(0);function Tn(r,e,t){qe.length<r.length&&(qe=new Uint8Array(r.length),Xt=new Uint32Array(r.length));let n=qe,o=Xt,s=0,i=0;for(let u=1;u<=r.length;u++)(u===r.length||r[u]!==r[i])&&(n[s]=r[i],o[s]=u-i,s++,i=u);return{width:e,height:t,values:n.slice(0,s),lengths:o.slice(0,s)}}function _n(r){let e=new Uint8Array(r.width*r.height),t=0;for(let n=0;n<r.values.length;n++){let o=t+r.lengths[n];r.values[n]!==0&&e.fill(r.values[n],t,o),t=o}return e}function Gt(r){return r.values.byteLength+r.lengths.byteLength}function Je(r){let{mask:e,...t}=r;return{...t,rle:Tn(e,r.width,r.height)}}function Qe(r){let{rle:e,...t}=r;return{...t,mask:_n(e)}}function Ze(r){let e=512+r.detections.length*128+r.objects.length*256;for(let t of r.masks??[])e+=Gt(t.rle);return r.subject&&(e+=Gt(r.subject.mask.rle)),e}var Ie=class{constructor(e=256*1024*1024){this.maxBytes=e}maxBytes;entries=new Map;bytes=0;get(e,t){let n=`${e}#${t}`,o=this.entries.get(n);return o&&(this.entries.delete(n),this.entries.set(n,o)),o}set(e,t,n){let o=`${e}#${t}`,s=this.entries.get(o);s&&(this.bytes-=Ze(s),this.entries.delete(o)),this.entries.set(o,n),this.bytes+=Ze(n);for(let[i,u]of this.entries){if(this.bytes<=this.maxBytes)break;this.entries.delete(i),this.bytes-=Ze(u)}}clear(){this.entries.clear(),this.bytes=0}get size(){return this.entries.size}};y();var Sn=`
61
61
  struct Params {
62
62
  mode: u32, // 0 matte, 1 mask, 2 crop
63
63
  _pad: u32,
@@ -95,4 +95,4 @@ struct VSOut {
95
95
  }
96
96
  return textureSampleLevel(picture, samp, uv, 0.0) * m;
97
97
  }
98
- `,Ce=class{constructor(e,t){this.device=e;let n=e.createShaderModule({label:"vision_matte_composite",code:Sn});this.pipeline=e.createRenderPipeline({label:"vision_matte_composite",layout:"auto",vertex:{module:n,entryPoint:"vs"},fragment:{module:n,entryPoint:"fs",targets:[{format:t}]},primitive:{topology:"triangle-list"}}),this.sampler=e.createSampler({magFilter:"linear",minFilter:"linear"})}device;pipeline;sampler;uniforms=[];uniformIndex=0;masks=new Map;uploadMask(e,t,n,o){let s=this.masks.get(e);(!s||s.width!==n||s.height!==o)&&(s?.destroy(),s=this.device.createTexture({label:`vision_mask_${e}`,size:[n,o],format:"r8unorm",usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST}),this.masks.set(e,s));let i=Math.ceil(n/256)*256,u=t;if(i!==n){u=new Uint8Array(i*o);for(let a=0;a<o;a++)u.set(t.subarray(a*n,(a+1)*n),a*i)}return this.device.queue.writeTexture({texture:s},u.buffer,{offset:u.byteOffset,bytesPerRow:i,rowsPerImage:o},{width:n,height:o}),s}draw(e,t,n,o,s,i){let u=o.width,a=o.height,c=new Float32Array(8),h=new Uint32Array(c.buffer);h[0]=s==="matte"?0:s==="mask"?1:2,s==="crop"&&i?(c[2]=i.x0/u,c[3]=i.y0/a,c[4]=(i.x1+1)/u,c[5]=(i.y1+1)/a):(c[2]=0,c[3]=0,c[4]=1,c[5]=1,s==="crop"&&(h[0]=0)),this.uniformIndex>=this.uniforms.length&&this.uniforms.push(this.device.createBuffer({size:c.byteLength,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}));let m=this.uniforms[this.uniformIndex];this.uniformIndex=(this.uniformIndex+1)%16,this.device.queue.writeBuffer(m,0,c);let p=this.device.createBindGroup({layout:this.pipeline.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:m}},{binding:1,resource:n.createView()},{binding:2,resource:o.createView()},{binding:3,resource:this.sampler}]}),T=e.beginRenderPass({label:"vision_matte_composite",colorAttachments:[{view:t,loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});T.setPipeline(this.pipeline),T.setBindGroup(0,p),T.draw(3),T.end()}};var Oe=null,et=null,Le=null,$t=null,Wt=new Ie,Kt=new Map,wn=new Map,vn=new Map,qt=new Map,tt=new WeakMap,de=new Map,nt=new Map,Mn=3;function Zt(r,e,t,n,o,s){let i=r.get(t);return(!i||i.width!==n.width||i.height!==n.height||i.format!==n.format)&&(i?.destroy(),i=e.createTexture({size:[n.width,n.height],format:n.format,usage:o,label:s}),r.set(t,i)),i}var Pn=(r,e,t)=>Zt(wn,r,e,t,GPUTextureUsage.COPY_DST|GPUTextureUsage.TEXTURE_BINDING,"vision_held_frame"),Rn=(r,e,t)=>Zt(vn,r,e,t,GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC,"vision_matte");function In(r,e,t,n,o){let s=e;return JSON.stringify([r,s?.operation?.id??s?.id??null,n,o,t.mode??"passthrough",t.variant,t.confidence,t.classes,t.maskThreshold,t.featherRadius,t.matteSource,t.keyBackground===!0,t.maxMissedFrames])}function Cn(r,e,t){let n=r.backgroundKeyThreshold;return typeof n=="number"?n:typeof n?.get=="function"?Number(n.get({frame:e,fps:t})):typeof n?._value=="number"?Number(n._value):70}function On(r,e,t){if(r)return nt.set(e,{mask:r,frame:t}),r;let n=nt.get(e);if(n&&t-n.frame<=Mn)return n.mask}function Ln(r){let e={variant:r.variant,confidence:r.confidence,classes:r.classes,maskThreshold:r.maskThreshold,featherRadius:r.featherRadius,modelsDir:r.modelsDir,baseUrl:r.baseUrl},t=JSON.stringify(e);return Oe?.key!==t&&(Oe?.runner.close(),Oe={key:t,runner:fe.create(e)}),Oe.runner}function En(r,e){let t=qt.get(r);return t||(t=new ue({maxMissedFrames:e.maxMissedFrames??15}),qt.set(r,t)),t}function jn(r,e,t){return e<=0||t<=0?r:{people:r.people.map(n=>({...n,keypoints:n.keypoints.map(o=>({x:o.x/e,y:o.y/t,visibility:o.visibility}))}))}}function Vn(r,e){return r.map(t=>{let{cx:n,cy:o}=Fn(t),s=null;for(let i of e){let u=i.centerX-n,a=i.centerY-o,c=u*u+a*a;(!s||c<s.distance)&&(s={trackId:i.trackId,distance:c})}return s?{...t,trackId:s.trackId}:t})}function An(r,e,t){let n=e*t,o=new Uint8Array(n),s=new Int32Array(n),i=0,u=c=>{o[c]||r[c]>0||(o[c]=1,s[i++]=c)};for(let c=0;c<e;c++)u(c),u((t-1)*e+c);for(let c=0;c<t;c++)u(c*e),u(c*e+e-1);let a=0;for(;a<i;){let c=s[a++],h=c%e,m=c+1;h+1<e&&!o[m]&&r[m]===0&&(o[m]=1,s[i++]=m),m=c-1,h>0&&!o[m]&&r[m]===0&&(o[m]=1,s[i++]=m),m=c+e,m<n&&!o[m]&&r[m]===0&&(o[m]=1,s[i++]=m),m=c-e,m>=0&&!o[m]&&r[m]===0&&(o[m]=1,s[i++]=m)}for(let c=0;c<n;c++)r[c]===0&&o[c]===0&&(r[c]=255)}function Bn(r,e,t,n=2){if(n<=0)return r;let o=new Uint8Array(e*t),s=new Uint8Array(e*t),i=2*n+1;for(let a=0;a<t;a++){let c=a*e,h=0;for(let m=-n;m<=n;m++){let p=Math.max(0,Math.min(e-1,m));h+=r[c+p]}for(let m=0;m<e;m++){o[c+m]=Math.round(h/i);let p=Math.max(0,m-n),T=Math.min(e-1,m+n+1);h+=r[c+T]-r[c+p]}}let u=new Float64Array(e);for(let a=-n;a<=n;a++){let c=Math.max(0,Math.min(t-1,a))*e;for(let h=0;h<e;h++)u[h]+=o[c+h]}for(let a=0;a<t;a++){let c=a*e,h=Math.max(0,a-n)*e,m=Math.min(t-1,a+n+1)*e;for(let p=0;p<e;p++)s[c+p]=Math.round(u[p]/i),u[p]+=o[m+p]-o[h+p]}return s}function Dn(r,e,t,n,o,s){let i=0,u=0,a=0,c=0,h=(g,_)=>{let b=_*e+g;if(r[b])return;let V=b*4;i+=n[V],u+=n[V+1],a+=n[V+2],c++};for(let g=0;g<e;g+=4)h(g,0),h(g,t-1);for(let g=0;g<t;g+=4)h(0,g),h(e-1,g);if(c===0)return r;i/=c,u/=c,a/=c;let m=e*t,p=new Uint8Array(m);for(let g=0,_=0;g<m;g++,_+=4)p[g]=Math.max(Math.abs(n[_]-i),Math.abs(n[_+1]-u),Math.abs(n[_+2]-a))>o?1:0;let T=new Int32Array(m),j=0;for(let g=0;g<m;g++)r[g]>0&&(p[g]&&(r[g]=255),T[j++]=g);let P=0;for(;P<j;){let g=T[P++],_=g%e,b=g+1;_+1<e&&r[b]!==255&&p[b]&&(r[b]=255,T[j++]=b),b=g-1,_>0&&r[b]!==255&&p[b]&&(r[b]=255,T[j++]=b),b=g+e,b<m&&r[b]!==255&&p[b]&&(r[b]=255,T[j++]=b),b=g-e,b>=0&&r[b]!==255&&p[b]&&(r[b]=255,T[j++]=b)}An(r,e,t);let E=s!==void 0&&s>0?Math.max(1,Math.min(8,Math.round(s*50))):2;return Bn(r,e,t,E)}function Fn(r){let{mask:e,width:t,height:n}=r,o=0,s=0,i=0;for(let u=0;u<n;u++){let a=u*t;for(let c=0;c<t;c++)e[a+c]>0&&(o+=c,s+=u,i++)}return i===0?{cx:0,cy:0}:{cx:o/i,cy:s/i}}var Jt=async r=>{let{ctx:e,encoder:t,pass:n,targetView:o,targetWidth:s,targetHeight:i,props:u,drawChild:a}=r,{virtualMedia:c}=u,h=c?.operation;if(h?.op!=="Vision")return;let m=h;n.end();let p=c?.children?.[0];if(!p)return;let T=m.effect,j=T!=null,P=c?.id??h?.id??`${s}x${i}_${m.mode}_${m.variant}_${m.keyBackground}_${m.backgroundKeyThreshold}`,E=`vision-${P}`,g=j?tt.get(T):de.get(E);g&&(g.width!==s||g.height!==i)&&(g.destroy(),g=void 0,j?tt.delete(T):de.delete(E));let _=g!==void 0;if(!g&&(g=e.device.createTexture({size:[s,i],format:e.renderer.format,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC,label:"vision_child_persistent"}),j?tt.set(T,g):de.set(E,g),de.size>4)){let D=de.keys().next().value;D&&D!==E&&(de.get(D)?.destroy(),de.delete(D))}let b=u.frame??0,V=u.compositionFrame??b,f=u.fps??24,l=m.mode??"passthrough",M=l==="mask"||l==="matte"||l==="crop",x=m.visionBundle??c.visionBundle,w=m.enableDetection!==!1||l==="boxes"||l==="tracking",O=m.enableSegmentation===!0||M&&m.matteSource!=="selfie",U=m.enableMatte===!0||M&&m.matteSource==="selfie",I=m.enablePose===!0||l==="skeleton",v=!U&&!I&&(w||O),d=v?In(P,p,m,s,i):"",R=D=>m.keyBackground===!0?Cn(m,V-(b-D),f):void 0,z=D=>{if(!v||D===void 0)return;let G=Wt.get(d,D);if(!(!G||G.keyThreshold!==R(D))&&!(O&&x&&!G.masks))return G},F=_?Kt.get(P):void 0,C=z(b),B=C!==void 0;C||(C=z(F));let $;M&&_&&!B&&($=Pn(e.device,P,g),t.copyTextureToTexture({texture:g},{texture:$},[s,i,1]));let N=null;if(_&&!C){let G=s*4,Z=Math.ceil(G/256)*256,Q=Z*i,ee=e.device.createBuffer({size:Q,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ,label:"vision_frame_staging"}),K=e.device.createCommandEncoder({label:"vision_readback_encoder"});K.copyTextureToBuffer({texture:g},{buffer:ee,bytesPerRow:Z,rowsPerImage:i},[s,i,1]),e.device.queue.submit([K.finish()]),await ee.mapAsync(GPUMapMode.READ);let he=new Uint8Array(ee.getMappedRange());if(N=new Uint8ClampedArray(s*i*4),Z===G)N.set(he.subarray(0,N.length));else for(let ge=0;ge<i;ge++)N.set(he.subarray(ge*Z,ge*Z+G),ge*G);ee.unmap(),ee.destroy()}let X=g.createView();e.renderer.beginFrame(t,X,{r:0,g:0,b:0,a:0},s,i,"clear").end(),await a(p,{...u},X,g,s,i),Kt.set(P,b);let W=[],H=[],ne,J,Y;if(C)W=C.objects,w&&x?.setObjectResult(b,{objects:C.objects,rawDetections:C.detections}),O&&x&&C.masks&&(H=C.masks.map(Qe),x.setMaskResult(b,H)),C.subject&&(Y=Qe(C.subject.mask),nt.set(P,{mask:Y,frame:b}));else if(N){let D=Ln(m),G={data:N,width:s,height:i},Z=[];if(w){Z=await D.detect(G);let Q=En(P,m);b===0&&Q.reset(),W=Q.update(Z,b,f),x?.setObjectResult(b,{objects:W,rawDetections:Z})}if(O){let Q=await D.segment(G);H=Vn(Q.masks,W),x?.setMaskResult(b,H)}if(U&&(ne=await D.matte(G),x?.setMatteResult(b,ne)),I){let Q=await D.pose(G),ee=jn(Q,G.width,G.height);J={people:Yt(ee.people,W)},x?.setPoseResult(b,J)}if(M){Y=On(m.matteSource==="selfie"?Un(ne):zt(H.length>0?H:x?.getMaskResult(b)??[]),P,b);let Q=R(F??b);Y&&Q!==void 0&&(Y={...Y,mask:Dn(Y.mask,Y.width,Y.height,N,Q,m.featherRadius)})}v&&F!==void 0&&Wt.set(d,F,{detections:Z,objects:W,masks:x?H.map(Je):null,subject:Y?{mask:Je(Y)}:null,keyThreshold:R(F)})}if(M){let D=B?g:$;if(!Y||!D){e.renderer.beginFrame(t,o,{r:0,g:0,b:0,a:0},s,i,"clear").end();return}(!Le||$t!==e.renderer.format)&&(Le=new Ce(e.device,e.renderer.format),$t=e.renderer.format);let G=Le.uploadMask(P,Y.mask,Y.width,Y.height),Z=Rn(e.device,P,g);Le.draw(t,Z.createView(),D,G,l,l==="crop"?ve(Y)??void 0:void 0),x?.setStencilTexture(Z);let Q=e.renderer.beginFrame(t,o,{r:0,g:0,b:0,a:0},s,i,"clear");e.renderer.drawTexture(Q,Z,{x:0,y:0,width:s,height:i}),Q.end();return}if(l==="skeleton"){et||(et=new _e(e.device));let G=(x?.getPoseResult(b)??J)?.people[0];if(G&&G.keypoints.length>0){let Z=et.renderToTexture(G.keypoints,{width:s,height:i}),Q=e.renderer.beginFrame(t,o,{r:0,g:0,b:0,a:0},s,i,"clear");e.renderer.drawTexture(Q,Z,{x:0,y:0,width:s,height:i}),Q.end();return}}if(l==="boxes"||l==="tracking"){let D=e.renderer.beginFrame(t,o,{r:0,g:0,b:0,a:0},s,i,"clear");e.renderer.drawTexture(D,g,{x:0,y:0,width:s,height:i});let G=W.length>0?W:x?.getObjectResult(b).objects??[];if(G.length>0){let Z="#38bdf8";for(let ee of G){if(!ee.active)continue;let K=ee.boundingBox;e.renderer.drawRect(D,{x:K.originX,y:K.originY,width:K.width,height:2},Z),e.renderer.drawRect(D,{x:K.originX,y:K.originY+K.height-2,width:K.width,height:2},Z),e.renderer.drawRect(D,{x:K.originX,y:K.originY,width:2,height:K.height},Z),e.renderer.drawRect(D,{x:K.originX+K.width-2,y:K.originY,width:2,height:K.height},Z);let he=Math.min(16,K.width/4,K.height/4);e.renderer.drawRect(D,{x:K.originX,y:K.originY,width:he,height:4},"#ffffff"),e.renderer.drawRect(D,{x:K.originX,y:K.originY,width:4,height:he},"#ffffff"),l==="tracking"&&e.renderer.drawRect(D,{x:ee.centerX-3,y:ee.centerY-3,width:6,height:6},"#ef4444",3)}}D.end();return}let re=e.renderer.beginFrame(t,o,{r:0,g:0,b:0,a:0},s,i,"clear");e.renderer.drawTexture(re,g,{x:0,y:0,width:s,height:i}),re.end()};function Un(r){if(!r||r.coverage<=0)return;let e=Math.round(r.coverage*r.width*r.height);return{category:"person",mask:r.mask,width:r.width,height:r.height,area:e,coverage:r.coverage,detectionIndex:-1}}var Gs=st({WebGPURenderer:Jt});export{ht as a,gt as b,pt as c,Jn as d,tn as e,nr as f,sr as g,lr as h,dr as i,nn as j,Tt as k,kt as l,fr as m,rn as n,on as o,sn as p,an as q,cn as r,ln as s,Be as t,_t as u,dn as v,De as w,Pr as x,St as y,Er as z,jr as A,Br as B,Te as C,xe as D,ue as E,Gr as F,k as G,Ge as H,Et as I,_e as J,jt as K,At as L,fe as M,Pe as N,Re as O,Nt as P,os as Q,Ke as R,Gs as S};
98
+ `,Ce=class{constructor(e,t){this.device=e;let n=e.createShaderModule({label:"vision_matte_composite",code:Sn});this.pipeline=e.createRenderPipeline({label:"vision_matte_composite",layout:"auto",vertex:{module:n,entryPoint:"vs"},fragment:{module:n,entryPoint:"fs",targets:[{format:t}]},primitive:{topology:"triangle-list"}}),this.sampler=e.createSampler({magFilter:"linear",minFilter:"linear"})}device;pipeline;sampler;uniforms=[];uniformIndex=0;masks=new Map;uploadMask(e,t,n,o){let s=this.masks.get(e);(!s||s.width!==n||s.height!==o)&&(s?.destroy(),s=this.device.createTexture({label:`vision_mask_${e}`,size:[n,o],format:"r8unorm",usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST}),this.masks.set(e,s));let i=Math.ceil(n/256)*256,u=t;if(i!==n){u=new Uint8Array(i*o);for(let a=0;a<o;a++)u.set(t.subarray(a*n,(a+1)*n),a*i)}return this.device.queue.writeTexture({texture:s},u.buffer,{offset:u.byteOffset,bytesPerRow:i,rowsPerImage:o},{width:n,height:o}),s}draw(e,t,n,o,s,i){let u=o.width,a=o.height,c=new Float32Array(8),h=new Uint32Array(c.buffer);h[0]=s==="matte"?0:s==="mask"?1:2,s==="crop"&&i?(c[2]=i.x0/u,c[3]=i.y0/a,c[4]=(i.x1+1)/u,c[5]=(i.y1+1)/a):(c[2]=0,c[3]=0,c[4]=1,c[5]=1,s==="crop"&&(h[0]=0)),this.uniformIndex>=this.uniforms.length&&this.uniforms.push(this.device.createBuffer({size:c.byteLength,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}));let m=this.uniforms[this.uniformIndex];this.uniformIndex=(this.uniformIndex+1)%16,this.device.queue.writeBuffer(m,0,c);let p=this.device.createBindGroup({layout:this.pipeline.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:m}},{binding:1,resource:n.createView()},{binding:2,resource:o.createView()},{binding:3,resource:this.sampler}]}),T=e.beginRenderPass({label:"vision_matte_composite",colorAttachments:[{view:t,loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});T.setPipeline(this.pipeline),T.setBindGroup(0,p),T.draw(3),T.end()}};var Oe=null,et=null,Le=null,$t=null,Wt=new Ie,Kt=new Map,wn=new Map,vn=new Map,qt=new Map,tt=new WeakMap,de=new Map,nt=new Map,Mn=3;function Zt(r,e,t,n,o,s){let i=r.get(t);return(!i||i.width!==n.width||i.height!==n.height||i.format!==n.format)&&(i?.destroy(),i=e.createTexture({size:[n.width,n.height],format:n.format,usage:o,label:s}),r.set(t,i)),i}var Pn=(r,e,t)=>Zt(wn,r,e,t,GPUTextureUsage.COPY_DST|GPUTextureUsage.TEXTURE_BINDING,"vision_held_frame"),Rn=(r,e,t)=>Zt(vn,r,e,t,GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC,"vision_matte");function In(r,e,t,n,o){let s=e;return JSON.stringify([r,s?.operation?.id??s?.id??null,n,o,t.mode??"passthrough",t.variant,t.confidence,t.classes,t.maskThreshold,t.featherRadius,t.matteSource,t.keyBackground===!0,t.maxMissedFrames])}function Cn(r,e,t){let n=r.backgroundKeyThreshold;return typeof n=="number"?n:typeof n?.get=="function"?Number(n.get({frame:e,fps:t})):typeof n?._value=="number"?Number(n._value):70}function On(r,e,t){if(r)return nt.set(e,{mask:r,frame:t}),r;let n=nt.get(e);if(n&&t-n.frame<=Mn)return n.mask}function Ln(r){let e={variant:r.variant,confidence:r.confidence,classes:r.classes,maskThreshold:r.maskThreshold,featherRadius:r.featherRadius,modelsDir:r.modelsDir,baseUrl:r.baseUrl},t=JSON.stringify(e);return Oe?.key!==t&&(Oe?.runner.close(),Oe={key:t,runner:fe.create(e)}),Oe.runner}function En(r,e){let t=qt.get(r);return t||(t=new ue({maxMissedFrames:e.maxMissedFrames??15}),qt.set(r,t)),t}function jn(r,e,t){return e<=0||t<=0?r:{people:r.people.map(n=>({...n,keypoints:n.keypoints.map(o=>({x:o.x/e,y:o.y/t,visibility:o.visibility}))}))}}function Vn(r,e){return r.map(t=>{let{cx:n,cy:o}=Fn(t),s=null;for(let i of e){let u=i.centerX-n,a=i.centerY-o,c=u*u+a*a;(!s||c<s.distance)&&(s={trackId:i.trackId,distance:c})}return s?{...t,trackId:s.trackId}:t})}function An(r,e,t){let n=e*t,o=new Uint8Array(n),s=new Int32Array(n),i=0,u=c=>{o[c]||r[c]>0||(o[c]=1,s[i++]=c)};for(let c=0;c<e;c++)u(c),u((t-1)*e+c);for(let c=0;c<t;c++)u(c*e),u(c*e+e-1);let a=0;for(;a<i;){let c=s[a++],h=c%e,m=c+1;h+1<e&&!o[m]&&r[m]===0&&(o[m]=1,s[i++]=m),m=c-1,h>0&&!o[m]&&r[m]===0&&(o[m]=1,s[i++]=m),m=c+e,m<n&&!o[m]&&r[m]===0&&(o[m]=1,s[i++]=m),m=c-e,m>=0&&!o[m]&&r[m]===0&&(o[m]=1,s[i++]=m)}for(let c=0;c<n;c++)r[c]===0&&o[c]===0&&(r[c]=255)}function Bn(r,e,t,n=2){if(n<=0)return r;let o=new Uint8Array(e*t),s=new Uint8Array(e*t),i=2*n+1;for(let a=0;a<t;a++){let c=a*e,h=0;for(let m=-n;m<=n;m++){let p=Math.max(0,Math.min(e-1,m));h+=r[c+p]}for(let m=0;m<e;m++){o[c+m]=Math.round(h/i);let p=Math.max(0,m-n),T=Math.min(e-1,m+n+1);h+=r[c+T]-r[c+p]}}let u=new Float64Array(e);for(let a=-n;a<=n;a++){let c=Math.max(0,Math.min(t-1,a))*e;for(let h=0;h<e;h++)u[h]+=o[c+h]}for(let a=0;a<t;a++){let c=a*e,h=Math.max(0,a-n)*e,m=Math.min(t-1,a+n+1)*e;for(let p=0;p<e;p++)s[c+p]=Math.round(u[p]/i),u[p]+=o[m+p]-o[h+p]}return s}function Dn(r,e,t,n,o,s){let i=0,u=0,a=0,c=0,h=(g,S)=>{let b=S*e+g;if(r[b])return;let V=b*4;i+=n[V],u+=n[V+1],a+=n[V+2],c++};for(let g=0;g<e;g+=4)h(g,0),h(g,t-1);for(let g=0;g<t;g+=4)h(0,g),h(e-1,g);if(c===0)return r;i/=c,u/=c,a/=c;let m=e*t,p=new Uint8Array(m);for(let g=0,S=0;g<m;g++,S+=4)p[g]=Math.max(Math.abs(n[S]-i),Math.abs(n[S+1]-u),Math.abs(n[S+2]-a))>o?1:0;let T=new Int32Array(m),j=0;for(let g=0;g<m;g++)r[g]>0&&(p[g]&&(r[g]=255),T[j++]=g);let P=0;for(;P<j;){let g=T[P++],S=g%e,b=g+1;S+1<e&&r[b]!==255&&p[b]&&(r[b]=255,T[j++]=b),b=g-1,S>0&&r[b]!==255&&p[b]&&(r[b]=255,T[j++]=b),b=g+e,b<m&&r[b]!==255&&p[b]&&(r[b]=255,T[j++]=b),b=g-e,b>=0&&r[b]!==255&&p[b]&&(r[b]=255,T[j++]=b)}An(r,e,t);let E=s!==void 0&&s>0?Math.max(1,Math.min(8,Math.round(s*50))):2;return Bn(r,e,t,E)}function Fn(r){let{mask:e,width:t,height:n}=r,o=0,s=0,i=0;for(let u=0;u<n;u++){let a=u*t;for(let c=0;c<t;c++)e[a+c]>0&&(o+=c,s+=u,i++)}return i===0?{cx:0,cy:0}:{cx:o/i,cy:s/i}}var Jt=async r=>{let{ctx:e,encoder:t,pass:n,targetView:o,targetWidth:s,targetHeight:i,props:u,drawChild:a}=r,{virtualMedia:c}=u,h=c?.operation;if(h?.op!=="Vision")return;let m=h;n.end();let p=c?.children?.[0];if(!p)return;let T=m.effect,j=T!=null,P=c?.id??h?.id??`${s}x${i}_${m.mode}_${m.variant}_${m.keyBackground}_${m.backgroundKeyThreshold}`,E=`vision-${P}`,g=j?tt.get(T):de.get(E);g&&(g.width!==s||g.height!==i)&&(g.destroy(),g=void 0,j?tt.delete(T):de.delete(E));let S=g!==void 0;if(!g&&(g=e.device.createTexture({size:[s,i],format:e.renderer.format,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC,label:"vision_child_persistent"}),j?tt.set(T,g):de.set(E,g),de.size>4)){let D=de.keys().next().value;D&&D!==E&&(de.get(D)?.destroy(),de.delete(D))}let b=u.frame??0,V=u.compositionFrame??b,f=u.fps??24,l=m.mode??"passthrough",M=l==="mask"||l==="matte"||l==="crop",x=m.visionBundle??c.visionBundle,w=m.enableDetection!==!1||l==="boxes"||l==="tracking",O=m.enableSegmentation===!0||M&&m.matteSource!=="selfie",U=m.enableMatte===!0||M&&m.matteSource==="selfie",I=m.enablePose===!0||l==="skeleton",v=!U&&!I&&(w||O),d=v?In(P,p,m,s,i):"",R=D=>m.keyBackground===!0?Cn(m,V-(b-D),f):void 0,z=D=>{if(!v||D===void 0)return;let G=Wt.get(d,D);if(!(!G||G.keyThreshold!==R(D))&&!(O&&x&&!G.masks))return G},F=S?Kt.get(P):void 0,C=z(b),B=C!==void 0;C||(C=z(F));let $;M&&S&&!B&&($=Pn(e.device,P,g),t.copyTextureToTexture({texture:g},{texture:$},[s,i,1]));let N=null;if(S&&!C){let G=s*4,Z=Math.ceil(G/256)*256,Q=Z*i,ee=e.device.createBuffer({size:Q,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ,label:"vision_frame_staging"}),K=e.device.createCommandEncoder({label:"vision_readback_encoder"});K.copyTextureToBuffer({texture:g},{buffer:ee,bytesPerRow:Z,rowsPerImage:i},[s,i,1]),e.device.queue.submit([K.finish()]),await ee.mapAsync(GPUMapMode.READ);let he=new Uint8Array(ee.getMappedRange());if(N=new Uint8ClampedArray(s*i*4),Z===G)N.set(he.subarray(0,N.length));else for(let ge=0;ge<i;ge++)N.set(he.subarray(ge*Z,ge*Z+G),ge*G);ee.unmap(),ee.destroy()}let X=g.createView();e.renderer.beginFrame(t,X,{r:0,g:0,b:0,a:0},s,i,"clear").end(),await a(p,{...u},X,g,s,i),Kt.set(P,b);let W=[],H=[],ne,J,Y;if(C)W=C.objects,w&&x?.setObjectResult(b,{objects:C.objects,rawDetections:C.detections}),O&&x&&C.masks&&(H=C.masks.map(Qe),x.setMaskResult(b,H)),C.subject&&(Y=Qe(C.subject.mask),nt.set(P,{mask:Y,frame:b}));else if(N){let D=Ln(m),G={data:N,width:s,height:i},Z=[];if(w){Z=await D.detect(G);let Q=En(P,m);b===0&&Q.reset(),W=Q.update(Z,b,f),x?.setObjectResult(b,{objects:W,rawDetections:Z})}if(O){let Q=await D.segment(G);H=Vn(Q.masks,W),x?.setMaskResult(b,H)}if(U&&(ne=await D.matte(G),x?.setMatteResult(b,ne)),I){let Q=await D.pose(G),ee=jn(Q,G.width,G.height);J={people:Yt(ee.people,W)},x?.setPoseResult(b,J)}if(M){Y=On(m.matteSource==="selfie"?Un(ne):zt(H.length>0?H:x?.getMaskResult(b)??[]),P,b);let Q=R(F??b);Y&&Q!==void 0&&(Y={...Y,mask:Dn(Y.mask,Y.width,Y.height,N,Q,m.featherRadius)})}v&&F!==void 0&&Wt.set(d,F,{detections:Z,objects:W,masks:x?H.map(Je):null,subject:Y?{mask:Je(Y)}:null,keyThreshold:R(F)})}if(M){let D=B?g:$;if(!Y||!D){e.renderer.beginFrame(t,o,{r:0,g:0,b:0,a:0},s,i,"clear").end();return}(!Le||$t!==e.renderer.format)&&(Le=new Ce(e.device,e.renderer.format),$t=e.renderer.format);let G=Le.uploadMask(P,Y.mask,Y.width,Y.height),Z=Rn(e.device,P,g);Le.draw(t,Z.createView(),D,G,l,l==="crop"?ve(Y)??void 0:void 0),x?.setStencilTexture(Z);let Q=e.renderer.beginFrame(t,o,{r:0,g:0,b:0,a:0},s,i,"clear");e.renderer.drawTexture(Q,Z,{x:0,y:0,width:s,height:i}),Q.end();return}if(l==="skeleton"){et||(et=new _e(e.device));let G=(x?.getPoseResult(b)??J)?.people[0];if(G&&G.keypoints.length>0){let Z=et.renderToTexture(G.keypoints,{width:s,height:i}),Q=e.renderer.beginFrame(t,o,{r:0,g:0,b:0,a:0},s,i,"clear");e.renderer.drawTexture(Q,Z,{x:0,y:0,width:s,height:i}),Q.end();return}}if(l==="boxes"||l==="tracking"){let D=e.renderer.beginFrame(t,o,{r:0,g:0,b:0,a:0},s,i,"clear");e.renderer.drawTexture(D,g,{x:0,y:0,width:s,height:i});let G=W.length>0?W:x?.getObjectResult(b).objects??[];if(G.length>0){let Z="#38bdf8";for(let ee of G){if(!ee.active)continue;let K=ee.boundingBox;e.renderer.drawRect(D,{x:K.originX,y:K.originY,width:K.width,height:2},Z),e.renderer.drawRect(D,{x:K.originX,y:K.originY+K.height-2,width:K.width,height:2},Z),e.renderer.drawRect(D,{x:K.originX,y:K.originY,width:2,height:K.height},Z),e.renderer.drawRect(D,{x:K.originX+K.width-2,y:K.originY,width:2,height:K.height},Z);let he=Math.min(16,K.width/4,K.height/4);e.renderer.drawRect(D,{x:K.originX,y:K.originY,width:he,height:4},"#ffffff"),e.renderer.drawRect(D,{x:K.originX,y:K.originY,width:4,height:he},"#ffffff"),l==="tracking"&&e.renderer.drawRect(D,{x:ee.centerX-3,y:ee.centerY-3,width:6,height:6},"#ef4444",3)}}D.end();return}let re=e.renderer.beginFrame(t,o,{r:0,g:0,b:0,a:0},s,i,"clear");e.renderer.drawTexture(re,g,{x:0,y:0,width:s,height:i}),re.end()};function Un(r){if(!r||r.coverage<=0)return;let e=Math.round(r.coverage*r.width*r.height);return{category:"person",mask:r.mask,width:r.width,height:r.height,area:e,coverage:r.coverage,detectionIndex:-1}}var Gs=st({WebGPURenderer:Jt});export{ht as a,gt as b,pt as c,Jn as d,tn as e,nr as f,sr as g,lr as h,dr as i,nn as j,Tt as k,kt as l,fr as m,rn as n,on as o,sn as p,an as q,cn as r,ln as s,Be as t,_t as u,dn as v,De as w,Pr as x,St as y,Er as z,jr as A,Br as B,Te as C,xe as D,ue as E,Gr as F,k as G,Ge as H,Et as I,_e as J,jt as K,At as L,fe as M,Pe as N,Re as O,Nt as P,os as Q,Ke as R,Gs as S};
@@ -1,4 +1,4 @@
1
- import{a as y}from"./chunk-D3TETPLI.mjs";import{c as n,e as c,t as g}from"./chunk-ZNGOAGAI.mjs";import{e as i}from"./chunk-BVF64D6H.mjs";i();i();var A=["delayTime","feedback","wet","dry"],W=()=>`
1
+ import{a as c}from"./chunk-OG62XGCT.mjs";import{c as f,e as m,y as n,z as p}from"./chunk-63SFBHEH.mjs";import{e as t}from"./chunk-BVF64D6H.mjs";t();t();var k=["delayTime","feedback","wet","dry"],P=()=>`
2
2
  struct Uniforms {
3
3
  sampleRate : f32,
4
4
  delaySec : f32,
@@ -161,4 +161,4 @@ fn main(@builtin(global_invocation_id) gid : vec3<u32>) {
161
161
 
162
162
  state[0] = f32(writeIndex);
163
163
  }
164
- `,h=async(r,o,u,a)=>{if(!a?.device)throw new Error("GPUDevice is required for WebGPU Audio Delay.");let e=u.operation||{},x=e.inputs||{},d=r.length;if(d===0)return;let s=r[0].length;if(s===0)return;let S=Math.max(.001,Math.min(n(e.delayTime,.25),5)),_=Math.max(0,Math.min(n(e.feedback,.4),.95)),b=Math.max(0,Math.min(n(e.wet,.3),1)),L=Math.max(0,Math.min(n(e.dry,1),1)),v=c(e.pingPong,!1),f=C=>{let l=e[C];if(typeof l!="string"||!l)return!1;let t=x[l];return!!(t?.connectionValid&&t.outputItem&&(t.outputItem.type==="Signal"||t.outputItem.type==="Number"))},R=f("delayTimeHandleId")?1:0,I=f("feedbackHandleId")?1:0,D=f("wetHandleId")?1:0,V=f("dryHandleId")?1:0,m=Math.ceil(5*o),w=e.id||"audio-delay",p=a.frame??0,k=a.fps??24,P=d*m+1;await y.process(a.device,w,r,o,u,p,k,W,()=>[o,S,_,b,L,v?1:0,m,R,I,D,V,0,p,s,d,0],16,P,a?.renderId,!0,a?.elapsedMs,a?.durationMs,void 0,void 0,A)};var B=g({audioProcessor:h});export{B as a};
164
+ `,g=async(r,i,d,a)=>{if(!a?.device)throw new Error("GPUDevice is required for WebGPU Audio Delay.");let e=d.operation||{},o=r.length;if(o===0)return;let l=r[0].length;if(l===0)return;let y=Math.max(.001,Math.min(f(e.delayTime,.25),5)),x=Math.max(0,Math.min(f(e.feedback,.4),.95)),h=Math.max(0,Math.min(f(e.wet,.3),1)),S=Math.max(0,Math.min(f(e.dry,1),1)),_=m(e.pingPong,!1),b=n(e,"delayTimeHandleId")?1:0,L=n(e,"feedbackHandleId")?1:0,v=n(e,"wetHandleId")?1:0,R=n(e,"dryHandleId")?1:0,s=Math.ceil(5*i),D=e.id||"audio-delay",u=a.frame??0,I=a.fps??24,w=o*s+1;await c.process(a.device,D,r,i,d,u,I,P,()=>[i,y,x,h,S,_?1:0,s,b,L,v,R,0,u,l,o,0],16,w,a?.renderId,!0,a?.elapsedMs,a?.durationMs,void 0,void 0,k)};var H=p({audioProcessor:g});export{H as a};
@@ -1,4 +1,4 @@
1
- import{a as g,b as ae,c as le}from"./chunk-IYVN2QEL.mjs";import{a}from"./chunk-NQZKBFC6.mjs";import{t as ee}from"./chunk-ZNGOAGAI.mjs";import{e as O}from"./chunk-BVF64D6H.mjs";O();O();O();var ia=a.object({enabled:a.boolean().default(!1),color:g.default("#000000"),opacity:a.number().min(0).max(1).default(.75),angle:a.number().min(0).max(360).default(120),distance:a.number().min(0).max(500).default(10),spread:a.number().min(0).max(100).default(0),size:a.number().min(0).max(250).default(10),blendMode:a.string().default("multiply")}),na=a.object({enabled:a.boolean().default(!1),color:g.default("#000000"),opacity:a.number().min(0).max(1).default(.75),angle:a.number().min(0).max(360).default(120),distance:a.number().min(0).max(500).default(5),choke:a.number().min(0).max(100).default(0),size:a.number().min(0).max(250).default(5),blendMode:a.string().default("multiply")}),sa=a.object({enabled:a.boolean().default(!1),size:a.number().min(0).max(100).default(2),position:a.enum(["inside","center","outside"]).default("outside"),color:g.default("#ffffff"),opacity:a.number().min(0).max(1).default(1),blendMode:a.string().default("normal")}),oe=a.object({enabled:a.boolean().default(!1),color:g.default("#ffffff"),opacity:a.number().min(0).max(1).default(.75),size:a.number().min(0).max(250).default(15),spread:a.number().min(0).max(100).default(0),blendMode:a.string().default("screen")}),da=a.object({enabled:a.boolean().default(!1),style:a.enum(["InnerBevel","OuterBevel","Emboss","PillowEmboss"]).default("InnerBevel"),technique:a.enum(["Smooth","ChiselHard","ChiselSoft"]).default("Smooth"),depth:a.number().min(1).max(1e3).default(100),direction:a.enum(["Up","Down"]).default("Up"),size:a.number().min(0).max(250).default(5),soften:a.number().min(0).max(50).default(0),angle:a.number().min(0).max(360).default(120),altitude:a.number().min(0).max(90).default(30),highlightColor:g.default("#ffffff"),highlightOpacity:a.number().min(0).max(1).default(.75),shadowColor:g.default("#000000"),shadowOpacity:a.number().min(0).max(1).default(.75)}),ca=a.object({enabled:a.boolean().default(!1),color:g.default("#ff0000"),opacity:a.number().min(0).max(1).default(1),blendMode:a.string().default("normal")}),ua={enabled:!1,color:"#000000",opacity:.75,angle:120,distance:10,spread:0,size:10,blendMode:"multiply"},pa={enabled:!1,color:"#000000",opacity:.75,angle:120,distance:5,choke:0,size:5,blendMode:"multiply"},te={enabled:!1,color:"#ffffff",opacity:.75,size:15,spread:0,blendMode:"screen"},fa={enabled:!1,size:2,position:"outside",color:"#ffffff",opacity:1,blendMode:"normal"},ma={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},ba={enabled:!1,color:"#ff0000",opacity:1,blendMode:"normal"},Oa=a.object({dropShadow:ia.default(ua),innerShadow:na.default(pa),outerGlow:oe.default(te),innerGlow:oe.default(te),stroke:sa.default(fa),bevelEmboss:da.default(ma),colorOverlay:ca.default(ba),dropShadowAngleHandleId:a.string().nullable().optional(),dropShadowDistanceHandleId:a.string().nullable().optional(),dropShadowSpreadHandleId:a.string().nullable().optional(),dropShadowSizeHandleId:a.string().nullable().optional(),dropShadowOpacityHandleId:a.string().nullable().optional(),innerShadowAngleHandleId:a.string().nullable().optional(),innerShadowDistanceHandleId:a.string().nullable().optional(),innerShadowChokeHandleId:a.string().nullable().optional(),innerShadowSizeHandleId:a.string().nullable().optional(),innerShadowOpacityHandleId:a.string().nullable().optional(),outerGlowSizeHandleId:a.string().nullable().optional(),outerGlowSpreadHandleId:a.string().nullable().optional(),outerGlowOpacityHandleId:a.string().nullable().optional(),innerGlowSizeHandleId:a.string().nullable().optional(),innerGlowSpreadHandleId:a.string().nullable().optional(),innerGlowOpacityHandleId:a.string().nullable().optional(),strokeSizeHandleId:a.string().nullable().optional(),strokeOpacityHandleId:a.string().nullable().optional(),bevelEmbossDepthHandleId:a.string().nullable().optional(),bevelEmbossSizeHandleId:a.string().nullable().optional(),bevelEmbossSoftenHandleId:a.string().nullable().optional(),bevelEmbossAngleHandleId:a.string().nullable().optional(),bevelEmbossAltitudeHandleId:a.string().nullable().optional(),bevelEmbossHighlightOpacityHandleId:a.string().nullable().optional(),bevelEmbossShadowOpacityHandleId:a.string().nullable().optional(),colorOverlayOpacityHandleId:a.string().nullable().optional()});function ie(r){let o=0,i=0;if(r.dropShadow?.enabled){let s=(r.dropShadow.angle??120)*Math.PI/180,u=r.dropShadow.distance??0,c=Math.ceil(Math.abs(Math.cos(s))*u),p=Math.ceil(Math.abs(Math.sin(s))*u);o=Math.max(o,c),i=Math.max(i,p)}if(r.stroke?.enabled&&r.stroke.position!=="inside"){let s=r.stroke.position==="outside"?Math.ceil(r.stroke.size??2):Math.ceil((r.stroke.size??2)*.5);o=Math.max(o,s),i=Math.max(i,s)}return{padX:o,padY:i}}var Aa=a.union([ae,le]);function h(r){if(!r)return[1,1,1,1];let o=r.trim().replace(/^#/,"");if(o.length===3)o=o.split("").map(p=>p+p).join("")+"ff";else if(o.length===6)o=o+"ff";else if(o.length!==8)return[1,1,1,1];let i=parseInt(o.slice(0,2),16)/255,s=parseInt(o.slice(2,4),16)/255,u=parseInt(o.slice(4,6),16)/255,c=parseInt(o.slice(6,8),16)/255;return[Number.isFinite(i)?i:1,Number.isFinite(s)?s:1,Number.isFinite(u)?u:1,Number.isFinite(c)?c:1]}var A={normal:0,"source-over":0,multiply:1,screen:2,overlay:3,darken:4,lighten:5,"color-dodge":6,"color-burn":7,"hard-light":8,"soft-light":9,difference:10,exclusion:11,hue:12,saturation:13,color:14,luminosity:15,"mask-in":16,"destination-in":16,"mask-out":17,"destination-out":17,"source-in":18,"source-out":19,"source-atop":20,"destination-over":21,"destination-atop":22,lighter:23,copy:24,xor:25},ga={InnerBevel:0,OuterBevel:1,Emboss:2,PillowEmboss:3},ha={Smooth:0,ChiselHard:1,ChiselSoft:2},ya={outside:0,center:1,inside:2},Sa=`
1
+ import{a as h,b as ce,c as ue}from"./chunk-FLPSWDX4.mjs";import{a}from"./chunk-NQZKBFC6.mjs";import{a as re,b as ie,d as X,g as ne,j as se,m as de}from"./chunk-ENKKLU7B.mjs";import{z as oe}from"./chunk-63SFBHEH.mjs";import{e as R}from"./chunk-BVF64D6H.mjs";R();R();R();var ba=a.object({enabled:a.boolean().default(!1),color:h.default("#000000"),opacity:a.number().min(0).max(1).default(.75),angle:a.number().min(0).max(360).default(120),distance:a.number().min(0).max(500).default(10),spread:a.number().min(0).max(100).default(0),size:a.number().min(0).max(250).default(10),blendMode:a.string().default("multiply")}),fa=a.object({enabled:a.boolean().default(!1),color:h.default("#000000"),opacity:a.number().min(0).max(1).default(.75),angle:a.number().min(0).max(360).default(120),distance:a.number().min(0).max(500).default(5),choke:a.number().min(0).max(100).default(0),size:a.number().min(0).max(250).default(5),blendMode:a.string().default("multiply")}),ga=a.object({enabled:a.boolean().default(!1),size:a.number().min(0).max(100).default(2),position:a.enum(["inside","center","outside"]).default("outside"),color:h.default("#ffffff"),opacity:a.number().min(0).max(1).default(1),blendMode:a.string().default("normal")}),pe=a.object({enabled:a.boolean().default(!1),color:h.default("#ffffff"),opacity:a.number().min(0).max(1).default(.75),size:a.number().min(0).max(250).default(15),spread:a.number().min(0).max(100).default(0),blendMode:a.string().default("screen")}),ha=a.object({enabled:a.boolean().default(!1),style:a.enum(["InnerBevel","OuterBevel","Emboss","PillowEmboss"]).default("InnerBevel"),technique:a.enum(["Smooth","ChiselHard","ChiselSoft"]).default("Smooth"),depth:a.number().min(1).max(1e3).default(100),direction:a.enum(["Up","Down"]).default("Up"),size:a.number().min(0).max(250).default(5),soften:a.number().min(0).max(50).default(0),angle:a.number().min(0).max(360).default(120),altitude:a.number().min(0).max(90).default(30),highlightColor:h.default("#ffffff"),highlightOpacity:a.number().min(0).max(1).default(.75),shadowColor:h.default("#000000"),shadowOpacity:a.number().min(0).max(1).default(.75)}),ya=a.object({enabled:a.boolean().default(!1),color:h.default("#ff0000"),opacity:a.number().min(0).max(1).default(1),blendMode:a.string().default("normal")}),w={enabled:!1,color:"#000000",opacity:.75,angle:120,distance:10,spread:0,size:10,blendMode:"multiply"},v={enabled:!1,color:"#000000",opacity:.75,angle:120,distance:5,choke:0,size:5,blendMode:"multiply"},s={enabled:!1,color:"#ffffff",opacity:.75,size:15,spread:0,blendMode:"screen"},x={enabled:!1,size:2,position:"outside",color:"#ffffff",opacity:1,blendMode:"normal"},z={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},A={enabled:!1,color:"#ff0000",opacity:1,blendMode:"normal"},_a=a.object({dropShadow:ba.default(w),innerShadow:fa.default(v),outerGlow:pe.default(s),innerGlow:pe.default(s),stroke:ga.default(x),bevelEmboss:ha.default(z),colorOverlay:ya.default(A),dropShadowAngleHandleId:a.string().nullable().optional(),dropShadowDistanceHandleId:a.string().nullable().optional(),dropShadowSpreadHandleId:a.string().nullable().optional(),dropShadowSizeHandleId:a.string().nullable().optional(),dropShadowOpacityHandleId:a.string().nullable().optional(),innerShadowAngleHandleId:a.string().nullable().optional(),innerShadowDistanceHandleId:a.string().nullable().optional(),innerShadowChokeHandleId:a.string().nullable().optional(),innerShadowSizeHandleId:a.string().nullable().optional(),innerShadowOpacityHandleId:a.string().nullable().optional(),outerGlowSizeHandleId:a.string().nullable().optional(),outerGlowSpreadHandleId:a.string().nullable().optional(),outerGlowOpacityHandleId:a.string().nullable().optional(),innerGlowSizeHandleId:a.string().nullable().optional(),innerGlowSpreadHandleId:a.string().nullable().optional(),innerGlowOpacityHandleId:a.string().nullable().optional(),strokeSizeHandleId:a.string().nullable().optional(),strokeOpacityHandleId:a.string().nullable().optional(),bevelEmbossDepthHandleId:a.string().nullable().optional(),bevelEmbossSizeHandleId:a.string().nullable().optional(),bevelEmbossSoftenHandleId:a.string().nullable().optional(),bevelEmbossAngleHandleId:a.string().nullable().optional(),bevelEmbossAltitudeHandleId:a.string().nullable().optional(),bevelEmbossHighlightOpacityHandleId:a.string().nullable().optional(),bevelEmbossShadowOpacityHandleId:a.string().nullable().optional(),colorOverlayOpacityHandleId:a.string().nullable().optional()});function be(r){let l=0,i=0;if(r.dropShadow?.enabled){let c=(r.dropShadow.angle??120)*Math.PI/180,u=r.dropShadow.distance??0,m=Math.ceil(Math.abs(Math.cos(c))*u),b=Math.ceil(Math.abs(Math.sin(c))*u);l=Math.max(l,m),i=Math.max(i,b)}if(r.stroke?.enabled&&r.stroke.position!=="inside"){let c=r.stroke.position==="outside"?Math.ceil(r.stroke.size??2):Math.ceil((r.stroke.size??2)*.5);l=Math.max(l,c),i=Math.max(i,c)}return{padX:l,padY:i}}var Ia=a.union([ce,ue]);var Ga=[{id:"subtle-drop-shadow",name:"Subtle Drop Shadow",description:"Clean modern floating shadow for UI and graphics",config:{dropShadow:{...w,enabled:!0,opacity:.35,distance:8,size:16},innerShadow:{...v},outerGlow:{...s},innerGlow:{...s},stroke:{...x},bevelEmboss:{...z},colorOverlay:{...A}}},{id:"sticker-outline-shadow",name:"Sticker Border & Shadow",description:"Crisp white die-cut sticker border with contact shadow",config:{dropShadow:{...w,enabled:!0,opacity:.4,distance:6},stroke:{...x,enabled:!0,size:6},innerShadow:{...v},outerGlow:{...s},innerGlow:{...s},bevelEmboss:{...z},colorOverlay:{...A}}},{id:"neon-cyber-glow",name:"Neon Glow",description:"Vibrant outer and inner luminescence with soft cyan radiation",config:{dropShadow:{...w},innerShadow:{...v},outerGlow:{...s,enabled:!0,color:"#00f0ff",opacity:.9,size:28,spread:12},innerGlow:{...s,enabled:!0,opacity:.8,size:10,spread:5},stroke:{...x,enabled:!0,position:"center",color:"#00f0ff",opacity:.9,blendMode:"screen"},bevelEmboss:{...z},colorOverlay:{...A}}},{id:"glass-emboss",name:"Glass & Emboss",description:"Pristine glass beveling with specular highlights and depth",config:{dropShadow:{...w,enabled:!0,opacity:.25,distance:6,size:12},innerShadow:{...v,enabled:!0,opacity:.3,distance:4,size:6},outerGlow:{...s},innerGlow:{...s,enabled:!0,opacity:.6,size:8},stroke:{...x},bevelEmboss:{...z,enabled:!0,depth:180,size:8,soften:2,altitude:35,highlightOpacity:.9,shadowOpacity:.5},colorOverlay:{...A}}},{id:"letterpress-carved",name:"Letterpress / Carved",description:"Debossed letterpress engraving into paper surface",config:{dropShadow:{...w,enabled:!0,color:"#ffffff",opacity:.85,angle:300,distance:2,size:1,blendMode:"screen"},innerShadow:{...v,enabled:!0,opacity:.7,distance:3,choke:10,size:4},outerGlow:{...s},innerGlow:{...s},stroke:{...x},bevelEmboss:{...z,enabled:!0,technique:"ChiselHard",depth:150,direction:"Down",size:3,highlightOpacity:.6,shadowOpacity:.8},colorOverlay:{...A}}},{id:"gold-bevel",name:"Metallic Gold Bevel",description:"High-specular chisel gold badge with deep relief",config:{dropShadow:{...w,enabled:!0,opacity:.6,distance:8,spread:5,size:12},innerShadow:{...v,enabled:!0,color:"#573a08",opacity:.5,distance:3},outerGlow:{...s,enabled:!0,color:"#ffc83b",opacity:.4,size:20,spread:5},innerGlow:{...s,enabled:!0,color:"#fff7d1",opacity:.5,size:6},stroke:{...x,enabled:!0,color:"#b38728"},bevelEmboss:{...z,enabled:!0,technique:"ChiselHard",depth:350,size:10,soften:1,altitude:40,highlightColor:"#fff4cc",highlightOpacity:.95,shadowColor:"#422b00",shadowOpacity:.85},colorOverlay:{...A,enabled:!0,color:"#f5b324",opacity:.35,blendMode:"overlay"}}}];function y(r){if(!r)return[1,1,1,1];let l=r.trim().replace(/^#/,"");if(l.length===3)l=l.split("").map(b=>b+b).join("")+"ff";else if(l.length===6)l=l+"ff";else if(l.length!==8)return[1,1,1,1];let i=parseInt(l.slice(0,2),16)/255,c=parseInt(l.slice(2,4),16)/255,u=parseInt(l.slice(4,6),16)/255,m=parseInt(l.slice(6,8),16)/255;return[Number.isFinite(i)?i:1,Number.isFinite(c)?c:1,Number.isFinite(u)?u:1,Number.isFinite(m)?m:1]}var C={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},Sa={InnerBevel:0,OuterBevel:1,Emboss:2,PillowEmboss:3},wa={Smooth:0,ChiselHard:1,ChiselSoft:2},va={outside:0,center:1,inside:2},xa=`
2
2
  struct LayerStyleUniforms {
3
3
  // Drop Shadow (vec4 x 3)
4
4
  dropShadowColor : vec4<f32>,
@@ -40,27 +40,7 @@ struct LayerStyleUniforms {
40
40
  @group(0) @binding(0) var<uniform> u : LayerStyleUniforms;
41
41
  @group(1) @binding(0) var tex : texture_2d<f32>;
42
42
  @group(1) @binding(1) var samp : sampler;
43
-
44
- struct VSOut {
45
- @builtin(position) pos : vec4<f32>,
46
- @location(0) uv : vec2<f32>,
47
- };
48
-
49
- @vertex fn vs(@builtin(vertex_index) vi: u32) -> VSOut {
50
- var pos = array<vec2<f32>, 4>(
51
- vec2<f32>(-1.0, 1.0),
52
- vec2<f32>(1.0, 1.0),
53
- vec2<f32>(-1.0, -1.0),
54
- vec2<f32>(1.0, -1.0)
55
- );
56
- var uv = array<vec2<f32>, 4>(
57
- vec2<f32>(0.0, 0.0),
58
- vec2<f32>(1.0, 0.0),
59
- vec2<f32>(0.0, 1.0),
60
- vec2<f32>(1.0, 1.0)
61
- );
62
- return VSOut(vec4<f32>(pos[vi], 0.0, 1.0), uv[vi]);
63
- }
43
+ ${re}
64
44
 
65
45
  fn sampleAlpha(uv: vec2<f32>) -> f32 {
66
46
  if (uv.x < 0.0 || uv.x > 1.0 || uv.y < 0.0 || uv.y > 1.0) {
@@ -526,4 +506,4 @@ fn compositeLayer(dst: vec4<f32>, src: vec4<f32>, blendMode: u32) -> vec4<f32> {
526
506
  // Output premultiplied alpha for QuadPipeline / WebGPU rendering
527
507
  return vec4<f32>(result.rgb * result.a, result.a);
528
508
  }
529
- `,ne=new WeakMap;function va(r,o){let i=ne.get(r);if(i)return i;let s=r.createShaderModule({code:Sa}),u=r.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),c=r.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}}]}),p=r.createPipelineLayout({bindGroupLayouts:[u,c]});return i={pipeline:r.createRenderPipeline({layout:p,vertex:{module:s,entryPoint:"vs"},fragment:{module:s,entryPoint:"fs",targets:[{format:o,blend:{color:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"}}}]},primitive:{topology:"triangle-strip"}}),uniformLayout:u,textureLayout:c},ne.set(r,i),i}var e=new Float32Array(88),se=async r=>{let{ctx:o,encoder:i,pass:s,targetView:u,targetTexture:c,targetWidth:p,targetHeight:_,props:f,drawChild:de}=r,l=f.virtualMedia?.operation;if(l?.op!=="LayerStyle"||!l)return;let q=f.virtualMedia.children?.[0];if(!q)return;s.end();let C=p,R=_,ce=f.elapsedMs!==void 0?f.elapsedMs/1e3:(f.frame??0)/(f.fps||30),t=(V,F,x=0,z=1e3)=>{if(V&&l.inputs?.[V]?.connectionValid){let y=l.inputs[V].outputItem;if(!y)return Math.max(x,Math.min(z,F));if(y.type==="Number"){let n=typeof y.data=="number"?y.data:y.data?.value??F;return Math.max(x,Math.min(z,n))}if(y.type==="Signal"){let n=y.data;if(typeof n=="number")return Math.max(x,Math.min(z,n));if(n&&typeof n=="object"){if(typeof n.value=="number")return Math.max(x,Math.min(z,n.value));let ea=typeof n.amplitude=="number"?n.amplitude:1,aa=typeof n.frequency=="number"?n.frequency:1,la=typeof n.phase=="number"?n.phase:0,oa=typeof n.offset=="number"?n.offset:F,ta=ce,ra=oa+ea*Math.sin(2*Math.PI*aa*ta+la);return Math.max(x,Math.min(z,ra))}}}return Math.max(x,Math.min(z,F))},K=ie(l),W=K.padX,Y=K.padY,M=Math.max(1,C-W*2),P=Math.max(1,R-Y*2),G=o.renderer.getTemporaryTexture(M,P,[...f.excludeTextures||[],c]),j=G.createView();o.renderer.beginFrame(i,j,{r:0,g:0,b:0,a:0},M,P,"clear").end(),await de(q,{...f,virtualMedia:q,containerWidth:M,containerHeight:P},j,G,M,P);let X=o.renderer.getTemporaryTexture(C,R,[G,c,...f.excludeTextures||[]]),Q=X.createView(),J=o.renderer.beginFrame(i,Q,{r:0,g:0,b:0,a:0},C,R,"clear");o.renderer.drawTexture(J,G,{x:W,y:Y,width:M,height:P},{opacity:1}),J.end();let{pipeline:ue,uniformLayout:pe,textureLayout:fe}=va(o.device,o.renderer.format),me=o.renderer.samplerCache.getSampler(o.device),m=l.dropShadow??{},b=l.innerShadow??{},S=l.outerGlow??{},v=l.innerGlow??{},w=l.stroke??{},d=l.bevelEmboss??{},k=l.colorOverlay??{},E=h(m.color??"#000000"),be=t(l.dropShadowOpacityHandleId,m.opacity??.75,0,1),ge=t(l.dropShadowAngleHandleId,m.angle??120,0,360)*Math.PI/180,he=t(l.dropShadowDistanceHandleId,m.distance??10,0,500),ye=t(l.dropShadowSpreadHandleId,m.spread??0,0,100),Se=t(l.dropShadowSizeHandleId,m.size??10,0,250),ve=A[m.blendMode??"multiply"]??1,L=h(b.color??"#000000"),we=t(l.innerShadowOpacityHandleId,b.opacity??.75,0,1),xe=t(l.innerShadowAngleHandleId,b.angle??120,0,360)*Math.PI/180,ze=t(l.innerShadowDistanceHandleId,b.distance??5,0,500),Oe=t(l.innerShadowChokeHandleId,b.choke??0,0,100),Ae=t(l.innerShadowSizeHandleId,b.size??5,0,250),Me=A[b.blendMode??"multiply"]??1,H=h(S.color??"#ffffff"),Pe=t(l.outerGlowOpacityHandleId,S.opacity??.75,0,1),Ge=t(l.outerGlowSizeHandleId,S.size??15,0,250),Ie=t(l.outerGlowSpreadHandleId,S.spread??0,0,100),_e=A[S.blendMode??"screen"]??2,B=h(v.color??"#ffffff"),Ce=t(l.innerGlowOpacityHandleId,v.opacity??.75,0,1),Re=t(l.innerGlowSizeHandleId,v.size??15,0,250),ke=t(l.innerGlowSpreadHandleId,v.spread??0,0,100),Ee=A[v.blendMode??"screen"]??2,T=h(w.color??"#ffffff"),Le=t(l.strokeSizeHandleId,w.size??2,0,100),He=ya[w.position??"outside"]??0,Be=t(l.strokeOpacityHandleId,w.opacity??1,0,1),Te=A[w.blendMode??"normal"]??0,D=h(d.highlightColor??"#ffffff"),N=h(d.shadowColor??"#000000"),De=ga[d.style??"InnerBevel"]??0,Ne=ha[d.technique??"Smooth"]??0,Ue=t(l.bevelEmbossDepthHandleId,d.depth??100,1,1e3),Fe=d.direction==="Down"?-1:1,qe=t(l.bevelEmbossSizeHandleId,d.size??5,0,250),Ve=t(l.bevelEmbossSoftenHandleId,d.soften??0,0,50),Ke=t(l.bevelEmbossAngleHandleId,d.angle??120,0,360)*Math.PI/180,We=t(l.bevelEmbossAltitudeHandleId,d.altitude??30,0,90)*Math.PI/180,Ye=t(l.bevelEmbossHighlightOpacityHandleId,d.highlightOpacity??.75,0,1),je=t(l.bevelEmbossShadowOpacityHandleId,d.shadowOpacity??.75,0,1),U=h(k.color??"#ff0000"),Xe=t(l.colorOverlayOpacityHandleId,k.opacity??1,0,1),Qe=A[k.blendMode??"normal"]??0;e.fill(0),e[0]=E[0],e[1]=E[1],e[2]=E[2],e[3]=E[3],e[4]=m.enabled?1:0,e[5]=be,e[6]=ge,e[7]=he,e[8]=ye,e[9]=Se,e[10]=ve,e[11]=0,e[12]=L[0],e[13]=L[1],e[14]=L[2],e[15]=L[3],e[16]=b.enabled?1:0,e[17]=we,e[18]=xe,e[19]=ze,e[20]=Oe,e[21]=Ae,e[22]=Me,e[23]=0,e[24]=H[0],e[25]=H[1],e[26]=H[2],e[27]=H[3],e[28]=S.enabled?1:0,e[29]=Pe,e[30]=Ge,e[31]=Ie,e[32]=_e,e[33]=0,e[34]=0,e[35]=0,e[36]=B[0],e[37]=B[1],e[38]=B[2],e[39]=B[3],e[40]=v.enabled?1:0,e[41]=Ce,e[42]=Re,e[43]=ke,e[44]=Ee,e[45]=0,e[46]=0,e[47]=0,e[48]=T[0],e[49]=T[1],e[50]=T[2],e[51]=T[3],e[52]=w.enabled?1:0,e[53]=Le,e[54]=He,e[55]=Be,e[56]=Te,e[57]=0,e[58]=0,e[59]=0,e[60]=D[0],e[61]=D[1],e[62]=D[2],e[63]=D[3],e[64]=N[0],e[65]=N[1],e[66]=N[2],e[67]=N[3],e[68]=d.enabled?1:0,e[69]=De,e[70]=Ne,e[71]=Ue,e[72]=Fe,e[73]=qe,e[74]=Ve,e[75]=Ke,e[76]=We,e[77]=Ye,e[78]=je,e[79]=0,e[80]=U[0],e[81]=U[1],e[82]=U[2],e[83]=U[3],e[84]=k.enabled?1:0,e[85]=Xe,e[86]=Qe,e[87]=0;let Je=o.renderer.getTemporaryBuffer(e),Ze=o.device.createBindGroup({layout:pe,entries:[{binding:0,resource:{buffer:Je}}]}),$e=o.device.createBindGroup({layout:fe,entries:[{binding:0,resource:Q},{binding:1,resource:me}]}),Z=o.renderer.getTemporaryTexture(C,R,[X,G,c,...f.excludeTextures||[]]),I=i.beginRenderPass({colorAttachments:[{view:Z.createView(),loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});I.setPipeline(ue),I.setBindGroup(0,Ze),I.setBindGroup(1,$e),I.draw(4),I.end();let $=o.renderer.beginFrame(i,u,{r:0,g:0,b:0,a:0},p,_,"load");o.renderer.drawTexture($,Z,{x:0,y:0,width:p,height:_},{opacity:l.opacity??1}),r.pass=$};var ka=ee({WebGPURenderer:se});export{ka as a};
509
+ `,fe=new WeakMap;function za(r,l){let i=fe.get(r);if(i)return i;let c=r.createShaderModule({code:xa}),u=X(r,["uniform"]),m=X(r,["texture","sampler"]),b=r.createPipelineLayout({bindGroupLayouts:[u,m]});return i={pipeline:ne(r,{module:c,layouts:b,format:l,blend:ie}),uniformLayout:u,textureLayout:m},fe.set(r,i),i}var e=new Float32Array(88),ge=async r=>{let{ctx:l,encoder:i,pass:c,targetTexture:u,targetWidth:m,targetHeight:b,props:p,drawChild:he}=r,t=p.virtualMedia?.operation;if(t?.op!=="LayerStyle"||!t)return;let Y=p.virtualMedia.children?.[0];if(!Y)return;c.end();let M=m,H=b,ye=p.elapsedMs!==void 0?p.elapsedMs/1e3:(p.frame??0)/(p.fps||30),o=(j,V,I=0,G=1e3)=>{if(j&&t.inputs?.[j]?.connectionValid){let S=t.inputs[j].outputItem;if(!S)return Math.max(I,Math.min(G,V));if(S.type==="Number"){let n=typeof S.data=="number"?S.data:S.data?.value??V;return Math.max(I,Math.min(G,n))}if(S.type==="Signal"){let n=S.data;if(typeof n=="number")return Math.max(I,Math.min(G,n));if(n&&typeof n=="object"){if(typeof n.value=="number")return Math.max(I,Math.min(G,n.value));let sa=typeof n.amplitude=="number"?n.amplitude:1,da=typeof n.frequency=="number"?n.frequency:1,ca=typeof n.phase=="number"?n.phase:0,ua=typeof n.offset=="number"?n.offset:V,pa=ye,ma=ua+sa*Math.sin(2*Math.PI*da*pa+ca);return Math.max(I,Math.min(G,ma))}}}return Math.max(I,Math.min(G,V))},Q=be(t),$=Q.padX,J=Q.padY,E=Math.max(1,M-$*2),L=Math.max(1,H-J*2),k=l.renderer.getTemporaryTexture(E,L,[...p.excludeTextures||[],u]),Z=k.createView();l.renderer.beginFrame(i,Z,{r:0,g:0,b:0,a:0},E,L,"clear").end(),await he(Y,{...p,virtualMedia:Y,containerWidth:E,containerHeight:L},Z,k,E,L);let ee=l.renderer.getTemporaryTexture(M,H,[k,u,...p.excludeTextures||[]]),ae=ee.createView(),te=l.renderer.beginFrame(i,ae,{r:0,g:0,b:0,a:0},M,H,"clear");l.renderer.drawTexture(te,k,{x:$,y:J,width:E,height:L},{opacity:1}),te.end();let{pipeline:Se,uniformLayout:we,textureLayout:ve}=za(l.device,l.renderer.format),xe=l.renderer.samplerCache.getSampler(l.device),f=t.dropShadow??{},g=t.innerShadow??{},O=t.outerGlow??{},P=t.innerGlow??{},_=t.stroke??{},d=t.bevelEmboss??{},T=t.colorOverlay??{},D=y(f.color??"#000000"),ze=o(t.dropShadowOpacityHandleId,f.opacity??.75,0,1),Ae=o(t.dropShadowAngleHandleId,f.angle??120,0,360)*Math.PI/180,Oe=o(t.dropShadowDistanceHandleId,f.distance??10,0,500),Pe=o(t.dropShadowSpreadHandleId,f.spread??0,0,100),_e=o(t.dropShadowSizeHandleId,f.size??10,0,250),Ie=C[f.blendMode??"multiply"]??1,B=y(g.color??"#000000"),Ge=o(t.innerShadowOpacityHandleId,g.opacity??.75,0,1),Re=o(t.innerShadowAngleHandleId,g.angle??120,0,360)*Math.PI/180,Ce=o(t.innerShadowDistanceHandleId,g.distance??5,0,500),Ee=o(t.innerShadowChokeHandleId,g.choke??0,0,100),Le=o(t.innerShadowSizeHandleId,g.size??5,0,250),ke=C[g.blendMode??"multiply"]??1,N=y(O.color??"#ffffff"),Me=o(t.outerGlowOpacityHandleId,O.opacity??.75,0,1),He=o(t.outerGlowSizeHandleId,O.size??15,0,250),Te=o(t.outerGlowSpreadHandleId,O.spread??0,0,100),De=C[O.blendMode??"screen"]??2,U=y(P.color??"#ffffff"),Be=o(t.innerGlowOpacityHandleId,P.opacity??.75,0,1),Ne=o(t.innerGlowSizeHandleId,P.size??15,0,250),Ue=o(t.innerGlowSpreadHandleId,P.spread??0,0,100),Fe=C[P.blendMode??"screen"]??2,F=y(_.color??"#ffffff"),qe=o(t.strokeSizeHandleId,_.size??2,0,100),Ke=va[_.position??"outside"]??0,We=o(t.strokeOpacityHandleId,_.opacity??1,0,1),Ve=C[_.blendMode??"normal"]??0,q=y(d.highlightColor??"#ffffff"),K=y(d.shadowColor??"#000000"),Ye=Sa[d.style??"InnerBevel"]??0,je=wa[d.technique??"Smooth"]??0,Xe=o(t.bevelEmbossDepthHandleId,d.depth??100,1,1e3),Qe=d.direction==="Down"?-1:1,$e=o(t.bevelEmbossSizeHandleId,d.size??5,0,250),Je=o(t.bevelEmbossSoftenHandleId,d.soften??0,0,50),Ze=o(t.bevelEmbossAngleHandleId,d.angle??120,0,360)*Math.PI/180,ea=o(t.bevelEmbossAltitudeHandleId,d.altitude??30,0,90)*Math.PI/180,aa=o(t.bevelEmbossHighlightOpacityHandleId,d.highlightOpacity??.75,0,1),ta=o(t.bevelEmbossShadowOpacityHandleId,d.shadowOpacity??.75,0,1),W=y(T.color??"#ff0000"),la=o(t.colorOverlayOpacityHandleId,T.opacity??1,0,1),oa=C[T.blendMode??"normal"]??0;e.fill(0),e[0]=D[0],e[1]=D[1],e[2]=D[2],e[3]=D[3],e[4]=f.enabled?1:0,e[5]=ze,e[6]=Ae,e[7]=Oe,e[8]=Pe,e[9]=_e,e[10]=Ie,e[11]=0,e[12]=B[0],e[13]=B[1],e[14]=B[2],e[15]=B[3],e[16]=g.enabled?1:0,e[17]=Ge,e[18]=Re,e[19]=Ce,e[20]=Ee,e[21]=Le,e[22]=ke,e[23]=0,e[24]=N[0],e[25]=N[1],e[26]=N[2],e[27]=N[3],e[28]=O.enabled?1:0,e[29]=Me,e[30]=He,e[31]=Te,e[32]=De,e[33]=0,e[34]=0,e[35]=0,e[36]=U[0],e[37]=U[1],e[38]=U[2],e[39]=U[3],e[40]=P.enabled?1:0,e[41]=Be,e[42]=Ne,e[43]=Ue,e[44]=Fe,e[45]=0,e[46]=0,e[47]=0,e[48]=F[0],e[49]=F[1],e[50]=F[2],e[51]=F[3],e[52]=_.enabled?1:0,e[53]=qe,e[54]=Ke,e[55]=We,e[56]=Ve,e[57]=0,e[58]=0,e[59]=0,e[60]=q[0],e[61]=q[1],e[62]=q[2],e[63]=q[3],e[64]=K[0],e[65]=K[1],e[66]=K[2],e[67]=K[3],e[68]=d.enabled?1:0,e[69]=Ye,e[70]=je,e[71]=Xe,e[72]=Qe,e[73]=$e,e[74]=Je,e[75]=Ze,e[76]=ea,e[77]=aa,e[78]=ta,e[79]=0,e[80]=W[0],e[81]=W[1],e[82]=W[2],e[83]=W[3],e[84]=T.enabled?1:0,e[85]=la,e[86]=oa,e[87]=0;let ra=l.renderer.getTemporaryBuffer(e),ia=l.device.createBindGroup({layout:we,entries:[{binding:0,resource:{buffer:ra}}]}),na=l.device.createBindGroup({layout:ve,entries:[{binding:0,resource:ae},{binding:1,resource:xe}]}),le=l.renderer.getTemporaryTexture(M,H,[ee,k,u,...p.excludeTextures||[]]);de(i,le.createView(),Se,[ia,na]),se(r,le,t.opacity??1)};var Da=oe({WebGPURenderer:ge});export{Da as a};
@@ -0,0 +1,26 @@
1
+ import{a as F}from"./chunk-XOEEGC4Z.mjs";import{b as I,c as B}from"./chunk-FLPSWDX4.mjs";import{a as p}from"./chunk-NQZKBFC6.mjs";import{a as L,d as y,g as N,h as V,j as D,m as k}from"./chunk-ENKKLU7B.mjs";import{e as b}from"./chunk-ZIIFTWDH.mjs";import{z as U}from"./chunk-63SFBHEH.mjs";import{e as c}from"./chunk-BVF64D6H.mjs";c();c();c();var C=new Map;function _(e){let t=C.get(e);return t||(t=(async()=>{try{let r=await b.acquire(e);try{let o=await r.getPrimaryVideoTrack();return o?{width:o.displayWidth,height:o.displayHeight}:null}finally{b.release(e)}}catch{return null}})(),C.set(e,t)),t}c();var J=F().field("angle",p.number().default(90),{bindable:!0,dataTypes:["Number","Signal"],label:"Angle Signal",description:"Rotation in degrees about the frame center, clockwise. Any value; 90 / 180 / 270 fix footage shot sideways or upside down."}).field("fit",p.enum(["cover","contain","fill"]).default("cover"),{description:"How the rotated source sits in the output: cover fills it (cropping the overhang), contain shows all of it (transparent margins), fill keeps the unrotated source stretched to the output and only turns it."}).field("scale",p.number().min(.01).max(20).default(1),{bindable:!0,dataTypes:["Number","Signal"],label:"Scale Signal",description:"Extra zoom applied after the fit (1 = exactly fitted)."}).build(),ie=J.schema,ae=p.union([I,B]);function A(e,t,r,o,i,a){if(a==="fill")return{width:r,height:o};let d=i*Math.PI/180,n=Math.abs(Math.cos(d)),u=Math.abs(Math.sin(d)),s=a==="cover"?Math.max((n*r+u*o)/e,(u*r+n*o)/t):Math.min(r/(n*e+u*t),o/(u*e+n*t));return{width:e*s,height:t*s}}var K=`
2
+ struct RotateUniforms {
3
+ outSize: vec2<f32>,
4
+ size : vec2<f32>,
5
+ cs : vec2<f32>,
6
+ _pad : vec2<f32>,
7
+ };
8
+
9
+ @group(0) @binding(0) var<uniform> u : RotateUniforms;
10
+ @group(1) @binding(0) var tex : texture_2d<f32>;
11
+ @group(1) @binding(1) var samp : sampler;
12
+ ${L}
13
+
14
+ @fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {
15
+ let p = (in.uv - vec2<f32>(0.5)) * u.outSize;
16
+ // Clockwise on screen (y down): undo it with the transpose.
17
+ let q = vec2<f32>(u.cs.x * p.x + u.cs.y * p.y, -u.cs.y * p.x + u.cs.x * p.y);
18
+ let uv = q / u.size + vec2<f32>(0.5);
19
+ // Distance (output px) inside the source rectangle's nearest edge.
20
+ let edge = (vec2<f32>(0.5) - abs(uv - vec2<f32>(0.5))) * u.size;
21
+ let coverage = clamp(min(edge.x, edge.y) + 0.5, 0.0, 1.0);
22
+ let color = textureSampleLevel(tex, samp, clamp(uv, vec2<f32>(0.0), vec2<f32>(1.0)), 0.0);
23
+ // Premultiplied: coverage scales every channel.
24
+ return color * coverage;
25
+ }
26
+ `,E=new WeakMap,l=new Float32Array(8);function X(e,t){let r=E.get(e);if(r)return r;let o=y(e,["uniform"]),i=y(e,["texture","sampler"]),a=e.createShaderModule({code:K}),d=N(e,{module:a,layouts:[o,i],format:t}),n={uniformLayout:o,textureLayout:i,pipeline:d};return E.set(e,n),n}function O(e,t,r,o){let i=typeof e=="function"?e(r,o):e!==null&&typeof e=="object"?"get"in e&&typeof e.get=="function"?e.get({frame:r,fps:o}):"value"in e?e.value:e:e,a=Number(i??t);return Number.isFinite(a)?a:t}async function Z(e){for(let t=e;t;){let{width:r,height:o}=t.metadata??{};if(r&&o)return{width:r,height:o};let i=t.operation;if(i.op==="source"){let a=typeof i.url=="string"?i.url:i.source;return typeof a=="string"?_(a):null}t=t.children?.[0]}return null}var W=async e=>{let{ctx:t,encoder:r,pass:o,targetTexture:i,targetWidth:a,targetHeight:d,props:n}=e,u=n.virtualMedia?.operation;if(u?.op!=="Rotate"||!u)return;let s=n.virtualMedia.children?.[0];if(!s)return;o.end();let q=n.frame??0,x=n.compositionFrame??q,R=n.fps||30,m=a,f=d,S=await Z(s),h=S?.width??n.containerWidth??m,g=S?.height??n.containerHeight??f,{texture:P}=await V(e,s,{width:h,height:g,props:{...n,containerWidth:h,containerHeight:g,virtualMedia:s}}),w=O(u.angle,90,x,R),M=Math.max(.01,O(u.scale,1,x,R)),G=A(h,g,m,f,w,u.fit??"cover"),T=w*Math.PI/180;l[0]=m,l[1]=f,l[2]=G.width*M,l[3]=G.height*M,l[4]=Math.cos(T),l[5]=Math.sin(T);let{pipeline:j,uniformLayout:H,textureLayout:Q}=X(t.device,t.renderer.format),Y=t.device.createBindGroup({layout:H,entries:[{binding:0,resource:{buffer:t.renderer.getTemporaryBuffer(l)}}]}),$=t.device.createBindGroup({layout:Q,entries:[{binding:0,resource:P.createView()},{binding:1,resource:t.renderer.samplerCache.getSampler(t.device)}]}),z=t.renderer.getTemporaryTexture(m,f,[P,i,...n.excludeTextures||[]]);k(r,z.createView(),j,[Y,$]),D(e,z,u.opacity??1)};var ge=U({WebGPURenderer:W});export{ge as a};