framefields 2.4.2 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (504) hide show
  1. package/README.md +26 -1
  2. package/dist/audio/index.d.mts +4 -4
  3. package/dist/audio/index.mjs +13 -13
  4. package/dist/{audio-DJeVoE8b.mjs → audio-BluXgSeG.mjs} +1 -1
  5. package/dist/{audio-DJeVoE8b.mjs.map → audio-BluXgSeG.mjs.map} +1 -1
  6. package/dist/{audio-DHuEMOtQ.d.mts → audio-C1A4N3Wh.d.mts} +3 -3
  7. package/dist/{audio-DHuEMOtQ.d.mts.map → audio-C1A4N3Wh.d.mts.map} +1 -1
  8. package/dist/{audio-Bb31xJuX.mjs → audio-CMHpfOoS.mjs} +4 -4
  9. package/dist/{audio-Bb31xJuX.mjs.map → audio-CMHpfOoS.mjs.map} +1 -1
  10. package/dist/cli.d.mts +1 -0
  11. package/dist/cli.mjs +221 -0
  12. package/dist/cli.mjs.map +1 -0
  13. package/dist/components/index.d.mts +12 -0
  14. package/dist/components/index.mjs +49 -0
  15. package/dist/{dist-CspOG4V1.mjs → dist-BBUrGwqd.mjs} +24 -3
  16. package/dist/{dist-CspOG4V1.mjs.map → dist-BBUrGwqd.mjs.map} +1 -1
  17. package/dist/{dist-SB9qfAko.mjs → dist-CQZ5_60A.mjs} +2 -2
  18. package/dist/{dist-SB9qfAko.mjs.map → dist-CQZ5_60A.mjs.map} +1 -1
  19. package/dist/{dist-0QGroRYZ.mjs → dist-C_SMBmHr.mjs} +1 -1
  20. package/dist/{dist-0QGroRYZ.mjs.map → dist-C_SMBmHr.mjs.map} +1 -1
  21. package/dist/{dist-ClyC_d66.mjs → dist-DFeF-ygz.mjs} +117 -40
  22. package/dist/dist-DFeF-ygz.mjs.map +1 -0
  23. package/dist/{dist-CxGfrigI.mjs → dist-QMVy31gR.mjs} +23 -4
  24. package/dist/dist-QMVy31gR.mjs.map +1 -0
  25. package/dist/effects/index.d.mts +5 -5
  26. package/dist/effects/index.mjs +36 -36
  27. package/dist/{effects-BOk_2kzM.mjs → effects-mRe-rLte.mjs} +71 -3
  28. package/dist/effects-mRe-rLte.mjs.map +1 -0
  29. package/dist/fonts/index.d.mts +1 -1
  30. package/dist/fonts/index.mjs +3 -3
  31. package/dist/{fonts-CsMDfqv9.mjs → fonts-wI3CUYHM.mjs} +2 -2
  32. package/dist/{fonts-CsMDfqv9.mjs.map → fonts-wI3CUYHM.mjs.map} +1 -1
  33. package/dist/{gpu-DtT5I4ME.mjs → gpu-I5fdrflL.mjs} +2 -2
  34. package/dist/{gpu-DtT5I4ME.mjs.map → gpu-I5fdrflL.mjs.map} +1 -1
  35. package/dist/{index-BTPLbjt4.d.mts → index-B-KVpJMb.d.mts} +2 -2
  36. package/dist/{index-BTPLbjt4.d.mts.map → index-B-KVpJMb.d.mts.map} +1 -1
  37. package/dist/index-BJe_GEyj.d.mts +5968 -0
  38. package/dist/index-BJe_GEyj.d.mts.map +1 -0
  39. package/dist/{index-D-l-yCv6.d.mts → index-BpdVOlsV.d.mts} +3 -3
  40. package/dist/{index-D-l-yCv6.d.mts.map → index-BpdVOlsV.d.mts.map} +1 -1
  41. package/dist/index-C2f4Hm-p.d.mts +89 -0
  42. package/dist/index-C2f4Hm-p.d.mts.map +1 -0
  43. package/dist/{index-B-55dXDu.d.mts → index-CalU-mpZ.d.mts} +1 -1
  44. package/dist/{index-B-55dXDu.d.mts.map → index-CalU-mpZ.d.mts.map} +1 -1
  45. package/dist/{index-B2Xesdug.d.mts → index-D6-lH1Mx.d.mts} +477 -327
  46. package/dist/index-D6-lH1Mx.d.mts.map +1 -0
  47. package/dist/{index-B3-gwjK6.d.mts → index-DNKM3to5.d.mts} +3 -3
  48. package/dist/{index-B3-gwjK6.d.mts.map → index-DNKM3to5.d.mts.map} +1 -1
  49. package/dist/{index-DujpgUUq.d.mts → index-fymoeGNW.d.mts} +245 -152
  50. package/dist/index-fymoeGNW.d.mts.map +1 -0
  51. package/dist/index.d.mts +13 -4593
  52. package/dist/index.mjs +59 -6654
  53. package/dist/preview/index.d.mts +4 -90
  54. package/dist/preview/index.mjs +12 -12
  55. package/dist/{preview-DyGw2b3_.mjs → preview--DEgW67P.mjs} +3 -3
  56. package/dist/{preview-DyGw2b3_.mjs.map → preview--DEgW67P.mjs.map} +1 -1
  57. package/dist/preview-engine/audio.mjs +1 -1
  58. package/dist/preview-engine/{chunk-FHKBALVI.mjs → chunk-24H3QVYB.mjs} +1 -1
  59. package/dist/preview-engine/{chunk-SWXVITCQ.mjs → chunk-25T3M6MI.mjs} +1 -1
  60. package/dist/preview-engine/chunk-2AV7HRRL.mjs +174 -0
  61. package/dist/preview-engine/{chunk-HNNIVJ2K.mjs → chunk-4EOS6ZWW.mjs} +1 -1
  62. package/dist/preview-engine/{chunk-67SSYK7D.mjs → chunk-4UI3S3UG.mjs} +1 -1
  63. package/dist/preview-engine/{chunk-LLDIDE5Q.mjs → chunk-5N3GW3NE.mjs} +1 -1
  64. package/dist/preview-engine/{chunk-KAQUNOVB.mjs → chunk-5P764TTF.mjs} +1 -1
  65. package/dist/preview-engine/{chunk-WJJIISQJ.mjs → chunk-7BUKVFWB.mjs} +1 -1
  66. package/dist/preview-engine/{chunk-HUKAC5MJ.mjs → chunk-7EHUT5A3.mjs} +1 -1
  67. package/dist/preview-engine/{chunk-34ACEGNW.mjs → chunk-7HTTYP6T.mjs} +1 -1
  68. package/dist/preview-engine/{chunk-6K7US2WD.mjs → chunk-7JYMNGNK.mjs} +1 -1
  69. package/dist/preview-engine/{chunk-NRAZV5OA.mjs → chunk-A5OUYV3I.mjs} +1 -1
  70. package/dist/preview-engine/{chunk-VONDRBA2.mjs → chunk-AJLPRIXB.mjs} +1 -1
  71. package/dist/preview-engine/{chunk-HDGFNBYK.mjs → chunk-ANZDLSSM.mjs} +1 -1
  72. package/dist/preview-engine/{chunk-FFMPC7QA.mjs → chunk-C2TA65CH.mjs} +1 -1
  73. package/dist/preview-engine/{chunk-7QJUC6YY.mjs → chunk-CBQOJAIS.mjs} +14 -14
  74. package/dist/preview-engine/{chunk-GMGGDADT.mjs → chunk-CEIOI4HO.mjs} +1 -1
  75. package/dist/preview-engine/{chunk-RHRMEBNK.mjs → chunk-DKXKOUQR.mjs} +1 -1
  76. package/dist/preview-engine/chunk-DPIED3EG.mjs +1 -0
  77. package/dist/preview-engine/{chunk-QJZKIY4H.mjs → chunk-ENS4KUJV.mjs} +1 -1
  78. package/dist/preview-engine/{chunk-Z6UKUHPU.mjs → chunk-HXHP3UHZ.mjs} +1 -1
  79. package/dist/preview-engine/chunk-I6E3AKLS.mjs +1 -0
  80. package/dist/preview-engine/{chunk-2DDBSI75.mjs → chunk-ILKBHDFB.mjs} +1 -1
  81. package/dist/preview-engine/{chunk-O6NRIXS5.mjs → chunk-JMOJKT5W.mjs} +1 -1
  82. package/dist/preview-engine/{chunk-PZF6T7DM.mjs → chunk-KKBJ7X3T.mjs} +1 -1
  83. package/dist/preview-engine/{chunk-NNQUIVTE.mjs → chunk-KRVXRP5F.mjs} +1 -1
  84. package/dist/preview-engine/{chunk-FLPSWDX4.mjs → chunk-MJN3LOZ7.mjs} +1 -1
  85. package/dist/preview-engine/{chunk-GQLZXCW3.mjs → chunk-MLW6Y4RN.mjs} +1 -1
  86. package/dist/preview-engine/{chunk-KT35IPCF.mjs → chunk-MRDJNDYV.mjs} +1 -1
  87. package/dist/preview-engine/{chunk-RKVB47IA.mjs → chunk-MZAAJXUL.mjs} +1 -1
  88. package/dist/preview-engine/{chunk-FFGBUS76.mjs → chunk-NB55FW7D.mjs} +1 -1
  89. package/dist/preview-engine/{chunk-JX22B2FS.mjs → chunk-NG5WSR3A.mjs} +1 -1
  90. package/dist/preview-engine/{chunk-XOEEGC4Z.mjs → chunk-NVTPJUNG.mjs} +1 -1
  91. package/dist/preview-engine/{chunk-ZKPQGQE3.mjs → chunk-NXKXOSE6.mjs} +1 -1
  92. package/dist/preview-engine/{chunk-WCZ5DKZ4.mjs → chunk-NYEDWUFS.mjs} +1 -1
  93. package/dist/preview-engine/{chunk-WACWOKEP.mjs → chunk-O6LGKH4S.mjs} +1 -1
  94. package/dist/preview-engine/chunk-OLLY3Q7M.mjs +1 -0
  95. package/dist/preview-engine/{chunk-A5OVKZ52.mjs → chunk-OOJAQBS3.mjs} +1 -1
  96. package/dist/preview-engine/{chunk-6AEU4DC7.mjs → chunk-PJN7DD55.mjs} +3 -3
  97. package/dist/preview-engine/{chunk-R26SY5D4.mjs → chunk-QCUGWPYP.mjs} +1 -1
  98. package/dist/preview-engine/{chunk-LK3T65RB.mjs → chunk-QQJPPGH5.mjs} +1 -1
  99. package/dist/preview-engine/{chunk-3ACCCPBN.mjs → chunk-QVUT3QNF.mjs} +1 -1
  100. package/dist/preview-engine/chunk-RNFYEZLL.mjs +1 -0
  101. package/dist/preview-engine/{chunk-GNG4YH2W.mjs → chunk-TA5OBYRR.mjs} +1 -1
  102. package/dist/preview-engine/{chunk-NQZKBFC6.mjs → chunk-V6DAD4S4.mjs} +14 -14
  103. package/dist/preview-engine/{chunk-5RQHNB6Y.mjs → chunk-VRNN6H6Y.mjs} +1 -1
  104. package/dist/preview-engine/{chunk-C6Z7H2RZ.mjs → chunk-VTE3IISK.mjs} +1 -1
  105. package/dist/preview-engine/{chunk-RDP6QROU.mjs → chunk-VZGDX7II.mjs} +1 -1
  106. package/dist/preview-engine/{chunk-DOCSX45C.mjs → chunk-XJ4CQIZZ.mjs} +1 -1
  107. package/dist/preview-engine/{chunk-7LVOSEGN.mjs → chunk-XYRBFLFF.mjs} +1 -1
  108. package/dist/preview-engine/{chunk-LIQA5OOU.mjs → chunk-YMQMPBTL.mjs} +1 -1
  109. package/dist/preview-engine/{chunk-G4J662EL.mjs → chunk-Z4ZO4RVT.mjs} +1 -1
  110. package/dist/preview-engine/{chunk-2GIWWDE4.mjs → chunk-ZFURUTVW.mjs} +1 -1
  111. package/dist/preview-engine/effects.mjs +1 -1
  112. package/dist/preview-engine/framefields.mjs +30 -28
  113. package/dist/preview-engine/player.mjs +5 -5
  114. package/dist/preview-engine/renderers-2CBJYNOC.mjs +1 -0
  115. package/dist/preview-engine/renderers-37CN7O4S.mjs +1 -0
  116. package/dist/preview-engine/renderers-3AZ5PMGC.mjs +1 -0
  117. package/dist/preview-engine/renderers-3UGG2IMP.mjs +1 -0
  118. package/dist/preview-engine/renderers-3VXNHICC.mjs +1 -0
  119. package/dist/preview-engine/{renderers-BDWVXYTW.mjs → renderers-3ZYXHUSW.mjs} +1 -1
  120. package/dist/preview-engine/renderers-4FONYSBA.mjs +1 -0
  121. package/dist/preview-engine/renderers-54I5SFXR.mjs +1 -0
  122. package/dist/preview-engine/renderers-5LXALKB4.mjs +1 -0
  123. package/dist/preview-engine/renderers-5TICPV2K.mjs +1 -0
  124. package/dist/preview-engine/renderers-5YS5WHAV.mjs +1 -0
  125. package/dist/preview-engine/renderers-6UTRYW7Z.mjs +1 -0
  126. package/dist/preview-engine/{renderers-R4WMM6IX.mjs → renderers-6ZCFR7BL.mjs} +1 -1
  127. package/dist/preview-engine/renderers-AYEWAW7F.mjs +1 -0
  128. package/dist/preview-engine/{renderers-75TL7RLS.mjs → renderers-BOT4H6KJ.mjs} +1 -1
  129. package/dist/preview-engine/{renderers-NJLGPPX7.mjs → renderers-C44CEIYB.mjs} +1 -1
  130. package/dist/preview-engine/{renderers-UDOBX433.mjs → renderers-C4G7X7LD.mjs} +1 -1
  131. package/dist/preview-engine/renderers-CLCPP3TZ.mjs +1 -0
  132. package/dist/preview-engine/{renderers-RKZGYWDG.mjs → renderers-DBRC3SQE.mjs} +1 -1
  133. package/dist/preview-engine/{renderers-HZHEGONW.mjs → renderers-DSICQMRF.mjs} +1 -1
  134. package/dist/preview-engine/renderers-DTZ2AER5.mjs +1 -0
  135. package/dist/preview-engine/renderers-DUF2CTX6.mjs +1 -0
  136. package/dist/preview-engine/{renderers-AZYJFJLO.mjs → renderers-EOIMH7UE.mjs} +1 -1
  137. package/dist/preview-engine/renderers-EOMMSENQ.mjs +1 -0
  138. package/dist/preview-engine/{renderers-CK3ZL3GM.mjs → renderers-GSRKNT75.mjs} +1 -1
  139. package/dist/preview-engine/renderers-GUJTPO37.mjs +1 -0
  140. package/dist/preview-engine/{renderers-TCNPEANL.mjs → renderers-HE42AT5T.mjs} +1 -1
  141. package/dist/preview-engine/{renderers-GUPEJK3O.mjs → renderers-JM7JEVBN.mjs} +1 -1
  142. package/dist/preview-engine/{renderers-FKH5S64C.mjs → renderers-JRU2GNPE.mjs} +1 -1
  143. package/dist/preview-engine/{renderers-IHRFEZNP.mjs → renderers-K6J77OI5.mjs} +1 -1
  144. package/dist/preview-engine/{renderers-IJDQJEE5.mjs → renderers-L7EITUCD.mjs} +1 -1
  145. package/dist/preview-engine/renderers-LGUHDWWB.mjs +1 -0
  146. package/dist/preview-engine/renderers-LGXD24IJ.mjs +1 -0
  147. package/dist/preview-engine/renderers-MCTBJEL7.mjs +1 -0
  148. package/dist/preview-engine/renderers-OBXNUQMP.mjs +1 -0
  149. package/dist/preview-engine/renderers-OZGEXW2X.mjs +1 -0
  150. package/dist/preview-engine/{renderers-7CPYTCNW.mjs → renderers-PJGFJGJS.mjs} +1 -1
  151. package/dist/preview-engine/{renderers-SW7FIEKO.mjs → renderers-PPGOYOID.mjs} +1 -1
  152. package/dist/preview-engine/renderers-PUJRHBUW.mjs +1 -0
  153. package/dist/preview-engine/renderers-PVUROEGR.mjs +1 -0
  154. package/dist/preview-engine/renderers-QBVVTQV6.mjs +1 -0
  155. package/dist/preview-engine/{renderers-K7B5PQBT.mjs → renderers-QPHOG7QR.mjs} +1 -1
  156. package/dist/preview-engine/{renderers-WR6MKT5S.mjs → renderers-RV62K5JC.mjs} +1 -1
  157. package/dist/preview-engine/{renderers-UMPOVFRA.mjs → renderers-SBX64ERA.mjs} +1 -1
  158. package/dist/preview-engine/renderers-SCJTTOEJ.mjs +1 -0
  159. package/dist/preview-engine/{renderers-FM6A5YR4.mjs → renderers-SD35PBEM.mjs} +1 -1
  160. package/dist/preview-engine/{renderers-LVLVJHOL.mjs → renderers-SIHL5GLI.mjs} +1 -1
  161. package/dist/preview-engine/renderers-SNUVYUDE.mjs +1 -0
  162. package/dist/preview-engine/renderers-SPW4SWZ2.mjs +228 -0
  163. package/dist/preview-engine/renderers-SRKCF3LD.mjs +1 -0
  164. package/dist/preview-engine/{renderers-GAIUTII6.mjs → renderers-T3S7QVM4.mjs} +1 -1
  165. package/dist/preview-engine/renderers-TBP2EKJ4.mjs +1 -0
  166. package/dist/preview-engine/renderers-UN6YLFHW.mjs +1 -0
  167. package/dist/preview-engine/renderers-UTWKTBZI.mjs +1 -0
  168. package/dist/preview-engine/{renderers-6JZ4HYIU.mjs → renderers-V5MJJH33.mjs} +1 -1
  169. package/dist/preview-engine/{renderers-XKHNBARD.mjs → renderers-V67L3MCY.mjs} +1 -1
  170. package/dist/preview-engine/{renderers-FADYGSLK.mjs → renderers-VYK2BJID.mjs} +1 -1
  171. package/dist/preview-engine/renderers-W6762MNW.mjs +1 -0
  172. package/dist/preview-engine/renderers-W6ZTVA2I.mjs +1 -0
  173. package/dist/preview-engine/renderers-WDV7ENJA.mjs +1 -0
  174. package/dist/preview-engine/{renderers-MBSOKWKB.mjs → renderers-WPBTAU2E.mjs} +1 -1
  175. package/dist/preview-engine/renderers-XP7YFWBV.mjs +1 -0
  176. package/dist/preview-engine/renderers-XVUOO7B6.mjs +1 -0
  177. package/dist/preview-engine/renderers-YPFM5UJO.mjs +1 -0
  178. package/dist/preview-engine/renderers-YW3LBALW.mjs +1 -0
  179. package/dist/preview-engine/{renderers-4AJWVIJG.mjs → renderers-ZAPIBQZC.mjs} +1 -1
  180. package/dist/preview-engine/renderers-ZRR4TUVQ.mjs +1 -0
  181. package/dist/preview-engine/{renderers-TY7DVI7E.mjs → renderers-ZVKXIQ3E.mjs} +1 -1
  182. package/dist/preview-engine/signals.mjs +1 -1
  183. package/dist/{program-C2cJayA1.mjs → program-CEHCeDpG.mjs} +204 -61
  184. package/dist/program-CEHCeDpG.mjs.map +1 -0
  185. package/dist/registry/annotate.json +30 -0
  186. package/dist/registry/app-frame.json +38 -0
  187. package/dist/registry/backdrop.json +37 -0
  188. package/dist/registry/before-after.json +33 -0
  189. package/dist/registry/callout.json +30 -0
  190. package/dist/registry/captions.json +37 -0
  191. package/dist/registry/card-stack.json +30 -0
  192. package/dist/registry/chat-thread.json +32 -0
  193. package/dist/registry/code-block.json +45 -0
  194. package/dist/registry/confetti.json +29 -0
  195. package/dist/registry/counter.json +36 -0
  196. package/dist/registry/device-frame.json +36 -0
  197. package/dist/registry/focus-zoom.json +32 -0
  198. package/dist/registry/index.json +408 -0
  199. package/dist/registry/logo-reveal.json +37 -0
  200. package/dist/registry/lower-third.json +34 -0
  201. package/dist/registry/meter.json +35 -0
  202. package/dist/registry/mouse-pointer.json +44 -0
  203. package/dist/registry/selection.json +31 -0
  204. package/dist/registry/spotlight.json +28 -0
  205. package/dist/registry/terminal.json +40 -0
  206. package/dist/registry/text-reveal.json +39 -0
  207. package/dist/registry/title-card.json +34 -0
  208. package/dist/registry/toasts.json +28 -0
  209. package/dist/registry/touch-point.json +33 -0
  210. package/dist/registry/waveform.json +29 -0
  211. package/dist/registry/word-cycle.json +32 -0
  212. package/dist/renderer/index.d.mts +2 -2
  213. package/dist/renderer/index.mjs +3 -3
  214. package/dist/{renderer-BMKFzfSQ.mjs → renderer--wMbTRFg.mjs} +4 -4
  215. package/dist/{renderer-BMKFzfSQ.mjs.map → renderer--wMbTRFg.mjs.map} +1 -1
  216. package/dist/{renderer-CDUxAtsk.mjs → renderer-3aLw-la1.mjs} +5 -5
  217. package/dist/{renderer-CDUxAtsk.mjs.map → renderer-3aLw-la1.mjs.map} +1 -1
  218. package/dist/renderer-7vCBWQVP.mjs +5 -0
  219. package/dist/{renderer-DILUmb-e.mjs → renderer-AkRxGnFU.mjs} +5 -5
  220. package/dist/{renderer-DILUmb-e.mjs.map → renderer-AkRxGnFU.mjs.map} +1 -1
  221. package/dist/renderer-B-XgGMCq.mjs +5 -0
  222. package/dist/renderer-B0yabPlf.mjs +5 -0
  223. package/dist/{renderer-CoWfz-9p.mjs → renderer-B1yPBJQc.mjs} +74 -74
  224. package/dist/{renderer-CoWfz-9p.mjs.map → renderer-B1yPBJQc.mjs.map} +1 -1
  225. package/dist/{renderer-BPixWnmY.mjs → renderer-B41jTHFs.mjs} +6 -6
  226. package/dist/{renderer-BPixWnmY.mjs.map → renderer-B41jTHFs.mjs.map} +1 -1
  227. package/dist/{renderer-BTd2sWDC.mjs → renderer-B5HG6Czb.mjs} +4 -4
  228. package/dist/{renderer-BTd2sWDC.mjs.map → renderer-B5HG6Czb.mjs.map} +1 -1
  229. package/dist/{renderer-gRMkQabv.mjs → renderer-B5oJN3A5.mjs} +5 -5
  230. package/dist/{renderer-gRMkQabv.mjs.map → renderer-B5oJN3A5.mjs.map} +1 -1
  231. package/dist/renderer-B9MYevrF.mjs +5 -0
  232. package/dist/renderer-BA2Ko4H1.mjs +3 -0
  233. package/dist/renderer-BCGosndi.mjs +5 -0
  234. package/dist/{renderer-CzRqzp8P.mjs → renderer-BEmDSqXg.mjs} +4 -4
  235. package/dist/{renderer-CzRqzp8P.mjs.map → renderer-BEmDSqXg.mjs.map} +1 -1
  236. package/dist/{renderer-Csss5GFQ.mjs → renderer-BG8jNTHr.mjs} +3 -3
  237. package/dist/{renderer-Csss5GFQ.mjs.map → renderer-BG8jNTHr.mjs.map} +1 -1
  238. package/dist/{renderer-BTigwMQp.mjs → renderer-BMnrBPh1.mjs} +4 -4
  239. package/dist/{renderer-BTigwMQp.mjs.map → renderer-BMnrBPh1.mjs.map} +1 -1
  240. package/dist/{renderer-yyUpCeWb.mjs → renderer-BORzpTQP.mjs} +3 -3
  241. package/dist/{renderer-yyUpCeWb.mjs.map → renderer-BORzpTQP.mjs.map} +1 -1
  242. package/dist/{renderer-RDCax5CK.mjs → renderer-BWtI3wKu.mjs} +4 -4
  243. package/dist/{renderer-RDCax5CK.mjs.map → renderer-BWtI3wKu.mjs.map} +1 -1
  244. package/dist/renderer-BXTHDEnd.mjs +5 -0
  245. package/dist/{renderer-G1pMJH5C.mjs → renderer-Baw30QRI.mjs} +3 -3
  246. package/dist/{renderer-G1pMJH5C.mjs.map → renderer-Baw30QRI.mjs.map} +1 -1
  247. package/dist/renderer-BbJoZ-zL.mjs +5 -0
  248. package/dist/{renderer-Dwu_zfdL.mjs → renderer-BbdgwkDB.mjs} +5 -5
  249. package/dist/{renderer-Dwu_zfdL.mjs.map → renderer-BbdgwkDB.mjs.map} +1 -1
  250. package/dist/{renderer-D6BXR7P4.mjs → renderer-BgOEqtZu.mjs} +3 -3
  251. package/dist/{renderer-D6BXR7P4.mjs.map → renderer-BgOEqtZu.mjs.map} +1 -1
  252. package/dist/{renderer-NizuhHsH.mjs → renderer-Bv0-WmP4.mjs} +4 -4
  253. package/dist/{renderer-NizuhHsH.mjs.map → renderer-Bv0-WmP4.mjs.map} +1 -1
  254. package/dist/renderer-BvcqncI2.mjs +3 -0
  255. package/dist/{renderer-BljMOvry.mjs → renderer-Bvhj-05p.mjs} +4 -4
  256. package/dist/{renderer-BljMOvry.mjs.map → renderer-Bvhj-05p.mjs.map} +1 -1
  257. package/dist/renderer-BxAZKOQy.mjs +5 -0
  258. package/dist/{renderer-92eLJg24.mjs → renderer-BxDhx8KM.mjs} +5 -5
  259. package/dist/{renderer-92eLJg24.mjs.map → renderer-BxDhx8KM.mjs.map} +1 -1
  260. package/dist/renderer-BxgkH__7.mjs +5 -0
  261. package/dist/{renderer-7y5Cj8rV.mjs → renderer-C1XZ0fQ-.mjs} +4 -4
  262. package/dist/{renderer-7y5Cj8rV.mjs.map → renderer-C1XZ0fQ-.mjs.map} +1 -1
  263. package/dist/{renderer-UcdqCarR.mjs → renderer-C8KEfda3.mjs} +4 -4
  264. package/dist/{renderer-UcdqCarR.mjs.map → renderer-C8KEfda3.mjs.map} +1 -1
  265. package/dist/{renderer-BSitV56h.mjs → renderer-C9r0-KY4.mjs} +10 -1
  266. package/dist/{renderer-BSitV56h.mjs.map → renderer-C9r0-KY4.mjs.map} +1 -1
  267. package/dist/{renderer-B3e4LSE6.mjs → renderer-CF25oNd3.mjs} +5 -5
  268. package/dist/{renderer-B3e4LSE6.mjs.map → renderer-CF25oNd3.mjs.map} +1 -1
  269. package/dist/renderer-CFEvikBH.mjs +5 -0
  270. package/dist/{renderer-DzSMeQBC.mjs → renderer-CHFUJyul.mjs} +5 -5
  271. package/dist/{renderer-DzSMeQBC.mjs.map → renderer-CHFUJyul.mjs.map} +1 -1
  272. package/dist/{renderer-ByCX4JYg.mjs → renderer-CKGOKBZi.mjs} +5 -5
  273. package/dist/{renderer-ByCX4JYg.mjs.map → renderer-CKGOKBZi.mjs.map} +1 -1
  274. package/dist/{renderer-If8JOkBi.mjs → renderer-CNs1vBUy.mjs} +4 -4
  275. package/dist/{renderer-If8JOkBi.mjs.map → renderer-CNs1vBUy.mjs.map} +1 -1
  276. package/dist/{index-B1XcyMm8.d.mts → renderer-COXKPofU.d.mts} +18 -18
  277. package/dist/renderer-COXKPofU.d.mts.map +1 -0
  278. package/dist/{renderer-CNuVJ4nG.mjs → renderer-COZCwiIr.mjs} +3 -3
  279. package/dist/{renderer-CNuVJ4nG.mjs.map → renderer-COZCwiIr.mjs.map} +1 -1
  280. package/dist/{renderer-V5uEyDFz.mjs → renderer-CPmoA87K.mjs} +4 -4
  281. package/dist/{renderer-V5uEyDFz.mjs.map → renderer-CPmoA87K.mjs.map} +1 -1
  282. package/dist/{renderer-Cw6Sagih.mjs → renderer-CYZb9uoO.mjs} +4 -4
  283. package/dist/{renderer-Cw6Sagih.mjs.map → renderer-CYZb9uoO.mjs.map} +1 -1
  284. package/dist/renderer-C_u9B-_7.mjs +5 -0
  285. package/dist/{renderer-BwpgDLYO.mjs → renderer-CaUJlGoB.mjs} +5 -5
  286. package/dist/{renderer-BwpgDLYO.mjs.map → renderer-CaUJlGoB.mjs.map} +1 -1
  287. package/dist/{renderer-DjwITRvg.mjs → renderer-CcS3Zntx.mjs} +3 -3
  288. package/dist/{renderer-BDCy8NgT.mjs → renderer-CddpdCL3.mjs} +4 -4
  289. package/dist/{renderer-BDCy8NgT.mjs.map → renderer-CddpdCL3.mjs.map} +1 -1
  290. package/dist/{renderer-BV48PFjX.mjs → renderer-Cg-d78nf.mjs} +192 -27
  291. package/dist/renderer-Cg-d78nf.mjs.map +1 -0
  292. package/dist/renderer-Cgx_qzGT.mjs +5 -0
  293. package/dist/{renderer-DScyMHpJ.mjs → renderer-ChNCtBMR.mjs} +3 -3
  294. package/dist/{renderer-DScyMHpJ.mjs.map → renderer-ChNCtBMR.mjs.map} +1 -1
  295. package/dist/renderer-ClOkY1Ny.mjs +5 -0
  296. package/dist/{renderer-DyyIXLQK.mjs → renderer-CrU0kbiB.mjs} +5 -5
  297. package/dist/{renderer-DyyIXLQK.mjs.map → renderer-CrU0kbiB.mjs.map} +1 -1
  298. package/dist/renderer-CtDub_ig.mjs +5 -0
  299. package/dist/{renderer-ut1GqW89.mjs → renderer-CyhSWLKq.mjs} +4 -4
  300. package/dist/{renderer-ut1GqW89.mjs.map → renderer-CyhSWLKq.mjs.map} +1 -1
  301. package/dist/{renderer-DaSxr9fM.mjs → renderer-D-bmSKv4.mjs} +5 -5
  302. package/dist/{renderer-DaSxr9fM.mjs.map → renderer-D-bmSKv4.mjs.map} +1 -1
  303. package/dist/renderer-D0duAhCo.mjs +5 -0
  304. package/dist/{renderer-BBAbZfBl.mjs → renderer-D2tdNoM6.mjs} +6 -6
  305. package/dist/{renderer-BBAbZfBl.mjs.map → renderer-D2tdNoM6.mjs.map} +1 -1
  306. package/dist/renderer-D4wM1dqg.mjs +6 -0
  307. package/dist/renderer-D5U3d09T.mjs +5 -0
  308. package/dist/{renderer-B1QREs7J.mjs → renderer-D86Y5YYi.mjs} +5 -5
  309. package/dist/{renderer-B1QREs7J.mjs.map → renderer-D86Y5YYi.mjs.map} +1 -1
  310. package/dist/{renderer-Cbsnj9vV.mjs → renderer-D8D7dKxq.mjs} +4 -4
  311. package/dist/{renderer-Cbsnj9vV.mjs.map → renderer-D8D7dKxq.mjs.map} +1 -1
  312. package/dist/{renderer-D0vom99O.mjs → renderer-DATAjI6x.mjs} +3 -3
  313. package/dist/{renderer-D0vom99O.mjs.map → renderer-DATAjI6x.mjs.map} +1 -1
  314. package/dist/{renderer-X0eKSD7v.mjs → renderer-DGhCIVI4.mjs} +5 -5
  315. package/dist/{renderer-X0eKSD7v.mjs.map → renderer-DGhCIVI4.mjs.map} +1 -1
  316. package/dist/{renderer-CJ4bxCld.mjs → renderer-DILjs1tz.mjs} +3 -3
  317. package/dist/{renderer-DjBCWxYy.mjs → renderer-DIyzKouj.mjs} +4 -4
  318. package/dist/{renderer-DjBCWxYy.mjs.map → renderer-DIyzKouj.mjs.map} +1 -1
  319. package/dist/{renderer-BwwZB2mt.mjs → renderer-DJ78Bgv7.mjs} +5 -5
  320. package/dist/{renderer-BwwZB2mt.mjs.map → renderer-DJ78Bgv7.mjs.map} +1 -1
  321. package/dist/renderer-DKqFxYfP.mjs +5 -0
  322. package/dist/renderer-DQZNI1zf.mjs +5 -0
  323. package/dist/{renderer-B4RpSd4A.mjs → renderer-DVnrUnkh.mjs} +3 -3
  324. package/dist/{renderer-B4RpSd4A.mjs.map → renderer-DVnrUnkh.mjs.map} +1 -1
  325. package/dist/{renderer-C1E5Rt5q.mjs → renderer-DWtquP0s.mjs} +4 -4
  326. package/dist/{renderer-C1E5Rt5q.mjs.map → renderer-DWtquP0s.mjs.map} +1 -1
  327. package/dist/renderer-DXITcVbS.mjs +5 -0
  328. package/dist/renderer-DY1QgdDC.mjs +5 -0
  329. package/dist/renderer-DYEz06xn.mjs +5 -0
  330. package/dist/renderer-D_2OrSMc.mjs +5 -0
  331. package/dist/renderer-DcCl9CO6.mjs +5 -0
  332. package/dist/{renderer-rXgqgAjw.mjs → renderer-DetTl6bQ.mjs} +3 -3
  333. package/dist/{renderer-rXgqgAjw.mjs.map → renderer-DetTl6bQ.mjs.map} +1 -1
  334. package/dist/{renderer-BjCHW9Jp.mjs → renderer-DfxwJVjW.mjs} +3 -3
  335. package/dist/{renderer-Cv4lchUP.mjs → renderer-DhQZiRL3.mjs} +5 -5
  336. package/dist/{renderer-Cv4lchUP.mjs.map → renderer-DhQZiRL3.mjs.map} +1 -1
  337. package/dist/{renderer-EZp_IIPK.mjs → renderer-Djn4BYtz.mjs} +5 -5
  338. package/dist/{renderer-EZp_IIPK.mjs.map → renderer-Djn4BYtz.mjs.map} +1 -1
  339. package/dist/{renderer-Bkrk0M0r.mjs → renderer-DkS6cblv.mjs} +5 -5
  340. package/dist/{renderer-Bkrk0M0r.mjs.map → renderer-DkS6cblv.mjs.map} +1 -1
  341. package/dist/{renderer-DKfwlE4e.mjs → renderer-DkeJefRk.mjs} +5 -5
  342. package/dist/{renderer-DKfwlE4e.mjs.map → renderer-DkeJefRk.mjs.map} +1 -1
  343. package/dist/renderer-DotZXhrh.mjs +5 -0
  344. package/dist/renderer-DpYDVTzs.mjs +5 -0
  345. package/dist/renderer-DpZxLVQF.mjs +5 -0
  346. package/dist/{renderer-Za4D9hej.mjs → renderer-DqabtpGN.mjs} +5 -5
  347. package/dist/{renderer-Za4D9hej.mjs.map → renderer-DqabtpGN.mjs.map} +1 -1
  348. package/dist/{renderer-DaqWTx7s.mjs → renderer-DqdD8gzX.mjs} +5 -5
  349. package/dist/{renderer-DaqWTx7s.mjs.map → renderer-DqdD8gzX.mjs.map} +1 -1
  350. package/dist/{renderer-DZJJHCtm.mjs → renderer-DstROEvX.mjs} +4 -4
  351. package/dist/{renderer-DZJJHCtm.mjs.map → renderer-DstROEvX.mjs.map} +1 -1
  352. package/dist/{renderer-BjvNEbML.mjs → renderer-DuawUm8D.mjs} +3 -3
  353. package/dist/{renderer-BjvNEbML.mjs.map → renderer-DuawUm8D.mjs.map} +1 -1
  354. package/dist/{renderer-CDOobs18.mjs → renderer-DvIWhLnY.mjs} +5 -5
  355. package/dist/{renderer-CDOobs18.mjs.map → renderer-DvIWhLnY.mjs.map} +1 -1
  356. package/dist/renderer-DvJbouz0.mjs +5 -0
  357. package/dist/{renderer-apeDrNXM.mjs → renderer-Dw2ZFwDT.mjs} +5 -5
  358. package/dist/{renderer-apeDrNXM.mjs.map → renderer-Dw2ZFwDT.mjs.map} +1 -1
  359. package/dist/{renderer-CxqPeATd.d.mts → renderer-Dx28wTi1.d.mts} +2 -2
  360. package/dist/{renderer-CxqPeATd.d.mts.map → renderer-Dx28wTi1.d.mts.map} +1 -1
  361. package/dist/{renderer-CcoUNzlQ.mjs → renderer-DxLkZGUK.mjs} +4 -4
  362. package/dist/{renderer-CcoUNzlQ.mjs.map → renderer-DxLkZGUK.mjs.map} +1 -1
  363. package/dist/{renderer-CeiCJCg4.mjs → renderer-GY7D1oAn.mjs} +4 -4
  364. package/dist/{renderer-CeiCJCg4.mjs.map → renderer-GY7D1oAn.mjs.map} +1 -1
  365. package/dist/{renderer-D2-V9nQq.mjs → renderer-JaSEubRQ.mjs} +4 -4
  366. package/dist/{renderer-D2-V9nQq.mjs.map → renderer-JaSEubRQ.mjs.map} +1 -1
  367. package/dist/{renderer-CqtIbe5n.mjs → renderer-MrvH4L7b.mjs} +4 -4
  368. package/dist/{renderer-CqtIbe5n.mjs.map → renderer-MrvH4L7b.mjs.map} +1 -1
  369. package/dist/{renderer-DO5r7ZV-.mjs → renderer-PNIgmWft.mjs} +2 -2
  370. package/dist/{renderer-DO5r7ZV-.mjs.map → renderer-PNIgmWft.mjs.map} +1 -1
  371. package/dist/renderer-S305xm67.mjs +5 -0
  372. package/dist/renderer-TgUloP-y.mjs +5 -0
  373. package/dist/{renderer-DFJQ6v0F.mjs → renderer-VcPoZAM2.mjs} +3 -3
  374. package/dist/{renderer-DFJQ6v0F.mjs.map → renderer-VcPoZAM2.mjs.map} +1 -1
  375. package/dist/{renderer-DcBGYN3V.mjs → renderer-ZGJWn-_L.mjs} +4 -4
  376. package/dist/{renderer-DcBGYN3V.mjs.map → renderer-ZGJWn-_L.mjs.map} +1 -1
  377. package/dist/{renderer-DTw-W0Yz.mjs → renderer-aXwxbXcE.mjs} +5 -5
  378. package/dist/{renderer-DTw-W0Yz.mjs.map → renderer-aXwxbXcE.mjs.map} +1 -1
  379. package/dist/renderer-gZ5SMvbU.mjs +5 -0
  380. package/dist/{renderer-CCGzT6bX.mjs → renderer-gniIzAsk.mjs} +3 -3
  381. package/dist/renderer-kEpx7pUy.mjs +5 -0
  382. package/dist/{renderer-BkWd4-YO.mjs → renderer-mSlww_MA.mjs} +4 -4
  383. package/dist/{renderer-BkWd4-YO.mjs.map → renderer-mSlww_MA.mjs.map} +1 -1
  384. package/dist/{renderer-B0gPTXhe.mjs → renderer-mWfgWQy_.mjs} +5 -5
  385. package/dist/{renderer-B0gPTXhe.mjs.map → renderer-mWfgWQy_.mjs.map} +1 -1
  386. package/dist/{renderer-BajIOuZH.mjs → renderer-nLPfvY3-.mjs} +2 -2
  387. package/dist/{renderer-BajIOuZH.mjs.map → renderer-nLPfvY3-.mjs.map} +1 -1
  388. package/dist/renderer-oPWZmzua.mjs +5 -0
  389. package/dist/{renderer--ruTGlPo.mjs → renderer-pcpDwv3K.mjs} +4 -4
  390. package/dist/{renderer--ruTGlPo.mjs.map → renderer-pcpDwv3K.mjs.map} +1 -1
  391. package/dist/renderer-qCNOffLy.mjs +5 -0
  392. package/dist/{renderer-DwVOxdzC.mjs → renderer-vPJRRVNN.mjs} +5 -5
  393. package/dist/{renderer-DwVOxdzC.mjs.map → renderer-vPJRRVNN.mjs.map} +1 -1
  394. package/dist/{renderer-JvcR1vYI.mjs → renderer-vQrX7Qsw.mjs} +3 -3
  395. package/dist/{renderer-JvcR1vYI.mjs.map → renderer-vQrX7Qsw.mjs.map} +1 -1
  396. package/dist/{renderer-Bi6W4RSn.mjs → renderer-wld_ZR0-.mjs} +3 -3
  397. package/dist/{renderer-Bi6W4RSn.mjs.map → renderer-wld_ZR0-.mjs.map} +1 -1
  398. package/dist/renderer-xEVoeq12.mjs +5 -0
  399. package/dist/renderer-ypw8fzVD.mjs +5 -0
  400. package/dist/{renderers-CP8CFWDs-DzGXDs5p.mjs → renderers-CP8CFWDs-DgKdGMvS.mjs} +4 -4
  401. package/dist/{renderers-CP8CFWDs-DzGXDs5p.mjs.map → renderers-CP8CFWDs-DgKdGMvS.mjs.map} +1 -1
  402. package/dist/signals/index.d.mts +6 -6
  403. package/dist/signals/index.mjs +8 -8
  404. package/dist/{signals-C5nOrRmn.mjs → signals-Cf9mfNGE.mjs} +4 -4
  405. package/dist/{signals-C5nOrRmn.mjs.map → signals-Cf9mfNGE.mjs.map} +1 -1
  406. package/dist/src-CU_7ui4I.mjs +8373 -0
  407. package/dist/src-CU_7ui4I.mjs.map +1 -0
  408. package/package.json +68 -58
  409. package/dist/dist-ClyC_d66.mjs.map +0 -1
  410. package/dist/dist-CxGfrigI.mjs.map +0 -1
  411. package/dist/effects-BOk_2kzM.mjs.map +0 -1
  412. package/dist/index-B1XcyMm8.d.mts.map +0 -1
  413. package/dist/index-B2Xesdug.d.mts.map +0 -1
  414. package/dist/index-DujpgUUq.d.mts.map +0 -1
  415. package/dist/index.d.mts.map +0 -1
  416. package/dist/index.mjs.map +0 -1
  417. package/dist/preview/index.d.mts.map +0 -1
  418. package/dist/preview-engine/chunk-AQNTIWTK.mjs +0 -1
  419. package/dist/preview-engine/chunk-CPFPY35C.mjs +0 -1
  420. package/dist/preview-engine/chunk-UZBVCYRY.mjs +0 -174
  421. package/dist/preview-engine/chunk-XDMZP3E2.mjs +0 -1
  422. package/dist/preview-engine/chunk-YKMBRUAE.mjs +0 -1
  423. package/dist/preview-engine/renderers-3CXFGRE7.mjs +0 -1
  424. package/dist/preview-engine/renderers-3FC3WCJN.mjs +0 -1
  425. package/dist/preview-engine/renderers-3S2FM33K.mjs +0 -1
  426. package/dist/preview-engine/renderers-53ZTBI3C.mjs +0 -1
  427. package/dist/preview-engine/renderers-5USBVCMQ.mjs +0 -1
  428. package/dist/preview-engine/renderers-65G6BLEA.mjs +0 -1
  429. package/dist/preview-engine/renderers-7XU7BXE7.mjs +0 -1
  430. package/dist/preview-engine/renderers-BFXM32BC.mjs +0 -1
  431. package/dist/preview-engine/renderers-CDXHCWWK.mjs +0 -1
  432. package/dist/preview-engine/renderers-CLUN7WU6.mjs +0 -1
  433. package/dist/preview-engine/renderers-DTB4HEXU.mjs +0 -1
  434. package/dist/preview-engine/renderers-EFKNRLYF.mjs +0 -1
  435. package/dist/preview-engine/renderers-EI6MQ2EL.mjs +0 -228
  436. package/dist/preview-engine/renderers-G2K7ZA5O.mjs +0 -1
  437. package/dist/preview-engine/renderers-GTUO5LIV.mjs +0 -1
  438. package/dist/preview-engine/renderers-HSJIVP57.mjs +0 -1
  439. package/dist/preview-engine/renderers-IHACBWXI.mjs +0 -1
  440. package/dist/preview-engine/renderers-IO3BVVJ7.mjs +0 -1
  441. package/dist/preview-engine/renderers-IR772VSN.mjs +0 -1
  442. package/dist/preview-engine/renderers-L6TRJOXA.mjs +0 -1
  443. package/dist/preview-engine/renderers-N6H6RSF2.mjs +0 -1
  444. package/dist/preview-engine/renderers-O5NFQYRQ.mjs +0 -1
  445. package/dist/preview-engine/renderers-O6V3OEKX.mjs +0 -1
  446. package/dist/preview-engine/renderers-OODA27UH.mjs +0 -1
  447. package/dist/preview-engine/renderers-RIGW33ZI.mjs +0 -1
  448. package/dist/preview-engine/renderers-RUZRBQ4K.mjs +0 -1
  449. package/dist/preview-engine/renderers-SKB2GGKS.mjs +0 -1
  450. package/dist/preview-engine/renderers-T4D2TASM.mjs +0 -1
  451. package/dist/preview-engine/renderers-T74XV36Q.mjs +0 -1
  452. package/dist/preview-engine/renderers-TOPW2UM3.mjs +0 -1
  453. package/dist/preview-engine/renderers-UO5G3Y2G.mjs +0 -1
  454. package/dist/preview-engine/renderers-UOV7VOJJ.mjs +0 -1
  455. package/dist/preview-engine/renderers-UWKSTSTA.mjs +0 -1
  456. package/dist/preview-engine/renderers-VHPAOUTA.mjs +0 -1
  457. package/dist/preview-engine/renderers-YEQRQJFC.mjs +0 -1
  458. package/dist/preview-engine/renderers-YRZ3WODX.mjs +0 -1
  459. package/dist/preview-engine/renderers-YUTFGVRY.mjs +0 -1
  460. package/dist/preview-engine/renderers-YXOTRKPA.mjs +0 -1
  461. package/dist/preview-engine/renderers-ZOU5ARVD.mjs +0 -1
  462. package/dist/preview-engine/renderers-ZW75LQTR.mjs +0 -1
  463. package/dist/program-C2cJayA1.mjs.map +0 -1
  464. package/dist/renderer-BAhZeUUn.mjs +0 -5
  465. package/dist/renderer-BHAE_dKq.mjs +0 -5
  466. package/dist/renderer-BNYZY3FE.mjs +0 -5
  467. package/dist/renderer-BSvubMvI.mjs +0 -5
  468. package/dist/renderer-BV48PFjX.mjs.map +0 -1
  469. package/dist/renderer-B_M_yhTc.mjs +0 -5
  470. package/dist/renderer-B_xSsTuy.mjs +0 -5
  471. package/dist/renderer-BePHurAU.mjs +0 -5
  472. package/dist/renderer-BfZquJrW.mjs +0 -5
  473. package/dist/renderer-BuY5ypB2.mjs +0 -5
  474. package/dist/renderer-BvOQgFHo.mjs +0 -5
  475. package/dist/renderer-C7NkSvUz.mjs +0 -5
  476. package/dist/renderer-CIuxV2q1.mjs +0 -5
  477. package/dist/renderer-CKp97tSQ.mjs +0 -5
  478. package/dist/renderer-CY89dTFR.mjs +0 -5
  479. package/dist/renderer-C_B_4Bl0.mjs +0 -5
  480. package/dist/renderer-Cd87JOjP.mjs +0 -5
  481. package/dist/renderer-Cev6orIK.mjs +0 -6
  482. package/dist/renderer-Cewf6UPh.mjs +0 -5
  483. package/dist/renderer-CnHsMLIv.mjs +0 -5
  484. package/dist/renderer-CoxuAr7b.mjs +0 -5
  485. package/dist/renderer-CrdG7trA.mjs +0 -5
  486. package/dist/renderer-Cu5MFgbk.mjs +0 -5
  487. package/dist/renderer-CuOjhtoo.mjs +0 -5
  488. package/dist/renderer-D2_0g6Oi.mjs +0 -5
  489. package/dist/renderer-D62FwolD.mjs +0 -5
  490. package/dist/renderer-DDNY9N7I.mjs +0 -5
  491. package/dist/renderer-DF_ONJ3v.mjs +0 -5
  492. package/dist/renderer-DbzrVHEE.mjs +0 -5
  493. package/dist/renderer-DlYchp1v.mjs +0 -5
  494. package/dist/renderer-DqcUNP8J.mjs +0 -5
  495. package/dist/renderer-DqvFhEQj.mjs +0 -5
  496. package/dist/renderer-DuuOlYIG.mjs +0 -3
  497. package/dist/renderer-DxBav2bE.mjs +0 -5
  498. package/dist/renderer-GvSRoQje.mjs +0 -5
  499. package/dist/renderer-KP7Ita9g.mjs +0 -5
  500. package/dist/renderer-Pc8dyNXt.mjs +0 -5
  501. package/dist/renderer-ezRCmU09.mjs +0 -3
  502. package/dist/renderer-h6ev1ogx.mjs +0 -5
  503. /package/dist/{chunk-GBe2k3y8.mjs → chunk-D7gtBK74.mjs} +0 -0
  504. /package/dist/{renderer-B-BcgA6d.mjs → renderer-B7fX0C62.mjs} +0 -0
@@ -1,11 +1,11 @@
1
- import{A as x0,B as v0,C as k0,D as P0,E as M0,F as T0,G as C0,I as Hd,J as Yd,K as vi,L as wi,N as Xd,O as qd,P as Zd,Q as Kd,R as Qd,S as hn,T as Jd,a as Qc,b as Jc,c as q,d as at,e as nd,f as p0,g as f0,h as h0,i as g0,j as b0,k as id,l as od,m as ad,n as sd,q as ud,r as ld,s as Ud,t as es,u as _d,v as ts,w as rs,x as jd,y as Gd,z as y0}from"./chunk-7QJUC6YY.mjs";import{a as $d}from"./chunk-PIAJWALT.mjs";import{a as yi,b as Za}from"./chunk-PJ3DVG45.mjs";import{a as fn,b as Id,c as Ka,d as Qa,f as zd,g as w0,h as S0}from"./chunk-6AEU4DC7.mjs";import{a as Ed}from"./chunk-LKYN3BM2.mjs";import{a as Sd,b as kd,c as Pd,d as Md,e as Td,f as Cd,g as Ad,h as Dd,i as Od,j as Nd,k as Rd,l as Fd,m as Bd,n as Ld,o as Ja}from"./chunk-RQLMW6MA.mjs";import{$ as $i,A as Om,B as Nm,C as Rm,D as Fm,E as Ii,F as Bm,G as bn,H as Lm,I as Vi,J as $t,K as zi,L as Em,M as Im,N as Vm,O as yn,P as zm,Q as Um,R as xn,S as _m,T as Wt,U as yt,V as Ui,W as _i,X as xt,Y as ji,Z as jm,_ as Gi,a as mm,aa as vt,b as Oi,ba as Wi,c as pm,ca as Hi,d as fm,da as Yi,e as hm,ea as Xi,f as gm,fa as Mr,g as bm,ga as qi,h as ym,ha as Zi,i as xm,ia as Ki,j as vm,ja as Qi,k as wm,ka as Ji,l as Ni,la as Tr,m as Ri,ma as st,n as Fi,na as eo,o as Sm,oa as to,p as Pr,pa as ro,q as km,r as Pm,s as Bi,t as Mm,u as Tm,v as Cm,w as Li,x as Ei,y as Am,z as Dm}from"./chunk-AQNTIWTK.mjs";import"./chunk-GNG4YH2W.mjs";import"./chunk-PZF6T7DM.mjs";import{A as d0,B as m0,C as ns,D as em,E as tm,F as Pi,G as rm,H as gn,I as nm,J as im,K as om,L as Sr,M as Mi,N as is,O as sm,P as Ti,Q as Ci,R as Ai,S as kr,a as dn,b as Rb,c as Fb,d as Bb,e as Lb,f as Eb,g as Hb,h as Yb,i as Xb,j as qb,k as Zb,l as Kb,m as Qb,n as gy,o as by,p as yy,q as xy,r as vy,s as wy,t as Sy,u as ky,v as Py,w as My,x as Ly,y as i0,z as c0}from"./chunk-UZBVCYRY.mjs";import{a as am}from"./chunk-YQRKT47I.mjs";import"./chunk-2GIWWDE4.mjs";import"./chunk-DOCSX45C.mjs";import"./chunk-LIQA5OOU.mjs";import"./chunk-FFGBUS76.mjs";import"./chunk-LLDIDE5Q.mjs";import"./chunk-RKVB47IA.mjs";import"./chunk-FFMPC7QA.mjs";import"./chunk-5RQHNB6Y.mjs";import"./chunk-2DDBSI75.mjs";import"./chunk-6K7US2WD.mjs";import"./chunk-ZKPQGQE3.mjs";import"./chunk-C6Z7H2RZ.mjs";import"./chunk-HUKAC5MJ.mjs";import"./chunk-QJZKIY4H.mjs";import"./chunk-NRAZV5OA.mjs";import"./chunk-LK3T65RB.mjs";import"./chunk-SWXVITCQ.mjs";import"./chunk-A5OVKZ52.mjs";import{a as o0,b as a0,c as s0,d as u0,e as l0}from"./chunk-VXUJWPIK.mjs";import"./chunk-G4J662EL.mjs";import"./chunk-R26SY5D4.mjs";import"./chunk-RW2F3XLQ.mjs";import{a as Ib,b as Vb}from"./chunk-YKMBRUAE.mjs";import"./chunk-WJJIISQJ.mjs";import"./chunk-7LVOSEGN.mjs";import"./chunk-WCZ5DKZ4.mjs";import"./chunk-O6NRIXS5.mjs";import{a as ki}from"./chunk-2JKXYG6J.mjs";import{a as Si}from"./chunk-7I7PKKDL.mjs";import"./chunk-3ACCCPBN.mjs";import"./chunk-XOEEGC4Z.mjs";import"./chunk-FHKBALVI.mjs";import"./chunk-HNNIVJ2K.mjs";import{i as gi}from"./chunk-XKO4RYKN.mjs";import"./chunk-WACWOKEP.mjs";import{a as Jy,b as e0,c as Ya,d as t0,e as r0,f as n0}from"./chunk-X6HUH6K4.mjs";import{a as cd}from"./chunk-JAJOZG5P.mjs";import{a as lm,b as cm,c as dm,d as Di}from"./chunk-CURR5X7D.mjs";import"./chunk-GQLZXCW3.mjs";import"./chunk-KAQUNOVB.mjs";import"./chunk-JX22B2FS.mjs";import"./chunk-67SSYK7D.mjs";import"./chunk-RDP6QROU.mjs";import"./chunk-34ACEGNW.mjs";import"./chunk-HDGFNBYK.mjs";import"./chunk-NNQUIVTE.mjs";import"./chunk-GMGGDADT.mjs";import"./chunk-CPFPY35C.mjs";import{a as um}from"./chunk-RHRMEBNK.mjs";import"./chunk-KT35IPCF.mjs";import{a as le}from"./chunk-FLPSWDX4.mjs";import{A as Ty,B as Cy,C as Ay,D as Dy,E as Oy,F as Ny,G as Ry,H as Fy,I as By,a as u,c as zb,d as Ub,e as _b,f as jb,g as Gb,h as $b,i as Wb,j as Jb,k as ey,l as ty,m as ry,n as ny,o as iy,p as oy,q as ay,r as sy,s as uy,t as ly,u as cy,v as dy,w as my,x as py,y as fy,z as hy}from"./chunk-NQZKBFC6.mjs";import"./chunk-ENKKLU7B.mjs";import{a as qa,c as rd}from"./chunk-VUFDQJ2B.mjs";import"./chunk-Z6UKUHPU.mjs";import{b as Wd}from"./chunk-VONDRBA2.mjs";import{a as ed}from"./chunk-37EFVZWT.mjs";import"./chunk-2SJ4BBMT.mjs";import{e as bi}from"./chunk-NIRW77QA.mjs";import{a as Ey,b as Iy,c as Vy,d as zy,e as Uy,f as _y,g as jy,h as Wa,i as Gy,j as Ha,k as $y,l as Wy,m as Hy}from"./chunk-24P6DAB3.mjs";import"./chunk-Q4Z54DQ7.mjs";import{a as jt,b as xb,c as vb,d as wb,e as Sb,f as kb,g as Pb,h as Mb,i as Yc,j as Tb,k as Xc,l as Cb,m as Ab,n as Db,o as Ob,p as Nb,q as qc,r as Zc,s as Kc,t as vr}from"./chunk-XDMZP3E2.mjs";import{d as td}from"./chunk-6YJP57MZ.mjs";import{a as Ke}from"./chunk-3T4LB4ZH.mjs";import"./chunk-XN56POGE.mjs";import{e as Gt,f as dd,g as md,h as pd,i as fd,j as hd,k as gd,l as bd,m as yd,n as xd,o as vd,p as wd,s as xi,v as Vd}from"./chunk-LQENNFBA.mjs";import{m as wr}from"./chunk-4GEWSUX5.mjs";import{r as ge}from"./chunk-MTJHQATU.mjs";import{a as Xa}from"./chunk-IQC2I5A5.mjs";import{a as Yy,b as Xy,c as fi,d as qy,e as Zy,f as Ky,g as Qy,h as hi}from"./chunk-IQKIHFNZ.mjs";import{o as j}from"./chunk-YAQFFQPG.mjs";import{a as mn,b as pn}from"./chunk-ZEYUXJIV.mjs";import{a as $a,c as xr,d as v,e as h}from"./chunk-BVF64D6H.mjs";var lc=$a((fM,uc)=>{h();var ri=()=>new Proxy(function(){},{get:(t,e)=>e==="__esModule"?!0:e===Symbol.toPrimitive?()=>"":ri(),apply:()=>ri(),construct:()=>ri()});uc.exports=ri()});var kc=$a((oT,Sc)=>{h();var li=()=>new Proxy(function(){},{get:(t,e)=>e==="__esModule"?!0:e===Symbol.toPrimitive?()=>"":li(),apply:()=>li(),construct:()=>li()});Sc.exports=li()});h();h();h();h();var ze=class extends Error{status;body;requestId;type;constructor({message:e,status:r,body:n,requestId:i,type:o}){super(e),this.name="ApiError",this.status=r,this.body=n,this.requestId=i??"",this.type=o}},Cr=class extends ze{constructor(e){super(e),this.name="ValidationError"}get fieldErrors(){return Array.isArray(this.body?.detail)?this.body.detail:[]}getFieldErrors(e){return this.fieldErrors.filter(r=>r.loc[r.loc.length-1]===e)}};function Gm(t,e){if(t?.error?.message)return t.error.message;if(typeof t?.detail=="string")return t.detail;if(Array.isArray(t?.detail)){let r=t.detail[0];if(r?.msg)return`${r.msg} (${(r.loc??[]).join(".")})`}return typeof t?.message=="string"?t.message:e}async function vn(t){let e=await t.text().catch(()=>""),r=e||void 0;try{r=e?JSON.parse(e):void 0}catch{}let n=typeof r=="object"&&r!==null?r:void 0,i={message:Gm(n,`${t.status} ${t.statusText}`.trim()),status:t.status,body:r,requestId:t.headers.get("x-framefields-request-id")??void 0,type:n?.error?.type};return t.status===422&&Array.isArray(n?.detail)?new Cr(i):new ze(i)}h();h();var no="https://api.framefields.dev/v1/ai/proxy",os,as=t=>typeof v<"u"?v.env?.[t]:void 0;function ss(t){os=t}function $m(){let t=os??as("FRAMEFIELDS_API_KEY");if(!t)throw new Error("framefields ai: no API key. Set FRAMEFIELDS_API_KEY or call ai.config({ apiKey }). Create a key at https://framefields.dev/dashboard/keys");return t}function Wm({service:t,path:e,query:r}){let n=new URLSearchParams;for(let[o,a]of Object.entries(r??{}))a!==void 0&&n.set(o,a);let i=n.size?`?${n}`:"";return`${t}/${e.replace(/^\/+/,"")}${i}`}async function io(t){let e={Authorization:`Key ${$m()}`,Accept:t.accept??"application/json","x-framefields-target":Wm(t)},r=t.body!==void 0;r&&(e["Content-Type"]="application/json");let n=await fetch(as("FRAMEFIELDS_AI_PROXY_URL")??no,{method:t.method??(r?"POST":"GET"),headers:e,body:r?JSON.stringify(t.body):void 0,signal:t.signal});if(!n.ok)throw await vn(n);return n}async function Qe(t){let e=await io(t);return{data:await e.json(),requestId:e.headers.get("x-framefields-request-id")??""}}var Hm=90*1024*1024,us=10*1024*1024,Ym=3,Xm={"image/jpeg":"jpg","image/png":"png","image/webp":"webp","video/mp4":"mp4","audio/mpeg":"mp3","audio/wav":"wav"};function qm(t,e){return"name"in t&&typeof t.name=="string"&&t.name?t.name:`${Date.now()}.${Xm[e]??"bin"}`}function ls(t,e){let r=t.type||"application/octet-stream";return Qe({service:"storage",path:e?"upload/initiate-multipart":"upload/initiate",body:{content_type:r,file_name:qm(t,r)}}).then(n=>n.data)}async function ao(t,e){let r=await fetch(t,e);if(!r.ok)throw await vn(r);return r}async function Zm(t,e){for(let r=1;;r++)try{return await(await ao(t,{method:"PUT",body:e})).json()}catch(n){if(r>=Ym)throw n}}async function Km(t){let e=await ls(t,!0),r=new URL(e.upload_url),n=o=>`${r.origin}${r.pathname}/${o}${r.search}`,i=[];for(let o=0;o<t.size;o+=us){let a=t.slice(o,Math.min(o+us,t.size));i.push(await Zm(n(i.length+1),a))}return await ao(n("complete"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({parts:i.map(({partNumber:o,etag:a})=>({partNumber:o,etag:a}))})}),e.file_url}async function cs(t){if(t.size>Hm)return Km(t);let e=await ls(t,!1);return await ao(e.upload_url,{method:"PUT",body:t,headers:{"Content-Type":t.type||"application/octet-stream"}}),e.file_url}var Qm=t=>typeof t=="object"&&t!==null&&Object.getPrototypeOf(t)===Object.prototype;async function oo(t){if(t instanceof Blob)return await cs(t);if(Array.isArray(t))return await Promise.all(t.map(e=>oo(e)));if(Qm(t)){let e=await Promise.all(Object.entries(t).map(async([r,n])=>[r,await oo(n)]));return Object.fromEntries(e)}return t}var wt={upload:cs,transformInput:oo};var Jm=new Set([429,502,503,504]),ep=4,ds=(t,e)=>new Promise((r,n)=>{e?.throwIfAborted();let i=setTimeout(r,t);e?.addEventListener("abort",()=>{clearTimeout(i),n(e.reason)},{once:!0})});async function ms(t,e){for(let r=1;;r++)try{return await t()}catch(n){if(!(n instanceof ze&&Jm.has(n.status))||r>=ep)throw n;await ds(500*2**r,e)}}var so=(t,e,r="")=>`${t}/requests/${encodeURIComponent(e)}${r}`;async function ps(t,{input:e,abortSignal:r}){let{data:n}=await Qe({service:"queue",path:t,body:await wt.transformInput(e)??{},signal:r});return n}function fs(t,{requestId:e,logs:r,abortSignal:n}){return ms(async()=>{let{data:i}=await Qe({service:"queue",path:so(t,e,"/status"),query:{logs:r?"1":void 0},signal:n});return i},n)}function hs(t,{requestId:e,abortSignal:r}){return ms(async()=>{let{data:n}=await Qe({service:"queue",path:so(t,e),signal:r});return{data:n,requestId:e}},r)}async function tp(t,{requestId:e,abortSignal:r}){await Qe({service:"queue",path:so(t,e,"/cancel"),method:"PUT",signal:r})}async function gs(t,e){let r=e.pollInterval??500;for(;;){let n=await fs(t,e);if(e.onQueueUpdate?.(n),n.status==="COMPLETED")return n;await ds(r,e.abortSignal)}}var bs={submit:ps,status:fs,result:hs,cancel:tp,subscribeToStatus:gs};async function ys(t,e){let{request_id:r}=await ps(t,e);return e.onEnqueue?.(r),await gs(t,{...e,requestId:r}),hs(t,{requestId:r,abortSignal:e.abortSignal})}h();async function*rp(t){let e=new TextDecoder,r="";for await(let i of t){r+=e.decode(i,{stream:!0}).replace(/\r\n?/g,`
1
+ import{A as Rx,B as Fx,C as Ex,D as Ix,E as zx,F as Vx,G as _x,I as Tm,J as Mm,K as Pi,L as Ti,N as Cm,O as Am,P as Dm,Q as Nm,R as Om,S as yn,T as Rm,a as Od,b as Rd,c as Z,d as lt,e as Ed,f as Mx,g as Cx,h as Ax,i as Dx,j as Nx,k as Id,l as zd,m as Vd,n as _d,q as jd,r as Ud,s as xm,t as ms,u as wm,v as ps,w as fs,x as vm,y as Sm,z as Ox}from"./chunk-CBQOJAIS.mjs";import{a as km}from"./chunk-PIAJWALT.mjs";import{a as Si,b as us}from"./chunk-PJ3DVG45.mjs";import{a as bn,b as gm,c as ls,d as cs,f as ym,g as Bx,h as Lx}from"./chunk-PJN7DD55.mjs";import{a as hm}from"./chunk-LKYN3BM2.mjs";import{a as tm,b as rm,c as nm,d as im,e as om,f as am,g as sm,h as um,i as lm,j as cm,k as dm,l as mm,m as pm,n as fm,o as ds}from"./chunk-RQLMW6MA.mjs";import{$ as qi,A as up,B as lp,C as cp,D as dp,E as Ui,F as mp,G as wn,H as pp,I as Gi,J as Ht,K as $i,L as fp,M as hp,N as gp,O as vn,P as bp,Q as yp,R as Sn,S as xp,T as Yt,U as vt,V as Wi,W as Hi,X as Qe,Y as Yi,Z as wp,_ as Xi,a as Wm,aa as St,b as Bi,ba as Zi,c as Hm,ca as Ki,d as Ym,da as Qi,e as Xm,ea as Ji,f as qm,fa as Cr,g as Zm,ga as eo,h as Km,ha as to,i as Qm,ia as ro,j as Jm,ja as no,k as ep,ka as io,l as Li,la as Ar,m as Ei,ma as ct,n as Ii,na as oo,o as tp,oa as ao,p as Mr,pa as so,q as rp,r as np,s as zi,t as ip,u as op,v as ap,w as Vi,x as _i,y as sp,z as ji}from"./chunk-DPIED3EG.mjs";import"./chunk-TA5OBYRR.mjs";import"./chunk-KKBJ7X3T.mjs";import{$ as _m,A as A0,B as D0,C as N0,D as O0,E as R0,F as F0,G as B0,H as L0,I as E0,J as I0,K as Y0,L as bx,M as kx,N as Px,O as Tx,P as gs,Q as Fm,R as Bm,S as Ai,T as Lm,U as xn,V as Em,W as Im,X as zm,Y as Pr,Z as Di,_ as bs,a as $t,aa as Ni,b as Oy,ba as Oi,c as Ry,ca as Ri,d as Fy,da as Tr,e as By,f as Ly,g as Wy,h as Hy,i as Yy,j as Xy,k as qy,l as Zy,m as Ky,n as Qy,o as Jy,p as e0,q as t0,r as r0,s as n0,t as i0,u as o0,v as a0,w as s0,x as u0,y as l0,z as c0}from"./chunk-2AV7HRRL.mjs";import{a as Vm}from"./chunk-YQRKT47I.mjs";import"./chunk-ZFURUTVW.mjs";import"./chunk-XJ4CQIZZ.mjs";import"./chunk-YMQMPBTL.mjs";import"./chunk-NB55FW7D.mjs";import"./chunk-5N3GW3NE.mjs";import"./chunk-MZAAJXUL.mjs";import"./chunk-C2TA65CH.mjs";import"./chunk-VRNN6H6Y.mjs";import"./chunk-ILKBHDFB.mjs";import"./chunk-7JYMNGNK.mjs";import"./chunk-NXKXOSE6.mjs";import"./chunk-VTE3IISK.mjs";import"./chunk-7EHUT5A3.mjs";import"./chunk-ENS4KUJV.mjs";import"./chunk-A5OUYV3I.mjs";import"./chunk-QQJPPGH5.mjs";import"./chunk-25T3M6MI.mjs";import"./chunk-OOJAQBS3.mjs";import{a as yx,b as xx,c as wx,d as vx,e as Sx}from"./chunk-VXUJWPIK.mjs";import"./chunk-Z4ZO4RVT.mjs";import"./chunk-QCUGWPYP.mjs";import"./chunk-RW2F3XLQ.mjs";import{a as Ey,b as Iy,c as ox}from"./chunk-OLLY3Q7M.mjs";import"./chunk-7BUKVFWB.mjs";import"./chunk-XYRBFLFF.mjs";import"./chunk-NYEDWUFS.mjs";import"./chunk-JMOJKT5W.mjs";import{a as Ci}from"./chunk-2JKXYG6J.mjs";import{a as Mi}from"./chunk-7I7PKKDL.mjs";import"./chunk-QVUT3QNF.mjs";import"./chunk-NVTPJUNG.mjs";import"./chunk-24H3QVYB.mjs";import"./chunk-4EOS6ZWW.mjs";import{i as wi}from"./chunk-XKO4RYKN.mjs";import"./chunk-O6LGKH4S.mjs";import{a as mx,b as px,c as os,d as fx,e as hx,f as gx}from"./chunk-X6HUH6K4.mjs";import{a as Gd}from"./chunk-JAJOZG5P.mjs";import{a as Um,b as Gm,c as $m,d as Fi}from"./chunk-CURR5X7D.mjs";import"./chunk-MLW6Y4RN.mjs";import"./chunk-5P764TTF.mjs";import"./chunk-NG5WSR3A.mjs";import"./chunk-4UI3S3UG.mjs";import"./chunk-VZGDX7II.mjs";import"./chunk-7HTTYP6T.mjs";import"./chunk-ANZDLSSM.mjs";import"./chunk-KRVXRP5F.mjs";import"./chunk-CEIOI4HO.mjs";import"./chunk-I6E3AKLS.mjs";import{a as jm}from"./chunk-DKXKOUQR.mjs";import"./chunk-MRDJNDYV.mjs";import{a as de}from"./chunk-MJN3LOZ7.mjs";import{A as z0,B as V0,C as _0,D as j0,E as U0,F as G0,G as $0,H as W0,I as H0,a as u,c as zy,d as Vy,e as _y,f as jy,g as Uy,h as Gy,i as $y,j as d0,k as m0,l as p0,m as f0,n as h0,o as g0,p as b0,q as y0,r as x0,s as w0,t as v0,u as S0,v as k0,w as P0,x as T0,y as M0,z as C0}from"./chunk-V6DAD4S4.mjs";import"./chunk-ENKKLU7B.mjs";import{a as ss,c as Ld}from"./chunk-VUFDQJ2B.mjs";import"./chunk-HXHP3UHZ.mjs";import{a as hs,b as Pm}from"./chunk-AJLPRIXB.mjs";import{a as Fd}from"./chunk-37EFVZWT.mjs";import"./chunk-2SJ4BBMT.mjs";import{e as vi}from"./chunk-NIRW77QA.mjs";import{a as X0,b as q0,c as Z0,d as K0,e as Q0,f as J0,g as ex,h as ns,i as tx,j as is,k as rx,l as nx,m as ix}from"./chunk-24P6DAB3.mjs";import"./chunk-Q4Z54DQ7.mjs";import{a as Gt,b as xy,c as wy,d as vy,e as Sy,f as ky,g as Py,h as Ty,i as Md,j as My,k as Cd,l as rs,m as Cy,n as Ay,o as Dy,p as Ny,q as Ad,r as Dd,s as Nd,t as Sr}from"./chunk-RNFYEZLL.mjs";import{d as Bd}from"./chunk-6YJP57MZ.mjs";import{a as Ve}from"./chunk-3T4LB4ZH.mjs";import"./chunk-XN56POGE.mjs";import{e as Wt,f as $d,g as Wd,h as Hd,i as Yd,j as Xd,k as qd,l as Zd,m as Kd,n as Qd,o as Jd,p as em,s as ki,v as bm}from"./chunk-LQENNFBA.mjs";import{m as kr}from"./chunk-4GEWSUX5.mjs";import{r as be}from"./chunk-MTJHQATU.mjs";import{a as as}from"./chunk-IQC2I5A5.mjs";import{a as ax,b as sx,c as yi,d as ux,e as lx,f as cx,g as dx,h as xi}from"./chunk-IQKIHFNZ.mjs";import{o as G}from"./chunk-YAQFFQPG.mjs";import{a as hn,b as gn}from"./chunk-ZEYUXJIV.mjs";import{a as ts,c as vr,d as w,e as h}from"./chunk-BVF64D6H.mjs";var kc=ts((AM,Sc)=>{h();var ii=()=>new Proxy(function(){},{get:(t,e)=>e==="__esModule"?!0:e===Symbol.toPrimitive?()=>"":ii(),apply:()=>ii(),construct:()=>ii()});Sc.exports=ii()});var Ic=ts((x3,Ec)=>{h();var di=()=>new Proxy(function(){},{get:(t,e)=>e==="__esModule"?!0:e===Symbol.toPrimitive?()=>"":di(),apply:()=>di(),construct:()=>di()});Ec.exports=di()});h();h();h();h();var _e=class extends Error{status;body;requestId;type;constructor({message:e,status:r,body:n,requestId:i,type:o}){super(e),this.name="ApiError",this.status=r,this.body=n,this.requestId=i??"",this.type=o}},Dr=class extends _e{constructor(e){super(e),this.name="ValidationError"}get fieldErrors(){return Array.isArray(this.body?.detail)?this.body.detail:[]}getFieldErrors(e){return this.fieldErrors.filter(r=>r.loc[r.loc.length-1]===e)}};function vp(t,e){if(t?.error?.message)return t.error.message;if(typeof t?.detail=="string")return t.detail;if(Array.isArray(t?.detail)){let r=t.detail[0];if(r?.msg)return`${r.msg} (${(r.loc??[]).join(".")})`}return typeof t?.message=="string"?t.message:e}async function kn(t){let e=await t.text().catch(()=>""),r=e||void 0;try{r=e?JSON.parse(e):void 0}catch{}let n=typeof r=="object"&&r!==null?r:void 0,i={message:vp(n,`${t.status} ${t.statusText}`.trim()),status:t.status,body:r,requestId:t.headers.get("x-framefields-request-id")??void 0,type:n?.error?.type};return t.status===422&&Array.isArray(n?.detail)?new Dr(i):new _e(i)}h();h();var uo="https://api.framefields.dev/v1/ai/proxy",ys,xs=t=>typeof w<"u"?w.env?.[t]:void 0;function ws(t){ys=t}function Sp(){let t=ys??xs("FRAMEFIELDS_API_KEY");if(!t)throw new Error("framefields ai: no API key. Set FRAMEFIELDS_API_KEY or call ai.config({ apiKey }). Create a key at https://framefields.dev/dashboard/keys");return t}function kp({service:t,path:e,query:r}){let n=new URLSearchParams;for(let[o,a]of Object.entries(r??{}))a!==void 0&&n.set(o,a);let i=n.size?`?${n}`:"";return`${t}/${e.replace(/^\/+/,"")}${i}`}async function lo(t){let e={Authorization:`Key ${Sp()}`,Accept:t.accept??"application/json","x-framefields-target":kp(t)},r=t.body!==void 0;r&&(e["Content-Type"]="application/json");let n=await fetch(xs("FRAMEFIELDS_AI_PROXY_URL")??uo,{method:t.method??(r?"POST":"GET"),headers:e,body:r?JSON.stringify(t.body):void 0,signal:t.signal});if(!n.ok)throw await kn(n);return n}async function Je(t){let e=await lo(t);return{data:await e.json(),requestId:e.headers.get("x-framefields-request-id")??""}}var Pp=90*1024*1024,vs=10*1024*1024,Tp=3,Mp={"image/jpeg":"jpg","image/png":"png","image/webp":"webp","video/mp4":"mp4","audio/mpeg":"mp3","audio/wav":"wav"};function Cp(t,e){return"name"in t&&typeof t.name=="string"&&t.name?t.name:`${Date.now()}.${Mp[e]??"bin"}`}function Ss(t,e){let r=t.type||"application/octet-stream";return Je({service:"storage",path:e?"upload/initiate-multipart":"upload/initiate",body:{content_type:r,file_name:Cp(t,r)}}).then(n=>n.data)}async function mo(t,e){let r=await fetch(t,e);if(!r.ok)throw await kn(r);return r}async function Ap(t,e){for(let r=1;;r++)try{return await(await mo(t,{method:"PUT",body:e})).json()}catch(n){if(r>=Tp)throw n}}async function Dp(t){let e=await Ss(t,!0),r=new URL(e.upload_url),n=o=>`${r.origin}${r.pathname}/${o}${r.search}`,i=[];for(let o=0;o<t.size;o+=vs){let a=t.slice(o,Math.min(o+vs,t.size));i.push(await Ap(n(i.length+1),a))}return await mo(n("complete"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({parts:i.map(({partNumber:o,etag:a})=>({partNumber:o,etag:a}))})}),e.file_url}async function ks(t){if(t.size>Pp)return Dp(t);let e=await Ss(t,!1);return await mo(e.upload_url,{method:"PUT",body:t,headers:{"Content-Type":t.type||"application/octet-stream"}}),e.file_url}var Np=t=>typeof t=="object"&&t!==null&&Object.getPrototypeOf(t)===Object.prototype;async function co(t){if(t instanceof Blob)return await ks(t);if(Array.isArray(t))return await Promise.all(t.map(e=>co(e)));if(Np(t)){let e=await Promise.all(Object.entries(t).map(async([r,n])=>[r,await co(n)]));return Object.fromEntries(e)}return t}var kt={upload:ks,transformInput:co};var Op=new Set([429,502,503,504]),Rp=4,Ps=(t,e)=>new Promise((r,n)=>{e?.throwIfAborted();let i=setTimeout(r,t);e?.addEventListener("abort",()=>{clearTimeout(i),n(e.reason)},{once:!0})});async function Ts(t,e){for(let r=1;;r++)try{return await t()}catch(n){if(!(n instanceof _e&&Op.has(n.status))||r>=Rp)throw n;await Ps(500*2**r,e)}}var po=(t,e,r="")=>`${t}/requests/${encodeURIComponent(e)}${r}`;async function Ms(t,{input:e,abortSignal:r}){let{data:n}=await Je({service:"queue",path:t,body:await kt.transformInput(e)??{},signal:r});return n}function Cs(t,{requestId:e,logs:r,abortSignal:n}){return Ts(async()=>{let{data:i}=await Je({service:"queue",path:po(t,e,"/status"),query:{logs:r?"1":void 0},signal:n});return i},n)}function As(t,{requestId:e,abortSignal:r}){return Ts(async()=>{let{data:n}=await Je({service:"queue",path:po(t,e),signal:r});return{data:n,requestId:e}},r)}async function Fp(t,{requestId:e,abortSignal:r}){await Je({service:"queue",path:po(t,e,"/cancel"),method:"PUT",signal:r})}async function Ds(t,e){let r=e.pollInterval??500;for(;;){let n=await Cs(t,e);if(e.onQueueUpdate?.(n),n.status==="COMPLETED")return n;await Ps(r,e.abortSignal)}}var Ns={submit:Ms,status:Cs,result:As,cancel:Fp,subscribeToStatus:Ds};async function Os(t,e){let{request_id:r}=await Ms(t,e);return e.onEnqueue?.(r),await Ds(t,{...e,requestId:r}),As(t,{requestId:r,abortSignal:e.abortSignal})}h();async function*Bp(t){let e=new TextDecoder,r="";for await(let i of t){r+=e.decode(i,{stream:!0}).replace(/\r\n?/g,`
2
2
  `);let o=r.indexOf(`
3
3
 
4
- `);for(;o!==-1;){let a=r.slice(0,o);r=r.slice(o+2);let s=xs(a);s&&(yield s),o=r.indexOf(`
4
+ `);for(;o!==-1;){let a=r.slice(0,o);r=r.slice(o+2);let s=Rs(a);s&&(yield s),o=r.indexOf(`
5
5
 
6
- `)}}let n=xs(r);n&&(yield n)}function xs(t){let e="message",r=[];for(let n of t.split(`
6
+ `)}}let n=Rs(r);n&&(yield n)}function Rs(t){let e="message",r=[];for(let n of t.split(`
7
7
  `))n.startsWith("data:")?r.push(n.slice(5).replace(/^ /,"")):n.startsWith("event:")&&(e=n.slice(6).trim());return r.length?{event:e,data:r.join(`
8
- `)}:null}async function*np(t,e){for await(let{event:r,data:n}of rp(t)){let i=JSON.parse(n);if(r==="error")throw new ze({message:"The model stream ended with an error",status:500,body:i,requestId:e});yield i}}async function vs(t,{input:e,abortSignal:r}){let n=new AbortController,i=r?AbortSignal.any([r,n.signal]):n.signal,o=await io({service:"run",path:`${t}/stream`,body:await wt.transformInput(e)??{},accept:"text/event-stream",signal:i}),a=o.headers.get("x-framefields-request-id")??"";if(!o.body)throw new ze({message:"Empty stream",status:502,requestId:a});let s=np(o.body,a),l,c;async function*m(){for await(let f of s)l=f,yield f}let d=m(),p=async()=>{let f=await d.next();for(;!f.done;)f=await d.next();if(l===void 0)throw new ze({message:"Stream had no output",status:502,requestId:a});return l};return{requestId:a,[Symbol.asyncIterator]:()=>d,done:()=>(c??=p(),c),abort:()=>n.abort()}}async function ip(t,{input:e,abortSignal:r}){return Qe({service:"run",path:t,body:await wt.transformInput(e)??{},signal:r})}var op={config(t){ss(t.apiKey)},run:ip,subscribe:ys,stream:vs,queue:bs,storage:wt};h();var uo=class t{samples=[];frames=[];totalLength=0;constructor(e){if(e.length<2)throw new Error("Path3D requires at least 2 coordinate samples");this.samples=e,this.totalLength=e[e.length-1].distance,this.computeRotationMinimizingFrames()}computeRotationMinimizingFrames(){let e=this.samples.length;this.frames=new Array(e);let r=this.samples[0].tangent,n=[0,-1,0];Math.abs(q.dot(r,n))>.95&&(n=[0,0,1]);let i=q.normalize(q.subtract(n,q.multiplyScalar(r,q.dot(n,r))));q.lengthSq(i)<1e-4&&(i=[1,0,0]);let o=q.normalize(q.cross(r,i));this.frames[0]={normal:i,binormal:o,rotation:this.eulerFromFrame(r,i,o)};for(let a=0;a<e-1;a++){let s=this.samples[a].position,l=this.samples[a+1].position,c=this.samples[a].tangent,m=this.samples[a+1].tangent,d=this.frames[a].normal,p=q.subtract(l,s),f=q.dot(p,p),b;if(f>1e-8){let y=q.subtract(c,q.multiplyScalar(p,2*q.dot(p,c)/f)),k=q.subtract(d,q.multiplyScalar(p,2*q.dot(p,d)/f)),A=q.subtract(m,y),T=q.dot(A,A);T>1e-8?b=q.subtract(k,q.multiplyScalar(A,2*q.dot(A,k)/T)):b=k}else b=d;b=q.normalize(q.subtract(b,q.multiplyScalar(m,q.dot(m,b))));let g=q.normalize(q.cross(m,b));this.frames[a+1]={normal:b,binormal:g,rotation:this.eulerFromFrame(m,b,g)}}}eulerFromFrame(e,r,n){let i=Math.asin(Math.max(-1,Math.min(1,-e[1])))*(180/Math.PI),o=Math.atan2(e[0],e[2])*(180/Math.PI),a=Math.atan2(r[0],r[1])*(180/Math.PI);return[i,o,a]}getPointAt(e){let n=Math.max(0,Math.min(1,e))*this.totalLength;return this.getPointAtDistance(n)}getPointAtDistance(e){let r=Math.max(0,Math.min(this.totalLength,e)),n=this.samples.length,i=0,o=n-1;for(;i<o;){let T=i+o>>1;this.samples[T].distance<r?i=T+1:o=T}let a=Math.max(1,i),s=a-1,l=this.samples[s],c=this.samples[a],m=c.distance-l.distance,d=m>1e-6?(r-l.distance)/m:0,p=q.lerp(l.position,c.position,d),f=q.normalize(q.lerp(l.tangent,c.tangent,d)),b=this.frames[s],g=this.frames[a],y=q.normalize(q.lerp(b.normal,g.normal,d)),k=q.normalize(q.cross(f,y)),A=[b.rotation[0]+(g.rotation[0]-b.rotation[0])*d,b.rotation[1]+(g.rotation[1]-b.rotation[1])*d,b.rotation[2]+(g.rotation[2]-b.rotation[2])*d];return{position:p,tangent:f,normal:y,binormal:k,distance:r,t:this.totalLength>0?r/this.totalLength:0,rotation:A}}static catmullRom(e,r={}){if(e.length<2)throw new Error("Catmull-Rom spline requires at least 2 waypoints");let n=!!r.closed,i=r.samplesPerSegment??40,o=[];if(n)o.push(e[e.length-1]),o.push(...e),o.push(e[0]),o.push(e[1]);else{let l=e[0],c=e[1],m=e[e.length-1],d=e[e.length-2];o.push(q.subtract(l,q.subtract(c,l))),o.push(...e),o.push(q.add(m,q.subtract(m,d)))}let a=n?e.length:e.length-1,s=[];for(let l=0;l<a;l++){let c=o[l],m=o[l+1],d=o[l+2],p=o[l+3],f=l===a-1?i:i-1;for(let b=0;b<=f;b++){let g=b/i,y=g*g,k=y*g,A=-.5*k+y-.5*g,T=1.5*k-2.5*y+1,w=-1.5*k+2*y+.5*g,S=.5*k-.5*y,x=[A*c[0]+T*m[0]+w*d[0]+S*p[0],A*c[1]+T*m[1]+w*d[1]+S*p[1],A*c[2]+T*m[2]+w*d[2]+S*p[2]],O=-1.5*y+2*g-.5,R=4.5*y-5*g,_=-4.5*y+4*g+.5,H=1.5*y-1*g,ee=[O*c[0]+R*m[0]+_*d[0]+H*p[0],O*c[1]+R*m[1]+_*d[1]+H*p[1],O*c[2]+R*m[2]+_*d[2]+H*p[2]],E=q.normalize(ee);s.push({position:x,tangent:E})}}return t.fromRawSamples(s)}static fromRawSamples(e){let r=0,n=e.map((i,o)=>(o>0&&(r+=q.distance(i.position,e[o-1].position)),{position:i.position,tangent:i.tangent,distance:r}));if(n.length===0)throw new TypeError("Path3D needs samples");return new t(n)}static bezier(e,r=50){if(e.length===0)throw new Error("Bezier path requires at least 1 segment");let n=[];for(let i=0;i<e.length;i++){let o=e[i],a=i===e.length-1?r:r-1;for(let s=0;s<=a;s++){let l=s/r,c=1-l,m=c*c,d=m*c,p=l*l,f=p*l,b=[d*o.p0[0]+3*m*l*o.p1[0]+3*c*p*o.p2[0]+f*o.p3[0],d*o.p0[1]+3*m*l*o.p1[1]+3*c*p*o.p2[1]+f*o.p3[1],d*o.p0[2]+3*m*l*o.p1[2]+3*c*p*o.p2[2]+f*o.p3[2]],g=[3*m*(o.p1[0]-o.p0[0])+6*c*l*(o.p2[0]-o.p1[0])+3*p*(o.p3[0]-o.p2[0]),3*m*(o.p1[1]-o.p0[1])+6*c*l*(o.p2[1]-o.p1[1])+3*p*(o.p3[1]-o.p2[1]),3*m*(o.p1[2]-o.p0[2])+6*c*l*(o.p2[2]-o.p1[2])+3*p*(o.p3[2]-o.p2[2])],y=q.normalize(g);n.push({position:b,tangent:y})}}return t.fromRawSamples(n)}static helix(e){let{center:r,radius:n,pitch:i,turns:o,axis:a="z",samplesPerTurn:s=60}=e,l=Math.max(10,Math.round(o*s)),c=[];for(let m=0;m<=l;m++){let d=m/l,p=d*o*Math.PI*2,f=(d-.5)*i*o,b=Math.cos(p),g=Math.sin(p),y,k;a==="z"?(y=[r[0]+n*b,r[1]+n*g,r[2]+f],k=[-n*g,n*b,i*o/(o*Math.PI*2)]):a==="y"?(y=[r[0]+n*b,r[1]+f,r[2]+n*g],k=[-n*g,i*o/(o*Math.PI*2),n*b]):(y=[r[0]+f,r[1]+n*b,r[2]+n*g],k=[i*o/(o*Math.PI*2),-n*g,n*b]),c.push({position:y,tangent:q.normalize(k)})}return t.fromRawSamples(c)}static circle(e){let{center:r,radius:n,startAngleDeg:i=0,endAngleDeg:o=360,samples:a=128}=e,s=i*Math.PI/180,l=o*Math.PI/180,c=[];for(let m=0;m<=a;m++){let d=s+(l-s)*(m/a),p=Math.cos(d),f=Math.sin(d),b=[r[0]+n*p,r[1],r[2]+n*f],g=[-n*f,0,n*p];c.push({position:b,tangent:q.normalize(g)})}return t.fromRawSamples(c)}};h();var lo=class t{name;props={};selectors=[];constructor(e){this.name=e}static create(e){return new t(e)}skew(e,r=0){return this.props.skew=e,this.props.skewAxis=r,this}anchor(e,r="character",n=0,i=0){return this.props.anchor={grouping:r,preset:e,anchorX:.5,anchorY:.5,offsetX:n,offsetY:i},this}anchorNormalized(e,r,n="character"){return this.props.anchor={grouping:n,preset:"custom",anchorX:e,anchorY:r,offsetX:0,offsetY:0},this}translateZ(e){return this.props.translateZ=e,this}tilt3D(e=0,r=0,n=0){return this.props.rotationX=e,this.props.rotationY=r,this.props.rotationZ=n,this}rotationX(e){return this.props.rotationX=e,this}rotationY(e){return this.props.rotationY=e,this}rotationZ(e){return this.props.rotationZ=e,this}volumetricFormation(e="cylinder",r=300,n=120,i=360,o=1200,a="y"){return this.props.formation={mode:e,radius:r,pitch:n,totalAngle:i,perspective:o,axis:a},this}lineSpacing(e,r=0){return this.props.lineSpacing=e,this.props.lineAnchor=r,this}lineAnchor(e){return this.props.lineAnchor=e,this}spring(e=180,r=12,n=1,i=0){return this.props.spring={stiffness:e,damping:r,mass:n,initialVelocity:i,overshootMultiplier:1},this}stroke(e,r="#ffffff",n=1){return this.props.stroke={strokeWidth:e,strokeColor:r,strokeAlign:"center",fillOpacity:n,dashOffset:0},this}variableFont(e){return this.props.variableAxes=e,this}chromaticGlitch(e,r=0,n=-e,i=0){return this.props.chromaticGlitch={redShiftX:e,redShiftY:r,blueShiftX:n,blueShiftY:i,sliceProbability:0,sliceAmplitude:0},this}audioSpectrum(e,r=60,n=16e3,i=2.5){return this.props.audioSpectrum={signalChannel:e,minFreqHz:r,maxFreqHz:n,scaleAxis:"scaleY",minScale:.2,maxScale:i,peakDecay:.8},this}longShadow(e=45,r=40,n="#000000",i=.8,o=0,a=16){return this.props.longShadow={angle:e,length:r,color:n,startOpacity:i,endOpacity:o,steps:a},this}particleDissolve(e=0,r=90,n=120){return this.props.particleDissolve={progress:e,dispersalAngle:r,maxDisplacement:n,turbulence:.5,particleSize:2},this}addExpressionSelector(e,r="add"){return this.selectors.push({type:"expression",expression:e,mode:r,amount:1}),this}expressionSelector(e,r="add"){return this.addExpressionSelector(e,r)}x(e){return this.props.x=e,this}y(e){return this.props.y=e,this}scale(e){return this.props.scale=e,this}scaleX(e){return this.props.scaleX=e,this}scaleY(e){return this.props.scaleY=e,this}rotation(e){return this.props.rotation=e,this}opacity(e){return this.props.opacity=e,this}blur(e){return this.props.blur=e,this}fillColor(e){return this.props.fillColor=e,this}build(){return{name:this.name,selectors:this.selectors,props:this.props}}};h();var ws=u.enum(["character","word","line","all"]),Ss=u.enum(["center","baseline","bottom_left","bottom_center","bottom_right","top_left","top_center","top_right","custom"]),ks=u.object({grouping:ws.default("character"),preset:Ss.default("center"),anchorX:u.number().default(.5),anchorY:u.number().default(.5),offsetX:u.number().default(0),offsetY:u.number().default(0)}),ap=u.object({skew:u.number().min(-90).max(90),skewAxis:u.number().default(0)}),sp=u.object({lineSpacing:u.number(),lineAnchor:u.number().min(0).max(1).default(0)}),Ps=u.enum(["planar","vortex","cylinder","helix"]),co=u.object({mode:Ps.default("planar"),radius:u.number().default(300),pitch:u.number().default(120),totalAngle:u.number().default(360),axis:u.enum(["x","y","z"]).default("y"),perspective:u.number().positive().default(1200)}),up=u.object({translateZ:u.number().optional(),rotationX:u.number().optional(),rotationY:u.number().optional(),rotationZ:u.number().optional(),formation:co.optional()}),Ms=u.object({stiffness:u.number().positive().default(180),damping:u.number().positive().default(12),mass:u.number().positive().default(1),initialVelocity:u.number().default(0),overshootMultiplier:u.number().min(.5).max(3).default(1)}),lp=u.object({type:u.literal("expression"),name:u.string().optional(),expression:u.string(),mode:u.enum(["add","subtract","intersect","min","max","difference"]).default("add"),amount:u.number().default(1)}),Ts=u.object({strokeWidth:u.number().min(0).default(0),strokeColor:u.string().default("#ffffff"),strokeAlign:u.enum(["center","inside","outside"]).default("center"),fillOpacity:u.number().min(0).max(1).default(1),dashArray:u.tuple([u.number(),u.number()]).optional(),dashOffset:u.number().default(0)}),mo=u.object({direction:u.enum(["left","right","up","down"]).default("left"),velocity:u.number().default(120),loop:u.boolean().default(!0),repeatGap:u.number().default(80),snap:u.object({enabled:u.boolean().default(!1),granularity:u.enum(["character","word","line"]).default("word"),stopIndex:u.number().default(0),decelEase:u.string().default("cubic.out")}).optional()}),Cs=u.object({weight:u.number().min(100).max(1e3).optional(),width:u.number().min(50).max(200).optional(),slant:u.number().min(-25).max(25).optional(),italic:u.number().min(0).max(1).optional(),opticalSize:u.number().min(6).max(144).optional()}),As=u.object({redShiftX:u.number().default(0),redShiftY:u.number().default(0),blueShiftX:u.number().default(0),blueShiftY:u.number().default(0),sliceProbability:u.number().min(0).max(1).default(0),sliceAmplitude:u.number().default(0)}),Ds=u.object({signalChannel:u.string(),minFreqHz:u.number().default(60),maxFreqHz:u.number().default(16e3),scaleAxis:u.enum(["scaleY","scaleX","scale","y"]).default("scaleY"),minScale:u.number().default(.2),maxScale:u.number().default(2.5),peakDecay:u.number().min(0).max(.99).default(.8)}),Os=u.object({angle:u.number().default(45),length:u.number().min(0).default(0),color:u.string().default("#000000"),startOpacity:u.number().min(0).max(1).default(.8),endOpacity:u.number().min(0).max(1).default(0),steps:u.number().int().min(4).max(64).default(16)}),Ns=u.object({progress:u.number().min(0).max(1).default(0),dispersalAngle:u.number().default(90),maxDisplacement:u.number().default(120),turbulence:u.number().default(.5),particleSize:u.number().default(2)}),Rs=u.object({x:u.number().optional(),y:u.number().optional(),translateZ:u.number().optional(),scale:u.number().optional(),scaleX:u.number().optional(),scaleY:u.number().optional(),rotation:u.number().optional(),rotationX:u.number().optional(),rotationY:u.number().optional(),rotationZ:u.number().optional(),formation:co.optional(),skew:u.number().optional(),skewAxis:u.number().optional(),tracking:u.number().optional(),lineSpacing:u.number().optional(),lineAnchor:u.number().optional(),anchor:ks.optional(),opacity:u.number().optional(),blur:u.number().optional(),fillColor:u.string().optional(),stroke:Ts.optional(),variableAxes:Cs.optional(),chromaticGlitch:As.optional(),longShadow:Os.optional(),particleDissolve:Ns.optional(),audioSpectrum:Ds.optional(),spring:Ms.optional()}),po=u.object({name:u.string().default("AdvancedAnimator"),selectors:u.array(u.record(u.string(),u.unknown())).default([]),props:Rs});h();h();var Ar=u.object({x:u.number(),y:u.number()}),Fs=u.object({p0:Ar,p1:Ar,p2:Ar,p3:Ar}),Bs=u.discriminatedUnion("type",[u.object({type:u.literal("svg"),d:u.string().min(1,"SVG path string cannot be empty")}),u.object({type:u.literal("bezier"),segments:u.array(Fs).min(1)}),u.object({type:u.literal("ellipse"),cx:u.number(),cy:u.number(),rx:u.number().positive(),ry:u.number().positive(),startAngleDeg:u.number().default(0),endAngleDeg:u.number().default(360)}),u.object({type:u.literal("wave"),startX:u.number(),startY:u.number(),length:u.number().positive(),amplitude:u.number(),frequency:u.number().positive(),phaseDeg:u.number().default(0)})]),Ht=u.object({path:Bs,firstMargin:u.number().default(0),lastMargin:u.number().default(0),reversePath:u.boolean().default(!1),perpendicularToPath:u.boolean().default(!0),forceAlignment:u.boolean().default(!1),loop:u.boolean().default(!1),baselineOffset:u.enum(["baseline","center","ascender","descender"]).default("baseline"),baselineShift:u.number().default(0)}),Ls=u.enum(["bar","underscore","block","custom"]),Es=u.object({enabled:u.boolean().default(!0),style:Ls.default("bar"),customChar:u.string().default("|"),color:u.string().optional(),blinkFrequency:u.number().min(0).default(2),hideOnComplete:u.boolean().default(!1),width:u.number().positive().default(2.5),spacing:u.number().default(3)}),Is=u.discriminatedUnion("mode",[u.object({mode:u.literal("constant")}),u.object({mode:u.literal("human"),jitter:u.number().min(0).max(1).default(.35),commaPauseMultiplier:u.number().min(1).default(3),sentencePauseMultiplier:u.number().min(1).default(5.5),paragraphPauseMultiplier:u.number().min(1).default(7)})]),Vs=u.object({enabled:u.boolean().default(!1),charset:u.enum(["ascii","alphanumeric","matrix","binary","hex","custom"]).default("alphanumeric"),customCharset:u.string().optional(),scrambleFramesPerChar:u.number().int().min(1).default(8),highlightProbability:u.number().min(0).max(1).default(.25),scrambleColor:u.string().optional()}),wn=u.object({granularity:u.enum(["character","word","line"]).default("character"),cursor:Es.default({enabled:!0,style:"bar",customChar:"|",blinkFrequency:2,hideOnComplete:!1,width:2.5,spacing:3}),cadence:Is.default({mode:"human",jitter:.35,commaPauseMultiplier:3,sentencePauseMultiplier:5.5,paragraphPauseMultiplier:7}),scramble:Vs.default({enabled:!1,charset:"alphanumeric",scrambleFramesPerChar:8,highlightProbability:.25}),soundSync:u.boolean().default(!1)}),Sn=u.enum(["characters","characters_excluding_spaces","words","lines"]),zs=u.enum(["percentage","index"]),Us=u.enum(["square","ramp_up","ramp_down","triangle","round","smooth"]),kn=u.enum(["add","subtract","intersect","min","max","difference"]),_s=u.object({type:u.literal("range"),start:u.number().default(0),end:u.number().default(1),offset:u.number().default(0),units:zs.default("percentage"),basedOn:Sn.default("characters"),shape:Us.default("square"),mode:kn.default("add"),amount:u.number().min(-1).max(1).default(1),easeHigh:u.number().min(-1).max(1).default(0),easeLow:u.number().min(-1).max(1).default(0),randomizeOrder:u.boolean().default(!1),randomSeed:u.number().int().default(12345)}),js=u.object({type:u.literal("wiggly"),wigglesPerSecond:u.number().positive().default(2),correlation:u.number().min(0).max(1).default(.5),temporalPhaseDeg:u.number().default(0),spatialPhaseDeg:u.number().default(0),minAmount:u.number().min(-1).max(1).default(-1),maxAmount:u.number().min(-1).max(1).default(1),randomSeed:u.number().int().default(42),basedOn:Sn.default("characters"),mode:kn.default("intersect")}),Gs=u.object({type:u.literal("signal"),signalId:u.string(),multiplier:u.number().default(1),offset:u.number().default(0),phaseSpread:u.number().default(0),basedOn:Sn.default("characters"),mode:kn.default("add")}),$s=u.discriminatedUnion("type",[_s,js,Gs]),Ws=u.object({x:u.number().optional(),y:u.number().optional(),z:u.number().optional(),scale:u.number().optional(),scaleX:u.number().optional(),scaleY:u.number().optional(),rotation:u.number().optional(),rotationX:u.number().optional(),rotationY:u.number().optional(),skew:u.number().optional(),skewAxis:u.number().optional(),tracking:u.number().optional(),lineSpacing:u.number().optional(),opacity:u.number().min(0).max(1).optional(),fillColor:u.string().optional(),strokeColor:u.string().optional(),strokeWidth:u.number().min(0).optional(),blur:u.number().min(0).optional(),characterOffset:u.number().int().optional()}),Hs=u.enum(["character","word","line","all"]),Ys=u.object({grouping:Hs.default("character"),anchorX:u.number().default(.5),anchorY:u.number().default(.8)}),Yt=u.object({name:u.string().default("Animator"),selectors:u.array($s).min(1),props:Ws,anchor:Ys.default({grouping:"character",anchorX:.5,anchorY:.8})}),cp=u.object({text:u.string(),fontFamily:u.string().default("Inter"),fontSize:u.number().positive().default(24),fontWeight:u.union([u.number(),u.string()]).default(400),fill:u.string().default("#ffffff"),letterSpacing:u.number().default(0),lineHeight:u.number().positive().default(1.2),textAlign:u.enum(["left","center","right"]).default("left"),pathOptions:Ht.optional(),typewriter:wn.optional(),animators:u.array(Yt).default([])});var fo=class t{options={firstMargin:0,lastMargin:0,reversePath:!1,perpendicularToPath:!0,forceAlignment:!1,loop:!1,baselineOffset:"baseline",baselineShift:0};static fromSvg(e){let r=new t;return r.options.path={type:"svg",d:e},r}static fromBezier(e){let r=new t;return r.options.path={type:"bezier",segments:e},r}static fromCurve(e){return t.fromBezier([e])}static circularBadge(e,r,n){let i=new t;return i.options.path={type:"ellipse",cx:e,cy:r,rx:n,ry:n,startAngleDeg:0,endAngleDeg:360},i.options.loop=!0,i}static ellipse(e,r,n,i,o=0,a=360){let s=new t;return s.options.path={type:"ellipse",cx:e,cy:r,rx:n,ry:i,startAngleDeg:o,endAngleDeg:a},s.options.loop=Math.abs(a-o)>=360,s}static wave(e,r,n,i,o,a=0){let s=new t;return s.options.path={type:"wave",startX:e,startY:r,length:n,amplitude:i,frequency:o,phaseDeg:a},s}firstMargin(e){return this.options.firstMargin=e,this}lastMargin(e){return this.options.lastMargin=e,this}reversePath(e){return this.options.reversePath=e,this}perpendicularToPath(e){return this.options.perpendicularToPath=e,this}forceAlignment(e){return this.options.forceAlignment=e,this}loop(e){return this.options.loop=e,this}baselineOffset(e){return this.options.baselineOffset=e,this}baselineShift(e){return this.options.baselineShift=e,this}build(){return Ht.parse(this.options)}},ho=class t{name="Animator";selectors=[];props={};anchor={grouping:"character",anchorX:.5,anchorY:.8};static create(e){let r=new t;return r.name=e,r}addRangeSelector(e){let r=e.easeHigh??0,n=Math.abs(r)>1?r/100:r,i=e.easeLow??0,o=Math.abs(i)>1?i/100:i;return this.selectors.push({type:"range",start:e.start??0,end:e.end??1,offset:e.offset??0,units:"percentage",basedOn:e.basedOn??"characters",shape:e.shape??"smooth",mode:e.mode??"add",amount:1,easeHigh:Math.max(-1,Math.min(1,n)),easeLow:Math.max(-1,Math.min(1,o)),randomizeOrder:e.randomizeOrder??!1,randomSeed:e.randomSeed??12345}),this}addWigglySelector(e){return this.selectors.push({type:"wiggly",wigglesPerSecond:e.wigglesPerSecond??2,correlation:e.correlation??.5,temporalPhaseDeg:0,spatialPhaseDeg:0,minAmount:e.minAmount??-1,maxAmount:e.maxAmount??1,randomSeed:e.randomSeed??42,basedOn:"characters",mode:e.mode??"intersect"}),this}addSignalSelector(e,r=1,n=0,i=0,o="add"){return this.selectors.push({type:"signal",signalId:e,multiplier:r,offset:i,phaseSpread:n,basedOn:"characters",mode:o}),this}x(e){return this.props.x=e,this}y(e){return this.props.y=e,this}z(e){return this.props.z=e,this}scale(e){return this.props.scale=e,this}scaleX(e){return this.props.scaleX=e,this}scaleY(e){return this.props.scaleY=e,this}rotation(e){return this.props.rotation=e,this}rotationX(e){return this.props.rotationX=e,this}rotationY(e){return this.props.rotationY=e,this}skew(e){return this.props.skew=e,this}skewAxis(e){return this.props.skewAxis=e,this}opacity(e){return this.props.opacity=e,this}blur(e){return this.props.blur=e,this}fill(e){return this.fillColor(e)}fillColor(e){return this.props.fillColor=e,this}strokeColor(e){return this.props.strokeColor=e,this}strokeWidth(e){return this.props.strokeWidth=e,this}tracking(e){return this.props.tracking=e,this}lineSpacing(e){return this.props.lineSpacing=e,this}characterOffset(e){return this.props.characterOffset=e,this}anchorGrouping(e,r=.5,n=.8){return this.anchor={grouping:e,anchorX:r,anchorY:n},this}build(){return Yt.parse({name:this.name,selectors:this.selectors,props:this.props,anchor:this.anchor})}};h();h();var Xs=`
8
+ `)}:null}async function*Lp(t,e){for await(let{event:r,data:n}of Bp(t)){let i=JSON.parse(n);if(r==="error")throw new _e({message:"The model stream ended with an error",status:500,body:i,requestId:e});yield i}}async function Fs(t,{input:e,abortSignal:r}){let n=new AbortController,i=r?AbortSignal.any([r,n.signal]):n.signal,o=await lo({service:"run",path:`${t}/stream`,body:await kt.transformInput(e)??{},accept:"text/event-stream",signal:i}),a=o.headers.get("x-framefields-request-id")??"";if(!o.body)throw new _e({message:"Empty stream",status:502,requestId:a});let s=Lp(o.body,a),l,c;async function*m(){for await(let f of s)l=f,yield f}let d=m(),p=async()=>{let f=await d.next();for(;!f.done;)f=await d.next();if(l===void 0)throw new _e({message:"Stream had no output",status:502,requestId:a});return l};return{requestId:a,[Symbol.asyncIterator]:()=>d,done:()=>(c??=p(),c),abort:()=>n.abort()}}async function Ep(t,{input:e,abortSignal:r}){return Je({service:"run",path:t,body:await kt.transformInput(e)??{},signal:r})}var Ip={config(t){ws(t.apiKey)},run:Ep,subscribe:Os,stream:Fs,queue:Ns,storage:kt};h();var fo=class t{samples=[];frames=[];totalLength=0;constructor(e){if(e.length<2)throw new Error("Path3D requires at least 2 coordinate samples");this.samples=e,this.totalLength=e[e.length-1].distance,this.computeRotationMinimizingFrames()}computeRotationMinimizingFrames(){let e=this.samples.length;this.frames=new Array(e);let r=this.samples[0].tangent,n=[0,-1,0];Math.abs(Z.dot(r,n))>.95&&(n=[0,0,1]);let i=Z.normalize(Z.subtract(n,Z.multiplyScalar(r,Z.dot(n,r))));Z.lengthSq(i)<1e-4&&(i=[1,0,0]);let o=Z.normalize(Z.cross(r,i));this.frames[0]={normal:i,binormal:o,rotation:this.eulerFromFrame(r,i,o)};for(let a=0;a<e-1;a++){let s=this.samples[a].position,l=this.samples[a+1].position,c=this.samples[a].tangent,m=this.samples[a+1].tangent,d=this.frames[a].normal,p=Z.subtract(l,s),f=Z.dot(p,p),b;if(f>1e-8){let y=Z.subtract(c,Z.multiplyScalar(p,2*Z.dot(p,c)/f)),S=Z.subtract(d,Z.multiplyScalar(p,2*Z.dot(p,d)/f)),A=Z.subtract(m,y),T=Z.dot(A,A);T>1e-8?b=Z.subtract(S,Z.multiplyScalar(A,2*Z.dot(A,S)/T)):b=S}else b=d;b=Z.normalize(Z.subtract(b,Z.multiplyScalar(m,Z.dot(m,b))));let g=Z.normalize(Z.cross(m,b));this.frames[a+1]={normal:b,binormal:g,rotation:this.eulerFromFrame(m,b,g)}}}eulerFromFrame(e,r,n){let i=Math.asin(Math.max(-1,Math.min(1,-e[1])))*(180/Math.PI),o=Math.atan2(e[0],e[2])*(180/Math.PI),a=Math.atan2(r[0],r[1])*(180/Math.PI);return[i,o,a]}getPointAt(e){let n=Math.max(0,Math.min(1,e))*this.totalLength;return this.getPointAtDistance(n)}getPointAtDistance(e){let r=Math.max(0,Math.min(this.totalLength,e)),n=this.samples.length,i=0,o=n-1;for(;i<o;){let T=i+o>>1;this.samples[T].distance<r?i=T+1:o=T}let a=Math.max(1,i),s=a-1,l=this.samples[s],c=this.samples[a],m=c.distance-l.distance,d=m>1e-6?(r-l.distance)/m:0,p=Z.lerp(l.position,c.position,d),f=Z.normalize(Z.lerp(l.tangent,c.tangent,d)),b=this.frames[s],g=this.frames[a],y=Z.normalize(Z.lerp(b.normal,g.normal,d)),S=Z.normalize(Z.cross(f,y)),A=[b.rotation[0]+(g.rotation[0]-b.rotation[0])*d,b.rotation[1]+(g.rotation[1]-b.rotation[1])*d,b.rotation[2]+(g.rotation[2]-b.rotation[2])*d];return{position:p,tangent:f,normal:y,binormal:S,distance:r,t:this.totalLength>0?r/this.totalLength:0,rotation:A}}static catmullRom(e,r={}){if(e.length<2)throw new Error("Catmull-Rom spline requires at least 2 waypoints");let n=!!r.closed,i=r.samplesPerSegment??40,o=[];if(n)o.push(e[e.length-1]),o.push(...e),o.push(e[0]),o.push(e[1]);else{let l=e[0],c=e[1],m=e[e.length-1],d=e[e.length-2];o.push(Z.subtract(l,Z.subtract(c,l))),o.push(...e),o.push(Z.add(m,Z.subtract(m,d)))}let a=n?e.length:e.length-1,s=[];for(let l=0;l<a;l++){let c=o[l],m=o[l+1],d=o[l+2],p=o[l+3],f=l===a-1?i:i-1;for(let b=0;b<=f;b++){let g=b/i,y=g*g,S=y*g,A=-.5*S+y-.5*g,T=1.5*S-2.5*y+1,v=-1.5*S+2*y+.5*g,C=.5*S-.5*y,x=[A*c[0]+T*m[0]+v*d[0]+C*p[0],A*c[1]+T*m[1]+v*d[1]+C*p[1],A*c[2]+T*m[2]+v*d[2]+C*p[2]],M=-1.5*y+2*g-.5,O=4.5*y-5*g,_=-4.5*y+4*g+.5,$=1.5*y-1*g,I=[M*c[0]+O*m[0]+_*d[0]+$*p[0],M*c[1]+O*m[1]+_*d[1]+$*p[1],M*c[2]+O*m[2]+_*d[2]+$*p[2]],F=Z.normalize(I);s.push({position:x,tangent:F})}}return t.fromRawSamples(s)}static fromRawSamples(e){let r=0,n=e.map((i,o)=>(o>0&&(r+=Z.distance(i.position,e[o-1].position)),{position:i.position,tangent:i.tangent,distance:r}));if(n.length===0)throw new TypeError("Path3D needs samples");return new t(n)}static bezier(e,r=50){if(e.length===0)throw new Error("Bezier path requires at least 1 segment");let n=[];for(let i=0;i<e.length;i++){let o=e[i],a=i===e.length-1?r:r-1;for(let s=0;s<=a;s++){let l=s/r,c=1-l,m=c*c,d=m*c,p=l*l,f=p*l,b=[d*o.p0[0]+3*m*l*o.p1[0]+3*c*p*o.p2[0]+f*o.p3[0],d*o.p0[1]+3*m*l*o.p1[1]+3*c*p*o.p2[1]+f*o.p3[1],d*o.p0[2]+3*m*l*o.p1[2]+3*c*p*o.p2[2]+f*o.p3[2]],g=[3*m*(o.p1[0]-o.p0[0])+6*c*l*(o.p2[0]-o.p1[0])+3*p*(o.p3[0]-o.p2[0]),3*m*(o.p1[1]-o.p0[1])+6*c*l*(o.p2[1]-o.p1[1])+3*p*(o.p3[1]-o.p2[1]),3*m*(o.p1[2]-o.p0[2])+6*c*l*(o.p2[2]-o.p1[2])+3*p*(o.p3[2]-o.p2[2])],y=Z.normalize(g);n.push({position:b,tangent:y})}}return t.fromRawSamples(n)}static helix(e){let{center:r,radius:n,pitch:i,turns:o,axis:a="z",samplesPerTurn:s=60}=e,l=Math.max(10,Math.round(o*s)),c=[];for(let m=0;m<=l;m++){let d=m/l,p=d*o*Math.PI*2,f=(d-.5)*i*o,b=Math.cos(p),g=Math.sin(p),y,S;a==="z"?(y=[r[0]+n*b,r[1]+n*g,r[2]+f],S=[-n*g,n*b,i*o/(o*Math.PI*2)]):a==="y"?(y=[r[0]+n*b,r[1]+f,r[2]+n*g],S=[-n*g,i*o/(o*Math.PI*2),n*b]):(y=[r[0]+f,r[1]+n*b,r[2]+n*g],S=[i*o/(o*Math.PI*2),-n*g,n*b]),c.push({position:y,tangent:Z.normalize(S)})}return t.fromRawSamples(c)}static circle(e){let{center:r,radius:n,startAngleDeg:i=0,endAngleDeg:o=360,samples:a=128}=e,s=i*Math.PI/180,l=o*Math.PI/180,c=[];for(let m=0;m<=a;m++){let d=s+(l-s)*(m/a),p=Math.cos(d),f=Math.sin(d),b=[r[0]+n*p,r[1],r[2]+n*f],g=[-n*f,0,n*p];c.push({position:b,tangent:Z.normalize(g)})}return t.fromRawSamples(c)}};h();var ho=class t{name;props={};selectors=[];constructor(e){this.name=e}static create(e){return new t(e)}skew(e,r=0){return this.props.skew=e,this.props.skewAxis=r,this}anchor(e,r="character",n=0,i=0){return this.props.anchor={grouping:r,preset:e,anchorX:.5,anchorY:.5,offsetX:n,offsetY:i},this}anchorNormalized(e,r,n="character"){return this.props.anchor={grouping:n,preset:"custom",anchorX:e,anchorY:r,offsetX:0,offsetY:0},this}translateZ(e){return this.props.translateZ=e,this}tilt3D(e=0,r=0,n=0){return this.props.rotationX=e,this.props.rotationY=r,this.props.rotationZ=n,this}rotationX(e){return this.props.rotationX=e,this}rotationY(e){return this.props.rotationY=e,this}rotationZ(e){return this.props.rotationZ=e,this}volumetricFormation(e="cylinder",r=300,n=120,i=360,o=1200,a="y"){return this.props.formation={mode:e,radius:r,pitch:n,totalAngle:i,perspective:o,axis:a},this}lineSpacing(e,r=0){return this.props.lineSpacing=e,this.props.lineAnchor=r,this}lineAnchor(e){return this.props.lineAnchor=e,this}spring(e=180,r=12,n=1,i=0){return this.props.spring={stiffness:e,damping:r,mass:n,initialVelocity:i,overshootMultiplier:1},this}stroke(e,r="#ffffff",n=1){return this.props.stroke={strokeWidth:e,strokeColor:r,strokeAlign:"center",fillOpacity:n,dashOffset:0},this}variableFont(e){return this.props.variableAxes=e,this}chromaticGlitch(e,r=0,n=-e,i=0){return this.props.chromaticGlitch={redShiftX:e,redShiftY:r,blueShiftX:n,blueShiftY:i,sliceProbability:0,sliceAmplitude:0},this}audioSpectrum(e,r=60,n=16e3,i=2.5){return this.props.audioSpectrum={signalChannel:e,minFreqHz:r,maxFreqHz:n,scaleAxis:"scaleY",minScale:.2,maxScale:i,peakDecay:.8},this}longShadow(e=45,r=40,n="#000000",i=.8,o=0,a=16){return this.props.longShadow={angle:e,length:r,color:n,startOpacity:i,endOpacity:o,steps:a},this}particleDissolve(e=0,r=90,n=120){return this.props.particleDissolve={progress:e,dispersalAngle:r,maxDisplacement:n,turbulence:.5,particleSize:2},this}addExpressionSelector(e,r="add"){return this.selectors.push({type:"expression",expression:e,mode:r,amount:1}),this}expressionSelector(e,r="add"){return this.addExpressionSelector(e,r)}x(e){return this.props.x=e,this}y(e){return this.props.y=e,this}scale(e){return this.props.scale=e,this}scaleX(e){return this.props.scaleX=e,this}scaleY(e){return this.props.scaleY=e,this}rotation(e){return this.props.rotation=e,this}opacity(e){return this.props.opacity=e,this}blur(e){return this.props.blur=e,this}fillColor(e){return this.props.fillColor=e,this}build(){return{name:this.name,selectors:this.selectors,props:this.props}}};h();var Bs=u.enum(["character","word","line","all"]),Ls=u.enum(["center","baseline","bottom_left","bottom_center","bottom_right","top_left","top_center","top_right","custom"]),Es=u.object({grouping:Bs.default("character"),preset:Ls.default("center"),anchorX:u.number().default(.5),anchorY:u.number().default(.5),offsetX:u.number().default(0),offsetY:u.number().default(0)}),zp=u.object({skew:u.number().min(-90).max(90),skewAxis:u.number().default(0)}),Vp=u.object({lineSpacing:u.number(),lineAnchor:u.number().min(0).max(1).default(0)}),Is=u.enum(["planar","vortex","cylinder","helix"]),go=u.object({mode:Is.default("planar"),radius:u.number().default(300),pitch:u.number().default(120),totalAngle:u.number().default(360),axis:u.enum(["x","y","z"]).default("y"),perspective:u.number().positive().default(1200)}),_p=u.object({translateZ:u.number().optional(),rotationX:u.number().optional(),rotationY:u.number().optional(),rotationZ:u.number().optional(),formation:go.optional()}),zs=u.object({stiffness:u.number().positive().default(180),damping:u.number().positive().default(12),mass:u.number().positive().default(1),initialVelocity:u.number().default(0),overshootMultiplier:u.number().min(.5).max(3).default(1)}),jp=u.object({type:u.literal("expression"),name:u.string().optional(),expression:u.string(),mode:u.enum(["add","subtract","intersect","min","max","difference"]).default("add"),amount:u.number().default(1)}),Vs=u.object({strokeWidth:u.number().min(0).default(0),strokeColor:u.string().default("#ffffff"),strokeAlign:u.enum(["center","inside","outside"]).default("center"),fillOpacity:u.number().min(0).max(1).default(1),dashArray:u.tuple([u.number(),u.number()]).optional(),dashOffset:u.number().default(0)}),bo=u.object({direction:u.enum(["left","right","up","down"]).default("left"),velocity:u.number().default(120),loop:u.boolean().default(!0),repeatGap:u.number().default(80),snap:u.object({enabled:u.boolean().default(!1),granularity:u.enum(["character","word","line"]).default("word"),stopIndex:u.number().default(0),decelEase:u.string().default("cubic.out")}).optional()}),_s=u.object({weight:u.number().min(100).max(1e3).optional(),width:u.number().min(50).max(200).optional(),slant:u.number().min(-25).max(25).optional(),italic:u.number().min(0).max(1).optional(),opticalSize:u.number().min(6).max(144).optional()}),js=u.object({redShiftX:u.number().default(0),redShiftY:u.number().default(0),blueShiftX:u.number().default(0),blueShiftY:u.number().default(0),sliceProbability:u.number().min(0).max(1).default(0),sliceAmplitude:u.number().default(0)}),Us=u.object({signalChannel:u.string(),minFreqHz:u.number().default(60),maxFreqHz:u.number().default(16e3),scaleAxis:u.enum(["scaleY","scaleX","scale","y"]).default("scaleY"),minScale:u.number().default(.2),maxScale:u.number().default(2.5),peakDecay:u.number().min(0).max(.99).default(.8)}),Gs=u.object({angle:u.number().default(45),length:u.number().min(0).default(0),color:u.string().default("#000000"),startOpacity:u.number().min(0).max(1).default(.8),endOpacity:u.number().min(0).max(1).default(0),steps:u.number().int().min(4).max(64).default(16)}),$s=u.object({progress:u.number().min(0).max(1).default(0),dispersalAngle:u.number().default(90),maxDisplacement:u.number().default(120),turbulence:u.number().default(.5),particleSize:u.number().default(2)}),Ws=u.object({x:u.number().optional(),y:u.number().optional(),translateZ:u.number().optional(),scale:u.number().optional(),scaleX:u.number().optional(),scaleY:u.number().optional(),rotation:u.number().optional(),rotationX:u.number().optional(),rotationY:u.number().optional(),rotationZ:u.number().optional(),formation:go.optional(),skew:u.number().optional(),skewAxis:u.number().optional(),tracking:u.number().optional(),lineSpacing:u.number().optional(),lineAnchor:u.number().optional(),anchor:Es.optional(),opacity:u.number().optional(),blur:u.number().optional(),fillColor:u.string().optional(),stroke:Vs.optional(),variableAxes:_s.optional(),chromaticGlitch:js.optional(),longShadow:Gs.optional(),particleDissolve:$s.optional(),audioSpectrum:Us.optional(),spring:zs.optional()}),yo=u.object({name:u.string().default("AdvancedAnimator"),selectors:u.array(u.record(u.string(),u.unknown())).default([]),props:Ws});h();h();var Nr=u.object({x:u.number(),y:u.number()}),Hs=u.object({p0:Nr,p1:Nr,p2:Nr,p3:Nr}),Ys=u.discriminatedUnion("type",[u.object({type:u.literal("svg"),d:u.string().min(1,"SVG path string cannot be empty")}),u.object({type:u.literal("bezier"),segments:u.array(Hs).min(1)}),u.object({type:u.literal("ellipse"),cx:u.number(),cy:u.number(),rx:u.number().positive(),ry:u.number().positive(),startAngleDeg:u.number().default(0),endAngleDeg:u.number().default(360)}),u.object({type:u.literal("wave"),startX:u.number(),startY:u.number(),length:u.number().positive(),amplitude:u.number(),frequency:u.number().positive(),phaseDeg:u.number().default(0)})]),Xt=u.object({path:Ys,firstMargin:u.number().default(0),lastMargin:u.number().default(0),reversePath:u.boolean().default(!1),perpendicularToPath:u.boolean().default(!0),forceAlignment:u.boolean().default(!1),loop:u.boolean().default(!1),baselineOffset:u.enum(["baseline","center","ascender","descender"]).default("baseline"),baselineShift:u.number().default(0)}),Xs=u.enum(["bar","underscore","block","custom"]),qs=u.object({enabled:u.boolean().default(!0),style:Xs.default("bar"),customChar:u.string().default("|"),color:u.string().optional(),blinkFrequency:u.number().min(0).default(2),hideOnComplete:u.boolean().default(!1),width:u.number().positive().default(2.5),spacing:u.number().default(3)}),Zs=u.discriminatedUnion("mode",[u.object({mode:u.literal("constant")}),u.object({mode:u.literal("human"),jitter:u.number().min(0).max(1).default(.35),commaPauseMultiplier:u.number().min(1).default(3),sentencePauseMultiplier:u.number().min(1).default(5.5),paragraphPauseMultiplier:u.number().min(1).default(7)})]),Ks=u.object({enabled:u.boolean().default(!1),charset:u.enum(["ascii","alphanumeric","matrix","binary","hex","custom"]).default("alphanumeric"),customCharset:u.string().optional(),scrambleFramesPerChar:u.number().int().min(1).default(8),highlightProbability:u.number().min(0).max(1).default(.25),scrambleColor:u.string().optional()}),Pn=u.object({granularity:u.enum(["character","word","line"]).default("character"),cursor:qs.default({enabled:!0,style:"bar",customChar:"|",blinkFrequency:2,hideOnComplete:!1,width:2.5,spacing:3}),cadence:Zs.default({mode:"human",jitter:.35,commaPauseMultiplier:3,sentencePauseMultiplier:5.5,paragraphPauseMultiplier:7}),scramble:Ks.default({enabled:!1,charset:"alphanumeric",scrambleFramesPerChar:8,highlightProbability:.25}),soundSync:u.boolean().default(!1)}),Tn=u.enum(["characters","characters_excluding_spaces","words","lines"]),Qs=u.enum(["percentage","index"]),Js=u.enum(["square","ramp_up","ramp_down","triangle","round","smooth"]),Mn=u.enum(["add","subtract","intersect","min","max","difference"]),eu=u.object({type:u.literal("range"),start:u.number().default(0),end:u.number().default(1),offset:u.number().default(0),units:Qs.default("percentage"),basedOn:Tn.default("characters"),shape:Js.default("square"),mode:Mn.default("add"),amount:u.number().min(-1).max(1).default(1),easeHigh:u.number().min(-1).max(1).default(0),easeLow:u.number().min(-1).max(1).default(0),randomizeOrder:u.boolean().default(!1),randomSeed:u.number().int().default(12345)}),tu=u.object({type:u.literal("wiggly"),wigglesPerSecond:u.number().positive().default(2),correlation:u.number().min(0).max(1).default(.5),temporalPhaseDeg:u.number().default(0),spatialPhaseDeg:u.number().default(0),minAmount:u.number().min(-1).max(1).default(-1),maxAmount:u.number().min(-1).max(1).default(1),randomSeed:u.number().int().default(42),basedOn:Tn.default("characters"),mode:Mn.default("intersect")}),ru=u.object({type:u.literal("signal"),signalId:u.string(),multiplier:u.number().default(1),offset:u.number().default(0),phaseSpread:u.number().default(0),basedOn:Tn.default("characters"),mode:Mn.default("add")}),nu=u.discriminatedUnion("type",[eu,tu,ru]),iu=u.object({x:u.number().optional(),y:u.number().optional(),z:u.number().optional(),scale:u.number().optional(),scaleX:u.number().optional(),scaleY:u.number().optional(),rotation:u.number().optional(),rotationX:u.number().optional(),rotationY:u.number().optional(),skew:u.number().optional(),skewAxis:u.number().optional(),tracking:u.number().optional(),lineSpacing:u.number().optional(),opacity:u.number().min(0).max(1).optional(),fillColor:u.string().optional(),strokeColor:u.string().optional(),strokeWidth:u.number().min(0).optional(),blur:u.number().min(0).optional(),characterOffset:u.number().int().optional()}),ou=u.enum(["character","word","line","all"]),au=u.object({grouping:ou.default("character"),anchorX:u.number().default(.5),anchorY:u.number().default(.8)}),qt=u.object({name:u.string().default("Animator"),selectors:u.array(nu).min(1),props:iu,anchor:au.default({grouping:"character",anchorX:.5,anchorY:.8})}),Up=u.object({text:u.string(),fontFamily:u.string().default("Inter"),fontSize:u.number().positive().default(24),fontWeight:u.union([u.number(),u.string()]).default(400),fill:u.string().default("#ffffff"),letterSpacing:u.number().default(0),lineHeight:u.number().positive().default(1.2),textAlign:u.enum(["left","center","right"]).default("left"),pathOptions:Xt.optional(),typewriter:Pn.optional(),animators:u.array(qt).default([])});var xo=class t{options={firstMargin:0,lastMargin:0,reversePath:!1,perpendicularToPath:!0,forceAlignment:!1,loop:!1,baselineOffset:"baseline",baselineShift:0};static fromSvg(e){let r=new t;return r.options.path={type:"svg",d:e},r}static fromBezier(e){let r=new t;return r.options.path={type:"bezier",segments:e},r}static fromCurve(e){return t.fromBezier([e])}static circularBadge(e,r,n){let i=new t;return i.options.path={type:"ellipse",cx:e,cy:r,rx:n,ry:n,startAngleDeg:0,endAngleDeg:360},i.options.loop=!0,i}static ellipse(e,r,n,i,o=0,a=360){let s=new t;return s.options.path={type:"ellipse",cx:e,cy:r,rx:n,ry:i,startAngleDeg:o,endAngleDeg:a},s.options.loop=Math.abs(a-o)>=360,s}static wave(e,r,n,i,o,a=0){let s=new t;return s.options.path={type:"wave",startX:e,startY:r,length:n,amplitude:i,frequency:o,phaseDeg:a},s}firstMargin(e){return this.options.firstMargin=e,this}lastMargin(e){return this.options.lastMargin=e,this}reversePath(e){return this.options.reversePath=e,this}perpendicularToPath(e){return this.options.perpendicularToPath=e,this}forceAlignment(e){return this.options.forceAlignment=e,this}loop(e){return this.options.loop=e,this}baselineOffset(e){return this.options.baselineOffset=e,this}baselineShift(e){return this.options.baselineShift=e,this}build(){return Xt.parse(this.options)}},wo=class t{name="Animator";selectors=[];props={};anchor={grouping:"character",anchorX:.5,anchorY:.8};static create(e){let r=new t;return r.name=e,r}addRangeSelector(e){let r=e.easeHigh??0,n=Math.abs(r)>1?r/100:r,i=e.easeLow??0,o=Math.abs(i)>1?i/100:i;return this.selectors.push({type:"range",start:e.start??0,end:e.end??1,offset:e.offset??0,units:"percentage",basedOn:e.basedOn??"characters",shape:e.shape??"smooth",mode:e.mode??"add",amount:1,easeHigh:Math.max(-1,Math.min(1,n)),easeLow:Math.max(-1,Math.min(1,o)),randomizeOrder:e.randomizeOrder??!1,randomSeed:e.randomSeed??12345}),this}addWigglySelector(e){return this.selectors.push({type:"wiggly",wigglesPerSecond:e.wigglesPerSecond??2,correlation:e.correlation??.5,temporalPhaseDeg:0,spatialPhaseDeg:0,minAmount:e.minAmount??-1,maxAmount:e.maxAmount??1,randomSeed:e.randomSeed??42,basedOn:"characters",mode:e.mode??"intersect"}),this}addSignalSelector(e,r=1,n=0,i=0,o="add"){return this.selectors.push({type:"signal",signalId:e,multiplier:r,offset:i,phaseSpread:n,basedOn:"characters",mode:o}),this}x(e){return this.props.x=e,this}y(e){return this.props.y=e,this}z(e){return this.props.z=e,this}scale(e){return this.props.scale=e,this}scaleX(e){return this.props.scaleX=e,this}scaleY(e){return this.props.scaleY=e,this}rotation(e){return this.props.rotation=e,this}rotationX(e){return this.props.rotationX=e,this}rotationY(e){return this.props.rotationY=e,this}skew(e){return this.props.skew=e,this}skewAxis(e){return this.props.skewAxis=e,this}opacity(e){return this.props.opacity=e,this}blur(e){return this.props.blur=e,this}fill(e){return this.fillColor(e)}fillColor(e){return this.props.fillColor=e,this}strokeColor(e){return this.props.strokeColor=e,this}strokeWidth(e){return this.props.strokeWidth=e,this}tracking(e){return this.props.tracking=e,this}lineSpacing(e){return this.props.lineSpacing=e,this}characterOffset(e){return this.props.characterOffset=e,this}anchorGrouping(e,r=.5,n=.8){return this.anchor={grouping:e,anchorX:r,anchorY:n},this}build(){return qt.parse({name:this.name,selectors:this.selectors,props:this.props,anchor:this.anchor})}};h();h();var su=`
9
9
  struct CameraUniforms {
10
10
  viewMatrix: mat4x4<f32>,
11
11
  projMatrix: mat4x4<f32>,
@@ -134,7 +134,7 @@ fn fs_main(in: VertexOutput) -> @location(0) vec4<f32> {
134
134
 
135
135
  return vec4<f32>(blendedRGB * alpha, alpha);
136
136
  }
137
- `;var go=class{device;pipeline;cameraLayout;modelLayout;glassLayout;backdropLayout;modelPool;glassPool;vertexBuffer;indexBuffer;modelData=new Float32Array(40);glassData=new Float32Array(16);constructor(e,r,n="depth24plus",i){this.device=e,this.modelPool=new xi(160,GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST),this.glassPool=new xi(64,GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST);let o=e.createShaderModule({label:"pbr-glass.wgsl",code:Xs});this.cameraLayout=i??e.createBindGroupLayout({label:"GlassCameraLayout",entries:[{binding:0,visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),this.modelLayout=e.createBindGroupLayout({label:"GlassModelLayout",entries:[{binding:0,visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),this.glassLayout=e.createBindGroupLayout({label:"GlassUniformLayout",entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),this.backdropLayout=e.createBindGroupLayout({label:"GlassBackdropLayout",entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}}]});let a=e.createPipelineLayout({bindGroupLayouts:[this.cameraLayout,this.modelLayout,this.glassLayout,this.backdropLayout]});this.pipeline=e.createRenderPipeline({label:"PBRGlassPipeline",layout:a,vertex:{module:o,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:o,entryPoint:"fs_main",targets:[{format:r,blend:Ja}]},depthStencil:{format:n,depthWriteEnabled:!0,depthCompare:"less-equal"},primitive:{topology:"triangle-list",cullMode:"none"}});let s=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]),l=new Uint16Array([0,1,2,0,2,3]);this.vertexBuffer=e.createBuffer({size:s.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST,mappedAtCreation:!0}),new Float32Array(this.vertexBuffer.getMappedRange()).set(s),this.vertexBuffer.unmap(),this.indexBuffer=e.createBuffer({size:l.byteLength,usage:GPUBufferUsage.INDEX|GPUBufferUsage.COPY_DST,mappedAtCreation:!0}),new Uint16Array(this.indexBuffer.getMappedRange()).set(l),this.indexBuffer.unmap()}resetPools(){this.modelPool.reset(),this.glassPool.reset()}draw(e,r,n,i,o){es(this.modelData,o.modelMatrix,o.normalMatrix,o.colorTint),this.modelData[36]=o.opacity??1,this.modelData[37]=0,this.modelData[38]=1,this.modelData[39]=0;let a=this.modelPool.getBuffer(this.device,this.modelData);this.glassData[0]=o.ior??1.49,this.glassData[1]=o.roughness??.15,this.glassData[2]=o.f0??.04,this.glassData[3]=o.transmission??.92,this.glassData[4]=o.dispersion??.015,this.glassData[5]=o.envIntensity??.65,this.glassData[6]=o.fresnelPower??5,this.glassData[7]=0,this.glassData[8]=o.viewportWidth,this.glassData[9]=o.viewportHeight,this.glassData[10]=0,this.glassData[11]=0;let s=o.tintColor??[1,1,1,1];this.glassData[12]=s[0],this.glassData[13]=s[1],this.glassData[14]=s[2],this.glassData[15]=s[3];let l=this.glassPool.getBuffer(this.device,this.glassData),c=this.device.createBindGroup({layout:this.modelLayout,entries:[{binding:0,resource:{buffer:a}}]}),m=this.device.createBindGroup({layout:this.glassLayout,entries:[{binding:0,resource:{buffer:l}}]}),d=this.device.createBindGroup({layout:this.backdropLayout,entries:[{binding:0,resource:i},{binding:1,resource:n.createView()}]});e.setPipeline(this.pipeline),e.setBindGroup(0,r),e.setBindGroup(1,c),e.setBindGroup(2,m),e.setBindGroup(3,d),e.setVertexBuffer(0,this.vertexBuffer),e.setIndexBuffer(this.indexBuffer,"uint16"),e.drawIndexed(6)}destroy(){this.modelPool.destroy(),this.glassPool.destroy(),this.vertexBuffer.destroy(),this.indexBuffer.destroy()}};h();h();var qs=`
137
+ `;var vo=class{device;pipeline;cameraLayout;modelLayout;glassLayout;backdropLayout;modelPool;glassPool;vertexBuffer;indexBuffer;modelData=new Float32Array(40);glassData=new Float32Array(16);constructor(e,r,n="depth24plus",i){this.device=e,this.modelPool=new ki(160,GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST),this.glassPool=new ki(64,GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST);let o=e.createShaderModule({label:"pbr-glass.wgsl",code:su});this.cameraLayout=i??e.createBindGroupLayout({label:"GlassCameraLayout",entries:[{binding:0,visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),this.modelLayout=e.createBindGroupLayout({label:"GlassModelLayout",entries:[{binding:0,visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),this.glassLayout=e.createBindGroupLayout({label:"GlassUniformLayout",entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),this.backdropLayout=e.createBindGroupLayout({label:"GlassBackdropLayout",entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}}]});let a=e.createPipelineLayout({bindGroupLayouts:[this.cameraLayout,this.modelLayout,this.glassLayout,this.backdropLayout]});this.pipeline=e.createRenderPipeline({label:"PBRGlassPipeline",layout:a,vertex:{module:o,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:o,entryPoint:"fs_main",targets:[{format:r,blend:ds}]},depthStencil:{format:n,depthWriteEnabled:!0,depthCompare:"less-equal"},primitive:{topology:"triangle-list",cullMode:"none"}});let s=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]),l=new Uint16Array([0,1,2,0,2,3]);this.vertexBuffer=e.createBuffer({size:s.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST,mappedAtCreation:!0}),new Float32Array(this.vertexBuffer.getMappedRange()).set(s),this.vertexBuffer.unmap(),this.indexBuffer=e.createBuffer({size:l.byteLength,usage:GPUBufferUsage.INDEX|GPUBufferUsage.COPY_DST,mappedAtCreation:!0}),new Uint16Array(this.indexBuffer.getMappedRange()).set(l),this.indexBuffer.unmap()}resetPools(){this.modelPool.reset(),this.glassPool.reset()}draw(e,r,n,i,o){ms(this.modelData,o.modelMatrix,o.normalMatrix,o.colorTint),this.modelData[36]=o.opacity??1,this.modelData[37]=0,this.modelData[38]=1,this.modelData[39]=0;let a=this.modelPool.getBuffer(this.device,this.modelData);this.glassData[0]=o.ior??1.49,this.glassData[1]=o.roughness??.15,this.glassData[2]=o.f0??.04,this.glassData[3]=o.transmission??.92,this.glassData[4]=o.dispersion??.015,this.glassData[5]=o.envIntensity??.65,this.glassData[6]=o.fresnelPower??5,this.glassData[7]=0,this.glassData[8]=o.viewportWidth,this.glassData[9]=o.viewportHeight,this.glassData[10]=0,this.glassData[11]=0;let s=o.tintColor??[1,1,1,1];this.glassData[12]=s[0],this.glassData[13]=s[1],this.glassData[14]=s[2],this.glassData[15]=s[3];let l=this.glassPool.getBuffer(this.device,this.glassData),c=this.device.createBindGroup({layout:this.modelLayout,entries:[{binding:0,resource:{buffer:a}}]}),m=this.device.createBindGroup({layout:this.glassLayout,entries:[{binding:0,resource:{buffer:l}}]}),d=this.device.createBindGroup({layout:this.backdropLayout,entries:[{binding:0,resource:i},{binding:1,resource:n.createView()}]});e.setPipeline(this.pipeline),e.setBindGroup(0,r),e.setBindGroup(1,c),e.setBindGroup(2,m),e.setBindGroup(3,d),e.setVertexBuffer(0,this.vertexBuffer),e.setIndexBuffer(this.indexBuffer,"uint16"),e.drawIndexed(6)}destroy(){this.modelPool.destroy(),this.glassPool.destroy(),this.vertexBuffer.destroy(),this.indexBuffer.destroy()}};h();h();var uu=`
138
138
  struct MotionBlurUniforms {
139
139
  shutterFraction: f32, // shutterAngle / 360.0
140
140
  sampleCount: u32, // e.g. 16
@@ -238,7 +238,7 @@ fn fs(@builtin(position) pos: vec4<f32>) -> @location(0) vec4<f32> {
238
238
  fn fs_motion_blur(@builtin(position) pos: vec4<f32>) -> @location(0) vec4<f32> {
239
239
  return executeMotionBlur(pos);
240
240
  }
241
- `;var bo=class{device;pipeline;bindGroupLayout;uniformBuffer;sampler;constructor(e){this.device=e;let r=e.createShaderModule({label:"motion-blur-shader",code:qs});this.bindGroupLayout=e.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=e.createPipelineLayout({label:"motion-blur-layout",bindGroupLayouts:[this.bindGroupLayout]});this.pipeline=e.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=e.createBuffer({label:"motion-blur-uniforms",size:32,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),this.sampler=e.createSampler({label:"motion-blur-sampler",magFilter:"linear",minFilter:"linear"})}render(e,r,n,i,o,a){let s=(a.shutterAngle??180)/360,l=a.sampleCount??16,c=a.maxVelocity??64,m=a.depthThreshold??.05,d=a.curveType==="box"?0:a.curveType==="triangle"?2:1,p=new ArrayBuffer(32),f=new Float32Array(p),b=new Uint32Array(p);f[0]=s,b[1]=l,f[2]=c,b[3]=16,f[4]=a.width,f[5]=a.height,f[6]=m,b[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}}]}),y=e.beginRenderPass({label:"motion-blur-pass",colorAttachments:[{view:o,loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});y.setPipeline(this.pipeline),y.setBindGroup(0,g),y.draw(4),y.end()}destroy(){this.uniformBuffer.destroy()}};h();var yo=class{shadowDepthTexture;shadowDepthView;shadowComparisonSampler;lightViewProjMatrix;constructor(e,r=2048){this.lightViewProjMatrix=at.identity(),this.shadowDepthTexture=e.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=e.createSampler({label:"shadow-pcf-sampler",compare:"less-equal",magFilter:"linear",minFilter:"linear"})}computeDirectionalLightMatrix(e,r,n=2e3,i=10,o=4e3){let a=at.lookAt(e,r,[0,1,0]),s=n*.5,l=at.orthographic(-s,s,-s,s,i,o);return this.lightViewProjMatrix=at.multiply(l,a),this.lightViewProjMatrix}destroy(){this.shadowDepthTexture.destroy()}};h();h();var Zs=`
241
+ `;var So=class{device;pipeline;bindGroupLayout;uniformBuffer;sampler;constructor(e){this.device=e;let r=e.createShaderModule({label:"motion-blur-shader",code:uu});this.bindGroupLayout=e.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=e.createPipelineLayout({label:"motion-blur-layout",bindGroupLayouts:[this.bindGroupLayout]});this.pipeline=e.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=e.createBuffer({label:"motion-blur-uniforms",size:32,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),this.sampler=e.createSampler({label:"motion-blur-sampler",magFilter:"linear",minFilter:"linear"})}render(e,r,n,i,o,a){let s=(a.shutterAngle??180)/360,l=a.sampleCount??16,c=a.maxVelocity??64,m=a.depthThreshold??.05,d=a.curveType==="box"?0:a.curveType==="triangle"?2:1,p=new ArrayBuffer(32),f=new Float32Array(p),b=new Uint32Array(p);f[0]=s,b[1]=l,f[2]=c,b[3]=16,f[4]=a.width,f[5]=a.height,f[6]=m,b[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}}]}),y=e.beginRenderPass({label:"motion-blur-pass",colorAttachments:[{view:o,loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});y.setPipeline(this.pipeline),y.setBindGroup(0,g),y.draw(4),y.end()}destroy(){this.uniformBuffer.destroy()}};h();var ko=class{shadowDepthTexture;shadowDepthView;shadowComparisonSampler;lightViewProjMatrix;constructor(e,r=2048){this.lightViewProjMatrix=lt.identity(),this.shadowDepthTexture=e.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=e.createSampler({label:"shadow-pcf-sampler",compare:"less-equal",magFilter:"linear",minFilter:"linear"})}computeDirectionalLightMatrix(e,r,n=2e3,i=10,o=4e3){let a=lt.lookAt(e,r,[0,1,0]),s=n*.5,l=lt.orthographic(-s,s,-s,s,i,o);return this.lightViewProjMatrix=lt.multiply(l,a),this.lightViewProjMatrix}destroy(){this.shadowDepthTexture.destroy()}};h();h();var lu=`
242
242
  struct SSAOUniforms {
243
243
  projMatrix: mat4x4<f32>,
244
244
  invProjMatrix: mat4x4<f32>,
@@ -324,7 +324,7 @@ fn fs_ssao(@builtin(position) pos: vec4<f32>) -> @location(0) f32 {
324
324
  let ao = 1.0 - (occlusion / f32(max(count, 1u))) * u.intensity;
325
325
  return clamp(ao, 0.0, 1.0);
326
326
  }
327
- `,Ks=`
327
+ `,cu=`
328
328
  struct BlurUniforms {
329
329
  viewportWidth: f32,
330
330
  viewportHeight: f32,
@@ -384,7 +384,7 @@ fn fs_blur(@builtin(position) pos: vec4<f32>) -> @location(0) f32 {
384
384
  }
385
385
  return result / totalWeight;
386
386
  }
387
- `;var xo=class{device;ssaoPipeline;blurPipeline;ssaoBindGroupLayout;blurBindGroupLayout;ssaoUniformBuffer;blurUniformBuffer;kernelBuffer;noiseTexture;sampler;constructor(e){this.device=e,this.noiseTexture=e.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 a=0;a<16;a++)r[a*4+0]=Math.floor(Math.random()*255),r[a*4+1]=Math.floor(Math.random()*255),r[a*4+2]=128,r[a*4+3]=255;e.queue.writeTexture({texture:this.noiseTexture},r,{bytesPerRow:16},[4,4,1]);let n=new Float32Array(128);for(let a=0;a<32;a++){let s=Math.random(),l=Math.random(),c=Math.acos(Math.sqrt(1-s)),m=2*Math.PI*l,d=(a+1)/32;d=.1+.9*(d*d),n[a*4+0]=Math.sin(c)*Math.cos(m)*d,n[a*4+1]=Math.sin(c)*Math.sin(m)*d,n[a*4+2]=Math.cos(c)*d,n[a*4+3]=0}this.kernelBuffer=e.createBuffer({label:"ssao-kernel-buffer",size:n.byteLength,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST}),e.queue.writeBuffer(this.kernelBuffer,0,n);let i=e.createShaderModule({label:"ssao-shader",code:Zs});this.ssaoBindGroupLayout=e.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=e.createRenderPipeline({label:"ssao-eval-pipeline",layout:e.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=e.createBuffer({label:"ssao-uniforms",size:256,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST});let o=e.createShaderModule({label:"ssao-blur-shader",code:Ks});this.blurBindGroupLayout=e.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=e.createRenderPipeline({label:"ssao-blur-pipeline",layout:e.createPipelineLayout({bindGroupLayouts:[this.blurBindGroupLayout]}),vertex:{module:o,entryPoint:"vs_main"},fragment:{module:o,entryPoint:"fs_blur",targets:[{format:"r8unorm"}]},primitive:{topology:"triangle-strip"}}),this.blurUniformBuffer=e.createBuffer({label:"ssao-blur-uniforms",size:32,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),this.sampler=e.createSampler({label:"ssao-sampler",magFilter:"linear",minFilter:"linear",addressModeU:"repeat",addressModeV:"repeat"})}render(e,r,n,i,o,a){let s=a.invProjMatrix??at.invert(a.projMatrix)??at.identity(),l=new Float32Array(64);l.set(a.projMatrix,0),l.set(s,16),l.set(a.viewMatrix,32),l[48]=a.radius??45,l[49]=a.bias??.025,l[50]=a.intensity??1.5,new Uint32Array(l.buffer)[51]=a.kernelSamples??16,l[52]=a.width,l[53]=a.height,this.device.queue.writeBuffer(this.ssaoUniformBuffer,0,l);let c=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=e.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,c),m.draw(4),m.end();let d=new ArrayBuffer(32),p=new Float32Array(d),f=new Int32Array(d);p[0]=a.width,p[1]=a.height,f[2]=a.blurRadius??4,p[3]=a.depthThreshold??.05,this.device.queue.writeBuffer(this.blurUniformBuffer,0,d);let b=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=e.beginRenderPass({label:"ssao-blur-pass",colorAttachments:[{view:o,loadOp:"clear",storeOp:"store",clearValue:{r:1,g:1,b:1,a:1}}]});g.setPipeline(this.blurPipeline),g.setBindGroup(0,b),g.draw(4),g.end()}destroy(){this.ssaoUniformBuffer.destroy(),this.blurUniformBuffer.destroy(),this.noiseTexture.destroy()}};h();var Ex=t=>{if(!t)return"srcOver";switch(t){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"}},Ix=t=>t==="destination-in"||t==="source-in";h();function Ux(t,e,r,n,i="outside"){if(i==="inside"){let o=n/2;return{x:o,y:o,width:Math.max(0,t-n),height:Math.max(0,e-n),radius:r===0?0:Math.max(0,r-o)}}if(i==="outside"){let o=n/2;return{x:-o,y:-o,width:t+n,height:e+n,radius:r===0?0:r+o}}return{x:0,y:0,width:t,height:e,radius:r}}h();var Qs=new Map;function Q(t){let e=(Qs.get(t)??0)+1;return Qs.set(t,e),`${t}-auto-${e}`}h();function dp(t,...e){let r=[];for(let n=0;n<t.length;n++){let i=t[n];if(i&&r.push({text:i}),n<e.length){let o=e[n];if(o==null)continue;if(Array.isArray(o))for(let a of o)typeof a=="string"?a&&r.push({text:a}):a&&typeof a=="object"&&"text"in a&&r.push(a);else typeof o=="object"&&"text"in o?r.push(o):typeof o=="object"&&"get"in o&&typeof o.get=="function"?r.push({text:o}):r.push({text:String(o)})}}return r}function mp(t,e={}){return{text:t,...e}}function pp(t,e={}){return{text:t,fontWeight:e.fontWeight??700,...e}}function fp(t,e={}){return{text:t,fontStyle:"italic",...e}}function hp(t,e={}){return{text:t,fill:e.fill??"#6366f1",...e}}function gp(t,e,r={}){return{text:t,fill:e,...r}}function bp(t,e,r={}){return{text:t,fontSize:e,...r}}function yp(t,e={}){let{bg:r,fill:n,radius:i,paddingX:o,paddingY:a,...s}=e;return{text:t,fill:n,mark:{background:r??"#6366f133",borderRadius:i??4,paddingX:o??6,paddingY:a??2},...s}}function xp(t,e={}){return{text:t,baselineShift:e.baselineShift??-8,...e}}function vp(t,e={}){return{text:t,baselineShift:e.baselineShift??6,...e}}function wp(t,e={}){return{text:t,fontFamily:e.fontFamily??"JetBrains Mono",mark:e.mark??{background:"#ffffff18",borderRadius:4,paddingX:6,paddingY:2},...e}}function Pn(t){if(typeof t=="string")return{text:t};if(!Array.isArray(t))return{text:String(t)};let e=[],r="";for(let n of t)if(typeof n=="string")n&&(e.push({text:n}),r+=n);else if(n&&typeof n=="object"&&"text"in n){let i=n;e.push(i);let o=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+=o}return{text:r,spans:e.length>0?e:void 0}}function Sp(t){if(!t||!t.includes("<"))return[{text:t}];let e=[],r=/<(\/?[a-zA-Z0-9_-]+)([^>]*)>/g,n=0,i=[],o=()=>{let s={};for(let l of i)Object.assign(s,l.style);return s};for(;;){let s=r.exec(t);if(!s)break;let l=t.slice(n,s.index);l&&e.push({text:l,...o()}),n=s.index+s[0].length;let c=s[1].toLowerCase(),m=s[2];if(c.startsWith("/")){let d=c.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 b=p.exec(m);if(!b)break;d[b[1].toLowerCase()]=b[2]}let f={};if(c==="b"||c==="strong")f.fontWeight=700,(d.color||d.fill)&&(f.fill=d.color??d.fill);else if(c==="i"||c==="em")f.fontStyle="italic",(d.color||d.fill)&&(f.fill=d.color??d.fill);else if(c==="accent")f.fill="#6366f1";else if(c==="color")f.fill=d.value??d.hex??d.fill;else if(c==="size"){let b=parseFloat(d.value??d.px??d.pt??"0");b>0&&(f.fontSize=b)}else if(c==="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(c==="sup")f.baselineShift=-8;else if(c==="sub")f.baselineShift=6;else if(c==="code")f.fontFamily="JetBrains Mono",f.mark={background:d.bg??"#ffffff18",borderRadius:4,paddingX:6,paddingY:2};else if(c==="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 b=parseInt(d.fontweight,10);f.fontWeight=Number.isNaN(b)?d.fontweight:b}(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:c,style:f})}}let a=t.slice(n);return a&&e.push({text:a,...o()}),e}h();var Dr=class{textures=new Map;set(e,r){this.textures.set(e,r)}get(e){return this.textures.get(e)}has(e){return this.textures.has(e)}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(e,r){let n=this.textures.get(e);if(!n)throw new Error(`[ControlNetMultiplexer] Cannot create bind group entry: conditioning texture "${e}" is not registered in VRAM.`);return{binding:r,resource:n.createView({label:`controlnet_${e}_view`})}}exportTensorView(e){let r=this.textures.get(e);if(!r)throw new Error(`[ControlNetMultiplexer] Conditioning tensor "${e}" not found in multiplexer.`);return{texture:r,width:r.width,height:r.height,format:r.format}}async readPixelsAsync(e,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,o=n.height,a=n.format,s=4;a==="rgba16float"||a==="rg32float"?s=8:a==="r32float"?s=4:a==="rgba32float"&&(s=16);let l=i*s,c=Math.ceil(l/256)*256,m=c*o,d=e.createBuffer({size:m,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ,label:`controlnet_readback_staging_${r}`}),p=e.createCommandEncoder({label:`readback_encoder_${r}`});p.copyTextureToBuffer({texture:n},{buffer:d,bytesPerRow:c,rowsPerImage:o},[i,o,1]),e.queue.submit([p.finish()]),await d.mapAsync(GPUMapMode.READ);let f=d.getMappedRange(),b=new Uint8Array(i*o*s),g=new Uint8Array(f);if(c===l)b.set(g.subarray(0,i*o*s));else for(let y=0;y<o;y++){let k=y*c,A=y*l;b.set(g.subarray(k,k+l),A)}return d.unmap(),d.destroy(),{width:i,height:o,format:a,data:b}}destroy(){for(let e of this.textures.values())try{e.destroy()}catch{}this.textures.clear()}};h();h();h();var Js=`
387
+ `;var Po=class{device;ssaoPipeline;blurPipeline;ssaoBindGroupLayout;blurBindGroupLayout;ssaoUniformBuffer;blurUniformBuffer;kernelBuffer;noiseTexture;sampler;constructor(e){this.device=e,this.noiseTexture=e.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 a=0;a<16;a++)r[a*4+0]=Math.floor(Math.random()*255),r[a*4+1]=Math.floor(Math.random()*255),r[a*4+2]=128,r[a*4+3]=255;e.queue.writeTexture({texture:this.noiseTexture},r,{bytesPerRow:16},[4,4,1]);let n=new Float32Array(128);for(let a=0;a<32;a++){let s=Math.random(),l=Math.random(),c=Math.acos(Math.sqrt(1-s)),m=2*Math.PI*l,d=(a+1)/32;d=.1+.9*(d*d),n[a*4+0]=Math.sin(c)*Math.cos(m)*d,n[a*4+1]=Math.sin(c)*Math.sin(m)*d,n[a*4+2]=Math.cos(c)*d,n[a*4+3]=0}this.kernelBuffer=e.createBuffer({label:"ssao-kernel-buffer",size:n.byteLength,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST}),e.queue.writeBuffer(this.kernelBuffer,0,n);let i=e.createShaderModule({label:"ssao-shader",code:lu});this.ssaoBindGroupLayout=e.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=e.createRenderPipeline({label:"ssao-eval-pipeline",layout:e.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=e.createBuffer({label:"ssao-uniforms",size:256,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST});let o=e.createShaderModule({label:"ssao-blur-shader",code:cu});this.blurBindGroupLayout=e.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=e.createRenderPipeline({label:"ssao-blur-pipeline",layout:e.createPipelineLayout({bindGroupLayouts:[this.blurBindGroupLayout]}),vertex:{module:o,entryPoint:"vs_main"},fragment:{module:o,entryPoint:"fs_blur",targets:[{format:"r8unorm"}]},primitive:{topology:"triangle-strip"}}),this.blurUniformBuffer=e.createBuffer({label:"ssao-blur-uniforms",size:32,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),this.sampler=e.createSampler({label:"ssao-sampler",magFilter:"linear",minFilter:"linear",addressModeU:"repeat",addressModeV:"repeat"})}render(e,r,n,i,o,a){let s=a.invProjMatrix??lt.invert(a.projMatrix)??lt.identity(),l=new Float32Array(64);l.set(a.projMatrix,0),l.set(s,16),l.set(a.viewMatrix,32),l[48]=a.radius??45,l[49]=a.bias??.025,l[50]=a.intensity??1.5,new Uint32Array(l.buffer)[51]=a.kernelSamples??16,l[52]=a.width,l[53]=a.height,this.device.queue.writeBuffer(this.ssaoUniformBuffer,0,l);let c=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=e.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,c),m.draw(4),m.end();let d=new ArrayBuffer(32),p=new Float32Array(d),f=new Int32Array(d);p[0]=a.width,p[1]=a.height,f[2]=a.blurRadius??4,p[3]=a.depthThreshold??.05,this.device.queue.writeBuffer(this.blurUniformBuffer,0,d);let b=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=e.beginRenderPass({label:"ssao-blur-pass",colorAttachments:[{view:o,loadOp:"clear",storeOp:"store",clearValue:{r:1,g:1,b:1,a:1}}]});g.setPipeline(this.blurPipeline),g.setBindGroup(0,b),g.draw(4),g.end()}destroy(){this.ssaoUniformBuffer.destroy(),this.blurUniformBuffer.destroy(),this.noiseTexture.destroy()}};h();var qw=t=>{if(!t)return"srcOver";switch(t){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"}},Zw=t=>t==="destination-in"||t==="source-in";h();function Jw(t,e,r,n,i="outside"){if(i==="inside"){let o=n/2;return{x:o,y:o,width:Math.max(0,t-n),height:Math.max(0,e-n),radius:r===0?0:Math.max(0,r-o)}}if(i==="outside"){let o=n/2;return{x:-o,y:-o,width:t+n,height:e+n,radius:r===0?0:r+o}}return{x:0,y:0,width:t,height:e,radius:r}}h();var du=new Map;function Q(t){let e=(du.get(t)??0)+1;return du.set(t,e),`${t}-auto-${e}`}h();function Gp(t,...e){let r=[];for(let n=0;n<t.length;n++){let i=t[n];if(i&&r.push({text:i}),n<e.length){let o=e[n];if(o==null)continue;if(Array.isArray(o))for(let a of o)typeof a=="string"?a&&r.push({text:a}):a&&typeof a=="object"&&"text"in a&&r.push(a);else typeof o=="object"&&"text"in o?r.push(o):typeof o=="object"&&"get"in o&&typeof o.get=="function"?r.push({text:o}):r.push({text:String(o)})}}return r}function $p(t,e={}){return{text:t,...e}}function Wp(t,e={}){return{text:t,fontWeight:e.fontWeight??700,...e}}function Hp(t,e={}){return{text:t,fontStyle:"italic",...e}}function Yp(t,e={}){return{text:t,fill:e.fill??"#6366f1",...e}}function Xp(t,e,r={}){return{text:t,fill:e,...r}}function qp(t,e,r={}){return{text:t,fontSize:e,...r}}function Zp(t,e={}){let{bg:r,fill:n,radius:i,paddingX:o,paddingY:a,...s}=e;return{text:t,fill:n,mark:{background:r??"#6366f133",borderRadius:i??4,paddingX:o??6,paddingY:a??2},...s}}function Kp(t,e={}){return{text:t,baselineShift:e.baselineShift??-8,...e}}function Qp(t,e={}){return{text:t,baselineShift:e.baselineShift??6,...e}}function Jp(t,e={}){return{text:t,fontFamily:e.fontFamily??"JetBrains Mono",mark:e.mark??{background:"#ffffff18",borderRadius:4,paddingX:6,paddingY:2},...e}}function Cn(t){if(typeof t=="string")return{text:t};if(!Array.isArray(t))return{text:String(t)};let e=[],r="";for(let n of t)if(typeof n=="string")n&&(e.push({text:n}),r+=n);else if(n&&typeof n=="object"&&"text"in n){let i=n;e.push(i);let o=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+=o}return{text:r,spans:e.length>0?e:void 0}}function ef(t){if(!t||!t.includes("<"))return[{text:t}];let e=[],r=/<(\/?[a-zA-Z0-9_-]+)([^>]*)>/g,n=0,i=[],o=()=>{let s={};for(let l of i)Object.assign(s,l.style);return s};for(;;){let s=r.exec(t);if(!s)break;let l=t.slice(n,s.index);l&&e.push({text:l,...o()}),n=s.index+s[0].length;let c=s[1].toLowerCase(),m=s[2];if(c.startsWith("/")){let d=c.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 b=p.exec(m);if(!b)break;d[b[1].toLowerCase()]=b[2]}let f={};if(c==="b"||c==="strong")f.fontWeight=700,(d.color||d.fill)&&(f.fill=d.color??d.fill);else if(c==="i"||c==="em")f.fontStyle="italic",(d.color||d.fill)&&(f.fill=d.color??d.fill);else if(c==="accent")f.fill="#6366f1";else if(c==="color")f.fill=d.value??d.hex??d.fill;else if(c==="size"){let b=parseFloat(d.value??d.px??d.pt??"0");b>0&&(f.fontSize=b)}else if(c==="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(c==="sup")f.baselineShift=-8;else if(c==="sub")f.baselineShift=6;else if(c==="code")f.fontFamily="JetBrains Mono",f.mark={background:d.bg??"#ffffff18",borderRadius:4,paddingX:6,paddingY:2};else if(c==="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 b=parseInt(d.fontweight,10);f.fontWeight=Number.isNaN(b)?d.fontweight:b}(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:c,style:f})}}let a=t.slice(n);return a&&e.push({text:a,...o()}),e}h();var Or=class{textures=new Map;set(e,r){this.textures.set(e,r)}get(e){return this.textures.get(e)}has(e){return this.textures.has(e)}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(e,r){let n=this.textures.get(e);if(!n)throw new Error(`[ControlNetMultiplexer] Cannot create bind group entry: conditioning texture "${e}" is not registered in VRAM.`);return{binding:r,resource:n.createView({label:`controlnet_${e}_view`})}}exportTensorView(e){let r=this.textures.get(e);if(!r)throw new Error(`[ControlNetMultiplexer] Conditioning tensor "${e}" not found in multiplexer.`);return{texture:r,width:r.width,height:r.height,format:r.format}}async readPixelsAsync(e,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,o=n.height,a=n.format,s=4;a==="rgba16float"||a==="rg32float"?s=8:a==="r32float"?s=4:a==="rgba32float"&&(s=16);let l=i*s,c=Math.ceil(l/256)*256,m=c*o,d=e.createBuffer({size:m,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ,label:`controlnet_readback_staging_${r}`}),p=e.createCommandEncoder({label:`readback_encoder_${r}`});p.copyTextureToBuffer({texture:n},{buffer:d,bytesPerRow:c,rowsPerImage:o},[i,o,1]),e.queue.submit([p.finish()]),await d.mapAsync(GPUMapMode.READ);let f=d.getMappedRange(),b=new Uint8Array(i*o*s),g=new Uint8Array(f);if(c===l)b.set(g.subarray(0,i*o*s));else for(let y=0;y<o;y++){let S=y*c,A=y*l;b.set(g.subarray(S,S+l),A)}return d.unmap(),d.destroy(),{width:i,height:o,format:a,data:b}}destroy(){for(let e of this.textures.values())try{e.destroy()}catch{}this.textures.clear()}};h();h();h();var mu=`
388
388
  struct CannyParams {
389
389
  lowThreshold: f32,
390
390
  highThreshold: f32,
@@ -440,7 +440,7 @@ fn computeSobel(@builtin(global_invocation_id) id: vec3<u32>) {
440
440
 
441
441
  textureStore(magnitudeTex, id.xy, vec4<f32>(mag, sector, 0.0, 1.0));
442
442
  }
443
- `,eu=`
443
+ `,pu=`
444
444
  struct CannyParams {
445
445
  lowThreshold: f32,
446
446
  highThreshold: f32,
@@ -498,7 +498,7 @@ fn computeNonMaxSuppression(@builtin(global_invocation_id) id: vec3<u32>) {
498
498
 
499
499
  textureStore(edgeTex, id.xy, vec4<f32>(edge, edge, edge, 1.0));
500
500
  }
501
- `,tu=`
501
+ `,fu=`
502
502
  struct CannyParams {
503
503
  lowThreshold: f32,
504
504
  highThreshold: f32,
@@ -556,7 +556,7 @@ fn computeNonMaxSuppression(@builtin(global_invocation_id) id: vec3<u32>) {
556
556
 
557
557
  textureStore(edgeTex, id.xy, vec4<f32>(edge, 0.0, 0.0, 1.0));
558
558
  }
559
- `;var Or=class{constructor(e){this.device=e;let r=e.createShaderModule({label:"canny_sobel.wgsl",code:Js});this.sobelPipeline=e.createComputePipeline({label:"CannySobelPipeline",layout:"auto",compute:{module:r,entryPoint:"computeSobel"}});let n=e.createShaderModule({label:"canny_nms_rgba8.wgsl",code:eu});this.nmsRgba8Pipeline=e.createComputePipeline({label:"CannyNmsRgba8Pipeline",layout:"auto",compute:{module:n,entryPoint:"computeNonMaxSuppression"}});let i=e.createShaderModule({label:"canny_nms_r32f.wgsl",code:tu});this.nmsR32fPipeline=e.createComputePipeline({label:"CannyNmsR32fPipeline",layout:"auto",compute:{module:i,entryPoint:"computeNonMaxSuppression"}}),this.uniformBuffer=e.createBuffer({size:16,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST,label:"canny_uniform_buffer"})}device;sobelPipeline;nmsRgba8Pipeline;nmsR32fPipeline;uniformBuffer;cachedIntermediateTexture;cachedOutputTexture;execute(e,r={}){let n=e.width,i=e.height,o=r.low??.1,a=r.high??.3,s=r.outputFormat??"rgba8unorm",l=new ArrayBuffer(16),c=new Float32Array(l),m=new Uint32Array(l);c[0]=o,c[1]=a,m[2]=n,m[3]=i,this.device.queue.writeBuffer(this.uniformBuffer,0,l),(!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!==s)&&(this.cachedOutputTexture?.destroy(),this.cachedOutputTexture=this.device.createTexture({label:`canny_edge_output_${s}`,size:[n,i],format:s,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:e.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 b=s==="r32float"?this.nmsR32fPipeline:this.nmsRgba8Pipeline,g=this.device.createBindGroup({layout:b.getBindGroupLayout(0),entries:[{binding:0,resource:this.cachedIntermediateTexture.createView()},{binding:1,resource:this.cachedOutputTexture.createView()},{binding:2,resource:{buffer:this.uniformBuffer}}]}),y=d.beginComputePass({label:"canny_nms_pass"});return y.setPipeline(b),y.setBindGroup(0,g),y.dispatchWorkgroups(Math.ceil(n/16),Math.ceil(i/16)),y.end(),this.device.queue.submit([d.finish()]),this.cachedOutputTexture}destroy(){this.cachedIntermediateTexture?.destroy(),this.cachedOutputTexture?.destroy(),this.uniformBuffer.destroy()}};h();h();var ru=`
559
+ `;var Rr=class{constructor(e){this.device=e;let r=e.createShaderModule({label:"canny_sobel.wgsl",code:mu});this.sobelPipeline=e.createComputePipeline({label:"CannySobelPipeline",layout:"auto",compute:{module:r,entryPoint:"computeSobel"}});let n=e.createShaderModule({label:"canny_nms_rgba8.wgsl",code:pu});this.nmsRgba8Pipeline=e.createComputePipeline({label:"CannyNmsRgba8Pipeline",layout:"auto",compute:{module:n,entryPoint:"computeNonMaxSuppression"}});let i=e.createShaderModule({label:"canny_nms_r32f.wgsl",code:fu});this.nmsR32fPipeline=e.createComputePipeline({label:"CannyNmsR32fPipeline",layout:"auto",compute:{module:i,entryPoint:"computeNonMaxSuppression"}}),this.uniformBuffer=e.createBuffer({size:16,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST,label:"canny_uniform_buffer"})}device;sobelPipeline;nmsRgba8Pipeline;nmsR32fPipeline;uniformBuffer;cachedIntermediateTexture;cachedOutputTexture;execute(e,r={}){let n=e.width,i=e.height,o=r.low??.1,a=r.high??.3,s=r.outputFormat??"rgba8unorm",l=new ArrayBuffer(16),c=new Float32Array(l),m=new Uint32Array(l);c[0]=o,c[1]=a,m[2]=n,m[3]=i,this.device.queue.writeBuffer(this.uniformBuffer,0,l),(!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!==s)&&(this.cachedOutputTexture?.destroy(),this.cachedOutputTexture=this.device.createTexture({label:`canny_edge_output_${s}`,size:[n,i],format:s,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:e.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 b=s==="r32float"?this.nmsR32fPipeline:this.nmsRgba8Pipeline,g=this.device.createBindGroup({layout:b.getBindGroupLayout(0),entries:[{binding:0,resource:this.cachedIntermediateTexture.createView()},{binding:1,resource:this.cachedOutputTexture.createView()},{binding:2,resource:{buffer:this.uniformBuffer}}]}),y=d.beginComputePass({label:"canny_nms_pass"});return y.setPipeline(b),y.setBindGroup(0,g),y.dispatchWorkgroups(Math.ceil(n/16),Math.ceil(i/16)),y.end(),this.device.queue.submit([d.finish()]),this.cachedOutputTexture}destroy(){this.cachedIntermediateTexture?.destroy(),this.cachedOutputTexture?.destroy(),this.uniformBuffer.destroy()}};h();h();var hu=`
560
560
  struct DepthNormalParams {
561
561
  width: u32,
562
562
  height: u32,
@@ -589,7 +589,7 @@ fn computeNormals(@builtin(global_invocation_id) id: vec3<u32>) {
589
589
  let packedColor = vec4<f32>(normal * 0.5 + 0.5, 1.0);
590
590
  textureStore(normalTex, id.xy, packedColor);
591
591
  }
592
- `,nu=`
592
+ `,gu=`
593
593
  struct DepthNormalParams {
594
594
  width: u32,
595
595
  height: u32,
@@ -622,7 +622,7 @@ fn computeNormals(@builtin(global_invocation_id) id: vec3<u32>) {
622
622
  let packedColor = vec4<f32>(normal * 0.5 + 0.5, 1.0);
623
623
  textureStore(normalTex, id.xy, packedColor);
624
624
  }
625
- `;var Nr=class{constructor(e){this.device=e;let r=e.createShaderModule({label:"depth_normals_rgba16f.wgsl",code:ru});this.normalRgba16fPipeline=e.createComputePipeline({label:"DepthNormalsRgba16fPipeline",layout:"auto",compute:{module:r,entryPoint:"computeNormals"}});let n=e.createShaderModule({label:"depth_normals_rgba8.wgsl",code:nu});this.normalRgba8Pipeline=e.createComputePipeline({label:"DepthNormalsRgba8Pipeline",layout:"auto",compute:{module:n,entryPoint:"computeNormals"}}),this.uniformBuffer=e.createBuffer({size:16,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST,label:"depth_normals_uniform_buffer"})}device;normalRgba16fPipeline;normalRgba8Pipeline;uniformBuffer;cachedOutputTexture;execute(e,r={}){let n=e.width,i=e.height,o=r.depthScale??1,a=r.outputFormat??"rgba16float",s=new ArrayBuffer(16),l=new Uint32Array(s),c=new Float32Array(s);l[0]=n,l[1]=i,c[2]=o,c[3]=0,this.device.queue.writeBuffer(this.uniformBuffer,0,s),(!this.cachedOutputTexture||this.cachedOutputTexture.width!==n||this.cachedOutputTexture.height!==i||this.cachedOutputTexture.format!==a)&&(this.cachedOutputTexture?.destroy(),this.cachedOutputTexture=this.device.createTexture({label:`normal_output_${a}`,size:[n,i],format:a,usage:GPUTextureUsage.STORAGE_BINDING|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC}));let m=a==="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:e.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 iu=`
625
+ `;var Fr=class{constructor(e){this.device=e;let r=e.createShaderModule({label:"depth_normals_rgba16f.wgsl",code:hu});this.normalRgba16fPipeline=e.createComputePipeline({label:"DepthNormalsRgba16fPipeline",layout:"auto",compute:{module:r,entryPoint:"computeNormals"}});let n=e.createShaderModule({label:"depth_normals_rgba8.wgsl",code:gu});this.normalRgba8Pipeline=e.createComputePipeline({label:"DepthNormalsRgba8Pipeline",layout:"auto",compute:{module:n,entryPoint:"computeNormals"}}),this.uniformBuffer=e.createBuffer({size:16,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST,label:"depth_normals_uniform_buffer"})}device;normalRgba16fPipeline;normalRgba8Pipeline;uniformBuffer;cachedOutputTexture;execute(e,r={}){let n=e.width,i=e.height,o=r.depthScale??1,a=r.outputFormat??"rgba16float",s=new ArrayBuffer(16),l=new Uint32Array(s),c=new Float32Array(s);l[0]=n,l[1]=i,c[2]=o,c[3]=0,this.device.queue.writeBuffer(this.uniformBuffer,0,s),(!this.cachedOutputTexture||this.cachedOutputTexture.width!==n||this.cachedOutputTexture.height!==i||this.cachedOutputTexture.format!==a)&&(this.cachedOutputTexture?.destroy(),this.cachedOutputTexture=this.device.createTexture({label:`normal_output_${a}`,size:[n,i],format:a,usage:GPUTextureUsage.STORAGE_BINDING|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC}));let m=a==="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:e.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 bu=`
626
626
  struct FaceSegment {
627
627
  start: vec2<f32>,
628
628
  end: vec2<f32>,
@@ -679,7 +679,7 @@ fn computeFaceLandmarks(@builtin(global_invocation_id) id: vec3<u32>) {
679
679
 
680
680
  textureStore(outputTex, id.xy, outColor);
681
681
  }
682
- `;function Je(t,e){let r=[];for(let n=0;n<t.length-1;n++)r.push({from:t[n],to:t[n+1],color:e});return r}var Rr=[...Je([70,63,105,66,107],[0,1,1,1]),...Je([300,293,334,296,336],[0,1,1,1]),...Je([33,160,158,133,153,144,33],[0,1,0,1]),...Je([263,387,385,362,380,373,263],[0,1,0,1]),...Je([168,6,197,195,4],[1,1,0,1]),...Je([98,97,2,326,327],[1,1,0,1]),...Je([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]),...Je([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]),...Je([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])],Mn=class{constructor(e){this.device=e;let r=e.createShaderModule({label:"face_landmarks.wgsl",code:iu});this.computePipeline=e.createComputePipeline({label:"FaceLandmarksComputePipeline",layout:"auto",compute:{module:r,entryPoint:"computeFaceLandmarks"}}),this.uniformBuffer=e.createBuffer({size:64,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST,label:"face_landmarks_uniform_buffer"});let n=Math.max(256,Rr.length*48);this.storageBuffer=e.createBuffer({size:n,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST,label:"face_landmarks_storage_buffer"})}device;computePipeline;uniformBuffer;storageBuffer;cachedOutputTexture;execute(e,r={}){let n=r.width??1024,i=r.height??1024,o=r.lineWidth??4,a=Math.max(1,o/2),s=new Uint32Array(4);s[0]=n,s[1]=i,s[2]=Rr.length,s[3]=0,this.device.queue.writeBuffer(this.uniformBuffer,0,s);let l=new Float32Array(Rr.length*12);for(let p=0;p<Rr.length;p++){let f=Rr[p],b=e[f.from],g=e[f.to],y=p*12;if(!b||!g||(b.visibility??1)<.2||(g.visibility??1)<.2){l[y+9]=0;continue}l[y+0]=b.x*n,l[y+1]=b.y*i,l[y+2]=g.x*n,l[y+3]=g.y*i,l[y+4]=f.color[0],l[y+5]=f.color[1],l[y+6]=f.color[2],l[y+7]=f.color[3],l[y+8]=a,l[y+9]=1,l[y+10]=0,l[y+11]=0}this.device.queue.writeBuffer(this.storageBuffer,0,l),(!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 c=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,c),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 ou=`
682
+ `;function et(t,e){let r=[];for(let n=0;n<t.length-1;n++)r.push({from:t[n],to:t[n+1],color:e});return r}var Br=[...et([70,63,105,66,107],[0,1,1,1]),...et([300,293,334,296,336],[0,1,1,1]),...et([33,160,158,133,153,144,33],[0,1,0,1]),...et([263,387,385,362,380,373,263],[0,1,0,1]),...et([168,6,197,195,4],[1,1,0,1]),...et([98,97,2,326,327],[1,1,0,1]),...et([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]),...et([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]),...et([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])],An=class{constructor(e){this.device=e;let r=e.createShaderModule({label:"face_landmarks.wgsl",code:bu});this.computePipeline=e.createComputePipeline({label:"FaceLandmarksComputePipeline",layout:"auto",compute:{module:r,entryPoint:"computeFaceLandmarks"}}),this.uniformBuffer=e.createBuffer({size:64,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST,label:"face_landmarks_uniform_buffer"});let n=Math.max(256,Br.length*48);this.storageBuffer=e.createBuffer({size:n,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST,label:"face_landmarks_storage_buffer"})}device;computePipeline;uniformBuffer;storageBuffer;cachedOutputTexture;execute(e,r={}){let n=r.width??1024,i=r.height??1024,o=r.lineWidth??4,a=Math.max(1,o/2),s=new Uint32Array(4);s[0]=n,s[1]=i,s[2]=Br.length,s[3]=0,this.device.queue.writeBuffer(this.uniformBuffer,0,s);let l=new Float32Array(Br.length*12);for(let p=0;p<Br.length;p++){let f=Br[p],b=e[f.from],g=e[f.to],y=p*12;if(!b||!g||(b.visibility??1)<.2||(g.visibility??1)<.2){l[y+9]=0;continue}l[y+0]=b.x*n,l[y+1]=b.y*i,l[y+2]=g.x*n,l[y+3]=g.y*i,l[y+4]=f.color[0],l[y+5]=f.color[1],l[y+6]=f.color[2],l[y+7]=f.color[3],l[y+8]=a,l[y+9]=1,l[y+10]=0,l[y+11]=0}this.device.queue.writeBuffer(this.storageBuffer,0,l),(!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 c=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,c),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 yu=`
683
683
  struct SegParams {
684
684
  threshold: f32,
685
685
  feather: f32,
@@ -709,18 +709,18 @@ fn computeSegmentation(@builtin(global_invocation_id) id: vec3<u32>) {
709
709
 
710
710
  textureStore(outputTex, id.xy, vec4<f32>(alpha, alpha, alpha, 1.0));
711
711
  }
712
- `;var Tn=class{constructor(e){this.device=e;let r=e.createShaderModule({label:"segmentation.wgsl",code:ou});this.computePipeline=e.createComputePipeline({label:"SegmentationComputePipeline",layout:"auto",compute:{module:r,entryPoint:"computeSegmentation"}}),this.uniformBuffer=e.createBuffer({size:16,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST,label:"segmentation_uniform_buffer"})}device;computePipeline;uniformBuffer;cachedOutputTexture;execute(e,r={}){let n=e.width,i=e.height,o=r.threshold??.5,a=r.feather??.05,s=new ArrayBuffer(16),l=new Float32Array(s),c=new Uint32Array(s);l[0]=o,l[1]=a,c[2]=n,c[3]=i,this.device.queue.writeBuffer(this.uniformBuffer,0,s),(!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:e.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 Xt=class t{constructor(e){this.source=e;this.id=`tensor-${Math.random().toString(36).slice(2,9)}`}source;id;cannyOptions;depthNormalsOptions;poseSkeletonOptions;faceLandmarksOptions;segmentationOptions;opticalFlowOptions;deflickerOptions;multiplexer=new Dr;cannyPipeline;depthNormalsPipeline;posePipeline;facePipeline;segmentationPipeline;opticalFlowPipeline;deflickerPipeline;prevInputTexture;static from(e){return new t(e)}canny(e={}){return this.cannyOptions=e,this}depthNormals(e={}){return this.depthNormalsOptions=e,this}poseSkeleton(e={}){return this.poseSkeletonOptions=e,this}pose(e,r={}){return this.poseSkeletonOptions={...r,landmarks:e},this}faceLandmarks(e={}){return this.faceLandmarksOptions=e,this}face(e,r={}){return this.faceLandmarksOptions={...r,landmarks:e},this}segmentation(e={}){return this.segmentationOptions=e,this}opticalFlow(e={}){return this.opticalFlowOptions=e,this}deflicker(e={}){return this.deflickerOptions=e,this}getMultiplexer(){return this.multiplexer}async execute(e,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 Or(e));let i=this.cannyPipeline.execute(n,this.cannyOptions);this.multiplexer.set("canny",i)}if(this.depthNormalsOptions){this.depthNormalsPipeline||(this.depthNormalsPipeline=new Nr(e));let i=this.depthNormalsPipeline.execute(n,this.depthNormalsOptions);this.multiplexer.set("normals",i)}if(this.poseSkeletonOptions?.landmarks){this.posePipeline||(this.posePipeline=new ns(e));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 Mn(e));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 Tn(e));let i=this.segmentationPipeline.execute(n,this.segmentationOptions);this.multiplexer.set("segmentationMask",i)}if(this.opticalFlowOptions){this.opticalFlowPipeline||(this.opticalFlowPipeline=new Si(e));let i=this.prevInputTexture??n,o=this.opticalFlowPipeline.execute(i,n,this.opticalFlowOptions);this.multiplexer.set("motionVectors",o)}if(this.deflickerOptions){this.deflickerPipeline||(this.deflickerPipeline=new ki(e));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 kp=t=>!t.source||t.source.type==="keyframe";function Cn(t){let e=[],r=new Map;for(let n of t){if(!kp(n)){e.push(n);continue}let i=r.get(n.prop);if(!i){let a={...n,keyframes:[...n.keyframes??[]]};r.set(n.prop,a),e.push(a);continue}let o=new Map(i.keyframes.map(a=>[a.frame,a]));for(let a of n.keyframes??[])o.set(a.frame,a);i.keyframes=[...o.values()].sort((a,s)=>a.frame-s.frame)}return e}function au(t,e){if(!t)return e;let r=vo(t);if(!r||r.name==="none")return e;let{name:n,dir:i,params:o}=r,a=Math.max(0,Math.min(1,e)),s=l=>i==="in"?l(a):i==="out"?1-l(1-a):a<.5?l(a*2)/2:1-l((1-a)*2)/2;switch(n){case"power1":return s(l=>l*l);case"power2":return s(l=>l*l*l);case"power3":return s(l=>l*l*l*l);case"sine":return s(l=>1-Math.cos(l*Math.PI/2));case"circ":return s(l=>1-Math.sqrt(Math.max(0,1-l*l)));case"expo":return s(l=>l===0?0:2**(10*(l-1)));case"back":{let l=o?.[0]??1.70158,c=l+1;return s(m=>c*m*m*m-l*m*m)}case"bounce":{let l=c=>{if(c<.36363636363636365)return 7.5625*c*c;if(c<.7272727272727273){let f=c-.5454545454545454;return 7.5625*f*f+.75}if(c<.9090909090909091){let f=c-.8181818181818182;return 7.5625*f*f+.9375}let p=c-2.625/2.75;return 7.5625*p*p+.984375};return i==="out"?l(a):i==="in"?1-l(1-a):a<.5?(1-l(1-2*a))/2:(1+l(2*a-1))/2}default:return a}}function vo(t){if(t){if(typeof t=="object"&&"name"in t&&"dir"in t)return t;if(typeof t=="string"){let e=t.trim(),r=e.match(/^([a-zA-Z0-9]+)(?:\.([a-zA-Z]+))?(?:\(([^)]+)\))?$/);if(r){let l=r[1].toLowerCase(),c=l==="linear"?"none":l,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:c,dir:d,...p&&p.length>0?{params:p}:{}}}let n=e.indexOf(".");if(n===-1){let l=e.toLowerCase();return{name:l==="linear"?"none":l,dir:"out"}}let i=e.slice(0,n).toLowerCase(),o=i==="linear"?"none":i,a=e.slice(n+1).toLowerCase(),s="out";return a==="in"?s="in":a==="out"?s="out":a==="inout"&&(s="inOut"),{name:o,dir:s}}}}var oe=class t{tracks=[];frameStep;constructor(e=[]){this.tracks=[...e]}static create(){return new t}static stepped(e=2){return new t().stepped(e)}stepped(e=2){return this.frameStep=Math.max(1,Math.min(24,Math.round(e))),this}static fromTo(e,r,n,i={}){return new t().fromTo(e,r,n,i)}static keys(e,r){return new t().keys(e,r)}static signal(e,r,n={}){return new t().signal(e,r,n)}static colorSignal(e,r,n){return new t().colorSignal(e,r,n)}static kineticSweep(e=-1,r=1,n=0,i=24,o="power2.out"){return new t().kineticSweep(e,r,n,i,o)}static typewriter(e=0,r=30,n="linear"){return new t().typewriter(e,r,n)}static letterSpacing(e,r,n=0,i=24,o="power2.out"){return new t().letterSpacing(e,r,n,i,o)}static wiggle(e,r={}){return new t().wiggle(e,r)}static spring(e,r={}){return new t().spring(e,r)}static firstMargin(e,r,n={}){return new t().firstMargin(e,r,n)}static strokeWidth(e,r,n={}){return new t().fromTo("strokeWidth",e,r,n)}static rotateX(e,r,n={}){return new t().fromTo("rotateX",e,r,n)}static rotateY(e,r,n={}){return new t().fromTo("rotateY",e,r,n)}static rotateZ(e,r,n={}){return new t().fromTo("rotateZ",e,r,n)}static rotation(e,r,n={}){return new t().fromTo("rotation",e,r,n)}addTrack(e){return this.tracks.push(e),this}fromTo(e,r,n,i={}){let o=i.from??i.start??i.fromFrame??0,a=i.to??i.end??i.toFrame??(i.durationFrames!==void 0?o+i.durationFrames:o+24),s=vo(i.ease),l=this.tracks.find(m=>m.prop===e&&(!m.source||m.source.type==="keyframe"));l||(l={id:`${e}_fromTo_${this.tracks.length}`,prop:e,keyframes:[]},this.tracks.push(l));let c=l.id;return l.keyframes.length===0&&o>0&&l.keyframes.push({id:`${c}_k0`,frame:0,value:r}),(l.keyframes.length===0||l.keyframes[l.keyframes.length-1].frame<o)&&l.keyframes.push({id:`${c}_k_${o}`,frame:o,value:r}),l.keyframes.push({id:`${c}_k_${a}`,frame:a,value:n,...s&&{ease:s}}),l.keyframes.sort((m,d)=>m.frame-d.frame),this}keyframe(e,r,n,i){let o=this.tracks.find(c=>c.prop===e&&(!c.source||c.source.type==="keyframe"));o||(o={id:`${e}_track_${this.tracks.length}`,prop:e,keyframes:[]},this.tracks.push(o));let a=vo(i),s={id:`k_${o.keyframes.length}_f${r}`,frame:r,value:n,...a&&{ease:a}},l=o.keyframes.findIndex(c=>c.frame===r);return l>=0?o.keyframes[l]=s:o.keyframes.push(s),o.keyframes.sort((c,m)=>c.frame-m.frame),this}keys(e,r){for(let[n,i,o]of r)this.keyframe(e,Math.round(n),i,o);return this}fadeIn(e=0,r=20,n="power2.out"){return this.fromTo("opacity",0,1,{from:e,to:r,ease:n})}fadeOut(e,r,n="power2.in"){return this.fromTo("opacity",1,0,{from:e,to:r,ease:n})}slideInY(e,r,n=0,i=24,o="power2.out"){return this.fromTo("y",e,r,{from:n,to:i,ease:o})}slideInX(e,r,n=0,i=24,o="power2.out"){return this.fromTo("x",e,r,{from:n,to:i,ease:o})}kineticSweep(e=-1,r=1,n=0,i=24,o="power2.out"){return this.fromTo("offset",e,r,{from:n,to:i,ease:o})}typewriter(e=0,r=30,n="linear"){return this.fromTo("text",0,1,{from:e,to:r,ease:n})}letterSpacing(e,r,n=0,i=24,o="power2.out"){return this.fromTo("letterSpacing",e,r,{from:n,to:i,ease:o})}firstMargin(e,r,n={}){return this.fromTo("firstMargin",e,r,n)}lastMargin(e,r,n={}){return this.fromTo("lastMargin",e,r,n)}baselineShift(e,r,n={}){return this.fromTo("baselineShift",e,r,n)}rotateX(e,r,n={}){return this.fromTo("rotateX",e,r,n)}rotateY(e,r,n={}){return this.fromTo("rotateY",e,r,n)}rotateZ(e,r,n={}){return this.fromTo("rotateZ",e,r,n)}perspective(e,r,n={}){return this.fromTo("perspective",e,r,n)}translateZ(e,r,n={}){return this.fromTo("translateZ",e,r,n)}tilt3D(e){let r=e.start??e.fromFrame,n=e.end??e.toFrame,i=e.ease,o=e.from??{},a=e.to,s=["rotateX","rotateY","rotateZ","translateZ","perspective"];for(let l of s){let c=a[l];if(c!==void 0){let m=o[l]??0;this.fromTo(l,m,c,{from:r,to:n,fromFrame:r,toFrame:n,ease:i})}}return this}signal(e,r,n={}){let{handleId:i,inline:o}=vi(r),a=`${e}_sig_${i}_${this.tracks.length}`,s={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 o&&wi(s,o),this.tracks.push({id:a,prop:e,source:s,keyframes:[]}),this}colorSignal(e,r,n){let{handleId:i,inline:o}=vi(r),a=`${e}_colorSig_${i}_${this.tracks.length}`,s={type:"signal",inputHandleId:i,multiplier:n.multiplier??1,offset:n.offset??0,smoothingWindowFrames:n.smoothing??0,colorMode:n.colorMode??"interpolate",colorA:n.colorA,colorB:n.colorB,colorThreshold:n.threshold,channel:"primary"};return o&&wi(s,o),this.tracks.push({id:a,prop:e,source:s,keyframes:[]}),this}wiggle(e,r={}){let n=`${e}_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:e,source:i,keyframes:[]}),this}spring(e,r={}){let n=`${e}_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:e,source:i,keyframes:[]}),this}followPath(e,r={}){let n=r.start??r.fromFrame??0,i=r.end??r.toFrame??60,o=Math.max(1,i-n),a=r.samples??Math.max(8,Math.min(60,Math.round(o/2))),s=e.totalLength??1,l=r.fromProgress??0,c=r.toProgress??1;r.fromDistance!==void 0&&s>0&&(l=r.fromDistance/s),r.toDistance!==void 0&&s>0&&(c=r.toDistance/s);let m=r.autoOrient??!0,d=r.banking??0,p=r.pitchOffset??0,f=r.yawOffset??0,b=r.rollOffset??0,g=!1,y=!1,k=!1,A=[];for(let T=0;T<=a;T++){let w=T/a,S=au(r.ease,w),x=l+S*(c-l),O=Math.round(n+w*o),R=[0,0,0],_=[1,0,0],H=[0,0,0];if(typeof e.getFrameAt=="function"){let M=e.getFrameAt(x);R=M.position,_=M.tangent,H=M.rotation??[0,0,0]}else{let M=e.getPointAt(x);R=M.position,M.tangent&&(_=M.tangent);let Y=Math.asin(Math.max(-1,Math.min(1,-_[1])))*(180/Math.PI),X=Math.atan2(_[0],_[2])*(180/Math.PI),z=Math.atan2(_[1],_[0])*(180/Math.PI);H=[Y,X,z]}let ee=H[0]+p,E=H[1]+f,P=(Math.abs(_[2])<1e-4?Math.atan2(_[1],_[0])*(180/Math.PI):H[2])+b;if(d!==0){let M=Math.min(1,x+.02),Y=Math.max(0,x-.02),X=e.getPointAt(M),z=e.getPointAt(Y),U=X.tangent??[1,0,0],ne=z.tangent??[1,0,0],ce=Math.atan2(U[0],U[2]),we=Math.atan2(ne[0],ne[2]),me=ce-we;P-=me*d*57.2958}Math.abs(R[2])>1e-4&&(g=!0),Math.abs(ee)>1e-4&&(y=!0),Math.abs(E)>1e-4&&(k=!0),A.push({f:O,x:R[0],y:R[1],z:R[2],rx:ee,ry:E,rz:P})}for(let T of A)this.keyframe("x",T.f,T.x),this.keyframe("y",T.f,T.y),g&&this.keyframe("z",T.f,T.z),m&&(this.keyframe("rotateZ",T.f,T.rz),y&&this.keyframe("rotateX",T.f,T.rx),k&&this.keyframe("rotateY",T.f,T.ry));return this}applyTo(e){return e.animation=this.toSpec(),e}merge(...e){return this.tracks=Cn([...this.tracks,...e.flatMap(r=>r.tracks)]),this}static merge(...e){return new t().merge(...e)}toSpec(){return{tracks:this.tracks}}toJSON(){return this.toSpec()}},wo=class t extends oe{static camera(){return new t}dolly(e,r,n={}){if(typeof e=="object"){let i=e,o=i.start??i.fromFrame??0,a=i.end??i.toFrame??0;return this.fromTo("cameraZ",i.fromDistance,i.toDistance,{from:o,to:a,ease:i.ease})}return this.fromTo("cameraZ",e,r??e,n)}orbit(e){let r=e.start??e.fromFrame??0,n=e.end??e.toFrame??0;return e.azimuth&&this.fromTo("orbitAzimuth",e.azimuth.from??0,e.azimuth.to,{from:r,to:n,ease:e.ease}),e.elevation&&this.fromTo("orbitElevation",e.elevation.from??0,e.elevation.to,{from:r,to:n,ease:e.ease}),e.radius&&this.fromTo("orbitRadius",e.radius.from??1500,e.radius.to,{from:r,to:n,ease:e.ease}),this}truck(e,r,n={}){return this.fromTo("cameraX",e,r,n)}pedestal(e,r,n={}){return this.fromTo("cameraY",e,r,n)}pan(e,r,n={}){return this.fromTo("cameraYaw",e,r,n)}tilt(e,r,n={}){return this.fromTo("cameraPitch",e,r,n)}roll(e,r,n={}){return this.fromTo("cameraRoll",e,r,n)}rackFocus(e){let r=e.start??e.fromFrame??0,n=e.end??e.toFrame??0;return this.fromTo("focusDistance",e.fromDistance,e.toDistance,{from:r,to:n,ease:e.ease??"power2.inOut"}),e.toFStop!==void 0&&this.fromTo("fStop",e.fromFStop??2.8,e.toFStop,{from:r,to:n,ease:e.ease??"power2.inOut"}),this}handheld(e){let r=e.start??e.fromFrame??0,n=e.end??e.toFrame??0;return this.fromTo("shakeTranslation",0,e.translationAmplitude,{from:r,to:n}),this.fromTo("shakeRotation",0,e.rotationAmplitude,{from:r,to:n}),this}followPath3D(e,r={}){let n=r.start??r.fromFrame??0,i=r.end??r.toFrame??60,o=Math.max(1,i-n),a=r.samples??Math.max(8,Math.min(60,Math.round(o/2))),s=r.mode??(r.target?"lookAtTarget":"leadTarget"),l=r.fromProgress??0,c=r.toProgress??1,m=r.lookAhead??.05;for(let d=0;d<=a;d++){let p=d/a,f=au(r.ease,p),b=l+f*(c-l),g=Math.round(n+p*o),y=[0,0,0],k=[0,0,0];if(typeof e.getFrameAt=="function"){let A=e.getFrameAt(b);y=A.position,k=A.rotation??[0,0,0]}else y=e.getPointAt(b).position;if(this.keyframe("cameraX",g,y[0]),this.keyframe("cameraY",g,y[1]),this.keyframe("cameraZ",g,y[2]),s==="lookAtTarget"){let A=r.target??[y[0],y[1],0];this.keyframe("targetX",g,A[0]),this.keyframe("targetY",g,A[1]),this.keyframe("targetZ",g,A[2])}else if(s==="leadTarget"){let A=Math.min(1,b+m),T=e.getPointAt(A);this.keyframe("targetX",g,T.position[0]),this.keyframe("targetY",g,T.position[1]),this.keyframe("targetZ",g,T.position[2])}else s==="orientAlongPath"&&(this.keyframe("cameraPitch",g,k[0]),this.keyframe("cameraYaw",g,k[1]),this.keyframe("cameraRoll",g,k[2]))}return this}};h();var Pp=["background","fill","fillColor","strokeColor","borderColor","gradientEndColor","emissive","color"],su=3;function lu(t){return t.animation?.tracks??[]}var uu=(t,e)=>lu(t).some(r=>e.includes(r.prop)),Mp=new Set(["box","flex","block","group"]);function cu(t){if(t.kind==="text"||t.kind==="light"||t.kind==="camera")return!1;if(!Mp.has(String(t.kind)))return!0;let e=t.background;return typeof e=="string"&&e!==""&&e!=="transparent"?!0:(t.children??[]).some(cu)}var Tp=t=>[...t].sort((e,r)=>(Number(e.zIndex)||0)-(Number(r.zIndex)||0));function An(t){if(typeof t!="string"||t.includes("gradient("))return null;let e=fi(t);return e&&e[3]>.99?t:null}function So(t){let e=[],r=(f,b,g,y)=>e.push({severity:f,code:b,message:g,...y&&{layerId:y}}),n=t.width,i=t.height,o=!1,a=[],s=!1,l=[],c=[],m=(f,b,g)=>{let y=String(f.id??"?");for(let S of Pp){let x=f[S];typeof x!="string"||x===""||x==="transparent"||(x.includes("gradient(")?Ya(x)||r("error","invalid_gradient",`\`${S}\` on '${y}' is not a gradient this renderer reads: ${x}. It draws nothing.`,y):fi(x)||r("warning","unknown_color",`\`${S}: "${x}"\` on '${y}' is not a color (hex, rgb(), hsl(), oklch() or a CSS name). It draws transparent.`,y))}if(f.kind==="light"){let S=f.lightType??"directional";S==="environment"&&(o=!0),S==="ambient"&&a.push(y),f.castShadow&&(S==="directional"||S==="spot"?c.push(y):r("warning","shadow_unsupported_light",`'${y}' is a ${String(S)} light: only directional and spot lights cast shadows.`,y));return}if(f.kind==="camera")return;if(f.kind==="media"){let S=f.inputHandleId;typeof S=="string"&&(f.dataType??"Video")==="Image"&&(/\.(json|lottie)(\?.*)?$/i.test(S)?r("error","unsupported_image_format",`'${y}' is an image layer with source '${S}', which is a Lottie vector animation. Use Layer.lottie() instead.`,y):/\.(mp4|mov|webm|mkv)(\?.*)?$/i.test(S)?r("error","unsupported_image_format",`'${y}' is an image layer with video source '${S}'. Use Layer.video() instead.`,y):/\.(mp3|wav|ogg|m4a|aac)(\?.*)?$/i.test(S)&&r("error","unsupported_image_format",`'${y}' is an image layer with audio source '${S}'. Use Layer.audio() instead.`,y))}let k=!!f.is3D||typeof f.z=="number"&&f.z!==0;if((k||f.kind==="model3d")&&(s=!0),(f.roughness!==void 0||f.metallic!==void 0)&&l.push(y),f.kind==="text"&&b&&!uu(f,["fill","color"])){let S=An(f.fill??f.color),x=An(f.background)??b;if(S){let O=hi.contrast(S,x);O<su&&r("warning","low_contrast_text",`Text '${y}' (${S}) on ${x} has contrast ${O.toFixed(2)}:1 (aim for \u2265 ${su}; ${hi.readableOn(x)} reads well).`,y)}}if(g&&!k&&f.position==="absolute"&&typeof f.x=="number"&&typeof f.y=="number"&&typeof f.width=="number"&&typeof f.height=="number"&&!uu(f,["x","y","translateX","translateY","scale","rotation"])){let{x:S,y:x,width:O,height:R}=f;(S+O<=0||x+R<=0||S>=n||x>=i)&&r("warning","offscreen_layer",`'${y}' sits entirely outside the ${n}\xD7${i} canvas (x ${S}, y ${x}) and never moves in.`,y)}for(let S of lu(f)){let x=S.keyframes??[];(!S.source||S.source.type==="keyframe")&&x.length>=2&&x.every(O=>JSON.stringify(O.value)===JSON.stringify(x[0].value))&&r("info","static_track",`'${y}' animates \`${S.prop}\` but every keyframe holds ${JSON.stringify(x[0].value)}.`,y)}let A=An(f.background)??b,T=f.children,w=f.x===0&&f.y===0&&f.width===n&&f.height===i;d(T??[],A,g&&w)},d=(f,b,g)=>{let y=b;for(let k of Tp(f))m(k,y,g),cu(k)&&(y=null)},p=An(t.backgroundColor)??null;return d(t.layout,p,!0),o&&a.length>0&&r("info","ambient_with_environment",`The environment already fills shadows with light; ambient light ${a.join(", ")} adds flat light on top (remove it, or lower it, if the scene looks washed out).`),c.length>1&&r("info","multiple_shadow_lights",`${c.length} lights cast shadows (${c.join(", ")}); only the first one does.`),s&&l.length>0&&!o&&r("info","pbr_without_environment",`roughness / metallic are set (${l.slice(0,3).join(", ")}${l.length>3?", \u2026":""}) but the scene has no Layer.environment(): add one for physically based shading, reflections and tone mapping.`),e}h();var du=u.union([u.number().min(0),u.enum(["auto","fit","fill"]),u.custom()]),Cp=u.enum(["rect","circle","ellipse","polygon","star","arrow","path"]),Ap=u.enum(["x","y","scale","rotation","opacity","width","height","volume","hidden","muted","gap","padding","borderRadius","fontSize","text","fill","color","letterSpacing","d","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"]),ko=u.enum(["alpha","alpha-inverted","luma","luma-inverted"]),mu=u.enum(["lit","unlit","toon","glass","acrylic","frosted","metallic"]);var Dp=u.enum(["interpolate","hueRotate","threshold"]),Op=u.object({name:u.enum(["none","power1","power2","power3","sine","circ","expo","back","elastic","bounce","spring","cubic","hold"]),dir:u.enum(["in","out","inOut"]),params:u.array(u.number()).optional()}).strict().superRefine((t,e)=>{if(t.name==="spring"&&t.params){let[r,n,i]=t.params;r!==void 0&&r<=0&&e.addIssue({code:u.ZodIssueCode.custom,message:"Spring damping must be greater than 0.",path:["params",0]}),n!==void 0&&n<=0&&e.addIssue({code:u.ZodIssueCode.custom,message:"Spring stiffness must be greater than 0.",path:["params",1]}),i!==void 0&&i<=0&&e.addIssue({code:u.ZodIssueCode.custom,message:"Spring mass must be greater than 0.",path:["params",2]})}}),Np=u.object({id:u.string().min(1),frame:u.number().int().min(0),value:u.union([u.number(),u.boolean(),u.string()]),ease:Op.optional(),presetGroupId:u.string().optional(),presetType:u.string().optional(),spatialTangentIn:u.object({x:u.number(),y:u.number()}).optional(),spatialTangentOut:u.object({x:u.number(),y:u.number()}).optional()}).strict(),Rp=u.enum(["continuous","accumulate"]),Fp=u.discriminatedUnion("type",[u.object({type:u.literal("keyframe")}),u.object({type:u.literal("signal"),inputHandleId:u.string(),multiplier:u.number().default(1),offset:u.number().default(0),smoothingWindowFrames:u.number().min(0).default(0),colorMode:Dp.optional(),colorA:u.string().optional(),colorB:u.string().optional(),colorThreshold:u.number().optional(),signalMode:Rp.optional(),threshold:u.number().optional(),accumulateThreshold:u.number().optional(),debounceFrames:u.number().int().min(0).optional(),channel:u.string().optional()}),u.object({type:u.literal("wiggle"),frequency:u.number().default(2),amplitude:u.number().default(50),octaves:u.number().int().min(1).max(4).default(1),seed:u.number().default(1234)}),u.object({type:u.literal("springOvershoot"),damping:u.number().default(12),stiffness:u.number().default(180),mass:u.number().default(1)})]),Bp=u.preprocess(t=>{if(!t||typeof t!="object")return t;let e=t;if(e.type==="signal"){let r=typeof e.threshold=="number"?e.threshold:typeof e.accumulateThreshold=="number"?e.accumulateThreshold:.15;return{type:"signal",inputHandleId:e.inputHandleId??e.handleId,multiplier:e.multiplier??e.amplitude??1,offset:e.offset??0,smoothingWindowFrames:e.smoothingWindowFrames??e.smoothing??0,colorMode:e.colorMode,colorA:e.colorA,colorB:e.colorB,colorThreshold:e.colorThreshold,signalMode:e.signalMode??"continuous",threshold:r,accumulateThreshold:r,debounceFrames:e.debounceFrames??2,channel:typeof e.channel=="string"?e.channel:"primary"}}return t},Fp),Lp=(t,e)=>{if(!t?.tracks)return;let r=0;for(let n=0;n<t.tracks.length;n++){let i=t.tracks[n],o=i.keyframes??[];r+=o.length,(!i.source||i.source.type==="keyframe")&&o.length<1&&e.addIssue({code:u.ZodIssueCode.custom,message:`Track for property '${i.prop}' must have at least 1 keyframe.`,path:["tracks",n,"keyframes"]});let s=i.prop==="hidden"||i.prop==="muted",l=i.prop==="fillColor"||i.prop==="strokeColor"||i.prop==="fill"||i.prop==="color";for(let c=0;c<o.length;c++){let m=o[c];if(c>0){let p=o[c-1];m.frame<p.frame?e.addIssue({code:u.ZodIssueCode.custom,message:"Keyframes must be sorted in ascending order of frame.",path:["tracks",n,"keyframes",c]}):m.frame===p.frame&&e.addIssue({code:u.ZodIssueCode.custom,message:"Duplicate keyframes at the same frame are not allowed.",path:["tracks",n,"keyframes",c]})}let d=typeof m.value;s?d!=="boolean"&&e.addIssue({code:u.ZodIssueCode.custom,message:`Keyframe value for discrete property '${i.prop}' must be a boolean.`,path:["tracks",n,"keyframes",c,"value"]}):l?d!=="string"&&e.addIssue({code:u.ZodIssueCode.custom,message:`Keyframe value for color property '${i.prop}' must be a string.`,path:["tracks",n,"keyframes",c,"value"]}):d!=="number"||Number.isNaN(m.value)||!Number.isFinite(m.value)?e.addIssue({code:u.ZodIssueCode.custom,message:`Keyframe value for numeric property '${i.prop}' must be a finite number.`,path:["tracks",n,"keyframes",c,"value"]}):(i.prop==="volume"||i.prop==="trimStart"||i.prop==="trimEnd")&&(m.value<0||m.value>1)&&e.addIssue({code:u.ZodIssueCode.custom,message:`Keyframe value for property '${i.prop}' must be between 0 and 1.`,path:["tracks",n,"keyframes",c,"value"]})}}r>128&&e.addIssue({code:u.ZodIssueCode.custom,message:`Total keyframes across all tracks (${r}) exceeds the limit of 128.`,path:["tracks"]})},Ep=u.object({id:u.string().min(1),prop:Ap,source:Bp.optional(),keyframes:u.array(Np).default([]),repeat:u.number().int().optional(),yoyo:u.boolean().optional(),durationFrames:u.number().int().min(1).optional()}).strict(),Po=u.object({tracks:u.array(Ep).max(24),frameStep:u.number().int().min(1).max(24).optional()}).strict().superRefine(Lp),St={id:u.string().min(1),inputHandleId:u.string().optional(),position:u.enum(["relative","absolute"]).default("relative"),x:u.union([u.number(),u.custom()]).default(0),y:u.union([u.number(),u.custom()]).default(0),width:du.optional(),height:du.optional(),grow:u.number().min(0).optional(),flexShrink:u.number().min(0).optional(),flexBasis:u.number().min(0).optional(),alignSelf:u.enum(["auto","start","center","end","stretch","baseline"]).optional(),aspectRatio:u.number().positive().optional(),zIndex:u.number().int().default(0),hidden:u.boolean().default(!1),opacity:u.number().min(0).max(1).default(1),blendMode:u.string().optional(),effects:u.array(u.unknown()).optional(),rotation:u.number().default(0),scale:u.number().min(0).default(1),anchorX:u.number().min(0).max(1).default(.5),anchorY:u.number().min(0).max(1).default(.5),startFrame:u.number().int().min(0).default(0),durationFrames:u.number().int().min(1).optional(),motionBlurShutter:u.number().min(0).max(360).optional(),rotateX:u.number().default(0),rotateY:u.number().default(0),rotateZ:u.number().default(0),perspective:u.number().min(0).default(0),perspectiveOriginX:u.number().default(.5),perspectiveOriginY:u.number().default(.5),translateZ:u.number().default(0),backfaceVisibility:u.enum(["visible","hidden"]).default("visible"),transformStyle:u.enum(["flat","preserve-3d"]).default("flat"),is3D:u.boolean().default(!1),z:u.union([u.number(),u.custom()]).default(0),scaleZ:u.number().default(1),twoSided:u.boolean().default(!0),material:mu.default("lit"),ior:u.number().min(1).max(3).optional(),roughness:u.number().min(0).max(1).optional(),shininess:u.number().min(1).max(512).default(32),specularIntensity:u.number().min(0).default(.5),metallic:u.number().min(0).max(1).optional(),ambientIntensity:u.number().min(0).default(1),transmission:u.number().min(0).max(1).optional(),dispersion:u.number().min(0).max(1).optional(),fresnelPower:u.number().min(1).max(10).optional(),envIntensity:u.number().min(0).max(10).optional(),emissive:le.optional(),emissiveIntensity:u.number().min(0).optional(),castShadow:u.boolean().optional(),matte:u.object({node:u.custom(t=>typeof t=="object"&&t!==null),mode:ko.optional()}).optional(),matteId:u.string().optional(),matteOf:u.string().optional(),matteMode:ko.optional(),animation:Po.default({tracks:[]}),vision:u.unknown().optional(),relighting:u.unknown().optional()},pu=u.object({color:le,offset:u.object({x:u.number(),y:u.number()}).optional(),blurRadius:u.number().min(0).optional()}).strict(),Ip=u.object({x:u.number().optional(),y:u.number().optional(),scale:u.number().optional(),scaleX:u.number().optional(),scaleY:u.number().optional(),rotation:u.number().optional(),rotationX:u.number().optional(),rotationY:u.number().optional(),opacity:u.number().optional(),blur:u.number().optional(),color:u.string().optional()}).strict(),fu=u.object({id:u.string(),unit:u.enum(["character","word","line"]).default("character"),rangeStart:u.number().min(0).max(1).default(0),rangeEnd:u.number().min(0).max(1).default(1),offset:u.number().min(-1).max(1).default(0),easing:u.string().default("power2.out"),transform:Ip.optional()}),Vp={waveRise(t={}){return{id:t.id??"wave-rise",unit:t.unit??"character",rangeStart:t.rangeStart??0,rangeEnd:t.rangeEnd??1,offset:t.offset??-1,easing:t.easing??"power2.out",transform:{y:t.y??40,rotationX:t.rotationX??45,opacity:t.opacity??0,blur:t.blur??0}}},wordPop(t={}){return{id:t.id??"word-pop",unit:"word",rangeStart:0,rangeEnd:1,offset:-1,easing:t.easing??"back.out(1.6)",transform:{scale:t.scale??0,y:t.y??20,opacity:0}}},blurIn(t={}){return{id:t.id??"blur-in",unit:t.unit??"character",rangeStart:0,rangeEnd:1,offset:-1,easing:t.easing??"power3.out",transform:{blur:t.blur??16,y:t.y??20,opacity:t.opacity??0}}},flip3D(t={}){return{id:t.id??"flip-3d",unit:t.unit??"character",rangeStart:0,rangeEnd:1,offset:-1,easing:t.easing??"back.out(1.4)",transform:{rotationX:t.rotationX??90,opacity:0}}},colorSweep(t){return{id:t.id??"color-sweep",unit:t.unit??"character",rangeStart:0,rangeEnd:.5,offset:-.5,easing:t.easing??"power2.inOut",transform:{color:t.color}}}},zp=u.object({focalLength:u.number().min(5).max(500).default(50),fov:u.number().min(5).max(160).optional(),sensorWidth:u.number().default(36),near:u.number().min(.1).default(1),far:u.number().min(10).default(5e4),zoom:u.number().min(.01).default(1)}).strict(),Up=u.object({enabled:u.boolean().default(!1),focusDistance:u.number().min(1).default(1e3),fStop:u.number().min(.5).max(64).default(2.8),maxBlurRadius:u.number().min(0).max(128).default(32),apertureBlades:u.number().int().min(0).max(12).default(0),anamorphicRatio:u.number().min(.5).max(3).default(1)}).strict(),_p=u.object({translationAmplitude:u.number().min(0).default(0),rotationAmplitude:u.number().min(0).default(0),frequency:u.number().min(.1).max(60).default(2.5),octaves:u.number().int().min(1).max(6).default(3),seed:u.number().default(42)}).strict(),hu=u.object({id:u.string().min(1),kind:u.literal("camera"),mode:u.enum(["lookAt","free","orbit"]).default("lookAt"),x:u.number().optional(),y:u.number().optional(),z:u.number().optional(),targetX:u.number().optional(),targetY:u.number().optional(),targetZ:u.number().optional(),pitch:u.number().default(0),yaw:u.number().default(0),roll:u.number().default(0),lens:zp.optional(),dof:Up.optional(),shake:_p.optional(),startFrame:u.number().int().min(0).default(0),durationFrames:u.number().int().min(1).optional(),animation:Po.default({tracks:[]})}).strict(),gu=u.enum(["ambient","directional","point","spot","environment"]),bu=u.enum(["studio","soft","sunset","night","neutral"]),yu=u.enum(["neutral","agx","aces","none"]),xu=u.object({color:le,start:u.number().min(0),end:u.number().min(0),opacity:u.number().min(0).max(1).optional()}).strict(),vu=u.object({intensity:u.number().min(0).max(10).optional(),threshold:u.number().min(0).max(16).optional(),knee:u.number().min(0).max(1).optional(),radius:u.number().min(1).max(8).optional()}).strict(),wu=u.object({id:u.string().min(1),kind:u.literal("light"),lightType:gu.default("directional"),color:le.default("#ffffff"),intensity:u.number().default(1),x:u.number().optional(),y:u.number().optional(),z:u.number().optional(),targetX:u.number().optional(),targetY:u.number().optional(),targetZ:u.number().optional(),direction:u.tuple([u.number(),u.number(),u.number()]).optional(),radius:u.number().min(0).default(1e3),decay:u.number().min(0).default(2),angle:u.number().min(0).max(180).default(45),penumbra:u.number().min(0).max(1).default(.2),castShadow:u.boolean().optional(),shadowSoftness:u.number().min(0).max(64).optional(),shadowDarkness:u.number().min(0).max(1).optional(),shadowMapSize:u.number().int().min(256).max(8192).optional(),preset:bu.optional(),top:le.optional(),horizon:le.optional(),bottom:le.optional(),softboxes:u.number().min(0).optional(),rotation:u.number().optional(),exposure:u.number().min(-16).max(16).optional(),toneMapping:yu.optional(),fog:xu.optional(),bloom:u.union([u.boolean(),vu]).optional(),startFrame:u.number().int().min(0).default(0),durationFrames:u.number().int().min(1).optional(),animation:Po.default({tracks:[]})}).strict(),Mo=()=>u.array(u.lazy(()=>To)),Su=u.object({...St,kind:u.literal("flex"),dir:u.enum(["row","column"]).default("row"),gap:u.number().min(0).default(0),padding:u.number().min(0).default(0),justify:u.enum(["start","center","end","space-between","space-around"]).default("start"),align:u.enum(["start","center","end","stretch"]).default("start"),wrap:u.boolean().default(!1),staggerFrames:u.number().min(0).default(0),staggerDirection:u.enum(["forward","reverse","center-out"]).default("forward"),overflow:u.enum(["visible","hidden"]).default("hidden"),background:le.optional(),borderRadius:u.number().min(0).optional(),borderColor:le.optional(),borderWidth:u.number().min(0).optional(),strokeAlign:u.enum(["inside","center","outside"]).optional(),strokeRadius:u.number().min(0).optional(),children:Mo().optional()}).strict(),jp=u.object({...St,kind:u.literal("block"),gap:u.number().min(0).default(0),padding:u.number().min(0).default(0),align:u.enum(["start","center","end","stretch"]).default("start"),staggerFrames:u.number().min(0).default(0),staggerDirection:u.enum(["forward","reverse","center-out"]).default("forward"),overflow:u.enum(["visible","hidden"]).default("hidden"),background:le.optional(),borderRadius:u.number().min(0).optional(),borderColor:le.optional(),borderWidth:u.number().min(0).optional(),strokeAlign:u.enum(["inside","center","outside"]).optional(),strokeRadius:u.number().min(0).optional(),children:Mo().optional()}).strict(),ku=u.object({...St,kind:u.literal("box"),background:le,borderRadius:u.number().min(0).optional(),padding:u.number().min(0).default(0),staggerFrames:u.number().min(0).default(0),staggerDirection:u.enum(["forward","reverse","center-out"]).default("forward"),overflow:u.enum(["visible","hidden"]).default("hidden"),borderColor:le.optional(),borderWidth:u.number().min(0).optional(),strokeAlign:u.enum(["inside","center","outside"]).optional(),strokeRadius:u.number().min(0).optional(),children:Mo().optional()}).strict(),Pu=u.object({background:le,borderRadius:u.number().min(0).optional(),paddingX:u.number().min(0).optional(),paddingY:u.number().min(0).optional()}).strict(),Mu=u.object({text:u.union([u.string(),u.custom(t=>!!(t&&typeof t=="object"&&"get"in t))]),fontFamily:u.string().optional(),fontSize:u.union([u.number().positive(),u.custom(t=>!!(t&&typeof t=="object"&&"get"in t))]).optional(),fontWeight:u.union([u.number().int(),u.string()]).optional(),fontStyle:u.enum(["normal","italic"]).optional(),fill:u.union([le,u.custom(t=>!!(t&&typeof t=="object"&&"get"in t))]).optional(),letterSpacing:u.number().optional(),baselineShift:u.number().optional(),opacity:u.union([u.number().min(0).max(1),u.custom(t=>!!(t&&typeof t=="object"&&"get"in t))]).optional(),mark:Pu.optional()}).strict(),Gp={text:u.string().default(""),spans:u.array(Mu).optional(),fontFamily:u.string().optional(),fontSize:u.number().positive().optional(),fontWeight:u.union([u.number().int(),u.string()]).optional(),fontStyle:u.string().optional(),fill:le,align:u.enum(["start","center","end"]).optional(),direction:u.enum(["ltr","rtl","auto"]).optional(),verticalAlign:u.enum(["top","middle","bottom"]).optional(),lineHeight:u.number().positive().optional(),letterSpacing:u.number().optional(),background:le,borderRadius:u.number().min(0).optional(),padding:u.number().min(0).optional(),stroke:le,strokeWidth:u.number().min(0).optional(),strokeAlign:u.enum(["inside","center","outside"]).optional(),textShadow:u.string().optional(),shadows:u.array(pu).optional(),pathOptions:Ht.optional(),typewriter:wn.optional(),marquee:mo.optional(),animators:u.array(u.union([fu,Yt,po])).optional()},Tu=u.object({...St,...Gp,kind:u.literal("text")}).strict(),Cu=u.object({...St,kind:u.literal("media"),inputHandleId:u.string().min(1),dataType:u.string().optional(),fit:u.enum(["cover","contain","fill","none"]).default("contain"),dpr:u.number().min(1).max(4).optional(),borderRadius:u.number().min(0).optional(),borderColor:le.optional(),borderWidth:u.number().min(0).optional(),strokeAlign:u.enum(["inside","center","outside"]).optional(),strokeRadius:u.number().min(0).optional(),volume:u.number().min(0).max(1).default(1),muted:u.boolean().default(!1),trimStartSec:u.number().min(0).optional(),fontFamily:u.string().optional(),fontSize:u.number().positive().optional(),fontWeight:u.union([u.number().int(),u.string()]).optional(),fontStyle:u.string().optional(),fill:le,align:u.enum(["start","center","end"]).optional(),direction:u.enum(["ltr","rtl","auto"]).optional(),verticalAlign:u.enum(["top","middle","bottom"]).optional(),lineHeight:u.number().positive().optional(),letterSpacing:u.number().optional(),background:le,padding:u.number().min(0).optional(),stroke:le,strokeWidth:u.number().min(0).optional(),textShadow:u.string().optional(),shadows:u.array(pu).optional(),maxWidth:u.number().optional()}).strict(),$p={shapeType:Cp.default("rect"),borderRadius:u.number().min(0).optional(),radiusTL:u.number().min(0).optional(),radiusTR:u.number().min(0).optional(),radiusBR:u.number().min(0).optional(),radiusBL:u.number().min(0).optional(),polygonSides:u.number().int().min(3).max(64).optional(),starPoints:u.number().int().min(3).max(64).optional(),starInnerRadiusRatio:u.number().min(.01).max(.99).optional(),arrowHeadWidth:u.number().min(0).optional(),arrowHeadLength:u.number().min(0).optional(),arrowShaftWidth:u.number().min(1).optional(),d:u.string().optional(),fillType:u.enum(["solid","linear","radial","none"]).default("solid"),fillColor:le.default("#3b82f6"),gradientEndColor:le.optional(),gradientAngle:u.number().default(0),strokeColor:le.default("#ffffff"),strokeWidth:u.number().min(0).default(0),strokeDashArray:u.string().optional(),strokeDashOffset:u.number().default(0),strokeLineCap:u.enum(["butt","round","square"]).default("round"),strokeLineJoin:u.enum(["miter","round","bevel"]).default("round"),strokeAlign:u.enum(["inside","center","outside"]).optional(),trimStart:u.number().min(0).max(1).default(0),trimEnd:u.number().min(0).max(1).default(1),trimOffset:u.number().default(0)},Au=u.object({...St,...$p,kind:u.literal("shape")}).strict(),Wp=u.object({offset:u.number().min(0).max(1),color:u.string()}),Du=u.object({...St,kind:u.literal("model3d"),src:u.string().default(""),modelFormat:u.enum(["obj","fbx","gltf","glb","stl","ply","vox","3ds","off","auto"]).default("auto"),modelData:u.unknown().optional(),animationName:u.string().optional(),animationProgress:u.number().min(0).max(1).default(0),animationTime:u.number().min(0).default(0),animationSpeed:u.number().default(1),loop:u.boolean().default(!0),wireframe:u.boolean().default(!1),texture:u.string().optional(),center:u.boolean().optional(),normalizeSize:u.number().optional(),scaleX:u.number().default(1),scaleY:u.number().default(1),audioDeform:u.record(u.string(),u.unknown()).optional(),color:le.optional(),colorTint:le.optional(),text3dOptions:u.unknown().optional(),primitive3d:u.unknown().optional()}).strict(),To=u.lazy(()=>u.union([Su,jp,ku,Tu,Cu,Au,hu,wu,Du])),Hp=u.object({width:u.number().int().min(1).max(4096),height:u.number().int().min(1).max(4096),backgroundColor:le,volume:u.number().min(0).max(1).default(1),fps:u.number().int().min(1).max(120).default(24),mode:u.enum(["Video","Image"]).default("Video"),antialias3d:u.boolean().optional(),layout:u.array(To).default([]),fonts:u.array(u.string()).optional(),signals:u.record(u.string(),u.unknown()).optional(),effects:u.array(u.unknown()).optional(),vision:u.unknown().optional(),onRequestFrame:u.custom().optional()}).strict();h();var Ou=u.enum(["cut","carrierMatchCut","cameraWhip","focusPullDissolve","irisAperture","pushDirectional"]),Nu=u.object({sourceLayerId:u.string(),targetLayerId:u.string(),mode:u.enum(["exact","preserveVelocity","morph"]).default("preserveVelocity"),blendFrames:u.number().int().min(0).max(30).default(0)}).strict(),Yp=u.object({id:u.string(),chapter:u.enum(["hook","tension","solution","feature_spotlight","outro","custom"]).default("custom"),durationMs:u.number().positive().optional(),durationFrames:u.number().int().positive().optional(),transitionOut:u.object({type:Ou.default("cut"),durationFrames:u.number().int().min(0).default(0),carrier:Nu.optional(),whipDirection:u.enum(["left","right","up","down"]).default("left")}).default({type:"cut",durationFrames:0,whipDirection:"left"})}).passthrough();function Xp(t,e){return{x:t.x,y:t.y,scale:t.scale,vx:t.vx,vy:t.vy,...e}}function Ru(t,e=60){let r=0,n=[];for(let a of t){let s=r,l=a.durationFrames??(a.durationMs?Math.round(a.durationMs/1e3*e):60);n.push({sceneId:a.id,startFrame:s,durationFrames:l});let c=a.transitionOverlap??a.transitionOut?.durationFrames??0;r+=Math.max(1,l-c)}let i=r,o=Math.round(i/e*1e3);return{totalFrames:i,totalDurationMs:o,sceneOffsets:n}}var Fr=class t{id;chapter;durationMs;durationFrames;transitionOut;layout;constructor(e){this.id=e.id,this.chapter=e.chapter??"custom",this.durationMs=e.durationMs,this.durationFrames=e.durationFrames,this.transitionOut={type:e.transitionOut?.type??"cut",durationFrames:e.transitionOut?.durationFrames??0,carrier:e.transitionOut?.carrier,whipDirection:e.transitionOut?.whipDirection??"left"},this.layout=e.layout??[]}static create(e){return new t(e)}},Co=class t{fps;width;height;backgroundColor;fonts;signals;scenes=[];constructor(e={}){if(this.fps=e.fps??60,this.width=e.width??1920,this.height=e.height??1080,this.backgroundColor=e.backgroundColor??"#ffffff",this.fonts=e.fonts,this.signals=e.signals,e.scenes)for(let r of e.scenes)this.addScene(r)}static create(e={}){return new t(e)}addScene(e){let r=e instanceof Fr?e:new Fr(e);return this.scenes.push(r),this}getScenes(){return this.scenes}calculateTimeline(){return Ru(this.scenes,this.fps)}toProgram(){let e=this.calculateTimeline(),r=[];for(let n=0;n<this.scenes.length;n++){let i=this.scenes[n],o=e.sceneOffsets[n];if(o)for(let a of i.layout){let s={...a};s.startFrame=(s.startFrame??0)+o.startFrame,s.durationFrames===void 0&&(s.durationFrames=o.durationFrames),r.push(s)}}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 Fu(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function kt(t,e){if(!isFinite(t)||t===0)return null;var r=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"),n=t.slice(0,r);return[n.length>1?n[0]+n.slice(2):n,+t.slice(r+1)]}function $e(t){return t=kt(Math.abs(t)),t?t[1]:NaN}h();function Bu(t,e){return function(r,n){for(var i=r.length,o=[],a=0,s=t[0],l=0;i>0&&s>0&&(l+s+1>n&&(s=Math.max(1,n-l)),o.push(r.substring(i-=s,i+s)),!((l+=s+1)>n));)s=t[a=(a+1)%t.length];return o.reverse().join(e)}}h();function Lu(t){return function(e){return e.replace(/[0-9]/g,function(r){return t[+r]})}}h();var qp=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function ut(t){if(!(e=qp.exec(t)))throw new Error("invalid format: "+t);var e;return new Dn({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}ut.prototype=Dn.prototype;function Dn(t){this.fill=t.fill===void 0?" ":t.fill+"",this.align=t.align===void 0?">":t.align+"",this.sign=t.sign===void 0?"-":t.sign+"",this.symbol=t.symbol===void 0?"":t.symbol+"",this.zero=!!t.zero,this.width=t.width===void 0?void 0:+t.width,this.comma=!!t.comma,this.precision=t.precision===void 0?void 0:+t.precision,this.trim=!!t.trim,this.type=t.type===void 0?"":t.type+""}Dn.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 Eu(t){e:for(var e=t.length,r=1,n=-1,i;r<e;++r)switch(t[r]){case".":n=i=r;break;case"0":n===0&&(n=r),i=r;break;default:if(!+t[r])break e;n>0&&(n=0);break}return n>0?t.slice(0,n)+t.slice(i+1):t}h();h();var Br;function Iu(t,e){var r=kt(t,e);if(!r)return Br=void 0,t.toPrecision(e);var n=r[0],i=r[1],o=i-(Br=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,a=n.length;return o===a?n:o>a?n+new Array(o-a+1).join("0"):o>0?n.slice(0,o)+"."+n.slice(o):"0."+new Array(1-o).join("0")+kt(t,Math.max(0,e+o-1))[0]}h();function Ao(t,e){var r=kt(t,e);if(!r)return t+"";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 Do={"%":(t,e)=>(t*100).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:Fu,e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>Ao(t*100,e),r:Ao,s:Iu,X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};h();function Oo(t){return t}var Vu=Array.prototype.map,zu=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];function Uu(t){var e=t.grouping===void 0||t.thousands===void 0?Oo:Bu(Vu.call(t.grouping,Number),t.thousands+""),r=t.currency===void 0?"":t.currency[0]+"",n=t.currency===void 0?"":t.currency[1]+"",i=t.decimal===void 0?".":t.decimal+"",o=t.numerals===void 0?Oo:Lu(Vu.call(t.numerals,String)),a=t.percent===void 0?"%":t.percent+"",s=t.minus===void 0?"\u2212":t.minus+"",l=t.nan===void 0?"NaN":t.nan+"";function c(d,p){d=ut(d);var f=d.fill,b=d.align,g=d.sign,y=d.symbol,k=d.zero,A=d.width,T=d.comma,w=d.precision,S=d.trim,x=d.type;x==="n"?(T=!0,x="g"):Do[x]||(w===void 0&&(w=12),S=!0,x="g"),(k||f==="0"&&b==="=")&&(k=!0,f="0",b="=");var O=(p&&p.prefix!==void 0?p.prefix:"")+(y==="$"?r:y==="#"&&/[boxX]/.test(x)?"0"+x.toLowerCase():""),R=(y==="$"?n:/[%p]/.test(x)?a:"")+(p&&p.suffix!==void 0?p.suffix:""),_=Do[x],H=/[defgprs%]/.test(x);w=w===void 0?6:/[gprs]/.test(x)?Math.max(1,Math.min(21,w)):Math.max(0,Math.min(20,w));function ee(E){var P=O,M=R,Y,X,z;if(x==="c")M=_(E)+M,E="";else{E=+E;var U=E<0||1/E<0;if(E=isNaN(E)?l:_(Math.abs(E),w),S&&(E=Eu(E)),U&&+E==0&&g!=="+"&&(U=!1),P=(U?g==="("?g:s:g==="-"||g==="("?"":g)+P,M=(x==="s"&&!isNaN(E)&&Br!==void 0?zu[8+Br/3]:"")+M+(U&&g==="("?")":""),H){for(Y=-1,X=E.length;++Y<X;)if(z=E.charCodeAt(Y),48>z||z>57){M=(z===46?i+E.slice(Y+1):E.slice(Y))+M,E=E.slice(0,Y);break}}}T&&!k&&(E=e(E,1/0));var ne=P.length+E.length+M.length,ce=ne<A?new Array(A-ne+1).join(f):"";switch(T&&k&&(E=e(ce+E,ce.length?A-M.length:1/0),ce=""),b){case"<":E=P+E+M+ce;break;case"=":E=P+ce+E+M;break;case"^":E=ce.slice(0,ne=ce.length>>1)+P+E+M+ce.slice(ne);break;default:E=ce+P+E+M;break}return o(E)}return ee.toString=function(){return d+""},ee}function m(d,p){var f=Math.max(-8,Math.min(8,Math.floor($e(p)/3)))*3,b=Math.pow(10,-f),g=c((d=ut(d),d.type="f",d),{suffix:zu[8+f/3]});return function(y){return g(b*y)}}return{format:c,formatPrefix:m}}var On,qt,Nn;No({thousands:",",grouping:[3],currency:["$",""]});function No(t){return On=Uu(t),qt=On.format,Nn=On.formatPrefix,On}h();function Ro(t){return Math.max(0,-$e(Math.abs(t)))}h();function Fo(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor($e(e)/3)))*3-$e(Math.abs(t)))}h();function Bo(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,$e(e)-$e(t))+1}h();h();h();h();h();function Pt(t,e){return t==null||e==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}h();h();function Lo(t,e){return t==null||e==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function Mt(t){let e,r,n;t.length!==2?(e=Pt,r=(s,l)=>Pt(t(s),l),n=(s,l)=>t(s)-l):(e=t===Pt||t===Lo?t:Zp,r=t,n=t);function i(s,l,c=0,m=s.length){if(c<m){if(e(l,l)!==0)return m;do{let d=c+m>>>1;r(s[d],l)<0?c=d+1:m=d}while(c<m)}return c}function o(s,l,c=0,m=s.length){if(c<m){if(e(l,l)!==0)return m;do{let d=c+m>>>1;r(s[d],l)<=0?c=d+1:m=d}while(c<m)}return c}function a(s,l,c=0,m=s.length){let d=i(s,l,c,m-1);return d>c&&n(s[d-1],l)>-n(s[d],l)?d-1:d}return{left:i,center:a,right:o}}function Zp(){return 0}h();function Eo(t){return t===null?NaN:+t}var _u=Mt(Pt),ju=_u.right,Kp=_u.left,Qp=Mt(Eo).center,Io=ju;h();var Zt=class extends Map{constructor(e,r=tf){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:r}}),e!=null)for(let[n,i]of e)this.set(n,i)}get(e){return super.get(Gu(this,e))}has(e){return super.has(Gu(this,e))}set(e,r){return super.set(Jp(this,e),r)}delete(e){return super.delete(ef(this,e))}};function Gu({_intern:t,_key:e},r){let n=e(r);return t.has(n)?t.get(n):r}function Jp({_intern:t,_key:e},r){let n=e(r);return t.has(n)?t.get(n):(t.set(n,r),r)}function ef({_intern:t,_key:e},r){let n=e(r);return t.has(n)&&(r=t.get(n),t.delete(n)),r}function tf(t){return t!==null&&typeof t=="object"?t.valueOf():t}h();var rf=Math.sqrt(50),nf=Math.sqrt(10),of=Math.sqrt(2);function Rn(t,e,r){let n=(e-t)/Math.max(0,r),i=Math.floor(Math.log10(n)),o=n/Math.pow(10,i),a=o>=rf?10:o>=nf?5:o>=of?2:1,s,l,c;return i<0?(c=Math.pow(10,-i)/a,s=Math.round(t*c),l=Math.round(e*c),s/c<t&&++s,l/c>e&&--l,c=-c):(c=Math.pow(10,i)*a,s=Math.round(t/c),l=Math.round(e/c),s*c<t&&++s,l*c>e&&--l),l<s&&.5<=r&&r<2?Rn(t,e,r*2):[s,l,c]}function Fn(t,e,r){if(e=+e,t=+t,r=+r,!(r>0))return[];if(t===e)return[t];let n=e<t,[i,o,a]=n?Rn(e,t,r):Rn(t,e,r);if(!(o>=i))return[];let s=o-i+1,l=new Array(s);if(n)if(a<0)for(let c=0;c<s;++c)l[c]=(o-c)/-a;else for(let c=0;c<s;++c)l[c]=(o-c)*a;else if(a<0)for(let c=0;c<s;++c)l[c]=(i+c)/-a;else for(let c=0;c<s;++c)l[c]=(i+c)*a;return l}function Lr(t,e,r){return e=+e,t=+t,r=+r,Rn(t,e,r)[2]}function Kt(t,e,r){e=+e,t=+t,r=+r;let n=e<t,i=n?Lr(e,t,r):Lr(t,e,r);return(n?-1:1)*(i<0?1/-i:i)}h();function Bn(t,e,r){t=+t,e=+e,r=(i=arguments.length)<2?(e=t,t=0,1):i<3?1:+r;for(var n=-1,i=Math.max(0,Math.ceil((e-t)/r))|0,o=new Array(i);++n<i;)o[n]=t+n*r;return o}h();function lt(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t);break}return this}h();var $u=Symbol("implicit");function Ln(){var t=new Zt,e=[],r=[],n=$u;function i(o){let a=t.get(o);if(a===void 0){if(n!==$u)return n;t.set(o,a=e.push(o)-1)}return r[a%r.length]}return i.domain=function(o){if(!arguments.length)return e.slice();e=[],t=new Zt;for(let a of o)t.has(a)||t.set(a,e.push(a)-1);return i},i.range=function(o){return arguments.length?(r=Array.from(o),i):r.slice()},i.unknown=function(o){return arguments.length?(n=o,i):n},i.copy=function(){return Ln(e,r).unknown(n)},lt.apply(i,arguments),i}function Er(){var t=Ln().unknown(void 0),e=t.domain,r=t.range,n=0,i=1,o,a,s=!1,l=0,c=0,m=.5;delete t.unknown;function d(){var p=e().length,f=i<n,b=f?i:n,g=f?n:i;o=(g-b)/Math.max(1,p-l+c*2),s&&(o=Math.floor(o)),b+=(g-b-o*(p-l))*m,a=o*(1-l),s&&(b=Math.round(b),a=Math.round(a));var y=Bn(p).map(function(k){return b+o*k});return r(f?y.reverse():y)}return t.domain=function(p){return arguments.length?(e(p),d()):e()},t.range=function(p){return arguments.length?([n,i]=p,n=+n,i=+i,d()):[n,i]},t.rangeRound=function(p){return[n,i]=p,n=+n,i=+i,s=!0,d()},t.bandwidth=function(){return a},t.step=function(){return o},t.round=function(p){return arguments.length?(s=!!p,d()):s},t.padding=function(p){return arguments.length?(l=Math.min(1,c=+p),d()):l},t.paddingInner=function(p){return arguments.length?(l=Math.min(1,p),d()):l},t.paddingOuter=function(p){return arguments.length?(c=+p,d()):c},t.align=function(p){return arguments.length?(m=Math.max(0,Math.min(1,p)),d()):m},t.copy=function(){return Er(e(),[n,i]).round(s).paddingInner(l).paddingOuter(c).align(m)},lt.apply(d(),arguments)}h();h();h();h();h();h();h();function En(t,e,r){t.prototype=e.prototype=r,r.constructor=t}function Vo(t,e){var r=Object.create(t.prototype);for(var n in e)r[n]=e[n];return r}function zr(){}var Ir=.7,zn=1/Ir,Qt="\\s*([+-]?\\d+)\\s*",Vr="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",We="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",af=/^#([0-9a-f]{3,8})$/,sf=new RegExp(`^rgb\\(${Qt},${Qt},${Qt}\\)$`),uf=new RegExp(`^rgb\\(${We},${We},${We}\\)$`),lf=new RegExp(`^rgba\\(${Qt},${Qt},${Qt},${Vr}\\)$`),cf=new RegExp(`^rgba\\(${We},${We},${We},${Vr}\\)$`),df=new RegExp(`^hsl\\(${Vr},${We},${We}\\)$`),mf=new RegExp(`^hsla\\(${Vr},${We},${We},${Vr}\\)$`),Wu={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};En(zr,ct,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:Hu,formatHex:Hu,formatHex8:pf,formatHsl:ff,formatRgb:Yu,toString:Yu});function Hu(){return this.rgb().formatHex()}function pf(){return this.rgb().formatHex8()}function ff(){return Ju(this).formatHsl()}function Yu(){return this.rgb().formatRgb()}function ct(t){var e,r;return t=(t+"").trim().toLowerCase(),(e=af.exec(t))?(r=e[1].length,e=parseInt(e[1],16),r===6?Xu(e):r===3?new Ee(e>>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):r===8?In(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):r===4?In(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=sf.exec(t))?new Ee(e[1],e[2],e[3],1):(e=uf.exec(t))?new Ee(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=lf.exec(t))?In(e[1],e[2],e[3],e[4]):(e=cf.exec(t))?In(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=df.exec(t))?Ku(e[1],e[2]/100,e[3]/100,1):(e=mf.exec(t))?Ku(e[1],e[2]/100,e[3]/100,e[4]):Wu.hasOwnProperty(t)?Xu(Wu[t]):t==="transparent"?new Ee(NaN,NaN,NaN,0):null}function Xu(t){return new Ee(t>>16&255,t>>8&255,t&255,1)}function In(t,e,r,n){return n<=0&&(t=e=r=NaN),new Ee(t,e,r,n)}function hf(t){return t instanceof zr||(t=ct(t)),t?(t=t.rgb(),new Ee(t.r,t.g,t.b,t.opacity)):new Ee}function Jt(t,e,r,n){return arguments.length===1?hf(t):new Ee(t,e,r,n??1)}function Ee(t,e,r,n){this.r=+t,this.g=+e,this.b=+r,this.opacity=+n}En(Ee,Jt,Vo(zr,{brighter(t){return t=t==null?zn:Math.pow(zn,t),new Ee(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?Ir:Math.pow(Ir,t),new Ee(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new Ee(Ct(this.r),Ct(this.g),Ct(this.b),Un(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:qu,formatHex:qu,formatHex8:gf,formatRgb:Zu,toString:Zu}));function qu(){return`#${Tt(this.r)}${Tt(this.g)}${Tt(this.b)}`}function gf(){return`#${Tt(this.r)}${Tt(this.g)}${Tt(this.b)}${Tt((isNaN(this.opacity)?1:this.opacity)*255)}`}function Zu(){let t=Un(this.opacity);return`${t===1?"rgb(":"rgba("}${Ct(this.r)}, ${Ct(this.g)}, ${Ct(this.b)}${t===1?")":`, ${t})`}`}function Un(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function Ct(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function Tt(t){return t=Ct(t),(t<16?"0":"")+t.toString(16)}function Ku(t,e,r,n){return n<=0?t=e=r=NaN:r<=0||r>=1?t=e=NaN:e<=0&&(t=NaN),new Ue(t,e,r,n)}function Ju(t){if(t instanceof Ue)return new Ue(t.h,t.s,t.l,t.opacity);if(t instanceof zr||(t=ct(t)),!t)return new Ue;if(t instanceof Ue)return t;t=t.rgb();var e=t.r/255,r=t.g/255,n=t.b/255,i=Math.min(e,r,n),o=Math.max(e,r,n),a=NaN,s=o-i,l=(o+i)/2;return s?(e===o?a=(r-n)/s+(r<n)*6:r===o?a=(n-e)/s+2:a=(e-r)/s+4,s/=l<.5?o+i:2-o-i,a*=60):s=l>0&&l<1?0:a,new Ue(a,s,l,t.opacity)}function el(t,e,r,n){return arguments.length===1?Ju(t):new Ue(t,e,r,n??1)}function Ue(t,e,r,n){this.h=+t,this.s=+e,this.l=+r,this.opacity=+n}En(Ue,el,Vo(zr,{brighter(t){return t=t==null?zn:Math.pow(zn,t),new Ue(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?Ir:Math.pow(Ir,t),new Ue(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*e,i=2*r-n;return new Ee(zo(t>=240?t-240:t+120,i,n),zo(t,i,n),zo(t<120?t+240:t-120,i,n),this.opacity)},clamp(){return new Ue(Qu(this.h),Vn(this.s),Vn(this.l),Un(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 t=Un(this.opacity);return`${t===1?"hsl(":"hsla("}${Qu(this.h)}, ${Vn(this.s)*100}%, ${Vn(this.l)*100}%${t===1?")":`, ${t})`}`}}));function Qu(t){return t=(t||0)%360,t<0?t+360:t}function Vn(t){return Math.max(0,Math.min(1,t||0))}function zo(t,e,r){return(t<60?e+(r-e)*t/60:t<180?r:t<240?e+(r-e)*(240-t)/60:e)*255}h();h();function Uo(t,e,r,n,i){var o=t*t,a=o*t;return((1-3*t+3*o-a)*e+(4-6*o+3*a)*r+(1+3*t+3*o-3*a)*n+a*i)/6}function tl(t){var e=t.length-1;return function(r){var n=r<=0?r=0:r>=1?(r=1,e-1):Math.floor(r*e),i=t[n],o=t[n+1],a=n>0?t[n-1]:2*i-o,s=n<e-1?t[n+2]:2*o-i;return Uo((r-n/e)*e,a,i,o,s)}}h();function rl(t){var e=t.length;return function(r){var n=Math.floor(((r%=1)<0?++r:r)*e),i=t[(n+e-1)%e],o=t[n%e],a=t[(n+1)%e],s=t[(n+2)%e];return Uo((r-n/e)*e,i,o,a,s)}}h();h();var Ur=t=>()=>t;function bf(t,e){return function(r){return t+r*e}}function yf(t,e,r){return t=Math.pow(t,r),e=Math.pow(e,r)-t,r=1/r,function(n){return Math.pow(t+n*e,r)}}function nl(t){return(t=+t)==1?_n:function(e,r){return r-e?yf(e,r,t):Ur(isNaN(e)?r:e)}}function _n(t,e){var r=e-t;return r?bf(t,r):Ur(isNaN(t)?e:t)}var _o=(function t(e){var r=nl(e);function n(i,o){var a=r((i=Jt(i)).r,(o=Jt(o)).r),s=r(i.g,o.g),l=r(i.b,o.b),c=_n(i.opacity,o.opacity);return function(m){return i.r=a(m),i.g=s(m),i.b=l(m),i.opacity=c(m),i+""}}return n.gamma=t,n})(1);function il(t){return function(e){var r=e.length,n=new Array(r),i=new Array(r),o=new Array(r),a,s;for(a=0;a<r;++a)s=Jt(e[a]),n[a]=s.r||0,i[a]=s.g||0,o[a]=s.b||0;return n=t(n),i=t(i),o=t(o),s.opacity=1,function(l){return s.r=n(l),s.g=i(l),s.b=o(l),s+""}}}var qS=il(tl),ZS=il(rl);h();h();function ol(t,e){e||(e=[]);var r=t?Math.min(e.length,t.length):0,n=e.slice(),i;return function(o){for(i=0;i<r;++i)n[i]=t[i]*(1-o)+e[i]*o;return n}}function al(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function sl(t,e){var r=e?e.length:0,n=t?Math.min(r,t.length):0,i=new Array(n),o=new Array(r),a;for(a=0;a<n;++a)i[a]=At(t[a],e[a]);for(;a<r;++a)o[a]=e[a];return function(s){for(a=0;a<n;++a)o[a]=i[a](s);return o}}h();function ul(t,e){var r=new Date;return t=+t,e=+e,function(n){return r.setTime(t*(1-n)+e*n),r}}h();function dt(t,e){return t=+t,e=+e,function(r){return t*(1-r)+e*r}}h();function ll(t,e){var r={},n={},i;(t===null||typeof t!="object")&&(t={}),(e===null||typeof e!="object")&&(e={});for(i in e)i in t?r[i]=At(t[i],e[i]):n[i]=e[i];return function(o){for(i in r)n[i]=r[i](o);return n}}h();var Go=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,jo=new RegExp(Go.source,"g");function xf(t){return function(){return t}}function vf(t){return function(e){return t(e)+""}}function cl(t,e){var r=Go.lastIndex=jo.lastIndex=0,n,i,o,a=-1,s=[],l=[];for(t=t+"",e=e+"";(n=Go.exec(t))&&(i=jo.exec(e));)(o=i.index)>r&&(o=e.slice(r,o),s[a]?s[a]+=o:s[++a]=o),(n=n[0])===(i=i[0])?s[a]?s[a]+=i:s[++a]=i:(s[++a]=null,l.push({i:a,x:dt(n,i)})),r=jo.lastIndex;return r<e.length&&(o=e.slice(r),s[a]?s[a]+=o:s[++a]=o),s.length<2?l[0]?vf(l[0].x):xf(e):(e=l.length,function(c){for(var m=0,d;m<e;++m)s[(d=l[m]).i]=d.x(c);return s.join("")})}function At(t,e){var r=typeof e,n;return e==null||r==="boolean"?Ur(e):(r==="number"?dt:r==="string"?(n=ct(e))?(e=n,_o):cl:e instanceof ct?_o:e instanceof Date?ul:al(e)?ol:Array.isArray(e)?sl:typeof e.valueOf!="function"&&typeof e.toString!="function"||isNaN(e)?ll:dt)(t,e)}h();function $o(t,e){return t=+t,e=+e,function(r){return Math.round(t*(1-r)+e*r)}}h();function Wo(t){return function(){return t}}h();function Ho(t){return+t}var dl=[0,1];function er(t){return t}function Yo(t,e){return(e-=t=+t)?function(r){return(r-t)/e}:Wo(isNaN(e)?NaN:.5)}function wf(t,e){var r;return t>e&&(r=t,t=e,e=r),function(n){return Math.max(t,Math.min(e,n))}}function Sf(t,e,r){var n=t[0],i=t[1],o=e[0],a=e[1];return i<n?(n=Yo(i,n),o=r(a,o)):(n=Yo(n,i),o=r(o,a)),function(s){return o(n(s))}}function kf(t,e,r){var n=Math.min(t.length,e.length)-1,i=new Array(n),o=new Array(n),a=-1;for(t[n]<t[0]&&(t=t.slice().reverse(),e=e.slice().reverse());++a<n;)i[a]=Yo(t[a],t[a+1]),o[a]=r(e[a],e[a+1]);return function(s){var l=Io(t,s,1,n)-1;return o[l](i[l](s))}}function jn(t,e){return e.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown())}function Pf(){var t=dl,e=dl,r=At,n,i,o,a=er,s,l,c;function m(){var p=Math.min(t.length,e.length);return a!==er&&(a=wf(t[0],t[p-1])),s=p>2?kf:Sf,l=c=null,d}function d(p){return p==null||isNaN(p=+p)?o:(l||(l=s(t.map(n),e,r)))(n(a(p)))}return d.invert=function(p){return a(i((c||(c=s(e,t.map(n),dt)))(p)))},d.domain=function(p){return arguments.length?(t=Array.from(p,Ho),m()):t.slice()},d.range=function(p){return arguments.length?(e=Array.from(p),m()):e.slice()},d.rangeRound=function(p){return e=Array.from(p),r=$o,m()},d.clamp=function(p){return arguments.length?(a=p?!0:er,m()):a!==er},d.interpolate=function(p){return arguments.length?(r=p,m()):r},d.unknown=function(p){return arguments.length?(o=p,d):o},function(p,f){return n=p,i=f,m()}}function _r(){return Pf()(er,er)}h();function Xo(t,e,r,n){var i=Kt(t,e,r),o;switch(n=ut(n??",f"),n.type){case"s":{var a=Math.max(Math.abs(t),Math.abs(e));return n.precision==null&&!isNaN(o=Fo(i,a))&&(n.precision=o),Nn(n,a)}case"":case"e":case"g":case"p":case"r":{n.precision==null&&!isNaN(o=Bo(i,Math.max(Math.abs(t),Math.abs(e))))&&(n.precision=o-(n.type==="e"));break}case"f":case"%":{n.precision==null&&!isNaN(o=Ro(i))&&(n.precision=o-(n.type==="%")*2);break}}return qt(n)}function Mf(t){var e=t.domain;return t.ticks=function(r){var n=e();return Fn(n[0],n[n.length-1],r??10)},t.tickFormat=function(r,n){var i=e();return Xo(i[0],i[i.length-1],r??10,n)},t.nice=function(r){r==null&&(r=10);var n=e(),i=0,o=n.length-1,a=n[i],s=n[o],l,c,m=10;for(s<a&&(c=a,a=s,s=c,c=i,i=o,o=c);m-- >0;){if(c=Lr(a,s,r),c===l)return n[i]=a,n[o]=s,e(n);if(c>0)a=Math.floor(a/c)*c,s=Math.ceil(s/c)*c;else if(c<0)a=Math.ceil(a*c)/c,s=Math.floor(s*c)/c;else break;l=c}return t},t}function tr(){var t=_r();return t.copy=function(){return jn(t,tr())},lt.apply(t,arguments),Mf(t)}h();function qo(t,e){t=t.slice();var r=0,n=t.length-1,i=t[r],o=t[n],a;return o<i&&(a=r,r=n,n=a,a=i,i=o,o=a),t[r]=e.floor(i),t[n]=e.ceil(o),t}h();h();h();var Zo=new Date,Ko=new Date;function de(t,e,r,n){function i(o){return t(o=arguments.length===0?new Date:new Date(+o)),o}return i.floor=o=>(t(o=new Date(+o)),o),i.ceil=o=>(t(o=new Date(o-1)),e(o,1),t(o),o),i.round=o=>{let a=i(o),s=i.ceil(o);return o-a<s-o?a:s},i.offset=(o,a)=>(e(o=new Date(+o),a==null?1:Math.floor(a)),o),i.range=(o,a,s)=>{let l=[];if(o=i.ceil(o),s=s==null?1:Math.floor(s),!(o<a)||!(s>0))return l;let c;do l.push(c=new Date(+o)),e(o,s),t(o);while(c<o&&o<a);return l},i.filter=o=>de(a=>{if(a>=a)for(;t(a),!o(a);)a.setTime(a-1)},(a,s)=>{if(a>=a)if(s<0)for(;++s<=0;)for(;e(a,-1),!o(a););else for(;--s>=0;)for(;e(a,1),!o(a););}),r&&(i.count=(o,a)=>(Zo.setTime(+o),Ko.setTime(+a),t(Zo),t(Ko),Math.floor(r(Zo,Ko))),i.every=o=>(o=Math.floor(o),!isFinite(o)||!(o>0)?null:o>1?i.filter(n?a=>n(a)%o===0:a=>i.count(0,a)%o===0):i)),i}h();var jr=de(()=>{},(t,e)=>{t.setTime(+t+e)},(t,e)=>e-t);jr.every=t=>(t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?de(e=>{e.setTime(Math.floor(e/t)*t)},(e,r)=>{e.setTime(+e+r*t)},(e,r)=>(r-e)/t):jr);var nk=jr.range;h();var He=de(t=>{t.setTime(t-t.getMilliseconds())},(t,e)=>{t.setTime(+t+e*1e3)},(t,e)=>(e-t)/1e3,t=>t.getUTCSeconds()),ml=He.range;h();var Gn=de(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*1e3)},(t,e)=>{t.setTime(+t+e*6e4)},(t,e)=>(e-t)/6e4,t=>t.getMinutes()),Tf=Gn.range,rr=de(t=>{t.setUTCSeconds(0,0)},(t,e)=>{t.setTime(+t+e*6e4)},(t,e)=>(e-t)/6e4,t=>t.getUTCMinutes()),Cf=rr.range;h();var $n=de(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*1e3-t.getMinutes()*6e4)},(t,e)=>{t.setTime(+t+e*36e5)},(t,e)=>(e-t)/36e5,t=>t.getHours()),Af=$n.range,nr=de(t=>{t.setUTCMinutes(0,0,0)},(t,e)=>{t.setTime(+t+e*36e5)},(t,e)=>(e-t)/36e5,t=>t.getUTCHours()),Df=nr.range;h();var Nt=de(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*6e4)/864e5,t=>t.getDate()-1),Of=Nt.range,Rt=de(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/864e5,t=>t.getUTCDate()-1),Nf=Rt.range,Wn=de(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/864e5,t=>Math.floor(t/864e5)),Rf=Wn.range;h();function Ft(t){return de(e=>{e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},(e,r)=>{e.setDate(e.getDate()+r*7)},(e,r)=>(r-e-(r.getTimezoneOffset()-e.getTimezoneOffset())*6e4)/6048e5)}var Bt=Ft(0),ir=Ft(1),fl=Ft(2),hl=Ft(3),mt=Ft(4),gl=Ft(5),bl=Ft(6),yl=Bt.range,Ff=ir.range,Bf=fl.range,Lf=hl.range,Ef=mt.range,If=gl.range,Vf=bl.range;function Lt(t){return de(e=>{e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},(e,r)=>{e.setUTCDate(e.getUTCDate()+r*7)},(e,r)=>(r-e)/6048e5)}var et=Lt(0),or=Lt(1),xl=Lt(2),vl=Lt(3),pt=Lt(4),wl=Lt(5),Sl=Lt(6),kl=et.range,zf=or.range,Uf=xl.range,_f=vl.range,jf=pt.range,Gf=wl.range,$f=Sl.range;h();var Hn=de(t=>{t.setDate(1),t.setHours(0,0,0,0)},(t,e)=>{t.setMonth(t.getMonth()+e)},(t,e)=>e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12,t=>t.getMonth()),Wf=Hn.range,ar=de(t=>{t.setUTCDate(1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCMonth(t.getUTCMonth()+e)},(t,e)=>e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12,t=>t.getUTCMonth()),Hf=ar.range;h();var _e=de(t=>{t.setMonth(0,1),t.setHours(0,0,0,0)},(t,e)=>{t.setFullYear(t.getFullYear()+e)},(t,e)=>e.getFullYear()-t.getFullYear(),t=>t.getFullYear());_e.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:de(e=>{e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},(e,r)=>{e.setFullYear(e.getFullYear()+r*t)});var Yf=_e.range,Ie=de(t=>{t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCFullYear(t.getUTCFullYear()+e)},(t,e)=>e.getUTCFullYear()-t.getUTCFullYear(),t=>t.getUTCFullYear());Ie.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:de(e=>{e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,r)=>{e.setUTCFullYear(e.getUTCFullYear()+r*t)});var Xf=Ie.range;h();function Ml(t,e,r,n,i,o){let a=[[He,1,1e3],[He,5,5*1e3],[He,15,15*1e3],[He,30,30*1e3],[o,1,6e4],[o,5,5*6e4],[o,15,15*6e4],[o,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],[e,1,2592e6],[e,3,3*2592e6],[t,1,31536e6]];function s(c,m,d){let p=m<c;p&&([c,m]=[m,c]);let f=d&&typeof d.range=="function"?d:l(c,m,d),b=f?f.range(c,+m+1):[];return p?b.reverse():b}function l(c,m,d){let p=Math.abs(m-c)/d,f=Mt(([,,y])=>y).right(a,p);if(f===a.length)return t.every(Kt(c/31536e6,m/31536e6,d));if(f===0)return jr.every(Math.max(Kt(c,m,d),1));let[b,g]=a[p/a[f-1][2]<a[f][2]/p?f-1:f];return b.every(g)}return[s,l]}var[Qo,Jo]=Ml(Ie,ar,et,Wn,nr,rr),[Zf,Kf]=Ml(_e,Hn,Bt,Nt,$n,Gn);h();h();h();function ea(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function ta(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function $r(t,e,r){return{y:t,m:e,d:r,H:0,M:0,S:0,L:0}}function ra(t){var e=t.dateTime,r=t.date,n=t.time,i=t.periods,o=t.days,a=t.shortDays,s=t.months,l=t.shortMonths,c=Wr(i),m=Hr(i),d=Wr(o),p=Hr(o),f=Wr(a),b=Hr(a),g=Wr(s),y=Hr(s),k=Wr(l),A=Hr(l),T={a:z,A:U,b:ne,B:ce,c:null,d:Nl,e:Nl,f:vh,g:Oh,G:Rh,H:bh,I:yh,j:xh,L:El,m:wh,M:Sh,p:we,q:me,Q:Bl,s:Ll,S:kh,u:Ph,U:Mh,V:Th,w:Ch,W:Ah,x:null,X:null,y:Dh,Y:Nh,Z:Fh,"%":Fl},w={a:B,A:I,b:G,B:Z,c:null,d:Rl,e:Rl,f:Ih,g:Yh,G:qh,H:Bh,I:Lh,j:Eh,L:Vl,m:Vh,M:zh,p:$,q:J,Q:Bl,s:Ll,S:Uh,u:_h,U:jh,V:Gh,w:$h,W:Wh,x:null,X:null,y:Hh,Y:Xh,Z:Zh,"%":Fl},S={a:H,A:ee,b:E,B:P,c:M,d:Dl,e:Dl,f:ph,g:Al,G:Cl,H:Ol,I:Ol,j:lh,L:mh,m:uh,M:ch,p:_,q:sh,Q:hh,s:gh,S:dh,u:rh,U:nh,V:ih,w:th,W:oh,x:Y,X,y:Al,Y:Cl,Z:ah,"%":fh};T.x=x(r,T),T.X=x(n,T),T.c=x(e,T),w.x=x(r,w),w.X=x(n,w),w.c=x(e,w);function x(N,F){return function(W){var D=[],Se=-1,ue=0,Ae=N.length,De,qe,on;for(W instanceof Date||(W=new Date(+W));++Se<Ae;)N.charCodeAt(Se)===37&&(D.push(N.slice(ue,Se)),(qe=Tl[De=N.charAt(++Se)])!=null?De=N.charAt(++Se):qe=De==="e"?" ":"0",(on=F[De])&&(De=on(W,qe)),D.push(De),ue=Se+1);return D.push(N.slice(ue,Se)),D.join("")}}function O(N,F){return function(W){var D=$r(1900,void 0,1),Se=R(D,N,W+="",0),ue,Ae;if(Se!=W.length)return null;if("Q"in D)return new Date(D.Q);if("s"in D)return new Date(D.s*1e3+("L"in D?D.L:0));if(F&&!("Z"in D)&&(D.Z=0),"p"in D&&(D.H=D.H%12+D.p*12),D.m===void 0&&(D.m="q"in D?D.q:0),"V"in D){if(D.V<1||D.V>53)return null;"w"in D||(D.w=1),"Z"in D?(ue=ta($r(D.y,0,1)),Ae=ue.getUTCDay(),ue=Ae>4||Ae===0?or.ceil(ue):or(ue),ue=Rt.offset(ue,(D.V-1)*7),D.y=ue.getUTCFullYear(),D.m=ue.getUTCMonth(),D.d=ue.getUTCDate()+(D.w+6)%7):(ue=ea($r(D.y,0,1)),Ae=ue.getDay(),ue=Ae>4||Ae===0?ir.ceil(ue):ir(ue),ue=Nt.offset(ue,(D.V-1)*7),D.y=ue.getFullYear(),D.m=ue.getMonth(),D.d=ue.getDate()+(D.w+6)%7)}else("W"in D||"U"in D)&&("w"in D||(D.w="u"in D?D.u%7:"W"in D?1:0),Ae="Z"in D?ta($r(D.y,0,1)).getUTCDay():ea($r(D.y,0,1)).getDay(),D.m=0,D.d="W"in D?(D.w+6)%7+D.W*7-(Ae+5)%7:D.w+D.U*7-(Ae+6)%7);return"Z"in D?(D.H+=D.Z/100|0,D.M+=D.Z%100,ta(D)):ea(D)}}function R(N,F,W,D){for(var Se=0,ue=F.length,Ae=W.length,De,qe;Se<ue;){if(D>=Ae)return-1;if(De=F.charCodeAt(Se++),De===37){if(De=F.charAt(Se++),qe=S[De in Tl?F.charAt(Se++):De],!qe||(D=qe(N,W,D))<0)return-1}else if(De!=W.charCodeAt(D++))return-1}return D}function _(N,F,W){var D=c.exec(F.slice(W));return D?(N.p=m.get(D[0].toLowerCase()),W+D[0].length):-1}function H(N,F,W){var D=f.exec(F.slice(W));return D?(N.w=b.get(D[0].toLowerCase()),W+D[0].length):-1}function ee(N,F,W){var D=d.exec(F.slice(W));return D?(N.w=p.get(D[0].toLowerCase()),W+D[0].length):-1}function E(N,F,W){var D=k.exec(F.slice(W));return D?(N.m=A.get(D[0].toLowerCase()),W+D[0].length):-1}function P(N,F,W){var D=g.exec(F.slice(W));return D?(N.m=y.get(D[0].toLowerCase()),W+D[0].length):-1}function M(N,F,W){return R(N,e,F,W)}function Y(N,F,W){return R(N,r,F,W)}function X(N,F,W){return R(N,n,F,W)}function z(N){return a[N.getDay()]}function U(N){return o[N.getDay()]}function ne(N){return l[N.getMonth()]}function ce(N){return s[N.getMonth()]}function we(N){return i[+(N.getHours()>=12)]}function me(N){return 1+~~(N.getMonth()/3)}function B(N){return a[N.getUTCDay()]}function I(N){return o[N.getUTCDay()]}function G(N){return l[N.getUTCMonth()]}function Z(N){return s[N.getUTCMonth()]}function $(N){return i[+(N.getUTCHours()>=12)]}function J(N){return 1+~~(N.getUTCMonth()/3)}return{format:function(N){var F=x(N+="",T);return F.toString=function(){return N},F},parse:function(N){var F=O(N+="",!1);return F.toString=function(){return N},F},utcFormat:function(N){var F=x(N+="",w);return F.toString=function(){return N},F},utcParse:function(N){var F=O(N+="",!0);return F.toString=function(){return N},F}}}var Tl={"-":"",_:" ",0:"0"},Pe=/^\s*\d+/,Qf=/^%/,Jf=/[\\^$*+?|[\]().{}]/g;function ae(t,e,r){var n=t<0?"-":"",i=(n?-t:t)+"",o=i.length;return n+(o<r?new Array(r-o+1).join(e)+i:i)}function eh(t){return t.replace(Jf,"\\$&")}function Wr(t){return new RegExp("^(?:"+t.map(eh).join("|")+")","i")}function Hr(t){return new Map(t.map((e,r)=>[e.toLowerCase(),r]))}function th(t,e,r){var n=Pe.exec(e.slice(r,r+1));return n?(t.w=+n[0],r+n[0].length):-1}function rh(t,e,r){var n=Pe.exec(e.slice(r,r+1));return n?(t.u=+n[0],r+n[0].length):-1}function nh(t,e,r){var n=Pe.exec(e.slice(r,r+2));return n?(t.U=+n[0],r+n[0].length):-1}function ih(t,e,r){var n=Pe.exec(e.slice(r,r+2));return n?(t.V=+n[0],r+n[0].length):-1}function oh(t,e,r){var n=Pe.exec(e.slice(r,r+2));return n?(t.W=+n[0],r+n[0].length):-1}function Cl(t,e,r){var n=Pe.exec(e.slice(r,r+4));return n?(t.y=+n[0],r+n[0].length):-1}function Al(t,e,r){var n=Pe.exec(e.slice(r,r+2));return n?(t.y=+n[0]+(+n[0]>68?1900:2e3),r+n[0].length):-1}function ah(t,e,r){var n=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(r,r+6));return n?(t.Z=n[1]?0:-(n[2]+(n[3]||"00")),r+n[0].length):-1}function sh(t,e,r){var n=Pe.exec(e.slice(r,r+1));return n?(t.q=n[0]*3-3,r+n[0].length):-1}function uh(t,e,r){var n=Pe.exec(e.slice(r,r+2));return n?(t.m=n[0]-1,r+n[0].length):-1}function Dl(t,e,r){var n=Pe.exec(e.slice(r,r+2));return n?(t.d=+n[0],r+n[0].length):-1}function lh(t,e,r){var n=Pe.exec(e.slice(r,r+3));return n?(t.m=0,t.d=+n[0],r+n[0].length):-1}function Ol(t,e,r){var n=Pe.exec(e.slice(r,r+2));return n?(t.H=+n[0],r+n[0].length):-1}function ch(t,e,r){var n=Pe.exec(e.slice(r,r+2));return n?(t.M=+n[0],r+n[0].length):-1}function dh(t,e,r){var n=Pe.exec(e.slice(r,r+2));return n?(t.S=+n[0],r+n[0].length):-1}function mh(t,e,r){var n=Pe.exec(e.slice(r,r+3));return n?(t.L=+n[0],r+n[0].length):-1}function ph(t,e,r){var n=Pe.exec(e.slice(r,r+6));return n?(t.L=Math.floor(n[0]/1e3),r+n[0].length):-1}function fh(t,e,r){var n=Qf.exec(e.slice(r,r+1));return n?r+n[0].length:-1}function hh(t,e,r){var n=Pe.exec(e.slice(r));return n?(t.Q=+n[0],r+n[0].length):-1}function gh(t,e,r){var n=Pe.exec(e.slice(r));return n?(t.s=+n[0],r+n[0].length):-1}function Nl(t,e){return ae(t.getDate(),e,2)}function bh(t,e){return ae(t.getHours(),e,2)}function yh(t,e){return ae(t.getHours()%12||12,e,2)}function xh(t,e){return ae(1+Nt.count(_e(t),t),e,3)}function El(t,e){return ae(t.getMilliseconds(),e,3)}function vh(t,e){return El(t,e)+"000"}function wh(t,e){return ae(t.getMonth()+1,e,2)}function Sh(t,e){return ae(t.getMinutes(),e,2)}function kh(t,e){return ae(t.getSeconds(),e,2)}function Ph(t){var e=t.getDay();return e===0?7:e}function Mh(t,e){return ae(Bt.count(_e(t)-1,t),e,2)}function Il(t){var e=t.getDay();return e>=4||e===0?mt(t):mt.ceil(t)}function Th(t,e){return t=Il(t),ae(mt.count(_e(t),t)+(_e(t).getDay()===4),e,2)}function Ch(t){return t.getDay()}function Ah(t,e){return ae(ir.count(_e(t)-1,t),e,2)}function Dh(t,e){return ae(t.getFullYear()%100,e,2)}function Oh(t,e){return t=Il(t),ae(t.getFullYear()%100,e,2)}function Nh(t,e){return ae(t.getFullYear()%1e4,e,4)}function Rh(t,e){var r=t.getDay();return t=r>=4||r===0?mt(t):mt.ceil(t),ae(t.getFullYear()%1e4,e,4)}function Fh(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+ae(e/60|0,"0",2)+ae(e%60,"0",2)}function Rl(t,e){return ae(t.getUTCDate(),e,2)}function Bh(t,e){return ae(t.getUTCHours(),e,2)}function Lh(t,e){return ae(t.getUTCHours()%12||12,e,2)}function Eh(t,e){return ae(1+Rt.count(Ie(t),t),e,3)}function Vl(t,e){return ae(t.getUTCMilliseconds(),e,3)}function Ih(t,e){return Vl(t,e)+"000"}function Vh(t,e){return ae(t.getUTCMonth()+1,e,2)}function zh(t,e){return ae(t.getUTCMinutes(),e,2)}function Uh(t,e){return ae(t.getUTCSeconds(),e,2)}function _h(t){var e=t.getUTCDay();return e===0?7:e}function jh(t,e){return ae(et.count(Ie(t)-1,t),e,2)}function zl(t){var e=t.getUTCDay();return e>=4||e===0?pt(t):pt.ceil(t)}function Gh(t,e){return t=zl(t),ae(pt.count(Ie(t),t)+(Ie(t).getUTCDay()===4),e,2)}function $h(t){return t.getUTCDay()}function Wh(t,e){return ae(or.count(Ie(t)-1,t),e,2)}function Hh(t,e){return ae(t.getUTCFullYear()%100,e,2)}function Yh(t,e){return t=zl(t),ae(t.getUTCFullYear()%100,e,2)}function Xh(t,e){return ae(t.getUTCFullYear()%1e4,e,4)}function qh(t,e){var r=t.getUTCDay();return t=r>=4||r===0?pt(t):pt.ceil(t),ae(t.getUTCFullYear()%1e4,e,4)}function Zh(){return"+0000"}function Fl(){return"%"}function Bl(t){return+t}function Ll(t){return Math.floor(+t/1e3)}var sr,Ul,_l,Yn,jl;na({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 na(t){return sr=ra(t),Ul=sr.format,_l=sr.parse,Yn=sr.utcFormat,jl=sr.utcParse,sr}function Kh(t){return new Date(t)}function Qh(t){return t instanceof Date?+t:+new Date(+t)}function ia(t,e,r,n,i,o,a,s,l,c){var m=_r(),d=m.invert,p=m.domain,f=c(".%L"),b=c(":%S"),g=c("%I:%M"),y=c("%I %p"),k=c("%a %d"),A=c("%b %d"),T=c("%B"),w=c("%Y");function S(x){return(l(x)<x?f:s(x)<x?b:a(x)<x?g:o(x)<x?y:n(x)<x?i(x)<x?k:A:r(x)<x?T:w)(x)}return m.invert=function(x){return new Date(d(x))},m.domain=function(x){return arguments.length?p(Array.from(x,Qh)):p().map(Kh)},m.ticks=function(x){var O=p();return t(O[0],O[O.length-1],x??10)},m.tickFormat=function(x,O){return O==null?S:c(O)},m.nice=function(x){var O=p();return(!x||typeof x.range!="function")&&(x=e(O[0],O[O.length-1],x??10)),x?p(qo(O,x)):m},m.copy=function(){return jn(m,ia(t,e,r,n,i,o,a,s,l,c))},m}h();function Xn(){return lt.apply(ia(Qo,Jo,Ie,ar,et,Rt,nr,rr,He,Yn).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}h();h();h();function K(t){return function(){return t}}h();var oa=Math.abs,Ce=Math.atan2,ft=Math.cos,Gl=Math.max,qn=Math.min,je=Math.sin,Et=Math.sqrt,Le=1e-12,ur=Math.PI,Yr=ur/2,lr=2*ur;function $l(t){return t>1?0:t<-1?ur:Math.acos(t)}function aa(t){return t>=1?Yr:t<=-1?-Yr:Math.asin(t)}h();h();h();var sa=Math.PI,ua=2*sa,It=1e-6,Jh=ua-It;function Wl(t){this._+=t[0];for(let e=1,r=t.length;e<r;++e)this._+=arguments[e]+t[e]}function eg(t){let e=Math.floor(t);if(!(e>=0))throw new Error(`invalid digits: ${t}`);if(e>15)return Wl;let r=10**e;return function(n){this._+=n[0];for(let i=1,o=n.length;i<o;++i)this._+=Math.round(arguments[i]*r)/r+n[i]}}var Vt=class{constructor(e){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=e==null?Wl:eg(e)}moveTo(e,r){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+r}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(e,r){this._append`L${this._x1=+e},${this._y1=+r}`}quadraticCurveTo(e,r,n,i){this._append`Q${+e},${+r},${this._x1=+n},${this._y1=+i}`}bezierCurveTo(e,r,n,i,o,a){this._append`C${+e},${+r},${+n},${+i},${this._x1=+o},${this._y1=+a}`}arcTo(e,r,n,i,o){if(e=+e,r=+r,n=+n,i=+i,o=+o,o<0)throw new Error(`negative radius: ${o}`);let a=this._x1,s=this._y1,l=n-e,c=i-r,m=a-e,d=s-r,p=m*m+d*d;if(this._x1===null)this._append`M${this._x1=e},${this._y1=r}`;else if(p>It)if(!(Math.abs(d*l-c*m)>It)||!o)this._append`L${this._x1=e},${this._y1=r}`;else{let f=n-a,b=i-s,g=l*l+c*c,y=f*f+b*b,k=Math.sqrt(g),A=Math.sqrt(p),T=o*Math.tan((sa-Math.acos((g+p-y)/(2*k*A)))/2),w=T/A,S=T/k;Math.abs(w-1)>It&&this._append`L${e+w*m},${r+w*d}`,this._append`A${o},${o},0,0,${+(d*f>m*b)},${this._x1=e+S*l},${this._y1=r+S*c}`}}arc(e,r,n,i,o,a){if(e=+e,r=+r,n=+n,a=!!a,n<0)throw new Error(`negative radius: ${n}`);let s=n*Math.cos(i),l=n*Math.sin(i),c=e+s,m=r+l,d=1^a,p=a?i-o:o-i;this._x1===null?this._append`M${c},${m}`:(Math.abs(this._x1-c)>It||Math.abs(this._y1-m)>It)&&this._append`L${c},${m}`,n&&(p<0&&(p=p%ua+ua),p>Jh?this._append`A${n},${n},0,1,${d},${e-s},${r-l}A${n},${n},0,1,${d},${this._x1=c},${this._y1=m}`:p>It&&this._append`A${n},${n},0,${+(p>=sa)},${d},${this._x1=e+n*Math.cos(o)},${this._y1=r+n*Math.sin(o)}`)}rect(e,r,n,i){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+r}h${n=+n}v${+i}h${-n}Z`}toString(){return this._}};function Hl(){return new Vt}Hl.prototype=Vt.prototype;function cr(t){let e=3;return t.digits=function(r){if(!arguments.length)return e;if(r==null)e=null;else{let n=Math.floor(r);if(!(n>=0))throw new RangeError(`invalid digits: ${r}`);e=n}return t},()=>new Vt(e)}function tg(t){return t.innerRadius}function rg(t){return t.outerRadius}function ng(t){return t.startAngle}function ig(t){return t.endAngle}function og(t){return t&&t.padAngle}function ag(t,e,r,n,i,o,a,s){var l=r-t,c=n-e,m=a-i,d=s-o,p=d*l-m*c;if(!(p*p<Le))return p=(m*(e-o)-d*(t-i))/p,[t+p*l,e+p*c]}function Zn(t,e,r,n,i,o,a){var s=t-r,l=e-n,c=(a?o:-o)/Et(s*s+l*l),m=c*l,d=-c*s,p=t+m,f=e+d,b=r+m,g=n+d,y=(p+b)/2,k=(f+g)/2,A=b-p,T=g-f,w=A*A+T*T,S=i-o,x=p*g-b*f,O=(T<0?-1:1)*Et(Gl(0,S*S*w-x*x)),R=(x*T-A*O)/w,_=(-x*A-T*O)/w,H=(x*T+A*O)/w,ee=(-x*A+T*O)/w,E=R-y,P=_-k,M=H-y,Y=ee-k;return E*E+P*P>M*M+Y*Y&&(R=H,_=ee),{cx:R,cy:_,x01:-m,y01:-d,x11:R*(i/S-1),y11:_*(i/S-1)}}function Kn(){var t=tg,e=rg,r=K(0),n=null,i=ng,o=ig,a=og,s=null,l=cr(c);function c(){var m,d,p=+t.apply(this,arguments),f=+e.apply(this,arguments),b=i.apply(this,arguments)-Yr,g=o.apply(this,arguments)-Yr,y=oa(g-b),k=g>b;if(s||(s=m=l()),f<p&&(d=f,f=p,p=d),!(f>Le))s.moveTo(0,0);else if(y>lr-Le)s.moveTo(f*ft(b),f*je(b)),s.arc(0,0,f,b,g,!k),p>Le&&(s.moveTo(p*ft(g),p*je(g)),s.arc(0,0,p,g,b,k));else{var A=b,T=g,w=b,S=g,x=y,O=y,R=a.apply(this,arguments)/2,_=R>Le&&(n?+n.apply(this,arguments):Et(p*p+f*f)),H=qn(oa(f-p)/2,+r.apply(this,arguments)),ee=H,E=H,P,M;if(_>Le){var Y=aa(_/p*je(R)),X=aa(_/f*je(R));(x-=Y*2)>Le?(Y*=k?1:-1,w+=Y,S-=Y):(x=0,w=S=(b+g)/2),(O-=X*2)>Le?(X*=k?1:-1,A+=X,T-=X):(O=0,A=T=(b+g)/2)}var z=f*ft(A),U=f*je(A),ne=p*ft(S),ce=p*je(S);if(H>Le){var we=f*ft(T),me=f*je(T),B=p*ft(w),I=p*je(w),G;if(y<ur)if(G=ag(z,U,B,I,we,me,ne,ce)){var Z=z-G[0],$=U-G[1],J=we-G[0],N=me-G[1],F=1/je($l((Z*J+$*N)/(Et(Z*Z+$*$)*Et(J*J+N*N)))/2),W=Et(G[0]*G[0]+G[1]*G[1]);ee=qn(H,(p-W)/(F-1)),E=qn(H,(f-W)/(F+1))}else ee=E=0}O>Le?E>Le?(P=Zn(B,I,z,U,f,E,k),M=Zn(we,me,ne,ce,f,E,k),s.moveTo(P.cx+P.x01,P.cy+P.y01),E<H?s.arc(P.cx,P.cy,E,Ce(P.y01,P.x01),Ce(M.y01,M.x01),!k):(s.arc(P.cx,P.cy,E,Ce(P.y01,P.x01),Ce(P.y11,P.x11),!k),s.arc(0,0,f,Ce(P.cy+P.y11,P.cx+P.x11),Ce(M.cy+M.y11,M.cx+M.x11),!k),s.arc(M.cx,M.cy,E,Ce(M.y11,M.x11),Ce(M.y01,M.x01),!k))):(s.moveTo(z,U),s.arc(0,0,f,A,T,!k)):s.moveTo(z,U),!(p>Le)||!(x>Le)?s.lineTo(ne,ce):ee>Le?(P=Zn(ne,ce,we,me,p,-ee,k),M=Zn(z,U,B,I,p,-ee,k),s.lineTo(P.cx+P.x01,P.cy+P.y01),ee<H?s.arc(P.cx,P.cy,ee,Ce(P.y01,P.x01),Ce(M.y01,M.x01),!k):(s.arc(P.cx,P.cy,ee,Ce(P.y01,P.x01),Ce(P.y11,P.x11),!k),s.arc(0,0,p,Ce(P.cy+P.y11,P.cx+P.x11),Ce(M.cy+M.y11,M.cx+M.x11),k),s.arc(M.cx,M.cy,ee,Ce(M.y11,M.x11),Ce(M.y01,M.x01),!k))):s.arc(0,0,p,S,w,k)}if(s.closePath(),m)return s=null,m+""||null}return c.centroid=function(){var m=(+t.apply(this,arguments)+ +e.apply(this,arguments))/2,d=(+i.apply(this,arguments)+ +o.apply(this,arguments))/2-ur/2;return[ft(d)*m,je(d)*m]},c.innerRadius=function(m){return arguments.length?(t=typeof m=="function"?m:K(+m),c):t},c.outerRadius=function(m){return arguments.length?(e=typeof m=="function"?m:K(+m),c):e},c.cornerRadius=function(m){return arguments.length?(r=typeof m=="function"?m:K(+m),c):r},c.padRadius=function(m){return arguments.length?(n=m==null?null:typeof m=="function"?m:K(+m),c):n},c.startAngle=function(m){return arguments.length?(i=typeof m=="function"?m:K(+m),c):i},c.endAngle=function(m){return arguments.length?(o=typeof m=="function"?m:K(+m),c):o},c.padAngle=function(m){return arguments.length?(a=typeof m=="function"?m:K(+m),c):a},c.context=function(m){return arguments.length?(s=m??null,c):s},c}h();h();var I2=Array.prototype.slice;function ht(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}h();function Yl(t){this._context=t}Yl.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(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e);break}}};function zt(t){return new Yl(t)}h();h();function Qn(t){return t[0]}function Jn(t){return t[1]}function Xr(t,e){var r=K(!0),n=null,i=zt,o=null,a=cr(s);t=typeof t=="function"?t:t===void 0?Qn:K(t),e=typeof e=="function"?e:e===void 0?Jn:K(e);function s(l){var c,m=(l=ht(l)).length,d,p=!1,f;for(n==null&&(o=i(f=a())),c=0;c<=m;++c)!(c<m&&r(d=l[c],c,l))===p&&((p=!p)?o.lineStart():o.lineEnd()),p&&o.point(+t(d,c,l),+e(d,c,l));if(f)return o=null,f+""||null}return s.x=function(l){return arguments.length?(t=typeof l=="function"?l:K(+l),s):t},s.y=function(l){return arguments.length?(e=typeof l=="function"?l:K(+l),s):e},s.defined=function(l){return arguments.length?(r=typeof l=="function"?l:K(!!l),s):r},s.curve=function(l){return arguments.length?(i=l,n!=null&&(o=i(n)),s):i},s.context=function(l){return arguments.length?(l==null?n=o=null:o=i(n=l),s):n},s}function la(t,e,r){var n=null,i=K(!0),o=null,a=zt,s=null,l=cr(c);t=typeof t=="function"?t:t===void 0?Qn:K(+t),e=typeof e=="function"?e:e===void 0?K(0):K(+e),r=typeof r=="function"?r:r===void 0?Jn:K(+r);function c(d){var p,f,b,g=(d=ht(d)).length,y,k=!1,A,T=new Array(g),w=new Array(g);for(o==null&&(s=a(A=l())),p=0;p<=g;++p){if(!(p<g&&i(y=d[p],p,d))===k)if(k=!k)f=p,s.areaStart(),s.lineStart();else{for(s.lineEnd(),s.lineStart(),b=p-1;b>=f;--b)s.point(T[b],w[b]);s.lineEnd(),s.areaEnd()}k&&(T[p]=+t(y,p,d),w[p]=+e(y,p,d),s.point(n?+n(y,p,d):T[p],r?+r(y,p,d):w[p]))}if(A)return s=null,A+""||null}function m(){return Xr().defined(i).curve(a).context(o)}return c.x=function(d){return arguments.length?(t=typeof d=="function"?d:K(+d),n=null,c):t},c.x0=function(d){return arguments.length?(t=typeof d=="function"?d:K(+d),c):t},c.x1=function(d){return arguments.length?(n=d==null?null:typeof d=="function"?d:K(+d),c):n},c.y=function(d){return arguments.length?(e=typeof d=="function"?d:K(+d),r=null,c):e},c.y0=function(d){return arguments.length?(e=typeof d=="function"?d:K(+d),c):e},c.y1=function(d){return arguments.length?(r=d==null?null:typeof d=="function"?d:K(+d),c):r},c.lineX0=c.lineY0=function(){return m().x(t).y(e)},c.lineY1=function(){return m().x(t).y(r)},c.lineX1=function(){return m().x(n).y(e)},c.defined=function(d){return arguments.length?(i=typeof d=="function"?d:K(!!d),c):i},c.curve=function(d){return arguments.length?(a=d,o!=null&&(s=a(o)),c):a},c.context=function(d){return arguments.length?(d==null?o=s=null:s=a(o=d),c):o},c}h();h();function Xl(t,e){return e<t?-1:e>t?1:e>=t?0:NaN}h();function ql(t){return t}function ca(){var t=ql,e=Xl,r=null,n=K(0),i=K(lr),o=K(0);function a(s){var l,c=(s=ht(s)).length,m,d,p=0,f=new Array(c),b=new Array(c),g=+n.apply(this,arguments),y=Math.min(lr,Math.max(-lr,i.apply(this,arguments)-g)),k,A=Math.min(Math.abs(y)/c,o.apply(this,arguments)),T=A*(y<0?-1:1),w;for(l=0;l<c;++l)(w=b[f[l]=l]=+t(s[l],l,s))>0&&(p+=w);for(e!=null?f.sort(function(S,x){return e(b[S],b[x])}):r!=null&&f.sort(function(S,x){return r(s[S],s[x])}),l=0,d=p?(y-c*T)/p:0;l<c;++l,g=k)m=f[l],w=b[m],k=g+(w>0?w*d:0)+T,b[m]={data:s[m],index:l,value:w,startAngle:g,endAngle:k,padAngle:A};return b}return a.value=function(s){return arguments.length?(t=typeof s=="function"?s:K(+s),a):t},a.sortValues=function(s){return arguments.length?(e=s,r=null,a):e},a.sort=function(s){return arguments.length?(r=s,e=null,a):r},a.startAngle=function(s){return arguments.length?(n=typeof s=="function"?s:K(+s),a):n},a.endAngle=function(s){return arguments.length?(i=typeof s=="function"?s:K(+s),a):i},a.padAngle=function(s){return arguments.length?(o=typeof s=="function"?s:K(+s),a):o},a}h();function Zl(t){return t<0?-1:1}function Kl(t,e,r){var n=t._x1-t._x0,i=e-t._x1,o=(t._y1-t._y0)/(n||i<0&&-0),a=(r-t._y1)/(i||n<0&&-0),s=(o*i+a*n)/(n+i);return(Zl(o)+Zl(a))*Math.min(Math.abs(o),Math.abs(a),.5*Math.abs(s))||0}function Ql(t,e){var r=t._x1-t._x0;return r?(3*(t._y1-t._y0)/r-e)/2:e}function da(t,e,r){var n=t._x0,i=t._y0,o=t._x1,a=t._y1,s=(o-n)/3;t._context.bezierCurveTo(n+s,i+s*e,o-s,a-s*r,o,a)}function ei(t){this._context=t}ei.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:da(this,this._t0,Ql(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){var r=NaN;if(t=+t,e=+e,!(t===this._x1&&e===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,da(this,Ql(this,r=Kl(this,t,e)),r);break;default:da(this,this._t0,r=Kl(this,t,e));break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=r}}};function sg(t){this._context=new Jl(t)}(sg.prototype=Object.create(ei.prototype)).point=function(t,e){ei.prototype.point.call(this,e,t)};function Jl(t){this._context=t}Jl.prototype={moveTo:function(t,e){this._context.moveTo(e,t)},closePath:function(){this._context.closePath()},lineTo:function(t,e){this._context.lineTo(e,t)},bezierCurveTo:function(t,e,r,n,i,o){this._context.bezierCurveTo(e,t,n,r,o,i)}};function ma(t){return new ei(t)}h();function ec(t,e){this._context=t,this._t=e}ec.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(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var r=this._x*(1-this._t)+t*this._t;this._context.lineTo(r,this._y),this._context.lineTo(r,e)}break}}this._x=t,this._y=e}};function pa(t){return new ec(t,1)}h();h();function fa(t,e){if((a=t.length)>1)for(var r=1,n,i,o=t[e[0]],a,s=o.length;r<a;++r)for(i=o,o=t[e[r]],n=0;n<s;++n)o[n][1]+=o[n][0]=isNaN(i[n][1])?i[n][0]:i[n][1]}h();function ha(t){for(var e=t.length,r=new Array(e);--e>=0;)r[e]=e;return r}function ug(t,e){return t[e]}function lg(t){let e=[];return e.key=t,e}function ga(){var t=K([]),e=ha,r=fa,n=ug;function i(o){var a=Array.from(t.apply(this,arguments),lg),s,l=a.length,c=-1,m;for(let d of o)for(s=0,++c;s<l;++s)(a[s][c]=[0,+n(d,a[s].key,c,o)]).data=d;for(s=0,m=ht(e(a));s<l;++s)a[m[s]].index=s;return r(a,m),a}return i.keys=function(o){return arguments.length?(t=typeof o=="function"?o:K(Array.from(o)),i):t},i.value=function(o){return arguments.length?(n=typeof o=="function"?o:K(+o),i):n},i.order=function(o){return arguments.length?(e=o==null?ha:typeof o=="function"?o:K(Array.from(o)),i):e},i.offset=function(o){return arguments.length?(r=o??fa,i):r},i}h();function ba(t,e){if((l=t.length)>0)for(var r,n=0,i,o,a,s,l,c=t[e[0]].length;n<c;++n)for(a=s=0,r=0;r<l;++r)(o=(i=t[e[r]][n])[1]-i[0])>0?(i[0]=a,i[1]=a+=o):o<0?(i[1]=s,i[0]=s+=o):(i[0]=0,i[1]=o)}var ic=["#6366f1","#22d3ee","#f59e0b","#ec4899","#10b981","#8b5cf6","#f97316","#3b82f6"],cg=t=>typeof t=="object"&&t!==null&&"open"in t&&"close"in t,dg=t=>typeof t=="object"&&t!==null&&"label"in t&&"value"in t;function mg(t){return t==="linear"?zt:t==="step"?pa:ma}function ya(t,e){let r=/^#([0-9a-f]{3}|[0-9a-f]{6})$/i.exec(t.trim());if(!r)return t;let n=r[1];n.length===3&&(n=[...n].map(o=>o+o).join(""));let i=parseInt(n,16);return`rgba(${i>>16&255}, ${i>>8&255}, ${i&255}, ${e})`}function tc(t){if(!t?.format)return null;if(typeof t.format=="function")return t.format;let e=qt(t.format);return r=>typeof r=="number"?e(r):String(r)}function te(t){return Math.round(t*100)/100}function dr(t,e=0,r=t.duration){return oe.create().fromTo("opacity",0,1,{start:t.start+e,end:t.start+e+Math.max(1,r),ease:"power2.out"})}function oc(t,e,r){let n=e.id??Q("chart"),i=t.width??(typeof e.width=="number"?e.width:960),o=t.height??(typeof e.height=="number"?e.height:540),a=t.type??"line",s=t.fontSize??18,l=t.fontFamily??r,c=t.textColor??"#94a3b8",m=t.textColor??"#e2e8f0",d=t.gridColor??"rgba(148, 163, 184, 0.18)",p=t.colors?.length?t.colors:ic,f=t.cornerRadius??4,b=t.animate===!1?void 0:t.animate??{},g={enabled:b!==void 0,start:b?.start??0,duration:b?.duration??30,stagger:b?.stagger??-1,ease:b?.ease??"power3.out"},y=[],k=(P,M,Y,X={},z="")=>{let U=L.text(P,{id:`${n}-label-${z||y.length}`,position:"absolute",x:te(M.x),y:te(M.y),width:te(M.width),height:te(M.height),fontFamily:l,fontSize:s,fontWeight:X.weight??500,fill:X.color??c,align:Y,verticalAlign:"middle"});g.enabled&&U.animate(dr(g,X.delay??0)),y.push(U)},A=Math.ceil(s*1.4);a==="pie"||a==="donut"?T():S();for(let P of y)ac(P);return L.box({background:t.background??"transparent",...e,id:n,width:i,height:o,children:y});function T(){let P=w(),M=P.reduce((Z,$)=>Z+Math.max(0,$.value),0),Y=t.legend??!0,X=O({top:16,right:Y?_(P.map(Z=>Z.label)):16,bottom:16,left:16}),z=R(X),U=Math.max(1,Math.min(z.width,z.height)/2),ne=U*(t.innerRadius??(a==="donut"?.6:0)),ce=z.x+z.width/2,we=z.y+z.height/2,me=4,B=ca().sort(null).value(Z=>Math.max(0,Z.value)).padAngle(P.length>1?.012:0)(P),I=Kn().innerRadius(ne).outerRadius(U).cornerRadius(Math.min(f,(U-ne)/2)),G=x(B.length);B.forEach((Z,$)=>{let J=I(Z);if(!J)return;let N=P[$].color??p[$%p.length],F=L.shape("path",{id:`${n}-slice-${$}`,position:"absolute",x:te(ce-U-me),y:te(we-U-me),width:te(2*(U+me)),height:te(2*(U+me)),d:pg(J,U+me,U+me),fillColor:N,anchorX:.5,anchorY:.5});if(g.enabled){let W=g.start+$*G;F.animate(oe.create().fromTo("opacity",0,1,{start:W,end:W+g.duration*.5}).fromTo("scale",.85,1,{start:W,end:W+g.duration,ease:g.ease}))}if(y.push(F),t.valueLabels&&M>0&&Z.value>0){let[W,D]=Kn().innerRadius(ne||U*.55).outerRadius(U).centroid(Z),Se=`${Math.round(Z.value/M*100)}%`;k(Se,{x:ce+W-60,y:we+D-A/2,width:120,height:A},"center",{delay:$*G+g.duration*.5,color:"#ffffff",weight:700},`value-${$}`)}}),Y&&H(P.map((Z,$)=>({name:Z.label,color:Z.color??p[$%p.length]})),{x:z.x+z.width+24,y:z.y,height:z.height})}function w(){return(t.data??t.series?.[0]?.data??[]).map((M,Y)=>{if(dg(M))return M;let X=typeof M=="number"?M:Array.isArray(M)?Number(M[1]):Number(M.y);return{label:t.categories?.[Y]??(Array.isArray(M)?String(M[0]):typeof M=="object"&&M?String(M.x):`${Y+1}`),value:X}})}function S(){let P=t.series?.length?[...t.series]:t.data?[{data:t.data}]:[];if(P.length===0)return;let M=C=>C.type??a??"line",Y=(C,V)=>C.color??p[V%p.length],X=P.map(C=>C.data.map((V,re)=>cg(V)?{x:V.x,y:V.close}:typeof V=="number"?{x:t.categories?.[re]??re,y:V}:Array.isArray(V)?{x:V[0],y:Number(V[1])}:{x:V.x,y:Number(V.y)})),z=P.some(C=>M(C)==="bar"||M(C)==="candlestick"),U=X.flat().map(C=>C.x),ne=z||U.some(C=>typeof C=="string")?"band":U.some(C=>C instanceof Date)?"time":"linear",ce=C=>M(C)==="bar"||M(C)==="area",we=!!t.stacked,me=ne==="band"?[...new Set(U.map(String))]:[],B=new Map;if(we){let C=P.map((fe,Me)=>Me).filter(fe=>ce(P[fe])),V=me.length?me:[...new Set(U.map(fe=>+fe))].sort((fe,Me)=>fe-Me).map(String),re=V.map(fe=>{let Me={};for(let Oe of C){let Ne=X[Oe].find(ke=>String(ne==="band"?ke.x:+ke.x)===fe);Me[Oe]=Ne?.y??0}return Me});ga().keys(C.map(String)).offset(ba)(re).forEach(fe=>{let Me=Number(fe.key);B.set(Me,X[Me].map(Oe=>{let Ne=V.indexOf(String(ne==="band"?Oe.x:+Oe.x));return[fe[Ne][0],fe[Ne][1]]}))})}let I=[0];P.forEach((C,V)=>{let re=B.get(V);if(M(C)==="candlestick")for(let pe of C.data)I.push(pe.high,pe.low);else if(re)for(let[pe,fe]of re)I.push(pe,fe);else for(let pe of X[V])I.push(pe.y)}),P.every(C=>M(C)==="candlestick"||M(C)==="scatter"||M(C)==="line")&&I.shift();let G=t.yAxis??{},Z=t.xAxis??{},$=G.ticks??5,J=G.min??Math.min(...I),N=G.max??Math.max(...I);(!Number.isFinite(J)||!Number.isFinite(N))&&([J,N]=[0,1]),J===N&&([J,N]=[J-1,N+1]);let F=tr().domain([J,N]);(G.min===void 0||G.max===void 0)&&F.nice($);let W=tc(G)??(C=>F.tickFormat($)(C)),D=F.ticks($),Se=P.map((C,V)=>({name:C.name??`Series ${V+1}`,color:Y(C,V)})),ue=t.legend??P.length>1,Ae=G.show!==!1,De=Z.show!==!1,qe=Ae?Math.max(...D.map(C=>W(C).length))*s*.7+20:0,on=O({top:(ue?A+20:0)+Math.ceil(A/2),right:20,bottom:De?A+14:12,left:Math.max(16,Math.ceil(qe))}),ie=R(on),La=A+6,Ea=t.valueLabels?P.flatMap((C,V)=>M(C)==="bar"?X[V].map(re=>re.y):[]):[],jc=Ea.some(C=>C>0)?La:0,Gc=Ea.some(C=>C<0)?La:0;F.range([ie.height-Gc,jc]);let Ze;if(ne==="band")Ze=Er().domain(me).range([0,ie.width]).paddingInner(z?.28:0).paddingOuter(z?.14:.5);else if(ne==="time"){let C=U.map(V=>+new Date(V));Ze=Xn().domain([Math.min(...C),Math.max(...C)]).range([0,ie.width])}else{let C=U.map(Number);Ze=tr().domain([Z.min??Math.min(...C),Z.max??Math.max(...C)]).range([0,ie.width])}let Ia=C=>{if(ne==="band"){let V=Ze;return(V(String(C))??0)+V.bandwidth()/2}return Ze(ne==="time"?new Date(C):Number(C))},Va=0;G.grid!==!1&&D.forEach((C,V)=>{let re=L.box({id:`${n}-ygrid-${V}`,position:"absolute",x:ie.x,y:te(ie.y+F(C)-.5),width:ie.width,height:1,background:d});g.enabled&&re.animate(dr(g,Va,g.duration/2)),y.push(re)}),Ae&&D.forEach((C,V)=>{k(W(C),{x:0,y:ie.y+F(C)-A/2,width:ie.x-12,height:A},"end",{},`y-${V}`)});let gr=[],an=tc(Z);if(ne==="band"){let C=Ze,V=Math.max(1,Math.ceil(me.length/Math.max(1,Math.floor(ie.width/(s*4)))));me.forEach((re,pe)=>{pe%V===0&&gr.push({pos:(C(re)??0)+C.bandwidth()/2,text:an?an(re):re})})}else{let C=Ze,V=Z.ticks??Math.max(2,Math.floor(ie.width/(s*6))),re=C.tickFormat(V);for(let pe of C.ticks(V))gr.push({pos:C(pe),text:an?an(ne==="time"?new Date(pe):pe):re(pe)})}if(Z.grid&&gr.forEach((C,V)=>{let re=L.box({id:`${n}-xgrid-${V}`,position:"absolute",x:te(ie.x+C.pos-.5),y:ie.y,width:1,height:ie.height,background:d});g.enabled&&re.animate(dr(g,Va,g.duration/2)),y.push(re)}),De){let C=Math.max(s*3,ie.width/Math.max(1,gr.length));gr.forEach((V,re)=>{k(V.text,{x:ie.x+V.pos-C/2,y:ie.y+ie.height+10,width:C,height:A},"center",{},`x-${re}`)})}let[$c,Wc]=F.domain();if($c<=0&&Wc>=0&&z){let C=L.box({id:`${n}-zero`,position:"absolute",x:ie.x,y:te(ie.y+F(0)-1),width:ie.width,height:2,background:ya("#94a3b8",.45)});g.enabled&&C.animate(dr(g,0,g.duration/2)),y.push(C)}let sn=P.map((C,V)=>V).filter(C=>M(P[C])==="bar"),Hc=[...sn,...P.map((C,V)=>V).filter(C=>M(P[C])==="candlestick"),...P.map((C,V)=>V).filter(C=>M(P[C])==="area"),...P.map((C,V)=>V).filter(C=>M(P[C])==="line"),...P.map((C,V)=>V).filter(C=>M(P[C])==="scatter")],it=ne==="band"?Ze:null,za=it?x(me.length):0,Ua=C=>it?me.indexOf(String(C)):0;Hc.forEach((C,V)=>{let re=P[C],pe=Y(re,C),fe=M(re),Me=X[C],Oe=B.get(C);if(fe==="bar"&&it){let Ne=we?1:sn.length,ke=we?0:sn.indexOf(C),Re=it.bandwidth()/Ne,he=Ne>1?Math.min(4,Re*.12):0;Me.forEach((Fe,Ge)=>{let[ot,Te]=Oe?Oe[Ge]:[0,Fe.y],ye=ie.y+F(Math.max(ot,Te)),un=ie.y+F(Math.min(ot,Te)),Be=Math.max(0,un-ye),br=ie.x+(it(String(Fe.x))??0)+ke*Re+he/2,bt=Fe.y>=0?"up":"down",ln=L.box({id:`${n}-bar-${C}-${Ge}`,position:"absolute",x:te(br),y:te(ye),width:te(Math.max(1,Re-he)),height:te(Be),background:pe,borderRadius:Math.min(f,(Re-he)/2,Be/2)}),ja=Ua(Fe.x)*za+(we?sn.indexOf(C)*g.duration*.6:0);if(g.enabled){let yr=g.start+ja,cn=yr+g.duration,Ga=oe.create().fromTo("height",0,te(Be),{start:yr,end:cn,ease:g.ease});bt==="up"&&Ga.fromTo("y",te(ye+Be),te(ye),{start:yr,end:cn,ease:g.ease}),ln.animate(Ga)}if(y.push(ln),t.valueLabels){let yr=W(Fe.y),cn=bt==="up"?ye-A-4:ye+Be+4;k(yr,{x:br-30,y:cn,width:Re-he+60,height:A},"center",{delay:ja+g.duration*.6,color:m,weight:600},`value-${C}-${Ge}`)}});return}if(fe==="candlestick"&&it){let Ne=t.upColor??"#22c55e",ke=t.downColor??"#ef4444",Re=it.bandwidth();re.data.forEach((he,Fe)=>{let Ge=he.close>=he.open?Ne:ke,ot=ie.x+(it(String(he.x))??0)+Re/2,Te=Ua(he.x)*za,ye=[["wick",{x:ot-Math.max(1,Re*.06),y:ie.y+F(he.high),width:Math.max(2,Re*.12),height:Math.max(1,F(he.low)-F(he.high))}],["body",{x:ot-Re/2,y:ie.y+F(Math.max(he.open,he.close)),width:Re,height:Math.max(2,Math.abs(F(he.open)-F(he.close)))}]];for(let[un,Be]of ye){let br=L.box({id:`${n}-candle-${C}-${Fe}-${un}`,position:"absolute",x:te(Be.x),y:te(Be.y),width:te(Be.width),height:te(Be.height),background:Ge,borderRadius:un==="body"?Math.min(f/2,Be.width/2):0});if(g.enabled){let bt=g.start+Te,ln=Be.y+Be.height/2;br.animate(oe.create().fromTo("height",0,te(Be.height),{start:bt,end:bt+g.duration,ease:g.ease}).fromTo("y",te(ln),te(Be.y),{start:bt,end:bt+g.duration,ease:g.ease}))}y.push(br)}});return}if(fe==="line"||fe==="area"){let Ne=re.strokeWidth??3,ke=Math.ceil(Ne*2+(re.pointRadius??0)+2),Re=Me.map((Te,ye)=>({x:Ia(Te.x)+ke,top:F(Oe?Oe[ye][1]:Te.y)+ke,base:F(Oe?Oe[ye][0]:Math.max(F.domain()[0],Math.min(0,F.domain()[1])))+ke})),he=mg(re.curve),Fe={x:ie.x-ke,y:ie.y-ke,width:ie.width+2*ke,height:ie.height+2*ke},Ge=V*(g.duration/3);if(fe==="area"){let Te=la().x(ye=>ye.x).y0(ye=>ye.base).y1(ye=>ye.top).curve(he)(Re);if(Te){let ye=L.shape("path",{id:`${n}-area-${C}`,position:"absolute",...rc(Fe),d:nc(Te),fillType:"linear",fillColor:ya(pe,.45),gradientEndColor:ya(pe,.02),gradientAngle:90});g.enabled&&ye.animate(dr(g,Ge+g.duration*.4,g.duration)),y.push(ye)}}let ot=Xr().x(Te=>Te.x).y(Te=>Te.top).curve(he)(Re);if(ot&&Ne>0){let Te=L.shape("path",{id:`${n}-line-${C}`,position:"absolute",...rc(Fe),d:nc(ot),fillType:"none",strokeColor:pe,strokeWidth:Ne,strokeLineCap:"round",strokeLineJoin:"round"});g.enabled&&Te.animate(oe.create().fromTo("trimEnd",0,1,{start:g.start+Ge,end:g.start+Ge+g.duration*1.5,ease:"power2.inOut"})),y.push(Te)}(re.pointRadius??0)>0&&_a(C,Me,pe,re.pointRadius??0,Ge+g.duration*.5,Oe);return}fe==="scatter"&&_a(C,Me,pe,re.pointRadius??6,V*(g.duration/3),Oe)}),ue&&ee(Se);function _a(C,V,re,pe,fe,Me){let Oe=x(V.length);V.forEach((Ne,ke)=>{let Re=F(Me?Me[ke][1]:Ne.y),he=L.shape("circle",{id:`${n}-point-${C}-${ke}`,position:"absolute",x:te(ie.x+Ia(Ne.x)-pe),y:te(ie.y+Re-pe),width:te(pe*2),height:te(pe*2),fillColor:re,anchorX:.5,anchorY:.5});if(g.enabled){let Fe=g.start+fe+ke*Oe;he.animate(oe.create().fromTo("scale",0,1,{start:Fe,end:Fe+g.duration*.6,ease:"back.out(2)"}).fromTo("opacity",0,1,{start:Fe,end:Fe+6}))}y.push(he)})}}function x(P){return!g.enabled||P<=1?0:g.stagger>=0?g.stagger:Math.min(4,g.duration/P)}function O(P){let M=t.padding;return typeof M=="number"?{top:M,right:M,bottom:M,left:M}:{top:M?.top??P.top,right:M?.right??P.right,bottom:M?.bottom??P.bottom,left:M?.left??P.left}}function R(P){return{x:P.left,y:P.top,width:Math.max(1,i-P.left-P.right),height:Math.max(1,o-P.top-P.bottom)}}function _(P){let M=Math.max(0,...P.map(Y=>Y.length));return Math.min(i*.4,M*s*.6+s+48)}function H(P,M){let Y=A+8,X=M.y+Math.max(0,(M.height-P.length*Y)/2);P.forEach((z,U)=>{E(z,M.x,X+U*Y,U)})}function ee(P){let M=P.map(z=>z.name.length*s*.6+s+28),Y=M.reduce((z,U)=>z+U,0),X=Math.max(0,i-Y-20);P.forEach((z,U)=>{E(z,X,4,U),X+=M[U]})}function E(P,M,Y,X){let z=Math.round(s*.7),U=L.box({id:`${n}-legend-swatch-${X}`,position:"absolute",x:te(M),y:te(Y+(A-z)/2),width:z,height:z,borderRadius:Math.round(z/4),background:P.color});g.enabled&&U.animate(dr(g,0,g.duration/2)),y.push(U),k(P.name,{x:M+z+8,y:Y,width:P.name.length*s*.6+12,height:A},"start",{color:t.textColor??"#cbd5e1"},`legend-${X}`)}}function ac(t){for(let e of t.animation?.tracks??[])for(let r of e.keyframes??[])r.frame=Math.round(r.frame);for(let e of t.children??[])ac(e)}function rc(t){return{x:te(t.x),y:te(t.y),width:te(t.width),height:te(t.height)}}function nc(t){return t.replace(/-?\d*\.\d{3,}(?:e-?\d+)?/gi,e=>String(te(Number(e))))}function pg(t,e,r){let n=[],i=/([MLAZ])([^MLAZ]*)/gi;for(let[,o,a]of t.matchAll(i)){let s=(a.match(/-?\d*\.?\d+(?:e-?\d+)?/gi)??[]).map(Number);if(o.toUpperCase()==="A")for(let l=0;l+6<s.length;l+=7)s[l+5]+=e,s[l+6]+=r;else if(o.toUpperCase()!=="Z")for(let l=0;l+1<s.length;l+=2)s[l]+=e,s[l+1]+=r;n.push(o+s.map(te).join(","))}return n.join("")}h();var sc=24,fg=1,qr=class{source;fps;startFrame;trimStartSec;smoothing;options;results=new Map;sourceWidth=0;sourceHeight=0;cellW=0;cellH=0;cell;queue=Promise.resolve();runner;cacheLoaded;unsaved=0;unsavedSubjects=0;blurred=new Map;smoothed=new Map;personView;subjects=new Map;wantSubjects=!1;subjectsLoaded;constructor(e,r,n={}){this.source=e,this.options=n,this.fps=n.fps??r,this.startFrame=Math.round(n.startFrame??0),this.trimStartSec=n.trimStartSec??0,this.smoothing=Math.max(0,Math.round(n.smoothing??2)),this.cell=Math.max(1,Math.round(n.maskCell??8))}get person(){return this.personView??=new ti(this),this.personView}ready(e,r=e){let[n,i]=this.window(e,r);return this.queue=this.queue.then(()=>this.compute(n,i)),this.queue}isReady(e){let[r,n]=this.window(e,e);for(let i=r;i<=n;i++)if(!this.results.has(i))return!1;return!0}keepSubjects(){this.wantSubjects=!0}subject(e,r){let n=e*this.fps/r;if(Math.abs(n-Math.round(n))>1e-6)return;let i=this.subjects.get(Math.round(n));if(i===void 0)return i;if(i===null||!this.sourceWidth)return null;let o=this.sourceWidth,a=this.sourceHeight;return{category:i.category,mask:vg(i,o*a),width:o,height:a,area:i.area,coverage:i.area/(o*a),detectionIndex:-1}}clipFrame(e){return e-this.startFrame+this.trimStartSec*this.fps}window(e,r){let n=Math.floor(this.clipFrame(Math.min(e,r))),i=Math.ceil(this.clipFrame(Math.max(e,r)));return[Math.max(0,n-sc-this.smoothing),Math.max(0,i+this.smoothing)]}analysed(e){return this.results.has(e)&&(!this.wantSubjects||this.subjects.has(e))}async compute(e,r){this.cacheLoaded??=this.loadCache(),await this.cacheLoaded,this.wantSubjects&&(this.subjectsLoaded??=this.loadSubjects(),await this.subjectsLoaded);let n=!1;for(let s=e;s<=r;s++)this.analysed(s)||(n=!0);if(!n)return;let i=this.options.pose??!0,o=this.options.mask??!0;this.runner??=Sr.create({modelsDir:this.options.modelsDir,baseUrl:this.options.baseUrl,...this.options.confidence!==void 0&&{confidence:this.options.confidence},...this.options.variant!==void 0&&{variant:this.options.variant}});let a=fn.getVideo(this.source,!0,"clip-vision");for(let s=e;s<=r;s++){if(this.analysed(s))continue;let l=await gg(await a.getFrame(s/this.fps));if(!l){this.results.set(s,{kp:null,mask:null}),this.wantSubjects&&this.subjects.set(s,null);continue}this.sourceWidth||this.setSize(l.width,l.height);let c=this.results.get(s),m=c?.kp??null,d=c?.mask??null;if(i&&!c){let f=(await this.runner.pose(l)).people[0];if(f){m=new Float32Array(51);for(let[b,g]of f.keypoints.entries())m.set([g.x,g.y,g.visibility],b*3)}}let p=o&&!c||this.wantSubjects?await this.runner.segment(l):void 0;if(p&&this.wantSubjects){let f=is(p.masks);this.subjects.set(s,f?{category:f.category,area:f.area,...xg(f.mask)}:null),this.unsavedSubjects++}if(p&&o&&!c){let f=bg(p);f&&(d=new Uint8Array(this.cellW*this.cellH),yg(f,l.width,l.height,this.cell,d,this.cellW,this.cellH))}this.results.set(s,{kp:m,mask:d}),c||this.unsaved++,this.unsaved>=24&&await this.saveCache(),this.unsavedSubjects>=24&&await this.saveSubjects()}this.unsaved>0&&await this.saveCache(),this.unsavedSubjects>0&&await this.saveSubjects()}setSize(e,r){this.sourceWidth=e,this.sourceHeight=r,this.cellW=Math.ceil(e/this.cell),this.cellH=Math.ceil(r/this.cell)}size(){return{width:this.sourceWidth,height:this.sourceHeight}}result(e){return this.results.get(Math.max(0,e))}keypoint(e,r){r=Math.max(0,r);let n=`${e}:${r}`,i=this.smoothed.get(n);if(i)return i;let o=s=>{let l=0,c=0,m=0,d=0;for(let p=s-this.smoothing;p<=s+this.smoothing;p++){let f=this.mustHave(p<0?0:p);if(!f.kp)continue;let b=f.kp[e*3+2],g=(this.smoothing+1-Math.abs(p-s))*b*b;l+=f.kp[e*3]*g,c+=f.kp[e*3+1]*g,m+=b*g,d+=g}return d>1e-6?[l/d,c/d,m/d]:null},a=null;for(let s=0;s<=sc&&!a;s++)r-s>=0&&(a=o(r-s));return a??=[this.sourceWidth/2,this.sourceHeight/2,0],this.smoothed.set(n,a),a}blurredMask(e){if(e=Math.max(0,e),this.blurred.has(e))return this.blurred.get(e)??null;let r=this.mustHave(e),n=r.mask?wg(r.mask,this.cellW,this.cellH,2):null;return this.blurred.set(e,n),n}grid(){return{cell:this.cell,width:this.cellW,height:this.cellH}}mustHave(e){let r=this.results.get(e);if(r)return r;throw new Error(`ClipVision "${this.source}": frame ${e} is not analysed yet. Read it while rendering (the composition prepares each frame), in a live physics world, or after \`await clip.ready(frame)\`.`)}cacheFile;async cachePath(){if(this.cacheFile!==void 0)return this.cacheFile;if(this.cacheFile=null,this.options.cacheDir===!1||typeof v>"u"||!v.versions?.node)return null;try{let[e,r,n,i]=await Promise.all([import("./shims/fs.mjs"),import("./shims/path.mjs"),import("./shims/os.mjs"),import("./crypto-W5UAWSNT.mjs")]),o=e.statSync(this.source),a=this.options.cacheDir??v.env.FRAMEFIELDS_VISION_CACHE_DIR??r.join(n.homedir(),".cache","framefields","vision"),s=this.options,l=JSON.stringify([fg,r.resolve(this.source),o.size,o.mtimeMs,this.fps,s.pose??!0,s.mask??!0,this.cell,s.variant??"s",s.confidence??null]),c=i.createHash("sha256").update(l).digest("hex").slice(0,24);e.mkdirSync(a,{recursive:!0}),this.cacheFile=r.join(a,`${r.basename(this.source)}.${c}.json`)}catch{this.cacheFile=null}return this.cacheFile}async loadCache(){let e=await this.cachePath();if(e)try{let r=await import("./shims/fs.mjs");if(!r.existsSync(e))return;let n=JSON.parse(r.readFileSync(e,"utf8"));if(n.cell!==this.cell)return;this.setSize(n.width,n.height);for(let[i,o]of Object.entries(n.frames))this.results.set(Number(i),{kp:o.kp?Float32Array.from(o.kp):null,mask:o.mask?new Uint8Array(Buffer.from(o.mask,"base64")):null})}catch{}}async saveCache(){this.unsaved=0;let e=await this.cachePath();if(!e||!this.sourceWidth)return;let r={};for(let[o,a]of this.results)r[o]={kp:a.kp?Array.from(a.kp,s=>Math.round(s*100)/100):null,mask:a.mask?Buffer.from(a.mask).toString("base64"):null};let n=await import("./shims/fs.mjs"),i=`${e}.${v.pid}.tmp`;n.writeFileSync(i,JSON.stringify({width:this.sourceWidth,height:this.sourceHeight,cell:this.cell,frames:r})),n.renameSync(i,e)}async subjectsPath(){let e=await this.cachePath();return e?e.replace(/\.json$/,".subjects.json"):null}async loadSubjects(){let e=await this.subjectsPath();if(e)try{let r=await import("./shims/fs.mjs");if(!r.existsSync(e))return;let n=JSON.parse(r.readFileSync(e,"utf8"));if(this.sourceWidth&&n.width!==this.sourceWidth)return;this.sourceWidth||this.setSize(n.width,n.height);for(let[i,o]of Object.entries(n.frames)){let a=Buffer.from(o?.lengths??"","base64");this.subjects.set(Number(i),o&&{category:o.category,area:o.area,values:new Uint8Array(Buffer.from(o.values,"base64")),lengths:new Uint32Array(a.buffer.slice(a.byteOffset,a.byteOffset+a.byteLength))})}}catch{}}async saveSubjects(){this.unsavedSubjects=0;let e=await this.subjectsPath();if(!e||!this.sourceWidth)return;let r={};for(let[o,a]of this.subjects)r[o]=a&&{category:a.category,area:a.area,values:Buffer.from(a.values).toString("base64"),lengths:Buffer.from(a.lengths.buffer,a.lengths.byteOffset,a.lengths.byteLength).toString("base64")};let n=await import("./shims/fs.mjs"),i=`${e}.${v.pid}.tmp`;n.writeFileSync(i,JSON.stringify({width:this.sourceWidth,height:this.sourceHeight,frames:r})),n.renameSync(i,e)}},ti=class t{constructor(e,r,n){this.clip=e;this.t=r;this.placement=n}clip;t;placement;place(e){return new t(this.clip,void 0,e)}transform(){if(this.t)return this.t;let e=this.placement,{width:r,height:n}=this.clip.size();if(!e||!r)return{sx:1,sy:1,ox:0,oy:0};let i=e.width/r,o=e.height/n;if(e.fit!=="fill"){let a=e.fit==="contain"?Math.min(i,o):Math.max(i,o);i=a,o=a}return{sx:i,sy:o,ox:(e.x??0)+(e.width-r*i)/2,oy:(e.y??0)+(e.height-n*o)/2}}point(e,r){let n=hg(e),i=this.clip.clipFrame(r),o=Math.floor(i),a=i-o,s=this.clip.keypoint(n,o),l=a>0?this.clip.keypoint(n,o+1):s,c=this.transform();return{x:(s[0]+(l[0]-s[0])*a)*c.sx+c.ox,y:(s[1]+(l[1]-s[1])*a)*c.sy+c.oy,visibility:s[2]+(l[2]-s[2])*a}}signals(e){let r=n=>vr.builder({type:"custom",fn:i=>this.point(e,i.frame)[n]});return{x:r("x"),y:r("y"),visibility:r("visibility")}}silhouetteGrid(e){let r=this.clip.blurredMask(Math.round(this.clip.clipFrame(e)));if(!r)return null;let{cell:n,width:i,height:o}=this.clip.grid(),a=this.transform();return{data:r,width:i,height:o,originX:a.ox,originY:a.oy,scaleX:n*a.sx,scaleY:n*a.sy}}sample(e,r,n){let i=this.clip.blurredMask(Math.round(this.clip.clipFrame(e)));if(!i)return{alpha:0,gx:0,gy:0};let{cell:o,width:a,height:s}=this.clip.grid(),l=this.transform(),c=(r-l.ox)/l.sx/o-.5,m=(n-l.oy)/l.sy/o-.5,d=(f,b)=>f<0||b<0||f>=a||b>=s?0:i[b*a+f],p=(f,b)=>{let g=Math.floor(f),y=Math.floor(b),k=f-g,A=b-y,T=d(g,y)+(d(g+1,y)-d(g,y))*k,w=d(g,y+1)+(d(g+1,y+1)-d(g,y+1))*k;return T+(w-T)*A};return{alpha:p(c,m),gx:(p(c+1,m)-p(c-1,m))/(2*o*l.sx),gy:(p(c,m+1)-p(c,m-1))/(2*o*l.sy)}}};function hg(t){let e=gn.indexOf(t);if(e<0)throw new Error(`Unknown keypoint "${t}". Use one of ${gn.join(", ")}.`);return e}async function gg(t){if(!t||t.width<=0)return null;if(t.buffer)return{data:t.buffer,width:t.width,height:t.height};let r=t.canvas?.getContext("2d");return r?{data:r.getImageData(0,0,t.width,t.height).data,width:t.width,height:t.height}:null}function bg(t){let e=t.masks.filter(o=>o.category==="person");if(e.length===0)return;let r=e.reduce((o,a)=>a.area>o.area?a:o),n=t.detections[r.detectionIndex]?.boundingBox,i=new Uint8Array(r.mask);if(!n)return i;for(let o of t.masks){if(o===r||o.area>r.area*2)continue;let a=t.detections[o.detectionIndex]?.boundingBox;if(!a)continue;let s=Math.max(0,Math.min(n.originX+n.width,a.originX+a.width)-Math.max(n.originX,a.originX)),l=Math.max(0,Math.min(n.originY+n.height,a.originY+a.height)-Math.max(n.originY,a.originY));if(!(s*l<.3*a.width*a.height))for(let c=0;c<i.length;c++)o.mask[c]>i[c]&&(i[c]=o.mask[c])}return i}function yg(t,e,r,n,i,o,a){for(let s=0;s<a;s++)for(let l=0;l<o;l++){let c=0,m=0;for(let d=s*n;d<Math.min(r,(s+1)*n);d++)for(let p=l*n;p<Math.min(e,(l+1)*n);p++)c+=t[d*e+p],m++;i[s*o+l]=m?Math.round(c/m):0}}function xg(t){let e=0;for(let a=1;a<=t.length;a++)(a===t.length||t[a]!==t[a-1])&&e++;let r=new Uint8Array(e),n=new Uint32Array(e),i=0,o=0;for(let a=1;a<=t.length;a++)(a===t.length||t[a]!==t[o])&&(r[i]=t[o],n[i++]=a-o,o=a);return{values:r,lengths:n}}function vg(t,e){let r=new Uint8Array(e),n=0;for(let i=0;i<t.values.length;i++){let o=Math.min(e,n+t.lengths[i]);t.values[i]!==0&&r.fill(t.values[i],n,o),n=o}return r}function wg(t,e,r,n){let i=new Float32Array(e*r),o=new Float32Array(e*r);for(let a=0;a<r;a++)for(let s=0;s<e;s++){let l=0,c=0;for(let m=-n;m<=n;m++){let d=s+m;d>=0&&d<e&&(l+=t[a*e+d],c++)}i[a*e+s]=l/c/255}for(let a=0;a<r;a++)for(let s=0;s<e;s++){let l=0,c=0;for(let m=-n;m<=n;m++){let d=a+m;d>=0&&d<r&&(l+=i[d*e+s],c++)}o[a*e+s]=l/c}return o}h();h();var Sg={rotation:.2,rotateX:.2,rotateY:.2,rotateZ:.2};function Ve(t,e,r){if(typeof t=="number")return t;if(typeof t=="function")return t(e);let n=e/r;return t.get({frame:e,fps:r,time:n,duration:0,durationMs:0,progress:0,deltaTime:1/r})}function Ut(t,e){let r=e-t;return r-=Math.round(r/360)*360,t+r}function kg(t,e){let r=t.length;if(r===0)return[];let n=new Uint8Array(r);n[0]=1,n[r-1]=1;let i=[[0,r-1]];for(;i.length>0;){let[a,s]=i.pop(),l=-1,c=e;for(let m=a+1;m<s;m++){let d=(m-a)/(s-a),p=t[a]+(t[s]-t[a])*d,f=Math.abs(t[m]-p);f>c&&(c=f,l=m)}l>=0&&(n[l]=1,i.push([a,l],[l,s]))}let o=[];for(let a=0;a<r;a++)n[a]&&o.push([a,Pg(t[a]),"none"]);return o.length===2&&o[0][1]===o[1][1]&&o.pop(),o}function Pg(t){return Math.round(t*1e4)/1e4}var xa=class{constructor(e,r,n){this.length=e;this.fps=r;this.ensure=n}length;fps;ensure;channels=new Map;signals=new Map;channel(e){let r=this.channels.get(e);return r||(r=new Float32Array(this.length),this.channels.set(e,r)),r}signal(e){let r=this.signals.get(e);if(!r){let n=this.channel(e),i=this.fps;r=vr.builder({type:"custom",fn:o=>{this.ensure();let a=o.fps&&o.fps!==i?o.frame/o.fps*i:o.frame,s=Math.max(0,Math.min(n.length-1,Math.round(a)));return n[s]}}),this.signals.set(e,r)}return r}},mr=class{constructor(e,r,n){this.sim=e;this.gravity=r;if(!(n.fps>0))throw new Error("Physics: `fps` must be > 0.");if(!(n.frames>=1)||!Number.isInteger(n.frames))throw new Error("Physics: `frames` must be a positive integer.");this.fps=n.fps,this.frames=n.frames,this.startFrame=Math.max(0,Math.round(n.startFrame??0)),this.pixelsPerMeter=n.pixelsPerMeter??100,this.substeps=Math.max(1,Math.round(n.substeps??4)),this.impactDecay=Math.max(.5,n.impactDecay??8),this.impactReference=n.impactReference??1500,this.worldRecording=this.newRecording()}sim;gravity;fps;frames;startFrame;pixelsPerMeter;substeps;impactDecay;impactReference;bodies=[];forces=[];impulses=[];fields=[];worldRecording;allCollisions=[];locked=!1;liveMode=!1;stepper;chain=Promise.resolve();get collisions(){return this.ensureSimulated(),this.allCollisions}get impact(){return this.worldRecording.signal("impact")}simulate(){if(this.liveMode)throw new Error("Physics: this world is live; it steps as frames render.");return this.ensureSimulated(),this}bakeKeyframes(e={}){if(this.locked)throw new Error("Physics: bakeKeyframes() must come before simulate(), live() or reading any body signal.");return this.bakeDefault=e,this.ensureSimulated(),this}live(e,r={}){if(this.locked)throw new Error("Physics: live() must come before simulate() or reading any body signal.");this.locked=!0,this.liveMode=!0;let n=async i=>{await e.prepareVision?.(i);for(let o of r.inputs??[])await o.ready(i)};this.prepareInputs=n;for(let i of this.bodies)this.bind(i);return e.onPrepareFrame(i=>this.advanceTo(i.frame)),this}advanceTo(e){return this.chain=this.chain.then(async()=>{let r=Math.min(this.frames-1,Math.round(e)-this.startFrame);this.stepper||(await this.prepareInputs?.(this.startFrame),this.stepper=this.begin());let n=this.stepper;for(;n.current<r;){let i=n.current+1;await this.prepareInputs?.(this.startFrame+i),this.stepFrame(n,i)}n.current===this.frames-1&&!n.freed&&(n.freed=!0,this.sim.free())}),this.chain}prepareInputs;bakeDefault;newRecording(){return new xa(this.startFrame+this.frames,this.fps,()=>this.ensureSimulated())}assertOpen(){if(this.locked)throw new Error("Physics: the world has already started; add every body, joint and force before simulate(), live() or reading signals.")}addBody(e){return this.assertOpen(),this.bodies.push(e),e}addForce(e,r){this.assertOpen(),this.forces.push({body:e,accel:r})}addField(e,r){this.assertOpen(),this.fields.push({accel:e,...r&&{targets:new Set(r)}})}addImpulse(e,r,n){this.assertOpen(),this.impulses.push({body:e,frame:Math.round(r),dv:n})}ensureSimulated(){if(this.locked)return;this.locked=!0;let e=this.begin();for(let r=1;r<this.frames;r++)this.stepFrame(e,r);e.freed=!0,this.sim.free();for(let r of this.bodies)this.bind(r)}begin(){let{startFrame:e}=this,r=this.bodies,n=new Map;for(let o of r)n.set(o.sim,o);for(let o of r)o.startFrame>0&&o.sim.setEnabled(!1);let i=new Map;for(let o of r){o.record(e,-1),o.recording.channel("impact");let a=o.kinematicTarget?.(e);a&&i.set(o,a)}this.worldRecording.channel("impact");for(let o of[...r.map(a=>a.recording),this.worldRecording])for(let a of o.channels.values())a.fill(a[e]);return{current:0,freed:!1,bySim:n,kinematicFrom:i,level:new Map(r.map(o=>[o,0]))}}stepFrame(e,r){let{fps:n,startFrame:i,substeps:o}=this,a=1/(n*o),s=this.bodies,l=i+r,c=this.gravity.length,m=new Map;for(let w of s)w.startFrame>0&&r===w.startFrame+1&&w.sim.setEnabled(!0),m.set(w,w.sim.velocity());let d=w=>w.type==="dynamic"&&r>w.startFrame,p=new Map;for(let w of s)p.set(w,this.gravity.map(S=>d(w)?S*w.gravityScale/n:0));for(let w of this.impulses){if(w.frame!==r)continue;let S=w.body;if(!d(S))continue;let x=S.sim.mass();S.sim.applyImpulse(w.dv.map(R=>R*x));let O=p.get(S);for(let R=0;R<c;R++)O[R]+=w.dv[R]}let f=this.forces.filter(w=>d(w.body)).map(w=>{let S=w.body,x=w.accel(l),O=p.get(S);for(let R=0;R<c;R++)O[R]+=x[R]/n;return{body:S,a:x}}),b=new Map;for(let w of s){let S=w.kinematicTarget?.(l);S&&b.set(w,S)}let g=new Set,y=[];for(let w=1;w<=o;w++){for(let{body:S,a:x}of f){let O=S.sim.mass();S.sim.applyImpulse(x.map(R=>R*O*a))}for(let S of this.fields)for(let x of s){if(!d(x)||S.targets&&!S.targets.has(x))continue;let O=S.accel(x,l);if(!O)continue;let R=x.sim.mass();x.sim.applyImpulse(O.map(H=>H*R*a));let _=p.get(x);for(let H=0;H<c;H++)_[H]+=O[H]*a}for(let[S,x]of b){let O=e.kinematicFrom.get(S)??x,R=w/o;S.sim.setKinematicTarget(Mg(O.position,x.position,R),this.lerpRotation(O.rotation,x.rotation,R))}this.sim.step(a);for(let[S,x]of this.sim.drainCollisionStarts()){let O=e.bySim.get(S),R=e.bySim.get(x);if(!O||!R)continue;let _=`${s.indexOf(O)}:${s.indexOf(R)}`;g.has(_)||(g.add(_),y.push([O,R]))}}e.kinematicFrom=b;for(let w of s)w.record(l,l-1);let k=new Map;if(y.length>0){let w=this.pixelsPerMeter,S=x=>{if(x.type!=="dynamic")return 0;let O=x.sim.velocity(),R=m.get(x),_=p.get(x),H=0;for(let ee=0;ee<c;ee++){let E=O[ee]-(R[ee]+_[ee]);H+=E*E}return Math.sqrt(H)*w};for(let[x,O]of y){let R=Math.max(S(x),S(O));for(let[_,H]of[[x,O],[O,x]]){k.set(_,Math.max(k.get(_)??0,R));let ee={frame:l,with:H,speed:R};_.collisions.push(ee),_===x&&this.allCollisions.push({...ee,body:x})}}}let A=Math.exp(-1/this.impactDecay),T=0;for(let w of s){let S=Math.max((k.get(w)??0)/this.impactReference,(e.level.get(w)??0)*A);e.level.set(w,S),w.recording.channel("impact")[l]=S,S>T&&(T=S)}this.worldRecording.channel("impact")[l]=T,e.current=r}bind(e){let r=e.layer,n=e.output??(this.bakeDefault?"keyframes":"signals");if(typeof r?.animate!="function"||n==="none"||e.type==="fixed")return;let i=e.boundChannels();if(n==="keyframes"&&this.liveMode)throw new Error('Physics: live worlds bind signals; drop `output: "keyframes"` or use simulate().');if(n==="signals"){let s=oe.create();for(let[l,c]of i)s.signal(l,e.recording.signal(c));r.animate(s);return}let o=this.bakeDefault?.tolerance??.25,a=oe.create();for(let[s,l]of i){let m=e.recording.channel(l).subarray(this.startFrame),d=Sg[s]??1;a.keys(s,kg(m,o*d))}r.animate(a)}};function Mg(t,e,r){return t.map((n,i)=>n+(e[i]-n)*r)}var va=(t,e)=>t===void 0?e:typeof t=="number"?[t,t]:t,Zr=class extends dn{op="Particles";particleStatic;particleState;options;constructor(e){super({}),this.options=e;let r=e.emitter??{},n=s=>typeof s=="number"?s:void 0,i=e.width,o=e.height,a=(Array.isArray(e.color)?e.color:[e.color??"#ffffff"]).map(s=>{let l=Xa(s);return[l.r,l.g,l.b,l.a]});this.particleStatic={max:Math.max(1,Math.round(e.max??2e4)),seed:Math.round(e.seed??1)>>>0,layer:{x:e.x??0,y:e.y??0,width:i,height:o},emitter:{shape:r.shape??"rect",x:n(r.x)??(r.shape==="circle"||r.shape==="ring"||r.shape==="point"?i/2:0),y:n(r.y)??(r.shape==="circle"||r.shape==="ring"||r.shape==="point"?o/2:0),width:r.width??i,height:r.height??(r.shape==="line"?0:o),radius:r.radius??Math.min(i,o)/4,radial:r.radial??!1},lifetime:va(e.lifetime,[2,4]),speed:va(e.speed,[40,160]),direction:e.direction??-90,spread:e.spread??360,bounds:e.bounds??"none",floor:e.floor??null,bounce:e.bounce??.3,size:va(e.size,[6,0]),sizeJitter:e.sizeJitter??.5,fade:e.fade??[.1,.3],shape:e.shape??"circle",stretch:e.stretch??.04,blend:e.blend??"normal",colors:a.slice(0,8),colorBySpeed:e.colorBySpeed??null,opacity:e.opacity??1,substeps:e.substeps??2,prewarm:e.prewarm??0}}particleFrame(e,r){let n=this.options,i=(g,y)=>g===void 0?y:Ve(g,e,r),o=e-(n.startFrame??0),a=(n.emitter?.bursts??[]).filter(g=>Math.round(g.frame)===o).reduce((g,y)=>g+y.count,0),s=n.gravity,l=Array.isArray(s)?[i(s[0],0),i(s[1],0)]:[0,i(s,0)],c=null;n.push&&(c={strength:i(n.push.strength,6e3),sweep:i(n.push.sweep,6e4),mask:n.push.person.silhouetteGrid(e),previous:n.push.person.silhouetteGrid(Math.max(0,e-1))});let m=n.emitter?.x,d=n.emitter?.y,p=m!==void 0&&typeof m!="number"||d!==void 0&&typeof d!="number",f=g=>({x:m===void 0?this.particleStatic.emitter.x:Ve(m,g,r),y:d===void 0?this.particleStatic.emitter.y:Ve(d,g,r)}),b;if(p){let g=f(e),y=f(Math.max(0,e-1));b={x:g.x,y:g.y,previousX:y.x,previousY:y.y}}return{...b&&{emitter:b},rate:i(n.emitter?.rate,1e3),burst:a,gravity:l,drag:i(n.drag,.4),noise:{strength:i(n.noise?.strength,0),scale:n.noise?.scale??300,speed:n.noise?.speed??.3},attractors:(n.attractors??[]).map(g=>({x:i(g.x,0),y:i(g.y,0),strength:i(g.strength,0),radius:g.radius??200})),push:c}}};h();var ve=xr(lc(),1);h();var ni=xr(_d(),1);function wa(t,e=24,r){let n=t.fps??e;if(n<=0)throw new Error(`[FrameGrid] Invalid fps: ${n}. Must be > 0.`);let i=[];if(Array.isArray(t.frames)&&t.frames.length>0)for(let a of t.frames){if(typeof a!="number"||a<0||!Number.isFinite(a))throw new Error(`[FrameGrid] Invalid frame index in frames list: ${a}`);i.push({frame:Math.round(a),timeMs:Math.round(a/n*1e3)})}else if(Array.isArray(t.timesMs)&&t.timesMs.length>0)for(let a of t.timesMs){if(typeof a!="number"||a<0||!Number.isFinite(a))throw new Error(`[FrameGrid] Invalid timestamp in timesMs list: ${a}`);i.push({frame:Math.round(a/1e3*n),timeMs:Math.round(a)})}else if(t.startMs!==void 0||t.endMs!==void 0||t.stepMs!==void 0){let a=t.startMs??0,s=t.endMs??r??a+1e3,l=t.stepMs??Math.round(5/n*1e3);if(a<0||s<a)throw new Error(`[FrameGrid] Invalid millisecond range: startMs=${a}, endMs=${s}. startMs must be <= endMs.`);if(l<=0)throw new Error(`[FrameGrid] Invalid stepMs: ${l}. Must be > 0.`);for(let c=a;c<=s;c+=l)i.push({frame:Math.round(c/1e3*n),timeMs:Math.round(c)})}else{let a=t.startFrame??0,s=t.endFrame??(r?Math.min(a+30,Math.floor(r/1e3*n)):a+30),l=t.stepFrames??5;if(a<0||s<a)throw new Error(`[FrameGrid] Invalid frame range: startFrame=${a}, endFrame=${s}. startFrame must be <= endFrame.`);if(l<=0)throw new Error(`[FrameGrid] Invalid stepFrames: ${l}. Must be > 0.`);for(let c=a;c<=s;c+=l)i.push({frame:Math.round(c),timeMs:Math.round(c/n*1e3)})}let o=Math.min(t.maxFrames??64,120);if(i.length>o)throw new Error(`[FrameGrid] Requested ${i.length} frames exceeds the safety threshold of ${o}. 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 Sa(t,e,r){let n=r.gap??12,i=r.padding??16,a=r.showHeader??!0?54:0,s=r.maxGridWidth??4096,l=r.maxGridHeight??4096,c=r.columns;(!c||c<=0)&&(t<=4?c=t:t<=9?c=3:t<=16?c=4:t<=25?c=5:c=6),c=Math.min(c,t);let m=Math.ceil(t/c),d=Math.max(120,Math.min(r.cellWidth??320,960)),p=r.cellHeight??Math.round(d/(e>0?e:16/9)),f=c*d+(c-1)*n+i*2,b=m*p+(m-1)*n+i*2+a;if(f>s||b>l){let g=Math.min((s-(c-1)*n-i*2)/(c*d),(l-(m-1)*n-i*2-a)/(m*p));if(g<.25)throw new Error(`[FrameGrid] Cannot fit ${t} cells (${c}x${m}) into max dimensions [${s}x${l}]. Reduce cell count or decrease cellWidth.`);d=Math.max(100,Math.floor(d*g)),p=Math.round(d/(e>0?e:16/9)),f=c*d+(c-1)*n+i*2,b=m*p+(m-1)*n+i*2+a}return{columns:c,rows:m,cellWidth:d,cellHeight:p,totalWidth:f,totalHeight:b,headerHeight:a,gap:n,padding:i}}async function Kr(t,e={}){let r=t.fps??24,n=t.durationMs,{samples:i,fps:o}=wa(e,r,n),a=t.width??1920,s=t.height??1080,l=a>0&&s>0?a/s:16/9,c=Sa(i.length,l,e),m=e.renderer??new ve.HeadlessMediaRenderer,d=[];for(let y of i){let k=await t.renderFrame({frame:y.frame,atMs:y.timeMs,fps:o,renderer:m});d.push(k)}let p=new ni.Canvas(c.totalWidth,c.totalHeight),f=p.getContext("2d");if(f.fillStyle=e.backgroundColor??"#090a0f",f.fillRect(0,0,c.totalWidth,c.totalHeight),e.showHeader!==!1&&c.headerHeight>0){let y=e.headerText??`FrameGrid Conformance Review | Frames ${i[0].frame}\u2013${i[i.length-1].frame} (Count: ${i.length})`,k=`${a}\xD7${s} @ ${o} FPS | Cell: ${c.cellWidth}\xD7${c.cellHeight}px | Step: ${e.stepFrames?`${e.stepFrames}f`:e.stepMs?`${e.stepMs}ms`:"Custom"}`;f.fillStyle="#f8fafc",f.font="bold 15px sans-serif",f.fillText(y,c.padding,c.padding+18),f.fillStyle="#94a3b8",f.font="12px sans-serif",f.fillText(k,c.padding,c.padding+36),f.strokeStyle="#1e2433",f.lineWidth=1,f.beginPath(),f.moveTo(c.padding,c.padding+46),f.lineTo(c.totalWidth-c.padding,c.padding+46),f.stroke()}let b=e.showLabels??!0;for(let y=0;y<i.length;y++){let k=i[y],A=y%c.columns,T=Math.floor(y/c.columns),w=c.padding+A*(c.cellWidth+c.gap),S=c.padding+c.headerHeight+T*(c.cellHeight+c.gap),x=await(0,ni.loadImage)(d[y]);if(f.drawImage(x,w,S,c.cellWidth,c.cellHeight),f.strokeStyle="#262b3d",f.lineWidth=1,f.strokeRect(w,S,c.cellWidth,c.cellHeight),b){let O=`F:${k.frame} \u2022 ${k.timeMs}ms`;f.font="bold 11px sans-serif";let _=f.measureText(O).width+14,H=20,ee=w+6,E=S+6;f.fillStyle="#090a0fee",f.beginPath(),f.roundRect(ee,E,_,H,4),f.fill(),f.strokeStyle="#6366f155",f.lineWidth=1,f.stroke(),f.fillStyle="#e2e8f0",f.fillText(O,ee+7,E+14)}}let g=await p.toBuffer("png");return e.outputPath&&await wr.writeFile(e.outputPath,g),g}h();var Tg=["material","shininess","roughness","specularIntensity","metallic","ambientIntensity","ior","transmission","dispersion","fresnelPower","envIntensity","emissive","emissiveIntensity","castShadow"];function Qr(t){let e=t,r={};for(let n of Tg)e[n]!==void 0&&(r[n]=e[n]);return r}function Cg(t){return t==="lit"||t==="unlit"||t==="toon"?t:void 0}function ka(t,e,r){let n=Object.fromEntries(Object.entries({...e,color:r.color,material:Cg(r.material),shininess:r.shininess,roughness:r.roughness,metallic:r.metallic}).filter(([,i])=>i!==void 0));return L.model({id:r.id??Q(t),modelData:rs(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,...Qr({emissive:r.emissive,emissiveIntensity:r.emissiveIntensity,castShadow:r.castShadow}),twoSided:!1,startFrame:r.startFrame,durationFrames:r.durationFrames})}function ii(t,e){let r=e.faces??e.items??[];for(let[n,i]of Object.entries(e))Object.defineProperty(t,n,{value:i,enumerable:!1,configurable:!0});return Object.defineProperty(t,Symbol.iterator,{value:function*(){yield*r},enumerable:!1,configurable:!0}),t}function Ag(t){let e=t.scale??1,r=Math.max(Math.abs(e*(t.scaleX??1)),Math.abs(e*(t.scaleY??1)));return r>0?r:1}var _t={cube(t){let e=t.size,[r,n,i]=typeof e=="number"?[e,e,e]:e,o=t.twoSided??!0,a={front:"#3b82f6",back:"#1d4ed8",left:"#2563eb",right:"#1e40af",top:"#60a5fa",bottom:"#172554"},s=(f,b,g,y,k,A)=>{if(b&&typeof b=="object"&&"kind"in b){let w=b;return w.position="absolute",w.is3D=!0,w.twoSided=o,w.material=w.material??t.material??"lit",w.shininess=w.shininess??t.shininess??32,w.specularIntensity=w.specularIntensity??t.specularIntensity??.5,t.roughness!==void 0&&w.roughness===void 0&&(w.roughness=t.roughness),t.metallic!==void 0&&w.metallic===void 0&&(w.metallic=t.metallic),t.ambientIntensity!==void 0&&w.ambientIntensity===void 0&&(w.ambientIntensity=t.ambientIntensity),Object.assign(w,A),w}let T=typeof b=="string"?{background:b}:b??{background:g};return L.box({id:`${t.id??"cube"}-${f}`,position:"absolute",width:y,height:k,is3D:!0,twoSided:o,material:T.material??t.material??"lit",shininess:T.shininess??t.shininess??32,specularIntensity:T.specularIntensity??t.specularIntensity??.5,roughness:T.roughness??t.roughness,metallic:T.metallic??t.metallic,ambientIntensity:T.ambientIntensity??t.ambientIntensity??1,...Qr({emissive:T.emissive??t.emissive,emissiveIntensity:T.emissiveIntensity??t.emissiveIntensity,castShadow:T.castShadow??t.castShadow}),background:T.background??g,borderRadius:T.borderRadius??0,borderWidth:T.borderWidth,borderColor:T.borderColor,opacity:T.opacity??1,children:T.children??[],...A})},l=r/2,c=n/2,m=i/2,d=[s("front",t.faces?.front,a.front,r,n,{x:0,y:0,z:-m,rotateX:0,rotateY:0,rotateZ:0}),s("back",t.faces?.back,a.back,r,n,{x:0,y:0,z:m,rotateX:0,rotateY:180,rotateZ:0}),s("left",t.faces?.left,a.left,i,n,{x:-l,y:0,z:0,rotateX:0,rotateY:90,rotateZ:0}),s("right",t.faces?.right,a.right,i,n,{x:l,y:0,z:0,rotateX:0,rotateY:-90,rotateZ:0}),s("top",t.faces?.top,a.top,r,i,{x:0,y:-c,z:0,rotateX:-90,rotateY:0,rotateZ:0}),s("bottom",t.faces?.bottom,a.bottom,r,i,{x:0,y:c,z:0,rotateX:90,rotateY:0,rotateZ:0})],p=L.box({id:t.id??Q("cube"),position:"absolute",x:t.x??0,y:t.y??0,z:t.z??0,width:r,height:n,is3D:!0,transformStyle:"preserve-3d",rotateX:t.rotateX??0,rotateY:t.rotateY??0,rotateZ:t.rotateZ??0,opacity:t.opacity??1,background:"transparent",children:d});return ii(p,{faces:d})},carousel(t){let{items:e,radius:r,faceInward:n=!1,twoSided:i=!0}=t,o=e.length,a=o>0?360/o:0,s=e.map((c,m)=>{let d=m*a,p=d*Math.PI/180,f=r*Math.sin(p),b=-r*Math.cos(p),g=n?180-d:-d,y=c;return y.position="absolute",y.is3D=!0,y.twoSided=i,y.x=f,y.y=0,y.z=b,y.rotateY=g,y}),l=L.box({id:t.id??Q("carousel"),position:"absolute",x:t.x??0,y:t.y??0,z:t.z??0,width:t.itemWidth??200,height:t.itemHeight??200,is3D:!0,transformStyle:"preserve-3d",rotateX:t.rotateX??0,rotateY:t.rotateY??0,rotateZ:t.rotateZ??0,opacity:t.opacity??1,background:"transparent",children:s});return ii(l,{items:s})},prism(t){let{sides:e,radius:r,height:n,twoSided:i=!0}=t,o=Math.max(3,e),a=2*r*Math.tan(Math.PI/o),s=360/o,l=[];for(let m=0;m<o;m++){let d=m*s,p=d*Math.PI/180,f=r*Math.sin(p),b=r*Math.cos(p),g=t.sideConfigs?.[m],y=typeof g=="string"?g:g?.background??`hsl(${m*360/o}, 70%, 50%)`;l.push(L.box({id:`${t.id??"prism"}-panel-${m}`,position:"absolute",width:a,height:n,is3D:!0,twoSided:i,x:f,y:0,z:b,rotateY:d,background:y}))}let c=L.box({id:t.id??Q("prism"),position:"absolute",x:t.x??0,y:t.y??0,z:t.z??0,width:a,height:n,is3D:!0,transformStyle:"preserve-3d",rotateX:t.rotateX??0,rotateY:t.rotateY??0,rotateZ:t.rotateZ??0,opacity:t.opacity??1,background:"transparent",children:l});return ii(c,{faces:l})},plane(t){return L.box({id:t.id??Q("plane"),position:"absolute",width:t.width,height:t.height,x:t.x??0,y:t.y??0,z:t.z??0,is3D:!0,twoSided:t.twoSided??!0,rotateX:t.rotateX??0,rotateY:t.rotateY??0,rotateZ:t.rotateZ??0,background:t.background??"#3b82f6",borderRadius:t.borderRadius??0,opacity:t.opacity??1,...Qr(t),children:t.children??[]})},grid(t){let{width:e,height:r}=t,n=t.id??Q("grid"),i=Math.max(1,Math.round(t.divisions??10)),o=t.lineWidth??2,a=t.color??"rgba(59, 130, 246, 0.5)",s=(p,f,b,g,y)=>L.box({id:`${n}-${p}`,position:"absolute",x:f,y:b,z:0,width:g,height:y,is3D:!0,twoSided:!0,material:"unlit",background:a}),l=4096,c=[],m=Math.ceil(r/l),d=Math.ceil(e/l);for(let p=0;p<=i;p++){let f=p/i-.5;for(let b=0;b<m;b++){let g=r/m,y=-r/2+g*(b+.5);c.push(s(`v${p}-${b}`,f*e,y,o,g))}for(let b=0;b<d;b++){let g=e/d,y=-e/2+g*(b+.5);c.push(s(`h${p}-${b}`,y,f*r,g,o))}}return L.box({id:n,position:"absolute",width:e,height:r,x:t.x??0,y:t.y??0,z:t.z??0,is3D:!0,transformStyle:"preserve-3d",rotateX:t.rotateX??90,rotateY:t.rotateY??0,rotateZ:t.rotateZ??0,background:"transparent",opacity:t.opacity??1,children:c})},text(t){return t.extrusionDepth&&t.extrusionDepth>0?_t.extrudedText({...t,depth:t.extrusionDepth}):L.text(t.text,{id:t.id??Q("text3d"),position:"absolute",x:t.x??0,y:t.y??0,z:t.z??0,is3D:!0,twoSided:t.twoSided??!0,rotateX:t.rotateX??0,rotateY:t.rotateY??0,rotateZ:t.rotateZ??0,fontSize:t.fontSize??48,fontFamily:t.fontFamily,fontWeight:t.fontWeight??"bold",fontStyle:t.fontStyle,fill:t.fill??"#ffffff",align:t.align??"center",direction:t.direction,verticalAlign:t.verticalAlign??"middle",letterSpacing:t.letterSpacing,lineHeight:t.lineHeight,material:t.material??"lit",shininess:t.shininess??64,roughness:t.roughness,specularIntensity:t.specularIntensity??.8,ambientIntensity:t.ambientIntensity??1,metallic:t.metallic,...Qr(t),opacity:t.opacity??1,background:t.background,borderRadius:t.borderRadius,padding:t.padding,stroke:t.stroke,strokeWidth:t.strokeWidth})},extrudedText(t){let{depth:e,text:r,fill:n="#ffffff",bevelColor:i}=t,o,a=(t.curveTolerance??.1)/Ag(t),s=(t.fontFamily?Gt.getParsed(t.fontFamily):null)??Gt.getParsed("Inter")??Gt.getParsed("Unbounded")??Gt.getFirstParsed();s&&(o=ts({text:r,font:s,fontSize:t.fontSize??48,depth:e,fill:n,bevelColor:i,curveSegments:t.curveSegments,curveTolerance:a,align:t.align,direction:t.direction,verticalAlign:t.verticalAlign,letterSpacing:t.letterSpacing,material:t.material==="lit"||t.material==="unlit"||t.material==="toon"?t.material:void 0,shininess:t.shininess,roughness:t.roughness,metallic:t.metallic}).modelData);let l=L.model({id:t.id??Q("extruded-text"),modelData:o,is3D:!0,x:t.x??0,y:t.y??0,z:t.z??0,rotateX:t.rotateX??0,rotateY:t.rotateY??0,rotateZ:t.rotateZ??0,scale:t.scale??1,scaleX:t.scaleX??1,scaleY:t.scaleY??1,scaleZ:t.scaleZ??1,opacity:t.opacity??1,material:t.material,shininess:t.shininess??32,roughness:t.roughness,specularIntensity:t.specularIntensity??.8,ambientIntensity:t.ambientIntensity??1,metallic:t.metallic,...Qr(t),twoSided:t.twoSided??!0,text3dOptions:{...t,curveTolerance:a}});return ii(l,{faces:[l],items:[l]})},roundedBox(t){return ka("rounded-box",{type:"roundedBox",width:t.width,height:t.height,depth:t.depth,radius:t.radius,segments:t.segments,taper:t.taper},t)},sphere(t){return ka("sphere",{type:"sphere",radius:t.radius,segments:t.segments},t)},cylinder(t){return ka("cylinder",{type:"cylinder",radius:t.radius,radiusTop:t.radiusTop,radiusBottom:t.radiusBottom,height:t.height,segments:t.segments,openEnded:t.openEnded},t)},model(t={}){return L.model(t)},obj(t,e={}){return L.obj(t,e)},fbx(t,e={}){return L.fbx(t,e)},gltf(t,e={}){return L.gltf(t,e)},glb(t,e={}){return L.glb(t,e)},stl(t,e={}){return L.stl(t,e)},ply(t,e={}){return L.ply(t,e)},vox(t,e={}){return L.vox(t,e)},threeDS(t,e={}){return L.threeDS(t,e)},off(t,e={}){return L.off(t,e)}};h();var Pa=(t,e,r)=>{switch(t){case"left":return{dx:-e,dy:0};case"right":return{dx:e,dy:0};case"up":return{dx:0,dy:-r};default:return{dx:0,dy:r}}};function tt(t,e,r){return{kind:t,frames:Math.max(0,Math.round(e)),build:r}}var cc={cut:()=>tt("cut",0,()=>({})),crossfade:(t=15,e="sine.inOut")=>tt("crossfade",t,r=>({incoming:oe.keys("opacity",[[0,0],[r.frames,1,e]])})),fadeThrough:(t=20,e="sine.inOut")=>tt("fadeThrough",t,r=>{let n=Math.max(1,Math.floor(r.frames/2));return{outgoing:oe.keys("opacity",[[r.outStart,1],[r.outStart+n,0,e]]),incoming:oe.keys("opacity",[[0,0],[n,0],[r.frames,1,e]])}}),push:(t="left",e=18,r="power3.inOut")=>tt("push",e,n=>{let{dx:i,dy:o}=Pa(t,n.width,n.height),a=oe.create(),s=oe.create();return i!==0?(a.keys("x",[[n.outStart,n.outRest.x],[n.outStart+n.frames,n.outRest.x+i,r]]),s.keys("x",[[0,n.inRest.x-i],[n.frames,n.inRest.x,r]])):(a.keys("y",[[n.outStart,n.outRest.y],[n.outStart+n.frames,n.outRest.y+o,r]]),s.keys("y",[[0,n.inRest.y-o],[n.frames,n.inRest.y,r]])),{outgoing:a,incoming:s}}),slide:(t="left",e=18,r="power3.out")=>tt("slide",e,n=>{let{dx:i,dy:o}=Pa(t,n.width,n.height),a=i!==0?"x":"y",s=i!==0?n.inRest.x:n.inRest.y;return{outgoing:oe.keys("opacity",[[n.outStart,1],[n.outStart+n.frames,.6,r]]),incoming:oe.keys(a,[[0,s-(i||o)],[n.frames,s,r]])}}),zoom:(t=18,e="power2.inOut")=>tt("zoom",t,r=>({outgoing:oe.create().keys("scale",[[r.outStart,1],[r.outStart+r.frames,1.25,e]]).keys("opacity",[[r.outStart,1],[r.outStart+r.frames,0,e]]),incoming:oe.create().keys("scale",[[0,.85],[r.frames,1,e]]).keys("opacity",[[0,0],[r.frames,1,e]])})),whip:(t="left",e=10)=>{let r=cc.push(t,e,"expo.inOut");return tt("whip",e,n=>({...r.build(n),sceneProps:{motionBlurShutter:360}}))},wipe:(t="left",e=18,r="power2.inOut")=>tt("wipe",e,n=>{let{dx:i,dy:o}=Pa(t,n.width,n.height),a=i!==0?"x":"y",s=i!==0?n.inRest.x:n.inRest.y;return{incomingMatte:L.box({id:Q("wipe-matte"),position:"absolute",x:n.inRest.x,y:n.inRest.y,width:n.width,height:n.height,background:"#ffffff"}).animate(oe.keys(a,[[0,s-(i||o)],[n.frames,s,r]]))}}),iris:(t=20,e={})=>tt("iris",t,r=>{let[n,i]=e.at??[.5,.5],o=r.inRest.x+n*r.width,a=r.inRest.y+i*r.height,s=Math.hypot(Math.max(n,1-n)*r.width,Math.max(i,1-i)*r.height);return{incomingMatte:L.shape("circle",{id:Q("iris-matte"),position:"absolute",x:o-s,y:a-s,width:s*2,height:s*2,fillColor:"#ffffff"}).animate(oe.keys("scale",[[0,0],[r.frames,1,e.ease??"power2.inOut"]]))}})};function oi(t,e,r){let n=t[e];return typeof n=="number"?n:r}function dc(t,e={}){let r=[],n=[],i=0;t.forEach((a,s)=>{let l=s===0?void 0:a.transition,c=Math.min(l?.frames??0,t[s-1]?.duration??0),m=Math.max(0,i-c),d=Math.max(1,Math.round(a.duration));n.push(m);let p=a.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}),t.forEach((a,s)=>{if(s===0||!a.transition||a.transition.frames===0)return;let l=r[s-1],c=r[s],m=Math.min(a.transition.frames,t[s-1].duration),d=e.width??oi(c,"width",1920),p=e.height??oi(c,"height",1080),f=a.transition.build({width:d,height:p,frames:m,outStart:t[s-1].duration-m,outRest:{x:typeof l.x=="number"?l.x:0,y:typeof l.y=="number"?l.y:0},inRest:{x:typeof c.x=="number"?c.x:0,y:typeof c.y=="number"?c.y:0}}),b=(g,y)=>{if(!y)return;let k=g.animation?.tracks??[];g.animation=oe.merge({tracks:k},y).toSpec()};b(l,f.outgoing),b(c,f.incoming),f.sceneProps&&(Object.assign(l,f.sceneProps),Object.assign(c,f.sceneProps)),f.incomingMatte&&(c.matte={node:f.incomingMatte,mode:"alpha"})});let o=L.box({id:e.id??Q("sequence"),position:"absolute",x:0,y:0,width:e.width??oi(r[0]??{},"width",1920),height:e.height??oi(r[0]??{},"height",1080),startFrame:e.startFrame??0,durationFrames:Math.max(1,i),children:r});return Object.defineProperty(o,"totalFrames",{value:i,enumerable:!1}),Object.defineProperty(o,"sceneStarts",{value:n,enumerable:!1}),o}h();var Dg={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 Og([t,e,r],n){let i=n*Math.PI/180,o=Math.cos(i),a=Math.sin(i);return[o*t+a*r,e,-a*t+o*r]}function mc(t,e,r,n){let[i,o,a]=Og(t,n),s=Math.hypot(i,o,a)||1;return{x:e[0]+i/s*r,y:e[1]+o/s*r,z:e[2]+a/s*r,targetX:e[0],targetY:e[1],targetZ:e[2]}}function ai(t,e){let r=Dg[t],n=e.target??[960,540,0],i=e.distance??1600,o=e.rotation??0,a=e.intensity??1,s=e.id??Q(`lighting-${t}`),l=[rt.environment(r.environment,{id:`${s}-environment`,intensity:r.envIntensity*a,rotation:o,exposure:e.exposure,toneMapping:e.toneMapping,fog:e.fog,bloom:e.bloom}),rt.directional({id:`${s}-key`,color:r.key.color,intensity:r.key.intensity*a,...mc(r.key.dir,n,i,o),castShadow:e.shadows??!0,shadowSoftness:e.shadowSoftness??3})];for(let[c,m]of[["rim",r.rim],["fill",r.fill]])m&&l.push(rt.directional({id:`${s}-${c}`,color:m.color,intensity:m.intensity*a,...mc(m.dir,n,i,o)}));return l}var Ng={studio:(t={})=>ai("studio",t),soft:(t={})=>ai("soft",t),sunset:(t={})=>ai("sunset",t),dramatic:(t={})=>ai("dramatic",t)};h();h();var Rg="@dimforge/rapier2d-deterministic-compat",Fg="@dimforge/rapier3d-deterministic-compat";async function pc(t,e){let r;try{r=await e()}catch(i){throw new Error(`Physics needs the optional dependency "${t}". Install it with \`npm i ${t}\`.`,{cause:i})}let n=r.default??r;return await n.init(),n}var fc,hc;async function Ca(t){if(t===2){fc??=pc(Rg,()=>import("./rapier-JD7KNQRV.mjs"));let r=await fc;return{createWorld2D:n=>new Ma(r,n),createWorld3D:()=>{throw new Error("This backend was loaded for 2D.")}}}hc??=pc(Fg,()=>import("./rapier-AHBIGHEL.mjs"));let e=await hc;return{createWorld2D:()=>{throw new Error("This backend was loaded for 3D.")},createWorld3D:r=>new Ta(e,r)}}var Ma=class{constructor(e,r){this.R=e;this.world=new e.World({x:r[0],y:r[1]}),this.events=new e.EventQueue(!0)}R;world;events;byCollider=new Map;started=[];addBody(e){let r=this.R,n=gc(r,e.type).setTranslation(e.position[0],e.position[1]).setRotation(e.angle).setLinvel(e.velocity[0],e.velocity[1]).setAngvel(e.angularVelocity).setLinearDamping(e.linearDamping).setAngularDamping(e.angularDamping).setGravityScale(e.gravityScale).setCcdEnabled(e.ccd).setEnabled(e.enabled);e.lockRotation&&n.lockRotations();let i=this.world.createRigidBody(n),o=this.world.createCollider(Bg(r,e.shape).setDensity(e.density).setFriction(e.friction).setRestitution(e.restitution).setActiveEvents(r.ActiveEvents.COLLISION_EVENTS).setSensor(e.sensor??!1),i),a={raw:i,position:()=>{let s=i.translation();return[s.x,s.y]},rotation:()=>i.rotation(),velocity:()=>{let s=i.linvel();return[s.x,s.y]},angularVelocity:()=>i.angvel(),sleeping:()=>i.isSleeping(),mass:()=>i.mass(),setEnabled:s=>i.setEnabled(s),applyImpulse:([s,l])=>i.applyImpulse({x:s,y:l},!0),setKinematicTarget:([s,l],c)=>{i.setNextKinematicTranslation({x:s,y:l}),i.setNextKinematicRotation(c)}};return this.byCollider.set(o.handle,a),a}addJoint(e,r,n){let i=this.R,o={x:n.anchorA[0],y:n.anchorA[1]},a={x:n.anchorB[0],y:n.anchorB[1]},s;switch(n.type){case"revolute":case"spherical":s=i.JointData.revolute(o,a);break;case"fixed":s=i.JointData.fixed(o,0,a,0);break;case"rope":s=i.JointData.rope(n.length,o,a);break;case"spring":s=i.JointData.spring(n.restLength,n.stiffness,n.damping,o,a);break}this.world.createImpulseJoint(s,si(e),si(r),!0).setContactsEnabled(!1)}step(e){this.world.timestep=e,this.world.step(this.events),this.events.drainCollisionEvents((r,n,i)=>{if(!i)return;let o=this.byCollider.get(r),a=this.byCollider.get(n);o&&a&&this.started.push([o,a])})}drainCollisionStarts(){return this.started.splice(0)}free(){this.events.free(),this.world.free()}},Ta=class{constructor(e,r){this.R=e;this.world=new e.World({x:r[0],y:r[1],z:r[2]}),this.events=new e.EventQueue(!0)}R;world;events;byCollider=new Map;started=[];addBody(e){let r=this.R,[n,i,o,a]=e.rotation,s=gc(r,e.type).setTranslation(e.position[0],e.position[1],e.position[2]).setRotation({x:n,y:i,z:o,w:a}).setLinvel(e.velocity[0],e.velocity[1],e.velocity[2]).setAngvel(pr(e.lockRotation?[0,0,0]:e.angularVelocity.map((p,f)=>e.enabledRotations&&!e.enabledRotations[f]?0:p))).setLinearDamping(e.linearDamping).setAngularDamping(e.angularDamping).setGravityScale(e.gravityScale).setCcdEnabled(e.ccd).setEnabled(e.enabled);e.lockRotation?s.lockRotations():e.enabledRotations&&s.enabledRotations(...e.enabledRotations);let l=this.world.createRigidBody(s),c=Lg(r,e.shape),m=this.world.createCollider(c.setDensity(e.density).setFriction(e.friction).setRestitution(e.restitution).setActiveEvents(r.ActiveEvents.COLLISION_EVENTS).setSensor(e.sensor??!1),l),d={raw:l,position:()=>{let p=l.translation();return[p.x,p.y,p.z]},rotation:()=>{let p=l.rotation();return[p.x,p.y,p.z,p.w]},velocity:()=>{let p=l.linvel();return[p.x,p.y,p.z]},angularVelocity:()=>{let p=l.angvel();return[p.x,p.y,p.z]},sleeping:()=>l.isSleeping(),mass:()=>l.mass(),setEnabled:p=>l.setEnabled(p),applyImpulse:p=>l.applyImpulse(pr(p),!0),setKinematicTarget:(p,[f,b,g,y])=>{l.setNextKinematicTranslation(pr(p)),l.setNextKinematicRotation({x:f,y:b,z:g,w:y})}};return this.byCollider.set(m.handle,d),d}addJoint(e,r,n){let i=this.R,o=pr(n.anchorA),a=pr(n.anchorB),s;switch(n.type){case"revolute":s=i.JointData.revolute(o,a,pr(n.axis??[0,0,1]));break;case"spherical":s=i.JointData.spherical(o,a);break;case"fixed":{let l={x:0,y:0,z:0,w:1};s=i.JointData.fixed(o,l,a,l);break}case"rope":s=i.JointData.rope(n.length,o,a);break;case"spring":s=i.JointData.spring(n.restLength,n.stiffness,n.damping,o,a);break}this.world.createImpulseJoint(s,si(e),si(r),!0).setContactsEnabled(!1)}step(e){this.world.timestep=e,this.world.step(this.events),this.events.drainCollisionEvents((r,n,i)=>{if(!i)return;let o=this.byCollider.get(r),a=this.byCollider.get(n);o&&a&&this.started.push([o,a])})}drainCollisionStarts(){return this.started.splice(0)}free(){this.events.free(),this.world.free()}};function pr([t,e,r]){return{x:t,y:e,z:r}}function si(t){return t.raw}function gc(t,e){let r=t.RigidBodyDesc;return e==="fixed"?r.fixed():e==="kinematic"?r.kinematicPositionBased():r.dynamic()}function Bg(t,e){switch(e.kind){case"ball":return t.ColliderDesc.ball(e.radius);case"box":{let r=Math.min(e.radius??0,e.hx/2,e.hy/2);return r>0?t.ColliderDesc.roundCuboid(e.hx-r,e.hy-r,r):t.ColliderDesc.cuboid(e.hx,e.hy)}case"hull":{let r=t.ColliderDesc.convexHull(new Float32Array(e.points));if(!r)throw new Error("Physics: could not build a convex hull for this shape.");return r}}}function Lg(t,e){switch(e.kind){case"ball":return t.ColliderDesc.ball(e.radius);case"box":{let r=Math.min(e.radius??0,e.hx/2,e.hy/2,e.hz/2);return r>0?t.ColliderDesc.roundCuboid(e.hx-r,e.hy-r,e.hz-r,r):t.ColliderDesc.cuboid(e.hx,e.hy,e.hz)}case"cylinder":return t.ColliderDesc.cylinder(e.halfHeight,e.radius);case"hull":{let r=t.ColliderDesc.convexHull(new Float32Array(e.points));if(!r)throw new Error("Physics: could not build a convex hull for this shape.");return r}}}h();var Jr=class{constructor(e,r,n,i,o,a,s){this.world=e;this.type=n;this.layer=i;this.frame=o;this.options=a;this.sim=r,this.recording=s}world;type;layer;frame;options;collisions=[];recording;sim;get startFrame(){return Math.max(0,Math.round(this.options.startFrame??0))}get gravityScale(){return this.options.gravityScale??1}get output(){return this.options.output}get x(){return this.recording.signal("x")}get y(){return this.recording.signal("y")}get rotation(){return this.recording.signal("rotation")}get centerX(){return this.recording.signal("centerX")}get centerY(){return this.recording.signal("centerY")}get vx(){return this.recording.signal("vx")}get vy(){return this.recording.signal("vy")}get speed(){return this.recording.signal("speed")}get angularVelocity(){return this.recording.signal("angularVelocity")}get impact(){return this.recording.signal("impact")}get sleeping(){return this.recording.signal("sleeping")}kinematicTarget(e){let r=this.options.follow;if(this.type!=="kinematic"||!r)return;let n=this.frame,i=this.world.fps,o=r.x===void 0?void 0:Ve(r.x,e,i),a=r.y===void 0?void 0:Ve(r.y,e,i),s=r.rotation===void 0?n.rotation:Ve(r.rotation,e,i),l=this.initialLayerXY(),c=xc(o??l[0],a??l[1],s,n),m=this.world.pixelsPerMeter;return{position:[c[0]/m,c[1]/m],rotation:s*Math.PI/180}}initialLayerXY(){let e=this.layer;return[Number(e?.x??0),Number(e?.y??0)]}record(e,r){let n=this.world.pixelsPerMeter,[i,o]=this.sim.position(),a=i*n,s=o*n,l=this.recording,c=l.channel("rotation"),m=this.sim.rotation()*180/Math.PI;c[e]=r<0?Ut(this.frame.rotation,m):Ut(c[r],m);let[d,p]=Ug(a,s,c[e],this.frame);l.channel("x")[e]=d,l.channel("y")[e]=p,l.channel("centerX")[e]=a,l.channel("centerY")[e]=s;let[f,b]=this.sim.velocity();l.channel("vx")[e]=f*n,l.channel("vy")[e]=b*n,l.channel("speed")[e]=Math.hypot(f,b)*n,l.channel("angularVelocity")[e]=this.sim.angularVelocity()*180/Math.PI,l.channel("sleeping")[e]=this.sim.sleeping()?1:0}boundChannels(){let e=[["x","x"],["y","y"]];return this.options.lockRotation||e.push(["rotation","rotation"]),e}localAnchor(e){if(!e)return[0,0];let r=this.world.pixelsPerMeter,[n,i]=this.sim.position(),o=-this.sim.rotation(),a=e[0]/r-n,s=e[1]/r-i;return[a*Math.cos(o)-s*Math.sin(o),a*Math.sin(o)+s*Math.cos(o)]}center(){let e=this.world.pixelsPerMeter,[r,n]=this.sim.position();return[r*e,n*e]}},fr=class extends mr{constructor(e,r){let n=r.pixelsPerMeter??100,i=r.gravity??2400,o=typeof i=="number"?[0,i/n]:[i[0]/n,i[1]/n],a=e.createWorld2D(o);super(a,o,r)}body(e,r={}){this.assertOpen();let i=typeof e.kind=="string"?e:void 0,o=Ig(e,r),a=this.pixelsPerMeter,s=r.type??"dynamic",[l,c]=xc(o.x,o.y,o.rotation,o),m=r.velocity??[0,0],d={type:s,position:[l/a,c/a],angle:o.rotation*Math.PI/180,velocity:[m[0]/a,m[1]/a],angularVelocity:(r.angularVelocity??0)*Math.PI/180,linearDamping:r.linearDamping??0,angularDamping:r.angularDamping??0,gravityScale:r.gravityScale??1,lockRotation:r.lockRotation??!1,ccd:r.ccd??!1,enabled:!0,sensor:r.sensor??!1,density:r.density??1,friction:r.friction??.6,restitution:r.restitution??.3,shape:bc(o.shape,1/a)},p=this.sim.addBody(d),f=new Jr(this,p,s,i,o,r,this.newRecording());return this.addBody(f)}ground(e){return this.body({x:-1e6/2,y:e.y,width:1e6,height:2e3},{type:"fixed",friction:e.friction,restitution:e.restitution??.2})}walls(e){let{width:r,height:n}=e,i=e.x??0,o=e.y??0,a=e.thickness??400,s={type:"fixed",friction:e.friction,restitution:e.restitution??.2},l=n*4+a,c={floor:this.body({x:i-a,y:o+n,width:r+2*a,height:a},s),left:this.body({x:i-a,y:o+n-l,width:a,height:l},s),right:this.body({x:i+r,y:o+n-l,width:a,height:l},s),ceiling:void 0};return e.ceiling&&(c.ceiling=this.body({x:i-a,y:o-a,width:r+2*a,height:a},s)),c}pin(e,r){let n=r??e.center(),i=this.anchorBody(n);return this.joint(e,i,{type:"revolute",anchorA:e.localAnchor(n),anchorB:[0,0]}),this}hinge(e,r,n){return this.joint(e,r,{type:"revolute",anchorA:e.localAnchor(n),anchorB:r.localAnchor(n)}),this}weld(e,r){let n=e.center();return this.joint(e,r,{type:"fixed",anchorA:[0,0],anchorB:r.localAnchor(n)}),this}spring(e,r,n={}){let{other:i,pa:o,pb:a}=this.endpoints(e,r,n.anchorA,n.anchorB),s=this.pixelsPerMeter,l=(n.length??Math.hypot(a[0]-o[0],a[1]-o[1]))/s,c=Eg(e,i),m=2*Math.PI*(n.frequency??2);return this.joint(e,i,{type:"spring",anchorA:e.localAnchor(o),anchorB:i.localAnchor(a),restLength:l,stiffness:c*m*m,damping:2*(n.dampingRatio??.2)*c*m}),this}rope(e,r,n={}){let{other:i,pa:o,pb:a}=this.endpoints(e,r,n.anchorA,n.anchorB),s=n.length??Math.hypot(a[0]-o[0],a[1]-o[1]);return this.joint(e,i,{type:"rope",anchorA:e.localAnchor(o),anchorB:i.localAnchor(a),length:s/this.pixelsPerMeter}),this}force(e,r){let n=this.pixelsPerMeter;return this.addForce(e,i=>[r.x===void 0?0:Ve(r.x,i,this.fps)/n,r.y===void 0?0:Ve(r.y,i,this.fps)/n]),this}field(e,r={}){let n=this.pixelsPerMeter;return this.addField((i,o)=>{let[a,s]=i.sim.position(),[l,c]=i.sim.velocity(),m=e({x:a*n,y:s*n,vx:l*n,vy:c*n,frame:o,body:i});return m?[m[0]/n,m[1]/n]:null},r.bodies),this}impulse(e,r,n){let i=this.pixelsPerMeter;return this.addImpulse(e,r,[n[0]/i,n[1]/i]),this}lerpRotation(e,r,n){return e+(r-e)*n}joint(e,r,n){this.assertOpen(),this.sim.addJoint(e.sim,r.sim,n)}anchorBody(e){return this.body({x:e[0]-.5,y:e[1]-.5,width:1,height:1},{type:"fixed",output:"none",sensor:!0})}endpoints(e,r,n,i){let o=n??e.center();if(Array.isArray(r)){let a=i??r;return{other:this.anchorBody(a),pa:o,pb:a}}return{other:r,pa:o,pb:i??r.center()}}};function Eg(t,e){let r=t.type==="dynamic"?t.sim.mass():0,n=e.type==="dynamic"?e.sim.mass():0;return r>0&&n>0?r*n/(r+n):Math.max(r,n,.001)}function Xe(t,e){return typeof t=="number"&&Number.isFinite(t)?t:e}function Ig(t,e){let r=typeof t.id=="string"?` "${t.id}"`:"";if(typeof t.x!="number"||typeof t.y!="number")throw new Error(`Physics: layer${r} needs numeric \`x\` and \`y\` (absolute position) to become a body.`);let n=e.size?.[0]??(typeof t.width=="number"?t.width:void 0),i=e.size?.[1]??(typeof t.height=="number"?t.height:void 0);if((n===void 0||i===void 0)&&t.kind==="text"){let s=Ke.measure(String(t.text??""),{fontFamily:String(t.fontFamily??"Inter"),fontSize:Xe(t.fontSize,48),fontWeight:t.fontWeight,letterSpacing:Xe(t.letterSpacing,0),lineHeight:typeof t.lineHeight=="number"?t.lineHeight:void 0});n??=s.width,i??=s.height}if(n===void 0||i===void 0||n<=0||i<=0)throw new Error(`Physics: layer${r} needs a numeric \`width\` and \`height\` (or the \`size\` option) to become a body.`);let o=Xe(t.scale,1);return{...{x:t.x,y:t.y,width:n,height:i,scale:o,anchorX:Xe(t.anchorX,.5),anchorY:Xe(t.anchorY,.5),rotation:Xe(t.rotation,0)},shape:bc(Vg(t,n,i,e.shape??"auto"),o)}}function Vg(t,e,r,n){let o=t.kind==="shape"?String(t.shapeType??"rect"):"rect",a=Xe(t.borderRadius,Xe(t.cornerRadius,0)),s={kind:"box",hx:e/2,hy:r/2,radius:a};if(n==="box")return s;if(n==="circle"||n==="auto"&&o==="circle")return{kind:"ball",radius:Math.min(e,r)/2};if(n==="auto"&&o==="rect")return s;if(n==="hull"||n==="auto"){let l=zg(t,o,e,r);return l.length>=6?{kind:"hull",points:l}:s}return s}function zg(t,e,r,n){let i=e==="path"?String(t.d??""):Qa({shapeType:e,width:r,height:n,cornerRadius:Xe(t.cornerRadius,Xe(t.borderRadius,0)),polygonSides:t.polygonSides,starPoints:t.starPoints,starInnerRadiusRatio:t.starInnerRadiusRatio,arrowHeadWidth:t.arrowHeadWidth,arrowHeadLength:t.arrowHeadLength,arrowShaftWidth:t.arrowShaftWidth}),o=[];for(let a of Ka(i))o.push(a.p0.x-r/2,a.p0.y-n/2,a.p1.x-r/2,a.p1.y-n/2);return o}function bc(t,e){switch(t.kind){case"ball":return{kind:"ball",radius:t.radius*e};case"box":return{kind:"box",hx:t.hx*e,hy:t.hy*e,radius:(t.radius??0)*e};case"hull":return{kind:"hull",points:t.points.map(r=>r*e)}}}function yc(t,e){let r=t*Math.PI/180,n=(.5-e.anchorX)*e.width*e.scale,i=(.5-e.anchorY)*e.height*e.scale;return[n*Math.cos(r)-i*Math.sin(r),n*Math.sin(r)+i*Math.cos(r)]}function xc(t,e,r,n){let[i,o]=yc(r,n);return[t+n.anchorX*n.width+i,e+n.anchorY*n.height+o]}function Ug(t,e,r,n){let[i,o]=yc(r,n);return[t-i-n.anchorX*n.width,e-o-n.anchorY*n.height]}h();var gt=Math.PI/180;function wc(t,e,r){let n=s=>s*gt/2,i=[Math.sin(n(t)),0,0,Math.cos(n(t))],o=[0,Math.sin(n(e)),0,Math.cos(n(e))],a=[0,0,Math.sin(n(r)),Math.cos(n(r))];return ui(ui(a,o),i)}function ui(t,e){let[r,n,i,o]=t,[a,s,l,c]=e;return[o*a+r*c+n*l-i*s,o*s-r*l+n*c+i*a,o*l+r*s-n*a+i*c,o*c-r*a-n*s-i*l]}function _g(t,e){let[r,n,i,o]=t,a=1-2*(n*n+i*i),s=2*(r*n+o*i),l=2*(r*i-o*n),c=2*(n*i+o*r),m=1-2*(r*r+n*n),d=2*(r*n-o*i),p=1-2*(r*r+i*i),f=Math.max(-1,Math.min(1,-l)),b;if(Math.abs(f)>.999999){let S=Math.asin(f),x=e?e[0]*gt:0,O=Math.atan2(-d,p)+(f>0?x:-x);b=[x,S,O]}else b=[Math.atan2(c,m),Math.asin(f),Math.atan2(s,a)];let g=[b[0]/gt,b[1]/gt,b[2]/gt];if(!e)return g;let y=[g[0]+180,180-g[1],g[2]+180],k=S=>[Ut(e[0],S[0]),Ut(e[1],S[1]),Ut(e[2],S[2])],A=k(g),T=k(y),w=S=>Math.abs(S[0]-e[0])+Math.abs(S[1]-e[1])+Math.abs(S[2]-e[2]);return w(A)<=w(T)?A:T}var en=class{constructor(e,r,n,i,o,a,s){this.world=e;this.type=n;this.layer=i;this.start=o;this.options=a;this.sim=r,this.recording=s}world;type;layer;start;options;collisions=[];recording;sim;get startFrame(){return Math.max(0,Math.round(this.options.startFrame??0))}get gravityScale(){return this.options.gravityScale??1}get output(){return this.options.output}get x(){return this.recording.signal("x")}get y(){return this.recording.signal("y")}get z(){return this.recording.signal("z")}get rotateX(){return this.recording.signal("rotateX")}get rotateY(){return this.recording.signal("rotateY")}get rotateZ(){return this.recording.signal("rotateZ")}get vx(){return this.recording.signal("vx")}get vy(){return this.recording.signal("vy")}get vz(){return this.recording.signal("vz")}get speed(){return this.recording.signal("speed")}get impact(){return this.recording.signal("impact")}get sleeping(){return this.recording.signal("sleeping")}kinematicTarget(e){let r=this.options.follow;if(this.type!=="kinematic"||!r)return;let n=this.world.fps,i=(l,c)=>l===void 0?c:Ve(l,e,n),o=this.start.position,a=this.start.rotation,s=this.world.pixelsPerMeter;return{position:[i(r.x,o[0])/s,i(r.y,o[1])/s,i(r.z,o[2])/s],rotation:wc(i(r.rotateX,a[0]),i(r.rotateY,a[1]),i(r.rotateZ,a[2]))}}record(e,r){let n=this.world.pixelsPerMeter,i=this.recording,[o,a,s]=this.sim.position();i.channel("x")[e]=o*n,i.channel("y")[e]=a*n,i.channel("z")[e]=s*n;let l=i.channel("rotateX"),c=i.channel("rotateY"),m=i.channel("rotateZ"),d=r<0?this.start.rotation:[l[r],c[r],m[r]],p=_g(this.sim.rotation(),d);l[e]=p[0],c[e]=p[1],m[e]=p[2];let[f,b,g]=this.sim.velocity();i.channel("vx")[e]=f*n,i.channel("vy")[e]=b*n,i.channel("vz")[e]=g*n,i.channel("speed")[e]=Math.hypot(f,b,g)*n,i.channel("sleeping")[e]=this.sim.sleeping()?1:0}boundChannels(){let e=[["x","x"],["y","y"],["z","z"]];return this.options.lockRotation!==!0&&e.push(["rotateX","rotateX"],["rotateY","rotateY"],["rotateZ","rotateZ"]),e}localAnchor(e){if(!e)return[0,0,0];let r=this.world.pixelsPerMeter,n=this.sim.position(),[i,o,a,s]=this.sim.rotation(),l=[e[0]/r-n[0],e[1]/r-n[1],e[2]/r-n[2]];return jg(l,[-i,-o,-a,s])}center(){let e=this.world.pixelsPerMeter,[r,n,i]=this.sim.position();return[r*e,n*e,i*e]}};function jg(t,e){let r=ui(ui(e,[t[0],t[1],t[2],0]),[-e[0],-e[1],-e[2],e[3]]);return[r[0],r[1],r[2]]}var hr=class extends mr{constructor(e,r){let n=r.pixelsPerMeter??100,i=r.gravity??2400,o=typeof i=="number"?[0,i/n,0]:[i[0]/n,i[1]/n,i[2]/n];super(e.createWorld3D(o),o,r)}body(e,r={}){this.assertOpen();let i=typeof e.kind=="string"?e:void 0,o=e,a=[se(o.x,0),se(o.y,0),se(o.z,0)],s=[se(o.rotateX,0),se(o.rotateY,0),se(o.rotateZ,0)],l=this.pixelsPerMeter,c=r.type??"dynamic",m=r.velocity??[0,0,0],d=r.angularVelocity??[0,0,0],p={type:c,position:[a[0]/l,a[1]/l,a[2]/l],rotation:wc(s[0],s[1],s[2]),velocity:[m[0]/l,m[1]/l,m[2]/l],angularVelocity:[d[0]*gt,d[1]*gt,d[2]*gt],linearDamping:r.linearDamping??0,angularDamping:r.angularDamping??0,gravityScale:r.gravityScale??1,lockRotation:r.lockRotation===!0,...typeof r.lockRotation=="object"&&{enabledRotations:[!r.lockRotation.x,!r.lockRotation.y,!r.lockRotation.z]},ccd:r.ccd??!1,enabled:!0,sensor:r.sensor??!1,density:r.density??1,friction:r.friction??.6,restitution:r.restitution??.3,shape:Wg(Gg(o,r),1/l)},f=this.sim.addBody(p),b=new en(this,f,c,i,{position:a,rotation:s},r,this.newRecording());return this.addBody(b)}ground(e){return this.body({x:0,y:e.y+2e3/2,z:0,width:1e6,height:2e3,depth:1e6},{type:"fixed",friction:e.friction,restitution:e.restitution??.2})}walls(e){let{width:r,height:n,depth:i}=e,[o,a,s]=[e.x??0,e.y??0,e.z??0],l=e.thickness??400,c={type:"fixed",friction:e.friction,restitution:e.restitution??.2},m=n*4,d=a+n/2-m/2;return[this.body({x:o,y:a+n/2+l/2,z:s,width:r+2*l,height:l,depth:i+2*l},c),this.body({x:o-r/2-l/2,y:d,z:s,width:l,height:m,depth:i+2*l},c),this.body({x:o+r/2+l/2,y:d,z:s,width:l,height:m,depth:i+2*l},c),this.body({x:o,y:d,z:s-i/2-l/2,width:r,height:m,depth:l},c),this.body({x:o,y:d,z:s+i/2+l/2,width:r,height:m,depth:l},c)]}pin(e,r){let n=r??e.center(),i=this.anchorBody(n);return this.joint(e,i,{type:"spherical",anchorA:e.localAnchor(n),anchorB:[0,0,0]}),this}hinge(e,r,n,i=[0,0,1]){return this.joint(e,r,{type:"revolute",anchorA:e.localAnchor(n),anchorB:r.localAnchor(n),axis:i}),this}weld(e,r){return this.joint(e,r,{type:"fixed",anchorA:[0,0,0],anchorB:r.localAnchor(e.center())}),this}spring(e,r,n={}){let{other:i,pa:o,pb:a}=this.endpoints(e,r,n.anchorA,n.anchorB),s=this.pixelsPerMeter,l=(n.length??vc(o,a))/s,c=e.type==="dynamic"?e.sim.mass():0,m=i.type==="dynamic"?i.sim.mass():0,d=c>0&&m>0?c*m/(c+m):Math.max(c,m,.001),p=2*Math.PI*(n.frequency??2);return this.joint(e,i,{type:"spring",anchorA:e.localAnchor(o),anchorB:i.localAnchor(a),restLength:l,stiffness:d*p*p,damping:2*(n.dampingRatio??.2)*d*p}),this}rope(e,r,n={}){let{other:i,pa:o,pb:a}=this.endpoints(e,r,n.anchorA,n.anchorB);return this.joint(e,i,{type:"rope",anchorA:e.localAnchor(o),anchorB:i.localAnchor(a),length:(n.length??vc(o,a))/this.pixelsPerMeter}),this}force(e,r){let n=this.pixelsPerMeter,i=(o,a)=>o===void 0?0:Ve(o,a,this.fps)/n;return this.addForce(e,o=>[i(r.x,o),i(r.y,o),i(r.z,o)]),this}field(e,r={}){let n=this.pixelsPerMeter;return this.addField((i,o)=>{let[a,s,l]=i.sim.position(),[c,m,d]=i.sim.velocity(),p=e({x:a*n,y:s*n,z:l*n,vx:c*n,vy:m*n,vz:d*n,frame:o,body:i});return p?[p[0]/n,p[1]/n,p[2]/n]:null},r.bodies),this}impulse(e,r,n){let i=this.pixelsPerMeter;return this.addImpulse(e,r,[n[0]/i,n[1]/i,n[2]/i]),this}lerpRotation(e,r,n){let i=e[0]*r[0]+e[1]*r[1]+e[2]*r[2]+e[3]*r[3]<0?-1:1,o=e.map((s,l)=>s+(r[l]*i-s)*n),a=Math.hypot(...o)||1;return o.map(s=>s/a)}joint(e,r,n){this.assertOpen(),this.sim.addJoint(e.sim,r.sim,n)}anchorBody(e){return this.body({x:e[0],y:e[1],z:e[2],width:1,height:1,depth:1},{type:"fixed",output:"none",sensor:!0})}endpoints(e,r,n,i){let o=n??e.center();if(Array.isArray(r)){let a=i??r;return{other:this.anchorBody(a),pa:o,pb:a}}return{other:r,pa:o,pb:i??r.center()}}};function vc(t,e){return Math.hypot(e[0]-t[0],e[1]-t[1],e[2]-t[2])}function se(t,e){return typeof t=="number"&&Number.isFinite(t)?t:e}function Gg(t,e){let r=typeof t.id=="string"?` "${t.id}"`:"",n=se(t.scale,1),i=[n*se(t.scaleX,1),n*se(t.scaleY,1),n*se(t.scaleZ,1)],o=i[0]===i[1]&&i[1]===i[2],a=t.primitive3d??{},s=e.shape??"auto",l=()=>{let g=$g(t.modelData);if(g)return{kind:"hull",points:g.map((y,k)=>y*i[k%3])}};if(e.size||s==="box"){let[g,y,k]=e.size??Aa(t,a)??[0,0,0];if(g>0&&y>0&&k>0)return{kind:"box",hx:g*i[0]/2,hy:y*i[1]/2,hz:k*i[2]/2,radius:a.type==="roundedBox"?se(a.radius,0)*Math.min(...i):0}}if(s==="hull"){let g=l();if(g)return g}if((s==="sphere"||s==="auto"&&a.type==="sphere")&&(o||s==="sphere")){let g=se(a.radius,0)||Math.max(...Aa(t,a)??[0])/2;if(g>0)return{kind:"ball",radius:g*Math.max(...i)}}let m=se(a.radiusTop,se(a.radius,0)),d=se(a.radiusBottom,se(a.radius,0));if((s==="cylinder"||s==="auto"&&a.type==="cylinder")&&m===d&&m>0&&i[0]===i[2])return{kind:"cylinder",halfHeight:se(a.height,0)*i[1]/2,radius:m*i[0]};if(s==="auto"&&a.type==="roundedBox"&&(a.taper??1)===1){let[g,y,k]=[se(a.width,0),se(a.height,0),se(a.depth,0)];return{kind:"box",hx:g*i[0]/2,hy:y*i[1]/2,hz:k*i[2]/2,radius:se(a.radius,0)*Math.min(...i)}}let f=l();if(f)return f;let b=Aa(t,a);if(b)return{kind:"box",hx:b[0]*i[0]/2,hy:b[1]*i[1]/2,hz:b[2]*i[2]/2};throw new Error(`Physics: layer${r} has no mesh or size to build a 3D collider from; pass \`size: [w, h, d]\`.`)}function Aa(t,e){if(e.type==="roundedBox")return[se(e.width,0),se(e.height,0),se(e.depth,0)];if(e.type==="sphere"){let r=se(e.radius,0)*2;return[r,r,r]}if(e.type==="cylinder"){let r=Math.max(se(e.radiusTop,se(e.radius,0)),se(e.radiusBottom,se(e.radius,0)))*2;return[r,se(e.height,0),r]}if(typeof t.width=="number"&&typeof t.height=="number"&&typeof t.depth=="number")return[t.width,t.height,t.depth]}function $g(t){let e=t?.meshes;if(!e?.length)return;let r=0;for(let a of e)r+=(a.positions?.length??0)/3;if(r<4)return;let n=Math.max(1,Math.floor(r/4096)),i=[],o=0;for(let a of e){let s=a.positions;if(s)for(let l=0;l<s.length;l+=3,o++)o%n===0&&i.push(s[l],s[l+1],s[l+2])}return i}function Wg(t,e){switch(t.kind){case"ball":return{kind:"ball",radius:t.radius*e};case"box":return{kind:"box",hx:t.hx*e,hy:t.hy*e,hz:t.hz*e,radius:(t.radius??0)*e};case"cylinder":return{kind:"cylinder",halfHeight:t.halfHeight*e,radius:t.radius*e};case"hull":return{kind:"hull",points:t.points.map(r=>r*e)}}}var Hg={async world2d(t){return new fr(await Ca(2),t)},async world3d(t){return new hr(await Ca(3),t)}};h();var be=(...t)=>t,Yg={pixelArt:(t={})=>be(new $t({palette:t.palette??"pico8",pixelSize:t.pixelSize??6,dither:.4})),gameBoy:(t={})=>be(new $t({palette:"gameboy",pixelSize:t.pixelSize??4,dither:.6})),teletext:(t={})=>be(new $t({palette:"teletext",pixelSize:t.pixelSize??10})),ledWall:(t={})=>be(new Vi({size:t.size??14,shape:"circle",gap:.18})),ascii:(t={})=>be(new Oi({cellSize:t.cellSize??10,colorMode:t.matrix?"green":"source",bg:t.matrix?"#020a04":"#0b0b0b"})),oneBit:(t={})=>be(new Bi({mode:"bayer",scale:t.scale??2,dark:t.dark??"#111111",light:t.light??"#f2efe6"})),risograph:(t={})=>{let e=t.inkA??"#1d3fbb",r=t.inkB??"#ff5fa2",n=t.paper??"#f4efe4";return be(new vt({stops:[{position:0,color:e},{position:.55,color:r},{position:1,color:n}]}),new $t({palette:"custom",colors:[e,r,n],dither:.8,pixelSize:2}),new xt({strength:.2}))},cartoon:(t={})=>be(new xn({levels:t.levels??4,edgeColor:t.ink??"#111111",saturation:1.3})),comic:(t={})=>be(new xn({levels:4,edgeWidth:1.5,saturation:1.4}),new Mr({frequency:t.dotFrequency??70,opacity:.35})),thermal:()=>be(new vt({stops:[{position:0,color:"#000010"},{position:.25,color:"#3b0a7a"},{position:.5,color:"#c4205f"},{position:.75,color:"#ff9a1f"},{position:1,color:"#fffbe0"}]})),vhs:(t={})=>be(new Pr({tracking:t.tracking??.5,chroma:4,curvature:.04,scanlines:.25,mask:.05,noise:.15}),new yn({amount:3})),crt:(t={})=>be(new Pr({curvature:t.curvature??.15,scanlines:.5,mask:.35})),glitch:(t={})=>be(new yn({amount:t.amount??18}),new Pr({tracking:1,chroma:6,curvature:0,scanlines:.1,mask:0,vignette:0})),oilPainting:(t={})=>be(new bn({style:"oil",radius:t.brush??5})),watercolor:(t={})=>be(new bn({style:"watercolor",radius:t.brush??6,paper:.5})),topographic:(t={})=>be(new Fi({levels:t.levels??16,fill:"flat",lineColor:t.ink??"#5a3a1a",fillColor:t.paper??"#f3ead8"})),kaleidoscope:(t={})=>be(new Ei({segments:t.segments??8,rotation:t.rotation??0})),opArt:(t={})=>be(new Ii({pattern:t.pattern??"stripes",frequency:t.frequency??60})),holographic:(t={})=>be(new Li({strength:t.strength??.7,shift:t.shift??0})),noir:()=>be(new vt({stops:[{position:0,color:"#000000"},{position:.55,color:"#8a8a8a"},{position:1,color:"#ffffff"}]}),new xt({strength:.35}),new Wt({strength:.6})),film:()=>be(new xt({strength:.25}),new Wt({strength:.35}))};h();var Ic=xr($d(),1),pi=xr(am(),1);var Fa=xr(kc(),1);h();var tn=j.dirname(mn(import.meta.url)),Pc=["import","meta","url"].join("."),Xg=yi(import.meta.url),rn="/@framefields/engine",Tc={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"},Mc=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"]),qg=`
712
+ `;var Dn=class{constructor(e){this.device=e;let r=e.createShaderModule({label:"segmentation.wgsl",code:yu});this.computePipeline=e.createComputePipeline({label:"SegmentationComputePipeline",layout:"auto",compute:{module:r,entryPoint:"computeSegmentation"}}),this.uniformBuffer=e.createBuffer({size:16,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST,label:"segmentation_uniform_buffer"})}device;computePipeline;uniformBuffer;cachedOutputTexture;execute(e,r={}){let n=e.width,i=e.height,o=r.threshold??.5,a=r.feather??.05,s=new ArrayBuffer(16),l=new Float32Array(s),c=new Uint32Array(s);l[0]=o,l[1]=a,c[2]=n,c[3]=i,this.device.queue.writeBuffer(this.uniformBuffer,0,s),(!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:e.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 Zt=class t{constructor(e){this.source=e;this.id=`tensor-${Math.random().toString(36).slice(2,9)}`}source;id;cannyOptions;depthNormalsOptions;poseSkeletonOptions;faceLandmarksOptions;segmentationOptions;opticalFlowOptions;deflickerOptions;multiplexer=new Or;cannyPipeline;depthNormalsPipeline;posePipeline;facePipeline;segmentationPipeline;opticalFlowPipeline;deflickerPipeline;prevInputTexture;static from(e){return new t(e)}canny(e={}){return this.cannyOptions=e,this}depthNormals(e={}){return this.depthNormalsOptions=e,this}poseSkeleton(e={}){return this.poseSkeletonOptions=e,this}pose(e,r={}){return this.poseSkeletonOptions={...r,landmarks:e},this}faceLandmarks(e={}){return this.faceLandmarksOptions=e,this}face(e,r={}){return this.faceLandmarksOptions={...r,landmarks:e},this}segmentation(e={}){return this.segmentationOptions=e,this}opticalFlow(e={}){return this.opticalFlowOptions=e,this}deflicker(e={}){return this.deflickerOptions=e,this}getMultiplexer(){return this.multiplexer}async execute(e,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 Rr(e));let i=this.cannyPipeline.execute(n,this.cannyOptions);this.multiplexer.set("canny",i)}if(this.depthNormalsOptions){this.depthNormalsPipeline||(this.depthNormalsPipeline=new Fr(e));let i=this.depthNormalsPipeline.execute(n,this.depthNormalsOptions);this.multiplexer.set("normals",i)}if(this.poseSkeletonOptions?.landmarks){this.posePipeline||(this.posePipeline=new gs(e));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 An(e));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 Dn(e));let i=this.segmentationPipeline.execute(n,this.segmentationOptions);this.multiplexer.set("segmentationMask",i)}if(this.opticalFlowOptions){this.opticalFlowPipeline||(this.opticalFlowPipeline=new Mi(e));let i=this.prevInputTexture??n,o=this.opticalFlowPipeline.execute(i,n,this.opticalFlowOptions);this.multiplexer.set("motionVectors",o)}if(this.deflickerOptions){this.deflickerPipeline||(this.deflickerPipeline=new Ci(e));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 tf=t=>!t.source||t.source.type==="keyframe";function Lr(t){let e=[],r=new Map;for(let n of t){if(!tf(n)){e.push(n);continue}let i=r.get(n.prop);if(!i){let a={...n,keyframes:[...n.keyframes??[]]};r.set(n.prop,a),e.push(a);continue}let o=new Map(i.keyframes.map(a=>[a.frame,a]));for(let a of n.keyframes??[])o.set(a.frame,a);i.keyframes=[...o.values()].sort((a,s)=>a.frame-s.frame)}return e}function xu(t,e){if(!t)return e;let r=To(t);if(!r||r.name==="none")return e;let{name:n,dir:i,params:o}=r,a=Math.max(0,Math.min(1,e)),s=l=>i==="in"?l(a):i==="out"?1-l(1-a):a<.5?l(a*2)/2:1-l((1-a)*2)/2;switch(n){case"power1":return s(l=>l*l);case"power2":return s(l=>l*l*l);case"power3":return s(l=>l*l*l*l);case"sine":return s(l=>1-Math.cos(l*Math.PI/2));case"circ":return s(l=>1-Math.sqrt(Math.max(0,1-l*l)));case"expo":return s(l=>l===0?0:2**(10*(l-1)));case"back":{let l=o?.[0]??1.70158,c=l+1;return s(m=>c*m*m*m-l*m*m)}case"bounce":{let l=c=>{if(c<.36363636363636365)return 7.5625*c*c;if(c<.7272727272727273){let f=c-.5454545454545454;return 7.5625*f*f+.75}if(c<.9090909090909091){let f=c-.8181818181818182;return 7.5625*f*f+.9375}let p=c-2.625/2.75;return 7.5625*p*p+.984375};return i==="out"?l(a):i==="in"?1-l(1-a):a<.5?(1-l(1-2*a))/2:(1+l(2*a-1))/2}default:return a}}function To(t){if(t){if(typeof t=="object"&&"name"in t&&"dir"in t)return t;if(typeof t=="string"){let e=t.trim(),r=e.match(/^([a-zA-Z0-9]+)(?:\.([a-zA-Z]+))?(?:\(([^)]+)\))?$/);if(r){let l=r[1].toLowerCase(),c=l==="linear"?"none":l,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:c,dir:d,...p&&p.length>0?{params:p}:{}}}let n=e.indexOf(".");if(n===-1){let l=e.toLowerCase();return{name:l==="linear"?"none":l,dir:"out"}}let i=e.slice(0,n).toLowerCase(),o=i==="linear"?"none":i,a=e.slice(n+1).toLowerCase(),s="out";return a==="in"?s="in":a==="out"?s="out":a==="inout"&&(s="inOut"),{name:o,dir:s}}}}var ie=class t{tracks=[];frameStep;defaultRepeat;defaultYoyo;constructor(e=[]){this.tracks=[...e]}static create(){return new t}static stepped(e=2){return new t().stepped(e)}stepped(e=2){return this.frameStep=Math.max(1,Math.min(24,Math.round(e))),this}static fromTo(e,r,n,i={}){return new t().fromTo(e,r,n,i)}static keys(e,r,n){return new t().keys(e,r,n)}static signal(e,r,n={}){return new t().signal(e,r,n)}static colorSignal(e,r,n){return new t().colorSignal(e,r,n)}static kineticSweep(e=-1,r=1,n=0,i=24,o="power2.out"){return new t().kineticSweep(e,r,n,i,o)}static typewriter(e=0,r=30,n="linear"){return new t().typewriter(e,r,n)}static letterSpacing(e,r,n=0,i=24,o="power2.out"){return new t().letterSpacing(e,r,n,i,o)}static wiggle(e,r={}){return new t().wiggle(e,r)}static spring(e,r={}){return new t().spring(e,r)}static firstMargin(e,r,n={}){return new t().firstMargin(e,r,n)}static strokeWidth(e,r,n={}){return new t().fromTo("strokeWidth",e,r,n)}static rotateX(e,r,n={}){return new t().fromTo("rotateX",e,r,n)}static rotateY(e,r,n={}){return new t().fromTo("rotateY",e,r,n)}static rotateZ(e,r,n={}){return new t().fromTo("rotateZ",e,r,n)}static rotation(e,r,n={}){return new t().fromTo("rotation",e,r,n)}static scale(e,r,n={}){return new t().fromTo("scale",e,r,n)}static scaleX(e,r,n={}){return new t().fromTo("scaleX",e,r,n)}static scaleY(e,r,n={}){return new t().fromTo("scaleY",e,r,n)}addTrack(e){return this.tracks.push(e),this}repeat(e=-1,r){this.defaultRepeat=e;for(let n of this.tracks)(!r||n.prop===r)&&(n.repeat=e);return this}yoyo(e=!0,r){this.defaultYoyo=e;for(let n of this.tracks)(!r||n.prop===r)&&(n.yoyo=e);return this}loop(e={},r){return this.repeat(-1,r),e.yoyo&&this.yoyo(!0,r),this}fromTo(e,r,n,i={}){let o=i.from??i.start??i.fromFrame??0,a=i.to??i.end??i.toFrame??(i.durationFrames!==void 0?o+i.durationFrames:o+24),s=To(i.ease),l=this.tracks.find(m=>m.prop===e&&(!m.source||m.source.type==="keyframe"));if(!l){let m={id:`${e}_fromTo_${this.tracks.length}`,prop:e,keyframes:[],...this.defaultRepeat!==void 0&&{repeat:this.defaultRepeat},...this.defaultYoyo!==void 0&&{yoyo:this.defaultYoyo}};this.tracks.push(m),l=m}i.repeat!==void 0&&(l.repeat=i.repeat),i.yoyo!==void 0&&(l.yoyo=i.yoyo),i.durationFrames!==void 0&&(l.durationFrames=i.durationFrames);let c=l.id;return l.keyframes.length===0&&o>0&&l.keyframes.push({id:`${c}_k0`,frame:0,value:r}),(l.keyframes.length===0||l.keyframes[l.keyframes.length-1].frame<o)&&l.keyframes.push({id:`${c}_k_${o}`,frame:o,value:r}),l.keyframes.push({id:`${c}_k_${a}`,frame:a,value:n,...s&&{ease:s}}),l.keyframes.sort((m,d)=>m.frame-d.frame),this}keyframe(e,r,n,i){let o=this.tracks.find(c=>c.prop===e&&(!c.source||c.source.type==="keyframe"));if(!o){let c={id:`${e}_track_${this.tracks.length}`,prop:e,keyframes:[],...this.defaultRepeat!==void 0&&{repeat:this.defaultRepeat},...this.defaultYoyo!==void 0&&{yoyo:this.defaultYoyo}};this.tracks.push(c),o=c}let a=To(i),s={id:`k_${o.keyframes.length}_f${r}`,frame:r,value:n,...a&&{ease:a}},l=o.keyframes.findIndex(c=>c.frame===r);return l>=0?o.keyframes[l]=s:o.keyframes.push(s),o.keyframes.sort((c,m)=>c.frame-m.frame),this}keys(e,r,n){for(let[i,o,a]of r)this.keyframe(e,Math.round(i),o,a);if(n){let i=this.tracks.find(o=>o.prop===e&&(!o.source||o.source.type==="keyframe"));i&&(n.repeat!==void 0&&(i.repeat=n.repeat),n.yoyo!==void 0&&(i.yoyo=n.yoyo),n.durationFrames!==void 0&&(i.durationFrames=n.durationFrames))}return this}fadeIn(e=0,r=20,n="power2.out"){return this.fromTo("opacity",0,1,{from:e,to:r,ease:n})}fadeOut(e,r,n="power2.in"){return this.fromTo("opacity",1,0,{from:e,to:r,ease:n})}slideInY(e,r,n=0,i=24,o="power2.out"){return this.fromTo("y",e,r,{from:n,to:i,ease:o})}slideInX(e,r,n=0,i=24,o="power2.out"){return this.fromTo("x",e,r,{from:n,to:i,ease:o})}kineticSweep(e=-1,r=1,n=0,i=24,o="power2.out"){return this.fromTo("offset",e,r,{from:n,to:i,ease:o})}typewriter(e=0,r=30,n="linear"){return this.fromTo("text",0,1,{from:e,to:r,ease:n})}letterSpacing(e,r,n=0,i=24,o="power2.out"){return this.fromTo("letterSpacing",e,r,{from:n,to:i,ease:o})}firstMargin(e,r,n={}){return this.fromTo("firstMargin",e,r,n)}lastMargin(e,r,n={}){return this.fromTo("lastMargin",e,r,n)}baselineShift(e,r,n={}){return this.fromTo("baselineShift",e,r,n)}rotateX(e,r,n={}){return this.fromTo("rotateX",e,r,n)}rotateY(e,r,n={}){return this.fromTo("rotateY",e,r,n)}rotateZ(e,r,n={}){return this.fromTo("rotateZ",e,r,n)}scaleX(e,r,n={}){return this.fromTo("scaleX",e,r,n)}scaleY(e,r,n={}){return this.fromTo("scaleY",e,r,n)}scale(e,r,n={}){return this.fromTo("scale",e,r,n)}perspective(e,r,n={}){return this.fromTo("perspective",e,r,n)}translateZ(e,r,n={}){return this.fromTo("translateZ",e,r,n)}tilt3D(e){let r=e.start??e.fromFrame,n=e.end??e.toFrame,i=e.ease,o=e.from??{},a=e.to,s=["rotateX","rotateY","rotateZ","translateZ","perspective"];for(let l of s){let c=a[l];if(c!==void 0){let m=o[l]??0;this.fromTo(l,m,c,{from:r,to:n,fromFrame:r,toFrame:n,ease:i})}}return this}signal(e,r,n={}){let{handleId:i,inline:o}=Pi(r),a=`${e}_sig_${i}_${this.tracks.length}`,s={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 o&&Ti(s,o),this.tracks.push({id:a,prop:e,source:s,keyframes:[]}),this}colorSignal(e,r,n){let{handleId:i,inline:o}=Pi(r),a=`${e}_colorSig_${i}_${this.tracks.length}`,s={type:"signal",inputHandleId:i,multiplier:n.multiplier??1,offset:n.offset??0,smoothingWindowFrames:n.smoothing??0,colorMode:n.colorMode??"interpolate",colorA:n.colorA,colorB:n.colorB,colorThreshold:n.threshold,channel:"primary"};return o&&Ti(s,o),this.tracks.push({id:a,prop:e,source:s,keyframes:[]}),this}wiggle(e,r={}){let n=`${e}_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:e,source:i,keyframes:[]}),this}spring(e,r={}){let n=`${e}_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:e,source:i,keyframes:[]}),this}followPath(e,r={}){let n=r.start??r.fromFrame??0,i=r.end??r.toFrame??60,o=Math.max(1,i-n),a=r.samples??Math.max(8,Math.min(60,Math.round(o/2))),s=e.totalLength??1,l=r.fromProgress??0,c=r.toProgress??1;r.fromDistance!==void 0&&s>0&&(l=r.fromDistance/s),r.toDistance!==void 0&&s>0&&(c=r.toDistance/s);let m=r.autoOrient??!0,d=r.banking??0,p=r.pitchOffset??0,f=r.yawOffset??0,b=r.rollOffset??0,g=!1,y=!1,S=!1,A=[];for(let T=0;T<=a;T++){let v=T/a,C=xu(r.ease,v),x=l+C*(c-l),M=Math.round(n+v*o),O=[0,0,0],_=[1,0,0],$=[0,0,0];if(typeof e.getFrameAt=="function"){let P=e.getFrameAt(x);O=P.position,_=P.tangent,$=P.rotation??[0,0,0]}else{let P=e.getPointAt(x);O=P.position,P.tangent&&(_=P.tangent);let H=Math.asin(Math.max(-1,Math.min(1,-_[1])))*(180/Math.PI),Y=Math.atan2(_[0],_[2])*(180/Math.PI),j=Math.atan2(_[1],_[0])*(180/Math.PI);$=[H,Y,j]}let I=$[0]+p,F=$[1]+f,k=(Math.abs(_[2])<1e-4?Math.atan2(_[1],_[0])*(180/Math.PI):$[2])+b;if(d!==0){let P=Math.min(1,x+.02),H=Math.max(0,x-.02),Y=e.getPointAt(P),j=e.getPointAt(H),z=Y.tangent??[1,0,0],ee=j.tangent??[1,0,0],oe=Math.atan2(z[0],z[2]),ge=Math.atan2(ee[0],ee[2]),le=oe-ge;k-=le*d*57.2958}Math.abs(O[2])>1e-4&&(g=!0),Math.abs(I)>1e-4&&(y=!0),Math.abs(F)>1e-4&&(S=!0),A.push({f:M,x:O[0],y:O[1],z:O[2],rx:I,ry:F,rz:k})}for(let T of A)this.keyframe("x",T.f,T.x),this.keyframe("y",T.f,T.y),g&&this.keyframe("z",T.f,T.z),m&&(this.keyframe("rotateZ",T.f,T.rz),y&&this.keyframe("rotateX",T.f,T.rx),S&&this.keyframe("rotateY",T.f,T.ry));return this}applyTo(e){return e.animation=this.toSpec(),e}merge(...e){return this.tracks=Lr([...this.tracks,...e.flatMap(r=>r.tracks)]),this}static merge(...e){let r=new t;return r.tracks=Lr(e.flatMap(n=>n.tracks)),r}toSpec(){return{tracks:this.tracks,...this.frameStep!==void 0&&{frameStep:this.frameStep}}}toJSON(){return this.toSpec()}},Mo=class t extends ie{static camera(){return new t}dolly(e,r,n={}){if(typeof e=="object"){let i=e,o=i.start??i.fromFrame??0,a=i.end??i.toFrame??0;return this.fromTo("cameraZ",i.fromDistance,i.toDistance,{from:o,to:a,ease:i.ease})}return this.fromTo("cameraZ",e,r??e,n)}orbit(e){let r=e.start??e.fromFrame??0,n=e.end??e.toFrame??0;return e.azimuth&&this.fromTo("orbitAzimuth",e.azimuth.from??0,e.azimuth.to,{from:r,to:n,ease:e.ease}),e.elevation&&this.fromTo("orbitElevation",e.elevation.from??0,e.elevation.to,{from:r,to:n,ease:e.ease}),e.radius&&this.fromTo("orbitRadius",e.radius.from??1500,e.radius.to,{from:r,to:n,ease:e.ease}),this}truck(e,r,n={}){return this.fromTo("cameraX",e,r,n)}pedestal(e,r,n={}){return this.fromTo("cameraY",e,r,n)}pan(e,r,n={}){return this.fromTo("cameraYaw",e,r,n)}tilt(e,r,n={}){return this.fromTo("cameraPitch",e,r,n)}roll(e,r,n={}){return this.fromTo("cameraRoll",e,r,n)}rackFocus(e){let r=e.start??e.fromFrame??0,n=e.end??e.toFrame??0;return this.fromTo("focusDistance",e.fromDistance,e.toDistance,{from:r,to:n,ease:e.ease??"power2.inOut"}),e.toFStop!==void 0&&this.fromTo("fStop",e.fromFStop??2.8,e.toFStop,{from:r,to:n,ease:e.ease??"power2.inOut"}),this}handheld(e){let r=e.start??e.fromFrame??0,n=e.end??e.toFrame??0;return this.fromTo("shakeTranslation",0,e.translationAmplitude,{from:r,to:n}),this.fromTo("shakeRotation",0,e.rotationAmplitude,{from:r,to:n}),this}followPath3D(e,r={}){let n=r.start??r.fromFrame??0,i=r.end??r.toFrame??60,o=Math.max(1,i-n),a=r.samples??Math.max(8,Math.min(60,Math.round(o/2))),s=r.mode??(r.target?"lookAtTarget":"leadTarget"),l=r.fromProgress??0,c=r.toProgress??1,m=r.lookAhead??.05;for(let d=0;d<=a;d++){let p=d/a,f=xu(r.ease,p),b=l+f*(c-l),g=Math.round(n+p*o),y=[0,0,0],S=[0,0,0];if(typeof e.getFrameAt=="function"){let A=e.getFrameAt(b);y=A.position,S=A.rotation??[0,0,0]}else y=e.getPointAt(b).position;if(this.keyframe("cameraX",g,y[0]),this.keyframe("cameraY",g,y[1]),this.keyframe("cameraZ",g,y[2]),s==="lookAtTarget"){let A=r.target??[y[0],y[1],0];this.keyframe("targetX",g,A[0]),this.keyframe("targetY",g,A[1]),this.keyframe("targetZ",g,A[2])}else if(s==="leadTarget"){let A=Math.min(1,b+m),T=e.getPointAt(A);this.keyframe("targetX",g,T.position[0]),this.keyframe("targetY",g,T.position[1]),this.keyframe("targetZ",g,T.position[2])}else s==="orientAlongPath"&&(this.keyframe("cameraPitch",g,S[0]),this.keyframe("cameraYaw",g,S[1]),this.keyframe("cameraRoll",g,S[2]))}return this}};h();var rf=["background","fill","fillColor","strokeColor","borderColor","gradientEndColor","emissive","color"],wu=2e3,vu=3;function Co(t){return t.animation?.tracks??[]}var Su=(t,e)=>Co(t).some(r=>e.includes(r.prop)),nf=new Set(["box","flex","block","group"]);function ku(t){if(t.kind==="text"||t.kind==="light"||t.kind==="camera")return!1;if(!nf.has(String(t.kind)))return!0;let e=t.background;return typeof e=="string"&&e!==""&&e!=="transparent"?!0:(t.children??[]).some(ku)}var of=t=>[...t].sort((e,r)=>(Number(e.zIndex)||0)-(Number(r.zIndex)||0));function Nn(t){if(typeof t!="string"||t.includes("gradient("))return null;let e=yi(t);return e&&e[3]>.99?t:null}function Ao(t){let e=[],r=(f,b,g,y)=>e.push({severity:f,code:b,message:g,...y&&{layerId:y}}),n=t.width,i=t.height,o=!1,a=[],s=!1,l=[],c=[],m=(f,b,g)=>{let y=String(f.id??"?");for(let x of rf){let M=f[x];typeof M!="string"||M===""||M==="transparent"||(M.includes("gradient(")?os(M)||r("error","invalid_gradient",`\`${x}\` on '${y}' is not a gradient this renderer reads: ${M}. It draws nothing.`,y):yi(M)||r("warning","unknown_color",`\`${x}: "${M}"\` on '${y}' is not a color (hex, rgb(), hsl(), oklch() or a CSS name). It draws transparent.`,y))}if(f.kind==="light"){let x=f.lightType??"directional";x==="environment"&&(o=!0),x==="ambient"&&a.push(y),f.castShadow&&(x==="directional"||x==="spot"?c.push(y):r("warning","shadow_unsupported_light",`'${y}' is a ${String(x)} light: only directional and spot lights cast shadows.`,y));return}if(f.kind==="camera")return;if(f.kind==="media"){let x=f.inputHandleId;typeof x=="string"&&(f.dataType??"Video")==="Image"&&(/\.(json|lottie)(\?.*)?$/i.test(x)?r("error","unsupported_image_format",`'${y}' is an image layer with source '${x}', which is a Lottie vector animation. Use Layer.lottie() instead.`,y):/\.(mp4|mov|webm|mkv)(\?.*)?$/i.test(x)?r("error","unsupported_image_format",`'${y}' is an image layer with video source '${x}'. Use Layer.video() instead.`,y):/\.(mp3|wav|ogg|m4a|aac)(\?.*)?$/i.test(x)&&r("error","unsupported_image_format",`'${y}' is an image layer with audio source '${x}'. Use Layer.audio() instead.`,y))}let S=!!f.is3D||typeof f.z=="number"&&f.z!==0;if((S||f.kind==="model3d")&&(s=!0),(f.roughness!==void 0||f.metallic!==void 0)&&l.push(y),f.kind==="text"&&b&&!Su(f,["fill","color"])){let x=Nn(f.fill??f.color),M=Nn(f.background)??b;if(x){let O=xi.contrast(x,M);O<vu&&r("warning","low_contrast_text",`Text '${y}' (${x}) on ${M} has contrast ${O.toFixed(2)}:1 (aim for \u2265 ${vu}; ${xi.readableOn(M)} reads well).`,y)}}if(g&&!S&&f.position==="absolute"&&typeof f.x=="number"&&typeof f.y=="number"&&typeof f.width=="number"&&typeof f.height=="number"&&!Su(f,["x","y","translateX","translateY","scale","scaleX","scaleY","rotation"])){let{x,y:M,width:O,height:_}=f;(x+O<=0||M+_<=0||x>=n||M>=i)&&r("warning","offscreen_layer",`'${y}' sits entirely outside the ${n}\xD7${i} canvas (x ${x}, y ${M}) and never moves in.`,y)}let A=Co(f).reduce((x,M)=>x+(M.keyframes?.length??0),0);A>wu&&r("warning","large_animation",`'${y}' has ${A} keyframes across its tracks (over ${wu}). Keying every frame is rarely needed: key the turning points and let eases fill in, or drive the prop from a signal.`,y);for(let x of Co(f)){let M=x.keyframes??[];(!x.source||x.source.type==="keyframe")&&M.length>=2&&M.every(O=>JSON.stringify(O.value)===JSON.stringify(M[0].value))&&r("info","static_track",`'${y}' animates \`${x.prop}\` but every keyframe holds ${JSON.stringify(M[0].value)}.`,y)}let T=Nn(f.background)??b,v=f.children,C=f.x===0&&f.y===0&&f.width===n&&f.height===i;d(v??[],T,g&&C)},d=(f,b,g)=>{let y=b;for(let S of of(f))m(S,y,g),ku(S)&&(y=null)},p=Nn(t.backgroundColor)??null;return d(t.layout,p,!0),o&&a.length>0&&r("info","ambient_with_environment",`The environment already fills shadows with light; ambient light ${a.join(", ")} adds flat light on top (remove it, or lower it, if the scene looks washed out).`),c.length>1&&r("info","multiple_shadow_lights",`${c.length} lights cast shadows (${c.join(", ")}); only the first one does.`),s&&l.length>0&&!o&&r("info","pbr_without_environment",`roughness / metallic are set (${l.slice(0,3).join(", ")}${l.length>3?", \u2026":""}) but the scene has no Layer.environment(): add one for physically based shading, reflections and tone mapping.`),e}h();var Pu=u.union([u.number().min(0),u.enum(["auto","fit","fill"]),u.custom()]),af=u.enum(["rect","circle","ellipse","polygon","star","arrow","path"]),Tu=u.union([u.instanceof($t),u.object({op:u.string().min(1)}).passthrough(),u.custom(t=>!!(t&&typeof t=="object"&&"op"in t&&typeof t.op=="string"))]),sf=u.enum(["x","y","scale","rotation","opacity","width","height","volume","hidden","muted","gap","padding","borderRadius","fontSize","text","fill","color","letterSpacing","d","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"]),Do=u.enum(["alpha","alpha-inverted","luma","luma-inverted"]),Mu=u.enum(["lit","unlit","toon","glass","acrylic","frosted","metallic"]);var uf=u.enum(["interpolate","hueRotate","threshold"]),lf=u.object({name:u.enum(["none","power1","power2","power3","sine","circ","expo","back","elastic","bounce","spring","cubic","hold"]),dir:u.enum(["in","out","inOut"]),params:u.array(u.number()).optional()}).strict().superRefine((t,e)=>{if(t.name==="spring"&&t.params){let[r,n,i]=t.params;r!==void 0&&r<=0&&e.addIssue({code:u.ZodIssueCode.custom,message:"Spring damping must be greater than 0.",path:["params",0]}),n!==void 0&&n<=0&&e.addIssue({code:u.ZodIssueCode.custom,message:"Spring stiffness must be greater than 0.",path:["params",1]}),i!==void 0&&i<=0&&e.addIssue({code:u.ZodIssueCode.custom,message:"Spring mass must be greater than 0.",path:["params",2]})}}),cf=u.object({id:u.string().min(1),frame:u.number().int().min(0),value:u.union([u.number(),u.boolean(),u.string()]),ease:lf.optional(),presetGroupId:u.string().optional(),presetType:u.string().optional(),spatialTangentIn:u.object({x:u.number(),y:u.number()}).optional(),spatialTangentOut:u.object({x:u.number(),y:u.number()}).optional()}).strict(),df=u.enum(["continuous","accumulate"]),mf=u.discriminatedUnion("type",[u.object({type:u.literal("keyframe")}),u.object({type:u.literal("signal"),inputHandleId:u.string(),multiplier:u.number().default(1),offset:u.number().default(0),smoothingWindowFrames:u.number().min(0).default(0),colorMode:uf.optional(),colorA:u.string().optional(),colorB:u.string().optional(),colorThreshold:u.number().optional(),signalMode:df.optional(),threshold:u.number().optional(),accumulateThreshold:u.number().optional(),debounceFrames:u.number().int().min(0).optional(),channel:u.string().optional()}),u.object({type:u.literal("wiggle"),frequency:u.number().default(2),amplitude:u.number().default(50),octaves:u.number().int().min(1).max(4).default(1),seed:u.number().default(1234)}),u.object({type:u.literal("springOvershoot"),damping:u.number().default(12),stiffness:u.number().default(180),mass:u.number().default(1)})]),pf=u.preprocess(t=>{if(!t||typeof t!="object")return t;let e=t;if(e.type==="signal"){let r=typeof e.threshold=="number"?e.threshold:typeof e.accumulateThreshold=="number"?e.accumulateThreshold:.15;return{type:"signal",inputHandleId:e.inputHandleId??e.handleId,multiplier:e.multiplier??e.amplitude??1,offset:e.offset??0,smoothingWindowFrames:e.smoothingWindowFrames??e.smoothing??0,colorMode:e.colorMode,colorA:e.colorA,colorB:e.colorB,colorThreshold:e.colorThreshold,signalMode:e.signalMode??"continuous",threshold:r,accumulateThreshold:r,debounceFrames:e.debounceFrames??2,channel:typeof e.channel=="string"?e.channel:"primary"}}return t},mf),ff=(t,e)=>{if(t?.tracks)for(let r=0;r<t.tracks.length;r++){let n=t.tracks[r],i=n.keyframes??[];(!n.source||n.source.type==="keyframe")&&i.length<1&&e.addIssue({code:u.ZodIssueCode.custom,message:`Track for property '${n.prop}' must have at least 1 keyframe.`,path:["tracks",r,"keyframes"]});let a=n.prop==="hidden"||n.prop==="muted",s=n.prop==="fillColor"||n.prop==="strokeColor"||n.prop==="fill"||n.prop==="color";for(let l=0;l<i.length;l++){let c=i[l];if(l>0){let d=i[l-1];c.frame<d.frame?e.addIssue({code:u.ZodIssueCode.custom,message:"Keyframes must be sorted in ascending order of frame.",path:["tracks",r,"keyframes",l]}):c.frame===d.frame&&e.addIssue({code:u.ZodIssueCode.custom,message:"Duplicate keyframes at the same frame are not allowed.",path:["tracks",r,"keyframes",l]})}let m=typeof c.value;a?m!=="boolean"&&e.addIssue({code:u.ZodIssueCode.custom,message:`Keyframe value for discrete property '${n.prop}' must be a boolean.`,path:["tracks",r,"keyframes",l,"value"]}):s?m!=="string"&&e.addIssue({code:u.ZodIssueCode.custom,message:`Keyframe value for color property '${n.prop}' must be a string.`,path:["tracks",r,"keyframes",l,"value"]}):m!=="number"||Number.isNaN(c.value)||!Number.isFinite(c.value)?e.addIssue({code:u.ZodIssueCode.custom,message:`Keyframe value for numeric property '${n.prop}' must be a finite number.`,path:["tracks",r,"keyframes",l,"value"]}):(n.prop==="volume"||n.prop==="trimStart"||n.prop==="trimEnd")&&(c.value<0||c.value>1)&&e.addIssue({code:u.ZodIssueCode.custom,message:`Keyframe value for property '${n.prop}' must be between 0 and 1.`,path:["tracks",r,"keyframes",l,"value"]})}}},hf=u.object({id:u.string().min(1),prop:sf,source:pf.optional(),keyframes:u.array(cf).default([]),repeat:u.number().int().optional(),yoyo:u.boolean().optional(),durationFrames:u.number().int().min(1).optional()}).strict(),No=u.object({tracks:u.array(hf).max(24),frameStep:u.number().int().min(1).max(24).optional()}).strict().superRefine(ff),Pt={id:u.string().min(1),inputHandleId:u.string().optional(),position:u.enum(["relative","absolute"]).default("relative"),x:u.union([u.number(),u.custom()]).default(0),y:u.union([u.number(),u.custom()]).default(0),width:Pu.optional(),height:Pu.optional(),grow:u.number().min(0).optional(),flexShrink:u.number().min(0).optional(),flexBasis:u.number().min(0).optional(),alignSelf:u.enum(["auto","start","center","end","stretch","baseline"]).optional(),aspectRatio:u.number().positive().optional(),zIndex:u.number().int().default(0),hidden:u.boolean().default(!1),opacity:u.number().min(0).max(1).default(1),blendMode:u.string().optional(),effects:u.array(Tu).optional(),rotation:u.number().default(0),scale:u.number().min(0).default(1),scaleX:u.number().default(1),scaleY:u.number().default(1),anchorX:u.number().min(0).max(1).default(.5),anchorY:u.number().min(0).max(1).default(.5),startFrame:u.number().int().min(0).default(0),durationFrames:u.number().int().min(1).optional(),motionBlurShutter:u.number().min(0).max(360).optional(),rotateX:u.number().default(0),rotateY:u.number().default(0),rotateZ:u.number().default(0),perspective:u.number().min(0).default(0),perspectiveOriginX:u.number().default(.5),perspectiveOriginY:u.number().default(.5),translateZ:u.number().default(0),backfaceVisibility:u.enum(["visible","hidden"]).default("visible"),transformStyle:u.enum(["flat","preserve-3d"]).default("flat"),is3D:u.boolean().default(!1),z:u.union([u.number(),u.custom()]).default(0),scaleZ:u.number().default(1),twoSided:u.boolean().default(!0),material:Mu.default("lit"),ior:u.number().min(1).max(3).optional(),roughness:u.number().min(0).max(1).optional(),shininess:u.number().min(1).max(512).default(32),specularIntensity:u.number().min(0).default(.5),metallic:u.number().min(0).max(1).optional(),ambientIntensity:u.number().min(0).default(1),transmission:u.number().min(0).max(1).optional(),dispersion:u.number().min(0).max(1).optional(),fresnelPower:u.number().min(1).max(10).optional(),envIntensity:u.number().min(0).max(10).optional(),emissive:de.optional(),emissiveIntensity:u.number().min(0).optional(),castShadow:u.boolean().optional(),matte:u.object({node:u.custom(t=>typeof t=="object"&&t!==null),mode:Do.optional()}).optional(),matteId:u.string().optional(),matteOf:u.string().optional(),matteMode:Do.optional(),animation:No.default({tracks:[]}),vision:u.unknown().optional(),relighting:u.unknown().optional()},Cu=u.object({color:de,offset:u.object({x:u.number(),y:u.number()}).optional(),blurRadius:u.number().min(0).optional()}).strict(),gf=u.object({x:u.number().optional(),y:u.number().optional(),scale:u.number().optional(),scaleX:u.number().optional(),scaleY:u.number().optional(),rotation:u.number().optional(),rotationX:u.number().optional(),rotationY:u.number().optional(),opacity:u.number().optional(),blur:u.number().optional(),color:u.string().optional()}).strict(),Au=u.object({id:u.string(),unit:u.enum(["character","word","line"]).default("character"),rangeStart:u.number().min(0).max(1).default(0),rangeEnd:u.number().min(0).max(1).default(1),offset:u.number().min(-1).max(1).default(0),easing:u.string().default("power2.out"),transform:gf.optional()}),bf={waveRise(t={}){return{id:t.id??"wave-rise",unit:t.unit??"character",rangeStart:t.rangeStart??0,rangeEnd:t.rangeEnd??1,offset:t.offset??-1,easing:t.easing??"power2.out",transform:{y:t.y??40,rotationX:t.rotationX??45,opacity:t.opacity??0,blur:t.blur??0}}},wordPop(t={}){return{id:t.id??"word-pop",unit:"word",rangeStart:0,rangeEnd:1,offset:-1,easing:t.easing??"back.out(1.6)",transform:{scale:t.scale??0,y:t.y??20,opacity:0}}},blurIn(t={}){return{id:t.id??"blur-in",unit:t.unit??"character",rangeStart:0,rangeEnd:1,offset:-1,easing:t.easing??"power3.out",transform:{blur:t.blur??16,y:t.y??20,opacity:t.opacity??0}}},flip3D(t={}){return{id:t.id??"flip-3d",unit:t.unit??"character",rangeStart:0,rangeEnd:1,offset:-1,easing:t.easing??"back.out(1.4)",transform:{rotationX:t.rotationX??90,opacity:0}}},colorSweep(t){return{id:t.id??"color-sweep",unit:t.unit??"character",rangeStart:0,rangeEnd:.5,offset:-.5,easing:t.easing??"power2.inOut",transform:{color:t.color}}}},yf=u.object({focalLength:u.number().min(5).max(500).default(50),fov:u.number().min(5).max(160).optional(),sensorWidth:u.number().default(36),near:u.number().min(.1).default(1),far:u.number().min(10).default(5e4),zoom:u.number().min(.01).default(1)}).strict(),xf=u.object({enabled:u.boolean().default(!1),focusDistance:u.number().min(1).default(1e3),fStop:u.number().min(.5).max(64).default(2.8),maxBlurRadius:u.number().min(0).max(128).default(32),apertureBlades:u.number().int().min(0).max(12).default(0),anamorphicRatio:u.number().min(.5).max(3).default(1)}).strict(),wf=u.object({translationAmplitude:u.number().min(0).default(0),rotationAmplitude:u.number().min(0).default(0),frequency:u.number().min(.1).max(60).default(2.5),octaves:u.number().int().min(1).max(6).default(3),seed:u.number().default(42)}).strict(),Du=u.object({id:u.string().min(1),kind:u.literal("camera"),mode:u.enum(["lookAt","free","orbit"]).default("lookAt"),x:u.number().optional(),y:u.number().optional(),z:u.number().optional(),targetX:u.number().optional(),targetY:u.number().optional(),targetZ:u.number().optional(),pitch:u.number().default(0),yaw:u.number().default(0),roll:u.number().default(0),lens:yf.optional(),dof:xf.optional(),shake:wf.optional(),startFrame:u.number().int().min(0).default(0),durationFrames:u.number().int().min(1).optional(),animation:No.default({tracks:[]})}).strict(),Nu=u.enum(["ambient","directional","point","spot","environment"]),Ou=u.enum(["studio","soft","sunset","night","neutral"]),Ru=u.enum(["neutral","agx","aces","none"]),Fu=u.object({color:de,start:u.number().min(0),end:u.number().min(0),opacity:u.number().min(0).max(1).optional()}).strict(),Bu=u.object({intensity:u.number().min(0).max(10).optional(),threshold:u.number().min(0).max(16).optional(),knee:u.number().min(0).max(1).optional(),radius:u.number().min(1).max(8).optional()}).strict(),Lu=u.object({id:u.string().min(1),kind:u.literal("light"),lightType:Nu.default("directional"),color:de.default("#ffffff"),intensity:u.number().default(1),x:u.number().optional(),y:u.number().optional(),z:u.number().optional(),targetX:u.number().optional(),targetY:u.number().optional(),targetZ:u.number().optional(),direction:u.tuple([u.number(),u.number(),u.number()]).optional(),radius:u.number().min(0).default(1e3),decay:u.number().min(0).default(2),angle:u.number().min(0).max(180).default(45),penumbra:u.number().min(0).max(1).default(.2),castShadow:u.boolean().optional(),shadowSoftness:u.number().min(0).max(64).optional(),shadowDarkness:u.number().min(0).max(1).optional(),shadowMapSize:u.number().int().min(256).max(8192).optional(),preset:Ou.optional(),top:de.optional(),horizon:de.optional(),bottom:de.optional(),softboxes:u.number().min(0).optional(),rotation:u.number().optional(),exposure:u.number().min(-16).max(16).optional(),toneMapping:Ru.optional(),fog:Fu.optional(),bloom:u.union([u.boolean(),Bu]).optional(),startFrame:u.number().int().min(0).default(0),durationFrames:u.number().int().min(1).optional(),animation:No.default({tracks:[]})}).strict(),Oo=()=>u.array(u.lazy(()=>Ro)),Eu=u.object({...Pt,kind:u.literal("flex"),dir:u.enum(["row","column"]).default("row"),gap:u.number().min(0).default(0),padding:u.number().min(0).default(0),justify:u.enum(["start","center","end","space-between","space-around"]).default("start"),align:u.enum(["start","center","end","stretch"]).default("start"),wrap:u.boolean().default(!1),staggerFrames:u.number().min(0).default(0),staggerDirection:u.enum(["forward","reverse","center-out"]).default("forward"),overflow:u.enum(["visible","hidden"]).default("hidden"),background:de.optional(),borderRadius:u.number().min(0).optional(),borderColor:de.optional(),borderWidth:u.number().min(0).optional(),strokeAlign:u.enum(["inside","center","outside"]).optional(),strokeRadius:u.number().min(0).optional(),children:Oo().optional()}).strict(),vf=u.object({...Pt,kind:u.literal("block"),gap:u.number().min(0).default(0),padding:u.number().min(0).default(0),align:u.enum(["start","center","end","stretch"]).default("start"),staggerFrames:u.number().min(0).default(0),staggerDirection:u.enum(["forward","reverse","center-out"]).default("forward"),overflow:u.enum(["visible","hidden"]).default("hidden"),background:de.optional(),borderRadius:u.number().min(0).optional(),borderColor:de.optional(),borderWidth:u.number().min(0).optional(),strokeAlign:u.enum(["inside","center","outside"]).optional(),strokeRadius:u.number().min(0).optional(),children:Oo().optional()}).strict(),Iu=u.object({...Pt,kind:u.literal("box"),background:de,borderRadius:u.number().min(0).optional(),padding:u.number().min(0).default(0),staggerFrames:u.number().min(0).default(0),staggerDirection:u.enum(["forward","reverse","center-out"]).default("forward"),overflow:u.enum(["visible","hidden"]).default("hidden"),borderColor:de.optional(),borderWidth:u.number().min(0).optional(),strokeAlign:u.enum(["inside","center","outside"]).optional(),strokeRadius:u.number().min(0).optional(),children:Oo().optional()}).strict(),zu=u.object({background:de,borderRadius:u.number().min(0).optional(),paddingX:u.number().min(0).optional(),paddingY:u.number().min(0).optional()}).strict(),Vu=u.object({text:u.union([u.string(),u.custom(t=>!!(t&&typeof t=="object"&&"get"in t))]),fontFamily:u.string().optional(),fontSize:u.union([u.number().positive(),u.custom(t=>!!(t&&typeof t=="object"&&"get"in t))]).optional(),fontWeight:u.union([u.number().int(),u.string()]).optional(),fontStyle:u.enum(["normal","italic"]).optional(),fill:u.union([de,u.custom(t=>!!(t&&typeof t=="object"&&"get"in t))]).optional(),letterSpacing:u.number().optional(),baselineShift:u.number().optional(),opacity:u.union([u.number().min(0).max(1),u.custom(t=>!!(t&&typeof t=="object"&&"get"in t))]).optional(),mark:zu.optional()}).strict(),Sf={text:u.string().default(""),spans:u.array(Vu).optional(),fontFamily:u.string().optional(),fontSize:u.number().positive().optional(),fontWeight:u.union([u.number().int(),u.string()]).optional(),fontStyle:u.string().optional(),fill:de,align:u.enum(["start","center","end"]).optional(),direction:u.enum(["ltr","rtl","auto"]).optional(),verticalAlign:u.enum(["top","middle","bottom"]).optional(),lineHeight:u.number().positive().optional(),letterSpacing:u.number().optional(),background:de,borderRadius:u.number().min(0).optional(),padding:u.number().min(0).optional(),stroke:de,strokeWidth:u.number().min(0).optional(),strokeAlign:u.enum(["inside","center","outside"]).optional(),textShadow:u.string().optional(),shadows:u.array(Cu).optional(),pathOptions:Xt.optional(),typewriter:Pn.optional(),marquee:bo.optional(),animators:u.array(u.union([Au,qt,yo])).optional()},_u=u.object({...Pt,...Sf,kind:u.literal("text")}).strict(),ju=u.object({...Pt,kind:u.literal("media"),inputHandleId:u.string().min(1),src:u.string().optional(),dataType:u.string().optional(),fit:u.enum(["cover","contain","fill","none"]).default("contain"),dpr:u.number().min(1).max(4).optional(),borderRadius:u.number().min(0).optional(),borderColor:de.optional(),borderWidth:u.number().min(0).optional(),strokeAlign:u.enum(["inside","center","outside"]).optional(),strokeRadius:u.number().min(0).optional(),volume:u.number().min(0).max(1).default(1),muted:u.boolean().default(!1),trimStartSec:u.number().min(0).optional(),fontFamily:u.string().optional(),fontSize:u.number().positive().optional(),fontWeight:u.union([u.number().int(),u.string()]).optional(),fontStyle:u.string().optional(),fill:de,align:u.enum(["start","center","end"]).optional(),direction:u.enum(["ltr","rtl","auto"]).optional(),verticalAlign:u.enum(["top","middle","bottom"]).optional(),lineHeight:u.number().positive().optional(),letterSpacing:u.number().optional(),background:de,padding:u.number().min(0).optional(),stroke:de,strokeWidth:u.number().min(0).optional(),textShadow:u.string().optional(),shadows:u.array(Cu).optional(),maxWidth:u.number().optional()}).strict(),kf={shapeType:af.default("rect"),borderRadius:u.number().min(0).optional(),radiusTL:u.number().min(0).optional(),radiusTR:u.number().min(0).optional(),radiusBR:u.number().min(0).optional(),radiusBL:u.number().min(0).optional(),polygonSides:u.number().int().min(3).max(64).optional(),starPoints:u.number().int().min(3).max(64).optional(),starInnerRadiusRatio:u.number().min(.01).max(.99).optional(),arrowHeadWidth:u.number().min(0).optional(),arrowHeadLength:u.number().min(0).optional(),arrowShaftWidth:u.number().min(1).optional(),d:u.string().optional(),fillType:u.enum(["solid","linear","radial","none"]).default("solid"),fillColor:de.default("#3b82f6"),gradientEndColor:de.optional(),gradientAngle:u.number().default(0),strokeColor:de.default("#ffffff"),strokeWidth:u.number().min(0).default(0),strokeDashArray:u.string().optional(),strokeDashOffset:u.number().default(0),strokeLineCap:u.enum(["butt","round","square"]).default("round"),strokeLineJoin:u.enum(["miter","round","bevel"]).default("round"),strokeAlign:u.enum(["inside","center","outside"]).optional(),trimStart:u.number().min(0).max(1).default(0),trimEnd:u.number().min(0).max(1).default(1),trimOffset:u.number().default(0)},Uu=u.object({...Pt,...kf,kind:u.literal("shape")}).strict(),Pf=u.object({offset:u.number().min(0).max(1),color:u.string()}),Gu=u.object({...Pt,kind:u.literal("model3d"),src:u.string().default(""),modelFormat:u.enum(["obj","fbx","gltf","glb","stl","ply","vox","3ds","off","auto"]).default("auto"),modelData:u.unknown().optional(),animationName:u.string().optional(),animationProgress:u.number().min(0).max(1).default(0),animationTime:u.number().min(0).default(0),animationSpeed:u.number().default(1),loop:u.boolean().default(!0),wireframe:u.boolean().default(!1),texture:u.string().optional(),center:u.boolean().optional(),normalizeSize:u.number().optional(),scaleX:u.number().default(1),scaleY:u.number().default(1),audioDeform:u.record(u.string(),u.unknown()).optional(),color:de.optional(),colorTint:de.optional(),text3dOptions:u.unknown().optional(),primitive3d:u.unknown().optional()}).strict(),Ro=u.lazy(()=>u.discriminatedUnion("kind",[Eu,vf,Iu,_u,ju,Uu,Du,Lu,Gu])),Tf=u.object({width:u.number().int().min(1).max(4096),height:u.number().int().min(1).max(4096),backgroundColor:de,volume:u.number().min(0).max(1).default(1),fps:u.number().int().min(1).max(120).default(24),mode:u.enum(["Video","Image"]).default("Video"),antialias3d:u.boolean().optional(),layout:u.array(Ro).default([]),fonts:u.array(u.string()).optional(),signals:u.record(u.string(),u.unknown()).optional(),effects:u.array(Tu).optional(),vision:u.unknown().optional(),onRequestFrame:u.custom().optional()}).strict();h();var $u=u.enum(["cut","carrierMatchCut","cameraWhip","focusPullDissolve","irisAperture","pushDirectional"]),Wu=u.object({sourceLayerId:u.string(),targetLayerId:u.string(),mode:u.enum(["exact","preserveVelocity","morph"]).default("preserveVelocity"),blendFrames:u.number().int().min(0).max(30).default(0)}).strict(),Mf=u.object({id:u.string(),chapter:u.enum(["hook","tension","solution","feature_spotlight","outro","custom"]).default("custom"),durationMs:u.number().positive().optional(),durationFrames:u.number().int().positive().optional(),transitionOut:u.object({type:$u.default("cut"),durationFrames:u.number().int().min(0).default(0),carrier:Wu.optional(),whipDirection:u.enum(["left","right","up","down"]).default("left")}).default({type:"cut",durationFrames:0,whipDirection:"left"})}).passthrough();function Cf(t,e){return{x:t.x,y:t.y,scale:t.scale,vx:t.vx,vy:t.vy,...e}}function Hu(t,e=60){let r=0,n=[];for(let a of t){let s=r,l=a.durationFrames??(a.durationMs?Math.round(a.durationMs/1e3*e):60);n.push({sceneId:a.id,startFrame:s,durationFrames:l});let c=a.transitionOverlap??a.transitionOut?.durationFrames??0;r+=Math.max(1,l-c)}let i=r,o=Math.round(i/e*1e3);return{totalFrames:i,totalDurationMs:o,sceneOffsets:n}}var Er=class t{id;chapter;durationMs;durationFrames;transitionOut;layout;constructor(e){this.id=e.id,this.chapter=e.chapter??"custom",this.durationMs=e.durationMs,this.durationFrames=e.durationFrames,this.transitionOut={type:e.transitionOut?.type??"cut",durationFrames:e.transitionOut?.durationFrames??0,carrier:e.transitionOut?.carrier,whipDirection:e.transitionOut?.whipDirection??"left"},this.layout=e.layout??[]}static create(e){return new t(e)}},Fo=class t{fps;width;height;backgroundColor;fonts;signals;scenes=[];constructor(e={}){if(this.fps=e.fps??60,this.width=e.width??1920,this.height=e.height??1080,this.backgroundColor=e.backgroundColor??"#ffffff",this.fonts=e.fonts,this.signals=e.signals,e.scenes)for(let r of e.scenes)this.addScene(r)}static create(e={}){return new t(e)}addScene(e){let r=e instanceof Er?e:new Er(e);return this.scenes.push(r),this}getScenes(){return this.scenes}calculateTimeline(){return Hu(this.scenes,this.fps)}toProgram(){let e=this.calculateTimeline(),r=[];for(let n=0;n<this.scenes.length;n++){let i=this.scenes[n],o=e.sceneOffsets[n];if(o)for(let a of i.layout){let s={...a};s.startFrame=(s.startFrame??0)+o.startFrame,s.durationFrames===void 0&&(s.durationFrames=o.durationFrames),r.push(s)}}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 Yu(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function Tt(t,e){if(!isFinite(t)||t===0)return null;var r=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"),n=t.slice(0,r);return[n.length>1?n[0]+n.slice(2):n,+t.slice(r+1)]}function We(t){return t=Tt(Math.abs(t)),t?t[1]:NaN}h();function Xu(t,e){return function(r,n){for(var i=r.length,o=[],a=0,s=t[0],l=0;i>0&&s>0&&(l+s+1>n&&(s=Math.max(1,n-l)),o.push(r.substring(i-=s,i+s)),!((l+=s+1)>n));)s=t[a=(a+1)%t.length];return o.reverse().join(e)}}h();function qu(t){return function(e){return e.replace(/[0-9]/g,function(r){return t[+r]})}}h();var Af=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function dt(t){if(!(e=Af.exec(t)))throw new Error("invalid format: "+t);var e;return new On({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}dt.prototype=On.prototype;function On(t){this.fill=t.fill===void 0?" ":t.fill+"",this.align=t.align===void 0?">":t.align+"",this.sign=t.sign===void 0?"-":t.sign+"",this.symbol=t.symbol===void 0?"":t.symbol+"",this.zero=!!t.zero,this.width=t.width===void 0?void 0:+t.width,this.comma=!!t.comma,this.precision=t.precision===void 0?void 0:+t.precision,this.trim=!!t.trim,this.type=t.type===void 0?"":t.type+""}On.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 Zu(t){e:for(var e=t.length,r=1,n=-1,i;r<e;++r)switch(t[r]){case".":n=i=r;break;case"0":n===0&&(n=r),i=r;break;default:if(!+t[r])break e;n>0&&(n=0);break}return n>0?t.slice(0,n)+t.slice(i+1):t}h();h();var Ir;function Ku(t,e){var r=Tt(t,e);if(!r)return Ir=void 0,t.toPrecision(e);var n=r[0],i=r[1],o=i-(Ir=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,a=n.length;return o===a?n:o>a?n+new Array(o-a+1).join("0"):o>0?n.slice(0,o)+"."+n.slice(o):"0."+new Array(1-o).join("0")+Tt(t,Math.max(0,e+o-1))[0]}h();function Bo(t,e){var r=Tt(t,e);if(!r)return t+"";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 Lo={"%":(t,e)=>(t*100).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:Yu,e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>Bo(t*100,e),r:Bo,s:Ku,X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};h();function Eo(t){return t}var Qu=Array.prototype.map,Ju=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];function el(t){var e=t.grouping===void 0||t.thousands===void 0?Eo:Xu(Qu.call(t.grouping,Number),t.thousands+""),r=t.currency===void 0?"":t.currency[0]+"",n=t.currency===void 0?"":t.currency[1]+"",i=t.decimal===void 0?".":t.decimal+"",o=t.numerals===void 0?Eo:qu(Qu.call(t.numerals,String)),a=t.percent===void 0?"%":t.percent+"",s=t.minus===void 0?"\u2212":t.minus+"",l=t.nan===void 0?"NaN":t.nan+"";function c(d,p){d=dt(d);var f=d.fill,b=d.align,g=d.sign,y=d.symbol,S=d.zero,A=d.width,T=d.comma,v=d.precision,C=d.trim,x=d.type;x==="n"?(T=!0,x="g"):Lo[x]||(v===void 0&&(v=12),C=!0,x="g"),(S||f==="0"&&b==="=")&&(S=!0,f="0",b="=");var M=(p&&p.prefix!==void 0?p.prefix:"")+(y==="$"?r:y==="#"&&/[boxX]/.test(x)?"0"+x.toLowerCase():""),O=(y==="$"?n:/[%p]/.test(x)?a:"")+(p&&p.suffix!==void 0?p.suffix:""),_=Lo[x],$=/[defgprs%]/.test(x);v=v===void 0?6:/[gprs]/.test(x)?Math.max(1,Math.min(21,v)):Math.max(0,Math.min(20,v));function I(F){var k=M,P=O,H,Y,j;if(x==="c")P=_(F)+P,F="";else{F=+F;var z=F<0||1/F<0;if(F=isNaN(F)?l:_(Math.abs(F),v),C&&(F=Zu(F)),z&&+F==0&&g!=="+"&&(z=!1),k=(z?g==="("?g:s:g==="-"||g==="("?"":g)+k,P=(x==="s"&&!isNaN(F)&&Ir!==void 0?Ju[8+Ir/3]:"")+P+(z&&g==="("?")":""),$){for(H=-1,Y=F.length;++H<Y;)if(j=F.charCodeAt(H),48>j||j>57){P=(j===46?i+F.slice(H+1):F.slice(H))+P,F=F.slice(0,H);break}}}T&&!S&&(F=e(F,1/0));var ee=k.length+F.length+P.length,oe=ee<A?new Array(A-ee+1).join(f):"";switch(T&&S&&(F=e(oe+F,oe.length?A-P.length:1/0),oe=""),b){case"<":F=k+F+P+oe;break;case"=":F=k+oe+F+P;break;case"^":F=oe.slice(0,ee=oe.length>>1)+k+F+P+oe.slice(ee);break;default:F=oe+k+F+P;break}return o(F)}return I.toString=function(){return d+""},I}function m(d,p){var f=Math.max(-8,Math.min(8,Math.floor(We(p)/3)))*3,b=Math.pow(10,-f),g=c((d=dt(d),d.type="f",d),{suffix:Ju[8+f/3]});return function(y){return g(b*y)}}return{format:c,formatPrefix:m}}var Rn,Kt,Fn;Io({thousands:",",grouping:[3],currency:["$",""]});function Io(t){return Rn=el(t),Kt=Rn.format,Fn=Rn.formatPrefix,Rn}h();function zo(t){return Math.max(0,-We(Math.abs(t)))}h();function Vo(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(We(e)/3)))*3-We(Math.abs(t)))}h();function _o(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,We(e)-We(t))+1}h();h();h();h();h();function Mt(t,e){return t==null||e==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}h();h();function jo(t,e){return t==null||e==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function Ct(t){let e,r,n;t.length!==2?(e=Mt,r=(s,l)=>Mt(t(s),l),n=(s,l)=>t(s)-l):(e=t===Mt||t===jo?t:Df,r=t,n=t);function i(s,l,c=0,m=s.length){if(c<m){if(e(l,l)!==0)return m;do{let d=c+m>>>1;r(s[d],l)<0?c=d+1:m=d}while(c<m)}return c}function o(s,l,c=0,m=s.length){if(c<m){if(e(l,l)!==0)return m;do{let d=c+m>>>1;r(s[d],l)<=0?c=d+1:m=d}while(c<m)}return c}function a(s,l,c=0,m=s.length){let d=i(s,l,c,m-1);return d>c&&n(s[d-1],l)>-n(s[d],l)?d-1:d}return{left:i,center:a,right:o}}function Df(){return 0}h();function Uo(t){return t===null?NaN:+t}var tl=Ct(Mt),rl=tl.right,Nf=tl.left,Of=Ct(Uo).center,Go=rl;h();var Qt=class extends Map{constructor(e,r=Bf){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:r}}),e!=null)for(let[n,i]of e)this.set(n,i)}get(e){return super.get(nl(this,e))}has(e){return super.has(nl(this,e))}set(e,r){return super.set(Rf(this,e),r)}delete(e){return super.delete(Ff(this,e))}};function nl({_intern:t,_key:e},r){let n=e(r);return t.has(n)?t.get(n):r}function Rf({_intern:t,_key:e},r){let n=e(r);return t.has(n)?t.get(n):(t.set(n,r),r)}function Ff({_intern:t,_key:e},r){let n=e(r);return t.has(n)&&(r=t.get(n),t.delete(n)),r}function Bf(t){return t!==null&&typeof t=="object"?t.valueOf():t}h();var Lf=Math.sqrt(50),Ef=Math.sqrt(10),If=Math.sqrt(2);function Bn(t,e,r){let n=(e-t)/Math.max(0,r),i=Math.floor(Math.log10(n)),o=n/Math.pow(10,i),a=o>=Lf?10:o>=Ef?5:o>=If?2:1,s,l,c;return i<0?(c=Math.pow(10,-i)/a,s=Math.round(t*c),l=Math.round(e*c),s/c<t&&++s,l/c>e&&--l,c=-c):(c=Math.pow(10,i)*a,s=Math.round(t/c),l=Math.round(e/c),s*c<t&&++s,l*c>e&&--l),l<s&&.5<=r&&r<2?Bn(t,e,r*2):[s,l,c]}function Ln(t,e,r){if(e=+e,t=+t,r=+r,!(r>0))return[];if(t===e)return[t];let n=e<t,[i,o,a]=n?Bn(e,t,r):Bn(t,e,r);if(!(o>=i))return[];let s=o-i+1,l=new Array(s);if(n)if(a<0)for(let c=0;c<s;++c)l[c]=(o-c)/-a;else for(let c=0;c<s;++c)l[c]=(o-c)*a;else if(a<0)for(let c=0;c<s;++c)l[c]=(i+c)/-a;else for(let c=0;c<s;++c)l[c]=(i+c)*a;return l}function zr(t,e,r){return e=+e,t=+t,r=+r,Bn(t,e,r)[2]}function Jt(t,e,r){e=+e,t=+t,r=+r;let n=e<t,i=n?zr(e,t,r):zr(t,e,r);return(n?-1:1)*(i<0?1/-i:i)}h();function En(t,e,r){t=+t,e=+e,r=(i=arguments.length)<2?(e=t,t=0,1):i<3?1:+r;for(var n=-1,i=Math.max(0,Math.ceil((e-t)/r))|0,o=new Array(i);++n<i;)o[n]=t+n*r;return o}h();function mt(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t);break}return this}h();var il=Symbol("implicit");function In(){var t=new Qt,e=[],r=[],n=il;function i(o){let a=t.get(o);if(a===void 0){if(n!==il)return n;t.set(o,a=e.push(o)-1)}return r[a%r.length]}return i.domain=function(o){if(!arguments.length)return e.slice();e=[],t=new Qt;for(let a of o)t.has(a)||t.set(a,e.push(a)-1);return i},i.range=function(o){return arguments.length?(r=Array.from(o),i):r.slice()},i.unknown=function(o){return arguments.length?(n=o,i):n},i.copy=function(){return In(e,r).unknown(n)},mt.apply(i,arguments),i}function Vr(){var t=In().unknown(void 0),e=t.domain,r=t.range,n=0,i=1,o,a,s=!1,l=0,c=0,m=.5;delete t.unknown;function d(){var p=e().length,f=i<n,b=f?i:n,g=f?n:i;o=(g-b)/Math.max(1,p-l+c*2),s&&(o=Math.floor(o)),b+=(g-b-o*(p-l))*m,a=o*(1-l),s&&(b=Math.round(b),a=Math.round(a));var y=En(p).map(function(S){return b+o*S});return r(f?y.reverse():y)}return t.domain=function(p){return arguments.length?(e(p),d()):e()},t.range=function(p){return arguments.length?([n,i]=p,n=+n,i=+i,d()):[n,i]},t.rangeRound=function(p){return[n,i]=p,n=+n,i=+i,s=!0,d()},t.bandwidth=function(){return a},t.step=function(){return o},t.round=function(p){return arguments.length?(s=!!p,d()):s},t.padding=function(p){return arguments.length?(l=Math.min(1,c=+p),d()):l},t.paddingInner=function(p){return arguments.length?(l=Math.min(1,p),d()):l},t.paddingOuter=function(p){return arguments.length?(c=+p,d()):c},t.align=function(p){return arguments.length?(m=Math.max(0,Math.min(1,p)),d()):m},t.copy=function(){return Vr(e(),[n,i]).round(s).paddingInner(l).paddingOuter(c).align(m)},mt.apply(d(),arguments)}h();h();h();h();h();h();h();function zn(t,e,r){t.prototype=e.prototype=r,r.constructor=t}function $o(t,e){var r=Object.create(t.prototype);for(var n in e)r[n]=e[n];return r}function Ur(){}var _r=.7,jn=1/_r,er="\\s*([+-]?\\d+)\\s*",jr="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",He="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",zf=/^#([0-9a-f]{3,8})$/,Vf=new RegExp(`^rgb\\(${er},${er},${er}\\)$`),_f=new RegExp(`^rgb\\(${He},${He},${He}\\)$`),jf=new RegExp(`^rgba\\(${er},${er},${er},${jr}\\)$`),Uf=new RegExp(`^rgba\\(${He},${He},${He},${jr}\\)$`),Gf=new RegExp(`^hsl\\(${jr},${He},${He}\\)$`),$f=new RegExp(`^hsla\\(${jr},${He},${He},${jr}\\)$`),ol={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};zn(Ur,pt,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:al,formatHex:al,formatHex8:Wf,formatHsl:Hf,formatRgb:sl,toString:sl});function al(){return this.rgb().formatHex()}function Wf(){return this.rgb().formatHex8()}function Hf(){return pl(this).formatHsl()}function sl(){return this.rgb().formatRgb()}function pt(t){var e,r;return t=(t+"").trim().toLowerCase(),(e=zf.exec(t))?(r=e[1].length,e=parseInt(e[1],16),r===6?ul(e):r===3?new Ee(e>>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):r===8?Vn(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):r===4?Vn(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=Vf.exec(t))?new Ee(e[1],e[2],e[3],1):(e=_f.exec(t))?new Ee(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=jf.exec(t))?Vn(e[1],e[2],e[3],e[4]):(e=Uf.exec(t))?Vn(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=Gf.exec(t))?dl(e[1],e[2]/100,e[3]/100,1):(e=$f.exec(t))?dl(e[1],e[2]/100,e[3]/100,e[4]):ol.hasOwnProperty(t)?ul(ol[t]):t==="transparent"?new Ee(NaN,NaN,NaN,0):null}function ul(t){return new Ee(t>>16&255,t>>8&255,t&255,1)}function Vn(t,e,r,n){return n<=0&&(t=e=r=NaN),new Ee(t,e,r,n)}function Yf(t){return t instanceof Ur||(t=pt(t)),t?(t=t.rgb(),new Ee(t.r,t.g,t.b,t.opacity)):new Ee}function tr(t,e,r,n){return arguments.length===1?Yf(t):new Ee(t,e,r,n??1)}function Ee(t,e,r,n){this.r=+t,this.g=+e,this.b=+r,this.opacity=+n}zn(Ee,tr,$o(Ur,{brighter(t){return t=t==null?jn:Math.pow(jn,t),new Ee(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?_r:Math.pow(_r,t),new Ee(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new Ee(Dt(this.r),Dt(this.g),Dt(this.b),Un(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:ll,formatHex:ll,formatHex8:Xf,formatRgb:cl,toString:cl}));function ll(){return`#${At(this.r)}${At(this.g)}${At(this.b)}`}function Xf(){return`#${At(this.r)}${At(this.g)}${At(this.b)}${At((isNaN(this.opacity)?1:this.opacity)*255)}`}function cl(){let t=Un(this.opacity);return`${t===1?"rgb(":"rgba("}${Dt(this.r)}, ${Dt(this.g)}, ${Dt(this.b)}${t===1?")":`, ${t})`}`}function Un(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function Dt(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function At(t){return t=Dt(t),(t<16?"0":"")+t.toString(16)}function dl(t,e,r,n){return n<=0?t=e=r=NaN:r<=0||r>=1?t=e=NaN:e<=0&&(t=NaN),new je(t,e,r,n)}function pl(t){if(t instanceof je)return new je(t.h,t.s,t.l,t.opacity);if(t instanceof Ur||(t=pt(t)),!t)return new je;if(t instanceof je)return t;t=t.rgb();var e=t.r/255,r=t.g/255,n=t.b/255,i=Math.min(e,r,n),o=Math.max(e,r,n),a=NaN,s=o-i,l=(o+i)/2;return s?(e===o?a=(r-n)/s+(r<n)*6:r===o?a=(n-e)/s+2:a=(e-r)/s+4,s/=l<.5?o+i:2-o-i,a*=60):s=l>0&&l<1?0:a,new je(a,s,l,t.opacity)}function fl(t,e,r,n){return arguments.length===1?pl(t):new je(t,e,r,n??1)}function je(t,e,r,n){this.h=+t,this.s=+e,this.l=+r,this.opacity=+n}zn(je,fl,$o(Ur,{brighter(t){return t=t==null?jn:Math.pow(jn,t),new je(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?_r:Math.pow(_r,t),new je(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*e,i=2*r-n;return new Ee(Wo(t>=240?t-240:t+120,i,n),Wo(t,i,n),Wo(t<120?t+240:t-120,i,n),this.opacity)},clamp(){return new je(ml(this.h),_n(this.s),_n(this.l),Un(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 t=Un(this.opacity);return`${t===1?"hsl(":"hsla("}${ml(this.h)}, ${_n(this.s)*100}%, ${_n(this.l)*100}%${t===1?")":`, ${t})`}`}}));function ml(t){return t=(t||0)%360,t<0?t+360:t}function _n(t){return Math.max(0,Math.min(1,t||0))}function Wo(t,e,r){return(t<60?e+(r-e)*t/60:t<180?r:t<240?e+(r-e)*(240-t)/60:e)*255}h();h();function Ho(t,e,r,n,i){var o=t*t,a=o*t;return((1-3*t+3*o-a)*e+(4-6*o+3*a)*r+(1+3*t+3*o-3*a)*n+a*i)/6}function hl(t){var e=t.length-1;return function(r){var n=r<=0?r=0:r>=1?(r=1,e-1):Math.floor(r*e),i=t[n],o=t[n+1],a=n>0?t[n-1]:2*i-o,s=n<e-1?t[n+2]:2*o-i;return Ho((r-n/e)*e,a,i,o,s)}}h();function gl(t){var e=t.length;return function(r){var n=Math.floor(((r%=1)<0?++r:r)*e),i=t[(n+e-1)%e],o=t[n%e],a=t[(n+1)%e],s=t[(n+2)%e];return Ho((r-n/e)*e,i,o,a,s)}}h();h();var Gr=t=>()=>t;function qf(t,e){return function(r){return t+r*e}}function Zf(t,e,r){return t=Math.pow(t,r),e=Math.pow(e,r)-t,r=1/r,function(n){return Math.pow(t+n*e,r)}}function bl(t){return(t=+t)==1?Gn:function(e,r){return r-e?Zf(e,r,t):Gr(isNaN(e)?r:e)}}function Gn(t,e){var r=e-t;return r?qf(t,r):Gr(isNaN(t)?e:t)}var Yo=(function t(e){var r=bl(e);function n(i,o){var a=r((i=tr(i)).r,(o=tr(o)).r),s=r(i.g,o.g),l=r(i.b,o.b),c=Gn(i.opacity,o.opacity);return function(m){return i.r=a(m),i.g=s(m),i.b=l(m),i.opacity=c(m),i+""}}return n.gamma=t,n})(1);function yl(t){return function(e){var r=e.length,n=new Array(r),i=new Array(r),o=new Array(r),a,s;for(a=0;a<r;++a)s=tr(e[a]),n[a]=s.r||0,i[a]=s.g||0,o[a]=s.b||0;return n=t(n),i=t(i),o=t(o),s.opacity=1,function(l){return s.r=n(l),s.g=i(l),s.b=o(l),s+""}}}var lk=yl(hl),ck=yl(gl);h();h();function xl(t,e){e||(e=[]);var r=t?Math.min(e.length,t.length):0,n=e.slice(),i;return function(o){for(i=0;i<r;++i)n[i]=t[i]*(1-o)+e[i]*o;return n}}function wl(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function vl(t,e){var r=e?e.length:0,n=t?Math.min(r,t.length):0,i=new Array(n),o=new Array(r),a;for(a=0;a<n;++a)i[a]=Nt(t[a],e[a]);for(;a<r;++a)o[a]=e[a];return function(s){for(a=0;a<n;++a)o[a]=i[a](s);return o}}h();function Sl(t,e){var r=new Date;return t=+t,e=+e,function(n){return r.setTime(t*(1-n)+e*n),r}}h();function ft(t,e){return t=+t,e=+e,function(r){return t*(1-r)+e*r}}h();function kl(t,e){var r={},n={},i;(t===null||typeof t!="object")&&(t={}),(e===null||typeof e!="object")&&(e={});for(i in e)i in t?r[i]=Nt(t[i],e[i]):n[i]=e[i];return function(o){for(i in r)n[i]=r[i](o);return n}}h();var qo=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Xo=new RegExp(qo.source,"g");function Kf(t){return function(){return t}}function Qf(t){return function(e){return t(e)+""}}function Pl(t,e){var r=qo.lastIndex=Xo.lastIndex=0,n,i,o,a=-1,s=[],l=[];for(t=t+"",e=e+"";(n=qo.exec(t))&&(i=Xo.exec(e));)(o=i.index)>r&&(o=e.slice(r,o),s[a]?s[a]+=o:s[++a]=o),(n=n[0])===(i=i[0])?s[a]?s[a]+=i:s[++a]=i:(s[++a]=null,l.push({i:a,x:ft(n,i)})),r=Xo.lastIndex;return r<e.length&&(o=e.slice(r),s[a]?s[a]+=o:s[++a]=o),s.length<2?l[0]?Qf(l[0].x):Kf(e):(e=l.length,function(c){for(var m=0,d;m<e;++m)s[(d=l[m]).i]=d.x(c);return s.join("")})}function Nt(t,e){var r=typeof e,n;return e==null||r==="boolean"?Gr(e):(r==="number"?ft:r==="string"?(n=pt(e))?(e=n,Yo):Pl:e instanceof pt?Yo:e instanceof Date?Sl:wl(e)?xl:Array.isArray(e)?vl:typeof e.valueOf!="function"&&typeof e.toString!="function"||isNaN(e)?kl:ft)(t,e)}h();function Zo(t,e){return t=+t,e=+e,function(r){return Math.round(t*(1-r)+e*r)}}h();function Ko(t){return function(){return t}}h();function Qo(t){return+t}var Tl=[0,1];function rr(t){return t}function Jo(t,e){return(e-=t=+t)?function(r){return(r-t)/e}:Ko(isNaN(e)?NaN:.5)}function Jf(t,e){var r;return t>e&&(r=t,t=e,e=r),function(n){return Math.max(t,Math.min(e,n))}}function eh(t,e,r){var n=t[0],i=t[1],o=e[0],a=e[1];return i<n?(n=Jo(i,n),o=r(a,o)):(n=Jo(n,i),o=r(o,a)),function(s){return o(n(s))}}function th(t,e,r){var n=Math.min(t.length,e.length)-1,i=new Array(n),o=new Array(n),a=-1;for(t[n]<t[0]&&(t=t.slice().reverse(),e=e.slice().reverse());++a<n;)i[a]=Jo(t[a],t[a+1]),o[a]=r(e[a],e[a+1]);return function(s){var l=Go(t,s,1,n)-1;return o[l](i[l](s))}}function $n(t,e){return e.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown())}function rh(){var t=Tl,e=Tl,r=Nt,n,i,o,a=rr,s,l,c;function m(){var p=Math.min(t.length,e.length);return a!==rr&&(a=Jf(t[0],t[p-1])),s=p>2?th:eh,l=c=null,d}function d(p){return p==null||isNaN(p=+p)?o:(l||(l=s(t.map(n),e,r)))(n(a(p)))}return d.invert=function(p){return a(i((c||(c=s(e,t.map(n),ft)))(p)))},d.domain=function(p){return arguments.length?(t=Array.from(p,Qo),m()):t.slice()},d.range=function(p){return arguments.length?(e=Array.from(p),m()):e.slice()},d.rangeRound=function(p){return e=Array.from(p),r=Zo,m()},d.clamp=function(p){return arguments.length?(a=p?!0:rr,m()):a!==rr},d.interpolate=function(p){return arguments.length?(r=p,m()):r},d.unknown=function(p){return arguments.length?(o=p,d):o},function(p,f){return n=p,i=f,m()}}function $r(){return rh()(rr,rr)}h();function ea(t,e,r,n){var i=Jt(t,e,r),o;switch(n=dt(n??",f"),n.type){case"s":{var a=Math.max(Math.abs(t),Math.abs(e));return n.precision==null&&!isNaN(o=Vo(i,a))&&(n.precision=o),Fn(n,a)}case"":case"e":case"g":case"p":case"r":{n.precision==null&&!isNaN(o=_o(i,Math.max(Math.abs(t),Math.abs(e))))&&(n.precision=o-(n.type==="e"));break}case"f":case"%":{n.precision==null&&!isNaN(o=zo(i))&&(n.precision=o-(n.type==="%")*2);break}}return Kt(n)}function nh(t){var e=t.domain;return t.ticks=function(r){var n=e();return Ln(n[0],n[n.length-1],r??10)},t.tickFormat=function(r,n){var i=e();return ea(i[0],i[i.length-1],r??10,n)},t.nice=function(r){r==null&&(r=10);var n=e(),i=0,o=n.length-1,a=n[i],s=n[o],l,c,m=10;for(s<a&&(c=a,a=s,s=c,c=i,i=o,o=c);m-- >0;){if(c=zr(a,s,r),c===l)return n[i]=a,n[o]=s,e(n);if(c>0)a=Math.floor(a/c)*c,s=Math.ceil(s/c)*c;else if(c<0)a=Math.ceil(a*c)/c,s=Math.floor(s*c)/c;else break;l=c}return t},t}function nr(){var t=$r();return t.copy=function(){return $n(t,nr())},mt.apply(t,arguments),nh(t)}h();function ta(t,e){t=t.slice();var r=0,n=t.length-1,i=t[r],o=t[n],a;return o<i&&(a=r,r=n,n=a,a=i,i=o,o=a),t[r]=e.floor(i),t[n]=e.ceil(o),t}h();h();h();var ra=new Date,na=new Date;function me(t,e,r,n){function i(o){return t(o=arguments.length===0?new Date:new Date(+o)),o}return i.floor=o=>(t(o=new Date(+o)),o),i.ceil=o=>(t(o=new Date(o-1)),e(o,1),t(o),o),i.round=o=>{let a=i(o),s=i.ceil(o);return o-a<s-o?a:s},i.offset=(o,a)=>(e(o=new Date(+o),a==null?1:Math.floor(a)),o),i.range=(o,a,s)=>{let l=[];if(o=i.ceil(o),s=s==null?1:Math.floor(s),!(o<a)||!(s>0))return l;let c;do l.push(c=new Date(+o)),e(o,s),t(o);while(c<o&&o<a);return l},i.filter=o=>me(a=>{if(a>=a)for(;t(a),!o(a);)a.setTime(a-1)},(a,s)=>{if(a>=a)if(s<0)for(;++s<=0;)for(;e(a,-1),!o(a););else for(;--s>=0;)for(;e(a,1),!o(a););}),r&&(i.count=(o,a)=>(ra.setTime(+o),na.setTime(+a),t(ra),t(na),Math.floor(r(ra,na))),i.every=o=>(o=Math.floor(o),!isFinite(o)||!(o>0)?null:o>1?i.filter(n?a=>n(a)%o===0:a=>i.count(0,a)%o===0):i)),i}h();var Wr=me(()=>{},(t,e)=>{t.setTime(+t+e)},(t,e)=>e-t);Wr.every=t=>(t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?me(e=>{e.setTime(Math.floor(e/t)*t)},(e,r)=>{e.setTime(+e+r*t)},(e,r)=>(r-e)/t):Wr);var bP=Wr.range;h();var Ye=me(t=>{t.setTime(t-t.getMilliseconds())},(t,e)=>{t.setTime(+t+e*1e3)},(t,e)=>(e-t)/1e3,t=>t.getUTCSeconds()),Ml=Ye.range;h();var Wn=me(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*1e3)},(t,e)=>{t.setTime(+t+e*6e4)},(t,e)=>(e-t)/6e4,t=>t.getMinutes()),ih=Wn.range,ir=me(t=>{t.setUTCSeconds(0,0)},(t,e)=>{t.setTime(+t+e*6e4)},(t,e)=>(e-t)/6e4,t=>t.getUTCMinutes()),oh=ir.range;h();var Hn=me(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*1e3-t.getMinutes()*6e4)},(t,e)=>{t.setTime(+t+e*36e5)},(t,e)=>(e-t)/36e5,t=>t.getHours()),ah=Hn.range,or=me(t=>{t.setUTCMinutes(0,0,0)},(t,e)=>{t.setTime(+t+e*36e5)},(t,e)=>(e-t)/36e5,t=>t.getUTCHours()),sh=or.range;h();var Ft=me(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*6e4)/864e5,t=>t.getDate()-1),uh=Ft.range,Bt=me(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/864e5,t=>t.getUTCDate()-1),lh=Bt.range,Yn=me(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/864e5,t=>Math.floor(t/864e5)),ch=Yn.range;h();function Lt(t){return me(e=>{e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},(e,r)=>{e.setDate(e.getDate()+r*7)},(e,r)=>(r-e-(r.getTimezoneOffset()-e.getTimezoneOffset())*6e4)/6048e5)}var Et=Lt(0),ar=Lt(1),Al=Lt(2),Dl=Lt(3),ht=Lt(4),Nl=Lt(5),Ol=Lt(6),Rl=Et.range,dh=ar.range,mh=Al.range,ph=Dl.range,fh=ht.range,hh=Nl.range,gh=Ol.range;function It(t){return me(e=>{e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},(e,r)=>{e.setUTCDate(e.getUTCDate()+r*7)},(e,r)=>(r-e)/6048e5)}var tt=It(0),sr=It(1),Fl=It(2),Bl=It(3),gt=It(4),Ll=It(5),El=It(6),Il=tt.range,bh=sr.range,yh=Fl.range,xh=Bl.range,wh=gt.range,vh=Ll.range,Sh=El.range;h();var Xn=me(t=>{t.setDate(1),t.setHours(0,0,0,0)},(t,e)=>{t.setMonth(t.getMonth()+e)},(t,e)=>e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12,t=>t.getMonth()),kh=Xn.range,ur=me(t=>{t.setUTCDate(1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCMonth(t.getUTCMonth()+e)},(t,e)=>e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12,t=>t.getUTCMonth()),Ph=ur.range;h();var Ue=me(t=>{t.setMonth(0,1),t.setHours(0,0,0,0)},(t,e)=>{t.setFullYear(t.getFullYear()+e)},(t,e)=>e.getFullYear()-t.getFullYear(),t=>t.getFullYear());Ue.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:me(e=>{e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},(e,r)=>{e.setFullYear(e.getFullYear()+r*t)});var Th=Ue.range,Ie=me(t=>{t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCFullYear(t.getUTCFullYear()+e)},(t,e)=>e.getUTCFullYear()-t.getUTCFullYear(),t=>t.getUTCFullYear());Ie.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:me(e=>{e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,r)=>{e.setUTCFullYear(e.getUTCFullYear()+r*t)});var Mh=Ie.range;h();function Vl(t,e,r,n,i,o){let a=[[Ye,1,1e3],[Ye,5,5*1e3],[Ye,15,15*1e3],[Ye,30,30*1e3],[o,1,6e4],[o,5,5*6e4],[o,15,15*6e4],[o,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],[e,1,2592e6],[e,3,3*2592e6],[t,1,31536e6]];function s(c,m,d){let p=m<c;p&&([c,m]=[m,c]);let f=d&&typeof d.range=="function"?d:l(c,m,d),b=f?f.range(c,+m+1):[];return p?b.reverse():b}function l(c,m,d){let p=Math.abs(m-c)/d,f=Ct(([,,y])=>y).right(a,p);if(f===a.length)return t.every(Jt(c/31536e6,m/31536e6,d));if(f===0)return Wr.every(Math.max(Jt(c,m,d),1));let[b,g]=a[p/a[f-1][2]<a[f][2]/p?f-1:f];return b.every(g)}return[s,l]}var[ia,oa]=Vl(Ie,ur,tt,Yn,or,ir),[Ah,Dh]=Vl(Ue,Xn,Et,Ft,Hn,Wn);h();h();h();function aa(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function sa(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function Yr(t,e,r){return{y:t,m:e,d:r,H:0,M:0,S:0,L:0}}function ua(t){var e=t.dateTime,r=t.date,n=t.time,i=t.periods,o=t.days,a=t.shortDays,s=t.months,l=t.shortMonths,c=Xr(i),m=qr(i),d=Xr(o),p=qr(o),f=Xr(a),b=qr(a),g=Xr(s),y=qr(s),S=Xr(l),A=qr(l),T={a:j,A:z,b:ee,B:oe,c:null,d:Wl,e:Wl,f:Qh,g:ug,G:cg,H:qh,I:Zh,j:Kh,L:Zl,m:Jh,M:eg,p:ge,q:le,Q:Xl,s:ql,S:tg,u:rg,U:ng,V:ig,w:og,W:ag,x:null,X:null,y:sg,Y:lg,Z:dg,"%":Yl},v={a:L,A:V,b:W,B:K,c:null,d:Hl,e:Hl,f:hg,g:Tg,G:Cg,H:mg,I:pg,j:fg,L:Ql,m:gg,M:bg,p:X,q:te,Q:Xl,s:ql,S:yg,u:xg,U:wg,V:vg,w:Sg,W:kg,x:null,X:null,y:Pg,Y:Mg,Z:Ag,"%":Yl},C={a:$,A:I,b:F,B:k,c:P,d:Gl,e:Gl,f:Wh,g:Ul,G:jl,H:$l,I:$l,j:jh,L:$h,m:_h,M:Uh,p:_,q:Vh,Q:Yh,s:Xh,S:Gh,u:Bh,U:Lh,V:Eh,w:Fh,W:Ih,x:H,X:Y,y:Ul,Y:jl,Z:zh,"%":Hh};T.x=x(r,T),T.X=x(n,T),T.c=x(e,T),v.x=x(r,v),v.X=x(n,v),v.c=x(e,v);function x(R,E){return function(q){var N=[],Se=-1,ce=0,Ae=R.length,De,Ze,ln;for(q instanceof Date||(q=new Date(+q));++Se<Ae;)R.charCodeAt(Se)===37&&(N.push(R.slice(ce,Se)),(Ze=_l[De=R.charAt(++Se)])!=null?De=R.charAt(++Se):Ze=De==="e"?" ":"0",(ln=E[De])&&(De=ln(q,Ze)),N.push(De),ce=Se+1);return N.push(R.slice(ce,Se)),N.join("")}}function M(R,E){return function(q){var N=Yr(1900,void 0,1),Se=O(N,R,q+="",0),ce,Ae;if(Se!=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(E&&!("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?(ce=sa(Yr(N.y,0,1)),Ae=ce.getUTCDay(),ce=Ae>4||Ae===0?sr.ceil(ce):sr(ce),ce=Bt.offset(ce,(N.V-1)*7),N.y=ce.getUTCFullYear(),N.m=ce.getUTCMonth(),N.d=ce.getUTCDate()+(N.w+6)%7):(ce=aa(Yr(N.y,0,1)),Ae=ce.getDay(),ce=Ae>4||Ae===0?ar.ceil(ce):ar(ce),ce=Ft.offset(ce,(N.V-1)*7),N.y=ce.getFullYear(),N.m=ce.getMonth(),N.d=ce.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),Ae="Z"in N?sa(Yr(N.y,0,1)).getUTCDay():aa(Yr(N.y,0,1)).getDay(),N.m=0,N.d="W"in N?(N.w+6)%7+N.W*7-(Ae+5)%7:N.w+N.U*7-(Ae+6)%7);return"Z"in N?(N.H+=N.Z/100|0,N.M+=N.Z%100,sa(N)):aa(N)}}function O(R,E,q,N){for(var Se=0,ce=E.length,Ae=q.length,De,Ze;Se<ce;){if(N>=Ae)return-1;if(De=E.charCodeAt(Se++),De===37){if(De=E.charAt(Se++),Ze=C[De in _l?E.charAt(Se++):De],!Ze||(N=Ze(R,q,N))<0)return-1}else if(De!=q.charCodeAt(N++))return-1}return N}function _(R,E,q){var N=c.exec(E.slice(q));return N?(R.p=m.get(N[0].toLowerCase()),q+N[0].length):-1}function $(R,E,q){var N=f.exec(E.slice(q));return N?(R.w=b.get(N[0].toLowerCase()),q+N[0].length):-1}function I(R,E,q){var N=d.exec(E.slice(q));return N?(R.w=p.get(N[0].toLowerCase()),q+N[0].length):-1}function F(R,E,q){var N=S.exec(E.slice(q));return N?(R.m=A.get(N[0].toLowerCase()),q+N[0].length):-1}function k(R,E,q){var N=g.exec(E.slice(q));return N?(R.m=y.get(N[0].toLowerCase()),q+N[0].length):-1}function P(R,E,q){return O(R,e,E,q)}function H(R,E,q){return O(R,r,E,q)}function Y(R,E,q){return O(R,n,E,q)}function j(R){return a[R.getDay()]}function z(R){return o[R.getDay()]}function ee(R){return l[R.getMonth()]}function oe(R){return s[R.getMonth()]}function ge(R){return i[+(R.getHours()>=12)]}function le(R){return 1+~~(R.getMonth()/3)}function L(R){return a[R.getUTCDay()]}function V(R){return o[R.getUTCDay()]}function W(R){return l[R.getUTCMonth()]}function K(R){return s[R.getUTCMonth()]}function X(R){return i[+(R.getUTCHours()>=12)]}function te(R){return 1+~~(R.getUTCMonth()/3)}return{format:function(R){var E=x(R+="",T);return E.toString=function(){return R},E},parse:function(R){var E=M(R+="",!1);return E.toString=function(){return R},E},utcFormat:function(R){var E=x(R+="",v);return E.toString=function(){return R},E},utcParse:function(R){var E=M(R+="",!0);return E.toString=function(){return R},E}}}var _l={"-":"",_:" ",0:"0"},Pe=/^\s*\d+/,Nh=/^%/,Oh=/[\\^$*+?|[\]().{}]/g;function se(t,e,r){var n=t<0?"-":"",i=(n?-t:t)+"",o=i.length;return n+(o<r?new Array(r-o+1).join(e)+i:i)}function Rh(t){return t.replace(Oh,"\\$&")}function Xr(t){return new RegExp("^(?:"+t.map(Rh).join("|")+")","i")}function qr(t){return new Map(t.map((e,r)=>[e.toLowerCase(),r]))}function Fh(t,e,r){var n=Pe.exec(e.slice(r,r+1));return n?(t.w=+n[0],r+n[0].length):-1}function Bh(t,e,r){var n=Pe.exec(e.slice(r,r+1));return n?(t.u=+n[0],r+n[0].length):-1}function Lh(t,e,r){var n=Pe.exec(e.slice(r,r+2));return n?(t.U=+n[0],r+n[0].length):-1}function Eh(t,e,r){var n=Pe.exec(e.slice(r,r+2));return n?(t.V=+n[0],r+n[0].length):-1}function Ih(t,e,r){var n=Pe.exec(e.slice(r,r+2));return n?(t.W=+n[0],r+n[0].length):-1}function jl(t,e,r){var n=Pe.exec(e.slice(r,r+4));return n?(t.y=+n[0],r+n[0].length):-1}function Ul(t,e,r){var n=Pe.exec(e.slice(r,r+2));return n?(t.y=+n[0]+(+n[0]>68?1900:2e3),r+n[0].length):-1}function zh(t,e,r){var n=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(r,r+6));return n?(t.Z=n[1]?0:-(n[2]+(n[3]||"00")),r+n[0].length):-1}function Vh(t,e,r){var n=Pe.exec(e.slice(r,r+1));return n?(t.q=n[0]*3-3,r+n[0].length):-1}function _h(t,e,r){var n=Pe.exec(e.slice(r,r+2));return n?(t.m=n[0]-1,r+n[0].length):-1}function Gl(t,e,r){var n=Pe.exec(e.slice(r,r+2));return n?(t.d=+n[0],r+n[0].length):-1}function jh(t,e,r){var n=Pe.exec(e.slice(r,r+3));return n?(t.m=0,t.d=+n[0],r+n[0].length):-1}function $l(t,e,r){var n=Pe.exec(e.slice(r,r+2));return n?(t.H=+n[0],r+n[0].length):-1}function Uh(t,e,r){var n=Pe.exec(e.slice(r,r+2));return n?(t.M=+n[0],r+n[0].length):-1}function Gh(t,e,r){var n=Pe.exec(e.slice(r,r+2));return n?(t.S=+n[0],r+n[0].length):-1}function $h(t,e,r){var n=Pe.exec(e.slice(r,r+3));return n?(t.L=+n[0],r+n[0].length):-1}function Wh(t,e,r){var n=Pe.exec(e.slice(r,r+6));return n?(t.L=Math.floor(n[0]/1e3),r+n[0].length):-1}function Hh(t,e,r){var n=Nh.exec(e.slice(r,r+1));return n?r+n[0].length:-1}function Yh(t,e,r){var n=Pe.exec(e.slice(r));return n?(t.Q=+n[0],r+n[0].length):-1}function Xh(t,e,r){var n=Pe.exec(e.slice(r));return n?(t.s=+n[0],r+n[0].length):-1}function Wl(t,e){return se(t.getDate(),e,2)}function qh(t,e){return se(t.getHours(),e,2)}function Zh(t,e){return se(t.getHours()%12||12,e,2)}function Kh(t,e){return se(1+Ft.count(Ue(t),t),e,3)}function Zl(t,e){return se(t.getMilliseconds(),e,3)}function Qh(t,e){return Zl(t,e)+"000"}function Jh(t,e){return se(t.getMonth()+1,e,2)}function eg(t,e){return se(t.getMinutes(),e,2)}function tg(t,e){return se(t.getSeconds(),e,2)}function rg(t){var e=t.getDay();return e===0?7:e}function ng(t,e){return se(Et.count(Ue(t)-1,t),e,2)}function Kl(t){var e=t.getDay();return e>=4||e===0?ht(t):ht.ceil(t)}function ig(t,e){return t=Kl(t),se(ht.count(Ue(t),t)+(Ue(t).getDay()===4),e,2)}function og(t){return t.getDay()}function ag(t,e){return se(ar.count(Ue(t)-1,t),e,2)}function sg(t,e){return se(t.getFullYear()%100,e,2)}function ug(t,e){return t=Kl(t),se(t.getFullYear()%100,e,2)}function lg(t,e){return se(t.getFullYear()%1e4,e,4)}function cg(t,e){var r=t.getDay();return t=r>=4||r===0?ht(t):ht.ceil(t),se(t.getFullYear()%1e4,e,4)}function dg(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+se(e/60|0,"0",2)+se(e%60,"0",2)}function Hl(t,e){return se(t.getUTCDate(),e,2)}function mg(t,e){return se(t.getUTCHours(),e,2)}function pg(t,e){return se(t.getUTCHours()%12||12,e,2)}function fg(t,e){return se(1+Bt.count(Ie(t),t),e,3)}function Ql(t,e){return se(t.getUTCMilliseconds(),e,3)}function hg(t,e){return Ql(t,e)+"000"}function gg(t,e){return se(t.getUTCMonth()+1,e,2)}function bg(t,e){return se(t.getUTCMinutes(),e,2)}function yg(t,e){return se(t.getUTCSeconds(),e,2)}function xg(t){var e=t.getUTCDay();return e===0?7:e}function wg(t,e){return se(tt.count(Ie(t)-1,t),e,2)}function Jl(t){var e=t.getUTCDay();return e>=4||e===0?gt(t):gt.ceil(t)}function vg(t,e){return t=Jl(t),se(gt.count(Ie(t),t)+(Ie(t).getUTCDay()===4),e,2)}function Sg(t){return t.getUTCDay()}function kg(t,e){return se(sr.count(Ie(t)-1,t),e,2)}function Pg(t,e){return se(t.getUTCFullYear()%100,e,2)}function Tg(t,e){return t=Jl(t),se(t.getUTCFullYear()%100,e,2)}function Mg(t,e){return se(t.getUTCFullYear()%1e4,e,4)}function Cg(t,e){var r=t.getUTCDay();return t=r>=4||r===0?gt(t):gt.ceil(t),se(t.getUTCFullYear()%1e4,e,4)}function Ag(){return"+0000"}function Yl(){return"%"}function Xl(t){return+t}function ql(t){return Math.floor(+t/1e3)}var lr,ec,tc,qn,rc;la({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 la(t){return lr=ua(t),ec=lr.format,tc=lr.parse,qn=lr.utcFormat,rc=lr.utcParse,lr}function Dg(t){return new Date(t)}function Ng(t){return t instanceof Date?+t:+new Date(+t)}function ca(t,e,r,n,i,o,a,s,l,c){var m=$r(),d=m.invert,p=m.domain,f=c(".%L"),b=c(":%S"),g=c("%I:%M"),y=c("%I %p"),S=c("%a %d"),A=c("%b %d"),T=c("%B"),v=c("%Y");function C(x){return(l(x)<x?f:s(x)<x?b:a(x)<x?g:o(x)<x?y:n(x)<x?i(x)<x?S:A:r(x)<x?T:v)(x)}return m.invert=function(x){return new Date(d(x))},m.domain=function(x){return arguments.length?p(Array.from(x,Ng)):p().map(Dg)},m.ticks=function(x){var M=p();return t(M[0],M[M.length-1],x??10)},m.tickFormat=function(x,M){return M==null?C:c(M)},m.nice=function(x){var M=p();return(!x||typeof x.range!="function")&&(x=e(M[0],M[M.length-1],x??10)),x?p(ta(M,x)):m},m.copy=function(){return $n(m,ca(t,e,r,n,i,o,a,s,l,c))},m}h();function Zn(){return mt.apply(ca(ia,oa,Ie,ur,tt,Bt,or,ir,Ye,qn).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}h();h();h();function J(t){return function(){return t}}h();var da=Math.abs,Ce=Math.atan2,bt=Math.cos,nc=Math.max,Kn=Math.min,Ge=Math.sin,zt=Math.sqrt,Le=1e-12,cr=Math.PI,Zr=cr/2,dr=2*cr;function ic(t){return t>1?0:t<-1?cr:Math.acos(t)}function ma(t){return t>=1?Zr:t<=-1?-Zr:Math.asin(t)}h();h();h();var pa=Math.PI,fa=2*pa,Vt=1e-6,Og=fa-Vt;function oc(t){this._+=t[0];for(let e=1,r=t.length;e<r;++e)this._+=arguments[e]+t[e]}function Rg(t){let e=Math.floor(t);if(!(e>=0))throw new Error(`invalid digits: ${t}`);if(e>15)return oc;let r=10**e;return function(n){this._+=n[0];for(let i=1,o=n.length;i<o;++i)this._+=Math.round(arguments[i]*r)/r+n[i]}}var _t=class{constructor(e){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=e==null?oc:Rg(e)}moveTo(e,r){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+r}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(e,r){this._append`L${this._x1=+e},${this._y1=+r}`}quadraticCurveTo(e,r,n,i){this._append`Q${+e},${+r},${this._x1=+n},${this._y1=+i}`}bezierCurveTo(e,r,n,i,o,a){this._append`C${+e},${+r},${+n},${+i},${this._x1=+o},${this._y1=+a}`}arcTo(e,r,n,i,o){if(e=+e,r=+r,n=+n,i=+i,o=+o,o<0)throw new Error(`negative radius: ${o}`);let a=this._x1,s=this._y1,l=n-e,c=i-r,m=a-e,d=s-r,p=m*m+d*d;if(this._x1===null)this._append`M${this._x1=e},${this._y1=r}`;else if(p>Vt)if(!(Math.abs(d*l-c*m)>Vt)||!o)this._append`L${this._x1=e},${this._y1=r}`;else{let f=n-a,b=i-s,g=l*l+c*c,y=f*f+b*b,S=Math.sqrt(g),A=Math.sqrt(p),T=o*Math.tan((pa-Math.acos((g+p-y)/(2*S*A)))/2),v=T/A,C=T/S;Math.abs(v-1)>Vt&&this._append`L${e+v*m},${r+v*d}`,this._append`A${o},${o},0,0,${+(d*f>m*b)},${this._x1=e+C*l},${this._y1=r+C*c}`}}arc(e,r,n,i,o,a){if(e=+e,r=+r,n=+n,a=!!a,n<0)throw new Error(`negative radius: ${n}`);let s=n*Math.cos(i),l=n*Math.sin(i),c=e+s,m=r+l,d=1^a,p=a?i-o:o-i;this._x1===null?this._append`M${c},${m}`:(Math.abs(this._x1-c)>Vt||Math.abs(this._y1-m)>Vt)&&this._append`L${c},${m}`,n&&(p<0&&(p=p%fa+fa),p>Og?this._append`A${n},${n},0,1,${d},${e-s},${r-l}A${n},${n},0,1,${d},${this._x1=c},${this._y1=m}`:p>Vt&&this._append`A${n},${n},0,${+(p>=pa)},${d},${this._x1=e+n*Math.cos(o)},${this._y1=r+n*Math.sin(o)}`)}rect(e,r,n,i){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+r}h${n=+n}v${+i}h${-n}Z`}toString(){return this._}};function ac(){return new _t}ac.prototype=_t.prototype;function mr(t){let e=3;return t.digits=function(r){if(!arguments.length)return e;if(r==null)e=null;else{let n=Math.floor(r);if(!(n>=0))throw new RangeError(`invalid digits: ${r}`);e=n}return t},()=>new _t(e)}function Fg(t){return t.innerRadius}function Bg(t){return t.outerRadius}function Lg(t){return t.startAngle}function Eg(t){return t.endAngle}function Ig(t){return t&&t.padAngle}function zg(t,e,r,n,i,o,a,s){var l=r-t,c=n-e,m=a-i,d=s-o,p=d*l-m*c;if(!(p*p<Le))return p=(m*(e-o)-d*(t-i))/p,[t+p*l,e+p*c]}function Qn(t,e,r,n,i,o,a){var s=t-r,l=e-n,c=(a?o:-o)/zt(s*s+l*l),m=c*l,d=-c*s,p=t+m,f=e+d,b=r+m,g=n+d,y=(p+b)/2,S=(f+g)/2,A=b-p,T=g-f,v=A*A+T*T,C=i-o,x=p*g-b*f,M=(T<0?-1:1)*zt(nc(0,C*C*v-x*x)),O=(x*T-A*M)/v,_=(-x*A-T*M)/v,$=(x*T+A*M)/v,I=(-x*A+T*M)/v,F=O-y,k=_-S,P=$-y,H=I-S;return F*F+k*k>P*P+H*H&&(O=$,_=I),{cx:O,cy:_,x01:-m,y01:-d,x11:O*(i/C-1),y11:_*(i/C-1)}}function Jn(){var t=Fg,e=Bg,r=J(0),n=null,i=Lg,o=Eg,a=Ig,s=null,l=mr(c);function c(){var m,d,p=+t.apply(this,arguments),f=+e.apply(this,arguments),b=i.apply(this,arguments)-Zr,g=o.apply(this,arguments)-Zr,y=da(g-b),S=g>b;if(s||(s=m=l()),f<p&&(d=f,f=p,p=d),!(f>Le))s.moveTo(0,0);else if(y>dr-Le)s.moveTo(f*bt(b),f*Ge(b)),s.arc(0,0,f,b,g,!S),p>Le&&(s.moveTo(p*bt(g),p*Ge(g)),s.arc(0,0,p,g,b,S));else{var A=b,T=g,v=b,C=g,x=y,M=y,O=a.apply(this,arguments)/2,_=O>Le&&(n?+n.apply(this,arguments):zt(p*p+f*f)),$=Kn(da(f-p)/2,+r.apply(this,arguments)),I=$,F=$,k,P;if(_>Le){var H=ma(_/p*Ge(O)),Y=ma(_/f*Ge(O));(x-=H*2)>Le?(H*=S?1:-1,v+=H,C-=H):(x=0,v=C=(b+g)/2),(M-=Y*2)>Le?(Y*=S?1:-1,A+=Y,T-=Y):(M=0,A=T=(b+g)/2)}var j=f*bt(A),z=f*Ge(A),ee=p*bt(C),oe=p*Ge(C);if($>Le){var ge=f*bt(T),le=f*Ge(T),L=p*bt(v),V=p*Ge(v),W;if(y<cr)if(W=zg(j,z,L,V,ge,le,ee,oe)){var K=j-W[0],X=z-W[1],te=ge-W[0],R=le-W[1],E=1/Ge(ic((K*te+X*R)/(zt(K*K+X*X)*zt(te*te+R*R)))/2),q=zt(W[0]*W[0]+W[1]*W[1]);I=Kn($,(p-q)/(E-1)),F=Kn($,(f-q)/(E+1))}else I=F=0}M>Le?F>Le?(k=Qn(L,V,j,z,f,F,S),P=Qn(ge,le,ee,oe,f,F,S),s.moveTo(k.cx+k.x01,k.cy+k.y01),F<$?s.arc(k.cx,k.cy,F,Ce(k.y01,k.x01),Ce(P.y01,P.x01),!S):(s.arc(k.cx,k.cy,F,Ce(k.y01,k.x01),Ce(k.y11,k.x11),!S),s.arc(0,0,f,Ce(k.cy+k.y11,k.cx+k.x11),Ce(P.cy+P.y11,P.cx+P.x11),!S),s.arc(P.cx,P.cy,F,Ce(P.y11,P.x11),Ce(P.y01,P.x01),!S))):(s.moveTo(j,z),s.arc(0,0,f,A,T,!S)):s.moveTo(j,z),!(p>Le)||!(x>Le)?s.lineTo(ee,oe):I>Le?(k=Qn(ee,oe,ge,le,p,-I,S),P=Qn(j,z,L,V,p,-I,S),s.lineTo(k.cx+k.x01,k.cy+k.y01),I<$?s.arc(k.cx,k.cy,I,Ce(k.y01,k.x01),Ce(P.y01,P.x01),!S):(s.arc(k.cx,k.cy,I,Ce(k.y01,k.x01),Ce(k.y11,k.x11),!S),s.arc(0,0,p,Ce(k.cy+k.y11,k.cx+k.x11),Ce(P.cy+P.y11,P.cx+P.x11),S),s.arc(P.cx,P.cy,I,Ce(P.y11,P.x11),Ce(P.y01,P.x01),!S))):s.arc(0,0,p,C,v,S)}if(s.closePath(),m)return s=null,m+""||null}return c.centroid=function(){var m=(+t.apply(this,arguments)+ +e.apply(this,arguments))/2,d=(+i.apply(this,arguments)+ +o.apply(this,arguments))/2-cr/2;return[bt(d)*m,Ge(d)*m]},c.innerRadius=function(m){return arguments.length?(t=typeof m=="function"?m:J(+m),c):t},c.outerRadius=function(m){return arguments.length?(e=typeof m=="function"?m:J(+m),c):e},c.cornerRadius=function(m){return arguments.length?(r=typeof m=="function"?m:J(+m),c):r},c.padRadius=function(m){return arguments.length?(n=m==null?null:typeof m=="function"?m:J(+m),c):n},c.startAngle=function(m){return arguments.length?(i=typeof m=="function"?m:J(+m),c):i},c.endAngle=function(m){return arguments.length?(o=typeof m=="function"?m:J(+m),c):o},c.padAngle=function(m){return arguments.length?(a=typeof m=="function"?m:J(+m),c):a},c.context=function(m){return arguments.length?(s=m??null,c):s},c}h();h();var K2=Array.prototype.slice;function yt(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}h();function sc(t){this._context=t}sc.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(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e);break}}};function jt(t){return new sc(t)}h();h();function ei(t){return t[0]}function ti(t){return t[1]}function Kr(t,e){var r=J(!0),n=null,i=jt,o=null,a=mr(s);t=typeof t=="function"?t:t===void 0?ei:J(t),e=typeof e=="function"?e:e===void 0?ti:J(e);function s(l){var c,m=(l=yt(l)).length,d,p=!1,f;for(n==null&&(o=i(f=a())),c=0;c<=m;++c)!(c<m&&r(d=l[c],c,l))===p&&((p=!p)?o.lineStart():o.lineEnd()),p&&o.point(+t(d,c,l),+e(d,c,l));if(f)return o=null,f+""||null}return s.x=function(l){return arguments.length?(t=typeof l=="function"?l:J(+l),s):t},s.y=function(l){return arguments.length?(e=typeof l=="function"?l:J(+l),s):e},s.defined=function(l){return arguments.length?(r=typeof l=="function"?l:J(!!l),s):r},s.curve=function(l){return arguments.length?(i=l,n!=null&&(o=i(n)),s):i},s.context=function(l){return arguments.length?(l==null?n=o=null:o=i(n=l),s):n},s}function ha(t,e,r){var n=null,i=J(!0),o=null,a=jt,s=null,l=mr(c);t=typeof t=="function"?t:t===void 0?ei:J(+t),e=typeof e=="function"?e:e===void 0?J(0):J(+e),r=typeof r=="function"?r:r===void 0?ti:J(+r);function c(d){var p,f,b,g=(d=yt(d)).length,y,S=!1,A,T=new Array(g),v=new Array(g);for(o==null&&(s=a(A=l())),p=0;p<=g;++p){if(!(p<g&&i(y=d[p],p,d))===S)if(S=!S)f=p,s.areaStart(),s.lineStart();else{for(s.lineEnd(),s.lineStart(),b=p-1;b>=f;--b)s.point(T[b],v[b]);s.lineEnd(),s.areaEnd()}S&&(T[p]=+t(y,p,d),v[p]=+e(y,p,d),s.point(n?+n(y,p,d):T[p],r?+r(y,p,d):v[p]))}if(A)return s=null,A+""||null}function m(){return Kr().defined(i).curve(a).context(o)}return c.x=function(d){return arguments.length?(t=typeof d=="function"?d:J(+d),n=null,c):t},c.x0=function(d){return arguments.length?(t=typeof d=="function"?d:J(+d),c):t},c.x1=function(d){return arguments.length?(n=d==null?null:typeof d=="function"?d:J(+d),c):n},c.y=function(d){return arguments.length?(e=typeof d=="function"?d:J(+d),r=null,c):e},c.y0=function(d){return arguments.length?(e=typeof d=="function"?d:J(+d),c):e},c.y1=function(d){return arguments.length?(r=d==null?null:typeof d=="function"?d:J(+d),c):r},c.lineX0=c.lineY0=function(){return m().x(t).y(e)},c.lineY1=function(){return m().x(t).y(r)},c.lineX1=function(){return m().x(n).y(e)},c.defined=function(d){return arguments.length?(i=typeof d=="function"?d:J(!!d),c):i},c.curve=function(d){return arguments.length?(a=d,o!=null&&(s=a(o)),c):a},c.context=function(d){return arguments.length?(d==null?o=s=null:s=a(o=d),c):o},c}h();h();function uc(t,e){return e<t?-1:e>t?1:e>=t?0:NaN}h();function lc(t){return t}function ga(){var t=lc,e=uc,r=null,n=J(0),i=J(dr),o=J(0);function a(s){var l,c=(s=yt(s)).length,m,d,p=0,f=new Array(c),b=new Array(c),g=+n.apply(this,arguments),y=Math.min(dr,Math.max(-dr,i.apply(this,arguments)-g)),S,A=Math.min(Math.abs(y)/c,o.apply(this,arguments)),T=A*(y<0?-1:1),v;for(l=0;l<c;++l)(v=b[f[l]=l]=+t(s[l],l,s))>0&&(p+=v);for(e!=null?f.sort(function(C,x){return e(b[C],b[x])}):r!=null&&f.sort(function(C,x){return r(s[C],s[x])}),l=0,d=p?(y-c*T)/p:0;l<c;++l,g=S)m=f[l],v=b[m],S=g+(v>0?v*d:0)+T,b[m]={data:s[m],index:l,value:v,startAngle:g,endAngle:S,padAngle:A};return b}return a.value=function(s){return arguments.length?(t=typeof s=="function"?s:J(+s),a):t},a.sortValues=function(s){return arguments.length?(e=s,r=null,a):e},a.sort=function(s){return arguments.length?(r=s,e=null,a):r},a.startAngle=function(s){return arguments.length?(n=typeof s=="function"?s:J(+s),a):n},a.endAngle=function(s){return arguments.length?(i=typeof s=="function"?s:J(+s),a):i},a.padAngle=function(s){return arguments.length?(o=typeof s=="function"?s:J(+s),a):o},a}h();function cc(t){return t<0?-1:1}function dc(t,e,r){var n=t._x1-t._x0,i=e-t._x1,o=(t._y1-t._y0)/(n||i<0&&-0),a=(r-t._y1)/(i||n<0&&-0),s=(o*i+a*n)/(n+i);return(cc(o)+cc(a))*Math.min(Math.abs(o),Math.abs(a),.5*Math.abs(s))||0}function mc(t,e){var r=t._x1-t._x0;return r?(3*(t._y1-t._y0)/r-e)/2:e}function ba(t,e,r){var n=t._x0,i=t._y0,o=t._x1,a=t._y1,s=(o-n)/3;t._context.bezierCurveTo(n+s,i+s*e,o-s,a-s*r,o,a)}function ri(t){this._context=t}ri.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:ba(this,this._t0,mc(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){var r=NaN;if(t=+t,e=+e,!(t===this._x1&&e===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,ba(this,mc(this,r=dc(this,t,e)),r);break;default:ba(this,this._t0,r=dc(this,t,e));break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=r}}};function Vg(t){this._context=new pc(t)}(Vg.prototype=Object.create(ri.prototype)).point=function(t,e){ri.prototype.point.call(this,e,t)};function pc(t){this._context=t}pc.prototype={moveTo:function(t,e){this._context.moveTo(e,t)},closePath:function(){this._context.closePath()},lineTo:function(t,e){this._context.lineTo(e,t)},bezierCurveTo:function(t,e,r,n,i,o){this._context.bezierCurveTo(e,t,n,r,o,i)}};function ya(t){return new ri(t)}h();function fc(t,e){this._context=t,this._t=e}fc.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(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var r=this._x*(1-this._t)+t*this._t;this._context.lineTo(r,this._y),this._context.lineTo(r,e)}break}}this._x=t,this._y=e}};function xa(t){return new fc(t,1)}h();h();function wa(t,e){if((a=t.length)>1)for(var r=1,n,i,o=t[e[0]],a,s=o.length;r<a;++r)for(i=o,o=t[e[r]],n=0;n<s;++n)o[n][1]+=o[n][0]=isNaN(i[n][1])?i[n][0]:i[n][1]}h();function va(t){for(var e=t.length,r=new Array(e);--e>=0;)r[e]=e;return r}function _g(t,e){return t[e]}function jg(t){let e=[];return e.key=t,e}function Sa(){var t=J([]),e=va,r=wa,n=_g;function i(o){var a=Array.from(t.apply(this,arguments),jg),s,l=a.length,c=-1,m;for(let d of o)for(s=0,++c;s<l;++s)(a[s][c]=[0,+n(d,a[s].key,c,o)]).data=d;for(s=0,m=yt(e(a));s<l;++s)a[m[s]].index=s;return r(a,m),a}return i.keys=function(o){return arguments.length?(t=typeof o=="function"?o:J(Array.from(o)),i):t},i.value=function(o){return arguments.length?(n=typeof o=="function"?o:J(+o),i):n},i.order=function(o){return arguments.length?(e=o==null?va:typeof o=="function"?o:J(Array.from(o)),i):e},i.offset=function(o){return arguments.length?(r=o??wa,i):r},i}h();function ka(t,e){if((l=t.length)>0)for(var r,n=0,i,o,a,s,l,c=t[e[0]].length;n<c;++n)for(a=s=0,r=0;r<l;++r)(o=(i=t[e[r]][n])[1]-i[0])>0?(i[0]=a,i[1]=a+=o):o<0?(i[1]=s,i[0]=s+=o):(i[0]=0,i[1]=o)}var yc=["#6366f1","#22d3ee","#f59e0b","#ec4899","#10b981","#8b5cf6","#f97316","#3b82f6"],Ug=t=>typeof t=="object"&&t!==null&&"open"in t&&"close"in t,Gg=t=>typeof t=="object"&&t!==null&&"label"in t&&"value"in t;function $g(t){return t==="linear"?jt:t==="step"?xa:ya}function Pa(t,e){let r=/^#([0-9a-f]{3}|[0-9a-f]{6})$/i.exec(t.trim());if(!r)return t;let n=r[1];n.length===3&&(n=[...n].map(o=>o+o).join(""));let i=parseInt(n,16);return`rgba(${i>>16&255}, ${i>>8&255}, ${i&255}, ${e})`}function hc(t){if(!t?.format)return null;if(typeof t.format=="function")return t.format;let e=Kt(t.format);return r=>typeof r=="number"?e(r):String(r)}function re(t){return Math.round(t*100)/100}function pr(t,e=0,r=t.duration){return ie.create().fromTo("opacity",0,1,{start:t.start+e,end:t.start+e+Math.max(1,r),ease:"power2.out"})}function xc(t,e,r){let n=e.id??Q("chart"),i=t.width??(typeof e.width=="number"?e.width:960),o=t.height??(typeof e.height=="number"?e.height:540),a=t.type??"line",s=t.fontSize??18,l=t.fontFamily??r,c=t.textColor??"#94a3b8",m=t.textColor??"#e2e8f0",d=t.gridColor??"rgba(148, 163, 184, 0.18)",p=t.colors?.length?t.colors:yc,f=t.cornerRadius??4,b=t.animate===!1?void 0:t.animate??{},g={enabled:b!==void 0,start:b?.start??0,duration:b?.duration??30,stagger:b?.stagger??-1,ease:b?.ease??"power3.out"},y=[],S=(k,P,H,Y={},j="")=>{let z=B.text(k,{id:`${n}-label-${j||y.length}`,position:"absolute",x:re(P.x),y:re(P.y),width:re(P.width),height:re(P.height),fontFamily:l,fontSize:s,fontWeight:Y.weight??500,fill:Y.color??c,align:H,verticalAlign:"middle"});g.enabled&&z.animate(pr(g,Y.delay??0)),y.push(z)},A=Math.ceil(s*1.4);a==="pie"||a==="donut"?T():C();for(let k of y)wc(k);return B.box({background:t.background??"transparent",...e,id:n,width:i,height:o,children:y});function T(){let k=v(),P=k.reduce((K,X)=>K+Math.max(0,X.value),0),H=t.legend??!0,Y=M({top:16,right:H?_(k.map(K=>K.label)):16,bottom:16,left:16}),j=O(Y),z=Math.max(1,Math.min(j.width,j.height)/2),ee=z*(t.innerRadius??(a==="donut"?.6:0)),oe=j.x+j.width/2,ge=j.y+j.height/2,le=4,L=ga().sort(null).value(K=>Math.max(0,K.value)).padAngle(k.length>1?.012:0)(k),V=Jn().innerRadius(ee).outerRadius(z).cornerRadius(Math.min(f,(z-ee)/2)),W=x(L.length);L.forEach((K,X)=>{let te=V(K);if(!te)return;let R=k[X].color??p[X%p.length],E=B.shape("path",{id:`${n}-slice-${X}`,position:"absolute",x:re(oe-z-le),y:re(ge-z-le),width:re(2*(z+le)),height:re(2*(z+le)),d:Wg(te,z+le,z+le),fillColor:R,anchorX:.5,anchorY:.5});if(g.enabled){let q=g.start+X*W;E.animate(ie.create().fromTo("opacity",0,1,{start:q,end:q+g.duration*.5}).fromTo("scale",.85,1,{start:q,end:q+g.duration,ease:g.ease}))}if(y.push(E),t.valueLabels&&P>0&&K.value>0){let[q,N]=Jn().innerRadius(ee||z*.55).outerRadius(z).centroid(K),Se=`${Math.round(K.value/P*100)}%`;S(Se,{x:oe+q-60,y:ge+N-A/2,width:120,height:A},"center",{delay:X*W+g.duration*.5,color:"#ffffff",weight:700},`value-${X}`)}}),H&&$(k.map((K,X)=>({name:K.label,color:K.color??p[X%p.length]})),{x:j.x+j.width+24,y:j.y,height:j.height})}function v(){return(t.data??t.series?.[0]?.data??[]).map((P,H)=>{if(Gg(P))return P;let Y=typeof P=="number"?P:Array.isArray(P)?Number(P[1]):Number(P.y);return{label:t.categories?.[H]??(Array.isArray(P)?String(P[0]):typeof P=="object"&&P?String(P.x):`${H+1}`),value:Y}})}function C(){let k=t.series?.length?[...t.series]:t.data?[{data:t.data}]:[];if(k.length===0)return;let P=D=>D.type??a??"line",H=(D,U)=>D.color??p[U%p.length],Y=k.map(D=>D.data.map((U,ne)=>Ug(U)?{x:U.x,y:U.close}:typeof U=="number"?{x:t.categories?.[ne]??ne,y:U}:Array.isArray(U)?{x:U[0],y:Number(U[1])}:{x:U.x,y:Number(U.y)})),j=k.some(D=>P(D)==="bar"||P(D)==="candlestick"),z=Y.flat().map(D=>D.x),ee=j||z.some(D=>typeof D=="string")?"band":z.some(D=>D instanceof Date)?"time":"linear",oe=D=>P(D)==="bar"||P(D)==="area",ge=!!t.stacked,le=ee==="band"?[...new Set(z.map(String))]:[],L=new Map;if(ge){let D=k.map((fe,Te)=>Te).filter(fe=>oe(k[fe])),U=le.length?le:[...new Set(z.map(fe=>+fe))].sort((fe,Te)=>fe-Te).map(String),ne=U.map(fe=>{let Te={};for(let Ne of D){let Oe=Y[Ne].find(ke=>String(ee==="band"?ke.x:+ke.x)===fe);Te[Ne]=Oe?.y??0}return Te});Sa().keys(D.map(String)).offset(ka)(ne).forEach(fe=>{let Te=Number(fe.key);L.set(Te,Y[Te].map(Ne=>{let Oe=U.indexOf(String(ee==="band"?Ne.x:+Ne.x));return[fe[Oe][0],fe[Oe][1]]}))})}let V=[0];k.forEach((D,U)=>{let ne=L.get(U);if(P(D)==="candlestick")for(let pe of D.data)V.push(pe.high,pe.low);else if(ne)for(let[pe,fe]of ne)V.push(pe,fe);else for(let pe of Y[U])V.push(pe.y)}),k.every(D=>P(D)==="candlestick"||P(D)==="scatter"||P(D)==="line")&&V.shift();let W=t.yAxis??{},K=t.xAxis??{},X=W.ticks??5,te=W.min??Math.min(...V),R=W.max??Math.max(...V);(!Number.isFinite(te)||!Number.isFinite(R))&&([te,R]=[0,1]),te===R&&([te,R]=[te-1,R+1]);let E=nr().domain([te,R]);(W.min===void 0||W.max===void 0)&&E.nice(X);let q=hc(W)??(D=>E.tickFormat(X)(D)),N=E.ticks(X),Se=k.map((D,U)=>({name:D.name??`Series ${U+1}`,color:H(D,U)})),ce=t.legend??k.length>1,Ae=W.show!==!1,De=K.show!==!1,Ze=Ae?Math.max(...N.map(D=>q(D).length))*s*.7+20:0,ln=M({top:(ce?A+20:0)+Math.ceil(A/2),right:20,bottom:De?A+14:12,left:Math.max(16,Math.ceil(Ze))}),ae=O(ln),Ha=A+6,Ya=t.valueLabels?k.flatMap((D,U)=>P(D)==="bar"?Y[U].map(ne=>ne.y):[]):[],vd=Ya.some(D=>D>0)?Ha:0,Sd=Ya.some(D=>D<0)?Ha:0;E.range([ae.height-Sd,vd]);let Ke;if(ee==="band")Ke=Vr().domain(le).range([0,ae.width]).paddingInner(j?.28:0).paddingOuter(j?.14:.5);else if(ee==="time"){let D=z.map(U=>+new Date(U));Ke=Zn().domain([Math.min(...D),Math.max(...D)]).range([0,ae.width])}else{let D=z.map(Number);Ke=nr().domain([K.min??Math.min(...D),K.max??Math.max(...D)]).range([0,ae.width])}let Xa=D=>{if(ee==="band"){let U=Ke;return(U(String(D))??0)+U.bandwidth()/2}return Ke(ee==="time"?new Date(D):Number(D))},qa=0;W.grid!==!1&&N.forEach((D,U)=>{let ne=B.box({id:`${n}-ygrid-${U}`,position:"absolute",x:ae.x,y:re(ae.y+E(D)-.5),width:ae.width,height:1,background:d});g.enabled&&ne.animate(pr(g,qa,g.duration/2)),y.push(ne)}),Ae&&N.forEach((D,U)=>{S(q(D),{x:0,y:ae.y+E(D)-A/2,width:ae.x-12,height:A},"end",{},`y-${U}`)});let yr=[],cn=hc(K);if(ee==="band"){let D=Ke,U=Math.max(1,Math.ceil(le.length/Math.max(1,Math.floor(ae.width/(s*4)))));le.forEach((ne,pe)=>{pe%U===0&&yr.push({pos:(D(ne)??0)+D.bandwidth()/2,text:cn?cn(ne):ne})})}else{let D=Ke,U=K.ticks??Math.max(2,Math.floor(ae.width/(s*6))),ne=D.tickFormat(U);for(let pe of D.ticks(U))yr.push({pos:D(pe),text:cn?cn(ee==="time"?new Date(pe):pe):ne(pe)})}if(K.grid&&yr.forEach((D,U)=>{let ne=B.box({id:`${n}-xgrid-${U}`,position:"absolute",x:re(ae.x+D.pos-.5),y:ae.y,width:1,height:ae.height,background:d});g.enabled&&ne.animate(pr(g,qa,g.duration/2)),y.push(ne)}),De){let D=Math.max(s*3,ae.width/Math.max(1,yr.length));yr.forEach((U,ne)=>{S(U.text,{x:ae.x+U.pos-D/2,y:ae.y+ae.height+10,width:D,height:A},"center",{},`x-${ne}`)})}let[kd,Pd]=E.domain();if(kd<=0&&Pd>=0&&j){let D=B.box({id:`${n}-zero`,position:"absolute",x:ae.x,y:re(ae.y+E(0)-1),width:ae.width,height:2,background:Pa("#94a3b8",.45)});g.enabled&&D.animate(pr(g,0,g.duration/2)),y.push(D)}let dn=k.map((D,U)=>U).filter(D=>P(k[D])==="bar"),Td=[...dn,...k.map((D,U)=>U).filter(D=>P(k[D])==="candlestick"),...k.map((D,U)=>U).filter(D=>P(k[D])==="area"),...k.map((D,U)=>U).filter(D=>P(k[D])==="line"),...k.map((D,U)=>U).filter(D=>P(k[D])==="scatter")],st=ee==="band"?Ke:null,Za=st?x(le.length):0,Ka=D=>st?le.indexOf(String(D)):0;Td.forEach((D,U)=>{let ne=k[D],pe=H(ne,D),fe=P(ne),Te=Y[D],Ne=L.get(D);if(fe==="bar"&&st){let Oe=ge?1:dn.length,ke=ge?0:dn.indexOf(D),Re=st.bandwidth()/Oe,he=Oe>1?Math.min(4,Re*.12):0;Te.forEach((Fe,$e)=>{let[ut,Me]=Ne?Ne[$e]:[0,Fe.y],xe=ae.y+E(Math.max(ut,Me)),mn=ae.y+E(Math.min(ut,Me)),Be=Math.max(0,mn-xe),xr=ae.x+(st(String(Fe.x))??0)+ke*Re+he/2,wt=Fe.y>=0?"up":"down",pn=B.box({id:`${n}-bar-${D}-${$e}`,position:"absolute",x:re(xr),y:re(xe),width:re(Math.max(1,Re-he)),height:re(Be),background:pe,borderRadius:Math.min(f,(Re-he)/2,Be/2)}),Ja=Ka(Fe.x)*Za+(ge?dn.indexOf(D)*g.duration*.6:0);if(g.enabled){let wr=g.start+Ja,fn=wr+g.duration,es=ie.create().fromTo("height",0,re(Be),{start:wr,end:fn,ease:g.ease});wt==="up"&&es.fromTo("y",re(xe+Be),re(xe),{start:wr,end:fn,ease:g.ease}),pn.animate(es)}if(y.push(pn),t.valueLabels){let wr=q(Fe.y),fn=wt==="up"?xe-A-4:xe+Be+4;S(wr,{x:xr-30,y:fn,width:Re-he+60,height:A},"center",{delay:Ja+g.duration*.6,color:m,weight:600},`value-${D}-${$e}`)}});return}if(fe==="candlestick"&&st){let Oe=t.upColor??"#22c55e",ke=t.downColor??"#ef4444",Re=st.bandwidth();ne.data.forEach((he,Fe)=>{let $e=he.close>=he.open?Oe:ke,ut=ae.x+(st(String(he.x))??0)+Re/2,Me=Ka(he.x)*Za,xe=[["wick",{x:ut-Math.max(1,Re*.06),y:ae.y+E(he.high),width:Math.max(2,Re*.12),height:Math.max(1,E(he.low)-E(he.high))}],["body",{x:ut-Re/2,y:ae.y+E(Math.max(he.open,he.close)),width:Re,height:Math.max(2,Math.abs(E(he.open)-E(he.close)))}]];for(let[mn,Be]of xe){let xr=B.box({id:`${n}-candle-${D}-${Fe}-${mn}`,position:"absolute",x:re(Be.x),y:re(Be.y),width:re(Be.width),height:re(Be.height),background:$e,borderRadius:mn==="body"?Math.min(f/2,Be.width/2):0});if(g.enabled){let wt=g.start+Me,pn=Be.y+Be.height/2;xr.animate(ie.create().fromTo("height",0,re(Be.height),{start:wt,end:wt+g.duration,ease:g.ease}).fromTo("y",re(pn),re(Be.y),{start:wt,end:wt+g.duration,ease:g.ease}))}y.push(xr)}});return}if(fe==="line"||fe==="area"){let Oe=ne.strokeWidth??3,ke=Math.ceil(Oe*2+(ne.pointRadius??0)+2),Re=Te.map((Me,xe)=>({x:Xa(Me.x)+ke,top:E(Ne?Ne[xe][1]:Me.y)+ke,base:E(Ne?Ne[xe][0]:Math.max(E.domain()[0],Math.min(0,E.domain()[1])))+ke})),he=$g(ne.curve),Fe={x:ae.x-ke,y:ae.y-ke,width:ae.width+2*ke,height:ae.height+2*ke},$e=U*(g.duration/3);if(fe==="area"){let Me=ha().x(xe=>xe.x).y0(xe=>xe.base).y1(xe=>xe.top).curve(he)(Re);if(Me){let xe=B.shape("path",{id:`${n}-area-${D}`,position:"absolute",...gc(Fe),d:bc(Me),fillType:"linear",fillColor:Pa(pe,.45),gradientEndColor:Pa(pe,.02),gradientAngle:90});g.enabled&&xe.animate(pr(g,$e+g.duration*.4,g.duration)),y.push(xe)}}let ut=Kr().x(Me=>Me.x).y(Me=>Me.top).curve(he)(Re);if(ut&&Oe>0){let Me=B.shape("path",{id:`${n}-line-${D}`,position:"absolute",...gc(Fe),d:bc(ut),fillType:"none",strokeColor:pe,strokeWidth:Oe,strokeLineCap:"round",strokeLineJoin:"round"});g.enabled&&Me.animate(ie.create().fromTo("trimEnd",0,1,{start:g.start+$e,end:g.start+$e+g.duration*1.5,ease:"power2.inOut"})),y.push(Me)}(ne.pointRadius??0)>0&&Qa(D,Te,pe,ne.pointRadius??0,$e+g.duration*.5,Ne);return}fe==="scatter"&&Qa(D,Te,pe,ne.pointRadius??6,U*(g.duration/3),Ne)}),ce&&I(Se);function Qa(D,U,ne,pe,fe,Te){let Ne=x(U.length);U.forEach((Oe,ke)=>{let Re=E(Te?Te[ke][1]:Oe.y),he=B.shape("circle",{id:`${n}-point-${D}-${ke}`,position:"absolute",x:re(ae.x+Xa(Oe.x)-pe),y:re(ae.y+Re-pe),width:re(pe*2),height:re(pe*2),fillColor:ne,anchorX:.5,anchorY:.5});if(g.enabled){let Fe=g.start+fe+ke*Ne;he.animate(ie.create().fromTo("scale",0,1,{start:Fe,end:Fe+g.duration*.6,ease:"back.out(2)"}).fromTo("opacity",0,1,{start:Fe,end:Fe+6}))}y.push(he)})}}function x(k){return!g.enabled||k<=1?0:g.stagger>=0?g.stagger:Math.min(4,g.duration/k)}function M(k){let P=t.padding;return typeof P=="number"?{top:P,right:P,bottom:P,left:P}:{top:P?.top??k.top,right:P?.right??k.right,bottom:P?.bottom??k.bottom,left:P?.left??k.left}}function O(k){return{x:k.left,y:k.top,width:Math.max(1,i-k.left-k.right),height:Math.max(1,o-k.top-k.bottom)}}function _(k){let P=Math.max(0,...k.map(H=>H.length));return Math.min(i*.4,P*s*.6+s+48)}function $(k,P){let H=A+8,Y=P.y+Math.max(0,(P.height-k.length*H)/2);k.forEach((j,z)=>{F(j,P.x,Y+z*H,z)})}function I(k){let P=k.map(j=>j.name.length*s*.6+s+28),H=P.reduce((j,z)=>j+z,0),Y=Math.max(0,i-H-20);k.forEach((j,z)=>{F(j,Y,4,z),Y+=P[z]})}function F(k,P,H,Y){let j=Math.round(s*.7),z=B.box({id:`${n}-legend-swatch-${Y}`,position:"absolute",x:re(P),y:re(H+(A-j)/2),width:j,height:j,borderRadius:Math.round(j/4),background:k.color});g.enabled&&z.animate(pr(g,0,g.duration/2)),y.push(z),S(k.name,{x:P+j+8,y:H,width:k.name.length*s*.6+12,height:A},"start",{color:t.textColor??"#cbd5e1"},`legend-${Y}`)}}function wc(t){for(let e of t.animation?.tracks??[])for(let r of e.keyframes??[])r.frame=Math.round(r.frame);for(let e of t.children??[])wc(e)}function gc(t){return{x:re(t.x),y:re(t.y),width:re(t.width),height:re(t.height)}}function bc(t){return t.replace(/-?\d*\.\d{3,}(?:e-?\d+)?/gi,e=>String(re(Number(e))))}function Wg(t,e,r){let n=[],i=/([MLAZ])([^MLAZ]*)/gi;for(let[,o,a]of t.matchAll(i)){let s=(a.match(/-?\d*\.?\d+(?:e-?\d+)?/gi)??[]).map(Number);if(o.toUpperCase()==="A")for(let l=0;l+6<s.length;l+=7)s[l+5]+=e,s[l+6]+=r;else if(o.toUpperCase()!=="Z")for(let l=0;l+1<s.length;l+=2)s[l]+=e,s[l+1]+=r;n.push(o+s.map(re).join(","))}return n.join("")}h();var vc=24,Hg=1,Qr=class{source;fps;startFrame;trimStartSec;smoothing;options;results=new Map;sourceWidth=0;sourceHeight=0;cellW=0;cellH=0;cell;queue=Promise.resolve();runner;cacheLoaded;unsaved=0;unsavedSubjects=0;blurred=new Map;smoothed=new Map;personView;subjects=new Map;wantSubjects=!1;subjectsLoaded;constructor(e,r,n={}){this.source=e,this.options=n,this.fps=n.fps??r,this.startFrame=Math.round(n.startFrame??0),this.trimStartSec=n.trimStartSec??0,this.smoothing=Math.max(0,Math.round(n.smoothing??2)),this.cell=Math.max(1,Math.round(n.maskCell??8))}get person(){return this.personView??=new ni(this),this.personView}ready(e,r=e){let[n,i]=this.window(e,r);return this.queue=this.queue.then(()=>this.compute(n,i)),this.queue}isReady(e){let[r,n]=this.window(e,e);for(let i=r;i<=n;i++)if(!this.results.has(i))return!1;return!0}keepSubjects(){this.wantSubjects=!0}subject(e,r){let n=e*this.fps/r;if(Math.abs(n-Math.round(n))>1e-6)return;let i=this.subjects.get(Math.round(n));if(i===void 0)return i;if(i===null||!this.sourceWidth)return null;let o=this.sourceWidth,a=this.sourceHeight;return{category:i.category,mask:Qg(i,o*a),width:o,height:a,area:i.area,coverage:i.area/(o*a),detectionIndex:-1}}clipFrame(e){return e-this.startFrame+this.trimStartSec*this.fps}window(e,r){let n=Math.floor(this.clipFrame(Math.min(e,r))),i=Math.ceil(this.clipFrame(Math.max(e,r)));return[Math.max(0,n-vc-this.smoothing),Math.max(0,i+this.smoothing)]}analysed(e){return this.results.has(e)&&(!this.wantSubjects||this.subjects.has(e))}async compute(e,r){this.cacheLoaded??=this.loadCache(),await this.cacheLoaded,this.wantSubjects&&(this.subjectsLoaded??=this.loadSubjects(),await this.subjectsLoaded);let n=!1;for(let s=e;s<=r;s++)this.analysed(s)||(n=!0);if(!n)return;let i=this.options.pose??!0,o=this.options.mask??!0;this.runner??=Pr.create({modelsDir:this.options.modelsDir,baseUrl:this.options.baseUrl,...this.options.confidence!==void 0&&{confidence:this.options.confidence},...this.options.variant!==void 0&&{variant:this.options.variant}});let a=bn.getVideo(this.source,!0,"clip-vision");for(let s=e;s<=r;s++){if(this.analysed(s))continue;let l=await Xg(await a.getFrame(s/this.fps));if(!l){this.results.set(s,{kp:null,mask:null}),this.wantSubjects&&this.subjects.set(s,null);continue}this.sourceWidth||this.setSize(l.width,l.height);let c=this.results.get(s),m=c?.kp??null,d=c?.mask??null;if(i&&!c){let f=(await this.runner.pose(l)).people[0];if(f){m=new Float32Array(51);for(let[b,g]of f.keypoints.entries())m.set([g.x,g.y,g.visibility],b*3)}}let p=o&&!c||this.wantSubjects?await this.runner.segment(l):void 0;if(p&&this.wantSubjects){let f=bs(p.masks);this.subjects.set(s,f?{category:f.category,area:f.area,...Kg(f.mask)}:null),this.unsavedSubjects++}if(p&&o&&!c){let f=qg(p);f&&(d=new Uint8Array(this.cellW*this.cellH),Zg(f,l.width,l.height,this.cell,d,this.cellW,this.cellH))}this.results.set(s,{kp:m,mask:d}),c||this.unsaved++,this.unsaved>=24&&await this.saveCache(),this.unsavedSubjects>=24&&await this.saveSubjects()}this.unsaved>0&&await this.saveCache(),this.unsavedSubjects>0&&await this.saveSubjects()}setSize(e,r){this.sourceWidth=e,this.sourceHeight=r,this.cellW=Math.ceil(e/this.cell),this.cellH=Math.ceil(r/this.cell)}size(){return{width:this.sourceWidth,height:this.sourceHeight}}result(e){return this.results.get(Math.max(0,e))}keypoint(e,r){r=Math.max(0,r);let n=`${e}:${r}`,i=this.smoothed.get(n);if(i)return i;let o=s=>{let l=0,c=0,m=0,d=0;for(let p=s-this.smoothing;p<=s+this.smoothing;p++){let f=this.mustHave(p<0?0:p);if(!f.kp)continue;let b=f.kp[e*3+2],g=(this.smoothing+1-Math.abs(p-s))*b*b;l+=f.kp[e*3]*g,c+=f.kp[e*3+1]*g,m+=b*g,d+=g}return d>1e-6?[l/d,c/d,m/d]:null},a=null;for(let s=0;s<=vc&&!a;s++)r-s>=0&&(a=o(r-s));return a??=[this.sourceWidth/2,this.sourceHeight/2,0],this.smoothed.set(n,a),a}blurredMask(e){if(e=Math.max(0,e),this.blurred.has(e))return this.blurred.get(e)??null;let r=this.mustHave(e),n=r.mask?Jg(r.mask,this.cellW,this.cellH,2):null;return this.blurred.set(e,n),n}grid(){return{cell:this.cell,width:this.cellW,height:this.cellH}}mustHave(e){let r=this.results.get(e);if(r)return r;throw new Error(`ClipVision "${this.source}": frame ${e} is not analysed yet. Read it while rendering (the composition prepares each frame), in a live physics world, or after \`await clip.ready(frame)\`.`)}cacheFile;async cachePath(){if(this.cacheFile!==void 0)return this.cacheFile;if(this.cacheFile=null,this.options.cacheDir===!1||typeof w>"u"||!w.versions?.node)return null;try{let[e,r,n,i]=await Promise.all([import("./shims/fs.mjs"),import("./shims/path.mjs"),import("./shims/os.mjs"),import("./crypto-W5UAWSNT.mjs")]),o=e.statSync(this.source),a=this.options.cacheDir??w.env.FRAMEFIELDS_VISION_CACHE_DIR??r.join(n.homedir(),".cache","framefields","vision"),s=this.options,l=JSON.stringify([Hg,r.resolve(this.source),o.size,o.mtimeMs,this.fps,s.pose??!0,s.mask??!0,this.cell,s.variant??"s",s.confidence??null]),c=i.createHash("sha256").update(l).digest("hex").slice(0,24);e.mkdirSync(a,{recursive:!0}),this.cacheFile=r.join(a,`${r.basename(this.source)}.${c}.json`)}catch{this.cacheFile=null}return this.cacheFile}async loadCache(){let e=await this.cachePath();if(e)try{let r=await import("./shims/fs.mjs");if(!r.existsSync(e))return;let n=JSON.parse(r.readFileSync(e,"utf8"));if(n.cell!==this.cell)return;this.setSize(n.width,n.height);for(let[i,o]of Object.entries(n.frames))this.results.set(Number(i),{kp:o.kp?Float32Array.from(o.kp):null,mask:o.mask?new Uint8Array(Buffer.from(o.mask,"base64")):null})}catch{}}async saveCache(){this.unsaved=0;let e=await this.cachePath();if(!e||!this.sourceWidth)return;let r={};for(let[o,a]of this.results)r[o]={kp:a.kp?Array.from(a.kp,s=>Math.round(s*100)/100):null,mask:a.mask?Buffer.from(a.mask).toString("base64"):null};let n=await import("./shims/fs.mjs"),i=`${e}.${w.pid}.tmp`;n.writeFileSync(i,JSON.stringify({width:this.sourceWidth,height:this.sourceHeight,cell:this.cell,frames:r})),n.renameSync(i,e)}async subjectsPath(){let e=await this.cachePath();return e?e.replace(/\.json$/,".subjects.json"):null}async loadSubjects(){let e=await this.subjectsPath();if(e)try{let r=await import("./shims/fs.mjs");if(!r.existsSync(e))return;let n=JSON.parse(r.readFileSync(e,"utf8"));if(this.sourceWidth&&n.width!==this.sourceWidth)return;this.sourceWidth||this.setSize(n.width,n.height);for(let[i,o]of Object.entries(n.frames)){let a=Buffer.from(o?.lengths??"","base64");this.subjects.set(Number(i),o&&{category:o.category,area:o.area,values:new Uint8Array(Buffer.from(o.values,"base64")),lengths:new Uint32Array(a.buffer.slice(a.byteOffset,a.byteOffset+a.byteLength))})}}catch{}}async saveSubjects(){this.unsavedSubjects=0;let e=await this.subjectsPath();if(!e||!this.sourceWidth)return;let r={};for(let[o,a]of this.subjects)r[o]=a&&{category:a.category,area:a.area,values:Buffer.from(a.values).toString("base64"),lengths:Buffer.from(a.lengths.buffer,a.lengths.byteOffset,a.lengths.byteLength).toString("base64")};let n=await import("./shims/fs.mjs"),i=`${e}.${w.pid}.tmp`;n.writeFileSync(i,JSON.stringify({width:this.sourceWidth,height:this.sourceHeight,frames:r})),n.renameSync(i,e)}},ni=class t{constructor(e,r,n){this.clip=e;this.t=r;this.placement=n}clip;t;placement;place(e){return new t(this.clip,void 0,e)}transform(){if(this.t)return this.t;let e=this.placement,{width:r,height:n}=this.clip.size();if(!e||!r)return{sx:1,sy:1,ox:0,oy:0};let i=e.width/r,o=e.height/n;if(e.fit!=="fill"){let a=e.fit==="contain"?Math.min(i,o):Math.max(i,o);i=a,o=a}return{sx:i,sy:o,ox:(e.x??0)+(e.width-r*i)/2,oy:(e.y??0)+(e.height-n*o)/2}}point(e,r){let n=Yg(e),i=this.clip.clipFrame(r),o=Math.floor(i),a=i-o,s=this.clip.keypoint(n,o),l=a>0?this.clip.keypoint(n,o+1):s,c=this.transform();return{x:(s[0]+(l[0]-s[0])*a)*c.sx+c.ox,y:(s[1]+(l[1]-s[1])*a)*c.sy+c.oy,visibility:s[2]+(l[2]-s[2])*a}}signals(e){let r=n=>Sr.builder({type:"custom",fn:i=>this.point(e,i.frame)[n]});return{x:r("x"),y:r("y"),visibility:r("visibility")}}silhouetteGrid(e){let r=this.clip.blurredMask(Math.round(this.clip.clipFrame(e)));if(!r)return null;let{cell:n,width:i,height:o}=this.clip.grid(),a=this.transform();return{data:r,width:i,height:o,originX:a.ox,originY:a.oy,scaleX:n*a.sx,scaleY:n*a.sy}}sample(e,r,n){let i=this.clip.blurredMask(Math.round(this.clip.clipFrame(e)));if(!i)return{alpha:0,gx:0,gy:0};let{cell:o,width:a,height:s}=this.clip.grid(),l=this.transform(),c=(r-l.ox)/l.sx/o-.5,m=(n-l.oy)/l.sy/o-.5,d=(f,b)=>f<0||b<0||f>=a||b>=s?0:i[b*a+f],p=(f,b)=>{let g=Math.floor(f),y=Math.floor(b),S=f-g,A=b-y,T=d(g,y)+(d(g+1,y)-d(g,y))*S,v=d(g,y+1)+(d(g+1,y+1)-d(g,y+1))*S;return T+(v-T)*A};return{alpha:p(c,m),gx:(p(c+1,m)-p(c-1,m))/(2*o*l.sx),gy:(p(c,m+1)-p(c,m-1))/(2*o*l.sy)}}};function Yg(t){let e=xn.indexOf(t);if(e<0)throw new Error(`Unknown keypoint "${t}". Use one of ${xn.join(", ")}.`);return e}async function Xg(t){if(!t||t.width<=0)return null;if(t.buffer)return{data:t.buffer,width:t.width,height:t.height};let r=t.canvas?.getContext("2d");return r?{data:r.getImageData(0,0,t.width,t.height).data,width:t.width,height:t.height}:null}function qg(t){let e=t.masks.filter(o=>o.category==="person");if(e.length===0)return;let r=e.reduce((o,a)=>a.area>o.area?a:o),n=t.detections[r.detectionIndex]?.boundingBox,i=new Uint8Array(r.mask);if(!n)return i;for(let o of t.masks){if(o===r||o.area>r.area*2)continue;let a=t.detections[o.detectionIndex]?.boundingBox;if(!a)continue;let s=Math.max(0,Math.min(n.originX+n.width,a.originX+a.width)-Math.max(n.originX,a.originX)),l=Math.max(0,Math.min(n.originY+n.height,a.originY+a.height)-Math.max(n.originY,a.originY));if(!(s*l<.3*a.width*a.height))for(let c=0;c<i.length;c++)o.mask[c]>i[c]&&(i[c]=o.mask[c])}return i}function Zg(t,e,r,n,i,o,a){for(let s=0;s<a;s++)for(let l=0;l<o;l++){let c=0,m=0;for(let d=s*n;d<Math.min(r,(s+1)*n);d++)for(let p=l*n;p<Math.min(e,(l+1)*n);p++)c+=t[d*e+p],m++;i[s*o+l]=m?Math.round(c/m):0}}function Kg(t){let e=0;for(let a=1;a<=t.length;a++)(a===t.length||t[a]!==t[a-1])&&e++;let r=new Uint8Array(e),n=new Uint32Array(e),i=0,o=0;for(let a=1;a<=t.length;a++)(a===t.length||t[a]!==t[o])&&(r[i]=t[o],n[i++]=a-o,o=a);return{values:r,lengths:n}}function Qg(t,e){let r=new Uint8Array(e),n=0;for(let i=0;i<t.values.length;i++){let o=Math.min(e,n+t.lengths[i]);t.values[i]!==0&&r.fill(t.values[i],n,o),n=o}return r}function Jg(t,e,r,n){let i=new Float32Array(e*r),o=new Float32Array(e*r);for(let a=0;a<r;a++)for(let s=0;s<e;s++){let l=0,c=0;for(let m=-n;m<=n;m++){let d=s+m;d>=0&&d<e&&(l+=t[a*e+d],c++)}i[a*e+s]=l/c/255}for(let a=0;a<r;a++)for(let s=0;s<e;s++){let l=0,c=0;for(let m=-n;m<=n;m++){let d=a+m;d>=0&&d<r&&(l+=i[d*e+s],c++)}o[a*e+s]=l/c}return o}h();h();var eb={rotation:.2,rotateX:.2,rotateY:.2,rotateZ:.2};function ze(t,e,r){if(typeof t=="number")return t;if(typeof t=="function")return t(e);let n=e/r;return t.get({frame:e,fps:r,time:n,duration:0,durationMs:0,progress:0,deltaTime:1/r})}function Ut(t,e){let r=e-t;return r-=Math.round(r/360)*360,t+r}function tb(t,e){let r=t.length;if(r===0)return[];let n=new Uint8Array(r);n[0]=1,n[r-1]=1;let i=[[0,r-1]];for(;i.length>0;){let[a,s]=i.pop(),l=-1,c=e;for(let m=a+1;m<s;m++){let d=(m-a)/(s-a),p=t[a]+(t[s]-t[a])*d,f=Math.abs(t[m]-p);f>c&&(c=f,l=m)}l>=0&&(n[l]=1,i.push([a,l],[l,s]))}let o=[];for(let a=0;a<r;a++)n[a]&&o.push([a,rb(t[a]),"none"]);return o.length===2&&o[0][1]===o[1][1]&&o.pop(),o}function rb(t){return Math.round(t*1e4)/1e4}var Ta=class{constructor(e,r,n){this.length=e;this.fps=r;this.ensure=n}length;fps;ensure;channels=new Map;signals=new Map;channel(e){let r=this.channels.get(e);return r||(r=new Float32Array(this.length),this.channels.set(e,r)),r}signal(e){let r=this.signals.get(e);if(!r){let n=this.channel(e),i=this.fps;r=Sr.builder({type:"custom",fn:o=>{this.ensure();let a=o.fps&&o.fps!==i?o.frame/o.fps*i:o.frame,s=Math.max(0,Math.min(n.length-1,Math.round(a)));return n[s]}}),this.signals.set(e,r)}return r}},fr=class{constructor(e,r,n){this.sim=e;this.gravity=r;if(!(n.fps>0))throw new Error("Physics: `fps` must be > 0.");if(!(n.frames>=1)||!Number.isInteger(n.frames))throw new Error("Physics: `frames` must be a positive integer.");this.fps=n.fps,this.frames=n.frames,this.startFrame=Math.max(0,Math.round(n.startFrame??0)),this.pixelsPerMeter=n.pixelsPerMeter??100,this.substeps=Math.max(1,Math.round(n.substeps??4)),this.impactDecay=Math.max(.5,n.impactDecay??8),this.impactReference=n.impactReference??1500,this.worldRecording=this.newRecording()}sim;gravity;fps;frames;startFrame;pixelsPerMeter;substeps;impactDecay;impactReference;bodies=[];forces=[];impulses=[];fields=[];worldRecording;allCollisions=[];locked=!1;liveMode=!1;stepper;chain=Promise.resolve();get collisions(){return this.ensureSimulated(),this.allCollisions}get impact(){return this.worldRecording.signal("impact")}simulate(){if(this.liveMode)throw new Error("Physics: this world is live; it steps as frames render.");return this.ensureSimulated(),this}bakeKeyframes(e={}){if(this.locked)throw new Error("Physics: bakeKeyframes() must come before simulate(), live() or reading any body signal.");return this.bakeDefault=e,this.ensureSimulated(),this}live(e,r={}){if(this.locked)throw new Error("Physics: live() must come before simulate() or reading any body signal.");this.locked=!0,this.liveMode=!0;let n=async i=>{await e.prepareVision?.(i);for(let o of r.inputs??[])await o.ready(i)};this.prepareInputs=n;for(let i of this.bodies)this.bind(i);return e.onPrepareFrame(i=>this.advanceTo(i.frame)),this}advanceTo(e){return this.chain=this.chain.then(async()=>{let r=Math.min(this.frames-1,Math.round(e)-this.startFrame);this.stepper||(await this.prepareInputs?.(this.startFrame),this.stepper=this.begin());let n=this.stepper;for(;n.current<r;){let i=n.current+1;await this.prepareInputs?.(this.startFrame+i),this.stepFrame(n,i)}n.current===this.frames-1&&!n.freed&&(n.freed=!0,this.sim.free())}),this.chain}prepareInputs;bakeDefault;newRecording(){return new Ta(this.startFrame+this.frames,this.fps,()=>this.ensureSimulated())}assertOpen(){if(this.locked)throw new Error("Physics: the world has already started; add every body, joint and force before simulate(), live() or reading signals.")}addBody(e){return this.assertOpen(),this.bodies.push(e),e}addForce(e,r){this.assertOpen(),this.forces.push({body:e,accel:r})}addField(e,r){this.assertOpen(),this.fields.push({accel:e,...r&&{targets:new Set(r)}})}addImpulse(e,r,n){this.assertOpen(),this.impulses.push({body:e,frame:Math.round(r),dv:n})}ensureSimulated(){if(this.locked)return;this.locked=!0;let e=this.begin();for(let r=1;r<this.frames;r++)this.stepFrame(e,r);e.freed=!0,this.sim.free();for(let r of this.bodies)this.bind(r)}begin(){let{startFrame:e}=this,r=this.bodies,n=new Map;for(let o of r)n.set(o.sim,o);for(let o of r)o.startFrame>0&&o.sim.setEnabled(!1);let i=new Map;for(let o of r){o.record(e,-1),o.recording.channel("impact");let a=o.kinematicTarget?.(e);a&&i.set(o,a)}this.worldRecording.channel("impact");for(let o of[...r.map(a=>a.recording),this.worldRecording])for(let a of o.channels.values())a.fill(a[e]);return{current:0,freed:!1,bySim:n,kinematicFrom:i,level:new Map(r.map(o=>[o,0]))}}stepFrame(e,r){let{fps:n,startFrame:i,substeps:o}=this,a=1/(n*o),s=this.bodies,l=i+r,c=this.gravity.length,m=new Map;for(let v of s)v.startFrame>0&&r===v.startFrame+1&&v.sim.setEnabled(!0),m.set(v,v.sim.velocity());let d=v=>v.type==="dynamic"&&r>v.startFrame,p=new Map;for(let v of s)p.set(v,this.gravity.map(C=>d(v)?C*v.gravityScale/n:0));for(let v of this.impulses){if(v.frame!==r)continue;let C=v.body;if(!d(C))continue;let x=C.sim.mass();C.sim.applyImpulse(v.dv.map(O=>O*x));let M=p.get(C);for(let O=0;O<c;O++)M[O]+=v.dv[O]}let f=this.forces.filter(v=>d(v.body)).map(v=>{let C=v.body,x=v.accel(l),M=p.get(C);for(let O=0;O<c;O++)M[O]+=x[O]/n;return{body:C,a:x}}),b=new Map;for(let v of s){let C=v.kinematicTarget?.(l);C&&b.set(v,C)}let g=new Set,y=[];for(let v=1;v<=o;v++){for(let{body:C,a:x}of f){let M=C.sim.mass();C.sim.applyImpulse(x.map(O=>O*M*a))}for(let C of this.fields)for(let x of s){if(!d(x)||C.targets&&!C.targets.has(x))continue;let M=C.accel(x,l);if(!M)continue;let O=x.sim.mass();x.sim.applyImpulse(M.map($=>$*O*a));let _=p.get(x);for(let $=0;$<c;$++)_[$]+=M[$]*a}for(let[C,x]of b){let M=e.kinematicFrom.get(C)??x,O=v/o;C.sim.setKinematicTarget(nb(M.position,x.position,O),this.lerpRotation(M.rotation,x.rotation,O))}this.sim.step(a);for(let[C,x]of this.sim.drainCollisionStarts()){let M=e.bySim.get(C),O=e.bySim.get(x);if(!M||!O)continue;let _=`${s.indexOf(M)}:${s.indexOf(O)}`;g.has(_)||(g.add(_),y.push([M,O]))}}e.kinematicFrom=b;for(let v of s)v.record(l,l-1);let S=new Map;if(y.length>0){let v=this.pixelsPerMeter,C=x=>{if(x.type!=="dynamic")return 0;let M=x.sim.velocity(),O=m.get(x),_=p.get(x),$=0;for(let I=0;I<c;I++){let F=M[I]-(O[I]+_[I]);$+=F*F}return Math.sqrt($)*v};for(let[x,M]of y){let O=Math.max(C(x),C(M));for(let[_,$]of[[x,M],[M,x]]){S.set(_,Math.max(S.get(_)??0,O));let I={frame:l,with:$,speed:O};_.collisions.push(I),_===x&&this.allCollisions.push({...I,body:x})}}}let A=Math.exp(-1/this.impactDecay),T=0;for(let v of s){let C=Math.max((S.get(v)??0)/this.impactReference,(e.level.get(v)??0)*A);e.level.set(v,C),v.recording.channel("impact")[l]=C,C>T&&(T=C)}this.worldRecording.channel("impact")[l]=T,e.current=r}bind(e){let r=e.layer,n=e.output??(this.bakeDefault?"keyframes":"signals");if(typeof r?.animate!="function"||n==="none"||e.type==="fixed")return;let i=e.boundChannels();if(n==="keyframes"&&this.liveMode)throw new Error('Physics: live worlds bind signals; drop `output: "keyframes"` or use simulate().');if(n==="signals"){let s=ie.create();for(let[l,c]of i)s.signal(l,e.recording.signal(c));r.animate(s);return}let o=this.bakeDefault?.tolerance??.25,a=ie.create();for(let[s,l]of i){let m=e.recording.channel(l).subarray(this.startFrame),d=eb[s]??1;a.keys(s,tb(m,o*d))}r.animate(a)}};function nb(t,e,r){return t.map((n,i)=>n+(e[i]-n)*r)}var Ma=(t,e)=>t===void 0?e:typeof t=="number"?[t,t]:t,Jr=class extends $t{op="Particles";particleStatic;particleState;options;constructor(e){super({}),this.options=e;let r=e.emitter??{},n=s=>typeof s=="number"?s:void 0,i=e.width,o=e.height,a=(Array.isArray(e.color)?e.color:[e.color??"#ffffff"]).map(s=>{let l=as(s);return[l.r,l.g,l.b,l.a]});this.particleStatic={max:Math.max(1,Math.round(e.max??2e4)),seed:Math.round(e.seed??1)>>>0,layer:{x:e.x??0,y:e.y??0,width:i,height:o},emitter:{shape:r.shape??"rect",x:n(r.x)??(r.shape==="circle"||r.shape==="ring"||r.shape==="point"?i/2:0),y:n(r.y)??(r.shape==="circle"||r.shape==="ring"||r.shape==="point"?o/2:0),width:r.width??i,height:r.height??(r.shape==="line"?0:o),radius:r.radius??Math.min(i,o)/4,radial:r.radial??!1},lifetime:Ma(e.lifetime,[2,4]),speed:Ma(e.speed,[40,160]),direction:e.direction??-90,spread:e.spread??360,bounds:e.bounds??"none",floor:e.floor??null,bounce:e.bounce??.3,size:Ma(e.size,[6,0]),sizeJitter:e.sizeJitter??.5,fade:e.fade??[.1,.3],shape:e.shape??"circle",stretch:e.stretch??.04,blend:e.blend??"normal",colors:a.slice(0,8),colorBySpeed:e.colorBySpeed??null,opacity:e.opacity??1,substeps:e.substeps??2,prewarm:e.prewarm??0}}particleFrame(e,r){let n=this.options,i=(g,y)=>g===void 0?y:ze(g,e,r),o=e-(n.startFrame??0),a=(n.emitter?.bursts??[]).filter(g=>Math.round(g.frame)===o).reduce((g,y)=>g+y.count,0),s=n.gravity,l=Array.isArray(s)?[i(s[0],0),i(s[1],0)]:[0,i(s,0)],c=null;n.push&&(c={strength:i(n.push.strength,6e3),sweep:i(n.push.sweep,6e4),mask:n.push.person.silhouetteGrid(e),previous:n.push.person.silhouetteGrid(Math.max(0,e-1))});let m=n.emitter?.x,d=n.emitter?.y,p=m!==void 0&&typeof m!="number"||d!==void 0&&typeof d!="number",f=g=>({x:m===void 0?this.particleStatic.emitter.x:ze(m,g,r),y:d===void 0?this.particleStatic.emitter.y:ze(d,g,r)}),b;if(p){let g=f(e),y=f(Math.max(0,e-1));b={x:g.x,y:g.y,previousX:y.x,previousY:y.y}}return{...b&&{emitter:b},rate:i(n.emitter?.rate,1e3),burst:a,gravity:l,drag:i(n.drag,.4),noise:{strength:i(n.noise?.strength,0),scale:n.noise?.scale??300,speed:n.noise?.speed??.3},attractors:(n.attractors??[]).map(g=>({x:i(g.x,0),y:i(g.y,0),strength:i(g.strength,0),radius:g.radius??200})),push:c}}};h();var ve=vr(kc(),1);h();var oi=vr(wm(),1);function Ca(t,e=24,r){let n=t.fps??e;if(n<=0)throw new Error(`[FrameGrid] Invalid fps: ${n}. Must be > 0.`);let i=[];if(Array.isArray(t.frames)&&t.frames.length>0)for(let a of t.frames){if(typeof a!="number"||a<0||!Number.isFinite(a))throw new Error(`[FrameGrid] Invalid frame index in frames list: ${a}`);i.push({frame:Math.round(a),timeMs:Math.round(a/n*1e3)})}else if(Array.isArray(t.timesMs)&&t.timesMs.length>0)for(let a of t.timesMs){if(typeof a!="number"||a<0||!Number.isFinite(a))throw new Error(`[FrameGrid] Invalid timestamp in timesMs list: ${a}`);i.push({frame:Math.round(a/1e3*n),timeMs:Math.round(a)})}else if(t.startMs!==void 0||t.endMs!==void 0||t.stepMs!==void 0){let a=t.startMs??0,s=t.endMs??r??a+1e3,l=t.stepMs??Math.round(5/n*1e3);if(a<0||s<a)throw new Error(`[FrameGrid] Invalid millisecond range: startMs=${a}, endMs=${s}. startMs must be <= endMs.`);if(l<=0)throw new Error(`[FrameGrid] Invalid stepMs: ${l}. Must be > 0.`);for(let c=a;c<=s;c+=l)i.push({frame:Math.round(c/1e3*n),timeMs:Math.round(c)})}else{let a=t.startFrame??0,s=t.endFrame??(r?Math.min(a+30,Math.floor(r/1e3*n)):a+30),l=t.stepFrames??5;if(a<0||s<a)throw new Error(`[FrameGrid] Invalid frame range: startFrame=${a}, endFrame=${s}. startFrame must be <= endFrame.`);if(l<=0)throw new Error(`[FrameGrid] Invalid stepFrames: ${l}. Must be > 0.`);for(let c=a;c<=s;c+=l)i.push({frame:Math.round(c),timeMs:Math.round(c/n*1e3)})}let o=Math.min(t.maxFrames??64,120);if(i.length>o)throw new Error(`[FrameGrid] Requested ${i.length} frames exceeds the safety threshold of ${o}. 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 Aa(t,e,r){let n=r.gap??12,i=r.padding??16,a=r.showHeader??!0?54:0,s=r.maxGridWidth??4096,l=r.maxGridHeight??4096,c=r.columns;(!c||c<=0)&&(t<=4?c=t:t<=9?c=3:t<=16?c=4:t<=25?c=5:c=6),c=Math.min(c,t);let m=Math.ceil(t/c),d=Math.max(120,Math.min(r.cellWidth??320,960)),p=r.cellHeight??Math.round(d/(e>0?e:16/9)),f=c*d+(c-1)*n+i*2,b=m*p+(m-1)*n+i*2+a;if(f>s||b>l){let g=Math.min((s-(c-1)*n-i*2)/(c*d),(l-(m-1)*n-i*2-a)/(m*p));if(g<.25)throw new Error(`[FrameGrid] Cannot fit ${t} cells (${c}x${m}) into max dimensions [${s}x${l}]. Reduce cell count or decrease cellWidth.`);d=Math.max(100,Math.floor(d*g)),p=Math.round(d/(e>0?e:16/9)),f=c*d+(c-1)*n+i*2,b=m*p+(m-1)*n+i*2+a}return{columns:c,rows:m,cellWidth:d,cellHeight:p,totalWidth:f,totalHeight:b,headerHeight:a,gap:n,padding:i}}async function en(t,e={}){let r=t.fps??24,n=t.durationMs,{samples:i,fps:o}=Ca(e,r,n),a=t.width??1920,s=t.height??1080,l=a>0&&s>0?a/s:16/9,c=Aa(i.length,l,e),m=e.renderer??new ve.HeadlessMediaRenderer,d=[];for(let y of i){let S=await t.renderFrame({frame:y.frame,atMs:y.timeMs,fps:o,renderer:m});d.push(S)}let p=new oi.Canvas(c.totalWidth,c.totalHeight),f=p.getContext("2d");if(f.fillStyle=e.backgroundColor??"#090a0f",f.fillRect(0,0,c.totalWidth,c.totalHeight),e.showHeader!==!1&&c.headerHeight>0){let y=e.headerText??`FrameGrid Conformance Review | Frames ${i[0].frame}\u2013${i[i.length-1].frame} (Count: ${i.length})`,S=`${a}\xD7${s} @ ${o} FPS | Cell: ${c.cellWidth}\xD7${c.cellHeight}px | Step: ${e.stepFrames?`${e.stepFrames}f`:e.stepMs?`${e.stepMs}ms`:"Custom"}`;f.fillStyle="#f8fafc",f.font="bold 15px sans-serif",f.fillText(y,c.padding,c.padding+18),f.fillStyle="#94a3b8",f.font="12px sans-serif",f.fillText(S,c.padding,c.padding+36),f.strokeStyle="#1e2433",f.lineWidth=1,f.beginPath(),f.moveTo(c.padding,c.padding+46),f.lineTo(c.totalWidth-c.padding,c.padding+46),f.stroke()}let b=e.showLabels??!0;for(let y=0;y<i.length;y++){let S=i[y],A=y%c.columns,T=Math.floor(y/c.columns),v=c.padding+A*(c.cellWidth+c.gap),C=c.padding+c.headerHeight+T*(c.cellHeight+c.gap),x=await(0,oi.loadImage)(d[y]);if(f.drawImage(x,v,C,c.cellWidth,c.cellHeight),f.strokeStyle="#262b3d",f.lineWidth=1,f.strokeRect(v,C,c.cellWidth,c.cellHeight),b){let M=`F:${S.frame} \u2022 ${S.timeMs}ms`;f.font="bold 11px sans-serif";let _=f.measureText(M).width+14,$=20,I=v+6,F=C+6;f.fillStyle="#090a0fee",f.beginPath(),f.roundRect(I,F,_,$,4),f.fill(),f.strokeStyle="#6366f155",f.lineWidth=1,f.stroke(),f.fillStyle="#e2e8f0",f.fillText(M,I+7,F+14)}}let g=await p.toBuffer("png");return e.outputPath&&await kr.writeFile(e.outputPath,g),g}h();var ib=["material","shininess","roughness","specularIntensity","metallic","ambientIntensity","ior","transmission","dispersion","fresnelPower","envIntensity","emissive","emissiveIntensity","castShadow"];function tn(t){let e=t,r={};for(let n of ib)e[n]!==void 0&&(r[n]=e[n]);return r}function ob(t){return t==="lit"||t==="unlit"||t==="toon"?t:void 0}function Da(t,e,r){let n=Object.fromEntries(Object.entries({...e,color:r.color,material:ob(r.material),shininess:r.shininess,roughness:r.roughness,metallic:r.metallic}).filter(([,i])=>i!==void 0));return B.model({id:r.id??Q(t),modelData:fs(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,...tn({emissive:r.emissive,emissiveIntensity:r.emissiveIntensity,castShadow:r.castShadow}),twoSided:!1,startFrame:r.startFrame,durationFrames:r.durationFrames})}function ai(t,e){let r=e.faces??e.items??[];for(let[n,i]of Object.entries(e))Object.defineProperty(t,n,{value:i,enumerable:!1,configurable:!0});return Object.defineProperty(t,Symbol.iterator,{value:function*(){yield*r},enumerable:!1,configurable:!0}),t}function ab(t){let e=t.scale??1,r=Math.max(Math.abs(e*(t.scaleX??1)),Math.abs(e*(t.scaleY??1)));return r>0?r:1}var rt={cube(t){let e=t.size,[r,n,i]=typeof e=="number"?[e,e,e]:e,o=t.twoSided??!0,a={front:"#3b82f6",back:"#1d4ed8",left:"#2563eb",right:"#1e40af",top:"#60a5fa",bottom:"#172554"},s=(f,b,g,y,S,A)=>{if(b&&typeof b=="object"&&"kind"in b){let v=b;return v.position="absolute",v.is3D=!0,v.twoSided=o,v.material=v.material??t.material??"lit",v.shininess=v.shininess??t.shininess??32,v.specularIntensity=v.specularIntensity??t.specularIntensity??.5,t.roughness!==void 0&&v.roughness===void 0&&(v.roughness=t.roughness),t.metallic!==void 0&&v.metallic===void 0&&(v.metallic=t.metallic),t.ambientIntensity!==void 0&&v.ambientIntensity===void 0&&(v.ambientIntensity=t.ambientIntensity),Object.assign(v,A),v}let T=typeof b=="string"?{background:b}:b??{background:g};return B.box({id:`${t.id??"cube"}-${f}`,position:"absolute",width:y,height:S,is3D:!0,twoSided:o,material:T.material??t.material??"lit",shininess:T.shininess??t.shininess??32,specularIntensity:T.specularIntensity??t.specularIntensity??.5,roughness:T.roughness??t.roughness,metallic:T.metallic??t.metallic,ambientIntensity:T.ambientIntensity??t.ambientIntensity??1,...tn({emissive:T.emissive??t.emissive,emissiveIntensity:T.emissiveIntensity??t.emissiveIntensity,castShadow:T.castShadow??t.castShadow}),background:T.background??g,borderRadius:T.borderRadius??0,borderWidth:T.borderWidth,borderColor:T.borderColor,opacity:T.opacity??1,children:T.children??[],...A})},l=r/2,c=n/2,m=i/2,d=[s("front",t.faces?.front,a.front,r,n,{x:0,y:0,z:-m,rotateX:0,rotateY:0,rotateZ:0}),s("back",t.faces?.back,a.back,r,n,{x:0,y:0,z:m,rotateX:0,rotateY:180,rotateZ:0}),s("left",t.faces?.left,a.left,i,n,{x:-l,y:0,z:0,rotateX:0,rotateY:90,rotateZ:0}),s("right",t.faces?.right,a.right,i,n,{x:l,y:0,z:0,rotateX:0,rotateY:-90,rotateZ:0}),s("top",t.faces?.top,a.top,r,i,{x:0,y:-c,z:0,rotateX:-90,rotateY:0,rotateZ:0}),s("bottom",t.faces?.bottom,a.bottom,r,i,{x:0,y:c,z:0,rotateX:90,rotateY:0,rotateZ:0})],p=B.box({id:t.id??Q("cube"),position:"absolute",x:t.x??0,y:t.y??0,z:t.z??0,width:r,height:n,is3D:!0,transformStyle:"preserve-3d",rotateX:t.rotateX??0,rotateY:t.rotateY??0,rotateZ:t.rotateZ??0,opacity:t.opacity??1,background:"transparent",children:d});return ai(p,{faces:d})},carousel(t){let{items:e,radius:r,faceInward:n=!1,twoSided:i=!0}=t,o=e.length,a=o>0?360/o:0,s=e.map((c,m)=>{let d=m*a,p=d*Math.PI/180,f=r*Math.sin(p),b=-r*Math.cos(p),g=n?180-d:-d,y=c;return y.position="absolute",y.is3D=!0,y.twoSided=i,y.x=f,y.y=0,y.z=b,y.rotateY=g,y}),l=B.box({id:t.id??Q("carousel"),position:"absolute",x:t.x??0,y:t.y??0,z:t.z??0,width:t.itemWidth??200,height:t.itemHeight??200,is3D:!0,transformStyle:"preserve-3d",rotateX:t.rotateX??0,rotateY:t.rotateY??0,rotateZ:t.rotateZ??0,opacity:t.opacity??1,background:"transparent",children:s});return ai(l,{items:s})},prism(t){let{sides:e,radius:r,height:n,twoSided:i=!0}=t,o=Math.max(3,e),a=2*r*Math.tan(Math.PI/o),s=360/o,l=[];for(let m=0;m<o;m++){let d=m*s,p=d*Math.PI/180,f=r*Math.sin(p),b=r*Math.cos(p),g=t.sideConfigs?.[m],y=typeof g=="string"?g:g?.background??`hsl(${m*360/o}, 70%, 50%)`;l.push(B.box({id:`${t.id??"prism"}-panel-${m}`,position:"absolute",width:a,height:n,is3D:!0,twoSided:i,x:f,y:0,z:b,rotateY:d,background:y}))}let c=B.box({id:t.id??Q("prism"),position:"absolute",x:t.x??0,y:t.y??0,z:t.z??0,width:a,height:n,is3D:!0,transformStyle:"preserve-3d",rotateX:t.rotateX??0,rotateY:t.rotateY??0,rotateZ:t.rotateZ??0,opacity:t.opacity??1,background:"transparent",children:l});return ai(c,{faces:l})},plane(t){return B.box({id:t.id??Q("plane"),position:"absolute",width:t.width,height:t.height,x:t.x??0,y:t.y??0,z:t.z??0,is3D:!0,twoSided:t.twoSided??!0,rotateX:t.rotateX??0,rotateY:t.rotateY??0,rotateZ:t.rotateZ??0,background:t.background??"#3b82f6",borderRadius:t.borderRadius??0,opacity:t.opacity??1,...tn(t),children:t.children??[]})},grid(t){let{width:e,height:r}=t,n=t.id??Q("grid"),i=Math.max(1,Math.round(t.divisions??10)),o=t.lineWidth??2,a=t.color??"rgba(59, 130, 246, 0.5)",s=(p,f,b,g,y)=>B.box({id:`${n}-${p}`,position:"absolute",x:f,y:b,z:0,width:g,height:y,is3D:!0,twoSided:!0,material:"unlit",background:a}),l=4096,c=[],m=Math.ceil(r/l),d=Math.ceil(e/l);for(let p=0;p<=i;p++){let f=p/i-.5;for(let b=0;b<m;b++){let g=r/m,y=-r/2+g*(b+.5);c.push(s(`v${p}-${b}`,f*e,y,o,g))}for(let b=0;b<d;b++){let g=e/d,y=-e/2+g*(b+.5);c.push(s(`h${p}-${b}`,y,f*r,g,o))}}return B.box({id:n,position:"absolute",width:e,height:r,x:t.x??0,y:t.y??0,z:t.z??0,is3D:!0,transformStyle:"preserve-3d",rotateX:t.rotateX??90,rotateY:t.rotateY??0,rotateZ:t.rotateZ??0,background:"transparent",opacity:t.opacity??1,children:c})},text(t){return t.extrusionDepth&&t.extrusionDepth>0?rt.extrudedText({...t,depth:t.extrusionDepth}):B.text(t.text,{id:t.id??Q("text3d"),position:"absolute",x:t.x??0,y:t.y??0,z:t.z??0,is3D:!0,twoSided:t.twoSided??!0,rotateX:t.rotateX??0,rotateY:t.rotateY??0,rotateZ:t.rotateZ??0,fontSize:t.fontSize??48,fontFamily:t.fontFamily,fontWeight:t.fontWeight??"bold",fontStyle:t.fontStyle,fill:t.fill??"#ffffff",align:t.align??"center",direction:t.direction,verticalAlign:t.verticalAlign??"middle",letterSpacing:t.letterSpacing,lineHeight:t.lineHeight,material:t.material??"lit",shininess:t.shininess??64,roughness:t.roughness,specularIntensity:t.specularIntensity??.8,ambientIntensity:t.ambientIntensity??1,metallic:t.metallic,...tn(t),opacity:t.opacity??1,background:t.background,borderRadius:t.borderRadius,padding:t.padding,stroke:t.stroke,strokeWidth:t.strokeWidth})},extrudedText(t){let{depth:e,text:r,fill:n="#ffffff",bevelColor:i}=t,o,a=(t.curveTolerance??.1)/ab(t),s=(t.fontFamily?Wt.getParsed(t.fontFamily):null)??Wt.getParsed("Inter")??Wt.getParsed("Unbounded")??Wt.getFirstParsed();s&&(o=ps({text:r,font:s,fontSize:t.fontSize??48,depth:e,fill:n,bevelColor:i,curveSegments:t.curveSegments,curveTolerance:a,align:t.align,direction:t.direction,verticalAlign:t.verticalAlign,letterSpacing:t.letterSpacing,material:t.material==="lit"||t.material==="unlit"||t.material==="toon"?t.material:void 0,shininess:t.shininess,roughness:t.roughness,metallic:t.metallic}).modelData);let l=B.model({id:t.id??Q("extruded-text"),modelData:o,is3D:!0,x:t.x??0,y:t.y??0,z:t.z??0,rotateX:t.rotateX??0,rotateY:t.rotateY??0,rotateZ:t.rotateZ??0,scale:t.scale??1,scaleX:t.scaleX??1,scaleY:t.scaleY??1,scaleZ:t.scaleZ??1,opacity:t.opacity??1,material:t.material,shininess:t.shininess??32,roughness:t.roughness,specularIntensity:t.specularIntensity??.8,ambientIntensity:t.ambientIntensity??1,metallic:t.metallic,...tn(t),twoSided:t.twoSided??!0,text3dOptions:{...t,curveTolerance:a}});return ai(l,{faces:[l],items:[l]})},roundedBox(t){return Da("rounded-box",{type:"roundedBox",width:t.width,height:t.height,depth:t.depth,radius:t.radius,segments:t.segments,taper:t.taper},t)},sphere(t){return Da("sphere",{type:"sphere",radius:t.radius,segments:t.segments},t)},cylinder(t){return Da("cylinder",{type:"cylinder",radius:t.radius,radiusTop:t.radiusTop,radiusBottom:t.radiusBottom,height:t.height,segments:t.segments,openEnded:t.openEnded},t)},model(t={}){return B.model(t)},obj(t,e={}){return B.obj(t,e)},fbx(t,e={}){return B.fbx(t,e)},gltf(t,e={}){return B.gltf(t,e)},glb(t,e={}){return B.glb(t,e)},stl(t,e={}){return B.stl(t,e)},ply(t,e={}){return B.ply(t,e)},vox(t,e={}){return B.vox(t,e)},threeDS(t,e={}){return B.threeDS(t,e)},off(t,e={}){return B.off(t,e)}};h();var Na=(t,e,r)=>{switch(t){case"left":return{dx:-e,dy:0};case"right":return{dx:e,dy:0};case"up":return{dx:0,dy:-r};default:return{dx:0,dy:r}}};function nt(t,e,r){return{kind:t,frames:Math.max(0,Math.round(e)),build:r}}var Pc={cut:()=>nt("cut",0,()=>({})),crossfade:(t=15,e="sine.inOut")=>nt("crossfade",t,r=>({incoming:ie.keys("opacity",[[0,0],[r.frames,1,e]])})),fadeThrough:(t=20,e="sine.inOut")=>nt("fadeThrough",t,r=>{let n=Math.max(1,Math.floor(r.frames/2));return{outgoing:ie.keys("opacity",[[r.outStart,1],[r.outStart+n,0,e]]),incoming:ie.keys("opacity",[[0,0],[n,0],[r.frames,1,e]])}}),push:(t="left",e=18,r="power3.inOut")=>nt("push",e,n=>{let{dx:i,dy:o}=Na(t,n.width,n.height),a=ie.create(),s=ie.create();return i!==0?(a.keys("x",[[n.outStart,n.outRest.x],[n.outStart+n.frames,n.outRest.x+i,r]]),s.keys("x",[[0,n.inRest.x-i],[n.frames,n.inRest.x,r]])):(a.keys("y",[[n.outStart,n.outRest.y],[n.outStart+n.frames,n.outRest.y+o,r]]),s.keys("y",[[0,n.inRest.y-o],[n.frames,n.inRest.y,r]])),{outgoing:a,incoming:s}}),slide:(t="left",e=18,r="power3.out")=>nt("slide",e,n=>{let{dx:i,dy:o}=Na(t,n.width,n.height),a=i!==0?"x":"y",s=i!==0?n.inRest.x:n.inRest.y;return{outgoing:ie.keys("opacity",[[n.outStart,1],[n.outStart+n.frames,.6,r]]),incoming:ie.keys(a,[[0,s-(i||o)],[n.frames,s,r]])}}),zoom:(t=18,e="power2.inOut")=>nt("zoom",t,r=>({outgoing:ie.create().keys("scale",[[r.outStart,1],[r.outStart+r.frames,1.25,e]]).keys("opacity",[[r.outStart,1],[r.outStart+r.frames,0,e]]),incoming:ie.create().keys("scale",[[0,.85],[r.frames,1,e]]).keys("opacity",[[0,0],[r.frames,1,e]])})),whip:(t="left",e=10)=>{let r=Pc.push(t,e,"expo.inOut");return nt("whip",e,n=>({...r.build(n),sceneProps:{motionBlurShutter:360}}))},wipe:(t="left",e=18,r="power2.inOut")=>nt("wipe",e,n=>{let{dx:i,dy:o}=Na(t,n.width,n.height),a=i!==0?"x":"y",s=i!==0?n.inRest.x:n.inRest.y;return{incomingMatte:B.box({id:Q("wipe-matte"),position:"absolute",x:n.inRest.x,y:n.inRest.y,width:n.width,height:n.height,background:"#ffffff"}).animate(ie.keys(a,[[0,s-(i||o)],[n.frames,s,r]]))}}),iris:(t=20,e={})=>nt("iris",t,r=>{let[n,i]=e.at??[.5,.5],o=r.inRest.x+n*r.width,a=r.inRest.y+i*r.height,s=Math.hypot(Math.max(n,1-n)*r.width,Math.max(i,1-i)*r.height);return{incomingMatte:B.shape("circle",{id:Q("iris-matte"),position:"absolute",x:o-s,y:a-s,width:s*2,height:s*2,fillColor:"#ffffff"}).animate(ie.keys("scale",[[0,0],[r.frames,1,e.ease??"power2.inOut"]]))}})};function si(t,e,r){let n=t[e];return typeof n=="number"?n:r}function Tc(t,e={}){let r=[],n=[],i=0;t.forEach((a,s)=>{let l=s===0?void 0:a.transition,c=Math.min(l?.frames??0,t[s-1]?.duration??0),m=Math.max(0,i-c),d=Math.max(1,Math.round(a.duration));n.push(m);let p=a.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}),t.forEach((a,s)=>{if(s===0||!a.transition||a.transition.frames===0)return;let l=r[s-1],c=r[s],m=Math.min(a.transition.frames,t[s-1].duration),d=e.width??si(c,"width",1920),p=e.height??si(c,"height",1080),f=a.transition.build({width:d,height:p,frames:m,outStart:t[s-1].duration-m,outRest:{x:typeof l.x=="number"?l.x:0,y:typeof l.y=="number"?l.y:0},inRest:{x:typeof c.x=="number"?c.x:0,y:typeof c.y=="number"?c.y:0}}),b=(g,y)=>{if(!y)return;let S=g.animation?.tracks??[];g.animation=ie.merge({tracks:S},y).toSpec()};b(l,f.outgoing),b(c,f.incoming),f.sceneProps&&(Object.assign(l,f.sceneProps),Object.assign(c,f.sceneProps)),f.incomingMatte&&(c.matte={node:f.incomingMatte,mode:"alpha"})});let o=B.box({id:e.id??Q("sequence"),position:"absolute",x:0,y:0,width:e.width??si(r[0]??{},"width",1920),height:e.height??si(r[0]??{},"height",1080),startFrame:e.startFrame??0,durationFrames:Math.max(1,i),children:r});return Object.defineProperty(o,"totalFrames",{value:i,enumerable:!1}),Object.defineProperty(o,"sceneStarts",{value:n,enumerable:!1}),o}h();var sb={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 ub([t,e,r],n){let i=n*Math.PI/180,o=Math.cos(i),a=Math.sin(i);return[o*t+a*r,e,-a*t+o*r]}function Mc(t,e,r,n){let[i,o,a]=ub(t,n),s=Math.hypot(i,o,a)||1;return{x:e[0]+i/s*r,y:e[1]+o/s*r,z:e[2]+a/s*r,targetX:e[0],targetY:e[1],targetZ:e[2]}}function ui(t,e){let r=sb[t],n=e.target??[960,540,0],i=e.distance??1600,o=e.rotation??0,a=e.intensity??1,s=e.id??Q(`lighting-${t}`),l=[it.environment(r.environment,{id:`${s}-environment`,intensity:r.envIntensity*a,rotation:o,exposure:e.exposure,toneMapping:e.toneMapping,fog:e.fog,bloom:e.bloom}),it.directional({id:`${s}-key`,color:r.key.color,intensity:r.key.intensity*a,...Mc(r.key.dir,n,i,o),castShadow:e.shadows??!0,shadowSoftness:e.shadowSoftness??3})];for(let[c,m]of[["rim",r.rim],["fill",r.fill]])m&&l.push(it.directional({id:`${s}-${c}`,color:m.color,intensity:m.intensity*a,...Mc(m.dir,n,i,o)}));return l}var lb={studio:(t={})=>ui("studio",t),soft:(t={})=>ui("soft",t),sunset:(t={})=>ui("sunset",t),dramatic:(t={})=>ui("dramatic",t)};h();h();var cb="@dimforge/rapier2d-deterministic-compat",db="@dimforge/rapier3d-deterministic-compat";async function Cc(t,e){let r;try{r=await e()}catch(i){throw new Error(`Physics needs the optional dependency "${t}". Install it with \`npm i ${t}\`.`,{cause:i})}let n=r.default??r;return await n.init(),n}var Ac,Dc;async function Fa(t){if(t===2){Ac??=Cc(cb,()=>import("./rapier-JD7KNQRV.mjs"));let r=await Ac;return{createWorld2D:n=>new Oa(r,n),createWorld3D:()=>{throw new Error("This backend was loaded for 2D.")}}}Dc??=Cc(db,()=>import("./rapier-AHBIGHEL.mjs"));let e=await Dc;return{createWorld2D:()=>{throw new Error("This backend was loaded for 3D.")},createWorld3D:r=>new Ra(e,r)}}var Oa=class{constructor(e,r){this.R=e;this.world=new e.World({x:r[0],y:r[1]}),this.events=new e.EventQueue(!0)}R;world;events;byCollider=new Map;started=[];addBody(e){let r=this.R,n=Nc(r,e.type).setTranslation(e.position[0],e.position[1]).setRotation(e.angle).setLinvel(e.velocity[0],e.velocity[1]).setAngvel(e.angularVelocity).setLinearDamping(e.linearDamping).setAngularDamping(e.angularDamping).setGravityScale(e.gravityScale).setCcdEnabled(e.ccd).setEnabled(e.enabled);e.lockRotation&&n.lockRotations();let i=this.world.createRigidBody(n),o=this.world.createCollider(mb(r,e.shape).setDensity(e.density).setFriction(e.friction).setRestitution(e.restitution).setActiveEvents(r.ActiveEvents.COLLISION_EVENTS).setSensor(e.sensor??!1),i),a={raw:i,position:()=>{let s=i.translation();return[s.x,s.y]},rotation:()=>i.rotation(),velocity:()=>{let s=i.linvel();return[s.x,s.y]},angularVelocity:()=>i.angvel(),sleeping:()=>i.isSleeping(),mass:()=>i.mass(),setEnabled:s=>i.setEnabled(s),applyImpulse:([s,l])=>i.applyImpulse({x:s,y:l},!0),setKinematicTarget:([s,l],c)=>{i.setNextKinematicTranslation({x:s,y:l}),i.setNextKinematicRotation(c)}};return this.byCollider.set(o.handle,a),a}addJoint(e,r,n){let i=this.R,o={x:n.anchorA[0],y:n.anchorA[1]},a={x:n.anchorB[0],y:n.anchorB[1]},s;switch(n.type){case"revolute":case"spherical":s=i.JointData.revolute(o,a);break;case"fixed":s=i.JointData.fixed(o,0,a,0);break;case"rope":s=i.JointData.rope(n.length,o,a);break;case"spring":s=i.JointData.spring(n.restLength,n.stiffness,n.damping,o,a);break}this.world.createImpulseJoint(s,li(e),li(r),!0).setContactsEnabled(!1)}step(e){this.world.timestep=e,this.world.step(this.events),this.events.drainCollisionEvents((r,n,i)=>{if(!i)return;let o=this.byCollider.get(r),a=this.byCollider.get(n);o&&a&&this.started.push([o,a])})}drainCollisionStarts(){return this.started.splice(0)}free(){this.events.free(),this.world.free()}},Ra=class{constructor(e,r){this.R=e;this.world=new e.World({x:r[0],y:r[1],z:r[2]}),this.events=new e.EventQueue(!0)}R;world;events;byCollider=new Map;started=[];addBody(e){let r=this.R,[n,i,o,a]=e.rotation,s=Nc(r,e.type).setTranslation(e.position[0],e.position[1],e.position[2]).setRotation({x:n,y:i,z:o,w:a}).setLinvel(e.velocity[0],e.velocity[1],e.velocity[2]).setAngvel(hr(e.lockRotation?[0,0,0]:e.angularVelocity.map((p,f)=>e.enabledRotations&&!e.enabledRotations[f]?0:p))).setLinearDamping(e.linearDamping).setAngularDamping(e.angularDamping).setGravityScale(e.gravityScale).setCcdEnabled(e.ccd).setEnabled(e.enabled);e.lockRotation?s.lockRotations():e.enabledRotations&&s.enabledRotations(...e.enabledRotations);let l=this.world.createRigidBody(s),c=pb(r,e.shape),m=this.world.createCollider(c.setDensity(e.density).setFriction(e.friction).setRestitution(e.restitution).setActiveEvents(r.ActiveEvents.COLLISION_EVENTS).setSensor(e.sensor??!1),l),d={raw:l,position:()=>{let p=l.translation();return[p.x,p.y,p.z]},rotation:()=>{let p=l.rotation();return[p.x,p.y,p.z,p.w]},velocity:()=>{let p=l.linvel();return[p.x,p.y,p.z]},angularVelocity:()=>{let p=l.angvel();return[p.x,p.y,p.z]},sleeping:()=>l.isSleeping(),mass:()=>l.mass(),setEnabled:p=>l.setEnabled(p),applyImpulse:p=>l.applyImpulse(hr(p),!0),setKinematicTarget:(p,[f,b,g,y])=>{l.setNextKinematicTranslation(hr(p)),l.setNextKinematicRotation({x:f,y:b,z:g,w:y})}};return this.byCollider.set(m.handle,d),d}addJoint(e,r,n){let i=this.R,o=hr(n.anchorA),a=hr(n.anchorB),s;switch(n.type){case"revolute":s=i.JointData.revolute(o,a,hr(n.axis??[0,0,1]));break;case"spherical":s=i.JointData.spherical(o,a);break;case"fixed":{let l={x:0,y:0,z:0,w:1};s=i.JointData.fixed(o,l,a,l);break}case"rope":s=i.JointData.rope(n.length,o,a);break;case"spring":s=i.JointData.spring(n.restLength,n.stiffness,n.damping,o,a);break}this.world.createImpulseJoint(s,li(e),li(r),!0).setContactsEnabled(!1)}step(e){this.world.timestep=e,this.world.step(this.events),this.events.drainCollisionEvents((r,n,i)=>{if(!i)return;let o=this.byCollider.get(r),a=this.byCollider.get(n);o&&a&&this.started.push([o,a])})}drainCollisionStarts(){return this.started.splice(0)}free(){this.events.free(),this.world.free()}};function hr([t,e,r]){return{x:t,y:e,z:r}}function li(t){return t.raw}function Nc(t,e){let r=t.RigidBodyDesc;return e==="fixed"?r.fixed():e==="kinematic"?r.kinematicPositionBased():r.dynamic()}function mb(t,e){switch(e.kind){case"ball":return t.ColliderDesc.ball(e.radius);case"box":{let r=Math.min(e.radius??0,e.hx/2,e.hy/2);return r>0?t.ColliderDesc.roundCuboid(e.hx-r,e.hy-r,r):t.ColliderDesc.cuboid(e.hx,e.hy)}case"hull":{let r=t.ColliderDesc.convexHull(new Float32Array(e.points));if(!r)throw new Error("Physics: could not build a convex hull for this shape.");return r}}}function pb(t,e){switch(e.kind){case"ball":return t.ColliderDesc.ball(e.radius);case"box":{let r=Math.min(e.radius??0,e.hx/2,e.hy/2,e.hz/2);return r>0?t.ColliderDesc.roundCuboid(e.hx-r,e.hy-r,e.hz-r,r):t.ColliderDesc.cuboid(e.hx,e.hy,e.hz)}case"cylinder":return t.ColliderDesc.cylinder(e.halfHeight,e.radius);case"hull":{let r=t.ColliderDesc.convexHull(new Float32Array(e.points));if(!r)throw new Error("Physics: could not build a convex hull for this shape.");return r}}}h();var rn=class{constructor(e,r,n,i,o,a,s){this.world=e;this.type=n;this.layer=i;this.frame=o;this.options=a;this.sim=r,this.recording=s}world;type;layer;frame;options;collisions=[];recording;sim;get startFrame(){return Math.max(0,Math.round(this.options.startFrame??0))}get gravityScale(){return this.options.gravityScale??1}get output(){return this.options.output}get x(){return this.recording.signal("x")}get y(){return this.recording.signal("y")}get rotation(){return this.recording.signal("rotation")}get centerX(){return this.recording.signal("centerX")}get centerY(){return this.recording.signal("centerY")}get vx(){return this.recording.signal("vx")}get vy(){return this.recording.signal("vy")}get speed(){return this.recording.signal("speed")}get angularVelocity(){return this.recording.signal("angularVelocity")}get impact(){return this.recording.signal("impact")}get sleeping(){return this.recording.signal("sleeping")}kinematicTarget(e){let r=this.options.follow;if(this.type!=="kinematic"||!r)return;let n=this.frame,i=this.world.fps,o=r.x===void 0?void 0:ze(r.x,e,i),a=r.y===void 0?void 0:ze(r.y,e,i),s=r.rotation===void 0?n.rotation:ze(r.rotation,e,i),l=this.initialLayerXY(),c=Fc(o??l[0],a??l[1],s,n),m=this.world.pixelsPerMeter;return{position:[c[0]/m,c[1]/m],rotation:s*Math.PI/180}}initialLayerXY(){let e=this.layer;return[Number(e?.x??0),Number(e?.y??0)]}record(e,r){let n=this.world.pixelsPerMeter,[i,o]=this.sim.position(),a=i*n,s=o*n,l=this.recording,c=l.channel("rotation"),m=this.sim.rotation()*180/Math.PI;c[e]=r<0?Ut(this.frame.rotation,m):Ut(c[r],m);let[d,p]=yb(a,s,c[e],this.frame);l.channel("x")[e]=d,l.channel("y")[e]=p,l.channel("centerX")[e]=a,l.channel("centerY")[e]=s;let[f,b]=this.sim.velocity();l.channel("vx")[e]=f*n,l.channel("vy")[e]=b*n,l.channel("speed")[e]=Math.hypot(f,b)*n,l.channel("angularVelocity")[e]=this.sim.angularVelocity()*180/Math.PI,l.channel("sleeping")[e]=this.sim.sleeping()?1:0}boundChannels(){let e=[["x","x"],["y","y"]];return this.options.lockRotation||e.push(["rotation","rotation"]),e}localAnchor(e){if(!e)return[0,0];let r=this.world.pixelsPerMeter,[n,i]=this.sim.position(),o=-this.sim.rotation(),a=e[0]/r-n,s=e[1]/r-i;return[a*Math.cos(o)-s*Math.sin(o),a*Math.sin(o)+s*Math.cos(o)]}center(){let e=this.world.pixelsPerMeter,[r,n]=this.sim.position();return[r*e,n*e]}},gr=class extends fr{constructor(e,r){let n=r.pixelsPerMeter??100,i=r.gravity??2400,o=typeof i=="number"?[0,i/n]:[i[0]/n,i[1]/n],a=e.createWorld2D(o);super(a,o,r)}body(e,r={}){this.assertOpen();let i=typeof e.kind=="string"?e:void 0,o=hb(e,r),a=this.pixelsPerMeter,s=r.type??"dynamic",[l,c]=Fc(o.x,o.y,o.rotation,o),m=r.velocity??[0,0],d={type:s,position:[l/a,c/a],angle:o.rotation*Math.PI/180,velocity:[m[0]/a,m[1]/a],angularVelocity:(r.angularVelocity??0)*Math.PI/180,linearDamping:r.linearDamping??0,angularDamping:r.angularDamping??0,gravityScale:r.gravityScale??1,lockRotation:r.lockRotation??!1,ccd:r.ccd??!1,enabled:!0,sensor:r.sensor??!1,density:r.density??1,friction:r.friction??.6,restitution:r.restitution??.3,shape:Oc(o.shape,1/a)},p=this.sim.addBody(d),f=new rn(this,p,s,i,o,r,this.newRecording());return this.addBody(f)}ground(e){return this.body({x:-1e6/2,y:e.y,width:1e6,height:2e3},{type:"fixed",friction:e.friction,restitution:e.restitution??.2})}walls(e){let{width:r,height:n}=e,i=e.x??0,o=e.y??0,a=e.thickness??400,s={type:"fixed",friction:e.friction,restitution:e.restitution??.2},l=n*4+a,c={floor:this.body({x:i-a,y:o+n,width:r+2*a,height:a},s),left:this.body({x:i-a,y:o+n-l,width:a,height:l},s),right:this.body({x:i+r,y:o+n-l,width:a,height:l},s),ceiling:void 0};return e.ceiling&&(c.ceiling=this.body({x:i-a,y:o-a,width:r+2*a,height:a},s)),c}pin(e,r){let n=r??e.center(),i=this.anchorBody(n);return this.joint(e,i,{type:"revolute",anchorA:e.localAnchor(n),anchorB:[0,0]}),this}hinge(e,r,n){return this.joint(e,r,{type:"revolute",anchorA:e.localAnchor(n),anchorB:r.localAnchor(n)}),this}weld(e,r){let n=e.center();return this.joint(e,r,{type:"fixed",anchorA:[0,0],anchorB:r.localAnchor(n)}),this}spring(e,r,n={}){let{other:i,pa:o,pb:a}=this.endpoints(e,r,n.anchorA,n.anchorB),s=this.pixelsPerMeter,l=(n.length??Math.hypot(a[0]-o[0],a[1]-o[1]))/s,c=fb(e,i),m=2*Math.PI*(n.frequency??2);return this.joint(e,i,{type:"spring",anchorA:e.localAnchor(o),anchorB:i.localAnchor(a),restLength:l,stiffness:c*m*m,damping:2*(n.dampingRatio??.2)*c*m}),this}rope(e,r,n={}){let{other:i,pa:o,pb:a}=this.endpoints(e,r,n.anchorA,n.anchorB),s=n.length??Math.hypot(a[0]-o[0],a[1]-o[1]);return this.joint(e,i,{type:"rope",anchorA:e.localAnchor(o),anchorB:i.localAnchor(a),length:s/this.pixelsPerMeter}),this}force(e,r){let n=this.pixelsPerMeter;return this.addForce(e,i=>[r.x===void 0?0:ze(r.x,i,this.fps)/n,r.y===void 0?0:ze(r.y,i,this.fps)/n]),this}field(e,r={}){let n=this.pixelsPerMeter;return this.addField((i,o)=>{let[a,s]=i.sim.position(),[l,c]=i.sim.velocity(),m=e({x:a*n,y:s*n,vx:l*n,vy:c*n,frame:o,body:i});return m?[m[0]/n,m[1]/n]:null},r.bodies),this}impulse(e,r,n){let i=this.pixelsPerMeter;return this.addImpulse(e,r,[n[0]/i,n[1]/i]),this}lerpRotation(e,r,n){return e+(r-e)*n}joint(e,r,n){this.assertOpen(),this.sim.addJoint(e.sim,r.sim,n)}anchorBody(e){return this.body({x:e[0]-.5,y:e[1]-.5,width:1,height:1},{type:"fixed",output:"none",sensor:!0})}endpoints(e,r,n,i){let o=n??e.center();if(Array.isArray(r)){let a=i??r;return{other:this.anchorBody(a),pa:o,pb:a}}return{other:r,pa:o,pb:i??r.center()}}};function fb(t,e){let r=t.type==="dynamic"?t.sim.mass():0,n=e.type==="dynamic"?e.sim.mass():0;return r>0&&n>0?r*n/(r+n):Math.max(r,n,.001)}function qe(t,e){return typeof t=="number"&&Number.isFinite(t)?t:e}function hb(t,e){let r=typeof t.id=="string"?` "${t.id}"`:"";if(typeof t.x!="number"||typeof t.y!="number")throw new Error(`Physics: layer${r} needs numeric \`x\` and \`y\` (absolute position) to become a body.`);let n=e.size?.[0]??(typeof t.width=="number"?t.width:void 0),i=e.size?.[1]??(typeof t.height=="number"?t.height:void 0);if((n===void 0||i===void 0)&&t.kind==="text"){let s=Ve.measure(String(t.text??""),{fontFamily:String(t.fontFamily??"Inter"),fontSize:qe(t.fontSize,48),fontWeight:t.fontWeight,letterSpacing:qe(t.letterSpacing,0),lineHeight:typeof t.lineHeight=="number"?t.lineHeight:void 0});n??=s.width,i??=s.height}if(n===void 0||i===void 0||n<=0||i<=0)throw new Error(`Physics: layer${r} needs a numeric \`width\` and \`height\` (or the \`size\` option) to become a body.`);let o=qe(t.scale,1);return{...{x:t.x,y:t.y,width:n,height:i,scale:o,anchorX:qe(t.anchorX,.5),anchorY:qe(t.anchorY,.5),rotation:qe(t.rotation,0)},shape:Oc(gb(t,n,i,e.shape??"auto"),o)}}function gb(t,e,r,n){let o=t.kind==="shape"?String(t.shapeType??"rect"):"rect",a=qe(t.borderRadius,qe(t.cornerRadius,0)),s={kind:"box",hx:e/2,hy:r/2,radius:a};if(n==="box")return s;if(n==="circle"||n==="auto"&&o==="circle")return{kind:"ball",radius:Math.min(e,r)/2};if(n==="auto"&&o==="rect")return s;if(n==="hull"||n==="auto"){let l=bb(t,o,e,r);return l.length>=6?{kind:"hull",points:l}:s}return s}function bb(t,e,r,n){let i=e==="path"?String(t.d??""):cs({shapeType:e,width:r,height:n,cornerRadius:qe(t.cornerRadius,qe(t.borderRadius,0)),polygonSides:t.polygonSides,starPoints:t.starPoints,starInnerRadiusRatio:t.starInnerRadiusRatio,arrowHeadWidth:t.arrowHeadWidth,arrowHeadLength:t.arrowHeadLength,arrowShaftWidth:t.arrowShaftWidth}),o=[];for(let a of ls(i))o.push(a.p0.x-r/2,a.p0.y-n/2,a.p1.x-r/2,a.p1.y-n/2);return o}function Oc(t,e){switch(t.kind){case"ball":return{kind:"ball",radius:t.radius*e};case"box":return{kind:"box",hx:t.hx*e,hy:t.hy*e,radius:(t.radius??0)*e};case"hull":return{kind:"hull",points:t.points.map(r=>r*e)}}}function Rc(t,e){let r=t*Math.PI/180,n=(.5-e.anchorX)*e.width*e.scale,i=(.5-e.anchorY)*e.height*e.scale;return[n*Math.cos(r)-i*Math.sin(r),n*Math.sin(r)+i*Math.cos(r)]}function Fc(t,e,r,n){let[i,o]=Rc(r,n);return[t+n.anchorX*n.width+i,e+n.anchorY*n.height+o]}function yb(t,e,r,n){let[i,o]=Rc(r,n);return[t-i-n.anchorX*n.width,e-o-n.anchorY*n.height]}h();var xt=Math.PI/180;function Lc(t,e,r){let n=s=>s*xt/2,i=[Math.sin(n(t)),0,0,Math.cos(n(t))],o=[0,Math.sin(n(e)),0,Math.cos(n(e))],a=[0,0,Math.sin(n(r)),Math.cos(n(r))];return ci(ci(a,o),i)}function ci(t,e){let[r,n,i,o]=t,[a,s,l,c]=e;return[o*a+r*c+n*l-i*s,o*s-r*l+n*c+i*a,o*l+r*s-n*a+i*c,o*c-r*a-n*s-i*l]}function xb(t,e){let[r,n,i,o]=t,a=1-2*(n*n+i*i),s=2*(r*n+o*i),l=2*(r*i-o*n),c=2*(n*i+o*r),m=1-2*(r*r+n*n),d=2*(r*n-o*i),p=1-2*(r*r+i*i),f=Math.max(-1,Math.min(1,-l)),b;if(Math.abs(f)>.999999){let C=Math.asin(f),x=e?e[0]*xt:0,M=Math.atan2(-d,p)+(f>0?x:-x);b=[x,C,M]}else b=[Math.atan2(c,m),Math.asin(f),Math.atan2(s,a)];let g=[b[0]/xt,b[1]/xt,b[2]/xt];if(!e)return g;let y=[g[0]+180,180-g[1],g[2]+180],S=C=>[Ut(e[0],C[0]),Ut(e[1],C[1]),Ut(e[2],C[2])],A=S(g),T=S(y),v=C=>Math.abs(C[0]-e[0])+Math.abs(C[1]-e[1])+Math.abs(C[2]-e[2]);return v(A)<=v(T)?A:T}var nn=class{constructor(e,r,n,i,o,a,s){this.world=e;this.type=n;this.layer=i;this.start=o;this.options=a;this.sim=r,this.recording=s}world;type;layer;start;options;collisions=[];recording;sim;get startFrame(){return Math.max(0,Math.round(this.options.startFrame??0))}get gravityScale(){return this.options.gravityScale??1}get output(){return this.options.output}get x(){return this.recording.signal("x")}get y(){return this.recording.signal("y")}get z(){return this.recording.signal("z")}get rotateX(){return this.recording.signal("rotateX")}get rotateY(){return this.recording.signal("rotateY")}get rotateZ(){return this.recording.signal("rotateZ")}get vx(){return this.recording.signal("vx")}get vy(){return this.recording.signal("vy")}get vz(){return this.recording.signal("vz")}get speed(){return this.recording.signal("speed")}get impact(){return this.recording.signal("impact")}get sleeping(){return this.recording.signal("sleeping")}kinematicTarget(e){let r=this.options.follow;if(this.type!=="kinematic"||!r)return;let n=this.world.fps,i=(l,c)=>l===void 0?c:ze(l,e,n),o=this.start.position,a=this.start.rotation,s=this.world.pixelsPerMeter;return{position:[i(r.x,o[0])/s,i(r.y,o[1])/s,i(r.z,o[2])/s],rotation:Lc(i(r.rotateX,a[0]),i(r.rotateY,a[1]),i(r.rotateZ,a[2]))}}record(e,r){let n=this.world.pixelsPerMeter,i=this.recording,[o,a,s]=this.sim.position();i.channel("x")[e]=o*n,i.channel("y")[e]=a*n,i.channel("z")[e]=s*n;let l=i.channel("rotateX"),c=i.channel("rotateY"),m=i.channel("rotateZ"),d=r<0?this.start.rotation:[l[r],c[r],m[r]],p=xb(this.sim.rotation(),d);l[e]=p[0],c[e]=p[1],m[e]=p[2];let[f,b,g]=this.sim.velocity();i.channel("vx")[e]=f*n,i.channel("vy")[e]=b*n,i.channel("vz")[e]=g*n,i.channel("speed")[e]=Math.hypot(f,b,g)*n,i.channel("sleeping")[e]=this.sim.sleeping()?1:0}boundChannels(){let e=[["x","x"],["y","y"],["z","z"]];return this.options.lockRotation!==!0&&e.push(["rotateX","rotateX"],["rotateY","rotateY"],["rotateZ","rotateZ"]),e}localAnchor(e){if(!e)return[0,0,0];let r=this.world.pixelsPerMeter,n=this.sim.position(),[i,o,a,s]=this.sim.rotation(),l=[e[0]/r-n[0],e[1]/r-n[1],e[2]/r-n[2]];return wb(l,[-i,-o,-a,s])}center(){let e=this.world.pixelsPerMeter,[r,n,i]=this.sim.position();return[r*e,n*e,i*e]}};function wb(t,e){let r=ci(ci(e,[t[0],t[1],t[2],0]),[-e[0],-e[1],-e[2],e[3]]);return[r[0],r[1],r[2]]}var br=class extends fr{constructor(e,r){let n=r.pixelsPerMeter??100,i=r.gravity??2400,o=typeof i=="number"?[0,i/n,0]:[i[0]/n,i[1]/n,i[2]/n];super(e.createWorld3D(o),o,r)}body(e,r={}){this.assertOpen();let i=typeof e.kind=="string"?e:void 0,o=e,a=[ue(o.x,0),ue(o.y,0),ue(o.z,0)],s=[ue(o.rotateX,0),ue(o.rotateY,0),ue(o.rotateZ,0)],l=this.pixelsPerMeter,c=r.type??"dynamic",m=r.velocity??[0,0,0],d=r.angularVelocity??[0,0,0],p={type:c,position:[a[0]/l,a[1]/l,a[2]/l],rotation:Lc(s[0],s[1],s[2]),velocity:[m[0]/l,m[1]/l,m[2]/l],angularVelocity:[d[0]*xt,d[1]*xt,d[2]*xt],linearDamping:r.linearDamping??0,angularDamping:r.angularDamping??0,gravityScale:r.gravityScale??1,lockRotation:r.lockRotation===!0,...typeof r.lockRotation=="object"&&{enabledRotations:[!r.lockRotation.x,!r.lockRotation.y,!r.lockRotation.z]},ccd:r.ccd??!1,enabled:!0,sensor:r.sensor??!1,density:r.density??1,friction:r.friction??.6,restitution:r.restitution??.3,shape:kb(vb(o,r),1/l)},f=this.sim.addBody(p),b=new nn(this,f,c,i,{position:a,rotation:s},r,this.newRecording());return this.addBody(b)}ground(e){return this.body({x:0,y:e.y+2e3/2,z:0,width:1e6,height:2e3,depth:1e6},{type:"fixed",friction:e.friction,restitution:e.restitution??.2})}walls(e){let{width:r,height:n,depth:i}=e,[o,a,s]=[e.x??0,e.y??0,e.z??0],l=e.thickness??400,c={type:"fixed",friction:e.friction,restitution:e.restitution??.2},m=n*4,d=a+n/2-m/2;return[this.body({x:o,y:a+n/2+l/2,z:s,width:r+2*l,height:l,depth:i+2*l},c),this.body({x:o-r/2-l/2,y:d,z:s,width:l,height:m,depth:i+2*l},c),this.body({x:o+r/2+l/2,y:d,z:s,width:l,height:m,depth:i+2*l},c),this.body({x:o,y:d,z:s-i/2-l/2,width:r,height:m,depth:l},c),this.body({x:o,y:d,z:s+i/2+l/2,width:r,height:m,depth:l},c)]}pin(e,r){let n=r??e.center(),i=this.anchorBody(n);return this.joint(e,i,{type:"spherical",anchorA:e.localAnchor(n),anchorB:[0,0,0]}),this}hinge(e,r,n,i=[0,0,1]){return this.joint(e,r,{type:"revolute",anchorA:e.localAnchor(n),anchorB:r.localAnchor(n),axis:i}),this}weld(e,r){return this.joint(e,r,{type:"fixed",anchorA:[0,0,0],anchorB:r.localAnchor(e.center())}),this}spring(e,r,n={}){let{other:i,pa:o,pb:a}=this.endpoints(e,r,n.anchorA,n.anchorB),s=this.pixelsPerMeter,l=(n.length??Bc(o,a))/s,c=e.type==="dynamic"?e.sim.mass():0,m=i.type==="dynamic"?i.sim.mass():0,d=c>0&&m>0?c*m/(c+m):Math.max(c,m,.001),p=2*Math.PI*(n.frequency??2);return this.joint(e,i,{type:"spring",anchorA:e.localAnchor(o),anchorB:i.localAnchor(a),restLength:l,stiffness:d*p*p,damping:2*(n.dampingRatio??.2)*d*p}),this}rope(e,r,n={}){let{other:i,pa:o,pb:a}=this.endpoints(e,r,n.anchorA,n.anchorB);return this.joint(e,i,{type:"rope",anchorA:e.localAnchor(o),anchorB:i.localAnchor(a),length:(n.length??Bc(o,a))/this.pixelsPerMeter}),this}force(e,r){let n=this.pixelsPerMeter,i=(o,a)=>o===void 0?0:ze(o,a,this.fps)/n;return this.addForce(e,o=>[i(r.x,o),i(r.y,o),i(r.z,o)]),this}field(e,r={}){let n=this.pixelsPerMeter;return this.addField((i,o)=>{let[a,s,l]=i.sim.position(),[c,m,d]=i.sim.velocity(),p=e({x:a*n,y:s*n,z:l*n,vx:c*n,vy:m*n,vz:d*n,frame:o,body:i});return p?[p[0]/n,p[1]/n,p[2]/n]:null},r.bodies),this}impulse(e,r,n){let i=this.pixelsPerMeter;return this.addImpulse(e,r,[n[0]/i,n[1]/i,n[2]/i]),this}lerpRotation(e,r,n){let i=e[0]*r[0]+e[1]*r[1]+e[2]*r[2]+e[3]*r[3]<0?-1:1,o=e.map((s,l)=>s+(r[l]*i-s)*n),a=Math.hypot(...o)||1;return o.map(s=>s/a)}joint(e,r,n){this.assertOpen(),this.sim.addJoint(e.sim,r.sim,n)}anchorBody(e){return this.body({x:e[0],y:e[1],z:e[2],width:1,height:1,depth:1},{type:"fixed",output:"none",sensor:!0})}endpoints(e,r,n,i){let o=n??e.center();if(Array.isArray(r)){let a=i??r;return{other:this.anchorBody(a),pa:o,pb:a}}return{other:r,pa:o,pb:i??r.center()}}};function Bc(t,e){return Math.hypot(e[0]-t[0],e[1]-t[1],e[2]-t[2])}function ue(t,e){return typeof t=="number"&&Number.isFinite(t)?t:e}function vb(t,e){let r=typeof t.id=="string"?` "${t.id}"`:"",n=ue(t.scale,1),i=[n*ue(t.scaleX,1),n*ue(t.scaleY,1),n*ue(t.scaleZ,1)],o=i[0]===i[1]&&i[1]===i[2],a=t.primitive3d??{},s=e.shape??"auto",l=()=>{let g=Sb(t.modelData);if(g)return{kind:"hull",points:g.map((y,S)=>y*i[S%3])}};if(e.size||s==="box"){let[g,y,S]=e.size??Ba(t,a)??[0,0,0];if(g>0&&y>0&&S>0)return{kind:"box",hx:g*i[0]/2,hy:y*i[1]/2,hz:S*i[2]/2,radius:a.type==="roundedBox"?ue(a.radius,0)*Math.min(...i):0}}if(s==="hull"){let g=l();if(g)return g}if((s==="sphere"||s==="auto"&&a.type==="sphere")&&(o||s==="sphere")){let g=ue(a.radius,0)||Math.max(...Ba(t,a)??[0])/2;if(g>0)return{kind:"ball",radius:g*Math.max(...i)}}let m=ue(a.radiusTop,ue(a.radius,0)),d=ue(a.radiusBottom,ue(a.radius,0));if((s==="cylinder"||s==="auto"&&a.type==="cylinder")&&m===d&&m>0&&i[0]===i[2])return{kind:"cylinder",halfHeight:ue(a.height,0)*i[1]/2,radius:m*i[0]};if(s==="auto"&&a.type==="roundedBox"&&(a.taper??1)===1){let[g,y,S]=[ue(a.width,0),ue(a.height,0),ue(a.depth,0)];return{kind:"box",hx:g*i[0]/2,hy:y*i[1]/2,hz:S*i[2]/2,radius:ue(a.radius,0)*Math.min(...i)}}let f=l();if(f)return f;let b=Ba(t,a);if(b)return{kind:"box",hx:b[0]*i[0]/2,hy:b[1]*i[1]/2,hz:b[2]*i[2]/2};throw new Error(`Physics: layer${r} has no mesh or size to build a 3D collider from; pass \`size: [w, h, d]\`.`)}function Ba(t,e){if(e.type==="roundedBox")return[ue(e.width,0),ue(e.height,0),ue(e.depth,0)];if(e.type==="sphere"){let r=ue(e.radius,0)*2;return[r,r,r]}if(e.type==="cylinder"){let r=Math.max(ue(e.radiusTop,ue(e.radius,0)),ue(e.radiusBottom,ue(e.radius,0)))*2;return[r,ue(e.height,0),r]}if(typeof t.width=="number"&&typeof t.height=="number"&&typeof t.depth=="number")return[t.width,t.height,t.depth]}function Sb(t){let e=t?.meshes;if(!e?.length)return;let r=0;for(let a of e)r+=(a.positions?.length??0)/3;if(r<4)return;let n=Math.max(1,Math.floor(r/4096)),i=[],o=0;for(let a of e){let s=a.positions;if(s)for(let l=0;l<s.length;l+=3,o++)o%n===0&&i.push(s[l],s[l+1],s[l+2])}return i}function kb(t,e){switch(t.kind){case"ball":return{kind:"ball",radius:t.radius*e};case"box":return{kind:"box",hx:t.hx*e,hy:t.hy*e,hz:t.hz*e,radius:(t.radius??0)*e};case"cylinder":return{kind:"cylinder",halfHeight:t.halfHeight*e,radius:t.radius*e};case"hull":return{kind:"hull",points:t.points.map(r=>r*e)}}}var Pb={async world2d(t){return new gr(await Fa(2),t)},async world3d(t){return new br(await Fa(3),t)}};h();var ye=(...t)=>t,Tb={pixelArt:(t={})=>ye(new Ht({palette:t.palette??"pico8",pixelSize:t.pixelSize??6,dither:.4})),gameBoy:(t={})=>ye(new Ht({palette:"gameboy",pixelSize:t.pixelSize??4,dither:.6})),teletext:(t={})=>ye(new Ht({palette:"teletext",pixelSize:t.pixelSize??10})),ledWall:(t={})=>ye(new Gi({size:t.size??14,shape:"circle",gap:.18})),ascii:(t={})=>ye(new Bi({cellSize:t.cellSize??10,colorMode:t.matrix?"green":"source",bg:t.matrix?"#020a04":"#0b0b0b"})),oneBit:(t={})=>ye(new zi({mode:"bayer",scale:t.scale??2,dark:t.dark??"#111111",light:t.light??"#f2efe6"})),risograph:(t={})=>{let e=t.inkA??"#1d3fbb",r=t.inkB??"#ff5fa2",n=t.paper??"#f4efe4";return ye(new St({stops:[{position:0,color:e},{position:.55,color:r},{position:1,color:n}]}),new Ht({palette:"custom",colors:[e,r,n],dither:.8,pixelSize:2}),new Qe({strength:.2}))},cartoon:(t={})=>ye(new Sn({levels:t.levels??4,edgeColor:t.ink??"#111111",saturation:1.3})),comic:(t={})=>ye(new Sn({levels:4,edgeWidth:1.5,saturation:1.4}),new Cr({frequency:t.dotFrequency??70,opacity:.35})),thermal:()=>ye(new St({stops:[{position:0,color:"#000010"},{position:.25,color:"#3b0a7a"},{position:.5,color:"#c4205f"},{position:.75,color:"#ff9a1f"},{position:1,color:"#fffbe0"}]})),vhs:(t={})=>ye(new Mr({tracking:t.tracking??.5,chroma:4,curvature:.04,scanlines:.25,mask:.05,noise:.15}),new vn({amount:3})),crt:(t={})=>ye(new Mr({curvature:t.curvature??.15,scanlines:.5,mask:.35})),glitch:(t={})=>ye(new vn({amount:t.amount??18}),new Mr({tracking:1,chroma:6,curvature:0,scanlines:.1,mask:0,vignette:0})),oilPainting:(t={})=>ye(new wn({style:"oil",radius:t.brush??5})),watercolor:(t={})=>ye(new wn({style:"watercolor",radius:t.brush??6,paper:.5})),topographic:(t={})=>ye(new Ii({levels:t.levels??16,fill:"flat",lineColor:t.ink??"#5a3a1a",fillColor:t.paper??"#f3ead8"})),kaleidoscope:(t={})=>ye(new _i({segments:t.segments??8,rotation:t.rotation??0})),opArt:(t={})=>ye(new Ui({pattern:t.pattern??"stripes",frequency:t.frequency??60})),holographic:(t={})=>ye(new Vi({strength:t.strength??.7,shift:t.shift??0})),noir:()=>ye(new St({stops:[{position:0,color:"#000000"},{position:.55,color:"#8a8a8a"},{position:1,color:"#ffffff"}]}),new Qe({strength:.35}),new Yt({strength:.6})),film:()=>ye(new Qe({strength:.25}),new Yt({strength:.35}))};h();var Kc=vr(km(),1),hi=vr(Vm(),1);var Va=vr(Ic(),1);h();var on=G.dirname(hn(import.meta.url)),zc=["import","meta","url"].join("."),Mb=Si(import.meta.url),an="/@framefields/engine",_c={framefields:"index.ts","framefields/effects":"effects/index.ts","framefields/audio":"audio/index.ts","framefields/signals":"signals/index.ts","framefields/fonts":"fonts/index.ts"},La={path:"path","path/posix":"path",url:"url",os:"os",fs:"fs","fs/promises":"fs-promises",module:"module"},Vc=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"]),Cb=`
713
713
  const stub = () => new Proxy(function () {}, {
714
714
  get: (_t, k) => (k === "__esModule" ? true : k === Symbol.toPrimitive ? () => "" : stub()),
715
715
  apply: () => stub(),
716
716
  construct: () => stub(),
717
717
  });
718
718
  module.exports = stub();
719
- `;async function Zg(t){let{build:e}=await import("./esbuild-GWV7CM7D.mjs"),r=j.resolve(tn,".."),n=j.join(tn,"shims"),i={player:j.join(tn,"player.ts")};for(let[o,a]of Object.entries(Tc))i[Rc(o)]=j.join(r,a);for(let o of new Set(Object.values(Da)))i[`shims/${o}`]=j.join(n,`${o}.ts`);await ge.promises.rm(t,{recursive:!0,force:!0}),await e({...Nc,entryPoints:i,outdir:t,outExtension:{".js":".mjs"},splitting:!0,minify:!0,conditions:["development","browser","import"],define:{"process.env.NODE_ENV":'"production"',global:"globalThis"},inject:[j.join(n,"process.ts")],plugins:[{name:"framefields-engine",setup(o){o.onResolve({filter:/^framefields-preview:renderers$/},()=>({path:eb()})),Fc(o,a=>({path:j.join(n,`${a}.ts`)}))}}]})}async function Cc(t){let{build:e}=await import("./esbuild-GWV7CM7D.mjs"),r=j.resolve(t.entry),n=s=>({path:`${rn}/${s}.mjs`,external:!0}),i={modelsDir:t.modelsDir,ortBase:t.ortBase},o=await e({...Nc,entryPoints:["framefields-preview:entry"],write:!1,metafile:!0,sourcemap:"inline",plugins:[{name:"framefields-project",setup(s){s.onResolve({filter:/^framefields-preview:entry$/},()=>({path:"entry",namespace:"framefields-preview"})),s.onLoad({filter:/.*/,namespace:"framefields-preview"},()=>({contents:[`import { startPlayer } from ${JSON.stringify(`${rn}/player.mjs`)};`,`import * as mod from ${JSON.stringify(r)};`,`startPlayer(mod, ${JSON.stringify(t.exportName)}, ${JSON.stringify(i)});`].join(`
720
- `),resolveDir:j.dirname(r),loader:"js"})),s.onResolve({filter:/^\/@framefields\/engine\//},l=>({path:l.path,external:!0})),s.onResolve({filter:/^framefields(\/|$)/},l=>Tc[l.path]?n(Rc(l.path)):void 0),Fc(s,l=>n(`shims/${l}`)),Jg(s)}}]}),a=Object.keys(o.metafile?.inputs??{}).filter(s=>!s.includes(":")&&!s.includes("node_modules")).map(s=>j.resolve(s));return{code:o.outputFiles[0].text,inputs:a}}var ci;function Kg(t){return[t,j.join(t,"..")].map(e=>j.join(e,"preview-engine")).find(e=>ge.existsSync(j.join(e,"player.mjs")))}function Ac(){let t=Kg(tn);return t?Promise.resolve(t):(ci??=(async()=>{let e=j.join(gi.tmpdir(),`framefields-preview-engine-${v.pid}`);return await Zg(e),e})(),ci.catch(()=>{ci=void 0}),ci)}function Dc(){return v.env.FRAMEFIELDS_MODELS_DIR?j.resolve(v.env.FRAMEFIELDS_MODELS_DIR):j.join(gi.homedir(),".cache","framefields","models")}var Qg="1.30.0";function Oc(t){for(let e of[t,tn])try{let r=yi(j.join(e,"noop.js")).resolve("onnxruntime-web"),n=j.dirname(r);return{base:`/@fs${n}/`,dir:n}}catch{}return{base:`https://cdn.jsdelivr.net/npm/onnxruntime-web@${Qg}/dist/`}}var Nc={bundle:!0,format:"esm",platform:"browser",target:"es2022",mainFields:["browser","module","main"],logLevel:"silent"};function Rc(t){return t==="framefields"?"framefields":t.slice(12)}function Fc(t,e){t.onResolve({filter:/^(node:)?[a-z_/]+$/},r=>{let n=r.path.replace(/^node:/,"");if(Da[n])return e(Da[n]);if(r.path.startsWith("node:")||Za(n))return{path:n,namespace:"framefields-stub"}}),t.onResolve({filter:/.*/},r=>{let n=tb(r.path);if(n&&(Mc.has(n)||Mc.has(r.path)))return{path:r.path,namespace:"framefields-stub"}}),t.onLoad({filter:/.*/,namespace:"framefields-stub"},()=>({contents:qg,loader:"js"}))}function Jg(t){t.onLoad({filter:/\.[cm]?[jt]sx?$/},async e=>{if(e.path.includes(`${j.sep}node_modules${j.sep}`))return;let r=await ge.promises.readFile(e.path,"utf8");if(r.includes(Pc))return{contents:`const __framefieldsFileUrl = ${JSON.stringify(pn(e.path).href)};
721
- ${r.replaceAll(Pc,"__framefieldsFileUrl")}`,loader:rb(e.path)}})}function eb(){let t=Xg.resolve("@framefields/renderer"),e=j.join(j.dirname(t),"..","src","generated","node-renderers.ts");if(!ge.existsSync(e))throw new Error(`[framefields] node renderer list not found at ${e}`);return e}function tb(t){if(t.startsWith(".")||t.startsWith("/"))return;let e=t.split("/");return t.startsWith("@")?e.slice(0,2).join("/"):e[0]}function rb(t){return t.endsWith(".tsx")?"tsx":t.endsWith(".jsx")?"jsx":/\.[cm]?ts$/.test(t)?"ts":"js"}h();var mi=class{constructor(e){this.dir=e;this.file=j.join(e,"notes.json")}dir;file;async list(){try{let e=JSON.parse(await ge.promises.readFile(this.file,"utf8"));return Array.isArray(e)?e:[]}catch{return[]}}async add(e){let r=await this.list(),n=r.reduce((a,s)=>Math.max(a,s.id),0)+1,i={id:n,frame:Math.max(0,Math.round(Number(e.frame)||0)),time:nn(Number(e.time)||0,3),x:nn(di(e.x),4),y:nn(di(e.y),4),...e.w!==void 0&&e.h!==void 0&&{w:nn(di(e.w),4),h:nn(di(e.h),4)},text:String(e.text??"").trim(),done:!1,created:new Date().toISOString()};await this.ensureDir();let o=/^data:image\/jpeg;base64,(.+)$/.exec(e.image??"");return o&&(i.image=j.join(this.dir,`note-${n}.jpg`),await ge.promises.writeFile(i.image,Buffer.from(o[1],"base64"))),await this.save([...r,i]),i}async update(e,r){let n=await this.list(),i=n.find(o=>o.id===e);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(e){let r=await this.list(),n=r.find(i=>i.id===e);if(n)return n.image&&await ge.promises.rm(n.image,{force:!0}),await this.save(r.filter(i=>i!==n)),n}async save(e){await this.ensureDir();let r=`${this.file}.${v.pid}.tmp`;await ge.promises.writeFile(r,`${JSON.stringify(e,null," ")}
722
- `),await ge.promises.rename(r,this.file)}async ensureDir(){await ge.promises.mkdir(this.dir,{recursive:!0});let e=j.join(j.dirname(this.dir),".gitignore");ge.existsSync(e)||await ge.promises.writeFile(e,`*
723
- `)}};function Bc(t,e){let r=i=>`${Math.round(i*100)}%`,n=t.w!==void 0&&t.h!==void 0?`area ${r(t.x)},${r(t.y)} to ${r(t.x+t.w)},${r(t.y+t.h)}`:`spot ${r(t.x)},${r(t.y)}`;return`note ${t.id} at ${nb(t.frame,e)} (frame ${t.frame}), ${n}: ${t.text}`}function nb(t,e){let r=t/e,n=Math.floor(r/60);return`${n}:${(r-n*60).toFixed(2).padStart(5,"0")}`}function di(t){let e=Number(t);return Number.isFinite(e)?Math.min(1,Math.max(0,e)):0}function nn(t,e){return Number(t.toFixed(e))}h();var Lc=`<!doctype html>
719
+ `;async function Ab(t){let{build:e}=await import("./esbuild-GWV7CM7D.mjs"),r=G.resolve(on,".."),n=G.join(on,"shims"),i={player:G.join(on,"player.ts")};for(let[o,a]of Object.entries(_c))i[Hc(o)]=G.join(r,a);for(let o of new Set(Object.values(La)))i[`shims/${o}`]=G.join(n,`${o}.ts`);await be.promises.rm(t,{recursive:!0,force:!0}),await e({...Wc,entryPoints:i,outdir:t,outExtension:{".js":".mjs"},splitting:!0,minify:!0,conditions:["development","browser","import"],define:{"process.env.NODE_ENV":'"production"',global:"globalThis"},inject:[G.join(n,"process.ts")],plugins:[{name:"framefields-engine",setup(o){o.onResolve({filter:/^framefields-preview:renderers$/},()=>({path:Rb()})),Yc(o,a=>({path:G.join(n,`${a}.ts`)}))}}]})}async function jc(t){let{build:e}=await import("./esbuild-GWV7CM7D.mjs"),r=G.resolve(t.entry),n=s=>({path:`${an}/${s}.mjs`,external:!0}),i={modelsDir:t.modelsDir,ortBase:t.ortBase},o=await e({...Wc,entryPoints:["framefields-preview:entry"],write:!1,metafile:!0,sourcemap:"inline",plugins:[{name:"framefields-project",setup(s){s.onResolve({filter:/^framefields-preview:entry$/},()=>({path:"entry",namespace:"framefields-preview"})),s.onLoad({filter:/.*/,namespace:"framefields-preview"},()=>({contents:[`import { startPlayer } from ${JSON.stringify(`${an}/player.mjs`)};`,`import * as mod from ${JSON.stringify(r)};`,`startPlayer(mod, ${JSON.stringify(t.exportName)}, ${JSON.stringify(i)});`].join(`
720
+ `),resolveDir:G.dirname(r),loader:"js"})),s.onResolve({filter:/^\/@framefields\/engine\//},l=>({path:l.path,external:!0})),s.onResolve({filter:/^framefields(\/|$)/},l=>_c[l.path]?n(Hc(l.path)):void 0),Yc(s,l=>n(`shims/${l}`)),Ob(s)}}]}),a=Object.keys(o.metafile?.inputs??{}).filter(s=>!s.includes(":")&&!s.includes("node_modules")).map(s=>G.resolve(s));return{code:o.outputFiles[0].text,inputs:a}}var mi;function Db(t){return[t,G.join(t,"..")].map(e=>G.join(e,"preview-engine")).find(e=>be.existsSync(G.join(e,"player.mjs")))}function Uc(){let t=Db(on);return t?Promise.resolve(t):(mi??=(async()=>{let e=G.join(wi.tmpdir(),`framefields-preview-engine-${w.pid}`);return await Ab(e),e})(),mi.catch(()=>{mi=void 0}),mi)}function Gc(){return w.env.FRAMEFIELDS_MODELS_DIR?G.resolve(w.env.FRAMEFIELDS_MODELS_DIR):G.join(wi.homedir(),".cache","framefields","models")}var Nb="1.30.0";function $c(t){for(let e of[t,on])try{let r=Si(G.join(e,"noop.js")).resolve("onnxruntime-web"),n=G.dirname(r);return{base:`/@fs${n}/`,dir:n}}catch{}return{base:`https://cdn.jsdelivr.net/npm/onnxruntime-web@${Nb}/dist/`}}var Wc={bundle:!0,format:"esm",platform:"browser",target:"es2022",mainFields:["browser","module","main"],logLevel:"silent"};function Hc(t){return t==="framefields"?"framefields":t.slice(12)}function Yc(t,e){t.onResolve({filter:/^(node:)?[a-z_/]+$/},r=>{let n=r.path.replace(/^node:/,"");if(La[n])return e(La[n]);if(r.path.startsWith("node:")||us(n))return{path:n,namespace:"framefields-stub"}}),t.onResolve({filter:/.*/},r=>{let n=Fb(r.path);if(n&&(Vc.has(n)||Vc.has(r.path)))return{path:r.path,namespace:"framefields-stub"}}),t.onLoad({filter:/.*/,namespace:"framefields-stub"},()=>({contents:Cb,loader:"js"}))}function Ob(t){t.onLoad({filter:/\.[cm]?[jt]sx?$/},async e=>{if(e.path.includes(`${G.sep}node_modules${G.sep}`))return;let r=await be.promises.readFile(e.path,"utf8");if(r.includes(zc))return{contents:`const __framefieldsFileUrl = ${JSON.stringify(gn(e.path).href)};
721
+ ${r.replaceAll(zc,"__framefieldsFileUrl")}`,loader:Bb(e.path)}})}function Rb(){let t=Mb.resolve("@framefields/renderer"),e=G.join(G.dirname(t),"..","src","generated","node-renderers.ts");if(!be.existsSync(e))throw new Error(`[framefields] node renderer list not found at ${e}`);return e}function Fb(t){if(t.startsWith(".")||t.startsWith("/"))return;let e=t.split("/");return t.startsWith("@")?e.slice(0,2).join("/"):e[0]}function Bb(t){return t.endsWith(".tsx")?"tsx":t.endsWith(".jsx")?"jsx":/\.[cm]?ts$/.test(t)?"ts":"js"}h();var fi=class{constructor(e){this.dir=e;this.file=G.join(e,"notes.json")}dir;file;async list(){try{let e=JSON.parse(await be.promises.readFile(this.file,"utf8"));return Array.isArray(e)?e:[]}catch{return[]}}async add(e){let r=await this.list(),n=r.reduce((a,s)=>Math.max(a,s.id),0)+1,i={id:n,frame:Math.max(0,Math.round(Number(e.frame)||0)),time:sn(Number(e.time)||0,3),x:sn(pi(e.x),4),y:sn(pi(e.y),4),...e.w!==void 0&&e.h!==void 0&&{w:sn(pi(e.w),4),h:sn(pi(e.h),4)},text:String(e.text??"").trim(),done:!1,created:new Date().toISOString()};await this.ensureDir();let o=/^data:image\/jpeg;base64,(.+)$/.exec(e.image??"");return o&&(i.image=G.join(this.dir,`note-${n}.jpg`),await be.promises.writeFile(i.image,Buffer.from(o[1],"base64"))),await this.save([...r,i]),i}async update(e,r){let n=await this.list(),i=n.find(o=>o.id===e);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(e){let r=await this.list(),n=r.find(i=>i.id===e);if(n)return n.image&&await be.promises.rm(n.image,{force:!0}),await this.save(r.filter(i=>i!==n)),n}async save(e){await this.ensureDir();let r=`${this.file}.${w.pid}.tmp`;await be.promises.writeFile(r,`${JSON.stringify(e,null," ")}
722
+ `),await be.promises.rename(r,this.file)}async ensureDir(){await be.promises.mkdir(this.dir,{recursive:!0});let e=G.join(G.dirname(this.dir),".gitignore");be.existsSync(e)||await be.promises.writeFile(e,`*
723
+ `)}};function Xc(t,e){let r=i=>`${Math.round(i*100)}%`,n=t.w!==void 0&&t.h!==void 0?`area ${r(t.x)},${r(t.y)} to ${r(t.x+t.w)},${r(t.y+t.h)}`:`spot ${r(t.x)},${r(t.y)}`;return`note ${t.id} at ${Lb(t.frame,e)} (frame ${t.frame}), ${n}: ${t.text}`}function Lb(t,e){let r=t/e,n=Math.floor(r/60);return`${n}:${(r-n*60).toFixed(2).padStart(5,"0")}`}function pi(t){let e=Number(t);return Number.isFinite(e)?Math.min(1,Math.max(0,e)):0}function sn(t,e){return Number(t.toFixed(e))}h();var qc=`<!doctype html>
724
724
  <html lang="en">
725
725
  <head>
726
726
  <meta charset="utf-8">
@@ -1958,14 +1958,16 @@ ${r.replaceAll(Pc,"__framefieldsFileUrl")}`,loader:rb(e.path)}})}function eb(){l
1958
1958
  <script type="module" src="/@framefields/player.js"><\/script>
1959
1959
  </body>
1960
1960
  </html>
1961
- `;var ib=1200,Vc="x-framefields-preview",ob="/@framefields/player.js";async function ab(t,e={}){let r=t.entry instanceof URL||String(t.entry).startsWith("file:")?mn(t.entry):j.resolve(String(t.entry)),n=t.export??"default",i=Dc(),o=Oc(j.dirname(r)),a=[...e.root===void 0?[ub(j.dirname(r))]:Array.isArray(e.root)?e.root:[e.root],i,o.dir].filter(B=>!!B).map(B=>j.resolve(B)),s=new Set,l=e.idleCloseMs??5e3,c,m=e.title??"framefields preview",d=(0,pi.randomUUID)(),p=e.log===!1?()=>{}:e.log??(B=>console.error(B)),f=B=>p(`[framefields preview] ${B}`),b=new Set,g=!1,y=e.notesDir===!1?void 0:new mi(j.resolve(e.notesDir??j.join(v.cwd(),".framefields","preview-notes"))),k=Promise.resolve(),A=await sb(r,n),T=await mb(A,m,d,y?.dir??null),w,S=()=>{if(!w){let B=Cc({entry:r,exportName:n,modelsDir:i,ortBase:o.base}).then(I=>I.code);w=B,B.catch(I=>{f(`could not build ${j.relative(v.cwd(),r)}:
1962
- ${cb(I)}`),w===B&&(w=void 0)})}return w},x=Ac();x.catch(()=>{});let O={state:e.audio===!1?"none":"mixing"},R;function _(B,I){for(let G of s)G.write(`event: ${B}
1963
- data: ${JSON.stringify(I)}
1961
+ `;var Eb=1200,Qc="x-framefields-preview",Ib="/@framefields/player.js";async function zb(t,e={}){let r=t.entry instanceof URL||String(t.entry).startsWith("file:")?hn(t.entry):G.resolve(String(t.entry)),n=t.export??"default",i=Gc(),o=$c(G.dirname(r)),a=[...e.root===void 0?[_b(G.dirname(r))]:Array.isArray(e.root)?e.root:[e.root],i,o.dir].filter(L=>!!L).map(L=>G.resolve(L)),s=new Set,l=e.idleCloseMs??5e3,c,m=e.title??"framefields preview",d=(0,hi.randomUUID)(),p=e.log===!1?()=>{}:e.log??(L=>console.error(L)),f=L=>p(`[framefields preview] ${L}`),b=new Set,g=!1,y=e.notesDir===!1?void 0:new fi(G.resolve(e.notesDir??G.join(w.cwd(),".framefields","preview-notes"))),S=Promise.resolve(),A=await Vb(r,n),T=await $b(A,m,d,y?.dir??null),v,C=()=>{if(!v){let L=jc({entry:r,exportName:n,modelsDir:i,ortBase:o.base}).then(V=>V.code);v=L,L.catch(V=>{f(`could not build ${G.relative(w.cwd(),r)}:
1962
+ ${Ub(V)}`),v===L&&(v=void 0)})}return v},x=Uc();x.catch(()=>{});let M={state:e.audio===!1?"none":"mixing"},O;function _(L,V){for(let W of s)W.write(`event: ${L}
1963
+ data: ${JSON.stringify(V)}
1964
1964
 
1965
- `)}function H(B){O=B,_("audio",O)}function ee(){if(O.state!=="mixing")return;if(!A.toVirtualMediaAsync&&!A.toVirtualMedia){H({state:"none"});return}let B=e.renderer??new ve.HeadlessMediaRenderer;(async()=>{let I=A.toVirtualMediaAsync?await A.toVirtualMediaAsync():A.toVirtualMedia();return B.renderAudio(I,{fps:T.fps})})().then(({channels:I,sampleRate:G})=>{let Z=I[0]??new Float32Array(0),$=I[1]??Z,J=hb(Z,$,ib);if(Z.length===0||Math.max(...J)<.001){H({state:"none"});return}R=Di([Z,$],{sampleRate:G}),H({state:"ready",durationSec:Z.length/G,peaks:J.map(N=>Math.round(N*1e3)/1e3)})},I=>{H({state:"error",error:I instanceof Error?I.message:String(I)})})}let E,P=new Promise(B=>{E=B}),M;function Y(B="closed"){return M??=new Promise(I=>{clearTimeout(c),B==="idle"&&f("stopped: its tab was closed"),B==="replaced"&&f("stopped: a newer preview took over");for(let G of s)G.end();s.clear(),X.close(()=>{I(),E(B)}),X.closeAllConnections()}),M}let X=Fa.default.createServer(async(B,I)=>{let G=new URL(B.url??"/","http://localhost");I.setHeader("cross-origin-opener-policy","same-origin"),I.setHeader("cross-origin-embedder-policy","credentialless");try{if(B.method==="GET"&&G.pathname==="/"){I.writeHead(200,{"content-type":"text/html; charset=utf-8","cache-control":"no-store"}),I.end(Lc);return}if(B.method==="GET"&&G.pathname==="/meta"){nt(I,200,{...T,audio:O});return}if(B.method==="GET"&&G.pathname.startsWith(`${rn}/`)){let $=await x,J=j.resolve($,`.${G.pathname.slice(rn.length)}`);if(Oa($,J)&&await Na(J)){await Ra(B,I,J);return}nt(I,404,{error:"not found"});return}if(B.method==="GET"&&G.pathname===ob){let $;try{await x,$=await S()}catch(J){let N=J instanceof Error?J.message:String(J);$=`throw new Error(${JSON.stringify(`Could not build the preview:
1966
- ${N}`)});`}I.writeHead(200,{"content-type":"text/javascript; charset=utf-8","cache-control":"no-store"}),I.end($);return}if(B.method==="GET"&&G.pathname==="/@framefields/stat"){let $=j.resolve(G.searchParams.get("path")??""),J=-1;a.some(N=>Oa(N,$))&&(J=await ge.promises.stat($).then(N=>N.isFile()?N.size:-1,()=>-1)),nt(I,200,{exists:J>=0,size:Math.max(0,J)});return}if(B.method==="GET"&&G.pathname==="/events"){I.writeHead(200,{"content-type":"text/event-stream","cache-control":"no-store",connection:"keep-alive"}),I.write(`retry: 1000
1967
- `),I.write(`event: hello
1965
+ `)}function $(L){M=L,_("audio",M)}function I(){if(M.state!=="mixing")return;if(!A.toVirtualMediaAsync&&!A.toVirtualMedia){$({state:"none"});return}let L=e.renderer??new ve.HeadlessMediaRenderer;(async()=>{let V=A.toVirtualMediaAsync?await A.toVirtualMediaAsync():A.toVirtualMedia();return L.renderAudio(V,{fps:T.fps})})().then(({channels:V,sampleRate:W})=>{let K=V[0]??new Float32Array(0),X=V[1]??K,te=Yb(K,X,Eb);if(K.length===0||Math.max(...te)<.001){$({state:"none"});return}O=Fi([K,X],{sampleRate:W}),$({state:"ready",durationSec:K.length/W,peaks:te.map(R=>Math.round(R*1e3)/1e3)})},V=>{$({state:"error",error:V instanceof Error?V.message:String(V)})})}let F,k=new Promise(L=>{F=L}),P;function H(L="closed"){return P??=new Promise(V=>{clearTimeout(c),L==="idle"&&f("stopped: its tab was closed"),L==="replaced"&&f("stopped: a newer preview took over");for(let W of s)W.end();s.clear(),Y.close(()=>{V(),F(L)}),Y.closeAllConnections()}),P}let Y=Va.default.createServer(async(L,V)=>{let W=new URL(L.url??"/","http://localhost");V.setHeader("cross-origin-opener-policy","same-origin"),V.setHeader("cross-origin-embedder-policy","credentialless");try{if(L.method==="GET"&&W.pathname==="/"){V.writeHead(200,{"content-type":"text/html; charset=utf-8","cache-control":"no-store"}),V.end(qc);return}if(L.method==="GET"&&W.pathname==="/meta"){ot(V,200,{...T,audio:M});return}if(L.method==="GET"&&W.pathname.startsWith(`${an}/`)){let X=await x,te=G.resolve(X,`.${W.pathname.slice(an.length)}`);if(Ea(X,te)&&await Ia(te)){await za(L,V,te);return}ot(V,404,{error:"not found"});return}if(L.method==="GET"&&W.pathname===Ib){let X;try{await x,X=await C()}catch(te){let R=te instanceof Error?te.message:String(te);X=`throw new Error(${JSON.stringify(`Could not build the preview:
1966
+ ${R}`)});`}V.writeHead(200,{"content-type":"text/javascript; charset=utf-8","cache-control":"no-store"}),V.end(X);return}if(L.method==="GET"&&W.pathname==="/@framefields/stat"){let X=G.resolve(W.searchParams.get("path")??""),te=-1;a.some(R=>Ea(R,X))&&(te=await be.promises.stat(X).then(R=>R.isFile()?R.size:-1,()=>-1)),ot(V,200,{exists:te>=0,size:Math.max(0,te)});return}if(L.method==="GET"&&W.pathname==="/events"){V.writeHead(200,{"content-type":"text/event-stream","cache-control":"no-store",connection:"keep-alive"}),V.write(`retry: 1000
1967
+ `),V.write(`event: hello
1968
1968
  data: ${JSON.stringify({session:T.session})}
1969
1969
 
1970
- `),s.add(I),clearTimeout(c),g||(g=!0,f(l===!1?"page opened":`page opened; the server stops ${Number((l/1e3).toFixed(1))} s after its last tab closes`)),z?.(),B.on("close",()=>{s.delete(I),s.size===0&&l!==!1&&!M&&(c=setTimeout(()=>{s.size===0&&Y("idle")},l))});return}if(B.method==="POST"&&G.pathname==="/takeover"&&B.headers[Vc]==="1"){nt(I,200,{ok:!0}),setImmediate(()=>{Y("replaced")});return}if(B.method==="POST"&&G.pathname==="/@framefields/log"&&B.headers["content-type"]==="application/json"){let $=await Ec(B,16384),{message:J,level:N}=JSON.parse($),F=String(J??"").trim();F&&!b.has(F)&&b.size<200&&(b.add(F),f(`${N==="warning"?"warning":"error"} in the page: ${F}`)),I.writeHead(204).end();return}if(y&&G.pathname==="/@framefields/notes"){if(B.method==="GET"){nt(I,200,await y.list());return}if(B.method==="POST"&&B.headers["content-type"]==="application/json"){let $=JSON.parse(await Ec(B,16777216)),J=k.then(()=>lb(y,$,T.fps,f));k=J.catch(()=>{});let N=await J;_("notes",await y.list()),nt(I,N?200:404,N??{error:"no such note"});return}}if(B.method==="GET"&&G.pathname==="/audio"){if(O.state!=="ready"||!R){nt(I,404,{error:`audio is ${O.state}`});return}I.writeHead(200,{"content-type":"audio/wav","content-length":R.length,"cache-control":"no-store"}),I.end(R);return}let Z=/^\/assets\/fonts\/([^/]+)$/.exec(G.pathname);if(Z&&(B.method==="GET"||B.method==="HEAD")){let $=j.join(v.cwd(),"assets","fonts",decodeURIComponent(Z[1]));if(await Na($)){await Ra(B,I,$);return}}if(B.method==="GET"||B.method==="HEAD"){let $=j.resolve(decodeURIComponent(G.pathname.replace(/^\/@fs(?=\/)/,"")));if(a.some(J=>Oa(J,$))&&await Na($)){await Ra(B,I,$);return}}nt(I,404,{error:"not found"})}catch(Z){I.headersSent?I.end():nt(I,500,{error:Z instanceof Error?Z.message:String(Z)})}}),z,U=e.host??"127.0.0.1",ne=e.port??pb(),ce=B=>new Promise((I,G)=>{let Z=J=>{X.off("listening",$),G(J)},$=()=>{X.off("error",Z),I()};X.once("error",Z),X.once("listening",$),X.listen(B,U)});try{await ce(ne)}catch(B){if(B.code!=="EADDRINUSE")throw B;if(await fb(U,ne))await ce(ne).catch(()=>ce(0));else if(e.port===void 0)await ce(0);else throw B}let{port:we}=X.address(),me=`http://${U.includes(":")?`[${U}]`:U}:${we}/`;if(S().catch(()=>{}),ee(),e.open===!0){let B=await new Promise(I=>{let G=setTimeout(()=>I(!1),2e3);z=()=>{clearTimeout(G),I(!0)},s.size>0&&z()});z=void 0,B||gb(me)}return{url:me,closed:P,close:()=>Y()}}async function sb(t,e){let n=(await import(pn(t).href))[e];if(n===void 0)throw new Error(`[framefields] ${t} has no export named "${e}" to preview.`);return typeof n=="function"?await n():n}function ub(t){let e;for(let r=t;;r=j.dirname(r)){if(ge.existsSync(j.join(r,".git")))return r;if(!e&&ge.existsSync(j.join(r,"package.json"))&&(e=r),j.dirname(r)===r)return e??t}}async function lb(t,e,r,n){if(e.op==="add"&&e.note&&String(e.note.text).trim()){let o=await t.add(e.note),a=[o.image&&`frame with the spot marked: ${o.image}`,`all notes: ${t.file}`];return n(`${Bc(o,r)}
1971
- ${a.filter(Boolean).join(" \xB7 ")}`),o}let i=Number(e.id);if(e.op==="update"){let o=await t.update(i,e);return o&&typeof e.done=="boolean"&&n(`note ${i} marked ${o.done?"done":"open"}`),o}if(e.op==="remove"){let o=await t.remove(i);return o&&n(`note ${i} deleted`),o}}function cb(t){return t instanceof Error?t.message:String(t)}function Ec(t,e){return new Promise((r,n)=>{let i="";t.setEncoding("utf8"),t.on("data",o=>{i+=o,i.length>e&&(n(new Error("request body too large")),t.destroy())}),t.on("end",()=>r(i)),t.on("error",n)})}function Oa(t,e){let r=j.relative(t,e);return!!r&&!r.startsWith("..")&&!j.isAbsolute(r)}async function Na(t){try{return(await ge.promises.stat(t)).isFile()}catch{return!1}}var db={".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(t,e,r){let{size:n}=await ge.promises.stat(r),i=db[j.extname(r).toLowerCase()]??"application/octet-stream",o=/^bytes=(\d*)-(\d*)$/.exec(t.headers.range??""),a=0,s=n-1;if(o&&(o[1]||o[2])&&(o[1]?(a=Number(o[1]),o[2]&&(s=Math.min(s,Number(o[2])))):a=Math.max(0,n-Number(o[2])),a>s||a>=n)){e.writeHead(416,{"content-range":`bytes */${n}`}),e.end();return}if(e.writeHead(o?206:200,{"content-type":i,"content-length":s-a+1,"accept-ranges":"bytes","cache-control":"no-cache",...o&&{"content-range":`bytes ${a}-${s}/${n}`}}),t.method==="HEAD"){e.end();return}ge.createReadStream(r,{start:a,end:s}).pipe(e)}async function mb(t,e,r,n){let i=t.fps??24,o=t.durationMs??await t.computeDuration?.()??5e3;return{session:r,notesDir:n,title:e,fps:i,frameCount:Math.max(1,Math.round(o/1e3*i)),width:t.width??1920,height:t.height??1080}}function pb(){return 41e3+(0,pi.createHash)("sha1").update(v.cwd()).digest().readUInt16BE(0)%900}async function fb(t,e){let r=await new Promise(n=>{let i=Fa.default.request({host:t,port:e,method:"POST",path:"/takeover",agent:!1,headers:{[Vc]:"1"},timeout:1500},o=>{o.resume(),n(o.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 hb(t,e,r){let n=new Array(r).fill(0);if(t.length===0)return n;let i=t.length/r;for(let o=0;o<r;o++){let a=Math.floor(o*i),s=Math.min(t.length,Math.floor((o+1)*i)),l=0;for(let c=a;c<s;c++){let m=Math.max(Math.abs(t[c]??0),Math.abs(e[c]??0));m>l&&(l=m)}n[o]=Math.min(1,l)}return n}function nt(t,e,r){t.writeHead(e,{"content-type":"application/json","cache-control":"no-store"}),t.end(JSON.stringify(r))}function gb(t){let[e,r]=v.platform==="darwin"?["open",[t]]:v.platform==="win32"?["cmd",["/c","start","",t]]:["xdg-open",[t]];try{(0,Ic.spawn)(e,r,{stdio:"ignore",detached:!0}).on("error",()=>{}).unref()}catch{}}function Ba(t,e){return t&&(e&&!t.source&&Object.defineProperty(t,"source",{value:e,enumerable:!0,writable:!0,configurable:!0}),typeof t.section!="function"&&Object.defineProperty(t,"section",{value:(r,n)=>{if(typeof r=="object"&&r!==null&&!("kind"in r)&&!("inputHandleId"in r)&&!("src"in r)){let o=r.source??t.source??e;return L.section(o,t,r)}let i=r??t.source??e;return L.section(i,t,n)},enumerable:!1,writable:!0,configurable:!0}),typeof t.blurEffect!="function"&&Object.defineProperty(t,"blurEffect",{value:r=>new yt({track:t,...r}),enumerable:!1,writable:!0,configurable:!0}),typeof t.isolate!="function"&&Object.defineProperty(t,"isolate",{value:(r,n)=>L.section(r,t,n),enumerable:!1,writable:!0,configurable:!0}),t)}var bb=kr.attach;kr.attach=function(t,e,r){let n=bb.call(this,t,e,r);if(n?.objects){let i=t,o=n.objects.get.bind(n.objects);n.objects.get=s=>Ba(o(s),i);let a=n.objects.byCategory.bind(n.objects);n.objects.byCategory=(s,l)=>Ba(a(s,l),i),n.objects.primary&&Ba(n.objects.primary,i)}return n};var zc=class t{virtualMedia;constructor(e,r="Video"){this.virtualMedia=Wa(e,r)}static video(e,r){let n=new t(e,"Video");return r&&Object.assign(n.virtualMedia.metadata,r),n}static image(e,r){let n=new t(e,"Image");return r&&Object.assign(n.virtualMedia.metadata,r),n}static lottie(e,r){let n=new t(e,"Lottie");return r&&Object.assign(n.virtualMedia.metadata,r),n}static audio(e,r){let n=new t(e,"Audio");return r&&Object.assign(n.virtualMedia.metadata,r),n}apply(e,r={}){let n;e instanceof yb||typeof e=="object"&&e!==null&&"op"in e?n=e.toOperation():n={op:e,...r};let i=Ha(this.virtualMedia,{...n,dataType:this.virtualMedia.operation.dataType});return new t(i)}toVirtualMedia(){return this.virtualMedia}async renderFrame(e={}){return(e.renderer??new ve.HeadlessMediaRenderer).renderFrame(this.virtualMedia,e)}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(e={}){return Kr(this,e)}async renderVideo(e={},r={}){let n=typeof e=="string"?{...r,outputPath:e}:e,o=await(n.renderer??new ve.HeadlessMediaRenderer).renderVideo(this.virtualMedia,n);return _c(o,n.outputPath)}};async function _c(t,e){if(!e)return t;let r=j.resolve(e);return await wr.mkdir(j.dirname(r),{recursive:!0}),await wr.copyFile(t.filePath,r),await t.cleanup(),{...t,filePath:r,cleanup:async()=>{}}}var Uc=class t{width;height;fps;durationMs;backgroundColor;antialias3d;fonts;children=[];audioTracks=[];signals={};_frameHooks=[];_prepareHooks=[];_clipVision=new Map;_visionConfig;_visionBundle;_effects=[];apply(e){return e instanceof st?(this.withVision(e),this):(this._effects.push(e),this)}withVision(e={}){this._visionBundle??=new Ti({width:this.width,height:this.height,fps:this.fps});let r=e instanceof st?e.config:e;return this._visionConfig={...r,visionBundle:this._visionBundle},this._visionBundle}vision(e,r={}){let n=`${e}\0${JSON.stringify(r)}`,i=this._clipVision.get(n);return i||(i=new qr(e,this.fps,r),this._clipVision.set(n,i)),i}async prepareVision(e){this.linkClipMattes(),await Promise.all([...this._clipVision.values()].map(r=>r.ready(0,e)))}linkClipMattes(){if(this._clipVision.size===0)return;let e=r=>{if(!r||typeof r!="object")return;let n=r;if(n.kind==="media"&&n.dataType==="Video"&&typeof n.inputHandleId=="string"&&n.vision instanceof st&&!(Mi in n.vision)){let i=this.clipForMatte(n.inputHandleId,n.vision);i&&(i.keepSubjects(),Object.defineProperty(n.vision,Mi,{value:i,enumerable:!1,configurable:!0}))}if(Array.isArray(n.children))for(let i of n.children)e(i)};for(let r of this.children)e(r)}clipForMatte(e,r){let n=r.mode??"passthrough";if(!(n!=="matte"&&n!=="mask"&&n!=="crop")&&!(r.matteSource==="selfie"||r.keyBackground===!0||r.classes!==void 0||r.enablePose===!0||r.enableMatte===!0||r.visionBundle!==void 0||(r.maskThreshold??.5)!==.5||r.featherRadius!==void 0))for(let i of this._clipVision.values()){let o=i.options;if(i.source===e&&(o.variant??"s")===(r.variant??"s")&&(o.confidence??.3)===(r.confidence??.3))return i}}async analyzeVisionSequence(e,r={}){let n=r.fps??this.fps,i=this.durationMs??await this.computeDuration(),o=r.totalFrames??Math.max(1,Math.round(i/1e3*n)),a=Sr.create({modelsDir:r.modelsDir,baseUrl:r.baseUrl,...r.confidence!==void 0?{confidence:r.confidence}:{},...r.variant!==void 0?{variant:r.variant}:{}}),s=fn.getVideo(e,!0);async function*l(){for(let c=0;c<o;c++){let m=await s.getFrame(c/n);m?.buffer&&m.width>0&&m.height>0&&(yield{data:m.buffer,width:m.width,height:m.height})}}try{return await Pi(l(),{runner:a,source:e,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{a.close(),s.destroy()}}onRequestFrame(e){return this._frameHooks.push(e),this}onPrepareFrame(e){return this._prepareHooks.push(e),this}notifyFrame(e){for(let r of this._frameHooks)r(e);if(!(this._clipVision.size===0&&this._prepareHooks.length===0))return(async()=>{await this.prepareVision(e.frame);for(let r of this._prepareHooks)await r(e)})()}hasFrameHooks(){return this._frameHooks.length>0||this._prepareHooks.length>0||this._clipVision.size>0}constructor(e){this.width=e.width,this.height=e.height,this.fps=e.fps??60,this.durationMs=e.durationMs??(e.durationFrames!==void 0?e.durationFrames/this.fps*1e3:void 0),this.backgroundColor=e.backgroundColor??"#000000",this.antialias3d=e.antialias3d,this.fonts=e.fonts??[],this.signals=e.signals??{}}static create(e){return new t(e)}addSignal(e,r){return this.signals[e]=r,this}add(e,...r){if(e instanceof Xt)this.children.push(e.toNode());else if(e instanceof kr)this.children.push(e.toNode());else{if(e&&typeof e=="object"&&"node"in e)return this.add(e.node,...r),this;if(Array.isArray(e))for(let n of e)this.add(n);else{let n=e,i=r[0];if(i&&!(i instanceof Xt)&&!Array.isArray(i)&&(i instanceof oe||"tracks"in i))return n.animation=i instanceof oe?i.toSpec():i,this.children.push(n),this;this.children.push(n)}}for(let n of r)n&&!(n instanceof oe)&&!("tracks"in n)&&this.add(n);return this}addAudio(e){return this.audioTracks.push(e),this}addSubjectSandwich(e){let r=typeof e.source=="string"?e.source:e.source.inputHandleId??"",n=e.fit??"cover",i=e.feather??4,o=i>1?i/100:i,a=e.variant??"s",s=L.video(r,{width:this.width,height:this.height,position:"absolute",x:0,y:0,fit:n,muted:e.muted??!1,volume:e.muted?0:e.volume??1});this.add(s);for(let c of e.behind)this.add(c);let l=L.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:a,confidence:e.confidence??.25,featherRadius:o,keyBackground:e.keyBackground??!0,backgroundKeyThreshold:e.backgroundKeyThreshold});return this.add(l),this}addSmartFraming(e){let r=typeof e.source=="string"?e.source:e.source.inputHandleId??"",n=Math.max(0,Math.min(.99,e.damping??.8)),i=e.leadHeadroom??.18,o=this.width,a=this.height,s=e.sourceAspect??16/9,l=o/a,c=l<s?Math.round(a*s):o,m=l<s?a:Math.round(o/s),d=o-c,p=a-m,f=e.target,b=new jt(w=>{if(d>=0)return 0;let S=f.center?.x?f.center.x.get(w):f.bounds?.centerX?f.bounds.centerX.get(w)/o:f.center?.screenX?f.center.screenX.get(w)/o:.5,O=Math.max(0,Math.min(1,S))*c,R=o/2-O;return Math.max(d,Math.min(0,R))},{fps:this.fps,label:"smart_framing_pan_x"}),g=new jt(w=>{if(p>=0)return 0;let S=f.center?.y?f.center.y.get(w):f.bounds?.centerY?f.bounds.centerY.get(w)/a:f.center?.screenY?f.center.screenY.get(w)/a:.5,O=Math.max(0,Math.min(1,S))*m,R=a*i-O;return Math.max(p,Math.min(0,R))},{fps:this.fps,label:"smart_framing_pan_y"}),y=new jt(w=>{let S=w.frame;if(S<=0)return b.get(w);let x=b.get({...w,frame:0,time:0}),O=1-n;for(let R=1;R<=S;R++){let _=b.get({...w,frame:R,time:R/w.fps});x=x+O*(_-x)}return x},{fps:this.fps,label:"smart_framing_smooth_x"}),k=new jt(w=>{let S=w.frame;if(S<=0)return g.get(w);let x=g.get({...w,frame:0,time:0}),O=1-n;for(let R=1;R<=S;R++){let _=g.get({...w,frame:R,time:R/w.fps});x=x+O*(_-x)}return x},{fps:this.fps,label:"smart_framing_smooth_y"}),A=L.box({width:o,height:a,overflow:"hidden",position:"relative"}),T=L.video(r,{width:c,height:m,position:"absolute",x:y,y:k,fit:e.fit??"cover",muted:e.muted??!1,volume:e.muted?0:e.volume??1});return A.children||(A.children=[]),A.children.push(T),this.add(A),this}addSubjectOutline(e,r={}){let n=r.blur??12,i=this.width,o=this.height,a=r.pulseSignal,s=a?new jt(m=>Math.max(0,Math.min(1,Number(a.get(m))||0)),{fps:this.fps,label:"outline_pulse"}):1,l=typeof r.source=="string"?r.source:r.source?.inputHandleId??"",c=L.box({width:i,height:o,position:"absolute",x:0,y:0,opacity:s});if(l){let m=L.video(l,{width:i,height:o,position:"absolute",x:0,y:0,fit:"cover",muted:!0,volume:0}).withVision({mode:"mask",enableSegmentation:!0});c.children||(c.children=[]),c.children.push(m)}return c.apply(new yt({strength:n,blurType:"Gaussian"})),this.add(c),this}section(e,r,n){let i,o,a={},s=e!==null&&typeof e=="object"&&"bounds"in e,l=typeof e=="string"||e!==null&&typeof e=="object"&&("kind"in e||"src"in e||"inputHandleId"in e);if(l&&r&&typeof r=="object"&&"bounds"in r?(i=e,o=r,a=n??{}):l&&r?(i=e,a=r):s?(o=e,a=r??{},i=a.source??o.source):e&&typeof e=="object"&&(a=e,i=a.source),!i){let c=this.children.find(m=>m.kind==="media"&&(m.dataType==="Video"||m.dataType==="Image"));c&&(i=c)}return L.section(i??"",o??a,{compositionWidth:this.width,compositionHeight:this.height,...a})}addSection(e,r,n){let i=this.section(e,r,n);return this.add(i),i}async computeDuration(){if(this.durationMs!==void 0)return this.durationMs;let e=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 o=((typeof n.startFrame=="number"?n.startFrame:0)+n.durationFrames)/this.fps*1e3;o>e&&(e=o)}}for(let n of r)try{let o=await(await bi.acquire(n)).computeDuration();if(Number.isFinite(o)&&o>0){let a=Math.round(o*1e3);a>e&&(e=a)}}catch{}return e>0?e:5e3}async registerFont(e,r){let n=await Ke.register(e,r);return n.filePath&&!this.fonts.includes(n.filePath)&&this.fonts.push(n.filePath),this}async registerEmojiFont(e){return await Ke.registerEmojiFont(e),this}toSpec(){let e=[...this.children,...this.audioTracks],r=Ke.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:e,fonts:n,signals:this.signals,...this._effects.length>0&&{effects:this._effects},...this._visionConfig&&{vision:this._visionConfig},...this.hasFrameHooks()&&{onRequestFrame:i=>this.notifyFrame(i)}}}toVirtualMedia(e={}){return hn(this.toSpec(),{isVideoMode:!0,fps:this.fps,durationMs:e.durationMs??this.durationMs,signals:e.signals??this.signals,...this._effects.length>0&&{effects:this._effects},...this._visionConfig&&{vision:this._visionConfig},...e})}async toVirtualMediaAsync(e={}){let r=e.durationMs??this.durationMs??await this.computeDuration();return this.durationMs=r,hn(this.toSpec(),{isVideoMode:!0,fps:this.fps,durationMs:r,signals:e.signals??this.signals,...this._effects.length>0&&{effects:this._effects},...this._visionConfig&&{vision:this._visionConfig},...e})}async renderFrame(e={}){if(this.hasFrameHooks()){let n=e.frame??(e.atMs!==void 0?Math.round(e.atMs/1e3*this.fps):0);await 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(e.renderer??new ve.HeadlessMediaRenderer).renderFrame(this.toVirtualMedia(),{fps:this.fps,...e})}async renderFrameGrid(e={}){return Kr(this,e)}async renderVideo(e={},r={}){let n=typeof e=="string"?{...r,outputPath:e}:e,o=await(n.renderer??new ve.HeadlessMediaRenderer).renderVideo(this.toVirtualMedia(),n);if(o.qa){let a=this.lint(),s=[...o.qa.issues,...a.map(l=>({severity:l.severity,code:l.code,message:l.message,...l.layerId!==void 0&&{layerId:l.layerId}}))];o.qa={...o.qa,issues:s,passed:o.qa.passed&&!a.some(l=>l.severity==="error")}}return _c(o,n.outputPath)}lint(){return So(this.toSpec())}};function xe(t){let e=t;Object.defineProperty(e,"animate",{value:(...n)=>{let i=n.flat().flatMap(l=>l instanceof oe?l.tracks:l.tracks??[]),o=e.animation,a=o?.tracks??[],s=n.flat().map(l=>l.frameStep).filter(l=>l!==void 0).at(-1)??o?.frameStep;return e.animation={tracks:Cn([...a,...i]),...s!==void 0&&s>1&&{frameStep:s}},e},enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(e,"pinToLandmark",{value:(n,i)=>(Ci(e,n,i),e),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(e,"pinToObject",{value:(n,i)=>(Ai(e,n,i),e),enumerable:!1,writable:!0,configurable:!0});let r=(n,i)=>(e.matte={node:n,...i&&{mode:i}},e);for(let n of["withMatte","withMask"])Object.defineProperty(e,n,{value:r,enumerable:!1,writable:!0,configurable:!0});return Object.defineProperty(e,"withPbrGlass",{value:n=>(e.glass=n??{},e),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(e,"deformWithAudio",{value:n=>(e.audioDeform=n??{},e),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(e,"withCrop",{value:n=>(e.crop=n instanceof Tr?n:new Tr(n),e),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(e,"withVision",{value:n=>(e.vision=n instanceof st?n:new st(n),e),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(e,"withRelighting",{value:n=>(e.relighting=n??{},e),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(e,"relight",{value:n=>(e.relighting=n??{},e),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(e,"withDeflicker",{value:n=>(e.deflicker=n??{},e),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(e,"apply",{value:n=>(e.effects||(e.effects=[]),e.effects.push(n),e),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(e,"withEffect",{value:n=>(e.effects||(e.effects=[]),e.effects.push(n),e),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(e,"withEffects",{value:n=>(e.effects||(e.effects=[]),e.effects.push(...n),e),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(e,"section",{value:(n={},i)=>n!==null&&typeof n=="object"&&"bounds"in n?L.section(e,n,i):L.section(e,n),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(e,"blurRegion",{value:(n,i)=>{let o=new yt({track:n,strength:i?.strength??25,shape:i?.shape??"ellipse",...i});return e.effects||(e.effects=[]),e.effects.push(o),e},enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(e,"withBlurRegion",{value:(n,i)=>e.blurRegion(n,i),enumerable:!1,writable:!0,configurable:!0}),e}var L={video:(t,e={})=>xe({id:e.id??Q("video"),kind:"media",inputHandleId:t,dataType:"Video",fit:e.fit??"cover",...e}),image:(t,e={})=>(typeof t=="string"&&(/\.(json|lottie)(\?.*)?$/i.test(t)||t.startsWith("data:application/json")?console.warn(`[Layer.image] '${t}' is a Lottie vector animation, not a static image. Use Layer.lottie('${t}', options) instead.`):/\.(mp4|mov|webm|mkv)(\?.*)?$/i.test(t)?console.warn(`[Layer.image] '${t}' is a video file, not a static image. Use Layer.video('${t}', options) instead.`):/\.(mp3|wav|ogg|m4a|aac)(\?.*)?$/i.test(t)&&console.warn(`[Layer.image] '${t}' is an audio file, not a static image. Use Layer.audio('${t}', options) instead.`)),xe({id:e.id??Q("img"),kind:"media",inputHandleId:t,dataType:"Image",fit:e.fit??"cover",...e})),svg:(t,e={})=>xe({id:e.id??Q("svg"),kind:"media",inputHandleId:t,dataType:"SVG",fit:e.fit??"contain",...e}),lottie:(t,e={})=>xe({id:e.id??Q("lottie"),kind:"media",inputHandleId:t,dataType:"Lottie",fit:e.fit??"contain",...e}),audio:(t,e={})=>xe({id:e.id??Q("audio"),kind:"media",inputHandleId:t,dataType:"Audio",volume:e.volume??1,...e}),text:(t,e={})=>{let r=Array.isArray(t),n=!r&&typeof t=="object"&&t!==null,i=n?t:e,o="",a=i.spans;if(r){let s=Pn(t);o=s.text,a=s.spans}else n?i.spans&&!i.text?o=Pn(i.spans).text:o=i.text??"":o=typeof t=="string"?t:String(t??"");return xe({id:i.id??Q("text"),kind:"text",fontFamily:i.fontFamily??Ke.getAll()[0]?.family??"Inter",fontSize:i.fontSize??48,fill:i.fill??"#ffffff",...i,text:i.text??o,spans:i.spans??a})},caption:(t,e={})=>xe({id:e.id??Q("caption"),kind:"media",inputHandleId:t,dataType:e.dataType??"Caption",fontFamily:e.fontFamily??Ke.getAll()[0]?.family??"Inter",fontSize:e.fontSize??48,fill:e.fill??"#ffffff",...e}),shape:(t="rect",e={})=>xe({id:e.id??Q("shape"),kind:"shape",shapeType:e.shapeType??t,...e,fillColor:e.fillColor??e.fill??"#3b82f6"}),flex:(t={})=>xe({id:t.id??Q("flex"),kind:"flex",dir:t.dir??"column",children:t.children??[],...t}),box:(t={})=>xe({id:t.id??Q("box"),kind:"box",background:t.background??"transparent",children:t.children??[],...t}),particles:t=>{let e=new Zr(t),r={metadata:{width:t.width,height:t.height},operation:{...e.toOperation(),effect:e,dataType:"Video"},children:[]};return xe({id:t.id??Q("particles"),kind:"media",dataType:"Video",src:r,position:"absolute",x:t.x??0,y:t.y??0,width:t.width,height:t.height,...t.startFrame!==void 0&&{startFrame:t.startFrame},...t.durationFrames!==void 0&&{durationFrames:t.durationFrames},...t.zIndex!==void 0&&{zIndex:t.zIndex}})},vfx:t=>{let{x:e,y:r,id:n,startFrame:i,durationFrames:o,zIndex:a,...s}=t,l=new zi({outputType:"Video",...s}),c={metadata:{width:t.width,height:t.height},operation:{...l.toOperation(),effect:l,dataType:"Video"},children:[]};return xe({id:n??Q("vfx"),kind:"media",dataType:"Video",src:c,position:"absolute",x:e??0,y:r??0,width:t.width,height:t.height,...i!==void 0&&{startFrame:i},...o!==void 0&&{durationFrames:o},...a!==void 0&&{zIndex:a}})},section:(t,e={},r={})=>{let n=t;if(t&&typeof t=="object"&&"toSpec"in t&&"children"in t){let x=(t.children||[]).find(O=>O.kind==="media"&&(O.dataType==="Video"||O.dataType==="Image"));x&&(n=x)}let i=e!==null&&typeof e=="object"&&"bounds"in e,o=i?r:e,a=i?e:void 0,s=o.padding??0,l=typeof n=="string"?n:n?.inputHandleId??n?.src??"",c=typeof n=="object"&&n?.dataType?n.dataType:"Video",m=o.compositionWidth??o.compWidth??(i?o.width:void 0)??1920,d=o.compositionHeight??o.compHeight??(i?o.height:void 0)??1080,p=Array.isArray(o.effects)?[...o.effects]:o.effects?[o.effects]:[],f=a?a.bounds.screenX.multiply(-1).add(s):typeof o.x=="number"?-o.x:o.x&&typeof o.x.multiply=="function"?o.x.multiply(-1):0,b=a?a.bounds.screenY.multiply(-1).add(s):typeof o.y=="number"?-o.y:o.y&&typeof o.y.multiply=="function"?o.y.multiply(-1):0,g=(c==="Image"?L.image(l,{position:"absolute",width:m,height:d,fit:o.fit??"cover",x:f,y:b}):L.video(l,{position:"absolute",width:m,height:d,fit:o.fit??"cover",x:f,y:b})).withEffects(p),y=a?a.bounds.screenWidth.add(s*2):o.width!==void 0?o.width:m,k=a?a.bounds.screenHeight.add(s*2):o.height!==void 0?o.height:d,A=[g,...o.children??[]],T=o.id??(a?Q(`section-track-${a.trackId}`):Q("section")),w=L.box({id:T,position:o.position??"absolute",width:y,height:k,x:a?void 0:o.x,y:a?void 0:o.y,borderRadius:o.borderRadius??0,borderColor:o.borderColor,borderWidth:o.borderWidth,opacity:o.opacity??1,overflow:"hidden",children:A});a&&(w=w.pinToObject(a,{anchor:"topLeft",offsetX:-s,offsetY:-s,hideWhenLost:o.hideWhenLost??!0,smoothFrames:o.smoothFrames}));let S=w;return Object.defineProperty(S,"innerMedia",{value:g,enumerable:!0,writable:!1}),Object.defineProperty(S,"effects",{get:()=>p,enumerable:!0}),Object.defineProperty(S,"addEffect",{value:x=>(p.push(x),g.effects=p,S),enumerable:!0,writable:!1}),Object.defineProperty(S,"withEffect",{value:x=>S.addEffect(x),enumerable:!0,writable:!1}),Object.defineProperty(S,"withEffects",{value:x=>{for(let O of x)S.addEffect(O);return S},enumerable:!0,writable:!1}),S},trackedRegion:(t,e,r={})=>L.section(t,e,r),blurTrackedRegion:(t,e,r={})=>{let{padding:n,borderRadius:i,borderColor:o,borderWidth:a,...s}=r;return L.section(t,e,{padding:n??8,borderRadius:i??12,borderColor:o,borderWidth:a,effects:[new yt({strength:s.strength??25,blurType:s.blurType??"Gaussian",...s})]})},chart:(t,e={})=>oc(t,e,Ke.getAll()[0]?.family??"Inter"),camera:(t={})=>xe({id:t.id??Q("camera"),kind:"camera",mode:t.mode??"lookAt",pitch:t.pitch??0,yaw:t.yaw??0,roll:t.roll??0,...t}),light:(t={})=>xe({id:t.id??Q("light"),kind:"light",lightType:t.lightType??"point",color:t.color??"#ffffff",intensity:t.intensity??1,...t}),ambientLight:(t="#ffffff",e=.5,r={})=>rt.ambient(t,e,r),sequence:(t,e)=>dc(t,e),environment:(t="studio",e={})=>rt.environment(t,e),directionalLight:(t={})=>rt.directional(t),pointLight:(t={})=>rt.point(t),spotLight:(t={})=>rt.spot(t),cube:t=>_t.cube(t),carousel3d:t=>_t.carousel(t),plane3d:t=>_t.plane(t),prism3d:t=>_t.prism(t),model:(t={})=>xe({id:t.id??Q("model3d"),kind:"model3d",is3D:t.is3D??!0,modelFormat:t.modelFormat??"auto",loop:t.loop??!0,scale:t.scale??1,scaleX:t.scaleX??1,scaleY:t.scaleY??1,scaleZ:t.scaleZ??1,opacity:t.opacity??1,...t}),obj:(t,e={})=>L.model({src:t,modelFormat:"obj",...e}),fbx:(t,e={})=>L.model({src:t,modelFormat:"fbx",...e}),gltf:(t,e={})=>L.model({src:t,modelFormat:"gltf",...e}),glb:(t,e={})=>L.model({src:t,modelFormat:"glb",...e}),stl:(t,e={})=>L.model({src:t,modelFormat:"stl",...e}),ply:(t,e={})=>L.model({src:t,modelFormat:"ply",...e}),vox:(t,e={})=>L.model({src:t,modelFormat:"vox",...e}),threeDS:(t,e={})=>L.model({src:t,modelFormat:"3ds",...e}),off:(t,e={})=>L.model({src:t,modelFormat:"off",...e})},rt={environment:(t="studio",e={})=>{let r=typeof t=="string"?{preset:t,...e}:{...t,...e};return xe({kind:"light",lightType:"environment",preset:"studio",intensity:1,...r,id:r.id??Q("environment")})},ambient:(t="#ffffff",e=.5,r={})=>xe({id:r.id??Q("light-ambient"),kind:"light",lightType:"ambient",color:t,intensity:e,...r}),directional:(t={})=>xe({id:t.id??Q("light-directional"),kind:"light",lightType:"directional",color:t.color??"#ffffff",intensity:t.intensity??1,x:t.x??0,y:t.y??-1e3,z:t.z??-1e3,targetX:t.targetX??0,targetY:t.targetY??0,targetZ:t.targetZ??0,...t}),point:(t={})=>xe({id:t.id??Q("light-point"),kind:"light",lightType:"point",color:t.color??"#ffffff",intensity:t.intensity??1,x:t.x??0,y:t.y??0,z:t.z??-500,radius:t.radius??1e3,decay:t.decay??1,...t}),spot:(t={})=>xe({id:t.id??Q("light-spot"),kind:"light",lightType:"spot",color:t.color??"#ffffff",intensity:t.intensity??1,x:t.x??0,y:t.y??-500,z:t.z??-1e3,targetX:t.targetX??0,targetY:t.targetY??0,targetZ:t.targetZ??0,angle:t.angle??45,penumbra:t.penumbra??.2,radius:t.radius??2e3,decay:t.decay??1,...t})};function YT(t,e={},r={}){return L.section(t,e,r)}function XT(t,e,r={}){return typeof t=="object"&&"blurRegion"in t?t.blurRegion(e,r):L.blurTrackedRegion(t,e,r)}function qT(t,e,r={}){return L.section(t,e,r)}var yb=Object.assign(dn,Ui,{blur:t=>new yt(t),vignette:t=>new Wt(t),colorBalance:t=>new Ni(t),colorKey:t=>new Ri(t),levels:t=>new _i(t),filmGrain:t=>new xt(t),curves:t=>new Gi(t),selectiveColor:t=>new $i(t),gradientMap:t=>new vt(t),shadowsHighlights:t=>new Wi(t),applyLut:t=>new Hi(t),unsharpMask:t=>new Yi(t),highPass:t=>new Xi(t),halftoneScreen:t=>new Mr(t),tileOffset:t=>new qi(t),motionBlur:t=>new Zi(t),ssao:t=>new Ki(t),pbrGlass:t=>new Qi(t),depthOfField:t=>new Ji(t),crop:t=>new Tr(t),vision:t=>new st(t),relight3d:t=>new eo(t),modulate:t=>new ro(t),deflicker:t=>new to(t),custom:(t,e={})=>new ji(t,e)});var export_HeadlessMediaRenderer=ve.HeadlessMediaRenderer;var export_HeadlessWebGPURenderer=ve.HeadlessWebGPURenderer;var export_formatQaReport=ve.formatQaReport;var export_renderSemaphore=ve.renderSemaphore;var export_resetRenderCaches=ve.resetRenderCaches;export{Yt as AETextAnimatorSchema,lo as AdvancedTextAnimatorBuilder,po as AdvancedTextAnimatorSchema,ws as AnchorGroupingSchema,Ss as AnchorPresetSchema,Ws as AnimatableGlyphPropsSchema,gy as AnimationTypeSchema,py as AnyOutputUnionSchema,ze as ApiError,Hi as ApplyLUT,Oi as Ascii,pm as AudioCompressor,fm as AudioDelay,ny as AudioExtractorSignalDataSchema,hm as AudioFade,Qc as AudioLatentEngine,Jc as AudioLatentTrackCache,Ud as AudioMeshDeformPipeline,gm as AudioNoiseGate,bm as AudioParametricEq,ym as AudioReverb,um as AudioSignal,jm as AudioSignalExtractor,Ds as AudioSpectrumTypographySchema,Oy as BaseMediaOperationPropsSchema,ky as BaseVideoLayerPropsSchema,vu as BloomConfigSchema,yt as Blur,ku as BoxNodeSchema,Uy as CAPTION_LAYER_DEFAULTS,nm as COCO17_BONES,rm as COCO17_KEYPOINTS,gn as COCO17_KEYPOINT_NAMES,em as COCO_CLASSES,qb as COMPOSITE_OPERATIONS,Qb as COMPOSITOR_DEFAULTS,Pr as CRT,nd as Camera3D,wo as CameraAnimation,hu as CameraNodeSchema,xm as CameraParallax3D,Or as CannyComputePipeline,Nu as CarrierHandoffConfigSchema,vm as ChannelMerger,wm as ChannelSplitter,As as ChromaticGlitchConfigSchema,qr as ClipVision,hi as Color,Ni as ColorBalance,Ri as ColorKey,Wp as ColorStopSchema,Uc as Composition,Hp as CompositorProgramSchema,Lb as ConfigHandleSchema,Kb as ConfigSchemaRegistry,Fi as Contour,Dr as ControlNetMultiplexer,Sm as CornerPin,Tr as Crop,Fs as CubicBezierSegmentSchema,Gi as Curves,ji as CustomEffect,Yb as DATA_TYPE_EXTENSIONS,ic as DEFAULT_CHART_COLORS,Iy as DEFAULT_DURATION_MS,Ey as DEFAULT_FPS,Vy as DEFAULT_MEDIA_DIMENSION,Ub as DataType,zb as DataTypeVal,_b as DataTypes,km as Datamosh,Nr as DepthNormalsComputePipeline,Ji as DepthOfField,Pm as DisplacementMap,Bi as Dither,Ts as DynamicStrokePropertiesSchema,p0 as ENVIRONMENT_PRESETS,x0 as Easing,yb as Effect,Id as EffectPipeline,cp as EnhancedTextNodeSchema,xu as EnvironmentFogSchema,bu as EnvironmentPresetSchema,hy as ExportResultSchema,lp as ExpressionSelectorSchema,Rs as ExtendedGlyphPropertiesSchema,Ly as ExtendedLayerSchema,Mm as ExtractLUT,no as FRAMEFIELDS_AI_PROXY_URL,$b as FileAssetSchema,Jb as FileDataSchema,xt as FilmGrain,Su as FlexNodeSchema,Tm as Flip,Ke as FontManager,ry as GeneratorSignalDataSchema,go as GlassPipeline,Zb as GlobalCompositeOperation,Hs as GlyphAnchorGroupingSchema,Ys as GlyphAnchorPointSchema,Cm as Gooey,n0 as Gradient,vt as GradientMap,Mr as HalftoneScreen,jb as HandleTypeVal,export_HeadlessMediaRenderer as HeadlessMediaRenderer,export_HeadlessWebGPURenderer as HeadlessWebGPURenderer,Xi as HighPass,Li as Iridescence,Gb as JsonValueSchema,Ei as Kaleidoscope,Am as KenBurns,mo as KineticMarqueeConfigSchema,g0 as LIGHT_UNIFORM_SIZE_BYTES,L as Layer,_t as Layer3D,oe as LayerAnimation,Dm as LayerStyle,To as LayoutNodeSchema,_i as Levels,rt as Light,id as Light3D,wu as LightNodeSchema,gu as LightTypeSchema,Ng as Lighting,sp as LineSpacingDynamicsSchema,Om as Liquify,Os as LongShadowConfigSchema,Jy as MAX_GRADIENT_STOPS,h0 as MAX_LIGHTS,Xb as MIME_TYPES,Nm as MaskMath,mu as MaterialTypeSchema,at as Matrix4Math,ko as MatteModeSchema,zc as Media,Cy as MediaMetadataSchema,Cu as MediaNodeSchema,Fy as MediaOperationSchema,Ty as MediaSourceSchema,Rm as MeshWarp,Du as Model3DNodeSchema,Rb as ModerationError,Fb as ModerationUnrefundableError,ro as Modulate,Zi as MotionBlur,bo as MotionBlurPipeline,my as MultiOutputGenericSchema,Eb as NodeMetadataSchema,fy as NodeResultSchema,Wb as NodeVisualConfigSchema,Fm as NoiseGenerator,Ii as OpArt,Si as OpticalFlowComputePipeline,ly as OutputItemSchema,Qi as PBRGlass,Bm as Paint,bn as Painterly,Ns as ParticleDissolveConfigSchema,Zr as Particles,Lm as PatchHeal,uo as Path3D,ti as PersonTrack,Hg as Physics,Jr as PhysicsBody2D,en as PhysicsBody3D,fr as PhysicsWorld2D,hr as PhysicsWorld3D,Vi as Pixelate,im as PoseSkeletonRenderer,$t as Posterize,zi as ProceduralVFX,jt as ProgrammaticSignal,yn as RGBSplit,Em as RefineEdge,Im as RefractionCaustics3D,eo as Relight3D,zd as Renderer2D,jd as Renderer3D,Vm as ResizerScaler,zm as Rotate,Ki as SSAO,xo as SSAOPipeline,Fr as Scene,Yp as SceneDefinitionSchema,Ou as SceneTransitionTypeSchema,om as SegmentationTexturePool,$i as SelectiveColor,Sn as SelectorBasedOnSchema,kn as SelectorModeSchema,Us as SelectorShapeSchema,zs as SelectorUnitsSchema,Co as Sequence,yo as ShadowPipeline,Wi as ShadowsHighlights,Au as ShapeNodeSchema,vr as Signal,ty as SignalChannelMetaSchema,ay as SignalDataSchema,oy as SignalGateDataSchema,iy as SignalMathDataSchema,ey as SignalStatsSchema,dy as SingleOutputGenericSchema,ap as SkewPropertiesSchema,Gt as SlugFontCache,Vd as SlugPipeline,Ny as SourceOperationSchema,up as Spatial3DPropertiesSchema,sm as SpatialLandmarkTransformer,Ms as SpringPhysicsSchema,Um as StereoPanning,Yg as Styles,zy as TEXT_LAYER_DEFAULTS,to as TemporalDeflicker,ki as TemporalDeflickerPipeline,tm as TemporalObjectTracker,Xt as TensorPipeline,ks as TextAnchorConfigSchema,Vp as TextAnimator,ho as TextAnimatorBuilder,fu as TextAnimatorSchema,Es as TextCursorConfigSchema,Ls as TextCursorStyleSchema,Tu as TextNodeSchema,Ry as TextOperationSchema,fo as TextPathBuilder,Ht as TextPathOptionsSchema,Bs as TextPathSourceSchema,_s as TextRangeSelectorSchema,Vs as TextScrambleConfigSchema,$s as TextSelectorSchema,Gs as TextSignalSelectorSchema,Pu as TextSpanMarkSchema,Mu as TextSpanSchema,js as TextWigglySelectorSchema,qi as TileOffset,Ay as TimelineSegmentSchema,Dy as TimelineTransformSchema,yu as ToneMappingSchema,xn as Toon,_m as Trails,cc as Transition,My as TransitionSchema,Py as TransitionTypeSchema,wn as TypewriterAnimatorSchema,Is as TypingCadenceSchema,Yi as UnsharpMask,Cr as ValidationError,Cs as VariableFontAxesSchema,Ar as Vec2Schema,q as Vector3Math,by as VideoAnimationSchema,Sy as VideoLayerTypeSchema,yy as VideoSpatialPropsSchema,wy as VideoStylePropsSchema,vy as VideoTextPropsSchema,xy as VideoTimingPropsSchema,Wt as Vignette,By as VirtualMediaDataSchema,st as Vision,Ti as VisionBundle,kr as VisionNode,Sr as VisionRunner,co as VolumetricFormationConfigSchema,Ps as VolumetricFormationModeSchema,hp as accent,op as ai,Pi as analyzeSequence,Ha as appendOperation,Qd as applyStaggerToChildren,y0 as bezier,XT as blurRegion,pp as bold,gd as buildPathLUT,Ru as calculateSequenceTimeline,c0 as checkNodeResultCache,wp as code,Jd as collectNodeOps,gp as color,hn as compositorToProgram,Pd as computeAnchorPivotOffset,Xp as computeCarrierContinuity,Sa as computeGridLayout,Yd as computeLayout,Hd as computeLayoutSync,Md as computeLineLeadingDisplacement,Od as computeRangeSelectorWeight,Kd as computeStaggerDelay,Ux as computeStrokeRect,Hy as computeVideoCropRenderProps,Xc as computed,Kc as cosineSignal,cy as createOutputItemSchema,Wa as createVirtualMedia,Hb as dataTypeColors,qa as describeGpu,uy as deserializeSignalData,Nd as deterministicWigglyNoise,fd as distanceToCurveParameter,qT as editTrackedRegion,Ui as effectFactories,mm as effectMeta,yd as ellipseToCubicBeziers,Di as encodeStereoWav,rd as ensureDevice,qd as evaluateAnimationAtFrame,dd as evaluateCubicBezier,md as evaluateCubicBezierDerivative,Td as evaluateExpressionSelector,Ad as evaluateMarqueeOffset,Fd as evaluateSelectorCombination,kd as evaluateSkewMatrix,Sd as evaluateSpringProgress,Xd as evaluateTrackAtFrame,Ld as evaluateTypewriterState,Cd as evaluateVolumetricFormation,m0 as extractSvgDimensions,l0 as findSourceAsset,qy as formatHex,export_formatQaReport as formatQaReport,Cb as frameArraySignal,Ab as frameSignal,pd as generateArcLengthLUT,Bb as generateId,wd as generatePathSegments,Wy as getActiveMediaMetadata,$y as getFileDataMetadata,o0 as getFingerprint,_y as getLeafMediaType,Gy as getMediaType,a0 as getRenderFingerprint,Bd as getScramblePool,Rd as getShuffledOrder,r0 as gradientStopsToOklab,u0 as hasOnlySingleSource,Zd as hoistMattes,bi as inputStore,v0 as interpolate,e0 as isCssGradient,i0 as isEqual,Mb as isSignal,Tb as isValueSignal,s0 as isVirtualMediaData,fp as italic,t0 as limitGradientStops,So as lintComposition,ld as loadFBX,Gd as loadModel3D,sd as loadOBJ,cd as lutStore,Ex as mapBlendModeToSkia,yp as mark,P0 as measureSpring,T0 as measureText,C0 as measureTextAsync,Cn as mergeAnimationTracks,Wd as mixAudioTracks,Zy as mixColors,cm as mixSfxInto,Qy as normalizeColorStops,Pn as normalizeTextSpans,Xy as oklabToRgb,b0 as parseColorToRgb,fi as parseCssColor,Ya as parseCssGradient,ud as parseFBX,ad as parseMTL,Sp as parseMarkup,od as parseOBJ,vd as parseSvgPathToCubicBeziers,Ci as pinNodeToLandmark,Ai as pinNodeToObject,S0 as preloadCompositionFonts,w0 as preloadFont,xb as programmaticSignal,Ob as progressSignal,Pb as registerSignalDependency,Kr as renderFrameGrid,export_renderSemaphore as renderSemaphore,lm as renderSfx,Ib as reportRenderDiagnostic,Ix as requiresIsolation,export_resetRenderCaches as resetRenderCaches,Sb as resolveBoolean,f0 as resolveEnvironment,jy as resolveMediaMimeType,vb as resolveNumber,kb as resolveParam,wa as resolveSamplePoints,wb as resolveString,Yy as rgbToOklab,dp as rich,Dd as sampleAudioSpectrumScale,Ky as sampleColorStops,hd as sampleCurveGeometry,bd as samplePathChainGeometry,YT as section,sy as serializeSignalData,ed as shaderStore,Yc as signal,qc as signalBuilder,td as signalRegistry,Zc as sineSignal,bp as size,dm as softLimit,mp as span,M0 as spring,k0 as springCalculation,d0 as stampResult,ab as startPreview,vp as sub,xp as sup,Vb as takeRenderDiagnostics,Ed as textureCache,Db as timeSignal,Nb as updateClockSignals,xd as waveToCubicBeziers};
1970
+ `),s.add(V),clearTimeout(c),g||(g=!0,f(l===!1?"page opened":`page opened; the server stops ${Number((l/1e3).toFixed(1))} s after its last tab closes`)),j?.(),L.on("close",()=>{s.delete(V),s.size===0&&l!==!1&&!P&&(c=setTimeout(()=>{s.size===0&&H("idle")},l))});return}if(L.method==="POST"&&W.pathname==="/takeover"&&L.headers[Qc]==="1"){ot(V,200,{ok:!0}),setImmediate(()=>{H("replaced")});return}if(L.method==="POST"&&W.pathname==="/@framefields/log"&&L.headers["content-type"]==="application/json"){let X=await Zc(L,16384),{message:te,level:R}=JSON.parse(X),E=String(te??"").trim();E&&!b.has(E)&&b.size<200&&(b.add(E),f(`${R==="warning"?"warning":"error"} in the page: ${E}`)),V.writeHead(204).end();return}if(y&&W.pathname==="/@framefields/notes"){if(L.method==="GET"){ot(V,200,await y.list());return}if(L.method==="POST"&&L.headers["content-type"]==="application/json"){let X=JSON.parse(await Zc(L,16777216)),te=S.then(()=>jb(y,X,T.fps,f));S=te.catch(()=>{});let R=await te;_("notes",await y.list()),ot(V,R?200:404,R??{error:"no such note"});return}}if(L.method==="GET"&&W.pathname==="/audio"){if(M.state!=="ready"||!O){ot(V,404,{error:`audio is ${M.state}`});return}V.writeHead(200,{"content-type":"audio/wav","content-length":O.length,"cache-control":"no-store"}),V.end(O);return}let K=/^\/assets\/fonts\/([^/]+)$/.exec(W.pathname);if(K&&(L.method==="GET"||L.method==="HEAD")){let X=G.join(w.cwd(),"assets","fonts",decodeURIComponent(K[1]));if(await Ia(X)){await za(L,V,X);return}}if(L.method==="GET"||L.method==="HEAD"){let X=G.resolve(decodeURIComponent(W.pathname.replace(/^\/@fs(?=\/)/,"")));if(a.some(te=>Ea(te,X))&&await Ia(X)){await za(L,V,X);return}}ot(V,404,{error:"not found"})}catch(K){V.headersSent?V.end():ot(V,500,{error:K instanceof Error?K.message:String(K)})}}),j,z=e.host??"127.0.0.1",ee=e.port??Wb(),oe=L=>new Promise((V,W)=>{let K=te=>{Y.off("listening",X),W(te)},X=()=>{Y.off("error",K),V()};Y.once("error",K),Y.once("listening",X),Y.listen(L,z)});try{await oe(ee)}catch(L){if(L.code!=="EADDRINUSE")throw L;if(await Hb(z,ee))await oe(ee).catch(()=>oe(0));else if(e.port===void 0)await oe(0);else throw L}let{port:ge}=Y.address(),le=`http://${z.includes(":")?`[${z}]`:z}:${ge}/`;if(C().catch(()=>{}),I(),e.open===!0){let L=await new Promise(V=>{let W=setTimeout(()=>V(!1),2e3);j=()=>{clearTimeout(W),V(!0)},s.size>0&&j()});j=void 0,L||Xb(le)}return{url:le,closed:k,close:()=>H()}}async function Vb(t,e){let n=(await import(gn(t).href))[e];if(n===void 0)throw new Error(`[framefields] ${t} has no export named "${e}" to preview.`);return typeof n=="function"?await n():n}function _b(t){let e;for(let r=t;;r=G.dirname(r)){if(be.existsSync(G.join(r,".git")))return r;if(!e&&be.existsSync(G.join(r,"package.json"))&&(e=r),G.dirname(r)===r)return e??t}}async function jb(t,e,r,n){if(e.op==="add"&&e.note&&String(e.note.text).trim()){let o=await t.add(e.note),a=[o.image&&`frame with the spot marked: ${o.image}`,`all notes: ${t.file}`];return n(`${Xc(o,r)}
1971
+ ${a.filter(Boolean).join(" \xB7 ")}`),o}let i=Number(e.id);if(e.op==="update"){let o=await t.update(i,e);return o&&typeof e.done=="boolean"&&n(`note ${i} marked ${o.done?"done":"open"}`),o}if(e.op==="remove"){let o=await t.remove(i);return o&&n(`note ${i} deleted`),o}}function Ub(t){return t instanceof Error?t.message:String(t)}function Zc(t,e){return new Promise((r,n)=>{let i="";t.setEncoding("utf8"),t.on("data",o=>{i+=o,i.length>e&&(n(new Error("request body too large")),t.destroy())}),t.on("end",()=>r(i)),t.on("error",n)})}function Ea(t,e){let r=G.relative(t,e);return!!r&&!r.startsWith("..")&&!G.isAbsolute(r)}async function Ia(t){try{return(await be.promises.stat(t)).isFile()}catch{return!1}}var Gb={".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 za(t,e,r){let{size:n}=await be.promises.stat(r),i=Gb[G.extname(r).toLowerCase()]??"application/octet-stream",o=/^bytes=(\d*)-(\d*)$/.exec(t.headers.range??""),a=0,s=n-1;if(o&&(o[1]||o[2])&&(o[1]?(a=Number(o[1]),o[2]&&(s=Math.min(s,Number(o[2])))):a=Math.max(0,n-Number(o[2])),a>s||a>=n)){e.writeHead(416,{"content-range":`bytes */${n}`}),e.end();return}if(e.writeHead(o?206:200,{"content-type":i,"content-length":s-a+1,"accept-ranges":"bytes","cache-control":"no-cache",...o&&{"content-range":`bytes ${a}-${s}/${n}`}}),t.method==="HEAD"){e.end();return}be.createReadStream(r,{start:a,end:s}).pipe(e)}async function $b(t,e,r,n){let i=t.fps??24,o=t.durationMs??await t.computeDuration?.()??5e3;return{session:r,notesDir:n,title:e,fps:i,frameCount:Math.max(1,Math.round(o/1e3*i)),width:t.width??1920,height:t.height??1080}}function Wb(){return 41e3+(0,hi.createHash)("sha1").update(w.cwd()).digest().readUInt16BE(0)%900}async function Hb(t,e){let r=await new Promise(n=>{let i=Va.default.request({host:t,port:e,method:"POST",path:"/takeover",agent:!1,headers:{[Qc]:"1"},timeout:1500},o=>{o.resume(),n(o.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 Yb(t,e,r){let n=new Array(r).fill(0);if(t.length===0)return n;let i=t.length/r;for(let o=0;o<r;o++){let a=Math.floor(o*i),s=Math.min(t.length,Math.floor((o+1)*i)),l=0;for(let c=a;c<s;c++){let m=Math.max(Math.abs(t[c]??0),Math.abs(e[c]??0));m>l&&(l=m)}n[o]=Math.min(1,l)}return n}function ot(t,e,r){t.writeHead(e,{"content-type":"application/json","cache-control":"no-store"}),t.end(JSON.stringify(r))}function Xb(t){let[e,r]=w.platform==="darwin"?["open",[t]]:w.platform==="win32"?["cmd",["/c","start","",t]]:["xdg-open",[t]];try{(0,Kc.spawn)(e,r,{stdio:"ignore",detached:!0}).on("error",()=>{}).unref()}catch{}}h();var at=2048,qb=42,Zb=30,Kb=48,Jc=-60;function Qb(t,e){let r=t.length;for(let n=1,i=0;n<r;n++){let o=r>>1;for(;i&o;o>>=1)i^=o;i^=o,n<i&&([t[n],t[i]]=[t[i],t[n]],[e[n],e[i]]=[e[i],e[n]])}for(let n=2;n<=r;n<<=1){let i=-2*Math.PI/n,o=Math.cos(i),a=Math.sin(i);for(let s=0;s<r;s+=n){let l=1,c=0;for(let m=0;m<n/2;m++){let d=s+m,p=d+n/2,f=t[p]*l-e[p]*c,b=t[p]*c+e[p]*l;t[p]=t[d]-f,e[p]=e[d]-b,t[d]=t[d]+f,e[d]=e[d]+b;let g=l*o-c*a;c=l*a+c*o,l=g}}}}function ed(t,e){if(t.length===0)return 0;let r=[...t].sort((n,i)=>n-i);return r[Math.min(r.length-1,Math.floor(e*r.length))]}var gi=t=>20*Math.log10(t+1e-9),td=t=>t<0?0:t>1?1:t,rd=t=>Math.round(t*1e3)/1e3;function Jb(t,e,r){return Array.from({length:t+1},(n,i)=>e*(r/e)**(i/t))}function nd(t,e,r={}){let n=r.fps??30,i=r.bands??32,o=r.minHz??50,a=Math.min(r.maxHz??12e3,e/2),s=Math.max(0,...t.map(I=>I.length)),l=new Float32Array(s);for(let I of t)for(let F=0;F<I.length;F++)l[F]=l[F]+I[F]/t.length;let c=Math.ceil(s/e*n),m=e/n,d=Float64Array.from({length:at},(I,F)=>.5-.5*Math.cos(2*Math.PI*F/(at-1))),p=Jb(i,o,a),f=e/at,b=p.slice(0,-1).map((I,F)=>{let k=Math.max(1,Math.floor(I/f)),P=Math.max(k+1,Math.ceil(p[F+1]/f));return[k,Math.min(at/2,P)]}),g=p.filter(I=>I<150).length,y=Array.from({length:i},()=>new Array(c)),S=new Array(c),A=new Array(c).fill(0),T=null,v=new Float64Array(at),C=new Float64Array(at);for(let I=0;I<c;I++){let k=Math.round((I+.5)*m)-at/2;for(let z=0;z<at;z++){let ee=l[k+z];v[z]=(ee??0)*d[z],C[z]=0}Qb(v,C);let P=[];b.forEach(([z,ee],oe)=>{let ge=0;for(let L=z;L<ee;L++)ge+=Math.hypot(v[L],C[L]);let le=ge/(ee-z)*(4/at);y[oe][I]=le,oe<Math.max(1,g)&&P.push(le)}),T&&(A[I]=P.reduce((z,ee,oe)=>z+Math.max(0,ee-(T[oe]??0)),0)),T=P;let H=Math.round(I*m),Y=Math.min(s,Math.round((I+1)*m)),j=0;for(let z=H;z<Y;z++)j+=l[z]**2;S[I]=Math.sqrt(j/Math.max(1,Y-H))}let x=y.map(I=>ed(I.map(gi),.98)),M=Math.max(...x),O=y.map((I,F)=>{let k=Math.max(x[F],M-Zb,Jc-20);return I.map(P=>rd(td(1-(k-gi(P))/qb)))}),_=Math.max(Jc,ed(S.map(gi),.98)),$=S.map(I=>rd(td(1-(_-gi(I))/Kb)));return{fps:n,frames:c,bands:O,level:$,beats:ey(A,n)}}function ey(t,e){let r=Math.max(2,Math.round(e*.5)),n=Math.max(1,Math.round(e*.15)),i=Math.max(0,...t),o=[];for(let a=1;a<t.length;a++){let s=t[a];if(s<=i*.08||s<t[a-1]||s<(t[a+1]??0))continue;let l=t.slice(Math.max(0,a-r),a+r+1),c=l.reduce((p,f)=>p+f,0)/l.length,m=Math.sqrt(l.reduce((p,f)=>p+(f-c)**2,0)/l.length);if(s<c+1.5*m)continue;let d=o[o.length-1];d!==void 0&&a-d<n||o.push(a)}return o}h();h();h();h();function ty(t){let e=t>>>0,r=()=>{e=e+2654435769>>>0;let n=e;return n=Math.imul(n^n>>>16,2246822507)>>>0,n=Math.imul(n^n>>>13,3266489909)>>>0,n=(n^n>>>16)>>>0,n/4294967296};return{next:r,range:(n,i)=>n+(i-n)*r(),int:(n,i)=>n+Math.floor(r()*(i-n+1)),pick:n=>{if(n.length===0)throw new Error("rng.pick: empty list");return n[Math.floor(r()*n.length)]},spread:n=>(r()*2-1)*n}}function ry(t){let e=2166136261;for(let r=0;r<t.length;r++)e^=t.charCodeAt(r),e=Math.imul(e,16777619)>>>0;return e>>>0}function id(t,e){return ty((Math.imul(t>>>0,2654435761)^ry(String(e)))>>>0)}function od(t,e){return ny(e),Math.max(1,Math.round(t*e/30))}function ny(t){if(!(t>0)||!Number.isFinite(t))throw new Error(`fps must be a positive number, got ${t}`)}var un=["none","fade","rise","drop","scale","pop","slide-left","slide-right","slide-up","slide-down","tilt","mask-up","mask-down","mask-left","mask-right"];function _a(t,e,r,n=30){if(t===!1||t===void 0)return null;let i=typeof t=="string"?{preset:t}:t;if(i.preset==="none")return null;if(!un.includes(i.preset))throw new Error(`Unknown motion preset "${i.preset}". Use one of: ${un.join(", ")}.`);return{preset:i.preset,duration:Math.max(1,Math.round(i.duration??od(r.motion.speed.base,n))),ease:i.ease??(i.preset==="pop"?r.motion.ease.snap:e==="enter"?r.motion.ease.enter:r.motion.ease.exit),distance:i.distance??(i.preset.startsWith("slide-")?120:40)*r.scale,delay:Math.max(0,Math.round(i.delay??0))}}var ad=t=>t.preset.startsWith("mask-");function sd(t,e){switch(t.preset){case"mask-up":return[0,e?.height??t.distance];case"mask-down":return[0,-(e?.height??t.distance)];case"mask-left":return[e?.width??t.distance,0];case"mask-right":return[-(e?.width??t.distance),0];case"rise":case"slide-up":return[0,t.distance];case"drop":case"slide-down":return[0,-t.distance];case"slide-left":return[t.distance,0];case"slide-right":return[-t.distance,0];default:return[0,0]}}function ud(t,e=0,r){let n=e+t.delay,i=n+t.duration,o=ie.create();ad(t)||o.keys("opacity",[[n,0],[i,1,t.ease]]);let[a,s]=sd(t,r);return a!==0&&o.keys("x",[[n,a],[i,0,t.ease]]),s!==0&&o.keys("y",[[n,s],[i,0,t.ease]]),t.preset==="scale"&&o.keys("scale",[[n,.92],[i,1,t.ease]]),t.preset==="pop"&&o.keys("scale",[[n,.6],[i,1,t.ease]]),t.preset==="tilt"&&(o.keys("perspective",[[n,1200]]),o.keys("rotateX",[[n,28],[i,0,t.ease]]),o.keys("translateZ",[[n,-160],[i,0,t.ease]])),o}function ld(t,e,r){let n=e-t.delay,i=Math.max(0,n-t.duration),o=ie.create();ad(t)||o.keys("opacity",[[i,1],[n,0,t.ease]]);let[a,s]=sd(t,r);return a!==0&&o.keys("x",[[i,0],[n,-a,t.ease]]),s!==0&&o.keys("y",[[i,0],[n,-s,t.ease]]),t.preset==="scale"&&o.keys("scale",[[i,1],[n,.92,t.ease]]),t.preset==="pop"&&o.keys("scale",[[i,1],[n,.6,t.ease]]),t.preset==="tilt"&&(o.keys("perspective",[[i,1200]]),o.keys("rotateX",[[i,0],[n,-28,t.ease]]),o.keys("translateZ",[[i,0],[n,-160,t.ease]])),o}h();var bi={ease:{enter:"expo.out",exit:"power2.in",move:"power3.inOut",snap:"back.out(1.6)"},speed:{fast:8,base:16,slow:30}},ja={radius:{sm:6,md:12,lg:24,pill:999},stroke:{hair:1,base:2,bold:4}},Ua={display:"Inter",body:"Inter",mono:"JetBrains Mono"},dd={graphite:{color:{bg:"#0d0e11",surface:"#16181d",raised:"#1f2229",line:"#2b2f38",ink:"#f3f4f6",muted:"#8b909c",accent:"#5b8cff",accent2:"#b07cff",positive:"#3ecf8e",negative:"#ff5c5c",highlight:"#ffd23f"},font:Ua,...ja,motion:bi,scale:1},paper:{color:{bg:"#f4f1ea",surface:"#fffdf8",raised:"#ffffff",line:"#dcd6c8",ink:"#1a1814",muted:"#6b665c",accent:"#e0451f",accent2:"#1f5fe0",positive:"#1f8a4c",negative:"#c8282d",highlight:"#ffe066"},font:Ua,...ja,motion:bi,scale:1},signal:{color:{bg:"#000000",surface:"#111111",raised:"#1c1c1c",line:"#333333",ink:"#ffffff",muted:"#a3a3a3",accent:"#c6ff00",accent2:"#ff2e88",positive:"#00e676",negative:"#ff1744",highlight:"#c6ff00"},font:Ua,...ja,motion:{...bi,ease:{...bi.ease,enter:"back.out(1.8)"},speed:{fast:6,base:12,slow:24}},scale:1}};function Ga(t={},e=dd.graphite){let r=md(e,t),n=iy(r.color.ink,r.color.surface);if(n!==null&&n<4.5)throw new Error(`Theme contrast too low: ink ${r.color.ink} on surface ${r.color.surface} is ${n.toFixed(2)}:1 (needs 4.5:1).`);return r}function md(t,e){if(e===void 0)return t;if(t===null||e===null||typeof t!="object"||typeof e!="object"||Array.isArray(t)||Array.isArray(e))return e;let r={...t};for(let[n,i]of Object.entries(e))r[n]=md(r[n],i);return r}function iy(t,e){let r=cd(t),n=cd(e);if(r===null||n===null)return null;let[i,o]=r>n?[r,n]:[n,r];return(i+.05)/(o+.05)}function cd(t){let e=t.trim().match(/^#([0-9a-f]{3}|[0-9a-f]{6})$/i);if(!e?.[1])return null;let r=e[1].length===3?e[1].split("").map(i=>i+i).join(""):e[1],n=i=>{let o=Number.parseInt(r.slice(i,i+2),16)/255;return o<=.03928?o/12.92:((o+.055)/1.055)**2.4};return .2126*n(0)+.7152*n(2)+.0722*n(4)}function oy(t,e){let r={};for(let[n,i]of Object.entries(t))r[n]=i.map(o=>{let a={...o,frame:o.frame+e};return typeof o.end=="number"&&(a.end=o.end+e),a});return r}function ay(t,{rest:e=0,peak:r=1,attack:n=0,release:i=8,ease:o="power2.out"}={}){let a=t.map(l=>typeof l=="number"?l:l.frame).sort((l,c)=>l-c),s=new Map;for(let l of a){let c=Math.max(0,l-n);s.has(c)||s.set(c,[c,e]),s.set(l,[l,r]),s.set(l+i,[l+i,e,o])}return[...s.values()].sort((l,c)=>l[0]-c[0])}var sy=()=>u.custom(t=>typeof t=="function",{message:"Expected a function"});function pd(){return u.union([u.enum(un),u.object({preset:u.enum(un),duration:u.number().int().positive().optional(),ease:u.string().optional(),distance:u.number().optional(),delay:u.number().int().min(0).optional()})])}var fd;function uy(){return fd??=ly(),fd}function ly(){return u.object({id:u.string().min(1).optional(),at:u.number().int().min(0).optional(),duration:u.number().int().positive().optional(),hold:u.number().int().min(0).optional(),enter:u.union([pd(),u.literal(!1)]).optional(),exit:u.union([pd(),u.literal(!1)]).optional(),x:u.number().optional(),y:u.number().optional(),width:u.number().positive().optional(),height:u.number().positive().optional(),position:u.enum(["absolute","relative"]).optional(),theme:u.custom(t=>typeof t=="object"&&t!==null).optional(),seed:u.number().int().optional(),fps:u.number().positive().optional(),customize:sy().optional()})}var cy=t=>t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();function hd(t,e){let r;return n=>{r??=uy().extend(e.props()).strict();let i=r.safeParse(n??{});if(!i.success){let o=i.error.issues.map(a=>` - ${a.path.join(".")||"(props)"}: ${a.message}`).join(`
1972
+ `);throw new Error(`${e.name}: invalid props
1973
+ ${o}`)}return dy(t,e,i.data)}}function dy(t,e,r){let n=Ga(r.theme??{}),i=r.fps??30,o=r.seed??1,a=r.id??t.autoId(cy(e.name)),s=e.defaults??{},l=r.hold??s.hold??0,c={host:t,theme:n,fps:i,seed:o,id:a,partId:I=>`${a}-${I}`,rng:I=>id(o,I),requested:{width:r.width,height:r.height,duration:r.duration,at:r.at??0},hold:l},m=e.build(c,r),d=_a(r.enter===void 0?s.enter:r.enter,"enter",n,i),p=_a(r.exit===void 0?s.exit:r.exit,"exit",n,i),f=m.duration===null||m.openEnded===!0&&!p&&!m.afterHold,b=r.duration??(f||m.duration===null?null:Math.max(1,m.duration+l+(m.afterHold??0)+(p?p.duration+p.delay:0)));if(b===null&&p)throw new Error(`${e.name}: an exit needs a known end. Give \`duration\`, or drop \`exit\`.`);let g=r.width??m.width,y=r.height??m.height,S=t.box({id:c.partId("stage"),position:"absolute",x:0,y:0,width:g,height:y,children:m.children}),A={width:g,height:y};d&&S.animate(ud(d,0,A)),p&&b!==null&&S.animate(ld(p,b,A));let T=r.x===void 0&&r.y===void 0&&!r.position?m.origin:void 0,v=r.x!==void 0||r.y!==void 0||T!==void 0,C=r.x??T?.[0]??0,x=r.y??T?.[1]??0,M=t.box({id:a,...v?{position:"absolute",x:C,y:x}:r.position?{position:r.position}:{},width:g,height:y,...(d?.preset.startsWith("mask-")||p?.preset.startsWith("mask-"))&&{overflow:"hidden"},startFrame:r.at??0,...b!==null&&{durationFrames:b},children:[S]}),O={...m.parts,root:M,stage:S};r.customize?.(O),$a(M);let _=r.at??0,$=oy(m.cues,_);if(Object.defineProperties(M,{cues:{value:$,enumerable:!1},span:{value:{start:_,end:b===null?Number.POSITIVE_INFINITY:_+b,duration:b??Number.POSITIVE_INFINITY},enumerable:!1},part:{value:I=>O[I],enumerable:!1}}),m.api){let I=m.api({x:v?C:0,y:v?x:0,width:g,height:y,absolute:v,start:_});for(let[F,k]of Object.entries(I))Object.defineProperty(M,F,{value:k,enumerable:!1})}return M}function $a(t){let e=t;for(let r of e.animation?.tracks??[]){let n=r.keyframes?.[0];!n||n.frame<=0||r.repeat||r.keyframes?.unshift({id:`${n.id}-hold`,frame:0,value:n.value})}for(let r of e.children??[])$a(r);e.matte?.node&&$a(e.matte.node)}h();h();var my=/\.(png|jpe?g|webp|gif|avif|tiff?|bmp)(\?.*)?$/i,py=/\.svg(\?.*)?$/i;function fy(t){let e=r=>r?{...r,enabled:!0}:void 0;return new ji({...t.dropShadow&&{dropShadow:e(t.dropShadow)},...t.outerGlow&&{outerGlow:e(t.outerGlow)},...t.innerShadow&&{innerShadow:e(t.innerShadow)},...t.stroke&&{stroke:e(t.stroke)}})}function hy(t,e){let r=Math.max(16,Math.round(t)),n=Math.max(16,Math.round(e));return`data:image/svg+xml;utf8,${encodeURIComponent(`<svg xmlns="http://www.w3.org/2000/svg" width="${r}" height="${n}"><rect width="${r}" height="${n}" fill="#808080"/></svg>`)}`}var gd={box:t=>B.box(t),flex:t=>B.flex(t),text:(t,e)=>B.text(t,e),shape:(t,e)=>B.shape(t,e),measure:(t,e)=>Ve.measure(t,e),fonts:()=>Ve.getAll().map(t=>t.family),autoId:Q,media:(t,e)=>py.test(t)?B.svg(t,e):my.test(t)?B.image(t,e):B.video(t,{muted:!0,...e}),style:(t,e)=>(t.withEffect(fy(e)),t),cutout:(t,{mode:e="person",...r})=>B.video(t,{muted:!0,volume:0,fit:"cover",...r}).withVision({mode:"matte",enableSegmentation:!0,variant:e==="subject"?"m":"s",confidence:.25,featherRadius:.04,keyBackground:!0}),particles:t=>B.particles(t),signal:(t,e)=>rs([...t],e),grain:({id:t,x:e,y:r,width:n,height:i,strength:o,size:a})=>B.svg(hy(n,i),{id:t,position:"absolute",x:e,y:r,width:n,height:i,fit:"fill",blendMode:"soft-light"}).withEffect(new Qe({strength:o,...a!==void 0&&{size:a},shadows:1,midtones:1,highlights:1})),extrudedText:({fontWeight:t,...e})=>rt.extrudedText({...e,...t!==void 0&&{fontWeight:String(t)},align:"center",verticalAlign:"middle"}),matte:(t,e,r="alpha")=>(t.withMatte(e,r),t)};h();async function bd(t,e={}){let r=await hs(t);if(!r||r.channels.length===0)throw new Error(`analyzeAudio: could not decode audio from ${t}`);return nd(r.channels,r.sampleRate,e)}function gy(t){return hd(gd,t)}function Wa(t,e){return t&&(e&&!t.source&&Object.defineProperty(t,"source",{value:e,enumerable:!0,writable:!0,configurable:!0}),typeof t.section!="function"&&Object.defineProperty(t,"section",{value:(r,n)=>{if(typeof r=="object"&&r!==null&&!("kind"in r)&&!("inputHandleId"in r)&&!("src"in r)){let o=r.source??t.source??e;return B.section(o,t,r)}let i=r??t.source??e;return B.section(i,t,n)},enumerable:!1,writable:!0,configurable:!0}),typeof t.blurEffect!="function"&&Object.defineProperty(t,"blurEffect",{value:r=>new vt({track:t,...r}),enumerable:!1,writable:!0,configurable:!0}),typeof t.isolate!="function"&&Object.defineProperty(t,"isolate",{value:(r,n)=>B.section(r,t,n),enumerable:!1,writable:!0,configurable:!0}),t)}var by=Tr.attach;Tr.attach=function(t,e,r){let n=by.call(this,t,e,r);if(n?.objects){let i=t,o=n.objects.get.bind(n.objects);n.objects.get=s=>Wa(o(s),i);let a=n.objects.byCategory.bind(n.objects);n.objects.byCategory=(s,l)=>Wa(a(s,l),i),n.objects.primary&&Wa(n.objects.primary,i)}return n};var yd=class t{virtualMedia;constructor(e,r="Video"){this.virtualMedia=ns(e,r)}static video(e,r){let n=new t(e,"Video");return r&&Object.assign(n.virtualMedia.metadata,r),n}static image(e,r){let n=new t(e,"Image");return r&&Object.assign(n.virtualMedia.metadata,r),n}static lottie(e,r){let n=new t(e,"Lottie");return r&&Object.assign(n.virtualMedia.metadata,r),n}static audio(e,r){let n=new t(e,"Audio");return r&&Object.assign(n.virtualMedia.metadata,r),n}apply(e,r={}){let n;e instanceof yy||typeof e=="object"&&e!==null&&"op"in e?n=e.toOperation():n={op:e,...r};let i=is(this.virtualMedia,{...n,dataType:this.virtualMedia.operation.dataType});return new t(i)}toVirtualMedia(){return this.virtualMedia}async renderFrame(e={}){return(e.renderer??new ve.HeadlessMediaRenderer).renderFrame(this.virtualMedia,e)}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(e={}){return en(this,e)}async renderVideo(e={},r={}){let n=typeof e=="string"?{...r,outputPath:e}:e,o=await(n.renderer??new ve.HeadlessMediaRenderer).renderVideo(this.virtualMedia,n);return wd(o,n.outputPath)}};async function wd(t,e){if(!e)return t;let r=G.resolve(e);return await kr.mkdir(G.dirname(r),{recursive:!0}),await kr.copyFile(t.filePath,r),await t.cleanup(),{...t,filePath:r,cleanup:async()=>{}}}var xd=class t{width;height;fps;durationMs;backgroundColor;antialias3d;fonts;children=[];audioTracks=[];signals={};_frameHooks=[];_prepareHooks=[];_clipVision=new Map;_visionConfig;_visionBundle;_effects=[];apply(e){return e instanceof ct?(this.withVision(e),this):(this._effects.push(e),this)}withVision(e={}){this._visionBundle??=new Ni({width:this.width,height:this.height,fps:this.fps});let r=e instanceof ct?e.config:e;return this._visionConfig={...r,visionBundle:this._visionBundle},this._visionBundle}vision(e,r={}){let n=`${e}\0${JSON.stringify(r)}`,i=this._clipVision.get(n);return i||(i=new Qr(e,this.fps,r),this._clipVision.set(n,i)),i}async prepareVision(e){this.linkClipMattes(),await Promise.all([...this._clipVision.values()].map(r=>r.ready(0,e)))}linkClipMattes(){if(this._clipVision.size===0)return;let e=r=>{if(!r||typeof r!="object")return;let n=r;if(n.kind==="media"&&n.dataType==="Video"&&typeof n.inputHandleId=="string"&&n.vision instanceof ct&&!(Di in n.vision)){let i=this.clipForMatte(n.inputHandleId,n.vision);i&&(i.keepSubjects(),Object.defineProperty(n.vision,Di,{value:i,enumerable:!1,configurable:!0}))}if(Array.isArray(n.children))for(let i of n.children)e(i)};for(let r of this.children)e(r)}clipForMatte(e,r){let n=r.mode??"passthrough";if(!(n!=="matte"&&n!=="mask"&&n!=="crop")&&!(r.matteSource==="selfie"||r.keyBackground===!0||r.classes!==void 0||r.enablePose===!0||r.enableMatte===!0||r.visionBundle!==void 0||(r.maskThreshold??.5)!==.5||r.featherRadius!==void 0))for(let i of this._clipVision.values()){let o=i.options;if(i.source===e&&(o.variant??"s")===(r.variant??"s")&&(o.confidence??.3)===(r.confidence??.3))return i}}async analyzeVisionSequence(e,r={}){let n=r.fps??this.fps,i=this.durationMs??await this.computeDuration(),o=r.totalFrames??Math.max(1,Math.round(i/1e3*n)),a=Pr.create({modelsDir:r.modelsDir,baseUrl:r.baseUrl,...r.confidence!==void 0?{confidence:r.confidence}:{},...r.variant!==void 0?{variant:r.variant}:{}}),s=bn.getVideo(e,!0);async function*l(){for(let c=0;c<o;c++){let m=await s.getFrame(c/n);m?.buffer&&m.width>0&&m.height>0&&(yield{data:m.buffer,width:m.width,height:m.height})}}try{return await Ai(l(),{runner:a,source:e,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{a.close(),s.destroy()}}onRequestFrame(e){return this._frameHooks.push(e),this}onPrepareFrame(e){return this._prepareHooks.push(e),this}notifyFrame(e){for(let r of this._frameHooks)r(e);if(!(this._clipVision.size===0&&this._prepareHooks.length===0))return(async()=>{await this.prepareVision(e.frame);for(let r of this._prepareHooks)await r(e)})()}hasFrameHooks(){return this._frameHooks.length>0||this._prepareHooks.length>0||this._clipVision.size>0}constructor(e){this.width=e.width,this.height=e.height,this.fps=e.fps??60,this.durationMs=e.durationMs??(e.durationFrames!==void 0?e.durationFrames/this.fps*1e3:void 0),this.backgroundColor=e.backgroundColor??"#000000",this.antialias3d=e.antialias3d,this.fonts=e.fonts??[],this.signals=e.signals??{}}static create(e){return new t(e)}addSignal(e,r){return this.signals[e]=r,this}add(e,...r){if(e instanceof Zt)this.children.push(e.toNode());else if(e instanceof Tr)this.children.push(e.toNode());else{if(e&&typeof e=="object"&&"node"in e)return this.add(e.node,...r),this;if(Array.isArray(e))for(let n of e)this.add(n);else{let n=e,i=r[0];if(i&&!(i instanceof Zt)&&!Array.isArray(i)&&(i instanceof ie||"tracks"in i))return n.animation=i instanceof ie?i.toSpec():i,this.children.push(n),this;this.children.push(n)}}for(let n of r)n&&!(n instanceof ie)&&!("tracks"in n)&&this.add(n);return this}addAudio(e){return this.audioTracks.push(e),this}addSubjectSandwich(e){let r=typeof e.source=="string"?e.source:e.source.inputHandleId??"",n=e.fit??"cover",i=e.feather??4,o=i>1?i/100:i,a=e.variant??"s",s=B.video(r,{width:this.width,height:this.height,position:"absolute",x:0,y:0,fit:n,muted:e.muted??!1,volume:e.muted?0:e.volume??1});this.add(s);for(let c of e.behind)this.add(c);let l=B.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:a,confidence:e.confidence??.25,featherRadius:o,keyBackground:e.keyBackground??!0,backgroundKeyThreshold:e.backgroundKeyThreshold});return this.add(l),this}addSmartFraming(e){let r=typeof e.source=="string"?e.source:e.source.inputHandleId??"",n=Math.max(0,Math.min(.99,e.damping??.8)),i=e.leadHeadroom??.18,o=this.width,a=this.height,s=e.sourceAspect??16/9,l=o/a,c=l<s?Math.round(a*s):o,m=l<s?a:Math.round(o/s),d=o-c,p=a-m,f=e.target,b=new Gt(v=>{if(d>=0)return 0;let C=f.center?.x?f.center.x.get(v):f.bounds?.centerX?f.bounds.centerX.get(v)/o:f.center?.screenX?f.center.screenX.get(v)/o:.5,M=Math.max(0,Math.min(1,C))*c,O=o/2-M;return Math.max(d,Math.min(0,O))},{fps:this.fps,label:"smart_framing_pan_x"}),g=new Gt(v=>{if(p>=0)return 0;let C=f.center?.y?f.center.y.get(v):f.bounds?.centerY?f.bounds.centerY.get(v)/a:f.center?.screenY?f.center.screenY.get(v)/a:.5,M=Math.max(0,Math.min(1,C))*m,O=a*i-M;return Math.max(p,Math.min(0,O))},{fps:this.fps,label:"smart_framing_pan_y"}),y=new Gt(v=>{let C=v.frame;if(C<=0)return b.get(v);let x=b.get({...v,frame:0,time:0}),M=1-n;for(let O=1;O<=C;O++){let _=b.get({...v,frame:O,time:O/v.fps});x=x+M*(_-x)}return x},{fps:this.fps,label:"smart_framing_smooth_x"}),S=new Gt(v=>{let C=v.frame;if(C<=0)return g.get(v);let x=g.get({...v,frame:0,time:0}),M=1-n;for(let O=1;O<=C;O++){let _=g.get({...v,frame:O,time:O/v.fps});x=x+M*(_-x)}return x},{fps:this.fps,label:"smart_framing_smooth_y"}),A=B.box({width:o,height:a,overflow:"hidden",position:"relative"}),T=B.video(r,{width:c,height:m,position:"absolute",x:y,y:S,fit:e.fit??"cover",muted:e.muted??!1,volume:e.muted?0:e.volume??1});return A.children||(A.children=[]),A.children.push(T),this.add(A),this}addSubjectOutline(e,r={}){let n=r.blur??12,i=this.width,o=this.height,a=r.pulseSignal,s=a?new Gt(m=>Math.max(0,Math.min(1,Number(a.get(m))||0)),{fps:this.fps,label:"outline_pulse"}):1,l=typeof r.source=="string"?r.source:r.source?.inputHandleId??"",c=B.box({width:i,height:o,position:"absolute",x:0,y:0,opacity:s});if(l){let m=B.video(l,{width:i,height:o,position:"absolute",x:0,y:0,fit:"cover",muted:!0,volume:0}).withVision({mode:"mask",enableSegmentation:!0});c.children||(c.children=[]),c.children.push(m)}return c.apply(new vt({strength:n,blurType:"Gaussian"})),this.add(c),this}section(e,r,n){let i,o,a={},s=e!==null&&typeof e=="object"&&"bounds"in e,l=typeof e=="string"||e!==null&&typeof e=="object"&&("kind"in e||"src"in e||"inputHandleId"in e);if(l&&r&&typeof r=="object"&&"bounds"in r?(i=e,o=r,a=n??{}):l&&r?(i=e,a=r):s?(o=e,a=r??{},i=a.source??o.source):e&&typeof e=="object"&&(a=e,i=a.source),!i){let c=this.children.find(m=>m.kind==="media"&&(m.dataType==="Video"||m.dataType==="Image"));c&&(i=c)}return B.section(i??"",o??a,{compositionWidth:this.width,compositionHeight:this.height,...a})}addSection(e,r,n){let i=this.section(e,r,n);return this.add(i),i}async computeDuration(){if(this.durationMs!==void 0)return this.durationMs;let e=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 o=((typeof n.startFrame=="number"?n.startFrame:0)+n.durationFrames)/this.fps*1e3;o>e&&(e=o)}}for(let n of r)try{let o=await(await vi.acquire(n)).computeDuration();if(Number.isFinite(o)&&o>0){let a=Math.round(o*1e3);a>e&&(e=a)}}catch{}return e>0?e:5e3}async registerFont(e,r){let n=await Ve.register(e,r);return n.filePath&&!this.fonts.includes(n.filePath)&&this.fonts.push(n.filePath),this}async registerEmojiFont(e){return await Ve.registerEmojiFont(e),this}toSpec(){let e=[...this.children,...this.audioTracks],r=Ve.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:e,fonts:n,signals:this.signals,...this._effects.length>0&&{effects:this._effects},...this._visionConfig&&{vision:this._visionConfig},...this.hasFrameHooks()&&{onRequestFrame:i=>this.notifyFrame(i)}}}toVirtualMedia(e={}){return yn(this.toSpec(),{isVideoMode:!0,fps:this.fps,durationMs:e.durationMs??this.durationMs,signals:e.signals??this.signals,...this._effects.length>0&&{effects:this._effects},...this._visionConfig&&{vision:this._visionConfig},...e})}async toVirtualMediaAsync(e={}){let r=e.durationMs??this.durationMs??await this.computeDuration();return this.durationMs=r,yn(this.toSpec(),{isVideoMode:!0,fps:this.fps,durationMs:r,signals:e.signals??this.signals,...this._effects.length>0&&{effects:this._effects},...this._visionConfig&&{vision:this._visionConfig},...e})}async renderFrame(e={}){if(this.hasFrameHooks()){let n=e.frame??(e.atMs!==void 0?Math.round(e.atMs/1e3*this.fps):0);await 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(e.renderer??new ve.HeadlessMediaRenderer).renderFrame(this.toVirtualMedia(),{fps:this.fps,...e})}async renderFrameGrid(e={}){return en(this,e)}async renderVideo(e={},r={}){let n=typeof e=="string"?{...r,outputPath:e}:e,o=await(n.renderer??new ve.HeadlessMediaRenderer).renderVideo(this.toVirtualMedia(),n);if(o.qa){let a=this.lint(),s=[...o.qa.issues,...a.map(l=>({severity:l.severity,code:l.code,message:l.message,...l.layerId!==void 0&&{layerId:l.layerId}}))];o.qa={...o.qa,issues:s,passed:o.qa.passed&&!a.some(l=>l.severity==="error")}}return wd(o,n.outputPath)}lint(){return Ao(this.toSpec())}};function we(t){let e=t;Object.defineProperty(e,"animate",{value:(...n)=>{let i=n.flat().flatMap(l=>l instanceof ie?l.tracks:l.tracks??[]),o=e.animation,a=o?.tracks??[],s=n.flat().map(l=>l.frameStep).filter(l=>l!==void 0).at(-1)??o?.frameStep;return e.animation={tracks:Lr([...a,...i]),...s!==void 0&&s>1&&{frameStep:s}},e},enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(e,"pinToLandmark",{value:(n,i)=>(Oi(e,n,i),e),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(e,"pinToObject",{value:(n,i)=>(Ri(e,n,i),e),enumerable:!1,writable:!0,configurable:!0});let r=(n,i)=>(e.matte={node:n,...i&&{mode:i}},e);for(let n of["withMatte","withMask"])Object.defineProperty(e,n,{value:r,enumerable:!1,writable:!0,configurable:!0});return Object.defineProperty(e,"withPbrGlass",{value:n=>(e.glass=n??{},e),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(e,"deformWithAudio",{value:n=>(e.audioDeform=n??{},e),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(e,"withCrop",{value:n=>(e.crop=n instanceof Ar?n:new Ar(n),e),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(e,"withVision",{value:n=>(e.vision=n instanceof ct?n:new ct(n),e),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(e,"withRelighting",{value:n=>(e.relighting=n??{},e),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(e,"relight",{value:n=>(e.relighting=n??{},e),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(e,"withDeflicker",{value:n=>(e.deflicker=n??{},e),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(e,"apply",{value:n=>(e.effects||(e.effects=[]),e.effects.push(n),e),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(e,"withEffect",{value:n=>(e.effects||(e.effects=[]),e.effects.push(n),e),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(e,"withEffects",{value:n=>(e.effects||(e.effects=[]),e.effects.push(...n),e),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(e,"section",{value:(n={},i)=>n!==null&&typeof n=="object"&&"bounds"in n?B.section(e,n,i):B.section(e,n),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(e,"blurRegion",{value:(n,i)=>{let o=new vt({track:n,strength:i?.strength??25,shape:i?.shape??"ellipse",...i});return e.effects||(e.effects=[]),e.effects.push(o),e},enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(e,"withBlurRegion",{value:(n,i)=>e.blurRegion(n,i),enumerable:!1,writable:!0,configurable:!0}),e}var B={video:(t,e={})=>we({id:e.id??Q("video"),kind:"media",inputHandleId:t,dataType:"Video",fit:e.fit??"cover",...e}),image:(t,e={})=>(typeof t=="string"&&(/\.(json|lottie)(\?.*)?$/i.test(t)||t.startsWith("data:application/json")?console.warn(`[Layer.image] '${t}' is a Lottie vector animation, not a static image. Use Layer.lottie('${t}', options) instead.`):/\.(mp4|mov|webm|mkv)(\?.*)?$/i.test(t)?console.warn(`[Layer.image] '${t}' is a video file, not a static image. Use Layer.video('${t}', options) instead.`):/\.(mp3|wav|ogg|m4a|aac)(\?.*)?$/i.test(t)&&console.warn(`[Layer.image] '${t}' is an audio file, not a static image. Use Layer.audio('${t}', options) instead.`)),we({id:e.id??Q("img"),kind:"media",inputHandleId:t,dataType:"Image",fit:e.fit??"cover",...e})),svg:(t,e={})=>we({id:e.id??Q("svg"),kind:"media",inputHandleId:t,dataType:"SVG",fit:e.fit??"contain",...e}),lottie:(t,e={})=>we({id:e.id??Q("lottie"),kind:"media",inputHandleId:t,dataType:"Lottie",fit:e.fit??"contain",...e}),audio:(t,e={})=>we({id:e.id??Q("audio"),kind:"media",inputHandleId:t,dataType:"Audio",volume:e.volume??1,...e}),text:(t,e={})=>{let r=Array.isArray(t),n=!r&&typeof t=="object"&&t!==null,i=n?t:e,o="",a=i.spans;if(r){let s=Cn(t);o=s.text,a=s.spans}else n?i.spans&&!i.text?o=Cn(i.spans).text:o=i.text??"":o=typeof t=="string"?t:String(t??"");return we({id:i.id??Q("text"),kind:"text",fontFamily:i.fontFamily??Ve.getAll()[0]?.family??"Inter",fontSize:i.fontSize??48,fill:i.fill??"#ffffff",...i,text:i.text??o,spans:i.spans??a})},caption:(t,e={})=>we({id:e.id??Q("caption"),kind:"media",inputHandleId:t,dataType:e.dataType??"Caption",fontFamily:e.fontFamily??Ve.getAll()[0]?.family??"Inter",fontSize:e.fontSize??48,fill:e.fill??"#ffffff",...e}),shape:(t="rect",e={})=>{let{fill:r,...n}=e;return we({id:n.id??Q("shape"),kind:"shape",shapeType:n.shapeType??t,...n,fillColor:n.fillColor??r??"#3b82f6"})},flex:(t={})=>we({id:t.id??Q("flex"),kind:"flex",dir:t.dir??"column",children:t.children??[],...t}),box:(t={})=>we({id:t.id??Q("box"),kind:"box",background:t.background??"transparent",children:t.children??[],...t}),particles:t=>{let e=new Jr(t),r={metadata:{width:t.width,height:t.height},operation:{...e.toOperation(),effect:e,dataType:"Video"},children:[]};return we({id:t.id??Q("particles"),kind:"media",dataType:"Video",src:r,position:"absolute",x:t.x??0,y:t.y??0,width:t.width,height:t.height,...t.startFrame!==void 0&&{startFrame:t.startFrame},...t.durationFrames!==void 0&&{durationFrames:t.durationFrames},...t.zIndex!==void 0&&{zIndex:t.zIndex}})},vfx:t=>{let{x:e,y:r,id:n,startFrame:i,durationFrames:o,zIndex:a,...s}=t,l=new $i({outputType:"Video",...s}),c={metadata:{width:t.width,height:t.height},operation:{...l.toOperation(),effect:l,dataType:"Video"},children:[]};return we({id:n??Q("vfx"),kind:"media",dataType:"Video",src:c,position:"absolute",x:e??0,y:r??0,width:t.width,height:t.height,...i!==void 0&&{startFrame:i},...o!==void 0&&{durationFrames:o},...a!==void 0&&{zIndex:a}})},section:(t,e={},r={})=>{let n=t;if(t&&typeof t=="object"&&"toSpec"in t&&"children"in t){let x=(t.children||[]).find(M=>M.kind==="media"&&(M.dataType==="Video"||M.dataType==="Image"));x&&(n=x)}let i=e!==null&&typeof e=="object"&&"bounds"in e,o=i?r:e,a=i?e:void 0,s=o.padding??0,l=typeof n=="string"?n:n?.inputHandleId??n?.src??"",c=typeof n=="object"&&n?.dataType?n.dataType:"Video",m=o.compositionWidth??o.compWidth??(i?o.width:void 0)??1920,d=o.compositionHeight??o.compHeight??(i?o.height:void 0)??1080,p=Array.isArray(o.effects)?[...o.effects]:o.effects?[o.effects]:[],f=a?a.bounds.screenX.multiply(-1).add(s):typeof o.x=="number"?-o.x:o.x&&typeof o.x.multiply=="function"?o.x.multiply(-1):0,b=a?a.bounds.screenY.multiply(-1).add(s):typeof o.y=="number"?-o.y:o.y&&typeof o.y.multiply=="function"?o.y.multiply(-1):0,g=(c==="Image"?B.image(l,{position:"absolute",width:m,height:d,fit:o.fit??"cover",x:f,y:b}):B.video(l,{position:"absolute",width:m,height:d,fit:o.fit??"cover",x:f,y:b})).withEffects(p),y=a?a.bounds.screenWidth.add(s*2):o.width!==void 0?o.width:m,S=a?a.bounds.screenHeight.add(s*2):o.height!==void 0?o.height:d,A=[g,...o.children??[]],T=o.id??(a?Q(`section-track-${a.trackId}`):Q("section")),v=B.box({id:T,position:o.position??"absolute",width:y,height:S,x:a?void 0:o.x,y:a?void 0:o.y,borderRadius:o.borderRadius??0,borderColor:o.borderColor,borderWidth:o.borderWidth,opacity:o.opacity??1,overflow:"hidden",children:A});a&&(v=v.pinToObject(a,{anchor:"topLeft",offsetX:-s,offsetY:-s,hideWhenLost:o.hideWhenLost??!0,smoothFrames:o.smoothFrames}));let C=v;return Object.defineProperty(C,"innerMedia",{value:g,enumerable:!0,writable:!1}),Object.defineProperty(C,"effects",{get:()=>p,enumerable:!0}),Object.defineProperty(C,"addEffect",{value:x=>(p.push(x),g.effects=p,C),enumerable:!0,writable:!1}),Object.defineProperty(C,"withEffect",{value:x=>C.addEffect(x),enumerable:!0,writable:!1}),Object.defineProperty(C,"withEffects",{value:x=>{for(let M of x)C.addEffect(M);return C},enumerable:!0,writable:!1}),C},trackedRegion:(t,e,r={})=>B.section(t,e,r),blurTrackedRegion:(t,e,r={})=>{let{padding:n,borderRadius:i,borderColor:o,borderWidth:a,...s}=r;return B.section(t,e,{padding:n??8,borderRadius:i??12,borderColor:o,borderWidth:a,effects:[new vt({strength:s.strength??25,blurType:s.blurType??"Gaussian",...s})]})},chart:(t,e={})=>xc(t,e,Ve.getAll()[0]?.family??"Inter"),camera:(t={})=>we({id:t.id??Q("camera"),kind:"camera",mode:t.mode??"lookAt",pitch:t.pitch??0,yaw:t.yaw??0,roll:t.roll??0,...t}),light:(t={})=>we({id:t.id??Q("light"),kind:"light",lightType:t.lightType??"point",color:t.color??"#ffffff",intensity:t.intensity??1,...t}),ambientLight:(t="#ffffff",e=.5,r={})=>it.ambient(t,e,r),sequence:(t,e)=>Tc(t,e),environment:(t="studio",e={})=>it.environment(t,e),directionalLight:(t={})=>it.directional(t),pointLight:(t={})=>it.point(t),spotLight:(t={})=>it.spot(t),cube:t=>rt.cube(t),carousel3d:t=>rt.carousel(t),plane3d:t=>rt.plane(t),prism3d:t=>rt.prism(t),model:(t={})=>we({id:t.id??Q("model3d"),kind:"model3d",is3D:t.is3D??!0,modelFormat:t.modelFormat??"auto",loop:t.loop??!0,scale:t.scale??1,scaleX:t.scaleX??1,scaleY:t.scaleY??1,scaleZ:t.scaleZ??1,opacity:t.opacity??1,...t}),obj:(t,e={})=>B.model({src:t,modelFormat:"obj",...e}),fbx:(t,e={})=>B.model({src:t,modelFormat:"fbx",...e}),gltf:(t,e={})=>B.model({src:t,modelFormat:"gltf",...e}),glb:(t,e={})=>B.model({src:t,modelFormat:"glb",...e}),stl:(t,e={})=>B.model({src:t,modelFormat:"stl",...e}),ply:(t,e={})=>B.model({src:t,modelFormat:"ply",...e}),vox:(t,e={})=>B.model({src:t,modelFormat:"vox",...e}),threeDS:(t,e={})=>B.model({src:t,modelFormat:"3ds",...e}),off:(t,e={})=>B.model({src:t,modelFormat:"off",...e})},it={environment:(t="studio",e={})=>{let r=typeof t=="string"?{preset:t,...e}:{...t,...e};return we({kind:"light",lightType:"environment",preset:"studio",intensity:1,...r,id:r.id??Q("environment")})},ambient:(t="#ffffff",e=.5,r={})=>we({id:r.id??Q("light-ambient"),kind:"light",lightType:"ambient",color:t,intensity:e,...r}),directional:(t={})=>we({id:t.id??Q("light-directional"),kind:"light",lightType:"directional",color:t.color??"#ffffff",intensity:t.intensity??1,x:t.x??0,y:t.y??-1e3,z:t.z??-1e3,targetX:t.targetX??0,targetY:t.targetY??0,targetZ:t.targetZ??0,...t}),point:(t={})=>we({id:t.id??Q("light-point"),kind:"light",lightType:"point",color:t.color??"#ffffff",intensity:t.intensity??1,x:t.x??0,y:t.y??0,z:t.z??-500,radius:t.radius??1e3,decay:t.decay??1,...t}),spot:(t={})=>we({id:t.id??Q("light-spot"),kind:"light",lightType:"spot",color:t.color??"#ffffff",intensity:t.intensity??1,x:t.x??0,y:t.y??-500,z:t.z??-1e3,targetX:t.targetX??0,targetY:t.targetY??0,targetZ:t.targetZ??0,angle:t.angle??45,penumbra:t.penumbra??.2,radius:t.radius??2e3,decay:t.decay??1,...t})};function GC(t,e={},r={}){return B.section(t,e,r)}function $C(t,e,r={}){return typeof t=="object"&&"blurRegion"in t?t.blurRegion(e,r):B.blurTrackedRegion(t,e,r)}function WC(t,e,r={}){return B.section(t,e,r)}var yy=Object.assign($t,Wi,{blur:t=>new vt(t),vignette:t=>new Yt(t),colorBalance:t=>new Li(t),colorKey:t=>new Ei(t),levels:t=>new Hi(t),filmGrain:t=>new Qe(t),curves:t=>new Xi(t),selectiveColor:t=>new qi(t),gradientMap:t=>new St(t),shadowsHighlights:t=>new Zi(t),applyLut:t=>new Ki(t),unsharpMask:t=>new Qi(t),highPass:t=>new Ji(t),halftoneScreen:t=>new Cr(t),tileOffset:t=>new eo(t),motionBlur:t=>new to(t),ssao:t=>new ro(t),pbrGlass:t=>new no(t),depthOfField:t=>new io(t),crop:t=>new Ar(t),vision:t=>new ct(t),relight3d:t=>new oo(t),modulate:t=>new so(t),deflicker:t=>new ao(t),custom:(t,e={})=>new Yi(t,e)});var export_HeadlessMediaRenderer=ve.HeadlessMediaRenderer;var export_HeadlessWebGPURenderer=ve.HeadlessWebGPURenderer;var export_formatQaReport=ve.formatQaReport;var export_renderSemaphore=ve.renderSemaphore;var export_resetRenderCaches=ve.resetRenderCaches;export{qt as AETextAnimatorSchema,ho as AdvancedTextAnimatorBuilder,yo as AdvancedTextAnimatorSchema,Bs as AnchorGroupingSchema,Ls as AnchorPresetSchema,iu as AnimatableGlyphPropsSchema,A0 as AnimationTypeSchema,T0 as AnyOutputUnionSchema,_e as ApiError,Ki as ApplyLUT,Bi as Ascii,Hm as AudioCompressor,Ym as AudioDelay,h0 as AudioExtractorSignalDataSchema,Xm as AudioFade,Od as AudioLatentEngine,Rd as AudioLatentTrackCache,xm as AudioMeshDeformPipeline,qm as AudioNoiseGate,Zm as AudioParametricEq,Km as AudioReverb,jm as AudioSignal,wp as AudioSignalExtractor,Us as AudioSpectrumTypographySchema,U0 as BaseMediaOperationPropsSchema,L0 as BaseVideoLayerPropsSchema,Bu as BloomConfigSchema,vt as Blur,Iu as BoxNodeSchema,Q0 as CAPTION_LAYER_DEFAULTS,Em as COCO17_BONES,Lm as COCO17_KEYPOINTS,xn as COCO17_KEYPOINT_NAMES,Fm as COCO_CLASSES,s0 as COMPOSITE_OPERATIONS,c0 as COMPOSITOR_DEFAULTS,Mr as CRT,Ed as Camera3D,Mo as CameraAnimation,Du as CameraNodeSchema,Qm as CameraParallax3D,Rr as CannyComputePipeline,Wu as CarrierHandoffConfigSchema,Jm as ChannelMerger,ep as ChannelSplitter,js as ChromaticGlitchConfigSchema,Qr as ClipVision,xi as Color,Li as ColorBalance,Ei as ColorKey,Pf as ColorStopSchema,xd as Composition,Tf as CompositorProgramSchema,By as ConfigHandleSchema,l0 as ConfigSchemaRegistry,Ii as Contour,Or as ControlNetMultiplexer,tp as CornerPin,Ar as Crop,Hs as CubicBezierSegmentSchema,Xi as Curves,Yi as CustomEffect,o0 as DATA_TYPE_EXTENSIONS,yc as DEFAULT_CHART_COLORS,q0 as DEFAULT_DURATION_MS,X0 as DEFAULT_FPS,Z0 as DEFAULT_MEDIA_DIMENSION,Vy as DataType,zy as DataTypeVal,_y as DataTypes,rp as Datamosh,Fr as DepthNormalsComputePipeline,io as DepthOfField,np as DisplacementMap,zi as Dither,Vs as DynamicStrokePropertiesSchema,Mx as ENVIRONMENT_PRESETS,Rx as Easing,yy as Effect,gm as EffectPipeline,Up as EnhancedTextNodeSchema,Fu as EnvironmentFogSchema,Ou as EnvironmentPresetSchema,C0 as ExportResultSchema,jp as ExpressionSelectorSchema,Ws as ExtendedGlyphPropertiesSchema,Y0 as ExtendedLayerSchema,ip as ExtractLUT,uo as FRAMEFIELDS_AI_PROXY_URL,Gy as FileAssetSchema,d0 as FileDataSchema,Qe as FilmGrain,Eu as FlexNodeSchema,op as Flip,Ve as FontManager,f0 as GeneratorSignalDataSchema,vo as GlassPipeline,u0 as GlobalCompositeOperation,ou as GlyphAnchorGroupingSchema,au as GlyphAnchorPointSchema,ap as Gooey,gx as Gradient,St as GradientMap,Cr as HalftoneScreen,jy as HandleTypeVal,export_HeadlessMediaRenderer as HeadlessMediaRenderer,export_HeadlessWebGPURenderer as HeadlessWebGPURenderer,Ji as HighPass,Vi as Iridescence,Uy as JsonValueSchema,_i as Kaleidoscope,sp as KenBurns,bo as KineticMarqueeConfigSchema,Dx as LIGHT_UNIFORM_SIZE_BYTES,B as Layer,rt as Layer3D,ie as LayerAnimation,ji as LayerStyle,Ro as LayoutNodeSchema,Hi as Levels,it as Light,Id as Light3D,Lu as LightNodeSchema,Nu as LightTypeSchema,lb as Lighting,Vp as LineSpacingDynamicsSchema,up as Liquify,Gs as LongShadowConfigSchema,mx as MAX_GRADIENT_STOPS,Ax as MAX_LIGHTS,a0 as MIME_TYPES,lp as MaskMath,Mu as MaterialTypeSchema,lt as Matrix4Math,Do as MatteModeSchema,yd as Media,V0 as MediaMetadataSchema,ju as MediaNodeSchema,W0 as MediaOperationSchema,z0 as MediaSourceSchema,cp as MeshWarp,Gu as Model3DNodeSchema,Oy as ModerationError,Ry as ModerationUnrefundableError,so as Modulate,to as MotionBlur,So as MotionBlurPipeline,P0 as MultiOutputGenericSchema,Ly as NodeMetadataSchema,M0 as NodeResultSchema,$y as NodeVisualConfigSchema,dp as NoiseGenerator,Ui as OpArt,Mi as OpticalFlowComputePipeline,v0 as OutputItemSchema,no as PBRGlass,mp as Paint,wn as Painterly,$s as ParticleDissolveConfigSchema,Jr as Particles,pp as PatchHeal,fo as Path3D,ni as PersonTrack,Pb as Physics,rn as PhysicsBody2D,nn as PhysicsBody3D,gr as PhysicsWorld2D,br as PhysicsWorld3D,Gi as Pixelate,Im as PoseSkeletonRenderer,Ht as Posterize,$i as ProceduralVFX,Gt as ProgrammaticSignal,vn as RGBSplit,fp as RefineEdge,hp as RefractionCaustics3D,oo as Relight3D,ym as Renderer2D,vm as Renderer3D,gp as ResizerScaler,bp as Rotate,ro as SSAO,Po as SSAOPipeline,Er as Scene,Mf as SceneDefinitionSchema,$u as SceneTransitionTypeSchema,zm as SegmentationTexturePool,qi as SelectiveColor,Tn as SelectorBasedOnSchema,Mn as SelectorModeSchema,Js as SelectorShapeSchema,Qs as SelectorUnitsSchema,Fo as Sequence,ko as ShadowPipeline,Zi as ShadowsHighlights,Uu as ShapeNodeSchema,Sr as Signal,p0 as SignalChannelMetaSchema,y0 as SignalDataSchema,b0 as SignalGateDataSchema,g0 as SignalMathDataSchema,m0 as SignalStatsSchema,k0 as SingleOutputGenericSchema,zp as SkewPropertiesSchema,Wt as SlugFontCache,bm as SlugPipeline,G0 as SourceOperationSchema,_p as Spatial3DPropertiesSchema,_m as SpatialLandmarkTransformer,zs as SpringPhysicsSchema,yp as StereoPanning,Tb as Styles,K0 as TEXT_LAYER_DEFAULTS,ao as TemporalDeflicker,Ci as TemporalDeflickerPipeline,Bm as TemporalObjectTracker,Zt as TensorPipeline,Es as TextAnchorConfigSchema,bf as TextAnimator,wo as TextAnimatorBuilder,Au as TextAnimatorSchema,qs as TextCursorConfigSchema,Xs as TextCursorStyleSchema,_u as TextNodeSchema,$0 as TextOperationSchema,xo as TextPathBuilder,Xt as TextPathOptionsSchema,Ys as TextPathSourceSchema,eu as TextRangeSelectorSchema,Ks as TextScrambleConfigSchema,nu as TextSelectorSchema,ru as TextSignalSelectorSchema,zu as TextSpanMarkSchema,Vu as TextSpanSchema,tu as TextWigglySelectorSchema,eo as TileOffset,_0 as TimelineSegmentSchema,j0 as TimelineTransformSchema,Ru as ToneMappingSchema,Sn as Toon,xp as Trails,Pc as Transition,I0 as TransitionSchema,E0 as TransitionTypeSchema,Pn as TypewriterAnimatorSchema,Zs as TypingCadenceSchema,Qi as UnsharpMask,Dr as ValidationError,_s as VariableFontAxesSchema,Nr as Vec2Schema,Z as Vector3Math,D0 as VideoAnimationSchema,B0 as VideoLayerTypeSchema,N0 as VideoSpatialPropsSchema,F0 as VideoStylePropsSchema,R0 as VideoTextPropsSchema,O0 as VideoTimingPropsSchema,Yt as Vignette,H0 as VirtualMediaDataSchema,ct as Vision,Ni as VisionBundle,Tr as VisionNode,Pr as VisionRunner,go as VolumetricFormationConfigSchema,Is as VolumetricFormationModeSchema,Yp as accent,Ip as ai,bd as analyzeAudio,Ai as analyzeSequence,is as appendOperation,Om as applyStaggerToChildren,ox as assertNever,Ox as bezier,gy as bindComponent,$C as blurRegion,Wp as bold,qd as buildPathLUT,Hu as calculateSequenceTimeline,kx as checkNodeResultCache,Jp as code,Rm as collectNodeOps,Xp as color,yn as compositorToProgram,nm as computeAnchorPivotOffset,Cf as computeCarrierContinuity,Aa as computeGridLayout,Mm as computeLayout,Tm as computeLayoutSync,im as computeLineLeadingDisplacement,lm as computeRangeSelectorWeight,Nm as computeStaggerDelay,Jw as computeStrokeRect,ix as computeVideoCropRenderProps,Cd as computed,Nd as cosineSignal,S0 as createOutputItemSchema,ns as createVirtualMedia,i0 as dataTypeColors,Ga as defineTheme,Zy as degrees,ss as describeGpu,w0 as deserializeSignalData,cm as deterministicWigglyNoise,Yd as distanceToCurveParameter,WC as editTrackedRegion,Wi as effectFactories,Wm as effectMeta,Kd as ellipseToCubicBeziers,Fi as encodeStereoWav,Ld as ensureDevice,Am as evaluateAnimationAtFrame,$d as evaluateCubicBezier,Wd as evaluateCubicBezierDerivative,om as evaluateExpressionSelector,sm as evaluateMarqueeOffset,mm as evaluateSelectorCombination,rm as evaluateSkewMatrix,tm as evaluateSpringProgress,Cm as evaluateTrackAtFrame,fm as evaluateTypewriterState,am as evaluateVolumetricFormation,Tx as extractSvgDimensions,Sx as findSourceAsset,ux as formatHex,export_formatQaReport as formatQaReport,Xy as fps,Wy as frame,rs as frameArraySignal,Cy as frameSignal,Hd as generateArcLengthLUT,Fy as generateId,em as generatePathSegments,nx as getActiveMediaMetadata,rx as getFileDataMetadata,yx as getFingerprint,J0 as getLeafMediaType,tx as getMediaType,xx as getRenderFingerprint,pm as getScramblePool,dm as getShuffledOrder,hx as gradientStopsToOklab,Jy as handleId,e0 as handleLabel,vx as hasOnlySingleSource,Dm as hoistMattes,vi as inputStore,Fx as interpolate,px as isCssGradient,bx as isEqual,r0 as isFrameIndex,n0 as isNormalized,Ty as isSignal,My as isValueSignal,wx as isVirtualMediaData,Hp as italic,fx as limitGradientStops,Ao as lintComposition,Ud as loadFBX,Sm as loadModel3D,_d as loadOBJ,Gd as lutStore,qw as mapBlendModeToSkia,Zp as mark,Ix as measureSpring,Vx as measureText,_x as measureTextAsync,Lr as mergeAnimationTracks,Pm as mixAudioTracks,lx as mixColors,Gm as mixSfxInto,Yy as ms,t0 as nodeId,dx as normalizeColorStops,Cn as normalizeTextSpans,qy as normalized,sx as oklabToRgb,Nx as parseColorToRgb,yi as parseCssColor,os as parseCssGradient,jd as parseFBX,Vd as parseMTL,ef as parseMarkup,zd as parseOBJ,Jd as parseSvgPathToCubicBeziers,Oi as pinNodeToLandmark,Ri as pinNodeToObject,Qy as pixels,Lx as preloadCompositionFonts,Bx as preloadFont,xy as programmaticSignal,Dy as progressSignal,ay as pulseKeys,Ky as radians,Py as registerSignalDependency,en as renderFrameGrid,export_renderSemaphore as renderSemaphore,Um as renderSfx,Ey as reportRenderDiagnostic,Zw as requiresIsolation,export_resetRenderCaches as resetRenderCaches,Sy as resolveBoolean,Cx as resolveEnvironment,ex as resolveMediaMimeType,wy as resolveNumber,ky as resolveParam,Ca as resolveSamplePoints,vy as resolveString,ax as rgbToOklab,Gp as rich,um as sampleAudioSpectrumScale,cx as sampleColorStops,Xd as sampleCurveGeometry,Zd as samplePathChainGeometry,Hy as seconds,GC as section,x0 as serializeSignalData,Fd as shaderStore,Md as signal,Ad as signalBuilder,Bd as signalRegistry,Dd as sineSignal,qp as size,$m as softLimit,$p as span,zx as spring,Ex as springCalculation,Px as stampResult,zb as startPreview,Qp as sub,Kp as sup,Iy as takeRenderDiagnostics,hm as textureCache,dd as themes,Ay as timeSignal,Ny as updateClockSignals,Qd as waveToCubicBeziers};