framefields 2.11.0 → 2.13.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 (540) hide show
  1. package/NOTICE.md +4 -0
  2. package/dist/audio/index.d.mts +6 -5
  3. package/dist/audio/index.mjs +13 -13
  4. package/dist/{audio-CYZkDwae.d.mts → audio-CHV33Od9.d.mts} +3 -4
  5. package/dist/audio-CHV33Od9.d.mts.map +1 -0
  6. package/dist/{audio-BuCVk1IQ.mjs → audio-DHzLQ_RG.mjs} +4 -4
  7. package/dist/{audio-BuCVk1IQ.mjs.map → audio-DHzLQ_RG.mjs.map} +1 -1
  8. package/dist/{audio-KHBadECb.mjs → audio-DS9Jg2ls.mjs} +1 -1
  9. package/dist/{audio-KHBadECb.mjs.map → audio-DS9Jg2ls.mjs.map} +1 -1
  10. package/dist/{check-result-Culfu7Nx.mjs → check-result-DZWx73V8.mjs} +1 -1
  11. package/dist/{check-result-Culfu7Nx.mjs.map → check-result-DZWx73V8.mjs.map} +1 -1
  12. package/dist/cli/check-worker.mjs +51 -51
  13. package/dist/cli/check-worker.mjs.map +1 -1
  14. package/dist/cli/local-worker.d.mts +28 -0
  15. package/dist/cli/local-worker.d.mts.map +1 -0
  16. package/dist/cli/local-worker.mjs +83 -0
  17. package/dist/cli/local-worker.mjs.map +1 -0
  18. package/dist/cli.mjs +390 -124
  19. package/dist/cli.mjs.map +1 -1
  20. package/dist/cloud/index.d.mts +16 -3
  21. package/dist/cloud/index.d.mts.map +1 -1
  22. package/dist/cloud/index.mjs +2 -2
  23. package/dist/cloud-Cj1TIme8.mjs +685 -0
  24. package/dist/cloud-Cj1TIme8.mjs.map +1 -0
  25. package/dist/components/index.d.mts +15 -14
  26. package/dist/components/index.mjs +47 -47
  27. package/dist/{dist-CySGkG54.mjs → dist-BSKAbyea.mjs} +2 -2
  28. package/dist/dist-BSKAbyea.mjs.map +1 -0
  29. package/dist/{dist-CNGv-JTX.mjs → dist-B_rSWeOz.mjs} +1 -1
  30. package/dist/{dist-Bf2_efYP.mjs → dist-C8XSqfTx.mjs} +1 -1
  31. package/dist/{dist-Bf2_efYP.mjs.map → dist-C8XSqfTx.mjs.map} +1 -1
  32. package/dist/{dist-EQX3TUUl.mjs → dist-CUNvNDS3.mjs} +129 -82
  33. package/dist/dist-CUNvNDS3.mjs.map +1 -0
  34. package/dist/dist-CiTgmfUw.mjs +502 -0
  35. package/dist/dist-CiTgmfUw.mjs.map +1 -0
  36. package/dist/{dist-CWLLnigL.mjs → dist-D3BeAZ7X.mjs} +315 -84
  37. package/dist/dist-D3BeAZ7X.mjs.map +1 -0
  38. package/dist/{dist-BIE8fvlv.mjs → dist-DgZpN6IK.mjs} +1 -1
  39. package/dist/{dist-BIE8fvlv.mjs.map → dist-DgZpN6IK.mjs.map} +1 -1
  40. package/dist/{dist-Dg9LMWoX.mjs → dist-Kbf-JTry.mjs} +2 -2
  41. package/dist/{dist-Dg9LMWoX.mjs.map → dist-Kbf-JTry.mjs.map} +1 -1
  42. package/dist/effects/index.d.mts +6 -6
  43. package/dist/effects/index.mjs +36 -36
  44. package/dist/{effects-DKLbLXF7.mjs → effects-BiDgCK1L.mjs} +3 -3
  45. package/dist/{effects-DKLbLXF7.mjs.map → effects-BiDgCK1L.mjs.map} +1 -1
  46. package/dist/fonts/index.d.mts +1 -1
  47. package/dist/fonts/index.mjs +3 -3
  48. package/dist/{fonts-gPbGbShD.mjs → fonts-DeDPWdvJ.mjs} +2 -2
  49. package/dist/{fonts-gPbGbShD.mjs.map → fonts-DeDPWdvJ.mjs.map} +1 -1
  50. package/dist/{gpu-CpkJJLQP.mjs → gpu-CWjgql4C.mjs} +11 -3
  51. package/dist/gpu-CWjgql4C.mjs.map +1 -0
  52. package/dist/index-BFTtXosj.d.mts +63 -0
  53. package/dist/index-BFTtXosj.d.mts.map +1 -0
  54. package/dist/{index-BW0Q1ygn.d.mts → index-C5sgRLlG.d.mts} +1 -1
  55. package/dist/{index-BW0Q1ygn.d.mts.map → index-C5sgRLlG.d.mts.map} +1 -1
  56. package/dist/{index-CdCrae-I.d.mts → index-CnZhBlob.d.mts} +2 -2
  57. package/dist/index-CnZhBlob.d.mts.map +1 -0
  58. package/dist/{index-D2i9J9Zq.d.mts → index-D68eGFNE.d.mts} +3 -30
  59. package/dist/index-D68eGFNE.d.mts.map +1 -0
  60. package/dist/{index-CEU_Zsb9.d.mts → index-DBh3WphX.d.mts} +25 -23
  61. package/dist/index-DBh3WphX.d.mts.map +1 -0
  62. package/dist/{index-gOVtTm-P.d.mts → index-DQ1U3HC3.d.mts} +14 -6
  63. package/dist/index-DQ1U3HC3.d.mts.map +1 -0
  64. package/dist/{index-jSDEM-uE.d.mts → index-Dibc_xpC.d.mts} +6 -6
  65. package/dist/{index-jSDEM-uE.d.mts.map → index-Dibc_xpC.d.mts.map} +1 -1
  66. package/dist/{index-Cro-818i.d.mts → index-E2IXX0Cz.d.mts} +88 -14
  67. package/dist/index-E2IXX0Cz.d.mts.map +1 -0
  68. package/dist/{index-BuiZzc6i.d.mts → index-X2u96TEo.d.mts} +162 -5
  69. package/dist/index-X2u96TEo.d.mts.map +1 -0
  70. package/dist/{index-Bly-7YM1.d.mts → index-YB9j9KUx.d.mts} +3 -3
  71. package/dist/{index-Bly-7YM1.d.mts.map → index-YB9j9KUx.d.mts.map} +1 -1
  72. package/dist/{index-COYNQ_mf.d.mts → index-a6JrbAK0.d.mts} +1 -1
  73. package/dist/{index-COYNQ_mf.d.mts.map → index-a6JrbAK0.d.mts.map} +1 -1
  74. package/dist/{index-C8YwZ6k1.d.mts → index-rtCXNxGO.d.mts} +2 -2
  75. package/dist/{index-C8YwZ6k1.d.mts.map → index-rtCXNxGO.d.mts.map} +1 -1
  76. package/dist/index.d.mts +16 -15
  77. package/dist/index.mjs +58 -58
  78. package/dist/preview/index.d.mts +5 -4
  79. package/dist/preview/index.mjs +12 -12
  80. package/dist/{preview-BToKUTtZ.mjs → preview-PDz7o2xg.mjs} +323 -35
  81. package/dist/preview-PDz7o2xg.mjs.map +1 -0
  82. package/dist/preview-engine/audio.mjs +1 -1
  83. package/dist/preview-engine/{chunk-QF4JWVO3.mjs → chunk-35XSD4QM.mjs} +15 -15
  84. package/dist/preview-engine/{chunk-ZF2MEFKO.mjs → chunk-3DOIE4DV.mjs} +1 -1
  85. package/dist/preview-engine/{chunk-JDB7PMRI.mjs → chunk-3IT7LHWR.mjs} +1 -1
  86. package/dist/preview-engine/{chunk-DNNGWS2C.mjs → chunk-3MLGWUSK.mjs} +1 -1
  87. package/dist/preview-engine/{chunk-KVOFO273.mjs → chunk-3QJ5GRBH.mjs} +1 -1
  88. package/dist/preview-engine/{chunk-54Q5CKSV.mjs → chunk-3QTHW2CD.mjs} +1 -1
  89. package/dist/preview-engine/chunk-44V4V5LD.mjs +1 -0
  90. package/dist/preview-engine/chunk-4P3MMJWD.mjs +1 -0
  91. package/dist/preview-engine/chunk-4YT5YJIF.mjs +1 -0
  92. package/dist/preview-engine/{chunk-BJXNKMSY.mjs → chunk-64L4GUOF.mjs} +20 -6
  93. package/dist/preview-engine/{chunk-UMJ3VGKN.mjs → chunk-6B3NOY5W.mjs} +1 -1
  94. package/dist/preview-engine/chunk-77MT33VR.mjs +1 -0
  95. package/dist/preview-engine/{chunk-BRV7TQDV.mjs → chunk-77WWW75O.mjs} +1 -1
  96. package/dist/preview-engine/chunk-7M5LE6EM.mjs +483 -0
  97. package/dist/preview-engine/chunk-A6OAPDIA.mjs +1 -0
  98. package/dist/preview-engine/chunk-ADLIF544.mjs +39 -0
  99. package/dist/preview-engine/{chunk-OLB4TQLQ.mjs → chunk-AKVRG7UU.mjs} +1 -1
  100. package/dist/preview-engine/{chunk-CIVEZJYF.mjs → chunk-CRBOK3JT.mjs} +1 -1
  101. package/dist/preview-engine/chunk-CSLSWUUT.mjs +1 -0
  102. package/dist/preview-engine/{chunk-ACBBBOUM.mjs → chunk-CYM75INB.mjs} +1 -1
  103. package/dist/preview-engine/{chunk-JSYG6OWZ.mjs → chunk-D7OMXGIZ.mjs} +1 -1
  104. package/dist/preview-engine/{chunk-EPRINA4V.mjs → chunk-E7BKWHOT.mjs} +10 -10
  105. package/dist/preview-engine/{chunk-NOKPBMIP.mjs → chunk-EWDJMJO5.mjs} +1 -1
  106. package/dist/preview-engine/{chunk-5KSBS3AL.mjs → chunk-EYE3GNL5.mjs} +1 -1
  107. package/dist/preview-engine/chunk-FRJPXWAG.mjs +1 -0
  108. package/dist/preview-engine/{chunk-IKVJ4MW5.mjs → chunk-G4ZTSLZU.mjs} +1 -1
  109. package/dist/preview-engine/{chunk-VZLIRYAL.mjs → chunk-GAMAKN5L.mjs} +1 -1
  110. package/dist/preview-engine/{chunk-ZIXPWP2B.mjs → chunk-ICWD36H6.mjs} +1 -1
  111. package/dist/preview-engine/{chunk-OELPPLML.mjs → chunk-IEEV5RB3.mjs} +1 -1
  112. package/dist/preview-engine/chunk-JAAFSVAG.mjs +1 -0
  113. package/dist/preview-engine/{chunk-YVZTRH4Y.mjs → chunk-KDCM7S3S.mjs} +1 -1
  114. package/dist/preview-engine/chunk-LZNHGH56.mjs +5 -0
  115. package/dist/preview-engine/{chunk-O63FLYWC.mjs → chunk-N2VISDTG.mjs} +1 -1
  116. package/dist/preview-engine/{chunk-GN3NDRLI.mjs → chunk-NCQHOGZK.mjs} +1 -1
  117. package/dist/preview-engine/{chunk-YKM7JDQY.mjs → chunk-NJO2BIJX.mjs} +1 -1
  118. package/dist/preview-engine/{chunk-7GMHSTRP.mjs → chunk-NTSALWFF.mjs} +1 -1
  119. package/dist/preview-engine/{chunk-PKNUTHPI.mjs → chunk-NVXFEDJS.mjs} +1 -1
  120. package/dist/preview-engine/{chunk-VFQH5KVS.mjs → chunk-ONHY4KNY.mjs} +1 -1
  121. package/dist/preview-engine/{chunk-Z24UEN4P.mjs → chunk-PD2HKW2S.mjs} +1 -1
  122. package/dist/preview-engine/chunk-PH3UUX6A.mjs +138 -0
  123. package/dist/preview-engine/chunk-PIHG6HJO.mjs +1 -0
  124. package/dist/preview-engine/{chunk-YHMBGJP6.mjs → chunk-QPT2Y2GZ.mjs} +1 -1
  125. package/dist/preview-engine/{chunk-4AGQN53P.mjs → chunk-QXLFTCLC.mjs} +1 -1
  126. package/dist/preview-engine/{chunk-65NANVQL.mjs → chunk-R4H52Q7S.mjs} +1 -1
  127. package/dist/preview-engine/{chunk-FQL4IJZN.mjs → chunk-RN7J5TRU.mjs} +1 -1
  128. package/dist/preview-engine/{chunk-26XWIHW3.mjs → chunk-RVCLMO5Q.mjs} +1 -1
  129. package/dist/preview-engine/{chunk-VQA4DYZU.mjs → chunk-RYSV44B4.mjs} +1 -1
  130. package/dist/preview-engine/{chunk-TEWRQKX3.mjs → chunk-SFHWP65D.mjs} +1 -1
  131. package/dist/preview-engine/{chunk-RDWLLITE.mjs → chunk-SMHEMYCV.mjs} +1 -1
  132. package/dist/preview-engine/{chunk-EXEO245X.mjs → chunk-SV3ZNZQU.mjs} +1 -1
  133. package/dist/preview-engine/{chunk-32WC4FRR.mjs → chunk-UE7Y65C3.mjs} +3 -3
  134. package/dist/preview-engine/chunk-UFPA36D2.mjs +2227 -0
  135. package/dist/preview-engine/{chunk-EAWJXW4J.mjs → chunk-UVEDFIPN.mjs} +1 -1
  136. package/dist/preview-engine/{chunk-6LTINEA4.mjs → chunk-VMXJZ4KQ.mjs} +1 -1
  137. package/dist/preview-engine/{chunk-IBPYV6HF.mjs → chunk-W4XR6F5G.mjs} +1 -1
  138. package/dist/preview-engine/{chunk-UI3VH33L.mjs → chunk-WPYWCWWL.mjs} +1 -1
  139. package/dist/preview-engine/{chunk-GHTG5XV6.mjs → chunk-XYCR3STG.mjs} +84 -25
  140. package/dist/preview-engine/{chunk-WFMUDL55.mjs → chunk-YAPGJZPI.mjs} +1 -1
  141. package/dist/preview-engine/{chunk-LMXMBX4J.mjs → chunk-YJ4DSRDY.mjs} +1 -1
  142. package/dist/preview-engine/{chunk-CCORQLMR.mjs → chunk-YOJKIMU5.mjs} +1 -1
  143. package/dist/preview-engine/{chunk-UGB6JKVS.mjs → chunk-ZHNEZZ6A.mjs} +1 -1
  144. package/dist/preview-engine/{chunk-LFNCWMKS.mjs → chunk-ZZMI3WOT.mjs} +1 -1
  145. package/dist/preview-engine/components.mjs +1 -1
  146. package/dist/preview-engine/effects.mjs +1 -1
  147. package/dist/preview-engine/fonts.mjs +1 -1
  148. package/dist/preview-engine/framefields.mjs +1 -1
  149. package/dist/preview-engine/player.mjs +5 -5
  150. package/dist/preview-engine/{renderers-53EI26GL.mjs → renderers-3FZVDYRQ.mjs} +1 -1
  151. package/dist/preview-engine/renderers-3KEBYOOF.mjs +1 -0
  152. package/dist/preview-engine/{renderers-6YVZUQOH.mjs → renderers-4RPQSUUZ.mjs} +1 -1
  153. package/dist/preview-engine/renderers-5EGFXFPF.mjs +1 -0
  154. package/dist/preview-engine/renderers-5SJHYUTM.mjs +1 -0
  155. package/dist/preview-engine/renderers-66MWDUN6.mjs +1 -0
  156. package/dist/preview-engine/{renderers-CCRZNGVK.mjs → renderers-6FENMFSC.mjs} +1 -1
  157. package/dist/preview-engine/renderers-77OXJ2GY.mjs +1 -0
  158. package/dist/preview-engine/renderers-7LI4QKHO.mjs +1 -0
  159. package/dist/preview-engine/renderers-AFTUFMQQ.mjs +1 -0
  160. package/dist/preview-engine/{renderers-CYJAVWHT.mjs → renderers-AIZRIW2R.mjs} +1 -1
  161. package/dist/preview-engine/{renderers-OGOW3NA4.mjs → renderers-BDI2BDBA.mjs} +1 -1
  162. package/dist/preview-engine/renderers-BDXCO6NR.mjs +1 -0
  163. package/dist/preview-engine/{renderers-EN7LXJLG.mjs → renderers-BUZ67FNZ.mjs} +1 -1
  164. package/dist/preview-engine/renderers-DMTGKURQ.mjs +1 -0
  165. package/dist/preview-engine/renderers-DU7KPFVV.mjs +1 -0
  166. package/dist/preview-engine/{renderers-WSABL3QO.mjs → renderers-ECXMT5BD.mjs} +1 -1
  167. package/dist/preview-engine/{renderers-MOEC2XZZ.mjs → renderers-EILFSWSJ.mjs} +1 -1
  168. package/dist/preview-engine/renderers-EPSF5CSQ.mjs +1 -0
  169. package/dist/preview-engine/{renderers-X6CORAES.mjs → renderers-EVEWFJ7U.mjs} +1 -1
  170. package/dist/preview-engine/renderers-F6PT2LON.mjs +1 -0
  171. package/dist/preview-engine/renderers-F7WPJXKT.mjs +1 -0
  172. package/dist/preview-engine/renderers-FIFF267S.mjs +1 -0
  173. package/dist/preview-engine/{renderers-GQM3KMV3.mjs → renderers-FQISHQEN.mjs} +1 -1
  174. package/dist/preview-engine/{renderers-HKLCB4U6.mjs → renderers-FXAVFNUN.mjs} +1 -1
  175. package/dist/preview-engine/{renderers-P2HORBZ6.mjs → renderers-GITAVRYZ.mjs} +1 -1
  176. package/dist/preview-engine/renderers-GTKRV225.mjs +1 -0
  177. package/dist/preview-engine/{renderers-KCGK33Y2.mjs → renderers-HG6JZIZO.mjs} +1 -1
  178. package/dist/preview-engine/{renderers-I6QKZ7CH.mjs → renderers-HHWMIDN3.mjs} +1 -1
  179. package/dist/preview-engine/renderers-HI3SRJVD.mjs +1 -0
  180. package/dist/preview-engine/{renderers-7CAHX35U.mjs → renderers-HXEDI4BD.mjs} +1 -1
  181. package/dist/preview-engine/{renderers-77PDUMYI.mjs → renderers-HXNSDJBY.mjs} +1 -1
  182. package/dist/preview-engine/{renderers-ACUJMDEK.mjs → renderers-I2ZOUFRU.mjs} +1 -1
  183. package/dist/preview-engine/renderers-JHFD4LHZ.mjs +1 -0
  184. package/dist/preview-engine/{renderers-IHGAWLUF.mjs → renderers-JMSAW7VY.mjs} +1 -1
  185. package/dist/preview-engine/renderers-KGVZUFHD.mjs +1 -0
  186. package/dist/preview-engine/{renderers-RN2MHIFK.mjs → renderers-KICDB5Y6.mjs} +1 -1
  187. package/dist/preview-engine/{renderers-C7SI3NIE.mjs → renderers-KKULMOV4.mjs} +1 -1
  188. package/dist/preview-engine/{renderers-HSFQIILN.mjs → renderers-KMVMPYY7.mjs} +1 -1
  189. package/dist/preview-engine/renderers-LN7WPG6I.mjs +1 -0
  190. package/dist/preview-engine/{renderers-BOBVXYAA.mjs → renderers-LWW4RF6D.mjs} +1 -1
  191. package/dist/preview-engine/renderers-LY57CZZB.mjs +1 -0
  192. package/dist/preview-engine/renderers-MBMJWZEW.mjs +1 -0
  193. package/dist/preview-engine/{renderers-VVP5WQOY.mjs → renderers-MPFU74I3.mjs} +1 -1
  194. package/dist/preview-engine/{renderers-H6PBHEYU.mjs → renderers-MW53LTMB.mjs} +1 -1
  195. package/dist/preview-engine/{renderers-PPZK6VEW.mjs → renderers-NQC4DPX4.mjs} +1 -1
  196. package/dist/preview-engine/renderers-OJWWIVNW.mjs +1 -0
  197. package/dist/preview-engine/{renderers-4IBFDW2S.mjs → renderers-PC2GOZDT.mjs} +1 -1
  198. package/dist/preview-engine/{renderers-UG2C3C7T.mjs → renderers-Q77UPEYE.mjs} +1 -1
  199. package/dist/preview-engine/renderers-QHXCFDHI.mjs +1 -0
  200. package/dist/preview-engine/renderers-RDYJRNAR.mjs +1 -0
  201. package/dist/preview-engine/renderers-RENLKAA7.mjs +1 -0
  202. package/dist/preview-engine/renderers-RHMRWX46.mjs +1 -0
  203. package/dist/preview-engine/{renderers-5XLGCEOA.mjs → renderers-RIPXT4AL.mjs} +1 -1
  204. package/dist/preview-engine/{renderers-FY2HOQCS.mjs → renderers-SFVFAS3C.mjs} +1 -1
  205. package/dist/preview-engine/{renderers-VIGZYJYX.mjs → renderers-SWQVCJHB.mjs} +1 -1
  206. package/dist/preview-engine/renderers-SZVDZDY7.mjs +1 -0
  207. package/dist/preview-engine/renderers-TTXTV4PC.mjs +228 -0
  208. package/dist/preview-engine/renderers-TYSLUZ53.mjs +1 -0
  209. package/dist/preview-engine/{renderers-6LNDAO4B.mjs → renderers-U4IXWMD6.mjs} +1 -1
  210. package/dist/preview-engine/renderers-VEHYARKY.mjs +1 -0
  211. package/dist/preview-engine/renderers-VRXAG3FR.mjs +1 -0
  212. package/dist/preview-engine/{renderers-33FCFHDR.mjs → renderers-VUQAZ56P.mjs} +1 -1
  213. package/dist/preview-engine/renderers-W5YFMLSB.mjs +1 -0
  214. package/dist/preview-engine/renderers-XKDWUK56.mjs +1 -0
  215. package/dist/preview-engine/renderers-XKSBNCLZ.mjs +1 -0
  216. package/dist/preview-engine/renderers-XLQXVD37.mjs +1 -0
  217. package/dist/preview-engine/renderers-ZHSOWEMQ.mjs +1 -0
  218. package/dist/preview-engine/renderers-ZMDRNYSS.mjs +1 -0
  219. package/dist/preview-engine/signals.mjs +1 -1
  220. package/dist/preview-engine/{src-4IUYUKIZ.mjs → src-YXNX4MLK.mjs} +1 -1
  221. package/dist/{program-Bc860ko5.mjs → program-Bn6ko_I4.mjs} +44 -17
  222. package/dist/program-Bn6ko_I4.mjs.map +1 -0
  223. package/dist/renderer/index.d.mts +4 -3
  224. package/dist/renderer/index.mjs +3 -3
  225. package/dist/{renderer-B3Dme2es.mjs → renderer--Q0pM9Vh.mjs} +5 -5
  226. package/dist/{renderer-B3Dme2es.mjs.map → renderer--Q0pM9Vh.mjs.map} +1 -1
  227. package/dist/renderer-1aSF5BmY.mjs +5 -0
  228. package/dist/{renderer-CAWnCsQc.mjs → renderer-45ifiDkn.mjs} +5 -5
  229. package/dist/{renderer-CAWnCsQc.mjs.map → renderer-45ifiDkn.mjs.map} +1 -1
  230. package/dist/{renderer-Cz-n883J.mjs → renderer-549d94qG.mjs} +5 -5
  231. package/dist/{renderer-Cz-n883J.mjs.map → renderer-549d94qG.mjs.map} +1 -1
  232. package/dist/{renderer-BhsrlGKp.mjs → renderer-B-LUGB9h.mjs} +74 -21
  233. package/dist/renderer-B-LUGB9h.mjs.map +1 -0
  234. package/dist/renderer-B2e4Gr9u.mjs +5 -0
  235. package/dist/{renderer-B1LD29TV.mjs → renderer-B5b-ehRb.mjs} +3 -3
  236. package/dist/{renderer-B1LD29TV.mjs.map → renderer-B5b-ehRb.mjs.map} +1 -1
  237. package/dist/renderer-B6fz4j50.mjs +5 -0
  238. package/dist/{renderer-_9gbYS-3.mjs → renderer-BCTUqJG7.mjs} +5 -5
  239. package/dist/{renderer-_9gbYS-3.mjs.map → renderer-BCTUqJG7.mjs.map} +1 -1
  240. package/dist/renderer-BEftIYw-.mjs +5 -0
  241. package/dist/{renderer-C9BSXyrq.mjs → renderer-BHPgkoEL.mjs} +4 -4
  242. package/dist/{renderer-C9BSXyrq.mjs.map → renderer-BHPgkoEL.mjs.map} +1 -1
  243. package/dist/renderer-BHTnO-7e.mjs +5 -0
  244. package/dist/{renderer-fs8f1QeE.mjs → renderer-BIieU9pY.mjs} +5 -5
  245. package/dist/{renderer-fs8f1QeE.mjs.map → renderer-BIieU9pY.mjs.map} +1 -1
  246. package/dist/{renderer-DwK9jsER.mjs → renderer-BKi6jDi_.mjs} +4 -4
  247. package/dist/{renderer-DwK9jsER.mjs.map → renderer-BKi6jDi_.mjs.map} +1 -1
  248. package/dist/renderer-BMlnQqTO.mjs +5 -0
  249. package/dist/{renderer-BNJ6Jk7-.mjs → renderer-BMpmmYOq.mjs} +4 -4
  250. package/dist/{renderer-BNJ6Jk7-.mjs.map → renderer-BMpmmYOq.mjs.map} +1 -1
  251. package/dist/{renderer-DkqZmfm8.mjs → renderer-BO_wuUKA.mjs} +5 -5
  252. package/dist/{renderer-DkqZmfm8.mjs.map → renderer-BO_wuUKA.mjs.map} +1 -1
  253. package/dist/renderer-BOzcFezY.mjs +5 -0
  254. package/dist/{renderer-Bxjb0HYU.mjs → renderer-BPOh9x5X.mjs} +4 -4
  255. package/dist/{renderer-Bxjb0HYU.mjs.map → renderer-BPOh9x5X.mjs.map} +1 -1
  256. package/dist/{renderer-Ros7XQg2.mjs → renderer-BPiWsrC2.mjs} +3 -3
  257. package/dist/{renderer-Ros7XQg2.mjs.map → renderer-BPiWsrC2.mjs.map} +1 -1
  258. package/dist/{renderer-lHNTgiOM.mjs → renderer-BUj7jE6t.mjs} +3 -3
  259. package/dist/{renderer-lHNTgiOM.mjs.map → renderer-BUj7jE6t.mjs.map} +1 -1
  260. package/dist/renderer-BVbjJIKJ.mjs +5 -0
  261. package/dist/renderer-BXsHKf4k.mjs +5 -0
  262. package/dist/{renderer-D0aAZHC7.mjs → renderer-BZgJj8Cl.mjs} +4 -4
  263. package/dist/{renderer-D0aAZHC7.mjs.map → renderer-BZgJj8Cl.mjs.map} +1 -1
  264. package/dist/{renderer-V4dhrf_h.mjs → renderer-BgjPbgbn.mjs} +6 -6
  265. package/dist/{renderer-V4dhrf_h.mjs.map → renderer-BgjPbgbn.mjs.map} +1 -1
  266. package/dist/{renderer-BaIJIfJ6.mjs → renderer-BjgFpwVK.mjs} +5 -5
  267. package/dist/{renderer-BaIJIfJ6.mjs.map → renderer-BjgFpwVK.mjs.map} +1 -1
  268. package/dist/renderer-Bks49NVl.mjs +5 -0
  269. package/dist/{renderer-CU8v-LxD.mjs → renderer-BlZgyBSo.mjs} +5 -5
  270. package/dist/{renderer-CU8v-LxD.mjs.map → renderer-BlZgyBSo.mjs.map} +1 -1
  271. package/dist/{renderer-B6Oeahe_.mjs → renderer-BqUAyzCZ.mjs} +5 -5
  272. package/dist/{renderer-B6Oeahe_.mjs.map → renderer-BqUAyzCZ.mjs.map} +1 -1
  273. package/dist/{renderer-h62QaJYz.mjs → renderer-Br8km655.mjs} +4 -4
  274. package/dist/{renderer-h62QaJYz.mjs.map → renderer-Br8km655.mjs.map} +1 -1
  275. package/dist/{renderer-sfqZK6L5.mjs → renderer-BsMZ5Iaq.mjs} +4 -4
  276. package/dist/{renderer-sfqZK6L5.mjs.map → renderer-BsMZ5Iaq.mjs.map} +1 -1
  277. package/dist/{renderer-g_1t2je9.mjs → renderer-BtgqTg2K.mjs} +3 -3
  278. package/dist/{renderer-DcvjSolU.mjs → renderer-BuvKGwk3.mjs} +11 -2
  279. package/dist/{renderer-DcvjSolU.mjs.map → renderer-BuvKGwk3.mjs.map} +1 -1
  280. package/dist/{renderer-BOrMBwQS.mjs → renderer-C-3qhk5x.mjs} +2 -2
  281. package/dist/{renderer-BOrMBwQS.mjs.map → renderer-C-3qhk5x.mjs.map} +1 -1
  282. package/dist/{renderer-CLAvn9c6.mjs → renderer-C-GTxnfv.mjs} +4 -4
  283. package/dist/{renderer-CLAvn9c6.mjs.map → renderer-C-GTxnfv.mjs.map} +1 -1
  284. package/dist/renderer-C-t7qFKr.mjs +5 -0
  285. package/dist/{renderer-BDZC3o3N.mjs → renderer-C1ctHdXl.mjs} +4 -4
  286. package/dist/{renderer-BDZC3o3N.mjs.map → renderer-C1ctHdXl.mjs.map} +1 -1
  287. package/dist/renderer-C24n-6CX.mjs +6 -0
  288. package/dist/{renderer-pNmI-A9o.mjs → renderer-C7m7Yxgc.mjs} +5 -5
  289. package/dist/{renderer-pNmI-A9o.mjs.map → renderer-C7m7Yxgc.mjs.map} +1 -1
  290. package/dist/{renderer-Bf4-N7k7.mjs → renderer-C9dqx3U7.mjs} +5 -5
  291. package/dist/{renderer-Bf4-N7k7.mjs.map → renderer-C9dqx3U7.mjs.map} +1 -1
  292. package/dist/renderer-CCReX-7M.mjs +5 -0
  293. package/dist/{renderer-JHByuUNb.mjs → renderer-CE4535aW.mjs} +3 -3
  294. package/dist/{renderer-JHByuUNb.mjs.map → renderer-CE4535aW.mjs.map} +1 -1
  295. package/dist/renderer-CIxFQrAm.mjs +5 -0
  296. package/dist/{renderer-ByjaseAo.mjs → renderer-CL-vyXgX.mjs} +5 -5
  297. package/dist/{renderer-ByjaseAo.mjs.map → renderer-CL-vyXgX.mjs.map} +1 -1
  298. package/dist/renderer-CLHBMIqJ.mjs +5 -0
  299. package/dist/renderer-CMJKi-Ye.mjs +5 -0
  300. package/dist/{renderer-B-CMRUag.mjs → renderer-CMnlgAGs.mjs} +4 -4
  301. package/dist/{renderer-B-CMRUag.mjs.map → renderer-CMnlgAGs.mjs.map} +1 -1
  302. package/dist/{renderer-BNHcwxw9.mjs → renderer-CQFMyC_c.mjs} +4 -4
  303. package/dist/{renderer-BNHcwxw9.mjs.map → renderer-CQFMyC_c.mjs.map} +1 -1
  304. package/dist/{renderer-DgPn_SOC.mjs → renderer-CYwVNbUh.mjs} +4 -4
  305. package/dist/{renderer-DgPn_SOC.mjs.map → renderer-CYwVNbUh.mjs.map} +1 -1
  306. package/dist/{renderer-DLPhfwbR.mjs → renderer-CZ5mwBW1.mjs} +3 -3
  307. package/dist/{renderer-DLPhfwbR.mjs.map → renderer-CZ5mwBW1.mjs.map} +1 -1
  308. package/dist/{renderer-4ZUv3X1I.mjs → renderer-C_1eqfI0.mjs} +5 -5
  309. package/dist/{renderer-4ZUv3X1I.mjs.map → renderer-C_1eqfI0.mjs.map} +1 -1
  310. package/dist/renderer-C_H3mHZa.mjs +5 -0
  311. package/dist/{renderer-B1esRxGy.mjs → renderer-CciiDHuU.mjs} +4 -4
  312. package/dist/{renderer-B1esRxGy.mjs.map → renderer-CciiDHuU.mjs.map} +1 -1
  313. package/dist/renderer-CfkTdR5B.mjs +5 -0
  314. package/dist/{renderer-ynFRJh7G.mjs → renderer-CgK7Q1G8.mjs} +3 -3
  315. package/dist/{renderer-CR0mDPYY.mjs → renderer-CnL8Cmmr.mjs} +3 -3
  316. package/dist/renderer-CnhkXJ0R.mjs +5 -0
  317. package/dist/{renderer-fwKnV9zs.mjs → renderer-Cp_HOmp7.mjs} +5 -5
  318. package/dist/{renderer-fwKnV9zs.mjs.map → renderer-Cp_HOmp7.mjs.map} +1 -1
  319. package/dist/renderer-CqpyVsq_.mjs +5 -0
  320. package/dist/renderer-CtWgIpTE.mjs +5 -0
  321. package/dist/{renderer-riIFosX6.mjs → renderer-Cu3iKMSJ.mjs} +5 -5
  322. package/dist/{renderer-riIFosX6.mjs.map → renderer-Cu3iKMSJ.mjs.map} +1 -1
  323. package/dist/{renderer-D4f8f66C.mjs → renderer-CuPAQjDK.mjs} +4 -4
  324. package/dist/{renderer-D4f8f66C.mjs.map → renderer-CuPAQjDK.mjs.map} +1 -1
  325. package/dist/{renderer-CxGx1Lhi.mjs → renderer-CwlY8Tb-.mjs} +3 -3
  326. package/dist/{renderer-CxGx1Lhi.mjs.map → renderer-CwlY8Tb-.mjs.map} +1 -1
  327. package/dist/{renderer-o68mVeyk.mjs → renderer-CxSFvKd1.mjs} +4 -4
  328. package/dist/{renderer-o68mVeyk.mjs.map → renderer-CxSFvKd1.mjs.map} +1 -1
  329. package/dist/{renderer-CrR8Mpxq.mjs → renderer-CyUiXLRa.mjs} +5 -5
  330. package/dist/{renderer-CrR8Mpxq.mjs.map → renderer-CyUiXLRa.mjs.map} +1 -1
  331. package/dist/renderer-CyuKr5ca.mjs +5 -0
  332. package/dist/renderer-CzgcZXKH.mjs +3 -0
  333. package/dist/{renderer-Bx14Wnxl.mjs → renderer-D-GWBoVT.mjs} +58 -4
  334. package/dist/renderer-D-GWBoVT.mjs.map +1 -0
  335. package/dist/{renderer-BwrfKKqw.mjs → renderer-D-fzEZfX.mjs} +4 -4
  336. package/dist/{renderer-BwrfKKqw.mjs.map → renderer-D-fzEZfX.mjs.map} +1 -1
  337. package/dist/renderer-D5yp74NL.mjs +3 -0
  338. package/dist/{renderer-DAn9xiQT.mjs → renderer-D8gN7aqk.mjs} +4 -4
  339. package/dist/{renderer-DAn9xiQT.mjs.map → renderer-D8gN7aqk.mjs.map} +1 -1
  340. package/dist/renderer-D9ON_1Hf.mjs +5 -0
  341. package/dist/renderer-DAnTgh4o.mjs +5 -0
  342. package/dist/{renderer-Dpl6poqD.mjs → renderer-DGOMfyh8.mjs} +2 -2
  343. package/dist/{renderer-Dpl6poqD.mjs.map → renderer-DGOMfyh8.mjs.map} +1 -1
  344. package/dist/{renderer-Rw87u1Cr.mjs → renderer-DGb_wgTW.mjs} +6 -6
  345. package/dist/{renderer-Rw87u1Cr.mjs.map → renderer-DGb_wgTW.mjs.map} +1 -1
  346. package/dist/{renderer-Co6UFbZB.mjs → renderer-DJPZs_zV.mjs} +5 -5
  347. package/dist/{renderer-Co6UFbZB.mjs.map → renderer-DJPZs_zV.mjs.map} +1 -1
  348. package/dist/renderer-DKJOon6y.d.mts +1 -0
  349. package/dist/{renderer-DOkbn1ot.mjs → renderer-DOZPZTxe.mjs} +5 -5
  350. package/dist/{renderer-DOkbn1ot.mjs.map → renderer-DOZPZTxe.mjs.map} +1 -1
  351. package/dist/{renderer-DaXQgGg3.mjs → renderer-DRal7Goa.mjs} +5 -5
  352. package/dist/{renderer-DaXQgGg3.mjs.map → renderer-DRal7Goa.mjs.map} +1 -1
  353. package/dist/renderer-DWgpivA3.mjs +5 -0
  354. package/dist/{renderer-Bo7shNdU.mjs → renderer-DXFJv_e6.mjs} +4 -4
  355. package/dist/{renderer-Bo7shNdU.mjs.map → renderer-DXFJv_e6.mjs.map} +1 -1
  356. package/dist/renderer-Dh_qNNwR.mjs +5 -0
  357. package/dist/renderer-DkCpXPMP.mjs +5 -0
  358. package/dist/{renderer-eMCTAa9e.mjs → renderer-Dp5ChuOs.mjs} +4 -4
  359. package/dist/{renderer-eMCTAa9e.mjs.map → renderer-Dp5ChuOs.mjs.map} +1 -1
  360. package/dist/{renderer-1uoKiILq.mjs → renderer-DpZballM.mjs} +3 -3
  361. package/dist/{renderer-1uoKiILq.mjs.map → renderer-DpZballM.mjs.map} +1 -1
  362. package/dist/renderer-Dre-6cDR.mjs +5 -0
  363. package/dist/renderer-Ds5z4_HX.mjs +5 -0
  364. package/dist/{renderer-7ow5Acsg.mjs → renderer-DwGlDNOV.mjs} +3 -3
  365. package/dist/{renderer-7ow5Acsg.mjs.map → renderer-DwGlDNOV.mjs.map} +1 -1
  366. package/dist/{renderer-q7q6k_cD.mjs → renderer-DxB_OfLs.mjs} +4 -4
  367. package/dist/{renderer-q7q6k_cD.mjs.map → renderer-DxB_OfLs.mjs.map} +1 -1
  368. package/dist/{renderer-DFJWPqOJ.mjs → renderer-Dz6P-rPI.mjs} +3 -3
  369. package/dist/{renderer-DFJWPqOJ.mjs.map → renderer-Dz6P-rPI.mjs.map} +1 -1
  370. package/dist/{renderer-BURhYcpA.mjs → renderer-FPiLBwj5.mjs} +4 -4
  371. package/dist/{renderer-BURhYcpA.mjs.map → renderer-FPiLBwj5.mjs.map} +1 -1
  372. package/dist/renderer-HGSCOMyP.mjs +5 -0
  373. package/dist/renderer-KMY8W-cJ.mjs +5 -0
  374. package/dist/{renderer-D-QVGphn.mjs → renderer-KgsVk9c6.mjs} +4 -4
  375. package/dist/{renderer-D-QVGphn.mjs.map → renderer-KgsVk9c6.mjs.map} +1 -1
  376. package/dist/{renderer-COcKhouz.mjs → renderer-LXhEPCmy.mjs} +5 -5
  377. package/dist/{renderer-COcKhouz.mjs.map → renderer-LXhEPCmy.mjs.map} +1 -1
  378. package/dist/{renderer-HDj9Zb-O.mjs → renderer-NBMmvqWl.mjs} +20 -7
  379. package/dist/renderer-NBMmvqWl.mjs.map +1 -0
  380. package/dist/{renderer-DE9Jik9K.mjs → renderer-Nnu32rqg.mjs} +3 -3
  381. package/dist/{renderer-DE9Jik9K.mjs.map → renderer-Nnu32rqg.mjs.map} +1 -1
  382. package/dist/renderer-R21YvXz3.mjs +5 -0
  383. package/dist/{renderer-celhuAL7.mjs → renderer-RAq3LnNy.mjs} +3 -3
  384. package/dist/{renderer-celhuAL7.mjs.map → renderer-RAq3LnNy.mjs.map} +1 -1
  385. package/dist/renderer-RtzCz37W.mjs +5 -0
  386. package/dist/{renderer-50JEMaVo.mjs → renderer-RzkU_O1i.mjs} +5 -5
  387. package/dist/{renderer-50JEMaVo.mjs.map → renderer-RzkU_O1i.mjs.map} +1 -1
  388. package/dist/{renderer-Bbxh4N8Y.mjs → renderer-S9tVGneU.mjs} +95 -80
  389. package/dist/renderer-S9tVGneU.mjs.map +1 -0
  390. package/dist/{renderer-BSELd5vU.mjs → renderer-SJyp9-62.mjs} +3 -3
  391. package/dist/{renderer-BSELd5vU.mjs.map → renderer-SJyp9-62.mjs.map} +1 -1
  392. package/dist/{renderer-jnAIhWn_.mjs → renderer-_54hiCq0.mjs} +5 -5
  393. package/dist/{renderer-jnAIhWn_.mjs.map → renderer-_54hiCq0.mjs.map} +1 -1
  394. package/dist/{renderer-88C3QpKL.d.mts → renderer-aRk849b3.d.mts} +2 -2
  395. package/dist/{renderer-88C3QpKL.d.mts.map → renderer-aRk849b3.d.mts.map} +1 -1
  396. package/dist/{renderer-BQetXCcZ.mjs → renderer-dGEMVaZ3.mjs} +4 -4
  397. package/dist/{renderer-BQetXCcZ.mjs.map → renderer-dGEMVaZ3.mjs.map} +1 -1
  398. package/dist/{renderer-RvI3qRUI.mjs → renderer-dRXP2dJU.mjs} +5 -5
  399. package/dist/{renderer-RvI3qRUI.mjs.map → renderer-dRXP2dJU.mjs.map} +1 -1
  400. package/dist/{renderer-D06HxSXO.mjs → renderer-g9SstkTz.mjs} +3 -3
  401. package/dist/renderer-iMrqAjix.mjs +5 -0
  402. package/dist/{renderer-BJ-7WRgO.mjs → renderer-opVuiAQR.mjs} +3 -3
  403. package/dist/{renderer-BJ-7WRgO.mjs.map → renderer-opVuiAQR.mjs.map} +1 -1
  404. package/dist/{renderer-KKk7myX1.mjs → renderer-puQhVfDS.mjs} +5 -5
  405. package/dist/{renderer-KKk7myX1.mjs.map → renderer-puQhVfDS.mjs.map} +1 -1
  406. package/dist/renderer-sMed1u1O.mjs +5 -0
  407. package/dist/renderer-tsAuo46l.mjs +5 -0
  408. package/dist/{renderer-TKZCA0B9.mjs → renderer-vll8LX0I.mjs} +211 -72
  409. package/dist/renderer-vll8LX0I.mjs.map +1 -0
  410. package/dist/{renderers-CP8CFWDs-DRoslK4F.mjs → renderers-CP8CFWDs-BRQyvcut.mjs} +4 -4
  411. package/dist/{renderers-CP8CFWDs-DRoslK4F.mjs.map → renderers-CP8CFWDs-BRQyvcut.mjs.map} +1 -1
  412. package/dist/sam/index.d.mts +3 -3
  413. package/dist/sam/index.mjs +1 -1
  414. package/dist/signals/index.d.mts +7 -7
  415. package/dist/signals/index.mjs +8 -8
  416. package/dist/{signals-BfJ1aqpT.mjs → signals-tiho_9fp.mjs} +4 -4
  417. package/dist/{signals-BfJ1aqpT.mjs.map → signals-tiho_9fp.mjs.map} +1 -1
  418. package/dist/{src-Bnr8DUC--BRDqRF6I.mjs → src-BU6vm9sP-DdTHmCr4.mjs} +76 -11
  419. package/dist/src-BU6vm9sP-DdTHmCr4.mjs.map +1 -0
  420. package/dist/{src-BYp6r-cS.mjs → src-BzFGotRc.mjs} +250 -30
  421. package/dist/src-BzFGotRc.mjs.map +1 -0
  422. package/dist/storage/index.d.mts +206 -0
  423. package/dist/storage/index.d.mts.map +1 -0
  424. package/dist/storage/index.mjs +3 -0
  425. package/package.json +67 -59
  426. package/dist/audio-CYZkDwae.d.mts.map +0 -1
  427. package/dist/cloud-xcfV4J03.mjs +0 -233
  428. package/dist/cloud-xcfV4J03.mjs.map +0 -1
  429. package/dist/dist-CWLLnigL.mjs.map +0 -1
  430. package/dist/dist-CySGkG54.mjs.map +0 -1
  431. package/dist/dist-EQX3TUUl.mjs.map +0 -1
  432. package/dist/gpu-CpkJJLQP.mjs.map +0 -1
  433. package/dist/index-BuiZzc6i.d.mts.map +0 -1
  434. package/dist/index-CEU_Zsb9.d.mts.map +0 -1
  435. package/dist/index-CdCrae-I.d.mts.map +0 -1
  436. package/dist/index-Cro-818i.d.mts.map +0 -1
  437. package/dist/index-D2i9J9Zq.d.mts.map +0 -1
  438. package/dist/index-gOVtTm-P.d.mts.map +0 -1
  439. package/dist/preview-BToKUTtZ.mjs.map +0 -1
  440. package/dist/preview-engine/chunk-4FY4TNST.mjs +0 -1
  441. package/dist/preview-engine/chunk-7LDSMOO3.mjs +0 -1
  442. package/dist/preview-engine/chunk-AGAZJZWI.mjs +0 -1
  443. package/dist/preview-engine/chunk-BXPM5SJ3.mjs +0 -1
  444. package/dist/preview-engine/chunk-C4M3B2Q2.mjs +0 -1
  445. package/dist/preview-engine/chunk-CIVJXFWH.mjs +0 -4
  446. package/dist/preview-engine/chunk-D73ZKPFN.mjs +0 -138
  447. package/dist/preview-engine/chunk-KOVN277Z.mjs +0 -1
  448. package/dist/preview-engine/chunk-M4QANUJI.mjs +0 -480
  449. package/dist/preview-engine/chunk-P4Y3PMJF.mjs +0 -1
  450. package/dist/preview-engine/chunk-SE2C623Z.mjs +0 -5
  451. package/dist/preview-engine/chunk-XF6DYP6B.mjs +0 -1974
  452. package/dist/preview-engine/chunk-XYGDTPO7.mjs +0 -39
  453. package/dist/preview-engine/chunk-YGKO4NIU.mjs +0 -1
  454. package/dist/preview-engine/renderers-2NGIILMI.mjs +0 -1
  455. package/dist/preview-engine/renderers-466Z77BH.mjs +0 -1
  456. package/dist/preview-engine/renderers-4KRENGZA.mjs +0 -1
  457. package/dist/preview-engine/renderers-4W52BQEU.mjs +0 -1
  458. package/dist/preview-engine/renderers-55PRAS7G.mjs +0 -1
  459. package/dist/preview-engine/renderers-5LLYINHW.mjs +0 -1
  460. package/dist/preview-engine/renderers-63N3Y2XO.mjs +0 -1
  461. package/dist/preview-engine/renderers-6ROVFDIN.mjs +0 -1
  462. package/dist/preview-engine/renderers-A4RVLPMG.mjs +0 -1
  463. package/dist/preview-engine/renderers-A53P4J6O.mjs +0 -1
  464. package/dist/preview-engine/renderers-AFJ3373L.mjs +0 -1
  465. package/dist/preview-engine/renderers-ATFWTA3U.mjs +0 -1
  466. package/dist/preview-engine/renderers-BPYJXHBU.mjs +0 -1
  467. package/dist/preview-engine/renderers-D3ZF7FXT.mjs +0 -1
  468. package/dist/preview-engine/renderers-D7YN6B4B.mjs +0 -1
  469. package/dist/preview-engine/renderers-DBLASKF5.mjs +0 -1
  470. package/dist/preview-engine/renderers-DC5ZYYHM.mjs +0 -1
  471. package/dist/preview-engine/renderers-J6ZEXW5L.mjs +0 -1
  472. package/dist/preview-engine/renderers-JV4MF46Q.mjs +0 -1
  473. package/dist/preview-engine/renderers-KQKH4ZIX.mjs +0 -1
  474. package/dist/preview-engine/renderers-MDHPQY6D.mjs +0 -1
  475. package/dist/preview-engine/renderers-MEITHN4N.mjs +0 -1
  476. package/dist/preview-engine/renderers-MN3HSBTJ.mjs +0 -1
  477. package/dist/preview-engine/renderers-NTG3QGNH.mjs +0 -1
  478. package/dist/preview-engine/renderers-OU4SFMB2.mjs +0 -1
  479. package/dist/preview-engine/renderers-P6TIBJIG.mjs +0 -1
  480. package/dist/preview-engine/renderers-POJWQ7L3.mjs +0 -1
  481. package/dist/preview-engine/renderers-RJ7S6VHD.mjs +0 -1
  482. package/dist/preview-engine/renderers-RJJAJZYN.mjs +0 -1
  483. package/dist/preview-engine/renderers-UEQ733VK.mjs +0 -1
  484. package/dist/preview-engine/renderers-ULO2AW2U.mjs +0 -1
  485. package/dist/preview-engine/renderers-UPVHGHCK.mjs +0 -1
  486. package/dist/preview-engine/renderers-UZHSNNIM.mjs +0 -1
  487. package/dist/preview-engine/renderers-V5KWZL2C.mjs +0 -1
  488. package/dist/preview-engine/renderers-WL372W36.mjs +0 -228
  489. package/dist/preview-engine/renderers-YMXKYOHQ.mjs +0 -1
  490. package/dist/preview-engine/renderers-YWDAZ2NZ.mjs +0 -1
  491. package/dist/program-Bc860ko5.mjs.map +0 -1
  492. package/dist/renderer--Ymc_4XJ.mjs +0 -5
  493. package/dist/renderer-B-OdV-eq.mjs +0 -5
  494. package/dist/renderer-B65fwoA2.mjs +0 -5
  495. package/dist/renderer-B92Ahkcv.mjs +0 -5
  496. package/dist/renderer-B9z2AK31.mjs +0 -5
  497. package/dist/renderer-BIF3Dg3Z.mjs +0 -5
  498. package/dist/renderer-BJUVaIAT.mjs +0 -5
  499. package/dist/renderer-BKRDMbI-.mjs +0 -5
  500. package/dist/renderer-BSwhyVWa.mjs +0 -5
  501. package/dist/renderer-BUqSZn2X.mjs +0 -5
  502. package/dist/renderer-BVKOQarx.d.mts +0 -99
  503. package/dist/renderer-BVKOQarx.d.mts.map +0 -1
  504. package/dist/renderer-BbmvjqK9.mjs +0 -3
  505. package/dist/renderer-Bbxh4N8Y.mjs.map +0 -1
  506. package/dist/renderer-BhsrlGKp.mjs.map +0 -1
  507. package/dist/renderer-Bpe4k_x6.mjs +0 -5
  508. package/dist/renderer-Bx14Wnxl.mjs.map +0 -1
  509. package/dist/renderer-C1NjG0CJ.mjs +0 -5
  510. package/dist/renderer-C7Puyst9.mjs +0 -5
  511. package/dist/renderer-CGA_7320.mjs +0 -5
  512. package/dist/renderer-CLnFkXO7.mjs +0 -5
  513. package/dist/renderer-CMQIT1Kh.mjs +0 -5
  514. package/dist/renderer-CQ1rwjIh.mjs +0 -5
  515. package/dist/renderer-CT8h0boY.mjs +0 -5
  516. package/dist/renderer-Cb0lszt3.mjs +0 -5
  517. package/dist/renderer-Ci7oLye9.mjs +0 -5
  518. package/dist/renderer-CjqXB3CZ.mjs +0 -5
  519. package/dist/renderer-CqTV04zQ.mjs +0 -5
  520. package/dist/renderer-CtWeRtHK.mjs +0 -5
  521. package/dist/renderer-CzolnwCo.mjs +0 -5
  522. package/dist/renderer-D6qhcx_C.mjs +0 -5
  523. package/dist/renderer-DDfEf0jt.mjs +0 -5
  524. package/dist/renderer-DDpa8ztp.mjs +0 -5
  525. package/dist/renderer-DbQBqzmx.mjs +0 -5
  526. package/dist/renderer-DfUcwMKa.mjs +0 -5
  527. package/dist/renderer-DgIjNANM.mjs +0 -6
  528. package/dist/renderer-Dsh6Tgu0.mjs +0 -3
  529. package/dist/renderer-DuIwR9GT.mjs +0 -5
  530. package/dist/renderer-Dv4u2c14.mjs +0 -5
  531. package/dist/renderer-HDj9Zb-O.mjs.map +0 -1
  532. package/dist/renderer-IE1yu3lZ.mjs +0 -5
  533. package/dist/renderer-PY_wnEN0.mjs +0 -5
  534. package/dist/renderer-TKZCA0B9.mjs.map +0 -1
  535. package/dist/renderer-gv24VyzO.mjs +0 -5
  536. package/dist/renderer-nN6lPZf9.mjs +0 -5
  537. package/dist/src-BYp6r-cS.mjs.map +0 -1
  538. package/dist/src-Bnr8DUC--BRDqRF6I.mjs.map +0 -1
  539. /package/dist/{chunk-W71TSjRM.mjs → chunk-DOL2i2sR.mjs} +0 -0
  540. /package/dist/{renderer-B6rZUBwE.mjs → renderer-Co2YqWX0.mjs} +0 -0
