framefields 2.13.1 → 2.14.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 (288) hide show
  1. package/dist/audio/index.d.mts +5 -5
  2. package/dist/audio/index.mjs +10 -10
  3. package/dist/{audio-C4B9p_yq.d.mts → audio-CdCuGK5d.d.mts} +3 -3
  4. package/dist/{audio-C4B9p_yq.d.mts.map → audio-CdCuGK5d.d.mts.map} +1 -1
  5. package/dist/{audio-DIvi6hTD.mjs → audio-DFwRbID_.mjs} +3 -3
  6. package/dist/{audio-DIvi6hTD.mjs.map → audio-DFwRbID_.mjs.map} +1 -1
  7. package/dist/cli/check-worker.mjs +43 -43
  8. package/dist/components/index.d.mts +13 -13
  9. package/dist/components/index.mjs +42 -42
  10. package/dist/{dist-DtPPPsZV.mjs → dist--Uu5bQ_6.mjs} +557 -212
  11. package/dist/dist--Uu5bQ_6.mjs.map +1 -0
  12. package/dist/{dist-CCrYOkcc.mjs → dist-B8Nby2CU.mjs} +2 -2
  13. package/dist/{dist-CCrYOkcc.mjs.map → dist-B8Nby2CU.mjs.map} +1 -1
  14. package/dist/effects/index.d.mts +5 -5
  15. package/dist/effects/index.mjs +34 -34
  16. package/dist/{effects-B-L3rLs6.mjs → effects-WMgv8ZaD.mjs} +2 -2
  17. package/dist/{effects-B-L3rLs6.mjs.map → effects-WMgv8ZaD.mjs.map} +1 -1
  18. package/dist/fonts/index.mjs +2 -2
  19. package/dist/{fonts-k5ll8NTE.mjs → fonts-OW3yAfO5.mjs} +2 -2
  20. package/dist/{fonts-k5ll8NTE.mjs.map → fonts-OW3yAfO5.mjs.map} +1 -1
  21. package/dist/{gpu-D2HT3KcE.mjs → gpu-R4T2Tndu.mjs} +2 -2
  22. package/dist/{gpu-D2HT3KcE.mjs.map → gpu-R4T2Tndu.mjs.map} +1 -1
  23. package/dist/{index-CtKUQ2VG.d.mts → index-9xte4JgL.d.mts} +109 -60
  24. package/dist/index-9xte4JgL.d.mts.map +1 -0
  25. package/dist/{index-BGlaws7-.d.mts → index-B0Vq8Bwf.d.mts} +3 -3
  26. package/dist/{index-BGlaws7-.d.mts.map → index-B0Vq8Bwf.d.mts.map} +1 -1
  27. package/dist/{index-BFTtXosj.d.mts → index-BVd6nXd5.d.mts} +2 -2
  28. package/dist/{index-BFTtXosj.d.mts.map → index-BVd6nXd5.d.mts.map} +1 -1
  29. package/dist/{index-CnZhBlob.d.mts → index-Bv7gxGK1.d.mts} +2 -2
  30. package/dist/{index-CnZhBlob.d.mts.map → index-Bv7gxGK1.d.mts.map} +1 -1
  31. package/dist/{index-a6JrbAK0.d.mts → index-C-V6CAhP.d.mts} +32 -2
  32. package/dist/index-C-V6CAhP.d.mts.map +1 -0
  33. package/dist/{index-DQ1U3HC3.d.mts → index-C7-p9zwU.d.mts} +3 -3
  34. package/dist/{index-DQ1U3HC3.d.mts.map → index-C7-p9zwU.d.mts.map} +1 -1
  35. package/dist/{index-rtCXNxGO.d.mts → index-CEKxvGY-.d.mts} +2 -2
  36. package/dist/{index-rtCXNxGO.d.mts.map → index-CEKxvGY-.d.mts.map} +1 -1
  37. package/dist/{index-C2yaponf.d.mts → index-CRaydvLi.d.mts} +28 -9
  38. package/dist/index-CRaydvLi.d.mts.map +1 -0
  39. package/dist/{index-DBh3WphX.d.mts → index-D1FqV1eu.d.mts} +2 -2
  40. package/dist/{index-DBh3WphX.d.mts.map → index-D1FqV1eu.d.mts.map} +1 -1
  41. package/dist/{index-ByhlTwxh.d.mts → index-DoP6EiHj.d.mts} +5 -5
  42. package/dist/{index-ByhlTwxh.d.mts.map → index-DoP6EiHj.d.mts.map} +1 -1
  43. package/dist/{index-B08eSpaI.d.mts → index-GA9_Z8Fn.d.mts} +2 -2
  44. package/dist/{index-B08eSpaI.d.mts.map → index-GA9_Z8Fn.d.mts.map} +1 -1
  45. package/dist/index.d.mts +14 -14
  46. package/dist/index.mjs +50 -50
  47. package/dist/preview/index.d.mts +5 -5
  48. package/dist/preview/index.mjs +10 -10
  49. package/dist/{preview-lHH8Tv4j.mjs → preview-D7BGmE1E.mjs} +3 -3
  50. package/dist/{preview-lHH8Tv4j.mjs.map → preview-D7BGmE1E.mjs.map} +1 -1
  51. package/dist/preview-engine/{chunk-XCPRRMMW.mjs → chunk-5DZTPUMH.mjs} +195 -89
  52. package/dist/preview-engine/chunk-GNDE3OXQ.mjs +5 -0
  53. package/dist/preview-engine/{chunk-N3XTDAL6.mjs → chunk-UPZURPJY.mjs} +31 -31
  54. package/dist/preview-engine/components.mjs +1 -1
  55. package/dist/preview-engine/framefields.mjs +1 -1
  56. package/dist/preview-engine/player.mjs +1 -1
  57. package/dist/preview-engine/renderers-DLJOA3BM.mjs +228 -0
  58. package/dist/{program-BfiB9ttP.mjs → program-tFKCWU2j.mjs} +96 -12
  59. package/dist/program-tFKCWU2j.mjs.map +1 -0
  60. package/dist/renderer/index.d.mts +4 -4
  61. package/dist/renderer/index.mjs +2 -2
  62. package/dist/{renderer-CU6WT5jW.mjs → renderer-03mYJLgX.mjs} +3 -3
  63. package/dist/{renderer-CU6WT5jW.mjs.map → renderer-03mYJLgX.mjs.map} +1 -1
  64. package/dist/{renderer-BmyFfvVA.mjs → renderer-0rveCDm-.mjs} +3 -3
  65. package/dist/{renderer-BmyFfvVA.mjs.map → renderer-0rveCDm-.mjs.map} +1 -1
  66. package/dist/{renderer-QbSrnPZU.mjs → renderer-2PjR3w-q.mjs} +3 -3
  67. package/dist/{renderer-QbSrnPZU.mjs.map → renderer-2PjR3w-q.mjs.map} +1 -1
  68. package/dist/{renderer-BZMh2io2.mjs → renderer-47y12Z37.mjs} +2 -2
  69. package/dist/{renderer-BZMh2io2.mjs.map → renderer-47y12Z37.mjs.map} +1 -1
  70. package/dist/renderer-6_bzbbXt.mjs +5 -0
  71. package/dist/renderer-8M-9G6F_.mjs +5 -0
  72. package/dist/{renderer-CHCRcCKw.mjs → renderer-B0yVUOPP.mjs} +2 -2
  73. package/dist/{renderer-CHCRcCKw.mjs.map → renderer-B0yVUOPP.mjs.map} +1 -1
  74. package/dist/renderer-B5OzKvF8.mjs +5 -0
  75. package/dist/{renderer-CldjJmRR.mjs → renderer-B7G1KohJ.mjs} +2 -2
  76. package/dist/renderer-BBCZ2qbE.mjs +5 -0
  77. package/dist/{renderer-Y1kjtOto.mjs → renderer-BBMtmxks.mjs} +3 -3
  78. package/dist/{renderer-Y1kjtOto.mjs.map → renderer-BBMtmxks.mjs.map} +1 -1
  79. package/dist/renderer-BChbxCux.mjs +5 -0
  80. package/dist/{renderer-CdXBRdFf.mjs → renderer-BDzn1AKF.mjs} +2 -2
  81. package/dist/{renderer-CdXBRdFf.mjs.map → renderer-BDzn1AKF.mjs.map} +1 -1
  82. package/dist/renderer-BGeMPr8C.mjs +5 -0
  83. package/dist/{renderer-CSu_vYPn.mjs → renderer-BGp0An5A.mjs} +3 -3
  84. package/dist/{renderer-CSu_vYPn.mjs.map → renderer-BGp0An5A.mjs.map} +1 -1
  85. package/dist/{renderer-BZX932Lj.mjs → renderer-BH7UCMPQ.mjs} +2 -2
  86. package/dist/{renderer-BZX932Lj.mjs.map → renderer-BH7UCMPQ.mjs.map} +1 -1
  87. package/dist/{renderer-fG8Jy8Rx.d.mts → renderer-BHYJlK6H.d.mts} +2 -2
  88. package/dist/{renderer-fG8Jy8Rx.d.mts.map → renderer-BHYJlK6H.d.mts.map} +1 -1
  89. package/dist/{renderer-D-mX1EVA.mjs → renderer-BJ8ea92W.mjs} +3 -3
  90. package/dist/{renderer-D-mX1EVA.mjs.map → renderer-BJ8ea92W.mjs.map} +1 -1
  91. package/dist/{renderer-B6bK9rXm.mjs → renderer-BOSZAdgF.mjs} +2 -2
  92. package/dist/{renderer-B6bK9rXm.mjs.map → renderer-BOSZAdgF.mjs.map} +1 -1
  93. package/dist/renderer-BPQ8Pkjb.mjs +5 -0
  94. package/dist/renderer-BTRpA3HD.mjs +5 -0
  95. package/dist/{renderer-Dv_iRIyx.mjs → renderer-BVIXKfbC.mjs} +121 -105
  96. package/dist/renderer-BVIXKfbC.mjs.map +1 -0
  97. package/dist/{renderer-D0xM67cK.mjs → renderer-BVU22lBS.mjs} +2 -2
  98. package/dist/{renderer-D0xM67cK.mjs.map → renderer-BVU22lBS.mjs.map} +1 -1
  99. package/dist/renderer-BVsECSn-.mjs +5 -0
  100. package/dist/{renderer-HKv5cBdp.mjs → renderer-BWSRryIA.mjs} +2 -2
  101. package/dist/{renderer-HKv5cBdp.mjs.map → renderer-BWSRryIA.mjs.map} +1 -1
  102. package/dist/{renderer-D0h1hTOo.mjs → renderer-BacY4nh8.mjs} +2 -2
  103. package/dist/{renderer-D0h1hTOo.mjs.map → renderer-BacY4nh8.mjs.map} +1 -1
  104. package/dist/{renderer-D_m6Qbsi.mjs → renderer-Baw6Utxi.mjs} +2 -2
  105. package/dist/{renderer-D_m6Qbsi.mjs.map → renderer-Baw6Utxi.mjs.map} +1 -1
  106. package/dist/{renderer-CQ4h8n7p.mjs → renderer-Bcu3UrI-.mjs} +3 -3
  107. package/dist/{renderer-CQ4h8n7p.mjs.map → renderer-Bcu3UrI-.mjs.map} +1 -1
  108. package/dist/{renderer-yNWYqvvq.mjs → renderer-BeNl_6EG.mjs} +2 -2
  109. package/dist/{renderer-yNWYqvvq.mjs.map → renderer-BeNl_6EG.mjs.map} +1 -1
  110. package/dist/{renderer-pn52dzZz.mjs → renderer-BfZNIiSv.mjs} +2 -2
  111. package/dist/{renderer-pn52dzZz.mjs.map → renderer-BfZNIiSv.mjs.map} +1 -1
  112. package/dist/renderer-Bgos68gc.mjs +6 -0
  113. package/dist/{renderer-C64_B8It.mjs → renderer-BjDddtw9.mjs} +2 -2
  114. package/dist/renderer-BjHOvoqO.mjs +5 -0
  115. package/dist/renderer-BjXMPPlV.mjs +5 -0
  116. package/dist/{renderer-C98XwEIr.mjs → renderer-BpVOk9ux.mjs} +2 -2
  117. package/dist/{renderer-C98XwEIr.mjs.map → renderer-BpVOk9ux.mjs.map} +1 -1
  118. package/dist/{renderer-7xQmXXMH.mjs → renderer-Bpm145BW.mjs} +3 -3
  119. package/dist/{renderer-7xQmXXMH.mjs.map → renderer-Bpm145BW.mjs.map} +1 -1
  120. package/dist/{renderer-_J9JcCMR.mjs → renderer-Brmbl12Y.mjs} +3 -3
  121. package/dist/{renderer-_J9JcCMR.mjs.map → renderer-Brmbl12Y.mjs.map} +1 -1
  122. package/dist/renderer-Byobxqkv.mjs +5 -0
  123. package/dist/{renderer-B3un4Pdi.mjs → renderer-C20efMI0.mjs} +3 -3
  124. package/dist/{renderer-B3un4Pdi.mjs.map → renderer-C20efMI0.mjs.map} +1 -1
  125. package/dist/{renderer-Cfx_FCSf.mjs → renderer-C5AoaymD.mjs} +3 -3
  126. package/dist/{renderer-Cfx_FCSf.mjs.map → renderer-C5AoaymD.mjs.map} +1 -1
  127. package/dist/{renderer-DWYmJSrl.mjs → renderer-CCxk-RJR.mjs} +2 -2
  128. package/dist/{renderer-DWYmJSrl.mjs.map → renderer-CCxk-RJR.mjs.map} +1 -1
  129. package/dist/{renderer-DhGZ41hQ.mjs → renderer-CKo7VR8x.mjs} +3 -3
  130. package/dist/{renderer-DhGZ41hQ.mjs.map → renderer-CKo7VR8x.mjs.map} +1 -1
  131. package/dist/renderer-CKrsg3EG.mjs +5 -0
  132. package/dist/{renderer-BIKkxw_Z.mjs → renderer-COgwYqev.mjs} +3 -3
  133. package/dist/{renderer-BIKkxw_Z.mjs.map → renderer-COgwYqev.mjs.map} +1 -1
  134. package/dist/{renderer-uzU6dsdR.mjs → renderer-CP108ABB.mjs} +2 -2
  135. package/dist/{renderer-uzU6dsdR.mjs.map → renderer-CP108ABB.mjs.map} +1 -1
  136. package/dist/{renderer-Cv9CKKWG.mjs → renderer-CP8wLzTU.mjs} +2 -2
  137. package/dist/{renderer-Cv9CKKWG.mjs.map → renderer-CP8wLzTU.mjs.map} +1 -1
  138. package/dist/{renderer-uER8kn7f.mjs → renderer-CT3zkfbf.mjs} +2 -2
  139. package/dist/{renderer-uER8kn7f.mjs.map → renderer-CT3zkfbf.mjs.map} +1 -1
  140. package/dist/{renderer-DNynPM6X.mjs → renderer-Ca1KjNCO.mjs} +2 -2
  141. package/dist/{renderer-DNynPM6X.mjs.map → renderer-Ca1KjNCO.mjs.map} +1 -1
  142. package/dist/renderer-Cj875NuH.mjs +5 -0
  143. package/dist/{renderer-BsrKj6Td.mjs → renderer-Cm0tsbQH.mjs} +2 -2
  144. package/dist/{renderer-BsrKj6Td.mjs.map → renderer-Cm0tsbQH.mjs.map} +1 -1
  145. package/dist/renderer-CnmzJoMv.mjs +5 -0
  146. package/dist/{renderer-Dm57W73p.mjs → renderer-Cqb7PGrI.mjs} +2 -2
  147. package/dist/{renderer-BTwuM9u-.mjs → renderer-CrxwW6VQ.mjs} +3 -3
  148. package/dist/{renderer-BTwuM9u-.mjs.map → renderer-CrxwW6VQ.mjs.map} +1 -1
  149. package/dist/renderer-CtklDaMg.mjs +5 -0
  150. package/dist/{renderer-TfeohPxt.mjs → renderer-Cw6_NL2i.mjs} +3 -3
  151. package/dist/{renderer-TfeohPxt.mjs.map → renderer-Cw6_NL2i.mjs.map} +1 -1
  152. package/dist/{renderer-B10HDC13.mjs → renderer-D-KHHWQD.mjs} +3 -3
  153. package/dist/{renderer-B10HDC13.mjs.map → renderer-D-KHHWQD.mjs.map} +1 -1
  154. package/dist/{renderer-CO9vE3sd.mjs → renderer-D-RhYvVl.mjs} +2 -2
  155. package/dist/{renderer-CO9vE3sd.mjs.map → renderer-D-RhYvVl.mjs.map} +1 -1
  156. package/dist/renderer-D1tK3in_.mjs +5 -0
  157. package/dist/{renderer-BEhZiOT4.mjs → renderer-D2wNFNRf.mjs} +2 -2
  158. package/dist/{renderer-BEhZiOT4.mjs.map → renderer-D2wNFNRf.mjs.map} +1 -1
  159. package/dist/renderer-D2yc9P61.mjs +5 -0
  160. package/dist/renderer-D4v-JvSr.mjs +5 -0
  161. package/dist/renderer-D7WRWDwB.mjs +5 -0
  162. package/dist/{renderer-DzON3wDZ.mjs → renderer-DA8YEo_d.mjs} +3 -3
  163. package/dist/{renderer-DzON3wDZ.mjs.map → renderer-DA8YEo_d.mjs.map} +1 -1
  164. package/dist/{renderer-DYlx7VHo.mjs → renderer-DEjo6dw_.mjs} +2 -2
  165. package/dist/{renderer-DYlx7VHo.mjs.map → renderer-DEjo6dw_.mjs.map} +1 -1
  166. package/dist/renderer-DGvA0tdB.mjs +5 -0
  167. package/dist/{renderer-B3_GddgJ.mjs → renderer-DIEeHiQA.mjs} +2 -2
  168. package/dist/{renderer-B3_GddgJ.mjs.map → renderer-DIEeHiQA.mjs.map} +1 -1
  169. package/dist/{renderer-C4hd6Cqi.mjs → renderer-DNxWOz8Q.mjs} +2 -2
  170. package/dist/{renderer-C4hd6Cqi.mjs.map → renderer-DNxWOz8Q.mjs.map} +1 -1
  171. package/dist/renderer-DO7v5Sdm.mjs +5 -0
  172. package/dist/renderer-DRVvt7-V.mjs +5 -0
  173. package/dist/{renderer-CkTehyRX.mjs → renderer-DVPgWHZw.mjs} +3 -3
  174. package/dist/{renderer-CkTehyRX.mjs.map → renderer-DVPgWHZw.mjs.map} +1 -1
  175. package/dist/{renderer-4nsuReW2.mjs → renderer-DWq9gYRw.mjs} +3 -3
  176. package/dist/{renderer-4nsuReW2.mjs.map → renderer-DWq9gYRw.mjs.map} +1 -1
  177. package/dist/renderer-DYMCd3jL.mjs +5 -0
  178. package/dist/{renderer-DvHi_wXE.mjs → renderer-D_j1WKMD.mjs} +3 -3
  179. package/dist/{renderer-DvHi_wXE.mjs.map → renderer-D_j1WKMD.mjs.map} +1 -1
  180. package/dist/{renderer-CRhEGqW4.mjs → renderer-DcAKDAnS.mjs} +3 -3
  181. package/dist/{renderer-CRhEGqW4.mjs.map → renderer-DcAKDAnS.mjs.map} +1 -1
  182. package/dist/{renderer-DtFZbE1j.mjs → renderer-Dgj46uEU.mjs} +2 -2
  183. package/dist/{renderer-B2IUPjhw.mjs → renderer-DhyMfG1v.mjs} +3 -3
  184. package/dist/{renderer-B2IUPjhw.mjs.map → renderer-DhyMfG1v.mjs.map} +1 -1
  185. package/dist/{renderer-BvBqTAtk.mjs → renderer-Dj2H5JPR.mjs} +3 -3
  186. package/dist/{renderer-BvBqTAtk.mjs.map → renderer-Dj2H5JPR.mjs.map} +1 -1
  187. package/dist/{renderer-CoC64eam.mjs → renderer-DkOuQi84.mjs} +3 -3
  188. package/dist/{renderer-CoC64eam.mjs.map → renderer-DkOuQi84.mjs.map} +1 -1
  189. package/dist/renderer-DmHKw-MM.mjs +5 -0
  190. package/dist/renderer-DoDsuZ6G.mjs +5 -0
  191. package/dist/{renderer-BhcTYhaP.mjs → renderer-Dr0tXA4k.mjs} +3 -3
  192. package/dist/{renderer-BhcTYhaP.mjs.map → renderer-Dr0tXA4k.mjs.map} +1 -1
  193. package/dist/{renderer-BrEeUw7T.mjs → renderer-DtMVitEF.mjs} +2 -2
  194. package/dist/{renderer-BrEeUw7T.mjs.map → renderer-DtMVitEF.mjs.map} +1 -1
  195. package/dist/{renderer-BGchUBW_.mjs → renderer-Dwwnx7Dk.mjs} +2 -2
  196. package/dist/{renderer-BGchUBW_.mjs.map → renderer-Dwwnx7Dk.mjs.map} +1 -1
  197. package/dist/{renderer-zLi2qFGT.mjs → renderer-DzLrvCB2.mjs} +2 -2
  198. package/dist/{renderer-zLi2qFGT.mjs.map → renderer-DzLrvCB2.mjs.map} +1 -1
  199. package/dist/renderer-EpgclS70.mjs +5 -0
  200. package/dist/{renderer-DCrKEVjb.mjs → renderer-FYOL5Za6.mjs} +3 -3
  201. package/dist/{renderer-DCrKEVjb.mjs.map → renderer-FYOL5Za6.mjs.map} +1 -1
  202. package/dist/renderer-GroKiYyK.mjs +5 -0
  203. package/dist/{renderer-DYeNNc_G.mjs → renderer-I0Hh9cLK.mjs} +3 -3
  204. package/dist/{renderer-DYeNNc_G.mjs.map → renderer-I0Hh9cLK.mjs.map} +1 -1
  205. package/dist/renderer-MQ5K_xIS.mjs +5 -0
  206. package/dist/{renderer-BEuXJY-C.mjs → renderer-NRMlYkX6.mjs} +3 -3
  207. package/dist/{renderer-BEuXJY-C.mjs.map → renderer-NRMlYkX6.mjs.map} +1 -1
  208. package/dist/{renderer-YONlI6W-.mjs → renderer-Nnmi8Gt6.mjs} +3 -3
  209. package/dist/{renderer-YONlI6W-.mjs.map → renderer-Nnmi8Gt6.mjs.map} +1 -1
  210. package/dist/renderer-U43SflML.mjs +5 -0
  211. package/dist/renderer-UqOmBgCv.mjs +5 -0
  212. package/dist/{renderer-DiZkZ0Pr.mjs → renderer-W1bVNVR6.mjs} +3 -3
  213. package/dist/{renderer-DiZkZ0Pr.mjs.map → renderer-W1bVNVR6.mjs.map} +1 -1
  214. package/dist/renderer-XLULgJM0.mjs +5 -0
  215. package/dist/{renderer-BOlHW3Mi.mjs → renderer-ZnrEfkYh.mjs} +2 -2
  216. package/dist/{renderer-BOlHW3Mi.mjs.map → renderer-ZnrEfkYh.mjs.map} +1 -1
  217. package/dist/{renderer-GIlQ9lZq.mjs → renderer-_pC-jB9O.mjs} +2 -2
  218. package/dist/{renderer-GIlQ9lZq.mjs.map → renderer-_pC-jB9O.mjs.map} +1 -1
  219. package/dist/{renderer-BM19iK8v.mjs → renderer-iMiYStcW.mjs} +2 -2
  220. package/dist/{renderer-BM19iK8v.mjs.map → renderer-iMiYStcW.mjs.map} +1 -1
  221. package/dist/{renderer-CO4NGvAh.mjs → renderer-jUKdkmG5.mjs} +69 -69
  222. package/dist/{renderer-CO4NGvAh.mjs.map → renderer-jUKdkmG5.mjs.map} +1 -1
  223. package/dist/{renderer-mDBoz0zT.mjs → renderer-k5d7JSbs.mjs} +3 -3
  224. package/dist/{renderer-mDBoz0zT.mjs.map → renderer-k5d7JSbs.mjs.map} +1 -1
  225. package/dist/renderer-lNjxY1GG.mjs +5 -0
  226. package/dist/{renderer-CC22Djgi.mjs → renderer-nHS3Sius.mjs} +3 -3
  227. package/dist/{renderer-CC22Djgi.mjs.map → renderer-nHS3Sius.mjs.map} +1 -1
  228. package/dist/{renderer-CXrnzihz.mjs → renderer-ngmYIIob.mjs} +3 -3
  229. package/dist/{renderer-CXrnzihz.mjs.map → renderer-ngmYIIob.mjs.map} +1 -1
  230. package/dist/{renderer-Bw0O--gW.mjs → renderer-raxwsiGI.mjs} +3 -3
  231. package/dist/{renderer-Bw0O--gW.mjs.map → renderer-raxwsiGI.mjs.map} +1 -1
  232. package/dist/renderer-ukufL7pl.mjs +5 -0
  233. package/dist/renderer-wb0NCKdF.mjs +5 -0
  234. package/dist/{renderer-Bw-_GZVw.mjs → renderer-zRq0j6Xy.mjs} +3 -3
  235. package/dist/{renderer-Bw-_GZVw.mjs.map → renderer-zRq0j6Xy.mjs.map} +1 -1
  236. package/dist/{renderers-CP8CFWDs-BufiCyn7.mjs → renderers-CP8CFWDs-CshljORp.mjs} +2 -2
  237. package/dist/{renderers-CP8CFWDs-BufiCyn7.mjs.map → renderers-CP8CFWDs-CshljORp.mjs.map} +1 -1
  238. package/dist/sam/index.d.mts +3 -3
  239. package/dist/signals/index.d.mts +5 -5
  240. package/dist/signals/index.mjs +4 -4
  241. package/dist/{src-DrP7fGJX.mjs → src-Dy4gnc6w.mjs} +13 -8
  242. package/dist/src-Dy4gnc6w.mjs.map +1 -0
  243. package/package.json +60 -60
  244. package/dist/dist-DtPPPsZV.mjs.map +0 -1
  245. package/dist/index-C2yaponf.d.mts.map +0 -1
  246. package/dist/index-CtKUQ2VG.d.mts.map +0 -1
  247. package/dist/index-a6JrbAK0.d.mts.map +0 -1
  248. package/dist/preview-engine/chunk-5ZS46EFB.mjs +0 -5
  249. package/dist/preview-engine/renderers-ZMMQ7S2A.mjs +0 -228
  250. package/dist/program-BfiB9ttP.mjs.map +0 -1
  251. package/dist/renderer-0rLmztAv.mjs +0 -5
  252. package/dist/renderer-B0pjOXFY.mjs +0 -5
  253. package/dist/renderer-B7J13reL.mjs +0 -5
  254. package/dist/renderer-BPGIKGgl.mjs +0 -5
  255. package/dist/renderer-Bv-Artj1.mjs +0 -5
  256. package/dist/renderer-BvLjbhcL.mjs +0 -5
  257. package/dist/renderer-By6awWaf.mjs +0 -5
  258. package/dist/renderer-C0rvsz7m.mjs +0 -5
  259. package/dist/renderer-CDgud_HB.mjs +0 -5
  260. package/dist/renderer-CDiRF3bG.mjs +0 -6
  261. package/dist/renderer-CIIEQd4B.mjs +0 -5
  262. package/dist/renderer-CJblwOA9.mjs +0 -5
  263. package/dist/renderer-CNMOXtXE.mjs +0 -5
  264. package/dist/renderer-COeSeNGg.mjs +0 -5
  265. package/dist/renderer-CUfElmtZ.mjs +0 -5
  266. package/dist/renderer-CYh2lFoJ.mjs +0 -5
  267. package/dist/renderer-CYtVZYMH.mjs +0 -5
  268. package/dist/renderer-CjxZlkjb.mjs +0 -5
  269. package/dist/renderer-Cpd6TvTC.mjs +0 -5
  270. package/dist/renderer-D3ziOPhX.mjs +0 -5
  271. package/dist/renderer-DL-phtL5.mjs +0 -5
  272. package/dist/renderer-DSnmYnHg.mjs +0 -5
  273. package/dist/renderer-DUGfsT-E.mjs +0 -5
  274. package/dist/renderer-DW5af9x1.mjs +0 -5
  275. package/dist/renderer-DYMrol1t.mjs +0 -5
  276. package/dist/renderer-DekeUHaz.mjs +0 -5
  277. package/dist/renderer-Dt5uyJdZ.mjs +0 -5
  278. package/dist/renderer-Dv_iRIyx.mjs.map +0 -1
  279. package/dist/renderer-DwLQAnaK.mjs +0 -5
  280. package/dist/renderer-IXQP2CWM.mjs +0 -5
  281. package/dist/renderer-K-Pkw63O.mjs +0 -5
  282. package/dist/renderer-MPw2KH9P.mjs +0 -5
  283. package/dist/renderer-RPu8RMav.mjs +0 -5
  284. package/dist/renderer-dCqxd5N2.mjs +0 -5
  285. package/dist/renderer-lhjmE-Fp.mjs +0 -5
  286. package/dist/renderer-u9cmBuvM.mjs +0 -5
  287. package/dist/renderer-vH12jcpz.mjs +0 -5
  288. package/dist/src-DrP7fGJX.mjs.map +0 -1
