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
@@ -573,7 +573,7 @@ var ProceduralSignalImpl = class {
573
573
  function signalBuilder(config) {
574
574
  return new ProceduralSignalImpl(config);
575
575
  }
576
- function sineSignal(options = {}) {
576
+ function periodicSignal(wave, options) {
577
577
  const min = options.min;
578
578
  const max = options.max;
579
579
  let amplitude = options.amplitude ?? 1;
@@ -595,35 +595,15 @@ function sineSignal(options = {}) {
595
595
  const freq = frequency ?? 1;
596
596
  angle = 2 * Math.PI * freq * ctx.time + phase;
597
597
  }
598
- return offset + amplitude * Math.sin(angle);
598
+ return offset + amplitude * wave(angle);
599
599
  }
600
600
  });
601
601
  }
602
+ function sineSignal(options = {}) {
603
+ return periodicSignal(Math.sin, options);
604
+ }
602
605
  function cosineSignal(options = {}) {
603
- const min = options.min;
604
- const max = options.max;
605
- let amplitude = options.amplitude ?? 1;
606
- let offset = options.offset ?? 0;
607
- if (min !== void 0 && max !== void 0) {
608
- offset = (min + max) / 2;
609
- amplitude = (max - min) / 2;
610
- } else if (min !== void 0) offset = min + amplitude;
611
- else if (max !== void 0) offset = max - amplitude;
612
- const period = options.period;
613
- const frequency = options.frequency;
614
- const phase = options.phase ?? 0;
615
- return signalBuilder({
616
- type: "custom",
617
- fn: (ctx) => {
618
- let angle;
619
- if (period !== void 0 && period > 0) angle = 2 * Math.PI * ctx.frame / period + phase;
620
- else {
621
- const freq = frequency ?? 1;
622
- angle = 2 * Math.PI * freq * ctx.time + phase;
623
- }
624
- return offset + amplitude * Math.cos(angle);
625
- }
626
- });
606
+ return periodicSignal(Math.cos, options);
627
607
  }
