framefields 2.11.0 → 2.12.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 (493) hide show
  1. package/NOTICE.md +4 -0
  2. package/dist/audio/index.d.mts +4 -4
  3. package/dist/audio/index.mjs +10 -10
  4. package/dist/{audio-BuCVk1IQ.mjs → audio-DHLoNcxD.mjs} +3 -3
  5. package/dist/{audio-BuCVk1IQ.mjs.map → audio-DHLoNcxD.mjs.map} +1 -1
  6. package/dist/{audio-CYZkDwae.d.mts → audio-afTBdB3U.d.mts} +3 -3
  7. package/dist/{audio-CYZkDwae.d.mts.map → audio-afTBdB3U.d.mts.map} +1 -1
  8. package/dist/cli/check-worker.mjs +45 -45
  9. package/dist/cli.mjs +174 -83
  10. package/dist/cli.mjs.map +1 -1
  11. package/dist/cloud/index.d.mts +14 -3
  12. package/dist/cloud/index.d.mts.map +1 -1
  13. package/dist/cloud/index.mjs +2 -2
  14. package/dist/{cloud-xcfV4J03.mjs → cloud-COid1Ipa.mjs} +169 -16
  15. package/dist/cloud-COid1Ipa.mjs.map +1 -0
  16. package/dist/components/index.d.mts +10 -10
  17. package/dist/components/index.mjs +44 -44
  18. package/dist/{dist-Dg9LMWoX.mjs → dist-2_lT3Dwc.mjs} +2 -2
  19. package/dist/{dist-Dg9LMWoX.mjs.map → dist-2_lT3Dwc.mjs.map} +1 -1
  20. package/dist/{dist-CWLLnigL.mjs → dist-B-OPY7Cs.mjs} +273 -76
  21. package/dist/dist-B-OPY7Cs.mjs.map +1 -0
  22. package/dist/{dist-EQX3TUUl.mjs → dist-BSqeChht.mjs} +3 -3
  23. package/dist/{dist-EQX3TUUl.mjs.map → dist-BSqeChht.mjs.map} +1 -1
  24. package/dist/{dist-CNGv-JTX.mjs → dist-BwtxciN4.mjs} +1 -1
  25. package/dist/dist-CySGkG54.mjs.map +1 -1
  26. package/dist/effects/index.d.mts +5 -5
  27. package/dist/effects/index.mjs +35 -35
  28. package/dist/{effects-DKLbLXF7.mjs → effects-C8CL9cOq.mjs} +2 -2
  29. package/dist/{effects-DKLbLXF7.mjs.map → effects-C8CL9cOq.mjs.map} +1 -1
  30. package/dist/fonts/index.mjs +2 -2
  31. package/dist/{fonts-gPbGbShD.mjs → fonts-BQrDjnpV.mjs} +2 -2
  32. package/dist/{fonts-gPbGbShD.mjs.map → fonts-BQrDjnpV.mjs.map} +1 -1
  33. package/dist/{gpu-CpkJJLQP.mjs → gpu-DHa-3Dou.mjs} +11 -3
  34. package/dist/gpu-DHa-3Dou.mjs.map +1 -0
  35. package/dist/{index-Cro-818i.d.mts → index-BNClElng.d.mts} +592 -516
  36. package/dist/index-BNClElng.d.mts.map +1 -0
  37. package/dist/{index-jSDEM-uE.d.mts → index-CAuNuvIg.d.mts} +5 -5
  38. package/dist/{index-jSDEM-uE.d.mts.map → index-CAuNuvIg.d.mts.map} +1 -1
  39. package/dist/index-COYNQ_mf.d.mts.map +1 -1
  40. package/dist/{index-D2i9J9Zq.d.mts → index-CTv9ZieD.d.mts} +2 -2
  41. package/dist/{index-D2i9J9Zq.d.mts.map → index-CTv9ZieD.d.mts.map} +1 -1
  42. package/dist/{index-C8YwZ6k1.d.mts → index-DQa7mhzq.d.mts} +2 -2
  43. package/dist/{index-C8YwZ6k1.d.mts.map → index-DQa7mhzq.d.mts.map} +1 -1
  44. package/dist/{index-Bly-7YM1.d.mts → index-Drk6HC2k.d.mts} +2 -2
  45. package/dist/{index-Bly-7YM1.d.mts.map → index-Drk6HC2k.d.mts.map} +1 -1
  46. package/dist/{index-BuiZzc6i.d.mts → index-Fliv2Z-w.d.mts} +32 -1
  47. package/dist/index-Fliv2Z-w.d.mts.map +1 -0
  48. package/dist/{index-CEU_Zsb9.d.mts → index-WwuuX8ZJ.d.mts} +24 -22
  49. package/dist/index-WwuuX8ZJ.d.mts.map +1 -0
  50. package/dist/index.d.mts +10 -10
  51. package/dist/index.mjs +52 -52
  52. package/dist/preview/index.d.mts +1 -1
  53. package/dist/preview/index.mjs +10 -10
  54. package/dist/{preview-BToKUTtZ.mjs → preview-BUtt481A.mjs} +2 -2
  55. package/dist/{preview-BToKUTtZ.mjs.map → preview-BUtt481A.mjs.map} +1 -1
  56. package/dist/preview-engine/audio.mjs +1 -1
  57. package/dist/preview-engine/{chunk-QF4JWVO3.mjs → chunk-35XSD4QM.mjs} +15 -15
  58. package/dist/preview-engine/{chunk-ZF2MEFKO.mjs → chunk-3DOIE4DV.mjs} +1 -1
  59. package/dist/preview-engine/{chunk-JDB7PMRI.mjs → chunk-3IT7LHWR.mjs} +1 -1
  60. package/dist/preview-engine/{chunk-DNNGWS2C.mjs → chunk-3MLGWUSK.mjs} +1 -1
  61. package/dist/preview-engine/{chunk-KVOFO273.mjs → chunk-3QJ5GRBH.mjs} +1 -1
  62. package/dist/preview-engine/{chunk-54Q5CKSV.mjs → chunk-3QTHW2CD.mjs} +1 -1
  63. package/dist/preview-engine/chunk-44V4V5LD.mjs +1 -0
  64. package/dist/preview-engine/{chunk-BRV7TQDV.mjs → chunk-4JNIEQS2.mjs} +1 -1
  65. package/dist/preview-engine/chunk-4YT5YJIF.mjs +1 -0
  66. package/dist/preview-engine/{chunk-C4M3B2Q2.mjs → chunk-5SLBE2FX.mjs} +1 -1
  67. package/dist/preview-engine/{chunk-BJXNKMSY.mjs → chunk-64L4GUOF.mjs} +20 -6
  68. package/dist/preview-engine/{chunk-UMJ3VGKN.mjs → chunk-6B3NOY5W.mjs} +1 -1
  69. package/dist/preview-engine/{chunk-VQA4DYZU.mjs → chunk-6O7UDVNL.mjs} +1 -1
  70. package/dist/preview-engine/chunk-74J4DJQA.mjs +1 -0
  71. package/dist/preview-engine/chunk-77MT33VR.mjs +1 -0
  72. package/dist/preview-engine/chunk-A6OAPDIA.mjs +1 -0
  73. package/dist/preview-engine/chunk-ADLIF544.mjs +39 -0
  74. package/dist/preview-engine/{chunk-OLB4TQLQ.mjs → chunk-AKVRG7UU.mjs} +1 -1
  75. package/dist/preview-engine/{chunk-CIVEZJYF.mjs → chunk-CRBOK3JT.mjs} +1 -1
  76. package/dist/preview-engine/chunk-CSLSWUUT.mjs +1 -0
  77. package/dist/preview-engine/{chunk-JSYG6OWZ.mjs → chunk-D7OMXGIZ.mjs} +1 -1
  78. package/dist/preview-engine/{chunk-EPRINA4V.mjs → chunk-E7BKWHOT.mjs} +10 -10
  79. package/dist/preview-engine/{chunk-NOKPBMIP.mjs → chunk-EWDJMJO5.mjs} +1 -1
  80. package/dist/preview-engine/{chunk-5KSBS3AL.mjs → chunk-EYE3GNL5.mjs} +1 -1
  81. package/dist/preview-engine/{chunk-GHTG5XV6.mjs → chunk-EYKN2VET.mjs} +84 -25
  82. package/dist/preview-engine/{chunk-OELPPLML.mjs → chunk-FJTURGJV.mjs} +1 -1
  83. package/dist/preview-engine/{chunk-IKVJ4MW5.mjs → chunk-G4ZTSLZU.mjs} +1 -1
  84. package/dist/preview-engine/{chunk-VZLIRYAL.mjs → chunk-GAMAKN5L.mjs} +1 -1
  85. package/dist/preview-engine/{chunk-65NANVQL.mjs → chunk-HTAHYSCW.mjs} +1 -1
  86. package/dist/preview-engine/{chunk-ZIXPWP2B.mjs → chunk-ICWD36H6.mjs} +1 -1
  87. package/dist/preview-engine/chunk-JAAFSVAG.mjs +1 -0
  88. package/dist/preview-engine/{chunk-RDWLLITE.mjs → chunk-JAUMCOOJ.mjs} +1 -1
  89. package/dist/preview-engine/{chunk-ACBBBOUM.mjs → chunk-KBCZKIIQ.mjs} +1 -1
  90. package/dist/preview-engine/{chunk-YVZTRH4Y.mjs → chunk-KDCM7S3S.mjs} +1 -1
  91. package/dist/preview-engine/chunk-KIPXBOYG.mjs +1974 -0
  92. package/dist/preview-engine/{chunk-6LTINEA4.mjs → chunk-M4QVCQ3O.mjs} +1 -1
  93. package/dist/preview-engine/{chunk-GN3NDRLI.mjs → chunk-NCQHOGZK.mjs} +1 -1
  94. package/dist/preview-engine/{chunk-YKM7JDQY.mjs → chunk-NJO2BIJX.mjs} +1 -1
  95. package/dist/preview-engine/{chunk-7GMHSTRP.mjs → chunk-NTSALWFF.mjs} +1 -1
  96. package/dist/preview-engine/{chunk-PKNUTHPI.mjs → chunk-O75BFM4S.mjs} +1 -1
  97. package/dist/preview-engine/{chunk-VFQH5KVS.mjs → chunk-ONHY4KNY.mjs} +1 -1
  98. package/dist/preview-engine/chunk-PH3UUX6A.mjs +138 -0
  99. package/dist/preview-engine/chunk-PIHG6HJO.mjs +1 -0
  100. package/dist/preview-engine/{chunk-YHMBGJP6.mjs → chunk-QPT2Y2GZ.mjs} +1 -1
  101. package/dist/preview-engine/{chunk-4AGQN53P.mjs → chunk-QXLFTCLC.mjs} +1 -1
  102. package/dist/preview-engine/{chunk-O63FLYWC.mjs → chunk-RGKS6YIA.mjs} +1 -1
  103. package/dist/preview-engine/{chunk-FQL4IJZN.mjs → chunk-RN7J5TRU.mjs} +1 -1
  104. package/dist/preview-engine/{chunk-26XWIHW3.mjs → chunk-RVCLMO5Q.mjs} +1 -1
  105. package/dist/preview-engine/{chunk-TEWRQKX3.mjs → chunk-SFHWP65D.mjs} +1 -1
  106. package/dist/preview-engine/{chunk-EXEO245X.mjs → chunk-TKXOSEIJ.mjs} +1 -1
  107. package/dist/preview-engine/chunk-UKZVUYB6.mjs +483 -0
  108. package/dist/preview-engine/{chunk-EAWJXW4J.mjs → chunk-UVEDFIPN.mjs} +1 -1
  109. package/dist/preview-engine/{chunk-Z24UEN4P.mjs → chunk-VUO4K52B.mjs} +1 -1
  110. package/dist/preview-engine/{chunk-IBPYV6HF.mjs → chunk-W4XR6F5G.mjs} +1 -1
  111. package/dist/preview-engine/{chunk-UI3VH33L.mjs → chunk-WPYWCWWL.mjs} +1 -1
  112. package/dist/preview-engine/{chunk-WFMUDL55.mjs → chunk-YAPGJZPI.mjs} +1 -1
  113. package/dist/preview-engine/{chunk-LMXMBX4J.mjs → chunk-YJ4DSRDY.mjs} +1 -1
  114. package/dist/preview-engine/{chunk-CCORQLMR.mjs → chunk-YOJKIMU5.mjs} +1 -1
  115. package/dist/preview-engine/{chunk-UGB6JKVS.mjs → chunk-ZHNEZZ6A.mjs} +1 -1
  116. package/dist/preview-engine/{chunk-LFNCWMKS.mjs → chunk-ZZMI3WOT.mjs} +1 -1
  117. package/dist/preview-engine/components.mjs +1 -1
  118. package/dist/preview-engine/effects.mjs +1 -1
  119. package/dist/preview-engine/fonts.mjs +1 -1
  120. package/dist/preview-engine/framefields.mjs +1 -1
  121. package/dist/preview-engine/player.mjs +1 -1
  122. package/dist/preview-engine/{renderers-53EI26GL.mjs → renderers-3FZVDYRQ.mjs} +1 -1
  123. package/dist/preview-engine/renderers-3KEBYOOF.mjs +1 -0
  124. package/dist/preview-engine/{renderers-6YVZUQOH.mjs → renderers-4RPQSUUZ.mjs} +1 -1
  125. package/dist/preview-engine/renderers-5EGFXFPF.mjs +1 -0
  126. package/dist/preview-engine/renderers-5SJHYUTM.mjs +1 -0
  127. package/dist/preview-engine/renderers-66MWDUN6.mjs +1 -0
  128. package/dist/preview-engine/{renderers-CCRZNGVK.mjs → renderers-6FENMFSC.mjs} +1 -1
  129. package/dist/preview-engine/renderers-77OXJ2GY.mjs +1 -0
  130. package/dist/preview-engine/renderers-7LI4QKHO.mjs +1 -0
  131. package/dist/preview-engine/{renderers-CYJAVWHT.mjs → renderers-AIZRIW2R.mjs} +1 -1
  132. package/dist/preview-engine/{renderers-OGOW3NA4.mjs → renderers-BDI2BDBA.mjs} +1 -1
  133. package/dist/preview-engine/renderers-BDXCO6NR.mjs +1 -0
  134. package/dist/preview-engine/{renderers-EN7LXJLG.mjs → renderers-BUZ67FNZ.mjs} +1 -1
  135. package/dist/preview-engine/renderers-DMTGKURQ.mjs +1 -0
  136. package/dist/preview-engine/renderers-DU7KPFVV.mjs +1 -0
  137. package/dist/preview-engine/{renderers-WSABL3QO.mjs → renderers-ECXMT5BD.mjs} +1 -1
  138. package/dist/preview-engine/{renderers-MOEC2XZZ.mjs → renderers-EILFSWSJ.mjs} +1 -1
  139. package/dist/preview-engine/{renderers-X6CORAES.mjs → renderers-EVEWFJ7U.mjs} +1 -1
  140. package/dist/preview-engine/renderers-F6PT2LON.mjs +1 -0
  141. package/dist/preview-engine/renderers-F7WPJXKT.mjs +1 -0
  142. package/dist/preview-engine/renderers-FIFF267S.mjs +1 -0
  143. package/dist/preview-engine/{renderers-GQM3KMV3.mjs → renderers-FQISHQEN.mjs} +1 -1
  144. package/dist/preview-engine/{renderers-HKLCB4U6.mjs → renderers-FXAVFNUN.mjs} +1 -1
  145. package/dist/preview-engine/{renderers-P2HORBZ6.mjs → renderers-GITAVRYZ.mjs} +1 -1
  146. package/dist/preview-engine/renderers-GTKRV225.mjs +1 -0
  147. package/dist/preview-engine/{renderers-KCGK33Y2.mjs → renderers-HG6JZIZO.mjs} +1 -1
  148. package/dist/preview-engine/{renderers-I6QKZ7CH.mjs → renderers-HHWMIDN3.mjs} +1 -1
  149. package/dist/preview-engine/renderers-HI3SRJVD.mjs +1 -0
  150. package/dist/preview-engine/{renderers-7CAHX35U.mjs → renderers-HXEDI4BD.mjs} +1 -1
  151. package/dist/preview-engine/{renderers-77PDUMYI.mjs → renderers-HXNSDJBY.mjs} +1 -1
  152. package/dist/preview-engine/{renderers-ACUJMDEK.mjs → renderers-I2ZOUFRU.mjs} +1 -1
  153. package/dist/preview-engine/renderers-JHFD4LHZ.mjs +1 -0
  154. package/dist/preview-engine/{renderers-IHGAWLUF.mjs → renderers-JMSAW7VY.mjs} +1 -1
  155. package/dist/preview-engine/renderers-KGVZUFHD.mjs +1 -0
  156. package/dist/preview-engine/{renderers-RN2MHIFK.mjs → renderers-KICDB5Y6.mjs} +1 -1
  157. package/dist/preview-engine/{renderers-C7SI3NIE.mjs → renderers-KKULMOV4.mjs} +1 -1
  158. package/dist/preview-engine/{renderers-HSFQIILN.mjs → renderers-KMVMPYY7.mjs} +1 -1
  159. package/dist/preview-engine/renderers-L6GFGHS6.mjs +1 -0
  160. package/dist/preview-engine/renderers-LN7WPG6I.mjs +1 -0
  161. package/dist/preview-engine/{renderers-BOBVXYAA.mjs → renderers-LWW4RF6D.mjs} +1 -1
  162. package/dist/preview-engine/renderers-LY57CZZB.mjs +1 -0
  163. package/dist/preview-engine/renderers-MBMJWZEW.mjs +1 -0
  164. package/dist/preview-engine/{renderers-VVP5WQOY.mjs → renderers-MPFU74I3.mjs} +1 -1
  165. package/dist/preview-engine/{renderers-H6PBHEYU.mjs → renderers-MW53LTMB.mjs} +1 -1
  166. package/dist/preview-engine/{renderers-PPZK6VEW.mjs → renderers-NQC4DPX4.mjs} +1 -1
  167. package/dist/preview-engine/{renderers-4IBFDW2S.mjs → renderers-PC2GOZDT.mjs} +1 -1
  168. package/dist/preview-engine/renderers-PREFONJG.mjs +1 -0
  169. package/dist/preview-engine/renderers-PSBTV2DO.mjs +228 -0
  170. package/dist/preview-engine/{renderers-UG2C3C7T.mjs → renderers-Q77UPEYE.mjs} +1 -1
  171. package/dist/preview-engine/renderers-QHXCFDHI.mjs +1 -0
  172. package/dist/preview-engine/renderers-R22CDFO4.mjs +1 -0
  173. package/dist/preview-engine/renderers-RDYJRNAR.mjs +1 -0
  174. package/dist/preview-engine/renderers-RENLKAA7.mjs +1 -0
  175. package/dist/preview-engine/{renderers-5XLGCEOA.mjs → renderers-RIPXT4AL.mjs} +1 -1
  176. package/dist/preview-engine/{renderers-FY2HOQCS.mjs → renderers-SFVFAS3C.mjs} +1 -1
  177. package/dist/preview-engine/{renderers-VIGZYJYX.mjs → renderers-SWQVCJHB.mjs} +1 -1
  178. package/dist/preview-engine/renderers-SZVDZDY7.mjs +1 -0
  179. package/dist/preview-engine/renderers-TEKHQHCL.mjs +1 -0
  180. package/dist/preview-engine/renderers-TS32FDV7.mjs +1 -0
  181. package/dist/preview-engine/renderers-TYSLUZ53.mjs +1 -0
  182. package/dist/preview-engine/renderers-U3RLYFCN.mjs +1 -0
  183. package/dist/preview-engine/{renderers-6LNDAO4B.mjs → renderers-U4IXWMD6.mjs} +1 -1
  184. package/dist/preview-engine/renderers-V5HM6PZ2.mjs +1 -0
  185. package/dist/preview-engine/{renderers-33FCFHDR.mjs → renderers-VUQAZ56P.mjs} +1 -1
  186. package/dist/preview-engine/renderers-W5YFMLSB.mjs +1 -0
  187. package/dist/preview-engine/renderers-XKDWUK56.mjs +1 -0
  188. package/dist/preview-engine/renderers-XKSBNCLZ.mjs +1 -0
  189. package/dist/preview-engine/renderers-XLQXVD37.mjs +1 -0
  190. package/dist/preview-engine/renderers-ZGX3A3QZ.mjs +1 -0
  191. package/dist/preview-engine/signals.mjs +1 -1
  192. package/dist/preview-engine/{src-4IUYUKIZ.mjs → src-GPF7RIBU.mjs} +1 -1
  193. package/dist/{program-Bc860ko5.mjs → program-Cvv_nb9T.mjs} +42 -15
  194. package/dist/program-Cvv_nb9T.mjs.map +1 -0
  195. package/dist/renderer/index.d.mts +1 -1
  196. package/dist/renderer/index.mjs +2 -2
  197. package/dist/renderer--RJepuOy.mjs +5 -0
  198. package/dist/{renderer-Bf4-N7k7.mjs → renderer-4uZGSmUD.mjs} +4 -4
  199. package/dist/{renderer-Bf4-N7k7.mjs.map → renderer-4uZGSmUD.mjs.map} +1 -1
  200. package/dist/{renderer-V4dhrf_h.mjs → renderer-5fGj_tqN.mjs} +4 -4
  201. package/dist/{renderer-V4dhrf_h.mjs.map → renderer-5fGj_tqN.mjs.map} +1 -1
  202. package/dist/{renderer-ByjaseAo.mjs → renderer-6g1ri445.mjs} +4 -4
  203. package/dist/{renderer-ByjaseAo.mjs.map → renderer-6g1ri445.mjs.map} +1 -1
  204. package/dist/{renderer-CR0mDPYY.mjs → renderer-B09I95bo.mjs} +2 -2
  205. package/dist/{renderer-BVKOQarx.d.mts → renderer-B1U6YRRV.d.mts} +22 -4
  206. package/dist/renderer-B1U6YRRV.d.mts.map +1 -0
  207. package/dist/renderer-B4NFnaty.mjs +5 -0
  208. package/dist/renderer-B6g4ts0e.mjs +5 -0
  209. package/dist/{renderer-g_1t2je9.mjs → renderer-BBjkX0Vt.mjs} +2 -2
  210. package/dist/{renderer-DAn9xiQT.mjs → renderer-BC_Nse6h.mjs} +4 -4
  211. package/dist/{renderer-DAn9xiQT.mjs.map → renderer-BC_Nse6h.mjs.map} +1 -1
  212. package/dist/renderer-BGoAr-tl.mjs +5 -0
  213. package/dist/{renderer-_9gbYS-3.mjs → renderer-BJEexai1.mjs} +4 -4
  214. package/dist/{renderer-_9gbYS-3.mjs.map → renderer-BJEexai1.mjs.map} +1 -1
  215. package/dist/{renderer-DcvjSolU.mjs → renderer-BOg8i8eF.mjs} +11 -2
  216. package/dist/{renderer-DcvjSolU.mjs.map → renderer-BOg8i8eF.mjs.map} +1 -1
  217. package/dist/renderer-BSOdBgdE.mjs +5 -0
  218. package/dist/{renderer-4ZUv3X1I.mjs → renderer-BSsKlcHk.mjs} +4 -4
  219. package/dist/{renderer-4ZUv3X1I.mjs.map → renderer-BSsKlcHk.mjs.map} +1 -1
  220. package/dist/{renderer-Cz-n883J.mjs → renderer-BTd6tFcS.mjs} +4 -4
  221. package/dist/{renderer-Cz-n883J.mjs.map → renderer-BTd6tFcS.mjs.map} +1 -1
  222. package/dist/renderer-BU6O0fpM.mjs +5 -0
  223. package/dist/{renderer-D-QVGphn.mjs → renderer-BXGuCnCJ.mjs} +4 -4
  224. package/dist/{renderer-D-QVGphn.mjs.map → renderer-BXGuCnCJ.mjs.map} +1 -1
  225. package/dist/renderer-BZ97iidG.mjs +5 -0
  226. package/dist/renderer-B_Klh1VT.mjs +5 -0
  227. package/dist/renderer-BaWQM1y-.mjs +5 -0
  228. package/dist/renderer-Bc0jvAj0.mjs +5 -0
  229. package/dist/renderer-Bd-NuU3M.mjs +3 -0
  230. package/dist/{renderer-B-CMRUag.mjs → renderer-Bf7Z7WT5.mjs} +3 -3
  231. package/dist/{renderer-B-CMRUag.mjs.map → renderer-Bf7Z7WT5.mjs.map} +1 -1
  232. package/dist/renderer-Bm077kZ6.mjs +5 -0
  233. package/dist/renderer-BtzE_e_Y.mjs +5 -0
  234. package/dist/{renderer-DFJWPqOJ.mjs → renderer-BvRM3OZ6.mjs} +3 -3
  235. package/dist/{renderer-DFJWPqOJ.mjs.map → renderer-BvRM3OZ6.mjs.map} +1 -1
  236. package/dist/{renderer-fwKnV9zs.mjs → renderer-BwJ0nXXu.mjs} +4 -4
  237. package/dist/{renderer-fwKnV9zs.mjs.map → renderer-BwJ0nXXu.mjs.map} +1 -1
  238. package/dist/{renderer-CLAvn9c6.mjs → renderer-BwV-o_1b.mjs} +3 -3
  239. package/dist/{renderer-CLAvn9c6.mjs.map → renderer-BwV-o_1b.mjs.map} +1 -1
  240. package/dist/{renderer-BDZC3o3N.mjs → renderer-Bxiiar50.mjs} +4 -4
  241. package/dist/{renderer-BDZC3o3N.mjs.map → renderer-Bxiiar50.mjs.map} +1 -1
  242. package/dist/{renderer-o68mVeyk.mjs → renderer-ByFPmHBC.mjs} +3 -3
  243. package/dist/{renderer-o68mVeyk.mjs.map → renderer-ByFPmHBC.mjs.map} +1 -1
  244. package/dist/{renderer-D4f8f66C.mjs → renderer-BzTj_CeK.mjs} +4 -4
  245. package/dist/{renderer-D4f8f66C.mjs.map → renderer-BzTj_CeK.mjs.map} +1 -1
  246. package/dist/renderer-C225eCAo.mjs +5 -0
  247. package/dist/{renderer-BNJ6Jk7-.mjs → renderer-C2kFIZ4r.mjs} +3 -3
  248. package/dist/{renderer-BNJ6Jk7-.mjs.map → renderer-C2kFIZ4r.mjs.map} +1 -1
  249. package/dist/{renderer-riIFosX6.mjs → renderer-C3CGYjrC.mjs} +4 -4
  250. package/dist/{renderer-riIFosX6.mjs.map → renderer-C3CGYjrC.mjs.map} +1 -1
  251. package/dist/renderer-CC4fhNup.mjs +3 -0
  252. package/dist/{renderer-B1esRxGy.mjs → renderer-CGpi8CDT.mjs} +4 -4
  253. package/dist/{renderer-B1esRxGy.mjs.map → renderer-CGpi8CDT.mjs.map} +1 -1
  254. package/dist/{renderer-Rw87u1Cr.mjs → renderer-CInMMs5x.mjs} +4 -4
  255. package/dist/{renderer-Rw87u1Cr.mjs.map → renderer-CInMMs5x.mjs.map} +1 -1
  256. package/dist/{renderer-COcKhouz.mjs → renderer-CLTRTtQ8.mjs} +4 -4
  257. package/dist/{renderer-COcKhouz.mjs.map → renderer-CLTRTtQ8.mjs.map} +1 -1
  258. package/dist/renderer-CLXdR4vz.mjs +5 -0
  259. package/dist/{renderer-BhsrlGKp.mjs → renderer-CMCmljb0.mjs} +74 -21
  260. package/dist/renderer-CMCmljb0.mjs.map +1 -0
  261. package/dist/{renderer-HDj9Zb-O.mjs → renderer-CN-mCIoI.mjs} +19 -6
  262. package/dist/renderer-CN-mCIoI.mjs.map +1 -0
  263. package/dist/{renderer-Ros7XQg2.mjs → renderer-CNpq7rL-.mjs} +3 -3
  264. package/dist/{renderer-Ros7XQg2.mjs.map → renderer-CNpq7rL-.mjs.map} +1 -1
  265. package/dist/{renderer-B3Dme2es.mjs → renderer-CZClDMgF.mjs} +4 -4
  266. package/dist/{renderer-B3Dme2es.mjs.map → renderer-CZClDMgF.mjs.map} +1 -1
  267. package/dist/{renderer-1uoKiILq.mjs → renderer-C_gR2H3R.mjs} +3 -3
  268. package/dist/{renderer-1uoKiILq.mjs.map → renderer-C_gR2H3R.mjs.map} +1 -1
  269. package/dist/{renderer-88C3QpKL.d.mts → renderer-CcmxR6Fy.d.mts} +2 -2
  270. package/dist/{renderer-88C3QpKL.d.mts.map → renderer-CcmxR6Fy.d.mts.map} +1 -1
  271. package/dist/{renderer-50JEMaVo.mjs → renderer-CiHVnhUk.mjs} +4 -4
  272. package/dist/{renderer-50JEMaVo.mjs.map → renderer-CiHVnhUk.mjs.map} +1 -1
  273. package/dist/renderer-CszM8B3C.mjs +5 -0
  274. package/dist/renderer-Ctp8ZYfk.mjs +5 -0
  275. package/dist/{renderer-JHByuUNb.mjs → renderer-CtpEzVBn.mjs} +3 -3
  276. package/dist/{renderer-JHByuUNb.mjs.map → renderer-CtpEzVBn.mjs.map} +1 -1
  277. package/dist/renderer-CxQdSp8I.mjs +5 -0
  278. package/dist/{renderer-BaIJIfJ6.mjs → renderer-D3QPNBEj.mjs} +4 -4
  279. package/dist/{renderer-BaIJIfJ6.mjs.map → renderer-D3QPNBEj.mjs.map} +1 -1
  280. package/dist/{renderer-Bbxh4N8Y.mjs → renderer-D3YbHjRG.mjs} +73 -73
  281. package/dist/{renderer-Bbxh4N8Y.mjs.map → renderer-D3YbHjRG.mjs.map} +1 -1
  282. package/dist/renderer-D4GMRtDd.mjs +6 -0
  283. package/dist/{renderer-Bx14Wnxl.mjs → renderer-DCMoBppL.mjs} +58 -4
  284. package/dist/renderer-DCMoBppL.mjs.map +1 -0
  285. package/dist/{renderer-sfqZK6L5.mjs → renderer-DEoerd-j.mjs} +4 -4
  286. package/dist/{renderer-sfqZK6L5.mjs.map → renderer-DEoerd-j.mjs.map} +1 -1
  287. package/dist/renderer-DEsGIvTZ.mjs +5 -0
  288. package/dist/{renderer-ynFRJh7G.mjs → renderer-DGXqspB9.mjs} +2 -2
  289. package/dist/renderer-DIaUQ0EP.mjs +5 -0
  290. package/dist/{renderer-DgPn_SOC.mjs → renderer-DKFaVaRJ.mjs} +3 -3
  291. package/dist/{renderer-DgPn_SOC.mjs.map → renderer-DKFaVaRJ.mjs.map} +1 -1
  292. package/dist/{renderer-CrR8Mpxq.mjs → renderer-DL3o_lG1.mjs} +4 -4
  293. package/dist/{renderer-CrR8Mpxq.mjs.map → renderer-DL3o_lG1.mjs.map} +1 -1
  294. package/dist/{renderer-Bxjb0HYU.mjs → renderer-DLaUT6JZ.mjs} +3 -3
  295. package/dist/{renderer-Bxjb0HYU.mjs.map → renderer-DLaUT6JZ.mjs.map} +1 -1
  296. package/dist/renderer-DLjqcNzQ.mjs +5 -0
  297. package/dist/renderer-DMuQZa51.mjs +5 -0
  298. package/dist/{renderer-Co6UFbZB.mjs → renderer-DO1SZ5xY.mjs} +4 -4
  299. package/dist/{renderer-Co6UFbZB.mjs.map → renderer-DO1SZ5xY.mjs.map} +1 -1
  300. package/dist/{renderer-B6Oeahe_.mjs → renderer-DO_zXwMJ.mjs} +3 -3
  301. package/dist/{renderer-B6Oeahe_.mjs.map → renderer-DO_zXwMJ.mjs.map} +1 -1
  302. package/dist/renderer-DOgi2aF2.mjs +5 -0
  303. package/dist/{renderer-BSELd5vU.mjs → renderer-DP9ScNM6.mjs} +3 -3
  304. package/dist/{renderer-BSELd5vU.mjs.map → renderer-DP9ScNM6.mjs.map} +1 -1
  305. package/dist/{renderer-DOkbn1ot.mjs → renderer-DQJHjU0L.mjs} +4 -4
  306. package/dist/{renderer-DOkbn1ot.mjs.map → renderer-DQJHjU0L.mjs.map} +1 -1
  307. package/dist/renderer-DSh7cvi4.mjs +5 -0
  308. package/dist/renderer-DV1LVBBP.mjs +5 -0
  309. package/dist/{renderer-BJ-7WRgO.mjs → renderer-DX60Kr20.mjs} +3 -3
  310. package/dist/{renderer-BJ-7WRgO.mjs.map → renderer-DX60Kr20.mjs.map} +1 -1
  311. package/dist/{renderer-DLPhfwbR.mjs → renderer-DZIxduEt.mjs} +3 -3
  312. package/dist/{renderer-DLPhfwbR.mjs.map → renderer-DZIxduEt.mjs.map} +1 -1
  313. package/dist/{renderer-TKZCA0B9.mjs → renderer-DaLy1dFA.mjs} +208 -69
  314. package/dist/renderer-DaLy1dFA.mjs.map +1 -0
  315. package/dist/{renderer-DaXQgGg3.mjs → renderer-DaY04IyU.mjs} +4 -4
  316. package/dist/{renderer-DaXQgGg3.mjs.map → renderer-DaY04IyU.mjs.map} +1 -1
  317. package/dist/{renderer-Dpl6poqD.mjs → renderer-Dak_wVh9.mjs} +2 -2
  318. package/dist/{renderer-Dpl6poqD.mjs.map → renderer-Dak_wVh9.mjs.map} +1 -1
  319. package/dist/renderer-Dhrj2bJz.mjs +5 -0
  320. package/dist/{renderer-celhuAL7.mjs → renderer-Dj54y3h3.mjs} +3 -3
  321. package/dist/{renderer-celhuAL7.mjs.map → renderer-Dj54y3h3.mjs.map} +1 -1
  322. package/dist/renderer-DoFUu1R4.mjs +5 -0
  323. package/dist/{renderer-RvI3qRUI.mjs → renderer-Dp9FQKVP.mjs} +4 -4
  324. package/dist/{renderer-RvI3qRUI.mjs.map → renderer-Dp9FQKVP.mjs.map} +1 -1
  325. package/dist/{renderer-KKk7myX1.mjs → renderer-DrK6pyfz.mjs} +4 -4
  326. package/dist/{renderer-KKk7myX1.mjs.map → renderer-DrK6pyfz.mjs.map} +1 -1
  327. package/dist/{renderer-BURhYcpA.mjs → renderer-DrL3J9ci.mjs} +3 -3
  328. package/dist/{renderer-BURhYcpA.mjs.map → renderer-DrL3J9ci.mjs.map} +1 -1
  329. package/dist/{renderer-BOrMBwQS.mjs → renderer-DsPLMzy1.mjs} +2 -2
  330. package/dist/{renderer-BOrMBwQS.mjs.map → renderer-DsPLMzy1.mjs.map} +1 -1
  331. package/dist/renderer-DsydX3cx.mjs +5 -0
  332. package/dist/{renderer-D06HxSXO.mjs → renderer-DwH5e3hx.mjs} +2 -2
  333. package/dist/renderer-DxVSoeYi.mjs +5 -0
  334. package/dist/{renderer-BQetXCcZ.mjs → renderer-Dy1xQOTu.mjs} +3 -3
  335. package/dist/{renderer-BQetXCcZ.mjs.map → renderer-Dy1xQOTu.mjs.map} +1 -1
  336. package/dist/{renderer-CxGx1Lhi.mjs → renderer-FvvywNvv.mjs} +3 -3
  337. package/dist/{renderer-CxGx1Lhi.mjs.map → renderer-FvvywNvv.mjs.map} +1 -1
  338. package/dist/{renderer-DE9Jik9K.mjs → renderer-HXw4cJZx.mjs} +3 -3
  339. package/dist/{renderer-DE9Jik9K.mjs.map → renderer-HXw4cJZx.mjs.map} +1 -1
  340. package/dist/{renderer-CU8v-LxD.mjs → renderer-HhJPFidU.mjs} +4 -4
  341. package/dist/{renderer-CU8v-LxD.mjs.map → renderer-HhJPFidU.mjs.map} +1 -1
  342. package/dist/{renderer-BwrfKKqw.mjs → renderer-IAffbHXx.mjs} +3 -3
  343. package/dist/{renderer-BwrfKKqw.mjs.map → renderer-IAffbHXx.mjs.map} +1 -1
  344. package/dist/{renderer-fs8f1QeE.mjs → renderer-LrAldCWN.mjs} +4 -4
  345. package/dist/{renderer-fs8f1QeE.mjs.map → renderer-LrAldCWN.mjs.map} +1 -1
  346. package/dist/renderer-Nc9bHb0n.mjs +5 -0
  347. package/dist/{renderer-h62QaJYz.mjs → renderer-O4y02xkD.mjs} +3 -3
  348. package/dist/{renderer-h62QaJYz.mjs.map → renderer-O4y02xkD.mjs.map} +1 -1
  349. package/dist/{renderer-eMCTAa9e.mjs → renderer-PnnkUWm-.mjs} +3 -3
  350. package/dist/{renderer-eMCTAa9e.mjs.map → renderer-PnnkUWm-.mjs.map} +1 -1
  351. package/dist/renderer-TFaSD2Db.mjs +5 -0
  352. package/dist/{renderer-jnAIhWn_.mjs → renderer-TiaHrU5z.mjs} +4 -4
  353. package/dist/{renderer-jnAIhWn_.mjs.map → renderer-TiaHrU5z.mjs.map} +1 -1
  354. package/dist/renderer-Z61ctppe.mjs +5 -0
  355. package/dist/{renderer-DkqZmfm8.mjs → renderer-_KIBvES8.mjs} +4 -4
  356. package/dist/{renderer-DkqZmfm8.mjs.map → renderer-_KIBvES8.mjs.map} +1 -1
  357. package/dist/renderer-awXf3sNS.mjs +5 -0
  358. package/dist/{renderer-7ow5Acsg.mjs → renderer-b0H3oDae.mjs} +3 -3
  359. package/dist/{renderer-7ow5Acsg.mjs.map → renderer-b0H3oDae.mjs.map} +1 -1
  360. package/dist/renderer-cHT28oYI.mjs +5 -0
  361. package/dist/renderer-g7Y3bFot.mjs +5 -0
  362. package/dist/{renderer-q7q6k_cD.mjs → renderer-oBgCEqaM.mjs} +3 -3
  363. package/dist/{renderer-q7q6k_cD.mjs.map → renderer-oBgCEqaM.mjs.map} +1 -1
  364. package/dist/{renderer-Bo7shNdU.mjs → renderer-qVJdxbXB.mjs} +4 -4
  365. package/dist/{renderer-Bo7shNdU.mjs.map → renderer-qVJdxbXB.mjs.map} +1 -1
  366. package/dist/renderer-qVv0OzVc.mjs +5 -0
  367. package/dist/{renderer-D0aAZHC7.mjs → renderer-rKw5_EjG.mjs} +3 -3
  368. package/dist/{renderer-D0aAZHC7.mjs.map → renderer-rKw5_EjG.mjs.map} +1 -1
  369. package/dist/{renderer-B1LD29TV.mjs → renderer-sMFJtt_H.mjs} +3 -3
  370. package/dist/{renderer-B1LD29TV.mjs.map → renderer-sMFJtt_H.mjs.map} +1 -1
  371. package/dist/{renderer-C9BSXyrq.mjs → renderer-smP1F57W.mjs} +3 -3
  372. package/dist/{renderer-C9BSXyrq.mjs.map → renderer-smP1F57W.mjs.map} +1 -1
  373. package/dist/{renderer-DwK9jsER.mjs → renderer-snjhPaP-.mjs} +4 -4
  374. package/dist/{renderer-DwK9jsER.mjs.map → renderer-snjhPaP-.mjs.map} +1 -1
  375. package/dist/{renderer-lHNTgiOM.mjs → renderer-t1sXDiqm.mjs} +3 -3
  376. package/dist/{renderer-lHNTgiOM.mjs.map → renderer-t1sXDiqm.mjs.map} +1 -1
  377. package/dist/{renderer-CAWnCsQc.mjs → renderer-tRi3KNoG.mjs} +4 -4
  378. package/dist/{renderer-CAWnCsQc.mjs.map → renderer-tRi3KNoG.mjs.map} +1 -1
  379. package/dist/{renderer-BNHcwxw9.mjs → renderer-uA0UCxjA.mjs} +3 -3
  380. package/dist/{renderer-BNHcwxw9.mjs.map → renderer-uA0UCxjA.mjs.map} +1 -1
  381. package/dist/{renderer-pNmI-A9o.mjs → renderer-xNOKSN3V.mjs} +4 -4
  382. package/dist/{renderer-pNmI-A9o.mjs.map → renderer-xNOKSN3V.mjs.map} +1 -1
  383. package/dist/{renderers-CP8CFWDs-DRoslK4F.mjs → renderers-CP8CFWDs-DWRjjeUg.mjs} +3 -3
  384. package/dist/{renderers-CP8CFWDs-DRoslK4F.mjs.map → renderers-CP8CFWDs-DWRjjeUg.mjs.map} +1 -1
  385. package/dist/sam/index.d.mts +2 -2
  386. package/dist/sam/index.mjs +1 -1
  387. package/dist/signals/index.d.mts +5 -5
  388. package/dist/signals/index.mjs +5 -5
  389. package/dist/{src-Bnr8DUC--BRDqRF6I.mjs → src-BU6vm9sP-DFJ3phW0.mjs} +74 -9
  390. package/dist/src-BU6vm9sP-DFJ3phW0.mjs.map +1 -0
  391. package/dist/{src-BYp6r-cS.mjs → src-D7M8VTzv.mjs} +248 -28
  392. package/dist/src-D7M8VTzv.mjs.map +1 -0
  393. package/package.json +59 -59
  394. package/dist/cloud-xcfV4J03.mjs.map +0 -1
  395. package/dist/dist-CWLLnigL.mjs.map +0 -1
  396. package/dist/gpu-CpkJJLQP.mjs.map +0 -1
  397. package/dist/index-BuiZzc6i.d.mts.map +0 -1
  398. package/dist/index-CEU_Zsb9.d.mts.map +0 -1
  399. package/dist/index-Cro-818i.d.mts.map +0 -1
  400. package/dist/preview-engine/chunk-4FY4TNST.mjs +0 -1
  401. package/dist/preview-engine/chunk-7LDSMOO3.mjs +0 -1
  402. package/dist/preview-engine/chunk-AGAZJZWI.mjs +0 -1
  403. package/dist/preview-engine/chunk-BXPM5SJ3.mjs +0 -1
  404. package/dist/preview-engine/chunk-CIVJXFWH.mjs +0 -4
  405. package/dist/preview-engine/chunk-D73ZKPFN.mjs +0 -138
  406. package/dist/preview-engine/chunk-KOVN277Z.mjs +0 -1
  407. package/dist/preview-engine/chunk-M4QANUJI.mjs +0 -480
  408. package/dist/preview-engine/chunk-XF6DYP6B.mjs +0 -1974
  409. package/dist/preview-engine/chunk-XYGDTPO7.mjs +0 -39
  410. package/dist/preview-engine/chunk-YGKO4NIU.mjs +0 -1
  411. package/dist/preview-engine/renderers-2NGIILMI.mjs +0 -1
  412. package/dist/preview-engine/renderers-466Z77BH.mjs +0 -1
  413. package/dist/preview-engine/renderers-4KRENGZA.mjs +0 -1
  414. package/dist/preview-engine/renderers-4W52BQEU.mjs +0 -1
  415. package/dist/preview-engine/renderers-55PRAS7G.mjs +0 -1
  416. package/dist/preview-engine/renderers-5LLYINHW.mjs +0 -1
  417. package/dist/preview-engine/renderers-63N3Y2XO.mjs +0 -1
  418. package/dist/preview-engine/renderers-6ROVFDIN.mjs +0 -1
  419. package/dist/preview-engine/renderers-A4RVLPMG.mjs +0 -1
  420. package/dist/preview-engine/renderers-A53P4J6O.mjs +0 -1
  421. package/dist/preview-engine/renderers-AFJ3373L.mjs +0 -1
  422. package/dist/preview-engine/renderers-ATFWTA3U.mjs +0 -1
  423. package/dist/preview-engine/renderers-BPYJXHBU.mjs +0 -1
  424. package/dist/preview-engine/renderers-D3ZF7FXT.mjs +0 -1
  425. package/dist/preview-engine/renderers-D7YN6B4B.mjs +0 -1
  426. package/dist/preview-engine/renderers-DBLASKF5.mjs +0 -1
  427. package/dist/preview-engine/renderers-DC5ZYYHM.mjs +0 -1
  428. package/dist/preview-engine/renderers-J6ZEXW5L.mjs +0 -1
  429. package/dist/preview-engine/renderers-JV4MF46Q.mjs +0 -1
  430. package/dist/preview-engine/renderers-KQKH4ZIX.mjs +0 -1
  431. package/dist/preview-engine/renderers-MDHPQY6D.mjs +0 -1
  432. package/dist/preview-engine/renderers-MEITHN4N.mjs +0 -1
  433. package/dist/preview-engine/renderers-MN3HSBTJ.mjs +0 -1
  434. package/dist/preview-engine/renderers-NTG3QGNH.mjs +0 -1
  435. package/dist/preview-engine/renderers-OU4SFMB2.mjs +0 -1
  436. package/dist/preview-engine/renderers-P6TIBJIG.mjs +0 -1
  437. package/dist/preview-engine/renderers-POJWQ7L3.mjs +0 -1
  438. package/dist/preview-engine/renderers-RJ7S6VHD.mjs +0 -1
  439. package/dist/preview-engine/renderers-RJJAJZYN.mjs +0 -1
  440. package/dist/preview-engine/renderers-UEQ733VK.mjs +0 -1
  441. package/dist/preview-engine/renderers-ULO2AW2U.mjs +0 -1
  442. package/dist/preview-engine/renderers-UPVHGHCK.mjs +0 -1
  443. package/dist/preview-engine/renderers-UZHSNNIM.mjs +0 -1
  444. package/dist/preview-engine/renderers-V5KWZL2C.mjs +0 -1
  445. package/dist/preview-engine/renderers-WL372W36.mjs +0 -228
  446. package/dist/preview-engine/renderers-YMXKYOHQ.mjs +0 -1
  447. package/dist/preview-engine/renderers-YWDAZ2NZ.mjs +0 -1
  448. package/dist/program-Bc860ko5.mjs.map +0 -1
  449. package/dist/renderer--Ymc_4XJ.mjs +0 -5
  450. package/dist/renderer-B-OdV-eq.mjs +0 -5
  451. package/dist/renderer-B65fwoA2.mjs +0 -5
  452. package/dist/renderer-B92Ahkcv.mjs +0 -5
  453. package/dist/renderer-B9z2AK31.mjs +0 -5
  454. package/dist/renderer-BIF3Dg3Z.mjs +0 -5
  455. package/dist/renderer-BJUVaIAT.mjs +0 -5
  456. package/dist/renderer-BKRDMbI-.mjs +0 -5
  457. package/dist/renderer-BSwhyVWa.mjs +0 -5
  458. package/dist/renderer-BUqSZn2X.mjs +0 -5
  459. package/dist/renderer-BVKOQarx.d.mts.map +0 -1
  460. package/dist/renderer-BbmvjqK9.mjs +0 -3
  461. package/dist/renderer-BhsrlGKp.mjs.map +0 -1
  462. package/dist/renderer-Bpe4k_x6.mjs +0 -5
  463. package/dist/renderer-Bx14Wnxl.mjs.map +0 -1
  464. package/dist/renderer-C1NjG0CJ.mjs +0 -5
  465. package/dist/renderer-C7Puyst9.mjs +0 -5
  466. package/dist/renderer-CGA_7320.mjs +0 -5
  467. package/dist/renderer-CLnFkXO7.mjs +0 -5
  468. package/dist/renderer-CMQIT1Kh.mjs +0 -5
  469. package/dist/renderer-CQ1rwjIh.mjs +0 -5
  470. package/dist/renderer-CT8h0boY.mjs +0 -5
  471. package/dist/renderer-Cb0lszt3.mjs +0 -5
  472. package/dist/renderer-Ci7oLye9.mjs +0 -5
  473. package/dist/renderer-CjqXB3CZ.mjs +0 -5
  474. package/dist/renderer-CqTV04zQ.mjs +0 -5
  475. package/dist/renderer-CtWeRtHK.mjs +0 -5
  476. package/dist/renderer-CzolnwCo.mjs +0 -5
  477. package/dist/renderer-D6qhcx_C.mjs +0 -5
  478. package/dist/renderer-DDfEf0jt.mjs +0 -5
  479. package/dist/renderer-DDpa8ztp.mjs +0 -5
  480. package/dist/renderer-DbQBqzmx.mjs +0 -5
  481. package/dist/renderer-DfUcwMKa.mjs +0 -5
  482. package/dist/renderer-DgIjNANM.mjs +0 -6
  483. package/dist/renderer-Dsh6Tgu0.mjs +0 -3
  484. package/dist/renderer-DuIwR9GT.mjs +0 -5
  485. package/dist/renderer-Dv4u2c14.mjs +0 -5
  486. package/dist/renderer-HDj9Zb-O.mjs.map +0 -1
  487. package/dist/renderer-IE1yu3lZ.mjs +0 -5
  488. package/dist/renderer-PY_wnEN0.mjs +0 -5
  489. package/dist/renderer-TKZCA0B9.mjs.map +0 -1
  490. package/dist/renderer-gv24VyzO.mjs +0 -5
  491. package/dist/renderer-nN6lPZf9.mjs +0 -5
  492. package/dist/src-BYp6r-cS.mjs.map +0 -1
  493. package/dist/src-Bnr8DUC--BRDqRF6I.mjs.map +0 -1
