framefields 2.11.0 → 2.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (540) hide show
  1. package/NOTICE.md +4 -0
  2. package/dist/audio/index.d.mts +6 -5
  3. package/dist/audio/index.mjs +13 -13
  4. package/dist/{audio-CYZkDwae.d.mts → audio-CHV33Od9.d.mts} +3 -4
  5. package/dist/audio-CHV33Od9.d.mts.map +1 -0
  6. package/dist/{audio-BuCVk1IQ.mjs → audio-DHzLQ_RG.mjs} +4 -4
  7. package/dist/{audio-BuCVk1IQ.mjs.map → audio-DHzLQ_RG.mjs.map} +1 -1
  8. package/dist/{audio-KHBadECb.mjs → audio-DS9Jg2ls.mjs} +1 -1
  9. package/dist/{audio-KHBadECb.mjs.map → audio-DS9Jg2ls.mjs.map} +1 -1
  10. package/dist/{check-result-Culfu7Nx.mjs → check-result-DZWx73V8.mjs} +1 -1
  11. package/dist/{check-result-Culfu7Nx.mjs.map → check-result-DZWx73V8.mjs.map} +1 -1
  12. package/dist/cli/check-worker.mjs +51 -51
  13. package/dist/cli/check-worker.mjs.map +1 -1
  14. package/dist/cli/local-worker.d.mts +28 -0
  15. package/dist/cli/local-worker.d.mts.map +1 -0
  16. package/dist/cli/local-worker.mjs +83 -0
  17. package/dist/cli/local-worker.mjs.map +1 -0
  18. package/dist/cli.mjs +390 -124
  19. package/dist/cli.mjs.map +1 -1
  20. package/dist/cloud/index.d.mts +16 -3
  21. package/dist/cloud/index.d.mts.map +1 -1
  22. package/dist/cloud/index.mjs +2 -2
  23. package/dist/cloud-Cj1TIme8.mjs +685 -0
  24. package/dist/cloud-Cj1TIme8.mjs.map +1 -0
  25. package/dist/components/index.d.mts +15 -14
  26. package/dist/components/index.mjs +47 -47
  27. package/dist/{dist-CySGkG54.mjs → dist-BSKAbyea.mjs} +2 -2
  28. package/dist/dist-BSKAbyea.mjs.map +1 -0
  29. package/dist/{dist-CNGv-JTX.mjs → dist-B_rSWeOz.mjs} +1 -1
  30. package/dist/{dist-Bf2_efYP.mjs → dist-C8XSqfTx.mjs} +1 -1
  31. package/dist/{dist-Bf2_efYP.mjs.map → dist-C8XSqfTx.mjs.map} +1 -1
  32. package/dist/{dist-EQX3TUUl.mjs → dist-CUNvNDS3.mjs} +129 -82
  33. package/dist/dist-CUNvNDS3.mjs.map +1 -0
  34. package/dist/dist-CiTgmfUw.mjs +502 -0
  35. package/dist/dist-CiTgmfUw.mjs.map +1 -0
  36. package/dist/{dist-CWLLnigL.mjs → dist-D3BeAZ7X.mjs} +315 -84
  37. package/dist/dist-D3BeAZ7X.mjs.map +1 -0
  38. package/dist/{dist-BIE8fvlv.mjs → dist-DgZpN6IK.mjs} +1 -1
  39. package/dist/{dist-BIE8fvlv.mjs.map → dist-DgZpN6IK.mjs.map} +1 -1
  40. package/dist/{dist-Dg9LMWoX.mjs → dist-Kbf-JTry.mjs} +2 -2
  41. package/dist/{dist-Dg9LMWoX.mjs.map → dist-Kbf-JTry.mjs.map} +1 -1
  42. package/dist/effects/index.d.mts +6 -6
  43. package/dist/effects/index.mjs +36 -36
  44. package/dist/{effects-DKLbLXF7.mjs → effects-BiDgCK1L.mjs} +3 -3
  45. package/dist/{effects-DKLbLXF7.mjs.map → effects-BiDgCK1L.mjs.map} +1 -1
  46. package/dist/fonts/index.d.mts +1 -1
  47. package/dist/fonts/index.mjs +3 -3
  48. package/dist/{fonts-gPbGbShD.mjs → fonts-DeDPWdvJ.mjs} +2 -2
  49. package/dist/{fonts-gPbGbShD.mjs.map → fonts-DeDPWdvJ.mjs.map} +1 -1
  50. package/dist/{gpu-CpkJJLQP.mjs → gpu-CWjgql4C.mjs} +11 -3
  51. package/dist/gpu-CWjgql4C.mjs.map +1 -0
  52. package/dist/index-BFTtXosj.d.mts +63 -0
  53. package/dist/index-BFTtXosj.d.mts.map +1 -0
  54. package/dist/{index-BW0Q1ygn.d.mts → index-C5sgRLlG.d.mts} +1 -1
  55. package/dist/{index-BW0Q1ygn.d.mts.map → index-C5sgRLlG.d.mts.map} +1 -1
  56. package/dist/{index-CdCrae-I.d.mts → index-CnZhBlob.d.mts} +2 -2
  57. package/dist/index-CnZhBlob.d.mts.map +1 -0
  58. package/dist/{index-D2i9J9Zq.d.mts → index-D68eGFNE.d.mts} +3 -30
  59. package/dist/index-D68eGFNE.d.mts.map +1 -0
  60. package/dist/{index-CEU_Zsb9.d.mts → index-DBh3WphX.d.mts} +25 -23
  61. package/dist/index-DBh3WphX.d.mts.map +1 -0
  62. package/dist/{index-gOVtTm-P.d.mts → index-DQ1U3HC3.d.mts} +14 -6
  63. package/dist/index-DQ1U3HC3.d.mts.map +1 -0
  64. package/dist/{index-jSDEM-uE.d.mts → index-Dibc_xpC.d.mts} +6 -6
  65. package/dist/{index-jSDEM-uE.d.mts.map → index-Dibc_xpC.d.mts.map} +1 -1
  66. package/dist/{index-Cro-818i.d.mts → index-E2IXX0Cz.d.mts} +88 -14
  67. package/dist/index-E2IXX0Cz.d.mts.map +1 -0
  68. package/dist/{index-BuiZzc6i.d.mts → index-X2u96TEo.d.mts} +162 -5
  69. package/dist/index-X2u96TEo.d.mts.map +1 -0
  70. package/dist/{index-Bly-7YM1.d.mts → index-YB9j9KUx.d.mts} +3 -3
  71. package/dist/{index-Bly-7YM1.d.mts.map → index-YB9j9KUx.d.mts.map} +1 -1
  72. package/dist/{index-COYNQ_mf.d.mts → index-a6JrbAK0.d.mts} +1 -1
  73. package/dist/{index-COYNQ_mf.d.mts.map → index-a6JrbAK0.d.mts.map} +1 -1
  74. package/dist/{index-C8YwZ6k1.d.mts → index-rtCXNxGO.d.mts} +2 -2
  75. package/dist/{index-C8YwZ6k1.d.mts.map → index-rtCXNxGO.d.mts.map} +1 -1
  76. package/dist/index.d.mts +16 -15
  77. package/dist/index.mjs +58 -58
  78. package/dist/preview/index.d.mts +5 -4
  79. package/dist/preview/index.mjs +12 -12
  80. package/dist/{preview-BToKUTtZ.mjs → preview-PDz7o2xg.mjs} +323 -35
  81. package/dist/preview-PDz7o2xg.mjs.map +1 -0
  82. package/dist/preview-engine/audio.mjs +1 -1
  83. package/dist/preview-engine/{chunk-QF4JWVO3.mjs → chunk-35XSD4QM.mjs} +15 -15
  84. package/dist/preview-engine/{chunk-ZF2MEFKO.mjs → chunk-3DOIE4DV.mjs} +1 -1
  85. package/dist/preview-engine/{chunk-JDB7PMRI.mjs → chunk-3IT7LHWR.mjs} +1 -1
  86. package/dist/preview-engine/{chunk-DNNGWS2C.mjs → chunk-3MLGWUSK.mjs} +1 -1
  87. package/dist/preview-engine/{chunk-KVOFO273.mjs → chunk-3QJ5GRBH.mjs} +1 -1
  88. package/dist/preview-engine/{chunk-54Q5CKSV.mjs → chunk-3QTHW2CD.mjs} +1 -1
  89. package/dist/preview-engine/chunk-44V4V5LD.mjs +1 -0
  90. package/dist/preview-engine/chunk-4P3MMJWD.mjs +1 -0
  91. package/dist/preview-engine/chunk-4YT5YJIF.mjs +1 -0
  92. package/dist/preview-engine/{chunk-BJXNKMSY.mjs → chunk-64L4GUOF.mjs} +20 -6
  93. package/dist/preview-engine/{chunk-UMJ3VGKN.mjs → chunk-6B3NOY5W.mjs} +1 -1
  94. package/dist/preview-engine/chunk-77MT33VR.mjs +1 -0
  95. package/dist/preview-engine/{chunk-BRV7TQDV.mjs → chunk-77WWW75O.mjs} +1 -1
  96. package/dist/preview-engine/chunk-7M5LE6EM.mjs +483 -0
  97. package/dist/preview-engine/chunk-A6OAPDIA.mjs +1 -0
  98. package/dist/preview-engine/chunk-ADLIF544.mjs +39 -0
  99. package/dist/preview-engine/{chunk-OLB4TQLQ.mjs → chunk-AKVRG7UU.mjs} +1 -1
  100. package/dist/preview-engine/{chunk-CIVEZJYF.mjs → chunk-CRBOK3JT.mjs} +1 -1
  101. package/dist/preview-engine/chunk-CSLSWUUT.mjs +1 -0
  102. package/dist/preview-engine/{chunk-ACBBBOUM.mjs → chunk-CYM75INB.mjs} +1 -1
  103. package/dist/preview-engine/{chunk-JSYG6OWZ.mjs → chunk-D7OMXGIZ.mjs} +1 -1
  104. package/dist/preview-engine/{chunk-EPRINA4V.mjs → chunk-E7BKWHOT.mjs} +10 -10
  105. package/dist/preview-engine/{chunk-NOKPBMIP.mjs → chunk-EWDJMJO5.mjs} +1 -1
  106. package/dist/preview-engine/{chunk-5KSBS3AL.mjs → chunk-EYE3GNL5.mjs} +1 -1
  107. package/dist/preview-engine/chunk-FRJPXWAG.mjs +1 -0
  108. package/dist/preview-engine/{chunk-IKVJ4MW5.mjs → chunk-G4ZTSLZU.mjs} +1 -1
  109. package/dist/preview-engine/{chunk-VZLIRYAL.mjs → chunk-GAMAKN5L.mjs} +1 -1
  110. package/dist/preview-engine/{chunk-ZIXPWP2B.mjs → chunk-ICWD36H6.mjs} +1 -1
  111. package/dist/preview-engine/{chunk-OELPPLML.mjs → chunk-IEEV5RB3.mjs} +1 -1
  112. package/dist/preview-engine/chunk-JAAFSVAG.mjs +1 -0
  113. package/dist/preview-engine/{chunk-YVZTRH4Y.mjs → chunk-KDCM7S3S.mjs} +1 -1
  114. package/dist/preview-engine/chunk-LZNHGH56.mjs +5 -0
  115. package/dist/preview-engine/{chunk-O63FLYWC.mjs → chunk-N2VISDTG.mjs} +1 -1
  116. package/dist/preview-engine/{chunk-GN3NDRLI.mjs → chunk-NCQHOGZK.mjs} +1 -1
  117. package/dist/preview-engine/{chunk-YKM7JDQY.mjs → chunk-NJO2BIJX.mjs} +1 -1
  118. package/dist/preview-engine/{chunk-7GMHSTRP.mjs → chunk-NTSALWFF.mjs} +1 -1
  119. package/dist/preview-engine/{chunk-PKNUTHPI.mjs → chunk-NVXFEDJS.mjs} +1 -1
  120. package/dist/preview-engine/{chunk-VFQH5KVS.mjs → chunk-ONHY4KNY.mjs} +1 -1
  121. package/dist/preview-engine/{chunk-Z24UEN4P.mjs → chunk-PD2HKW2S.mjs} +1 -1
  122. package/dist/preview-engine/chunk-PH3UUX6A.mjs +138 -0
  123. package/dist/preview-engine/chunk-PIHG6HJO.mjs +1 -0
  124. package/dist/preview-engine/{chunk-YHMBGJP6.mjs → chunk-QPT2Y2GZ.mjs} +1 -1
  125. package/dist/preview-engine/{chunk-4AGQN53P.mjs → chunk-QXLFTCLC.mjs} +1 -1
  126. package/dist/preview-engine/{chunk-65NANVQL.mjs → chunk-R4H52Q7S.mjs} +1 -1
  127. package/dist/preview-engine/{chunk-FQL4IJZN.mjs → chunk-RN7J5TRU.mjs} +1 -1
  128. package/dist/preview-engine/{chunk-26XWIHW3.mjs → chunk-RVCLMO5Q.mjs} +1 -1
  129. package/dist/preview-engine/{chunk-VQA4DYZU.mjs → chunk-RYSV44B4.mjs} +1 -1
  130. package/dist/preview-engine/{chunk-TEWRQKX3.mjs → chunk-SFHWP65D.mjs} +1 -1
  131. package/dist/preview-engine/{chunk-RDWLLITE.mjs → chunk-SMHEMYCV.mjs} +1 -1
  132. package/dist/preview-engine/{chunk-EXEO245X.mjs → chunk-SV3ZNZQU.mjs} +1 -1
  133. package/dist/preview-engine/{chunk-32WC4FRR.mjs → chunk-UE7Y65C3.mjs} +3 -3
  134. package/dist/preview-engine/chunk-UFPA36D2.mjs +2227 -0
  135. package/dist/preview-engine/{chunk-EAWJXW4J.mjs → chunk-UVEDFIPN.mjs} +1 -1
  136. package/dist/preview-engine/{chunk-6LTINEA4.mjs → chunk-VMXJZ4KQ.mjs} +1 -1
  137. package/dist/preview-engine/{chunk-IBPYV6HF.mjs → chunk-W4XR6F5G.mjs} +1 -1
  138. package/dist/preview-engine/{chunk-UI3VH33L.mjs → chunk-WPYWCWWL.mjs} +1 -1
  139. package/dist/preview-engine/{chunk-GHTG5XV6.mjs → chunk-XYCR3STG.mjs} +84 -25
  140. package/dist/preview-engine/{chunk-WFMUDL55.mjs → chunk-YAPGJZPI.mjs} +1 -1
  141. package/dist/preview-engine/{chunk-LMXMBX4J.mjs → chunk-YJ4DSRDY.mjs} +1 -1
  142. package/dist/preview-engine/{chunk-CCORQLMR.mjs → chunk-YOJKIMU5.mjs} +1 -1
  143. package/dist/preview-engine/{chunk-UGB6JKVS.mjs → chunk-ZHNEZZ6A.mjs} +1 -1
  144. package/dist/preview-engine/{chunk-LFNCWMKS.mjs → chunk-ZZMI3WOT.mjs} +1 -1
  145. package/dist/preview-engine/components.mjs +1 -1
  146. package/dist/preview-engine/effects.mjs +1 -1
  147. package/dist/preview-engine/fonts.mjs +1 -1
  148. package/dist/preview-engine/framefields.mjs +1 -1
  149. package/dist/preview-engine/player.mjs +5 -5
  150. package/dist/preview-engine/{renderers-53EI26GL.mjs → renderers-3FZVDYRQ.mjs} +1 -1
  151. package/dist/preview-engine/renderers-3KEBYOOF.mjs +1 -0
  152. package/dist/preview-engine/{renderers-6YVZUQOH.mjs → renderers-4RPQSUUZ.mjs} +1 -1
  153. package/dist/preview-engine/renderers-5EGFXFPF.mjs +1 -0
  154. package/dist/preview-engine/renderers-5SJHYUTM.mjs +1 -0
  155. package/dist/preview-engine/renderers-66MWDUN6.mjs +1 -0
  156. package/dist/preview-engine/{renderers-CCRZNGVK.mjs → renderers-6FENMFSC.mjs} +1 -1
  157. package/dist/preview-engine/renderers-77OXJ2GY.mjs +1 -0
  158. package/dist/preview-engine/renderers-7LI4QKHO.mjs +1 -0
  159. package/dist/preview-engine/renderers-AFTUFMQQ.mjs +1 -0
  160. package/dist/preview-engine/{renderers-CYJAVWHT.mjs → renderers-AIZRIW2R.mjs} +1 -1
  161. package/dist/preview-engine/{renderers-OGOW3NA4.mjs → renderers-BDI2BDBA.mjs} +1 -1
  162. package/dist/preview-engine/renderers-BDXCO6NR.mjs +1 -0
  163. package/dist/preview-engine/{renderers-EN7LXJLG.mjs → renderers-BUZ67FNZ.mjs} +1 -1
  164. package/dist/preview-engine/renderers-DMTGKURQ.mjs +1 -0
  165. package/dist/preview-engine/renderers-DU7KPFVV.mjs +1 -0
  166. package/dist/preview-engine/{renderers-WSABL3QO.mjs → renderers-ECXMT5BD.mjs} +1 -1
  167. package/dist/preview-engine/{renderers-MOEC2XZZ.mjs → renderers-EILFSWSJ.mjs} +1 -1
  168. package/dist/preview-engine/renderers-EPSF5CSQ.mjs +1 -0
  169. package/dist/preview-engine/{renderers-X6CORAES.mjs → renderers-EVEWFJ7U.mjs} +1 -1
  170. package/dist/preview-engine/renderers-F6PT2LON.mjs +1 -0
  171. package/dist/preview-engine/renderers-F7WPJXKT.mjs +1 -0
  172. package/dist/preview-engine/renderers-FIFF267S.mjs +1 -0
  173. package/dist/preview-engine/{renderers-GQM3KMV3.mjs → renderers-FQISHQEN.mjs} +1 -1
  174. package/dist/preview-engine/{renderers-HKLCB4U6.mjs → renderers-FXAVFNUN.mjs} +1 -1
  175. package/dist/preview-engine/{renderers-P2HORBZ6.mjs → renderers-GITAVRYZ.mjs} +1 -1
  176. package/dist/preview-engine/renderers-GTKRV225.mjs +1 -0
  177. package/dist/preview-engine/{renderers-KCGK33Y2.mjs → renderers-HG6JZIZO.mjs} +1 -1
  178. package/dist/preview-engine/{renderers-I6QKZ7CH.mjs → renderers-HHWMIDN3.mjs} +1 -1
  179. package/dist/preview-engine/renderers-HI3SRJVD.mjs +1 -0
  180. package/dist/preview-engine/{renderers-7CAHX35U.mjs → renderers-HXEDI4BD.mjs} +1 -1
  181. package/dist/preview-engine/{renderers-77PDUMYI.mjs → renderers-HXNSDJBY.mjs} +1 -1
  182. package/dist/preview-engine/{renderers-ACUJMDEK.mjs → renderers-I2ZOUFRU.mjs} +1 -1
  183. package/dist/preview-engine/renderers-JHFD4LHZ.mjs +1 -0
  184. package/dist/preview-engine/{renderers-IHGAWLUF.mjs → renderers-JMSAW7VY.mjs} +1 -1
  185. package/dist/preview-engine/renderers-KGVZUFHD.mjs +1 -0
  186. package/dist/preview-engine/{renderers-RN2MHIFK.mjs → renderers-KICDB5Y6.mjs} +1 -1
  187. package/dist/preview-engine/{renderers-C7SI3NIE.mjs → renderers-KKULMOV4.mjs} +1 -1
  188. package/dist/preview-engine/{renderers-HSFQIILN.mjs → renderers-KMVMPYY7.mjs} +1 -1
  189. package/dist/preview-engine/renderers-LN7WPG6I.mjs +1 -0
  190. package/dist/preview-engine/{renderers-BOBVXYAA.mjs → renderers-LWW4RF6D.mjs} +1 -1
  191. package/dist/preview-engine/renderers-LY57CZZB.mjs +1 -0
  192. package/dist/preview-engine/renderers-MBMJWZEW.mjs +1 -0
  193. package/dist/preview-engine/{renderers-VVP5WQOY.mjs → renderers-MPFU74I3.mjs} +1 -1
  194. package/dist/preview-engine/{renderers-H6PBHEYU.mjs → renderers-MW53LTMB.mjs} +1 -1
  195. package/dist/preview-engine/{renderers-PPZK6VEW.mjs → renderers-NQC4DPX4.mjs} +1 -1
  196. package/dist/preview-engine/renderers-OJWWIVNW.mjs +1 -0
  197. package/dist/preview-engine/{renderers-4IBFDW2S.mjs → renderers-PC2GOZDT.mjs} +1 -1
  198. package/dist/preview-engine/{renderers-UG2C3C7T.mjs → renderers-Q77UPEYE.mjs} +1 -1
  199. package/dist/preview-engine/renderers-QHXCFDHI.mjs +1 -0
  200. package/dist/preview-engine/renderers-RDYJRNAR.mjs +1 -0
  201. package/dist/preview-engine/renderers-RENLKAA7.mjs +1 -0
  202. package/dist/preview-engine/renderers-RHMRWX46.mjs +1 -0
  203. package/dist/preview-engine/{renderers-5XLGCEOA.mjs → renderers-RIPXT4AL.mjs} +1 -1
  204. package/dist/preview-engine/{renderers-FY2HOQCS.mjs → renderers-SFVFAS3C.mjs} +1 -1
  205. package/dist/preview-engine/{renderers-VIGZYJYX.mjs → renderers-SWQVCJHB.mjs} +1 -1
  206. package/dist/preview-engine/renderers-SZVDZDY7.mjs +1 -0
  207. package/dist/preview-engine/renderers-TTXTV4PC.mjs +228 -0
  208. package/dist/preview-engine/renderers-TYSLUZ53.mjs +1 -0
  209. package/dist/preview-engine/{renderers-6LNDAO4B.mjs → renderers-U4IXWMD6.mjs} +1 -1
  210. package/dist/preview-engine/renderers-VEHYARKY.mjs +1 -0
  211. package/dist/preview-engine/renderers-VRXAG3FR.mjs +1 -0
  212. package/dist/preview-engine/{renderers-33FCFHDR.mjs → renderers-VUQAZ56P.mjs} +1 -1
  213. package/dist/preview-engine/renderers-W5YFMLSB.mjs +1 -0
  214. package/dist/preview-engine/renderers-XKDWUK56.mjs +1 -0
  215. package/dist/preview-engine/renderers-XKSBNCLZ.mjs +1 -0
  216. package/dist/preview-engine/renderers-XLQXVD37.mjs +1 -0
  217. package/dist/preview-engine/renderers-ZHSOWEMQ.mjs +1 -0
  218. package/dist/preview-engine/renderers-ZMDRNYSS.mjs +1 -0
  219. package/dist/preview-engine/signals.mjs +1 -1
  220. package/dist/preview-engine/{src-4IUYUKIZ.mjs → src-YXNX4MLK.mjs} +1 -1
  221. package/dist/{program-Bc860ko5.mjs → program-Bn6ko_I4.mjs} +44 -17
  222. package/dist/program-Bn6ko_I4.mjs.map +1 -0
  223. package/dist/renderer/index.d.mts +4 -3
  224. package/dist/renderer/index.mjs +3 -3
  225. package/dist/{renderer-B3Dme2es.mjs → renderer--Q0pM9Vh.mjs} +5 -5
  226. package/dist/{renderer-B3Dme2es.mjs.map → renderer--Q0pM9Vh.mjs.map} +1 -1
  227. package/dist/renderer-1aSF5BmY.mjs +5 -0
  228. package/dist/{renderer-CAWnCsQc.mjs → renderer-45ifiDkn.mjs} +5 -5
  229. package/dist/{renderer-CAWnCsQc.mjs.map → renderer-45ifiDkn.mjs.map} +1 -1
  230. package/dist/{renderer-Cz-n883J.mjs → renderer-549d94qG.mjs} +5 -5
  231. package/dist/{renderer-Cz-n883J.mjs.map → renderer-549d94qG.mjs.map} +1 -1
  232. package/dist/{renderer-BhsrlGKp.mjs → renderer-B-LUGB9h.mjs} +74 -21
  233. package/dist/renderer-B-LUGB9h.mjs.map +1 -0
  234. package/dist/renderer-B2e4Gr9u.mjs +5 -0
  235. package/dist/{renderer-B1LD29TV.mjs → renderer-B5b-ehRb.mjs} +3 -3
  236. package/dist/{renderer-B1LD29TV.mjs.map → renderer-B5b-ehRb.mjs.map} +1 -1
  237. package/dist/renderer-B6fz4j50.mjs +5 -0
  238. package/dist/{renderer-_9gbYS-3.mjs → renderer-BCTUqJG7.mjs} +5 -5
  239. package/dist/{renderer-_9gbYS-3.mjs.map → renderer-BCTUqJG7.mjs.map} +1 -1
  240. package/dist/renderer-BEftIYw-.mjs +5 -0
  241. package/dist/{renderer-C9BSXyrq.mjs → renderer-BHPgkoEL.mjs} +4 -4
  242. package/dist/{renderer-C9BSXyrq.mjs.map → renderer-BHPgkoEL.mjs.map} +1 -1
  243. package/dist/renderer-BHTnO-7e.mjs +5 -0
  244. package/dist/{renderer-fs8f1QeE.mjs → renderer-BIieU9pY.mjs} +5 -5
  245. package/dist/{renderer-fs8f1QeE.mjs.map → renderer-BIieU9pY.mjs.map} +1 -1
  246. package/dist/{renderer-DwK9jsER.mjs → renderer-BKi6jDi_.mjs} +4 -4
  247. package/dist/{renderer-DwK9jsER.mjs.map → renderer-BKi6jDi_.mjs.map} +1 -1
  248. package/dist/renderer-BMlnQqTO.mjs +5 -0
  249. package/dist/{renderer-BNJ6Jk7-.mjs → renderer-BMpmmYOq.mjs} +4 -4
  250. package/dist/{renderer-BNJ6Jk7-.mjs.map → renderer-BMpmmYOq.mjs.map} +1 -1
  251. package/dist/{renderer-DkqZmfm8.mjs → renderer-BO_wuUKA.mjs} +5 -5
  252. package/dist/{renderer-DkqZmfm8.mjs.map → renderer-BO_wuUKA.mjs.map} +1 -1
  253. package/dist/renderer-BOzcFezY.mjs +5 -0
  254. package/dist/{renderer-Bxjb0HYU.mjs → renderer-BPOh9x5X.mjs} +4 -4
  255. package/dist/{renderer-Bxjb0HYU.mjs.map → renderer-BPOh9x5X.mjs.map} +1 -1
  256. package/dist/{renderer-Ros7XQg2.mjs → renderer-BPiWsrC2.mjs} +3 -3
  257. package/dist/{renderer-Ros7XQg2.mjs.map → renderer-BPiWsrC2.mjs.map} +1 -1
  258. package/dist/{renderer-lHNTgiOM.mjs → renderer-BUj7jE6t.mjs} +3 -3
  259. package/dist/{renderer-lHNTgiOM.mjs.map → renderer-BUj7jE6t.mjs.map} +1 -1
  260. package/dist/renderer-BVbjJIKJ.mjs +5 -0
  261. package/dist/renderer-BXsHKf4k.mjs +5 -0
  262. package/dist/{renderer-D0aAZHC7.mjs → renderer-BZgJj8Cl.mjs} +4 -4
  263. package/dist/{renderer-D0aAZHC7.mjs.map → renderer-BZgJj8Cl.mjs.map} +1 -1
  264. package/dist/{renderer-V4dhrf_h.mjs → renderer-BgjPbgbn.mjs} +6 -6
  265. package/dist/{renderer-V4dhrf_h.mjs.map → renderer-BgjPbgbn.mjs.map} +1 -1
  266. package/dist/{renderer-BaIJIfJ6.mjs → renderer-BjgFpwVK.mjs} +5 -5
  267. package/dist/{renderer-BaIJIfJ6.mjs.map → renderer-BjgFpwVK.mjs.map} +1 -1
  268. package/dist/renderer-Bks49NVl.mjs +5 -0
  269. package/dist/{renderer-CU8v-LxD.mjs → renderer-BlZgyBSo.mjs} +5 -5
  270. package/dist/{renderer-CU8v-LxD.mjs.map → renderer-BlZgyBSo.mjs.map} +1 -1
  271. package/dist/{renderer-B6Oeahe_.mjs → renderer-BqUAyzCZ.mjs} +5 -5
  272. package/dist/{renderer-B6Oeahe_.mjs.map → renderer-BqUAyzCZ.mjs.map} +1 -1
  273. package/dist/{renderer-h62QaJYz.mjs → renderer-Br8km655.mjs} +4 -4
  274. package/dist/{renderer-h62QaJYz.mjs.map → renderer-Br8km655.mjs.map} +1 -1
  275. package/dist/{renderer-sfqZK6L5.mjs → renderer-BsMZ5Iaq.mjs} +4 -4
  276. package/dist/{renderer-sfqZK6L5.mjs.map → renderer-BsMZ5Iaq.mjs.map} +1 -1
  277. package/dist/{renderer-g_1t2je9.mjs → renderer-BtgqTg2K.mjs} +3 -3
  278. package/dist/{renderer-DcvjSolU.mjs → renderer-BuvKGwk3.mjs} +11 -2
  279. package/dist/{renderer-DcvjSolU.mjs.map → renderer-BuvKGwk3.mjs.map} +1 -1
  280. package/dist/{renderer-BOrMBwQS.mjs → renderer-C-3qhk5x.mjs} +2 -2
  281. package/dist/{renderer-BOrMBwQS.mjs.map → renderer-C-3qhk5x.mjs.map} +1 -1
  282. package/dist/{renderer-CLAvn9c6.mjs → renderer-C-GTxnfv.mjs} +4 -4
  283. package/dist/{renderer-CLAvn9c6.mjs.map → renderer-C-GTxnfv.mjs.map} +1 -1
  284. package/dist/renderer-C-t7qFKr.mjs +5 -0
  285. package/dist/{renderer-BDZC3o3N.mjs → renderer-C1ctHdXl.mjs} +4 -4
  286. package/dist/{renderer-BDZC3o3N.mjs.map → renderer-C1ctHdXl.mjs.map} +1 -1
  287. package/dist/renderer-C24n-6CX.mjs +6 -0
  288. package/dist/{renderer-pNmI-A9o.mjs → renderer-C7m7Yxgc.mjs} +5 -5
  289. package/dist/{renderer-pNmI-A9o.mjs.map → renderer-C7m7Yxgc.mjs.map} +1 -1
  290. package/dist/{renderer-Bf4-N7k7.mjs → renderer-C9dqx3U7.mjs} +5 -5
  291. package/dist/{renderer-Bf4-N7k7.mjs.map → renderer-C9dqx3U7.mjs.map} +1 -1
  292. package/dist/renderer-CCReX-7M.mjs +5 -0
  293. package/dist/{renderer-JHByuUNb.mjs → renderer-CE4535aW.mjs} +3 -3
  294. package/dist/{renderer-JHByuUNb.mjs.map → renderer-CE4535aW.mjs.map} +1 -1
  295. package/dist/renderer-CIxFQrAm.mjs +5 -0
  296. package/dist/{renderer-ByjaseAo.mjs → renderer-CL-vyXgX.mjs} +5 -5
  297. package/dist/{renderer-ByjaseAo.mjs.map → renderer-CL-vyXgX.mjs.map} +1 -1
  298. package/dist/renderer-CLHBMIqJ.mjs +5 -0
  299. package/dist/renderer-CMJKi-Ye.mjs +5 -0
  300. package/dist/{renderer-B-CMRUag.mjs → renderer-CMnlgAGs.mjs} +4 -4
  301. package/dist/{renderer-B-CMRUag.mjs.map → renderer-CMnlgAGs.mjs.map} +1 -1
  302. package/dist/{renderer-BNHcwxw9.mjs → renderer-CQFMyC_c.mjs} +4 -4
  303. package/dist/{renderer-BNHcwxw9.mjs.map → renderer-CQFMyC_c.mjs.map} +1 -1
  304. package/dist/{renderer-DgPn_SOC.mjs → renderer-CYwVNbUh.mjs} +4 -4
  305. package/dist/{renderer-DgPn_SOC.mjs.map → renderer-CYwVNbUh.mjs.map} +1 -1
  306. package/dist/{renderer-DLPhfwbR.mjs → renderer-CZ5mwBW1.mjs} +3 -3
  307. package/dist/{renderer-DLPhfwbR.mjs.map → renderer-CZ5mwBW1.mjs.map} +1 -1
  308. package/dist/{renderer-4ZUv3X1I.mjs → renderer-C_1eqfI0.mjs} +5 -5
  309. package/dist/{renderer-4ZUv3X1I.mjs.map → renderer-C_1eqfI0.mjs.map} +1 -1
  310. package/dist/renderer-C_H3mHZa.mjs +5 -0
  311. package/dist/{renderer-B1esRxGy.mjs → renderer-CciiDHuU.mjs} +4 -4
  312. package/dist/{renderer-B1esRxGy.mjs.map → renderer-CciiDHuU.mjs.map} +1 -1
  313. package/dist/renderer-CfkTdR5B.mjs +5 -0
  314. package/dist/{renderer-ynFRJh7G.mjs → renderer-CgK7Q1G8.mjs} +3 -3
  315. package/dist/{renderer-CR0mDPYY.mjs → renderer-CnL8Cmmr.mjs} +3 -3
  316. package/dist/renderer-CnhkXJ0R.mjs +5 -0
  317. package/dist/{renderer-fwKnV9zs.mjs → renderer-Cp_HOmp7.mjs} +5 -5
  318. package/dist/{renderer-fwKnV9zs.mjs.map → renderer-Cp_HOmp7.mjs.map} +1 -1
  319. package/dist/renderer-CqpyVsq_.mjs +5 -0
  320. package/dist/renderer-CtWgIpTE.mjs +5 -0
  321. package/dist/{renderer-riIFosX6.mjs → renderer-Cu3iKMSJ.mjs} +5 -5
  322. package/dist/{renderer-riIFosX6.mjs.map → renderer-Cu3iKMSJ.mjs.map} +1 -1
  323. package/dist/{renderer-D4f8f66C.mjs → renderer-CuPAQjDK.mjs} +4 -4
  324. package/dist/{renderer-D4f8f66C.mjs.map → renderer-CuPAQjDK.mjs.map} +1 -1
  325. package/dist/{renderer-CxGx1Lhi.mjs → renderer-CwlY8Tb-.mjs} +3 -3
  326. package/dist/{renderer-CxGx1Lhi.mjs.map → renderer-CwlY8Tb-.mjs.map} +1 -1
  327. package/dist/{renderer-o68mVeyk.mjs → renderer-CxSFvKd1.mjs} +4 -4
  328. package/dist/{renderer-o68mVeyk.mjs.map → renderer-CxSFvKd1.mjs.map} +1 -1
  329. package/dist/{renderer-CrR8Mpxq.mjs → renderer-CyUiXLRa.mjs} +5 -5
  330. package/dist/{renderer-CrR8Mpxq.mjs.map → renderer-CyUiXLRa.mjs.map} +1 -1
  331. package/dist/renderer-CyuKr5ca.mjs +5 -0
  332. package/dist/renderer-CzgcZXKH.mjs +3 -0
  333. package/dist/{renderer-Bx14Wnxl.mjs → renderer-D-GWBoVT.mjs} +58 -4
  334. package/dist/renderer-D-GWBoVT.mjs.map +1 -0
  335. package/dist/{renderer-BwrfKKqw.mjs → renderer-D-fzEZfX.mjs} +4 -4
  336. package/dist/{renderer-BwrfKKqw.mjs.map → renderer-D-fzEZfX.mjs.map} +1 -1
  337. package/dist/renderer-D5yp74NL.mjs +3 -0
  338. package/dist/{renderer-DAn9xiQT.mjs → renderer-D8gN7aqk.mjs} +4 -4
  339. package/dist/{renderer-DAn9xiQT.mjs.map → renderer-D8gN7aqk.mjs.map} +1 -1
  340. package/dist/renderer-D9ON_1Hf.mjs +5 -0
  341. package/dist/renderer-DAnTgh4o.mjs +5 -0
  342. package/dist/{renderer-Dpl6poqD.mjs → renderer-DGOMfyh8.mjs} +2 -2
  343. package/dist/{renderer-Dpl6poqD.mjs.map → renderer-DGOMfyh8.mjs.map} +1 -1
  344. package/dist/{renderer-Rw87u1Cr.mjs → renderer-DGb_wgTW.mjs} +6 -6
  345. package/dist/{renderer-Rw87u1Cr.mjs.map → renderer-DGb_wgTW.mjs.map} +1 -1
  346. package/dist/{renderer-Co6UFbZB.mjs → renderer-DJPZs_zV.mjs} +5 -5
  347. package/dist/{renderer-Co6UFbZB.mjs.map → renderer-DJPZs_zV.mjs.map} +1 -1
  348. package/dist/renderer-DKJOon6y.d.mts +1 -0
  349. package/dist/{renderer-DOkbn1ot.mjs → renderer-DOZPZTxe.mjs} +5 -5
  350. package/dist/{renderer-DOkbn1ot.mjs.map → renderer-DOZPZTxe.mjs.map} +1 -1
  351. package/dist/{renderer-DaXQgGg3.mjs → renderer-DRal7Goa.mjs} +5 -5
  352. package/dist/{renderer-DaXQgGg3.mjs.map → renderer-DRal7Goa.mjs.map} +1 -1
  353. package/dist/renderer-DWgpivA3.mjs +5 -0
  354. package/dist/{renderer-Bo7shNdU.mjs → renderer-DXFJv_e6.mjs} +4 -4
  355. package/dist/{renderer-Bo7shNdU.mjs.map → renderer-DXFJv_e6.mjs.map} +1 -1
  356. package/dist/renderer-Dh_qNNwR.mjs +5 -0
  357. package/dist/renderer-DkCpXPMP.mjs +5 -0
  358. package/dist/{renderer-eMCTAa9e.mjs → renderer-Dp5ChuOs.mjs} +4 -4
  359. package/dist/{renderer-eMCTAa9e.mjs.map → renderer-Dp5ChuOs.mjs.map} +1 -1
  360. package/dist/{renderer-1uoKiILq.mjs → renderer-DpZballM.mjs} +3 -3
  361. package/dist/{renderer-1uoKiILq.mjs.map → renderer-DpZballM.mjs.map} +1 -1
  362. package/dist/renderer-Dre-6cDR.mjs +5 -0
  363. package/dist/renderer-Ds5z4_HX.mjs +5 -0
  364. package/dist/{renderer-7ow5Acsg.mjs → renderer-DwGlDNOV.mjs} +3 -3
  365. package/dist/{renderer-7ow5Acsg.mjs.map → renderer-DwGlDNOV.mjs.map} +1 -1
  366. package/dist/{renderer-q7q6k_cD.mjs → renderer-DxB_OfLs.mjs} +4 -4
  367. package/dist/{renderer-q7q6k_cD.mjs.map → renderer-DxB_OfLs.mjs.map} +1 -1
  368. package/dist/{renderer-DFJWPqOJ.mjs → renderer-Dz6P-rPI.mjs} +3 -3
  369. package/dist/{renderer-DFJWPqOJ.mjs.map → renderer-Dz6P-rPI.mjs.map} +1 -1
  370. package/dist/{renderer-BURhYcpA.mjs → renderer-FPiLBwj5.mjs} +4 -4
  371. package/dist/{renderer-BURhYcpA.mjs.map → renderer-FPiLBwj5.mjs.map} +1 -1
  372. package/dist/renderer-HGSCOMyP.mjs +5 -0
  373. package/dist/renderer-KMY8W-cJ.mjs +5 -0
  374. package/dist/{renderer-D-QVGphn.mjs → renderer-KgsVk9c6.mjs} +4 -4
  375. package/dist/{renderer-D-QVGphn.mjs.map → renderer-KgsVk9c6.mjs.map} +1 -1
  376. package/dist/{renderer-COcKhouz.mjs → renderer-LXhEPCmy.mjs} +5 -5
  377. package/dist/{renderer-COcKhouz.mjs.map → renderer-LXhEPCmy.mjs.map} +1 -1
  378. package/dist/{renderer-HDj9Zb-O.mjs → renderer-NBMmvqWl.mjs} +20 -7
  379. package/dist/renderer-NBMmvqWl.mjs.map +1 -0
  380. package/dist/{renderer-DE9Jik9K.mjs → renderer-Nnu32rqg.mjs} +3 -3
  381. package/dist/{renderer-DE9Jik9K.mjs.map → renderer-Nnu32rqg.mjs.map} +1 -1
  382. package/dist/renderer-R21YvXz3.mjs +5 -0
  383. package/dist/{renderer-celhuAL7.mjs → renderer-RAq3LnNy.mjs} +3 -3
  384. package/dist/{renderer-celhuAL7.mjs.map → renderer-RAq3LnNy.mjs.map} +1 -1
  385. package/dist/renderer-RtzCz37W.mjs +5 -0
  386. package/dist/{renderer-50JEMaVo.mjs → renderer-RzkU_O1i.mjs} +5 -5
  387. package/dist/{renderer-50JEMaVo.mjs.map → renderer-RzkU_O1i.mjs.map} +1 -1
  388. package/dist/{renderer-Bbxh4N8Y.mjs → renderer-S9tVGneU.mjs} +95 -80
  389. package/dist/renderer-S9tVGneU.mjs.map +1 -0
  390. package/dist/{renderer-BSELd5vU.mjs → renderer-SJyp9-62.mjs} +3 -3
  391. package/dist/{renderer-BSELd5vU.mjs.map → renderer-SJyp9-62.mjs.map} +1 -1
  392. package/dist/{renderer-jnAIhWn_.mjs → renderer-_54hiCq0.mjs} +5 -5
  393. package/dist/{renderer-jnAIhWn_.mjs.map → renderer-_54hiCq0.mjs.map} +1 -1
  394. package/dist/{renderer-88C3QpKL.d.mts → renderer-aRk849b3.d.mts} +2 -2
  395. package/dist/{renderer-88C3QpKL.d.mts.map → renderer-aRk849b3.d.mts.map} +1 -1
  396. package/dist/{renderer-BQetXCcZ.mjs → renderer-dGEMVaZ3.mjs} +4 -4
  397. package/dist/{renderer-BQetXCcZ.mjs.map → renderer-dGEMVaZ3.mjs.map} +1 -1
  398. package/dist/{renderer-RvI3qRUI.mjs → renderer-dRXP2dJU.mjs} +5 -5
  399. package/dist/{renderer-RvI3qRUI.mjs.map → renderer-dRXP2dJU.mjs.map} +1 -1
  400. package/dist/{renderer-D06HxSXO.mjs → renderer-g9SstkTz.mjs} +3 -3
  401. package/dist/renderer-iMrqAjix.mjs +5 -0
  402. package/dist/{renderer-BJ-7WRgO.mjs → renderer-opVuiAQR.mjs} +3 -3
  403. package/dist/{renderer-BJ-7WRgO.mjs.map → renderer-opVuiAQR.mjs.map} +1 -1
  404. package/dist/{renderer-KKk7myX1.mjs → renderer-puQhVfDS.mjs} +5 -5
  405. package/dist/{renderer-KKk7myX1.mjs.map → renderer-puQhVfDS.mjs.map} +1 -1
  406. package/dist/renderer-sMed1u1O.mjs +5 -0
  407. package/dist/renderer-tsAuo46l.mjs +5 -0
  408. package/dist/{renderer-TKZCA0B9.mjs → renderer-vll8LX0I.mjs} +211 -72
  409. package/dist/renderer-vll8LX0I.mjs.map +1 -0
  410. package/dist/{renderers-CP8CFWDs-DRoslK4F.mjs → renderers-CP8CFWDs-BRQyvcut.mjs} +4 -4
  411. package/dist/{renderers-CP8CFWDs-DRoslK4F.mjs.map → renderers-CP8CFWDs-BRQyvcut.mjs.map} +1 -1
  412. package/dist/sam/index.d.mts +3 -3
  413. package/dist/sam/index.mjs +1 -1
  414. package/dist/signals/index.d.mts +7 -7
  415. package/dist/signals/index.mjs +8 -8
  416. package/dist/{signals-BfJ1aqpT.mjs → signals-tiho_9fp.mjs} +4 -4
  417. package/dist/{signals-BfJ1aqpT.mjs.map → signals-tiho_9fp.mjs.map} +1 -1
  418. package/dist/{src-Bnr8DUC--BRDqRF6I.mjs → src-BU6vm9sP-DdTHmCr4.mjs} +76 -11
  419. package/dist/src-BU6vm9sP-DdTHmCr4.mjs.map +1 -0
  420. package/dist/{src-BYp6r-cS.mjs → src-BzFGotRc.mjs} +250 -30
  421. package/dist/src-BzFGotRc.mjs.map +1 -0
  422. package/dist/storage/index.d.mts +206 -0
  423. package/dist/storage/index.d.mts.map +1 -0
  424. package/dist/storage/index.mjs +3 -0
  425. package/package.json +67 -59
  426. package/dist/audio-CYZkDwae.d.mts.map +0 -1
  427. package/dist/cloud-xcfV4J03.mjs +0 -233
  428. package/dist/cloud-xcfV4J03.mjs.map +0 -1
  429. package/dist/dist-CWLLnigL.mjs.map +0 -1
  430. package/dist/dist-CySGkG54.mjs.map +0 -1
  431. package/dist/dist-EQX3TUUl.mjs.map +0 -1
  432. package/dist/gpu-CpkJJLQP.mjs.map +0 -1
  433. package/dist/index-BuiZzc6i.d.mts.map +0 -1
  434. package/dist/index-CEU_Zsb9.d.mts.map +0 -1
  435. package/dist/index-CdCrae-I.d.mts.map +0 -1
  436. package/dist/index-Cro-818i.d.mts.map +0 -1
  437. package/dist/index-D2i9J9Zq.d.mts.map +0 -1
  438. package/dist/index-gOVtTm-P.d.mts.map +0 -1
  439. package/dist/preview-BToKUTtZ.mjs.map +0 -1
  440. package/dist/preview-engine/chunk-4FY4TNST.mjs +0 -1
  441. package/dist/preview-engine/chunk-7LDSMOO3.mjs +0 -1
  442. package/dist/preview-engine/chunk-AGAZJZWI.mjs +0 -1
  443. package/dist/preview-engine/chunk-BXPM5SJ3.mjs +0 -1
  444. package/dist/preview-engine/chunk-C4M3B2Q2.mjs +0 -1
  445. package/dist/preview-engine/chunk-CIVJXFWH.mjs +0 -4
  446. package/dist/preview-engine/chunk-D73ZKPFN.mjs +0 -138
  447. package/dist/preview-engine/chunk-KOVN277Z.mjs +0 -1
  448. package/dist/preview-engine/chunk-M4QANUJI.mjs +0 -480
  449. package/dist/preview-engine/chunk-P4Y3PMJF.mjs +0 -1
  450. package/dist/preview-engine/chunk-SE2C623Z.mjs +0 -5
  451. package/dist/preview-engine/chunk-XF6DYP6B.mjs +0 -1974
  452. package/dist/preview-engine/chunk-XYGDTPO7.mjs +0 -39
  453. package/dist/preview-engine/chunk-YGKO4NIU.mjs +0 -1
  454. package/dist/preview-engine/renderers-2NGIILMI.mjs +0 -1
  455. package/dist/preview-engine/renderers-466Z77BH.mjs +0 -1
  456. package/dist/preview-engine/renderers-4KRENGZA.mjs +0 -1
  457. package/dist/preview-engine/renderers-4W52BQEU.mjs +0 -1
  458. package/dist/preview-engine/renderers-55PRAS7G.mjs +0 -1
  459. package/dist/preview-engine/renderers-5LLYINHW.mjs +0 -1
  460. package/dist/preview-engine/renderers-63N3Y2XO.mjs +0 -1
  461. package/dist/preview-engine/renderers-6ROVFDIN.mjs +0 -1
  462. package/dist/preview-engine/renderers-A4RVLPMG.mjs +0 -1
  463. package/dist/preview-engine/renderers-A53P4J6O.mjs +0 -1
  464. package/dist/preview-engine/renderers-AFJ3373L.mjs +0 -1
  465. package/dist/preview-engine/renderers-ATFWTA3U.mjs +0 -1
  466. package/dist/preview-engine/renderers-BPYJXHBU.mjs +0 -1
  467. package/dist/preview-engine/renderers-D3ZF7FXT.mjs +0 -1
  468. package/dist/preview-engine/renderers-D7YN6B4B.mjs +0 -1
  469. package/dist/preview-engine/renderers-DBLASKF5.mjs +0 -1
  470. package/dist/preview-engine/renderers-DC5ZYYHM.mjs +0 -1
  471. package/dist/preview-engine/renderers-J6ZEXW5L.mjs +0 -1
  472. package/dist/preview-engine/renderers-JV4MF46Q.mjs +0 -1
  473. package/dist/preview-engine/renderers-KQKH4ZIX.mjs +0 -1
  474. package/dist/preview-engine/renderers-MDHPQY6D.mjs +0 -1
  475. package/dist/preview-engine/renderers-MEITHN4N.mjs +0 -1
  476. package/dist/preview-engine/renderers-MN3HSBTJ.mjs +0 -1
  477. package/dist/preview-engine/renderers-NTG3QGNH.mjs +0 -1
  478. package/dist/preview-engine/renderers-OU4SFMB2.mjs +0 -1
  479. package/dist/preview-engine/renderers-P6TIBJIG.mjs +0 -1
  480. package/dist/preview-engine/renderers-POJWQ7L3.mjs +0 -1
  481. package/dist/preview-engine/renderers-RJ7S6VHD.mjs +0 -1
  482. package/dist/preview-engine/renderers-RJJAJZYN.mjs +0 -1
  483. package/dist/preview-engine/renderers-UEQ733VK.mjs +0 -1
  484. package/dist/preview-engine/renderers-ULO2AW2U.mjs +0 -1
  485. package/dist/preview-engine/renderers-UPVHGHCK.mjs +0 -1
  486. package/dist/preview-engine/renderers-UZHSNNIM.mjs +0 -1
  487. package/dist/preview-engine/renderers-V5KWZL2C.mjs +0 -1
  488. package/dist/preview-engine/renderers-WL372W36.mjs +0 -228
  489. package/dist/preview-engine/renderers-YMXKYOHQ.mjs +0 -1
  490. package/dist/preview-engine/renderers-YWDAZ2NZ.mjs +0 -1
  491. package/dist/program-Bc860ko5.mjs.map +0 -1
  492. package/dist/renderer--Ymc_4XJ.mjs +0 -5
  493. package/dist/renderer-B-OdV-eq.mjs +0 -5
  494. package/dist/renderer-B65fwoA2.mjs +0 -5
  495. package/dist/renderer-B92Ahkcv.mjs +0 -5
  496. package/dist/renderer-B9z2AK31.mjs +0 -5
  497. package/dist/renderer-BIF3Dg3Z.mjs +0 -5
  498. package/dist/renderer-BJUVaIAT.mjs +0 -5
  499. package/dist/renderer-BKRDMbI-.mjs +0 -5
  500. package/dist/renderer-BSwhyVWa.mjs +0 -5
  501. package/dist/renderer-BUqSZn2X.mjs +0 -5
  502. package/dist/renderer-BVKOQarx.d.mts +0 -99
  503. package/dist/renderer-BVKOQarx.d.mts.map +0 -1
  504. package/dist/renderer-BbmvjqK9.mjs +0 -3
  505. package/dist/renderer-Bbxh4N8Y.mjs.map +0 -1
  506. package/dist/renderer-BhsrlGKp.mjs.map +0 -1
  507. package/dist/renderer-Bpe4k_x6.mjs +0 -5
  508. package/dist/renderer-Bx14Wnxl.mjs.map +0 -1
  509. package/dist/renderer-C1NjG0CJ.mjs +0 -5
  510. package/dist/renderer-C7Puyst9.mjs +0 -5
  511. package/dist/renderer-CGA_7320.mjs +0 -5
  512. package/dist/renderer-CLnFkXO7.mjs +0 -5
  513. package/dist/renderer-CMQIT1Kh.mjs +0 -5
  514. package/dist/renderer-CQ1rwjIh.mjs +0 -5
  515. package/dist/renderer-CT8h0boY.mjs +0 -5
  516. package/dist/renderer-Cb0lszt3.mjs +0 -5
  517. package/dist/renderer-Ci7oLye9.mjs +0 -5
  518. package/dist/renderer-CjqXB3CZ.mjs +0 -5
  519. package/dist/renderer-CqTV04zQ.mjs +0 -5
  520. package/dist/renderer-CtWeRtHK.mjs +0 -5
  521. package/dist/renderer-CzolnwCo.mjs +0 -5
  522. package/dist/renderer-D6qhcx_C.mjs +0 -5
  523. package/dist/renderer-DDfEf0jt.mjs +0 -5
  524. package/dist/renderer-DDpa8ztp.mjs +0 -5
  525. package/dist/renderer-DbQBqzmx.mjs +0 -5
  526. package/dist/renderer-DfUcwMKa.mjs +0 -5
  527. package/dist/renderer-DgIjNANM.mjs +0 -6
  528. package/dist/renderer-Dsh6Tgu0.mjs +0 -3
  529. package/dist/renderer-DuIwR9GT.mjs +0 -5
  530. package/dist/renderer-Dv4u2c14.mjs +0 -5
  531. package/dist/renderer-HDj9Zb-O.mjs.map +0 -1
  532. package/dist/renderer-IE1yu3lZ.mjs +0 -5
  533. package/dist/renderer-PY_wnEN0.mjs +0 -5
  534. package/dist/renderer-TKZCA0B9.mjs.map +0 -1
  535. package/dist/renderer-gv24VyzO.mjs +0 -5
  536. package/dist/renderer-nN6lPZf9.mjs +0 -5
  537. package/dist/src-BYp6r-cS.mjs.map +0 -1
  538. package/dist/src-Bnr8DUC--BRDqRF6I.mjs.map +0 -1
  539. /package/dist/{chunk-W71TSjRM.mjs → chunk-DOL2i2sR.mjs} +0 -0
  540. /package/dist/{renderer-B6rZUBwE.mjs → renderer-Co2YqWX0.mjs} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"renderer-celhuAL7.mjs","names":[],"sources":["../../../nodes/node-kenburns/dist/renderers-Ca3wLKBl.mjs"],"sourcesContent":["import { defineRenderer } from \"@framefields/node-sdk/renderer\";\nimport { FULLSCREEN_QUAD_WGSL, createFullscreenPipeline, drawChildToTexture, drawFullscreenPass, fragmentBindGroupLayout } from \"@framefields/node-sdk/gpu\";\n\n//#region src/renderers/webgpu-renderer.ts\nconst easeIn = (t) => t * t;\nconst easeOut = (t) => t * (2 - t);\nconst easeInOut = (t) => t < .5 ? 2 * t * t : -1 + (4 - 2 * t) * t;\nconst springEase = (t) => {\n\tconst c4 = 2 * Math.PI / 3;\n\treturn t === 0 ? 0 : t === 1 ? 1 : 2 ** (-10 * t) * Math.sin((t * 10 - .75) * c4) + 1;\n};\nconst applyEasing = (t, easing) => {\n\tswitch (easing) {\n\t\tcase \"ease-in\": return easeIn(t);\n\t\tcase \"ease-out\": return easeOut(t);\n\t\tcase \"ease-in-out\": return easeInOut(t);\n\t\tcase \"spring\": return springEase(t);\n\t\tdefault: return t;\n\t}\n};\nconst catmullRom = (p0, p1, p2, p3, t) => {\n\tconst t2 = t * t;\n\tconst t3 = t2 * t;\n\treturn .5 * (2 * p1 + (-p0 + p2) * t + (2 * p0 - 5 * p1 + 4 * p2 - p3) * t2 + (-p0 + 3 * p1 - 3 * p2 + p3) * t3);\n};\nfunction interpolateKenBurns(keyframes, timeMs, movementStyle = \"spline\") {\n\tif (keyframes.length === 0) return {\n\t\tx: 50,\n\t\ty: 50,\n\t\tscale: 1\n\t};\n\tif (keyframes.length === 1) {\n\t\tconst kf = keyframes[0];\n\t\treturn {\n\t\t\tx: kf.x ?? 50,\n\t\t\ty: kf.y ?? 50,\n\t\t\tscale: kf.scale ?? 1\n\t\t};\n\t}\n\tlet elapsed = 0;\n\tfor (let i = 0; i < keyframes.length; i++) {\n\t\tconst kf = keyframes[i];\n\t\tconst hold = kf.holdMs ?? 0;\n\t\tconst dur = kf.durationMs ?? 0;\n\t\tif (timeMs <= elapsed + hold) return {\n\t\t\tx: kf.x ?? 50,\n\t\t\ty: kf.y ?? 50,\n\t\t\tscale: kf.scale ?? 1\n\t\t};\n\t\telapsed += hold;\n\t\tif (i < keyframes.length - 1 && dur > 0) {\n\t\t\tif (timeMs <= elapsed + dur) {\n\t\t\t\tconst rawT = (timeMs - elapsed) / dur;\n\t\t\t\tconst t = applyEasing(Math.max(0, Math.min(1, rawT)), kf.easing);\n\t\t\t\tconst next = keyframes[i + 1];\n\t\t\t\tif (movementStyle === \"spline\") {\n\t\t\t\t\tconst prev = keyframes[i - 1] ?? kf;\n\t\t\t\t\tconst afterNext = keyframes[i + 2] ?? next;\n\t\t\t\t\treturn {\n\t\t\t\t\t\tx: catmullRom(prev.x ?? 50, kf.x ?? 50, next.x ?? 50, afterNext.x ?? 50, t),\n\t\t\t\t\t\ty: catmullRom(prev.y ?? 50, kf.y ?? 50, next.y ?? 50, afterNext.y ?? 50, t),\n\t\t\t\t\t\tscale: catmullRom(prev.scale ?? 1, kf.scale ?? 1, next.scale ?? 1, afterNext.scale ?? 1, t)\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tx: (kf.x ?? 50) + ((next.x ?? 50) - (kf.x ?? 50)) * t,\n\t\t\t\t\ty: (kf.y ?? 50) + ((next.y ?? 50) - (kf.y ?? 50)) * t,\n\t\t\t\t\tscale: (kf.scale ?? 1) + ((next.scale ?? 1) - (kf.scale ?? 1)) * t\n\t\t\t\t};\n\t\t\t}\n\t\t\telapsed += dur;\n\t\t}\n\t}\n\tconst last = keyframes[keyframes.length - 1];\n\treturn {\n\t\tx: last.x ?? 50,\n\t\ty: last.y ?? 50,\n\t\tscale: last.scale ?? 1\n\t};\n}\nfunction calculateSrcRect(state, sourceWidth, sourceHeight, targetAspectRatio) {\n\tlet baseBoxW_pct = 100;\n\tlet baseBoxH_pct = 100;\n\tif (targetAspectRatio !== \"input\") {\n\t\tconst parts = targetAspectRatio.split(\":\");\n\t\tconst tW = Number(parts[0]);\n\t\tconst tH = Number(parts[1]);\n\t\tif (!Number.isNaN(tW) && !Number.isNaN(tH) && tW > 0 && tH > 0) {\n\t\t\tconst desiredAR = tW / tH;\n\t\t\tconst sourceAR = sourceWidth / sourceHeight;\n\t\t\tif (sourceAR > desiredAR) {\n\t\t\t\tbaseBoxH_pct = 100;\n\t\t\t\tbaseBoxW_pct = desiredAR / sourceAR * 100;\n\t\t\t} else {\n\t\t\t\tbaseBoxW_pct = 100;\n\t\t\t\tbaseBoxH_pct = sourceAR / desiredAR * 100;\n\t\t\t}\n\t\t}\n\t}\n\tconst baseBoxPxW = baseBoxW_pct / 100 * sourceWidth;\n\tconst baseBoxPxH = baseBoxH_pct / 100 * sourceHeight;\n\tconst clampedScale = Math.max(state.scale, 1);\n\tconst currentBoxPxW = baseBoxPxW / clampedScale;\n\tconst currentBoxPxH = baseBoxPxH / clampedScale;\n\tconst rawFocalX = state.x / 100 * sourceWidth;\n\tconst rawFocalY = state.y / 100 * sourceHeight;\n\tconst halfBoxW = currentBoxPxW / 2;\n\tconst halfBoxH = currentBoxPxH / 2;\n\tconst focalX = Math.max(halfBoxW, Math.min(sourceWidth - halfBoxW, rawFocalX));\n\tconst focalY = Math.max(halfBoxH, Math.min(sourceHeight - halfBoxH, rawFocalY));\n\treturn {\n\t\tx: focalX - halfBoxW,\n\t\ty: focalY - halfBoxH,\n\t\twidth: currentBoxPxW,\n\t\theight: currentBoxPxH\n\t};\n}\nconst motionBlurWgsl = `\nstruct MotionBlurUniforms {\n\tprev_origin : vec2<f32>,\n\tprev_size : vec2<f32>,\n\tcurr_origin : vec2<f32>,\n\tcurr_size : vec2<f32>,\n\tsamples : f32,\n\tblurSize : f32,\n\tpadding : vec2<f32>,\n};\n\n@group(0) @binding(0) var<uniform> u : MotionBlurUniforms;\n@group(1) @binding(0) var tex : texture_2d<f32>;\n@group(1) @binding(1) var samp : sampler;\n${FULLSCREEN_QUAD_WGSL}\n\n@fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {\n\tlet uv = in.uv;\n\tlet n = i32(u.samples);\n\t\n\tif (n <= 1) {\n\t\tlet p_curr = u.curr_origin + uv * u.curr_size;\n\t\treturn textureSampleLevel(tex, samp, p_curr, 0.0);\n\t}\n\t\n\tvar color = vec4<f32>(0.0);\n\tfor (var i = 0; i < n; i = i + 1) {\n\t\t// Use blurSize to control the shutter interval width. \n\t\t// t=1.0 is current frame, t=0.0 is previous frame.\n\t\tlet t = 1.0 + (f32(i) / f32(n - 1) - 0.5) * u.blurSize;\n\t\t\n\t\tlet origin = mix(u.prev_origin, u.curr_origin, t);\n\t\tlet size = mix(u.prev_size, u.curr_size, t);\n\t\tlet p_sample = origin + uv * size;\n\t\t\n\t\tcolor += textureSampleLevel(tex, samp, p_sample, 0.0);\n\t}\n\treturn color / f32(n);\n}\n`;\nconst deviceResourceCache = /* @__PURE__ */ new WeakMap();\nconst motionBlurData = new Float32Array(12);\nfunction getMotionBlurResources(device, format) {\n\tlet res = deviceResourceCache.get(device);\n\tif (!res) {\n\t\tconst motionBlurUniformLayout = fragmentBindGroupLayout(device, [\"uniform\"]);\n\t\tconst singleTextureLayout = fragmentBindGroupLayout(device, [\"texture\", \"sampler\"]);\n\t\tres = {\n\t\t\tmotionBlurPipeline: createFullscreenPipeline(device, {\n\t\t\t\tlabel: \"MotionBlurPipeline\",\n\t\t\t\tmodule: device.createShaderModule({\n\t\t\t\t\tlabel: \"kenburns_motionblur.wgsl\",\n\t\t\t\t\tcode: motionBlurWgsl\n\t\t\t\t}),\n\t\t\t\tlayouts: [motionBlurUniformLayout, singleTextureLayout],\n\t\t\t\tformat\n\t\t\t}),\n\t\t\tmotionBlurUniformLayout,\n\t\t\tsingleTextureLayout\n\t\t};\n\t\tdeviceResourceCache.set(device, res);\n\t}\n\treturn res;\n}\nconst KenBurnsWebGPURenderer = async (args) => {\n\tconst { ctx, encoder, pass, targetView, targetTexture, targetWidth, targetHeight, props } = args;\n\tconst { virtualMedia, containerWidth, containerHeight, frame, fps, trimStartOverride, opacity = 1, inheritedSeekOffset = 0 } = props;\n\tconst op = virtualMedia.operation;\n\tif (op?.op !== \"KenBurns\") return;\n\tconst childMedia = virtualMedia.children?.[0];\n\tif (!childMedia) return;\n\tconst sourceWidth = op.originalWidth ?? childMedia.metadata?.width ?? virtualMedia.metadata?.width ?? containerWidth ?? targetWidth;\n\tconst sourceHeight = op.originalHeight ?? childMedia.metadata?.height ?? virtualMedia.metadata?.height ?? containerHeight ?? targetHeight;\n\tconst keyframes = op.keyframes ?? [];\n\tconst movementStyle = op.movementStyle ?? \"spline\";\n\tconst targetAspectRatio = op.aspectRatio || \"input\";\n\tconst offsetMs = ((trimStartOverride ?? 0) + inheritedSeekOffset) * 1e3;\n\tconst fpsVal = Math.max(1, fps ?? 30);\n\tconst frameDurationMs = 1e3 / fpsVal;\n\tconst timeMs = offsetMs + (frame ?? 0) / fpsVal * 1e3;\n\tconst prevTimeMs = timeMs - frameDurationMs;\n\tconst state = interpolateKenBurns(keyframes, timeMs, movementStyle);\n\tconst prevState = interpolateKenBurns(keyframes, prevTimeMs, movementStyle);\n\tconst srcRect = calculateSrcRect(state, sourceWidth, sourceHeight, targetAspectRatio);\n\tconst prevSrcRect = calculateSrcRect(prevState, sourceWidth, sourceHeight, targetAspectRatio);\n\tconst dstWidth = containerWidth ?? targetWidth;\n\tconst dstHeight = containerHeight ?? targetHeight;\n\tconst dstRect = {\n\t\tx: 0,\n\t\ty: 0,\n\t\twidth: dstWidth,\n\t\theight: dstHeight\n\t};\n\tpass.end();\n\tconst { texture: tempTex } = await drawChildToTexture(args, childMedia, {\n\t\twidth: sourceWidth,\n\t\theight: sourceHeight,\n\t\tprops: {\n\t\t\t...props,\n\t\t\tcontainerWidth: sourceWidth,\n\t\t\tcontainerHeight: sourceHeight\n\t\t}\n\t});\n\tconst motionBlurSize = op.motionBlurSize ?? 1.5;\n\tlet blurTex = null;\n\tif (motionBlurSize > 0) {\n\t\tconst { motionBlurPipeline: pipeline, motionBlurUniformLayout: uLayout, singleTextureLayout: tLayout } = getMotionBlurResources(ctx.device, ctx.renderer.format);\n\t\tconst sampler = ctx.renderer.samplerCache.getSampler(ctx.device);\n\t\tmotionBlurData[0] = prevSrcRect.x / sourceWidth;\n\t\tmotionBlurData[1] = prevSrcRect.y / sourceHeight;\n\t\tmotionBlurData[2] = prevSrcRect.width / sourceWidth;\n\t\tmotionBlurData[3] = prevSrcRect.height / sourceHeight;\n\t\tmotionBlurData[4] = srcRect.x / sourceWidth;\n\t\tmotionBlurData[5] = srcRect.y / sourceHeight;\n\t\tmotionBlurData[6] = srcRect.width / sourceWidth;\n\t\tmotionBlurData[7] = srcRect.height / sourceHeight;\n\t\tmotionBlurData[8] = 12;\n\t\tmotionBlurData[9] = motionBlurSize;\n\t\tconst uBuffer = ctx.renderer.getTemporaryBuffer(motionBlurData);\n\t\tblurTex = ctx.renderer.getTemporaryTexture(dstWidth, dstHeight, [\n\t\t\ttargetTexture,\n\t\t\ttempTex,\n\t\t\t...props.excludeTextures || []\n\t\t]);\n\t\tdrawFullscreenPass(encoder, blurTex.createView(), pipeline, [ctx.device.createBindGroup({\n\t\t\tlayout: uLayout,\n\t\t\tentries: [{\n\t\t\t\tbinding: 0,\n\t\t\t\tresource: { buffer: uBuffer }\n\t\t\t}]\n\t\t}), ctx.renderer.bindGroupCache.getBindGroup(ctx.device, tLayout, tempTex, sampler)]);\n\t}\n\tconst outPass = ctx.renderer.beginFrame(encoder, targetView, {\n\t\tr: 0,\n\t\tg: 0,\n\t\tb: 0,\n\t\ta: 0\n\t}, targetWidth, targetHeight, \"load\");\n\tif (blurTex) ctx.renderer.drawTexture(outPass, blurTex, dstRect, { opacity });\n\telse ctx.renderer.drawTextureRegion(outPass, tempTex, srcRect, dstRect, { opacity });\n\targs.pass = outPass;\n};\n\n//#endregion\n//#region src/renderers/index.ts\nvar renderers_default = defineRenderer({ WebGPURenderer: KenBurnsWebGPURenderer });\n\n//#endregion\nexport { renderers_default as t };\n//# sourceMappingURL=renderers-Ca3wLKBl.mjs.map"],"mappings":"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"}
