From 246051ec22b044ca534ce123f5bea2f1b9754e35 Mon Sep 17 00:00:00 2001 From: audemed44 Date: Wed, 4 Mar 2026 02:25:50 +0530 Subject: [PATCH] feat(web): add iOS PWA support with touch icons and meta tags --- apps/web/index.html | 5 +++++ apps/web/public/epubForge-180x180.png | Bin 0 -> 19221 bytes apps/web/public/epubForge-32x32.png | Bin 0 -> 1224 bytes 3 files changed, 5 insertions(+) create mode 100644 apps/web/public/epubForge-180x180.png create mode 100644 apps/web/public/epubForge-32x32.png diff --git a/apps/web/index.html b/apps/web/index.html index 0655825..63b1736 100644 --- a/apps/web/index.html +++ b/apps/web/index.html @@ -4,6 +4,11 @@ + + + + + EpubForge diff --git a/apps/web/public/epubForge-180x180.png b/apps/web/public/epubForge-180x180.png new file mode 100644 index 0000000000000000000000000000000000000000..2d1c387a7a3802e4b3ed867beee7769f52277fe8 GIT binary patch literal 19221 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 literal 0 HcmV?d00001 diff --git a/apps/web/public/epubForge-32x32.png b/apps/web/public/epubForge-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..8a5220cb54533ef20061aca8694c713e928428fa GIT binary patch literal 1224 zcmWksdu&s66#m`Y^>y3Z+t=;8TU*v{-LvcCZoTc@+V#Dy54x_KUB}kFH`tuOvIJ1s zB;u3_3S>MSEJ1^suoNYl7=wTbA&9`pzy~S=iI_zfML?qvEXn!K$#>58$CsRMIu;3_ zhynosprN2Qo|~FyV9|2j`|j)KpOKzmJPg1V0|4810Pt^awf$EB#!UdMbOAsf06;qS z&Sz_#0KoIHri3piz@;*CwcSkE#S*EFq*^+<2?tf}tV^!zCP)fEfXPO2WcMOHyF*j$s-9ZF>) zePi`IU-i7Wjc9B!xEeHrgYw3>sIY>8a78ku$=%?HCPTd&0()kn3&$!udz3X^X*kZO zTrw-Aud*{)ECl80tz?niWe!C=FKuf(ebW8jLFM3}usy}G)ky1I#$e1==V7tgxH4Z; zW>XnW1r>xb5UiVe(fi?i+0lKP-agz~Coq&K{XT0XX*3ZqjYc?}%AyLDp+ccAm+MQl z6y+QqtsWTBx*JuNT1inQ6T`$-yOH!Ov<91lqS5IHUxZ0iV$~X{rdS|Vsx3qz<&_qj zBw8b1UI4)`gD;Sj)f7}ZQGuA2M`xn~3|H_(GLb^dm#Vk|34_gHVIq;P9Kl2oOk*M_ zgN4AfJODv#1Ys~3G>pe8(ZeVQ;c!b#=AzPaV?~v|xI`jXm~A!cXh^)FlkcYlK{uAG zkQ<8zFn_Hm=Fb!IMYzQ2@sVz?!|k!yos>6VA?(IvGuLGotPRTh+VTFhFwuaIbjc=$ zRU;XuQik#{sY0dJ==eerieY@AkjdjgIU6XKp_I{hT%=Sl$|RX<3g|K%z%b#YAUd6J z)>b=flN}kW-OC?-f3v{`RLfwr4@2w+4*U%hc zZVrWg%oQ3FfwA%-MhGW z|Gt*Q^(C8CqdRo&!pf;r;AaQ|p#sBffa{lM;Df|)GL3=|DW zTdOCqXyx+-8<1^J9@F4grabjuo?D|kmMwnm&FPspqPfsVLgB_M7reD#>)2gNYvFh>hzaKn$7(H;|jA`h; zxKJMU#-ekCT6oc-NqzU$`v