framefields 2.9.3 → 2.10.0-canary.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 (518) hide show
  1. package/NOTICE.md +4 -0
  2. package/README.md +9 -2
  3. package/dist/audio/index.d.mts +5 -5
  4. package/dist/audio/index.mjs +13 -13
  5. package/dist/{audio-D6tBMbHh.d.mts → audio-1X5qNNmk.d.mts} +4 -4
  6. package/dist/{audio-D6tBMbHh.d.mts.map → audio-1X5qNNmk.d.mts.map} +1 -1
  7. package/dist/{audio-BlDbnteH.mjs → audio-KHBadECb.mjs} +1 -1
  8. package/dist/{audio-BlDbnteH.mjs.map → audio-KHBadECb.mjs.map} +1 -1
  9. package/dist/{audio-B6RmYOPe.mjs → audio-YpBRdI7r.mjs} +4 -4
  10. package/dist/{audio-B6RmYOPe.mjs.map → audio-YpBRdI7r.mjs.map} +1 -1
  11. package/dist/{check-result-Bj7g62ka.mjs → check-result-Culfu7Nx.mjs} +1 -1
  12. package/dist/{check-result-Bj7g62ka.mjs.map → check-result-Culfu7Nx.mjs.map} +1 -1
  13. package/dist/cli/check-worker.mjs +50 -50
  14. package/dist/cli.mjs +179 -3
  15. package/dist/cli.mjs.map +1 -1
  16. package/dist/cloud/index.d.mts +118 -0
  17. package/dist/cloud/index.d.mts.map +1 -0
  18. package/dist/cloud/index.mjs +3 -0
  19. package/dist/cloud-xcfV4J03.mjs +233 -0
  20. package/dist/cloud-xcfV4J03.mjs.map +1 -0
  21. package/dist/components/index.d.mts +14 -14
  22. package/dist/components/index.mjs +47 -47
  23. package/dist/{dist-Dq5TkNDI.mjs → dist-2_lT3Dwc.mjs} +2 -2
  24. package/dist/{dist-Dq5TkNDI.mjs.map → dist-2_lT3Dwc.mjs.map} +1 -1
  25. package/dist/{dist-Cn8bDsQF.mjs → dist-BIE8fvlv.mjs} +1 -1
  26. package/dist/{dist-Cn8bDsQF.mjs.map → dist-BIE8fvlv.mjs.map} +1 -1
  27. package/dist/{dist-ByxHoMQI.mjs → dist-Bf2_efYP.mjs} +1 -1
  28. package/dist/{dist-ByxHoMQI.mjs.map → dist-Bf2_efYP.mjs.map} +1 -1
  29. package/dist/{dist-BlulwErl.mjs → dist-BwtxciN4.mjs} +1 -1
  30. package/dist/{dist-D12-a3-x.mjs → dist-C4Vxgm0Q.mjs} +275 -78
  31. package/dist/dist-C4Vxgm0Q.mjs.map +1 -0
  32. package/dist/{dist-DEUU6sNe.mjs → dist-Cu1fZ9Uy.mjs} +4 -4
  33. package/dist/{dist-DEUU6sNe.mjs.map → dist-Cu1fZ9Uy.mjs.map} +1 -1
  34. package/dist/{dist-DL1GwJvs.mjs → dist-CySGkG54.mjs} +2 -2
  35. package/dist/dist-CySGkG54.mjs.map +1 -0
  36. package/dist/effects/index.d.mts +6 -6
  37. package/dist/effects/index.mjs +36 -36
  38. package/dist/{effects-CViUoQSV.mjs → effects-DiWYouOK.mjs} +3 -3
  39. package/dist/{effects-CViUoQSV.mjs.map → effects-DiWYouOK.mjs.map} +1 -1
  40. package/dist/fonts/index.d.mts +1 -1
  41. package/dist/fonts/index.mjs +3 -3
  42. package/dist/{fonts-B0U2KO5I.mjs → fonts-BnV-GB1o.mjs} +2 -2
  43. package/dist/{fonts-B0U2KO5I.mjs.map → fonts-BnV-GB1o.mjs.map} +1 -1
  44. package/dist/{gpu-zFNrvhV9.mjs → gpu-Bw35AMwY.mjs} +11 -3
  45. package/dist/gpu-Bw35AMwY.mjs.map +1 -0
  46. package/dist/{index-Bzo1uj8h.d.mts → index-B7WqFBZA.d.mts} +33 -2
  47. package/dist/index-B7WqFBZA.d.mts.map +1 -0
  48. package/dist/{index-BuYtrhzL.d.mts → index-BW0Q1ygn.d.mts} +1 -1
  49. package/dist/{index-BuYtrhzL.d.mts.map → index-BW0Q1ygn.d.mts.map} +1 -1
  50. package/dist/{index-C6GcuYVA.d.mts → index-Bbv0VtxJ.d.mts} +6 -6
  51. package/dist/{index-C6GcuYVA.d.mts.map → index-Bbv0VtxJ.d.mts.map} +1 -1
  52. package/dist/{index-w28KUM9A.d.mts → index-CDQrdZ0J.d.mts} +3 -3
  53. package/dist/{index-w28KUM9A.d.mts.map → index-CDQrdZ0J.d.mts.map} +1 -1
  54. package/dist/{index-9_4X2ro1.d.mts → index-COYNQ_mf.d.mts} +1 -1
  55. package/dist/{index-9_4X2ro1.d.mts.map → index-COYNQ_mf.d.mts.map} +1 -1
  56. package/dist/{index-CgGM31I9.d.mts → index-CdCrae-I.d.mts} +2 -2
  57. package/dist/{index-CgGM31I9.d.mts.map → index-CdCrae-I.d.mts.map} +1 -1
  58. package/dist/{index-DBhswLMO.d.mts → index-DQa7mhzq.d.mts} +2 -2
  59. package/dist/{index-DBhswLMO.d.mts.map → index-DQa7mhzq.d.mts.map} +1 -1
  60. package/dist/{index-B9Lm1x8i.d.mts → index-Dyt4yS-x.d.mts} +376 -288
  61. package/dist/index-Dyt4yS-x.d.mts.map +1 -0
  62. package/dist/{index-svAgwTY_.d.mts → index-WwuuX8ZJ.d.mts} +25 -23
  63. package/dist/index-WwuuX8ZJ.d.mts.map +1 -0
  64. package/dist/{index-V0ZQ4JN6.d.mts → index-gOVtTm-P.d.mts} +125 -3
  65. package/dist/index-gOVtTm-P.d.mts.map +1 -0
  66. package/dist/{index-f4IF1vRH.d.mts → index-h7m8QgcL.d.mts} +3 -3
  67. package/dist/{index-f4IF1vRH.d.mts.map → index-h7m8QgcL.d.mts.map} +1 -1
  68. package/dist/index.d.mts +16 -16
  69. package/dist/index.mjs +59 -59
  70. package/dist/preview/index.d.mts +4 -4
  71. package/dist/preview/index.mjs +12 -12
  72. package/dist/{preview-ZKJ_zTmd.mjs → preview-BW7ilNWk.mjs} +3 -3
  73. package/dist/{preview-ZKJ_zTmd.mjs.map → preview-BW7ilNWk.mjs.map} +1 -1
  74. package/dist/preview-engine/audio.mjs +1 -1
  75. package/dist/preview-engine/chunk-44V4V5LD.mjs +1 -0
  76. package/dist/preview-engine/{chunk-5AWAOMBR.mjs → chunk-4BWBX2HM.mjs} +1 -1
  77. package/dist/preview-engine/{chunk-BEYA25UZ.mjs → chunk-4DSOZ5QG.mjs} +1 -1
  78. package/dist/preview-engine/{chunk-VVE2QHVG.mjs → chunk-4FACCLLE.mjs} +1 -1
  79. package/dist/preview-engine/{chunk-DMSZXG56.mjs → chunk-4N25ZU43.mjs} +1 -1
  80. package/dist/preview-engine/{chunk-FTCEG3SF.mjs → chunk-4RLKHFV6.mjs} +1 -1
  81. package/dist/preview-engine/chunk-4TPXZNVR.mjs +483 -0
  82. package/dist/preview-engine/chunk-4YT5YJIF.mjs +1 -0
  83. package/dist/preview-engine/{chunk-CC4NNNIY.mjs → chunk-57WXGYEV.mjs} +1 -1
  84. package/dist/preview-engine/{chunk-C4M3B2Q2.mjs → chunk-5SLBE2FX.mjs} +1 -1
  85. package/dist/preview-engine/{chunk-PM2W4VLT.mjs → chunk-5Y7SO37Q.mjs} +1 -1
  86. package/dist/preview-engine/{chunk-BJXNKMSY.mjs → chunk-64L4GUOF.mjs} +20 -6
  87. package/dist/preview-engine/{chunk-Y5K5LVOR.mjs → chunk-6BE3IL7L.mjs} +1 -1
  88. package/dist/preview-engine/{chunk-GA4HNR44.mjs → chunk-6LBFSGCI.mjs} +1 -1
  89. package/dist/preview-engine/{chunk-IB6GZJOL.mjs → chunk-6O55UROD.mjs} +1 -1
  90. package/dist/preview-engine/{chunk-SPJPM43P.mjs → chunk-6SLCECHG.mjs} +1 -1
  91. package/dist/preview-engine/chunk-77MT33VR.mjs +1 -0
  92. package/dist/preview-engine/{chunk-QCSVT73T.mjs → chunk-7A3BNAWY.mjs} +84 -25
  93. package/dist/preview-engine/{chunk-CN2VLYLB.mjs → chunk-7HW7GA76.mjs} +1 -1
  94. package/dist/preview-engine/chunk-A6OAPDIA.mjs +1 -0
  95. package/dist/preview-engine/chunk-ADLIF544.mjs +39 -0
  96. package/dist/preview-engine/{chunk-LVYVXVZO.mjs → chunk-C2GX5L5S.mjs} +1 -1
  97. package/dist/preview-engine/{chunk-4WYM72ZN.mjs → chunk-CHXR5XZK.mjs} +1 -1
  98. package/dist/preview-engine/chunk-CSLSWUUT.mjs +1 -0
  99. package/dist/preview-engine/{chunk-JSYG6OWZ.mjs → chunk-D7OMXGIZ.mjs} +1 -1
  100. package/dist/preview-engine/{chunk-RJIAES3X.mjs → chunk-EKEKYGXE.mjs} +1 -1
  101. package/dist/preview-engine/{chunk-TNJEZKXM.mjs → chunk-FH72KTSM.mjs} +1 -1
  102. package/dist/preview-engine/{chunk-P5FKRQFU.mjs → chunk-FW2UDDUT.mjs} +1 -1
  103. package/dist/preview-engine/{chunk-S2ABWY5G.mjs → chunk-GTMZOMAN.mjs} +1 -1
  104. package/dist/preview-engine/{chunk-6R3UJBL5.mjs → chunk-HGWT3RVQ.mjs} +10 -10
  105. package/dist/preview-engine/{chunk-34RJ7GAS.mjs → chunk-HKYENGC5.mjs} +1 -1
  106. package/dist/preview-engine/{chunk-7U34VKNO.mjs → chunk-HO7FXISJ.mjs} +1 -1
  107. package/dist/preview-engine/{chunk-73CNXGAK.mjs → chunk-HPQDCC4S.mjs} +1 -1
  108. package/dist/preview-engine/{chunk-ZY47XIRK.mjs → chunk-IVAA5X5H.mjs} +1 -1
  109. package/dist/preview-engine/chunk-JAAFSVAG.mjs +1 -0
  110. package/dist/preview-engine/{chunk-UXYM2G6J.mjs → chunk-JFBSNFN6.mjs} +1 -1
  111. package/dist/preview-engine/{chunk-GIICZZQI.mjs → chunk-JSKEVYKD.mjs} +1 -1
  112. package/dist/preview-engine/{chunk-EJJITH6U.mjs → chunk-K3TJJXVC.mjs} +1 -1
  113. package/dist/preview-engine/{chunk-GZWA5QJS.mjs → chunk-L2NTIWW5.mjs} +1 -1
  114. package/dist/preview-engine/{chunk-VN36PRVD.mjs → chunk-LBP7E7SJ.mjs} +1 -1
  115. package/dist/preview-engine/{chunk-34DL53D5.mjs → chunk-LTR5FXGU.mjs} +1 -1
  116. package/dist/preview-engine/{chunk-GRJJVSOV.mjs → chunk-ML7WO27M.mjs} +1 -1
  117. package/dist/preview-engine/{chunk-GN3NDRLI.mjs → chunk-NCQHOGZK.mjs} +1 -1
  118. package/dist/preview-engine/{chunk-OH5W5EL6.mjs → chunk-NTTEGJD6.mjs} +1 -1
  119. package/dist/preview-engine/{chunk-2B722GXM.mjs → chunk-OD4CSXZL.mjs} +15 -15
  120. package/dist/preview-engine/{chunk-AHQCDTD6.mjs → chunk-OOUDE4XL.mjs} +1 -1
  121. package/dist/preview-engine/chunk-PH3UUX6A.mjs +138 -0
  122. package/dist/preview-engine/chunk-PIHG6HJO.mjs +1 -0
  123. package/dist/preview-engine/{chunk-ZJ5SWTCW.mjs → chunk-RAW2I27S.mjs} +1 -1
  124. package/dist/preview-engine/{chunk-BJV2LBII.mjs → chunk-RMHL4XZ3.mjs} +1 -1
  125. package/dist/preview-engine/chunk-T6L3DO3H.mjs +1 -0
  126. package/dist/preview-engine/{chunk-2PYTDN2C.mjs → chunk-V5HU6NIW.mjs} +1 -1
  127. package/dist/preview-engine/{chunk-DVZITDQS.mjs → chunk-VRJBOFFY.mjs} +1 -1
  128. package/dist/preview-engine/{chunk-SF37HXAH.mjs → chunk-WVIDORLK.mjs} +1 -1
  129. package/dist/preview-engine/{chunk-35HMRW4I.mjs → chunk-XCQ7KN4S.mjs} +1 -1
  130. package/dist/preview-engine/{chunk-KHJZMTOS.mjs → chunk-Y2SWIWIU.mjs} +1 -1
  131. package/dist/preview-engine/{chunk-H7BSN7V7.mjs → chunk-YS3ROS25.mjs} +1 -1
  132. package/dist/preview-engine/{chunk-2DWY7UBV.mjs → chunk-YXCTOCQ2.mjs} +1 -1
  133. package/dist/preview-engine/{chunk-BVDWS3D2.mjs → chunk-ZA5LWHRM.mjs} +1 -1
  134. package/dist/preview-engine/chunk-ZGEKF34E.mjs +1974 -0
  135. package/dist/preview-engine/components.mjs +1 -1
  136. package/dist/preview-engine/effects.mjs +1 -1
  137. package/dist/preview-engine/fonts.mjs +1 -1
  138. package/dist/preview-engine/framefields.mjs +1 -1
  139. package/dist/preview-engine/player.mjs +1 -1
  140. package/dist/preview-engine/renderers-33PIDDZC.mjs +1 -0
  141. package/dist/preview-engine/{renderers-ZACSHGNZ.mjs → renderers-36P2TKPC.mjs} +1 -1
  142. package/dist/preview-engine/{renderers-TSBV4KPE.mjs → renderers-37Y5LR2S.mjs} +1 -1
  143. package/dist/preview-engine/renderers-3AZ3HY53.mjs +1 -0
  144. package/dist/preview-engine/renderers-3FGKW52B.mjs +1 -0
  145. package/dist/preview-engine/renderers-4A2FBS3Y.mjs +1 -0
  146. package/dist/preview-engine/{renderers-5TO2SXFR.mjs → renderers-4MW4NW6O.mjs} +1 -1
  147. package/dist/preview-engine/{renderers-ENMY4DKF.mjs → renderers-4SNAK77B.mjs} +1 -1
  148. package/dist/preview-engine/{renderers-Y22VSOXF.mjs → renderers-4WFRXGMR.mjs} +1 -1
  149. package/dist/preview-engine/{renderers-5KANN7XF.mjs → renderers-5K3BSBI6.mjs} +1 -1
  150. package/dist/preview-engine/renderers-65DU2F5W.mjs +1 -0
  151. package/dist/preview-engine/renderers-6CTPYQR6.mjs +1 -0
  152. package/dist/preview-engine/{renderers-NUAI4TO5.mjs → renderers-6RRWA33X.mjs} +1 -1
  153. package/dist/preview-engine/{renderers-4F7WLQD5.mjs → renderers-6RYIPQ7W.mjs} +1 -1
  154. package/dist/preview-engine/{renderers-U4M7ZCV4.mjs → renderers-AUYCQNSS.mjs} +1 -1
  155. package/dist/preview-engine/renderers-AWODRI3B.mjs +1 -0
  156. package/dist/preview-engine/renderers-BO6HHGMZ.mjs +1 -0
  157. package/dist/preview-engine/renderers-BSXYDEV7.mjs +1 -0
  158. package/dist/preview-engine/{renderers-FSI5KNGZ.mjs → renderers-CMBI4JOC.mjs} +1 -1
  159. package/dist/preview-engine/{renderers-6Z7DWAPH.mjs → renderers-CQIPHCIW.mjs} +1 -1
  160. package/dist/preview-engine/renderers-DU7KPFVV.mjs +1 -0
  161. package/dist/preview-engine/renderers-ECW2CGNU.mjs +1 -0
  162. package/dist/preview-engine/renderers-EEX22FUO.mjs +1 -0
  163. package/dist/preview-engine/{renderers-MOEC2XZZ.mjs → renderers-EILFSWSJ.mjs} +1 -1
  164. package/dist/preview-engine/{renderers-NCGH2WWJ.mjs → renderers-G2FL3IFD.mjs} +1 -1
  165. package/dist/preview-engine/{renderers-5XRKZHVT.mjs → renderers-GCQKGJ7W.mjs} +1 -1
  166. package/dist/preview-engine/{renderers-77PDUMYI.mjs → renderers-HXNSDJBY.mjs} +1 -1
  167. package/dist/preview-engine/renderers-HZBXLDKG.mjs +1 -0
  168. package/dist/preview-engine/renderers-IOXNQPQK.mjs +1 -0
  169. package/dist/preview-engine/renderers-IR44E4ZZ.mjs +1 -0
  170. package/dist/preview-engine/{renderers-TGJSOKDY.mjs → renderers-JALV3B3A.mjs} +1 -1
  171. package/dist/preview-engine/{renderers-IHGAWLUF.mjs → renderers-JMSAW7VY.mjs} +1 -1
  172. package/dist/preview-engine/{renderers-CUMVIVHI.mjs → renderers-JZYHX4XI.mjs} +1 -1
  173. package/dist/preview-engine/renderers-JZZ3ODOZ.mjs +1 -0
  174. package/dist/preview-engine/renderers-K37YL3Z7.mjs +1 -0
  175. package/dist/preview-engine/{renderers-RN2MHIFK.mjs → renderers-KICDB5Y6.mjs} +1 -1
  176. package/dist/preview-engine/renderers-KUJQV3K6.mjs +1 -0
  177. package/dist/preview-engine/renderers-KXVKLSSX.mjs +1 -0
  178. package/dist/preview-engine/{renderers-WEYAHOBK.mjs → renderers-LF6U4MR5.mjs} +1 -1
  179. package/dist/preview-engine/renderers-N4RVFX3G.mjs +1 -0
  180. package/dist/preview-engine/{renderers-PPZK6VEW.mjs → renderers-NQC4DPX4.mjs} +1 -1
  181. package/dist/preview-engine/renderers-NZWWEAYA.mjs +1 -0
  182. package/dist/preview-engine/{renderers-5UZ3YFBD.mjs → renderers-OPRXVIGT.mjs} +1 -1
  183. package/dist/preview-engine/{renderers-7C5RA3R5.mjs → renderers-OZKPOUMW.mjs} +1 -1
  184. package/dist/preview-engine/renderers-P4JJEDZB.mjs +1 -0
  185. package/dist/preview-engine/{renderers-V3AQO7AR.mjs → renderers-PGZDFDSC.mjs} +1 -1
  186. package/dist/preview-engine/renderers-Q4572F5C.mjs +1 -0
  187. package/dist/preview-engine/{renderers-PIIEUKFE.mjs → renderers-Q5YCUPYE.mjs} +1 -1
  188. package/dist/preview-engine/renderers-QAX2QWWQ.mjs +1 -0
  189. package/dist/preview-engine/{renderers-SEIAUKJF.mjs → renderers-RQ3JZE3L.mjs} +1 -1
  190. package/dist/preview-engine/renderers-SRFIEVWL.mjs +1 -0
  191. package/dist/preview-engine/renderers-SYC6WFTM.mjs +1 -0
  192. package/dist/preview-engine/{renderers-QA2HKUJJ.mjs → renderers-TKHQRERE.mjs} +1 -1
  193. package/dist/preview-engine/{renderers-A24KZK2Q.mjs → renderers-U4S577ON.mjs} +1 -1
  194. package/dist/preview-engine/{renderers-KC6ZSKCW.mjs → renderers-UBIFSF37.mjs} +1 -1
  195. package/dist/preview-engine/renderers-UH4WN3QN.mjs +1 -0
  196. package/dist/preview-engine/renderers-V4FFCAS7.mjs +1 -0
  197. package/dist/preview-engine/renderers-VGDEOZUU.mjs +1 -0
  198. package/dist/preview-engine/renderers-VJJKBX5K.mjs +1 -0
  199. package/dist/preview-engine/renderers-VJOKVDYW.mjs +1 -0
  200. package/dist/preview-engine/renderers-VUUWZUOH.mjs +1 -0
  201. package/dist/preview-engine/renderers-WG756VF3.mjs +228 -0
  202. package/dist/preview-engine/renderers-WOP5GOZP.mjs +1 -0
  203. package/dist/preview-engine/{renderers-T74CQCEN.mjs → renderers-XZ3XDQIN.mjs} +1 -1
  204. package/dist/preview-engine/renderers-Y4MGN2FR.mjs +1 -0
  205. package/dist/preview-engine/renderers-YAMYH7IK.mjs +1 -0
  206. package/dist/preview-engine/{renderers-MD3PRFZL.mjs → renderers-YJ4PJEPG.mjs} +1 -1
  207. package/dist/preview-engine/renderers-ZNLSAWW3.mjs +1 -0
  208. package/dist/preview-engine/{renderers-L6YDX6GS.mjs → renderers-ZQVKE5AO.mjs} +1 -1
  209. package/dist/preview-engine/signals.mjs +1 -1
  210. package/dist/preview-engine/{src-4IUYUKIZ.mjs → src-GPF7RIBU.mjs} +1 -1
  211. package/dist/{program-xjIwjKb6.mjs → program-BUjUTdxq.mjs} +44 -17
  212. package/dist/program-BUjUTdxq.mjs.map +1 -0
  213. package/dist/registry/focus-zoom.json +9 -2
  214. package/dist/renderer/index.d.mts +4 -4
  215. package/dist/renderer/index.mjs +4 -4
  216. package/dist/{renderer-B3IRvukr.mjs → renderer--f8JHHyT.mjs} +5 -5
  217. package/dist/{renderer-B3IRvukr.mjs.map → renderer--f8JHHyT.mjs.map} +1 -1
  218. package/dist/{renderer-BWMzjSgf.mjs → renderer-1KgHl_ls.mjs} +5 -5
  219. package/dist/{renderer-BWMzjSgf.mjs.map → renderer-1KgHl_ls.mjs.map} +1 -1
  220. package/dist/renderer-6sNr6ZRJ.mjs +6 -0
  221. package/dist/{renderer-CpedZNEG.mjs → renderer-7c0ecb-L.mjs} +74 -21
  222. package/dist/renderer-7c0ecb-L.mjs.map +1 -0
  223. package/dist/{renderer-B78W9uad.mjs → renderer-7w9PZmWJ.mjs} +4 -4
  224. package/dist/{renderer-B78W9uad.mjs.map → renderer-7w9PZmWJ.mjs.map} +1 -1
  225. package/dist/{renderer-CDVb4OfJ.mjs → renderer-B3WHDQeB.mjs} +5 -5
  226. package/dist/{renderer-CDVb4OfJ.mjs.map → renderer-B3WHDQeB.mjs.map} +1 -1
  227. package/dist/{renderer-BG6bkKtY.mjs → renderer-B84T5I98.mjs} +5 -5
  228. package/dist/{renderer-BG6bkKtY.mjs.map → renderer-B84T5I98.mjs.map} +1 -1
  229. package/dist/{renderer-CXLugAe8.mjs → renderer-B8i4d1Rc.mjs} +4 -4
  230. package/dist/{renderer-CXLugAe8.mjs.map → renderer-B8i4d1Rc.mjs.map} +1 -1
  231. package/dist/renderer-BDHGxD6p.mjs +5 -0
  232. package/dist/{renderer-ESkPj6pk.mjs → renderer-BFmVDdVs.mjs} +4 -4
  233. package/dist/{renderer-ESkPj6pk.mjs.map → renderer-BFmVDdVs.mjs.map} +1 -1
  234. package/dist/{renderer-CwVbHki6.mjs → renderer-BG_cnGbF.mjs} +5 -5
  235. package/dist/{renderer-CwVbHki6.mjs.map → renderer-BG_cnGbF.mjs.map} +1 -1
  236. package/dist/{renderer-B7kOF_Az.mjs → renderer-BIToh0CA.mjs} +3 -3
  237. package/dist/{renderer-B7kOF_Az.mjs.map → renderer-BIToh0CA.mjs.map} +1 -1
  238. package/dist/{renderer-DrWeb39d.mjs → renderer-BOg8i8eF.mjs} +11 -2
  239. package/dist/{renderer-DrWeb39d.mjs.map → renderer-BOg8i8eF.mjs.map} +1 -1
  240. package/dist/{renderer-HnSiwSW8.mjs → renderer-BSW4CGZF.mjs} +4 -4
  241. package/dist/{renderer-HnSiwSW8.mjs.map → renderer-BSW4CGZF.mjs.map} +1 -1
  242. package/dist/{renderer-BPYIqtNg.mjs → renderer-BT4im6c0.mjs} +5 -5
  243. package/dist/{renderer-BPYIqtNg.mjs.map → renderer-BT4im6c0.mjs.map} +1 -1
  244. package/dist/renderer-BT9dvpk2.mjs +5 -0
  245. package/dist/{renderer-BgDLCCuq.mjs → renderer-BTLZBD63.mjs} +5 -5
  246. package/dist/{renderer-BgDLCCuq.mjs.map → renderer-BTLZBD63.mjs.map} +1 -1
  247. package/dist/{renderer-CUBDxuxh.mjs → renderer-Bb_HHUQ0.mjs} +5 -5
  248. package/dist/{renderer-CUBDxuxh.mjs.map → renderer-Bb_HHUQ0.mjs.map} +1 -1
  249. package/dist/renderer-Bd-NuU3M.mjs +3 -0
  250. package/dist/{renderer-C7MAqpIS.mjs → renderer-BdRwbLLV.mjs} +4 -4
  251. package/dist/{renderer-C7MAqpIS.mjs.map → renderer-BdRwbLLV.mjs.map} +1 -1
  252. package/dist/{renderer-DIEmK57T.mjs → renderer-BeJoW-nG.mjs} +5 -5
  253. package/dist/{renderer-DIEmK57T.mjs.map → renderer-BeJoW-nG.mjs.map} +1 -1
  254. package/dist/renderer-BfaRh0qy.mjs +5 -0
  255. package/dist/{renderer-AUK_ZS3p.mjs → renderer-BhNZn2DU.mjs} +4 -4
  256. package/dist/{renderer-AUK_ZS3p.mjs.map → renderer-BhNZn2DU.mjs.map} +1 -1
  257. package/dist/{renderer-BcO7LUla.mjs → renderer-Bif8bwCq.mjs} +3 -3
  258. package/dist/{renderer-BcO7LUla.mjs.map → renderer-Bif8bwCq.mjs.map} +1 -1
  259. package/dist/renderer-BlwXKV7Y.mjs +5 -0
  260. package/dist/{renderer-BZmmekE8.mjs → renderer-Bm91Xv6l.mjs} +4 -4
  261. package/dist/{renderer-BZmmekE8.mjs.map → renderer-Bm91Xv6l.mjs.map} +1 -1
  262. package/dist/{renderer-mQt-y49D.mjs → renderer-BnN3JH9u.mjs} +20 -7
  263. package/dist/renderer-BnN3JH9u.mjs.map +1 -0
  264. package/dist/{renderer-C_2UDMEG.mjs → renderer-Bo5GwErU.mjs} +6 -6
  265. package/dist/{renderer-C_2UDMEG.mjs.map → renderer-Bo5GwErU.mjs.map} +1 -1
  266. package/dist/{renderer-Cl8r1LJe.mjs → renderer-Br_aJ_b7.mjs} +4 -4
  267. package/dist/{renderer-Cl8r1LJe.mjs.map → renderer-Br_aJ_b7.mjs.map} +1 -1
  268. package/dist/{renderer-Dee8ksIV.mjs → renderer-BvRaVByi.mjs} +3 -3
  269. package/dist/{renderer-Dee8ksIV.mjs.map → renderer-BvRaVByi.mjs.map} +1 -1
  270. package/dist/renderer-C40yZK3x.mjs +5 -0
  271. package/dist/renderer-C5MjQ7L8.mjs +5 -0
  272. package/dist/renderer-C8LjKYnS.mjs +5 -0
  273. package/dist/renderer-C9q9H_qa.mjs +5 -0
  274. package/dist/renderer-CC4fhNup.mjs +3 -0
  275. package/dist/{renderer-BRWjLiHX.mjs → renderer-CDfCaqV4.mjs} +3 -3
  276. package/dist/{renderer-BRWjLiHX.mjs.map → renderer-CDfCaqV4.mjs.map} +1 -1
  277. package/dist/renderer-CF9ta9Rm.mjs +5 -0
  278. package/dist/{renderer-BNbMi9CI.mjs → renderer-CKlNHDKI.mjs} +5 -5
  279. package/dist/{renderer-BNbMi9CI.mjs.map → renderer-CKlNHDKI.mjs.map} +1 -1
  280. package/dist/{renderer-D1VsqFf4.mjs → renderer-CLRrcT_3.mjs} +5 -5
  281. package/dist/{renderer-D1VsqFf4.mjs.map → renderer-CLRrcT_3.mjs.map} +1 -1
  282. package/dist/{renderer-CEfVvcw-.mjs → renderer-CO1PwItH.mjs} +4 -4
  283. package/dist/{renderer-CEfVvcw-.mjs.map → renderer-CO1PwItH.mjs.map} +1 -1
  284. package/dist/renderer-CO205Gr9.mjs +5 -0
  285. package/dist/renderer-CSm8UXLP.mjs +5 -0
  286. package/dist/renderer-CSy8HRtF.mjs +5 -0
  287. package/dist/{renderer-BYqrtBvd.mjs → renderer-CTSvHf6g.mjs} +5 -5
  288. package/dist/{renderer-BYqrtBvd.mjs.map → renderer-CTSvHf6g.mjs.map} +1 -1
  289. package/dist/{renderer-eT7Gp7FS.mjs → renderer-CWmlfdLb.mjs} +5 -5
  290. package/dist/{renderer-eT7Gp7FS.mjs.map → renderer-CWmlfdLb.mjs.map} +1 -1
  291. package/dist/{renderer-Dat8opUZ.mjs → renderer-CanNjQuL.mjs} +4 -4
  292. package/dist/{renderer-Dat8opUZ.mjs.map → renderer-CanNjQuL.mjs.map} +1 -1
  293. package/dist/renderer-CdNRWDsA.mjs +5 -0
  294. package/dist/{renderer-NTCk1Srf.mjs → renderer-CeNAgCE2.mjs} +3 -3
  295. package/dist/{renderer-NTCk1Srf.mjs.map → renderer-CeNAgCE2.mjs.map} +1 -1
  296. package/dist/{renderer-CcJyD9Q5.mjs → renderer-Ch1qZ2PT.mjs} +4 -4
  297. package/dist/{renderer-CcJyD9Q5.mjs.map → renderer-Ch1qZ2PT.mjs.map} +1 -1
  298. package/dist/{renderer-g7fF2AYk.mjs → renderer-Chfo4G9t.mjs} +5 -5
  299. package/dist/{renderer-g7fF2AYk.mjs.map → renderer-Chfo4G9t.mjs.map} +1 -1
  300. package/dist/{renderer-DIqkhsLI.mjs → renderer-Ck-NLzz0.mjs} +4 -4
  301. package/dist/{renderer-DIqkhsLI.mjs.map → renderer-Ck-NLzz0.mjs.map} +1 -1
  302. package/dist/renderer-CkAjiGRB.mjs +5 -0
  303. package/dist/renderer-CmryuPBm.mjs +5 -0
  304. package/dist/renderer-CnEwne4L.mjs +5 -0
  305. package/dist/{renderer-BdbI_u9w.mjs → renderer-CsRuEpR2.mjs} +3 -3
  306. package/dist/{renderer-BdbI_u9w.mjs.map → renderer-CsRuEpR2.mjs.map} +1 -1
  307. package/dist/{renderer-C4yKI8MT.mjs → renderer-CtulmkqT.mjs} +3 -3
  308. package/dist/{renderer-C4yKI8MT.mjs.map → renderer-CtulmkqT.mjs.map} +1 -1
  309. package/dist/{renderer-CyCtm0UV.mjs → renderer-CwAuWLWm.mjs} +3 -3
  310. package/dist/{renderer-CyCtm0UV.mjs.map → renderer-CwAuWLWm.mjs.map} +1 -1
  311. package/dist/{renderer-CbhnJi_8.mjs → renderer-CxabOSkk.mjs} +4 -4
  312. package/dist/{renderer-CbhnJi_8.mjs.map → renderer-CxabOSkk.mjs.map} +1 -1
  313. package/dist/{renderer-Be5hfwSd.mjs → renderer-CybBR8AL.mjs} +425 -115
  314. package/dist/renderer-CybBR8AL.mjs.map +1 -0
  315. package/dist/{renderer-B6TjJi1g.mjs → renderer-D1tDMuD0.mjs} +5 -5
  316. package/dist/{renderer-B6TjJi1g.mjs.map → renderer-D1tDMuD0.mjs.map} +1 -1
  317. package/dist/renderer-D4QDoqOG.mjs +5 -0
  318. package/dist/{renderer-5qJPGvVL.mjs → renderer-D7DlNOVi.mjs} +5 -5
  319. package/dist/{renderer-5qJPGvVL.mjs.map → renderer-D7DlNOVi.mjs.map} +1 -1
  320. package/dist/renderer-D7cS2a8z.mjs +5 -0
  321. package/dist/{renderer-C06U4c9k.mjs → renderer-D7lApyWZ.mjs} +3 -3
  322. package/dist/{renderer-C06U4c9k.mjs.map → renderer-D7lApyWZ.mjs.map} +1 -1
  323. package/dist/renderer-D85CNC-b.mjs +5 -0
  324. package/dist/{renderer-BJQt0RiZ.mjs → renderer-DAfCcnCz.mjs} +5 -5
  325. package/dist/{renderer-BJQt0RiZ.mjs.map → renderer-DAfCcnCz.mjs.map} +1 -1
  326. package/dist/{renderer-C3Iev6zu.mjs → renderer-DAug14gu.mjs} +4 -4
  327. package/dist/{renderer-C3Iev6zu.mjs.map → renderer-DAug14gu.mjs.map} +1 -1
  328. package/dist/{renderer-F1D9ZJ8I.mjs → renderer-DBfx6QX1.mjs} +3 -3
  329. package/dist/renderer-DC9IoJNz.mjs +5 -0
  330. package/dist/{renderer-CWLF6cAz.mjs → renderer-DCMoBppL.mjs} +58 -4
  331. package/dist/renderer-DCMoBppL.mjs.map +1 -0
  332. package/dist/renderer-DIDh0gFm.mjs +5 -0
  333. package/dist/{renderer-B-inTgyb.d.mts → renderer-DJuVX3c5.d.mts} +2 -2
  334. package/dist/{renderer-B-inTgyb.d.mts.map → renderer-DJuVX3c5.d.mts.map} +1 -1
  335. package/dist/{renderer-xDV2cCkX.mjs → renderer-DKptrHeL.mjs} +5 -5
  336. package/dist/{renderer-xDV2cCkX.mjs.map → renderer-DKptrHeL.mjs.map} +1 -1
  337. package/dist/renderer-DLmJ9GWE.mjs +5 -0
  338. package/dist/renderer-DM7PUWP9.mjs +5 -0
  339. package/dist/{renderer-Du-GnKLb.mjs → renderer-DMtzPqYo.mjs} +211 -72
  340. package/dist/renderer-DMtzPqYo.mjs.map +1 -0
  341. package/dist/renderer-DPWFDxIO.mjs +5 -0
  342. package/dist/renderer-DUCByhAk.mjs +5 -0
  343. package/dist/renderer-DVOtnCKH.mjs +5 -0
  344. package/dist/renderer-DVrN2bW8.mjs +5 -0
  345. package/dist/{renderer-VhkubIx_.mjs → renderer-D_rEtJAH.mjs} +5 -5
  346. package/dist/{renderer-VhkubIx_.mjs.map → renderer-D_rEtJAH.mjs.map} +1 -1
  347. package/dist/{renderer-q4zMFfnY.mjs → renderer-Dak_wVh9.mjs} +2 -2
  348. package/dist/{renderer-q4zMFfnY.mjs.map → renderer-Dak_wVh9.mjs.map} +1 -1
  349. package/dist/{renderer-DOKHd37M.mjs → renderer-Dd2XrdqA.mjs} +4 -4
  350. package/dist/{renderer-DOKHd37M.mjs.map → renderer-Dd2XrdqA.mjs.map} +1 -1
  351. package/dist/renderer-DdOVwfG4.mjs +5 -0
  352. package/dist/{renderer-IQ97z2rw.mjs → renderer-Dih1rtT6.mjs} +3 -3
  353. package/dist/{renderer-IQ97z2rw.mjs.map → renderer-Dih1rtT6.mjs.map} +1 -1
  354. package/dist/{renderer-DW7hbluw.mjs → renderer-DjiebKHO.mjs} +3 -3
  355. package/dist/{renderer-DW7hbluw.mjs.map → renderer-DjiebKHO.mjs.map} +1 -1
  356. package/dist/{renderer-bbaMOD4I.mjs → renderer-DkAFIpzB.mjs} +5 -5
  357. package/dist/{renderer-bbaMOD4I.mjs.map → renderer-DkAFIpzB.mjs.map} +1 -1
  358. package/dist/{renderer-BQOeeXTr.mjs → renderer-DlbSqOJR.mjs} +5 -5
  359. package/dist/{renderer-BQOeeXTr.mjs.map → renderer-DlbSqOJR.mjs.map} +1 -1
  360. package/dist/{renderer-CYX9vKZ-.mjs → renderer-DrExCXnp.mjs} +4 -4
  361. package/dist/{renderer-CYX9vKZ-.mjs.map → renderer-DrExCXnp.mjs.map} +1 -1
  362. package/dist/{renderer-BVql26Ay.mjs → renderer-DsPLMzy1.mjs} +2 -2
  363. package/dist/{renderer-BVql26Ay.mjs.map → renderer-DsPLMzy1.mjs.map} +1 -1
  364. package/dist/{renderer-BfbSvElt.mjs → renderer-Dswrn-yi.mjs} +4 -4
  365. package/dist/{renderer-BfbSvElt.mjs.map → renderer-Dswrn-yi.mjs.map} +1 -1
  366. package/dist/renderer-DtCe9ouu.mjs +5 -0
  367. package/dist/{renderer-sPI7aY6c.mjs → renderer-DtCmG-tT.mjs} +4 -4
  368. package/dist/{renderer-sPI7aY6c.mjs.map → renderer-DtCmG-tT.mjs.map} +1 -1
  369. package/dist/{renderer-BJKzZwyn.mjs → renderer-DxiF4O6X.mjs} +4 -4
  370. package/dist/{renderer-BJKzZwyn.mjs.map → renderer-DxiF4O6X.mjs.map} +1 -1
  371. package/dist/{renderer-CCFHnafT.mjs → renderer-DxkvDAA6.mjs} +4 -4
  372. package/dist/{renderer-CCFHnafT.mjs.map → renderer-DxkvDAA6.mjs.map} +1 -1
  373. package/dist/{renderer-CPTXJs0n.mjs → renderer-FFLnACY-.mjs} +6 -6
  374. package/dist/{renderer-CPTXJs0n.mjs.map → renderer-FFLnACY-.mjs.map} +1 -1
  375. package/dist/{renderer-US4GsamT.mjs → renderer-H4CZt3Z5.mjs} +3 -3
  376. package/dist/{renderer-mLlgfM7X.mjs → renderer-JASAZUyY.mjs} +4 -4
  377. package/dist/{renderer-mLlgfM7X.mjs.map → renderer-JASAZUyY.mjs.map} +1 -1
  378. package/dist/renderer-Mg0kr9Fm.mjs +5 -0
  379. package/dist/{renderer-D2TTDcgh.mjs → renderer-R2kLaNuR.mjs} +3 -3
  380. package/dist/{renderer-D2TTDcgh.mjs.map → renderer-R2kLaNuR.mjs.map} +1 -1
  381. package/dist/renderer-T35PsSw5.mjs +5 -0
  382. package/dist/{renderer-DEQeONTd.mjs → renderer-fWW0bsVl.mjs} +3 -3
  383. package/dist/renderer-iSZ5NT-J.mjs +5 -0
  384. package/dist/{renderer-DH7l5WFr.mjs → renderer-jBKpX3Xg.mjs} +4 -4
  385. package/dist/{renderer-DH7l5WFr.mjs.map → renderer-jBKpX3Xg.mjs.map} +1 -1
  386. package/dist/{renderer-C6st34I6.mjs → renderer-kFx1_MmK.mjs} +3 -3
  387. package/dist/{renderer-C6st34I6.mjs.map → renderer-kFx1_MmK.mjs.map} +1 -1
  388. package/dist/{renderer-CIB5L_C4.mjs → renderer-muB4slsV.mjs} +5 -5
  389. package/dist/{renderer-CIB5L_C4.mjs.map → renderer-muB4slsV.mjs.map} +1 -1
  390. package/dist/renderer-nEmMjQ1a.mjs +5 -0
  391. package/dist/{renderer-C3tVrzyT.mjs → renderer-oiDoNzhv.mjs} +3 -3
  392. package/dist/renderer-pG1nyfjE.mjs +5 -0
  393. package/dist/{renderer-DoPEPlbG.d.mts → renderer-tcypOFaB.d.mts} +23 -5
  394. package/dist/renderer-tcypOFaB.d.mts.map +1 -0
  395. package/dist/{renderer-Dss7T71q.mjs → renderer-vPxMXiv8.mjs} +5 -5
  396. package/dist/{renderer-Dss7T71q.mjs.map → renderer-vPxMXiv8.mjs.map} +1 -1
  397. package/dist/renderer-vbb9e3E3.mjs +5 -0
  398. package/dist/{renderer-OsQRvOle.mjs → renderer-vpsU_4XW.mjs} +5 -5
  399. package/dist/{renderer-OsQRvOle.mjs.map → renderer-vpsU_4XW.mjs.map} +1 -1
  400. package/dist/{renderer-BMP_lYMk.mjs → renderer-w7mlMSC-.mjs} +4 -4
  401. package/dist/{renderer-BMP_lYMk.mjs.map → renderer-w7mlMSC-.mjs.map} +1 -1
  402. package/dist/{renderers-CP8CFWDs-BH1gUTYa.mjs → renderers-CP8CFWDs-OgyUiyrr.mjs} +4 -4
  403. package/dist/{renderers-CP8CFWDs-BH1gUTYa.mjs.map → renderers-CP8CFWDs-OgyUiyrr.mjs.map} +1 -1
  404. package/dist/sam/index.d.mts +3 -3
  405. package/dist/sam/index.mjs +1 -1
  406. package/dist/signals/index.d.mts +7 -7
  407. package/dist/signals/index.mjs +8 -8
  408. package/dist/{signals-gOd0Ui9B.mjs → signals-BfJ1aqpT.mjs} +4 -4
  409. package/dist/{signals-gOd0Ui9B.mjs.map → signals-BfJ1aqpT.mjs.map} +1 -1
  410. package/dist/{src-Bnr8DUC--DzkRGA62.mjs → src-BU6vm9sP-DFJ3phW0.mjs} +76 -11
  411. package/dist/src-BU6vm9sP-DFJ3phW0.mjs.map +1 -0
  412. package/dist/{src-BU1VOWSk.mjs → src-C3f3zXYg.mjs} +250 -30
  413. package/dist/src-C3f3zXYg.mjs.map +1 -0
  414. package/package.json +30 -24
  415. package/dist/dist-D12-a3-x.mjs.map +0 -1
  416. package/dist/dist-DL1GwJvs.mjs.map +0 -1
  417. package/dist/gpu-zFNrvhV9.mjs.map +0 -1
  418. package/dist/index-B9Lm1x8i.d.mts.map +0 -1
  419. package/dist/index-Bzo1uj8h.d.mts.map +0 -1
  420. package/dist/index-V0ZQ4JN6.d.mts.map +0 -1
  421. package/dist/index-svAgwTY_.d.mts.map +0 -1
  422. package/dist/preview-engine/chunk-4FY4TNST.mjs +0 -1
  423. package/dist/preview-engine/chunk-7LDSMOO3.mjs +0 -1
  424. package/dist/preview-engine/chunk-AGAZJZWI.mjs +0 -1
  425. package/dist/preview-engine/chunk-BXPM5SJ3.mjs +0 -1
  426. package/dist/preview-engine/chunk-D73ZKPFN.mjs +0 -138
  427. package/dist/preview-engine/chunk-FKG27DVO.mjs +0 -4
  428. package/dist/preview-engine/chunk-KOVN277Z.mjs +0 -1
  429. package/dist/preview-engine/chunk-MIEH74UH.mjs +0 -480
  430. package/dist/preview-engine/chunk-Q62GPWGD.mjs +0 -1974
  431. package/dist/preview-engine/chunk-XYGDTPO7.mjs +0 -39
  432. package/dist/preview-engine/chunk-YGKO4NIU.mjs +0 -1
  433. package/dist/preview-engine/renderers-3BOQOUEU.mjs +0 -1
  434. package/dist/preview-engine/renderers-3M2FESR2.mjs +0 -1
  435. package/dist/preview-engine/renderers-6LHIWKMZ.mjs +0 -1
  436. package/dist/preview-engine/renderers-7XHO6M3B.mjs +0 -228
  437. package/dist/preview-engine/renderers-A43VCJ7X.mjs +0 -1
  438. package/dist/preview-engine/renderers-AKY464RY.mjs +0 -1
  439. package/dist/preview-engine/renderers-C5UO6PL5.mjs +0 -1
  440. package/dist/preview-engine/renderers-C64QSZO4.mjs +0 -1
  441. package/dist/preview-engine/renderers-CIRCR6NG.mjs +0 -1
  442. package/dist/preview-engine/renderers-CIWOPETY.mjs +0 -1
  443. package/dist/preview-engine/renderers-CZEZCELP.mjs +0 -1
  444. package/dist/preview-engine/renderers-FSQMWHQM.mjs +0 -1
  445. package/dist/preview-engine/renderers-FZEW5C23.mjs +0 -1
  446. package/dist/preview-engine/renderers-HCET2IML.mjs +0 -1
  447. package/dist/preview-engine/renderers-IUOOC6K7.mjs +0 -1
  448. package/dist/preview-engine/renderers-KYYJLVIJ.mjs +0 -1
  449. package/dist/preview-engine/renderers-L4GE7WV3.mjs +0 -1
  450. package/dist/preview-engine/renderers-LRAFWKCO.mjs +0 -1
  451. package/dist/preview-engine/renderers-LU3XZWEB.mjs +0 -1
  452. package/dist/preview-engine/renderers-MDHPQY6D.mjs +0 -1
  453. package/dist/preview-engine/renderers-ND2WV4K3.mjs +0 -1
  454. package/dist/preview-engine/renderers-NJ5CWVVH.mjs +0 -1
  455. package/dist/preview-engine/renderers-NKXYPR3V.mjs +0 -1
  456. package/dist/preview-engine/renderers-NWR66CGK.mjs +0 -1
  457. package/dist/preview-engine/renderers-O22WTBRM.mjs +0 -1
  458. package/dist/preview-engine/renderers-PBBA7LQB.mjs +0 -1
  459. package/dist/preview-engine/renderers-Q6LJRZ7R.mjs +0 -1
  460. package/dist/preview-engine/renderers-RMEACSRL.mjs +0 -1
  461. package/dist/preview-engine/renderers-SP42LCSI.mjs +0 -1
  462. package/dist/preview-engine/renderers-T7SZA3BX.mjs +0 -1
  463. package/dist/preview-engine/renderers-VADTDAHD.mjs +0 -1
  464. package/dist/preview-engine/renderers-VNNWI5C3.mjs +0 -1
  465. package/dist/preview-engine/renderers-WZ75MLP3.mjs +0 -1
  466. package/dist/preview-engine/renderers-XB5R4UQA.mjs +0 -1
  467. package/dist/preview-engine/renderers-YBIUZDGQ.mjs +0 -1
  468. package/dist/preview-engine/renderers-YESJR4O7.mjs +0 -1
  469. package/dist/preview-engine/renderers-YKSRZRRT.mjs +0 -1
  470. package/dist/program-xjIwjKb6.mjs.map +0 -1
  471. package/dist/renderer-129U3pc9.mjs +0 -5
  472. package/dist/renderer-2phFTFxQ.mjs +0 -5
  473. package/dist/renderer-9muKpDeE.mjs +0 -5
  474. package/dist/renderer-B5Dhv6j9.mjs +0 -5
  475. package/dist/renderer-BBUgCS3C.mjs +0 -5
  476. package/dist/renderer-BKXM28Mx.mjs +0 -5
  477. package/dist/renderer-BKqm6xdf.mjs +0 -5
  478. package/dist/renderer-BMfMMf0R.mjs +0 -5
  479. package/dist/renderer-BPsjEnnl.mjs +0 -5
  480. package/dist/renderer-Be5hfwSd.mjs.map +0 -1
  481. package/dist/renderer-Bofr6f88.mjs +0 -6
  482. package/dist/renderer-BqoGcujR.mjs +0 -5
  483. package/dist/renderer-BvuBt2aH.mjs +0 -5
  484. package/dist/renderer-BxTgXHu1.mjs +0 -5
  485. package/dist/renderer-Bz2Rrz60.mjs +0 -5
  486. package/dist/renderer-CBjG8rjE.mjs +0 -5
  487. package/dist/renderer-CS2zyPyZ.mjs +0 -5
  488. package/dist/renderer-CWLF6cAz.mjs.map +0 -1
  489. package/dist/renderer-CXnbl_jR.mjs +0 -5
  490. package/dist/renderer-CaF9vod_.mjs +0 -5
  491. package/dist/renderer-CbSBH3lp.mjs +0 -5
  492. package/dist/renderer-CdjuGRbO.mjs +0 -5
  493. package/dist/renderer-CoLbxC13.mjs +0 -5
  494. package/dist/renderer-CpedZNEG.mjs.map +0 -1
  495. package/dist/renderer-Cr9G0dXB.mjs +0 -5
  496. package/dist/renderer-D63l6_UC.mjs +0 -5
  497. package/dist/renderer-DCJqnzER.mjs +0 -5
  498. package/dist/renderer-DFBOR5J3.mjs +0 -5
  499. package/dist/renderer-DGAZSzw6.mjs +0 -5
  500. package/dist/renderer-DPLGk1Qk.mjs +0 -5
  501. package/dist/renderer-DTCUzByS.mjs +0 -5
  502. package/dist/renderer-DdGahYi1.mjs +0 -5
  503. package/dist/renderer-DhL4nNPk.mjs +0 -5
  504. package/dist/renderer-DkyTbiVz.mjs +0 -3
  505. package/dist/renderer-DnAZweRX.mjs +0 -5
  506. package/dist/renderer-DoPEPlbG.d.mts.map +0 -1
  507. package/dist/renderer-DpisVnT2.mjs +0 -5
  508. package/dist/renderer-Ds7pAKnE.mjs +0 -3
  509. package/dist/renderer-Du-GnKLb.mjs.map +0 -1
  510. package/dist/renderer-DxZD5B54.mjs +0 -5
  511. package/dist/renderer-PMHOnbnA.mjs +0 -5
  512. package/dist/renderer-STufNpMx.mjs +0 -5
  513. package/dist/renderer-SdrgfCxH.mjs +0 -5
  514. package/dist/renderer-mQt-y49D.mjs.map +0 -1
  515. package/dist/src-BU1VOWSk.mjs.map +0 -1
  516. package/dist/src-Bnr8DUC--DzkRGA62.mjs.map +0 -1
  517. /package/dist/{chunk-D8S17ehY.mjs → chunk-W71TSjRM.mjs} +0 -0
  518. /package/dist/{renderer-Cputd36d.mjs → renderer-B6rZUBwE.mjs} +0 -0
