From 814f216ea786be8e692694d05c304bac444e19a8 Mon Sep 17 00:00:00 2001 From: Aditya Gupta Date: Mon, 20 Jul 2026 16:16:27 +0530 Subject: [PATCH] feat(gui): Minor UI Improvements to InteractView --- apps/gui/next-env.d.ts | 2 +- apps/gui/public/calendar_logo.png | Bin 0 -> 607 bytes apps/gui/public/clock_day_icon.png | Bin 0 -> 1092 bytes apps/gui/public/clock_night_icon.png | Bin 0 -> 1467 bytes apps/gui/public/map_pointer_icon.png | Bin 0 -> 463 bytes apps/gui/src/components/play/HandoffModal.tsx | 8 +- apps/gui/src/components/play/InteractDock.tsx | 188 ++++++++++++++++++ apps/gui/src/components/play/InteractView.tsx | 73 ++----- apps/gui/src/components/play/PlayView.tsx | 45 +---- apps/gui/src/lib/simulation-types.ts | 5 + apps/gui/src/lib/simulation/alias-handoff.ts | 2 +- .../src/lib/simulation/simulation-manager.ts | 19 ++ apps/gui/src/lib/simulation/turn-executor.ts | 3 +- apps/gui/src/lib/utils.ts | 38 ++++ 14 files changed, 288 insertions(+), 95 deletions(-) create mode 100644 apps/gui/public/calendar_logo.png create mode 100644 apps/gui/public/clock_day_icon.png create mode 100644 apps/gui/public/clock_night_icon.png create mode 100644 apps/gui/public/map_pointer_icon.png create mode 100644 apps/gui/src/components/play/InteractDock.tsx diff --git a/apps/gui/next-env.d.ts b/apps/gui/next-env.d.ts index c4b7818..9edff1c 100644 --- a/apps/gui/next-env.d.ts +++ b/apps/gui/next-env.d.ts @@ -1,6 +1,6 @@ /// /// -import "./.next/dev/types/routes.d.ts"; +import "./.next/types/routes.d.ts"; // NOTE: This file should not be edited // see https://nextjs.org/docs/app/api-reference/config/typescript for more information. diff --git a/apps/gui/public/calendar_logo.png b/apps/gui/public/calendar_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..11956fcbcf027b3166ab6a71b340309cafcafbe4 GIT binary patch literal 607 zcmeAS@N?(olHy`uVBq!ia0vp^2|ygc!3HFsJt~;Wz`&&D>EaktG3V_adwu6XiQ^xq z9dk+Az_r^^C91jeh*DhR(R1qpy~Rb#WcM<4y7p|-^Ei^A&Zghssbp#&UM#=;`HS~k z_RW90zo>#6LlTQZSmy=zcQ%$^{=RkF`{Mc1Yw_=9IIwmIHb^jbeBI1vaDKEK^2`m-Vk_PVuA&efHH$2oY?r_bA#OHJN0W{?CRix z$oxJVH{s^*mu1fV4Uc#2-5-3vX=BjZncp7%nvyAhch77ysC&d7zi(QSb^5B)djH%r z3z&co?_oI7bi85jfbLd}f!udfo8m@Bf0ziS@PuP!}GvI&jb`;Rra0LcLt)|Li>bJ9)nQpRfPw z#bAM|XZYSc>HP1_5$q~$puj(4&;Q}u>G*gb}@Y+2q>Hd8*W@! z%gpw-e&5FLbwAd191#GC?o2<_(f7X3j}xrGeBS?K%pV*k{sJZ(22WQ%mvv4FO#lT~ B6QTeB literal 0 HcmV?d00001 diff --git a/apps/gui/public/clock_day_icon.png b/apps/gui/public/clock_day_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a6dc2ecaf9c5639d6ef03e858c6ab0165ec2cdd GIT binary patch literal 1092 zcmV-K1iSl*P) zJ#N%c5XZ+TNJ#XdWNU7~1rQfViBfR|i0Eh#a0Mzv$pxZZfE!SUGW1B1D3)S9n|Rja znR)O3o>ypoP2~97{_VUEkDmuxk8R`a4~@4!%Y!v``ajd-F3y_x_4|jWJ3T*pr_E}5 z&S@x^7I$l6q-ElQNktUw4|)yKP%y~5vnA3E(M&x3cnv%RqTd&r+5bC^3vw;eP%t%j zWieJtBcmqXynRYUL{C2bnoKkNe=pKp>v*Z~+N7aiP72nUjg_@VT4<(vk;ij>wwX-N zoDcs3L#C#oU?Nw4(M-)q84JB=G1R-Ao7>H9`A65T^*P2a{PJAaDh&nWx#~q`)>2!_ zOGCZXnwo}!St{jcdx=_`$w&kDrjF*3VP4eCz0u=&aV=n`g|%4vr=eiXdT8r@OAFb; zVS^4z@!RQg8q!>EtmW%q^^T>XVCLcgq*T{hG_`GTxqmk7&&!9d?LEHyyE_hNjE$E1 zX($*ohN8@r^P{F7Y$s?Y!^_`X?$)?#ch1W z%;&G45fRakFF$A3lk+W8t>e2_>QCyWX($*qhH9}hYSh(u|D?fJM&1aU*gO4WU!Q$H z{$n)P8%xtrFeN?q6JC9u#!?MwB(JA&7t=PbLQPxMjCPv%zj8)pFp@`6zscrKvoPGF7A0 zOfP9DnC^x$rKZXrc4?|bX^*{^G!%^6(Aw-b4a-!CW>TqP@|l#(G}$lbJl`}FjA|&V zXWfft>UKNr1Q>>4vb;t#Hp=C+j1`_9F6OtBhJsNIRWmmV^E16@rlQcEFnE87)^cem znBr2t7aTLAXt7g!_QmFMuUYB&rlDZmhW0A$y>0qv+g}{t_#XK*m%rX(*W04UL*9u}szS0=)C1q@iF2TIns1S~H{DwekieTI{s)Mbl6) zCp4xH@pI+YIrXi~WVD#tDsMn$GN++n)KdN~BVt2D^+vTeQ{t_sdeLI1Bn<^~-%wX9 zjka}rn<*(Z)jH373#1dx-cveOqNe71N-Hy0%6F}o_NMk1X1zC`hJtbTHlgdK$Bwt& zDM>@Y9POARYmsA)92w2WZK|bJ)}JKDZ8}m)o}`3Kt$of7d%s@U4$4d>4Fyv@erW5M z+A4;k&1BM0Fo>totBfZaB{0Hm)ip^&!N5leXB=Z36OkiVJ{Uv2qlC8_&pr(W({e}; z*B2LheQBZf7Z#W_6im-SXF}fysil{Zk~9>|DqqDK$uE8-Hva(nqdH6&#DC=g0000< KMNUMnLSTZTlNJpC literal 0 HcmV?d00001 diff --git a/apps/gui/public/clock_night_icon.png b/apps/gui/public/clock_night_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..37e08d4c57e521c04e6110546bef5d2058985591 GIT binary patch literal 1467 zcmX9;c~sI_6#il2g5koTDM>k*r4ucV;mObu5f`!ymkg*;Y(OpL&|=usq+(_1G%1PZ zhNG4{8X`Jo=8|h!E+d-Ks5Op-f=g;Ogxc_P{&?@5bKiHD_ucQ^B(kp;9EO4c001X> z6a6(OSF>XEbTs=0#`#f=i4;ov(za=(gLN*G^sRS9eP*I0WW$s%Xh$B?ml2cpYg zxj1#`a>$OMIa`S4rV4ZMd2Ha!74LH}n~eSUd+$3N@c}(8^Wa#T!9sVL*UZGog+`&L zi|T!fxHehAQpNYirrbDC|`RR6fy#c-DD?@bfY!N-^LFc|f%I#R&ftO9Mk zF@8|#y&`1Bqv9?S|tKfEzHyF%|4_rw{GaoSBiHLHGirno8z2GrLh^2aN;~hKs@>2bP8?%5rBf;{uB|9u z^(rF!)>u8Vfqz~!68cO*?26bv217q%MmL$&^Ear!diBxn`LX7T81(oLoT8;A(^~x$ zEdMq(AFR^|mwDdv4e!fN*9k>q?3)EO%PAYW68)JWkDXG$6eU@sW@&-X zf02<~ZnmJFX{~EytNi3~uC9+hgspvio|v04(#o6MM7Sujt=5^6>+WKW&XAvrbwE<( z_Way*D4)`D@AyPo^Gbh)6van5+`t5O)(G8dOlx&sMhFYSjljN$h71Wk?R=R-f}_u> z1Y?zq<>Y@Vm_*8wkOKHrR?>Blw_asSnu$~d{OTbAI>dlc29(c$f!?W)H?ok$bci3R zZ-(d}{mBmrrlpaI$fx}WM}b1v{y=8BR{BQkMNE)2+ic7 zH#(h@{shU}Jt=8pz$lIdrO-<|1hgn|a}lM>1f&2%4(HMCGT{e5_|HES*fA<`BGHa) z8WDGgtYxJ~=PL0ZC~d_GpVgW~VS0Bm6VkIagx!O6Y!~76!vAO(Fy>zv_9$I1DO$*7Vs4?j;lmrbHC_zgp0pwEK z+$GlC7lN+^yT)+VG7Z3@4$QV_q_qFH8(k=8;#7lU-nrCL=6$fmMZJY6iW=!*p@^D7 zL`T$n=B%3w(1$~9#5cmU2a?3tFx#>RClr|FrOHt^tjrQrky&&Y&m#$H8|0Oicham@ z=g9;uJd}zL3S)4=7Chvl8Ps@9wlie$wa9gvGedQ$I|b=c_)x#sS{O`ZsozbxVO8?` zeMg{Rz~R~aF*)UP^)p#>#K7)1uOn~D7E3n8O$*yZ!~I(oww56OBbN^jKQL^?@Tf7<5(9mar<}ESPZ_5CD>v>20NF3 zw(#_@(z>GtsrY(0dN@@V%y+iYiL)S!-j+^(d7#`as3a8%vb|ihf%#TgzzCT8wu}XV zfhPWI?%h*xtmEL8#U-Dn81MgMTD>ylKMR8g^cZ%Efpr>YM!5*F4ihHuq4F)e1_NV# z*T>OqwC&!F8-99^$>fkQVD>obLuQH5#FC01&)bq|PLwmUn= z98qF(q^{BrRNhkr_NH%+InRUDReYMP6``jUk^RmTsQP*B(4G_bG(#C6dH52m2=s*i E00Op_0{{R3 literal 0 HcmV?d00001 diff --git a/apps/gui/public/map_pointer_icon.png b/apps/gui/public/map_pointer_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..44b8b1c57b33f9c56527d2e0b156c1ea1b60dbcb GIT binary patch literal 463 zcmeAS@N?(olHy`uVBq!ia0vp^J|N7&1|*M957cI0V4UXZ;uumf=k4viUd)an4i9@* z+{oIxZCX=qoXZ58B!L>iXvL+uK}W;3T)4Kg^>E_za~*TmM}OK}G$ST$a;d56?%C(} zZ94z)^67`gQ-A(bpPBzpUXsU1;>w@Ta_QGT*WCUk(t7=Ibm5+#H^h&xO`oL=luI$l z`1pLc*=D_W@?DR=FF(F?`Jd2lKE2*JTyRoLm z_;{X4-<*MU%hPSA%$k3 zd9%)Mc=LX@8`Nx&B9H+AzqY3A+17o%?#r!B-}g#Sgg8p$@4c>B*Y {chunks.map( ( - chunk: { content: string; importance: number }, + chunk: { + content: string; + importance: number; + quotes?: string[]; + retainInBuffer?: boolean; + involvedEntityIds?: string[]; + }, index: number, ) => (
void; + onSubmitAction: (e: React.FormEvent) => void; + onPauseRequested: () => void; + onResumeRequested: () => void; + onStopRequested: () => void; +} + +export function InteractDock({ + snapshot, + loading, + playerInput, + setPlayerInput, + onSubmitAction, + onPauseRequested, + onResumeRequested, + onStopRequested, +}: InteractDockProps) { + const router = useRouter(); + + return ( +