From f8b870a0cb113ed1d1ad284e00c2a71c0f78e8b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Gruszczy=C5=84ski?= Date: Sun, 2 Aug 2026 00:50:48 +0200 Subject: [PATCH] icons --- Cargo.lock | 2 +- Cargo.toml | 2 +- static/icons/favicon.ico | Bin 4286 -> 12745 bytes static/js/note-editor.js | 2 +- 4 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 674b6ff..7f623e1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2581,7 +2581,7 @@ dependencies = [ [[package]] name = "rustpad" -version = "0.2.17" +version = "0.2.18" dependencies = [ "argon2", "aws-config", diff --git a/Cargo.toml b/Cargo.toml index 36ab70c..4d5fa8b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rustpad" -version = "0.2.17" +version = "0.2.18" edition = "2024" rust-version = "1.94" description = "Collaborative Markdown notepad built with Axum, WebSockets and SQLite, PostgreSQL and MySQL" diff --git a/static/icons/favicon.ico b/static/icons/favicon.ico index 877b663034cc20f63c0b346cf4b3d7cd46bacd0b..ed1245b02527cb71a32d64b6701ba7402145be55 100644 GIT binary patch literal 12745 zcmaKSRZv~Qw(Z`yySuvucXx*n+@0X=upzi?+}%TPhv2Tk-QAtw_HypI^}b%cpVf2D zuGOo$YE+LoMlS#W2!H~hp#lDlWPk$*06-c50FaUWH@}7j02m5)9?b? zsVgaBs-b;sHcxxlmN(|lKxv?1P)jOMp+SG8j*29@82te&gonXOGc*vLE9i4;tf(k> zEagBXXdQuG8)R$^Creo@-zSy7Mq2mU{hHmPD|T@{dEVuH^?I1Kl2U6HW2nQB@=Jv# zsaKcfVIX5m88u(N=Qn2O5BnU0xs!~T`b<66#oNDjG+Uc1?=%U=0*3|ka1cP@ihV>! zMEL@vh56cFHockEzkIQ%MUq)@%6xoYpyBV}7_jdPe*Fp^agXe$hVrSC2vq#Xzw!26BDy}g&?`s8$mMC16dvvL15z10I_N`~M0C%Gsd zDB&cNo2+)WtBM&u`xT(-jG!@c#2Y`-X3@{ZJm1d3PjGt8y8@92&n}JE-4lgl-RbH& zxucEaC&|X2J9r%py&m|99iS_7^4EkSF<{|VG!fSm`qJgs_kM2s#;`LdDuSLFSs}&# zFiSoj;z1_8(@N_XLZC9LS9v|G-xtPAT76-b7r}c|fvVI{_b}l;NAuD? zok&t#1(_(R*u*OJ&=F!+L?3A&nBzYn7}&&DJNh_SS3)Nu+^Tv~ExAYqginfPI|q;6 zbS1gqBtT|RwVp;w7l4|>8<|y0q0xh_Q6wZ+JHCD%+6>$yKW=8`!G@JtI<{W&c2o%7 zxgnA^tTAb_i|F@idLZVR-D2Z!k1R=)GjJh+gTaB)L`sn9-&sqLEvAx{g~1KXaq@YD z!;{J?PMXU-8>_bq@4pq2ca1X+2%uS;U*^S&<58MEMCHSpwQbjr95my&DP0a7oLDzc z0p*I)aAf_dVlwRTJMrr%>MW^C&AU_?=&tl5AiKs25)2Xn0sx<%V1YZhe_)0A4@w~c z)-_gS(J-!_|0)1EDP_rOapU0s2gu3(O_Ti($X$JW{sI87CI1C^ww8gNz6|!q;b!}% zNB!A7KhC7l9t3%TP1HdvSbSIBMimZ2tj`{xp!97N0|6%(_O?fXiXjAwbp)j9l}`o* zox}|_oBRtRP4kOQ@<3xf;q0o-EKKJ6&E@LrUZ-#1(_|A*Wku}8-|v$-Z5&pU&yze> zmR4Mx0UAa|dA$Ygv98wcCEeXdxNTV;l(4f$U@%xWdmjlI8Tti<6nx3&M(4rmlJ0uE zEW*xi8a!k9GmwXE>`I&LKA=7eo9Pumg= z0;ST~jSRO{cBMHFgO)ITn$4uv>a*l=3xN#9)wYat%t4oXrWNGEZlgE)8^5x;s_rcj zBhJ9I(Fv-t1NDXLXQYy3Woi`}db*};&>j{5p_P(=)F9W6+xE~BG0xm-Tm*r>rog#nD-obtc1@hUQcyD|!`G{VhiRQnRiyK~rwiipoq z(7m+-Xv_>Hs&rTzrUh@v0m07&AuzAoy#*lq%r&NpU;7DS=mtf-^4O5=+&c@7k2@3F z{ZEJoQ!4k{6Gw<7m?UJ;x}HDjjdqsaiE-p5L~QEiMm>| z#U%+5(cdp#3IJo}EEEASp-ypU07^(uenA1XH5mcgjLw<%nN=s9tv|o1oul=`&deV* zBoQCdfL2FLH{DM(IBH?LHL&vL?*%AfjUC@m(=`-Dbz99UfhPMECwoE^sZ)kw`C?%s z_5_ynCv_{Vt&{IE8H(`>?LON0plfnY-u2k%!gPBJ7Nt^Ev1V%u31@hAvfuMFZLW^4 z=ZJ(^b)D45LEGQCq3YNH)rHfCZ0h04OwuGXK~`H&0N4N_@UV)~_IP0SfY#I-;T#9` z(@vksJOzZcj38VR2>XIlycPifQh;QM{S8G%)%svJ^co} z#?yAI#?#3dU7XttF%u%jTWv!z+Dhn&d#D`#0MkrN>LJF=w1Hl=EJ=Vgp#G9)Yk=&D zILb6s5$+51n(rzl@8$;B%;Dsf$CMWQ|Ngr?T% zBorQmyESP0Nl!LGsp26X8}v>ZO-3@G7MmT`S?GP$-nl*qWXYE}V$rG1IN50xm#3wmTqV7RQ z-VVtW8-HZ2ViEgL@-}Nxn8-$Yzw6bckK)Ajbpj-v)cY_uw+Unh1&Qj`H+iu+jk=W; zbqLZnbbMNs+{)9iPd_p=Ct~6AM+DXo>)omI@^T`SymoL=pf9RQY*!p5>(&51e>9uV z3_1Fy$LnAdQ5ehm(9Jl#pQm8#p4RNsha`@a4!iFDpD`|^yo%TNq@zh>t>qHiNXb46 z$b`~qmCQ^E^QG5h7L|xhwYK=5w}LKGE|o{m60Byq7)GPhr4Uo72}=C;i0(zgyJ2Dq__ z5$3>0=pU@JOR^(Ioz)Vn_R%fa{Evfs%;m-dpDCjW3A&(a*d7i}_Fc3YKdOBJEc?j! zUsY8~sG;J&)#csra4&VttGBL}_NuC+^$PDz$%ro7Ik`PjJ_bsmU~I0}7@<(PxVbe0 z_GU%ms$++Qhu@wg^eCJ=xk&Ql8k;S3jx;HA9c&qo1{`S?n{uKD3sr{95;nA0I{4w4 z-rny7Z@-~}^6H~IWt$XmKW=8T_G(1BJg2Hv96mLytn`k;Cfy$$*Xs$;H^5bT{HW(! zkCBl#(Rtl|H*Xx~ONEdx0y|QZ&05Pl3-_!heF-AS6!lUndBQoq7w0SIog;KdNT{e< z*2`pfJ zAT*&&R8jhB*`P@;@`9za$$mnKwIb9tORGJJW=ei0Tdi~tFa&-!+4lNGY_AxDV_M+T zyZBNquo=fL)x2MJ$YM|xl{J@^eti>&qDVPvo7K%4jDZuZYQaX3$t-1ngW%%RVKh#? zQcBt^tLm=jw`~r53WCBJFt@mCn8E3V4cv>iSXRY@ll4fbNSA3TdepI-5xr zE3id$-{T5Lq!*j4iH01;W_XLbi(N^qx;F6OyLFRf6D7mdTA9GR?G5_xO26h=k}({2 zCPIgC-e!$u>h0UNk9Id0rrNh#xg#+VIpi^5nPQQ3UBACE#Kg10$R|N;iz7Kv(T4#4 zIKvU)t&TP58yjFH@^-O~Cv7aGb7Lgv%zJ6UMW(@2NB)w>ZlDTO$+XByqH<5sRGR&> zxO@{g5N9TLYj3;b#B>YLqaac?Pu|s6gP0bC<%CPdJkYTW`l^t)zgExN;mHdp?}YyE zFvpq*#gzA8LMR{meaqPmi3mRx`ThmV(<+`a8XC>U@y6yXlYL{uu%N19yg{|Fs={)* z?U!s0V-U8~DS*2L`*_kqxQdBS!-JVU*s^bGO(8KP)J}HJFK*%vqu$YuI)H1lnW8~b z>`13wT_;+7Ze@6Hh+eYjAg0QmdHUnx;_rZwUCF1f6QR(JDD6Az^$e=pw9Mm%l*;*< zc-*5yY24d0jnA8Z)-mPPnrvLBC#2AWmFKLP@6z1o-^!v-zp3`)n#=D+?c`u7b6KP` zO|#?-qaa8viYZqzy>gAN8D;4168MFp7*LWVPWk#=8w)wOg6k@oYMa+Ts$3x#xRuaY zx~q2dtA5n)Xbj^^b1+g%4x>}7ohL;0J-C^|o$M}W9I+9ZTR-tk_F?XBgYQ*?{mIjnuz1p zguD3^E7uqyBTecf9`8y@?wO1=DV{Giq9$hR+KJ_i>#qXHEo9Wc0>aue?vR(FaYbX} z^`#Y?6XcN95$=B`_)FCome0-&hn?(ow~6Kj*hC1=1x5;QeA4(|ri}lsK-_as8W*p)FY()c|5vEVN)NbAJs@;Q#G8!>5sxRD;wMeG zTZ!?iXRfw>?eG^8ok`}qE$8;ao3LBxWhw<-BT-FBGYyc#+jh3Wn_0Zajz>wc z5ts{vxvWEr7@IyMs|4U+Y?C0W!l@0=j<7Ff8jcY4$A_b(qpwjP_q&N5B|?#@rSH)9 z;l(tlkp0o4NS^t=Rcgr2C3{b{j*$3Kmm8^3AZHWy-mhy}sW6m1>!VdUY z!#oEo<|P94b`XXj7*&0#_2T6Y!TeJ{_{=`uT65iTNAmmb6w&J9wD{4rB?-ayP6;XwJ z_GBOg&p`F@v`5=~sUwq9#H*4#nszoRmM+xyCu|xUhl60nOmM~~5EfKtD$BEo1UPzW5 z1}@o4LuM~G&vGy5P6Yn+(2J1Fr`yZXE^I?&y&>sdkl$YfXl24!H8Fj5Tw((P0)k=0 zD#On8Mi?-U{PUIoukB8 z4qmw_B=8)f)~OplViJ6Rb`0E8(Y#HG)l9PmN%OZX2Jk=wjBCvFG1ImdOOK^8CQY## zKS3p@Zs-K&3&KhV$)VRCjhiV`ah_p%F=Y`jR*G-e+K&KDcphu8)@pX`8rXuWcP8x@ z>hf-@&3vfe3bHgWmbv=?&Ju()**L@c=R$`z^)$ry3ilLehsx9Be3+hlXNryhsZUqtc1qIQQ$A5vq8vD7jL={3~7~h96(p=gb znH~_UzT1SJ?~zV4WgN9)if(&-*j2VrVt}S5O%LCT!-K?oHJAwH=mhOpS~i40Yc&^WC|mc+pSa<^(!ujjz8!X?R;^*~1McPjwO8TH>Ppkye;O%%M~Ra;mBBiJBchB0Qn*%B1?aT{$E4 zj+n>0zU$yrNN3dhnmKj#3QZ+)5}E&fD`D`z8Tj^cUZ>V*_O~Qy=@^lA=$J7OkK%q;=G@t)!pfjdEkR(Y?r%7aF@47Vs1c@{MKOfdHYetU*hd>33vW4xvK0Ojibf! z>Iyb02;(HpuEe{J;)-&zC=-DP>Z#v6iOwv>n^{|{$6Jn|c+mp);)1vF&9i#9*pF1# zN~J7oOvm?sTdu8$J!RVZGELh2%tepJ?_+YxbEY3T!ANvPZpTg|XGirck`w?-q?&cw z$h~?Uo}i&VVYv*0i7O>raHHMV7&~@n z`sTb+U%8i1V)UneVgitsFn}j5`p>k3z>paOt|f{*_+6nwce4Ry$O$lk_?Fzuxxl40 z9~VVPq+$SaU*F?95}x!!py`_CXSw?s4VXk|3^Cmv8_^iYui!aQBt&*quy?^&zdqUMTC;&9CW5DHt~m z<&JB=&9wp0Wd+!?GtU1^X1%jw2))%(U_Q9|#*kv9A%Bo2Uvev2r@^nukP1#4vsM_~ zD=7i_k00y}x;*3UA|=b0q>VGDbh*^M+12U4{bpt`5)gLUZz(hMyYVsFx^twQl03rf zK~RDx67u0({QZ$xlytl>ap9=VwEjA?RQ5zw(xY zj0!F(81vh|%KuN^ivF7x{U3Sz%f@;0KX*9)mA3=Budd&g-2chjC4X5mG;y+?5j;ZJ z2?@a%cy2ZRB*m9&-i(+;nw*pUvPrj6`w!>?71*N4s{idq0X*6Wj>=S9QRrfrR5RTHU<_V_w$XsM62^$58( zj5h2|=*D+1uU31^@mh03?mr8_Q1u3zIhr40QELP}K_|(*y<(4dfZ^SAP*XHFdZ^l6 zf~zx#xVU8AShXSW^Mh!LNg^V^%5UA4lOX8t-{eH8=&?Zgzs5*l_uG9rPjmBuRh2A+ zX)+KuZqHt)W5xDnO{n~8%~H+ho$*wzkb=j>YKzYun3&Ko;J&-1>vna@)4=C!JJ&U> z`kdJJ^KCP$h;(ZxRAFjMA8umW8^J6FZ1{Ye!BOPvu%5o&_Sux@xY^}Dh1u?Lak|mz z>v=R3OW4`m>q@si420Qtv=R`k#9>7d*jx5yXFo9z?!ecvq}1{p*l6IQTuzH&B`rps)xzeZMJ^M`q^E}K`_7_IXLGY*&EtH( zk5!ds&Eoea_AkhM1{G;II7%B$|L&eNf(At$J2eB@kqFxf<^KNRl{rsETLc7n~w*IYxe?U{a~ zv;G=>4in@ONVsj^UQikV9XMwv?@>96>fZ|DnvLMjclTs*Pm}P9@A5wE@t(@>wvux9 zKm2W@Qpt_{=KUvZJdKf=W3=HL))`Mn=WdFhFCd_xuO{U)$2D(4_WkHS3-4t#V8pF ztS>bP+jT;4u={sNwPUOOq}N(-*?pP&lFs_EyXN0AE!P?Z37x3*+78Z)YC1k%&h+sR zv7?Txxdxtt_&V657?d-GbE8+|Elx72l+r|l!r3p>3X|RO=BlSvWfu>OmCfT(5g%yt z`+g1OL%6h<*jjyx39Rc8*wj;x&$*|Jw$h$lJ|qAqprFhDE-$Au z%$L|ied98+s`v9xv>czV%eKg%;cHYwuoRv2VJwk^1Z(box8Lb8QlfKyx&%5|b;ziB znUtV2Su6E0#z382L5Gf8il@RqJ#EkA&^%`{jpjwwTUT-5;MfLj^HyRMKZ}%*kqazL9R~!!Wzr#G)cNfj(n|7O+1rbnZv;zp&=^wLY0QMhdXuV zYKkguOQ0KP#*mfNvPRg#$ZIlVdX>seTgJJ z^cr$K*;jgYLj6UGq?cG{{`8mgNL0o-m!4WAlqe4u19qA#cJIYd6vN!4!n(2L0+6^E z{YO;sG76;D=-&9R`o~BId;)D|5if_Tw?C6yx1Gcl2d~V2j<4UJH+z23G~bUJVd`m( zc}6lb?zayd8a|`c!Mn`4JU^uQ><^axKB#y%sCW1Nrs@8&E1)YXX-&|8S}Hq-k?J6^ z(}#&GHCivo=H0xWZs%P+$Nn`hZ))Uio!{6?yI7yZQ&gBOqnyBu0fb2U^-)puD25P+ zjBzkjjT`cJMSY3m7xsLG<~3{9)Szzz6!^!sri8`NMM{;&$@YLEWjl%e7IH`!5HX{` zzK;3uB~EjZLw{moWu;I0cX@> z@#@MGr2PyFYjc$VyFE2*5+TdJaD8bq!5$9*a+*$0 zbEb%7RmjdaFq0}uZWB63mT*VryQNt$!kQ?wU+{+506Jx5xJXD(Wt&9vS^g%ppc@hh zMFnxR`txq76_n+iGPX`A&!-Pq3FlT5CP0Jn;SZ0# z6Fkc97qpj~NI=q45A*4wL>dcGrC6|Qqkhh{$MieLR7;eD{0YhF;l7aeXMF6|&hZhXm!+E|f;f6+@bS}1D(b;rvmoHT=C>cN4aH!;Vu!5nk0H-TqY))_% z?LtJsqfFRZa;&98a|#gNzZm07f*6Ho!{?EQ@&;R9HJRffqrPM+qY*$rD6Ld}#d3mx z-*KWa$p+HLb5X_|(TyeuNy{eR#jB?C`;`_;5R5ke!=n9^{GW;38(yB2`TCIR$4a!6MO)>Geb1JIJt8S zw9AeVL@r54jv*LFS#=Rkdh1n4x;;Jl@*KCfv@fD!nD$;)Gd^B6L^izNJ?Y2L-Np-~ z4PhrP(WZ&frc4l;m+47su8x^EBH*2cZiR!%yvCL;6hd=tt-9oEY;%0M!ekEa(Sap4U?f7<)oU?1@g|sJ2zS^viU;syMTP4 z&DbdQuPZ4qf8}DpDqiaz`WCGDwXc^6G1V5E80!@({*VK?jn@PO#JF!uPM z#hKjp(kb#3rCoq1t%BGJG5oL+^)+Hfj9*X|3Uvh~H|ONBNJ$_N_W_b5(mOa4fVvP9 z6B9eVLKa9bKV`8>CrKok0W#cz>afshh-gztQnNvG zEZQc_?BZtdKzhgu_=15~B=>drYj+wxxH)+A!YzPl<7ffGS3*)@U4{``X>J*zd+Z*{ zA!`<&bHV}$9-qliLp)fJ0Hjz2l6nuQ7#fb}EG8c6$R578mn;gT?1iV_ed%^H#b$}5DJSsVRE(oL zG*u4xiJTD6pto$7gR}mudZ~(u{Or}=qT~p5pgnJA1fv8dt~;ogEO{rdSBm)zQ8pG zjG64)cL1^K}R5CBEJVJ z?8GyPlF7*1WvDA)I24*QHAHT)@MjSeC8Vh&%4k*mU55Dy9*Z6P>DNX`)|ZK3y^VXe zlsmGw;hQibSQbTU7szPRHJ3}*r|{lBJ`j{iP|%H=I8clm4Q7Du`P(s>J_#rTl#~sJ zE8{l!hqHbKT>6K;L{%V?$@@xLV)M6dT1)l(!Bea(FLoo{TR2Rd)0xci>q@m#FaSom z7UO{E-=s6ihnXgZed<0>arkz)?)Tf)pxpC5P7?<0nfoavs;}?n3{q!=oMm7VEdJA;2V&<~Sl4 z>SM(E6N3|_o|NKccu3s)QP%)09st7Ls6LEfc(XhLjMlNL_>qjUPakeJ2KhTtMHaO{EC`hq+e^i*)>&WA*+FK(%5 z7ENj6)E{PJcS?IaepIqd@+ua9I0;Yaq+iV|pH5A*IQgTQ{EksD6Y>&o9At*bmWj`X z=|!Kt20vN(c3n<+gnzFv7n$9^IOP9MnXH4lRo5mOJ8c7l%~Ed+|8d)ZqU?o%q8-U0 zSyuMNexSLCK0OBOuCGWSpNqjRWX1_l>40fPokuR0D``zkdAeO(hBgRw)jH_x`%3xn za04@SAHjIKf>RC(^k<(1?XiKFhD}Z)m5p+TY;M0~jv&w!Q;V{@9Ad5AFg$DM-0~=dQN1SbWc1FYjr$>a^Inq~N z=vh8}$e*ksU^ISSd!nCSmBBR%ilMnZ{~QN7dR{zMCq{@Vc{AP;b!vW(7%FfBIWZAY zqjEmvva*v!#u%ZzKuhv$l4#*J`#gsz^tIO!ay#_H2vpY;s|iWoZ}i=K%rW05V{g>( zY)n90onUv~(AKNS&;t)p{k*>yad7?zV4O4C9eZtmMXxTq6@S#G5|K$yk>*y|18J9O zpU!Q=&H`SJS3U&84Y5hvG#MC&_0w#oDo6_}Y-8oR_Q2$ml>AR1y#>zkI&z9jbwB)4 zoxF_hoTL~CpLVVHL;K>VI^LhqgEzfRne^`UIU~}X-wuD=iRbAn=0UX+t%?yygHUj%|~D{gi);mf@3no54Wwwuv>t0 zy;2}mTYqS=&hu6pEPMylvNizw%lX0Y1NtS;No$!LX9GtB)z+ueTx;hZ&Ypd7Lmo>q zaVkVk?I8i_Tv}cRrk8qskUP#(LCOS60Lm2968a*hl+gXG^Lc-Uty3hO7~0_ddgj^j z-Kx7V)^G-nzJ!DX!Wn25+IwDZ@oP1#veV4X-`DCgR_|(#%ij)_#4`Da3|I1yZT>gN zM{HVl(rM8Yk(P>Aayp?5Xhaj0=S*5I%wlWn5mQG+GK-o38} z$F5^@q=ki=F(ccyr2&Xzgrsq2(QjX5+DQxdoR{vl9)IK?zOGkc55Wqx7O1j)Wsr=a zuTt9Wr%b#stpj$^iC5!SYNv1;!_pbdKv)76+qawJ}8F@=>2W8cCX803U zjM%K={q>PBxI%x<`KSNQAa286_Z#)c?xDVOqbn8y7^>@0Zu^yM%9Ue+@`oCm^qn;B z9E9Xu*uQr7F=XP-2PFLCk(n?v0e2>NgmCJSW9p8UXo>Hj^`+HiVQ>)a>gr}rWs_n2 zIs^3Mu43wWVXLf9T;~Ko!VarB`gD1Yp}tj=k zSQ zCFR>^fL!7_9rL9JfN=$6%!!;GA6gKoM0mukcF9J`b1UsL2QD%HyknZAt=vuy>2CU0G}zHHrKzYx%z zoYehN*-3rNy_8rV)y@he8u7cb=X<2C!~$=hK|Gw@eI@PQF`_2 z2-Ee6!@g@TIcOPm^z7K48)!@}YLI(Gd=0$+Oz9kYj{(@@9Dfi!ZE<_db>C4 zX!70B4L89z(WJ&f5Lv0^W1eWk@NktE&s+;lux+C&&9?c5!)m z7(^4!yk8I&7UuPo=b~pv#~2ukwHG{Qm>g&lZUQ literal 4286 zcmd5=Sx}Q#6i#2eAhJmyfv_lB%f1C7BuEGZi6FQj6kG~!fEaeMBHDJG+HIz9?exK! zPNz@q*49o(9Tk^RkOVgtmv#(q(03lbp7a0wF@FpwP+Bi@2>EmG`M!J3ckVqwp?Hga zG#Ul}R{ZR(Py{FxifA%=q|lS`b79bD5%Hpl4-^W#!DDJ_3KJ6(7a7&#%p*j z`6f3*xv_A zU+)DO`(R&nTWZ0+XB$H{8!ToM)XV%3%TnB5Eb;7ywreuAx?J~YE?AN6MZuVV=<;QxK<1Da%aHz zLVS)D`W-{a`RFcmTl=Bg(vP^TMj8H!#7#&mKS%Z}Qp?UFWz88Rntwugl*x(Bdt-dY zVoYi9*V@|+i8P-J8`J9AuhWKflJ>;NJtD)EXSa& zx=Q)EC~!z$_d8;IlmP}Ee~PZa}W8AA_x8U0px7EO}St_ z+$Ih;1rC{;E+RUm7D4{Lvb-;3|0%{+6t@qf$a-JkU~C-1s$F)9!yt0&?h1Nv<&d%Q z0^VQQ0hLny5{LQhKh@L*OV=pE&+uTR>NgOtl9%^pT zIdLAE@HCe?73)vX{~Yv}Zf?igp2sNd9u_#P?ifb$Dk}ng-l3ZH5-d2tpEw*9YQvR7 zRC2ZO`9kuaQQU!wLr<{wz=*)XvTqcu38l}w&ND#i^Bximozv&kfDi}HN33=?&G8}~ zhw(WH)@47P z)3poUf0m^al}G->`cEFCqL(=IkQUneQP_AH1-mc7xbqSU8g9wz)3Cz^UF{WwE!Vy} z|FfOHK3>RP(}k*|f1&cTr%n##J!2GyQLNcFLYf#RT|Si8=k6gS84uAJ=&9J;4D&>3NFeT0IhL8O;_i4au; z?OlGSGQRu$Gu!>Er29o%+=LCicd+ijO_cAyfwHdaDDCKjrR^G4Td%_0e1&px3HkNs zkX7+5VpA)i3JiJ)TiU<-{VVhzO${^lA0es`gh#}R7EZ5ZVQgV+F@k9{)SsxRXASV1 z)|-6alK#d1qe0ex@IAymQ8e{N(mdHK#f;-1nb3D|?;$h7bBndi$8`O9>c1HOzv@4^ z$7L)}!)_Z~-2S`B1jd+c*y%e0b6kw?ANCn~e|J9IpR*pUq)FDQiTX9JnYkFR;kE38 rea#eecWl@9To+uM 0 ? editor.scrollTop / editorRange : 0; preview.scrollTop = ratio * previewRange; } - function render() { if (uiState.mode === "markdown") { preview.classList.remove("preview--raw"); preview.innerHTML = renderMarkdown(editor.value); scheduleAliasFileRefresh(editor.value); document.querySelector("#preview-label").textContent = "Preview (mermaid / markdown)"; renderMermaid(); renderCodeHighlight(); } else { preview.classList.add("preview--raw"); preview.innerHTML = editor.value.split("\n").map((line, index) => `
${escapeHtml(line) || "
"}
`).join(""); document.querySelector("#preview-label").textContent = "Text preview · editable"; } alignPreviewLineNumbers(preview); document.querySelector("#characters").textContent = `${editor.value.length} characters`; document.querySelector("#words").textContent = `${editor.value.trim() ? editor.value.trim().split(/\s+/).length : 0} words`; renderGutter(); requestAnimationFrame(syncPreviewScroll); } + function render() { if (uiState.mode === "markdown") { preview.classList.remove("preview--raw"); preview.innerHTML = renderMarkdown(editor.value); scheduleAliasFileRefresh(editor.value); document.querySelector("#preview-label").textContent = "Preview (mermaid / markdown)"; renderMermaid(); renderCodeHighlight(); } else { preview.classList.add("preview--raw"); preview.innerHTML = editor.value.split("\n").map((line, index) => `
${escapeHtml(line) || "
"}
`).join(""); document.querySelector("#preview-label").textContent = "Text preview"; } alignPreviewLineNumbers(preview); document.querySelector("#characters").textContent = `${editor.value.length} characters`; document.querySelector("#words").textContent = `${editor.value.trim() ? editor.value.trim().split(/\s+/).length : 0} words`; renderGutter(); requestAnimationFrame(syncPreviewScroll); } function scheduleDocumentSave() { clearTimeout(saveTimer); document.querySelector("#save-state").textContent = "Saving…";