From 5b747606c709bde69c1d61371e485eff828fc9b6 Mon Sep 17 00:00:00 2001 From: locphamtran Date: Mon, 24 Aug 2026 19:28:22 +0700 Subject: [PATCH] Rebrand SonicForge Studio -> ScoreFX Studio: UI names, About logo, favicon + icons for all exe builds --- app/core/wav_bwf.py | 2 +- app/main.py | 4 ++-- app/static/img/scorefx_app.png | Bin 0 -> 217308 bytes app/static/img/scorefx_favicon.png | Bin 0 -> 26040 bytes app/static/js/app.jsx | 10 +++++----- app/static/js/app.precompiled.js | 6 +++--- app/templates/index.html | 6 +++--- build/scripts/build_windows.ps1 | 4 ++-- build_windows.ps1 | 4 ++-- desktop_engine.py | 4 ++-- engine.spec | 4 ++-- native_bridge/CMakeLists.txt | 6 ++++++ native_bridge/src/app.rc | 1 + native_bridge/src/app_icon.ico | Bin 0 -> 21699 bytes scorefx_app.png | Bin 0 -> 217308 bytes scorefx_favicon.png | Bin 0 -> 26040 bytes .../daw_vst_bridge-x86_64-pc-windows-msvc.exe | Bin 1827840 -> 1857024 bytes src-tauri/binaries/daw_vst_bridge.exe | Bin 1827840 -> 1857024 bytes .../fx_vst_bridge-x86_64-pc-windows-msvc.exe | Bin 362496 -> 385024 bytes src-tauri/binaries/fx_vst_bridge.exe | Bin 362496 -> 385024 bytes .../plugin_host-x86_64-pc-windows-msvc.exe | Bin 185856 -> 208384 bytes src-tauri/binaries/plugin_host.exe | Bin 185856 -> 208384 bytes src-tauri/icons/128x128.png | Bin 18042 -> 11400 bytes src-tauri/icons/128x128@2x.png | Bin 49859 -> 30543 bytes src-tauri/icons/32x32.png | Bin 2208 -> 1519 bytes src-tauri/icons/favicon.ico | Bin 32892 -> 21699 bytes src-tauri/icons/icon.ico | Bin 6297 -> 51235 bytes src-tauri/icons/icon.png | Bin 3709 -> 92729 bytes src-tauri/src/lib.rs | 2 +- src-tauri/tauri.conf.json | 2 +- 30 files changed, 31 insertions(+), 24 deletions(-) create mode 100644 app/static/img/scorefx_app.png create mode 100644 app/static/img/scorefx_favicon.png create mode 100644 native_bridge/src/app.rc create mode 100644 native_bridge/src/app_icon.ico create mode 100644 scorefx_app.png create mode 100644 scorefx_favicon.png diff --git a/app/core/wav_bwf.py b/app/core/wav_bwf.py index 1107133..4175ef9 100644 --- a/app/core/wav_bwf.py +++ b/app/core/wav_bwf.py @@ -29,7 +29,7 @@ def _info_sub(fourcc, text): def _bext(md, now): fixed = bytearray(_BEXT_FIXED) fixed[0:256] = _pad(md.get("description", ""), 256) - fixed[256:288] = _pad(md.get("originator", "SonicForgeStudio"), 32) + fixed[256:288] = _pad(md.get("originator", "ScoreFXStudio"), 32) fixed[288:320] = _pad(md.get("originator_reference", ""), 32) fixed[320:330] = _pad((md.get("date") or now.strftime("%Y-%m-%d")), 10) fixed[330:338] = _pad((md.get("time") or now.strftime("%H:%M:%S")), 8) diff --git a/app/main.py b/app/main.py index 8f0a2df..d6247ec 100644 --- a/app/main.py +++ b/app/main.py @@ -44,7 +44,7 @@ async def lifespan(app: FastAPI): _SF_SCANNER_STOP.set() -app = FastAPI(title="SonicForge API Engine", lifespan=lifespan) +app = FastAPI(title="ScoreFX API Engine", lifespan=lifespan) app.add_middleware(GZipMiddleware, minimum_size=500) @@ -124,7 +124,7 @@ async def health(): async def get_index(): index_path = os.path.join(settings.TEMPLATES_DIR, "index.html") if not os.path.exists(index_path): - return HTMLResponse(content=f"

SonicForge Studio: index.html not found at {index_path}

", status_code=404) + return HTMLResponse(content=f"

ScoreFX Studio: index.html not found at {index_path}

", status_code=404) with open(index_path, "r", encoding="utf-8") as file: resp = HTMLResponse(content=file.read(), status_code=200) # no-cache: index.html PHẢI luôn mới (các bundle JS dùng ?v= để bust) — diff --git a/app/static/img/scorefx_app.png b/app/static/img/scorefx_app.png new file mode 100644 index 0000000000000000000000000000000000000000..7aa1d85f147e512e628c1dc6ef41fde5c50cd766 GIT binary patch literal 217308 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Ž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 z W>H7XLFrc%JU+>btd${ckh5g_R|K7#fOr5%C5hX(ibQRd;UY+ff(C$IM>Od@Ju z!2*qHI)e!j?FN>njdiL=w-eIOR9JWk9}g}Y&nttaCL!(d@w9UqUg6>J*jTazgDY$^S+MORDB<G-t)34j zkAqf^Cg>{+@@{Tl)kF1-N^%V=Ih7S%sL>TvAKQ(3(`qQ`sw28zzpD$IB|4~Lv9QNw zx3#n%G?o_kk!%C5cJZ>Lf(XX9%%J8p|y~>9ZmX<$#zAj4+ z;iJBn(!Gj7FAhU(G*Oes&fcBzjw+z7Yly5co}A#x%@|WR5Bi=+o|nSAWVEz&_+?Ka z!#GNvt-}`z+yBW!&Igw%uMes3u2}_JJrp7onZHl5)L^0XcFc557Oc0{Mn*etWL;kJ zV9L?rBp8*GTARKzci)vM*`X@gq+|k3O%Fd83RBVu!`lPhZmx^c57)VtKb~wKf2KzN z5R@|2KBkS^k}7spj#0giUdu#a7JNeUv(YUM)%N*d-|E$xV^aJW z$S2YtJ8j?k%Wv}s*73KjkB2w?m%yXh*rYB7zKW&(zy6#WE{9%=3SL^%~YRC`7r-HEsq zy~^yf@!!(ZZm41Kw428~Sj>0n2qW6*w%Ks!6$Eg5;RQyDIbt;JO!q$NTm~6j&UTDd~g^y05mYDXE zHGW2b{%W9vTYE7G`YlL@s`$W& zArf87Zbg&^8hJ`MH8g9?Z|&&Ryp71@D~y00i9r=jYBv*?<4XOzYVwi`N{=h42xdH*=XvNAjX&aH9Wj#Gg&a6`n@ll#*_uiE@rZ<{tFz!(;{ zW4>Fp3-H|(^%_nC|892cG=liqzQP+jnLyLDKuRuTJre)shGV2w@&$9kK~>pMvGic$ zSu2V?4}%A#Ux&10buD@Rc&Wn<7j$$q!6-n`3v6|v!YE;z;2x0lRVeBI(MO$Y+_gXdr#uzMf~^G%)GLrUY;Kgr0D3!@F<`Mq*cN z4H<~m(8MQ0L@0lsKu`_G`TKcbR|M$~XDg2%dx7?HSLAwi^Q*vpIsLjmHlLHRdm-&l zhW5~r_S2X1V-8+zFl!Io*U8+vY}K*}gNM7ge3*LIJx4Uq>S!#~X>1 zZuXcqfZT0i97^g?r48{*K(4Y%nEM_Cp_IQHxtUJ-pEje3-qO*@JM&2g}D z;|S=l*su11;l!t1o@H9;C#R${^<(QYj10RLpvt5|^A9TDHGAVWrlu9OWeKb`zvI_6Z85R2%q4^gLk+mR`KSv_Ccw;zFZXN5L%@fb?N8?sArI8ea zWHJZ6@6fd;ZCox&X_&oRsGM0rD`sVN%gJV`r8F3JZ!}WE70I)937+h_u~&pfhX0U8 zg~~T5YU23R&1M(OpJZ;a-}}qBb`Y`zcJ_3teSzfLvQ;;%@%30E1N{Q_j7dF;`RwXv zA;ERq=;(!XPNacv>z^k&d?8L^7mBNM&uXUFv%fsWILAlFK2G#Gff&DCzv-l~j^{3~ z22zR>y}|}Pnq`<8zR2G0AGoD(1w^;nhH~eGDwe`J)>?P1bo z{M#$Yt&x}H1W4bD*~8HO840#G9!;GJ$oZ_ay=(2K z1yi}nG~Ok;$&+(iShtK#<$)im7-^^$h)n7qRZtO(q*?W0>RX8! z#{F#LKo_3~ls<>Imqr`5ruw0yhZmA7!rrqT4Fa~}s)G@Aui4SvD}{+6lsD6v=x!8h ziiOSd{y)|95_O>vcEeHf`yB5ks1V8$-Ic* z3RnRz74Hfh4E>IJ$9kQMs zIG%ppz`g7S5mYrP>jgLyqqxelecw|Lb@6NW<1FcC`>OibReK}hnF}(+LU3;z>oSoP z&1z{e?KpIH`{aQ+U4g^X>KNX)g2kUziK`p*T5FCg!0--9D;y_62CRrB8$%>q4jydQ zGUQ(7f_Q>X3-$DkRY89Vx0N-ths(fxcbM1?d5f3HS#PgKc;(gebf}COM-@W?f4G0n zt!7kJCpT-OZ@3gW^BAh|)$HpnrT^79rdI#Wh)?CSantO^S$%N(wfByUpmzxyBzXxWzjR zU3b-|JK;nE`PoJueNO<;>iZ}wh$W~gs3ASL@t^G6XaQ5A?vgzOPBCuS_scWSiF1|$ zBhYO{fG~dbV)`Enm={z`1$1r7w=!Qkrp&4eb@bzZ5LkrrCGQ)SBN2s%P`;%PU0#<6 z*Y4ed6ZIm9^*caht^HPb&4!1AIoO`;YTt0M5fw#HK+R-6&uEG`+ONzJQCC!JzzXy< z$fXLxzsCG3Nn()~{|M;YWD@##O|9{+7x3u+!C#_b$!0js5L8)B0%1sf5$9@Kt!`Z> z^Su4!0n6uc+GYQTrWe-^Jb2z`l`Tr-ji+qU z+#f*;t1@?4^POMAl`Hn?ScHl0Pzz$HxYyB~&7-J&$RaZnmZ$%y#ORJq+UJnPfwP3sH5$o(+rLVnq2WJQ zl&W`bOw9l?46h2`QLITaifhU^v}3GHjwqP6MpR{el$%jC-9yThUanIkp^&`H7EPUH zKU70u`k^r72Za-t72v{Q{a@0}>V3_1+{I~f5v*s^-A1$@N=C5%BGcuO> zMbtnW_aLRU$J)b=*D(j5t^x{w+1&jCG}$P1rmC8zuhUJUNFq{al-4kRR%*isWs zb=vGCwi5k&(S9`VLsPs&ER&piFAfRTRH-F3oyfg!z4tFs(W)HyJkv@^Gj{`RXT(PF ziV9@k4_)g$VK9eWt=>Jj*HEB=(l*u0(7d!4cYLWevBNrE>yYa^E=+Md^k7q{%ejJG zD{{x#$-6AgFp z%l4|T&iZ_|4G%Nr#=bL-p@7u{CPhj-p38REwrSELKTfl^DSPO3mEmieqODMaf7S$QkPI zv>p2okb{+n$UthQ?PUJZVOn5zoY=iKEoFAftivNhLypU!?VrsgqNkK-T?*sv0fY%M z7Si@pDcA`ILs=m5~ngGyD~%FXP4EF-C6qBOz2kXjUHme;Y0RI zWQ$ZY=GAxVAsq+BYb!b}c4pfRve}rd4bP~dK)hXng3%FW_ta?AgN%Y0)RT9u9s3l< z6X4pRD-E}SJB<_(+*y|vJ2%@R@$;&tPv(-sav^rbH$~}$PlTZxYKNUe^N5EWM09Uz ztmMa)Z~y7cO|=OwzUcUSml_@#( z-MKQpvJcn;FP$HfR-gn6$T@Wf>9y$x^c`dcREY*X%|kE?D)7f8S!jnu-&T#$%woO~ zfaZu^Jp)_hk`Rhk*z zfoGn-i?(42nPEnkv53&mS2<>EE{N!t|39;;Wjdu$;|NO+DTr1SWg7bE78!*EW`u<2 zAGg9VB&xS|zr(eC1s~4oJYc2)wFx9~vV7>Nk~wei%TEj@;y|#;JR`Bo+^s-y6n~U; z?oRIS&f0%a^M~KuuF(Ffx1ntS@#xp^Zg|-a~@C|D>>bE|5A9A z*slvY9}m7d;nrN?y1o41RusZooK-r{vlbsnp{z=lBK+d7c+nl60OIbJF23BmXMb6Y zGfPGqAczyIv|Ru;VnvSs({TqU&YCsOKyI|(3S}5jS>}E7L=szLV;MQzH}W}MI?rLP zHl$4bN3xdI=9TMu(wAsQG9X_bd_vBCr1=lO3hnn16GSX9*})CSlcoQhYvB zQJwqJfL`Z(c|f$=#2PhSt13Cy2eNmGu@EdC&?d09^f~kb&iZBD;@&k0+h^`HV`+_` zOdVpHCHROA_7>L$N0TiVJ2Vb6FG`soPYThN+q!e4+hl9Ykl1LVF>&%is%CC~rIH!q zeJE&$F7r4%m*ECGGBrng2!5O!d8M*E)IY=%U9T}!$j3Pj#M|^$7S~XZu5#(Vjz?av zUQXAae4!k5Xmb}pHtWC@bQoejFr79?pb>}yu6oSJJbIO0>A3^q2@(WU$VFwBmgaXr&;+!J%#5>L| zXuVYh&AO=hf6Es2=#YRtfYER*)4`diCE;`%Rkk5lyqe|X7r10EzH{WsQH9e_Qa2j% zsTDAnIrs8bj)~s`)mL+o<@QPyTW>j~mNF;Ff<4S-dd&c76OO3=#k!8wzlWR{63|%$ zb>Nht7EE0&OAQs#HTh!i{d0bv<_c$Q)*6@{D%rIAs})*zpT<|{ssdnSoj z%Nejy6C*fW^;EaOtXHINj$An2IfrY2vO}^t;iNF)h@s=#@0?tsx~FvR?K)MJ_kag& z#SSi;r>R#{)(>^H;R!vATLFzU7cA$NJKJn8$~WhnS>!Eka)zb_(fxg@`SIdyRDU54 zFIU~O32xy2SeAFpV95P$#zx#NQUWowpNHpTi-AZu7~{=bqZ9K`l@9~bW`s|#gios( z+xT)d8o2M$R{5>S>;T2}Usg~>Ac47mwoZov@nHoL9SeD2C+XeNn13Af zFe@kPVd>682t1 %?9r^XE0v-^Dq-e!dxz$Uequ$>MTs%~v=1`GJMmOT$p|V#M%q_SDv59?kw=Gq zb7jnEwo}uuSF2E{Uh!ltbJwi0k!o>EG4gzcq>(y+B3-;rAvzfFXD*CV=rYGyH zKSBj`Y|D=fzV06)j{(gLS2w(*j9$&9{gj$2tZfW>9bagssiRJo+{5Q2S~iLnxq<-2?;%g$=Y5)PA;vq|A-4ewRr99Yd| zA3tsFtA0_X7+nfUVPk^5rVIpS1tA#aKej@}ZH7Wh)tZ^l8g-U!-9^w#T3^)TyV=Cr zehmU=y@0=d-BWyyXfws17K~QB^|gI>@fMPe+9;KQHp6C~7?R$qZXe1IbuG%e#+e)g z-A;<6k>UauwPJApgDveGhf=voQ4%!dYE#1&1L44>L-osL6&aRwLQMJ48n$r#zmGvh zny^$WCS&OM*TZZKut-kWS8pTDGWO$lbylVjR<4%DK52s51PJ`|mljjf3Wnq^Ba1{R zKFFXx#R#i?nEU{8q5k$2%I>wrPoc!_kD5dmAMTZ$;+HEy&wtI}v`G~jsA;``(d1FQ z#veH8OL>NQ;FDlF%HKbB!;_Kl1{XhXJ6yjA>?0!mp~@ImXX>czu)m2NGVa%(?tRb@ zcJacl3Rv=n;XoB10=NIvBti~zx9jOSSwQRgrca9>uQXtP%hvM9+~=7gbzh*BTF9#8 zC6dt)>VNkM3izUSZsp5Dv(%x|1Wm*3$b7MBy6bH5fb*O`u8c<3m5$ZT_@b7<6ehps z<;p9V6qH4>sdZLu(8d@SY+?4cD2SQsvL3)FG%jr3CQ6DT%Dw-J&ikl?fY{ zYx{~_J5HhklTE^zpjCA?K_N;~cVsG&2Pi*u6TN-CfcX|w74Hgui3bL^U`-hu`) z&DCtW2%5;wjL3UB%_6a&H7FtVR!~L-eL%)t@%_sDwkbDoGfC#7ziw zMf@z9cAYNs&BxV9<%5^$nn&@`h1Fz-)CedRmfT(J{heODnoI3njM+`8;<5osg^HO` zmGg(@sVQ~_ZKYwI*M&Ia(j}Sm^?<^bon4id0Fz1BSXJsTPGjq147cm$r_tB~D4@Lc z?Yygf09-tGfp+0M2?M+XcUNRb7(k^!Bkkl+Ic;0I*QH@%?W;6-l`{Us6nlbBUr$;+ zLD7`$WF(0#=1oz8Yh>>Bm;u`9J=ryXMvV(z`(&-SuQ# z@LfbA41Lh^;*1QfS%=VF@zCj>TukVp*yR?!o4waJ{LlFX6Khx`ft1~^Ox8{HV=(_0 z(vFUOko=F9tY}WDmp_pVc84|BPL22lqa+Lych;D31PH!iY`9*FrU5^Xow&}!uSl0q z#~k2!xN5Zcu^^sCn&sa>MjcGVj9Zj|3oH5}hCIis4?6_qnh7Mr-(mF=6m_RCYmNW1 z2tX2CIsJ==3E36eY{dq*+xzDvf({o|V3~R|&eGOI9Jgr0Flju0+-;!Yl)PN&<a!+gh%fd#zffjxrMHTb(8HhA>ZBy1KoZ)bbyDT7(cJ6`9}|6wOuJvr;fx2WkuAo zxBhn9BR2eFimst8DYyk!+1@SE*g7(x{imxuJK{r08-H~JWQ!40Ii(DI!SOfp-$91@ z6`Q6*TL_b`$Tm@_@$)ew9lhB_x5_HCeYeRM-_LRGOLOYU%SA6bxd?Ua!LpXn<=;A{ z!3K-69Xj^PC(Rg3D*TxbtYz5<&*-Wr3A|na=62$_j8wOAvwvb#6D(PMxi@pCPwap4 z4Fa*`e)O>uy2OIAz&`tqHFk0CK#a*3=8Jyyp4=BdFZw-uY;bpy8PTNU%4dq^)AO-k ze}8*(nW~vJvZ0u1z6q9zUE+&ncRu6{Oxzqky`A)3vZNDeBP9%_covx`*$we}iSt~e zuG{x?3nS_+QSKZf{S(V^X#Qp!i$}OdAA`^`XrQ6!c7(XgJI=&k>&+f<|A&NavHVeXqm5aSrrYF$yRb0mvURHmJJvQAZ}S6Eky<8`dF|7S(s_Y!e=x^I zT9$wnck&{2*t}@mxsLZYd6<||_}t5f$Z8`_w78r0#D=bkT+Q2_9H;^wBt_!%yH#)E zpJ-MC-s6foC3d=0d&2Ma<&QZvB+=+*e?>9HnxAeQ55IHY$R>T<#H}w~z+6^_Ka3MpZ$q(V; zw!Hwj*NZzg@5R6Qbe%1hCfw>sL^Fz4cH+6IfPsIocRGX$CTrv9?dL%*CVX~S;<@J* zGVFxgo$F;23O@TDPTI7BTt%mHs`7>D?3?|jEun`5!sc!Jnz#>Aw-j?xv6x0ZMr|7w z(R$Q`h4v?cK4N*8QeTgq1ptr7K7X^g6tf>2E)9rpB=lWHV`#UIv7h^(Q~m&1^xcSc zO3B*tYDLZJ}8# zNm|KFjYPqX{n@gxwepJV7w~ZPW+OZi{Wi8Y|El|Kt2NFzY{4Uj7z=UYm{HqQ!Bqn} zc^OIasM^g6ha`y`E$Sz0!`njNEKA9R!Woc)0)lfEuKw%%a>%5Zoa-MU_Tc1&IU!={ zNdB0lIZUYxIV#g#YZpyyaq~=XlRat+Xop%U&1U>tVlgy4KcKuA7$b?R^Z!x{I_goW zPOkGaQ#$k>74dSzaYSxqDrB9ZE*lI{GhCR|#gx=4j zyWlR`I}N`Viz6NjLyOd6+|Nb@{yr8@@@AS^Akmrx4NZ$9<~19aGG&Ug^-E)WE_(+Jt4CfHm-91$#0D}RjEQY{-SZZ zWYWk{DGG>;s0cP)+zfI#<1ijyqD2c{Ixd>}=GZU`ra4iF{81+jfQ#A+#ZCZ4S%t^B@#3)Q~zZwA<5 zq@pLABX3#J1ui1r)dF#(?Or+*dH+o)?qmcldtj&mq;@LxUUwrn?E+d{?$daHb9xDl zU0gDm@1>QpY8nek;&3DD@LWXD@pn_^(UOtI>)|LwGIsA>LKg@t)lJ*b^A1U*_Nx4) z3EyCg^-pYl?|R3gqripN1Jz#heJyE^2py(BffJ^^Fk7KnZn0o8lQN&+k`^Xx6T|9K z#xG42tcxe+fI6&E1z{8B!1~YHzTrR(97bb`AS*H)qG{=PuYhyL0$fK4S-0!Sl!4jy z&icQHozWYv-1g-b+s?Kml7-o{Syotxm(kEU2FfFm&*dh8Jn62Ii!Zp4^B&8OW&)Ny z|FOnr3B9rcxc`iID~``G$Dbh|+;yOrU2{%zMW4sg4SZaR!s0G^O!EcMyDb(%?X&f@ zYg&IVba!=dldtd^k>BoorKedHQ$Ya=YNerZxyZVMg=Z&kbK~&*5hG0Z-922zrTnJ} zMKdloQDS*~V~t**vYeL%>sAojxc%(rC0G>Pya4vL`yBTBx({lS@?Tn>6g*tUuaz;U zy8F@p3Z{iLmfCsx$`dC|;*5r6Ni!95`duR5xYh|lV5NRTl(`yJbNTTQ`rBR3!n;@S#`M%Rk;!Xj}lq_w?iI>VmNZA-;`92gxXQ0UKtMe`oYOj zu*WMBTQ(JgYKz7s1!VAs_Gya75bkT#ym#Vh+KD_L372Pd>m^1?{bCI!Nc}M0bc=?A zr1&7cqx9cUoLNw&PL0%N8UH#>)Hw?b0Yne~kEOFd(NJ{*1GO%wOk-U81hoHXmS&ykkx*#Njd$s zLOULW8X{%A>!_kGU@NMJ+5hcFd^vyhW9A)B<2tTWN$KS}o=t@6c&VyCjQXW0#u#qkQs; zHZ4R9VmN(wJ23?4&GuF{qJ@5D;6^{WGdMKP^^>-ZjDZ2DGPFzIN5PvYm{VVU`4t$F zIMW{$i*e5f-&gPXrj<*@;{bu?-ciSJe=Z5SxDvUWW}d8oJxO^GRz}Vb+OvYI_eo`` zulX{XC%$AHj9IPWOUnV)(rU*<}!(9He6j=8xOl%-ZK)hPDNhG_6t=5#Hh<*s_@UIpKJ ziR*Y6@L64Nhdn8f3}zvaqY!QrC@wL-su=Nt%~uS4@7+7PRcwnW8h+9jJ%`)2wq`SFPR|qt2g4Rxi_Z#Rq zh+TeAv^Ko&OsfIv(Bud;sE5jCIFFB38q)k_B##I%k?8S$i zVQ*k@?&+4OcD^de*M8LAII#n7KYvi!MMf@1XLM2_lo}~csi{7o3jf|$>Tlb{iTLa4 z&J)CP?>P(1#ws8NHJ1JFJ`D4G?~y%2-Sy`;eI%Ass+}vVZr(eLcf_LYf#ZRcgO2Oy z{y&wJ-^-Q-QI22eAwjum;E~#|pOa`FY8NutS0-I|zaOeUOCi&piuaMWz6QGq6|UnI zzm2lbF%}+Z<~YL!&>@NJuI9E~(s1v}gXyRg>??ntuh3(G;W~~+V0j@F9<*u@cg2Aml|NJoT&Ns|Bi1c_Z~At zpdX+bkjw%m_3@U~CwGza-iz|?#iOd50NH#*{ht?e5$Vr%i?e~dB{X7{5lKSQ2#`E& zb{)R~)#aEx8Wm0*{q)15_vAd;spSG|)-_^W}EWDd>@g z@a%B|7j3a3F37}+>k4%arjjwiS|WAvnivv$FEXf`9IrCFhmm8i2NsFqSX;ni)0`K_ zTAk;f#>M9ZwW}{B^}2El)MIBuKKa_0rV3M>LYMR7NB*&g?v1*mV`*EktfKFT;>6t-}&eO4@ygI}&g5yu|p6(sTHR4?Oq`$1m7A ziVudCD@TO=1CSUjNR%h^armt7CGWjElP+wB0-3HAdK< zhhZDKSY+NAW)y4RO7?s4~g{%HY!dp}VqvnElIswoaK~4>*Tr-&|4X7-|%OL(*H-kArh@ zu4CcdtInrLmy z(9zac?X-fldSH?R01|NK?Qoqx8~cnLqk>_FLBYPPKQz&W4QTKm4R4`eqJn+B(;CH+ z=gtX*=Ttp@ys*inqb79D(a8AzG0kq5Nh))fZ?~@kt?>!ZbXbx%B?#`!s4rrk+1+EF z>GyM2vN)66@!FtkC2+lZl0+^Lu(s;2Ofp(HTfvDY1*Na@~EoGg)_)9*V?K^q^`TdXUx3UJ-C5w!= z{!&9&CsX{vq6xMTTp_xmy4wjtm>9{4LV;MP(Bl}qImL}*df1fo+c`E7Q@g1&GkmVB z3M_Fr{5Fy`OyzZznV^c`Xd6t1i}Bi6(Ff%5t314f^ZX5EmW z$5=zIN^C3KlzyQKYt@)u+?4sDL7WM)kK5PTN)Z#?I6JK5Gj&h23#%y3S;KcC{teXj zQJZ-vDSwx#z=Wxo$tVMUhHi%P?CfAv@2fM5YGA3&HkTTX6X->&?3V4mPHg61NC8bEvf9yFKb zPe%OwDM0A4#db$~;GP_8XzmS3s2*F;(AtIsY+CIqG>odEOSC2P06ez@xS<60d3!10 zSKiR#@*Qk!=%O@srwbhf>L5QV0!FEh&&F*OsWl>$b?>^X0j06oG;#_mghbz>42#T{ zHM!a7GVWz}95O~XigB1ax^Z{t|J*I;aI5w#YH^LQd$bBG9Svuo7~PZ@*d-fuK=C=H zfa^?eQLefks8CQ;^0h$L!vT_g^JimlnSU6oU6M;{(jm!k=>1ys;@nao869XI1)NxV=u1@;LxFom;*rBxA<*kcVk9k`~W(6^|U(cpUXR1p|t zcDXJ3@p+~VQgk%FL~cr6>p2Q_kT@*m1_=3tvxK;U{05hOkci9_55mb)Z>_2;^YJr(TbuizbxJy0$3rcY7I}Fd z02lIe=`E_rS-lX*hZkty0r9|^1o}oUgzu%>W^_AFv#2W@QV2|UEgT;A4KwJ=-t8{K zOF+lWAEI21LjI@h?5f?npsebCUqHHRg~t_E9CnW6rsyaY1z09hcKVSJ)vCrST7i3r z921#T?oYq0`Ye(T2ds@tENWL*%Hw6fAALY|%2F68C@=cRjikgKw=)ch^M*+3NEXSa zE>>!X1f4`Y6&7w4mpH?XDPG-YDiH-ifI{yha>VmX?F-pca2VZwliDF< za=`e?$V=#jsK9Z49X3PNlm6u*>Gb2CYwBO^4A&mmW%&AI>8WK&`15M?Ve+xaK(hnd z4bD9uoTo^5BeQRh($mC!Z{@5cM|}LNQ>|5}rv7vnXlu-7LXaD+d&BN`DG{8fzmZA@ zt@wIcD-x-p-~Yo-m$2Bh&TImre7Voi-;^b;YS)W!XxO4gahLIww zg>@i^tcwEyweNLBDp+s@yJiJ z!H(6eBDm+Bkq4{WvkQ&oDz6%-Rlya}j=zvY;6(TV+KGl8D|BOUH`d=mOet68*4*~? z;-c2nUx7!g^+;0S__M8EeaDplRlNMIYXyj6W}sS z<06Ne4}DCarx?bKMyAZ_zDOdBHL~&E4s1DWIV2d1{0KWq_+CKvinA6#t!UFPT2n>B zh0iVf$cpAw^M&@U+=Qm~6Xd35Wzn(!T&CnDT&U?oJ-(ZgJ;fN}yd%D%foq|cTC3~W zBn`P0Nq8Y@v@Q!3D}Sr?CE3K!yjgM<{J_8dJrqA%)9yCVltKi#6Fw${MfM;3cGCEH z{7$6oix{TLYF9Y;7Ix(X2T(%Hc44+wx(>{|Tix_p7d?UB1ET7}QLO^=m6klN!sOsu z&mbOTQ-MOJNA_ZpJk%$oJ7#lIr@M*)!F@!!elG~~bxagYZ{nNFZXR89}>Dl*lj+3^sd3Ymyy z4Chl~(CpK1Gz%!Vb5m;e9A~UJE%Nj+ z?vIm5;X^ML>%!5vJch;1kqOw}p9>%U+C&y9fS<4H#9w-X?RD)0KqV>jqOEoC?nSCBf0&puZ0~R(q`mh-C7HFk~g*D*7%RJ4M`9Gly2|#r3N( zMmy6M-sy-Ivz)A3?!`PBB(fie^XPe{vt=};)epc$B=Yi{uQJYO*vpDSk~H= zhE4M&vnzIeUn&5pPc1{4#~nP$dH&EPmUsYn(heZD!31Qu@Q=r5uhj8pX&Q6Z(-xk` zkvbIvgj@nU&zBb2y4@PHXW=nB!Mv#fgzaJ{s@$dB9Ti)bWqtz zA&{$O1XvI}D5fuHyJA!U^|8?yxpY5nH~q^z%I(vsi{S8O)cKRN5t8`Cx_=a6CB&p# z|4G-!(XPhX6meW{u!W*%F%=$ib(7bX_UDG3O2^)nlE{HM1@jbd{s4td>(F0xw-vsV zLbU$vuHk7pK2$Un@rs>68FR2pP1+hYA`=HZLi}qDG6&*Fpm|U@%>%5ukOd^PIA6T=+PIIAN zx+;C-`_6;fgHt%F)+%Hxm_hD)pNd{II>TGEOmA*^&c7K=TMaw^UMt6}jZR9JyQ(e& zkQxF3rDA*>2Tcm%)pJmZr2{kCiBZeuZvh+gM4;OEmxLg1V2NUP=x?O)_YVdh6oXc- zxoZuAel4v^1URA34QG&#Ul!j)e>3nkXRR?$PaF$Ug@)#31>G)35n@#oUMuVLk);(Y zb~9GTii--%Ax=8pGe1A&2?yhg70X*RWP5PEZD}KV$Se3RIBwfa%fABHWx-gZ7sHfk zWb#yHgoy|cj#Lx#(%i<)!tq~Oc%KhI%vi_PLv}TJh{jvHQ&UM|{g|MH0hgRweeEjb zQl2Z;?p~YBjg#M$16Ez_E$^1Q7C&U)?u$qH+0=I&>V!KC#Fm%l$5yl)%^PTnVxhv0 zvcZnewEtaxLyf=?f3?|l_v$@bDkv~E&Ta4l(OMmGS>WZKdx&q$QGzrY4dlIs>_Bs4 z*kCUuz8SWf-(HcwM$nj3&~p|xX^(?>vctMGFLPw5USgm`0$yHW4_P?K^`JE01N~_w zCOoKZRxDUXA4FNr5+I2W=@TUxF}Ppa{C6y5g3dWRs_bTuv%t)1Uw8jUbqMkSh$b2k-QLq&sI~94OZR2;oS;o%BZdshS^vhk&^T{N;r01bKW-TX)^}%F$6d4N zpR)D$9$yXwFt*_ftRmw5i7=L{#K@lhf}#XL_M>smAYUQ!qXO}FawIOdPa=FXb|{B}#FARI5@=ad0ukYk)xo>dad948`l%b7uY z4k~~LZn&LlS@Oxd6SF&$JNd1ONMZwYdSJ(HfZI)|9cB}D^a4kJB$8=qJnjzbH;AEQ z{@(#L-{9$$AhP>V+6K@o>|ukYnV7<-m_Wi}Q%rRyc+G`f#wd9_T#)S3M~OD;18BG?HSf#W$M%Gndon)84iW`!$~}!{T5m%bVKs%Q^ zsEk4BRM|-FMwo4UZ@N>fT~sDPb7dkPWc$^L7Qh85GG_!=d3|O~BnXlCrncPWDCDFw zgTARR;M?GFBGQS`A?VSdf_8pRbIZfOtU3zG z6;-5bP!ZrZDEYC9=MOk{g^!_AGP)S-h+uO9mGvJ73HFI}>JY&S5K5z|zi{cuRBegS zn7FQsG#n|8!Hvsza2WB*o5oGXMN7*8m5m}}+`6l>?5~Z;h(j?`R#71HU%~34WTFFJ zz84R$xgDo`(?ZKFD=FU)aVYBL!;V#tFkV!PFhrnH=+X7AN}Tm|ZA+5oFeCE23jA4Z z9@>3AX%9A%P}OC`FxwX-spBYwN=JE;Mn~nl<^MhUE(*VJ`O11$x8XIyh*S6YKgcBj znnnlG(sSYCVv)w2DGT-ac)GPGH;`LtPsn&1#_H(1YA@gQ2pxRH6BS|@Ti~mc-(d8J z>@eF{*5LPV0$cXwf(G=}OUm~@VjF`kl0W~Ji8j;Uo0?+%p`lxAD6{%aDGVs#UC*vu zBQ_$hI-PDL(r1`nEv0CuyAhap8TFANL2@iAlC)Q0kpSc(PGfE8@_33nhOGz2$$R|0 z$E_@@9n`fVrH-^b`qyoKYQb@4`3(ieNY`=u$2Llp8V^BvhE=(*y3?nNwNB9z&af;;F!HzCwJw zVaXTy4~ueEV5vYnUZPDUP1w6<7J-!n3>W$Q#3AQ#MMlh~HA4^bfR-FYvI1n!(+#zS z;SOGbn|;#5F>Q)ZroTDx=QH!P`BsX9|Ck%ox`5FPlXg+qv=0NldmiEVZ_K0|$?5+0 z=@r$JH7kn>THH;3eqMoV{Wh=)`P_+-1|14xwE%4lRm=P9Tj?4*Y+mw+a5v*VxD*}t zv!ma2BzgPH)Z=cKGhBGGUbk8prDE>gl?@S1$D7TgB0;dcsXMpWH9voQDzaApI(D}5 zbvWy@WAFgiRUXFREJLMb-_M%GT5|eF(ZZ>vGMfEXx*31mpU{RFmgLt8J_kP!Twynn}cVNZjgoPCmQypvD5$LxqR; z{Y?JJ2XA_xwc;96!^M(-C6hnU*x#kp70Ct(#;l`aOT1_?>zGl$5X1>D5nGX zS|3*roZGYK2yNqCfo#~;-_H$0PWX;r3uE=bqLK-?7g%_+SRWHOr-w7+S4O6O#-kjT zT^6eavI9FYwVBz*ry|vXBmKiRX4Xk28z0}5hGMG~A-qp{Wa7_&tg`P~|#V|Ho+*7VA} zF_craNUe4cJe=*Y8F*#!z;GxKMWNV*)MvK$UDLLOFtvdPZnwZ?6}{Znm2lVOe{Yg^ zHs|aQfr9;uw;uPODFZE)RIl}Qi0?Pm$-ukBapeL@vkft_ewY&6a$+p9=}*?%kxo2z zSpQt7#K2EZP>wh#mJ&QihyEk2iADQJO1)&`K5`X(sb!FWWhFQj^TdVl?wxDI2|{9X zW-dNt)7*RQvu${FnSLny%7a$RSFFa%En8D+zk)ACjMmNa=5n+_*kJ*5Y6y^6Lc3&T zdvZvmDKpl|$kX%?!p?Rksb1S>?+?biMJcYn|56jDp={G@z;jesODM{q9OK1a)a%dr zorLgX>s7~P-P4)-=w@2z*xZWSp57Dd!#J;2$AenVHYv{IZa4*R$JO}}#m@)Kv}Z>^ z&SrzS_PhBCs)cZN5h1bmhOSn2i7BOt;^(Sg?ZsGlPHtY0=^+Bcd5TSPTq|?c6-x?7T-z^a9e}Kpa#aCLXL5T~<_EkcLv4RXeX!SbI5V z6d*KvJCWO4ts)j77KK|@5kjdfL*zQ;M_p7`ACfF+U6KXwOe;SwiVxm6h0F!E9A|Vm zn{=AOny*EaP1-^+PUIUz&s)u(xFpn1<}b(C{PzHCrt6=H;Udr#t+A@3o}U7j_MbLu zTd$@=ckORpVS7ufH?_ai611p}PWqb8I4@cdb*(L@|iDOlUH2zbwm6{cqrvpr`IdGU%=`&%A8FniblhONmI>Zu11&Oy9JlQa`g*67Dh(tQgiQ$xqkj=Q$Z zMVzY=oJr3R79uIn#Xn^=vL&{^TolCv+4Z5w)HFS@n^rRUa~AQTyiTQV-TbXVn1@fp{|599?~DD}$-j|)mTWaQYzz(N9&D|9 z1XM-Zh;&MC9~5SaS9{DKk(QqK!07iTGqH_Osp6F=0L;O>Zy@5=0;{zn!{X za$)vj4O@$HS{%m4Kg^+!ps`&k7J*{WRrU5cyervY zsE9#RLtND}akjy#z4WRw$ z9;MsPv0e{nty-@1J+jTn2@g+4pZHN`4&3JgfTqxaeiCV2>BJ6}{rq#5=AyQZldcAj z*mx;^J$E{EtoHk^wW0Hr2C1H#ZBM`#J9hsm(O1lPU;gtg#9R;8Zz^zJ&@24C4gXH7 zLTZO_hAFF#Kx_{v+YqcFB=5gG=Us;d!c7T%B31NfQtL3FTn>ccGMy5XFKX}D)i~r~ zYHflVO-qm*2urgGGU}@+Ic?@St2)%mNVwNaDzpICM0T&lU-G1+iKzn|rQ%VHWBTVm zl!6w$o0YLl@LPhAttDL7lU>_%76+DXQ& ze&aS|1s(tpNx%5usrU9Dtjc<2S>L8ZRnMk%vA@CKWgUuLi8^qw<0py=0=Qh5m>dG5 zlP2qFrouiuwNhCUMxz=07+zD?eh35JxM@?c<31I(i~5G_+?+UP>y%OrJ1Hh|9x4K- zVJ3HwxjXD!CDvW+PhtFQY!<;+?e~@ly!`8*T;^Y)Kt{VaJDb}GNn2D(O0Af)X81t? zLE4rESj+D}l3H8m#|{baJUFZ9Hl@3i?sK|4Fe@F(6x55%s;PllPPw@|+7d*zHQYyT zrZ*X1&Mtb~Pi4WHtsQQI$v6+`zkTtVy$NIJtz6I-gtHb zNg_Ce-x$uOgn>3G!hP;Z|8;wcVT(Y!>ZX@{u1^Ag707vhdCM9kDI)%TQpO>gx3qg& zv`CdOWv^2Lj zT?Z6QhEY0E2C=@kz`lH++8#Y%ewl(}_`OUTY|#`!pxADqOQ-3+yTF$6iuQ*}9IK+A zkUa-lRzR*eHO}%Mpf+-oDoxJT4R?x`xX`FOKFl^7)I;m$NQ^!EXt3BID17DulG>!f8l%JLE^XDgL_?g94UYHJAtkZTtsXnju zb~gU|tKfHXU8w4Xur3;-0F6>$NIB?2~eYORmKDNc~%0 zfRqC2xc}HT@(G|*u$ObxBx&3|dX#@Duau`l+orSOoK}$6`t1Li0D5i?#WR`6&Hc>P znL(>2nwD2QEjFT3YDlu!sqq)*^9Yf4(nA<=<0ZCp`Alk^ZzbNZFbgsfDYTyFu0_(M z&wL`*P5Fqv&tEZ(HCo>ISDyY;{%|Q6;)ThG2)P0&flmzL(H298T0Tm&NA41b>R6ECu z14Kq|>xz8b{v9l6fvA%s$~wMHw{s;A&@IrrEqngCr(~#~F%J2%S8rHOkbeLp-tPK+ zVcol=lqe`y$Gd5SLH$}95ybzbWWx&Xa}(tU+!}D$-ZSE!lRaII3{=>~=dfS_K`OVng9y#KF0y^kGp(<)V0h#*GH=h=U86`g z%{G?>+qY$W#<`EOG8+%VBE5lG=5GQMhLybw?BDg=Bf)bW}~>@>;@DKSytmwfpa?OkdA~;cX9LGssSRVS|>Jx$Lz1wZ!{EUI| zs&sl$!gRv!@`wS6_g%?p1u0Fr8J^W}3dIUP@3Hp+JOK`Rr2j=gi zR064uhYz}>cJ}D=AJO@+zENd;#Tvb3{*piu`0?QBRc5GYMu@PED-nD`VRK36%5|G7 zoA;E(2xAJLbyTn{5Aw1=*4-9?%~Q36gwsNp3`j(l+o%H1n6Q^fz{d0SyNqQsvc|^x zBz{p`fKSkRm9001d#V-tXR1RXFx{fPB2UkQp8?$;g!96m`#X?{2j?i_GaRB$mQ<*G zbW#1bdTGlt%{Nu?G=k`&3AQw76!%7x+NkHp%momL;IaAED+$^xZ&+O)9%>k8?tKvN zYc6)l>u&*0aQU!KicII*_CewZQN6&8tY!MT>PE)WYa+9M1UEwQ+YCG!liio5PI`RE z*~a7t`vTvFCm8^sD^EX6y@=H`Qd&{KvS_H_D)U8$qD?WiM+fw?W4FeG_LSXOGhznF zN_eJ(N{`~)&C8+Voj_4Q&KR-Yx&&_G zeEtJ(h7Z*rTCoUi{^0((a=ZsrEI4;`f!rVrr=t=(Q#dtI&-(9iV~LMj7ZIO2$|_-( zcNKYdxhmuno{e^K`MJAVQ`AK&8KDCv7w&i7S5tYr>n~fT?7okBwdT#wRX6T?ef!5t zSls8w2pSGTv&-?FWGKY7f7|o%3iRW6*43_zasHUw~V+-;@&I@V^FzE(}%8`)c64^V-dN zS+4v|yOK*HmYiF9-R6pg=g7wsSpwQolsUk2v}^hA(L_5GY}0pIp!4I`v#R3PQ>BEz z5bu}A9OLu7AguJlZUVWZnBBZuyJY6Wk;hBFuqyyF6v$Ow1{s}T+Tm6V-adg1pM~@2uXF@sOlnMqk#8W3~Y}~S$}g(0GovPAeQRY zs-hp$uhL><-D^H+X!tUcFtSRc=^R;+polN)x!5k zLE!bAL(I%MNFs1pAkU9e`lUuAZ@qi`JU=SA?Y+XKR(X_p#qZn<)3MXSKQ)>;w^RiY z={1~oBdHm&f4C2vVV8SVdV3E!w+3kfPW@3yrUmQ@Zdk~8$R~~MZi}-jZ{1>!%f2!f zYZwn)^m5%0O$EylNpRdP)YXRZSJ&YysK)El#@(jUHTv1-jh19#l)-{2_)A`^uJ7ps zu`4!*|6Jtwy257#PX<2BOeK=_aqDl)mqPhOr&MDQPoPs-KhHj|u62EX1Td7Q;hzDL z|6wTV6%n3Fo{GA)`8H#jgPTH}KAYEa&4_> zoW3iXkf>{p0#qa^<=n^k;U^`G65kwUYAV}s0Iw~VF=GMwKk=|O_y;v~~=ih4(m z2mHD{UO;^Pcg0!6T)7*#KyCvv(Q|rN2$KLm9)cZ9|AmzqzNpVrJDjtl2Hq=aExwG_ zzOm8iNYK9mgCVqa1oyP!I6O)&CTaO%Z5J#W{D^7I#T|Ej=t6dPfr1$tU(nbsGuicJ zSLwNiOoZ!w+B9Q4jjCf|Y-J-|WUa5QNYdeWPel*e`dw#=(*FYcsXE`GR#X~cCt1sQ znsi~f@>3`>=ZYiyq|5*A1s0pch_13ZPMvIOe!`F>R{L7<${Y0fb}P_j7v+4YH6KqU+Zd92lbpBiu$$91`7ifmVzf7rui zo$MnbM`ga(G~h2bL%xhpQH-pyg(dp)g+WJS&&Fa^V#LayS6S@mlGJ(Ga7mXu@s2$O zJ$^b(ttsQJ?1goJiKjlee+Qn;`+1fGe0__u0j2)ek;*QPQCg*UZda1t6EYWvk!o82 zG?nx!yN{!jlU?%I zzw)y8x*5_uW&j}VuZmai&PEx`ZpJ`w{1gQWnpmBwSvgFI``HWvT>0k-iWK zUYZwI+4sj|Ly_fb{#_)n7c#B||M(F61u5~aK8pqcaPhj=$J5it&$25G-0cP24AzCFQtKTAwKhMsmVA8e$y&?$s@^7}P9=4q{L z3#Pse3ozN4%X0tt(?3svkHc-OSm*{aNW$x&(o?^Jm1&0TC-iaxJHF~-?)_CJSa&r? zJ=+ie$C3pYh$A8XLYSY78zl6KriWDwbfX%2zbzH6}w7Cd%SZDu)&YJ9=@ z?;IVfx>aY7VDi7-b(9q$_4tYFtUxB+11y!$9~)&mQ#+@o<5gGItAk8*ye~C7b5PnS z)X>~l_5EeVWpx&=E}C=7y)2HN3Zplsb7UufrM%YSJx}D|xm>|-C*i}w@rhhoRo1!E zGkkT%J(TkKXJl-wXB@bee6$Xse^J%9u6)z~@?=>5;&^K?C#|LLDzU;V(g>HXCP|@ z_cBcGow>(8QJmeGmV}eSWmP&hqU5nyHK}Q(EEW0&$^n{mVG?S_PrGmDM%%3$nw)Yq z#sl)2X7o!=J=YnBv=685L1xU~yBUb%(dLyizZxM}z9oVWQF@{qP`^#0Xh^ko7b>eZ zPj_3^&}oV%NzW;S+1CM<2h0PKMO{3x+=Mr zkkva#8bnvOZkw#y2=%IGQG-n-&^s4qSbH6%{()MbRwV0AuMF#US=JVs3XW^sCn&}T z*n!mvIsqPV;}ct)^1t$a8UwNWcLwVtE|Z%j+FA(nK6hSiLIFuFV?3TT{3>6tqhXOa zJ3|_dp^L0!hdz52qBjJlHP+L8DV;BQg+3O-Pn$gJbfq_J6)GNr#0vE6;Jkz?1`f9q z648IzZS3?8^-CbHukjI0Hb98$b(dUE?|=ZwG;xUPZ>t5w0_!N6G~a6t$~ zpV(5yHEb7bFTfD1@BYo|(Sj|?K2=U6P&)_5r zNwma+d;p{~Dl7BaN{A=?909w+Qc4}Kj6>6~4y2450}f$zNi|YzP$82XPUP&H@lN_Jj#u+xA6%)!E@_-MBIZO#}bcT5D4vF3Ut$% zry-3-WvGhR4oGfTKG=SUHHIaMriT?+6t^sUYk13*Gw=LF|9`xBb>P1GGjfU_x)T89 z+1bN~07bd_dIzggv7X}oUaK>oz*dC*O@$q57A5r89e>`c?F4+lQlgGu|1_poeG;jp zviQh%jc!YJV^sUtNuWc0DtfdqfWW8dFVsXvlphq*wsiW7C|tdu8b#iqjG=DJTkM=G z2hWMSm1;&p`TIv^WvBsk%LnZiE2{I;M3(2XOO>#F1s&`11bVkp+D3wM@6W>w6t^ok zTK_bHRWntqB7Sim+&W!8^lu1qKEgi@zrZ5pjjy+I3lh|0P6uqv)aMFn)4@Y573vyu zIx=+!KdFdlIC?uH>|?Gm$Hn?m#uu)0Zd+nkLqpoP=EcT^d`$l}NdN@@=DE3`vZ~~i zPt=ax_OGQDOID+*Z(>9%g?pwtd;uOf&%ru#)4(zeSi9f~9{6wz8LLrT^9U=UsX*a7 zLhxu!qxkCpcGBbL|3HWNj<0m!jdL@A@UO zY2Iz%`1-Bn%kZgTamS~wTd52s?~cu!k36onYTs0(q)-B>DUkhFDC$rWDQ%cilupx?dh?=ii5CrN!e6<5hI(mCzE=gcQ7AkX5MP zH~?LzDsM9~eL;Nv4c_Sc43=KqjHC|)X7TVEys6CU`1rpkD#YCaUp+iF&wX-I4Ks*Z%RcYg(DZ?k8XBzpNvNqC$G9dal^`QlNMxMM%NxSK5W zfB&;+{-7|t>v7y9dtLLAV(51N%}(XsxwL0qq_J! z8M)x7yj{*OE!Vz+wEq8;%X;arTkx75`f<*Otz0 z*%swXbA~CMD?z=d{EGE=U?z@eg|NScXKzfp+gqCH0Kun6tG$2%)2|h6kmgiV3!fBB zc+4wfCe}t~*AkXLVNyLn?uO`0u|M>EZg$voBz5Adcd7SJT#=|GwMi$Gju}oGRoqB1 z4|~Vaho|O1d+m=8fCQ^KpmJ(J)I)Tfpi^F0ZfqdH6@;ITfcQmAocEvC>>o)ALx&qz z2Od4YxyHKBe{A}TSQMBdld(BHdUD}KxO~I-+kVouzx))sdTMF;`(nhjiyv4Z738>e zPt_I6_KAu=ttgYWi$m7qHUf_QlXvB9=ryXYdY-q%c6~PiFq}aHCl2r!A*C7T&4!$|mT*7M0g&bCO$ z%oT1N>(T0ol;6e(Mrm#bSV_!eP=b6 zly11=?!D_a9kkr^_L*?mtZ+0y1T-#~14iVuin;MJ@duhhZz z^J^P~z(7$R#>~tev~2$Qdldmnw91P)m2bd%VJ1aeHH)7s-APJ#=~kr^MYZLNKB5)>!L6)trNfBty8 zvL2B=n>H0b^q#nlvrC`4sV}wenP-^X7L>N_F6D{NRMb+5DCQ@WsJSe2{H=}#ELAte zDUL>sOn@k4z>ln=w2*fz^xrAGu;dnv>|UdM8RGT~`}f*WBw z&HTF3E^ROR?!7qkB-E+{WHfNW-#bMb+8c=FiSDTepa4u}<0?V&%U0()W`i0U)wJ<> ztIqk*;VlLHQ%}nPzV2&S44W(WZ4J($_{Ph)z)m!Ko z>R-rGDfSS{u^mFZ@Z?~S>Sru*tEb($t@`GKq1&-nP)(CI)aA-2+;^v^jgJeU_5vcI z|6OBo<^3an1)3a{S^OA(==ciNJ4IsVoy7@TOM?pxeph$u=VK!=!4te*7GNXsTKwz> ztaM#IAJkck!T2n(jS=({*uwQ0J#8}gl<9Da9ew29t;fcswaKUK?#ZP>Du9MU8V4o% zI^Qpa4qqb#vDFA&sUMkRg`}`PSLg<{HwIOLg zA)x3>`fmk*0k9~GUr5yI#;OIGafQ3xO+z;6Gt(}|$WRVwr_{FM6M^(>kXq(`oib&= zz#$^+v4CBme-;hw-Ad7D}xyN8*h)@((Sp?+4f%PqW!nh)5=Y>6S?XHDd(|eCZ!re&GGV0l~{6fp3*4Sa9#SItawX(jdVU$ z_u2!&FUGWK$?$qI>=HPN4>g2R+ENHYIT|{-aaZ98h;-~F(RQEn|5KnM8jR5mkpvqW z0rNcZ1eJJ{aPxJdv4GDSo~#%wj%$Ha)|gSRPT++*m)hvmm`^8Xmd1e1!7TpL@uNWF zt4hKHkZ{h9qR+nMTD%9ACXH%Qb*5qXw*ZPLAl0F3Y(@J9#ksclB)=|1LtLtsX=9Gz zdzzcKSTMrL4LVpe@6ci?8jyi2J26eAMB0DfhR#+6kZ~6a74zu6s`?F4?WYKG=as6R_@ zXbzN{TGc`gbDPE8l>VIZPNto))G+0im_9aicz#eZy`~bfRpKStI)}^HdPqP@4(an-yD^k6mIe=8 z#F!TMW5QB_d|>`@O*6Nq>|cxN&-U4S%n|od_60nu z)QzSqsT@K+>rZ04+cHq}YB7G5l5S`0HEF=mTV#J!3bEEGML)TiAEGwEV9}U}DGQ?k z;M-#t*4jpO4Pc{&ZfN@f*vYcQ1nt=94q@NBQ0_aAWxQm(ocrR!Jdlv~$bEa|;iC^8 z+Cl8BK4LuJU(?*3J?Lse{u||Iawyt4+Nu-hK=zT?GC$qfMDYJuI?J%A+O7@L9fCAc zqSBo*qzFjo(A~`-F?1sW(j^Vj-Q6IKbmvggos!??dB6Yu;BaR4zVEfJ>pT~}Dg?IR zm!#%c2gc1x{^zw0BuBLgJ$v`xT=VnZ{=b2C)OUG!j$bK%yxyApm>^TQU#p~O*Cx+( z+8UQHOFYGpWwc}&&EY&7Uk%T0Fb~{@7+}HayhRSF+rbuF4&K;61j(nv}Rr7^^u#-N*3`kxf*8sjrS zJ#y?vly8_K^JqD$ZavRJ_|QsP)-QQthk`A;>1}bnVpUnNRMEqgyVlZ~k#%&ikW@VE zQ@ek|B><6Xh^+~rcczS)cAE-1X8$B2_+4EK_;6GmLlE9uzV^{}41o^;T5rQ~SdS8R zKk6=F3PGxBf0`ScCD!BT=ES2uZ_!wk^df7&oBs4n?lzQtW-?WB!M!u%4_&T-Fdoz zy${58d?t>*uOh&wlME4 zS|<<`^^Y?y!&mCUcx%ymIxtt&skiRehp-Hm-fd|Z&6HKKAlL%Lo24#IzA)S#@`!~#Isk|oAIR6w2X7&lI=+9Q!e=hGF;NI(y45_QGs`gLDItY7FXY2P4drqKU3x*x^2rvF-nVV9nN#`<@b%Vhq0rc`ygeIG6OV^j(uj z{?SxUd2X9g&tM@z&)nmNM`(*}`Ub$qcAMzn%o zhfLU=mZf%@`D`B0V-XGlb2mDnxFr}Y+D2|6lYU6J`}lFP7J@af)j#AhEE%;fkT7dg zuXcWLX2Q*)`}jsT&(6gx?++Qn!4CqH+iyfcx~C-T82u$6RA@meALiUQRoI#wW`9i_ z>bYh{H1~YZg{-w)cB2y*f(n+Au_>+l@Op$aSOewUs!{YcSQS*0lCPY)_4a45Tp@X zOWhlU7W7)RJu)?X5O?1}vDZF9F0fsNbw30l!xqgQdkkJ)P{-wq)%Ti+Rg^!Ne%%CZ zV?S)TbpD~!#oPg$4<4_K%3D?_dgd@-P&B2=4yQXOeB%d zJtUaNb`;{cWf_9LSV|Rls&(ducnlEN+F|W-otJF$!MWxCn(axIM&wy1D2)!8L{f~e zS3*-(Qgj~qHXJp?Cd2rzs)dUAs_LAK{|}!wWB=K!=co**;NLcV4^|=yHm~m7&rXT` z>BRk9QAMpL?lm#`aa;F8r<4m)q6TwW?@oVTpc@YRJAv<(jbE<5B+D^GuK*)1RFjD7 zGFaD_h-mls^Jdi-#$!_m9RZXT=a@gk)s%@v5m<)T_5l5p(dupnpddq7x*6V$8->Bz zYWkdHBwM85{;gn%WS{rX?Ns+ipyD;E_6mzI4Je5t2mjNDbqC}wz!p#X`gh6i_X)i5 z+G@xDhJIqMR8b1BwYPQ)ex2ub_7NyHvDA>P>ea2_Mq<0Y@v958&AN>~ZFz~z6t?65 zL=~QVEm#X|^P>oQ2VCHt;qpezsqwJRrcRP|R;lbxkfv!00?4jWB4wI$vypxH7VY_8fcu`uMcsm7xk)D~JtU-CT$}YtHj`SOjUukv?-O3*myM;UP zGAf5mKi2MSV`=LN8FBW`$$WA*huzY%gny4Hin_Oim%2euX8cBp>MN(ybb|B+h^|Ua zuT%2Ye5t7+@hE=cz4;E8>st?Fp38qW|0V?ao2)w`1R`_(=njlylnqfG4+8<<4EVwx z3^~nHcQjB+NPj>CDqBC$$Z`uufR5hwCFD)we7a8Zz*+5JmwF7Y6kwz;L??~FIyp~UL7JAk<+jIU#9>(&1 z)yv7^C-8ZPEV-3sTz~z|0&hq};61M@>dhBLVF9y5^|+j|nduLul!S^e44Sk*5r_-AvPS15*;kwlgIq9elSY zcR&efiOf&r=*EiB2E!{3E&)Y1xh{n>pG%znFvxg}BZIoO#kK-fAqrCvQK7O2+7)SLW|}ze~NB#OnYqnr#YPX zViO$X|COhy?j{P^Z}hVrzoUpAhsx!-e>noVJYEs8D!~POL3jj`2Z)N<}Ort21|@R4j8PLAvHymMR%{{e8g08>N0GA~!=6MfNb{<5S*% z4yMpY;Z;o}(ULG-Vu$NDS*put+ET-0TkgRfA&U(mK;3XMzAAm=yg^)o`8v&{_^?|R z_1G=LuJtU?;diI{b62KMoQ^jE^x?5D6)t&8SS&=H#C?vB zQY?m36SVgOvsx1F7G;Cj1xl*sHkMCw!I)^hdNakqiE>5rBmIr@lQ=zI!k$e?S2`Zr zFb}Hx7JnC<;#qsm6if9V_<4b5=l%pCu4YQ;2P+*?_Nzeb04mnw_c<5eavbHNQqxgb{1;c6L>uDz}ox+bfF(Ul%ovlGxdhvz9Xv7n#qJ_hb2O9dbzWAxNJtPS*p z)(=WUryAWsHnrHFK=GfXkyN7nDc>P|=t?6C%F#<|#7`xNnn3&}RT5UDO9+h|dxA{PC7>Mh9*P|Na|_8Big=H9nuZdEa?o!K8_W-I z1)#Wnv`G5$J;q%_Wm4K|dXPCi0Oe|m4Eu9NWJ&>uj52`(5gx?il>!ZXlPC94WvRN> z;*`RHOTSeDAte-?>Yx*v_=%6~=0m&^}=cH{ZO1D^J zVhwtKCPJIx(T?gzgGMCT2vDUN`fhV?UQ0D~-~5)zcmJI^qc5&sOEbvP-94Ux%HdCK z&HO+>B!hTVX*LWrEwIXqf|Yy;&ht?A;Xev#&w!s$X))6jaQdjVPH}lhqiW9sCv%Oa zW(fZBfmqJ{u0Md-M0g&Y03=eVXt-ZjP zY{r9Sv|x(0DFtPTZBRx{iD<>Uif?dGaNX$h^21@!bqL!6l_*Q~7XL)85*J(&E3!IY zd+pTTnS_EA`^cGBRT*!i>7xkbF7DI>)?FcQZxQE2YOl_*}<3h5&hapn4R7{ zkAiCMAAxW6s?4xWa2-8N+9wLe92h^$-FtETr*_@uI-_0L?j%=U>(=ITO(hcCBMP41 zgd6&Kp!oRRSpCAA=J�@ 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 Jjb!Q^^&c$$Y=i&+ literal 0 HcmV?d00001 diff --git a/app/static/img/scorefx_favicon.png b/app/static/img/scorefx_favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..f1d6f2a68fa98b4651c518c8e2db3da98d1a3005 GIT binary patch literal 26040 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

^C{dV|3mt2 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 P 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 {

e.stopPropagation()}>
- SonicForge Studio + ScoreFX Studio
-

SonicForge Studio

+

ScoreFX Studio

Professional DAW — v{APP_VERSION}

@@ -8284,7 +8284,7 @@ const HelpModal = ({ isOpen, onClose, lang }) => {
e.stopPropagation()}>
-

{vi ? 'Hướng dẫn sử dụng SonicForge Studio' : 'SonicForge Studio User Guide'}

+

{vi ? 'Hướng dẫn sử dụng ScoreFX Studio' : 'ScoreFX Studio User Guide'}

@@ -28462,7 +28462,7 @@ const App = () => { const handleSaveCloud = handleSaveProject; const handleExportSFS = (customName = null) => { - const finalName = customName || projectName || 'Dự án SonicForge'; + const finalName = customName || projectName || 'Dự án ScoreFX'; const projectSchemaObj = serializeProjectToSchema(currentProjectId || 'proj_' + Date.now(), finalName, bpm, tracks, subTabs, sessionTabs, masteringSettings, masterVolume, { volL: masterVolL, volR: masterVolR, link: masterLink, muted: masterMuted }); window.SonicStorage.exportProjectToSFS(projectSchemaObj); showToast("Đã xuất dự án (.sfs) thành công!", "success"); @@ -31514,7 +31514,7 @@ STRICT CONSTRAINTS: }, { sep: true }, { - label: 'About SonicForge Studio...', + label: 'About ScoreFX Studio...', icon: 'info', action: () => setAboutModalOpen(true) }] diff --git a/app/static/js/app.precompiled.js b/app/static/js/app.precompiled.js index 9c2f6ce..3cc0fdf 100644 --- a/app/static/js/app.precompiled.js +++ b/app/static/js/app.precompiled.js @@ -676,7 +676,7 @@ const[loadingBackups,setLoadingBackups]=useState({});// project_id -> bool const[backupMaxCount,setBackupMaxCount]=useState(()=>parseInt(localStorage.getItem('sonic_backup_max_count')||'10'));const[showBackupConfig,setShowBackupConfig]=useState(false);const handleDragStart=e=>{const r=dragRef.current;r.active=true;r.startX=e.clientX;r.startY=e.clientY;r.ofsX=dragOfs.x;r.ofsY=dragOfs.y;const onMove=ev=>{if(!r.active)return;setDragOfs({x:r.ofsX+ev.clientX-r.startX,y:r.ofsY+ev.clientY-r.startY});};const onUp=()=>{r.active=false;document.removeEventListener('mousemove',onMove);document.removeEventListener('mouseup',onUp);};document.addEventListener('mousemove',onMove);document.addEventListener('mouseup',onUp);};useEffect(()=>{if(isOpen){fetchProfile();if(activeTab==='projects')fetchProjects();if(activeTab==='files')fetchFiles();}},[isOpen,activeTab]);const fetchProfile=async()=>{try{const data=await window.SonicAPI.getProfile();setProfile(data);}catch(e){setError(e.message||'Không thể tải thông tin profile');}};const fetchProjects=async()=>{setLoadingProjects(true);try{const data=await window.SonicAPI.listCloudProjects();setProjectsList(data||[]);}catch(e){showToast(e.message||'Không thể tải danh sách dự án','error');}finally{setLoadingProjects(false);}};const fetchFiles=async()=>{setLoadingFiles(true);try{const activeFileIds=tracks.map(t=>t.serverFileId).filter(Boolean);const data=await window.SonicAPI.listMyFiles(activeFileIds);setFilesList(data||[]);}catch(e){showToast(e.message||'Không thể tải danh sách tệp tin','error');}finally{setLoadingFiles(false);}};const fetchBackups=async projectId=>{setLoadingBackups(prev=>({...prev,[projectId]:true}));try{const data=await window.SonicAPI.listBackups(projectId);setBackupsMap(prev=>({...prev,[projectId]:data||[]}));}catch(e){showToast(e.message||'Không thể tải danh sách backup','error');}finally{setLoadingBackups(prev=>({...prev,[projectId]:false}));}};const handleDeleteBackup=async backupId=>{try{await window.SonicAPI.deleteBackup(backupId);setBackupsMap(prev=>{const next={...prev};Object.keys(next).forEach(pid=>{next[pid]=next[pid].filter(b=>b.id!==backupId);});return next;});fetchProjects();showToast('Đã xóa bản backup','info');}catch(e){showToast(e.message||'Lỗi xóa backup','error');}};const handleCleanupBackups=async()=>{try{const res=await window.SonicAPI.cleanupBackups(backupMaxCount);setBackupsMap({});fetchProjects();showToast(`Đã dọn dẹp ${res.deleted} bản backup cũ (giữ lại ${res.keep})`,'info');}catch(e){showToast(e.message||'Lỗi dọn dẹp backup','error');}};const handleOpenProject=async(projectId,projectName)=>{setAppWarningModal({title:"Mở dự án",message:"Bạn có muốn mở dự án này? Các thay đổi chưa lưu trên workspace hiện tại sẽ bị mất.",isAlert:false,onConfirm:async()=>{try{const proj=await window.SonicAPI.getCloudProject(projectId);const parsed=JSON.parse(proj.data_json);let restoredTracks=[];let restoredBpm=bpm;let restoredSessionTabs=[];let restoredSubTabs=[];if(parsed.main_session){const result=deserializeProjectFromSchema(parsed);restoredTracks=result.tracks;restoredBpm=result.bpm;restoredSessionTabs=result.sessionTabs;restoredSubTabs=result.subTabs;if(result.masteringSettings){setMasteringSettings(result.masteringSettings);}else{setMasteringSettings({masterConnected:false,activeModule:null,eqActive:false,imagerActive:false,maximizerActive:false,eqLowGain:1.5,eqMid1Gain:-1.0,eqMid2Gain:2.0,eqHighGain:1.8,w1:0,w2:115,w3:135,w4:150,imagerScale:'v2',maxGain:5.4,maxUpward:2.0,maxSoftClip:15,maxTransient:25,ceiling:-0.1,isBypassed:false,chain:[],compActive:false,compThreshold:-16,compRatio:3,compMakeup:0,limActive:false,limThreshold:-1.0,limMode:0,limLookahead:2,excActive:false,excDrive:40,rebalActive:false,rebalMid:0,rebalSide:0});}}else{restoredTracks=(parsed.tracks||[]).map(t=>{const{height:_h,...rest}=t;return{...rest,buffer:null,channelInfo:t.channelInfo||null,clips:t.clips||[],serverFileId:t.serverFileId||null};});}setTracks(restoredTracks);loadAudioBuffersForTracks(restoredTracks).catch(function(err){console.warn('loadAudioBuffersForTracks error:',err);});trackMidiChannelsRef.current={};preloadTrackInstruments(restoredTracks).catch(function(err){console.warn('preloadTrackInstruments error:',err);});setBpm(restoredBpm.toString());setSelectedTrackId(restoredTracks[0]?.id||'1');setProjectName(proj.name);setCurrentProjectId(proj.id);if(restoredSessionTabs.length>0){setSessionTabs(restoredSessionTabs);}if(restoredSubTabs.length>0){setSubTabs(restoredSubTabs);}localStorage.setItem('sonic_project_name',proj.name);localStorage.setItem('sonic_project_id',proj.id);showToast(`Đã nạp dự án "${proj.name}" thành công!`,"success");}catch(e){showToast(e.message||"Lỗi khi nạp dự án","error");}}});};const handleDeleteProject=async(projectId,e)=>{e.stopPropagation();setConfirmModal({title:"Xóa dự án Cloud",message:"Bạn có chắc chắn muốn xóa dự án này khỏi Cloud? Hành động này không thể hoàn tác.",onConfirm:async()=>{try{await window.SonicAPI.deleteCloudProject(projectId);showToast("Đã xóa dự án thành công!","success");fetchProjects();fetchProfile();}catch(err){showToast(err.message||"Lỗi khi xóa dự án","error");}}});};const handleDeleteFile=async fileId=>{if(!confirm(`Bạn có chắc chắn muốn xóa tệp tin ${fileId}?`))return;try{await window.SonicAPI.deleteMyFile(fileId);showToast("Đã xóa tệp tin thành công!","success");fetchFiles();fetchProfile();}catch(err){showToast(err.message||"Lỗi khi xóa tệp tin","error");}};const handleCleanUnusedFiles=async()=>{const unusedFiles=filesList.filter(f=>!f.is_in_use);if(unusedFiles.length===0){showToast("Không có tập tin rác nào để dọn dẹp.","info");return;}if(!confirm(`Bạn có chắc chắn muốn xóa tất cả ${unusedFiles.length} tập tin rác để giải phóng dung lượng?`))return;let successCount=0;for(const file of unusedFiles){try{await window.SonicAPI.deleteMyFile(file.file_id);successCount++;}catch(e){console.error("Lỗi xóa file rác: ",file.file_id,e);}}showToast(`Đã dọn dẹp thành công ${successCount}/${unusedFiles.length} tập tin rác!`,"success");fetchFiles();fetchProfile();};const handleChangePassword=async e=>{e.preventDefault();setMsg('');setError('');setLoading(true);try{const res=await window.SonicAPI.changePassword(oldPassword,newPassword);setMsg(res.message||'Đổi mật khẩu thành công!');setOldPassword('');setNewPassword('');}catch(err){setError(err.message||'Lỗi khi đổi mật khẩu');}finally{setLoading(false);}};const modalStyle={left:`calc(50% + ${dragOfs.x}px)`,top:`calc(50% + ${dragOfs.y}px)`,transform:'translate(-50%, -50%)'};return/*#__PURE__*/React.createElement(React.Fragment,null,/*#__PURE__*/React.createElement("div",{key:"backdrop",className:"fixed inset-0 z-40 bg-black/70 backdrop-blur-sm",onClick:onClose}),confirmModal&&/*#__PURE__*/React.createElement("div",{key:"confirm-overlay",className:"fixed inset-0 z-[60] flex items-center justify-center bg-black/50"},/*#__PURE__*/React.createElement("div",{className:"bg-[#262626] border border-[#383838] rounded-lg shadow-2xl p-5 max-w-sm w-full text-slate-200"},/*#__PURE__*/React.createElement("h4",{className:"text-sm font-bold text-rose-400 mb-2"},confirmModal.title),/*#__PURE__*/React.createElement("p",{className:"text-xs text-slate-300 mb-4"},confirmModal.message),/*#__PURE__*/React.createElement("div",{className:"flex justify-end gap-2"},/*#__PURE__*/React.createElement("button",{onClick:()=>setConfirmModal(null),className:"px-3 py-1.5 bg-zinc-700 hover:bg-zinc-600 text-slate-300 rounded text-xs font-semibold"},confirmModal.cancelText||"Hủy"),/*#__PURE__*/React.createElement("button",{onClick:()=>{const fn=confirmModal.onConfirm;setConfirmModal(null);fn();},className:"px-3 py-1.5 bg-rose-700 hover:bg-rose-600 text-white rounded text-xs font-semibold"},confirmModal.confirmText||"Xác nhận xóa")))),/*#__PURE__*/React.createElement("div",{key:"dialog",className:"fixed z-50 bg-[#262626] border border-[#383838] rounded-xl shadow-2xl w-full max-w-2xl p-6 text-slate-200 flex flex-col max-h-[85vh]",style:modalStyle},/*#__PURE__*/React.createElement("div",{className:"flex justify-between items-center pb-3 border-b border-[#383838] shrink-0 cursor-grab active:cursor-grabbing select-none",onMouseDown:handleDragStart},/*#__PURE__*/React.createElement("h3",{className:"text-md font-bold text-teal-400 flex items-center gap-1.5"},"👤 Hồ Sơ Cá Nhân & Quản Lý Dự Án"),/*#__PURE__*/React.createElement("button",{onClick:onClose,className:"text-slate-400 hover:text-slate-200"},"✕")),/*#__PURE__*/React.createElement("div",{className:"flex gap-2 border-b border-[#383838] py-2 shrink-0 text-xs font-semibold"},[/*#__PURE__*/React.createElement("button",{key:"tab-acc",onClick:()=>setActiveTab('account'),className:`px-3 py-1.5 rounded transition ${activeTab==='account'?'bg-teal-950/60 text-teal-300 border border-teal-800':'text-slate-400 hover:text-slate-200'}`},"Tài Khoản"),/*#__PURE__*/React.createElement("button",{key:"tab-proj",onClick:()=>setActiveTab('projects'),className:`px-3 py-1.5 rounded transition ${activeTab==='projects'?'bg-teal-950/60 text-teal-300 border border-teal-800':'text-slate-400 hover:text-slate-200'}`},"Dự Án Cloud"),/*#__PURE__*/React.createElement("button",{key:"tab-files",onClick:()=>setActiveTab('files'),className:`px-3 py-1.5 rounded transition ${activeTab==='files'?'bg-teal-950/60 text-teal-300 border border-teal-800':'text-slate-400 hover:text-slate-200'}`},"Tập Tin Của Tôi")]),/*#__PURE__*/React.createElement("div",{className:"flex-1 overflow-y-auto pt-4 space-y-4 pr-1 min-h-[300px]"},activeTab==='account'&&profile?[/*#__PURE__*/React.createElement("div",{key:"quota-info",className:"bg-[#1e1e1e] p-4 rounded-lg border border-[#333] grid grid-cols-2 gap-4 text-xs"},[/*#__PURE__*/React.createElement("div",{key:"username"},[/*#__PURE__*/React.createElement("span",{className:"text-slate-500 block"},"Tên người dùng"),/*#__PURE__*/React.createElement("span",{className:"font-bold text-teal-300 text-sm"},profile.username)]),/*#__PURE__*/React.createElement("div",{key:"role"},[/*#__PURE__*/React.createElement("span",{className:"text-slate-500 block"},"Vai trò"),/*#__PURE__*/React.createElement("span",{className:"uppercase font-semibold text-amber-400"},profile.role)]),/*#__PURE__*/React.createElement("div",{key:"email"},[/*#__PURE__*/React.createElement("span",{className:"text-slate-500 block"},"Email"),/*#__PURE__*/React.createElement("span",null,profile.email)]),/*#__PURE__*/React.createElement("div",{key:"quota"},[/*#__PURE__*/React.createElement("span",{className:"text-slate-500 block"},"Dung lượng Quota"),/*#__PURE__*/React.createElement("span",{className:"font-semibold text-slate-200"},`${profile.quota.used_mb} MB / ${profile.quota.storage_limit_mb} MB`)])]),/*#__PURE__*/React.createElement("div",{key:"progress"},[/*#__PURE__*/React.createElement("div",{className:"flex justify-between text-xs mb-1"},[/*#__PURE__*/React.createElement("span",{className:"text-slate-400"},"Tiến trình sử dụng bộ nhớ Server"),/*#__PURE__*/React.createElement("span",{className:"font-bold text-teal-400"},`${(profile.quota.used_mb/profile.quota.storage_limit_mb*100).toFixed(1)}%`)]),/*#__PURE__*/React.createElement("div",{className:"w-full h-2 bg-slate-800 rounded-full overflow-hidden"},[/*#__PURE__*/React.createElement("div",{className:"h-full bg-teal-500 rounded-full transition-all duration-300",style:{width:`${Math.min(100,profile.quota.used_mb/profile.quota.storage_limit_mb*100)}%`}})])]),/*#__PURE__*/React.createElement("form",{key:"pwd-form",onSubmit:handleChangePassword,className:"pt-4 border-t border-[#383838] space-y-3"},[/*#__PURE__*/React.createElement("h4",{className:"text-xs font-bold text-slate-300 uppercase"},"Thay Đổi Mật Khẩu"),msg&&/*#__PURE__*/React.createElement("div",{className:"p-2 bg-emerald-950/60 border border-emerald-700 text-emerald-300 rounded text-xs"},msg),error&&/*#__PURE__*/React.createElement("div",{className:"p-2 bg-red-950/60 border border-red-700 text-red-300 rounded text-xs"},error),/*#__PURE__*/React.createElement("div",{key:"old"},[/*#__PURE__*/React.createElement("label",{className:"block text-xs text-slate-400 mb-1"},"Mật khẩu cũ"),/*#__PURE__*/React.createElement("input",{type:"password",autoComplete:"current-password",required:true,value:oldPassword,onChange:e=>setOldPassword(e.target.value),className:"w-full bg-[#1e1e1e] border border-[#383838] rounded px-3 py-1.5 text-xs focus:outline-none focus:border-teal-500"})]),/*#__PURE__*/React.createElement("div",{key:"new"},[/*#__PURE__*/React.createElement("label",{className:"block text-xs text-slate-400 mb-1"},"Mật khẩu mới"),/*#__PURE__*/React.createElement("input",{type:"password",autoComplete:"new-password",required:true,value:newPassword,onChange:e=>setNewPassword(e.target.value),className:"w-full bg-[#1e1e1e] border border-[#383838] rounded px-3 py-1.5 text-xs focus:outline-none focus:border-teal-500"})]),/*#__PURE__*/React.createElement("button",{type:"submit",disabled:loading,className:"w-full py-1.5 bg-teal-600 hover:bg-teal-500 text-white font-semibold text-xs rounded transition"},loading?'Đang cập nhật...':'Cập Nhật Mật Khẩu')])]:activeTab==='projects'?[loadingProjects?/*#__PURE__*/React.createElement("div",{key:"loading",className:"text-center py-8 text-xs text-zinc-500"},"Đang tải danh sách dự án..."):projectsList.length===0?/*#__PURE__*/React.createElement("div",{key:"empty",className:"text-center py-8 text-xs text-zinc-500"},"Bạn chưa có dự án nào lưu trên Cloud."):/*#__PURE__*/React.createElement(React.Fragment,{key:"list"},[/*#__PURE__*/React.createElement("div",{key:"backup-config-bar",className:"flex items-center justify-between bg-zinc-900/60 p-2 rounded border border-zinc-800 mb-2 text-xs"},[/*#__PURE__*/React.createElement("div",{className:"flex items-center gap-2"},[/*#__PURE__*/React.createElement("span",{className:"text-zinc-400 text-[10px]"},"⚙️ Tự động lưu 5 phút / Backup 30 phút"),/*#__PURE__*/React.createElement("button",{onClick:e=>{e.stopPropagation();setShowBackupConfig(!showBackupConfig);},className:"px-2 py-0.5 bg-zinc-800 hover:bg-zinc-700 text-zinc-300 rounded text-[10px] border border-zinc-700"},showBackupConfig?"ẨN":"CẤU HÌNH")]),/*#__PURE__*/React.createElement("button",{onClick:e=>{e.stopPropagation();handleCleanupBackups();},className:"px-2 py-0.5 bg-amber-800 hover:bg-amber-700 text-amber-200 rounded text-[10px] border border-amber-700"},"🧹 DỌN BACKUP")]),showBackupConfig&&/*#__PURE__*/React.createElement("div",{key:"backup-config-detail",className:"bg-[#18181b] border border-zinc-800 rounded p-3 mb-2 text-xs"},[/*#__PURE__*/React.createElement("div",{className:"flex items-center justify-between mb-2"},[/*#__PURE__*/React.createElement("label",{className:"text-zinc-300 font-semibold"},"Số bản backup tối đa:"),/*#__PURE__*/React.createElement("div",{className:"flex items-center gap-2"},[/*#__PURE__*/React.createElement("input",{type:"range",min:5,max:20,value:backupMaxCount,onChange:e=>{const v=parseInt(e.target.value);setBackupMaxCount(v);localStorage.setItem('sonic_backup_max_count',v.toString());},className:"w-24 accent-amber-500"}),/*#__PURE__*/React.createElement("span",{className:"text-amber-400 font-bold w-6 text-center"},backupMaxCount)])]),/*#__PURE__*/React.createElement("p",{className:"text-[10px] text-zinc-500"},"Mỗi dự án sẽ giữ tối đa số bản backup này. Backup cũ nhất sẽ tự động bị xóa khi vượt quá giới hạn.")]),/*#__PURE__*/React.createElement("div",{className:"space-y-1.5"},projectsList.map(proj=>/*#__PURE__*/React.createElement("div",{key:proj.id},[/*#__PURE__*/React.createElement("div",{onClick:()=>handleOpenProject(proj.id),className:"flex items-center justify-between p-3 bg-[#1e1e1e] hover:bg-zinc-800 rounded border border-zinc-800 transition cursor-pointer text-xs group"},[/*#__PURE__*/React.createElement("div",{key:"meta"},[/*#__PURE__*/React.createElement("div",{className:"font-bold text-slate-200 group-hover:text-teal-400"},proj.name),/*#__PURE__*/React.createElement("div",{className:"text-[10px] text-zinc-500 mt-0.5"},[`Dung lượng: ${proj.size_mb} MB | Cập nhật: ${new Date(proj.updated_at*1000).toLocaleString()}`,proj.backup_count>0&&` | Backup: ${proj.backup_count}`])]),/*#__PURE__*/React.createElement("div",{key:"actions",className:"flex items-center gap-1.5"},[/*#__PURE__*/React.createElement("button",{onClick:e=>{e.stopPropagation();if(expandedBackupId===proj.id){setExpandedBackupId(null);}else{setExpandedBackupId(proj.id);fetchBackups(proj.id);}},className:`px-2 py-1 rounded font-semibold text-[10px] border ${expandedBackupId===proj.id?'bg-amber-800/80 text-amber-200 border-amber-700':'bg-zinc-800 hover:bg-zinc-700 text-zinc-400 border-zinc-700'}`},`Backup (${proj.backup_count})`),/*#__PURE__*/React.createElement("button",{onClick:e=>{e.stopPropagation();handleOpenProject(proj.id);},className:"px-2.5 py-1 bg-teal-800/80 hover:bg-teal-700 text-teal-200 rounded font-semibold text-[10px]"},"MỞ"),/*#__PURE__*/React.createElement("button",{onClick:e=>handleDeleteProject(proj.id,e),className:"px-2 py-1 bg-rose-950/60 hover:bg-rose-900/80 text-rose-300 rounded font-semibold text-[10px]"},"XÓA")])]),expandedBackupId===proj.id&&/*#__PURE__*/React.createElement("div",{key:"backup-list",className:"ml-4 pl-3 border-l-2 border-amber-800/50 bg-[#161618] rounded-b p-2 mb-1"},[loadingBackups[proj.id]?/*#__PURE__*/React.createElement("div",{className:"text-[10px] text-zinc-500 py-2 text-center"},"Đang tải..."):!backupsMap[proj.id]||backupsMap[proj.id].length===0?/*#__PURE__*/React.createElement("div",{className:"text-[10px] text-zinc-500 py-2 text-center"},"Chưa có bản backup nào."):/*#__PURE__*/React.createElement("div",{className:"space-y-1 max-h-48 overflow-y-auto"},backupsMap[proj.id].map(b=>/*#__PURE__*/React.createElement("div",{key:b.id,className:"flex items-center justify-between py-1.5 px-2 bg-[#1e1e22] rounded border border-zinc-800"},[/*#__PURE__*/React.createElement("div",{key:"info",className:"flex-1 min-w-0"},[/*#__PURE__*/React.createElement("div",{className:"text-[10px] text-zinc-300 truncate"},b.name),/*#__PURE__*/React.createElement("div",{className:"text-[9px] text-zinc-500 mt-0.5"},`${b.size_mb} MB | ${new Date(b.created_at*1000).toLocaleString()}`)]),/*#__PURE__*/React.createElement("button",{onClick:e=>{e.stopPropagation();handleDeleteBackup(b.id);},className:"px-1.5 py-0.5 bg-rose-950 hover:bg-rose-900 text-rose-300 rounded text-[9px] border border-rose-900 ml-2 shrink-0"},"XÓA")])))])])))])]:activeTab==='files'?[/*#__PURE__*/React.createElement("div",{key:"cleanup-header",className:"flex items-center justify-between bg-zinc-900/60 p-2.5 rounded border border-zinc-800 text-xs shrink-0 mb-3"},[/*#__PURE__*/React.createElement("span",{className:"text-zinc-400 text-[10px]"},"💡 Các tập tin không dùng trong dự án nào sẽ được đánh dấu 'Không dùng' và có thể xóa để giải phóng dung lượng."),/*#__PURE__*/React.createElement("button",{onClick:handleCleanUnusedFiles,className:"px-2.5 py-1 bg-rose-700 hover:bg-rose-600 text-white rounded font-bold text-[10px] uppercase flex items-center gap-1"},"🧹 Dọn dẹp tệp rác")]),loadingFiles?/*#__PURE__*/React.createElement("div",{key:"loading",className:"text-center py-8 text-xs text-zinc-500"},"Đang tải danh sách tập tin..."):filesList.length===0?/*#__PURE__*/React.createElement("div",{key:"empty",className:"text-center py-8 text-xs text-zinc-500"},"Chưa có tập tin nào tải lên hoặc tạo ra."):/*#__PURE__*/React.createElement("div",{key:"list",className:"space-y-1.5"},[filesList.map(file=>/*#__PURE__*/React.createElement("div",{key:file.file_id,className:"flex items-center justify-between p-3 bg-[#1e1e1e] rounded border border-zinc-800 text-xs"},[/*#__PURE__*/React.createElement("div",{key:"meta",className:"max-w-[70%]"},[/*#__PURE__*/React.createElement("div",{className:"font-semibold text-slate-300 truncate"},file.original_name||file.file_id),/*#__PURE__*/React.createElement("div",{className:"text-[10px] text-zinc-500 mt-0.5"},`Loại: ${file.type} | Dung lượng: ${file.size_mb} MB | Tạo lúc: ${new Date(file.created_at*1000).toLocaleString()}`)]),/*#__PURE__*/React.createElement("div",{key:"actions",className:"flex items-center gap-2"},[file.is_in_use?/*#__PURE__*/React.createElement("span",{className:"px-2 py-0.5 bg-emerald-950 text-emerald-400 border border-emerald-900 rounded text-[9px] uppercase font-bold font-mono"},"Đang dùng"):/*#__PURE__*/React.createElement("span",{className:"px-2 py-0.5 bg-zinc-850 text-zinc-400 border border-zinc-700 rounded text-[9px] uppercase font-bold font-mono"},"Không dùng"),!file.is_in_use&&/*#__PURE__*/React.createElement("button",{onClick:()=>handleDeleteFile(file.file_id),className:"px-2 py-0.5 bg-rose-950 hover:bg-rose-900 text-rose-300 rounded font-semibold text-[10px] border border-rose-900"},"Xóa")])]))])]:null)));};const SaveProjectModal=({isOpen,onClose,onSaveCloud,onSaveLocal,projectName})=>{if(!isOpen)return null;const[name,setName]=useState(projectName||'');const[saveType,setSaveType]=useState(localStorage.getItem('sonic_token')?'cloud':'local');const[cloudProjects,setCloudProjects]=useState([]);const[loading,setLoading]=useState(false);const[selectedExisting,setSelectedExisting]=useState(null);const[confirmOverwriteProject,setConfirmOverwriteProject]=useState(null);React.useEffect(function(){if(!isOpen)return;if(saveType==='cloud'&&window.SonicAPI&&window.SonicAPI.listCloudProjects){setLoading(true);window.SonicAPI.listCloudProjects().then(function(data){setCloudProjects(data||[]);}).catch(function(){setCloudProjects([]);}).finally(function(){setLoading(false);});}},[isOpen,saveType]);const handleSubmit=e=>{e.preventDefault();if(!name.trim())return;var matched=null;for(var i=0;i{if(!isOpen)return null;const[tab,setTab]=useState('cloud');const[projects,setProjects]=useState([]);const[loading,setLoading]=useState(false);React.useEffect(function(){if(!isOpen)return;if(tab==='cloud'){setLoading(true);var api=window.SonicAPI;if(api&&api.listCloudProjects){api.listCloudProjects().then(function(data){setProjects(data||[]);}).catch(function(){setProjects([]);}).finally(function(){setLoading(false);});}else{setLoading(false);}}},[isOpen,tab]);return React.createElement("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/70 backdrop-blur-sm"},React.createElement("div",{className:"bg-[#262626] border border-[#383838] rounded-xl shadow-2xl w-full max-w-lg p-6 text-slate-200"},React.createElement("h3",{className:"text-sm font-bold text-teal-400 mb-4 uppercase"},"Mở dự án"),React.createElement("div",{className:"grid grid-cols-2 gap-2 text-xs mb-4"},[React.createElement("button",{key:"cloud-tab",type:"button",onClick:function(){setTab('cloud');},className:"py-2 rounded border flex flex-col items-center gap-1 font-semibold transition "+(tab==='cloud'?'bg-teal-950/60 border-teal-500 text-teal-300':'bg-zinc-800 border-zinc-700 hover:bg-zinc-750 text-zinc-400')},[React.createElement("span",{key:"t"},"☁️ Cloud"),React.createElement("span",{key:"d",className:"text-[9px] font-normal text-zinc-500"},"Dự án trên server")]),React.createElement("button",{key:"local-tab",type:"button",onClick:function(){setTab('local');},className:"py-2 rounded border flex flex-col items-center gap-1 font-semibold transition "+(tab==='local'?'bg-teal-950/60 border-teal-500 text-teal-300':'bg-zinc-800 border-zinc-700 hover:bg-zinc-750 text-zinc-400')},[React.createElement("span",{key:"t"},"💾 Local"),React.createElement("span",{key:"d",className:"text-[9px] font-normal text-zinc-500"},"Tập tin .sfs trên máy")])]),tab==='cloud'?React.createElement("div",{className:"space-y-1.5 max-h-64 overflow-y-auto"},loading?[React.createElement("div",{key:"l",className:"text-center py-8 text-xs text-zinc-500"},"Đang tải danh sách dự án...")]:projects.length===0?[React.createElement("div",{key:"e",className:"text-center py-8 text-xs text-zinc-500"},"Bạn chưa có dự án nào trên Cloud.")]:projects.map(function(p){return React.createElement("div",{key:p.id,onClick:function(){onOpenCloud(p.id,p.name);},className:"flex items-center justify-between p-3 bg-[#1e1e1e] hover:bg-zinc-800 rounded border border-zinc-800 transition cursor-pointer text-xs group"},[React.createElement("div",{key:"meta"},[React.createElement("div",{className:"font-bold text-slate-200 group-hover:text-teal-400"},p.name),React.createElement("div",{className:"text-[10px] text-zinc-500 mt-0.5"},"Dung lượng: "+(p.size_mb||0)+" MB | Cập nhật: "+new Date((p.updated_at||0)*1000).toLocaleString())]),React.createElement("button",{onClick:function(e){e.stopPropagation();onOpenCloud(p.id,p.name);},className:"px-2.5 py-1 bg-teal-800/80 hover:bg-teal-700 text-teal-200 rounded font-semibold text-[10px]"},"MỞ")]);})):React.createElement("div",{className:"py-4 text-center text-xs text-zinc-400 space-y-3"},[React.createElement("div",{key:"d",className:"text-zinc-500"},"Chọn tệp .sfs để mở dự án từ Local."),React.createElement("button",{key:"b",onClick:function(){onOpenLocal();},className:"px-4 py-2 bg-teal-600 hover:bg-teal-500 text-white rounded font-semibold text-xs transition"},"Chọn tệp .sfs ...")]),React.createElement("div",{className:"flex justify-end gap-2 text-xs mt-4 pt-3 border-t border-zinc-800"},React.createElement("button",{type:"button",onClick:onClose,className:"px-3 py-1.5 bg-zinc-800 hover:bg-zinc-700 text-zinc-300 rounded"},"Hủy"))));};const SaveAsModal=({isOpen,onClose,projectName,onSaveCloud,onSaveLocal})=>{if(!isOpen)return null;const[name,setName]=useState(projectName||'');const[saveType,setSaveType]=useState('cloud');const handleSubmit=e=>{e.preventDefault();if(!name.trim())return;if(saveType==='cloud'){onSaveCloud(name.trim());}else{onSaveLocal(name.trim());}onClose();};return/*#__PURE__*/React.createElement("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/70 backdrop-blur-sm"},/*#__PURE__*/React.createElement("div",{className:"bg-[#262626] border border-[#383838] rounded-xl shadow-2xl w-full max-w-md p-6 text-slate-200"},/*#__PURE__*/React.createElement("h3",{className:"text-sm font-bold text-teal-400 mb-4 uppercase"},"Lưu dưới tên khác (Save As...)"),/*#__PURE__*/React.createElement("form",{onSubmit:handleSubmit,className:"space-y-4"},[/*#__PURE__*/React.createElement("div",{key:"name-block"},[/*#__PURE__*/React.createElement("label",{className:"block text-[10px] text-zinc-400 uppercase font-bold mb-1"},"Tên dự án mới"),/*#__PURE__*/React.createElement("input",{type:"text",placeholder:"Nhập tên mới...",required:true,value:name,onChange:e=>setName(e.target.value),className:"w-full bg-[#1e1e1e] border border-[#383838] rounded px-3 py-1.5 text-xs text-slate-200 focus:outline-none focus:border-teal-500 font-bold",autoFocus:true})]),/*#__PURE__*/React.createElement("div",{key:"type-block"},[/*#__PURE__*/React.createElement("label",{className:"block text-[10px] text-zinc-400 uppercase font-bold mb-1.5"},"Phương thức lưu trữ"),/*#__PURE__*/React.createElement("div",{className:"grid grid-cols-2 gap-2 text-xs"},[/*#__PURE__*/React.createElement("button",{key:"btn-cloud",type:"button",onClick:()=>setSaveType('cloud'),className:`py-2 rounded border flex flex-col items-center gap-1 font-semibold transition ${saveType==='cloud'?'bg-teal-950/60 border-teal-500 text-teal-300':'bg-zinc-800 border-zinc-700 hover:bg-zinc-750 text-zinc-400'}`},[/*#__PURE__*/React.createElement("span",{key:"title"},"☁️ Lưu Cloud"),/*#__PURE__*/React.createElement("span",{key:"desc",className:"text-[9px] font-normal text-zinc-500"},"Lưu lên server cá nhân")]),/*#__PURE__*/React.createElement("button",{key:"btn-local",type:"button",onClick:()=>setSaveType('local'),className:`py-2 rounded border flex flex-col items-center gap-1 font-semibold transition ${saveType==='local'?'bg-teal-950/60 border-teal-500 text-teal-300':'bg-zinc-800 border-zinc-700 hover:bg-zinc-750 text-zinc-400'}`},[/*#__PURE__*/React.createElement("span",{key:"title"},"💾 Tải về máy (.sfs)"),/*#__PURE__*/React.createElement("span",{key:"desc",className:"text-[9px] font-normal text-zinc-500"},"Tải tệp JSON dự án về máy")])])]),/*#__PURE__*/React.createElement("div",{key:"actions",className:"flex justify-end gap-2 text-xs pt-2"},[/*#__PURE__*/React.createElement("button",{key:"cancel",type:"button",onClick:onClose,className:"px-3 py-1.5 bg-zinc-800 hover:bg-zinc-700 text-zinc-300 rounded"},"Hủy"),/*#__PURE__*/React.createElement("button",{key:"save",type:"submit",className:"px-3 py-1.5 bg-teal-600 hover:bg-teal-500 text-white rounded font-semibold"},"Thực hiện lưu")])])));};const SystemManagerModal=({isOpen,onClose})=>{if(!isOpen)return null;const[users,setUsers]=useState([]);const[loading,setLoading]=useState(true);const[msg,setMsg]=useState('');const[error,setError]=useState('');const[editingQuotaUser,setEditingQuotaUser]=useState(null);const[newQuotaMb,setNewQuotaMb]=useState(500);useEffect(()=>{if(isOpen)loadUsers();},[isOpen]);const loadUsers=async()=>{setLoading(true);setError('');try{const data=await window.SonicAPI.listUsers();setUsers(data);}catch(err){setError(err.message||'Không thể tải danh sách người dùng hệ thống');}finally{setLoading(false);}};const handleSaveQuota=async userId=>{try{await window.SonicAPI.updateUserQuota(userId,parseInt(newQuotaMb));setMsg('Đã cập nhật hạn mức Quota thành công!');setEditingQuotaUser(null);loadUsers();}catch(err){setError(err.message||'Lỗi cập nhật Quota');}};const handleToggleRole=async user=>{const nextRole=user.role==='admin'?'standard':'admin';try{await window.SonicAPI.updateUserRole(user.id,nextRole,user.is_active);setMsg(`Đã đổi vai trò người dùng ${user.username} thành ${nextRole}`);loadUsers();}catch(err){setError(err.message||'Lỗi cập nhật vai trò');}};const handleDeleteUser=async userId=>{if(!confirm('Bạn có chắc chắn muốn xóa người dùng này khỏi hệ thống?'))return;try{await window.SonicAPI.deleteUser(userId);setMsg('Đã xóa người dùng thành công');loadUsers();}catch(err){setError(err.message||'Lỗi khi xóa người dùng');}};return/*#__PURE__*/React.createElement("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/70 backdrop-blur-sm"},/*#__PURE__*/React.createElement("div",{className:"bg-[#262626] border border-[#383838] rounded-xl shadow-2xl w-full max-w-4xl p-6 text-slate-200"},/*#__PURE__*/React.createElement("div",{className:"flex justify-between items-center pb-4 border-b border-[#383838]"},/*#__PURE__*/React.createElement("h3",{className:"text-lg font-bold text-amber-400"},"⚙️ Quản Lý Hệ Thống & Phân Quyền Admin"),/*#__PURE__*/React.createElement("button",{onClick:onClose,className:"text-slate-400 hover:text-slate-200"},"✕")),msg&&/*#__PURE__*/React.createElement("div",{className:"mt-3 p-2 bg-emerald-950/60 border border-emerald-700 text-emerald-300 rounded text-xs"},msg),error&&/*#__PURE__*/React.createElement("div",{className:"mt-3 p-2 bg-red-950/60 border border-red-700 text-red-300 rounded text-xs"},error),/*#__PURE__*/React.createElement("div",{className:"mt-4 overflow-x-auto max-h-96 no-scrollbar"},loading?/*#__PURE__*/React.createElement("div",{className:"py-8 text-center text-slate-400 text-xs"},"Đang tải thông tin hệ thống..."):/*#__PURE__*/React.createElement("table",{className:"w-full text-left text-xs border-collapse"},/*#__PURE__*/React.createElement("thead",null,/*#__PURE__*/React.createElement("tr",{className:"border-b border-[#383838] text-slate-400 bg-[#1e1e1e]"},/*#__PURE__*/React.createElement("th",{className:"p-3"},"Tên Người Dùng"),/*#__PURE__*/React.createElement("th",{className:"p-3"},"Email"),/*#__PURE__*/React.createElement("th",{className:"p-3"},"Vai Trò"),/*#__PURE__*/React.createElement("th",{className:"p-3"},"Dung Lượng Sử Dụng"),/*#__PURE__*/React.createElement("th",{className:"p-3"},"Hạn Mức Quota"),/*#__PURE__*/React.createElement("th",{className:"p-3 text-right"},"Thao Tác"))),/*#__PURE__*/React.createElement("tbody",{className:"divide-y divide-[#333]"},users.map(u=>/*#__PURE__*/React.createElement("tr",{key:u.id,className:"hover:bg-[#2e2e2e]"},/*#__PURE__*/React.createElement("td",{className:"p-3 font-semibold text-teal-300"},u.username,u.must_change_password&&/*#__PURE__*/React.createElement("span",{className:"ml-2 text-xs bg-amber-900/60 text-amber-300 px-1.5 py-0.5 rounded"},"Mật khẩu gốc")),/*#__PURE__*/React.createElement("td",{className:"p-3 text-slate-300"},u.email),/*#__PURE__*/React.createElement("td",{className:"p-3 uppercase font-bold text-amber-400"},u.role),/*#__PURE__*/React.createElement("td",{className:"p-3"},u.used_mb," MB"),/*#__PURE__*/React.createElement("td",{className:"p-3"},editingQuotaUser===u.id?/*#__PURE__*/React.createElement("div",{className:"flex items-center space-x-1"},/*#__PURE__*/React.createElement("input",{type:"number",value:newQuotaMb,onChange:e=>setNewQuotaMb(e.target.value),className:"w-16 bg-[#1e1e1e] border border-[#444] rounded px-1 py-0.5 text-xs text-slate-200"}),/*#__PURE__*/React.createElement("span",null,"MB"),/*#__PURE__*/React.createElement("button",{onClick:()=>handleSaveQuota(u.id),className:"px-2 py-0.5 bg-teal-600 rounded text-xs"},"Lưu")):/*#__PURE__*/React.createElement("span",{className:"font-semibold"},u.quota_mb," MB")),/*#__PURE__*/React.createElement("td",{className:"p-3 text-right space-x-2"},/*#__PURE__*/React.createElement("button",{onClick:()=>{setEditingQuotaUser(u.id);setNewQuotaMb(u.quota_mb);},className:"px-2 py-1 bg-slate-700 hover:bg-slate-600 rounded text-xs"},"Sửa Quota"),/*#__PURE__*/React.createElement("button",{onClick:()=>handleToggleRole(u),className:"px-2 py-1 bg-amber-700/60 hover:bg-amber-600 rounded text-xs"},"Đổi Role"),u.role!=='admin'&&/*#__PURE__*/React.createElement("button",{onClick:()=>handleDeleteUser(u.id),className:"px-2 py-1 bg-red-700/60 hover:bg-red-600 rounded text-xs"},"Xóa")))))))));};/* ═══════════════════════════════════════════════════════════════════ ABOUT / HELP / PREFERENCES MODALS (menu Help + Tools → Preferences) ═══════════════════════════════════════════════════════════════════ */const APP_VERSION='1.0.0';// khớp src-tauri/tauri.conf.json -const AboutModal=({isOpen,onClose})=>{if(!isOpen)return null;return/*#__PURE__*/React.createElement("div",{className:"fixed inset-0 z-[9999] flex items-center justify-center bg-black/70 backdrop-blur-sm",onClick:onClose},/*#__PURE__*/React.createElement("div",{className:"bg-[#1e1e24] border border-zinc-700 rounded-xl shadow-2xl w-full max-w-md p-6 text-slate-200",onClick:e=>e.stopPropagation()},/*#__PURE__*/React.createElement("div",{className:"flex items-center gap-3 mb-4"},/*#__PURE__*/React.createElement("img",{src:"/favicon.svg",alt:"SonicForge Studio",className:"w-12 h-12 rounded-lg bg-zinc-900 border border-zinc-700 shadow-lg object-contain p-0.5"}),/*#__PURE__*/React.createElement("div",null,/*#__PURE__*/React.createElement("h2",{className:"text-lg font-bold text-white"},"SonicForge Studio"),/*#__PURE__*/React.createElement("p",{className:"text-xs text-zinc-400"},"Professional DAW — v",APP_VERSION))),/*#__PURE__*/React.createElement("div",{className:"space-y-2 text-sm"},/*#__PURE__*/React.createElement("p",{className:"text-zinc-300 leading-relaxed"},"Phần mềm sản xuất âm nhạc (DAW) — soạn nhạc, ghi âm, chỉnh sửa MIDI/Audio, SoundFont & VST, trộn và master."),/*#__PURE__*/React.createElement("div",{className:"pt-2 border-t border-zinc-800 space-y-1 text-xs"},/*#__PURE__*/React.createElement("div",{className:"flex items-center gap-2"},/*#__PURE__*/React.createElement("span",{className:"text-zinc-500 w-20 shrink-0"},"Developer"),/*#__PURE__*/React.createElement("span",{className:"text-cyan-400 font-semibold"},"Lộc Phạm")),/*#__PURE__*/React.createElement("div",{className:"flex items-center gap-2"},/*#__PURE__*/React.createElement("span",{className:"text-zinc-500 w-20 shrink-0"},"Email"),/*#__PURE__*/React.createElement("a",{href:"mailto:tranloclqd@gmail.com",className:"text-cyan-400 hover:underline"},"tranloclqd@gmail.com")),/*#__PURE__*/React.createElement("div",{className:"flex items-center gap-2"},/*#__PURE__*/React.createElement("span",{className:"text-zinc-500 w-20 shrink-0"},"Version"),/*#__PURE__*/React.createElement("span",{className:"text-zinc-300"},APP_VERSION)),/*#__PURE__*/React.createElement("div",{className:"flex items-center gap-2"},/*#__PURE__*/React.createElement("span",{className:"text-zinc-500 w-20 shrink-0"},"Build"),/*#__PURE__*/React.createElement("span",{className:"text-zinc-300"},"Standalone (Tauri v2 + PyInstaller)")))),/*#__PURE__*/React.createElement("div",{className:"mt-5 flex justify-end"},/*#__PURE__*/React.createElement("button",{onClick:onClose,className:"px-4 py-1.5 bg-cyan-700 hover:bg-cyan-600 rounded text-xs font-bold text-white transition"},"Đóng"))));};const HelpModal=({isOpen,onClose,lang})=>{if(!isOpen)return null;const vi=lang!=='en';const sections=vi?[{title:'🚀 Bắt đầu nhanh',body:'Nhấn phím Cách (Space) để Play/Pause. Nhấn phím / để dừng. Dùng nút Record (●) để ghi âm/MIDI. Tạo track mới từ menu Track hoặc nút "+ Add Track".'},{title:'🎹 MIDI & ARM',body:'Bật nút ARM đỏ trên track để nhận phím từ MIDI keyboard. Vào menu Tools → MIDI Devices để chọn thiết bị. Khi ARM + bấm phím, âm preview phát và VU meter nhảy theo trường độ.'},{title:'🎼 Piano Roll',body:'Nhấp đúp vào MIDI item để mở Piano Roll. Dùng Ctrl+scroll hoặc nút +/− để zoom. Nhấp để vẽ note, kéo để di chuyển, Ctrl+kéo để copy. Phím tắt: C (vẽ), E (tẩy), Space (nghe).'},{title:'🎛️ FX & Master',body:'Chọn track → nút FX để mở FX Rack (thêm EQ, compressor...). Bấm nút PWR ở Master để mở Mastering Panel: EQ 4 băng, compressor, limiter. Mọi thay đổi áp dụng realtime.'},{title:'🧪 SoundFont & VST',body:'Vào Tools → Plugin Manager để quét SoundFont (.sf2/.sf3) và VSTi. Track MIDI dùng SoundFont làm nhạc cụ — chọn instrument từ nút Synth trên track.'},{title:'🤖 AI',body:'Tools → Config AI Providers để cấu hình API (OpenAI, Gemini, Ollama...). Dùng AI Prompt Generator (nút ✨) để sinh MIDI/ý tưởng; AI MIDI Preset Manager để lưu preset.'},{title:'💾 Lưu & Xuất',body:'Ctrl+S lưu project (cloud/temp), Ctrl+Shift+S Save As. Export WAV qua nút Export — chọn vùng, format, bitrate rồi Render.'},{title:'⌨️ Phím tắt',body:'Space: Play/Pause · /: Stop · Ctrl+Z/Y: Undo/Redo · Ctrl+C/X/V: Copy/Cut/Paste · Ctrl+S: Save · Ctrl+N: New · S: Split · Ctrl+E: Edit in new tab · Ctrl+wheel: zoom timeline'}]:[{title:'🚀 Quick start',body:'Press Space to Play/Pause. Press / to stop. Use Record (●) to capture audio/MIDI. Add tracks from the Track menu or the "+ Add Track" button.'},{title:'🎹 MIDI & ARM',body:'Enable the red ARM button on a track to receive keys from a MIDI keyboard. Go to Tools → MIDI Devices to pick your device. When ARM + key press, preview audio plays and the VU meter animates for the note length.'},{title:'🎼 Piano Roll',body:'Double-click a MIDI item to open the Piano Roll. Use Ctrl+scroll or +/− buttons to zoom. Click to draw notes, drag to move, Ctrl+drag to copy. Shortcuts: C (draw), E (erase), Space (listen).'},{title:'🎛️ FX & Master',body:'Select a track → FX button to open the FX Rack (EQ, compressor...). Press the PWR button on the Master to open the Mastering Panel: 4-band EQ, compressor, limiter — all realtime.'},{title:'🧪 SoundFont & VST',body:'Tools → Plugin Manager scans SoundFonts (.sf2/.sf3) and VSTi. MIDI tracks use SoundFonts as instruments — pick one from the Synth button on the track.'},{title:'🤖 AI',body:'Tools → Config AI Providers to set up APIs (OpenAI, Gemini, Ollama...). Use the AI Prompt Generator (✨) to create MIDI/ideas; AI MIDI Preset Manager stores presets.'},{title:'💾 Save & Export',body:'Ctrl+S saves the project (cloud/temp), Ctrl+Shift+S Save As. Export WAV via the Export button — pick range, format, bitrate, then Render.'},{title:'⌨️ Shortcuts',body:'Space: Play/Pause · /: Stop · Ctrl+Z/Y: Undo/Redo · Ctrl+C/X/V: Copy/Cut/Paste · Ctrl+S: Save · Ctrl+N: New · S: Split · Ctrl+E: Edit in new tab · Ctrl+wheel: zoom timeline'}];return/*#__PURE__*/React.createElement("div",{className:"fixed inset-0 z-[9999] flex items-center justify-center bg-black/70 backdrop-blur-sm",onClick:onClose},/*#__PURE__*/React.createElement("div",{className:"bg-[#1e1e24] border border-zinc-700 rounded-xl shadow-2xl w-full max-w-2xl max-h-[85vh] flex flex-col text-slate-200",onClick:e=>e.stopPropagation()},/*#__PURE__*/React.createElement("div",{className:"flex items-center justify-between px-5 py-3 border-b border-zinc-800 shrink-0"},/*#__PURE__*/React.createElement("h2",{className:"text-base font-bold text-white"},vi?'Hướng dẫn sử dụng SonicForge Studio':'SonicForge Studio User Guide'),/*#__PURE__*/React.createElement("button",{onClick:onClose,className:"w-6 h-6 rounded hover:bg-zinc-700 text-zinc-400 hover:text-white text-sm"},"✕")),/*#__PURE__*/React.createElement("div",{className:"overflow-y-auto px-5 py-4 space-y-3"},sections.map((s,i)=>/*#__PURE__*/React.createElement("div",{key:i,className:"bg-zinc-900/60 border border-zinc-800 rounded-lg p-3"},/*#__PURE__*/React.createElement("h3",{className:"text-sm font-bold text-cyan-400 mb-1"},s.title),/*#__PURE__*/React.createElement("p",{className:"text-xs text-zinc-300 leading-relaxed"},s.body)))),/*#__PURE__*/React.createElement("div",{className:"px-5 py-3 border-t border-zinc-800 flex justify-end shrink-0"},/*#__PURE__*/React.createElement("button",{onClick:onClose,className:"px-4 py-1.5 bg-cyan-700 hover:bg-cyan-600 rounded text-xs font-bold text-white transition"},vi?'Đóng':'Close'))));};const PreferencesModal=({isOpen,onClose,prefs,onPrefsChange})=>{if(!isOpen)return null;const vi=prefs.language!=='en';const themes=[{id:'dark',name:vi?'Tối (mặc định)':'Dark (default)',swatch:'from-zinc-700 to-zinc-900',ring:'ring-cyan-400'},{id:'midnight',name:vi?'Đêm xanh':'Midnight',swatch:'from-sky-800 to-slate-950',ring:'ring-sky-400'},{id:'forest',name:vi?'Rừng xanh':'Forest',swatch:'from-emerald-700 to-green-950',ring:'ring-emerald-400'},{id:'violet',name:vi?'Tím':'Violet',swatch:'from-violet-700 to-purple-950',ring:'ring-violet-400'},{id:'graphite',name:vi?'Than chì':'Graphite',swatch:'from-zinc-600 to-neutral-900',ring:'ring-zinc-300'}];const set=(k,v)=>onPrefsChange({...prefs,[k]:v});return/*#__PURE__*/React.createElement("div",{className:"fixed inset-0 z-[9999] flex items-center justify-center bg-black/70 backdrop-blur-sm",onClick:onClose},/*#__PURE__*/React.createElement("div",{className:"bg-[#1e1e24] border border-zinc-700 rounded-xl shadow-2xl w-full max-w-md max-h-[85vh] overflow-y-auto p-5 text-slate-200",onClick:e=>e.stopPropagation()},/*#__PURE__*/React.createElement("div",{className:"flex items-center justify-between mb-4"},/*#__PURE__*/React.createElement("h2",{className:"text-base font-bold text-white"},vi?'Tùy chọn (Preferences)':'Preferences'),/*#__PURE__*/React.createElement("button",{onClick:onClose,className:"w-6 h-6 rounded hover:bg-zinc-700 text-zinc-400 hover:text-white text-sm"},"✕")),/*#__PURE__*/React.createElement("div",{className:"mb-5"},/*#__PURE__*/React.createElement("h3",{className:"text-xs font-bold text-zinc-400 uppercase tracking-wider mb-2"},vi?'🎨 Chủ đề màu':'🎨 Theme'),/*#__PURE__*/React.createElement("div",{className:"grid grid-cols-1 gap-1.5"},themes.map(th=>/*#__PURE__*/React.createElement("button",{key:th.id,onClick:()=>set('theme',th.id),className:`flex items-center gap-2.5 px-2.5 py-2 rounded-lg border text-xs text-left transition ${prefs.theme===th.id?'border-cyan-500 bg-zinc-800':'border-zinc-700 bg-zinc-900 hover:bg-zinc-800'}`},/*#__PURE__*/React.createElement("span",{className:`w-6 h-6 rounded-md bg-gradient-to-br ${th.swatch} ring-1 ring-black/40 shrink-0 ${prefs.theme===th.id?`ring-2 ${th.ring}`:''}`}),/*#__PURE__*/React.createElement("span",{className:"text-zinc-200"},th.name),prefs.theme===th.id&&/*#__PURE__*/React.createElement("span",{className:"ml-auto text-cyan-400 text-[10px] font-bold"},"✓"))))),/*#__PURE__*/React.createElement("div",{className:"mb-5"},/*#__PURE__*/React.createElement("h3",{className:"text-xs font-bold text-zinc-400 uppercase tracking-wider mb-2"},vi?'🌐 Ngôn ngữ':'🌐 Language'),/*#__PURE__*/React.createElement("div",{className:"flex gap-1.5"},[{id:'vi',label:'Tiếng Việt'},{id:'en',label:'English'}].map(l=>/*#__PURE__*/React.createElement("button",{key:l.id,onClick:()=>set('language',l.id),className:`flex-1 px-2 py-1.5 rounded-lg border text-xs font-semibold transition ${prefs.language===l.id?'border-cyan-500 bg-cyan-900/40 text-cyan-300':'border-zinc-700 bg-zinc-900 text-zinc-400 hover:bg-zinc-800'}`},l.label))),/*#__PURE__*/React.createElement("p",{className:"text-[10px] text-zinc-500 mt-1"},vi?'Áp dụng ngay cho menu & hướng dẫn.':'Applies immediately to menus & guide.')),/*#__PURE__*/React.createElement("div",{className:"mb-5"},/*#__PURE__*/React.createElement("h3",{className:"text-xs font-bold text-zinc-400 uppercase tracking-wider mb-2"},vi?'🔠 Cỡ chữ nút bấm':'🔠 Button font size'),/*#__PURE__*/React.createElement("div",{className:"flex gap-1.5"},[{id:'sm',label:vi?'Nhỏ':'Small'},{id:'md',label:vi?'Vừa':'Medium'},{id:'lg',label:vi?'Lớn':'Large'}].map(f=>/*#__PURE__*/React.createElement("button",{key:f.id,onClick:()=>set('buttonFontSize',f.id),className:`flex-1 px-2 py-1.5 rounded-lg border text-xs font-semibold transition ${prefs.buttonFontSize===f.id?'border-cyan-500 bg-cyan-900/40 text-cyan-300':'border-zinc-700 bg-zinc-900 text-zinc-400 hover:bg-zinc-800'}`},f.label)))),/*#__PURE__*/React.createElement("div",{className:"flex justify-end gap-2 pt-2 border-t border-zinc-800"},/*#__PURE__*/React.createElement("button",{onClick:onClose,className:"px-3 py-1.5 bg-zinc-700 hover:bg-zinc-600 rounded text-xs font-bold text-white transition"},vi?'Hủy':'Cancel'),/*#__PURE__*/React.createElement("button",{onClick:onClose,className:"px-4 py-1.5 bg-cyan-700 hover:bg-cyan-600 rounded text-xs font-bold text-white transition"},vi?'Lưu & Đóng':'Save & Close'))));};const AIPresetModal=({isOpen,onClose})=>{if(!isOpen)return null;const mgrRef=React.useRef(null);if(!mgrRef.current)mgrRef.current=new window.PromptTemplateManager();const mgr=mgrRef.current;const[presets,setPresets]=React.useState(()=>[...mgr.getPresets()]);const[search,setSearch]=React.useState('');const[filterCategory,setFilterCategory]=React.useState('ALL');const[showFavoritesOnly,setShowFavoritesOnly]=React.useState(false);const[editingPreset,setEditingPreset]=React.useState(null);const[syncing,setSyncing]=React.useState(false);const[formName,setFormName]=React.useState('');const[formKeywords,setFormKeywords]=React.useState('');const[formCategory,setFormCategory]=React.useState('Orchestral / Film Score');const[formBars,setFormBars]=React.useState(8);const[formBpm,setFormBpm]=React.useState(120);const[formScale,setFormScale]=React.useState('C Minor');const[formTemplate,setFormTemplate]=React.useState('');const[showGeneratorModal,setShowGeneratorModal]=React.useState(false);const[selectedCategory,setSelectedCategory]=React.useState('Orchestral / Film Score');const[isAddingCategory,setIsAddingCategory]=React.useState(false);const[newCategoryValue,setNewCategoryValue]=React.useState('');const[categoriesVersion,setCategoriesVersion]=React.useState(0);const presetCategories=React.useMemo(()=>{const fromPresets=[...new Set(presets.map(p=>p.category).filter(Boolean))];let saved=[];try{const raw=localStorage.getItem('midi_prompt_categories');saved=raw?JSON.parse(raw):[];}catch(e){saved=[];}return[...new Set([...fromPresets,...saved])].sort();},[presets,categoriesVersion]);const addNewCategory=cat=>{const val=(cat||'').trim();if(!val)return;setFormCategory(val);setSelectedCategory(val);try{const raw=localStorage.getItem('midi_prompt_categories');const list=raw?JSON.parse(raw):[];if(!list.includes(val)){list.push(val);localStorage.setItem('midi_prompt_categories',JSON.stringify(list));setCategoriesVersion(v=>v+1);}}catch(e){}};const refreshPresets=()=>{setPresets([...mgr.getPresets()]);};// Sync from backend on mount — merge into local presets, never overwrite +const AboutModal=({isOpen,onClose})=>{if(!isOpen)return null;return/*#__PURE__*/React.createElement("div",{className:"fixed inset-0 z-[9999] flex items-center justify-center bg-black/70 backdrop-blur-sm",onClick:onClose},/*#__PURE__*/React.createElement("div",{className:"bg-[#1e1e24] border border-zinc-700 rounded-xl shadow-2xl w-full max-w-md p-6 text-slate-200",onClick:e=>e.stopPropagation()},/*#__PURE__*/React.createElement("div",{className:"flex items-center gap-3 mb-4"},/*#__PURE__*/React.createElement("img",{src:"/static/img/scorefx_app.png",alt:"ScoreFX Studio",className:"w-12 h-12 rounded-lg bg-zinc-900 border border-zinc-700 shadow-lg object-contain p-0.5"}),/*#__PURE__*/React.createElement("div",null,/*#__PURE__*/React.createElement("h2",{className:"text-lg font-bold text-white"},"ScoreFX Studio"),/*#__PURE__*/React.createElement("p",{className:"text-xs text-zinc-400"},"Professional DAW — v",APP_VERSION))),/*#__PURE__*/React.createElement("div",{className:"space-y-2 text-sm"},/*#__PURE__*/React.createElement("p",{className:"text-zinc-300 leading-relaxed"},"Phần mềm sản xuất âm nhạc (DAW) — soạn nhạc, ghi âm, chỉnh sửa MIDI/Audio, SoundFont & VST, trộn và master."),/*#__PURE__*/React.createElement("div",{className:"pt-2 border-t border-zinc-800 space-y-1 text-xs"},/*#__PURE__*/React.createElement("div",{className:"flex items-center gap-2"},/*#__PURE__*/React.createElement("span",{className:"text-zinc-500 w-20 shrink-0"},"Developer"),/*#__PURE__*/React.createElement("span",{className:"text-cyan-400 font-semibold"},"Lộc Phạm")),/*#__PURE__*/React.createElement("div",{className:"flex items-center gap-2"},/*#__PURE__*/React.createElement("span",{className:"text-zinc-500 w-20 shrink-0"},"Email"),/*#__PURE__*/React.createElement("a",{href:"mailto:tranloclqd@gmail.com",className:"text-cyan-400 hover:underline"},"tranloclqd@gmail.com")),/*#__PURE__*/React.createElement("div",{className:"flex items-center gap-2"},/*#__PURE__*/React.createElement("span",{className:"text-zinc-500 w-20 shrink-0"},"Version"),/*#__PURE__*/React.createElement("span",{className:"text-zinc-300"},APP_VERSION)),/*#__PURE__*/React.createElement("div",{className:"flex items-center gap-2"},/*#__PURE__*/React.createElement("span",{className:"text-zinc-500 w-20 shrink-0"},"Build"),/*#__PURE__*/React.createElement("span",{className:"text-zinc-300"},"Standalone (Tauri v2 + PyInstaller)")))),/*#__PURE__*/React.createElement("div",{className:"mt-5 flex justify-end"},/*#__PURE__*/React.createElement("button",{onClick:onClose,className:"px-4 py-1.5 bg-cyan-700 hover:bg-cyan-600 rounded text-xs font-bold text-white transition"},"Đóng"))));};const HelpModal=({isOpen,onClose,lang})=>{if(!isOpen)return null;const vi=lang!=='en';const sections=vi?[{title:'🚀 Bắt đầu nhanh',body:'Nhấn phím Cách (Space) để Play/Pause. Nhấn phím / để dừng. Dùng nút Record (●) để ghi âm/MIDI. Tạo track mới từ menu Track hoặc nút "+ Add Track".'},{title:'🎹 MIDI & ARM',body:'Bật nút ARM đỏ trên track để nhận phím từ MIDI keyboard. Vào menu Tools → MIDI Devices để chọn thiết bị. Khi ARM + bấm phím, âm preview phát và VU meter nhảy theo trường độ.'},{title:'🎼 Piano Roll',body:'Nhấp đúp vào MIDI item để mở Piano Roll. Dùng Ctrl+scroll hoặc nút +/− để zoom. Nhấp để vẽ note, kéo để di chuyển, Ctrl+kéo để copy. Phím tắt: C (vẽ), E (tẩy), Space (nghe).'},{title:'🎛️ FX & Master',body:'Chọn track → nút FX để mở FX Rack (thêm EQ, compressor...). Bấm nút PWR ở Master để mở Mastering Panel: EQ 4 băng, compressor, limiter. Mọi thay đổi áp dụng realtime.'},{title:'🧪 SoundFont & VST',body:'Vào Tools → Plugin Manager để quét SoundFont (.sf2/.sf3) và VSTi. Track MIDI dùng SoundFont làm nhạc cụ — chọn instrument từ nút Synth trên track.'},{title:'🤖 AI',body:'Tools → Config AI Providers để cấu hình API (OpenAI, Gemini, Ollama...). Dùng AI Prompt Generator (nút ✨) để sinh MIDI/ý tưởng; AI MIDI Preset Manager để lưu preset.'},{title:'💾 Lưu & Xuất',body:'Ctrl+S lưu project (cloud/temp), Ctrl+Shift+S Save As. Export WAV qua nút Export — chọn vùng, format, bitrate rồi Render.'},{title:'⌨️ Phím tắt',body:'Space: Play/Pause · /: Stop · Ctrl+Z/Y: Undo/Redo · Ctrl+C/X/V: Copy/Cut/Paste · Ctrl+S: Save · Ctrl+N: New · S: Split · Ctrl+E: Edit in new tab · Ctrl+wheel: zoom timeline'}]:[{title:'🚀 Quick start',body:'Press Space to Play/Pause. Press / to stop. Use Record (●) to capture audio/MIDI. Add tracks from the Track menu or the "+ Add Track" button.'},{title:'🎹 MIDI & ARM',body:'Enable the red ARM button on a track to receive keys from a MIDI keyboard. Go to Tools → MIDI Devices to pick your device. When ARM + key press, preview audio plays and the VU meter animates for the note length.'},{title:'🎼 Piano Roll',body:'Double-click a MIDI item to open the Piano Roll. Use Ctrl+scroll or +/− buttons to zoom. Click to draw notes, drag to move, Ctrl+drag to copy. Shortcuts: C (draw), E (erase), Space (listen).'},{title:'🎛️ FX & Master',body:'Select a track → FX button to open the FX Rack (EQ, compressor...). Press the PWR button on the Master to open the Mastering Panel: 4-band EQ, compressor, limiter — all realtime.'},{title:'🧪 SoundFont & VST',body:'Tools → Plugin Manager scans SoundFonts (.sf2/.sf3) and VSTi. MIDI tracks use SoundFonts as instruments — pick one from the Synth button on the track.'},{title:'🤖 AI',body:'Tools → Config AI Providers to set up APIs (OpenAI, Gemini, Ollama...). Use the AI Prompt Generator (✨) to create MIDI/ideas; AI MIDI Preset Manager stores presets.'},{title:'💾 Save & Export',body:'Ctrl+S saves the project (cloud/temp), Ctrl+Shift+S Save As. Export WAV via the Export button — pick range, format, bitrate, then Render.'},{title:'⌨️ Shortcuts',body:'Space: Play/Pause · /: Stop · Ctrl+Z/Y: Undo/Redo · Ctrl+C/X/V: Copy/Cut/Paste · Ctrl+S: Save · Ctrl+N: New · S: Split · Ctrl+E: Edit in new tab · Ctrl+wheel: zoom timeline'}];return/*#__PURE__*/React.createElement("div",{className:"fixed inset-0 z-[9999] flex items-center justify-center bg-black/70 backdrop-blur-sm",onClick:onClose},/*#__PURE__*/React.createElement("div",{className:"bg-[#1e1e24] border border-zinc-700 rounded-xl shadow-2xl w-full max-w-2xl max-h-[85vh] flex flex-col text-slate-200",onClick:e=>e.stopPropagation()},/*#__PURE__*/React.createElement("div",{className:"flex items-center justify-between px-5 py-3 border-b border-zinc-800 shrink-0"},/*#__PURE__*/React.createElement("h2",{className:"text-base font-bold text-white"},vi?'Hướng dẫn sử dụng ScoreFX Studio':'ScoreFX Studio User Guide'),/*#__PURE__*/React.createElement("button",{onClick:onClose,className:"w-6 h-6 rounded hover:bg-zinc-700 text-zinc-400 hover:text-white text-sm"},"✕")),/*#__PURE__*/React.createElement("div",{className:"overflow-y-auto px-5 py-4 space-y-3"},sections.map((s,i)=>/*#__PURE__*/React.createElement("div",{key:i,className:"bg-zinc-900/60 border border-zinc-800 rounded-lg p-3"},/*#__PURE__*/React.createElement("h3",{className:"text-sm font-bold text-cyan-400 mb-1"},s.title),/*#__PURE__*/React.createElement("p",{className:"text-xs text-zinc-300 leading-relaxed"},s.body)))),/*#__PURE__*/React.createElement("div",{className:"px-5 py-3 border-t border-zinc-800 flex justify-end shrink-0"},/*#__PURE__*/React.createElement("button",{onClick:onClose,className:"px-4 py-1.5 bg-cyan-700 hover:bg-cyan-600 rounded text-xs font-bold text-white transition"},vi?'Đóng':'Close'))));};const PreferencesModal=({isOpen,onClose,prefs,onPrefsChange})=>{if(!isOpen)return null;const vi=prefs.language!=='en';const themes=[{id:'dark',name:vi?'Tối (mặc định)':'Dark (default)',swatch:'from-zinc-700 to-zinc-900',ring:'ring-cyan-400'},{id:'midnight',name:vi?'Đêm xanh':'Midnight',swatch:'from-sky-800 to-slate-950',ring:'ring-sky-400'},{id:'forest',name:vi?'Rừng xanh':'Forest',swatch:'from-emerald-700 to-green-950',ring:'ring-emerald-400'},{id:'violet',name:vi?'Tím':'Violet',swatch:'from-violet-700 to-purple-950',ring:'ring-violet-400'},{id:'graphite',name:vi?'Than chì':'Graphite',swatch:'from-zinc-600 to-neutral-900',ring:'ring-zinc-300'}];const set=(k,v)=>onPrefsChange({...prefs,[k]:v});return/*#__PURE__*/React.createElement("div",{className:"fixed inset-0 z-[9999] flex items-center justify-center bg-black/70 backdrop-blur-sm",onClick:onClose},/*#__PURE__*/React.createElement("div",{className:"bg-[#1e1e24] border border-zinc-700 rounded-xl shadow-2xl w-full max-w-md max-h-[85vh] overflow-y-auto p-5 text-slate-200",onClick:e=>e.stopPropagation()},/*#__PURE__*/React.createElement("div",{className:"flex items-center justify-between mb-4"},/*#__PURE__*/React.createElement("h2",{className:"text-base font-bold text-white"},vi?'Tùy chọn (Preferences)':'Preferences'),/*#__PURE__*/React.createElement("button",{onClick:onClose,className:"w-6 h-6 rounded hover:bg-zinc-700 text-zinc-400 hover:text-white text-sm"},"✕")),/*#__PURE__*/React.createElement("div",{className:"mb-5"},/*#__PURE__*/React.createElement("h3",{className:"text-xs font-bold text-zinc-400 uppercase tracking-wider mb-2"},vi?'🎨 Chủ đề màu':'🎨 Theme'),/*#__PURE__*/React.createElement("div",{className:"grid grid-cols-1 gap-1.5"},themes.map(th=>/*#__PURE__*/React.createElement("button",{key:th.id,onClick:()=>set('theme',th.id),className:`flex items-center gap-2.5 px-2.5 py-2 rounded-lg border text-xs text-left transition ${prefs.theme===th.id?'border-cyan-500 bg-zinc-800':'border-zinc-700 bg-zinc-900 hover:bg-zinc-800'}`},/*#__PURE__*/React.createElement("span",{className:`w-6 h-6 rounded-md bg-gradient-to-br ${th.swatch} ring-1 ring-black/40 shrink-0 ${prefs.theme===th.id?`ring-2 ${th.ring}`:''}`}),/*#__PURE__*/React.createElement("span",{className:"text-zinc-200"},th.name),prefs.theme===th.id&&/*#__PURE__*/React.createElement("span",{className:"ml-auto text-cyan-400 text-[10px] font-bold"},"✓"))))),/*#__PURE__*/React.createElement("div",{className:"mb-5"},/*#__PURE__*/React.createElement("h3",{className:"text-xs font-bold text-zinc-400 uppercase tracking-wider mb-2"},vi?'🌐 Ngôn ngữ':'🌐 Language'),/*#__PURE__*/React.createElement("div",{className:"flex gap-1.5"},[{id:'vi',label:'Tiếng Việt'},{id:'en',label:'English'}].map(l=>/*#__PURE__*/React.createElement("button",{key:l.id,onClick:()=>set('language',l.id),className:`flex-1 px-2 py-1.5 rounded-lg border text-xs font-semibold transition ${prefs.language===l.id?'border-cyan-500 bg-cyan-900/40 text-cyan-300':'border-zinc-700 bg-zinc-900 text-zinc-400 hover:bg-zinc-800'}`},l.label))),/*#__PURE__*/React.createElement("p",{className:"text-[10px] text-zinc-500 mt-1"},vi?'Áp dụng ngay cho menu & hướng dẫn.':'Applies immediately to menus & guide.')),/*#__PURE__*/React.createElement("div",{className:"mb-5"},/*#__PURE__*/React.createElement("h3",{className:"text-xs font-bold text-zinc-400 uppercase tracking-wider mb-2"},vi?'🔠 Cỡ chữ nút bấm':'🔠 Button font size'),/*#__PURE__*/React.createElement("div",{className:"flex gap-1.5"},[{id:'sm',label:vi?'Nhỏ':'Small'},{id:'md',label:vi?'Vừa':'Medium'},{id:'lg',label:vi?'Lớn':'Large'}].map(f=>/*#__PURE__*/React.createElement("button",{key:f.id,onClick:()=>set('buttonFontSize',f.id),className:`flex-1 px-2 py-1.5 rounded-lg border text-xs font-semibold transition ${prefs.buttonFontSize===f.id?'border-cyan-500 bg-cyan-900/40 text-cyan-300':'border-zinc-700 bg-zinc-900 text-zinc-400 hover:bg-zinc-800'}`},f.label)))),/*#__PURE__*/React.createElement("div",{className:"flex justify-end gap-2 pt-2 border-t border-zinc-800"},/*#__PURE__*/React.createElement("button",{onClick:onClose,className:"px-3 py-1.5 bg-zinc-700 hover:bg-zinc-600 rounded text-xs font-bold text-white transition"},vi?'Hủy':'Cancel'),/*#__PURE__*/React.createElement("button",{onClick:onClose,className:"px-4 py-1.5 bg-cyan-700 hover:bg-cyan-600 rounded text-xs font-bold text-white transition"},vi?'Lưu & Đóng':'Save & Close'))));};const AIPresetModal=({isOpen,onClose})=>{if(!isOpen)return null;const mgrRef=React.useRef(null);if(!mgrRef.current)mgrRef.current=new window.PromptTemplateManager();const mgr=mgrRef.current;const[presets,setPresets]=React.useState(()=>[...mgr.getPresets()]);const[search,setSearch]=React.useState('');const[filterCategory,setFilterCategory]=React.useState('ALL');const[showFavoritesOnly,setShowFavoritesOnly]=React.useState(false);const[editingPreset,setEditingPreset]=React.useState(null);const[syncing,setSyncing]=React.useState(false);const[formName,setFormName]=React.useState('');const[formKeywords,setFormKeywords]=React.useState('');const[formCategory,setFormCategory]=React.useState('Orchestral / Film Score');const[formBars,setFormBars]=React.useState(8);const[formBpm,setFormBpm]=React.useState(120);const[formScale,setFormScale]=React.useState('C Minor');const[formTemplate,setFormTemplate]=React.useState('');const[showGeneratorModal,setShowGeneratorModal]=React.useState(false);const[selectedCategory,setSelectedCategory]=React.useState('Orchestral / Film Score');const[isAddingCategory,setIsAddingCategory]=React.useState(false);const[newCategoryValue,setNewCategoryValue]=React.useState('');const[categoriesVersion,setCategoriesVersion]=React.useState(0);const presetCategories=React.useMemo(()=>{const fromPresets=[...new Set(presets.map(p=>p.category).filter(Boolean))];let saved=[];try{const raw=localStorage.getItem('midi_prompt_categories');saved=raw?JSON.parse(raw):[];}catch(e){saved=[];}return[...new Set([...fromPresets,...saved])].sort();},[presets,categoriesVersion]);const addNewCategory=cat=>{const val=(cat||'').trim();if(!val)return;setFormCategory(val);setSelectedCategory(val);try{const raw=localStorage.getItem('midi_prompt_categories');const list=raw?JSON.parse(raw):[];if(!list.includes(val)){list.push(val);localStorage.setItem('midi_prompt_categories',JSON.stringify(list));setCategoriesVersion(v=>v+1);}}catch(e){}};const refreshPresets=()=>{setPresets([...mgr.getPresets()]);};// Sync from backend on mount — merge into local presets, never overwrite React.useEffect(()=>{if(!window.SonicAPI)return;setSyncing(true);window.SonicAPI.getAIPresets().then(data=>{if(!data||!data.presets||data.presets.length===0)return;var existing=mgr.presets;var existingIds=new Set(existing.map(function(p){return p.id;}));var merged=existing.slice();data.presets.forEach(function(bp){if(!existingIds.has(bp.id)){merged.push(bp);existingIds.add(bp.id);}});mgr.presets=merged;setPresets(merged);}).catch(function(){}).finally(function(){setSyncing(false);});},[]);// Listen for GENERATOR_PRESET_DATA from the iframe generator modal React.useEffect(()=>{const handleMessage=event=>{if(event.data&&event.data.type==='GENERATOR_PRESET_DATA'){const d=event.data;setFormName(d.name||'');setFormCategory(d.category||'Orchestral / Film Score');setSelectedCategory(d.category||'Orchestral / Film Score');setFormKeywords(d.keywords||'');setFormBars(parseInt(d.default_bars)||8);setFormBpm(parseInt(d.default_bpm)||120);setFormScale(d.default_scale||'C Minor');setFormTemplate(d.template||'');setEditingPreset('new');setShowGeneratorModal(false);setIsAddingCategory(false);setNewCategoryValue('');refreshPresets();}};window.addEventListener('message',handleMessage);return()=>window.removeEventListener('message',handleMessage);},[]);const savePresets=newPresets=>{setPresets(newPresets);mgr.presets=newPresets;mgr.savePresets();// Sync to backend if available const userDefined=newPresets.filter(p=>p.is_user_defined);if(window.SonicAPI&&userDefined.length>0){userDefined.forEach(p=>{window.SonicAPI.saveAIPreset(p).catch(()=>{});});}};const handleEdit=p=>{setEditingPreset(p);setFormName(p.name);setFormKeywords(p.keywords.join(', '));setFormCategory(p.category);setSelectedCategory(p.category);setFormBars(p.default_bars);setFormBpm(p.default_bpm);setFormScale(p.default_scale);setFormTemplate(p.system_instruction_template);setIsAddingCategory(false);setNewCategoryValue('');};const handleNew=()=>{setEditingPreset('new');setFormName('');setFormKeywords('');setFormCategory('Orchestral / Film Score');setSelectedCategory('Orchestral / Film Score');setFormBars(8);setFormBpm(120);setFormScale('C Minor');setFormTemplate('');setIsAddingCategory(false);setNewCategoryValue('');};const handleNewStructured=()=>{refreshPresets();setShowGeneratorModal(true);};const handleToggleFav=id=>{mgr.toggleFavorite(id);setPresets([...mgr.getPresets()]);const p=mgr.presets.find(x=>x.id===id);if(p&&p.is_user_defined&&window.SonicAPI){window.SonicAPI.saveAIPreset(p).catch(()=>{});}};const handleDelete=id=>{const p=presets.find(x=>x.id===id);if(p&&p.is_user_defined&&window.SonicAPI){window.SonicAPI.deleteAIPreset(id).catch(()=>{});}mgr.deletePreset(id);setPresets([...mgr.getPresets()]);showToast('Đã xóa preset.','info');};const handleSaveForm=e=>{e.preventDefault();if(!formName.trim()||!formTemplate.trim()){showToast('Vui lòng điền đầy đủ tên và mẫu gợi ý.','warning');return;}const keywordsArray=formKeywords.split(',').map(k=>k.trim()).filter(Boolean);const presetObj={id:editingPreset==='new'?'preset_'+Date.now():editingPreset.id,name:formName.trim(),keywords:keywordsArray,category:formCategory,default_bars:parseInt(formBars)||8,default_bpm:parseInt(formBpm)||120,default_scale:formScale,system_instruction_template:formTemplate.trim(),is_user_defined:true,is_favorite:editingPreset==='new'?false:editingPreset.is_favorite||false,created_at:editingPreset==='new'?new Date().toISOString():editingPreset.created_at};mgr.saveUserPreset(presetObj);setPresets([...mgr.getPresets()]);setEditingPreset(null);if(window.SonicAPI){window.SonicAPI.saveAIPreset(presetObj).catch(()=>{});}showToast('Đã lưu preset thành công!','success');};const categories=['ALL','★ Yêu thích','Người dùng',...new Set(presets.map(p=>p.category))];const filtered=presets.filter(p=>{const matchesSearch=p.name.toLowerCase().includes(search.toLowerCase())||p.keywords.some(k=>k.toLowerCase().includes(search.toLowerCase()));let matchesCategory;if(filterCategory==='ALL'){matchesCategory=true;}else if(filterCategory==='★ Yêu thích'){matchesCategory=p.is_favorite;}else if(filterCategory==='Người dùng'){matchesCategory=p.is_user_defined;}else{matchesCategory=p.category===filterCategory;}if(showFavoritesOnly)matchesCategory=matchesCategory&&p.is_favorite;return matchesSearch&&matchesCategory;});return/*#__PURE__*/React.createElement(React.Fragment,null,/*#__PURE__*/React.createElement("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/75 backdrop-blur-sm p-4 animate-fade-in"},/*#__PURE__*/React.createElement("div",{className:"bg-[#18181b] border border-zinc-800 rounded-xl shadow-2xl w-full max-w-4xl max-h-[85vh] flex flex-col overflow-hidden text-zinc-100"},/*#__PURE__*/React.createElement("div",{className:"p-4 border-b border-zinc-800 flex items-center justify-between shrink-0 bg-[#202024]"},/*#__PURE__*/React.createElement("h2",{className:"text-sm font-bold tracking-wider uppercase text-purple-400 flex items-center gap-1.5"},/*#__PURE__*/React.createElement("i",{"data-lucide":"sliders",className:"w-4 h-4"}),"AI Prompt Preset Manager",syncing&&/*#__PURE__*/React.createElement("span",{className:"text-[10px] text-zinc-500 ml-2"},"đang đồng bộ...")),/*#__PURE__*/React.createElement("button",{onClick:()=>{setEditingPreset(null);onClose();},className:"text-zinc-400 hover:text-zinc-200 transition"},/*#__PURE__*/React.createElement("i",{"data-lucide":"x",className:"w-4 h-4"}))),/*#__PURE__*/React.createElement("div",{className:"flex-1 overflow-y-auto p-4 flex gap-4 min-h-0"},!editingPreset?/*#__PURE__*/React.createElement(React.Fragment,null,/*#__PURE__*/React.createElement("div",{className:"flex-1 flex flex-col min-w-0"},/*#__PURE__*/React.createElement("div",{className:"flex items-center gap-2 mb-3 shrink-0"},/*#__PURE__*/React.createElement("input",{type:"text",placeholder:"Tìm kiếm preset hoặc từ khóa...",value:search,onChange:e=>setSearch(e.target.value),className:"flex-1 bg-zinc-900 border border-zinc-700 rounded px-2.5 py-1 text-xs outline-none focus:border-purple-600"}),/*#__PURE__*/React.createElement("select",{value:filterCategory,onChange:e=>setFilterCategory(e.target.value),className:"bg-zinc-900 border border-zinc-700 rounded px-2.5 py-1 text-xs outline-none focus:border-purple-600"},categories.map(c=>/*#__PURE__*/React.createElement("option",{key:c,value:c},c==='ALL'?'Tất cả danh mục':c))),/*#__PURE__*/React.createElement("button",{onClick:()=>setShowFavoritesOnly(!showFavoritesOnly),className:`px-2.5 py-1 rounded text-xs font-bold transition shrink-0 ${showFavoritesOnly?'bg-yellow-700 text-yellow-300':'bg-zinc-800 text-zinc-400 hover:bg-zinc-700'}`,title:"Chỉ hiện yêu thích"},/*#__PURE__*/React.createElement("i",{"data-lucide":"star",className:"w-3.5 h-3.5 inline-block mr-1"}),"★"),/*#__PURE__*/React.createElement("button",{onClick:handleNew,className:"px-3 py-1 bg-purple-700 hover:bg-purple-600 text-white rounded text-xs font-bold flex items-center gap-1.5 shadow transition shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":"plus",className:"w-3.5 h-3.5"}),"Tạo mới")),/*#__PURE__*/React.createElement("div",{className:"flex-1 border border-zinc-800 rounded bg-[#0f0f12] overflow-y-auto"},filtered.length===0?/*#__PURE__*/React.createElement("div",{className:"p-8 text-center text-zinc-500 text-xs italic"},"Không tìm thấy preset nào."):/*#__PURE__*/React.createElement("table",{className:"w-full text-left text-xs border-collapse"},/*#__PURE__*/React.createElement("thead",{className:"bg-[#1f1f23] text-zinc-400 font-bold border-b border-zinc-800"},/*#__PURE__*/React.createElement("tr",null,/*#__PURE__*/React.createElement("th",{className:"p-2.5 w-8"},""),/*#__PURE__*/React.createElement("th",{className:"p-2.5 w-1/4"},"Tên Preset"),/*#__PURE__*/React.createElement("th",{className:"p-2.5 w-1/4"},"Từ khóa kích hoạt"),/*#__PURE__*/React.createElement("th",{className:"p-2.5 w-1/6"},"Số Bar"),/*#__PURE__*/React.createElement("th",{className:"p-2.5 w-1/6"},"BPM"),/*#__PURE__*/React.createElement("th",{className:"p-2.5 w-1/6 text-right"},"Hành động"))),/*#__PURE__*/React.createElement("tbody",null,filtered.map(p=>/*#__PURE__*/React.createElement("tr",{key:p.id,className:"border-b border-zinc-800/50 hover:bg-zinc-850"},/*#__PURE__*/React.createElement("td",{className:"p-2.5 text-center"},/*#__PURE__*/React.createElement("button",{onClick:()=>handleToggleFav(p.id),className:`transition ${p.is_favorite?'text-yellow-400':'text-zinc-600 hover:text-zinc-400'}`,title:p.is_favorite?'Bỏ yêu thích':'Đánh dấu yêu thích'},p.is_favorite?"★":"☆")),/*#__PURE__*/React.createElement("td",{className:"p-2.5 font-semibold text-purple-300"},p.name),/*#__PURE__*/React.createElement("td",{className:"p-2.5 text-zinc-400 font-mono text-[11px] truncate max-w-[150px]"},p.keywords.join(', ')),/*#__PURE__*/React.createElement("td",{className:"p-2.5 text-zinc-400"},p.default_bars," Bars"),/*#__PURE__*/React.createElement("td",{className:"p-2.5 text-zinc-400"},p.default_bpm," BPM"),/*#__PURE__*/React.createElement("td",{className:"p-2.5 text-right flex items-center justify-end gap-1.5 h-full"},/*#__PURE__*/React.createElement("button",{type:"button",onClick:()=>handleEdit(p),className:"px-2 py-0.5 bg-zinc-850 hover:bg-zinc-700 text-zinc-300 rounded border border-zinc-700 text-[10px]"},"Sửa"),p.is_user_defined&&/*#__PURE__*/React.createElement("button",{type:"button",onClick:()=>handleDelete(p.id),className:"px-2 py-0.5 bg-red-950/40 hover:bg-red-800 text-red-400 rounded border border-red-900 text-[10px]"},"Xóa"))))))))):/*#__PURE__*/React.createElement("form",{onSubmit:handleSaveForm,className:"flex-1 flex flex-col gap-3 min-w-0"},/*#__PURE__*/React.createElement("div",{className:"text-xs font-bold text-zinc-400 shrink-0 border-b border-zinc-800 pb-1"},editingPreset==='new'?"TẠO PRESET MỚI":`SỬA PRESET: ${editingPreset.name}`),/*#__PURE__*/React.createElement("div",{className:"grid grid-cols-2 gap-3"},/*#__PURE__*/React.createElement("div",{className:"flex flex-col gap-1"},/*#__PURE__*/React.createElement("label",{className:"text-[10px] uppercase font-bold text-zinc-500"},"Tên Preset"),/*#__PURE__*/React.createElement("input",{type:"text",value:formName,onChange:e=>setFormName(e.target.value),className:"bg-zinc-900 border border-zinc-700 rounded px-2.5 py-1 text-xs outline-none focus:border-purple-600 text-zinc-200"})),/*#__PURE__*/React.createElement("div",{className:"flex flex-col gap-1"},/*#__PURE__*/React.createElement("label",{className:"text-[10px] uppercase font-bold text-zinc-500"},"Danh mục"),isAddingCategory?/*#__PURE__*/React.createElement("div",{className:"flex gap-2"},/*#__PURE__*/React.createElement("input",{type:"text",value:newCategoryValue,onChange:e=>setNewCategoryValue(e.target.value),onBlur:()=>{if(newCategoryValue.trim()){addNewCategory(newCategoryValue.trim());}setIsAddingCategory(false);},onKeyDown:e=>{if(e.key==='Enter'){e.preventDefault();if(newCategoryValue.trim()){addNewCategory(newCategoryValue.trim());}setIsAddingCategory(false);}else if(e.key==='Escape'){setIsAddingCategory(false);}},autoFocus:true,className:"flex-1 bg-zinc-900 border border-zinc-700 rounded px-2.5 py-1 text-xs outline-none focus:border-purple-600 text-zinc-200",placeholder:"Nhập danh mục mới..."})):/*#__PURE__*/React.createElement("select",{value:selectedCategory,onChange:e=>{if(e.target.value==='__add_new__'){setIsAddingCategory(true);setNewCategoryValue('');}else{setSelectedCategory(e.target.value);setFormCategory(e.target.value);}},className:"bg-zinc-900 border border-zinc-700 rounded px-2.5 py-1 text-xs outline-none focus:border-purple-600 text-zinc-200"},presetCategories.map(c=>/*#__PURE__*/React.createElement("option",{key:c,value:c},c)),/*#__PURE__*/React.createElement("option",{value:'__add_new__'},"+ Nhập danh mục mới...")))),/*#__PURE__*/React.createElement("div",{className:"flex flex-col gap-1"},/*#__PURE__*/React.createElement("label",{className:"text-[10px] uppercase font-bold text-zinc-500"},"Từ khóa kích hoạt (ngăn cách bằng dấu phẩy)"),/*#__PURE__*/React.createElement("input",{type:"text",value:formKeywords,onChange:e=>setFormKeywords(e.target.value),placeholder:"Ví dụ: epic orchestra, hoành tráng, nhạc phim epic",className:"bg-zinc-900 border border-zinc-700 rounded px-2.5 py-1 text-xs outline-none focus:border-purple-600 text-zinc-200"})),/*#__PURE__*/React.createElement("div",{className:"grid grid-cols-3 gap-3"},/*#__PURE__*/React.createElement("div",{className:"flex flex-col gap-1"},/*#__PURE__*/React.createElement("label",{className:"text-[10px] uppercase font-bold text-zinc-500"},"Số Bars mặc định"),/*#__PURE__*/React.createElement("input",{type:"number",value:formBars,onChange:e=>setFormBars(e.target.value),className:"bg-zinc-900 border border-zinc-700 rounded px-2.5 py-1 text-xs outline-none focus:border-purple-600 text-zinc-200"})),/*#__PURE__*/React.createElement("div",{className:"flex flex-col gap-1"},/*#__PURE__*/React.createElement("label",{className:"text-[10px] uppercase font-bold text-zinc-500"},"BPM mặc định"),/*#__PURE__*/React.createElement("input",{type:"number",value:formBpm,onChange:e=>setFormBpm(e.target.value),className:"bg-zinc-900 border border-zinc-700 rounded px-2.5 py-1 text-xs outline-none focus:border-purple-600 text-zinc-200"})),/*#__PURE__*/React.createElement("div",{className:"flex flex-col gap-1"},/*#__PURE__*/React.createElement("label",{className:"text-[10px] uppercase font-bold text-zinc-500"},"Âm giai (Scale) mặc định"),/*#__PURE__*/React.createElement("input",{type:"text",value:formScale,onChange:e=>setFormScale(e.target.value),className:"bg-zinc-900 border border-zinc-700 rounded px-2.5 py-1 text-xs outline-none focus:border-purple-600 text-zinc-200"}))),/*#__PURE__*/React.createElement("div",{className:"flex flex-col gap-1 flex-1 min-h-0"},/*#__PURE__*/React.createElement("label",{className:"text-[10px] uppercase font-bold text-zinc-500"},"System Prompt Template / Luật soạn nhạc"),/*#__PURE__*/React.createElement("textarea",{value:formTemplate,onChange:e=>setFormTemplate(e.target.value),rows:6,className:"flex-1 bg-zinc-900 border border-zinc-700 rounded p-2.5 text-xs outline-none focus:border-purple-600 text-zinc-200 font-mono resize-none"})),/*#__PURE__*/React.createElement("div",{className:"flex items-center gap-2 shrink-0 pt-2 border-t border-zinc-800"},/*#__PURE__*/React.createElement("button",{type:"button",onClick:handleNewStructured,className:"px-3 py-1.5 bg-emerald-800 hover:bg-emerald-700 text-emerald-300 border border-emerald-700 rounded text-xs transition"},"Tạo preset với cấu trúc"),/*#__PURE__*/React.createElement("div",{className:"flex-1"}),/*#__PURE__*/React.createElement("button",{type:"button",onClick:()=>setEditingPreset(null),className:"px-3 py-1.5 bg-zinc-800 hover:bg-zinc-700 text-zinc-400 border border-zinc-700 rounded text-xs transition"},"Quay lại"),/*#__PURE__*/React.createElement("button",{type:"submit",className:"px-3 py-1.5 bg-purple-700 hover:bg-purple-600 text-white rounded text-xs font-bold shadow transition"},"Lưu Preset")))),/*#__PURE__*/React.createElement("div",{className:"p-4 border-t border-zinc-800 flex justify-end shrink-0 bg-[#202024]"},/*#__PURE__*/React.createElement("button",{onClick:()=>{setEditingPreset(null);onClose();},className:"px-4 py-1.5 bg-zinc-800 hover:bg-zinc-700 text-zinc-300 border border-zinc-700 rounded text-xs font-bold shadow transition"},"Đóng")))),showGeneratorModal?/*#__PURE__*/React.createElement("div",{className:"fixed inset-0 z-[60] flex items-center justify-center bg-black/80 p-4",onClick:e=>{if(e.target===e.currentTarget){refreshPresets();setShowGeneratorModal(false);}}},/*#__PURE__*/React.createElement("div",{className:"w-full h-full max-w-6xl max-h-[90vh] bg-[#13141a] border border-zinc-800 rounded-2xl shadow-2xl overflow-hidden flex flex-col"},/*#__PURE__*/React.createElement("div",{className:"flex items-center justify-between p-3 border-b border-zinc-800 shrink-0"},/*#__PURE__*/React.createElement("h3",{className:"text-sm font-bold text-purple-400"},"AI Prompt Generator"),/*#__PURE__*/React.createElement("button",{onClick:()=>{refreshPresets();setShowGeneratorModal(false);},className:"text-zinc-400 hover:text-white"},/*#__PURE__*/React.createElement("i",{"data-lucide":"x",className:"w-4 h-4"}))),/*#__PURE__*/React.createElement("iframe",{src:"/ai-prompt-generator",className:"flex-1 w-full border-0 bg-white",title:"AI Prompt Generator"}))):null);};const PianoRollTabEditor=({st,zoom,bpm,viewportWidth,activeTracks,onClose,onUpdateNotes,onSaveNotes,setSubTabs,onPlayPause,onStop,isPlaying,playPreviewNote,showToast,midiDevices,recordingState,recTempMidiNotes,onRecord,selectedMidiInputId,onMidiInputSelect,activeMidiPitches,onInstrumentSelect,onRescheduleMidi,onSeekPlayhead,snapValue,onSnapChange,onRealtimePlay,onCopyNotes,clipboardNotes,onExportMidiAudio})=>{const[activeRollTool,setActiveRollTool]=React.useState('select');const[renderTick,setRenderTick]=React.useState(0);const[ccMode,setCcMode]=React.useState('velocity');const[rollZoom,setRollZoom]=React.useState(()=>{// Persist zoom piano roll qua phiên (localStorage) — user yêu cầu giữ kích @@ -2163,7 +2163,7 @@ var srcMidi=0,srcClip=0,srcSec=0;tracks.forEach(function(t){srcMidi+=(t.midiItem // Projects). Docker/headless: lưu lên Cloud (đã login) hoặc local (.sfs). const handleGlobalSave=async()=>{try{const finalName=projectName||'Dự án mới';const schemaObj=serializeProjectToSchema(currentProjectId||'proj_'+Date.now(),finalName,bpm,tracks,subTabs,sessionTabs,masteringSettings,masterVolume,{volL:masterVolL,volR:masterVolR,link:masterLink,muted:masterMuted});const dataJson=JSON.stringify(schemaObj);const runtime=window.SonicRuntime&&window.SonicRuntime.capabilities&&window.SonicRuntime.capabilities.runtime||'';if(runtime==='desktop'&&window.SonicAPI&&window.SonicAPI.saveProjectToDisk){// Desktop → thư mục của hệ điều hành const res=await window.SonicAPI.saveProjectToDisk(finalName,dataJson);showToast('Đã lưu dự án: '+(res&&res.path||finalName),'success');}else if(window.SonicAPI){// Docker / headless → Cloud (nếu đã đăng nhập), ngược lại local -if(currentProjectId&&!currentProjectId.startsWith('local_')&¤tUser){await window.SonicAPI.updateCloudProject(currentProjectId,finalName,dataJson);showToast('Đã lưu dự án lên Cloud','success');}else if(currentUser){await handleSaveAsCloud(finalName);}else{handleSaveLocalProject(finalName);}}}catch(err){showToast('Lỗi lưu dự án: '+(err.message||err),'error');}};const handleGlobalSaveRef=useRef(handleGlobalSave);handleGlobalSaveRef.current=handleGlobalSave;useEffect(()=>{const handler=e=>{if((e.ctrlKey||e.metaKey)&&e.key.toLowerCase()==='s'){const target=e.target;if(target&&(target.tagName==='INPUT'||target.tagName==='TEXTAREA'||target.isContentEditable))return;e.preventDefault();handleGlobalSaveRef.current();}};window.addEventListener('keydown',handler);return()=>window.removeEventListener('keydown',handler);},[]);const handleSaveAsCloud=async newName=>{const projectSchemaObj=serializeProjectToSchema('project_'+Date.now(),newName,bpm,tracks,subTabs,sessionTabs,masteringSettings,masterVolume,{volL:masterVolL,volR:masterVolR,link:masterLink,muted:masterMuted});const dataJson=JSON.stringify(projectSchemaObj);try{const res=await window.SonicAPI.saveCloudProject(newName,dataJson);const newProjId=res.project_id;setProjectName(newName);localStorage.setItem('sonic_project_name',newName);if(newProjId){setCurrentProjectId(newProjId);localStorage.setItem('sonic_project_id',newProjId);}showToast(`Đã lưu dự án dưới tên mới "${newName}" lên server!`,"success");}catch(err){showToast(err.message||"Lỗi Save As lên server","error");}};const handleSaveCloud=handleSaveProject;const handleExportSFS=(customName=null)=>{const finalName=customName||projectName||'Dự án SonicForge';const projectSchemaObj=serializeProjectToSchema(currentProjectId||'proj_'+Date.now(),finalName,bpm,tracks,subTabs,sessionTabs,masteringSettings,masterVolume,{volL:masterVolL,volR:masterVolR,link:masterLink,muted:masterMuted});window.SonicStorage.exportProjectToSFS(projectSchemaObj);showToast("Đã xuất dự án (.sfs) thành công!","success");};const handleImportSFS=()=>{const input=document.createElement('input');input.type='file';input.accept='.sfs,application/json';input.onchange=async e=>{if(!e.target.files[0])return;try{const proj=await window.SonicStorage.importProjectFromSFSFile(e.target.files[0]);let restored=[];let restoredBpm=bpm;let restoredSessionTabs=[];let restoredSubTabs=[];if(proj.main_session){const result=deserializeProjectFromSchema(proj);restored=result.tracks;restoredBpm=result.bpm;restoredSessionTabs=result.sessionTabs;restoredSubTabs=result.subTabs;if(result.masteringSettings)setMasteringSettings(result.masteringSettings);if(result.masterVolume!==undefined&&result.masterVolume!==null)setMasterVolume(result.masterVolume);if(result.masterVolL!==undefined&&result.masterVolL!==null)setMasterVolL(result.masterVolL);if(result.masterVolR!==undefined&&result.masterVolR!==null)setMasterVolR(result.masterVolR);if(result.masterLink!==undefined&&result.masterLink!==null)setMasterLink(result.masterLink);if(result.masterMuted!==undefined&&result.masterMuted!==null)setMasterMuted(result.masterMuted);if(result.masterAutoVol!==undefined)setMasterAutoVol(result.masterAutoVol);if(result.masterAutoOn!==undefined)setMasterAutoOn(result.masterAutoOn);}else{restored=(proj.tracks||[]).map(t=>({...t,buffer:null,channelInfo:t.channelInfo||null,clips:t.clips||[],serverFileId:t.serverFileId||null}));}if(restored.length>0){setTracks(restored);loadAudioBuffersForTracks(restored);setBpm(restoredBpm.toString());setProjectName(proj.name||'Dự án mới');setCurrentProjectId(null);if(restoredSessionTabs.length>0)setSessionTabs(restoredSessionTabs);if(restoredSubTabs.length>0)setSubTabs(restoredSubTabs);localStorage.setItem('sonic_project_name',proj.name||'Dự án mới');localStorage.removeItem('sonic_project_id');showToast(`Đã nạp dự án "${proj.name||'Dự án mới'}" từ tệp .sfs thành công!`,"success");}}catch(err){showToast(err.message||"Lỗi mở tệp .sfs","error");}};input.click();};const clientSideExport=async(activeTracks,loopInfo)=>{setIsExporting(true);setShowExportPanel(false);setShowExportProgress(true);setExportProgress(5);showToast("Đang trộn âm thanh đa kênh (Offline Mixdown)...","info");// Yield 1 frame → React vẽ thanh "Đang xử lý..." trước khi graph build + +if(currentProjectId&&!currentProjectId.startsWith('local_')&¤tUser){await window.SonicAPI.updateCloudProject(currentProjectId,finalName,dataJson);showToast('Đã lưu dự án lên Cloud','success');}else if(currentUser){await handleSaveAsCloud(finalName);}else{handleSaveLocalProject(finalName);}}}catch(err){showToast('Lỗi lưu dự án: '+(err.message||err),'error');}};const handleGlobalSaveRef=useRef(handleGlobalSave);handleGlobalSaveRef.current=handleGlobalSave;useEffect(()=>{const handler=e=>{if((e.ctrlKey||e.metaKey)&&e.key.toLowerCase()==='s'){const target=e.target;if(target&&(target.tagName==='INPUT'||target.tagName==='TEXTAREA'||target.isContentEditable))return;e.preventDefault();handleGlobalSaveRef.current();}};window.addEventListener('keydown',handler);return()=>window.removeEventListener('keydown',handler);},[]);const handleSaveAsCloud=async newName=>{const projectSchemaObj=serializeProjectToSchema('project_'+Date.now(),newName,bpm,tracks,subTabs,sessionTabs,masteringSettings,masterVolume,{volL:masterVolL,volR:masterVolR,link:masterLink,muted:masterMuted});const dataJson=JSON.stringify(projectSchemaObj);try{const res=await window.SonicAPI.saveCloudProject(newName,dataJson);const newProjId=res.project_id;setProjectName(newName);localStorage.setItem('sonic_project_name',newName);if(newProjId){setCurrentProjectId(newProjId);localStorage.setItem('sonic_project_id',newProjId);}showToast(`Đã lưu dự án dưới tên mới "${newName}" lên server!`,"success");}catch(err){showToast(err.message||"Lỗi Save As lên server","error");}};const handleSaveCloud=handleSaveProject;const handleExportSFS=(customName=null)=>{const finalName=customName||projectName||'Dự án ScoreFX';const projectSchemaObj=serializeProjectToSchema(currentProjectId||'proj_'+Date.now(),finalName,bpm,tracks,subTabs,sessionTabs,masteringSettings,masterVolume,{volL:masterVolL,volR:masterVolR,link:masterLink,muted:masterMuted});window.SonicStorage.exportProjectToSFS(projectSchemaObj);showToast("Đã xuất dự án (.sfs) thành công!","success");};const handleImportSFS=()=>{const input=document.createElement('input');input.type='file';input.accept='.sfs,application/json';input.onchange=async e=>{if(!e.target.files[0])return;try{const proj=await window.SonicStorage.importProjectFromSFSFile(e.target.files[0]);let restored=[];let restoredBpm=bpm;let restoredSessionTabs=[];let restoredSubTabs=[];if(proj.main_session){const result=deserializeProjectFromSchema(proj);restored=result.tracks;restoredBpm=result.bpm;restoredSessionTabs=result.sessionTabs;restoredSubTabs=result.subTabs;if(result.masteringSettings)setMasteringSettings(result.masteringSettings);if(result.masterVolume!==undefined&&result.masterVolume!==null)setMasterVolume(result.masterVolume);if(result.masterVolL!==undefined&&result.masterVolL!==null)setMasterVolL(result.masterVolL);if(result.masterVolR!==undefined&&result.masterVolR!==null)setMasterVolR(result.masterVolR);if(result.masterLink!==undefined&&result.masterLink!==null)setMasterLink(result.masterLink);if(result.masterMuted!==undefined&&result.masterMuted!==null)setMasterMuted(result.masterMuted);if(result.masterAutoVol!==undefined)setMasterAutoVol(result.masterAutoVol);if(result.masterAutoOn!==undefined)setMasterAutoOn(result.masterAutoOn);}else{restored=(proj.tracks||[]).map(t=>({...t,buffer:null,channelInfo:t.channelInfo||null,clips:t.clips||[],serverFileId:t.serverFileId||null}));}if(restored.length>0){setTracks(restored);loadAudioBuffersForTracks(restored);setBpm(restoredBpm.toString());setProjectName(proj.name||'Dự án mới');setCurrentProjectId(null);if(restoredSessionTabs.length>0)setSessionTabs(restoredSessionTabs);if(restoredSubTabs.length>0)setSubTabs(restoredSubTabs);localStorage.setItem('sonic_project_name',proj.name||'Dự án mới');localStorage.removeItem('sonic_project_id');showToast(`Đã nạp dự án "${proj.name||'Dự án mới'}" từ tệp .sfs thành công!`,"success");}}catch(err){showToast(err.message||"Lỗi mở tệp .sfs","error");}};input.click();};const clientSideExport=async(activeTracks,loopInfo)=>{setIsExporting(true);setShowExportPanel(false);setShowExportProgress(true);setExportProgress(5);showToast("Đang trộn âm thanh đa kênh (Offline Mixdown)...","info");// Yield 1 frame → React vẽ thanh "Đang xử lý..." trước khi graph build + // OfflineAudioContext render chặn main thread. await new Promise(res=>setTimeout(res,30));let lastPaint=0;// throttle setProgress 150ms — tránh re-render toàn App mỗi chunk try{const targetRate=parseInt(exportSettings.sampleRate);const isFloatWav=exportSettings.bitDepth==='float';const bitDepth=isFloatWav?32:parseInt(exportSettings.bitDepth);// MAIN SESSION end time (items trên track main — sections theo bounds) — @@ -2342,7 +2342,7 @@ trackMidiChannelsRef.current={};Object.keys(trackMidiBypassMap).forEach(function // MAIN phải lưu cả piano roll/audio tab đã sửa) handleSaveProject();subTabsRef.current.filter(s=>s.isDirty).forEach(st=>{if(st.type==='PIANO_ROLL'){handleSaveMidiNotes(st.id,st.trackId,st.target_id,st.notes||[]);}else if(st.type==='SECTION'){handleSaveSectionTab(st.id);}else if(st.buffer){const subTrack=activeTracksRef.current.find(t=>t.id===st.trackId);if(subTrack){updateActiveTracks(prev=>prev.map(t=>t.id===st.trackId?{...t,buffer:st.buffer}:t));}}});showToast('Đã lưu dự án + các tab đã sửa','success');}},{label:'Save As...',icon:'download',shortcut:'Ctrl+Alt+S',action:()=>setSaveAsModalOpen(true)},{sep:true},{label:'Config AI Providers...',icon:'settings',action:()=>setAiConfigModalOpen(true)},{label:'Import Audio...',icon:'file-input',shortcut:'Ctrl+Alt+I',action:()=>{const input=document.createElement('input');input.type='file';input.accept='audio/*';input.onchange=async e=>{if(e.target.files[0]){addNewTrack();const rearrangeNewId=(tracks.length+1).toString();setTimeout(()=>loadFileOnTrack(rearrangeNewId,e.target.files[0]),100);}};input.click();showToast('Import audio','info');}},{label:'Export Mix...',icon:'file-output',action:()=>setShowExportPanel(true)},{label:'Bounce MIDI...',icon:'radio',action:()=>triggerBounceExport()},{label:'Export MIDI...',icon:'music',action:()=>triggerMidiExport()},{label:'Master FX Chain',icon:'wand-2',shortcut:'Ctrl+Shift+M',action:()=>setShowMasteringModal(true)},{sep:true},...(currentUser?[{label:'Profile',icon:'user',action:()=>setProfileModalOpen(true)}]:[]),...(currentUser&¤tUser.role==='admin'?[{label:'System Manager',icon:'settings',action:()=>setSystemManagerModalOpen(true)}]:[]),{label:'Logout',icon:'log-out',action:()=>handleLogout()}]},{label:'Edit',items:[{label:'Insert New Track',icon:'plus',shortcut:'Ctrl+I',action:addNewTrack},{label:'Insert Music to Track',icon:'music',shortcut:'Ctrl+Alt+I',action:()=>showToast('Select music file to insert','info')},{sep:true},{label:'Edit in New Tab',icon:'file-edit',shortcut:'Ctrl+E',action:()=>openTempTab()},{label:'Split at Playhead',icon:'scissors',shortcut:'S',action:()=>handleSplitTrack(selectedTrackId)},{label:'Merge Tracks',icon:'combine',shortcut:'Ctrl+M',action:()=>{handleMergeTracks();}},{sep:true},{label:'Undo',icon:'undo',shortcut:'Ctrl+Z',action:()=>{handleUndo();}},{label:'Redo',icon:'redo',shortcut:'Ctrl+Y',action:()=>{handleRedo();}},{sep:true},{label:'Copy',icon:'copy',shortcut:'Ctrl+C',action:()=>{handleCopyTrack();}},{label:'Cut',icon:'scissors',shortcut:'Ctrl+X',action:()=>{handleCutTrack();}},{label:'Paste',icon:'clipboard',shortcut:'Ctrl+V',action:handlePasteTrack},{sep:true},{label:'Delete Track',icon:'trash-2',shortcut:'Del',action:()=>{handleDeleteTrack();}}]},{label:'Insert',items:[...(!sessionTabs.some(s=>s.id===activeTab)?[{label:'Insert Section',icon:'folder-plus',action:insertSectionAtPlayhead}]:[]),{label:'Insert MIDI item',icon:'music',action:insertMidiItemAtPlayhead},{label:'Insert sound clip',icon:'file-input',action:insertSoundClipAtCursor},{label:'Chords panel',icon:'guitar',shortcut:'Shift+K',action:()=>window.__toggleChordsPanel()},{label:'Insert track',icon:'plus',action:insertTrackBelow}]},{label:'View',items:[{label:'Master Track',icon:'disc',action:()=>showToast('Master track view','info')},{label:'Maker View',icon:'layout',action:()=>showToast('Maker view','info')},{label:'Mixer',icon:'sliders',action:()=>window.__toggleMixerRef()},{label:'Tempo Track',icon:'timer',action:()=>showToast('Tempo track','info')},{label:'Video',icon:'film',action:()=>showToast('Video panel','info')},{label:'Media Explorer',icon:'folder-search',action:()=>window.__toggleMediaExplorerRef()}]},{label:'Tools',items:[{label:'Config AI Providers...',icon:'settings',action:()=>setAiConfigModalOpen(true)},{label:'AI MIDI Preset Manager...',icon:'sliders',action:()=>setAiPresetModalOpen(true)},{label:'DSP Tools Panel',icon:'wrench',action:()=>{// DSP Tool đã được move vào SUB-TAB editor (audioclip). Mở sub-tab // edit cho track/clip đang chọn — nếu chưa có clip → mở panel cũ. -const t=activeTracks.find(x=>x.id===selectedTrackId);if(t&&(t.buffer||t.clips&&t.clips.length)){const clipId=t.clips&&t.clips[0]?t.clips[0].id:'default';handleEditClipInSubTab(t.id,clipId);}else{openPanel('python_tools');}}},{label:'Virtual MIDI Keyboard',icon:'piano',shortcut:'F2',action:()=>window.__toggleVkb()},{sep:true},{label:'Plugin Manager (SoundFont/VSTi)',icon:'zap',action:()=>{setPluginManagerModalOpen(true);window.SonicAPI.listPlugins().then(data=>setPluginsData(data)).catch(()=>{});}},{sep:true},{label:'Preferences...',icon:'settings-2',action:()=>setPreferencesModalOpen(true)}]},{label:'Help',items:[{label:'Hướng dẫn sử dụng...',icon:'book-open',action:()=>setHelpModalOpen(true)},{sep:true},{label:'About SonicForge Studio...',icon:'info',action:()=>setAboutModalOpen(true)}]}].map(menu=>/*#__PURE__*/React.createElement("div",{key:menu.label,className:"relative"},/*#__PURE__*/React.createElement("button",{onClick:()=>setMenuOpen(menuOpen===menu.label?null:menu.label),className:`px-3 py-1 text-xs font-medium transition rounded ${menuOpen===menu.label?'bg-zinc-700 text-zinc-100':'text-zinc-400 hover:text-zinc-200 hover:bg-zinc-800'}`},menu.label),menuOpen===menu.label&&/*#__PURE__*/React.createElement("div",{className:`absolute top-full left-0 mt-0.5 bg-[#2a2a2a] border border-zinc-700 rounded-lg shadow-2xl py-1 z-50 ${menu.label==='Edit'?'w-72':'w-64'}`,onClick:()=>setMenuOpen(null)},menu.items.map((item,i)=>item.sep?/*#__PURE__*/React.createElement("div",{key:i,className:"h-px bg-zinc-700 my-1"}):/*#__PURE__*/React.createElement("button",{key:item.label,onClick:e=>{e.stopPropagation();item.action();setMenuOpen(null);},className:"w-full px-3 py-1.5 text-xs text-zinc-200 hover:bg-zinc-700 text-left flex items-center gap-2"},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":item.icon,className:"w-3.5 h-3.5 text-zinc-500 shrink-0"})),/*#__PURE__*/React.createElement("span",{className:"flex-1"},item.label),item.shortcut&&/*#__PURE__*/React.createElement("span",{className:"text-purple-400 text-xs font-semibold font-mono ml-auto pl-8"},item.shortcut)))))),/*#__PURE__*/React.createElement("div",{className:"flex-1"}),/*#__PURE__*/React.createElement("div",{className:"flex items-center gap-2 px-2"},/*#__PURE__*/React.createElement("span",{className:`text-xs font-bold uppercase px-1.5 py-0.5 rounded ${serverStatus==='connected'?'bg-emerald-950 text-emerald-400':serverStatus==='checking...'?'bg-amber-950 text-amber-400':'bg-red-950 text-red-400'}`},"Server: ",serverStatus,serverAddr?" · "+serverAddr:""),/*#__PURE__*/React.createElement("button",{onClick:()=>setShowAIConfig(!showAIConfig),className:`px-1.5 py-0.5 rounded text-xs border transition ${showAIConfig?'bg-purple-900 text-purple-200 border-purple-700':'bg-zinc-800 text-zinc-400 border-zinc-700 hover:text-zinc-200'}`},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":"cpu",className:"w-3 h-3"}))))),menuOpen&&/*#__PURE__*/React.createElement("div",{className:"fixed inset-0 z-40",onClick:()=>setMenuOpen(null)}),/*#__PURE__*/React.createElement("div",{className:"h-7 bg-[#222] border-b border-zinc-800 flex items-stretch px-2 gap-0.5 shrink-0 overflow-x-auto"},/*#__PURE__*/React.createElement("button",{onClick:()=>setActiveTab('main'),className:`px-3 text-xs font-bold uppercase tracking-wider border-b-2 transition flex items-center gap-1 ${activeTab==='main'?'text-cyan-400 border-cyan-500 bg-zinc-800/50':'text-zinc-500 border-transparent hover:text-zinc-300 hover:bg-zinc-800/30'}`},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":"layout-dashboard",className:"w-3 h-3"}))," Main Session"),sessionTabs.map(st=>{const isTabActive=activeTab===st.id;const tabColor=st.color||(isTabActive?'#06b6d4':null);const borderStyle=isTabActive?{borderBottomColor:tabColor,color:tabColor}:st.color?{color:st.color,borderBottomColor:'transparent'}:{};return/*#__PURE__*/React.createElement("div",{key:st.id,className:"flex items-stretch"},/*#__PURE__*/React.createElement("button",{onClick:()=>setActiveTab(st.id),onAuxClick:e=>{if(e.button===1){e.preventDefault();closeSessionTab(st.id);}},onContextMenu:e=>{e.preventDefault();setTabContextMenu({x:e.clientX,y:e.clientY,tabId:st.id,tabType:'session'});},style:borderStyle,className:`px-2 text-xs font-medium border-b-2 transition flex items-center gap-1 ${isTabActive?'bg-zinc-800/50':'text-zinc-500 border-transparent hover:text-zinc-300 hover:bg-zinc-800/30'}`},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":"layers",className:"w-3 h-3"})),/*#__PURE__*/React.createElement("span",{className:"max-w-[120px] truncate"},st.name),st.isDirty&&/*#__PURE__*/React.createElement("span",{className:"w-1.5 h-1.5 rounded-full bg-amber-500 ml-1",title:"Chưa lưu thay đổi"})),/*#__PURE__*/React.createElement("button",{onClick:()=>closeSessionTab(st.id),className:"px-1 text-zinc-600 hover:text-red-400 transition text-xs",title:"Close tab"},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":"x",className:"w-3 h-3"}))));}),subTabs.map(st=>{const isTabActive=activeTab===st.id;const tabColor=st.color||(isTabActive?'#f59e0b':null);const borderStyle=isTabActive?{borderBottomColor:tabColor,color:tabColor}:st.color?{color:st.color,borderBottomColor:'transparent'}:{};const iconName=st.type==='PIANO_ROLL'?'music':'file-edit';return/*#__PURE__*/React.createElement("div",{key:st.id,className:"flex items-stretch"},/*#__PURE__*/React.createElement("button",{onClick:()=>setActiveTab(st.id),onAuxClick:e=>{if(e.button===1){e.preventDefault();closeSubTab(st.id);}},onContextMenu:e=>{e.preventDefault();setTabContextMenu({x:e.clientX,y:e.clientY,tabId:st.id,tabType:'sub'});},style:borderStyle,className:`px-2 text-xs font-medium border-b-2 transition flex items-center gap-1 ${isTabActive?'bg-zinc-800/50':'text-zinc-500 border-transparent hover:text-zinc-300 hover:bg-zinc-800/30'}`},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":iconName,className:"w-3 h-3"})),/*#__PURE__*/React.createElement("span",{className:"max-w-[100px] truncate"},st.label),st.isDirty&&/*#__PURE__*/React.createElement("span",{className:"w-1.5 h-1.5 rounded-full bg-amber-500 ml-1",title:"Chưa lưu thay đổi"})),/*#__PURE__*/React.createElement("button",{onClick:()=>closeSubTab(st.id),className:"px-1 text-zinc-600 hover:text-red-400 transition text-xs",title:"Close tab"},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":"x",className:"w-3 h-3"}))));})),showAIConfig&&/*#__PURE__*/React.createElement("div",{className:"bg-zinc-900 border-b border-purple-900 p-3 flex flex-col gap-2 transition-all"},/*#__PURE__*/React.createElement("div",{className:"text-xs font-bold text-purple-400 uppercase tracking-wider flex items-center gap-1"},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":"cpu",className:"w-4 h-4"}))," Cấu hình cổng kết nối API"),/*#__PURE__*/React.createElement("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-2 text-xs"},/*#__PURE__*/React.createElement("div",{className:"flex flex-col gap-1"},/*#__PURE__*/React.createElement("span",{className:"text-xs text-zinc-500 font-bold uppercase"},"Endpoint Base URL"),/*#__PURE__*/React.createElement("input",{type:"text",value:aiConfig.baseUrl,onChange:e=>setAiConfig(prev=>({...prev,baseUrl:e.target.value})),className:"bg-zinc-850 text-zinc-200 p-1.5 rounded border border-zinc-800 focus:outline-none focus:border-purple-600 font-mono text-xs",placeholder:"https://api.openai.com/v1"})),/*#__PURE__*/React.createElement("div",{className:"flex flex-col gap-1"},/*#__PURE__*/React.createElement("span",{className:"text-xs text-zinc-500 font-bold uppercase"},"API Token Key"),/*#__PURE__*/React.createElement("input",{type:"password",value:aiConfig.apiKey,onChange:e=>setAiConfig(prev=>({...prev,apiKey:e.target.value})),className:"bg-zinc-850 text-zinc-200 p-1.5 rounded border border-zinc-800 focus:outline-none focus:border-purple-600 font-mono text-xs",placeholder:"sk-..."})),/*#__PURE__*/React.createElement("div",{className:"flex flex-col gap-1"},/*#__PURE__*/React.createElement("span",{className:"text-xs text-zinc-500 font-bold uppercase"},"Model Name"),/*#__PURE__*/React.createElement("input",{type:"text",value:aiConfig.model,onChange:e=>setAiConfig(prev=>({...prev,model:e.target.value})),className:"bg-zinc-850 text-zinc-200 p-1.5 rounded border border-zinc-800 focus:outline-none focus:border-purple-600 font-mono text-xs",placeholder:"gpt-4o-mini"})))),/*#__PURE__*/React.createElement("div",{className:"h-9 bg-[#222] border-b border-zinc-800 flex items-center px-3 gap-2 shrink-0 select-none"},/*#__PURE__*/React.createElement("div",{className:"flex items-center gap-1 bg-zinc-900 border border-zinc-700 rounded px-1.5 py-0.5 shadow-lg",title:"Kéo để di chuyển toolbar",style:{cursor:'grab'}},/*#__PURE__*/React.createElement("div",{className:"flex items-center gap-0.5 mr-1 text-zinc-600"},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":"grip-vertical",className:"w-3 h-3"}))),/*#__PURE__*/React.createElement("button",{onClick:()=>{setActiveTool('select');showToast('Select Tool','info');},className:`w-7 h-7 flex items-center justify-center rounded ${activeTool==='select'?'bg-cyan-700 text-white':'text-zinc-400 hover:text-zinc-200 hover:bg-zinc-800'}`,title:"Select Tool (V)"},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":"mouse-pointer",className:"w-3.5 h-3.5"}))),/*#__PURE__*/React.createElement("button",{onClick:()=>{setActiveTool('grab');showToast('Grab Tool','info');},className:`w-7 h-7 flex items-center justify-center rounded ${activeTool==='grab'?'bg-cyan-700 text-white':'text-zinc-400 hover:text-zinc-200 hover:bg-zinc-800'}`,title:"Grab Tool (H)"},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":"hand",className:"w-3.5 h-3.5"}))),/*#__PURE__*/React.createElement("div",{className:"flex items-center gap-0.5 border border-zinc-700 rounded bg-zinc-850 px-0.5"},/*#__PURE__*/React.createElement("button",{onClick:()=>{setActiveTool('razor');showToast('Razor Tool','info');},className:`w-7 h-7 flex items-center justify-center rounded ${activeTool==='razor'?'bg-cyan-700 text-white':'text-zinc-400 hover:text-zinc-200 hover:bg-zinc-800'}`,title:"Razor Tool (C)"},/*#__PURE__*/React.createElement("svg",{className:"w-3.5 h-3.5 text-orange-400",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round"},/*#__PURE__*/React.createElement("path",{d:"M6 3h12a2 2 0 0 1 2 2v2a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z"}),/*#__PURE__*/React.createElement("path",{d:"M4 9h16l-3 9H7z"}),/*#__PURE__*/React.createElement("circle",{cx:"12",cy:"6",r:"1"}))),/*#__PURE__*/React.createElement("button",{onClick:handleGlueTracks,className:"w-7 h-7 flex items-center justify-center rounded text-zinc-400 hover:text-purple-400 hover:bg-zinc-800",title:"Glue Clips"},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":"link",className:"w-3.5 h-3.5"})))),/*#__PURE__*/React.createElement("button",{onClick:()=>{setActiveTool('pen');showToast('Pen Tool','info');},className:`w-7 h-7 flex items-center justify-center rounded ${activeTool==='pen'?'bg-cyan-700 text-white':'text-zinc-400 hover:text-zinc-200 hover:bg-zinc-800'}`,title:"Pen Tool (P)"},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":"pen-tool",className:"w-3.5 h-3.5"}))),/*#__PURE__*/React.createElement("div",{className:"w-[1px] h-5 bg-zinc-700 mx-0.5"}),/*#__PURE__*/React.createElement("button",{onClick:handleCutTrack,className:"w-7 h-7 flex items-center justify-center rounded text-zinc-400 hover:text-red-400 hover:bg-zinc-800",title:"Cut (Ctrl+X)"},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":"scissors",className:"w-3.5 h-3.5"}))),/*#__PURE__*/React.createElement("button",{onClick:handleCopyTrack,className:"w-7 h-7 flex items-center justify-center rounded text-zinc-400 hover:text-blue-400 hover:bg-zinc-800",title:"Copy (Ctrl+C)"},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":"copy",className:"w-3.5 h-3.5"}))),/*#__PURE__*/React.createElement("button",{onClick:handlePasteTrack,className:"w-7 h-7 flex items-center justify-center rounded text-zinc-400 hover:text-emerald-400 hover:bg-zinc-800",title:"Paste (Ctrl+V)"},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":"clipboard",className:"w-3.5 h-3.5"}))),/*#__PURE__*/React.createElement("div",{className:"w-[1px] h-5 bg-zinc-700 mx-0.5"}),/*#__PURE__*/React.createElement("button",{onClick:addNewTrack,className:"px-2 py-1 bg-cyan-600 hover:bg-cyan-500 text-white font-semibold rounded text-xs flex items-center gap-1 shadow transition",title:"Thêm Track Mới (Ctrl+I)"},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":"plus",className:"w-3.5 h-3.5"})),/*#__PURE__*/React.createElement("span",null,"Track")),sessionTabs.some(s=>s.id===activeTab)&&/*#__PURE__*/React.createElement(React.Fragment,null,/*#__PURE__*/React.createElement("div",{className:"w-[1px] h-5 bg-zinc-700 mx-0.5"}),/*#__PURE__*/React.createElement("button",{onClick:()=>handleSaveSectionTab(activeTab),className:"px-2 py-1 bg-emerald-600 hover:bg-emerald-500 text-white font-semibold rounded text-xs flex items-center gap-1 shadow transition",title:"Lưu Section vào Main Session"},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":"save",className:"w-3.5 h-3.5"})),/*#__PURE__*/React.createElement("span",null,"Lưu Section"))),/*#__PURE__*/React.createElement("div",{className:"w-[1px] h-5 bg-zinc-700 mx-0.5"}),/*#__PURE__*/React.createElement("button",{onClick:handleUndo,disabled:undoStack.length===0&&(!window.UndoRedoEngine||!window.UndoRedoEngine.canUndo()),className:"w-7 h-7 flex items-center justify-center rounded text-zinc-400 hover:text-zinc-200 hover:bg-zinc-800 disabled:opacity-30",title:"Undo (Ctrl+Z)"},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":"undo",className:"w-3.5 h-3.5"}))),/*#__PURE__*/React.createElement("button",{onClick:handleRedo,disabled:redoStack.length===0&&(!window.UndoRedoEngine||!window.UndoRedoEngine.canRedo()),className:"w-7 h-7 flex items-center justify-center rounded text-zinc-400 hover:text-zinc-200 hover:bg-zinc-800 disabled:opacity-30",title:"Redo (Ctrl+Y)"},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":"redo",className:"w-3.5 h-3.5"})))),/*#__PURE__*/React.createElement("div",{className:"w-[1px] h-5 bg-zinc-800 mx-0.5"}),/*#__PURE__*/React.createElement("button",{onClick:()=>seekPlaybackTo(0),className:"w-7 h-7 flex items-center justify-center bg-zinc-800 hover:bg-zinc-700 text-zinc-200 rounded border border-zinc-700 transition",title:"Quay lại đầu"},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":"skip-back",className:"w-3.5 h-3.5"}))),/*#__PURE__*/React.createElement("button",{onClick:()=>{const isSubTab=subTabs.some(sub=>sub.id===activeTab);if(isSubTab){const st=subTabs.find(s=>s.id===activeTab);if(!st)return;const left=st.selectionStart!==null&&st.selectionEnd!==null?Math.min(st.selectionStart,st.selectionEnd):null;if(left!==null)seekPlaybackTo(left);}else{if(selLeft!==null)seekPlaybackTo(selLeft);}},className:"w-7 h-7 flex items-center justify-center bg-zinc-800 hover:bg-zinc-700 text-zinc-200 rounded border border-zinc-700 transition",title:"Đầu vùng chọn"},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":"step-back",className:"w-3.5 h-3.5"}))),/*#__PURE__*/React.createElement("button",{onClick:handlePlayPause,className:`w-7 h-7 flex items-center justify-center rounded border transition ${isPlaying?'bg-emerald-600 text-black border-emerald-500 hover:bg-emerald-500':'bg-cyan-600 text-white border-cyan-500 hover:bg-cyan-500'}`,title:isPlaying?"Tạm dừng":"Play"},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":isPlaying?"pause":"play",className:"w-3.5 h-3.5 fill-current"}))),/*#__PURE__*/React.createElement("button",{onClick:handleStop,className:"w-7 h-7 flex items-center justify-center bg-zinc-800 hover:bg-zinc-700 text-zinc-200 rounded border border-zinc-700 transition",title:"Stop"},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":"square",className:"w-3.5 h-3.5 fill-current"}))),/*#__PURE__*/React.createElement("button",{onClick:handleRecordClick,className:`w-7 h-7 flex items-center justify-center rounded border transition ${recordingState==='RECORDING'?'bg-red-600 text-white border-red-500 hover:bg-red-500 animate-pulse':recordingState==='COUNT_IN'?'bg-amber-500 text-black border-amber-400 hover:bg-amber-400 animate-pulse':'bg-zinc-800 text-red-500 border-zinc-700 hover:bg-zinc-700 hover:text-red-400'}`,title:recordingState==='RECORDING'?"Đang ghi âm...":recordingState==='COUNT_IN'?"Chuẩn bị ghi âm...":"Ghi âm (Record)"},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":"circle",className:"w-3.5 h-3.5 fill-current"}))),/*#__PURE__*/React.createElement("button",{onClick:()=>{const isSubTab=subTabs.some(sub=>sub.id===activeTab);if(isSubTab){setSubTabs(prev=>prev.map(s=>{if(s.id!==activeTab)return s;const right=s.selectionStart!==null&&s.selectionEnd!==null?Math.max(s.selectionStart,s.selectionEnd):null;return right!==null?{...s,currentTime:right}:s;}));}else{if(selRight!==null)setCurrentTime(selRight);}},className:"w-7 h-7 flex items-center justify-center bg-zinc-800 hover:bg-zinc-700 text-zinc-200 rounded border border-zinc-700 transition",title:"Cuối vùng chọn"},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":"step-forward",className:"w-3.5 h-3.5"}))),/*#__PURE__*/React.createElement("button",{onClick:()=>{const isSubTab=subTabs.some(sub=>sub.id===activeTab);if(isSubTab){setSubTabs(prev=>prev.map(s=>{if(s.id!==activeTab)return s;const duration=s.buffer?s.buffer.duration/(s.speed||1.0):0;return{...s,currentTime:duration};}));}else{setCurrentTime(maxDuration);}},className:"w-7 h-7 flex items-center justify-center bg-zinc-800 hover:bg-zinc-700 text-zinc-200 rounded border border-zinc-700 transition",title:"Đến cuối"},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":"skip-forward",className:"w-3.5 h-3.5"}))),/*#__PURE__*/React.createElement("div",{className:"w-[1px] h-5 bg-zinc-800 mx-0.5"}),/*#__PURE__*/React.createElement("button",{onClick:()=>{setIsLoopingSelection(prev=>!prev);// Sync loop state with active sub-tab (piano roll / audio editor) +const t=activeTracks.find(x=>x.id===selectedTrackId);if(t&&(t.buffer||t.clips&&t.clips.length)){const clipId=t.clips&&t.clips[0]?t.clips[0].id:'default';handleEditClipInSubTab(t.id,clipId);}else{openPanel('python_tools');}}},{label:'Virtual MIDI Keyboard',icon:'piano',shortcut:'F2',action:()=>window.__toggleVkb()},{sep:true},{label:'Plugin Manager (SoundFont/VSTi)',icon:'zap',action:()=>{setPluginManagerModalOpen(true);window.SonicAPI.listPlugins().then(data=>setPluginsData(data)).catch(()=>{});}},{sep:true},{label:'Preferences...',icon:'settings-2',action:()=>setPreferencesModalOpen(true)}]},{label:'Help',items:[{label:'Hướng dẫn sử dụng...',icon:'book-open',action:()=>setHelpModalOpen(true)},{sep:true},{label:'About ScoreFX Studio...',icon:'info',action:()=>setAboutModalOpen(true)}]}].map(menu=>/*#__PURE__*/React.createElement("div",{key:menu.label,className:"relative"},/*#__PURE__*/React.createElement("button",{onClick:()=>setMenuOpen(menuOpen===menu.label?null:menu.label),className:`px-3 py-1 text-xs font-medium transition rounded ${menuOpen===menu.label?'bg-zinc-700 text-zinc-100':'text-zinc-400 hover:text-zinc-200 hover:bg-zinc-800'}`},menu.label),menuOpen===menu.label&&/*#__PURE__*/React.createElement("div",{className:`absolute top-full left-0 mt-0.5 bg-[#2a2a2a] border border-zinc-700 rounded-lg shadow-2xl py-1 z-50 ${menu.label==='Edit'?'w-72':'w-64'}`,onClick:()=>setMenuOpen(null)},menu.items.map((item,i)=>item.sep?/*#__PURE__*/React.createElement("div",{key:i,className:"h-px bg-zinc-700 my-1"}):/*#__PURE__*/React.createElement("button",{key:item.label,onClick:e=>{e.stopPropagation();item.action();setMenuOpen(null);},className:"w-full px-3 py-1.5 text-xs text-zinc-200 hover:bg-zinc-700 text-left flex items-center gap-2"},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":item.icon,className:"w-3.5 h-3.5 text-zinc-500 shrink-0"})),/*#__PURE__*/React.createElement("span",{className:"flex-1"},item.label),item.shortcut&&/*#__PURE__*/React.createElement("span",{className:"text-purple-400 text-xs font-semibold font-mono ml-auto pl-8"},item.shortcut)))))),/*#__PURE__*/React.createElement("div",{className:"flex-1"}),/*#__PURE__*/React.createElement("div",{className:"flex items-center gap-2 px-2"},/*#__PURE__*/React.createElement("span",{className:`text-xs font-bold uppercase px-1.5 py-0.5 rounded ${serverStatus==='connected'?'bg-emerald-950 text-emerald-400':serverStatus==='checking...'?'bg-amber-950 text-amber-400':'bg-red-950 text-red-400'}`},"Server: ",serverStatus,serverAddr?" · "+serverAddr:""),/*#__PURE__*/React.createElement("button",{onClick:()=>setShowAIConfig(!showAIConfig),className:`px-1.5 py-0.5 rounded text-xs border transition ${showAIConfig?'bg-purple-900 text-purple-200 border-purple-700':'bg-zinc-800 text-zinc-400 border-zinc-700 hover:text-zinc-200'}`},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":"cpu",className:"w-3 h-3"}))))),menuOpen&&/*#__PURE__*/React.createElement("div",{className:"fixed inset-0 z-40",onClick:()=>setMenuOpen(null)}),/*#__PURE__*/React.createElement("div",{className:"h-7 bg-[#222] border-b border-zinc-800 flex items-stretch px-2 gap-0.5 shrink-0 overflow-x-auto"},/*#__PURE__*/React.createElement("button",{onClick:()=>setActiveTab('main'),className:`px-3 text-xs font-bold uppercase tracking-wider border-b-2 transition flex items-center gap-1 ${activeTab==='main'?'text-cyan-400 border-cyan-500 bg-zinc-800/50':'text-zinc-500 border-transparent hover:text-zinc-300 hover:bg-zinc-800/30'}`},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":"layout-dashboard",className:"w-3 h-3"}))," Main Session"),sessionTabs.map(st=>{const isTabActive=activeTab===st.id;const tabColor=st.color||(isTabActive?'#06b6d4':null);const borderStyle=isTabActive?{borderBottomColor:tabColor,color:tabColor}:st.color?{color:st.color,borderBottomColor:'transparent'}:{};return/*#__PURE__*/React.createElement("div",{key:st.id,className:"flex items-stretch"},/*#__PURE__*/React.createElement("button",{onClick:()=>setActiveTab(st.id),onAuxClick:e=>{if(e.button===1){e.preventDefault();closeSessionTab(st.id);}},onContextMenu:e=>{e.preventDefault();setTabContextMenu({x:e.clientX,y:e.clientY,tabId:st.id,tabType:'session'});},style:borderStyle,className:`px-2 text-xs font-medium border-b-2 transition flex items-center gap-1 ${isTabActive?'bg-zinc-800/50':'text-zinc-500 border-transparent hover:text-zinc-300 hover:bg-zinc-800/30'}`},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":"layers",className:"w-3 h-3"})),/*#__PURE__*/React.createElement("span",{className:"max-w-[120px] truncate"},st.name),st.isDirty&&/*#__PURE__*/React.createElement("span",{className:"w-1.5 h-1.5 rounded-full bg-amber-500 ml-1",title:"Chưa lưu thay đổi"})),/*#__PURE__*/React.createElement("button",{onClick:()=>closeSessionTab(st.id),className:"px-1 text-zinc-600 hover:text-red-400 transition text-xs",title:"Close tab"},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":"x",className:"w-3 h-3"}))));}),subTabs.map(st=>{const isTabActive=activeTab===st.id;const tabColor=st.color||(isTabActive?'#f59e0b':null);const borderStyle=isTabActive?{borderBottomColor:tabColor,color:tabColor}:st.color?{color:st.color,borderBottomColor:'transparent'}:{};const iconName=st.type==='PIANO_ROLL'?'music':'file-edit';return/*#__PURE__*/React.createElement("div",{key:st.id,className:"flex items-stretch"},/*#__PURE__*/React.createElement("button",{onClick:()=>setActiveTab(st.id),onAuxClick:e=>{if(e.button===1){e.preventDefault();closeSubTab(st.id);}},onContextMenu:e=>{e.preventDefault();setTabContextMenu({x:e.clientX,y:e.clientY,tabId:st.id,tabType:'sub'});},style:borderStyle,className:`px-2 text-xs font-medium border-b-2 transition flex items-center gap-1 ${isTabActive?'bg-zinc-800/50':'text-zinc-500 border-transparent hover:text-zinc-300 hover:bg-zinc-800/30'}`},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":iconName,className:"w-3 h-3"})),/*#__PURE__*/React.createElement("span",{className:"max-w-[100px] truncate"},st.label),st.isDirty&&/*#__PURE__*/React.createElement("span",{className:"w-1.5 h-1.5 rounded-full bg-amber-500 ml-1",title:"Chưa lưu thay đổi"})),/*#__PURE__*/React.createElement("button",{onClick:()=>closeSubTab(st.id),className:"px-1 text-zinc-600 hover:text-red-400 transition text-xs",title:"Close tab"},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":"x",className:"w-3 h-3"}))));})),showAIConfig&&/*#__PURE__*/React.createElement("div",{className:"bg-zinc-900 border-b border-purple-900 p-3 flex flex-col gap-2 transition-all"},/*#__PURE__*/React.createElement("div",{className:"text-xs font-bold text-purple-400 uppercase tracking-wider flex items-center gap-1"},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":"cpu",className:"w-4 h-4"}))," Cấu hình cổng kết nối API"),/*#__PURE__*/React.createElement("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-2 text-xs"},/*#__PURE__*/React.createElement("div",{className:"flex flex-col gap-1"},/*#__PURE__*/React.createElement("span",{className:"text-xs text-zinc-500 font-bold uppercase"},"Endpoint Base URL"),/*#__PURE__*/React.createElement("input",{type:"text",value:aiConfig.baseUrl,onChange:e=>setAiConfig(prev=>({...prev,baseUrl:e.target.value})),className:"bg-zinc-850 text-zinc-200 p-1.5 rounded border border-zinc-800 focus:outline-none focus:border-purple-600 font-mono text-xs",placeholder:"https://api.openai.com/v1"})),/*#__PURE__*/React.createElement("div",{className:"flex flex-col gap-1"},/*#__PURE__*/React.createElement("span",{className:"text-xs text-zinc-500 font-bold uppercase"},"API Token Key"),/*#__PURE__*/React.createElement("input",{type:"password",value:aiConfig.apiKey,onChange:e=>setAiConfig(prev=>({...prev,apiKey:e.target.value})),className:"bg-zinc-850 text-zinc-200 p-1.5 rounded border border-zinc-800 focus:outline-none focus:border-purple-600 font-mono text-xs",placeholder:"sk-..."})),/*#__PURE__*/React.createElement("div",{className:"flex flex-col gap-1"},/*#__PURE__*/React.createElement("span",{className:"text-xs text-zinc-500 font-bold uppercase"},"Model Name"),/*#__PURE__*/React.createElement("input",{type:"text",value:aiConfig.model,onChange:e=>setAiConfig(prev=>({...prev,model:e.target.value})),className:"bg-zinc-850 text-zinc-200 p-1.5 rounded border border-zinc-800 focus:outline-none focus:border-purple-600 font-mono text-xs",placeholder:"gpt-4o-mini"})))),/*#__PURE__*/React.createElement("div",{className:"h-9 bg-[#222] border-b border-zinc-800 flex items-center px-3 gap-2 shrink-0 select-none"},/*#__PURE__*/React.createElement("div",{className:"flex items-center gap-1 bg-zinc-900 border border-zinc-700 rounded px-1.5 py-0.5 shadow-lg",title:"Kéo để di chuyển toolbar",style:{cursor:'grab'}},/*#__PURE__*/React.createElement("div",{className:"flex items-center gap-0.5 mr-1 text-zinc-600"},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":"grip-vertical",className:"w-3 h-3"}))),/*#__PURE__*/React.createElement("button",{onClick:()=>{setActiveTool('select');showToast('Select Tool','info');},className:`w-7 h-7 flex items-center justify-center rounded ${activeTool==='select'?'bg-cyan-700 text-white':'text-zinc-400 hover:text-zinc-200 hover:bg-zinc-800'}`,title:"Select Tool (V)"},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":"mouse-pointer",className:"w-3.5 h-3.5"}))),/*#__PURE__*/React.createElement("button",{onClick:()=>{setActiveTool('grab');showToast('Grab Tool','info');},className:`w-7 h-7 flex items-center justify-center rounded ${activeTool==='grab'?'bg-cyan-700 text-white':'text-zinc-400 hover:text-zinc-200 hover:bg-zinc-800'}`,title:"Grab Tool (H)"},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":"hand",className:"w-3.5 h-3.5"}))),/*#__PURE__*/React.createElement("div",{className:"flex items-center gap-0.5 border border-zinc-700 rounded bg-zinc-850 px-0.5"},/*#__PURE__*/React.createElement("button",{onClick:()=>{setActiveTool('razor');showToast('Razor Tool','info');},className:`w-7 h-7 flex items-center justify-center rounded ${activeTool==='razor'?'bg-cyan-700 text-white':'text-zinc-400 hover:text-zinc-200 hover:bg-zinc-800'}`,title:"Razor Tool (C)"},/*#__PURE__*/React.createElement("svg",{className:"w-3.5 h-3.5 text-orange-400",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round"},/*#__PURE__*/React.createElement("path",{d:"M6 3h12a2 2 0 0 1 2 2v2a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z"}),/*#__PURE__*/React.createElement("path",{d:"M4 9h16l-3 9H7z"}),/*#__PURE__*/React.createElement("circle",{cx:"12",cy:"6",r:"1"}))),/*#__PURE__*/React.createElement("button",{onClick:handleGlueTracks,className:"w-7 h-7 flex items-center justify-center rounded text-zinc-400 hover:text-purple-400 hover:bg-zinc-800",title:"Glue Clips"},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":"link",className:"w-3.5 h-3.5"})))),/*#__PURE__*/React.createElement("button",{onClick:()=>{setActiveTool('pen');showToast('Pen Tool','info');},className:`w-7 h-7 flex items-center justify-center rounded ${activeTool==='pen'?'bg-cyan-700 text-white':'text-zinc-400 hover:text-zinc-200 hover:bg-zinc-800'}`,title:"Pen Tool (P)"},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":"pen-tool",className:"w-3.5 h-3.5"}))),/*#__PURE__*/React.createElement("div",{className:"w-[1px] h-5 bg-zinc-700 mx-0.5"}),/*#__PURE__*/React.createElement("button",{onClick:handleCutTrack,className:"w-7 h-7 flex items-center justify-center rounded text-zinc-400 hover:text-red-400 hover:bg-zinc-800",title:"Cut (Ctrl+X)"},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":"scissors",className:"w-3.5 h-3.5"}))),/*#__PURE__*/React.createElement("button",{onClick:handleCopyTrack,className:"w-7 h-7 flex items-center justify-center rounded text-zinc-400 hover:text-blue-400 hover:bg-zinc-800",title:"Copy (Ctrl+C)"},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":"copy",className:"w-3.5 h-3.5"}))),/*#__PURE__*/React.createElement("button",{onClick:handlePasteTrack,className:"w-7 h-7 flex items-center justify-center rounded text-zinc-400 hover:text-emerald-400 hover:bg-zinc-800",title:"Paste (Ctrl+V)"},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":"clipboard",className:"w-3.5 h-3.5"}))),/*#__PURE__*/React.createElement("div",{className:"w-[1px] h-5 bg-zinc-700 mx-0.5"}),/*#__PURE__*/React.createElement("button",{onClick:addNewTrack,className:"px-2 py-1 bg-cyan-600 hover:bg-cyan-500 text-white font-semibold rounded text-xs flex items-center gap-1 shadow transition",title:"Thêm Track Mới (Ctrl+I)"},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":"plus",className:"w-3.5 h-3.5"})),/*#__PURE__*/React.createElement("span",null,"Track")),sessionTabs.some(s=>s.id===activeTab)&&/*#__PURE__*/React.createElement(React.Fragment,null,/*#__PURE__*/React.createElement("div",{className:"w-[1px] h-5 bg-zinc-700 mx-0.5"}),/*#__PURE__*/React.createElement("button",{onClick:()=>handleSaveSectionTab(activeTab),className:"px-2 py-1 bg-emerald-600 hover:bg-emerald-500 text-white font-semibold rounded text-xs flex items-center gap-1 shadow transition",title:"Lưu Section vào Main Session"},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":"save",className:"w-3.5 h-3.5"})),/*#__PURE__*/React.createElement("span",null,"Lưu Section"))),/*#__PURE__*/React.createElement("div",{className:"w-[1px] h-5 bg-zinc-700 mx-0.5"}),/*#__PURE__*/React.createElement("button",{onClick:handleUndo,disabled:undoStack.length===0&&(!window.UndoRedoEngine||!window.UndoRedoEngine.canUndo()),className:"w-7 h-7 flex items-center justify-center rounded text-zinc-400 hover:text-zinc-200 hover:bg-zinc-800 disabled:opacity-30",title:"Undo (Ctrl+Z)"},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":"undo",className:"w-3.5 h-3.5"}))),/*#__PURE__*/React.createElement("button",{onClick:handleRedo,disabled:redoStack.length===0&&(!window.UndoRedoEngine||!window.UndoRedoEngine.canRedo()),className:"w-7 h-7 flex items-center justify-center rounded text-zinc-400 hover:text-zinc-200 hover:bg-zinc-800 disabled:opacity-30",title:"Redo (Ctrl+Y)"},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":"redo",className:"w-3.5 h-3.5"})))),/*#__PURE__*/React.createElement("div",{className:"w-[1px] h-5 bg-zinc-800 mx-0.5"}),/*#__PURE__*/React.createElement("button",{onClick:()=>seekPlaybackTo(0),className:"w-7 h-7 flex items-center justify-center bg-zinc-800 hover:bg-zinc-700 text-zinc-200 rounded border border-zinc-700 transition",title:"Quay lại đầu"},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":"skip-back",className:"w-3.5 h-3.5"}))),/*#__PURE__*/React.createElement("button",{onClick:()=>{const isSubTab=subTabs.some(sub=>sub.id===activeTab);if(isSubTab){const st=subTabs.find(s=>s.id===activeTab);if(!st)return;const left=st.selectionStart!==null&&st.selectionEnd!==null?Math.min(st.selectionStart,st.selectionEnd):null;if(left!==null)seekPlaybackTo(left);}else{if(selLeft!==null)seekPlaybackTo(selLeft);}},className:"w-7 h-7 flex items-center justify-center bg-zinc-800 hover:bg-zinc-700 text-zinc-200 rounded border border-zinc-700 transition",title:"Đầu vùng chọn"},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":"step-back",className:"w-3.5 h-3.5"}))),/*#__PURE__*/React.createElement("button",{onClick:handlePlayPause,className:`w-7 h-7 flex items-center justify-center rounded border transition ${isPlaying?'bg-emerald-600 text-black border-emerald-500 hover:bg-emerald-500':'bg-cyan-600 text-white border-cyan-500 hover:bg-cyan-500'}`,title:isPlaying?"Tạm dừng":"Play"},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":isPlaying?"pause":"play",className:"w-3.5 h-3.5 fill-current"}))),/*#__PURE__*/React.createElement("button",{onClick:handleStop,className:"w-7 h-7 flex items-center justify-center bg-zinc-800 hover:bg-zinc-700 text-zinc-200 rounded border border-zinc-700 transition",title:"Stop"},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":"square",className:"w-3.5 h-3.5 fill-current"}))),/*#__PURE__*/React.createElement("button",{onClick:handleRecordClick,className:`w-7 h-7 flex items-center justify-center rounded border transition ${recordingState==='RECORDING'?'bg-red-600 text-white border-red-500 hover:bg-red-500 animate-pulse':recordingState==='COUNT_IN'?'bg-amber-500 text-black border-amber-400 hover:bg-amber-400 animate-pulse':'bg-zinc-800 text-red-500 border-zinc-700 hover:bg-zinc-700 hover:text-red-400'}`,title:recordingState==='RECORDING'?"Đang ghi âm...":recordingState==='COUNT_IN'?"Chuẩn bị ghi âm...":"Ghi âm (Record)"},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":"circle",className:"w-3.5 h-3.5 fill-current"}))),/*#__PURE__*/React.createElement("button",{onClick:()=>{const isSubTab=subTabs.some(sub=>sub.id===activeTab);if(isSubTab){setSubTabs(prev=>prev.map(s=>{if(s.id!==activeTab)return s;const right=s.selectionStart!==null&&s.selectionEnd!==null?Math.max(s.selectionStart,s.selectionEnd):null;return right!==null?{...s,currentTime:right}:s;}));}else{if(selRight!==null)setCurrentTime(selRight);}},className:"w-7 h-7 flex items-center justify-center bg-zinc-800 hover:bg-zinc-700 text-zinc-200 rounded border border-zinc-700 transition",title:"Cuối vùng chọn"},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":"step-forward",className:"w-3.5 h-3.5"}))),/*#__PURE__*/React.createElement("button",{onClick:()=>{const isSubTab=subTabs.some(sub=>sub.id===activeTab);if(isSubTab){setSubTabs(prev=>prev.map(s=>{if(s.id!==activeTab)return s;const duration=s.buffer?s.buffer.duration/(s.speed||1.0):0;return{...s,currentTime:duration};}));}else{setCurrentTime(maxDuration);}},className:"w-7 h-7 flex items-center justify-center bg-zinc-800 hover:bg-zinc-700 text-zinc-200 rounded border border-zinc-700 transition",title:"Đến cuối"},/*#__PURE__*/React.createElement("span",{className:"inline-flex items-center shrink-0"},/*#__PURE__*/React.createElement("i",{"data-lucide":"skip-forward",className:"w-3.5 h-3.5"}))),/*#__PURE__*/React.createElement("div",{className:"w-[1px] h-5 bg-zinc-800 mx-0.5"}),/*#__PURE__*/React.createElement("button",{onClick:()=>{setIsLoopingSelection(prev=>!prev);// Sync loop state with active sub-tab (piano roll / audio editor) const activeSub=activeTab&&subTabs.find(s=>s.id===activeTab&&['PIANO_ROLL','AUDIO_CLIP_EDITOR','SECTION_EDITOR'].includes(s.type));if(activeSub){const newLoop=!activeSub.isLooping;setSubTabs(prev=>prev.map(s=>s.id===activeTab?{...s,isLooping:newLoop}:s));if(newLoop){const bpmVal=parseInt(bpm)||120;const beatSec=60.0/bpmVal;let maxEnd=0;if(activeSub.type==='PIANO_ROLL'){(activeSub.notes||[]).forEach(n=>{const end=(n.start_beat||0)+(n.duration_beats||1);if(end>maxEnd)maxEnd=end;});}else if(activeSub.type==='SECTION_EDITOR'){(activeSub.clips||[]).forEach(c=>{const end=(c.startTime||0)+(c.duration||0);if(end>maxEnd)maxEnd=end;});}else if(activeSub.type==='AUDIO_CLIP_EDITOR'){const dur=activeSub.buffer?.duration||0;if(dur>maxEnd)maxEnd=dur;}const loopEndTime=activeSub.type==='PIANO_ROLL'?Math.max(maxEnd,16)*beatSec+1.0:Math.max(maxEnd,1);setSubTabs(prev=>prev.map(s=>s.id===activeTab?{...s,selectionStart:0,selectionEnd:loopEndTime}:s));}}else{// Main timeline / section tab: nếu user đã chọn vùng loop riêng → // giữ nguyên (loop vùng chọn — nhánh updatePlayhead selLeft/ // selRight). KHÔNG auto-derive selection: LOOP bật → loop tại diff --git a/app/templates/index.html b/app/templates/index.html index e4a69d4..34056d6 100644 --- a/app/templates/index.html +++ b/app/templates/index.html @@ -4,7 +4,7 @@ - SonicForge Studio - Professional DAW Editor + ScoreFX Studio - Professional DAW Editor - + @@ -51,7 +51,7 @@ - +