framefields 2.8.1 → 2.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (431) hide show
  1. package/README.md +30 -1
  2. package/dist/audio/index.mjs +10 -10
  3. package/dist/{audio-vatRe308.mjs → audio-BfQg37MW.mjs} +3 -3
  4. package/dist/{audio-vatRe308.mjs.map → audio-BfQg37MW.mjs.map} +1 -1
  5. package/dist/cli/check-worker.mjs +44 -44
  6. package/dist/components/index.d.mts +2 -2
  7. package/dist/components/index.mjs +43 -43
  8. package/dist/{dist-CFe1fC9l.mjs → dist-C1cCW7Bt.mjs} +8 -1
  9. package/dist/{dist-CFe1fC9l.mjs.map → dist-C1cCW7Bt.mjs.map} +1 -1
  10. package/dist/{dist-BbwtlSZO.mjs → dist-C8Xq3zgx.mjs} +2 -2
  11. package/dist/{dist-BbwtlSZO.mjs.map → dist-C8Xq3zgx.mjs.map} +1 -1
  12. package/dist/effects/index.d.mts +1 -1
  13. package/dist/effects/index.mjs +35 -35
  14. package/dist/{effects-CCyfjbhZ.mjs → effects-CemgqEPv.mjs} +2 -2
  15. package/dist/{effects-CCyfjbhZ.mjs.map → effects-CemgqEPv.mjs.map} +1 -1
  16. package/dist/fonts/index.mjs +2 -2
  17. package/dist/{fonts-C1mgtkCa.mjs → fonts-BW0pPcvJ.mjs} +2 -2
  18. package/dist/{fonts-C1mgtkCa.mjs.map → fonts-BW0pPcvJ.mjs.map} +1 -1
  19. package/dist/{gpu-CU2tEKJJ.mjs → gpu-CMaa63nz.mjs} +2 -2
  20. package/dist/{gpu-CU2tEKJJ.mjs.map → gpu-CMaa63nz.mjs.map} +1 -1
  21. package/dist/{index-BwRrsP_V.d.mts → index-CZjrnylh.d.mts} +457 -417
  22. package/dist/index-CZjrnylh.d.mts.map +1 -0
  23. package/dist/index-D5UDyVMb.d.mts.map +1 -1
  24. package/dist/{index-UDDAfHAF.d.mts → index-Du5YgdzM.d.mts} +50 -12
  25. package/dist/index-Du5YgdzM.d.mts.map +1 -0
  26. package/dist/index.d.mts +3 -3
  27. package/dist/index.mjs +50 -50
  28. package/dist/preview/index.mjs +10 -10
  29. package/dist/{preview-WXbsf6Dv.mjs → preview-BQVgn6Ho.mjs} +2 -2
  30. package/dist/{preview-WXbsf6Dv.mjs.map → preview-BQVgn6Ho.mjs.map} +1 -1
  31. package/dist/preview-engine/audio.mjs +1 -1
  32. package/dist/preview-engine/{chunk-JGDZQCNU.mjs → chunk-2B722GXM.mjs} +1 -1
  33. package/dist/preview-engine/{chunk-GFW3D464.mjs → chunk-2DWY7UBV.mjs} +1 -1
  34. package/dist/preview-engine/{chunk-72DYOIMP.mjs → chunk-2PYTDN2C.mjs} +1 -1
  35. package/dist/preview-engine/{chunk-PF3SXQNV.mjs → chunk-34DL53D5.mjs} +1 -1
  36. package/dist/preview-engine/{chunk-GLXJOXBE.mjs → chunk-34RJ7GAS.mjs} +1 -1
  37. package/dist/preview-engine/{chunk-6OY4YLTC.mjs → chunk-35HMRW4I.mjs} +1 -1
  38. package/dist/preview-engine/chunk-374QY63R.mjs +1974 -0
  39. package/dist/preview-engine/{chunk-W26U6BP2.mjs → chunk-4WYM72ZN.mjs} +1 -1
  40. package/dist/preview-engine/{chunk-EQ4VBUWM.mjs → chunk-5AWAOMBR.mjs} +1 -1
  41. package/dist/preview-engine/{chunk-J4SHMCTG.mjs → chunk-6R3UJBL5.mjs} +1 -1
  42. package/dist/preview-engine/{chunk-VHGC72XP.mjs → chunk-73CNXGAK.mjs} +1 -1
  43. package/dist/preview-engine/{chunk-KYOPOCO5.mjs → chunk-AHQCDTD6.mjs} +1 -1
  44. package/dist/preview-engine/{chunk-ADV2TIKA.mjs → chunk-BEYA25UZ.mjs} +1 -1
  45. package/dist/preview-engine/{chunk-RBDIRBEI.mjs → chunk-BJV2LBII.mjs} +1 -1
  46. package/dist/preview-engine/{chunk-LBJBBEKP.mjs → chunk-BVDWS3D2.mjs} +1 -1
  47. package/dist/preview-engine/chunk-BXPM5SJ3.mjs +1 -0
  48. package/dist/preview-engine/{chunk-NIPWL6Z5.mjs → chunk-C4M3B2Q2.mjs} +1 -1
  49. package/dist/preview-engine/{chunk-LLUFOFF4.mjs → chunk-CC4NNNIY.mjs} +1 -1
  50. package/dist/preview-engine/chunk-CCB3VTY2.mjs +39 -0
  51. package/dist/preview-engine/{chunk-NX66555S.mjs → chunk-CN2VLYLB.mjs} +1 -1
  52. package/dist/preview-engine/{chunk-SK7PUBTC.mjs → chunk-DMSZXG56.mjs} +1 -1
  53. package/dist/preview-engine/{chunk-WC257OBY.mjs → chunk-DVZITDQS.mjs} +1 -1
  54. package/dist/preview-engine/{chunk-COZG35ZR.mjs → chunk-FTCEG3SF.mjs} +1 -1
  55. package/dist/preview-engine/{chunk-57LES7TL.mjs → chunk-GA4HNR44.mjs} +1 -1
  56. package/dist/preview-engine/chunk-GEUUXTDL.mjs +138 -0
  57. package/dist/preview-engine/{chunk-S4WNCEMO.mjs → chunk-GIICZZQI.mjs} +1 -1
  58. package/dist/preview-engine/{chunk-RTHU7REC.mjs → chunk-GRJJVSOV.mjs} +1 -1
  59. package/dist/preview-engine/{chunk-RGDM6PQ5.mjs → chunk-GZWA5QJS.mjs} +1 -1
  60. package/dist/preview-engine/{chunk-LZNNM5OB.mjs → chunk-H7BSN7V7.mjs} +1 -1
  61. package/dist/preview-engine/{chunk-JXUENEQO.mjs → chunk-HOV6DDBZ.mjs} +1 -1
  62. package/dist/preview-engine/{chunk-C6XLAJLL.mjs → chunk-JSYG6OWZ.mjs} +1 -1
  63. package/dist/preview-engine/{chunk-GZVPVOHB.mjs → chunk-K3C6GUQD.mjs} +1 -1
  64. package/dist/preview-engine/chunk-KOVN277Z.mjs +1 -0
  65. package/dist/preview-engine/{chunk-Y6TWMUJC.mjs → chunk-LVYVXVZO.mjs} +1 -1
  66. package/dist/preview-engine/{chunk-NKAVHU7H.mjs → chunk-MIEH74UH.mjs} +7 -7
  67. package/dist/preview-engine/{chunk-AVDHZNIZ.mjs → chunk-OH5W5EL6.mjs} +1 -1
  68. package/dist/preview-engine/{chunk-22F33PPP.mjs → chunk-P5FKRQFU.mjs} +1 -1
  69. package/dist/preview-engine/{chunk-7X2AUKTU.mjs → chunk-PM2W4VLT.mjs} +1 -1
  70. package/dist/preview-engine/{chunk-PYX6Q2EJ.mjs → chunk-QCSVT73T.mjs} +1 -1
  71. package/dist/preview-engine/{chunk-523CTDOC.mjs → chunk-RJIAES3X.mjs} +1 -1
  72. package/dist/preview-engine/{chunk-DPQN7WYQ.mjs → chunk-S2ABWY5G.mjs} +1 -1
  73. package/dist/preview-engine/{chunk-G7JJ6HVL.mjs → chunk-SF37HXAH.mjs} +1 -1
  74. package/dist/preview-engine/{chunk-OKLYIQ5F.mjs → chunk-SPJPM43P.mjs} +1 -1
  75. package/dist/preview-engine/{chunk-UOTMBWBJ.mjs → chunk-TNJEZKXM.mjs} +1 -1
  76. package/dist/preview-engine/chunk-ULOFDFHJ.mjs +1 -0
  77. package/dist/preview-engine/{chunk-LLB3AGBQ.mjs → chunk-UQKPDGEH.mjs} +1 -1
  78. package/dist/preview-engine/{chunk-DISKQ5MH.mjs → chunk-UXYM2G6J.mjs} +1 -1
  79. package/dist/preview-engine/{chunk-U5YNECNG.mjs → chunk-VN36PRVD.mjs} +1 -1
  80. package/dist/preview-engine/{chunk-PMOKPVSD.mjs → chunk-VVE2QHVG.mjs} +1 -1
  81. package/dist/preview-engine/{chunk-PEUQRSIM.mjs → chunk-Y5K5LVOR.mjs} +1 -1
  82. package/dist/preview-engine/chunk-YGKO4NIU.mjs +1 -0
  83. package/dist/preview-engine/{chunk-PSEMCJBH.mjs → chunk-ZJ5SWTCW.mjs} +1 -1
  84. package/dist/preview-engine/chunk-ZY47XIRK.mjs +5 -0
  85. package/dist/preview-engine/components.mjs +1 -1
  86. package/dist/preview-engine/effects.mjs +1 -1
  87. package/dist/preview-engine/framefields.mjs +1 -1
  88. package/dist/preview-engine/player.mjs +1 -1
  89. package/dist/preview-engine/renderers-3BOQOUEU.mjs +1 -0
  90. package/dist/preview-engine/renderers-3M2FESR2.mjs +1 -0
  91. package/dist/preview-engine/{renderers-FEEIDQF3.mjs → renderers-4F7WLQD5.mjs} +1 -1
  92. package/dist/preview-engine/{renderers-OP6MKYRM.mjs → renderers-5KANN7XF.mjs} +1 -1
  93. package/dist/preview-engine/{renderers-TVRR7PGN.mjs → renderers-5TO2SXFR.mjs} +1 -1
  94. package/dist/preview-engine/{renderers-DR7UZ3QR.mjs → renderers-5UZ3YFBD.mjs} +1 -1
  95. package/dist/preview-engine/renderers-6LHIWKMZ.mjs +1 -0
  96. package/dist/preview-engine/{renderers-7F2KF5RE.mjs → renderers-6Z7DWAPH.mjs} +1 -1
  97. package/dist/preview-engine/renderers-77PDUMYI.mjs +1 -0
  98. package/dist/preview-engine/{renderers-3J3NCOAI.mjs → renderers-7C5RA3R5.mjs} +1 -1
  99. package/dist/preview-engine/{renderers-KPCQGBIY.mjs → renderers-7XHO6M3B.mjs} +1 -1
  100. package/dist/preview-engine/{renderers-KJAOPYAU.mjs → renderers-A24KZK2Q.mjs} +1 -1
  101. package/dist/preview-engine/renderers-A43VCJ7X.mjs +1 -0
  102. package/dist/preview-engine/renderers-AKY464RY.mjs +1 -0
  103. package/dist/preview-engine/renderers-C5UO6PL5.mjs +1 -0
  104. package/dist/preview-engine/renderers-C64QSZO4.mjs +1 -0
  105. package/dist/preview-engine/renderers-CIRCR6NG.mjs +1 -0
  106. package/dist/preview-engine/renderers-CIWOPETY.mjs +1 -0
  107. package/dist/preview-engine/renderers-CUMVIVHI.mjs +1 -0
  108. package/dist/preview-engine/renderers-CZEZCELP.mjs +1 -0
  109. package/dist/preview-engine/{renderers-R3YVLWKV.mjs → renderers-ENMY4DKF.mjs} +1 -1
  110. package/dist/preview-engine/{renderers-AAENCA7X.mjs → renderers-FSI5KNGZ.mjs} +1 -1
  111. package/dist/preview-engine/renderers-FSQMWHQM.mjs +1 -0
  112. package/dist/preview-engine/renderers-FZEW5C23.mjs +1 -0
  113. package/dist/preview-engine/renderers-HCET2IML.mjs +1 -0
  114. package/dist/preview-engine/{renderers-LBX7GPDU.mjs → renderers-IHGAWLUF.mjs} +1 -1
  115. package/dist/preview-engine/renderers-IUOOC6K7.mjs +1 -0
  116. package/dist/preview-engine/{renderers-VXMR47WZ.mjs → renderers-KC6ZSKCW.mjs} +1 -1
  117. package/dist/preview-engine/renderers-KYYJLVIJ.mjs +1 -0
  118. package/dist/preview-engine/renderers-L4GE7WV3.mjs +1 -0
  119. package/dist/preview-engine/renderers-L6YDX6GS.mjs +1 -0
  120. package/dist/preview-engine/renderers-LRAFWKCO.mjs +1 -0
  121. package/dist/preview-engine/renderers-LU3XZWEB.mjs +1 -0
  122. package/dist/preview-engine/{renderers-4YYGKLDK.mjs → renderers-MD3PRFZL.mjs} +1 -1
  123. package/dist/preview-engine/renderers-MOEC2XZZ.mjs +1 -0
  124. package/dist/preview-engine/{renderers-RGDTRVZM.mjs → renderers-NCGH2WWJ.mjs} +1 -1
  125. package/dist/preview-engine/renderers-ND2WV4K3.mjs +1 -0
  126. package/dist/preview-engine/renderers-NJ5CWVVH.mjs +1 -0
  127. package/dist/preview-engine/renderers-NKXYPR3V.mjs +1 -0
  128. package/dist/preview-engine/{renderers-WVQQZQ6Y.mjs → renderers-NUAI4TO5.mjs} +1 -1
  129. package/dist/preview-engine/renderers-NWR66CGK.mjs +1 -0
  130. package/dist/preview-engine/renderers-O22WTBRM.mjs +1 -0
  131. package/dist/preview-engine/renderers-O55BEDQZ.mjs +1 -0
  132. package/dist/preview-engine/renderers-PBBA7LQB.mjs +1 -0
  133. package/dist/preview-engine/{renderers-BL7Z3FTF.mjs → renderers-PIIEUKFE.mjs} +1 -1
  134. package/dist/preview-engine/renderers-PPZK6VEW.mjs +1 -0
  135. package/dist/preview-engine/renderers-Q6LJRZ7R.mjs +1 -0
  136. package/dist/preview-engine/{renderers-7TNEKJZS.mjs → renderers-QA2HKUJJ.mjs} +1 -1
  137. package/dist/preview-engine/renderers-RMEACSRL.mjs +1 -0
  138. package/dist/preview-engine/{renderers-AWRIELVX.mjs → renderers-RN2MHIFK.mjs} +1 -1
  139. package/dist/preview-engine/renderers-SEIAUKJF.mjs +1 -0
  140. package/dist/preview-engine/renderers-SP42LCSI.mjs +1 -0
  141. package/dist/preview-engine/{renderers-OE55O27K.mjs → renderers-T74CQCEN.mjs} +1 -1
  142. package/dist/preview-engine/renderers-T7SZA3BX.mjs +1 -0
  143. package/dist/preview-engine/{renderers-ZUQ2ZBYY.mjs → renderers-TGJSOKDY.mjs} +1 -1
  144. package/dist/preview-engine/renderers-TSBV4KPE.mjs +1 -0
  145. package/dist/preview-engine/{renderers-2SE5BLLB.mjs → renderers-U4M7ZCV4.mjs} +1 -1
  146. package/dist/preview-engine/{renderers-YEI4K4W4.mjs → renderers-V3AQO7AR.mjs} +1 -1
  147. package/dist/preview-engine/renderers-VADTDAHD.mjs +1 -0
  148. package/dist/preview-engine/renderers-VNNWI5C3.mjs +1 -0
  149. package/dist/preview-engine/{renderers-YYMRKHAA.mjs → renderers-WEYAHOBK.mjs} +1 -1
  150. package/dist/preview-engine/renderers-WZ75MLP3.mjs +1 -0
  151. package/dist/preview-engine/renderers-XB5R4UQA.mjs +1 -0
  152. package/dist/preview-engine/{renderers-YIVPMPQS.mjs → renderers-Y22VSOXF.mjs} +1 -1
  153. package/dist/preview-engine/{renderers-Y53D5CQ7.mjs → renderers-YBIUZDGQ.mjs} +1 -1
  154. package/dist/preview-engine/renderers-YESJR4O7.mjs +1 -0
  155. package/dist/preview-engine/renderers-YKSRZRRT.mjs +1 -0
  156. package/dist/preview-engine/{renderers-V4VML5IG.mjs → renderers-ZACSHGNZ.mjs} +1 -1
  157. package/dist/preview-engine/signals.mjs +1 -1
  158. package/dist/preview-engine/src-NGVAJYHC.mjs +8 -0
  159. package/dist/{program-Cq4gP9Dd.mjs → program-CKpKkllV.mjs} +2 -2
  160. package/dist/{program-Cq4gP9Dd.mjs.map → program-CKpKkllV.mjs.map} +1 -1
  161. package/dist/renderer/index.mjs +2 -2
  162. package/dist/renderer--Ac-dg4A.mjs +5 -0
  163. package/dist/renderer--N7TMqzU.mjs +5 -0
  164. package/dist/{renderer-CXWAdRqn.mjs → renderer--fkmiVjl.mjs} +2 -2
  165. package/dist/{renderer-CXWAdRqn.mjs.map → renderer--fkmiVjl.mjs.map} +1 -1
  166. package/dist/{renderer-CZyJ72JZ.mjs → renderer-1r-Uq-Ae.mjs} +2 -2
  167. package/dist/{renderer-CZyJ72JZ.mjs.map → renderer-1r-Uq-Ae.mjs.map} +1 -1
  168. package/dist/renderer-2ecmdOae.mjs +5 -0
  169. package/dist/{renderer-D8CMakyz.mjs → renderer-8QIwXh7O.mjs} +3 -3
  170. package/dist/{renderer-D8CMakyz.mjs.map → renderer-8QIwXh7O.mjs.map} +1 -1
  171. package/dist/{renderer-B4iCFvJh.mjs → renderer-B-ur0Ej8.mjs} +3 -3
  172. package/dist/{renderer-B4iCFvJh.mjs.map → renderer-B-ur0Ej8.mjs.map} +1 -1
  173. package/dist/{renderer-BD25uND8.mjs → renderer-B0piZg9r.mjs} +383 -171
  174. package/dist/renderer-B0piZg9r.mjs.map +1 -0
  175. package/dist/{renderer-BZKkT-6Q.mjs → renderer-B2jjxsjO.mjs} +2 -2
  176. package/dist/{renderer-BZKkT-6Q.mjs.map → renderer-B2jjxsjO.mjs.map} +1 -1
  177. package/dist/{renderer-DEcbSNQd.mjs → renderer-B39I6CQw.mjs} +3 -3
  178. package/dist/{renderer-DEcbSNQd.mjs.map → renderer-B39I6CQw.mjs.map} +1 -1
  179. package/dist/{renderer-DIPyUVX2.mjs → renderer-B522Dkdk.mjs} +3 -3
  180. package/dist/{renderer-DIPyUVX2.mjs.map → renderer-B522Dkdk.mjs.map} +1 -1
  181. package/dist/renderer-B5RJp5g-.mjs +5 -0
  182. package/dist/renderer-B7xyT1Vb.mjs +5 -0
  183. package/dist/{renderer-CeX7uUXB.mjs → renderer-BAYTI6jj.mjs} +2 -2
  184. package/dist/{renderer-CeX7uUXB.mjs.map → renderer-BAYTI6jj.mjs.map} +1 -1
  185. package/dist/{renderer-DoRazdp_.mjs → renderer-BAusZ6Vu.mjs} +2 -2
  186. package/dist/{renderer-DoRazdp_.mjs.map → renderer-BAusZ6Vu.mjs.map} +1 -1
  187. package/dist/renderer-BBeArN_x.mjs +5 -0
  188. package/dist/renderer-BCAZDu-r.mjs +5 -0
  189. package/dist/{renderer-D41gHat4.mjs → renderer-BF0hx_iJ.mjs} +3 -3
  190. package/dist/{renderer-D41gHat4.mjs.map → renderer-BF0hx_iJ.mjs.map} +1 -1
  191. package/dist/renderer-BJnhik7Y.mjs +5 -0
  192. package/dist/{renderer-BeQrWrOa.mjs → renderer-BPWDsufX.mjs} +2 -2
  193. package/dist/{renderer-BeQrWrOa.mjs.map → renderer-BPWDsufX.mjs.map} +1 -1
  194. package/dist/{renderer-CxEBV-w0.mjs → renderer-BXJXziIt.mjs} +2 -2
  195. package/dist/{renderer-CxEBV-w0.mjs.map → renderer-BXJXziIt.mjs.map} +1 -1
  196. package/dist/{renderer-Ce8VPaog.mjs → renderer-BdyopiLC.mjs} +2 -2
  197. package/dist/{renderer-Ce8VPaog.mjs.map → renderer-BdyopiLC.mjs.map} +1 -1
  198. package/dist/{renderer-Bkqg-U2F.mjs → renderer-Bfk6A7UO.mjs} +3 -3
  199. package/dist/{renderer-Bkqg-U2F.mjs.map → renderer-Bfk6A7UO.mjs.map} +1 -1
  200. package/dist/{renderer-CAagaRag.mjs → renderer-BgO6BA_z.mjs} +2 -2
  201. package/dist/{renderer-CAagaRag.mjs.map → renderer-BgO6BA_z.mjs.map} +1 -1
  202. package/dist/{renderer-DlZwbO-A.mjs → renderer-BlPqTEii.mjs} +2 -2
  203. package/dist/{renderer-DlZwbO-A.mjs.map → renderer-BlPqTEii.mjs.map} +1 -1
  204. package/dist/{renderer-BEuU7qlG.mjs → renderer-BlvGcyAN.mjs} +2 -2
  205. package/dist/{renderer-BEuU7qlG.mjs.map → renderer-BlvGcyAN.mjs.map} +1 -1
  206. package/dist/{renderer-BrWOcJ9Q.mjs → renderer-BpIF1QIE.mjs} +3 -3
  207. package/dist/{renderer-BrWOcJ9Q.mjs.map → renderer-BpIF1QIE.mjs.map} +1 -1
  208. package/dist/renderer-BxRW8MZO.mjs +5 -0
  209. package/dist/renderer-C-lfsEAN.mjs +5 -0
  210. package/dist/{renderer-eAVNsuX8.mjs → renderer-C41U1tK6.mjs} +5 -5
  211. package/dist/{renderer-eAVNsuX8.mjs.map → renderer-C41U1tK6.mjs.map} +1 -1
  212. package/dist/renderer-C6nOFN4-.mjs +5 -0
  213. package/dist/{renderer-CjklM-KD.mjs → renderer-C7L8Ceqr.mjs} +2 -2
  214. package/dist/{renderer-CjklM-KD.mjs.map → renderer-C7L8Ceqr.mjs.map} +1 -1
  215. package/dist/{renderer-xLQ_nkmy.mjs → renderer-C7eFJf0_.mjs} +3 -3
  216. package/dist/{renderer-xLQ_nkmy.mjs.map → renderer-C7eFJf0_.mjs.map} +1 -1
  217. package/dist/renderer-C84TSQmS.mjs +5 -0
  218. package/dist/renderer-C8_6YofT.mjs +5 -0
  219. package/dist/{renderer-DsAoxQ8O.mjs → renderer-CCycwCEB.mjs} +2 -2
  220. package/dist/{renderer-DsAoxQ8O.mjs.map → renderer-CCycwCEB.mjs.map} +1 -1
  221. package/dist/{renderer-Cjx3x7xM.mjs → renderer-CHr7MiYW.mjs} +3 -3
  222. package/dist/{renderer-Cjx3x7xM.mjs.map → renderer-CHr7MiYW.mjs.map} +1 -1
  223. package/dist/renderer-COR66Sby.mjs +3 -0
  224. package/dist/renderer-COb3tOPG.mjs +5 -0
  225. package/dist/{renderer-DSpTGqUU.mjs → renderer-CQvmbRQ5.mjs} +3 -3
  226. package/dist/{renderer-DSpTGqUU.mjs.map → renderer-CQvmbRQ5.mjs.map} +1 -1
  227. package/dist/renderer-CSCIzaLy.mjs +5 -0
  228. package/dist/{renderer-D7Kk7VxM.mjs → renderer-CYC32bDW.mjs} +3 -3
  229. package/dist/{renderer-D7Kk7VxM.mjs.map → renderer-CYC32bDW.mjs.map} +1 -1
  230. package/dist/{renderer-Ci9x2WUd.mjs → renderer-CcvvoKiZ.mjs} +3 -3
  231. package/dist/{renderer-Ci9x2WUd.mjs.map → renderer-CcvvoKiZ.mjs.map} +1 -1
  232. package/dist/{renderer-DTgO5LPf.mjs → renderer-CiQhD8Gg.mjs} +3 -3
  233. package/dist/{renderer-DTgO5LPf.mjs.map → renderer-CiQhD8Gg.mjs.map} +1 -1
  234. package/dist/renderer-CmI4c8MS.mjs +5 -0
  235. package/dist/{renderer-BlVmbzPs.mjs → renderer-CpUJBOfb.mjs} +2 -2
  236. package/dist/renderer-CqVltdX9.mjs +5 -0
  237. package/dist/{renderer-LY2MiIj0.mjs → renderer-CwFqqpWY.mjs} +3 -3
  238. package/dist/{renderer-LY2MiIj0.mjs.map → renderer-CwFqqpWY.mjs.map} +1 -1
  239. package/dist/renderer-D-FpMzLY.mjs +5 -0
  240. package/dist/renderer-D-Oyn9mG.mjs +5 -0
  241. package/dist/renderer-D2QrkA8_.mjs +5 -0
  242. package/dist/{renderer-D7Cu9OZx.mjs → renderer-D47AEJE_.mjs} +2 -2
  243. package/dist/{renderer-D7Cu9OZx.mjs.map → renderer-D47AEJE_.mjs.map} +1 -1
  244. package/dist/{renderer-DPn2DhMU.mjs → renderer-D61B9bXF.mjs} +2 -2
  245. package/dist/{renderer-DPn2DhMU.mjs.map → renderer-D61B9bXF.mjs.map} +1 -1
  246. package/dist/renderer-D64r4iN-.mjs +5 -0
  247. package/dist/{renderer-CUq2qgyc.mjs → renderer-D7Al3_-5.mjs} +3 -3
  248. package/dist/{renderer-CUq2qgyc.mjs.map → renderer-D7Al3_-5.mjs.map} +1 -1
  249. package/dist/{renderer-CyWRvKUI.mjs → renderer-D7r6onRT.mjs} +2 -2
  250. package/dist/{renderer-CyWRvKUI.mjs.map → renderer-D7r6onRT.mjs.map} +1 -1
  251. package/dist/{renderer-DxHICEk3.mjs → renderer-D8bBHrWC.mjs} +3 -3
  252. package/dist/{renderer-DxHICEk3.mjs.map → renderer-D8bBHrWC.mjs.map} +1 -1
  253. package/dist/renderer-DCq6YkgP.mjs +5 -0
  254. package/dist/{renderer-Dk45W8Zd.mjs → renderer-DDEkFbVI.mjs} +3 -3
  255. package/dist/{renderer-Dk45W8Zd.mjs.map → renderer-DDEkFbVI.mjs.map} +1 -1
  256. package/dist/renderer-DDHG3GdR.mjs +5 -0
  257. package/dist/{renderer-BWlMAacF.mjs → renderer-DEmYyaqj.mjs} +2 -2
  258. package/dist/{renderer-BWlMAacF.mjs.map → renderer-DEmYyaqj.mjs.map} +1 -1
  259. package/dist/{renderer-DRGa6tlX.mjs → renderer-DF-yvIrV.mjs} +2 -2
  260. package/dist/{renderer-DRGa6tlX.mjs.map → renderer-DF-yvIrV.mjs.map} +1 -1
  261. package/dist/{renderer-C-5RNIeX.mjs → renderer-DFzI3yI_.mjs} +2 -2
  262. package/dist/{renderer-C-5RNIeX.mjs.map → renderer-DFzI3yI_.mjs.map} +1 -1
  263. package/dist/{renderer-AMBVtZ_G.mjs → renderer-DIw3UtEU.mjs} +3 -3
  264. package/dist/{renderer-AMBVtZ_G.mjs.map → renderer-DIw3UtEU.mjs.map} +1 -1
  265. package/dist/renderer-DMdNfcud.mjs +6 -0
  266. package/dist/{renderer-DnPzvIHK.mjs → renderer-DMvmf3T2.mjs} +2 -2
  267. package/dist/{renderer-Gw1ICOJ3.mjs → renderer-DNQvOrkY.mjs} +3 -3
  268. package/dist/{renderer-Gw1ICOJ3.mjs.map → renderer-DNQvOrkY.mjs.map} +1 -1
  269. package/dist/{renderer-CP2FOWyJ.mjs → renderer-DO-KbpYZ.mjs} +3 -3
  270. package/dist/{renderer-CP2FOWyJ.mjs.map → renderer-DO-KbpYZ.mjs.map} +1 -1
  271. package/dist/{renderer-cg06hb82.mjs → renderer-DTqDy2m9.mjs} +3 -3
  272. package/dist/{renderer-cg06hb82.mjs.map → renderer-DTqDy2m9.mjs.map} +1 -1
  273. package/dist/{renderer-BXAgUuAq.mjs → renderer-DVCJjVn7.mjs} +2 -2
  274. package/dist/{renderer-BXAgUuAq.mjs.map → renderer-DVCJjVn7.mjs.map} +1 -1
  275. package/dist/{renderer-D6X9vWkN.mjs → renderer-DX41niRU.mjs} +2 -2
  276. package/dist/{renderer-D6X9vWkN.mjs.map → renderer-DX41niRU.mjs.map} +1 -1
  277. package/dist/{renderer-D3K9FEQk.mjs → renderer-DXEWbnRF.mjs} +3 -3
  278. package/dist/{renderer-D3K9FEQk.mjs.map → renderer-DXEWbnRF.mjs.map} +1 -1
  279. package/dist/renderer-DZQXZ4lK.mjs +5 -0
  280. package/dist/{renderer-CiMIftlS.mjs → renderer-DbRZe0Re.mjs} +3 -3
  281. package/dist/{renderer-CiMIftlS.mjs.map → renderer-DbRZe0Re.mjs.map} +1 -1
  282. package/dist/renderer-DczJJLA1.mjs +5 -0
  283. package/dist/renderer-DfqJj9oe.mjs +5 -0
  284. package/dist/renderer-DgO9ihVJ.mjs +5 -0
  285. package/dist/renderer-DhgnQZYb.mjs +5 -0
  286. package/dist/{renderer-CrgfMDbh.mjs → renderer-DiY70S8S.mjs} +3 -3
  287. package/dist/{renderer-CrgfMDbh.mjs.map → renderer-DiY70S8S.mjs.map} +1 -1
  288. package/dist/renderer-DjxKjHMf.mjs +5 -0
  289. package/dist/{renderer-Br4UZvfL.mjs → renderer-DkRSZg5g.mjs} +3 -3
  290. package/dist/{renderer-Br4UZvfL.mjs.map → renderer-DkRSZg5g.mjs.map} +1 -1
  291. package/dist/{renderer-CCSzKnvs.mjs → renderer-DmkWrWAk.mjs} +2 -2
  292. package/dist/{renderer-CCSzKnvs.mjs.map → renderer-DmkWrWAk.mjs.map} +1 -1
  293. package/dist/{renderer-D2JOseb1.mjs → renderer-DpruWmZU.mjs} +2 -2
  294. package/dist/{renderer-D2JOseb1.mjs.map → renderer-DpruWmZU.mjs.map} +1 -1
  295. package/dist/renderer-DqLA5cdR.mjs +5 -0
  296. package/dist/{renderer-DxbFjINv.mjs → renderer-DqvoMLca.mjs} +3 -3
  297. package/dist/{renderer-DxbFjINv.mjs.map → renderer-DqvoMLca.mjs.map} +1 -1
  298. package/dist/{renderer-BeFiQfzV.mjs → renderer-DsEyjwfT.mjs} +70 -70
  299. package/dist/{renderer-BeFiQfzV.mjs.map → renderer-DsEyjwfT.mjs.map} +1 -1
  300. package/dist/renderer-Dudp6ZlH.mjs +5 -0
  301. package/dist/{renderer-COQc1jn6.mjs → renderer-EaLUCobW.mjs} +2 -2
  302. package/dist/{renderer-COQc1jn6.mjs.map → renderer-EaLUCobW.mjs.map} +1 -1
  303. package/dist/{renderer-BioUC9zE.mjs → renderer-GBmWjBvy.mjs} +2 -2
  304. package/dist/{renderer-BioUC9zE.mjs.map → renderer-GBmWjBvy.mjs.map} +1 -1
  305. package/dist/{renderer-BNzT34UV.mjs → renderer-Lth37j17.mjs} +2 -2
  306. package/dist/{renderer-D-17HVPb.mjs → renderer-SSBL4M1o.mjs} +3 -3
  307. package/dist/{renderer-D-17HVPb.mjs.map → renderer-SSBL4M1o.mjs.map} +1 -1
  308. package/dist/{renderer-C8rxyjaE.mjs → renderer-SWr3vbrV.mjs} +2 -2
  309. package/dist/{renderer-C8rxyjaE.mjs.map → renderer-SWr3vbrV.mjs.map} +1 -1
  310. package/dist/{renderer-LwrcnEtI.mjs → renderer-WCZu2Rf5.mjs} +3 -3
  311. package/dist/{renderer-LwrcnEtI.mjs.map → renderer-WCZu2Rf5.mjs.map} +1 -1
  312. package/dist/{renderer-BIGILDEA.mjs → renderer-Xv6GfNUI.mjs} +2 -2
  313. package/dist/{renderer-BIGILDEA.mjs.map → renderer-Xv6GfNUI.mjs.map} +1 -1
  314. package/dist/renderer-_jC5KIT1.mjs +5 -0
  315. package/dist/{renderer-DveQQCi8.mjs → renderer-bAKUeHF3.mjs} +3 -3
  316. package/dist/{renderer-DveQQCi8.mjs.map → renderer-bAKUeHF3.mjs.map} +1 -1
  317. package/dist/renderer-cTgAuVmJ.mjs +5 -0
  318. package/dist/{renderer-DGPaKIFf.mjs → renderer-cod5Ona9.mjs} +2 -2
  319. package/dist/{renderer-DgLt0TPo.mjs → renderer-g_vrrAQU.mjs} +2 -2
  320. package/dist/{renderer-DgLt0TPo.mjs.map → renderer-g_vrrAQU.mjs.map} +1 -1
  321. package/dist/{renderer-uorPCWdC.mjs → renderer-hSCfnvaK.mjs} +3 -3
  322. package/dist/{renderer-uorPCWdC.mjs.map → renderer-hSCfnvaK.mjs.map} +1 -1
  323. package/dist/{renderer-BGPnCRFI.mjs → renderer-ktWXVYka.mjs} +3 -3
  324. package/dist/{renderer-BGPnCRFI.mjs.map → renderer-ktWXVYka.mjs.map} +1 -1
  325. package/dist/renderer-nVKDvDLO.mjs +5 -0
  326. package/dist/{renderer-U-12BOhe.mjs → renderer-oKRF4A0M.mjs} +2 -2
  327. package/dist/{renderer-U-12BOhe.mjs.map → renderer-oKRF4A0M.mjs.map} +1 -1
  328. package/dist/{renderer-CsilJwL-.mjs → renderer-pHWEHDnM.mjs} +3 -3
  329. package/dist/{renderer-CsilJwL-.mjs.map → renderer-pHWEHDnM.mjs.map} +1 -1
  330. package/dist/renderer-pZ6_pUo1.mjs +5 -0
  331. package/dist/{renderer-BD00i68i.mjs → renderer-sCovEubT.mjs} +3 -3
  332. package/dist/{renderer-BD00i68i.mjs.map → renderer-sCovEubT.mjs.map} +1 -1
  333. package/dist/{renderer-BdbGTz7z.mjs → renderer-sYSkIUfo.mjs} +3 -3
  334. package/dist/{renderer-BdbGTz7z.mjs.map → renderer-sYSkIUfo.mjs.map} +1 -1
  335. package/dist/{renderer-BLU0PQTB.mjs → renderer-zXPVLRlD.mjs} +3 -3
  336. package/dist/{renderer-BLU0PQTB.mjs.map → renderer-zXPVLRlD.mjs.map} +1 -1
  337. package/dist/{renderers-CP8CFWDs-ywy4xljX.mjs → renderers-CP8CFWDs-DH2oktaC.mjs} +2 -2
  338. package/dist/{renderers-CP8CFWDs-ywy4xljX.mjs.map → renderers-CP8CFWDs-DH2oktaC.mjs.map} +1 -1
  339. package/dist/signals/index.mjs +4 -4
  340. package/dist/{src-B0KFNjj4.mjs → src-CK5rGVbh.mjs} +382 -20
  341. package/dist/src-CK5rGVbh.mjs.map +1 -0
  342. package/package.json +67 -58
  343. package/dist/index-BwRrsP_V.d.mts.map +0 -1
  344. package/dist/index-UDDAfHAF.d.mts.map +0 -1
  345. package/dist/preview-engine/chunk-3U2A3RW4.mjs +0 -5
  346. package/dist/preview-engine/chunk-6E3JSPJN.mjs +0 -1
  347. package/dist/preview-engine/chunk-F4F2UDRX.mjs +0 -1
  348. package/dist/preview-engine/chunk-KFNVUGNN.mjs +0 -1974
  349. package/dist/preview-engine/chunk-PYSBWKIJ.mjs +0 -1
  350. package/dist/preview-engine/chunk-U2IFQMS3.mjs +0 -174
  351. package/dist/preview-engine/renderers-2GMY2ZNK.mjs +0 -1
  352. package/dist/preview-engine/renderers-2QJNKL7Q.mjs +0 -1
  353. package/dist/preview-engine/renderers-3OYU6O6F.mjs +0 -1
  354. package/dist/preview-engine/renderers-433Y2PCK.mjs +0 -1
  355. package/dist/preview-engine/renderers-4AGPGEL4.mjs +0 -1
  356. package/dist/preview-engine/renderers-54DBHGUW.mjs +0 -1
  357. package/dist/preview-engine/renderers-5M2O55U3.mjs +0 -1
  358. package/dist/preview-engine/renderers-6FVMDEAY.mjs +0 -1
  359. package/dist/preview-engine/renderers-6R7ZJ7DU.mjs +0 -1
  360. package/dist/preview-engine/renderers-75GCMFOD.mjs +0 -1
  361. package/dist/preview-engine/renderers-7LWLUCVQ.mjs +0 -1
  362. package/dist/preview-engine/renderers-BLDENIEV.mjs +0 -1
  363. package/dist/preview-engine/renderers-CDB3YK3R.mjs +0 -1
  364. package/dist/preview-engine/renderers-D6D4XDFY.mjs +0 -1
  365. package/dist/preview-engine/renderers-DJVFQZYU.mjs +0 -1
  366. package/dist/preview-engine/renderers-DMXSV7VO.mjs +0 -1
  367. package/dist/preview-engine/renderers-EBMASIOE.mjs +0 -1
  368. package/dist/preview-engine/renderers-F262HDFS.mjs +0 -1
  369. package/dist/preview-engine/renderers-FMXKIF22.mjs +0 -1
  370. package/dist/preview-engine/renderers-GJKSZ6DR.mjs +0 -1
  371. package/dist/preview-engine/renderers-GR3RLYDZ.mjs +0 -1
  372. package/dist/preview-engine/renderers-GT3W2QIA.mjs +0 -1
  373. package/dist/preview-engine/renderers-IHC7HUK3.mjs +0 -1
  374. package/dist/preview-engine/renderers-J56ZGEVM.mjs +0 -1
  375. package/dist/preview-engine/renderers-KYM6352U.mjs +0 -1
  376. package/dist/preview-engine/renderers-LFXX6TWI.mjs +0 -1
  377. package/dist/preview-engine/renderers-NAHUPFPU.mjs +0 -1
  378. package/dist/preview-engine/renderers-NM3FZLHH.mjs +0 -1
  379. package/dist/preview-engine/renderers-NNB4BTJA.mjs +0 -1
  380. package/dist/preview-engine/renderers-OYVQW6QI.mjs +0 -1
  381. package/dist/preview-engine/renderers-P5RIFU3C.mjs +0 -1
  382. package/dist/preview-engine/renderers-QB7HJUTS.mjs +0 -1
  383. package/dist/preview-engine/renderers-QRQVOCDC.mjs +0 -1
  384. package/dist/preview-engine/renderers-QVFHJTZA.mjs +0 -1
  385. package/dist/preview-engine/renderers-R3WQIE4L.mjs +0 -1
  386. package/dist/preview-engine/renderers-SQBVOLG7.mjs +0 -1
  387. package/dist/preview-engine/renderers-TLXMYEDI.mjs +0 -1
  388. package/dist/preview-engine/renderers-X4S3WELJ.mjs +0 -1
  389. package/dist/preview-engine/renderers-XT7U25I7.mjs +0 -1
  390. package/dist/preview-engine/renderers-XVGLMBB3.mjs +0 -1
  391. package/dist/preview-engine/renderers-YUWU3TQZ.mjs +0 -1
  392. package/dist/preview-engine/renderers-ZNUD5OVO.mjs +0 -1
  393. package/dist/renderer-01zxT4CK.mjs +0 -5
  394. package/dist/renderer-35LHkj36.mjs +0 -5
  395. package/dist/renderer-B0OIdCGj.mjs +0 -5
  396. package/dist/renderer-B3IPtkK9.mjs +0 -5
  397. package/dist/renderer-BD25uND8.mjs.map +0 -1
  398. package/dist/renderer-BMC39abo.mjs +0 -5
  399. package/dist/renderer-BQj3nlAI.mjs +0 -5
  400. package/dist/renderer-BnBvSmp_.mjs +0 -5
  401. package/dist/renderer-BsDSpTpL.mjs +0 -5
  402. package/dist/renderer-BtW6_gvE.mjs +0 -5
  403. package/dist/renderer-By8U44Rt.mjs +0 -5
  404. package/dist/renderer-C3lDmxuX.mjs +0 -5
  405. package/dist/renderer-C6SZAE_x.mjs +0 -5
  406. package/dist/renderer-CA3IVeZj.mjs +0 -5
  407. package/dist/renderer-CFoCH_mO.mjs +0 -5
  408. package/dist/renderer-CLhZqJF8.mjs +0 -6
  409. package/dist/renderer-CYJXQS8E.mjs +0 -5
  410. package/dist/renderer-C_vj6_WJ.mjs +0 -5
  411. package/dist/renderer-CeqfC6OR.mjs +0 -5
  412. package/dist/renderer-CkZCGMAc.mjs +0 -5
  413. package/dist/renderer-Clxju1r9.mjs +0 -5
  414. package/dist/renderer-Cvz22ZSh.mjs +0 -3
  415. package/dist/renderer-CyWtKBF7.mjs +0 -5
  416. package/dist/renderer-D27STGoB.mjs +0 -5
  417. package/dist/renderer-D78Aq9YK.mjs +0 -5
  418. package/dist/renderer-DHEffABL.mjs +0 -5
  419. package/dist/renderer-DUuNCgzW.mjs +0 -5
  420. package/dist/renderer-DVD5pzRq.mjs +0 -5
  421. package/dist/renderer-Dsp6xDw5.mjs +0 -5
  422. package/dist/renderer-DuC-BFXR.mjs +0 -5
  423. package/dist/renderer-DuWs_Wsv.mjs +0 -5
  424. package/dist/renderer-OSgsiIrW.mjs +0 -5
  425. package/dist/renderer-OZaMFYtZ.mjs +0 -5
  426. package/dist/renderer-T79TmHET.mjs +0 -5
  427. package/dist/renderer-UhsC9oTU.mjs +0 -5
  428. package/dist/renderer-WYZV1jWf.mjs +0 -5
  429. package/dist/renderer-Y7evDjHH.mjs +0 -5
  430. package/dist/renderer-mcePkmUe.mjs +0 -5
  431. package/dist/src-B0KFNjj4.mjs.map +0 -1