@@ -0,0 +1,5 @@
1
+ import "./chunk-W71TSjRM.mjs";
2
+ import "./dist-C4Vxgm0Q.mjs";
3
+ import { t as renderers_default } from "./renderer-DrExCXnp.mjs";
4
+
5
+ export { renderers_default as default };
@@ -0,0 +1,5 @@
1
+ import "./chunk-W71TSjRM.mjs";
2
+ import "./dist-C4Vxgm0Q.mjs";
3
+ import { t as renderers_default } from "./renderer-CanNjQuL.mjs";
4
+
5
+ export { renderers_default as default };
@@ -1,14 +1,14 @@
1
- import "./chunk-D8S17ehY.mjs";
2
- import { It as getActiveMediaMetadata, _n as reportRenderDiagnostic, p as DEFAULT_DURATION_MS, rn as mediaSourceTime, vn as resolveBoolean, xn as resolveNumber } from "./dist-ByxHoMQI.mjs";
3
- import { l as solveHomography, n as defineRenderer, o as resolveFrameNumber, r as effectReach, t as audioRegistry } from "./renderer-DrWeb39d.mjs";
4
- import { B as jointMatrices, F as getPrimitiveGeometry, G as measureMaxCaptionHeight, M as fitSpansToText, N as generateExtrudedTextGeometry, Q as poseNodes, _t as Vector3Math, at as spansText, d as ScreenSpaceRelightPipeline, ht as Matrix4Math, l as Renderer3D, lt as resolveMediaSourceUrl, n as AudioLatentTrackCache, nt as sampleMorphWeights, ot as srtLoader, p as SlugFontCache, pt as Light3D, q as parseColor, tt as resolveTextSpans, ut as Camera3D } from "./dist-D12-a3-x.mjs";
5
- import { a as createFullscreenPipeline, l as fragmentBindGroupLayout, n as PREMULTIPLIED_BLEND, t as FULLSCREEN_QUAD_WGSL } from "./gpu-zFNrvhV9.mjs";
6
- import { n as decodeAudioSource, o as resolveLayerDuration, p as measureText } from "./dist-DEUU6sNe.mjs";
7
- import { o as TemporalDeflickerPipeline } from "./dist-Cn8bDsQF.mjs";
8
- import { B as evaluateKeyframes, I as computeLayout, N as collectNodeOps, U as initLayout, V as evaluateTrackAtFrame } from "./program-xjIwjKb6.mjs";
1
+ import "./chunk-W71TSjRM.mjs";
2
+ import { It as getActiveMediaMetadata, _n as reportRenderDiagnostic, p as DEFAULT_DURATION_MS, rn as mediaSourceTime, vn as resolveBoolean, xn as resolveNumber } from "./dist-Bf2_efYP.mjs";
3
+ import { i as effectReach, n as defineRenderer, r as effectMaxPixelScale, s as resolveFrameNumber, t as audioRegistry, u as solveHomography } from "./renderer-BOg8i8eF.mjs";
4
+ import { B as jointMatrices, F as getPrimitiveGeometry, G as measureMaxCaptionHeight, M as fitSpansToText, N as generateExtrudedTextGeometry, Q as poseNodes, at as spansText, ct as transformScale, d as ScreenSpaceRelightPipeline, dt as Camera3D, gt as Matrix4Math, l as Renderer3D, mt as Light3D, n as AudioLatentTrackCache, nt as sampleMorphWeights, ot as srtLoader, p as SlugFontCache, q as parseColor, tt as resolveTextSpans, ut as resolveMediaSourceUrl, vt as Vector3Math } from "./dist-C4Vxgm0Q.mjs";
5
+ import { a as createFullscreenPipeline, l as fragmentBindGroupLayout, n as PREMULTIPLIED_BLEND, t as FULLSCREEN_QUAD_WGSL } from "./gpu-Bw35AMwY.mjs";
6
+ import { n as decodeAudioSource, o as resolveLayerDuration, p as measureText } from "./dist-Cu1fZ9Uy.mjs";
7
+ import { o as TemporalDeflickerPipeline } from "./dist-BIE8fvlv.mjs";
8
+ import { B as evaluateKeyframes, I as computeLayout, N as collectNodeOps, U as initLayout, V as evaluateTrackAtFrame } from "./program-BUjUTdxq.mjs";
9
9
  import gsapModule from "gsap";
