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
@@ -0,0 +1,483 @@
1
+ import{a as et,b as rt,c as yt}from"./chunk-JAAFSVAG.mjs";import{c as mt,d as pt,e as A}from"./chunk-CSLSWUUT.mjs";import{b as tt}from"./chunk-P4Y3PMJF.mjs";import{e as ft}from"./chunk-GXFYRMJZ.mjs";import{B as gt,c as dt,e as xt,y as U,z as C}from"./chunk-64L4GUOF.mjs";import{a as D}from"./chunk-354GX6IB.mjs";import{g as b}from"./chunk-Y4NIR77Z.mjs";b();function Nt(s,t=180,e=12,r=1,i=0){if(s<=0)return 0;let a=Math.sqrt(Math.max(1e-4,t)/Math.max(1e-4,r)),o=e/(2*Math.sqrt(Math.max(1e-4,t*r)));if(o<1){let l=a*Math.sqrt(1-o*o),n=Math.exp(-o*a*s),u=-1,c=(i-o*a*-1)/Math.max(1e-6,l),m=n*(u*Math.cos(l*s)+c*Math.sin(l*s));return Math.min(2,Math.max(-1,1+m))}else if(Math.abs(o-1)<1e-4){let l=Math.exp(-a*s);return 1+(-1+(i-a)*s)*l}else{let l=-a*(o-Math.sqrt(o*o-1)),n=-a*(o+Math.sqrt(o*o-1)),u=(i+n)/Math.max(1e-6,l-n),c=-1-u;return 1+(u*Math.exp(l*s)+c*Math.exp(n*s))}}function jt(s,t=0){if(s===0)return[1,0,0,1];let e=s*Math.PI/180,r=t*Math.PI/180,i=Math.cos(r),a=Math.sin(r),o=Math.tan(e),l=1-o*i*a,n=o*i*i,u=-o*a*a,c=1+o*a*i;return[l,n,u,c]}function Ht(s,t){let e=t.anchorX,r=t.anchorY;switch(t.preset){case"center":e=.5,r=.5;break;case"baseline":e=.5,r=s.height>0?s.ascender/s.height:.8;break;case"bottom_left":e=0,r=1;break;case"bottom_center":e=.5,r=1;break;case"bottom_right":e=1,r=1;break;case"top_left":e=0,r=0;break;case"top_center":e=.5,r=0;break;case"top_right":e=1,r=0;break;default:e=.5,r=.5;break}let i=(e-.5)*s.width+t.offsetX,a=(r-.5)*s.height+t.offsetY;return{px:i,py:a}}function Yt(s,t,e,r=0){if(e===0||t<=1)return 0;let i=r*(t-1);return(s-i)*e}function Xt(s,t){try{let e={textIndex:t.charIndex,textTotal:Math.max(1,t.totalChars),wordIndex:t.wordIndex,wordTotal:Math.max(1,t.totalWords),lineIndex:t.lineIndex,lineTotal:Math.max(1,t.totalLines),time:t.time,frame:t.frame,fps:t.fps,sin:Math.sin,cos:Math.cos,tan:Math.tan,exp:Math.exp,log:Math.log,abs:Math.abs,min:Math.min,max:Math.max,sqrt:Math.sqrt,pow:Math.pow,floor:Math.floor,ceil:Math.ceil,round:Math.round,PI:Math.PI,clamp:(l,n,u)=>Math.max(n,Math.min(u,l)),noise:l=>{let n=Math.sin(l*12.9898+t.frame*.1)*43758.5453;return(n-Math.floor(n))*2-1},signals:t.signals??{}},r=Object.keys(e),i=Object.values(e),a=new Function(...r,`return (${s});`),o=Number(a(...i));return Number.isFinite(o)?Math.max(-1,Math.min(1,o)):0}catch{return 0}}function Qt(s,t,e){let r=Math.max(1,t),i=r>1?s/(r-1):0,a=e.totalAngle*Math.PI/180,o=i*a,l=0,n=0,u=0,c=0,m=0,h=0,d=1;switch(e.mode){case"cylinder":{let y=e.totalAngle<360?(i-.5)*a:o;e.axis==="y"?(l=e.radius*Math.sin(y),u=e.radius*Math.cos(y)-e.radius,m=y*180/Math.PI):e.axis==="x"?(n=e.radius*Math.sin(y),u=e.radius*Math.cos(y)-e.radius,c=y*180/Math.PI):(l=e.radius*Math.sin(y),n=e.radius*Math.cos(y),h=y*180/Math.PI);let g=Math.cos(y);d=Math.max(.25,(g+1)*.5);break}case"vortex":{let g=-Math.PI/2+o,P=e.radius*(1-i*.35);l=P*Math.cos(g),n=P*Math.sin(g),u=-s*e.pitch||0;let v=-.35*e.radius/(a||1),M=v*Math.cos(g)-P*Math.sin(g),G=v*Math.sin(g)+P*Math.cos(g);h=Math.atan2(G,M)*180/Math.PI,d=Math.max(.65,1-i*.35);break}case"helix":{if(e.axis==="x"){let y=e.pitch>10?e.pitch:28;l=(s-(r-1)/2)*y,n=e.radius*Math.sin(o),u=e.radius*Math.cos(o)-e.radius,c=Math.sin(o)*22,d=.75+.25*((Math.cos(o)+1)*.5)}else{let y=(i-.5)*a;l=e.radius*Math.sin(y),n=(s-(r-1)/2)*e.pitch,u=e.radius*Math.cos(y)-e.radius,m=y*180/Math.PI;let g=Math.cos(y);d=Math.max(.65,(g+1)*.5)}break}default:{u=0;break}}let p=Math.max(100,e.perspective??1200),f=p-u,x=f>1?p/f:1;return{x:l*x,y:n*x,z:u,rotX:c,rotY:m,rotZ:h,scaleMult:Math.max(.1,x),depthOpacity:d}}function Kt(s,t,e,r,i){let o=(t>0?Math.max(t,e):e)+r.repeatGap;if(o<=0)return s;let l=r.velocity*i;if(r.snap?.enabled){let n=r.snap.stopIndex??0,u=r.snap.granularity==="character"?40:120,c=n*u,m=Math.min(1,i*1.5);l=l*(1-m)+c*m}if((r.direction==="right"||r.direction==="down")&&(l=-l),r.loop){let n=(s-l)%o;return n<-e?n+o:n}return s-l}function Zt(s,t,e,r,i,a){let o=Math.max(1,t),l=o>1?s/(o-1):.5,n=Math.max(20,e.minFreqHz),u=Math.max(n+100,e.maxFreqHz),c=n*(u/n)**l,m=0,h=ft.getChannelSamples(e.signalChannel,"primary");if(h&&h.length>0){let p=a>0?a:24,f=Math.max(0,Math.min(h.length-1,Math.round(i/p*24)));m=Number(h[f])||0}else if(r){let p=r[e.signalChannel];if(typeof p=="number")m=p;else if(typeof p=="function")m=Number(p(i,a,c))||0;else if(typeof p=="object"&&p!==null){let f=p;if(typeof f.get=="function")m=Number(f.get({frame:i,fps:a,freq:c}))||0;else if(Array.isArray(f.samples)||ArrayBuffer.isView(f.samples)){let x=f.samples,y=Math.floor(l*(x.length-1));m=Number(x[y])||0}}}let d=Math.max(0,Math.min(1,m));return e.minScale+d*(e.maxScale-e.minScale)}b();function ee(s,t,e,r,i,a=0,o=0){let l=t+r,n=e+r;if(n<=l)return 0;let u=(s-l)/(n-l),c=0;switch(i){case"square":c=u>=0&&u<=1?1:0;break;case"ramp_up":c=Math.max(0,Math.min(1,u));break;case"ramp_down":c=1-Math.max(0,Math.min(1,u));break;case"triangle":{u<0||u>1?c=0:u<.5?c=u*2:c=(1-u)*2;break}case"round":{u<0||u>1?c=0:c=.5-.5*Math.cos(u*2*Math.PI);break}case"smooth":{u<=0?c=0:u>=1?c=1:c=u*u*(3-2*u);break}}if(c>0&&c<1){if(a!==0&&c>.5){let m=(c-.5)*2,h=a>0?1+a*3:1/(1-a*3);c=.5+.5*m**h}if(o!==0&&c<=.5){let m=c*2,h=o>0?1+o*3:1/(1-o*3);c=.5*m**h}}return Math.max(0,Math.min(1,c))}function re(s,t,e,r){let i=(t*(1-r)+r)*12.9898+e+s*78.233,a=Math.sin(i)*43758.5453;return(a-Math.floor(a))*2-1}function ie(s,t){let e=t,r=()=>(e=(e*9301+49297)%233280,e/233280),i=Array.from({length:s},(a,o)=>o);for(let a=i.length-1;a>0;a--){let o=Math.floor(r()*(a+1)),l=i[a];i[a]=i[o],i[o]=l}return i}function ne(s,t,e){switch(e){case"add":return Math.max(0,Math.min(1,s+t));case"subtract":return Math.max(0,Math.min(1,s-t));case"intersect":return s*t;case"min":return Math.min(s,t);case"max":return Math.max(s,t);case"difference":return Math.abs(s-t)}}b();var Pt={ascii:"!@#$%^&*()_+{}[]:;<>,.?",alphanumeric:"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",matrix:"010101<>[]{}+=*~#%&!?/\\:;|X0123456789",binary:"01",hex:"0123456789ABCDEF"};function kt(s,t){return s==="custom"&&t&&t.length>0?t:Pt[s]??Pt.alphanumeric}function se(s,t,e,r,i={mode:"human",jitter:.35,commaPauseMultiplier:3,sentencePauseMultiplier:5.5,paragraphPauseMultiplier:7},a={enabled:!1,charset:"alphanumeric",scrambleFramesPerChar:8,highlightProbability:.25},o=2,l="character",n){if(n===void 0&&t<e)return{visibleChars:0,currentDisplayString:"",isCursorVisible:!1};let u=n!==void 0?Math.max(0,Math.min(1,n)):Math.min(1,(t-e)/Math.max(1,r)),c=n!==void 0?u*r:t-e,m=s.length,h=Math.floor(u*m);if(l==="word"){let f=s.split(/(\s+)/),x=[];f.forEach((g,P)=>{g.trim().length>0&&x.push(P)});let y=Math.min(x.length,Math.floor(u*(x.length+1)));if(y<=0)h=0;else{let g=x[Math.min(x.length-1,y-1)];h=f.slice(0,g+1).join("").length}}else if(l==="line"){let f=s.split(`
2
+ `),x=Math.min(f.length,Math.floor(u*(f.length+1)));h=f.slice(0,x).join(`
3
+ `).length}else if(i.mode==="human"&&u<1){let f=0,x=0,y=r/Math.max(1,m);for(let g=0;g<m;g++){let P=s[g],v=1,M=i.commaPauseMultiplier??3,G=i.sentencePauseMultiplier??5.5,B=i.paragraphPauseMultiplier??7,R=i.jitter??.35;P===","||P===";"?v=M:P==="."||P==="!"||P==="?"?v=G:P===`
4
+ `&&(v=B);let L=1+Math.sin(g*17.3+42)*.5*R,w=y*v*L;if(x+=w,x<=c)f=g+1;else break}h=Math.min(m,f)}let d=s.slice(0,h);if(a.enabled&&h<m&&h>0){let f=kt(a.charset,a.customCharset),x=Math.min(h,Math.max(1,a.scrambleFramesPerChar>4?3:2)),y="";for(let g=0;g<x;g++){let P=Math.floor(Math.abs(Math.sin(t*7+g*13))*f.length)%f.length;y+=f[P]}d=d.slice(0,d.length-x)+y}let p=!0;if(o>0){let f=Math.max(1,Math.round(30/(2*o)));p=Math.floor(c/f)%2===0}return{visibleChars:h,currentDisplayString:d,isCursorVisible:p}}b();b();var bt=`
5
+ struct CompositeUniforms {
6
+ blendMode : u32,
7
+ padding1 : u32,
8
+ padding2 : u32,
9
+ padding3 : u32,
10
+ };
11
+
12
+ @group(0) @binding(0) var<uniform> u : CompositeUniforms;
13
+ @group(1) @binding(0) var baseTex : texture_2d<f32>;
14
+ @group(1) @binding(1) var overlayTex : texture_2d<f32>;
15
+ @group(1) @binding(2) var samp : sampler;
16
+
17
+ struct VSOut {
18
+ @builtin(position) pos : vec4<f32>,
19
+ @location(0) uv : vec2<f32>,
20
+ };
21
+
22
+ @vertex fn vs(@builtin(vertex_index) vi: u32) -> VSOut {
23
+ var pos = array<vec2<f32>, 4>(
24
+ vec2<f32>(-1.0, 1.0),
25
+ vec2<f32>(1.0, 1.0),
26
+ vec2<f32>(-1.0, -1.0),
27
+ vec2<f32>(1.0, -1.0)
28
+ );
29
+ var uv = array<vec2<f32>, 4>(
30
+ vec2<f32>(0.0, 0.0),
31
+ vec2<f32>(1.0, 0.0),
32
+ vec2<f32>(0.0, 1.0),
33
+ vec2<f32>(1.0, 1.0)
34
+ );
35
+ return VSOut(vec4<f32>(pos[vi], 0.0, 1.0), uv[vi]);
36
+ }
37
+
38
+ fn lum(c: vec3<f32>) -> f32 {
39
+ return 0.3 * c.r + 0.59 * c.g + 0.11 * c.b;
40
+ }
41
+
42
+ fn clip_color(c: vec3<f32>) -> vec3<f32> {
43
+ let l = lum(c);
44
+ let n = min(min(c.r, c.g), c.b);
45
+ let x = max(max(c.r, c.g), c.b);
46
+ var res = c;
47
+ if (n < 0.0) {
48
+ res = l + (((res - l) * l) / (l - n));
49
+ }
50
+ if (x > 1.0) {
51
+ res = l + (((res - l) * (1.0 - l)) / (x - l));
52
+ }
53
+ return res;
54
+ }
55
+
56
+ fn set_lum(c: vec3<f32>, l: f32) -> vec3<f32> {
57
+ let diff = l - lum(c);
58
+ return clip_color(c + vec3<f32>(diff));
59
+ }
60
+
61
+ fn sat(c: vec3<f32>) -> f32 {
62
+ return max(max(c.r, c.g), c.b) - min(min(c.r, c.g), c.b);
63
+ }
64
+
65
+ fn set_sat(c: vec3<f32>, s: f32) -> vec3<f32> {
66
+ let c_min = min(min(c.r, c.g), c.b);
67
+ let c_max = max(max(c.r, c.g), c.b);
68
+ if (c_max <= c_min) {
69
+ return vec3<f32>(0.0);
70
+ }
71
+ return (c - vec3<f32>(c_min)) * s / (c_max - c_min);
72
+ }
73
+
74
+ @fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {
75
+ let d = textureSample(baseTex, samp, in.uv);
76
+ let s = textureSample(overlayTex, samp, in.uv);
77
+ let sa = s.a;
78
+ let da = d.a;
79
+
80
+ switch (u.blendMode) {
81
+ case 16u: { return d * sa; } // mask-in / destination-in
82
+ case 17u: { return d * (1.0 - sa); } // mask-out / destination-out
83
+ case 18u: { return s * da; } // source-in
84
+ case 19u: { return s * (1.0 - da); } // source-out
85
+ case 20u: { return s * da + d * (1.0 - sa); } // source-atop
86
+ case 21u: { return d + s * (1.0 - da); } // destination-over
87
+ case 22u: { return d * sa + s * (1.0 - da); } // destination-atop
88
+ case 23u: { return s + d; } // lighter
89
+ case 24u: { return s; } // copy
90
+ case 25u: { return s * (1.0 - da) + d * (1.0 - sa); } // xor
91
+ // Luma mattes: the overlay's brightness (premultiplied, so transparent = black) masks the base.
92
+ case 26u: { return d * clamp(dot(s.rgb, vec3<f32>(0.2126, 0.7152, 0.0722)), 0.0, 1.0); } // luma-in
93
+ case 27u: { return d * (1.0 - clamp(dot(s.rgb, vec3<f32>(0.2126, 0.7152, 0.0722)), 0.0, 1.0)); } // luma-out
94
+ default: {
95
+ if (sa <= 0.0) { return d; }
96
+ if (da <= 0.0) { return s; }
97
+ }
98
+ }
99
+
100
+ let s_rgb = select(s.rgb / sa, vec3<f32>(0.0), sa < 0.001);
101
+ let d_rgb = select(d.rgb / da, vec3<f32>(0.0), da < 0.001);
102
+
103
+ var b_rgb = s_rgb;
104
+
105
+ switch (u.blendMode) {
106
+ case 1u: { b_rgb = s_rgb * d_rgb; } // multiply
107
+ case 2u: { b_rgb = s_rgb + d_rgb - s_rgb * d_rgb; } // screen
108
+ case 3u: { // overlay
109
+ b_rgb = select(1.0 - 2.0 * (1.0 - s_rgb) * (1.0 - d_rgb), 2.0 * s_rgb * d_rgb, d_rgb < vec3<f32>(0.5));
110
+ }
111
+ case 4u: { b_rgb = min(s_rgb, d_rgb); } // darken
112
+ case 5u: { b_rgb = max(s_rgb, d_rgb); } // lighten
113
+ case 6u: { // color-dodge
114
+ b_rgb = select(min(d_rgb / (1.0 - s_rgb), vec3<f32>(1.0)), vec3<f32>(0.0), s_rgb == vec3<f32>(1.0));
115
+ }
116
+ case 7u: { // color-burn
117
+ b_rgb = select(1.0 - min((1.0 - d_rgb) / s_rgb, vec3<f32>(1.0)), vec3<f32>(1.0), s_rgb == vec3<f32>(0.0));
118
+ }
119
+ case 8u: { // hard-light
120
+ b_rgb = select(1.0 - 2.0 * (1.0 - s_rgb) * (1.0 - d_rgb), 2.0 * s_rgb * d_rgb, s_rgb < vec3<f32>(0.5));
121
+ }
122
+ case 9u: { // soft-light
123
+ b_rgb = select(
124
+ d_rgb + (2.0 * s_rgb - 1.0) * (sqrt(d_rgb) - d_rgb),
125
+ d_rgb - (1.0 - 2.0 * s_rgb) * d_rgb * (1.0 - d_rgb),
126
+ s_rgb <= vec3<f32>(0.5)
127
+ );
128
+ }
129
+ case 10u: { b_rgb = abs(d_rgb - s_rgb); } // difference
130
+ case 11u: { b_rgb = s_rgb + d_rgb - 2.0 * s_rgb * d_rgb; } // exclusion
131
+ case 12u: { b_rgb = set_lum(set_sat(s_rgb, sat(d_rgb)), lum(d_rgb)); } // hue
132
+ case 13u: { b_rgb = set_lum(set_sat(d_rgb, sat(s_rgb)), lum(d_rgb)); } // saturation
133
+ case 14u: { b_rgb = set_lum(s_rgb, lum(d_rgb)); } // color
134
+ case 15u: { b_rgb = set_lum(d_rgb, lum(s_rgb)); } // luminosity
135
+ case 16u: { return d * s.a; } // mask-in
136
+ case 17u: { return d * (1.0 - s.a); } // mask-out
137
+ default: { b_rgb = s_rgb; } // normal
138
+ }
139
+
140
+ let out_a = sa + da * (1.0 - sa);
141
+ let out_rgb = (1.0 - da) * s.rgb + (1.0 - sa) * d.rgb + sa * da * b_rgb;
142
+
143
+ return vec4<f32>(out_rgb, out_a);
144
+ }
145
+ `;var _t=`
146
+ struct MotionBlur2DUniforms {
147
+ vel: vec2<f32>,
148
+ _pad: vec2<f32>,
149
+ shutterFraction: f32,
150
+ samples: f32,
151
+ viewportWidth: f32,
152
+ viewportHeight: f32,
153
+ };
154
+
155
+ @group(0) @binding(0) var<uniform> u: MotionBlur2DUniforms;
156
+ @group(1) @binding(0) var sourceTexture: texture_2d<f32>;
157
+ @group(1) @binding(1) var colorSampler: sampler;
158
+
159
+ @vertex
160
+ fn vs(@builtin(vertex_index) vertexIndex: u32) -> @builtin(position) vec4<f32> {
161
+ var pos = array<vec2<f32>, 3>(
162
+ vec2<f32>(-1.0, -3.0),
163
+ vec2<f32>( 3.0, 1.0),
164
+ vec2<f32>(-1.0, 1.0)
165
+ );
166
+ return vec4<f32>(pos[vertexIndex], 0.0, 1.0);
167
+ }
168
+
169
+ @fragment
170
+ fn fs(@builtin(position) pos: vec4<f32>) -> @location(0) vec4<f32> {
171
+ let uv = pos.xy / vec2<f32>(u.viewportWidth, u.viewportHeight);
172
+ let sampleCount = u32(max(u.samples, 1.0));
173
+ let velUV = u.vel * u.shutterFraction;
174
+ let halfSamples = f32(sampleCount) * 0.5;
175
+
176
+ var accum = vec4<f32>(0.0);
177
+ var totalWeight = 0.0;
178
+
179
+ for (var i = 0u; i < sampleCount; i = i + 1u) {
180
+ let t = (f32(i) - halfSamples) / max(halfSamples, 1.0);
181
+ let sampleUV = clamp(uv + velUV * t, vec2<f32>(0.0), vec2<f32>(1.0));
182
+ let w = exp(-2.5 * t * t);
183
+ accum += textureSampleLevel(sourceTexture, colorSampler, sampleUV, 0.0) * w;
184
+ totalWeight += w;
185
+ }
186
+
187
+ return accum / max(totalWeight, 0.0001);
188
+ }
189
+ `,it=class{textures=[];texturesByKey=new Map;index=0;getTexture(t,e,r,i,a){let o=new Set(Array.isArray(a)?a:a?[a]:[]),l=`${e}x${r}:${i}`,n=this.texturesByKey.get(l);if(n)for(let c=0;c<n.length;c++){let m=n[c];if(!o.has(m)){n.splice(c,1),n.unshift(m);let h=this.textures.indexOf(m);return h>=this.index&&(this.textures.splice(h,1),this.textures.splice(this.index,0,m),this.index++),m}}let u=t.createTexture({size:[e,r],format:i,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC});return this.texturesByKey.has(l)||this.texturesByKey.set(l,[]),this.texturesByKey.get(l).unshift(u),this.textures.splice(this.index,0,u),this.index++,u}reset(){this.index=0}destroy(){for(let t of this.textures)t.destroy();this.textures=[],this.texturesByKey.clear(),this.index=0}},Rt={normal:0,"source-over":0,multiply:1,screen:2,overlay:3,darken:4,lighten:5,"color-dodge":6,"color-burn":7,"hard-light":8,"soft-light":9,difference:10,exclusion:11,hue:12,saturation:13,color:14,luminosity:15,"mask-in":16,"destination-in":16,"mask-out":17,"destination-out":17,"source-in":18,"source-out":19,"source-atop":20,"destination-over":21,"destination-atop":22,lighter:23,copy:24,xor:25,"luma-in":26,"luma-out":27},E=class{device;compositeUniformLayout;dualTextureLayout;motionBlurUniformLayout;singleTextureLayout;compositePipeline;motionBlurPipeline;compositePool;motionBlurPool;texturePool;compositeUniformBindGroupCache=new C;motionBlurUniformBindGroupCache=new C;compositeData=new Uint32Array(4);motionBlurData=new Float32Array(8);constructor(t,e){this.device=t,this.compositePool=new U(1024,GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST),this.motionBlurPool=new U(1024,GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST),this.texturePool=new it,this.compositeUniformLayout=t.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),this.dualTextureLayout=t.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:2,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}}]}),this.motionBlurUniformLayout=t.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),this.singleTextureLayout=t.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}}]});let r=t.createPipelineLayout({bindGroupLayouts:[this.compositeUniformLayout,this.dualTextureLayout]}),i=t.createShaderModule({label:"composite.wgsl",code:bt});this.compositePipeline=t.createRenderPipeline({label:"CompositePipeline",layout:r,vertex:{module:i,entryPoint:"vs"},fragment:{module:i,entryPoint:"fs",targets:[{format:e}]},primitive:{topology:"triangle-strip"}});let a=t.createPipelineLayout({bindGroupLayouts:[this.motionBlurUniformLayout,this.singleTextureLayout]}),o=t.createShaderModule({label:"motion-blur-2d.wgsl",code:_t});this.motionBlurPipeline=t.createRenderPipeline({label:"MotionBlurPipeline",layout:a,vertex:{module:o,entryPoint:"vs"},fragment:{module:o,entryPoint:"fs",targets:[{format:e}]},primitive:{topology:"triangle-list"}})}resetPools(){this.compositePool.reset(),this.motionBlurPool.reset(),this.texturePool.reset()}getTexture(t,e,r,i,a){return this.texturePool.getTexture(t,e,r,i,a)}getBuffer(t,e){return this.compositePool.getBuffer(t,e)}composite(t,e,r,i,a,o,l,n){let u=r.getSampler(this.device),c=[i,a];n&&(Array.isArray(n)?c.push(...n):c.push(n));let m=this.texturePool.getTexture(this.device,i.width,i.height,l,c);this.compositeData[0]=Rt[o]??0;let h=this.compositePool.getBuffer(this.device,this.compositeData),d=t.beginRenderPass({colorAttachments:[{view:m.createView(),loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});d.setPipeline(this.compositePipeline);let p=this.compositeUniformBindGroupCache.getBindGroup(this.device,this.compositeUniformLayout,h);d.setBindGroup(0,p);let f=e.getCompositeBindGroup(this.device,this.dualTextureLayout,i,a,u);return d.setBindGroup(1,f),d.draw(4),d.end(),m}applyMotionBlur(t,e,r,i,a,o,l=180,n=16,u,c){if(Math.abs(a)<.1&&Math.abs(o)<.1||l<=0)return i;let m=r.getSampler(this.device),h=[i];c&&(Array.isArray(c)?h.push(...c):h.push(c));let d=this.texturePool.getTexture(this.device,i.width,i.height,u,h);this.motionBlurData[0]=a/i.width,this.motionBlurData[1]=o/i.height,this.motionBlurData[2]=0,this.motionBlurData[3]=0,this.motionBlurData[4]=l/360,this.motionBlurData[5]=n,this.motionBlurData[6]=i.width,this.motionBlurData[7]=i.height;let p=this.motionBlurPool.getBuffer(this.device,this.motionBlurData),f=t.beginRenderPass({colorAttachments:[{view:d.createView(),loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});f.setPipeline(this.motionBlurPipeline);let x=this.motionBlurUniformBindGroupCache.getBindGroup(this.device,this.motionBlurUniformLayout,p);return f.setBindGroup(0,x),f.setBindGroup(1,e.getBindGroup(this.device,this.singleTextureLayout,i,m)),f.draw(3),f.end(),d}destroy(){this.compositePool.destroy(),this.motionBlurPool.destroy(),this.texturePool.destroy(),this.compositeUniformBindGroupCache.destroy(),this.motionBlurUniformBindGroupCache.destroy()}};b();b();var I=class{cache=new WeakMap;dualCache=new WeakMap;getBindGroup(t,e,r,i){let a=this.cache.get(r);a||(a=new Map,this.cache.set(r,a));let o=a.get(e);return o||(o=t.createBindGroup({layout:e,entries:[{binding:0,resource:r.createView()},{binding:1,resource:i}]}),a.set(e,o)),o}getCompositeBindGroup(t,e,r,i,a){let o=this.dualCache.get(r);o||(o=new WeakMap,this.dualCache.set(r,o));let l=o.get(i);l||(l=new Map,o.set(i,l));let n=l.get(e);return n||(n=t.createBindGroup({layout:e,entries:[{binding:0,resource:r.createView()},{binding:1,resource:i.createView()},{binding:2,resource:a}]}),l.set(e,n)),n}destroy(){this.cache=new WeakMap,this.dualCache=new WeakMap}};b();var V=class{scissorStack=[];stencilStack=[];pushScissor(t,e,r){this.scissorStack.push({rect:t,surfaceWidth:e,surfaceHeight:r})}popScissor(){this.scissorStack.length>0&&this.scissorStack.pop()}saveScissors(){return[...this.scissorStack]}restoreScissors(t){this.scissorStack=[...t]}clearScissors(){this.scissorStack=[]}getCurrentScissor(t,e){let r=this.scissorStack[this.scissorStack.length-1];if(r&&!(t!==void 0&&e!==void 0&&r.surfaceWidth!==void 0&&r.surfaceHeight!==void 0&&r.surfaceWidth!==0&&r.surfaceHeight!==0&&(r.surfaceWidth!==t||r.surfaceHeight!==e)))return r.rect}pushStencilClip(t){this.stencilStack.push(t)}popStencilClip(){this.stencilStack.length>0&&this.stencilStack.pop()}getCurrentStencil(){return this.stencilStack[this.stencilStack.length-1]}applyScissorToPass(t,e,r){let i=this.getCurrentScissor(e,r);if(!i){t.setScissorRect(0,0,Math.max(1,Math.floor(e)),Math.max(1,Math.floor(r)));return}let a=Math.max(0,Math.floor(i.x)),o=Math.max(0,Math.floor(i.y)),l=Math.min(e,Math.ceil(i.x+i.width)),n=Math.min(r,Math.ceil(i.y+i.height)),u=Math.max(0,l-a),c=Math.max(0,n-o);if(!Number.isFinite(a)||!Number.isFinite(o)||!Number.isFinite(u)||!Number.isFinite(c)||u<=0||c<=0)t.setScissorRect(0,0,1,1);else{let m=Math.min(u,Math.max(0,e-a)),h=Math.min(c,Math.max(0,r-o));m<=0||h<=0?t.setScissorRect(0,0,1,1):t.setScissorRect(Math.floor(a),Math.floor(o),Math.floor(m),Math.floor(h))}}destroy(){this.scissorStack=[],this.stencilStack=[]}};b();function vt(s,t,e,r,i=24){let a=[],o=s;for(let l=1;l<=i;l++){let n=l/i,u=1-n,c=u*u,m=c*u,h=n*n,d=h*n,p={x:m*s.x+3*c*n*t.x+3*u*h*e.x+d*r.x,y:m*s.y+3*c*n*t.y+3*u*h*e.y+d*r.y};a.push({p0:o,p1:p}),o=p}return a}function Mt(s,t,e,r=16){let i=[],a=s;for(let o=1;o<=r;o++){let l=o/r,n=1-l,u=n*n,c=l*l,m={x:u*s.x+2*n*l*t.x+c*e.x,y:u*s.y+2*n*l*t.y+c*e.y};i.push({p0:a,p1:m}),a=m}return i}function Lt(s,t,e,r,i,a,o){let l=Math.abs(t),n=Math.abs(e);if(l<1e-9||n<1e-9)return[{p0:s,p1:o}];if(Math.hypot(o.x-s.x,o.y-s.y)<1e-9)return[];let u=r*Math.PI/180,c=Math.cos(u),m=Math.sin(u),h=(s.x-o.x)/2,d=(s.y-o.y)/2,p=c*h+m*d,f=-m*h+c*d,x=p*p/(l*l)+f*f/(n*n);x>1&&(l*=Math.sqrt(x),n*=Math.sqrt(x));let y=l*l*n*n-l*l*f*f-n*n*p*p,g=l*l*f*f+n*n*p*p,P=(i===a?-1:1)*Math.sqrt(Math.max(0,y/g)),v=P*l*f/n,M=-P*n*p/l,G=c*v-m*M+(s.x+o.x)/2,B=m*v+c*M+(s.y+o.y)/2,R=(k,F,O,$)=>Math.atan2(k*$-F*O,k*O+F*$),L=R(1,0,(p-v)/l,(f-M)/n),w=R((p-v)/l,(f-M)/n,(-p-v)/l,(-f-M)/n);!a&&w>0&&(w-=2*Math.PI),a&&w<0&&(w+=2*Math.PI);let J=Math.max(4,Math.ceil(Math.abs(w)/(2*Math.PI)*64)),ut=[],ct=s;for(let k=1;k<=J;k++){let F=L+w*k/J,O=l*Math.cos(F),$=n*Math.sin(F),ht=k===J?o:{x:c*O-m*$+G,y:m*O+c*$+B};ut.push({p0:ct,p1:ht}),ct=ht}return ut}function z(s){let t=[];if(!s||typeof s!="string")return t;let e=[],r=/([a-df-z])|([-+]?(?:\d*\.\d+|\d+)(?:[eE][-+]?\d+)?)/gi,i;for(;(i=r.exec(s))!==null;)i[1]?e.push(i[1]):i[2]&&e.push(parseFloat(i[2]));let a=0,o={x:0,y:0},l={x:0,y:0},n=null,u=null;for(;a<e.length;){let c=e[a++];if(typeof c!="string")continue;let m=c,h=m===m.toLowerCase(),d=m.toUpperCase(),p=()=>a<e.length&&typeof e[a]=="number"?e[a++]:0;switch(d){case"M":{let f=!0;for(;a<e.length&&typeof e[a]=="number";){let x=p(),y=p();h&&(x+=o.x,y+=o.y),f?(o={x,y},l={x,y},f=!1):(t.push({p0:o,p1:{x,y}}),o={x,y})}n=null,u=null;break}case"L":{for(;a<e.length&&typeof e[a]=="number";){let f=p(),x=p();h&&(f+=o.x,x+=o.y),t.push({p0:o,p1:{x:f,y:x}}),o={x:f,y:x}}n=null,u=null;break}case"H":{for(;a<e.length&&typeof e[a]=="number";){let f=p();h&&(f+=o.x);let x={x:f,y:o.y};t.push({p0:o,p1:x}),o=x}n=null,u=null;break}case"V":{for(;a<e.length&&typeof e[a]=="number";){let f=p();h&&(f+=o.y);let x={x:o.x,y:f};t.push({p0:o,p1:x}),o=x}n=null,u=null;break}case"C":{for(;a<e.length&&typeof e[a]=="number";){let f=p(),x=p(),y=p(),g=p(),P=p(),v=p();h&&(f+=o.x,x+=o.y,y+=o.x,g+=o.y,P+=o.x,v+=o.y);let M={x:f,y:x},G={x:y,y:g},B={x:P,y:v};t.push(...vt(o,M,G,B)),o=B,n=G}u=null;break}case"S":{for(;a<e.length&&typeof e[a]=="number";){let f=p(),x=p(),y=p(),g=p();h&&(f+=o.x,x+=o.y,y+=o.x,g+=o.y);let P;n?P={x:2*o.x-n.x,y:2*o.y-n.y}:P={x:o.x,y:o.y};let v={x:f,y:x},M={x:y,y:g};t.push(...vt(o,P,v,M)),o=M,n=v}u=null;break}case"Q":{for(;a<e.length&&typeof e[a]=="number";){let f=p(),x=p(),y=p(),g=p();h&&(f+=o.x,x+=o.y,y+=o.x,g+=o.y);let P={x:f,y:x},v={x:y,y:g};t.push(...Mt(o,P,v)),o=v,u=P}n=null;break}case"T":{for(;a<e.length&&typeof e[a]=="number";){let f=p(),x=p();h&&(f+=o.x,x+=o.y);let y;u?y={x:2*o.x-u.x,y:2*o.y-u.y}:y={x:o.x,y:o.y};let g={x:f,y:x};t.push(...Mt(o,y,g)),o=g,u=y}n=null;break}case"A":{for(;a<e.length&&typeof e[a]=="number";){let f=p(),x=p(),y=p(),g=p()!==0,P=p()!==0,v=p(),M=p();h&&(v+=o.x,M+=o.y);let G={x:v,y:M};t.push(...Lt(o,f,x,y,g,P,G)),o=G}n=null,u=null;break}case"Z":{Math.hypot(o.x-l.x,o.y-l.y)>1e-5&&t.push({p0:o,p1:l}),o=l,n=null,u=null;break}default:break}}return t}function W(s,t,e,r=0){if(s.length===0)return[];let i=[],a=0;for(let c of s){let m=Math.hypot(c.p1.x-c.p0.x,c.p1.y-c.p0.y);i.push(m),a+=m}if(a<1e-6)return[];let o=Math.abs(r)>1?r%360/360:r,l=(t+o)%1,n=(e+o)%1;l<0&&(l+=1),n<0&&(n+=1);let u=(c,m)=>{if(c>=m)return[];let h=[],d=0;for(let p=0;p<s.length;p++){let f=s[p],x=i[p],y=d,g=d+x;if(d=g,g<=c||y>=m||x<1e-6)continue;let P=Math.max(0,(c-y)/x),v=Math.min(1,(m-y)/x);if(v>P){let M={x:f.p0.x+(f.p1.x-f.p0.x)*P,y:f.p0.y+(f.p1.y-f.p0.y)*P},G={x:f.p0.x+(f.p1.x-f.p0.x)*v,y:f.p0.y+(f.p1.y-f.p0.y)*v};h.push({p0:M,p1:G})}}return h};if(t===0&&e===1&&r===0)return[...s];if(Math.abs(l-n)<1e-5)return[];if(l<=n)return u(l*a,n*a);{let c=u(l*a,a),m=u(0,n*a);return[...c,...m]}}function nt(s,t,e=0){if(s.length===0||t.length===0)return s;let r=0;for(let d of t)r+=d;if(r<1e-5)return s;let i=0,a=[];for(let d of s){let p=Math.hypot(d.p1.x-d.p0.x,d.p1.y-d.p0.y);a.push(p),i+=p}let o=[],l=(e%r+r)%r,n=0,u=!0,c=l;for(;c>t[n];)c-=t[n],n=(n+1)%t.length,u=!u;let m=t[n]-c,h=0;for(;h<i;){let d=Math.min(m,i-h);if(u&&d>1e-4){let p=W(s,h/i,(h+d)/i);o.push(...p)}h+=d,n=(n+1)%t.length,u=!u,m=t[n]}return o}function Gt(s,t,e=0,r=0,i=0,a=0){let o=Math.min(s/2,t/2),l=Math.min(e,o),n=Math.min(r,o),u=Math.min(i,o),c=Math.min(a,o);return l===0&&n===0&&u===0&&c===0?`M 0 0 L ${s} 0 L ${s} ${t} L 0 ${t} Z`:[`M ${l} 0`,`L ${s-n} 0`,n>0?`Q ${s} 0 ${s} ${n}`:`L ${s} 0`,`L ${s} ${t-u}`,u>0?`Q ${s} ${t} ${s-u} ${t}`:`L ${s} ${t}`,`L ${c} ${t}`,c>0?`Q 0 ${t} 0 ${t-c}`:`L 0 ${t}`,`L 0 ${l}`,l>0?`Q 0 0 ${l} 0`:"L 0 0","Z"].join(" ")}function Ft(s,t){let e=Math.min(s,t)/2,r=s/2,i=t/2,a=e*.5522847498;return[`M ${r} ${i-e}`,`C ${r+a} ${i-e} ${r+e} ${i-a} ${r+e} ${i}`,`C ${r+e} ${i+a} ${r+a} ${i+e} ${r} ${i+e}`,`C ${r-a} ${i+e} ${r-e} ${i+a} ${r-e} ${i}`,`C ${r-e} ${i-a} ${r-a} ${i-e} ${r} ${i-e}`,"Z"].join(" ")}function Ot(s,t){let e=s/2,r=t/2,i=e,a=r,o=e*.5522847498,l=r*.5522847498;return[`M ${i} ${a-r}`,`C ${i+o} ${a-r} ${i+e} ${a-l} ${i+e} ${a}`,`C ${i+e} ${a+l} ${i+o} ${a+r} ${i} ${a+r}`,`C ${i-o} ${a+r} ${i-e} ${a+l} ${i-e} ${a}`,`C ${i-e} ${a-l} ${i-o} ${a-r} ${i} ${a-r}`,"Z"].join(" ")}function $t(s,t,e=5){let r=Math.max(3,e),i=Math.min(s,t)/2,a=s/2,o=t/2,l=[];for(let n=0;n<r;n++){let u=-Math.PI/2+n*2*Math.PI/r;l.push({x:a+i*Math.cos(u),y:o+i*Math.sin(u)})}return l.map((n,u)=>`${u===0?"M":"L"} ${n.x} ${n.y}`).join(" ")+" Z"}function At(s,t,e=5,r=.5){let i=Math.max(3,e),a=Math.min(s,t)/2,o=a*Math.max(.01,Math.min(.99,r)),l=s/2,n=t/2,u=[];for(let c=0;c<i*2;c++){let m=-Math.PI/2+c*Math.PI/i,h=c%2===0?a:o;u.push({x:l+h*Math.cos(m),y:n+h*Math.sin(m)})}return u.map((c,m)=>`${m===0?"M":"L"} ${c.x} ${c.y}`).join(" ")+" Z"}function Et(s,t,e=40,r=40,i=20){let a=Math.min(e,t),o=Math.min(r,s),l=Math.min(i,a),n=t/2;return[`M 0 ${n-l/2}`,`L ${s-o} ${n-l/2}`,`L ${s-o} ${n-a/2}`,`L ${s} ${n}`,`L ${s-o} ${n+a/2}`,`L ${s-o} ${n+l/2}`,`L 0 ${n+l/2}`,"Z"].join(" ")}function ot(s){let{shapeType:t,width:e,height:r}=s;switch(t){case"rect":return Gt(e,r,s.cornerRadius??0,s.cornerRadius??0,s.cornerRadius??0,s.cornerRadius??0);case"circle":return Ft(e,r);case"ellipse":return Ot(e,r);case"polygon":return $t(e,r,s.polygonSides??5);case"star":return At(e,r,s.starPoints??5,s.starInnerRadiusRatio??.5);case"arrow":return Et(e,r,s.arrowHeadWidth??40,s.arrowHeadLength??40,s.arrowShaftWidth??20);case"path":return s.path??"";default:return""}}function St(s){if(s.length<3)return[];if(s.length===3)return[s[0],s[1],s[2]];let t=[...s],e=t[t.length-1],r=t[0];if(Math.hypot(e.x-r.x,e.y-r.y)<1e-5&&t.pop(),t.length<3)return[];let i=0;for(let m=0;m<t.length;m++){let h=(m+1)%t.length;i+=t[m].x*t[h].y-t[h].x*t[m].y}i<0&&t.reverse();let a=(m,h,d,p)=>{let f=(d.x-h.x)*(m.y-h.y)-(d.y-h.y)*(m.x-h.x),x=(p.x-d.x)*(m.y-d.y)-(p.y-d.y)*(m.x-d.x),y=(h.x-p.x)*(m.y-p.y)-(h.y-p.y)*(m.x-p.x);return f>=-1e-6&&x>=-1e-6&&y>=-1e-6},o=(m,h,d,p)=>{if((h.x-m.x)*(d.y-m.y)-(h.y-m.y)*(d.x-m.x)<=1e-7)return!1;for(let x of p)if(!(x===m||x===h||x===d)&&a(x,m,h,d))return!1;return!0},l=[],n=[...t],u=0,c=n.length*n.length*2;for(;n.length>3&&u<c;){u++;let m=!1;for(let h=0;h<n.length;h++){let d=n[(h-1+n.length)%n.length],p=n[h],f=n[(h+1)%n.length];if(o(d,p,f,n)){l.push(d,p,f),n.splice(h,1),m=!0;break}}m||(l.push(n[0],n[1],n[2]),n.splice(1,1))}return n.length===3&&l.push(n[0],n[1],n[2]),l}function Ut(s){let{shapeType:t,width:e,height:r}=s;if(t==="rect"){let i=s.cornerRadius??0;if(i<=0)return new Float32Array([0,0,e,0,e,r,0,0,e,r,0,r]);let a=Gt(e,r,i,i,i,i),l=z(a).map(c=>c.p0),n=St(l),u=new Float32Array(n.length*2);for(let c=0;c<n.length;c++)u[c*2]=n[c].x,u[c*2+1]=n[c].y;return u}if(t==="circle"||t==="ellipse"){let i=e/2,a=r/2,o=t==="circle"?Math.min(e,r)/2:e/2,l=t==="circle"?o:r/2,n=48,u=new Float32Array(n*3*2),c=0;for(let m=0;m<n;m++){let h=m*2*Math.PI/n,d=(m+1)*2*Math.PI/n;u[c++]=i,u[c++]=a,u[c++]=i+o*Math.cos(h),u[c++]=a+l*Math.sin(h),u[c++]=i+o*Math.cos(d),u[c++]=a+l*Math.sin(d)}return u}if(t==="polygon"){let i=Math.max(3,s.polygonSides??5),a=Math.min(e,r)/2,o=e/2,l=r/2,n=new Float32Array(i*3*2),u=0;for(let c=0;c<i;c++){let m=-Math.PI/2+c*2*Math.PI/i,h=-Math.PI/2+(c+1)*2*Math.PI/i;n[u++]=o,n[u++]=l,n[u++]=o+a*Math.cos(m),n[u++]=l+a*Math.sin(m),n[u++]=o+a*Math.cos(h),n[u++]=l+a*Math.sin(h)}return n}if(t==="star"){let i=Math.max(3,s.starPoints??5),a=Math.min(e,r)/2,o=a*Math.max(.01,Math.min(.99,s.starInnerRadiusRatio??.5)),l=e/2,n=r/2,u=i*2,c=new Float32Array(u*3*2),m=0;for(let h=0;h<u;h++){let d=-Math.PI/2+h*Math.PI/i,p=-Math.PI/2+(h+1)*Math.PI/i,f=h%2===0?a:o,x=(h+1)%2===0?a:o;c[m++]=l,c[m++]=n,c[m++]=l+f*Math.cos(d),c[m++]=n+f*Math.sin(d),c[m++]=l+x*Math.cos(p),c[m++]=n+x*Math.sin(p)}return c}if(t==="arrow"){let i=Math.min(s.arrowHeadWidth??40,r),a=Math.min(s.arrowHeadLength??40,e),o=Math.min(s.arrowShaftWidth??20,i),l=r/2,n=0,u=e-a,c=e,m=l-o/2,h=l+o/2,d=l-i/2,p=l+i/2;return new Float32Array([n,m,u,m,u,h,n,m,u,h,n,h,u,d,c,l,u,p])}if(t==="path"&&s.path){let i=z(s.path);if(i.length===0)return new Float32Array(0);let a=i.map(n=>n.p0),o=St(a),l=new Float32Array(o.length*2);for(let n=0;n<o.length;n++)l[n*2]=o[n].x,l[n*2+1]=o[n].y;return l}return new Float32Array(0)}b();b();var wt=`
190
+ struct Uniforms {
191
+ transformCol0 : vec4<f32>,
192
+ transformCol1 : vec4<f32>,
193
+ transformCol2 : vec4<f32>,
194
+ params : vec4<f32>, // x = opacity, y = surfaceWidth, z = surfaceHeight, w = strokeWidth
195
+ color : vec4<f32>,
196
+ style : vec4<f32>, // x = capType (0 = round, 1 = butt, 2 = square)
197
+ p0 : vec2<f32>,
198
+ p1 : vec2<f32>,
199
+ };
200
+
201
+ @group(0) @binding(0) var<uniform> u : Uniforms;
202
+
203
+ struct VSOut {
204
+ @builtin(position) pos : vec4<f32>,
205
+ @location(0) localPos : vec2<f32>,
206
+ };
207
+
208
+ @vertex fn vs(@location(0) xy : vec2<f32>) -> VSOut {
209
+ let transform = mat3x3<f32>(u.transformCol0.xyz, u.transformCol1.xyz, u.transformCol2.xyz);
210
+ let p = transform * vec3<f32>(xy, 1.0);
211
+
212
+ let surfaceSize = u.params.yz;
213
+ let clipX = (p.x / surfaceSize.x) * 2.0 - 1.0;
214
+ let clipY = 1.0 - (p.y / surfaceSize.y) * 2.0;
215
+
216
+ return VSOut(vec4<f32>(clipX, clipY, 0.0, 1.0), xy);
217
+ }
218
+
219
+ fn sdSegmentWithCap(p: vec2<f32>, a: vec2<f32>, b: vec2<f32>, radius: f32, capType: f32) -> f32 {
220
+ let ba = b - a;
221
+ let len = length(ba);
222
+ if (len < 1e-6) {
223
+ return length(p - a) - radius;
224
+ }
225
+ let dir = ba / len;
226
+ let normal = vec2<f32>(-dir.y, dir.x);
227
+ let pa = p - a;
228
+
229
+ let proj = dot(pa, dir);
230
+ let perp = abs(dot(pa, normal));
231
+
232
+ if (capType > 0.5 && capType < 1.5) {
233
+ // Butt cap: terminates strictly at endpoints a and b
234
+ let dx = max(-proj, proj - len);
235
+ let dy = perp - radius;
236
+ let outside = length(max(vec2<f32>(dx, dy), vec2<f32>(0.0, 0.0)));
237
+ let inside = min(max(dx, dy), 0.0);
238
+ return outside + inside;
239
+ } else if (capType >= 1.5) {
240
+ // Square cap: extends past endpoints a and b by radius
241
+ let dx = max(-proj - radius, proj - (len + radius));
242
+ let dy = perp - radius;
243
+ let outside = length(max(vec2<f32>(dx, dy), vec2<f32>(0.0, 0.0)));
244
+ let inside = min(max(dx, dy), 0.0);
245
+ return outside + inside;
246
+ } else {
247
+ // Round cap (default)
248
+ let h = clamp(proj / len, 0.0, 1.0);
249
+ return length(pa - ba * h) - radius;
250
+ }
251
+ }
252
+
253
+ @fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {
254
+ let radius = u.params.w * 0.5;
255
+ let d = sdSegmentWithCap(in.localPos, u.p0, u.p1, radius, u.style.x);
256
+
257
+ let fw = max(fwidth(d), 1e-5);
258
+ let edgeAlpha = clamp(0.5 - d / fw, 0.0, 1.0);
259
+ let alpha = u.color.a * u.params.x * edgeAlpha;
260
+ if (alpha <= 0.0) {
261
+ discard;
262
+ }
263
+
264
+ return vec4<f32>(u.color.rgb * alpha, alpha);
265
+ }
266
+ `;b();var at={color:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"}};function T(s){return s.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]})}function _(s,t){let{module:e}=t;return s.createRenderPipeline({label:t.label,layout:s.createPipelineLayout({bindGroupLayouts:[t.uniformLayout]}),vertex:{module:e,entryPoint:"vs",buffers:[{arrayStride:8,attributes:[{shaderLocation:0,offset:0,format:"float32x2"}]}]},fragment:{module:e,entryPoint:"fs",targets:[{format:t.format,blend:t.blend??at}]},primitive:{topology:t.topology}})}var q=class{device;pipeline;maxPipeline;uniformLayout;uniformPool;vertexPool;uniformBindGroupCache=new C;scratchData=new Float32Array(28);constructor(t,e){this.device=t,this.uniformPool=new U(4096,GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST),this.vertexPool=new U(4096,GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST);let r=t.createShaderModule({label:"path.wgsl",code:wt});this.uniformLayout=T(t),this.pipeline=_(t,{label:"PathPipeline",module:r,uniformLayout:this.uniformLayout,format:e,topology:"triangle-strip"}),this.maxPipeline=_(t,{label:"PathPipeline.max",module:r,uniformLayout:this.uniformLayout,format:e,topology:"triangle-strip",blend:{color:{srcFactor:"one",dstFactor:"one",operation:"max"},alpha:{srcFactor:"one",dstFactor:"one",operation:"max"}}})}resetPools(){this.uniformPool.reset(),this.vertexPool.reset()}drawPath(t,e,r,i,a,o,l,n){let u=z(r);if(u.length===0||((n?.trimStart!==void 0||n?.trimEnd!==void 0||n?.trimOffset!==void 0)&&(u=W(u,n.trimStart??0,n.trimEnd??1,n.trimOffset??0)),n?.strokeDashArray&&n.strokeDashArray.length>0&&(u=nt(u,n.strokeDashArray,n.strokeDashOffset??0)),u.length===0))return;let c=D(i),m=n?.opacity??1,h=0;n?.strokeLineCap==="butt"?h=1:n?.strokeLineCap==="square"&&(h=2);for(let d of u)this.drawSegment(t,e,d.p0,d.p1,c,a,h,o,l,m,n)}drawSegments(t,e,r,i,a,o,l,n){let u=r;if((n?.trimStart!==void 0||n?.trimEnd!==void 0||n?.trimOffset!==void 0)&&(u=W(u,n.trimStart??0,n.trimEnd??1,n.trimOffset??0)),n?.strokeDashArray&&n.strokeDashArray.length>0&&(u=nt(u,n.strokeDashArray,n.strokeDashOffset??0)),u.length===0)return;let c=D(i),m=n?.opacity??1,h=0;n?.strokeLineCap==="butt"?h=1:n?.strokeLineCap==="square"&&(h=2);for(let d of u)this.drawSegment(t,e,d.p0,d.p1,c,a,h,o,l,m,n)}drawSegment(t,e,r,i,a,o,l,n,u,c,m){let h=this.scratchData;e.packIntoBuffer(h,c,n,u,m?.transform),h[15]=o,h[16]=a.r,h[17]=a.g,h[18]=a.b,h[19]=a.a,h[20]=l,h[21]=0,h[22]=0,h[23]=0,h[24]=r.x,h[25]=r.y,h[26]=i.x,h[27]=i.y;let d=this.uniformPool.getBuffer(this.device,h),p=i.x-r.x,f=i.y-r.y,x=Math.sqrt(p*p+f*f);if(x<1e-6)return;let y=o*.5+2,g=p/x*y,P=f/x*y,v=-P,M=g,G=new Float32Array([r.x-g-v,r.y-P-M,r.x-g+v,r.y-P+M,i.x+g-v,i.y+P-M,i.x+g+v,i.y+P+M]),B=this.vertexPool.getBuffer(this.device,G),L=m?.blendMode==="max"?this.maxPipeline:this.pipeline;t.setPipeline(L);let w=this.uniformBindGroupCache.getBindGroup(this.device,this.uniformLayout,d);t.setBindGroup(0,w),t.setVertexBuffer(0,B),t.draw(4)}destroy(){this.uniformPool.destroy(),this.vertexPool.destroy(),this.uniformBindGroupCache.destroy()}};b();b();var Ct=`
267
+ struct Uniforms {
268
+ transformCol0 : vec4<f32>,
269
+ transformCol1 : vec4<f32>,
270
+ transformCol2 : vec4<f32>,
271
+ params : vec4<f32>, // x = opacity, y = surfaceWidth, z = surfaceHeight, w = blurAmount
272
+ };
273
+
274
+ @group(0) @binding(0) var<uniform> u : Uniforms;
275
+ @group(1) @binding(0) var tex : texture_2d<f32>;
276
+ @group(1) @binding(1) var samp : sampler;
277
+
278
+ struct VSOut {
279
+ @builtin(position) pos : vec4<f32>,
280
+ @location(0) uv : vec2<f32>,
281
+ };
282
+
283
+ @vertex fn vs(@location(0) xy : vec2<f32>, @location(1) uv : vec2<f32>) -> VSOut {
284
+ let transform = mat3x3<f32>(u.transformCol0.xyz, u.transformCol1.xyz, u.transformCol2.xyz);
285
+ let p = transform * vec3<f32>(xy, 1.0);
286
+
287
+ let surfaceSize = u.params.yz;
288
+ let clipX = (p.x / surfaceSize.x) * 2.0 - 1.0;
289
+ let clipY = 1.0 - (p.y / surfaceSize.y) * 2.0;
290
+
291
+ return VSOut(vec4<f32>(clipX, clipY, 0.0, 1.0), uv);
292
+ }
293
+
294
+ @fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {
295
+ let opacity = u.params.x;
296
+ let blurAmount = u.params.w;
297
+
298
+ if (blurAmount > 0.01) {
299
+ let fdx = dpdx(in.uv);
300
+ let fdy = dpdy(in.uv);
301
+ let fw = max(max(abs(fdx), abs(fdy)), vec2<f32>(0.000001));
302
+ let step = fw * blurAmount * 0.3;
303
+
304
+ var color = vec4<f32>(0.0);
305
+ var totalWeight = 0.0;
306
+ for (var y_offset = -1.0; y_offset <= 1.0; y_offset = y_offset + 1.0) {
307
+ for (var x_offset = -1.0; x_offset <= 1.0; x_offset = x_offset + 1.0) {
308
+ let offset = vec2<f32>(x_offset, y_offset) * step;
309
+ let sampleColor = textureSample(tex, samp, in.uv + offset);
310
+ color = color + sampleColor;
311
+ totalWeight = totalWeight + 1.0;
312
+ }
313
+ }
314
+ return (color / totalWeight) * opacity;
315
+ } else {
316
+ let color = textureSample(tex, samp, in.uv);
317
+ return color * opacity;
318
+ }
319
+ }
320
+ `;var N=class{buffers=[];index=0;size;usage;constructor(t,e){this.size=t,this.usage=e}getBuffer(t,e){if(this.index>=this.buffers.length){let i=t.createBuffer({size:this.size,usage:this.usage});this.buffers.push(i)}let r=this.buffers[this.index++];return t.queue.writeBuffer(r,0,e),r}reset(){this.index=0}destroy(){for(let t of this.buffers)t.destroy();this.buffers=[]}},j=class{device;pipeline;uniformLayout;textureLayout;uniformPool;vertexPool;uniformBindGroupCache=new C;uniformData=new Float32Array(16);vertexData=new Float32Array(16);constructor(t,e){this.device=t,this.uniformPool=new N(64,GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST),this.vertexPool=new N(64,GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST);let r=t.createShaderModule({label:"quad.wgsl",code:Ct});this.uniformLayout=T(t),this.textureLayout=t.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}}]});let i=t.createPipelineLayout({bindGroupLayouts:[this.uniformLayout,this.textureLayout]});this.pipeline=t.createRenderPipeline({label:"QuadPipeline",layout:i,vertex:{module:r,entryPoint:"vs",buffers:[{arrayStride:16,attributes:[{shaderLocation:0,offset:0,format:"float32x2"},{shaderLocation:1,offset:8,format:"float32x2"}]}]},fragment:{module:r,entryPoint:"fs",targets:[{format:e,blend:at}]},primitive:{topology:"triangle-strip"}})}resetPools(){this.uniformPool.reset(),this.vertexPool.reset()}draw(t,e,r,i,a,o,l,n,u,c){let m=c?.opacity??1;r.packIntoBuffer(this.uniformData,m,n,u,c?.transform);let h=this.uniformPool.getBuffer(this.device,this.uniformData),d=o.x/i.width,p=o.y/i.height,f=(o.x+o.width)/i.width,x=(o.y+o.height)/i.height;this.vertexData[0]=l.x,this.vertexData[1]=l.y,this.vertexData[2]=d,this.vertexData[3]=p,this.vertexData[4]=l.x+l.width,this.vertexData[5]=l.y,this.vertexData[6]=f,this.vertexData[7]=p,this.vertexData[8]=l.x,this.vertexData[9]=l.y+l.height,this.vertexData[10]=d,this.vertexData[11]=x,this.vertexData[12]=l.x+l.width,this.vertexData[13]=l.y+l.height,this.vertexData[14]=f,this.vertexData[15]=x;let y=this.vertexPool.getBuffer(this.device,this.vertexData),g=this.uniformBindGroupCache.getBindGroup(this.device,this.uniformLayout,h),P=e.getBindGroup(this.device,this.textureLayout,i,a);t.setPipeline(this.pipeline),t.setBindGroup(0,g),t.setBindGroup(1,P),t.setVertexBuffer(0,y),t.draw(4)}destroy(){this.uniformPool.destroy(),this.vertexPool.destroy(),this.uniformBindGroupCache.destroy()}};b();var H=class{samplers=new Map;lru=[];maxCapacity;constructor(t=32){this.maxCapacity=t}getSampler(t,e={}){let r=Math.max(1,Math.min(16,e.maxAnisotropy??4)),i=`${e.magFilter??"linear"}:${e.minFilter??"linear"}:${e.mipmapFilter??"linear"}:${e.addressModeU??"clamp-to-edge"}:${e.addressModeV??"clamp-to-edge"}:${r}`,a=this.samplers.get(i);if(a)this.lru=this.lru.filter(o=>o!==i);else{if(a=t.createSampler({magFilter:e.magFilter??"linear",minFilter:e.minFilter??"linear",mipmapFilter:e.mipmapFilter??"linear",addressModeU:e.addressModeU??"clamp-to-edge",addressModeV:e.addressModeV??"clamp-to-edge",maxAnisotropy:r}),this.samplers.size>=this.maxCapacity){let o=this.lru.pop();o&&this.samplers.delete(o)}this.samplers.set(i,a)}return this.lru.unshift(i),a}destroy(){this.samplers.clear(),this.lru=[]}};b();b();var Y=`
321
+ struct GradientUniforms {
322
+ info : vec4<f32>, // x = type (0 none, 1 linear, 2 radial, 3 conic), y = stop count
323
+ geom : vec4<f32>, // linear: cx, cy, dir.x / len, dir.y / len; radial: cx, cy, rx, ry; conic: cx, cy, from (rad)
324
+ offsets : array<vec4<f32>, 2>,
325
+ stops : array<vec4<f32>, 8>, // OKLab + alpha
326
+ };
327
+
328
+ fn gradientOklabToSrgb(lab: vec3<f32>) -> vec3<f32> {
329
+ let l = pow(lab.x + 0.3963377774 * lab.y + 0.2158037573 * lab.z, 3.0);
330
+ let m = pow(lab.x - 0.1055613458 * lab.y - 0.0638541728 * lab.z, 3.0);
331
+ let s = pow(lab.x - 0.0894841775 * lab.y - 1.291485548 * lab.z, 3.0);
332
+ let lin = clamp(vec3<f32>(
333
+ 4.0767416621 * l - 3.3077115913 * m + 0.2309699292 * s,
334
+ -1.2684380046 * l + 2.6097574011 * m - 0.3413193965 * s,
335
+ -0.0041960863 * l - 0.7034186147 * m + 1.707614701 * s,
336
+ ), vec3<f32>(0.0), vec3<f32>(1.0));
337
+ let lo = lin * 12.92;
338
+ let hi = 1.055 * pow(lin, vec3<f32>(1.0 / 2.4)) - 0.055;
339
+ return select(hi, lo, lin <= vec3<f32>(0.0031308));
340
+ }
341
+
342
+ /// Position along the gradient (0..1, unclamped for linear/radial) at local point p.
343
+ fn gradientT(g: GradientUniforms, p: vec2<f32>) -> f32 {
344
+ let d = p - g.geom.xy;
345
+ let kind = g.info.x;
346
+ if (kind < 1.5) {
347
+ return dot(d, g.geom.zw) + 0.5;
348
+ }
349
+ if (kind < 2.5) {
350
+ return length(d / max(g.geom.zw, vec2<f32>(1e-4)));
351
+ }
352
+ let a = atan2(d.x, -d.y) - g.geom.z;
353
+ return fract(a / 6.28318530718);
354
+ }
355
+
356
+ /// Straight sRGB color + alpha of the gradient at local point p.
357
+ fn evalGradient(g: GradientUniforms, p: vec2<f32>) -> vec4<f32> {
358
+ var offs = g.offsets;
359
+ var stops = g.stops;
360
+ let n = i32(g.info.y);
361
+ let t = gradientT(g, p);
362
+ var lab = stops[0];
363
+ if (t > offs[0].x) {
364
+ lab = stops[n - 1];
365
+ for (var i = 1; i < 8; i++) {
366
+ if (i >= n) {
367
+ break;
368
+ }
369
+ let b = offs[i / 4][i % 4];
370
+ if (t <= b) {
371
+ let a = offs[(i - 1) / 4][(i - 1) % 4];
372
+ let f = select(1.0, (t - a) / (b - a), b - a > 1e-5);
373
+ lab = mix(stops[i - 1], stops[i], clamp(f, 0.0, 1.0));
374
+ break;
375
+ }
376
+ }
377
+ }
378
+ return vec4<f32>(gradientOklabToSrgb(lab.xyz), lab.w);
379
+ }
380
+ `;b();var Bt=`
381
+ ${Y}
382
+
383
+ struct Uniforms {
384
+ transformCol0 : vec4<f32>,
385
+ transformCol1 : vec4<f32>,
386
+ transformCol2 : vec4<f32>,
387
+ params : vec4<f32>, // x = opacity, y = surfaceWidth, z = surfaceHeight, w = unused
388
+ color : vec4<f32>, // solid color (gradient.info.x = 0)
389
+ gradient : GradientUniforms,
390
+ };
391
+
392
+ @group(0) @binding(0) var<uniform> u : Uniforms;
393
+
394
+ struct VSOut {
395
+ @builtin(position) pos : vec4<f32>,
396
+ @location(0) localPos : vec2<f32>,
397
+ };
398
+
399
+ @vertex fn vs(@location(0) xy : vec2<f32>) -> VSOut {
400
+ let transform = mat3x3<f32>(u.transformCol0.xyz, u.transformCol1.xyz, u.transformCol2.xyz);
401
+ let p = transform * vec3<f32>(xy, 1.0);
402
+
403
+ let surfaceSize = u.params.yz;
404
+ let clipX = (p.x / surfaceSize.x) * 2.0 - 1.0;
405
+ let clipY = 1.0 - (p.y / surfaceSize.y) * 2.0;
406
+
407
+ return VSOut(vec4<f32>(clipX, clipY, 0.0, 1.0), xy);
408
+ }
409
+
410
+ @fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {
411
+ var outColor = u.color;
412
+ if (u.gradient.info.x > 0.5) {
413
+ outColor = evalGradient(u.gradient, in.localPos);
414
+ }
415
+
416
+ let alpha = outColor.a * u.params.x;
417
+ if (alpha <= 0.0) {
418
+ discard;
419
+ }
420
+
421
+ return vec4<f32>(outColor.rgb * alpha, alpha);
422
+ }
423
+ `;b();var It={linear:1,radial:2,conic:3};function X(s){return typeof s=="string"&&s.includes("gradient(")?mt(s):null}function Q(s,t,e,r){if(e.fill(0,r,r+48),!s)return;let i=pt(s.stops),a=Math.max(t.width,.001),o=Math.max(t.height,.001),l=t.x+s.center[0]*a,n=t.y+s.center[1]*o;if(e[r]=It[s.type],e[r+1]=i.length,e[r+4]=s.type==="linear"?t.x+a/2:l,e[r+5]=s.type==="linear"?t.y+o/2:n,s.type==="linear"){let u=s.angle*Math.PI/180,c=Math.sin(u),m=-Math.cos(u),h=Math.abs(a*c)+Math.abs(o*m);e[r+6]=c/h,e[r+7]=m/h}else if(s.type==="radial"){let u,c;s.radius?[u,c]=s.radius:[u,c]=Vt(s,l-t.x,t.x+a-l,n-t.y,t.y+o-n),e[r+6]=u,e[r+7]=c}else e[r+6]=s.from*Math.PI/180;i.forEach((u,c)=>{e[r+8+c]=u.offset}),A(i).forEach((u,c)=>{e.set(u,r+16+c*4)})}function Vt(s,t,e,r,i){let a=s.extent??"farthest-corner",o=a.startsWith("farthest"),l=o?Math.max(t,e):Math.min(t,e),n=o?Math.max(r,i):Math.min(r,i),u=s.shape==="circle";if(a.endsWith("side")){if(!u)return[l,n];let c=o?Math.max(l,n):Math.min(l,n);return[c,c]}if(u){let c=Math.hypot(l,n);return[c,c]}return[l*Math.SQRT2,n*Math.SQRT2]}var K=class{device;pipeline;uniformLayout;uniformPool;vertexPool;uniformData=new Float32Array(68);constructor(t,e){this.device=t,this.uniformPool=new U(2048,GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST),this.vertexPool=new U(8192,GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST);let r=t.createShaderModule({label:"shape-fill.wgsl",code:Bt});this.uniformLayout=T(t),this.pipeline=_(t,{label:"ShapeFillPipeline",module:r,uniformLayout:this.uniformLayout,format:e,topology:"triangle-list"})}resetPools(){this.uniformPool.reset(),this.vertexPool.reset()}draw(t,e,r,i,a,o,l,n){if(r.length<6||i.type==="none")return;let u=n?.opacity??1;e.packIntoBuffer(this.uniformData,u,o,l,n?.transform),this.uniformData[15]=0;let c=X(i.color);if(c)this.uniformData.fill(0,16,20),Q(c,a,this.uniformData,20);else{let d=D(i.color??"#ffffff");this.uniformData[16]=d.r,this.uniformData[17]=d.g,this.uniformData[18]=d.b,this.uniformData[19]=d.a,this.packTwoColorGradient(i,a,d)}let m=this.uniformPool.getBuffer(this.device,this.uniformData),h=this.vertexPool.getBuffer(this.device,r);t.setPipeline(this.pipeline),t.setBindGroup(0,this.device.createBindGroup({layout:this.uniformLayout,entries:[{binding:0,resource:{buffer:m}}]})),t.setVertexBuffer(0,h),t.draw(r.length/2)}packTwoColorGradient(t,e,r){if(this.uniformData.fill(0,20,68),t.type!=="linear"&&t.type!=="radial")return;let a=D(t.color2??t.color??"#ffffff"),o=this.uniformData;if(t.type==="linear"){let n=t.startX??e.x,u=t.startY??e.y,c=t.endX??e.x+e.width,m=t.endY??e.y+e.height,h=c-n,d=m-u,p=Math.max(h*h+d*d,1e-6);o.set([1,2,0,0,(n+c)/2,(u+m)/2,h/p,d/p],20)}else{let n=t.radius??Math.max(e.width,e.height)/2;o.set([2,2,0,0,t.cx??e.x+e.width/2,t.cy??e.y+e.height/2,n,n],20)}o[28]=0,o[29]=1;let l=A([{offset:0,color:[r.r,r.g,r.b,r.a]},{offset:1,color:[a.r,a.g,a.b,a.a]}]);o.set(l[0],36),o.set(l[1],40)}destroy(){this.uniformPool.destroy(),this.vertexPool.destroy()}};b();b();var Dt=`
424
+ ${Y}
425
+
426
+ struct Uniforms {
427
+ transformCol0 : vec4<f32>,
428
+ transformCol1 : vec4<f32>,
429
+ transformCol2 : vec4<f32>,
430
+ params : vec4<f32>, // x = opacity, y = surfaceWidth, z = surfaceHeight, w = cornerRadius
431
+ color : vec4<f32>,
432
+ rect : vec4<f32>, // x, y, width, height
433
+ gradient : GradientUniforms, // info.x = 0: solid \`color\`
434
+ };
435
+
436
+ @group(0) @binding(0) var<uniform> u : Uniforms;
437
+
438
+ struct VSOut {
439
+ @builtin(position) pos : vec4<f32>,
440
+ @location(0) localPos : vec2<f32>,
441
+ };
442
+
443
+ @vertex fn vs(@location(0) xy : vec2<f32>) -> VSOut {
444
+ let transform = mat3x3<f32>(u.transformCol0.xyz, u.transformCol1.xyz, u.transformCol2.xyz);
445
+ let p = transform * vec3<f32>(xy, 1.0);
446
+
447
+ let surfaceSize = u.params.yz;
448
+ let clipX = (p.x / surfaceSize.x) * 2.0 - 1.0;
449
+ let clipY = 1.0 - (p.y / surfaceSize.y) * 2.0;
450
+
451
+ return VSOut(vec4<f32>(clipX, clipY, 0.0, 1.0), xy);
452
+ }
453
+
454
+ fn sdRoundedRect(p: vec2<f32>, b: vec2<f32>, r: f32) -> f32 {
455
+ let q = abs(p) - b + r;
456
+ return min(max(q.x, q.y), 0.0) + length(max(q, vec2<f32>(0.0))) - r;
457
+ }
458
+
459
+ @fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {
460
+ let center = u.rect.xy + u.rect.zw * 0.5;
461
+ let halfSize = u.rect.zw * 0.5;
462
+ let radius = u.params.w;
463
+
464
+ let d = sdRoundedRect(in.localPos - center, halfSize, radius);
465
+ // Rounded shapes: one device pixel of coverage centred on the edge (the
466
+ // quad has room for its outer half). Square ones keep their exact edge.
467
+ let fw = max(fwidth(d), 1e-4);
468
+ var edgeAlpha = 1.0 - smoothstep(0.0, 1.0, d);
469
+ if (radius > 0.0) {
470
+ edgeAlpha = clamp(0.5 - d / fw, 0.0, 1.0);
471
+ }
472
+ var fill = u.color;
473
+ if (u.gradient.info.x > 0.5) {
474
+ fill = evalGradient(u.gradient, in.localPos);
475
+ }
476
+ let alpha = fill.a * u.params.x * edgeAlpha;
477
+ if (alpha <= 0.0) {
478
+ discard;
479
+ }
480
+
481
+ return vec4<f32>(fill.rgb * alpha, alpha);
482
+ }
483
+ `;var Z=class{device;pipeline;uniformLayout;uniformPool;vertexPool;uniformBindGroupCache=new C;uniformData=new Float32Array(72);vertexData=new Float32Array(8);constructor(t,e){this.device=t,this.uniformPool=new U(1024,GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST),this.vertexPool=new U(256,GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST);let r=t.createShaderModule({label:"solid.wgsl",code:Dt});this.uniformLayout=T(t),this.pipeline=_(t,{label:"SolidPipeline",module:r,uniformLayout:this.uniformLayout,format:e,topology:"triangle-strip"})}resetPools(){this.uniformPool.reset(),this.vertexPool.reset()}draw(t,e,r,i,a,o,l=0,n){let u=X(i),c=u?{r:0,g:0,b:0,a:1}:D(i),m=n?.opacity??1;e.packIntoBuffer(this.uniformData,m,a,o,n?.transform),this.uniformData[15]=l,this.uniformData[16]=c.r,this.uniformData[17]=c.g,this.uniformData[18]=c.b,this.uniformData[19]=c.a,this.uniformData[20]=r.x,this.uniformData[21]=r.y,this.uniformData[22]=r.width,this.uniformData[23]=r.height,Q(u,r,this.uniformData,24);let h=this.uniformPool.getBuffer(this.device,this.uniformData),d=0;if(l>0){let v=n?.transform?e.getCurrent().multiply(n.transform):e.getCurrent(),M=Math.min(Math.hypot(v.a,v.b),Math.hypot(v.c,v.d));d=2/Math.max(M,.001)}let p=r.x-d,f=r.y-d,x=r.x+r.width+d,y=r.y+r.height+d;this.vertexData[0]=p,this.vertexData[1]=f,this.vertexData[2]=x,this.vertexData[3]=f,this.vertexData[4]=p,this.vertexData[5]=y,this.vertexData[6]=x,this.vertexData[7]=y;let g=this.vertexPool.getBuffer(this.device,this.vertexData);t.setPipeline(this.pipeline);let P=this.uniformBindGroupCache.getBindGroup(this.device,this.uniformLayout,h);t.setBindGroup(0,P),t.setVertexBuffer(0,g),t.draw(4)}destroy(){this.uniformPool.destroy(),this.vertexPool.destroy(),this.uniformBindGroupCache.destroy()}};function zt(s){if(Array.isArray(s)){let r=s[3]??1;return[s[0]*r,s[1]*r,s[2]*r,r]}if("r"in s){let r=s.a??1;return{r:s.r*r,g:s.g*r,b:s.b*r,a:r}}let t=Array.from(s),e=t[3]??1;return[t[0]*e,t[1]*e,t[2]*e,e]}var Tt=new WeakMap;function Dr(s,t){let e=Tt.get(s);return(!e||e.format!==t||e.isDestroyed)&&(e=new lt(s,t),Tt.set(s,e)),e.resetPools(),e}var lt=class{device;transformStack=new yt;clipStack=new V;quadPipeline;solidPipeline;shapeFillPipeline;pathPipeline;effectPipeline;slugPipeline;bindGroupCache=new I;samplerCache=new H;format;isDestroyed=!1;rasterDrawCount=0;surfaceWidth=0;surfaceHeight=0;lastEncoder=null;constructor(t,e){this.device=t,this.format=e,this.quadPipeline=new j(t,e),this.solidPipeline=new Z(t,e),this.shapeFillPipeline=new K(t,e),this.pathPipeline=new q(t,e),this.effectPipeline=new E(t,e),this.slugPipeline=new gt(t,e)}beginFrame(t,e,r={r:0,g:0,b:0,a:0},i,a,o="clear"){this.surfaceWidth=i,this.surfaceHeight=a,t!==this.lastEncoder&&(this.lastEncoder=t,this.resetPools());let l=t.beginRenderPass({colorAttachments:[{view:e,clearValue:zt(r),loadOp:o,storeOp:"store"}]});return this.clipStack.applyScissorToPass(l,i,a),l}endFrame(t){}resetPools(){this.quadPipeline.resetPools(),this.solidPipeline.resetPools(),this.shapeFillPipeline.resetPools(),this.pathPipeline.resetPools(),this.effectPipeline&&this.effectPipeline.resetPools(),this.slugPipeline.resetPools(),et.flushRetired(this.device),et.prune(this.device)}drawTexture(t,e,r,i){let a=this.samplerCache.getSampler(this.device),o={x:0,y:0,width:e.width,height:e.height};this.rasterDrawCount++,this.quadPipeline.draw(t,this.bindGroupCache,this.transformStack,e,a,o,r,this.surfaceWidth,this.surfaceHeight,i)}drawTextureRegion(t,e,r,i,a){let o=this.samplerCache.getSampler(this.device);this.rasterDrawCount++,this.quadPipeline.draw(t,this.bindGroupCache,this.transformStack,e,o,r,i,this.surfaceWidth,this.surfaceHeight,a)}drawRect(t,e,r,i=0,a){let o=0,l=a;typeof i=="object"&&i!==null?(l=i,o=0):typeof i=="number"&&(o=i),this.rasterDrawCount++,this.solidPipeline.draw(t,this.transformStack,e,r,this.surfaceWidth,this.surfaceHeight,o,l)}drawPath(t,e,r,i,a){this.rasterDrawCount++,this.pathPipeline.drawPath(t,this.transformStack,e,r,i,this.surfaceWidth,this.surfaceHeight,a)}drawShapeFill(t,e,r,i,a){this.rasterDrawCount++,this.shapeFillPipeline.draw(t,this.transformStack,e,r,i,this.surfaceWidth,this.surfaceHeight,a)}drawShape(t,e,r,i,a){let o={x:0,y:0,width:e.width,height:e.height};if(r&&r.type!=="none"){let l=Ut(e);if(l.length>0&&(this.drawShapeFill(t,l,r,o,a),(!i||!i.width||i.width<=0)&&(r.type??"solid")==="solid"&&r.color)){let n=ot(e);if(n){let u=this.transformStack.getCurrent(),c=1/rt(a?.transform?u.multiply(a.transform):u);this.drawPath(t,n,r.color,c,{...a,strokeLineCap:"round"})}}}if(i&&i.width&&i.width>0&&i.color){let l=ot(e);l&&this.drawPath(t,l,i.color,i.width,{...a,strokeLineCap:i.cap,trimStart:i.trimStart,trimEnd:i.trimEnd,trimOffset:i.trimOffset,strokeDashArray:i.dashArray,strokeDashOffset:i.dashOffset})}}drawRRect(t,e,r,i){this.drawRect(t,e.rect,r,e.rx,i)}getTemporaryTexture(t,e,r){return this.effectPipeline.getTexture(this.device,t,e,this.format,r)}getTemporaryBuffer(t){return this.effectPipeline.getBuffer(this.device,t)}composite(t,e,r,i,a){return this.effectPipeline.composite(t,this.bindGroupCache,this.samplerCache,e,r,i,this.format,a)}applyMotionBlur(t,e,r,i,a=180,o=16,l){return this.effectPipeline.applyMotionBlur(t,this.bindGroupCache,this.samplerCache,e,r,i,a,o,this.format,l)}getCurrentTransform(){return this.transformStack.getCurrent()}getTransformStack(){return this.transformStack}getSurfaceWidth(){return this.surfaceWidth}getSurfaceHeight(){return this.surfaceHeight}pushIdentity(){let t=this.transformStack.getCurrent();this.pushTransform(t.inverse())}pushTransform(t){this.transformStack.push(t)}popTransform(){this.transformStack.pop()}pushScissor(t){this.clipStack.pushScissor(t,this.surfaceWidth,this.surfaceHeight)}pushScissorIntersect(t){let e=this.clipStack.getCurrentScissor(this.surfaceWidth,this.surfaceHeight);if(!e){this.pushScissor(t);return}let r=Math.max(t.x,e.x),i=Math.max(t.y,e.y),a=Math.min(t.x+t.width,e.x+e.width),o=Math.min(t.y+t.height,e.y+e.height);this.pushScissor({x:r,y:i,width:Math.max(0,a-r),height:Math.max(0,o-i)})}pushScissorLocal(t){let e=this.transformStack.getCurrent(),r=[e.transformPoint(new DOMPoint(t.x,t.y)),e.transformPoint(new DOMPoint(t.x+t.width,t.y)),e.transformPoint(new DOMPoint(t.x,t.y+t.height)),e.transformPoint(new DOMPoint(t.x+t.width,t.y+t.height))],i=r.map(m=>m.x),a=r.map(m=>m.y),o=Math.min(...i),l=Math.min(...a),n=Math.max(...i)-o,u=Math.max(...a)-l,c=this.clipStack.getCurrentScissor(this.surfaceWidth,this.surfaceHeight);if(c){let m=Math.max(o,c.x),h=Math.max(l,c.y),d=Math.min(o+n,c.x+c.width),p=Math.min(l+u,c.y+c.height);o=m,l=h,n=Math.max(0,d-m),u=Math.max(0,p-h)}this.clipStack.pushScissor({x:o,y:l,width:n,height:u},this.surfaceWidth,this.surfaceHeight)}popScissor(){this.clipStack.popScissor()}suspendScissors(){let t=this.clipStack.saveScissors();return this.clipStack.clearScissors(),t}resumeScissors(t){this.clipStack.restoreScissors(t)}pushStencilClip(t){this.clipStack.pushStencilClip(t)}popStencilClip(){this.clipStack.popStencilClip()}destroy(){this.isDestroyed=!0,this.transformStack.destroy(),this.clipStack.destroy(),this.bindGroupCache.destroy(),this.samplerCache.destroy(),this.quadPipeline.destroy(),this.solidPipeline.destroy(),this.shapeFillPipeline.destroy(),this.pathPipeline.destroy(),this.effectPipeline.destroy(),this.slugPipeline.destroy(),this.lastEncoder=null}};b();function Wt(s){return xt(s)??dt(s)??tt(s)}function $r(s){let t=Wt(s);return typeof t=="string"?t:tt(s)}export{Nt as a,jt as b,Ht as c,Yt as d,Xt as e,Qt as f,Kt as g,Zt as h,ee as i,re as j,ie as k,ne as l,kt as m,se as n,E as o,Lt as p,z as q,ot as r,at as s,H as t,Dr as u,lt as v,Wt as w,$r as x};
@@ -1,4 +1,4 @@
1
- import{a as g}from"./chunk-UZTA2EUU.mjs";import{b as c,e as s}from"./chunk-GXFYRMJZ.mjs";import{g as f}from"./chunk-KOVN277Z.mjs";import{c as t,d as a}from"./chunk-ULOFDFHJ.mjs";import{g as d}from"./chunk-Y4NIR77Z.mjs";d();d();var l=async(n,m,p,e)=>{if(!e?.device||!n||n.length===0||n[0].length===0)return;let r=p.operation||{},i=r.nodeId||r.id||"audio-signal-extractor",v=e.fps??24,y=a(r.extractionMode,""),b=a(r.curve,""),I={extractionMode:y||void 0,attackMs:t(r.attackMs,10),releaseMs:t(r.releaseMs,120),sensitivity:t(r.sensitivity,1),noiseFloorDb:t(r.noiseFloorDb,-45),dynamicRangeDb:t(r.dynamicRangeDb,36),smoothing:t(r.smoothing,.15),curve:b||void 0,beatThreshold:t(r.beatThreshold,.55),beatDecayMs:t(r.beatDecayMs,80)},o=await c.extractFeatures(e.device,n,m,v,I,512);s.registerBuffer(e.device,i,o.primaryBuffer,e.renderId),s.registerBuffer(e.device,`${i}_beat`,o.beatBuffer,e.renderId),s.registerBuffer(e.device,`${i}_bass`,o.bassBuffer,e.renderId),s.registerBuffer(e.device,`${i}_energy`,o.energyBuffer,e.renderId),s.registerTexture(e.device,i,o.texture,o.textureView,e.renderId),s.registerTexture(e.device,`${i}_beat`,o.texture,o.textureView,e.renderId),s.registerTexture(e.device,`${i}_bass`,o.texture,o.textureView,e.renderId),s.registerTexture(e.device,`${i}_energy`,o.texture,o.textureView,e.renderId);let u=`signal_${i.replace(/[^a-zA-Z0-9]/g,"_")}`,A=`
1
+ import{a as g}from"./chunk-UZTA2EUU.mjs";import{b as c,e as s}from"./chunk-GXFYRMJZ.mjs";import{g as f}from"./chunk-77MT33VR.mjs";import{c as t,d as a}from"./chunk-ULOFDFHJ.mjs";import{g as d}from"./chunk-Y4NIR77Z.mjs";d();d();var l=async(n,m,p,e)=>{if(!e?.device||!n||n.length===0||n[0].length===0)return;let r=p.operation||{},i=r.nodeId||r.id||"audio-signal-extractor",v=e.fps??24,y=a(r.extractionMode,""),b=a(r.curve,""),I={extractionMode:y||void 0,attackMs:t(r.attackMs,10),releaseMs:t(r.releaseMs,120),sensitivity:t(r.sensitivity,1),noiseFloorDb:t(r.noiseFloorDb,-45),dynamicRangeDb:t(r.dynamicRangeDb,36),smoothing:t(r.smoothing,.15),curve:b||void 0,beatThreshold:t(r.beatThreshold,.55),beatDecayMs:t(r.beatDecayMs,80)},o=await c.extractFeatures(e.device,n,m,v,I,512);s.registerBuffer(e.device,i,o.primaryBuffer,e.renderId),s.registerBuffer(e.device,`${i}_beat`,o.beatBuffer,e.renderId),s.registerBuffer(e.device,`${i}_bass`,o.bassBuffer,e.renderId),s.registerBuffer(e.device,`${i}_energy`,o.energyBuffer,e.renderId),s.registerTexture(e.device,i,o.texture,o.textureView,e.renderId),s.registerTexture(e.device,`${i}_beat`,o.texture,o.textureView,e.renderId),s.registerTexture(e.device,`${i}_bass`,o.texture,o.textureView,e.renderId),s.registerTexture(e.device,`${i}_energy`,o.texture,o.textureView,e.renderId);let u=`signal_${i.replace(/[^a-zA-Z0-9]/g,"_")}`,A=`
2
2
  fn ${u}(t: f32, x: f32, y: f32, z: f32, i: u32, n: u32, frame: u32, color: vec4f, t_elapsed: f32, duration: f32) -> f32 {
3
3
  return 0.0f;
4
4
  }
@@ -1,4 +1,4 @@
1
- import{a as h}from"./chunk-SE2C623Z.mjs";import{f as g,g as I}from"./chunk-KOVN277Z.mjs";import{c as m,d as c}from"./chunk-ULOFDFHJ.mjs";import{g as i}from"./chunk-Y4NIR77Z.mjs";i();i();var w=["fadeInDuration","fadeOutDuration"],E=()=>`
1
+ import{a as h}from"./chunk-SE2C623Z.mjs";import{f as g,g as I}from"./chunk-77MT33VR.mjs";import{c as m,d as c}from"./chunk-ULOFDFHJ.mjs";import{g as i}from"./chunk-Y4NIR77Z.mjs";i();i();var w=["fadeInDuration","fadeOutDuration"],E=()=>`
2
2
  struct Uniforms {
3
3
  sampleRate : f32,
4
4
  fadeInDuration : f32,
@@ -1,4 +1,4 @@
1
- import{a as F,d as L,e as N,f as W,g as C,h as V,j as B,k as H,l as $,m as E}from"./chunk-54Q5CKSV.mjs";import{c as U,g as D}from"./chunk-KOVN277Z.mjs";import{g as p}from"./chunk-Y4NIR77Z.mjs";p();p();var fe=`
1
+ import{a as F,d as L,e as N,f as W,g as C,h as V,k as B,l as H,m as $,n as E}from"./chunk-3QTHW2CD.mjs";import{c as U,g as D}from"./chunk-77MT33VR.mjs";import{g as p}from"./chunk-Y4NIR77Z.mjs";p();p();var fe=`
2
2
  struct TileOffsetUniforms {
3
3
  offsetX : f32,
4
4
  offsetY : f32,
@@ -1,4 +1,4 @@
1
- import{d as w,h as G,i as P}from"./chunk-54Q5CKSV.mjs";import{g as b}from"./chunk-KOVN277Z.mjs";import{g as u}from"./chunk-Y4NIR77Z.mjs";u();u();u();function W(e,r){let n=[];for(let i=0;i<r;i++){let c=i/(r-1)*100;for(let l=0;l<e;l++){let o=l/(e-1)*100;n.push({x:o,y:c})}}return n}var F=`
1
+ import{d as w,h as G,i as P}from"./chunk-3QTHW2CD.mjs";import{g as b}from"./chunk-77MT33VR.mjs";import{g as u}from"./chunk-Y4NIR77Z.mjs";u();u();u();function W(e,r){let n=[];for(let i=0;i<r;i++){let c=i/(r-1)*100;for(let l=0;l<e;l++){let o=l/(e-1)*100;n.push({x:o,y:c})}}return n}var F=`
2
2
  struct MeshUniforms {
3
3
  gridSize : vec2<f32>,
4
4
  layerSize : vec2<f32>,
@@ -1,4 +1,4 @@
1
- import{a as X,d as f,e as _,f as P,g as Y,h as D,j as U,k as V,m as B}from"./chunk-54Q5CKSV.mjs";import{e as d}from"./chunk-GXFYRMJZ.mjs";import{g as R}from"./chunk-KOVN277Z.mjs";import{g}from"./chunk-Y4NIR77Z.mjs";g();g();var j=0,Q=500;function q(t,e,r){return Math.min(r,Math.max(e,t))}var z=`
1
+ import{a as X,d as f,e as _,f as P,g as Y,h as D,k as U,l as V,n as B}from"./chunk-3QTHW2CD.mjs";import{e as d}from"./chunk-GXFYRMJZ.mjs";import{g as R}from"./chunk-77MT33VR.mjs";import{g}from"./chunk-Y4NIR77Z.mjs";g();g();var j=0,Q=500;function q(t,e,r){return Math.min(r,Math.max(e,t))}var z=`
2
2
  struct DisplacementUniforms {
3
3
  strengthX : f32,
4
4
  strengthY : f32,
@@ -1,4 +1,4 @@
1
- import{a as N,d as K,e as $,f as z,g as E,h as j,j as Q,k as J,l as X,m as Z}from"./chunk-54Q5CKSV.mjs";import{c as F,g as W}from"./chunk-KOVN277Z.mjs";import{a as w}from"./chunk-354GX6IB.mjs";import{g as S}from"./chunk-Y4NIR77Z.mjs";S();S();var Me=`
1
+ import{a as N,d as K,e as $,f as z,g as E,h as j,k as Q,l as J,m as X,n as Z}from"./chunk-3QTHW2CD.mjs";import{c as F,g as W}from"./chunk-77MT33VR.mjs";import{a as w}from"./chunk-354GX6IB.mjs";import{g as S}from"./chunk-Y4NIR77Z.mjs";S();S();var Me=`
2
2
  struct HalftoneUniforms {
3
3
  mode : f32, // 0 = Monochrome, 1 = CMYK
4
4
  dotShape : f32, // 0 = Circle, 1 = Diamond, 2 = Line, 3 = Square
@@ -1,4 +1,4 @@
1
- import{a as B,d as y,g as V,h as N,j as O,k as W,m as _}from"./chunk-54Q5CKSV.mjs";import{e as b}from"./chunk-GXFYRMJZ.mjs";import{a as C}from"./chunk-354GX6IB.mjs";import{g}from"./chunk-Y4NIR77Z.mjs";g();g();var A=new WeakMap,K=`
1
+ import{a as B,d as y,g as V,h as N,k as O,l as W,n as _}from"./chunk-3QTHW2CD.mjs";import{e as b}from"./chunk-GXFYRMJZ.mjs";import{a as C}from"./chunk-354GX6IB.mjs";import{g}from"./chunk-Y4NIR77Z.mjs";g();g();var A=new WeakMap,K=`
2
2
  struct GradientStop {
3
3
  pos : vec4<f32>,
4
4
  col : vec4<f32>,
@@ -1,4 +1,4 @@
1
- import{a as z,d as x,e as Y,g as X,h as G,j as F,k as O,m as k}from"./chunk-54Q5CKSV.mjs";import{e as U}from"./chunk-GXFYRMJZ.mjs";import{e as s,g as N}from"./chunk-KOVN277Z.mjs";import{a as W}from"./chunk-354GX6IB.mjs";import{g as S}from"./chunk-Y4NIR77Z.mjs";S();S();var ve=`
1
+ import{a as z,d as x,e as Y,g as X,h as G,k as F,l as O,n as k}from"./chunk-3QTHW2CD.mjs";import{e as U}from"./chunk-GXFYRMJZ.mjs";import{e as s,g as N}from"./chunk-77MT33VR.mjs";import{a as W}from"./chunk-354GX6IB.mjs";import{g as S}from"./chunk-Y4NIR77Z.mjs";S();S();var ve=`
2
2
  struct RefractionCausticsUniforms {
3
3
  // vec4 0
4
4
  _pad0 : f32,