From 543eee78a666c32139e87fcfe97a110ebdd9d0bc Mon Sep 17 00:00:00 2001 From: Adam <2363879+adamdotdevin@users.noreply.github.com> Date: Fri, 31 Oct 2025 06:36:26 -0500 Subject: [PATCH] wip: desktop work --- packages/desktop/index.html | 2 +- packages/desktop/public/favicon.svg | 1 + packages/desktop/src/assets/favicon.svg | 5 ----- .../src/assets/favicon/apple-touch-icon.png | Bin 0 -> 1520 bytes .../ui/src/assets/favicon/favicon-96x96.png | Bin 0 -> 681 bytes packages/ui/src/assets/favicon/favicon.ico | Bin 0 -> 15086 bytes packages/ui/src/assets/favicon/favicon.svg | 18 +++++++++++++++ .../ui/src/assets/favicon/site.webmanifest | 21 ++++++++++++++++++ .../favicon/web-app-manifest-192x192.png | Bin 0 -> 1667 bytes .../favicon/web-app-manifest-512x512.png | Bin 0 -> 7299 bytes packages/ui/src/components/favicon.tsx | 19 ++++++++++++++++ packages/ui/src/components/index.ts | 1 + 12 files changed, 61 insertions(+), 6 deletions(-) create mode 120000 packages/desktop/public/favicon.svg delete mode 100644 packages/desktop/src/assets/favicon.svg create mode 100644 packages/ui/src/assets/favicon/apple-touch-icon.png create mode 100644 packages/ui/src/assets/favicon/favicon-96x96.png create mode 100644 packages/ui/src/assets/favicon/favicon.ico create mode 100644 packages/ui/src/assets/favicon/favicon.svg create mode 100644 packages/ui/src/assets/favicon/site.webmanifest create mode 100644 packages/ui/src/assets/favicon/web-app-manifest-192x192.png create mode 100644 packages/ui/src/assets/favicon/web-app-manifest-512x512.png create mode 100644 packages/ui/src/components/favicon.tsx diff --git a/packages/desktop/index.html b/packages/desktop/index.html index 9209acfc..e88b49ac 100644 --- a/packages/desktop/index.html +++ b/packages/desktop/index.html @@ -4,7 +4,7 @@ - + OpenCode diff --git a/packages/desktop/public/favicon.svg b/packages/desktop/public/favicon.svg new file mode 120000 index 00000000..80804d25 --- /dev/null +++ b/packages/desktop/public/favicon.svg @@ -0,0 +1 @@ +../../ui/src/assets/favicon/favicon.svg \ No newline at end of file diff --git a/packages/desktop/src/assets/favicon.svg b/packages/desktop/src/assets/favicon.svg deleted file mode 100644 index 3c81bbdb..00000000 --- a/packages/desktop/src/assets/favicon.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/packages/ui/src/assets/favicon/apple-touch-icon.png b/packages/ui/src/assets/favicon/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..13d79dbec4fa8f8b2a4adb3611419f1d42f8de3b GIT binary patch literal 1520 zcma)6X;4#F7=1|tyin7IV5o>_44WG0P?rP{Bs@Wa0%B1RX%K|s0z|Q4OF@D@2p|w( zkf;^(DK2d>SP_B&4Tv&`g}j0*2q^-R4zg$?jDSgRr!)OkX8PmaJLfLnJ>U73yr4i| zis@2Q2!benJnyf;dh7228-v-S(|9ce8C~}C_S%_Bc+4ajfFgIU;^j#DV(x(V*M)$wh?oVGa{mL{G#OmOr51< zXRe_#gxMCIQ(MIN;Z^g&SrEp$)zG%cXPO}_VHPGbxmt4*l@H*>D`|5vW9afuXqY6J zU&V_)2MpXF?5#=3gQ;#i!Y&TjbG3a1)jV%8p4UNp&n6(6*ccxs5e?i~eoaAkx7Uq- zyv~gbC87g#MQgo%afntXlMP;-ndDnJr+(X5ml{5PK16$6{G7ufAfpr8XUzzRRNPQu zUp%rJt6gt5$|u1YU)Z0#2`HCe8E!fWVUzb_c32S6uI{pPDS#aRwA|_4mox(6duVgH zgiM`{LfN^1Pf2g_NE8u0wgjUv%^1Qec1+so<|~Njxh`Y)S6i<3OtYgjK#cz~S0b<{ zAZk)X!=Fk*Okk=SL1?G>xa-L06^EyTmBByzSG_L{-h|6`K~Rj?I?65_P)e zYxL##IQ^QD7_Xa+_oQHbte{UJOfk`;Z=^AF@&@br4Fu$H!1D!RmQD76h&{&vbaF0- zEPv93!mP?8(qfQMfnqQo73`kX+f1e~v6<-cDr=Z3GHEY*E`=6?qz`j5nG%(L zK3XwWQX5fQ^h%+!)1gGQTD>_Zjwzb+MFllnCkT~4**|v>?vKdY1Ht^C)zdvB3uOie za%6C|MtC|+24O?VHZO=oGy>{$NF-C;1e{W*e-3Z1&7v!8botH+N$vz>g(i!{0`4vZ zTk1#yo&Q7cX!CZKFkaqm4Ps}KmGXv7g6~j58<+n#{78CTZL3?h=V^`uS35-~yGS5x z6u-#^gd{b*W>*sIAt|pL1iaIIo)JYHkf&dn&HM;(QpPLac9m{~n zxe#V`sz2)SEyUBqgJMXZd)+H;Vf9tNyGnOs9l5Qr<7yK=^k(b_C1{yiHMAynrSL(B zmD*d|HWIq50;h*3xSL~Evb~8yBs9M6tv_1nsA;Vx!4-9`w;g~`w3CuBphetwN4JA0 z+gf~HOJfM1z8( z1`P^)xbXz8MF802`1@HAjn`a iZ=BJCzHR(>!~O(vi~oJNgi*E+>_C1#f!=Z?^7vmtu%`_G literal 0 HcmV?d00001 diff --git a/packages/ui/src/assets/favicon/favicon-96x96.png b/packages/ui/src/assets/favicon/favicon-96x96.png new file mode 100644 index 0000000000000000000000000000000000000000..c9d3cbf0eefae129e0966185139cac21578e7ecb GIT binary patch literal 681 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>V2bl}aSW+od^6eFkJ(Vf)jg!c zRUq)vW;HQJ?ZiOAkj6H(*$S~IMDiY=|NOOdlJO+d*1z|*p1-&|nrq+Lw9kLO{HREo zY8)|BbU|zv%M_DGKGKXVTMA!?wKn8w+?G;Y&>Ov7i>1W*<~0t++&jBM6&FaK+UCZQ z@%Y+WF2=h7+e~-)GUl#P3FVlOpqt;-P!u+4GC}5HR+;Ik)m*hR3)hxU4zRoY<;cS` z>oQ)K@4tU;hs$}}+hq$HHhXoG^S@2YFH@;9fj+1jFwK1YFRoMpWjke zaQE2L&tUi*v53XMYKmmar|3eC3PT_(EX z2HV_*L+F?x{xU}ttqowFdcgYF)&sSIAAN)_VHb6g%qo2dWqkc$ObQMxRXXh9F zzAVqY))6dyA^((3@Sk!aXV6cU4_^uT$ub1}Wcl!w z=A)nW9?w%qcz^Ts@!;xh`uY34beEscBLCUUjgNO%5B|ZwrU9o9pVeaP;Pd6}>g$lJ zmV?XBXSLWm__Vw~#koeb@OEi9yp-#l)&}NF-qVU12Mp_bTFvIh>8$l6V{l69f$_nA z9rY*gbI4v=8AyzFEmia{edX;D=lL-{_=o-`pZD?kD}VpR`ZM44x82^oPm-it1`-qM z^UwYC)CaZ#r^I0VFzXNa7cI$efn^X>f8IS@P3xMk%Kb;{r>YO*m%sm2{VFyDKt)teB5>BC~B+KWrDe&wJGxD#kX2JZ`U`sDx}W! zSrni5-4F3b{$5^ti2@6Md@p($pBq<}I^X<-h>xPpt`5uilg}nD=TYmf$=T65%ejkl V))F(?#>G7}h%9*gAQFtX{RSG~hcN&E literal 0 HcmV?d00001 diff --git a/packages/ui/src/assets/favicon/favicon.svg b/packages/ui/src/assets/favicon/favicon.svg new file mode 100644 index 00000000..ffb5f729 --- /dev/null +++ b/packages/ui/src/assets/favicon/favicon.svg @@ -0,0 +1,18 @@ + + + + + + + + diff --git a/packages/ui/src/assets/favicon/site.webmanifest b/packages/ui/src/assets/favicon/site.webmanifest new file mode 100644 index 00000000..f7522f8f --- /dev/null +++ b/packages/ui/src/assets/favicon/site.webmanifest @@ -0,0 +1,21 @@ +{ + "name": "OpenCode", + "short_name": "OpenCode", + "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" + } + ], + "theme_color": "#ffffff", + "background_color": "#ffffff", + "display": "standalone" +} \ No newline at end of file diff --git a/packages/ui/src/assets/favicon/web-app-manifest-192x192.png b/packages/ui/src/assets/favicon/web-app-manifest-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..ca53fa8daa61b3dbf9807186aca2b2be12a944ee GIT binary patch literal 1667 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 literal 0 HcmV?d00001 diff --git a/packages/ui/src/components/favicon.tsx b/packages/ui/src/components/favicon.tsx new file mode 100644 index 00000000..de32ed2a --- /dev/null +++ b/packages/ui/src/components/favicon.tsx @@ -0,0 +1,19 @@ +import { Link, Meta } from "@solidjs/meta" +import favicon96 from "../assets/favicon/favicon-96x96.png" +import faviconSvg from "../assets/favicon/favicon.svg" +import faviconIco from "../assets/favicon/favicon.ico" +import appleTouchIcon from "../assets/favicon/apple-touch-icon.png" +import siteWebmanifest from "../assets/favicon/site.webmanifest" + +export const Favicon = () => { + return ( + <> + + + + + + + + ) +} diff --git a/packages/ui/src/components/index.ts b/packages/ui/src/components/index.ts index 8d6ddc89..115e5f14 100644 --- a/packages/ui/src/components/index.ts +++ b/packages/ui/src/components/index.ts @@ -9,6 +9,7 @@ export * from "./diff-changes" export * from "./icon" export * from "./icon-button" export * from "./input" +export * from "./favicon" export * from "./fonts" export * from "./list" export * from "./markdown"