framefields 2.0.11 → 2.1.1

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 (564) hide show
  1. package/README.md +22 -5
  2. package/dist/audio/index.d.mts +4 -4
  3. package/dist/audio/index.mjs +13 -12
  4. package/dist/{audio-BHanw8Jb.d.mts → audio-CfBpzxn9.d.mts} +3 -3
  5. package/dist/{audio-BHanw8Jb.d.mts.map → audio-CfBpzxn9.d.mts.map} +1 -1
  6. package/dist/{audio-TAvPwzLR.mjs → audio-DJeVoE8b.mjs} +1 -1
  7. package/dist/{audio-TAvPwzLR.mjs.map → audio-DJeVoE8b.mjs.map} +1 -1
  8. package/dist/{audio-COOMNwL5.mjs → audio-GGuQ_JI0.mjs} +4 -4
  9. package/dist/{audio-COOMNwL5.mjs.map → audio-GGuQ_JI0.mjs.map} +1 -1
  10. package/dist/{chunk-GMkBE123.mjs → chunk-GBe2k3y8.mjs} +1 -4
  11. package/dist/{dist-C_hjvkdN.mjs → dist-0QGroRYZ.mjs} +1 -1
  12. package/dist/{dist-C_hjvkdN.mjs.map → dist-0QGroRYZ.mjs.map} +1 -1
  13. package/dist/{dist-BYqNNwsl.mjs → dist-BY0bIWgr.mjs} +10 -2
  14. package/dist/dist-BY0bIWgr.mjs.map +1 -0
  15. package/dist/{dist-BAVZdFEJ.mjs → dist-Bb8BoMiw.mjs} +76 -626
  16. package/dist/dist-Bb8BoMiw.mjs.map +1 -0
  17. package/dist/{dist-Cxi68OuY.mjs → dist-DkuDAIrG.mjs} +26862 -25638
  18. package/dist/dist-DkuDAIrG.mjs.map +1 -0
  19. package/dist/{dist-CbG3QxDw.mjs → dist-fjKpBYkc.mjs} +12 -27
  20. package/dist/dist-fjKpBYkc.mjs.map +1 -0
  21. package/dist/effects/index.d.mts +4 -4
  22. package/dist/effects/index.mjs +36 -34
  23. package/dist/{effects-DzbjFhyA.mjs → effects-D6wFg2FR.mjs} +3 -3
  24. package/dist/{effects-DzbjFhyA.mjs.map → effects-D6wFg2FR.mjs.map} +1 -1
  25. package/dist/fonts/index.d.mts +1 -1
  26. package/dist/fonts/index.mjs +3 -1
  27. package/dist/{fonts-C0W6TgJk.mjs → fonts-CZMYtbP7.mjs} +24 -11
  28. package/dist/fonts-CZMYtbP7.mjs.map +1 -0
  29. package/dist/gpu-DG3gI88-.mjs +215 -0
  30. package/dist/gpu-DG3gI88-.mjs.map +1 -0
  31. package/dist/{index-DRZu3ezy.d.mts → index--0vVZDPM.d.mts} +3 -3
  32. package/dist/{index-DRZu3ezy.d.mts.map → index--0vVZDPM.d.mts.map} +1 -1
  33. package/dist/{index-DnWsbbuZ.d.mts → index-BcA8rep0.d.mts} +7 -2
  34. package/dist/index-BcA8rep0.d.mts.map +1 -0
  35. package/dist/{index-DGJp1d30.d.mts → index-BzQc812z.d.mts} +3 -3
  36. package/dist/{index-DGJp1d30.d.mts.map → index-BzQc812z.d.mts.map} +1 -1
  37. package/dist/{index-DDEPvMww.d.mts → index-Cpkzy5XR.d.mts} +3452 -1675
  38. package/dist/index-Cpkzy5XR.d.mts.map +1 -0
  39. package/dist/{index-CDoTrMs1.d.mts → index-D__HdInU.d.mts} +8 -8
  40. package/dist/{index-CDoTrMs1.d.mts.map → index-D__HdInU.d.mts.map} +1 -1
  41. package/dist/{index-CYGpSVsf.d.mts → index-DpWia6iH.d.mts} +4 -11
  42. package/dist/index-DpWia6iH.d.mts.map +1 -0
  43. package/dist/{index-9B8CJowc.d.mts → index-Fciq8bcC.d.mts} +10 -2
  44. package/dist/index-Fciq8bcC.d.mts.map +1 -0
  45. package/dist/index.d.mts +29 -1842
  46. package/dist/index.d.mts.map +1 -1
  47. package/dist/index.mjs +79 -66
  48. package/dist/index.mjs.map +1 -1
  49. package/dist/preview/index.d.mts +2 -2
  50. package/dist/preview/index.mjs +12 -13
  51. package/dist/{preview-BV2C4Fk6.mjs → preview--rOXbBxl.mjs} +3 -4
  52. package/dist/preview--rOXbBxl.mjs.map +1 -0
  53. package/dist/preview-engine/audio.mjs +1 -1
  54. package/dist/preview-engine/chunk-2MZXSWVT.mjs +118 -0
  55. package/dist/preview-engine/{chunk-Y6HWYPKX.mjs → chunk-3GNP7TJH.mjs} +3 -3
  56. package/dist/preview-engine/chunk-3UPI4EPV.mjs +69 -0
  57. package/dist/preview-engine/{chunk-6JW37VJA.mjs → chunk-5AUB4Y3L.mjs} +3 -23
  58. package/dist/preview-engine/chunk-5DOD2NVY.mjs +26 -0
  59. package/dist/preview-engine/chunk-5FC7GOWW.mjs +474 -0
  60. package/dist/preview-engine/chunk-5W4AFQP7.mjs +97 -0
  61. package/dist/preview-engine/chunk-63SFBHEH.mjs +1 -0
  62. package/dist/preview-engine/{chunk-25IW7NYO.mjs → chunk-7EPDVSCL.mjs} +1 -1
  63. package/dist/preview-engine/chunk-7EPIRODI.mjs +91 -0
  64. package/dist/preview-engine/chunk-7J2FWGVD.mjs +1 -0
  65. package/dist/preview-engine/chunk-AXHB4J37.mjs +147 -0
  66. package/dist/preview-engine/chunk-AXQZX3TC.mjs +450 -0
  67. package/dist/preview-engine/chunk-B43Z3J7J.mjs +5 -0
  68. package/dist/preview-engine/chunk-BWJS6G7R.mjs +314 -0
  69. package/dist/preview-engine/{chunk-ECPP3UG6.mjs → chunk-E3HC4GRQ.mjs} +3 -23
  70. package/dist/preview-engine/{chunk-AEK5BO3J.mjs → chunk-E4RAFHZM.mjs} +1 -1
  71. package/dist/preview-engine/chunk-ENKKLU7B.mjs +22 -0
  72. package/dist/preview-engine/{chunk-IYVN2QEL.mjs → chunk-FLPSWDX4.mjs} +1 -1
  73. package/dist/preview-engine/{chunk-24DXIKXL.mjs → chunk-FPRXK2WD.mjs} +2 -2
  74. package/dist/preview-engine/chunk-FU7AIAMM.mjs +88 -0
  75. package/dist/preview-engine/{chunk-CBM7B7EW.mjs → chunk-GMGGDADT.mjs} +1 -1
  76. package/dist/preview-engine/chunk-GSFN4WCH.mjs +62 -0
  77. package/dist/preview-engine/chunk-IQC2I5A5.mjs +1 -0
  78. package/dist/preview-engine/chunk-IUPDOATX.mjs +114 -0
  79. package/dist/preview-engine/{chunk-GHMCGTJ2.mjs → chunk-J2R5R7YY.mjs} +3 -23
  80. package/dist/preview-engine/chunk-JAJOZG5P.mjs +1 -0
  81. package/dist/preview-engine/{chunk-XLFYM7KH.mjs → chunk-K773AOF3.mjs} +2 -2
  82. package/dist/preview-engine/{chunk-RJUAM52F.mjs → chunk-L3CHEZMZ.mjs} +3 -23
  83. package/dist/preview-engine/chunk-LBRVQ4GE.mjs +84 -0
  84. package/dist/preview-engine/chunk-LGVEFPOG.mjs +3 -0
  85. package/dist/preview-engine/{chunk-AMBSW6OA.mjs → chunk-NEE3KQTX.mjs} +2 -2
  86. package/dist/preview-engine/chunk-NPD6W3RP.mjs +1 -0
  87. package/dist/preview-engine/{chunk-V6VU46ZG.mjs → chunk-O2RNIQXT.mjs} +1 -1
  88. package/dist/preview-engine/{server-utils-2FAIV45N.mjs → chunk-OCX5AD23.mjs} +1 -1
  89. package/dist/preview-engine/chunk-OJ2PKBXE.mjs +40 -0
  90. package/dist/preview-engine/chunk-OKH2VU2U.mjs +97 -0
  91. package/dist/preview-engine/chunk-PAQNDZQB.mjs +83 -0
  92. package/dist/preview-engine/chunk-PEWYB6WP.mjs +43 -0
  93. package/dist/preview-engine/{chunk-MDDF2GCF.mjs → chunk-PFA427ZC.mjs} +3 -23
  94. package/dist/preview-engine/chunk-PL4IH5V4.mjs +89 -0
  95. package/dist/preview-engine/chunk-PNB3ERR3.mjs +1 -0
  96. package/dist/preview-engine/{chunk-PQD5UPHG.mjs → chunk-PR2BUYCL.mjs} +1 -1
  97. package/dist/preview-engine/{chunk-QYRDQMNB.mjs → chunk-PXT52LEH.mjs} +3 -23
  98. package/dist/preview-engine/{chunk-ZSIJB76A.mjs → chunk-Q2DPNVIA.mjs} +2 -2
  99. package/dist/preview-engine/chunk-Q4Z54DQ7.mjs +1 -0
  100. package/dist/preview-engine/{chunk-6256GQFP.mjs → chunk-QY7MHWZW.mjs} +1 -1
  101. package/dist/preview-engine/chunk-RQLMW6MA.mjs +4 -0
  102. package/dist/preview-engine/chunk-RSMO7NPN.mjs +1 -0
  103. package/dist/preview-engine/chunk-RW2F3XLQ.mjs +90 -0
  104. package/dist/preview-engine/chunk-SGPRLTNF.mjs +52 -0
  105. package/dist/preview-engine/{chunk-Y6FEU4TV.mjs → chunk-SZW5J72T.mjs} +3 -23
  106. package/dist/preview-engine/{chunk-LIHUEYI5.mjs → chunk-VO2R3DWV.mjs} +2 -2
  107. package/dist/preview-engine/{chunk-BJKH76OM.mjs → chunk-VXS5SIEC.mjs} +3 -23
  108. package/dist/preview-engine/chunk-WFGJXCZT.mjs +53 -0
  109. package/dist/preview-engine/chunk-WH5Q2NFN.mjs +32 -0
  110. package/dist/preview-engine/chunk-WSIURGP2.mjs +121 -0
  111. package/dist/preview-engine/{chunk-AWTH2WZO.mjs → chunk-WUKH7BD7.mjs} +1 -1
  112. package/dist/preview-engine/chunk-XC5WZNOY.mjs +1448 -0
  113. package/dist/preview-engine/chunk-YQZOGEPZ.mjs +186 -0
  114. package/dist/preview-engine/{chunk-D3TETPLI.mjs → chunk-ZH5MZQTZ.mjs} +1 -1
  115. package/dist/preview-engine/chunk-ZIIFTWDH.mjs +58 -0
  116. package/dist/preview-engine/{chunk-EQ4QZRXB.mjs → chunk-ZNL4W4DK.mjs} +2 -2
  117. package/dist/preview-engine/effects.mjs +1 -1
  118. package/dist/preview-engine/fonts.mjs +1 -1
  119. package/dist/preview-engine/framefields.mjs +127 -130
  120. package/dist/preview-engine/player.mjs +6 -6
  121. package/dist/preview-engine/renderers-2H7YEUTD.mjs +1 -0
  122. package/dist/preview-engine/renderers-2P6KXWEZ.mjs +1 -0
  123. package/dist/preview-engine/renderers-2SVWAB42.mjs +1 -0
  124. package/dist/preview-engine/renderers-3RC5FDWX.mjs +1 -0
  125. package/dist/preview-engine/renderers-3T7Q4SPP.mjs +1 -0
  126. package/dist/preview-engine/renderers-4DV4REGM.mjs +1 -0
  127. package/dist/preview-engine/renderers-57WDL6XN.mjs +1 -0
  128. package/dist/preview-engine/renderers-6WH7NZCC.mjs +1 -0
  129. package/dist/preview-engine/renderers-7JTNJE7M.mjs +1 -0
  130. package/dist/preview-engine/renderers-7VJN5L3Z.mjs +1 -0
  131. package/dist/preview-engine/{renderers-WLH4HRUE.mjs → renderers-A7VH3ON5.mjs} +1 -1
  132. package/dist/preview-engine/renderers-CQXQHOW2.mjs +1 -0
  133. package/dist/preview-engine/{renderers-2US2NIUG.mjs → renderers-D2EJULOJ.mjs} +3 -23
  134. package/dist/preview-engine/renderers-DXHJAMZR.mjs +1 -0
  135. package/dist/preview-engine/{renderers-W5CVDJVH.mjs → renderers-F55XFVMP.mjs} +1 -1
  136. package/dist/preview-engine/renderers-FWGMNPYB.mjs +1 -0
  137. package/dist/preview-engine/renderers-HXFRTIJD.mjs +1 -0
  138. package/dist/preview-engine/renderers-IWQ3V6AJ.mjs +1 -0
  139. package/dist/preview-engine/renderers-IXGM55XK.mjs +1 -0
  140. package/dist/preview-engine/renderers-KVHUVWSN.mjs +1 -0
  141. package/dist/preview-engine/renderers-KZWGSKRF.mjs +1 -0
  142. package/dist/preview-engine/renderers-LVDUZZ75.mjs +1 -0
  143. package/dist/preview-engine/renderers-M7R2ZJUP.mjs +1 -0
  144. package/dist/preview-engine/renderers-NWHS7N2L.mjs +1 -0
  145. package/dist/preview-engine/{renderers-CAUWP4XH.mjs → renderers-O2DZPBOJ.mjs} +3 -23
  146. package/dist/preview-engine/renderers-OT7D3BUA.mjs +1 -0
  147. package/dist/preview-engine/renderers-P4S7GL64.mjs +104 -0
  148. package/dist/preview-engine/renderers-PMOO7DLX.mjs +1 -0
  149. package/dist/preview-engine/renderers-Q4OFCMXI.mjs +1 -0
  150. package/dist/preview-engine/renderers-QCCPCH73.mjs +1 -0
  151. package/dist/preview-engine/renderers-RJO6H4FC.mjs +1 -0
  152. package/dist/preview-engine/renderers-RRXFJRGI.mjs +1 -0
  153. package/dist/preview-engine/renderers-SCJ6OKTB.mjs +1 -0
  154. package/dist/preview-engine/renderers-T4JMJXWL.mjs +1 -0
  155. package/dist/preview-engine/renderers-TAWT3ZSS.mjs +1 -0
  156. package/dist/preview-engine/{renderers-JQHUBWLL.mjs → renderers-TFZST6WW.mjs} +3 -23
  157. package/dist/preview-engine/renderers-UHTO6BQA.mjs +1 -0
  158. package/dist/preview-engine/renderers-UPKB5OLS.mjs +100 -0
  159. package/dist/preview-engine/renderers-UPTJJE5F.mjs +1 -0
  160. package/dist/preview-engine/renderers-VLMQR3DW.mjs +1 -0
  161. package/dist/preview-engine/renderers-WVTTRCVI.mjs +1 -0
  162. package/dist/preview-engine/renderers-X5PUIPU5.mjs +1 -0
  163. package/dist/preview-engine/renderers-XCMVZ2XG.mjs +35 -0
  164. package/dist/preview-engine/renderers-XHTMRXC5.mjs +1 -0
  165. package/dist/preview-engine/renderers-YDCDY3BR.mjs +1 -0
  166. package/dist/preview-engine/renderers-YECY2YFT.mjs +1 -0
  167. package/dist/preview-engine/renderers-YJNQ4B7B.mjs +1 -0
  168. package/dist/preview-engine/renderers-YMN6QXK7.mjs +1 -0
  169. package/dist/preview-engine/renderers-YZEVPHPQ.mjs +228 -0
  170. package/dist/preview-engine/renderers-Z7YQUFAY.mjs +1 -0
  171. package/dist/preview-engine/renderers-ZANPE3OK.mjs +1 -0
  172. package/dist/preview-engine/renderers-ZJTRANIX.mjs +1 -0
  173. package/dist/preview-engine/signals.mjs +1 -1
  174. package/dist/preview-engine/skia-canvas-QBXAOGPB.mjs +1 -0
  175. package/dist/{program-BmNKgzja.mjs → program-Cc5AsBHz.mjs} +93 -2335
  176. package/dist/program-Cc5AsBHz.mjs.map +1 -0
  177. package/dist/renderer/index.d.mts +2 -2
  178. package/dist/renderer/index.mjs +3 -4
  179. package/dist/renderer-1VSi7Vum.mjs +5 -0
  180. package/dist/renderer-4BlpUHQT.mjs +5 -0
  181. package/dist/{renderer-Bv21DbWy.mjs → renderer-9L0p8IT3.mjs} +3 -1
  182. package/dist/renderer-AzSX2-mZ.mjs +5 -0
  183. package/dist/renderer-B-cxK24t.mjs +5 -0
  184. package/dist/{renderer-DxTs4Iyi.mjs → renderer-B1Zn91xt.mjs} +40 -142
  185. package/dist/renderer-B1Zn91xt.mjs.map +1 -0
  186. package/dist/renderer-B5d5oM_D.mjs +5 -0
  187. package/dist/renderer-B8BdNjaN.mjs +5 -0
  188. package/dist/{renderer-Bhdf90Zq.mjs → renderer-BI5rvAyo.mjs} +51 -163
  189. package/dist/renderer-BI5rvAyo.mjs.map +1 -0
  190. package/dist/renderer-BKEfeg-4.mjs +5 -0
  191. package/dist/{renderer-CI7sG_cv.mjs → renderer-BKf1qDwL.mjs} +83 -266
  192. package/dist/renderer-BKf1qDwL.mjs.map +1 -0
  193. package/dist/renderer-BLLOkeFB.mjs +5 -0
  194. package/dist/renderer-BSitV56h.mjs +268 -0
  195. package/dist/renderer-BSitV56h.mjs.map +1 -0
  196. package/dist/renderer-BTvov1NH.mjs +5 -0
  197. package/dist/renderer-BVun05IK.mjs +5 -0
  198. package/dist/{renderer-B2ieylQ3.mjs → renderer-BWVsBB3t.mjs} +56 -167
  199. package/dist/renderer-BWVsBB3t.mjs.map +1 -0
  200. package/dist/{renderer-ChdLYS-G.mjs → renderer-BXQQxeNC.mjs} +20 -87
  201. package/dist/renderer-BXQQxeNC.mjs.map +1 -0
  202. package/dist/renderer-B_3h5nhy.mjs +5 -0
  203. package/dist/renderer-BaZjoFYK.mjs +5 -0
  204. package/dist/{renderer-CfC_aiew.mjs → renderer-BaaOR3Ao.mjs} +57 -192
  205. package/dist/renderer-BaaOR3Ao.mjs.map +1 -0
  206. package/dist/{renderer-bZU_ndxf.mjs → renderer-BajIOuZH.mjs} +2 -2
  207. package/dist/{renderer-bZU_ndxf.mjs.map → renderer-BajIOuZH.mjs.map} +1 -1
  208. package/dist/{renderer-CWTpc4ff.mjs → renderer-Bb8T5eRX.mjs} +76 -210
  209. package/dist/renderer-Bb8T5eRX.mjs.map +1 -0
  210. package/dist/{renderer-D2nCGcjv.mjs → renderer-Bc6J0iVG.mjs} +3 -3
  211. package/dist/{renderer-D2nCGcjv.mjs.map → renderer-Bc6J0iVG.mjs.map} +1 -1
  212. package/dist/renderer-BcApaCVe.mjs +5 -0
  213. package/dist/{renderer-D_1oDOCP.mjs → renderer-Bg7647VN.mjs} +14 -69
  214. package/dist/renderer-Bg7647VN.mjs.map +1 -0
  215. package/dist/{renderer-ho_jXJ0H.mjs → renderer-BhKIZDsm.mjs} +23 -117
  216. package/dist/renderer-BhKIZDsm.mjs.map +1 -0
  217. package/dist/{renderer-dncoIVdd.mjs → renderer-BhhSyHKF.mjs} +3 -1
  218. package/dist/{renderer-CXn5HAnK.mjs → renderer-Br9BOkQs.mjs} +10 -16
  219. package/dist/renderer-Br9BOkQs.mjs.map +1 -0
  220. package/dist/{renderer-BTdOMMEx.d.mts → renderer-Bs_f_App.d.mts} +2 -2
  221. package/dist/{renderer-BTdOMMEx.d.mts.map → renderer-Bs_f_App.d.mts.map} +1 -1
  222. package/dist/{renderer-DZGtBUCx.mjs → renderer-BygIYH8s.mjs} +35 -185
  223. package/dist/renderer-BygIYH8s.mjs.map +1 -0
  224. package/dist/{renderer-Bv6q84TU.mjs → renderer-C--Dqe-3.mjs} +61 -208
  225. package/dist/renderer-C--Dqe-3.mjs.map +1 -0
  226. package/dist/renderer-C14mKYCw.mjs +5 -0
  227. package/dist/{renderer-CnXW28b9.mjs → renderer-C27RfwXN.mjs} +85 -279
  228. package/dist/renderer-C27RfwXN.mjs.map +1 -0
  229. package/dist/{renderer-Dy0utCl7.mjs → renderer-C5caYAA3.mjs} +10 -17
  230. package/dist/renderer-C5caYAA3.mjs.map +1 -0
  231. package/dist/{renderer-Bfgd4N0O.mjs → renderer-C5zpaQed.mjs} +9 -16
  232. package/dist/renderer-C5zpaQed.mjs.map +1 -0
  233. package/dist/{renderer-cgxO2xN6.mjs → renderer-C7UZLOYk.mjs} +10 -17
  234. package/dist/renderer-C7UZLOYk.mjs.map +1 -0
  235. package/dist/{renderer-BJ1aTkZf.mjs → renderer-C92mwhZz.mjs} +99 -282
  236. package/dist/renderer-C92mwhZz.mjs.map +1 -0
  237. package/dist/{renderer-CepMDQ06.mjs → renderer-CAJe9eLS.mjs} +19 -106
  238. package/dist/renderer-CAJe9eLS.mjs.map +1 -0
  239. package/dist/renderer-CFqhAXkH.mjs +5 -0
  240. package/dist/renderer-CK-spD4j.mjs +5 -0
  241. package/dist/renderer-CLLzQTIk.mjs +5 -0
  242. package/dist/{renderer-CtyD_Xju.mjs → renderer-CMsjnZ0G.mjs} +59 -194
  243. package/dist/renderer-CMsjnZ0G.mjs.map +1 -0
  244. package/dist/renderer-COwa6xlF.mjs +5 -0
  245. package/dist/renderer-CQPuuoVf.mjs +6 -0
  246. package/dist/renderer-CRd-cDqZ.mjs +5 -0
  247. package/dist/renderer-CTVnQAUm.mjs +5 -0
  248. package/dist/renderer-CbiEBSGx.mjs +5 -0
  249. package/dist/renderer-Cl7PruQ1.mjs +5 -0
  250. package/dist/renderer-CmuGGUDR.mjs +5 -0
  251. package/dist/renderer-CoGP4Mvf.mjs +148 -0
  252. package/dist/renderer-CoGP4Mvf.mjs.map +1 -0
  253. package/dist/renderer-CoNRrfqx.mjs +5 -0
  254. package/dist/{renderer-BREIjsUU.mjs → renderer-CrAqu3Rg.mjs} +14 -40
  255. package/dist/renderer-CrAqu3Rg.mjs.map +1 -0
  256. package/dist/renderer-CvIGa0mE.mjs +5 -0
  257. package/dist/renderer-CwMDPv0p.mjs +5 -0
  258. package/dist/{renderer-BIIWCg_J.mjs → renderer-CydWqyf0.mjs} +11 -18
  259. package/dist/renderer-CydWqyf0.mjs.map +1 -0
  260. package/dist/{renderer-bsWnRNpJ.mjs → renderer-CzBQgGD2.mjs} +29 -98
  261. package/dist/renderer-CzBQgGD2.mjs.map +1 -0
  262. package/dist/{renderer-CdciwwMI.mjs → renderer-D0aZNkQE.mjs} +161 -457
  263. package/dist/renderer-D0aZNkQE.mjs.map +1 -0
  264. package/dist/{renderer-B8UaFNqb.mjs → renderer-D2BRlqof.mjs} +62 -209
  265. package/dist/renderer-D2BRlqof.mjs.map +1 -0
  266. package/dist/{renderer-B8-kzZdP.mjs → renderer-D2FFvxsq.mjs} +41 -140
  267. package/dist/renderer-D2FFvxsq.mjs.map +1 -0
  268. package/dist/{renderer-Ctk2zzfy.mjs → renderer-D8-zNjyz.mjs} +57 -197
  269. package/dist/renderer-D8-zNjyz.mjs.map +1 -0
  270. package/dist/{renderer-DML9qpmS.mjs → renderer-DDqwds9R.mjs} +52 -202
  271. package/dist/renderer-DDqwds9R.mjs.map +1 -0
  272. package/dist/{renderer-BSaYG8aw.mjs → renderer-DGtBOdst.mjs} +3 -1
  273. package/dist/{renderer-CzPWB0Ss.mjs → renderer-DKqG9Lek.mjs} +13 -45
  274. package/dist/renderer-DKqG9Lek.mjs.map +1 -0
  275. package/dist/renderer-DOHbhGPu.mjs +5 -0
  276. package/dist/renderer-DOmA6IKc.mjs +5 -0
  277. package/dist/{renderer-DirxsOjq.mjs → renderer-DUhXH5Tz.mjs} +80 -258
  278. package/dist/renderer-DUhXH5Tz.mjs.map +1 -0
  279. package/dist/{renderer-kwmlLQOO.mjs → renderer-DVnVnS3c.mjs} +4 -4
  280. package/dist/{renderer-kwmlLQOO.mjs.map → renderer-DVnVnS3c.mjs.map} +1 -1
  281. package/dist/{renderer-CaaOKMSd.mjs → renderer-DWEvQ-hQ.mjs} +63 -190
  282. package/dist/renderer-DWEvQ-hQ.mjs.map +1 -0
  283. package/dist/renderer-DX2qEJTL.mjs +2173 -0
  284. package/dist/renderer-DX2qEJTL.mjs.map +1 -0
  285. package/dist/{renderer-1VuQTY1Z.mjs → renderer-DX8aBDqR.mjs} +236 -96
  286. package/dist/renderer-DX8aBDqR.mjs.map +1 -0
  287. package/dist/{renderer-DEJwPRkR.mjs → renderer-DYIPWN_B.mjs} +15 -51
  288. package/dist/renderer-DYIPWN_B.mjs.map +1 -0
  289. package/dist/{renderer-Djlb4TLO.mjs → renderer-DZD2G76E.mjs} +8 -15
  290. package/dist/renderer-DZD2G76E.mjs.map +1 -0
  291. package/dist/{renderer-WSGuj_V6.mjs → renderer-Da06_9FZ.mjs} +4 -3
  292. package/dist/{renderer-WSGuj_V6.mjs.map → renderer-Da06_9FZ.mjs.map} +1 -1
  293. package/dist/{renderer-BM05sB8m.mjs → renderer-DkyXqrQ6.mjs} +11 -74
  294. package/dist/renderer-DkyXqrQ6.mjs.map +1 -0
  295. package/dist/renderer-DmCWc4JL.mjs +5 -0
  296. package/dist/{renderer-BDbTWSpP.mjs → renderer-Dno-fujw.mjs} +58 -234
  297. package/dist/renderer-Dno-fujw.mjs.map +1 -0
  298. package/dist/{renderer-D2XD4QYk.mjs → renderer-DoYdfDEA.mjs} +34 -147
  299. package/dist/renderer-DoYdfDEA.mjs.map +1 -0
  300. package/dist/{renderer-_uvdg48N.mjs → renderer-DqjITuT-.mjs} +24 -93
  301. package/dist/renderer-DqjITuT-.mjs.map +1 -0
  302. package/dist/renderer-DuuOlYIG.mjs +3 -0
  303. package/dist/{renderer-DIgsilTw.mjs → renderer-Dy-DBU0X.mjs} +5 -4
  304. package/dist/{renderer-DIgsilTw.mjs.map → renderer-Dy-DBU0X.mjs.map} +1 -1
  305. package/dist/{renderer-CpkiHRhh.mjs → renderer-DyzNM721.mjs} +17 -99
  306. package/dist/renderer-DyzNM721.mjs.map +1 -0
  307. package/dist/{renderer-C_TPMHiH.mjs → renderer-DzrM1KMN.mjs} +81 -221
  308. package/dist/renderer-DzrM1KMN.mjs.map +1 -0
  309. package/dist/{renderer-Bc04fivZ.mjs → renderer-FHyZn0em.mjs} +99 -287
  310. package/dist/renderer-FHyZn0em.mjs.map +1 -0
  311. package/dist/renderer-GSFP7v2z.mjs +3 -0
  312. package/dist/{renderer-DpGc-N3G.mjs → renderer-NXdm6HLb.mjs} +24 -104
  313. package/dist/renderer-NXdm6HLb.mjs.map +1 -0
  314. package/dist/renderer-OLaYikwi.mjs +5 -0
  315. package/dist/renderer-Q75RC5Uz.mjs +5 -0
  316. package/dist/renderer-T0LJ4Po3.mjs +5 -0
  317. package/dist/renderer-VuXt1hfq.mjs +5 -0
  318. package/dist/{renderer-BfAWZziM.mjs → renderer-_1xGBbxn.mjs} +58 -225
  319. package/dist/renderer-_1xGBbxn.mjs.map +1 -0
  320. package/dist/{renderer-B1YMwl2B.mjs → renderer-c4AorKyw.mjs} +3 -1
  321. package/dist/renderer-hY_2WLt3.mjs +5 -0
  322. package/dist/{renderer-BhZZEyFX.mjs → renderer-mp1NN5zk.mjs} +4 -4
  323. package/dist/{renderer-BhZZEyFX.mjs.map → renderer-mp1NN5zk.mjs.map} +1 -1
  324. package/dist/{renderer-D7zvPHKn.mjs → renderer-qsg-JMuN.mjs} +18 -28
  325. package/dist/renderer-qsg-JMuN.mjs.map +1 -0
  326. package/dist/{renderer-vqkKWqa5.mjs → renderer-timEC0Gl.mjs} +23 -107
  327. package/dist/renderer-timEC0Gl.mjs.map +1 -0
  328. package/dist/renderer-y4EqE06a.mjs +5 -0
  329. package/dist/{renderers-CP8CFWDs-DwQTx8S7.mjs → renderers-CP8CFWDs-CMYe4kvZ.mjs} +4 -4
  330. package/dist/{renderers-CP8CFWDs-DwQTx8S7.mjs.map → renderers-CP8CFWDs-CMYe4kvZ.mjs.map} +1 -1
  331. package/dist/signals/index.d.mts +6 -6
  332. package/dist/signals/index.mjs +8 -8
  333. package/dist/{signals-Bv1OweKd.mjs → signals-DGRs6ddH.mjs} +4 -4
  334. package/dist/{signals-Bv1OweKd.mjs.map → signals-DGRs6ddH.mjs.map} +1 -1
  335. package/package.json +55 -55
  336. package/dist/client-CwRhflHE.mjs +0 -66
  337. package/dist/client-CwRhflHE.mjs.map +0 -1
  338. package/dist/dist-BAVZdFEJ.mjs.map +0 -1
  339. package/dist/dist-BYqNNwsl.mjs.map +0 -1
  340. package/dist/dist-CbG3QxDw.mjs.map +0 -1
  341. package/dist/dist-Cxi68OuY.mjs.map +0 -1
  342. package/dist/dist-cjs--lfMLs3U.mjs +0 -66
  343. package/dist/dist-cjs--lfMLs3U.mjs.map +0 -1
  344. package/dist/dist-cjs--pxyGFw2.mjs +0 -43
  345. package/dist/dist-cjs--pxyGFw2.mjs.map +0 -1
  346. package/dist/dist-cjs-3pon9kTt.mjs +0 -6
  347. package/dist/dist-cjs-BDpO-TH_.mjs +0 -51
  348. package/dist/dist-cjs-BDpO-TH_.mjs.map +0 -1
  349. package/dist/dist-cjs-BiKQozdJ.mjs +0 -64
  350. package/dist/dist-cjs-BiKQozdJ.mjs.map +0 -1
  351. package/dist/dist-cjs-BmyyWYWv.mjs +0 -153
  352. package/dist/dist-cjs-BmyyWYWv.mjs.map +0 -1
  353. package/dist/dist-cjs-CND_ghfH.mjs +0 -98
  354. package/dist/dist-cjs-CND_ghfH.mjs.map +0 -1
  355. package/dist/dist-cjs-CQwmMllY.mjs +0 -137
  356. package/dist/dist-cjs-CQwmMllY.mjs.map +0 -1
  357. package/dist/dist-cjs-CgFzrgj8.mjs +0 -85
  358. package/dist/dist-cjs-CgFzrgj8.mjs.map +0 -1
  359. package/dist/dist-cjs-CsU2sZoX.mjs +0 -323
  360. package/dist/dist-cjs-CsU2sZoX.mjs.map +0 -1
  361. package/dist/dist-cjs-DJ8fcQEe.mjs +0 -9069
  362. package/dist/dist-cjs-DJ8fcQEe.mjs.map +0 -1
  363. package/dist/dist-cjs-DT2jJlcK.mjs +0 -181
  364. package/dist/dist-cjs-DT2jJlcK.mjs.map +0 -1
  365. package/dist/dist-cjs-DjzmP0-x.mjs +0 -1091
  366. package/dist/dist-cjs-DjzmP0-x.mjs.map +0 -1
  367. package/dist/dist-cjs-DzjrlfbE.mjs +0 -437
  368. package/dist/dist-cjs-DzjrlfbE.mjs.map +0 -1
  369. package/dist/dist-cjs-M-8QOgS_.mjs +0 -209
  370. package/dist/dist-cjs-M-8QOgS_.mjs.map +0 -1
  371. package/dist/dist-cjs-TsA8LFXC.mjs +0 -48
  372. package/dist/dist-cjs-TsA8LFXC.mjs.map +0 -1
  373. package/dist/dist-cjs-agQl9T8M.mjs +0 -5015
  374. package/dist/dist-cjs-agQl9T8M.mjs.map +0 -1
  375. package/dist/event-streams-BaNGaLxh.mjs +0 -204
  376. package/dist/event-streams-BaNGaLxh.mjs.map +0 -1
  377. package/dist/fonts-C0W6TgJk.mjs.map +0 -1
  378. package/dist/index-9B8CJowc.d.mts.map +0 -1
  379. package/dist/index-CYGpSVsf.d.mts.map +0 -1
  380. package/dist/index-DDEPvMww.d.mts.map +0 -1
  381. package/dist/index-DnWsbbuZ.d.mts.map +0 -1
  382. package/dist/package-XpCRbTOA.mjs +0 -6
  383. package/dist/package-XpCRbTOA.mjs.map +0 -1
  384. package/dist/preview-BV2C4Fk6.mjs.map +0 -1
  385. package/dist/preview-engine/chunk-36YGYLKD.mjs +0 -58
  386. package/dist/preview-engine/chunk-7O24H4YT.mjs +0 -117
  387. package/dist/preview-engine/chunk-AUFSM5KI.mjs +0 -141
  388. package/dist/preview-engine/chunk-BHFI3Y4T.mjs +0 -1
  389. package/dist/preview-engine/chunk-BQ65MU6H.mjs +0 -138
  390. package/dist/preview-engine/chunk-BWDARDO6.mjs +0 -117
  391. package/dist/preview-engine/chunk-DLXQDDIN.mjs +0 -46
  392. package/dist/preview-engine/chunk-EJGLUZMW.mjs +0 -1
  393. package/dist/preview-engine/chunk-FE6RSVKZ.mjs +0 -73
  394. package/dist/preview-engine/chunk-FGHOHCFG.mjs +0 -110
  395. package/dist/preview-engine/chunk-HPIULG7P.mjs +0 -111
  396. package/dist/preview-engine/chunk-HRIKNYPF.mjs +0 -60
  397. package/dist/preview-engine/chunk-IMV5SBQV.mjs +0 -1
  398. package/dist/preview-engine/chunk-JPXQPP6J.mjs +0 -1
  399. package/dist/preview-engine/chunk-K52S5DJX.mjs +0 -109
  400. package/dist/preview-engine/chunk-L3IEJZ5S.mjs +0 -474
  401. package/dist/preview-engine/chunk-M7NMFDJ3.mjs +0 -3
  402. package/dist/preview-engine/chunk-MJM3NFEC.mjs +0 -315
  403. package/dist/preview-engine/chunk-NFAGEP43.mjs +0 -1448
  404. package/dist/preview-engine/chunk-NRHSNPZV.mjs +0 -182
  405. package/dist/preview-engine/chunk-OWOSYNMF.mjs +0 -104
  406. package/dist/preview-engine/chunk-Q66QQI6N.mjs +0 -8
  407. package/dist/preview-engine/chunk-QGBSLNFI.mjs +0 -52
  408. package/dist/preview-engine/chunk-QM3XFEJN.mjs +0 -63
  409. package/dist/preview-engine/chunk-R3ZH7YF3.mjs +0 -89
  410. package/dist/preview-engine/chunk-R6YNSBKL.mjs +0 -108
  411. package/dist/preview-engine/chunk-S4CSX6K5.mjs +0 -610
  412. package/dist/preview-engine/chunk-SNYAHQ25.mjs +0 -186
  413. package/dist/preview-engine/chunk-SRT2OCQW.mjs +0 -1
  414. package/dist/preview-engine/chunk-SUUUYXXT.mjs +0 -1
  415. package/dist/preview-engine/chunk-T6COGNOW.mjs +0 -134
  416. package/dist/preview-engine/chunk-XFYXT76H.mjs +0 -52
  417. package/dist/preview-engine/chunk-XUM42I4R.mjs +0 -1
  418. package/dist/preview-engine/chunk-YITWSOG4.mjs +0 -103
  419. package/dist/preview-engine/chunk-ZDCA6NVT.mjs +0 -82
  420. package/dist/preview-engine/chunk-ZNGOAGAI.mjs +0 -1
  421. package/dist/preview-engine/renderers-27Q5X3U6.mjs +0 -1
  422. package/dist/preview-engine/renderers-4AHH6BHF.mjs +0 -1
  423. package/dist/preview-engine/renderers-5BV6JGTU.mjs +0 -248
  424. package/dist/preview-engine/renderers-6PRVCTYV.mjs +0 -1
  425. package/dist/preview-engine/renderers-76PQY2SO.mjs +0 -1
  426. package/dist/preview-engine/renderers-7X2W6QWX.mjs +0 -1
  427. package/dist/preview-engine/renderers-B52QT6MT.mjs +0 -55
  428. package/dist/preview-engine/renderers-BE6RVJSE.mjs +0 -1
  429. package/dist/preview-engine/renderers-BMM2BH56.mjs +0 -1
  430. package/dist/preview-engine/renderers-CHOGQHVQ.mjs +0 -1
  431. package/dist/preview-engine/renderers-CRKRWR2Y.mjs +0 -1
  432. package/dist/preview-engine/renderers-DEYDSGJX.mjs +0 -1
  433. package/dist/preview-engine/renderers-DZTNRCR7.mjs +0 -1
  434. package/dist/preview-engine/renderers-ELO3KWTK.mjs +0 -1
  435. package/dist/preview-engine/renderers-EOJMPPAQ.mjs +0 -1
  436. package/dist/preview-engine/renderers-F2KJNDWA.mjs +0 -124
  437. package/dist/preview-engine/renderers-FCV4COVB.mjs +0 -1
  438. package/dist/preview-engine/renderers-G5KQISVL.mjs +0 -1
  439. package/dist/preview-engine/renderers-GJSUN5HU.mjs +0 -1
  440. package/dist/preview-engine/renderers-GMX2ZQDG.mjs +0 -1
  441. package/dist/preview-engine/renderers-GXCRINGC.mjs +0 -1
  442. package/dist/preview-engine/renderers-IHKORHMT.mjs +0 -1
  443. package/dist/preview-engine/renderers-JA4SLMG3.mjs +0 -1
  444. package/dist/preview-engine/renderers-JLN77CFZ.mjs +0 -1
  445. package/dist/preview-engine/renderers-KBFW7B5F.mjs +0 -1
  446. package/dist/preview-engine/renderers-LJRJMFCR.mjs +0 -1
  447. package/dist/preview-engine/renderers-LPAPZ5QS.mjs +0 -1
  448. package/dist/preview-engine/renderers-NQUDQEHY.mjs +0 -1
  449. package/dist/preview-engine/renderers-NS3AIJVG.mjs +0 -1
  450. package/dist/preview-engine/renderers-NSY2SDIE.mjs +0 -1
  451. package/dist/preview-engine/renderers-PW4OJWHF.mjs +0 -120
  452. package/dist/preview-engine/renderers-PWLWOZY4.mjs +0 -1
  453. package/dist/preview-engine/renderers-Q3MD34JN.mjs +0 -1
  454. package/dist/preview-engine/renderers-RXGNA2Q7.mjs +0 -1
  455. package/dist/preview-engine/renderers-TVTQ2R74.mjs +0 -1
  456. package/dist/preview-engine/renderers-VTTGFO55.mjs +0 -1
  457. package/dist/preview-engine/renderers-W3VVM5HB.mjs +0 -1
  458. package/dist/preview-engine/renderers-WG7QBD4D.mjs +0 -1
  459. package/dist/preview-engine/renderers-WLLJFZTF.mjs +0 -1
  460. package/dist/preview-engine/renderers-WN4SYFCU.mjs +0 -1
  461. package/dist/preview-engine/renderers-WSMLLSWX.mjs +0 -1
  462. package/dist/preview-engine/renderers-XFBSGTHU.mjs +0 -1
  463. package/dist/preview-engine/renderers-XFC6ZPO5.mjs +0 -1
  464. package/dist/preview-engine/renderers-XUHRY3XH.mjs +0 -1
  465. package/dist/preview-engine/renderers-YAOB5XU6.mjs +0 -1
  466. package/dist/preview-engine/renderers-YTB4FOHT.mjs +0 -1
  467. package/dist/preview-engine/renderers-ZIMBODX6.mjs +0 -1
  468. package/dist/program-BmNKgzja.mjs.map +0 -1
  469. package/dist/renderer-1VuQTY1Z.mjs.map +0 -1
  470. package/dist/renderer-6oMSare3.mjs +0 -3
  471. package/dist/renderer-B1ComPb2.mjs +0 -3
  472. package/dist/renderer-B2XzjK0z.mjs +0 -3
  473. package/dist/renderer-B2ieylQ3.mjs.map +0 -1
  474. package/dist/renderer-B8-kzZdP.mjs.map +0 -1
  475. package/dist/renderer-B8UaFNqb.mjs.map +0 -1
  476. package/dist/renderer-BDbTWSpP.mjs.map +0 -1
  477. package/dist/renderer-BIIWCg_J.mjs.map +0 -1
  478. package/dist/renderer-BJ1aTkZf.mjs.map +0 -1
  479. package/dist/renderer-BM05sB8m.mjs.map +0 -1
  480. package/dist/renderer-BQ5Bz5D0.mjs +0 -3
  481. package/dist/renderer-BREIjsUU.mjs.map +0 -1
  482. package/dist/renderer-BTu2EVhF.mjs +0 -3
  483. package/dist/renderer-BZcn_iBl.mjs +0 -3
  484. package/dist/renderer-Bc04fivZ.mjs.map +0 -1
  485. package/dist/renderer-BfAWZziM.mjs.map +0 -1
  486. package/dist/renderer-BfJSUjPN.mjs +0 -3
  487. package/dist/renderer-Bfgd4N0O.mjs.map +0 -1
  488. package/dist/renderer-Bhdf90Zq.mjs.map +0 -1
  489. package/dist/renderer-Bp6sDMa6.mjs +0 -3
  490. package/dist/renderer-Bt7_sb_Y.mjs +0 -3
  491. package/dist/renderer-Bv6q84TU.mjs.map +0 -1
  492. package/dist/renderer-C-H680_l.mjs +0 -3
  493. package/dist/renderer-C606ZPUn.mjs +0 -3
  494. package/dist/renderer-C9jyKn1i.mjs +0 -3
  495. package/dist/renderer-CDLrNgfo.mjs +0 -3
  496. package/dist/renderer-CERfcxgv.mjs +0 -3
  497. package/dist/renderer-CG5PzNkv.mjs +0 -3
  498. package/dist/renderer-CI7sG_cv.mjs.map +0 -1
  499. package/dist/renderer-CPoIMVdk.mjs +0 -3
  500. package/dist/renderer-CQdVj2JS.mjs +0 -3
  501. package/dist/renderer-CQiTodg9.mjs +0 -337
  502. package/dist/renderer-CQiTodg9.mjs.map +0 -1
  503. package/dist/renderer-CWTpc4ff.mjs.map +0 -1
  504. package/dist/renderer-CXn5HAnK.mjs.map +0 -1
  505. package/dist/renderer-CZgB5st8.mjs +0 -3
  506. package/dist/renderer-C_TPMHiH.mjs.map +0 -1
  507. package/dist/renderer-Ca7L1EOp.mjs +0 -3
  508. package/dist/renderer-CaaOKMSd.mjs.map +0 -1
  509. package/dist/renderer-CdciwwMI.mjs.map +0 -1
  510. package/dist/renderer-CepMDQ06.mjs.map +0 -1
  511. package/dist/renderer-CfC_aiew.mjs.map +0 -1
  512. package/dist/renderer-ChdLYS-G.mjs.map +0 -1
  513. package/dist/renderer-CkykdR_D.mjs +0 -3
  514. package/dist/renderer-Cl6GkeHx.mjs +0 -3
  515. package/dist/renderer-ClcjrFyo.mjs +0 -3
  516. package/dist/renderer-CnXW28b9.mjs.map +0 -1
  517. package/dist/renderer-CpkiHRhh.mjs.map +0 -1
  518. package/dist/renderer-CtVkU_GA.mjs +0 -44
  519. package/dist/renderer-CtVkU_GA.mjs.map +0 -1
  520. package/dist/renderer-Ctk2zzfy.mjs.map +0 -1
  521. package/dist/renderer-CtyD_Xju.mjs.map +0 -1
  522. package/dist/renderer-CySUP_wk.mjs +0 -3
  523. package/dist/renderer-CzPWB0Ss.mjs.map +0 -1
  524. package/dist/renderer-D2XD4QYk.mjs.map +0 -1
  525. package/dist/renderer-D2l_Odyg.mjs +0 -3
  526. package/dist/renderer-D7zvPHKn.mjs.map +0 -1
  527. package/dist/renderer-D9NnIx7o.mjs +0 -3
  528. package/dist/renderer-DCPCYySt.mjs +0 -3
  529. package/dist/renderer-DEJwPRkR.mjs.map +0 -1
  530. package/dist/renderer-DIkpJEOZ.mjs +0 -3
  531. package/dist/renderer-DML9qpmS.mjs.map +0 -1
  532. package/dist/renderer-DNSXPkf_.mjs +0 -3
  533. package/dist/renderer-DP-CvZ_Z.mjs +0 -3
  534. package/dist/renderer-DZGtBUCx.mjs.map +0 -1
  535. package/dist/renderer-D_1oDOCP.mjs.map +0 -1
  536. package/dist/renderer-DeXb8R6h.mjs +0 -3
  537. package/dist/renderer-DezO-ZaP.mjs +0 -4
  538. package/dist/renderer-DhXe04fC.mjs +0 -3
  539. package/dist/renderer-DirxsOjq.mjs.map +0 -1
  540. package/dist/renderer-Djlb4TLO.mjs.map +0 -1
  541. package/dist/renderer-DnH3SI7w.mjs +0 -3
  542. package/dist/renderer-DpGc-N3G.mjs.map +0 -1
  543. package/dist/renderer-Dpw4oi33.mjs +0 -3
  544. package/dist/renderer-DxTs4Iyi.mjs.map +0 -1
  545. package/dist/renderer-Dy0utCl7.mjs.map +0 -1
  546. package/dist/renderer-Md-ytU0v.mjs +0 -3
  547. package/dist/renderer-RKsXlF_0.mjs +0 -23900
  548. package/dist/renderer-RKsXlF_0.mjs.map +0 -1
  549. package/dist/renderer-U-bhWO9Q.mjs +0 -3
  550. package/dist/renderer-_uvdg48N.mjs.map +0 -1
  551. package/dist/renderer-bsWnRNpJ.mjs.map +0 -1
  552. package/dist/renderer-cgxO2xN6.mjs.map +0 -1
  553. package/dist/renderer-d5-F_48R.mjs +0 -3
  554. package/dist/renderer-ho_jXJ0H.mjs.map +0 -1
  555. package/dist/renderer-vqkKWqa5.mjs.map +0 -1
  556. package/dist/renderer-zA5okHds.mjs +0 -3
  557. package/dist/signin-Db08vl-g.mjs +0 -865
  558. package/dist/signin-Db08vl-g.mjs.map +0 -1
  559. package/dist/sso-oidc-CpLz_lIu.mjs +0 -1051
  560. package/dist/sso-oidc-CpLz_lIu.mjs.map +0 -1
  561. package/dist/sts-BQefGuml.mjs +0 -6
  562. package/dist/sts-Dgl0kH-t.mjs +0 -1395
  563. package/dist/sts-Dgl0kH-t.mjs.map +0 -1
  564. /package/dist/{renderer-C2n-EHxg.mjs → renderer-B-BcgA6d.mjs} +0 -0