@@ -1,14 +1,14 @@
1
1
  import "./chunk-DOL2i2sR.mjs";
2
2
  import { It as getActiveMediaMetadata, _n as reportRenderDiagnostic, p as DEFAULT_DURATION_MS, rn as mediaSourceTime, vn as resolveBoolean, xn as resolveNumber } from "./dist-C8XSqfTx.mjs";
3
3
  import { i as effectReach, n as defineRenderer, r as effectMaxPixelScale, s as resolveFrameNumber, t as audioRegistry, u as solveHomography } from "./renderer-BuvKGwk3.mjs";
4
- import { $ as poseNodes, B as jointMatrices, F as getPrimitiveGeometry, G as measureMaxCaptionHeight, J as parseDashArray, M as fitSpansToText, N as generateExtrudedTextGeometry, _t as Light3D, ct as srtLoader, d as ScreenSpaceRelightPipeline, dt as transformScale, it as sampleMorphWeights, l as Renderer3D, mt as Camera3D, n as AudioLatentTrackCache, p as SlugFontCache, pt as resolveMediaSourceUrl, q as parseColor, rt as resolveTextSpans, st as spansText, xt as Vector3Math, yt as Matrix4Math } from "./dist-DtPPPsZV.mjs";
5
- import { a as createFullscreenPipeline, l as fragmentBindGroupLayout, n as PREMULTIPLIED_BLEND, t as FULLSCREEN_QUAD_WGSL } from "./gpu-D2HT3KcE.mjs";
6
- import { i as keyedGain, m as measureText, n as decodeAudioSource, s as resolveLayerDuration } from "./dist-CCrYOkcc.mjs";
4
+ import { $ as poseNodes, B as jointMatrices, F as getPrimitiveGeometry, G as measureMaxCaptionHeight, J as parseDashArray, M as fitSpansToText, N as generateExtrudedTextGeometry, _t as Light3D, ct as srtLoader, d as ScreenSpaceRelightPipeline, dt as transformScale, it as sampleMorphWeights, l as Renderer3D, mt as Camera3D, n as AudioLatentTrackCache, p as SlugFontCache, pt as resolveMediaSourceUrl, q as parseColor, rt as resolveTextSpans, st as spansText, xt as Vector3Math, yt as Matrix4Math } from "./dist--Uu5bQ_6.mjs";
5
+ import { a as createFullscreenPipeline, l as fragmentBindGroupLayout, n as PREMULTIPLIED_BLEND, t as FULLSCREEN_QUAD_WGSL } from "./gpu-R4T2Tndu.mjs";
6
+ import { i as keyedGain, m as measureText, n as decodeAudioSource, s as resolveLayerDuration } from "./dist-B8Nby2CU.mjs";
7
7
  import { o as TemporalDeflickerPipeline } from "./dist-DgZpN6IK.mjs";