@@ -1,4 +1,4 @@
1
- import{a as _}from"./chunk-SE2C623Z.mjs";import{f as n,g as O}from"./chunk-KOVN277Z.mjs";import{c as a}from"./chunk-ULOFDFHJ.mjs";import{g as u}from"./chunk-Y4NIR77Z.mjs";u();u();var U=["roomSize","damping","wet","dry","width"],G=()=>`
1
+ import{a as _}from"./chunk-SE2C623Z.mjs";import{f as n,g as O}from"./chunk-77MT33VR.mjs";import{c as a}from"./chunk-ULOFDFHJ.mjs";import{g as u}from"./chunk-Y4NIR77Z.mjs";u();u();var U=["roomSize","damping","wet","dry","width"],G=()=>`
2
2
  struct Uniforms {
3
3
  sampleRate : f32,
4
4
  roomSize : f32,
@@ -1,3 +1,3 @@
1
- import{b as E,d as R,g as A,j as w,x as U}from"./chunk-BJXNKMSY.mjs";import{m as P}from"./chunk-VEDMJBJV.mjs";import{o as g}from"./chunk-BDZ3TSOT.mjs";import{f as y,g as x}from"./chunk-Y4NIR77Z.mjs";x();x();var S=65536,$=1953658213,N=1954115633,k=1330926671,H=1953784678;function M(r,t){if(r.length<12)throw new Error(`Invalid font binary for "${t}": File size (${r.length} bytes) is too small to be a valid TrueType or OpenType font.`);let e=(r[0]??0)<<24|(r[1]??0)<<16|(r[2]??0)<<8|(r[3]??0);if(e===S||e===$||e===N||e===H)return"truetype";if(e===k)return"opentype";let i=(e>>>0).toString(16).padStart(8,"0");throw new Error(`Invalid font format for "${t}": Expected a valid TrueType (.ttf) or OpenType (.otf) font binary. Found header tag: 0x${i}.`)}async function I(r){if(r instanceof Uint8Array)return{buffer:r};if(typeof r!="string")throw new TypeError(`Font source must be a file path string or Uint8Array, received: ${typeof r}`);let t=r;if(t.startsWith("http://")||t.startsWith("https://")){let s=await fetch(t);if(!s.ok)throw new Error(`Failed to download font from "${t}": HTTP ${s.status} ${s.statusText}`);let c=await s.arrayBuffer();return{buffer:new Uint8Array(c),filePath:t}}if(t.startsWith("file://"))try{t=decodeURIComponent(new URL(t).pathname).replace(/^\/([A-Za-z]:)/,"$1")}catch{t=t.replace(/^file:\/\//,"")}let e=[t,g.resolve(y.cwd(),t),g.resolve(y.cwd(),"assets/fonts",t),g.resolve(y.cwd(),"assets/fonts",g.basename(t))],i=y.cwd();for(let s=0;s<5;s++){e.push(g.resolve(i,t)),e.push(g.resolve(i,"assets/fonts",g.basename(t)));let c=g.dirname(i);if(c===i)break;i=c}let a=null,l=null;for(let s of e)try{if((await P.stat(s)).isFile()){a=s,l=await P.readFile(s);break}}catch{}if(!a||!l)throw new Error(`Font file not found: "${r}". Checked candidate locations:
1
+ import{b as E,d as R,g as A,j as w,x as U}from"./chunk-64L4GUOF.mjs";import{m as P}from"./chunk-VEDMJBJV.mjs";import{o as g}from"./chunk-BDZ3TSOT.mjs";import{f as y,g as x}from"./chunk-Y4NIR77Z.mjs";x();x();var S=65536,$=1953658213,N=1954115633,k=1330926671,H=1953784678;function M(r,t){if(r.length<12)throw new Error(`Invalid font binary for "${t}": File size (${r.length} bytes) is too small to be a valid TrueType or OpenType font.`);let e=(r[0]??0)<<24|(r[1]??0)<<16|(r[2]??0)<<8|(r[3]??0);if(e===S||e===$||e===N||e===H)return"truetype";if(e===k)return"opentype";let i=(e>>>0).toString(16).padStart(8,"0");throw new Error(`Invalid font format for "${t}": Expected a valid TrueType (.ttf) or OpenType (.otf) font binary. Found header tag: 0x${i}.`)}async function I(r){if(r instanceof Uint8Array)return{buffer:r};if(typeof r!="string")throw new TypeError(`Font source must be a file path string or Uint8Array, received: ${typeof r}`);let t=r;if(t.startsWith("http://")||t.startsWith("https://")){let s=await fetch(t);if(!s.ok)throw new Error(`Failed to download font from "${t}": HTTP ${s.status} ${s.statusText}`);let c=await s.arrayBuffer();return{buffer:new Uint8Array(c),filePath:t}}if(t.startsWith("file://"))try{t=decodeURIComponent(new URL(t).pathname).replace(/^\/([A-Za-z]:)/,"$1")}catch{t=t.replace(/^file:\/\//,"")}let e=[t,g.resolve(y.cwd(),t),g.resolve(y.cwd(),"assets/fonts",t),g.resolve(y.cwd(),"assets/fonts",g.basename(t))],i=y.cwd();for(let s=0;s<5;s++){e.push(g.resolve(i,t)),e.push(g.resolve(i,"assets/fonts",g.basename(t)));let c=g.dirname(i);if(c===i)break;i=c}let a=null,l=null;for(let s of e)try{if((await P.stat(s)).isFile()){a=s,l=await P.readFile(s);break}}catch{}if(!a||!l)throw new Error(`Font file not found: "${r}". Checked candidate locations:
2
2
  - ${e.join(`
3
3
  - `)}`);return{buffer:new Uint8Array(l.buffer,l.byteOffset,l.byteLength),filePath:a}}var v=class r{static instance=null;fonts=new Map;constructor(){}static getInstance(){return r.instance||(r.instance=new r),r.instance}static async register(t,e){return r.getInstance().register(t,e)}static async registerEmojiFont(t){let{buffer:e,filePath:i}=await I(t);M(e,i??(typeof t=="string"?t:"Uint8Array")),w.setEmojiFont(e,i)}static hasEmojiFont(){return w.hasEmojiFont()}static measure(t,e){let i=e.fontSize??48,a=w.getFont(e.fontFamily,e.fontWeight,null,void 0,i);if(!a)throw new Error(`FontManager.measure: font "${e.fontFamily}" is not registered. Call \`await FontManager.register(...)\` first.`);let l=e.lineHeight!==void 0&&e.lineHeight<10?e.lineHeight*i:e.lineHeight??i*1.2,s=e.letterSpacing??0,{width:c,height:h,layout:m}=U.measure(t,a,i,s,l,e.width,void 0,e.direction),T=i/a.unitsPerEm,o=[],F=new Set,d=0;for(let n of m.glyphs){let f=n.textIndex;if(f===void 0){let u=t.indexOf(n.char,d);f=u>=0?u:d}if(F.has(f))continue;F.add(f),d=f+n.char.length;let p=n.clusterAdvance??n.cp.advanceWidth*(n.fontScale??T);o.push({char:n.char,index:f,x:n.clusterX??n.x,y:n.y,width:p+s,line:n.lineIndex,...n.rtl&&{rtl:!0}})}let b=n=>{if(n<=0||o.length===0){let u=o[0];return u?u.rtl?u.x+u.width-s:u.x:0}let f=o.filter(u=>u.index<n),p=f[f.length-1];return p?p.rtl?p.x:p.x+p.width-s:0};return{width:c,height:h,lines:m.linesCount,lineHeight:l,glyphs:o,caretX:b,widthOf:n=>b(n)-(o[0]?.x??0)}}static get(t){return r.getInstance().get(t)}static has(t){return r.getInstance().has(t)}static getAll(){return r.getInstance().getAll()}static getRegisteredFontPaths(){return r.getInstance().getRegisteredFontPaths()}static clear(){r.getInstance().clear()}async register(t,e){let i,a,l,s;if(typeof t=="object"&&t!==null)i=t.family,a=t.source,l=t.weight,s=t.style;else if(typeof t=="string"&&e!==void 0)i=t,a=e;else if(typeof t=="string")i=void 0,a=t;else throw new TypeError("Invalid arguments passed to FontManager.register");let{buffer:c,filePath:h}=await I(a),m=h??(typeof a=="string"?a:"Uint8Array"),T=M(c,m),o;try{let n=A(c);n&&"fonts"in n&&Array.isArray(n.fonts)&&n.fonts.length>0?o=n.fonts[0]:o=n}catch(n){let f=n instanceof Error?n.message:String(n);throw new Error(`Failed to parse TrueType/OpenType font binary for "${m}": ${f}`)}let F=o.familyName||o.postscriptName||g.parse(m).name,d=i?.trim()||F,b={family:d,source:a,filePath:h,format:T,postscriptName:o.postscriptName,unitsPerEm:o.unitsPerEm,weight:l,style:s};return this.fonts.set(d,b),R(d,h??a),h&&await E(d,h),w.setParsed(d,o),b}get(t){return this.fonts.get(t)}has(t){return this.fonts.has(t)}getAll(){return Array.from(this.fonts.values())}getRegisteredFontPaths(){let t=[];for(let e of this.fonts.values())e.filePath?t.push(e.filePath):typeof e.source=="string"&&t.push(e.source);return t}clear(){this.fonts.clear()}};export{v as a};
@@ -1,4 +1,4 @@
1
- import{a as m}from"./chunk-IB56SYTG.mjs";import{a as U,d as c,f as A,g as M,h as V,j as D,k as B,m as H}from"./chunk-54Q5CKSV.mjs";import{e as h}from"./chunk-GXFYRMJZ.mjs";import{g as P}from"./chunk-KOVN277Z.mjs";import{g as L}from"./chunk-Y4NIR77Z.mjs";L();L();var Q=`
1
+ import{a as m}from"./chunk-IB56SYTG.mjs";import{a as U,d as c,f as A,g as M,h as V,k as D,l as B,n as H}from"./chunk-3QTHW2CD.mjs";import{e as h}from"./chunk-GXFYRMJZ.mjs";import{g as P}from"./chunk-77MT33VR.mjs";import{g as L}from"./chunk-Y4NIR77Z.mjs";L();L();var Q=`
2
2
  struct LutUniforms {
3
3
  intensity : f32,
4
4
  lutSize : f32,
@@ -1,4 +1,4 @@
1
- import{a as w,d as m,g as y,h as b,j as v,m as x}from"./chunk-54Q5CKSV.mjs";import{g}from"./chunk-KOVN277Z.mjs";import{g as s}from"./chunk-Y4NIR77Z.mjs";s();s();var j=new WeakMap,P=`
1
+ import{a as w,d as m,g as y,h as b,k as v,n as x}from"./chunk-3QTHW2CD.mjs";import{g}from"./chunk-77MT33VR.mjs";import{g as s}from"./chunk-Y4NIR77Z.mjs";s();s();var j=new WeakMap,P=`
2
2
  struct SelectiveColorUniforms {
3
3
  reds : vec4<f32>,
4
4
  yellows : vec4<f32>,
@@ -1,4 +1,4 @@
1
- import{a as F}from"./chunk-2GA735OZ.mjs";import{b as I,c as B}from"./chunk-3DXMWDQ3.mjs";import{a as L,d as y,g as N,h as V,j as D,m as k}from"./chunk-54Q5CKSV.mjs";import{a as p}from"./chunk-6FULVULN.mjs";import{e as b}from"./chunk-32WC4FRR.mjs";import{g as U}from"./chunk-KOVN277Z.mjs";import{g as c}from"./chunk-Y4NIR77Z.mjs";c();c();c();var C=new Map;function _(e){let t=C.get(e);return t||(t=(async()=>{try{let r=await b.acquire(e);try{let o=await r.getPrimaryVideoTrack();return o?{width:o.displayWidth,height:o.displayHeight}:null}finally{b.release(e)}}catch{return null}})(),C.set(e,t)),t}c();var J=F().field("angle",p.number().default(90),{bindable:!0,dataTypes:["Number","Signal"],label:"Angle Signal",description:"Rotation in degrees about the frame center, clockwise. Any value; 90 / 180 / 270 fix footage shot sideways or upside down."}).field("fit",p.enum(["cover","contain","fill"]).default("cover"),{description:"How the rotated source sits in the output: cover fills it (cropping the overhang), contain shows all of it (transparent margins), fill keeps the unrotated source stretched to the output and only turns it."}).field("scale",p.number().min(.01).max(20).default(1),{bindable:!0,dataTypes:["Number","Signal"],label:"Scale Signal",description:"Extra zoom applied after the fit (1 = exactly fitted)."}).build(),ie=J.schema,ae=p.union([I,B]);function A(e,t,r,o,i,a){if(a==="fill")return{width:r,height:o};let d=i*Math.PI/180,n=Math.abs(Math.cos(d)),u=Math.abs(Math.sin(d)),s=a==="cover"?Math.max((n*r+u*o)/e,(u*r+n*o)/t):Math.min(r/(n*e+u*t),o/(u*e+n*t));return{width:e*s,height:t*s}}var K=`
1
+ import{a as F}from"./chunk-2GA735OZ.mjs";import{b as I,c as B}from"./chunk-3DXMWDQ3.mjs";import{a as L,d as y,g as N,h as V,k as D,n as k}from"./chunk-3QTHW2CD.mjs";import{a as p}from"./chunk-6FULVULN.mjs";import{e as b}from"./chunk-32WC4FRR.mjs";import{g as U}from"./chunk-77MT33VR.mjs";import{g as c}from"./chunk-Y4NIR77Z.mjs";c();c();c();var C=new Map;function _(e){let t=C.get(e);return t||(t=(async()=>{try{let r=await b.acquire(e);try{let o=await r.getPrimaryVideoTrack();return o?{width:o.displayWidth,height:o.displayHeight}:null}finally{b.release(e)}}catch{return null}})(),C.set(e,t)),t}c();var J=F().field("angle",p.number().default(90),{bindable:!0,dataTypes:["Number","Signal"],label:"Angle Signal",description:"Rotation in degrees about the frame center, clockwise. Any value; 90 / 180 / 270 fix footage shot sideways or upside down."}).field("fit",p.enum(["cover","contain","fill"]).default("cover"),{description:"How the rotated source sits in the output: cover fills it (cropping the overhang), contain shows all of it (transparent margins), fill keeps the unrotated source stretched to the output and only turns it."}).field("scale",p.number().min(.01).max(20).default(1),{bindable:!0,dataTypes:["Number","Signal"],label:"Scale Signal",description:"Extra zoom applied after the fit (1 = exactly fitted)."}).build(),ie=J.schema,ae=p.union([I,B]);function A(e,t,r,o,i,a){if(a==="fill")return{width:r,height:o};let d=i*Math.PI/180,n=Math.abs(Math.cos(d)),u=Math.abs(Math.sin(d)),s=a==="cover"?Math.max((n*r+u*o)/e,(u*r+n*o)/t):Math.min(r/(n*e+u*t),o/(u*e+n*t));return{width:e*s,height:t*s}}var K=`
2
2
  struct RotateUniforms {
3
3
  outSize: vec2<f32>,
4
4
  size : vec2<f32>,
@@ -1,4 +1,4 @@
1
- import{a as v,c as _,d,g as w,h as G,j as b,m as T}from"./chunk-54Q5CKSV.mjs";import{a as g,g as h}from"./chunk-KOVN277Z.mjs";import{g as u}from"./chunk-Y4NIR77Z.mjs";u();u();u();function N(){return[{x:0,y:0},{x:100,y:0},{x:0,y:100},{x:100,y:100}]}function L(e){let r=e&&e.length===4?e:N();return g(r.map(t=>({x:t.x/100,y:t.y/100})))}var z=`
1
+ import{a as v,c as _,d,g as w,h as G,k as b,n as T}from"./chunk-3QTHW2CD.mjs";import{a as g,g as h}from"./chunk-77MT33VR.mjs";import{g as u}from"./chunk-Y4NIR77Z.mjs";u();u();u();function N(){return[{x:0,y:0},{x:100,y:0},{x:0,y:100},{x:100,y:100}]}function L(e){let r=e&&e.length===4?e:N();return g(r.map(t=>({x:t.x/100,y:t.y/100})))}var z=`
2
2
  struct CornerPinUniforms {
3
3
  matrix_row0 : vec4<f32>,
4
4
  matrix_row1 : vec4<f32>,
@@ -0,0 +1,138 @@
1
+ import{a as cn}from"./chunk-BREZX5L5.mjs";import{a as Oe}from"./chunk-EAHJZDOJ.mjs";import{a as st}from"./chunk-6ISHV73H.mjs";import{b as Ae,c as it,d as Fe,e as fe,g as ae,h as pe,m as at}from"./chunk-PIHG6HJO.mjs";import{G as Je}from"./chunk-GH77FX2Y.mjs";import{a as _,b as L}from"./chunk-6FULVULN.mjs";import{b as Qe,h as de,i as Ce,m as W}from"./chunk-ULOFDFHJ.mjs";import{a as nt,e as rt,i as Re,j as ot}from"./chunk-VEDMJBJV.mjs";import{b as ue,c as et,e as tt,t as an}from"./chunk-QEWDIPJ7.mjs";import{d as Ee,e as me,g as Le}from"./chunk-BDZ3TSOT.mjs";import{d as sn,f as A,g as b}from"./chunk-Y4NIR77Z.mjs";b();var ct=class{domain="visual";signals;config;_frameHooks=[];constructor(e){this.config={...e},this.signals={};for(let[t,n]of Object.entries(e))de(n)?this.signals[t]=n:this.signals[t]=Ce(n);return new Proxy(this,{get(t,n,o){if(typeof n=="string"&&n in t.signals){let i=t.signals[n];return i?i.value:void 0}return Reflect.get(t,n,o)},set(t,n,o,i){if(typeof n=="string"&&n in t.signals){let s=t.signals[n];return de(o)?(t.signals[n]=o,t.config[n]=o):s&&typeof s.set=="function"?(s.set(o),t.config[n]=o):(t.signals[n]=Ce(o),t.config[n]=o),!0}return Reflect.set(t,n,o,i)}})}onRequestFrame(e){return this._frameHooks.push(e),this}notifyFrame(e){for(let t of this._frameHooks)t(e)}resolveUniforms(e){let t={};for(let[n,o]of Object.entries(this.signals))t[n]=o.get(e);return t}resolveTextures(){let e={};for(let[t,n]of Object.entries(this.signals)){let o=n.gpuBinding;o?.textureView&&(e[`${t}TextureView`]=o.textureView),o?.texture&&(e[`${t}Texture`]=o.texture)}return e}toOperation(){let e={op:this.op,effect:this,onRequestFrame:t=>this.notifyFrame(t),signals:this.signals,...this.config};for(let[t,n]of Object.entries(this.signals)){let o=this.config[t];!de(o)&&(typeof o=="string"||typeof o=="boolean")?e[t]=n.value:e[t]=n}return e}};b();var lt=class extends Error{constructor(e){super(e),this.name="ModerationError"}},dt=class extends Error{constructor(e){super(e),this.name="ModerationUnrefundableError"}};b();function Jn(r,e){if(ut(e),!Number.isFinite(r)||r<=0)throw new Error("durationMs must be finite and positive");let t=Math.max(1,Math.round(r/1e3*e));if(!Number.isSafeInteger(t))throw new Error("Duration exceeds the safe frame range");return t}function ut(r){if(!Number.isFinite(r)||r<=0)throw new Error(`Invalid fps: ${r}. Must be finite and > 0.`)}function er(r,e){if(ut(e),r.atMs!==void 0&&(!Number.isFinite(r.atMs)||r.atMs<0))throw new Error("atMs must be finite and nonnegative");let t=r.atMs!==void 0?Math.round(r.atMs/1e3*e):r.frame??0;if(!Number.isSafeInteger(t)||t<0)throw new Error(`Invalid frame index: ${t}. Must be a nonnegative safe integer.`);let n=t/e*1e3;if(!Number.isFinite(n))throw new Error("Frame timestamp exceeds the finite range");return{frame:t,timeMs:n}}b();b();b();var mt="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var ft=(r=21)=>{let e="",t=crypto.getRandomValues(new Uint8Array(r|=0));for(;r--;)e+=mt[t[r]&63];return e};var lr=r=>ft(r);b();var pt=L.object({dataTypes:L.custom(),label:L.string(),required:L.boolean().optional(),order:L.number(),description:L.string().optional()}),ln=L.object({configKey:L.string(),dataTypes:L.custom(),label:L.string(),description:L.string().optional()}),fr=L.object({type:L.string().min(1),version:L.number().int().positive().optional(),baseType:L.string().optional(),displayName:L.string().min(1),description:L.string().optional(),showInQuickAccess:L.boolean().optional(),showInSidebar:L.boolean().optional(),advanced:L.boolean().optional(),category:L.string().min(1),subcategory:L.string().optional(),defaultDimensions:L.object({width:L.number().positive().optional(),height:L.number().positive().optional()}).optional(),handles:L.object({inputs:L.array(pt),outputs:L.array(pt)}),variableInputs:L.discriminatedUnion("enabled",[L.object({enabled:L.literal(!0),dataTypes:L.custom()}),L.object({enabled:L.literal(!1),dataTypes:L.custom().optional()})]).optional(),variableOutputs:L.discriminatedUnion("enabled",[L.object({enabled:L.literal(!0),dataTypes:L.custom()}),L.object({enabled:L.literal(!1),dataTypes:L.custom().optional()})]).optional(),isTerminal:L.boolean().optional(),isTransient:L.boolean().optional(),configSchema:L.custom().optional(),defaultConfig:L.record(L.string(),L.unknown()).optional(),validation:L.any().optional(),resultSchema:L.custom().optional(),configHandles:L.array(ln).optional()});b();function gr(r){if(!Number.isFinite(r)||!Number.isInteger(r)||r<0)throw new RangeError(`FrameIndex must be a non-negative finite integer, got ${r}`);return r}function br(r){if(!Number.isFinite(r))throw new TypeError(`Seconds must be a finite number, got ${r}`);return r}function yr(r){if(!Number.isFinite(r))throw new TypeError(`Milliseconds must be a finite number, got ${r}`);return r}function xr(r){if(!Number.isFinite(r)||r<=0)throw new RangeError(`Fps must be a positive finite number, got ${r}`);return r}function kr(r){if(!Number.isFinite(r))throw new TypeError(`Normalized must be a finite number, got ${r}`);return Math.max(0,Math.min(1,r))}function Sr(r){if(!Number.isFinite(r))throw new TypeError(`Degrees must be a finite number, got ${r}`);return r}function _r(r){if(!Number.isFinite(r))throw new TypeError(`Radians must be a finite number, got ${r}`);return r}function Tr(r){if(!Number.isFinite(r))throw new TypeError(`Pixels must be a finite number, got ${r}`);return r}function wr(r){if(!r)throw new TypeError("HandleId cannot be empty");return r}function vr(r){if(!r)throw new TypeError("HandleLabel cannot be empty");return r}function Mr(r){if(!r)throw new TypeError("NodeId cannot be empty");return r}function Pr(r){return typeof r=="number"&&Number.isInteger(r)&&r>=0}function Ir(r){return typeof r=="number"&&Number.isFinite(r)&&r>=0&&r<=1}b();var Rr={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"}};b();var Fr={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"},Vr={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"},dn=["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"],gt=_.enum(dn),ht=class r{static schemas=new Map;static register(e,t){r.schemas.set(e,t)}static get(e){return r.schemas.get(e)}static clear(){r.schemas.clear()}};b();var Br={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};b();var un=_.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"]),mn=_.object({id:_.string(),type:un,value:_.number()}),fn=_.object({x:_.number().default(0),y:_.number().default(0),width:_.number().optional(),height:_.number().optional(),rotation:_.number().default(0),scale:_.number().min(0).default(1),opacity:_.number().min(0).max(1).default(1),zIndex:_.number().int().optional(),blendMode:gt.optional()}),pn=_.object({startFrame:_.number().int().min(0).default(0),durationInMS:_.number().int().min(1).optional(),trimStart:_.number().int().min(0).optional(),trimEnd:_.number().int().min(0).optional(),speed:_.number().min(.25).max(4).optional()}),hn=_.object({text:_.string().optional(),fontSize:_.number().optional(),fontFamily:_.string().optional(),fontStyle:_.string().optional(),fontWeight:_.union([_.number(),_.string()]).optional(),fill:_.string().optional(),align:_.string().optional(),direction:_.enum(["ltr","rtl","auto"]).optional(),verticalAlign:_.string().optional(),letterSpacing:_.number().optional(),lineHeight:_.number().optional(),padding:_.number().optional(),stroke:_.string().optional(),strokeWidth:_.number().optional(),strokeAlign:_.enum(["inside","center","outside"]).optional(),textShadow:_.string().optional(),textBackgroundColor:_.string().optional(),shadows:_.array(_.object({color:_.string(),offset:_.object({x:_.number(),y:_.number()}).optional(),blurRadius:_.number().optional()})).optional(),textAnimation:_.any().optional(),bottomPadding:_.number().optional(),maxWidth:_.number().optional()}),gn=_.object({backgroundColor:_.string().optional(),borderColor:_.string().optional(),borderWidth:_.number().optional(),strokeRadius:_.number().optional(),autoDimensions:_.boolean().optional()}),Ve=_.enum(["Video","Image","Audio","Text","Caption","SVG","GIF","Lottie"]),bt=fn.merge(pn).merge(hn).merge(gn).extend({type:Ve.optional(),animations:_.array(mn).optional()});b();var bn=_.enum(["none","crossfade","wipe-left","wipe-right","slide-up","slide-down"]),De=_.object({type:bn,durationFrames:_.number().min(1)});b();var Jr=bt.extend({id:_.string(),name:_.string().optional(),type:Ve,virtualMedia:Je.optional(),transitionIn:De.optional(),transitionOut:De.optional(),durationInMS:_.number(),maxDurationInMS:_.number().optional(),src:_.string().optional(),volume:_.number().default(1),inputHandleId:_.string().optional(),isPlaceholder:_.boolean().optional(),lockAspect:_.boolean().optional(),lockRatio:_.boolean().optional(),zIndex:_.number().optional()}).strict();b();function yt(r,e){if(r===e||typeof r=="number"&&typeof e=="number"&&Number.isNaN(r)&&Number.isNaN(e))return!0;if(r&&e&&typeof r=="object"&&typeof e=="object"){if(r.constructor!==e.constructor)return!1;if(Array.isArray(r)){if(r.length!==e.length)return!1;for(let n=0;n<r.length;n++)if(!yt(r[n],e[n]))return!1;return!0}if(r instanceof Date)return r.getTime()===e.getTime();if(r instanceof RegExp)return r.toString()===e.toString();let t=Object.keys(r);if(t.length!==Object.keys(e).length)return!1;for(let n of t)if(!Object.hasOwn(e,n)||!yt(r[n],e[n]))return!1;return!0}return!1}b();function so(r,e){if(!r?.sourceFingerprint)return null;let t=Oe(e);return r.sourceFingerprint!==t?null:r}function io(r,e){return{...r,sourceFingerprint:Oe(e)}}b();function lo(r){try{let t=r.toString("utf-8").match(/<svg[^>]*>/i);if(!t)return null;let n=t[0],o=a=>{let u=n.match(new RegExp(`${a}=["']([^"']+)["']`,"i"));if(!u)return null;let c=parseFloat(u[1].replace(/[a-z%]/gi,""));return isNaN(c)?null:c},i=o("width"),s=o("height"),d=n.match(/viewBox=["']([^"']+)["']/i);if(d){let a=d[1].split(/[\s,]+/).map(parseFloat);if(a.length>=4&&!isNaN(a[2])&&!isNaN(a[3])){let u=a[2],c=a[3];i==null&&s==null?(i=u,s=c):i!=null&&s==null?s=i*(c/u):s!=null&&i==null&&(i=s*(u/c))}}return i!=null&&s!=null&&i>0&&s>0?{w:i,h:s}:null}catch(e){return console.error("Error parsing SVG dimensions",e),null}}b();var te=(r,e,t)=>`https://huggingface.co/${r}/resolve/${e}/${t}`,je="tori29umai/rtmdet-ins-onnx-person-masks",Be="e5218e8d47d7c50077f27f9893a28e0ef2ad5656",He="RTMDet-Ins (OpenMMLab mmdetection, Apache-2.0), mmdeploy ONNX export",Ne="RTMO (OpenMMLab mmpose, Apache-2.0), ONNX export",xt="MediaPipe Selfie Segmenter (Google, Apache-2.0), ONNX export",yn="Depth Anything V2 Small (TikTok / HKU, Apache-2.0), ONNX export",kt={"rtmdet-ins-t":{key:"rtmdet-ins-t",family:"rtmdet-ins",filename:"rtmdet-ins-t.onnx",url:te(je,Be,"models/tiny/rtmdet-ins_tiny_640x640.onnx"),bytes:24032356,sha256:"99ee670820c4493aa13e20578b6a8e39781c319846dc41796a77765734beac5c",input:[640,640],source:He},"rtmdet-ins-s":{key:"rtmdet-ins-s",family:"rtmdet-ins",filename:"rtmdet-ins-s.onnx",url:te(je,Be,"models/s/rtmdet-ins_s_640x640.onnx"),bytes:43236976,sha256:"9cd1787fbf3eb2bd64cc2d8154f41c036f5484b85599e1cbe0227a2dc5a4a08b",input:[640,640],source:He},"rtmdet-ins-m":{key:"rtmdet-ins-m",family:"rtmdet-ins",filename:"rtmdet-ins-m.onnx",url:te(je,Be,"models/m/rtmdet-ins_m_640x640.onnx"),bytes:115735979,sha256:"a003bce80316e03467c2c2b483df2d5c0398220c2357a44f9bf985929f7eb052",input:[640,640],source:He},"rtmo-t":{key:"rtmo-t",family:"rtmo",filename:"rtmo-t.onnx",url:te("Xenova/RTMO-t","f29d13ce5ee291fbe505e9d06a049992f05699dc","onnx/model.onnx"),bytes:27360569,sha256:"cb54dd042bf997df86d938721c94238940f2bff98ba8d2ccc834430de5c65c13",input:[416,416],source:Ne},"rtmo-s":{key:"rtmo-s",family:"rtmo",filename:"rtmo-s.onnx",url:te("Xenova/RTMO-s","d8c526187f341d287753831c9c8b1ecc4855bba1","onnx/model.onnx"),bytes:39636400,sha256:"1cd6a3517658903233e9ccb78666554862f57f0944b6886e2048093594aef4e7",input:[640,640],source:Ne},"rtmo-m":{key:"rtmo-m",family:"rtmo",filename:"rtmo-m.onnx",url:te("Xenova/RTMO-m","3aba1280472b98ee2bf663482e27e243038d23fe","onnx/model.onnx"),bytes:89291929,sha256:"76d82c45e5c4810baf587ecf2638d15cbf7ed196afb2055e977382532021b59e",input:[640,640],source:Ne},"selfie-square":{key:"selfie-square",family:"selfie",filename:"selfie-square.onnx",url:te("onnx-community/mediapipe_selfie_segmentation","be49485c8e027524be38591817fc5cd31bd9d00e","onnx/model.onnx"),bytes:462352,sha256:"3241ac4ad8aa35bdaf33946776db29f7c283a413aa0b0dacb9483594b4531aad",input:[256,256],source:xt},"selfie-landscape":{key:"selfie-landscape",family:"selfie",filename:"selfie-landscape.onnx",url:te("onnx-community/mediapipe_selfie_segmentation_landscape","2497d5bec26c626c7b3c4edc6e1fefc21b64f6c3","onnx/model.onnx"),bytes:462338,sha256:"7a0adcfdb1715d3b0ff0f61486d8a181c33f4a208343a5abfccbc6540e872d24",input:[256,144],source:xt},"depth-anything-v2-s":{key:"depth-anything-v2-s",family:"depth-anything",filename:"depth-anything-v2-s.onnx",url:te("onnx-community/depth-anything-v2-small","4472b7362082ad9968fee890ca0f1e5aca36b93d","onnx/model.onnx"),bytes:99060839,sha256:"afb6a5c28f3b6bf1618c6e43f02073ef9dfdc70e937502d51603e57b0a1df10c",input:[518,518],source:yn}},q=kt;function fo(r){kt[r.key]=r}function St(r,e="s",t=1){return r==="pose"?`rtmo-${e}`:r==="matte"?t>1.3?"selfie-landscape":"selfie-square":`rtmdet-ins-${e}`}var he=["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"];b();function re(r,e){let t=Math.max(r.originX,e.originX),n=Math.max(r.originY,e.originY),o=Math.min(r.originX+r.width,e.originX+e.width),i=Math.min(r.originY+r.height,e.originY+e.height),s=Math.max(0,o-t),d=Math.max(0,i-n),a=s*d;if(a<=0)return 0;let u=r.width*r.height,c=e.width*e.height,l=u+c-a;return l>0?a/l:0}var ge=class{_nextTrackId=1;_tracks=[];_iouThreshold;_maxMissedFrames;_minHits;_positionSmoothing;_activeDuringCoast;constructor(e={}){this._iouThreshold=e.iouThreshold??.25,this._maxMissedFrames=e.maxMissedFrames??15,this._minHits=e.minHits??1,this._positionSmoothing=Math.max(.1,Math.min(1,e.positionSmoothing??.75)),this._activeDuringCoast=e.activeDuringCoast!==!1}update(e,t,n=24){let o=n>0?1/n:.0416;for(let a of this._tracks)if(a.age++,a.timeSinceUpdate++,a.timeSinceUpdate>0){let u=a.centerX+a.vx*o,c=a.centerY+a.vy*o;a.centerX=u,a.centerY=c;let l=a.box.width,h=a.box.height,g=a.box.normalizedWidth,y=a.box.normalizedHeight,O=a.box.normalizedX+g/2+a.vx*o/Math.max(1,a.box.width/g),R=a.box.normalizedY+y/2+a.vy*o/Math.max(1,a.box.height/y);a.box={originX:u-l/2,originY:c-h/2,width:l,height:h,normalizedX:O-g/2,normalizedY:R-y/2,normalizedWidth:g,normalizedHeight:y},a.vx*=.92,a.vy*=.92,a.isCoasting=!0}let i=new Set,s=new Set,d=[];for(let a=0;a<this._tracks.length;a++){let u=this._tracks[a];for(let c=0;c<e.length;c++){let l=e[c];if(u.category!==l.category)continue;let h=re(u.box,l.boundingBox);h>=this._iouThreshold&&d.push({trackIdx:a,detIdx:c,iou:h})}}d.sort((a,u)=>u.iou-a.iou);for(let a of d){if(s.has(a.trackIdx)||i.has(a.detIdx))continue;s.add(a.trackIdx),i.add(a.detIdx);let u=this._tracks[a.trackIdx],c=e[a.detIdx],l=c.boundingBox,h=l.originX+l.width/2,g=l.originY+l.height/2,y=(h-u.centerX)/o,O=(g-u.centerY)/o;u.vx=u.vx*.4+y*.6,u.vy=u.vy*.4+O*.6;let R=this._positionSmoothing,x=u.box.width*(1-R)+l.width*R,v=u.box.height*(1-R)+l.height*R,E=u.centerX*(1-R)+h*R,F=u.centerY*(1-R)+g*R;u.centerX=E,u.centerY=F,u.score=c.score,u.timeSinceUpdate=0,u.hits++,u.isCoasting=!1,u.hits>=this._minHits&&(u.active=!0),u.box={originX:E-x/2,originY:F-v/2,width:x,height:v,normalizedX:l.normalizedX,normalizedY:l.normalizedY,normalizedWidth:l.normalizedWidth,normalizedHeight:l.normalizedHeight}}for(let a=0;a<e.length;a++){if(i.has(a))continue;let u=e[a],c=u.boundingBox,l=c.originX+c.width/2,h=c.originY+c.height/2;this._tracks.push({trackId:this._nextTrackId++,category:u.category,score:u.score,box:c,centerX:l,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 u=a.box.normalizedWidth,c=a.box.normalizedHeight,l=a.box.normalizedX+u/2,h=a.box.normalizedY+c/2,g=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:l,normalizedCenterY:h,velocity:{vx:a.vx,vy:a.vy},speed:g,age:a.age,hits:a.hits,active:this._activeDuringCoast?!0:a.timeSinceUpdate===0,isCoasting:a.isCoasting}})}trackSequence(e,t,n=24){this.reset();let o=n>0?1/n:.0416,i=new Map;for(let a=0;a<t;a++){let u=e[a]??[],c=this.update(u,a,n);for(let l of c)i.has(l.trackId)||i.set(l.trackId,{category:l.category,observations:[]}),l.isCoasting||i.get(l.trackId).observations.push({frame:a,box:l.boundingBox,score:l.score})}let s=new Map;for(let[a,u]of i.entries()){let c=u.observations;if(c.length===0)continue;c.sort((x,v)=>x.frame-v.frame);let l=new Array(t).fill(null);for(let x of c)l[x.frame]={box:x.box,score:x.score};let h=c[0];for(let x=0;x<h.frame;x++)l[x]={box:{...h.box},score:h.score*.9};for(let x=0;x<c.length-1;x++){let v=c[x],E=c[x+1],F=E.frame-v.frame;if(!(F<=1))for(let m=v.frame+1;m<E.frame;m++){let p=(m-v.frame)/F,P=v.box.originX+(E.box.originX-v.box.originX)*p,M=v.box.originY+(E.box.originY-v.box.originY)*p,T=v.box.width+(E.box.width-v.box.width)*p,w=v.box.height+(E.box.height-v.box.height)*p,V=v.box.normalizedX+(E.box.normalizedX-v.box.normalizedX)*p,I=v.box.normalizedY+(E.box.normalizedY-v.box.normalizedY)*p,k=v.box.normalizedWidth+(E.box.normalizedWidth-v.box.normalizedWidth)*p,f=v.box.normalizedHeight+(E.box.normalizedHeight-v.box.normalizedHeight)*p;l[m]={box:{originX:P,originY:M,width:T,height:w,normalizedX:V,normalizedY:I,normalizedWidth:k,normalizedHeight:f},score:v.score*(1-p)+E.score*p}}}let g=c[c.length-1];for(let x=g.frame+1;x<t;x++)l[x]={box:{...g.box},score:g.score*.9};let y=[],O=2,R=[.06136,.24477,.38774,.24477,.06136];for(let x=0;x<t;x++){let v=0,E=0,F=0,m=0,p=0,P=0,M=0,T=0,w=0,V=0;for(let k=-O;k<=O;k++){let f=Math.max(0,Math.min(t-1,x+k)),C=l[f];if(C){let N=R[k+O];v+=N,E+=C.box.originX*N,F+=C.box.originY*N,m+=C.box.width*N,p+=C.box.height*N,P+=C.box.normalizedX*N,M+=C.box.normalizedY*N,T+=C.box.normalizedWidth*N,w+=C.box.normalizedHeight*N,V+=C.score*N}}let I=v>0?1/v:1;y.push({box:{originX:E*I,originY:F*I,width:m*I,height:p*I,normalizedX:P*I,normalizedY:M*I,normalizedWidth:T*I,normalizedHeight:w*I},score:V*I})}s.set(a,{category:u.category,frames:y})}let d=[];for(let a=0;a<t;a++){let u=[];for(let[c,l]of s.entries()){let h=l.frames[a];if(!h)continue;let g=l.frames[Math.max(0,a-1)]??h,y=l.frames[Math.min(t-1,a+1)]??h,O=h.box.originX+h.box.width/2,R=h.box.originY+h.box.height/2,x=g.box.originX+g.box.width/2,v=g.box.originY+g.box.height/2,E=y.box.originX+y.box.width/2,F=y.box.originY+y.box.height/2,m=a===0||a===t-1?o:2*o,p=(E-x)/m,P=(F-v)/m,M=Math.sqrt(p*p+P*P),T=h.box.normalizedWidth,w=h.box.normalizedHeight;u.push({trackId:c,category:l.category,score:h.score,boundingBox:h.box,centerX:O,centerY:R,normalizedCenterX:h.box.normalizedX+T/2,normalizedCenterY:h.box.normalizedY+w/2,velocity:{vx:p,vy:P},speed:M,age:a+1,hits:10,active:!0,isCoasting:!1})}d.push(u)}return d}reset(){this._tracks=[],this._nextTrackId=1}};b();var _t=()=>typeof performance<"u"&&typeof performance.now=="function"?performance.now():Date.now();async function ko(r,e){let{runner:t}=e,n=e.fps??24,o=e.tasks&&e.tasks.length>0?e.tasks:["detect"],i=new Set(o),s=e.categories?new Set(e.categories.map(k=>k.toLowerCase())):null,d=e.includeMasks===!0&&i.has("segment"),a=i.has("detect")||i.has("segment"),u=[],c={},l=new Map,h=0,g=0,y=k=>!s||s.has(k.toLowerCase()),O=async(k,f,C)=>{let N=t.modelKeyFor(k,f.width/f.height),B=t.downloadStatus.get(N)==="ready",j=_t(),D=await C(),X=_t()-j;return h+=X,!B&&!c[N]&&(c[N]={bytes:q[N].bytes,ms:X}),D},R=k=>{for(let f of k){if(!y(f.category))continue;let C=l.get(f.category)??{sum:0,count:0};C.sum+=f.coverage,C.count++,l.set(f.category,C)}};for await(let k of r){let f=[];if(d){let C=await O("segment",k,()=>t.segment(k));R(C.masks),f=C.detections}else a&&(f=await O("detect",k,()=>t.detect(k)));i.has("pose")&&await O("pose",k,()=>t.pose(k)),i.has("matte")&&await O("matte",k,()=>t.matte(k)),u.push(s?f.filter(C=>y(C.category)):f),g++}let x=g,E=new ge({iouThreshold:e.iouThreshold??.25,maxMissedFrames:e.maxMissedFrames??15}).trackSequence(u,x,n),F=e.pathStride??Math.max(1,Math.ceil(x/50)),m=new Map,p=new Map,P=new Map,M=new Map,T=(k,f,C)=>{let N=k.get(f);return N===void 0&&(N=C(),k.set(f,N)),N};for(let k=0;k<x;k++)for(let f of E[k]??[]){if(!y(f.category))continue;let C=m.get(f.trackId);C||(C={category:f.category,firstFrame:k,lastFrame:k,speedSum:0,speedCount:0,centers:[]},m.set(f.trackId,C)),C.lastFrame=k,Number.isFinite(f.speed)&&(C.speedSum+=f.speed,C.speedCount++),(k-C.firstFrame)%F===0&&C.centers.push({frame:k,x:f.centerX,y:f.centerY}),T(p,f.category,()=>new Set).add(k),P.set(f.category,Math.max(P.get(f.category)??0,f.score)),T(M,f.category,()=>new Set).add(f.trackId)}let w=Array.from(m.entries()).map(([k,f])=>({trackId:k,category:f.category,frames:[f.firstFrame,f.lastFrame],speedMeanPxS:f.speedCount>0?f.speedSum/f.speedCount:0,centerPath:f.centers.map(C=>[C.x,C.y])})).sort((k,f)=>k.trackId-f.trackId),V={};for(let[k,f]of p)V[k]={framesPresent:f.size,totalFrames:x,maxConfidence:P.get(k)??0,tracks:M.get(k)?.size??0};let I={};for(let[k,f]of l)I[k]={meanCoverage:f.count>0?f.sum/f.count:0};return{source:e.source??"frames",totalFrames:x,fps:n,durationSec:n>0?x/n:0,tasks:Array.from(i),modelDownloads:c,inferenceMs:h,trackCount:w.length,classes:V,tracks:w,masks:I}}b();var S={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},ze=["nose","leftEye","rightEye","leftEar","rightEar","leftShoulder","rightShoulder","leftElbow","rightElbow","leftWrist","rightWrist","leftHip","rightHip","leftKnee","rightKnee","leftAnkle","rightAnkle"],Tt=[{from:S.NOSE,to:S.LEFT_SHOULDER,color:[0,1,1,1]},{from:S.NOSE,to:S.RIGHT_SHOULDER,color:[0,1,1,1]},{from:S.LEFT_SHOULDER,to:S.RIGHT_SHOULDER,color:[1,0,0,1]},{from:S.LEFT_SHOULDER,to:S.LEFT_ELBOW,color:[1,.333,0,1]},{from:S.LEFT_ELBOW,to:S.LEFT_WRIST,color:[1,.667,0,1]},{from:S.RIGHT_SHOULDER,to:S.RIGHT_ELBOW,color:[1,1,0,1]},{from:S.RIGHT_ELBOW,to:S.RIGHT_WRIST,color:[.667,1,0,1]},{from:S.LEFT_SHOULDER,to:S.LEFT_HIP,color:[.333,1,0,1]},{from:S.RIGHT_SHOULDER,to:S.RIGHT_HIP,color:[0,1,0,1]},{from:S.LEFT_HIP,to:S.RIGHT_HIP,color:[0,1,.333,1]},{from:S.LEFT_HIP,to:S.LEFT_KNEE,color:[0,1,.667,1]},{from:S.LEFT_KNEE,to:S.LEFT_ANKLE,color:[0,1,1,1]},{from:S.RIGHT_HIP,to:S.RIGHT_KNEE,color:[0,.667,1,1]},{from:S.RIGHT_KNEE,to:S.RIGHT_ANKLE,color:[0,.333,1,1]}];b();b();b();var wt=`
2
+ struct Bone {
3
+ start: vec2<f32>,
4
+ end: vec2<f32>,
5
+ color: vec4<f32>,
6
+ radius: f32,
7
+ enabled: f32,
8
+ pad: vec2<f32>,
9
+ };
10
+
11
+ struct SkeletonParams {
12
+ width: u32,
13
+ height: u32,
14
+ numBones: u32,
15
+ pad: u32,
16
+ bones: array<Bone, 24>,
17
+ };
18
+
19
+ @group(0) @binding(0) var outputTex: texture_storage_2d<rgba8unorm, write>;
20
+ @group(0) @binding(1) var<uniform> params: SkeletonParams;
21
+
22
+ @compute @workgroup_size(16, 16)
23
+ fn computePoseSkeleton(@builtin(global_invocation_id) id: vec3<u32>) {
24
+ if (id.x >= params.width || id.y >= params.height) {
25
+ return;
26
+ }
27
+
28
+ let p = vec2<f32>(f32(id.x) + 0.5, f32(id.y) + 0.5);
29
+ var outColor = vec4<f32>(0.0, 0.0, 0.0, 0.0);
30
+
31
+ let count = min(params.numBones, 24u);
32
+ for (var i = 0u; i < count; i = i + 1u) {
33
+ let bone = params.bones[i];
34
+ if (bone.enabled < 0.5) {
35
+ continue;
36
+ }
37
+
38
+ let ab = bone.end - bone.start;
39
+ let ap = p - bone.start;
40
+ let l2 = dot(ab, ab);
41
+
42
+ var t: f32 = 0.0;
43
+ if (l2 > 0.0001) {
44
+ t = clamp(dot(ap, ab) / l2, 0.0, 1.0);
45
+ }
46
+
47
+ let closest = bone.start + t * ab;
48
+ let dist = length(p - closest);
49
+
50
+ if (dist <= bone.radius) {
51
+ // Sub-pixel edge antialiasing
52
+ let edgeAlpha = clamp(bone.radius - dist + 0.5, 0.0, 1.0);
53
+ let a = edgeAlpha * bone.color.a;
54
+ outColor = vec4<f32>(mix(outColor.rgb, bone.color.rgb, a), max(outColor.a, a));
55
+ }
56
+ }
57
+
58
+ textureStore(outputTex, id.xy, outColor);
59
+ }
60
+ `;var xn=[{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]}],be=class{constructor(e){this.device=e;let t=e.createShaderModule({label:"pose_skeleton.wgsl",code:wt});this.computePipeline=e.createComputePipeline({label:"PoseSkeletonComputePipeline",layout:"auto",compute:{module:t,entryPoint:"computePoseSkeleton"}}),this.uniformBuffer=e.createBuffer({size:1280,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST,label:"pose_skeleton_uniform_buffer"})}device;computePipeline;uniformBuffer;cachedOutputTexture;execute(e,t={},n){let o=n??xn,i=t.width??1024,s=t.height??1024,d=t.lineWidth??6,a=Math.max(1,d/2),u=1280,c=new ArrayBuffer(u),l=new Uint32Array(c),h=new Float32Array(c);l[0]=i,l[1]=s,l[2]=o.length,l[3]=0;let g=4;for(let x=0;x<o.length;x++){let v=o[x],E=e[v.from],F=e[v.to],m=g+x*12;if(!E||!F||(E.visibility??1)<.2||(F.visibility??1)<.2){h[m+9]=0;continue}h[m+0]=E.x*i,h[m+1]=E.y*s,h[m+2]=F.x*i,h[m+3]=F.y*s,h[m+4]=v.color[0],h[m+5]=v.color[1],h[m+6]=v.color[2],h[m+7]=v.color[3],h[m+8]=a,h[m+9]=1}this.device.queue.writeBuffer(this.uniformBuffer,0,c),(!this.cachedOutputTexture||this.cachedOutputTexture.width!==i||this.cachedOutputTexture.height!==s)&&(this.cachedOutputTexture?.destroy(),this.cachedOutputTexture=this.device.createTexture({label:"openpose_skeleton_texture",size:[i,s],format:"rgba8unorm",usage:GPUTextureUsage.STORAGE_BINDING|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC}));let y=this.device.createCommandEncoder({label:"pose_skeleton_command_encoder"}),O=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}}]}),R=y.beginComputePass({label:"pose_skeleton_compute_pass"});return R.setPipeline(this.computePipeline),R.setBindGroup(0,O),R.dispatchWorkgroups(Math.ceil(i/16),Math.ceil(s/16),1),R.end(),this.device.queue.submit([y.finish()]),this.cachedOutputTexture}destroy(){this.cachedOutputTexture?.destroy(),this.cachedOutputTexture=void 0,this.uniformBuffer.destroy()}};var vt=class{pipeline;constructor(e){this.pipeline=new be(e)}renderToTexture(e,t,n=Tt){return this.pipeline.execute(e,t,n)}destroy(){this.pipeline.destroy()}};b();var Mt=class{device;pool=new Map;constructor(e){this.device=e}getOrCreateTexture(e,t){let n=this.pool.get(e);if(n&&n.width===t.width&&n.height===t.height)return n;n&&n.destroy();let o=t.format??"rgba8unorm",i=this.device.createTexture({label:t.label??`vision_segmentation_${e}`,size:[t.width,t.height,1],format:o,usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT});return this.pool.set(e,i),i}uploadMask(e,t,n,o){let i=t.length>=n*o*4,s=i?"rgba8unorm":"r8unorm",d=this.getOrCreateTexture(e,{width:n,height:o,format:s}),a;if(t instanceof Float32Array){a=new Uint8Array(t.length);for(let g=0;g<t.length;g++)a[g]=Math.round(Math.max(0,Math.min(1,t[g]))*255)}else a=t;let c=n*(i?4:1),l=Math.ceil(c/256)*256,h;if(l===c)h=a;else{h=new Uint8Array(l*o);for(let g=0;g<o;g++)h.set(a.subarray(g*c,(g+1)*c),g*l)}return this.device.queue.writeTexture({texture:d},h.buffer,{offset:h.byteOffset,bytesPerRow:l,rowsPerImage:o},{width:n,height:o}),d}destroy(){for(let e of this.pool.values())e.destroy();this.pool.clear()}};b();b();function It(r,e,t){let n=o=>Math.max(14,Math.round(o/14)*14);return r>=e?[n(t*r/e),n(t)]:[n(t),n(t*e/r)]}var Pt=.01;function Ct(r,e,t){let n=e*t,o=Math.max(1,Math.floor(n/4096)),i=[];for(let c=0;c<n;c+=o)i.push(r[c]);i.sort((c,l)=>c-l);let s=i[Math.floor((i.length-1)*Pt)],d=i[Math.ceil((i.length-1)*(1-Pt))],a=d>s?1/(d-s):0,u=new Float32Array(n);for(let c=0;c<n;c++)u[c]=Math.min(1,Math.max(0,(r[c]-s)*a));return{data:u,width:e,height:t}}b();var kn=[103.53,116.28,123.675],Sn=[57.375,57.12,58.395],Ot={"rtmdet-ins":{fit:"topLeft",channels:"bgr",mean:kn,std:Sn,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},"depth-anything":{fit:"stretch",channels:"rgb",mean:[123.675,116.28,103.53],std:[58.395,57.12,57.375],padValue:0}};function Rt(r){return Object.hasOwn(Ot,r)}function Et(r,e){return{...Ot[r],width:e[0],height:e[1]}}function Ue(r,e,t){if(t.fit==="stretch")return{scaleX:t.width/r,scaleY:t.height/e,offsetX:0,offsetY:0,inputWidth:t.width,inputHeight:t.height};let n=Math.min(t.width/r,t.height/e),o=Math.round(r*n),i=Math.round(e*n),s=t.fit==="center";return{scaleX:n,scaleY:n,offsetX:s?(t.width-o)/2:0,offsetY:s?(t.height-i)/2:0,inputWidth:t.width,inputHeight:t.height}}function oe(r,e,t){return{x:(r-t.offsetX)/t.scaleX,y:(e-t.offsetY)/t.scaleY}}function Lt(r,e,t){let{width:n,height:o,data:i}=r,{width:s,height:d}=e,a=Ue(n,o,e),{scaleX:u,scaleY:c,offsetX:l,offsetY:h}=a,g=s*d;(!t||t.length<3*g)&&(t=new Float32Array(3*g));let y=e.channels==="bgr"?[2,1,0]:[0,1,2],[O,R,x]=e.mean,v=1/e.std[0],E=1/e.std[1],F=1/e.std[2],m=(e.padValue-O)*v,p=(e.padValue-R)*E,P=(e.padValue-x)*F,[M,T,w]=y,V=Math.ceil(l),I=Math.ceil(h),k=Math.min(s,Math.floor(l+n*u))-1,f=Math.min(d,Math.floor(h+o*c))-1;for(let C=0;C<d;C++){let N=C*s,B=C<I||C>f,j=Math.max(0,(C+.5-h)/c-.5),D=Math.min(o-1,Math.floor(j)),X=Math.min(o-1,D+1),U=j-D;for(let Y=0;Y<s;Y++){let z=N+Y;if(B||Y<V||Y>k){t[z]=m,t[g+z]=p,t[2*g+z]=P;continue}let G=Math.max(0,(Y+.5-l)/u-.5),H=Math.min(n-1,Math.floor(G)),Q=Math.min(n-1,H+1),$=G-H,K=(D*n+H)*4,Z=(D*n+Q)*4,ee=(X*n+H)*4,we=(X*n+Q)*4,ve=(1-$)*(1-U),Me=$*(1-U),Pe=(1-$)*U,Ie=$*U;t[z]=(i[K+M]*ve+i[Z+M]*Me+i[ee+M]*Pe+i[we+M]*Ie-O)*v,t[g+z]=(i[K+T]*ve+i[Z+T]*Me+i[ee+T]*Pe+i[we+T]*Ie-R)*E,t[2*g+z]=(i[K+w]*ve+i[Z+w]*Me+i[ee+w]*Pe+i[we+w]*Ie-x)*F}}return{tensor:t,transform:a}}b();var ye=8;function Ye(r,e){let{sourceWidth:t,sourceHeight:n,transform:o}=e,i=e.classes?new Set(e.classes.map(x=>x.toLowerCase())):null,s=[];for(let x=0;x<r.count;x++){let v=r.dets[x*5+4];if(!(v>=e.confidence))continue;let E=Number(r.labels[x]),F=e.classNames[E]??`class_${E}`;if(i&&!i.has(F.toLowerCase()))continue;let m=oe(r.dets[x*5],r.dets[x*5+1],o),p=oe(r.dets[x*5+2],r.dets[x*5+3],o),P=ne(m.x,0,t),M=ne(m.y,0,n),T=ne(p.x,0,t)-P,w=ne(p.y,0,n)-M;T<=0||w<=0||s.push({index:x,detection:{category:F,score:v,boundingBox:{originX:P,originY:M,width:T,height:w,normalizedX:P/t,normalizedY:M/n,normalizedWidth:T/t,normalizedHeight:w/n}}})}s.sort((x,v)=>v.detection.score-x.detection.score);let d=s.map(x=>x.detection),a=[];if(!r.masks&&!r.maskPlane)return{detections:d,masks:a};let u=e.maskThreshold??.5,c=e.featherRadius??.05,l=r.maskLogits?_n(u,c):xe(u,c),{maskWidth:h,maskHeight:g}=r,y=h*g,O=h/o.inputWidth,R=g/o.inputHeight;for(let x=0;x<s.length;x++){let{index:v,detection:E}=s[x],F=E.boundingBox,m=r.maskPlane?r.maskPlane(v):r.masks,p=r.maskPlane?0:v*y,P=Math.max(0,Math.floor(F.originX)-ye),M=Math.max(0,Math.floor(F.originY)-ye),T=Math.min(t-1,Math.ceil(F.originX+F.width)+ye),w=Math.min(n-1,Math.ceil(F.originY+F.height)+ye),V=new Uint8Array(t*n),I=0;for(let k=M;k<=w;k++){let f=((k+.5)*o.scaleY+o.offsetY)*R-.5,C=ne(Math.floor(f),0,g-1),N=Math.min(g-1,C+1),B=ne(f-C,0,1),j=k*t;for(let D=P;D<=T;D++){let X=((D+.5)*o.scaleX+o.offsetX)*O-.5,U=ne(Math.floor(X),0,h-1),Y=Math.min(h-1,U+1),z=ne(X-U,0,1),G=m[p+C*h+U]*(1-z)*(1-B)+m[p+C*h+Y]*z*(1-B)+m[p+N*h+U]*(1-z)*B+m[p+N*h+Y]*z*B,H=l(G);H>0&&(V[j+D]=H,I+=H/255)}}I=Math.round(I),I!==0&&a.push({category:E.category,mask:V,width:t,height:n,area:I,coverage:I/(t*n),detectionIndex:x})}return{detections:d,masks:a}}function xe(r,e){if(e<=0)return o=>o>r?255:0;let t=r-e,n=255/(2*e);return o=>o<=t?0:o>=r+e?255:(o-t)*n}function _n(r,e){let t=xe(r,e),n=s=>s<=0?-1/0:s>=1?1/0:Math.log(s/(1-s));if(e<=0){let s=n(r);return d=>d>s?255:0}let o=n(r-e),i=n(r+e);return s=>s<=o?0:s>=i?255:t(1/(1+Math.exp(-s)))}function ne(r,e,t){return r<e?e:r>t?t:r}b();var se={scores:"/Sigmoid_output_0",boxes:"/Concat_7_output_0",kernels:"/Concat_5_output_0",maskFeatures:"/bbox_head/mask_head/projection/Conv_output_0"},At=5e3,Tn=Math.fround(.6),Ft=Math.fround(.05),wn=200,Vt=100,vn=[8,16,32],Xe=8,Dt=8,jt=169;function Bt(r){let{scores:e,boxes:t,anchors:n,classes:o}=r,i=new Float32Array(n);for(let c=0;c<n;c++){let l=0,h=c*o;for(let g=0;g<o;g++){let y=e[h+g];y>l&&(l=y)}i[c]=l}let s=[];for(let c=0;c<n;c++)i[c]>Ft&&s.push(c);s.sort((c,l)=>i[l]-i[c]||c-l),s.length>At&&(s.length=At);let d=[],a=[],u=[];for(let c=0;c<o;c++){a.length=0;for(let l of s)e[l*o+c]>Ft&&a.push(l);if(a.length!==0){a.sort((l,h)=>e[h*o+c]-e[l*o+c]||l-h),u.length=0;for(let l of a){if(u.length>=wn)break;let h=!1;for(let g of u)if(Mn(t,l,g)>Tn){h=!0;break}h||(u.push(l),d.push({anchor:l,classIndex:c,score:e[l*o+c]}))}}}return d.sort((c,l)=>l.score-c.score),d.length>Vt&&(d.length=Vt),d}function Mn(r,e,t){let n=r[e*4],o=r[e*4+1],i=r[e*4+2],s=r[e*4+3],d=r[t*4],a=r[t*4+1],u=r[t*4+2],c=r[t*4+3],l=Math.min(i,u)-Math.max(n,d),h=Math.min(s,c)-Math.max(o,a);if(l<=0||h<=0)return 0;let g=l*h,y=(i-n)*(s-o)+(u-d)*(c-a)-g;return y>0?g/y:0}function Pn(r,e,t){let n=0;for(let o of vn){let i=Math.ceil(e/o),s=i*Math.ceil(t/o);if(r<n+s){let d=r-n;return{x:d%i*o,y:Math.floor(d/i)*o,stride:o}}n+=s}throw new RangeError(`anchor ${r} is out of range`)}function Ht(r,e,t){let{kernels:n,maskFeatures:o,maskWidth:i,maskHeight:s}=r,d=i*s,a=t&&t.length>=d?t:new Float32Array(d),u=Pn(e,r.inputWidth,r.inputHeight),c=n.subarray(e*jt,(e+1)*jt),l=0,h=80,g=144,y=152,O=160,R=168,x=1/(u.stride*Xe),v=new Float32Array(2+Dt),E=new Float32Array(8),F=new Float32Array(8);for(let m=0;m<s;m++){let p=(u.y-m*Xe)*x;for(let P=0;P<i;P++){let M=m*i+P;v[0]=(u.x-P*Xe)*x,v[1]=p;for(let w=0;w<Dt;w++)v[2+w]=o[w*d+M];for(let w=0;w<8;w++){let V=c[y+w],I=l+w*10;for(let k=0;k<10;k++)V+=c[I+k]*v[k];E[w]=V>0?V:0}for(let w=0;w<8;w++){let V=c[O+w],I=h+w*8;for(let k=0;k<8;k++)V+=c[I+k]*E[k];F[w]=V>0?V:0}let T=c[R];for(let w=0;w<8;w++)T+=c[g+w]*F[w];a[M]=T}}return a}b();var Nt=17,Ge=.3;function zt(r,e){let{sourceWidth:t,sourceHeight:n,transform:o}=e,i=r.keypointStride,s=[];for(let u=0;u<r.count;u++){let c=r.dets[u*5+4];if(!(c>=e.confidence))continue;let l=oe(r.dets[u*5],r.dets[u*5+1],o),h=oe(r.dets[u*5+2],r.dets[u*5+3],o),g=ie(l.x,0,t),y=ie(l.y,0,n),O=ie(h.x,0,t)-g,R=ie(h.y,0,n)-y;if(O<=0||R<=0)continue;let x=[],v=u*Nt*i;for(let F=0;F<Nt;F++){let m=v+F*i,p=oe(r.keypoints[m],r.keypoints[m+1],o);x.push({x:ie(p.x,0,t),y:ie(p.y,0,n),visibility:ie(r.keypoints[m+2],0,1)})}let E=0;for(let F of x)F.visibility>=Ge&&E++;E<(e.minVisibleKeypoints??3)||s.push({score:c,boundingBox:{originX:g,originY:y,width:O,height:R,normalizedX:g/t,normalizedY:y/n,normalizedWidth:O/t,normalizedHeight:R/n},keypoints:x})}s.sort((u,c)=>c.score-u.score);let d=e.iouThreshold??.6,a=[];for(let u of s)a.some(c=>In(c,u,d))||a.push(u);return{people:a}}function ie(r,e,t){return r<e?e:r>t?t:r}function In(r,e,t){if(re(r.boundingBox,e.boundingBox)>t)return!0;let n=Math.sqrt(r.boundingBox.width*r.boundingBox.height),o=0,i=0;for(let s=0;s<r.keypoints.length;s++){let d=r.keypoints[s],a=e.keypoints[s];d.visibility<Ge||a.visibility<Ge||(o+=Math.hypot(d.x-a.x,d.y-a.y),i++)}return i>=3&&o/i<.1*n}b();function Ut(r,e,t,n){let{sourceWidth:o,sourceHeight:i}=n,s=xe(n.maskThreshold??.5,n.featherRadius??.2),d=new Uint8Array(o*i),a=e/o,u=t/i,c=0;for(let l=0;l<i;l++){let h=Math.max(0,(l+.5)*u-.5),g=Math.min(t-1,Math.floor(h)),y=Math.min(t-1,g+1),O=h-g;for(let R=0;R<o;R++){let x=Math.max(0,(R+.5)*a-.5),v=Math.min(e-1,Math.floor(x)),E=Math.min(e-1,v+1),F=x-v,m=r[g*e+v]*(1-F)*(1-O)+r[g*e+E]*F*(1-O)+r[y*e+v]*(1-F)*O+r[y*e+E]*F*O,p=s(m);d[l*o+R]=p,c+=p}}return{mask:d,width:o,height:i,coverage:o*i>0?c/(255*o*i):0}}b();var Cn=`
61
+ struct Params {
62
+ src: vec2u,
63
+ dst: vec2u,
64
+ scale: vec2f,
65
+ offset: vec2f,
66
+ lo: vec2i,
67
+ hi: vec2i,
68
+ mean: vec4f,
69
+ invStd: vec4f,
70
+ pad: vec4f,
71
+ order: vec4u,
72
+ };
73
+
74
+ @group(0) @binding(0) var<uniform> p: Params;
75
+ @group(0) @binding(1) var src: texture_2d<f32>;
76
+ @group(0) @binding(2) var<storage, read_write> dst: array<f32>;
77
+
78
+ @compute @workgroup_size(16, 16)
79
+ fn main(@builtin(global_invocation_id) id: vec3u) {
80
+ if (id.x >= p.dst.x || id.y >= p.dst.y) { return; }
81
+ let x = i32(id.x);
82
+ let y = i32(id.y);
83
+ let plane = p.dst.x * p.dst.y;
84
+ let o = id.y * p.dst.x + id.x;
85
+ var v = p.pad.xyz;
86
+ if (x >= p.lo.x && x <= p.hi.x && y >= p.lo.y && y <= p.hi.y) {
87
+ let maxX = i32(p.src.x) - 1;
88
+ let maxY = i32(p.src.y) - 1;
89
+ let sy = max(0.0, (f32(y) + 0.5 - p.offset.y) / p.scale.y - 0.5);
90
+ let iy0 = min(maxY, i32(floor(sy)));
91
+ let iy1 = min(maxY, iy0 + 1);
92
+ let fy = sy - f32(iy0);
93
+ let sx = max(0.0, (f32(x) + 0.5 - p.offset.x) / p.scale.x - 0.5);
94
+ let ix0 = min(maxX, i32(floor(sx)));
95
+ let ix1 = min(maxX, ix0 + 1);
96
+ let fx = sx - f32(ix0);
97
+ var rgba =
98
+ textureLoad(src, vec2i(ix0, iy0), 0) * ((1.0 - fx) * (1.0 - fy)) +
99
+ textureLoad(src, vec2i(ix1, iy0), 0) * (fx * (1.0 - fy)) +
100
+ textureLoad(src, vec2i(ix0, iy1), 0) * ((1.0 - fx) * fy) +
101
+ textureLoad(src, vec2i(ix1, iy1), 0) * (fx * fy);
102
+ rgba = rgba * 255.0;
103
+ let s = vec3f(rgba[p.order.x], rgba[p.order.y], rgba[p.order.z]);
104
+ v = (s - p.mean.xyz) * p.invStd.xyz;
105
+ }
106
+ dst[o] = v.x;
107
+ dst[plane + o] = v.y;
108
+ dst[2u * plane + o] = v.z;
109
+ }
110
+ `,On=`
111
+ @group(0) @binding(0) var src: texture_2d<f32>;
112
+ @group(0) @binding(1) var<storage, read_write> acc: array<atomic<u32>, 2>;
113
+
114
+ var<workgroup> local: array<atomic<u32>, 2>;
115
+
116
+ @compute @workgroup_size(16, 16)
117
+ fn main(
118
+ @builtin(global_invocation_id) id: vec3u,
119
+ @builtin(local_invocation_index) li: u32,
120
+ ) {
121
+ let dim = textureDimensions(src);
122
+ if (id.x < dim.x && id.y < dim.y) {
123
+ let c = pack4x8unorm(textureLoad(src, vec2i(id.xy), 0));
124
+ let i = id.y * dim.x + id.x;
125
+ let a = (c ^ (i * 0x9e3779b9u)) * 0x85ebca6bu;
126
+ let b = (c + i * 0xc2b2ae35u) * 0x27d4eb2fu;
127
+ atomicAdd(&local[0], a ^ (a >> 15u));
128
+ atomicAdd(&local[1], b ^ (b >> 13u));
129
+ }
130
+ workgroupBarrier();
131
+ if (li == 0u) {
132
+ atomicAdd(&acc[0], atomicLoad(&local[0]));
133
+ atomicAdd(&acc[1], atomicLoad(&local[1]));
134
+ }
135
+ }
136
+ `,Yt=112,Xt=new WeakMap,ce=class r{constructor(e){this.device=e;this.tensorPipeline=e.createComputePipeline({label:"vision_frame_tensor",layout:"auto",compute:{module:e.createShaderModule({code:Cn}),entryPoint:"main"}}),this.hashPipeline=e.createComputePipeline({label:"vision_frame_hash",layout:"auto",compute:{module:e.createShaderModule({code:On}),entryPoint:"main"}}),this.params=e.createBuffer({label:"vision_frame_tensor_params",size:Yt,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST})}device;tensorPipeline;hashPipeline;params;static for(e){let t=Xt.get(e);return t||(t=new r(e),Xt.set(e,t)),t}static tensorBytes(e){return 3*e.width*e.height*4}toTensor(e,t,n){let o=Ue(e.width,e.height,t),{scaleX:i,scaleY:s,offsetX:d,offsetY:a}=o,u=new ArrayBuffer(Yt),c=new Uint32Array(u),l=new Float32Array(u),h=new Int32Array(u);c.set([e.width,e.height,t.width,t.height],0),l.set([i,s,d,a],4),h.set([Math.ceil(d),Math.ceil(a),Math.min(t.width,Math.floor(d+e.width*i))-1,Math.min(t.height,Math.floor(a+e.height*s))-1],8);let g=t.std.map(R=>1/R);l.set([...t.mean,0],12),l.set([...g,0],16),l.set([0,1,2].map(R=>(t.padValue-t.mean[R])*g[R]),20),c.set(t.channels==="bgr"?[2,1,0,3]:[0,1,2,3],24),this.device.queue.writeBuffer(this.params,0,u);let y=this.device.createCommandEncoder({label:"vision_frame_tensor"}),O=y.beginComputePass();return O.setPipeline(this.tensorPipeline),O.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:n}}]})),O.dispatchWorkgroups(Math.ceil(t.width/16),Math.ceil(t.height/16)),O.end(),this.device.queue.submit([y.finish()]),o}async contentKey(e){let t=this.device.createBuffer({size:8,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_SRC}),n=this.device.createBuffer({size:8,usage:GPUBufferUsage.MAP_READ|GPUBufferUsage.COPY_DST}),o=this.device.createCommandEncoder({label:"vision_frame_hash"}),i=o.beginComputePass();i.setPipeline(this.hashPipeline),i.setBindGroup(0,this.device.createBindGroup({layout:this.hashPipeline.getBindGroupLayout(0),entries:[{binding:0,resource:e.texture.createView()},{binding:1,resource:{buffer:t}}]})),i.dispatchWorkgroups(Math.ceil(e.width/16),Math.ceil(e.height/16)),i.end(),o.copyBufferToBuffer(t,0,n,0,8),this.device.queue.submit([o.finish()]),await n.mapAsync(GPUMapMode.READ);let[s,d]=new Uint32Array(n.getMappedRange().slice(0));return n.unmap(),n.destroy(),t.destroy(),`${e.width}x${e.height}:gpu:${s.toString(36)}:${d.toString(36)}`}};async function Gt(r){let{device:e,texture:t,width:n,height:o}=r,i=n*4,s=Math.ceil(i/256)*256,d=e.createBuffer({size:s*o,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ,label:"vision_frame_readback"}),a=e.createCommandEncoder({label:"vision_frame_readback"});a.copyTextureToBuffer({texture:t},{buffer:d,bytesPerRow:s,rowsPerImage:o},[n,o,1]),e.queue.submit([a.finish()]),await d.mapAsync(GPUMapMode.READ);let u=new Uint8Array(d.getMappedRange()),c=new Uint8ClampedArray(n*o*4);for(let l=0;l<o;l++)c.set(u.subarray(l*s,l*s+i),l*i);if(d.unmap(),d.destroy(),t.format.startsWith("bgra"))for(let l=0;l<c.length;l+=4){let h=c[l];c[l]=c[l+2],c[l+2]=h}return{data:c,width:n,height:o}}b();var $t=sn(cn(),1);an();function Rn(){return A.env.FRAMEFIELDS_MODELS_DIR?me(A.env.FRAMEFIELDS_MODELS_DIR):me(st(),".cache/framefields/models")}var ke=class{_modelsDir;_baseUrl;_timeoutMs;_retries;_retryDelayMs;_verify;_fetch;_onProgress;_acceptLicense;_inflight=new Map;_buffers=new Map;_status=new Map;constructor(e={}){this._modelsDir=e.modelsDir?me(e.modelsDir):Rn(),this._baseUrl=e.baseUrl??A.env.FRAMEFIELDS_MODELS_BASE_URL??void 0,this._timeoutMs=e.timeoutMs,this._retries=Math.max(0,e.retries??2),this._retryDelayMs=e.retryDelayMs??1e3,this._verify=e.verify!==!1,this._fetch=e.fetchImpl??globalThis.fetch,this._onProgress=e.onProgress,this._acceptLicense=e.acceptLicense===!0}get modelsDir(){return this._modelsDir}pathFor(e){return Ee(this._modelsDir,this.descriptor(e).filename)}descriptor(e){let t=q[e];if(!t)throw new Error(`Vision model '${e}' is not registered in the model store.`);return t}urlFor(e){let t=this.descriptor(e);return this._baseUrl?`${this._baseUrl.replace(/\/+$/,"")}/${t.filename}`:t.url}has(e){let t=q[e];if(!t)return!1;let n=Ee(this._modelsDir,t.filename);if(!ue(n))return!1;try{let o=et(n).size;return this._verify?o===t.bytes:o>0}catch{return!1}}async evict(e){this._buffers.delete(e),this._status.set(e,"pending"),await Re(this.pathFor(e)).catch(()=>{})}status(e){return this._status.get(e)??"pending"}statuses(){return new Map(this._status)}isLoaded(e){return this._buffers.has(e)}async ensure(e){let t=this._buffers.get(e);if(t)return t;let n=this._inflight.get(e);if(n)return n;let o=this.load(e).finally(()=>this._inflight.delete(e));return this._inflight.set(e,o),o}async preload(e){await Promise.all([...new Set(e)].map(t=>this.ensure(t)))}async load(e){let t=this.descriptor(e),n=this.pathFor(e);if(this.has(e))return this._status.set(e,"ready"),this.readBuffer(e,n);if(t.license&&t.license!=="Apache-2.0"&&!this._acceptLicense&&A.env.FRAMEFIELDS_ACCEPT_SAM_LICENSE!=="1")throw new Error(`License agreement required for model "${e}":
137
+ This model is licensed under "${t.license}".
138
+ To download and use this model, you must accept its license terms by passing 'acceptLicense: true' or setting FRAMEFIELDS_ACCEPT_SAM_LICENSE=1.`);let o=this.urlFor(e);this._status.set(e,"downloading"),ue(Le(n))||tt(Le(n),{recursive:!0});let i=`${n}.tmp.${Date.now()}`;try{let{buffer:s,totalBytes:d}=await this.download(e,o);if(s.byteLength===0)throw new Error(`Downloaded vision model '${e}' is empty (0 bytes).`);return this._verify&&this.verifyBytes(e,s,o),this._onProgress?.(e,s.byteLength,d||s.byteLength),await rt(i,s),await ot(i,n),this._buffers.set(e,s),this._status.set(e,"ready"),s}catch(s){throw this._status.set(e,"error"),ue(i)&&await Re(i).catch(()=>{}),s}}async download(e,t){for(let n=0;;n++){let o;try{let i=await this._fetch(t,{signal:this._timeoutMs?AbortSignal.timeout(this._timeoutMs):void 0});if(i.ok){let d=Number(i.headers.get("content-length")??0);return{buffer:new Uint8Array(await i.arrayBuffer()),totalBytes:d}}let s=new Error(`Failed to download vision model '${e}' from ${t}: HTTP ${i.status} ${i.statusText}`);if(i.status!==429&&i.status<500)throw s;o=s}catch(i){if(!(i instanceof TypeError))throw i;o=i}if(n>=this._retries)throw new Error(`Failed to download vision model '${e}' from ${t} after ${n+1} attempts: ${String(o)}`,{cause:o});await new Promise(i=>setTimeout(i,this._retryDelayMs*2**n))}}verifyBytes(e,t,n){let o=q[e];if(t.byteLength!==o.bytes)throw new Error(`Vision model '${e}' from ${n} is ${t.byteLength} bytes, expected ${o.bytes}.`);let i=(0,$t.createHash)("sha256").update(t).digest("hex");if(i!==o.sha256)throw new Error(`Vision model '${e}' from ${n} failed its SHA-256 check (got ${i}, expected ${o.sha256}).`)}async readBuffer(e,t){let n=await nt(t),o=new Uint8Array(n.buffer,n.byteOffset,n.byteLength);return this._buffers.set(e,o),o}clearMemoryCache(){this._buffers.clear()}};b();function jn(r){let e=new Uint8Array([8,1]),t=ae(1,e);return pe([ae(1,it.encode(r)),ae(2,t)])}function Qt(r,e){let t=Ae(r),n=t.find(y=>y.number===7&&y.wire===2);if(!n)throw new Error("ONNX model has no graph");let o=Ae(n.body),i=o.filter(y=>y.number===1).map(y=>({field:y,inputs:Fe(y.body,1),outputs:Fe(y.body,2)})),s=new Map;i.forEach((y,O)=>{for(let R of y.outputs)s.set(R,O)});let d=new Set,a=new Set,u=[...e];for(let y of e)if(!s.has(y))throw new Error(`ONNX model has no tensor '${y}'`);for(;u.length>0;){let y=u.pop();if(a.has(y))continue;a.add(y);let O=s.get(y);if(!(O===void 0||d.has(O))){d.add(O);for(let R of i[O].inputs)R&&u.push(R)}}let c=new Map;for(let y of o){if(y.number!==13)continue;let O=fe(y.body,1);O!==void 0&&c.set(O,y.body)}let l=[],h=0;for(let y of o)switch(y.number){case 1:d.has(h)&&l.push(y.raw),h++;break;case 5:{let O=fe(y.body,8);O!==void 0&&a.has(O)&&l.push(y.raw);break}case 11:case 13:{let O=fe(y.body,1);O!==void 0&&a.has(O)&&l.push(y.raw);break}case 12:break;default:l.push(y.raw)}for(let y of e)l.push(ae(12,c.get(y)??jn(y)));let g=pe(l);return pe(t.map(y=>y===n?ae(7,g):y.raw))}b();function We(r){return r.texture!==void 0}var Bn=4,Se=class r{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 ke({modelsDir:e.modelsDir,baseUrl:e.baseUrl,timeoutMs:e.timeoutMs,onProgress:e.onProgress}),provider:e.provider??at(),sessions:new Map,tensorScratch:new Map,runQueue:new Map,gpuInputs:new Map,instancePasses:[]}}static create(e={}){return new r(e)}derive(e){return new r({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(q))e.set(t,"pending");for(let[t,n]of this._core.store.statuses())e.set(t,n);return e}modelKeyFor(e,t=1){return St(e,this.variant,t)}async preload(e=["detect"]){let t=new Set;for(let n of e)n==="matte"?(t.add("selfie-square"),t.add("selfie-landscape")):t.add(this.modelKeyFor(n));await this._core.store.preload([...t]),await Promise.all([...t].map(n=>this.session(n)))}async detect(e){let t=await this.instancePass(e);return Ye({...t.outputs,masks:void 0,maskPlane:void 0},this.instanceDecodeOptions(e,t.transform)).detections}async segment(e){let t=await this.instancePass(e);return Ye(t.outputs,this.instanceDecodeOptions(e,t.transform))}async pose(e){let t=this.modelKeyFor("pose"),{outputs:n,transform:o}=await this.infer(t,e),i=J(n,"dets",t),s=J(n,"keypoints",t);return zt({dets:i.data,keypoints:s.data,count:i.dims[1]??0,keypointStride:s.dims[3]??3},{confidence:this.confidence,transform:o,sourceWidth:e.width,sourceHeight:e.height})}async matte(e){let t=this.modelKeyFor("matte",e.width/e.height),[n,o]=q[t].input,{outputs:i}=await this.infer(t,e),s=J(i,"alphas",t);return Ut(s.data,n,o,{sourceWidth:e.width,sourceHeight:e.height,maskThreshold:this.maskThreshold,...this.featherRadius!==void 0?{featherRadius:this.featherRadius}:{}})}async depth(e){let t="depth-anything-v2-s",n=It(e.width,e.height,q[t].input[1]),{outputs:o}=await this.infer(t,e,n),i=J(o,"predicted_depth",t),s=i.dims;return Ct(i.data,s[s.length-1]??n[0],s[s.length-2]??n[1])}close(){if(!this._ownsCore)return;let e=this._core;for(let t of e.sessions.values())t.then(n=>n.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,n=We(e)?await ce.for(e.device).contentKey(e):Yn(e),o=t.find(a=>a.content===n);if(o)return o.result;let i=this.modelKeyFor("segment"),s=this.infer(i,e).then(({outputs:a,transform:u})=>({transform:u,outputs:se.scores in a?Un(a,i,u):zn(a,i)})),d={content:n,result:s};return t.push(d),t.length>Bn&&t.shift(),s.catch(()=>{let a=t.indexOf(d);a>=0&&t.splice(a,1)}),s}instanceDecodeOptions(e,t){return{confidence:this.confidence,classes:this.classes,classNames:he,transform:t,sourceWidth:e.width,sourceHeight:e.height,maskThreshold:this.maskThreshold,...this.featherRadius!==void 0?{featherRadius:this.featherRadius}:{}}}infer(e,t,n){let o=this._core.runQueue,s=(o.get(e)??Promise.resolve()).then(()=>this.inferNow(e,t,n),()=>this.inferNow(e,t,n)),d=s.catch(()=>{});return o.set(e,d),d.then(()=>{o.get(e)===d&&o.delete(e)}),s}async inferNow(e,t,n){let o=await this.session(e),i=q[e];if(!Rt(i.family))throw new Error(`VisionRunner cannot run '${i.family}' models; use the family's own tracker (e.g. Sam2Tracker or Sam3Tracker from @framefields/vision-sam).`);let s=Et(i.family,n??i.input),d=[1,3,s.height,s.width],a;if(We(t)){if(this._core.provider.device===t.device){let O=this.gpuInput(e,t.device,s),R=ce.for(t.device).toTensor(t,s,O);return{outputs:await o.run({name:"input",data:Hn,gpuBuffer:O,dims:d}),transform:R}}a=await Gt(t)}else a=t;let u=3*s.width*s.height,c=this._core.tensorScratch,l=c.get(e);(!l||l.length<u)&&(l=new Float32Array(u),c.set(e,l));let{tensor:h,transform:g}=Lt(a,s,l);return{outputs:await o.run({name:"input",data:h,dims:d}),transform:g}}gpuInput(e,t,n){let o=this._core.gpuInputs,i=ce.tensorBytes(n),s=o.get(e);if(s?.device===t&&s.buffer.size>=i)return s.buffer;s?.buffer.destroy();let d=t.createBuffer({label:`vision_input_${e}`,size:i,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_SRC});return o.set(e,{device:t,buffer:d}),d}session(e){let{sessions:t,store:n,provider:o}=this._core,i=t.get(e);return i||(i=n.ensure(e).then(s=>o.createSession(q[e].family==="rtmdet-ins"?Nn(s):s)).catch(s=>{throw t.delete(e),n.evict(e),s}),t.set(e,i)),i}},Hn=new Float32Array(0);function Nn(r){try{return Qt(r,Object.values(se))}catch{return r}}function zn(r,e){let t=J(r,"dets",e),n=J(r,"masks",e);return{dets:t.data,labels:J(r,"labels",e).data,masks:n.data,count:t.dims[1]??0,maskHeight:n.dims[n.dims.length-2]??0,maskWidth:n.dims[n.dims.length-1]??0}}function Un(r,e,t){let n=J(r,se.scores,e),o=J(r,se.maskFeatures,e),i={scores:n.data,boxes:J(r,se.boxes,e).data,kernels:J(r,se.kernels,e).data,maskFeatures:o.data,anchors:n.dims[1]??0,classes:n.dims[2]??0,maskHeight:o.dims[2]??0,maskWidth:o.dims[3]??0,inputWidth:t.inputWidth,inputHeight:t.inputHeight},s=Bt(i),d=new Float32Array(s.length*5),a=new Int32Array(s.length);s.forEach(({anchor:c,classIndex:l,score:h},g)=>{d.set(i.boxes.subarray(c*4,c*4+4),g*5),d[g*5+4]=h,a[g]=l});let u=new Map;return{dets:d,labels:a,count:s.length,maskWidth:i.maskWidth,maskHeight:i.maskHeight,maskLogits:!0,maskPlane:c=>{let l=u.get(c);return l||(l=Ht(i,s[c].anchor),u.set(c,l)),l}}}function Yn(r){let{data:e}=r,t=e.byteOffset%4===0?e.byteLength>>>2:0,n=new Uint32Array(e.buffer,e.byteOffset,t),o=2166136261,i=16777619^e.byteLength;for(let s=0;s<t;s++){let d=n[s];o=Math.imul(o^d,2654435761),i=Math.imul(i^d,2246822519)^o>>>15}for(let s=t*4;s<e.length;s++)o=Math.imul(o^e[s],2654435761);return`${r.width}x${r.height}:${(o>>>0).toString(36)}:${(i>>>0).toString(36)}`}function J(r,e,t){let n=r[e];if(!n)throw new Error(`Vision model '${t}' returned no '${e}' output (got: ${Object.keys(r).join(", ")||"none"}). Expected the ${q[t].source}.`);return n}b();var Is=Symbol.for("framefields.vision.clipSubject");b();var le=class{width;height;fovRad;focalDistance;constructor(e){this.width=e.width,this.height=e.height;let t=e.fov??60;this.fovRad=t*Math.PI/180,this.focalDistance=e.cameraDistance??this.height/2/Math.tan(this.fovRad/2)}projectNormalizedLandmark(e,t=0){let n=e.x*this.width,o=e.y*this.height,i=e.z*this.width+t,s=Math.min(i,this.focalDistance-10),d=this.focalDistance/(this.focalDistance-s);return{x:n,y:o,z:i,scale:Math.max(.1,d)}}projectWorldLandmark(e,t=2,n=800){let o=this.width/2,i=this.height/2,s=e.x*n,d=e.y*n,a=(e.z+t)*n,u=Math.min(a,this.focalDistance-10),c=this.focalDistance/(this.focalDistance-u);return{x:o+s*c,y:i+d*c,z:a,scale:Math.max(.1,c)}}};b();b();function Jt(){return{objects:[],rawDetections:[]}}function en(){return{people:[]}}function tn(){let r=[];for(let e=0;e<17;e++)r.push({x:.5,y:.5,z:0,visibility:0});return r}b();function Ke(r,e){let t=e&&new Set(e.map(o=>o.toLowerCase())),n;for(let o of r){if(t&&!t.has(o.category.toLowerCase()))continue;if(!n){n=o;continue}let i=nn(o),s=nn(n);i!==s?i&&(n=o):(i?o.area>n.area:o.detectionIndex<n.detectionIndex)&&(n=o)}return n}function nn(r){return r.category.toLowerCase()==="person"}function rn(r){let{mask:e,width:t,height:n}=r,o=t,i=n,s=-1,d=-1;for(let a=0;a<n;a++){let u=a*t;for(let c=0;c<t;c++)e[u+c]!==0&&(c<o&&(o=c),c>s&&(s=c),a<i&&(i=a),a>d&&(d=a))}return s<0?null:{x0:o,y0:i,x1:s,y1:d}}function Fs(r,e={}){let{classes:t,overlap:n=.5,maxGrowth:o=2}=e,i=Ke(r,t);if(!i)return;let s=rn(i);if(!s)return i;let d=_e(s),a=r.filter(l=>{if(l===i)return!1;let h=rn(l);return h!==null&&_e(h)<=d*o&&Xn(s,h)>=n});if(a.length===0)return i;let u=i.mask.slice();for(let l of a){let h=l.mask;for(let g=0;g<u.length;g++)h[g]>u[g]&&(u[g]=h[g])}let c=0;for(let l=0;l<u.length;l++)c+=u[l];return c=Math.round(c/255),{...i,mask:u,area:c,coverage:c/(i.width*i.height)}}function _e(r){return(r.x1-r.x0+1)*(r.y1-r.y0+1)}function Xn(r,e){let t=Math.min(r.x1,e.x1)-Math.max(r.x0,e.x0)+1,n=Math.min(r.y1,e.y1)-Math.max(r.y0,e.y0)+1;return t<=0||n<=0?0:t*n/Math.min(_e(r),_e(e))}b();function qe(r){if(r.boundingBox&&r.boundingBox.width>0&&r.boundingBox.height>0)return{originX:r.boundingBox.originX,originY:r.boundingBox.originY,width:r.boundingBox.width,height:r.boundingBox.height};let e=1/0,t=1/0,n=-1/0,o=-1/0,i=0;for(let s of r.keypoints)s.visibility>.1&&(i++,s.x<e&&(e=s.x),s.y<t&&(t=s.y),s.x>n&&(n=s.x),s.y>o&&(o=s.y));return i===0||e>=n||t>=o?{originX:r.boundingBox?.originX??0,originY:r.boundingBox?.originY??0,width:r.boundingBox?.width??0,height:r.boundingBox?.height??0}:{originX:e,originY:t,width:n-e,height:o-t}}function Bs(r,e,t=.15){if(r.length===0)return[];let n=e.filter(a=>a.category.toLowerCase()==="person"&&a.active);if(n.length===0)return[...r];let o=[];for(let a=0;a<r.length;a++){let u=r[a];if(u.trackId!==void 0)continue;let c=qe(u),l=c.width<=1.05&&c.height<=1.05;for(let h of n){let g=l&&h.boundingBox.normalizedWidth>0?{originX:h.boundingBox.normalizedX,originY:h.boundingBox.normalizedY,width:h.boundingBox.normalizedWidth,height:h.boundingBox.normalizedHeight}:h.boundingBox,y=re(c,g);y>=t&&o.push({personIdx:a,trackId:h.trackId,iou:y})}}o.sort((a,u)=>u.iou-a.iou);let i=new Set,s=new Set,d=new Map;for(let a of o)i.has(a.personIdx)||s.has(a.trackId)||(i.add(a.personIdx),s.add(a.trackId),d.set(a.personIdx,a.trackId));return r.length===1&&n.length===1&&!d.has(0)&&r[0].trackId===void 0&&d.set(0,n[0].trackId),r.map((a,u)=>{if(a.trackId!==void 0)return a;let c=d.get(u);return c!==void 0?{...a,trackId:c}:a})}var Te=class{objects;poseLandmarks;masks;segmentation;classes;poseLandmarksTensor;objectsTensor;masksTensor;histogramTensor;_totalFrames;_fps;_width;_height;_transformer;_stencilTexture;_maskSource;_matteSource;_cameraFov;_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._maskSource=e.maskSource,this._matteSource=e.matteSource,this._cameraFov=e.cameraFov??60,this._totalFrames=e.totalFrames??120,this._fps=e.fps??24,this._width=e.width??1920,this._height=e.height??1080,this._transformer=new le({width:this._width,height:this._height,fov:e.cameraFov??60});let t=this,n=(m,p)=>{let P=Qe(m,p);return this._registeredSignals.add(P),P},o=m=>this.getPoseResult(m).people[0]?.keypoints??tn(),i=(m,p)=>{let P=k=>o(k)[m]??{x:.5,y:.5,z:0},M=n(k=>P(k.frame).x,{fps:this._fps,label:`${p}_x`}),T=n(k=>P(k.frame).y,{fps:this._fps,label:`${p}_y`}),w=n(k=>P(k.frame).z??0,{fps:this._fps,label:`${p}_z`}),V=n(k=>this._transformer.projectNormalizedLandmark(P(k.frame)).x,{fps:this._fps,label:`${p}_screenX`}),I=n(k=>this._transformer.projectNormalizedLandmark(P(k.frame)).y,{fps:this._fps,label:`${p}_screenY`});return{x:M,y:T,z:w,screenX:V,screenY:I}},s=m=>{let p=this._poseLmCache.get(m);return p||(p=i(m,ze[m]??`kpt_${m}`),this._poseLmCache.set(m,p)),p},d={nose:s(S.NOSE),leftEye:s(S.LEFT_EYE),rightEye:s(S.RIGHT_EYE),leftEar:s(S.LEFT_EAR),rightEar:s(S.RIGHT_EAR),shoulder:s(S.LEFT_SHOULDER),leftShoulder:s(S.LEFT_SHOULDER),rightShoulder:s(S.RIGHT_SHOULDER),leftElbow:s(S.LEFT_ELBOW),rightElbow:s(S.RIGHT_ELBOW),leftWrist:s(S.LEFT_WRIST),rightWrist:s(S.RIGHT_WRIST),leftHip:s(S.LEFT_HIP),rightHip:s(S.RIGHT_HIP),leftKnee:s(S.LEFT_KNEE),rightKnee:s(S.RIGHT_KNEE),leftAnkle:s(S.LEFT_ANKLE),rightAnkle:s(S.RIGHT_ANKLE),get:s};this.poseLandmarks=new Proxy(d,{get(m,p,P){return typeof p=="string"&&/^\d+$/.test(p)?m.get(Number(p)):typeof p=="number"?m.get(p):Reflect.get(m,p,P)}});let a=(m,p="unknown")=>({trackId:m,category:p,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}),u=(m,p)=>{let P=n(I=>m(I.frame).sx,{fps:this._fps,label:`${p}_screenX`}),M=n(I=>m(I.frame).sy,{fps:this._fps,label:`${p}_screenY`}),T=n(I=>this._width>0?m(I.frame).sx/this._width:0,{fps:this._fps,label:`${p}_x`}),w=n(I=>this._height>0?m(I.frame).sy/this._height:0,{fps:this._fps,label:`${p}_y`}),V=n(()=>0,{fps:this._fps,label:`${p}_z`});return{x:T,y:w,z:V,screenX:P,screenY:M}},c=(m,p,P)=>{let M=B=>{let j=t.getPoseResult(B);if(j.people.length===0)return;let D=m(B),X=P??D.trackId,U=j.people.find(G=>G.trackId===X);if(U)return U;if(!D.active&&j.people.length>1)return;if(j.people.length===1)return j.people[0];let Y,z=.1;for(let G of j.people){let H=qe(G),$=H.width<=1.05&&H.height<=1.05&&D.boundingBox.normalizedWidth>0?{originX:D.boundingBox.normalizedX,originY:D.boundingBox.normalizedY,width:D.boundingBox.normalizedWidth,height:D.boundingBox.normalizedHeight}:D.boundingBox,K=re(H,$);K>z&&(z=K,Y=G)}return Y},T=n(B=>M(B.frame)?1:0,{fps:this._fps,label:`${p}_hasPose`}),w=(B,j)=>{let D=H=>{let $=M(H)?.keypoints[B];if($&&$.visibility>.05)return{x:$.x,y:$.y,z:0};let K=m(H);return{x:K.normalizedCenterX,y:K.normalizedCenterY,z:0}},X=n(H=>D(H.frame).x,{fps:this._fps,label:`${p}_${j}_x`}),U=n(H=>D(H.frame).y,{fps:this._fps,label:`${p}_${j}_y`}),Y=n(H=>D(H.frame).z??0,{fps:this._fps,label:`${p}_${j}_z`}),z=n(H=>t._transformer.projectNormalizedLandmark(D(H.frame)).x,{fps:this._fps,label:`${p}_${j}_screenX`}),G=n(H=>t._transformer.projectNormalizedLandmark(D(H.frame)).y,{fps:this._fps,label:`${p}_${j}_screenY`});return{x:X,y:U,z:Y,screenX:z,screenY:G}},V=new Map,I=B=>{let j=V.get(B);return j||(j=w(B,ze[B]??`kpt_${B}`),V.set(B,j)),j},k=n(B=>{let j=B.frame,D=M(j);if(!D)return 0;let X=M(Math.max(0,j-1)),U=D.keypoints,Y=X?.keypoints,z=U[S.RIGHT_WRIST],G=Y?.[S.RIGHT_WRIST],H=0;if(z&&G&&z.visibility>.1&&G.visibility>.1){let Z=(z.x-G.x)*this._width,ee=(z.y-G.y)*this._height;H=Math.sqrt(Z*Z+ee*ee)*this._fps}let Q=U[S.LEFT_WRIST],$=Y?.[S.LEFT_WRIST],K=0;if(Q&&$&&Q.visibility>.1&&$.visibility>.1){let Z=(Q.x-$.x)*this._width,ee=(Q.y-$.y)*this._height;K=Math.sqrt(Z*Z+ee*ee)*this._fps}return Math.max(H,K)},{fps:this._fps,label:`${p}_wristSpeed`}),f=n(B=>{let j=M(B.frame);if(!j)return 0;let D=j.keypoints,X=D[S.LEFT_WRIST],U=D[S.LEFT_SHOULDER],Y=D[S.RIGHT_WRIST],z=D[S.RIGHT_SHOULDER],G=X&&U&&X.visibility>.1&&U.visibility>.1&&X.y<U.y,H=Y&&z&&Y.visibility>.1&&z.visibility>.1&&Y.y<z.y;return G||H?1:0},{fps:this._fps,label:`${p}_handRaised`}),C=n(B=>{let j=M(B.frame);if(!j)return 0;let D=j.keypoints,X=D[S.LEFT_SHOULDER],U=D[S.RIGHT_SHOULDER],Y=D[S.LEFT_HIP],z=D[S.RIGHT_HIP];if(!X||!U||!Y||!z)return 0;let G=(X.x+U.x)/2*this._width,H=(X.y+U.y)/2*this._height,Q=(Y.x+z.x)/2*this._width,$=(Y.y+z.y)/2*this._height,K=G-Q,Z=H-$;return K===0&&Z===0?0:Math.atan2(K,-Z)},{fps:this._fps,label:`${p}_bodyTiltAngle`}),N={hasPose:T,wristSpeed:k,handRaised:f,bodyTiltAngle:C,nose:I(S.NOSE),leftEye:I(S.LEFT_EYE),rightEye:I(S.RIGHT_EYE),leftEar:I(S.LEFT_EAR),rightEar:I(S.RIGHT_EAR),shoulder:I(S.LEFT_SHOULDER),leftShoulder:I(S.LEFT_SHOULDER),rightShoulder:I(S.RIGHT_SHOULDER),leftElbow:I(S.LEFT_ELBOW),rightElbow:I(S.RIGHT_ELBOW),leftWrist:I(S.LEFT_WRIST),rightWrist:I(S.RIGHT_WRIST),leftHip:I(S.LEFT_HIP),rightHip:I(S.RIGHT_HIP),leftKnee:I(S.LEFT_KNEE),rightKnee:I(S.RIGHT_KNEE),leftAnkle:I(S.LEFT_ANKLE),rightAnkle:I(S.RIGHT_ANKLE),get:I};return new Proxy(N,{get(B,j,D){return typeof j=="string"&&/^\d+$/.test(j)?B.get(Number(j)):typeof j=="number"?B.get(j):Reflect.get(B,j,D)}})},l=(m,p,P,M)=>{let T=f=>m(f).boundingBox,w=c(m,`${p}_pose`,M),V=(f,C,N)=>u(B=>({sx:C(T(B)),sy:N(T(B))}),`${p}_${f}`),I=V("center",f=>f.originX+f.width/2,f=>f.originY+f.height/2),k=n(f=>m(f.frame).speed,{fps:this._fps,label:`${p}_speed`});return{get trackId(){return M??m(0).trackId},get category(){return P??m(0).category},bounds:{x:n(f=>T(f.frame).normalizedX,{fps:this._fps,label:`${p}_normX`}),y:n(f=>T(f.frame).normalizedY,{fps:this._fps,label:`${p}_normY`}),width:n(f=>T(f.frame).normalizedWidth,{fps:this._fps,label:`${p}_normWidth`}),height:n(f=>T(f.frame).normalizedHeight,{fps:this._fps,label:`${p}_normHeight`}),screenX:n(f=>T(f.frame).originX,{fps:this._fps,label:`${p}_screenX`}),screenY:n(f=>T(f.frame).originY,{fps:this._fps,label:`${p}_screenY`}),screenWidth:n(f=>T(f.frame).width,{fps:this._fps,label:`${p}_screenWidth`}),screenHeight:n(f=>T(f.frame).height,{fps:this._fps,label:`${p}_screenHeight`}),aspectRatio:n(f=>{let C=T(f.frame);return C.height>0?C.width/C.height:1},{fps:this._fps,label:`${p}_aspectRatio`}),area:n(f=>{let C=T(f.frame);return C.width*C.height},{fps:this._fps,label:`${p}_area`})},anchors:{topLeft:V("topLeft",f=>f.originX,f=>f.originY),topCenter:V("topCenter",f=>f.originX+f.width/2,f=>f.originY),topRight:V("topRight",f=>f.originX+f.width,f=>f.originY),centerLeft:V("centerLeft",f=>f.originX,f=>f.originY+f.height/2),center:I,centerRight:V("centerRight",f=>f.originX+f.width,f=>f.originY+f.height/2),bottomLeft:V("bottomLeft",f=>f.originX,f=>f.originY+f.height),bottomCenter:V("bottomCenter",f=>f.originX+f.width/2,f=>f.originY+f.height),bottomRight:V("bottomRight",f=>f.originX+f.width,f=>f.originY+f.height)},kinematics:{vx:n(f=>m(f.frame).velocity.vx,{fps:this._fps,label:`${p}_vx`}),vy:n(f=>m(f.frame).velocity.vy,{fps:this._fps,label:`${p}_vy`}),speed:k,acceleration:k.velocity(1),headingRad:n(f=>{let C=m(f.frame).velocity;return Math.atan2(C.vy,C.vx)},{fps:this._fps,label:`${p}_headingRad`}),headingDeg:n(f=>{let C=m(f.frame).velocity;return Math.atan2(C.vy,C.vx)*180/Math.PI},{fps:this._fps,label:`${p}_headingDeg`})},confidence:n(f=>m(f.frame).score,{fps:this._fps,label:`${p}_score`}),active:n(f=>m(f.frame).active?1:0,{fps:this._fps,label:`${p}_active`}),isCoasting:n(f=>m(f.frame).isCoasting?1:0,{fps:this._fps,label:`${p}_isCoasting`}),age:n(f=>m(f.frame).age,{fps:this._fps,label:`${p}_age`}),pose:w,center:I,topCenter:this.__pending,bottomCenter:I,topLeft:I,bottomLeft:I}},h=(m,p,P,M)=>{let T=l(m,p,P,M),w=T.anchors;return Object.assign(T,{topCenter:w.topCenter,bottomCenter:w.bottomCenter,topLeft:w.topLeft,bottomLeft:w.bottomLeft}),T},g=m=>{let p=this._trackCache.get(m);return p||(p=h(P=>this.getObjectResult(P).objects.find(M=>M.trackId===m)??a(m),`track_${m}`,void 0,m),this._trackCache.set(m,p)),p},y=(m,p=0)=>{let P=`${m.toLowerCase()}_${p}`,M=this._categoryCache.get(P);return M||(M=h(T=>this.getObjectResult(T).objects.filter(I=>I.category.toLowerCase()===m.toLowerCase()&&I.active)[p]??a(0,m),`cat_${m}_${p}`,m),this._categoryCache.set(P,M)),M},O=h(m=>{let p=this.getObjectResult(m);if(p.objects.length===0)return a(0);let P=p.objects[0];for(let M=1;M<p.objects.length;M++)p.objects[M].score>P.score&&(P=p.objects[M]);return P},"primary_object"),R=m=>{let p=new Set;for(let P of this.getObjectResult(m).objects)P.active&&p.add(P.category);return Array.from(p).sort()},x=m=>{let p=m.toLowerCase(),P=this._classCache.get(p);return P||(P={count:n(M=>this.getObjectResult(M.frame).objects.filter(T=>T.active&&T.category.toLowerCase()===p).length,{fps:this._fps,label:`class_${p}_count`}),maxConfidence:n(M=>{let T=0;for(let w of this.getObjectResult(M.frame).objects)w.active&&w.category.toLowerCase()===p&&w.score>T&&(T=w.score);return T},{fps:this._fps,label:`class_${p}_maxConf`}),present:n(M=>this.getObjectResult(M.frame).objects.some(T=>T.active&&T.category.toLowerCase()===p)?1:0,{fps:this._fps,label:`class_${p}_present`}),primary:y(m)},this._classCache.set(p,P),P)};this.classes={get:x,get names(){return R(W.value)},histogram:{get:m=>t.getClassHistogramTensor(m?.frame??W.value),get value(){return t.getClassHistogramTensor(W.value)}}},this.objects={get:g,byCategory:y,primary:O,count:n(m=>this.getObjectResult(m.frame).objects.filter(p=>p.active).length,{fps:this._fps,label:"tracked_objects_count"}),hasCategory:m=>x(m).present,getActiveTracks:m=>this.getObjectResult(m).objects.filter(p=>p.active),get detectedCategories(){return R(W.value)}};let v=(m,p)=>this.getMaskResult(m).find(P=>P.trackId===p),E=m=>Ke(this.getMaskResult(m)),F=(m,p)=>{let P=M=>{let T=m(M);if(!(!T||T.trackId===void 0))return this.getObjectResult(M).objects.find(w=>w.trackId===T.trackId)};return{get trackId(){return m(W.value)?.trackId??0},get category(){return m(W.value)?.category??"unknown"},area:n(M=>m(M.frame)?.area??0,{fps:this._fps,label:`${p}_area`}),coverage:n(M=>m(M.frame)?.coverage??0,{fps:this._fps,label:`${p}_coverage`}),solidity:n(M=>{let T=m(M.frame),w=P(M.frame);if(!T||!w)return 0;let V=w.boundingBox.width*w.boundingBox.height;return V>0?T.area/V:0},{fps:this._fps,label:`${p}_solidity`}),bboxFill:n(M=>{let T=m(M.frame);if(!T||T.width*T.height===0)return 0;let w=P(M.frame);return w?w.boundingBox.width*w.boundingBox.height/(T.width*T.height):0},{fps:this._fps,label:`${p}_bboxFill`})}};this.masks={get:m=>{let p=this._maskTrackCache.get(m);return p||(p=F(P=>v(P,m),`mask_${m}`),this._maskTrackCache.set(m,p)),p},subject:F(E,"subject"),count:n(m=>new Set(this.getMaskResult(m.frame).map(p=>p.trackId??-1)).size,{fps:this._fps,label:"mask_count"})},this.segmentation={humanSilhouette:this.masks.subject,subject:this.masks.subject,instanceMasks:this.masks,matte:{coverage:n(m=>t.getMatteResult(m.frame)?.coverage??0,{fps:this._fps,label:"matte_coverage"}),at:m=>t.getMatteResult(m)},get stencilTexture(){return t._stencilTexture}},this.poseLandmarksTensor={get:m=>t.getPoseLandmarksTensor(m?.frame??W.value),get value(){return t.getPoseLandmarksTensor(W.value)}},this.objectsTensor={get:m=>t.getObjectsTensor(m?.frame??W.value),get value(){return t.getObjectsTensor(W.value)}},this.masksTensor={get:m=>t.getMasksTensor(m?.frame??W.value),get value(){return t.getMasksTensor(W.value)}},this.histogramTensor={get:m=>t.getClassHistogramTensor(m?.frame??W.value),get value(){return t.getClassHistogramTensor(W.value)}}}setFrameSize(e,t){this._width===e&&this._height===t||(this._width=e,this._height=t,this._transformer=new le({width:e,height:t,fov:this._cameraFov}),this.invalidateSignals())}setStencilTexture(e){this._stencilTexture=e}get stencilTexture(){return this._stencilTexture}latestAtOrBefore(e,t,n=8){let o=this.clamp(t),i=Math.max(0,o-n);for(let s=o;s>=i;s--){let d=e.get(s);if(d!==void 0)return d}}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)??en()}setObjectResult(e,t){let n="objects"in t?t:{objects:t,rawDetections:[]};this._objectCache.set(this.clamp(e),{objects:n.objects,rawDetections:n.rawDetections??[]}),this.invalidateSignals()}getObjectResult(e){return this.latestAtOrBefore(this._objectCache,e)??Jt()}setMaskResult(e,t){this._maskCache.set(this.clamp(e),t),this.invalidateSignals()}getMaskResult(e){return this._maskSource?.(e)??this.latestAtOrBefore(this._maskCache,e)??[]}setMatteResult(e,t){this._matteCache.set(this.clamp(e),t),this.invalidateSignals()}getMatteResult(e){return this._matteSource?.(e)??this.latestAtOrBefore(this._matteCache,e)}summary(e=W.value){let t=this.clamp(e),n=this.getObjectResult(t),o=n.objects.map(d=>({trackId:d.trackId,category:d.category,score:d.score,center:[d.centerX,d.centerY],speed:d.speed,active:d.active})),i=new Set;for(let d of n.objects)d.active&&i.add(d.category);let s={};for(let d of this.getMaskResult(t))s[d.category]=(s[d.category]??0)+1;return{frame:t,objects:o,classes:Array.from(i).sort(),masks:s}}getPoseLandmarksTensor(e){let n=this.getPoseResult(e).people[0]?.keypoints??[],o=new Float32Array(51);for(let i=0;i<17;i++)o[i*3]=n[i]?.x??.5,o[i*3+1]=n[i]?.y??.5,o[i*3+2]=n[i]?.visibility??0;return{data:o,shape:[17,3],dtype:"float32"}}getObjectsTensor(e,t=16){let n=this.getObjectResult(e),o=new Float32Array(t*8),i=Math.min(t,n.objects.length);for(let s=0;s<i;s++){let d=n.objects[s],a=s*8,u=0;for(let c=0;c<d.category.length;c++)u=u*31+d.category.charCodeAt(c)&65535;o[a]=d.active?1:0,o[a+1]=u,o[a+2]=d.centerX,o[a+3]=d.centerY,o[a+4]=d.boundingBox.width,o[a+5]=d.boundingBox.height,o[a+6]=d.velocity.vx,o[a+7]=d.velocity.vy}return{data:o,shape:[t,8],dtype:"float32"}}getMasksTensor(e,t=16){let n=this.getMaskResult(e),o=new Float32Array(t*2),i=Math.min(t,n.length);for(let s=0;s<i;s++){let d=n[s];o[s*2]=d.coverage;let a=this.getObjectResult(e).objects.find(c=>c.trackId===d.trackId),u=a?a.boundingBox.width*a.boundingBox.height:0;o[s*2+1]=u>0?d.area/u:0}return{data:o,shape:[t,2],dtype:"float32"}}getClassHistogramTensor(e,t=80){let n=new Float32Array(t);for(let o of this.getObjectResult(e).objects)if(o.active){let i=Gn.get(o.category.toLowerCase());i!==void 0&&(n[i]+=1)}return{data:n,shape:[t],dtype:"float32"}}clamp(e){return Math.max(0,Math.min(this._totalFrames-1,Math.round(e)))}};var Gn=new Map(he.map((r,e)=>[r,e]));b();function on(r,e,t={}){let n=t.offsetX??0,o=t.offsetY??0,i=t.offsetZ??0;if(!e||typeof e!="object")return r;if("screenX"in e&&e.screenX&&typeof e.screenX=="object"){let s=e;r.x=n!==0?s.screenX.add(n):s.screenX,r.y=o!==0?s.screenY.add(o):s.screenY,r.z=i!==0?s.z.add(i):s.z}else if("x"in e&&typeof e.x=="object"&&e.x!==null){let s=e;r.x=n!==0?s.x.add(n):s.x,r.y=o!==0?s.y.add(o):s.y,r.z=i!==0?s.z.add(i):s.z}else{let s=e;r.x=(s.screenX??s.x)+n,r.y=(s.screenY??s.y)+o,r.z=(s.z??0)+i}return r}function Qs(r,e,t={}){if(!e||typeof e!="object")return r;if("anchors"in e&&e.anchors){let n=e,o=t.anchor??(t.matchWidth||t.matchHeight?"topLeft":"center"),i=n.anchors[o]??n.center,s=i;return t.smoothFrames&&t.smoothFrames>1&&(s={x:i.x.smooth(t.smoothFrames),y:i.y.smooth(t.smoothFrames),z:i.z,screenX:i.screenX.smooth(t.smoothFrames),screenY:i.screenY.smooth(t.smoothFrames)}),t.matchWidth&&(r.width=t.smoothFrames&&t.smoothFrames>1?n.bounds.screenWidth.smooth(t.smoothFrames):n.bounds.screenWidth),t.matchHeight&&(r.height=t.smoothFrames&&t.smoothFrames>1?n.bounds.screenHeight.smooth(t.smoothFrames):n.bounds.screenHeight),t.hideWhenLost&&(r.opacity=n.active),on(r,s,t)}return on(r,e,t)}b();function $n(r){let e=[];return r.enableDetection===!0&&e.push("detect"),r.enableSegmentation===!0&&e.push("segment"),r.enablePose===!0&&e.push("pose"),r.enableMatte===!0&&e.push("matte"),e.length>0?e:["detect"]}var Ze=class r{id;kind="vision";source;config;vision;_runner;_runnerOptions;constructor(e,t={},n={},o={}){this.id=`vision-${Math.random().toString(36).slice(2,9)}`,this.source=e,this.config=t,this._runnerOptions=o,this.vision=new Te({...n,config:t})}runner(){if(!this._runner){let{variant:e,confidence:t,classes:n,modelsDir:o,baseUrl:i,maskThreshold:s,featherRadius:d}=this.config;this._runner=Se.create({...this._runnerOptions,...e!==void 0?{variant:e}:{},...t!==void 0?{confidence:t}:{},...n!==void 0?{classes:n}:{},...o!==void 0?{modelsDir:o}:{},...i!==void 0?{baseUrl:i}:{},...s!==void 0?{maskThreshold:s}:{},...d!==void 0?{featherRadius:d}:{}})}return this._runner}async ready(){let e=this.runner();return await e.preload($n(this.config)),e}close(){this._runner?.close(),this._runner=void 0}static attach(e,t={},n={}){let o=new r(e,t,n),i=o.vision;return Object.defineProperties(i,{node:{value:o.toNode(),enumerable:!0},ready:{value:()=>o.ready()},runner:{value:()=>o.runner()},close:{value:()=>o.close()}}),i}toNode(){return{id:this.id,kind:"vision",source:this.source,config:this.config}}};b();b();function si(r,e,t,n,o){let i=r.width,s=r.height,d=-1,a=-1;for(let v=0;v<r.height;v++)for(let E=0;E<r.width;E++)(r.mask[v*r.width+E]??0)<128||(i=Math.min(i,E),s=Math.min(s,v),d=Math.max(d,E),a=Math.max(a,v));let u=d>=0,c=u?i:0,l=u?s:0,h=u?d-i+1:0,g=u?a-s+1:0,y=c+h/2,O=l+g/2,R=u&&o?.active?(y-o.centerX)*t:0,x=u&&o?.active?(O-o.centerY)*t:0;return{trackId:r.trackId??1,category:r.category,score:n,boundingBox:{originX:c,originY:l,width:h,height:g,normalizedX:c/r.width,normalizedY:l/r.height,normalizedWidth:h/r.width,normalizedHeight:g/r.height},centerX:y,centerY:O,normalizedCenterX:y/r.width,normalizedCenterY:O/r.height,velocity:{vx:R,vy:x},speed:Math.hypot(R,x),age:e+1,hits:e+1,active:u,isCoasting:!1}}export{ct as a,lt as b,dt as c,Jn as d,ut as e,er as f,lr as g,ln as h,fr as i,gr as j,br as k,yr as l,xr as m,kr as n,Sr as o,_r as p,Tr as q,wr as r,vr as s,Mr as t,Pr as u,Ir as v,Rr as w,Fr as x,Vr as y,dn as z,gt as A,ht as B,Br as C,un as D,mn as E,fn as F,pn as G,hn as H,gn as I,Ve as J,bt as K,bn as L,De as M,Jr as N,yt as O,so as P,io as Q,lo as R,be as S,q as T,fo as U,he as V,ge as W,ko as X,Lt as Y,Gt as Z,S as _,ze as $,Tt as aa,vt as ba,Mt as ca,ke as da,Se as ea,Is as fa,rn as ga,Fs as ha,si as ia,le as ja,Bs as ka,Te as la,on as ma,Qs as na,Ze as oa};
@@ -0,0 +1 @@
1
+ import{f as c,g as p}from"./chunk-Y4NIR77Z.mjs";p();p();p();function v(r,e){let n=0,t=1;for(;;){if(e>=r.length)throw new Error("ONNX model: truncated varint");let o=r[e++];if(n+=(o&127)*t,o<128)return[n,e];t*=128}}function b(r){let e=[],n=0;for(;n<r.length;){let t=n,[o,i]=v(r,n);n=i;let a=Math.floor(o/8),d=o&7,l=r.subarray(n,n);if(d===0)n=v(r,n)[1];else if(d===1)n+=8;else if(d===5)n+=4;else if(d===2){let[m,u]=v(r,n);l=r.subarray(u,u+m),n=u+m}else throw new Error(`ONNX model: unsupported wire type ${d}`);if(n>r.length)throw new Error("ONNX model: truncated field");e.push({number:a,wire:d,raw:r.subarray(t,n),body:l})}return e}var Y=new TextDecoder,W=new TextEncoder;function x(r,e){return b(r).filter(n=>n.number===e&&n.wire===2).map(n=>Y.decode(n.body))}function h(r,e){return x(r,e)[0]}function w(r){let e=[];for(;r>=128;)e.push(r%128|128),r=Math.floor(r/128);return e.push(r),e}function f(r,e){let n=[...w(r*8+2),...w(e.length)],t=new Uint8Array(n.length+e.length);return t.set(n,0),t.set(e,n.length),t}function P(r){let e=new Uint8Array(r.reduce((t,o)=>t+o.length,0)),n=0;for(let t of r)e.set(t,n),n+=t.length;return e}var ee=4,re=5,ne=2,D=1,te=3,oe=5,ie=1;function L(r){let e=[];if(r.wire===2){let n=0;for(;n<r.body.length;){let[t,o]=v(r.body,n);e.push(t),n=o}}else if(r.wire===0){let n=0;n=v(r.raw,n)[1],e.push(v(r.raw,n)[0])}return e}function G(r){return b(r).filter(e=>e.number===ie).flatMap(L)}function F(r){let e;try{e=b(r).find(o=>o.number===7&&o.wire===2)}catch{return!0}if(!e)return!0;let n=new Map,t=[];for(let o of b(e.body))if(o.number===5){let i=h(o.body,8);i!==void 0&&n.set(i,G(o.body))}else if(o.number===1){let i=h(o.body,ee);if(i!=="Conv"&&i!=="Constant")continue;let a=b(o.body).filter(s=>s.number===re).map(s=>s.body);if(i==="Constant"){let s=a.find(I=>h(I,D)==="value"),y=s&&b(s).find(I=>I.number===oe),k=x(o.body,ne)[0];y&&k&&n.set(k,G(y.body));continue}let d=a.find(s=>h(s,D)==="group"),l=d&&b(d).find(s=>s.number===te),m=l?L(l)[0]??1:1,u=x(o.body,1)[1];m>1&&u&&t.push({weight:u,group:m})}return t.some(({weight:o})=>{let i=n.get(o)?.[1];return i!==void 0&&i>1&&i%4!==0})}var se="onnxruntime-web",ae=()=>import(se),A=class{kind="webgpu";_loader;_providers;_wasmFallback;_ortPromise;device;constructor(e={}){this._loader=e.loader??ae,this._providers=e.executionProviders??["webgpu","wasm"],this._wasmFallback=e.wasmFallback!==!1,this.device=e.device}ort(){return this._ortPromise||(this._ortPromise=this._loader().catch(e=>{throw this._ortPromise=void 0,new Error(`onnxruntime-web failed to load (${String(e)}). Install it in the browser bundle or pass a custom loader.`)})),this._ortPromise}async createOrtSession(e,n,t){try{let o=this.device,i=F(n)?"NCHW":"NHWC";return await e.InferenceSession.create(n,{executionProviders:this._providers.map(a=>de(a,o,i)),graphOptimizationLevel:"all",externalData:t?.externalData?.map(({path:a,data:d})=>({path:a,data:d})),logSeverityLevel:3})}catch(o){if(!this._wasmFallback||!this._providers.includes("webgpu"))throw o;return await e.InferenceSession.create(n,{executionProviders:["wasm"],graphOptimizationLevel:"all",externalData:t?.externalData?.map(({path:i,data:a})=>({path:i,data:a})),logSeverityLevel:3})}}async createSession(e,n){let t=await this.ort(),o=await N(t,()=>this.createOrtSession(t,e,n)),i=async a=>{let d={};for(let u of a){let s=a.length===1&&!o.inputNames.includes(u.name)?o.inputNames[0]??u.name:u.name;if(u.gpuBuffer&&!(u.data instanceof Float32Array))throw new Error("GPU-buffer vision inputs must be float32.");d[s]=u.gpuBuffer&&t.Tensor.fromGpuBuffer?t.Tensor.fromGpuBuffer(u.gpuBuffer,{dataType:"float32",dims:[...u.dims]}):new t.Tensor(u.data instanceof Uint8Array?"bool":u.data instanceof BigInt64Array?"int64":u.data instanceof Int32Array?"int32":"float32",u.data,[...u.dims])}let l=await N(t,()=>o.run(d)),m={};for(let[u,s]of Object.entries(l))m[u]={data:s.data,dims:[...s.dims]};return m};return{run:a=>i([a]),runMany:i,release:()=>{N(t,()=>o.release())}}}};function de(r,e,n){return r!=="webgpu"?r:e?{name:r,preferredLayout:n,device:e}:{name:r,preferredLayout:n}}var B=new WeakMap;function N(r,e){let n=(B.get(r)??Promise.resolve()).then(e,e);return B.set(r,n.catch(()=>{})),n}p();p();var ue=1,ce=8,le=7,pe=2,fe=1,me=2,be=11,ye=12,ve=1,Pe=2,ge=4,we=1,he=2,Oe=1,_e=1,Ee=2,xe=1,Ae=1,Se=1,O=(r,e)=>f(r,W.encode(e)),S=(r,e)=>new Uint8Array([...w(r*8),...w(e)]);function C(r){let e=f(xe,S(Ae,1)),n=P([S(_e,Se),f(Ee,e)]);return P([O(we,r),f(he,f(Oe,n))])}var H;function j(){return H??=P([S(ue,8),f(ce,S(pe,13)),f(le,P([f(fe,P([O(ve,"x"),O(Pe,"y"),O(ge,"Identity")])),O(me,"probe"),f(be,C("x")),f(ye,C("y"))]))]),H}p();var Te="onnxruntime-web/webgpu",Ie="webgpu",_,Ne=/llvmpipe|lavapipe|swiftshader|software/i;function Ue(){return _||(_=(async()=>{let r=globalThis;if(!r.navigator?.gpu){let{create:i,globals:a}=await import(Ie);Object.assign(globalThis,a),r.navigator??={},Object.defineProperty(r.navigator,"gpu",{value:i([]),configurable:!0,writable:!0})}let n=await(r.navigator?.gpu).requestAdapter({powerPreference:"high-performance"});if(!n)throw new Error("No WebGPU adapter.");let t=n.info??{},o=[t.vendor,t.architecture,t.device,t.description].filter(Boolean).join(" ");if(n.isFallbackAdapter===!0||t.isFallbackAdapter===!0||Ne.test(o))throw new Error(`WebGPU adapter is a software rasterizer (${o}).`);Re(n.features)})(),_.catch(()=>{_=void 0})),_}function Re(r){let e=Object.getPrototypeOf(r);!e||typeof e.keys!="function"||(typeof e.forEach!="function"&&Object.defineProperty(e,"forEach",{value(n,t){for(let o of this.keys())n.call(t,o,o,this)},configurable:!0,writable:!0}),typeof e.values!="function"&&Object.defineProperty(e,"values",{value(){return this.keys()},configurable:!0,writable:!0}),typeof e.entries!="function"&&Object.defineProperty(e,"entries",{*value(){for(let n of this.keys())yield[n,n]},configurable:!0,writable:!0}))}var T=class{kind="webgpu";device;_inner;constructor(e={}){let n=e.loader??(async()=>{await Ue();let t=await import(Te);return t.env?.wasm&&(t.env.wasm.numThreads=1),t.env?.webgpu&&(t.env.webgpu.powerPreference="high-performance"),t});this.device=e.device,this._inner=new A({wasmFallback:!1,...e,loader:n})}createSession(e,n){return this._inner.createSession(e,n)}};function Ve(r){return r.backend?r.backend():Promise.resolve(r.kind==="webgpu"?"webgpu":"cpu")}var U,R;function nr(r){R=r}function tr(r){U=r}var ke=Symbol.for("framefields.vision.backend");function E(r){let e=globalThis[ke];if(typeof e=="function")try{e(r)}catch{}}function We(){let r=typeof c<"u"?c.env.FRAMEFIELDS_VISION_PROVIDER?.trim().toLowerCase():void 0;return r==="webgpu"||r==="cuda"||r==="cpu"?r:"auto"}var V=class{_resolved;_resolving;get kind(){return this._resolved?.kind??"webgpu"}get device(){return this._resolved?.device}async createSession(e,n){if(this._resolved)return this._resolved.createSession(e,n);if(this._resolving)return(await this._resolving).provider.createSession(e,n);let{provider:t,first:o}=await this.start(e,n);return o??t.createSession(e,n)}async backend(){!this._resolved&&!this._resolving&&(await this.start(j())).first?.release();let e=this._resolved??(await this._resolving)?.provider;if(!e)throw new Error("No vision backend could be resolved.");return Ve(e)}start(e,n){let t=this.resolve(e,n);return this._resolving=t,t.then(({provider:o})=>{this._resolved=o},()=>{this._resolving=void 0}),t}async resolve(e,n){let t=We();if(t==="cpu")return E({backend:"cpu",sharedDevice:!1,reason:"FRAMEFIELDS_VISION_PROVIDER=cpu"}),{provider:new g};if(t==="cuda")return E({backend:"cuda",sharedDevice:!1}),{provider:q()};if(t==="auto"&&await De())try{let i=await new g({executionProviders:["cuda"]}).createSession(e,n);return E({backend:"cuda",sharedDevice:!1}),i.release(),{provider:q()}}catch{}let o=new T({wasmFallback:!1,device:R});try{let i=await o.createSession(e,n);return E({backend:"webgpu",sharedDevice:!!R}),{provider:o,first:i}}catch(i){if(t==="webgpu")throw i;return E({backend:"cpu",sharedDevice:!1,reason:i instanceof Error?i.message:String(i)}),{provider:new g}}}};function q(){return new g({executionProviders:["cuda","cpu"]})}async function De(){if(typeof c>"u"||c.platform!=="linux")return!1;try{let{access:r}=await import("./shims/fs-promises.mjs");return await r("/proc/driver/nvidia/version"),!0}catch{return!1}}var z;function or(){return U?U():(z??=new V,z)}async function Ge(){let r=await import("./shims/os.mjs"),e=typeof r.availableParallelism=="function"?r.availableParallelism():r.cpus().length,n=await Me();return Math.max(1,n!==void 0?Math.min(e,n):e)}async function Me(){if(typeof c>"u"||c.platform!=="linux")return;let{readFile:r}=await import("./shims/fs-promises.mjs"),e=a=>r(a,"utf8").then(d=>d.trim(),()=>{}),n=(a,d)=>a>0&&d>0?Math.ceil(a/d):void 0,t=await e("/sys/fs/cgroup/cpu.max");if(t!==void 0){let[a,d]=t.split(/\s+/);return a==="max"?void 0:n(Number(a),Number(d))}let o=await e("/sys/fs/cgroup/cpu/cpu.cfs_quota_us"),i=await e("/sys/fs/cgroup/cpu/cpu.cfs_period_us");if(!(o===void 0||i===void 0))return n(Number(o),Number(i))}async function Le(){let r=typeof c<"u"?Number.parseInt(c.env.FRAMEFIELDS_VISION_THREADS??"",10):Number.NaN;if(Number.isFinite(r)&&r>0)return r;if(!(typeof c>"u"||c.platform!=="linux"))return Ge()}var g=class{kind="node";_executionProviders;constructor(e={}){this._executionProviders=e.executionProviders??["cpu"]}backend(){return Promise.resolve(this._executionProviders.includes("cuda")?"cuda":"cpu")}ortPromise;async ort(){return this.ortPromise||(this.ortPromise=import("./onnxruntime-node-JCLVQ7P3.mjs").catch(e=>{throw this.ortPromise=void 0,new Error(`onnxruntime-node failed to load (${String(e)}). Install it in the environment or provide a custom SessionProvider.`)})),this.ortPromise}async createSession(e,n){let t=await this.ort(),o=await Le(),i=await t.InferenceSession.create(e,{executionProviders:[...this._executionProviders],externalData:n?.externalData?.map(({path:d,data:l})=>({path:d,data:l})),graphOptimizationLevel:"all",...o!==void 0?{intraOpNumThreads:o,interOpNumThreads:1}:{}}),a=async d=>{let l={};for(let s of d){let y=d.length===1&&!i.inputNames.includes(s.name)?i.inputNames[0]??s.name:s.name;if(s.gpuBuffer)throw new Error("CPU vision sessions do not accept GPU buffers.");l[y]=s.data instanceof Uint8Array?new t.Tensor("bool",s.data,[...s.dims]):s.data instanceof BigInt64Array?new t.Tensor("int64",s.data,[...s.dims]):s.data instanceof Int32Array?new t.Tensor("int32",s.data,[...s.dims]):new t.Tensor("float32",s.data,[...s.dims])}let m=await i.run(l),u={};for(let[s,y]of Object.entries(m))u[s]={data:y.data,dims:[...y.dims]};return u};return{run:d=>a([d]),runMany:a,release:()=>{i.release()}}}};export{v as a,b,W as c,x as d,h as e,w as f,f as g,P as h,A as i,Ve as j,nr as k,tr as l,or as m};
@@ -1,4 +1,4 @@
1
- import{a as P,d as h,f as V,g as _,h as C,j as B,k as M,m as k}from"./chunk-54Q5CKSV.mjs";import{e as v}from"./chunk-GXFYRMJZ.mjs";import{g as U}from"./chunk-KOVN277Z.mjs";import{g}from"./chunk-Y4NIR77Z.mjs";g();g();var te=`
1
+ import{a as P,d as h,f as V,g as _,h as C,k as B,l as M,n as k}from"./chunk-3QTHW2CD.mjs";import{e as v}from"./chunk-GXFYRMJZ.mjs";import{g as U}from"./chunk-77MT33VR.mjs";import{g}from"./chunk-Y4NIR77Z.mjs";g();g();var te=`
2
2
  struct FilmUniforms {
3
3
  strength : f32,
4
4
  size : f32,
@@ -1,4 +1,4 @@
1
- import{a as le}from"./chunk-2GA735OZ.mjs";import{b as se,c as ue}from"./chunk-3DXMWDQ3.mjs";import{a as te,d as ae,e as G,g as ie,h as _,j as ne,k as re,l as oe,m as L}from"./chunk-54Q5CKSV.mjs";import{a as r}from"./chunk-6FULVULN.mjs";import{d as Z,g as ee}from"./chunk-KOVN277Z.mjs";import{g as n}from"./chunk-Y4NIR77Z.mjs";n();n();n();n();var N=0,U=1,V=.5,O=50,P=0,F=100,B=0,W=50,H=-100,z=100,ye=r.enum(["Alpha","Luminance","Red","Green","Blue"]),De=r.enum(["Composite","MatteOnly","DecontaminatedRGB"]),we=le().field("decontaminateAmount",r.number().multipleOf(.01).min(N).max(U).default(.7),{bindable:!0,dataTypes:["Number","Signal"],label:"Decontaminate Colors",description:"Amount of edge color spill decontamination/defringing (0.0\u20131.0)."}).field("radius",r.number().multipleOf(.1).min(V).max(O).default(2),{bindable:!0,dataTypes:["Number","Signal"],label:"Edge Detection Radius (px)",description:"Radius in pixels around alpha transitions to refine and decontaminate."}).field("smooth",r.number().min(P).max(F).default(5),{bindable:!0,dataTypes:["Number","Signal"],label:"Smoothness",description:"Matte edge smoothing curve intensity (0\u2013100)."}).field("feather",r.number().multipleOf(.1).min(B).max(W).default(.5),{bindable:!0,dataTypes:["Number","Signal"],label:"Feather (px)",description:"Sub-pixel gaussian softness along the matte boundary."}).field("shiftEdge",r.number().min(H).max(z).default(0),{bindable:!0,dataTypes:["Number","Signal"],label:"Shift Edge (%)",description:"Contract (<0) or expand (>0) the edge boundary (-100% to +100%)."}).field("matteChannel",ye.default("Alpha"),{label:"Matte Channel",description:"Channel to extract matte from (Alpha, Luminance, Red, Green, Blue)."}).field("outputMode",De.default("Composite"),{label:"Output Mode",description:"Composite (decontaminated RGB + refined alpha), MatteOnly (grayscale mask), DecontaminatedRGB (clean RGB with full alpha)."}).build(),Oe=we.schema,Pe=r.union([se,ue]);n();var Ge={Alpha:0,Luminance:1,Red:2,Green:3,Blue:4},_e={Composite:0,MatteOnly:1,DecontaminatedRGB:2},Le=`
1
+ import{a as le}from"./chunk-2GA735OZ.mjs";import{b as se,c as ue}from"./chunk-3DXMWDQ3.mjs";import{a as te,d as ae,e as G,g as ie,h as _,k as ne,l as re,m as oe,n as L}from"./chunk-3QTHW2CD.mjs";import{a as r}from"./chunk-6FULVULN.mjs";import{d as Z,g as ee}from"./chunk-77MT33VR.mjs";import{g as n}from"./chunk-Y4NIR77Z.mjs";n();n();n();n();var N=0,U=1,V=.5,O=50,P=0,F=100,B=0,W=50,H=-100,z=100,ye=r.enum(["Alpha","Luminance","Red","Green","Blue"]),De=r.enum(["Composite","MatteOnly","DecontaminatedRGB"]),we=le().field("decontaminateAmount",r.number().multipleOf(.01).min(N).max(U).default(.7),{bindable:!0,dataTypes:["Number","Signal"],label:"Decontaminate Colors",description:"Amount of edge color spill decontamination/defringing (0.0\u20131.0)."}).field("radius",r.number().multipleOf(.1).min(V).max(O).default(2),{bindable:!0,dataTypes:["Number","Signal"],label:"Edge Detection Radius (px)",description:"Radius in pixels around alpha transitions to refine and decontaminate."}).field("smooth",r.number().min(P).max(F).default(5),{bindable:!0,dataTypes:["Number","Signal"],label:"Smoothness",description:"Matte edge smoothing curve intensity (0\u2013100)."}).field("feather",r.number().multipleOf(.1).min(B).max(W).default(.5),{bindable:!0,dataTypes:["Number","Signal"],label:"Feather (px)",description:"Sub-pixel gaussian softness along the matte boundary."}).field("shiftEdge",r.number().min(H).max(z).default(0),{bindable:!0,dataTypes:["Number","Signal"],label:"Shift Edge (%)",description:"Contract (<0) or expand (>0) the edge boundary (-100% to +100%)."}).field("matteChannel",ye.default("Alpha"),{label:"Matte Channel",description:"Channel to extract matte from (Alpha, Luminance, Red, Green, Blue)."}).field("outputMode",De.default("Composite"),{label:"Output Mode",description:"Composite (decontaminated RGB + refined alpha), MatteOnly (grayscale mask), DecontaminatedRGB (clean RGB with full alpha)."}).build(),Oe=we.schema,Pe=r.union([se,ue]);n();var Ge={Alpha:0,Luminance:1,Red:2,Green:3,Blue:4},_e={Composite:0,MatteOnly:1,DecontaminatedRGB:2},Le=`
2
2
  struct RefineEdgeUniforms {
3
3
  dirX : f32,
4
4
  dirY : f32,
@@ -1,4 +1,4 @@
1
- import{a as g}from"./chunk-SE2C623Z.mjs";import{g as l}from"./chunk-KOVN277Z.mjs";import{c as m,h as u}from"./chunk-ULOFDFHJ.mjs";import{g as t}from"./chunk-Y4NIR77Z.mjs";t();t();var x=["pan"],w=()=>`
1
+ import{a as g}from"./chunk-SE2C623Z.mjs";import{g as l}from"./chunk-77MT33VR.mjs";import{c as m,h as u}from"./chunk-ULOFDFHJ.mjs";import{g as t}from"./chunk-Y4NIR77Z.mjs";t();t();var x=["pan"],w=()=>`
2
2
  struct Uniforms {
3
3
  sampleRate : f32,
4
4
  pan : f32,
@@ -1,4 +1,4 @@
1
- import{a as C,d as G,g as O,h as V,m as A}from"./chunk-54Q5CKSV.mjs";import{g as I}from"./chunk-KOVN277Z.mjs";import{g as M}from"./chunk-Y4NIR77Z.mjs";M();M();var se=e=>e*e,ae=e=>e*(2-e),ue=e=>e<.5?2*e*e:-1+(4-2*e)*e,ce=e=>{let t=2*Math.PI/3;return e===0?0:e===1?1:2**(-10*e)*Math.sin((e*10-.75)*t)+1},le=(e,t)=>{switch(t){case"ease-in":return se(e);case"ease-out":return ae(e);case"ease-in-out":return ue(e);case"spring":return ce(e);default:return e}},T=(e,t,o,s,i)=>{let n=i*i,r=n*i;return .5*(2*t+(-e+o)*i+(2*e-5*t+4*o-s)*n+(-e+3*t-3*o+s)*r)};function E(e,t,o="spline"){if(e.length===0)return{x:50,y:50,scale:1};if(e.length===1){let n=e[0];return{x:n.x??50,y:n.y??50,scale:n.scale??1}}let s=0;for(let n=0;n<e.length;n++){let r=e[n],h=r.holdMs??0,m=r.durationMs??0;if(t<=s+h)return{x:r.x??50,y:r.y??50,scale:r.scale??1};if(s+=h,n<e.length-1&&m>0){if(t<=s+m){let f=(t-s)/m,a=le(Math.max(0,Math.min(1,f)),r.easing),u=e[n+1];if(o==="spline"){let b=e[n-1]??r,x=e[n+2]??u;return{x:T(b.x??50,r.x??50,u.x??50,x.x??50,a),y:T(b.y??50,r.y??50,u.y??50,x.y??50,a),scale:T(b.scale??1,r.scale??1,u.scale??1,x.scale??1,a)}}return{x:(r.x??50)+((u.x??50)-(r.x??50))*a,y:(r.y??50)+((u.y??50)-(r.y??50))*a,scale:(r.scale??1)+((u.scale??1)-(r.scale??1))*a}}s+=m}}let i=e[e.length-1];return{x:i.x??50,y:i.y??50,scale:i.scale??1}}function X(e,t,o,s){let i=100,n=100;if(s!=="input"){let p=s.split(":"),g=Number(p[0]),c=Number(p[1]);if(!Number.isNaN(g)&&!Number.isNaN(c)&&g>0&&c>0){let l=g/c,y=t/o;y>l?(n=100,i=l/y*100):(i=100,n=y/l*100)}}let r=i/100*t,h=n/100*o,m=Math.max(e.scale,1),f=r/m,a=h/m,u=e.x/100*t,b=e.y/100*o,x=f/2,B=a/2,P=Math.max(x,Math.min(t-x,u)),R=Math.max(B,Math.min(o-B,b));return{x:P-x,y:R-B,width:f,height:a}}var me=`
1
+ import{a as C,d as G,g as O,h as V,n as A}from"./chunk-3QTHW2CD.mjs";import{g as I}from"./chunk-77MT33VR.mjs";import{g as M}from"./chunk-Y4NIR77Z.mjs";M();M();var se=e=>e*e,ae=e=>e*(2-e),ue=e=>e<.5?2*e*e:-1+(4-2*e)*e,ce=e=>{let t=2*Math.PI/3;return e===0?0:e===1?1:2**(-10*e)*Math.sin((e*10-.75)*t)+1},le=(e,t)=>{switch(t){case"ease-in":return se(e);case"ease-out":return ae(e);case"ease-in-out":return ue(e);case"spring":return ce(e);default:return e}},T=(e,t,o,s,i)=>{let n=i*i,r=n*i;return .5*(2*t+(-e+o)*i+(2*e-5*t+4*o-s)*n+(-e+3*t-3*o+s)*r)};function E(e,t,o="spline"){if(e.length===0)return{x:50,y:50,scale:1};if(e.length===1){let n=e[0];return{x:n.x??50,y:n.y??50,scale:n.scale??1}}let s=0;for(let n=0;n<e.length;n++){let r=e[n],h=r.holdMs??0,m=r.durationMs??0;if(t<=s+h)return{x:r.x??50,y:r.y??50,scale:r.scale??1};if(s+=h,n<e.length-1&&m>0){if(t<=s+m){let f=(t-s)/m,a=le(Math.max(0,Math.min(1,f)),r.easing),u=e[n+1];if(o==="spline"){let b=e[n-1]??r,x=e[n+2]??u;return{x:T(b.x??50,r.x??50,u.x??50,x.x??50,a),y:T(b.y??50,r.y??50,u.y??50,x.y??50,a),scale:T(b.scale??1,r.scale??1,u.scale??1,x.scale??1,a)}}return{x:(r.x??50)+((u.x??50)-(r.x??50))*a,y:(r.y??50)+((u.y??50)-(r.y??50))*a,scale:(r.scale??1)+((u.scale??1)-(r.scale??1))*a}}s+=m}}let i=e[e.length-1];return{x:i.x??50,y:i.y??50,scale:i.scale??1}}function X(e,t,o,s){let i=100,n=100;if(s!=="input"){let p=s.split(":"),g=Number(p[0]),c=Number(p[1]);if(!Number.isNaN(g)&&!Number.isNaN(c)&&g>0&&c>0){let l=g/c,y=t/o;y>l?(n=100,i=l/y*100):(i=100,n=y/l*100)}}let r=i/100*t,h=n/100*o,m=Math.max(e.scale,1),f=r/m,a=h/m,u=e.x/100*t,b=e.y/100*o,x=f/2,B=a/2,P=Math.max(x,Math.min(t-x,u)),R=Math.max(B,Math.min(o-B,b));return{x:P-x,y:R-B,width:f,height:a}}var me=`
2
2
  struct MotionBlurUniforms {
3
3
  prev_origin : vec2<f32>,
4
4
  prev_size : vec2<f32>,
@@ -1,4 +1,4 @@
1
- import{a as X}from"./chunk-2GA735OZ.mjs";import{b as k,c as E}from"./chunk-3DXMWDQ3.mjs";import{a as W,d as v,e as F,g as M,h as N,j as A,k as O,l as z,m as y}from"./chunk-54Q5CKSV.mjs";import{a as g}from"./chunk-6FULVULN.mjs";import{d as D,g as V}from"./chunk-KOVN277Z.mjs";import{g as s}from"./chunk-Y4NIR77Z.mjs";s();s();s();var R=250,ne=X().field("radius",g.number().min(.1).max(R).default(3),{bindable:!0,dataTypes:["Number","Signal"],label:"Radius Signal",description:"The cutoff radius in pixels. Frequencies smaller than this radius are preserved."}).field("contrastBoost",g.number().multipleOf(.01).min(1).max(10).default(1),{bindable:!0,dataTypes:["Number","Signal"],label:"Contrast Boost Signal",description:"Multiplier applied to the extracted high-frequency detail delta."}).field("monochrome",g.boolean().default(!0),{description:"When enabled, high-pass delta is converted to luminance before centering on 50% neutral gray."}).build(),ge=ne.schema,fe=g.union([k,E]);var ue=`
1
+ import{a as X}from"./chunk-2GA735OZ.mjs";import{b as k,c as E}from"./chunk-3DXMWDQ3.mjs";import{a as W,d as v,e as F,g as M,h as N,k as A,l as O,m as z,n as y}from"./chunk-3QTHW2CD.mjs";import{a as g}from"./chunk-6FULVULN.mjs";import{d as D,g as V}from"./chunk-77MT33VR.mjs";import{g as s}from"./chunk-Y4NIR77Z.mjs";s();s();s();var R=250,ne=X().field("radius",g.number().min(.1).max(R).default(3),{bindable:!0,dataTypes:["Number","Signal"],label:"Radius Signal",description:"The cutoff radius in pixels. Frequencies smaller than this radius are preserved."}).field("contrastBoost",g.number().multipleOf(.01).min(1).max(10).default(1),{bindable:!0,dataTypes:["Number","Signal"],label:"Contrast Boost Signal",description:"Multiplier applied to the extracted high-frequency detail delta."}).field("monochrome",g.boolean().default(!0),{description:"When enabled, high-pass delta is converted to luminance before centering on 50% neutral gray."}).build(),ge=ne.schema,fe=g.union([k,E]);var ue=`
2
2
  struct HighPassUniforms {
3
3
  dirX : f32,
4
4
  dirY : f32,
@@ -1,4 +1,4 @@
1
- import{a as B,d as R,e as E,f as O,g as $,h as Y,j as k,m as K}from"./chunk-54Q5CKSV.mjs";import{e as A}from"./chunk-GXFYRMJZ.mjs";import{b as T,g as W}from"./chunk-KOVN277Z.mjs";import{a as X}from"./chunk-354GX6IB.mjs";import{g as D}from"./chunk-Y4NIR77Z.mjs";D();D();var ye=`
1
+ import{a as B,d as R,e as E,f as O,g as $,h as Y,k,n as K}from"./chunk-3QTHW2CD.mjs";import{e as A}from"./chunk-GXFYRMJZ.mjs";import{b as T,g as W}from"./chunk-77MT33VR.mjs";import{a as X}from"./chunk-354GX6IB.mjs";import{g as D}from"./chunk-Y4NIR77Z.mjs";D();D();var ye=`
2
2
  struct RelightUniforms {
3
3
  // vec4 0
4
4
  lightType : f32, // 0=Point, 1=Spot, 2=Directional, 3=Rim
@@ -1,4 +1,4 @@
1
- import{a as h}from"./chunk-SE2C623Z.mjs";import{f as t,g}from"./chunk-KOVN277Z.mjs";import{c as i,d as c}from"./chunk-ULOFDFHJ.mjs";import{g as r}from"./chunk-Y4NIR77Z.mjs";r();r();var x=["frequency","gain","q"],v=()=>`
1
+ import{a as h}from"./chunk-SE2C623Z.mjs";import{f as t,g}from"./chunk-77MT33VR.mjs";import{c as i,d as c}from"./chunk-ULOFDFHJ.mjs";import{g as r}from"./chunk-Y4NIR77Z.mjs";r();r();var x=["frequency","gain","q"],v=()=>`
2
2
  struct Uniforms {
3
3
  sampleRate : f32,
4
4
  numBands : f32,