@@ -1,6 +1,7 @@
1
- import { n as defineRenderer } from "./renderer-CtVkU_GA.mjs";
1
+ import { n as defineRenderer } from "./renderer-BSitV56h.mjs";
2
+ import { a as createFullscreenPipeline, i as beginTargetPass, l as fragmentBindGroupLayout, o as drawChildToTexture, r as STRAIGHT_ALPHA_BLEND, t as FULLSCREEN_QUAD_WGSL } from "./gpu-DG3gI88-.mjs";
2
3
 
3
- //#region ../../nodes/node-liquify/dist/renderers-DNMUGgLa.mjs
4
+ //#region ../../nodes/node-liquify/dist/renderers-C4bNr5l9.mjs
4
5
  const MAX_OPERATIONS = 1024;
5
6
  const LIQUIFY_SHADER = `
6
7
  struct LiquifyOpData {
@@ -25,27 +26,7 @@ struct LiquifyUniforms {
25
26
  @group(0) @binding(0) var<uniform> u : LiquifyUniforms;
26
27
  @group(1) @binding(0) var tex : texture_2d<f32>;
27
28
  @group(1) @binding(1) var samp : sampler;
28
-
29
- struct VSOut {
30
- @builtin(position) pos : vec4<f32>,
31
- @location(0) uv : vec2<f32>,
32
- };
33
-
34
- @vertex fn vs(@builtin(vertex_index) vi: u32) -> VSOut {
35
- var pos = array<vec2<f32>, 4>(
36
- vec2<f32>(-1.0, 1.0),
37
- vec2<f32>(1.0, 1.0),
38
- vec2<f32>(-1.0, -1.0),
39
- vec2<f32>(1.0, -1.0)
40
- );
41
- var uv = array<vec2<f32>, 4>(
42
- vec2<f32>(0.0, 0.0),
43
- vec2<f32>(1.0, 0.0),
44
- vec2<f32>(0.0, 1.0),
45
- vec2<f32>(1.0, 1.0)
46
- );
47
- return VSOut(vec4<f32>(pos[vi], 0.0, 1.0), uv[vi]);
48
- }
29
+ ${FULLSCREEN_QUAD_WGSL}
49
30
 
50
31
  const PI = 3.141592653589793;
51
32
 
@@ -110,26 +91,8 @@ function getLiquifyResources(device, format) {
110
91
  let layouts = deviceResourceCache.get(device);
111
92
  if (!layouts) {
112
93
  layouts = {
113
- uniformLayout: device.createBindGroupLayout({
114
- label: "LiquifyUniformLayout",
115
- entries: [{
116
- binding: 0,
117
- visibility: GPUShaderStage.FRAGMENT,
118
- buffer: { type: "uniform" }
119
- }]
120
- }),
121
- singleTextureLayout: device.createBindGroupLayout({
122
- label: "LiquifyTextureLayout",
123
- entries: [{
124
- binding: 0,
125
- visibility: GPUShaderStage.FRAGMENT,
126
- texture: { sampleType: "float" }
127
- }, {
128
- binding: 1,
129
- visibility: GPUShaderStage.FRAGMENT,
130
- sampler: { type: "filtering" }
131
- }]
132
- }),
94
+ uniformLayout: fragmentBindGroupLayout(device, ["uniform"], "LiquifyUniformLayout"),
95
+ singleTextureLayout: fragmentBindGroupLayout(device, ["texture", "sampler"], "LiquifyTextureLayout"),
133
96
  pipelineCache: /* @__PURE__ */ new Map()
134
97
  };
135
98
  deviceResourceCache.set(device, layouts);
@@ -141,33 +104,12 @@ function getLiquifyResources(device, format) {
141
104
  label: "liquify.wgsl",
142
105
  code: LIQUIFY_SHADER
143
106
  });
144
- pipeline = device.createRenderPipeline({
107
+ pipeline = createFullscreenPipeline(device, {
145
108
  label: `LiquifyPipeline_${format}`,
146
- layout: device.createPipelineLayout({ bindGroupLayouts: [layouts.uniformLayout, layouts.singleTextureLayout] }),
147
- vertex: {
148
- module,
149
- entryPoint: "vs"
150
- },
151
- fragment: {
152
- module,
153
- entryPoint: "fs",
154
- targets: [{
155
- format,
156
- blend: {
157
- color: {
158
- srcFactor: "src-alpha",
159
- dstFactor: "one-minus-src-alpha",
160
- operation: "add"
161
- },
162
- alpha: {
163
- srcFactor: "one",
164
- dstFactor: "one-minus-src-alpha",
165
- operation: "add"
166
- }
167
- }
168
- }]
169
- },
170
- primitive: { topology: "triangle-strip" }
109
+ module,
110
+ layouts: [layouts.uniformLayout, layouts.singleTextureLayout],
111
+ format,
112
+ blend: STRAIGHT_ALPHA_BLEND
171
113
  });
172
114
  layouts.pipelineCache.set(cacheKey, pipeline);
173
115
  }
@@ -186,7 +128,7 @@ const TYPE_ENUM_MAP = {
186
128
  TwirlCCW: 5
187
129
  };
188
130
  const LiquifyWebGPURenderer = async (args) => {
189
- const { ctx, encoder, pass, targetView, targetTexture, targetWidth, targetHeight, props, drawChild } = args;
131
+ const { ctx, pass, targetWidth, targetHeight, props } = args;
190
132
  const op = props.virtualMedia?.operation;
191
133
  if (op?.op !== "Liquify" || !op) return;
192
134
  const childMedia = props.virtualMedia.children?.[0];
@@ -195,30 +137,12 @@ const LiquifyWebGPURenderer = async (args) => {
195
137
  const width = targetWidth;
196
138
  const height = targetHeight;
197
139
  const aspectRatio = height > 0 ? width / height : 1;
198
- const childTexture = ctx.renderer.getTemporaryTexture(width, height, [...props.excludeTextures || [], targetTexture]);
199
- const childView = childTexture.createView();
200
- ctx.renderer.beginFrame(encoder, childView, {
201
- r: 0,
202
- g: 0,
203
- b: 0,
204
- a: 0
205
- }, width, height, "clear").end();
206
- ctx.renderer.pushScissor({
207
- x: 0,
208
- y: 0,
209
- width,
210
- height
211
- });
212
- ctx.renderer.pushIdentity();
213
- await drawChild(childMedia, {
140
+ const { texture: childTexture } = await drawChildToTexture(args, childMedia, { props: {
214
141
  ...props,
215
142
  virtualMedia: childMedia,
216
143
  containerWidth: width,
217
- containerHeight: height,
218
- excludeTextures: [...props.excludeTextures || [], childTexture]
219
- }, childView, childTexture, width, height);
220
- ctx.renderer.popTransform();
221
- ctx.renderer.popScissor();
144
+ containerHeight: height
145
+ } });
222
146
  const operations = op.operations || [];
223
147
  const opCount = Math.min(operations.length, MAX_OPERATIONS);
224
148
  const uniformData = new Float32Array(4 + MAX_OPERATIONS * 8);
@@ -250,20 +174,14 @@ const LiquifyWebGPURenderer = async (args) => {
250
174
  });
251
175
  const sampler = ctx.renderer.samplerCache.getSampler(ctx.device);
252
176
  const textureBindGroup = ctx.renderer.bindGroupCache.getBindGroup(ctx.device, resources.singleTextureLayout, childTexture, sampler);
253
- const outPass = ctx.renderer.beginFrame(encoder, targetView, {
254
- r: 0,
255
- g: 0,
256
- b: 0,
257
- a: 0
258
- }, width, height, "load");
177
+ const outPass = beginTargetPass(args);
259
178
  outPass.setPipeline(resources.liquifyPipeline);
260
179
  outPass.setBindGroup(0, uniformBindGroup);
261
180
  outPass.setBindGroup(1, textureBindGroup);
262
181
  outPass.draw(4, 1, 0, 0);
263
- args.pass = outPass;
264
182
  };
265
183
  var renderers_default = defineRenderer({ WebGPURenderer: LiquifyWebGPURenderer });
266
184
 
267
185
  //#endregion
268
186
  export { renderers_default as n, LiquifyWebGPURenderer as t };
269
- //# sourceMappingURL=renderer-CpkiHRhh.mjs.map
187
+ //# sourceMappingURL=renderer-DyzNM721.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderer-DyzNM721.mjs","names":[],"sources":["../../../nodes/node-liquify/dist/renderers-C4bNr5l9.mjs"],"sourcesContent":["import { defineRenderer } from \"@framefields/node-sdk/renderer\";\nimport { FULLSCREEN_QUAD_WGSL, STRAIGHT_ALPHA_BLEND, beginTargetPass, createFullscreenPipeline, drawChildToTexture, fragmentBindGroupLayout } from \"@framefields/node-sdk/gpu\";\n\n//#region src/renderers/webgpu-renderer.ts\nconst MAX_OPERATIONS = 1024;\nconst LIQUIFY_SHADER = `\nstruct LiquifyOpData {\n\topType : f32, // 0=Push, 1=Pull, 2=Bloat, 3=Pucker, 4=TwirlCW, 5=TwirlCCW\n\tx : f32,\n\ty : f32,\n\tradius : f32,\n\tstrength : f32,\n\tdx : f32,\n\tdy : f32,\n\t_pad : f32,\n};\n\nstruct LiquifyUniforms {\n\topCount : f32,\n\taspectRatio : f32,\n\topacity : f32,\n\t_pad0 : f32,\n\tops : array<LiquifyOpData, 1024>,\n};\n\n@group(0) @binding(0) var<uniform> u : LiquifyUniforms;\n@group(1) @binding(0) var tex : texture_2d<f32>;\n@group(1) @binding(1) var samp : sampler;\n${FULLSCREEN_QUAD_WGSL}\n\nconst PI = 3.141592653589793;\n\n@fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {\n\tvar currentUV = in.uv;\n\tlet count = u32(u.opCount);\n\tlet aspect = u.aspectRatio;\n\n\tfor (var i = 0u; i < count && i < 1024u; i = i + 1u) {\n\t\tlet op = u.ops[i];\n\t\tlet center = vec2<f32>(op.x, op.y);\n\t\tlet delta = currentUV - center;\n\t\tlet deltaAspect = vec2<f32>(delta.x * aspect, delta.y);\n\t\tlet dist = length(deltaAspect);\n\n\t\tif (dist < op.radius && op.radius > 0.0001) {\n\t\t\tlet t = dist / op.radius;\n\t\t\tlet falloff = (1.0 - t * t) * (1.0 - t * t);\n\t\t\tlet s = op.strength;\n\n\t\t\tif (op.opType < 0.5) {\n\t\t\t\t// 0 = Push\n\t\t\t\tlet shift = vec2<f32>(op.dx, op.dy) * s * falloff;\n\t\t\t\tcurrentUV = currentUV - shift;\n\t\t\t} else if (op.opType < 1.5) {\n\t\t\t\t// 1 = Pull\n\t\t\t\tlet shift = vec2<f32>(op.dx, op.dy) * s * falloff;\n\t\t\t\tcurrentUV = currentUV + shift;\n\t\t\t} else if (op.opType < 2.5) {\n\t\t\t\t// 2 = Bloat\n\t\t\t\tlet factor = 1.0 - s * falloff * 0.45;\n\t\t\t\tcurrentUV = center + delta * factor;\n\t\t\t} else if (op.opType < 3.5) {\n\t\t\t\t// 3 = Pucker\n\t\t\t\tlet factor = 1.0 + s * falloff * 0.45;\n\t\t\t\tcurrentUV = center + delta * factor;\n\t\t\t} else if (op.opType < 4.5) {\n\t\t\t\t// 4 = TwirlCW\n\t\t\t\tlet angle = -s * PI * falloff;\n\t\t\t\tlet cosA = cos(angle);\n\t\t\t\tlet sinA = sin(angle);\n\t\t\t\tlet rotated = vec2<f32>(delta.x * cosA - delta.y * sinA, delta.x * sinA + delta.y * cosA);\n\t\t\t\tcurrentUV = center + rotated;\n\t\t\t} else {\n\t\t\t\t// 5 = TwirlCCW\n\t\t\t\tlet angle = s * PI * falloff;\n\t\t\t\tlet cosA = cos(angle);\n\t\t\t\tlet sinA = sin(angle);\n\t\t\t\tlet rotated = vec2<f32>(delta.x * cosA - delta.y * sinA, delta.x * sinA + delta.y * cosA);\n\t\t\t\tcurrentUV = center + rotated;\n\t\t\t}\n\t\t}\n\t}\n\n\tlet clampedUV = clamp(currentUV, vec2<f32>(0.0), vec2<f32>(1.0));\n\tlet sampledColor = textureSampleLevel(tex, samp, clampedUV, 0.0);\n\treturn sampledColor;\n}\n`;\nconst deviceResourceCache = /* @__PURE__ */ new WeakMap();\nfunction getLiquifyResources(device, format) {\n\tlet layouts = deviceResourceCache.get(device);\n\tif (!layouts) {\n\t\tlayouts = {\n\t\t\tuniformLayout: fragmentBindGroupLayout(device, [\"uniform\"], \"LiquifyUniformLayout\"),\n\t\t\tsingleTextureLayout: fragmentBindGroupLayout(device, [\"texture\", \"sampler\"], \"LiquifyTextureLayout\"),\n\t\t\tpipelineCache: /* @__PURE__ */ new Map()\n\t\t};\n\t\tdeviceResourceCache.set(device, layouts);\n\t}\n\tconst cacheKey = format;\n\tlet pipeline = layouts.pipelineCache.get(cacheKey);\n\tif (!pipeline) {\n\t\tconst module = device.createShaderModule({\n\t\t\tlabel: \"liquify.wgsl\",\n\t\t\tcode: LIQUIFY_SHADER\n\t\t});\n\t\tpipeline = createFullscreenPipeline(device, {\n\t\t\tlabel: `LiquifyPipeline_${format}`,\n\t\t\tmodule,\n\t\t\tlayouts: [layouts.uniformLayout, layouts.singleTextureLayout],\n\t\t\tformat,\n\t\t\tblend: STRAIGHT_ALPHA_BLEND\n\t\t});\n\t\tlayouts.pipelineCache.set(cacheKey, pipeline);\n\t}\n\treturn {\n\t\tliquifyPipeline: pipeline,\n\t\tuniformLayout: layouts.uniformLayout,\n\t\tsingleTextureLayout: layouts.singleTextureLayout\n\t};\n}\nconst TYPE_ENUM_MAP = {\n\tPush: 0,\n\tPull: 1,\n\tBloat: 2,\n\tPucker: 3,\n\tTwirlCW: 4,\n\tTwirlCCW: 5\n};\nconst LiquifyWebGPURenderer = async (args) => {\n\tconst { ctx, pass, targetWidth, targetHeight, props } = args;\n\tconst op = props.virtualMedia?.operation;\n\tif (op?.op !== \"Liquify\" || !op) return;\n\tconst childMedia = props.virtualMedia.children?.[0];\n\tif (!childMedia) return;\n\tpass.end();\n\tconst width = targetWidth;\n\tconst height = targetHeight;\n\tconst aspectRatio = height > 0 ? width / height : 1;\n\tconst { texture: childTexture } = await drawChildToTexture(args, childMedia, { props: {\n\t\t...props,\n\t\tvirtualMedia: childMedia,\n\t\tcontainerWidth: width,\n\t\tcontainerHeight: height\n\t} });\n\tconst operations = op.operations || [];\n\tconst opCount = Math.min(operations.length, MAX_OPERATIONS);\n\tconst uniformData = new Float32Array(4 + MAX_OPERATIONS * 8);\n\tuniformData[0] = opCount;\n\tuniformData[1] = aspectRatio;\n\tuniformData[2] = 1;\n\tuniformData[3] = 0;\n\tfor (let i = 0; i < opCount; i++) {\n\t\tconst item = operations[i];\n\t\tif (!item) continue;\n\t\tconst offset = 4 + i * 8;\n\t\tuniformData[offset + 0] = TYPE_ENUM_MAP[item.type] ?? 2;\n\t\tuniformData[offset + 1] = item.x;\n\t\tuniformData[offset + 2] = item.y;\n\t\tuniformData[offset + 3] = item.radius ?? .15;\n\t\tuniformData[offset + 4] = item.strength ?? .5;\n\t\tuniformData[offset + 5] = item.dx ?? 0;\n\t\tuniformData[offset + 6] = item.dy ?? 0;\n\t\tuniformData[offset + 7] = 0;\n\t}\n\tconst uniformBuffer = ctx.renderer.getTemporaryBuffer(uniformData);\n\tconst resources = getLiquifyResources(ctx.device, ctx.renderer.format);\n\tconst uniformBindGroup = ctx.device.createBindGroup({\n\t\tlayout: resources.uniformLayout,\n\t\tentries: [{\n\t\t\tbinding: 0,\n\t\t\tresource: { buffer: uniformBuffer }\n\t\t}]\n\t});\n\tconst sampler = ctx.renderer.samplerCache.getSampler(ctx.device);\n\tconst textureBindGroup = ctx.renderer.bindGroupCache.getBindGroup(ctx.device, resources.singleTextureLayout, childTexture, sampler);\n\tconst outPass = beginTargetPass(args);\n\toutPass.setPipeline(resources.liquifyPipeline);\n\toutPass.setBindGroup(0, uniformBindGroup);\n\toutPass.setBindGroup(1, textureBindGroup);\n\toutPass.draw(4, 1, 0, 0);\n};\n\n//#endregion\n//#region src/renderers/index.ts\nvar renderers_default = defineRenderer({ WebGPURenderer: LiquifyWebGPURenderer });\n\n//#endregion\nexport { LiquifyWebGPURenderer as n, renderers_default as t };\n//# sourceMappingURL=renderers-C4bNr5l9.mjs.map"],"mappings":"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"}
@@ -1,7 +1,8 @@
1
- import { n as defineRenderer } from "./renderer-CtVkU_GA.mjs";
2
- import { Y as parseColor, rt as signalRegistry } from "./dist-Cxi68OuY.mjs";
1
+ import { l as unwrapFrameParam, n as defineRenderer } from "./renderer-BSitV56h.mjs";
2
+ import { H as parseColor } from "./dist-DkuDAIrG.mjs";
3
+ import { a as createFullscreenPipeline, c as drawTextureToTarget, d as signalTextureView, f as signalTiming, l as fragmentBindGroupLayout, o as drawChildToTexture, p as texturesLayout, s as drawFullscreenPass, t as FULLSCREEN_QUAD_WGSL, u as perDevice } from "./gpu-DG3gI88-.mjs";
3
4
 
4
- //#region ../../nodes/node-halftone-screen/dist/renderers-Buhc1YMK.mjs
5
+ //#region ../../nodes/node-halftone-screen/dist/renderers-CvluQiq3.mjs
5
6
  const WGSL_HALFTONE_SHADER = `
6
7
  struct HalftoneUniforms {
7
8
  mode : f32, // 0 = Monochrome, 1 = CMYK
@@ -46,27 +47,7 @@ struct HalftoneUniforms {
46
47
  @group(2) @binding(6) var blkSigTex : texture_2d<f32>;
47
48
  @group(2) @binding(7) var opacitySigTex : texture_2d<f32>;
48
49
  @group(2) @binding(8) var signalSamp : sampler;
49
-
50
- struct VSOut {
51
- @builtin(position) pos : vec4<f32>,
52
- @location(0) uv : vec2<f32>,
53
- };
54
-
55
- @vertex fn vs(@builtin(vertex_index) vi: u32) -> VSOut {
56
- var pos = array<vec2<f32>, 4>(
57
- vec2<f32>(-1.0, 1.0),
58
- vec2<f32>(1.0, 1.0),
59
- vec2<f32>(-1.0, -1.0),
60
- vec2<f32>(1.0, -1.0)
61
- );
62
- var uv = array<vec2<f32>, 4>(
63
- vec2<f32>(0.0, 0.0),
64
- vec2<f32>(1.0, 0.0),
65
- vec2<f32>(0.0, 1.0),
66
- vec2<f32>(1.0, 1.0)
67
- );
68
- return VSOut(vec4<f32>(pos[vi], 0.0, 1.0), uv[vi]);
69
- }
50
+ ${FULLSCREEN_QUAD_WGSL}
70
51
 
71
52
  const PI: f32 = 3.141592653589793;
72
53
 
@@ -277,77 +258,12 @@ fn evalDotCoverage(
277
258
  return vec4<f32>(finalRgb * sourceCol.a, sourceCol.a);
278
259
  }
279
260
  `;
280
- const deviceResourceCache = /* @__PURE__ */ new WeakMap();
281
- function getDeviceLayouts(device) {
282
- let res = deviceResourceCache.get(device);
283
- if (res) return res;
284
- res = {
285
- uniformLayout: device.createBindGroupLayout({ entries: [{
286
- binding: 0,
287
- visibility: GPUShaderStage.FRAGMENT,
288
- buffer: { type: "uniform" }
289
- }] }),
290
- singleTextureLayout: device.createBindGroupLayout({ entries: [{
291
- binding: 0,
292
- visibility: GPUShaderStage.FRAGMENT,
293
- texture: { sampleType: "float" }
294
- }, {
295
- binding: 1,
296
- visibility: GPUShaderStage.FRAGMENT,
297
- sampler: { type: "filtering" }
298
- }] }),
299
- signalTextureLayout: device.createBindGroupLayout({ entries: [
300
- {
301
- binding: 0,
302
- visibility: GPUShaderStage.FRAGMENT,
303
- texture: { sampleType: "float" }
304
- },
305
- {
306
- binding: 1,
307
- visibility: GPUShaderStage.FRAGMENT,
308
- texture: { sampleType: "float" }
309
- },
310
- {
311
- binding: 2,
312
- visibility: GPUShaderStage.FRAGMENT,
313
- texture: { sampleType: "float" }
314
- },
315
- {
316
- binding: 3,
317
- visibility: GPUShaderStage.FRAGMENT,
318
- texture: { sampleType: "float" }
319
- },
320
- {
321
- binding: 4,
322
- visibility: GPUShaderStage.FRAGMENT,
323
- texture: { sampleType: "float" }
324
- },
325
- {
326
- binding: 5,
327
- visibility: GPUShaderStage.FRAGMENT,
328
- texture: { sampleType: "float" }
329
- },
330
- {
331
- binding: 6,
332
- visibility: GPUShaderStage.FRAGMENT,
333
- texture: { sampleType: "float" }
334
- },
335
- {
336
- binding: 7,
337
- visibility: GPUShaderStage.FRAGMENT,
338
- texture: { sampleType: "float" }
339
- },
340
- {
341
- binding: 8,
342
- visibility: GPUShaderStage.FRAGMENT,
343
- sampler: { type: "filtering" }
344
- }
345
- ] }),
346
- pipelineCache: /* @__PURE__ */ new Map()
347
- };
348
- deviceResourceCache.set(device, res);
349
- return res;
350
- }
261
+ const getDeviceLayouts = perDevice((device) => ({
262
+ uniformLayout: fragmentBindGroupLayout(device, ["uniform"]),
263
+ singleTextureLayout: fragmentBindGroupLayout(device, ["texture", "sampler"]),
264
+ signalTextureLayout: texturesLayout(device, 8),
265
+ pipelineCache: /* @__PURE__ */ new Map()
266
+ }));
351
267
  function getHalftoneResources(device, format) {
352
268
  const layouts = getDeviceLayouts(device);
353
269
  const cacheKey = `halftone_${format}`;
@@ -357,23 +273,15 @@ function getHalftoneResources(device, format) {
357
273
  label: `halftone_${format}.wgsl`,
358
274
  code: WGSL_HALFTONE_SHADER
359
275
  });
360
- pipeline = device.createRenderPipeline({
276
+ pipeline = createFullscreenPipeline(device, {
361
277
  label: `HalftonePipeline_${format}`,
362
- layout: device.createPipelineLayout({ bindGroupLayouts: [
278
+ module: halftoneModule,
279
+ layouts: [
363
280
  layouts.uniformLayout,
364
281
  layouts.singleTextureLayout,
365
282
  layouts.signalTextureLayout
366
- ] }),
367
- vertex: {
368
- module: halftoneModule,
369
- entryPoint: "vs"
370
- },
371
- fragment: {
372
- module: halftoneModule,
373
- entryPoint: "fs",
374
- targets: [{ format }]
375
- },
376
- primitive: { topology: "triangle-strip" }
283
+ ],
284
+ format
377
285
  });
378
286
  layouts.pipelineCache.set(cacheKey, pipeline);
379
287
  }
@@ -385,7 +293,7 @@ function getHalftoneResources(device, format) {
385
293
  };
386
294
  }
387
295
  const HalftoneScreenWebGPURenderer = async (args) => {
388
- const { ctx, encoder, pass, targetView, targetTexture, targetWidth, targetHeight, props, drawChild } = args;
296
+ const { ctx, encoder, pass, targetTexture, targetWidth, targetHeight, props } = args;
389
297
  const frame = props.frame ?? 0;
390
298
  const compositionFrame = props.compositionFrame ?? frame;
391
299
  const fps = props.fps || 30;
@@ -406,16 +314,7 @@ const HalftoneScreenWebGPURenderer = async (args) => {
406
314
  let hasStaticSig = false;
407
315
  if (!hasSignal) if (input?.connectionValid && input.outputItem?.type === "Number") val = Math.max(minVal, Math.min(maxVal, Number(input.outputItem.data ?? defaultValue)));
408
316
  else {
409
- let rawVal = op[configKey];
410
- if (rawVal !== void 0 && rawVal !== null) {
411
- if (typeof rawVal === "object") {
412
- if ("get" in rawVal && typeof rawVal.get === "function") rawVal = rawVal.get({
413
- frame: compositionFrame,
414
- fps
415
- });
416
- else if ("value" in rawVal) rawVal = rawVal.value;
417
- } else if (typeof rawVal === "function") rawVal = rawVal(compositionFrame, fps);
418
- }
317
+ const rawVal = unwrapFrameParam(op[configKey], compositionFrame, fps).value;
419
318
  val = Math.max(minVal, Math.min(maxVal, Number(rawVal ?? defaultValue)));
420
319
  }
421
320
  else if (sd) {
@@ -436,35 +335,20 @@ const HalftoneScreenWebGPURenderer = async (args) => {
436
335
  const yelRes = resolveBindable("yellowAngle", 0, 0, 360);
437
336
  const blkRes = resolveBindable("blackAngle", 45, 0, 360);
438
337
  const opacityRes = resolveBindable("opacity", 1, 0, 1);
439
- const tmpTex = ctx.renderer.getTemporaryTexture(width, height, [...props.excludeTextures || [], targetTexture]);
440
- const tmpView = tmpTex.createView();
441
- ctx.renderer.beginFrame(encoder, tmpView, {
442
- r: 0,
443
- g: 0,
444
- b: 0,
445
- a: 0
446
- }, width, height, "clear").end();
447
- ctx.renderer.pushScissor({
448
- x: 0,
449
- y: 0,
450
- width,
451
- height
452
- });
453
- ctx.renderer.pushIdentity();
454
- await drawChild(childMedia, {
455
- ...props,
456
- virtualMedia: childMedia
457
- }, tmpView, tmpTex, width, height);
458
- ctx.renderer.popTransform();
459
- ctx.renderer.popScissor();
338
+ const { texture: tmpTex } = await drawChildToTexture(args, childMedia);
460
339
  const { halftonePipeline: pipeline, uniformLayout: uLayout, singleTextureLayout: tLayout, signalTextureLayout: sigLayout } = getHalftoneResources(ctx.device, ctx.renderer.format);
461
340
  const sampler = ctx.renderer.samplerCache.getSampler(ctx.device);
462
- const elapsedSeconds = props.elapsedMs !== void 0 ? props.elapsedMs / 1e3 : frame / fps;
463
- const durationSeconds = props.virtualMedia?.metadata?.durationMs ? props.virtualMedia.metadata.durationMs / 1e3 : props.durationMs !== void 0 ? props.durationMs / 1e3 : 0;
464
- const getSignalView = (res, suffix) => {
465
- if (res.hasStaticSig && res.sd) return signalRegistry.getOrCreate2DTextureView(ctx.device, encoder, res.sd.nodeId ?? `${nodeId}_${suffix}`, elapsedSeconds, durationSeconds, res.sd, width, height, props.renderId, frame, fps);
466
- return signalRegistry.getDummy1x1TextureView(ctx.device);
341
+ const { elapsedSeconds, durationSeconds } = signalTiming(props, frame, fps);
342
+ const signalContext = {
343
+ args,
344
+ width,
345
+ height,
346
+ frame,
347
+ fps,
348
+ elapsedSeconds,
349
+ durationSeconds
467
350
  };
351
+ const getSignalView = (res, suffix) => signalTextureView(signalContext, res, `${nodeId}_${suffix}`);
468
352
  const freqView = getSignalView(freqRes, "freq_sig");
469
353
  const angleView = getSignalView(angleRes, "angle_sig");
470
354
  const contrastView = getSignalView(contrastRes, "contrast_sig");
@@ -515,85 +399,61 @@ const HalftoneScreenWebGPURenderer = async (args) => {
515
399
  targetTexture,
516
400
  ...props.excludeTextures || []
517
401
  ]);
518
- const halftonePass = encoder.beginRenderPass({ colorAttachments: [{
519
- view: outTex.createView(),
520
- loadOp: "clear",
521
- storeOp: "store",
522
- clearValue: {
523
- r: 0,
524
- g: 0,
525
- b: 0,
526
- a: 0
527
- }
528
- }] });
529
- halftonePass.setPipeline(pipeline);
530
- halftonePass.setBindGroup(0, ctx.device.createBindGroup({
531
- layout: uLayout,
532
- entries: [{
533
- binding: 0,
534
- resource: { buffer: uniformBuffer }
535
- }]
536
- }));
537
- halftonePass.setBindGroup(1, ctx.renderer.bindGroupCache.getBindGroup(ctx.device, tLayout, tmpTex, sampler));
538
- halftonePass.setBindGroup(2, ctx.device.createBindGroup({
539
- layout: sigLayout,
540
- entries: [
541
- {
402
+ drawFullscreenPass(encoder, outTex.createView(), pipeline, [
403
+ ctx.device.createBindGroup({
404
+ layout: uLayout,
405
+ entries: [{
542
406
  binding: 0,
543
- resource: freqView
544
- },
545
- {
546
- binding: 1,
547
- resource: angleView
548
- },
549
- {
550
- binding: 2,
551
- resource: contrastView
552
- },
553
- {
554
- binding: 3,
555
- resource: cyanView
556
- },
557
- {
558
- binding: 4,
559
- resource: magView
560
- },
561
- {
562
- binding: 5,
563
- resource: yelView
564
- },
565
- {
566
- binding: 6,
567
- resource: blkView
568
- },
569
- {
570
- binding: 7,
571
- resource: opacityView
572
- },
573
- {
574
- binding: 8,
575
- resource: sampler
576
- }
577
- ]
578
- }));
579
- halftonePass.draw(4);
580
- halftonePass.end();
581
- const finalPass = ctx.renderer.beginFrame(encoder, targetView, {
582
- r: 0,
583
- g: 0,
584
- b: 0,
585
- a: 0
586
- }, targetWidth, targetHeight, "load");
587
- ctx.renderer.drawTexture(finalPass, outTex, {
588
- x: 0,
589
- y: 0,
590
- width: targetWidth,
591
- height: targetHeight
592
- }, { opacity: 1 });
593
- args.pass = finalPass;
407
+ resource: { buffer: uniformBuffer }
408
+ }]
409
+ }),
410
+ ctx.renderer.bindGroupCache.getBindGroup(ctx.device, tLayout, tmpTex, sampler),
411
+ ctx.device.createBindGroup({
412
+ layout: sigLayout,
413
+ entries: [
414
+ {
415
+ binding: 0,
416
+ resource: freqView
417
+ },
418
+ {
419
+ binding: 1,
420
+ resource: angleView
421
+ },
422
+ {
423
+ binding: 2,
424
+ resource: contrastView
425
+ },
426
+ {
427
+ binding: 3,
428
+ resource: cyanView
429
+ },
430
+ {
431
+ binding: 4,
432
+ resource: magView
433
+ },
434
+ {
435
+ binding: 5,
436
+ resource: yelView
437
+ },
438
+ {
439
+ binding: 6,
440
+ resource: blkView
441
+ },
442
+ {
443
+ binding: 7,
444
+ resource: opacityView
445
+ },
446
+ {
447
+ binding: 8,
448
+ resource: sampler
449
+ }
450
+ ]
451
+ })
452
+ ]);
453
+ drawTextureToTarget(args, outTex);
594
454
  };
595
455
  var renderers_default = defineRenderer({ WebGPURenderer: HalftoneScreenWebGPURenderer });
596
456
 
597
457
  //#endregion
598
458
  export { renderers_default as t };
599
- //# sourceMappingURL=renderer-C_TPMHiH.mjs.map
459
+ //# sourceMappingURL=renderer-DzrM1KMN.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderer-DzrM1KMN.mjs","names":[],"sources":["../../../nodes/node-halftone-screen/dist/renderers-CvluQiq3.mjs"],"sourcesContent":["import { defineRenderer } from \"@framefields/node-sdk/renderer\";\nimport { unwrapFrameParam } from \"@framefields/node-sdk\";\nimport { FULLSCREEN_QUAD_WGSL, createFullscreenPipeline, drawChildToTexture, drawFullscreenPass, drawTextureToTarget, fragmentBindGroupLayout, perDevice, signalTextureView, signalTiming, texturesLayout } from \"@framefields/node-sdk/gpu\";\nimport { parseColor } from \"@framefields/webgpu-renderers\";\n\n//#region src/renderers/webgpu-renderer.ts\nconst WGSL_HALFTONE_SHADER = `\nstruct HalftoneUniforms {\n mode : f32, // 0 = Monochrome, 1 = CMYK\n dotShape : f32, // 0 = Circle, 1 = Diamond, 2 = Line, 3 = Square\n frequency : f32,\n angle : f32,\n\n contrast : f32,\n invert : f32,\n isSmooth : f32,\n opacity : f32,\n\n dotColor : vec4<f32>,\n paperColor : vec4<f32>,\n\n cyanAngle : f32,\n magentaAngle : f32,\n yellowAngle : f32,\n blackAngle : f32,\n\n hasFreqSig : f32,\n hasAngleSig : f32,\n hasContrastSig : f32,\n hasCyanSig : f32,\n\n hasMagSig : f32,\n hasYelSig : f32,\n hasBlkSig : f32,\n hasOpacitySig : f32,\n};\n\n@group(0) @binding(0) var<uniform> u : HalftoneUniforms;\n@group(1) @binding(0) var tex : texture_2d<f32>;\n@group(1) @binding(1) var samp : sampler;\n\n@group(2) @binding(0) var freqSigTex : texture_2d<f32>;\n@group(2) @binding(1) var angleSigTex : texture_2d<f32>;\n@group(2) @binding(2) var contrastSigTex : texture_2d<f32>;\n@group(2) @binding(3) var cyanSigTex : texture_2d<f32>;\n@group(2) @binding(4) var magSigTex : texture_2d<f32>;\n@group(2) @binding(5) var yelSigTex : texture_2d<f32>;\n@group(2) @binding(6) var blkSigTex : texture_2d<f32>;\n@group(2) @binding(7) var opacitySigTex : texture_2d<f32>;\n@group(2) @binding(8) var signalSamp : sampler;\n${FULLSCREEN_QUAD_WGSL}\n\nconst PI: f32 = 3.141592653589793;\n\nfn getCellCenterUV(\n uv: vec2<f32>,\n dimensions: vec2<f32>,\n screenAngleDeg: f32,\n freq: f32\n) -> vec2<f32> {\n let rad = screenAngleDeg * PI / 180.0;\n let cosA = cos(rad);\n let sinA = sin(rad);\n let rot = mat2x2<f32>(cosA, -sinA, sinA, cosA);\n let invRot = mat2x2<f32>(cosA, sinA, -sinA, cosA);\n\n let minDim = min(dimensions.x, dimensions.y);\n let cellSize = max(minDim / max(freq, 1.0), 1.0);\n\n let center = dimensions * 0.5;\n let pixelPos = (uv * dimensions) - center;\n let rotPos = rot * pixelPos;\n\n let cellIndex = floor(rotPos / cellSize) + vec2<f32>(0.5);\n let cellCenterRot = cellIndex * cellSize;\n let cellCenterPixelPos = invRot * cellCenterRot;\n let cellCenterUV = (cellCenterPixelPos + center) / dimensions;\n return clamp(cellCenterUV, vec2<f32>(0.0), vec2<f32>(1.0));\n}\n\nfn evalDotCoverage(\n uv: vec2<f32>,\n dimensions: vec2<f32>,\n screenAngleDeg: f32,\n freq: f32,\n shape: f32,\n density: f32,\n contrastMultiplier: f32,\n isSmooth: f32\n) -> f32 {\n var d = clamp((density - 0.5) * contrastMultiplier + 0.5, 0.0, 1.0);\n if (d <= 0.0001) { return 0.0; }\n if (d >= 0.9999) { return 1.0; }\n\n let rad = screenAngleDeg * PI / 180.0;\n let cosA = cos(rad);\n let sinA = sin(rad);\n let rot = mat2x2<f32>(cosA, -sinA, sinA, cosA);\n\n let minDim = min(dimensions.x, dimensions.y);\n let cellSize = max(minDim / max(freq, 1.0), 1.0);\n\n let center = dimensions * 0.5;\n let pixelPos = (uv * dimensions) - center;\n let rotPos = rot * pixelPos;\n\n let cellUV = fract(rotPos / cellSize) - vec2<f32>(0.5);\n\n var spot: f32 = 0.0;\n\n if (shape < 0.5) {\n // 0: Euclidean Round Dot\n spot = 0.5 * (1.0 - (cos(cellUV.x * 2.0 * PI) + cos(cellUV.y * 2.0 * PI)) * 0.5);\n } else if (shape < 1.5) {\n // 1: Diamond\n spot = abs(cellUV.x) + abs(cellUV.y);\n } else if (shape < 2.5) {\n // 2: Line\n spot = abs(cellUV.y) * 2.0;\n } else {\n // 3: Square\n spot = max(abs(cellUV.x), abs(cellUV.y)) * 2.0;\n }\n\n let edgeWidth = select(0.001, max(1.5 / cellSize, 0.003), isSmooth > 0.5);\n\n return select(\n step(spot, d),\n smoothstep(d + edgeWidth, d - edgeWidth, spot),\n isSmooth > 0.5\n );\n}\n\n@fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {\n let sourceCol = textureSampleLevel(tex, samp, in.uv, 0.0);\n if (sourceCol.a < 1e-5) {\n return sourceCol;\n }\n\n // Resolve parameter overrides or dynamic signals\n var frequency = u.frequency;\n if (u.hasFreqSig > 0.5) {\n frequency = textureSampleLevel(freqSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;\n }\n\n var baseAngle = u.angle;\n if (u.hasAngleSig > 0.5) {\n baseAngle = textureSampleLevel(angleSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;\n }\n\n var contrast = u.contrast;\n if (u.hasContrastSig > 0.5) {\n contrast = textureSampleLevel(contrastSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;\n }\n\n var cyanAngle = u.cyanAngle;\n if (u.hasCyanSig > 0.5) {\n cyanAngle = textureSampleLevel(cyanSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;\n }\n\n var magentaAngle = u.magentaAngle;\n if (u.hasMagSig > 0.5) {\n magentaAngle = textureSampleLevel(magSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;\n }\n\n var yellowAngle = u.yellowAngle;\n if (u.hasYelSig > 0.5) {\n yellowAngle = textureSampleLevel(yelSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;\n }\n\n var blackAngle = u.blackAngle;\n if (u.hasBlkSig > 0.5) {\n blackAngle = textureSampleLevel(blkSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;\n }\n\n var effectOpacity = u.opacity;\n if (u.hasOpacitySig > 0.5) {\n effectOpacity = textureSampleLevel(opacitySigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;\n }\n\n let dimensions = vec2<f32>(textureDimensions(tex));\n let unpremult = sourceCol.rgb / sourceCol.a;\n\n var screenedRgb: vec3<f32>;\n\n if (u.mode < 0.5) {\n // --- Monochrome Mode ---\n let cellCenterUV = getCellCenterUV(in.uv, dimensions, baseAngle, frequency);\n let cellCol = textureSampleLevel(tex, samp, cellCenterUV, 0.0);\n let cellRgb = select(cellCol.rgb, cellCol.rgb / cellCol.a, cellCol.a > 1e-5);\n let luminance = dot(cellRgb, vec3<f32>(0.2126, 0.7152, 0.0722));\n var inkDensity = 1.0 - luminance;\n if (u.invert > 0.5) {\n inkDensity = luminance;\n }\n\n let coverage = evalDotCoverage(\n in.uv,\n dimensions,\n baseAngle,\n frequency,\n u.dotShape,\n inkDensity,\n contrast,\n u.isSmooth\n );\n\n screenedRgb = mix(u.paperColor.rgb, u.dotColor.rgb, coverage);\n } else {\n // --- CMYK Mode ---\n let cellCenterUVC = getCellCenterUV(in.uv, dimensions, baseAngle + cyanAngle, frequency);\n let colC = textureSampleLevel(tex, samp, cellCenterUVC, 0.0);\n let rgbC = select(colC.rgb, colC.rgb / colC.a, colC.a > 1e-5);\n let kC = 1.0 - max(max(rgbC.r, rgbC.g), rgbC.b);\n let invKC = 1.0 - kC;\n var densC = select(0.0, clamp((1.0 - rgbC.r - kC) / max(invKC, 0.0001), 0.0, 1.0), invKC > 0.0001);\n\n let cellCenterUVM = getCellCenterUV(in.uv, dimensions, baseAngle + magentaAngle, frequency);\n let colM = textureSampleLevel(tex, samp, cellCenterUVM, 0.0);\n let rgbM = select(colM.rgb, colM.rgb / colM.a, colM.a > 1e-5);\n let kM = 1.0 - max(max(rgbM.r, rgbM.g), rgbM.b);\n let invKM = 1.0 - kM;\n var densM = select(0.0, clamp((1.0 - rgbM.g - kM) / max(invKM, 0.0001), 0.0, 1.0), invKM > 0.0001);\n\n let cellCenterUVY = getCellCenterUV(in.uv, dimensions, baseAngle + yellowAngle, frequency);\n let colY = textureSampleLevel(tex, samp, cellCenterUVY, 0.0);\n let rgbY = select(colY.rgb, colY.rgb / colY.a, colY.a > 1e-5);\n let kY = 1.0 - max(max(rgbY.r, rgbY.g), rgbY.b);\n let invKY = 1.0 - kY;\n var densY = select(0.0, clamp((1.0 - rgbY.b - kY) / max(invKY, 0.0001), 0.0, 1.0), invKY > 0.0001);\n\n let cellCenterUVK = getCellCenterUV(in.uv, dimensions, baseAngle + blackAngle, frequency);\n let colK = textureSampleLevel(tex, samp, cellCenterUVK, 0.0);\n let rgbK = select(colK.rgb, colK.rgb / colK.a, colK.a > 1e-5);\n var densK = 1.0 - max(max(rgbK.r, rgbK.g), rgbK.b);\n\n if (u.invert > 0.5) {\n densC = 1.0 - densC;\n densM = 1.0 - densM;\n densY = 1.0 - densY;\n densK = 1.0 - densK;\n }\n\n let covC = evalDotCoverage(in.uv, dimensions, baseAngle + cyanAngle, frequency, u.dotShape, densC, contrast, u.isSmooth);\n let covM = evalDotCoverage(in.uv, dimensions, baseAngle + magentaAngle, frequency, u.dotShape, densM, contrast, u.isSmooth);\n let covY = evalDotCoverage(in.uv, dimensions, baseAngle + yellowAngle, frequency, u.dotShape, densY, contrast, u.isSmooth);\n let covK = evalDotCoverage(in.uv, dimensions, baseAngle + blackAngle, frequency, u.dotShape, densK, contrast, u.isSmooth);\n\n // Subtractive synthesis onto paper substrate\n let outR = u.paperColor.r * (1.0 - covC) * (1.0 - covK);\n let outG = u.paperColor.g * (1.0 - covM) * (1.0 - covK);\n let outB = u.paperColor.b * (1.0 - covY) * (1.0 - covK);\n\n screenedRgb = clamp(vec3<f32>(outR, outG, outB), vec3<f32>(0.0), vec3<f32>(1.0));\n }\n\n // Apply effect opacity blend\n let finalRgb = mix(unpremult, screenedRgb, clamp(effectOpacity, 0.0, 1.0));\n return vec4<f32>(finalRgb * sourceCol.a, sourceCol.a);\n}\n`;\nconst getDeviceLayouts = perDevice((device) => ({\n\tuniformLayout: fragmentBindGroupLayout(device, [\"uniform\"]),\n\tsingleTextureLayout: fragmentBindGroupLayout(device, [\"texture\", \"sampler\"]),\n\tsignalTextureLayout: texturesLayout(device, 8),\n\tpipelineCache: /* @__PURE__ */ new Map()\n}));\nfunction getHalftoneResources(device, format) {\n\tconst layouts = getDeviceLayouts(device);\n\tconst cacheKey = `halftone_${format}`;\n\tlet pipeline = layouts.pipelineCache.get(cacheKey);\n\tif (!pipeline) {\n\t\tconst halftoneModule = device.createShaderModule({\n\t\t\tlabel: `halftone_${format}.wgsl`,\n\t\t\tcode: WGSL_HALFTONE_SHADER\n\t\t});\n\t\tpipeline = createFullscreenPipeline(device, {\n\t\t\tlabel: `HalftonePipeline_${format}`,\n\t\t\tmodule: halftoneModule,\n\t\t\tlayouts: [\n\t\t\t\tlayouts.uniformLayout,\n\t\t\t\tlayouts.singleTextureLayout,\n\t\t\t\tlayouts.signalTextureLayout\n\t\t\t],\n\t\t\tformat\n\t\t});\n\t\tlayouts.pipelineCache.set(cacheKey, pipeline);\n\t}\n\treturn {\n\t\thalftonePipeline: pipeline,\n\t\tuniformLayout: layouts.uniformLayout,\n\t\tsingleTextureLayout: layouts.singleTextureLayout,\n\t\tsignalTextureLayout: layouts.signalTextureLayout\n\t};\n}\nconst HalftoneScreenWebGPURenderer = async (args) => {\n\tconst { ctx, encoder, pass, targetTexture, targetWidth, targetHeight, props } = args;\n\tconst frame = props.frame ?? 0;\n\tconst compositionFrame = props.compositionFrame ?? frame;\n\tconst fps = props.fps || 30;\n\tconst op = props.virtualMedia?.operation;\n\tif (op?.op !== \"HalftoneScreen\" || !op) return;\n\tconst childMedia = props.virtualMedia.children?.[0];\n\tif (!childMedia) return;\n\tpass.end();\n\tconst width = targetWidth;\n\tconst height = targetHeight;\n\tconst nodeId = op.inputs ? Object.keys(op.inputs)[0] : \"halftone_node\";\n\tconst resolveBindable = (configKey, defaultValue, minVal, maxVal) => {\n\t\tconst handleId = op[`${configKey}HandleId`];\n\t\tconst input = handleId ? op.inputs?.[handleId] : null;\n\t\tconst hasSignal = !!(input?.connectionValid && input.outputItem?.type === \"Signal\");\n\t\tconst sd = hasSignal && input?.outputItem?.data ? input.outputItem.data : null;\n\t\tlet val = defaultValue;\n\t\tlet hasStaticSig = false;\n\t\tif (!hasSignal) if (input?.connectionValid && input.outputItem?.type === \"Number\") val = Math.max(minVal, Math.min(maxVal, Number(input.outputItem.data ?? defaultValue)));\n\t\telse {\n\t\t\tconst rawVal = unwrapFrameParam(op[configKey], compositionFrame, fps).value;\n\t\t\tval = Math.max(minVal, Math.min(maxVal, Number(rawVal ?? defaultValue)));\n\t\t}\n\t\telse if (sd) {\n\t\t\tval = Math.max(minVal, Math.min(maxVal, Number(sd.offset ?? 0)));\n\t\t\thasStaticSig = true;\n\t\t}\n\t\treturn {\n\t\t\tval,\n\t\t\thasStaticSig,\n\t\t\tsd\n\t\t};\n\t};\n\tconst freqRes = resolveBindable(\"frequency\", 30, 1, 200);\n\tconst angleRes = resolveBindable(\"angle\", 45, 0, 360);\n\tconst contrastRes = resolveBindable(\"contrast\", 1, .1, 5);\n\tconst cyanRes = resolveBindable(\"cyanAngle\", 15, 0, 360);\n\tconst magRes = resolveBindable(\"magentaAngle\", 75, 0, 360);\n\tconst yelRes = resolveBindable(\"yellowAngle\", 0, 0, 360);\n\tconst blkRes = resolveBindable(\"blackAngle\", 45, 0, 360);\n\tconst opacityRes = resolveBindable(\"opacity\", 1, 0, 1);\n\tconst { texture: tmpTex } = await drawChildToTexture(args, childMedia);\n\tconst { halftonePipeline: pipeline, uniformLayout: uLayout, singleTextureLayout: tLayout, signalTextureLayout: sigLayout } = getHalftoneResources(ctx.device, ctx.renderer.format);\n\tconst sampler = ctx.renderer.samplerCache.getSampler(ctx.device);\n\tconst { elapsedSeconds, durationSeconds } = signalTiming(props, frame, fps);\n\tconst signalContext = {\n\t\targs,\n\t\twidth,\n\t\theight,\n\t\tframe,\n\t\tfps,\n\t\telapsedSeconds,\n\t\tdurationSeconds\n\t};\n\tconst getSignalView = (res, suffix) => signalTextureView(signalContext, res, `${nodeId}_${suffix}`);\n\tconst freqView = getSignalView(freqRes, \"freq_sig\");\n\tconst angleView = getSignalView(angleRes, \"angle_sig\");\n\tconst contrastView = getSignalView(contrastRes, \"contrast_sig\");\n\tconst cyanView = getSignalView(cyanRes, \"cyan_sig\");\n\tconst magView = getSignalView(magRes, \"mag_sig\");\n\tconst yelView = getSignalView(yelRes, \"yel_sig\");\n\tconst blkView = getSignalView(blkRes, \"blk_sig\");\n\tconst opacityView = getSignalView(opacityRes, \"opacity_sig\");\n\tconst modeVal = op.mode === \"CMYK\" ? 1 : 0;\n\tlet dotShapeVal = 0;\n\tif (op.dotShape === \"Diamond\") dotShapeVal = 1;\n\telse if (op.dotShape === \"Line\") dotShapeVal = 2;\n\telse if (op.dotShape === \"Square\") dotShapeVal = 3;\n\tconst dotCol = parseColor(op.dotColor ?? \"#000000\");\n\tconst paperCol = parseColor(op.paperColor ?? \"#ffffff\");\n\tconst halftoneUniformData = new Float32Array(28);\n\thalftoneUniformData[0] = modeVal;\n\thalftoneUniformData[1] = dotShapeVal;\n\thalftoneUniformData[2] = freqRes.val;\n\thalftoneUniformData[3] = angleRes.val;\n\thalftoneUniformData[4] = contrastRes.val;\n\thalftoneUniformData[5] = op.invert ? 1 : 0;\n\thalftoneUniformData[6] = op.smooth !== false ? 1 : 0;\n\thalftoneUniformData[7] = opacityRes.val;\n\thalftoneUniformData[8] = dotCol.r;\n\thalftoneUniformData[9] = dotCol.g;\n\thalftoneUniformData[10] = dotCol.b;\n\thalftoneUniformData[11] = dotCol.a;\n\thalftoneUniformData[12] = paperCol.r;\n\thalftoneUniformData[13] = paperCol.g;\n\thalftoneUniformData[14] = paperCol.b;\n\thalftoneUniformData[15] = paperCol.a;\n\thalftoneUniformData[16] = cyanRes.val;\n\thalftoneUniformData[17] = magRes.val;\n\thalftoneUniformData[18] = yelRes.val;\n\thalftoneUniformData[19] = blkRes.val;\n\thalftoneUniformData[20] = freqRes.hasStaticSig ? 1 : 0;\n\thalftoneUniformData[21] = angleRes.hasStaticSig ? 1 : 0;\n\thalftoneUniformData[22] = contrastRes.hasStaticSig ? 1 : 0;\n\thalftoneUniformData[23] = cyanRes.hasStaticSig ? 1 : 0;\n\thalftoneUniformData[24] = magRes.hasStaticSig ? 1 : 0;\n\thalftoneUniformData[25] = yelRes.hasStaticSig ? 1 : 0;\n\thalftoneUniformData[26] = blkRes.hasStaticSig ? 1 : 0;\n\thalftoneUniformData[27] = opacityRes.hasStaticSig ? 1 : 0;\n\tconst uniformBuffer = ctx.renderer.getTemporaryBuffer(halftoneUniformData);\n\tconst outTex = ctx.renderer.getTemporaryTexture(width, height, [\n\t\ttmpTex,\n\t\ttargetTexture,\n\t\t...props.excludeTextures || []\n\t]);\n\tdrawFullscreenPass(encoder, outTex.createView(), pipeline, [\n\t\tctx.device.createBindGroup({\n\t\t\tlayout: uLayout,\n\t\t\tentries: [{\n\t\t\t\tbinding: 0,\n\t\t\t\tresource: { buffer: uniformBuffer }\n\t\t\t}]\n\t\t}),\n\t\tctx.renderer.bindGroupCache.getBindGroup(ctx.device, tLayout, tmpTex, sampler),\n\t\tctx.device.createBindGroup({\n\t\t\tlayout: sigLayout,\n\t\t\tentries: [\n\t\t\t\t{\n\t\t\t\t\tbinding: 0,\n\t\t\t\t\tresource: freqView\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tbinding: 1,\n\t\t\t\t\tresource: angleView\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tbinding: 2,\n\t\t\t\t\tresource: contrastView\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tbinding: 3,\n\t\t\t\t\tresource: cyanView\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tbinding: 4,\n\t\t\t\t\tresource: magView\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tbinding: 5,\n\t\t\t\t\tresource: yelView\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tbinding: 6,\n\t\t\t\t\tresource: blkView\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tbinding: 7,\n\t\t\t\t\tresource: opacityView\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tbinding: 8,\n\t\t\t\t\tresource: sampler\n\t\t\t\t}\n\t\t\t]\n\t\t})\n\t]);\n\tdrawTextureToTarget(args, outTex);\n};\n\n//#endregion\n//#region src/renderers/index.ts\nvar renderers_default = defineRenderer({ WebGPURenderer: HalftoneScreenWebGPURenderer });\n\n//#endregion\nexport { renderers_default as t };\n//# sourceMappingURL=renderers-CvluQiq3.mjs.map"],"mappings":"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"}