8
- import { B as evaluateKeyframes, I as computeLayout, N as collectNodeOps, U as initLayout, V as evaluateTrackAtFrame } from "./program-BfiB9ttP.mjs";
8
+ import { F as collectNodeOps, G as initLayout, H as evaluateKeyframes, R as computeLayout, U as evaluateTrackAtFrame } from "./program-tFKCWU2j.mjs";
9
9
  import gsapModule from "gsap";
10
10
 
11
- //#region ../../nodes/node-compositor/dist/renderers-C0dsKt0u.mjs
11
+ //#region ../../nodes/node-compositor/dist/renderers-IzbDoLXh.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].
@@ -1084,6 +1084,21 @@ function has3DTransform(target, lop) {
1084
1084
  return false;
1085
1085
  }
1086
1086
  const meshHasAlpha = /* @__PURE__ */ new WeakMap();
1087
+ /**
1088
+ * How far a text node's ink can reach past its layout box, in px: an outside
1089
+ * stroke reaches its full width past the outline (any other alignment, half),
1090
+ * a shadow its offset plus blur. One px of slack covers antialiasing.
1091
+ */
1092
+ function textInkOutset(target, lop) {
1093
+ const num = (v) => typeof v === "number" && v > 0 ? v : 0;
1094
+ const width = num(target?.strokeWidth ?? lop.strokeWidth);
1095
+ const stroke = Boolean(target?.stroke ?? target?.strokeColor ?? lop.stroke) ? lop.strokeAlign === "outside" ? width : width / 2 : 0;
1096
+ let shadow = 0;
1097
+ const shadows = lop.shadows;
1098
+ if (Array.isArray(shadows)) for (const s of shadows) shadow = Math.max(shadow, Math.max(Math.abs(s.offset?.x ?? 0), Math.abs(s.offset?.y ?? 0)) + 2 * num(s.blurRadius));
1099
+ const reach = stroke + shadow;
1100
+ return reach > 0 ? Math.ceil(reach) + 1 : 0;
1101
+ }
1087
1102
  function hasVertexAlpha(mesh) {
1088
1103
  const cached = meshHasAlpha.get(mesh);
1089
1104
  if (cached !== void 0) return cached;
@@ -1177,6 +1192,8 @@ const audioTrackLatentCache = /* @__PURE__ */ new Map();
1177
1192
  const swarmStateMap = /* @__PURE__ */ new WeakMap();
1178
1193
  const deviceRenderer3DCache = /* @__PURE__ */ new WeakMap();
1179
1194
  /** One Renderer3D per device, target format and MSAA sample count. */
1195
+ /** The command encoder the 3D pools were last recycled for, per device. */
1196
+ const poolEncoder = /* @__PURE__ */ new WeakMap();
1180
1197
  function getRenderer3D(device, format, sampleCount) {
1181
1198
  let byConfig = deviceRenderer3DCache.get(device);
1182
1199
  if (!byConfig) {
@@ -1329,6 +1346,8 @@ function surfaceProps(target, lop, mat) {
1329
1346
  out.emissiveIntensity = target?.emissiveIntensity ?? lop.emissiveIntensity ?? mat?.emissiveStrength ?? 1;
1330
1347
  }
1331
1348
  if (lop.castShadow !== void 0) out.castShadow = lop.castShadow;
1349
+ out.toon = target?.toon ?? lop.toon;
1350
+ out.outline = target?.outline ?? lop.outline;
1332
1351
  return out;
1333
1352
  }
1334
1353
  function computeContainerScissor(matrix, width, height) {
@@ -1652,8 +1671,13 @@ const CompositorWebGPURenderer = async (args) => {
1652
1671
  });
1653
1672
  const { targetsById } = compiled;
1654
1673
  seekTimeline(compiled, shiftedFrame, fps ?? 24);
1655
- getRenderer3D(ctx.device, ctx.renderer.format ?? "rgba8unorm", sampleCount3d).resetPools();
1656
- getScreenSpaceRelightPipeline(ctx.device, ctx.renderer.format ?? "rgba8unorm").resetPools();
1674
+ const r3d = getRenderer3D(ctx.device, ctx.renderer.format ?? "rgba8unorm", sampleCount3d);
1675
+ const relightPipe = getScreenSpaceRelightPipeline(ctx.device, ctx.renderer.format ?? "rgba8unorm");
1676
+ if (poolEncoder.get(ctx.device) !== encoder) {
1677
+ poolEncoder.set(ctx.device, encoder);
1678
+ r3d.resetPools();
1679
+ relightPipe.resetPools();
1680
+ }
1657
1681
  const clearColor = parseColor(vop.backgroundColor);
1658
1682
  ctx.renderer.beginFrame(encoder, compView, clearColor, nativeWidth, nativeHeight, "clear").end();
1659
1683
  let currentCompTex = compTex;
@@ -1874,6 +1898,7 @@ const CompositorWebGPURenderer = async (args) => {
1874
1898
  toneMapping: lop.toneMapping,
1875
1899
  fog: lop.fog,
1876
1900
  floor: lop.floor,
1901
+ outlines: lop.outlines,
1877
1902
  ...intensity$1 !== void 0 && { intensity: intensity$1 }
1878
1903
  };
1879
1904
  sceneBloom = lop.bloom === true ? {} : lop.bloom && typeof lop.bloom === "object" ? { ...lop.bloom } : null;
@@ -1947,11 +1972,11 @@ const CompositorWebGPURenderer = async (args) => {
1947
1972
  finalTex: curTex,
1948
1973
  finalView: curView
1949
1974
  };
1950
- const r3d = getRenderer3D(ctx.device, ctx.renderer.format ?? "rgba8unorm", sampleCount3d);
1975
+ const r3d$1 = getRenderer3D(ctx.device, ctx.renderer.format ?? "rgba8unorm", sampleCount3d);
1951
1976
  for (const item of pending3DItems) {
1952
1977
  if (item.kind !== "mesh") continue;
1953
- if (item.opts.morphWeights?.length) item.meshBuffers = r3d.morphMesh(encoder, item.mesh, item.opts.morphWeights, item.opts.wireframe);
1954
- if (item.opts.audioDeform) item.meshBuffers = r3d.deformMesh(encoder, item.mesh, item.opts.audioDeform, item.opts.wireframe, item.meshBuffers);
1978
+ if (item.opts.morphWeights?.length) item.meshBuffers = r3d$1.morphMesh(encoder, item.mesh, item.opts.morphWeights, item.opts.wireframe);
1979
+ if (item.opts.audioDeform) item.meshBuffers = r3d$1.deformMesh(encoder, item.mesh, item.opts.audioDeform, item.opts.wireframe, item.meshBuffers);
1955
1980
  }
1956
1981
  const itemTextures = pendingTextures();
1957
1982
  const scene3dTex = ctx.renderer.getTemporaryTexture(nativeWidth, nativeHeight, [
@@ -1961,10 +1986,13 @@ const CompositorWebGPURenderer = async (args) => {
1961
1986
  ...itemTextures
1962
1987
  ]);
1963
1988
  const scene3dView = scene3dTex.createView();
1989
+ const outlineSetting = sceneEnvironment?.outlines;
1990
+ const outlines = outlineSetting === true ? {} : outlineSetting || null;
1991
+ const geometryEnabled = dofEnabled || Boolean(outlines);
1964
1992
  let linearDepthTex;
1965
1993
  let linearDepthView;
1966
- if (dofEnabled) {
1967
- linearDepthTex = r3d.getOrCreateLinearDepthTexture(nativeWidth, nativeHeight);
1994
+ if (geometryEnabled) {
1995
+ linearDepthTex = r3d$1.getOrCreateLinearDepthTexture(nativeWidth, nativeHeight);
1968
1996
  linearDepthView = linearDepthTex.createView();
1969
1997
  }
1970
1998
  const shadow = [];
@@ -1982,7 +2010,7 @@ const CompositorWebGPURenderer = async (args) => {
1982
2010
  buffers: item.meshBuffers,
1983
2011
  opts: item.opts
1984
2012
  };
1985
- receivers.push(r3d.worldBounds(caster));
2013
+ receivers.push(r3d$1.worldBounds(caster));
1986
2014
  if (item.opts.castShadow !== false && item.opts.material !== "unlit") casters.push(caster);
1987
2015
  } else if (item.kind === "quad") {
1988
2016
  const caster = {
@@ -1990,11 +2018,11 @@ const CompositorWebGPURenderer = async (args) => {
1990
2018
  texture: item.texture,
1991
2019
  opts: item.opts
1992
2020
  };
1993
- receivers.push(r3d.worldBounds(caster));
2021
+ receivers.push(r3d$1.worldBounds(caster));
1994
2022
  if (item.opts.castShadow === true) casters.push(caster);
1995
2023
  }
1996
2024
  if (casters.length > 0) for (const { light, index } of shadowLights) {
1997
- const result = r3d.renderShadowMap(encoder, light, index, casters, receivers, {
2025
+ const result = r3d$1.renderShadowMap(encoder, light, index, casters, receivers, {
1998
2026
  mapSize: shadowMapSize,
1999
2027
  layer: shadow.length,
2000
2028
  layerCount: shadowLights.length
@@ -2009,7 +2037,7 @@ const CompositorWebGPURenderer = async (args) => {
2009
2037
  const forward = Vector3Math.subtract(camera.target, camera.eye);
2010
2038
  for (const item of pending3DItems) if (isGlass(item)) glass.push(item);
2011
2039
  else if (item.kind === "mesh" && item.opts.transparent) {
2012
- const bounds = r3d.worldBounds({
2040
+ const bounds = r3d$1.worldBounds({
2013
2041
  kind: "mesh",
2014
2042
  mesh: item.mesh,
2015
2043
  opts: item.opts
@@ -2043,7 +2071,7 @@ const CompositorWebGPURenderer = async (args) => {
2043
2071
  for (let j = i; j < end; j++) {
2044
2072
  const item = opaque[j];
2045
2073
  if (item.kind !== "mesh") throw new Error("Invalid mesh batch");
2046
- const matrix = r3d.meshModelMatrix(item.opts);
2074
+ const matrix = r3d$1.meshModelMatrix(item.opts);
2047
2075
  data.set(matrix, (j - i) * 32);
2048
2076
  data.set(item.opts.normalMatrix ?? Light3D.computeNormalMatrix(matrix), (j - i) * 32 + 16);
2049
2077
  }
@@ -2053,7 +2081,7 @@ const CompositorWebGPURenderer = async (args) => {
2053
2081
  ...first.opts,
2054
2082
  modelMatrix: Matrix4Math.identity(),
2055
2083
  normalMatrix: Matrix4Math.identity(),
2056
- instanceBuffer: r3d.uploadInstanceData(data),
2084
+ instanceBuffer: r3d$1.uploadInstanceData(data),
2057
2085
  instanceCount: end - i,
2058
2086
  matrixInstances: true
2059
2087
  }
@@ -2087,17 +2115,17 @@ const CompositorWebGPURenderer = async (args) => {
2087
2115
  camera.up[2]
2088
2116
  ]
2089
2117
  };
2090
- const { pass: reflPass, cameraBindGroup: reflCamBind, lightsBindGroup: reflLightsBind, reflectionTexture: reflTex } = r3d.beginReflectionPass(encoder, nativeWidth, nativeHeight, reflectedCamera, sceneLights, {
2118
+ const { pass: reflPass, cameraBindGroup: reflCamBind, lightsBindGroup: reflLightsBind, reflectionTexture: reflTex } = r3d$1.beginReflectionPass(encoder, nativeWidth, nativeHeight, reflectedCamera, sceneLights, {
2091
2119
  environment: sceneEnvironment,
2092
2120
  shadow: null
2093
2121
  });
2094
- for (const item of ordered) if (item.kind === "quad") r3d.drawTextureQuad(reflPass, reflCamBind, reflLightsBind, item.texture, item.opts, false);
2095
- else if (item.kind === "slug") r3d.drawSlugText(reflPass, reflCamBind, reflLightsBind, item.batches, item.opts, item.stackBase, false);
2096
- else if (item.kind === "mesh") r3d.drawMesh3D(reflPass, reflCamBind, reflLightsBind, item.meshBuffers ?? item.mesh, item.texture, item.opts, false);
2122
+ for (const item of ordered) if (item.kind === "quad") r3d$1.drawTextureQuad(reflPass, reflCamBind, reflLightsBind, item.texture, item.opts, false);
2123
+ else if (item.kind === "slug") r3d$1.drawSlugText(reflPass, reflCamBind, reflLightsBind, item.batches, item.opts, item.stackBase, false);
2124
+ else if (item.kind === "mesh") r3d$1.drawMesh3D(reflPass, reflCamBind, reflLightsBind, item.meshBuffers ?? item.mesh, item.texture, item.opts, false);
2097
2125
  reflPass.end();
2098
- blurredReflectionTex = r3d.blurReflection(encoder, reflTex, floorSpec.roughness ?? .35);
2126
+ blurredReflectionTex = r3d$1.blurReflection(encoder, reflTex, floorSpec.roughness ?? .35);
2099
2127
  }
2100
- const { pass: pass3d, cameraBindGroup, cameraBuffer, lightsBindGroup } = r3d.beginPass(encoder, scene3dView, nativeWidth, nativeHeight, camera, "clear", {
2128
+ const { pass: pass3d, cameraBindGroup, cameraBuffer, lightsBindGroup } = r3d$1.beginPass(encoder, scene3dView, nativeWidth, nativeHeight, camera, "clear", {
2101
2129
  r: 0,
2102
2130
  g: 0,
2103
2131
  b: 0,
@@ -2106,23 +2134,36 @@ const CompositorWebGPURenderer = async (args) => {
2106
2134
  environment: sceneEnvironment,
2107
2135
  shadow: shadow.length ? shadow : null
2108
2136
  }, Boolean(sceneBloom));
2109
- if (floorSpec && blurredReflectionTex) r3d.drawFloor(pass3d, cameraBindGroup, lightsBindGroup, blurredReflectionTex, floorSpec, dofEnabled, Boolean(sceneBloom));
2110
- for (const item of ordered) if (item.kind === "quad") r3d.drawTextureQuad(pass3d, cameraBindGroup, lightsBindGroup, item.texture, item.opts, dofEnabled);
2111
- else if (item.kind === "slug") r3d.drawSlugText(pass3d, cameraBindGroup, lightsBindGroup, item.batches, item.opts, item.stackBase, dofEnabled);
2112
- else if (item.kind === "mesh") r3d.drawMesh3D(pass3d, cameraBindGroup, lightsBindGroup, item.meshBuffers ?? item.mesh, item.texture, isGlass(item) ? {
2137
+ if (floorSpec && blurredReflectionTex) r3d$1.drawFloor(pass3d, cameraBindGroup, lightsBindGroup, blurredReflectionTex, floorSpec, geometryEnabled, Boolean(sceneBloom));
2138
+ for (const item of ordered) if (item.kind === "quad") r3d$1.drawTextureQuad(pass3d, cameraBindGroup, lightsBindGroup, item.texture, item.opts, geometryEnabled);
2139
+ else if (item.kind === "slug") r3d$1.drawSlugText(pass3d, cameraBindGroup, lightsBindGroup, item.batches, item.opts, item.stackBase, geometryEnabled);
2140
+ else if (item.kind === "mesh") r3d$1.drawMesh3D(pass3d, cameraBindGroup, lightsBindGroup, item.meshBuffers ?? item.mesh, item.texture, isGlass(item) ? {
2113
2141
  ...item.opts,
2114
2142
  backdrop: curTex
2115
- } : item.opts, dofEnabled);
2143
+ } : item.opts, geometryEnabled);
2116
2144
  pass3d.end();
2117
2145
  let final3dTex = scene3dTex;
2146
+ if (outlines && linearDepthTex) {
2147
+ if (dofEnabled) r3d$1.resolveGeometry(encoder, linearDepthTex);
2148
+ const outlinedTex = ctx.renderer.getTemporaryTexture(nativeWidth, nativeHeight, [
2149
+ curTex,
2150
+ targetTexture,
2151
+ scene3dTex,
2152
+ linearDepthTex,
2153
+ ...curExcludes
2154
+ ]);
2155
+ r3d$1.applyOutlines(encoder, scene3dTex, linearDepthTex, outlinedTex.createView(), camera, outlines, sceneEnvironment?.fog);
2156
+ final3dTex = outlinedTex;
2157
+ }
2118
2158
  if (dofEnabled && linearDepthTex) {
2119
2159
  const dofResultTex = ctx.renderer.getTemporaryTexture(nativeWidth, nativeHeight, [
2120
2160
  curTex,
2121
2161
  targetTexture,
2122
2162
  scene3dTex,
2163
+ final3dTex,
2123
2164
  ...curExcludes
2124
2165
  ]);
2125
- r3d.applyDepthOfField(encoder, scene3dTex, linearDepthTex, dofResultTex.createView(), cameraBuffer);
2166
+ r3d$1.applyDepthOfField(encoder, final3dTex, linearDepthTex, dofResultTex.createView(), cameraBuffer);
2126
2167
  final3dTex = dofResultTex;
2127
2168
  }
2128
2169
  if (sceneBloom) {
@@ -2133,7 +2174,7 @@ const CompositorWebGPURenderer = async (args) => {
2133
2174
  scene3dTex,
2134
2175
  ...curExcludes
2135
2176
  ]);
2136
- r3d.applyBloom(encoder, final3dTex, bloomTex, sceneBloom, r3d.hdrSource());
2177
+ r3d$1.applyBloom(encoder, final3dTex, bloomTex, sceneBloom, r3d$1.hdrSource());
2137
2178
  final3dTex = bloomTex;
2138
2179
  }
2139
2180
  const nextTex = ctx.renderer.composite(encoder, curTex, final3dTex, "normal", [targetTexture, ...curExcludes]);
@@ -2346,7 +2387,7 @@ const CompositorWebGPURenderer = async (args) => {
2346
2387
  if (durationFrames !== void 0 && shiftedFrame >= startFrame + durationFrames) return;
2347
2388
  }
2348
2389
  if (kind === "model3d") {
2349
- const r3d = getRenderer3D(ctx.device, ctx.renderer.format ?? "rgba8unorm", sampleCount3d);
2390
+ const r3d$1 = getRenderer3D(ctx.device, ctx.renderer.format ?? "rgba8unorm", sampleCount3d);
2350
2391
  let modelSrc = lop.modelData ?? lop.src;
2351
2392
  if (!modelSrc && lop.text3dOptions) {
2352
2393
  const tOpts = lop.text3dOptions;
@@ -2366,7 +2407,7 @@ const CompositorWebGPURenderer = async (args) => {
2366
2407
  if (!modelSrc) return;
2367
2408
  let model;
2368
2409
  try {
2369
- model = typeof modelSrc === "object" && modelSrc !== null && "meshes" in modelSrc ? modelSrc : await r3d.loadModelAsync(modelSrc, lop.modelFormat ?? "auto", {
2410
+ model = typeof modelSrc === "object" && modelSrc !== null && "meshes" in modelSrc ? modelSrc : await r3d$1.loadModelAsync(modelSrc, lop.modelFormat ?? "auto", {
2370
2411
  center: lop.center,
2371
2412
  normalizeSize: lop.normalizeSize
2372
2413
  });
@@ -2435,7 +2476,7 @@ const CompositorWebGPURenderer = async (args) => {
2435
2476
  else if (m.modelData && "meshes" in m.modelData) vModel = m.modelData;
2436
2477
  else if (m.primitive3d) vModel = getPrimitiveGeometry(m.primitive3d);
2437
2478
  else if (m.src) try {
2438
- vModel = r3d.loadModel(m.src, m.modelFormat ?? "auto", {
2479
+ vModel = r3d$1.loadModel(m.src, m.modelFormat ?? "auto", {
2439
2480
  center: m.center,
2440
2481
  normalizeSize: m.normalizeSize
2441
2482
  });
@@ -2660,7 +2701,7 @@ const CompositorWebGPURenderer = async (args) => {
2660
2701
  if (bCount === 0) continue;
2661
2702
  const v = variants[k];
2662
2703
  const activeSlice = bCount === bucketCounts[k] ? bucketItems[k] : bucketItems[k].subarray(0, bCount * 16);
2663
- const instanceBuffer = r3d.uploadInstanceData(activeSlice);
2704
+ const instanceBuffer = r3d$1.uploadInstanceData(activeSlice);
2664
2705
  const bounds = Number.isFinite(bucketBounds[k].min[0]) ? bucketBounds[k] : void 0;
2665
2706
  for (const mesh of v.meshes) {
2666
2707
  const mat = mesh.materialName ? v.materials[mesh.materialName] : void 0;
@@ -2684,7 +2725,7 @@ const CompositorWebGPURenderer = async (args) => {
2684
2725
  pending3DItems.push({
2685
2726
  kind: "mesh",
2686
2727
  mesh,
2687
- texture: mat ? await r3d.materialTexture(mat) : void 0,
2728
+ texture: mat ? await r3d$1.materialTexture(mat) : void 0,
2688
2729
  opts: meshOpts
2689
2730
  });
2690
2731
  }
@@ -2800,7 +2841,7 @@ const CompositorWebGPURenderer = async (args) => {
2800
2841
  else if (m.modelData && "meshes" in m.modelData) vModel = m.modelData;
2801
2842
  else if (m.primitive3d) vModel = getPrimitiveGeometry(m.primitive3d);
2802
2843
  else if (m.src) try {
2803
- vModel = r3d.loadModel(m.src, m.modelFormat ?? "auto", {
2844
+ vModel = r3d$1.loadModel(m.src, m.modelFormat ?? "auto", {
2804
2845
  center: m.center,
2805
2846
  normalizeSize: m.normalizeSize
2806
2847
  });
@@ -2905,7 +2946,7 @@ const CompositorWebGPURenderer = async (args) => {
2905
2946
  };
2906
2947
  let swarmState = swarmStateMap.get(lop);
2907
2948
  if (!swarmState || swarmState.device !== ctx.device) {
2908
- swarmState = r3d.swarm3dPipeline.createState(staticConfig);
2949
+ swarmState = r3d$1.swarm3dPipeline.createState(staticConfig);
2909
2950
  swarmStateMap.set(lop, swarmState);
2910
2951
  }
2911
2952
  const targetF = shiftedFrame ?? 0;
@@ -2995,7 +3036,7 @@ const CompositorWebGPURenderer = async (args) => {
2995
3036
  emitterPos
2996
3037
  };
2997
3038
  };
2998
- r3d.swarm3dPipeline.advance(swarmState, staticConfig, targetF, fps || 30, frameSampler);
3039
+ r3d$1.swarm3dPipeline.advance(swarmState, staticConfig, targetF, fps || 30, frameSampler);
2999
3040
  if (variants.length > 0) {
3000
3041
  const sliceCount = swarmState.sliceCount;
3001
3042
  for (let vIdx = 0; vIdx < variants.length; vIdx++) {
@@ -3023,7 +3064,7 @@ const CompositorWebGPURenderer = async (args) => {
3023
3064
  pending3DItems.push({
3024
3065
  kind: "mesh",
3025
3066
  mesh,
3026
- texture: mat ? await r3d.materialTexture(mat) : void 0,
3067
+ texture: mat ? await r3d$1.materialTexture(mat) : void 0,
3027
3068
  opts: meshOpts
3028
3069
  });
3029
3070
  }
@@ -3053,7 +3094,7 @@ const CompositorWebGPURenderer = async (args) => {
3053
3094
  pending3DItems.push({
3054
3095
  kind: "mesh",
3055
3096
  mesh,
3056
- texture: mat ? await r3d.materialTexture(mat) : void 0,
3097
+ texture: mat ? await r3d$1.materialTexture(mat) : void 0,
3057
3098
  opts: sparkOpts
3058
3099
  });
3059
3100
  }
@@ -3262,11 +3303,11 @@ const CompositorWebGPURenderer = async (args) => {
3262
3303
  thickness: target?.thickness ?? lop.thickness,
3263
3304
  audioDeform: meshAudioDeform
3264
3305
  };
3265
- if (mat) meshOpts.maps = await r3d.materialMaps(mat);
3306
+ if (mat) meshOpts.maps = await r3d$1.materialMaps(mat);
3266
3307
  pending3DItems.push({
3267
3308
  kind: "mesh",
3268
3309
  mesh,
3269
- texture: mat ? await r3d.materialTexture(mat) : void 0,
3310
+ texture: mat ? await r3d$1.materialTexture(mat) : void 0,
3270
3311
  opts: meshOpts
3271
3312
  });
3272
3313
  }
@@ -3326,14 +3367,17 @@ const CompositorWebGPURenderer = async (args) => {
3326
3367
  padX = Math.max(80, Math.ceil(rect.width * .2));
3327
3368
  padY = Math.max(50, Math.ceil(rect.height * .5));
3328
3369
  }
3370
+ if (kind === "text" && !isPathText) {
3371
+ const ink = textInkOutset(target, lop);
3372
+ padX = Math.max(padX, ink);
3373
+ padY = Math.max(padY, ink);
3374
+ }
3329
3375
  const layerW = isPathText ? targetW : rect.width + padX * 2;
3330
3376
  const layerH = isPathText ? targetH : rect.height + padY * 2;
3331
- if (!isPathText && hasKineticAnimators) {
3332
- localX -= padX;
3333
- localY -= padY;
3334
- }
3335
- const anchorX = lop.anchorX ?? .5;
3336
- const anchorY = lop.anchorY ?? .5;
3377
+ localX -= padX;
3378
+ localY -= padY;
3379
+ const anchorX = isPathText ? (lop.anchorX ?? .5) * rect.width / layerW : (padX + (lop.anchorX ?? .5) * rect.width) / layerW;
3380
+ const anchorY = isPathText ? (lop.anchorY ?? .5) * rect.height / layerH : (padY + (lop.anchorY ?? .5) * rect.height) / layerH;
3337
3381
  const localMatrix = toDOMMatrix(buildLayerMatrix({
3338
3382
  x: localX,
3339
3383
  y: localY,
@@ -3343,8 +3387,8 @@ const CompositorWebGPURenderer = async (args) => {
3343
3387
  scale: scale$1,
3344
3388
  scaleX,
3345
3389
  scaleY,
3346
- anchorX: isPathText ? anchorX * rect.width / layerW : anchorX,
3347
- anchorY: isPathText ? anchorY * rect.height / layerH : anchorY
3390
+ anchorX,
3391
+ anchorY
3348
3392
  }));
3349
3393
  const layerMatrix = parentMatrix.multiply(localMatrix);
3350
3394
  const blendMode = lop.blendMode || "normal";
@@ -3356,8 +3400,8 @@ const CompositorWebGPURenderer = async (args) => {
3356
3400
  const rotateZ = target?.rotateZ ?? lop.rotateZ ?? 0;
3357
3401
  const translateZ = target?.translateZ ?? lop.translateZ ?? 0;
3358
3402
  const perspective = target?.perspective ?? lop.perspective ?? 0;
3359
- const perspectiveOriginX = target?.perspectiveOriginX ?? lop.perspectiveOriginX ?? lop.anchorX ?? .5;
3360
- const perspectiveOriginY = target?.perspectiveOriginY ?? lop.perspectiveOriginY ?? lop.anchorY ?? .5;
3403
+ const perspectiveOriginX = target?.perspectiveOriginX ?? lop.perspectiveOriginX ?? anchorX;
3404
+ const perspectiveOriginY = target?.perspectiveOriginY ?? lop.perspectiveOriginY ?? anchorY;
3361
3405
  const backfaceVisibility = target?.backfaceVisibility ?? lop.backfaceVisibility ?? "visible";
3362
3406
  let quad3D = null;
3363
3407
  if (is3D) {
@@ -3471,30 +3515,6 @@ const CompositorWebGPURenderer = async (args) => {
3471
3515
  }, { opacity: 1 });
3472
3516
  borderPass.end();
3473
3517
  }
3474
- let modelMatrix;
3475
- if (parent3DMatrix) {
3476
- let localM = Matrix4Math.identity();
3477
- const childX = target?.x ?? lop.x ?? 0;
3478
- const childY = target?.y ?? lop.y ?? 0;
3479
- const childZ = target?.z ?? lop.z ?? 0;
3480
- localM = Matrix4Math.multiply(localM, Matrix4Math.translate(childX, childY, childZ));
3481
- const rxRad = (target?.rotateX ?? lop.rotateX ?? 0) * Math.PI / 180;
3482
- const ryRad = (target?.rotateY ?? lop.rotateY ?? 0) * Math.PI / 180;
3483
- const rzRad = ((target?.rotateZ ?? lop.rotateZ ?? 0) !== 0 ? target?.rotateZ ?? lop.rotateZ ?? 0 : rotation) * (Math.PI / 180);
3484
- if (rzRad !== 0) localM = Matrix4Math.multiply(localM, Matrix4Math.rotateZ(rzRad));
3485
- if (ryRad !== 0) localM = Matrix4Math.multiply(localM, Matrix4Math.rotateY(ryRad));
3486
- if (rxRad !== 0) localM = Matrix4Math.multiply(localM, Matrix4Math.rotateX(rxRad));
3487
- const sx = layerW * scale$1 * scaleX;
3488
- const sy = layerH * scale$1 * scaleY;
3489
- const sz = target?.scaleZ ?? lop.scaleZ ?? 1;
3490
- localM = Matrix4Math.multiply(localM, Matrix4Math.scale(sx, sy, sz));
3491
- const ax = lop.anchorX ?? .5;
3492
- const ay = lop.anchorY ?? .5;
3493
- const pivotX = .5 - ax;
3494
- const pivotY = .5 - ay;
3495
- if (pivotX !== 0 || pivotY !== 0) localM = Matrix4Math.multiply(localM, Matrix4Math.translate(pivotX, pivotY, 0));
3496
- modelMatrix = Matrix4Math.multiply(parent3DMatrix, localM);
3497
- }
3498
3518
  const quadOpts = {
3499
3519
  position: [
3500
3520
  localX + layerW * .5,
@@ -3527,9 +3547,19 @@ const CompositorWebGPURenderer = async (args) => {
3527
3547
  ambientIntensity: target?.ambientIntensity ?? lop.ambientIntensity,
3528
3548
  metallic: target?.metallic ?? lop.metallic,
3529
3549
  ...surfaceProps(target, lop),
3530
- ...modelMatrix && { modelMatrix },
3531
3550
  ...reliefOpts(lop.id, localX, localY, layerW, layerH)
3532
3551
  };
3552
+ if (parent3DMatrix) {
3553
+ const r3d$1 = getRenderer3D(ctx.device, ctx.renderer.format ?? "rgba8unorm", sampleCount3d);
3554
+ quadOpts.modelMatrix = Matrix4Math.multiply(parent3DMatrix, r3d$1.quadModelMatrix({
3555
+ ...quadOpts,
3556
+ position: [
3557
+ target?.x ?? lop.x ?? 0,
3558
+ target?.y ?? lop.y ?? 0,
3559
+ target?.z ?? lop.z ?? 0
3560
+ ]
3561
+ }));
3562
+ }
3533
3563
  pending3DItems.push({
3534
3564
  kind: "quad",
3535
3565
  texture: activeGroupTex$1,
@@ -3639,7 +3669,7 @@ const CompositorWebGPURenderer = async (args) => {
3639
3669
  finalView: activeView
3640
3670
  };
3641
3671
  }
3642
- const shouldClip = lop.overflow !== "visible";
3672
+ const shouldClip = (target?.overflow ?? lop.overflow) === "hidden";
3643
3673
  const scissorRect = shouldClip ? computeContainerScissor(layerMatrix, layerW, layerH) : null;
3644
3674
  const clipRadius = shouldClip ? Math.min(target?.borderRadius ?? lop.borderRadius ?? 0, layerW / 2, layerH / 2) : 0;
3645
3675
  if ((kind === "flex" || kind === "block") && (!Array.isArray(lop.effects) || lop.effects.length === 0) && clipRadius <= 0 && !shouldPaintContainerBackground(kind, lop.background) && layerOpacity === 1 && blendMode === "normal" && !lop.borderWidth && !lop.borderColor && (typeof lop.relighting !== "object" || !lop.relighting) && (typeof lop.relight !== "object" || !lop.relight) && (typeof target?.relighting !== "object" || !target?.relighting) && (typeof target?.relight !== "object" || !target?.relight) && (typeof lop.deflicker !== "object" || !lop.deflicker) && (typeof target?.deflicker !== "object" || !target?.deflicker)) {
@@ -4350,30 +4380,6 @@ const CompositorWebGPURenderer = async (args) => {
4350
4380
  }, { opacity: 1 });
4351
4381
  borderPass.end();
4352
4382
  }
4353
- let modelMatrix;
4354
- if (parent3DMatrix) {
4355
- let localM = Matrix4Math.identity();
4356
- const childX = target?.x ?? lop.x ?? 0;
4357
- const childY = target?.y ?? lop.y ?? 0;
4358
- const childZ = target?.z ?? lop.z ?? 0;
4359
- localM = Matrix4Math.multiply(localM, Matrix4Math.translate(childX, childY, childZ));
4360
- const rxRad = (target?.rotateX ?? lop.rotateX ?? 0) * Math.PI / 180;
4361
- const ryRad = (target?.rotateY ?? lop.rotateY ?? 0) * Math.PI / 180;
4362
- const rzRad = ((target?.rotateZ ?? lop.rotateZ ?? 0) !== 0 ? target?.rotateZ ?? lop.rotateZ ?? 0 : rotation) * (Math.PI / 180);
4363
- if (rzRad !== 0) localM = Matrix4Math.multiply(localM, Matrix4Math.rotateZ(rzRad));
4364
- if (ryRad !== 0) localM = Matrix4Math.multiply(localM, Matrix4Math.rotateY(ryRad));
4365
- if (rxRad !== 0) localM = Matrix4Math.multiply(localM, Matrix4Math.rotateX(rxRad));
4366
- const sx = layerW * scale$1 * scaleX;
4367
- const sy = layerH * scale$1 * scaleY;
4368
- const sz = target?.scaleZ ?? lop.scaleZ ?? 1;
4369
- localM = Matrix4Math.multiply(localM, Matrix4Math.scale(sx, sy, sz));
4370
- const ax = lop.anchorX ?? .5;
4371
- const ay = lop.anchorY ?? .5;
4372
- const pivotX = .5 - ax;
4373
- const pivotY = .5 - ay;
4374
- if (pivotX !== 0 || pivotY !== 0) localM = Matrix4Math.multiply(localM, Matrix4Math.translate(pivotX, pivotY, 0));
4375
- modelMatrix = Matrix4Math.multiply(parent3DMatrix, localM);
4376
- }
4377
4383
  const quadOpts = {
4378
4384
  position: [
4379
4385
  localX + layerW * .5,
@@ -4406,9 +4412,19 @@ const CompositorWebGPURenderer = async (args) => {
4406
4412
  ambientIntensity: target?.ambientIntensity ?? lop.ambientIntensity,
4407
4413
  metallic: target?.metallic ?? lop.metallic,
4408
4414
  ...surfaceProps(target, lop),
4409
- ...modelMatrix && { modelMatrix },
4410
4415
  ...reliefOpts(lop.id, localX, localY, layerW, layerH)
4411
4416
  };
4417
+ if (parent3DMatrix) {
4418
+ const r3d$1 = getRenderer3D(ctx.device, ctx.renderer.format ?? "rgba8unorm", sampleCount3d);
4419
+ quadOpts.modelMatrix = Matrix4Math.multiply(parent3DMatrix, r3d$1.quadModelMatrix({
4420
+ ...quadOpts,
4421
+ position: [
4422
+ target?.x ?? lop.x ?? 0,
4423
+ target?.y ?? lop.y ?? 0,
4424
+ target?.z ?? lop.z ?? 0
4425
+ ]
4426
+ }));
4427
+ }
4412
4428
  const quadHasContent = layerHasRaster || Boolean(quadOpts.borderWidth && quadOpts.borderWidth > 0 && quadOpts.borderColor);
4413
4429
  if (!glyphBatches || quadHasContent) pending3DItems.push({
4414
4430
  kind: "quad",
@@ -4732,4 +4748,4 @@ var renderers_default = defineRenderer({ WebGPURenderer: CompositorWebGPURendere
4732
4748
 
4733
4749
  //#endregion
4734
4750
  export { Transform3DMath, renderers_default as default, has3DTransform };
4735
- //# sourceMappingURL=renderer-Dv_iRIyx.mjs.map
4751
+ //# sourceMappingURL=renderer-BVIXKfbC.mjs.map