@@ -1 +0,0 @@
1
- import{A as r}from"./chunk-F4F2UDRX.mjs";import{g as e}from"./chunk-Y4NIR77Z.mjs";e();var o=r({});export{o as a};
@@ -1,174 +0,0 @@
1
- import{a as An}from"./chunk-BREZX5L5.mjs";import{a as He}from"./chunk-EAHJZDOJ.mjs";import{a as Mt}from"./chunk-6ISHV73H.mjs";import{g as Ye,h as Pt,i as Xe,j as ve,k as be,l as Me,n as Rt,p as It}from"./chunk-6E3JSPJN.mjs";import{G as yt}from"./chunk-GH77FX2Y.mjs";import{a as P,b as A}from"./chunk-6FULVULN.mjs";import{A as xt,b as bt,h as Se,i as Ne,m as ne}from"./chunk-F4F2UDRX.mjs";import{a as St,e as wt,i as Ge,j as _t}from"./chunk-VEDMJBJV.mjs";import{b as we,c as kt,e as Tt,t as Ln}from"./chunk-QEWDIPJ7.mjs";import{d as vt,e as _e,g as ze}from"./chunk-BDZ3TSOT.mjs";import{d as En,f as j,g as x}from"./chunk-Y4NIR77Z.mjs";x();x();var Ot=class{domain="visual";signals;config;_frameHooks=[];constructor(e){this.config={...e},this.signals={};for(let[t,r]of Object.entries(e))Se(r)?this.signals[t]=r:this.signals[t]=Ne(r);return new Proxy(this,{get(t,r,s){if(typeof r=="string"&&r in t.signals){let o=t.signals[r];return o?o.value:void 0}return Reflect.get(t,r,s)},set(t,r,s,o){if(typeof r=="string"&&r in t.signals){let i=t.signals[r];return Se(s)?(t.signals[r]=s,t.config[r]=s):i&&typeof i.set=="function"?(i.set(s),t.config[r]=s):(t.signals[r]=Ne(s),t.config[r]=s),!0}return Reflect.set(t,r,s,o)}})}onRequestFrame(e){return this._frameHooks.push(e),this}notifyFrame(e){for(let t of this._frameHooks)t(e)}resolveUniforms(e){let t={};for(let[r,s]of Object.entries(this.signals))t[r]=s.get(e);return t}resolveTextures(){let e={};for(let[t,r]of Object.entries(this.signals)){let s=r.gpuBinding;s?.textureView&&(e[`${t}TextureView`]=s.textureView),s?.texture&&(e[`${t}Texture`]=s.texture)}return e}toOperation(){let e={op:this.op,effect:this,onRequestFrame:t=>this.notifyFrame(t),signals:this.signals,...this.config};for(let[t,r]of Object.entries(this.signals)){let s=this.config[t];!Se(s)&&(typeof s=="string"||typeof s=="boolean")?e[t]=r.value:e[t]=r}return e}};x();var Ct=class extends Error{constructor(e){super(e),this.name="ModerationError"}},Et=class extends Error{constructor(e){super(e),this.name="ModerationUnrefundableError"}};x();function Wr(n,e){if(Lt(e),!Number.isFinite(n)||n<=0)throw new Error("durationMs must be finite and positive");let t=Math.max(1,Math.round(n/1e3*e));if(!Number.isSafeInteger(t))throw new Error("Duration exceeds the safe frame range");return t}function Lt(n){if(!Number.isFinite(n)||n<=0)throw new Error(`Invalid fps: ${n}. Must be finite and > 0.`)}function Kr(n,e){if(Lt(e),n.atMs!==void 0&&(!Number.isFinite(n.atMs)||n.atMs<0))throw new Error("atMs must be finite and nonnegative");let t=n.atMs!==void 0?Math.round(n.atMs/1e3*e):n.frame??0;if(!Number.isSafeInteger(t)||t<0)throw new Error(`Invalid frame index: ${t}. Must be a nonnegative safe integer.`);let r=t/e*1e3;if(!Number.isFinite(r))throw new Error("Frame timestamp exceeds the finite range");return{frame:t,timeMs:r}}x();x();x();var At="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var jt=(n=21)=>{let e="",t=crypto.getRandomValues(new Uint8Array(n|=0));for(;n--;)e+=At[t[n]&63];return e};var oo=n=>jt(n);x();var Ft=A.object({dataTypes:A.custom(),label:A.string(),required:A.boolean().optional(),order:A.number(),description:A.string().optional()}),jn=A.object({configKey:A.string(),dataTypes:A.custom(),label:A.string(),description:A.string().optional()}),co=A.object({type:A.string().min(1),version:A.number().int().positive().optional(),baseType:A.string().optional(),displayName:A.string().min(1),description:A.string().optional(),showInQuickAccess:A.boolean().optional(),showInSidebar:A.boolean().optional(),advanced:A.boolean().optional(),category:A.string().min(1),subcategory:A.string().optional(),defaultDimensions:A.object({width:A.number().positive().optional(),height:A.number().positive().optional()}).optional(),handles:A.object({inputs:A.array(Ft),outputs:A.array(Ft)}),variableInputs:A.discriminatedUnion("enabled",[A.object({enabled:A.literal(!0),dataTypes:A.custom()}),A.object({enabled:A.literal(!1),dataTypes:A.custom().optional()})]).optional(),variableOutputs:A.discriminatedUnion("enabled",[A.object({enabled:A.literal(!0),dataTypes:A.custom()}),A.object({enabled:A.literal(!1),dataTypes:A.custom().optional()})]).optional(),isTerminal:A.boolean().optional(),isTransient:A.boolean().optional(),configSchema:A.custom().optional(),defaultConfig:A.record(A.string(),A.unknown()).optional(),validation:A.any().optional(),resultSchema:A.custom().optional(),configHandles:A.array(jn).optional()});x();function mo(n){if(!Number.isFinite(n)||!Number.isInteger(n)||n<0)throw new RangeError(`FrameIndex must be a non-negative finite integer, got ${n}`);return n}function fo(n){if(!Number.isFinite(n))throw new TypeError(`Seconds must be a finite number, got ${n}`);return n}function po(n){if(!Number.isFinite(n))throw new TypeError(`Milliseconds must be a finite number, got ${n}`);return n}function ho(n){if(!Number.isFinite(n)||n<=0)throw new RangeError(`Fps must be a positive finite number, got ${n}`);return n}function go(n){if(!Number.isFinite(n))throw new TypeError(`Normalized must be a finite number, got ${n}`);return Math.max(0,Math.min(1,n))}function bo(n){if(!Number.isFinite(n))throw new TypeError(`Degrees must be a finite number, got ${n}`);return n}function yo(n){if(!Number.isFinite(n))throw new TypeError(`Radians must be a finite number, got ${n}`);return n}function xo(n){if(!Number.isFinite(n))throw new TypeError(`Pixels must be a finite number, got ${n}`);return n}function ko(n){if(!n)throw new TypeError("HandleId cannot be empty");return n}function To(n){if(!n)throw new TypeError("HandleLabel cannot be empty");return n}function So(n){if(!n)throw new TypeError("NodeId cannot be empty");return n}function wo(n){return typeof n=="number"&&Number.isInteger(n)&&n>=0}function _o(n){return typeof n=="number"&&Number.isFinite(n)&&n>=0&&n<=1}x();var Po={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"}};x();var Co={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"},Eo={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"},Fn=["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"],Bt=P.enum(Fn),Vt=class n{static schemas=new Map;static register(e,t){n.schemas.set(e,t)}static get(e){return n.schemas.get(e)}static clear(){n.schemas.clear()}};x();var jo={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};x();var Vn=P.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"]),Bn=P.object({id:P.string(),type:Vn,value:P.number()}),Un=P.object({x:P.number().default(0),y:P.number().default(0),width:P.number().optional(),height:P.number().optional(),rotation:P.number().default(0),scale:P.number().min(0).default(1),opacity:P.number().min(0).max(1).default(1),zIndex:P.number().int().optional(),blendMode:Bt.optional()}),Dn=P.object({startFrame:P.number().int().min(0).default(0),durationInMS:P.number().int().min(1).optional(),trimStart:P.number().int().min(0).optional(),trimEnd:P.number().int().min(0).optional(),speed:P.number().min(.25).max(4).optional()}),Nn=P.object({text:P.string().optional(),fontSize:P.number().optional(),fontFamily:P.string().optional(),fontStyle:P.string().optional(),fontWeight:P.union([P.number(),P.string()]).optional(),fill:P.string().optional(),align:P.string().optional(),direction:P.enum(["ltr","rtl","auto"]).optional(),verticalAlign:P.string().optional(),letterSpacing:P.number().optional(),lineHeight:P.number().optional(),padding:P.number().optional(),stroke:P.string().optional(),strokeWidth:P.number().optional(),strokeAlign:P.enum(["inside","center","outside"]).optional(),textShadow:P.string().optional(),textBackgroundColor:P.string().optional(),shadows:P.array(P.object({color:P.string(),offset:P.object({x:P.number(),y:P.number()}).optional(),blurRadius:P.number().optional()})).optional(),textAnimation:P.any().optional(),bottomPadding:P.number().optional(),maxWidth:P.number().optional()}),Hn=P.object({backgroundColor:P.string().optional(),borderColor:P.string().optional(),borderWidth:P.number().optional(),strokeRadius:P.number().optional(),autoDimensions:P.boolean().optional()}),$e=P.enum(["Video","Image","Audio","Text","Caption","SVG","GIF","Lottie"]),Ut=Un.merge(Dn).merge(Nn).merge(Hn).extend({type:$e.optional(),animations:P.array(Bn).optional()});x();x();var Gn=P.enum(["none","crossfade","wipe-left","wipe-right","slide-up","slide-down"]),We=P.object({type:Gn,durationFrames:P.number().min(1)});var Ko=Ut.extend({id:P.string(),name:P.string().optional(),type:$e,virtualMedia:yt.optional(),transitionIn:We.optional(),transitionOut:We.optional(),durationInMS:P.number(),maxDurationInMS:P.number().optional(),src:P.string().optional(),volume:P.number().default(1),inputHandleId:P.string().optional(),isPlaceholder:P.boolean().optional(),lockAspect:P.boolean().optional(),lockRatio:P.boolean().optional(),zIndex:P.number().optional()}).strict();x();function Dt(n,e){if(n===e||typeof n=="number"&&typeof e=="number"&&Number.isNaN(n)&&Number.isNaN(e))return!0;if(n&&e&&typeof n=="object"&&typeof e=="object"){if(n.constructor!==e.constructor)return!1;if(Array.isArray(n)){if(n.length!==e.length)return!1;for(let r=0;r<n.length;r++)if(!Dt(n[r],e[r]))return!1;return!0}if(n instanceof Date)return n.getTime()===e.getTime();if(n instanceof RegExp)return n.toString()===e.toString();let t=Object.keys(n);if(t.length!==Object.keys(e).length)return!1;for(let r of t)if(!Object.hasOwn(e,r)||!Dt(n[r],e[r]))return!1;return!0}return!1}x();function ts(n,e){if(!n?.sourceFingerprint)return null;let t=He(e);return n.sourceFingerprint!==t?null:n}function ns(n,e){return{...n,sourceFingerprint:He(e)}}x();function ss(n){try{let t=n.toString("utf-8").match(/<svg[^>]*>/i);if(!t)return null;let r=t[0],s=a=>{let l=r.match(new RegExp(`${a}=["']([^"']+)["']`,"i"));if(!l)return null;let d=parseFloat(l[1].replace(/[a-z%]/gi,""));return isNaN(d)?null:d},o=s("width"),i=s("height"),u=r.match(/viewBox=["']([^"']+)["']/i);if(u){let a=u[1].split(/[\s,]+/).map(parseFloat);if(a.length>=4&&!isNaN(a[2])&&!isNaN(a[3])){let l=a[2],d=a[3];o==null&&i==null?(o=l,i=d):o!=null&&i==null?i=o*(d/l):i!=null&&o==null&&(o=i*(l/d))}}return o!=null&&i!=null&&o>0&&i>0?{w:o,h:i}:null}catch(e){return console.error("Error parsing SVG dimensions",e),null}}x();x();x();x();var ce=(n,e,t)=>`https://huggingface.co/${n}/resolve/${e}/${t}`,Ke="tori29umai/rtmdet-ins-onnx-person-masks",qe="e5218e8d47d7c50077f27f9893a28e0ef2ad5656",Ze="RTMDet-Ins (OpenMMLab mmdetection, Apache-2.0), mmdeploy ONNX export",Je="RTMO (OpenMMLab mmpose, Apache-2.0), ONNX export",Nt="MediaPipe Selfie Segmenter (Google, Apache-2.0), ONNX export",re={"rtmdet-ins-t":{key:"rtmdet-ins-t",family:"rtmdet-ins",filename:"rtmdet-ins-t.onnx",url:ce(Ke,qe,"models/tiny/rtmdet-ins_tiny_640x640.onnx"),bytes:24032356,sha256:"99ee670820c4493aa13e20578b6a8e39781c319846dc41796a77765734beac5c",input:[640,640],source:Ze},"rtmdet-ins-s":{key:"rtmdet-ins-s",family:"rtmdet-ins",filename:"rtmdet-ins-s.onnx",url:ce(Ke,qe,"models/s/rtmdet-ins_s_640x640.onnx"),bytes:43236976,sha256:"9cd1787fbf3eb2bd64cc2d8154f41c036f5484b85599e1cbe0227a2dc5a4a08b",input:[640,640],source:Ze},"rtmdet-ins-m":{key:"rtmdet-ins-m",family:"rtmdet-ins",filename:"rtmdet-ins-m.onnx",url:ce(Ke,qe,"models/m/rtmdet-ins_m_640x640.onnx"),bytes:115735979,sha256:"a003bce80316e03467c2c2b483df2d5c0398220c2357a44f9bf985929f7eb052",input:[640,640],source:Ze},"rtmo-t":{key:"rtmo-t",family:"rtmo",filename:"rtmo-t.onnx",url:ce("Xenova/RTMO-t","f29d13ce5ee291fbe505e9d06a049992f05699dc","onnx/model.onnx"),bytes:27360569,sha256:"cb54dd042bf997df86d938721c94238940f2bff98ba8d2ccc834430de5c65c13",input:[416,416],source:Je},"rtmo-s":{key:"rtmo-s",family:"rtmo",filename:"rtmo-s.onnx",url:ce("Xenova/RTMO-s","d8c526187f341d287753831c9c8b1ecc4855bba1","onnx/model.onnx"),bytes:39636400,sha256:"1cd6a3517658903233e9ccb78666554862f57f0944b6886e2048093594aef4e7",input:[640,640],source:Je},"rtmo-m":{key:"rtmo-m",family:"rtmo",filename:"rtmo-m.onnx",url:ce("Xenova/RTMO-m","3aba1280472b98ee2bf663482e27e243038d23fe","onnx/model.onnx"),bytes:89291929,sha256:"76d82c45e5c4810baf587ecf2638d15cbf7ed196afb2055e977382532021b59e",input:[640,640],source:Je},"selfie-square":{key:"selfie-square",family:"selfie",filename:"selfie-square.onnx",url:ce("onnx-community/mediapipe_selfie_segmentation","be49485c8e027524be38591817fc5cd31bd9d00e","onnx/model.onnx"),bytes:462352,sha256:"3241ac4ad8aa35bdaf33946776db29f7c283a413aa0b0dacb9483594b4531aad",input:[256,256],source:Nt},"selfie-landscape":{key:"selfie-landscape",family:"selfie",filename:"selfie-landscape.onnx",url:ce("onnx-community/mediapipe_selfie_segmentation_landscape","2497d5bec26c626c7b3c4edc6e1fefc21b64f6c3","onnx/model.onnx"),bytes:462338,sha256:"7a0adcfdb1715d3b0ff0f61486d8a181c33f4a208343a5abfccbc6540e872d24",input:[256,144],source:Nt}};function Ht(n,e="s",t=1){return n==="pose"?`rtmo-${e}`:n==="matte"?t>1.3?"selfie-landscape":"selfie-square":`rtmdet-ins-${e}`}var Pe=["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"];x();function de(n,e){let t=Math.max(n.originX,e.originX),r=Math.max(n.originY,e.originY),s=Math.min(n.originX+n.width,e.originX+e.width),o=Math.min(n.originY+n.height,e.originY+e.height),i=Math.max(0,s-t),u=Math.max(0,o-r),a=i*u;if(a<=0)return 0;let l=n.width*n.height,d=e.width*e.height,c=l+d-a;return c>0?a/c:0}var ye=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,r=24){let s=r>0?1/r:.0416;for(let a of this._tracks)if(a.age++,a.timeSinceUpdate++,a.timeSinceUpdate>0){let l=a.centerX+a.vx*s,d=a.centerY+a.vy*s;a.centerX=l,a.centerY=d;let c=a.box.width,h=a.box.height,b=a.box.normalizedWidth,y=a.box.normalizedHeight,I=a.box.normalizedX+b/2+a.vx*s/Math.max(1,a.box.width/b),E=a.box.normalizedY+y/2+a.vy*s/Math.max(1,a.box.height/y);a.box={originX:l-c/2,originY:d-h/2,width:c,height:h,normalizedX:I-b/2,normalizedY:E-y/2,normalizedWidth:b,normalizedHeight:y},a.vx*=.92,a.vy*=.92,a.isCoasting=!0}let o=new Set,i=new Set,u=[];for(let a=0;a<this._tracks.length;a++){let l=this._tracks[a];for(let d=0;d<e.length;d++){let c=e[d];if(l.category!==c.category)continue;let h=de(l.box,c.boundingBox);h>=this._iouThreshold&&u.push({trackIdx:a,detIdx:d,iou:h})}}u.sort((a,l)=>l.iou-a.iou);for(let a of u){if(i.has(a.trackIdx)||o.has(a.detIdx))continue;i.add(a.trackIdx),o.add(a.detIdx);let l=this._tracks[a.trackIdx],d=e[a.detIdx],c=d.boundingBox,h=c.originX+c.width/2,b=c.originY+c.height/2,y=(h-l.centerX)/s,I=(b-l.centerY)/s;l.vx=l.vx*.4+y*.6,l.vy=l.vy*.4+I*.6;let E=this._positionSmoothing,g=l.box.width*(1-E)+c.width*E,w=l.box.height*(1-E)+c.height*E,k=l.centerX*(1-E)+h*E,L=l.centerY*(1-E)+b*E;l.centerX=k,l.centerY=L,l.score=d.score,l.timeSinceUpdate=0,l.hits++,l.isCoasting=!1,l.hits>=this._minHits&&(l.active=!0),l.box={originX:k-g/2,originY:L-w/2,width:g,height:w,normalizedX:c.normalizedX,normalizedY:c.normalizedY,normalizedWidth:c.normalizedWidth,normalizedHeight:c.normalizedHeight}}for(let a=0;a<e.length;a++){if(o.has(a))continue;let l=e[a],d=l.boundingBox,c=d.originX+d.width/2,h=d.originY+d.height/2;this._tracks.push({trackId:this._nextTrackId++,category:l.category,score:l.score,box:d,centerX:c,centerY:h,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 l=a.box.normalizedWidth,d=a.box.normalizedHeight,c=a.box.normalizedX+l/2,h=a.box.normalizedY+d/2,b=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:c,normalizedCenterY:h,velocity:{vx:a.vx,vy:a.vy},speed:b,age:a.age,hits:a.hits,active:this._activeDuringCoast?!0:a.timeSinceUpdate===0,isCoasting:a.isCoasting}})}trackSequence(e,t,r=24){this.reset();let s=r>0?1/r:.0416,o=new Map;for(let a=0;a<t;a++){let l=e[a]??[],d=this.update(l,a,r);for(let c of d)o.has(c.trackId)||o.set(c.trackId,{category:c.category,observations:[]}),c.isCoasting||o.get(c.trackId).observations.push({frame:a,box:c.boundingBox,score:c.score})}let i=new Map;for(let[a,l]of o.entries()){let d=l.observations;if(d.length===0)continue;d.sort((g,w)=>g.frame-w.frame);let c=new Array(t).fill(null);for(let g of d)c[g.frame]={box:g.box,score:g.score};let h=d[0];for(let g=0;g<h.frame;g++)c[g]={box:{...h.box},score:h.score*.9};for(let g=0;g<d.length-1;g++){let w=d[g],k=d[g+1],L=k.frame-w.frame;if(!(L<=1))for(let f=w.frame+1;f<k.frame;f++){let m=(f-w.frame)/L,_=w.box.originX+(k.box.originX-w.box.originX)*m,T=w.box.originY+(k.box.originY-w.box.originY)*m,R=w.box.width+(k.box.width-w.box.width)*m,M=w.box.height+(k.box.height-w.box.height)*m,V=w.box.normalizedX+(k.box.normalizedX-w.box.normalizedX)*m,O=w.box.normalizedY+(k.box.normalizedY-w.box.normalizedY)*m,S=w.box.normalizedWidth+(k.box.normalizedWidth-w.box.normalizedWidth)*m,p=w.box.normalizedHeight+(k.box.normalizedHeight-w.box.normalizedHeight)*m;c[f]={box:{originX:_,originY:T,width:R,height:M,normalizedX:V,normalizedY:O,normalizedWidth:S,normalizedHeight:p},score:w.score*(1-m)+k.score*m}}}let b=d[d.length-1];for(let g=b.frame+1;g<t;g++)c[g]={box:{...b.box},score:b.score*.9};let y=[],I=2,E=[.06136,.24477,.38774,.24477,.06136];for(let g=0;g<t;g++){let w=0,k=0,L=0,f=0,m=0,_=0,T=0,R=0,M=0,V=0;for(let S=-I;S<=I;S++){let p=Math.max(0,Math.min(t-1,g+S)),C=c[p];if(C){let z=E[S+I];w+=z,k+=C.box.originX*z,L+=C.box.originY*z,f+=C.box.width*z,m+=C.box.height*z,_+=C.box.normalizedX*z,T+=C.box.normalizedY*z,R+=C.box.normalizedWidth*z,M+=C.box.normalizedHeight*z,V+=C.score*z}}let O=w>0?1/w:1;y.push({box:{originX:k*O,originY:L*O,width:f*O,height:m*O,normalizedX:_*O,normalizedY:T*O,normalizedWidth:R*O,normalizedHeight:M*O},score:V*O})}i.set(a,{category:l.category,frames:y})}let u=[];for(let a=0;a<t;a++){let l=[];for(let[d,c]of i.entries()){let h=c.frames[a];if(!h)continue;let b=c.frames[Math.max(0,a-1)]??h,y=c.frames[Math.min(t-1,a+1)]??h,I=h.box.originX+h.box.width/2,E=h.box.originY+h.box.height/2,g=b.box.originX+b.box.width/2,w=b.box.originY+b.box.height/2,k=y.box.originX+y.box.width/2,L=y.box.originY+y.box.height/2,f=a===0||a===t-1?s:2*s,m=(k-g)/f,_=(L-w)/f,T=Math.sqrt(m*m+_*_),R=h.box.normalizedWidth,M=h.box.normalizedHeight;l.push({trackId:d,category:c.category,score:h.score,boundingBox:h.box,centerX:I,centerY:E,normalizedCenterX:h.box.normalizedX+R/2,normalizedCenterY:h.box.normalizedY+M/2,velocity:{vx:m,vy:_},speed:T,age:a+1,hits:10,active:!0,isCoasting:!1})}u.push(l)}return u}reset(){this._tracks=[],this._nextTrackId=1}};var Gt=()=>typeof performance<"u"&&typeof performance.now=="function"?performance.now():Date.now();async function ps(n,e){let{runner:t}=e,r=e.fps??24,s=e.tasks&&e.tasks.length>0?e.tasks:["detect"],o=new Set(s),i=e.categories?new Set(e.categories.map(S=>S.toLowerCase())):null,u=e.includeMasks===!0&&o.has("segment"),a=o.has("detect")||o.has("segment"),l=[],d={},c=new Map,h=0,b=0,y=S=>!i||i.has(S.toLowerCase()),I=async(S,p,C)=>{let z=t.modelKeyFor(S,p.width/p.height),U=t.downloadStatus.get(z)==="ready",B=Gt(),F=await C(),N=Gt()-B;return h+=N,!U&&!d[z]&&(d[z]={bytes:re[z].bytes,ms:N}),F},E=S=>{for(let p of S){if(!y(p.category))continue;let C=c.get(p.category)??{sum:0,count:0};C.sum+=p.coverage,C.count++,c.set(p.category,C)}};for await(let S of n){let p=[];if(u){let C=await I("segment",S,()=>t.segment(S));E(C.masks),p=C.detections}else a&&(p=await I("detect",S,()=>t.detect(S)));o.has("pose")&&await I("pose",S,()=>t.pose(S)),o.has("matte")&&await I("matte",S,()=>t.matte(S)),l.push(i?p.filter(C=>y(C.category)):p),b++}let g=b,k=new ye({iouThreshold:e.iouThreshold??.25,maxMissedFrames:e.maxMissedFrames??15}).trackSequence(l,g,r),L=e.pathStride??Math.max(1,Math.ceil(g/50)),f=new Map,m=new Map,_=new Map,T=new Map,R=(S,p,C)=>{let z=S.get(p);return z===void 0&&(z=C(),S.set(p,z)),z};for(let S=0;S<g;S++)for(let p of k[S]??[]){if(!y(p.category))continue;let C=f.get(p.trackId);C||(C={category:p.category,firstFrame:S,lastFrame:S,speedSum:0,speedCount:0,centers:[]},f.set(p.trackId,C)),C.lastFrame=S,Number.isFinite(p.speed)&&(C.speedSum+=p.speed,C.speedCount++),(S-C.firstFrame)%L===0&&C.centers.push({frame:S,x:p.centerX,y:p.centerY}),R(m,p.category,()=>new Set).add(S),_.set(p.category,Math.max(_.get(p.category)??0,p.score)),R(T,p.category,()=>new Set).add(p.trackId)}let M=Array.from(f.entries()).map(([S,p])=>({trackId:S,category:p.category,frames:[p.firstFrame,p.lastFrame],speedMeanPxS:p.speedCount>0?p.speedSum/p.speedCount:0,centerPath:p.centers.map(C=>[C.x,C.y])})).sort((S,p)=>S.trackId-p.trackId),V={};for(let[S,p]of m)V[S]={framesPresent:p.size,totalFrames:g,maxConfidence:_.get(S)??0,tracks:T.get(S)?.size??0};let O={};for(let[S,p]of c)O[S]={meanCoverage:p.count>0?p.sum/p.count:0};return{source:e.source??"frames",totalFrames:g,fps:r,durationSec:r>0?g/r:0,tasks:Array.from(o),modelDownloads:d,inferenceMs:h,trackCount:M.length,classes:V,tracks:M,masks:O}}x();var zn=[103.53,116.28,123.675],Yn=[57.375,57.12,58.395],Xn={"rtmdet-ins":{fit:"topLeft",channels:"bgr",mean:zn,std:Yn,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 zt(n,e){return{...Xn[n],width:e[0],height:e[1]}}function Qe(n,e,t){if(t.fit==="stretch")return{scaleX:t.width/n,scaleY:t.height/e,offsetX:0,offsetY:0,inputWidth:t.width,inputHeight:t.height};let r=Math.min(t.width/n,t.height/e),s=Math.round(n*r),o=Math.round(e*r),i=t.fit==="center";return{scaleX:r,scaleY:r,offsetX:i?(t.width-s)/2:0,offsetY:i?(t.height-o)/2:0,inputWidth:t.width,inputHeight:t.height}}function ue(n,e,t){return{x:(n-t.offsetX)/t.scaleX,y:(e-t.offsetY)/t.scaleY}}function Yt(n,e,t){let{width:r,height:s,data:o}=n,{width:i,height:u}=e,a=Qe(r,s,e),{scaleX:l,scaleY:d,offsetX:c,offsetY:h}=a,b=i*u;(!t||t.length<3*b)&&(t=new Float32Array(3*b));let y=e.channels==="bgr"?[2,1,0]:[0,1,2],[I,E,g]=e.mean,w=1/e.std[0],k=1/e.std[1],L=1/e.std[2],f=(e.padValue-I)*w,m=(e.padValue-E)*k,_=(e.padValue-g)*L,[T,R,M]=y,V=Math.ceil(c),O=Math.ceil(h),S=Math.min(i,Math.floor(c+r*l))-1,p=Math.min(u,Math.floor(h+s*d))-1;for(let C=0;C<u;C++){let z=C*i,U=C<O||C>p,B=Math.max(0,(C+.5-h)/d-.5),F=Math.min(s-1,Math.floor(B)),N=Math.min(s-1,F+1),X=B-F;for(let Y=0;Y<i;Y++){let G=z+Y;if(U||Y<V||Y>S){t[G]=f,t[b+G]=m,t[2*b+G]=_;continue}let K=Math.max(0,(Y+.5-c)/l-.5),H=Math.min(r-1,Math.floor(K)),se=Math.min(r-1,H+1),$=K-H,Z=(F*r+H)*4,te=(F*r+se)*4,oe=(N*r+H)*4,J=(N*r+se)*4,he=(1-$)*(1-X),D=$*(1-X),W=(1-$)*X,Q=$*X;t[G]=(o[Z+T]*he+o[te+T]*D+o[oe+T]*W+o[J+T]*Q-I)*w,t[b+G]=(o[Z+R]*he+o[te+R]*D+o[oe+R]*W+o[J+R]*Q-E)*k,t[2*b+G]=(o[Z+M]*he+o[te+M]*D+o[oe+M]*W+o[J+M]*Q-g)*L}}return{tensor:t,transform:a}}x();var Re=8;function et(n,e){let{sourceWidth:t,sourceHeight:r,transform:s}=e,o=e.classes?new Set(e.classes.map(g=>g.toLowerCase())):null,i=[];for(let g=0;g<n.count;g++){let w=n.dets[g*5+4];if(!(w>=e.confidence))continue;let k=Number(n.labels[g]),L=e.classNames[k]??`class_${k}`;if(o&&!o.has(L.toLowerCase()))continue;let f=ue(n.dets[g*5],n.dets[g*5+1],s),m=ue(n.dets[g*5+2],n.dets[g*5+3],s),_=le(f.x,0,t),T=le(f.y,0,r),R=le(m.x,0,t)-_,M=le(m.y,0,r)-T;R<=0||M<=0||i.push({index:g,detection:{category:L,score:w,boundingBox:{originX:_,originY:T,width:R,height:M,normalizedX:_/t,normalizedY:T/r,normalizedWidth:R/t,normalizedHeight:M/r}}})}i.sort((g,w)=>w.detection.score-g.detection.score);let u=i.map(g=>g.detection),a=[];if(!n.masks&&!n.maskPlane)return{detections:u,masks:a};let l=e.maskThreshold??.5,d=e.featherRadius??.05,c=n.maskLogits?$n(l,d):Ie(l,d),{maskWidth:h,maskHeight:b}=n,y=h*b,I=h/s.inputWidth,E=b/s.inputHeight;for(let g=0;g<i.length;g++){let{index:w,detection:k}=i[g],L=k.boundingBox,f=n.maskPlane?n.maskPlane(w):n.masks,m=n.maskPlane?0:w*y,_=Math.max(0,Math.floor(L.originX)-Re),T=Math.max(0,Math.floor(L.originY)-Re),R=Math.min(t-1,Math.ceil(L.originX+L.width)+Re),M=Math.min(r-1,Math.ceil(L.originY+L.height)+Re),V=new Uint8Array(t*r),O=0;for(let S=T;S<=M;S++){let p=((S+.5)*s.scaleY+s.offsetY)*E-.5,C=le(Math.floor(p),0,b-1),z=Math.min(b-1,C+1),U=le(p-C,0,1),B=S*t;for(let F=_;F<=R;F++){let N=((F+.5)*s.scaleX+s.offsetX)*I-.5,X=le(Math.floor(N),0,h-1),Y=Math.min(h-1,X+1),G=le(N-X,0,1),K=f[m+C*h+X]*(1-G)*(1-U)+f[m+C*h+Y]*G*(1-U)+f[m+z*h+X]*(1-G)*U+f[m+z*h+Y]*G*U,H=c(K);H>0&&(V[B+F]=H,O+=H/255)}}O=Math.round(O),O!==0&&a.push({category:k.category,mask:V,width:t,height:r,area:O,coverage:O/(t*r),detectionIndex:g})}return{detections:u,masks:a}}function Ie(n,e){if(e<=0)return s=>s>n?255:0;let t=n-e,r=255/(2*e);return s=>s<=t?0:s>=n+e?255:(s-t)*r}function $n(n,e){let t=Ie(n,e),r=i=>i<=0?-1/0:i>=1?1/0:Math.log(i/(1-i));if(e<=0){let i=r(n);return u=>u>i?255:0}let s=r(n-e),o=r(n+e);return i=>i<=s?0:i>=o?255:t(1/(1+Math.exp(-i)))}function le(n,e,t){return n<e?e:n>t?t:n}x();var Xt=17,tt=.3;function $t(n,e){let{sourceWidth:t,sourceHeight:r,transform:s}=e,o=n.keypointStride,i=[];for(let l=0;l<n.count;l++){let d=n.dets[l*5+4];if(!(d>=e.confidence))continue;let c=ue(n.dets[l*5],n.dets[l*5+1],s),h=ue(n.dets[l*5+2],n.dets[l*5+3],s),b=me(c.x,0,t),y=me(c.y,0,r),I=me(h.x,0,t)-b,E=me(h.y,0,r)-y;if(I<=0||E<=0)continue;let g=[],w=l*Xt*o;for(let L=0;L<Xt;L++){let f=w+L*o,m=ue(n.keypoints[f],n.keypoints[f+1],s);g.push({x:me(m.x,0,t),y:me(m.y,0,r),visibility:me(n.keypoints[f+2],0,1)})}let k=0;for(let L of g)L.visibility>=tt&&k++;k<(e.minVisibleKeypoints??3)||i.push({score:d,boundingBox:{originX:b,originY:y,width:I,height:E,normalizedX:b/t,normalizedY:y/r,normalizedWidth:I/t,normalizedHeight:E/r},keypoints:g})}i.sort((l,d)=>d.score-l.score);let u=e.iouThreshold??.6,a=[];for(let l of i)a.some(d=>Wn(d,l,u))||a.push(l);return{people:a}}function me(n,e,t){return n<e?e:n>t?t:n}function Wn(n,e,t){if(de(n.boundingBox,e.boundingBox)>t)return!0;let r=Math.sqrt(n.boundingBox.width*n.boundingBox.height),s=0,o=0;for(let i=0;i<n.keypoints.length;i++){let u=n.keypoints[i],a=e.keypoints[i];u.visibility<tt||a.visibility<tt||(s+=Math.hypot(u.x-a.x,u.y-a.y),o++)}return o>=3&&s/o<.1*r}x();function Wt(n,e,t,r){let{sourceWidth:s,sourceHeight:o}=r,i=Ie(r.maskThreshold??.5,r.featherRadius??.2),u=new Uint8Array(s*o),a=e/s,l=t/o,d=0;for(let c=0;c<o;c++){let h=Math.max(0,(c+.5)*l-.5),b=Math.min(t-1,Math.floor(h)),y=Math.min(t-1,b+1),I=h-b;for(let E=0;E<s;E++){let g=Math.max(0,(E+.5)*a-.5),w=Math.min(e-1,Math.floor(g)),k=Math.min(e-1,w+1),L=g-w,f=n[b*e+w]*(1-L)*(1-I)+n[b*e+k]*L*(1-I)+n[y*e+w]*(1-L)*I+n[y*e+k]*L*I,m=i(f);u[c*s+E]=m,d+=m}}return{mask:u,width:s,height:o,coverage:s*o>0?d/(255*s*o):0}}x();var Kn=`
2
- struct Params {
3
- src: vec2u,
4
- dst: vec2u,
5
- scale: vec2f,
6
- offset: vec2f,
7
- lo: vec2i,
8
- hi: vec2i,
9
- mean: vec4f,
10
- invStd: vec4f,
11
- pad: vec4f,
12
- order: vec4u,
13
- };
14
-
15
- @group(0) @binding(0) var<uniform> p: Params;
16
- @group(0) @binding(1) var src: texture_2d<f32>;
17
- @group(0) @binding(2) var<storage, read_write> dst: array<f32>;
18
-
19
- @compute @workgroup_size(16, 16)
20
- fn main(@builtin(global_invocation_id) id: vec3u) {
21
- if (id.x >= p.dst.x || id.y >= p.dst.y) { return; }
22
- let x = i32(id.x);
23
- let y = i32(id.y);
24
- let plane = p.dst.x * p.dst.y;
25
- let o = id.y * p.dst.x + id.x;
26
- var v = p.pad.xyz;
27
- if (x >= p.lo.x && x <= p.hi.x && y >= p.lo.y && y <= p.hi.y) {
28
- let maxX = i32(p.src.x) - 1;
29
- let maxY = i32(p.src.y) - 1;
30
- let sy = max(0.0, (f32(y) + 0.5 - p.offset.y) / p.scale.y - 0.5);
31
- let iy0 = min(maxY, i32(floor(sy)));
32
- let iy1 = min(maxY, iy0 + 1);
33
- let fy = sy - f32(iy0);
34
- let sx = max(0.0, (f32(x) + 0.5 - p.offset.x) / p.scale.x - 0.5);
35
- let ix0 = min(maxX, i32(floor(sx)));
36
- let ix1 = min(maxX, ix0 + 1);
37
- let fx = sx - f32(ix0);
38
- var rgba =
39
- textureLoad(src, vec2i(ix0, iy0), 0) * ((1.0 - fx) * (1.0 - fy)) +
40
- textureLoad(src, vec2i(ix1, iy0), 0) * (fx * (1.0 - fy)) +
41
- textureLoad(src, vec2i(ix0, iy1), 0) * ((1.0 - fx) * fy) +
42
- textureLoad(src, vec2i(ix1, iy1), 0) * (fx * fy);
43
- rgba = rgba * 255.0;
44
- let s = vec3f(rgba[p.order.x], rgba[p.order.y], rgba[p.order.z]);
45
- v = (s - p.mean.xyz) * p.invStd.xyz;
46
- }
47
- dst[o] = v.x;
48
- dst[plane + o] = v.y;
49
- dst[2u * plane + o] = v.z;
50
- }
51
- `,qn=`
52
- @group(0) @binding(0) var src: texture_2d<f32>;
53
- @group(0) @binding(1) var<storage, read_write> acc: array<atomic<u32>, 2>;
54
-
55
- var<workgroup> local: array<atomic<u32>, 2>;
56
-
57
- @compute @workgroup_size(16, 16)
58
- fn main(
59
- @builtin(global_invocation_id) id: vec3u,
60
- @builtin(local_invocation_index) li: u32,
61
- ) {
62
- let dim = textureDimensions(src);
63
- if (id.x < dim.x && id.y < dim.y) {
64
- let c = pack4x8unorm(textureLoad(src, vec2i(id.xy), 0));
65
- let i = id.y * dim.x + id.x;
66
- let a = (c ^ (i * 0x9e3779b9u)) * 0x85ebca6bu;
67
- let b = (c + i * 0xc2b2ae35u) * 0x27d4eb2fu;
68
- atomicAdd(&local[0], a ^ (a >> 15u));
69
- atomicAdd(&local[1], b ^ (b >> 13u));
70
- }
71
- workgroupBarrier();
72
- if (li == 0u) {
73
- atomicAdd(&acc[0], atomicLoad(&local[0]));
74
- atomicAdd(&acc[1], atomicLoad(&local[1]));
75
- }
76
- }
77
- `,Kt=112,qt=new WeakMap,xe=class n{constructor(e){this.device=e;this.tensorPipeline=e.createComputePipeline({label:"vision_frame_tensor",layout:"auto",compute:{module:e.createShaderModule({code:Kn}),entryPoint:"main"}}),this.hashPipeline=e.createComputePipeline({label:"vision_frame_hash",layout:"auto",compute:{module:e.createShaderModule({code:qn}),entryPoint:"main"}}),this.params=e.createBuffer({label:"vision_frame_tensor_params",size:Kt,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST})}device;tensorPipeline;hashPipeline;params;static for(e){let t=qt.get(e);return t||(t=new n(e),qt.set(e,t)),t}static tensorBytes(e){return 3*e.width*e.height*4}toTensor(e,t,r){let s=Qe(e.width,e.height,t),{scaleX:o,scaleY:i,offsetX:u,offsetY:a}=s,l=new ArrayBuffer(Kt),d=new Uint32Array(l),c=new Float32Array(l),h=new Int32Array(l);d.set([e.width,e.height,t.width,t.height],0),c.set([o,i,u,a],4),h.set([Math.ceil(u),Math.ceil(a),Math.min(t.width,Math.floor(u+e.width*o))-1,Math.min(t.height,Math.floor(a+e.height*i))-1],8);let b=t.std.map(E=>1/E);c.set([...t.mean,0],12),c.set([...b,0],16),c.set([0,1,2].map(E=>(t.padValue-t.mean[E])*b[E]),20),d.set(t.channels==="bgr"?[2,1,0,3]:[0,1,2,3],24),this.device.queue.writeBuffer(this.params,0,l);let y=this.device.createCommandEncoder({label:"vision_frame_tensor"}),I=y.beginComputePass();return I.setPipeline(this.tensorPipeline),I.setBindGroup(0,this.device.createBindGroup({layout:this.tensorPipeline.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:this.params}},{binding:1,resource:e.texture.createView()},{binding:2,resource:{buffer:r}}]})),I.dispatchWorkgroups(Math.ceil(t.width/16),Math.ceil(t.height/16)),I.end(),this.device.queue.submit([y.finish()]),s}async contentKey(e){let t=this.device.createBuffer({size:8,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_SRC}),r=this.device.createBuffer({size:8,usage:GPUBufferUsage.MAP_READ|GPUBufferUsage.COPY_DST}),s=this.device.createCommandEncoder({label:"vision_frame_hash"}),o=s.beginComputePass();o.setPipeline(this.hashPipeline),o.setBindGroup(0,this.device.createBindGroup({layout:this.hashPipeline.getBindGroupLayout(0),entries:[{binding:0,resource:e.texture.createView()},{binding:1,resource:{buffer:t}}]})),o.dispatchWorkgroups(Math.ceil(e.width/16),Math.ceil(e.height/16)),o.end(),s.copyBufferToBuffer(t,0,r,0,8),this.device.queue.submit([s.finish()]),await r.mapAsync(GPUMapMode.READ);let[i,u]=new Uint32Array(r.getMappedRange().slice(0));return r.unmap(),r.destroy(),t.destroy(),`${e.width}x${e.height}:gpu:${i.toString(36)}:${u.toString(36)}`}};async function Oe(n){let{device:e,texture:t,width:r,height:s}=n,o=r*4,i=Math.ceil(o/256)*256,u=e.createBuffer({size:i*s,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ,label:"vision_frame_readback"}),a=e.createCommandEncoder({label:"vision_frame_readback"});a.copyTextureToBuffer({texture:t},{buffer:u,bytesPerRow:i,rowsPerImage:s},[r,s,1]),e.queue.submit([a.finish()]),await u.mapAsync(GPUMapMode.READ);let l=new Uint8Array(u.getMappedRange()),d=new Uint8ClampedArray(r*s*4);for(let c=0;c<s;c++)d.set(l.subarray(c*i,c*i+o),c*o);if(u.unmap(),u.destroy(),t.format.startsWith("bgra"))for(let c=0;c<d.length;c+=4){let h=d[c];d[c]=d[c+2],d[c+2]=h}return{data:d,width:r,height:s}}x();x();x();var Zt=`
78
- struct Bone {
79
- start: vec2<f32>,
80
- end: vec2<f32>,
81
- color: vec4<f32>,
82
- radius: f32,
83
- enabled: f32,
84
- pad: vec2<f32>,
85
- };
86
-
87
- struct SkeletonParams {
88
- width: u32,
89
- height: u32,
90
- numBones: u32,
91
- pad: u32,
92
- bones: array<Bone, 24>,
93
- };
94
-
95
- @group(0) @binding(0) var outputTex: texture_storage_2d<rgba8unorm, write>;
96
- @group(0) @binding(1) var<uniform> params: SkeletonParams;
97
-
98
- @compute @workgroup_size(16, 16)
99
- fn computePoseSkeleton(@builtin(global_invocation_id) id: vec3<u32>) {
100
- if (id.x >= params.width || id.y >= params.height) {
101
- return;
102
- }
103
-
104
- let p = vec2<f32>(f32(id.x) + 0.5, f32(id.y) + 0.5);
105
- var outColor = vec4<f32>(0.0, 0.0, 0.0, 0.0);
106
-
107
- let count = min(params.numBones, 24u);
108
- for (var i = 0u; i < count; i = i + 1u) {
109
- let bone = params.bones[i];
110
- if (bone.enabled < 0.5) {
111
- continue;
112
- }
113
-
114
- let ab = bone.end - bone.start;
115
- let ap = p - bone.start;
116
- let l2 = dot(ab, ab);
117
-
118
- var t: f32 = 0.0;
119
- if (l2 > 0.0001) {
120
- t = clamp(dot(ap, ab) / l2, 0.0, 1.0);
121
- }
122
-
123
- let closest = bone.start + t * ab;
124
- let dist = length(p - closest);
125
-
126
- if (dist <= bone.radius) {
127
- // Sub-pixel edge antialiasing
128
- let edgeAlpha = clamp(bone.radius - dist + 0.5, 0.0, 1.0);
129
- let a = edgeAlpha * bone.color.a;
130
- outColor = vec4<f32>(mix(outColor.rgb, bone.color.rgb, a), max(outColor.a, a));
131
- }
132
- }
133
-
134
- textureStore(outputTex, id.xy, outColor);
135
- }
136
- `;var Zn=[{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]}],Ce=class{constructor(e){this.device=e;let t=e.createShaderModule({label:"pose_skeleton.wgsl",code:Zt});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={},r){let s=r??Zn,o=t.width??1024,i=t.height??1024,u=t.lineWidth??6,a=Math.max(1,u/2),l=1280,d=new ArrayBuffer(l),c=new Uint32Array(d),h=new Float32Array(d);c[0]=o,c[1]=i,c[2]=s.length,c[3]=0;let b=4;for(let g=0;g<s.length;g++){let w=s[g],k=e[w.from],L=e[w.to],f=b+g*12;if(!k||!L||(k.visibility??1)<.2||(L.visibility??1)<.2){h[f+9]=0;continue}h[f+0]=k.x*o,h[f+1]=k.y*i,h[f+2]=L.x*o,h[f+3]=L.y*i,h[f+4]=w.color[0],h[f+5]=w.color[1],h[f+6]=w.color[2],h[f+7]=w.color[3],h[f+8]=a,h[f+9]=1}this.device.queue.writeBuffer(this.uniformBuffer,0,d),(!this.cachedOutputTexture||this.cachedOutputTexture.width!==o||this.cachedOutputTexture.height!==i)&&(this.cachedOutputTexture?.destroy(),this.cachedOutputTexture=this.device.createTexture({label:"openpose_skeleton_texture",size:[o,i],format:"rgba8unorm",usage:GPUTextureUsage.STORAGE_BINDING|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC}));let y=this.device.createCommandEncoder({label:"pose_skeleton_command_encoder"}),I=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=y.beginComputePass({label:"pose_skeleton_compute_pass"});return E.setPipeline(this.computePipeline),E.setBindGroup(0,I),E.dispatchWorkgroups(Math.ceil(o/16),Math.ceil(i/16),1),E.end(),this.device.queue.submit([y.finish()]),this.cachedOutputTexture}destroy(){this.cachedOutputTexture?.destroy(),this.cachedOutputTexture=void 0,this.uniformBuffer.destroy()}};x();var v={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},nt=["nose","leftEye","rightEye","leftEar","rightEar","leftShoulder","rightShoulder","leftElbow","rightElbow","leftWrist","rightWrist","leftHip","rightHip","leftKnee","rightKnee","leftAnkle","rightAnkle"],Jt=[{from:v.NOSE,to:v.LEFT_SHOULDER,color:[0,1,1,1]},{from:v.NOSE,to:v.RIGHT_SHOULDER,color:[0,1,1,1]},{from:v.LEFT_SHOULDER,to:v.RIGHT_SHOULDER,color:[1,0,0,1]},{from:v.LEFT_SHOULDER,to:v.LEFT_ELBOW,color:[1,.333,0,1]},{from:v.LEFT_ELBOW,to:v.LEFT_WRIST,color:[1,.667,0,1]},{from:v.RIGHT_SHOULDER,to:v.RIGHT_ELBOW,color:[1,1,0,1]},{from:v.RIGHT_ELBOW,to:v.RIGHT_WRIST,color:[.667,1,0,1]},{from:v.LEFT_SHOULDER,to:v.LEFT_HIP,color:[.333,1,0,1]},{from:v.RIGHT_SHOULDER,to:v.RIGHT_HIP,color:[0,1,0,1]},{from:v.LEFT_HIP,to:v.RIGHT_HIP,color:[0,1,.333,1]},{from:v.LEFT_HIP,to:v.LEFT_KNEE,color:[0,1,.667,1]},{from:v.LEFT_KNEE,to:v.LEFT_ANKLE,color:[0,1,1,1]},{from:v.RIGHT_HIP,to:v.RIGHT_KNEE,color:[0,.667,1,1]},{from:v.RIGHT_KNEE,to:v.RIGHT_ANKLE,color:[0,.333,1,1]}];var Ee=class{pipeline;constructor(e){this.pipeline=new Ce(e)}renderToTexture(e,t,r=Jt){return this.pipeline.execute(e,t,r)}destroy(){this.pipeline.destroy()}};x();var Qt=class{device;pool=new Map;constructor(e){this.device=e}getOrCreateTexture(e,t){let r=this.pool.get(e);if(r&&r.width===t.width&&r.height===t.height)return r;r&&r.destroy();let s=t.format??"rgba8unorm",o=this.device.createTexture({label:t.label??`vision_segmentation_${e}`,size:[t.width,t.height,1],format:s,usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT});return this.pool.set(e,o),o}uploadMask(e,t,r,s){let o=t.length>=r*s*4,i=o?"rgba8unorm":"r8unorm",u=this.getOrCreateTexture(e,{width:r,height:s,format:i}),a;if(t instanceof Float32Array){a=new Uint8Array(t.length);for(let b=0;b<t.length;b++)a[b]=Math.round(Math.max(0,Math.min(1,t[b]))*255)}else a=t;let d=r*(o?4:1),c=Math.ceil(d/256)*256,h;if(c===d)h=a;else{h=new Uint8Array(c*s);for(let b=0;b<s;b++)h.set(a.subarray(b*d,(b+1)*d),b*c)}return this.device.queue.writeTexture({texture:u},h.buffer,{offset:h.byteOffset,bytesPerRow:c,rowsPerImage:s},{width:r,height:s}),u}destroy(){for(let e of this.pool.values())e.destroy();this.pool.clear()}};x();var en=En(An(),1);Ln();function Jn(){return j.env.FRAMEFIELDS_MODELS_DIR?_e(j.env.FRAMEFIELDS_MODELS_DIR):_e(Mt(),".cache/framefields/models")}var Le=class{_modelsDir;_baseUrl;_timeoutMs;_retries;_retryDelayMs;_verify;_fetch;_onProgress;_inflight=new Map;_buffers=new Map;_status=new Map;constructor(e={}){this._modelsDir=e.modelsDir?_e(e.modelsDir):Jn(),this._baseUrl=e.baseUrl??j.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 vt(this._modelsDir,re[e].filename)}descriptor(e){return re[e]}urlFor(e){let t=re[e];return this._baseUrl?`${this._baseUrl.replace(/\/+$/,"")}/${t.filename}`:t.url}has(e){let t=this.pathFor(e);if(!we(t))return!1;try{let r=kt(t).size;return this._verify?r===re[e].bytes:r>0}catch{return!1}}async evict(e){this._buffers.delete(e),this._status.set(e,"pending"),await Ge(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 r=this._inflight.get(e);if(r)return r;let s=this.load(e).finally(()=>this._inflight.delete(e));return this._inflight.set(e,s),s}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 r=this.urlFor(e);this._status.set(e,"downloading"),we(ze(t))||Tt(ze(t),{recursive:!0});let s=`${t}.tmp.${Date.now()}`;try{let{buffer:o,totalBytes:i}=await this.download(e,r);if(o.byteLength===0)throw new Error(`Downloaded vision model '${e}' is empty (0 bytes).`);return this._verify&&this.verifyBytes(e,o,r),this._onProgress?.(e,o.byteLength,i||o.byteLength),await wt(s,o),await _t(s,t),this._buffers.set(e,o),this._status.set(e,"ready"),o}catch(o){throw this._status.set(e,"error"),we(s)&&await Ge(s).catch(()=>{}),o}}async download(e,t){for(let r=0;;r++){let s;try{let o=await this._fetch(t,{signal:this._timeoutMs?AbortSignal.timeout(this._timeoutMs):void 0});if(o.ok){let u=Number(o.headers.get("content-length")??0);return{buffer:new Uint8Array(await o.arrayBuffer()),totalBytes:u}}let i=new Error(`Failed to download vision model '${e}' from ${t}: HTTP ${o.status} ${o.statusText}`);if(o.status!==429&&o.status<500)throw i;s=i}catch(o){if(!(o instanceof TypeError))throw o;s=o}if(r>=this._retries)throw new Error(`Failed to download vision model '${e}' from ${t} after ${r+1} attempts: ${String(s)}`,{cause:s});await new Promise(o=>setTimeout(o,this._retryDelayMs*2**r))}}verifyBytes(e,t,r){let s=re[e];if(t.byteLength!==s.bytes)throw new Error(`Vision model '${e}' from ${r} is ${t.byteLength} bytes, expected ${s.bytes}.`);let o=(0,en.createHash)("sha256").update(t).digest("hex");if(o!==s.sha256)throw new Error(`Vision model '${e}' from ${r} failed its SHA-256 check (got ${o}, expected ${s.sha256}).`)}async readBuffer(e,t){let r=await St(t),s=new Uint8Array(r.buffer,r.byteOffset,r.byteLength);return this._buffers.set(e,s),s}clearMemoryCache(){this._buffers.clear()}};x();function tn(){return{objects:[],rawDetections:[]}}function nn(){return{people:[]}}function rn(){let n=[];for(let e=0;e<17;e++)n.push({x:.5,y:.5,z:0,visibility:0});return n}x();x();var fe={scores:"/Sigmoid_output_0",boxes:"/Concat_7_output_0",kernels:"/Concat_5_output_0",maskFeatures:"/bbox_head/mask_head/projection/Conv_output_0"},on=5e3,Qn=Math.fround(.6),sn=Math.fround(.05),er=200,an=100,tr=[8,16,32],rt=8,cn=8,ln=169;function dn(n){let{scores:e,boxes:t,anchors:r,classes:s}=n,o=new Float32Array(r);for(let d=0;d<r;d++){let c=0,h=d*s;for(let b=0;b<s;b++){let y=e[h+b];y>c&&(c=y)}o[d]=c}let i=[];for(let d=0;d<r;d++)o[d]>sn&&i.push(d);i.sort((d,c)=>o[c]-o[d]||d-c),i.length>on&&(i.length=on);let u=[],a=[],l=[];for(let d=0;d<s;d++){a.length=0;for(let c of i)e[c*s+d]>sn&&a.push(c);if(a.length!==0){a.sort((c,h)=>e[h*s+d]-e[c*s+d]||c-h),l.length=0;for(let c of a){if(l.length>=er)break;let h=!1;for(let b of l)if(nr(t,c,b)>Qn){h=!0;break}h||(l.push(c),u.push({anchor:c,classIndex:d,score:e[c*s+d]}))}}}return u.sort((d,c)=>c.score-d.score),u.length>an&&(u.length=an),u}function nr(n,e,t){let r=n[e*4],s=n[e*4+1],o=n[e*4+2],i=n[e*4+3],u=n[t*4],a=n[t*4+1],l=n[t*4+2],d=n[t*4+3],c=Math.min(o,l)-Math.max(r,u),h=Math.min(i,d)-Math.max(s,a);if(c<=0||h<=0)return 0;let b=c*h,y=(o-r)*(i-s)+(l-u)*(d-a)-b;return y>0?b/y:0}function rr(n,e,t){let r=0;for(let s of tr){let o=Math.ceil(e/s),i=o*Math.ceil(t/s);if(n<r+i){let u=n-r;return{x:u%o*s,y:Math.floor(u/o)*s,stride:s}}r+=i}throw new RangeError(`anchor ${n} is out of range`)}function un(n,e,t){let{kernels:r,maskFeatures:s,maskWidth:o,maskHeight:i}=n,u=o*i,a=t&&t.length>=u?t:new Float32Array(u),l=rr(e,n.inputWidth,n.inputHeight),d=r.subarray(e*ln,(e+1)*ln),c=0,h=80,b=144,y=152,I=160,E=168,g=1/(l.stride*rt),w=new Float32Array(2+cn),k=new Float32Array(8),L=new Float32Array(8);for(let f=0;f<i;f++){let m=(l.y-f*rt)*g;for(let _=0;_<o;_++){let T=f*o+_;w[0]=(l.x-_*rt)*g,w[1]=m;for(let M=0;M<cn;M++)w[2+M]=s[M*u+T];for(let M=0;M<8;M++){let V=d[y+M],O=c+M*10;for(let S=0;S<10;S++)V+=d[O+S]*w[S];k[M]=V>0?V:0}for(let M=0;M<8;M++){let V=d[I+M],O=h+M*8;for(let S=0;S<8;S++)V+=d[O+S]*k[S];L[M]=V>0?V:0}let R=d[E];for(let M=0;M<8;M++)R+=d[b+M]*L[M];a[T]=R}}return a}x();function dr(n){let e=new Uint8Array([8,1]),t=be(1,e);return Me([be(1,Pt.encode(n)),be(2,t)])}function gn(n,e){let t=Ye(n),r=t.find(y=>y.number===7&&y.wire===2);if(!r)throw new Error("ONNX model has no graph");let s=Ye(r.body),o=s.filter(y=>y.number===1).map(y=>({field:y,inputs:Xe(y.body,1),outputs:Xe(y.body,2)})),i=new Map;o.forEach((y,I)=>{for(let E of y.outputs)i.set(E,I)});let u=new Set,a=new Set,l=[...e];for(let y of e)if(!i.has(y))throw new Error(`ONNX model has no tensor '${y}'`);for(;l.length>0;){let y=l.pop();if(a.has(y))continue;a.add(y);let I=i.get(y);if(!(I===void 0||u.has(I))){u.add(I);for(let E of o[I].inputs)E&&l.push(E)}}let d=new Map;for(let y of s){if(y.number!==13)continue;let I=ve(y.body,1);I!==void 0&&d.set(I,y.body)}let c=[],h=0;for(let y of s)switch(y.number){case 1:u.has(h)&&c.push(y.raw),h++;break;case 5:{let I=ve(y.body,8);I!==void 0&&a.has(I)&&c.push(y.raw);break}case 11:case 13:{let I=ve(y.body,1);I!==void 0&&a.has(I)&&c.push(y.raw);break}case 12:break;default:c.push(y.raw)}for(let y of e)c.push(be(12,d.get(y)??dr(y)));let b=Me(c);return Me(t.map(y=>y===r?be(7,b):y.raw))}x();function st(n){return n.texture!==void 0}var ur=4,ke=class n{variant;confidence;classes;maskThreshold;featherRadius;_core;_ownsCore;constructor(e,t){this.variant=e.variant??"s",this.confidence=e.confidence??.3,this.classes=e.classes,this.maskThreshold=e.maskThreshold??.5,this.featherRadius=e.featherRadius,this._ownsCore=t===void 0,this._core=t??{store:e.store??new Le({modelsDir:e.modelsDir,baseUrl:e.baseUrl,timeoutMs:e.timeoutMs,onProgress:e.onProgress}),provider:e.provider??It(),sessions:new Map,tensorScratch:new Map,runQueue:new Map,gpuInputs:new Map,instancePasses:[]}}static create(e={}){return new n(e)}derive(e){return new n({variant:this.variant,confidence:e.confidence??this.confidence,classes:"classes"in e?e.classes:this.classes,maskThreshold:e.maskThreshold??this.maskThreshold,featherRadius:"featherRadius"in e?e.featherRadius:this.featherRadius},this._core)}get modelsDir(){return this._core.store.modelsDir}get downloadStatus(){let e=new Map;for(let t of Object.keys(re))e.set(t,"pending");for(let[t,r]of this._core.store.statuses())e.set(t,r);return e}modelKeyFor(e,t=1){return Ht(e,this.variant,t)}async preload(e=["detect"]){let t=new Set;for(let r of e)r==="matte"?(t.add("selfie-square"),t.add("selfie-landscape")):t.add(this.modelKeyFor(r));await this._core.store.preload([...t]),await Promise.all([...t].map(r=>this.session(r)))}async detect(e){let t=await this.instancePass(e);return et({...t.outputs,masks:void 0,maskPlane:void 0},this.instanceDecodeOptions(e,t.transform)).detections}async segment(e){let t=await this.instancePass(e);return et(t.outputs,this.instanceDecodeOptions(e,t.transform))}async pose(e){let t=this.modelKeyFor("pose"),{outputs:r,transform:s}=await this.infer(t,e),o=ae(r,"dets",t),i=ae(r,"keypoints",t);return $t({dets:o.data,keypoints:i.data,count:o.dims[1]??0,keypointStride:i.dims[3]??3},{confidence:this.confidence,transform:s,sourceWidth:e.width,sourceHeight:e.height})}async matte(e){let t=this.modelKeyFor("matte",e.width/e.height),[r,s]=re[t].input,{outputs:o}=await this.infer(t,e),i=ae(o,"alphas",t);return Wt(i.data,r,s,{sourceWidth:e.width,sourceHeight:e.height,maskThreshold:this.maskThreshold,...this.featherRadius!==void 0?{featherRadius:this.featherRadius}:{}})}close(){if(!this._ownsCore)return;let e=this._core;for(let t of e.sessions.values())t.then(r=>r.release()).catch(()=>{});e.sessions.clear(),e.runQueue.clear();for(let{buffer:t}of e.gpuInputs.values())t.destroy();e.gpuInputs.clear(),e.instancePasses.length=0,e.store.clearMemoryCache()}async instancePass(e){let t=this._core.instancePasses,r=st(e)?await xe.for(e.device).contentKey(e):gr(e),s=t.find(a=>a.content===r);if(s)return s.result;let o=this.modelKeyFor("segment"),i=this.infer(o,e).then(({outputs:a,transform:l})=>({transform:l,outputs:fe.scores in a?hr(a,o,l):pr(a,o)})),u={content:r,result:i};return t.push(u),t.length>ur&&t.shift(),i.catch(()=>{let a=t.indexOf(u);a>=0&&t.splice(a,1)}),i}instanceDecodeOptions(e,t){return{confidence:this.confidence,classes:this.classes,classNames:Pe,transform:t,sourceWidth:e.width,sourceHeight:e.height,maskThreshold:this.maskThreshold,...this.featherRadius!==void 0?{featherRadius:this.featherRadius}:{}}}infer(e,t){let r=this._core.runQueue,o=(r.get(e)??Promise.resolve()).then(()=>this.inferNow(e,t),()=>this.inferNow(e,t)),i=o.catch(()=>{});return r.set(e,i),i.then(()=>{r.get(e)===i&&r.delete(e)}),o}async inferNow(e,t){let r=await this.session(e),s=re[e],o=zt(s.family,s.input),i=[1,3,o.height,o.width],u;if(st(t)){if(this._core.provider.device===t.device){let y=this.gpuInput(e,t.device,o),I=xe.for(t.device).toTensor(t,o,y);return{outputs:await r.run({name:"input",data:mr,gpuBuffer:y,dims:i}),transform:I}}u=await Oe(t)}else u=t;let a=3*o.width*o.height,l=this._core.tensorScratch,d=l.get(e);(!d||d.length<a)&&(d=new Float32Array(a),l.set(e,d));let{tensor:c,transform:h}=Yt(u,o,d);return{outputs:await r.run({name:"input",data:c,dims:i}),transform:h}}gpuInput(e,t,r){let s=this._core.gpuInputs,o=xe.tensorBytes(r),i=s.get(e);if(i?.device===t&&i.buffer.size>=o)return i.buffer;i?.buffer.destroy();let u=t.createBuffer({label:`vision_input_${e}`,size:o,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_SRC});return s.set(e,{device:t,buffer:u}),u}session(e){let{sessions:t,store:r,provider:s}=this._core,o=t.get(e);return o||(o=r.ensure(e).then(i=>s.createSession(re[e].family==="rtmdet-ins"?fr(i):i)).catch(i=>{throw t.delete(e),r.evict(e),i}),t.set(e,o)),o}},mr=new Float32Array(0);function fr(n){try{return gn(n,Object.values(fe))}catch{return n}}function pr(n,e){let t=ae(n,"dets",e),r=ae(n,"masks",e);return{dets:t.data,labels:ae(n,"labels",e).data,masks:r.data,count:t.dims[1]??0,maskHeight:r.dims[r.dims.length-2]??0,maskWidth:r.dims[r.dims.length-1]??0}}function hr(n,e,t){let r=ae(n,fe.scores,e),s=ae(n,fe.maskFeatures,e),o={scores:r.data,boxes:ae(n,fe.boxes,e).data,kernels:ae(n,fe.kernels,e).data,maskFeatures:s.data,anchors:r.dims[1]??0,classes:r.dims[2]??0,maskHeight:s.dims[2]??0,maskWidth:s.dims[3]??0,inputWidth:t.inputWidth,inputHeight:t.inputHeight},i=dn(o),u=new Float32Array(i.length*5),a=new Int32Array(i.length);i.forEach(({anchor:d,classIndex:c,score:h},b)=>{u.set(o.boxes.subarray(d*4,d*4+4),b*5),u[b*5+4]=h,a[b]=c});let l=new Map;return{dets:u,labels:a,count:i.length,maskWidth:o.maskWidth,maskHeight:o.maskHeight,maskLogits:!0,maskPlane:d=>{let c=l.get(d);return c||(c=un(o,i[d].anchor),l.set(d,c)),c}}}function gr(n){let{data:e}=n,t=e.byteOffset%4===0?e.byteLength>>>2:0,r=new Uint32Array(e.buffer,e.byteOffset,t),s=2166136261,o=16777619^e.byteLength;for(let i=0;i<t;i++){let u=r[i];s=Math.imul(s^u,2654435761),o=Math.imul(o^u,2246822519)^s>>>15}for(let i=t*4;i<e.length;i++)s=Math.imul(s^e[i],2654435761);return`${n.width}x${n.height}:${(s>>>0).toString(36)}:${(o>>>0).toString(36)}`}function ae(n,e,t){let r=n[e];if(!r)throw new Error(`Vision model '${t}' returned no '${e}' output (got: ${Object.keys(n).join(", ")||"none"}). Expected the ${re[t].source}.`);return r}x();var bn=Symbol.for("framefields.vision.clipSubject");x();function it(n,e){let t=e&&new Set(e.map(s=>s.toLowerCase())),r;for(let s of n){if(t&&!t.has(s.category.toLowerCase()))continue;if(!r){r=s;continue}let o=yn(s),i=yn(r);o!==i?o&&(r=s):(o?s.area>r.area:s.detectionIndex<r.detectionIndex)&&(r=s)}return r}function yn(n){return n.category.toLowerCase()==="person"}function Ae(n){let{mask:e,width:t,height:r}=n,s=t,o=r,i=-1,u=-1;for(let a=0;a<r;a++){let l=a*t;for(let d=0;d<t;d++)e[l+d]!==0&&(d<s&&(s=d),d>i&&(i=d),a<o&&(o=a),a>u&&(u=a))}return i<0?null:{x0:s,y0:o,x1:i,y1:u}}function xn(n,e={}){let{classes:t,overlap:r=.5,maxGrowth:s=2}=e,o=it(n,t);if(!o)return;let i=Ae(o);if(!i)return o;let u=je(i),a=n.filter(c=>{if(c===o)return!1;let h=Ae(c);return h!==null&&je(h)<=u*s&&br(i,h)>=r});if(a.length===0)return o;let l=o.mask.slice();for(let c of a){let h=c.mask;for(let b=0;b<l.length;b++)h[b]>l[b]&&(l[b]=h[b])}let d=0;for(let c=0;c<l.length;c++)d+=l[c];return d=Math.round(d/255),{...o,mask:l,area:d,coverage:d/(o.width*o.height)}}function je(n){return(n.x1-n.x0+1)*(n.y1-n.y0+1)}function br(n,e){let t=Math.min(n.x1,e.x1)-Math.max(n.x0,e.x0)+1,r=Math.min(n.y1,e.y1)-Math.max(n.y0,e.y0)+1;return t<=0||r<=0?0:t*r/Math.min(je(n),je(e))}x();x();var Fe=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 r=e.x*this.width,s=e.y*this.height,o=e.z*this.width+t,i=Math.min(o,this.focalDistance-10),u=this.focalDistance/(this.focalDistance-i);return{x:r,y:s,z:o,scale:Math.max(.1,u)}}projectWorldLandmark(e,t=2,r=800){let s=this.width/2,o=this.height/2,i=e.x*r,u=e.y*r,a=(e.z+t)*r,l=Math.min(a,this.focalDistance-10),d=this.focalDistance/(this.focalDistance-l);return{x:s+i*d,y:o+u*d,z:a,scale:Math.max(.1,d)}}};x();function at(n){if(n.boundingBox&&n.boundingBox.width>0&&n.boundingBox.height>0)return{originX:n.boundingBox.originX,originY:n.boundingBox.originY,width:n.boundingBox.width,height:n.boundingBox.height};let e=1/0,t=1/0,r=-1/0,s=-1/0,o=0;for(let i of n.keypoints)i.visibility>.1&&(o++,i.x<e&&(e=i.x),i.y<t&&(t=i.y),i.x>r&&(r=i.x),i.y>s&&(s=i.y));return o===0||e>=r||t>=s?{originX:n.boundingBox?.originX??0,originY:n.boundingBox?.originY??0,width:n.boundingBox?.width??0,height:n.boundingBox?.height??0}:{originX:e,originY:t,width:r-e,height:s-t}}function kn(n,e,t=.15){if(n.length===0)return[];let r=e.filter(a=>a.category.toLowerCase()==="person"&&a.active);if(r.length===0)return[...n];let s=[];for(let a=0;a<n.length;a++){let l=n[a];if(l.trackId!==void 0)continue;let d=at(l),c=d.width<=1.05&&d.height<=1.05;for(let h of r){let b=c&&h.boundingBox.normalizedWidth>0?{originX:h.boundingBox.normalizedX,originY:h.boundingBox.normalizedY,width:h.boundingBox.normalizedWidth,height:h.boundingBox.normalizedHeight}:h.boundingBox,y=de(d,b);y>=t&&s.push({personIdx:a,trackId:h.trackId,iou:y})}}s.sort((a,l)=>l.iou-a.iou);let o=new Set,i=new Set,u=new Map;for(let a of s)o.has(a.personIdx)||i.has(a.trackId)||(o.add(a.personIdx),i.add(a.trackId),u.set(a.personIdx,a.trackId));return n.length===1&&r.length===1&&!u.has(0)&&n[0].trackId===void 0&&u.set(0,r[0].trackId),n.map((a,l)=>{if(a.trackId!==void 0)return a;let d=u.get(l);return d!==void 0?{...a,trackId:d}:a})}var Ve=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 Fe({width:this._width,height:this._height,fov:e.cameraFov??60});let t=this,r=(f,m)=>{let _=bt(f,m);return this._registeredSignals.add(_),_},s=f=>this.getPoseResult(f).people[0]?.keypoints??rn(),o=(f,m)=>{let _=S=>s(S)[f]??{x:.5,y:.5,z:0},T=r(S=>_(S.frame).x,{fps:this._fps,label:`${m}_x`}),R=r(S=>_(S.frame).y,{fps:this._fps,label:`${m}_y`}),M=r(S=>_(S.frame).z??0,{fps:this._fps,label:`${m}_z`}),V=r(S=>this._transformer.projectNormalizedLandmark(_(S.frame)).x,{fps:this._fps,label:`${m}_screenX`}),O=r(S=>this._transformer.projectNormalizedLandmark(_(S.frame)).y,{fps:this._fps,label:`${m}_screenY`});return{x:T,y:R,z:M,screenX:V,screenY:O}},i=f=>{let m=this._poseLmCache.get(f);return m||(m=o(f,nt[f]??`kpt_${f}`),this._poseLmCache.set(f,m)),m},u={nose:i(v.NOSE),leftEye:i(v.LEFT_EYE),rightEye:i(v.RIGHT_EYE),leftEar:i(v.LEFT_EAR),rightEar:i(v.RIGHT_EAR),shoulder:i(v.LEFT_SHOULDER),leftShoulder:i(v.LEFT_SHOULDER),rightShoulder:i(v.RIGHT_SHOULDER),leftElbow:i(v.LEFT_ELBOW),rightElbow:i(v.RIGHT_ELBOW),leftWrist:i(v.LEFT_WRIST),rightWrist:i(v.RIGHT_WRIST),leftHip:i(v.LEFT_HIP),rightHip:i(v.RIGHT_HIP),leftKnee:i(v.LEFT_KNEE),rightKnee:i(v.RIGHT_KNEE),leftAnkle:i(v.LEFT_ANKLE),rightAnkle:i(v.RIGHT_ANKLE),get:i};this.poseLandmarks=new Proxy(u,{get(f,m,_){return typeof m=="string"&&/^\d+$/.test(m)?f.get(Number(m)):typeof m=="number"?f.get(m):Reflect.get(f,m,_)}});let a=(f,m="unknown")=>({trackId:f,category:m,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}),l=(f,m)=>{let _=r(O=>f(O.frame).sx,{fps:this._fps,label:`${m}_screenX`}),T=r(O=>f(O.frame).sy,{fps:this._fps,label:`${m}_screenY`}),R=r(O=>this._width>0?f(O.frame).sx/this._width:0,{fps:this._fps,label:`${m}_x`}),M=r(O=>this._height>0?f(O.frame).sy/this._height:0,{fps:this._fps,label:`${m}_y`}),V=r(()=>0,{fps:this._fps,label:`${m}_z`});return{x:R,y:M,z:V,screenX:_,screenY:T}},d=(f,m,_)=>{let T=U=>{let B=t.getPoseResult(U);if(B.people.length===0)return;let F=f(U),N=_??F.trackId,X=B.people.find(K=>K.trackId===N);if(X)return X;if(!F.active&&B.people.length>1)return;if(B.people.length===1)return B.people[0];let Y,G=.1;for(let K of B.people){let H=at(K),$=H.width<=1.05&&H.height<=1.05&&F.boundingBox.normalizedWidth>0?{originX:F.boundingBox.normalizedX,originY:F.boundingBox.normalizedY,width:F.boundingBox.normalizedWidth,height:F.boundingBox.normalizedHeight}:F.boundingBox,Z=de(H,$);Z>G&&(G=Z,Y=K)}return Y},R=r(U=>T(U.frame)?1:0,{fps:this._fps,label:`${m}_hasPose`}),M=(U,B)=>{let F=H=>{let $=T(H)?.keypoints[U];if($&&$.visibility>.05)return{x:$.x,y:$.y,z:0};let Z=f(H);return{x:Z.normalizedCenterX,y:Z.normalizedCenterY,z:0}},N=r(H=>F(H.frame).x,{fps:this._fps,label:`${m}_${B}_x`}),X=r(H=>F(H.frame).y,{fps:this._fps,label:`${m}_${B}_y`}),Y=r(H=>F(H.frame).z??0,{fps:this._fps,label:`${m}_${B}_z`}),G=r(H=>t._transformer.projectNormalizedLandmark(F(H.frame)).x,{fps:this._fps,label:`${m}_${B}_screenX`}),K=r(H=>t._transformer.projectNormalizedLandmark(F(H.frame)).y,{fps:this._fps,label:`${m}_${B}_screenY`});return{x:N,y:X,z:Y,screenX:G,screenY:K}},V=new Map,O=U=>{let B=V.get(U);return B||(B=M(U,nt[U]??`kpt_${U}`),V.set(U,B)),B},S=r(U=>{let B=U.frame,F=T(B);if(!F)return 0;let N=T(Math.max(0,B-1)),X=F.keypoints,Y=N?.keypoints,G=X[v.RIGHT_WRIST],K=Y?.[v.RIGHT_WRIST],H=0;if(G&&K&&G.visibility>.1&&K.visibility>.1){let te=(G.x-K.x)*this._width,oe=(G.y-K.y)*this._height;H=Math.sqrt(te*te+oe*oe)*this._fps}let se=X[v.LEFT_WRIST],$=Y?.[v.LEFT_WRIST],Z=0;if(se&&$&&se.visibility>.1&&$.visibility>.1){let te=(se.x-$.x)*this._width,oe=(se.y-$.y)*this._height;Z=Math.sqrt(te*te+oe*oe)*this._fps}return Math.max(H,Z)},{fps:this._fps,label:`${m}_wristSpeed`}),p=r(U=>{let B=T(U.frame);if(!B)return 0;let F=B.keypoints,N=F[v.LEFT_WRIST],X=F[v.LEFT_SHOULDER],Y=F[v.RIGHT_WRIST],G=F[v.RIGHT_SHOULDER],K=N&&X&&N.visibility>.1&&X.visibility>.1&&N.y<X.y,H=Y&&G&&Y.visibility>.1&&G.visibility>.1&&Y.y<G.y;return K||H?1:0},{fps:this._fps,label:`${m}_handRaised`}),C=r(U=>{let B=T(U.frame);if(!B)return 0;let F=B.keypoints,N=F[v.LEFT_SHOULDER],X=F[v.RIGHT_SHOULDER],Y=F[v.LEFT_HIP],G=F[v.RIGHT_HIP];if(!N||!X||!Y||!G)return 0;let K=(N.x+X.x)/2*this._width,H=(N.y+X.y)/2*this._height,se=(Y.x+G.x)/2*this._width,$=(Y.y+G.y)/2*this._height,Z=K-se,te=H-$;return Z===0&&te===0?0:Math.atan2(Z,-te)},{fps:this._fps,label:`${m}_bodyTiltAngle`}),z={hasPose:R,wristSpeed:S,handRaised:p,bodyTiltAngle:C,nose:O(v.NOSE),leftEye:O(v.LEFT_EYE),rightEye:O(v.RIGHT_EYE),leftEar:O(v.LEFT_EAR),rightEar:O(v.RIGHT_EAR),shoulder:O(v.LEFT_SHOULDER),leftShoulder:O(v.LEFT_SHOULDER),rightShoulder:O(v.RIGHT_SHOULDER),leftElbow:O(v.LEFT_ELBOW),rightElbow:O(v.RIGHT_ELBOW),leftWrist:O(v.LEFT_WRIST),rightWrist:O(v.RIGHT_WRIST),leftHip:O(v.LEFT_HIP),rightHip:O(v.RIGHT_HIP),leftKnee:O(v.LEFT_KNEE),rightKnee:O(v.RIGHT_KNEE),leftAnkle:O(v.LEFT_ANKLE),rightAnkle:O(v.RIGHT_ANKLE),get:O};return new Proxy(z,{get(U,B,F){return typeof B=="string"&&/^\d+$/.test(B)?U.get(Number(B)):typeof B=="number"?U.get(B):Reflect.get(U,B,F)}})},c=(f,m,_,T)=>{let R=p=>f(p).boundingBox,M=d(f,`${m}_pose`,T),V=(p,C,z)=>l(U=>({sx:C(R(U)),sy:z(R(U))}),`${m}_${p}`),O=V("center",p=>p.originX+p.width/2,p=>p.originY+p.height/2),S=r(p=>f(p.frame).speed,{fps:this._fps,label:`${m}_speed`});return{get trackId(){return T??f(0).trackId},get category(){return _??f(0).category},bounds:{x:r(p=>R(p.frame).normalizedX,{fps:this._fps,label:`${m}_normX`}),y:r(p=>R(p.frame).normalizedY,{fps:this._fps,label:`${m}_normY`}),width:r(p=>R(p.frame).normalizedWidth,{fps:this._fps,label:`${m}_normWidth`}),height:r(p=>R(p.frame).normalizedHeight,{fps:this._fps,label:`${m}_normHeight`}),screenX:r(p=>R(p.frame).originX,{fps:this._fps,label:`${m}_screenX`}),screenY:r(p=>R(p.frame).originY,{fps:this._fps,label:`${m}_screenY`}),screenWidth:r(p=>R(p.frame).width,{fps:this._fps,label:`${m}_screenWidth`}),screenHeight:r(p=>R(p.frame).height,{fps:this._fps,label:`${m}_screenHeight`}),aspectRatio:r(p=>{let C=R(p.frame);return C.height>0?C.width/C.height:1},{fps:this._fps,label:`${m}_aspectRatio`}),area:r(p=>{let C=R(p.frame);return C.width*C.height},{fps:this._fps,label:`${m}_area`})},anchors:{topLeft:V("topLeft",p=>p.originX,p=>p.originY),topCenter:V("topCenter",p=>p.originX+p.width/2,p=>p.originY),topRight:V("topRight",p=>p.originX+p.width,p=>p.originY),centerLeft:V("centerLeft",p=>p.originX,p=>p.originY+p.height/2),center:O,centerRight:V("centerRight",p=>p.originX+p.width,p=>p.originY+p.height/2),bottomLeft:V("bottomLeft",p=>p.originX,p=>p.originY+p.height),bottomCenter:V("bottomCenter",p=>p.originX+p.width/2,p=>p.originY+p.height),bottomRight:V("bottomRight",p=>p.originX+p.width,p=>p.originY+p.height)},kinematics:{vx:r(p=>f(p.frame).velocity.vx,{fps:this._fps,label:`${m}_vx`}),vy:r(p=>f(p.frame).velocity.vy,{fps:this._fps,label:`${m}_vy`}),speed:S,acceleration:S.velocity(1),headingRad:r(p=>{let C=f(p.frame).velocity;return Math.atan2(C.vy,C.vx)},{fps:this._fps,label:`${m}_headingRad`}),headingDeg:r(p=>{let C=f(p.frame).velocity;return Math.atan2(C.vy,C.vx)*180/Math.PI},{fps:this._fps,label:`${m}_headingDeg`})},confidence:r(p=>f(p.frame).score,{fps:this._fps,label:`${m}_score`}),active:r(p=>f(p.frame).active?1:0,{fps:this._fps,label:`${m}_active`}),isCoasting:r(p=>f(p.frame).isCoasting?1:0,{fps:this._fps,label:`${m}_isCoasting`}),age:r(p=>f(p.frame).age,{fps:this._fps,label:`${m}_age`}),pose:M,center:O,topCenter:this.__pending,bottomCenter:O,topLeft:O,bottomLeft:O}},h=(f,m,_,T)=>{let R=c(f,m,_,T),M=R.anchors;return Object.assign(R,{topCenter:M.topCenter,bottomCenter:M.bottomCenter,topLeft:M.topLeft,bottomLeft:M.bottomLeft}),R},b=f=>{let m=this._trackCache.get(f);return m||(m=h(_=>this.getObjectResult(_).objects.find(T=>T.trackId===f)??a(f),`track_${f}`,void 0,f),this._trackCache.set(f,m)),m},y=(f,m=0)=>{let _=`${f.toLowerCase()}_${m}`,T=this._categoryCache.get(_);return T||(T=h(R=>this.getObjectResult(R).objects.filter(O=>O.category.toLowerCase()===f.toLowerCase()&&O.active)[m]??a(0,f),`cat_${f}_${m}`,f),this._categoryCache.set(_,T)),T},I=h(f=>{let m=this.getObjectResult(f);if(m.objects.length===0)return a(0);let _=m.objects[0];for(let T=1;T<m.objects.length;T++)m.objects[T].score>_.score&&(_=m.objects[T]);return _},"primary_object"),E=f=>{let m=new Set;for(let _ of this.getObjectResult(f).objects)_.active&&m.add(_.category);return Array.from(m).sort()},g=f=>{let m=f.toLowerCase(),_=this._classCache.get(m);return _||(_={count:r(T=>this.getObjectResult(T.frame).objects.filter(R=>R.active&&R.category.toLowerCase()===m).length,{fps:this._fps,label:`class_${m}_count`}),maxConfidence:r(T=>{let R=0;for(let M of this.getObjectResult(T.frame).objects)M.active&&M.category.toLowerCase()===m&&M.score>R&&(R=M.score);return R},{fps:this._fps,label:`class_${m}_maxConf`}),present:r(T=>this.getObjectResult(T.frame).objects.some(R=>R.active&&R.category.toLowerCase()===m)?1:0,{fps:this._fps,label:`class_${m}_present`}),primary:y(f)},this._classCache.set(m,_),_)};this.classes={get:g,get names(){return E(ne.value)},histogram:{get:f=>t.getClassHistogramTensor(f?.frame??ne.value),get value(){return t.getClassHistogramTensor(ne.value)}}},this.objects={get:b,byCategory:y,primary:I,count:r(f=>this.getObjectResult(f.frame).objects.filter(m=>m.active).length,{fps:this._fps,label:"tracked_objects_count"}),hasCategory:f=>g(f).present,getActiveTracks:f=>this.getObjectResult(f).objects.filter(m=>m.active),get detectedCategories(){return E(ne.value)}};let w=(f,m)=>this.getMaskResult(f).find(_=>_.trackId===m),k=f=>it(this.getMaskResult(f)),L=(f,m)=>{let _=T=>{let R=f(T);if(!(!R||R.trackId===void 0))return this.getObjectResult(T).objects.find(M=>M.trackId===R.trackId)};return{get trackId(){return f(ne.value)?.trackId??0},get category(){return f(ne.value)?.category??"unknown"},area:r(T=>f(T.frame)?.area??0,{fps:this._fps,label:`${m}_area`}),coverage:r(T=>f(T.frame)?.coverage??0,{fps:this._fps,label:`${m}_coverage`}),solidity:r(T=>{let R=f(T.frame),M=_(T.frame);if(!R||!M)return 0;let V=M.boundingBox.width*M.boundingBox.height;return V>0?R.area/V:0},{fps:this._fps,label:`${m}_solidity`}),bboxFill:r(T=>{let R=f(T.frame);if(!R||R.width*R.height===0)return 0;let M=_(T.frame);return M?M.boundingBox.width*M.boundingBox.height/(R.width*R.height):0},{fps:this._fps,label:`${m}_bboxFill`})}};this.masks={get:f=>{let m=this._maskTrackCache.get(f);return m||(m=L(_=>w(_,f),`mask_${f}`),this._maskTrackCache.set(f,m)),m},subject:L(k,"subject"),count:r(f=>new Set(this.getMaskResult(f.frame).map(m=>m.trackId??-1)).size,{fps:this._fps,label:"mask_count"})},this.segmentation={humanSilhouette:this.masks.subject,subject:this.masks.subject,instanceMasks:this.masks,matte:{coverage:r(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??ne.value),get value(){return t.getPoseLandmarksTensor(ne.value)}},this.objectsTensor={get:f=>t.getObjectsTensor(f?.frame??ne.value),get value(){return t.getObjectsTensor(ne.value)}},this.masksTensor={get:f=>t.getMasksTensor(f?.frame??ne.value),get value(){return t.getMasksTensor(ne.value)}},this.histogramTensor={get:f=>t.getClassHistogramTensor(f?.frame??ne.value),get value(){return t.getClassHistogramTensor(ne.value)}}}setStencilTexture(e){this._stencilTexture=e}get stencilTexture(){return this._stencilTexture}latestAtOrBefore(e,t,r=8){let s=this.clamp(t),o=Math.max(0,s-r);for(let i=s;i>=o;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)??nn()}setObjectResult(e,t){let r="objects"in t?t:{objects:t,rawDetections:[]};this._objectCache.set(this.clamp(e),{objects:r.objects,rawDetections:r.rawDetections??[]}),this.invalidateSignals()}getObjectResult(e){return this.latestAtOrBefore(this._objectCache,e)??tn()}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=ne.value){let t=this.clamp(e),r=this.getObjectResult(t),s=r.objects.map(u=>({trackId:u.trackId,category:u.category,score:u.score,center:[u.centerX,u.centerY],speed:u.speed,active:u.active})),o=new Set;for(let u of r.objects)u.active&&o.add(u.category);let i={};for(let u of this.getMaskResult(t))i[u.category]=(i[u.category]??0)+1;return{frame:t,objects:s,classes:Array.from(o).sort(),masks:i}}getPoseLandmarksTensor(e){let r=this.getPoseResult(e).people[0]?.keypoints??[],s=new Float32Array(51);for(let o=0;o<17;o++)s[o*3]=r[o]?.x??.5,s[o*3+1]=r[o]?.y??.5,s[o*3+2]=r[o]?.visibility??0;return{data:s,shape:[17,3],dtype:"float32"}}getObjectsTensor(e,t=16){let r=this.getObjectResult(e),s=new Float32Array(t*8),o=Math.min(t,r.objects.length);for(let i=0;i<o;i++){let u=r.objects[i],a=i*8,l=0;for(let d=0;d<u.category.length;d++)l=l*31+u.category.charCodeAt(d)&65535;s[a]=u.active?1:0,s[a+1]=l,s[a+2]=u.centerX,s[a+3]=u.centerY,s[a+4]=u.boundingBox.width,s[a+5]=u.boundingBox.height,s[a+6]=u.velocity.vx,s[a+7]=u.velocity.vy}return{data:s,shape:[t,8],dtype:"float32"}}getMasksTensor(e,t=16){let r=this.getMaskResult(e),s=new Float32Array(t*2),o=Math.min(t,r.length);for(let i=0;i<o;i++){let u=r[i];s[i*2]=u.coverage;let a=this.getObjectResult(e).objects.find(d=>d.trackId===u.trackId),l=a?a.boundingBox.width*a.boundingBox.height:0;s[i*2+1]=l>0?u.area/l:0}return{data:s,shape:[t,2],dtype:"float32"}}getClassHistogramTensor(e,t=80){let r=new Float32Array(t);for(let s of this.getObjectResult(e).objects)if(s.active){let o=yr.get(s.category.toLowerCase());o!==void 0&&(r[o]+=1)}return{data:r,shape:[t],dtype:"float32"}}clamp(e){return Math.max(0,Math.min(this._totalFrames-1,Math.round(e)))}};var yr=new Map(Pe.map((n,e)=>[n,e]));x();function Tn(n,e,t={}){let r=t.offsetX??0,s=t.offsetY??0,o=t.offsetZ??0;if(!e||typeof e!="object")return n;if("screenX"in e&&e.screenX&&typeof e.screenX=="object"){let i=e;n.x=r!==0?i.screenX.add(r):i.screenX,n.y=s!==0?i.screenY.add(s):i.screenY,n.z=o!==0?i.z.add(o):i.z}else if("x"in e&&typeof e.x=="object"&&e.x!==null){let i=e;n.x=r!==0?i.x.add(r):i.x,n.y=s!==0?i.y.add(s):i.y,n.z=o!==0?i.z.add(o):i.z}else{let i=e;n.x=(i.screenX??i.x)+r,n.y=(i.screenY??i.y)+s,n.z=(i.z??0)+o}return n}function Di(n,e,t={}){if(!e||typeof e!="object")return n;if("anchors"in e&&e.anchors){let r=e,s=t.anchor??(t.matchWidth||t.matchHeight?"topLeft":"center"),o=r.anchors[s]??r.center,i=o;return t.smoothFrames&&t.smoothFrames>1&&(i={x:o.x.smooth(t.smoothFrames),y:o.y.smooth(t.smoothFrames),z:o.z,screenX:o.screenX.smooth(t.smoothFrames),screenY:o.screenY.smooth(t.smoothFrames)}),t.matchWidth&&(n.width=t.smoothFrames&&t.smoothFrames>1?r.bounds.screenWidth.smooth(t.smoothFrames):r.bounds.screenWidth),t.matchHeight&&(n.height=t.smoothFrames&&t.smoothFrames>1?r.bounds.screenHeight.smooth(t.smoothFrames):r.bounds.screenHeight),t.hideWhenLost&&(n.opacity=r.active),Tn(n,i,t)}return Tn(n,e,t)}x();function xr(n){let e=[];return n.enableDetection===!0&&e.push("detect"),n.enableSegmentation===!0&&e.push("segment"),n.enablePose===!0&&e.push("pose"),n.enableMatte===!0&&e.push("matte"),e.length>0?e:["detect"]}var ct=class n{id;kind="vision";source;config;vision;_runner;_runnerOptions;constructor(e,t={},r={},s={}){this.id=`vision-${Math.random().toString(36).slice(2,9)}`,this.source=e,this.config=t,this._runnerOptions=s,this.vision=new Ve({...r,config:t})}runner(){if(!this._runner){let{variant:e,confidence:t,classes:r,modelsDir:s,baseUrl:o,maskThreshold:i,featherRadius:u}=this.config;this._runner=ke.create({...this._runnerOptions,...e!==void 0?{variant:e}:{},...t!==void 0?{confidence:t}:{},...r!==void 0?{classes:r}:{},...s!==void 0?{modelsDir:s}:{},...o!==void 0?{baseUrl:o}:{},...i!==void 0?{maskThreshold:i}:{},...u!==void 0?{featherRadius:u}:{}})}return this._runner}async ready(){let e=this.runner();return await e.preload(xr(this.config)),e}close(){this._runner?.close(),this._runner=void 0}static attach(e,t={},r={}){let s=new n(e,t,r),o=s.vision;return Object.defineProperties(o,{node:{value:s.toNode(),enumerable:!0},ready:{value:()=>s.ready()},runner:{value:()=>s.runner()},close:{value:()=>s.close()}}),o}toNode(){return{id:this.id,kind:"vision",source:this.source,config:this.config}}};x();var lt=new Uint8Array(0),Sn=new Uint32Array(0);function kr(n,e,t){lt.length<n.length&&(lt=new Uint8Array(n.length),Sn=new Uint32Array(n.length));let r=lt,s=Sn,o=0,i=0;for(let u=1;u<=n.length;u++)(u===n.length||n[u]!==n[i])&&(r[o]=n[i],s[o]=u-i,o++,i=u);return{width:e,height:t,values:r.slice(0,o),lengths:s.slice(0,o)}}function Tr(n){let e=new Uint8Array(n.width*n.height),t=0;for(let r=0;r<n.values.length;r++){let s=t+n.lengths[r];n.values[r]!==0&&e.fill(n.values[r],t,s),t=s}return e}function wn(n){return n.values.byteLength+n.lengths.byteLength}function ut(n){let{mask:e,...t}=n;return{...t,rle:kr(e,n.width,n.height)}}function mt(n){let{rle:e,...t}=n;return{...t,mask:Tr(e)}}function dt(n){let e=512+n.detections.length*128+n.objects.length*256;for(let t of n.masks??[])e+=wn(t.rle);return n.subject&&(e+=wn(n.subject.mask.rle)),e}var Be=class{constructor(e=256*1024*1024){this.maxBytes=e}maxBytes;entries=new Map;bytes=0;get(e,t){let r=`${e}#${t}`,s=this.entries.get(r);return s&&(this.entries.delete(r),this.entries.set(r,s)),s}set(e,t,r){let s=`${e}#${t}`,o=this.entries.get(s);o&&(this.bytes-=dt(o),this.entries.delete(s)),this.entries.set(s,r),this.bytes+=dt(r);for(let[i,u]of this.entries){if(this.bytes<=this.maxBytes)break;this.entries.delete(i),this.bytes-=dt(u)}}clear(){this.entries.clear(),this.bytes=0}get size(){return this.entries.size}};x();var Sr=`
137
- struct Params {
138
- mode: u32, // 0 matte, 1 mask, 2 crop
139
- _pad: u32,
140
- cropMin: vec2<f32>, // uv of the subject bounds (crop)
141
- cropMax: vec2<f32>,
142
- _pad2: vec2<f32>,
143
- };
144
-
145
- @group(0) @binding(0) var<uniform> params: Params;
146
- @group(0) @binding(1) var picture: texture_2d<f32>;
147
- @group(0) @binding(2) var mask: texture_2d<f32>;
148
- @group(0) @binding(3) var samp: sampler;
149
-
150
- struct VSOut {
151
- @builtin(position) pos: vec4<f32>,
152
- @location(0) uv: vec2<f32>,
153
- };
154
-
155
- @vertex fn vs(@builtin(vertex_index) i: u32) -> VSOut {
156
- var p = array<vec2<f32>, 3>(vec2(-1.0, -1.0), vec2(3.0, -1.0), vec2(-1.0, 3.0));
157
- var out: VSOut;
158
- out.pos = vec4(p[i], 0.0, 1.0);
159
- out.uv = vec2(p[i].x * 0.5 + 0.5, 0.5 - p[i].y * 0.5);
160
- return out;
161
- }
162
-
163
- @fragment fn fs(in: VSOut) -> @location(0) vec4<f32> {
164
- var uv = in.uv;
165
- if (params.mode == 2u) {
166
- uv = mix(params.cropMin, params.cropMax, uv);
167
- }
168
- let m = textureSampleLevel(mask, samp, uv, 0.0).r;
169
- if (params.mode == 1u) {
170
- return vec4(m, m, m, 1.0);
171
- }
172
- return textureSampleLevel(picture, samp, uv, 0.0) * m;
173
- }
174
- `,Ue=class{constructor(e,t){this.device=e;let r=e.createShaderModule({label:"vision_matte_composite",code:Sr});this.pipeline=e.createRenderPipeline({label:"vision_matte_composite",layout:"auto",vertex:{module:r,entryPoint:"vs"},fragment:{module:r,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,r,s){let o=this.masks.get(e);(!o||o.width!==r||o.height!==s)&&(o?.destroy(),o=this.device.createTexture({label:`vision_mask_${e}`,size:[r,s],format:"r8unorm",usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST}),this.masks.set(e,o));let i=Math.ceil(r/256)*256,u=t;if(i!==r){u=new Uint8Array(i*s);for(let a=0;a<s;a++)u.set(t.subarray(a*r,(a+1)*r),a*i)}return this.device.queue.writeTexture({texture:o},u.buffer,{offset:u.byteOffset,bytesPerRow:i,rowsPerImage:s},{width:r,height:s}),o}draw(e,t,r,s,o,i){let u=s.width,a=s.height,l=new Float32Array(8),d=new Uint32Array(l.buffer);d[0]=o==="matte"?0:o==="mask"?1:2,o==="crop"&&i?(l[2]=i.x0/u,l[3]=i.y0/a,l[4]=(i.x1+1)/u,l[5]=(i.y1+1)/a):(l[2]=0,l[3]=0,l[4]=1,l[5]=1,o==="crop"&&(d[0]=0)),this.uniformIndex>=this.uniforms.length&&this.uniforms.push(this.device.createBuffer({size:l.byteLength,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}));let c=this.uniforms[this.uniformIndex];this.uniformIndex=(this.uniformIndex+1)%16,this.device.queue.writeBuffer(c,0,l);let h=this.device.createBindGroup({layout:this.pipeline.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:c}},{binding:1,resource:r.createView()},{binding:2,resource:s.createView()},{binding:3,resource:this.sampler}]}),b=e.beginRenderPass({label:"vision_matte_composite",colorAttachments:[{view:t,loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});b.setPipeline(this.pipeline),b.setBindGroup(0,h),b.draw(3),b.end()}};var Te=new Map,wr=4,ft=null,De=null,_n=null,vn=new Be,Mn=new Map,_r=new Map,vr=new Map,Mr=new Map,Pn=new Map,pt=new WeakMap,pe=new Map,ht=new Map,Pr=3;function gt(n,e,t,r,s,o){let i=n.get(t);return(!i||i.width!==r.width||i.height!==r.height||i.format!==r.format)&&(i?.destroy(),i=e.createTexture({size:[r.width,r.height],format:r.format,usage:s,label:o}),n.set(t,i)),i}var Rr=(n,e,t)=>gt(_r,n,e,t,GPUTextureUsage.COPY_DST|GPUTextureUsage.TEXTURE_BINDING,"vision_held_frame"),Ir=(n,e,t)=>gt(vr,n,e,t,GPUTextureUsage.COPY_DST|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC,"vision_analysis_frame"),Or=(n,e,t)=>gt(Mr,n,e,t,GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC,"vision_matte");function Cr(n,e,t,r,s){let o=e;return JSON.stringify([n,o?.operation?.id??o?.id??null,r,s,t.mode??"passthrough",t.variant,t.confidence,t.classes,t.maskThreshold,t.featherRadius,t.matteSource,t.keyBackground===!0,t.maxMissedFrames])}function Er(n,e,t){let r=n.backgroundKeyThreshold;return typeof r=="number"?r:typeof r?.get=="function"?Number(r.get({frame:e,fps:t})):typeof r?._value=="number"?Number(r._value):70}function Rn(n,e,t){if(n)return ht.set(e,{mask:n,frame:t}),n;let r=ht.get(e);if(r&&t-r.frame<=Pr)return r.mask}function In(n){let e={variant:n.variant,modelsDir:n.modelsDir,baseUrl:n.baseUrl},t=JSON.stringify(e),r=Te.get(t);if(!r){if(Te.size>=wr){let[u,a]=Te.entries().next().value;a.runner.close(),Te.delete(u)}r={runner:ke.create(e),derived:new Map},Te.set(t,r)}let s={confidence:n.confidence,classes:n.classes,maskThreshold:n.maskThreshold,featherRadius:n.featherRadius},o=JSON.stringify(s),i=r.derived.get(o);return i||(i=r.runner.derive(s),r.derived.set(o,i)),i}function Lr(n,e){let t=Pn.get(n);return t||(t=new ye({maxMissedFrames:e.maxMissedFrames??15}),Pn.set(n,t)),t}function Ar(n,e,t){return e<=0||t<=0?n:{people:n.people.map(r=>({...r,keypoints:r.keypoints.map(s=>({x:s.x/e,y:s.y/t,visibility:s.visibility}))}))}}function jr(n,e){if(!e)return!0;let t=n.toLowerCase();return e.some(r=>r.toLowerCase()===t)}function Fr(n,e){return n.map(t=>{let{cx:r,cy:s}=Dr(t),o=null;for(let i of e){let u=i.centerX-r,a=i.centerY-s,l=u*u+a*a;(!o||l<o.distance)&&(o={trackId:i.trackId,distance:l})}return o?{...t,trackId:o.trackId}:t})}function Vr(n,e,t){let r=e*t,s=new Uint8Array(r),o=new Int32Array(r),i=0,u=l=>{s[l]||n[l]>0||(s[l]=1,o[i++]=l)};for(let l=0;l<e;l++)u(l),u((t-1)*e+l);for(let l=0;l<t;l++)u(l*e),u(l*e+e-1);let a=0;for(;a<i;){let l=o[a++],d=l%e,c=l+1;d+1<e&&!s[c]&&n[c]===0&&(s[c]=1,o[i++]=c),c=l-1,d>0&&!s[c]&&n[c]===0&&(s[c]=1,o[i++]=c),c=l+e,c<r&&!s[c]&&n[c]===0&&(s[c]=1,o[i++]=c),c=l-e,c>=0&&!s[c]&&n[c]===0&&(s[c]=1,o[i++]=c)}for(let l=0;l<r;l++)n[l]===0&&s[l]===0&&(n[l]=255)}function Br(n,e,t,r=2){if(r<=0)return n;let s=new Uint8Array(e*t),o=new Uint8Array(e*t),i=2*r+1;for(let a=0;a<t;a++){let l=a*e,d=0;for(let c=-r;c<=r;c++){let h=Math.max(0,Math.min(e-1,c));d+=n[l+h]}for(let c=0;c<e;c++){s[l+c]=Math.round(d/i);let h=Math.max(0,c-r),b=Math.min(e-1,c+r+1);d+=n[l+b]-n[l+h]}}let u=new Float64Array(e);for(let a=-r;a<=r;a++){let l=Math.max(0,Math.min(t-1,a))*e;for(let d=0;d<e;d++)u[d]+=s[l+d]}for(let a=0;a<t;a++){let l=a*e,d=Math.max(0,a-r)*e,c=Math.min(t-1,a+r+1)*e;for(let h=0;h<e;h++)o[l+h]=Math.round(u[h]/i),u[h]+=s[c+h]-s[d+h]}return o}function Ur(n,e,t,r,s,o){let i=0,u=0,a=0,l=0,d=(g,w)=>{let k=w*e+g;if(n[k])return;let L=k*4;i+=r[L],u+=r[L+1],a+=r[L+2],l++};for(let g=0;g<e;g+=4)d(g,0),d(g,t-1);for(let g=0;g<t;g+=4)d(0,g),d(e-1,g);if(l===0)return n;i/=l,u/=l,a/=l;let c=e*t,h=new Uint8Array(c);for(let g=0,w=0;g<c;g++,w+=4)h[g]=Math.max(Math.abs(r[w]-i),Math.abs(r[w+1]-u),Math.abs(r[w+2]-a))>s?1:0;let b=new Int32Array(c),y=0;for(let g=0;g<c;g++)n[g]>0&&(h[g]&&(n[g]=255),b[y++]=g);let I=0;for(;I<y;){let g=b[I++],w=g%e,k=g+1;w+1<e&&n[k]!==255&&h[k]&&(n[k]=255,b[y++]=k),k=g-1,w>0&&n[k]!==255&&h[k]&&(n[k]=255,b[y++]=k),k=g+e,k<c&&n[k]!==255&&h[k]&&(n[k]=255,b[y++]=k),k=g-e,k>=0&&n[k]!==255&&h[k]&&(n[k]=255,b[y++]=k)}Vr(n,e,t);let E=o!==void 0&&o>0?Math.max(1,Math.min(8,Math.round(o*50))):2;return Br(n,e,t,E)}function Dr(n){let{mask:e,width:t,height:r}=n,s=0,o=0,i=0;for(let u=0;u<r;u++){let a=u*t;for(let l=0;l<t;l++)e[a+l]>0&&(s+=l,o+=u,i++)}return i===0?{cx:0,cy:0}:{cx:s/i,cy:o/i}}var On=async n=>{let{ctx:e,encoder:t,pass:r,targetView:s,targetWidth:o,targetHeight:i,props:u,drawChild:a}=n,{virtualMedia:l}=u;Rt(e.device);let d=l?.operation;if(d?.op!=="Vision")return;let c=d;r.end();let h=l?.children?.[0];if(!h)return;let b=c.effect,y=b!=null,I=l?.id??d?.id??`${o}x${i}_${c.mode}_${c.variant}_${c.keyBackground}_${c.backgroundKeyThreshold}`,E=`vision-${I}`,g=y?pt.get(b):pe.get(E);g&&(g.width!==o||g.height!==i)&&(g.destroy(),g=void 0,y?pt.delete(b):pe.delete(E));let w=g!==void 0;if(!g&&(g=e.device.createTexture({size:[o,i],format:e.renderer.format,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC,label:"vision_child_persistent"}),y?pt.set(b,g):pe.set(E,g),pe.size>4)){let D=pe.keys().next().value;D&&D!==E&&(pe.get(D)?.destroy(),pe.delete(D))}let k=u.frame??0,L=u.compositionFrame??k,f=u.fps??24,m=c.mode??"passthrough",_=m==="mask"||m==="matte"||m==="crop",T=c.visionBundle??l.visionBundle,R=c.enableDetection!==!1||m==="boxes"||m==="tracking",M=c.enableSegmentation===!0||_&&c.matteSource!=="selfie",V=c.enableMatte===!0||_&&c.matteSource==="selfie",O=c.enablePose===!0||m==="skeleton",S=_&&!T&&!O&&!V&&c.keyBackground!==!0?Nr(b,u.sourceTimeSec===void 0?k:u.sourceTimeSec*f,f,o,i):void 0,p=S!==void 0,C=!p&&!V&&!O&&(R||M),z=C?Cr(I,h,c,o,i):"",U=D=>c.keyBackground===!0?Er(c,L-(k-D),f):void 0,B=D=>{if(!C||D===void 0)return;let W=vn.get(z,D);if(!(!W||W.keyThreshold!==U(D))&&!(M&&T&&!W.masks))return W},F=w?Mn.get(I):void 0,N=B(k),X=p||N!==void 0;N||(N=B(F));let Y;_&&w&&!X&&(Y=Rr(e.device,I,g),t.copyTextureToTexture({texture:g},{texture:Y},[o,i,1]));let G,K=null;if(w&&!N&&!p){let D=Ir(e.device,I,g),W=e.device.createCommandEncoder({label:"vision_analysis_copy"});W.copyTextureToTexture({texture:g},{texture:D},[o,i,1]),e.device.queue.submit([W.finish()]),G={texture:D,device:e.device,width:o,height:i},_&&c.keyBackground===!0&&(K=(await Oe(G)).data)}let H=g.createView();e.renderer.beginFrame(t,H,{r:0,g:0,b:0,a:0},o,i,"clear").end(),await a(h,{...u},H,g,o,i),Mn.set(I,k);let $=[],Z=[],te,oe,J;if(p)J=Rn(S??void 0,I,k);else if(N)$=N.objects,R&&T?.setObjectResult(k,{objects:N.objects,rawDetections:N.detections}),M&&T&&N.masks&&(Z=N.masks.map(mt),T.setMaskResult(k,Z)),N.subject&&(J=mt(N.subject.mask),ht.set(I,{mask:J,frame:k}));else if(G){let D=In(c),W=G,Q=[];if(R){Q=await D.detect(W);let ee=Lr(I,c);k===0&&ee.reset(),$=ee.update(Q,k,f),T?.setObjectResult(k,{objects:$,rawDetections:Q})}let ie=[];if(M){let ee=_&&c.matteSource!=="selfie"&&c.classes!==void 0,ge=await(ee?In({...c,classes:void 0}):D).segment(W);Z=Fr(ee?ge.masks.filter(Cn=>jr(Cn.category,c.classes)):ge.masks,$),ie=ee?ge.masks:Z,T?.setMaskResult(k,Z)}if(V&&(te=await D.matte(W),T?.setMatteResult(k,te)),O){let ee=await D.pose(W),q=Ar(ee,W.width,W.height);oe={people:kn(q.people,$)},T?.setPoseResult(k,oe)}if(_){J=Rn(c.matteSource==="selfie"?Hr(te):xn(ie.length>0?ie:T?.getMaskResult(k)??[],{classes:c.classes}),I,k);let ee=U(F??k);J&&ee!==void 0&&K&&(J={...J,mask:Ur(J.mask,J.width,J.height,K,ee,c.featherRadius)})}C&&F!==void 0&&vn.set(z,F,{detections:Q,objects:$,masks:T?Z.map(ut):null,subject:J?{mask:ut(J)}:null,keyThreshold:U(F)})}if(_){let D=X?g:Y;if(!J||!D){e.renderer.beginFrame(t,s,{r:0,g:0,b:0,a:0},o,i,"clear").end();return}(!De||_n!==e.renderer.format)&&(De=new Ue(e.device,e.renderer.format),_n=e.renderer.format);let W=De.uploadMask(I,J.mask,J.width,J.height),Q=Or(e.device,I,g);De.draw(t,Q.createView(),D,W,m,m==="crop"?Ae(J)??void 0:void 0),T?.setStencilTexture(Q);let ie=e.renderer.beginFrame(t,s,{r:0,g:0,b:0,a:0},o,i,"clear");e.renderer.drawTexture(ie,Q,{x:0,y:0,width:o,height:i}),ie.end();return}if(m==="skeleton"){ft||(ft=new Ee(e.device));let W=(T?.getPoseResult(k)??oe)?.people[0];if(W&&W.keypoints.length>0){let Q=ft.renderToTexture(W.keypoints,{width:o,height:i}),ie=e.renderer.beginFrame(t,s,{r:0,g:0,b:0,a:0},o,i,"clear");e.renderer.drawTexture(ie,Q,{x:0,y:0,width:o,height:i}),ie.end();return}}if(m==="boxes"||m==="tracking"){let D=e.renderer.beginFrame(t,s,{r:0,g:0,b:0,a:0},o,i,"clear");e.renderer.drawTexture(D,g,{x:0,y:0,width:o,height:i});let W=$.length>0?$:T?.getObjectResult(k).objects??[];if(W.length>0){let Q="#38bdf8";for(let ee of W){if(!ee.active)continue;let q=ee.boundingBox;e.renderer.drawRect(D,{x:q.originX,y:q.originY,width:q.width,height:2},Q),e.renderer.drawRect(D,{x:q.originX,y:q.originY+q.height-2,width:q.width,height:2},Q),e.renderer.drawRect(D,{x:q.originX,y:q.originY,width:2,height:q.height},Q),e.renderer.drawRect(D,{x:q.originX+q.width-2,y:q.originY,width:2,height:q.height},Q);let ge=Math.min(16,q.width/4,q.height/4);e.renderer.drawRect(D,{x:q.originX,y:q.originY,width:ge,height:4},"#ffffff"),e.renderer.drawRect(D,{x:q.originX,y:q.originY,width:4,height:ge},"#ffffff"),m==="tracking"&&e.renderer.drawRect(D,{x:ee.centerX-3,y:ee.centerY-3,width:6,height:6},"#ef4444",3)}}D.end();return}let he=e.renderer.beginFrame(t,s,{r:0,g:0,b:0,a:0},o,i,"clear");e.renderer.drawTexture(he,g,{x:0,y:0,width:o,height:i}),he.end()};function Nr(n,e,t,r,s){let i=n?.[bn]?.subject(e,t);if(!i)return i;let u=i.width/i.height/(r/s);return Math.abs(u-1)<.01?i:void 0}function Hr(n){if(!n||n.coverage<=0)return;let e=Math.round(n.coverage*n.width*n.height);return{category:"person",mask:n.mask,width:n.width,height:n.height,area:e,coverage:n.coverage,detectionIndex:-1}}var Oa=xt({WebGPURenderer:On});export{Ot as a,Ct as b,Et as c,Wr as d,Lt as e,Kr as f,oo as g,jn as h,co as i,mo as j,fo as k,po as l,ho as m,go as n,bo as o,yo as p,xo as q,ko as r,To as s,So as t,wo as u,_o as v,Po as w,Co as x,Eo as y,Fn as z,Bt as A,Vt as B,jo as C,Vn as D,Bn as E,Un as F,Dn as G,Nn as H,Hn as I,$e as J,Ut as K,Gn as L,We as M,Ko as N,Dt as O,ts as P,ns as Q,ss as R,Ce as S,Pe as T,ye as U,ps as V,v as W,nt as X,Jt as Y,Ee as Z,Qt as _,ke as $,bn as aa,xn as ba,Fe as ca,Ve as da,Tn as ea,Di as fa,ct as ga,Oa as ha};
@@ -1 +0,0 @@
1
- import{a}from"./chunk-OKLYIQ5F.mjs";import"./chunk-IB6GZJOL.mjs";import"./chunk-VVY4PG5E.mjs";import"./chunk-F4F2UDRX.mjs";import"./chunk-Y4NIR77Z.mjs";export{a as default};
@@ -1 +0,0 @@
1
- import{a}from"./chunk-COZG35ZR.mjs";import"./chunk-IB6GZJOL.mjs";import"./chunk-VVY4PG5E.mjs";import"./chunk-F4F2UDRX.mjs";import"./chunk-354GX6IB.mjs";import"./chunk-5RRKGN2U.mjs";import"./chunk-Y4NIR77Z.mjs";export{a as default};
@@ -1 +0,0 @@
1
- import{a}from"./chunk-JGDZQCNU.mjs";import"./chunk-2GA735OZ.mjs";import"./chunk-3DXMWDQ3.mjs";import"./chunk-GH77FX2Y.mjs";import"./chunk-IB6GZJOL.mjs";import"./chunk-6FULVULN.mjs";import"./chunk-VVY4PG5E.mjs";import"./chunk-F4F2UDRX.mjs";import"./chunk-Y4NIR77Z.mjs";export{a as default};
@@ -1 +0,0 @@
1
- import{a}from"./chunk-EQ4VBUWM.mjs";import"./chunk-IB6GZJOL.mjs";import"./chunk-VVY4PG5E.mjs";import"./chunk-F4F2UDRX.mjs";import"./chunk-Y4NIR77Z.mjs";export{a as default};
@@ -1 +0,0 @@
1
- import{a}from"./chunk-S4WNCEMO.mjs";import"./chunk-IB6GZJOL.mjs";import"./chunk-VVY4PG5E.mjs";import"./chunk-F4F2UDRX.mjs";import"./chunk-Y4NIR77Z.mjs";export{a as default};
@@ -1 +0,0 @@
1
- import{a}from"./chunk-RGDM6PQ5.mjs";import"./chunk-IB6GZJOL.mjs";import"./chunk-VVY4PG5E.mjs";import"./chunk-F4F2UDRX.mjs";import"./chunk-Y4NIR77Z.mjs";export{a as default};
@@ -1 +0,0 @@
1
- import{a,b}from"./chunk-LBJBBEKP.mjs";import"./chunk-2GA735OZ.mjs";import"./chunk-3DXMWDQ3.mjs";import"./chunk-GH77FX2Y.mjs";import"./chunk-IB6GZJOL.mjs";import"./chunk-6FULVULN.mjs";import"./chunk-VVY4PG5E.mjs";import"./chunk-F4F2UDRX.mjs";import"./chunk-Y4NIR77Z.mjs";export{a as WebGPURenderer,b as default};
@@ -1 +0,0 @@
1
- import{a,b}from"./chunk-72DYOIMP.mjs";import"./chunk-IB6GZJOL.mjs";import"./chunk-VVY4PG5E.mjs";import"./chunk-F4F2UDRX.mjs";import"./chunk-Y4NIR77Z.mjs";export{b as default,a as rendererNode};
@@ -1 +0,0 @@
1
- import{a}from"./chunk-RTHU7REC.mjs";import"./chunk-GZVPVOHB.mjs";import"./chunk-UZTA2EUU.mjs";import"./chunk-VVY4PG5E.mjs";import"./chunk-F4F2UDRX.mjs";import"./chunk-Y4NIR77Z.mjs";export{a as default};
@@ -1 +0,0 @@
1
- import{a,b}from"./chunk-LZNNM5OB.mjs";import"./chunk-IB6GZJOL.mjs";import"./chunk-VVY4PG5E.mjs";import"./chunk-F4F2UDRX.mjs";import"./chunk-354GX6IB.mjs";import"./chunk-5RRKGN2U.mjs";import"./chunk-Y4NIR77Z.mjs";export{a as RefractionCaustics3DWebGPURenderer,b as default};
@@ -1 +0,0 @@
1
- import{a,b}from"./chunk-DISKQ5MH.mjs";import"./chunk-IB6GZJOL.mjs";import"./chunk-VVY4PG5E.mjs";import"./chunk-F4F2UDRX.mjs";import"./chunk-Y4NIR77Z.mjs";export{a as LiquifyWebGPURenderer,b as default};
@@ -1 +0,0 @@
1
- import{a}from"./chunk-6OY4YLTC.mjs";import"./chunk-IB6GZJOL.mjs";import"./chunk-VVY4PG5E.mjs";import"./chunk-F4F2UDRX.mjs";import"./chunk-Y4NIR77Z.mjs";export{a as default};
@@ -1 +0,0 @@
1
- import{a}from"./chunk-KYOPOCO5.mjs";import"./chunk-IB6GZJOL.mjs";import"./chunk-VVY4PG5E.mjs";import"./chunk-F4F2UDRX.mjs";import"./chunk-Y4NIR77Z.mjs";export{a as default};
@@ -1 +0,0 @@
1
- import{a,b}from"./chunk-PMOKPVSD.mjs";import"./chunk-IB6GZJOL.mjs";import"./chunk-VVY4PG5E.mjs";import"./chunk-F4F2UDRX.mjs";import"./chunk-Y4NIR77Z.mjs";export{a as ColorBalanceWebGPURenderer,b as default};
@@ -1 +0,0 @@
1
- import{a}from"./chunk-C6XLAJLL.mjs";import"./chunk-F4F2UDRX.mjs";import"./chunk-354GX6IB.mjs";import"./chunk-5RRKGN2U.mjs";import"./chunk-Y4NIR77Z.mjs";export{a as default};
@@ -1 +0,0 @@
1
- import{ha as a}from"./chunk-U2IFQMS3.mjs";import"./chunk-BREZX5L5.mjs";import"./chunk-EAHJZDOJ.mjs";import"./chunk-CJ4CSVU3.mjs";import"./chunk-6ISHV73H.mjs";import"./chunk-6E3JSPJN.mjs";import"./chunk-GH77FX2Y.mjs";import"./chunk-JXUENEQO.mjs";import"./chunk-6FULVULN.mjs";import"./chunk-RECQ74RP.mjs";import"./chunk-F4F2UDRX.mjs";import"./chunk-VEDMJBJV.mjs";import"./chunk-QEWDIPJ7.mjs";import"./chunk-OGPJTUAL.mjs";import"./chunk-5RRKGN2U.mjs";import"./chunk-BDZ3TSOT.mjs";import"./chunk-Y4NIR77Z.mjs";export{a as default};
@@ -1 +0,0 @@
1
- import{a}from"./chunk-GLXJOXBE.mjs";import"./chunk-GZVPVOHB.mjs";import"./chunk-UZTA2EUU.mjs";import"./chunk-VVY4PG5E.mjs";import"./chunk-F4F2UDRX.mjs";import"./chunk-Y4NIR77Z.mjs";export{a as default};
@@ -1 +0,0 @@
1
- import{a,b}from"./chunk-523CTDOC.mjs";import"./chunk-2GA735OZ.mjs";import"./chunk-3DXMWDQ3.mjs";import"./chunk-GH77FX2Y.mjs";import"./chunk-IB6GZJOL.mjs";import"./chunk-6FULVULN.mjs";import"./chunk-VVY4PG5E.mjs";import"./chunk-F4F2UDRX.mjs";import"./chunk-Y4NIR77Z.mjs";export{a as WebGPURenderer,b as default};
@@ -1 +0,0 @@
1
- import{a}from"./chunk-PSEMCJBH.mjs";import"./chunk-GZVPVOHB.mjs";import"./chunk-UZTA2EUU.mjs";import"./chunk-VVY4PG5E.mjs";import"./chunk-F4F2UDRX.mjs";import"./chunk-Y4NIR77Z.mjs";export{a as default};
@@ -1 +0,0 @@
1
- import{a}from"./chunk-3U2A3RW4.mjs";import"./chunk-UZTA2EUU.mjs";import"./chunk-VVY4PG5E.mjs";import"./chunk-F4F2UDRX.mjs";import"./chunk-Y4NIR77Z.mjs";export{a as default};
@@ -1 +0,0 @@
1
- import{a}from"./chunk-22F33PPP.mjs";import"./chunk-GZVPVOHB.mjs";import"./chunk-UZTA2EUU.mjs";import"./chunk-VVY4PG5E.mjs";import"./chunk-F4F2UDRX.mjs";import"./chunk-Y4NIR77Z.mjs";export{a as default};
@@ -1 +0,0 @@
1
- import{a}from"./chunk-ADV2TIKA.mjs";import"./chunk-GZVPVOHB.mjs";import"./chunk-UZTA2EUU.mjs";import"./chunk-VVY4PG5E.mjs";import"./chunk-F4F2UDRX.mjs";import"./chunk-Y4NIR77Z.mjs";export{a as default};
@@ -1 +0,0 @@
1
- import{a}from"./chunk-PYSBWKIJ.mjs";import"./chunk-F4F2UDRX.mjs";import"./chunk-Y4NIR77Z.mjs";export{a as default};
@@ -1 +0,0 @@
1
- import{a}from"./chunk-AVDHZNIZ.mjs";import"./chunk-2GA735OZ.mjs";import"./chunk-3DXMWDQ3.mjs";import"./chunk-GH77FX2Y.mjs";import"./chunk-IB6GZJOL.mjs";import"./chunk-6FULVULN.mjs";import"./chunk-VVY4PG5E.mjs";import"./chunk-F4F2UDRX.mjs";import"./chunk-Y4NIR77Z.mjs";export{a as default};
@@ -1 +0,0 @@
1
- import{a}from"./chunk-VHGC72XP.mjs";import"./chunk-GZVPVOHB.mjs";import"./chunk-UZTA2EUU.mjs";import"./chunk-VVY4PG5E.mjs";import"./chunk-F4F2UDRX.mjs";import"./chunk-Y4NIR77Z.mjs";export{a as default};
@@ -1 +0,0 @@
1
- import{a}from"./chunk-57LES7TL.mjs";import"./chunk-OGSZZ4JO.mjs";import"./chunk-LGQSJCKE.mjs";import"./chunk-IB6GZJOL.mjs";import"./chunk-VVY4PG5E.mjs";import"./chunk-F4F2UDRX.mjs";import"./chunk-Y4NIR77Z.mjs";export{a as default};
@@ -1 +0,0 @@
1
- import{a,b}from"./chunk-G7JJ6HVL.mjs";import"./chunk-2GA735OZ.mjs";import"./chunk-3DXMWDQ3.mjs";import"./chunk-GH77FX2Y.mjs";import"./chunk-IB6GZJOL.mjs";import"./chunk-6FULVULN.mjs";import"./chunk-VVY4PG5E.mjs";import"./chunk-F4F2UDRX.mjs";import"./chunk-Y4NIR77Z.mjs";export{a as PatchHealWebGPURenderer,b as default};
@@ -1 +0,0 @@
1
- import{a,b}from"./chunk-7X2AUKTU.mjs";import"./chunk-2GA735OZ.mjs";import"./chunk-3DXMWDQ3.mjs";import"./chunk-GH77FX2Y.mjs";import"./chunk-IB6GZJOL.mjs";import"./chunk-6FULVULN.mjs";import"./chunk-VVY4PG5E.mjs";import"./chunk-F4F2UDRX.mjs";import"./chunk-Y4NIR77Z.mjs";export{a as WebGPURenderer,b as default};
@@ -1 +0,0 @@
1
- import{a}from"./chunk-SK7PUBTC.mjs";import"./chunk-IB56SYTG.mjs";import"./chunk-IB6GZJOL.mjs";import"./chunk-XOF6UTZX.mjs";import"./chunk-VVY4PG5E.mjs";import"./chunk-F4F2UDRX.mjs";import"./chunk-Y4NIR77Z.mjs";export{a as default};
@@ -1 +0,0 @@
1
- import{a}from"./chunk-U5YNECNG.mjs";import"./chunk-2GA735OZ.mjs";import"./chunk-3DXMWDQ3.mjs";import"./chunk-GH77FX2Y.mjs";import"./chunk-IB6GZJOL.mjs";import"./chunk-6FULVULN.mjs";import"./chunk-VVY4PG5E.mjs";import"./chunk-F4F2UDRX.mjs";import"./chunk-Y4NIR77Z.mjs";export{a as default};
@@ -1 +0,0 @@
1
- import{a}from"./chunk-LLUFOFF4.mjs";import"./chunk-3DXMWDQ3.mjs";import"./chunk-GH77FX2Y.mjs";import"./chunk-IB6GZJOL.mjs";import"./chunk-6FULVULN.mjs";import"./chunk-VVY4PG5E.mjs";import"./chunk-F4F2UDRX.mjs";import"./chunk-Y4NIR77Z.mjs";export{a as default};
@@ -1 +0,0 @@
1
- import{a}from"./chunk-RBDIRBEI.mjs";import"./chunk-IB6GZJOL.mjs";import"./chunk-VVY4PG5E.mjs";import"./chunk-F4F2UDRX.mjs";import"./chunk-Y4NIR77Z.mjs";export{a as default};
@@ -1 +0,0 @@
1
- import{h as W}from"./chunk-IB6GZJOL.mjs";import"./chunk-VVY4PG5E.mjs";import{A as g}from"./chunk-F4F2UDRX.mjs";import{g as n}from"./chunk-Y4NIR77Z.mjs";n();n();var x=async t=>{let{ctx:r,props:e,targetView:l,targetWidth:c,targetHeight:d,encoder:w}=t,{virtualMedia:s,opacity:b=1}=e,i=s?.operation;if(!i||i.op!=="ExtractFrame")return;let o=s.children?.[0];if(!o)return;let h=i.frame??0,a=o.metadata,p=a?.fps??24,R=h/p;t.pass.end();let m=a?.width??e.containerWidth??c,f=a?.height??e.containerHeight??d,H=e.containerWidth??r.surface.width,P=e.containerHeight??r.surface.height,{texture:F}=await W(t,o,{width:m,height:f,props:{...e,containerWidth:m,containerHeight:f,frame:h,fps:p,timestampSec:R,forceWait:!0}}),u=r.renderer.beginFrame(w,l,{r:0,g:0,b:0,a:0},c,d,"load");r.renderer.drawTexture(u,F,{x:0,y:0,width:H,height:P},{opacity:b}),t.pass=u};var k=g({WebGPURenderer:x});export{k as default};
@@ -1 +0,0 @@
1
- import{a}from"./chunk-W26U6BP2.mjs";import"./chunk-IB6GZJOL.mjs";import"./chunk-VVY4PG5E.mjs";import"./chunk-F4F2UDRX.mjs";import"./chunk-Y4NIR77Z.mjs";export{a as default};
@@ -1 +0,0 @@
1
- import{a}from"./chunk-Y6TWMUJC.mjs";import"./chunk-IB6GZJOL.mjs";import"./chunk-VVY4PG5E.mjs";import"./chunk-F4F2UDRX.mjs";import"./chunk-Y4NIR77Z.mjs";export{a as default};
@@ -1 +0,0 @@
1
- import{a}from"./chunk-GFW3D464.mjs";import"./chunk-IB6GZJOL.mjs";import"./chunk-VVY4PG5E.mjs";import"./chunk-F4F2UDRX.mjs";import"./chunk-Y4NIR77Z.mjs";export{a as default};
@@ -1 +0,0 @@
1
- import{a}from"./chunk-UOTMBWBJ.mjs";import"./chunk-GZVPVOHB.mjs";import"./chunk-UZTA2EUU.mjs";import"./chunk-VVY4PG5E.mjs";import"./chunk-F4F2UDRX.mjs";import"./chunk-Y4NIR77Z.mjs";export{a as default};
@@ -1 +0,0 @@
1
- import{b as C}from"./chunk-4FY4TNST.mjs";import"./chunk-AGAZJZWI.mjs";import{A as w}from"./chunk-F4F2UDRX.mjs";import{g as b}from"./chunk-Y4NIR77Z.mjs";b();b();b();b();function U(t,e,o,n,c,s){let r=o+n,h=s+c,d=o+s,i=n+c,a=1;return r>t&&r>0&&(a=Math.min(a,t/r)),h>t&&h>0&&(a=Math.min(a,t/h)),d>e&&d>0&&(a=Math.min(a,e/d)),i>e&&i>0&&(a=Math.min(a,e/i)),[Math.max(0,o*a),Math.max(0,n*a),Math.max(0,c*a),Math.max(0,s*a)]}function P(t,e,o,n,c,s,r=0){let h=r>0?r/2:0,d=h,i=h,a=Math.max(.1,t-r),u=Math.max(.1,e-r),[l,$,p,m]=U(a,u,o,n,c,s);return[`M ${d+l} ${i}`,`L ${d+a-$} ${i}`,$>0?`A ${$} ${$} 0 0 1 ${d+a} ${i+$}`:"",`L ${d+a} ${i+u-p}`,p>0?`A ${p} ${p} 0 0 1 ${d+a-p} ${i+u}`:"",`L ${d+m} ${i+u}`,m>0?`A ${m} ${m} 0 0 1 ${d} ${i+u-m}`:"",`L ${d} ${i+l}`,l>0?`A ${l} ${l} 0 0 1 ${d+l} ${i}`:"","Z"].filter(Boolean).join(" ")}function D(t,e,o=0){let n=t/2,c=e/2,s=Math.max(.1,(t-o)/2),r=Math.max(.1,(e-o)/2);return`M ${n-s} ${c} A ${s} ${r} 0 1 0 ${n+s} ${c} A ${s} ${r} 0 1 0 ${n-s} ${c} Z`}function I(t,e,o,n=0){let c=Math.max(3,Math.min(64,Math.floor(o))),s=t/2,r=e/2,h=Math.max(.1,Math.min(t-n,e-n)/2),d=[],i=2*Math.PI/c,a=-Math.PI/2;for(let u=0;u<c;u++){let l=a+u*i;d.push({x:s+h*Math.cos(l),y:r+h*Math.sin(l)})}return d.map((u,l)=>`${l===0?"M":"L"} ${u.x.toFixed(3)} ${u.y.toFixed(3)}`).join(" ")+" Z"}function W(t,e,o,n,c=0){let s=Math.max(3,Math.min(64,Math.floor(o))),r=Math.max(.01,Math.min(.99,n)),h=t/2,d=e/2,i=Math.max(.1,Math.min(t-c,e-c)/2),a=i*r,u=[],l=s*2,$=Math.PI/s,p=-Math.PI/2;for(let m=0;m<l;m++){let x=m%2===0?i:a,f=p+m*$;u.push({x:h+x*Math.cos(f),y:d+x*Math.sin(f)})}return u.map((m,x)=>`${x===0?"M":"L"} ${m.x.toFixed(3)} ${m.y.toFixed(3)}`).join(" ")+" Z"}function Z(t,e,o,n,c,s=0){let r=s>0?s/2:0,h=Math.max(1,t-s),d=Math.max(1,e-s),i=e/2,a=Math.min(d,Math.max(4,o)),u=Math.min(h*.9,Math.max(4,n)),l=Math.min(a*.95,Math.max(2,c)),$=r,p=r+h,m=p-u,x=i-l/2,f=i+l/2,g=i-a/2,M=i+a/2;return[`M ${$.toFixed(2)} ${x.toFixed(2)}`,`L ${m.toFixed(2)} ${x.toFixed(2)}`,`L ${m.toFixed(2)} ${g.toFixed(2)}`,`L ${p.toFixed(2)} ${i.toFixed(2)}`,`L ${m.toFixed(2)} ${M.toFixed(2)}`,`L ${m.toFixed(2)} ${f.toFixed(2)}`,`L ${$.toFixed(2)} ${f.toFixed(2)}`,"Z"].join(" ")}function G(t=0){let e=t*Math.PI/180,o=Math.cos(e),n=Math.sin(e),c=((.5-o*.5)*100).toFixed(2),s=((.5-n*.5)*100).toFixed(2),r=((.5+o*.5)*100).toFixed(2),h=((.5+n*.5)*100).toFixed(2);return{x1:`${c}%`,y1:`${s}%`,x2:`${r}%`,y2:`${h}%`}}function A(t){let e=Math.max(1,t.width??500),o=Math.max(1,t.height??500),n=t.strokeWidth??0;switch(t.shapeType){case"Rectangle":return P(e,o,t.radiusTL??0,t.radiusTR??0,t.radiusBR??0,t.radiusBL??0,n);case"Ellipse":return D(e,o,n);case"Polygon":return I(e,o,t.polygonSides??5,n);case"Star":return W(e,o,t.starPoints??5,t.starInnerRadius??.5,n);case"Arrow":return Z(e,o,t.arrowHeadWidth??40,t.arrowHeadLength??40,t.arrowShaftWidth??20,n);case"CustomPath":return t.customPath?.trim()||P(e,o,0,0,0,0,n);default:return P(e,o,0,0,0,0,n)}}function B(t){let e=Math.max(1,t.width??500),o=Math.max(1,t.height??500),n=A(t),c=t.fillType??"solid",s=t.fillColor??"#3b82f6",r=t.gradientEndColor??"#1d4ed8",h=t.gradientAngle??0,d=t.strokeColor??"#ffffff",i=Math.max(0,t.strokeWidth??0),a=t.strokeDashArray?.trim(),u=t.strokeLineCap??"round",l=t.strokeLineJoin??"round",$=t.strokeDashOffset??0,p=t.rotation??0,m=Math.max(0,Math.min(1,t.opacity??1)),x=t.shapeType==="CustomPath"?t.customPathScale??1:1,f=`gw_shape_grad_${Math.abs(Math.round(h)*31+(c==="linear"?1:2))}`,g="",M=s;if(c==="none")M="none";else if(c==="linear"){let S=G(h);g=`<defs><linearGradient id="${f}" x1="${S.x1}" y1="${S.y1}" x2="${S.x2}" y2="${S.y2}"><stop offset="0%" stop-color="${s}"/><stop offset="100%" stop-color="${r}"/></linearGradient></defs>`,M=`url(#${f})`}else c==="radial"&&(g=`<defs><radialGradient id="${f}" cx="50%" cy="50%" r="50%"><stop offset="0%" stop-color="${s}"/><stop offset="100%" stop-color="${r}"/></radialGradient></defs>`,M=`url(#${f})`);let v=i>0?`stroke="${d}" stroke-width="${i}" stroke-linecap="${u}" stroke-linejoin="${l}" ${a?`stroke-dasharray="${a}"`:""} ${$?`stroke-dashoffset="${$}"`:""}`:'stroke="none"',R=e/2,H=o/2,y=[];p!==0&&y.push(`rotate(${p} ${R} ${H})`),x!==1&&y.push(`scale(${x})`);let N=y.length>0?`transform="${y.join(" ")}"`:"",j=m<1?`opacity="${m}"`:"";return`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ${e} ${o}" width="${e}" height="${o}">${g}<g ${N} ${j}><path d="${n}" fill="${M}" ${v} /></g></svg>`}function L(t){let e=B(t);return typeof Buffer<"u"?`data:image/svg+xml;base64,${Buffer.from(e).toString("base64")}`:`data:image/svg+xml;base64,${btoa(unescape(encodeURIComponent(e)))}`}var k=async t=>{let{ctx:e,pass:o,props:n,targetWidth:c,targetHeight:s}=t,r=n.virtualMedia?.operation;if(!r||r.op!=="ShapeGenerator"&&r.op!=="source")return;let h=L(r),d=c>0?c:r.width??500,i=s>0?s:r.height??500,a=!!(e.isHeadless||typeof window>"u");await C(e,o,{src:h,dstRect:{x:0,y:0,width:d,height:i},opacity:r.opacity??1,isHeadless:a})};var Q=w({WebGPURenderer:k});export{k as ShapeGeneratorWebGPURenderer,Q as default};
@@ -1 +0,0 @@
1
- import{a}from"./chunk-PEUQRSIM.mjs";import"./chunk-IB6GZJOL.mjs";import"./chunk-VVY4PG5E.mjs";import"./chunk-F4F2UDRX.mjs";import"./chunk-Y4NIR77Z.mjs";export{a as default};
@@ -1 +0,0 @@
1
- import{a}from"./chunk-PF3SXQNV.mjs";import"./chunk-IB6GZJOL.mjs";import"./chunk-VVY4PG5E.mjs";import"./chunk-F4F2UDRX.mjs";import"./chunk-354GX6IB.mjs";import"./chunk-5RRKGN2U.mjs";import"./chunk-Y4NIR77Z.mjs";export{a as default};
@@ -1 +0,0 @@
1
- import{a}from"./chunk-J4SHMCTG.mjs";import"./chunk-IB6GZJOL.mjs";import"./chunk-VVY4PG5E.mjs";import"./chunk-F4F2UDRX.mjs";import"./chunk-Y4NIR77Z.mjs";export{a as default};
@@ -1 +0,0 @@
1
- import{a}from"./chunk-WC257OBY.mjs";import"./chunk-IB6GZJOL.mjs";import"./chunk-VVY4PG5E.mjs";import"./chunk-F4F2UDRX.mjs";import"./chunk-Y4NIR77Z.mjs";export{a as default};
@@ -1,5 +0,0 @@
1
- import "./chunk-BcJoO4Nm.mjs";
2
- import "./dist-CFe1fC9l.mjs";
3
- import { n as renderers_default, t as WebGPURenderer } from "./renderer-DRGa6tlX.mjs";
4
-
5
- export { WebGPURenderer, renderers_default as default };
@@ -1,5 +0,0 @@
1
- import "./chunk-BcJoO4Nm.mjs";
2
- import "./dist-CFe1fC9l.mjs";
3
- import { t as renderers_default } from "./renderer-BIGILDEA.mjs";
4
-
5
- export { renderers_default as default };
@@ -1,5 +0,0 @@
1
- import "./chunk-BcJoO4Nm.mjs";
2
- import "./dist-CFe1fC9l.mjs";
3
- import { t as renderers_default } from "./renderer-CxEBV-w0.mjs";
4
-
5
- export { renderers_default as default };
@@ -1,5 +0,0 @@
1
- import "./chunk-BcJoO4Nm.mjs";
2
- import "./dist-CFe1fC9l.mjs";
3
- import { t as renderers_default } from "./renderer-CAagaRag.mjs";
4
-
5
- export { renderers_default as default };