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
@@ -16643,6 +16643,10 @@ async function acquireDevice(opts) {
16643
16643
  if (adapter.limits && Number.isInteger(adapter.limits.maxTextureDimension2D)) requiredLimits.maxTextureDimension2D = Math.min(8192, adapter.limits.maxTextureDimension2D);
16644
16644
  if (adapter.limits && Number.isInteger(adapter.limits.maxStorageBuffersPerShaderStage)) requiredLimits.maxStorageBuffersPerShaderStage = Math.min(16, adapter.limits.maxStorageBuffersPerShaderStage);
16645
16645
  if (adapter.limits && Number.isInteger(adapter.limits.maxStorageBuffersPerPipelineLayout)) requiredLimits.maxStorageBuffersPerPipelineLayout = Math.min(16, adapter.limits.maxStorageBuffersPerPipelineLayout);
16646
+ for (const limit of ["maxStorageBufferBindingSize", "maxBufferSize"]) {
16647
+ const max = adapter.limits?.[limit];
16648
+ if (Number.isFinite(max)) requiredLimits[limit] = max;
16649
+ }
16646
16650
  return adapter.requestDevice({
16647
16651
  requiredFeatures,
16648
16652
  requiredLimits
@@ -26511,6 +26515,50 @@ async function drawSignalNode(ctx, encoder, pass, props) {
26511
26515
  pass.setBindGroup(1, bindGroup1);
26512
26516
  pass.draw(4);
26513
26517
  }
26518
+ /**
26519
+ * Target pixels per local unit along the axis `m` stretches most: what a
26520
+ * raster drawn under `m` needs per unit to stay sharp, and what one target
26521
+ * pixel is in local units (its inverse).
26522
+ */
26523
+ function transformScale(m) {
26524
+ return Math.max(Math.hypot(m.a, m.b), Math.hypot(m.c, m.d));
26525
+ }
26526
+ var TransformStack = class {
26527
+ stack = [new DOMMatrix()];
26528
+ push(matrix) {
26529
+ const next = this.stack[this.stack.length - 1].multiply(matrix);
26530
+ this.stack.push(next);
26531
+ }
26532
+ pop() {
26533
+ if (this.stack.length > 1) this.stack.pop();
26534
+ }
26535
+ getCurrent() {
26536
+ return this.stack[this.stack.length - 1];
26537
+ }
26538
+ packIntoBuffer(bufferData, opacity, surfaceWidth, surfaceHeight, localOverride, customParam) {
26539
+ let m = this.getCurrent();
26540
+ if (localOverride) m = m.multiply(localOverride);
26541
+ bufferData[0] = m.a;
26542
+ bufferData[1] = m.b;
26543
+ bufferData[2] = 0;
26544
+ bufferData[3] = 0;
26545
+ bufferData[4] = m.c;
26546
+ bufferData[5] = m.d;
26547
+ bufferData[6] = 0;
26548
+ bufferData[7] = 0;
26549
+ bufferData[8] = m.e;
26550
+ bufferData[9] = m.f;
26551
+ bufferData[10] = 1;
26552
+ bufferData[11] = 0;
26553
+ bufferData[12] = opacity;
26554
+ bufferData[13] = surfaceWidth;
26555
+ bufferData[14] = surfaceHeight;
26556
+ bufferData[15] = customParam ?? 0;
26557
+ }
26558
+ destroy() {
26559
+ this.stack = [new DOMMatrix()];
26560
+ }
26561
+ };
26514
26562
  var SvgLoader = class {
26515
26563
  cache = /* @__PURE__ */ new Map();
26516
26564
  async load(src, width, height, isHeadless) {
@@ -26583,8 +26631,10 @@ var SvgLoader = class {
26583
26631
  };
26584
26632
  const svgLoader = new SvgLoader();
26585
26633
  async function drawSvgNode(ctx, pass, props) {
26586
- const resolvedWidth = Math.max(1, Math.ceil(props.dstRect.width));
26587
- const resolvedHeight = Math.max(1, Math.ceil(props.dstRect.height));
26634
+ const m = ctx.renderer.getCurrentTransform();
26635
+ const k = transformScale(props.matrix ? m.multiply(props.matrix) : m);
26636
+ const resolvedWidth = Math.max(1, Math.ceil(props.dstRect.width * k));
26637
+ const resolvedHeight = Math.max(1, Math.ceil(props.dstRect.height * k));
26588
26638
  const cacheKey = `${props.src}-${resolvedWidth}-${resolvedHeight}`;
26589
26639
  let tex = textureCache.acquire(cacheKey);
26590
26640
  if (!tex) try {
@@ -27389,6 +27439,8 @@ fn sampleSlugCoverage(sampleUV: vec2<f32>, g: SlugGlyph, pixelsPerEm: vec2<f32>)
27389
27439
  // pixel footprint in glyph uv, |d/dx| + |d/dy| (fwidth): the caller takes it in
27390
27440
  // uniform control flow. On a turned or foreshortened glyph it is wider than one
27391
27441
  // pixel along an axis, so that axis gets the soft ramp a box filter gives.
27442
+ // A blur of blurAmount px averages coverage over a grid reaching 0.3 of it
27443
+ // each way, blurTaps taps per side past the centre.
27392
27444
  fn shadeSlugGlyph(
27393
27445
  uv: vec2<f32>,
27394
27446
  fw: vec2<f32>,
@@ -27397,6 +27449,7 @@ fn shadeSlugGlyph(
27397
27449
  color: vec4<f32>,
27398
27450
  opacity: f32,
27399
27451
  blurAmount: f32,
27452
+ blurTaps: f32,
27400
27453
  chromaticShift: f32,
27401
27454
  dissolveProgress: f32,
27402
27455
  ) -> vec4<f32> {
@@ -27429,14 +27482,15 @@ fn shadeSlugGlyph(
27429
27482
 
27430
27483
  var slugAlpha = 0.0;
27431
27484
  if (blurAmount > 0.01) {
27432
- let step = fw * blurAmount * 0.3;
27433
- for (var y_offset = -1.0; y_offset <= 1.0; y_offset = y_offset + 1.0) {
27434
- for (var x_offset = -1.0; x_offset <= 1.0; x_offset = x_offset + 1.0) {
27485
+ let step = fw * blurAmount * 0.3 / blurTaps;
27486
+ for (var y_offset = -blurTaps; y_offset <= blurTaps; y_offset = y_offset + 1.0) {
27487
+ for (var x_offset = -blurTaps; x_offset <= blurTaps; x_offset = x_offset + 1.0) {
27435
27488
  let offset = vec2<f32>(x_offset, y_offset) * step;
27436
27489
  slugAlpha = slugAlpha + sampleSlugCoverage(uv + offset, g, pixelsPerEm);
27437
27490
  }
27438
27491
  }
27439
- slugAlpha = slugAlpha / 9.0;
27492
+ let side = 2.0 * blurTaps + 1.0;
27493
+ slugAlpha = slugAlpha / (side * side);
27440
27494
  } else {
27441
27495
  slugAlpha = sampleSlugCoverage(uv, g, pixelsPerEm);
27442
27496
  }
@@ -27472,6 +27526,7 @@ struct VSOut {
27472
27526
  @location(7) @interpolate(flat) chromaticShift : f32,
27473
27527
  @location(8) @interpolate(flat) dissolveProgress : f32,
27474
27528
  @location(9) @interpolate(flat) vfxParam : f32,
27529
+ @location(10) @interpolate(flat) blurTaps : f32,
27475
27530
  };
27476
27531
 
27477
27532
  var<private> pos : array<vec2<f32>, 6> = array<vec2<f32>, 6>(
@@ -27505,7 +27560,11 @@ var<private> pos : array<vec2<f32>, 6> = array<vec2<f32>, 6>(
27505
27560
  let transform2 = mat2x2<f32>(u.transformCol0.xy, u.transformCol1.xy);
27506
27561
  let pixelsPerUnit = sqrt(max(abs(determinant(transform2)), 1e-8));
27507
27562
  let halfSize = max(abs(aScaleBias.xy * scale_mult), vec2<f32>(1e-4));
27508
- let grow = vec2<f32>(1.0) + (1.0 / pixelsPerUnit) / halfSize;
27563
+ // A blurred glyph keeps a unit around it however many pixels a unit
27564
+ // spans: its blur spills that far at one pixel per unit.
27565
+ let blurred = aExtraParams.x > 0.01;
27566
+ let dilation = select(1.0, max(1.0, pixelsPerUnit), blurred) / pixelsPerUnit;
27567
+ let grow = vec2<f32>(1.0) + dilation / halfSize;
27509
27568
  let uv = vec2<f32>(
27510
27569
  quad_pos.x * grow.x * 0.5 + 0.5,
27511
27570
  1.0 - (quad_pos.y * grow.y * 0.5 + 0.5),
@@ -27539,7 +27598,11 @@ var<private> pos : array<vec2<f32>, 6> = array<vec2<f32>, 6>(
27539
27598
  out.bandMax = vec2<u32>(aBandMaxTexCoords.xy);
27540
27599
  out.bandsTexCoords = vec2<u32>(aBandMaxTexCoords.zw);
27541
27600
  out.color = aColor;
27542
- out.blurAmount = aExtraParams.x;
27601
+ // Blur is in local units, like every other length here; the fragment
27602
+ // stage spreads its taps in pixels, as far apart as at one pixel per
27603
+ // unit (more of them as a unit spans more pixels, up to 4).
27604
+ out.blurAmount = aExtraParams.x * pixelsPerUnit;
27605
+ out.blurTaps = clamp(ceil(pixelsPerUnit - 1e-3), 1.0, 4.0);
27543
27606
  out.chromaticShift = aExtraParams.y;
27544
27607
  out.dissolveProgress = aExtraParams.z;
27545
27608
  out.vfxParam = aExtraParams.w;
@@ -27558,6 +27621,7 @@ var<private> pos : array<vec2<f32>, 6> = array<vec2<f32>, 6>(
27558
27621
  in.color,
27559
27622
  u.params.x,
27560
27623
  in.blurAmount,
27624
+ in.blurTaps,
27561
27625
  in.chromaticShift,
27562
27626
  in.dissolveProgress,
27563
27627
  );
@@ -29610,42 +29674,6 @@ var SolidPipeline = class {
29610
29674
  this.uniformBindGroupCache.destroy();
29611
29675
  }
29612
29676
  };
29613
- var TransformStack = class {
29614
- stack = [new DOMMatrix()];
29615
- push(matrix) {
29616
- const next = this.stack[this.stack.length - 1].multiply(matrix);
29617
- this.stack.push(next);
29618
- }
29619
- pop() {
29620
- if (this.stack.length > 1) this.stack.pop();
29621
- }
29622
- getCurrent() {
29623
- return this.stack[this.stack.length - 1];
29624
- }
29625
- packIntoBuffer(bufferData, opacity, surfaceWidth, surfaceHeight, localOverride, customParam) {
29626
- let m = this.getCurrent();
29627
- if (localOverride) m = m.multiply(localOverride);
29628
- bufferData[0] = m.a;
29629
- bufferData[1] = m.b;
29630
- bufferData[2] = 0;
29631
- bufferData[3] = 0;
29632
- bufferData[4] = m.c;
29633
- bufferData[5] = m.d;
29634
- bufferData[6] = 0;
29635
- bufferData[7] = 0;
29636
- bufferData[8] = m.e;
29637
- bufferData[9] = m.f;
29638
- bufferData[10] = 1;
29639
- bufferData[11] = 0;
29640
- bufferData[12] = opacity;
29641
- bufferData[13] = surfaceWidth;
29642
- bufferData[14] = surfaceHeight;
29643
- bufferData[15] = customParam ?? 0;
29644
- }
29645
- destroy() {
29646
- this.stack = [new DOMMatrix()];
29647
- }
29648
- };
29649
29677
  function premultiplyClearColor(color) {
29650
29678
  if (Array.isArray(color)) {
29651
29679
  const a$1 = color[3] ?? 1;
@@ -29796,10 +29824,14 @@ var Renderer2D = class {
29796
29824
  this.drawShapeFill(pass, tris, fill, bounds, opts);
29797
29825
  if ((!stroke || !stroke.width || stroke.width <= 0) && (fill.type ?? "solid") === "solid" && fill.color) {
29798
29826
  const svgPath = buildShapeSvgPath(config$1);
29799
- if (svgPath) this.drawPath(pass, svgPath, fill.color, 1, {
29800
- ...opts,
29801
- strokeLineCap: "round"
29802
- });
29827
+ if (svgPath) {
29828
+ const m = this.transformStack.getCurrent();
29829
+ const hairline = 1 / transformScale(opts?.transform ? m.multiply(opts.transform) : m);
29830
+ this.drawPath(pass, svgPath, fill.color, hairline, {
29831
+ ...opts,
29832
+ strokeLineCap: "round"
29833
+ });
29834
+ }
29803
29835
  }
29804
29836
  }
29805
29837
  }
@@ -32848,6 +32880,9 @@ fn fs_mrt_bloom(in: VertexOutput, @builtin(front_facing) isFront: bool) -> MrtBl
32848
32880
  */
32849
32881
  const quad3dWgsl = `
32850
32882
  ${lighting3dWgsl}
32883
+ // Grid cells either side a relief's normals span.
32884
+ const RELIEF_NORMAL_CELLS : f32 = 4.0;
32885
+
32851
32886
  struct ModelUniforms {
32852
32887
  modelMatrix : mat4x4<f32>,
32853
32888
  normalMatrix : mat4x4<f32>,
@@ -32858,11 +32893,15 @@ struct ModelUniforms {
32858
32893
  materialParams : vec4<f32>, // x = shininess, y = specularIntensity, z = ambientIntensity, w = materialMode (0=unlit, 1=lit)
32859
32894
  pbr : vec4<f32>, // x = roughness (<0 = default), y = metallic
32860
32895
  emissive : vec4<f32>, // rgb = sRGB emissive color, w = strength
32896
+ relief : vec4<f32>, // x = amount (px), y = on, w = grid cells per side
32897
+ reliefRect : vec4<f32>, // xy = where the layer's box starts in reliefTex (0..1), zw = its size
32898
+ reliefEye : vec4<f32>, // xyz = the eye the surface keeps its look from (the default camera)
32861
32899
  };
32862
32900
 
32863
32901
  @group(0) @binding(0) var<uniform> cam : CameraUniforms;
32864
32902
  @group(1) @binding(0) var<uniform> model : ModelUniforms;
32865
- ${matte3dWgsl(1, 1)}@group(2) @binding(0) var texSampler : sampler;
32903
+ ${matte3dWgsl(1, 1)}@group(1) @binding(2) var reliefTex : texture_2d<f32>;
32904
+ @group(2) @binding(0) var texSampler : sampler;
32866
32905
  @group(2) @binding(1) var mainTex : texture_2d<f32>;
32867
32906
  ${lightsBindingsWgsl}
32868
32907
 
@@ -32881,13 +32920,48 @@ struct VertexOutput {
32881
32920
  @location(4) localPos : vec2<f32>,
32882
32921
  };
32883
32922
 
32923
+ // Relief: the layer's plane pushed toward the eye by the brightness of a
32924
+ // second picture, so a flat quad becomes a surface (see DrawQuad3DOpts.relief).
32925
+ fn reliefAt(uv: vec2<f32>) -> f32 {
32926
+ let dims = vec2<f32>(textureDimensions(reliefTex));
32927
+ let p = (model.reliefRect.xy + clamp(uv, vec2<f32>(0.0), vec2<f32>(1.0)) * model.reliefRect.zw) * dims - 0.5;
32928
+ let i = floor(p);
32929
+ let f = p - i;
32930
+ // Texels of the layer's own box only: past its edge the relief was never drawn.
32931
+ let lo = max(floor(model.reliefRect.xy * dims), vec2<f32>(0.0));
32932
+ let hi = min(ceil((model.reliefRect.xy + model.reliefRect.zw) * dims) - 1.0, dims - 1.0);
32933
+ let a = textureLoad(reliefTex, vec2<i32>(clamp(i, lo, hi)), 0).rgb;
32934
+ let b = textureLoad(reliefTex, vec2<i32>(clamp(i + vec2<f32>(1.0, 0.0), lo, hi)), 0).rgb;
32935
+ let c = textureLoad(reliefTex, vec2<i32>(clamp(i + vec2<f32>(0.0, 1.0), lo, hi)), 0).rgb;
32936
+ let d = textureLoad(reliefTex, vec2<i32>(clamp(i + vec2<f32>(1.0, 1.0), lo, hi)), 0).rgb;
32937
+ let rgb = mix(mix(a, b, f.x), mix(c, d, f.x), f.y);
32938
+ return dot(rgb, vec3<f32>(0.2126, 0.7152, 0.0722));
32939
+ }
32940
+
32941
+ // The plane's front: the side the default camera sees.
32942
+ fn reliefFront() -> vec3<f32> {
32943
+ return normalize((model.normalMatrix * vec4<f32>(0.0, 0.0, -1.0, 0.0)).xyz);
32944
+ }
32945
+
32946
+ // A point of the plane lifted by its relief along the ray to the eye, so from
32947
+ // the eye it lands on the same pixel as the flat picture.
32948
+ fn reliefPoint(local: vec2<f32>, uv: vec2<f32>) -> vec3<f32> {
32949
+ let flat = (model.modelMatrix * vec4<f32>(local, 0.0, 1.0)).xyz;
32950
+ let n = reliefFront();
32951
+ let h = model.relief.x * reliefAt(uv);
32952
+ let toEye = model.reliefEye.xyz - flat;
32953
+ let along = dot(toEye, n);
32954
+ return select(flat + n * h, flat + toEye * (h / along), along > 1.0);
32955
+ }
32956
+
32884
32957
  @vertex
32885
32958
  fn vs_main(in: VertexInput) -> VertexOutput {
32886
32959
  var out: VertexOutput;
32887
32960
 
32888
32961
  let hasDimensions = model.dimensions.x > 0.0 && model.dimensions.y > 0.0;
32962
+ let hasRelief = model.relief.y > 0.5;
32889
32963
  var pad = 0.0;
32890
- if (hasDimensions) {
32964
+ if (hasDimensions && !hasRelief) {
32891
32965
  let viewPos = cam.viewMatrix * model.modelMatrix * vec4<f32>(0.0, 0.0, 0.0, 1.0);
32892
32966
  let viewDepth = max(abs(viewPos.z), 0.1);
32893
32967
  let projScale = max(cam.projMatrix[1][1], 0.001);
@@ -32897,12 +32971,28 @@ fn vs_main(in: VertexInput) -> VertexOutput {
32897
32971
  let scalePad = select(vec2<f32>(1.0), 1.0 + vec2<f32>(2.0 * pad) / model.dimensions.xy, hasDimensions);
32898
32972
 
32899
32973
  let paddedPos = vec3<f32>(in.position.xy * scalePad, in.position.z);
32900
- let worldPos4 = model.modelMatrix * vec4<f32>(paddedPos, 1.0);
32901
- out.worldPos = worldPos4.xyz;
32974
+ var worldPos4 = model.modelMatrix * vec4<f32>(paddedPos, 1.0);
32902
32975
 
32903
32976
  // Normal transformed by 3x3 normal matrix
32904
32977
  let norm4 = model.normalMatrix * vec4<f32>(in.normal, 0.0);
32905
32978
  out.worldNormal = normalize(norm4.xyz);
32979
+ if (hasRelief) {
32980
+ let p = reliefPoint(in.position.xy, in.uv);
32981
+ // Central differences a few cells wide: an 8-bit height map steps every
32982
+ // level, and normals from adjacent cells would light those steps as rings.
32983
+ let e = RELIEF_NORMAL_CELLS / max(model.relief.w, 1.0);
32984
+ let dx = vec2<f32>(e, 0.0);
32985
+ let dy = vec2<f32>(0.0, e);
32986
+ let tx = reliefPoint(in.position.xy + dx, in.uv + dx) - reliefPoint(in.position.xy - dx, in.uv - dx);
32987
+ let ty = reliefPoint(in.position.xy + dy, in.uv + dy) - reliefPoint(in.position.xy - dy, in.uv - dy);
32988
+ var nrm = normalize(cross(tx, ty));
32989
+ if (dot(nrm, reliefFront()) < 0.0) {
32990
+ nrm = -nrm;
32991
+ }
32992
+ worldPos4 = vec4<f32>(p, 1.0);
32993
+ out.worldNormal = nrm;
32994
+ }
32995
+ out.worldPos = worldPos4.xyz;
32906
32996
 
32907
32997
  out.clipPos = cam.viewProjMatrix * worldPos4;
32908
32998
 
@@ -33138,6 +33228,10 @@ function createLightsLayout(device, label = "Lights3DLayout") {
33138
33228
  ]
33139
33229
  });
33140
33230
  }
33231
+ /** Grid cells per side of a relief surface. */
33232
+ const RELIEF_GRID = 512;
33233
+ /** Floats in the quad's model uniform: transform, colors, params, material, surface, then relief. */
33234
+ const MODEL_FLOATS = 52 + SURFACE_PARAMS_FLOATS + 12;
33141
33235
  /** [shininess, specularIntensity, ambientIntensity, materialMode] as the 3D shaders' lighting reads them. */
33142
33236
  function packMaterialParams(data) {
33143
33237
  return [
@@ -33161,10 +33255,12 @@ var Quad3DPipeline = class {
33161
33255
  modelPool;
33162
33256
  vertexBuffer;
33163
33257
  indexBuffer;
33164
- modelData = new Float32Array(52 + SURFACE_PARAMS_FLOATS);
33258
+ /** The relief grid, built on first use. */
33259
+ reliefGrid;
33260
+ modelData = new Float32Array(MODEL_FLOATS);
33165
33261
  constructor(device, format, depthFormat = "depth24plus", sampleCount = 1) {
33166
33262
  this.device = device;
33167
- this.modelPool = new BufferPool((52 + SURFACE_PARAMS_FLOATS) * 4, GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST);
33263
+ this.modelPool = new BufferPool(MODEL_FLOATS * 4, GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST);
33168
33264
  const module$1 = device.createShaderModule({
33169
33265
  label: "quad3d.wgsl",
33170
33266
  code: quad3dWgsl
@@ -33179,11 +33275,19 @@ var Quad3DPipeline = class {
33179
33275
  });
33180
33276
  this.modelLayout = device.createBindGroupLayout({
33181
33277
  label: "Quad3DModelLayout",
33182
- entries: [{
33183
- binding: 0,
33184
- visibility: GPUShaderStage.VERTEX | GPUShaderStage.FRAGMENT,
33185
- buffer: { type: "uniform" }
33186
- }, matteLayoutEntry(1)]
33278
+ entries: [
33279
+ {
33280
+ binding: 0,
33281
+ visibility: GPUShaderStage.VERTEX | GPUShaderStage.FRAGMENT,
33282
+ buffer: { type: "uniform" }
33283
+ },
33284
+ matteLayoutEntry(1),
33285
+ {
33286
+ binding: 2,
33287
+ visibility: GPUShaderStage.VERTEX,
33288
+ texture: { sampleType: "float" }
33289
+ }
33290
+ ]
33187
33291
  });
33188
33292
  this.textureLayout = device.createBindGroupLayout({
33189
33293
  label: "Quad3DTextureLayout",
@@ -33350,18 +33454,110 @@ var Quad3DPipeline = class {
33350
33454
  this.modelData[47] = data.textureExtent?.[1] ?? 0;
33351
33455
  this.modelData.set(packMaterialParams(data), 48);
33352
33456
  packSurfaceParams(data, this.modelData, 52);
33457
+ const relief = data.relief;
33458
+ const r = 52 + SURFACE_PARAMS_FLOATS;
33459
+ this.modelData.set(relief ? [
33460
+ relief.amount,
33461
+ 1,
33462
+ 0,
33463
+ RELIEF_GRID
33464
+ ] : [
33465
+ 0,
33466
+ 0,
33467
+ 0,
33468
+ 0
33469
+ ], r);
33470
+ this.modelData.set(relief?.uvRect ?? [
33471
+ 0,
33472
+ 0,
33473
+ 1,
33474
+ 1
33475
+ ], r + 4);
33476
+ this.modelData.set([...relief?.eye ?? [
33477
+ 0,
33478
+ 0,
33479
+ 0
33480
+ ], 0], r + 8);
33353
33481
  const modelBuffer = this.modelPool.getBuffer(this.device, this.modelData);
33354
33482
  return this.device.createBindGroup({
33355
33483
  layout: this.modelLayout,
33356
- entries: [{
33357
- binding: 0,
33358
- resource: { buffer: modelBuffer }
33359
- }, {
33360
- binding: 1,
33361
- resource: data.matte?.createView() ?? fullCoverageView(this.device)
33362
- }]
33484
+ entries: [
33485
+ {
33486
+ binding: 0,
33487
+ resource: { buffer: modelBuffer }
33488
+ },
33489
+ {
33490
+ binding: 1,
33491
+ resource: data.matte?.createView() ?? fullCoverageView(this.device)
33492
+ },
33493
+ {
33494
+ binding: 2,
33495
+ resource: data.relief?.texture.createView() ?? fullCoverageView(this.device)
33496
+ }
33497
+ ]
33363
33498
  });
33364
33499
  }
33500
+ /** Binds the geometry for `data` and draws it: the quad, or the relief grid. */
33501
+ drawGeometry(pass, data) {
33502
+ if (!data.relief) {
33503
+ pass.setVertexBuffer(0, this.vertexBuffer);
33504
+ pass.setIndexBuffer(this.indexBuffer, "uint16");
33505
+ pass.drawIndexed(6);
33506
+ return;
33507
+ }
33508
+ this.reliefGrid ??= this.createReliefGrid();
33509
+ pass.setVertexBuffer(0, this.reliefGrid.vertices);
33510
+ pass.setIndexBuffer(this.reliefGrid.indices, "uint32");
33511
+ pass.drawIndexed(this.reliefGrid.count);
33512
+ }
33513
+ /** A RELIEF_GRID² grid over the unit quad, laid out like the quad's vertices. */
33514
+ createReliefGrid() {
33515
+ const side = RELIEF_GRID + 1;
33516
+ const vertices = new Float32Array(side * side * 8);
33517
+ for (let j = 0; j < side; j++) for (let i = 0; i < side; i++) {
33518
+ const u = i / RELIEF_GRID;
33519
+ const v = j / RELIEF_GRID;
33520
+ vertices.set([
33521
+ u - .5,
33522
+ v - .5,
33523
+ 0,
33524
+ u,
33525
+ v,
33526
+ 0,
33527
+ 0,
33528
+ -1
33529
+ ], (j * side + i) * 8);
33530
+ }
33531
+ const indices = new Uint32Array(RELIEF_GRID * RELIEF_GRID * 6);
33532
+ let k = 0;
33533
+ for (let j = 0; j < RELIEF_GRID; j++) for (let i = 0; i < RELIEF_GRID; i++) {
33534
+ const a = j * side + i;
33535
+ indices.set([
33536
+ a,
33537
+ a + 1,
33538
+ a + side + 1,
33539
+ a,
33540
+ a + side + 1,
33541
+ a + side
33542
+ ], k);
33543
+ k += 6;
33544
+ }
33545
+ const upload = (data, usage) => {
33546
+ const buffer = this.device.createBuffer({
33547
+ size: data.byteLength,
33548
+ usage: usage | GPUBufferUsage.COPY_DST,
33549
+ mappedAtCreation: true
33550
+ });
33551
+ new data.constructor(buffer.getMappedRange()).set(data);
33552
+ buffer.unmap();
33553
+ return buffer;
33554
+ };
33555
+ return {
33556
+ vertices: upload(vertices, GPUBufferUsage.VERTEX),
33557
+ indices: upload(indices, GPUBufferUsage.INDEX),
33558
+ count: indices.length
33559
+ };
33560
+ }
33365
33561
  textureBindGroup(texture, sampler) {
33366
33562
  return this.device.createBindGroup({
33367
33563
  layout: this.textureLayout,
@@ -33382,9 +33578,7 @@ var Quad3DPipeline = class {
33382
33578
  pass.setBindGroup(1, modelBindGroup);
33383
33579
  pass.setBindGroup(2, textureBindGroup);
33384
33580
  pass.setBindGroup(3, lightsBindGroup);
33385
- pass.setVertexBuffer(0, this.vertexBuffer);
33386
- pass.setIndexBuffer(this.indexBuffer, "uint16");
33387
- pass.drawIndexed(6);
33581
+ this.drawGeometry(pass, data);
33388
33582
  }
33389
33583
  /** Draws the quad into a shadow map (`lightCameraBindGroup` holds the light's view-projection). */
33390
33584
  drawShadow(pass, lightCameraBindGroup, texture, sampler, data) {
@@ -33392,14 +33586,14 @@ var Quad3DPipeline = class {
33392
33586
  pass.setBindGroup(0, lightCameraBindGroup);
33393
33587
  pass.setBindGroup(1, this.packModel(data));
33394
33588
  pass.setBindGroup(2, this.textureBindGroup(texture, sampler));
33395
- pass.setVertexBuffer(0, this.vertexBuffer);
33396
- pass.setIndexBuffer(this.indexBuffer, "uint16");
33397
- pass.drawIndexed(6);
33589
+ this.drawGeometry(pass, data);
33398
33590
  }
33399
33591
  destroy() {
33400
33592
  this.modelPool.destroy();
33401
33593
  this.vertexBuffer.destroy();
33402
33594
  this.indexBuffer.destroy();
33595
+ this.reliefGrid?.vertices.destroy();
33596
+ this.reliefGrid?.indices.destroy();
33403
33597
  }
33404
33598
  };
33405
33599
  var Mesh3DPipeline = class {
@@ -38047,6 +38241,7 @@ fn shadeText(in : VSOut, fw : vec2<f32>) -> TextFragment {
38047
38241
  in.color,
38048
38242
  model.params.x,
38049
38243
  in.fx.x,
38244
+ 1.0,
38050
38245
  in.fx.y,
38051
38246
  in.fx.z,
38052
38247
  );
@@ -39634,7 +39829,8 @@ var Renderer3D = class {
39634
39829
  height: c.opts.height,
39635
39830
  textureExtent: c.opts.textureExtent,
39636
39831
  opacity: c.opts.opacity,
39637
- colorTint: c.opts.colorTint
39832
+ colorTint: c.opts.colorTint,
39833
+ relief: c.opts.relief
39638
39834
  });
39639
39835
  }
39640
39836
  pass.end();
@@ -39898,7 +40094,8 @@ var Renderer3D = class {
39898
40094
  metallic,
39899
40095
  emissive: opts.emissive,
39900
40096
  emissiveIntensity: opts.emissiveIntensity,
39901
- matte: opts.matte
40097
+ matte: opts.matte,
40098
+ relief: opts.relief
39902
40099
  }, useMrt, this.passWritesHdr);
39903
40100
  }
39904
40101
  /** T(pos) * Rz * Ry * Rx * S, or the draw's precomputed model matrix. */
@@ -41377,5 +41574,5 @@ var NodeSurfaceProvider = class {
41377
41574
  if (typeof globalThis !== "undefined") globalThis.__GATEWAI_DELAYS__ = globalThis.__GATEWAI_DELAYS__ || /* @__PURE__ */ new Set();
41378
41575
 
41379
41576
  //#endregion
41380
- export { probeVideoSize as $, TextCursorStyleSchema as $t, emojiGraphemes as A, evaluateVolumetricFormation as An, ChromaticGlitchConfigSchema as At, jointMatrices as B, waveToCubicBeziers as Bn, LongShadowConfigSchema as Bt, drawGifNode as C, evaluateCubicBezierDerivative as Cn, AdvancedTextAnimatorBuilder as Ct, drawSignalNode as D, evaluateSkewMatrix as Dn, AnimatableGlyphPropsSchema as Dt, drawParagraphNode as E, evaluateSelectorCombination as En, AnchorPresetSchema as Et, getPrimitiveGeometry as F, parseSvgPathToCubicBeziers as Fn, ExtendedGlyphPropertiesSchema as Ft, measureMaxCaptionHeight as G, SelectorUnitsSchema as Gt, loadModel3D as H, SelectorBasedOnSchema as Ht, getRegisteredFontSource as I, sampleAudioSpectrumScale as In, GlyphAnchorGroupingSchema as It, parseFBX as J, Spatial3DPropertiesSchema as Jt, mediaDecoderCache as K, SignalRegistry as Kt, getRenderer2D as L, sampleCurveGeometry as Ln, GlyphAnchorPointSchema as Lt, fitSpansToText as M, generatePathSegments as Mn, DynamicStrokePropertiesSchema as Mt, generateExtrudedTextGeometry as N, getScramblePool as Nn, EnhancedTextNodeSchema as Nt, drawSvgNode as O, evaluateSpringProgress as On, AudioSignalComputePipeline as Ot, getHeadlessFontPath as P, getShuffledOrder as Pn, ExpressionSelectorSchema as Pt, poseNodes as Q, TextCursorConfigSchema as Qt, initHeadlessWebGPU as R, samplePathChainGeometry as Rn, KineticMarqueeConfigSchema as Rt, drawCaptionNode as S, evaluateCubicBezier as Sn, AETextAnimatorSchema as St, drawLottieNode as T, evaluateMarqueeOffset as Tn, AnchorGroupingSchema as Tt, loadOBJ as U, SelectorModeSchema as Ut, loadFBX as V, ParticleDissolveConfigSchema as Vt, lutStore as W, SelectorShapeSchema as Wt, parseOBJ as X, TextAnchorConfigSchema as Xt, parseMTL as Y, SpringPhysicsSchema as Yt, parseSvgPathToSegments as Z, TextAnimatorBuilder as Zt, buildShapeSvgPath as _, computeLineLeadingDisplacement as _n, Path3D as _t, GlassPipeline as a, TextSelectorSchema as an, spansText as at, colorMatrixWgsl as b, distanceToCurveParameter as bn, parseColorToRgb as bt, Renderer2D as c, TypewriterAnimatorSchema as cn, trackAudioPitch as ct, ScreenSpaceRelightPipeline as d, Vec2Schema as dn, Camera3D as dt, TextPathBuilder as en, registerHeadlessFont as et, ShadowPipeline as f, VolumetricFormationConfigSchema as fn, ENVIRONMENT_PRESETS as ft, WebGPUAudioProcessor as g, computeAnchorPivotOffset as gn, Matrix4Math as gt, SlugPipeline as h, buildWGSLSignalFn as hn, MAX_LIGHTS as ht, EffectPipeline as i, TextScrambleConfigSchema as in, shaderStore as it, ensureDevice as j, generateArcLengthLUT as jn, CubicBezierSegmentSchema as jt, drawVideoNode as k, evaluateTypewriterState as kn, AudioSpectrumTypographySchema as kt, Renderer3D as l, TypingCadenceSchema as ln, GetFontAssetUrl as lt, SlugGeometry as m, buildPathLUT as mn, Light3D as mt, AudioLatentTrackCache as n, TextPathSourceSchema as nn, sampleMorphWeights as nt, MotionBlurPipeline as o, TextSignalSelectorSchema as on, srtLoader as ot, SlugFontCache as p, VolumetricFormationModeSchema as pn, LIGHT_UNIFORM_SIZE_BYTES as pt, parseColor as q, SkewPropertiesSchema as qt, AudioMeshDeformPipeline as r, TextRangeSelectorSchema as rn, setRegisteredFontSource as rt, NodeSurfaceProvider as s, TextWigglySelectorSchema as sn, textureCache as st, AudioLatentEngine as t, TextPathOptionsSchema as tn, resolveTextSpans as tt, SSAOPipeline as u, VariableFontAxesSchema as un, resolveMediaSourceUrl as ut, clearAllVideoCache as v, computeRangeSelectorWeight as vn, Vector3Math as vt, drawImageNode as w, evaluateExpressionSelector as wn, AdvancedTextAnimatorSchema as wt, describeGpu as x, ellipseToCubicBeziers as xn, resolveEnvironment as xt, clearHeadlessFonts as y, deterministicWigglyNoise as yn, linearRgb as yt, inputStore as z, signalRegistry as zn, LineSpacingDynamicsSchema as zt };
41381
- //# sourceMappingURL=dist-CWLLnigL.mjs.map
41577
+ export { probeVideoSize as $, TextCursorConfigSchema as $t, emojiGraphemes as A, evaluateTypewriterState as An, AudioSpectrumTypographySchema as At, jointMatrices as B, signalRegistry as Bn, LineSpacingDynamicsSchema as Bt, drawGifNode as C, evaluateCubicBezier as Cn, AETextAnimatorSchema as Ct, drawSignalNode as D, evaluateSelectorCombination as Dn, AnchorPresetSchema as Dt, drawParagraphNode as E, evaluateMarqueeOffset as En, AnchorGroupingSchema as Et, getPrimitiveGeometry as F, getShuffledOrder as Fn, ExpressionSelectorSchema as Ft, measureMaxCaptionHeight as G, SelectorShapeSchema as Gt, loadModel3D as H, ParticleDissolveConfigSchema as Ht, getRegisteredFontSource as I, parseSvgPathToCubicBeziers as In, ExtendedGlyphPropertiesSchema as It, parseFBX as J, SkewPropertiesSchema as Jt, mediaDecoderCache as K, SelectorUnitsSchema as Kt, getRenderer2D as L, sampleAudioSpectrumScale as Ln, GlyphAnchorGroupingSchema as Lt, fitSpansToText as M, generateArcLengthLUT as Mn, CubicBezierSegmentSchema as Mt, generateExtrudedTextGeometry as N, generatePathSegments as Nn, DynamicStrokePropertiesSchema as Nt, drawSvgNode as O, evaluateSkewMatrix as On, AnimatableGlyphPropsSchema as Ot, getHeadlessFontPath as P, getScramblePool as Pn, EnhancedTextNodeSchema as Pt, poseNodes as Q, TextAnimatorBuilder as Qt, initHeadlessWebGPU as R, sampleCurveGeometry as Rn, GlyphAnchorPointSchema as Rt, drawCaptionNode as S, ellipseToCubicBeziers as Sn, resolveEnvironment as St, drawLottieNode as T, evaluateExpressionSelector as Tn, AdvancedTextAnimatorSchema as Tt, loadOBJ as U, SelectorBasedOnSchema as Ut, loadFBX as V, waveToCubicBeziers as Vn, LongShadowConfigSchema as Vt, lutStore as W, SelectorModeSchema as Wt, parseOBJ as X, SpringPhysicsSchema as Xt, parseMTL as Y, Spatial3DPropertiesSchema as Yt, parseSvgPathToSegments as Z, TextAnchorConfigSchema as Zt, buildShapeSvgPath as _, computeAnchorPivotOffset as _n, Matrix4Math as _t, GlassPipeline as a, TextScrambleConfigSchema as an, spansText as at, colorMatrixWgsl as b, deterministicWigglyNoise as bn, linearRgb as bt, Renderer2D as c, TextWigglySelectorSchema as cn, trackAudioPitch as ct, ScreenSpaceRelightPipeline as d, VariableFontAxesSchema as dn, resolveMediaSourceUrl as dt, TextCursorStyleSchema as en, registerHeadlessFont as et, ShadowPipeline as f, Vec2Schema as fn, Camera3D as ft, WebGPUAudioProcessor as g, buildWGSLSignalFn as gn, MAX_LIGHTS as gt, SlugPipeline as h, buildPathLUT as hn, Light3D as ht, EffectPipeline as i, TextRangeSelectorSchema as in, shaderStore as it, ensureDevice as j, evaluateVolumetricFormation as jn, ChromaticGlitchConfigSchema as jt, drawVideoNode as k, evaluateSpringProgress as kn, AudioSignalComputePipeline as kt, Renderer3D as l, TypewriterAnimatorSchema as ln, transformScale as lt, SlugGeometry as m, VolumetricFormationModeSchema as mn, LIGHT_UNIFORM_SIZE_BYTES as mt, AudioLatentTrackCache as n, TextPathOptionsSchema as nn, sampleMorphWeights as nt, MotionBlurPipeline as o, TextSelectorSchema as on, srtLoader as ot, SlugFontCache as p, VolumetricFormationConfigSchema as pn, ENVIRONMENT_PRESETS as pt, parseColor as q, SignalRegistry as qt, AudioMeshDeformPipeline as r, TextPathSourceSchema as rn, setRegisteredFontSource as rt, NodeSurfaceProvider as s, TextSignalSelectorSchema as sn, textureCache as st, AudioLatentEngine as t, TextPathBuilder as tn, resolveTextSpans as tt, SSAOPipeline as u, TypingCadenceSchema as un, GetFontAssetUrl as ut, clearAllVideoCache as v, computeLineLeadingDisplacement as vn, Path3D as vt, drawImageNode as w, evaluateCubicBezierDerivative as wn, AdvancedTextAnimatorBuilder as wt, describeGpu as x, distanceToCurveParameter as xn, parseColorToRgb as xt, clearHeadlessFonts as y, computeRangeSelectorWeight as yn, Vector3Math as yt, inputStore as z, samplePathChainGeometry as zn, KineticMarqueeConfigSchema as zt };
41578
+ //# sourceMappingURL=dist-B-OPY7Cs.mjs.map