framefields 2.0.10 → 2.1.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 (562) hide show
  1. package/README.md +39 -11
  2. package/dist/audio/index.d.mts +4 -4
  3. package/dist/audio/index.mjs +13 -12
  4. package/dist/{audio-BxA0sL9z.d.mts → audio-C2fLC3Tx.d.mts} +3 -3
  5. package/dist/{audio-BxA0sL9z.d.mts.map → audio-C2fLC3Tx.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-B7Al-W_0.mjs → audio-D_4SeMRK.mjs} +4 -4
  9. package/dist/{audio-B7Al-W_0.mjs.map → audio-D_4SeMRK.mjs.map} +1 -1
  10. package/dist/{client-CwRhflHE.mjs → client-dVxUnmHz.mjs} +1 -1
  11. package/dist/{client-CwRhflHE.mjs.map → client-dVxUnmHz.mjs.map} +1 -1
  12. package/dist/{dist-C_hjvkdN.mjs → dist-0QGroRYZ.mjs} +1 -1
  13. package/dist/{dist-C_hjvkdN.mjs.map → dist-0QGroRYZ.mjs.map} +1 -1
  14. package/dist/{dist-DzUJmIHt.mjs → dist-BY0bIWgr.mjs} +10 -2
  15. package/dist/dist-BY0bIWgr.mjs.map +1 -0
  16. package/dist/{dist-B9PkqWnN.mjs → dist-Bun_TUvZ.mjs} +24046 -20774
  17. package/dist/dist-Bun_TUvZ.mjs.map +1 -0
  18. package/dist/{dist-BFjSQP7i.mjs → dist-DlzqyRar.mjs} +75 -618
  19. package/dist/dist-DlzqyRar.mjs.map +1 -0
  20. package/dist/{dist-cjs-TsA8LFXC.mjs → dist-cjs-91nR6B7Z.mjs} +3 -3
  21. package/dist/{dist-cjs-TsA8LFXC.mjs.map → dist-cjs-91nR6B7Z.mjs.map} +1 -1
  22. package/dist/{dist-cjs-DJ8fcQEe.mjs → dist-cjs-BAIenEMC.mjs} +11 -11
  23. package/dist/{dist-cjs-DJ8fcQEe.mjs.map → dist-cjs-BAIenEMC.mjs.map} +1 -1
  24. package/dist/{dist-cjs-BmyyWYWv.mjs → dist-cjs-BEQhh76X.mjs} +2 -2
  25. package/dist/{dist-cjs-BmyyWYWv.mjs.map → dist-cjs-BEQhh76X.mjs.map} +1 -1
  26. package/dist/{dist-cjs--pxyGFw2.mjs → dist-cjs-BYPq7pfw.mjs} +1 -1
  27. package/dist/{dist-cjs--pxyGFw2.mjs.map → dist-cjs-BYPq7pfw.mjs.map} +1 -1
  28. package/dist/{dist-cjs--lfMLs3U.mjs → dist-cjs-BocDqSCX.mjs} +4 -4
  29. package/dist/{dist-cjs--lfMLs3U.mjs.map → dist-cjs-BocDqSCX.mjs.map} +1 -1
  30. package/dist/{dist-cjs-CsU2sZoX.mjs → dist-cjs-CWiNggTl.mjs} +4 -4
  31. package/dist/{dist-cjs-CsU2sZoX.mjs.map → dist-cjs-CWiNggTl.mjs.map} +1 -1
  32. package/dist/{dist-cjs-DjzmP0-x.mjs → dist-cjs-CwabutT6.mjs} +13 -13
  33. package/dist/{dist-cjs-DjzmP0-x.mjs.map → dist-cjs-CwabutT6.mjs.map} +1 -1
  34. package/dist/{dist-cjs-BDpO-TH_.mjs → dist-cjs-D-EE4Ahy.mjs} +1 -1
  35. package/dist/{dist-cjs-BDpO-TH_.mjs.map → dist-cjs-D-EE4Ahy.mjs.map} +1 -1
  36. package/dist/{dist-cjs-CQwmMllY.mjs → dist-cjs-DNtDUWfk.mjs} +6 -6
  37. package/dist/{dist-cjs-CQwmMllY.mjs.map → dist-cjs-DNtDUWfk.mjs.map} +1 -1
  38. package/dist/{dist-cjs-CND_ghfH.mjs → dist-cjs-DbZhsgS0.mjs} +1 -1
  39. package/dist/{dist-cjs-CND_ghfH.mjs.map → dist-cjs-DbZhsgS0.mjs.map} +1 -1
  40. package/dist/{dist-cjs-CgFzrgj8.mjs → dist-cjs-Dh7REKcN.mjs} +1 -1
  41. package/dist/{dist-cjs-CgFzrgj8.mjs.map → dist-cjs-Dh7REKcN.mjs.map} +1 -1
  42. package/dist/{dist-cjs-DT2jJlcK.mjs → dist-cjs-Dobx0Nz-.mjs} +5 -5
  43. package/dist/{dist-cjs-DT2jJlcK.mjs.map → dist-cjs-Dobx0Nz-.mjs.map} +1 -1
  44. package/dist/{dist-cjs-DzjrlfbE.mjs → dist-cjs-Du0UpNof.mjs} +14 -14
  45. package/dist/{dist-cjs-DzjrlfbE.mjs.map → dist-cjs-Du0UpNof.mjs.map} +1 -1
  46. package/dist/dist-cjs-DyHiUfsr.mjs +6 -0
  47. package/dist/{dist-cjs-M-8QOgS_.mjs → dist-cjs-HHMfMF5a.mjs} +2 -2
  48. package/dist/{dist-cjs-M-8QOgS_.mjs.map → dist-cjs-HHMfMF5a.mjs.map} +1 -1
  49. package/dist/{dist-cjs-BiKQozdJ.mjs → dist-cjs-UJYQzLNT.mjs} +3 -3
  50. package/dist/{dist-cjs-BiKQozdJ.mjs.map → dist-cjs-UJYQzLNT.mjs.map} +1 -1
  51. package/dist/{dist-cjs-agQl9T8M.mjs → dist-cjs-UKxm5cFR.mjs} +6 -6
  52. package/dist/{dist-cjs-agQl9T8M.mjs.map → dist-cjs-UKxm5cFR.mjs.map} +1 -1
  53. package/dist/{dist-B9Afsv83.mjs → dist-fjKpBYkc.mjs} +662 -28
  54. package/dist/dist-fjKpBYkc.mjs.map +1 -0
  55. package/dist/effects/index.d.mts +4 -4
  56. package/dist/effects/index.mjs +36 -34
  57. package/dist/{effects-CREopCyP.mjs → effects-FTlu0dri.mjs} +3 -3
  58. package/dist/{effects-CREopCyP.mjs.map → effects-FTlu0dri.mjs.map} +1 -1
  59. package/dist/{event-streams-BaNGaLxh.mjs → event-streams-DnRe8uwT.mjs} +2 -2
  60. package/dist/{event-streams-BaNGaLxh.mjs.map → event-streams-DnRe8uwT.mjs.map} +1 -1
  61. package/dist/fonts/index.d.mts +2 -2
  62. package/dist/fonts/index.mjs +3 -1
  63. package/dist/{fonts-DhEQ5h6E.mjs → fonts-UM5xaBOx.mjs} +66 -6
  64. package/dist/fonts-UM5xaBOx.mjs.map +1 -0
  65. package/dist/gpu-RkpiFGOA.mjs +215 -0
  66. package/dist/gpu-RkpiFGOA.mjs.map +1 -0
  67. package/dist/{index-BXNNJVs8.d.mts → index-CHQ39_Oe.d.mts} +2 -2
  68. package/dist/{index-BXNNJVs8.d.mts.map → index-CHQ39_Oe.d.mts.map} +1 -1
  69. package/dist/{index-CvDVpaKn.d.mts → index-CzQseCtg.d.mts} +8 -8
  70. package/dist/{index-CvDVpaKn.d.mts.map → index-CzQseCtg.d.mts.map} +1 -1
  71. package/dist/{index-D1zaOwEU.d.mts → index-D67p-rHX.d.mts} +3506 -1280
  72. package/dist/index-D67p-rHX.d.mts.map +1 -0
  73. package/dist/{index-J9CIK_nu.d.mts → index-DPicEt8H.d.mts} +10 -2
  74. package/dist/index-DPicEt8H.d.mts.map +1 -0
  75. package/dist/{index-oodg5k9K.d.mts → index-Db8Z3AtX.d.mts} +3 -3
  76. package/dist/{index-oodg5k9K.d.mts.map → index-Db8Z3AtX.d.mts.map} +1 -1
  77. package/dist/{index-fo4E7A6C.d.mts → index-DsOqONsj.d.mts} +3 -3
  78. package/dist/{index-fo4E7A6C.d.mts.map → index-DsOqONsj.d.mts.map} +1 -1
  79. package/dist/{index-CQcdKyxF.d.mts → index-l03NV8JS.d.mts} +59 -2
  80. package/dist/index-l03NV8JS.d.mts.map +1 -0
  81. package/dist/index.d.mts +416 -1849
  82. package/dist/index.d.mts.map +1 -1
  83. package/dist/index.mjs +669 -79
  84. package/dist/index.mjs.map +1 -1
  85. package/dist/{package-XpCRbTOA.mjs → package-CudzAF-n.mjs} +1 -1
  86. package/dist/{package-XpCRbTOA.mjs.map → package-CudzAF-n.mjs.map} +1 -1
  87. package/dist/preview/index.d.mts +2 -2
  88. package/dist/preview/index.mjs +13 -12
  89. package/dist/{preview-9ifxywUM.mjs → preview-DwClLMlU.mjs} +3 -3
  90. package/dist/{preview-9ifxywUM.mjs.map → preview-DwClLMlU.mjs.map} +1 -1
  91. package/dist/preview-engine/audio.mjs +1 -1
  92. package/dist/preview-engine/{chunk-AW7HNZKR.mjs → chunk-3GNP7TJH.mjs} +3 -3
  93. package/dist/preview-engine/{chunk-LIHUEYI5.mjs → chunk-44CQSOYE.mjs} +2 -2
  94. package/dist/preview-engine/{chunk-6JW37VJA.mjs → chunk-5AUB4Y3L.mjs} +3 -23
  95. package/dist/preview-engine/chunk-5DOD2NVY.mjs +26 -0
  96. package/dist/preview-engine/chunk-5FC7GOWW.mjs +474 -0
  97. package/dist/preview-engine/chunk-5W4AFQP7.mjs +97 -0
  98. package/dist/preview-engine/chunk-63SFBHEH.mjs +1 -0
  99. package/dist/preview-engine/chunk-7EPIRODI.mjs +91 -0
  100. package/dist/preview-engine/{chunk-PQD5UPHG.mjs → chunk-7G3XIOP7.mjs} +1 -1
  101. package/dist/preview-engine/chunk-7J2FWGVD.mjs +1 -0
  102. package/dist/preview-engine/chunk-AXHB4J37.mjs +147 -0
  103. package/dist/preview-engine/chunk-AY7UX37L.mjs +450 -0
  104. package/dist/preview-engine/chunk-B43Z3J7J.mjs +5 -0
  105. package/dist/preview-engine/chunk-BWJS6G7R.mjs +314 -0
  106. package/dist/preview-engine/{chunk-24DXIKXL.mjs → chunk-DIGIQ5MJ.mjs} +2 -2
  107. package/dist/preview-engine/{chunk-AEK5BO3J.mjs → chunk-E4RAFHZM.mjs} +1 -1
  108. package/dist/preview-engine/chunk-ENKKLU7B.mjs +22 -0
  109. package/dist/preview-engine/{chunk-XLFYM7KH.mjs → chunk-EVXWDOCL.mjs} +2 -2
  110. package/dist/preview-engine/{chunk-EQ4QZRXB.mjs → chunk-EYWPOCZW.mjs} +2 -2
  111. package/dist/preview-engine/{chunk-IYVN2QEL.mjs → chunk-FLPSWDX4.mjs} +1 -1
  112. package/dist/preview-engine/chunk-FU7AIAMM.mjs +88 -0
  113. package/dist/preview-engine/{chunk-CBM7B7EW.mjs → chunk-GMGGDADT.mjs} +1 -1
  114. package/dist/preview-engine/chunk-GSFN4WCH.mjs +62 -0
  115. package/dist/preview-engine/chunk-HE4R7EZM.mjs +121 -0
  116. package/dist/preview-engine/chunk-IQC2I5A5.mjs +1 -0
  117. package/dist/preview-engine/chunk-IQKIHFNZ.mjs +1 -0
  118. package/dist/preview-engine/{chunk-XCYFPA34.mjs → chunk-IR5DNNWR.mjs} +3 -23
  119. package/dist/preview-engine/chunk-IUPDOATX.mjs +114 -0
  120. package/dist/preview-engine/{chunk-GHMCGTJ2.mjs → chunk-J2R5R7YY.mjs} +3 -23
  121. package/dist/preview-engine/chunk-JAJOZG5P.mjs +1 -0
  122. package/dist/preview-engine/chunk-JXNG2ACR.mjs +118 -0
  123. package/dist/preview-engine/{chunk-V6VU46ZG.mjs → chunk-L6BH5J4P.mjs} +1 -1
  124. package/dist/preview-engine/chunk-LGVEFPOG.mjs +3 -0
  125. package/dist/preview-engine/{chunk-MDDF2GCF.mjs → chunk-MLY5M7Y5.mjs} +3 -23
  126. package/dist/preview-engine/chunk-NPD6W3RP.mjs +1 -0
  127. package/dist/preview-engine/chunk-OCX5AD23.mjs +1 -0
  128. package/dist/preview-engine/{chunk-D3TETPLI.mjs → chunk-OG62XGCT.mjs} +1 -1
  129. package/dist/preview-engine/chunk-OJ2PKBXE.mjs +40 -0
  130. package/dist/preview-engine/chunk-OKH2VU2U.mjs +97 -0
  131. package/dist/preview-engine/chunk-PAQNDZQB.mjs +83 -0
  132. package/dist/preview-engine/chunk-PEWYB6WP.mjs +43 -0
  133. package/dist/preview-engine/chunk-PL4IH5V4.mjs +89 -0
  134. package/dist/preview-engine/chunk-PSRQA3QW.mjs +84 -0
  135. package/dist/preview-engine/{chunk-JAOXXYXG.mjs → chunk-PXT52LEH.mjs} +3 -23
  136. package/dist/preview-engine/chunk-Q22PJXFJ.mjs +69 -0
  137. package/dist/preview-engine/chunk-Q4Z54DQ7.mjs +1 -0
  138. package/dist/preview-engine/{chunk-BHFI3Y4T.mjs → chunk-QBEUICZD.mjs} +1 -1
  139. package/dist/preview-engine/chunk-RQLMW6MA.mjs +4 -0
  140. package/dist/preview-engine/chunk-RSMO7NPN.mjs +1 -0
  141. package/dist/preview-engine/chunk-RW2F3XLQ.mjs +90 -0
  142. package/dist/preview-engine/{chunk-25IW7NYO.mjs → chunk-S2CTIJSI.mjs} +1 -1
  143. package/dist/preview-engine/chunk-SGPRLTNF.mjs +52 -0
  144. package/dist/preview-engine/{chunk-Y6FEU4TV.mjs → chunk-SZW5J72T.mjs} +3 -23
  145. package/dist/preview-engine/{chunk-7DIAFPQP.mjs → chunk-T2FE5VOW.mjs} +3 -23
  146. package/dist/preview-engine/{chunk-ZSIJB76A.mjs → chunk-TS3JI3BH.mjs} +2 -2
  147. package/dist/preview-engine/{chunk-AMBSW6OA.mjs → chunk-U4JIFQRR.mjs} +2 -2
  148. package/dist/preview-engine/chunk-VRGREB3V.mjs +1 -0
  149. package/dist/preview-engine/{chunk-BJKH76OM.mjs → chunk-VXS5SIEC.mjs} +3 -23
  150. package/dist/preview-engine/chunk-WFGJXCZT.mjs +53 -0
  151. package/dist/preview-engine/chunk-WH5Q2NFN.mjs +32 -0
  152. package/dist/preview-engine/{chunk-YG35X5R5.mjs → chunk-WUKH7BD7.mjs} +1 -1
  153. package/dist/preview-engine/chunk-XC5WZNOY.mjs +1448 -0
  154. package/dist/preview-engine/chunk-YQZOGEPZ.mjs +186 -0
  155. package/dist/preview-engine/{chunk-VVLM6LZ3.mjs → chunk-ZDQF3OTC.mjs} +1 -1
  156. package/dist/preview-engine/chunk-ZIIFTWDH.mjs +58 -0
  157. package/dist/preview-engine/effects.mjs +1 -1
  158. package/dist/preview-engine/fonts.mjs +1 -1
  159. package/dist/preview-engine/framefields.mjs +127 -130
  160. package/dist/preview-engine/player.mjs +6 -6
  161. package/dist/preview-engine/renderers-2H7YEUTD.mjs +1 -0
  162. package/dist/preview-engine/renderers-2ILG23ED.mjs +1 -0
  163. package/dist/preview-engine/renderers-2P6KXWEZ.mjs +1 -0
  164. package/dist/preview-engine/renderers-2SVWAB42.mjs +1 -0
  165. package/dist/preview-engine/renderers-2VN3AH45.mjs +104 -0
  166. package/dist/preview-engine/renderers-3RC5FDWX.mjs +1 -0
  167. package/dist/preview-engine/renderers-57WDL6XN.mjs +1 -0
  168. package/dist/preview-engine/{renderers-CAUWP4XH.mjs → renderers-6OGFUSH6.mjs} +3 -23
  169. package/dist/preview-engine/renderers-6WH7NZCC.mjs +1 -0
  170. package/dist/preview-engine/renderers-7VJN5L3Z.mjs +1 -0
  171. package/dist/preview-engine/renderers-A6HM64UZ.mjs +1 -0
  172. package/dist/preview-engine/{renderers-WLH4HRUE.mjs → renderers-A7VH3ON5.mjs} +1 -1
  173. package/dist/preview-engine/renderers-B7DSGUMI.mjs +1 -0
  174. package/dist/preview-engine/renderers-BFNJ7VCI.mjs +1 -0
  175. package/dist/preview-engine/renderers-BSKZXITT.mjs +35 -0
  176. package/dist/preview-engine/renderers-CGYIDAVV.mjs +1 -0
  177. package/dist/preview-engine/renderers-CRRLV7IO.mjs +1 -0
  178. package/dist/preview-engine/{renderers-JQHUBWLL.mjs → renderers-D6T6IPER.mjs} +3 -23
  179. package/dist/preview-engine/renderers-DXHJAMZR.mjs +1 -0
  180. package/dist/preview-engine/renderers-ECA3P4ON.mjs +1 -0
  181. package/dist/preview-engine/{renderers-W5CVDJVH.mjs → renderers-F55XFVMP.mjs} +1 -1
  182. package/dist/preview-engine/renderers-FWGMNPYB.mjs +1 -0
  183. package/dist/preview-engine/renderers-H46TS3IG.mjs +228 -0
  184. package/dist/preview-engine/renderers-HXFRTIJD.mjs +1 -0
  185. package/dist/preview-engine/renderers-IWQ3V6AJ.mjs +1 -0
  186. package/dist/preview-engine/renderers-JHFT27YU.mjs +1 -0
  187. package/dist/preview-engine/renderers-KZWGSKRF.mjs +1 -0
  188. package/dist/preview-engine/renderers-MON4QFRF.mjs +1 -0
  189. package/dist/preview-engine/renderers-NQXMYNSY.mjs +1 -0
  190. package/dist/preview-engine/renderers-NWHS7N2L.mjs +1 -0
  191. package/dist/preview-engine/renderers-ORAIXUL3.mjs +1 -0
  192. package/dist/preview-engine/renderers-OT7D3BUA.mjs +1 -0
  193. package/dist/preview-engine/renderers-Q4OFCMXI.mjs +1 -0
  194. package/dist/preview-engine/renderers-QVZVEYP5.mjs +1 -0
  195. package/dist/preview-engine/renderers-RJO6H4FC.mjs +1 -0
  196. package/dist/preview-engine/renderers-RKDPX5JU.mjs +1 -0
  197. package/dist/preview-engine/{renderers-2US2NIUG.mjs → renderers-RLHTNLRE.mjs} +3 -23
  198. package/dist/preview-engine/renderers-SBFF7JP5.mjs +1 -0
  199. package/dist/preview-engine/renderers-SCJ6OKTB.mjs +1 -0
  200. package/dist/preview-engine/renderers-T4JMJXWL.mjs +1 -0
  201. package/dist/preview-engine/renderers-TAWT3ZSS.mjs +1 -0
  202. package/dist/preview-engine/renderers-U6KY34TP.mjs +100 -0
  203. package/dist/preview-engine/renderers-UHTO6BQA.mjs +1 -0
  204. package/dist/preview-engine/renderers-UNK6I4JJ.mjs +1 -0
  205. package/dist/preview-engine/renderers-UPTJJE5F.mjs +1 -0
  206. package/dist/preview-engine/renderers-W773SBPV.mjs +1 -0
  207. package/dist/preview-engine/renderers-XHTMRXC5.mjs +1 -0
  208. package/dist/preview-engine/renderers-YECY2YFT.mjs +1 -0
  209. package/dist/preview-engine/renderers-YMN6QXK7.mjs +1 -0
  210. package/dist/preview-engine/renderers-ZANPE3OK.mjs +1 -0
  211. package/dist/preview-engine/renderers-ZHTX73PR.mjs +1 -0
  212. package/dist/preview-engine/renderers-ZJTRANIX.mjs +1 -0
  213. package/dist/preview-engine/signals.mjs +1 -1
  214. package/dist/preview-engine/skia-canvas-QBXAOGPB.mjs +1 -0
  215. package/dist/{program-xRfFoPxe.mjs → program-BqFVw5Mu.mjs} +295 -2279
  216. package/dist/program-BqFVw5Mu.mjs.map +1 -0
  217. package/dist/renderer/index.d.mts +2 -2
  218. package/dist/renderer/index.mjs +3 -3
  219. package/dist/{renderer-BgdkEFmv.mjs → renderer-2Nf9ypST.mjs} +85 -279
  220. package/dist/renderer-2Nf9ypST.mjs.map +1 -0
  221. package/dist/{renderer-BREIjsUU.mjs → renderer-2uN2cd0y.mjs} +14 -40
  222. package/dist/renderer-2uN2cd0y.mjs.map +1 -0
  223. package/dist/renderer-31jAuNzF.mjs +5 -0
  224. package/dist/renderer-36EI7Rsz.mjs +5 -0
  225. package/dist/renderer-3io-cjTt.mjs +5 -0
  226. package/dist/renderer-9_zWTHbg.mjs +5 -0
  227. package/dist/{renderer-5h0llpx7.mjs → renderer-B12_76qk.mjs} +4 -3
  228. package/dist/{renderer-5h0llpx7.mjs.map → renderer-B12_76qk.mjs.map} +1 -1
  229. package/dist/{renderer-_bygZSKk.mjs → renderer-B4oS8ZFO.mjs} +29 -98
  230. package/dist/renderer-B4oS8ZFO.mjs.map +1 -0
  231. package/dist/renderer-B6KnbfdA.mjs +5 -0
  232. package/dist/renderer-B7Y2bmRc.mjs +5 -0
  233. package/dist/renderer-BA6miaaI.mjs +5 -0
  234. package/dist/{renderer-CoZKST2Y.mjs → renderer-BGr_cBKV.mjs} +61 -208
  235. package/dist/renderer-BGr_cBKV.mjs.map +1 -0
  236. package/dist/renderer-BHi-Q6Z_.mjs +5 -0
  237. package/dist/{renderer-BiSALMQy.mjs → renderer-BLcu9RDt.mjs} +3 -1
  238. package/dist/{renderer-D2XD4QYk.mjs → renderer-BO2lYmtE.mjs} +34 -147
  239. package/dist/renderer-BO2lYmtE.mjs.map +1 -0
  240. package/dist/renderer-BOlN9HeG.mjs +5 -0
  241. package/dist/renderer-BSitV56h.mjs +268 -0
  242. package/dist/renderer-BSitV56h.mjs.map +1 -0
  243. package/dist/renderer-BTOW-ceB.mjs +5 -0
  244. package/dist/{renderer-wVldKtFU.mjs → renderer-BYqfkwLf.mjs} +51 -163
  245. package/dist/renderer-BYqfkwLf.mjs.map +1 -0
  246. package/dist/{renderer-bZU_ndxf.mjs → renderer-BajIOuZH.mjs} +2 -2
  247. package/dist/{renderer-bZU_ndxf.mjs.map → renderer-BajIOuZH.mjs.map} +1 -1
  248. package/dist/{renderer-jkZ_IQnW.mjs → renderer-BgnJUx24.mjs} +80 -258
  249. package/dist/renderer-BgnJUx24.mjs.map +1 -0
  250. package/dist/renderer-BiQ0PYOp.mjs +5 -0
  251. package/dist/{renderer-BnvqEqvE.mjs → renderer-BjTq3a0L.mjs} +5 -4
  252. package/dist/{renderer-BnvqEqvE.mjs.map → renderer-BjTq3a0L.mjs.map} +1 -1
  253. package/dist/{renderer-DEJwPRkR.mjs → renderer-BkN20ZKO.mjs} +15 -51
  254. package/dist/renderer-BkN20ZKO.mjs.map +1 -0
  255. package/dist/renderer-Bla7GDyV.mjs +5 -0
  256. package/dist/renderer-BoYyLVKy.mjs +5 -0
  257. package/dist/{renderer-D7zvPHKn.mjs → renderer-BpZaHFRc.mjs} +18 -28
  258. package/dist/renderer-BpZaHFRc.mjs.map +1 -0
  259. package/dist/renderer-BqOgb7bM.mjs +5 -0
  260. package/dist/{renderer-DNNqpK7t.mjs → renderer-Bq_dO0LG.mjs} +10 -17
  261. package/dist/renderer-Bq_dO0LG.mjs.map +1 -0
  262. package/dist/renderer-BqeM8yTJ.mjs +5 -0
  263. package/dist/{renderer-DryPrxYc.mjs → renderer-BqsV75Ml.mjs} +3 -1
  264. package/dist/{renderer-8qpGxSSO.mjs → renderer-Bs4tz_pw.mjs} +20 -87
  265. package/dist/renderer-Bs4tz_pw.mjs.map +1 -0
  266. package/dist/{renderer-DdVBt8Rz.mjs → renderer-Bsaokil3.mjs} +24 -104
  267. package/dist/renderer-Bsaokil3.mjs.map +1 -0
  268. package/dist/{renderer-D7ztfQHX.mjs → renderer-BvG1GF1c.mjs} +10 -16
  269. package/dist/renderer-BvG1GF1c.mjs.map +1 -0
  270. package/dist/{renderer-BGXbGqY4.mjs → renderer-BvpSIFkw.mjs} +83 -266
  271. package/dist/renderer-BvpSIFkw.mjs.map +1 -0
  272. package/dist/{renderer-Dju9CaeL.mjs → renderer-BwAqwTQq.mjs} +62 -209
  273. package/dist/renderer-BwAqwTQq.mjs.map +1 -0
  274. package/dist/{renderer-CzPWB0Ss.mjs → renderer-BwVfhrEx.mjs} +13 -45
  275. package/dist/renderer-BwVfhrEx.mjs.map +1 -0
  276. package/dist/renderer-BzpRe50i.mjs +5 -0
  277. package/dist/renderer-C0eAPwpr.mjs +5 -0
  278. package/dist/{renderer-But0u-xi.mjs → renderer-C3RfT8Gv.mjs} +59 -194
  279. package/dist/renderer-C3RfT8Gv.mjs.map +1 -0
  280. package/dist/{renderer-CgmFh6MY.mjs → renderer-C3cYDT3m.mjs} +3 -1
  281. package/dist/{renderer-D-4Yh-RK.mjs → renderer-CEGbqT2m.mjs} +236 -96
  282. package/dist/renderer-CEGbqT2m.mjs.map +1 -0
  283. package/dist/{renderer-CcU7dVn9.mjs → renderer-CGldH-Zx.mjs} +40 -142
  284. package/dist/renderer-CGldH-Zx.mjs.map +1 -0
  285. package/dist/renderer-CGn8V63v.mjs +5 -0
  286. package/dist/{renderer-DffynBHa.mjs → renderer-CH9Qtpy7.mjs} +4 -4
  287. package/dist/{renderer-DffynBHa.mjs.map → renderer-CH9Qtpy7.mjs.map} +1 -1
  288. package/dist/{renderer-ho_jXJ0H.mjs → renderer-CLyuu_19.mjs} +23 -117
  289. package/dist/renderer-CLyuu_19.mjs.map +1 -0
  290. package/dist/renderer-CM5Syo9r.mjs +5 -0
  291. package/dist/{renderer-BJ6Y-7ke.mjs → renderer-CRIM_XRK.mjs} +3 -3
  292. package/dist/{renderer-BJ6Y-7ke.mjs.map → renderer-CRIM_XRK.mjs.map} +1 -1
  293. package/dist/{renderer-2NQWaZd7.d.mts → renderer-CTGe8SqQ.d.mts} +2 -2
  294. package/dist/{renderer-2NQWaZd7.d.mts.map → renderer-CTGe8SqQ.d.mts.map} +1 -1
  295. package/dist/renderer-CWCEW6Wv.mjs +5 -0
  296. package/dist/{renderer-CNF10fCq.mjs → renderer-CgyOylPO.mjs} +10 -17
  297. package/dist/renderer-CgyOylPO.mjs.map +1 -0
  298. package/dist/{renderer-DjTiNeAp.mjs → renderer-CjT5Zy-J.mjs} +81 -221
  299. package/dist/renderer-CjT5Zy-J.mjs.map +1 -0
  300. package/dist/{renderer-_uvdg48N.mjs → renderer-Cjq1s3br.mjs} +24 -93
  301. package/dist/renderer-Cjq1s3br.mjs.map +1 -0
  302. package/dist/renderer-Cl70zxkP.mjs +5 -0
  303. package/dist/renderer-ClJjoVpB.mjs +6 -0
  304. package/dist/{renderer-DBlPbsgi.mjs → renderer-CpKNqciR.mjs} +3 -1
  305. package/dist/{renderer-DTvfYkI9.mjs → renderer-Cwhux4VX.mjs} +9 -16
  306. package/dist/renderer-Cwhux4VX.mjs.map +1 -0
  307. package/dist/{renderer-CJNyhr_S.mjs → renderer-D0nWLogn.mjs} +99 -282
  308. package/dist/renderer-D0nWLogn.mjs.map +1 -0
  309. package/dist/{renderer-9wp5R7PL.mjs → renderer-D1lynYuy.mjs} +23 -107
  310. package/dist/renderer-D1lynYuy.mjs.map +1 -0
  311. package/dist/{renderer-DYm4duFr.mjs → renderer-D4sYVV-I.mjs} +41 -140
  312. package/dist/renderer-D4sYVV-I.mjs.map +1 -0
  313. package/dist/{renderer-CroHPOsX.mjs → renderer-D5z3WDkm.mjs} +99 -287
  314. package/dist/renderer-D5z3WDkm.mjs.map +1 -0
  315. package/dist/renderer-D8C-pamu.mjs +148 -0
  316. package/dist/renderer-D8C-pamu.mjs.map +1 -0
  317. package/dist/{renderer-D_1oDOCP.mjs → renderer-DAtBnNGC.mjs} +14 -69
  318. package/dist/renderer-DAtBnNGC.mjs.map +1 -0
  319. package/dist/{renderer-DZGtBUCx.mjs → renderer-DG1NFsSV.mjs} +35 -185
  320. package/dist/renderer-DG1NFsSV.mjs.map +1 -0
  321. package/dist/{renderer-BM05sB8m.mjs → renderer-DHAErBtJ.mjs} +11 -74
  322. package/dist/renderer-DHAErBtJ.mjs.map +1 -0
  323. package/dist/{renderer-CStktK20.mjs → renderer-DIDSmoFA.mjs} +73 -73
  324. package/dist/{renderer-CStktK20.mjs.map → renderer-DIDSmoFA.mjs.map} +1 -1
  325. package/dist/{renderer-BA8YwBRQ.mjs → renderer-DKtP7-fr.mjs} +58 -234
  326. package/dist/renderer-DKtP7-fr.mjs.map +1 -0
  327. package/dist/renderer-DLnF-V_h.mjs +5 -0
  328. package/dist/renderer-DN1rjmcL.mjs +5 -0
  329. package/dist/{renderer-BZmfKIom.mjs → renderer-DOEsFT7Q.mjs} +57 -192
  330. package/dist/renderer-DOEsFT7Q.mjs.map +1 -0
  331. package/dist/{renderer-6GeDT4Mx.mjs → renderer-DPYB6ZcB.mjs} +57 -197
  332. package/dist/renderer-DPYB6ZcB.mjs.map +1 -0
  333. package/dist/{renderer-DCkSR2Ne.mjs → renderer-DRsPCkxr.mjs} +76 -210
  334. package/dist/renderer-DRsPCkxr.mjs.map +1 -0
  335. package/dist/renderer-DXTw9Oqb.mjs +5 -0
  336. package/dist/{renderer-DAMJZNtX.mjs → renderer-DZLJnnU2.mjs} +63 -190
  337. package/dist/renderer-DZLJnnU2.mjs.map +1 -0
  338. package/dist/{renderer-BtRfKx5N.mjs → renderer-DZrQffIP.mjs} +56 -167
  339. package/dist/renderer-DZrQffIP.mjs.map +1 -0
  340. package/dist/renderer-DbAVSBNI.mjs +5 -0
  341. package/dist/renderer-Dg8rD--8.mjs +5 -0
  342. package/dist/{renderer-BpCxKWQm.mjs → renderer-DhEyjn6Q.mjs} +52 -202
  343. package/dist/renderer-DhEyjn6Q.mjs.map +1 -0
  344. package/dist/{renderer-CIYcdZuZ.mjs → renderer-Dmv_Aj6x.mjs} +161 -457
  345. package/dist/renderer-Dmv_Aj6x.mjs.map +1 -0
  346. package/dist/renderer-DnFxegGu.mjs +5 -0
  347. package/dist/renderer-DnfmelHn.mjs +5 -0
  348. package/dist/{renderer-DxtHmyAa.mjs → renderer-Dpj68gTn.mjs} +11 -18
  349. package/dist/renderer-Dpj68gTn.mjs.map +1 -0
  350. package/dist/renderer-DuOjzggd.mjs +5 -0
  351. package/dist/renderer-DuuOlYIG.mjs +3 -0
  352. package/dist/renderer-DvYql0Cl.mjs +5 -0
  353. package/dist/{renderer-xKOVmd2O.mjs → renderer-DzhRNdBS.mjs} +245 -231
  354. package/dist/renderer-DzhRNdBS.mjs.map +1 -0
  355. package/dist/renderer-GSFP7v2z.mjs +3 -0
  356. package/dist/renderer-LfUdjgjF.mjs +5 -0
  357. package/dist/{renderer-CfeoxM_3.mjs → renderer-Q63y7HP_.mjs} +8 -15
  358. package/dist/renderer-Q63y7HP_.mjs.map +1 -0
  359. package/dist/renderer-SecCv3U8.mjs +5 -0
  360. package/dist/{renderer-b6sZN90h.mjs → renderer-mp1NN5zk.mjs} +4 -4
  361. package/dist/{renderer-b6sZN90h.mjs.map → renderer-mp1NN5zk.mjs.map} +1 -1
  362. package/dist/renderer-oZyoB4CT.mjs +5 -0
  363. package/dist/renderer-rzci_kTy.mjs +5 -0
  364. package/dist/{renderer-CpkiHRhh.mjs → renderer-to9DwqXK.mjs} +17 -99
  365. package/dist/renderer-to9DwqXK.mjs.map +1 -0
  366. package/dist/{renderer-CepMDQ06.mjs → renderer-v0vuUUUI.mjs} +19 -106
  367. package/dist/renderer-v0vuUUUI.mjs.map +1 -0
  368. package/dist/renderer-vLaZuZbX.mjs +5 -0
  369. package/dist/{renderers-CP8CFWDs-BLgwUYX2.mjs → renderers-CP8CFWDs-DlFq8jmz.mjs} +4 -4
  370. package/dist/{renderers-CP8CFWDs-BLgwUYX2.mjs.map → renderers-CP8CFWDs-DlFq8jmz.mjs.map} +1 -1
  371. package/dist/signals/index.d.mts +5 -5
  372. package/dist/signals/index.mjs +7 -7
  373. package/dist/{signals-CsxqD2AA.mjs → signals-BDkO0xcZ.mjs} +3 -3
  374. package/dist/{signals-CsxqD2AA.mjs.map → signals-BDkO0xcZ.mjs.map} +1 -1
  375. package/dist/{signin-Db08vl-g.mjs → signin-SVSXQw9i.mjs} +9 -9
  376. package/dist/{signin-Db08vl-g.mjs.map → signin-SVSXQw9i.mjs.map} +1 -1
  377. package/dist/{sso-oidc-CpLz_lIu.mjs → sso-oidc-B3Sagl43.mjs} +9 -9
  378. package/dist/{sso-oidc-CpLz_lIu.mjs.map → sso-oidc-B3Sagl43.mjs.map} +1 -1
  379. package/dist/{sts-BQefGuml.mjs → sts-CYeWec9i.mjs} +2 -2
  380. package/dist/{sts-Dgl0kH-t.mjs → sts-ClVtt-bV.mjs} +9 -9
  381. package/dist/{sts-Dgl0kH-t.mjs.map → sts-ClVtt-bV.mjs.map} +1 -1
  382. package/package.json +55 -55
  383. package/dist/dist-B9Afsv83.mjs.map +0 -1
  384. package/dist/dist-B9PkqWnN.mjs.map +0 -1
  385. package/dist/dist-BFjSQP7i.mjs.map +0 -1
  386. package/dist/dist-DzUJmIHt.mjs.map +0 -1
  387. package/dist/dist-cjs-3pon9kTt.mjs +0 -6
  388. package/dist/fonts-DhEQ5h6E.mjs.map +0 -1
  389. package/dist/index-CQcdKyxF.d.mts.map +0 -1
  390. package/dist/index-D1zaOwEU.d.mts.map +0 -1
  391. package/dist/index-J9CIK_nu.d.mts.map +0 -1
  392. package/dist/preview-engine/chunk-36YGYLKD.mjs +0 -58
  393. package/dist/preview-engine/chunk-5JD65JSJ.mjs +0 -110
  394. package/dist/preview-engine/chunk-7O24H4YT.mjs +0 -117
  395. package/dist/preview-engine/chunk-AG5JNZYQ.mjs +0 -8
  396. package/dist/preview-engine/chunk-AUFSM5KI.mjs +0 -141
  397. package/dist/preview-engine/chunk-BQ65MU6H.mjs +0 -138
  398. package/dist/preview-engine/chunk-BWDARDO6.mjs +0 -117
  399. package/dist/preview-engine/chunk-CNSHAFEA.mjs +0 -1
  400. package/dist/preview-engine/chunk-DLXQDDIN.mjs +0 -46
  401. package/dist/preview-engine/chunk-EJGLUZMW.mjs +0 -1
  402. package/dist/preview-engine/chunk-FE6RSVKZ.mjs +0 -73
  403. package/dist/preview-engine/chunk-HPIULG7P.mjs +0 -111
  404. package/dist/preview-engine/chunk-HRIKNYPF.mjs +0 -60
  405. package/dist/preview-engine/chunk-JPXQPP6J.mjs +0 -1
  406. package/dist/preview-engine/chunk-K52S5DJX.mjs +0 -109
  407. package/dist/preview-engine/chunk-MJM3NFEC.mjs +0 -315
  408. package/dist/preview-engine/chunk-NRHSNPZV.mjs +0 -182
  409. package/dist/preview-engine/chunk-OWOSYNMF.mjs +0 -104
  410. package/dist/preview-engine/chunk-QGBSLNFI.mjs +0 -52
  411. package/dist/preview-engine/chunk-QM3XFEJN.mjs +0 -63
  412. package/dist/preview-engine/chunk-QTKJXDIW.mjs +0 -997
  413. package/dist/preview-engine/chunk-R3ZH7YF3.mjs +0 -89
  414. package/dist/preview-engine/chunk-R6YNSBKL.mjs +0 -108
  415. package/dist/preview-engine/chunk-RNOO4UR5.mjs +0 -3
  416. package/dist/preview-engine/chunk-S4CSX6K5.mjs +0 -610
  417. package/dist/preview-engine/chunk-SNYAHQ25.mjs +0 -186
  418. package/dist/preview-engine/chunk-SRT2OCQW.mjs +0 -1
  419. package/dist/preview-engine/chunk-SUUUYXXT.mjs +0 -1
  420. package/dist/preview-engine/chunk-T6CC2KCZ.mjs +0 -418
  421. package/dist/preview-engine/chunk-T6COGNOW.mjs +0 -134
  422. package/dist/preview-engine/chunk-UC7CSW2A.mjs +0 -1
  423. package/dist/preview-engine/chunk-XFYXT76H.mjs +0 -52
  424. package/dist/preview-engine/chunk-XUM42I4R.mjs +0 -1
  425. package/dist/preview-engine/chunk-YITWSOG4.mjs +0 -103
  426. package/dist/preview-engine/chunk-ZDCA6NVT.mjs +0 -82
  427. package/dist/preview-engine/chunk-ZNGOAGAI.mjs +0 -1
  428. package/dist/preview-engine/renderers-27Q5X3U6.mjs +0 -1
  429. package/dist/preview-engine/renderers-32PIFHPS.mjs +0 -1
  430. package/dist/preview-engine/renderers-3Y3EMRDJ.mjs +0 -1
  431. package/dist/preview-engine/renderers-4AHH6BHF.mjs +0 -1
  432. package/dist/preview-engine/renderers-6PRVCTYV.mjs +0 -1
  433. package/dist/preview-engine/renderers-76PQY2SO.mjs +0 -1
  434. package/dist/preview-engine/renderers-7HNVXNAI.mjs +0 -248
  435. package/dist/preview-engine/renderers-B52QT6MT.mjs +0 -55
  436. package/dist/preview-engine/renderers-BE6RVJSE.mjs +0 -1
  437. package/dist/preview-engine/renderers-BMM2BH56.mjs +0 -1
  438. package/dist/preview-engine/renderers-CHJWUJVI.mjs +0 -1
  439. package/dist/preview-engine/renderers-CHOGQHVQ.mjs +0 -1
  440. package/dist/preview-engine/renderers-CI2GXWLP.mjs +0 -1
  441. package/dist/preview-engine/renderers-CRKRWR2Y.mjs +0 -1
  442. package/dist/preview-engine/renderers-DEYDSGJX.mjs +0 -1
  443. package/dist/preview-engine/renderers-DZTNRCR7.mjs +0 -1
  444. package/dist/preview-engine/renderers-EE2GFG7J.mjs +0 -1
  445. package/dist/preview-engine/renderers-ELO3KWTK.mjs +0 -1
  446. package/dist/preview-engine/renderers-F2KJNDWA.mjs +0 -124
  447. package/dist/preview-engine/renderers-FCV4COVB.mjs +0 -1
  448. package/dist/preview-engine/renderers-GJSUN5HU.mjs +0 -1
  449. package/dist/preview-engine/renderers-GXCRINGC.mjs +0 -1
  450. package/dist/preview-engine/renderers-IHKORHMT.mjs +0 -1
  451. package/dist/preview-engine/renderers-JA4SLMG3.mjs +0 -1
  452. package/dist/preview-engine/renderers-JLN77CFZ.mjs +0 -1
  453. package/dist/preview-engine/renderers-KBFW7B5F.mjs +0 -1
  454. package/dist/preview-engine/renderers-LJRJMFCR.mjs +0 -1
  455. package/dist/preview-engine/renderers-LPAPZ5QS.mjs +0 -1
  456. package/dist/preview-engine/renderers-NQUDQEHY.mjs +0 -1
  457. package/dist/preview-engine/renderers-NS3AIJVG.mjs +0 -1
  458. package/dist/preview-engine/renderers-NSY2SDIE.mjs +0 -1
  459. package/dist/preview-engine/renderers-PW4OJWHF.mjs +0 -120
  460. package/dist/preview-engine/renderers-PWLWOZY4.mjs +0 -1
  461. package/dist/preview-engine/renderers-Q3MD34JN.mjs +0 -1
  462. package/dist/preview-engine/renderers-RXGNA2Q7.mjs +0 -1
  463. package/dist/preview-engine/renderers-UGZUPONY.mjs +0 -1
  464. package/dist/preview-engine/renderers-VTTGFO55.mjs +0 -1
  465. package/dist/preview-engine/renderers-W3VVM5HB.mjs +0 -1
  466. package/dist/preview-engine/renderers-WG7QBD4D.mjs +0 -1
  467. package/dist/preview-engine/renderers-WLLJFZTF.mjs +0 -1
  468. package/dist/preview-engine/renderers-WN4SYFCU.mjs +0 -1
  469. package/dist/preview-engine/renderers-WSMLLSWX.mjs +0 -1
  470. package/dist/preview-engine/renderers-XFBSGTHU.mjs +0 -1
  471. package/dist/preview-engine/renderers-XFC6ZPO5.mjs +0 -1
  472. package/dist/preview-engine/renderers-XUHRY3XH.mjs +0 -1
  473. package/dist/preview-engine/renderers-YAOB5XU6.mjs +0 -1
  474. package/dist/preview-engine/renderers-YTB4FOHT.mjs +0 -1
  475. package/dist/program-xRfFoPxe.mjs.map +0 -1
  476. package/dist/renderer-6GeDT4Mx.mjs.map +0 -1
  477. package/dist/renderer-8qpGxSSO.mjs.map +0 -1
  478. package/dist/renderer-9wp5R7PL.mjs.map +0 -1
  479. package/dist/renderer-B2XzjK0z.mjs +0 -3
  480. package/dist/renderer-B4F6wL68.mjs +0 -3
  481. package/dist/renderer-B4i1jmiT.mjs +0 -3
  482. package/dist/renderer-B5ylY3uM.mjs +0 -3
  483. package/dist/renderer-BA8YwBRQ.mjs.map +0 -1
  484. package/dist/renderer-BGXbGqY4.mjs.map +0 -1
  485. package/dist/renderer-BM05sB8m.mjs.map +0 -1
  486. package/dist/renderer-BPw23wiR.mjs +0 -3
  487. package/dist/renderer-BREIjsUU.mjs.map +0 -1
  488. package/dist/renderer-BTu2EVhF.mjs +0 -3
  489. package/dist/renderer-BZmfKIom.mjs.map +0 -1
  490. package/dist/renderer-BfJSUjPN.mjs +0 -3
  491. package/dist/renderer-BgdkEFmv.mjs.map +0 -1
  492. package/dist/renderer-BghW-bSZ.mjs +0 -3
  493. package/dist/renderer-BpCxKWQm.mjs.map +0 -1
  494. package/dist/renderer-BtRfKx5N.mjs.map +0 -1
  495. package/dist/renderer-But0u-xi.mjs.map +0 -1
  496. package/dist/renderer-Bw3oZ9YT.mjs +0 -3
  497. package/dist/renderer-C-H680_l.mjs +0 -3
  498. package/dist/renderer-C2009W-_.mjs +0 -3
  499. package/dist/renderer-C36yoGXG.mjs +0 -3
  500. package/dist/renderer-CDLrNgfo.mjs +0 -3
  501. package/dist/renderer-CIYcdZuZ.mjs.map +0 -1
  502. package/dist/renderer-CJNyhr_S.mjs.map +0 -1
  503. package/dist/renderer-CL3evUmF.mjs +0 -3
  504. package/dist/renderer-CM1_2ZWA.mjs +0 -3
  505. package/dist/renderer-CNF10fCq.mjs.map +0 -1
  506. package/dist/renderer-CQdVj2JS.mjs +0 -3
  507. package/dist/renderer-CQiTodg9.mjs +0 -337
  508. package/dist/renderer-CQiTodg9.mjs.map +0 -1
  509. package/dist/renderer-CWlzudP8.mjs +0 -3
  510. package/dist/renderer-CZgB5st8.mjs +0 -3
  511. package/dist/renderer-CcU7dVn9.mjs.map +0 -1
  512. package/dist/renderer-Cd5vzrGs.mjs +0 -3
  513. package/dist/renderer-CeJ_vDXI.mjs +0 -3
  514. package/dist/renderer-CepMDQ06.mjs.map +0 -1
  515. package/dist/renderer-CfeoxM_3.mjs.map +0 -1
  516. package/dist/renderer-CjY77sB_.mjs +0 -3
  517. package/dist/renderer-CkykdR_D.mjs +0 -3
  518. package/dist/renderer-CoZKST2Y.mjs.map +0 -1
  519. package/dist/renderer-CpkiHRhh.mjs.map +0 -1
  520. package/dist/renderer-CroHPOsX.mjs.map +0 -1
  521. package/dist/renderer-CtVkU_GA.mjs +0 -44
  522. package/dist/renderer-CtVkU_GA.mjs.map +0 -1
  523. package/dist/renderer-CzPWB0Ss.mjs.map +0 -1
  524. package/dist/renderer-D-4Yh-RK.mjs.map +0 -1
  525. package/dist/renderer-D2XD4QYk.mjs.map +0 -1
  526. package/dist/renderer-D5Z6mda5.mjs +0 -3
  527. package/dist/renderer-D7ztfQHX.mjs.map +0 -1
  528. package/dist/renderer-D7zvPHKn.mjs.map +0 -1
  529. package/dist/renderer-D9NnIx7o.mjs +0 -3
  530. package/dist/renderer-DAMJZNtX.mjs.map +0 -1
  531. package/dist/renderer-DCJa7OGk.mjs +0 -3
  532. package/dist/renderer-DCkSR2Ne.mjs.map +0 -1
  533. package/dist/renderer-DEJwPRkR.mjs.map +0 -1
  534. package/dist/renderer-DGwSl7g1.mjs +0 -3
  535. package/dist/renderer-DNNqpK7t.mjs.map +0 -1
  536. package/dist/renderer-DNoRNfMm.mjs +0 -3
  537. package/dist/renderer-DOZ8bpyY.mjs +0 -3
  538. package/dist/renderer-DRHyRNU8.mjs +0 -3
  539. package/dist/renderer-DTvfYkI9.mjs.map +0 -1
  540. package/dist/renderer-DYm4duFr.mjs.map +0 -1
  541. package/dist/renderer-DZGtBUCx.mjs.map +0 -1
  542. package/dist/renderer-D_1oDOCP.mjs.map +0 -1
  543. package/dist/renderer-DdVBt8Rz.mjs.map +0 -1
  544. package/dist/renderer-DjTiNeAp.mjs.map +0 -1
  545. package/dist/renderer-Dju9CaeL.mjs.map +0 -1
  546. package/dist/renderer-DlD85Xoi.mjs +0 -3
  547. package/dist/renderer-Dr0bgOrW.mjs +0 -3
  548. package/dist/renderer-DurtG-Hc.mjs +0 -3
  549. package/dist/renderer-DxtHmyAa.mjs.map +0 -1
  550. package/dist/renderer-_bygZSKk.mjs.map +0 -1
  551. package/dist/renderer-_uvdg48N.mjs.map +0 -1
  552. package/dist/renderer-d5-F_48R.mjs +0 -3
  553. package/dist/renderer-eFv9HBmL.mjs +0 -3
  554. package/dist/renderer-ho_jXJ0H.mjs.map +0 -1
  555. package/dist/renderer-iuV6wQoL.mjs +0 -4
  556. package/dist/renderer-jkZ_IQnW.mjs.map +0 -1
  557. package/dist/renderer-n-uuWPF4.mjs +0 -3
  558. package/dist/renderer-rzccTFuY.mjs +0 -3
  559. package/dist/renderer-wVldKtFU.mjs.map +0 -1
  560. package/dist/renderer-xKOVmd2O.mjs.map +0 -1
  561. package/dist/renderer-y9eGFPFL.mjs +0 -3
  562. /package/dist/{renderer-C2n-EHxg.mjs → renderer-B-BcgA6d.mjs} +0 -0
