From 2e07390782fef67bf4680eb4205d461d4aa1e85b Mon Sep 17 00:00:00 2001 From: Pavel Date: Mon, 21 Sep 2026 19:45:09 +0400 Subject: [PATCH] logo upd --- docs/app/brand.css | 22 +++++++++ docs/app/layout.jsx | 26 +++++++--- docs/public/apple-touch-icon.png | Bin 0 -> 1633 bytes docs/public/favicon-96x96.png | Bin 0 -> 867 bytes docs/public/favicon.ico | Bin 0 -> 15086 bytes docs/public/favicon.svg | 1 + docs/public/favicons/apple-touch-icon.png | Bin 17354 -> 0 bytes docs/public/favicons/favicon-16x16.png | Bin 1162 -> 0 bytes docs/public/favicons/favicon-32x32.png | Bin 1929 -> 0 bytes docs/public/favicons/site.webmanifest | 19 ------- docs/public/logo-b.svg | 11 +++++ docs/public/logo-w.svg | 18 +++++++ docs/public/site.webmanifest | 15 ++++++ docs/public/web-app-manifest-192x192.png | Bin 0 -> 1853 bytes docs/public/web-app-manifest-512x512.png | Bin 0 -> 6327 bytes docsgpt/core/models/alibaba.yaml | 15 ++++++ docsgpt/core/models/anthropic.yaml | 6 +++ docsgpt/core/models/openai.yaml | 6 +++ docsgpt/core/models/zai.yaml | 15 ++++++ frontend/index.html | 7 ++- frontend/public/apple-touch-icon.png | Bin 0 -> 1633 bytes frontend/public/favicon-96x96.png | Bin 0 -> 867 bytes frontend/public/favicon.ico | Bin 15086 -> 15086 bytes frontend/public/favicon.svg | 1 + frontend/public/site.webmanifest | 15 ++++++ frontend/public/web-app-manifest-192x192.png | Bin 0 -> 1853 bytes frontend/public/web-app-manifest-512x512.png | Bin 0 -> 6327 bytes frontend/src/App.tsx | 10 +++- frontend/src/Hero.tsx | 14 ++++-- frontend/src/admin/AdminUI.tsx | 2 +- frontend/src/agents/SharedAgentCard.tsx | 2 + frontend/src/assets/cute_docsgpt3.svg | 9 ---- frontend/src/assets/full-logo-b.svg | 19 +++++++ frontend/src/assets/full-logo-w.svg | 26 ++++++++++ frontend/src/assets/full-logo.svg | 26 ++++++++++ frontend/src/assets/logo-b.svg | 11 +++++ frontend/src/assets/logo-w.svg | 18 +++++++ frontend/src/assets/logo.svg | 18 +++++++ frontend/src/teams/TeamSwitcher.tsx | 49 ++++++++++++++----- 39 files changed, 326 insertions(+), 55 deletions(-) create mode 100644 docs/app/brand.css create mode 100644 docs/public/apple-touch-icon.png create mode 100644 docs/public/favicon-96x96.png create mode 100644 docs/public/favicon.ico create mode 100644 docs/public/favicon.svg delete mode 100644 docs/public/favicons/apple-touch-icon.png delete mode 100644 docs/public/favicons/favicon-16x16.png delete mode 100644 docs/public/favicons/favicon-32x32.png delete mode 100644 docs/public/favicons/site.webmanifest create mode 100644 docs/public/logo-b.svg create mode 100644 docs/public/logo-w.svg create mode 100644 docs/public/site.webmanifest create mode 100644 docs/public/web-app-manifest-192x192.png create mode 100644 docs/public/web-app-manifest-512x512.png create mode 100644 docsgpt/core/models/alibaba.yaml create mode 100644 docsgpt/core/models/zai.yaml create mode 100644 frontend/public/apple-touch-icon.png create mode 100644 frontend/public/favicon-96x96.png create mode 100644 frontend/public/favicon.svg create mode 100644 frontend/public/site.webmanifest create mode 100644 frontend/public/web-app-manifest-192x192.png create mode 100644 frontend/public/web-app-manifest-512x512.png delete mode 100644 frontend/src/assets/cute_docsgpt3.svg create mode 100644 frontend/src/assets/full-logo-b.svg create mode 100644 frontend/src/assets/full-logo-w.svg create mode 100644 frontend/src/assets/full-logo.svg create mode 100644 frontend/src/assets/logo-b.svg create mode 100644 frontend/src/assets/logo-w.svg create mode 100644 frontend/src/assets/logo.svg diff --git a/docs/app/brand.css b/docs/app/brand.css new file mode 100644 index 00000000..6394995b --- /dev/null +++ b/docs/app/brand.css @@ -0,0 +1,22 @@ +/* + * Navbar brand mark. The docs app has no Tailwind build of its own (Nextra + * ships its utilities under an `x:` prefix and generates no `dark:` variants), + * so the light/dark swap of the monochrome logo is done here. Nextra's + * next-themes setup toggles `.dark` on . + */ +.brand-logo { + height: 28px; + width: auto; +} + +.brand-logo-dark { + display: none; +} + +html.dark .brand-logo-light { + display: none; +} + +html.dark .brand-logo-dark { + display: block; +} diff --git a/docs/app/layout.jsx b/docs/app/layout.jsx index 040d1781..1f83ef09 100644 --- a/docs/app/layout.jsx +++ b/docs/app/layout.jsx @@ -1,4 +1,3 @@ -import Image from 'next/image'; import { Analytics } from '@vercel/analytics/react'; import { Banner, Head } from 'nextra/components'; import { getPageMap } from 'nextra/page-map'; @@ -6,9 +5,10 @@ import { Footer, Layout, Navbar } from 'nextra-theme-docs'; import 'nextra-theme-docs/style.css'; import { DocsGPTChatWidget } from '../components/DocsGPTChatWidget'; -import CuteLogo from '../public/cute-docsgpt.png'; import themeConfig from '../theme.config'; +import './brand.css'; + const github = 'https://github.com/arc53/DocsGPT'; export const metadata = { @@ -24,7 +24,12 @@ const navbar = ( - DocsGPT logo + DocsGPT logo + DocsGPT Docs } @@ -54,14 +59,21 @@ export default async function RootLayout({ children }) { return ( + + + - - - + + diff --git a/docs/public/apple-touch-icon.png b/docs/public/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..a27aacb81368ac5fe5a8d96121b6733ee931e4b9 GIT binary patch literal 1633 zcmcJQSyYo(5XZkHkPr+7q=-a;y3_>@Sg34KFi~~{abeL4f)NR5P?|_XAb=uTk77^{ zA_B=LC}Js_B+OM-^`sm4|8w$c)Mz8 z;xz#P&~kTkIs%_O)zU!2yF&-s3INbM+?`0r7+EvJq{tz=Z?AvaNbRfhsi0+W$g_|h z-M%1)Xi#Pvps{oNuIElxRwl3H{c^-fzWezpgKPIgm%i7bp-M7F><%NI_0kBS8>=Vzbu>efGq%3@uk0Evb(LKgj}OMwY>akWlD|E%z`x3q#DDMG|Z^Wvwdl7gRPn$Cxh#R7H1lyW_X`upel{h$dlz^-b&_eJCie zCdnJ+6D!1mUWxG?dVIO5s^C+Sk)yGKH7c!5k3X@hjZVaP2+u_VROA9VXepeitpTxP zs1CK|M(|Sw4v#aH?ufixl=~LejmmPKQ$$G*s;@TyE5X+gYJ5{ti)XPQ+j# zYE13S#bQ<5PsUGYnd&e#gruhe!|T8#HE}s$wDmu9l*qy@F|t5Dg`+(Emtmfy8tfqU zODc`=kT;^**kBO@U&_Gxfk0rf?f9XBdbjAl>uGYFs@4r{^(jr!%{jSfdR4E9P96u8 zOlFBle=V~%m@OlL>a3P%atsufuwPK}I~_u>IQ=b07mB8nUf@o%t9Kiksf#6>KXC6E zh?U&CU1grIJyz=%#x@W0hhi&bXs(xs=jU_92OC{|5DL3p&?d*br`az?#JOqJ$KpRS zE;(0Vazf_;(FQ zw2mCyxJ$&Kj8E$s_En4qT zg{jyu)pO1DumdD{9HAFgu~vMGfqs`EPgopU&j`9*$(jq>W@$>P`ST%`(eS37@_Om# zTXFPk|D82lN4&Alyim5jtf}Z%`;NHWj63;;^2V&Q4YalS{Fmq3!)?TB5gDb(aUN2v zHuaIL-yW_HVS7SaJRWp=fO`4ODZU)L=jQ4JuQw2+vt o_^kAACC#C};$Z#1;oX2p4KQlU^GH7ge;t6kv$s>x{@^SB0DoHpBLDyZ literal 0 HcmV?d00001 diff --git a/docs/public/favicon-96x96.png b/docs/public/favicon-96x96.png new file mode 100644 index 0000000000000000000000000000000000000000..5a3a5669a55a7d37606fbd0a662a4522ab3912c5 GIT binary patch literal 867 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VAk? zCy3u+*!_U*2CMl2y&a5Y2YEMeqe=bqo4-G9`RVHHy*~5*J6X#6wJ_-Ik6*rir+)0c zIV=m9|IXZJ*Vm%RV6E-Uuxo-W2O~qX0D}RLau#54-l?s|_`*R?jZuQ7iJ?J}hv&hk zXLiv_`>#BB^6TyEoa=H9=Vln_G}!*lS+_3WmXkn(3WvAEOYacI3Z>QWG@phuY|?%- zW1R4Czt{j+DCNm} zBXO<9pW)e|pA8Hg2Pzq+#C09&rvIKAshbX35PLky?dVbK(f#^fuw_N+49jRKir>tYo4uH!>()d84Bv1*R&pA zxqS75$V+al0o(0M7!z(T3ikBOt{$`aD=gP2uQ~CK|Fy*_ndYKZ>pnUhS$s#&Xm`B` z%kL-enF8$9=EVE*y%lbmA|)4{X{>8M*@1ogrts#YZEac%YZP?KC(U3;U@SZ$CKt@0 z*s(cg+cdq64vcG7C#^Y^u`}}R2YHUC@>3qm&uOlx@PFfIcTfDOa}AzEizapd|D=;k UpPbty1k5}Pp00i_>zopr0IIfdL;wH) literal 0 HcmV?d00001 diff --git a/docs/public/favicon.ico b/docs/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..66717231aa64cfd1044c9129edeb15d8c5f881c2 GIT binary patch literal 15086 zcmeI3O>QJb5QVelk-VIdSh8?$5G-ebMzC^n0LP{rtk1yu47|W+;7iT??m$qR;v7E*8}$SxEG;HN z5QU}p!p!FudLFxvrT^Flp#sYbWP9(lF3Jz^H9|>1wga0yw^^6Oa}L!tZc|fuqd*=SF#-QnP+O9z9JRa>H-75q@AWaW-Cxs< zYD!Y8n;NU}6PwCY%B%60YUcQB{KV#P4dvGOhw|t8V(HD5-(JA{?6)MQz})l5^P3X+ z0^HuK(qf&zayWi|$LdlGQ{Y(crbNB~H?zeGzb(*XoxlDJaKIscTonVmfPE`?fO zVl|lJbHtRq)ZEU)eCH5T6YsgCKF9p@SaRl+>(uj~a(4D{s`*bnH?uE2KQo_eZl8aN ze?xMvRiEzrd_CLsY}aRC`DcJ1eILR#`TGzq(TzS|BrSIcHzC}iuS58Zz6xQF zel7j|rfn`mxV_!9pD#lA{fA9^C;jKooA&Qb2(NzKwD;1N?WS#|-=kG3|BWBFCi*sLM|ppT7!*{-*l^oxbQ4Z7upYB zY}?z{`*wG;Z%bc0MZkx4e}AF79B?UI3D@mjcP^Q5Poe)}*4V^G8i_2dBRfQxAn3P|%jKh?xbwfIZV sus`3m+B3%25fMe0Pd*_j=dgx9SMOKPZPhb^rhX literal 0 HcmV?d00001 diff --git a/docs/public/favicon.svg b/docs/public/favicon.svg new file mode 100644 index 00000000..43ffa4ca --- /dev/null +++ b/docs/public/favicon.svg @@ -0,0 +1 @@ +DocsGPT diff --git a/docs/public/favicons/apple-touch-icon.png b/docs/public/favicons/apple-touch-icon.png deleted file mode 100644 index 1ab5b76c764720845a8934dde9a00d55fb09ae68..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17354 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 diff --git a/docs/public/favicons/favicon-16x16.png b/docs/public/favicons/favicon-16x16.png deleted file mode 100644 index 8084681de32da34095fe592d4838c680492bea9b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1162 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>8K;1l8sRPgO!-Rouf z|NrOxzm$JxO5w@w^1SA`nM+ss&Rykq_~^ByjF=}6*U1;Ae*Iv!dh>DNva>oZ;rH*K zH|sj1-lU|Mo3C1ZQmX2NWYuZ4##t&;4H-lY7(`hZ7=(0!*DB8u(+=OHGVj&Wg3lZC ze;>%ZJ-P7FjQrP&^1iOk{jnzZ+oHT9-IbSmia*WG`7$>rp>J_{<@Bz?3G?&Xx0lr% zt1dlPT6nEA|4D1!yU979X5@G-SsUKFFsEupYtDo@DeZ?N3r|PoT}jNnU!3!CdTzk! z)9!1xc=s=w;orT?wtACM!G7obt4TT6lXFtPz7ITq!C~bli|VOfF+H;^`j^Spt`I6( zuUHuU{E5e*;}St7Mox8o>Rn4j8`iLu?Bp#yDOw)?>V@C=OPsE0Oxi(Wx;bfz^^Ho+ z`?yPw2$i1@E6@D=KJ>~}fq*Wk7AWn@~1(hsU#qyJqRhb{&_#QZ_UfIXzk-@Iv z&8Zd0s~#z>m|-bfl%>!tpc^Qt5h|&iq$X41C0Es|*t=C_p0IwPm`0?Wa+;=0MW}q! z6s5^qRp#I9DtOSD_iA$P+W6WX(WUW4)9PX-tkN$na_d>jU!qz!Dcrb8vulp2da23u zW&i*GUmuon5E!FfB|(0m)Ik7ns!E8@e{m+5i*xd~sf@DzIg7sk-M9J4VZOrazyAEY zyQxq`aPIF@cm6h+Dzo?f{q^_m#N)C_Ur(HUn{}|y+Va8Qrj>_GFwmB6vHCfQ1yYwxVxzDAN!LP1$ff&Jjq&=8Eak7aXC5R0H?&vDN{mcL<%siS(WulYF1Q%-Ry0C;pP47{r$K?aIiTjymLp4^ywqHo`BL(b5)aSJNaIb# zMV~)$yBs~jt*Rm^(beVcb^4UH*6LM~OAh2sm^N|h>XmC(=V#_urfBYGBMXS zFt9Q(h;zt{L(!0%pOTqYiCcrd?8Qew4dGQG5hX#19-8f8yaN4Aam!<$wB&=hGktW@T=@WNu+)VeiQz%)$yT4JL1 diff --git a/docs/public/favicons/favicon-32x32.png b/docs/public/favicons/favicon-32x32.png deleted file mode 100644 index 58cc29191985d17fb3015580df1aace1a1247213..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1929 zcmV;42X^?0P)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 zVoOIv0RI600RN!9r;`8x00(qQO+^Ri2?q)!F97_4djJ3iDoI2^R9M69mRpRTRTYNc zwGZF-ALl^JRN7M7Osm+$B8b+gVJsIyNHjL4)p|@MXdosgC<+#B1bSg;2^JF*K!R4& z3W*9N28>a(k$?sb*fO<4na)4cnd$s9|6%^`xc9gB@`iY!1D%=@Zu(yC?Ckg1>s`rO zzy-a{qPODF_;34=j7%-GBfcmPfSUICmz>VQ8=z*czw7(m~V=ga(sdv8bPRf*W` zLBYFVL2Lld0aySIAO^q$cxW)TfD!#)75LquU*py1PC(boLK#yklU2=DHdHN{TS(H) z-Vu4rPzB%_IW(G*X}}AvIRK;qAs`^IVc7r&e*73tO|<|eOV7SEv!xQ0N2+mgWtH9P zfLz5otTK+)5|QwZzy-h#@SsBwbWjVfp^OiJ`382loB;*k__CVtbN3&F(^7@K{F+K? zZ>eU*wKY==)@^~Rv#78|nJr4N2-qR;4%$0tW=PKylG#b(Q7Q3MWst`E*Fg!*nn)aZ zQ-IGOeiEH11+=_aNBK9y*xpo)>|iamsAmQG@&Ywm_)1|!sj$$6g?6t4kV8NWB|HMn zh1Tq)gcgENlb|nv@$BUf{|Ijw!Ds&XCp6nV$af43`^Dq{OL09hgz}8QGKvgv8NpjQ z3X3x?@gvAsddqN*Q4rt)Mi9^})#y$g_%R}^B?1%CQGWgFO9Fi9#lNGSrYK*sa)aq5 z4>={b6`tX(17!tt>QPA%FZUM4XPhh`;PJrosZ2fTBdOCH!jmWBreeJst72 zzu*5qUP}UGA; z1r-1j0U=txjK}}_z#>=I4J=t{@!tnuoNAyxv@&2R?_d(2G^s({iP39EF6t(|XfZ>t zXAnmgdF;S3LnZv~fNK|tuK$OK86pEHr`)HsH(8J!#_{HoPh?;K-&`wh*DK0j~?oB(r z;m+h7TI17bkI!Inat?OBlaq5VFIHD{$@&ylm21|c?ih|mBN4^u*b-A->IFb%*f!TcHp7YCgaU7e=c%d~h|D z?lSP*U%qw^&Q)q)V4xDk(QcRJxAvyy!uD&Yu{be{>`V(jPN&Hh4@&2Mh-$E%o&6q| z0uS<*#9uP0?#&6$yuy)raqPZxHU|Jv_+k^7cbRS+B(n=9o9}jQlpKX~`;`s{ww0RfD%u{$`om%=$i%yU}G zMy*nw@7vVpqx=L0Ke$u$dU+L0kX|5U-Cb!0T@%szelH#!B;9<=Hy!<)y!fngC4{bGOGWjV=HL%y%0IlGDqA;Ey|Y2qe{z|s z-JP@RZXdgGc@doLLM13+{GV-BkjEwDyn<{fmJP{rjdW^fh}xk(($AGiB{j%T5%ZRS zm%nPBbs^by)fIT6^E`-fKUh4jq{uWYqr9w32K74o@ + + + + + + + + + + \ No newline at end of file diff --git a/docs/public/logo-w.svg b/docs/public/logo-w.svg new file mode 100644 index 00000000..bfbe31f1 --- /dev/null +++ b/docs/public/logo-w.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/public/site.webmanifest b/docs/public/site.webmanifest new file mode 100644 index 00000000..8c3e9b79 --- /dev/null +++ b/docs/public/site.webmanifest @@ -0,0 +1,15 @@ +{ + "name": "DocsGPT Documentation", + "short_name": "DocsGPT Docs", + "description": "Documentation for DocsGPT, the open-source private AI assistant and self-hosted RAG platform.", + "start_url": "/", + "scope": "/", + "display": "standalone", + "theme_color": "#ffffff", + "background_color": "#ffffff", + "icons": [ + { "src": "/web-app-manifest-192x192.png", "sizes": "192x192", "type": "image/png", "purpose": "maskable" }, + { "src": "/web-app-manifest-512x512.png", "sizes": "512x512", "type": "image/png", "purpose": "maskable" }, + { "src": "/favicon.svg", "sizes": "any", "type": "image/svg+xml", "purpose": "any" } + ] +} diff --git a/docs/public/web-app-manifest-192x192.png b/docs/public/web-app-manifest-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..c72fe962d9dccccd87e804f4d0e5116fae36ae01 GIT binary patch literal 1853 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 literal 0 HcmV?d00001 diff --git a/docsgpt/core/models/alibaba.yaml b/docsgpt/core/models/alibaba.yaml new file mode 100644 index 00000000..02285f00 --- /dev/null +++ b/docsgpt/core/models/alibaba.yaml @@ -0,0 +1,15 @@ +provider: openai_compatible +display_provider: alibaba +api_key_env: DASHSCOPE_API_KEY +base_url: https://dashscope-intl.aliyuncs.com/compatible-mode/v1 + +defaults: + supports_tools: true + attachments: [image] + context_window: 262144 + +models: + - id: qwen3.8-max + display_name: Qwen 3.8-Max + description: Alibaba's largest Qwen 3.8 model for complex reasoning, coding and multilingual work + supports_structured_output: true diff --git a/docsgpt/core/models/anthropic.yaml b/docsgpt/core/models/anthropic.yaml index 4e253396..14fb881f 100644 --- a/docsgpt/core/models/anthropic.yaml +++ b/docsgpt/core/models/anthropic.yaml @@ -21,3 +21,9 @@ models: display_name: Claude Haiku 4.5 description: Fastest Claude model with near-frontier intelligence supports_structured_output: true + + - id: claude-fable-5 + display_name: Claude Fable 5 + description: Anthropic's frontier tier above Opus for the most demanding reasoning and long-horizon agentic work + context_window: 1000000 + supports_structured_output: true diff --git a/docsgpt/core/models/openai.yaml b/docsgpt/core/models/openai.yaml index e0f209c5..4adc8c98 100644 --- a/docsgpt/core/models/openai.yaml +++ b/docsgpt/core/models/openai.yaml @@ -18,3 +18,9 @@ models: - id: gpt-5.4-nano display_name: GPT-5.4 Nano description: Cheapest GPT-5.4-class model, optimized for simple high-volume tasks where speed and cost matter most + - id: gpt-5.6-sol + display_name: GPT-5.6 Sol + description: Latest GPT-5.6 generation flagship for long-horizon reasoning and agentic work + context_window: 1050000 + api_flavor: responses + reasoning_effort: medium diff --git a/docsgpt/core/models/zai.yaml b/docsgpt/core/models/zai.yaml new file mode 100644 index 00000000..0baa5287 --- /dev/null +++ b/docsgpt/core/models/zai.yaml @@ -0,0 +1,15 @@ +provider: openai_compatible +display_provider: zai +api_key_env: ZAI_API_KEY +base_url: https://api.z.ai/api/paas/v4 + +defaults: + supports_tools: true + attachments: [] + context_window: 200000 + +models: + - id: glm-5.3 + display_name: GLM 5.3 + description: Z.ai's GLM 5.3 flagship for agentic coding and reasoning + supports_structured_output: true diff --git a/frontend/index.html b/frontend/index.html index 28ce3fa1..f694dfdb 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -24,7 +24,12 @@ })(); DocsGPT - + + + + + + diff --git a/frontend/public/apple-touch-icon.png b/frontend/public/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..a27aacb81368ac5fe5a8d96121b6733ee931e4b9 GIT binary patch literal 1633 zcmcJQSyYo(5XZkHkPr+7q=-a;y3_>@Sg34KFi~~{abeL4f)NR5P?|_XAb=uTk77^{ zA_B=LC}Js_B+OM-^`sm4|8w$c)Mz8 z;xz#P&~kTkIs%_O)zU!2yF&-s3INbM+?`0r7+EvJq{tz=Z?AvaNbRfhsi0+W$g_|h z-M%1)Xi#Pvps{oNuIElxRwl3H{c^-fzWezpgKPIgm%i7bp-M7F><%NI_0kBS8>=Vzbu>efGq%3@uk0Evb(LKgj}OMwY>akWlD|E%z`x3q#DDMG|Z^Wvwdl7gRPn$Cxh#R7H1lyW_X`upel{h$dlz^-b&_eJCie zCdnJ+6D!1mUWxG?dVIO5s^C+Sk)yGKH7c!5k3X@hjZVaP2+u_VROA9VXepeitpTxP zs1CK|M(|Sw4v#aH?ufixl=~LejmmPKQ$$G*s;@TyE5X+gYJ5{ti)XPQ+j# zYE13S#bQ<5PsUGYnd&e#gruhe!|T8#HE}s$wDmu9l*qy@F|t5Dg`+(Emtmfy8tfqU zODc`=kT;^**kBO@U&_Gxfk0rf?f9XBdbjAl>uGYFs@4r{^(jr!%{jSfdR4E9P96u8 zOlFBle=V~%m@OlL>a3P%atsufuwPK}I~_u>IQ=b07mB8nUf@o%t9Kiksf#6>KXC6E zh?U&CU1grIJyz=%#x@W0hhi&bXs(xs=jU_92OC{|5DL3p&?d*br`az?#JOqJ$KpRS zE;(0Vazf_;(FQ zw2mCyxJ$&Kj8E$s_En4qT zg{jyu)pO1DumdD{9HAFgu~vMGfqs`EPgopU&j`9*$(jq>W@$>P`ST%`(eS37@_Om# zTXFPk|D82lN4&Alyim5jtf}Z%`;NHWj63;;^2V&Q4YalS{Fmq3!)?TB5gDb(aUN2v zHuaIL-yW_HVS7SaJRWp=fO`4ODZU)L=jQ4JuQw2+vt o_^kAACC#C};$Z#1;oX2p4KQlU^GH7ge;t6kv$s>x{@^SB0DoHpBLDyZ literal 0 HcmV?d00001 diff --git a/frontend/public/favicon-96x96.png b/frontend/public/favicon-96x96.png new file mode 100644 index 0000000000000000000000000000000000000000..5a3a5669a55a7d37606fbd0a662a4522ab3912c5 GIT binary patch literal 867 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VAk? zCy3u+*!_U*2CMl2y&a5Y2YEMeqe=bqo4-G9`RVHHy*~5*J6X#6wJ_-Ik6*rir+)0c zIV=m9|IXZJ*Vm%RV6E-Uuxo-W2O~qX0D}RLau#54-l?s|_`*R?jZuQ7iJ?J}hv&hk zXLiv_`>#BB^6TyEoa=H9=Vln_G}!*lS+_3WmXkn(3WvAEOYacI3Z>QWG@phuY|?%- zW1R4Czt{j+DCNm} zBXO<9pW)e|pA8Hg2Pzq+#C09&rvIKAshbX35PLky?dVbK(f#^fuw_N+49jRKir>tYo4uH!>()d84Bv1*R&pA zxqS75$V+al0o(0M7!z(T3ikBOt{$`aD=gP2uQ~CK|Fy*_ndYKZ>pnUhS$s#&Xm`B` z%kL-enF8$9=EVE*y%lbmA|)4{X{>8M*@1ogrts#YZEac%YZP?KC(U3;U@SZ$CKt@0 z*s(cg+cdq64vcG7C#^Y^u`}}R2YHUC@>3qm&uOlx@PFfIcTfDOa}AzEizapd|D=;k UpPbty1k5}Pp00i_>zopr0IIfdL;wH) literal 0 HcmV?d00001 diff --git a/frontend/public/favicon.ico b/frontend/public/favicon.ico index ab909109b268c9f80f135d9f4dee01dce303b49b..66717231aa64cfd1044c9129edeb15d8c5f881c2 100644 GIT binary patch literal 15086 zcmeI3O>QJb5QVelk-VIdSh8?$5G-ebMzC^n0LP{rtk1yu47|W+;7iT??m$qR;v7E*8}$SxEG;HN z5QU}p!p!FudLFxvrT^Flp#sYbWP9(lF3Jz^H9|>1wga0yw^^6Oa}L!tZc|fuqd*=SF#-QnP+O9z9JRa>H-75q@AWaW-Cxs< zYD!Y8n;NU}6PwCY%B%60YUcQB{KV#P4dvGOhw|t8V(HD5-(JA{?6)MQz})l5^P3X+ z0^HuK(qf&zayWi|$LdlGQ{Y(crbNB~H?zeGzb(*XoxlDJaKIscTonVmfPE`?fO zVl|lJbHtRq)ZEU)eCH5T6YsgCKF9p@SaRl+>(uj~a(4D{s`*bnH?uE2KQo_eZl8aN ze?xMvRiEzrd_CLsY}aRC`DcJ1eILR#`TGzq(TzS|BrSIcHzC}iuS58Zz6xQF zel7j|rfn`mxV_!9pD#lA{fA9^C;jKooA&Qb2(NzKwD;1N?WS#|-=kG3|BWBFCi*sLM|ppT7!*{-*l^oxbQ4Z7upYB zY}?z{`*wG;Z%bc0MZkx4e}AF79B?UI3D@mjcP^Q5Poe)}*4V^G8i_2dBRfQxAn3P|%jKh?xbwfIZV sus`3m+B3%25fMe0Pd*_j=dgx9SMOKPZPhb^rhX literal 15086 zcmeHO2UJu?_g_>%VgW%El(x$@KoqgWE_MZ}(gmccfcy4sUzXxhrL#*%KtQPqM57o> zEZDJkG>S@8qM`^QDk^ZlS&TV+iJDI(`JewezH{#0_h#PQ`OTeI=Kbzn0zr<@pI~A_ zKw6JbP9YE`69@!7z2A>j2!z|HOa*CKz25)=VI4Ywj?O_%2%bn}&;& z@XZ6?Jn+o}U*iFHQ=R@UMjE8$^pU1s2HIqQ1O1U~3T>2tXh;v%F`g*aHZcj;89y|V z=Bv1l!q82oMe1czbIAF$ZL}hTeS^NH@4jg3Xr#W#k*;>znL511gRIf$OVYZ=&?Da9 zYEvGHMj5n*XpU(Uj~>eoAv&%I*Y*81UN7X=RAPE#E~&Dqkg~_4FED(K4SOS1kv)AF zI8jx>jjRsdBu((w)d9AaJ_twAA$XKgy-3HDC)8PVWvz}o#OU%tqL&2Oq~gW`%1<-D zrtiLJYiFb!X=gAL9B3-wN>Kw({SmO5IQlKFL%J%^rpI!1srC$Q`X#RREC|tYgeYC+ znYY`u_wZ4ZS9qX%+#MP^kC}FA}v-hRt&pTMo zP0fD$>#n+9Ikbx@s^hs7X{e936VFLwG-jpu7k^n9e;00LI1p?Nl+YXu z0vFnldme^rXf^q6^P{Ww56~eoaP9Gz1jKoh-k0~K?tpFR(O`de;rWWNP$ zEt&xv5=|h1PljNxQE!N+ddCp`=4>y1ae{End zQw1+GrEbUZ18!K+`ZFyl1C?bMY{x0iu`wFZYG*hA91Y~bl{OGOsDrw_sjBDvXj-l; zL!*D~8QI+CXZrB5*XcWVT;c3VE7-ej4ismYf+Psdf#*o@TRaGyC-es^D⪚soxLg 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 diff --git a/frontend/public/site.webmanifest b/frontend/public/site.webmanifest new file mode 100644 index 00000000..8a984748 --- /dev/null +++ b/frontend/public/site.webmanifest @@ -0,0 +1,15 @@ +{ + "name": "DocsGPT", + "short_name": "DocsGPT", + "description": "Open-source private AI assistant and self-hosted RAG platform over your own documents, with cited answers.", + "start_url": "/", + "scope": "/", + "display": "standalone", + "theme_color": "#fbfbfb", + "background_color": "#fbfbfb", + "icons": [ + { "src": "/web-app-manifest-192x192.png", "sizes": "192x192", "type": "image/png", "purpose": "maskable" }, + { "src": "/web-app-manifest-512x512.png", "sizes": "512x512", "type": "image/png", "purpose": "maskable" }, + { "src": "/favicon.svg", "sizes": "any", "type": "image/svg+xml", "purpose": "any" } + ] +} diff --git a/frontend/public/web-app-manifest-192x192.png b/frontend/public/web-app-manifest-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..c72fe962d9dccccd87e804f4d0e5116fae36ae01 GIT binary patch literal 1853 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 literal 0 HcmV?d00001 diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index da9a493d..0cf65dc6 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -8,7 +8,8 @@ import { Outlet, Route, Routes, useLocation } from 'react-router-dom'; import Admin from './admin'; import Agents from './agents'; import SharedAgentGate from './agents/SharedAgentGate'; -import DocsGPT3 from './assets/cute_docsgpt3.svg'; +import DocsGPTMark from './assets/logo-b.svg'; +import DocsGPTMarkWhite from './assets/logo-w.svg'; import ActionButtons from './components/ActionButtons'; import AdminRoute from './components/AdminRoute'; import ErrorBoundary from './components/ErrorBoundary'; @@ -39,6 +40,7 @@ function AuthWrapper({ children }: { children: React.ReactNode }) { retryOidcLogin, } = useTokenAuth(); useDataInitializer(isAuthLoading); + const [isDarkTheme] = useDarkTheme(); if (oidcFailed) { const message = @@ -49,7 +51,11 @@ function AuthWrapper({ children }: { children: React.ReactNode }) { : t('auth.signInToContinue'); return (
- DocsGPT + DocsGPT

{message}

diff --git a/frontend/src/Hero.tsx b/frontend/src/Hero.tsx index 3ebf46ef..acdd4648 100644 --- a/frontend/src/Hero.tsx +++ b/frontend/src/Hero.tsx @@ -3,7 +3,8 @@ import { useTranslation } from 'react-i18next'; import { useDispatch, useSelector } from 'react-redux'; import modelService from './api/services/modelService'; -import DocsGPT3 from './assets/cute_docsgpt3.svg'; +import DocsGPTLogo from './assets/full-logo-b.svg'; +import DocsGPTLogoWhite from './assets/full-logo-w.svg'; import { Select, SelectContent, @@ -11,6 +12,7 @@ import { SelectTrigger, SelectValue, } from './components/ui/select'; +import { useDarkTheme } from './hooks'; import { selectAvailableModels, selectSelectedModel, @@ -129,6 +131,7 @@ export default function Hero({ }) => void; }) { const { t } = useTranslation(); + const [isDarkTheme] = useDarkTheme(); const demos = t('demo', { returnObjects: true }) as Array<{ header: string; query: string; @@ -138,9 +141,12 @@ export default function Hero({
{/* Header Section */}
-
- DocsGPT - docsgpt +
+ DocsGPT
{/* Model Selector */}
diff --git a/frontend/src/admin/AdminUI.tsx b/frontend/src/admin/AdminUI.tsx index e62ab82b..89066f44 100644 --- a/frontend/src/admin/AdminUI.tsx +++ b/frontend/src/admin/AdminUI.tsx @@ -118,7 +118,7 @@ const EVENT_LABELS: Record = { admin_sessions_revoked: 'Sessions revoked', scim_created: 'Provisioned', scim_deactivated: 'Deactivated (SCIM)', - scim_activated: 'Activated (SCIM)', + scim_reactivated: 'Activated (SCIM)', }; export function eventLabel(event: string): string { diff --git a/frontend/src/agents/SharedAgentCard.tsx b/frontend/src/agents/SharedAgentCard.tsx index d5fb8e42..a7102cd7 100644 --- a/frontend/src/agents/SharedAgentCard.tsx +++ b/frontend/src/agents/SharedAgentCard.tsx @@ -28,6 +28,8 @@ export default function SharedAgentCard({
diff --git a/frontend/src/assets/cute_docsgpt3.svg b/frontend/src/assets/cute_docsgpt3.svg deleted file mode 100644 index 53f7cac1..00000000 --- a/frontend/src/assets/cute_docsgpt3.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/frontend/src/assets/full-logo-b.svg b/frontend/src/assets/full-logo-b.svg new file mode 100644 index 00000000..54fc9a2b --- /dev/null +++ b/frontend/src/assets/full-logo-b.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/full-logo-w.svg b/frontend/src/assets/full-logo-w.svg new file mode 100644 index 00000000..d4ba6cfa --- /dev/null +++ b/frontend/src/assets/full-logo-w.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/full-logo.svg b/frontend/src/assets/full-logo.svg new file mode 100644 index 00000000..af581fc9 --- /dev/null +++ b/frontend/src/assets/full-logo.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/logo-b.svg b/frontend/src/assets/logo-b.svg new file mode 100644 index 00000000..0b2cec5b --- /dev/null +++ b/frontend/src/assets/logo-b.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/logo-w.svg b/frontend/src/assets/logo-w.svg new file mode 100644 index 00000000..bfbe31f1 --- /dev/null +++ b/frontend/src/assets/logo-w.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/logo.svg b/frontend/src/assets/logo.svg new file mode 100644 index 00000000..1b70c736 --- /dev/null +++ b/frontend/src/assets/logo.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/src/teams/TeamSwitcher.tsx b/frontend/src/teams/TeamSwitcher.tsx index 8da43be2..d5c4e1bc 100644 --- a/frontend/src/teams/TeamSwitcher.tsx +++ b/frontend/src/teams/TeamSwitcher.tsx @@ -11,7 +11,11 @@ import { Users, } from 'lucide-react'; -import DocsGPT3 from '../assets/cute_docsgpt3.svg'; +import DocsGPTLogo from '../assets/full-logo-b.svg'; +import DocsGPTLogoWhite from '../assets/full-logo-w.svg'; +import DocsGPTMark from '../assets/logo-b.svg'; +import DocsGPTMarkWhite from '../assets/logo-w.svg'; +import { useDarkTheme } from '../hooks'; import { selectToken } from '../preferences/preferenceSlice'; import { AppDispatch } from '../store'; import { @@ -58,6 +62,7 @@ export default function TeamSwitcher({ const token = useSelector(selectToken); const teams = useSelector(selectTeams); const currentTeamId = useSelector(selectCurrentTeamId); + const [isDarkTheme] = useDarkTheme(); // Populate the switcher on mount so it works before visiting settings. useEffect(() => { @@ -75,16 +80,13 @@ export default function TeamSwitcher({ const currentName = currentTeam ? currentTeam.name : t('teams.switcher.personal'); - // The header trigger shows the brand ("DocsGPT") in a personal context rather - // than "Personal account" — the dropdown still labels the switch entry - // "Personal account". - const triggerLabel = currentTeam ? currentTeam.name : 'DocsGPT'; const teamInitial = currentTeam ? currentTeam.name.charAt(0).toUpperCase() : ''; - // The morphing brand identity shown in the trigger: the DocsGPT logo for a - // personal context, or an initial avatar for a team. + // The morphing brand identity shown in the trigger: the DocsGPT mark for a + // personal context, or an initial avatar for a team. Expanded, a personal + // context upgrades this to the full lockup below. const triggerIcon = currentTeam ? ( // A solid square reads heavier than the dino, so keep the team avatar a // touch smaller (with a little margin to align with the wordmark). @@ -92,7 +94,33 @@ export default function TeamSwitcher({ {teamInitial} ) : ( - DocsGPT Logo + DocsGPT Logo + ); + + // Expanded brand row. In a personal context the full lockup replaces the + // mark-plus-label pair outright — the wordmark is part of the artwork, so a + // separate "DocsGPT" text label would repeat it. `mr-auto` keeps the chevron + // pinned right, the job the label's `flex-1` used to do, and `ml-4` lines the + // logo's left edge up with the "Agents"/"Chats" section headings below it + // (those sit 32px in: `mx-4` on their row plus `ml-4` on the label; the + // header strip and this button contribute 8px of padding each). + const expandedBrand = currentTeam ? ( + <> + {triggerIcon} + + {currentTeam.name} + + + ) : ( + DocsGPT ); // Open the active team's detail directly (not just the list). @@ -132,10 +160,7 @@ export default function TeamSwitcher({ aria-label={t('teams.switcher.ariaLabel')} className="hover:bg-muted dark:hover:bg-accent text-foreground flex w-full items-center gap-1.5 rounded-lg px-2 py-1 text-left transition-colors" > - {triggerIcon} - - {triggerLabel} - + {expandedBrand}