@@ -1,5 +1,5 @@
1
- import { i as __toESM, r as __require, t as __commonJSMin } from "./chunk-W71TSjRM.mjs";
2
- import { $t as limitGradientStops, Et as emojiPresentation, Ht as gradientStopsToOklab, Xt as isSignal, Zt as isValueSignal, dn as parseCssGradient, un as parseCssColor } from "./dist-Bf2_efYP.mjs";
1
+ import { i as __toESM, r as __require, t as __commonJSMin } from "./chunk-DOL2i2sR.mjs";
2
+ import { $t as limitGradientStops, Et as emojiPresentation, Ht as gradientStopsToOklab, Xt as isSignal, Zt as isValueSignal, dn as parseCssGradient, un as parseCssColor } from "./dist-C8XSqfTx.mjs";
3
3
  import { ALL_FORMATS, AudioBufferSink, CanvasSink, FilePathSource, Input, UrlSource, VideoSampleSink } from "mediabunny";
4
4
  import fs from "node:fs";
5
5
  import path from "node:path";
@@ -16210,6 +16210,20 @@ var WebGPUAudioProcessor = class WebGPUAudioProcessor$1 {
16210
16210
  const cacheKey = `${renderId ?? "global"}_${nodeId}_${activeSignalsKey}_${stateFloatCount}`;
16211
16211
  return WebGPUAudioProcessor$1.devicePipelineCache.get(device)?.get(cacheKey);
16212
16212
  }
