framefields 2.0.11 → 2.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (564) hide show
  1. package/README.md +22 -5
  2. package/dist/audio/index.d.mts +4 -4
  3. package/dist/audio/index.mjs +13 -12
  4. package/dist/{audio-BHanw8Jb.d.mts → audio-CfBpzxn9.d.mts} +3 -3
  5. package/dist/{audio-BHanw8Jb.d.mts.map → audio-CfBpzxn9.d.mts.map} +1 -1
  6. package/dist/{audio-TAvPwzLR.mjs → audio-DJeVoE8b.mjs} +1 -1
  7. package/dist/{audio-TAvPwzLR.mjs.map → audio-DJeVoE8b.mjs.map} +1 -1
  8. package/dist/{audio-COOMNwL5.mjs → audio-GGuQ_JI0.mjs} +4 -4
  9. package/dist/{audio-COOMNwL5.mjs.map → audio-GGuQ_JI0.mjs.map} +1 -1
  10. package/dist/{chunk-GMkBE123.mjs → chunk-GBe2k3y8.mjs} +1 -4
  11. package/dist/{dist-C_hjvkdN.mjs → dist-0QGroRYZ.mjs} +1 -1
  12. package/dist/{dist-C_hjvkdN.mjs.map → dist-0QGroRYZ.mjs.map} +1 -1
  13. package/dist/{dist-BYqNNwsl.mjs → dist-BY0bIWgr.mjs} +10 -2
  14. package/dist/dist-BY0bIWgr.mjs.map +1 -0
  15. package/dist/{dist-BAVZdFEJ.mjs → dist-Bb8BoMiw.mjs} +76 -626
  16. package/dist/dist-Bb8BoMiw.mjs.map +1 -0
  17. package/dist/{dist-Cxi68OuY.mjs → dist-DkuDAIrG.mjs} +26862 -25638
  18. package/dist/dist-DkuDAIrG.mjs.map +1 -0
  19. package/dist/{dist-CbG3QxDw.mjs → dist-fjKpBYkc.mjs} +12 -27
  20. package/dist/dist-fjKpBYkc.mjs.map +1 -0
  21. package/dist/effects/index.d.mts +4 -4
  22. package/dist/effects/index.mjs +36 -34
  23. package/dist/{effects-DzbjFhyA.mjs → effects-D6wFg2FR.mjs} +3 -3
  24. package/dist/{effects-DzbjFhyA.mjs.map → effects-D6wFg2FR.mjs.map} +1 -1
  25. package/dist/fonts/index.d.mts +1 -1
  26. package/dist/fonts/index.mjs +3 -1
  27. package/dist/{fonts-C0W6TgJk.mjs → fonts-CZMYtbP7.mjs} +24 -11
  28. package/dist/fonts-CZMYtbP7.mjs.map +1 -0
  29. package/dist/gpu-DG3gI88-.mjs +215 -0
  30. package/dist/gpu-DG3gI88-.mjs.map +1 -0
  31. package/dist/{index-DRZu3ezy.d.mts → index--0vVZDPM.d.mts} +3 -3
  32. package/dist/{index-DRZu3ezy.d.mts.map → index--0vVZDPM.d.mts.map} +1 -1
  33. package/dist/{index-DnWsbbuZ.d.mts → index-BcA8rep0.d.mts} +7 -2
  34. package/dist/index-BcA8rep0.d.mts.map +1 -0
  35. package/dist/{index-DGJp1d30.d.mts → index-BzQc812z.d.mts} +3 -3
  36. package/dist/{index-DGJp1d30.d.mts.map → index-BzQc812z.d.mts.map} +1 -1
  37. package/dist/{index-DDEPvMww.d.mts → index-Cpkzy5XR.d.mts} +3452 -1675
  38. package/dist/index-Cpkzy5XR.d.mts.map +1 -0
  39. package/dist/{index-CDoTrMs1.d.mts → index-D__HdInU.d.mts} +8 -8
  40. package/dist/{index-CDoTrMs1.d.mts.map → index-D__HdInU.d.mts.map} +1 -1
  41. package/dist/{index-CYGpSVsf.d.mts → index-DpWia6iH.d.mts} +4 -11
  42. package/dist/index-DpWia6iH.d.mts.map +1 -0
  43. package/dist/{index-9B8CJowc.d.mts → index-Fciq8bcC.d.mts} +10 -2
  44. package/dist/index-Fciq8bcC.d.mts.map +1 -0
  45. package/dist/index.d.mts +29 -1842
  46. package/dist/index.d.mts.map +1 -1
  47. package/dist/index.mjs +79 -66
  48. package/dist/index.mjs.map +1 -1
  49. package/dist/preview/index.d.mts +2 -2
  50. package/dist/preview/index.mjs +12 -13
  51. package/dist/{preview-BV2C4Fk6.mjs → preview--rOXbBxl.mjs} +3 -4
  52. package/dist/preview--rOXbBxl.mjs.map +1 -0
  53. package/dist/preview-engine/audio.mjs +1 -1
  54. package/dist/preview-engine/chunk-2MZXSWVT.mjs +118 -0
  55. package/dist/preview-engine/{chunk-Y6HWYPKX.mjs → chunk-3GNP7TJH.mjs} +3 -3
  56. package/dist/preview-engine/chunk-3UPI4EPV.mjs +69 -0
  57. package/dist/preview-engine/{chunk-6JW37VJA.mjs → chunk-5AUB4Y3L.mjs} +3 -23
  58. package/dist/preview-engine/chunk-5DOD2NVY.mjs +26 -0
  59. package/dist/preview-engine/chunk-5FC7GOWW.mjs +474 -0
  60. package/dist/preview-engine/chunk-5W4AFQP7.mjs +97 -0
  61. package/dist/preview-engine/chunk-63SFBHEH.mjs +1 -0
  62. package/dist/preview-engine/{chunk-25IW7NYO.mjs → chunk-7EPDVSCL.mjs} +1 -1
  63. package/dist/preview-engine/chunk-7EPIRODI.mjs +91 -0
  64. package/dist/preview-engine/chunk-7J2FWGVD.mjs +1 -0
  65. package/dist/preview-engine/chunk-AXHB4J37.mjs +147 -0
  66. package/dist/preview-engine/chunk-AXQZX3TC.mjs +450 -0
  67. package/dist/preview-engine/chunk-B43Z3J7J.mjs +5 -0
  68. package/dist/preview-engine/chunk-BWJS6G7R.mjs +314 -0
  69. package/dist/preview-engine/{chunk-ECPP3UG6.mjs → chunk-E3HC4GRQ.mjs} +3 -23
  70. package/dist/preview-engine/{chunk-AEK5BO3J.mjs → chunk-E4RAFHZM.mjs} +1 -1
  71. package/dist/preview-engine/chunk-ENKKLU7B.mjs +22 -0
  72. package/dist/preview-engine/{chunk-IYVN2QEL.mjs → chunk-FLPSWDX4.mjs} +1 -1
  73. package/dist/preview-engine/{chunk-24DXIKXL.mjs → chunk-FPRXK2WD.mjs} +2 -2
  74. package/dist/preview-engine/chunk-FU7AIAMM.mjs +88 -0
  75. package/dist/preview-engine/{chunk-CBM7B7EW.mjs → chunk-GMGGDADT.mjs} +1 -1
  76. package/dist/preview-engine/chunk-GSFN4WCH.mjs +62 -0
  77. package/dist/preview-engine/chunk-IQC2I5A5.mjs +1 -0
  78. package/dist/preview-engine/chunk-IUPDOATX.mjs +114 -0
  79. package/dist/preview-engine/{chunk-GHMCGTJ2.mjs → chunk-J2R5R7YY.mjs} +3 -23
  80. package/dist/preview-engine/chunk-JAJOZG5P.mjs +1 -0
  81. package/dist/preview-engine/{chunk-XLFYM7KH.mjs → chunk-K773AOF3.mjs} +2 -2
  82. package/dist/preview-engine/{chunk-RJUAM52F.mjs → chunk-L3CHEZMZ.mjs} +3 -23
  83. package/dist/preview-engine/chunk-LBRVQ4GE.mjs +84 -0
  84. package/dist/preview-engine/chunk-LGVEFPOG.mjs +3 -0
  85. package/dist/preview-engine/{chunk-AMBSW6OA.mjs → chunk-NEE3KQTX.mjs} +2 -2
  86. package/dist/preview-engine/chunk-NPD6W3RP.mjs +1 -0
  87. package/dist/preview-engine/{chunk-V6VU46ZG.mjs → chunk-O2RNIQXT.mjs} +1 -1
  88. package/dist/preview-engine/{server-utils-2FAIV45N.mjs → chunk-OCX5AD23.mjs} +1 -1
  89. package/dist/preview-engine/chunk-OJ2PKBXE.mjs +40 -0
  90. package/dist/preview-engine/chunk-OKH2VU2U.mjs +97 -0
  91. package/dist/preview-engine/chunk-PAQNDZQB.mjs +83 -0
  92. package/dist/preview-engine/chunk-PEWYB6WP.mjs +43 -0
  93. package/dist/preview-engine/{chunk-MDDF2GCF.mjs → chunk-PFA427ZC.mjs} +3 -23
  94. package/dist/preview-engine/chunk-PL4IH5V4.mjs +89 -0
  95. package/dist/preview-engine/chunk-PNB3ERR3.mjs +1 -0
  96. package/dist/preview-engine/{chunk-PQD5UPHG.mjs → chunk-PR2BUYCL.mjs} +1 -1
  97. package/dist/preview-engine/{chunk-QYRDQMNB.mjs → chunk-PXT52LEH.mjs} +3 -23
  98. package/dist/preview-engine/{chunk-ZSIJB76A.mjs → chunk-Q2DPNVIA.mjs} +2 -2
  99. package/dist/preview-engine/chunk-Q4Z54DQ7.mjs +1 -0
  100. package/dist/preview-engine/{chunk-6256GQFP.mjs → chunk-QY7MHWZW.mjs} +1 -1
  101. package/dist/preview-engine/chunk-RQLMW6MA.mjs +4 -0
  102. package/dist/preview-engine/chunk-RSMO7NPN.mjs +1 -0
  103. package/dist/preview-engine/chunk-RW2F3XLQ.mjs +90 -0
  104. package/dist/preview-engine/chunk-SGPRLTNF.mjs +52 -0
  105. package/dist/preview-engine/{chunk-Y6FEU4TV.mjs → chunk-SZW5J72T.mjs} +3 -23
  106. package/dist/preview-engine/{chunk-LIHUEYI5.mjs → chunk-VO2R3DWV.mjs} +2 -2
  107. package/dist/preview-engine/{chunk-BJKH76OM.mjs → chunk-VXS5SIEC.mjs} +3 -23
  108. package/dist/preview-engine/chunk-WFGJXCZT.mjs +53 -0
  109. package/dist/preview-engine/chunk-WH5Q2NFN.mjs +32 -0
  110. package/dist/preview-engine/chunk-WSIURGP2.mjs +121 -0
  111. package/dist/preview-engine/{chunk-AWTH2WZO.mjs → chunk-WUKH7BD7.mjs} +1 -1
  112. package/dist/preview-engine/chunk-XC5WZNOY.mjs +1448 -0
  113. package/dist/preview-engine/chunk-YQZOGEPZ.mjs +186 -0
  114. package/dist/preview-engine/{chunk-D3TETPLI.mjs → chunk-ZH5MZQTZ.mjs} +1 -1
  115. package/dist/preview-engine/chunk-ZIIFTWDH.mjs +58 -0
  116. package/dist/preview-engine/{chunk-EQ4QZRXB.mjs → chunk-ZNL4W4DK.mjs} +2 -2
  117. package/dist/preview-engine/effects.mjs +1 -1
  118. package/dist/preview-engine/fonts.mjs +1 -1
  119. package/dist/preview-engine/framefields.mjs +127 -130
  120. package/dist/preview-engine/player.mjs +6 -6
  121. package/dist/preview-engine/renderers-2H7YEUTD.mjs +1 -0
  122. package/dist/preview-engine/renderers-2P6KXWEZ.mjs +1 -0
  123. package/dist/preview-engine/renderers-2SVWAB42.mjs +1 -0
  124. package/dist/preview-engine/renderers-3RC5FDWX.mjs +1 -0
  125. package/dist/preview-engine/renderers-3T7Q4SPP.mjs +1 -0
  126. package/dist/preview-engine/renderers-4DV4REGM.mjs +1 -0
  127. package/dist/preview-engine/renderers-57WDL6XN.mjs +1 -0
  128. package/dist/preview-engine/renderers-6WH7NZCC.mjs +1 -0
  129. package/dist/preview-engine/renderers-7JTNJE7M.mjs +1 -0
  130. package/dist/preview-engine/renderers-7VJN5L3Z.mjs +1 -0
  131. package/dist/preview-engine/{renderers-WLH4HRUE.mjs → renderers-A7VH3ON5.mjs} +1 -1
  132. package/dist/preview-engine/renderers-CQXQHOW2.mjs +1 -0
  133. package/dist/preview-engine/{renderers-2US2NIUG.mjs → renderers-D2EJULOJ.mjs} +3 -23
  134. package/dist/preview-engine/renderers-DXHJAMZR.mjs +1 -0
  135. package/dist/preview-engine/{renderers-W5CVDJVH.mjs → renderers-F55XFVMP.mjs} +1 -1
  136. package/dist/preview-engine/renderers-FWGMNPYB.mjs +1 -0
  137. package/dist/preview-engine/renderers-HXFRTIJD.mjs +1 -0
  138. package/dist/preview-engine/renderers-IWQ3V6AJ.mjs +1 -0
  139. package/dist/preview-engine/renderers-IXGM55XK.mjs +1 -0
  140. package/dist/preview-engine/renderers-KVHUVWSN.mjs +1 -0
  141. package/dist/preview-engine/renderers-KZWGSKRF.mjs +1 -0
  142. package/dist/preview-engine/renderers-LVDUZZ75.mjs +1 -0
  143. package/dist/preview-engine/renderers-M7R2ZJUP.mjs +1 -0
  144. package/dist/preview-engine/renderers-NWHS7N2L.mjs +1 -0
  145. package/dist/preview-engine/{renderers-CAUWP4XH.mjs → renderers-O2DZPBOJ.mjs} +3 -23
  146. package/dist/preview-engine/renderers-OT7D3BUA.mjs +1 -0
  147. package/dist/preview-engine/renderers-P4S7GL64.mjs +104 -0
  148. package/dist/preview-engine/renderers-PMOO7DLX.mjs +1 -0
  149. package/dist/preview-engine/renderers-Q4OFCMXI.mjs +1 -0
  150. package/dist/preview-engine/renderers-QCCPCH73.mjs +1 -0
  151. package/dist/preview-engine/renderers-RJO6H4FC.mjs +1 -0
  152. package/dist/preview-engine/renderers-RRXFJRGI.mjs +1 -0
  153. package/dist/preview-engine/renderers-SCJ6OKTB.mjs +1 -0
  154. package/dist/preview-engine/renderers-T4JMJXWL.mjs +1 -0
  155. package/dist/preview-engine/renderers-TAWT3ZSS.mjs +1 -0
  156. package/dist/preview-engine/{renderers-JQHUBWLL.mjs → renderers-TFZST6WW.mjs} +3 -23
  157. package/dist/preview-engine/renderers-UHTO6BQA.mjs +1 -0
  158. package/dist/preview-engine/renderers-UPKB5OLS.mjs +100 -0
  159. package/dist/preview-engine/renderers-UPTJJE5F.mjs +1 -0
  160. package/dist/preview-engine/renderers-VLMQR3DW.mjs +1 -0
  161. package/dist/preview-engine/renderers-WVTTRCVI.mjs +1 -0
  162. package/dist/preview-engine/renderers-X5PUIPU5.mjs +1 -0
  163. package/dist/preview-engine/renderers-XCMVZ2XG.mjs +35 -0
  164. package/dist/preview-engine/renderers-XHTMRXC5.mjs +1 -0
  165. package/dist/preview-engine/renderers-YDCDY3BR.mjs +1 -0
  166. package/dist/preview-engine/renderers-YECY2YFT.mjs +1 -0
  167. package/dist/preview-engine/renderers-YJNQ4B7B.mjs +1 -0
  168. package/dist/preview-engine/renderers-YMN6QXK7.mjs +1 -0
  169. package/dist/preview-engine/renderers-YZEVPHPQ.mjs +228 -0
  170. package/dist/preview-engine/renderers-Z7YQUFAY.mjs +1 -0
  171. package/dist/preview-engine/renderers-ZANPE3OK.mjs +1 -0
  172. package/dist/preview-engine/renderers-ZJTRANIX.mjs +1 -0
  173. package/dist/preview-engine/signals.mjs +1 -1
  174. package/dist/preview-engine/skia-canvas-QBXAOGPB.mjs +1 -0
  175. package/dist/{program-BmNKgzja.mjs → program-Cc5AsBHz.mjs} +93 -2335
  176. package/dist/program-Cc5AsBHz.mjs.map +1 -0
  177. package/dist/renderer/index.d.mts +2 -2
  178. package/dist/renderer/index.mjs +3 -4
  179. package/dist/renderer-1VSi7Vum.mjs +5 -0
  180. package/dist/renderer-4BlpUHQT.mjs +5 -0
  181. package/dist/{renderer-Bv21DbWy.mjs → renderer-9L0p8IT3.mjs} +3 -1
  182. package/dist/renderer-AzSX2-mZ.mjs +5 -0
  183. package/dist/renderer-B-cxK24t.mjs +5 -0
  184. package/dist/{renderer-DxTs4Iyi.mjs → renderer-B1Zn91xt.mjs} +40 -142
  185. package/dist/renderer-B1Zn91xt.mjs.map +1 -0
  186. package/dist/renderer-B5d5oM_D.mjs +5 -0
  187. package/dist/renderer-B8BdNjaN.mjs +5 -0
  188. package/dist/{renderer-Bhdf90Zq.mjs → renderer-BI5rvAyo.mjs} +51 -163
  189. package/dist/renderer-BI5rvAyo.mjs.map +1 -0
  190. package/dist/renderer-BKEfeg-4.mjs +5 -0
  191. package/dist/{renderer-CI7sG_cv.mjs → renderer-BKf1qDwL.mjs} +83 -266
  192. package/dist/renderer-BKf1qDwL.mjs.map +1 -0
  193. package/dist/renderer-BLLOkeFB.mjs +5 -0
  194. package/dist/renderer-BSitV56h.mjs +268 -0
  195. package/dist/renderer-BSitV56h.mjs.map +1 -0
  196. package/dist/renderer-BTvov1NH.mjs +5 -0
  197. package/dist/renderer-BVun05IK.mjs +5 -0
  198. package/dist/{renderer-B2ieylQ3.mjs → renderer-BWVsBB3t.mjs} +56 -167
  199. package/dist/renderer-BWVsBB3t.mjs.map +1 -0
  200. package/dist/{renderer-ChdLYS-G.mjs → renderer-BXQQxeNC.mjs} +20 -87
  201. package/dist/renderer-BXQQxeNC.mjs.map +1 -0
  202. package/dist/renderer-B_3h5nhy.mjs +5 -0
  203. package/dist/renderer-BaZjoFYK.mjs +5 -0
  204. package/dist/{renderer-CfC_aiew.mjs → renderer-BaaOR3Ao.mjs} +57 -192
  205. package/dist/renderer-BaaOR3Ao.mjs.map +1 -0
  206. package/dist/{renderer-bZU_ndxf.mjs → renderer-BajIOuZH.mjs} +2 -2
  207. package/dist/{renderer-bZU_ndxf.mjs.map → renderer-BajIOuZH.mjs.map} +1 -1
  208. package/dist/{renderer-CWTpc4ff.mjs → renderer-Bb8T5eRX.mjs} +76 -210
  209. package/dist/renderer-Bb8T5eRX.mjs.map +1 -0
  210. package/dist/{renderer-D2nCGcjv.mjs → renderer-Bc6J0iVG.mjs} +3 -3
  211. package/dist/{renderer-D2nCGcjv.mjs.map → renderer-Bc6J0iVG.mjs.map} +1 -1
  212. package/dist/renderer-BcApaCVe.mjs +5 -0
  213. package/dist/{renderer-D_1oDOCP.mjs → renderer-Bg7647VN.mjs} +14 -69
  214. package/dist/renderer-Bg7647VN.mjs.map +1 -0
  215. package/dist/{renderer-ho_jXJ0H.mjs → renderer-BhKIZDsm.mjs} +23 -117
  216. package/dist/renderer-BhKIZDsm.mjs.map +1 -0
  217. package/dist/{renderer-dncoIVdd.mjs → renderer-BhhSyHKF.mjs} +3 -1
  218. package/dist/{renderer-CXn5HAnK.mjs → renderer-Br9BOkQs.mjs} +10 -16
  219. package/dist/renderer-Br9BOkQs.mjs.map +1 -0
  220. package/dist/{renderer-BTdOMMEx.d.mts → renderer-Bs_f_App.d.mts} +2 -2
  221. package/dist/{renderer-BTdOMMEx.d.mts.map → renderer-Bs_f_App.d.mts.map} +1 -1
  222. package/dist/{renderer-DZGtBUCx.mjs → renderer-BygIYH8s.mjs} +35 -185
  223. package/dist/renderer-BygIYH8s.mjs.map +1 -0
  224. package/dist/{renderer-Bv6q84TU.mjs → renderer-C--Dqe-3.mjs} +61 -208
  225. package/dist/renderer-C--Dqe-3.mjs.map +1 -0
  226. package/dist/renderer-C14mKYCw.mjs +5 -0
  227. package/dist/{renderer-CnXW28b9.mjs → renderer-C27RfwXN.mjs} +85 -279
  228. package/dist/renderer-C27RfwXN.mjs.map +1 -0
  229. package/dist/{renderer-Dy0utCl7.mjs → renderer-C5caYAA3.mjs} +10 -17
  230. package/dist/renderer-C5caYAA3.mjs.map +1 -0
  231. package/dist/{renderer-Bfgd4N0O.mjs → renderer-C5zpaQed.mjs} +9 -16
  232. package/dist/renderer-C5zpaQed.mjs.map +1 -0
  233. package/dist/{renderer-cgxO2xN6.mjs → renderer-C7UZLOYk.mjs} +10 -17
  234. package/dist/renderer-C7UZLOYk.mjs.map +1 -0
  235. package/dist/{renderer-BJ1aTkZf.mjs → renderer-C92mwhZz.mjs} +99 -282
  236. package/dist/renderer-C92mwhZz.mjs.map +1 -0
  237. package/dist/{renderer-CepMDQ06.mjs → renderer-CAJe9eLS.mjs} +19 -106
  238. package/dist/renderer-CAJe9eLS.mjs.map +1 -0
  239. package/dist/renderer-CFqhAXkH.mjs +5 -0
  240. package/dist/renderer-CK-spD4j.mjs +5 -0
  241. package/dist/renderer-CLLzQTIk.mjs +5 -0
  242. package/dist/{renderer-CtyD_Xju.mjs → renderer-CMsjnZ0G.mjs} +59 -194
  243. package/dist/renderer-CMsjnZ0G.mjs.map +1 -0
  244. package/dist/renderer-COwa6xlF.mjs +5 -0
  245. package/dist/renderer-CQPuuoVf.mjs +6 -0
  246. package/dist/renderer-CRd-cDqZ.mjs +5 -0
  247. package/dist/renderer-CTVnQAUm.mjs +5 -0
  248. package/dist/renderer-CbiEBSGx.mjs +5 -0
  249. package/dist/renderer-Cl7PruQ1.mjs +5 -0
  250. package/dist/renderer-CmuGGUDR.mjs +5 -0
  251. package/dist/renderer-CoGP4Mvf.mjs +148 -0
  252. package/dist/renderer-CoGP4Mvf.mjs.map +1 -0
  253. package/dist/renderer-CoNRrfqx.mjs +5 -0
  254. package/dist/{renderer-BREIjsUU.mjs → renderer-CrAqu3Rg.mjs} +14 -40
  255. package/dist/renderer-CrAqu3Rg.mjs.map +1 -0
  256. package/dist/renderer-CvIGa0mE.mjs +5 -0
  257. package/dist/renderer-CwMDPv0p.mjs +5 -0
  258. package/dist/{renderer-BIIWCg_J.mjs → renderer-CydWqyf0.mjs} +11 -18
  259. package/dist/renderer-CydWqyf0.mjs.map +1 -0
  260. package/dist/{renderer-bsWnRNpJ.mjs → renderer-CzBQgGD2.mjs} +29 -98
  261. package/dist/renderer-CzBQgGD2.mjs.map +1 -0
  262. package/dist/{renderer-CdciwwMI.mjs → renderer-D0aZNkQE.mjs} +161 -457
  263. package/dist/renderer-D0aZNkQE.mjs.map +1 -0
  264. package/dist/{renderer-B8UaFNqb.mjs → renderer-D2BRlqof.mjs} +62 -209
  265. package/dist/renderer-D2BRlqof.mjs.map +1 -0
  266. package/dist/{renderer-B8-kzZdP.mjs → renderer-D2FFvxsq.mjs} +41 -140
  267. package/dist/renderer-D2FFvxsq.mjs.map +1 -0
  268. package/dist/{renderer-Ctk2zzfy.mjs → renderer-D8-zNjyz.mjs} +57 -197
  269. package/dist/renderer-D8-zNjyz.mjs.map +1 -0
  270. package/dist/{renderer-DML9qpmS.mjs → renderer-DDqwds9R.mjs} +52 -202
  271. package/dist/renderer-DDqwds9R.mjs.map +1 -0
  272. package/dist/{renderer-BSaYG8aw.mjs → renderer-DGtBOdst.mjs} +3 -1
  273. package/dist/{renderer-CzPWB0Ss.mjs → renderer-DKqG9Lek.mjs} +13 -45
  274. package/dist/renderer-DKqG9Lek.mjs.map +1 -0
  275. package/dist/renderer-DOHbhGPu.mjs +5 -0
  276. package/dist/renderer-DOmA6IKc.mjs +5 -0
  277. package/dist/{renderer-DirxsOjq.mjs → renderer-DUhXH5Tz.mjs} +80 -258
  278. package/dist/renderer-DUhXH5Tz.mjs.map +1 -0
  279. package/dist/{renderer-kwmlLQOO.mjs → renderer-DVnVnS3c.mjs} +4 -4
  280. package/dist/{renderer-kwmlLQOO.mjs.map → renderer-DVnVnS3c.mjs.map} +1 -1
  281. package/dist/{renderer-CaaOKMSd.mjs → renderer-DWEvQ-hQ.mjs} +63 -190
  282. package/dist/renderer-DWEvQ-hQ.mjs.map +1 -0
  283. package/dist/renderer-DX2qEJTL.mjs +2173 -0
  284. package/dist/renderer-DX2qEJTL.mjs.map +1 -0
  285. package/dist/{renderer-1VuQTY1Z.mjs → renderer-DX8aBDqR.mjs} +236 -96
  286. package/dist/renderer-DX8aBDqR.mjs.map +1 -0
  287. package/dist/{renderer-DEJwPRkR.mjs → renderer-DYIPWN_B.mjs} +15 -51
  288. package/dist/renderer-DYIPWN_B.mjs.map +1 -0
  289. package/dist/{renderer-Djlb4TLO.mjs → renderer-DZD2G76E.mjs} +8 -15
  290. package/dist/renderer-DZD2G76E.mjs.map +1 -0
  291. package/dist/{renderer-WSGuj_V6.mjs → renderer-Da06_9FZ.mjs} +4 -3
  292. package/dist/{renderer-WSGuj_V6.mjs.map → renderer-Da06_9FZ.mjs.map} +1 -1
  293. package/dist/{renderer-BM05sB8m.mjs → renderer-DkyXqrQ6.mjs} +11 -74
  294. package/dist/renderer-DkyXqrQ6.mjs.map +1 -0
  295. package/dist/renderer-DmCWc4JL.mjs +5 -0
  296. package/dist/{renderer-BDbTWSpP.mjs → renderer-Dno-fujw.mjs} +58 -234
  297. package/dist/renderer-Dno-fujw.mjs.map +1 -0
  298. package/dist/{renderer-D2XD4QYk.mjs → renderer-DoYdfDEA.mjs} +34 -147
  299. package/dist/renderer-DoYdfDEA.mjs.map +1 -0
  300. package/dist/{renderer-_uvdg48N.mjs → renderer-DqjITuT-.mjs} +24 -93
  301. package/dist/renderer-DqjITuT-.mjs.map +1 -0
  302. package/dist/renderer-DuuOlYIG.mjs +3 -0
  303. package/dist/{renderer-DIgsilTw.mjs → renderer-Dy-DBU0X.mjs} +5 -4
  304. package/dist/{renderer-DIgsilTw.mjs.map → renderer-Dy-DBU0X.mjs.map} +1 -1
  305. package/dist/{renderer-CpkiHRhh.mjs → renderer-DyzNM721.mjs} +17 -99
  306. package/dist/renderer-DyzNM721.mjs.map +1 -0
  307. package/dist/{renderer-C_TPMHiH.mjs → renderer-DzrM1KMN.mjs} +81 -221
  308. package/dist/renderer-DzrM1KMN.mjs.map +1 -0
  309. package/dist/{renderer-Bc04fivZ.mjs → renderer-FHyZn0em.mjs} +99 -287
  310. package/dist/renderer-FHyZn0em.mjs.map +1 -0
  311. package/dist/renderer-GSFP7v2z.mjs +3 -0
  312. package/dist/{renderer-DpGc-N3G.mjs → renderer-NXdm6HLb.mjs} +24 -104
  313. package/dist/renderer-NXdm6HLb.mjs.map +1 -0
  314. package/dist/renderer-OLaYikwi.mjs +5 -0
  315. package/dist/renderer-Q75RC5Uz.mjs +5 -0
  316. package/dist/renderer-T0LJ4Po3.mjs +5 -0
  317. package/dist/renderer-VuXt1hfq.mjs +5 -0
  318. package/dist/{renderer-BfAWZziM.mjs → renderer-_1xGBbxn.mjs} +58 -225
  319. package/dist/renderer-_1xGBbxn.mjs.map +1 -0
  320. package/dist/{renderer-B1YMwl2B.mjs → renderer-c4AorKyw.mjs} +3 -1
  321. package/dist/renderer-hY_2WLt3.mjs +5 -0
  322. package/dist/{renderer-BhZZEyFX.mjs → renderer-mp1NN5zk.mjs} +4 -4
  323. package/dist/{renderer-BhZZEyFX.mjs.map → renderer-mp1NN5zk.mjs.map} +1 -1
  324. package/dist/{renderer-D7zvPHKn.mjs → renderer-qsg-JMuN.mjs} +18 -28
  325. package/dist/renderer-qsg-JMuN.mjs.map +1 -0
  326. package/dist/{renderer-vqkKWqa5.mjs → renderer-timEC0Gl.mjs} +23 -107
  327. package/dist/renderer-timEC0Gl.mjs.map +1 -0
  328. package/dist/renderer-y4EqE06a.mjs +5 -0
  329. package/dist/{renderers-CP8CFWDs-DwQTx8S7.mjs → renderers-CP8CFWDs-CMYe4kvZ.mjs} +4 -4
  330. package/dist/{renderers-CP8CFWDs-DwQTx8S7.mjs.map → renderers-CP8CFWDs-CMYe4kvZ.mjs.map} +1 -1
  331. package/dist/signals/index.d.mts +6 -6
  332. package/dist/signals/index.mjs +8 -8
  333. package/dist/{signals-Bv1OweKd.mjs → signals-DGRs6ddH.mjs} +4 -4
  334. package/dist/{signals-Bv1OweKd.mjs.map → signals-DGRs6ddH.mjs.map} +1 -1
  335. package/package.json +55 -55
  336. package/dist/client-CwRhflHE.mjs +0 -66
  337. package/dist/client-CwRhflHE.mjs.map +0 -1
  338. package/dist/dist-BAVZdFEJ.mjs.map +0 -1
  339. package/dist/dist-BYqNNwsl.mjs.map +0 -1
  340. package/dist/dist-CbG3QxDw.mjs.map +0 -1
  341. package/dist/dist-Cxi68OuY.mjs.map +0 -1
  342. package/dist/dist-cjs--lfMLs3U.mjs +0 -66
  343. package/dist/dist-cjs--lfMLs3U.mjs.map +0 -1
  344. package/dist/dist-cjs--pxyGFw2.mjs +0 -43
  345. package/dist/dist-cjs--pxyGFw2.mjs.map +0 -1
  346. package/dist/dist-cjs-3pon9kTt.mjs +0 -6
  347. package/dist/dist-cjs-BDpO-TH_.mjs +0 -51
  348. package/dist/dist-cjs-BDpO-TH_.mjs.map +0 -1
  349. package/dist/dist-cjs-BiKQozdJ.mjs +0 -64
  350. package/dist/dist-cjs-BiKQozdJ.mjs.map +0 -1
  351. package/dist/dist-cjs-BmyyWYWv.mjs +0 -153
  352. package/dist/dist-cjs-BmyyWYWv.mjs.map +0 -1
  353. package/dist/dist-cjs-CND_ghfH.mjs +0 -98
  354. package/dist/dist-cjs-CND_ghfH.mjs.map +0 -1
  355. package/dist/dist-cjs-CQwmMllY.mjs +0 -137
  356. package/dist/dist-cjs-CQwmMllY.mjs.map +0 -1
  357. package/dist/dist-cjs-CgFzrgj8.mjs +0 -85
  358. package/dist/dist-cjs-CgFzrgj8.mjs.map +0 -1
  359. package/dist/dist-cjs-CsU2sZoX.mjs +0 -323
  360. package/dist/dist-cjs-CsU2sZoX.mjs.map +0 -1
  361. package/dist/dist-cjs-DJ8fcQEe.mjs +0 -9069
  362. package/dist/dist-cjs-DJ8fcQEe.mjs.map +0 -1
  363. package/dist/dist-cjs-DT2jJlcK.mjs +0 -181
  364. package/dist/dist-cjs-DT2jJlcK.mjs.map +0 -1
  365. package/dist/dist-cjs-DjzmP0-x.mjs +0 -1091
  366. package/dist/dist-cjs-DjzmP0-x.mjs.map +0 -1
  367. package/dist/dist-cjs-DzjrlfbE.mjs +0 -437
  368. package/dist/dist-cjs-DzjrlfbE.mjs.map +0 -1
  369. package/dist/dist-cjs-M-8QOgS_.mjs +0 -209
  370. package/dist/dist-cjs-M-8QOgS_.mjs.map +0 -1
  371. package/dist/dist-cjs-TsA8LFXC.mjs +0 -48
  372. package/dist/dist-cjs-TsA8LFXC.mjs.map +0 -1
  373. package/dist/dist-cjs-agQl9T8M.mjs +0 -5015
  374. package/dist/dist-cjs-agQl9T8M.mjs.map +0 -1
  375. package/dist/event-streams-BaNGaLxh.mjs +0 -204
  376. package/dist/event-streams-BaNGaLxh.mjs.map +0 -1
  377. package/dist/fonts-C0W6TgJk.mjs.map +0 -1
  378. package/dist/index-9B8CJowc.d.mts.map +0 -1
  379. package/dist/index-CYGpSVsf.d.mts.map +0 -1
  380. package/dist/index-DDEPvMww.d.mts.map +0 -1
  381. package/dist/index-DnWsbbuZ.d.mts.map +0 -1
  382. package/dist/package-XpCRbTOA.mjs +0 -6
  383. package/dist/package-XpCRbTOA.mjs.map +0 -1
  384. package/dist/preview-BV2C4Fk6.mjs.map +0 -1
  385. package/dist/preview-engine/chunk-36YGYLKD.mjs +0 -58
  386. package/dist/preview-engine/chunk-7O24H4YT.mjs +0 -117
  387. package/dist/preview-engine/chunk-AUFSM5KI.mjs +0 -141
  388. package/dist/preview-engine/chunk-BHFI3Y4T.mjs +0 -1
  389. package/dist/preview-engine/chunk-BQ65MU6H.mjs +0 -138
  390. package/dist/preview-engine/chunk-BWDARDO6.mjs +0 -117
  391. package/dist/preview-engine/chunk-DLXQDDIN.mjs +0 -46
  392. package/dist/preview-engine/chunk-EJGLUZMW.mjs +0 -1
  393. package/dist/preview-engine/chunk-FE6RSVKZ.mjs +0 -73
  394. package/dist/preview-engine/chunk-FGHOHCFG.mjs +0 -110
  395. package/dist/preview-engine/chunk-HPIULG7P.mjs +0 -111
  396. package/dist/preview-engine/chunk-HRIKNYPF.mjs +0 -60
  397. package/dist/preview-engine/chunk-IMV5SBQV.mjs +0 -1
  398. package/dist/preview-engine/chunk-JPXQPP6J.mjs +0 -1
  399. package/dist/preview-engine/chunk-K52S5DJX.mjs +0 -109
  400. package/dist/preview-engine/chunk-L3IEJZ5S.mjs +0 -474
  401. package/dist/preview-engine/chunk-M7NMFDJ3.mjs +0 -3
  402. package/dist/preview-engine/chunk-MJM3NFEC.mjs +0 -315
  403. package/dist/preview-engine/chunk-NFAGEP43.mjs +0 -1448
  404. package/dist/preview-engine/chunk-NRHSNPZV.mjs +0 -182
  405. package/dist/preview-engine/chunk-OWOSYNMF.mjs +0 -104
  406. package/dist/preview-engine/chunk-Q66QQI6N.mjs +0 -8
  407. package/dist/preview-engine/chunk-QGBSLNFI.mjs +0 -52
  408. package/dist/preview-engine/chunk-QM3XFEJN.mjs +0 -63
  409. package/dist/preview-engine/chunk-R3ZH7YF3.mjs +0 -89
  410. package/dist/preview-engine/chunk-R6YNSBKL.mjs +0 -108
  411. package/dist/preview-engine/chunk-S4CSX6K5.mjs +0 -610
  412. package/dist/preview-engine/chunk-SNYAHQ25.mjs +0 -186
  413. package/dist/preview-engine/chunk-SRT2OCQW.mjs +0 -1
  414. package/dist/preview-engine/chunk-SUUUYXXT.mjs +0 -1
  415. package/dist/preview-engine/chunk-T6COGNOW.mjs +0 -134
  416. package/dist/preview-engine/chunk-XFYXT76H.mjs +0 -52
  417. package/dist/preview-engine/chunk-XUM42I4R.mjs +0 -1
  418. package/dist/preview-engine/chunk-YITWSOG4.mjs +0 -103
  419. package/dist/preview-engine/chunk-ZDCA6NVT.mjs +0 -82
  420. package/dist/preview-engine/chunk-ZNGOAGAI.mjs +0 -1
  421. package/dist/preview-engine/renderers-27Q5X3U6.mjs +0 -1
  422. package/dist/preview-engine/renderers-4AHH6BHF.mjs +0 -1
  423. package/dist/preview-engine/renderers-5BV6JGTU.mjs +0 -248
  424. package/dist/preview-engine/renderers-6PRVCTYV.mjs +0 -1
  425. package/dist/preview-engine/renderers-76PQY2SO.mjs +0 -1
  426. package/dist/preview-engine/renderers-7X2W6QWX.mjs +0 -1
  427. package/dist/preview-engine/renderers-B52QT6MT.mjs +0 -55
  428. package/dist/preview-engine/renderers-BE6RVJSE.mjs +0 -1
  429. package/dist/preview-engine/renderers-BMM2BH56.mjs +0 -1
  430. package/dist/preview-engine/renderers-CHOGQHVQ.mjs +0 -1
  431. package/dist/preview-engine/renderers-CRKRWR2Y.mjs +0 -1
  432. package/dist/preview-engine/renderers-DEYDSGJX.mjs +0 -1
  433. package/dist/preview-engine/renderers-DZTNRCR7.mjs +0 -1
  434. package/dist/preview-engine/renderers-ELO3KWTK.mjs +0 -1
  435. package/dist/preview-engine/renderers-EOJMPPAQ.mjs +0 -1
  436. package/dist/preview-engine/renderers-F2KJNDWA.mjs +0 -124
  437. package/dist/preview-engine/renderers-FCV4COVB.mjs +0 -1
  438. package/dist/preview-engine/renderers-G5KQISVL.mjs +0 -1
  439. package/dist/preview-engine/renderers-GJSUN5HU.mjs +0 -1
  440. package/dist/preview-engine/renderers-GMX2ZQDG.mjs +0 -1
  441. package/dist/preview-engine/renderers-GXCRINGC.mjs +0 -1
  442. package/dist/preview-engine/renderers-IHKORHMT.mjs +0 -1
  443. package/dist/preview-engine/renderers-JA4SLMG3.mjs +0 -1
  444. package/dist/preview-engine/renderers-JLN77CFZ.mjs +0 -1
  445. package/dist/preview-engine/renderers-KBFW7B5F.mjs +0 -1
  446. package/dist/preview-engine/renderers-LJRJMFCR.mjs +0 -1
  447. package/dist/preview-engine/renderers-LPAPZ5QS.mjs +0 -1
  448. package/dist/preview-engine/renderers-NQUDQEHY.mjs +0 -1
  449. package/dist/preview-engine/renderers-NS3AIJVG.mjs +0 -1
  450. package/dist/preview-engine/renderers-NSY2SDIE.mjs +0 -1
  451. package/dist/preview-engine/renderers-PW4OJWHF.mjs +0 -120
  452. package/dist/preview-engine/renderers-PWLWOZY4.mjs +0 -1
  453. package/dist/preview-engine/renderers-Q3MD34JN.mjs +0 -1
  454. package/dist/preview-engine/renderers-RXGNA2Q7.mjs +0 -1
  455. package/dist/preview-engine/renderers-TVTQ2R74.mjs +0 -1
  456. package/dist/preview-engine/renderers-VTTGFO55.mjs +0 -1
  457. package/dist/preview-engine/renderers-W3VVM5HB.mjs +0 -1
  458. package/dist/preview-engine/renderers-WG7QBD4D.mjs +0 -1
  459. package/dist/preview-engine/renderers-WLLJFZTF.mjs +0 -1
  460. package/dist/preview-engine/renderers-WN4SYFCU.mjs +0 -1
  461. package/dist/preview-engine/renderers-WSMLLSWX.mjs +0 -1
  462. package/dist/preview-engine/renderers-XFBSGTHU.mjs +0 -1
  463. package/dist/preview-engine/renderers-XFC6ZPO5.mjs +0 -1
  464. package/dist/preview-engine/renderers-XUHRY3XH.mjs +0 -1
  465. package/dist/preview-engine/renderers-YAOB5XU6.mjs +0 -1
  466. package/dist/preview-engine/renderers-YTB4FOHT.mjs +0 -1
  467. package/dist/preview-engine/renderers-ZIMBODX6.mjs +0 -1
  468. package/dist/program-BmNKgzja.mjs.map +0 -1
  469. package/dist/renderer-1VuQTY1Z.mjs.map +0 -1
  470. package/dist/renderer-6oMSare3.mjs +0 -3
  471. package/dist/renderer-B1ComPb2.mjs +0 -3
  472. package/dist/renderer-B2XzjK0z.mjs +0 -3
  473. package/dist/renderer-B2ieylQ3.mjs.map +0 -1
  474. package/dist/renderer-B8-kzZdP.mjs.map +0 -1
  475. package/dist/renderer-B8UaFNqb.mjs.map +0 -1
  476. package/dist/renderer-BDbTWSpP.mjs.map +0 -1
  477. package/dist/renderer-BIIWCg_J.mjs.map +0 -1
  478. package/dist/renderer-BJ1aTkZf.mjs.map +0 -1
  479. package/dist/renderer-BM05sB8m.mjs.map +0 -1
  480. package/dist/renderer-BQ5Bz5D0.mjs +0 -3
  481. package/dist/renderer-BREIjsUU.mjs.map +0 -1
  482. package/dist/renderer-BTu2EVhF.mjs +0 -3
  483. package/dist/renderer-BZcn_iBl.mjs +0 -3
  484. package/dist/renderer-Bc04fivZ.mjs.map +0 -1
  485. package/dist/renderer-BfAWZziM.mjs.map +0 -1
  486. package/dist/renderer-BfJSUjPN.mjs +0 -3
  487. package/dist/renderer-Bfgd4N0O.mjs.map +0 -1
  488. package/dist/renderer-Bhdf90Zq.mjs.map +0 -1
  489. package/dist/renderer-Bp6sDMa6.mjs +0 -3
  490. package/dist/renderer-Bt7_sb_Y.mjs +0 -3
  491. package/dist/renderer-Bv6q84TU.mjs.map +0 -1
  492. package/dist/renderer-C-H680_l.mjs +0 -3
  493. package/dist/renderer-C606ZPUn.mjs +0 -3
  494. package/dist/renderer-C9jyKn1i.mjs +0 -3
  495. package/dist/renderer-CDLrNgfo.mjs +0 -3
  496. package/dist/renderer-CERfcxgv.mjs +0 -3
  497. package/dist/renderer-CG5PzNkv.mjs +0 -3
  498. package/dist/renderer-CI7sG_cv.mjs.map +0 -1
  499. package/dist/renderer-CPoIMVdk.mjs +0 -3
  500. package/dist/renderer-CQdVj2JS.mjs +0 -3
  501. package/dist/renderer-CQiTodg9.mjs +0 -337
  502. package/dist/renderer-CQiTodg9.mjs.map +0 -1
  503. package/dist/renderer-CWTpc4ff.mjs.map +0 -1
  504. package/dist/renderer-CXn5HAnK.mjs.map +0 -1
  505. package/dist/renderer-CZgB5st8.mjs +0 -3
  506. package/dist/renderer-C_TPMHiH.mjs.map +0 -1
  507. package/dist/renderer-Ca7L1EOp.mjs +0 -3
  508. package/dist/renderer-CaaOKMSd.mjs.map +0 -1
  509. package/dist/renderer-CdciwwMI.mjs.map +0 -1
  510. package/dist/renderer-CepMDQ06.mjs.map +0 -1
  511. package/dist/renderer-CfC_aiew.mjs.map +0 -1
  512. package/dist/renderer-ChdLYS-G.mjs.map +0 -1
  513. package/dist/renderer-CkykdR_D.mjs +0 -3
  514. package/dist/renderer-Cl6GkeHx.mjs +0 -3
  515. package/dist/renderer-ClcjrFyo.mjs +0 -3
  516. package/dist/renderer-CnXW28b9.mjs.map +0 -1
  517. package/dist/renderer-CpkiHRhh.mjs.map +0 -1
  518. package/dist/renderer-CtVkU_GA.mjs +0 -44
  519. package/dist/renderer-CtVkU_GA.mjs.map +0 -1
  520. package/dist/renderer-Ctk2zzfy.mjs.map +0 -1
  521. package/dist/renderer-CtyD_Xju.mjs.map +0 -1
  522. package/dist/renderer-CySUP_wk.mjs +0 -3
  523. package/dist/renderer-CzPWB0Ss.mjs.map +0 -1
  524. package/dist/renderer-D2XD4QYk.mjs.map +0 -1
  525. package/dist/renderer-D2l_Odyg.mjs +0 -3
  526. package/dist/renderer-D7zvPHKn.mjs.map +0 -1
  527. package/dist/renderer-D9NnIx7o.mjs +0 -3
  528. package/dist/renderer-DCPCYySt.mjs +0 -3
  529. package/dist/renderer-DEJwPRkR.mjs.map +0 -1
  530. package/dist/renderer-DIkpJEOZ.mjs +0 -3
  531. package/dist/renderer-DML9qpmS.mjs.map +0 -1
  532. package/dist/renderer-DNSXPkf_.mjs +0 -3
  533. package/dist/renderer-DP-CvZ_Z.mjs +0 -3
  534. package/dist/renderer-DZGtBUCx.mjs.map +0 -1
  535. package/dist/renderer-D_1oDOCP.mjs.map +0 -1
  536. package/dist/renderer-DeXb8R6h.mjs +0 -3
  537. package/dist/renderer-DezO-ZaP.mjs +0 -4
  538. package/dist/renderer-DhXe04fC.mjs +0 -3
  539. package/dist/renderer-DirxsOjq.mjs.map +0 -1
  540. package/dist/renderer-Djlb4TLO.mjs.map +0 -1
  541. package/dist/renderer-DnH3SI7w.mjs +0 -3
  542. package/dist/renderer-DpGc-N3G.mjs.map +0 -1
  543. package/dist/renderer-Dpw4oi33.mjs +0 -3
  544. package/dist/renderer-DxTs4Iyi.mjs.map +0 -1
  545. package/dist/renderer-Dy0utCl7.mjs.map +0 -1
  546. package/dist/renderer-Md-ytU0v.mjs +0 -3
  547. package/dist/renderer-RKsXlF_0.mjs +0 -23900
  548. package/dist/renderer-RKsXlF_0.mjs.map +0 -1
  549. package/dist/renderer-U-bhWO9Q.mjs +0 -3
  550. package/dist/renderer-_uvdg48N.mjs.map +0 -1
  551. package/dist/renderer-bsWnRNpJ.mjs.map +0 -1
  552. package/dist/renderer-cgxO2xN6.mjs.map +0 -1
  553. package/dist/renderer-d5-F_48R.mjs +0 -3
  554. package/dist/renderer-ho_jXJ0H.mjs.map +0 -1
  555. package/dist/renderer-vqkKWqa5.mjs.map +0 -1
  556. package/dist/renderer-zA5okHds.mjs +0 -3
  557. package/dist/signin-Db08vl-g.mjs +0 -865
  558. package/dist/signin-Db08vl-g.mjs.map +0 -1
  559. package/dist/sso-oidc-CpLz_lIu.mjs +0 -1051
  560. package/dist/sso-oidc-CpLz_lIu.mjs.map +0 -1
  561. package/dist/sts-BQefGuml.mjs +0 -6
  562. package/dist/sts-Dgl0kH-t.mjs +0 -1395
  563. package/dist/sts-Dgl0kH-t.mjs.map +0 -1
  564. /package/dist/{renderer-C2n-EHxg.mjs → renderer-B-BcgA6d.mjs} +0 -0
@@ -1,108 +1,4 @@
1
- import{A as sb,C as ic,D as oc,E as Vr,F as jr,G as sc,H as uc,I as lc,J as cc,K as dc,L as jn,M as mc,a as _l,b as Ul,c as X,d as et,e as Yl,f as Hl,g as Xl,h as ql,i as Zl,j as Kl,k as Jl,n as Ql,o as ec,p as ao,q as io,r as tc,s as nc,t as Jg,u as Qg,v as eb,w as rb,x as ab,y as ib,z as ob}from"./chunk-NFAGEP43.mjs";import{a as rc}from"./chunk-PIAJWALT.mjs";import{a as zr,b as no}from"./chunk-PJ3DVG45.mjs";import{a as ro,b as $l,d as Wl,e as tb,f as nb}from"./chunk-L3IEJZ5S.mjs";import{a as Vl}from"./chunk-LKYN3BM2.mjs";import"./chunk-JPXQPP6J.mjs";import{$ as xa,A as Zc,B as Kc,C as Jc,D as Qc,E as ea,F as dt,G as ta,H as na,I as ra,J as aa,K as ed,L as ia,M as oa,N as sa,O as ua,P as la,Q as ca,R as da,S as ma,T as pa,U as fa,V as ha,W as ga,X as ba,Y as sn,Z as mt,_ as ya,a as Pc,aa as va,b as Cc,c as Ac,d as Nc,e as Dc,f as Oc,g as Lc,h as Fc,i as Rc,j as Bc,k as Jr,l as Qr,m as Ic,n as Ec,o as _c,p as Uc,q as zc,r as Gc,s as Vc,t as jc,u as $c,v as Wc,w as Yc,x as Hc,y as Xc,z as qc}from"./chunk-6256GQFP.mjs";import"./chunk-ZDCA6NVT.mjs";import"./chunk-BWDARDO6.mjs";import"./chunk-7O24H4YT.mjs";import{A as Zg,B as Kg,C as oo,D as pc,E as fc,F as Yr,G as hc,H as gc,I as bc,J as yc,K as xc,L as vc,M as Hr,N as wc,O as Xr,P as qr,Q as Zr,R as on,a as Ji,b as bh,c as yh,d as xh,e as vh,f as wh,g as Oh,h as Lh,i as Fh,j as Rh,k as Bh,l as Ih,m as Eh,n as tg,o as ng,p as rg,q as ag,r as ig,s as og,t as sg,u as ug,v as lg,w as cg,x as vg,y as jg,z as qg}from"./chunk-Y6HWYPKX.mjs";import"./chunk-RJUAM52F.mjs";import"./chunk-ECPP3UG6.mjs";import"./chunk-DLXQDDIN.mjs";import"./chunk-HPIULG7P.mjs";import"./chunk-BJKH76OM.mjs";import"./chunk-YITWSOG4.mjs";import"./chunk-Y6FEU4TV.mjs";import"./chunk-R3ZH7YF3.mjs";import"./chunk-AWTH2WZO.mjs";import"./chunk-SNYAHQ25.mjs";import"./chunk-GHMCGTJ2.mjs";import"./chunk-AUFSM5KI.mjs";import"./chunk-FE6RSVKZ.mjs";import"./chunk-FGHOHCFG.mjs";import"./chunk-QYRDQMNB.mjs";import"./chunk-R6YNSBKL.mjs";import"./chunk-HRIKNYPF.mjs";import"./chunk-6JW37VJA.mjs";import"./chunk-QGBSLNFI.mjs";import{a as Sh,b as Mh}from"./chunk-YKMBRUAE.mjs";import"./chunk-XFYXT76H.mjs";import"./chunk-QM3XFEJN.mjs";import"./chunk-NRHSNPZV.mjs";import"./chunk-XUM42I4R.mjs";import{a as $r,b as Wr}from"./chunk-N4LHIPHZ.mjs";import"./chunk-OWOSYNMF.mjs";import{a as $g,b as Wg,c as Yg,d as Hg,e as Xg}from"./chunk-VXUJWPIK.mjs";import"./chunk-T6COGNOW.mjs";import"./chunk-BQ65MU6H.mjs";import"./chunk-S4CSX6K5.mjs";import"./chunk-XOEEGC4Z.mjs";import{i as _r}from"./chunk-XKO4RYKN.mjs";import"./chunk-K52S5DJX.mjs";import{a as _g,b as Ug,c as to,d as zg,e as Gg,f as Vg}from"./chunk-VRGREB3V.mjs";import"./chunk-IMV5SBQV.mjs";import{a as Lg,b as Fg,c as Ir,d as Rg,e as Bg,f as Ig,g as Eg,h as Er}from"./chunk-IQKIHFNZ.mjs";import{a as Gl}from"./chunk-EJGLUZMW.mjs";import{a as Mc,b as kc,c as Tc,d as Kr}from"./chunk-CURR5X7D.mjs";import"./chunk-V6VU46ZG.mjs";import"./chunk-24DXIKXL.mjs";import"./chunk-LIHUEYI5.mjs";import"./chunk-ZSIJB76A.mjs";import"./chunk-EQ4QZRXB.mjs";import"./chunk-AMBSW6OA.mjs";import"./chunk-XLFYM7KH.mjs";import"./chunk-D3TETPLI.mjs";import"./chunk-CBM7B7EW.mjs";import"./chunk-SUUUYXXT.mjs";import{a as Sc}from"./chunk-25IW7NYO.mjs";import"./chunk-MDDF2GCF.mjs";import{a as le}from"./chunk-IYVN2QEL.mjs";import{A as dg,B as mg,C as pg,D as fg,E as hg,F as gg,G as bg,H as yg,I as xg,a as s,c as kh,d as Th,e as Ph,f as Ch,g as Ah,h as Nh,i as Dh,j as _h,k as Uh,l as zh,m as Gh,n as Vh,o as jh,p as $h,q as Wh,r as Yh,s as Hh,t as Xh,u as qh,v as Zh,w as Kh,x as Jh,y as Qh,z as eg}from"./chunk-NQZKBFC6.mjs";import{b as zl}from"./chunk-CYY366IE.mjs";import"./chunk-PQD5UPHG.mjs";import{b as ac}from"./chunk-BHFI3Y4T.mjs";import{a as Il}from"./chunk-37EFVZWT.mjs";import"./chunk-4VOHF3FF.mjs";import{a as wg,b as Sg,c as Mg,d as kg,e as Tg,f as Pg,g as Cg,h as Qi,i as Ag,j as eo,k as Ng,l as Dg,m as Og}from"./chunk-24P6DAB3.mjs";import{e as Ur}from"./chunk-36YGYLKD.mjs";import{a as Lt,b as ih,c as oh,d as sh,e as uh,f as lh,g as ch,h as dh,i as Dl,j as Ol,k as mh,l as ph,m as fh,n as hh,o as gh,p as Ll,q as Fl,r as Rl,s as Bl}from"./chunk-ZNGOAGAI.mjs";import{d as El}from"./chunk-6YJP57MZ.mjs";import{a as ct}from"./chunk-M7NMFDJ3.mjs";import"./chunk-AEK5BO3J.mjs";import{d as Ft,f as Gr,i as jl}from"./chunk-MJM3NFEC.mjs";import{m as an}from"./chunk-4GEWSUX5.mjs";import{r as ge}from"./chunk-MTJHQATU.mjs";import"./chunk-HYBAPT6I.mjs";import{o as j}from"./chunk-YAQFFQPG.mjs";import{a as Gn,b as Vn}from"./chunk-ZEYUXJIV.mjs";import{a as Ki,c as rn,d as M,e as g}from"./chunk-BVF64D6H.mjs";var tl=Ki((k2,el)=>{g();var Pr=()=>new Proxy(function(){},{get:(e,t)=>t==="__esModule"?!0:t===Symbol.toPrimitive?()=>"":Pr(),apply:()=>Pr(),construct:()=>Pr()});el.exports=Pr()});var ol=Ki((H2,il)=>{g();var Or=()=>new Proxy(function(){},{get:(e,t)=>t==="__esModule"?!0:t===Symbol.toPrimitive?()=>"":Or(),apply:()=>Or(),construct:()=>Or()});il.exports=Or()});g();g();var so=`
2
- struct MotionBlurUniforms {
3
- shutterFraction: f32, // shutterAngle / 360.0
4
- sampleCount: u32, // e.g. 16
5
- maxVelocity: f32, // in pixels
6
- tileDilation: u32,
7
- viewportWidth: f32,
8
- viewportHeight: f32,
9
- depthThreshold: f32,
10
- curveType: u32, // 0: box, 1: gaussian, 2: triangle
11
- };
12
-
13
- @group(0) @binding(0) var colorTexture: texture_2d<f32>;
14
- @group(0) @binding(1) var velocityTexture: texture_2d<f32>;
15
- @group(0) @binding(2) var depthTexture: texture_depth_2d;
16
- @group(0) @binding(3) var colorSampler: sampler;
17
- @group(0) @binding(4) var<uniform> u: MotionBlurUniforms;
18
-
19
- fn computeVertexPos(vertexIndex: u32) -> vec4<f32> {
20
- var pos = array<vec2<f32>, 4>(
21
- vec2<f32>(-1.0, -1.0),
22
- vec2<f32>( 1.0, -1.0),
23
- vec2<f32>(-1.0, 1.0),
24
- vec2<f32>( 1.0, 1.0)
25
- );
26
- return vec4<f32>(pos[vertexIndex], 0.0, 1.0);
27
- }
28
-
29
- @vertex
30
- fn vs(@builtin(vertex_index) vertexIndex: u32) -> @builtin(position) vec4<f32> {
31
- return computeVertexPos(vertexIndex);
32
- }
33
-
34
- @vertex
35
- fn vs_main(@builtin(vertex_index) vertexIndex: u32) -> @builtin(position) vec4<f32> {
36
- return computeVertexPos(vertexIndex);
37
- }
38
-
39
- fn executeMotionBlur(pos: vec4<f32>) -> vec4<f32> {
40
- let uv = pos.xy / vec2<f32>(u.viewportWidth, u.viewportHeight);
41
- let centerDepth = textureLoad(depthTexture, vec2<i32>(pos.xy), 0);
42
- let rawVel = textureSampleLevel(velocityTexture, colorSampler, uv, 0.0).xy;
43
-
44
- // Scale velocity by shutter exposure fraction
45
- var vel = rawVel * u.shutterFraction;
46
- let speed = length(vel);
47
-
48
- if (speed < 0.5) {
49
- return textureSampleLevel(colorTexture, colorSampler, uv, 0.0);
50
- }
51
-
52
- // Clamp to configured max velocity limit
53
- if (speed > u.maxVelocity) {
54
- vel = (vel / speed) * u.maxVelocity;
55
- }
56
-
57
- let velUV = vel / vec2<f32>(u.viewportWidth, u.viewportHeight);
58
- let halfSamples = f32(u.sampleCount) * 0.5;
59
-
60
- var accumColor = vec4<f32>(0.0);
61
- var totalWeight = 0.0;
62
-
63
- for (var i = 0u; i < u.sampleCount; i = i + 1u) {
64
- let t = (f32(i) - halfSamples) / halfSamples;
65
- let sampleUV = uv + velUV * t;
66
-
67
- if (sampleUV.x < 0.0 || sampleUV.x > 1.0 || sampleUV.y < 0.0 || sampleUV.y > 1.0) {
68
- continue;
69
- }
70
-
71
- let sampleDepth = textureSampleLevel(depthTexture, colorSampler, sampleUV, 0);
72
- let depthDelta = abs(sampleDepth - centerDepth);
73
- let depthWeight = clamp(1.0 - depthDelta / max(u.depthThreshold, 0.0001), 0.05, 1.0);
74
-
75
- var curveW = 1.0;
76
- if (u.curveType == 1u) {
77
- curveW = exp(-2.5 * t * t);
78
- } else if (u.curveType == 2u) {
79
- curveW = 1.0 - abs(t);
80
- }
81
-
82
- let w = curveW * depthWeight;
83
- let sampleCol = textureSampleLevel(colorTexture, colorSampler, sampleUV, 0.0);
84
-
85
- accumColor += sampleCol * w;
86
- totalWeight += w;
87
- }
88
-
89
- if (totalWeight <= 0.0) {
90
- return textureSampleLevel(colorTexture, colorSampler, uv, 0.0);
91
- }
92
-
93
- return accumColor / totalWeight;
94
- }
95
-
96
- @fragment
97
- fn fs(@builtin(position) pos: vec4<f32>) -> @location(0) vec4<f32> {
98
- return executeMotionBlur(pos);
99
- }
100
-
101
- @fragment
102
- fn fs_motion_blur(@builtin(position) pos: vec4<f32>) -> @location(0) vec4<f32> {
103
- return executeMotionBlur(pos);
104
- }
105
- `;g();var uo=`
1
+ import{A as rb,B as ab,C as ob,D as sb,E as ub,F as lb,H as wc,I as Sc,J as _n,K as In,L as kc,M as Tc,N as Pc,O as Mc,P as Cc,Q as Gr,R as Nc,a as Cl,b as Nl,c as Y,d as Qe,e as Ll,f as qg,g as Zg,h as Kg,i as Jg,j as Qg,k as Fl,l as Rl,m as Bl,n as El,o as Ul,p as _l,s as gc,t as eo,u as to,v as ro,w as bc,x as yc,y as eb,z as tb}from"./chunk-XC5WZNOY.mjs";import{a as xc}from"./chunk-PIAJWALT.mjs";import{a as En,b as Ka}from"./chunk-PJ3DVG45.mjs";import{a as mc}from"./chunk-OCX5AD23.mjs";import{a as Ja,b as pc,d as hc,e as nb,f as ib}from"./chunk-5FC7GOWW.mjs";import{a as dc}from"./chunk-LKYN3BM2.mjs";import{a as Kl,b as Jl,c as Ql,d as ec,e as tc,f as rc,g as nc,h as ic,i as ac,j as oc,k as sc,l as uc,m as lc,n as cc,o as Qa}from"./chunk-RQLMW6MA.mjs";import{$ as hi,A as md,B as pd,C as fd,D as hd,E as Zn,F as ct,G as Kn,H as Jn,I as Qn,J as ei,K as gd,L as ti,M as ri,N as ni,O as ii,P as ai,Q as oi,R as si,S as ui,T as li,U as ci,V as di,W as mi,X as pi,Y as ar,Z as dt,_ as fi,a as $c,aa as gi,b as jc,c as Vc,d as Wc,e as Hc,f as Yc,g as Xc,h as qc,i as Zc,j as Kc,k as Xn,l as qn,m as Jc,n as Qc,o as ed,p as td,q as rd,r as nd,s as id,t as ad,u as od,v as sd,w as ud,x as ld,y as cd,z as dd}from"./chunk-QY7MHWZW.mjs";import"./chunk-GSFN4WCH.mjs";import"./chunk-5W4AFQP7.mjs";import"./chunk-OKH2VU2U.mjs";import{A as Yg,B as Xg,C as no,D as Ac,E as Oc,F as $n,G as Dc,H as Lc,I as Fc,J as Rc,K as Bc,L as Ec,M as jn,N as Uc,O as Vn,P as Wn,Q as Hn,R as ir,a as Ya,b as fh,c as hh,d as gh,e as bh,f as yh,g as Nh,h as Ah,i as Oh,j as Dh,k as Lh,l as Fh,m as Rh,n as Jh,o as Qh,p as eg,q as tg,r as rg,s as ng,t as ig,u as ag,v as og,w as sg,x as bg,y as Gg,z as Hg}from"./chunk-3GNP7TJH.mjs";import"./chunk-L3CHEZMZ.mjs";import"./chunk-E3HC4GRQ.mjs";import"./chunk-5DOD2NVY.mjs";import"./chunk-7EPIRODI.mjs";import"./chunk-VXS5SIEC.mjs";import"./chunk-PAQNDZQB.mjs";import"./chunk-SZW5J72T.mjs";import"./chunk-PL4IH5V4.mjs";import"./chunk-WUKH7BD7.mjs";import"./chunk-YQZOGEPZ.mjs";import"./chunk-J2R5R7YY.mjs";import"./chunk-WSIURGP2.mjs";import"./chunk-WFGJXCZT.mjs";import"./chunk-RW2F3XLQ.mjs";import"./chunk-PXT52LEH.mjs";import"./chunk-FU7AIAMM.mjs";import"./chunk-OJ2PKBXE.mjs";import"./chunk-5AUB4Y3L.mjs";import"./chunk-SGPRLTNF.mjs";import{a as xh,b as vh}from"./chunk-YKMBRUAE.mjs";import"./chunk-WH5Q2NFN.mjs";import"./chunk-PEWYB6WP.mjs";import"./chunk-AXHB4J37.mjs";import"./chunk-RSMO7NPN.mjs";import{a as Gn,b as zn}from"./chunk-N4LHIPHZ.mjs";import"./chunk-LBRVQ4GE.mjs";import{a as zg,b as $g,c as jg,d as Vg,e as Wg}from"./chunk-VXUJWPIK.mjs";import"./chunk-AXQZX3TC.mjs";import"./chunk-XOEEGC4Z.mjs";import"./chunk-IUPDOATX.mjs";import"./chunk-2MZXSWVT.mjs";import"./chunk-3UPI4EPV.mjs";import{i as Rn}from"./chunk-XKO4RYKN.mjs";import{a as Bg,b as Eg,c as Za,d as Ug,e as _g,f as Ig}from"./chunk-VRGREB3V.mjs";import{a as Il}from"./chunk-JAJOZG5P.mjs";import{a as Ic,b as Gc,c as zc,d as Yn}from"./chunk-CURR5X7D.mjs";import"./chunk-O2RNIQXT.mjs";import"./chunk-FPRXK2WD.mjs";import"./chunk-VO2R3DWV.mjs";import"./chunk-Q2DPNVIA.mjs";import"./chunk-ZNL4W4DK.mjs";import"./chunk-NEE3KQTX.mjs";import"./chunk-K773AOF3.mjs";import"./chunk-ZH5MZQTZ.mjs";import"./chunk-GMGGDADT.mjs";import"./chunk-7J2FWGVD.mjs";import{a as _c}from"./chunk-7EPDVSCL.mjs";import"./chunk-PFA427ZC.mjs";import{a as se}from"./chunk-FLPSWDX4.mjs";import{A as ug,B as lg,C as cg,D as dg,E as mg,F as pg,G as fg,H as hg,I as gg,a as o,c as wh,d as Sh,e as kh,f as Th,g as Ph,h as Mh,i as Ch,j as Bh,k as Eh,l as Uh,m as _h,n as Ih,o as Gh,p as zh,q as $h,r as jh,s as Vh,t as Wh,u as Hh,v as Yh,w as Xh,x as qh,y as Zh,z as Kh}from"./chunk-NQZKBFC6.mjs";import"./chunk-ENKKLU7B.mjs";import{b as Dl}from"./chunk-CYY366IE.mjs";import"./chunk-PR2BUYCL.mjs";import{b as vc}from"./chunk-PNB3ERR3.mjs";import{a as Al}from"./chunk-37EFVZWT.mjs";import"./chunk-4VOHF3FF.mjs";import{a as yg,b as xg,c as vg,d as wg,e as Sg,f as kg,g as Tg,h as Xa,i as Pg,j as qa,k as Mg,l as Cg,m as Ng}from"./chunk-24P6DAB3.mjs";import{e as Bn}from"./chunk-ZIIFTWDH.mjs";import"./chunk-Q4Z54DQ7.mjs";import{d as Ol}from"./chunk-6YJP57MZ.mjs";import{a as Dt,b as rh,c as nh,d as ih,e as ah,f as oh,g as sh,h as uh,i as wl,j as Sl,k as lh,l as ch,m as dh,n as mh,o as ph,p as kl,q as Tl,r as Pl,s as Ml}from"./chunk-63SFBHEH.mjs";import{a as lt}from"./chunk-LGVEFPOG.mjs";import"./chunk-E4RAFHZM.mjs";import{e as Lt,f as Gl,g as zl,h as $l,i as jl,j as Vl,k as Wl,l as Hl,m as Yl,n as Xl,o as ql,p as Zl,s as Un,v as fc}from"./chunk-BWJS6G7R.mjs";import{m as nr}from"./chunk-4GEWSUX5.mjs";import{r as he}from"./chunk-MTJHQATU.mjs";import"./chunk-IQC2I5A5.mjs";import{a as Ag,b as Og,c as Ln,d as Dg,e as Lg,f as Fg,g as Rg,h as Fn}from"./chunk-IQKIHFNZ.mjs";import"./chunk-HYBAPT6I.mjs";import{o as z}from"./chunk-YAQFFQPG.mjs";import{a as _r,b as Ir}from"./chunk-ZEYUXJIV.mjs";import{a as Ha,c as rr,d as x,e as h}from"./chunk-BVF64D6H.mjs";var Hu=Ha((lk,Wu)=>{h();var Sn=()=>new Proxy(function(){},{get:(e,t)=>t==="__esModule"?!0:t===Symbol.toPrimitive?()=>"":Sn(),apply:()=>Sn(),construct:()=>Sn()});Wu.exports=Sn()});var Ku=Ha((Lk,Zu)=>{h();var Cn=()=>new Proxy(function(){},{get:(e,t)=>t==="__esModule"?!0:t===Symbol.toPrimitive?()=>"":Cn(),apply:()=>Cn(),construct:()=>Cn()});Zu.exports=Cn()});h();h();var bi=class e{samples=[];frames=[];totalLength=0;constructor(t){if(t.length<2)throw new Error("Path3D requires at least 2 coordinate samples");this.samples=t,this.totalLength=t[t.length-1].distance,this.computeRotationMinimizingFrames()}computeRotationMinimizingFrames(){let t=this.samples.length;this.frames=new Array(t);let r=this.samples[0].tangent,n=[0,-1,0];Math.abs(Y.dot(r,n))>.95&&(n=[0,0,1]);let i=Y.normalize(Y.subtract(n,Y.multiplyScalar(r,Y.dot(n,r))));Y.lengthSq(i)<1e-4&&(i=[1,0,0]);let a=Y.normalize(Y.cross(r,i));this.frames[0]={normal:i,binormal:a,rotation:this.eulerFromFrame(r,i,a)};for(let s=0;s<t-1;s++){let u=this.samples[s].position,c=this.samples[s+1].position,l=this.samples[s].tangent,m=this.samples[s+1].tangent,d=this.frames[s].normal,p=Y.subtract(c,u),f=Y.dot(p,p),y;if(f>1e-8){let b=Y.subtract(l,Y.multiplyScalar(p,2*Y.dot(p,l)/f)),P=Y.subtract(d,Y.multiplyScalar(p,2*Y.dot(p,d)/f)),N=Y.subtract(m,b),M=Y.dot(N,N);M>1e-8?y=Y.subtract(P,Y.multiplyScalar(N,2*Y.dot(N,P)/M)):y=P}else y=d;y=Y.normalize(Y.subtract(y,Y.multiplyScalar(m,Y.dot(m,y))));let g=Y.normalize(Y.cross(m,y));this.frames[s+1]={normal:y,binormal:g,rotation:this.eulerFromFrame(m,y,g)}}}eulerFromFrame(t,r,n){let i=Math.asin(Math.max(-1,Math.min(1,-t[1])))*(180/Math.PI),a=Math.atan2(t[0],t[2])*(180/Math.PI),s=Math.atan2(r[0],r[1])*(180/Math.PI);return[i,a,s]}getPointAt(t){let n=Math.max(0,Math.min(1,t))*this.totalLength;return this.getPointAtDistance(n)}getPointAtDistance(t){let r=Math.max(0,Math.min(this.totalLength,t)),n=this.samples.length,i=0,a=n-1;for(;i<a;){let M=i+a>>1;this.samples[M].distance<r?i=M+1:a=M}let s=Math.max(1,i),u=s-1,c=this.samples[u],l=this.samples[s],m=l.distance-c.distance,d=m>1e-6?(r-c.distance)/m:0,p=Y.lerp(c.position,l.position,d),f=Y.normalize(Y.lerp(c.tangent,l.tangent,d)),y=this.frames[u],g=this.frames[s],b=Y.normalize(Y.lerp(y.normal,g.normal,d)),P=Y.normalize(Y.cross(f,b)),N=[y.rotation[0]+(g.rotation[0]-y.rotation[0])*d,y.rotation[1]+(g.rotation[1]-y.rotation[1])*d,y.rotation[2]+(g.rotation[2]-y.rotation[2])*d];return{position:p,tangent:f,normal:b,binormal:P,distance:r,t:this.totalLength>0?r/this.totalLength:0,rotation:N}}static catmullRom(t,r={}){if(t.length<2)throw new Error("Catmull-Rom spline requires at least 2 waypoints");let n=!!r.closed,i=r.samplesPerSegment??40,a=[];if(n)a.push(t[t.length-1]),a.push(...t),a.push(t[0]),a.push(t[1]);else{let c=t[0],l=t[1],m=t[t.length-1],d=t[t.length-2];a.push(Y.subtract(c,Y.subtract(l,c))),a.push(...t),a.push(Y.add(m,Y.subtract(m,d)))}let s=n?t.length:t.length-1,u=[];for(let c=0;c<s;c++){let l=a[c],m=a[c+1],d=a[c+2],p=a[c+3],f=c===s-1?i:i-1;for(let y=0;y<=f;y++){let g=y/i,b=g*g,P=b*g,N=-.5*P+b-.5*g,M=1.5*P-2.5*b+1,k=-1.5*P+2*b+.5*g,A=.5*P-.5*b,v=[N*l[0]+M*m[0]+k*d[0]+A*p[0],N*l[1]+M*m[1]+k*d[1]+A*p[1],N*l[2]+M*m[2]+k*d[2]+A*p[2]],R=-1.5*b+2*g-.5,G=4.5*b-5*g,Z=-4.5*b+4*g+.5,te=1.5*b-1*g,ae=[R*l[0]+G*m[0]+Z*d[0]+te*p[0],R*l[1]+G*m[1]+Z*d[1]+te*p[1],R*l[2]+G*m[2]+Z*d[2]+te*p[2]],E=Y.normalize(ae);u.push({position:v,tangent:E})}}return e.fromRawSamples(u)}static fromRawSamples(t){let r=0,n=t.map((i,a)=>(a>0&&(r+=Y.distance(i.position,t[a-1].position)),{position:i.position,tangent:i.tangent,distance:r}));if(n.length===0)throw new TypeError("Path3D needs samples");return new e(n)}static bezier(t,r=50){if(t.length===0)throw new Error("Bezier path requires at least 1 segment");let n=[];for(let i=0;i<t.length;i++){let a=t[i],s=i===t.length-1?r:r-1;for(let u=0;u<=s;u++){let c=u/r,l=1-c,m=l*l,d=m*l,p=c*c,f=p*c,y=[d*a.p0[0]+3*m*c*a.p1[0]+3*l*p*a.p2[0]+f*a.p3[0],d*a.p0[1]+3*m*c*a.p1[1]+3*l*p*a.p2[1]+f*a.p3[1],d*a.p0[2]+3*m*c*a.p1[2]+3*l*p*a.p2[2]+f*a.p3[2]],g=[3*m*(a.p1[0]-a.p0[0])+6*l*c*(a.p2[0]-a.p1[0])+3*p*(a.p3[0]-a.p2[0]),3*m*(a.p1[1]-a.p0[1])+6*l*c*(a.p2[1]-a.p1[1])+3*p*(a.p3[1]-a.p2[1]),3*m*(a.p1[2]-a.p0[2])+6*l*c*(a.p2[2]-a.p1[2])+3*p*(a.p3[2]-a.p2[2])],b=Y.normalize(g);n.push({position:y,tangent:b})}}return e.fromRawSamples(n)}static helix(t){let{center:r,radius:n,pitch:i,turns:a,axis:s="z",samplesPerTurn:u=60}=t,c=Math.max(10,Math.round(a*u)),l=[];for(let m=0;m<=c;m++){let d=m/c,p=d*a*Math.PI*2,f=(d-.5)*i*a,y=Math.cos(p),g=Math.sin(p),b,P;s==="z"?(b=[r[0]+n*y,r[1]+n*g,r[2]+f],P=[-n*g,n*y,i*a/(a*Math.PI*2)]):s==="y"?(b=[r[0]+n*y,r[1]+f,r[2]+n*g],P=[-n*g,i*a/(a*Math.PI*2),n*y]):(b=[r[0]+f,r[1]+n*y,r[2]+n*g],P=[i*a/(a*Math.PI*2),-n*g,n*y]),l.push({position:b,tangent:Y.normalize(P)})}return e.fromRawSamples(l)}static circle(t){let{center:r,radius:n,startAngleDeg:i=0,endAngleDeg:a=360,samples:s=128}=t,u=i*Math.PI/180,c=a*Math.PI/180,l=[];for(let m=0;m<=s;m++){let d=u+(c-u)*(m/s),p=Math.cos(d),f=Math.sin(d),y=[r[0]+n*p,r[1],r[2]+n*f],g=[-n*f,0,n*p];l.push({position:y,tangent:Y.normalize(g)})}return e.fromRawSamples(l)}};h();var yi=class e{name;props={};selectors=[];constructor(t){this.name=t}static create(t){return new e(t)}skew(t,r=0){return this.props.skew=t,this.props.skewAxis=r,this}anchor(t,r="character",n=0,i=0){return this.props.anchor={grouping:r,preset:t,anchorX:.5,anchorY:.5,offsetX:n,offsetY:i},this}anchorNormalized(t,r,n="character"){return this.props.anchor={grouping:n,preset:"custom",anchorX:t,anchorY:r,offsetX:0,offsetY:0},this}translateZ(t){return this.props.translateZ=t,this}tilt3D(t=0,r=0,n=0){return this.props.rotationX=t,this.props.rotationY=r,this.props.rotationZ=n,this}rotationX(t){return this.props.rotationX=t,this}rotationY(t){return this.props.rotationY=t,this}rotationZ(t){return this.props.rotationZ=t,this}volumetricFormation(t="cylinder",r=300,n=120,i=360,a=1200,s="y"){return this.props.formation={mode:t,radius:r,pitch:n,totalAngle:i,perspective:a,axis:s},this}lineSpacing(t,r=0){return this.props.lineSpacing=t,this.props.lineAnchor=r,this}lineAnchor(t){return this.props.lineAnchor=t,this}spring(t=180,r=12,n=1,i=0){return this.props.spring={stiffness:t,damping:r,mass:n,initialVelocity:i,overshootMultiplier:1},this}stroke(t,r="#ffffff",n=1){return this.props.stroke={strokeWidth:t,strokeColor:r,strokeAlign:"center",fillOpacity:n,dashOffset:0},this}variableFont(t){return this.props.variableAxes=t,this}chromaticGlitch(t,r=0,n=-t,i=0){return this.props.chromaticGlitch={redShiftX:t,redShiftY:r,blueShiftX:n,blueShiftY:i,sliceProbability:0,sliceAmplitude:0},this}audioSpectrum(t,r=60,n=16e3,i=2.5){return this.props.audioSpectrum={signalChannel:t,minFreqHz:r,maxFreqHz:n,scaleAxis:"scaleY",minScale:.2,maxScale:i,peakDecay:.8},this}longShadow(t=45,r=40,n="#000000",i=.8,a=0,s=16){return this.props.longShadow={angle:t,length:r,color:n,startOpacity:i,endOpacity:a,steps:s},this}particleDissolve(t=0,r=90,n=120){return this.props.particleDissolve={progress:t,dispersalAngle:r,maxDisplacement:n,turbulence:.5,particleSize:2},this}addExpressionSelector(t,r="add"){return this.selectors.push({type:"expression",expression:t,mode:r,amount:1}),this}expressionSelector(t,r="add"){return this.addExpressionSelector(t,r)}x(t){return this.props.x=t,this}y(t){return this.props.y=t,this}scale(t){return this.props.scale=t,this}scaleX(t){return this.props.scaleX=t,this}scaleY(t){return this.props.scaleY=t,this}rotation(t){return this.props.rotation=t,this}opacity(t){return this.props.opacity=t,this}blur(t){return this.props.blur=t,this}fillColor(t){return this.props.fillColor=t,this}build(){return{name:this.name,selectors:this.selectors,props:this.props}}};h();var io=o.enum(["character","word","line","all"]),ao=o.enum(["center","baseline","bottom_left","bottom_center","bottom_right","top_left","top_center","top_right","custom"]),oo=o.object({grouping:io.default("character"),preset:ao.default("center"),anchorX:o.number().default(.5),anchorY:o.number().default(.5),offsetX:o.number().default(0),offsetY:o.number().default(0)}),bd=o.object({skew:o.number().min(-90).max(90),skewAxis:o.number().default(0)}),yd=o.object({lineSpacing:o.number(),lineAnchor:o.number().min(0).max(1).default(0)}),so=o.enum(["planar","vortex","cylinder","helix"]),xi=o.object({mode:so.default("planar"),radius:o.number().default(300),pitch:o.number().default(120),totalAngle:o.number().default(360),axis:o.enum(["x","y","z"]).default("y"),perspective:o.number().positive().default(1200)}),xd=o.object({translateZ:o.number().optional(),rotationX:o.number().optional(),rotationY:o.number().optional(),rotationZ:o.number().optional(),formation:xi.optional()}),uo=o.object({stiffness:o.number().positive().default(180),damping:o.number().positive().default(12),mass:o.number().positive().default(1),initialVelocity:o.number().default(0),overshootMultiplier:o.number().min(.5).max(3).default(1)}),vd=o.object({type:o.literal("expression"),name:o.string().optional(),expression:o.string(),mode:o.enum(["add","subtract","intersect","min","max","difference"]).default("add"),amount:o.number().default(1)}),lo=o.object({strokeWidth:o.number().min(0).default(0),strokeColor:o.string().default("#ffffff"),strokeAlign:o.enum(["center","inside","outside"]).default("center"),fillOpacity:o.number().min(0).max(1).default(1),dashArray:o.tuple([o.number(),o.number()]).optional(),dashOffset:o.number().default(0)}),vi=o.object({direction:o.enum(["left","right","up","down"]).default("left"),velocity:o.number().default(120),loop:o.boolean().default(!0),repeatGap:o.number().default(80),snap:o.object({enabled:o.boolean().default(!1),granularity:o.enum(["character","word","line"]).default("word"),stopIndex:o.number().default(0),decelEase:o.string().default("cubic.out")}).optional()}),co=o.object({weight:o.number().min(100).max(1e3).optional(),width:o.number().min(50).max(200).optional(),slant:o.number().min(-25).max(25).optional(),italic:o.number().min(0).max(1).optional(),opticalSize:o.number().min(6).max(144).optional()}),mo=o.object({redShiftX:o.number().default(0),redShiftY:o.number().default(0),blueShiftX:o.number().default(0),blueShiftY:o.number().default(0),sliceProbability:o.number().min(0).max(1).default(0),sliceAmplitude:o.number().default(0)}),po=o.object({signalChannel:o.string(),minFreqHz:o.number().default(60),maxFreqHz:o.number().default(16e3),scaleAxis:o.enum(["scaleY","scaleX","scale","y"]).default("scaleY"),minScale:o.number().default(.2),maxScale:o.number().default(2.5),peakDecay:o.number().min(0).max(.99).default(.8)}),fo=o.object({angle:o.number().default(45),length:o.number().min(0).default(0),color:o.string().default("#000000"),startOpacity:o.number().min(0).max(1).default(.8),endOpacity:o.number().min(0).max(1).default(0),steps:o.number().int().min(4).max(64).default(16)}),ho=o.object({progress:o.number().min(0).max(1).default(0),dispersalAngle:o.number().default(90),maxDisplacement:o.number().default(120),turbulence:o.number().default(.5),particleSize:o.number().default(2)}),go=o.object({x:o.number().optional(),y:o.number().optional(),translateZ:o.number().optional(),scale:o.number().optional(),scaleX:o.number().optional(),scaleY:o.number().optional(),rotation:o.number().optional(),rotationX:o.number().optional(),rotationY:o.number().optional(),rotationZ:o.number().optional(),formation:xi.optional(),skew:o.number().optional(),skewAxis:o.number().optional(),tracking:o.number().optional(),lineSpacing:o.number().optional(),lineAnchor:o.number().optional(),anchor:oo.optional(),opacity:o.number().optional(),blur:o.number().optional(),fillColor:o.string().optional(),stroke:lo.optional(),variableAxes:co.optional(),chromaticGlitch:mo.optional(),longShadow:fo.optional(),particleDissolve:ho.optional(),audioSpectrum:po.optional(),spring:uo.optional()}),wi=o.object({name:o.string().default("AdvancedAnimator"),selectors:o.array(o.record(o.string(),o.unknown())).default([]),props:go});h();h();var or=o.object({x:o.number(),y:o.number()}),bo=o.object({p0:or,p1:or,p2:or,p3:or}),yo=o.discriminatedUnion("type",[o.object({type:o.literal("svg"),d:o.string().min(1,"SVG path string cannot be empty")}),o.object({type:o.literal("bezier"),segments:o.array(bo).min(1)}),o.object({type:o.literal("ellipse"),cx:o.number(),cy:o.number(),rx:o.number().positive(),ry:o.number().positive(),startAngleDeg:o.number().default(0),endAngleDeg:o.number().default(360)}),o.object({type:o.literal("wave"),startX:o.number(),startY:o.number(),length:o.number().positive(),amplitude:o.number(),frequency:o.number().positive(),phaseDeg:o.number().default(0)})]),Ft=o.object({path:yo,firstMargin:o.number().default(0),lastMargin:o.number().default(0),reversePath:o.boolean().default(!1),perpendicularToPath:o.boolean().default(!0),forceAlignment:o.boolean().default(!1),loop:o.boolean().default(!1),baselineOffset:o.enum(["baseline","center","ascender","descender"]).default("baseline"),baselineShift:o.number().default(0)}),xo=o.enum(["bar","underscore","block","custom"]),vo=o.object({enabled:o.boolean().default(!0),style:xo.default("bar"),customChar:o.string().default("|"),color:o.string().optional(),blinkFrequency:o.number().min(0).default(2),hideOnComplete:o.boolean().default(!1),width:o.number().positive().default(2.5),spacing:o.number().default(3)}),wo=o.discriminatedUnion("mode",[o.object({mode:o.literal("constant")}),o.object({mode:o.literal("human"),jitter:o.number().min(0).max(1).default(.35),commaPauseMultiplier:o.number().min(1).default(3),sentencePauseMultiplier:o.number().min(1).default(5.5),paragraphPauseMultiplier:o.number().min(1).default(7)})]),So=o.object({enabled:o.boolean().default(!1),charset:o.enum(["ascii","alphanumeric","matrix","binary","hex","custom"]).default("alphanumeric"),customCharset:o.string().optional(),scrambleFramesPerChar:o.number().int().min(1).default(8),highlightProbability:o.number().min(0).max(1).default(.25),scrambleColor:o.string().optional()}),zr=o.object({granularity:o.enum(["character","word","line"]).default("character"),cursor:vo.default({enabled:!0,style:"bar",customChar:"|",blinkFrequency:2,hideOnComplete:!1,width:2.5,spacing:3}),cadence:wo.default({mode:"human",jitter:.35,commaPauseMultiplier:3,sentencePauseMultiplier:5.5,paragraphPauseMultiplier:7}),scramble:So.default({enabled:!1,charset:"alphanumeric",scrambleFramesPerChar:8,highlightProbability:.25}),soundSync:o.boolean().default(!1)}),$r=o.enum(["characters","characters_excluding_spaces","words","lines"]),ko=o.enum(["percentage","index"]),To=o.enum(["square","ramp_up","ramp_down","triangle","round","smooth"]),jr=o.enum(["add","subtract","intersect","min","max","difference"]),Po=o.object({type:o.literal("range"),start:o.number().default(0),end:o.number().default(1),offset:o.number().default(0),units:ko.default("percentage"),basedOn:$r.default("characters"),shape:To.default("square"),mode:jr.default("add"),amount:o.number().min(-1).max(1).default(1),easeHigh:o.number().min(-1).max(1).default(0),easeLow:o.number().min(-1).max(1).default(0),randomizeOrder:o.boolean().default(!1),randomSeed:o.number().int().default(12345)}),Mo=o.object({type:o.literal("wiggly"),wigglesPerSecond:o.number().positive().default(2),correlation:o.number().min(0).max(1).default(.5),temporalPhaseDeg:o.number().default(0),spatialPhaseDeg:o.number().default(0),minAmount:o.number().min(-1).max(1).default(-1),maxAmount:o.number().min(-1).max(1).default(1),randomSeed:o.number().int().default(42),basedOn:$r.default("characters"),mode:jr.default("intersect")}),Co=o.object({type:o.literal("signal"),signalId:o.string(),multiplier:o.number().default(1),offset:o.number().default(0),phaseSpread:o.number().default(0),basedOn:$r.default("characters"),mode:jr.default("add")}),No=o.discriminatedUnion("type",[Po,Mo,Co]),Ao=o.object({x:o.number().optional(),y:o.number().optional(),z:o.number().optional(),scale:o.number().optional(),scaleX:o.number().optional(),scaleY:o.number().optional(),rotation:o.number().optional(),rotationX:o.number().optional(),rotationY:o.number().optional(),skew:o.number().optional(),skewAxis:o.number().optional(),tracking:o.number().optional(),lineSpacing:o.number().optional(),opacity:o.number().min(0).max(1).optional(),fillColor:o.string().optional(),strokeColor:o.string().optional(),strokeWidth:o.number().min(0).optional(),blur:o.number().min(0).optional(),characterOffset:o.number().int().optional()}),Oo=o.enum(["character","word","line","all"]),Do=o.object({grouping:Oo.default("character"),anchorX:o.number().default(.5),anchorY:o.number().default(.8)}),Rt=o.object({name:o.string().default("Animator"),selectors:o.array(No).min(1),props:Ao,anchor:Do.default({grouping:"character",anchorX:.5,anchorY:.8})}),wd=o.object({text:o.string(),fontFamily:o.string().default("Inter"),fontSize:o.number().positive().default(24),fontWeight:o.union([o.number(),o.string()]).default(400),fill:o.string().default("#ffffff"),letterSpacing:o.number().default(0),lineHeight:o.number().positive().default(1.2),textAlign:o.enum(["left","center","right"]).default("left"),pathOptions:Ft.optional(),typewriter:zr.optional(),animators:o.array(Rt).default([])});var Si=class e{options={firstMargin:0,lastMargin:0,reversePath:!1,perpendicularToPath:!0,forceAlignment:!1,loop:!1,baselineOffset:"baseline",baselineShift:0};static fromSvg(t){let r=new e;return r.options.path={type:"svg",d:t},r}static fromBezier(t){let r=new e;return r.options.path={type:"bezier",segments:t},r}static fromCurve(t){return e.fromBezier([t])}static circularBadge(t,r,n){let i=new e;return i.options.path={type:"ellipse",cx:t,cy:r,rx:n,ry:n,startAngleDeg:0,endAngleDeg:360},i.options.loop=!0,i}static ellipse(t,r,n,i,a=0,s=360){let u=new e;return u.options.path={type:"ellipse",cx:t,cy:r,rx:n,ry:i,startAngleDeg:a,endAngleDeg:s},u.options.loop=Math.abs(s-a)>=360,u}static wave(t,r,n,i,a,s=0){let u=new e;return u.options.path={type:"wave",startX:t,startY:r,length:n,amplitude:i,frequency:a,phaseDeg:s},u}firstMargin(t){return this.options.firstMargin=t,this}lastMargin(t){return this.options.lastMargin=t,this}reversePath(t){return this.options.reversePath=t,this}perpendicularToPath(t){return this.options.perpendicularToPath=t,this}forceAlignment(t){return this.options.forceAlignment=t,this}loop(t){return this.options.loop=t,this}baselineOffset(t){return this.options.baselineOffset=t,this}baselineShift(t){return this.options.baselineShift=t,this}build(){return Ft.parse(this.options)}},ki=class e{name="Animator";selectors=[];props={};anchor={grouping:"character",anchorX:.5,anchorY:.8};static create(t){let r=new e;return r.name=t,r}addRangeSelector(t){let r=t.easeHigh??0,n=Math.abs(r)>1?r/100:r,i=t.easeLow??0,a=Math.abs(i)>1?i/100:i;return this.selectors.push({type:"range",start:t.start??0,end:t.end??1,offset:t.offset??0,units:"percentage",basedOn:t.basedOn??"characters",shape:t.shape??"smooth",mode:t.mode??"add",amount:1,easeHigh:Math.max(-1,Math.min(1,n)),easeLow:Math.max(-1,Math.min(1,a)),randomizeOrder:t.randomizeOrder??!1,randomSeed:t.randomSeed??12345}),this}addWigglySelector(t){return this.selectors.push({type:"wiggly",wigglesPerSecond:t.wigglesPerSecond??2,correlation:t.correlation??.5,temporalPhaseDeg:0,spatialPhaseDeg:0,minAmount:t.minAmount??-1,maxAmount:t.maxAmount??1,randomSeed:t.randomSeed??42,basedOn:"characters",mode:t.mode??"intersect"}),this}addSignalSelector(t,r=1,n=0,i=0,a="add"){return this.selectors.push({type:"signal",signalId:t,multiplier:r,offset:i,phaseSpread:n,basedOn:"characters",mode:a}),this}x(t){return this.props.x=t,this}y(t){return this.props.y=t,this}z(t){return this.props.z=t,this}scale(t){return this.props.scale=t,this}scaleX(t){return this.props.scaleX=t,this}scaleY(t){return this.props.scaleY=t,this}rotation(t){return this.props.rotation=t,this}rotationX(t){return this.props.rotationX=t,this}rotationY(t){return this.props.rotationY=t,this}skew(t){return this.props.skew=t,this}skewAxis(t){return this.props.skewAxis=t,this}opacity(t){return this.props.opacity=t,this}blur(t){return this.props.blur=t,this}fill(t){return this.fillColor(t)}fillColor(t){return this.props.fillColor=t,this}strokeColor(t){return this.props.strokeColor=t,this}strokeWidth(t){return this.props.strokeWidth=t,this}tracking(t){return this.props.tracking=t,this}lineSpacing(t){return this.props.lineSpacing=t,this}characterOffset(t){return this.props.characterOffset=t,this}anchorGrouping(t,r=.5,n=.8){return this.anchor={grouping:t,anchorX:r,anchorY:n},this}build(){return Rt.parse({name:this.name,selectors:this.selectors,props:this.props,anchor:this.anchor})}};h();h();var Lo=`
106
2
  struct CameraUniforms {
107
3
  viewMatrix: mat4x4<f32>,
108
4
  projMatrix: mat4x4<f32>,
@@ -231,7 +127,111 @@ fn fs_main(in: VertexOutput) -> @location(0) vec4<f32> {
231
127
 
232
128
  return vec4<f32>(blendedRGB * alpha, alpha);
233
129
  }
234
- `;g();var lo=`
130
+ `;var Ti=class{device;pipeline;cameraLayout;modelLayout;glassLayout;backdropLayout;modelPool;glassPool;vertexBuffer;indexBuffer;modelData=new Float32Array(40);glassData=new Float32Array(16);constructor(t,r,n="depth24plus",i){this.device=t,this.modelPool=new Un(160,GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST),this.glassPool=new Un(64,GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST);let a=t.createShaderModule({label:"pbr-glass.wgsl",code:Lo});this.cameraLayout=i??t.createBindGroupLayout({label:"GlassCameraLayout",entries:[{binding:0,visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),this.modelLayout=t.createBindGroupLayout({label:"GlassModelLayout",entries:[{binding:0,visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),this.glassLayout=t.createBindGroupLayout({label:"GlassUniformLayout",entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),this.backdropLayout=t.createBindGroupLayout({label:"GlassBackdropLayout",entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}}]});let s=t.createPipelineLayout({bindGroupLayouts:[this.cameraLayout,this.modelLayout,this.glassLayout,this.backdropLayout]});this.pipeline=t.createRenderPipeline({label:"PBRGlassPipeline",layout:s,vertex:{module:a,entryPoint:"vs_main",buffers:[{arrayStride:32,attributes:[{shaderLocation:0,offset:0,format:"float32x3"},{shaderLocation:1,offset:12,format:"float32x2"},{shaderLocation:2,offset:20,format:"float32x3"}]}]},fragment:{module:a,entryPoint:"fs_main",targets:[{format:r,blend:Qa}]},depthStencil:{format:n,depthWriteEnabled:!0,depthCompare:"less-equal"},primitive:{topology:"triangle-list",cullMode:"none"}});let u=new Float32Array([-.5,-.5,0,0,0,0,0,-1,.5,-.5,0,1,0,0,0,-1,.5,.5,0,1,1,0,0,-1,-.5,.5,0,0,1,0,0,-1]),c=new Uint16Array([0,1,2,0,2,3]);this.vertexBuffer=t.createBuffer({size:u.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST,mappedAtCreation:!0}),new Float32Array(this.vertexBuffer.getMappedRange()).set(u),this.vertexBuffer.unmap(),this.indexBuffer=t.createBuffer({size:c.byteLength,usage:GPUBufferUsage.INDEX|GPUBufferUsage.COPY_DST,mappedAtCreation:!0}),new Uint16Array(this.indexBuffer.getMappedRange()).set(c),this.indexBuffer.unmap()}resetPools(){this.modelPool.reset(),this.glassPool.reset()}draw(t,r,n,i,a){eo(this.modelData,a.modelMatrix,a.normalMatrix,a.colorTint),this.modelData[36]=a.opacity??1,this.modelData[37]=0,this.modelData[38]=1,this.modelData[39]=0;let s=this.modelPool.getBuffer(this.device,this.modelData);this.glassData[0]=a.ior??1.49,this.glassData[1]=a.roughness??.15,this.glassData[2]=a.f0??.04,this.glassData[3]=a.transmission??.92,this.glassData[4]=a.dispersion??.015,this.glassData[5]=a.envIntensity??.65,this.glassData[6]=a.fresnelPower??5,this.glassData[7]=0,this.glassData[8]=a.viewportWidth,this.glassData[9]=a.viewportHeight,this.glassData[10]=0,this.glassData[11]=0;let u=a.tintColor??[1,1,1,1];this.glassData[12]=u[0],this.glassData[13]=u[1],this.glassData[14]=u[2],this.glassData[15]=u[3];let c=this.glassPool.getBuffer(this.device,this.glassData),l=this.device.createBindGroup({layout:this.modelLayout,entries:[{binding:0,resource:{buffer:s}}]}),m=this.device.createBindGroup({layout:this.glassLayout,entries:[{binding:0,resource:{buffer:c}}]}),d=this.device.createBindGroup({layout:this.backdropLayout,entries:[{binding:0,resource:i},{binding:1,resource:n.createView()}]});t.setPipeline(this.pipeline),t.setBindGroup(0,r),t.setBindGroup(1,l),t.setBindGroup(2,m),t.setBindGroup(3,d),t.setVertexBuffer(0,this.vertexBuffer),t.setIndexBuffer(this.indexBuffer,"uint16"),t.drawIndexed(6)}destroy(){this.modelPool.destroy(),this.glassPool.destroy(),this.vertexBuffer.destroy(),this.indexBuffer.destroy()}};h();h();var Fo=`
131
+ struct MotionBlurUniforms {
132
+ shutterFraction: f32, // shutterAngle / 360.0
133
+ sampleCount: u32, // e.g. 16
134
+ maxVelocity: f32, // in pixels
135
+ tileDilation: u32,
136
+ viewportWidth: f32,
137
+ viewportHeight: f32,
138
+ depthThreshold: f32,
139
+ curveType: u32, // 0: box, 1: gaussian, 2: triangle
140
+ };
141
+
142
+ @group(0) @binding(0) var colorTexture: texture_2d<f32>;
143
+ @group(0) @binding(1) var velocityTexture: texture_2d<f32>;
144
+ @group(0) @binding(2) var depthTexture: texture_depth_2d;
145
+ @group(0) @binding(3) var colorSampler: sampler;
146
+ @group(0) @binding(4) var<uniform> u: MotionBlurUniforms;
147
+
148
+ fn computeVertexPos(vertexIndex: u32) -> vec4<f32> {
149
+ var pos = array<vec2<f32>, 4>(
150
+ vec2<f32>(-1.0, -1.0),
151
+ vec2<f32>( 1.0, -1.0),
152
+ vec2<f32>(-1.0, 1.0),
153
+ vec2<f32>( 1.0, 1.0)
154
+ );
155
+ return vec4<f32>(pos[vertexIndex], 0.0, 1.0);
156
+ }
157
+
158
+ @vertex
159
+ fn vs(@builtin(vertex_index) vertexIndex: u32) -> @builtin(position) vec4<f32> {
160
+ return computeVertexPos(vertexIndex);
161
+ }
162
+
163
+ @vertex
164
+ fn vs_main(@builtin(vertex_index) vertexIndex: u32) -> @builtin(position) vec4<f32> {
165
+ return computeVertexPos(vertexIndex);
166
+ }
167
+
168
+ fn executeMotionBlur(pos: vec4<f32>) -> vec4<f32> {
169
+ let uv = pos.xy / vec2<f32>(u.viewportWidth, u.viewportHeight);
170
+ let centerDepth = textureLoad(depthTexture, vec2<i32>(pos.xy), 0);
171
+ let rawVel = textureSampleLevel(velocityTexture, colorSampler, uv, 0.0).xy;
172
+
173
+ // Scale velocity by shutter exposure fraction
174
+ var vel = rawVel * u.shutterFraction;
175
+ let speed = length(vel);
176
+
177
+ if (speed < 0.5) {
178
+ return textureSampleLevel(colorTexture, colorSampler, uv, 0.0);
179
+ }
180
+
181
+ // Clamp to configured max velocity limit
182
+ if (speed > u.maxVelocity) {
183
+ vel = (vel / speed) * u.maxVelocity;
184
+ }
185
+
186
+ let velUV = vel / vec2<f32>(u.viewportWidth, u.viewportHeight);
187
+ let halfSamples = f32(u.sampleCount) * 0.5;
188
+
189
+ var accumColor = vec4<f32>(0.0);
190
+ var totalWeight = 0.0;
191
+
192
+ for (var i = 0u; i < u.sampleCount; i = i + 1u) {
193
+ let t = (f32(i) - halfSamples) / halfSamples;
194
+ let sampleUV = uv + velUV * t;
195
+
196
+ if (sampleUV.x < 0.0 || sampleUV.x > 1.0 || sampleUV.y < 0.0 || sampleUV.y > 1.0) {
197
+ continue;
198
+ }
199
+
200
+ let sampleDepth = textureSampleLevel(depthTexture, colorSampler, sampleUV, 0);
201
+ let depthDelta = abs(sampleDepth - centerDepth);
202
+ let depthWeight = clamp(1.0 - depthDelta / max(u.depthThreshold, 0.0001), 0.05, 1.0);
203
+
204
+ var curveW = 1.0;
205
+ if (u.curveType == 1u) {
206
+ curveW = exp(-2.5 * t * t);
207
+ } else if (u.curveType == 2u) {
208
+ curveW = 1.0 - abs(t);
209
+ }
210
+
211
+ let w = curveW * depthWeight;
212
+ let sampleCol = textureSampleLevel(colorTexture, colorSampler, sampleUV, 0.0);
213
+
214
+ accumColor += sampleCol * w;
215
+ totalWeight += w;
216
+ }
217
+
218
+ if (totalWeight <= 0.0) {
219
+ return textureSampleLevel(colorTexture, colorSampler, uv, 0.0);
220
+ }
221
+
222
+ return accumColor / totalWeight;
223
+ }
224
+
225
+ @fragment
226
+ fn fs(@builtin(position) pos: vec4<f32>) -> @location(0) vec4<f32> {
227
+ return executeMotionBlur(pos);
228
+ }
229
+
230
+ @fragment
231
+ fn fs_motion_blur(@builtin(position) pos: vec4<f32>) -> @location(0) vec4<f32> {
232
+ return executeMotionBlur(pos);
233
+ }
234
+ `;var Pi=class{device;pipeline;bindGroupLayout;uniformBuffer;sampler;constructor(t){this.device=t;let r=t.createShaderModule({label:"motion-blur-shader",code:Fo});this.bindGroupLayout=t.createBindGroupLayout({label:"motion-blur-bgl",entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:2,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"depth"}},{binding:3,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}},{binding:4,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]});let n=t.createPipelineLayout({label:"motion-blur-layout",bindGroupLayouts:[this.bindGroupLayout]});this.pipeline=t.createRenderPipeline({label:"motion-blur-pipeline",layout:n,vertex:{module:r,entryPoint:"vs_main"},fragment:{module:r,entryPoint:"fs_motion_blur",targets:[{format:"rgba8unorm",blend:{color:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"}}}]},primitive:{topology:"triangle-strip"}}),this.uniformBuffer=t.createBuffer({label:"motion-blur-uniforms",size:32,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),this.sampler=t.createSampler({label:"motion-blur-sampler",magFilter:"linear",minFilter:"linear"})}render(t,r,n,i,a,s){let u=(s.shutterAngle??180)/360,c=s.sampleCount??16,l=s.maxVelocity??64,m=s.depthThreshold??.05,d=s.curveType==="box"?0:s.curveType==="triangle"?2:1,p=new ArrayBuffer(32),f=new Float32Array(p),y=new Uint32Array(p);f[0]=u,y[1]=c,f[2]=l,y[3]=16,f[4]=s.width,f[5]=s.height,f[6]=m,y[7]=d,this.device.queue.writeBuffer(this.uniformBuffer,0,p);let g=this.device.createBindGroup({label:"motion-blur-bg",layout:this.bindGroupLayout,entries:[{binding:0,resource:r},{binding:1,resource:n},{binding:2,resource:i},{binding:3,resource:this.sampler},{binding:4,resource:{buffer:this.uniformBuffer}}]}),b=t.beginRenderPass({label:"motion-blur-pass",colorAttachments:[{view:a,loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});b.setPipeline(this.pipeline),b.setBindGroup(0,g),b.draw(4),b.end()}destroy(){this.uniformBuffer.destroy()}};h();var Mi=class{shadowDepthTexture;shadowDepthView;shadowComparisonSampler;lightViewProjMatrix;constructor(t,r=2048){this.lightViewProjMatrix=Qe.identity(),this.shadowDepthTexture=t.createTexture({label:"shadow-depth-map",size:[r,r,1],format:"depth32float",usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING}),this.shadowDepthView=this.shadowDepthTexture.createView({label:"shadow-depth-view"}),this.shadowComparisonSampler=t.createSampler({label:"shadow-pcf-sampler",compare:"less-equal",magFilter:"linear",minFilter:"linear"})}computeDirectionalLightMatrix(t,r,n=2e3,i=10,a=4e3){let s=Qe.lookAt(t,r,[0,1,0]),u=n*.5,c=Qe.orthographic(-u,u,-u,u,i,a);return this.lightViewProjMatrix=Qe.multiply(c,s),this.lightViewProjMatrix}destroy(){this.shadowDepthTexture.destroy()}};h();h();var Ro=`
235
235
  struct SSAOUniforms {
236
236
  projMatrix: mat4x4<f32>,
237
237
  invProjMatrix: mat4x4<f32>,
@@ -317,7 +317,7 @@ fn fs_ssao(@builtin(position) pos: vec4<f32>) -> @location(0) f32 {
317
317
  let ao = 1.0 - (occlusion / f32(max(count, 1u))) * u.intensity;
318
318
  return clamp(ao, 0.0, 1.0);
319
319
  }
320
- `,co=`
320
+ `,Bo=`
321
321
  struct BlurUniforms {
322
322
  viewportWidth: f32,
323
323
  viewportHeight: f32,
@@ -377,7 +377,7 @@ fn fs_blur(@builtin(position) pos: vec4<f32>) -> @location(0) f32 {
377
377
  }
378
378
  return result / totalWeight;
379
379
  }
380
- `;g();var wa=class e{samples=[];frames=[];totalLength=0;constructor(t){if(t.length<2)throw new Error("Path3D requires at least 2 coordinate samples");this.samples=t,this.totalLength=t[t.length-1].distance,this.computeRotationMinimizingFrames()}computeRotationMinimizingFrames(){let t=this.samples.length;this.frames=new Array(t);let n=this.samples[0].tangent,r=[0,-1,0];Math.abs(X.dot(n,r))>.95&&(r=[0,0,1]);let a=X.normalize(X.subtract(r,X.multiplyScalar(n,X.dot(r,n))));X.lengthSq(a)<1e-4&&(a=[1,0,0]);let i=X.normalize(X.cross(n,a));this.frames[0]={normal:a,binormal:i,rotation:this.eulerFromFrame(n,a,i)};for(let o=0;o<t-1;o++){let u=this.samples[o].position,c=this.samples[o+1].position,l=this.samples[o].tangent,m=this.samples[o+1].tangent,d=this.frames[o].normal,p=X.subtract(c,u),f=X.dot(p,p),y;if(f>1e-8){let b=X.subtract(l,X.multiplyScalar(p,2*X.dot(p,l)/f)),x=X.subtract(d,X.multiplyScalar(p,2*X.dot(p,d)/f)),v=X.subtract(m,b),S=X.dot(v,v);S>1e-8?y=X.subtract(x,X.multiplyScalar(v,2*X.dot(v,x)/S)):y=x}else y=d;y=X.normalize(X.subtract(y,X.multiplyScalar(m,X.dot(m,y))));let h=X.normalize(X.cross(m,y));this.frames[o+1]={normal:y,binormal:h,rotation:this.eulerFromFrame(m,y,h)}}}eulerFromFrame(t,n,r){let a=Math.asin(Math.max(-1,Math.min(1,-t[1])))*(180/Math.PI),i=Math.atan2(t[0],t[2])*(180/Math.PI),o=Math.atan2(n[0],n[1])*(180/Math.PI);return[a,i,o]}getPointAt(t){let r=Math.max(0,Math.min(1,t))*this.totalLength;return this.getPointAtDistance(r)}getPointAtDistance(t){let n=Math.max(0,Math.min(this.totalLength,t)),r=this.samples.length,a=0,i=r-1;for(;a<i;){let S=a+i>>1;this.samples[S].distance<n?a=S+1:i=S}let o=Math.max(1,a),u=o-1,c=this.samples[u],l=this.samples[o],m=l.distance-c.distance,d=m>1e-6?(n-c.distance)/m:0,p=X.lerp(c.position,l.position,d),f=X.normalize(X.lerp(c.tangent,l.tangent,d)),y=this.frames[u],h=this.frames[o],b=X.normalize(X.lerp(y.normal,h.normal,d)),x=X.normalize(X.cross(f,b)),v=[y.rotation[0]+(h.rotation[0]-y.rotation[0])*d,y.rotation[1]+(h.rotation[1]-y.rotation[1])*d,y.rotation[2]+(h.rotation[2]-y.rotation[2])*d];return{position:p,tangent:f,normal:b,binormal:x,distance:n,t:this.totalLength>0?n/this.totalLength:0,rotation:v}}static catmullRom(t,n={}){if(t.length<2)throw new Error("Catmull-Rom spline requires at least 2 waypoints");let r=!!n.closed,a=n.samplesPerSegment??40,i=[];if(r)i.push(t[t.length-1]),i.push(...t),i.push(t[0]),i.push(t[1]);else{let m=t[0],d=t[1],p=t[t.length-1],f=t[t.length-2];i.push(X.subtract(m,X.subtract(d,m))),i.push(...t),i.push(X.add(p,X.subtract(p,f)))}let o=r?t.length:t.length-1,u=[];for(let m=0;m<o;m++){let d=i[m],p=i[m+1],f=i[m+2],y=i[m+3],h=m===o-1?a:a-1;for(let b=0;b<=h;b++){let x=b/a,v=x*x,S=v*x,k=-.5*S+v-.5*x,C=1.5*S-2.5*v+1,w=-1.5*S+2*v+.5*x,D=.5*S-.5*v,E=[k*d[0]+C*p[0]+w*f[0]+D*y[0],k*d[1]+C*p[1]+w*f[1]+D*y[1],k*d[2]+C*p[2]+w*f[2]+D*y[2]],V=-1.5*v+2*x-.5,Z=4.5*v-5*x,ne=-4.5*v+4*x+.5,R=1.5*v-1*x,P=[V*d[0]+Z*p[0]+ne*f[0]+R*y[0],V*d[1]+Z*p[1]+ne*f[1]+R*y[1],V*d[2]+Z*p[2]+ne*f[2]+R*y[2]],T=X.normalize(P);u.push({position:E,tangent:T})}}let c=0,l=[{position:u[0].position,tangent:u[0].tangent,distance:0}];for(let m=1;m<u.length;m++){let d=X.distance(u[m].position,u[m-1].position);c+=d,l.push({position:u[m].position,tangent:u[m].tangent,distance:c})}return new e(l)}static bezier(t,n=50){if(t.length===0)throw new Error("Bezier path requires at least 1 segment");let r=[];for(let o=0;o<t.length;o++){let u=t[o],c=o===t.length-1?n:n-1;for(let l=0;l<=c;l++){let m=l/n,d=1-m,p=d*d,f=p*d,y=m*m,h=y*m,b=[f*u.p0[0]+3*p*m*u.p1[0]+3*d*y*u.p2[0]+h*u.p3[0],f*u.p0[1]+3*p*m*u.p1[1]+3*d*y*u.p2[1]+h*u.p3[1],f*u.p0[2]+3*p*m*u.p1[2]+3*d*y*u.p2[2]+h*u.p3[2]],x=[3*p*(u.p1[0]-u.p0[0])+6*d*m*(u.p2[0]-u.p1[0])+3*y*(u.p3[0]-u.p2[0]),3*p*(u.p1[1]-u.p0[1])+6*d*m*(u.p2[1]-u.p1[1])+3*y*(u.p3[1]-u.p2[1]),3*p*(u.p1[2]-u.p0[2])+6*d*m*(u.p2[2]-u.p1[2])+3*y*(u.p3[2]-u.p2[2])],v=X.normalize(x);r.push({position:b,tangent:v})}}let a=0,i=[{position:r[0].position,tangent:r[0].tangent,distance:0}];for(let o=1;o<r.length;o++)a+=X.distance(r[o].position,r[o-1].position),i.push({position:r[o].position,tangent:r[o].tangent,distance:a});return new e(i)}static helix(t){let{center:n,radius:r,pitch:a,turns:i,axis:o="z",samplesPerTurn:u=60}=t,c=Math.max(10,Math.round(i*u)),l=[];for(let p=0;p<=c;p++){let f=p/c,y=f*i*Math.PI*2,h=(f-.5)*a*i,b=Math.cos(y),x=Math.sin(y),v,S;o==="z"?(v=[n[0]+r*b,n[1]+r*x,n[2]+h],S=[-r*x,r*b,a*i/(i*Math.PI*2)]):o==="y"?(v=[n[0]+r*b,n[1]+h,n[2]+r*x],S=[-r*x,a*i/(i*Math.PI*2),r*b]):(v=[n[0]+h,n[1]+r*b,n[2]+r*x],S=[a*i/(i*Math.PI*2),-r*x,r*b]),l.push({position:v,tangent:X.normalize(S)})}let m=0,d=[{position:l[0].position,tangent:l[0].tangent,distance:0}];for(let p=1;p<l.length;p++)m+=X.distance(l[p].position,l[p-1].position),d.push({position:l[p].position,tangent:l[p].tangent,distance:m});return new e(d)}static circle(t){let{center:n,radius:r,startAngleDeg:a=0,endAngleDeg:i=360,samples:o=128}=t,u=a*Math.PI/180,c=i*Math.PI/180,l=[];for(let p=0;p<=o;p++){let f=u+(c-u)*(p/o),y=Math.cos(f),h=Math.sin(f),b=[n[0]+r*y,n[1],n[2]+r*h],x=[-r*h,0,r*y];l.push({position:b,tangent:X.normalize(x)})}let m=0,d=[{position:l[0].position,tangent:l[0].tangent,distance:0}];for(let p=1;p<l.length;p++)m+=X.distance(l[p].position,l[p-1].position),d.push({position:l[p].position,tangent:l[p].tangent,distance:m});return new e(d)}};g();var Sa=class{device;pipeline;cameraLayout;modelLayout;glassLayout;backdropLayout;modelPool;glassPool;vertexBuffer;indexBuffer;modelData=new Float32Array(40);glassData=new Float32Array(16);constructor(t,n,r="depth24plus",a){this.device=t,this.modelPool=new Gr(160,GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST),this.glassPool=new Gr(64,GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST);let i=t.createShaderModule({label:"pbr-glass.wgsl",code:uo});this.cameraLayout=a??t.createBindGroupLayout({label:"GlassCameraLayout",entries:[{binding:0,visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),this.modelLayout=t.createBindGroupLayout({label:"GlassModelLayout",entries:[{binding:0,visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),this.glassLayout=t.createBindGroupLayout({label:"GlassUniformLayout",entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),this.backdropLayout=t.createBindGroupLayout({label:"GlassBackdropLayout",entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}}]});let o=t.createPipelineLayout({bindGroupLayouts:[this.cameraLayout,this.modelLayout,this.glassLayout,this.backdropLayout]});this.pipeline=t.createRenderPipeline({label:"PBRGlassPipeline",layout:o,vertex:{module:i,entryPoint:"vs_main",buffers:[{arrayStride:32,attributes:[{shaderLocation:0,offset:0,format:"float32x3"},{shaderLocation:1,offset:12,format:"float32x2"},{shaderLocation:2,offset:20,format:"float32x3"}]}]},fragment:{module:i,entryPoint:"fs_main",targets:[{format:n,blend:{color:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"}}}]},depthStencil:{format:r,depthWriteEnabled:!0,depthCompare:"less-equal"},primitive:{topology:"triangle-list",cullMode:"none"}});let u=new Float32Array([-.5,-.5,0,0,0,0,0,-1,.5,-.5,0,1,0,0,0,-1,.5,.5,0,1,1,0,0,-1,-.5,.5,0,0,1,0,0,-1]),c=new Uint16Array([0,1,2,0,2,3]);this.vertexBuffer=t.createBuffer({size:u.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST,mappedAtCreation:!0}),new Float32Array(this.vertexBuffer.getMappedRange()).set(u),this.vertexBuffer.unmap(),this.indexBuffer=t.createBuffer({size:c.byteLength,usage:GPUBufferUsage.INDEX|GPUBufferUsage.COPY_DST,mappedAtCreation:!0}),new Uint16Array(this.indexBuffer.getMappedRange()).set(c),this.indexBuffer.unmap()}resetPools(){this.modelPool.reset(),this.glassPool.reset()}draw(t,n,r,a,i){let o=i.modelMatrix;for(let h=0;h<16;h++)this.modelData[h]=o[h]??0;let u=i.normalMatrix??o;for(let h=0;h<16;h++)this.modelData[16+h]=u[h]??0;let c=i.colorTint??[1,1,1,1];this.modelData[32]=c[0],this.modelData[33]=c[1],this.modelData[34]=c[2],this.modelData[35]=c[3],this.modelData[36]=i.opacity??1,this.modelData[37]=0,this.modelData[38]=1,this.modelData[39]=0;let l=this.modelPool.getBuffer(this.device,this.modelData);this.glassData[0]=i.ior??1.49,this.glassData[1]=i.roughness??.15,this.glassData[2]=i.f0??.04,this.glassData[3]=i.transmission??.92,this.glassData[4]=i.dispersion??.015,this.glassData[5]=i.envIntensity??.65,this.glassData[6]=i.fresnelPower??5,this.glassData[7]=0,this.glassData[8]=i.viewportWidth,this.glassData[9]=i.viewportHeight,this.glassData[10]=0,this.glassData[11]=0;let m=i.tintColor??[1,1,1,1];this.glassData[12]=m[0],this.glassData[13]=m[1],this.glassData[14]=m[2],this.glassData[15]=m[3];let d=this.glassPool.getBuffer(this.device,this.glassData),p=this.device.createBindGroup({layout:this.modelLayout,entries:[{binding:0,resource:{buffer:l}}]}),f=this.device.createBindGroup({layout:this.glassLayout,entries:[{binding:0,resource:{buffer:d}}]}),y=this.device.createBindGroup({layout:this.backdropLayout,entries:[{binding:0,resource:a},{binding:1,resource:r.createView()}]});t.setPipeline(this.pipeline),t.setBindGroup(0,n),t.setBindGroup(1,p),t.setBindGroup(2,f),t.setBindGroup(3,y),t.setVertexBuffer(0,this.vertexBuffer),t.setIndexBuffer(this.indexBuffer,"uint16"),t.drawIndexed(6)}destroy(){this.modelPool.destroy(),this.glassPool.destroy(),this.vertexBuffer.destroy(),this.indexBuffer.destroy()}};g();var Ma=class{device;pipeline;bindGroupLayout;uniformBuffer;sampler;constructor(t){this.device=t;let n=t.createShaderModule({label:"motion-blur-shader",code:so});this.bindGroupLayout=t.createBindGroupLayout({label:"motion-blur-bgl",entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:2,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"depth"}},{binding:3,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}},{binding:4,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]});let r=t.createPipelineLayout({label:"motion-blur-layout",bindGroupLayouts:[this.bindGroupLayout]});this.pipeline=t.createRenderPipeline({label:"motion-blur-pipeline",layout:r,vertex:{module:n,entryPoint:"vs_main"},fragment:{module:n,entryPoint:"fs_motion_blur",targets:[{format:"rgba8unorm",blend:{color:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"}}}]},primitive:{topology:"triangle-strip"}}),this.uniformBuffer=t.createBuffer({label:"motion-blur-uniforms",size:32,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),this.sampler=t.createSampler({label:"motion-blur-sampler",magFilter:"linear",minFilter:"linear"})}render(t,n,r,a,i,o){let u=(o.shutterAngle??180)/360,c=o.sampleCount??16,l=o.maxVelocity??64,m=o.depthThreshold??.05,d=o.curveType==="box"?0:o.curveType==="triangle"?2:1,p=new ArrayBuffer(32),f=new Float32Array(p),y=new Uint32Array(p);f[0]=u,y[1]=c,f[2]=l,y[3]=16,f[4]=o.width,f[5]=o.height,f[6]=m,y[7]=d,this.device.queue.writeBuffer(this.uniformBuffer,0,p);let h=this.device.createBindGroup({label:"motion-blur-bg",layout:this.bindGroupLayout,entries:[{binding:0,resource:n},{binding:1,resource:r},{binding:2,resource:a},{binding:3,resource:this.sampler},{binding:4,resource:{buffer:this.uniformBuffer}}]}),b=t.beginRenderPass({label:"motion-blur-pass",colorAttachments:[{view:i,loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});b.setPipeline(this.pipeline),b.setBindGroup(0,h),b.draw(4),b.end()}destroy(){this.uniformBuffer.destroy()}};g();var ka=class{shadowDepthTexture;shadowDepthView;shadowComparisonSampler;lightViewProjMatrix;constructor(t,n=2048){this.lightViewProjMatrix=et.identity(),this.shadowDepthTexture=t.createTexture({label:"shadow-depth-map",size:[n,n,1],format:"depth32float",usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING}),this.shadowDepthView=this.shadowDepthTexture.createView({label:"shadow-depth-view"}),this.shadowComparisonSampler=t.createSampler({label:"shadow-pcf-sampler",compare:"less-equal",magFilter:"linear",minFilter:"linear"})}computeDirectionalLightMatrix(t,n,r=2e3,a=10,i=4e3){let o=et.lookAt(t,n,[0,1,0]),u=r*.5,c=et.orthographic(-u,u,-u,u,a,i);return this.lightViewProjMatrix=et.multiply(c,o),this.lightViewProjMatrix}destroy(){this.shadowDepthTexture.destroy()}};g();var Ta=class{device;ssaoPipeline;blurPipeline;ssaoBindGroupLayout;blurBindGroupLayout;ssaoUniformBuffer;blurUniformBuffer;kernelBuffer;noiseTexture;sampler;constructor(t){this.device=t,this.noiseTexture=t.createTexture({label:"ssao-noise-tex",size:[4,4,1],format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST});let n=new Uint8Array(64);for(let o=0;o<16;o++)n[o*4+0]=Math.floor(Math.random()*255),n[o*4+1]=Math.floor(Math.random()*255),n[o*4+2]=128,n[o*4+3]=255;t.queue.writeTexture({texture:this.noiseTexture},n,{bytesPerRow:16},[4,4,1]);let r=new Float32Array(128);for(let o=0;o<32;o++){let u=Math.random(),c=Math.random(),l=Math.acos(Math.sqrt(1-u)),m=2*Math.PI*c,d=(o+1)/32;d=.1+.9*(d*d),r[o*4+0]=Math.sin(l)*Math.cos(m)*d,r[o*4+1]=Math.sin(l)*Math.sin(m)*d,r[o*4+2]=Math.cos(l)*d,r[o*4+3]=0}this.kernelBuffer=t.createBuffer({label:"ssao-kernel-buffer",size:r.byteLength,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST}),t.queue.writeBuffer(this.kernelBuffer,0,r);let a=t.createShaderModule({label:"ssao-shader",code:lo});this.ssaoBindGroupLayout=t.createBindGroupLayout({label:"ssao-bgl",entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"depth"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:2,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:3,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}},{binding:4,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"read-only-storage"}},{binding:5,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),this.ssaoPipeline=t.createRenderPipeline({label:"ssao-eval-pipeline",layout:t.createPipelineLayout({bindGroupLayouts:[this.ssaoBindGroupLayout]}),vertex:{module:a,entryPoint:"vs_main"},fragment:{module:a,entryPoint:"fs_ssao",targets:[{format:"r8unorm"}]},primitive:{topology:"triangle-strip"}}),this.ssaoUniformBuffer=t.createBuffer({label:"ssao-uniforms",size:256,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST});let i=t.createShaderModule({label:"ssao-blur-shader",code:co});this.blurBindGroupLayout=t.createBindGroupLayout({label:"ssao-blur-bgl",entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"depth"}},{binding:2,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}},{binding:3,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),this.blurPipeline=t.createRenderPipeline({label:"ssao-blur-pipeline",layout:t.createPipelineLayout({bindGroupLayouts:[this.blurBindGroupLayout]}),vertex:{module:i,entryPoint:"vs_main"},fragment:{module:i,entryPoint:"fs_blur",targets:[{format:"r8unorm"}]},primitive:{topology:"triangle-strip"}}),this.blurUniformBuffer=t.createBuffer({label:"ssao-blur-uniforms",size:32,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),this.sampler=t.createSampler({label:"ssao-sampler",magFilter:"linear",minFilter:"linear",addressModeU:"repeat",addressModeV:"repeat"})}render(t,n,r,a,i,o){let u=o.invProjMatrix??et.invert(o.projMatrix)??et.identity(),c=new Float32Array(64);c.set(o.projMatrix,0),c.set(u,16),c.set(o.viewMatrix,32),c[48]=o.radius??45,c[49]=o.bias??.025,c[50]=o.intensity??1.5,new Uint32Array(c.buffer)[51]=o.kernelSamples??16,c[52]=o.width,c[53]=o.height,this.device.queue.writeBuffer(this.ssaoUniformBuffer,0,c);let l=this.device.createBindGroup({label:"ssao-eval-bg",layout:this.ssaoBindGroupLayout,entries:[{binding:0,resource:n},{binding:1,resource:r},{binding:2,resource:this.noiseTexture.createView()},{binding:3,resource:this.sampler},{binding:4,resource:{buffer:this.kernelBuffer}},{binding:5,resource:{buffer:this.ssaoUniformBuffer}}]}),m=t.beginRenderPass({label:"ssao-eval-pass",colorAttachments:[{view:a,loadOp:"clear",storeOp:"store",clearValue:{r:1,g:1,b:1,a:1}}]});m.setPipeline(this.ssaoPipeline),m.setBindGroup(0,l),m.draw(4),m.end();let d=new ArrayBuffer(32),p=new Float32Array(d),f=new Int32Array(d);p[0]=o.width,p[1]=o.height,f[2]=o.blurRadius??4,p[3]=o.depthThreshold??.05,this.device.queue.writeBuffer(this.blurUniformBuffer,0,d);let y=this.device.createBindGroup({label:"ssao-blur-bg",layout:this.blurBindGroupLayout,entries:[{binding:0,resource:a},{binding:1,resource:n},{binding:2,resource:this.sampler},{binding:3,resource:{buffer:this.blurUniformBuffer}}]}),h=t.beginRenderPass({label:"ssao-blur-pass",colorAttachments:[{view:i,loadOp:"clear",storeOp:"store",clearValue:{r:1,g:1,b:1,a:1}}]});h.setPipeline(this.blurPipeline),h.setBindGroup(0,y),h.draw(4),h.end()}destroy(){this.ssaoUniformBuffer.destroy(),this.blurUniformBuffer.destroy(),this.noiseTexture.destroy()}};g();var Ob=e=>{if(!e)return"srcOver";switch(e){case"source-over":return"srcOver";case"source-in":return"srcIn";case"source-out":return"srcOut";case"source-atop":return"srcATop";case"destination-over":return"dstOver";case"destination-in":return"dstIn";case"destination-out":return"dstOut";case"destination-atop":return"dstATop";case"copy":return"src";case"xor":return"xor";case"multiply":return"multiply";case"screen":return"screen";case"overlay":return"overlay";case"darken":return"darken";case"lighten":case"lighter":return"lighten";case"color-dodge":return"colorDodge";case"color-burn":return"colorBurn";case"hard-light":return"hardLight";case"soft-light":return"softLight";case"difference":return"difference";case"exclusion":return"exclusion";case"hue":return"hue";case"saturation":return"saturation";case"color":return"color";case"luminosity":return"luminosity";default:return"srcOver"}},Lb=e=>e==="destination-in"||e==="source-in";g();function Bb(e,t,n,r,a="outside"){if(a==="inside"){let i=r/2;return{x:i,y:i,width:Math.max(0,e-r),height:Math.max(0,t-r),radius:n===0?0:Math.max(0,n-i)}}if(a==="outside"){let i=r/2;return{x:-i,y:-i,width:e+r,height:t+r,radius:n===0?0:n+i}}return{x:0,y:0,width:e,height:t,radius:n}}g();g();var Ie={create(e=0,t=0,n=0){return[e,t,n]},copy(e){return[e[0],e[1],e[2]]},set(e,t,n,r){return e[0]=t,e[1]=n,e[2]=r,e},add(e,t){return[e[0]+t[0],e[1]+t[1],e[2]+t[2]]},subtract(e,t){return[e[0]-t[0],e[1]-t[1],e[2]-t[2]]},multiplyScalar(e,t){return[e[0]*t,e[1]*t,e[2]*t]},dot(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]},cross(e,t){return[e[1]*t[2]-e[2]*t[1],e[2]*t[0]-e[0]*t[2],e[0]*t[1]-e[1]*t[0]]},lengthSq(e){return e[0]*e[0]+e[1]*e[1]+e[2]*e[2]},length(e){return Math.hypot(e[0],e[1],e[2])},distance(e,t){return Math.hypot(e[0]-t[0],e[1]-t[1],e[2]-t[2])},normalize(e){let t=Math.hypot(e[0],e[1],e[2]);if(t===0)return[0,0,0];let n=1/t;return[e[0]*n,e[1]*n,e[2]*n]},lerp(e,t,n){return[e[0]+(t[0]-e[0])*n,e[1]+(t[1]-e[1])*n,e[2]+(t[2]-e[2])*n]},equals(e,t,n=1e-6){return Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n}};var $n={identity(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]},copy(e){return[...e]},multiply(e,t){let n=new Array(16);for(let r=0;r<4;r++)for(let a=0;a<4;a++)n[a*4+r]=e[0+r]*t[a*4+0]+e[4+r]*t[a*4+1]+e[8+r]*t[a*4+2]+e[12+r]*t[a*4+3];return n},translate(e,t,n=0){return[1,0,0,0,0,1,0,0,0,0,1,0,e,t,n,1]},scale(e,t,n=1){return[e,0,0,0,0,t,0,0,0,0,n,0,0,0,0,1]},rotateX(e){let t=Math.cos(e),n=Math.sin(e);return[1,0,0,0,0,t,n,0,0,-n,t,0,0,0,0,1]},rotateY(e){let t=Math.cos(e),n=Math.sin(e);return[t,0,-n,0,0,1,0,0,n,0,t,0,0,0,0,1]},rotateZ(e){let t=Math.cos(e),n=Math.sin(e);return[t,n,0,0,-n,t,0,0,0,0,1,0,0,0,0,1]},rotateAxis(e,t){let n=Ie.normalize(e),r=n[0],a=n[1],i=n[2],o=Math.cos(t),u=Math.sin(t),c=1-o;return[c*r*r+o,c*r*a+u*i,c*r*i-u*a,0,c*r*a-u*i,c*a*a+o,c*a*i+u*r,0,c*r*i+u*a,c*a*i-u*r,c*i*i+o,0,0,0,0,1]},lookAt(e,t,n=[0,-1,0]){let r=Ie.subtract(t,e);Ie.lengthSq(r)===0?r=[0,0,1]:r=Ie.normalize(r);let a=Ie.cross(r,n);Ie.lengthSq(a)===0?a=[1,0,0]:a=Ie.normalize(a);let i=Ie.cross(a,r);return[a[0],i[0],r[0],0,a[1],i[1],r[1],0,a[2],i[2],r[2],0,-Ie.dot(a,e),-Ie.dot(i,e),-Ie.dot(r,e),1]},perspective(e,t,n,r){let a=1/Math.tan(e/2),i=1/(r-n);return[a/t,0,0,0,0,a,0,0,0,0,r*i,1,0,0,-n*r*i,0]},orthographic(e,t,n,r,a,i){let o=1/(t-e),u=1/(r-n),c=1/(i-a);return[2*o,0,0,0,0,2*u,0,0,0,0,c,0,-(t+e)*o,-(r+n)*u,-a*c,1]},invert(e){let t=new Array(16);t[0]=e[5]*e[10]*e[15]-e[5]*e[11]*e[14]-e[9]*e[6]*e[15]+e[9]*e[7]*e[14]+e[13]*e[6]*e[11]-e[13]*e[7]*e[10],t[4]=-e[4]*e[10]*e[15]+e[4]*e[11]*e[14]+e[8]*e[6]*e[15]-e[8]*e[7]*e[14]-e[12]*e[6]*e[11]+e[12]*e[7]*e[10],t[8]=e[4]*e[9]*e[15]-e[4]*e[11]*e[13]-e[8]*e[5]*e[15]+e[8]*e[7]*e[13]+e[12]*e[5]*e[11]-e[12]*e[7]*e[9],t[12]=-e[4]*e[9]*e[14]+e[4]*e[10]*e[13]+e[8]*e[5]*e[14]-e[8]*e[6]*e[13]-e[12]*e[5]*e[10]+e[12]*e[6]*e[9],t[1]=-e[1]*e[10]*e[15]+e[1]*e[11]*e[14]+e[9]*e[2]*e[15]-e[9]*e[3]*e[14]-e[13]*e[2]*e[11]+e[13]*e[3]*e[10],t[5]=e[0]*e[10]*e[15]-e[0]*e[11]*e[14]-e[8]*e[2]*e[15]+e[8]*e[3]*e[14]+e[12]*e[2]*e[11]-e[12]*e[3]*e[10],t[9]=-e[0]*e[9]*e[15]+e[0]*e[11]*e[13]+e[8]*e[1]*e[15]-e[8]*e[3]*e[13]-e[12]*e[1]*e[11]+e[12]*e[3]*e[9],t[13]=e[0]*e[9]*e[14]-e[0]*e[10]*e[13]-e[8]*e[1]*e[14]+e[8]*e[2]*e[13]+e[12]*e[1]*e[10]-e[12]*e[2]*e[9],t[2]=e[1]*e[6]*e[15]-e[1]*e[7]*e[14]-e[5]*e[2]*e[15]+e[5]*e[3]*e[14]+e[13]*e[2]*e[7]-e[13]*e[3]*e[6],t[6]=-e[0]*e[6]*e[15]+e[0]*e[7]*e[14]+e[4]*e[2]*e[15]-e[4]*e[3]*e[14]-e[12]*e[2]*e[7]+e[12]*e[3]*e[6],t[10]=e[0]*e[5]*e[15]-e[0]*e[7]*e[13]-e[4]*e[1]*e[15]+e[4]*e[3]*e[13]+e[12]*e[1]*e[7]-e[12]*e[3]*e[5],t[14]=-e[0]*e[5]*e[14]+e[0]*e[6]*e[13]+e[4]*e[1]*e[14]-e[4]*e[2]*e[13]-e[12]*e[1]*e[6]+e[12]*e[2]*e[5],t[3]=-e[1]*e[6]*e[11]+e[1]*e[7]*e[10]+e[5]*e[2]*e[11]-e[5]*e[3]*e[10]-e[9]*e[2]*e[7]+e[9]*e[3]*e[6],t[7]=e[0]*e[6]*e[11]-e[0]*e[7]*e[10]-e[4]*e[2]*e[11]+e[4]*e[3]*e[10]+e[8]*e[2]*e[7]-e[8]*e[3]*e[6],t[11]=-e[0]*e[5]*e[11]+e[0]*e[7]*e[9]+e[4]*e[1]*e[11]-e[4]*e[3]*e[9]-e[8]*e[1]*e[7]+e[8]*e[3]*e[5],t[15]=e[0]*e[5]*e[10]-e[0]*e[6]*e[9]-e[4]*e[1]*e[10]+e[4]*e[2]*e[9]+e[8]*e[1]*e[6]-e[8]*e[2]*e[5];let n=e[0]*t[0]+e[1]*t[4]+e[2]*t[8]+e[3]*t[12];if(Math.abs(n)<1e-12)return null;n=1/n;for(let r=0;r<16;r++)t[r]*=n;return t},transpose(e){return[e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15]]},projectPoint(e,t){let n=t[0],r=t[1],a=t[2],i=e[0]*n+e[4]*r+e[8]*a+e[12],o=e[1]*n+e[5]*r+e[9]*a+e[13],u=e[2]*n+e[6]*r+e[10]*a+e[14],c=e[3]*n+e[7]*r+e[11]*a+e[15],l=Math.abs(c)>1e-6?1/c:1;return[i*l,o*l,u*l]},projectRectangle(e,t,n){return[$n.projectPoint(e,[0,0,0]),$n.projectPoint(e,[t,0,0]),$n.projectPoint(e,[t,n,0]),$n.projectPoint(e,[0,n,0])]},toFloat32Array(e){return new Float32Array(e)}};g();var jb=8,$b=544;function Wb(e){if(!e)return[1,1,1];if(Array.isArray(e)){let a=e[0]??1,i=e[1]??1,o=e[2]??1;return[a>1?a/255:a,i>1?i/255:i,o>1?o/255:o]}if(typeof e=="object"&&e!==null){let a=e.r??1,i=e.g??1,o=e.b??1;return[a>1?a/255:a,i>1?i/255:i,o>1?o/255:o]}if(typeof e!="string")return[1,1,1];let t=e.trim().toLowerCase();if(t.startsWith("#")){let a=t.slice(1);if(a.length===3){let i=Number.parseInt(a[0]+a[0],16)/255,o=Number.parseInt(a[1]+a[1],16)/255,u=Number.parseInt(a[2]+a[2],16)/255;return[i,o,u]}if(a.length>=6){let i=Number.parseInt(a.slice(0,2),16)/255,o=Number.parseInt(a.slice(2,4),16)/255,u=Number.parseInt(a.slice(4,6),16)/255;return[i,o,u]}}let n=t.match(/rgba?\s*\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)/);if(n){let a=Number.parseFloat(n[1])/255,i=Number.parseFloat(n[2])/255,o=Number.parseFloat(n[3])/255;return[Math.max(0,Math.min(1,a)),Math.max(0,Math.min(1,i)),Math.max(0,Math.min(1,o))]}let r=t.match(/hsla?\s*\(\s*([\d.]+)\s*,\s*([\d.]+)%?\s*,\s*([\d.]+)%?/);if(r){let a=Number.parseFloat(r[1])/360,i=Number.parseFloat(r[2])/100,o=Number.parseFloat(r[3])/100;return td(a,i,o)}return[1,1,1]}function td(e,t,n){if(t===0)return[n,n,n];let r=(o,u,c)=>{let l=c;return l<0&&(l+=1),l>1&&(l-=1),l<1/6?o+(u-o)*6*l:l<1/2?u:l<2/3?o+(u-o)*(2/3-l)*6:o},a=n<.5?n*(1+t):n+t-n*t,i=2*n-a;return[r(i,a,e+1/3),r(i,a,e),r(i,a,e-1/3)]}g();var mo=new Map;function ee(e){let t=(mo.get(e)??0)+1;return mo.set(e,t),`${e}-auto-${t}`}g();function nd(e,...t){let n=[];for(let r=0;r<e.length;r++){let a=e[r];if(a&&n.push({text:a}),r<t.length){let i=t[r];if(i==null)continue;if(Array.isArray(i))for(let o of i)typeof o=="string"?o&&n.push({text:o}):o&&typeof o=="object"&&"text"in o&&n.push(o);else typeof i=="object"&&"text"in i?n.push(i):typeof i=="object"&&"get"in i&&typeof i.get=="function"?n.push({text:i}):n.push({text:String(i)})}}return n}function rd(e,t={}){return{text:e,...t}}function ad(e,t={}){return{text:e,fontWeight:t.fontWeight??700,...t}}function id(e,t={}){return{text:e,fontStyle:"italic",...t}}function od(e,t={}){return{text:e,fill:t.fill??"#6366f1",...t}}function sd(e,t,n={}){return{text:e,fill:t,...n}}function ud(e,t,n={}){return{text:e,fontSize:t,...n}}function ld(e,t={}){let{bg:n,fill:r,radius:a,paddingX:i,paddingY:o,...u}=t;return{text:e,fill:r,mark:{background:n??"#6366f133",borderRadius:a??4,paddingX:i??6,paddingY:o??2},...u}}function cd(e,t={}){return{text:e,baselineShift:t.baselineShift??-8,...t}}function dd(e,t={}){return{text:e,baselineShift:t.baselineShift??6,...t}}function md(e,t={}){return{text:e,fontFamily:t.fontFamily??"JetBrains Mono",mark:t.mark??{background:"#ffffff18",borderRadius:4,paddingX:6,paddingY:2},...t}}function Wn(e){if(typeof e=="string")return{text:e};if(!Array.isArray(e))return{text:String(e)};let t=[],n="";for(let r of e)if(typeof r=="string")r&&(t.push({text:r}),n+=r);else if(r&&typeof r=="object"&&"text"in r){let a=r;t.push(a);let i=typeof a.text=="string"?a.text:a.text&&typeof a.text=="object"&&"get"in a.text&&typeof a.text.get=="function"?String(a.text.get()):String(a.text??"");n+=i}return{text:n,spans:t.length>0?t:void 0}}function pd(e){if(!e||!e.includes("<"))return[{text:e}];let t=[],n=/<(\/?[a-zA-Z0-9_-]+)([^>]*)>/g,r=0,a=[],i=()=>{let u={};for(let c of a)Object.assign(u,c.style);return u};for(;;){let u=n.exec(e);if(!u)break;let c=e.slice(r,u.index);c&&t.push({text:c,...i()}),r=u.index+u[0].length;let l=u[1].toLowerCase(),m=u[2];if(l.startsWith("/")){let d=l.slice(1);for(let p=a.length-1;p>=0;p--)if(a[p].tag===d){a.splice(p,1);break}}else{let d={},p=/([a-zA-Z0-9_-]+)=["']([^"']*)["']/g;for(;;){let y=p.exec(m);if(!y)break;d[y[1].toLowerCase()]=y[2]}let f={};if(l==="b"||l==="strong")f.fontWeight=700,(d.color||d.fill)&&(f.fill=d.color??d.fill);else if(l==="i"||l==="em")f.fontStyle="italic",(d.color||d.fill)&&(f.fill=d.color??d.fill);else if(l==="accent")f.fill="#6366f1";else if(l==="color")f.fill=d.value??d.hex??d.fill;else if(l==="size"){let y=parseFloat(d.value??d.px??d.pt??"0");y>0&&(f.fontSize=y)}else if(l==="mark")f.mark={background:d.bg??d.background??"#6366f133",borderRadius:d.radius?parseFloat(d.radius):4,paddingX:d.paddingx?parseFloat(d.paddingx):6,paddingY:d.paddingy?parseFloat(d.paddingy):2},(d.color||d.fill)&&(f.fill=d.color??d.fill);else if(l==="sup")f.baselineShift=-8;else if(l==="sub")f.baselineShift=6;else if(l==="code")f.fontFamily="JetBrains Mono",f.mark={background:d.bg??"#ffffff18",borderRadius:4,paddingX:6,paddingY:2};else if(l==="span"){if((d.color||d.fill)&&(f.fill=d.color??d.fill),d.fontfamily&&(f.fontFamily=d.fontfamily),d.fontsize&&(f.fontSize=parseFloat(d.fontsize)),d.fontweight){let y=parseInt(d.fontweight,10);f.fontWeight=Number.isNaN(y)?d.fontweight:y}(d.fontstyle==="italic"||d.fontstyle==="normal")&&(f.fontStyle=d.fontstyle),d.letterspacing&&(f.letterSpacing=parseFloat(d.letterspacing)),d.baselineshift&&(f.baselineShift=parseFloat(d.baselineshift)),d.opacity&&(f.opacity=parseFloat(d.opacity))}a.push({tag:l,style:f})}}let o=e.slice(r);return o&&t.push({text:o,...i()}),t}g();var un=class{textures=new Map;set(t,n){this.textures.set(t,n)}get(t){return this.textures.get(t)}has(t){return this.textures.has(t)}getOutputs(){return{canny:this.textures.get("canny"),depth:this.textures.get("depth"),normals:this.textures.get("normals"),poseSkeleton:this.textures.get("poseSkeleton"),segmentationMask:this.textures.get("segmentationMask"),faceLandmarks:this.textures.get("faceLandmarks"),motionVectors:this.textures.get("motionVectors"),deflickered:this.textures.get("deflickered")}}createBindGroupEntry(t,n){let r=this.textures.get(t);if(!r)throw new Error(`[ControlNetMultiplexer] Cannot create bind group entry: conditioning texture "${t}" is not registered in VRAM.`);return{binding:n,resource:r.createView({label:`controlnet_${t}_view`})}}exportTensorView(t){let n=this.textures.get(t);if(!n)throw new Error(`[ControlNetMultiplexer] Conditioning tensor "${t}" not found in multiplexer.`);return{texture:n,width:n.width,height:n.height,format:n.format}}async readPixelsAsync(t,n){let r=this.textures.get(n);if(!r)throw new Error(`[ControlNetMultiplexer] Cannot read pixels: conditioning texture "${n}" is missing.`);let a=r.width,i=r.height,o=r.format,u=4;o==="rgba16float"||o==="rg32float"?u=8:o==="r32float"?u=4:o==="rgba32float"&&(u=16);let c=a*u,l=Math.ceil(c/256)*256,m=l*i,d=t.createBuffer({size:m,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ,label:`controlnet_readback_staging_${n}`}),p=t.createCommandEncoder({label:`readback_encoder_${n}`});p.copyTextureToBuffer({texture:r},{buffer:d,bytesPerRow:l,rowsPerImage:i},[a,i,1]),t.queue.submit([p.finish()]),await d.mapAsync(GPUMapMode.READ);let f=d.getMappedRange(),y=new Uint8Array(a*i*u),h=new Uint8Array(f);if(l===c)y.set(h.subarray(0,a*i*u));else for(let b=0;b<i;b++){let x=b*l,v=b*c;y.set(h.subarray(x,x+c),v)}return d.unmap(),d.destroy(),{width:a,height:i,format:o,data:y}}destroy(){for(let t of this.textures.values())try{t.destroy()}catch{}this.textures.clear()}};g();g();g();var po=`
380
+ `;var Ci=class{device;ssaoPipeline;blurPipeline;ssaoBindGroupLayout;blurBindGroupLayout;ssaoUniformBuffer;blurUniformBuffer;kernelBuffer;noiseTexture;sampler;constructor(t){this.device=t,this.noiseTexture=t.createTexture({label:"ssao-noise-tex",size:[4,4,1],format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST});let r=new Uint8Array(64);for(let s=0;s<16;s++)r[s*4+0]=Math.floor(Math.random()*255),r[s*4+1]=Math.floor(Math.random()*255),r[s*4+2]=128,r[s*4+3]=255;t.queue.writeTexture({texture:this.noiseTexture},r,{bytesPerRow:16},[4,4,1]);let n=new Float32Array(128);for(let s=0;s<32;s++){let u=Math.random(),c=Math.random(),l=Math.acos(Math.sqrt(1-u)),m=2*Math.PI*c,d=(s+1)/32;d=.1+.9*(d*d),n[s*4+0]=Math.sin(l)*Math.cos(m)*d,n[s*4+1]=Math.sin(l)*Math.sin(m)*d,n[s*4+2]=Math.cos(l)*d,n[s*4+3]=0}this.kernelBuffer=t.createBuffer({label:"ssao-kernel-buffer",size:n.byteLength,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST}),t.queue.writeBuffer(this.kernelBuffer,0,n);let i=t.createShaderModule({label:"ssao-shader",code:Ro});this.ssaoBindGroupLayout=t.createBindGroupLayout({label:"ssao-bgl",entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"depth"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:2,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:3,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}},{binding:4,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"read-only-storage"}},{binding:5,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),this.ssaoPipeline=t.createRenderPipeline({label:"ssao-eval-pipeline",layout:t.createPipelineLayout({bindGroupLayouts:[this.ssaoBindGroupLayout]}),vertex:{module:i,entryPoint:"vs_main"},fragment:{module:i,entryPoint:"fs_ssao",targets:[{format:"r8unorm"}]},primitive:{topology:"triangle-strip"}}),this.ssaoUniformBuffer=t.createBuffer({label:"ssao-uniforms",size:256,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST});let a=t.createShaderModule({label:"ssao-blur-shader",code:Bo});this.blurBindGroupLayout=t.createBindGroupLayout({label:"ssao-blur-bgl",entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"depth"}},{binding:2,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}},{binding:3,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),this.blurPipeline=t.createRenderPipeline({label:"ssao-blur-pipeline",layout:t.createPipelineLayout({bindGroupLayouts:[this.blurBindGroupLayout]}),vertex:{module:a,entryPoint:"vs_main"},fragment:{module:a,entryPoint:"fs_blur",targets:[{format:"r8unorm"}]},primitive:{topology:"triangle-strip"}}),this.blurUniformBuffer=t.createBuffer({label:"ssao-blur-uniforms",size:32,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),this.sampler=t.createSampler({label:"ssao-sampler",magFilter:"linear",minFilter:"linear",addressModeU:"repeat",addressModeV:"repeat"})}render(t,r,n,i,a,s){let u=s.invProjMatrix??Qe.invert(s.projMatrix)??Qe.identity(),c=new Float32Array(64);c.set(s.projMatrix,0),c.set(u,16),c.set(s.viewMatrix,32),c[48]=s.radius??45,c[49]=s.bias??.025,c[50]=s.intensity??1.5,new Uint32Array(c.buffer)[51]=s.kernelSamples??16,c[52]=s.width,c[53]=s.height,this.device.queue.writeBuffer(this.ssaoUniformBuffer,0,c);let l=this.device.createBindGroup({label:"ssao-eval-bg",layout:this.ssaoBindGroupLayout,entries:[{binding:0,resource:r},{binding:1,resource:n},{binding:2,resource:this.noiseTexture.createView()},{binding:3,resource:this.sampler},{binding:4,resource:{buffer:this.kernelBuffer}},{binding:5,resource:{buffer:this.ssaoUniformBuffer}}]}),m=t.beginRenderPass({label:"ssao-eval-pass",colorAttachments:[{view:i,loadOp:"clear",storeOp:"store",clearValue:{r:1,g:1,b:1,a:1}}]});m.setPipeline(this.ssaoPipeline),m.setBindGroup(0,l),m.draw(4),m.end();let d=new ArrayBuffer(32),p=new Float32Array(d),f=new Int32Array(d);p[0]=s.width,p[1]=s.height,f[2]=s.blurRadius??4,p[3]=s.depthThreshold??.05,this.device.queue.writeBuffer(this.blurUniformBuffer,0,d);let y=this.device.createBindGroup({label:"ssao-blur-bg",layout:this.blurBindGroupLayout,entries:[{binding:0,resource:i},{binding:1,resource:r},{binding:2,resource:this.sampler},{binding:3,resource:{buffer:this.blurUniformBuffer}}]}),g=t.beginRenderPass({label:"ssao-blur-pass",colorAttachments:[{view:a,loadOp:"clear",storeOp:"store",clearValue:{r:1,g:1,b:1,a:1}}]});g.setPipeline(this.blurPipeline),g.setBindGroup(0,y),g.draw(4),g.end()}destroy(){this.ssaoUniformBuffer.destroy(),this.blurUniformBuffer.destroy(),this.noiseTexture.destroy()}};h();var Wb=e=>{if(!e)return"srcOver";switch(e){case"source-over":return"srcOver";case"source-in":return"srcIn";case"source-out":return"srcOut";case"source-atop":return"srcATop";case"destination-over":return"dstOver";case"destination-in":return"dstIn";case"destination-out":return"dstOut";case"destination-atop":return"dstATop";case"copy":return"src";case"xor":return"xor";case"multiply":return"multiply";case"screen":return"screen";case"overlay":return"overlay";case"darken":return"darken";case"lighten":case"lighter":return"lighten";case"color-dodge":return"colorDodge";case"color-burn":return"colorBurn";case"hard-light":return"hardLight";case"soft-light":return"softLight";case"difference":return"difference";case"exclusion":return"exclusion";case"hue":return"hue";case"saturation":return"saturation";case"color":return"color";case"luminosity":return"luminosity";default:return"srcOver"}},Hb=e=>e==="destination-in"||e==="source-in";h();function qb(e,t,r,n,i="outside"){if(i==="inside"){let a=n/2;return{x:a,y:a,width:Math.max(0,e-n),height:Math.max(0,t-n),radius:r===0?0:Math.max(0,r-a)}}if(i==="outside"){let a=n/2;return{x:-a,y:-a,width:e+n,height:t+n,radius:r===0?0:r+a}}return{x:0,y:0,width:e,height:t,radius:r}}h();var Eo=new Map;function J(e){let t=(Eo.get(e)??0)+1;return Eo.set(e,t),`${e}-auto-${t}`}h();function Sd(e,...t){let r=[];for(let n=0;n<e.length;n++){let i=e[n];if(i&&r.push({text:i}),n<t.length){let a=t[n];if(a==null)continue;if(Array.isArray(a))for(let s of a)typeof s=="string"?s&&r.push({text:s}):s&&typeof s=="object"&&"text"in s&&r.push(s);else typeof a=="object"&&"text"in a?r.push(a):typeof a=="object"&&"get"in a&&typeof a.get=="function"?r.push({text:a}):r.push({text:String(a)})}}return r}function kd(e,t={}){return{text:e,...t}}function Td(e,t={}){return{text:e,fontWeight:t.fontWeight??700,...t}}function Pd(e,t={}){return{text:e,fontStyle:"italic",...t}}function Md(e,t={}){return{text:e,fill:t.fill??"#6366f1",...t}}function Cd(e,t,r={}){return{text:e,fill:t,...r}}function Nd(e,t,r={}){return{text:e,fontSize:t,...r}}function Ad(e,t={}){let{bg:r,fill:n,radius:i,paddingX:a,paddingY:s,...u}=t;return{text:e,fill:n,mark:{background:r??"#6366f133",borderRadius:i??4,paddingX:a??6,paddingY:s??2},...u}}function Od(e,t={}){return{text:e,baselineShift:t.baselineShift??-8,...t}}function Dd(e,t={}){return{text:e,baselineShift:t.baselineShift??6,...t}}function Ld(e,t={}){return{text:e,fontFamily:t.fontFamily??"JetBrains Mono",mark:t.mark??{background:"#ffffff18",borderRadius:4,paddingX:6,paddingY:2},...t}}function Vr(e){if(typeof e=="string")return{text:e};if(!Array.isArray(e))return{text:String(e)};let t=[],r="";for(let n of e)if(typeof n=="string")n&&(t.push({text:n}),r+=n);else if(n&&typeof n=="object"&&"text"in n){let i=n;t.push(i);let a=typeof i.text=="string"?i.text:i.text&&typeof i.text=="object"&&"get"in i.text&&typeof i.text.get=="function"?String(i.text.get()):String(i.text??"");r+=a}return{text:r,spans:t.length>0?t:void 0}}function Fd(e){if(!e||!e.includes("<"))return[{text:e}];let t=[],r=/<(\/?[a-zA-Z0-9_-]+)([^>]*)>/g,n=0,i=[],a=()=>{let u={};for(let c of i)Object.assign(u,c.style);return u};for(;;){let u=r.exec(e);if(!u)break;let c=e.slice(n,u.index);c&&t.push({text:c,...a()}),n=u.index+u[0].length;let l=u[1].toLowerCase(),m=u[2];if(l.startsWith("/")){let d=l.slice(1);for(let p=i.length-1;p>=0;p--)if(i[p].tag===d){i.splice(p,1);break}}else{let d={},p=/([a-zA-Z0-9_-]+)=["']([^"']*)["']/g;for(;;){let y=p.exec(m);if(!y)break;d[y[1].toLowerCase()]=y[2]}let f={};if(l==="b"||l==="strong")f.fontWeight=700,(d.color||d.fill)&&(f.fill=d.color??d.fill);else if(l==="i"||l==="em")f.fontStyle="italic",(d.color||d.fill)&&(f.fill=d.color??d.fill);else if(l==="accent")f.fill="#6366f1";else if(l==="color")f.fill=d.value??d.hex??d.fill;else if(l==="size"){let y=parseFloat(d.value??d.px??d.pt??"0");y>0&&(f.fontSize=y)}else if(l==="mark")f.mark={background:d.bg??d.background??"#6366f133",borderRadius:d.radius?parseFloat(d.radius):4,paddingX:d.paddingx?parseFloat(d.paddingx):6,paddingY:d.paddingy?parseFloat(d.paddingy):2},(d.color||d.fill)&&(f.fill=d.color??d.fill);else if(l==="sup")f.baselineShift=-8;else if(l==="sub")f.baselineShift=6;else if(l==="code")f.fontFamily="JetBrains Mono",f.mark={background:d.bg??"#ffffff18",borderRadius:4,paddingX:6,paddingY:2};else if(l==="span"){if((d.color||d.fill)&&(f.fill=d.color??d.fill),d.fontfamily&&(f.fontFamily=d.fontfamily),d.fontsize&&(f.fontSize=parseFloat(d.fontsize)),d.fontweight){let y=parseInt(d.fontweight,10);f.fontWeight=Number.isNaN(y)?d.fontweight:y}(d.fontstyle==="italic"||d.fontstyle==="normal")&&(f.fontStyle=d.fontstyle),d.letterspacing&&(f.letterSpacing=parseFloat(d.letterspacing)),d.baselineshift&&(f.baselineShift=parseFloat(d.baselineshift)),d.opacity&&(f.opacity=parseFloat(d.opacity))}i.push({tag:l,style:f})}}let s=e.slice(n);return s&&t.push({text:s,...a()}),t}h();var sr=class{textures=new Map;set(t,r){this.textures.set(t,r)}get(t){return this.textures.get(t)}has(t){return this.textures.has(t)}getOutputs(){return{canny:this.textures.get("canny"),depth:this.textures.get("depth"),normals:this.textures.get("normals"),poseSkeleton:this.textures.get("poseSkeleton"),segmentationMask:this.textures.get("segmentationMask"),faceLandmarks:this.textures.get("faceLandmarks"),motionVectors:this.textures.get("motionVectors"),deflickered:this.textures.get("deflickered")}}createBindGroupEntry(t,r){let n=this.textures.get(t);if(!n)throw new Error(`[ControlNetMultiplexer] Cannot create bind group entry: conditioning texture "${t}" is not registered in VRAM.`);return{binding:r,resource:n.createView({label:`controlnet_${t}_view`})}}exportTensorView(t){let r=this.textures.get(t);if(!r)throw new Error(`[ControlNetMultiplexer] Conditioning tensor "${t}" not found in multiplexer.`);return{texture:r,width:r.width,height:r.height,format:r.format}}async readPixelsAsync(t,r){let n=this.textures.get(r);if(!n)throw new Error(`[ControlNetMultiplexer] Cannot read pixels: conditioning texture "${r}" is missing.`);let i=n.width,a=n.height,s=n.format,u=4;s==="rgba16float"||s==="rg32float"?u=8:s==="r32float"?u=4:s==="rgba32float"&&(u=16);let c=i*u,l=Math.ceil(c/256)*256,m=l*a,d=t.createBuffer({size:m,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ,label:`controlnet_readback_staging_${r}`}),p=t.createCommandEncoder({label:`readback_encoder_${r}`});p.copyTextureToBuffer({texture:n},{buffer:d,bytesPerRow:l,rowsPerImage:a},[i,a,1]),t.queue.submit([p.finish()]),await d.mapAsync(GPUMapMode.READ);let f=d.getMappedRange(),y=new Uint8Array(i*a*u),g=new Uint8Array(f);if(l===c)y.set(g.subarray(0,i*a*u));else for(let b=0;b<a;b++){let P=b*l,N=b*c;y.set(g.subarray(P,P+c),N)}return d.unmap(),d.destroy(),{width:i,height:a,format:s,data:y}}destroy(){for(let t of this.textures.values())try{t.destroy()}catch{}this.textures.clear()}};h();h();h();var Uo=`
381
381
  struct CannyParams {
382
382
  lowThreshold: f32,
383
383
  highThreshold: f32,
@@ -433,7 +433,7 @@ fn computeSobel(@builtin(global_invocation_id) id: vec3<u32>) {
433
433
 
434
434
  textureStore(magnitudeTex, id.xy, vec4<f32>(mag, sector, 0.0, 1.0));
435
435
  }
436
- `,fo=`
436
+ `,_o=`
437
437
  struct CannyParams {
438
438
  lowThreshold: f32,
439
439
  highThreshold: f32,
@@ -491,7 +491,7 @@ fn computeNonMaxSuppression(@builtin(global_invocation_id) id: vec3<u32>) {
491
491
 
492
492
  textureStore(edgeTex, id.xy, vec4<f32>(edge, edge, edge, 1.0));
493
493
  }
494
- `,ho=`
494
+ `,Io=`
495
495
  struct CannyParams {
496
496
  lowThreshold: f32,
497
497
  highThreshold: f32,
@@ -549,7 +549,7 @@ fn computeNonMaxSuppression(@builtin(global_invocation_id) id: vec3<u32>) {
549
549
 
550
550
  textureStore(edgeTex, id.xy, vec4<f32>(edge, 0.0, 0.0, 1.0));
551
551
  }
552
- `;var ln=class{constructor(t){this.device=t;let n=t.createShaderModule({label:"canny_sobel.wgsl",code:po});this.sobelPipeline=t.createComputePipeline({label:"CannySobelPipeline",layout:"auto",compute:{module:n,entryPoint:"computeSobel"}});let r=t.createShaderModule({label:"canny_nms_rgba8.wgsl",code:fo});this.nmsRgba8Pipeline=t.createComputePipeline({label:"CannyNmsRgba8Pipeline",layout:"auto",compute:{module:r,entryPoint:"computeNonMaxSuppression"}});let a=t.createShaderModule({label:"canny_nms_r32f.wgsl",code:ho});this.nmsR32fPipeline=t.createComputePipeline({label:"CannyNmsR32fPipeline",layout:"auto",compute:{module:a,entryPoint:"computeNonMaxSuppression"}}),this.uniformBuffer=t.createBuffer({size:16,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST,label:"canny_uniform_buffer"})}device;sobelPipeline;nmsRgba8Pipeline;nmsR32fPipeline;uniformBuffer;cachedIntermediateTexture;cachedOutputTexture;execute(t,n={}){let r=t.width,a=t.height,i=n.low??.1,o=n.high??.3,u=n.outputFormat??"rgba8unorm",c=new ArrayBuffer(16),l=new Float32Array(c),m=new Uint32Array(c);l[0]=i,l[1]=o,m[2]=r,m[3]=a,this.device.queue.writeBuffer(this.uniformBuffer,0,c),(!this.cachedIntermediateTexture||this.cachedIntermediateTexture.width!==r||this.cachedIntermediateTexture.height!==a)&&(this.cachedIntermediateTexture?.destroy(),this.cachedIntermediateTexture=this.device.createTexture({label:"canny_magnitude_intermediate",size:[r,a],format:"rgba16float",usage:GPUTextureUsage.STORAGE_BINDING|GPUTextureUsage.TEXTURE_BINDING})),(!this.cachedOutputTexture||this.cachedOutputTexture.width!==r||this.cachedOutputTexture.height!==a||this.cachedOutputTexture.format!==u)&&(this.cachedOutputTexture?.destroy(),this.cachedOutputTexture=this.device.createTexture({label:`canny_edge_output_${u}`,size:[r,a],format:u,usage:GPUTextureUsage.STORAGE_BINDING|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC}));let d=this.device.createCommandEncoder({label:"canny_command_encoder"}),p=this.device.createBindGroup({layout:this.sobelPipeline.getBindGroupLayout(0),entries:[{binding:0,resource:t.createView()},{binding:1,resource:this.cachedIntermediateTexture.createView()},{binding:2,resource:{buffer:this.uniformBuffer}}]}),f=d.beginComputePass({label:"canny_sobel_pass"});f.setPipeline(this.sobelPipeline),f.setBindGroup(0,p),f.dispatchWorkgroups(Math.ceil(r/16),Math.ceil(a/16)),f.end();let y=u==="r32float"?this.nmsR32fPipeline:this.nmsRgba8Pipeline,h=this.device.createBindGroup({layout:y.getBindGroupLayout(0),entries:[{binding:0,resource:this.cachedIntermediateTexture.createView()},{binding:1,resource:this.cachedOutputTexture.createView()},{binding:2,resource:{buffer:this.uniformBuffer}}]}),b=d.beginComputePass({label:"canny_nms_pass"});return b.setPipeline(y),b.setBindGroup(0,h),b.dispatchWorkgroups(Math.ceil(r/16),Math.ceil(a/16)),b.end(),this.device.queue.submit([d.finish()]),this.cachedOutputTexture}destroy(){this.cachedIntermediateTexture?.destroy(),this.cachedOutputTexture?.destroy(),this.uniformBuffer.destroy()}};g();g();var go=`
552
+ `;var ur=class{constructor(t){this.device=t;let r=t.createShaderModule({label:"canny_sobel.wgsl",code:Uo});this.sobelPipeline=t.createComputePipeline({label:"CannySobelPipeline",layout:"auto",compute:{module:r,entryPoint:"computeSobel"}});let n=t.createShaderModule({label:"canny_nms_rgba8.wgsl",code:_o});this.nmsRgba8Pipeline=t.createComputePipeline({label:"CannyNmsRgba8Pipeline",layout:"auto",compute:{module:n,entryPoint:"computeNonMaxSuppression"}});let i=t.createShaderModule({label:"canny_nms_r32f.wgsl",code:Io});this.nmsR32fPipeline=t.createComputePipeline({label:"CannyNmsR32fPipeline",layout:"auto",compute:{module:i,entryPoint:"computeNonMaxSuppression"}}),this.uniformBuffer=t.createBuffer({size:16,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST,label:"canny_uniform_buffer"})}device;sobelPipeline;nmsRgba8Pipeline;nmsR32fPipeline;uniformBuffer;cachedIntermediateTexture;cachedOutputTexture;execute(t,r={}){let n=t.width,i=t.height,a=r.low??.1,s=r.high??.3,u=r.outputFormat??"rgba8unorm",c=new ArrayBuffer(16),l=new Float32Array(c),m=new Uint32Array(c);l[0]=a,l[1]=s,m[2]=n,m[3]=i,this.device.queue.writeBuffer(this.uniformBuffer,0,c),(!this.cachedIntermediateTexture||this.cachedIntermediateTexture.width!==n||this.cachedIntermediateTexture.height!==i)&&(this.cachedIntermediateTexture?.destroy(),this.cachedIntermediateTexture=this.device.createTexture({label:"canny_magnitude_intermediate",size:[n,i],format:"rgba16float",usage:GPUTextureUsage.STORAGE_BINDING|GPUTextureUsage.TEXTURE_BINDING})),(!this.cachedOutputTexture||this.cachedOutputTexture.width!==n||this.cachedOutputTexture.height!==i||this.cachedOutputTexture.format!==u)&&(this.cachedOutputTexture?.destroy(),this.cachedOutputTexture=this.device.createTexture({label:`canny_edge_output_${u}`,size:[n,i],format:u,usage:GPUTextureUsage.STORAGE_BINDING|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC}));let d=this.device.createCommandEncoder({label:"canny_command_encoder"}),p=this.device.createBindGroup({layout:this.sobelPipeline.getBindGroupLayout(0),entries:[{binding:0,resource:t.createView()},{binding:1,resource:this.cachedIntermediateTexture.createView()},{binding:2,resource:{buffer:this.uniformBuffer}}]}),f=d.beginComputePass({label:"canny_sobel_pass"});f.setPipeline(this.sobelPipeline),f.setBindGroup(0,p),f.dispatchWorkgroups(Math.ceil(n/16),Math.ceil(i/16)),f.end();let y=u==="r32float"?this.nmsR32fPipeline:this.nmsRgba8Pipeline,g=this.device.createBindGroup({layout:y.getBindGroupLayout(0),entries:[{binding:0,resource:this.cachedIntermediateTexture.createView()},{binding:1,resource:this.cachedOutputTexture.createView()},{binding:2,resource:{buffer:this.uniformBuffer}}]}),b=d.beginComputePass({label:"canny_nms_pass"});return b.setPipeline(y),b.setBindGroup(0,g),b.dispatchWorkgroups(Math.ceil(n/16),Math.ceil(i/16)),b.end(),this.device.queue.submit([d.finish()]),this.cachedOutputTexture}destroy(){this.cachedIntermediateTexture?.destroy(),this.cachedOutputTexture?.destroy(),this.uniformBuffer.destroy()}};h();h();var Go=`
553
553
  struct DepthNormalParams {
554
554
  width: u32,
555
555
  height: u32,
@@ -582,7 +582,7 @@ fn computeNormals(@builtin(global_invocation_id) id: vec3<u32>) {
582
582
  let packedColor = vec4<f32>(normal * 0.5 + 0.5, 1.0);
583
583
  textureStore(normalTex, id.xy, packedColor);
584
584
  }
585
- `,bo=`
585
+ `,zo=`
586
586
  struct DepthNormalParams {
587
587
  width: u32,
588
588
  height: u32,
@@ -615,7 +615,7 @@ fn computeNormals(@builtin(global_invocation_id) id: vec3<u32>) {
615
615
  let packedColor = vec4<f32>(normal * 0.5 + 0.5, 1.0);
616
616
  textureStore(normalTex, id.xy, packedColor);
617
617
  }
618
- `;var cn=class{constructor(t){this.device=t;let n=t.createShaderModule({label:"depth_normals_rgba16f.wgsl",code:go});this.normalRgba16fPipeline=t.createComputePipeline({label:"DepthNormalsRgba16fPipeline",layout:"auto",compute:{module:n,entryPoint:"computeNormals"}});let r=t.createShaderModule({label:"depth_normals_rgba8.wgsl",code:bo});this.normalRgba8Pipeline=t.createComputePipeline({label:"DepthNormalsRgba8Pipeline",layout:"auto",compute:{module:r,entryPoint:"computeNormals"}}),this.uniformBuffer=t.createBuffer({size:16,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST,label:"depth_normals_uniform_buffer"})}device;normalRgba16fPipeline;normalRgba8Pipeline;uniformBuffer;cachedOutputTexture;execute(t,n={}){let r=t.width,a=t.height,i=n.depthScale??1,o=n.outputFormat??"rgba16float",u=new ArrayBuffer(16),c=new Uint32Array(u),l=new Float32Array(u);c[0]=r,c[1]=a,l[2]=i,l[3]=0,this.device.queue.writeBuffer(this.uniformBuffer,0,u),(!this.cachedOutputTexture||this.cachedOutputTexture.width!==r||this.cachedOutputTexture.height!==a||this.cachedOutputTexture.format!==o)&&(this.cachedOutputTexture?.destroy(),this.cachedOutputTexture=this.device.createTexture({label:`normal_output_${o}`,size:[r,a],format:o,usage:GPUTextureUsage.STORAGE_BINDING|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC}));let m=o==="rgba8unorm"?this.normalRgba8Pipeline:this.normalRgba16fPipeline,d=this.device.createCommandEncoder({label:"depth_normals_command_encoder"}),p=this.device.createBindGroup({layout:m.getBindGroupLayout(0),entries:[{binding:0,resource:t.createView()},{binding:1,resource:this.cachedOutputTexture.createView()},{binding:2,resource:{buffer:this.uniformBuffer}}]}),f=d.beginComputePass({label:"depth_normals_compute_pass"});return f.setPipeline(m),f.setBindGroup(0,p),f.dispatchWorkgroups(Math.ceil(r/16),Math.ceil(a/16)),f.end(),this.device.queue.submit([d.finish()]),this.cachedOutputTexture}destroy(){this.cachedOutputTexture?.destroy(),this.uniformBuffer.destroy()}};g();g();var yo=`
618
+ `;var lr=class{constructor(t){this.device=t;let r=t.createShaderModule({label:"depth_normals_rgba16f.wgsl",code:Go});this.normalRgba16fPipeline=t.createComputePipeline({label:"DepthNormalsRgba16fPipeline",layout:"auto",compute:{module:r,entryPoint:"computeNormals"}});let n=t.createShaderModule({label:"depth_normals_rgba8.wgsl",code:zo});this.normalRgba8Pipeline=t.createComputePipeline({label:"DepthNormalsRgba8Pipeline",layout:"auto",compute:{module:n,entryPoint:"computeNormals"}}),this.uniformBuffer=t.createBuffer({size:16,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST,label:"depth_normals_uniform_buffer"})}device;normalRgba16fPipeline;normalRgba8Pipeline;uniformBuffer;cachedOutputTexture;execute(t,r={}){let n=t.width,i=t.height,a=r.depthScale??1,s=r.outputFormat??"rgba16float",u=new ArrayBuffer(16),c=new Uint32Array(u),l=new Float32Array(u);c[0]=n,c[1]=i,l[2]=a,l[3]=0,this.device.queue.writeBuffer(this.uniformBuffer,0,u),(!this.cachedOutputTexture||this.cachedOutputTexture.width!==n||this.cachedOutputTexture.height!==i||this.cachedOutputTexture.format!==s)&&(this.cachedOutputTexture?.destroy(),this.cachedOutputTexture=this.device.createTexture({label:`normal_output_${s}`,size:[n,i],format:s,usage:GPUTextureUsage.STORAGE_BINDING|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC}));let m=s==="rgba8unorm"?this.normalRgba8Pipeline:this.normalRgba16fPipeline,d=this.device.createCommandEncoder({label:"depth_normals_command_encoder"}),p=this.device.createBindGroup({layout:m.getBindGroupLayout(0),entries:[{binding:0,resource:t.createView()},{binding:1,resource:this.cachedOutputTexture.createView()},{binding:2,resource:{buffer:this.uniformBuffer}}]}),f=d.beginComputePass({label:"depth_normals_compute_pass"});return f.setPipeline(m),f.setBindGroup(0,p),f.dispatchWorkgroups(Math.ceil(n/16),Math.ceil(i/16)),f.end(),this.device.queue.submit([d.finish()]),this.cachedOutputTexture}destroy(){this.cachedOutputTexture?.destroy(),this.uniformBuffer.destroy()}};h();h();var $o=`
619
619
  struct FaceSegment {
620
620
  start: vec2<f32>,
621
621
  end: vec2<f32>,
@@ -672,7 +672,7 @@ fn computeFaceLandmarks(@builtin(global_invocation_id) id: vec3<u32>) {
672
672
 
673
673
  textureStore(outputTex, id.xy, outColor);
674
674
  }
675
- `;function He(e,t){let n=[];for(let r=0;r<e.length-1;r++)n.push({from:e[r],to:e[r+1],color:t});return n}var dn=[...He([70,63,105,66,107],[0,1,1,1]),...He([300,293,334,296,336],[0,1,1,1]),...He([33,160,158,133,153,144,33],[0,1,0,1]),...He([263,387,385,362,380,373,263],[0,1,0,1]),...He([168,6,197,195,4],[1,1,0,1]),...He([98,97,2,326,327],[1,1,0,1]),...He([61,185,40,39,37,0,267,269,270,409,291,375,321,405,314,17,84,181,91,146,61],[1,.2,.2,1]),...He([78,95,88,178,87,14,317,402,318,324,308,415,310,311,312,13,82,81,80,191,78],[1,0,.8,1]),...He([10,338,297,332,284,251,389,356,454,323,361,288,397,365,379,378,400,377,152,148,176,149,150,136,172,58,132,93,234,127,162,21,54,103,67,109,10],[.9,.9,.9,1])],Yn=class{constructor(t){this.device=t;let n=t.createShaderModule({label:"face_landmarks.wgsl",code:yo});this.computePipeline=t.createComputePipeline({label:"FaceLandmarksComputePipeline",layout:"auto",compute:{module:n,entryPoint:"computeFaceLandmarks"}}),this.uniformBuffer=t.createBuffer({size:64,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST,label:"face_landmarks_uniform_buffer"});let r=Math.max(256,dn.length*48);this.storageBuffer=t.createBuffer({size:r,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST,label:"face_landmarks_storage_buffer"})}device;computePipeline;uniformBuffer;storageBuffer;cachedOutputTexture;execute(t,n={}){let r=n.width??1024,a=n.height??1024,i=n.lineWidth??4,o=Math.max(1,i/2),u=new Uint32Array(4);u[0]=r,u[1]=a,u[2]=dn.length,u[3]=0,this.device.queue.writeBuffer(this.uniformBuffer,0,u);let c=new Float32Array(dn.length*12);for(let p=0;p<dn.length;p++){let f=dn[p],y=t[f.from],h=t[f.to],b=p*12;if(!y||!h||(y.visibility??1)<.2||(h.visibility??1)<.2){c[b+9]=0;continue}c[b+0]=y.x*r,c[b+1]=y.y*a,c[b+2]=h.x*r,c[b+3]=h.y*a,c[b+4]=f.color[0],c[b+5]=f.color[1],c[b+6]=f.color[2],c[b+7]=f.color[3],c[b+8]=o,c[b+9]=1,c[b+10]=0,c[b+11]=0}this.device.queue.writeBuffer(this.storageBuffer,0,c),(!this.cachedOutputTexture||this.cachedOutputTexture.width!==r||this.cachedOutputTexture.height!==a)&&(this.cachedOutputTexture?.destroy(),this.cachedOutputTexture=this.device.createTexture({size:{width:r,height:a},format:"rgba8unorm",usage:GPUTextureUsage.STORAGE_BINDING|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC|GPUTextureUsage.COPY_DST,label:"face_landmarks_output_texture"}));let l=this.device.createBindGroup({label:"FaceLandmarksBindGroup",layout:this.computePipeline.getBindGroupLayout(0),entries:[{binding:0,resource:this.cachedOutputTexture.createView()},{binding:1,resource:{buffer:this.uniformBuffer}},{binding:2,resource:{buffer:this.storageBuffer}}]}),m=this.device.createCommandEncoder({label:"FaceLandmarksCommandEncoder"}),d=m.beginComputePass({label:"FaceLandmarksComputePass"});return d.setPipeline(this.computePipeline),d.setBindGroup(0,l),d.dispatchWorkgroups(Math.ceil(r/16),Math.ceil(a/16)),d.end(),this.device.queue.submit([m.finish()]),this.cachedOutputTexture}destroy(){this.uniformBuffer.destroy(),this.storageBuffer.destroy(),this.cachedOutputTexture?.destroy()}};g();g();var xo=`
675
+ `;function He(e,t){let r=[];for(let n=0;n<e.length-1;n++)r.push({from:e[n],to:e[n+1],color:t});return r}var cr=[...He([70,63,105,66,107],[0,1,1,1]),...He([300,293,334,296,336],[0,1,1,1]),...He([33,160,158,133,153,144,33],[0,1,0,1]),...He([263,387,385,362,380,373,263],[0,1,0,1]),...He([168,6,197,195,4],[1,1,0,1]),...He([98,97,2,326,327],[1,1,0,1]),...He([61,185,40,39,37,0,267,269,270,409,291,375,321,405,314,17,84,181,91,146,61],[1,.2,.2,1]),...He([78,95,88,178,87,14,317,402,318,324,308,415,310,311,312,13,82,81,80,191,78],[1,0,.8,1]),...He([10,338,297,332,284,251,389,356,454,323,361,288,397,365,379,378,400,377,152,148,176,149,150,136,172,58,132,93,234,127,162,21,54,103,67,109,10],[.9,.9,.9,1])],Wr=class{constructor(t){this.device=t;let r=t.createShaderModule({label:"face_landmarks.wgsl",code:$o});this.computePipeline=t.createComputePipeline({label:"FaceLandmarksComputePipeline",layout:"auto",compute:{module:r,entryPoint:"computeFaceLandmarks"}}),this.uniformBuffer=t.createBuffer({size:64,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST,label:"face_landmarks_uniform_buffer"});let n=Math.max(256,cr.length*48);this.storageBuffer=t.createBuffer({size:n,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST,label:"face_landmarks_storage_buffer"})}device;computePipeline;uniformBuffer;storageBuffer;cachedOutputTexture;execute(t,r={}){let n=r.width??1024,i=r.height??1024,a=r.lineWidth??4,s=Math.max(1,a/2),u=new Uint32Array(4);u[0]=n,u[1]=i,u[2]=cr.length,u[3]=0,this.device.queue.writeBuffer(this.uniformBuffer,0,u);let c=new Float32Array(cr.length*12);for(let p=0;p<cr.length;p++){let f=cr[p],y=t[f.from],g=t[f.to],b=p*12;if(!y||!g||(y.visibility??1)<.2||(g.visibility??1)<.2){c[b+9]=0;continue}c[b+0]=y.x*n,c[b+1]=y.y*i,c[b+2]=g.x*n,c[b+3]=g.y*i,c[b+4]=f.color[0],c[b+5]=f.color[1],c[b+6]=f.color[2],c[b+7]=f.color[3],c[b+8]=s,c[b+9]=1,c[b+10]=0,c[b+11]=0}this.device.queue.writeBuffer(this.storageBuffer,0,c),(!this.cachedOutputTexture||this.cachedOutputTexture.width!==n||this.cachedOutputTexture.height!==i)&&(this.cachedOutputTexture?.destroy(),this.cachedOutputTexture=this.device.createTexture({size:{width:n,height:i},format:"rgba8unorm",usage:GPUTextureUsage.STORAGE_BINDING|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC|GPUTextureUsage.COPY_DST,label:"face_landmarks_output_texture"}));let l=this.device.createBindGroup({label:"FaceLandmarksBindGroup",layout:this.computePipeline.getBindGroupLayout(0),entries:[{binding:0,resource:this.cachedOutputTexture.createView()},{binding:1,resource:{buffer:this.uniformBuffer}},{binding:2,resource:{buffer:this.storageBuffer}}]}),m=this.device.createCommandEncoder({label:"FaceLandmarksCommandEncoder"}),d=m.beginComputePass({label:"FaceLandmarksComputePass"});return d.setPipeline(this.computePipeline),d.setBindGroup(0,l),d.dispatchWorkgroups(Math.ceil(n/16),Math.ceil(i/16)),d.end(),this.device.queue.submit([m.finish()]),this.cachedOutputTexture}destroy(){this.uniformBuffer.destroy(),this.storageBuffer.destroy(),this.cachedOutputTexture?.destroy()}};h();h();var jo=`
676
676
  struct SegParams {
677
677
  threshold: f32,
678
678
  feather: f32,
@@ -702,21 +702,18 @@ fn computeSegmentation(@builtin(global_invocation_id) id: vec3<u32>) {
702
702
 
703
703
  textureStore(outputTex, id.xy, vec4<f32>(alpha, alpha, alpha, 1.0));
704
704
  }
705
- `;var Hn=class{constructor(t){this.device=t;let n=t.createShaderModule({label:"segmentation.wgsl",code:xo});this.computePipeline=t.createComputePipeline({label:"SegmentationComputePipeline",layout:"auto",compute:{module:n,entryPoint:"computeSegmentation"}}),this.uniformBuffer=t.createBuffer({size:16,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST,label:"segmentation_uniform_buffer"})}device;computePipeline;uniformBuffer;cachedOutputTexture;execute(t,n={}){let r=t.width,a=t.height,i=n.threshold??.5,o=n.feather??.05,u=new ArrayBuffer(16),c=new Float32Array(u),l=new Uint32Array(u);c[0]=i,c[1]=o,l[2]=r,l[3]=a,this.device.queue.writeBuffer(this.uniformBuffer,0,u),(!this.cachedOutputTexture||this.cachedOutputTexture.width!==r||this.cachedOutputTexture.height!==a)&&(this.cachedOutputTexture?.destroy(),this.cachedOutputTexture=this.device.createTexture({label:"segmentation_output_texture",size:[r,a],format:"rgba8unorm",usage:GPUTextureUsage.STORAGE_BINDING|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC}));let m=this.device.createCommandEncoder({label:"segmentation_command_encoder"}),d=this.device.createBindGroup({label:"segmentation_bind_group",layout:this.computePipeline.getBindGroupLayout(0),entries:[{binding:0,resource:t.createView({label:"segmentation_input_view"})},{binding:1,resource:this.cachedOutputTexture.createView({label:"segmentation_output_view"})},{binding:2,resource:{buffer:this.uniformBuffer}}]}),p=m.beginComputePass({label:"segmentation_compute_pass"});return p.setPipeline(this.computePipeline),p.setBindGroup(0,d),p.dispatchWorkgroups(Math.ceil(r/16),Math.ceil(a/16),1),p.end(),this.device.queue.submit([m.finish()]),this.cachedOutputTexture}destroy(){this.cachedOutputTexture?.destroy(),this.cachedOutputTexture=void 0,this.uniformBuffer.destroy()}};var Rt=class e{constructor(t){this.source=t;this.id=`tensor-${Math.random().toString(36).slice(2,9)}`}source;id;cannyOptions;depthNormalsOptions;poseSkeletonOptions;faceLandmarksOptions;segmentationOptions;opticalFlowOptions;deflickerOptions;multiplexer=new un;cannyPipeline;depthNormalsPipeline;posePipeline;facePipeline;segmentationPipeline;opticalFlowPipeline;deflickerPipeline;prevInputTexture;static from(t){return new e(t)}canny(t={}){return this.cannyOptions=t,this}depthNormals(t={}){return this.depthNormalsOptions=t,this}poseSkeleton(t={}){return this.poseSkeletonOptions=t,this}pose(t,n={}){return this.poseSkeletonOptions={...n,landmarks:t},this}faceLandmarks(t={}){return this.faceLandmarksOptions=t,this}face(t,n={}){return this.faceLandmarksOptions={...n,landmarks:t},this}segmentation(t={}){return this.segmentationOptions=t,this}opticalFlow(t={}){return this.opticalFlowOptions=t,this}deflicker(t={}){return this.deflickerOptions=t,this}getMultiplexer(){return this.multiplexer}async execute(t,n){let r=n;if(!r&&typeof this.source?.createView=="function"&&(r=this.source),!r)throw new Error("[TensorPipeline.execute] No GPUTexture available for tensor compute execution. Pass a valid GPUTexture to execute() or initialize with a GPUTexture source.");if(this.cannyOptions){this.cannyPipeline||(this.cannyPipeline=new ln(t));let a=this.cannyPipeline.execute(r,this.cannyOptions);this.multiplexer.set("canny",a)}if(this.depthNormalsOptions){this.depthNormalsPipeline||(this.depthNormalsPipeline=new cn(t));let a=this.depthNormalsPipeline.execute(r,this.depthNormalsOptions);this.multiplexer.set("normals",a)}if(this.poseSkeletonOptions?.landmarks){this.posePipeline||(this.posePipeline=new oo(t));let a=this.posePipeline.execute(this.poseSkeletonOptions.landmarks,{width:this.poseSkeletonOptions.width??r.width,height:this.poseSkeletonOptions.height??r.height,lineWidth:this.poseSkeletonOptions.lineWidth});this.multiplexer.set("poseSkeleton",a)}if(this.faceLandmarksOptions?.landmarks){this.facePipeline||(this.facePipeline=new Yn(t));let a=this.facePipeline.execute(this.faceLandmarksOptions.landmarks,{width:this.faceLandmarksOptions.width??r.width,height:this.faceLandmarksOptions.height??r.height,lineWidth:this.faceLandmarksOptions.lineWidth});this.multiplexer.set("faceLandmarks",a)}if(this.segmentationOptions){this.segmentationPipeline||(this.segmentationPipeline=new Hn(t));let a=this.segmentationPipeline.execute(r,this.segmentationOptions);this.multiplexer.set("segmentationMask",a)}if(this.opticalFlowOptions){this.opticalFlowPipeline||(this.opticalFlowPipeline=new $r(t));let a=this.prevInputTexture??r,i=this.opticalFlowPipeline.execute(a,r,this.opticalFlowOptions);this.multiplexer.set("motionVectors",i)}if(this.deflickerOptions){this.deflickerPipeline||(this.deflickerPipeline=new Wr(t));let a=this.deflickerPipeline.execute(r,this.deflickerOptions);this.multiplexer.set("deflickered",a)}return this.prevInputTexture=r,this.multiplexer.getOutputs()}toConfig(){return{canny:this.cannyOptions,depthNormals:this.depthNormalsOptions,poseSkeleton:this.poseSkeletonOptions,faceLandmarks:this.faceLandmarksOptions,segmentation:this.segmentationOptions,opticalFlow:this.opticalFlowOptions,deflicker:this.deflickerOptions}}toNode(){return{id:this.id,kind:"tensor",source:this.source,config:this.toConfig()}}destroy(){this.cannyPipeline?.destroy(),this.depthNormalsPipeline?.destroy(),this.posePipeline?.destroy(),this.facePipeline?.destroy(),this.segmentationPipeline?.destroy(),this.opticalFlowPipeline?.destroy(),this.deflickerPipeline?.destroy(),this.multiplexer.destroy()}};g();var fd=e=>!e.source||e.source.type==="keyframe";function Xn(e){let t=[],n=new Map;for(let r of e){if(!fd(r)){t.push(r);continue}let a=n.get(r.prop);if(!a){let o={...r,keyframes:[...r.keyframes??[]]};n.set(r.prop,o),t.push(o);continue}let i=new Map(a.keyframes.map(o=>[o.frame,o]));for(let o of r.keyframes??[])i.set(o.frame,o);a.keyframes=[...i.values()].sort((o,u)=>o.frame-u.frame)}return t}function vo(e,t){if(!e)return t;let n=Pa(e);if(!n||n.name==="none")return t;let{name:r,dir:a,params:i}=n,o=Math.max(0,Math.min(1,t)),u=c=>a==="in"?c(o):a==="out"?1-c(1-o):o<.5?c(o*2)/2:1-c((1-o)*2)/2;switch(r){case"power1":return u(c=>c*c);case"power2":return u(c=>c*c*c);case"power3":return u(c=>c*c*c*c);case"sine":return u(c=>1-Math.cos(c*Math.PI/2));case"circ":return u(c=>1-Math.sqrt(Math.max(0,1-c*c)));case"expo":return u(c=>c===0?0:2**(10*(c-1)));case"back":{let c=i?.[0]??1.70158,l=c+1;return u(m=>l*m*m*m-c*m*m)}case"bounce":{let c=l=>{if(l<.36363636363636365)return 7.5625*l*l;if(l<.7272727272727273){let f=l-.5454545454545454;return 7.5625*f*f+.75}if(l<.9090909090909091){let f=l-.8181818181818182;return 7.5625*f*f+.9375}let p=l-2.625/2.75;return 7.5625*p*p+.984375};return a==="out"?c(o):a==="in"?1-c(1-o):o<.5?(1-c(1-2*o))/2:(1+c(2*o-1))/2}default:return o}}function Pa(e){if(e){if(typeof e=="object"&&"name"in e&&"dir"in e)return e;if(typeof e=="string"){let t=e.trim(),n=t.match(/^([a-zA-Z0-9]+)(?:\.([a-zA-Z]+))?(?:\(([^)]+)\))?$/);if(n){let c=n[1].toLowerCase(),l=c==="linear"?"none":c,m=(n[2]||"out").toLowerCase(),d="out";m==="in"?d="in":m==="out"?d="out":m==="inout"&&(d="inOut");let p;return n[3]&&(p=n[3].split(",").map(f=>Number.parseFloat(f.trim())).filter(f=>!Number.isNaN(f))),{name:l,dir:d,...p&&p.length>0?{params:p}:{}}}let r=t.indexOf(".");if(r===-1){let c=t.toLowerCase();return{name:c==="linear"?"none":c,dir:"out"}}let a=t.slice(0,r).toLowerCase(),i=a==="linear"?"none":a,o=t.slice(r+1).toLowerCase(),u="out";return o==="in"?u="in":o==="out"?u="out":o==="inout"&&(u="inOut"),{name:i,dir:u}}}}var ce=class e{tracks=[];constructor(t=[]){this.tracks=[...t]}static create(){return new e}static fromTo(t,n,r,a={}){return new e().fromTo(t,n,r,a)}static keys(t,n){return new e().keys(t,n)}static signal(t,n,r={}){return new e().signal(t,n,r)}static colorSignal(t,n,r){return new e().colorSignal(t,n,r)}static kineticSweep(t=-1,n=1,r=0,a=24,i="power2.out"){return new e().kineticSweep(t,n,r,a,i)}static typewriter(t=0,n=30,r="linear"){return new e().typewriter(t,n,r)}static letterSpacing(t,n,r=0,a=24,i="power2.out"){return new e().letterSpacing(t,n,r,a,i)}static wiggle(t,n={}){return new e().wiggle(t,n)}static spring(t,n={}){return new e().spring(t,n)}static firstMargin(t,n,r={}){return new e().firstMargin(t,n,r)}static strokeWidth(t,n,r={}){return new e().fromTo("strokeWidth",t,n,r)}static rotateX(t,n,r={}){return new e().fromTo("rotateX",t,n,r)}static rotateY(t,n,r={}){return new e().fromTo("rotateY",t,n,r)}static rotateZ(t,n,r={}){return new e().fromTo("rotateZ",t,n,r)}static rotation(t,n,r={}){return new e().fromTo("rotation",t,n,r)}addTrack(t){return this.tracks.push(t),this}fromTo(t,n,r,a={}){let i=a.from??a.start??a.fromFrame??0,o=a.to??a.end??a.toFrame??(a.durationFrames!==void 0?i+a.durationFrames:i+24),u=Pa(a.ease),c=this.tracks.find(m=>m.prop===t&&(!m.source||m.source.type==="keyframe"));c||(c={id:`${t}_fromTo_${this.tracks.length}`,prop:t,keyframes:[]},this.tracks.push(c));let l=c.id;return c.keyframes.length===0&&i>0&&c.keyframes.push({id:`${l}_k0`,frame:0,value:n}),(c.keyframes.length===0||c.keyframes[c.keyframes.length-1].frame<i)&&c.keyframes.push({id:`${l}_k_${i}`,frame:i,value:n}),c.keyframes.push({id:`${l}_k_${o}`,frame:o,value:r,...u&&{ease:u}}),c.keyframes.sort((m,d)=>m.frame-d.frame),this}keyframe(t,n,r,a){let i=this.tracks.find(l=>l.prop===t&&(!l.source||l.source.type==="keyframe"));i||(i={id:`${t}_track_${this.tracks.length}`,prop:t,keyframes:[]},this.tracks.push(i));let o=Pa(a),u={id:`k_${i.keyframes.length}_f${n}`,frame:n,value:r,...o&&{ease:o}},c=i.keyframes.findIndex(l=>l.frame===n);return c>=0?i.keyframes[c]=u:i.keyframes.push(u),i.keyframes.sort((l,m)=>l.frame-m.frame),this}keys(t,n){for(let[r,a,i]of n)this.keyframe(t,Math.round(r),a,i);return this}fadeIn(t=0,n=20,r="power2.out"){return this.fromTo("opacity",0,1,{from:t,to:n,ease:r})}fadeOut(t,n,r="power2.in"){return this.fromTo("opacity",1,0,{from:t,to:n,ease:r})}slideInY(t,n,r=0,a=24,i="power2.out"){return this.fromTo("y",t,n,{from:r,to:a,ease:i})}slideInX(t,n,r=0,a=24,i="power2.out"){return this.fromTo("x",t,n,{from:r,to:a,ease:i})}kineticSweep(t=-1,n=1,r=0,a=24,i="power2.out"){return this.fromTo("offset",t,n,{from:r,to:a,ease:i})}typewriter(t=0,n=30,r="linear"){return this.fromTo("text",0,1,{from:t,to:n,ease:r})}letterSpacing(t,n,r=0,a=24,i="power2.out"){return this.fromTo("letterSpacing",t,n,{from:r,to:a,ease:i})}firstMargin(t,n,r={}){return this.fromTo("firstMargin",t,n,r)}lastMargin(t,n,r={}){return this.fromTo("lastMargin",t,n,r)}baselineShift(t,n,r={}){return this.fromTo("baselineShift",t,n,r)}rotateX(t,n,r={}){return this.fromTo("rotateX",t,n,r)}rotateY(t,n,r={}){return this.fromTo("rotateY",t,n,r)}rotateZ(t,n,r={}){return this.fromTo("rotateZ",t,n,r)}perspective(t,n,r={}){return this.fromTo("perspective",t,n,r)}translateZ(t,n,r={}){return this.fromTo("translateZ",t,n,r)}tilt3D(t){let n=t.start??t.fromFrame,r=t.end??t.toFrame,a=t.ease,i=t.from??{},o=t.to,u=["rotateX","rotateY","rotateZ","translateZ","perspective"];for(let c of u){let l=o[c];if(l!==void 0){let m=i[c]??0;this.fromTo(c,m,l,{from:n,to:r,fromFrame:n,toFrame:r,ease:a})}}return this}signal(t,n,r={}){let{handleId:a,inline:i}=Vr(n),o=`${t}_sig_${a}_${this.tracks.length}`,u={type:"signal",inputHandleId:a,multiplier:r.multiplier??1,offset:r.offset??0,smoothingWindowFrames:r.smoothing??0,signalMode:r.mode??"continuous",threshold:r.threshold??.15,accumulateThreshold:r.threshold??.15,debounceFrames:r.debounceFrames??2,channel:r.channel??"primary"};return i&&jr(u,i),this.tracks.push({id:o,prop:t,source:u,keyframes:[]}),this}colorSignal(t,n,r){let{handleId:a,inline:i}=Vr(n),o=`${t}_colorSig_${a}_${this.tracks.length}`,u={type:"signal",inputHandleId:a,multiplier:1,offset:0,smoothingWindowFrames:r.smoothing??0,colorMode:r.colorMode??"interpolate",colorA:r.colorA,colorB:r.colorB,colorThreshold:r.threshold,channel:"primary"};return i&&jr(u,i),this.tracks.push({id:o,prop:t,source:u,keyframes:[]}),this}wiggle(t,n={}){let r=`${t}_wiggle_${this.tracks.length}`,a={type:"wiggle",frequency:n.frequency??2,amplitude:n.amplitude??20,octaves:n.octaves??1,seed:n.seed??1234};return this.tracks.push({id:r,prop:t,source:a,keyframes:[]}),this}spring(t,n={}){let r=`${t}_spring_${this.tracks.length}`,a={type:"springOvershoot",damping:n.damping??12,stiffness:n.stiffness??180,mass:n.mass??1};return this.tracks.push({id:r,prop:t,source:a,keyframes:[]}),this}followPath(t,n={}){let r=n.start??n.fromFrame??0,a=n.end??n.toFrame??60,i=Math.max(1,a-r),o=n.samples??Math.max(8,Math.min(60,Math.round(i/2))),u=t.totalLength??1,c=n.fromProgress??0,l=n.toProgress??1;n.fromDistance!==void 0&&u>0&&(c=n.fromDistance/u),n.toDistance!==void 0&&u>0&&(l=n.toDistance/u);let m=n.autoOrient??!0,d=n.banking??0,p=n.pitchOffset??0,f=n.yawOffset??0,y=n.rollOffset??0,h=!1,b=!1,x=!1,v=[];for(let S=0;S<=o;S++){let k=S/o,C=vo(n.ease,k),w=c+C*(l-c),D=Math.round(r+k*i),E=[0,0,0],V=[1,0,0],Z=[0,0,0];if(typeof t.getFrameAt=="function"){let T=t.getFrameAt(w);E=T.position,V=T.tangent,Z=T.rotation??[0,0,0]}else{let T=t.getPointAt(w);E=T.position,T.tangent&&(V=T.tangent);let $=Math.asin(Math.max(-1,Math.min(1,-V[1])))*(180/Math.PI),Y=Math.atan2(V[0],V[2])*(180/Math.PI),U=Math.atan2(V[1],V[0])*(180/Math.PI);Z=[$,Y,U]}let ne=Z[0]+p,R=Z[1]+f,P=(Math.abs(V[2])<1e-4?Math.atan2(V[1],V[0])*(180/Math.PI):Z[2])+y;if(d!==0){let T=Math.min(1,w+.02),$=Math.max(0,w-.02),Y=t.getPointAt(T),U=t.getPointAt($),_=Y.tangent??[1,0,0],W=U.tangent??[1,0,0],re=Math.atan2(_[0],_[2]),pe=Math.atan2(W[0],W[2]),ie=re-pe;P-=ie*d*57.2958}Math.abs(E[2])>1e-4&&(h=!0),Math.abs(ne)>1e-4&&(b=!0),Math.abs(R)>1e-4&&(x=!0),v.push({f:D,x:E[0],y:E[1],z:E[2],rx:ne,ry:R,rz:P})}for(let S of v)this.keyframe("x",S.f,S.x),this.keyframe("y",S.f,S.y),h&&this.keyframe("z",S.f,S.z),m&&(this.keyframe("rotateZ",S.f,S.rz),b&&this.keyframe("rotateX",S.f,S.rx),x&&this.keyframe("rotateY",S.f,S.ry));return this}applyTo(t){return t.animation=this.toSpec(),t}merge(...t){return this.tracks=Xn([...this.tracks,...t.flatMap(n=>n.tracks)]),this}static merge(...t){return new e().merge(...t)}toSpec(){return{tracks:this.tracks}}toJSON(){return this.toSpec()}},Ca=class e extends ce{static camera(){return new e}dolly(t,n,r={}){if(typeof t=="object"){let a=t,i=a.start??a.fromFrame??0,o=a.end??a.toFrame??0;return this.fromTo("cameraZ",a.fromDistance,a.toDistance,{from:i,to:o,ease:a.ease})}return this.fromTo("cameraZ",t,n??t,r)}orbit(t){let n=t.start??t.fromFrame??0,r=t.end??t.toFrame??0;return t.azimuth&&this.fromTo("orbitAzimuth",t.azimuth.from??0,t.azimuth.to,{from:n,to:r,ease:t.ease}),t.elevation&&this.fromTo("orbitElevation",t.elevation.from??0,t.elevation.to,{from:n,to:r,ease:t.ease}),t.radius&&this.fromTo("orbitRadius",t.radius.from??1500,t.radius.to,{from:n,to:r,ease:t.ease}),this}truck(t,n,r={}){return this.fromTo("cameraX",t,n,r)}pedestal(t,n,r={}){return this.fromTo("cameraY",t,n,r)}pan(t,n,r={}){return this.fromTo("cameraYaw",t,n,r)}tilt(t,n,r={}){return this.fromTo("cameraPitch",t,n,r)}roll(t,n,r={}){return this.fromTo("cameraRoll",t,n,r)}rackFocus(t){let n=t.start??t.fromFrame??0,r=t.end??t.toFrame??0;return this.fromTo("focusDistance",t.fromDistance,t.toDistance,{from:n,to:r,ease:t.ease??"power2.inOut"}),t.toFStop!==void 0&&this.fromTo("fStop",t.fromFStop??2.8,t.toFStop,{from:n,to:r,ease:t.ease??"power2.inOut"}),this}handheld(t){let n=t.start??t.fromFrame??0,r=t.end??t.toFrame??0;return this.fromTo("shakeTranslation",0,t.translationAmplitude,{from:n,to:r}),this.fromTo("shakeRotation",0,t.rotationAmplitude,{from:n,to:r}),this}followPath3D(t,n={}){let r=n.start??n.fromFrame??0,a=n.end??n.toFrame??60,i=Math.max(1,a-r),o=n.samples??Math.max(8,Math.min(60,Math.round(i/2))),u=n.mode??(n.target?"lookAtTarget":"leadTarget"),c=n.fromProgress??0,l=n.toProgress??1,m=n.lookAhead??.05;for(let d=0;d<=o;d++){let p=d/o,f=vo(n.ease,p),y=c+f*(l-c),h=Math.round(r+p*i),b=[0,0,0],x=[0,0,0];if(typeof t.getFrameAt=="function"){let v=t.getFrameAt(y);b=v.position,x=v.rotation??[0,0,0]}else b=t.getPointAt(y).position;if(this.keyframe("cameraX",h,b[0]),this.keyframe("cameraY",h,b[1]),this.keyframe("cameraZ",h,b[2]),u==="lookAtTarget"){let v=n.target??[b[0],b[1],0];this.keyframe("targetX",h,v[0]),this.keyframe("targetY",h,v[1]),this.keyframe("targetZ",h,v[2])}else if(u==="leadTarget"){let v=Math.min(1,y+m),S=t.getPointAt(v);this.keyframe("targetX",h,S.position[0]),this.keyframe("targetY",h,S.position[1]),this.keyframe("targetZ",h,S.position[2])}else u==="orientAlongPath"&&(this.keyframe("cameraPitch",h,x[0]),this.keyframe("cameraYaw",h,x[1]),this.keyframe("cameraRoll",h,x[2]))}return this}};g();var hd=["background","fill","fillColor","strokeColor","borderColor","gradientEndColor","emissive","color"],wo=3;function Mo(e){return e.animation?.tracks??[]}var So=(e,t)=>Mo(e).some(n=>t.includes(n.prop)),gd=new Set(["box","flex","block","group"]);function ko(e){if(e.kind==="text"||e.kind==="light"||e.kind==="camera")return!1;if(!gd.has(String(e.kind)))return!0;let t=e.background;return typeof t=="string"&&t!==""&&t!=="transparent"?!0:(e.children??[]).some(ko)}var bd=e=>[...e].sort((t,n)=>(Number(t.zIndex)||0)-(Number(n.zIndex)||0));function qn(e){if(typeof e!="string"||e.includes("gradient("))return null;let t=Ir(e);return t&&t[3]>.99?e:null}function Aa(e){let t=[],n=(f,y,h,b)=>t.push({severity:f,code:y,message:h,...b&&{layerId:b}}),r=e.width,a=e.height,i=!1,o=[],u=!1,c=[],l=[],m=(f,y,h)=>{let b=String(f.id??"?");for(let C of hd){let w=f[C];typeof w!="string"||w===""||w==="transparent"||(w.includes("gradient(")?to(w)||n("error","invalid_gradient",`\`${C}\` on '${b}' is not a gradient this renderer reads: ${w}. It draws nothing.`,b):Ir(w)||n("warning","unknown_color",`\`${C}: "${w}"\` on '${b}' is not a color (hex, rgb(), hsl(), oklch() or a CSS name). It draws transparent.`,b))}if(f.kind==="light"){let C=f.lightType??"directional";C==="environment"&&(i=!0),C==="ambient"&&o.push(b),f.castShadow&&(C==="directional"||C==="spot"?l.push(b):n("warning","shadow_unsupported_light",`'${b}' is a ${String(C)} light: only directional and spot lights cast shadows.`,b));return}if(f.kind==="camera")return;let x=!!f.is3D||typeof f.z=="number"&&f.z!==0;if((x||f.kind==="model3d")&&(u=!0),(f.roughness!==void 0||f.metallic!==void 0)&&c.push(b),f.kind==="text"&&y&&!So(f,["fill","color"])){let C=qn(f.fill??f.color),w=qn(f.background)??y;if(C){let D=Er.contrast(C,w);D<wo&&n("warning","low_contrast_text",`Text '${b}' (${C}) on ${w} has contrast ${D.toFixed(2)}:1 (aim for \u2265 ${wo}; ${Er.readableOn(w)} reads well).`,b)}}if(h&&!x&&f.position==="absolute"&&typeof f.x=="number"&&typeof f.y=="number"&&typeof f.width=="number"&&typeof f.height=="number"&&!So(f,["x","y","translateX","translateY","scale","rotation"])){let{x:C,y:w,width:D,height:E}=f;(C+D<=0||w+E<=0||C>=r||w>=a)&&n("warning","offscreen_layer",`'${b}' sits entirely outside the ${r}\xD7${a} canvas (x ${C}, y ${w}) and never moves in.`,b)}for(let C of Mo(f)){let w=C.keyframes??[];(!C.source||C.source.type==="keyframe")&&w.length>=2&&w.every(D=>JSON.stringify(D.value)===JSON.stringify(w[0].value))&&n("info","static_track",`'${b}' animates \`${C.prop}\` but every keyframe holds ${JSON.stringify(w[0].value)}.`,b)}let v=qn(f.background)??y,S=f.children,k=f.x===0&&f.y===0&&f.width===r&&f.height===a;d(S??[],v,h&&k)},d=(f,y,h)=>{let b=y;for(let x of bd(f))m(x,b,h),ko(x)&&(b=null)},p=qn(e.backgroundColor)??null;return d(e.layout,p,!0),i&&o.length>0&&n("info","ambient_with_environment",`The environment already fills shadows with light; ambient light ${o.join(", ")} adds flat light on top (remove it, or lower it, if the scene looks washed out).`),l.length>1&&n("info","multiple_shadow_lights",`${l.length} lights cast shadows (${l.join(", ")}); only the first one does.`),u&&c.length>0&&!i&&n("info","pbr_without_environment",`roughness / metallic are set (${c.slice(0,3).join(", ")}${c.length>3?", \u2026":""}) but the scene has no Layer.environment(): add one for physically based shading, reflections and tone mapping.`),t}g();g();var Na=class e{name;props={};selectors=[];constructor(t){this.name=t}static create(t){return new e(t)}skew(t,n=0){return this.props.skew=t,this.props.skewAxis=n,this}anchor(t,n="character",r=0,a=0){return this.props.anchor={grouping:n,preset:t,anchorX:.5,anchorY:.5,offsetX:r,offsetY:a},this}anchorNormalized(t,n,r="character"){return this.props.anchor={grouping:r,preset:"custom",anchorX:t,anchorY:n,offsetX:0,offsetY:0},this}translateZ(t){return this.props.translateZ=t,this}tilt3D(t=0,n=0,r=0){return this.props.rotationX=t,this.props.rotationY=n,this.props.rotationZ=r,this}rotationX(t){return this.props.rotationX=t,this}rotationY(t){return this.props.rotationY=t,this}rotationZ(t){return this.props.rotationZ=t,this}volumetricFormation(t="cylinder",n=300,r=120,a=360,i=1200,o="y"){return this.props.formation={mode:t,radius:n,pitch:r,totalAngle:a,perspective:i,axis:o},this}lineSpacing(t,n=0){return this.props.lineSpacing=t,this.props.lineAnchor=n,this}lineAnchor(t){return this.props.lineAnchor=t,this}spring(t=180,n=12,r=1,a=0){return this.props.spring={stiffness:t,damping:n,mass:r,initialVelocity:a,overshootMultiplier:1},this}stroke(t,n="#ffffff",r=1){return this.props.stroke={strokeWidth:t,strokeColor:n,strokeAlign:"center",fillOpacity:r,dashOffset:0},this}variableFont(t){return this.props.variableAxes=t,this}chromaticGlitch(t,n=0,r=-t,a=0){return this.props.chromaticGlitch={redShiftX:t,redShiftY:n,blueShiftX:r,blueShiftY:a,sliceProbability:0,sliceAmplitude:0},this}audioSpectrum(t,n=60,r=16e3,a=2.5){return this.props.audioSpectrum={signalChannel:t,minFreqHz:n,maxFreqHz:r,scaleAxis:"scaleY",minScale:.2,maxScale:a,peakDecay:.8},this}longShadow(t=45,n=40,r="#000000",a=.8,i=0,o=16){return this.props.longShadow={angle:t,length:n,color:r,startOpacity:a,endOpacity:i,steps:o},this}particleDissolve(t=0,n=90,r=120){return this.props.particleDissolve={progress:t,dispersalAngle:n,maxDisplacement:r,turbulence:.5,particleSize:2},this}addExpressionSelector(t,n="add"){return this.selectors.push({type:"expression",expression:t,mode:n,amount:1}),this}expressionSelector(t,n="add"){return this.addExpressionSelector(t,n)}x(t){return this.props.x=t,this}y(t){return this.props.y=t,this}scale(t){return this.props.scale=t,this}scaleX(t){return this.props.scaleX=t,this}scaleY(t){return this.props.scaleY=t,this}rotation(t){return this.props.rotation=t,this}opacity(t){return this.props.opacity=t,this}blur(t){return this.props.blur=t,this}fillColor(t){return this.props.fillColor=t,this}build(){return{name:this.name,selectors:this.selectors,props:this.props}}};g();var To=s.enum(["character","word","line","all"]),Po=s.enum(["center","baseline","bottom_left","bottom_center","bottom_right","top_left","top_center","top_right","custom"]),Co=s.object({grouping:To.default("character"),preset:Po.default("center"),anchorX:s.number().default(.5),anchorY:s.number().default(.5),offsetX:s.number().default(0),offsetY:s.number().default(0)}),yd=s.object({skew:s.number().min(-90).max(90),skewAxis:s.number().default(0)}),xd=s.object({lineSpacing:s.number(),lineAnchor:s.number().min(0).max(1).default(0)}),Ao=s.enum(["planar","vortex","cylinder","helix"]),Da=s.object({mode:Ao.default("planar"),radius:s.number().default(300),pitch:s.number().default(120),totalAngle:s.number().default(360),axis:s.enum(["x","y","z"]).default("y"),perspective:s.number().positive().default(1200)}),vd=s.object({translateZ:s.number().optional(),rotationX:s.number().optional(),rotationY:s.number().optional(),rotationZ:s.number().optional(),formation:Da.optional()}),No=s.object({stiffness:s.number().positive().default(180),damping:s.number().positive().default(12),mass:s.number().positive().default(1),initialVelocity:s.number().default(0),overshootMultiplier:s.number().min(.5).max(3).default(1)}),wd=s.object({type:s.literal("expression"),name:s.string().optional(),expression:s.string(),mode:s.enum(["add","subtract","intersect","min","max","difference"]).default("add"),amount:s.number().default(1)}),Do=s.object({strokeWidth:s.number().min(0).default(0),strokeColor:s.string().default("#ffffff"),strokeAlign:s.enum(["center","inside","outside"]).default("center"),fillOpacity:s.number().min(0).max(1).default(1),dashArray:s.tuple([s.number(),s.number()]).optional(),dashOffset:s.number().default(0)}),Oa=s.object({direction:s.enum(["left","right","up","down"]).default("left"),velocity:s.number().default(120),loop:s.boolean().default(!0),repeatGap:s.number().default(80),snap:s.object({enabled:s.boolean().default(!1),granularity:s.enum(["character","word","line"]).default("word"),stopIndex:s.number().default(0),decelEase:s.string().default("cubic.out")}).optional()}),Oo=s.object({weight:s.number().min(100).max(1e3).optional(),width:s.number().min(50).max(200).optional(),slant:s.number().min(-25).max(25).optional(),italic:s.number().min(0).max(1).optional(),opticalSize:s.number().min(6).max(144).optional()}),Lo=s.object({redShiftX:s.number().default(0),redShiftY:s.number().default(0),blueShiftX:s.number().default(0),blueShiftY:s.number().default(0),sliceProbability:s.number().min(0).max(1).default(0),sliceAmplitude:s.number().default(0)}),Fo=s.object({signalChannel:s.string(),minFreqHz:s.number().default(60),maxFreqHz:s.number().default(16e3),scaleAxis:s.enum(["scaleY","scaleX","scale","y"]).default("scaleY"),minScale:s.number().default(.2),maxScale:s.number().default(2.5),peakDecay:s.number().min(0).max(.99).default(.8)}),Ro=s.object({angle:s.number().default(45),length:s.number().min(0).default(0),color:s.string().default("#000000"),startOpacity:s.number().min(0).max(1).default(.8),endOpacity:s.number().min(0).max(1).default(0),steps:s.number().int().min(4).max(64).default(16)}),Bo=s.object({progress:s.number().min(0).max(1).default(0),dispersalAngle:s.number().default(90),maxDisplacement:s.number().default(120),turbulence:s.number().default(.5),particleSize:s.number().default(2)}),Io=s.object({x:s.number().optional(),y:s.number().optional(),translateZ:s.number().optional(),scale:s.number().optional(),scaleX:s.number().optional(),scaleY:s.number().optional(),rotation:s.number().optional(),rotationX:s.number().optional(),rotationY:s.number().optional(),rotationZ:s.number().optional(),formation:Da.optional(),skew:s.number().optional(),skewAxis:s.number().optional(),tracking:s.number().optional(),lineSpacing:s.number().optional(),lineAnchor:s.number().optional(),anchor:Co.optional(),opacity:s.number().optional(),blur:s.number().optional(),fillColor:s.string().optional(),stroke:Do.optional(),variableAxes:Oo.optional(),chromaticGlitch:Lo.optional(),longShadow:Ro.optional(),particleDissolve:Bo.optional(),audioSpectrum:Fo.optional(),spring:No.optional()}),La=s.object({name:s.string().default("AdvancedAnimator"),selectors:s.array(s.record(s.string(),s.unknown())).default([]),props:Io});g();g();var mn=s.object({x:s.number(),y:s.number()}),Eo=s.object({p0:mn,p1:mn,p2:mn,p3:mn}),_o=s.discriminatedUnion("type",[s.object({type:s.literal("svg"),d:s.string().min(1,"SVG path string cannot be empty")}),s.object({type:s.literal("bezier"),segments:s.array(Eo).min(1)}),s.object({type:s.literal("ellipse"),cx:s.number(),cy:s.number(),rx:s.number().positive(),ry:s.number().positive(),startAngleDeg:s.number().default(0),endAngleDeg:s.number().default(360)}),s.object({type:s.literal("wave"),startX:s.number(),startY:s.number(),length:s.number().positive(),amplitude:s.number(),frequency:s.number().positive(),phaseDeg:s.number().default(0)})]),Bt=s.object({path:_o,firstMargin:s.number().default(0),lastMargin:s.number().default(0),reversePath:s.boolean().default(!1),perpendicularToPath:s.boolean().default(!0),forceAlignment:s.boolean().default(!1),loop:s.boolean().default(!1),baselineOffset:s.enum(["baseline","center","ascender","descender"]).default("baseline"),baselineShift:s.number().default(0)}),Uo=s.enum(["bar","underscore","block","custom"]),zo=s.object({enabled:s.boolean().default(!0),style:Uo.default("bar"),customChar:s.string().default("|"),color:s.string().optional(),blinkFrequency:s.number().min(0).default(2),hideOnComplete:s.boolean().default(!1),width:s.number().positive().default(2.5),spacing:s.number().default(3)}),Go=s.discriminatedUnion("mode",[s.object({mode:s.literal("constant")}),s.object({mode:s.literal("human"),jitter:s.number().min(0).max(1).default(.35),commaPauseMultiplier:s.number().min(1).default(3),sentencePauseMultiplier:s.number().min(1).default(5.5),paragraphPauseMultiplier:s.number().min(1).default(7)})]),Vo=s.object({enabled:s.boolean().default(!1),charset:s.enum(["ascii","alphanumeric","matrix","binary","hex","custom"]).default("alphanumeric"),customCharset:s.string().optional(),scrambleFramesPerChar:s.number().int().min(1).default(8),highlightProbability:s.number().min(0).max(1).default(.25),scrambleColor:s.string().optional()}),Zn=s.object({granularity:s.enum(["character","word","line"]).default("character"),cursor:zo.default({enabled:!0,style:"bar",customChar:"|",blinkFrequency:2,hideOnComplete:!1,width:2.5,spacing:3}),cadence:Go.default({mode:"human",jitter:.35,commaPauseMultiplier:3,sentencePauseMultiplier:5.5,paragraphPauseMultiplier:7}),scramble:Vo.default({enabled:!1,charset:"alphanumeric",scrambleFramesPerChar:8,highlightProbability:.25}),soundSync:s.boolean().default(!1)}),Kn=s.enum(["characters","characters_excluding_spaces","words","lines"]),jo=s.enum(["percentage","index"]),$o=s.enum(["square","ramp_up","ramp_down","triangle","round","smooth"]),Jn=s.enum(["add","subtract","intersect","min","max","difference"]),Wo=s.object({type:s.literal("range"),start:s.number().default(0),end:s.number().default(1),offset:s.number().default(0),units:jo.default("percentage"),basedOn:Kn.default("characters"),shape:$o.default("square"),mode:Jn.default("add"),amount:s.number().min(-1).max(1).default(1),easeHigh:s.number().min(-1).max(1).default(0),easeLow:s.number().min(-1).max(1).default(0),randomizeOrder:s.boolean().default(!1),randomSeed:s.number().int().default(12345)}),Yo=s.object({type:s.literal("wiggly"),wigglesPerSecond:s.number().positive().default(2),correlation:s.number().min(0).max(1).default(.5),temporalPhaseDeg:s.number().default(0),spatialPhaseDeg:s.number().default(0),minAmount:s.number().min(-1).max(1).default(-1),maxAmount:s.number().min(-1).max(1).default(1),randomSeed:s.number().int().default(42),basedOn:Kn.default("characters"),mode:Jn.default("intersect")}),Ho=s.object({type:s.literal("signal"),signalId:s.string(),multiplier:s.number().default(1),offset:s.number().default(0),phaseSpread:s.number().default(0),basedOn:Kn.default("characters"),mode:Jn.default("add")}),Xo=s.discriminatedUnion("type",[Wo,Yo,Ho]),qo=s.object({x:s.number().optional(),y:s.number().optional(),z:s.number().optional(),scale:s.number().optional(),scaleX:s.number().optional(),scaleY:s.number().optional(),rotation:s.number().optional(),rotationX:s.number().optional(),rotationY:s.number().optional(),skew:s.number().optional(),skewAxis:s.number().optional(),tracking:s.number().optional(),lineSpacing:s.number().optional(),opacity:s.number().min(0).max(1).optional(),fillColor:s.string().optional(),strokeColor:s.string().optional(),strokeWidth:s.number().min(0).optional(),blur:s.number().min(0).optional(),characterOffset:s.number().int().optional()}),Zo=s.enum(["character","word","line","all"]),Ko=s.object({grouping:Zo.default("character"),anchorX:s.number().default(.5),anchorY:s.number().default(.8)}),It=s.object({name:s.string().default("Animator"),selectors:s.array(Xo).min(1),props:qo,anchor:Ko.default({grouping:"character",anchorX:.5,anchorY:.8})}),Sd=s.object({text:s.string(),fontFamily:s.string().default("Inter"),fontSize:s.number().positive().default(24),fontWeight:s.union([s.number(),s.string()]).default(400),fill:s.string().default("#ffffff"),letterSpacing:s.number().default(0),lineHeight:s.number().positive().default(1.2),textAlign:s.enum(["left","center","right"]).default("left"),pathOptions:Bt.optional(),typewriter:Zn.optional(),animators:s.array(It).default([])});var Fa=class e{options={firstMargin:0,lastMargin:0,reversePath:!1,perpendicularToPath:!0,forceAlignment:!1,loop:!1,baselineOffset:"baseline",baselineShift:0};static fromSvg(t){let n=new e;return n.options.path={type:"svg",d:t},n}static fromBezier(t){let n=new e;return n.options.path={type:"bezier",segments:t},n}static fromCurve(t){return e.fromBezier([t])}static circularBadge(t,n,r){let a=new e;return a.options.path={type:"ellipse",cx:t,cy:n,rx:r,ry:r,startAngleDeg:0,endAngleDeg:360},a.options.loop=!0,a}static ellipse(t,n,r,a,i=0,o=360){let u=new e;return u.options.path={type:"ellipse",cx:t,cy:n,rx:r,ry:a,startAngleDeg:i,endAngleDeg:o},u.options.loop=Math.abs(o-i)>=360,u}static wave(t,n,r,a,i,o=0){let u=new e;return u.options.path={type:"wave",startX:t,startY:n,length:r,amplitude:a,frequency:i,phaseDeg:o},u}firstMargin(t){return this.options.firstMargin=t,this}lastMargin(t){return this.options.lastMargin=t,this}reversePath(t){return this.options.reversePath=t,this}perpendicularToPath(t){return this.options.perpendicularToPath=t,this}forceAlignment(t){return this.options.forceAlignment=t,this}loop(t){return this.options.loop=t,this}baselineOffset(t){return this.options.baselineOffset=t,this}baselineShift(t){return this.options.baselineShift=t,this}build(){return Bt.parse(this.options)}},Ra=class e{name="Animator";selectors=[];props={};anchor={grouping:"character",anchorX:.5,anchorY:.8};static create(t){let n=new e;return n.name=t,n}addRangeSelector(t){let n=t.easeHigh??0,r=Math.abs(n)>1?n/100:n,a=t.easeLow??0,i=Math.abs(a)>1?a/100:a;return this.selectors.push({type:"range",start:t.start??0,end:t.end??1,offset:t.offset??0,units:"percentage",basedOn:t.basedOn??"characters",shape:t.shape??"smooth",mode:t.mode??"add",amount:1,easeHigh:Math.max(-1,Math.min(1,r)),easeLow:Math.max(-1,Math.min(1,i)),randomizeOrder:t.randomizeOrder??!1,randomSeed:t.randomSeed??12345}),this}addWigglySelector(t){return this.selectors.push({type:"wiggly",wigglesPerSecond:t.wigglesPerSecond??2,correlation:t.correlation??.5,temporalPhaseDeg:0,spatialPhaseDeg:0,minAmount:t.minAmount??-1,maxAmount:t.maxAmount??1,randomSeed:t.randomSeed??42,basedOn:"characters",mode:t.mode??"intersect"}),this}addSignalSelector(t,n=1,r=0,a=0,i="add"){return this.selectors.push({type:"signal",signalId:t,multiplier:n,offset:a,phaseSpread:r,basedOn:"characters",mode:i}),this}x(t){return this.props.x=t,this}y(t){return this.props.y=t,this}z(t){return this.props.z=t,this}scale(t){return this.props.scale=t,this}scaleX(t){return this.props.scaleX=t,this}scaleY(t){return this.props.scaleY=t,this}rotation(t){return this.props.rotation=t,this}rotationX(t){return this.props.rotationX=t,this}rotationY(t){return this.props.rotationY=t,this}skew(t){return this.props.skew=t,this}skewAxis(t){return this.props.skewAxis=t,this}opacity(t){return this.props.opacity=t,this}blur(t){return this.props.blur=t,this}fill(t){return this.fillColor(t)}fillColor(t){return this.props.fillColor=t,this}strokeColor(t){return this.props.strokeColor=t,this}strokeWidth(t){return this.props.strokeWidth=t,this}tracking(t){return this.props.tracking=t,this}lineSpacing(t){return this.props.lineSpacing=t,this}characterOffset(t){return this.props.characterOffset=t,this}anchorGrouping(t,n=.5,r=.8){return this.anchor={grouping:t,anchorX:n,anchorY:r},this}build(){return It.parse({name:this.name,selectors:this.selectors,props:this.props,anchor:this.anchor})}};g();function Md(e,t=180,n=12,r=1,a=0){if(e<=0)return 0;let i=Math.sqrt(Math.max(1e-4,t)/Math.max(1e-4,r)),o=n/(2*Math.sqrt(Math.max(1e-4,t*r)));if(o<1){let u=i*Math.sqrt(1-o*o),c=Math.exp(-o*i*e),l=-1,m=(a-o*i*-1)/Math.max(1e-6,u),d=c*(l*Math.cos(u*e)+m*Math.sin(u*e));return Math.min(2,Math.max(-1,1+d))}else if(Math.abs(o-1)<1e-4){let u=Math.exp(-i*e);return 1+(-1+(a-i)*e)*u}else{let u=-i*(o-Math.sqrt(o*o-1)),c=-i*(o+Math.sqrt(o*o-1)),l=(a+c)/Math.max(1e-6,u-c),m=-1-l;return 1+(l*Math.exp(u*e)+m*Math.exp(c*e))}}function kd(e,t=0){if(e===0)return[1,0,0,1];let n=e*Math.PI/180,r=t*Math.PI/180,a=Math.cos(r),i=Math.sin(r),o=Math.tan(n),u=1-o*a*i,c=o*a*a,l=-o*i*i,m=1+o*i*a;return[u,c,l,m]}function Td(e,t){let n=t.anchorX,r=t.anchorY;switch(t.preset){case"center":n=.5,r=.5;break;case"baseline":n=.5,r=e.height>0?e.ascender/e.height:.8;break;case"bottom_left":n=0,r=1;break;case"bottom_center":n=.5,r=1;break;case"bottom_right":n=1,r=1;break;case"top_left":n=0,r=0;break;case"top_center":n=.5,r=0;break;case"top_right":n=1,r=0;break;default:n=.5,r=.5;break}let a=(n-.5)*e.width+t.offsetX,i=(r-.5)*e.height+t.offsetY;return{px:a,py:i}}function Pd(e,t,n,r=0){if(n===0||t<=1)return 0;let a=r*(t-1);return(e-a)*n}function Cd(e,t){try{let n={textIndex:t.charIndex,textTotal:Math.max(1,t.totalChars),wordIndex:t.wordIndex,wordTotal:Math.max(1,t.totalWords),lineIndex:t.lineIndex,lineTotal:Math.max(1,t.totalLines),time:t.time,frame:t.frame,fps:t.fps,sin:Math.sin,cos:Math.cos,tan:Math.tan,exp:Math.exp,log:Math.log,abs:Math.abs,min:Math.min,max:Math.max,sqrt:Math.sqrt,pow:Math.pow,floor:Math.floor,ceil:Math.ceil,round:Math.round,PI:Math.PI,clamp:(u,c,l)=>Math.max(c,Math.min(l,u)),noise:u=>{let c=Math.sin(u*12.9898+t.frame*.1)*43758.5453;return(c-Math.floor(c))*2-1},signals:t.signals??{}},r=Object.keys(n),a=Object.values(n),i=new Function(...r,`return (${e});`),o=Number(i(...a));return Number.isFinite(o)?Math.max(-1,Math.min(1,o)):0}catch{return 0}}function Ad(e,t,n){let r=Math.max(1,t),a=r>1?e/(r-1):0,i=n.totalAngle*Math.PI/180,o=a*i,u=0,c=0,l=0,m=0,d=0,p=0,f=1;switch(n.mode){case"cylinder":{let x=n.totalAngle<360?(a-.5)*i:o;n.axis==="y"?(u=n.radius*Math.sin(x),l=n.radius*Math.cos(x)-n.radius,d=x*180/Math.PI):n.axis==="x"?(c=n.radius*Math.sin(x),l=n.radius*Math.cos(x)-n.radius,m=x*180/Math.PI):(u=n.radius*Math.sin(x),c=n.radius*Math.cos(x),p=x*180/Math.PI);let v=Math.cos(x);f=Math.max(.25,(v+1)*.5);break}case"vortex":{let v=-Math.PI/2+o,S=n.radius*(1-a*.35);u=S*Math.cos(v),c=S*Math.sin(v),l=-e*n.pitch||0;let k=-.35*n.radius/(i||1),C=k*Math.cos(v)-S*Math.sin(v),w=k*Math.sin(v)+S*Math.cos(v);p=Math.atan2(w,C)*180/Math.PI,f=Math.max(.65,1-a*.35);break}case"helix":{if(n.axis==="x"){let x=n.pitch>10?n.pitch:28;u=(e-(r-1)/2)*x,c=n.radius*Math.sin(o),l=n.radius*Math.cos(o)-n.radius,m=Math.sin(o)*22,f=.75+.25*((Math.cos(o)+1)*.5)}else{let x=(a-.5)*i;u=n.radius*Math.sin(x),c=(e-(r-1)/2)*n.pitch,l=n.radius*Math.cos(x)-n.radius,d=x*180/Math.PI;let v=Math.cos(x);f=Math.max(.65,(v+1)*.5)}break}default:{l=0;break}}let y=Math.max(100,n.perspective??1200),h=y-l,b=h>1?y/h:1;return{x:u*b,y:c*b,z:l,rotX:m,rotY:d,rotZ:p,scaleMult:Math.max(.1,b),depthOpacity:f}}function Nd(e,t,n,r,a){let o=(t>0?Math.max(t,n):n)+r.repeatGap;if(o<=0)return e;let u=r.velocity*a;if(r.snap?.enabled){let c=r.snap.stopIndex??0,l=r.snap.granularity==="character"?40:120,m=c*l,d=Math.min(1,a*1.5);u=u*(1-d)+m*d}if((r.direction==="right"||r.direction==="down")&&(u=-u),r.loop){let c=(e-u)%o;return c<-n?c+o:c}return e-u}function Dd(e,t,n,r,a,i){let o=Math.max(1,t),u=o>1?e/(o-1):.5,c=Math.max(20,n.minFreqHz),l=Math.max(c+100,n.maxFreqHz),m=c*(l/c)**u,d=0;if(r){let f=r[n.signalChannel];if(typeof f=="number")d=f;else if(typeof f=="function")d=Number(f(a,i,m))||0;else if(typeof f=="object"&&f!==null){let y=f;if(typeof y.get=="function")d=Number(y.get({frame:a,fps:i,freq:m}))||0;else if(Array.isArray(y.samples)||ArrayBuffer.isView(y.samples)){let h=y.samples,b=Math.floor(u*(h.length-1));d=Number(h[b])||0}}}let p=Math.max(0,Math.min(1,d));return n.minScale+p*(n.maxScale-n.minScale)}g();function Qn(e,t){let n=1-t,r=t*t,a=n*n,i=a*n,o=r*t;return{x:i*e.p0.x+3*a*t*e.p1.x+3*n*r*e.p2.x+o*e.p3.x,y:i*e.p0.y+3*a*t*e.p1.y+3*n*r*e.p2.y+o*e.p3.y}}function pn(e,t){let n=1-t;return{x:3*n*n*(e.p1.x-e.p0.x)+6*n*t*(e.p2.x-e.p1.x)+3*t*t*(e.p3.x-e.p2.x),y:3*n*n*(e.p1.y-e.p0.y)+6*n*t*(e.p2.y-e.p1.y)+3*t*t*(e.p3.y-e.p2.y)}}function Jo(e,t=100){let n=[{distance:0,t:0}],r=0,a=e.p0;for(let i=1;i<=t;i++){let o=i/t,u=Qn(e,o),c=u.x-a.x,l=u.y-a.y,m=Math.hypot(c,l);r+=m,n.push({distance:r,t:o}),a=u}return{lut:n,totalLength:r}}function Ba(e,t,n){if(t<=0)return 0;if(t>=n)return 1;let r=0,a=e.length-1;for(;r<=a;){let m=r+a>>1;e[m].distance<t?r=m+1:a=m-1}let i=Math.max(1,Math.min(r,e.length-1)),o=e[i-1],u=e[i],c=u.distance-o.distance;if(c<=1e-6)return o.t;let l=(t-o.distance)/c;return o.t+l*(u.t-o.t)}function Od(e,t,n,r){let a=Ba(t,r,n),i=Qn(e,a),o=pn(e,a),u=Math.hypot(o.x,o.y),c=u>1e-6?-o.y/u:0,l=u>1e-6?o.x/u:1,m=Math.atan2(o.y,o.x)*180/Math.PI;return{position:i,tangentAngleDeg:m,normal:{x:c,y:l}}}function Ld(e,t=50){if(e.length===0)return{totalLength:0,entries:[{distance:0,segmentIndex:0,t:0}],segments:[]};let n=[],r=[],a=0;for(let i=0;i<e.length;i++){let o=e[i],{lut:u,totalLength:c}=Jo(o,t);n.push({segmentIndex:i,startDistance:a,length:c,lut:u});for(let l=0;l<u.length;l++)r.push({distance:a+u[l].distance,segmentIndex:i,t:u[l].t});a+=c}return{totalLength:a,entries:r,segments:n}}function Fd(e,t,n){if(e.length===0)return{position:{x:0,y:0},tangentAngleDeg:0,normal:{x:0,y:1}};let r=t.totalLength;if(n<=0){let f=e[0],y=pn(f,0),h=Math.hypot(y.x,y.y),b=h>1e-6?y.x/h:1,x=h>1e-6?y.y/h:0,v={x:f.p0.x+b*n,y:f.p0.y+x*n},S=h>1e-6?-y.y/h:0,k=h>1e-6?y.x/h:1;return{position:v,tangentAngleDeg:Math.atan2(y.y,y.x)*180/Math.PI,normal:{x:S,y:k}}}if(n>=r){let f=e[e.length-1],y=pn(f,1),h=Math.hypot(y.x,y.y),b=h>1e-6?y.x/h:1,x=h>1e-6?y.y/h:0,v=n-r,S={x:f.p3.x+b*v,y:f.p3.y+x*v},k=h>1e-6?-y.y/h:0,C=h>1e-6?y.x/h:1;return{position:S,tangentAngleDeg:Math.atan2(y.y,y.x)*180/Math.PI,normal:{x:k,y:C}}}let a=0,i=0;if(t.segments&&t.segments.length>0){let f=0,y=t.segments.length-1;for(;f<=y;){let v=f+y>>1,S=t.segments[v];if(n<S.startDistance)y=v-1;else if(n>S.startDistance+S.length)f=v+1;else{f=v;break}}let h=Math.max(0,Math.min(f,t.segments.length-1)),b=t.segments[h];a=b.segmentIndex;let x=n-b.startDistance;i=Ba(b.lut,x,b.length)}else{let f=0,y=t.entries.length-1;for(;f<=y;){let k=f+y>>1;t.entries[k].distance<n?f=k+1:y=k-1}let h=Math.max(1,Math.min(f,t.entries.length-1)),b=t.entries[h-1],x=t.entries[h],v=x.distance-b.distance,S=v>1e-6?(n-b.distance)/v:0;a=x.segmentIndex,i=b.segmentIndex===x.segmentIndex?b.t+S*(x.t-b.t):x.t}let o=e[a]??e[0],u=Qn(o,i),c=pn(o,i),l=Math.hypot(c.x,c.y),m=l>1e-6?-c.y/l:0,d=l>1e-6?c.x/l:1,p=Math.atan2(c.y,c.x)*180/Math.PI;return{position:u,tangentAngleDeg:p,normal:{x:m,y:d}}}function Qo(e,t,n,r,a=0,i=360){let o=a*Math.PI/180,c=i*Math.PI/180-o,l=Math.max(1,Math.ceil(Math.abs(c)/(Math.PI/2))),m=c/l,d=[];for(let p=0;p<l;p++){let f=o+p*m,y=f+m,h=m/2,b=4/3*Math.tan(h/2),x=Math.cos(f),v=Math.sin(f),S=Math.cos(y),k=Math.sin(y),C={x:e+n*x,y:t+r*v},w={x:C.x-b*n*v,y:C.y+b*r*x},D={x:e+n*S,y:t+r*k},E={x:D.x+b*n*k,y:D.y-b*r*S};d.push({p0:C,p1:w,p2:E,p3:D})}return d}function es(e,t,n,r,a,i=0){let o=i*Math.PI/180,u=a<.1&&a*n>=.25?a*n:Math.max(.5,a),c=Math.max(1,Math.round(u*2)),l=n/c,m=[];for(let d=0;d<c;d++){let p=d/c*(2*Math.PI*u)+o,f=(d+1)/c*(2*Math.PI*u)+o,y=e+d*l,h=e+(d+1)*l,b=t+r*Math.sin(p),x=t+r*Math.sin(f),v=r*Math.cos(p)*(Math.PI/3),S=r*Math.cos(f)*(Math.PI/3),k={x:y,y:b},C={x:y+l/3,y:b+v},w={x:h-l/3,y:x-S},D={x:h,y:x};m.push({p0:k,p1:C,p2:w,p3:D})}return m}function Rd(e,t,n,r,a,i,o,u,c){if(e===u&&t===c)return[];let l=Math.abs(n),m=Math.abs(r);if(l===0||m===0)return[{p0:{x:e,y:t},p1:{x:e+(u-e)/3,y:t+(c-t)/3},p2:{x:e+2*(u-e)/3,y:t+2*(c-t)/3},p3:{x:u,y:c}}];let d=a*Math.PI/180,p=Math.cos(d),f=Math.sin(d),y=(e-u)/2,h=(t-c)/2,b=p*y+f*h,x=-f*y+p*h,v=b*b/(l*l)+x*x/(m*m);v>1&&(l*=Math.sqrt(v),m*=Math.sqrt(v));let S=l*l*m*m-l*l*x*x-m*m*b*b,k=l*l*x*x+m*m*b*b,C=(i!==o?1:-1)*Math.sqrt(Math.max(0,S/k)),w=C*l*x/m,D=-C*m*b/l,E=p*w-f*D+(e+u)/2,V=f*w+p*D+(t+c)/2,Z=(W,re,pe,ie)=>Math.atan2(W*ie-re*pe,W*pe+re*ie),ne=Z(1,0,(b-w)/l,(x-D)/m),R=Z((b-w)/l,(x-D)/m,(-b-w)/l,(-x-D)/m);!o&&R>0&&(R-=2*Math.PI),o&&R<0&&(R+=2*Math.PI);let P=Math.max(1,Math.ceil(Math.abs(R)/(Math.PI/2))),T=R/P,$=4/3*Math.tan(T/4),Y=W=>({x:E+l*Math.cos(W)*p-m*Math.sin(W)*f,y:V+l*Math.cos(W)*f+m*Math.sin(W)*p}),U=W=>({x:-l*Math.sin(W)*p-m*Math.cos(W)*f,y:-l*Math.sin(W)*f+m*Math.cos(W)*p}),_=[];for(let W=0;W<P;W++){let re=ne+W*T,pe=re+T,ie=Y(re),L=Y(pe),B=U(re),G=U(pe);_.push({p0:ie,p1:{x:ie.x+$*B.x,y:ie.y+$*B.y},p2:{x:L.x-$*G.x,y:L.y-$*G.y},p3:L})}return _[_.length-1].p3={x:u,y:c},_}function ts(e){let t=[],n=e.match(/[a-df-z]|[-+]?(?:\d*\.\d+|\d+)(?:[eE][-+]?\d+)?/gi);if(!n||n.length===0)return t;let r=0,a=0,i=0,o=0,u=0,c=0,l="",m=0,d=()=>m>=n.length?0:Number.parseFloat(n[m++]);for(;m<n.length;){let p=n[m++],f=/^[a-df-z]$/i.test(p),y=f?p:l;switch(f||m--,y){case"M":{r=d(),a=d(),i=r,o=a,l="L";break}case"m":{r+=d(),a+=d(),i=r,o=a,l="l";break}case"L":{let h=d(),b=d();t.push({p0:{x:r,y:a},p1:{x:r+(h-r)/3,y:a+(b-a)/3},p2:{x:r+2*(h-r)/3,y:a+2*(b-a)/3},p3:{x:h,y:b}}),r=h,a=b,l="L";break}case"l":{let h=d(),b=d(),x=r+h,v=a+b;t.push({p0:{x:r,y:a},p1:{x:r+h/3,y:a+b/3},p2:{x:r+2*h/3,y:a+2*b/3},p3:{x,y:v}}),r=x,a=v,l="l";break}case"H":{let h=d();t.push({p0:{x:r,y:a},p1:{x:r+(h-r)/3,y:a},p2:{x:r+2*(h-r)/3,y:a},p3:{x:h,y:a}}),r=h,l="H";break}case"h":{let h=d(),b=r+h;t.push({p0:{x:r,y:a},p1:{x:r+h/3,y:a},p2:{x:r+2*h/3,y:a},p3:{x:b,y:a}}),r=b,l="h";break}case"V":{let h=d();t.push({p0:{x:r,y:a},p1:{x:r,y:a+(h-a)/3},p2:{x:r,y:a+2*(h-a)/3},p3:{x:r,y:h}}),a=h,l="V";break}case"v":{let h=d(),b=a+h;t.push({p0:{x:r,y:a},p1:{x:r,y:a+h/3},p2:{x:r,y:a+2*h/3},p3:{x:r,y:b}}),a=b,l="v";break}case"C":{let h=d(),b=d(),x=d(),v=d(),S=d(),k=d();t.push({p0:{x:r,y:a},p1:{x:h,y:b},p2:{x,y:v},p3:{x:S,y:k}}),u=x,c=v,r=S,a=k,l="C";break}case"c":{let h=d(),b=d(),x=d(),v=d(),S=d(),k=d(),C=r+h,w=a+b,D=r+x,E=a+v,V=r+S,Z=a+k;t.push({p0:{x:r,y:a},p1:{x:C,y:w},p2:{x:D,y:E},p3:{x:V,y:Z}}),u=D,c=E,r=V,a=Z,l="c";break}case"S":case"s":{let h=y==="s",b=d(),x=d(),v=d(),S=d(),k=h?r+b:b,C=h?a+x:x,w=h?r+v:v,D=h?a+S:S,E=r,V=a;/^[cs]$/i.test(l)&&(E=2*r-u,V=2*a-c),t.push({p0:{x:r,y:a},p1:{x:E,y:V},p2:{x:k,y:C},p3:{x:w,y:D}}),u=k,c=C,r=w,a=D,l=y;break}case"Q":case"q":{let h=y==="q",b=d(),x=d(),v=d(),S=d(),k=h?r+b:b,C=h?a+x:x,w=h?r+v:v,D=h?a+S:S,E=r+2/3*(k-r),V=a+2/3*(C-a),Z=w+2/3*(k-w),ne=D+2/3*(C-D);t.push({p0:{x:r,y:a},p1:{x:E,y:V},p2:{x:Z,y:ne},p3:{x:w,y:D}}),u=k,c=C,r=w,a=D,l=y;break}case"A":case"a":{let h=d(),b=d(),x=d(),v=d()!==0,S=d()!==0,k=d(),C=d();y==="a"&&(k+=r,C+=a),t.push(...Rd(r,a,h,b,x,v,S,k,C)),r=k,a=C,u=k,c=C,l=y;break}case"Z":case"z":{(r!==i||a!==o)&&(t.push({p0:{x:r,y:a},p1:{x:r+(i-r)/3,y:a+(o-a)/3},p2:{x:r+2*(i-r)/3,y:a+2*(o-a)/3},p3:{x:i,y:o}}),r=i,a=o),l=y;break}default:break}}return t}function Bd(e){switch(e.type){case"bezier":return e.segments;case"svg":return ts(e.d);case"ellipse":return Qo(e.cx,e.cy,e.rx,e.ry,e.startAngleDeg??0,e.endAngleDeg??360);case"wave":return es(e.startX,e.startY,e.length,e.amplitude,e.frequency,e.phaseDeg??0)}}g();function Id(e,t,n,r,a,i=0,o=0){let u=t+r,c=n+r;if(c<=u)return 0;let l=(e-u)/(c-u),m=0;switch(a){case"square":m=l>=0&&l<=1?1:0;break;case"ramp_up":m=Math.max(0,Math.min(1,l));break;case"ramp_down":m=1-Math.max(0,Math.min(1,l));break;case"triangle":{l<0||l>1?m=0:l<.5?m=l*2:m=(1-l)*2;break}case"round":{l<0||l>1?m=0:m=.5-.5*Math.cos(l*2*Math.PI);break}case"smooth":{l<=0?m=0:l>=1?m=1:m=l*l*(3-2*l);break}}if(m>0&&m<1){if(i!==0&&m>.5){let d=(m-.5)*2,p=i>0?1+i*3:1/(1-i*3);m=.5+.5*d**p}if(o!==0&&m<=.5){let d=m*2,p=o>0?1+o*3:1/(1-o*3);m=.5*d**p}}return Math.max(0,Math.min(1,m))}function Ed(e,t,n,r){let a=(t*(1-r)+r)*12.9898+n+e*78.233,i=Math.sin(a)*43758.5453;return(i-Math.floor(i))*2-1}function _d(e,t){let n=t,r=()=>(n=(n*9301+49297)%233280,n/233280),a=Array.from({length:e},(i,o)=>o);for(let i=a.length-1;i>0;i--){let o=Math.floor(r()*(i+1)),u=a[i];a[i]=a[o],a[o]=u}return a}function Ud(e,t,n){switch(n){case"add":return Math.max(0,Math.min(1,e+t));case"subtract":return Math.max(0,Math.min(1,e-t));case"intersect":return e*t;case"min":return Math.min(e,t);case"max":return Math.max(e,t);case"difference":return Math.abs(e-t)}}g();var ns={ascii:"!@#$%^&*()_+{}[]:;<>,.?",alphanumeric:"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",matrix:"010101<>[]{}+=*~#%&!?/\\:;|X0123456789",binary:"01",hex:"0123456789ABCDEF"};function rs(e,t){return e==="custom"&&t&&t.length>0?t:ns[e]??ns.alphanumeric}function zd(e,t,n,r,a={mode:"human",jitter:.35,commaPauseMultiplier:3,sentencePauseMultiplier:5.5,paragraphPauseMultiplier:7},i={enabled:!1,charset:"alphanumeric",scrambleFramesPerChar:8,highlightProbability:.25},o=2,u="character",c){if(c===void 0&&t<n)return{visibleChars:0,currentDisplayString:"",isCursorVisible:!1};let l=c!==void 0?Math.max(0,Math.min(1,c)):Math.min(1,(t-n)/Math.max(1,r)),m=c!==void 0?l*r:t-n,d=e.length,p=Math.floor(l*d);if(u==="word"){let h=e.split(/(\s+)/),b=[];h.forEach((v,S)=>{v.trim().length>0&&b.push(S)});let x=Math.min(b.length,Math.floor(l*(b.length+1)));if(x<=0)p=0;else{let v=b[Math.min(b.length-1,x-1)];p=h.slice(0,v+1).join("").length}}else if(u==="line"){let h=e.split(`
706
- `),b=Math.min(h.length,Math.floor(l*(h.length+1)));p=h.slice(0,b).join(`
707
- `).length}else if(a.mode==="human"&&l<1){let h=0,b=0,x=r/Math.max(1,d);for(let v=0;v<d;v++){let S=e[v],k=1,C=a.commaPauseMultiplier??3,w=a.sentencePauseMultiplier??5.5,D=a.paragraphPauseMultiplier??7,E=a.jitter??.35;S===","||S===";"?k=C:S==="."||S==="!"||S==="?"?k=w:S===`
708
- `&&(k=D);let V=1+Math.sin(v*17.3+42)*.5*E,Z=x*k*V;if(b+=Z,b<=m)h=v+1;else break}p=Math.min(d,h)}let f=e.slice(0,p);if(i.enabled&&p<d&&p>0){let h=rs(i.charset,i.customCharset),b=Math.min(p,Math.max(1,i.scrambleFramesPerChar>4?3:2)),x="";for(let v=0;v<b;v++){let S=Math.floor(Math.abs(Math.sin(t*7+v*13))*h.length)%h.length;x+=h[S]}f=f.slice(0,f.length-b)+x}let y=!0;if(o>0){let h=Math.max(1,Math.round(30/(2*o)));y=Math.floor(m/h)%2===0}return{visibleChars:p,currentDisplayString:f,isCursorVisible:y}}var as=s.union([s.number().min(0),s.enum(["auto","fit","fill"]),s.custom()]),Gd=s.enum(["rect","circle","ellipse","polygon","star","arrow","path"]),Vd=s.enum(["x","y","scale","rotation","opacity","width","height","volume","hidden","muted","gap","padding","borderRadius","fontSize","text","fill","color","letterSpacing","trimStart","trimEnd","trimOffset","strokeWidth","strokeDashOffset","cornerRadius","starInnerRadiusRatio","fillColor","strokeColor","borderColor","borderWidth","motionBlurShutter","rangeStart","rangeEnd","offset","animatorRangeStart","animatorRangeEnd","animatorOffset","firstMargin","lastMargin","baselineShift","rotateX","rotateY","rotateZ","perspective","translateZ","perspectiveOriginX","perspectiveOriginY","cameraX","cameraY","cameraZ","targetX","targetY","targetZ","cameraPitch","cameraYaw","cameraRoll","cameraFov","cameraZoom","focalLength","focusDistance","fStop","maxBlurRadius","shakeTranslation","shakeRotation","orbitRadius","orbitAzimuth","orbitElevation","z","scaleZ","intensity","angle","radius","penumbra","decay","shininess","roughness","specularIntensity","ambientIntensity","metallic","ior","dispersion","transmission","fresnelPower","envIntensity","animationProgress","animationTime","animationSpeed","wireframe","scaleX","scaleY","emissive","emissiveIntensity","exposure"]),Ia=s.enum(["alpha","alpha-inverted","luma","luma-inverted"]),is=s.enum(["lit","unlit","toon","glass","acrylic","frosted","metallic"]);var jd=s.enum(["interpolate","hueRotate","threshold"]),$d=s.object({name:s.enum(["none","power1","power2","power3","sine","circ","expo","back","elastic","bounce","spring","cubic","hold"]),dir:s.enum(["in","out","inOut"]),params:s.array(s.number()).optional()}).strict().superRefine((e,t)=>{if(e.name==="spring"&&e.params){let[n,r,a]=e.params;n!==void 0&&n<=0&&t.addIssue({code:s.ZodIssueCode.custom,message:"Spring damping must be greater than 0.",path:["params",0]}),r!==void 0&&r<=0&&t.addIssue({code:s.ZodIssueCode.custom,message:"Spring stiffness must be greater than 0.",path:["params",1]}),a!==void 0&&a<=0&&t.addIssue({code:s.ZodIssueCode.custom,message:"Spring mass must be greater than 0.",path:["params",2]})}}),Wd=s.object({id:s.string().min(1),frame:s.number().int().min(0),value:s.union([s.number(),s.boolean(),s.string()]),ease:$d.optional(),presetGroupId:s.string().optional(),presetType:s.string().optional(),spatialTangentIn:s.object({x:s.number(),y:s.number()}).optional(),spatialTangentOut:s.object({x:s.number(),y:s.number()}).optional()}).strict(),Yd=s.enum(["continuous","accumulate"]),Hd=s.discriminatedUnion("type",[s.object({type:s.literal("keyframe")}),s.object({type:s.literal("signal"),inputHandleId:s.string(),multiplier:s.number().default(1),offset:s.number().default(0),smoothingWindowFrames:s.number().min(0).default(0),colorMode:jd.optional(),colorA:s.string().optional(),colorB:s.string().optional(),colorThreshold:s.number().optional(),signalMode:Yd.optional(),threshold:s.number().optional(),accumulateThreshold:s.number().optional(),debounceFrames:s.number().int().min(0).optional(),channel:s.string().optional()}),s.object({type:s.literal("wiggle"),frequency:s.number().default(2),amplitude:s.number().default(50),octaves:s.number().int().min(1).max(4).default(1),seed:s.number().default(1234)}),s.object({type:s.literal("springOvershoot"),damping:s.number().default(12),stiffness:s.number().default(180),mass:s.number().default(1)})]),Xd=s.preprocess(e=>{if(!e||typeof e!="object")return e;let t=e;if(t.type==="signal"){let n=typeof t.threshold=="number"?t.threshold:typeof t.accumulateThreshold=="number"?t.accumulateThreshold:.15;return{type:"signal",inputHandleId:t.inputHandleId??t.handleId,multiplier:t.multiplier??t.amplitude??1,offset:t.offset??0,smoothingWindowFrames:t.smoothingWindowFrames??t.smoothing??0,colorMode:t.colorMode,colorA:t.colorA,colorB:t.colorB,colorThreshold:t.colorThreshold,signalMode:t.signalMode??"continuous",threshold:n,accumulateThreshold:n,debounceFrames:t.debounceFrames??2,channel:typeof t.channel=="string"?t.channel:"primary"}}return e},Hd),qd=(e,t)=>{if(!e?.tracks)return;let n=0;for(let r=0;r<e.tracks.length;r++){let a=e.tracks[r],i=a.keyframes??[];n+=i.length,(!a.source||a.source.type==="keyframe")&&i.length<1&&t.addIssue({code:s.ZodIssueCode.custom,message:`Track for property '${a.prop}' must have at least 1 keyframe.`,path:["tracks",r,"keyframes"]});let u=a.prop==="hidden"||a.prop==="muted",c=a.prop==="fillColor"||a.prop==="strokeColor"||a.prop==="fill"||a.prop==="color";for(let l=0;l<i.length;l++){let m=i[l];if(l>0){let p=i[l-1];m.frame<p.frame?t.addIssue({code:s.ZodIssueCode.custom,message:"Keyframes must be sorted in ascending order of frame.",path:["tracks",r,"keyframes",l]}):m.frame===p.frame&&t.addIssue({code:s.ZodIssueCode.custom,message:"Duplicate keyframes at the same frame are not allowed.",path:["tracks",r,"keyframes",l]})}let d=typeof m.value;u?d!=="boolean"&&t.addIssue({code:s.ZodIssueCode.custom,message:`Keyframe value for discrete property '${a.prop}' must be a boolean.`,path:["tracks",r,"keyframes",l,"value"]}):c?d!=="string"&&t.addIssue({code:s.ZodIssueCode.custom,message:`Keyframe value for color property '${a.prop}' must be a string.`,path:["tracks",r,"keyframes",l,"value"]}):d!=="number"||Number.isNaN(m.value)||!Number.isFinite(m.value)?t.addIssue({code:s.ZodIssueCode.custom,message:`Keyframe value for numeric property '${a.prop}' must be a finite number.`,path:["tracks",r,"keyframes",l,"value"]}):(a.prop==="volume"||a.prop==="trimStart"||a.prop==="trimEnd")&&(m.value<0||m.value>1)&&t.addIssue({code:s.ZodIssueCode.custom,message:`Keyframe value for property '${a.prop}' must be between 0 and 1.`,path:["tracks",r,"keyframes",l,"value"]})}}n>128&&t.addIssue({code:s.ZodIssueCode.custom,message:`Total keyframes across all tracks (${n}) exceeds the limit of 128.`,path:["tracks"]})},Zd=s.object({id:s.string().min(1),prop:Vd,source:Xd.optional(),keyframes:s.array(Wd).default([]),repeat:s.number().int().optional(),yoyo:s.boolean().optional(),durationFrames:s.number().int().min(1).optional()}).strict(),Ea=s.object({tracks:s.array(Zd).max(24)}).strict().superRefine(qd),pt={id:s.string().min(1),inputHandleId:s.string().optional(),position:s.enum(["relative","absolute"]).default("relative"),x:s.union([s.number(),s.custom()]).default(0),y:s.union([s.number(),s.custom()]).default(0),width:as.optional(),height:as.optional(),grow:s.number().min(0).optional(),flexShrink:s.number().min(0).optional(),flexBasis:s.number().min(0).optional(),alignSelf:s.enum(["auto","start","center","end","stretch","baseline"]).optional(),aspectRatio:s.number().positive().optional(),zIndex:s.number().int().default(0),hidden:s.boolean().default(!1),opacity:s.number().min(0).max(1).default(1),blendMode:s.string().optional(),effects:s.array(s.unknown()).optional(),rotation:s.number().default(0),scale:s.number().min(0).default(1),anchorX:s.number().min(0).max(1).default(.5),anchorY:s.number().min(0).max(1).default(.5),startFrame:s.number().int().min(0).default(0),durationFrames:s.number().int().min(1).optional(),motionBlurShutter:s.number().min(0).max(360).optional(),rotateX:s.number().default(0),rotateY:s.number().default(0),rotateZ:s.number().default(0),perspective:s.number().min(0).default(0),perspectiveOriginX:s.number().default(.5),perspectiveOriginY:s.number().default(.5),translateZ:s.number().default(0),backfaceVisibility:s.enum(["visible","hidden"]).default("visible"),transformStyle:s.enum(["flat","preserve-3d"]).default("flat"),is3D:s.boolean().default(!1),z:s.union([s.number(),s.custom()]).default(0),scaleZ:s.number().default(1),twoSided:s.boolean().default(!0),material:is.default("lit"),ior:s.number().min(1).max(3).optional(),roughness:s.number().min(0).max(1).optional(),shininess:s.number().min(1).max(512).default(32),specularIntensity:s.number().min(0).default(.5),metallic:s.number().min(0).max(1).optional(),ambientIntensity:s.number().min(0).default(1),transmission:s.number().min(0).max(1).optional(),dispersion:s.number().min(0).max(1).optional(),fresnelPower:s.number().min(1).max(10).optional(),envIntensity:s.number().min(0).max(10).optional(),emissive:le.optional(),emissiveIntensity:s.number().min(0).optional(),castShadow:s.boolean().optional(),matte:s.object({node:s.custom(e=>typeof e=="object"&&e!==null),mode:Ia.optional()}).optional(),matteId:s.string().optional(),matteOf:s.string().optional(),matteMode:Ia.optional(),animation:Ea.default({tracks:[]}),vision:s.unknown().optional(),relighting:s.unknown().optional()},os=s.object({color:le,offset:s.object({x:s.number(),y:s.number()}).optional(),blurRadius:s.number().min(0).optional()}).strict(),Kd=s.object({x:s.number().optional(),y:s.number().optional(),scale:s.number().optional(),scaleX:s.number().optional(),scaleY:s.number().optional(),rotation:s.number().optional(),rotationX:s.number().optional(),rotationY:s.number().optional(),opacity:s.number().optional(),blur:s.number().optional(),color:s.string().optional()}).strict(),ss=s.object({id:s.string(),unit:s.enum(["character","word","line"]).default("character"),rangeStart:s.number().min(0).max(1).default(0),rangeEnd:s.number().min(0).max(1).default(1),offset:s.number().min(-1).max(1).default(0),easing:s.string().default("power2.out"),transform:Kd.optional()}),Jd={waveRise(e={}){return{id:e.id??"wave-rise",unit:e.unit??"character",rangeStart:e.rangeStart??0,rangeEnd:e.rangeEnd??1,offset:e.offset??-1,easing:e.easing??"power2.out",transform:{y:e.y??40,rotationX:e.rotationX??45,opacity:e.opacity??0,blur:e.blur??0}}},wordPop(e={}){return{id:e.id??"word-pop",unit:"word",rangeStart:0,rangeEnd:1,offset:-1,easing:e.easing??"back.out(1.6)",transform:{scale:e.scale??0,y:e.y??20,opacity:0}}},blurIn(e={}){return{id:e.id??"blur-in",unit:e.unit??"character",rangeStart:0,rangeEnd:1,offset:-1,easing:e.easing??"power3.out",transform:{blur:e.blur??16,y:e.y??20,opacity:e.opacity??0}}},flip3D(e={}){return{id:e.id??"flip-3d",unit:e.unit??"character",rangeStart:0,rangeEnd:1,offset:-1,easing:e.easing??"back.out(1.4)",transform:{rotationX:e.rotationX??90,opacity:0}}},colorSweep(e){return{id:e.id??"color-sweep",unit:e.unit??"character",rangeStart:0,rangeEnd:.5,offset:-.5,easing:e.easing??"power2.inOut",transform:{color:e.color}}}},Qd=s.object({focalLength:s.number().min(5).max(500).default(50),fov:s.number().min(5).max(160).optional(),sensorWidth:s.number().default(36),near:s.number().min(.1).default(1),far:s.number().min(10).default(5e4),zoom:s.number().min(.01).default(1)}).strict(),em=s.object({enabled:s.boolean().default(!1),focusDistance:s.number().min(1).default(1e3),fStop:s.number().min(.5).max(64).default(2.8),maxBlurRadius:s.number().min(0).max(128).default(32),apertureBlades:s.number().int().min(0).max(12).default(0),anamorphicRatio:s.number().min(.5).max(3).default(1)}).strict(),tm=s.object({translationAmplitude:s.number().min(0).default(0),rotationAmplitude:s.number().min(0).default(0),frequency:s.number().min(.1).max(60).default(2.5),octaves:s.number().int().min(1).max(6).default(3),seed:s.number().default(42)}).strict(),us=s.object({id:s.string().min(1),kind:s.literal("camera"),mode:s.enum(["lookAt","free","orbit"]).default("lookAt"),x:s.number().optional(),y:s.number().optional(),z:s.number().optional(),targetX:s.number().optional(),targetY:s.number().optional(),targetZ:s.number().optional(),pitch:s.number().default(0),yaw:s.number().default(0),roll:s.number().default(0),lens:Qd.optional(),dof:em.optional(),shake:tm.optional(),startFrame:s.number().int().min(0).default(0),durationFrames:s.number().int().min(1).optional(),animation:Ea.default({tracks:[]})}).strict(),ls=s.enum(["ambient","directional","point","spot","environment"]),cs=s.enum(["studio","soft","sunset","night","neutral"]),ds=s.enum(["neutral","agx","aces","none"]),ms=s.object({color:le,start:s.number().min(0),end:s.number().min(0),opacity:s.number().min(0).max(1).optional()}).strict(),ps=s.object({intensity:s.number().min(0).max(10).optional(),threshold:s.number().min(0).max(16).optional(),knee:s.number().min(0).max(1).optional(),radius:s.number().min(1).max(8).optional()}).strict(),fs=s.object({id:s.string().min(1),kind:s.literal("light"),lightType:ls.default("directional"),color:le.default("#ffffff"),intensity:s.number().default(1),x:s.number().optional(),y:s.number().optional(),z:s.number().optional(),targetX:s.number().optional(),targetY:s.number().optional(),targetZ:s.number().optional(),direction:s.tuple([s.number(),s.number(),s.number()]).optional(),radius:s.number().min(0).default(1e3),decay:s.number().min(0).default(2),angle:s.number().min(0).max(180).default(45),penumbra:s.number().min(0).max(1).default(.2),castShadow:s.boolean().optional(),shadowSoftness:s.number().min(0).max(64).optional(),shadowDarkness:s.number().min(0).max(1).optional(),shadowMapSize:s.number().int().min(256).max(8192).optional(),preset:cs.optional(),top:le.optional(),horizon:le.optional(),bottom:le.optional(),softboxes:s.number().min(0).optional(),rotation:s.number().optional(),exposure:s.number().min(-16).max(16).optional(),toneMapping:ds.optional(),fog:ms.optional(),bloom:s.union([s.boolean(),ps]).optional(),startFrame:s.number().int().min(0).default(0),durationFrames:s.number().int().min(1).optional(),animation:Ea.default({tracks:[]})}).strict(),_a=()=>s.array(s.lazy(()=>Ua)),hs=s.object({...pt,kind:s.literal("flex"),dir:s.enum(["row","column"]).default("row"),gap:s.number().min(0).default(0),padding:s.number().min(0).default(0),justify:s.enum(["start","center","end","space-between","space-around"]).default("start"),align:s.enum(["start","center","end","stretch"]).default("start"),wrap:s.boolean().default(!1),staggerFrames:s.number().min(0).default(0),staggerDirection:s.enum(["forward","reverse","center-out"]).default("forward"),overflow:s.enum(["visible","hidden"]).default("hidden"),background:le.optional(),borderRadius:s.number().min(0).optional(),borderColor:le.optional(),borderWidth:s.number().min(0).optional(),strokeAlign:s.enum(["inside","center","outside"]).optional(),strokeRadius:s.number().min(0).optional(),children:_a().optional()}).strict(),nm=s.object({...pt,kind:s.literal("block"),gap:s.number().min(0).default(0),padding:s.number().min(0).default(0),align:s.enum(["start","center","end","stretch"]).default("start"),staggerFrames:s.number().min(0).default(0),staggerDirection:s.enum(["forward","reverse","center-out"]).default("forward"),overflow:s.enum(["visible","hidden"]).default("hidden"),background:le.optional(),borderRadius:s.number().min(0).optional(),borderColor:le.optional(),borderWidth:s.number().min(0).optional(),strokeAlign:s.enum(["inside","center","outside"]).optional(),strokeRadius:s.number().min(0).optional(),children:_a().optional()}).strict(),gs=s.object({...pt,kind:s.literal("box"),background:le,borderRadius:s.number().min(0).optional(),padding:s.number().min(0).default(0),staggerFrames:s.number().min(0).default(0),staggerDirection:s.enum(["forward","reverse","center-out"]).default("forward"),overflow:s.enum(["visible","hidden"]).default("hidden"),borderColor:le.optional(),borderWidth:s.number().min(0).optional(),strokeAlign:s.enum(["inside","center","outside"]).optional(),strokeRadius:s.number().min(0).optional(),children:_a().optional()}).strict(),bs=s.object({background:le,borderRadius:s.number().min(0).optional(),paddingX:s.number().min(0).optional(),paddingY:s.number().min(0).optional()}).strict(),ys=s.object({text:s.union([s.string(),s.custom(e=>!!(e&&typeof e=="object"&&"get"in e))]),fontFamily:s.string().optional(),fontSize:s.union([s.number().positive(),s.custom(e=>!!(e&&typeof e=="object"&&"get"in e))]).optional(),fontWeight:s.union([s.number().int(),s.string()]).optional(),fontStyle:s.enum(["normal","italic"]).optional(),fill:s.union([le,s.custom(e=>!!(e&&typeof e=="object"&&"get"in e))]).optional(),letterSpacing:s.number().optional(),baselineShift:s.number().optional(),opacity:s.union([s.number().min(0).max(1),s.custom(e=>!!(e&&typeof e=="object"&&"get"in e))]).optional(),mark:bs.optional()}).strict(),rm={text:s.string().default(""),spans:s.array(ys).optional(),fontFamily:s.string().optional(),fontSize:s.number().positive().optional(),fontWeight:s.union([s.number().int(),s.string()]).optional(),fontStyle:s.string().optional(),fill:le,align:s.enum(["start","center","end"]).optional(),verticalAlign:s.enum(["top","middle","bottom"]).optional(),lineHeight:s.number().positive().optional(),letterSpacing:s.number().optional(),background:le,borderRadius:s.number().min(0).optional(),padding:s.number().min(0).optional(),stroke:le,strokeWidth:s.number().min(0).optional(),strokeAlign:s.enum(["inside","center","outside"]).optional(),textShadow:s.string().optional(),shadows:s.array(os).optional(),pathOptions:Bt.optional(),typewriter:Zn.optional(),marquee:Oa.optional(),animators:s.array(s.union([ss,It,La])).optional()},xs=s.object({...pt,...rm,kind:s.literal("text")}).strict(),vs=s.object({...pt,kind:s.literal("media"),inputHandleId:s.string().min(1),dataType:s.string().optional(),fit:s.enum(["cover","contain","fill","none"]).default("contain"),borderRadius:s.number().min(0).optional(),borderColor:le.optional(),borderWidth:s.number().min(0).optional(),strokeAlign:s.enum(["inside","center","outside"]).optional(),strokeRadius:s.number().min(0).optional(),volume:s.number().min(0).max(1).default(1),muted:s.boolean().default(!1),trimStartSec:s.number().min(0).optional(),fontFamily:s.string().optional(),fontSize:s.number().positive().optional(),fontWeight:s.union([s.number().int(),s.string()]).optional(),fontStyle:s.string().optional(),fill:le,align:s.enum(["start","center","end"]).optional(),verticalAlign:s.enum(["top","middle","bottom"]).optional(),lineHeight:s.number().positive().optional(),letterSpacing:s.number().optional(),background:le,padding:s.number().min(0).optional(),stroke:le,strokeWidth:s.number().min(0).optional(),textShadow:s.string().optional(),shadows:s.array(os).optional(),maxWidth:s.number().optional()}).strict(),am={shapeType:Gd.default("rect"),borderRadius:s.number().min(0).optional(),radiusTL:s.number().min(0).optional(),radiusTR:s.number().min(0).optional(),radiusBR:s.number().min(0).optional(),radiusBL:s.number().min(0).optional(),polygonSides:s.number().int().min(3).max(64).optional(),starPoints:s.number().int().min(3).max(64).optional(),starInnerRadiusRatio:s.number().min(.01).max(.99).optional(),arrowHeadWidth:s.number().min(0).optional(),arrowHeadLength:s.number().min(0).optional(),arrowShaftWidth:s.number().min(1).optional(),d:s.string().optional(),fillType:s.enum(["solid","linear","radial","none"]).default("solid"),fillColor:le.default("#3b82f6"),gradientEndColor:le.optional(),gradientAngle:s.number().default(0),strokeColor:le.default("#ffffff"),strokeWidth:s.number().min(0).default(0),strokeDashArray:s.string().optional(),strokeDashOffset:s.number().default(0),strokeLineCap:s.enum(["butt","round","square"]).default("round"),strokeLineJoin:s.enum(["miter","round","bevel"]).default("round"),strokeAlign:s.enum(["inside","center","outside"]).optional(),trimStart:s.number().min(0).max(1).default(0),trimEnd:s.number().min(0).max(1).default(1),trimOffset:s.number().default(0)},ws=s.object({...pt,...am,kind:s.literal("shape")}).strict(),im=s.object({offset:s.number().min(0).max(1),color:s.string()}),Ss=s.object({...pt,kind:s.literal("model3d"),src:s.string().default(""),modelFormat:s.enum(["obj","fbx","gltf","glb","stl","ply","vox","3ds","off","auto"]).default("auto"),modelData:s.unknown().optional(),animationName:s.string().optional(),animationProgress:s.number().min(0).max(1).default(0),animationTime:s.number().min(0).default(0),animationSpeed:s.number().default(1),loop:s.boolean().default(!0),wireframe:s.boolean().default(!1),texture:s.string().optional(),center:s.boolean().optional(),normalizeSize:s.number().optional(),scaleX:s.number().default(1),scaleY:s.number().default(1),audioDeform:s.record(s.string(),s.unknown()).optional(),color:le.optional(),colorTint:le.optional(),text3dOptions:s.unknown().optional(),primitive3d:s.unknown().optional()}).strict(),Ua=s.lazy(()=>s.union([hs,nm,gs,xs,vs,ws,us,fs,Ss])),om=s.object({width:s.number().int().min(1).max(4096),height:s.number().int().min(1).max(4096),backgroundColor:le,volume:s.number().min(0).max(1).default(1),fps:s.number().int().min(1).max(120).default(24),mode:s.enum(["Video","Image"]).default("Video"),antialias3d:s.boolean().optional(),layout:s.array(Ua).default([]),fonts:s.array(s.string()).optional(),signals:s.record(s.string(),s.unknown()).optional(),effects:s.array(s.unknown()).optional(),vision:s.unknown().optional(),onRequestFrame:s.custom().optional()}).strict();g();var Ms=s.enum(["cut","carrierMatchCut","cameraWhip","focusPullDissolve","irisAperture","pushDirectional"]),ks=s.object({sourceLayerId:s.string(),targetLayerId:s.string(),mode:s.enum(["exact","preserveVelocity","morph"]).default("preserveVelocity"),blendFrames:s.number().int().min(0).max(30).default(0)}).strict(),sm=s.object({id:s.string(),chapter:s.enum(["hook","tension","solution","feature_spotlight","outro","custom"]).default("custom"),durationMs:s.number().positive().optional(),durationFrames:s.number().int().positive().optional(),transitionOut:s.object({type:Ms.default("cut"),durationFrames:s.number().int().min(0).default(0),carrier:ks.optional(),whipDirection:s.enum(["left","right","up","down"]).default("left")}).default({type:"cut",durationFrames:0,whipDirection:"left"})}).passthrough();function um(e,t){return{x:e.x,y:e.y,scale:e.scale,vx:e.vx,vy:e.vy,...t}}function Ts(e,t=60){let n=0,r=[];for(let o of e){let u=n,c=o.durationFrames??(o.durationMs?Math.round(o.durationMs/1e3*t):60);r.push({sceneId:o.id,startFrame:u,durationFrames:c});let l=o.transitionOverlap??o.transitionOut?.durationFrames??0;n+=Math.max(1,c-l)}let a=n,i=Math.round(a/t*1e3);return{totalFrames:a,totalDurationMs:i,sceneOffsets:r}}var fn=class e{id;chapter;durationMs;durationFrames;transitionOut;layout;constructor(t){this.id=t.id,this.chapter=t.chapter??"custom",this.durationMs=t.durationMs,this.durationFrames=t.durationFrames,this.transitionOut={type:t.transitionOut?.type??"cut",durationFrames:t.transitionOut?.durationFrames??0,carrier:t.transitionOut?.carrier,whipDirection:t.transitionOut?.whipDirection??"left"},this.layout=t.layout??[]}static create(t){return new e(t)}},za=class e{fps;width;height;backgroundColor;fonts;signals;scenes=[];constructor(t={}){if(this.fps=t.fps??60,this.width=t.width??1920,this.height=t.height??1080,this.backgroundColor=t.backgroundColor??"#ffffff",this.fonts=t.fonts,this.signals=t.signals,t.scenes)for(let n of t.scenes)this.addScene(n)}static create(t={}){return new e(t)}addScene(t){let n=t instanceof fn?t:new fn(t);return this.scenes.push(n),this}getScenes(){return this.scenes}calculateTimeline(){return Ts(this.scenes,this.fps)}toProgram(){let t=this.calculateTimeline(),n=[];for(let r=0;r<this.scenes.length;r++){let a=this.scenes[r],i=t.sceneOffsets[r];if(i)for(let o of a.layout){let u={...o};u.startFrame=(u.startFrame??0)+i.startFrame,u.durationFrames===void 0&&(u.durationFrames=i.durationFrames),n.push(u)}}return{width:this.width,height:this.height,backgroundColor:this.backgroundColor,fps:this.fps,volume:1,mode:"Video",layout:n,fonts:this.fonts,signals:this.signals}}};g();g();g();g();g();g();function Ps(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function ft(e,t){if(!isFinite(e)||e===0)return null;var n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"),r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function Ge(e){return e=ft(Math.abs(e)),e?e[1]:NaN}g();function Cs(e,t){return function(n,r){for(var a=n.length,i=[],o=0,u=e[0],c=0;a>0&&u>0&&(c+u+1>r&&(u=Math.max(1,r-c)),i.push(n.substring(a-=u,a+u)),!((c+=u+1)>r));)u=e[o=(o+1)%e.length];return i.reverse().join(t)}}g();function As(e){return function(t){return t.replace(/[0-9]/g,function(n){return e[+n]})}}g();var lm=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function tt(e){if(!(t=lm.exec(e)))throw new Error("invalid format: "+e);var t;return new er({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}tt.prototype=er.prototype;function er(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}er.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};g();function Ns(e){e:for(var t=e.length,n=1,r=-1,a;n<t;++n)switch(e[n]){case".":r=a=n;break;case"0":r===0&&(r=n),a=n;break;default:if(!+e[n])break e;r>0&&(r=0);break}return r>0?e.slice(0,r)+e.slice(a+1):e}g();g();var hn;function Ds(e,t){var n=ft(e,t);if(!n)return hn=void 0,e.toPrecision(t);var r=n[0],a=n[1],i=a-(hn=Math.max(-8,Math.min(8,Math.floor(a/3)))*3)+1,o=r.length;return i===o?r:i>o?r+new Array(i-o+1).join("0"):i>0?r.slice(0,i)+"."+r.slice(i):"0."+new Array(1-i).join("0")+ft(e,Math.max(0,t+i-1))[0]}g();function Ga(e,t){var n=ft(e,t);if(!n)return e+"";var r=n[0],a=n[1];return a<0?"0."+new Array(-a).join("0")+r:r.length>a+1?r.slice(0,a+1)+"."+r.slice(a+1):r+new Array(a-r.length+2).join("0")}var Va={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:Ps,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>Ga(e*100,t),r:Ga,s:Ds,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};g();function ja(e){return e}var Os=Array.prototype.map,Ls=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];function Fs(e){var t=e.grouping===void 0||e.thousands===void 0?ja:Cs(Os.call(e.grouping,Number),e.thousands+""),n=e.currency===void 0?"":e.currency[0]+"",r=e.currency===void 0?"":e.currency[1]+"",a=e.decimal===void 0?".":e.decimal+"",i=e.numerals===void 0?ja:As(Os.call(e.numerals,String)),o=e.percent===void 0?"%":e.percent+"",u=e.minus===void 0?"\u2212":e.minus+"",c=e.nan===void 0?"NaN":e.nan+"";function l(d,p){d=tt(d);var f=d.fill,y=d.align,h=d.sign,b=d.symbol,x=d.zero,v=d.width,S=d.comma,k=d.precision,C=d.trim,w=d.type;w==="n"?(S=!0,w="g"):Va[w]||(k===void 0&&(k=12),C=!0,w="g"),(x||f==="0"&&y==="=")&&(x=!0,f="0",y="=");var D=(p&&p.prefix!==void 0?p.prefix:"")+(b==="$"?n:b==="#"&&/[boxX]/.test(w)?"0"+w.toLowerCase():""),E=(b==="$"?r:/[%p]/.test(w)?o:"")+(p&&p.suffix!==void 0?p.suffix:""),V=Va[w],Z=/[defgprs%]/.test(w);k=k===void 0?6:/[gprs]/.test(w)?Math.max(1,Math.min(21,k)):Math.max(0,Math.min(20,k));function ne(R){var P=D,T=E,$,Y,U;if(w==="c")T=V(R)+T,R="";else{R=+R;var _=R<0||1/R<0;if(R=isNaN(R)?c:V(Math.abs(R),k),C&&(R=Ns(R)),_&&+R==0&&h!=="+"&&(_=!1),P=(_?h==="("?h:u:h==="-"||h==="("?"":h)+P,T=(w==="s"&&!isNaN(R)&&hn!==void 0?Ls[8+hn/3]:"")+T+(_&&h==="("?")":""),Z){for($=-1,Y=R.length;++$<Y;)if(U=R.charCodeAt($),48>U||U>57){T=(U===46?a+R.slice($+1):R.slice($))+T,R=R.slice(0,$);break}}}S&&!x&&(R=t(R,1/0));var W=P.length+R.length+T.length,re=W<v?new Array(v-W+1).join(f):"";switch(S&&x&&(R=t(re+R,re.length?v-T.length:1/0),re=""),y){case"<":R=P+R+T+re;break;case"=":R=P+re+R+T;break;case"^":R=re.slice(0,W=re.length>>1)+P+R+T+re.slice(W);break;default:R=re+P+R+T;break}return i(R)}return ne.toString=function(){return d+""},ne}function m(d,p){var f=Math.max(-8,Math.min(8,Math.floor(Ge(p)/3)))*3,y=Math.pow(10,-f),h=l((d=tt(d),d.type="f",d),{suffix:Ls[8+f/3]});return function(b){return h(y*b)}}return{format:l,formatPrefix:m}}var tr,Et,nr;$a({thousands:",",grouping:[3],currency:["$",""]});function $a(e){return tr=Fs(e),Et=tr.format,nr=tr.formatPrefix,tr}g();function Wa(e){return Math.max(0,-Ge(Math.abs(e)))}g();function Ya(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(Ge(t)/3)))*3-Ge(Math.abs(e)))}g();function Ha(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,Ge(t)-Ge(e))+1}g();g();g();g();g();function ht(e,t){return e==null||t==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}g();g();function Xa(e,t){return e==null||t==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function gt(e){let t,n,r;e.length!==2?(t=ht,n=(u,c)=>ht(e(u),c),r=(u,c)=>e(u)-c):(t=e===ht||e===Xa?e:cm,n=e,r=e);function a(u,c,l=0,m=u.length){if(l<m){if(t(c,c)!==0)return m;do{let d=l+m>>>1;n(u[d],c)<0?l=d+1:m=d}while(l<m)}return l}function i(u,c,l=0,m=u.length){if(l<m){if(t(c,c)!==0)return m;do{let d=l+m>>>1;n(u[d],c)<=0?l=d+1:m=d}while(l<m)}return l}function o(u,c,l=0,m=u.length){let d=a(u,c,l,m-1);return d>l&&r(u[d-1],c)>-r(u[d],c)?d-1:d}return{left:a,center:o,right:i}}function cm(){return 0}g();function qa(e){return e===null?NaN:+e}var Rs=gt(ht),Bs=Rs.right,dm=Rs.left,mm=gt(qa).center,Za=Bs;g();var _t=class extends Map{constructor(t,n=hm){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),t!=null)for(let[r,a]of t)this.set(r,a)}get(t){return super.get(Is(this,t))}has(t){return super.has(Is(this,t))}set(t,n){return super.set(pm(this,t),n)}delete(t){return super.delete(fm(this,t))}};function Is({_intern:e,_key:t},n){let r=t(n);return e.has(r)?e.get(r):n}function pm({_intern:e,_key:t},n){let r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function fm({_intern:e,_key:t},n){let r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function hm(e){return e!==null&&typeof e=="object"?e.valueOf():e}g();var gm=Math.sqrt(50),bm=Math.sqrt(10),ym=Math.sqrt(2);function rr(e,t,n){let r=(t-e)/Math.max(0,n),a=Math.floor(Math.log10(r)),i=r/Math.pow(10,a),o=i>=gm?10:i>=bm?5:i>=ym?2:1,u,c,l;return a<0?(l=Math.pow(10,-a)/o,u=Math.round(e*l),c=Math.round(t*l),u/l<e&&++u,c/l>t&&--c,l=-l):(l=Math.pow(10,a)*o,u=Math.round(e/l),c=Math.round(t/l),u*l<e&&++u,c*l>t&&--c),c<u&&.5<=n&&n<2?rr(e,t,n*2):[u,c,l]}function ar(e,t,n){if(t=+t,e=+e,n=+n,!(n>0))return[];if(e===t)return[e];let r=t<e,[a,i,o]=r?rr(t,e,n):rr(e,t,n);if(!(i>=a))return[];let u=i-a+1,c=new Array(u);if(r)if(o<0)for(let l=0;l<u;++l)c[l]=(i-l)/-o;else for(let l=0;l<u;++l)c[l]=(i-l)*o;else if(o<0)for(let l=0;l<u;++l)c[l]=(a+l)/-o;else for(let l=0;l<u;++l)c[l]=(a+l)*o;return c}function gn(e,t,n){return t=+t,e=+e,n=+n,rr(e,t,n)[2]}function Ut(e,t,n){t=+t,e=+e,n=+n;let r=t<e,a=r?gn(t,e,n):gn(e,t,n);return(r?-1:1)*(a<0?1/-a:a)}g();function ir(e,t,n){e=+e,t=+t,n=(a=arguments.length)<2?(t=e,e=0,1):a<3?1:+n;for(var r=-1,a=Math.max(0,Math.ceil((t-e)/n))|0,i=new Array(a);++r<a;)i[r]=e+r*n;return i}g();function nt(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}g();var Es=Symbol("implicit");function or(){var e=new _t,t=[],n=[],r=Es;function a(i){let o=e.get(i);if(o===void 0){if(r!==Es)return r;e.set(i,o=t.push(i)-1)}return n[o%n.length]}return a.domain=function(i){if(!arguments.length)return t.slice();t=[],e=new _t;for(let o of i)e.has(o)||e.set(o,t.push(o)-1);return a},a.range=function(i){return arguments.length?(n=Array.from(i),a):n.slice()},a.unknown=function(i){return arguments.length?(r=i,a):r},a.copy=function(){return or(t,n).unknown(r)},nt.apply(a,arguments),a}function bn(){var e=or().unknown(void 0),t=e.domain,n=e.range,r=0,a=1,i,o,u=!1,c=0,l=0,m=.5;delete e.unknown;function d(){var p=t().length,f=a<r,y=f?a:r,h=f?r:a;i=(h-y)/Math.max(1,p-c+l*2),u&&(i=Math.floor(i)),y+=(h-y-i*(p-c))*m,o=i*(1-c),u&&(y=Math.round(y),o=Math.round(o));var b=ir(p).map(function(x){return y+i*x});return n(f?b.reverse():b)}return e.domain=function(p){return arguments.length?(t(p),d()):t()},e.range=function(p){return arguments.length?([r,a]=p,r=+r,a=+a,d()):[r,a]},e.rangeRound=function(p){return[r,a]=p,r=+r,a=+a,u=!0,d()},e.bandwidth=function(){return o},e.step=function(){return i},e.round=function(p){return arguments.length?(u=!!p,d()):u},e.padding=function(p){return arguments.length?(c=Math.min(1,l=+p),d()):c},e.paddingInner=function(p){return arguments.length?(c=Math.min(1,p),d()):c},e.paddingOuter=function(p){return arguments.length?(l=+p,d()):l},e.align=function(p){return arguments.length?(m=Math.max(0,Math.min(1,p)),d()):m},e.copy=function(){return bn(t(),[r,a]).round(u).paddingInner(c).paddingOuter(l).align(m)},nt.apply(d(),arguments)}g();g();g();g();g();g();g();function sr(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function Ka(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function vn(){}var yn=.7,cr=1/yn,zt="\\s*([+-]?\\d+)\\s*",xn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Ve="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",xm=/^#([0-9a-f]{3,8})$/,vm=new RegExp(`^rgb\\(${zt},${zt},${zt}\\)$`),wm=new RegExp(`^rgb\\(${Ve},${Ve},${Ve}\\)$`),Sm=new RegExp(`^rgba\\(${zt},${zt},${zt},${xn}\\)$`),Mm=new RegExp(`^rgba\\(${Ve},${Ve},${Ve},${xn}\\)$`),km=new RegExp(`^hsl\\(${xn},${Ve},${Ve}\\)$`),Tm=new RegExp(`^hsla\\(${xn},${Ve},${Ve},${xn}\\)$`),_s={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};sr(vn,rt,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:Us,formatHex:Us,formatHex8:Pm,formatHsl:Cm,formatRgb:zs,toString:zs});function Us(){return this.rgb().formatHex()}function Pm(){return this.rgb().formatHex8()}function Cm(){return Ys(this).formatHsl()}function zs(){return this.rgb().formatRgb()}function rt(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=xm.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?Gs(t):n===3?new Re(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?ur(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?ur(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=vm.exec(e))?new Re(t[1],t[2],t[3],1):(t=wm.exec(e))?new Re(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=Sm.exec(e))?ur(t[1],t[2],t[3],t[4]):(t=Mm.exec(e))?ur(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=km.exec(e))?$s(t[1],t[2]/100,t[3]/100,1):(t=Tm.exec(e))?$s(t[1],t[2]/100,t[3]/100,t[4]):_s.hasOwnProperty(e)?Gs(_s[e]):e==="transparent"?new Re(NaN,NaN,NaN,0):null}function Gs(e){return new Re(e>>16&255,e>>8&255,e&255,1)}function ur(e,t,n,r){return r<=0&&(e=t=n=NaN),new Re(e,t,n,r)}function Am(e){return e instanceof vn||(e=rt(e)),e?(e=e.rgb(),new Re(e.r,e.g,e.b,e.opacity)):new Re}function Gt(e,t,n,r){return arguments.length===1?Am(e):new Re(e,t,n,r??1)}function Re(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}sr(Re,Gt,Ka(vn,{brighter(e){return e=e==null?cr:Math.pow(cr,e),new Re(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?yn:Math.pow(yn,e),new Re(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Re(yt(this.r),yt(this.g),yt(this.b),dr(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Vs,formatHex:Vs,formatHex8:Nm,formatRgb:js,toString:js}));function Vs(){return`#${bt(this.r)}${bt(this.g)}${bt(this.b)}`}function Nm(){return`#${bt(this.r)}${bt(this.g)}${bt(this.b)}${bt((isNaN(this.opacity)?1:this.opacity)*255)}`}function js(){let e=dr(this.opacity);return`${e===1?"rgb(":"rgba("}${yt(this.r)}, ${yt(this.g)}, ${yt(this.b)}${e===1?")":`, ${e})`}`}function dr(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function yt(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function bt(e){return e=yt(e),(e<16?"0":"")+e.toString(16)}function $s(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new Ee(e,t,n,r)}function Ys(e){if(e instanceof Ee)return new Ee(e.h,e.s,e.l,e.opacity);if(e instanceof vn||(e=rt(e)),!e)return new Ee;if(e instanceof Ee)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,a=Math.min(t,n,r),i=Math.max(t,n,r),o=NaN,u=i-a,c=(i+a)/2;return u?(t===i?o=(n-r)/u+(n<r)*6:n===i?o=(r-t)/u+2:o=(t-n)/u+4,u/=c<.5?i+a:2-i-a,o*=60):u=c>0&&c<1?0:o,new Ee(o,u,c,e.opacity)}function Hs(e,t,n,r){return arguments.length===1?Ys(e):new Ee(e,t,n,r??1)}function Ee(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}sr(Ee,Hs,Ka(vn,{brighter(e){return e=e==null?cr:Math.pow(cr,e),new Ee(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?yn:Math.pow(yn,e),new Ee(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,a=2*n-r;return new Re(Ja(e>=240?e-240:e+120,a,r),Ja(e,a,r),Ja(e<120?e+240:e-120,a,r),this.opacity)},clamp(){return new Ee(Ws(this.h),lr(this.s),lr(this.l),dr(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let e=dr(this.opacity);return`${e===1?"hsl(":"hsla("}${Ws(this.h)}, ${lr(this.s)*100}%, ${lr(this.l)*100}%${e===1?")":`, ${e})`}`}}));function Ws(e){return e=(e||0)%360,e<0?e+360:e}function lr(e){return Math.max(0,Math.min(1,e||0))}function Ja(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}g();g();function Qa(e,t,n,r,a){var i=e*e,o=i*e;return((1-3*e+3*i-o)*t+(4-6*i+3*o)*n+(1+3*e+3*i-3*o)*r+o*a)/6}function Xs(e){var t=e.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,t-1):Math.floor(n*t),a=e[r],i=e[r+1],o=r>0?e[r-1]:2*a-i,u=r<t-1?e[r+2]:2*i-a;return Qa((n-r/t)*t,o,a,i,u)}}g();function qs(e){var t=e.length;return function(n){var r=Math.floor(((n%=1)<0?++n:n)*t),a=e[(r+t-1)%t],i=e[r%t],o=e[(r+1)%t],u=e[(r+2)%t];return Qa((n-r/t)*t,a,i,o,u)}}g();g();var wn=e=>()=>e;function Dm(e,t){return function(n){return e+n*t}}function Om(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function Zs(e){return(e=+e)==1?mr:function(t,n){return n-t?Om(t,n,e):wn(isNaN(t)?n:t)}}function mr(e,t){var n=t-e;return n?Dm(e,n):wn(isNaN(e)?t:e)}var ei=(function e(t){var n=Zs(t);function r(a,i){var o=n((a=Gt(a)).r,(i=Gt(i)).r),u=n(a.g,i.g),c=n(a.b,i.b),l=mr(a.opacity,i.opacity);return function(m){return a.r=o(m),a.g=u(m),a.b=c(m),a.opacity=l(m),a+""}}return r.gamma=e,r})(1);function Ks(e){return function(t){var n=t.length,r=new Array(n),a=new Array(n),i=new Array(n),o,u;for(o=0;o<n;++o)u=Gt(t[o]),r[o]=u.r||0,a[o]=u.g||0,i[o]=u.b||0;return r=e(r),a=e(a),i=e(i),u.opacity=1,function(c){return u.r=r(c),u.g=a(c),u.b=i(c),u+""}}}var x1=Ks(Xs),v1=Ks(qs);g();g();function Js(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),a;return function(i){for(a=0;a<n;++a)r[a]=e[a]*(1-i)+t[a]*i;return r}}function Qs(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function eu(e,t){var n=t?t.length:0,r=e?Math.min(n,e.length):0,a=new Array(r),i=new Array(n),o;for(o=0;o<r;++o)a[o]=xt(e[o],t[o]);for(;o<n;++o)i[o]=t[o];return function(u){for(o=0;o<r;++o)i[o]=a[o](u);return i}}g();function tu(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}g();function at(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}g();function nu(e,t){var n={},r={},a;(e===null||typeof e!="object")&&(e={}),(t===null||typeof t!="object")&&(t={});for(a in t)a in e?n[a]=xt(e[a],t[a]):r[a]=t[a];return function(i){for(a in n)r[a]=n[a](i);return r}}g();var ni=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,ti=new RegExp(ni.source,"g");function Lm(e){return function(){return e}}function Fm(e){return function(t){return e(t)+""}}function ru(e,t){var n=ni.lastIndex=ti.lastIndex=0,r,a,i,o=-1,u=[],c=[];for(e=e+"",t=t+"";(r=ni.exec(e))&&(a=ti.exec(t));)(i=a.index)>n&&(i=t.slice(n,i),u[o]?u[o]+=i:u[++o]=i),(r=r[0])===(a=a[0])?u[o]?u[o]+=a:u[++o]=a:(u[++o]=null,c.push({i:o,x:at(r,a)})),n=ti.lastIndex;return n<t.length&&(i=t.slice(n),u[o]?u[o]+=i:u[++o]=i),u.length<2?c[0]?Fm(c[0].x):Lm(t):(t=c.length,function(l){for(var m=0,d;m<t;++m)u[(d=c[m]).i]=d.x(l);return u.join("")})}function xt(e,t){var n=typeof t,r;return t==null||n==="boolean"?wn(t):(n==="number"?at:n==="string"?(r=rt(t))?(t=r,ei):ru:t instanceof rt?ei:t instanceof Date?tu:Qs(t)?Js:Array.isArray(t)?eu:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?nu:at)(e,t)}g();function ri(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}g();function ai(e){return function(){return e}}g();function ii(e){return+e}var au=[0,1];function Vt(e){return e}function oi(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:ai(isNaN(t)?NaN:.5)}function Rm(e,t){var n;return e>t&&(n=e,e=t,t=n),function(r){return Math.max(e,Math.min(t,r))}}function Bm(e,t,n){var r=e[0],a=e[1],i=t[0],o=t[1];return a<r?(r=oi(a,r),i=n(o,i)):(r=oi(r,a),i=n(i,o)),function(u){return i(r(u))}}function Im(e,t,n){var r=Math.min(e.length,t.length)-1,a=new Array(r),i=new Array(r),o=-1;for(e[r]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++o<r;)a[o]=oi(e[o],e[o+1]),i[o]=n(t[o],t[o+1]);return function(u){var c=Za(e,u,1,r)-1;return i[c](a[c](u))}}function pr(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function Em(){var e=au,t=au,n=xt,r,a,i,o=Vt,u,c,l;function m(){var p=Math.min(e.length,t.length);return o!==Vt&&(o=Rm(e[0],e[p-1])),u=p>2?Im:Bm,c=l=null,d}function d(p){return p==null||isNaN(p=+p)?i:(c||(c=u(e.map(r),t,n)))(r(o(p)))}return d.invert=function(p){return o(a((l||(l=u(t,e.map(r),at)))(p)))},d.domain=function(p){return arguments.length?(e=Array.from(p,ii),m()):e.slice()},d.range=function(p){return arguments.length?(t=Array.from(p),m()):t.slice()},d.rangeRound=function(p){return t=Array.from(p),n=ri,m()},d.clamp=function(p){return arguments.length?(o=p?!0:Vt,m()):o!==Vt},d.interpolate=function(p){return arguments.length?(n=p,m()):n},d.unknown=function(p){return arguments.length?(i=p,d):i},function(p,f){return r=p,a=f,m()}}function Sn(){return Em()(Vt,Vt)}g();function si(e,t,n,r){var a=Ut(e,t,n),i;switch(r=tt(r??",f"),r.type){case"s":{var o=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(i=Ya(a,o))&&(r.precision=i),nr(r,o)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(i=Ha(a,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=i-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(i=Wa(a))&&(r.precision=i-(r.type==="%")*2);break}}return Et(r)}function _m(e){var t=e.domain;return e.ticks=function(n){var r=t();return ar(r[0],r[r.length-1],n??10)},e.tickFormat=function(n,r){var a=t();return si(a[0],a[a.length-1],n??10,r)},e.nice=function(n){n==null&&(n=10);var r=t(),a=0,i=r.length-1,o=r[a],u=r[i],c,l,m=10;for(u<o&&(l=o,o=u,u=l,l=a,a=i,i=l);m-- >0;){if(l=gn(o,u,n),l===c)return r[a]=o,r[i]=u,t(r);if(l>0)o=Math.floor(o/l)*l,u=Math.ceil(u/l)*l;else if(l<0)o=Math.ceil(o*l)/l,u=Math.floor(u*l)/l;else break;c=l}return e},e}function jt(){var e=Sn();return e.copy=function(){return pr(e,jt())},nt.apply(e,arguments),_m(e)}g();function ui(e,t){e=e.slice();var n=0,r=e.length-1,a=e[n],i=e[r],o;return i<a&&(o=n,n=r,r=o,o=a,a=i,i=o),e[n]=t.floor(a),e[r]=t.ceil(i),e}g();g();g();var li=new Date,ci=new Date;function de(e,t,n,r){function a(i){return e(i=arguments.length===0?new Date:new Date(+i)),i}return a.floor=i=>(e(i=new Date(+i)),i),a.ceil=i=>(e(i=new Date(i-1)),t(i,1),e(i),i),a.round=i=>{let o=a(i),u=a.ceil(i);return i-o<u-i?o:u},a.offset=(i,o)=>(t(i=new Date(+i),o==null?1:Math.floor(o)),i),a.range=(i,o,u)=>{let c=[];if(i=a.ceil(i),u=u==null?1:Math.floor(u),!(i<o)||!(u>0))return c;let l;do c.push(l=new Date(+i)),t(i,u),e(i);while(l<i&&i<o);return c},a.filter=i=>de(o=>{if(o>=o)for(;e(o),!i(o);)o.setTime(o-1)},(o,u)=>{if(o>=o)if(u<0)for(;++u<=0;)for(;t(o,-1),!i(o););else for(;--u>=0;)for(;t(o,1),!i(o););}),n&&(a.count=(i,o)=>(li.setTime(+i),ci.setTime(+o),e(li),e(ci),Math.floor(n(li,ci))),a.every=i=>(i=Math.floor(i),!isFinite(i)||!(i>0)?null:i>1?a.filter(r?o=>r(o)%i===0:o=>a.count(0,o)%i===0):a)),a}g();var Mn=de(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);Mn.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?de(t=>{t.setTime(Math.floor(t/e)*e)},(t,n)=>{t.setTime(+t+n*e)},(t,n)=>(n-t)/e):Mn);var Cv=Mn.range;g();var je=de(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*1e3)},(e,t)=>(t-e)/1e3,e=>e.getUTCSeconds()),iu=je.range;g();var fr=de(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*1e3)},(e,t)=>{e.setTime(+e+t*6e4)},(e,t)=>(t-e)/6e4,e=>e.getMinutes()),Um=fr.range,$t=de(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*6e4)},(e,t)=>(t-e)/6e4,e=>e.getUTCMinutes()),zm=$t.range;g();var hr=de(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*1e3-e.getMinutes()*6e4)},(e,t)=>{e.setTime(+e+t*36e5)},(e,t)=>(t-e)/36e5,e=>e.getHours()),Gm=hr.range,Wt=de(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*36e5)},(e,t)=>(t-e)/36e5,e=>e.getUTCHours()),Vm=Wt.range;g();var St=de(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*6e4)/864e5,e=>e.getDate()-1),jm=St.range,Mt=de(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/864e5,e=>e.getUTCDate()-1),$m=Mt.range,gr=de(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/864e5,e=>Math.floor(e/864e5)),Wm=gr.range;g();function kt(e){return de(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(t,n)=>{t.setDate(t.getDate()+n*7)},(t,n)=>(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*6e4)/6048e5)}var Tt=kt(0),Yt=kt(1),su=kt(2),uu=kt(3),it=kt(4),lu=kt(5),cu=kt(6),du=Tt.range,Ym=Yt.range,Hm=su.range,Xm=uu.range,qm=it.range,Zm=lu.range,Km=cu.range;function Pt(e){return de(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCDate(t.getUTCDate()+n*7)},(t,n)=>(n-t)/6048e5)}var Xe=Pt(0),Ht=Pt(1),mu=Pt(2),pu=Pt(3),ot=Pt(4),fu=Pt(5),hu=Pt(6),gu=Xe.range,Jm=Ht.range,Qm=mu.range,ep=pu.range,tp=ot.range,np=fu.range,rp=hu.range;g();var br=de(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth()),ap=br.range,Xt=de(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth()),ip=Xt.range;g();var _e=de(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());_e.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:de(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,n)=>{t.setFullYear(t.getFullYear()+n*e)});var op=_e.range,Be=de(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());Be.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:de(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n*e)});var sp=Be.range;g();function yu(e,t,n,r,a,i){let o=[[je,1,1e3],[je,5,5*1e3],[je,15,15*1e3],[je,30,30*1e3],[i,1,6e4],[i,5,5*6e4],[i,15,15*6e4],[i,30,30*6e4],[a,1,36e5],[a,3,3*36e5],[a,6,6*36e5],[a,12,12*36e5],[r,1,864e5],[r,2,2*864e5],[n,1,6048e5],[t,1,2592e6],[t,3,3*2592e6],[e,1,31536e6]];function u(l,m,d){let p=m<l;p&&([l,m]=[m,l]);let f=d&&typeof d.range=="function"?d:c(l,m,d),y=f?f.range(l,+m+1):[];return p?y.reverse():y}function c(l,m,d){let p=Math.abs(m-l)/d,f=gt(([,,b])=>b).right(o,p);if(f===o.length)return e.every(Ut(l/31536e6,m/31536e6,d));if(f===0)return Mn.every(Math.max(Ut(l,m,d),1));let[y,h]=o[p/o[f-1][2]<o[f][2]/p?f-1:f];return y.every(h)}return[u,c]}var[di,mi]=yu(Be,Xt,Xe,gr,Wt,$t),[lp,cp]=yu(_e,br,Tt,St,hr,fr);g();g();g();function pi(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function fi(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function Tn(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}function hi(e){var t=e.dateTime,n=e.date,r=e.time,a=e.periods,i=e.days,o=e.shortDays,u=e.months,c=e.shortMonths,l=Pn(a),m=Cn(a),d=Pn(i),p=Cn(i),f=Pn(o),y=Cn(o),h=Pn(u),b=Cn(u),x=Pn(c),v=Cn(c),S={a:U,A:_,b:W,B:re,c:null,d:ku,e:ku,f:Fp,g:jp,G:Wp,H:Dp,I:Op,j:Lp,L:Nu,m:Rp,M:Bp,p:pe,q:ie,Q:Cu,s:Au,S:Ip,u:Ep,U:_p,V:Up,w:zp,W:Gp,x:null,X:null,y:Vp,Y:$p,Z:Yp,"%":Pu},k={a:L,A:B,b:G,B:K,c:null,d:Tu,e:Tu,f:Zp,g:sf,G:lf,H:Hp,I:Xp,j:qp,L:Ou,m:Kp,M:Jp,p:H,q:Q,Q:Cu,s:Au,S:Qp,u:ef,U:tf,V:nf,w:rf,W:af,x:null,X:null,y:of,Y:uf,Z:cf,"%":Pu},C={a:Z,A:ne,b:R,B:P,c:T,d:Su,e:Su,f:Pp,g:wu,G:vu,H:Mu,I:Mu,j:Sp,L:Tp,m:wp,M:Mp,p:V,q:vp,Q:Ap,s:Np,S:kp,u:hp,U:gp,V:bp,w:fp,W:yp,x:$,X:Y,y:wu,Y:vu,Z:xp,"%":Cp};S.x=w(n,S),S.X=w(r,S),S.c=w(t,S),k.x=w(n,k),k.X=w(r,k),k.c=w(t,k);function w(O,F){return function(q){var N=[],ye=-1,ue=0,Pe=O.length,Ce,We,Bn;for(q instanceof Date||(q=new Date(+q));++ye<Pe;)O.charCodeAt(ye)===37&&(N.push(O.slice(ue,ye)),(We=xu[Ce=O.charAt(++ye)])!=null?Ce=O.charAt(++ye):We=Ce==="e"?" ":"0",(Bn=F[Ce])&&(Ce=Bn(q,We)),N.push(Ce),ue=ye+1);return N.push(O.slice(ue,ye)),N.join("")}}function D(O,F){return function(q){var N=Tn(1900,void 0,1),ye=E(N,O,q+="",0),ue,Pe;if(ye!=q.length)return null;if("Q"in N)return new Date(N.Q);if("s"in N)return new Date(N.s*1e3+("L"in N?N.L:0));if(F&&!("Z"in N)&&(N.Z=0),"p"in N&&(N.H=N.H%12+N.p*12),N.m===void 0&&(N.m="q"in N?N.q:0),"V"in N){if(N.V<1||N.V>53)return null;"w"in N||(N.w=1),"Z"in N?(ue=fi(Tn(N.y,0,1)),Pe=ue.getUTCDay(),ue=Pe>4||Pe===0?Ht.ceil(ue):Ht(ue),ue=Mt.offset(ue,(N.V-1)*7),N.y=ue.getUTCFullYear(),N.m=ue.getUTCMonth(),N.d=ue.getUTCDate()+(N.w+6)%7):(ue=pi(Tn(N.y,0,1)),Pe=ue.getDay(),ue=Pe>4||Pe===0?Yt.ceil(ue):Yt(ue),ue=St.offset(ue,(N.V-1)*7),N.y=ue.getFullYear(),N.m=ue.getMonth(),N.d=ue.getDate()+(N.w+6)%7)}else("W"in N||"U"in N)&&("w"in N||(N.w="u"in N?N.u%7:"W"in N?1:0),Pe="Z"in N?fi(Tn(N.y,0,1)).getUTCDay():pi(Tn(N.y,0,1)).getDay(),N.m=0,N.d="W"in N?(N.w+6)%7+N.W*7-(Pe+5)%7:N.w+N.U*7-(Pe+6)%7);return"Z"in N?(N.H+=N.Z/100|0,N.M+=N.Z%100,fi(N)):pi(N)}}function E(O,F,q,N){for(var ye=0,ue=F.length,Pe=q.length,Ce,We;ye<ue;){if(N>=Pe)return-1;if(Ce=F.charCodeAt(ye++),Ce===37){if(Ce=F.charAt(ye++),We=C[Ce in xu?F.charAt(ye++):Ce],!We||(N=We(O,q,N))<0)return-1}else if(Ce!=q.charCodeAt(N++))return-1}return N}function V(O,F,q){var N=l.exec(F.slice(q));return N?(O.p=m.get(N[0].toLowerCase()),q+N[0].length):-1}function Z(O,F,q){var N=f.exec(F.slice(q));return N?(O.w=y.get(N[0].toLowerCase()),q+N[0].length):-1}function ne(O,F,q){var N=d.exec(F.slice(q));return N?(O.w=p.get(N[0].toLowerCase()),q+N[0].length):-1}function R(O,F,q){var N=x.exec(F.slice(q));return N?(O.m=v.get(N[0].toLowerCase()),q+N[0].length):-1}function P(O,F,q){var N=h.exec(F.slice(q));return N?(O.m=b.get(N[0].toLowerCase()),q+N[0].length):-1}function T(O,F,q){return E(O,t,F,q)}function $(O,F,q){return E(O,n,F,q)}function Y(O,F,q){return E(O,r,F,q)}function U(O){return o[O.getDay()]}function _(O){return i[O.getDay()]}function W(O){return c[O.getMonth()]}function re(O){return u[O.getMonth()]}function pe(O){return a[+(O.getHours()>=12)]}function ie(O){return 1+~~(O.getMonth()/3)}function L(O){return o[O.getUTCDay()]}function B(O){return i[O.getUTCDay()]}function G(O){return c[O.getUTCMonth()]}function K(O){return u[O.getUTCMonth()]}function H(O){return a[+(O.getUTCHours()>=12)]}function Q(O){return 1+~~(O.getUTCMonth()/3)}return{format:function(O){var F=w(O+="",S);return F.toString=function(){return O},F},parse:function(O){var F=D(O+="",!1);return F.toString=function(){return O},F},utcFormat:function(O){var F=w(O+="",k);return F.toString=function(){return O},F},utcParse:function(O){var F=D(O+="",!0);return F.toString=function(){return O},F}}}var xu={"-":"",_:" ",0:"0"},ve=/^\s*\d+/,dp=/^%/,mp=/[\\^$*+?|[\]().{}]/g;function se(e,t,n){var r=e<0?"-":"",a=(r?-e:e)+"",i=a.length;return r+(i<n?new Array(n-i+1).join(t)+a:a)}function pp(e){return e.replace(mp,"\\$&")}function Pn(e){return new RegExp("^(?:"+e.map(pp).join("|")+")","i")}function Cn(e){return new Map(e.map((t,n)=>[t.toLowerCase(),n]))}function fp(e,t,n){var r=ve.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function hp(e,t,n){var r=ve.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function gp(e,t,n){var r=ve.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function bp(e,t,n){var r=ve.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function yp(e,t,n){var r=ve.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function vu(e,t,n){var r=ve.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function wu(e,t,n){var r=ve.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function xp(e,t,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return r?(e.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function vp(e,t,n){var r=ve.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function wp(e,t,n){var r=ve.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function Su(e,t,n){var r=ve.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function Sp(e,t,n){var r=ve.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function Mu(e,t,n){var r=ve.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function Mp(e,t,n){var r=ve.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function kp(e,t,n){var r=ve.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function Tp(e,t,n){var r=ve.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function Pp(e,t,n){var r=ve.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function Cp(e,t,n){var r=dp.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function Ap(e,t,n){var r=ve.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function Np(e,t,n){var r=ve.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function ku(e,t){return se(e.getDate(),t,2)}function Dp(e,t){return se(e.getHours(),t,2)}function Op(e,t){return se(e.getHours()%12||12,t,2)}function Lp(e,t){return se(1+St.count(_e(e),e),t,3)}function Nu(e,t){return se(e.getMilliseconds(),t,3)}function Fp(e,t){return Nu(e,t)+"000"}function Rp(e,t){return se(e.getMonth()+1,t,2)}function Bp(e,t){return se(e.getMinutes(),t,2)}function Ip(e,t){return se(e.getSeconds(),t,2)}function Ep(e){var t=e.getDay();return t===0?7:t}function _p(e,t){return se(Tt.count(_e(e)-1,e),t,2)}function Du(e){var t=e.getDay();return t>=4||t===0?it(e):it.ceil(e)}function Up(e,t){return e=Du(e),se(it.count(_e(e),e)+(_e(e).getDay()===4),t,2)}function zp(e){return e.getDay()}function Gp(e,t){return se(Yt.count(_e(e)-1,e),t,2)}function Vp(e,t){return se(e.getFullYear()%100,t,2)}function jp(e,t){return e=Du(e),se(e.getFullYear()%100,t,2)}function $p(e,t){return se(e.getFullYear()%1e4,t,4)}function Wp(e,t){var n=e.getDay();return e=n>=4||n===0?it(e):it.ceil(e),se(e.getFullYear()%1e4,t,4)}function Yp(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+se(t/60|0,"0",2)+se(t%60,"0",2)}function Tu(e,t){return se(e.getUTCDate(),t,2)}function Hp(e,t){return se(e.getUTCHours(),t,2)}function Xp(e,t){return se(e.getUTCHours()%12||12,t,2)}function qp(e,t){return se(1+Mt.count(Be(e),e),t,3)}function Ou(e,t){return se(e.getUTCMilliseconds(),t,3)}function Zp(e,t){return Ou(e,t)+"000"}function Kp(e,t){return se(e.getUTCMonth()+1,t,2)}function Jp(e,t){return se(e.getUTCMinutes(),t,2)}function Qp(e,t){return se(e.getUTCSeconds(),t,2)}function ef(e){var t=e.getUTCDay();return t===0?7:t}function tf(e,t){return se(Xe.count(Be(e)-1,e),t,2)}function Lu(e){var t=e.getUTCDay();return t>=4||t===0?ot(e):ot.ceil(e)}function nf(e,t){return e=Lu(e),se(ot.count(Be(e),e)+(Be(e).getUTCDay()===4),t,2)}function rf(e){return e.getUTCDay()}function af(e,t){return se(Ht.count(Be(e)-1,e),t,2)}function of(e,t){return se(e.getUTCFullYear()%100,t,2)}function sf(e,t){return e=Lu(e),se(e.getUTCFullYear()%100,t,2)}function uf(e,t){return se(e.getUTCFullYear()%1e4,t,4)}function lf(e,t){var n=e.getUTCDay();return e=n>=4||n===0?ot(e):ot.ceil(e),se(e.getUTCFullYear()%1e4,t,4)}function cf(){return"+0000"}function Pu(){return"%"}function Cu(e){return+e}function Au(e){return Math.floor(+e/1e3)}var qt,Fu,Ru,yr,Bu;gi({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function gi(e){return qt=hi(e),Fu=qt.format,Ru=qt.parse,yr=qt.utcFormat,Bu=qt.utcParse,qt}function df(e){return new Date(e)}function mf(e){return e instanceof Date?+e:+new Date(+e)}function bi(e,t,n,r,a,i,o,u,c,l){var m=Sn(),d=m.invert,p=m.domain,f=l(".%L"),y=l(":%S"),h=l("%I:%M"),b=l("%I %p"),x=l("%a %d"),v=l("%b %d"),S=l("%B"),k=l("%Y");function C(w){return(c(w)<w?f:u(w)<w?y:o(w)<w?h:i(w)<w?b:r(w)<w?a(w)<w?x:v:n(w)<w?S:k)(w)}return m.invert=function(w){return new Date(d(w))},m.domain=function(w){return arguments.length?p(Array.from(w,mf)):p().map(df)},m.ticks=function(w){var D=p();return e(D[0],D[D.length-1],w??10)},m.tickFormat=function(w,D){return D==null?C:l(D)},m.nice=function(w){var D=p();return(!w||typeof w.range!="function")&&(w=t(D[0],D[D.length-1],w??10)),w?p(ui(D,w)):m},m.copy=function(){return pr(m,bi(e,t,n,r,a,i,o,u,c,l))},m}g();function xr(){return nt.apply(bi(di,mi,Be,Xt,Xe,Mt,Wt,$t,je,yr).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}g();g();g();function J(e){return function(){return e}}g();var yi=Math.abs,ke=Math.atan2,st=Math.cos,Iu=Math.max,vr=Math.min,Ue=Math.sin,Ct=Math.sqrt,Fe=1e-12,Zt=Math.PI,An=Zt/2,Kt=2*Zt;function Eu(e){return e>1?0:e<-1?Zt:Math.acos(e)}function xi(e){return e>=1?An:e<=-1?-An:Math.asin(e)}g();g();g();var vi=Math.PI,wi=2*vi,At=1e-6,pf=wi-At;function _u(e){this._+=e[0];for(let t=1,n=e.length;t<n;++t)this._+=arguments[t]+e[t]}function ff(e){let t=Math.floor(e);if(!(t>=0))throw new Error(`invalid digits: ${e}`);if(t>15)return _u;let n=10**t;return function(r){this._+=r[0];for(let a=1,i=r.length;a<i;++a)this._+=Math.round(arguments[a]*n)/n+r[a]}}var Nt=class{constructor(t){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=t==null?_u:ff(t)}moveTo(t,n){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(t,n){this._append`L${this._x1=+t},${this._y1=+n}`}quadraticCurveTo(t,n,r,a){this._append`Q${+t},${+n},${this._x1=+r},${this._y1=+a}`}bezierCurveTo(t,n,r,a,i,o){this._append`C${+t},${+n},${+r},${+a},${this._x1=+i},${this._y1=+o}`}arcTo(t,n,r,a,i){if(t=+t,n=+n,r=+r,a=+a,i=+i,i<0)throw new Error(`negative radius: ${i}`);let o=this._x1,u=this._y1,c=r-t,l=a-n,m=o-t,d=u-n,p=m*m+d*d;if(this._x1===null)this._append`M${this._x1=t},${this._y1=n}`;else if(p>At)if(!(Math.abs(d*c-l*m)>At)||!i)this._append`L${this._x1=t},${this._y1=n}`;else{let f=r-o,y=a-u,h=c*c+l*l,b=f*f+y*y,x=Math.sqrt(h),v=Math.sqrt(p),S=i*Math.tan((vi-Math.acos((h+p-b)/(2*x*v)))/2),k=S/v,C=S/x;Math.abs(k-1)>At&&this._append`L${t+k*m},${n+k*d}`,this._append`A${i},${i},0,0,${+(d*f>m*y)},${this._x1=t+C*c},${this._y1=n+C*l}`}}arc(t,n,r,a,i,o){if(t=+t,n=+n,r=+r,o=!!o,r<0)throw new Error(`negative radius: ${r}`);let u=r*Math.cos(a),c=r*Math.sin(a),l=t+u,m=n+c,d=1^o,p=o?a-i:i-a;this._x1===null?this._append`M${l},${m}`:(Math.abs(this._x1-l)>At||Math.abs(this._y1-m)>At)&&this._append`L${l},${m}`,r&&(p<0&&(p=p%wi+wi),p>pf?this._append`A${r},${r},0,1,${d},${t-u},${n-c}A${r},${r},0,1,${d},${this._x1=l},${this._y1=m}`:p>At&&this._append`A${r},${r},0,${+(p>=vi)},${d},${this._x1=t+r*Math.cos(i)},${this._y1=n+r*Math.sin(i)}`)}rect(t,n,r,a){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}h${r=+r}v${+a}h${-r}Z`}toString(){return this._}};function Uu(){return new Nt}Uu.prototype=Nt.prototype;function Jt(e){let t=3;return e.digits=function(n){if(!arguments.length)return t;if(n==null)t=null;else{let r=Math.floor(n);if(!(r>=0))throw new RangeError(`invalid digits: ${n}`);t=r}return e},()=>new Nt(t)}function hf(e){return e.innerRadius}function gf(e){return e.outerRadius}function bf(e){return e.startAngle}function yf(e){return e.endAngle}function xf(e){return e&&e.padAngle}function vf(e,t,n,r,a,i,o,u){var c=n-e,l=r-t,m=o-a,d=u-i,p=d*c-m*l;if(!(p*p<Fe))return p=(m*(t-i)-d*(e-a))/p,[e+p*c,t+p*l]}function wr(e,t,n,r,a,i,o){var u=e-n,c=t-r,l=(o?i:-i)/Ct(u*u+c*c),m=l*c,d=-l*u,p=e+m,f=t+d,y=n+m,h=r+d,b=(p+y)/2,x=(f+h)/2,v=y-p,S=h-f,k=v*v+S*S,C=a-i,w=p*h-y*f,D=(S<0?-1:1)*Ct(Iu(0,C*C*k-w*w)),E=(w*S-v*D)/k,V=(-w*v-S*D)/k,Z=(w*S+v*D)/k,ne=(-w*v+S*D)/k,R=E-b,P=V-x,T=Z-b,$=ne-x;return R*R+P*P>T*T+$*$&&(E=Z,V=ne),{cx:E,cy:V,x01:-m,y01:-d,x11:E*(a/C-1),y11:V*(a/C-1)}}function Sr(){var e=hf,t=gf,n=J(0),r=null,a=bf,i=yf,o=xf,u=null,c=Jt(l);function l(){var m,d,p=+e.apply(this,arguments),f=+t.apply(this,arguments),y=a.apply(this,arguments)-An,h=i.apply(this,arguments)-An,b=yi(h-y),x=h>y;if(u||(u=m=c()),f<p&&(d=f,f=p,p=d),!(f>Fe))u.moveTo(0,0);else if(b>Kt-Fe)u.moveTo(f*st(y),f*Ue(y)),u.arc(0,0,f,y,h,!x),p>Fe&&(u.moveTo(p*st(h),p*Ue(h)),u.arc(0,0,p,h,y,x));else{var v=y,S=h,k=y,C=h,w=b,D=b,E=o.apply(this,arguments)/2,V=E>Fe&&(r?+r.apply(this,arguments):Ct(p*p+f*f)),Z=vr(yi(f-p)/2,+n.apply(this,arguments)),ne=Z,R=Z,P,T;if(V>Fe){var $=xi(V/p*Ue(E)),Y=xi(V/f*Ue(E));(w-=$*2)>Fe?($*=x?1:-1,k+=$,C-=$):(w=0,k=C=(y+h)/2),(D-=Y*2)>Fe?(Y*=x?1:-1,v+=Y,S-=Y):(D=0,v=S=(y+h)/2)}var U=f*st(v),_=f*Ue(v),W=p*st(C),re=p*Ue(C);if(Z>Fe){var pe=f*st(S),ie=f*Ue(S),L=p*st(k),B=p*Ue(k),G;if(b<Zt)if(G=vf(U,_,L,B,pe,ie,W,re)){var K=U-G[0],H=_-G[1],Q=pe-G[0],O=ie-G[1],F=1/Ue(Eu((K*Q+H*O)/(Ct(K*K+H*H)*Ct(Q*Q+O*O)))/2),q=Ct(G[0]*G[0]+G[1]*G[1]);ne=vr(Z,(p-q)/(F-1)),R=vr(Z,(f-q)/(F+1))}else ne=R=0}D>Fe?R>Fe?(P=wr(L,B,U,_,f,R,x),T=wr(pe,ie,W,re,f,R,x),u.moveTo(P.cx+P.x01,P.cy+P.y01),R<Z?u.arc(P.cx,P.cy,R,ke(P.y01,P.x01),ke(T.y01,T.x01),!x):(u.arc(P.cx,P.cy,R,ke(P.y01,P.x01),ke(P.y11,P.x11),!x),u.arc(0,0,f,ke(P.cy+P.y11,P.cx+P.x11),ke(T.cy+T.y11,T.cx+T.x11),!x),u.arc(T.cx,T.cy,R,ke(T.y11,T.x11),ke(T.y01,T.x01),!x))):(u.moveTo(U,_),u.arc(0,0,f,v,S,!x)):u.moveTo(U,_),!(p>Fe)||!(w>Fe)?u.lineTo(W,re):ne>Fe?(P=wr(W,re,pe,ie,p,-ne,x),T=wr(U,_,L,B,p,-ne,x),u.lineTo(P.cx+P.x01,P.cy+P.y01),ne<Z?u.arc(P.cx,P.cy,ne,ke(P.y01,P.x01),ke(T.y01,T.x01),!x):(u.arc(P.cx,P.cy,ne,ke(P.y01,P.x01),ke(P.y11,P.x11),!x),u.arc(0,0,p,ke(P.cy+P.y11,P.cx+P.x11),ke(T.cy+T.y11,T.cx+T.x11),x),u.arc(T.cx,T.cy,ne,ke(T.y11,T.x11),ke(T.y01,T.x01),!x))):u.arc(0,0,p,C,k,x)}if(u.closePath(),m)return u=null,m+""||null}return l.centroid=function(){var m=(+e.apply(this,arguments)+ +t.apply(this,arguments))/2,d=(+a.apply(this,arguments)+ +i.apply(this,arguments))/2-Zt/2;return[st(d)*m,Ue(d)*m]},l.innerRadius=function(m){return arguments.length?(e=typeof m=="function"?m:J(+m),l):e},l.outerRadius=function(m){return arguments.length?(t=typeof m=="function"?m:J(+m),l):t},l.cornerRadius=function(m){return arguments.length?(n=typeof m=="function"?m:J(+m),l):n},l.padRadius=function(m){return arguments.length?(r=m==null?null:typeof m=="function"?m:J(+m),l):r},l.startAngle=function(m){return arguments.length?(a=typeof m=="function"?m:J(+m),l):a},l.endAngle=function(m){return arguments.length?(i=typeof m=="function"?m:J(+m),l):i},l.padAngle=function(m){return arguments.length?(o=typeof m=="function"?m:J(+m),l):o},l.context=function(m){return arguments.length?(u=m??null,l):u},l}g();g();var sS=Array.prototype.slice;function ut(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}g();function zu(e){this._context=e}zu.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t);break}}};function Dt(e){return new zu(e)}g();g();function Mr(e){return e[0]}function kr(e){return e[1]}function Nn(e,t){var n=J(!0),r=null,a=Dt,i=null,o=Jt(u);e=typeof e=="function"?e:e===void 0?Mr:J(e),t=typeof t=="function"?t:t===void 0?kr:J(t);function u(c){var l,m=(c=ut(c)).length,d,p=!1,f;for(r==null&&(i=a(f=o())),l=0;l<=m;++l)!(l<m&&n(d=c[l],l,c))===p&&((p=!p)?i.lineStart():i.lineEnd()),p&&i.point(+e(d,l,c),+t(d,l,c));if(f)return i=null,f+""||null}return u.x=function(c){return arguments.length?(e=typeof c=="function"?c:J(+c),u):e},u.y=function(c){return arguments.length?(t=typeof c=="function"?c:J(+c),u):t},u.defined=function(c){return arguments.length?(n=typeof c=="function"?c:J(!!c),u):n},u.curve=function(c){return arguments.length?(a=c,r!=null&&(i=a(r)),u):a},u.context=function(c){return arguments.length?(c==null?r=i=null:i=a(r=c),u):r},u}function Si(e,t,n){var r=null,a=J(!0),i=null,o=Dt,u=null,c=Jt(l);e=typeof e=="function"?e:e===void 0?Mr:J(+e),t=typeof t=="function"?t:t===void 0?J(0):J(+t),n=typeof n=="function"?n:n===void 0?kr:J(+n);function l(d){var p,f,y,h=(d=ut(d)).length,b,x=!1,v,S=new Array(h),k=new Array(h);for(i==null&&(u=o(v=c())),p=0;p<=h;++p){if(!(p<h&&a(b=d[p],p,d))===x)if(x=!x)f=p,u.areaStart(),u.lineStart();else{for(u.lineEnd(),u.lineStart(),y=p-1;y>=f;--y)u.point(S[y],k[y]);u.lineEnd(),u.areaEnd()}x&&(S[p]=+e(b,p,d),k[p]=+t(b,p,d),u.point(r?+r(b,p,d):S[p],n?+n(b,p,d):k[p]))}if(v)return u=null,v+""||null}function m(){return Nn().defined(a).curve(o).context(i)}return l.x=function(d){return arguments.length?(e=typeof d=="function"?d:J(+d),r=null,l):e},l.x0=function(d){return arguments.length?(e=typeof d=="function"?d:J(+d),l):e},l.x1=function(d){return arguments.length?(r=d==null?null:typeof d=="function"?d:J(+d),l):r},l.y=function(d){return arguments.length?(t=typeof d=="function"?d:J(+d),n=null,l):t},l.y0=function(d){return arguments.length?(t=typeof d=="function"?d:J(+d),l):t},l.y1=function(d){return arguments.length?(n=d==null?null:typeof d=="function"?d:J(+d),l):n},l.lineX0=l.lineY0=function(){return m().x(e).y(t)},l.lineY1=function(){return m().x(e).y(n)},l.lineX1=function(){return m().x(r).y(t)},l.defined=function(d){return arguments.length?(a=typeof d=="function"?d:J(!!d),l):a},l.curve=function(d){return arguments.length?(o=d,i!=null&&(u=o(i)),l):o},l.context=function(d){return arguments.length?(d==null?i=u=null:u=o(i=d),l):i},l}g();g();function Gu(e,t){return t<e?-1:t>e?1:t>=e?0:NaN}g();function Vu(e){return e}function Mi(){var e=Vu,t=Gu,n=null,r=J(0),a=J(Kt),i=J(0);function o(u){var c,l=(u=ut(u)).length,m,d,p=0,f=new Array(l),y=new Array(l),h=+r.apply(this,arguments),b=Math.min(Kt,Math.max(-Kt,a.apply(this,arguments)-h)),x,v=Math.min(Math.abs(b)/l,i.apply(this,arguments)),S=v*(b<0?-1:1),k;for(c=0;c<l;++c)(k=y[f[c]=c]=+e(u[c],c,u))>0&&(p+=k);for(t!=null?f.sort(function(C,w){return t(y[C],y[w])}):n!=null&&f.sort(function(C,w){return n(u[C],u[w])}),c=0,d=p?(b-l*S)/p:0;c<l;++c,h=x)m=f[c],k=y[m],x=h+(k>0?k*d:0)+S,y[m]={data:u[m],index:c,value:k,startAngle:h,endAngle:x,padAngle:v};return y}return o.value=function(u){return arguments.length?(e=typeof u=="function"?u:J(+u),o):e},o.sortValues=function(u){return arguments.length?(t=u,n=null,o):t},o.sort=function(u){return arguments.length?(n=u,t=null,o):n},o.startAngle=function(u){return arguments.length?(r=typeof u=="function"?u:J(+u),o):r},o.endAngle=function(u){return arguments.length?(a=typeof u=="function"?u:J(+u),o):a},o.padAngle=function(u){return arguments.length?(i=typeof u=="function"?u:J(+u),o):i},o}g();function ju(e){return e<0?-1:1}function $u(e,t,n){var r=e._x1-e._x0,a=t-e._x1,i=(e._y1-e._y0)/(r||a<0&&-0),o=(n-e._y1)/(a||r<0&&-0),u=(i*a+o*r)/(r+a);return(ju(i)+ju(o))*Math.min(Math.abs(i),Math.abs(o),.5*Math.abs(u))||0}function Wu(e,t){var n=e._x1-e._x0;return n?(3*(e._y1-e._y0)/n-t)/2:t}function ki(e,t,n){var r=e._x0,a=e._y0,i=e._x1,o=e._y1,u=(i-r)/3;e._context.bezierCurveTo(r+u,a+u*t,i-u,o-u*n,i,o)}function Tr(e){this._context=e}Tr.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:ki(this,this._t0,Wu(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var n=NaN;if(e=+e,t=+t,!(e===this._x1&&t===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,ki(this,Wu(this,n=$u(this,e,t)),n);break;default:ki(this,this._t0,n=$u(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=n}}};function wf(e){this._context=new Yu(e)}(wf.prototype=Object.create(Tr.prototype)).point=function(e,t){Tr.prototype.point.call(this,t,e)};function Yu(e){this._context=e}Yu.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,n,r,a,i){this._context.bezierCurveTo(t,e,r,n,i,a)}};function Ti(e){return new Tr(e)}g();function Hu(e,t){this._context=e,this._t=t}Hu.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&this._point===2&&this._context.lineTo(this._x,this._y),(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var n=this._x*(1-this._t)+e*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,t)}break}}this._x=e,this._y=t}};function Pi(e){return new Hu(e,1)}g();g();function Ci(e,t){if((o=e.length)>1)for(var n=1,r,a,i=e[t[0]],o,u=i.length;n<o;++n)for(a=i,i=e[t[n]],r=0;r<u;++r)i[r][1]+=i[r][0]=isNaN(a[r][1])?a[r][0]:a[r][1]}g();function Ai(e){for(var t=e.length,n=new Array(t);--t>=0;)n[t]=t;return n}function Sf(e,t){return e[t]}function Mf(e){let t=[];return t.key=e,t}function Ni(){var e=J([]),t=Ai,n=Ci,r=Sf;function a(i){var o=Array.from(e.apply(this,arguments),Mf),u,c=o.length,l=-1,m;for(let d of i)for(u=0,++l;u<c;++u)(o[u][l]=[0,+r(d,o[u].key,l,i)]).data=d;for(u=0,m=ut(t(o));u<c;++u)o[m[u]].index=u;return n(o,m),o}return a.keys=function(i){return arguments.length?(e=typeof i=="function"?i:J(Array.from(i)),a):e},a.value=function(i){return arguments.length?(r=typeof i=="function"?i:J(+i),a):r},a.order=function(i){return arguments.length?(t=i==null?Ai:typeof i=="function"?i:J(Array.from(i)),a):t},a.offset=function(i){return arguments.length?(n=i??Ci,a):n},a}g();function Di(e,t){if((c=e.length)>0)for(var n,r=0,a,i,o,u,c,l=e[t[0]].length;r<l;++r)for(o=u=0,n=0;n<c;++n)(i=(a=e[t[n]][r])[1]-a[0])>0?(a[0]=o,a[1]=o+=i):i<0?(a[1]=u,a[0]=u+=i):(a[0]=0,a[1]=i)}var Ku=["#6366f1","#22d3ee","#f59e0b","#ec4899","#10b981","#8b5cf6","#f97316","#3b82f6"],kf=e=>typeof e=="object"&&e!==null&&"open"in e&&"close"in e,Tf=e=>typeof e=="object"&&e!==null&&"label"in e&&"value"in e;function Pf(e){return e==="linear"?Dt:e==="step"?Pi:Ti}function Oi(e,t){let n=/^#([0-9a-f]{3}|[0-9a-f]{6})$/i.exec(e.trim());if(!n)return e;let r=n[1];r.length===3&&(r=[...r].map(i=>i+i).join(""));let a=parseInt(r,16);return`rgba(${a>>16&255}, ${a>>8&255}, ${a&255}, ${t})`}function Xu(e){if(!e?.format)return null;if(typeof e.format=="function")return e.format;let t=Et(e.format);return n=>typeof n=="number"?t(n):String(n)}function te(e){return Math.round(e*100)/100}function Qt(e,t=0,n=e.duration){return ce.create().fromTo("opacity",0,1,{start:e.start+t,end:e.start+t+Math.max(1,n),ease:"power2.out"})}function Ju(e,t,n){let r=t.id??ee("chart"),a=e.width??(typeof t.width=="number"?t.width:960),i=e.height??(typeof t.height=="number"?t.height:540),o=e.type??"line",u=e.fontSize??18,c=e.fontFamily??n,l=e.textColor??"#94a3b8",m=e.textColor??"#e2e8f0",d=e.gridColor??"rgba(148, 163, 184, 0.18)",p=e.colors?.length?e.colors:Ku,f=e.cornerRadius??4,y=e.animate===!1?void 0:e.animate??{},h={enabled:y!==void 0,start:y?.start??0,duration:y?.duration??30,stagger:y?.stagger??-1,ease:y?.ease??"power3.out"},b=[],x=(P,T,$,Y={},U="")=>{let _=I.text(P,{id:`${r}-label-${U||b.length}`,position:"absolute",x:te(T.x),y:te(T.y),width:te(T.width),height:te(T.height),fontFamily:c,fontSize:u,fontWeight:Y.weight??500,fill:Y.color??l,align:$,verticalAlign:"middle"});h.enabled&&_.animate(Qt(h,Y.delay??0)),b.push(_)},v=Math.ceil(u*1.4);o==="pie"||o==="donut"?S():C();for(let P of b)Qu(P);return I.box({background:e.background??"transparent",...t,id:r,width:a,height:i,children:b});function S(){let P=k(),T=P.reduce((K,H)=>K+Math.max(0,H.value),0),$=e.legend??!0,Y=D({top:16,right:$?V(P.map(K=>K.label)):16,bottom:16,left:16}),U=E(Y),_=Math.max(1,Math.min(U.width,U.height)/2),W=_*(e.innerRadius??(o==="donut"?.6:0)),re=U.x+U.width/2,pe=U.y+U.height/2,ie=4,L=Mi().sort(null).value(K=>Math.max(0,K.value)).padAngle(P.length>1?.012:0)(P),B=Sr().innerRadius(W).outerRadius(_).cornerRadius(Math.min(f,(_-W)/2)),G=w(L.length);L.forEach((K,H)=>{let Q=B(K);if(!Q)return;let O=P[H].color??p[H%p.length],F=I.shape("path",{id:`${r}-slice-${H}`,position:"absolute",x:te(re-_-ie),y:te(pe-_-ie),width:te(2*(_+ie)),height:te(2*(_+ie)),d:Cf(Q,_+ie,_+ie),fillColor:O,anchorX:.5,anchorY:.5});if(h.enabled){let q=h.start+H*G;F.animate(ce.create().fromTo("opacity",0,1,{start:q,end:q+h.duration*.5}).fromTo("scale",.85,1,{start:q,end:q+h.duration,ease:h.ease}))}if(b.push(F),e.valueLabels&&T>0&&K.value>0){let[q,N]=Sr().innerRadius(W||_*.55).outerRadius(_).centroid(K),ye=`${Math.round(K.value/T*100)}%`;x(ye,{x:re+q-60,y:pe+N-v/2,width:120,height:v},"center",{delay:H*G+h.duration*.5,color:"#ffffff",weight:700},`value-${H}`)}}),$&&Z(P.map((K,H)=>({name:K.label,color:K.color??p[H%p.length]})),{x:U.x+U.width+24,y:U.y,height:U.height})}function k(){return(e.data??e.series?.[0]?.data??[]).map((T,$)=>{if(Tf(T))return T;let Y=typeof T=="number"?T:Array.isArray(T)?Number(T[1]):Number(T.y);return{label:e.categories?.[$]??(Array.isArray(T)?String(T[0]):typeof T=="object"&&T?String(T.x):`${$+1}`),value:Y}})}function C(){let P=e.series?.length?[...e.series]:e.data?[{data:e.data}]:[];if(P.length===0)return;let T=A=>A.type??o??"line",$=(A,z)=>A.color??p[z%p.length],Y=P.map(A=>A.data.map((z,ae)=>kf(z)?{x:z.x,y:z.close}:typeof z=="number"?{x:e.categories?.[ae]??ae,y:z}:Array.isArray(z)?{x:z[0],y:Number(z[1])}:{x:z.x,y:Number(z.y)})),U=P.some(A=>T(A)==="bar"||T(A)==="candlestick"),_=Y.flat().map(A=>A.x),W=U||_.some(A=>typeof A=="string")?"band":_.some(A=>A instanceof Date)?"time":"linear",re=A=>T(A)==="bar"||T(A)==="area",pe=!!e.stacked,ie=W==="band"?[...new Set(_.map(String))]:[],L=new Map;if(pe){let A=P.map((fe,Se)=>Se).filter(fe=>re(P[fe])),z=ie.length?ie:[...new Set(_.map(fe=>+fe))].sort((fe,Se)=>fe-Se).map(String),ae=z.map(fe=>{let Se={};for(let Ae of A){let Ne=Y[Ae].find(xe=>String(W==="band"?xe.x:+xe.x)===fe);Se[Ae]=Ne?.y??0}return Se});Ni().keys(A.map(String)).offset(Di)(ae).forEach(fe=>{let Se=Number(fe.key);L.set(Se,Y[Se].map(Ae=>{let Ne=z.indexOf(String(W==="band"?Ae.x:+Ae.x));return[fe[Ne][0],fe[Ne][1]]}))})}let B=[0];P.forEach((A,z)=>{let ae=L.get(z);if(T(A)==="candlestick")for(let me of A.data)B.push(me.high,me.low);else if(ae)for(let[me,fe]of ae)B.push(me,fe);else for(let me of Y[z])B.push(me.y)}),P.every(A=>T(A)==="candlestick"||T(A)==="scatter"||T(A)==="line")&&B.shift();let G=e.yAxis??{},K=e.xAxis??{},H=G.ticks??5,Q=G.min??Math.min(...B),O=G.max??Math.max(...B);(!Number.isFinite(Q)||!Number.isFinite(O))&&([Q,O]=[0,1]),Q===O&&([Q,O]=[Q-1,O+1]);let F=jt().domain([Q,O]);(G.min===void 0||G.max===void 0)&&F.nice(H);let q=Xu(G)??(A=>F.tickFormat(H)(A)),N=F.ticks(H),ye=P.map((A,z)=>({name:A.name??`Series ${z+1}`,color:$(A,z)})),ue=e.legend??P.length>1,Pe=G.show!==!1,Ce=K.show!==!1,We=Pe?Math.max(...N.map(A=>q(A).length))*u*.7+20:0,Bn=D({top:(ue?v+20:0)+Math.ceil(v/2),right:20,bottom:Ce?v+14:12,left:Math.max(16,Math.ceil(We))}),oe=E(Bn),Vi=v+6,ji=e.valueLabels?P.flatMap((A,z)=>T(A)==="bar"?Y[z].map(ae=>ae.y):[]):[],Tl=ji.some(A=>A>0)?Vi:0,Pl=ji.some(A=>A<0)?Vi:0;F.range([oe.height-Pl,Tl]);let Ye;if(W==="band")Ye=bn().domain(ie).range([0,oe.width]).paddingInner(U?.28:0).paddingOuter(U?.14:.5);else if(W==="time"){let A=_.map(z=>+new Date(z));Ye=xr().domain([Math.min(...A),Math.max(...A)]).range([0,oe.width])}else{let A=_.map(Number);Ye=jt().domain([K.min??Math.min(...A),K.max??Math.max(...A)]).range([0,oe.width])}let $i=A=>{if(W==="band"){let z=Ye;return(z(String(A))??0)+z.bandwidth()/2}return Ye(W==="time"?new Date(A):Number(A))},Wi=0;G.grid!==!1&&N.forEach((A,z)=>{let ae=I.box({id:`${r}-ygrid-${z}`,position:"absolute",x:oe.x,y:te(oe.y+F(A)-.5),width:oe.width,height:1,background:d});h.enabled&&ae.animate(Qt(h,Wi,h.duration/2)),b.push(ae)}),Pe&&N.forEach((A,z)=>{x(q(A),{x:0,y:oe.y+F(A)-v/2,width:oe.x-12,height:v},"end",{},`y-${z}`)});let en=[],In=Xu(K);if(W==="band"){let A=Ye,z=Math.max(1,Math.ceil(ie.length/Math.max(1,Math.floor(oe.width/(u*4)))));ie.forEach((ae,me)=>{me%z===0&&en.push({pos:(A(ae)??0)+A.bandwidth()/2,text:In?In(ae):ae})})}else{let A=Ye,z=K.ticks??Math.max(2,Math.floor(oe.width/(u*6))),ae=A.tickFormat(z);for(let me of A.ticks(z))en.push({pos:A(me),text:In?In(W==="time"?new Date(me):me):ae(me)})}if(K.grid&&en.forEach((A,z)=>{let ae=I.box({id:`${r}-xgrid-${z}`,position:"absolute",x:te(oe.x+A.pos-.5),y:oe.y,width:1,height:oe.height,background:d});h.enabled&&ae.animate(Qt(h,Wi,h.duration/2)),b.push(ae)}),Ce){let A=Math.max(u*3,oe.width/Math.max(1,en.length));en.forEach((z,ae)=>{x(z.text,{x:oe.x+z.pos-A/2,y:oe.y+oe.height+10,width:A,height:v},"center",{},`x-${ae}`)})}let[Cl,Al]=F.domain();if(Cl<=0&&Al>=0&&U){let A=I.box({id:`${r}-zero`,position:"absolute",x:oe.x,y:te(oe.y+F(0)-1),width:oe.width,height:2,background:Oi("#94a3b8",.45)});h.enabled&&A.animate(Qt(h,0,h.duration/2)),b.push(A)}let En=P.map((A,z)=>z).filter(A=>T(P[A])==="bar"),Nl=[...En,...P.map((A,z)=>z).filter(A=>T(P[A])==="candlestick"),...P.map((A,z)=>z).filter(A=>T(P[A])==="area"),...P.map((A,z)=>z).filter(A=>T(P[A])==="line"),...P.map((A,z)=>z).filter(A=>T(P[A])==="scatter")],Je=W==="band"?Ye:null,Yi=Je?w(ie.length):0,Hi=A=>Je?ie.indexOf(String(A)):0;Nl.forEach((A,z)=>{let ae=P[A],me=$(ae,A),fe=T(ae),Se=Y[A],Ae=L.get(A);if(fe==="bar"&&Je){let Ne=pe?1:En.length,xe=pe?0:En.indexOf(A),De=Je.bandwidth()/Ne,he=Ne>1?Math.min(4,De*.12):0;Se.forEach((Oe,ze)=>{let[Qe,Me]=Ae?Ae[ze]:[0,Oe.y],be=oe.y+F(Math.max(Qe,Me)),_n=oe.y+F(Math.min(Qe,Me)),Le=Math.max(0,_n-be),tn=oe.x+(Je(String(Oe.x))??0)+xe*De+he/2,lt=Oe.y>=0?"up":"down",Un=I.box({id:`${r}-bar-${A}-${ze}`,position:"absolute",x:te(tn),y:te(be),width:te(Math.max(1,De-he)),height:te(Le),background:me,borderRadius:Math.min(f,(De-he)/2,Le/2)}),qi=Hi(Oe.x)*Yi+(pe?En.indexOf(A)*h.duration*.6:0);if(h.enabled){let nn=h.start+qi,zn=nn+h.duration,Zi=ce.create().fromTo("height",0,te(Le),{start:nn,end:zn,ease:h.ease});lt==="up"&&Zi.fromTo("y",te(be+Le),te(be),{start:nn,end:zn,ease:h.ease}),Un.animate(Zi)}if(b.push(Un),e.valueLabels){let nn=q(Oe.y),zn=lt==="up"?be-v-4:be+Le+4;x(nn,{x:tn-30,y:zn,width:De-he+60,height:v},"center",{delay:qi+h.duration*.6,color:m,weight:600},`value-${A}-${ze}`)}});return}if(fe==="candlestick"&&Je){let Ne=e.upColor??"#22c55e",xe=e.downColor??"#ef4444",De=Je.bandwidth();ae.data.forEach((he,Oe)=>{let ze=he.close>=he.open?Ne:xe,Qe=oe.x+(Je(String(he.x))??0)+De/2,Me=Hi(he.x)*Yi,be=[["wick",{x:Qe-Math.max(1,De*.06),y:oe.y+F(he.high),width:Math.max(2,De*.12),height:Math.max(1,F(he.low)-F(he.high))}],["body",{x:Qe-De/2,y:oe.y+F(Math.max(he.open,he.close)),width:De,height:Math.max(2,Math.abs(F(he.open)-F(he.close)))}]];for(let[_n,Le]of be){let tn=I.box({id:`${r}-candle-${A}-${Oe}-${_n}`,position:"absolute",x:te(Le.x),y:te(Le.y),width:te(Le.width),height:te(Le.height),background:ze,borderRadius:_n==="body"?Math.min(f/2,Le.width/2):0});if(h.enabled){let lt=h.start+Me,Un=Le.y+Le.height/2;tn.animate(ce.create().fromTo("height",0,te(Le.height),{start:lt,end:lt+h.duration,ease:h.ease}).fromTo("y",te(Un),te(Le.y),{start:lt,end:lt+h.duration,ease:h.ease}))}b.push(tn)}});return}if(fe==="line"||fe==="area"){let Ne=ae.strokeWidth??3,xe=Math.ceil(Ne*2+(ae.pointRadius??0)+2),De=Se.map((Me,be)=>({x:$i(Me.x)+xe,top:F(Ae?Ae[be][1]:Me.y)+xe,base:F(Ae?Ae[be][0]:Math.max(F.domain()[0],Math.min(0,F.domain()[1])))+xe})),he=Pf(ae.curve),Oe={x:oe.x-xe,y:oe.y-xe,width:oe.width+2*xe,height:oe.height+2*xe},ze=z*(h.duration/3);if(fe==="area"){let Me=Si().x(be=>be.x).y0(be=>be.base).y1(be=>be.top).curve(he)(De);if(Me){let be=I.shape("path",{id:`${r}-area-${A}`,position:"absolute",...qu(Oe),d:Zu(Me),fillType:"linear",fillColor:Oi(me,.45),gradientEndColor:Oi(me,.02),gradientAngle:90});h.enabled&&be.animate(Qt(h,ze+h.duration*.4,h.duration)),b.push(be)}}let Qe=Nn().x(Me=>Me.x).y(Me=>Me.top).curve(he)(De);if(Qe&&Ne>0){let Me=I.shape("path",{id:`${r}-line-${A}`,position:"absolute",...qu(Oe),d:Zu(Qe),fillType:"none",strokeColor:me,strokeWidth:Ne,strokeLineCap:"round",strokeLineJoin:"round"});h.enabled&&Me.animate(ce.create().fromTo("trimEnd",0,1,{start:h.start+ze,end:h.start+ze+h.duration*1.5,ease:"power2.inOut"})),b.push(Me)}(ae.pointRadius??0)>0&&Xi(A,Se,me,ae.pointRadius??0,ze+h.duration*.5,Ae);return}fe==="scatter"&&Xi(A,Se,me,ae.pointRadius??6,z*(h.duration/3),Ae)}),ue&&ne(ye);function Xi(A,z,ae,me,fe,Se){let Ae=w(z.length);z.forEach((Ne,xe)=>{let De=F(Se?Se[xe][1]:Ne.y),he=I.shape("circle",{id:`${r}-point-${A}-${xe}`,position:"absolute",x:te(oe.x+$i(Ne.x)-me),y:te(oe.y+De-me),width:te(me*2),height:te(me*2),fillColor:ae,anchorX:.5,anchorY:.5});if(h.enabled){let Oe=h.start+fe+xe*Ae;he.animate(ce.create().fromTo("scale",0,1,{start:Oe,end:Oe+h.duration*.6,ease:"back.out(2)"}).fromTo("opacity",0,1,{start:Oe,end:Oe+6}))}b.push(he)})}}function w(P){return!h.enabled||P<=1?0:h.stagger>=0?h.stagger:Math.min(4,h.duration/P)}function D(P){let T=e.padding;return typeof T=="number"?{top:T,right:T,bottom:T,left:T}:{top:T?.top??P.top,right:T?.right??P.right,bottom:T?.bottom??P.bottom,left:T?.left??P.left}}function E(P){return{x:P.left,y:P.top,width:Math.max(1,a-P.left-P.right),height:Math.max(1,i-P.top-P.bottom)}}function V(P){let T=Math.max(0,...P.map($=>$.length));return Math.min(a*.4,T*u*.6+u+48)}function Z(P,T){let $=v+8,Y=T.y+Math.max(0,(T.height-P.length*$)/2);P.forEach((U,_)=>{R(U,T.x,Y+_*$,_)})}function ne(P){let T=P.map(U=>U.name.length*u*.6+u+28),$=T.reduce((U,_)=>U+_,0),Y=Math.max(0,a-$-20);P.forEach((U,_)=>{R(U,Y,4,_),Y+=T[_]})}function R(P,T,$,Y){let U=Math.round(u*.7),_=I.box({id:`${r}-legend-swatch-${Y}`,position:"absolute",x:te(T),y:te($+(v-U)/2),width:U,height:U,borderRadius:Math.round(U/4),background:P.color});h.enabled&&_.animate(Qt(h,0,h.duration/2)),b.push(_),x(P.name,{x:T+U+8,y:$,width:P.name.length*u*.6+12,height:v},"start",{color:e.textColor??"#cbd5e1"},`legend-${Y}`)}}function Qu(e){for(let t of e.animation?.tracks??[])for(let n of t.keyframes??[])n.frame=Math.round(n.frame);for(let t of e.children??[])Qu(t)}function qu(e){return{x:te(e.x),y:te(e.y),width:te(e.width),height:te(e.height)}}function Zu(e){return e.replace(/-?\d*\.\d{3,}(?:e-?\d+)?/gi,t=>String(te(Number(t))))}function Cf(e,t,n){let r=[],a=/([MLAZ])([^MLAZ]*)/gi;for(let[,i,o]of e.matchAll(a)){let u=(o.match(/-?\d*\.?\d+(?:e-?\d+)?/gi)??[]).map(Number);if(i.toUpperCase()==="A")for(let c=0;c+6<u.length;c+=7)u[c+5]+=t,u[c+6]+=n;else if(i.toUpperCase()!=="Z")for(let c=0;c+1<u.length;c+=2)u[c]+=t,u[c+1]+=n;r.push(i+u.map(te).join(","))}return r.join("")}g();var Te=rn(tl(),1);g();var Cr=rn(ec(),1);function Li(e,t=24,n){let r=e.fps??t;if(r<=0)throw new Error(`[FrameGrid] Invalid fps: ${r}. Must be > 0.`);let a=[];if(Array.isArray(e.frames)&&e.frames.length>0)for(let o of e.frames){if(typeof o!="number"||o<0||!Number.isFinite(o))throw new Error(`[FrameGrid] Invalid frame index in frames list: ${o}`);a.push({frame:Math.round(o),timeMs:Math.round(o/r*1e3)})}else if(Array.isArray(e.timesMs)&&e.timesMs.length>0)for(let o of e.timesMs){if(typeof o!="number"||o<0||!Number.isFinite(o))throw new Error(`[FrameGrid] Invalid timestamp in timesMs list: ${o}`);a.push({frame:Math.round(o/1e3*r),timeMs:Math.round(o)})}else if(e.startMs!==void 0||e.endMs!==void 0||e.stepMs!==void 0){let o=e.startMs??0,u=e.endMs??n??o+1e3,c=e.stepMs??Math.round(5/r*1e3);if(o<0||u<o)throw new Error(`[FrameGrid] Invalid millisecond range: startMs=${o}, endMs=${u}. startMs must be <= endMs.`);if(c<=0)throw new Error(`[FrameGrid] Invalid stepMs: ${c}. Must be > 0.`);for(let l=o;l<=u;l+=c)a.push({frame:Math.round(l/1e3*r),timeMs:Math.round(l)})}else{let o=e.startFrame??0,u=e.endFrame??(n?Math.min(o+30,Math.floor(n/1e3*r)):o+30),c=e.stepFrames??5;if(o<0||u<o)throw new Error(`[FrameGrid] Invalid frame range: startFrame=${o}, endFrame=${u}. startFrame must be <= endFrame.`);if(c<=0)throw new Error(`[FrameGrid] Invalid stepFrames: ${c}. Must be > 0.`);for(let l=o;l<=u;l+=c)a.push({frame:Math.round(l),timeMs:Math.round(l/r*1e3)})}let i=Math.min(e.maxFrames??64,120);if(a.length>i)throw new Error(`[FrameGrid] Requested ${a.length} frames exceeds the safety threshold of ${i}. Increase stepFrames/stepMs or narrow the start/end range to prevent oversized images.`);if(a.length===0)throw new Error("[FrameGrid] Zero frames were resolved for sampling.");return{samples:a,fps:r}}function Fi(e,t,n){let r=n.gap??12,a=n.padding??16,o=n.showHeader??!0?54:0,u=n.maxGridWidth??4096,c=n.maxGridHeight??4096,l=n.columns;(!l||l<=0)&&(e<=4?l=e:e<=9?l=3:e<=16?l=4:e<=25?l=5:l=6),l=Math.min(l,e);let m=Math.ceil(e/l),d=Math.max(120,Math.min(n.cellWidth??320,960)),p=n.cellHeight??Math.round(d/(t>0?t:16/9)),f=l*d+(l-1)*r+a*2,y=m*p+(m-1)*r+a*2+o;if(f>u||y>c){let h=Math.min((u-(l-1)*r-a*2)/(l*d),(c-(m-1)*r-a*2-o)/(m*p));if(h<.25)throw new Error(`[FrameGrid] Cannot fit ${e} cells (${l}x${m}) into max dimensions [${u}x${c}]. Reduce cell count or decrease cellWidth.`);d=Math.max(100,Math.floor(d*h)),p=Math.round(d/(t>0?t:16/9)),f=l*d+(l-1)*r+a*2,y=m*p+(m-1)*r+a*2+o}return{columns:l,rows:m,cellWidth:d,cellHeight:p,totalWidth:f,totalHeight:y,headerHeight:o,gap:r,padding:a}}async function Dn(e,t={}){let n=e.fps??24,r=e.durationMs,{samples:a,fps:i}=Li(t,n,r),o=e.width??1920,u=e.height??1080,c=o>0&&u>0?o/u:16/9,l=Fi(a.length,c,t),m=t.renderer??new Te.HeadlessMediaRenderer,d=[];for(let b of a){let x=await e.renderFrame({frame:b.frame,atMs:b.timeMs,fps:i,renderer:m});d.push(x)}let p=new Cr.Canvas(l.totalWidth,l.totalHeight),f=p.getContext("2d");if(f.fillStyle=t.backgroundColor??"#090a0f",f.fillRect(0,0,l.totalWidth,l.totalHeight),t.showHeader!==!1&&l.headerHeight>0){let b=t.headerText??`FrameGrid Conformance Review | Frames ${a[0].frame}\u2013${a[a.length-1].frame} (Count: ${a.length})`,x=`${o}\xD7${u} @ ${i} FPS | Cell: ${l.cellWidth}\xD7${l.cellHeight}px | Step: ${t.stepFrames?`${t.stepFrames}f`:t.stepMs?`${t.stepMs}ms`:"Custom"}`;f.fillStyle="#f8fafc",f.font="bold 15px sans-serif",f.fillText(b,l.padding,l.padding+18),f.fillStyle="#94a3b8",f.font="12px sans-serif",f.fillText(x,l.padding,l.padding+36),f.strokeStyle="#1e2433",f.lineWidth=1,f.beginPath(),f.moveTo(l.padding,l.padding+46),f.lineTo(l.totalWidth-l.padding,l.padding+46),f.stroke()}let y=t.showLabels??!0;for(let b=0;b<a.length;b++){let x=a[b],v=b%l.columns,S=Math.floor(b/l.columns),k=l.padding+v*(l.cellWidth+l.gap),C=l.padding+l.headerHeight+S*(l.cellHeight+l.gap),w=await(0,Cr.loadImage)(d[b]);if(f.drawImage(w,k,C,l.cellWidth,l.cellHeight),f.strokeStyle="#262b3d",f.lineWidth=1,f.strokeRect(k,C,l.cellWidth,l.cellHeight),y){let D=`F:${x.frame} \u2022 ${x.timeMs}ms`;f.font="bold 11px sans-serif";let V=f.measureText(D).width+14,Z=20,ne=k+6,R=C+6;f.fillStyle="#090a0fee",f.beginPath(),f.roundRect(ne,R,V,Z,4),f.fill(),f.strokeStyle="#6366f155",f.lineWidth=1,f.stroke(),f.fillStyle="#e2e8f0",f.fillText(D,ne+7,R+14)}}let h=await p.toBuffer("png");return t.outputPath&&await an.writeFile(t.outputPath,h),h}g();var Af=["material","shininess","roughness","specularIntensity","metallic","ambientIntensity","ior","transmission","dispersion","fresnelPower","envIntensity","emissive","emissiveIntensity","castShadow"];function On(e){let t=e,n={};for(let r of Af)t[r]!==void 0&&(n[r]=t[r]);return n}function Nf(e){return e==="lit"||e==="unlit"||e==="toon"?e:void 0}function Ri(e,t,n){let r=Object.fromEntries(Object.entries({...t,color:n.color,material:Nf(n.material),shininess:n.shininess,roughness:n.roughness,metallic:n.metallic}).filter(([,a])=>a!==void 0));return I.model({id:n.id??ee(e),modelData:io(r),primitive3d:r,is3D:!0,x:n.x??0,y:n.y??0,z:n.z??0,rotateX:n.rotateX??0,rotateY:n.rotateY??0,rotateZ:n.rotateZ??0,scale:n.scale??1,scaleX:n.scaleX??1,scaleY:n.scaleY??1,scaleZ:n.scaleZ??1,opacity:n.opacity??1,color:n.tint,material:n.material,shininess:n.shininess??32,roughness:n.roughness,specularIntensity:n.specularIntensity??.5,ambientIntensity:n.ambientIntensity??1,metallic:n.metallic,...On({emissive:n.emissive,emissiveIntensity:n.emissiveIntensity,castShadow:n.castShadow}),twoSided:!1,startFrame:n.startFrame,durationFrames:n.durationFrames})}function Ar(e,t){let n=t.faces??t.items??[];for(let[r,a]of Object.entries(t))Object.defineProperty(e,r,{value:a,enumerable:!1,configurable:!0});return Object.defineProperty(e,Symbol.iterator,{value:function*(){yield*n},enumerable:!1,configurable:!0}),e}function Df(e){let t=e.scale??1,n=Math.max(Math.abs(t*(e.scaleX??1)),Math.abs(t*(e.scaleY??1)));return n>0?n:1}var Ot={cube(e){let t=e.size,[n,r,a]=typeof t=="number"?[t,t,t]:t,i=e.twoSided??!0,o={front:"#3b82f6",back:"#1d4ed8",left:"#2563eb",right:"#1e40af",top:"#60a5fa",bottom:"#172554"},u=(f,y,h,b,x,v)=>{if(y&&typeof y=="object"&&"kind"in y){let k=y;return k.position="absolute",k.is3D=!0,k.twoSided=i,k.material=k.material??e.material??"lit",k.shininess=k.shininess??e.shininess??32,k.specularIntensity=k.specularIntensity??e.specularIntensity??.5,e.roughness!==void 0&&k.roughness===void 0&&(k.roughness=e.roughness),e.metallic!==void 0&&k.metallic===void 0&&(k.metallic=e.metallic),e.ambientIntensity!==void 0&&k.ambientIntensity===void 0&&(k.ambientIntensity=e.ambientIntensity),Object.assign(k,v),k}let S=typeof y=="string"?{background:y}:y??{background:h};return I.box({id:`${e.id??"cube"}-${f}`,position:"absolute",width:b,height:x,is3D:!0,twoSided:i,material:S.material??e.material??"lit",shininess:S.shininess??e.shininess??32,specularIntensity:S.specularIntensity??e.specularIntensity??.5,roughness:S.roughness??e.roughness,metallic:S.metallic??e.metallic,ambientIntensity:S.ambientIntensity??e.ambientIntensity??1,...On({emissive:S.emissive??e.emissive,emissiveIntensity:S.emissiveIntensity??e.emissiveIntensity,castShadow:S.castShadow??e.castShadow}),background:S.background??h,borderRadius:S.borderRadius??0,borderWidth:S.borderWidth,borderColor:S.borderColor,opacity:S.opacity??1,children:S.children??[],...v})},c=n/2,l=r/2,m=a/2,d=[u("front",e.faces?.front,o.front,n,r,{x:0,y:0,z:-m,rotateX:0,rotateY:0,rotateZ:0}),u("back",e.faces?.back,o.back,n,r,{x:0,y:0,z:m,rotateX:0,rotateY:180,rotateZ:0}),u("left",e.faces?.left,o.left,a,r,{x:-c,y:0,z:0,rotateX:0,rotateY:90,rotateZ:0}),u("right",e.faces?.right,o.right,a,r,{x:c,y:0,z:0,rotateX:0,rotateY:-90,rotateZ:0}),u("top",e.faces?.top,o.top,n,a,{x:0,y:-l,z:0,rotateX:-90,rotateY:0,rotateZ:0}),u("bottom",e.faces?.bottom,o.bottom,n,a,{x:0,y:l,z:0,rotateX:90,rotateY:0,rotateZ:0})],p=I.box({id:e.id??ee("cube"),position:"absolute",x:e.x??0,y:e.y??0,z:e.z??0,width:n,height:r,is3D:!0,transformStyle:"preserve-3d",rotateX:e.rotateX??0,rotateY:e.rotateY??0,rotateZ:e.rotateZ??0,opacity:e.opacity??1,background:"transparent",children:d});return Ar(p,{faces:d})},carousel(e){let{items:t,radius:n,faceInward:r=!1,twoSided:a=!0}=e,i=t.length,o=i>0?360/i:0,u=t.map((l,m)=>{let d=m*o,p=d*Math.PI/180,f=n*Math.sin(p),y=-n*Math.cos(p),h=r?180-d:-d,b=l;return b.position="absolute",b.is3D=!0,b.twoSided=a,b.x=f,b.y=0,b.z=y,b.rotateY=h,b}),c=I.box({id:e.id??ee("carousel"),position:"absolute",x:e.x??0,y:e.y??0,z:e.z??0,width:e.itemWidth??200,height:e.itemHeight??200,is3D:!0,transformStyle:"preserve-3d",rotateX:e.rotateX??0,rotateY:e.rotateY??0,rotateZ:e.rotateZ??0,opacity:e.opacity??1,background:"transparent",children:u});return Ar(c,{items:u})},prism(e){let{sides:t,radius:n,height:r,twoSided:a=!0}=e,i=Math.max(3,t),o=2*n*Math.tan(Math.PI/i),u=360/i,c=[];for(let m=0;m<i;m++){let d=m*u,p=d*Math.PI/180,f=n*Math.sin(p),y=n*Math.cos(p),h=e.sideConfigs?.[m],b=typeof h=="string"?h:h?.background??`hsl(${m*360/i}, 70%, 50%)`;c.push(I.box({id:`${e.id??"prism"}-panel-${m}`,position:"absolute",width:o,height:r,is3D:!0,twoSided:a,x:f,y:0,z:y,rotateY:d,background:b}))}let l=I.box({id:e.id??ee("prism"),position:"absolute",x:e.x??0,y:e.y??0,z:e.z??0,width:o,height:r,is3D:!0,transformStyle:"preserve-3d",rotateX:e.rotateX??0,rotateY:e.rotateY??0,rotateZ:e.rotateZ??0,opacity:e.opacity??1,background:"transparent",children:c});return Ar(l,{faces:c})},plane(e){return I.box({id:e.id??ee("plane"),position:"absolute",width:e.width,height:e.height,x:e.x??0,y:e.y??0,z:e.z??0,is3D:!0,twoSided:e.twoSided??!0,rotateX:e.rotateX??0,rotateY:e.rotateY??0,rotateZ:e.rotateZ??0,background:e.background??"#3b82f6",borderRadius:e.borderRadius??0,opacity:e.opacity??1,...On(e),children:e.children??[]})},grid(e){let{width:t,height:n}=e,r=e.id??ee("grid"),a=Math.max(1,Math.round(e.divisions??10)),i=e.lineWidth??2,o=e.color??"rgba(59, 130, 246, 0.5)",u=(p,f,y,h,b)=>I.box({id:`${r}-${p}`,position:"absolute",x:f,y,z:0,width:h,height:b,is3D:!0,twoSided:!0,material:"unlit",background:o}),c=4096,l=[],m=Math.ceil(n/c),d=Math.ceil(t/c);for(let p=0;p<=a;p++){let f=p/a-.5;for(let y=0;y<m;y++){let h=n/m,b=-n/2+h*(y+.5);l.push(u(`v${p}-${y}`,f*t,b,i,h))}for(let y=0;y<d;y++){let h=t/d,b=-t/2+h*(y+.5);l.push(u(`h${p}-${y}`,b,f*n,h,i))}}return I.box({id:r,position:"absolute",width:t,height:n,x:e.x??0,y:e.y??0,z:e.z??0,is3D:!0,transformStyle:"preserve-3d",rotateX:e.rotateX??90,rotateY:e.rotateY??0,rotateZ:e.rotateZ??0,background:"transparent",opacity:e.opacity??1,children:l})},text(e){return e.extrusionDepth&&e.extrusionDepth>0?Ot.extrudedText({...e,depth:e.extrusionDepth}):I.text(e.text,{id:e.id??ee("text3d"),position:"absolute",x:e.x??0,y:e.y??0,z:e.z??0,is3D:!0,twoSided:e.twoSided??!0,rotateX:e.rotateX??0,rotateY:e.rotateY??0,rotateZ:e.rotateZ??0,fontSize:e.fontSize??48,fontFamily:e.fontFamily,fontWeight:e.fontWeight??"bold",fontStyle:e.fontStyle,fill:e.fill??"#ffffff",align:e.align??"center",verticalAlign:e.verticalAlign??"middle",letterSpacing:e.letterSpacing,lineHeight:e.lineHeight,material:e.material??"lit",shininess:e.shininess??64,roughness:e.roughness,specularIntensity:e.specularIntensity??.8,ambientIntensity:e.ambientIntensity??1,metallic:e.metallic,...On(e),opacity:e.opacity??1,background:e.background,borderRadius:e.borderRadius,padding:e.padding,stroke:e.stroke,strokeWidth:e.strokeWidth})},extrudedText(e){let{depth:t,text:n,fill:r="#ffffff",bevelColor:a}=e,i,o=(e.curveTolerance??.1)/Df(e),u=(e.fontFamily?Ft.getParsed(e.fontFamily):null)??Ft.getParsed("Inter")??Ft.getParsed("Unbounded")??Ft.getFirstParsed();u&&(i=ao({text:n,font:u,fontSize:e.fontSize??48,depth:t,fill:r,bevelColor:a,curveSegments:e.curveSegments,curveTolerance:o,align:e.align,verticalAlign:e.verticalAlign,letterSpacing:e.letterSpacing,material:e.material==="lit"||e.material==="unlit"||e.material==="toon"?e.material:void 0,shininess:e.shininess,roughness:e.roughness,metallic:e.metallic}).modelData);let c=I.model({id:e.id??ee("extruded-text"),modelData:i,is3D:!0,x:e.x??0,y:e.y??0,z:e.z??0,rotateX:e.rotateX??0,rotateY:e.rotateY??0,rotateZ:e.rotateZ??0,scale:e.scale??1,scaleX:e.scaleX??1,scaleY:e.scaleY??1,scaleZ:e.scaleZ??1,opacity:e.opacity??1,material:e.material,shininess:e.shininess??32,roughness:e.roughness,specularIntensity:e.specularIntensity??.8,ambientIntensity:e.ambientIntensity??1,metallic:e.metallic,...On(e),twoSided:e.twoSided??!0,text3dOptions:{...e,curveTolerance:o}});return Ar(c,{faces:[c],items:[c]})},roundedBox(e){return Ri("rounded-box",{type:"roundedBox",width:e.width,height:e.height,depth:e.depth,radius:e.radius,segments:e.segments,taper:e.taper},e)},sphere(e){return Ri("sphere",{type:"sphere",radius:e.radius,segments:e.segments},e)},cylinder(e){return Ri("cylinder",{type:"cylinder",radius:e.radius,radiusTop:e.radiusTop,radiusBottom:e.radiusBottom,height:e.height,segments:e.segments,openEnded:e.openEnded},e)},model(e={}){return I.model(e)},obj(e,t={}){return I.obj(e,t)},fbx(e,t={}){return I.fbx(e,t)},gltf(e,t={}){return I.gltf(e,t)},glb(e,t={}){return I.glb(e,t)},stl(e,t={}){return I.stl(e,t)},ply(e,t={}){return I.ply(e,t)},vox(e,t={}){return I.vox(e,t)},threeDS(e,t={}){return I.threeDS(e,t)},off(e,t={}){return I.off(e,t)}};g();var Bi=(e,t,n)=>{switch(e){case"left":return{dx:-t,dy:0};case"right":return{dx:t,dy:0};case"up":return{dx:0,dy:-n};default:return{dx:0,dy:n}}};function qe(e,t,n){return{kind:e,frames:Math.max(0,Math.round(t)),build:n}}var nl={cut:()=>qe("cut",0,()=>({})),crossfade:(e=15,t="sine.inOut")=>qe("crossfade",e,n=>({incoming:ce.keys("opacity",[[0,0],[n.frames,1,t]])})),fadeThrough:(e=20,t="sine.inOut")=>qe("fadeThrough",e,n=>{let r=Math.max(1,Math.floor(n.frames/2));return{outgoing:ce.keys("opacity",[[n.outStart,1],[n.outStart+r,0,t]]),incoming:ce.keys("opacity",[[0,0],[r,0],[n.frames,1,t]])}}),push:(e="left",t=18,n="power3.inOut")=>qe("push",t,r=>{let{dx:a,dy:i}=Bi(e,r.width,r.height),o=ce.create(),u=ce.create();return a!==0?(o.keys("x",[[r.outStart,r.outRest.x],[r.outStart+r.frames,r.outRest.x+a,n]]),u.keys("x",[[0,r.inRest.x-a],[r.frames,r.inRest.x,n]])):(o.keys("y",[[r.outStart,r.outRest.y],[r.outStart+r.frames,r.outRest.y+i,n]]),u.keys("y",[[0,r.inRest.y-i],[r.frames,r.inRest.y,n]])),{outgoing:o,incoming:u}}),slide:(e="left",t=18,n="power3.out")=>qe("slide",t,r=>{let{dx:a,dy:i}=Bi(e,r.width,r.height),o=a!==0?"x":"y",u=a!==0?r.inRest.x:r.inRest.y;return{outgoing:ce.keys("opacity",[[r.outStart,1],[r.outStart+r.frames,.6,n]]),incoming:ce.keys(o,[[0,u-(a||i)],[r.frames,u,n]])}}),zoom:(e=18,t="power2.inOut")=>qe("zoom",e,n=>({outgoing:ce.create().keys("scale",[[n.outStart,1],[n.outStart+n.frames,1.25,t]]).keys("opacity",[[n.outStart,1],[n.outStart+n.frames,0,t]]),incoming:ce.create().keys("scale",[[0,.85],[n.frames,1,t]]).keys("opacity",[[0,0],[n.frames,1,t]])})),whip:(e="left",t=10)=>{let n=nl.push(e,t,"expo.inOut");return qe("whip",t,r=>({...n.build(r),sceneProps:{motionBlurShutter:360}}))},wipe:(e="left",t=18,n="power2.inOut")=>qe("wipe",t,r=>{let{dx:a,dy:i}=Bi(e,r.width,r.height),o=a!==0?"x":"y",u=a!==0?r.inRest.x:r.inRest.y;return{incomingMatte:I.box({id:ee("wipe-matte"),position:"absolute",x:r.inRest.x,y:r.inRest.y,width:r.width,height:r.height,background:"#ffffff"}).animate(ce.keys(o,[[0,u-(a||i)],[r.frames,u,n]]))}}),iris:(e=20,t={})=>qe("iris",e,n=>{let[r,a]=t.at??[.5,.5],i=n.inRest.x+r*n.width,o=n.inRest.y+a*n.height,u=Math.hypot(Math.max(r,1-r)*n.width,Math.max(a,1-a)*n.height);return{incomingMatte:I.shape("circle",{id:ee("iris-matte"),position:"absolute",x:i-u,y:o-u,width:u*2,height:u*2,fillColor:"#ffffff"}).animate(ce.keys("scale",[[0,0],[n.frames,1,t.ease??"power2.inOut"]]))}})};function Nr(e,t,n){let r=e[t];return typeof r=="number"?r:n}function rl(e,t={}){let n=[],r=[],a=0;e.forEach((o,u)=>{let c=u===0?void 0:o.transition,l=Math.min(c?.frames??0,e[u-1]?.duration??0),m=Math.max(0,a-l),d=Math.max(1,Math.round(o.duration));r.push(m);let p=o.scene;(p.position===void 0||p.position==="relative")&&(p.position="absolute",p.x??=0,p.y??=0),p.startFrame=m,p.durationFrames=d,n.push(p),a=m+d}),e.forEach((o,u)=>{if(u===0||!o.transition||o.transition.frames===0)return;let c=n[u-1],l=n[u],m=Math.min(o.transition.frames,e[u-1].duration),d=t.width??Nr(l,"width",1920),p=t.height??Nr(l,"height",1080),f=o.transition.build({width:d,height:p,frames:m,outStart:e[u-1].duration-m,outRest:{x:typeof c.x=="number"?c.x:0,y:typeof c.y=="number"?c.y:0},inRest:{x:typeof l.x=="number"?l.x:0,y:typeof l.y=="number"?l.y:0}}),y=(h,b)=>{if(!b)return;let x=h.animation?.tracks??[];h.animation=ce.merge({tracks:x},b).toSpec()};y(c,f.outgoing),y(l,f.incoming),f.sceneProps&&(Object.assign(c,f.sceneProps),Object.assign(l,f.sceneProps)),f.incomingMatte&&(l.matte={node:f.incomingMatte,mode:"alpha"})});let i=I.box({id:t.id??ee("sequence"),position:"absolute",x:0,y:0,width:t.width??Nr(n[0]??{},"width",1920),height:t.height??Nr(n[0]??{},"height",1080),startFrame:t.startFrame??0,durationFrames:Math.max(1,a),children:n});return Object.defineProperty(i,"totalFrames",{value:a,enumerable:!1}),Object.defineProperty(i,"sceneStarts",{value:r,enumerable:!1}),i}g();var Of={studio:{environment:"studio",envIntensity:1,key:{dir:[-.55,-1,-.7],color:"#fff6ec",intensity:1.1},rim:{dir:[.9,-.5,.9],color:"#dbe8ff",intensity:.9}},soft:{environment:"soft",envIntensity:1,key:{dir:[-.4,-1,-.8],color:"#ffffff",intensity:1}},sunset:{environment:"sunset",envIntensity:.9,key:{dir:[-1,-.35,-.3],color:"#ffb27a",intensity:2.2},fill:{dir:[.8,-.6,-.4],color:"#7f9cff",intensity:.35}},dramatic:{environment:"night",envIntensity:.8,key:{dir:[-.8,-1,-.35],color:"#ffffff",intensity:2.4},rim:{dir:[.7,-.4,1],color:"#8fb4ff",intensity:1.8}}};function Lf([e,t,n],r){let a=r*Math.PI/180,i=Math.cos(a),o=Math.sin(a);return[i*e+o*n,t,-o*e+i*n]}function al(e,t,n,r){let[a,i,o]=Lf(e,r),u=Math.hypot(a,i,o)||1;return{x:t[0]+a/u*n,y:t[1]+i/u*n,z:t[2]+o/u*n,targetX:t[0],targetY:t[1],targetZ:t[2]}}function Dr(e,t){let n=Of[e],r=t.target??[960,540,0],a=t.distance??1600,i=t.rotation??0,o=t.intensity??1,u=t.id??ee(`lighting-${e}`),c=[Ze.environment(n.environment,{id:`${u}-environment`,intensity:n.envIntensity*o,rotation:i,exposure:t.exposure,toneMapping:t.toneMapping,fog:t.fog,bloom:t.bloom}),Ze.directional({id:`${u}-key`,color:n.key.color,intensity:n.key.intensity*o,...al(n.key.dir,r,a,i),castShadow:t.shadows??!0,shadowSoftness:t.shadowSoftness??3})];for(let[l,m]of[["rim",n.rim],["fill",n.fill]])m&&c.push(Ze.directional({id:`${u}-${l}`,color:m.color,intensity:m.intensity*o,...al(m.dir,r,a,i)}));return c}var Ff={studio:(e={})=>Dr("studio",e),soft:(e={})=>Dr("soft",e),sunset:(e={})=>Dr("sunset",e),dramatic:(e={})=>Dr("dramatic",e)};g();var vl=rn(rc(),1),Br=rn(vc(),1);var zi=rn(ol(),1);g();var Ln=j.dirname(Gn(import.meta.url)),sl=["import","meta","url"].join("."),Rf=zr(import.meta.url),Fn="/@framefields/engine",ll={framefields:"index.ts","framefields/effects":"effects/index.ts","framefields/audio":"audio/index.ts","framefields/signals":"signals/index.ts","framefields/fonts":"fonts/index.ts"},Ii={path:"path","path/posix":"path",url:"url",os:"os",fs:"fs","fs/promises":"fs-promises",module:"module"},ul=new Set(["sharp","skia-canvas","node-av","onnxruntime-node","@resvg/resvg-js","@napi-rs/webcodecs","@mediabunny/server","@mediabunny/mp3-encoder","webgpu","pino","pino-pretty","dotenv","esbuild","@framefields/renderer","@framefields/server-utils","framefields/renderer","framefields/preview"]),Bf=`
705
+ `;var Hr=class{constructor(t){this.device=t;let r=t.createShaderModule({label:"segmentation.wgsl",code:jo});this.computePipeline=t.createComputePipeline({label:"SegmentationComputePipeline",layout:"auto",compute:{module:r,entryPoint:"computeSegmentation"}}),this.uniformBuffer=t.createBuffer({size:16,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST,label:"segmentation_uniform_buffer"})}device;computePipeline;uniformBuffer;cachedOutputTexture;execute(t,r={}){let n=t.width,i=t.height,a=r.threshold??.5,s=r.feather??.05,u=new ArrayBuffer(16),c=new Float32Array(u),l=new Uint32Array(u);c[0]=a,c[1]=s,l[2]=n,l[3]=i,this.device.queue.writeBuffer(this.uniformBuffer,0,u),(!this.cachedOutputTexture||this.cachedOutputTexture.width!==n||this.cachedOutputTexture.height!==i)&&(this.cachedOutputTexture?.destroy(),this.cachedOutputTexture=this.device.createTexture({label:"segmentation_output_texture",size:[n,i],format:"rgba8unorm",usage:GPUTextureUsage.STORAGE_BINDING|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC}));let m=this.device.createCommandEncoder({label:"segmentation_command_encoder"}),d=this.device.createBindGroup({label:"segmentation_bind_group",layout:this.computePipeline.getBindGroupLayout(0),entries:[{binding:0,resource:t.createView({label:"segmentation_input_view"})},{binding:1,resource:this.cachedOutputTexture.createView({label:"segmentation_output_view"})},{binding:2,resource:{buffer:this.uniformBuffer}}]}),p=m.beginComputePass({label:"segmentation_compute_pass"});return p.setPipeline(this.computePipeline),p.setBindGroup(0,d),p.dispatchWorkgroups(Math.ceil(n/16),Math.ceil(i/16),1),p.end(),this.device.queue.submit([m.finish()]),this.cachedOutputTexture}destroy(){this.cachedOutputTexture?.destroy(),this.cachedOutputTexture=void 0,this.uniformBuffer.destroy()}};var Bt=class e{constructor(t){this.source=t;this.id=`tensor-${Math.random().toString(36).slice(2,9)}`}source;id;cannyOptions;depthNormalsOptions;poseSkeletonOptions;faceLandmarksOptions;segmentationOptions;opticalFlowOptions;deflickerOptions;multiplexer=new sr;cannyPipeline;depthNormalsPipeline;posePipeline;facePipeline;segmentationPipeline;opticalFlowPipeline;deflickerPipeline;prevInputTexture;static from(t){return new e(t)}canny(t={}){return this.cannyOptions=t,this}depthNormals(t={}){return this.depthNormalsOptions=t,this}poseSkeleton(t={}){return this.poseSkeletonOptions=t,this}pose(t,r={}){return this.poseSkeletonOptions={...r,landmarks:t},this}faceLandmarks(t={}){return this.faceLandmarksOptions=t,this}face(t,r={}){return this.faceLandmarksOptions={...r,landmarks:t},this}segmentation(t={}){return this.segmentationOptions=t,this}opticalFlow(t={}){return this.opticalFlowOptions=t,this}deflicker(t={}){return this.deflickerOptions=t,this}getMultiplexer(){return this.multiplexer}async execute(t,r){let n=r;if(!n&&typeof this.source?.createView=="function"&&(n=this.source),!n)throw new Error("[TensorPipeline.execute] No GPUTexture available for tensor compute execution. Pass a valid GPUTexture to execute() or initialize with a GPUTexture source.");if(this.cannyOptions){this.cannyPipeline||(this.cannyPipeline=new ur(t));let i=this.cannyPipeline.execute(n,this.cannyOptions);this.multiplexer.set("canny",i)}if(this.depthNormalsOptions){this.depthNormalsPipeline||(this.depthNormalsPipeline=new lr(t));let i=this.depthNormalsPipeline.execute(n,this.depthNormalsOptions);this.multiplexer.set("normals",i)}if(this.poseSkeletonOptions?.landmarks){this.posePipeline||(this.posePipeline=new no(t));let i=this.posePipeline.execute(this.poseSkeletonOptions.landmarks,{width:this.poseSkeletonOptions.width??n.width,height:this.poseSkeletonOptions.height??n.height,lineWidth:this.poseSkeletonOptions.lineWidth});this.multiplexer.set("poseSkeleton",i)}if(this.faceLandmarksOptions?.landmarks){this.facePipeline||(this.facePipeline=new Wr(t));let i=this.facePipeline.execute(this.faceLandmarksOptions.landmarks,{width:this.faceLandmarksOptions.width??n.width,height:this.faceLandmarksOptions.height??n.height,lineWidth:this.faceLandmarksOptions.lineWidth});this.multiplexer.set("faceLandmarks",i)}if(this.segmentationOptions){this.segmentationPipeline||(this.segmentationPipeline=new Hr(t));let i=this.segmentationPipeline.execute(n,this.segmentationOptions);this.multiplexer.set("segmentationMask",i)}if(this.opticalFlowOptions){this.opticalFlowPipeline||(this.opticalFlowPipeline=new Gn(t));let i=this.prevInputTexture??n,a=this.opticalFlowPipeline.execute(i,n,this.opticalFlowOptions);this.multiplexer.set("motionVectors",a)}if(this.deflickerOptions){this.deflickerPipeline||(this.deflickerPipeline=new zn(t));let i=this.deflickerPipeline.execute(n,this.deflickerOptions);this.multiplexer.set("deflickered",i)}return this.prevInputTexture=n,this.multiplexer.getOutputs()}toConfig(){return{canny:this.cannyOptions,depthNormals:this.depthNormalsOptions,poseSkeleton:this.poseSkeletonOptions,faceLandmarks:this.faceLandmarksOptions,segmentation:this.segmentationOptions,opticalFlow:this.opticalFlowOptions,deflicker:this.deflickerOptions}}toNode(){return{id:this.id,kind:"tensor",source:this.source,config:this.toConfig()}}destroy(){this.cannyPipeline?.destroy(),this.depthNormalsPipeline?.destroy(),this.posePipeline?.destroy(),this.facePipeline?.destroy(),this.segmentationPipeline?.destroy(),this.opticalFlowPipeline?.destroy(),this.deflickerPipeline?.destroy(),this.multiplexer.destroy()}};h();var Rd=e=>!e.source||e.source.type==="keyframe";function Yr(e){let t=[],r=new Map;for(let n of e){if(!Rd(n)){t.push(n);continue}let i=r.get(n.prop);if(!i){let s={...n,keyframes:[...n.keyframes??[]]};r.set(n.prop,s),t.push(s);continue}let a=new Map(i.keyframes.map(s=>[s.frame,s]));for(let s of n.keyframes??[])a.set(s.frame,s);i.keyframes=[...a.values()].sort((s,u)=>s.frame-u.frame)}return t}function Vo(e,t){if(!e)return t;let r=Ni(e);if(!r||r.name==="none")return t;let{name:n,dir:i,params:a}=r,s=Math.max(0,Math.min(1,t)),u=c=>i==="in"?c(s):i==="out"?1-c(1-s):s<.5?c(s*2)/2:1-c((1-s)*2)/2;switch(n){case"power1":return u(c=>c*c);case"power2":return u(c=>c*c*c);case"power3":return u(c=>c*c*c*c);case"sine":return u(c=>1-Math.cos(c*Math.PI/2));case"circ":return u(c=>1-Math.sqrt(Math.max(0,1-c*c)));case"expo":return u(c=>c===0?0:2**(10*(c-1)));case"back":{let c=a?.[0]??1.70158,l=c+1;return u(m=>l*m*m*m-c*m*m)}case"bounce":{let c=l=>{if(l<.36363636363636365)return 7.5625*l*l;if(l<.7272727272727273){let f=l-.5454545454545454;return 7.5625*f*f+.75}if(l<.9090909090909091){let f=l-.8181818181818182;return 7.5625*f*f+.9375}let p=l-2.625/2.75;return 7.5625*p*p+.984375};return i==="out"?c(s):i==="in"?1-c(1-s):s<.5?(1-c(1-2*s))/2:(1+c(2*s-1))/2}default:return s}}function Ni(e){if(e){if(typeof e=="object"&&"name"in e&&"dir"in e)return e;if(typeof e=="string"){let t=e.trim(),r=t.match(/^([a-zA-Z0-9]+)(?:\.([a-zA-Z]+))?(?:\(([^)]+)\))?$/);if(r){let c=r[1].toLowerCase(),l=c==="linear"?"none":c,m=(r[2]||"out").toLowerCase(),d="out";m==="in"?d="in":m==="out"?d="out":m==="inout"&&(d="inOut");let p;return r[3]&&(p=r[3].split(",").map(f=>Number.parseFloat(f.trim())).filter(f=>!Number.isNaN(f))),{name:l,dir:d,...p&&p.length>0?{params:p}:{}}}let n=t.indexOf(".");if(n===-1){let c=t.toLowerCase();return{name:c==="linear"?"none":c,dir:"out"}}let i=t.slice(0,n).toLowerCase(),a=i==="linear"?"none":i,s=t.slice(n+1).toLowerCase(),u="out";return s==="in"?u="in":s==="out"?u="out":s==="inout"&&(u="inOut"),{name:a,dir:u}}}}var ue=class e{tracks=[];constructor(t=[]){this.tracks=[...t]}static create(){return new e}static fromTo(t,r,n,i={}){return new e().fromTo(t,r,n,i)}static keys(t,r){return new e().keys(t,r)}static signal(t,r,n={}){return new e().signal(t,r,n)}static colorSignal(t,r,n){return new e().colorSignal(t,r,n)}static kineticSweep(t=-1,r=1,n=0,i=24,a="power2.out"){return new e().kineticSweep(t,r,n,i,a)}static typewriter(t=0,r=30,n="linear"){return new e().typewriter(t,r,n)}static letterSpacing(t,r,n=0,i=24,a="power2.out"){return new e().letterSpacing(t,r,n,i,a)}static wiggle(t,r={}){return new e().wiggle(t,r)}static spring(t,r={}){return new e().spring(t,r)}static firstMargin(t,r,n={}){return new e().firstMargin(t,r,n)}static strokeWidth(t,r,n={}){return new e().fromTo("strokeWidth",t,r,n)}static rotateX(t,r,n={}){return new e().fromTo("rotateX",t,r,n)}static rotateY(t,r,n={}){return new e().fromTo("rotateY",t,r,n)}static rotateZ(t,r,n={}){return new e().fromTo("rotateZ",t,r,n)}static rotation(t,r,n={}){return new e().fromTo("rotation",t,r,n)}addTrack(t){return this.tracks.push(t),this}fromTo(t,r,n,i={}){let a=i.from??i.start??i.fromFrame??0,s=i.to??i.end??i.toFrame??(i.durationFrames!==void 0?a+i.durationFrames:a+24),u=Ni(i.ease),c=this.tracks.find(m=>m.prop===t&&(!m.source||m.source.type==="keyframe"));c||(c={id:`${t}_fromTo_${this.tracks.length}`,prop:t,keyframes:[]},this.tracks.push(c));let l=c.id;return c.keyframes.length===0&&a>0&&c.keyframes.push({id:`${l}_k0`,frame:0,value:r}),(c.keyframes.length===0||c.keyframes[c.keyframes.length-1].frame<a)&&c.keyframes.push({id:`${l}_k_${a}`,frame:a,value:r}),c.keyframes.push({id:`${l}_k_${s}`,frame:s,value:n,...u&&{ease:u}}),c.keyframes.sort((m,d)=>m.frame-d.frame),this}keyframe(t,r,n,i){let a=this.tracks.find(l=>l.prop===t&&(!l.source||l.source.type==="keyframe"));a||(a={id:`${t}_track_${this.tracks.length}`,prop:t,keyframes:[]},this.tracks.push(a));let s=Ni(i),u={id:`k_${a.keyframes.length}_f${r}`,frame:r,value:n,...s&&{ease:s}},c=a.keyframes.findIndex(l=>l.frame===r);return c>=0?a.keyframes[c]=u:a.keyframes.push(u),a.keyframes.sort((l,m)=>l.frame-m.frame),this}keys(t,r){for(let[n,i,a]of r)this.keyframe(t,Math.round(n),i,a);return this}fadeIn(t=0,r=20,n="power2.out"){return this.fromTo("opacity",0,1,{from:t,to:r,ease:n})}fadeOut(t,r,n="power2.in"){return this.fromTo("opacity",1,0,{from:t,to:r,ease:n})}slideInY(t,r,n=0,i=24,a="power2.out"){return this.fromTo("y",t,r,{from:n,to:i,ease:a})}slideInX(t,r,n=0,i=24,a="power2.out"){return this.fromTo("x",t,r,{from:n,to:i,ease:a})}kineticSweep(t=-1,r=1,n=0,i=24,a="power2.out"){return this.fromTo("offset",t,r,{from:n,to:i,ease:a})}typewriter(t=0,r=30,n="linear"){return this.fromTo("text",0,1,{from:t,to:r,ease:n})}letterSpacing(t,r,n=0,i=24,a="power2.out"){return this.fromTo("letterSpacing",t,r,{from:n,to:i,ease:a})}firstMargin(t,r,n={}){return this.fromTo("firstMargin",t,r,n)}lastMargin(t,r,n={}){return this.fromTo("lastMargin",t,r,n)}baselineShift(t,r,n={}){return this.fromTo("baselineShift",t,r,n)}rotateX(t,r,n={}){return this.fromTo("rotateX",t,r,n)}rotateY(t,r,n={}){return this.fromTo("rotateY",t,r,n)}rotateZ(t,r,n={}){return this.fromTo("rotateZ",t,r,n)}perspective(t,r,n={}){return this.fromTo("perspective",t,r,n)}translateZ(t,r,n={}){return this.fromTo("translateZ",t,r,n)}tilt3D(t){let r=t.start??t.fromFrame,n=t.end??t.toFrame,i=t.ease,a=t.from??{},s=t.to,u=["rotateX","rotateY","rotateZ","translateZ","perspective"];for(let c of u){let l=s[c];if(l!==void 0){let m=a[c]??0;this.fromTo(c,m,l,{from:r,to:n,fromFrame:r,toFrame:n,ease:i})}}return this}signal(t,r,n={}){let{handleId:i,inline:a}=_n(r),s=`${t}_sig_${i}_${this.tracks.length}`,u={type:"signal",inputHandleId:i,multiplier:n.multiplier??1,offset:n.offset??0,smoothingWindowFrames:n.smoothing??0,signalMode:n.mode??"continuous",threshold:n.threshold??.15,accumulateThreshold:n.threshold??.15,debounceFrames:n.debounceFrames??2,channel:n.channel??"primary"};return a&&In(u,a),this.tracks.push({id:s,prop:t,source:u,keyframes:[]}),this}colorSignal(t,r,n){let{handleId:i,inline:a}=_n(r),s=`${t}_colorSig_${i}_${this.tracks.length}`,u={type:"signal",inputHandleId:i,multiplier:1,offset:0,smoothingWindowFrames:n.smoothing??0,colorMode:n.colorMode??"interpolate",colorA:n.colorA,colorB:n.colorB,colorThreshold:n.threshold,channel:"primary"};return a&&In(u,a),this.tracks.push({id:s,prop:t,source:u,keyframes:[]}),this}wiggle(t,r={}){let n=`${t}_wiggle_${this.tracks.length}`,i={type:"wiggle",frequency:r.frequency??2,amplitude:r.amplitude??20,octaves:r.octaves??1,seed:r.seed??1234};return this.tracks.push({id:n,prop:t,source:i,keyframes:[]}),this}spring(t,r={}){let n=`${t}_spring_${this.tracks.length}`,i={type:"springOvershoot",damping:r.damping??12,stiffness:r.stiffness??180,mass:r.mass??1};return this.tracks.push({id:n,prop:t,source:i,keyframes:[]}),this}followPath(t,r={}){let n=r.start??r.fromFrame??0,i=r.end??r.toFrame??60,a=Math.max(1,i-n),s=r.samples??Math.max(8,Math.min(60,Math.round(a/2))),u=t.totalLength??1,c=r.fromProgress??0,l=r.toProgress??1;r.fromDistance!==void 0&&u>0&&(c=r.fromDistance/u),r.toDistance!==void 0&&u>0&&(l=r.toDistance/u);let m=r.autoOrient??!0,d=r.banking??0,p=r.pitchOffset??0,f=r.yawOffset??0,y=r.rollOffset??0,g=!1,b=!1,P=!1,N=[];for(let M=0;M<=s;M++){let k=M/s,A=Vo(r.ease,k),v=c+A*(l-c),R=Math.round(n+k*a),G=[0,0,0],Z=[1,0,0],te=[0,0,0];if(typeof t.getFrameAt=="function"){let S=t.getFrameAt(v);G=S.position,Z=S.tangent,te=S.rotation??[0,0,0]}else{let S=t.getPointAt(v);G=S.position,S.tangent&&(Z=S.tangent);let W=Math.asin(Math.max(-1,Math.min(1,-Z[1])))*(180/Math.PI),H=Math.atan2(Z[0],Z[2])*(180/Math.PI),_=Math.atan2(Z[1],Z[0])*(180/Math.PI);te=[W,H,_]}let ae=te[0]+p,E=te[1]+f,w=(Math.abs(Z[2])<1e-4?Math.atan2(Z[1],Z[0])*(180/Math.PI):te[2])+y;if(d!==0){let S=Math.min(1,v+.02),W=Math.max(0,v-.02),H=t.getPointAt(S),_=t.getPointAt(W),I=H.tangent??[1,0,0],re=_.tangent??[1,0,0],le=Math.atan2(I[0],I[2]),be=Math.atan2(re[0],re[2]),de=le-be;w-=de*d*57.2958}Math.abs(G[2])>1e-4&&(g=!0),Math.abs(ae)>1e-4&&(b=!0),Math.abs(E)>1e-4&&(P=!0),N.push({f:R,x:G[0],y:G[1],z:G[2],rx:ae,ry:E,rz:w})}for(let M of N)this.keyframe("x",M.f,M.x),this.keyframe("y",M.f,M.y),g&&this.keyframe("z",M.f,M.z),m&&(this.keyframe("rotateZ",M.f,M.rz),b&&this.keyframe("rotateX",M.f,M.rx),P&&this.keyframe("rotateY",M.f,M.ry));return this}applyTo(t){return t.animation=this.toSpec(),t}merge(...t){return this.tracks=Yr([...this.tracks,...t.flatMap(r=>r.tracks)]),this}static merge(...t){return new e().merge(...t)}toSpec(){return{tracks:this.tracks}}toJSON(){return this.toSpec()}},Ai=class e extends ue{static camera(){return new e}dolly(t,r,n={}){if(typeof t=="object"){let i=t,a=i.start??i.fromFrame??0,s=i.end??i.toFrame??0;return this.fromTo("cameraZ",i.fromDistance,i.toDistance,{from:a,to:s,ease:i.ease})}return this.fromTo("cameraZ",t,r??t,n)}orbit(t){let r=t.start??t.fromFrame??0,n=t.end??t.toFrame??0;return t.azimuth&&this.fromTo("orbitAzimuth",t.azimuth.from??0,t.azimuth.to,{from:r,to:n,ease:t.ease}),t.elevation&&this.fromTo("orbitElevation",t.elevation.from??0,t.elevation.to,{from:r,to:n,ease:t.ease}),t.radius&&this.fromTo("orbitRadius",t.radius.from??1500,t.radius.to,{from:r,to:n,ease:t.ease}),this}truck(t,r,n={}){return this.fromTo("cameraX",t,r,n)}pedestal(t,r,n={}){return this.fromTo("cameraY",t,r,n)}pan(t,r,n={}){return this.fromTo("cameraYaw",t,r,n)}tilt(t,r,n={}){return this.fromTo("cameraPitch",t,r,n)}roll(t,r,n={}){return this.fromTo("cameraRoll",t,r,n)}rackFocus(t){let r=t.start??t.fromFrame??0,n=t.end??t.toFrame??0;return this.fromTo("focusDistance",t.fromDistance,t.toDistance,{from:r,to:n,ease:t.ease??"power2.inOut"}),t.toFStop!==void 0&&this.fromTo("fStop",t.fromFStop??2.8,t.toFStop,{from:r,to:n,ease:t.ease??"power2.inOut"}),this}handheld(t){let r=t.start??t.fromFrame??0,n=t.end??t.toFrame??0;return this.fromTo("shakeTranslation",0,t.translationAmplitude,{from:r,to:n}),this.fromTo("shakeRotation",0,t.rotationAmplitude,{from:r,to:n}),this}followPath3D(t,r={}){let n=r.start??r.fromFrame??0,i=r.end??r.toFrame??60,a=Math.max(1,i-n),s=r.samples??Math.max(8,Math.min(60,Math.round(a/2))),u=r.mode??(r.target?"lookAtTarget":"leadTarget"),c=r.fromProgress??0,l=r.toProgress??1,m=r.lookAhead??.05;for(let d=0;d<=s;d++){let p=d/s,f=Vo(r.ease,p),y=c+f*(l-c),g=Math.round(n+p*a),b=[0,0,0],P=[0,0,0];if(typeof t.getFrameAt=="function"){let N=t.getFrameAt(y);b=N.position,P=N.rotation??[0,0,0]}else b=t.getPointAt(y).position;if(this.keyframe("cameraX",g,b[0]),this.keyframe("cameraY",g,b[1]),this.keyframe("cameraZ",g,b[2]),u==="lookAtTarget"){let N=r.target??[b[0],b[1],0];this.keyframe("targetX",g,N[0]),this.keyframe("targetY",g,N[1]),this.keyframe("targetZ",g,N[2])}else if(u==="leadTarget"){let N=Math.min(1,y+m),M=t.getPointAt(N);this.keyframe("targetX",g,M.position[0]),this.keyframe("targetY",g,M.position[1]),this.keyframe("targetZ",g,M.position[2])}else u==="orientAlongPath"&&(this.keyframe("cameraPitch",g,P[0]),this.keyframe("cameraYaw",g,P[1]),this.keyframe("cameraRoll",g,P[2]))}return this}};h();var Bd=["background","fill","fillColor","strokeColor","borderColor","gradientEndColor","emissive","color"],Wo=3;function Yo(e){return e.animation?.tracks??[]}var Ho=(e,t)=>Yo(e).some(r=>t.includes(r.prop)),Ed=new Set(["box","flex","block","group"]);function Xo(e){if(e.kind==="text"||e.kind==="light"||e.kind==="camera")return!1;if(!Ed.has(String(e.kind)))return!0;let t=e.background;return typeof t=="string"&&t!==""&&t!=="transparent"?!0:(e.children??[]).some(Xo)}var Ud=e=>[...e].sort((t,r)=>(Number(t.zIndex)||0)-(Number(r.zIndex)||0));function Xr(e){if(typeof e!="string"||e.includes("gradient("))return null;let t=Ln(e);return t&&t[3]>.99?e:null}function Oi(e){let t=[],r=(f,y,g,b)=>t.push({severity:f,code:y,message:g,...b&&{layerId:b}}),n=e.width,i=e.height,a=!1,s=[],u=!1,c=[],l=[],m=(f,y,g)=>{let b=String(f.id??"?");for(let A of Bd){let v=f[A];typeof v!="string"||v===""||v==="transparent"||(v.includes("gradient(")?Za(v)||r("error","invalid_gradient",`\`${A}\` on '${b}' is not a gradient this renderer reads: ${v}. It draws nothing.`,b):Ln(v)||r("warning","unknown_color",`\`${A}: "${v}"\` on '${b}' is not a color (hex, rgb(), hsl(), oklch() or a CSS name). It draws transparent.`,b))}if(f.kind==="light"){let A=f.lightType??"directional";A==="environment"&&(a=!0),A==="ambient"&&s.push(b),f.castShadow&&(A==="directional"||A==="spot"?l.push(b):r("warning","shadow_unsupported_light",`'${b}' is a ${String(A)} light: only directional and spot lights cast shadows.`,b));return}if(f.kind==="camera")return;if(f.kind==="media"){let A=f.inputHandleId;typeof A=="string"&&(f.dataType??"Video")==="Image"&&(/\.(json|lottie)(\?.*)?$/i.test(A)?r("error","unsupported_image_format",`'${b}' is an image layer with source '${A}', which is a Lottie vector animation. Use Layer.lottie() instead.`,b):/\.(mp4|mov|webm|mkv)(\?.*)?$/i.test(A)?r("error","unsupported_image_format",`'${b}' is an image layer with video source '${A}'. Use Layer.video() instead.`,b):/\.(mp3|wav|ogg|m4a|aac)(\?.*)?$/i.test(A)&&r("error","unsupported_image_format",`'${b}' is an image layer with audio source '${A}'. Use Layer.audio() instead.`,b))}let P=!!f.is3D||typeof f.z=="number"&&f.z!==0;if((P||f.kind==="model3d")&&(u=!0),(f.roughness!==void 0||f.metallic!==void 0)&&c.push(b),f.kind==="text"&&y&&!Ho(f,["fill","color"])){let A=Xr(f.fill??f.color),v=Xr(f.background)??y;if(A){let R=Fn.contrast(A,v);R<Wo&&r("warning","low_contrast_text",`Text '${b}' (${A}) on ${v} has contrast ${R.toFixed(2)}:1 (aim for \u2265 ${Wo}; ${Fn.readableOn(v)} reads well).`,b)}}if(g&&!P&&f.position==="absolute"&&typeof f.x=="number"&&typeof f.y=="number"&&typeof f.width=="number"&&typeof f.height=="number"&&!Ho(f,["x","y","translateX","translateY","scale","rotation"])){let{x:A,y:v,width:R,height:G}=f;(A+R<=0||v+G<=0||A>=n||v>=i)&&r("warning","offscreen_layer",`'${b}' sits entirely outside the ${n}\xD7${i} canvas (x ${A}, y ${v}) and never moves in.`,b)}for(let A of Yo(f)){let v=A.keyframes??[];(!A.source||A.source.type==="keyframe")&&v.length>=2&&v.every(R=>JSON.stringify(R.value)===JSON.stringify(v[0].value))&&r("info","static_track",`'${b}' animates \`${A.prop}\` but every keyframe holds ${JSON.stringify(v[0].value)}.`,b)}let N=Xr(f.background)??y,M=f.children,k=f.x===0&&f.y===0&&f.width===n&&f.height===i;d(M??[],N,g&&k)},d=(f,y,g)=>{let b=y;for(let P of Ud(f))m(P,b,g),Xo(P)&&(b=null)},p=Xr(e.backgroundColor)??null;return d(e.layout,p,!0),a&&s.length>0&&r("info","ambient_with_environment",`The environment already fills shadows with light; ambient light ${s.join(", ")} adds flat light on top (remove it, or lower it, if the scene looks washed out).`),l.length>1&&r("info","multiple_shadow_lights",`${l.length} lights cast shadows (${l.join(", ")}); only the first one does.`),u&&c.length>0&&!a&&r("info","pbr_without_environment",`roughness / metallic are set (${c.slice(0,3).join(", ")}${c.length>3?", \u2026":""}) but the scene has no Layer.environment(): add one for physically based shading, reflections and tone mapping.`),t}h();var qo=o.union([o.number().min(0),o.enum(["auto","fit","fill"]),o.custom()]),_d=o.enum(["rect","circle","ellipse","polygon","star","arrow","path"]),Id=o.enum(["x","y","scale","rotation","opacity","width","height","volume","hidden","muted","gap","padding","borderRadius","fontSize","text","fill","color","letterSpacing","trimStart","trimEnd","trimOffset","strokeWidth","strokeDashOffset","cornerRadius","starInnerRadiusRatio","fillColor","strokeColor","borderColor","borderWidth","motionBlurShutter","rangeStart","rangeEnd","offset","animatorRangeStart","animatorRangeEnd","animatorOffset","firstMargin","lastMargin","baselineShift","rotateX","rotateY","rotateZ","perspective","translateZ","perspectiveOriginX","perspectiveOriginY","cameraX","cameraY","cameraZ","targetX","targetY","targetZ","cameraPitch","cameraYaw","cameraRoll","cameraFov","cameraZoom","focalLength","focusDistance","fStop","maxBlurRadius","shakeTranslation","shakeRotation","orbitRadius","orbitAzimuth","orbitElevation","z","scaleZ","intensity","angle","radius","penumbra","decay","shininess","roughness","specularIntensity","ambientIntensity","metallic","ior","dispersion","transmission","fresnelPower","envIntensity","animationProgress","animationTime","animationSpeed","wireframe","scaleX","scaleY","emissive","emissiveIntensity","exposure"]),Di=o.enum(["alpha","alpha-inverted","luma","luma-inverted"]),Zo=o.enum(["lit","unlit","toon","glass","acrylic","frosted","metallic"]);var Gd=o.enum(["interpolate","hueRotate","threshold"]),zd=o.object({name:o.enum(["none","power1","power2","power3","sine","circ","expo","back","elastic","bounce","spring","cubic","hold"]),dir:o.enum(["in","out","inOut"]),params:o.array(o.number()).optional()}).strict().superRefine((e,t)=>{if(e.name==="spring"&&e.params){let[r,n,i]=e.params;r!==void 0&&r<=0&&t.addIssue({code:o.ZodIssueCode.custom,message:"Spring damping must be greater than 0.",path:["params",0]}),n!==void 0&&n<=0&&t.addIssue({code:o.ZodIssueCode.custom,message:"Spring stiffness must be greater than 0.",path:["params",1]}),i!==void 0&&i<=0&&t.addIssue({code:o.ZodIssueCode.custom,message:"Spring mass must be greater than 0.",path:["params",2]})}}),$d=o.object({id:o.string().min(1),frame:o.number().int().min(0),value:o.union([o.number(),o.boolean(),o.string()]),ease:zd.optional(),presetGroupId:o.string().optional(),presetType:o.string().optional(),spatialTangentIn:o.object({x:o.number(),y:o.number()}).optional(),spatialTangentOut:o.object({x:o.number(),y:o.number()}).optional()}).strict(),jd=o.enum(["continuous","accumulate"]),Vd=o.discriminatedUnion("type",[o.object({type:o.literal("keyframe")}),o.object({type:o.literal("signal"),inputHandleId:o.string(),multiplier:o.number().default(1),offset:o.number().default(0),smoothingWindowFrames:o.number().min(0).default(0),colorMode:Gd.optional(),colorA:o.string().optional(),colorB:o.string().optional(),colorThreshold:o.number().optional(),signalMode:jd.optional(),threshold:o.number().optional(),accumulateThreshold:o.number().optional(),debounceFrames:o.number().int().min(0).optional(),channel:o.string().optional()}),o.object({type:o.literal("wiggle"),frequency:o.number().default(2),amplitude:o.number().default(50),octaves:o.number().int().min(1).max(4).default(1),seed:o.number().default(1234)}),o.object({type:o.literal("springOvershoot"),damping:o.number().default(12),stiffness:o.number().default(180),mass:o.number().default(1)})]),Wd=o.preprocess(e=>{if(!e||typeof e!="object")return e;let t=e;if(t.type==="signal"){let r=typeof t.threshold=="number"?t.threshold:typeof t.accumulateThreshold=="number"?t.accumulateThreshold:.15;return{type:"signal",inputHandleId:t.inputHandleId??t.handleId,multiplier:t.multiplier??t.amplitude??1,offset:t.offset??0,smoothingWindowFrames:t.smoothingWindowFrames??t.smoothing??0,colorMode:t.colorMode,colorA:t.colorA,colorB:t.colorB,colorThreshold:t.colorThreshold,signalMode:t.signalMode??"continuous",threshold:r,accumulateThreshold:r,debounceFrames:t.debounceFrames??2,channel:typeof t.channel=="string"?t.channel:"primary"}}return e},Vd),Hd=(e,t)=>{if(!e?.tracks)return;let r=0;for(let n=0;n<e.tracks.length;n++){let i=e.tracks[n],a=i.keyframes??[];r+=a.length,(!i.source||i.source.type==="keyframe")&&a.length<1&&t.addIssue({code:o.ZodIssueCode.custom,message:`Track for property '${i.prop}' must have at least 1 keyframe.`,path:["tracks",n,"keyframes"]});let u=i.prop==="hidden"||i.prop==="muted",c=i.prop==="fillColor"||i.prop==="strokeColor"||i.prop==="fill"||i.prop==="color";for(let l=0;l<a.length;l++){let m=a[l];if(l>0){let p=a[l-1];m.frame<p.frame?t.addIssue({code:o.ZodIssueCode.custom,message:"Keyframes must be sorted in ascending order of frame.",path:["tracks",n,"keyframes",l]}):m.frame===p.frame&&t.addIssue({code:o.ZodIssueCode.custom,message:"Duplicate keyframes at the same frame are not allowed.",path:["tracks",n,"keyframes",l]})}let d=typeof m.value;u?d!=="boolean"&&t.addIssue({code:o.ZodIssueCode.custom,message:`Keyframe value for discrete property '${i.prop}' must be a boolean.`,path:["tracks",n,"keyframes",l,"value"]}):c?d!=="string"&&t.addIssue({code:o.ZodIssueCode.custom,message:`Keyframe value for color property '${i.prop}' must be a string.`,path:["tracks",n,"keyframes",l,"value"]}):d!=="number"||Number.isNaN(m.value)||!Number.isFinite(m.value)?t.addIssue({code:o.ZodIssueCode.custom,message:`Keyframe value for numeric property '${i.prop}' must be a finite number.`,path:["tracks",n,"keyframes",l,"value"]}):(i.prop==="volume"||i.prop==="trimStart"||i.prop==="trimEnd")&&(m.value<0||m.value>1)&&t.addIssue({code:o.ZodIssueCode.custom,message:`Keyframe value for property '${i.prop}' must be between 0 and 1.`,path:["tracks",n,"keyframes",l,"value"]})}}r>128&&t.addIssue({code:o.ZodIssueCode.custom,message:`Total keyframes across all tracks (${r}) exceeds the limit of 128.`,path:["tracks"]})},Yd=o.object({id:o.string().min(1),prop:Id,source:Wd.optional(),keyframes:o.array($d).default([]),repeat:o.number().int().optional(),yoyo:o.boolean().optional(),durationFrames:o.number().int().min(1).optional()}).strict(),Li=o.object({tracks:o.array(Yd).max(24)}).strict().superRefine(Hd),mt={id:o.string().min(1),inputHandleId:o.string().optional(),position:o.enum(["relative","absolute"]).default("relative"),x:o.union([o.number(),o.custom()]).default(0),y:o.union([o.number(),o.custom()]).default(0),width:qo.optional(),height:qo.optional(),grow:o.number().min(0).optional(),flexShrink:o.number().min(0).optional(),flexBasis:o.number().min(0).optional(),alignSelf:o.enum(["auto","start","center","end","stretch","baseline"]).optional(),aspectRatio:o.number().positive().optional(),zIndex:o.number().int().default(0),hidden:o.boolean().default(!1),opacity:o.number().min(0).max(1).default(1),blendMode:o.string().optional(),effects:o.array(o.unknown()).optional(),rotation:o.number().default(0),scale:o.number().min(0).default(1),anchorX:o.number().min(0).max(1).default(.5),anchorY:o.number().min(0).max(1).default(.5),startFrame:o.number().int().min(0).default(0),durationFrames:o.number().int().min(1).optional(),motionBlurShutter:o.number().min(0).max(360).optional(),rotateX:o.number().default(0),rotateY:o.number().default(0),rotateZ:o.number().default(0),perspective:o.number().min(0).default(0),perspectiveOriginX:o.number().default(.5),perspectiveOriginY:o.number().default(.5),translateZ:o.number().default(0),backfaceVisibility:o.enum(["visible","hidden"]).default("visible"),transformStyle:o.enum(["flat","preserve-3d"]).default("flat"),is3D:o.boolean().default(!1),z:o.union([o.number(),o.custom()]).default(0),scaleZ:o.number().default(1),twoSided:o.boolean().default(!0),material:Zo.default("lit"),ior:o.number().min(1).max(3).optional(),roughness:o.number().min(0).max(1).optional(),shininess:o.number().min(1).max(512).default(32),specularIntensity:o.number().min(0).default(.5),metallic:o.number().min(0).max(1).optional(),ambientIntensity:o.number().min(0).default(1),transmission:o.number().min(0).max(1).optional(),dispersion:o.number().min(0).max(1).optional(),fresnelPower:o.number().min(1).max(10).optional(),envIntensity:o.number().min(0).max(10).optional(),emissive:se.optional(),emissiveIntensity:o.number().min(0).optional(),castShadow:o.boolean().optional(),matte:o.object({node:o.custom(e=>typeof e=="object"&&e!==null),mode:Di.optional()}).optional(),matteId:o.string().optional(),matteOf:o.string().optional(),matteMode:Di.optional(),animation:Li.default({tracks:[]}),vision:o.unknown().optional(),relighting:o.unknown().optional()},Ko=o.object({color:se,offset:o.object({x:o.number(),y:o.number()}).optional(),blurRadius:o.number().min(0).optional()}).strict(),Xd=o.object({x:o.number().optional(),y:o.number().optional(),scale:o.number().optional(),scaleX:o.number().optional(),scaleY:o.number().optional(),rotation:o.number().optional(),rotationX:o.number().optional(),rotationY:o.number().optional(),opacity:o.number().optional(),blur:o.number().optional(),color:o.string().optional()}).strict(),Jo=o.object({id:o.string(),unit:o.enum(["character","word","line"]).default("character"),rangeStart:o.number().min(0).max(1).default(0),rangeEnd:o.number().min(0).max(1).default(1),offset:o.number().min(-1).max(1).default(0),easing:o.string().default("power2.out"),transform:Xd.optional()}),qd={waveRise(e={}){return{id:e.id??"wave-rise",unit:e.unit??"character",rangeStart:e.rangeStart??0,rangeEnd:e.rangeEnd??1,offset:e.offset??-1,easing:e.easing??"power2.out",transform:{y:e.y??40,rotationX:e.rotationX??45,opacity:e.opacity??0,blur:e.blur??0}}},wordPop(e={}){return{id:e.id??"word-pop",unit:"word",rangeStart:0,rangeEnd:1,offset:-1,easing:e.easing??"back.out(1.6)",transform:{scale:e.scale??0,y:e.y??20,opacity:0}}},blurIn(e={}){return{id:e.id??"blur-in",unit:e.unit??"character",rangeStart:0,rangeEnd:1,offset:-1,easing:e.easing??"power3.out",transform:{blur:e.blur??16,y:e.y??20,opacity:e.opacity??0}}},flip3D(e={}){return{id:e.id??"flip-3d",unit:e.unit??"character",rangeStart:0,rangeEnd:1,offset:-1,easing:e.easing??"back.out(1.4)",transform:{rotationX:e.rotationX??90,opacity:0}}},colorSweep(e){return{id:e.id??"color-sweep",unit:e.unit??"character",rangeStart:0,rangeEnd:.5,offset:-.5,easing:e.easing??"power2.inOut",transform:{color:e.color}}}},Zd=o.object({focalLength:o.number().min(5).max(500).default(50),fov:o.number().min(5).max(160).optional(),sensorWidth:o.number().default(36),near:o.number().min(.1).default(1),far:o.number().min(10).default(5e4),zoom:o.number().min(.01).default(1)}).strict(),Kd=o.object({enabled:o.boolean().default(!1),focusDistance:o.number().min(1).default(1e3),fStop:o.number().min(.5).max(64).default(2.8),maxBlurRadius:o.number().min(0).max(128).default(32),apertureBlades:o.number().int().min(0).max(12).default(0),anamorphicRatio:o.number().min(.5).max(3).default(1)}).strict(),Jd=o.object({translationAmplitude:o.number().min(0).default(0),rotationAmplitude:o.number().min(0).default(0),frequency:o.number().min(.1).max(60).default(2.5),octaves:o.number().int().min(1).max(6).default(3),seed:o.number().default(42)}).strict(),Qo=o.object({id:o.string().min(1),kind:o.literal("camera"),mode:o.enum(["lookAt","free","orbit"]).default("lookAt"),x:o.number().optional(),y:o.number().optional(),z:o.number().optional(),targetX:o.number().optional(),targetY:o.number().optional(),targetZ:o.number().optional(),pitch:o.number().default(0),yaw:o.number().default(0),roll:o.number().default(0),lens:Zd.optional(),dof:Kd.optional(),shake:Jd.optional(),startFrame:o.number().int().min(0).default(0),durationFrames:o.number().int().min(1).optional(),animation:Li.default({tracks:[]})}).strict(),es=o.enum(["ambient","directional","point","spot","environment"]),ts=o.enum(["studio","soft","sunset","night","neutral"]),rs=o.enum(["neutral","agx","aces","none"]),ns=o.object({color:se,start:o.number().min(0),end:o.number().min(0),opacity:o.number().min(0).max(1).optional()}).strict(),is=o.object({intensity:o.number().min(0).max(10).optional(),threshold:o.number().min(0).max(16).optional(),knee:o.number().min(0).max(1).optional(),radius:o.number().min(1).max(8).optional()}).strict(),as=o.object({id:o.string().min(1),kind:o.literal("light"),lightType:es.default("directional"),color:se.default("#ffffff"),intensity:o.number().default(1),x:o.number().optional(),y:o.number().optional(),z:o.number().optional(),targetX:o.number().optional(),targetY:o.number().optional(),targetZ:o.number().optional(),direction:o.tuple([o.number(),o.number(),o.number()]).optional(),radius:o.number().min(0).default(1e3),decay:o.number().min(0).default(2),angle:o.number().min(0).max(180).default(45),penumbra:o.number().min(0).max(1).default(.2),castShadow:o.boolean().optional(),shadowSoftness:o.number().min(0).max(64).optional(),shadowDarkness:o.number().min(0).max(1).optional(),shadowMapSize:o.number().int().min(256).max(8192).optional(),preset:ts.optional(),top:se.optional(),horizon:se.optional(),bottom:se.optional(),softboxes:o.number().min(0).optional(),rotation:o.number().optional(),exposure:o.number().min(-16).max(16).optional(),toneMapping:rs.optional(),fog:ns.optional(),bloom:o.union([o.boolean(),is]).optional(),startFrame:o.number().int().min(0).default(0),durationFrames:o.number().int().min(1).optional(),animation:Li.default({tracks:[]})}).strict(),Fi=()=>o.array(o.lazy(()=>Ri)),os=o.object({...mt,kind:o.literal("flex"),dir:o.enum(["row","column"]).default("row"),gap:o.number().min(0).default(0),padding:o.number().min(0).default(0),justify:o.enum(["start","center","end","space-between","space-around"]).default("start"),align:o.enum(["start","center","end","stretch"]).default("start"),wrap:o.boolean().default(!1),staggerFrames:o.number().min(0).default(0),staggerDirection:o.enum(["forward","reverse","center-out"]).default("forward"),overflow:o.enum(["visible","hidden"]).default("hidden"),background:se.optional(),borderRadius:o.number().min(0).optional(),borderColor:se.optional(),borderWidth:o.number().min(0).optional(),strokeAlign:o.enum(["inside","center","outside"]).optional(),strokeRadius:o.number().min(0).optional(),children:Fi().optional()}).strict(),Qd=o.object({...mt,kind:o.literal("block"),gap:o.number().min(0).default(0),padding:o.number().min(0).default(0),align:o.enum(["start","center","end","stretch"]).default("start"),staggerFrames:o.number().min(0).default(0),staggerDirection:o.enum(["forward","reverse","center-out"]).default("forward"),overflow:o.enum(["visible","hidden"]).default("hidden"),background:se.optional(),borderRadius:o.number().min(0).optional(),borderColor:se.optional(),borderWidth:o.number().min(0).optional(),strokeAlign:o.enum(["inside","center","outside"]).optional(),strokeRadius:o.number().min(0).optional(),children:Fi().optional()}).strict(),ss=o.object({...mt,kind:o.literal("box"),background:se,borderRadius:o.number().min(0).optional(),padding:o.number().min(0).default(0),staggerFrames:o.number().min(0).default(0),staggerDirection:o.enum(["forward","reverse","center-out"]).default("forward"),overflow:o.enum(["visible","hidden"]).default("hidden"),borderColor:se.optional(),borderWidth:o.number().min(0).optional(),strokeAlign:o.enum(["inside","center","outside"]).optional(),strokeRadius:o.number().min(0).optional(),children:Fi().optional()}).strict(),us=o.object({background:se,borderRadius:o.number().min(0).optional(),paddingX:o.number().min(0).optional(),paddingY:o.number().min(0).optional()}).strict(),ls=o.object({text:o.union([o.string(),o.custom(e=>!!(e&&typeof e=="object"&&"get"in e))]),fontFamily:o.string().optional(),fontSize:o.union([o.number().positive(),o.custom(e=>!!(e&&typeof e=="object"&&"get"in e))]).optional(),fontWeight:o.union([o.number().int(),o.string()]).optional(),fontStyle:o.enum(["normal","italic"]).optional(),fill:o.union([se,o.custom(e=>!!(e&&typeof e=="object"&&"get"in e))]).optional(),letterSpacing:o.number().optional(),baselineShift:o.number().optional(),opacity:o.union([o.number().min(0).max(1),o.custom(e=>!!(e&&typeof e=="object"&&"get"in e))]).optional(),mark:us.optional()}).strict(),em={text:o.string().default(""),spans:o.array(ls).optional(),fontFamily:o.string().optional(),fontSize:o.number().positive().optional(),fontWeight:o.union([o.number().int(),o.string()]).optional(),fontStyle:o.string().optional(),fill:se,align:o.enum(["start","center","end"]).optional(),direction:o.enum(["ltr","rtl","auto"]).optional(),verticalAlign:o.enum(["top","middle","bottom"]).optional(),lineHeight:o.number().positive().optional(),letterSpacing:o.number().optional(),background:se,borderRadius:o.number().min(0).optional(),padding:o.number().min(0).optional(),stroke:se,strokeWidth:o.number().min(0).optional(),strokeAlign:o.enum(["inside","center","outside"]).optional(),textShadow:o.string().optional(),shadows:o.array(Ko).optional(),pathOptions:Ft.optional(),typewriter:zr.optional(),marquee:vi.optional(),animators:o.array(o.union([Jo,Rt,wi])).optional()},cs=o.object({...mt,...em,kind:o.literal("text")}).strict(),ds=o.object({...mt,kind:o.literal("media"),inputHandleId:o.string().min(1),dataType:o.string().optional(),fit:o.enum(["cover","contain","fill","none"]).default("contain"),dpr:o.number().min(1).max(4).optional(),borderRadius:o.number().min(0).optional(),borderColor:se.optional(),borderWidth:o.number().min(0).optional(),strokeAlign:o.enum(["inside","center","outside"]).optional(),strokeRadius:o.number().min(0).optional(),volume:o.number().min(0).max(1).default(1),muted:o.boolean().default(!1),trimStartSec:o.number().min(0).optional(),fontFamily:o.string().optional(),fontSize:o.number().positive().optional(),fontWeight:o.union([o.number().int(),o.string()]).optional(),fontStyle:o.string().optional(),fill:se,align:o.enum(["start","center","end"]).optional(),direction:o.enum(["ltr","rtl","auto"]).optional(),verticalAlign:o.enum(["top","middle","bottom"]).optional(),lineHeight:o.number().positive().optional(),letterSpacing:o.number().optional(),background:se,padding:o.number().min(0).optional(),stroke:se,strokeWidth:o.number().min(0).optional(),textShadow:o.string().optional(),shadows:o.array(Ko).optional(),maxWidth:o.number().optional()}).strict(),tm={shapeType:_d.default("rect"),borderRadius:o.number().min(0).optional(),radiusTL:o.number().min(0).optional(),radiusTR:o.number().min(0).optional(),radiusBR:o.number().min(0).optional(),radiusBL:o.number().min(0).optional(),polygonSides:o.number().int().min(3).max(64).optional(),starPoints:o.number().int().min(3).max(64).optional(),starInnerRadiusRatio:o.number().min(.01).max(.99).optional(),arrowHeadWidth:o.number().min(0).optional(),arrowHeadLength:o.number().min(0).optional(),arrowShaftWidth:o.number().min(1).optional(),d:o.string().optional(),fillType:o.enum(["solid","linear","radial","none"]).default("solid"),fillColor:se.default("#3b82f6"),gradientEndColor:se.optional(),gradientAngle:o.number().default(0),strokeColor:se.default("#ffffff"),strokeWidth:o.number().min(0).default(0),strokeDashArray:o.string().optional(),strokeDashOffset:o.number().default(0),strokeLineCap:o.enum(["butt","round","square"]).default("round"),strokeLineJoin:o.enum(["miter","round","bevel"]).default("round"),strokeAlign:o.enum(["inside","center","outside"]).optional(),trimStart:o.number().min(0).max(1).default(0),trimEnd:o.number().min(0).max(1).default(1),trimOffset:o.number().default(0)},ms=o.object({...mt,...tm,kind:o.literal("shape")}).strict(),rm=o.object({offset:o.number().min(0).max(1),color:o.string()}),ps=o.object({...mt,kind:o.literal("model3d"),src:o.string().default(""),modelFormat:o.enum(["obj","fbx","gltf","glb","stl","ply","vox","3ds","off","auto"]).default("auto"),modelData:o.unknown().optional(),animationName:o.string().optional(),animationProgress:o.number().min(0).max(1).default(0),animationTime:o.number().min(0).default(0),animationSpeed:o.number().default(1),loop:o.boolean().default(!0),wireframe:o.boolean().default(!1),texture:o.string().optional(),center:o.boolean().optional(),normalizeSize:o.number().optional(),scaleX:o.number().default(1),scaleY:o.number().default(1),audioDeform:o.record(o.string(),o.unknown()).optional(),color:se.optional(),colorTint:se.optional(),text3dOptions:o.unknown().optional(),primitive3d:o.unknown().optional()}).strict(),Ri=o.lazy(()=>o.union([os,Qd,ss,cs,ds,ms,Qo,as,ps])),nm=o.object({width:o.number().int().min(1).max(4096),height:o.number().int().min(1).max(4096),backgroundColor:se,volume:o.number().min(0).max(1).default(1),fps:o.number().int().min(1).max(120).default(24),mode:o.enum(["Video","Image"]).default("Video"),antialias3d:o.boolean().optional(),layout:o.array(Ri).default([]),fonts:o.array(o.string()).optional(),signals:o.record(o.string(),o.unknown()).optional(),effects:o.array(o.unknown()).optional(),vision:o.unknown().optional(),onRequestFrame:o.custom().optional()}).strict();h();var fs=o.enum(["cut","carrierMatchCut","cameraWhip","focusPullDissolve","irisAperture","pushDirectional"]),hs=o.object({sourceLayerId:o.string(),targetLayerId:o.string(),mode:o.enum(["exact","preserveVelocity","morph"]).default("preserveVelocity"),blendFrames:o.number().int().min(0).max(30).default(0)}).strict(),im=o.object({id:o.string(),chapter:o.enum(["hook","tension","solution","feature_spotlight","outro","custom"]).default("custom"),durationMs:o.number().positive().optional(),durationFrames:o.number().int().positive().optional(),transitionOut:o.object({type:fs.default("cut"),durationFrames:o.number().int().min(0).default(0),carrier:hs.optional(),whipDirection:o.enum(["left","right","up","down"]).default("left")}).default({type:"cut",durationFrames:0,whipDirection:"left"})}).passthrough();function am(e,t){return{x:e.x,y:e.y,scale:e.scale,vx:e.vx,vy:e.vy,...t}}function gs(e,t=60){let r=0,n=[];for(let s of e){let u=r,c=s.durationFrames??(s.durationMs?Math.round(s.durationMs/1e3*t):60);n.push({sceneId:s.id,startFrame:u,durationFrames:c});let l=s.transitionOverlap??s.transitionOut?.durationFrames??0;r+=Math.max(1,c-l)}let i=r,a=Math.round(i/t*1e3);return{totalFrames:i,totalDurationMs:a,sceneOffsets:n}}var dr=class e{id;chapter;durationMs;durationFrames;transitionOut;layout;constructor(t){this.id=t.id,this.chapter=t.chapter??"custom",this.durationMs=t.durationMs,this.durationFrames=t.durationFrames,this.transitionOut={type:t.transitionOut?.type??"cut",durationFrames:t.transitionOut?.durationFrames??0,carrier:t.transitionOut?.carrier,whipDirection:t.transitionOut?.whipDirection??"left"},this.layout=t.layout??[]}static create(t){return new e(t)}},Bi=class e{fps;width;height;backgroundColor;fonts;signals;scenes=[];constructor(t={}){if(this.fps=t.fps??60,this.width=t.width??1920,this.height=t.height??1080,this.backgroundColor=t.backgroundColor??"#ffffff",this.fonts=t.fonts,this.signals=t.signals,t.scenes)for(let r of t.scenes)this.addScene(r)}static create(t={}){return new e(t)}addScene(t){let r=t instanceof dr?t:new dr(t);return this.scenes.push(r),this}getScenes(){return this.scenes}calculateTimeline(){return gs(this.scenes,this.fps)}toProgram(){let t=this.calculateTimeline(),r=[];for(let n=0;n<this.scenes.length;n++){let i=this.scenes[n],a=t.sceneOffsets[n];if(a)for(let s of i.layout){let u={...s};u.startFrame=(u.startFrame??0)+a.startFrame,u.durationFrames===void 0&&(u.durationFrames=a.durationFrames),r.push(u)}}return{width:this.width,height:this.height,backgroundColor:this.backgroundColor,fps:this.fps,volume:1,mode:"Video",layout:r,fonts:this.fonts,signals:this.signals}}};h();h();h();h();h();h();function bs(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function pt(e,t){if(!isFinite(e)||e===0)return null;var r=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"),n=e.slice(0,r);return[n.length>1?n[0]+n.slice(2):n,+e.slice(r+1)]}function Ge(e){return e=pt(Math.abs(e)),e?e[1]:NaN}h();function ys(e,t){return function(r,n){for(var i=r.length,a=[],s=0,u=e[0],c=0;i>0&&u>0&&(c+u+1>n&&(u=Math.max(1,n-c)),a.push(r.substring(i-=u,i+u)),!((c+=u+1)>n));)u=e[s=(s+1)%e.length];return a.reverse().join(t)}}h();function xs(e){return function(t){return t.replace(/[0-9]/g,function(r){return e[+r]})}}h();var om=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function et(e){if(!(t=om.exec(e)))throw new Error("invalid format: "+e);var t;return new qr({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}et.prototype=qr.prototype;function qr(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}qr.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};h();function vs(e){e:for(var t=e.length,r=1,n=-1,i;r<t;++r)switch(e[r]){case".":n=i=r;break;case"0":n===0&&(n=r),i=r;break;default:if(!+e[r])break e;n>0&&(n=0);break}return n>0?e.slice(0,n)+e.slice(i+1):e}h();h();var mr;function ws(e,t){var r=pt(e,t);if(!r)return mr=void 0,e.toPrecision(t);var n=r[0],i=r[1],a=i-(mr=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,s=n.length;return a===s?n:a>s?n+new Array(a-s+1).join("0"):a>0?n.slice(0,a)+"."+n.slice(a):"0."+new Array(1-a).join("0")+pt(e,Math.max(0,t+a-1))[0]}h();function Ei(e,t){var r=pt(e,t);if(!r)return e+"";var n=r[0],i=r[1];return i<0?"0."+new Array(-i).join("0")+n:n.length>i+1?n.slice(0,i+1)+"."+n.slice(i+1):n+new Array(i-n.length+2).join("0")}var Ui={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:bs,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>Ei(e*100,t),r:Ei,s:ws,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};h();function _i(e){return e}var Ss=Array.prototype.map,ks=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];function Ts(e){var t=e.grouping===void 0||e.thousands===void 0?_i:ys(Ss.call(e.grouping,Number),e.thousands+""),r=e.currency===void 0?"":e.currency[0]+"",n=e.currency===void 0?"":e.currency[1]+"",i=e.decimal===void 0?".":e.decimal+"",a=e.numerals===void 0?_i:xs(Ss.call(e.numerals,String)),s=e.percent===void 0?"%":e.percent+"",u=e.minus===void 0?"\u2212":e.minus+"",c=e.nan===void 0?"NaN":e.nan+"";function l(d,p){d=et(d);var f=d.fill,y=d.align,g=d.sign,b=d.symbol,P=d.zero,N=d.width,M=d.comma,k=d.precision,A=d.trim,v=d.type;v==="n"?(M=!0,v="g"):Ui[v]||(k===void 0&&(k=12),A=!0,v="g"),(P||f==="0"&&y==="=")&&(P=!0,f="0",y="=");var R=(p&&p.prefix!==void 0?p.prefix:"")+(b==="$"?r:b==="#"&&/[boxX]/.test(v)?"0"+v.toLowerCase():""),G=(b==="$"?n:/[%p]/.test(v)?s:"")+(p&&p.suffix!==void 0?p.suffix:""),Z=Ui[v],te=/[defgprs%]/.test(v);k=k===void 0?6:/[gprs]/.test(v)?Math.max(1,Math.min(21,k)):Math.max(0,Math.min(20,k));function ae(E){var w=R,S=G,W,H,_;if(v==="c")S=Z(E)+S,E="";else{E=+E;var I=E<0||1/E<0;if(E=isNaN(E)?c:Z(Math.abs(E),k),A&&(E=vs(E)),I&&+E==0&&g!=="+"&&(I=!1),w=(I?g==="("?g:u:g==="-"||g==="("?"":g)+w,S=(v==="s"&&!isNaN(E)&&mr!==void 0?ks[8+mr/3]:"")+S+(I&&g==="("?")":""),te){for(W=-1,H=E.length;++W<H;)if(_=E.charCodeAt(W),48>_||_>57){S=(_===46?i+E.slice(W+1):E.slice(W))+S,E=E.slice(0,W);break}}}M&&!P&&(E=t(E,1/0));var re=w.length+E.length+S.length,le=re<N?new Array(N-re+1).join(f):"";switch(M&&P&&(E=t(le+E,le.length?N-S.length:1/0),le=""),y){case"<":E=w+E+S+le;break;case"=":E=w+le+E+S;break;case"^":E=le.slice(0,re=le.length>>1)+w+E+S+le.slice(re);break;default:E=le+w+E+S;break}return a(E)}return ae.toString=function(){return d+""},ae}function m(d,p){var f=Math.max(-8,Math.min(8,Math.floor(Ge(p)/3)))*3,y=Math.pow(10,-f),g=l((d=et(d),d.type="f",d),{suffix:ks[8+f/3]});return function(b){return g(y*b)}}return{format:l,formatPrefix:m}}var Zr,Et,Kr;Ii({thousands:",",grouping:[3],currency:["$",""]});function Ii(e){return Zr=Ts(e),Et=Zr.format,Kr=Zr.formatPrefix,Zr}h();function Gi(e){return Math.max(0,-Ge(Math.abs(e)))}h();function zi(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(Ge(t)/3)))*3-Ge(Math.abs(e)))}h();function $i(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,Ge(t)-Ge(e))+1}h();h();h();h();h();function ft(e,t){return e==null||t==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}h();h();function ji(e,t){return e==null||t==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function ht(e){let t,r,n;e.length!==2?(t=ft,r=(u,c)=>ft(e(u),c),n=(u,c)=>e(u)-c):(t=e===ft||e===ji?e:sm,r=e,n=e);function i(u,c,l=0,m=u.length){if(l<m){if(t(c,c)!==0)return m;do{let d=l+m>>>1;r(u[d],c)<0?l=d+1:m=d}while(l<m)}return l}function a(u,c,l=0,m=u.length){if(l<m){if(t(c,c)!==0)return m;do{let d=l+m>>>1;r(u[d],c)<=0?l=d+1:m=d}while(l<m)}return l}function s(u,c,l=0,m=u.length){let d=i(u,c,l,m-1);return d>l&&n(u[d-1],c)>-n(u[d],c)?d-1:d}return{left:i,center:s,right:a}}function sm(){return 0}h();function Vi(e){return e===null?NaN:+e}var Ps=ht(ft),Ms=Ps.right,um=Ps.left,lm=ht(Vi).center,Wi=Ms;h();var Ut=class extends Map{constructor(t,r=mm){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:r}}),t!=null)for(let[n,i]of t)this.set(n,i)}get(t){return super.get(Cs(this,t))}has(t){return super.has(Cs(this,t))}set(t,r){return super.set(cm(this,t),r)}delete(t){return super.delete(dm(this,t))}};function Cs({_intern:e,_key:t},r){let n=t(r);return e.has(n)?e.get(n):r}function cm({_intern:e,_key:t},r){let n=t(r);return e.has(n)?e.get(n):(e.set(n,r),r)}function dm({_intern:e,_key:t},r){let n=t(r);return e.has(n)&&(r=e.get(n),e.delete(n)),r}function mm(e){return e!==null&&typeof e=="object"?e.valueOf():e}h();var pm=Math.sqrt(50),fm=Math.sqrt(10),hm=Math.sqrt(2);function Jr(e,t,r){let n=(t-e)/Math.max(0,r),i=Math.floor(Math.log10(n)),a=n/Math.pow(10,i),s=a>=pm?10:a>=fm?5:a>=hm?2:1,u,c,l;return i<0?(l=Math.pow(10,-i)/s,u=Math.round(e*l),c=Math.round(t*l),u/l<e&&++u,c/l>t&&--c,l=-l):(l=Math.pow(10,i)*s,u=Math.round(e/l),c=Math.round(t/l),u*l<e&&++u,c*l>t&&--c),c<u&&.5<=r&&r<2?Jr(e,t,r*2):[u,c,l]}function Qr(e,t,r){if(t=+t,e=+e,r=+r,!(r>0))return[];if(e===t)return[e];let n=t<e,[i,a,s]=n?Jr(t,e,r):Jr(e,t,r);if(!(a>=i))return[];let u=a-i+1,c=new Array(u);if(n)if(s<0)for(let l=0;l<u;++l)c[l]=(a-l)/-s;else for(let l=0;l<u;++l)c[l]=(a-l)*s;else if(s<0)for(let l=0;l<u;++l)c[l]=(i+l)/-s;else for(let l=0;l<u;++l)c[l]=(i+l)*s;return c}function pr(e,t,r){return t=+t,e=+e,r=+r,Jr(e,t,r)[2]}function _t(e,t,r){t=+t,e=+e,r=+r;let n=t<e,i=n?pr(t,e,r):pr(e,t,r);return(n?-1:1)*(i<0?1/-i:i)}h();function en(e,t,r){e=+e,t=+t,r=(i=arguments.length)<2?(t=e,e=0,1):i<3?1:+r;for(var n=-1,i=Math.max(0,Math.ceil((t-e)/r))|0,a=new Array(i);++n<i;)a[n]=e+n*r;return a}h();function tt(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}h();var Ns=Symbol("implicit");function tn(){var e=new Ut,t=[],r=[],n=Ns;function i(a){let s=e.get(a);if(s===void 0){if(n!==Ns)return n;e.set(a,s=t.push(a)-1)}return r[s%r.length]}return i.domain=function(a){if(!arguments.length)return t.slice();t=[],e=new Ut;for(let s of a)e.has(s)||e.set(s,t.push(s)-1);return i},i.range=function(a){return arguments.length?(r=Array.from(a),i):r.slice()},i.unknown=function(a){return arguments.length?(n=a,i):n},i.copy=function(){return tn(t,r).unknown(n)},tt.apply(i,arguments),i}function fr(){var e=tn().unknown(void 0),t=e.domain,r=e.range,n=0,i=1,a,s,u=!1,c=0,l=0,m=.5;delete e.unknown;function d(){var p=t().length,f=i<n,y=f?i:n,g=f?n:i;a=(g-y)/Math.max(1,p-c+l*2),u&&(a=Math.floor(a)),y+=(g-y-a*(p-c))*m,s=a*(1-c),u&&(y=Math.round(y),s=Math.round(s));var b=en(p).map(function(P){return y+a*P});return r(f?b.reverse():b)}return e.domain=function(p){return arguments.length?(t(p),d()):t()},e.range=function(p){return arguments.length?([n,i]=p,n=+n,i=+i,d()):[n,i]},e.rangeRound=function(p){return[n,i]=p,n=+n,i=+i,u=!0,d()},e.bandwidth=function(){return s},e.step=function(){return a},e.round=function(p){return arguments.length?(u=!!p,d()):u},e.padding=function(p){return arguments.length?(c=Math.min(1,l=+p),d()):c},e.paddingInner=function(p){return arguments.length?(c=Math.min(1,p),d()):c},e.paddingOuter=function(p){return arguments.length?(l=+p,d()):l},e.align=function(p){return arguments.length?(m=Math.max(0,Math.min(1,p)),d()):m},e.copy=function(){return fr(t(),[n,i]).round(u).paddingInner(c).paddingOuter(l).align(m)},tt.apply(d(),arguments)}h();h();h();h();h();h();h();function rn(e,t,r){e.prototype=t.prototype=r,r.constructor=e}function Hi(e,t){var r=Object.create(e.prototype);for(var n in t)r[n]=t[n];return r}function br(){}var hr=.7,on=1/hr,It="\\s*([+-]?\\d+)\\s*",gr="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",ze="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",gm=/^#([0-9a-f]{3,8})$/,bm=new RegExp(`^rgb\\(${It},${It},${It}\\)$`),ym=new RegExp(`^rgb\\(${ze},${ze},${ze}\\)$`),xm=new RegExp(`^rgba\\(${It},${It},${It},${gr}\\)$`),vm=new RegExp(`^rgba\\(${ze},${ze},${ze},${gr}\\)$`),wm=new RegExp(`^hsl\\(${gr},${ze},${ze}\\)$`),Sm=new RegExp(`^hsla\\(${gr},${ze},${ze},${gr}\\)$`),As={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};rn(br,rt,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:Os,formatHex:Os,formatHex8:km,formatHsl:Tm,formatRgb:Ds,toString:Ds});function Os(){return this.rgb().formatHex()}function km(){return this.rgb().formatHex8()}function Tm(){return Us(this).formatHsl()}function Ds(){return this.rgb().formatRgb()}function rt(e){var t,r;return e=(e+"").trim().toLowerCase(),(t=gm.exec(e))?(r=t[1].length,t=parseInt(t[1],16),r===6?Ls(t):r===3?new Re(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):r===8?nn(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):r===4?nn(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=bm.exec(e))?new Re(t[1],t[2],t[3],1):(t=ym.exec(e))?new Re(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=xm.exec(e))?nn(t[1],t[2],t[3],t[4]):(t=vm.exec(e))?nn(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=wm.exec(e))?Bs(t[1],t[2]/100,t[3]/100,1):(t=Sm.exec(e))?Bs(t[1],t[2]/100,t[3]/100,t[4]):As.hasOwnProperty(e)?Ls(As[e]):e==="transparent"?new Re(NaN,NaN,NaN,0):null}function Ls(e){return new Re(e>>16&255,e>>8&255,e&255,1)}function nn(e,t,r,n){return n<=0&&(e=t=r=NaN),new Re(e,t,r,n)}function Pm(e){return e instanceof br||(e=rt(e)),e?(e=e.rgb(),new Re(e.r,e.g,e.b,e.opacity)):new Re}function Gt(e,t,r,n){return arguments.length===1?Pm(e):new Re(e,t,r,n??1)}function Re(e,t,r,n){this.r=+e,this.g=+t,this.b=+r,this.opacity=+n}rn(Re,Gt,Hi(br,{brighter(e){return e=e==null?on:Math.pow(on,e),new Re(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?hr:Math.pow(hr,e),new Re(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Re(bt(this.r),bt(this.g),bt(this.b),sn(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Fs,formatHex:Fs,formatHex8:Mm,formatRgb:Rs,toString:Rs}));function Fs(){return`#${gt(this.r)}${gt(this.g)}${gt(this.b)}`}function Mm(){return`#${gt(this.r)}${gt(this.g)}${gt(this.b)}${gt((isNaN(this.opacity)?1:this.opacity)*255)}`}function Rs(){let e=sn(this.opacity);return`${e===1?"rgb(":"rgba("}${bt(this.r)}, ${bt(this.g)}, ${bt(this.b)}${e===1?")":`, ${e})`}`}function sn(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function bt(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function gt(e){return e=bt(e),(e<16?"0":"")+e.toString(16)}function Bs(e,t,r,n){return n<=0?e=t=r=NaN:r<=0||r>=1?e=t=NaN:t<=0&&(e=NaN),new Ee(e,t,r,n)}function Us(e){if(e instanceof Ee)return new Ee(e.h,e.s,e.l,e.opacity);if(e instanceof br||(e=rt(e)),!e)return new Ee;if(e instanceof Ee)return e;e=e.rgb();var t=e.r/255,r=e.g/255,n=e.b/255,i=Math.min(t,r,n),a=Math.max(t,r,n),s=NaN,u=a-i,c=(a+i)/2;return u?(t===a?s=(r-n)/u+(r<n)*6:r===a?s=(n-t)/u+2:s=(t-r)/u+4,u/=c<.5?a+i:2-a-i,s*=60):u=c>0&&c<1?0:s,new Ee(s,u,c,e.opacity)}function _s(e,t,r,n){return arguments.length===1?Us(e):new Ee(e,t,r,n??1)}function Ee(e,t,r,n){this.h=+e,this.s=+t,this.l=+r,this.opacity=+n}rn(Ee,_s,Hi(br,{brighter(e){return e=e==null?on:Math.pow(on,e),new Ee(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?hr:Math.pow(hr,e),new Ee(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*t,i=2*r-n;return new Re(Yi(e>=240?e-240:e+120,i,n),Yi(e,i,n),Yi(e<120?e+240:e-120,i,n),this.opacity)},clamp(){return new Ee(Es(this.h),an(this.s),an(this.l),sn(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let e=sn(this.opacity);return`${e===1?"hsl(":"hsla("}${Es(this.h)}, ${an(this.s)*100}%, ${an(this.l)*100}%${e===1?")":`, ${e})`}`}}));function Es(e){return e=(e||0)%360,e<0?e+360:e}function an(e){return Math.max(0,Math.min(1,e||0))}function Yi(e,t,r){return(e<60?t+(r-t)*e/60:e<180?r:e<240?t+(r-t)*(240-e)/60:t)*255}h();h();function Xi(e,t,r,n,i){var a=e*e,s=a*e;return((1-3*e+3*a-s)*t+(4-6*a+3*s)*r+(1+3*e+3*a-3*s)*n+s*i)/6}function Is(e){var t=e.length-1;return function(r){var n=r<=0?r=0:r>=1?(r=1,t-1):Math.floor(r*t),i=e[n],a=e[n+1],s=n>0?e[n-1]:2*i-a,u=n<t-1?e[n+2]:2*a-i;return Xi((r-n/t)*t,s,i,a,u)}}h();function Gs(e){var t=e.length;return function(r){var n=Math.floor(((r%=1)<0?++r:r)*t),i=e[(n+t-1)%t],a=e[n%t],s=e[(n+1)%t],u=e[(n+2)%t];return Xi((r-n/t)*t,i,a,s,u)}}h();h();var yr=e=>()=>e;function Cm(e,t){return function(r){return e+r*t}}function Nm(e,t,r){return e=Math.pow(e,r),t=Math.pow(t,r)-e,r=1/r,function(n){return Math.pow(e+n*t,r)}}function zs(e){return(e=+e)==1?un:function(t,r){return r-t?Nm(t,r,e):yr(isNaN(t)?r:t)}}function un(e,t){var r=t-e;return r?Cm(e,r):yr(isNaN(e)?t:e)}var qi=(function e(t){var r=zs(t);function n(i,a){var s=r((i=Gt(i)).r,(a=Gt(a)).r),u=r(i.g,a.g),c=r(i.b,a.b),l=un(i.opacity,a.opacity);return function(m){return i.r=s(m),i.g=u(m),i.b=c(m),i.opacity=l(m),i+""}}return n.gamma=e,n})(1);function $s(e){return function(t){var r=t.length,n=new Array(r),i=new Array(r),a=new Array(r),s,u;for(s=0;s<r;++s)u=Gt(t[s]),n[s]=u.r||0,i[s]=u.g||0,a[s]=u.b||0;return n=e(n),i=e(i),a=e(a),u.opacity=1,function(c){return u.r=n(c),u.g=i(c),u.b=a(c),u+""}}}var iv=$s(Is),av=$s(Gs);h();h();function js(e,t){t||(t=[]);var r=e?Math.min(t.length,e.length):0,n=t.slice(),i;return function(a){for(i=0;i<r;++i)n[i]=e[i]*(1-a)+t[i]*a;return n}}function Vs(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Ws(e,t){var r=t?t.length:0,n=e?Math.min(r,e.length):0,i=new Array(n),a=new Array(r),s;for(s=0;s<n;++s)i[s]=yt(e[s],t[s]);for(;s<r;++s)a[s]=t[s];return function(u){for(s=0;s<n;++s)a[s]=i[s](u);return a}}h();function Hs(e,t){var r=new Date;return e=+e,t=+t,function(n){return r.setTime(e*(1-n)+t*n),r}}h();function nt(e,t){return e=+e,t=+t,function(r){return e*(1-r)+t*r}}h();function Ys(e,t){var r={},n={},i;(e===null||typeof e!="object")&&(e={}),(t===null||typeof t!="object")&&(t={});for(i in t)i in e?r[i]=yt(e[i],t[i]):n[i]=t[i];return function(a){for(i in r)n[i]=r[i](a);return n}}h();var Ki=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Zi=new RegExp(Ki.source,"g");function Am(e){return function(){return e}}function Om(e){return function(t){return e(t)+""}}function Xs(e,t){var r=Ki.lastIndex=Zi.lastIndex=0,n,i,a,s=-1,u=[],c=[];for(e=e+"",t=t+"";(n=Ki.exec(e))&&(i=Zi.exec(t));)(a=i.index)>r&&(a=t.slice(r,a),u[s]?u[s]+=a:u[++s]=a),(n=n[0])===(i=i[0])?u[s]?u[s]+=i:u[++s]=i:(u[++s]=null,c.push({i:s,x:nt(n,i)})),r=Zi.lastIndex;return r<t.length&&(a=t.slice(r),u[s]?u[s]+=a:u[++s]=a),u.length<2?c[0]?Om(c[0].x):Am(t):(t=c.length,function(l){for(var m=0,d;m<t;++m)u[(d=c[m]).i]=d.x(l);return u.join("")})}function yt(e,t){var r=typeof t,n;return t==null||r==="boolean"?yr(t):(r==="number"?nt:r==="string"?(n=rt(t))?(t=n,qi):Xs:t instanceof rt?qi:t instanceof Date?Hs:Vs(t)?js:Array.isArray(t)?Ws:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?Ys:nt)(e,t)}h();function Ji(e,t){return e=+e,t=+t,function(r){return Math.round(e*(1-r)+t*r)}}h();function Qi(e){return function(){return e}}h();function ea(e){return+e}var qs=[0,1];function zt(e){return e}function ta(e,t){return(t-=e=+e)?function(r){return(r-e)/t}:Qi(isNaN(t)?NaN:.5)}function Dm(e,t){var r;return e>t&&(r=e,e=t,t=r),function(n){return Math.max(e,Math.min(t,n))}}function Lm(e,t,r){var n=e[0],i=e[1],a=t[0],s=t[1];return i<n?(n=ta(i,n),a=r(s,a)):(n=ta(n,i),a=r(a,s)),function(u){return a(n(u))}}function Fm(e,t,r){var n=Math.min(e.length,t.length)-1,i=new Array(n),a=new Array(n),s=-1;for(e[n]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++s<n;)i[s]=ta(e[s],e[s+1]),a[s]=r(t[s],t[s+1]);return function(u){var c=Wi(e,u,1,n)-1;return a[c](i[c](u))}}function ln(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function Rm(){var e=qs,t=qs,r=yt,n,i,a,s=zt,u,c,l;function m(){var p=Math.min(e.length,t.length);return s!==zt&&(s=Dm(e[0],e[p-1])),u=p>2?Fm:Lm,c=l=null,d}function d(p){return p==null||isNaN(p=+p)?a:(c||(c=u(e.map(n),t,r)))(n(s(p)))}return d.invert=function(p){return s(i((l||(l=u(t,e.map(n),nt)))(p)))},d.domain=function(p){return arguments.length?(e=Array.from(p,ea),m()):e.slice()},d.range=function(p){return arguments.length?(t=Array.from(p),m()):t.slice()},d.rangeRound=function(p){return t=Array.from(p),r=Ji,m()},d.clamp=function(p){return arguments.length?(s=p?!0:zt,m()):s!==zt},d.interpolate=function(p){return arguments.length?(r=p,m()):r},d.unknown=function(p){return arguments.length?(a=p,d):a},function(p,f){return n=p,i=f,m()}}function xr(){return Rm()(zt,zt)}h();function ra(e,t,r,n){var i=_t(e,t,r),a;switch(n=et(n??",f"),n.type){case"s":{var s=Math.max(Math.abs(e),Math.abs(t));return n.precision==null&&!isNaN(a=zi(i,s))&&(n.precision=a),Kr(n,s)}case"":case"e":case"g":case"p":case"r":{n.precision==null&&!isNaN(a=$i(i,Math.max(Math.abs(e),Math.abs(t))))&&(n.precision=a-(n.type==="e"));break}case"f":case"%":{n.precision==null&&!isNaN(a=Gi(i))&&(n.precision=a-(n.type==="%")*2);break}}return Et(n)}function Bm(e){var t=e.domain;return e.ticks=function(r){var n=t();return Qr(n[0],n[n.length-1],r??10)},e.tickFormat=function(r,n){var i=t();return ra(i[0],i[i.length-1],r??10,n)},e.nice=function(r){r==null&&(r=10);var n=t(),i=0,a=n.length-1,s=n[i],u=n[a],c,l,m=10;for(u<s&&(l=s,s=u,u=l,l=i,i=a,a=l);m-- >0;){if(l=pr(s,u,r),l===c)return n[i]=s,n[a]=u,t(n);if(l>0)s=Math.floor(s/l)*l,u=Math.ceil(u/l)*l;else if(l<0)s=Math.ceil(s*l)/l,u=Math.floor(u*l)/l;else break;c=l}return e},e}function $t(){var e=xr();return e.copy=function(){return ln(e,$t())},tt.apply(e,arguments),Bm(e)}h();function na(e,t){e=e.slice();var r=0,n=e.length-1,i=e[r],a=e[n],s;return a<i&&(s=r,r=n,n=s,s=i,i=a,a=s),e[r]=t.floor(i),e[n]=t.ceil(a),e}h();h();h();var ia=new Date,aa=new Date;function ce(e,t,r,n){function i(a){return e(a=arguments.length===0?new Date:new Date(+a)),a}return i.floor=a=>(e(a=new Date(+a)),a),i.ceil=a=>(e(a=new Date(a-1)),t(a,1),e(a),a),i.round=a=>{let s=i(a),u=i.ceil(a);return a-s<u-a?s:u},i.offset=(a,s)=>(t(a=new Date(+a),s==null?1:Math.floor(s)),a),i.range=(a,s,u)=>{let c=[];if(a=i.ceil(a),u=u==null?1:Math.floor(u),!(a<s)||!(u>0))return c;let l;do c.push(l=new Date(+a)),t(a,u),e(a);while(l<a&&a<s);return c},i.filter=a=>ce(s=>{if(s>=s)for(;e(s),!a(s);)s.setTime(s-1)},(s,u)=>{if(s>=s)if(u<0)for(;++u<=0;)for(;t(s,-1),!a(s););else for(;--u>=0;)for(;t(s,1),!a(s););}),r&&(i.count=(a,s)=>(ia.setTime(+a),aa.setTime(+s),e(ia),e(aa),Math.floor(r(ia,aa))),i.every=a=>(a=Math.floor(a),!isFinite(a)||!(a>0)?null:a>1?i.filter(n?s=>n(s)%a===0:s=>i.count(0,s)%a===0):i)),i}h();var vr=ce(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);vr.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?ce(t=>{t.setTime(Math.floor(t/e)*e)},(t,r)=>{t.setTime(+t+r*e)},(t,r)=>(r-t)/e):vr);var mw=vr.range;h();var $e=ce(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*1e3)},(e,t)=>(t-e)/1e3,e=>e.getUTCSeconds()),Zs=$e.range;h();var cn=ce(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*1e3)},(e,t)=>{e.setTime(+e+t*6e4)},(e,t)=>(t-e)/6e4,e=>e.getMinutes()),Em=cn.range,jt=ce(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*6e4)},(e,t)=>(t-e)/6e4,e=>e.getUTCMinutes()),Um=jt.range;h();var dn=ce(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*1e3-e.getMinutes()*6e4)},(e,t)=>{e.setTime(+e+t*36e5)},(e,t)=>(t-e)/36e5,e=>e.getHours()),_m=dn.range,Vt=ce(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*36e5)},(e,t)=>(t-e)/36e5,e=>e.getUTCHours()),Im=Vt.range;h();var wt=ce(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*6e4)/864e5,e=>e.getDate()-1),Gm=wt.range,St=ce(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/864e5,e=>e.getUTCDate()-1),zm=St.range,mn=ce(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/864e5,e=>Math.floor(e/864e5)),$m=mn.range;h();function kt(e){return ce(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(t,r)=>{t.setDate(t.getDate()+r*7)},(t,r)=>(r-t-(r.getTimezoneOffset()-t.getTimezoneOffset())*6e4)/6048e5)}var Tt=kt(0),Wt=kt(1),Js=kt(2),Qs=kt(3),it=kt(4),eu=kt(5),tu=kt(6),ru=Tt.range,jm=Wt.range,Vm=Js.range,Wm=Qs.range,Hm=it.range,Ym=eu.range,Xm=tu.range;function Pt(e){return ce(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(t,r)=>{t.setUTCDate(t.getUTCDate()+r*7)},(t,r)=>(r-t)/6048e5)}var Ye=Pt(0),Ht=Pt(1),nu=Pt(2),iu=Pt(3),at=Pt(4),au=Pt(5),ou=Pt(6),su=Ye.range,qm=Ht.range,Zm=nu.range,Km=iu.range,Jm=at.range,Qm=au.range,ep=ou.range;h();var pn=ce(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth()),tp=pn.range,Yt=ce(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth()),rp=Yt.range;h();var Ue=ce(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());Ue.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:ce(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,r)=>{t.setFullYear(t.getFullYear()+r*e)});var np=Ue.range,Be=ce(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());Be.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:ce(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,r)=>{t.setUTCFullYear(t.getUTCFullYear()+r*e)});var ip=Be.range;h();function lu(e,t,r,n,i,a){let s=[[$e,1,1e3],[$e,5,5*1e3],[$e,15,15*1e3],[$e,30,30*1e3],[a,1,6e4],[a,5,5*6e4],[a,15,15*6e4],[a,30,30*6e4],[i,1,36e5],[i,3,3*36e5],[i,6,6*36e5],[i,12,12*36e5],[n,1,864e5],[n,2,2*864e5],[r,1,6048e5],[t,1,2592e6],[t,3,3*2592e6],[e,1,31536e6]];function u(l,m,d){let p=m<l;p&&([l,m]=[m,l]);let f=d&&typeof d.range=="function"?d:c(l,m,d),y=f?f.range(l,+m+1):[];return p?y.reverse():y}function c(l,m,d){let p=Math.abs(m-l)/d,f=ht(([,,b])=>b).right(s,p);if(f===s.length)return e.every(_t(l/31536e6,m/31536e6,d));if(f===0)return vr.every(Math.max(_t(l,m,d),1));let[y,g]=s[p/s[f-1][2]<s[f][2]/p?f-1:f];return y.every(g)}return[u,c]}var[oa,sa]=lu(Be,Yt,Ye,mn,Vt,jt),[op,sp]=lu(Ue,pn,Tt,wt,dn,cn);h();h();h();function ua(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function la(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function Sr(e,t,r){return{y:e,m:t,d:r,H:0,M:0,S:0,L:0}}function ca(e){var t=e.dateTime,r=e.date,n=e.time,i=e.periods,a=e.days,s=e.shortDays,u=e.months,c=e.shortMonths,l=kr(i),m=Tr(i),d=kr(a),p=Tr(a),f=kr(s),y=Tr(s),g=kr(u),b=Tr(u),P=kr(c),N=Tr(c),M={a:_,A:I,b:re,B:le,c:null,d:hu,e:hu,f:Op,g:Gp,G:$p,H:Cp,I:Np,j:Ap,L:vu,m:Dp,M:Lp,p:be,q:de,Q:yu,s:xu,S:Fp,u:Rp,U:Bp,V:Ep,w:Up,W:_p,x:null,X:null,y:Ip,Y:zp,Z:jp,"%":bu},k={a:L,A:B,b:$,B:X,c:null,d:gu,e:gu,f:Yp,g:nf,G:of,H:Vp,I:Wp,j:Hp,L:Su,m:Xp,M:qp,p:j,q:K,Q:yu,s:xu,S:Zp,u:Kp,U:Jp,V:Qp,w:ef,W:tf,x:null,X:null,y:rf,Y:af,Z:sf,"%":bu},A={a:te,A:ae,b:E,B:w,c:S,d:pu,e:pu,f:kp,g:mu,G:du,H:fu,I:fu,j:xp,L:Sp,m:yp,M:vp,p:Z,q:bp,Q:Pp,s:Mp,S:wp,u:mp,U:pp,V:fp,w:dp,W:hp,x:W,X:H,y:mu,Y:du,Z:gp,"%":Tp};M.x=v(r,M),M.X=v(n,M),M.c=v(t,M),k.x=v(r,k),k.X=v(n,k),k.c=v(t,k);function v(O,D){return function(V){var C=[],ye=-1,oe=0,Me=O.length,Ce,Ve,Lr;for(V instanceof Date||(V=new Date(+V));++ye<Me;)O.charCodeAt(ye)===37&&(C.push(O.slice(oe,ye)),(Ve=cu[Ce=O.charAt(++ye)])!=null?Ce=O.charAt(++ye):Ve=Ce==="e"?" ":"0",(Lr=D[Ce])&&(Ce=Lr(V,Ve)),C.push(Ce),oe=ye+1);return C.push(O.slice(oe,ye)),C.join("")}}function R(O,D){return function(V){var C=Sr(1900,void 0,1),ye=G(C,O,V+="",0),oe,Me;if(ye!=V.length)return null;if("Q"in C)return new Date(C.Q);if("s"in C)return new Date(C.s*1e3+("L"in C?C.L:0));if(D&&!("Z"in C)&&(C.Z=0),"p"in C&&(C.H=C.H%12+C.p*12),C.m===void 0&&(C.m="q"in C?C.q:0),"V"in C){if(C.V<1||C.V>53)return null;"w"in C||(C.w=1),"Z"in C?(oe=la(Sr(C.y,0,1)),Me=oe.getUTCDay(),oe=Me>4||Me===0?Ht.ceil(oe):Ht(oe),oe=St.offset(oe,(C.V-1)*7),C.y=oe.getUTCFullYear(),C.m=oe.getUTCMonth(),C.d=oe.getUTCDate()+(C.w+6)%7):(oe=ua(Sr(C.y,0,1)),Me=oe.getDay(),oe=Me>4||Me===0?Wt.ceil(oe):Wt(oe),oe=wt.offset(oe,(C.V-1)*7),C.y=oe.getFullYear(),C.m=oe.getMonth(),C.d=oe.getDate()+(C.w+6)%7)}else("W"in C||"U"in C)&&("w"in C||(C.w="u"in C?C.u%7:"W"in C?1:0),Me="Z"in C?la(Sr(C.y,0,1)).getUTCDay():ua(Sr(C.y,0,1)).getDay(),C.m=0,C.d="W"in C?(C.w+6)%7+C.W*7-(Me+5)%7:C.w+C.U*7-(Me+6)%7);return"Z"in C?(C.H+=C.Z/100|0,C.M+=C.Z%100,la(C)):ua(C)}}function G(O,D,V,C){for(var ye=0,oe=D.length,Me=V.length,Ce,Ve;ye<oe;){if(C>=Me)return-1;if(Ce=D.charCodeAt(ye++),Ce===37){if(Ce=D.charAt(ye++),Ve=A[Ce in cu?D.charAt(ye++):Ce],!Ve||(C=Ve(O,V,C))<0)return-1}else if(Ce!=V.charCodeAt(C++))return-1}return C}function Z(O,D,V){var C=l.exec(D.slice(V));return C?(O.p=m.get(C[0].toLowerCase()),V+C[0].length):-1}function te(O,D,V){var C=f.exec(D.slice(V));return C?(O.w=y.get(C[0].toLowerCase()),V+C[0].length):-1}function ae(O,D,V){var C=d.exec(D.slice(V));return C?(O.w=p.get(C[0].toLowerCase()),V+C[0].length):-1}function E(O,D,V){var C=P.exec(D.slice(V));return C?(O.m=N.get(C[0].toLowerCase()),V+C[0].length):-1}function w(O,D,V){var C=g.exec(D.slice(V));return C?(O.m=b.get(C[0].toLowerCase()),V+C[0].length):-1}function S(O,D,V){return G(O,t,D,V)}function W(O,D,V){return G(O,r,D,V)}function H(O,D,V){return G(O,n,D,V)}function _(O){return s[O.getDay()]}function I(O){return a[O.getDay()]}function re(O){return c[O.getMonth()]}function le(O){return u[O.getMonth()]}function be(O){return i[+(O.getHours()>=12)]}function de(O){return 1+~~(O.getMonth()/3)}function L(O){return s[O.getUTCDay()]}function B(O){return a[O.getUTCDay()]}function $(O){return c[O.getUTCMonth()]}function X(O){return u[O.getUTCMonth()]}function j(O){return i[+(O.getUTCHours()>=12)]}function K(O){return 1+~~(O.getUTCMonth()/3)}return{format:function(O){var D=v(O+="",M);return D.toString=function(){return O},D},parse:function(O){var D=R(O+="",!1);return D.toString=function(){return O},D},utcFormat:function(O){var D=v(O+="",k);return D.toString=function(){return O},D},utcParse:function(O){var D=R(O+="",!0);return D.toString=function(){return O},D}}}var cu={"-":"",_:" ",0:"0"},ve=/^\s*\d+/,up=/^%/,lp=/[\\^$*+?|[\]().{}]/g;function ie(e,t,r){var n=e<0?"-":"",i=(n?-e:e)+"",a=i.length;return n+(a<r?new Array(r-a+1).join(t)+i:i)}function cp(e){return e.replace(lp,"\\$&")}function kr(e){return new RegExp("^(?:"+e.map(cp).join("|")+")","i")}function Tr(e){return new Map(e.map((t,r)=>[t.toLowerCase(),r]))}function dp(e,t,r){var n=ve.exec(t.slice(r,r+1));return n?(e.w=+n[0],r+n[0].length):-1}function mp(e,t,r){var n=ve.exec(t.slice(r,r+1));return n?(e.u=+n[0],r+n[0].length):-1}function pp(e,t,r){var n=ve.exec(t.slice(r,r+2));return n?(e.U=+n[0],r+n[0].length):-1}function fp(e,t,r){var n=ve.exec(t.slice(r,r+2));return n?(e.V=+n[0],r+n[0].length):-1}function hp(e,t,r){var n=ve.exec(t.slice(r,r+2));return n?(e.W=+n[0],r+n[0].length):-1}function du(e,t,r){var n=ve.exec(t.slice(r,r+4));return n?(e.y=+n[0],r+n[0].length):-1}function mu(e,t,r){var n=ve.exec(t.slice(r,r+2));return n?(e.y=+n[0]+(+n[0]>68?1900:2e3),r+n[0].length):-1}function gp(e,t,r){var n=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(r,r+6));return n?(e.Z=n[1]?0:-(n[2]+(n[3]||"00")),r+n[0].length):-1}function bp(e,t,r){var n=ve.exec(t.slice(r,r+1));return n?(e.q=n[0]*3-3,r+n[0].length):-1}function yp(e,t,r){var n=ve.exec(t.slice(r,r+2));return n?(e.m=n[0]-1,r+n[0].length):-1}function pu(e,t,r){var n=ve.exec(t.slice(r,r+2));return n?(e.d=+n[0],r+n[0].length):-1}function xp(e,t,r){var n=ve.exec(t.slice(r,r+3));return n?(e.m=0,e.d=+n[0],r+n[0].length):-1}function fu(e,t,r){var n=ve.exec(t.slice(r,r+2));return n?(e.H=+n[0],r+n[0].length):-1}function vp(e,t,r){var n=ve.exec(t.slice(r,r+2));return n?(e.M=+n[0],r+n[0].length):-1}function wp(e,t,r){var n=ve.exec(t.slice(r,r+2));return n?(e.S=+n[0],r+n[0].length):-1}function Sp(e,t,r){var n=ve.exec(t.slice(r,r+3));return n?(e.L=+n[0],r+n[0].length):-1}function kp(e,t,r){var n=ve.exec(t.slice(r,r+6));return n?(e.L=Math.floor(n[0]/1e3),r+n[0].length):-1}function Tp(e,t,r){var n=up.exec(t.slice(r,r+1));return n?r+n[0].length:-1}function Pp(e,t,r){var n=ve.exec(t.slice(r));return n?(e.Q=+n[0],r+n[0].length):-1}function Mp(e,t,r){var n=ve.exec(t.slice(r));return n?(e.s=+n[0],r+n[0].length):-1}function hu(e,t){return ie(e.getDate(),t,2)}function Cp(e,t){return ie(e.getHours(),t,2)}function Np(e,t){return ie(e.getHours()%12||12,t,2)}function Ap(e,t){return ie(1+wt.count(Ue(e),e),t,3)}function vu(e,t){return ie(e.getMilliseconds(),t,3)}function Op(e,t){return vu(e,t)+"000"}function Dp(e,t){return ie(e.getMonth()+1,t,2)}function Lp(e,t){return ie(e.getMinutes(),t,2)}function Fp(e,t){return ie(e.getSeconds(),t,2)}function Rp(e){var t=e.getDay();return t===0?7:t}function Bp(e,t){return ie(Tt.count(Ue(e)-1,e),t,2)}function wu(e){var t=e.getDay();return t>=4||t===0?it(e):it.ceil(e)}function Ep(e,t){return e=wu(e),ie(it.count(Ue(e),e)+(Ue(e).getDay()===4),t,2)}function Up(e){return e.getDay()}function _p(e,t){return ie(Wt.count(Ue(e)-1,e),t,2)}function Ip(e,t){return ie(e.getFullYear()%100,t,2)}function Gp(e,t){return e=wu(e),ie(e.getFullYear()%100,t,2)}function zp(e,t){return ie(e.getFullYear()%1e4,t,4)}function $p(e,t){var r=e.getDay();return e=r>=4||r===0?it(e):it.ceil(e),ie(e.getFullYear()%1e4,t,4)}function jp(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+ie(t/60|0,"0",2)+ie(t%60,"0",2)}function gu(e,t){return ie(e.getUTCDate(),t,2)}function Vp(e,t){return ie(e.getUTCHours(),t,2)}function Wp(e,t){return ie(e.getUTCHours()%12||12,t,2)}function Hp(e,t){return ie(1+St.count(Be(e),e),t,3)}function Su(e,t){return ie(e.getUTCMilliseconds(),t,3)}function Yp(e,t){return Su(e,t)+"000"}function Xp(e,t){return ie(e.getUTCMonth()+1,t,2)}function qp(e,t){return ie(e.getUTCMinutes(),t,2)}function Zp(e,t){return ie(e.getUTCSeconds(),t,2)}function Kp(e){var t=e.getUTCDay();return t===0?7:t}function Jp(e,t){return ie(Ye.count(Be(e)-1,e),t,2)}function ku(e){var t=e.getUTCDay();return t>=4||t===0?at(e):at.ceil(e)}function Qp(e,t){return e=ku(e),ie(at.count(Be(e),e)+(Be(e).getUTCDay()===4),t,2)}function ef(e){return e.getUTCDay()}function tf(e,t){return ie(Ht.count(Be(e)-1,e),t,2)}function rf(e,t){return ie(e.getUTCFullYear()%100,t,2)}function nf(e,t){return e=ku(e),ie(e.getUTCFullYear()%100,t,2)}function af(e,t){return ie(e.getUTCFullYear()%1e4,t,4)}function of(e,t){var r=e.getUTCDay();return e=r>=4||r===0?at(e):at.ceil(e),ie(e.getUTCFullYear()%1e4,t,4)}function sf(){return"+0000"}function bu(){return"%"}function yu(e){return+e}function xu(e){return Math.floor(+e/1e3)}var Xt,Tu,Pu,fn,Mu;da({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function da(e){return Xt=ca(e),Tu=Xt.format,Pu=Xt.parse,fn=Xt.utcFormat,Mu=Xt.utcParse,Xt}function uf(e){return new Date(e)}function lf(e){return e instanceof Date?+e:+new Date(+e)}function ma(e,t,r,n,i,a,s,u,c,l){var m=xr(),d=m.invert,p=m.domain,f=l(".%L"),y=l(":%S"),g=l("%I:%M"),b=l("%I %p"),P=l("%a %d"),N=l("%b %d"),M=l("%B"),k=l("%Y");function A(v){return(c(v)<v?f:u(v)<v?y:s(v)<v?g:a(v)<v?b:n(v)<v?i(v)<v?P:N:r(v)<v?M:k)(v)}return m.invert=function(v){return new Date(d(v))},m.domain=function(v){return arguments.length?p(Array.from(v,lf)):p().map(uf)},m.ticks=function(v){var R=p();return e(R[0],R[R.length-1],v??10)},m.tickFormat=function(v,R){return R==null?A:l(R)},m.nice=function(v){var R=p();return(!v||typeof v.range!="function")&&(v=t(R[0],R[R.length-1],v??10)),v?p(na(R,v)):m},m.copy=function(){return ln(m,ma(e,t,r,n,i,a,s,u,c,l))},m}h();function hn(){return tt.apply(ma(oa,sa,Be,Yt,Ye,St,Vt,jt,$e,fn).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}h();h();h();function q(e){return function(){return e}}h();var pa=Math.abs,Te=Math.atan2,ot=Math.cos,Cu=Math.max,gn=Math.min,_e=Math.sin,Mt=Math.sqrt,Fe=1e-12,qt=Math.PI,Pr=qt/2,Zt=2*qt;function Nu(e){return e>1?0:e<-1?qt:Math.acos(e)}function fa(e){return e>=1?Pr:e<=-1?-Pr:Math.asin(e)}h();h();h();var ha=Math.PI,ga=2*ha,Ct=1e-6,cf=ga-Ct;function Au(e){this._+=e[0];for(let t=1,r=e.length;t<r;++t)this._+=arguments[t]+e[t]}function df(e){let t=Math.floor(e);if(!(t>=0))throw new Error(`invalid digits: ${e}`);if(t>15)return Au;let r=10**t;return function(n){this._+=n[0];for(let i=1,a=n.length;i<a;++i)this._+=Math.round(arguments[i]*r)/r+n[i]}}var Nt=class{constructor(t){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=t==null?Au:df(t)}moveTo(t,r){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+r}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(t,r){this._append`L${this._x1=+t},${this._y1=+r}`}quadraticCurveTo(t,r,n,i){this._append`Q${+t},${+r},${this._x1=+n},${this._y1=+i}`}bezierCurveTo(t,r,n,i,a,s){this._append`C${+t},${+r},${+n},${+i},${this._x1=+a},${this._y1=+s}`}arcTo(t,r,n,i,a){if(t=+t,r=+r,n=+n,i=+i,a=+a,a<0)throw new Error(`negative radius: ${a}`);let s=this._x1,u=this._y1,c=n-t,l=i-r,m=s-t,d=u-r,p=m*m+d*d;if(this._x1===null)this._append`M${this._x1=t},${this._y1=r}`;else if(p>Ct)if(!(Math.abs(d*c-l*m)>Ct)||!a)this._append`L${this._x1=t},${this._y1=r}`;else{let f=n-s,y=i-u,g=c*c+l*l,b=f*f+y*y,P=Math.sqrt(g),N=Math.sqrt(p),M=a*Math.tan((ha-Math.acos((g+p-b)/(2*P*N)))/2),k=M/N,A=M/P;Math.abs(k-1)>Ct&&this._append`L${t+k*m},${r+k*d}`,this._append`A${a},${a},0,0,${+(d*f>m*y)},${this._x1=t+A*c},${this._y1=r+A*l}`}}arc(t,r,n,i,a,s){if(t=+t,r=+r,n=+n,s=!!s,n<0)throw new Error(`negative radius: ${n}`);let u=n*Math.cos(i),c=n*Math.sin(i),l=t+u,m=r+c,d=1^s,p=s?i-a:a-i;this._x1===null?this._append`M${l},${m}`:(Math.abs(this._x1-l)>Ct||Math.abs(this._y1-m)>Ct)&&this._append`L${l},${m}`,n&&(p<0&&(p=p%ga+ga),p>cf?this._append`A${n},${n},0,1,${d},${t-u},${r-c}A${n},${n},0,1,${d},${this._x1=l},${this._y1=m}`:p>Ct&&this._append`A${n},${n},0,${+(p>=ha)},${d},${this._x1=t+n*Math.cos(a)},${this._y1=r+n*Math.sin(a)}`)}rect(t,r,n,i){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+r}h${n=+n}v${+i}h${-n}Z`}toString(){return this._}};function Ou(){return new Nt}Ou.prototype=Nt.prototype;function Kt(e){let t=3;return e.digits=function(r){if(!arguments.length)return t;if(r==null)t=null;else{let n=Math.floor(r);if(!(n>=0))throw new RangeError(`invalid digits: ${r}`);t=n}return e},()=>new Nt(t)}function mf(e){return e.innerRadius}function pf(e){return e.outerRadius}function ff(e){return e.startAngle}function hf(e){return e.endAngle}function gf(e){return e&&e.padAngle}function bf(e,t,r,n,i,a,s,u){var c=r-e,l=n-t,m=s-i,d=u-a,p=d*c-m*l;if(!(p*p<Fe))return p=(m*(t-a)-d*(e-i))/p,[e+p*c,t+p*l]}function bn(e,t,r,n,i,a,s){var u=e-r,c=t-n,l=(s?a:-a)/Mt(u*u+c*c),m=l*c,d=-l*u,p=e+m,f=t+d,y=r+m,g=n+d,b=(p+y)/2,P=(f+g)/2,N=y-p,M=g-f,k=N*N+M*M,A=i-a,v=p*g-y*f,R=(M<0?-1:1)*Mt(Cu(0,A*A*k-v*v)),G=(v*M-N*R)/k,Z=(-v*N-M*R)/k,te=(v*M+N*R)/k,ae=(-v*N+M*R)/k,E=G-b,w=Z-P,S=te-b,W=ae-P;return E*E+w*w>S*S+W*W&&(G=te,Z=ae),{cx:G,cy:Z,x01:-m,y01:-d,x11:G*(i/A-1),y11:Z*(i/A-1)}}function yn(){var e=mf,t=pf,r=q(0),n=null,i=ff,a=hf,s=gf,u=null,c=Kt(l);function l(){var m,d,p=+e.apply(this,arguments),f=+t.apply(this,arguments),y=i.apply(this,arguments)-Pr,g=a.apply(this,arguments)-Pr,b=pa(g-y),P=g>y;if(u||(u=m=c()),f<p&&(d=f,f=p,p=d),!(f>Fe))u.moveTo(0,0);else if(b>Zt-Fe)u.moveTo(f*ot(y),f*_e(y)),u.arc(0,0,f,y,g,!P),p>Fe&&(u.moveTo(p*ot(g),p*_e(g)),u.arc(0,0,p,g,y,P));else{var N=y,M=g,k=y,A=g,v=b,R=b,G=s.apply(this,arguments)/2,Z=G>Fe&&(n?+n.apply(this,arguments):Mt(p*p+f*f)),te=gn(pa(f-p)/2,+r.apply(this,arguments)),ae=te,E=te,w,S;if(Z>Fe){var W=fa(Z/p*_e(G)),H=fa(Z/f*_e(G));(v-=W*2)>Fe?(W*=P?1:-1,k+=W,A-=W):(v=0,k=A=(y+g)/2),(R-=H*2)>Fe?(H*=P?1:-1,N+=H,M-=H):(R=0,N=M=(y+g)/2)}var _=f*ot(N),I=f*_e(N),re=p*ot(A),le=p*_e(A);if(te>Fe){var be=f*ot(M),de=f*_e(M),L=p*ot(k),B=p*_e(k),$;if(b<qt)if($=bf(_,I,L,B,be,de,re,le)){var X=_-$[0],j=I-$[1],K=be-$[0],O=de-$[1],D=1/_e(Nu((X*K+j*O)/(Mt(X*X+j*j)*Mt(K*K+O*O)))/2),V=Mt($[0]*$[0]+$[1]*$[1]);ae=gn(te,(p-V)/(D-1)),E=gn(te,(f-V)/(D+1))}else ae=E=0}R>Fe?E>Fe?(w=bn(L,B,_,I,f,E,P),S=bn(be,de,re,le,f,E,P),u.moveTo(w.cx+w.x01,w.cy+w.y01),E<te?u.arc(w.cx,w.cy,E,Te(w.y01,w.x01),Te(S.y01,S.x01),!P):(u.arc(w.cx,w.cy,E,Te(w.y01,w.x01),Te(w.y11,w.x11),!P),u.arc(0,0,f,Te(w.cy+w.y11,w.cx+w.x11),Te(S.cy+S.y11,S.cx+S.x11),!P),u.arc(S.cx,S.cy,E,Te(S.y11,S.x11),Te(S.y01,S.x01),!P))):(u.moveTo(_,I),u.arc(0,0,f,N,M,!P)):u.moveTo(_,I),!(p>Fe)||!(v>Fe)?u.lineTo(re,le):ae>Fe?(w=bn(re,le,be,de,p,-ae,P),S=bn(_,I,L,B,p,-ae,P),u.lineTo(w.cx+w.x01,w.cy+w.y01),ae<te?u.arc(w.cx,w.cy,ae,Te(w.y01,w.x01),Te(S.y01,S.x01),!P):(u.arc(w.cx,w.cy,ae,Te(w.y01,w.x01),Te(w.y11,w.x11),!P),u.arc(0,0,p,Te(w.cy+w.y11,w.cx+w.x11),Te(S.cy+S.y11,S.cx+S.x11),P),u.arc(S.cx,S.cy,ae,Te(S.y11,S.x11),Te(S.y01,S.x01),!P))):u.arc(0,0,p,A,k,P)}if(u.closePath(),m)return u=null,m+""||null}return l.centroid=function(){var m=(+e.apply(this,arguments)+ +t.apply(this,arguments))/2,d=(+i.apply(this,arguments)+ +a.apply(this,arguments))/2-qt/2;return[ot(d)*m,_e(d)*m]},l.innerRadius=function(m){return arguments.length?(e=typeof m=="function"?m:q(+m),l):e},l.outerRadius=function(m){return arguments.length?(t=typeof m=="function"?m:q(+m),l):t},l.cornerRadius=function(m){return arguments.length?(r=typeof m=="function"?m:q(+m),l):r},l.padRadius=function(m){return arguments.length?(n=m==null?null:typeof m=="function"?m:q(+m),l):n},l.startAngle=function(m){return arguments.length?(i=typeof m=="function"?m:q(+m),l):i},l.endAngle=function(m){return arguments.length?(a=typeof m=="function"?m:q(+m),l):a},l.padAngle=function(m){return arguments.length?(s=typeof m=="function"?m:q(+m),l):s},l.context=function(m){return arguments.length?(u=m??null,l):u},l}h();h();var H1=Array.prototype.slice;function st(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}h();function Du(e){this._context=e}Du.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t);break}}};function At(e){return new Du(e)}h();h();function xn(e){return e[0]}function vn(e){return e[1]}function Mr(e,t){var r=q(!0),n=null,i=At,a=null,s=Kt(u);e=typeof e=="function"?e:e===void 0?xn:q(e),t=typeof t=="function"?t:t===void 0?vn:q(t);function u(c){var l,m=(c=st(c)).length,d,p=!1,f;for(n==null&&(a=i(f=s())),l=0;l<=m;++l)!(l<m&&r(d=c[l],l,c))===p&&((p=!p)?a.lineStart():a.lineEnd()),p&&a.point(+e(d,l,c),+t(d,l,c));if(f)return a=null,f+""||null}return u.x=function(c){return arguments.length?(e=typeof c=="function"?c:q(+c),u):e},u.y=function(c){return arguments.length?(t=typeof c=="function"?c:q(+c),u):t},u.defined=function(c){return arguments.length?(r=typeof c=="function"?c:q(!!c),u):r},u.curve=function(c){return arguments.length?(i=c,n!=null&&(a=i(n)),u):i},u.context=function(c){return arguments.length?(c==null?n=a=null:a=i(n=c),u):n},u}function ba(e,t,r){var n=null,i=q(!0),a=null,s=At,u=null,c=Kt(l);e=typeof e=="function"?e:e===void 0?xn:q(+e),t=typeof t=="function"?t:t===void 0?q(0):q(+t),r=typeof r=="function"?r:r===void 0?vn:q(+r);function l(d){var p,f,y,g=(d=st(d)).length,b,P=!1,N,M=new Array(g),k=new Array(g);for(a==null&&(u=s(N=c())),p=0;p<=g;++p){if(!(p<g&&i(b=d[p],p,d))===P)if(P=!P)f=p,u.areaStart(),u.lineStart();else{for(u.lineEnd(),u.lineStart(),y=p-1;y>=f;--y)u.point(M[y],k[y]);u.lineEnd(),u.areaEnd()}P&&(M[p]=+e(b,p,d),k[p]=+t(b,p,d),u.point(n?+n(b,p,d):M[p],r?+r(b,p,d):k[p]))}if(N)return u=null,N+""||null}function m(){return Mr().defined(i).curve(s).context(a)}return l.x=function(d){return arguments.length?(e=typeof d=="function"?d:q(+d),n=null,l):e},l.x0=function(d){return arguments.length?(e=typeof d=="function"?d:q(+d),l):e},l.x1=function(d){return arguments.length?(n=d==null?null:typeof d=="function"?d:q(+d),l):n},l.y=function(d){return arguments.length?(t=typeof d=="function"?d:q(+d),r=null,l):t},l.y0=function(d){return arguments.length?(t=typeof d=="function"?d:q(+d),l):t},l.y1=function(d){return arguments.length?(r=d==null?null:typeof d=="function"?d:q(+d),l):r},l.lineX0=l.lineY0=function(){return m().x(e).y(t)},l.lineY1=function(){return m().x(e).y(r)},l.lineX1=function(){return m().x(n).y(t)},l.defined=function(d){return arguments.length?(i=typeof d=="function"?d:q(!!d),l):i},l.curve=function(d){return arguments.length?(s=d,a!=null&&(u=s(a)),l):s},l.context=function(d){return arguments.length?(d==null?a=u=null:u=s(a=d),l):a},l}h();h();function Lu(e,t){return t<e?-1:t>e?1:t>=e?0:NaN}h();function Fu(e){return e}function ya(){var e=Fu,t=Lu,r=null,n=q(0),i=q(Zt),a=q(0);function s(u){var c,l=(u=st(u)).length,m,d,p=0,f=new Array(l),y=new Array(l),g=+n.apply(this,arguments),b=Math.min(Zt,Math.max(-Zt,i.apply(this,arguments)-g)),P,N=Math.min(Math.abs(b)/l,a.apply(this,arguments)),M=N*(b<0?-1:1),k;for(c=0;c<l;++c)(k=y[f[c]=c]=+e(u[c],c,u))>0&&(p+=k);for(t!=null?f.sort(function(A,v){return t(y[A],y[v])}):r!=null&&f.sort(function(A,v){return r(u[A],u[v])}),c=0,d=p?(b-l*M)/p:0;c<l;++c,g=P)m=f[c],k=y[m],P=g+(k>0?k*d:0)+M,y[m]={data:u[m],index:c,value:k,startAngle:g,endAngle:P,padAngle:N};return y}return s.value=function(u){return arguments.length?(e=typeof u=="function"?u:q(+u),s):e},s.sortValues=function(u){return arguments.length?(t=u,r=null,s):t},s.sort=function(u){return arguments.length?(r=u,t=null,s):r},s.startAngle=function(u){return arguments.length?(n=typeof u=="function"?u:q(+u),s):n},s.endAngle=function(u){return arguments.length?(i=typeof u=="function"?u:q(+u),s):i},s.padAngle=function(u){return arguments.length?(a=typeof u=="function"?u:q(+u),s):a},s}h();function Ru(e){return e<0?-1:1}function Bu(e,t,r){var n=e._x1-e._x0,i=t-e._x1,a=(e._y1-e._y0)/(n||i<0&&-0),s=(r-e._y1)/(i||n<0&&-0),u=(a*i+s*n)/(n+i);return(Ru(a)+Ru(s))*Math.min(Math.abs(a),Math.abs(s),.5*Math.abs(u))||0}function Eu(e,t){var r=e._x1-e._x0;return r?(3*(e._y1-e._y0)/r-t)/2:t}function xa(e,t,r){var n=e._x0,i=e._y0,a=e._x1,s=e._y1,u=(a-n)/3;e._context.bezierCurveTo(n+u,i+u*t,a-u,s-u*r,a,s)}function wn(e){this._context=e}wn.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:xa(this,this._t0,Eu(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var r=NaN;if(e=+e,t=+t,!(e===this._x1&&t===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,xa(this,Eu(this,r=Bu(this,e,t)),r);break;default:xa(this,this._t0,r=Bu(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=r}}};function yf(e){this._context=new Uu(e)}(yf.prototype=Object.create(wn.prototype)).point=function(e,t){wn.prototype.point.call(this,t,e)};function Uu(e){this._context=e}Uu.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,r,n,i,a){this._context.bezierCurveTo(t,e,n,r,a,i)}};function va(e){return new wn(e)}h();function _u(e,t){this._context=e,this._t=t}_u.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&this._point===2&&this._context.lineTo(this._x,this._y),(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var r=this._x*(1-this._t)+e*this._t;this._context.lineTo(r,this._y),this._context.lineTo(r,t)}break}}this._x=e,this._y=t}};function wa(e){return new _u(e,1)}h();h();function Sa(e,t){if((s=e.length)>1)for(var r=1,n,i,a=e[t[0]],s,u=a.length;r<s;++r)for(i=a,a=e[t[r]],n=0;n<u;++n)a[n][1]+=a[n][0]=isNaN(i[n][1])?i[n][0]:i[n][1]}h();function ka(e){for(var t=e.length,r=new Array(t);--t>=0;)r[t]=t;return r}function xf(e,t){return e[t]}function vf(e){let t=[];return t.key=e,t}function Ta(){var e=q([]),t=ka,r=Sa,n=xf;function i(a){var s=Array.from(e.apply(this,arguments),vf),u,c=s.length,l=-1,m;for(let d of a)for(u=0,++l;u<c;++u)(s[u][l]=[0,+n(d,s[u].key,l,a)]).data=d;for(u=0,m=st(t(s));u<c;++u)s[m[u]].index=u;return r(s,m),s}return i.keys=function(a){return arguments.length?(e=typeof a=="function"?a:q(Array.from(a)),i):e},i.value=function(a){return arguments.length?(n=typeof a=="function"?a:q(+a),i):n},i.order=function(a){return arguments.length?(t=a==null?ka:typeof a=="function"?a:q(Array.from(a)),i):t},i.offset=function(a){return arguments.length?(r=a??Sa,i):r},i}h();function Pa(e,t){if((c=e.length)>0)for(var r,n=0,i,a,s,u,c,l=e[t[0]].length;n<l;++n)for(s=u=0,r=0;r<c;++r)(a=(i=e[t[r]][n])[1]-i[0])>0?(i[0]=s,i[1]=s+=a):a<0?(i[1]=u,i[0]=u+=a):(i[0]=0,i[1]=a)}var $u=["#6366f1","#22d3ee","#f59e0b","#ec4899","#10b981","#8b5cf6","#f97316","#3b82f6"],wf=e=>typeof e=="object"&&e!==null&&"open"in e&&"close"in e,Sf=e=>typeof e=="object"&&e!==null&&"label"in e&&"value"in e;function kf(e){return e==="linear"?At:e==="step"?wa:va}function Ma(e,t){let r=/^#([0-9a-f]{3}|[0-9a-f]{6})$/i.exec(e.trim());if(!r)return e;let n=r[1];n.length===3&&(n=[...n].map(a=>a+a).join(""));let i=parseInt(n,16);return`rgba(${i>>16&255}, ${i>>8&255}, ${i&255}, ${t})`}function Iu(e){if(!e?.format)return null;if(typeof e.format=="function")return e.format;let t=Et(e.format);return r=>typeof r=="number"?t(r):String(r)}function Q(e){return Math.round(e*100)/100}function Jt(e,t=0,r=e.duration){return ue.create().fromTo("opacity",0,1,{start:e.start+t,end:e.start+t+Math.max(1,r),ease:"power2.out"})}function ju(e,t,r){let n=t.id??J("chart"),i=e.width??(typeof t.width=="number"?t.width:960),a=e.height??(typeof t.height=="number"?t.height:540),s=e.type??"line",u=e.fontSize??18,c=e.fontFamily??r,l=e.textColor??"#94a3b8",m=e.textColor??"#e2e8f0",d=e.gridColor??"rgba(148, 163, 184, 0.18)",p=e.colors?.length?e.colors:$u,f=e.cornerRadius??4,y=e.animate===!1?void 0:e.animate??{},g={enabled:y!==void 0,start:y?.start??0,duration:y?.duration??30,stagger:y?.stagger??-1,ease:y?.ease??"power3.out"},b=[],P=(w,S,W,H={},_="")=>{let I=F.text(w,{id:`${n}-label-${_||b.length}`,position:"absolute",x:Q(S.x),y:Q(S.y),width:Q(S.width),height:Q(S.height),fontFamily:c,fontSize:u,fontWeight:H.weight??500,fill:H.color??l,align:W,verticalAlign:"middle"});g.enabled&&I.animate(Jt(g,H.delay??0)),b.push(I)},N=Math.ceil(u*1.4);s==="pie"||s==="donut"?M():A();for(let w of b)Vu(w);return F.box({background:e.background??"transparent",...t,id:n,width:i,height:a,children:b});function M(){let w=k(),S=w.reduce((X,j)=>X+Math.max(0,j.value),0),W=e.legend??!0,H=R({top:16,right:W?Z(w.map(X=>X.label)):16,bottom:16,left:16}),_=G(H),I=Math.max(1,Math.min(_.width,_.height)/2),re=I*(e.innerRadius??(s==="donut"?.6:0)),le=_.x+_.width/2,be=_.y+_.height/2,de=4,L=ya().sort(null).value(X=>Math.max(0,X.value)).padAngle(w.length>1?.012:0)(w),B=yn().innerRadius(re).outerRadius(I).cornerRadius(Math.min(f,(I-re)/2)),$=v(L.length);L.forEach((X,j)=>{let K=B(X);if(!K)return;let O=w[j].color??p[j%p.length],D=F.shape("path",{id:`${n}-slice-${j}`,position:"absolute",x:Q(le-I-de),y:Q(be-I-de),width:Q(2*(I+de)),height:Q(2*(I+de)),d:Tf(K,I+de,I+de),fillColor:O,anchorX:.5,anchorY:.5});if(g.enabled){let V=g.start+j*$;D.animate(ue.create().fromTo("opacity",0,1,{start:V,end:V+g.duration*.5}).fromTo("scale",.85,1,{start:V,end:V+g.duration,ease:g.ease}))}if(b.push(D),e.valueLabels&&S>0&&X.value>0){let[V,C]=yn().innerRadius(re||I*.55).outerRadius(I).centroid(X),ye=`${Math.round(X.value/S*100)}%`;P(ye,{x:le+V-60,y:be+C-N/2,width:120,height:N},"center",{delay:j*$+g.duration*.5,color:"#ffffff",weight:700},`value-${j}`)}}),W&&te(w.map((X,j)=>({name:X.label,color:X.color??p[j%p.length]})),{x:_.x+_.width+24,y:_.y,height:_.height})}function k(){return(e.data??e.series?.[0]?.data??[]).map((S,W)=>{if(Sf(S))return S;let H=typeof S=="number"?S:Array.isArray(S)?Number(S[1]):Number(S.y);return{label:e.categories?.[W]??(Array.isArray(S)?String(S[0]):typeof S=="object"&&S?String(S.x):`${W+1}`),value:H}})}function A(){let w=e.series?.length?[...e.series]:e.data?[{data:e.data}]:[];if(w.length===0)return;let S=T=>T.type??s??"line",W=(T,U)=>T.color??p[U%p.length],H=w.map(T=>T.data.map((U,ee)=>wf(U)?{x:U.x,y:U.close}:typeof U=="number"?{x:e.categories?.[ee]??ee,y:U}:Array.isArray(U)?{x:U[0],y:Number(U[1])}:{x:U.x,y:Number(U.y)})),_=w.some(T=>S(T)==="bar"||S(T)==="candlestick"),I=H.flat().map(T=>T.x),re=_||I.some(T=>typeof T=="string")?"band":I.some(T=>T instanceof Date)?"time":"linear",le=T=>S(T)==="bar"||S(T)==="area",be=!!e.stacked,de=re==="band"?[...new Set(I.map(String))]:[],L=new Map;if(be){let T=w.map((pe,Se)=>Se).filter(pe=>le(w[pe])),U=de.length?de:[...new Set(I.map(pe=>+pe))].sort((pe,Se)=>pe-Se).map(String),ee=U.map(pe=>{let Se={};for(let Ne of T){let Ae=H[Ne].find(xe=>String(re==="band"?xe.x:+xe.x)===pe);Se[Ne]=Ae?.y??0}return Se});Ta().keys(T.map(String)).offset(Pa)(ee).forEach(pe=>{let Se=Number(pe.key);L.set(Se,H[Se].map(Ne=>{let Ae=U.indexOf(String(re==="band"?Ne.x:+Ne.x));return[pe[Ae][0],pe[Ae][1]]}))})}let B=[0];w.forEach((T,U)=>{let ee=L.get(U);if(S(T)==="candlestick")for(let me of T.data)B.push(me.high,me.low);else if(ee)for(let[me,pe]of ee)B.push(me,pe);else for(let me of H[U])B.push(me.y)}),w.every(T=>S(T)==="candlestick"||S(T)==="scatter"||S(T)==="line")&&B.shift();let $=e.yAxis??{},X=e.xAxis??{},j=$.ticks??5,K=$.min??Math.min(...B),O=$.max??Math.max(...B);(!Number.isFinite(K)||!Number.isFinite(O))&&([K,O]=[0,1]),K===O&&([K,O]=[K-1,O+1]);let D=$t().domain([K,O]);($.min===void 0||$.max===void 0)&&D.nice(j);let V=Iu($)??(T=>D.tickFormat(j)(T)),C=D.ticks(j),ye=w.map((T,U)=>({name:T.name??`Series ${U+1}`,color:W(T,U)})),oe=e.legend??w.length>1,Me=$.show!==!1,Ce=X.show!==!1,Ve=Me?Math.max(...C.map(T=>V(T).length))*u*.7+20:0,Lr=R({top:(oe?N+20:0)+Math.ceil(N/2),right:20,bottom:Ce?N+14:12,left:Math.max(16,Math.ceil(Ve))}),ne=G(Lr),Ua=N+6,_a=e.valueLabels?w.flatMap((T,U)=>S(T)==="bar"?H[U].map(ee=>ee.y):[]):[],gl=_a.some(T=>T>0)?Ua:0,bl=_a.some(T=>T<0)?Ua:0;D.range([ne.height-bl,gl]);let We;if(re==="band")We=fr().domain(de).range([0,ne.width]).paddingInner(_?.28:0).paddingOuter(_?.14:.5);else if(re==="time"){let T=I.map(U=>+new Date(U));We=hn().domain([Math.min(...T),Math.max(...T)]).range([0,ne.width])}else{let T=I.map(Number);We=$t().domain([X.min??Math.min(...T),X.max??Math.max(...T)]).range([0,ne.width])}let Ia=T=>{if(re==="band"){let U=We;return(U(String(T))??0)+U.bandwidth()/2}return We(re==="time"?new Date(T):Number(T))},Ga=0;$.grid!==!1&&C.forEach((T,U)=>{let ee=F.box({id:`${n}-ygrid-${U}`,position:"absolute",x:ne.x,y:Q(ne.y+D(T)-.5),width:ne.width,height:1,background:d});g.enabled&&ee.animate(Jt(g,Ga,g.duration/2)),b.push(ee)}),Me&&C.forEach((T,U)=>{P(V(T),{x:0,y:ne.y+D(T)-N/2,width:ne.x-12,height:N},"end",{},`y-${U}`)});let Qt=[],Fr=Iu(X);if(re==="band"){let T=We,U=Math.max(1,Math.ceil(de.length/Math.max(1,Math.floor(ne.width/(u*4)))));de.forEach((ee,me)=>{me%U===0&&Qt.push({pos:(T(ee)??0)+T.bandwidth()/2,text:Fr?Fr(ee):ee})})}else{let T=We,U=X.ticks??Math.max(2,Math.floor(ne.width/(u*6))),ee=T.tickFormat(U);for(let me of T.ticks(U))Qt.push({pos:T(me),text:Fr?Fr(re==="time"?new Date(me):me):ee(me)})}if(X.grid&&Qt.forEach((T,U)=>{let ee=F.box({id:`${n}-xgrid-${U}`,position:"absolute",x:Q(ne.x+T.pos-.5),y:ne.y,width:1,height:ne.height,background:d});g.enabled&&ee.animate(Jt(g,Ga,g.duration/2)),b.push(ee)}),Ce){let T=Math.max(u*3,ne.width/Math.max(1,Qt.length));Qt.forEach((U,ee)=>{P(U.text,{x:ne.x+U.pos-T/2,y:ne.y+ne.height+10,width:T,height:N},"center",{},`x-${ee}`)})}let[yl,xl]=D.domain();if(yl<=0&&xl>=0&&_){let T=F.box({id:`${n}-zero`,position:"absolute",x:ne.x,y:Q(ne.y+D(0)-1),width:ne.width,height:2,background:Ma("#94a3b8",.45)});g.enabled&&T.animate(Jt(g,0,g.duration/2)),b.push(T)}let Rr=w.map((T,U)=>U).filter(T=>S(w[T])==="bar"),vl=[...Rr,...w.map((T,U)=>U).filter(T=>S(w[T])==="candlestick"),...w.map((T,U)=>U).filter(T=>S(w[T])==="area"),...w.map((T,U)=>U).filter(T=>S(w[T])==="line"),...w.map((T,U)=>U).filter(T=>S(w[T])==="scatter")],Ke=re==="band"?We:null,za=Ke?v(de.length):0,$a=T=>Ke?de.indexOf(String(T)):0;vl.forEach((T,U)=>{let ee=w[T],me=W(ee,T),pe=S(ee),Se=H[T],Ne=L.get(T);if(pe==="bar"&&Ke){let Ae=be?1:Rr.length,xe=be?0:Rr.indexOf(T),Oe=Ke.bandwidth()/Ae,fe=Ae>1?Math.min(4,Oe*.12):0;Se.forEach((De,Ie)=>{let[Je,ke]=Ne?Ne[Ie]:[0,De.y],ge=ne.y+D(Math.max(Je,ke)),Br=ne.y+D(Math.min(Je,ke)),Le=Math.max(0,Br-ge),er=ne.x+(Ke(String(De.x))??0)+xe*Oe+fe/2,ut=De.y>=0?"up":"down",Er=F.box({id:`${n}-bar-${T}-${Ie}`,position:"absolute",x:Q(er),y:Q(ge),width:Q(Math.max(1,Oe-fe)),height:Q(Le),background:me,borderRadius:Math.min(f,(Oe-fe)/2,Le/2)}),Va=$a(De.x)*za+(be?Rr.indexOf(T)*g.duration*.6:0);if(g.enabled){let tr=g.start+Va,Ur=tr+g.duration,Wa=ue.create().fromTo("height",0,Q(Le),{start:tr,end:Ur,ease:g.ease});ut==="up"&&Wa.fromTo("y",Q(ge+Le),Q(ge),{start:tr,end:Ur,ease:g.ease}),Er.animate(Wa)}if(b.push(Er),e.valueLabels){let tr=V(De.y),Ur=ut==="up"?ge-N-4:ge+Le+4;P(tr,{x:er-30,y:Ur,width:Oe-fe+60,height:N},"center",{delay:Va+g.duration*.6,color:m,weight:600},`value-${T}-${Ie}`)}});return}if(pe==="candlestick"&&Ke){let Ae=e.upColor??"#22c55e",xe=e.downColor??"#ef4444",Oe=Ke.bandwidth();ee.data.forEach((fe,De)=>{let Ie=fe.close>=fe.open?Ae:xe,Je=ne.x+(Ke(String(fe.x))??0)+Oe/2,ke=$a(fe.x)*za,ge=[["wick",{x:Je-Math.max(1,Oe*.06),y:ne.y+D(fe.high),width:Math.max(2,Oe*.12),height:Math.max(1,D(fe.low)-D(fe.high))}],["body",{x:Je-Oe/2,y:ne.y+D(Math.max(fe.open,fe.close)),width:Oe,height:Math.max(2,Math.abs(D(fe.open)-D(fe.close)))}]];for(let[Br,Le]of ge){let er=F.box({id:`${n}-candle-${T}-${De}-${Br}`,position:"absolute",x:Q(Le.x),y:Q(Le.y),width:Q(Le.width),height:Q(Le.height),background:Ie,borderRadius:Br==="body"?Math.min(f/2,Le.width/2):0});if(g.enabled){let ut=g.start+ke,Er=Le.y+Le.height/2;er.animate(ue.create().fromTo("height",0,Q(Le.height),{start:ut,end:ut+g.duration,ease:g.ease}).fromTo("y",Q(Er),Q(Le.y),{start:ut,end:ut+g.duration,ease:g.ease}))}b.push(er)}});return}if(pe==="line"||pe==="area"){let Ae=ee.strokeWidth??3,xe=Math.ceil(Ae*2+(ee.pointRadius??0)+2),Oe=Se.map((ke,ge)=>({x:Ia(ke.x)+xe,top:D(Ne?Ne[ge][1]:ke.y)+xe,base:D(Ne?Ne[ge][0]:Math.max(D.domain()[0],Math.min(0,D.domain()[1])))+xe})),fe=kf(ee.curve),De={x:ne.x-xe,y:ne.y-xe,width:ne.width+2*xe,height:ne.height+2*xe},Ie=U*(g.duration/3);if(pe==="area"){let ke=ba().x(ge=>ge.x).y0(ge=>ge.base).y1(ge=>ge.top).curve(fe)(Oe);if(ke){let ge=F.shape("path",{id:`${n}-area-${T}`,position:"absolute",...Gu(De),d:zu(ke),fillType:"linear",fillColor:Ma(me,.45),gradientEndColor:Ma(me,.02),gradientAngle:90});g.enabled&&ge.animate(Jt(g,Ie+g.duration*.4,g.duration)),b.push(ge)}}let Je=Mr().x(ke=>ke.x).y(ke=>ke.top).curve(fe)(Oe);if(Je&&Ae>0){let ke=F.shape("path",{id:`${n}-line-${T}`,position:"absolute",...Gu(De),d:zu(Je),fillType:"none",strokeColor:me,strokeWidth:Ae,strokeLineCap:"round",strokeLineJoin:"round"});g.enabled&&ke.animate(ue.create().fromTo("trimEnd",0,1,{start:g.start+Ie,end:g.start+Ie+g.duration*1.5,ease:"power2.inOut"})),b.push(ke)}(ee.pointRadius??0)>0&&ja(T,Se,me,ee.pointRadius??0,Ie+g.duration*.5,Ne);return}pe==="scatter"&&ja(T,Se,me,ee.pointRadius??6,U*(g.duration/3),Ne)}),oe&&ae(ye);function ja(T,U,ee,me,pe,Se){let Ne=v(U.length);U.forEach((Ae,xe)=>{let Oe=D(Se?Se[xe][1]:Ae.y),fe=F.shape("circle",{id:`${n}-point-${T}-${xe}`,position:"absolute",x:Q(ne.x+Ia(Ae.x)-me),y:Q(ne.y+Oe-me),width:Q(me*2),height:Q(me*2),fillColor:ee,anchorX:.5,anchorY:.5});if(g.enabled){let De=g.start+pe+xe*Ne;fe.animate(ue.create().fromTo("scale",0,1,{start:De,end:De+g.duration*.6,ease:"back.out(2)"}).fromTo("opacity",0,1,{start:De,end:De+6}))}b.push(fe)})}}function v(w){return!g.enabled||w<=1?0:g.stagger>=0?g.stagger:Math.min(4,g.duration/w)}function R(w){let S=e.padding;return typeof S=="number"?{top:S,right:S,bottom:S,left:S}:{top:S?.top??w.top,right:S?.right??w.right,bottom:S?.bottom??w.bottom,left:S?.left??w.left}}function G(w){return{x:w.left,y:w.top,width:Math.max(1,i-w.left-w.right),height:Math.max(1,a-w.top-w.bottom)}}function Z(w){let S=Math.max(0,...w.map(W=>W.length));return Math.min(i*.4,S*u*.6+u+48)}function te(w,S){let W=N+8,H=S.y+Math.max(0,(S.height-w.length*W)/2);w.forEach((_,I)=>{E(_,S.x,H+I*W,I)})}function ae(w){let S=w.map(_=>_.name.length*u*.6+u+28),W=S.reduce((_,I)=>_+I,0),H=Math.max(0,i-W-20);w.forEach((_,I)=>{E(_,H,4,I),H+=S[I]})}function E(w,S,W,H){let _=Math.round(u*.7),I=F.box({id:`${n}-legend-swatch-${H}`,position:"absolute",x:Q(S),y:Q(W+(N-_)/2),width:_,height:_,borderRadius:Math.round(_/4),background:w.color});g.enabled&&I.animate(Jt(g,0,g.duration/2)),b.push(I),P(w.name,{x:S+_+8,y:W,width:w.name.length*u*.6+12,height:N},"start",{color:e.textColor??"#cbd5e1"},`legend-${H}`)}}function Vu(e){for(let t of e.animation?.tracks??[])for(let r of t.keyframes??[])r.frame=Math.round(r.frame);for(let t of e.children??[])Vu(t)}function Gu(e){return{x:Q(e.x),y:Q(e.y),width:Q(e.width),height:Q(e.height)}}function zu(e){return e.replace(/-?\d*\.\d{3,}(?:e-?\d+)?/gi,t=>String(Q(Number(t))))}function Tf(e,t,r){let n=[],i=/([MLAZ])([^MLAZ]*)/gi;for(let[,a,s]of e.matchAll(i)){let u=(s.match(/-?\d*\.?\d+(?:e-?\d+)?/gi)??[]).map(Number);if(a.toUpperCase()==="A")for(let c=0;c+6<u.length;c+=7)u[c+5]+=t,u[c+6]+=r;else if(a.toUpperCase()!=="Z")for(let c=0;c+1<u.length;c+=2)u[c]+=t,u[c+1]+=r;n.push(a+u.map(Q).join(","))}return n.join("")}h();var Pe=rr(Hu(),1);h();var kn=rr(mc(),1);function Ca(e,t=24,r){let n=e.fps??t;if(n<=0)throw new Error(`[FrameGrid] Invalid fps: ${n}. Must be > 0.`);let i=[];if(Array.isArray(e.frames)&&e.frames.length>0)for(let s of e.frames){if(typeof s!="number"||s<0||!Number.isFinite(s))throw new Error(`[FrameGrid] Invalid frame index in frames list: ${s}`);i.push({frame:Math.round(s),timeMs:Math.round(s/n*1e3)})}else if(Array.isArray(e.timesMs)&&e.timesMs.length>0)for(let s of e.timesMs){if(typeof s!="number"||s<0||!Number.isFinite(s))throw new Error(`[FrameGrid] Invalid timestamp in timesMs list: ${s}`);i.push({frame:Math.round(s/1e3*n),timeMs:Math.round(s)})}else if(e.startMs!==void 0||e.endMs!==void 0||e.stepMs!==void 0){let s=e.startMs??0,u=e.endMs??r??s+1e3,c=e.stepMs??Math.round(5/n*1e3);if(s<0||u<s)throw new Error(`[FrameGrid] Invalid millisecond range: startMs=${s}, endMs=${u}. startMs must be <= endMs.`);if(c<=0)throw new Error(`[FrameGrid] Invalid stepMs: ${c}. Must be > 0.`);for(let l=s;l<=u;l+=c)i.push({frame:Math.round(l/1e3*n),timeMs:Math.round(l)})}else{let s=e.startFrame??0,u=e.endFrame??(r?Math.min(s+30,Math.floor(r/1e3*n)):s+30),c=e.stepFrames??5;if(s<0||u<s)throw new Error(`[FrameGrid] Invalid frame range: startFrame=${s}, endFrame=${u}. startFrame must be <= endFrame.`);if(c<=0)throw new Error(`[FrameGrid] Invalid stepFrames: ${c}. Must be > 0.`);for(let l=s;l<=u;l+=c)i.push({frame:Math.round(l),timeMs:Math.round(l/n*1e3)})}let a=Math.min(e.maxFrames??64,120);if(i.length>a)throw new Error(`[FrameGrid] Requested ${i.length} frames exceeds the safety threshold of ${a}. Increase stepFrames/stepMs or narrow the start/end range to prevent oversized images.`);if(i.length===0)throw new Error("[FrameGrid] Zero frames were resolved for sampling.");return{samples:i,fps:n}}function Na(e,t,r){let n=r.gap??12,i=r.padding??16,s=r.showHeader??!0?54:0,u=r.maxGridWidth??4096,c=r.maxGridHeight??4096,l=r.columns;(!l||l<=0)&&(e<=4?l=e:e<=9?l=3:e<=16?l=4:e<=25?l=5:l=6),l=Math.min(l,e);let m=Math.ceil(e/l),d=Math.max(120,Math.min(r.cellWidth??320,960)),p=r.cellHeight??Math.round(d/(t>0?t:16/9)),f=l*d+(l-1)*n+i*2,y=m*p+(m-1)*n+i*2+s;if(f>u||y>c){let g=Math.min((u-(l-1)*n-i*2)/(l*d),(c-(m-1)*n-i*2-s)/(m*p));if(g<.25)throw new Error(`[FrameGrid] Cannot fit ${e} cells (${l}x${m}) into max dimensions [${u}x${c}]. Reduce cell count or decrease cellWidth.`);d=Math.max(100,Math.floor(d*g)),p=Math.round(d/(t>0?t:16/9)),f=l*d+(l-1)*n+i*2,y=m*p+(m-1)*n+i*2+s}return{columns:l,rows:m,cellWidth:d,cellHeight:p,totalWidth:f,totalHeight:y,headerHeight:s,gap:n,padding:i}}async function Cr(e,t={}){let r=e.fps??24,n=e.durationMs,{samples:i,fps:a}=Ca(t,r,n),s=e.width??1920,u=e.height??1080,c=s>0&&u>0?s/u:16/9,l=Na(i.length,c,t),m=t.renderer??new Pe.HeadlessMediaRenderer,d=[];for(let b of i){let P=await e.renderFrame({frame:b.frame,atMs:b.timeMs,fps:a,renderer:m});d.push(P)}let p=new kn.Canvas(l.totalWidth,l.totalHeight),f=p.getContext("2d");if(f.fillStyle=t.backgroundColor??"#090a0f",f.fillRect(0,0,l.totalWidth,l.totalHeight),t.showHeader!==!1&&l.headerHeight>0){let b=t.headerText??`FrameGrid Conformance Review | Frames ${i[0].frame}\u2013${i[i.length-1].frame} (Count: ${i.length})`,P=`${s}\xD7${u} @ ${a} FPS | Cell: ${l.cellWidth}\xD7${l.cellHeight}px | Step: ${t.stepFrames?`${t.stepFrames}f`:t.stepMs?`${t.stepMs}ms`:"Custom"}`;f.fillStyle="#f8fafc",f.font="bold 15px sans-serif",f.fillText(b,l.padding,l.padding+18),f.fillStyle="#94a3b8",f.font="12px sans-serif",f.fillText(P,l.padding,l.padding+36),f.strokeStyle="#1e2433",f.lineWidth=1,f.beginPath(),f.moveTo(l.padding,l.padding+46),f.lineTo(l.totalWidth-l.padding,l.padding+46),f.stroke()}let y=t.showLabels??!0;for(let b=0;b<i.length;b++){let P=i[b],N=b%l.columns,M=Math.floor(b/l.columns),k=l.padding+N*(l.cellWidth+l.gap),A=l.padding+l.headerHeight+M*(l.cellHeight+l.gap),v=await(0,kn.loadImage)(d[b]);if(f.drawImage(v,k,A,l.cellWidth,l.cellHeight),f.strokeStyle="#262b3d",f.lineWidth=1,f.strokeRect(k,A,l.cellWidth,l.cellHeight),y){let R=`F:${P.frame} \u2022 ${P.timeMs}ms`;f.font="bold 11px sans-serif";let Z=f.measureText(R).width+14,te=20,ae=k+6,E=A+6;f.fillStyle="#090a0fee",f.beginPath(),f.roundRect(ae,E,Z,te,4),f.fill(),f.strokeStyle="#6366f155",f.lineWidth=1,f.stroke(),f.fillStyle="#e2e8f0",f.fillText(R,ae+7,E+14)}}let g=await p.toBuffer("png");return t.outputPath&&await nr.writeFile(t.outputPath,g),g}h();var Pf=["material","shininess","roughness","specularIntensity","metallic","ambientIntensity","ior","transmission","dispersion","fresnelPower","envIntensity","emissive","emissiveIntensity","castShadow"];function Nr(e){let t=e,r={};for(let n of Pf)t[n]!==void 0&&(r[n]=t[n]);return r}function Mf(e){return e==="lit"||e==="unlit"||e==="toon"?e:void 0}function Aa(e,t,r){let n=Object.fromEntries(Object.entries({...t,color:r.color,material:Mf(r.material),shininess:r.shininess,roughness:r.roughness,metallic:r.metallic}).filter(([,i])=>i!==void 0));return F.model({id:r.id??J(e),modelData:ro(n),primitive3d:n,is3D:!0,x:r.x??0,y:r.y??0,z:r.z??0,rotateX:r.rotateX??0,rotateY:r.rotateY??0,rotateZ:r.rotateZ??0,scale:r.scale??1,scaleX:r.scaleX??1,scaleY:r.scaleY??1,scaleZ:r.scaleZ??1,opacity:r.opacity??1,color:r.tint,material:r.material,shininess:r.shininess??32,roughness:r.roughness,specularIntensity:r.specularIntensity??.5,ambientIntensity:r.ambientIntensity??1,metallic:r.metallic,...Nr({emissive:r.emissive,emissiveIntensity:r.emissiveIntensity,castShadow:r.castShadow}),twoSided:!1,startFrame:r.startFrame,durationFrames:r.durationFrames})}function Tn(e,t){let r=t.faces??t.items??[];for(let[n,i]of Object.entries(t))Object.defineProperty(e,n,{value:i,enumerable:!1,configurable:!0});return Object.defineProperty(e,Symbol.iterator,{value:function*(){yield*r},enumerable:!1,configurable:!0}),e}function Cf(e){let t=e.scale??1,r=Math.max(Math.abs(t*(e.scaleX??1)),Math.abs(t*(e.scaleY??1)));return r>0?r:1}var Ot={cube(e){let t=e.size,[r,n,i]=typeof t=="number"?[t,t,t]:t,a=e.twoSided??!0,s={front:"#3b82f6",back:"#1d4ed8",left:"#2563eb",right:"#1e40af",top:"#60a5fa",bottom:"#172554"},u=(f,y,g,b,P,N)=>{if(y&&typeof y=="object"&&"kind"in y){let k=y;return k.position="absolute",k.is3D=!0,k.twoSided=a,k.material=k.material??e.material??"lit",k.shininess=k.shininess??e.shininess??32,k.specularIntensity=k.specularIntensity??e.specularIntensity??.5,e.roughness!==void 0&&k.roughness===void 0&&(k.roughness=e.roughness),e.metallic!==void 0&&k.metallic===void 0&&(k.metallic=e.metallic),e.ambientIntensity!==void 0&&k.ambientIntensity===void 0&&(k.ambientIntensity=e.ambientIntensity),Object.assign(k,N),k}let M=typeof y=="string"?{background:y}:y??{background:g};return F.box({id:`${e.id??"cube"}-${f}`,position:"absolute",width:b,height:P,is3D:!0,twoSided:a,material:M.material??e.material??"lit",shininess:M.shininess??e.shininess??32,specularIntensity:M.specularIntensity??e.specularIntensity??.5,roughness:M.roughness??e.roughness,metallic:M.metallic??e.metallic,ambientIntensity:M.ambientIntensity??e.ambientIntensity??1,...Nr({emissive:M.emissive??e.emissive,emissiveIntensity:M.emissiveIntensity??e.emissiveIntensity,castShadow:M.castShadow??e.castShadow}),background:M.background??g,borderRadius:M.borderRadius??0,borderWidth:M.borderWidth,borderColor:M.borderColor,opacity:M.opacity??1,children:M.children??[],...N})},c=r/2,l=n/2,m=i/2,d=[u("front",e.faces?.front,s.front,r,n,{x:0,y:0,z:-m,rotateX:0,rotateY:0,rotateZ:0}),u("back",e.faces?.back,s.back,r,n,{x:0,y:0,z:m,rotateX:0,rotateY:180,rotateZ:0}),u("left",e.faces?.left,s.left,i,n,{x:-c,y:0,z:0,rotateX:0,rotateY:90,rotateZ:0}),u("right",e.faces?.right,s.right,i,n,{x:c,y:0,z:0,rotateX:0,rotateY:-90,rotateZ:0}),u("top",e.faces?.top,s.top,r,i,{x:0,y:-l,z:0,rotateX:-90,rotateY:0,rotateZ:0}),u("bottom",e.faces?.bottom,s.bottom,r,i,{x:0,y:l,z:0,rotateX:90,rotateY:0,rotateZ:0})],p=F.box({id:e.id??J("cube"),position:"absolute",x:e.x??0,y:e.y??0,z:e.z??0,width:r,height:n,is3D:!0,transformStyle:"preserve-3d",rotateX:e.rotateX??0,rotateY:e.rotateY??0,rotateZ:e.rotateZ??0,opacity:e.opacity??1,background:"transparent",children:d});return Tn(p,{faces:d})},carousel(e){let{items:t,radius:r,faceInward:n=!1,twoSided:i=!0}=e,a=t.length,s=a>0?360/a:0,u=t.map((l,m)=>{let d=m*s,p=d*Math.PI/180,f=r*Math.sin(p),y=-r*Math.cos(p),g=n?180-d:-d,b=l;return b.position="absolute",b.is3D=!0,b.twoSided=i,b.x=f,b.y=0,b.z=y,b.rotateY=g,b}),c=F.box({id:e.id??J("carousel"),position:"absolute",x:e.x??0,y:e.y??0,z:e.z??0,width:e.itemWidth??200,height:e.itemHeight??200,is3D:!0,transformStyle:"preserve-3d",rotateX:e.rotateX??0,rotateY:e.rotateY??0,rotateZ:e.rotateZ??0,opacity:e.opacity??1,background:"transparent",children:u});return Tn(c,{items:u})},prism(e){let{sides:t,radius:r,height:n,twoSided:i=!0}=e,a=Math.max(3,t),s=2*r*Math.tan(Math.PI/a),u=360/a,c=[];for(let m=0;m<a;m++){let d=m*u,p=d*Math.PI/180,f=r*Math.sin(p),y=r*Math.cos(p),g=e.sideConfigs?.[m],b=typeof g=="string"?g:g?.background??`hsl(${m*360/a}, 70%, 50%)`;c.push(F.box({id:`${e.id??"prism"}-panel-${m}`,position:"absolute",width:s,height:n,is3D:!0,twoSided:i,x:f,y:0,z:y,rotateY:d,background:b}))}let l=F.box({id:e.id??J("prism"),position:"absolute",x:e.x??0,y:e.y??0,z:e.z??0,width:s,height:n,is3D:!0,transformStyle:"preserve-3d",rotateX:e.rotateX??0,rotateY:e.rotateY??0,rotateZ:e.rotateZ??0,opacity:e.opacity??1,background:"transparent",children:c});return Tn(l,{faces:c})},plane(e){return F.box({id:e.id??J("plane"),position:"absolute",width:e.width,height:e.height,x:e.x??0,y:e.y??0,z:e.z??0,is3D:!0,twoSided:e.twoSided??!0,rotateX:e.rotateX??0,rotateY:e.rotateY??0,rotateZ:e.rotateZ??0,background:e.background??"#3b82f6",borderRadius:e.borderRadius??0,opacity:e.opacity??1,...Nr(e),children:e.children??[]})},grid(e){let{width:t,height:r}=e,n=e.id??J("grid"),i=Math.max(1,Math.round(e.divisions??10)),a=e.lineWidth??2,s=e.color??"rgba(59, 130, 246, 0.5)",u=(p,f,y,g,b)=>F.box({id:`${n}-${p}`,position:"absolute",x:f,y,z:0,width:g,height:b,is3D:!0,twoSided:!0,material:"unlit",background:s}),c=4096,l=[],m=Math.ceil(r/c),d=Math.ceil(t/c);for(let p=0;p<=i;p++){let f=p/i-.5;for(let y=0;y<m;y++){let g=r/m,b=-r/2+g*(y+.5);l.push(u(`v${p}-${y}`,f*t,b,a,g))}for(let y=0;y<d;y++){let g=t/d,b=-t/2+g*(y+.5);l.push(u(`h${p}-${y}`,b,f*r,g,a))}}return F.box({id:n,position:"absolute",width:t,height:r,x:e.x??0,y:e.y??0,z:e.z??0,is3D:!0,transformStyle:"preserve-3d",rotateX:e.rotateX??90,rotateY:e.rotateY??0,rotateZ:e.rotateZ??0,background:"transparent",opacity:e.opacity??1,children:l})},text(e){return e.extrusionDepth&&e.extrusionDepth>0?Ot.extrudedText({...e,depth:e.extrusionDepth}):F.text(e.text,{id:e.id??J("text3d"),position:"absolute",x:e.x??0,y:e.y??0,z:e.z??0,is3D:!0,twoSided:e.twoSided??!0,rotateX:e.rotateX??0,rotateY:e.rotateY??0,rotateZ:e.rotateZ??0,fontSize:e.fontSize??48,fontFamily:e.fontFamily,fontWeight:e.fontWeight??"bold",fontStyle:e.fontStyle,fill:e.fill??"#ffffff",align:e.align??"center",direction:e.direction,verticalAlign:e.verticalAlign??"middle",letterSpacing:e.letterSpacing,lineHeight:e.lineHeight,material:e.material??"lit",shininess:e.shininess??64,roughness:e.roughness,specularIntensity:e.specularIntensity??.8,ambientIntensity:e.ambientIntensity??1,metallic:e.metallic,...Nr(e),opacity:e.opacity??1,background:e.background,borderRadius:e.borderRadius,padding:e.padding,stroke:e.stroke,strokeWidth:e.strokeWidth})},extrudedText(e){let{depth:t,text:r,fill:n="#ffffff",bevelColor:i}=e,a,s=(e.curveTolerance??.1)/Cf(e),u=(e.fontFamily?Lt.getParsed(e.fontFamily):null)??Lt.getParsed("Inter")??Lt.getParsed("Unbounded")??Lt.getFirstParsed();u&&(a=to({text:r,font:u,fontSize:e.fontSize??48,depth:t,fill:n,bevelColor:i,curveSegments:e.curveSegments,curveTolerance:s,align:e.align,direction:e.direction,verticalAlign:e.verticalAlign,letterSpacing:e.letterSpacing,material:e.material==="lit"||e.material==="unlit"||e.material==="toon"?e.material:void 0,shininess:e.shininess,roughness:e.roughness,metallic:e.metallic}).modelData);let c=F.model({id:e.id??J("extruded-text"),modelData:a,is3D:!0,x:e.x??0,y:e.y??0,z:e.z??0,rotateX:e.rotateX??0,rotateY:e.rotateY??0,rotateZ:e.rotateZ??0,scale:e.scale??1,scaleX:e.scaleX??1,scaleY:e.scaleY??1,scaleZ:e.scaleZ??1,opacity:e.opacity??1,material:e.material,shininess:e.shininess??32,roughness:e.roughness,specularIntensity:e.specularIntensity??.8,ambientIntensity:e.ambientIntensity??1,metallic:e.metallic,...Nr(e),twoSided:e.twoSided??!0,text3dOptions:{...e,curveTolerance:s}});return Tn(c,{faces:[c],items:[c]})},roundedBox(e){return Aa("rounded-box",{type:"roundedBox",width:e.width,height:e.height,depth:e.depth,radius:e.radius,segments:e.segments,taper:e.taper},e)},sphere(e){return Aa("sphere",{type:"sphere",radius:e.radius,segments:e.segments},e)},cylinder(e){return Aa("cylinder",{type:"cylinder",radius:e.radius,radiusTop:e.radiusTop,radiusBottom:e.radiusBottom,height:e.height,segments:e.segments,openEnded:e.openEnded},e)},model(e={}){return F.model(e)},obj(e,t={}){return F.obj(e,t)},fbx(e,t={}){return F.fbx(e,t)},gltf(e,t={}){return F.gltf(e,t)},glb(e,t={}){return F.glb(e,t)},stl(e,t={}){return F.stl(e,t)},ply(e,t={}){return F.ply(e,t)},vox(e,t={}){return F.vox(e,t)},threeDS(e,t={}){return F.threeDS(e,t)},off(e,t={}){return F.off(e,t)}};h();var Oa=(e,t,r)=>{switch(e){case"left":return{dx:-t,dy:0};case"right":return{dx:t,dy:0};case"up":return{dx:0,dy:-r};default:return{dx:0,dy:r}}};function Xe(e,t,r){return{kind:e,frames:Math.max(0,Math.round(t)),build:r}}var Yu={cut:()=>Xe("cut",0,()=>({})),crossfade:(e=15,t="sine.inOut")=>Xe("crossfade",e,r=>({incoming:ue.keys("opacity",[[0,0],[r.frames,1,t]])})),fadeThrough:(e=20,t="sine.inOut")=>Xe("fadeThrough",e,r=>{let n=Math.max(1,Math.floor(r.frames/2));return{outgoing:ue.keys("opacity",[[r.outStart,1],[r.outStart+n,0,t]]),incoming:ue.keys("opacity",[[0,0],[n,0],[r.frames,1,t]])}}),push:(e="left",t=18,r="power3.inOut")=>Xe("push",t,n=>{let{dx:i,dy:a}=Oa(e,n.width,n.height),s=ue.create(),u=ue.create();return i!==0?(s.keys("x",[[n.outStart,n.outRest.x],[n.outStart+n.frames,n.outRest.x+i,r]]),u.keys("x",[[0,n.inRest.x-i],[n.frames,n.inRest.x,r]])):(s.keys("y",[[n.outStart,n.outRest.y],[n.outStart+n.frames,n.outRest.y+a,r]]),u.keys("y",[[0,n.inRest.y-a],[n.frames,n.inRest.y,r]])),{outgoing:s,incoming:u}}),slide:(e="left",t=18,r="power3.out")=>Xe("slide",t,n=>{let{dx:i,dy:a}=Oa(e,n.width,n.height),s=i!==0?"x":"y",u=i!==0?n.inRest.x:n.inRest.y;return{outgoing:ue.keys("opacity",[[n.outStart,1],[n.outStart+n.frames,.6,r]]),incoming:ue.keys(s,[[0,u-(i||a)],[n.frames,u,r]])}}),zoom:(e=18,t="power2.inOut")=>Xe("zoom",e,r=>({outgoing:ue.create().keys("scale",[[r.outStart,1],[r.outStart+r.frames,1.25,t]]).keys("opacity",[[r.outStart,1],[r.outStart+r.frames,0,t]]),incoming:ue.create().keys("scale",[[0,.85],[r.frames,1,t]]).keys("opacity",[[0,0],[r.frames,1,t]])})),whip:(e="left",t=10)=>{let r=Yu.push(e,t,"expo.inOut");return Xe("whip",t,n=>({...r.build(n),sceneProps:{motionBlurShutter:360}}))},wipe:(e="left",t=18,r="power2.inOut")=>Xe("wipe",t,n=>{let{dx:i,dy:a}=Oa(e,n.width,n.height),s=i!==0?"x":"y",u=i!==0?n.inRest.x:n.inRest.y;return{incomingMatte:F.box({id:J("wipe-matte"),position:"absolute",x:n.inRest.x,y:n.inRest.y,width:n.width,height:n.height,background:"#ffffff"}).animate(ue.keys(s,[[0,u-(i||a)],[n.frames,u,r]]))}}),iris:(e=20,t={})=>Xe("iris",e,r=>{let[n,i]=t.at??[.5,.5],a=r.inRest.x+n*r.width,s=r.inRest.y+i*r.height,u=Math.hypot(Math.max(n,1-n)*r.width,Math.max(i,1-i)*r.height);return{incomingMatte:F.shape("circle",{id:J("iris-matte"),position:"absolute",x:a-u,y:s-u,width:u*2,height:u*2,fillColor:"#ffffff"}).animate(ue.keys("scale",[[0,0],[r.frames,1,t.ease??"power2.inOut"]]))}})};function Pn(e,t,r){let n=e[t];return typeof n=="number"?n:r}function Xu(e,t={}){let r=[],n=[],i=0;e.forEach((s,u)=>{let c=u===0?void 0:s.transition,l=Math.min(c?.frames??0,e[u-1]?.duration??0),m=Math.max(0,i-l),d=Math.max(1,Math.round(s.duration));n.push(m);let p=s.scene;(p.position===void 0||p.position==="relative")&&(p.position="absolute",p.x??=0,p.y??=0),p.startFrame=m,p.durationFrames=d,r.push(p),i=m+d}),e.forEach((s,u)=>{if(u===0||!s.transition||s.transition.frames===0)return;let c=r[u-1],l=r[u],m=Math.min(s.transition.frames,e[u-1].duration),d=t.width??Pn(l,"width",1920),p=t.height??Pn(l,"height",1080),f=s.transition.build({width:d,height:p,frames:m,outStart:e[u-1].duration-m,outRest:{x:typeof c.x=="number"?c.x:0,y:typeof c.y=="number"?c.y:0},inRest:{x:typeof l.x=="number"?l.x:0,y:typeof l.y=="number"?l.y:0}}),y=(g,b)=>{if(!b)return;let P=g.animation?.tracks??[];g.animation=ue.merge({tracks:P},b).toSpec()};y(c,f.outgoing),y(l,f.incoming),f.sceneProps&&(Object.assign(c,f.sceneProps),Object.assign(l,f.sceneProps)),f.incomingMatte&&(l.matte={node:f.incomingMatte,mode:"alpha"})});let a=F.box({id:t.id??J("sequence"),position:"absolute",x:0,y:0,width:t.width??Pn(r[0]??{},"width",1920),height:t.height??Pn(r[0]??{},"height",1080),startFrame:t.startFrame??0,durationFrames:Math.max(1,i),children:r});return Object.defineProperty(a,"totalFrames",{value:i,enumerable:!1}),Object.defineProperty(a,"sceneStarts",{value:n,enumerable:!1}),a}h();var Nf={studio:{environment:"studio",envIntensity:1,key:{dir:[-.55,-1,-.7],color:"#fff6ec",intensity:1.1},rim:{dir:[.9,-.5,.9],color:"#dbe8ff",intensity:.9}},soft:{environment:"soft",envIntensity:1,key:{dir:[-.4,-1,-.8],color:"#ffffff",intensity:1}},sunset:{environment:"sunset",envIntensity:.9,key:{dir:[-1,-.35,-.3],color:"#ffb27a",intensity:2.2},fill:{dir:[.8,-.6,-.4],color:"#7f9cff",intensity:.35}},dramatic:{environment:"night",envIntensity:.8,key:{dir:[-.8,-1,-.35],color:"#ffffff",intensity:2.4},rim:{dir:[.7,-.4,1],color:"#8fb4ff",intensity:1.8}}};function Af([e,t,r],n){let i=n*Math.PI/180,a=Math.cos(i),s=Math.sin(i);return[a*e+s*r,t,-s*e+a*r]}function qu(e,t,r,n){let[i,a,s]=Af(e,n),u=Math.hypot(i,a,s)||1;return{x:t[0]+i/u*r,y:t[1]+a/u*r,z:t[2]+s/u*r,targetX:t[0],targetY:t[1],targetZ:t[2]}}function Mn(e,t){let r=Nf[e],n=t.target??[960,540,0],i=t.distance??1600,a=t.rotation??0,s=t.intensity??1,u=t.id??J(`lighting-${e}`),c=[qe.environment(r.environment,{id:`${u}-environment`,intensity:r.envIntensity*s,rotation:a,exposure:t.exposure,toneMapping:t.toneMapping,fog:t.fog,bloom:t.bloom}),qe.directional({id:`${u}-key`,color:r.key.color,intensity:r.key.intensity*s,...qu(r.key.dir,n,i,a),castShadow:t.shadows??!0,shadowSoftness:t.shadowSoftness??3})];for(let[l,m]of[["rim",r.rim],["fill",r.fill]])m&&c.push(qe.directional({id:`${u}-${l}`,color:m.color,intensity:m.intensity*s,...qu(m.dir,n,i,a)}));return c}var Of={studio:(e={})=>Mn("studio",e),soft:(e={})=>Mn("soft",e),sunset:(e={})=>Mn("sunset",e),dramatic:(e={})=>Mn("dramatic",e)};h();var dl=rr(xc(),1),Dn=rr(Ec(),1);var Ba=rr(Ku(),1);h();var Ar=z.dirname(_r(import.meta.url)),Ju=["import","meta","url"].join("."),Df=En(import.meta.url),Or="/@framefields/engine",el={framefields:"index.ts","framefields/effects":"effects/index.ts","framefields/audio":"audio/index.ts","framefields/signals":"signals/index.ts","framefields/fonts":"fonts/index.ts"},Da={path:"path","path/posix":"path",url:"url",os:"os",fs:"fs","fs/promises":"fs-promises",module:"module"},Qu=new Set(["sharp","skia-canvas","node-av","onnxruntime-node","@resvg/resvg-js","@napi-rs/webcodecs","@mediabunny/server","@mediabunny/mp3-encoder","webgpu","pino","pino-pretty","dotenv","esbuild","@framefields/renderer","framefields/renderer","framefields/preview"]),Lf=`
709
706
  const stub = () => new Proxy(function () {}, {
710
707
  get: (_t, k) => (k === "__esModule" ? true : k === Symbol.toPrimitive ? () => "" : stub()),
711
708
  apply: () => stub(),
712
709
  construct: () => stub(),
713
710
  });
714
711
  module.exports = stub();
715
- `;async function If(e){let{build:t}=await import("./esbuild-GWV7CM7D.mjs"),n=j.resolve(Ln,".."),r=j.join(Ln,"shims"),a={player:j.join(Ln,"player.ts")};for(let[i,o]of Object.entries(ll))a[hl(i)]=j.join(n,o);for(let i of new Set(Object.values(Ii)))a[`shims/${i}`]=j.join(r,`${i}.ts`);await ge.promises.rm(e,{recursive:!0,force:!0}),await t({...fl,entryPoints:a,outdir:e,outExtension:{".js":".mjs"},splitting:!0,minify:!0,conditions:["development","browser","import"],define:{"process.env.NODE_ENV":'"production"',global:"globalThis"},inject:[j.join(r,"process.ts")],plugins:[{name:"framefields-engine",setup(i){i.onResolve({filter:/^framefields-preview:renderers$/},()=>({path:zf()})),gl(i,o=>({path:j.join(r,`${o}.ts`)}))}}]})}async function cl(e){let{build:t}=await import("./esbuild-GWV7CM7D.mjs"),n=j.resolve(e.entry),r=u=>({path:`${Fn}/${u}.mjs`,external:!0}),a={modelsDir:e.modelsDir,ortBase:e.ortBase},i=await t({...fl,entryPoints:["framefields-preview:entry"],write:!1,metafile:!0,sourcemap:"inline",plugins:[{name:"framefields-project",setup(u){u.onResolve({filter:/^framefields-preview:entry$/},()=>({path:"entry",namespace:"framefields-preview"})),u.onLoad({filter:/.*/,namespace:"framefields-preview"},()=>({contents:[`import { startPlayer } from ${JSON.stringify(`${Fn}/player.mjs`)};`,`import * as mod from ${JSON.stringify(n)};`,`startPlayer(mod, ${JSON.stringify(e.exportName)}, ${JSON.stringify(a)});`].join(`
716
- `),resolveDir:j.dirname(n),loader:"js"})),u.onResolve({filter:/^\/@framefields\/engine\//},c=>({path:c.path,external:!0})),u.onResolve({filter:/^framefields(\/|$)/},c=>ll[c.path]?r(hl(c.path)):void 0),gl(u,c=>r(`shims/${c}`)),Uf(u)}}]}),o=Object.keys(i.metafile?.inputs??{}).filter(u=>!u.includes(":")&&!u.includes("node_modules")).map(u=>j.resolve(u));return{code:i.outputFiles[0].text,inputs:o}}var Lr;function Ef(e){return[e,j.join(e,"..")].map(t=>j.join(t,"preview-engine")).find(t=>ge.existsSync(j.join(t,"player.mjs")))}function dl(){let e=Ef(Ln);return e?Promise.resolve(e):(Lr??=(async()=>{let t=j.join(_r.tmpdir(),`framefields-preview-engine-${M.pid}`);return await If(t),t})(),Lr.catch(()=>{Lr=void 0}),Lr)}function ml(){return M.env.FRAMEFIELDS_MODELS_DIR?j.resolve(M.env.FRAMEFIELDS_MODELS_DIR):j.join(_r.homedir(),".cache","framefields","models")}var _f="1.30.0";function pl(e){for(let t of[e,Ln])try{let n=zr(j.join(t,"noop.js")).resolve("onnxruntime-web"),r=j.dirname(n);return{base:`/@fs${r}/`,dir:r}}catch{}return{base:`https://cdn.jsdelivr.net/npm/onnxruntime-web@${_f}/dist/`}}var fl={bundle:!0,format:"esm",platform:"browser",target:"es2022",mainFields:["browser","module","main"],logLevel:"silent"};function hl(e){return e==="framefields"?"framefields":e.slice(12)}function gl(e,t){e.onResolve({filter:/^(node:)?[a-z_/]+$/},n=>{let r=n.path.replace(/^node:/,"");if(Ii[r])return t(Ii[r]);if(n.path.startsWith("node:")||no(r))return{path:r,namespace:"framefields-stub"}}),e.onResolve({filter:/.*/},n=>{let r=Gf(n.path);if(r&&(ul.has(r)||ul.has(n.path)))return{path:n.path,namespace:"framefields-stub"}}),e.onLoad({filter:/.*/,namespace:"framefields-stub"},()=>({contents:Bf,loader:"js"}))}function Uf(e){e.onLoad({filter:/\.[cm]?[jt]sx?$/},async t=>{if(t.path.includes(`${j.sep}node_modules${j.sep}`))return;let n=await ge.promises.readFile(t.path,"utf8");if(n.includes(sl))return{contents:`const __framefieldsFileUrl = ${JSON.stringify(Vn(t.path).href)};
717
- ${n.replaceAll(sl,"__framefieldsFileUrl")}`,loader:Vf(t.path)}})}function zf(){let e=Rf.resolve("@framefields/renderer"),t=j.join(j.dirname(e),"..","src","generated","node-renderers.ts");if(!ge.existsSync(t))throw new Error(`[framefields] node renderer list not found at ${t}`);return t}function Gf(e){if(e.startsWith(".")||e.startsWith("/"))return;let t=e.split("/");return e.startsWith("@")?t.slice(0,2).join("/"):t[0]}function Vf(e){return e.endsWith(".tsx")?"tsx":e.endsWith(".jsx")?"jsx":/\.[cm]?ts$/.test(e)?"ts":"js"}g();var Rr=class{constructor(t){this.dir=t;this.file=j.join(t,"notes.json")}dir;file;async list(){try{let t=JSON.parse(await ge.promises.readFile(this.file,"utf8"));return Array.isArray(t)?t:[]}catch{return[]}}async add(t){let n=await this.list(),r=n.reduce((o,u)=>Math.max(o,u.id),0)+1,a={id:r,frame:Math.max(0,Math.round(Number(t.frame)||0)),time:Rn(Number(t.time)||0,3),x:Rn(Fr(t.x),4),y:Rn(Fr(t.y),4),...t.w!==void 0&&t.h!==void 0&&{w:Rn(Fr(t.w),4),h:Rn(Fr(t.h),4)},text:String(t.text??"").trim(),done:!1,created:new Date().toISOString()};await this.ensureDir();let i=/^data:image\/jpeg;base64,(.+)$/.exec(t.image??"");return i&&(a.image=j.join(this.dir,`note-${r}.jpg`),await ge.promises.writeFile(a.image,Buffer.from(i[1],"base64"))),await this.save([...n,a]),a}async update(t,n){let r=await this.list(),a=r.find(i=>i.id===t);if(a)return typeof n.done=="boolean"&&(a.done=n.done),typeof n.text=="string"&&n.text.trim()&&(a.text=n.text.trim()),await this.save(r),a}async remove(t){let n=await this.list(),r=n.find(a=>a.id===t);if(r)return r.image&&await ge.promises.rm(r.image,{force:!0}),await this.save(n.filter(a=>a!==r)),r}async save(t){await this.ensureDir();let n=`${this.file}.${M.pid}.tmp`;await ge.promises.writeFile(n,`${JSON.stringify(t,null," ")}
718
- `),await ge.promises.rename(n,this.file)}async ensureDir(){await ge.promises.mkdir(this.dir,{recursive:!0});let t=j.join(j.dirname(this.dir),".gitignore");ge.existsSync(t)||await ge.promises.writeFile(t,`*
719
- `)}};function bl(e,t){let n=a=>`${Math.round(a*100)}%`,r=e.w!==void 0&&e.h!==void 0?`area ${n(e.x)},${n(e.y)} to ${n(e.x+e.w)},${n(e.y+e.h)}`:`spot ${n(e.x)},${n(e.y)}`;return`note ${e.id} at ${jf(e.frame,t)} (frame ${e.frame}), ${r}: ${e.text}`}function jf(e,t){let n=e/t,r=Math.floor(n/60);return`${r}:${(n-r*60).toFixed(2).padStart(5,"0")}`}function Fr(e){let t=Number(e);return Number.isFinite(t)?Math.min(1,Math.max(0,t)):0}function Rn(e,t){return Number(e.toFixed(t))}g();var yl=`<!doctype html>
712
+ `;async function Ff(e){let{build:t}=await import("./esbuild-GWV7CM7D.mjs"),r=z.resolve(Ar,".."),n=z.join(Ar,"shims"),i={player:z.join(Ar,"player.ts")};for(let[a,s]of Object.entries(el))i[ol(a)]=z.join(r,s);for(let a of new Set(Object.values(Da)))i[`shims/${a}`]=z.join(n,`${a}.ts`);await he.promises.rm(e,{recursive:!0,force:!0}),await t({...al,entryPoints:i,outdir:e,outExtension:{".js":".mjs"},splitting:!0,minify:!0,conditions:["development","browser","import"],define:{"process.env.NODE_ENV":'"production"',global:"globalThis"},inject:[z.join(n,"process.ts")],plugins:[{name:"framefields-engine",setup(a){a.onResolve({filter:/^framefields-preview:renderers$/},()=>({path:Uf()})),sl(a,s=>({path:z.join(n,`${s}.ts`)}))}}]})}async function tl(e){let{build:t}=await import("./esbuild-GWV7CM7D.mjs"),r=z.resolve(e.entry),n=u=>({path:`${Or}/${u}.mjs`,external:!0}),i={modelsDir:e.modelsDir,ortBase:e.ortBase},a=await t({...al,entryPoints:["framefields-preview:entry"],write:!1,metafile:!0,sourcemap:"inline",plugins:[{name:"framefields-project",setup(u){u.onResolve({filter:/^framefields-preview:entry$/},()=>({path:"entry",namespace:"framefields-preview"})),u.onLoad({filter:/.*/,namespace:"framefields-preview"},()=>({contents:[`import { startPlayer } from ${JSON.stringify(`${Or}/player.mjs`)};`,`import * as mod from ${JSON.stringify(r)};`,`startPlayer(mod, ${JSON.stringify(e.exportName)}, ${JSON.stringify(i)});`].join(`
713
+ `),resolveDir:z.dirname(r),loader:"js"})),u.onResolve({filter:/^\/@framefields\/engine\//},c=>({path:c.path,external:!0})),u.onResolve({filter:/^framefields(\/|$)/},c=>el[c.path]?n(ol(c.path)):void 0),sl(u,c=>n(`shims/${c}`)),Ef(u)}}]}),s=Object.keys(a.metafile?.inputs??{}).filter(u=>!u.includes(":")&&!u.includes("node_modules")).map(u=>z.resolve(u));return{code:a.outputFiles[0].text,inputs:s}}var Nn;function Rf(e){return[e,z.join(e,"..")].map(t=>z.join(t,"preview-engine")).find(t=>he.existsSync(z.join(t,"player.mjs")))}function rl(){let e=Rf(Ar);return e?Promise.resolve(e):(Nn??=(async()=>{let t=z.join(Rn.tmpdir(),`framefields-preview-engine-${x.pid}`);return await Ff(t),t})(),Nn.catch(()=>{Nn=void 0}),Nn)}function nl(){return x.env.FRAMEFIELDS_MODELS_DIR?z.resolve(x.env.FRAMEFIELDS_MODELS_DIR):z.join(Rn.homedir(),".cache","framefields","models")}var Bf="1.30.0";function il(e){for(let t of[e,Ar])try{let r=En(z.join(t,"noop.js")).resolve("onnxruntime-web"),n=z.dirname(r);return{base:`/@fs${n}/`,dir:n}}catch{}return{base:`https://cdn.jsdelivr.net/npm/onnxruntime-web@${Bf}/dist/`}}var al={bundle:!0,format:"esm",platform:"browser",target:"es2022",mainFields:["browser","module","main"],logLevel:"silent"};function ol(e){return e==="framefields"?"framefields":e.slice(12)}function sl(e,t){e.onResolve({filter:/^(node:)?[a-z_/]+$/},r=>{let n=r.path.replace(/^node:/,"");if(Da[n])return t(Da[n]);if(r.path.startsWith("node:")||Ka(n))return{path:n,namespace:"framefields-stub"}}),e.onResolve({filter:/.*/},r=>{let n=_f(r.path);if(n&&(Qu.has(n)||Qu.has(r.path)))return{path:r.path,namespace:"framefields-stub"}}),e.onLoad({filter:/.*/,namespace:"framefields-stub"},()=>({contents:Lf,loader:"js"}))}function Ef(e){e.onLoad({filter:/\.[cm]?[jt]sx?$/},async t=>{if(t.path.includes(`${z.sep}node_modules${z.sep}`))return;let r=await he.promises.readFile(t.path,"utf8");if(r.includes(Ju))return{contents:`const __framefieldsFileUrl = ${JSON.stringify(Ir(t.path).href)};
714
+ ${r.replaceAll(Ju,"__framefieldsFileUrl")}`,loader:If(t.path)}})}function Uf(){let e=Df.resolve("@framefields/renderer"),t=z.join(z.dirname(e),"..","src","generated","node-renderers.ts");if(!he.existsSync(t))throw new Error(`[framefields] node renderer list not found at ${t}`);return t}function _f(e){if(e.startsWith(".")||e.startsWith("/"))return;let t=e.split("/");return e.startsWith("@")?t.slice(0,2).join("/"):t[0]}function If(e){return e.endsWith(".tsx")?"tsx":e.endsWith(".jsx")?"jsx":/\.[cm]?ts$/.test(e)?"ts":"js"}h();var On=class{constructor(t){this.dir=t;this.file=z.join(t,"notes.json")}dir;file;async list(){try{let t=JSON.parse(await he.promises.readFile(this.file,"utf8"));return Array.isArray(t)?t:[]}catch{return[]}}async add(t){let r=await this.list(),n=r.reduce((s,u)=>Math.max(s,u.id),0)+1,i={id:n,frame:Math.max(0,Math.round(Number(t.frame)||0)),time:Dr(Number(t.time)||0,3),x:Dr(An(t.x),4),y:Dr(An(t.y),4),...t.w!==void 0&&t.h!==void 0&&{w:Dr(An(t.w),4),h:Dr(An(t.h),4)},text:String(t.text??"").trim(),done:!1,created:new Date().toISOString()};await this.ensureDir();let a=/^data:image\/jpeg;base64,(.+)$/.exec(t.image??"");return a&&(i.image=z.join(this.dir,`note-${n}.jpg`),await he.promises.writeFile(i.image,Buffer.from(a[1],"base64"))),await this.save([...r,i]),i}async update(t,r){let n=await this.list(),i=n.find(a=>a.id===t);if(i)return typeof r.done=="boolean"&&(i.done=r.done),typeof r.text=="string"&&r.text.trim()&&(i.text=r.text.trim()),await this.save(n),i}async remove(t){let r=await this.list(),n=r.find(i=>i.id===t);if(n)return n.image&&await he.promises.rm(n.image,{force:!0}),await this.save(r.filter(i=>i!==n)),n}async save(t){await this.ensureDir();let r=`${this.file}.${x.pid}.tmp`;await he.promises.writeFile(r,`${JSON.stringify(t,null," ")}
715
+ `),await he.promises.rename(r,this.file)}async ensureDir(){await he.promises.mkdir(this.dir,{recursive:!0});let t=z.join(z.dirname(this.dir),".gitignore");he.existsSync(t)||await he.promises.writeFile(t,`*
716
+ `)}};function ul(e,t){let r=i=>`${Math.round(i*100)}%`,n=e.w!==void 0&&e.h!==void 0?`area ${r(e.x)},${r(e.y)} to ${r(e.x+e.w)},${r(e.y+e.h)}`:`spot ${r(e.x)},${r(e.y)}`;return`note ${e.id} at ${Gf(e.frame,t)} (frame ${e.frame}), ${n}: ${e.text}`}function Gf(e,t){let r=e/t,n=Math.floor(r/60);return`${n}:${(r-n*60).toFixed(2).padStart(5,"0")}`}function An(e){let t=Number(e);return Number.isFinite(t)?Math.min(1,Math.max(0,t)):0}function Dr(e,t){return Number(e.toFixed(t))}h();var ll=`<!doctype html>
720
717
  <html lang="en">
721
718
  <head>
722
719
  <meta charset="utf-8">
@@ -1954,14 +1951,14 @@ ${n.replaceAll(sl,"__framefieldsFileUrl")}`,loader:Vf(t.path)}})}function zf(){l
1954
1951
  <script type="module" src="/@framefields/player.js"><\/script>
1955
1952
  </body>
1956
1953
  </html>
1957
- `;var $f=1200,wl="x-framefields-preview",Wf="/@framefields/player.js";async function Yf(e,t={}){let n=e.entry instanceof URL||String(e.entry).startsWith("file:")?Gn(e.entry):j.resolve(String(e.entry)),r=e.export??"default",a=ml(),i=pl(j.dirname(n)),o=[...t.root===void 0?[Xf(j.dirname(n))]:Array.isArray(t.root)?t.root:[t.root],a,i.dir].filter(L=>!!L).map(L=>j.resolve(L)),u=new Set,c=t.idleCloseMs??5e3,l,m=t.title??"framefields preview",d=(0,Br.randomUUID)(),p=t.log===!1?()=>{}:t.log??(L=>console.error(L)),f=L=>p(`[framefields preview] ${L}`),y=new Set,h=!1,b=t.notesDir===!1?void 0:new Rr(j.resolve(t.notesDir??j.join(M.cwd(),".framefields","preview-notes"))),x=Promise.resolve(),v=await Hf(n,r),S=await Jf(v,m,d,b?.dir??null),k,C=()=>{if(!k){let L=cl({entry:n,exportName:r,modelsDir:a,ortBase:i.base}).then(B=>B.code);k=L,L.catch(B=>{f(`could not build ${j.relative(M.cwd(),n)}:
1958
- ${Zf(B)}`),k===L&&(k=void 0)})}return k},w=dl();w.catch(()=>{});let D={state:t.audio===!1?"none":"mixing"},E;function V(L,B){for(let G of u)G.write(`event: ${L}
1954
+ `;var zf=1200,ml="x-framefields-preview",$f="/@framefields/player.js";async function jf(e,t={}){let r=e.entry instanceof URL||String(e.entry).startsWith("file:")?_r(e.entry):z.resolve(String(e.entry)),n=e.export??"default",i=nl(),a=il(z.dirname(r)),s=[...t.root===void 0?[Wf(z.dirname(r))]:Array.isArray(t.root)?t.root:[t.root],i,a.dir].filter(L=>!!L).map(L=>z.resolve(L)),u=new Set,c=t.idleCloseMs??5e3,l,m=t.title??"framefields preview",d=(0,Dn.randomUUID)(),p=t.log===!1?()=>{}:t.log??(L=>console.error(L)),f=L=>p(`[framefields preview] ${L}`),y=new Set,g=!1,b=t.notesDir===!1?void 0:new On(z.resolve(t.notesDir??z.join(x.cwd(),".framefields","preview-notes"))),P=Promise.resolve(),N=await Vf(r,n),M=await qf(N,m,d,b?.dir??null),k,A=()=>{if(!k){let L=tl({entry:r,exportName:n,modelsDir:i,ortBase:a.base}).then(B=>B.code);k=L,L.catch(B=>{f(`could not build ${z.relative(x.cwd(),r)}:
1955
+ ${Yf(B)}`),k===L&&(k=void 0)})}return k},v=rl();v.catch(()=>{});let R={state:t.audio===!1?"none":"mixing"},G;function Z(L,B){for(let $ of u)$.write(`event: ${L}
1959
1956
  data: ${JSON.stringify(B)}
1960
1957
 
1961
- `)}function Z(L){D=L,V("audio",D)}function ne(){if(D.state!=="mixing")return;if(!v.toVirtualMediaAsync&&!v.toVirtualMedia){Z({state:"none"});return}let L=t.renderer??new Te.HeadlessMediaRenderer;(async()=>{let B=v.toVirtualMediaAsync?await v.toVirtualMediaAsync():v.toVirtualMedia();return L.renderAudio(B,{fps:S.fps})})().then(({channels:B,sampleRate:G})=>{let K=B[0]??new Float32Array(0),H=B[1]??K,Q=th(K,H,$f);if(K.length===0||Math.max(...Q)<.001){Z({state:"none"});return}E=Kr([K,H],{sampleRate:G}),Z({state:"ready",durationSec:K.length/G,peaks:Q.map(O=>Math.round(O*1e3)/1e3)})},B=>{Z({state:"error",error:B instanceof Error?B.message:String(B)})})}let R,P=new Promise(L=>{R=L}),T;function $(L="closed"){return T??=new Promise(B=>{clearTimeout(l),L==="idle"&&f("stopped: its tab was closed"),L==="replaced"&&f("stopped: a newer preview took over");for(let G of u)G.end();u.clear(),Y.close(()=>{B(),R(L)}),Y.closeAllConnections()}),T}let Y=zi.default.createServer(async(L,B)=>{let G=new URL(L.url??"/","http://localhost");B.setHeader("cross-origin-opener-policy","same-origin"),B.setHeader("cross-origin-embedder-policy","credentialless");try{if(L.method==="GET"&&G.pathname==="/"){B.writeHead(200,{"content-type":"text/html; charset=utf-8","cache-control":"no-store"}),B.end(yl);return}if(L.method==="GET"&&G.pathname==="/meta"){Ke(B,200,{...S,audio:D});return}if(L.method==="GET"&&G.pathname.startsWith(`${Fn}/`)){let H=await w,Q=j.resolve(H,`.${G.pathname.slice(Fn.length)}`);if(Ei(H,Q)&&await _i(Q)){await Ui(L,B,Q);return}Ke(B,404,{error:"not found"});return}if(L.method==="GET"&&G.pathname===Wf){let H;try{await w,H=await C()}catch(Q){let O=Q instanceof Error?Q.message:String(Q);H=`throw new Error(${JSON.stringify(`Could not build the preview:
1962
- ${O}`)});`}B.writeHead(200,{"content-type":"text/javascript; charset=utf-8","cache-control":"no-store"}),B.end(H);return}if(L.method==="GET"&&G.pathname==="/@framefields/stat"){let H=j.resolve(G.searchParams.get("path")??""),Q=-1;o.some(O=>Ei(O,H))&&(Q=await ge.promises.stat(H).then(O=>O.isFile()?O.size:-1,()=>-1)),Ke(B,200,{exists:Q>=0,size:Math.max(0,Q)});return}if(L.method==="GET"&&G.pathname==="/events"){B.writeHead(200,{"content-type":"text/event-stream","cache-control":"no-store",connection:"keep-alive"}),B.write(`retry: 1000
1958
+ `)}function te(L){R=L,Z("audio",R)}function ae(){if(R.state!=="mixing")return;if(!N.toVirtualMediaAsync&&!N.toVirtualMedia){te({state:"none"});return}let L=t.renderer??new Pe.HeadlessMediaRenderer;(async()=>{let B=N.toVirtualMediaAsync?await N.toVirtualMediaAsync():N.toVirtualMedia();return L.renderAudio(B,{fps:M.fps})})().then(({channels:B,sampleRate:$})=>{let X=B[0]??new Float32Array(0),j=B[1]??X,K=Jf(X,j,zf);if(X.length===0||Math.max(...K)<.001){te({state:"none"});return}G=Yn([X,j],{sampleRate:$}),te({state:"ready",durationSec:X.length/$,peaks:K.map(O=>Math.round(O*1e3)/1e3)})},B=>{te({state:"error",error:B instanceof Error?B.message:String(B)})})}let E,w=new Promise(L=>{E=L}),S;function W(L="closed"){return S??=new Promise(B=>{clearTimeout(l),L==="idle"&&f("stopped: its tab was closed"),L==="replaced"&&f("stopped: a newer preview took over");for(let $ of u)$.end();u.clear(),H.close(()=>{B(),E(L)}),H.closeAllConnections()}),S}let H=Ba.default.createServer(async(L,B)=>{let $=new URL(L.url??"/","http://localhost");B.setHeader("cross-origin-opener-policy","same-origin"),B.setHeader("cross-origin-embedder-policy","credentialless");try{if(L.method==="GET"&&$.pathname==="/"){B.writeHead(200,{"content-type":"text/html; charset=utf-8","cache-control":"no-store"}),B.end(ll);return}if(L.method==="GET"&&$.pathname==="/meta"){Ze(B,200,{...M,audio:R});return}if(L.method==="GET"&&$.pathname.startsWith(`${Or}/`)){let j=await v,K=z.resolve(j,`.${$.pathname.slice(Or.length)}`);if(La(j,K)&&await Fa(K)){await Ra(L,B,K);return}Ze(B,404,{error:"not found"});return}if(L.method==="GET"&&$.pathname===$f){let j;try{await v,j=await A()}catch(K){let O=K instanceof Error?K.message:String(K);j=`throw new Error(${JSON.stringify(`Could not build the preview:
1959
+ ${O}`)});`}B.writeHead(200,{"content-type":"text/javascript; charset=utf-8","cache-control":"no-store"}),B.end(j);return}if(L.method==="GET"&&$.pathname==="/@framefields/stat"){let j=z.resolve($.searchParams.get("path")??""),K=-1;s.some(O=>La(O,j))&&(K=await he.promises.stat(j).then(O=>O.isFile()?O.size:-1,()=>-1)),Ze(B,200,{exists:K>=0,size:Math.max(0,K)});return}if(L.method==="GET"&&$.pathname==="/events"){B.writeHead(200,{"content-type":"text/event-stream","cache-control":"no-store",connection:"keep-alive"}),B.write(`retry: 1000
1963
1960
  `),B.write(`event: hello
1964
- data: ${JSON.stringify({session:S.session})}
1961
+ data: ${JSON.stringify({session:M.session})}
1965
1962
 
1966
- `),u.add(B),clearTimeout(l),h||(h=!0,f(c===!1?"page opened":`page opened; the server stops ${Number((c/1e3).toFixed(1))} s after its last tab closes`)),U?.(),L.on("close",()=>{u.delete(B),u.size===0&&c!==!1&&!T&&(l=setTimeout(()=>{u.size===0&&$("idle")},c))});return}if(L.method==="POST"&&G.pathname==="/takeover"&&L.headers[wl]==="1"){Ke(B,200,{ok:!0}),setImmediate(()=>{$("replaced")});return}if(L.method==="POST"&&G.pathname==="/@framefields/log"&&L.headers["content-type"]==="application/json"){let H=await xl(L,16384),{message:Q,level:O}=JSON.parse(H),F=String(Q??"").trim();F&&!y.has(F)&&y.size<200&&(y.add(F),f(`${O==="warning"?"warning":"error"} in the page: ${F}`)),B.writeHead(204).end();return}if(b&&G.pathname==="/@framefields/notes"){if(L.method==="GET"){Ke(B,200,await b.list());return}if(L.method==="POST"&&L.headers["content-type"]==="application/json"){let H=JSON.parse(await xl(L,16777216)),Q=x.then(()=>qf(b,H,S.fps,f));x=Q.catch(()=>{});let O=await Q;V("notes",await b.list()),Ke(B,O?200:404,O??{error:"no such note"});return}}if(L.method==="GET"&&G.pathname==="/audio"){if(D.state!=="ready"||!E){Ke(B,404,{error:`audio is ${D.state}`});return}B.writeHead(200,{"content-type":"audio/wav","content-length":E.length,"cache-control":"no-store"}),B.end(E);return}let K=/^\/assets\/fonts\/([^/]+)$/.exec(G.pathname);if(K&&(L.method==="GET"||L.method==="HEAD")){let H=j.join(M.cwd(),"assets","fonts",decodeURIComponent(K[1]));if(await _i(H)){await Ui(L,B,H);return}}if(L.method==="GET"||L.method==="HEAD"){let H=j.resolve(decodeURIComponent(G.pathname.replace(/^\/@fs(?=\/)/,"")));if(o.some(Q=>Ei(Q,H))&&await _i(H)){await Ui(L,B,H);return}}Ke(B,404,{error:"not found"})}catch(K){B.headersSent?B.end():Ke(B,500,{error:K instanceof Error?K.message:String(K)})}}),U,_=t.host??"127.0.0.1",W=t.port??Qf(),re=L=>new Promise((B,G)=>{let K=Q=>{Y.off("listening",H),G(Q)},H=()=>{Y.off("error",K),B()};Y.once("error",K),Y.once("listening",H),Y.listen(L,_)});try{await re(W)}catch(L){if(L.code!=="EADDRINUSE")throw L;if(await eh(_,W))await re(W).catch(()=>re(0));else if(t.port===void 0)await re(0);else throw L}let{port:pe}=Y.address(),ie=`http://${_.includes(":")?`[${_}]`:_}:${pe}/`;if(C().catch(()=>{}),ne(),t.open===!0){let L=await new Promise(B=>{let G=setTimeout(()=>B(!1),2e3);U=()=>{clearTimeout(G),B(!0)},u.size>0&&U()});U=void 0,L||nh(ie)}return{url:ie,closed:P,close:()=>$()}}async function Hf(e,t){let r=(await import(Vn(e).href))[t];if(r===void 0)throw new Error(`[framefields] ${e} has no export named "${t}" to preview.`);return typeof r=="function"?await r():r}function Xf(e){let t;for(let n=e;;n=j.dirname(n)){if(ge.existsSync(j.join(n,".git")))return n;if(!t&&ge.existsSync(j.join(n,"package.json"))&&(t=n),j.dirname(n)===n)return t??e}}async function qf(e,t,n,r){if(t.op==="add"&&t.note&&String(t.note.text).trim()){let i=await e.add(t.note),o=[i.image&&`frame with the spot marked: ${i.image}`,`all notes: ${e.file}`];return r(`${bl(i,n)}
1967
- ${o.filter(Boolean).join(" \xB7 ")}`),i}let a=Number(t.id);if(t.op==="update"){let i=await e.update(a,t);return i&&typeof t.done=="boolean"&&r(`note ${a} marked ${i.done?"done":"open"}`),i}if(t.op==="remove"){let i=await e.remove(a);return i&&r(`note ${a} deleted`),i}}function Zf(e){return e instanceof Error?e.message:String(e)}function xl(e,t){return new Promise((n,r)=>{let a="";e.setEncoding("utf8"),e.on("data",i=>{a+=i,a.length>t&&(r(new Error("request body too large")),e.destroy())}),e.on("end",()=>n(a)),e.on("error",r)})}function Ei(e,t){let n=j.relative(e,t);return!!n&&!n.startsWith("..")&&!j.isAbsolute(n)}async function _i(e){try{return(await ge.promises.stat(e)).isFile()}catch{return!1}}var Kf={".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".webp":"image/webp",".gif":"image/gif",".svg":"image/svg+xml",".mp4":"video/mp4",".mov":"video/quicktime",".webm":"video/webm",".mp3":"audio/mpeg",".wav":"audio/wav",".m4a":"audio/mp4",".ogg":"audio/ogg",".ttf":"font/ttf",".otf":"font/otf",".woff":"font/woff",".woff2":"font/woff2",".json":"application/json",".js":"text/javascript; charset=utf-8",".mjs":"text/javascript; charset=utf-8",".wasm":"application/wasm",".onnx":"application/octet-stream",".srt":"text/plain; charset=utf-8",".txt":"text/plain; charset=utf-8"};async function Ui(e,t,n){let{size:r}=await ge.promises.stat(n),a=Kf[j.extname(n).toLowerCase()]??"application/octet-stream",i=/^bytes=(\d*)-(\d*)$/.exec(e.headers.range??""),o=0,u=r-1;if(i&&(i[1]||i[2])&&(i[1]?(o=Number(i[1]),i[2]&&(u=Math.min(u,Number(i[2])))):o=Math.max(0,r-Number(i[2])),o>u||o>=r)){t.writeHead(416,{"content-range":`bytes */${r}`}),t.end();return}if(t.writeHead(i?206:200,{"content-type":a,"content-length":u-o+1,"accept-ranges":"bytes","cache-control":"no-cache",...i&&{"content-range":`bytes ${o}-${u}/${r}`}}),e.method==="HEAD"){t.end();return}ge.createReadStream(n,{start:o,end:u}).pipe(t)}async function Jf(e,t,n,r){let a=e.fps??24,i=e.durationMs??await e.computeDuration?.()??5e3;return{session:n,notesDir:r,title:t,fps:a,frameCount:Math.max(1,Math.round(i/1e3*a)),width:e.width??1920,height:e.height??1080}}function Qf(){return 41e3+(0,Br.createHash)("sha1").update(M.cwd()).digest().readUInt16BE(0)%900}async function eh(e,t){let n=await new Promise(r=>{let a=zi.default.request({host:e,port:t,method:"POST",path:"/takeover",agent:!1,headers:{[wl]:"1"},timeout:1500},i=>{i.resume(),r(i.statusCode===200)});a.on("timeout",()=>a.destroy()),a.on("error",()=>r(!1)),a.end()});return n&&await new Promise(r=>setTimeout(r,150)),n}function th(e,t,n){let r=new Array(n).fill(0);if(e.length===0)return r;let a=e.length/n;for(let i=0;i<n;i++){let o=Math.floor(i*a),u=Math.min(e.length,Math.floor((i+1)*a)),c=0;for(let l=o;l<u;l++){let m=Math.max(Math.abs(e[l]??0),Math.abs(t[l]??0));m>c&&(c=m)}r[i]=Math.min(1,c)}return r}function Ke(e,t,n){e.writeHead(t,{"content-type":"application/json","cache-control":"no-store"}),e.end(JSON.stringify(n))}function nh(e){let[t,n]=M.platform==="darwin"?["open",[e]]:M.platform==="win32"?["cmd",["/c","start","",e]]:["xdg-open",[e]];try{(0,vl.spawn)(t,n,{stdio:"ignore",detached:!0}).on("error",()=>{}).unref()}catch{}}function Gi(e,t){return e&&(t&&!e.source&&Object.defineProperty(e,"source",{value:t,enumerable:!0,writable:!0,configurable:!0}),typeof e.section!="function"&&Object.defineProperty(e,"section",{value:(n,r)=>{if(typeof n=="object"&&n!==null&&!("kind"in n)&&!("inputHandleId"in n)&&!("src"in n)){let i=n.source??e.source??t;return I.section(i,e,n)}let a=n??e.source??t;return I.section(a,e,r)},enumerable:!1,writable:!0,configurable:!0}),typeof e.blurEffect!="function"&&Object.defineProperty(e,"blurEffect",{value:n=>new dt({track:e,...n}),enumerable:!1,writable:!0,configurable:!0}),typeof e.isolate!="function"&&Object.defineProperty(e,"isolate",{value:(n,r)=>I.section(n,e,r),enumerable:!1,writable:!0,configurable:!0}),e)}var rh=on.attach;on.attach=function(e,t,n){let r=rh.call(this,e,t,n);if(r?.objects){let a=e,i=r.objects.get.bind(r.objects);r.objects.get=u=>Gi(i(u),a);let o=r.objects.byCategory.bind(r.objects);r.objects.byCategory=(u,c)=>Gi(o(u,c),a),r.objects.primary&&Gi(r.objects.primary,a)}return r};var Sl=class e{virtualMedia;constructor(t,n="Video"){this.virtualMedia=Qi(t,n)}static video(t,n){let r=new e(t,"Video");return n&&Object.assign(r.virtualMedia.metadata,n),r}static image(t,n){let r=new e(t,"Image");return n&&Object.assign(r.virtualMedia.metadata,n),r}static audio(t,n){let r=new e(t,"Audio");return n&&Object.assign(r.virtualMedia.metadata,n),r}apply(t,n={}){let r;t instanceof ah||typeof t=="object"&&t!==null&&"op"in t?r=t.toOperation():r={op:t,...n};let a=eo(this.virtualMedia,{...r,dataType:this.virtualMedia.operation.dataType});return new e(a)}toVirtualMedia(){return this.virtualMedia}async renderFrame(t={}){return(t.renderer??new Te.HeadlessMediaRenderer).renderFrame(this.virtualMedia,t)}get fps(){return this.virtualMedia.metadata?.fps??void 0}get durationMs(){return this.virtualMedia.metadata?.durationMs??void 0}get width(){return this.virtualMedia.metadata?.width??void 0}get height(){return this.virtualMedia.metadata?.height??void 0}async renderFrameGrid(t={}){return Dn(this,t)}async renderVideo(t={},n={}){let r=typeof t=="string"?{...n,outputPath:t}:t,i=await(r.renderer??new Te.HeadlessMediaRenderer).renderVideo(this.virtualMedia,r);return kl(i,r.outputPath)}};async function kl(e,t){if(!t)return e;let n=j.resolve(t);return await an.mkdir(j.dirname(n),{recursive:!0}),await an.copyFile(e.filePath,n),await e.cleanup(),{...e,filePath:n,cleanup:async()=>{}}}var Ml=class e{width;height;fps;durationMs;backgroundColor;antialias3d;fonts;children=[];audioTracks=[];signals={};_frameHooks=[];_visionConfig;_visionBundle;_effects=[];apply(t){return t instanceof mt?(this.withVision(t),this):(this._effects.push(t),this)}withVision(t={}){this._visionBundle??=new Xr({width:this.width,height:this.height,fps:this.fps});let n=t instanceof mt?t.config:t;return this._visionConfig={...n,visionBundle:this._visionBundle},this._visionBundle}async analyzeVisionSequence(t,n={}){let r=n.fps??this.fps,a=this.durationMs??await this.computeDuration(),i=n.totalFrames??Math.max(1,Math.round(a/1e3*r)),o=Hr.create({modelsDir:n.modelsDir,baseUrl:n.baseUrl,...n.confidence!==void 0?{confidence:n.confidence}:{},...n.variant!==void 0?{variant:n.variant}:{}}),u=ro.getVideo(t,!0);async function*c(){for(let l=0;l<i;l++){let m=await u.getFrame(l/r);m?.buffer&&m.width>0&&m.height>0&&(yield{data:m.buffer,width:m.width,height:m.height})}}try{return await Yr(c(),{runner:o,source:t,fps:r,...n.tasks!==void 0?{tasks:n.tasks}:{},...n.categories!==void 0?{categories:n.categories}:{},...n.pathStride!==void 0?{pathStride:n.pathStride}:{},...n.includeMasks!==void 0?{includeMasks:n.includeMasks}:{},...n.iouThreshold!==void 0?{iouThreshold:n.iouThreshold}:{}})}finally{o.close(),u.destroy()}}onRequestFrame(t){return this._frameHooks.push(t),this}notifyFrame(t){for(let n of this._frameHooks)n(t)}constructor(t){this.width=t.width,this.height=t.height,this.fps=t.fps??60,this.durationMs=t.durationMs??(t.durationFrames!==void 0?t.durationFrames/this.fps*1e3:void 0),this.backgroundColor=t.backgroundColor??"#000000",this.antialias3d=t.antialias3d,this.fonts=t.fonts??[],this.signals=t.signals??{}}static create(t){return new e(t)}addSignal(t,n){return this.signals[t]=n,this}add(t,...n){if(t instanceof Rt)this.children.push(t.toNode());else if(t instanceof on)this.children.push(t.toNode());else{if(t&&typeof t=="object"&&"node"in t)return this.add(t.node,...n),this;if(Array.isArray(t))for(let r of t)this.add(r);else{let r=t,a=n[0];if(a&&!(a instanceof Rt)&&!Array.isArray(a)&&(a instanceof ce||"tracks"in a))return r.animation=a instanceof ce?a.toSpec():a,this.children.push(r),this;this.children.push(r)}}for(let r of n)r&&!(r instanceof ce)&&!("tracks"in r)&&this.add(r);return this}addAudio(t){return this.audioTracks.push(t),this}addSubjectSandwich(t){let n=typeof t.source=="string"?t.source:t.source.inputHandleId??"",r=t.fit??"cover",a=t.feather??4,i=a>1?a/100:a,o=t.variant??"s",u=I.video(n,{width:this.width,height:this.height,position:"absolute",x:0,y:0,fit:r,muted:t.muted??!1,volume:t.muted?0:t.volume??1});this.add(u);for(let l of t.behind)this.add(l);let c=I.video(n,{width:this.width,height:this.height,position:"absolute",x:0,y:0,fit:r,muted:!0,volume:0}).withVision({mode:"matte",enableSegmentation:!0,variant:o,confidence:t.confidence??.25,featherRadius:i,keyBackground:t.keyBackground??!0,backgroundKeyThreshold:t.backgroundKeyThreshold});return this.add(c),this}addSmartFraming(t){let n=typeof t.source=="string"?t.source:t.source.inputHandleId??"",r=Math.max(0,Math.min(.99,t.damping??.8)),a=t.leadHeadroom??.18,i=this.width,o=this.height,u=t.sourceAspect??16/9,c=i/o,l=c<u?Math.round(o*u):i,m=c<u?o:Math.round(i/u),d=i-l,p=o-m,f=t.target,y=new Lt(k=>{if(d>=0)return 0;let C=f.center?.x?f.center.x.get(k):f.bounds?.centerX?f.bounds.centerX.get(k)/i:f.center?.screenX?f.center.screenX.get(k)/i:.5,D=Math.max(0,Math.min(1,C))*l,E=i/2-D;return Math.max(d,Math.min(0,E))},{fps:this.fps,label:"smart_framing_pan_x"}),h=new Lt(k=>{if(p>=0)return 0;let C=f.center?.y?f.center.y.get(k):f.bounds?.centerY?f.bounds.centerY.get(k)/o:f.center?.screenY?f.center.screenY.get(k)/o:.5,D=Math.max(0,Math.min(1,C))*m,E=o*a-D;return Math.max(p,Math.min(0,E))},{fps:this.fps,label:"smart_framing_pan_y"}),b=new Lt(k=>{let C=k.frame;if(C<=0)return y.get(k);let w=y.get({...k,frame:0,time:0}),D=1-r;for(let E=1;E<=C;E++){let V=y.get({...k,frame:E,time:E/k.fps});w=w+D*(V-w)}return w},{fps:this.fps,label:"smart_framing_smooth_x"}),x=new Lt(k=>{let C=k.frame;if(C<=0)return h.get(k);let w=h.get({...k,frame:0,time:0}),D=1-r;for(let E=1;E<=C;E++){let V=h.get({...k,frame:E,time:E/k.fps});w=w+D*(V-w)}return w},{fps:this.fps,label:"smart_framing_smooth_y"}),v=I.box({width:i,height:o,overflow:"hidden",position:"relative"}),S=I.video(n,{width:l,height:m,position:"absolute",x:b,y:x,fit:t.fit??"cover",muted:t.muted??!1,volume:t.muted?0:t.volume??1});return v.children||(v.children=[]),v.children.push(S),this.add(v),this}addSubjectOutline(t,n={}){let r=n.blur??12,a=this.width,i=this.height,o=n.pulseSignal,u=o?new Lt(m=>Math.max(0,Math.min(1,Number(o.get(m))||0)),{fps:this.fps,label:"outline_pulse"}):1,c=typeof n.source=="string"?n.source:n.source?.inputHandleId??"",l=I.box({width:a,height:i,position:"absolute",x:0,y:0,opacity:u});if(c){let m=I.video(c,{width:a,height:i,position:"absolute",x:0,y:0,fit:"cover",muted:!0,volume:0}).withVision({mode:"mask",enableSegmentation:!0});l.children||(l.children=[]),l.children.push(m)}return l.apply(new dt({strength:r,blurType:"Gaussian"})),this.add(l),this}section(t,n,r){let a,i,o={},u=t!==null&&typeof t=="object"&&"bounds"in t,c=typeof t=="string"||t!==null&&typeof t=="object"&&("kind"in t||"src"in t||"inputHandleId"in t);if(c&&n&&typeof n=="object"&&"bounds"in n?(a=t,i=n,o=r??{}):c&&n?(a=t,o=n):u?(i=t,o=n??{},a=o.source??i.source):t&&typeof t=="object"&&(o=t,a=o.source),!a){let l=this.children.find(m=>m.kind==="media"&&(m.dataType==="Video"||m.dataType==="Image"));l&&(a=l)}return I.section(a??"",i??o,{compositionWidth:this.width,compositionHeight:this.height,...o})}addSection(t,n,r){let a=this.section(t,n,r);return this.add(a),a}async computeDuration(){if(this.durationMs!==void 0)return this.durationMs;let t=0,n=[];for(let r of[...this.children,...this.audioTracks]){if(r.kind==="media"){let a=r.inputHandleId;typeof a=="string"&&(r.dataType==="Video"||r.dataType==="Audio")&&n.push(a)}if(typeof r.durationFrames=="number"){let i=((typeof r.startFrame=="number"?r.startFrame:0)+r.durationFrames)/this.fps*1e3;i>t&&(t=i)}}for(let r of n)try{let i=await(await Ur.acquire(r)).computeDuration();if(Number.isFinite(i)&&i>0){let o=Math.round(i*1e3);o>t&&(t=o)}}catch{}return t>0?t:5e3}async registerFont(t,n){let r=await ct.register(t,n);return r.filePath&&!this.fonts.includes(r.filePath)&&this.fonts.push(r.filePath),this}async registerEmojiFont(t){return await ct.registerEmojiFont(t),this}toSpec(){let t=[...this.children,...this.audioTracks],n=ct.getRegisteredFontPaths(),r=Array.from(new Set([...this.fonts,...n]));return{width:this.width,height:this.height,fps:this.fps,mode:"Video",backgroundColor:this.backgroundColor,...this.antialias3d!==void 0&&{antialias3d:this.antialias3d},layout:t,fonts:r,signals:this.signals,...this._effects.length>0&&{effects:this._effects},...this._visionConfig&&{vision:this._visionConfig},...this._frameHooks.length>0&&{onRequestFrame:a=>this.notifyFrame(a)}}}toVirtualMedia(t={}){return jn(this.toSpec(),{isVideoMode:!0,fps:this.fps,durationMs:t.durationMs??this.durationMs,signals:t.signals??this.signals,...this._effects.length>0&&{effects:this._effects},...this._visionConfig&&{vision:this._visionConfig},...t})}async toVirtualMediaAsync(t={}){let n=t.durationMs??this.durationMs??await this.computeDuration();return this.durationMs=n,jn(this.toSpec(),{isVideoMode:!0,fps:this.fps,durationMs:n,signals:t.signals??this.signals,...this._effects.length>0&&{effects:this._effects},...this._visionConfig&&{vision:this._visionConfig},...t})}async renderFrame(t={}){if(this._frameHooks.length>0){let r=t.frame??(t.atMs!==void 0?Math.round(t.atMs/1e3*this.fps):0);this.notifyFrame({frame:r,fps:this.fps,time:this.fps>0?r/this.fps:0,duration:(this.durationMs??0)/1e3,durationMs:this.durationMs??0,progress:this.durationMs&&this.durationMs>0?Math.max(0,Math.min(1,r/this.fps*1e3/this.durationMs)):0,deltaTime:this.fps>0?1/this.fps:0})}return(t.renderer??new Te.HeadlessMediaRenderer).renderFrame(this.toVirtualMedia(),{fps:this.fps,...t})}async renderFrameGrid(t={}){return Dn(this,t)}async renderVideo(t={},n={}){let r=typeof t=="string"?{...n,outputPath:t}:t,i=await(r.renderer??new Te.HeadlessMediaRenderer).renderVideo(this.toVirtualMedia(),r);if(i.qa){let o=this.lint(),u=[...i.qa.issues,...o.map(c=>({severity:c.severity,code:c.code,message:c.message,...c.layerId!==void 0&&{layerId:c.layerId}}))];i.qa={...i.qa,issues:u,passed:i.qa.passed&&!o.some(c=>c.severity==="error")}}return kl(i,r.outputPath)}lint(){return Aa(this.toSpec())}};function we(e){let t=e;Object.defineProperty(t,"animate",{value:(...r)=>{let a=r.flat().flatMap(o=>o instanceof ce?o.tracks:o.tracks??[]),i=t.animation?.tracks??[];return t.animation={tracks:Xn([...i,...a])},t},enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"pinToLandmark",{value:(r,a)=>(qr(t,r,a),t),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"pinToObject",{value:(r,a)=>(Zr(t,r,a),t),enumerable:!1,writable:!0,configurable:!0});let n=(r,a)=>(t.matte={node:r,...a&&{mode:a}},t);for(let r of["withMatte","withMask"])Object.defineProperty(t,r,{value:n,enumerable:!1,writable:!0,configurable:!0});return Object.defineProperty(t,"withPbrGlass",{value:r=>(t.glass=r??{},t),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"deformWithAudio",{value:r=>(t.audioDeform=r??{},t),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"withCrop",{value:r=>(t.crop=r instanceof sn?r:new sn(r),t),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"withVision",{value:r=>(t.vision=r instanceof mt?r:new mt(r),t),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"withRelighting",{value:r=>(t.relighting=r??{},t),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"relight",{value:r=>(t.relighting=r??{},t),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"withDeflicker",{value:r=>(t.deflicker=r??{},t),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"apply",{value:r=>(t.effects||(t.effects=[]),t.effects.push(r),t),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"withEffect",{value:r=>(t.effects||(t.effects=[]),t.effects.push(r),t),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"withEffects",{value:r=>(t.effects||(t.effects=[]),t.effects.push(...r),t),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"section",{value:(r={},a)=>r!==null&&typeof r=="object"&&"bounds"in r?I.section(t,r,a):I.section(t,r),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"blurRegion",{value:(r,a)=>{let i=new dt({track:r,strength:a?.strength??25,shape:a?.shape??"ellipse",...a});return t.effects||(t.effects=[]),t.effects.push(i),t},enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"withBlurRegion",{value:(r,a)=>t.blurRegion(r,a),enumerable:!1,writable:!0,configurable:!0}),t}var I={video:(e,t={})=>we({id:t.id??ee("video"),kind:"media",inputHandleId:e,dataType:"Video",fit:t.fit??"cover",...t}),image:(e,t={})=>we({id:t.id??ee("img"),kind:"media",inputHandleId:e,dataType:"Image",fit:t.fit??"cover",...t}),svg:(e,t={})=>we({id:t.id??ee("svg"),kind:"media",inputHandleId:e,dataType:"SVG",fit:t.fit??"contain",...t}),lottie:(e,t={})=>we({id:t.id??ee("lottie"),kind:"media",inputHandleId:e,dataType:"Lottie",fit:t.fit??"contain",...t}),audio:(e,t={})=>we({id:t.id??ee("audio"),kind:"media",inputHandleId:e,dataType:"Audio",volume:t.volume??1,...t}),text:(e,t={})=>{let n=Array.isArray(e),r=!n&&typeof e=="object"&&e!==null,a=r?e:t,i="",o=a.spans;if(n){let u=Wn(e);i=u.text,o=u.spans}else r?a.spans&&!a.text?i=Wn(a.spans).text:i=a.text??"":i=typeof e=="string"?e:String(e??"");return we({id:a.id??ee("text"),kind:"text",fontFamily:a.fontFamily??ct.getAll()[0]?.family??"Inter",fontSize:a.fontSize??48,fill:a.fill??"#ffffff",...a,text:a.text??i,spans:a.spans??o})},caption:(e,t={})=>we({id:t.id??ee("caption"),kind:"media",inputHandleId:e,dataType:t.dataType??"Caption",fontFamily:t.fontFamily??ct.getAll()[0]?.family??"Inter",fontSize:t.fontSize??48,fill:t.fill??"#ffffff",...t}),shape:(e="rect",t={})=>we({id:t.id??ee("shape"),kind:"shape",shapeType:t.shapeType??e,...t,fillColor:t.fillColor??t.fill??"#3b82f6"}),flex:(e={})=>we({id:e.id??ee("flex"),kind:"flex",dir:e.dir??"column",children:e.children??[],...e}),box:(e={})=>we({id:e.id??ee("box"),kind:"box",background:e.background??"transparent",children:e.children??[],...e}),section:(e,t={},n={})=>{let r=e;if(e&&typeof e=="object"&&"toSpec"in e&&"children"in e){let w=(e.children||[]).find(D=>D.kind==="media"&&(D.dataType==="Video"||D.dataType==="Image"));w&&(r=w)}let a=t!==null&&typeof t=="object"&&"bounds"in t,i=a?n:t,o=a?t:void 0,u=i.padding??0,c=typeof r=="string"?r:r?.inputHandleId??r?.src??"",l=typeof r=="object"&&r?.dataType?r.dataType:"Video",m=i.compositionWidth??i.compWidth??(a?i.width:void 0)??1920,d=i.compositionHeight??i.compHeight??(a?i.height:void 0)??1080,p=Array.isArray(i.effects)?[...i.effects]:i.effects?[i.effects]:[],f=o?o.bounds.screenX.multiply(-1).add(u):typeof i.x=="number"?-i.x:i.x&&typeof i.x.multiply=="function"?i.x.multiply(-1):0,y=o?o.bounds.screenY.multiply(-1).add(u):typeof i.y=="number"?-i.y:i.y&&typeof i.y.multiply=="function"?i.y.multiply(-1):0,h=(l==="Image"?I.image(c,{position:"absolute",width:m,height:d,fit:i.fit??"cover",x:f,y}):I.video(c,{position:"absolute",width:m,height:d,fit:i.fit??"cover",x:f,y})).withEffects(p),b=o?o.bounds.screenWidth.add(u*2):i.width!==void 0?i.width:m,x=o?o.bounds.screenHeight.add(u*2):i.height!==void 0?i.height:d,v=[h,...i.children??[]],S=i.id??(o?ee(`section-track-${o.trackId}`):ee("section")),k=I.box({id:S,position:i.position??"absolute",width:b,height:x,x:o?void 0:i.x,y:o?void 0:i.y,borderRadius:i.borderRadius??0,borderColor:i.borderColor,borderWidth:i.borderWidth,opacity:i.opacity??1,overflow:"hidden",children:v});o&&(k=k.pinToObject(o,{anchor:"topLeft",offsetX:-u,offsetY:-u,hideWhenLost:i.hideWhenLost??!0,smoothFrames:i.smoothFrames}));let C=k;return Object.defineProperty(C,"innerMedia",{value:h,enumerable:!0,writable:!1}),Object.defineProperty(C,"effects",{get:()=>p,enumerable:!0}),Object.defineProperty(C,"addEffect",{value:w=>(p.push(w),h.effects=p,C),enumerable:!0,writable:!1}),Object.defineProperty(C,"withEffect",{value:w=>C.addEffect(w),enumerable:!0,writable:!1}),Object.defineProperty(C,"withEffects",{value:w=>{for(let D of w)C.addEffect(D);return C},enumerable:!0,writable:!1}),C},trackedRegion:(e,t,n={})=>I.section(e,t,n),blurTrackedRegion:(e,t,n={})=>{let{padding:r,borderRadius:a,borderColor:i,borderWidth:o,...u}=n;return I.section(e,t,{padding:r??8,borderRadius:a??12,borderColor:i,borderWidth:o,effects:[new dt({strength:u.strength??25,blurType:u.blurType??"Gaussian",...u})]})},chart:(e,t={})=>Ju(e,t,ct.getAll()[0]?.family??"Inter"),camera:(e={})=>we({id:e.id??ee("camera"),kind:"camera",mode:e.mode??"lookAt",pitch:e.pitch??0,yaw:e.yaw??0,roll:e.roll??0,...e}),light:(e={})=>we({id:e.id??ee("light"),kind:"light",lightType:e.lightType??"point",color:e.color??"#ffffff",intensity:e.intensity??1,...e}),ambientLight:(e="#ffffff",t=.5,n={})=>Ze.ambient(e,t,n),sequence:(e,t)=>rl(e,t),environment:(e="studio",t={})=>Ze.environment(e,t),directionalLight:(e={})=>Ze.directional(e),pointLight:(e={})=>Ze.point(e),spotLight:(e={})=>Ze.spot(e),cube:e=>Ot.cube(e),carousel3d:e=>Ot.carousel(e),plane3d:e=>Ot.plane(e),prism3d:e=>Ot.prism(e),model:(e={})=>we({id:e.id??ee("model3d"),kind:"model3d",is3D:e.is3D??!0,modelFormat:e.modelFormat??"auto",loop:e.loop??!0,scale:e.scale??1,scaleX:e.scaleX??1,scaleY:e.scaleY??1,scaleZ:e.scaleZ??1,opacity:e.opacity??1,...e}),obj:(e,t={})=>I.model({src:e,modelFormat:"obj",...t}),fbx:(e,t={})=>I.model({src:e,modelFormat:"fbx",...t}),gltf:(e,t={})=>I.model({src:e,modelFormat:"gltf",...t}),glb:(e,t={})=>I.model({src:e,modelFormat:"glb",...t}),stl:(e,t={})=>I.model({src:e,modelFormat:"stl",...t}),ply:(e,t={})=>I.model({src:e,modelFormat:"ply",...t}),vox:(e,t={})=>I.model({src:e,modelFormat:"vox",...t}),threeDS:(e,t={})=>I.model({src:e,modelFormat:"3ds",...t}),off:(e,t={})=>I.model({src:e,modelFormat:"off",...t})},Ze={environment:(e="studio",t={})=>{let n=typeof e=="string"?{preset:e,...t}:{...e,...t};return we({kind:"light",lightType:"environment",preset:"studio",intensity:1,...n,id:n.id??ee("environment")})},ambient:(e="#ffffff",t=.5,n={})=>we({id:n.id??ee("light-ambient"),kind:"light",lightType:"ambient",color:e,intensity:t,...n}),directional:(e={})=>we({id:e.id??ee("light-directional"),kind:"light",lightType:"directional",color:e.color??"#ffffff",intensity:e.intensity??1,x:e.x??0,y:e.y??-1e3,z:e.z??-1e3,targetX:e.targetX??0,targetY:e.targetY??0,targetZ:e.targetZ??0,...e}),point:(e={})=>we({id:e.id??ee("light-point"),kind:"light",lightType:"point",color:e.color??"#ffffff",intensity:e.intensity??1,x:e.x??0,y:e.y??0,z:e.z??-500,radius:e.radius??1e3,decay:e.decay??1,...e}),spot:(e={})=>we({id:e.id??ee("light-spot"),kind:"light",lightType:"spot",color:e.color??"#ffffff",intensity:e.intensity??1,x:e.x??0,y:e.y??-500,z:e.z??-1e3,targetX:e.targetX??0,targetY:e.targetY??0,targetZ:e.targetZ??0,angle:e.angle??45,penumbra:e.penumbra??.2,radius:e.radius??2e3,decay:e.decay??1,...e})};function FM(e,t={},n={}){return I.section(e,t,n)}function RM(e,t,n={}){return typeof e=="object"&&"blurRegion"in e?e.blurRegion(t,n):I.blurTrackedRegion(e,t,n)}function BM(e,t,n={}){return I.section(e,t,n)}var ah=Object.assign(Ji,ta,{blur:e=>new dt(e),vignette:e=>new ea(e),colorBalance:e=>new Jr(e),colorKey:e=>new Qr(e),levels:e=>new na(e),filmGrain:e=>new ra(e),curves:e=>new ia(e),selectiveColor:e=>new oa(e),gradientMap:e=>new sa(e),shadowsHighlights:e=>new ua(e),applyLut:e=>new la(e),unsharpMask:e=>new ca(e),highPass:e=>new da(e),halftoneScreen:e=>new ma(e),tileOffset:e=>new pa(e),motionBlur:e=>new fa(e),ssao:e=>new ha(e),pbrGlass:e=>new ga(e),depthOfField:e=>new ba(e),crop:e=>new sn(e),vision:e=>new mt(e),relight3d:e=>new ya(e),modulate:e=>new va(e),deflicker:e=>new xa(e),custom:(e,t={})=>new aa(e,t)});var export_HeadlessMediaRenderer=Te.HeadlessMediaRenderer;var export_HeadlessWebGPURenderer=Te.HeadlessWebGPURenderer;var export_formatQaReport=Te.formatQaReport;var export_renderSemaphore=Te.renderSemaphore;export{It as AETextAnimatorSchema,Na as AdvancedTextAnimatorBuilder,La as AdvancedTextAnimatorSchema,To as AnchorGroupingSchema,Po as AnchorPresetSchema,qo as AnimatableGlyphPropsSchema,tg as AnimationTypeSchema,Jh as AnyOutputUnionSchema,la as ApplyLUT,Cc as AudioCompressor,Ac as AudioDelay,Vh as AudioExtractorSignalDataSchema,Nc as AudioFade,_l as AudioLatentEngine,Ul as AudioLatentTrackCache,Ql as AudioMeshDeformPipeline,Dc as AudioNoiseGate,Oc as AudioParametricEq,Lc as AudioReverb,Sc as AudioSignal,ed as AudioSignalExtractor,Fo as AudioSpectrumTypographySchema,hg as BaseMediaOperationPropsSchema,ug as BaseVideoLayerPropsSchema,ps as BloomConfigSchema,dt as Blur,gs as BoxNodeSchema,Tg as CAPTION_LAYER_DEFAULTS,bc as COCO17_BONES,hc as COCO17_KEYPOINTS,gc as COCO17_KEYPOINT_NAMES,pc as COCO_CLASSES,Rh as COMPOSITE_OPERATIONS,Eh as COMPOSITOR_DEFAULTS,Yl as Camera3D,Ca as CameraAnimation,us as CameraNodeSchema,Fc as CameraParallax3D,ln as CannyComputePipeline,ks as CarrierHandoffConfigSchema,Rc as ChannelMerger,Bc as ChannelSplitter,Lo as ChromaticGlitchConfigSchema,Er as Color,Jr as ColorBalance,Qr as ColorKey,im as ColorStopSchema,Ml as Composition,om as CompositorProgramSchema,vh as ConfigHandleSchema,Ih as ConfigSchemaRegistry,un as ControlNetMultiplexer,Ic as CornerPin,sn as Crop,Eo as CubicBezierSegmentSchema,ia as Curves,aa as CustomEffect,Lh as DATA_TYPE_EXTENSIONS,Ku as DEFAULT_CHART_COLORS,Sg as DEFAULT_DURATION_MS,wg as DEFAULT_FPS,Mg as DEFAULT_MEDIA_DIMENSION,Th as DataType,kh as DataTypeVal,Ph as DataTypes,cn as DepthNormalsComputePipeline,ba as DepthOfField,Ec as DisplacementMap,Do as DynamicStrokePropertiesSchema,Qg as Easing,ah as Effect,$l as EffectPipeline,Sd as EnhancedTextNodeSchema,ms as EnvironmentFogSchema,cs as EnvironmentPresetSchema,eg as ExportResultSchema,wd as ExpressionSelectorSchema,Io as ExtendedGlyphPropertiesSchema,vg as ExtendedLayerSchema,_c as ExtractLUT,Nh as FileAssetSchema,_h as FileDataSchema,ra as FilmGrain,hs as FlexNodeSchema,Uc as Flip,ct as FontManager,Gh as GeneratorSignalDataSchema,Sa as GlassPipeline,Bh as GlobalCompositeOperation,Zo as GlyphAnchorGroupingSchema,Ko as GlyphAnchorPointSchema,Vg as Gradient,sa as GradientMap,ma as HalftoneScreen,Ch as HandleTypeVal,export_HeadlessMediaRenderer as HeadlessMediaRenderer,export_HeadlessWebGPURenderer as HeadlessWebGPURenderer,da as HighPass,Ah as JsonValueSchema,zc as KenBurns,Oa as KineticMarqueeConfigSchema,$b as LIGHT_UNIFORM_SIZE_BYTES,I as Layer,Ot as Layer3D,ce as LayerAnimation,Gc as LayerStyle,Ua as LayoutNodeSchema,na as Levels,Ze as Light,Hl as Light3D,fs as LightNodeSchema,ls as LightTypeSchema,Ff as Lighting,xd as LineSpacingDynamicsSchema,Vc as Liquify,Ro as LongShadowConfigSchema,_g as MAX_GRADIENT_STOPS,jb as MAX_LIGHTS,Fh as MIME_TYPES,jc as MaskMath,is as MaterialTypeSchema,$n as Matrix4Math,Ia as MatteModeSchema,Sl as Media,mg as MediaMetadataSchema,vs as MediaNodeSchema,yg as MediaOperationSchema,dg as MediaSourceSchema,$c as MeshWarp,Ss as Model3DNodeSchema,bh as ModerationError,yh as ModerationUnrefundableError,va as Modulate,fa as MotionBlur,Ma as MotionBlurPipeline,Kh as MultiOutputGenericSchema,wh as NodeMetadataSchema,Qh as NodeResultSchema,Dh as NodeVisualConfigSchema,Wc as NoiseGenerator,$r as OpticalFlowComputePipeline,Xh as OutputItemSchema,ga as PBRGlass,Yc as Paint,Bo as ParticleDissolveConfigSchema,Hc as PatchHeal,wa as Path3D,yc as PoseSkeletonRenderer,Xc as ProceduralVFX,Lt as ProgrammaticSignal,qc as RefineEdge,Zc as RefractionCaustics3D,ya as Relight3D,Wl as Renderer2D,tc as Renderer3D,Kc as ResizerScaler,Jc as Rotate,ha as SSAO,Ta as SSAOPipeline,fn as Scene,sm as SceneDefinitionSchema,Ms as SceneTransitionTypeSchema,xc as SegmentationTexturePool,oa as SelectiveColor,Kn as SelectorBasedOnSchema,Jn as SelectorModeSchema,$o as SelectorShapeSchema,jo as SelectorUnitsSchema,za as Sequence,ka as ShadowPipeline,ua as ShadowsHighlights,ws as ShapeNodeSchema,Bl as Signal,zh as SignalChannelMetaSchema,Wh as SignalDataSchema,$h as SignalGateDataSchema,jh as SignalMathDataSchema,Uh as SignalStatsSchema,Zh as SingleOutputGenericSchema,yd as SkewPropertiesSchema,Ft as SlugFontCache,jl as SlugPipeline,gg as SourceOperationSchema,vd as Spatial3DPropertiesSchema,wc as SpatialLandmarkTransformer,No as SpringPhysicsSchema,Qc as StereoPanning,kg as TEXT_LAYER_DEFAULTS,xa as TemporalDeflicker,Wr as TemporalDeflickerPipeline,fc as TemporalObjectTracker,Rt as TensorPipeline,Co as TextAnchorConfigSchema,Jd as TextAnimator,Ra as TextAnimatorBuilder,ss as TextAnimatorSchema,zo as TextCursorConfigSchema,Uo as TextCursorStyleSchema,xs as TextNodeSchema,bg as TextOperationSchema,Fa as TextPathBuilder,Bt as TextPathOptionsSchema,_o as TextPathSourceSchema,Wo as TextRangeSelectorSchema,Vo as TextScrambleConfigSchema,Xo as TextSelectorSchema,Ho as TextSignalSelectorSchema,bs as TextSpanMarkSchema,ys as TextSpanSchema,Yo as TextWigglySelectorSchema,pa as TileOffset,pg as TimelineSegmentSchema,fg as TimelineTransformSchema,ds as ToneMappingSchema,nl as Transition,cg as TransitionSchema,lg as TransitionTypeSchema,Zn as TypewriterAnimatorSchema,Go as TypingCadenceSchema,ca as UnsharpMask,Oo as VariableFontAxesSchema,mn as Vec2Schema,Ie as Vector3Math,ng as VideoAnimationSchema,sg as VideoLayerTypeSchema,rg as VideoSpatialPropsSchema,og as VideoStylePropsSchema,ig as VideoTextPropsSchema,ag as VideoTimingPropsSchema,ea as Vignette,xg as VirtualMediaDataSchema,mt as Vision,Xr as VisionBundle,on as VisionNode,Hr as VisionRunner,Da as VolumetricFormationConfigSchema,Ao as VolumetricFormationModeSchema,od as accent,Yr as analyzeSequence,eo as appendOperation,dc as applyStaggerToChildren,Jg as bezier,RM as blurRegion,ad as bold,Ld as buildPathLUT,Ts as calculateSequenceTimeline,qg as checkNodeResultCache,md as code,mc as collectNodeOps,sd as color,jn as compositorToProgram,Td as computeAnchorPivotOffset,um as computeCarrierContinuity,Fi as computeGridLayout,oc as computeLayout,ic as computeLayoutSync,Pd as computeLineLeadingDisplacement,Id as computeRangeSelectorWeight,cc as computeStaggerDelay,Bb as computeStrokeRect,Og as computeVideoCropRenderProps,Ol as computed,Rl as cosineSignal,qh as createOutputItemSchema,Qi as createVirtualMedia,Oh as dataTypeColors,Hh as deserializeSignalData,Ed as deterministicWigglyNoise,Ba as distanceToCurveParameter,BM as editTrackedRegion,ta as effectFactories,Pc as effectMeta,Qo as ellipseToCubicBeziers,Kr as encodeStereoWav,zl as ensureDevice,uc as evaluateAnimationAtFrame,Qn as evaluateCubicBezier,pn as evaluateCubicBezierDerivative,Cd as evaluateExpressionSelector,Nd as evaluateMarqueeOffset,Ud as evaluateSelectorCombination,kd as evaluateSkewMatrix,Md as evaluateSpringProgress,sc as evaluateTrackAtFrame,zd as evaluateTypewriterState,Ad as evaluateVolumetricFormation,Kg as extractSvgDimensions,Xg as findSourceAsset,Rg as formatHex,export_formatQaReport as formatQaReport,mh as frameArraySignal,ph as frameSignal,Jo as generateArcLengthLUT,xh as generateId,Bd as generatePathSegments,Dg as getActiveMediaMetadata,Ng as getFileDataMetadata,$g as getFingerprint,Pg as getLeafMediaType,Ag as getMediaType,Wg as getRenderFingerprint,rs as getScramblePool,_d as getShuffledOrder,Gg as gradientStopsToOklab,Hg as hasOnlySingleSource,lc as hoistMattes,Ur as inputStore,eb as interpolate,Ug as isCssGradient,jg as isEqual,dh as isSignal,Yg as isVirtualMediaData,id as italic,zg as limitGradientStops,Aa as lintComposition,Jl as loadFBX,nc as loadModel3D,Zl as loadOBJ,Gl as lutStore,Ob as mapBlendModeToSkia,ld as mark,ab as measureSpring,ob as measureText,sb as measureTextAsync,Xn as mergeAnimationTracks,ac as mixAudioTracks,Bg as mixColors,kc as mixSfxInto,Eg as normalizeColorStops,Wn as normalizeTextSpans,Fg as oklabToRgb,Wb as parseColorToRgb,Ir as parseCssColor,to as parseCssGradient,Kl as parseFBX,ql as parseMTL,pd as parseMarkup,Xl as parseOBJ,ts as parseSvgPathToCubicBeziers,qr as pinNodeToLandmark,Zr as pinNodeToObject,nb as preloadCompositionFonts,tb as preloadFont,ih as programmaticSignal,hh as progressSignal,ch as registerSignalDependency,Dn as renderFrameGrid,export_renderSemaphore as renderSemaphore,Mc as renderSfx,Sh as reportRenderDiagnostic,Lb as requiresIsolation,uh as resolveBoolean,Cg as resolveMediaMimeType,oh as resolveNumber,lh as resolveParam,Li as resolveSamplePoints,sh as resolveString,Lg as rgbToOklab,nd as rich,Dd as sampleAudioSpectrumScale,Ig as sampleColorStops,Od as sampleCurveGeometry,Fd as samplePathChainGeometry,FM as section,Yh as serializeSignalData,Il as shaderStore,Dl as signal,Ll as signalBuilder,El as signalRegistry,Fl as sineSignal,ud as size,Tc as softLimit,rd as span,ib as spring,rb as springCalculation,Zg as stampResult,Yf as startPreview,dd as sub,cd as sup,Mh as takeRenderDiagnostics,Vl as textureCache,fh as timeSignal,gh as updateClockSignals,es as waveToCubicBeziers};
1963
+ `),u.add(B),clearTimeout(l),g||(g=!0,f(c===!1?"page opened":`page opened; the server stops ${Number((c/1e3).toFixed(1))} s after its last tab closes`)),_?.(),L.on("close",()=>{u.delete(B),u.size===0&&c!==!1&&!S&&(l=setTimeout(()=>{u.size===0&&W("idle")},c))});return}if(L.method==="POST"&&$.pathname==="/takeover"&&L.headers[ml]==="1"){Ze(B,200,{ok:!0}),setImmediate(()=>{W("replaced")});return}if(L.method==="POST"&&$.pathname==="/@framefields/log"&&L.headers["content-type"]==="application/json"){let j=await cl(L,16384),{message:K,level:O}=JSON.parse(j),D=String(K??"").trim();D&&!y.has(D)&&y.size<200&&(y.add(D),f(`${O==="warning"?"warning":"error"} in the page: ${D}`)),B.writeHead(204).end();return}if(b&&$.pathname==="/@framefields/notes"){if(L.method==="GET"){Ze(B,200,await b.list());return}if(L.method==="POST"&&L.headers["content-type"]==="application/json"){let j=JSON.parse(await cl(L,16777216)),K=P.then(()=>Hf(b,j,M.fps,f));P=K.catch(()=>{});let O=await K;Z("notes",await b.list()),Ze(B,O?200:404,O??{error:"no such note"});return}}if(L.method==="GET"&&$.pathname==="/audio"){if(R.state!=="ready"||!G){Ze(B,404,{error:`audio is ${R.state}`});return}B.writeHead(200,{"content-type":"audio/wav","content-length":G.length,"cache-control":"no-store"}),B.end(G);return}let X=/^\/assets\/fonts\/([^/]+)$/.exec($.pathname);if(X&&(L.method==="GET"||L.method==="HEAD")){let j=z.join(x.cwd(),"assets","fonts",decodeURIComponent(X[1]));if(await Fa(j)){await Ra(L,B,j);return}}if(L.method==="GET"||L.method==="HEAD"){let j=z.resolve(decodeURIComponent($.pathname.replace(/^\/@fs(?=\/)/,"")));if(s.some(K=>La(K,j))&&await Fa(j)){await Ra(L,B,j);return}}Ze(B,404,{error:"not found"})}catch(X){B.headersSent?B.end():Ze(B,500,{error:X instanceof Error?X.message:String(X)})}}),_,I=t.host??"127.0.0.1",re=t.port??Zf(),le=L=>new Promise((B,$)=>{let X=K=>{H.off("listening",j),$(K)},j=()=>{H.off("error",X),B()};H.once("error",X),H.once("listening",j),H.listen(L,I)});try{await le(re)}catch(L){if(L.code!=="EADDRINUSE")throw L;if(await Kf(I,re))await le(re).catch(()=>le(0));else if(t.port===void 0)await le(0);else throw L}let{port:be}=H.address(),de=`http://${I.includes(":")?`[${I}]`:I}:${be}/`;if(A().catch(()=>{}),ae(),t.open===!0){let L=await new Promise(B=>{let $=setTimeout(()=>B(!1),2e3);_=()=>{clearTimeout($),B(!0)},u.size>0&&_()});_=void 0,L||Qf(de)}return{url:de,closed:w,close:()=>W()}}async function Vf(e,t){let n=(await import(Ir(e).href))[t];if(n===void 0)throw new Error(`[framefields] ${e} has no export named "${t}" to preview.`);return typeof n=="function"?await n():n}function Wf(e){let t;for(let r=e;;r=z.dirname(r)){if(he.existsSync(z.join(r,".git")))return r;if(!t&&he.existsSync(z.join(r,"package.json"))&&(t=r),z.dirname(r)===r)return t??e}}async function Hf(e,t,r,n){if(t.op==="add"&&t.note&&String(t.note.text).trim()){let a=await e.add(t.note),s=[a.image&&`frame with the spot marked: ${a.image}`,`all notes: ${e.file}`];return n(`${ul(a,r)}
1964
+ ${s.filter(Boolean).join(" \xB7 ")}`),a}let i=Number(t.id);if(t.op==="update"){let a=await e.update(i,t);return a&&typeof t.done=="boolean"&&n(`note ${i} marked ${a.done?"done":"open"}`),a}if(t.op==="remove"){let a=await e.remove(i);return a&&n(`note ${i} deleted`),a}}function Yf(e){return e instanceof Error?e.message:String(e)}function cl(e,t){return new Promise((r,n)=>{let i="";e.setEncoding("utf8"),e.on("data",a=>{i+=a,i.length>t&&(n(new Error("request body too large")),e.destroy())}),e.on("end",()=>r(i)),e.on("error",n)})}function La(e,t){let r=z.relative(e,t);return!!r&&!r.startsWith("..")&&!z.isAbsolute(r)}async function Fa(e){try{return(await he.promises.stat(e)).isFile()}catch{return!1}}var Xf={".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".webp":"image/webp",".gif":"image/gif",".svg":"image/svg+xml",".mp4":"video/mp4",".mov":"video/quicktime",".webm":"video/webm",".mp3":"audio/mpeg",".wav":"audio/wav",".m4a":"audio/mp4",".ogg":"audio/ogg",".ttf":"font/ttf",".otf":"font/otf",".woff":"font/woff",".woff2":"font/woff2",".json":"application/json",".js":"text/javascript; charset=utf-8",".mjs":"text/javascript; charset=utf-8",".wasm":"application/wasm",".onnx":"application/octet-stream",".srt":"text/plain; charset=utf-8",".txt":"text/plain; charset=utf-8"};async function Ra(e,t,r){let{size:n}=await he.promises.stat(r),i=Xf[z.extname(r).toLowerCase()]??"application/octet-stream",a=/^bytes=(\d*)-(\d*)$/.exec(e.headers.range??""),s=0,u=n-1;if(a&&(a[1]||a[2])&&(a[1]?(s=Number(a[1]),a[2]&&(u=Math.min(u,Number(a[2])))):s=Math.max(0,n-Number(a[2])),s>u||s>=n)){t.writeHead(416,{"content-range":`bytes */${n}`}),t.end();return}if(t.writeHead(a?206:200,{"content-type":i,"content-length":u-s+1,"accept-ranges":"bytes","cache-control":"no-cache",...a&&{"content-range":`bytes ${s}-${u}/${n}`}}),e.method==="HEAD"){t.end();return}he.createReadStream(r,{start:s,end:u}).pipe(t)}async function qf(e,t,r,n){let i=e.fps??24,a=e.durationMs??await e.computeDuration?.()??5e3;return{session:r,notesDir:n,title:t,fps:i,frameCount:Math.max(1,Math.round(a/1e3*i)),width:e.width??1920,height:e.height??1080}}function Zf(){return 41e3+(0,Dn.createHash)("sha1").update(x.cwd()).digest().readUInt16BE(0)%900}async function Kf(e,t){let r=await new Promise(n=>{let i=Ba.default.request({host:e,port:t,method:"POST",path:"/takeover",agent:!1,headers:{[ml]:"1"},timeout:1500},a=>{a.resume(),n(a.statusCode===200)});i.on("timeout",()=>i.destroy()),i.on("error",()=>n(!1)),i.end()});return r&&await new Promise(n=>setTimeout(n,150)),r}function Jf(e,t,r){let n=new Array(r).fill(0);if(e.length===0)return n;let i=e.length/r;for(let a=0;a<r;a++){let s=Math.floor(a*i),u=Math.min(e.length,Math.floor((a+1)*i)),c=0;for(let l=s;l<u;l++){let m=Math.max(Math.abs(e[l]??0),Math.abs(t[l]??0));m>c&&(c=m)}n[a]=Math.min(1,c)}return n}function Ze(e,t,r){e.writeHead(t,{"content-type":"application/json","cache-control":"no-store"}),e.end(JSON.stringify(r))}function Qf(e){let[t,r]=x.platform==="darwin"?["open",[e]]:x.platform==="win32"?["cmd",["/c","start","",e]]:["xdg-open",[e]];try{(0,dl.spawn)(t,r,{stdio:"ignore",detached:!0}).on("error",()=>{}).unref()}catch{}}function Ea(e,t){return e&&(t&&!e.source&&Object.defineProperty(e,"source",{value:t,enumerable:!0,writable:!0,configurable:!0}),typeof e.section!="function"&&Object.defineProperty(e,"section",{value:(r,n)=>{if(typeof r=="object"&&r!==null&&!("kind"in r)&&!("inputHandleId"in r)&&!("src"in r)){let a=r.source??e.source??t;return F.section(a,e,r)}let i=r??e.source??t;return F.section(i,e,n)},enumerable:!1,writable:!0,configurable:!0}),typeof e.blurEffect!="function"&&Object.defineProperty(e,"blurEffect",{value:r=>new ct({track:e,...r}),enumerable:!1,writable:!0,configurable:!0}),typeof e.isolate!="function"&&Object.defineProperty(e,"isolate",{value:(r,n)=>F.section(r,e,n),enumerable:!1,writable:!0,configurable:!0}),e)}var eh=ir.attach;ir.attach=function(e,t,r){let n=eh.call(this,e,t,r);if(n?.objects){let i=e,a=n.objects.get.bind(n.objects);n.objects.get=u=>Ea(a(u),i);let s=n.objects.byCategory.bind(n.objects);n.objects.byCategory=(u,c)=>Ea(s(u,c),i),n.objects.primary&&Ea(n.objects.primary,i)}return n};var pl=class e{virtualMedia;constructor(t,r="Video"){this.virtualMedia=Xa(t,r)}static video(t,r){let n=new e(t,"Video");return r&&Object.assign(n.virtualMedia.metadata,r),n}static image(t,r){let n=new e(t,"Image");return r&&Object.assign(n.virtualMedia.metadata,r),n}static lottie(t,r){let n=new e(t,"Lottie");return r&&Object.assign(n.virtualMedia.metadata,r),n}static audio(t,r){let n=new e(t,"Audio");return r&&Object.assign(n.virtualMedia.metadata,r),n}apply(t,r={}){let n;t instanceof th||typeof t=="object"&&t!==null&&"op"in t?n=t.toOperation():n={op:t,...r};let i=qa(this.virtualMedia,{...n,dataType:this.virtualMedia.operation.dataType});return new e(i)}toVirtualMedia(){return this.virtualMedia}async renderFrame(t={}){return(t.renderer??new Pe.HeadlessMediaRenderer).renderFrame(this.virtualMedia,t)}get fps(){return this.virtualMedia.metadata?.fps??void 0}get durationMs(){return this.virtualMedia.metadata?.durationMs??void 0}get width(){return this.virtualMedia.metadata?.width??void 0}get height(){return this.virtualMedia.metadata?.height??void 0}async renderFrameGrid(t={}){return Cr(this,t)}async renderVideo(t={},r={}){let n=typeof t=="string"?{...r,outputPath:t}:t,a=await(n.renderer??new Pe.HeadlessMediaRenderer).renderVideo(this.virtualMedia,n);return hl(a,n.outputPath)}};async function hl(e,t){if(!t)return e;let r=z.resolve(t);return await nr.mkdir(z.dirname(r),{recursive:!0}),await nr.copyFile(e.filePath,r),await e.cleanup(),{...e,filePath:r,cleanup:async()=>{}}}var fl=class e{width;height;fps;durationMs;backgroundColor;antialias3d;fonts;children=[];audioTracks=[];signals={};_frameHooks=[];_visionConfig;_visionBundle;_effects=[];apply(t){return t instanceof dt?(this.withVision(t),this):(this._effects.push(t),this)}withVision(t={}){this._visionBundle??=new Vn({width:this.width,height:this.height,fps:this.fps});let r=t instanceof dt?t.config:t;return this._visionConfig={...r,visionBundle:this._visionBundle},this._visionBundle}async analyzeVisionSequence(t,r={}){let n=r.fps??this.fps,i=this.durationMs??await this.computeDuration(),a=r.totalFrames??Math.max(1,Math.round(i/1e3*n)),s=jn.create({modelsDir:r.modelsDir,baseUrl:r.baseUrl,...r.confidence!==void 0?{confidence:r.confidence}:{},...r.variant!==void 0?{variant:r.variant}:{}}),u=Ja.getVideo(t,!0);async function*c(){for(let l=0;l<a;l++){let m=await u.getFrame(l/n);m?.buffer&&m.width>0&&m.height>0&&(yield{data:m.buffer,width:m.width,height:m.height})}}try{return await $n(c(),{runner:s,source:t,fps:n,...r.tasks!==void 0?{tasks:r.tasks}:{},...r.categories!==void 0?{categories:r.categories}:{},...r.pathStride!==void 0?{pathStride:r.pathStride}:{},...r.includeMasks!==void 0?{includeMasks:r.includeMasks}:{},...r.iouThreshold!==void 0?{iouThreshold:r.iouThreshold}:{}})}finally{s.close(),u.destroy()}}onRequestFrame(t){return this._frameHooks.push(t),this}notifyFrame(t){for(let r of this._frameHooks)r(t)}constructor(t){this.width=t.width,this.height=t.height,this.fps=t.fps??60,this.durationMs=t.durationMs??(t.durationFrames!==void 0?t.durationFrames/this.fps*1e3:void 0),this.backgroundColor=t.backgroundColor??"#000000",this.antialias3d=t.antialias3d,this.fonts=t.fonts??[],this.signals=t.signals??{}}static create(t){return new e(t)}addSignal(t,r){return this.signals[t]=r,this}add(t,...r){if(t instanceof Bt)this.children.push(t.toNode());else if(t instanceof ir)this.children.push(t.toNode());else{if(t&&typeof t=="object"&&"node"in t)return this.add(t.node,...r),this;if(Array.isArray(t))for(let n of t)this.add(n);else{let n=t,i=r[0];if(i&&!(i instanceof Bt)&&!Array.isArray(i)&&(i instanceof ue||"tracks"in i))return n.animation=i instanceof ue?i.toSpec():i,this.children.push(n),this;this.children.push(n)}}for(let n of r)n&&!(n instanceof ue)&&!("tracks"in n)&&this.add(n);return this}addAudio(t){return this.audioTracks.push(t),this}addSubjectSandwich(t){let r=typeof t.source=="string"?t.source:t.source.inputHandleId??"",n=t.fit??"cover",i=t.feather??4,a=i>1?i/100:i,s=t.variant??"s",u=F.video(r,{width:this.width,height:this.height,position:"absolute",x:0,y:0,fit:n,muted:t.muted??!1,volume:t.muted?0:t.volume??1});this.add(u);for(let l of t.behind)this.add(l);let c=F.video(r,{width:this.width,height:this.height,position:"absolute",x:0,y:0,fit:n,muted:!0,volume:0}).withVision({mode:"matte",enableSegmentation:!0,variant:s,confidence:t.confidence??.25,featherRadius:a,keyBackground:t.keyBackground??!0,backgroundKeyThreshold:t.backgroundKeyThreshold});return this.add(c),this}addSmartFraming(t){let r=typeof t.source=="string"?t.source:t.source.inputHandleId??"",n=Math.max(0,Math.min(.99,t.damping??.8)),i=t.leadHeadroom??.18,a=this.width,s=this.height,u=t.sourceAspect??16/9,c=a/s,l=c<u?Math.round(s*u):a,m=c<u?s:Math.round(a/u),d=a-l,p=s-m,f=t.target,y=new Dt(k=>{if(d>=0)return 0;let A=f.center?.x?f.center.x.get(k):f.bounds?.centerX?f.bounds.centerX.get(k)/a:f.center?.screenX?f.center.screenX.get(k)/a:.5,R=Math.max(0,Math.min(1,A))*l,G=a/2-R;return Math.max(d,Math.min(0,G))},{fps:this.fps,label:"smart_framing_pan_x"}),g=new Dt(k=>{if(p>=0)return 0;let A=f.center?.y?f.center.y.get(k):f.bounds?.centerY?f.bounds.centerY.get(k)/s:f.center?.screenY?f.center.screenY.get(k)/s:.5,R=Math.max(0,Math.min(1,A))*m,G=s*i-R;return Math.max(p,Math.min(0,G))},{fps:this.fps,label:"smart_framing_pan_y"}),b=new Dt(k=>{let A=k.frame;if(A<=0)return y.get(k);let v=y.get({...k,frame:0,time:0}),R=1-n;for(let G=1;G<=A;G++){let Z=y.get({...k,frame:G,time:G/k.fps});v=v+R*(Z-v)}return v},{fps:this.fps,label:"smart_framing_smooth_x"}),P=new Dt(k=>{let A=k.frame;if(A<=0)return g.get(k);let v=g.get({...k,frame:0,time:0}),R=1-n;for(let G=1;G<=A;G++){let Z=g.get({...k,frame:G,time:G/k.fps});v=v+R*(Z-v)}return v},{fps:this.fps,label:"smart_framing_smooth_y"}),N=F.box({width:a,height:s,overflow:"hidden",position:"relative"}),M=F.video(r,{width:l,height:m,position:"absolute",x:b,y:P,fit:t.fit??"cover",muted:t.muted??!1,volume:t.muted?0:t.volume??1});return N.children||(N.children=[]),N.children.push(M),this.add(N),this}addSubjectOutline(t,r={}){let n=r.blur??12,i=this.width,a=this.height,s=r.pulseSignal,u=s?new Dt(m=>Math.max(0,Math.min(1,Number(s.get(m))||0)),{fps:this.fps,label:"outline_pulse"}):1,c=typeof r.source=="string"?r.source:r.source?.inputHandleId??"",l=F.box({width:i,height:a,position:"absolute",x:0,y:0,opacity:u});if(c){let m=F.video(c,{width:i,height:a,position:"absolute",x:0,y:0,fit:"cover",muted:!0,volume:0}).withVision({mode:"mask",enableSegmentation:!0});l.children||(l.children=[]),l.children.push(m)}return l.apply(new ct({strength:n,blurType:"Gaussian"})),this.add(l),this}section(t,r,n){let i,a,s={},u=t!==null&&typeof t=="object"&&"bounds"in t,c=typeof t=="string"||t!==null&&typeof t=="object"&&("kind"in t||"src"in t||"inputHandleId"in t);if(c&&r&&typeof r=="object"&&"bounds"in r?(i=t,a=r,s=n??{}):c&&r?(i=t,s=r):u?(a=t,s=r??{},i=s.source??a.source):t&&typeof t=="object"&&(s=t,i=s.source),!i){let l=this.children.find(m=>m.kind==="media"&&(m.dataType==="Video"||m.dataType==="Image"));l&&(i=l)}return F.section(i??"",a??s,{compositionWidth:this.width,compositionHeight:this.height,...s})}addSection(t,r,n){let i=this.section(t,r,n);return this.add(i),i}async computeDuration(){if(this.durationMs!==void 0)return this.durationMs;let t=0,r=[];for(let n of[...this.children,...this.audioTracks]){if(n.kind==="media"){let i=n.inputHandleId;typeof i=="string"&&(n.dataType==="Video"||n.dataType==="Audio")&&r.push(i)}if(typeof n.durationFrames=="number"){let a=((typeof n.startFrame=="number"?n.startFrame:0)+n.durationFrames)/this.fps*1e3;a>t&&(t=a)}}for(let n of r)try{let a=await(await Bn.acquire(n)).computeDuration();if(Number.isFinite(a)&&a>0){let s=Math.round(a*1e3);s>t&&(t=s)}}catch{}return t>0?t:5e3}async registerFont(t,r){let n=await lt.register(t,r);return n.filePath&&!this.fonts.includes(n.filePath)&&this.fonts.push(n.filePath),this}async registerEmojiFont(t){return await lt.registerEmojiFont(t),this}toSpec(){let t=[...this.children,...this.audioTracks],r=lt.getRegisteredFontPaths(),n=Array.from(new Set([...this.fonts,...r]));return{width:this.width,height:this.height,fps:this.fps,mode:"Video",backgroundColor:this.backgroundColor,...this.antialias3d!==void 0&&{antialias3d:this.antialias3d},layout:t,fonts:n,signals:this.signals,...this._effects.length>0&&{effects:this._effects},...this._visionConfig&&{vision:this._visionConfig},...this._frameHooks.length>0&&{onRequestFrame:i=>this.notifyFrame(i)}}}toVirtualMedia(t={}){return Gr(this.toSpec(),{isVideoMode:!0,fps:this.fps,durationMs:t.durationMs??this.durationMs,signals:t.signals??this.signals,...this._effects.length>0&&{effects:this._effects},...this._visionConfig&&{vision:this._visionConfig},...t})}async toVirtualMediaAsync(t={}){let r=t.durationMs??this.durationMs??await this.computeDuration();return this.durationMs=r,Gr(this.toSpec(),{isVideoMode:!0,fps:this.fps,durationMs:r,signals:t.signals??this.signals,...this._effects.length>0&&{effects:this._effects},...this._visionConfig&&{vision:this._visionConfig},...t})}async renderFrame(t={}){if(this._frameHooks.length>0){let n=t.frame??(t.atMs!==void 0?Math.round(t.atMs/1e3*this.fps):0);this.notifyFrame({frame:n,fps:this.fps,time:this.fps>0?n/this.fps:0,duration:(this.durationMs??0)/1e3,durationMs:this.durationMs??0,progress:this.durationMs&&this.durationMs>0?Math.max(0,Math.min(1,n/this.fps*1e3/this.durationMs)):0,deltaTime:this.fps>0?1/this.fps:0})}return(t.renderer??new Pe.HeadlessMediaRenderer).renderFrame(this.toVirtualMedia(),{fps:this.fps,...t})}async renderFrameGrid(t={}){return Cr(this,t)}async renderVideo(t={},r={}){let n=typeof t=="string"?{...r,outputPath:t}:t,a=await(n.renderer??new Pe.HeadlessMediaRenderer).renderVideo(this.toVirtualMedia(),n);if(a.qa){let s=this.lint(),u=[...a.qa.issues,...s.map(c=>({severity:c.severity,code:c.code,message:c.message,...c.layerId!==void 0&&{layerId:c.layerId}}))];a.qa={...a.qa,issues:u,passed:a.qa.passed&&!s.some(c=>c.severity==="error")}}return hl(a,n.outputPath)}lint(){return Oi(this.toSpec())}};function we(e){let t=e;Object.defineProperty(t,"animate",{value:(...n)=>{let i=n.flat().flatMap(s=>s instanceof ue?s.tracks:s.tracks??[]),a=t.animation?.tracks??[];return t.animation={tracks:Yr([...a,...i])},t},enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"pinToLandmark",{value:(n,i)=>(Wn(t,n,i),t),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"pinToObject",{value:(n,i)=>(Hn(t,n,i),t),enumerable:!1,writable:!0,configurable:!0});let r=(n,i)=>(t.matte={node:n,...i&&{mode:i}},t);for(let n of["withMatte","withMask"])Object.defineProperty(t,n,{value:r,enumerable:!1,writable:!0,configurable:!0});return Object.defineProperty(t,"withPbrGlass",{value:n=>(t.glass=n??{},t),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"deformWithAudio",{value:n=>(t.audioDeform=n??{},t),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"withCrop",{value:n=>(t.crop=n instanceof ar?n:new ar(n),t),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"withVision",{value:n=>(t.vision=n instanceof dt?n:new dt(n),t),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"withRelighting",{value:n=>(t.relighting=n??{},t),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"relight",{value:n=>(t.relighting=n??{},t),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"withDeflicker",{value:n=>(t.deflicker=n??{},t),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"apply",{value:n=>(t.effects||(t.effects=[]),t.effects.push(n),t),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"withEffect",{value:n=>(t.effects||(t.effects=[]),t.effects.push(n),t),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"withEffects",{value:n=>(t.effects||(t.effects=[]),t.effects.push(...n),t),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"section",{value:(n={},i)=>n!==null&&typeof n=="object"&&"bounds"in n?F.section(t,n,i):F.section(t,n),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"blurRegion",{value:(n,i)=>{let a=new ct({track:n,strength:i?.strength??25,shape:i?.shape??"ellipse",...i});return t.effects||(t.effects=[]),t.effects.push(a),t},enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"withBlurRegion",{value:(n,i)=>t.blurRegion(n,i),enumerable:!1,writable:!0,configurable:!0}),t}var F={video:(e,t={})=>we({id:t.id??J("video"),kind:"media",inputHandleId:e,dataType:"Video",fit:t.fit??"cover",...t}),image:(e,t={})=>(typeof e=="string"&&(/\.(json|lottie)(\?.*)?$/i.test(e)||e.startsWith("data:application/json")?console.warn(`[Layer.image] '${e}' is a Lottie vector animation, not a static image. Use Layer.lottie('${e}', options) instead.`):/\.(mp4|mov|webm|mkv)(\?.*)?$/i.test(e)?console.warn(`[Layer.image] '${e}' is a video file, not a static image. Use Layer.video('${e}', options) instead.`):/\.(mp3|wav|ogg|m4a|aac)(\?.*)?$/i.test(e)&&console.warn(`[Layer.image] '${e}' is an audio file, not a static image. Use Layer.audio('${e}', options) instead.`)),we({id:t.id??J("img"),kind:"media",inputHandleId:e,dataType:"Image",fit:t.fit??"cover",...t})),svg:(e,t={})=>we({id:t.id??J("svg"),kind:"media",inputHandleId:e,dataType:"SVG",fit:t.fit??"contain",...t}),lottie:(e,t={})=>we({id:t.id??J("lottie"),kind:"media",inputHandleId:e,dataType:"Lottie",fit:t.fit??"contain",...t}),audio:(e,t={})=>we({id:t.id??J("audio"),kind:"media",inputHandleId:e,dataType:"Audio",volume:t.volume??1,...t}),text:(e,t={})=>{let r=Array.isArray(e),n=!r&&typeof e=="object"&&e!==null,i=n?e:t,a="",s=i.spans;if(r){let u=Vr(e);a=u.text,s=u.spans}else n?i.spans&&!i.text?a=Vr(i.spans).text:a=i.text??"":a=typeof e=="string"?e:String(e??"");return we({id:i.id??J("text"),kind:"text",fontFamily:i.fontFamily??lt.getAll()[0]?.family??"Inter",fontSize:i.fontSize??48,fill:i.fill??"#ffffff",...i,text:i.text??a,spans:i.spans??s})},caption:(e,t={})=>we({id:t.id??J("caption"),kind:"media",inputHandleId:e,dataType:t.dataType??"Caption",fontFamily:t.fontFamily??lt.getAll()[0]?.family??"Inter",fontSize:t.fontSize??48,fill:t.fill??"#ffffff",...t}),shape:(e="rect",t={})=>we({id:t.id??J("shape"),kind:"shape",shapeType:t.shapeType??e,...t,fillColor:t.fillColor??t.fill??"#3b82f6"}),flex:(e={})=>we({id:e.id??J("flex"),kind:"flex",dir:e.dir??"column",children:e.children??[],...e}),box:(e={})=>we({id:e.id??J("box"),kind:"box",background:e.background??"transparent",children:e.children??[],...e}),section:(e,t={},r={})=>{let n=e;if(e&&typeof e=="object"&&"toSpec"in e&&"children"in e){let v=(e.children||[]).find(R=>R.kind==="media"&&(R.dataType==="Video"||R.dataType==="Image"));v&&(n=v)}let i=t!==null&&typeof t=="object"&&"bounds"in t,a=i?r:t,s=i?t:void 0,u=a.padding??0,c=typeof n=="string"?n:n?.inputHandleId??n?.src??"",l=typeof n=="object"&&n?.dataType?n.dataType:"Video",m=a.compositionWidth??a.compWidth??(i?a.width:void 0)??1920,d=a.compositionHeight??a.compHeight??(i?a.height:void 0)??1080,p=Array.isArray(a.effects)?[...a.effects]:a.effects?[a.effects]:[],f=s?s.bounds.screenX.multiply(-1).add(u):typeof a.x=="number"?-a.x:a.x&&typeof a.x.multiply=="function"?a.x.multiply(-1):0,y=s?s.bounds.screenY.multiply(-1).add(u):typeof a.y=="number"?-a.y:a.y&&typeof a.y.multiply=="function"?a.y.multiply(-1):0,g=(l==="Image"?F.image(c,{position:"absolute",width:m,height:d,fit:a.fit??"cover",x:f,y}):F.video(c,{position:"absolute",width:m,height:d,fit:a.fit??"cover",x:f,y})).withEffects(p),b=s?s.bounds.screenWidth.add(u*2):a.width!==void 0?a.width:m,P=s?s.bounds.screenHeight.add(u*2):a.height!==void 0?a.height:d,N=[g,...a.children??[]],M=a.id??(s?J(`section-track-${s.trackId}`):J("section")),k=F.box({id:M,position:a.position??"absolute",width:b,height:P,x:s?void 0:a.x,y:s?void 0:a.y,borderRadius:a.borderRadius??0,borderColor:a.borderColor,borderWidth:a.borderWidth,opacity:a.opacity??1,overflow:"hidden",children:N});s&&(k=k.pinToObject(s,{anchor:"topLeft",offsetX:-u,offsetY:-u,hideWhenLost:a.hideWhenLost??!0,smoothFrames:a.smoothFrames}));let A=k;return Object.defineProperty(A,"innerMedia",{value:g,enumerable:!0,writable:!1}),Object.defineProperty(A,"effects",{get:()=>p,enumerable:!0}),Object.defineProperty(A,"addEffect",{value:v=>(p.push(v),g.effects=p,A),enumerable:!0,writable:!1}),Object.defineProperty(A,"withEffect",{value:v=>A.addEffect(v),enumerable:!0,writable:!1}),Object.defineProperty(A,"withEffects",{value:v=>{for(let R of v)A.addEffect(R);return A},enumerable:!0,writable:!1}),A},trackedRegion:(e,t,r={})=>F.section(e,t,r),blurTrackedRegion:(e,t,r={})=>{let{padding:n,borderRadius:i,borderColor:a,borderWidth:s,...u}=r;return F.section(e,t,{padding:n??8,borderRadius:i??12,borderColor:a,borderWidth:s,effects:[new ct({strength:u.strength??25,blurType:u.blurType??"Gaussian",...u})]})},chart:(e,t={})=>ju(e,t,lt.getAll()[0]?.family??"Inter"),camera:(e={})=>we({id:e.id??J("camera"),kind:"camera",mode:e.mode??"lookAt",pitch:e.pitch??0,yaw:e.yaw??0,roll:e.roll??0,...e}),light:(e={})=>we({id:e.id??J("light"),kind:"light",lightType:e.lightType??"point",color:e.color??"#ffffff",intensity:e.intensity??1,...e}),ambientLight:(e="#ffffff",t=.5,r={})=>qe.ambient(e,t,r),sequence:(e,t)=>Xu(e,t),environment:(e="studio",t={})=>qe.environment(e,t),directionalLight:(e={})=>qe.directional(e),pointLight:(e={})=>qe.point(e),spotLight:(e={})=>qe.spot(e),cube:e=>Ot.cube(e),carousel3d:e=>Ot.carousel(e),plane3d:e=>Ot.plane(e),prism3d:e=>Ot.prism(e),model:(e={})=>we({id:e.id??J("model3d"),kind:"model3d",is3D:e.is3D??!0,modelFormat:e.modelFormat??"auto",loop:e.loop??!0,scale:e.scale??1,scaleX:e.scaleX??1,scaleY:e.scaleY??1,scaleZ:e.scaleZ??1,opacity:e.opacity??1,...e}),obj:(e,t={})=>F.model({src:e,modelFormat:"obj",...t}),fbx:(e,t={})=>F.model({src:e,modelFormat:"fbx",...t}),gltf:(e,t={})=>F.model({src:e,modelFormat:"gltf",...t}),glb:(e,t={})=>F.model({src:e,modelFormat:"glb",...t}),stl:(e,t={})=>F.model({src:e,modelFormat:"stl",...t}),ply:(e,t={})=>F.model({src:e,modelFormat:"ply",...t}),vox:(e,t={})=>F.model({src:e,modelFormat:"vox",...t}),threeDS:(e,t={})=>F.model({src:e,modelFormat:"3ds",...t}),off:(e,t={})=>F.model({src:e,modelFormat:"off",...t})},qe={environment:(e="studio",t={})=>{let r=typeof e=="string"?{preset:e,...t}:{...e,...t};return we({kind:"light",lightType:"environment",preset:"studio",intensity:1,...r,id:r.id??J("environment")})},ambient:(e="#ffffff",t=.5,r={})=>we({id:r.id??J("light-ambient"),kind:"light",lightType:"ambient",color:e,intensity:t,...r}),directional:(e={})=>we({id:e.id??J("light-directional"),kind:"light",lightType:"directional",color:e.color??"#ffffff",intensity:e.intensity??1,x:e.x??0,y:e.y??-1e3,z:e.z??-1e3,targetX:e.targetX??0,targetY:e.targetY??0,targetZ:e.targetZ??0,...e}),point:(e={})=>we({id:e.id??J("light-point"),kind:"light",lightType:"point",color:e.color??"#ffffff",intensity:e.intensity??1,x:e.x??0,y:e.y??0,z:e.z??-500,radius:e.radius??1e3,decay:e.decay??1,...e}),spot:(e={})=>we({id:e.id??J("light-spot"),kind:"light",lightType:"spot",color:e.color??"#ffffff",intensity:e.intensity??1,x:e.x??0,y:e.y??-500,z:e.z??-1e3,targetX:e.targetX??0,targetY:e.targetY??0,targetZ:e.targetZ??0,angle:e.angle??45,penumbra:e.penumbra??.2,radius:e.radius??2e3,decay:e.decay??1,...e})};function y2(e,t={},r={}){return F.section(e,t,r)}function x2(e,t,r={}){return typeof e=="object"&&"blurRegion"in e?e.blurRegion(t,r):F.blurTrackedRegion(e,t,r)}function v2(e,t,r={}){return F.section(e,t,r)}var th=Object.assign(Ya,Kn,{blur:e=>new ct(e),vignette:e=>new Zn(e),colorBalance:e=>new Xn(e),colorKey:e=>new qn(e),levels:e=>new Jn(e),filmGrain:e=>new Qn(e),curves:e=>new ti(e),selectiveColor:e=>new ri(e),gradientMap:e=>new ni(e),shadowsHighlights:e=>new ii(e),applyLut:e=>new ai(e),unsharpMask:e=>new oi(e),highPass:e=>new si(e),halftoneScreen:e=>new ui(e),tileOffset:e=>new li(e),motionBlur:e=>new ci(e),ssao:e=>new di(e),pbrGlass:e=>new mi(e),depthOfField:e=>new pi(e),crop:e=>new ar(e),vision:e=>new dt(e),relight3d:e=>new fi(e),modulate:e=>new gi(e),deflicker:e=>new hi(e),custom:(e,t={})=>new ei(e,t)});var export_HeadlessMediaRenderer=Pe.HeadlessMediaRenderer;var export_HeadlessWebGPURenderer=Pe.HeadlessWebGPURenderer;var export_formatQaReport=Pe.formatQaReport;var export_renderSemaphore=Pe.renderSemaphore;export{Rt as AETextAnimatorSchema,yi as AdvancedTextAnimatorBuilder,wi as AdvancedTextAnimatorSchema,io as AnchorGroupingSchema,ao as AnchorPresetSchema,Ao as AnimatableGlyphPropsSchema,Jh as AnimationTypeSchema,qh as AnyOutputUnionSchema,ai as ApplyLUT,jc as AudioCompressor,Vc as AudioDelay,Ih as AudioExtractorSignalDataSchema,Wc as AudioFade,Cl as AudioLatentEngine,Nl as AudioLatentTrackCache,gc as AudioMeshDeformPipeline,Hc as AudioNoiseGate,Yc as AudioParametricEq,Xc as AudioReverb,_c as AudioSignal,gd as AudioSignalExtractor,po as AudioSpectrumTypographySchema,mg as BaseMediaOperationPropsSchema,ag as BaseVideoLayerPropsSchema,is as BloomConfigSchema,ct as Blur,ss as BoxNodeSchema,Sg as CAPTION_LAYER_DEFAULTS,Fc as COCO17_BONES,Dc as COCO17_KEYPOINTS,Lc as COCO17_KEYPOINT_NAMES,Ac as COCO_CLASSES,Dh as COMPOSITE_OPERATIONS,Rh as COMPOSITOR_DEFAULTS,Ll as Camera3D,Ai as CameraAnimation,Qo as CameraNodeSchema,qc as CameraParallax3D,ur as CannyComputePipeline,hs as CarrierHandoffConfigSchema,Zc as ChannelMerger,Kc as ChannelSplitter,mo as ChromaticGlitchConfigSchema,Fn as Color,Xn as ColorBalance,qn as ColorKey,rm as ColorStopSchema,fl as Composition,nm as CompositorProgramSchema,bh as ConfigHandleSchema,Fh as ConfigSchemaRegistry,sr as ControlNetMultiplexer,Jc as CornerPin,ar as Crop,bo as CubicBezierSegmentSchema,ti as Curves,ei as CustomEffect,Ah as DATA_TYPE_EXTENSIONS,$u as DEFAULT_CHART_COLORS,xg as DEFAULT_DURATION_MS,yg as DEFAULT_FPS,vg as DEFAULT_MEDIA_DIMENSION,Sh as DataType,wh as DataTypeVal,kh as DataTypes,lr as DepthNormalsComputePipeline,pi as DepthOfField,Qc as DisplacementMap,lo as DynamicStrokePropertiesSchema,qg as ENVIRONMENT_PRESETS,tb as Easing,th as Effect,pc as EffectPipeline,wd as EnhancedTextNodeSchema,ns as EnvironmentFogSchema,ts as EnvironmentPresetSchema,Kh as ExportResultSchema,vd as ExpressionSelectorSchema,go as ExtendedGlyphPropertiesSchema,bg as ExtendedLayerSchema,ed as ExtractLUT,Mh as FileAssetSchema,Bh as FileDataSchema,Qn as FilmGrain,os as FlexNodeSchema,td as Flip,lt as FontManager,_h as GeneratorSignalDataSchema,Ti as GlassPipeline,Lh as GlobalCompositeOperation,Oo as GlyphAnchorGroupingSchema,Do as GlyphAnchorPointSchema,Ig as Gradient,ni as GradientMap,ui as HalftoneScreen,Th as HandleTypeVal,export_HeadlessMediaRenderer as HeadlessMediaRenderer,export_HeadlessWebGPURenderer as HeadlessWebGPURenderer,si as HighPass,Ph as JsonValueSchema,rd as KenBurns,vi as KineticMarqueeConfigSchema,Jg as LIGHT_UNIFORM_SIZE_BYTES,F as Layer,Ot as Layer3D,ue as LayerAnimation,nd as LayerStyle,Ri as LayoutNodeSchema,Jn as Levels,qe as Light,Fl as Light3D,as as LightNodeSchema,es as LightTypeSchema,Of as Lighting,yd as LineSpacingDynamicsSchema,id as Liquify,fo as LongShadowConfigSchema,Bg as MAX_GRADIENT_STOPS,Kg as MAX_LIGHTS,Oh as MIME_TYPES,ad as MaskMath,Zo as MaterialTypeSchema,Qe as Matrix4Math,Di as MatteModeSchema,pl as Media,lg as MediaMetadataSchema,ds as MediaNodeSchema,hg as MediaOperationSchema,ug as MediaSourceSchema,od as MeshWarp,ps as Model3DNodeSchema,fh as ModerationError,hh as ModerationUnrefundableError,gi as Modulate,ci as MotionBlur,Pi as MotionBlurPipeline,Xh as MultiOutputGenericSchema,yh as NodeMetadataSchema,Zh as NodeResultSchema,Ch as NodeVisualConfigSchema,sd as NoiseGenerator,Gn as OpticalFlowComputePipeline,Wh as OutputItemSchema,mi as PBRGlass,ud as Paint,ho as ParticleDissolveConfigSchema,ld as PatchHeal,bi as Path3D,Rc as PoseSkeletonRenderer,cd as ProceduralVFX,Dt as ProgrammaticSignal,dd as RefineEdge,md as RefractionCaustics3D,fi as Relight3D,hc as Renderer2D,bc as Renderer3D,pd as ResizerScaler,fd as Rotate,di as SSAO,Ci as SSAOPipeline,dr as Scene,im as SceneDefinitionSchema,fs as SceneTransitionTypeSchema,Bc as SegmentationTexturePool,ri as SelectiveColor,$r as SelectorBasedOnSchema,jr as SelectorModeSchema,To as SelectorShapeSchema,ko as SelectorUnitsSchema,Bi as Sequence,Mi as ShadowPipeline,ii as ShadowsHighlights,ms as ShapeNodeSchema,Ml as Signal,Uh as SignalChannelMetaSchema,$h as SignalDataSchema,zh as SignalGateDataSchema,Gh as SignalMathDataSchema,Eh as SignalStatsSchema,Yh as SingleOutputGenericSchema,bd as SkewPropertiesSchema,Lt as SlugFontCache,fc as SlugPipeline,pg as SourceOperationSchema,xd as Spatial3DPropertiesSchema,Uc as SpatialLandmarkTransformer,uo as SpringPhysicsSchema,hd as StereoPanning,wg as TEXT_LAYER_DEFAULTS,hi as TemporalDeflicker,zn as TemporalDeflickerPipeline,Oc as TemporalObjectTracker,Bt as TensorPipeline,oo as TextAnchorConfigSchema,qd as TextAnimator,ki as TextAnimatorBuilder,Jo as TextAnimatorSchema,vo as TextCursorConfigSchema,xo as TextCursorStyleSchema,cs as TextNodeSchema,fg as TextOperationSchema,Si as TextPathBuilder,Ft as TextPathOptionsSchema,yo as TextPathSourceSchema,Po as TextRangeSelectorSchema,So as TextScrambleConfigSchema,No as TextSelectorSchema,Co as TextSignalSelectorSchema,us as TextSpanMarkSchema,ls as TextSpanSchema,Mo as TextWigglySelectorSchema,li as TileOffset,cg as TimelineSegmentSchema,dg as TimelineTransformSchema,rs as ToneMappingSchema,Yu as Transition,sg as TransitionSchema,og as TransitionTypeSchema,zr as TypewriterAnimatorSchema,wo as TypingCadenceSchema,oi as UnsharpMask,co as VariableFontAxesSchema,or as Vec2Schema,Y as Vector3Math,Qh as VideoAnimationSchema,ig as VideoLayerTypeSchema,eg as VideoSpatialPropsSchema,ng as VideoStylePropsSchema,rg as VideoTextPropsSchema,tg as VideoTimingPropsSchema,Zn as Vignette,gg as VirtualMediaDataSchema,dt as Vision,Vn as VisionBundle,ir as VisionNode,jn as VisionRunner,xi as VolumetricFormationConfigSchema,so as VolumetricFormationModeSchema,Md as accent,$n as analyzeSequence,qa as appendOperation,Cc as applyStaggerToChildren,eb as bezier,x2 as blurRegion,Td as bold,Wl as buildPathLUT,gs as calculateSequenceTimeline,Hg as checkNodeResultCache,Ld as code,Nc as collectNodeOps,Cd as color,Gr as compositorToProgram,Ql as computeAnchorPivotOffset,am as computeCarrierContinuity,Na as computeGridLayout,Sc as computeLayout,wc as computeLayoutSync,ec as computeLineLeadingDisplacement,ac as computeRangeSelectorWeight,Mc as computeStaggerDelay,qb as computeStrokeRect,Ng as computeVideoCropRenderProps,Sl as computed,Pl as cosineSignal,Hh as createOutputItemSchema,Xa as createVirtualMedia,Nh as dataTypeColors,Vh as deserializeSignalData,oc as deterministicWigglyNoise,jl as distanceToCurveParameter,v2 as editTrackedRegion,Kn as effectFactories,$c as effectMeta,Yl as ellipseToCubicBeziers,Yn as encodeStereoWav,Dl as ensureDevice,Tc as evaluateAnimationAtFrame,Gl as evaluateCubicBezier,zl as evaluateCubicBezierDerivative,tc as evaluateExpressionSelector,nc as evaluateMarqueeOffset,uc as evaluateSelectorCombination,Jl as evaluateSkewMatrix,Kl as evaluateSpringProgress,kc as evaluateTrackAtFrame,cc as evaluateTypewriterState,rc as evaluateVolumetricFormation,Xg as extractSvgDimensions,Wg as findSourceAsset,Dg as formatHex,export_formatQaReport as formatQaReport,lh as frameArraySignal,ch as frameSignal,$l as generateArcLengthLUT,gh as generateId,Zl as generatePathSegments,Cg as getActiveMediaMetadata,Mg as getFileDataMetadata,zg as getFingerprint,kg as getLeafMediaType,Pg as getMediaType,$g as getRenderFingerprint,lc as getScramblePool,sc as getShuffledOrder,_g as gradientStopsToOklab,Vg as hasOnlySingleSource,Pc as hoistMattes,Bn as inputStore,rb as interpolate,Eg as isCssGradient,Gg as isEqual,uh as isSignal,jg as isVirtualMediaData,Pd as italic,Ug as limitGradientStops,Oi as lintComposition,_l as loadFBX,yc as loadModel3D,El as loadOBJ,Il as lutStore,Wb as mapBlendModeToSkia,Ad as mark,ob as measureSpring,ub as measureText,lb as measureTextAsync,Yr as mergeAnimationTracks,vc as mixAudioTracks,Lg as mixColors,Gc as mixSfxInto,Rg as normalizeColorStops,Vr as normalizeTextSpans,Og as oklabToRgb,Qg as parseColorToRgb,Ln as parseCssColor,Za as parseCssGradient,Ul as parseFBX,Bl as parseMTL,Fd as parseMarkup,Rl as parseOBJ,ql as parseSvgPathToCubicBeziers,Wn as pinNodeToLandmark,Hn as pinNodeToObject,ib as preloadCompositionFonts,nb as preloadFont,rh as programmaticSignal,mh as progressSignal,sh as registerSignalDependency,Cr as renderFrameGrid,export_renderSemaphore as renderSemaphore,Ic as renderSfx,xh as reportRenderDiagnostic,Hb as requiresIsolation,ah as resolveBoolean,Zg as resolveEnvironment,Tg as resolveMediaMimeType,nh as resolveNumber,oh as resolveParam,Ca as resolveSamplePoints,ih as resolveString,Ag as rgbToOklab,Sd as rich,ic as sampleAudioSpectrumScale,Fg as sampleColorStops,Vl as sampleCurveGeometry,Hl as samplePathChainGeometry,y2 as section,jh as serializeSignalData,Al as shaderStore,wl as signal,kl as signalBuilder,Ol as signalRegistry,Tl as sineSignal,Nd as size,zc as softLimit,kd as span,sb as spring,ab as springCalculation,Yg as stampResult,jf as startPreview,Dd as sub,Od as sup,vh as takeRenderDiagnostics,dc as textureCache,dh as timeSignal,ph as updateClockSignals,Xl as waveToCubicBeziers};