@@ -0,0 +1,90 @@
1
+ import{a as B,d as y,g as V,h as N,j as O,k as W,m as _}from"./chunk-ENKKLU7B.mjs";import{d as b}from"./chunk-6YJP57MZ.mjs";import{a as C}from"./chunk-IQC2I5A5.mjs";import{e as g}from"./chunk-BVF64D6H.mjs";g();g();var A=new WeakMap,K=`
2
+ struct GradientStop {
3
+ pos : vec4<f32>,
4
+ col : vec4<f32>,
5
+ };
6
+
7
+ struct GradientMapUniforms {
8
+ numStops : f32,
9
+ isSmooth : f32,
10
+ dither : f32,
11
+ opacity : f32,
12
+
13
+ hasOpacitySig : f32,
14
+ pad0 : f32,
15
+ pad1 : f32,
16
+ pad2 : f32,
17
+
18
+ stops : array<GradientStop, 16>,
19
+ };
20
+
21
+ @group(0) @binding(0) var<uniform> u : GradientMapUniforms;
22
+ @group(1) @binding(0) var tex : texture_2d<f32>;
23
+ @group(1) @binding(1) var samp : sampler;
24
+ @group(2) @binding(0) var opacitySigTex : texture_2d<f32>;
25
+ @group(2) @binding(1) var signalSamp : sampler;
26
+ ${B}
27
+
28
+ fn ditherNoise(pos: vec2<f32>) -> f32 {
29
+ let p = fract(pos * vec2<f32>(0.1031, 0.1030));
30
+ let d = dot(p, p.yx + 33.33);
31
+ return fract((p.x + p.y) * d) - 0.5;
32
+ }
33
+
34
+ @fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {
35
+ let color = textureSampleLevel(tex, samp, in.uv, 0.0);
36
+ if (color.a <= 0.00001) {
37
+ return color;
38
+ }
39
+
40
+ let alpha = color.a;
41
+ let rgb = color.rgb / max(alpha, 0.0001);
42
+
43
+ // ITU-R BT.709 Luminance
44
+ var lum = dot(rgb, vec3<f32>(0.2126, 0.7152, 0.0722));
45
+
46
+ if (u.dither > 0.5) {
47
+ let d = ditherNoise(in.pos.xy) * (1.0 / 255.0);
48
+ lum = clamp(lum + d, 0.0, 1.0);
49
+ } else {
50
+ lum = clamp(lum, 0.0, 1.0);
51
+ }
52
+
53
+ let count = i32(clamp(u.numStops, 2.0, 16.0));
54
+ var gradColor = u.stops[0].col.rgb;
55
+
56
+ if (lum <= u.stops[0].pos.x) {
57
+ gradColor = u.stops[0].col.rgb;
58
+ } else if (lum >= u.stops[count - 1].pos.x) {
59
+ gradColor = u.stops[count - 1].col.rgb;
60
+ } else {
61
+ for (var i = 0; i < 15; i = i + 1) {
62
+ if (i >= count - 1) {
63
+ break;
64
+ }
65
+ let p0 = u.stops[i].pos.x;
66
+ let p1 = u.stops[i + 1].pos.x;
67
+
68
+ if (lum >= p0 && lum <= p1) {
69
+ let range = max(p1 - p0, 1e-5);
70
+ let t = clamp((lum - p0) / range, 0.0, 1.0);
71
+ if (u.isSmooth > 0.5) {
72
+ gradColor = mix(u.stops[i].col.rgb, u.stops[i + 1].col.rgb, t);
73
+ } else {
74
+ gradColor = u.stops[i].col.rgb;
75
+ }
76
+ break;
77
+ }
78
+ }
79
+ }
80
+
81
+ var opacity = u.opacity;
82
+ if (u.hasOpacitySig > 0.5) {
83
+ opacity = textureSampleLevel(opacitySigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
84
+ }
85
+ opacity = clamp(opacity, 0.0, 1.0);
86
+
87
+ let finalRgb = mix(rgb, gradColor, opacity);
88
+ return vec4<f32>(finalRgb * alpha, alpha);
89
+ }
90
+ `;function X(r,t){let a=A.get(r);if(a)return a;let u=y(r,["uniform"],"GradientMapUniformLayout"),l=y(r,["texture","sampler"],"GradientMapTextureLayout"),c=y(r,["texture","sampler"],"GradientMapSignalLayout"),G=r.createShaderModule({label:"GradientMapShaderModule",code:K});return a={pipeline:V(r,{label:"GradientMapPipeline",module:G,layouts:[u,l,c],format:t}),uniformLayout:u,textureLayout:l,signalLayout:c},A.set(r,a),a}var e=new Float32Array(136),k=async r=>{let{ctx:t,encoder:a,pass:u,targetTexture:l,targetWidth:c,targetHeight:G,props:o}=r,h=o.frame??0,M=o.fps||30,i=o.virtualMedia?.operation;if(i?.op!=="GradientMap"||!o.virtualMedia?.children?.[0])return;u.end();let F=o.virtualMedia.children[0],v=c,L=G,{texture:T}=await N(r,F),R=[...Array.isArray(i.stops)?i.stops:[{position:0,color:"#000000"},{position:1,color:"#ffffff"}]].sort((s,f)=>s.position-f.position),U=Math.min(Math.max(R.length,2),16),P=i.opacityHandleId,p=P?i.inputs?.[P]:null,d=!!(p?.connectionValid&&p.outputItem?.type==="Signal"),x=d?p?.outputItem?.data:null,w=Number(i.opacity??1);!d&&p?.connectionValid&&p.outputItem?.type==="Number"&&(w=Number(p.outputItem.data??1));let{elapsedSeconds:E,durationSeconds:H}=W(o,h,M),S;d&&x?S=b.getOrCreate2DTextureView(t.device,a,x.nodeId??"gradient_map_opacity",E,H,x,v,L,o.renderId,h,M):S=b.getDummy1x1TextureView(t.device),e.fill(0),e[0]=U,e[1]=i.smooth===!1?0:1,e[2]=i.dither===!1?0:1,e[3]=w,e[4]=d?1:0,e[5]=0,e[6]=0,e[7]=0;for(let s=0;s<16;s++){let f=R[Math.min(s,U-1)],n=8+s*8,m=C(f.color);e[n+0]=f.position,e[n+1]=0,e[n+2]=0,e[n+3]=0,e[n+4]=m.r,e[n+5]=m.g,e[n+6]=m.b,e[n+7]=m.a}let{pipeline:j,uniformLayout:Q,textureLayout:$,signalLayout:q}=X(t.device,t.renderer.format),D=t.renderer.samplerCache.getSampler(t.device),z=t.renderer.getTemporaryBuffer(e),I=t.renderer.getTemporaryTexture(v,L,[T,l,...o.excludeTextures||[]]);_(a,I.createView(),j,[t.device.createBindGroup({layout:Q,entries:[{binding:0,resource:{buffer:z}}]}),t.renderer.bindGroupCache.getBindGroup(t.device,$,T,D),t.device.createBindGroup({layout:q,entries:[{binding:0,resource:S},{binding:1,resource:D}]})]),O(r,I,o.opacity??1)};var ae={WebGPURenderer:k};export{k as a,ae as b};
@@ -1 +1 @@
1
- import{b}from"./chunk-CYY366IE.mjs";import{a as l}from"./chunk-BHFI3Y4T.mjs";import{k as n}from"./chunk-ZNGOAGAI.mjs";import{a as g}from"./chunk-6YJP57MZ.mjs";import{e as c}from"./chunk-BVF64D6H.mjs";c();var S={async extractFromChannels(a,u,r={}){let x=await b(),t=r.fps??24,p=r.targetWidth??512,e=await g.extractFeatures(x,a,u,t,r,p),i=e.channelSamples??{primary:new Float32Array(e.numFrames),beat:new Float32Array(e.numFrames),bass:new Float32Array(e.numFrames),energy:new Float32Array(e.numFrames)},y={nodeId:"audio_primary",channel:"primary",textureView:e.textureView,texture:e.texture,buffer:e.primaryBuffer,stats:e.stats.primary},w={nodeId:"audio_beat",channel:"beat",textureView:e.textureView,texture:e.texture,buffer:e.beatBuffer,stats:e.stats.beat},B={nodeId:"audio_bass",channel:"bass",textureView:e.textureView,texture:e.texture,buffer:e.bassBuffer,stats:e.stats.bass},F={nodeId:"audio_energy",channel:"energy",textureView:e.textureView,texture:e.texture,buffer:e.energyBuffer,stats:e.stats.energy},o=n(i.primary,t,y),m=n(i.beat,t,w),d=n(i.bass,t,B),f=n(i.energy,t,F);return{primary:o,beat:m,bass:d,energy:f,durationSec:e.durationSec,numFrames:e.numFrames,sampleRate:u,textureView:e.textureView,texture:e.texture,primaryBuffer:e.primaryBuffer,beatBuffer:e.beatBuffer,bassBuffer:e.bassBuffer,energyBuffer:e.energyBuffer,seekFrame(s){o.seekFrame?.(s),m.seekFrame?.(s),d.seekFrame?.(s),f.seekFrame?.(s)}}},async extract(a,u={}){let r=await l(a);if(!r||r.channels.length===0)throw new Error(`Failed to decode audio source for feature extraction: ${a}`);return S.extractFromChannels(r.channels,r.sampleRate,u)}};export{S as a};
1
+ import{b}from"./chunk-CYY366IE.mjs";import{a as l}from"./chunk-QBEUICZD.mjs";import{k as n}from"./chunk-63SFBHEH.mjs";import{a as g}from"./chunk-6YJP57MZ.mjs";import{e as c}from"./chunk-BVF64D6H.mjs";c();var S={async extractFromChannels(a,u,r={}){let x=await b(),t=r.fps??24,p=r.targetWidth??512,e=await g.extractFeatures(x,a,u,t,r,p),i=e.channelSamples??{primary:new Float32Array(e.numFrames),beat:new Float32Array(e.numFrames),bass:new Float32Array(e.numFrames),energy:new Float32Array(e.numFrames)},y={nodeId:"audio_primary",channel:"primary",textureView:e.textureView,texture:e.texture,buffer:e.primaryBuffer,stats:e.stats.primary},w={nodeId:"audio_beat",channel:"beat",textureView:e.textureView,texture:e.texture,buffer:e.beatBuffer,stats:e.stats.beat},B={nodeId:"audio_bass",channel:"bass",textureView:e.textureView,texture:e.texture,buffer:e.bassBuffer,stats:e.stats.bass},F={nodeId:"audio_energy",channel:"energy",textureView:e.textureView,texture:e.texture,buffer:e.energyBuffer,stats:e.stats.energy},o=n(i.primary,t,y),m=n(i.beat,t,w),d=n(i.bass,t,B),f=n(i.energy,t,F);return{primary:o,beat:m,bass:d,energy:f,durationSec:e.durationSec,numFrames:e.numFrames,sampleRate:u,textureView:e.textureView,texture:e.texture,primaryBuffer:e.primaryBuffer,beatBuffer:e.beatBuffer,bassBuffer:e.bassBuffer,energyBuffer:e.energyBuffer,seekFrame(s){o.seekFrame?.(s),m.seekFrame?.(s),d.seekFrame?.(s),f.seekFrame?.(s)}}},async extract(a,u={}){let r=await l(a);if(!r||r.channels.length===0)throw new Error(`Failed to decode audio source for feature extraction: ${a}`);return S.extractFromChannels(r.channels,r.sampleRate,u)}};export{S as a};
@@ -0,0 +1,52 @@
1
+ import{b as S,c as G}from"./chunk-FLPSWDX4.mjs";import{a}from"./chunk-NQZKBFC6.mjs";import{d as g,g as M,h as C,j as R,m as P}from"./chunk-ENKKLU7B.mjs";import{z as k}from"./chunk-63SFBHEH.mjs";import{e as c}from"./chunk-BVF64D6H.mjs";c();c();c();var w=`
2
+ struct ColorMatrixUniforms {
3
+ row0 : vec4<f32>,
4
+ row1 : vec4<f32>,
5
+ row2 : vec4<f32>,
6
+ row3 : vec4<f32>,
7
+ trans : vec4<f32>,
8
+ };
9
+
10
+ @group(0) @binding(0) var<uniform> u : ColorMatrixUniforms;
11
+ @group(1) @binding(0) var tex : texture_2d<f32>;
12
+ @group(1) @binding(1) var samp : sampler;
13
+
14
+ struct VSOut {
15
+ @builtin(position) pos : vec4<f32>,
16
+ @location(0) uv : vec2<f32>,
17
+ };
18
+
19
+ @vertex fn vs(@builtin(vertex_index) vi: u32) -> VSOut {
20
+ var pos = array<vec2<f32>, 4>(
21
+ vec2<f32>(-1.0, 1.0),
22
+ vec2<f32>(1.0, 1.0),
23
+ vec2<f32>(-1.0, -1.0),
24
+ vec2<f32>(1.0, -1.0)
25
+ );
26
+ var uv = array<vec2<f32>, 4>(
27
+ vec2<f32>(0.0, 0.0),
28
+ vec2<f32>(1.0, 0.0),
29
+ vec2<f32>(0.0, 1.0),
30
+ vec2<f32>(1.0, 1.0)
31
+ );
32
+ return VSOut(vec4<f32>(pos[vi], 0.0, 1.0), uv[vi]);
33
+ }
34
+
35
+ @fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {
36
+ let c = textureSample(tex, samp, in.uv);
37
+ var rgba = vec4<f32>(c.rgb, c.a);
38
+ if (c.a > 0.0) {
39
+ rgba = vec4<f32>(c.rgb / c.a, c.a);
40
+ }
41
+
42
+ let r = dot(u.row0, rgba) + u.trans.x;
43
+ let g = dot(u.row1, rgba) + u.trans.y;
44
+ let b = dot(u.row2, rgba) + u.trans.z;
45
+ let a = dot(u.row3, rgba) + u.trans.w;
46
+
47
+ let outAlpha = clamp(a, 0.0, 1.0);
48
+ let outRgb = clamp(vec3<f32>(r, g, b), vec3<f32>(0.0), vec3<f32>(1.0)) * outAlpha;
49
+
50
+ return vec4<f32>(outRgb, outAlpha);
51
+ }
52
+ `;c();var p=a.object({inBlack:a.number().min(0).max(1).default(0),inWhite:a.number().min(0).max(1).default(1),outBlack:a.number().min(0).max(1).default(0),outWhite:a.number().min(0).max(1).default(1)}).strict().superRefine((e,o)=>{e.inBlack>=e.inWhite&&o.addIssue({code:a.ZodIssueCode.custom,path:["inWhite"],message:"inWhite must be greater than inBlack"}),e.outBlack>=e.outWhite&&o.addIssue({code:a.ZodIssueCode.custom,path:["outWhite"],message:"outWhite must be greater than outBlack"})}),q=a.object({master:p.default({inBlack:0,inWhite:1,outBlack:0,outWhite:1}),red:p.default({inBlack:0,inWhite:1,outBlack:0,outWhite:1}),green:p.default({inBlack:0,inWhite:1,outBlack:0,outWhite:1}),blue:p.default({inBlack:0,inWhite:1,outBlack:0,outWhite:1})}).strict(),ee=a.union([S,G]),te=q.extend({op:a.literal("Levels"),metadata:a.unknown().optional()}),i={inBlack:0,inWhite:1,outBlack:0,outWhite:1},re={master:{...i},red:{...i},green:{...i},blue:{...i}};var T=new WeakMap,t=new Float32Array(20);function J(e,o){let l=T.get(e);if(!l){let s=g(e,["uniform"]),u=g(e,["texture","sampler"]),v=e.createShaderModule({label:"color-matrix.wgsl",code:w});l={colorMatrixPipeline:M(e,{label:"ColorMatrixPipeline",module:v,layouts:[s,u],format:o}),colorMatrixUniformLayout:s,singleTextureLayout:u},T.set(e,l)}return l}function m(e){let o=Math.max(e.inWhite-e.inBlack,1e-5),s=(e.outWhite-e.outBlack)/o,u=e.outBlack-e.inBlack*s;return{scale:s,bias:u}}var U=async e=>{let{ctx:o,encoder:l,pass:s,targetTexture:u,targetWidth:v,targetHeight:h,props:d}=e,f=d.virtualMedia?.operation;if(f?.op!=="Levels"||!d.virtualMedia?.children?.[0])return;s.end();let I=d.virtualMedia.children[0],n=m(f.master??i),b=m(f.red??i),L=m(f.green??i),y=m(f.blue??i),V=b.scale*n.scale,O=b.bias*n.scale+n.bias,F=L.scale*n.scale,z=L.bias*n.scale+n.bias,N=y.scale*n.scale,A=y.bias*n.scale+n.bias,r=[V,0,0,0,O,0,F,0,0,z,0,0,N,0,A,0,0,0,1,0],D=v,_=h,{texture:B}=await C(e,I),{colorMatrixPipeline:E,colorMatrixUniformLayout:j,singleTextureLayout:Z}=J(o.device,o.renderer.format),H=o.renderer.samplerCache.getSampler(o.device);t[0]=r[0],t[1]=r[1],t[2]=r[2],t[3]=r[3],t[4]=r[5],t[5]=r[6],t[6]=r[7],t[7]=r[8],t[8]=r[10],t[9]=r[11],t[10]=r[12],t[11]=r[13],t[12]=r[15],t[13]=r[16],t[14]=r[17],t[15]=r[18],t[16]=r[4],t[17]=r[9],t[18]=r[14],t[19]=r[19];let Y=o.renderer.getTemporaryBuffer(t),W=o.renderer.getTemporaryTexture(D,_,[B,u,...d.excludeTextures||[]]);P(l,W.createView(),E,[o.device.createBindGroup({layout:j,entries:[{binding:0,resource:{buffer:Y}}]}),o.renderer.bindGroupCache.getBindGroup(o.device,Z,B,H)]),R(e,W,d.opacity??1)};var fe=k({WebGPURenderer:U});export{fe as a};
@@ -1,4 +1,4 @@
1
- import{a as q}from"./chunk-XOEEGC4Z.mjs";import{b as J,c as Q}from"./chunk-IYVN2QEL.mjs";import{a as o}from"./chunk-NQZKBFC6.mjs";import{t as j}from"./chunk-ZNGOAGAI.mjs";import{d as F}from"./chunk-6YJP57MZ.mjs";import{e as u}from"./chunk-BVF64D6H.mjs";u();u();u();u();var U=200,ve=o.enum(["Union","Intersect","Subtract","Difference","Invert","Dilate","Erode","Choke","Feather"]),Z=o.enum(["Alpha","Luminance","Red","Green","Blue"]),Me=o.enum(["WhiteWithAlpha","GrayscaleRGB","AlphaOnly","PassthroughRGB"]),Se=q().field("operation",ve.default("Union"),{label:"Operation",description:"Morphological or Boolean set operation applied to input alpha masks."}).field("radius",o.number().min(0).max(U).default(0),{bindable:!0,dataTypes:["Number","Signal"],label:"Radius / Width (px)",description:"Kernel radius in pixels for Dilate, Erode, Choke, or Feather operations."}).field("threshold",o.number().multipleOf(.01).min(0).max(1).default(.5),{bindable:!0,dataTypes:["Number","Signal"],label:"Threshold",description:"Cutoff threshold level (0.0\u20131.0) for binarization step or non-linear choke."}).field("clampMin",o.number().multipleOf(.01).min(0).max(1).default(0),{bindable:!0,dataTypes:["Number","Signal"],label:"Clamp Min",description:"Minimum alpha matte cutoff limit (0.0\u20131.0)."}).field("clampMax",o.number().multipleOf(.01).min(0).max(1).default(1),{bindable:!0,dataTypes:["Number","Signal"],label:"Clamp Max",description:"Maximum alpha matte cutoff limit (0.0\u20131.0)."}).field("channelA",Z.default("Alpha"),{label:"Mask A Channel",description:"Source channel to extract mask from Mask A (Alpha, Luminance, Red, Green, Blue)."}).field("channelB",Z.default("Alpha"),{label:"Mask B Channel",description:"Source channel to extract mask from Mask B (Alpha, Luminance, Red, Green, Blue)."}).field("binarize",o.boolean().default(!1),{label:"Binarize",description:"When enabled, outputs crisp 1-bit binary matte based on threshold."}).field("invertResult",o.boolean().default(!1),{label:"Invert Result",description:"Inverts final matte output."}).field("outputFormat",Me.default("WhiteWithAlpha"),{label:"Output Format",description:"WhiteWithAlpha (rgba(1,1,1,a)), GrayscaleRGB (rgba(a,a,a,1)), AlphaOnly (rgba(0,0,0,a)), PassthroughRGB (Mask A RGB with new alpha)."}).build(),Be=Se.schema,Pe=o.union([J,Q]);u();var be={Union:0,Intersect:1,Subtract:2,Difference:3,Invert:4,Dilate:5,Erode:6,Choke:7,Feather:8},ee={Alpha:0,Luminance:1,Red:2,Green:3,Blue:4},ye={WhiteWithAlpha:0,GrayscaleRGB:1,AlphaOnly:2,PassthroughRGB:3},Re=`
1
+ import{a as q}from"./chunk-XOEEGC4Z.mjs";import{b as J,c as Z}from"./chunk-FLPSWDX4.mjs";import{a as r}from"./chunk-NQZKBFC6.mjs";import{a as $,d as X,e as L,g as K,h as V,j as Y,k as j,l as Q,m as w}from"./chunk-ENKKLU7B.mjs";import{w as E,z as H}from"./chunk-63SFBHEH.mjs";import{e as l}from"./chunk-BVF64D6H.mjs";l();l();l();l();var I=200,be=r.enum(["Union","Intersect","Subtract","Difference","Invert","Dilate","Erode","Choke","Feather"]),ee=r.enum(["Alpha","Luminance","Red","Green","Blue"]),ke=r.enum(["WhiteWithAlpha","GrayscaleRGB","AlphaOnly","PassthroughRGB"]),Re=q().field("operation",be.default("Union"),{label:"Operation",description:"Morphological or Boolean set operation applied to input alpha masks."}).field("radius",r.number().min(0).max(I).default(0),{bindable:!0,dataTypes:["Number","Signal"],label:"Radius / Width (px)",description:"Kernel radius in pixels for Dilate, Erode, Choke, or Feather operations."}).field("threshold",r.number().multipleOf(.01).min(0).max(1).default(.5),{bindable:!0,dataTypes:["Number","Signal"],label:"Threshold",description:"Cutoff threshold level (0.0\u20131.0) for binarization step or non-linear choke."}).field("clampMin",r.number().multipleOf(.01).min(0).max(1).default(0),{bindable:!0,dataTypes:["Number","Signal"],label:"Clamp Min",description:"Minimum alpha matte cutoff limit (0.0\u20131.0)."}).field("clampMax",r.number().multipleOf(.01).min(0).max(1).default(1),{bindable:!0,dataTypes:["Number","Signal"],label:"Clamp Max",description:"Maximum alpha matte cutoff limit (0.0\u20131.0)."}).field("channelA",ee.default("Alpha"),{label:"Mask A Channel",description:"Source channel to extract mask from Mask A (Alpha, Luminance, Red, Green, Blue)."}).field("channelB",ee.default("Alpha"),{label:"Mask B Channel",description:"Source channel to extract mask from Mask B (Alpha, Luminance, Red, Green, Blue)."}).field("binarize",r.boolean().default(!1),{label:"Binarize",description:"When enabled, outputs crisp 1-bit binary matte based on threshold."}).field("invertResult",r.boolean().default(!1),{label:"Invert Result",description:"Inverts final matte output."}).field("outputFormat",ke.default("WhiteWithAlpha"),{label:"Output Format",description:"WhiteWithAlpha (rgba(1,1,1,a)), GrayscaleRGB (rgba(a,a,a,1)), AlphaOnly (rgba(0,0,0,a)), PassthroughRGB (Mask A RGB with new alpha)."}).build(),Le=Re.schema,Ve=r.union([J,Z]);l();var Ae={Union:0,Intersect:1,Subtract:2,Difference:3,Invert:4,Dilate:5,Erode:6,Choke:7,Feather:8},ae={Alpha:0,Luminance:1,Red:2,Green:3,Blue:4},ye={WhiteWithAlpha:0,GrayscaleRGB:1,AlphaOnly:2,PassthroughRGB:3},Be=`
2
2
  struct MaskMathUniforms {
3
3
  dirX : f32,
4
4
  dirY : f32,
@@ -38,27 +38,7 @@ struct MaskMathUniforms {
38
38
  @group(2) @binding(2) var clampMinSigTex : texture_2d<f32>;
39
39
  @group(2) @binding(3) var clampMaxSigTex : texture_2d<f32>;
40
40
  @group(2) @binding(4) var signalSamp : sampler;
41
-
42
- struct VSOut {
43
- @builtin(position) pos : vec4<f32>,
44
- @location(0) uv : vec2<f32>,
45
- };
46
-
47
- @vertex fn vs(@builtin(vertex_index) vi: u32) -> VSOut {
48
- var pos = array<vec2<f32>, 4>(
49
- vec2<f32>(-1.0, 1.0),
50
- vec2<f32>(1.0, 1.0),
51
- vec2<f32>(-1.0, -1.0),
52
- vec2<f32>(1.0, -1.0)
53
- );
54
- var uv = array<vec2<f32>, 4>(
55
- vec2<f32>(0.0, 0.0),
56
- vec2<f32>(1.0, 0.0),
57
- vec2<f32>(0.0, 1.0),
58
- vec2<f32>(1.0, 1.0)
59
- );
60
- return VSOut(vec4<f32>(pos[vi], 0.0, 1.0), uv[vi]);
61
- }
41
+ ${$}
62
42
 
63
43
  fn extractChannel(color : vec4<f32>, chCode : f32) -> f32 {
64
44
  if (chCode < 0.5) {
@@ -291,4 +271,4 @@ fn extractChannel(color : vec4<f32>, chCode : f32) -> f32 {
291
271
  return vec4<f32>(unpremult * matte, matte);
292
272
  }
293
273
  }
294
- `,ae=new WeakMap;function Ae(r,e){let p=ae.get(r);if(p)return p;let R=r.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),A=r.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:2,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:3,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}}]}),c=r.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:2,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:3,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:4,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}}]}),f=r.createShaderModule({code:Re}),M=r.createPipelineLayout({bindGroupLayouts:[R,A,c]}),a=r.createRenderPipeline({layout:M,vertex:{module:f,entryPoint:"vs"},fragment:{module:f,entryPoint:"fs",targets:[{format:e}]},primitive:{topology:"triangle-strip"}}),S={uniformLayout:R,textureLayout:A,signalTextureLayout:c,pipeline:a};return ae.set(r,S),S}var te=async r=>{let{ctx:e,encoder:p,pass:R,targetView:A,targetTexture:c,targetWidth:f,targetHeight:M,props:a,drawChild:S}=r,t=a.virtualMedia?.operation;if(t?.op!=="MaskMath"||!t)return;let P=a.virtualMedia?.children?.[0];if(!P)return;R.end();let _=a.frame??0,D=a.fps||30,n=f,l=M,G=(i,v,k=0,Y=1e3)=>{if(i&&t.inputs?.[i]?.connectionValid){let m=t.inputs[i].outputItem;if(m?.type==="Number"){let xe=typeof m.data=="number"?m.data:m.data?.value??v;return{val:Math.max(k,Math.min(Y,xe)),hasStaticSig:!1,sd:null,handleId:i}}if(m?.type==="Signal"&&m.data)return{val:v,hasStaticSig:!0,sd:m.data,handleId:i}}return{val:Math.max(k,Math.min(Y,v)),hasStaticSig:!1,sd:null,handleId:i}},V=G(t.radiusHandleId,Number(t.radius??0),0,U),C=G(t.thresholdHandleId,Number(t.threshold??.5),0,1),w=G(t.clampMinHandleId,Number(t.clampMin??0),0,1),L=G(t.clampMaxHandleId,Number(t.clampMax??1),0,1),d=e.renderer.getTemporaryTexture(n,l,[...a.excludeTextures||[],c]),h=d.createView();e.renderer.beginFrame(p,h,{r:0,g:0,b:0,a:0},n,l,"clear").end(),e.renderer.pushScissor({x:0,y:0,width:n,height:l}),e.renderer.pushIdentity(),await S(P,{...a,virtualMedia:P,renderId:`${a.renderId}-maskA`,excludeTextures:[...a.excludeTextures||[],d]},h,d,n,l),e.renderer.popTransform(),e.renderer.popScissor();let s=null;if(t.maskBMedia){s=e.renderer.getTemporaryTexture(n,l,[...a.excludeTextures||[],c,d]);let i=s.createView();e.renderer.beginFrame(p,i,{r:0,g:0,b:0,a:0},n,l,"clear").end(),e.renderer.pushScissor({x:0,y:0,width:n,height:l}),e.renderer.pushIdentity(),await S(t.maskBMedia,{...a,virtualMedia:t.maskBMedia,renderId:`${a.renderId}-maskB`,excludeTextures:[...a.excludeTextures||[],d,s]},i,s,n,l),e.renderer.popTransform(),e.renderer.popScissor()}let{pipeline:N,uniformLayout:W,textureLayout:z,signalTextureLayout:ie}=Ae(e.device,e.renderer.format),I=e.renderer.samplerCache.getSampler(e.device),re=a.elapsedMs!==void 0?a.elapsedMs/1e3:_/D,ne=a.virtualMedia?.metadata?.durationMs?a.virtualMedia.metadata.durationMs/1e3:a.durationMs!==void 0?a.durationMs/1e3:0,T=(i,v)=>{if(i.hasStaticSig&&i.sd){let k=i.sd.nodeId??i.handleId??`${a.renderId??"maskmath"}_${v}`;return F.getOrCreate2DTextureView(e.device,p,k,re,ne,i.sd,n,l,a.renderId,_,D)}return F.getDummy1x1TextureView(e.device)},le=T(V,"radius_sig"),se=T(C,"threshold_sig"),oe=T(w,"clampMin_sig"),ue=T(L,"clampMax_sig"),E=e.device.createBindGroup({layout:ie,entries:[{binding:0,resource:le},{binding:1,resource:se},{binding:2,resource:oe},{binding:3,resource:ue},{binding:4,resource:I}]}),pe=be[t.operation??"Union"]??0,ce=ee[t.channelA??"Alpha"]??0,de=ee[t.channelB??"Alpha"]??0,me=ye[t.outputFormat??"WhiteWithAlpha"]??0,H=s?s.createView():h,b=new Float32Array(20),y=new Float32Array(20),X=[0,0,V.val,C.val,w.val,L.val,pe,ce,de,t.binarize?1:0,t.invertResult?1:0,me,s?1:0,V.hasStaticSig?1:0,C.hasStaticSig?1:0,w.hasStaticSig?1:0,L.hasStaticSig?1:0,0,0,0];b.set(X),b[0]=1,b[1]=0,b[17]=0,y.set(X),y[0]=0,y[1]=1,y[17]=1;let O=e.renderer.getTemporaryTexture(n,l,[d,...s?[s]:[],c,...a.excludeTextures||[]]),$=e.renderer.getTemporaryTexture(n,l,[d,...s?[s]:[],O,c,...a.excludeTextures||[]]),fe=e.renderer.getTemporaryBuffer(b),g=p.beginRenderPass({colorAttachments:[{view:O.createView(),loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});g.setPipeline(N),g.setBindGroup(0,e.device.createBindGroup({layout:W,entries:[{binding:0,resource:{buffer:fe}}]})),g.setBindGroup(1,e.device.createBindGroup({layout:z,entries:[{binding:0,resource:h},{binding:1,resource:H},{binding:2,resource:h},{binding:3,resource:I}]})),g.setBindGroup(2,E),g.draw(4),g.end();let he=e.renderer.getTemporaryBuffer(y),x=p.beginRenderPass({colorAttachments:[{view:$.createView(),loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});x.setPipeline(N),x.setBindGroup(0,e.device.createBindGroup({layout:W,entries:[{binding:0,resource:{buffer:he}}]})),x.setBindGroup(1,e.device.createBindGroup({layout:z,entries:[{binding:0,resource:O.createView()},{binding:1,resource:H},{binding:2,resource:h},{binding:3,resource:I}]})),x.setBindGroup(2,E),x.draw(4),x.end();let K=e.renderer.beginFrame(p,A,{r:0,g:0,b:0,a:0},f,M,"load"),ge=a.opacity??t.opacity??1;e.renderer.drawTexture(K,$,{x:0,y:0,width:f,height:M},{opacity:ge}),r.pass=K};var Ee=j({WebGPURenderer:te});export{te as a,Ee as b};
274
+ `,te=new WeakMap;function Te(i,t){let o=te.get(i);if(o)return o;let c=X(i,["uniform"]),u=L(i,3),d=L(i,4),S=i.createShaderModule({code:Be}),a=i.createPipelineLayout({bindGroupLayouts:[c,u,d]}),e=K(i,{module:S,layouts:a,format:t}),s={uniformLayout:c,textureLayout:u,signalTextureLayout:d,pipeline:e};return te.set(i,s),s}var ie=async i=>{let{ctx:t,encoder:o,pass:c,targetTexture:u,targetWidth:d,targetHeight:S,props:a}=i,e=a.virtualMedia?.operation;if(e?.op!=="MaskMath"||!e)return;let s=a.virtualMedia?.children?.[0];if(!s)return;c.end();let P=a.frame??0,_=a.fps||30,b=d,k=S,f=(M,G,ve=0,Se=1e3)=>E(e.inputs,M,G,ve,Se),R=f(e.radiusHandleId,Number(e.radius??0),0,I),A=f(e.thresholdHandleId,Number(e.threshold??.5),0,1),y=f(e.clampMinHandleId,Number(e.clampMin??0),0,1),B=f(e.clampMaxHandleId,Number(e.clampMax??1),0,1),{texture:h,view:g}=await V(i,s,{props:{...a,virtualMedia:s,renderId:`${a.renderId}-maskA`}}),n=null;e.maskBMedia&&({texture:n}=await V(i,e.maskBMedia,{props:{...a,virtualMedia:e.maskBMedia,renderId:`${a.renderId}-maskB`,excludeTextures:[...a.excludeTextures||[],h]},exclude:[h]}));let{pipeline:O,uniformLayout:D,textureLayout:U,signalTextureLayout:re}=Te(t.device,t.renderer.format),T=t.renderer.samplerCache.getSampler(t.device),{elapsedSeconds:le,durationSeconds:ne}=j(a,P,_),se={args:i,width:b,height:k,frame:P,fps:_,elapsedSeconds:le,durationSeconds:ne},x=(M,G)=>Q(se,M,M.handleId??`${a.renderId??"maskmath"}_${G}`),oe=x(R,"radius_sig"),ue=x(A,"threshold_sig"),me=x(y,"clampMin_sig"),pe=x(B,"clampMax_sig"),F=t.device.createBindGroup({layout:re,entries:[{binding:0,resource:oe},{binding:1,resource:ue},{binding:2,resource:me},{binding:3,resource:pe},{binding:4,resource:T}]}),ce=Ae[e.operation??"Union"]??0,de=ae[e.channelA??"Alpha"]??0,fe=ae[e.channelB??"Alpha"]??0,he=ye[e.outputFormat??"WhiteWithAlpha"]??0,W=n?n.createView():g,m=new Float32Array(20),p=new Float32Array(20),z=[0,0,R.val,A.val,y.val,B.val,ce,de,fe,e.binarize?1:0,e.invertResult?1:0,he,n?1:0,R.hasStaticSig?1:0,A.hasStaticSig?1:0,y.hasStaticSig?1:0,B.hasStaticSig?1:0,0,0,0];m.set(z),m[0]=1,m[1]=0,m[17]=0,p.set(z),p[0]=0,p[1]=1,p[17]=1;let C=t.renderer.getTemporaryTexture(b,k,[h,...n?[n]:[],u,...a.excludeTextures||[]]),N=t.renderer.getTemporaryTexture(b,k,[h,...n?[n]:[],C,u,...a.excludeTextures||[]]),ge=t.renderer.getTemporaryBuffer(m);w(o,C.createView(),O,[t.device.createBindGroup({layout:D,entries:[{binding:0,resource:{buffer:ge}}]}),t.device.createBindGroup({layout:U,entries:[{binding:0,resource:g},{binding:1,resource:W},{binding:2,resource:g},{binding:3,resource:T}]}),F]);let xe=t.renderer.getTemporaryBuffer(p);w(o,N.createView(),O,[t.device.createBindGroup({layout:D,entries:[{binding:0,resource:{buffer:xe}}]}),t.device.createBindGroup({layout:U,entries:[{binding:0,resource:C.createView()},{binding:1,resource:W},{binding:2,resource:g},{binding:3,resource:T}]}),F]);let Me=a.opacity??e.opacity??1;Y(i,N,Me)};var Xe=H({WebGPURenderer:ie});export{ie as a,Xe as b};
@@ -1,4 +1,4 @@
1
- import{a as E}from"./chunk-CNSHAFEA.mjs";import{t as W}from"./chunk-ZNGOAGAI.mjs";import{d as B}from"./chunk-6YJP57MZ.mjs";import{e as D}from"./chunk-BVF64D6H.mjs";D();D();var ye=`
1
+ import{a as B,d as R,e as E,f as O,g as $,h as Y,j as k,m as K}from"./chunk-ENKKLU7B.mjs";import{u as T,z as W}from"./chunk-63SFBHEH.mjs";import{d as A}from"./chunk-6YJP57MZ.mjs";import{a as X}from"./chunk-IQC2I5A5.mjs";import{e as D}from"./chunk-BVF64D6H.mjs";D();D();var ye=`
2
2
  struct RelightUniforms {
3
3
  // vec4 0
4
4
  lightType : f32, // 0=Point, 1=Spot, 2=Directional, 3=Rim
@@ -58,27 +58,7 @@ struct RelightUniforms {
58
58
  @group(3) @binding(6) var specularSigTex : texture_2d<f32>;
59
59
  @group(3) @binding(7) var volumetricSigTex : texture_2d<f32>;
60
60
  @group(3) @binding(8) var sigSamp : sampler;
61
-
62
- struct VSOut {
63
- @builtin(position) pos : vec4<f32>,
64
- @location(0) uv : vec2<f32>,
65
- };
66
-
67
- @vertex fn vs(@builtin(vertex_index) vi: u32) -> VSOut {
68
- var pos = array<vec2<f32>, 4>(
69
- vec2<f32>(-1.0, 1.0),
70
- vec2<f32>(1.0, 1.0),
71
- vec2<f32>(-1.0, -1.0),
72
- vec2<f32>(1.0, -1.0)
73
- );
74
- var uv = array<vec2<f32>, 4>(
75
- vec2<f32>(0.0, 0.0),
76
- vec2<f32>(1.0, 0.0),
77
- vec2<f32>(0.0, 1.0),
78
- vec2<f32>(1.0, 1.0)
79
- );
80
- return VSOut(vec4<f32>(pos[vi], 0.0, 1.0), uv[vi]);
81
- }
61
+ ${B}
82
62
 
83
63
  fn sampleDepth(uv: vec2<f32>) -> f32 {
84
64
  var raw: f32 = 0.0;
@@ -234,4 +214,4 @@ fn computeNormal(uv: vec2<f32>, texelSize: vec2<f32>) -> vec3<f32> {
234
214
 
235
215
  return vec4<f32>(clamp(litRgb, vec3<f32>(0.0), vec3<f32>(1.0)), albedo.a);
236
216
  }
237
- `,$=new WeakMap;function xe(t){let e=$.get(t);if(e)return e;let n=t.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),o=t.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}}]}),g=t.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}}]}),a=t.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:2,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:3,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:4,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:5,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:6,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:7,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:8,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}}]});return e={uniformLayout:n,srcTextureLayout:o,depthTextureLayout:g,signalTextureLayout:a,pipelineCache:new Map},$.set(t,e),e}function be(t,e){let n=xe(t),o=`relight_${e}`,g=n.pipelineCache.get(o);if(!g){let a=t.createShaderModule({label:`relight_${e}.wgsl`,code:ye});g=t.createRenderPipeline({label:`RelightPipeline_${e}`,layout:t.createPipelineLayout({bindGroupLayouts:[n.uniformLayout,n.srcTextureLayout,n.depthTextureLayout,n.signalTextureLayout]}),vertex:{module:a,entryPoint:"vs"},fragment:{module:a,entryPoint:"fs",targets:[{format:e}]},primitive:{topology:"triangle-strip"}}),n.pipelineCache.set(o,g)}return{pipeline:g,uniformLayout:n.uniformLayout,srcTextureLayout:n.srcTextureLayout,depthTextureLayout:n.depthTextureLayout,signalTextureLayout:n.signalTextureLayout}}function X(t,e,n,o){if(t==null)return e;if(typeof t=="number")return Number.isFinite(t)?t:e;if(typeof t=="object"&&t!==null){if("get"in t&&typeof t.get=="function")try{let a=t.get({frame:n,fps:o,time:o>0?n/o:0,duration:0,durationMs:0,progress:0,deltaTime:o>0?1/o:0}),m=Number(a);if(Number.isFinite(m))return m}catch{}if("value"in t){let a=Number(t.value);if(Number.isFinite(a))return a}}if(typeof t=="function")try{let a=Number(t({frame:n,fps:o,time:o>0?n/o:0}));if(Number.isFinite(a))return a}catch{}let g=Number(t);return Number.isFinite(g)?g:e}function c(t,e,n,o,g,a=0,m=30){let x=`${e}HandleId`,s=t[x],h=s?t.inputs?.[s]:null,b=!!(h?.connectionValid&&(h.outputItem?.type==="Signal"||h.outputItem?.type==="Numeric")),u=b&&h?.outputItem?.data?h.outputItem.data:null,l=n;if(b){if(u){let r=X(u.offset,n,a,m);l=Math.max(o,Math.min(g,r))}}else if(h?.connectionValid&&h.outputItem?.type==="Number"){let r=X(h.outputItem.data,n,a,m);l=Math.max(o,Math.min(g,r))}else{let r=X(t[e],n,a,m);l=Math.max(o,Math.min(g,r))}return{hasSignal:b,sd:u,value:l}}var K=async t=>{let{ctx:e,encoder:n,pass:o,targetView:g,targetTexture:a,targetWidth:m,targetHeight:x,props:s,drawChild:h}=t,b=s.frame??0,u=s.compositionFrame??b,l=s.fps||30,r=s.virtualMedia?.operation;if(r?.op!=="Relight3D"||!r)return;let G=s.virtualMedia.children?.[0];if(!G)return;o.end();let d=m,p=x,S=e.renderer.getTemporaryTexture(d,p,[...s.excludeTextures||[],a]),M=S.createView();e.renderer.beginFrame(n,M,{r:0,g:0,b:0,a:0},d,p,"clear").end(),e.renderer.pushScissor({x:0,y:0,width:d,height:p}),e.renderer.pushIdentity(),await h(G,{...s,virtualMedia:G,containerWidth:d,containerHeight:p},M,S,d,p),e.renderer.popTransform(),e.renderer.popScissor(),t.pass.end();let Y=r.normalMedia??(r.inputs?.normalMap?.connectionValid?r.inputs.normalMap.outputItem?.data:null),w=Y??r.depthMedia,y,R,I=!1,Z=!!Y;w?(y=e.renderer.getTemporaryTexture(d,p,[...s.excludeTextures||[],a,S]),R=y.createView(),e.renderer.beginFrame(n,R,{r:0,g:0,b:0,a:0},d,p,"clear").end(),e.renderer.pushScissor({x:0,y:0,width:d,height:p}),e.renderer.pushIdentity(),await h(w,{...s,virtualMedia:w,containerWidth:d,containerHeight:p},R,y,d,p),e.renderer.popTransform(),e.renderer.popScissor(),t.pass.end(),I=!0):(y=S,R=M,I=!1);let{pipeline:j,uniformLayout:q,srcTextureLayout:J,depthTextureLayout:Q,signalTextureLayout:ee}=be(e.device,e.renderer.format),N=e.renderer.samplerCache.getSampler(e.device),te=s.elapsedMs!==void 0?s.elapsedMs/1e3:u/l,ie=s.virtualMedia?.metadata?.durationMs?s.virtualMedia.metadata.durationMs/1e3:s.durationMs!==void 0?s.durationMs/1e3:4,C=c(r,"intensity",1,0,10,u,l),U=c(r,"lightPosX",.5,0,1,u,l),V=c(r,"lightPosY",.5,0,1,u,l),A=c(r,"lightPosZ",.3,-2,2,u,l),_=c(r,"lightRadius",.8,.05,5,u,l),re=c(r,"spotConeAngle",45,5,90,u,l),F=c(r,"specularRoughness",.35,.01,1,u,l),H=c(r,"specularStrength",.7,0,3,u,l),ne=c(r,"metallic",0,0,1,u,l),ae=c(r,"ambientIntensity",.4,0,2,u,l),z=c(r,"volumetricDensity",.2,0,1,u,l),se=c(r,"depthScale",1,.1,10,u,l),f=(T,ve)=>T.hasSignal&&T.sd?B.getOrCreate2DTextureView(e.device,n,T.sd.nodeId??ve,te,ie,T.sd,d,p,s.renderId,u,l):B.getDummy1x1TextureView(e.device),oe=f(C,"relight_int_sig"),le=f(U,"relight_posx_sig"),ue=f(V,"relight_posy_sig"),ge=f(A,"relight_posz_sig"),de=f(_,"relight_rad_sig"),pe=f(F,"relight_rough_sig"),ce=f(H,"relight_spec_sig"),he=f(z,"relight_vol_sig"),i=new Float32Array(32),L=E(r.lightColor??"#ffffff"),P=E(r.ambientColor??"#ffffff"),me=r.lightType==="Spot"?1:r.lightType==="Directional"?2:r.lightType==="Rim"?3:0;i[0]=me,i[1]=C.value,i[2]=U.value,i[3]=V.value,i[4]=A.value,i[5]=_.value,i[6]=re.value*Math.PI/180,i[7]=F.value,i[8]=H.value,i[9]=ne.value,i[10]=ae.value,i[11]=z.value,i[12]=se.value,i[13]=r.depthInvert?1:0,i[14]=I||Z?1:0,i[15]=Z?1:0,i[16]=C.hasSignal?1:0,i[17]=U.hasSignal?1:0,i[18]=V.hasSignal?1:0,i[19]=A.hasSignal?1:0,i[20]=_.hasSignal?1:0,i[21]=F.hasSignal?1:0,i[22]=H.hasSignal?1:0,i[23]=z.hasSignal?1:0,i[24]=L.r,i[25]=L.g,i[26]=L.b,i[27]=L.a,i[28]=P.r,i[29]=P.g,i[30]=P.b,i[31]=P.a;let fe=e.renderer.getTemporaryBuffer(i),O=e.renderer.getTemporaryTexture(d,p,[S,y,a,...s.excludeTextures||[]]),v=n.beginRenderPass({colorAttachments:[{view:O.createView(),loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});v.setPipeline(j),v.setBindGroup(0,e.device.createBindGroup({layout:q,entries:[{binding:0,resource:{buffer:fe}}]})),v.setBindGroup(1,e.renderer.bindGroupCache.getBindGroup(e.device,J,S,N)),v.setBindGroup(2,e.renderer.bindGroupCache.getBindGroup(e.device,Q,y,N)),v.setBindGroup(3,e.device.createBindGroup({layout:ee,entries:[{binding:0,resource:oe},{binding:1,resource:le},{binding:2,resource:ue},{binding:3,resource:ge},{binding:4,resource:de},{binding:5,resource:pe},{binding:6,resource:ce},{binding:7,resource:he},{binding:8,resource:N}]})),v.draw(4),v.end();let k=e.renderer.beginFrame(n,g,{r:0,g:0,b:0,a:0},m,x,"load");e.renderer.drawTexture(k,O,{x:0,y:0,width:m,height:x},{opacity:r.opacity??1}),t.pass=k};var Me=W({WebGPURenderer:K});export{Me as a};
217
+ `,be=O(r=>({uniformLayout:R(r,["uniform"]),srcTextureLayout:R(r,["texture","sampler"]),depthTextureLayout:R(r,["texture","sampler"]),signalTextureLayout:E(r,8),pipelineCache:new Map}));function Le(r,n){let a=be(r),p=`relight_${n}`,u=a.pipelineCache.get(p);if(!u){let h=r.createShaderModule({label:`relight_${n}.wgsl`,code:ye});u=$(r,{label:`RelightPipeline_${n}`,module:h,layouts:[a.uniformLayout,a.srcTextureLayout,a.depthTextureLayout,a.signalTextureLayout],format:n}),a.pipelineCache.set(p,u)}return{pipeline:u,uniformLayout:a.uniformLayout,srcTextureLayout:a.srcTextureLayout,depthTextureLayout:a.depthTextureLayout,signalTextureLayout:a.signalTextureLayout}}function o(r,n,a,p,u,h=0,m=30){let l=`${n}HandleId`,f=r[l],i=f?r.inputs?.[f]:null,s=!!(i?.connectionValid&&(i.outputItem?.type==="Signal"||i.outputItem?.type==="Numeric")),t=s&&i?.outputItem?.data?i.outputItem.data:null,d=a;if(s){if(t){let g=T(t.offset,a,h,m);d=Math.max(p,Math.min(u,g))}}else if(i?.connectionValid&&i.outputItem?.type==="Number"){let g=T(i.outputItem.data,a,h,m);d=Math.max(p,Math.min(u,g))}else{let g=T(r[n],a,h,m);d=Math.max(p,Math.min(u,g))}return{hasSignal:s,sd:t,value:d}}var Q=async r=>{let{ctx:n,encoder:a,pass:p,targetTexture:u,targetWidth:h,targetHeight:m,props:l}=r,f=l.frame??0,i=l.compositionFrame??f,s=l.fps||30,t=l.virtualMedia?.operation;if(t?.op!=="Relight3D"||!t)return;let d=l.virtualMedia.children?.[0];if(!d)return;p.end();let g=h,v=m,{texture:S}=await Y(r,d,{props:{...l,virtualMedia:d,containerWidth:g,containerHeight:v}});r.pass.end();let Z=t.normalMedia??(t.inputs?.normalMap?.connectionValid?t.inputs.normalMap.outputItem?.data:null),I=Z??t.depthMedia,x,P=!1,U=!!Z;I?({texture:x}=await Y(r,I,{props:{...l,virtualMedia:I,containerWidth:g,containerHeight:v},exclude:[S]}),r.pass.end(),P=!0):(x=S,P=!1);let{pipeline:j,uniformLayout:q,srcTextureLayout:J,depthTextureLayout:ee,signalTextureLayout:te}=Le(n.device,n.renderer.format),M=n.renderer.samplerCache.getSampler(n.device),ie=l.elapsedMs!==void 0?l.elapsedMs/1e3:i/s,ne=l.virtualMedia?.metadata?.durationMs?l.virtualMedia.metadata.durationMs/1e3:l.durationMs!==void 0?l.durationMs/1e3:4,w=o(t,"intensity",1,0,10,i,s),C=o(t,"lightPosX",.5,0,1,i,s),_=o(t,"lightPosY",.5,0,1,i,s),H=o(t,"lightPosZ",.3,-2,2,i,s),N=o(t,"lightRadius",.8,.05,5,i,s),re=o(t,"spotConeAngle",45,5,90,i,s),z=o(t,"specularRoughness",.35,.01,1,i,s),G=o(t,"specularStrength",.7,0,3,i,s),ae=o(t,"metallic",0,0,1,i,s),se=o(t,"ambientIntensity",.4,0,2,i,s),V=o(t,"volumetricDensity",.2,0,1,i,s),le=o(t,"depthScale",1,.1,10,i,s),c=(L,Se)=>L.hasSignal&&L.sd?A.getOrCreate2DTextureView(n.device,a,L.sd.nodeId??Se,ie,ne,L.sd,g,v,l.renderId,i,s):A.getDummy1x1TextureView(n.device),oe=c(w,"relight_int_sig"),ue=c(C,"relight_posx_sig"),ge=c(_,"relight_posy_sig"),pe=c(H,"relight_posz_sig"),de=c(N,"relight_rad_sig"),ce=c(z,"relight_rough_sig"),he=c(G,"relight_spec_sig"),me=c(V,"relight_vol_sig"),e=new Float32Array(32),y=X(t.lightColor??"#ffffff"),b=X(t.ambientColor??"#ffffff"),fe=t.lightType==="Spot"?1:t.lightType==="Directional"?2:t.lightType==="Rim"?3:0;e[0]=fe,e[1]=w.value,e[2]=C.value,e[3]=_.value,e[4]=H.value,e[5]=N.value,e[6]=re.value*Math.PI/180,e[7]=z.value,e[8]=G.value,e[9]=ae.value,e[10]=se.value,e[11]=V.value,e[12]=le.value,e[13]=t.depthInvert?1:0,e[14]=P||U?1:0,e[15]=U?1:0,e[16]=w.hasSignal?1:0,e[17]=C.hasSignal?1:0,e[18]=_.hasSignal?1:0,e[19]=H.hasSignal?1:0,e[20]=N.hasSignal?1:0,e[21]=z.hasSignal?1:0,e[22]=G.hasSignal?1:0,e[23]=V.hasSignal?1:0,e[24]=y.r,e[25]=y.g,e[26]=y.b,e[27]=y.a,e[28]=b.r,e[29]=b.g,e[30]=b.b,e[31]=b.a;let ve=n.renderer.getTemporaryBuffer(e),F=n.renderer.getTemporaryTexture(g,v,[S,x,u,...l.excludeTextures||[]]);K(a,F.createView(),j,[n.device.createBindGroup({layout:q,entries:[{binding:0,resource:{buffer:ve}}]}),n.renderer.bindGroupCache.getBindGroup(n.device,J,S,M),n.renderer.bindGroupCache.getBindGroup(n.device,ee,x,M),n.device.createBindGroup({layout:te,entries:[{binding:0,resource:oe},{binding:1,resource:ue},{binding:2,resource:ge},{binding:3,resource:pe},{binding:4,resource:de},{binding:5,resource:ce},{binding:6,resource:he},{binding:7,resource:me},{binding:8,resource:M}]})]),k(r,F,t.opacity??1)};var Ce=W({WebGPURenderer:Q});export{Ce as a};
@@ -1,4 +1,4 @@
1
- import{a as O}from"./chunk-D3TETPLI.mjs";import{c as g,d as v,t as F}from"./chunk-ZNGOAGAI.mjs";import{e as d}from"./chunk-BVF64D6H.mjs";d();d();var R=["fadeInDuration","fadeOutDuration"],E=()=>`
1
+ import{a as h}from"./chunk-OG62XGCT.mjs";import{c as m,d as c,y as g,z as I}from"./chunk-63SFBHEH.mjs";import{e as i}from"./chunk-BVF64D6H.mjs";i();i();var w=["fadeInDuration","fadeOutDuration"],E=()=>`
2
2
  struct Uniforms {
3
3
  sampleRate : f32,
4
4
  fadeInDuration : f32,
@@ -109,4 +109,4 @@ fn main(@builtin(global_invocation_id) gid : vec3<u32>) {
109
109
  // Dummy reference to keep state binding active
110
110
  state[0] = state[0];
111
111
  }
112
- `,C=n=>n==="exponential"?1:n==="scurve"?2:0,b=async(n,s,l,e)=>{if(!e?.device)throw new Error("GPUDevice is required for WebGPU Audio Fade.");let a=l.operation||{},x=a.inputs||{},I=n.length;if(I===0)return;let p=n[0].length;if(p===0)return;let S=Math.max(0,g(a.fadeInDuration,0)),V=Math.max(0,g(a.fadeOutDuration,0)),P=v(a.fadeInCurve,"linear"),_=v(a.fadeOutCurve,"linear"),m=l.metadata?.durationMs??e?.durationMs??(typeof a.durationFrames=="number"&&(e.fps??24)>0?a.durationFrames/(e.fps??24)*1e3:void 0),u=m!==void 0&&m>0?m/1e3:p/s,f=S,i=V;if(u>0&&f+i>u){let t=u/2;f=Math.min(f,t),i=Math.min(i,t)}let D=t=>{let r=a[t];if(typeof r!="string"||!r)return!1;let o=x[r];return!!(o?.connectionValid&&o.outputItem&&(o.outputItem.type==="Signal"||o.outputItem.type==="Number"))},y=D("fadeInDurationHandleId")?1:0,A=D("fadeOutDurationHandleId")?1:0,M=a.id||"audio-fade",c=e.frame??0,h=e.fps??24;await O.process(e.device,M,n,s,l,c,h,E,t=>{let r=Math.max(0,t-c/h);return[s,f,i,C(P),C(_),u,y,A,r,c,p,I,0,0,0,0]},16,1,e?.renderId,!0,e?.elapsedMs,e?.durationMs,void 0,void 0,R)};var W=F({audioProcessor:b});export{W as a};
112
+ `,F=n=>n==="exponential"?1:n==="scurve"?2:0,O=async(n,o,d,e)=>{if(!e?.device)throw new Error("GPUDevice is required for WebGPU Audio Fade.");let a=d.operation||{},v=n.length;if(v===0)return;let s=n[0].length;if(s===0)return;let C=Math.max(0,m(a.fadeInDuration,0)),S=Math.max(0,m(a.fadeOutDuration,0)),x=c(a.fadeInCurve,"linear"),b=c(a.fadeOutCurve,"linear"),l=d.metadata?.durationMs??e?.durationMs??(typeof a.durationFrames=="number"&&(e.fps??24)>0?a.durationFrames/(e.fps??24)*1e3:void 0),r=l!==void 0&&l>0?l/1e3:s/o,f=C,t=S;if(r>0&&f+t>r){let u=r/2;f=Math.min(f,u),t=Math.min(t,u)}let P=g(a,"fadeInDurationHandleId")?1:0,V=g(a,"fadeOutDurationHandleId")?1:0,_=a.id||"audio-fade",p=e.frame??0,D=e.fps??24,y=Math.max(0,(e.elapsedMs??0)/1e3);await h.process(e.device,_,n,o,d,p,D,E,u=>{let M=y+Math.max(0,u-p/D);return[o,f,t,F(x),F(b),r,P,V,M,p,s,v,0,0,0,0]},16,1,e?.renderId,!0,e?.elapsedMs,e?.durationMs,void 0,void 0,w)};var W=I({audioProcessor:O});export{W as a};
@@ -1,4 +1,4 @@
1
- import{a as A}from"./chunk-D3TETPLI.mjs";import{c as o,d as m,t as h}from"./chunk-ZNGOAGAI.mjs";import{e as t}from"./chunk-BVF64D6H.mjs";t();t();var C=["frequency","gain","q"],T=()=>`
1
+ import{a as h}from"./chunk-OG62XGCT.mjs";import{c as i,d as c,y as t,z as g}from"./chunk-63SFBHEH.mjs";import{e as r}from"./chunk-BVF64D6H.mjs";r();r();var x=["frequency","gain","q"],v=()=>`
2
2
  struct Uniforms {
3
3
  sampleRate : f32,
4
4
  numBands : f32,
@@ -188,4 +188,4 @@ fn main(@builtin(global_invocation_id) gid : vec3<u32>) {
188
188
  state[offset + 3u] = y2;
189
189
  }
190
190
  }
191
- `,E=a=>a==="peak"?0:a==="lowShelf"?1:a==="highShelf"?2:a==="lowPass"?3:a==="highPass"?4:a==="notch"?5:0,y=async(a,u,p,f)=>{if(!f?.device)throw new Error("GPUDevice is required for WebGPU Parametric EQ.");let e=p.operation||{},_=e.inputs||{},c=m(e.type,"peak"),n={type:["lowShelf","highShelf","peak","lowPass","highPass","notch"].includes(c)?c:"peak",frequency:o(e.frequency,1e3),frequencyHandleId:typeof e.frequencyHandleId=="string"?e.frequencyHandleId:null,gain:o(e.gain,0),gainHandleId:typeof e.gainHandleId=="string"?e.gainHandleId:null,q:o(e.q,1),qHandleId:typeof e.qHandleId=="string"?e.qHandleId:null},i=P=>{let l=e[P];if(typeof l!="string"||!l)return!1;let r=_[l];return!!(r?.connectionValid&&r.outputItem&&(r.outputItem.type==="Signal"||r.outputItem.type==="Number"))},b=i("frequencyHandleId")?1:0,q=i("gainHandleId")?1:0,w=i("qHandleId")?1:0,s=a.length;if(s===0)return;let d=a[0].length;if(d===0)return;let S=e.id||"audio-parametric-eq",g=f.frame??0,x=f.fps??24,v=4+s*4;await A.process(f.device,S,a,u,p,g,x,T,()=>[u,1,n.frequency,n.gain,n.q,E(n.type),b,q,w,0,g,d,s,0,0,0],16,v,f?.renderId,!0,f?.elapsedMs,f?.durationMs,void 0,void 0,C)};var B=h({audioProcessor:y});export{B as a};
191
+ `,P=a=>a==="peak"?0:a==="lowShelf"?1:a==="highShelf"?2:a==="lowPass"?3:a==="highPass"?4:a==="notch"?5:0,m=async(a,o,l,f)=>{if(!f?.device)throw new Error("GPUDevice is required for WebGPU Parametric EQ.");let e=l.operation||{},u=c(e.type,"peak"),n={type:["lowShelf","highShelf","peak","lowPass","highPass","notch"].includes(u)?u:"peak",frequency:i(e.frequency,1e3),frequencyHandleId:typeof e.frequencyHandleId=="string"?e.frequencyHandleId:null,gain:i(e.gain,0),gainHandleId:typeof e.gainHandleId=="string"?e.gainHandleId:null,q:i(e.q,1),qHandleId:typeof e.qHandleId=="string"?e.qHandleId:null},A=t(e,"frequencyHandleId")?1:0,y=t(e,"gainHandleId")?1:0,_=t(e,"qHandleId")?1:0,s=a.length;if(s===0)return;let p=a[0].length;if(p===0)return;let b=e.id||"audio-parametric-eq",d=f.frame??0,q=f.fps??24,w=4+s*4;await h.process(f.device,b,a,o,l,d,q,v,()=>[o,1,n.frequency,n.gain,n.q,P(n.type),A,y,_,0,d,p,s,0,0,0],16,w,f?.renderId,!0,f?.elapsedMs,f?.durationMs,void 0,void 0,x)};var G=g({audioProcessor:m});export{G as a};
@@ -0,0 +1 @@
1
+ import{a as G,c as T}from"./chunk-IQKIHFNZ.mjs";import{e as p}from"./chunk-BVF64D6H.mjs";p();var y=8,_=/^\s*(linear|radial|conic)-gradient\(\s*([\s\S]*)\)\s*$/i;function R(t){return typeof t=="string"&&_.test(t)}function U(t){let e=[],n=0,o="";for(let r of t)r==="("&&n++,r===")"&&n--,r===","&&n===0?(e.push(o.trim()),o=""):o+=r;return o.trim()&&e.push(o.trim()),e}function w(t){let e=/^(-?[\d.]+)(deg|turn|rad|grad)?$/i.exec(t.trim());if(!e)return null;let n=parseFloat(e[1]);switch((e[2]??"deg").toLowerCase()){case"turn":return n*360;case"rad":return n*180/Math.PI;case"grad":return n*.9;default:return n}}var W={top:0,right:90,bottom:180,left:270,"top right":45,"right top":45,"bottom right":135,"right bottom":135,"bottom left":225,"left bottom":225,"top left":315,"left top":315},I={left:0,top:0,center:.5,right:1,bottom:1};function V(t){let e=t.map(r=>r in I?{v:I[r],axis:r==="top"||r==="bottom"?"y":r==="left"||r==="right"?"x":"any"}:{v:r.endsWith("%")?parseFloat(r)/100:.5,axis:"any"}),n=.5,o=.5;return e.length===1?e[0].axis==="y"?o=e[0].v:n=e[0].v:e.length>=2&&(e[0].axis==="y"||e[1].axis==="x"?(o=e[0].v,n=e[1].v):(n=e[0].v,o=e[1].v)),[n,o]}function A(t){let e=/^((?:[a-z]+\([^)]*\))|#[0-9a-f]+|[a-z]+)\s*(.*)$/i.exec(t.trim());if(!e)return null;let n=T(e[1]);if(!n)return null;let o=[];for(let r of e[2].split(/\s+/).filter(Boolean))if(r.endsWith("%"))o.push(parseFloat(r)/100);else if(r==="0")o.push(0);else if(/(deg|turn|rad|grad)$/i.test(r)){let s=w(r);s!==null&&o.push(s/360)}return{color:n,positions:o.filter(r=>Number.isFinite(r))}}function F(t){let e=t.length;if(e===0)return[];let n=t.map(r=>r.position);n[0]===void 0&&(n[0]=0),n[e-1]===void 0&&(n[e-1]=1);let o=-1/0;for(let r=0;r<e;r++){let s=n[r];s!==void 0&&(n[r]=Math.max(s,o),o=n[r])}for(let r=1;r<e;r++){if(n[r]!==void 0)continue;let s=r;for(;n[s]===void 0;)s++;let c=n[r-1],l=n[s];for(let i=r;i<s;i++)n[i]=c+(l-c)*(i-r+1)/(s-r+1)}return t.map((r,s)=>({offset:n[s],color:r.color}))}var m=new Map;function $(t){let e=m.get(t);if(e!==void 0)return e;let n=N(t);return m.size>512&&m.clear(),m.set(t,n),n}function N(t){let e=_.exec(t);if(!e)return null;let n=e[1].toLowerCase(),o=U(e[2]),r={type:n,angle:180,center:[.5,.5],shape:"ellipse",from:0,stops:[]},s=o[0]?.toLowerCase().trim()??"",c=!1;if(n==="linear")if(s.startsWith("to ")){let i=s.slice(3).trim().replace(/\s+/g," ");i in W&&(r.angle=W[i],c=!0)}else{let i=w(s);i!==null&&(r.angle=i,c=!0)}else{let i=s.split(/\s+/).filter(Boolean),a=i.indexOf("at"),u=a>=0?i.slice(0,a):i;if(a>=0||u.some(d=>d==="circle"||d==="ellipse"||d==="from"||/^closest|^farthest/.test(d)||n==="radial"&&/px$/.test(d)))if(c=!0,a>=0&&(r.center=V(i.slice(a+1))),n==="radial"){u.includes("circle")&&(r.shape="circle");let d=u.filter(v=>/px$/.test(v)).map(v=>parseFloat(v));d.length===1?(r.shape="circle",r.radius=[d[0],d[0]]):d.length>=2&&(r.radius=[d[0],d[1]])}else{let d=u.indexOf("from");d>=0&&u[d+1]&&(r.from=w(u[d+1])??0)}}let l=[];for(let i of c?o.slice(1):o){let a=A(i);if(!a)return null;a.positions.length===0&&l.push({color:a.color});for(let u of a.positions)l.push({color:a.color,position:u})}return l.length===0?null:(l.length===1&&l.push({...l[0]}),r.stops=F(l),r)}function B(t){if(t.length<=y)return t;let e=[],n=t[0].offset,o=t[t.length-1].offset;for(let r=0;r<y;r++){let s=n+(o-n)*r/(y-1),c=1;for(;c<t.length-1&&t[c].offset<s;)c++;let l=t[c-1],i=t[c],a=i.offset-l.offset,u=a>0?Math.min(1,Math.max(0,(s-l.offset)/a)):1;e.push({offset:s,color:l.color.map((P,d)=>P+(i.color[d]-P)*u)})}return e}function D(t){let e=t.map(n=>G(n.color[0],n.color[1],n.color[2]));return t.map((n,o)=>{let r=e[o];if(n.color[3]<1e-4){let s=t.slice(0,o).reverse().findIndex(a=>a.color[3]>1e-4),c=t.slice(o+1).findIndex(a=>a.color[3]>1e-4),l=s>=0?o-1-s:-1,i=c>=0?o+1+c:-1;if(l>=0&&i>=0){let a=e[l],u=e[i];r=[(a[0]+u[0])/2,(a[1]+u[1])/2,(a[2]+u[2])/2]}else l>=0?r=e[l]:i>=0&&(r=e[i])}return[r[0],r[1],r[2],n.color[3]]})}function h(t){return t.map(e=>typeof e=="string"?e:`${e.color} ${Math.round(e.offset*1e4)/100}%`).join(", ")}var K={linear(t,e=180){return`linear-gradient(${e}deg, ${h(t)})`},radial(t,e={}){let n=e.at??[.5,.5];return`radial-gradient(${e.radius!==void 0?`${e.radius}px`:e.circle?"circle":"ellipse"} at ${n[0]*100}% ${n[1]*100}%, ${h(t)})`},conic(t,e={}){let n=e.at??[.5,.5];return`conic-gradient(from ${e.from??0}deg at ${n[0]*100}% ${n[1]*100}%, ${h(t)})`},parse:$,is:R};p();var E="onnxruntime-web",M=()=>import(E),b=class{kind="webgpu";_loader;_providers;_wasmFallback;_ortPromise;constructor(e={}){this._loader=e.loader??M,this._providers=e.executionProviders??["webgpu","wasm"],this._wasmFallback=e.wasmFallback!==!1}ort(){return this._ortPromise||(this._ortPromise=this._loader().catch(e=>{throw this._ortPromise=void 0,new Error(`onnxruntime-web failed to load (${String(e)}). Install it in the browser bundle or pass a custom loader.`)})),this._ortPromise}async createSession(e){let n=await this.ort(),o;try{o=await n.InferenceSession.create(e,{executionProviders:[...this._providers],graphOptimizationLevel:"all",logSeverityLevel:3})}catch(r){if(!this._wasmFallback||!this._providers.includes("webgpu"))throw r;o=await n.InferenceSession.create(e,{executionProviders:["wasm"],graphOptimizationLevel:"all",logSeverityLevel:3})}return{run:async r=>{let s=o.inputNames.includes(r.name)?r.name:o.inputNames[0]??r.name,c=await o.run({[s]:new n.Tensor("float32",r.data,[...r.dims])}),l={};for(let[i,a]of Object.entries(c))l[i]={data:a.data,dims:[...a.dims]};return l},release:()=>{o.release()}}}};p();p();var L="onnxruntime-web/webgpu",C="webgpu",f;function j(){return f||(f=(async()=>{let t=globalThis;if(t.navigator?.gpu)return;let{create:e,globals:n}=await import(C);Object.assign(globalThis,n);let o=t.navigator??={};Object.defineProperty(o,"gpu",{value:e([]),configurable:!0,writable:!0})})(),f.catch(()=>{f=void 0})),f}var g=class{kind="webgpu";_inner;constructor(e={}){let n=e.loader??(async()=>{await j();let o=await import(L);return o.env?.wasm&&(o.env.wasm.numThreads=1),o});this._inner=new b({wasmFallback:!1,...e,loader:n})}createSession(e){return this._inner.createSession(e)}};var k;function re(t){k=t}var x=class{_resolved;get kind(){return this._resolved?.kind??"webgpu"}async createSession(e){if(!this._resolved){let n=new g({wasmFallback:!1});try{let o=await n.createSession(e);return this._resolved=n,o}catch{this._resolved=new O}}return this._resolved.createSession(e)}};function ne(){return k?.()??new x}var O=class{kind="node";ortPromise;async ort(){return this.ortPromise||(this.ortPromise=import("./onnxruntime-node-56GSZEH3.mjs").catch(e=>{throw this.ortPromise=void 0,new Error(`onnxruntime-node failed to load (${String(e)}). Install it in the environment or provide a custom SessionProvider.`)})),this.ortPromise}async createSession(e){let n=await this.ort(),o=await n.InferenceSession.create(e,{executionProviders:["cpu"],graphOptimizationLevel:"all"});return{run:async r=>{let c={[o.inputNames.includes(r.name)?r.name:o.inputNames[0]??r.name]:new n.Tensor("float32",r.data,[...r.dims])},l=await o.run(c),i={};for(let[a,u]of Object.entries(l))i[a]={data:u.data,dims:[...u.dims]};return i},release:()=>{o.release()}}}};export{y as a,R as b,$ as c,B as d,D as e,K as f,b as g,re as h,ne as i};
@@ -1,4 +1,4 @@
1
- import{a as $}from"./chunk-XOEEGC4Z.mjs";import{b as Z,c as J}from"./chunk-IYVN2QEL.mjs";import{a as r}from"./chunk-NQZKBFC6.mjs";import{d as _}from"./chunk-6YJP57MZ.mjs";import{e as w}from"./chunk-BVF64D6H.mjs";w();w();w();var I=250,M=1,U=100,be=$().field("shadowAmount",r.number().min(0).max(100).default(0),{bindable:!0,dataTypes:["Number","Signal"],label:"Shadow Boost (%)",description:"Percentage to lift and recover crushed shadow details (0\u2013100%)."}).field("shadowTonalWidth",r.number().min(0).max(100).default(50),{bindable:!0,dataTypes:["Number","Signal"],label:"Shadow Range (%)",description:"Range of dark tones affected by shadow adjustments (0\u2013100%)."}).field("shadowRadius",r.number().min(1).max(250).default(30),{bindable:!0,dataTypes:["Number","Signal"],label:"Shadow Radius (px)",description:"Local neighborhood radius in pixels to determine shadow illumination (1\u2013250px)."}).field("highlightAmount",r.number().min(0).max(100).default(0),{bindable:!0,dataTypes:["Number","Signal"],label:"Highlight Suppression (%)",description:"Percentage to suppress and recover blown highlight details (0\u2013100%)."}).field("highlightTonalWidth",r.number().min(0).max(100).default(50),{bindable:!0,dataTypes:["Number","Signal"],label:"Highlight Range (%)",description:"Range of bright tones affected by highlight adjustments (0\u2013100%)."}).field("highlightRadius",r.number().min(1).max(250).default(30),{bindable:!0,dataTypes:["Number","Signal"],label:"Highlight Radius (px)",description:"Local neighborhood radius in pixels to determine highlight exposure (1\u2013250px)."}).field("colorCorrection",r.number().min(-100).max(100).default(0),{bindable:!0,dataTypes:["Number","Signal"],label:"Color Correction (%)",description:"Fine-tunes color saturation in recovered shadow/highlight zones (-100 to +100%)."}).field("midtoneContrast",r.number().min(-100).max(100).default(0),{bindable:!0,dataTypes:["Number","Signal"],label:"Midtone Contrast (%)",description:"Adjusts contrast centered on the midtones (-100 to +100%)."}).build(),ee=be.schema,Ce=r.union([Z,J]),He=ee.extend({op:r.literal("ShadowsHighlights"),metadata:r.unknown().optional()}),We=ee.parse({});var we=`
1
+ import{a as q}from"./chunk-XOEEGC4Z.mjs";import{b as Q,c as Z}from"./chunk-FLPSWDX4.mjs";import{a as o}from"./chunk-NQZKBFC6.mjs";import{a as j,d as y,e as E,g as K,h as X,j as P,k as Y,l as $,m as _}from"./chunk-ENKKLU7B.mjs";import{w as z}from"./chunk-63SFBHEH.mjs";import{e as r}from"./chunk-BVF64D6H.mjs";r();r();r();var V=250,I=1,N=100,ve=q().field("shadowAmount",o.number().min(0).max(100).default(0),{bindable:!0,dataTypes:["Number","Signal"],label:"Shadow Boost (%)",description:"Percentage to lift and recover crushed shadow details (0\u2013100%)."}).field("shadowTonalWidth",o.number().min(0).max(100).default(50),{bindable:!0,dataTypes:["Number","Signal"],label:"Shadow Range (%)",description:"Range of dark tones affected by shadow adjustments (0\u2013100%)."}).field("shadowRadius",o.number().min(1).max(250).default(30),{bindable:!0,dataTypes:["Number","Signal"],label:"Shadow Radius (px)",description:"Local neighborhood radius in pixels to determine shadow illumination (1\u2013250px)."}).field("highlightAmount",o.number().min(0).max(100).default(0),{bindable:!0,dataTypes:["Number","Signal"],label:"Highlight Suppression (%)",description:"Percentage to suppress and recover blown highlight details (0\u2013100%)."}).field("highlightTonalWidth",o.number().min(0).max(100).default(50),{bindable:!0,dataTypes:["Number","Signal"],label:"Highlight Range (%)",description:"Range of bright tones affected by highlight adjustments (0\u2013100%)."}).field("highlightRadius",o.number().min(1).max(250).default(30),{bindable:!0,dataTypes:["Number","Signal"],label:"Highlight Radius (px)",description:"Local neighborhood radius in pixels to determine highlight exposure (1\u2013250px)."}).field("colorCorrection",o.number().min(-100).max(100).default(0),{bindable:!0,dataTypes:["Number","Signal"],label:"Color Correction (%)",description:"Fine-tunes color saturation in recovered shadow/highlight zones (-100 to +100%)."}).field("midtoneContrast",o.number().min(-100).max(100).default(0),{bindable:!0,dataTypes:["Number","Signal"],label:"Midtone Contrast (%)",description:"Adjusts contrast centered on the midtones (-100 to +100%)."}).build(),ee=ve.schema,We=o.union([Q,Z]),Le=ee.extend({op:o.literal("ShadowsHighlights"),metadata:o.unknown().optional()}),ye=ee.parse({});var Te=`
2
2
  struct ShadowsHighlightsUniforms {
3
3
  dirX : f32,
4
4
  dirY : f32,
@@ -40,27 +40,7 @@ struct ShadowsHighlightsUniforms {
40
40
  @group(2) @binding(6) var colorCorrectionSigTex : texture_2d<f32>;
41
41
  @group(2) @binding(7) var midtoneContrastSigTex : texture_2d<f32>;
42
42
  @group(2) @binding(8) var signalSamp : sampler;
43
-
44
- struct VSOut {
45
- @builtin(position) pos : vec4<f32>,
46
- @location(0) uv : vec2<f32>,
47
- };
48
-
49
- @vertex fn vs(@builtin(vertex_index) vi: u32) -> VSOut {
50
- var pos = array<vec2<f32>, 4>(
51
- vec2<f32>(-1.0, 1.0),
52
- vec2<f32>(1.0, 1.0),
53
- vec2<f32>(-1.0, -1.0),
54
- vec2<f32>(1.0, -1.0)
55
- );
56
- var uv = array<vec2<f32>, 4>(
57
- vec2<f32>(0.0, 0.0),
58
- vec2<f32>(1.0, 0.0),
59
- vec2<f32>(0.0, 1.0),
60
- vec2<f32>(1.0, 1.0)
61
- );
62
- return VSOut(vec4<f32>(pos[vi], 0.0, 1.0), uv[vi]);
63
- }
43
+ ${j}
64
44
 
65
45
  fn get_luminance(c: vec3<f32>) -> f32 {
66
46
  return dot(c, vec3<f32>(0.2126, 0.7152, 0.0722));
@@ -261,4 +241,4 @@ fn get_luminance(c: vec3<f32>) -> f32 {
261
241
  let finalRgb = clamp(adjustedRgb, vec3<f32>(0.0), vec3<f32>(1.0));
262
242
  return vec4<f32>(finalRgb * alpha, alpha);
263
243
  }
264
- `,ie=new WeakMap,i=new Float32Array(20);function xe(s,e){let n=ie.get(s);if(n)return n;let y=s.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),x=s.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}},{binding:2,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}}]}),f=s.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:2,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:3,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:4,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:5,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:6,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:7,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:8,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}}]}),l=s.createShaderModule({code:we}),g=s.createPipelineLayout({bindGroupLayouts:[y,x,f]}),a=s.createRenderPipeline({layout:g,vertex:{module:l,entryPoint:"vs"},fragment:{module:l,entryPoint:"fs",targets:[{format:e}]},primitive:{topology:"triangle-strip"}}),C={uniformLayout:y,textureLayout:x,signalTextureLayout:f,pipeline:a};return ie.set(s,C),C}var te=async s=>{let{ctx:e,encoder:n,pass:y,targetView:x,targetTexture:f,targetWidth:l,targetHeight:g,props:a,drawChild:C}=s,t=a.virtualMedia?.operation;if(t?.op!=="ShadowsHighlights"||!t)return;let H=a.virtualMedia.children?.[0];if(!H)return;y.end();let B=a.frame??0,D=a.fps||30,m=l,c=g,ae=a.virtualMedia?.metadata?.id||(t.inputs?Object.keys(t.inputs)[0]:null)||a.renderId||"shadowshighlights_node",h=(o,p,Y=0,q=1e3)=>{if(o&&t.inputs?.[o]?.connectionValid){let S=t.inputs[o].outputItem;if(S?.type==="Number"){let ve=typeof S.data=="number"?S.data:S.data?.value??p;return{val:Math.max(Y,Math.min(q,ve)),hasStaticSig:!1,sd:null}}if(S?.type==="Signal"&&S.data)return{val:p,hasStaticSig:!0,sd:S.data}}return{val:Math.max(Y,Math.min(q,p)),hasStaticSig:!1,sd:null}},T=h(t.shadowAmountHandleId,Number(t.shadowAmount??0),0,U),W=h(t.shadowTonalWidthHandleId,Number(t.shadowTonalWidth??50),0,100),P=h(t.shadowRadiusHandleId,Number(t.shadowRadius??30),M,I),R=h(t.highlightAmountHandleId,Number(t.highlightAmount??0),0,U),L=h(t.highlightTonalWidthHandleId,Number(t.highlightTonalWidth??50),0,100),G=h(t.highlightRadiusHandleId,Number(t.highlightRadius??30),M,I),N=h(t.colorCorrectionHandleId,Number(t.colorCorrection??0),-100,100),A=h(t.midtoneContrastHandleId,Number(t.midtoneContrast??0),-100,100),d=e.renderer.getTemporaryTexture(m,c,[...a.excludeTextures||[],f]),O=d.createView();if(e.renderer.beginFrame(n,O,{r:0,g:0,b:0,a:0},m,c,"clear").end(),e.renderer.pushScissor({x:0,y:0,width:m,height:c}),e.renderer.pushIdentity(),await C(H,{...a,virtualMedia:H},O,d,m,c),e.renderer.popTransform(),e.renderer.popScissor(),T.val<=0&&!T.hasStaticSig&&R.val<=0&&!R.hasStaticSig&&A.val===0&&!A.hasStaticSig){let o=e.renderer.beginFrame(n,x,{r:0,g:0,b:0,a:0},l,g,"load");e.renderer.drawTexture(o,d,{x:0,y:0,width:l,height:g},{opacity:t.opacity??1}),s.pass=o;return}let{pipeline:F,uniformLayout:E,textureLayout:oe,signalTextureLayout:se}=xe(e.device,e.renderer.format),z=e.renderer.samplerCache.getSampler(e.device),re=a.elapsedMs!==void 0?a.elapsedMs/1e3:B/D,ne=a.virtualMedia?.metadata?.durationMs?a.virtualMedia.metadata.durationMs/1e3:a.durationMs!==void 0?a.durationMs/1e3:0,u=(o,p)=>o.hasStaticSig&&o.sd?_.getOrCreate2DTextureView(e.device,n,o.sd.nodeId??`${ae}_${p}`,re,ne,o.sd,m,c,a.renderId,B,D):_.getDummy1x1TextureView(e.device),le=u(T,"shadow_amount_sig"),he=u(W,"shadow_tonal_width_sig"),de=u(P,"shadow_radius_sig"),ue=u(R,"highlight_amount_sig"),ge=u(L,"highlight_tonal_width_sig"),me=u(G,"highlight_radius_sig"),ce=u(N,"color_correction_sig"),pe=u(A,"midtone_contrast_sig"),j=(o,p)=>e.device.createBindGroup({layout:oe,entries:[{binding:0,resource:o.createView()},{binding:1,resource:z},{binding:2,resource:p.createView()}]});i[2]=P.val,i[3]=G.val,i[4]=T.val,i[5]=W.val,i[6]=R.val,i[7]=L.val,i[8]=N.val,i[9]=A.val,i[10]=0,i[11]=0,i[12]=T.hasStaticSig?1:0,i[13]=W.hasStaticSig?1:0,i[14]=P.hasStaticSig?1:0,i[15]=R.hasStaticSig?1:0,i[16]=L.hasStaticSig?1:0,i[17]=G.hasStaticSig?1:0,i[18]=N.hasStaticSig?1:0,i[19]=A.hasStaticSig?1:0;let V=e.renderer.getTemporaryTexture(m,c,[d,f,...a.excludeTextures||[]]),k=e.renderer.getTemporaryTexture(m,c,[d,V,f,...a.excludeTextures||[]]),K=e.device.createBindGroup({layout:se,entries:[{binding:0,resource:le},{binding:1,resource:he},{binding:2,resource:de},{binding:3,resource:ue},{binding:4,resource:ge},{binding:5,resource:me},{binding:6,resource:ce},{binding:7,resource:pe},{binding:8,resource:z}]});i[0]=1,i[1]=0,i[10]=0;let Se=e.renderer.getTemporaryBuffer(i),v=n.beginRenderPass({colorAttachments:[{view:V.createView(),loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});v.setPipeline(F),v.setBindGroup(0,e.device.createBindGroup({layout:E,entries:[{binding:0,resource:{buffer:Se}}]})),v.setBindGroup(1,j(d,d)),v.setBindGroup(2,K),v.draw(4),v.end(),i[0]=0,i[1]=1,i[10]=1;let fe=e.renderer.getTemporaryBuffer(i),b=n.beginRenderPass({colorAttachments:[{view:k.createView(),loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});b.setPipeline(F),b.setBindGroup(0,e.device.createBindGroup({layout:E,entries:[{binding:0,resource:{buffer:fe}}]})),b.setBindGroup(1,j(V,d)),b.setBindGroup(2,K),b.draw(4),b.end();let X=e.renderer.beginFrame(n,x,{r:0,g:0,b:0,a:0},l,g,"load");e.renderer.drawTexture(X,k,{x:0,y:0,width:l,height:g},{opacity:t.opacity??1}),s.pass=X};var Me={WebGPURenderer:te};export{te as a,Me as b};
244
+ `,ie=new WeakMap,e=new Float32Array(20);function Re(t,a){let d=ie.get(t);if(d)return d;let w=y(t,["uniform"]),g=y(t,["texture","sampler","texture"]),x=E(t,8),b=t.createShaderModule({code:Te}),s=t.createPipelineLayout({bindGroupLayouts:[w,g,x]}),i=K(t,{module:b,layouts:s,format:a}),u={uniformLayout:w,textureLayout:g,signalTextureLayout:x,pipeline:i};return ie.set(t,u),u}var te=async t=>{let{ctx:a,encoder:d,pass:w,targetTexture:g,targetWidth:x,targetHeight:b,props:s}=t,i=s.virtualMedia?.operation;if(i?.op!=="ShadowsHighlights"||!i)return;let u=s.virtualMedia.children?.[0];if(!u)return;w.end();let G=s.frame??0,D=s.fps||30,v=x,T=b,ae=s.virtualMedia?.metadata?.id||(i.inputs?Object.keys(i.inputs)[0]:null)||s.renderId||"shadowshighlights_node",l=(S,f,xe=0,be=1e3)=>z(i.inputs,S,f,xe,be),m=l(i.shadowAmountHandleId,Number(i.shadowAmount??0),0,N),R=l(i.shadowTonalWidthHandleId,Number(i.shadowTonalWidth??50),0,100),A=l(i.shadowRadiusHandleId,Number(i.shadowRadius??30),I,V),c=l(i.highlightAmountHandleId,Number(i.highlightAmount??0),0,N),C=l(i.highlightTonalWidthHandleId,Number(i.highlightTonalWidth??50),0,100),H=l(i.highlightRadiusHandleId,Number(i.highlightRadius??30),I,V),W=l(i.colorCorrectionHandleId,Number(i.colorCorrection??0),-100,100),p=l(i.midtoneContrastHandleId,Number(i.midtoneContrast??0),-100,100),{texture:h}=await X(t,u);if(m.val<=0&&!m.hasStaticSig&&c.val<=0&&!c.hasStaticSig&&p.val===0&&!p.hasStaticSig){P(t,h,i.opacity??1);return}let{pipeline:B,uniformLayout:U,textureLayout:oe,signalTextureLayout:se}=Re(a.device,a.renderer.format),O=a.renderer.samplerCache.getSampler(a.device),{elapsedSeconds:le,durationSeconds:ne}=Y(s,G,D),he={args:t,width:v,height:T,frame:G,fps:D,elapsedSeconds:le,durationSeconds:ne},n=(S,f)=>$(he,S,`${ae}_${f}`),re=n(m,"shadow_amount_sig"),de=n(R,"shadow_tonal_width_sig"),ge=n(A,"shadow_radius_sig"),ue=n(c,"highlight_amount_sig"),me=n(C,"highlight_tonal_width_sig"),ce=n(H,"highlight_radius_sig"),pe=n(W,"color_correction_sig"),Se=n(p,"midtone_contrast_sig"),M=(S,f)=>a.device.createBindGroup({layout:oe,entries:[{binding:0,resource:S.createView()},{binding:1,resource:O},{binding:2,resource:f.createView()}]});e[2]=A.val,e[3]=H.val,e[4]=m.val,e[5]=R.val,e[6]=c.val,e[7]=C.val,e[8]=W.val,e[9]=p.val,e[10]=0,e[11]=0,e[12]=m.hasStaticSig?1:0,e[13]=R.hasStaticSig?1:0,e[14]=A.hasStaticSig?1:0,e[15]=c.hasStaticSig?1:0,e[16]=C.hasStaticSig?1:0,e[17]=H.hasStaticSig?1:0,e[18]=W.hasStaticSig?1:0,e[19]=p.hasStaticSig?1:0;let L=a.renderer.getTemporaryTexture(v,T,[h,g,...s.excludeTextures||[]]),F=a.renderer.getTemporaryTexture(v,T,[h,L,g,...s.excludeTextures||[]]),k=a.device.createBindGroup({layout:se,entries:[{binding:0,resource:re},{binding:1,resource:de},{binding:2,resource:ge},{binding:3,resource:ue},{binding:4,resource:me},{binding:5,resource:ce},{binding:6,resource:pe},{binding:7,resource:Se},{binding:8,resource:O}]});e[0]=1,e[1]=0,e[10]=0;let fe=a.renderer.getTemporaryBuffer(e);_(d,L.createView(),B,[a.device.createBindGroup({layout:U,entries:[{binding:0,resource:{buffer:fe}}]}),M(h,h),k]),e[0]=0,e[1]=1,e[10]=1;let we=a.renderer.getTemporaryBuffer(e);_(d,F.createView(),B,[a.device.createBindGroup({layout:U,entries:[{binding:0,resource:{buffer:we}}]}),M(L,h),k]),P(t,F,i.opacity??1)};var Ue={WebGPURenderer:te};export{te as a,Ue as b};
@@ -0,0 +1,53 @@
1
+ import{a as R,c as P,d as h,g as D,h as U,j as w,m as B}from"./chunk-ENKKLU7B.mjs";import{z as F}from"./chunk-63SFBHEH.mjs";import{e as y}from"./chunk-BVF64D6H.mjs";y();y();var N=`
2
+ struct FlipUniforms {
3
+ flipH : f32,
4
+ flipV : f32,
5
+ diagonal : f32,
6
+ symmetry : f32,
7
+ };
8
+
9
+ @group(0) @binding(0) var<uniform> u : FlipUniforms;
10
+ @group(1) @binding(0) var tex : texture_2d<f32>;
11
+ @group(1) @binding(1) var samp : sampler;
12
+ ${R}
13
+
14
+ @fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {
15
+ var uv = in.uv;
16
+
17
+ // 1. Split-Mirror / Symmetry
18
+ if (u.symmetry > 0.5 && u.symmetry < 1.5) {
19
+ // leftToRight: mirror left half to right half
20
+ uv.x = select(uv.x, 1.0 - uv.x, uv.x > 0.5);
21
+ } else if (u.symmetry > 1.5 && u.symmetry < 2.5) {
22
+ // rightToLeft: mirror right half to left half
23
+ uv.x = select(1.0 - uv.x, uv.x, uv.x > 0.5);
24
+ } else if (u.symmetry > 2.5 && u.symmetry < 3.5) {
25
+ // topToBottom: mirror top half to bottom half
26
+ uv.y = select(uv.y, 1.0 - uv.y, uv.y > 0.5);
27
+ } else if (u.symmetry > 3.5 && u.symmetry < 4.5) {
28
+ // bottomToTop: mirror bottom half to top half
29
+ uv.y = select(1.0 - uv.y, uv.y, uv.y > 0.5);
30
+ } else if (u.symmetry > 4.5) {
31
+ // quadrant: 4-way kaleidoscopic symmetry
32
+ uv.x = select(uv.x, 1.0 - uv.x, uv.x > 0.5);
33
+ uv.y = select(uv.y, 1.0 - uv.y, uv.y > 0.5);
34
+ }
35
+
36
+ // 2. Diagonal Swap (Transposition: x <-> y)
37
+ if (u.diagonal > 0.5) {
38
+ let temp = uv.x;
39
+ uv.x = uv.y;
40
+ uv.y = temp;
41
+ }
42
+
43
+ // 3. Horizontal / Vertical Flip
44
+ if (u.flipH > 0.5) {
45
+ uv.x = 1.0 - uv.x;
46
+ }
47
+ if (u.flipV > 0.5) {
48
+ uv.y = 1.0 - uv.y;
49
+ }
50
+
51
+ return textureSampleLevel(tex, samp, uv, 0.0);
52
+ }
53
+ `,S=new WeakMap,s=new Float32Array(4);function k(t,r){let m=S.get(t);if(m)return m;let c=h(t,["uniform"]),f=h(t,["texture","sampler"]),d=t.createShaderModule({code:N}),v=t.createPipelineLayout({bindGroupLayouts:[c,f]}),o=D(t,{module:d,layouts:v,format:r,blend:P}),e={uniformLayout:c,textureLayout:f,pipeline:o};return S.set(t,e),e}var H=async t=>{let{ctx:r,encoder:m,pass:c,targetTexture:f,targetWidth:d,targetHeight:v,props:o}=t,e=o.virtualMedia?.operation;if(e?.op!=="Flip"||!e)return;let u=o.virtualMedia.children?.[0];if(!u)return;c.end();let g=d,x=v,T=u.metadata?.width??o.containerWidth??g,L=u.metadata?.height??o.containerHeight??x,{texture:b}=await U(t,u,{width:T,height:L,props:{...o,containerWidth:T,containerHeight:L,virtualMedia:u}}),{pipeline:W,uniformLayout:M,textureLayout:V}=k(r.device,r.renderer.format),_=r.renderer.samplerCache.getSampler(r.device),i=e.mode??"horizontal",n=!1,l=!1,p=!1;i==="horizontal"?n=!0:i==="vertical"?l=!0:i==="both"?(n=!0,l=!0):i==="diagonal"?p=!0:i==="antiDiagonal"?(p=!0,n=!0,l=!0):i==="custom"&&(n=e.horizontal??!0,l=e.vertical??!1,p=e.diagonal??!1);let a=0;e.symmetry==="leftToRight"?a=1:e.symmetry==="rightToLeft"?a=2:e.symmetry==="topToBottom"?a=3:e.symmetry==="bottomToTop"?a=4:e.symmetry==="quadrant"&&(a=5),s[0]=n?1:0,s[1]=l?1:0,s[2]=p?1:0,s[3]=a;let z=r.renderer.getTemporaryBuffer(s),A=r.device.createBindGroup({layout:M,entries:[{binding:0,resource:{buffer:z}}]}),C=r.device.createBindGroup({layout:V,entries:[{binding:0,resource:b.createView()},{binding:1,resource:_}]}),G=r.renderer.getTemporaryTexture(g,x,[b,f,...o.excludeTextures||[]]);B(m,G.createView(),W,[A,C]),w(t,G,e.opacity??1)};var j=F({WebGPURenderer:H});export{j as a};
@@ -0,0 +1,32 @@
1
+ import{a as v,c as _,d,g as w,h as G,j as b,m as T}from"./chunk-ENKKLU7B.mjs";import{t as g,z as h}from"./chunk-63SFBHEH.mjs";import{e as u}from"./chunk-BVF64D6H.mjs";u();u();u();function N(){return[{x:0,y:0},{x:100,y:0},{x:0,y:100},{x:100,y:100}]}function L(e){let r=e&&e.length===4?e:N();return g(r.map(t=>({x:t.x/100,y:t.y/100})))}var z=`
2
+ struct CornerPinUniforms {
3
+ matrix_row0 : vec4<f32>,
4
+ matrix_row1 : vec4<f32>,
5
+ matrix_row2 : vec4<f32>,
6
+ };
7
+
8
+ @group(0) @binding(0) var<uniform> u : CornerPinUniforms;
9
+ @group(1) @binding(0) var tex : texture_2d<f32>;
10
+ @group(1) @binding(1) var samp : sampler;
11
+ ${v}
12
+
13
+ @fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {
14
+ let x = in.uv.x;
15
+ let y = in.uv.y;
16
+
17
+ let d = u.matrix_row2.x * x + u.matrix_row2.y * y + u.matrix_row2.z;
18
+ if (abs(d) < 1e-6) {
19
+ return vec4<f32>(0.0);
20
+ }
21
+
22
+ let src_u = (u.matrix_row0.x * x + u.matrix_row0.y * y + u.matrix_row0.z) / d;
23
+ let src_v = (u.matrix_row1.x * x + u.matrix_row1.y * y + u.matrix_row1.z) / d;
24
+
25
+ if (src_u < 0.0 || src_u > 1.0 || src_v < 0.0 || src_v > 1.0) {
26
+ return vec4<f32>(0.0);
27
+ }
28
+
29
+ let color = textureSampleLevel(tex, samp, vec2<f32>(src_u, src_v), 0.0);
30
+ return color;
31
+ }
32
+ `,C=new WeakMap;function E(e,r){let t=C.get(e);if(!t){let s=d(e,["uniform"]),a=d(e,["texture","sampler"]),p=e.createShaderModule({label:"corner_pin.wgsl",code:z});t={pinPipeline:w(e,{label:"CornerPinPipeline",module:p,layouts:[s,a],format:r,blend:_}),pinUniformLayout:s,pinTextureLayout:a},C.set(e,t)}return t}var R=async e=>{let{ctx:r,props:t,targetTexture:s,targetWidth:a,targetHeight:p,encoder:m}=e,{virtualMedia:l}=t,i=l?.operation;if(!i||i.op!=="CornerPin")return;let c=l.children?.[0];if(!c)return;let x=i.originalWidth??c.metadata?.width??t.containerWidth??a,f=i.originalHeight??c.metadata?.height??t.containerHeight??p;e.pass.end();let{texture:y}=await G(e,c,{width:x,height:f,props:{...t,containerWidth:x,containerHeight:f,virtualMedia:c}}),W=i.points||[],o=L(W),n=new Float32Array(12);n[0]=o[0],n[1]=o[1],n[2]=o[2],n[3]=0,n[4]=o[3],n[5]=o[4],n[6]=o[5],n[7]=0,n[8]=o[6],n[9]=o[7],n[10]=o[8],n[11]=0;let{pinPipeline:B,pinUniformLayout:H,pinTextureLayout:D}=E(r.device,r.renderer.format),S=r.renderer.samplerCache.getSampler(r.device),A=r.renderer.getTemporaryBuffer(n),F=r.device.createBindGroup({layout:H,entries:[{binding:0,resource:{buffer:A}}]}),M=r.renderer.bindGroupCache.getBindGroup(r.device,D,y,S),P=r.renderer.getTemporaryTexture(a,p,[y,s,...t.excludeTextures||[]]);T(m,P.createView(),B,[F,M]),b(e,P,i.opacity??1)};var K=h({WebGPURenderer:R});export{K as a};
@@ -1 +1 @@
1
- import{a as H}from"./chunk-CNSHAFEA.mjs";import{t as F}from"./chunk-ZNGOAGAI.mjs";import{e as u}from"./chunk-BVF64D6H.mjs";u();u();var N=async P=>{let{ctx:e,pass:L,targetView:z,targetTexture:f,targetWidth:w,targetHeight:T,encoder:o,props:n,drawChild:E}=P,{virtualMedia:b}=n;if(b.operation?.op!=="Paint")return;let c=b?.children?.[0],a=n.containerWidth??c?.metadata?.width??w,t=n.containerHeight??c?.metadata?.height??T,g=b.operation,y=g.mode==="mask",k=g.strokes??[];L.end(),e.renderer.pushIdentity();let s=e.renderer.getTemporaryTexture(a,t,[...n.excludeTextures||[],f]),h=s.createView();if(y)e.renderer.beginFrame(o,h,{r:0,g:0,b:0,a:1},a,t,"clear").end();else if(c)await E(c,n,h,s,a,t);else{let l=e.renderer.beginFrame(o,h,{r:0,g:0,b:0,a:0},a,t,"clear");g.backgroundColor&&e.renderer.drawRect(l,{x:0,y:0,width:a,height:t},g.backgroundColor),l.end()}let R=s;if(k.length>0){let l=c?.metadata?.width??a,C=c?.metadata?.height??t,M=l>0?a/l:1,V=C>0?t/C:1,G=!1;(M!==1||V!==1)&&(e.renderer.pushTransform(new DOMMatrix().scale(M,V)),G=!0);let p=e.renderer.getTemporaryTexture(a,t,[s,f,...n.excludeTextures||[]]),j=p.createView();e.renderer.beginFrame(o,j,{r:0,g:0,b:0,a:0},a,t,"clear").end();let v=k,m=p,d=null;for(let i of v)if(i.tool==="brush"){d||(d=e.renderer.beginFrame(o,m.createView(),{r:0,g:0,b:0,a:0},a,t,"load"));let r=H(i.color),x=y?{r:r.a,g:r.a,b:r.a,a:r.a}:{r:r.r*r.a,g:r.g*r.a,b:r.b*r.a,a:r.a};e.renderer.drawPath(d,i.path,x,i.size,{opacity:i.opacity??1,blendMode:"max"})}else if(i.tool==="eraser"){d&&(d.end(),d=null);let r=e.renderer.getTemporaryTexture(a,t,[s,p,f,...n.excludeTextures||[]]),x=r.createView(),U=e.renderer.beginFrame(o,x,{r:0,g:0,b:0,a:0},a,t,"clear");e.renderer.drawPath(U,i.path,"#ffffff",i.size,{blendMode:"max"}),U.end(),m=e.renderer.composite(o,m,r,"mask-out",[s,p,f,...n.excludeTextures||[]])}d&&d.end(),R=e.renderer.composite(o,s,m,"normal",[s,m,f,...n.excludeTextures||[]]),G&&e.renderer.popTransform()}e.renderer.popTransform();let W=e.renderer.beginFrame(o,z,{r:0,g:0,b:0,a:0},w,T,"load");e.renderer.drawTexture(W,R,{x:0,y:0,width:a,height:t}),P.pass=W};var A=F({WebGPURenderer:N});export{A as a};
1
+ import{z as F}from"./chunk-63SFBHEH.mjs";import{a as H}from"./chunk-IQC2I5A5.mjs";import{e as u}from"./chunk-BVF64D6H.mjs";u();u();var N=async P=>{let{ctx:e,pass:L,targetView:z,targetTexture:f,targetWidth:w,targetHeight:T,encoder:o,props:n,drawChild:E}=P,{virtualMedia:b}=n;if(b.operation?.op!=="Paint")return;let c=b?.children?.[0],a=n.containerWidth??c?.metadata?.width??w,t=n.containerHeight??c?.metadata?.height??T,g=b.operation,y=g.mode==="mask",k=g.strokes??[];L.end(),e.renderer.pushIdentity();let s=e.renderer.getTemporaryTexture(a,t,[...n.excludeTextures||[],f]),h=s.createView();if(y)e.renderer.beginFrame(o,h,{r:0,g:0,b:0,a:1},a,t,"clear").end();else if(c)await E(c,n,h,s,a,t);else{let l=e.renderer.beginFrame(o,h,{r:0,g:0,b:0,a:0},a,t,"clear");g.backgroundColor&&e.renderer.drawRect(l,{x:0,y:0,width:a,height:t},g.backgroundColor),l.end()}let R=s;if(k.length>0){let l=c?.metadata?.width??a,C=c?.metadata?.height??t,M=l>0?a/l:1,V=C>0?t/C:1,G=!1;(M!==1||V!==1)&&(e.renderer.pushTransform(new DOMMatrix().scale(M,V)),G=!0);let p=e.renderer.getTemporaryTexture(a,t,[s,f,...n.excludeTextures||[]]),j=p.createView();e.renderer.beginFrame(o,j,{r:0,g:0,b:0,a:0},a,t,"clear").end();let v=k,m=p,d=null;for(let i of v)if(i.tool==="brush"){d||(d=e.renderer.beginFrame(o,m.createView(),{r:0,g:0,b:0,a:0},a,t,"load"));let r=H(i.color),x=y?{r:r.a,g:r.a,b:r.a,a:r.a}:{r:r.r*r.a,g:r.g*r.a,b:r.b*r.a,a:r.a};e.renderer.drawPath(d,i.path,x,i.size,{opacity:i.opacity??1,blendMode:"max"})}else if(i.tool==="eraser"){d&&(d.end(),d=null);let r=e.renderer.getTemporaryTexture(a,t,[s,p,f,...n.excludeTextures||[]]),x=r.createView(),U=e.renderer.beginFrame(o,x,{r:0,g:0,b:0,a:0},a,t,"clear");e.renderer.drawPath(U,i.path,"#ffffff",i.size,{blendMode:"max"}),U.end(),m=e.renderer.composite(o,m,r,"mask-out",[s,p,f,...n.excludeTextures||[]])}d&&d.end(),R=e.renderer.composite(o,s,m,"normal",[s,m,f,...n.excludeTextures||[]]),G&&e.renderer.popTransform()}e.renderer.popTransform();let W=e.renderer.beginFrame(o,z,{r:0,g:0,b:0,a:0},w,T,"load");e.renderer.drawTexture(W,R,{x:0,y:0,width:a,height:t}),P.pass=W};var A=F({WebGPURenderer:N});export{A as a};