628
608
  const Signal = {
629
609
  state: signal,
@@ -1294,6 +1274,11 @@ const VideoTextPropsSchema = z.object({
1294
1274
  fontWeight: z.union([z.number(), z.string()]).optional(),
1295
1275
  fill: z.string().optional(),
1296
1276
  align: z.string().optional(),
1277
+ direction: z.enum([
1278
+ "ltr",
1279
+ "rtl",
1280
+ "auto"
1281
+ ]).optional(),
1297
1282
  verticalAlign: z.string().optional(),
1298
1283
  letterSpacing: z.number().optional(),
1299
1284
  lineHeight: z.number().optional(),
@@ -1725,6 +1710,655 @@ function computeVideoCropRenderProps(virtualMedia) {
1725
1710
  cropTranslatePercentageY: -(totalOffsetY / sourceH) * 100
1726
1711
  };
1727
1712
  }
1713
+ const NAMED = {
1714
+ transparent: "#00000000",
1715
+ black: "#000000",
1716
+ white: "#ffffff",
1717
+ red: "#ff0000",
1718
+ green: "#008000",
1719
+ lime: "#00ff00",
1720
+ blue: "#0000ff",
1721
+ yellow: "#ffff00",
1722
+ cyan: "#00ffff",
1723
+ aqua: "#00ffff",
1724
+ magenta: "#ff00ff",
1725
+ fuchsia: "#ff00ff",
1726
+ orange: "#ffa500",
1727
+ purple: "#800080",
1728
+ pink: "#ffc0cb",
1729
+ gray: "#808080",
1730
+ grey: "#808080",
1731
+ silver: "#c0c0c0",
1732
+ maroon: "#800000",
1733
+ navy: "#000080",
1734
+ teal: "#008080",
1735
+ olive: "#808000",
1736
+ gold: "#ffd700",
1737
+ coral: "#ff7f50",
1738
+ salmon: "#fa8072",
1739
+ crimson: "#dc143c",
1740
+ indigo: "#4b0082",
1741
+ violet: "#ee82ee",
1742
+ turquoise: "#40e0d0",
1743
+ tomato: "#ff6347",
1744
+ chocolate: "#d2691e",
1745
+ tan: "#d2b48c",
1746
+ beige: "#f5f5dc",
1747
+ ivory: "#fffff0",
1748
+ khaki: "#f0e68c",
1749
+ lavender: "#e6e6fa",
1750
+ mint: "#98ff98",
1751
+ skyblue: "#87ceeb",
1752
+ slategray: "#708090",
1753
+ dimgray: "#696969",
1754
+ lightgray: "#d3d3d3",
1755
+ darkgray: "#a9a9a9",
1756
+ whitesmoke: "#f5f5f5",
1757
+ hotpink: "#ff69b4",
1758
+ deeppink: "#ff1493",
1759
+ dodgerblue: "#1e90ff",
1760
+ royalblue: "#4169e1",
1761
+ steelblue: "#4682b4",
1762
+ midnightblue: "#191970",
1763
+ limegreen: "#32cd32",
1764
+ forestgreen: "#228b22",
1765
+ seagreen: "#2e8b57",
1766
+ darkorange: "#ff8c00",
1767
+ orangered: "#ff4500",
1768
+ firebrick: "#b22222",
1769
+ rebeccapurple: "#663399"
1770
+ };
1771
+ const clamp01 = (v) => v < 0 ? 0 : v > 1 ? 1 : v;
1772
+ function parseHex(h) {
1773
+ if (!/^[0-9a-f]+$/i.test(h)) return null;
1774
+ const x = (i, n) => parseInt(n === 1 ? h[i] + h[i] : h.slice(i, i + 2), 16) / 255;
1775
+ switch (h.length) {
1776
+ case 3: return [
1777
+ x(0, 1),
1778
+ x(1, 1),
1779
+ x(2, 1),
1780
+ 1
1781
+ ];
1782
+ case 4: return [
1783
+ x(0, 1),
1784
+ x(1, 1),
1785
+ x(2, 1),
1786
+ x(3, 1)
1787
+ ];
1788
+ case 6: return [
1789
+ x(0, 2),
1790
+ x(2, 2),
1791
+ x(4, 2),
1792
+ 1
1793
+ ];
1794
+ case 8: return [
1795
+ x(0, 2),
1796
+ x(2, 2),
1797
+ x(4, 2),
1798
+ x(6, 2)
1799
+ ];
1800
+ default: return null;
1801
+ }
1802
+ }
1803
+ /** Splits `rgb(1 2 3 / 50%)` or `rgb(1, 2, 3, .5)` into its argument tokens. */
1804
+ function fnArgs(body) {
1805
+ return body.replace(/\s*\/\s*/, " ").split(/[\s,]+/).filter(Boolean);
1806
+ }
1807
+ /** A number, or a percentage scaled so 100% = `pct100`. */
1808
+ function num(tok, pct100) {
1809
+ if (tok === void 0 || tok === "none") return 0;
1810
+ if (tok.endsWith("%")) return parseFloat(tok) / 100 * pct100;
1811
+ return parseFloat(tok);
1812
+ }
1813
+ function hue(tok) {
1814
+ if (tok === void 0) return 0;
1815
+ if (tok.endsWith("turn")) return parseFloat(tok) * 360;
1816
+ if (tok.endsWith("rad")) return parseFloat(tok) * 180 / Math.PI;
1817
+ return parseFloat(tok);
1818
+ }
1819
+ function alpha(tok) {
1820
+ return tok === void 0 ? 1 : clamp01(num(tok, 1));
1821
+ }
1822
+ function hslToRgb(h, s, l) {
1823
+ const a = s * Math.min(l, 1 - l);
1824
+ const f = (n) => {
1825
+ const k = (n + h / 30) % 12;
1826
+ return l - a * Math.max(-1, Math.min(k - 3, 9 - k, 1));
1827
+ };
1828
+ return [
1829
+ f(0),
1830
+ f(8),
1831
+ f(4)
1832
+ ];
1833
+ }
1834
+ const toLinear = (c) => c <= .04045 ? c / 12.92 : ((c + .055) / 1.055) ** 2.4;
1835
+ const toGamma = (c) => c <= .0031308 ? 12.92 * c : 1.055 * c ** (1 / 2.4) - .055;
1836
+ /** sRGB (0..1) → OKLab [L, a, b]. */
1837
+ function rgbToOklab(r, g, b) {
1838
+ const lr = toLinear(r);
1839
+ const lg = toLinear(g);
1840
+ const lb = toLinear(b);
1841
+ const l = Math.cbrt(.4122214708 * lr + .5363325363 * lg + .0514459929 * lb);
1842
+ const m = Math.cbrt(.2119034982 * lr + .6806995451 * lg + .1073969566 * lb);
1843
+ const s = Math.cbrt(.0883024619 * lr + .2817188376 * lg + .6299787005 * lb);
1844
+ return [
1845
+ .2104542553 * l + .793617785 * m - .0040720468 * s,
1846
+ 1.9779984951 * l - 2.428592205 * m + .4505937099 * s,
1847
+ .0259040371 * l + .7827717662 * m - .808675766 * s
1848
+ ];
1849
+ }
1850
+ /** OKLab → sRGB (0..1, clamped to gamut). */
1851
+ function oklabToRgb(L, a, b) {
1852
+ const l = (L + .3963377774 * a + .2158037573 * b) ** 3;
1853
+ const m = (L - .1055613458 * a - .0638541728 * b) ** 3;
1854
+ const s = (L - .0894841775 * a - 1.291485548 * b) ** 3;
1855
+ return [
1856
+ clamp01(toGamma(4.0767416621 * l - 3.3077115913 * m + .2309699292 * s)),
1857
+ clamp01(toGamma(-1.2684380046 * l + 2.6097574011 * m - .3413193965 * s)),
1858
+ clamp01(toGamma(-.0041960863 * l - .7034186147 * m + 1.707614701 * s))
1859
+ ];
1860
+ }
1861
+ /**
1862
+ * Parses any CSS color this engine accepts: hex (3/4/6/8), `rgb()`/`rgba()`,
1863
+ * `hsl()`/`hsla()`, `oklch()`, `oklab()` (comma or space syntax, `/ alpha`)
1864
+ * and common named colors. Returns `null` when the string is not a color.
1865
+ */
1866
+ function parseCssColor(input) {
1867
+ const s = input.trim().toLowerCase();
1868
+ if (!s) return null;
1869
+ if (s.startsWith("#")) return parseHex(s.slice(1));
1870
+ const named = NAMED[s];
1871
+ if (named) return parseHex(named.slice(1));
1872
+ const m = /^([a-z]+)\((.*)\)$/.exec(s);
1873
+ if (!m) return null;
1874
+ const [, fn, body] = m;
1875
+ const t = fnArgs(body);
1876
+ switch (fn) {
1877
+ case "rgb":
1878
+ case "rgba": return [
1879
+ clamp01(num(t[0], 255) / 255),
1880
+ clamp01(num(t[1], 255) / 255),
1881
+ clamp01(num(t[2], 255) / 255),
1882
+ alpha(t[3])
1883
+ ];
1884
+ case "hsl":
1885
+ case "hsla": {
1886
+ const [r, g, b] = hslToRgb((hue(t[0]) % 360 + 360) % 360, clamp01(num(t[1], 100) / 100), clamp01(num(t[2], 100) / 100));
1887
+ return [
1888
+ r,
1889
+ g,
1890
+ b,
1891
+ alpha(t[3])
1892
+ ];
1893
+ }
1894
+ case "oklch": {
1895
+ const L = num(t[0], 1);
1896
+ const C = num(t[1], .4);
1897
+ const H = hue(t[2]) * Math.PI / 180;
1898
+ const [r, g, b] = oklabToRgb(L, C * Math.cos(H), C * Math.sin(H));
1899
+ return [
1900
+ r,
1901
+ g,
1902
+ b,
1903
+ alpha(t[3])
1904
+ ];
1905
+ }
1906
+ case "oklab": {
1907
+ const [r, g, b] = oklabToRgb(num(t[0], 1), num(t[1], .4), num(t[2], .4));
1908
+ return [
1909
+ r,
1910
+ g,
1911
+ b,
1912
+ alpha(t[3])
1913
+ ];
1914
+ }
1915
+ default: return null;
1916
+ }
1917
+ }
1918
+ /** Formats straight sRGB as `#rrggbb` (or `#rrggbbaa` when translucent). */
1919
+ function formatHex([r, g, b, a]) {
1920
+ const h = (v) => Math.round(clamp01(v) * 255).toString(16).padStart(2, "0");
1921
+ return `#${h(r)}${h(g)}${h(b)}${a < .999 ? h(a) : ""}`;
1922
+ }
1923
+ const parseOr = (c) => parseCssColor(c) ?? [
1924
+ 0,
1925
+ 0,
1926
+ 0,
1927
+ 0
1928
+ ];
1929
+ /**
1930
+ * Mixes two colors perceptually (in OKLab), `t` = 0 → `a`, 1 → `b`.
1931
+ * Midpoints keep their lightness and saturation instead of going muddy
1932
+ * the way a plain sRGB lerp does.
1933
+ */
1934
+ function mixColors(a, b, t) {
1935
+ const ca = parseOr(a);
1936
+ const cb = parseOr(b);
1937
+ const pa = ca[3] < 1e-4 ? cb : ca;
1938
+ const pb = cb[3] < 1e-4 ? ca : cb;
1939
+ const la = rgbToOklab(pa[0], pa[1], pa[2]);
1940
+ const lb = rgbToOklab(pb[0], pb[1], pb[2]);
1941
+ const k = clamp01(t);
1942
+ const [r, g, bl] = oklabToRgb(la[0] + (lb[0] - la[0]) * k, la[1] + (lb[1] - la[1]) * k, la[2] + (lb[2] - la[2]) * k);
1943
+ return formatHex([
1944
+ r,
1945
+ g,
1946
+ bl,
1947
+ ca[3] + (cb[3] - ca[3]) * k
1948
+ ]);
1949
+ }
1950
+ /** Samples a multi-stop gradient (stops in any order) at `t` ∈ [0, 1]. */
1951
+ function sampleColorStops(stops, t) {
1952
+ const list = normalizeColorStops(stops);
1953
+ if (list.length === 0) return "#00000000";
1954
+ if (t <= list[0].offset) return list[0].color;
1955
+ for (let i = 1; i < list.length; i++) {
1956
+ const b = list[i];
1957
+ if (t <= b.offset) {
1958
+ const a = list[i - 1];
1959
+ const span = b.offset - a.offset;
1960
+ return mixColors(a.color, b.color, span > 0 ? (t - a.offset) / span : 1);
1961
+ }
1962
+ }
1963
+ return list[list.length - 1].color;
1964
+ }
1965
+ /** Bare color strings become evenly spaced stops; result is sorted by offset. */
1966
+ function normalizeColorStops(stops) {
1967
+ const n = stops.length;
1968
+ return stops.map((s, i) => typeof s === "string" ? {
1969
+ offset: n > 1 ? i / (n - 1) : 0,
1970
+ color: s
1971
+ } : {
1972
+ offset: clamp01(s.offset),
1973
+ color: s.color
1974
+ }).sort((a, b) => a.offset - b.offset);
1975
+ }
1976
+ function oklchOf(c) {
1977
+ const [r, g, b, a] = parseOr(c);
1978
+ const [L, A, B] = rgbToOklab(r, g, b);
1979
+ return [
1980
+ L,
1981
+ Math.hypot(A, B),
1982
+ Math.atan2(B, A) * 180 / Math.PI,
1983
+ a
1984
+ ];
1985
+ }
1986
+ function fromOklch(L, C, H, a) {
1987
+ const h = H * Math.PI / 180;
1988
+ const [r, g, b] = oklabToRgb(L, C * Math.cos(h), C * Math.sin(h));
1989
+ return formatHex([
1990
+ r,
1991
+ g,
1992
+ b,
1993
+ a
1994
+ ]);
1995
+ }
1996
+ /**
1997
+ * Authoring helpers for colors. Every function returns a hex string, so the
1998
+ * result drops straight into any color prop or keyframe.
1999
+ *
2000
+ * ```ts
2001
+ * Color.oklch(0.7, 0.15, 250) // perceptual: equal L reads equally bright
2002
+ * Color.hsl(212, 0.95, 0.74)
2003
+ * Color.mix("#ff5a1f", "#1f6bff", 0.5) // OKLab, no muddy midpoint
2004
+ * const wave = Color.ramp(["#3b82f6", "#8b5cf6", "#ec4899"]);
2005
+ * wave(0.5) // sample a gradient
2006
+ * Color.lighten("#ff5a1f", 0.1), Color.alpha("#000", 0.4)
2007
+ * ```
2008
+ */
2009
+ const Color = {
2010
+ parse: parseCssColor,
2011
+ hex(c) {
2012
+ return formatHex(parseOr(c));
2013
+ },
2014
+ rgb(r, g, b, a = 1) {
2015
+ return formatHex([
2016
+ r / 255,
2017
+ g / 255,
2018
+ b / 255,
2019
+ a
2020
+ ]);
2021
+ },
2022
+ hsl(h, s, l, a = 1) {
2023
+ const [r, g, b] = hslToRgb((h % 360 + 360) % 360, clamp01(s), clamp01(l));
2024
+ return formatHex([
2025
+ r,
2026
+ g,
2027
+ b,
2028
+ a
2029
+ ]);
2030
+ },
2031
+ oklch(l, c, h, a = 1) {
2032
+ return fromOklch(l, c, h, a);
2033
+ },
2034
+ mix: mixColors,
2035
+ ramp(stops) {
2036
+ const list = normalizeColorStops(stops);
2037
+ return (t) => sampleColorStops(list, t);
2038
+ },
2039
+ steps(stops, n) {
2040
+ const list = normalizeColorStops(stops);
2041
+ return Array.from({ length: n }, (_, i) => sampleColorStops(list, n > 1 ? i / (n - 1) : 0));
2042
+ },
2043
+ lighten(c, amount) {
2044
+ const [L, C, H, a] = oklchOf(c);
2045
+ return fromOklch(clamp01(L + amount), C, H, a);
2046
+ },
2047
+ darken(c, amount) {
2048
+ const [L, C, H, a] = oklchOf(c);
2049
+ return fromOklch(clamp01(L - amount), C, H, a);
2050
+ },
2051
+ saturate(c, factor) {
2052
+ const [L, C, H, a] = oklchOf(c);
2053
+ return fromOklch(L, C * factor, H, a);
2054
+ },
2055
+ rotate(c, degrees) {
2056
+ const [L, C, H, a] = oklchOf(c);
2057
+ return fromOklch(L, C, H + degrees, a);
2058
+ },
2059
+ alpha(c, a) {
2060
+ const [r, g, b] = parseOr(c);
2061
+ return formatHex([
2062
+ r,
2063
+ g,
2064
+ b,
2065
+ clamp01(a)
2066
+ ]);
2067
+ },
2068
+ contrast(a, b) {
2069
+ const lum = (c) => {
2070
+ const [r, g, bl] = parseOr(c);
2071
+ return .2126 * toLinear(r) + .7152 * toLinear(g) + .0722 * toLinear(bl);
2072
+ };
2073
+ const [hi, lo] = [lum(a), lum(b)].sort((x, y) => y - x);
2074
+ return (hi + .05) / (lo + .05);
2075
+ },
2076
+ readableOn(background) {
2077
+ return Color.contrast(background, "#ffffff") >= Color.contrast(background, "#000000") ? "#ffffff" : "#000000";
2078
+ }
2079
+ };
2080
+ /**
2081
+ * CSS gradients (`linear-gradient`, `radial-gradient`, `conic-gradient`) as
2082
+ * values for any `background` or shape `fill`, plus `Gradient` helpers that
2083
+ * write them. Colors blend perceptually (OKLab), not through muddy sRGB.
2084
+ */
2085
+ /** Gradients this renderer draws at most this many stops (extra ones are resampled). */
2086
+ const MAX_GRADIENT_STOPS = 8;
2087
+ const GRADIENT_RE = /^\s*(linear|radial|conic)-gradient\(\s*([\s\S]*)\)\s*$/i;
2088
+ function isCssGradient(value) {
2089
+ return typeof value === "string" && GRADIENT_RE.test(value);
2090
+ }
2091
+ /** Splits on commas that are not inside parentheses. */
2092
+ function splitTopLevel(s) {
2093
+ const out = [];
2094
+ let depth = 0;
2095
+ let cur = "";
2096
+ for (const ch of s) {
2097
+ if (ch === "(") depth++;
2098
+ if (ch === ")") depth--;
2099
+ if (ch === "," && depth === 0) {
2100
+ out.push(cur.trim());
2101
+ cur = "";
2102
+ } else cur += ch;
2103
+ }
2104
+ if (cur.trim()) out.push(cur.trim());
2105
+ return out;
2106
+ }
2107
+ function parseAngle(tok) {
2108
+ const m = /^(-?[\d.]+)(deg|turn|rad|grad)?$/i.exec(tok.trim());
2109
+ if (!m) return null;
2110
+ const v = parseFloat(m[1]);
2111
+ switch ((m[2] ?? "deg").toLowerCase()) {
2112
+ case "turn": return v * 360;
2113
+ case "rad": return v * 180 / Math.PI;
2114
+ case "grad": return v * .9;
2115
+ default: return v;
2116
+ }
2117
+ }
2118
+ const SIDE_ANGLES = {
2119
+ top: 0,
2120
+ right: 90,
2121
+ bottom: 180,
2122
+ left: 270,
2123
+ "top right": 45,
2124
+ "right top": 45,
2125
+ "bottom right": 135,
2126
+ "right bottom": 135,
2127
+ "bottom left": 225,
2128
+ "left bottom": 225,
2129
+ "top left": 315,
2130
+ "left top": 315
2131
+ };
2132
+ const POSITION_KEYWORDS = {
2133
+ left: 0,
2134
+ top: 0,
2135
+ center: .5,
2136
+ right: 1,
2137
+ bottom: 1
2138
+ };
2139
+ /** `at 30% 70%`, `at left top`, `at center`. */
2140
+ function parsePosition(tokens) {
2141
+ const vals = tokens.map((t) => t in POSITION_KEYWORDS ? {
2142
+ v: POSITION_KEYWORDS[t],
2143
+ axis: t === "top" || t === "bottom" ? "y" : t === "left" || t === "right" ? "x" : "any"
2144
+ } : {
2145
+ v: t.endsWith("%") ? parseFloat(t) / 100 : .5,
2146
+ axis: "any"
2147
+ });
2148
+ let x = .5;
2149
+ let y = .5;
2150
+ if (vals.length === 1) if (vals[0].axis === "y") y = vals[0].v;
2151
+ else x = vals[0].v;
2152
+ else if (vals.length >= 2) if (vals[0].axis === "y" || vals[1].axis === "x") {
2153
+ y = vals[0].v;
2154
+ x = vals[1].v;
2155
+ } else {
2156
+ x = vals[0].v;
2157
+ y = vals[1].v;
2158
+ }
2159
+ return [x, y];
2160
+ }
2161
+ /** Parses one `color [pos] [pos]` stop list entry; positions in 0..1 (or px later). */
2162
+ function parseStop(s) {
2163
+ const m = /^((?:[a-z]+\([^)]*\))|#[0-9a-f]+|[a-z]+)\s*(.*)$/i.exec(s.trim());
2164
+ if (!m) return null;
2165
+ const color = parseCssColor(m[1]);
2166
+ if (!color) return null;
2167
+ const positions = [];
2168
+ for (const p of m[2].split(/\s+/).filter(Boolean)) if (p.endsWith("%")) positions.push(parseFloat(p) / 100);
2169
+ else if (p === "0") positions.push(0);
2170
+ else if (/(deg|turn|rad|grad)$/i.test(p)) {
2171
+ const a = parseAngle(p);
2172
+ if (a !== null) positions.push(a / 360);
2173
+ }
2174
+ return {
2175
+ color,
2176
+ positions: positions.filter((p) => Number.isFinite(p))
2177
+ };
2178
+ }
2179
+ /** CSS stop fixup: clamp ascending, spread unpositioned stops evenly. */
2180
+ function resolveStops(raw) {
2181
+ const n = raw.length;
2182
+ if (n === 0) return [];
2183
+ const pos = raw.map((r) => r.position);
2184
+ if (pos[0] === void 0) pos[0] = 0;
2185
+ if (pos[n - 1] === void 0) pos[n - 1] = 1;
2186
+ let maxSoFar = -Infinity;
2187
+ for (let i = 0; i < n; i++) {
2188
+ const p = pos[i];
2189
+ if (p !== void 0) {
2190
+ pos[i] = Math.max(p, maxSoFar);
2191
+ maxSoFar = pos[i];
2192
+ }
2193
+ }
2194
+ for (let i = 1; i < n; i++) {
2195
+ if (pos[i] !== void 0) continue;
2196
+ let j = i;
2197
+ while (pos[j] === void 0) j++;
2198
+ const a = pos[i - 1];
2199
+ const b = pos[j];
2200
+ for (let k = i; k < j; k++) pos[k] = a + (b - a) * (k - i + 1) / (j - i + 1);
2201
+ }
2202
+ return raw.map((r, i) => ({
2203
+ offset: pos[i],
2204
+ color: r.color
2205
+ }));
2206
+ }
2207
+ const cache = /* @__PURE__ */ new Map();
2208
+ /** Parses a CSS gradient string; `null` when it is not one this engine draws. */
2209
+ function parseCssGradient(input) {
2210
+ const hit = cache.get(input);
2211
+ if (hit !== void 0) return hit;
2212
+ const result = parseUncached(input);
2213
+ if (cache.size > 512) cache.clear();
2214
+ cache.set(input, result);
2215
+ return result;
2216
+ }
2217
+ function parseUncached(input) {
2218
+ const m = GRADIENT_RE.exec(input);
2219
+ if (!m) return null;
2220
+ const type = m[1].toLowerCase();
2221
+ const parts = splitTopLevel(m[2]);
2222
+ const g = {
2223
+ type,
2224
+ angle: 180,
2225
+ center: [.5, .5],
2226
+ shape: "ellipse",
2227
+ from: 0,
2228
+ stops: []
2229
+ };
2230
+ const first = parts[0]?.toLowerCase().trim() ?? "";
2231
+ let consumedFirst = false;
2232
+ if (type === "linear") if (first.startsWith("to ")) {
2233
+ const side = first.slice(3).trim().replace(/\s+/g, " ");
2234
+ if (side in SIDE_ANGLES) {
2235
+ g.angle = SIDE_ANGLES[side];
2236
+ consumedFirst = true;
2237
+ }
2238
+ } else {
2239
+ const a = parseAngle(first);
2240
+ if (a !== null) {
2241
+ g.angle = a;
2242
+ consumedFirst = true;
2243
+ }
2244
+ }
2245
+ else {
2246
+ const tokens = first.split(/\s+/).filter(Boolean);
2247
+ const at = tokens.indexOf("at");
2248
+ const before = at >= 0 ? tokens.slice(0, at) : tokens;
2249
+ if (at >= 0 || before.some((t) => t === "circle" || t === "ellipse" || t === "from" || /^closest|^farthest/.test(t) || type === "radial" && /px$/.test(t))) {
2250
+ consumedFirst = true;
2251
+ if (at >= 0) g.center = parsePosition(tokens.slice(at + 1));
2252
+ if (type === "radial") {
2253
+ if (before.includes("circle")) g.shape = "circle";
2254
+ const px = before.filter((t) => /px$/.test(t)).map((t) => parseFloat(t));
2255
+ if (px.length === 1) {
2256
+ g.shape = "circle";
2257
+ g.radius = [px[0], px[0]];
2258
+ } else if (px.length >= 2) g.radius = [px[0], px[1]];
2259
+ } else {
2260
+ const f = before.indexOf("from");
2261
+ if (f >= 0 && before[f + 1]) g.from = parseAngle(before[f + 1]) ?? 0;
2262
+ }
2263
+ }
2264
+ }
2265
+ const raw = [];
2266
+ for (const p of consumedFirst ? parts.slice(1) : parts) {
2267
+ const stop = parseStop(p);
2268
+ if (!stop) return null;
2269
+ if (stop.positions.length === 0) raw.push({ color: stop.color });
2270
+ for (const pos of stop.positions) raw.push({
2271
+ color: stop.color,
2272
+ position: pos
2273
+ });
2274
+ }
2275
+ if (raw.length === 0) return null;
2276
+ if (raw.length === 1) raw.push({ ...raw[0] });
2277
+ g.stops = resolveStops(raw);
2278
+ return g;
2279
+ }
2280
+ /** Up to MAX_GRADIENT_STOPS stops: longer lists are resampled evenly. */
2281
+ function limitGradientStops(stops) {
2282
+ if (stops.length <= MAX_GRADIENT_STOPS) return stops;
2283
+ const out = [];
2284
+ const lo = stops[0].offset;
2285
+ const hi = stops[stops.length - 1].offset;
2286
+ for (let i = 0; i < MAX_GRADIENT_STOPS; i++) {
2287
+ const t = lo + (hi - lo) * i / (MAX_GRADIENT_STOPS - 1);
2288
+ let k = 1;
2289
+ while (k < stops.length - 1 && stops[k].offset < t) k++;
2290
+ const a = stops[k - 1];
2291
+ const b = stops[k];
2292
+ const span = b.offset - a.offset;
2293
+ const f = span > 0 ? Math.min(1, Math.max(0, (t - a.offset) / span)) : 1;
2294
+ out.push({
2295
+ offset: t,
2296
+ color: a.color.map((v, j) => v + (b.color[j] - v) * f)
2297
+ });
2298
+ }
2299
+ return out;
2300
+ }
2301
+ /**
2302
+ * Stops as OKLab + alpha for the GPU. A transparent stop borrows its
2303
+ * neighbor's color, so fading to `transparent` keeps the hue instead of
2304
+ * passing through grey (CSS premultiplied interpolation does the same).
2305
+ */
2306
+ function gradientStopsToOklab(stops) {
2307
+ const lab = stops.map((s) => rgbToOklab(s.color[0], s.color[1], s.color[2]));
2308
+ return stops.map((s, i) => {
2309
+ let src = lab[i];
2310
+ if (s.color[3] < 1e-4) {
2311
+ const prev = stops.slice(0, i).reverse().findIndex((p) => p.color[3] > 1e-4);
2312
+ const next = stops.slice(i + 1).findIndex((p) => p.color[3] > 1e-4);
2313
+ const pi = prev >= 0 ? i - 1 - prev : -1;
2314
+ const ni = next >= 0 ? i + 1 + next : -1;
2315
+ if (pi >= 0 && ni >= 0) {
2316
+ const a = lab[pi];
2317
+ const b = lab[ni];
2318
+ src = [
2319
+ (a[0] + b[0]) / 2,
2320
+ (a[1] + b[1]) / 2,
2321
+ (a[2] + b[2]) / 2
2322
+ ];
2323
+ } else if (pi >= 0) src = lab[pi];
2324
+ else if (ni >= 0) src = lab[ni];
2325
+ }
2326
+ return [
2327
+ src[0],
2328
+ src[1],
2329
+ src[2],
2330
+ s.color[3]
2331
+ ];
2332
+ });
2333
+ }
2334
+ function stopList(stops) {
2335
+ return stops.map((s) => typeof s === "string" ? s : `${s.color} ${Math.round(s.offset * 1e4) / 100}%`).join(", ");
2336
+ }
2337
+ /**
2338
+ * Writes CSS gradient strings for `background` / `fill`:
2339
+ *
2340
+ * ```ts
2341
+ * Layer.box({ background: Gradient.linear(["#ff5a1f", "#7c3aed"], 135) })
2342
+ * Layer.shape("circle", { fill: Gradient.radial(["#fff", "transparent"]) })
2343
+ * Gradient.conic(["red", "yellow", "lime", "aqua", "blue", "magenta", "red"])
2344
+ * ```
2345
+ * Plain strings work too: `"linear-gradient(to right, #000, #fff 80%)"`.
2346
+ */
2347
+ const Gradient = {
2348
+ linear(stops, angle = 180) {
2349
+ return `linear-gradient(${angle}deg, ${stopList(stops)})`;
2350
+ },
2351
+ radial(stops, options = {}) {
2352
+ const at = options.at ?? [.5, .5];
2353
+ return `radial-gradient(${options.radius !== void 0 ? `${options.radius}px` : options.circle ? "circle" : "ellipse"} at ${at[0] * 100}% ${at[1] * 100}%, ${stopList(stops)})`;
2354
+ },
2355
+ conic(stops, options = {}) {
2356
+ const at = options.at ?? [.5, .5];
2357
+ return `conic-gradient(from ${options.from ?? 0}deg at ${at[0] * 100}% ${at[1] * 100}%, ${stopList(stops)})`;
2358
+ },
2359
+ parse: parseCssGradient,
2360
+ is: isCssGradient
2361
+ };
1728
2362
  /**
1729
2363
  * Performs a deep comparison between two values to determine if they are equivalent.
1730
2364
  * Handles primitives, objects, arrays, Dates, and NaNs.
@@ -1900,5 +2534,5 @@ function extractSvgDimensions(buffer) {
1900
2534
  }
1901
2535
 
1902
2536
  //#endregion
1903
- export { VideoAnimationSchema as $, MediaSourceSchema as A, programmaticSignal as At, SignalChannelMetaSchema as B, signal as Bt, GeneratorSignalDataSchema as C, getLeafMediaType as Ct, MIME_TYPES as D, isEqual as Dt, JsonValueSchema as E, hasOnlySingleSource as Et, NodeResultSchema as F, resolveMediaMimeType as Ft, SingleOutputGenericSchema as G, timeSignal as Gt, SignalGateDataSchema as H, sineSignal as Ht, NodeVisualConfigSchema as I, resolveNumber as It, TextOperationSchema as J, SourceOperationSchema as K, updateClockSignals as Kt, OutputItemSchema as L, resolveParam as Lt, ModerationUnrefundableError as M, registerSignalDependency as Mt, MultiOutputGenericSchema as N, reportRenderDiagnostic as Nt, MediaMetadataSchema as O, isSignal as Ot, NodeMetadataSchema as P, resolveBoolean as Pt, TransitionTypeSchema as Q, ProgrammaticSignal as R, resolveString as Rt, FileDataSchema as S, getFingerprint as St, HandleTypeVal as T, getRenderFingerprint as Tt, SignalMathDataSchema as U, stampResult as Ut, SignalDataSchema as V, signalBuilder as Vt, SignalStatsSchema as W, takeRenderDiagnostics as Wt, TimelineTransformSchema as X, TimelineSegmentSchema as Y, TransitionSchema as Z, DataTypes as _, frameArraySignal as _t, BaseVideoLayerPropsSchema as a, VirtualMediaDataSchema as at, ExtendedLayerSchema as b, getActiveMediaMetadata as bt, COMPOSITOR_DEFAULTS as c, computeVideoCropRenderProps as ct, DATA_TYPE_EXTENSIONS as d, createOutputItemSchema as dt, VideoLayerTypeSchema as et, DEFAULT_DURATION_MS as f, createVirtualMedia as ft, DataTypeVal as g, findSourceAsset as gt, DataType as h, extractSvgDimensions as ht, BaseMediaOperationPropsSchema as i, VideoTimingPropsSchema as it, ModerationError as j, progressSignal as jt, MediaOperationSchema as k, isVirtualMediaData as kt, ConfigHandleSchema as l, computed as lt, DEFAULT_MEDIA_DIMENSION as m, deserializeSignalData as mt, AnyOutputUnionSchema as n, VideoStylePropsSchema as nt, CAPTION_LAYER_DEFAULTS as o, appendOperation as ot, DEFAULT_FPS as p, dataTypeColors as pt, TEXT_LAYER_DEFAULTS as q, AudioExtractorSignalDataSchema as r, VideoTextPropsSchema as rt, COMPOSITE_OPERATIONS as s, checkNodeResultCache as st, AnimationTypeSchema as t, VideoSpatialPropsSchema as tt, ConfigSchemaRegistry as u, cosineSignal as ut, Effect as v, frameSignal as vt, GlobalCompositeOperation as w, getMediaType as wt, FileAssetSchema as x, getFileDataMetadata as xt, ExportResultSchema as y, generateId as yt, Signal as z, serializeSignalData as zt };
1904
- //# sourceMappingURL=dist-B9Afsv83.mjs.map
2537
+ export { TimelineTransformSchema as $, serializeSignalData as $t, MIME_TYPES as A, gradientStopsToOklab as At, OutputItemSchema as B, parseCssColor as Bt, FileDataSchema as C, generateId as Ct, HandleTypeVal as D, getLeafMediaType as Dt, Gradient as E, getFingerprint as Et, ModerationUnrefundableError as F, isVirtualMediaData as Ft, SignalGateDataSchema as G, reportRenderDiagnostic as Gt, Signal as H, programmaticSignal as Ht, MultiOutputGenericSchema as I, limitGradientStops as It, SingleOutputGenericSchema as J, resolveNumber as Jt, SignalMathDataSchema as K, resolveBoolean as Kt, NodeMetadataSchema as L, mixColors as Lt, MediaOperationSchema as M, isCssGradient as Mt, MediaSourceSchema as N, isEqual as Nt, JsonValueSchema as O, getMediaType as Ot, ModerationError as P, isSignal as Pt, TimelineSegmentSchema as Q, sampleColorStops as Qt, NodeResultSchema as R, normalizeColorStops as Rt, FileAssetSchema as S, frameSignal as St, GlobalCompositeOperation as T, getFileDataMetadata as Tt, SignalChannelMetaSchema as U, progressSignal as Ut, ProgrammaticSignal as V, parseCssGradient as Vt, SignalDataSchema as W, registerSignalDependency as Wt, TEXT_LAYER_DEFAULTS as X, resolveString as Xt, SourceOperationSchema as Y, resolveParam as Yt, TextOperationSchema as Z, rgbToOklab as Zt, DataTypeVal as _, deserializeSignalData as _t, BaseVideoLayerPropsSchema as a, timeSignal as an, VideoStylePropsSchema as at, ExportResultSchema as b, formatHex as bt, COMPOSITOR_DEFAULTS as c, VirtualMediaDataSchema as ct, ConfigSchemaRegistry as d, computeVideoCropRenderProps as dt, signal as en, TransitionSchema as et, DATA_TYPE_EXTENSIONS as f, computed as ft, DataType as g, dataTypeColors as gt, DEFAULT_MEDIA_DIMENSION as h, createVirtualMedia as ht, BaseMediaOperationPropsSchema as i, takeRenderDiagnostics as in, VideoSpatialPropsSchema as it, MediaMetadataSchema as j, hasOnlySingleSource as jt, MAX_GRADIENT_STOPS as k, getRenderFingerprint as kt, Color as l, appendOperation as lt, DEFAULT_FPS as m, createOutputItemSchema as mt, AnyOutputUnionSchema as n, sineSignal as nn, VideoAnimationSchema as nt, CAPTION_LAYER_DEFAULTS as o, updateClockSignals as on, VideoTextPropsSchema as ot, DEFAULT_DURATION_MS as p, cosineSignal as pt, SignalStatsSchema as q, resolveMediaMimeType as qt, AudioExtractorSignalDataSchema as r, stampResult as rn, VideoLayerTypeSchema as rt, COMPOSITE_OPERATIONS as s, VideoTimingPropsSchema as st, AnimationTypeSchema as t, signalBuilder as tn, TransitionTypeSchema as tt, ConfigHandleSchema as u, checkNodeResultCache as ut, DataTypes as v, extractSvgDimensions as vt, GeneratorSignalDataSchema as w, getActiveMediaMetadata as wt, ExtendedLayerSchema as x, frameArraySignal as xt, Effect as y, findSourceAsset as yt, NodeVisualConfigSchema as z, oklabToRgb as zt };
2538
+ //# sourceMappingURL=dist-fjKpBYkc.mjs.map