16213
+ /**
16214
+ * Zeroes the state every effect keeps for `renderId` (delay lines,
16215
+ * envelopes, reverb tails), as on its first use. Pipelines and buffers
16216
+ * stay, so a mix that starts again doesn't compile them again.
16217
+ */
16218
+ static resetState(renderId, device) {
16219
+ const cache = WebGPUAudioProcessor$1.devicePipelineCache.get(device);
16220
+ if (!cache) return;
16221
+ const prefix = `${renderId}_`;
16222
+ for (const [key, cached$1] of cache.entries()) {
16223
+ if (!key.startsWith(prefix)) continue;
16224
+ device.queue.writeBuffer(cached$1.stateBuffer, 0, new Float32Array(cached$1.stateBuffer.size / 4));
16225
+ }
16226
+ }
16213
16227
  static clearCache(renderId, device) {
16214
16228
  if (!device) return;
16215
16229
  const cache = WebGPUAudioProcessor$1.devicePipelineCache.get(device);
@@ -16643,6 +16657,10 @@ async function acquireDevice(opts) {
16643
16657
  if (adapter.limits && Number.isInteger(adapter.limits.maxTextureDimension2D)) requiredLimits.maxTextureDimension2D = Math.min(8192, adapter.limits.maxTextureDimension2D);
16644
16658
  if (adapter.limits && Number.isInteger(adapter.limits.maxStorageBuffersPerShaderStage)) requiredLimits.maxStorageBuffersPerShaderStage = Math.min(16, adapter.limits.maxStorageBuffersPerShaderStage);
16645
16659
  if (adapter.limits && Number.isInteger(adapter.limits.maxStorageBuffersPerPipelineLayout)) requiredLimits.maxStorageBuffersPerPipelineLayout = Math.min(16, adapter.limits.maxStorageBuffersPerPipelineLayout);
16660
+ for (const limit of ["maxStorageBufferBindingSize", "maxBufferSize"]) {
16661
+ const max = adapter.limits?.[limit];
16662
+ if (Number.isFinite(max)) requiredLimits[limit] = max;
16663
+ }
16646
16664
  return adapter.requestDevice({
16647
16665
  requiredFeatures,
16648
16666
  requiredLimits
@@ -17102,10 +17120,13 @@ async function toLocalPath(src) {
17102
17120
  );
17103
17121
  return resolve$1$1(src);
17104
17122
  }
17105
- /** In the browser, local paths are served through the dev server's `/@fs`. */
17123
+ /**
17124
+ * In the browser (a page or a worker), local paths are served through the
17125
+ * dev server's `/@fs`.
17126
+ */
17106
17127
  function resolveInputUrl(url, isNode) {
17107
17128
  let resolvedUrl = url;
17108
- if (!isNode && typeof window !== "undefined") {
17129
+ if (!isNode && typeof location !== "undefined") {
17109
17130
  if (resolvedUrl.startsWith("file://")) resolvedUrl = resolvedUrl.slice(7);
17110
17131
  if (resolvedUrl.startsWith("/") && !resolvedUrl.startsWith("/@fs/") && !resolvedUrl.startsWith("/api/")) resolvedUrl = "/@fs" + resolvedUrl;
17111
17132
  }
@@ -17134,6 +17155,15 @@ async function assertReadableFile(filePath, url) {
17134
17155
  }
17135
17156
  var InputStore = class {
17136
17157
  store = /* @__PURE__ */ new Map();
17158
+ resolveMissing;
17159
+ /**
17160
+ * Reads local files that are missing from disk from the URL `resolver`
17161
+ * gives, with HTTP range requests, so a clip pinned on a bucket plays
17162
+ * without being downloaded. Unset with no argument.
17163
+ */
17164
+ setMissingMediaResolver(resolver) {
17165
+ this.resolveMissing = resolver;
17166
+ }
17137
17167
  async acquire(url) {
17138
17168
  if (!url) throw new Error("Cannot acquire Input for empty URL");
17139
17169
  const resolvedUrl = resolveInputUrl(url, isNodeRuntime());
@@ -17142,10 +17172,8 @@ var InputStore = class {
17142
17172
  const promise = (async () => {
17143
17173
  const filePath = await toLocalPath(resolvedUrl.startsWith("file:") ? resolvedUrl : safeDecode(resolvedUrl));
17144
17174
  let source;
17145
- if (filePath !== null) {
17146
- await assertReadableFile(filePath, url);
17147
- source = new FilePathSource(filePath);
17148
- } else source = new UrlSource(resolvedUrl);
17175
+ if (filePath !== null) source = await this.localSource(filePath, url);
17176
+ else source = new UrlSource(resolvedUrl);
17149
17177
  return new Input({
17150
17178
  source,
17151
17179
  formats: ALL_FORMATS
@@ -17176,6 +17204,16 @@ var InputStore = class {
17176
17204
  } catch (_) {}
17177
17205
  }, () => {});
17178
17206
  }
17207
+ async localSource(filePath, url) {
17208
+ try {
17209
+ await assertReadableFile(filePath, url);
17210
+ return new FilePathSource(filePath);
17211
+ } catch (err) {
17212
+ const remote = await this.resolveMissing?.(filePath);
17213
+ if (remote) return new UrlSource(remote);
17214
+ throw err;
17215
+ }
17216
+ }
17179
17217
  release(url) {
17180
17218
  if (!url) return;
17181
17219
  const resolvedUrl = resolveInputUrl(url, isNodeRuntime());
@@ -26511,6 +26549,50 @@ async function drawSignalNode(ctx, encoder, pass, props) {
26511
26549
  pass.setBindGroup(1, bindGroup1);
26512
26550
  pass.draw(4);
26513
26551
  }
26552
+ /**
26553
+ * Target pixels per local unit along the axis `m` stretches most: what a
26554
+ * raster drawn under `m` needs per unit to stay sharp, and what one target
26555
+ * pixel is in local units (its inverse).
26556
+ */
26557
+ function transformScale(m) {
26558
+ return Math.max(Math.hypot(m.a, m.b), Math.hypot(m.c, m.d));
26559
+ }
26560
+ var TransformStack = class {
26561
+ stack = [new DOMMatrix()];
26562
+ push(matrix) {
26563
+ const next = this.stack[this.stack.length - 1].multiply(matrix);
26564
+ this.stack.push(next);
26565
+ }
26566
+ pop() {
26567
+ if (this.stack.length > 1) this.stack.pop();
26568
+ }
26569
+ getCurrent() {
26570
+ return this.stack[this.stack.length - 1];
26571
+ }
26572
+ packIntoBuffer(bufferData, opacity, surfaceWidth, surfaceHeight, localOverride, customParam) {
26573
+ let m = this.getCurrent();
26574
+ if (localOverride) m = m.multiply(localOverride);
26575
+ bufferData[0] = m.a;
26576
+ bufferData[1] = m.b;
26577
+ bufferData[2] = 0;
26578
+ bufferData[3] = 0;
26579
+ bufferData[4] = m.c;
26580
+ bufferData[5] = m.d;
26581
+ bufferData[6] = 0;
26582
+ bufferData[7] = 0;
26583
+ bufferData[8] = m.e;
26584
+ bufferData[9] = m.f;
26585
+ bufferData[10] = 1;
26586
+ bufferData[11] = 0;
26587
+ bufferData[12] = opacity;
26588
+ bufferData[13] = surfaceWidth;
26589
+ bufferData[14] = surfaceHeight;
26590
+ bufferData[15] = customParam ?? 0;
26591
+ }
26592
+ destroy() {
26593
+ this.stack = [new DOMMatrix()];
26594
+ }
26595
+ };
26514
26596
  var SvgLoader = class {
26515
26597
  cache = /* @__PURE__ */ new Map();
26516
26598
  async load(src, width, height, isHeadless) {
@@ -26583,8 +26665,10 @@ var SvgLoader = class {
26583
26665
  };
26584
26666
  const svgLoader = new SvgLoader();
26585
26667
  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));
26668
+ const m = ctx.renderer.getCurrentTransform();
26669
+ const k = transformScale(props.matrix ? m.multiply(props.matrix) : m);
26670
+ const resolvedWidth = Math.max(1, Math.ceil(props.dstRect.width * k));
26671
+ const resolvedHeight = Math.max(1, Math.ceil(props.dstRect.height * k));
26588
26672
  const cacheKey = `${props.src}-${resolvedWidth}-${resolvedHeight}`;
26589
26673
  let tex = textureCache.acquire(cacheKey);
26590
26674
  if (!tex) try {
@@ -27389,6 +27473,8 @@ fn sampleSlugCoverage(sampleUV: vec2<f32>, g: SlugGlyph, pixelsPerEm: vec2<f32>)
27389
27473
  // pixel footprint in glyph uv, |d/dx| + |d/dy| (fwidth): the caller takes it in
27390
27474
  // uniform control flow. On a turned or foreshortened glyph it is wider than one
27391
27475
  // pixel along an axis, so that axis gets the soft ramp a box filter gives.
27476
+ // A blur of blurAmount px averages coverage over a grid reaching 0.3 of it
27477
+ // each way, blurTaps taps per side past the centre.
27392
27478
  fn shadeSlugGlyph(
27393
27479
  uv: vec2<f32>,
27394
27480
  fw: vec2<f32>,
@@ -27397,6 +27483,7 @@ fn shadeSlugGlyph(
27397
27483
  color: vec4<f32>,
27398
27484
  opacity: f32,
27399
27485
  blurAmount: f32,
27486
+ blurTaps: f32,
27400
27487
  chromaticShift: f32,
27401
27488
  dissolveProgress: f32,
27402
27489
  ) -> vec4<f32> {
@@ -27429,14 +27516,15 @@ fn shadeSlugGlyph(
27429
27516
 
27430
27517
  var slugAlpha = 0.0;
27431
27518
  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) {
27519
+ let step = fw * blurAmount * 0.3 / blurTaps;
27520
+ for (var y_offset = -blurTaps; y_offset <= blurTaps; y_offset = y_offset + 1.0) {
27521
+ for (var x_offset = -blurTaps; x_offset <= blurTaps; x_offset = x_offset + 1.0) {
27435
27522
  let offset = vec2<f32>(x_offset, y_offset) * step;
27436
27523
  slugAlpha = slugAlpha + sampleSlugCoverage(uv + offset, g, pixelsPerEm);
27437
27524
  }
27438
27525
  }
27439
- slugAlpha = slugAlpha / 9.0;
27526
+ let side = 2.0 * blurTaps + 1.0;
27527
+ slugAlpha = slugAlpha / (side * side);
27440
27528
  } else {
27441
27529
  slugAlpha = sampleSlugCoverage(uv, g, pixelsPerEm);
27442
27530
  }
@@ -27472,6 +27560,7 @@ struct VSOut {
27472
27560
  @location(7) @interpolate(flat) chromaticShift : f32,
27473
27561
  @location(8) @interpolate(flat) dissolveProgress : f32,
27474
27562
  @location(9) @interpolate(flat) vfxParam : f32,
27563
+ @location(10) @interpolate(flat) blurTaps : f32,
27475
27564
  };
27476
27565
 
27477
27566
  var<private> pos : array<vec2<f32>, 6> = array<vec2<f32>, 6>(
@@ -27505,7 +27594,11 @@ var<private> pos : array<vec2<f32>, 6> = array<vec2<f32>, 6>(
27505
27594
  let transform2 = mat2x2<f32>(u.transformCol0.xy, u.transformCol1.xy);
27506
27595
  let pixelsPerUnit = sqrt(max(abs(determinant(transform2)), 1e-8));
27507
27596
  let halfSize = max(abs(aScaleBias.xy * scale_mult), vec2<f32>(1e-4));
27508
- let grow = vec2<f32>(1.0) + (1.0 / pixelsPerUnit) / halfSize;
27597
+ // A blurred glyph keeps a unit around it however many pixels a unit
27598
+ // spans: its blur spills that far at one pixel per unit.
27599
+ let blurred = aExtraParams.x > 0.01;
27600
+ let dilation = select(1.0, max(1.0, pixelsPerUnit), blurred) / pixelsPerUnit;
27601
+ let grow = vec2<f32>(1.0) + dilation / halfSize;
27509
27602
  let uv = vec2<f32>(
27510
27603
  quad_pos.x * grow.x * 0.5 + 0.5,
27511
27604
  1.0 - (quad_pos.y * grow.y * 0.5 + 0.5),
@@ -27539,7 +27632,11 @@ var<private> pos : array<vec2<f32>, 6> = array<vec2<f32>, 6>(
27539
27632
  out.bandMax = vec2<u32>(aBandMaxTexCoords.xy);
27540
27633
  out.bandsTexCoords = vec2<u32>(aBandMaxTexCoords.zw);
27541
27634
  out.color = aColor;
27542
- out.blurAmount = aExtraParams.x;
27635
+ // Blur is in local units, like every other length here; the fragment
27636
+ // stage spreads its taps in pixels, as far apart as at one pixel per
27637
+ // unit (more of them as a unit spans more pixels, up to 4).
27638
+ out.blurAmount = aExtraParams.x * pixelsPerUnit;
27639
+ out.blurTaps = clamp(ceil(pixelsPerUnit - 1e-3), 1.0, 4.0);
27543
27640
  out.chromaticShift = aExtraParams.y;
27544
27641
  out.dissolveProgress = aExtraParams.z;
27545
27642
  out.vfxParam = aExtraParams.w;
@@ -27558,6 +27655,7 @@ var<private> pos : array<vec2<f32>, 6> = array<vec2<f32>, 6>(
27558
27655
  in.color,
27559
27656
  u.params.x,
27560
27657
  in.blurAmount,
27658
+ in.blurTaps,
27561
27659
  in.chromaticShift,
27562
27660
  in.dissolveProgress,
27563
27661
  );
@@ -29610,42 +29708,6 @@ var SolidPipeline = class {
29610
29708
  this.uniformBindGroupCache.destroy();
29611
29709
  }
29612
29710
  };
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
29711
  function premultiplyClearColor(color) {
29650
29712
  if (Array.isArray(color)) {
29651
29713
  const a$1 = color[3] ?? 1;
@@ -29796,10 +29858,14 @@ var Renderer2D = class {
29796
29858
  this.drawShapeFill(pass, tris, fill, bounds, opts);
29797
29859
  if ((!stroke || !stroke.width || stroke.width <= 0) && (fill.type ?? "solid") === "solid" && fill.color) {
29798
29860
  const svgPath = buildShapeSvgPath(config$1);
29799
- if (svgPath) this.drawPath(pass, svgPath, fill.color, 1, {
29800
- ...opts,
29801
- strokeLineCap: "round"
29802
- });
29861
+ if (svgPath) {
29862
+ const m = this.transformStack.getCurrent();
29863
+ const hairline = 1 / transformScale(opts?.transform ? m.multiply(opts.transform) : m);
29864
+ this.drawPath(pass, svgPath, fill.color, hairline, {
29865
+ ...opts,
29866
+ strokeLineCap: "round"
29867
+ });
29868
+ }
29803
29869
  }
29804
29870
  }
29805
29871
  }
@@ -32848,6 +32914,9 @@ fn fs_mrt_bloom(in: VertexOutput, @builtin(front_facing) isFront: bool) -> MrtBl
32848
32914
  */
32849
32915
  const quad3dWgsl = `
32850
32916
  ${lighting3dWgsl}
32917
+ // Grid cells either side a relief's normals span.
32918
+ const RELIEF_NORMAL_CELLS : f32 = 4.0;
32919
+
32851
32920
  struct ModelUniforms {
32852
32921
  modelMatrix : mat4x4<f32>,
32853
32922
  normalMatrix : mat4x4<f32>,
@@ -32858,11 +32927,15 @@ struct ModelUniforms {
32858
32927
  materialParams : vec4<f32>, // x = shininess, y = specularIntensity, z = ambientIntensity, w = materialMode (0=unlit, 1=lit)
32859
32928
  pbr : vec4<f32>, // x = roughness (<0 = default), y = metallic
32860
32929
  emissive : vec4<f32>, // rgb = sRGB emissive color, w = strength
32930
+ relief : vec4<f32>, // x = amount (px), y = on, w = grid cells per side
32931
+ reliefRect : vec4<f32>, // xy = where the layer's box starts in reliefTex (0..1), zw = its size
32932
+ reliefEye : vec4<f32>, // xyz = the eye the surface keeps its look from (the default camera)
32861
32933
  };
32862
32934
 
32863
32935
  @group(0) @binding(0) var<uniform> cam : CameraUniforms;
32864
32936
  @group(1) @binding(0) var<uniform> model : ModelUniforms;
32865
- ${matte3dWgsl(1, 1)}@group(2) @binding(0) var texSampler : sampler;
32937
+ ${matte3dWgsl(1, 1)}@group(1) @binding(2) var reliefTex : texture_2d<f32>;
32938
+ @group(2) @binding(0) var texSampler : sampler;
32866
32939
  @group(2) @binding(1) var mainTex : texture_2d<f32>;
32867
32940
  ${lightsBindingsWgsl}
32868
32941
 
@@ -32881,13 +32954,48 @@ struct VertexOutput {
32881
32954
  @location(4) localPos : vec2<f32>,
32882
32955
  };
32883
32956
 
32957
+ // Relief: the layer's plane pushed toward the eye by the brightness of a
32958
+ // second picture, so a flat quad becomes a surface (see DrawQuad3DOpts.relief).
32959
+ fn reliefAt(uv: vec2<f32>) -> f32 {
32960
+ let dims = vec2<f32>(textureDimensions(reliefTex));
32961
+ let p = (model.reliefRect.xy + clamp(uv, vec2<f32>(0.0), vec2<f32>(1.0)) * model.reliefRect.zw) * dims - 0.5;
32962
+ let i = floor(p);
32963
+ let f = p - i;
32964
+ // Texels of the layer's own box only: past its edge the relief was never drawn.
32965
+ let lo = max(floor(model.reliefRect.xy * dims), vec2<f32>(0.0));
32966
+ let hi = min(ceil((model.reliefRect.xy + model.reliefRect.zw) * dims) - 1.0, dims - 1.0);
32967
+ let a = textureLoad(reliefTex, vec2<i32>(clamp(i, lo, hi)), 0).rgb;
32968
+ let b = textureLoad(reliefTex, vec2<i32>(clamp(i + vec2<f32>(1.0, 0.0), lo, hi)), 0).rgb;
32969
+ let c = textureLoad(reliefTex, vec2<i32>(clamp(i + vec2<f32>(0.0, 1.0), lo, hi)), 0).rgb;
32970
+ let d = textureLoad(reliefTex, vec2<i32>(clamp(i + vec2<f32>(1.0, 1.0), lo, hi)), 0).rgb;
32971
+ let rgb = mix(mix(a, b, f.x), mix(c, d, f.x), f.y);
32972
+ return dot(rgb, vec3<f32>(0.2126, 0.7152, 0.0722));
32973
+ }
32974
+
32975
+ // The plane's front: the side the default camera sees.
32976
+ fn reliefFront() -> vec3<f32> {
32977
+ return normalize((model.normalMatrix * vec4<f32>(0.0, 0.0, -1.0, 0.0)).xyz);
32978
+ }
32979
+
32980
+ // A point of the plane lifted by its relief along the ray to the eye, so from
32981
+ // the eye it lands on the same pixel as the flat picture.
32982
+ fn reliefPoint(local: vec2<f32>, uv: vec2<f32>) -> vec3<f32> {
32983
+ let flat = (model.modelMatrix * vec4<f32>(local, 0.0, 1.0)).xyz;
32984
+ let n = reliefFront();
32985
+ let h = model.relief.x * reliefAt(uv);
32986
+ let toEye = model.reliefEye.xyz - flat;
32987
+ let along = dot(toEye, n);
32988
+ return select(flat + n * h, flat + toEye * (h / along), along > 1.0);
32989
+ }
32990
+
32884
32991
  @vertex
32885
32992
  fn vs_main(in: VertexInput) -> VertexOutput {
32886
32993
  var out: VertexOutput;
32887
32994
 
32888
32995
  let hasDimensions = model.dimensions.x > 0.0 && model.dimensions.y > 0.0;
32996
+ let hasRelief = model.relief.y > 0.5;
32889
32997
  var pad = 0.0;
32890
- if (hasDimensions) {
32998
+ if (hasDimensions && !hasRelief) {
32891
32999
  let viewPos = cam.viewMatrix * model.modelMatrix * vec4<f32>(0.0, 0.0, 0.0, 1.0);
32892
33000
  let viewDepth = max(abs(viewPos.z), 0.1);
32893
33001
  let projScale = max(cam.projMatrix[1][1], 0.001);
@@ -32897,12 +33005,28 @@ fn vs_main(in: VertexInput) -> VertexOutput {
32897
33005
  let scalePad = select(vec2<f32>(1.0), 1.0 + vec2<f32>(2.0 * pad) / model.dimensions.xy, hasDimensions);
32898
33006
 
32899
33007
  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;
33008
+ var worldPos4 = model.modelMatrix * vec4<f32>(paddedPos, 1.0);
32902
33009
 
32903
33010
  // Normal transformed by 3x3 normal matrix
32904
33011
  let norm4 = model.normalMatrix * vec4<f32>(in.normal, 0.0);
32905
33012
  out.worldNormal = normalize(norm4.xyz);
33013
+ if (hasRelief) {
33014
+ let p = reliefPoint(in.position.xy, in.uv);
33015
+ // Central differences a few cells wide: an 8-bit height map steps every
33016
+ // level, and normals from adjacent cells would light those steps as rings.
33017
+ let e = RELIEF_NORMAL_CELLS / max(model.relief.w, 1.0);
33018
+ let dx = vec2<f32>(e, 0.0);
33019
+ let dy = vec2<f32>(0.0, e);
33020
+ let tx = reliefPoint(in.position.xy + dx, in.uv + dx) - reliefPoint(in.position.xy - dx, in.uv - dx);
33021
+ let ty = reliefPoint(in.position.xy + dy, in.uv + dy) - reliefPoint(in.position.xy - dy, in.uv - dy);
33022
+ var nrm = normalize(cross(tx, ty));
33023
+ if (dot(nrm, reliefFront()) < 0.0) {
33024
+ nrm = -nrm;
33025
+ }
33026
+ worldPos4 = vec4<f32>(p, 1.0);
33027
+ out.worldNormal = nrm;
33028
+ }
33029
+ out.worldPos = worldPos4.xyz;
32906
33030
 
32907
33031
  out.clipPos = cam.viewProjMatrix * worldPos4;
32908
33032
 
@@ -33138,6 +33262,10 @@ function createLightsLayout(device, label = "Lights3DLayout") {
33138
33262
  ]
33139
33263
  });
33140
33264
  }
33265
+ /** Grid cells per side of a relief surface. */
33266
+ const RELIEF_GRID = 512;
33267
+ /** Floats in the quad's model uniform: transform, colors, params, material, surface, then relief. */
33268
+ const MODEL_FLOATS = 52 + SURFACE_PARAMS_FLOATS + 12;
33141
33269
  /** [shininess, specularIntensity, ambientIntensity, materialMode] as the 3D shaders' lighting reads them. */
33142
33270
  function packMaterialParams(data) {
33143
33271
  return [
@@ -33161,10 +33289,12 @@ var Quad3DPipeline = class {
33161
33289
  modelPool;
33162
33290
  vertexBuffer;
33163
33291
  indexBuffer;
33164
- modelData = new Float32Array(52 + SURFACE_PARAMS_FLOATS);
33292
+ /** The relief grid, built on first use. */
33293
+ reliefGrid;
33294
+ modelData = new Float32Array(MODEL_FLOATS);
33165
33295
  constructor(device, format, depthFormat = "depth24plus", sampleCount = 1) {
33166
33296
  this.device = device;
33167
- this.modelPool = new BufferPool((52 + SURFACE_PARAMS_FLOATS) * 4, GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST);
33297
+ this.modelPool = new BufferPool(MODEL_FLOATS * 4, GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST);
33168
33298
  const module$1 = device.createShaderModule({
33169
33299
  label: "quad3d.wgsl",
33170
33300
  code: quad3dWgsl
@@ -33179,11 +33309,19 @@ var Quad3DPipeline = class {
33179
33309
  });
33180
33310
  this.modelLayout = device.createBindGroupLayout({
33181
33311
  label: "Quad3DModelLayout",
33182
- entries: [{
33183
- binding: 0,
33184
- visibility: GPUShaderStage.VERTEX | GPUShaderStage.FRAGMENT,
33185
- buffer: { type: "uniform" }
33186
- }, matteLayoutEntry(1)]
33312
+ entries: [
33313
+ {
33314
+ binding: 0,
33315
+ visibility: GPUShaderStage.VERTEX | GPUShaderStage.FRAGMENT,
33316
+ buffer: { type: "uniform" }
33317
+ },
33318
+ matteLayoutEntry(1),
33319
+ {
33320
+ binding: 2,
33321
+ visibility: GPUShaderStage.VERTEX,
33322
+ texture: { sampleType: "float" }
33323
+ }
33324
+ ]
33187
33325
  });
33188
33326
  this.textureLayout = device.createBindGroupLayout({
33189
33327
  label: "Quad3DTextureLayout",
@@ -33350,18 +33488,110 @@ var Quad3DPipeline = class {
33350
33488
  this.modelData[47] = data.textureExtent?.[1] ?? 0;
33351
33489
  this.modelData.set(packMaterialParams(data), 48);
33352
33490
  packSurfaceParams(data, this.modelData, 52);
33491
+ const relief = data.relief;
33492
+ const r = 52 + SURFACE_PARAMS_FLOATS;
33493
+ this.modelData.set(relief ? [
33494
+ relief.amount,
33495
+ 1,
33496
+ 0,
33497
+ RELIEF_GRID
33498
+ ] : [
33499
+ 0,
33500
+ 0,
33501
+ 0,
33502
+ 0
33503
+ ], r);
33504
+ this.modelData.set(relief?.uvRect ?? [
33505
+ 0,
33506
+ 0,
33507
+ 1,
33508
+ 1
33509
+ ], r + 4);
33510
+ this.modelData.set([...relief?.eye ?? [
33511
+ 0,
33512
+ 0,
33513
+ 0
33514
+ ], 0], r + 8);
33353
33515
  const modelBuffer = this.modelPool.getBuffer(this.device, this.modelData);
33354
33516
  return this.device.createBindGroup({
33355
33517
  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
- }]
33518
+ entries: [
33519
+ {
33520
+ binding: 0,
33521
+ resource: { buffer: modelBuffer }
33522
+ },
33523
+ {
33524
+ binding: 1,
33525
+ resource: data.matte?.createView() ?? fullCoverageView(this.device)
33526
+ },
33527
+ {
33528
+ binding: 2,
33529
+ resource: data.relief?.texture.createView() ?? fullCoverageView(this.device)
33530
+ }
33531
+ ]
33363
33532
  });
33364
33533
  }
33534
+ /** Binds the geometry for `data` and draws it: the quad, or the relief grid. */
33535
+ drawGeometry(pass, data) {
33536
+ if (!data.relief) {
33537
+ pass.setVertexBuffer(0, this.vertexBuffer);
33538
+ pass.setIndexBuffer(this.indexBuffer, "uint16");
33539
+ pass.drawIndexed(6);
33540
+ return;
33541
+ }
33542
+ this.reliefGrid ??= this.createReliefGrid();
33543
+ pass.setVertexBuffer(0, this.reliefGrid.vertices);
33544
+ pass.setIndexBuffer(this.reliefGrid.indices, "uint32");
33545
+ pass.drawIndexed(this.reliefGrid.count);
33546
+ }
33547
+ /** A RELIEF_GRID² grid over the unit quad, laid out like the quad's vertices. */
33548
+ createReliefGrid() {
33549
+ const side = RELIEF_GRID + 1;
33550
+ const vertices = new Float32Array(side * side * 8);
33551
+ for (let j = 0; j < side; j++) for (let i = 0; i < side; i++) {
33552
+ const u = i / RELIEF_GRID;
33553
+ const v = j / RELIEF_GRID;
33554
+ vertices.set([
33555
+ u - .5,
33556
+ v - .5,
33557
+ 0,
33558
+ u,
33559
+ v,
33560
+ 0,
33561
+ 0,
33562
+ -1
33563
+ ], (j * side + i) * 8);
33564
+ }
33565
+ const indices = new Uint32Array(RELIEF_GRID * RELIEF_GRID * 6);
33566
+ let k = 0;
33567
+ for (let j = 0; j < RELIEF_GRID; j++) for (let i = 0; i < RELIEF_GRID; i++) {
33568
+ const a = j * side + i;
33569
+ indices.set([
33570
+ a,
33571
+ a + 1,
33572
+ a + side + 1,
33573
+ a,
33574
+ a + side + 1,
33575
+ a + side
33576
+ ], k);
33577
+ k += 6;
33578
+ }
33579
+ const upload = (data, usage) => {
33580
+ const buffer = this.device.createBuffer({
33581
+ size: data.byteLength,
33582
+ usage: usage | GPUBufferUsage.COPY_DST,
33583
+ mappedAtCreation: true
33584
+ });
33585
+ new data.constructor(buffer.getMappedRange()).set(data);
33586
+ buffer.unmap();
33587
+ return buffer;
33588
+ };
33589
+ return {
33590
+ vertices: upload(vertices, GPUBufferUsage.VERTEX),
33591
+ indices: upload(indices, GPUBufferUsage.INDEX),
33592
+ count: indices.length
33593
+ };
33594
+ }
33365
33595
  textureBindGroup(texture, sampler) {
33366
33596
  return this.device.createBindGroup({
33367
33597
  layout: this.textureLayout,
@@ -33382,9 +33612,7 @@ var Quad3DPipeline = class {
33382
33612
  pass.setBindGroup(1, modelBindGroup);
33383
33613
  pass.setBindGroup(2, textureBindGroup);
33384
33614
  pass.setBindGroup(3, lightsBindGroup);
33385
- pass.setVertexBuffer(0, this.vertexBuffer);
33386
- pass.setIndexBuffer(this.indexBuffer, "uint16");
33387
- pass.drawIndexed(6);
33615
+ this.drawGeometry(pass, data);
33388
33616
  }
33389
33617
  /** Draws the quad into a shadow map (`lightCameraBindGroup` holds the light's view-projection). */
33390
33618
  drawShadow(pass, lightCameraBindGroup, texture, sampler, data) {
@@ -33392,14 +33620,14 @@ var Quad3DPipeline = class {
33392
33620
  pass.setBindGroup(0, lightCameraBindGroup);
33393
33621
  pass.setBindGroup(1, this.packModel(data));
33394
33622
  pass.setBindGroup(2, this.textureBindGroup(texture, sampler));
33395
- pass.setVertexBuffer(0, this.vertexBuffer);
33396
- pass.setIndexBuffer(this.indexBuffer, "uint16");
33397
- pass.drawIndexed(6);
33623
+ this.drawGeometry(pass, data);
33398
33624
  }
33399
33625
  destroy() {
33400
33626
  this.modelPool.destroy();
33401
33627
  this.vertexBuffer.destroy();
33402
33628
  this.indexBuffer.destroy();
33629
+ this.reliefGrid?.vertices.destroy();
33630
+ this.reliefGrid?.indices.destroy();
33403
33631
  }
33404
33632
  };
33405
33633
  var Mesh3DPipeline = class {
@@ -38047,6 +38275,7 @@ fn shadeText(in : VSOut, fw : vec2<f32>) -> TextFragment {
38047
38275
  in.color,
38048
38276
  model.params.x,
38049
38277
  in.fx.x,
38278
+ 1.0,
38050
38279
  in.fx.y,
38051
38280
  in.fx.z,
38052
38281
  );
@@ -39634,7 +39863,8 @@ var Renderer3D = class {
39634
39863
  height: c.opts.height,
39635
39864
  textureExtent: c.opts.textureExtent,
39636
39865
  opacity: c.opts.opacity,
39637
- colorTint: c.opts.colorTint
39866
+ colorTint: c.opts.colorTint,
39867
+ relief: c.opts.relief
39638
39868
  });
39639
39869
  }
39640
39870
  pass.end();
@@ -39898,7 +40128,8 @@ var Renderer3D = class {
39898
40128
  metallic,
39899
40129
  emissive: opts.emissive,
39900
40130
  emissiveIntensity: opts.emissiveIntensity,
39901
- matte: opts.matte
40131
+ matte: opts.matte,
40132
+ relief: opts.relief
39902
40133
  }, useMrt, this.passWritesHdr);
39903
40134
  }
39904
40135
  /** T(pos) * Rz * Ry * Rx * S, or the draw's precomputed model matrix. */
@@ -41377,5 +41608,5 @@ var NodeSurfaceProvider = class {
41377
41608
  if (typeof globalThis !== "undefined") globalThis.__GATEWAI_DELAYS__ = globalThis.__GATEWAI_DELAYS__ || /* @__PURE__ */ new Set();
41378
41609
 
41379
41610
  //#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
41611
+ export { probeVideoSize as $, TextAnimatorBuilder as $t, emojiGraphemes as A, evaluateSpringProgress as An, AudioSignalComputePipeline as At, jointMatrices as B, samplePathChainGeometry as Bn, KineticMarqueeConfigSchema as Bt, drawGifNode as C, ellipseToCubicBeziers as Cn, resolveEnvironment as Ct, drawSignalNode as D, evaluateMarqueeOffset as Dn, AnchorGroupingSchema as Dt, drawParagraphNode as E, evaluateExpressionSelector as En, AdvancedTextAnimatorSchema as Et, getPrimitiveGeometry as F, getScramblePool as Fn, EnhancedTextNodeSchema as Ft, measureMaxCaptionHeight as G, SelectorModeSchema as Gt, loadModel3D as H, waveToCubicBeziers as Hn, LongShadowConfigSchema as Ht, getRegisteredFontSource as I, getShuffledOrder as In, ExpressionSelectorSchema as It, parseFBX as J, SignalRegistry as Jt, mediaDecoderCache as K, SelectorShapeSchema as Kt, getRenderer2D as L, parseSvgPathToCubicBeziers as Ln, ExtendedGlyphPropertiesSchema as Lt, fitSpansToText as M, evaluateVolumetricFormation as Mn, ChromaticGlitchConfigSchema as Mt, generateExtrudedTextGeometry as N, generateArcLengthLUT as Nn, CubicBezierSegmentSchema as Nt, drawSvgNode as O, evaluateSelectorCombination as On, AnchorPresetSchema as Ot, getHeadlessFontPath as P, generatePathSegments as Pn, DynamicStrokePropertiesSchema as Pt, poseNodes as Q, TextAnchorConfigSchema as Qt, initHeadlessWebGPU as R, sampleAudioSpectrumScale as Rn, GlyphAnchorGroupingSchema as Rt, drawCaptionNode as S, distanceToCurveParameter as Sn, parseColorToRgb as St, drawLottieNode as T, evaluateCubicBezierDerivative as Tn, AdvancedTextAnimatorBuilder as Tt, loadOBJ as U, ParticleDissolveConfigSchema as Ut, loadFBX as V, signalRegistry as Vn, LineSpacingDynamicsSchema as Vt, lutStore as W, SelectorBasedOnSchema as Wt, parseOBJ as X, Spatial3DPropertiesSchema as Xt, parseMTL as Y, SkewPropertiesSchema as Yt, parseSvgPathToSegments as Z, SpringPhysicsSchema as Zt, buildShapeSvgPath as _, buildWGSLSignalFn as _n, MAX_LIGHTS as _t, GlassPipeline as a, TextRangeSelectorSchema as an, shaderStore as at, colorMatrixWgsl as b, computeRangeSelectorWeight as bn, Vector3Math as bt, Renderer2D as c, TextSignalSelectorSchema as cn, textureCache as ct, ScreenSpaceRelightPipeline as d, TypingCadenceSchema as dn, GetFontAssetUrl as dt, TextCursorConfigSchema as en, registerHeadlessFont as et, ShadowPipeline as f, VariableFontAxesSchema as fn, resolveMediaSourceUrl as ft, WebGPUAudioProcessor as g, buildPathLUT as gn, Light3D as gt, SlugPipeline as h, VolumetricFormationModeSchema as hn, LIGHT_UNIFORM_SIZE_BYTES as ht, EffectPipeline as i, TextPathSourceSchema as in, setRegisteredFontSource as it, ensureDevice as j, evaluateTypewriterState as jn, AudioSpectrumTypographySchema as jt, drawVideoNode as k, evaluateSkewMatrix as kn, AnimatableGlyphPropsSchema as kt, Renderer3D as l, TextWigglySelectorSchema as ln, trackAudioPitch as lt, SlugGeometry as m, VolumetricFormationConfigSchema as mn, ENVIRONMENT_PRESETS as mt, AudioLatentTrackCache as n, TextPathBuilder as nn, resolveTextSpans as nt, MotionBlurPipeline as o, TextScrambleConfigSchema as on, spansText as ot, SlugFontCache as p, Vec2Schema as pn, Camera3D as pt, parseColor as q, SelectorUnitsSchema as qt, AudioMeshDeformPipeline as r, TextPathOptionsSchema as rn, sampleMorphWeights as rt, NodeSurfaceProvider as s, TextSelectorSchema as sn, srtLoader as st, AudioLatentEngine as t, TextCursorStyleSchema as tn, resolveInputUrl as tt, SSAOPipeline as u, TypewriterAnimatorSchema as un, transformScale as ut, clearAllVideoCache as v, computeAnchorPivotOffset as vn, Matrix4Math as vt, drawImageNode as w, evaluateCubicBezier as wn, AETextAnimatorSchema as wt, describeGpu as x, deterministicWigglyNoise as xn, linearRgb as xt, clearHeadlessFonts as y, computeLineLeadingDisplacement as yn, Path3D as yt, inputStore as z, sampleCurveGeometry as zn, GlyphAnchorPointSchema as zt };
41612
+ //# sourceMappingURL=dist-D3BeAZ7X.mjs.map