1
+ {"version":3,"file":"renderer-RAq3LnNy.mjs","names":[],"sources":["../../../nodes/node-kenburns/dist/renderers-Ca3wLKBl.mjs"],"sourcesContent":["import { defineRenderer } from \"@framefields/node-sdk/renderer\";\nimport { FULLSCREEN_QUAD_WGSL, createFullscreenPipeline, drawChildToTexture, drawFullscreenPass, fragmentBindGroupLayout } from \"@framefields/node-sdk/gpu\";\n\n//#region src/renderers/webgpu-renderer.ts\nconst easeIn = (t) => t * t;\nconst easeOut = (t) => t * (2 - t);\nconst easeInOut = (t) => t < .5 ? 2 * t * t : -1 + (4 - 2 * t) * t;\nconst springEase = (t) => {\n\tconst c4 = 2 * Math.PI / 3;\n\treturn t === 0 ? 0 : t === 1 ? 1 : 2 ** (-10 * t) * Math.sin((t * 10 - .75) * c4) + 1;\n};\nconst applyEasing = (t, easing) => {\n\tswitch (easing) {\n\t\tcase \"ease-in\": return easeIn(t);\n\t\tcase \"ease-out\": return easeOut(t);\n\t\tcase \"ease-in-out\": return easeInOut(t);\n\t\tcase \"spring\": return springEase(t);\n\t\tdefault: return t;\n\t}\n};\nconst catmullRom = (p0, p1, p2, p3, t) => {\n\tconst t2 = t * t;\n\tconst t3 = t2 * t;\n\treturn .5 * (2 * p1 + (-p0 + p2) * t + (2 * p0 - 5 * p1 + 4 * p2 - p3) * t2 + (-p0 + 3 * p1 - 3 * p2 + p3) * t3);\n};\nfunction interpolateKenBurns(keyframes, timeMs, movementStyle = \"spline\") {\n\tif (keyframes.length === 0) return {\n\t\tx: 50,\n\t\ty: 50,\n\t\tscale: 1\n\t};\n\tif (keyframes.length === 1) {\n\t\tconst kf = keyframes[0];\n\t\treturn {\n\t\t\tx: kf.x ?? 50,\n\t\t\ty: kf.y ?? 50,\n\t\t\tscale: kf.scale ?? 1\n\t\t};\n\t}\n\tlet elapsed = 0;\n\tfor (let i = 0; i < keyframes.length; i++) {\n\t\tconst kf = keyframes[i];\n\t\tconst hold = kf.holdMs ?? 0;\n\t\tconst dur = kf.durationMs ?? 0;\n\t\tif (timeMs <= elapsed + hold) return {\n\t\t\tx: kf.x ?? 50,\n\t\t\ty: kf.y ?? 50,\n\t\t\tscale: kf.scale ?? 1\n\t\t};\n\t\telapsed += hold;\n\t\tif (i < keyframes.length - 1 && dur > 0) {\n\t\t\tif (timeMs <= elapsed + dur) {\n\t\t\t\tconst rawT = (timeMs - elapsed) / dur;\n\t\t\t\tconst t = applyEasing(Math.max(0, Math.min(1, rawT)), kf.easing);\n\t\t\t\tconst next = keyframes[i + 1];\n\t\t\t\tif (movementStyle === \"spline\") {\n\t\t\t\t\tconst prev = keyframes[i - 1] ?? kf;\n\t\t\t\t\tconst afterNext = keyframes[i + 2] ?? next;\n\t\t\t\t\treturn {\n\t\t\t\t\t\tx: catmullRom(prev.x ?? 50, kf.x ?? 50, next.x ?? 50, afterNext.x ?? 50, t),\n\t\t\t\t\t\ty: catmullRom(prev.y ?? 50, kf.y ?? 50, next.y ?? 50, afterNext.y ?? 50, t),\n\t\t\t\t\t\tscale: catmullRom(prev.scale ?? 1, kf.scale ?? 1, next.scale ?? 1, afterNext.scale ?? 1, t)\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tx: (kf.x ?? 50) + ((next.x ?? 50) - (kf.x ?? 50)) * t,\n\t\t\t\t\ty: (kf.y ?? 50) + ((next.y ?? 50) - (kf.y ?? 50)) * t,\n\t\t\t\t\tscale: (kf.scale ?? 1) + ((next.scale ?? 1) - (kf.scale ?? 1)) * t\n\t\t\t\t};\n\t\t\t}\n\t\t\telapsed += dur;\n\t\t}\n\t}\n\tconst last = keyframes[keyframes.length - 1];\n\treturn {\n\t\tx: last.x ?? 50,\n\t\ty: last.y ?? 50,\n\t\tscale: last.scale ?? 1\n\t};\n}\nfunction calculateSrcRect(state, sourceWidth, sourceHeight, targetAspectRatio) {\n\tlet baseBoxW_pct = 100;\n\tlet baseBoxH_pct = 100;\n\tif (targetAspectRatio !== \"input\") {\n\t\tconst parts = targetAspectRatio.split(\":\");\n\t\tconst tW = Number(parts[0]);\n\t\tconst tH = Number(parts[1]);\n\t\tif (!Number.isNaN(tW) && !Number.isNaN(tH) && tW > 0 && tH > 0) {\n\t\t\tconst desiredAR = tW / tH;\n\t\t\tconst sourceAR = sourceWidth / sourceHeight;\n\t\t\tif (sourceAR > desiredAR) {\n\t\t\t\tbaseBoxH_pct = 100;\n\t\t\t\tbaseBoxW_pct = desiredAR / sourceAR * 100;\n\t\t\t} else {\n\t\t\t\tbaseBoxW_pct = 100;\n\t\t\t\tbaseBoxH_pct = sourceAR / desiredAR * 100;\n\t\t\t}\n\t\t}\n\t}\n\tconst baseBoxPxW = baseBoxW_pct / 100 * sourceWidth;\n\tconst baseBoxPxH = baseBoxH_pct / 100 * sourceHeight;\n\tconst clampedScale = Math.max(state.scale, 1);\n\tconst currentBoxPxW = baseBoxPxW / clampedScale;\n\tconst currentBoxPxH = baseBoxPxH / clampedScale;\n\tconst rawFocalX = state.x / 100 * sourceWidth;\n\tconst rawFocalY = state.y / 100 * sourceHeight;\n\tconst halfBoxW = currentBoxPxW / 2;\n\tconst halfBoxH = currentBoxPxH / 2;\n\tconst focalX = Math.max(halfBoxW, Math.min(sourceWidth - halfBoxW, rawFocalX));\n\tconst focalY = Math.max(halfBoxH, Math.min(sourceHeight - halfBoxH, rawFocalY));\n\treturn {\n\t\tx: focalX - halfBoxW,\n\t\ty: focalY - halfBoxH,\n\t\twidth: currentBoxPxW,\n\t\theight: currentBoxPxH\n\t};\n}\nconst motionBlurWgsl = `\nstruct MotionBlurUniforms {\n\tprev_origin : vec2<f32>,\n\tprev_size : vec2<f32>,\n\tcurr_origin : vec2<f32>,\n\tcurr_size : vec2<f32>,\n\tsamples : f32,\n\tblurSize : f32,\n\tpadding : vec2<f32>,\n};\n\n@group(0) @binding(0) var<uniform> u : MotionBlurUniforms;\n@group(1) @binding(0) var tex : texture_2d<f32>;\n@group(1) @binding(1) var samp : sampler;\n${FULLSCREEN_QUAD_WGSL}\n\n@fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {\n\tlet uv = in.uv;\n\tlet n = i32(u.samples);\n\t\n\tif (n <= 1) {\n\t\tlet p_curr = u.curr_origin + uv * u.curr_size;\n\t\treturn textureSampleLevel(tex, samp, p_curr, 0.0);\n\t}\n\t\n\tvar color = vec4<f32>(0.0);\n\tfor (var i = 0; i < n; i = i + 1) {\n\t\t// Use blurSize to control the shutter interval width. \n\t\t// t=1.0 is current frame, t=0.0 is previous frame.\n\t\tlet t = 1.0 + (f32(i) / f32(n - 1) - 0.5) * u.blurSize;\n\t\t\n\t\tlet origin = mix(u.prev_origin, u.curr_origin, t);\n\t\tlet size = mix(u.prev_size, u.curr_size, t);\n\t\tlet p_sample = origin + uv * size;\n\t\t\n\t\tcolor += textureSampleLevel(tex, samp, p_sample, 0.0);\n\t}\n\treturn color / f32(n);\n}\n`;\nconst deviceResourceCache = /* @__PURE__ */ new WeakMap();\nconst motionBlurData = new Float32Array(12);\nfunction getMotionBlurResources(device, format) {\n\tlet res = deviceResourceCache.get(device);\n\tif (!res) {\n\t\tconst motionBlurUniformLayout = fragmentBindGroupLayout(device, [\"uniform\"]);\n\t\tconst singleTextureLayout = fragmentBindGroupLayout(device, [\"texture\", \"sampler\"]);\n\t\tres = {\n\t\t\tmotionBlurPipeline: createFullscreenPipeline(device, {\n\t\t\t\tlabel: \"MotionBlurPipeline\",\n\t\t\t\tmodule: device.createShaderModule({\n\t\t\t\t\tlabel: \"kenburns_motionblur.wgsl\",\n\t\t\t\t\tcode: motionBlurWgsl\n\t\t\t\t}),\n\t\t\t\tlayouts: [motionBlurUniformLayout, singleTextureLayout],\n\t\t\t\tformat\n\t\t\t}),\n\t\t\tmotionBlurUniformLayout,\n\t\t\tsingleTextureLayout\n\t\t};\n\t\tdeviceResourceCache.set(device, res);\n\t}\n\treturn res;\n}\nconst KenBurnsWebGPURenderer = async (args) => {\n\tconst { ctx, encoder, pass, targetView, targetTexture, targetWidth, targetHeight, props } = args;\n\tconst { virtualMedia, containerWidth, containerHeight, frame, fps, trimStartOverride, opacity = 1, inheritedSeekOffset = 0 } = props;\n\tconst op = virtualMedia.operation;\n\tif (op?.op !== \"KenBurns\") return;\n\tconst childMedia = virtualMedia.children?.[0];\n\tif (!childMedia) return;\n\tconst sourceWidth = op.originalWidth ?? childMedia.metadata?.width ?? virtualMedia.metadata?.width ?? containerWidth ?? targetWidth;\n\tconst sourceHeight = op.originalHeight ?? childMedia.metadata?.height ?? virtualMedia.metadata?.height ?? containerHeight ?? targetHeight;\n\tconst keyframes = op.keyframes ?? [];\n\tconst movementStyle = op.movementStyle ?? \"spline\";\n\tconst targetAspectRatio = op.aspectRatio || \"input\";\n\tconst offsetMs = ((trimStartOverride ?? 0) + inheritedSeekOffset) * 1e3;\n\tconst fpsVal = Math.max(1, fps ?? 30);\n\tconst frameDurationMs = 1e3 / fpsVal;\n\tconst timeMs = offsetMs + (frame ?? 0) / fpsVal * 1e3;\n\tconst prevTimeMs = timeMs - frameDurationMs;\n\tconst state = interpolateKenBurns(keyframes, timeMs, movementStyle);\n\tconst prevState = interpolateKenBurns(keyframes, prevTimeMs, movementStyle);\n\tconst srcRect = calculateSrcRect(state, sourceWidth, sourceHeight, targetAspectRatio);\n\tconst prevSrcRect = calculateSrcRect(prevState, sourceWidth, sourceHeight, targetAspectRatio);\n\tconst dstWidth = containerWidth ?? targetWidth;\n\tconst dstHeight = containerHeight ?? targetHeight;\n\tconst dstRect = {\n\t\tx: 0,\n\t\ty: 0,\n\t\twidth: dstWidth,\n\t\theight: dstHeight\n\t};\n\tpass.end();\n\tconst { texture: tempTex } = await drawChildToTexture(args, childMedia, {\n\t\twidth: sourceWidth,\n\t\theight: sourceHeight,\n\t\tprops: {\n\t\t\t...props,\n\t\t\tcontainerWidth: sourceWidth,\n\t\t\tcontainerHeight: sourceHeight\n\t\t}\n\t});\n\tconst motionBlurSize = op.motionBlurSize ?? 1.5;\n\tlet blurTex = null;\n\tif (motionBlurSize > 0) {\n\t\tconst { motionBlurPipeline: pipeline, motionBlurUniformLayout: uLayout, singleTextureLayout: tLayout } = getMotionBlurResources(ctx.device, ctx.renderer.format);\n\t\tconst sampler = ctx.renderer.samplerCache.getSampler(ctx.device);\n\t\tmotionBlurData[0] = prevSrcRect.x / sourceWidth;\n\t\tmotionBlurData[1] = prevSrcRect.y / sourceHeight;\n\t\tmotionBlurData[2] = prevSrcRect.width / sourceWidth;\n\t\tmotionBlurData[3] = prevSrcRect.height / sourceHeight;\n\t\tmotionBlurData[4] = srcRect.x / sourceWidth;\n\t\tmotionBlurData[5] = srcRect.y / sourceHeight;\n\t\tmotionBlurData[6] = srcRect.width / sourceWidth;\n\t\tmotionBlurData[7] = srcRect.height / sourceHeight;\n\t\tmotionBlurData[8] = 12;\n\t\tmotionBlurData[9] = motionBlurSize;\n\t\tconst uBuffer = ctx.renderer.getTemporaryBuffer(motionBlurData);\n\t\tblurTex = ctx.renderer.getTemporaryTexture(dstWidth, dstHeight, [\n\t\t\ttargetTexture,\n\t\t\ttempTex,\n\t\t\t...props.excludeTextures || []\n\t\t]);\n\t\tdrawFullscreenPass(encoder, blurTex.createView(), pipeline, [ctx.device.createBindGroup({\n\t\t\tlayout: uLayout,\n\t\t\tentries: [{\n\t\t\t\tbinding: 0,\n\t\t\t\tresource: { buffer: uBuffer }\n\t\t\t}]\n\t\t}), ctx.renderer.bindGroupCache.getBindGroup(ctx.device, tLayout, tempTex, sampler)]);\n\t}\n\tconst outPass = ctx.renderer.beginFrame(encoder, targetView, {\n\t\tr: 0,\n\t\tg: 0,\n\t\tb: 0,\n\t\ta: 0\n\t}, targetWidth, targetHeight, \"load\");\n\tif (blurTex) ctx.renderer.drawTexture(outPass, blurTex, dstRect, { opacity });\n\telse ctx.renderer.drawTextureRegion(outPass, tempTex, srcRect, dstRect, { opacity });\n\targs.pass = outPass;\n};\n\n//#endregion\n//#region src/renderers/index.ts\nvar renderers_default = defineRenderer({ WebGPURenderer: KenBurnsWebGPURenderer });\n\n//#endregion\nexport { renderers_default as t };\n//# sourceMappingURL=renderers-Ca3wLKBl.mjs.map"],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import "./chunk-DOL2i2sR.mjs";
2
+ import "./dist-D3BeAZ7X.mjs";
3
+ import { t as renderers_default } from "./renderer-BIieU9pY.mjs";
4
+
5
+ export { renderers_default as default };
@@ -1,7 +1,7 @@
1
- import "./chunk-W71TSjRM.mjs";
2
- import { n as defineRenderer } from "./renderer-DcvjSolU.mjs";
3
- import "./dist-CWLLnigL.mjs";
4
- import { i as beginTargetPass, l as fragmentBindGroupLayout, o as drawChildToTexture, p as texturesLayout, t as FULLSCREEN_QUAD_WGSL } from "./gpu-CpkJJLQP.mjs";
1
+ import "./chunk-DOL2i2sR.mjs";
2
+ import { n as defineRenderer } from "./renderer-BuvKGwk3.mjs";
3
+ import "./dist-D3BeAZ7X.mjs";
4
+ import { i as beginTargetPass, l as fragmentBindGroupLayout, m as texturesLayout, o as drawChildToTexture, t as FULLSCREEN_QUAD_WGSL } from "./gpu-CWjgql4C.mjs";
5
5
 
6
6
  //#region ../../nodes/node-channel-merger/dist/renderers-CFuJvvvy.mjs
7
7
  const COLOR_SPACE_MAP = {
@@ -290,4 +290,4 @@ var renderers_default = defineRenderer({ WebGPURenderer: ChannelMergerWebGPURend
290
290
 
291
291
  //#endregion
292
292
  export { ChannelMergerWebGPURenderer, renderers_default as default };
293
- //# sourceMappingURL=renderer-50JEMaVo.mjs.map
293
+ //# sourceMappingURL=renderer-RzkU_O1i.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderer-50JEMaVo.mjs","names":[],"sources":["../../../nodes/node-channel-merger/dist/renderers-CFuJvvvy.mjs"],"sourcesContent":["import { defineRenderer } from \"@framefields/node-sdk/renderer\";\nimport { FULLSCREEN_QUAD_WGSL, beginTargetPass, drawChildToTexture, fragmentBindGroupLayout, texturesLayout } from \"@framefields/node-sdk/gpu\";\n\n//#region src/renderers/webgpu-renderer.ts\nconst COLOR_SPACE_MAP = {\n\tRGBA: 0,\n\tHSLA: 1,\n\tCMYK: 2,\n\tLAB: 3\n};\nconst WGSL_CHANNEL_MERGER = `\nstruct MergerUniforms {\n\tcolorSpace : f32, // 0=RGBA, 1=HSLA, 2=CMYK, 3=LAB\n\thasCh4 : f32, // 0 or 1\n\tdefaultCh4 : f32, // fallback value (1.0 for alpha, 0.0 for CMYK black)\n\t_pad0 : f32,\n};\n\n@group(0) @binding(0) var<uniform> u : MergerUniforms;\n@group(1) @binding(0) var tex1 : texture_2d<f32>;\n@group(1) @binding(1) var tex2 : texture_2d<f32>;\n@group(1) @binding(2) var tex3 : texture_2d<f32>;\n@group(1) @binding(3) var tex4 : texture_2d<f32>;\n@group(1) @binding(4) var samp : sampler;\n${FULLSCREEN_QUAD_WGSL}\n\nfn hue2rgb(p: f32, q: f32, t_in: f32) -> f32 {\n\tvar t = t_in;\n\tif (t < 0.0) { t = t + 1.0; }\n\tif (t > 1.0) { t = t - 1.0; }\n\tif (t < 1.0 / 6.0) { return p + (q - p) * 6.0 * t; }\n\tif (t < 1.0 / 2.0) { return q; }\n\tif (t < 2.0 / 3.0) { return p + (q - p) * (2.0 / 3.0 - t) * 6.0; }\n\treturn p;\n}\n\nfn hsl2rgb(h: f32, s: f32, l: f32) -> vec3<f32> {\n\tif (s <= 0.00001) {\n\t\treturn vec3<f32>(l, l, l);\n\t}\n\tlet q = select(l + s - l * s, l * (1.0 + s), l < 0.5);\n\tlet p = 2.0 * l - q;\n\tlet r = hue2rgb(p, q, h + 1.0 / 3.0);\n\tlet g = hue2rgb(p, q, h);\n\tlet b = hue2rgb(p, q, h - 1.0 / 3.0);\n\treturn vec3<f32>(clamp(r, 0.0, 1.0), clamp(g, 0.0, 1.0), clamp(b, 0.0, 1.0));\n}\n\nfn inv_lab_f(t: f32) -> f32 {\n\tlet t3 = t * t * t;\n\treturn select((t - 16.0 / 116.0) / 7.787, t3, t3 > 0.008856);\n}\n\nfn lin2srgb(v: f32) -> f32 {\n\tlet c = clamp(v, 0.0, 1.0);\n\treturn select(c * 12.92, 1.055 * pow(c, 1.0 / 2.4) - 0.055, c > 0.0031308);\n}\n\n@fragment fn fs(in: VSOut) -> @location(0) vec4<f32> {\n\tlet c1 = textureSample(tex1, samp, in.uv);\n\tlet c2 = textureSample(tex2, samp, in.uv);\n\tlet c3 = textureSample(tex3, samp, in.uv);\n\tlet c4 = textureSample(tex4, samp, in.uv);\n\n\tlet v1 = c1.r;\n\tlet v2 = c2.r;\n\tlet v3 = c3.r;\n\tlet v4 = select(u.defaultCh4, c4.r, u.hasCh4 > 0.5);\n\n\tlet cs = u32(u.colorSpace + 0.5);\n\n\tif (cs == 0u) { // RGBA\n\t\treturn vec4<f32>(clamp(v1, 0.0, 1.0), clamp(v2, 0.0, 1.0), clamp(v3, 0.0, 1.0), clamp(v4, 0.0, 1.0));\n\t} else if (cs == 1u) { // HSLA\n\t\tlet rgb = hsl2rgb(fract(v1), clamp(v2, 0.0, 1.0), clamp(v3, 0.0, 1.0));\n\t\treturn vec4<f32>(rgb, clamp(v4, 0.0, 1.0));\n\t} else if (cs == 2u) { // CMYK\n\t\tlet C = clamp(v1, 0.0, 1.0);\n\t\tlet M = clamp(v2, 0.0, 1.0);\n\t\tlet Y = clamp(v3, 0.0, 1.0);\n\t\tlet K = clamp(v4, 0.0, 1.0);\n\t\tlet r = (1.0 - C) * (1.0 - K);\n\t\tlet g = (1.0 - M) * (1.0 - K);\n\t\tlet b = (1.0 - Y) * (1.0 - K);\n\t\treturn vec4<f32>(clamp(r, 0.0, 1.0), clamp(g, 0.0, 1.0), clamp(b, 0.0, 1.0), 1.0);\n\t} else { // LAB\n\t\tlet L_norm = clamp(v1, 0.0, 1.0);\n\t\tlet a_norm = clamp(v2, 0.0, 1.0);\n\t\tlet b_norm = clamp(v3, 0.0, 1.0);\n\n\t\tlet L_star = L_norm * 100.0;\n\t\tlet a_star = a_norm * 255.0 - 128.0;\n\t\tlet b_star = b_norm * 255.0 - 128.0;\n\n\t\tlet fy = (L_star + 16.0) / 116.0;\n\t\tlet fx = fy + a_star / 500.0;\n\t\tlet fz = fy - b_star / 200.0;\n\n\t\tlet x = inv_lab_f(fx);\n\t\tlet y = inv_lab_f(fy);\n\t\tlet z = inv_lab_f(fz);\n\n\t\tlet X = x * 0.95047;\n\t\tlet Y = y * 1.00000;\n\t\tlet Z = z * 1.08883;\n\n\t\tlet lr = 3.2404542 * X - 1.5371385 * Y - 0.4985314 * Z;\n\t\tlet lg = -0.9692660 * X + 1.8760108 * Y + 0.0415560 * Z;\n\t\tlet lb = 0.0556434 * X - 0.2040259 * Y + 1.0572252 * Z;\n\n\t\treturn vec4<f32>(lin2srgb(lr), lin2srgb(lg), lin2srgb(lb), clamp(v4, 0.0, 1.0));\n\t}\n}\n`;\nconst deviceResourceCache = /* @__PURE__ */ new WeakMap();\nconst uniformData = new Float32Array(4);\nfunction getDeviceLayouts(device) {\n\tlet res = deviceResourceCache.get(device);\n\tif (res) return res;\n\tres = {\n\t\tuniformLayout: fragmentBindGroupLayout(device, [\"uniform\"]),\n\t\ttextureLayout: texturesLayout(device, 4),\n\t\tpipelineCache: /* @__PURE__ */ new Map()\n\t};\n\tdeviceResourceCache.set(device, res);\n\treturn res;\n}\nfunction getPipeline(device, format) {\n\tconst resources = getDeviceLayouts(device);\n\tconst key = `merger_${format}`;\n\tlet pipeline = resources.pipelineCache.get(key);\n\tif (!pipeline) {\n\t\tconst module = device.createShaderModule({\n\t\t\tlabel: \"ChannelMergerShader\",\n\t\t\tcode: WGSL_CHANNEL_MERGER\n\t\t});\n\t\tconst layout = device.createPipelineLayout({ bindGroupLayouts: [resources.uniformLayout, resources.textureLayout] });\n\t\tpipeline = device.createRenderPipeline({\n\t\t\tlabel: \"ChannelMergerPipeline\",\n\t\t\tlayout,\n\t\t\tvertex: {\n\t\t\t\tmodule,\n\t\t\t\tentryPoint: \"vs\"\n\t\t\t},\n\t\t\tfragment: {\n\t\t\t\tmodule,\n\t\t\t\tentryPoint: \"fs\",\n\t\t\t\ttargets: [{ format }]\n\t\t\t},\n\t\t\tprimitive: { topology: \"triangle-strip\" }\n\t\t});\n\t\tresources.pipelineCache.set(key, pipeline);\n\t}\n\treturn {\n\t\tpipeline,\n\t\tresources\n\t};\n}\nconst ChannelMergerWebGPURenderer = async (args) => {\n\tconst { ctx, encoder, pass, targetTexture, targetWidth, targetHeight, props, drawChild } = args;\n\tconst op = props.virtualMedia?.operation;\n\tif (op?.op !== \"ChannelMerger\" || !op) return;\n\tconst ch1Media = op.channel1Media ?? props.virtualMedia.children?.[0];\n\tconst ch2Media = op.channel2Media;\n\tconst ch3Media = op.channel3Media;\n\tconst ch4Media = op.channel4Media;\n\tif (!ch1Media || !ch2Media || !ch3Media) return;\n\tpass.end();\n\tconst width = targetWidth;\n\tconst height = targetHeight;\n\tconst { texture: tex1, view: view1 } = await drawChildToTexture(args, ch1Media, { props: {\n\t\t...props,\n\t\tvirtualMedia: ch1Media,\n\t\trenderId: `${props.renderId}-ch1`\n\t} });\n\targs.pass.end();\n\tconst { texture: tex2, view: view2 } = await drawChildToTexture(args, ch2Media, {\n\t\tprops: {\n\t\t\t...props,\n\t\t\tvirtualMedia: ch2Media,\n\t\t\trenderId: `${props.renderId}-ch2`,\n\t\t\texcludeTextures: [...props.excludeTextures || [], tex1]\n\t\t},\n\t\texclude: [tex1]\n\t});\n\targs.pass.end();\n\tconst { texture: tex3, view: view3 } = await drawChildToTexture(args, ch3Media, {\n\t\tprops: {\n\t\t\t...props,\n\t\t\tvirtualMedia: ch3Media,\n\t\t\trenderId: `${props.renderId}-ch3`,\n\t\t\texcludeTextures: [\n\t\t\t\t...props.excludeTextures || [],\n\t\t\t\ttex1,\n\t\t\t\ttex2\n\t\t\t]\n\t\t},\n\t\texclude: [tex1, tex2]\n\t});\n\targs.pass.end();\n\tconst tex4 = ctx.renderer.getTemporaryTexture(width, height, [\n\t\t...props.excludeTextures || [],\n\t\ttargetTexture,\n\t\ttex1,\n\t\ttex2,\n\t\ttex3\n\t]);\n\tconst view4 = tex4.createView();\n\tctx.renderer.beginFrame(encoder, view4, {\n\t\tr: 0,\n\t\tg: 0,\n\t\tb: 0,\n\t\ta: 0\n\t}, width, height, \"clear\").end();\n\tconst hasCh4 = ch4Media ? 1 : 0;\n\tif (ch4Media) {\n\t\tctx.renderer.pushScissor({\n\t\t\tx: 0,\n\t\t\ty: 0,\n\t\t\twidth,\n\t\t\theight\n\t\t});\n\t\tctx.renderer.pushIdentity();\n\t\tawait drawChild(ch4Media, {\n\t\t\t...props,\n\t\t\tvirtualMedia: ch4Media,\n\t\t\trenderId: `${props.renderId}-ch4`,\n\t\t\texcludeTextures: [\n\t\t\t\t...props.excludeTextures || [],\n\t\t\t\ttex1,\n\t\t\t\ttex2,\n\t\t\t\ttex3,\n\t\t\t\ttex4\n\t\t\t]\n\t\t}, view4, tex4, width, height);\n\t\tctx.renderer.popTransform();\n\t\tctx.renderer.popScissor();\n\t\targs.pass.end();\n\t}\n\tconst colorSpace = op.colorSpace ?? \"RGBA\";\n\tconst defaultCh4 = op.defaultChannel4 ?? (colorSpace === \"CMYK\" ? 0 : 1);\n\tuniformData[0] = COLOR_SPACE_MAP[colorSpace] ?? 0;\n\tuniformData[1] = hasCh4;\n\tuniformData[2] = defaultCh4;\n\tuniformData[3] = 0;\n\tconst uniformBuffer = ctx.renderer.getTemporaryBuffer(uniformData);\n\tconst { pipeline, resources } = getPipeline(ctx.device, targetTexture.format);\n\tconst uniformBindGroup = ctx.device.createBindGroup({\n\t\tlayout: resources.uniformLayout,\n\t\tentries: [{\n\t\t\tbinding: 0,\n\t\t\tresource: { buffer: uniformBuffer }\n\t\t}]\n\t});\n\tconst sampler = ctx.renderer.samplerCache.getSampler(ctx.device);\n\tconst textureBindGroup = ctx.device.createBindGroup({\n\t\tlayout: resources.textureLayout,\n\t\tentries: [\n\t\t\t{\n\t\t\t\tbinding: 0,\n\t\t\t\tresource: view1\n\t\t\t},\n\t\t\t{\n\t\t\t\tbinding: 1,\n\t\t\t\tresource: view2\n\t\t\t},\n\t\t\t{\n\t\t\t\tbinding: 2,\n\t\t\t\tresource: view3\n\t\t\t},\n\t\t\t{\n\t\t\t\tbinding: 3,\n\t\t\t\tresource: view4\n\t\t\t},\n\t\t\t{\n\t\t\t\tbinding: 4,\n\t\t\t\tresource: sampler\n\t\t\t}\n\t\t]\n\t});\n\tconst finalPass = beginTargetPass(args);\n\tfinalPass.setPipeline(pipeline);\n\tfinalPass.setBindGroup(0, uniformBindGroup);\n\tfinalPass.setBindGroup(1, textureBindGroup);\n\tfinalPass.draw(4, 1, 0, 0);\n};\n\n//#endregion\n//#region src/renderers/index.ts\nvar renderers_default = defineRenderer({ WebGPURenderer: ChannelMergerWebGPURenderer });\n\n//#endregion\nexport { ChannelMergerWebGPURenderer as n, renderers_default as t };\n//# sourceMappingURL=renderers-CFuJvvvy.mjs.map"],"mappings":";;;;;;AAIA,MAAM,kBAAkB;CACvB,MAAM;CACN,MAAM;CACN,MAAM;CACN,KAAK;CACL;AACD,MAAM,sBAAsB;;;;;;;;;;;;;;EAc1B,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0FvB,MAAM,sCAAsC,IAAI,SAAS;AACzD,MAAM,cAAc,IAAI,aAAa,EAAE;AACvC,SAAS,iBAAiB,QAAQ;CACjC,IAAI,MAAM,oBAAoB,IAAI,OAAO;AACzC,KAAI,IAAK,QAAO;AAChB,OAAM;EACL,eAAe,wBAAwB,QAAQ,CAAC,UAAU,CAAC;EAC3D,eAAe,eAAe,QAAQ,EAAE;EACxC,+BAA+B,IAAI,KAAK;EACxC;AACD,qBAAoB,IAAI,QAAQ,IAAI;AACpC,QAAO;;AAER,SAAS,YAAY,QAAQ,QAAQ;CACpC,MAAM,YAAY,iBAAiB,OAAO;CAC1C,MAAM,MAAM,UAAU;CACtB,IAAI,WAAW,UAAU,cAAc,IAAI,IAAI;AAC/C,KAAI,CAAC,UAAU;EACd,MAAM,SAAS,OAAO,mBAAmB;GACxC,OAAO;GACP,MAAM;GACN,CAAC;EACF,MAAM,SAAS,OAAO,qBAAqB,EAAE,kBAAkB,CAAC,UAAU,eAAe,UAAU,cAAc,EAAE,CAAC;AACpH,aAAW,OAAO,qBAAqB;GACtC,OAAO;GACP;GACA,QAAQ;IACP;IACA,YAAY;IACZ;GACD,UAAU;IACT;IACA,YAAY;IACZ,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB;GACD,WAAW,EAAE,UAAU,kBAAkB;GACzC,CAAC;AACF,YAAU,cAAc,IAAI,KAAK,SAAS;;AAE3C,QAAO;EACN;EACA;EACA;;AAEF,MAAM,8BAA8B,OAAO,SAAS;CACnD,MAAM,EAAE,KAAK,SAAS,MAAM,eAAe,aAAa,cAAc,OAAO,cAAc;CAC3F,MAAM,KAAK,MAAM,cAAc;AAC/B,KAAI,IAAI,OAAO,mBAAmB,CAAC,GAAI;CACvC,MAAM,WAAW,GAAG,iBAAiB,MAAM,aAAa,WAAW;CACnE,MAAM,WAAW,GAAG;CACpB,MAAM,WAAW,GAAG;CACpB,MAAM,WAAW,GAAG;AACpB,KAAI,CAAC,YAAY,CAAC,YAAY,CAAC,SAAU;AACzC,MAAK,KAAK;CACV,MAAM,QAAQ;CACd,MAAM,SAAS;CACf,MAAM,EAAE,SAAS,MAAM,MAAM,UAAU,MAAM,mBAAmB,MAAM,UAAU,EAAE,OAAO;EACxF,GAAG;EACH,cAAc;EACd,UAAU,GAAG,MAAM,SAAS;EAC5B,EAAE,CAAC;AACJ,MAAK,KAAK,KAAK;CACf,MAAM,EAAE,SAAS,MAAM,MAAM,UAAU,MAAM,mBAAmB,MAAM,UAAU;EAC/E,OAAO;GACN,GAAG;GACH,cAAc;GACd,UAAU,GAAG,MAAM,SAAS;GAC5B,iBAAiB,CAAC,GAAG,MAAM,mBAAmB,EAAE,EAAE,KAAK;GACvD;EACD,SAAS,CAAC,KAAK;EACf,CAAC;AACF,MAAK,KAAK,KAAK;CACf,MAAM,EAAE,SAAS,MAAM,MAAM,UAAU,MAAM,mBAAmB,MAAM,UAAU;EAC/E,OAAO;GACN,GAAG;GACH,cAAc;GACd,UAAU,GAAG,MAAM,SAAS;GAC5B,iBAAiB;IAChB,GAAG,MAAM,mBAAmB,EAAE;IAC9B;IACA;IACA;GACD;EACD,SAAS,CAAC,MAAM,KAAK;EACrB,CAAC;AACF,MAAK,KAAK,KAAK;CACf,MAAM,OAAO,IAAI,SAAS,oBAAoB,OAAO,QAAQ;EAC5D,GAAG,MAAM,mBAAmB,EAAE;EAC9B;EACA;EACA;EACA;EACA,CAAC;CACF,MAAM,QAAQ,KAAK,YAAY;AAC/B,KAAI,SAAS,WAAW,SAAS,OAAO;EACvC,GAAG;EACH,GAAG;EACH,GAAG;EACH,GAAG;EACH,EAAE,OAAO,QAAQ,QAAQ,CAAC,KAAK;CAChC,MAAM,SAAS,WAAW,IAAI;AAC9B,KAAI,UAAU;AACb,MAAI,SAAS,YAAY;GACxB,GAAG;GACH,GAAG;GACH;GACA;GACA,CAAC;AACF,MAAI,SAAS,cAAc;AAC3B,QAAM,UAAU,UAAU;GACzB,GAAG;GACH,cAAc;GACd,UAAU,GAAG,MAAM,SAAS;GAC5B,iBAAiB;IAChB,GAAG,MAAM,mBAAmB,EAAE;IAC9B;IACA;IACA;IACA;IACA;GACD,EAAE,OAAO,MAAM,OAAO,OAAO;AAC9B,MAAI,SAAS,cAAc;AAC3B,MAAI,SAAS,YAAY;AACzB,OAAK,KAAK,KAAK;;CAEhB,MAAM,aAAa,GAAG,cAAc;CACpC,MAAM,aAAa,GAAG,oBAAoB,eAAe,SAAS,IAAI;AACtE,aAAY,KAAK,gBAAgB,eAAe;AAChD,aAAY,KAAK;AACjB,aAAY,KAAK;AACjB,aAAY,KAAK;CACjB,MAAM,gBAAgB,IAAI,SAAS,mBAAmB,YAAY;CAClE,MAAM,EAAE,UAAU,cAAc,YAAY,IAAI,QAAQ,cAAc,OAAO;CAC7E,MAAM,mBAAmB,IAAI,OAAO,gBAAgB;EACnD,QAAQ,UAAU;EAClB,SAAS,CAAC;GACT,SAAS;GACT,UAAU,EAAE,QAAQ,eAAe;GACnC,CAAC;EACF,CAAC;CACF,MAAM,UAAU,IAAI,SAAS,aAAa,WAAW,IAAI,OAAO;CAChE,MAAM,mBAAmB,IAAI,OAAO,gBAAgB;EACnD,QAAQ,UAAU;EAClB,SAAS;GACR;IACC,SAAS;IACT,UAAU;IACV;GACD;IACC,SAAS;IACT,UAAU;IACV;GACD;IACC,SAAS;IACT,UAAU;IACV;GACD;IACC,SAAS;IACT,UAAU;IACV;GACD;IACC,SAAS;IACT,UAAU;IACV;GACD;EACD,CAAC;CACF,MAAM,YAAY,gBAAgB,KAAK;AACvC,WAAU,YAAY,SAAS;AAC/B,WAAU,aAAa,GAAG,iBAAiB;AAC3C,WAAU,aAAa,GAAG,iBAAiB;AAC3C,WAAU,KAAK,GAAG,GAAG,GAAG,EAAE;;AAK3B,IAAI,oBAAoB,eAAe,EAAE,gBAAgB,6BAA6B,CAAC"}
1
+ {"version":3,"file":"renderer-RzkU_O1i.mjs","names":[],"sources":["../../../nodes/node-channel-merger/dist/renderers-CFuJvvvy.mjs"],"sourcesContent":["import { defineRenderer } from \"@framefields/node-sdk/renderer\";\nimport { FULLSCREEN_QUAD_WGSL, beginTargetPass, drawChildToTexture, fragmentBindGroupLayout, texturesLayout } from \"@framefields/node-sdk/gpu\";\n\n//#region src/renderers/webgpu-renderer.ts\nconst COLOR_SPACE_MAP = {\n\tRGBA: 0,\n\tHSLA: 1,\n\tCMYK: 2,\n\tLAB: 3\n};\nconst WGSL_CHANNEL_MERGER = `\nstruct MergerUniforms {\n\tcolorSpace : f32, // 0=RGBA, 1=HSLA, 2=CMYK, 3=LAB\n\thasCh4 : f32, // 0 or 1\n\tdefaultCh4 : f32, // fallback value (1.0 for alpha, 0.0 for CMYK black)\n\t_pad0 : f32,\n};\n\n@group(0) @binding(0) var<uniform> u : MergerUniforms;\n@group(1) @binding(0) var tex1 : texture_2d<f32>;\n@group(1) @binding(1) var tex2 : texture_2d<f32>;\n@group(1) @binding(2) var tex3 : texture_2d<f32>;\n@group(1) @binding(3) var tex4 : texture_2d<f32>;\n@group(1) @binding(4) var samp : sampler;\n${FULLSCREEN_QUAD_WGSL}\n\nfn hue2rgb(p: f32, q: f32, t_in: f32) -> f32 {\n\tvar t = t_in;\n\tif (t < 0.0) { t = t + 1.0; }\n\tif (t > 1.0) { t = t - 1.0; }\n\tif (t < 1.0 / 6.0) { return p + (q - p) * 6.0 * t; }\n\tif (t < 1.0 / 2.0) { return q; }\n\tif (t < 2.0 / 3.0) { return p + (q - p) * (2.0 / 3.0 - t) * 6.0; }\n\treturn p;\n}\n\nfn hsl2rgb(h: f32, s: f32, l: f32) -> vec3<f32> {\n\tif (s <= 0.00001) {\n\t\treturn vec3<f32>(l, l, l);\n\t}\n\tlet q = select(l + s - l * s, l * (1.0 + s), l < 0.5);\n\tlet p = 2.0 * l - q;\n\tlet r = hue2rgb(p, q, h + 1.0 / 3.0);\n\tlet g = hue2rgb(p, q, h);\n\tlet b = hue2rgb(p, q, h - 1.0 / 3.0);\n\treturn vec3<f32>(clamp(r, 0.0, 1.0), clamp(g, 0.0, 1.0), clamp(b, 0.0, 1.0));\n}\n\nfn inv_lab_f(t: f32) -> f32 {\n\tlet t3 = t * t * t;\n\treturn select((t - 16.0 / 116.0) / 7.787, t3, t3 > 0.008856);\n}\n\nfn lin2srgb(v: f32) -> f32 {\n\tlet c = clamp(v, 0.0, 1.0);\n\treturn select(c * 12.92, 1.055 * pow(c, 1.0 / 2.4) - 0.055, c > 0.0031308);\n}\n\n@fragment fn fs(in: VSOut) -> @location(0) vec4<f32> {\n\tlet c1 = textureSample(tex1, samp, in.uv);\n\tlet c2 = textureSample(tex2, samp, in.uv);\n\tlet c3 = textureSample(tex3, samp, in.uv);\n\tlet c4 = textureSample(tex4, samp, in.uv);\n\n\tlet v1 = c1.r;\n\tlet v2 = c2.r;\n\tlet v3 = c3.r;\n\tlet v4 = select(u.defaultCh4, c4.r, u.hasCh4 > 0.5);\n\n\tlet cs = u32(u.colorSpace + 0.5);\n\n\tif (cs == 0u) { // RGBA\n\t\treturn vec4<f32>(clamp(v1, 0.0, 1.0), clamp(v2, 0.0, 1.0), clamp(v3, 0.0, 1.0), clamp(v4, 0.0, 1.0));\n\t} else if (cs == 1u) { // HSLA\n\t\tlet rgb = hsl2rgb(fract(v1), clamp(v2, 0.0, 1.0), clamp(v3, 0.0, 1.0));\n\t\treturn vec4<f32>(rgb, clamp(v4, 0.0, 1.0));\n\t} else if (cs == 2u) { // CMYK\n\t\tlet C = clamp(v1, 0.0, 1.0);\n\t\tlet M = clamp(v2, 0.0, 1.0);\n\t\tlet Y = clamp(v3, 0.0, 1.0);\n\t\tlet K = clamp(v4, 0.0, 1.0);\n\t\tlet r = (1.0 - C) * (1.0 - K);\n\t\tlet g = (1.0 - M) * (1.0 - K);\n\t\tlet b = (1.0 - Y) * (1.0 - K);\n\t\treturn vec4<f32>(clamp(r, 0.0, 1.0), clamp(g, 0.0, 1.0), clamp(b, 0.0, 1.0), 1.0);\n\t} else { // LAB\n\t\tlet L_norm = clamp(v1, 0.0, 1.0);\n\t\tlet a_norm = clamp(v2, 0.0, 1.0);\n\t\tlet b_norm = clamp(v3, 0.0, 1.0);\n\n\t\tlet L_star = L_norm * 100.0;\n\t\tlet a_star = a_norm * 255.0 - 128.0;\n\t\tlet b_star = b_norm * 255.0 - 128.0;\n\n\t\tlet fy = (L_star + 16.0) / 116.0;\n\t\tlet fx = fy + a_star / 500.0;\n\t\tlet fz = fy - b_star / 200.0;\n\n\t\tlet x = inv_lab_f(fx);\n\t\tlet y = inv_lab_f(fy);\n\t\tlet z = inv_lab_f(fz);\n\n\t\tlet X = x * 0.95047;\n\t\tlet Y = y * 1.00000;\n\t\tlet Z = z * 1.08883;\n\n\t\tlet lr = 3.2404542 * X - 1.5371385 * Y - 0.4985314 * Z;\n\t\tlet lg = -0.9692660 * X + 1.8760108 * Y + 0.0415560 * Z;\n\t\tlet lb = 0.0556434 * X - 0.2040259 * Y + 1.0572252 * Z;\n\n\t\treturn vec4<f32>(lin2srgb(lr), lin2srgb(lg), lin2srgb(lb), clamp(v4, 0.0, 1.0));\n\t}\n}\n`;\nconst deviceResourceCache = /* @__PURE__ */ new WeakMap();\nconst uniformData = new Float32Array(4);\nfunction getDeviceLayouts(device) {\n\tlet res = deviceResourceCache.get(device);\n\tif (res) return res;\n\tres = {\n\t\tuniformLayout: fragmentBindGroupLayout(device, [\"uniform\"]),\n\t\ttextureLayout: texturesLayout(device, 4),\n\t\tpipelineCache: /* @__PURE__ */ new Map()\n\t};\n\tdeviceResourceCache.set(device, res);\n\treturn res;\n}\nfunction getPipeline(device, format) {\n\tconst resources = getDeviceLayouts(device);\n\tconst key = `merger_${format}`;\n\tlet pipeline = resources.pipelineCache.get(key);\n\tif (!pipeline) {\n\t\tconst module = device.createShaderModule({\n\t\t\tlabel: \"ChannelMergerShader\",\n\t\t\tcode: WGSL_CHANNEL_MERGER\n\t\t});\n\t\tconst layout = device.createPipelineLayout({ bindGroupLayouts: [resources.uniformLayout, resources.textureLayout] });\n\t\tpipeline = device.createRenderPipeline({\n\t\t\tlabel: \"ChannelMergerPipeline\",\n\t\t\tlayout,\n\t\t\tvertex: {\n\t\t\t\tmodule,\n\t\t\t\tentryPoint: \"vs\"\n\t\t\t},\n\t\t\tfragment: {\n\t\t\t\tmodule,\n\t\t\t\tentryPoint: \"fs\",\n\t\t\t\ttargets: [{ format }]\n\t\t\t},\n\t\t\tprimitive: { topology: \"triangle-strip\" }\n\t\t});\n\t\tresources.pipelineCache.set(key, pipeline);\n\t}\n\treturn {\n\t\tpipeline,\n\t\tresources\n\t};\n}\nconst ChannelMergerWebGPURenderer = async (args) => {\n\tconst { ctx, encoder, pass, targetTexture, targetWidth, targetHeight, props, drawChild } = args;\n\tconst op = props.virtualMedia?.operation;\n\tif (op?.op !== \"ChannelMerger\" || !op) return;\n\tconst ch1Media = op.channel1Media ?? props.virtualMedia.children?.[0];\n\tconst ch2Media = op.channel2Media;\n\tconst ch3Media = op.channel3Media;\n\tconst ch4Media = op.channel4Media;\n\tif (!ch1Media || !ch2Media || !ch3Media) return;\n\tpass.end();\n\tconst width = targetWidth;\n\tconst height = targetHeight;\n\tconst { texture: tex1, view: view1 } = await drawChildToTexture(args, ch1Media, { props: {\n\t\t...props,\n\t\tvirtualMedia: ch1Media,\n\t\trenderId: `${props.renderId}-ch1`\n\t} });\n\targs.pass.end();\n\tconst { texture: tex2, view: view2 } = await drawChildToTexture(args, ch2Media, {\n\t\tprops: {\n\t\t\t...props,\n\t\t\tvirtualMedia: ch2Media,\n\t\t\trenderId: `${props.renderId}-ch2`,\n\t\t\texcludeTextures: [...props.excludeTextures || [], tex1]\n\t\t},\n\t\texclude: [tex1]\n\t});\n\targs.pass.end();\n\tconst { texture: tex3, view: view3 } = await drawChildToTexture(args, ch3Media, {\n\t\tprops: {\n\t\t\t...props,\n\t\t\tvirtualMedia: ch3Media,\n\t\t\trenderId: `${props.renderId}-ch3`,\n\t\t\texcludeTextures: [\n\t\t\t\t...props.excludeTextures || [],\n\t\t\t\ttex1,\n\t\t\t\ttex2\n\t\t\t]\n\t\t},\n\t\texclude: [tex1, tex2]\n\t});\n\targs.pass.end();\n\tconst tex4 = ctx.renderer.getTemporaryTexture(width, height, [\n\t\t...props.excludeTextures || [],\n\t\ttargetTexture,\n\t\ttex1,\n\t\ttex2,\n\t\ttex3\n\t]);\n\tconst view4 = tex4.createView();\n\tctx.renderer.beginFrame(encoder, view4, {\n\t\tr: 0,\n\t\tg: 0,\n\t\tb: 0,\n\t\ta: 0\n\t}, width, height, \"clear\").end();\n\tconst hasCh4 = ch4Media ? 1 : 0;\n\tif (ch4Media) {\n\t\tctx.renderer.pushScissor({\n\t\t\tx: 0,\n\t\t\ty: 0,\n\t\t\twidth,\n\t\t\theight\n\t\t});\n\t\tctx.renderer.pushIdentity();\n\t\tawait drawChild(ch4Media, {\n\t\t\t...props,\n\t\t\tvirtualMedia: ch4Media,\n\t\t\trenderId: `${props.renderId}-ch4`,\n\t\t\texcludeTextures: [\n\t\t\t\t...props.excludeTextures || [],\n\t\t\t\ttex1,\n\t\t\t\ttex2,\n\t\t\t\ttex3,\n\t\t\t\ttex4\n\t\t\t]\n\t\t}, view4, tex4, width, height);\n\t\tctx.renderer.popTransform();\n\t\tctx.renderer.popScissor();\n\t\targs.pass.end();\n\t}\n\tconst colorSpace = op.colorSpace ?? \"RGBA\";\n\tconst defaultCh4 = op.defaultChannel4 ?? (colorSpace === \"CMYK\" ? 0 : 1);\n\tuniformData[0] = COLOR_SPACE_MAP[colorSpace] ?? 0;\n\tuniformData[1] = hasCh4;\n\tuniformData[2] = defaultCh4;\n\tuniformData[3] = 0;\n\tconst uniformBuffer = ctx.renderer.getTemporaryBuffer(uniformData);\n\tconst { pipeline, resources } = getPipeline(ctx.device, targetTexture.format);\n\tconst uniformBindGroup = ctx.device.createBindGroup({\n\t\tlayout: resources.uniformLayout,\n\t\tentries: [{\n\t\t\tbinding: 0,\n\t\t\tresource: { buffer: uniformBuffer }\n\t\t}]\n\t});\n\tconst sampler = ctx.renderer.samplerCache.getSampler(ctx.device);\n\tconst textureBindGroup = ctx.device.createBindGroup({\n\t\tlayout: resources.textureLayout,\n\t\tentries: [\n\t\t\t{\n\t\t\t\tbinding: 0,\n\t\t\t\tresource: view1\n\t\t\t},\n\t\t\t{\n\t\t\t\tbinding: 1,\n\t\t\t\tresource: view2\n\t\t\t},\n\t\t\t{\n\t\t\t\tbinding: 2,\n\t\t\t\tresource: view3\n\t\t\t},\n\t\t\t{\n\t\t\t\tbinding: 3,\n\t\t\t\tresource: view4\n\t\t\t},\n\t\t\t{\n\t\t\t\tbinding: 4,\n\t\t\t\tresource: sampler\n\t\t\t}\n\t\t]\n\t});\n\tconst finalPass = beginTargetPass(args);\n\tfinalPass.setPipeline(pipeline);\n\tfinalPass.setBindGroup(0, uniformBindGroup);\n\tfinalPass.setBindGroup(1, textureBindGroup);\n\tfinalPass.draw(4, 1, 0, 0);\n};\n\n//#endregion\n//#region src/renderers/index.ts\nvar renderers_default = defineRenderer({ WebGPURenderer: ChannelMergerWebGPURenderer });\n\n//#endregion\nexport { ChannelMergerWebGPURenderer as n, renderers_default as t };\n//# sourceMappingURL=renderers-CFuJvvvy.mjs.map"],"mappings":"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"}