10
10
 
11
- //#region ../../nodes/node-compositor/dist/renderers-X4CI4wde.mjs
11
+ //#region ../../nodes/node-compositor/dist/renderers-Cvrf0vGs.mjs
12
12
  /**
13
13
  * Solves a cubic bezier curve defined by control points (x1, y1) and (x2, y2)
14
14
  * for a given progress parameter t in [0, 1].
@@ -847,6 +847,25 @@ function resolveLayer2DPosition(params) {
847
847
  };
848
848
  return transformPoint(pm, localX, localY);
849
849
  }
850
+ /** Past this many pixels per layout px a scaled-up layer gains nothing visible. */
851
+ const MAX_RASTER_SCALE = 4;
852
+ /**
853
+ * Pixels per layout px to rasterize a 2D layer at, so it stays sharp when its
854
+ * transform onto the canvas scales it up by `axisScale` (the transform's
855
+ * larger axis scale). Rounded up to a quarter, so an animated zoom reuses a
856
+ * few texture sizes instead of allocating new ones every frame; never below 1
857
+ * (a shrunk layer keeps its layout raster). Capped, rounded down to a quarter,
858
+ * by MAX_RASTER_SCALE, by `limits.maxDimension` (the GPU's texture side), by
859
+ * `limits.maxPixels` (a pixel budget for one texture) and by
860
+ * `limits.effects`, the highest scale the layer's effects keep their look at.
861
+ */
862
+ function layerRasterScale(axisScale, size, limits) {
863
+ const w = Math.max(1, size.width);
864
+ const h = Math.max(1, size.height);
865
+ const cap = Math.min(MAX_RASTER_SCALE, limits.maxDimension / Math.max(w, h), Math.sqrt(limits.maxPixels / (w * h)), limits.effects);
866
+ const wanted = Math.ceil(axisScale * 4 - 1e-6) / 4;
867
+ return Math.max(1, Math.min(wanted, Math.floor(cap * 4 + 1e-6) / 4));
868
+ }
850
869
  const Transform3DMath = {
851
870
  identity() {
852
871
  return [
@@ -1345,6 +1364,30 @@ function effectsReach(effects) {
1345
1364
  }
1346
1365
  return reach;
1347
1366
  }
1367
+ /**
1368
+ * The most pixels per layout px a leaf's effects keep their look at: the
1369
+ * least any of them declares (`maxPixelScale`), 1 for one that doesn't.
1370
+ * Relighting runs in the leaf itself, at any scale.
1371
+ */
1372
+ function effectsMaxPixelScale(effects) {
1373
+ let limit = Number.POSITIVE_INFINITY;
1374
+ for (const e of effects) {
1375
+ const op = e && typeof e.toOperation === "function" ? e.toOperation() : e;
1376
+ if (!op || typeof op !== "object" || op.op === "Relight3D") continue;
1377
+ limit = Math.min(limit, effectMaxPixelScale(op));
1378
+ }
1379
+ return limit;
1380
+ }
1381
+ /**
1382
+ * Media content that draws in its layer's own units, so it can be drawn
1383
+ * under a raster scale: a source or a nested composition. Effect, crop and
1384
+ * vision passes wrapped around a source draw at their container's size in
1385
+ * their own pixel space instead.
1386
+ */
1387
+ function drawsInLayerUnits(content) {
1388
+ const op = content?.operation?.op;
1389
+ return op === "source" || op === "Compositor";
1390
+ }
1348
1391
  function quatFromEulerAngles(rx, ry, rz) {
1349
1392
  const DEG = Math.PI / 180;
1350
1393
  const halfX = rx * DEG / 2;
@@ -1480,7 +1523,11 @@ async function applyLayerEffectsInRegion(region, effects, sourceTex, width, heig
1480
1523
  view: out.createView()
1481
1524
  };
1482
1525
  }
1483
- async function applyLayerEffects(effects, sourceTex, width, height, ctx, encoder, props, drawChild, excludes, shiftedFrame, compositionFrame, fps, isVideoMode, layerId) {
1526
+ /**
1527
+ * Runs `effects` over `sourceTex` (`width`×`height` pixels, `pixelScale` of
1528
+ * them per layout px) into a new texture of its size.
1529
+ */
1530
+ async function applyLayerEffects(effects, sourceTex, width, height, ctx, encoder, props, drawChild, excludes, shiftedFrame, compositionFrame, fps, isVideoMode, layerId, pixelScale = 1) {
1484
1531
  const remainingEffects = effects.filter((e) => {
1485
1532
  if (!e || typeof e !== "object") return false;
1486
1533
  const op = e?.op;
@@ -1543,6 +1590,7 @@ async function applyLayerEffects(effects, sourceTex, width, height, ctx, encoder
1543
1590
  ...props,
1544
1591
  containerWidth: width,
1545
1592
  containerHeight: height,
1593
+ pixelScale,
1546
1594
  renderId: `${props.renderId}-${layerId}-fx`,
1547
1595
  frame: shiftedFrame,
1548
1596
  compositionFrame,
@@ -1730,6 +1778,12 @@ const CompositorWebGPURenderer = async (args) => {
1730
1778
  });
1731
1779
  const is3DScene = Boolean(cameraVM || has3DLayer || lightVMs.length > 0);
1732
1780
  let camera = null;
1781
+ /** Where a relief keeps its look from: the default camera at the scene's field of view. */
1782
+ let reliefEye = [
1783
+ 0,
1784
+ 0,
1785
+ 0
1786
+ ];
1733
1787
  let dofEnabled = false;
1734
1788
  const sceneLights = [];
1735
1789
  let sceneEnvironment = null;
@@ -1740,6 +1794,7 @@ const CompositorWebGPURenderer = async (args) => {
1740
1794
  const camStub = camOp?.id ? targetsById[camOp.id] : void 0;
1741
1795
  const fov = camStub?.cameraFov ?? camOp?.lens?.fov ?? 50;
1742
1796
  camera = Camera3D.createDefaultCamera(nativeWidth, nativeHeight, fov);
1797
+ reliefEye = [...camera.eye];
1743
1798
  camera.near = camOp?.lens?.near ?? 1;
1744
1799
  camera.far = camOp?.lens?.far ?? 5e4;
1745
1800
  camera.zoom = camStub?.cameraZoom ?? camOp?.lens?.zoom ?? 1;
@@ -1860,8 +1915,31 @@ const CompositorWebGPURenderer = async (args) => {
1860
1915
  }
1861
1916
  }
1862
1917
  const pending3DItems = [];
1863
- /** Textures the queued 3D items still read: their layers and mattes. */
1864
- const pendingTextures = () => pending3DItems.flatMap((q) => [q.texture, q.opts.matte]).filter((t) => Boolean(t));
1918
+ /** Textures the queued 3D items still read: their layers, mattes and reliefs. */
1919
+ const pendingTextures = () => pending3DItems.flatMap((q) => [
1920
+ q.texture,
1921
+ q.opts.matte,
1922
+ q.kind === "quad" ? q.opts.relief?.texture : void 0
1923
+ ]).filter((t) => Boolean(t));
1924
+ /** Reliefs of 3D layers by owner id, drawn just before their owner. */
1925
+ const reliefs = /* @__PURE__ */ new Map();
1926
+ /** The relief a 3D layer drawn at (x, y, w, h) of its pass carries, if any. */
1927
+ const reliefOpts = (id, x, y, w, h) => {
1928
+ const r = id === void 0 ? void 0 : reliefs.get(id);
1929
+ if (!r) return {};
1930
+ const { width, height } = r.texture;
1931
+ return { relief: {
1932
+ texture: r.texture,
1933
+ uvRect: [
1934
+ x / width,
1935
+ y / height,
1936
+ w / width,
1937
+ h / height
1938
+ ],
1939
+ amount: r.amount,
1940
+ eye: reliefEye
1941
+ } };
1942
+ };
1865
1943
  const flush3DPass = (curTex, curView, curExcludes) => {
1866
1944
  if (pending3DItems.length === 0 || !camera) return {
1867
1945
  finalTex: curTex,
@@ -2088,6 +2166,14 @@ const CompositorWebGPURenderer = async (args) => {
2088
2166
  }
2089
2167
  return true;
2090
2168
  };
2169
+ const rasterScaleOf = (matrix, width, height, effects = Number.POSITIVE_INFINITY) => layerRasterScale(transformScale(matrix), {
2170
+ width,
2171
+ height
2172
+ }, {
2173
+ maxDimension: ctx.device.limits.maxTextureDimension2D,
2174
+ maxPixels: 4 * nativeWidth * nativeHeight,
2175
+ effects
2176
+ });
2091
2177
  const renderNodeTree = async (vms, initialTex, initialView, excludes, accumulatedOpacity = 1, parentMatrix = new DOMMatrix(), parentRect = null, targetW = nativeWidth, targetH = nativeHeight, parent3DMatrix = null, isRootScene = false) => {
2092
2178
  const sorted = [...vms].sort((a, b) => {
2093
2179
  return (a.operation?.zIndex ?? 0) - (b.operation?.zIndex ?? 0);
@@ -2096,14 +2182,16 @@ const CompositorWebGPURenderer = async (args) => {
2096
2182
  let activeView = initialView;
2097
2183
  let activeExcludes = excludes;
2098
2184
  const mattesByOwner = /* @__PURE__ */ new Map();
2185
+ const reliefsByOwner = /* @__PURE__ */ new Map();
2099
2186
  for (const vm of vms) {
2100
- const owner = vm.operation?.matteOf;
2101
- if (owner) mattesByOwner.set(owner, vm);
2187
+ const op$1 = vm.operation;
2188
+ if (op$1?.matteOf) mattesByOwner.set(op$1.matteOf, vm);
2189
+ if (op$1?.reliefOf) reliefsByOwner.set(op$1.reliefOf, vm);
2102
2190
  }
2103
2191
  for (const child of sorted) {
2104
2192
  const lop = child.operation;
2105
2193
  if (lop.kind === "camera" || lop.kind === "light") continue;
2106
- if (lop.matteOf) continue;
2194
+ if (lop.matteOf || lop.reliefOf) continue;
2107
2195
  const targetId = lop.id || lop.inputHandleId;
2108
2196
  const target = targetId ? targetsById[targetId] : void 0;
2109
2197
  const isChild3D = Boolean(target?.is3D ?? lop.is3D) || Boolean(camera && ((target?.z ?? lop.z ?? 0) !== 0 || lop.is3D)) || Boolean(parent3DMatrix);
@@ -2127,29 +2215,43 @@ const CompositorWebGPURenderer = async (args) => {
2127
2215
  continue;
2128
2216
  }
2129
2217
  nodeIndex += 1;
2218
+ const isolate = async (vm, index) => {
2219
+ const queued = pending3DItems.splice(0);
2220
+ const busy = [
2221
+ targetTexture,
2222
+ activeTex,
2223
+ ...activeExcludes,
2224
+ ...queued.flatMap((q) => [
2225
+ q.texture,
2226
+ q.opts.matte,
2227
+ q.kind === "quad" ? q.opts.relief?.texture : void 0
2228
+ ])
2229
+ ].filter((t) => Boolean(t));
2230
+ const tex = ctx.renderer.getTemporaryTexture(targetW, targetH, busy);
2231
+ const view = tex.createView();
2232
+ ctx.renderer.beginFrame(encoder, view, {
2233
+ r: 0,
2234
+ g: 0,
2235
+ b: 0,
2236
+ a: 0
2237
+ }, targetW, targetH, "clear").end();
2238
+ const drawn = (await renderLayerVM(vm, index, tex, view, busy.filter((t) => t !== targetTexture), accumulatedOpacity, parentMatrix, parentRect, targetW, targetH, parent3DMatrix, false))?.finalTex ?? tex;
2239
+ const flat = flush3DPass(drawn, drawn.createView(), busy).finalTex;
2240
+ pending3DItems.push(...queued);
2241
+ return flat;
2242
+ };
2243
+ const reliefVM = lop.reliefId ? reliefsByOwner.get(lop.id) : void 0;
2244
+ if (reliefVM && isChild3D) {
2245
+ const texture = await isolate(reliefVM, nodeIndex);
2246
+ activeExcludes = [...activeExcludes, texture];
2247
+ nodeIndex += 1;
2248
+ reliefs.set(lop.id, {
2249
+ texture,
2250
+ amount: lop.reliefAmount ?? 0
2251
+ });
2252
+ }
2130
2253
  const matteVM = lop.matteId ? mattesByOwner.get(lop.id) : void 0;
2131
2254
  if (matteVM) {
2132
- const isolate = async (vm, index) => {
2133
- const queued = pending3DItems.splice(0);
2134
- const busy = [
2135
- targetTexture,
2136
- activeTex,
2137
- ...activeExcludes,
2138
- ...queued.flatMap((q) => [q.texture, q.opts.matte])
2139
- ].filter((t) => Boolean(t));
2140
- const tex = ctx.renderer.getTemporaryTexture(targetW, targetH, busy);
2141
- const view = tex.createView();
2142
- ctx.renderer.beginFrame(encoder, view, {
2143
- r: 0,
2144
- g: 0,
2145
- b: 0,
2146
- a: 0
2147
- }, targetW, targetH, "clear").end();
2148
- const drawn = (await renderLayerVM(vm, index, tex, view, busy.filter((t) => t !== targetTexture), accumulatedOpacity, parentMatrix, parentRect, targetW, targetH, parent3DMatrix, false))?.finalTex ?? tex;
2149
- const flat = flush3DPass(drawn, drawn.createView(), busy).finalTex;
2150
- pending3DItems.push(...queued);
2151
- return flat;
2152
- };
2153
2255
  const mode = matteVM.operation.matteMode ?? "alpha";
2154
2256
  const blend = mode === "luma" ? "luma-in" : mode === "luma-inverted" ? "luma-out" : mode === "alpha-inverted" ? "destination-out" : "destination-in";
2155
2257
  if (isChild3D) {
@@ -3423,7 +3525,8 @@ const CompositorWebGPURenderer = async (args) => {
3423
3525
  ambientIntensity: target?.ambientIntensity ?? lop.ambientIntensity,
3424
3526
  metallic: target?.metallic ?? lop.metallic,
3425
3527
  ...surfaceProps(target, lop),
3426
- ...modelMatrix && { modelMatrix }
3528
+ ...modelMatrix && { modelMatrix },
3529
+ ...reliefOpts(lop.id, localX, localY, layerW, layerH)
3427
3530
  };
3428
3531
  pending3DItems.push({
3429
3532
  kind: "quad",
@@ -3554,7 +3657,7 @@ const CompositorWebGPURenderer = async (args) => {
3554
3657
  activeTex,
3555
3658
  targetTexture,
3556
3659
  ...excludes
3557
- ]) : null;
3660
+ ], rasterScaleOf(layerMatrix, layerW, layerH)) : null;
3558
3661
  if (paint || border) {
3559
3662
  const pass$1 = ctx.renderer.beginFrame(encoder, activeView, {
3560
3663
  r: 0,
@@ -3611,7 +3714,7 @@ const CompositorWebGPURenderer = async (args) => {
3611
3714
  activeTex,
3612
3715
  targetTexture,
3613
3716
  ...excludes
3614
- ]) : null;
3717
+ ], rasterScaleOf(layerMatrix, layerW, layerH)) : null;
3615
3718
  if (border) {
3616
3719
  const pass$1 = ctx.renderer.beginFrame(encoder, activeView, {
3617
3720
  r: 0,
@@ -3698,7 +3801,7 @@ const CompositorWebGPURenderer = async (args) => {
3698
3801
  ]);
3699
3802
  activeGroupView = activeGroupTex.createView();
3700
3803
  }
3701
- const borderResult$1 = lop.borderWidth !== void 0 && lop.borderColor ? createBorderTexture(ctx, encoder, layerW, layerH, br$1, lop.borderWidth, lop.borderColor, lop.strokeAlign ?? "inside", [activeGroupTex, ...groupExcludes]) : null;
3804
+ const borderResult$1 = lop.borderWidth !== void 0 && lop.borderColor ? createBorderTexture(ctx, encoder, layerW, layerH, br$1, lop.borderWidth, lop.borderColor, lop.strokeAlign ?? "inside", [activeGroupTex, ...groupExcludes], rasterScaleOf(layerMatrix, layerW, layerH)) : null;
3702
3805
  if (borderResult$1) {
3703
3806
  const borderPass = ctx.renderer.beginFrame(encoder, activeGroupView, {
3704
3807
  r: 0,
@@ -3802,8 +3905,24 @@ const CompositorWebGPURenderer = async (args) => {
3802
3905
  finalView: activeView
3803
3906
  };
3804
3907
  const br = Math.min(lop.borderRadius ?? lop.strokeRadius ?? 0, layerW / 2, layerH / 2);
3805
- const texW = Math.ceil(layerW);
3806
- const texH = Math.ceil(layerH);
3908
+ const leafDeflickerEffect = Array.isArray(lop.effects) ? lop.effects.find((e) => e?.op === "TemporalDeflicker" || e?.constructor?.name === "TemporalDeflicker") : void 0;
3909
+ const deflickerOpts = target?.deflicker ?? lop.deflicker ?? leafDeflickerEffect;
3910
+ const leafRelightEffect = Array.isArray(lop.effects) ? lop.effects.find((e) => e?.op === "Relight3D" || e?.constructor?.name === "Relight3D") : void 0;
3911
+ const rawLeafRelight = target?.relighting ?? lop.relighting ?? (typeof lop.relight === "object" ? lop.relight : void 0) ?? leafRelightEffect;
3912
+ const relightOpts = typeof rawLeafRelight === "object" && rawLeafRelight !== null ? rawLeafRelight : void 0;
3913
+ const shutterAngle = target?.motionBlurShutter ?? lop.motionBlurShutter ?? 0;
3914
+ const hasEffects = kind !== "media" && Array.isArray(lop.effects) && lop.effects.length > 0;
3915
+ const rasterScale = isTrue3D || is3D || deflickerOpts || kind === "media" && !drawsInLayerUnits(nodeVM.children?.[0]) ? 1 : rasterScaleOf(layerMatrix, layerW, layerH, hasEffects ? effectsMaxPixelScale(lop.effects) : void 0);
3916
+ const raster = new DOMMatrix([
3917
+ rasterScale,
3918
+ 0,
3919
+ 0,
3920
+ rasterScale,
3921
+ 0,
3922
+ 0
3923
+ ]);
3924
+ const texW = Math.ceil(layerW * rasterScale);
3925
+ const texH = Math.ceil(layerH * rasterScale);
3807
3926
  const savedScissors = ctx.renderer.suspendScissors?.() ?? [];
3808
3927
  const localTex = ctx.renderer.getTemporaryTexture(texW, texH, [
3809
3928
  activeTex,
@@ -3944,6 +4063,7 @@ const CompositorWebGPURenderer = async (args) => {
3944
4063
  const captureGlyphs = isTrue3D && kind === "text";
3945
4064
  const rasterDrawsBefore = ctx.renderer.rasterDrawCount;
3946
4065
  if (captureGlyphs) ctx.renderer.slugPipeline.beginCapture();
4066
+ ctx.renderer.pushTransform(raster);
3947
4067
  try {
3948
4068
  await drawChild(content, {
3949
4069
  containerWidth: layerW,
@@ -3985,6 +4105,7 @@ const CompositorWebGPURenderer = async (args) => {
3985
4105
  }
3986
4106
  }, localView, localTex, texW, texH);
3987
4107
  } finally {
4108
+ ctx.renderer.popTransform();
3988
4109
  if (captureGlyphs) glyphBatches = ctx.renderer.slugPipeline.endCapture();
3989
4110
  }
3990
4111
  layerHasRaster = ctx.renderer.rasterDrawCount !== rasterDrawsBefore;
@@ -4042,6 +4163,7 @@ const CompositorWebGPURenderer = async (args) => {
4042
4163
  const trimStart = target?.trimStart ?? lop.trimStart ?? 0;
4043
4164
  const trimEnd = target?.trimEnd ?? lop.trimEnd ?? 1;
4044
4165
  const trimOffset = target?.trimOffset ?? lop.trimOffset ?? 0;
4166
+ ctx.renderer.pushTransform(raster);
4045
4167
  ctx.renderer.drawShape(shapePass, shapeConfig, fillConfig, strokeWidth > 0 ? {
4046
4168
  color: strokeColor,
4047
4169
  width: strokeWidth,
@@ -4052,15 +4174,9 @@ const CompositorWebGPURenderer = async (args) => {
4052
4174
  dashArray: strokeDashArray,
4053
4175
  dashOffset: strokeDashOffset
4054
4176
  } : void 0);
4177
+ ctx.renderer.popTransform();
4055
4178
  shapePass.end();
4056
4179
  }
4057
- const leafDeflickerEffect = Array.isArray(lop.effects) ? lop.effects.find((e) => e?.op === "TemporalDeflicker" || e?.constructor?.name === "TemporalDeflicker") : void 0;
4058
- const deflickerOpts = target?.deflicker ?? lop.deflicker ?? leafDeflickerEffect;
4059
- const leafRelightEffect = Array.isArray(lop.effects) ? lop.effects.find((e) => e?.op === "Relight3D" || e?.constructor?.name === "Relight3D") : void 0;
4060
- const rawLeafRelight = target?.relighting ?? lop.relighting ?? (typeof lop.relight === "object" ? lop.relight : void 0) ?? leafRelightEffect;
4061
- const relightOpts = typeof rawLeafRelight === "object" && rawLeafRelight !== null ? rawLeafRelight : void 0;
4062
- const shutterAngle = target?.motionBlurShutter ?? lop.motionBlurShutter ?? 0;
4063
- const hasEffects = kind !== "media" && Array.isArray(lop.effects) && lop.effects.length > 0;
4064
4180
  if (glyphBatches && glyphBatches.length > 0 && (deflickerOpts || relightOpts || shutterAngle > 0 || hasEffects)) {
4065
4181
  const glyphPass = ctx.renderer.beginFrame(encoder, localView, {
4066
4182
  r: 0,
@@ -4094,6 +4210,7 @@ const CompositorWebGPURenderer = async (args) => {
4094
4210
  b: 0,
4095
4211
  a: 0
4096
4212
  }, texW, texH, "load");
4213
+ ctx.renderer.pushTransform(raster);
4097
4214
  ctx.renderer.drawRect(maskPass, {
4098
4215
  x: 0,
4099
4216
  y: 0,
@@ -4105,6 +4222,7 @@ const CompositorWebGPURenderer = async (args) => {
4105
4222
  b: 1,
4106
4223
  a: 1
4107
4224
  }, br);
4225
+ ctx.renderer.popTransform();
4108
4226
  maskPass.end();
4109
4227
  finalTex = ctx.renderer.composite(encoder, localTex, maskTex, "mask-in", [
4110
4228
  activeTex,
@@ -4120,11 +4238,13 @@ const CompositorWebGPURenderer = async (args) => {
4120
4238
  if (relightOpts) {
4121
4239
  const relightPipeline = getScreenSpaceRelightPipeline(ctx.device, ctx.renderer.format ?? "rgba8unorm");
4122
4240
  const r3dInstance = getRenderer3D(ctx.device, ctx.renderer.format ?? "rgba8unorm", sampleCount3d);
4241
+ const extentW = texW / rasterScale;
4242
+ const extentH = texH / rasterScale;
4123
4243
  const activeLights = synthesizeRelightLights(relightOpts, sceneLights, {
4124
4244
  x: sampledX,
4125
4245
  y: sampledY,
4126
- width: texW,
4127
- height: texH
4246
+ width: extentW,
4247
+ height: extentH
4128
4248
  }, compositionFrame, fps ?? 24);
4129
4249
  const lightsBuffer = r3dInstance.getOrCreateLightsBuffer(activeLights);
4130
4250
  const relitTex = ctx.renderer.getTemporaryTexture(texW, texH, [
@@ -4136,8 +4256,8 @@ const CompositorWebGPURenderer = async (args) => {
4136
4256
  const relitView = relitTex.createView();
4137
4257
  const normalTex = relightOpts.normalTexture ?? relightOpts.normalMap;
4138
4258
  relightPipeline.execute(encoder, relitView, finalTex, normalTex, lightsBuffer, {
4139
- viewportWidth: texW,
4140
- viewportHeight: texH,
4259
+ viewportWidth: extentW,
4260
+ viewportHeight: extentH,
4141
4261
  layerX: sampledX,
4142
4262
  layerY: sampledY,
4143
4263
  roughness: resolveFrameNumber(target?.roughness ?? target?.relightRoughness ?? relightOpts.specularRoughness ?? relightOpts.roughness, .35, compositionFrame, fps ?? 24),
@@ -4162,9 +4282,11 @@ const CompositorWebGPURenderer = async (args) => {
4162
4282
  if (Math.hypot(vx, vy) > .5) {
4163
4283
  if (!isTrue3D && !(is3D && quad3D)) {
4164
4284
  const reach = shutterAngle / 360;
4165
- blurPadX = Math.ceil(Math.abs(vx) * reach);
4166
- blurPadY = Math.ceil(Math.abs(vy) * reach);
4167
- const paddedTex = ctx.renderer.getTemporaryTexture(texW + blurPadX * 2, texH + blurPadY * 2, [
4285
+ const padX$1 = Math.ceil(Math.abs(vx) * rasterScale * reach);
4286
+ const padY$1 = Math.ceil(Math.abs(vy) * rasterScale * reach);
4287
+ blurPadX = padX$1 / rasterScale;
4288
+ blurPadY = padY$1 / rasterScale;
4289
+ const paddedTex = ctx.renderer.getTemporaryTexture(texW + padX$1 * 2, texH + padY$1 * 2, [
4168
4290
  finalTex,
4169
4291
  activeTex,
4170
4292
  targetTexture,
@@ -4177,17 +4299,17 @@ const CompositorWebGPURenderer = async (args) => {
4177
4299
  a: 0
4178
4300
  }, paddedTex.width, paddedTex.height, "clear");
4179
4301
  ctx.renderer.drawTexture(padPass, finalTex, {
4180
- x: blurPadX,
4181
- y: blurPadY,
4302
+ x: padX$1,
4303
+ y: padY$1,
4182
4304
  width: texW,
4183
4305
  height: texH
4184
4306
  }, { opacity: 1 });
4185
4307
  padPass.end();
4186
4308
  finalTex = paddedTex;
4187
4309
  }
4188
- const streakPx = Math.hypot(vx, vy) * (shutterAngle / 360) * 2;
4310
+ const streakPx = Math.hypot(vx, vy) * rasterScale * (shutterAngle / 360) * 2;
4189
4311
  const samples = Math.min(128, Math.max(16, Math.ceil(streakPx / 2)));
4190
- finalTex = ctx.renderer.applyMotionBlur(encoder, finalTex, vx, vy, shutterAngle, samples, [
4312
+ finalTex = ctx.renderer.applyMotionBlur(encoder, finalTex, vx * rasterScale, vy * rasterScale, shutterAngle, samples, [
4191
4313
  activeTex,
4192
4314
  targetTexture,
4193
4315
  ...excludes
@@ -4199,7 +4321,7 @@ const CompositorWebGPURenderer = async (args) => {
4199
4321
  activeTex,
4200
4322
  targetTexture,
4201
4323
  ...excludes
4202
- ], shiftedFrame, compositionFrame, fps ?? 24, isVideoMode, lop.id ?? `leaf_${i}`)).texture;
4324
+ ], shiftedFrame, compositionFrame, fps ?? 24, isVideoMode, lop.id ?? `leaf_${i}`, rasterScale)).texture;
4203
4325
  const borderExcludes = [
4204
4326
  localTex,
4205
4327
  finalTex,
@@ -4207,7 +4329,7 @@ const CompositorWebGPURenderer = async (args) => {
4207
4329
  targetTexture,
4208
4330
  ...excludes
4209
4331
  ];
4210
- const borderResult = !isTrue3D && lop.borderWidth !== void 0 && lop.borderColor ? createBorderTexture(ctx, encoder, layerW, layerH, br, lop.borderWidth, lop.borderColor, lop.strokeAlign ?? "inside", borderExcludes) : null;
4332
+ const borderResult = !isTrue3D && lop.borderWidth !== void 0 && lop.borderColor ? createBorderTexture(ctx, encoder, layerW, layerH, br, lop.borderWidth, lop.borderColor, lop.strokeAlign ?? "inside", borderExcludes, rasterScale) : null;
4211
4333
  if (savedScissors.length > 0) ctx.renderer.resumeScissors?.(savedScissors);
4212
4334
  if (isTrue3D) {
4213
4335
  const renderedTex = finalTex;
@@ -4258,7 +4380,7 @@ const CompositorWebGPURenderer = async (args) => {
4258
4380
  ],
4259
4381
  width: layerW,
4260
4382
  height: layerH,
4261
- textureExtent: [layerW / texW, layerH / texH],
4383
+ textureExtent: [layerW * rasterScale / texW, layerH * rasterScale / texH],
4262
4384
  rotation: [
4263
4385
  target?.rotateX ?? lop.rotateX ?? 0,
4264
4386
  target?.rotateY ?? lop.rotateY ?? 0,
@@ -4282,7 +4404,8 @@ const CompositorWebGPURenderer = async (args) => {
4282
4404
  ambientIntensity: target?.ambientIntensity ?? lop.ambientIntensity,
4283
4405
  metallic: target?.metallic ?? lop.metallic,
4284
4406
  ...surfaceProps(target, lop),
4285
- ...modelMatrix && { modelMatrix }
4407
+ ...modelMatrix && { modelMatrix },
4408
+ ...reliefOpts(lop.id, localX, localY, layerW, layerH)
4286
4409
  };
4287
4410
  const quadHasContent = layerHasRaster || Boolean(quadOpts.borderWidth && quadOpts.borderWidth > 0 && quadOpts.borderColor);
4288
4411
  if (!glyphBatches || quadHasContent) pending3DItems.push({
@@ -4436,7 +4559,11 @@ const CompositorWebGPURenderer = async (args) => {
4436
4559
  };
4437
4560
  /** Pixels of room around a border texture for its anti-aliased edge. */
4438
4561
  const BORDER_AA_MARGIN = 2;
4439
- function createBorderTexture(ctx, encoder, w, h, br, borderWidth, borderColor, strokeAlign, excludeTextures) {
4562
+ /**
4563
+ * A `w`×`h` box's border as a texture, `rasterScale` pixels per layout px,
4564
+ * and the rect it covers in layout px (around the box, at its origin).
4565
+ */
4566
+ function createBorderTexture(ctx, encoder, w, h, br, borderWidth, borderColor, strokeAlign, excludeTextures, rasterScale = 1) {
4440
4567
  if (w <= 0 || h <= 0 || !borderColor || !borderWidth || borderWidth <= 0) return null;
4441
4568
  let ox = 0;
4442
4569
  let oy = 0;
@@ -4472,8 +4599,16 @@ function createBorderTexture(ctx, encoder, w, h, br, borderWidth, borderColor, s
4472
4599
  }
4473
4600
  if (ow <= 0 || oh <= 0) return null;
4474
4601
  const m = BORDER_AA_MARGIN;
4475
- const borderTexW = Math.ceil(ow + 2 * m);
4476
- const borderTexH = Math.ceil(oh + 2 * m);
4602
+ const borderTexW = Math.ceil((ow + 2 * m) * rasterScale);
4603
+ const borderTexH = Math.ceil((oh + 2 * m) * rasterScale);
4604
+ const raster = new DOMMatrix([
4605
+ rasterScale,
4606
+ 0,
4607
+ 0,
4608
+ rasterScale,
4609
+ 0,
4610
+ 0
4611
+ ]);
4477
4612
  const outerTex = ctx.renderer.getTemporaryTexture(borderTexW, borderTexH, excludeTextures);
4478
4613
  const outerView = outerTex.createView();
4479
4614
  ctx.renderer.beginFrame(encoder, outerView, {
@@ -4488,12 +4623,14 @@ function createBorderTexture(ctx, encoder, w, h, br, borderWidth, borderColor, s
4488
4623
  b: 0,
4489
4624
  a: 0
4490
4625
  }, borderTexW, borderTexH, "load");
4626
+ ctx.renderer.pushTransform(raster);
4491
4627
  ctx.renderer.drawRect(outerDrawPass, {
4492
4628
  x: m,
4493
4629
  y: m,
4494
4630
  width: ow,
4495
4631
  height: oh
4496
4632
  }, borderColor, outerRadius);
4633
+ ctx.renderer.popTransform();
4497
4634
  outerDrawPass.end();
4498
4635
  const innerW = ow - 2 * borderWidth;
4499
4636
  const innerH = oh - 2 * borderWidth;
@@ -4512,6 +4649,7 @@ function createBorderTexture(ctx, encoder, w, h, br, borderWidth, borderColor, s
4512
4649
  b: 0,
4513
4650
  a: 0
4514
4651
  }, borderTexW, borderTexH, "load");
4652
+ ctx.renderer.pushTransform(raster);
4515
4653
  ctx.renderer.drawRect(innerDrawPass, {
4516
4654
  x: m + borderWidth,
4517
4655
  y: m + borderWidth,
@@ -4523,21 +4661,22 @@ function createBorderTexture(ctx, encoder, w, h, br, borderWidth, borderColor, s
4523
4661
  b: 1,
4524
4662
  a: 1
4525
4663
  }, innerRadius);
4664
+ ctx.renderer.popTransform();
4526
4665
  innerDrawPass.end();
4527
4666
  return {
4528
4667
  borderTex: ctx.renderer.composite(encoder, outerTex, innerTex, "mask-out", excludeTextures),
4529
4668
  ox: ox - m,
4530
4669
  oy: oy - m,
4531
- ow: borderTexW,
4532
- oh: borderTexH
4670
+ ow: borderTexW / rasterScale,
4671
+ oh: borderTexH / rasterScale
4533
4672
  };
4534
4673
  }
4535
4674
  return {
4536
4675
  borderTex: outerTex,
4537
4676
  ox: ox - m,
4538
4677
  oy: oy - m,
4539
- ow: borderTexW,
4540
- oh: borderTexH
4678
+ ow: borderTexW / rasterScale,
4679
+ oh: borderTexH / rasterScale
4541
4680
  };
4542
4681
  }
4543
4682
  const compositorLayerAudioProcessor = async (channels, sampleRate, virtualMedia, ctx) => {
@@ -4593,4 +4732,4 @@ var renderers_default = defineRenderer({ WebGPURenderer: CompositorWebGPURendere
4593
4732
 
4594
4733
  //#endregion
4595
4734
  export { Transform3DMath, renderers_default as default, has3DTransform };
4596
- //# sourceMappingURL=renderer-Du-GnKLb.mjs.map
4735
+ //# sourceMappingURL=renderer-DMtzPqYo.mjs.map