From f12ce763bcec0445c5586162492730741f152824 Mon Sep 17 00:00:00 2001 From: TZGyn Date: Mon, 8 Apr 2024 09:22:31 +0800 Subject: [PATCH] update sidebar to use regex --- frontend/bun.lockb | Bin 208139 -> 213634 bytes frontend/package.json | 1 + frontend/src/lib/components/sidebar.svelte | 33 +++++++++++++++--- .../settings/(components)/sidebar-nav.svelte | 12 ++++++- .../src/routes/(app)/settings/+layout.svelte | 27 ++++---------- 5 files changed, 47 insertions(+), 26 deletions(-) diff --git a/frontend/bun.lockb b/frontend/bun.lockb index a777d8d7984eefd13e16f2d9a24e171cf8fa2ed5..7b5b7d90540c833217176484b1756a808694bd96 100755 GIT binary patch delta 33768 zcmeHwd0bWH*8koc4ze{BMTNs40-~aVj2;x^IDm@cJc8o^j({@B;H-f2thlpBa0KTe zQ&Z8@9LiD~%&e|xT9%cTX=bJ6^!u*;>z1-jTfK9;<``;hjz4yGo?cQGN>pP#@n_SjCo%Pm_o%S^8;Td1&$4)i^UCoPz zc(~T`lvIKLG!%q_DVa&Cu(znlDP})R8$g+rnr+Fo<_PIixS?Vz2(_TkO|fRAj+rb> z)#SOr+R$%Ayn4Xow9EvG(YolKlhNBw5M(I5Y6wDI;9Ou$;3UOUbjo)|D7h>_RI-`{ zbOL5WFan1FU4fT@r0)!*{AOEoGSenl1%E{LfZP;FUK;`H08=bEnG-VvA>{?0wK|&L zI>;x5C+6f>a}os?K|la0vNCgWp%jb|s4Ul%3!+E=ObIlTtQOW1j?xJ zqHsV!4tY&`OF z8ViCuq#-~zV0%sW1X5#)z$U;iVFb3|B+v_32Bb!urJ+>|@2bfyf#k0)kUE0|q*l<| z%$k#smztK8FYNLW1k_|fF_5w~2T0A4qv=O!a;z5KUehUHOV zq(2HIzuUC%mw=SsOjS-43ev!kVH}VQqkz<115^XFiWY9C$v=5>2RRe0X}MNGxY(Mv zbvck)ZwHV{>W1Qz{DyMYwz=;bXsPy-tmE@6X@alFs%uTOgFCoE%FMs!tHovuWHQ z2K3Yb)|_-dYsLg2$vVN3mS+_bGc(7f!tyct5mjt1kXmqZUX~hfW(S^HZYDZcW_Ipm zO-=)nJ-nnQWaj1zsfb7;d~7C9aDbU-qzjNnOt6L?Kx!Lb4K3N@awlh5g?@Nq2a-Q04Q+vr0=k+B4lw!(ngOW>Y67Xz!=rfT$jw1c;b;S7 zDq%!4&qyGUGVY=2pTY@ckhB>8M$G?@jl!KKZ+P)Mb9qa;%KxInDu+!+}6@)K1g80vkhqID#j92}pK_ zG%N;^{WPFEaFm9ffE3RM=!S+Ys0D@+&K7wMq^M(65bh@O<{O80p&Cj+eJ5CQtVx;a zdAX@+7}PwxHSDRW8Y`tWJ@UuE3)NS=hItuTX?e-18A>wmYqNn=uZbxb>q!y)BjJBFlme4(z{!OzG&8Z!e^W4xpT`>6`DA&eO=S zWMrlymun!?_{g;+Bv=yCtaBh!zb`_<J8L(jtFfXYtOIGa=cZdUyqwTU7?U1%)FF4{L_IG+YC8fPPk%QdY}9|BszCAdio~ z|4tti^8au9APoY&4^Bv>g;o%sP`PV?c6h%?b6h zPRbSPuT~b;ZI&MmHRSWJ7~E@bFAqb0vo~3dn;dy-UdoE*kXHg}zSDQc4w|g$ z;jG|SBtRwAx6lPUUhQ13cg_4dTW7hy*IAi4&S~=ChNt%U$BX-q#=Nm2e5>{QqNs}B z;*w7+9N}ti^IFA&Wl67XxN%SV>Wg3E%BMcPAHO?%mD4*T*TgUL|E}e$bs8OScDa5n zza~iycGWr<8}-zG){&-hUY|Sd@4sUA&CKl7mk##aXm5J+!OQ)pw7h%9y2;n+R!OtW zf>+nO9<~!tDREwA@t#tQ->ympeq$A*w^=-+#NpSd6yvv#Qi0!fim|C#ys5M<2O(#Zf2I3*ARpVRD__E`j`ywLW)w{n}v%G zN?dcZ+}&OfaGy{hDy7~gxd2imm)eBcLTImCZ5l2a2|L z4HwH5V=J@44ZTIpm|-lq5M^zfaCsf+5W|kLE`FgHTbm8d(E6RJ0CEaADi}{`pHk7< zEPoAMZ|H2*7$HiWpIJ;&iv7&;I*cc>Rzu`(Aa#a>y!e=8Ukr_CNOhG`Ka;!|Ql(${ z45R>ViIP54jBU(@?&y(`ltXc@QryOj4Q53fvs@RmN_*AP($pl!K%&yxD4xws@;pf7 zvxb`91xQpbgDN#fKc;vHLyaXWae-#>MWr~CFn=%N^d&0?Ao7i^Z-V<@ym98s|}H;ErB70@-qIP0kDJds|W5*K2Y zk3eVUDM9y}QUP5H3?E((mNj8YT&P*z0S$E)NwKsr$zNy^N{HOKIP)^0MsvdKAyD^_ z6eJ-ZhD6cOSwc+mJxKnL3~I%A;DJCVE+OI3N}S0oZ-$PlN9`!$1Em7G?k+sJHS`pOQ7V^P$z24;?E<{?&}HCw8aKfWp%}8+TM)vLUs1V^ za!pYxBFy4Z#n{1Yc-;q`O>yrKZm?-42;Ee!2e=rOQ^4`iOO-m$=DJ-9I3D^kI3D8{ zaJ|&HU0Ue6#o+p=x+~y#XbWH6OC~rT_YgSl?@6VuYfC+b0*>eJGPs_qKc7~5+zfEs z^N~uOZEMY+90QKJzpY|Hn_q=QUCBlrU`9XQ0r}8~gVdRa1)9XwiZRM;_!PSC>J-ov zU4{A%x*Ucd=DsMiyi(KgPW_1z7j2g0HcCl!q};1bcMKVG(J~A8q34bVIM;Zf`rUtKJX93BTO}nMpwL2+>ORv1%59n#_ndZwi4If zY=}mLXk|qAaKl1y-Bj)ZxEPgl3D!eLf#bSu;JDr0%Fqzh84sNfu9q73T&2!2l$w>& zNC3w}UjfIx`~r^0HDk#0yvzp2b?<@WFAhSF8n1vyrekh36@JQEW67t}fHAS4>3szfVWf3qR713W8NeZo=dxB+JQEy%nB zQa^bLiOLDz=wD%&j;ZS+x85|!;|7}Lz0lzwENI5Pt5iUjgsGJ#Iki;sW=Qy_mH37x z+0yhSdt+jzyvu5jjngFbUq6$$Oof`4mBH2L#M8^vfM=w2CAVHe}qyo)GWTP7~{rncS( ziN*uG!0v`p5l7n=W4zfg6U%0#x{9ArisQ|)9R?Vsr>6BP7iqD)UQ7{Sn5SF|?=N zEw5v8$%n)z7tHtaX-L$J=#ZE|>cw)OynFW1B%}<>C6K6lam&+?C>~OP&qt7WwWG#l zzg}FzW(ZOWB&q>B#nLv+9s*?=P7v)OBs4KOL2E@RaS3L*0K=2Xe5bN(!@wFrw1% zE+iC8%SHEu>QX7BsstWGLiK5u0}@dVT@tq_#_?wPSLj-+I_fz-NqnHHv!0v_i8?yp z1Mh}JJ&yODuQiEpE83$JG{6xLb2DBF>YGUP;Mb}o^x&tE!j!As!sWJOxIYXk4AiNR zXm#KoUV%h|pRZqcE2YxGrrJG|(H|%u0&dt5x0TY@%igd9+QEu@e7G#6@ae!t-Trii zM7dUX%7z(`f|a$2;qqQ^{^W(Gzj~iR!n{!cmjd~%r_}Rmt}O2^zmUoo3^hQpC~9Kz zBxtqH9&eKOLZWI?7be34Na*Cg;RfHaD1@>$I=pr&xK5h;#>(|%)r+)atP-CaDcg^$ zUauV?Y4y-NOdO}UYL>2CM%b2gZm*7Y>2kUfKOs_X zl%ZEGHEM52SZ!$03p2@UA%&~XXx_i1NqiOX$<#`#STIi~LDD*VHaV09~_`%abDI`&oQ`Q1=s3=y)Z5a-^I(UY|59i6(icCSgyBjmh_rdaHS% zyOZ#2Zizb=EceqZC7NuGL+Y-kPK#oV9KM0%H9i7TureYfTwV?iqnqc^@GYeN>ckh3 z%O^zjmf4U232T;5xM3Z*4vKq0ge{ms%Gzn+a&#VcUTT&ogG(Xt*_!6!cOmf+a6K^0 zb^=W(h+;?thoKJc1US`=q2WZDMo5r80T%2kbGg;@#z;Q26 zzztDD2Tq~M2%e>_QxuoNNW%>%1}W}^;f8io$t`iKz~NR2+|S^6Xpd>+3_5u;I1EFY z71oE@PS+!)R&r;+@#sD?C@Hz5<7Y!F8S~2&pQ!6C7?7p?hJL9-0cys_Nbc zhcYA7Z??`Y2FJbJs?>F#qo-R64w;@4EH1)kba$EJQWPn*Tdu?dCIK+| zcP;0=p@upce+sF+ng9lu)TBs>UlC~-ScFlfxCe(D7K6i%wrRL@u1IlFBBfd@lz1gl zj$OeUNL?wUr7M)nP`&{r&n#`c+!QXU`#i&NNS)OzZUx6vq+6fskYW}0qHxLYMJ0Y^ zq@3^~Y62Njqe)v{R4zlA{1PALd}&(`X`q^Cc#vF~Qu0!ye1P#;w}yHz^CKimgl`X9 zud3XDqB|w5Qc75)yavjyFi|&#@{f=xf`GNaB!?FB^l*DN*d(WG5?^LFLu#v9dit28 zE5(XSaimU~2danQ@8m$yTrB+zZqFRo}|=zk-^#0^Tx`bfEOLuFqn46}zoPSxr*7)#ar z?x1ifp;Rf^5Gn75f_x+U(I)w4NSz@e2WVPTnG#_*T{C0&3ws517XEa+^k&Q z7%3gtthj87lz!N(!~@!HQA##N$`iNnc(B}rdw57a;Ds-*kz4uhudX`yzJWwV;U)Fl zrp^`7sB&=BHPPLX@(DI$OwrJNP3* zqvF}pByWI3eE>eAP15H(6qjx7Q(Ft_#uL9BC7?g35hw~&1Jn~lS9P?3j6H+8P3xm! zUm#u2Lp$ZYZBF?VIs_zwhJq-yco1FBLkb_RhW;KY^-&-Sw`k$dL$XWK!hve~s)90r zwO7r^7|no?9HwY;btL^*5IMwFPraUpwg|y)O1-Kh#m}MbA6+>hGMosaj7$R2_0NzT zOd%u1eTS10wZlPaaKu3^&kQKZ3ke3$Y!F?9q{lj|77Ht+D$fVfMMz#3g2)bQm3sX% zw1)*IZ}kG^s}V7ItGH4NASB0_j@9dVNC~b25n^stFT#2tbW?iuCmaUV0==op7lCwD zA#cxWia#3s|I5_ipMab|-*b0WsHI<}_@lvpSPuQW9Q~67Ya{G8kd4yon3E?}yjuGj zQiDmVlA}Rca*U5xduS;@#t&K50?NP!KQPo^rIoMF8HD5^8u3F3_mohM3C_3 zkk{|O5#i4|{*!jvc%=+braRz=YO#k_g6c>$6RYW~qm9yGcXK6ex4l}HzM93KK{D-! zAFAU)TD*S;X)d4-gXjV(%5h^piNiG=A&uuGP5$3N%4-Vz(Wn`x`6Z;7YE`W8aQ~OEsJ4A>~~A zT3Of&JF3b9KvD7A>!J3_LnJ|aSi{#y!1Z6ieEO6@ID-T!TkmQK|2L4T<$Y0`!QV&1 zRJRv_l!uSBj1W@W{!PPa*R?`i@649UTL z*ipj2X!g~SR1fe&_z*v2_lN`yX$h;3Vw1k1hVIT_D2E;2c+vc$TyqM3HV15{-vHWluQXL$M$FD(>#>}iS{$}UkB*=FCy>O zlpxj1JS_u+)CuVSP0;n9Lv2|7=MvyskgX_)0}4_Oq>gk*E7+lYFw`%PYIs5mASA<+ zKs(^untVpXvp~9@hZOIe7G51m^{%ETB)k0gGzB3k-Um_-`BamyYVvnLx(JE=UeiAU zQoP3+KA}Kdgrt9};WHpLv4kJe+mL{PyT05|k7Qdet7uSOE_X7Lg8mN>IdlM$RXtKF zYtK046VnJkG$%FILOn={i;!Y@0;zI+G`YDJUL9#NZ4Etn_tWg!Xml_W zKysg;MI)qgCTenZq-2scJs}k%6-fGYAo)uITS?jJ>+e2xqWaHIi`;Io)dw-`N^L?;*ANISV@U-qz zU{7s-O;u;RWzMZyz5{Q^W*l2_^!%4wuSGxYdCpw%kvV3t|D+8eb?3|u%^+WH?C|Xy1^X5@N%tsul=Eobz)?@$ zn!EUinHgn~>uYv({pQyj9uIDW8`B1boHhOS`LehNLq_}CzBzjM@;O%O)gs^Y@5{nz52Xo$rb?+ZqZyCLO{5KyZX1EPnw|CmeYPHv=diE0c zUMe0l=fuy=R?L?A7C3L(v8mm&73o8tRs0x}JUb?!dBxTq7hP?K8Q&A0HntzNuKv=+ z$D=OBH{EI8nzg#Aao$N28_@yTJJ~Mmh3TKZEr&kXIk)vIZ~jsg_Ep(ulgi?=wy&u# z*0K5R@PwSVObx%k@b;zL;lsY!_jFH>QJ>80_IbN|Pm3>P_dLem9P!$tH-GwNJ3s2) zmY~-XW)E(fk@9WBcTPRLB+YrfLD%G87KKEZuiUix?eq(+$Nds+e9>pLSL;scUEZDH z`ud`T@AE!yIVj9-rQObHtac=_cl3};<6qXjHg)On+%5GEPG1z!=k2`u`})+B>w4At zT6t+*ns0+`V;*}pZrtRj7;Zu6@9DaYz=&)hrB@nz$|e7m+EFKjq=>r`*!vL&%Y zNA+OamJL1HB#fn-Md#R_qe>@!(|uPP+c9PP`h0NvK;W|r>(}4i-mK)8EM8HHI#D^1;&;jT(>MwsHNiPW@i`FuLc}@3*qMGibExwKs%`;o=b1qN7-wS;NJi zVjSB`ic6$u7y-pFW{H4eekUkSlVSv`*8z&K&QRoafMOIoNs61K@QH-N!p28Jv8oFc zACn@Hd77c<9tFi5GZa>KffNr(5!w-oWLDS_ifz$Qd_{^>7T5`jp^dpz zyFn4%8H#jP)ESCHr1+T>nXFS6afq13iV4QEdj#1mCJKC>+fFc% ziCqDcSRBD*wwGWEle+*Om>!F z7W3?ZsNMS@>YN^kI)`0=LY&KddjjUMLW23Mf?xp)j0G%Y3kVjm>jaBgyIz1LtcYMK zyG5{!b?OaR&WZ_&*gb+3ET#`YVWk8wvR?^SvVMI5FR|?ejEVgKt5_UCG22T}!sPyd z)yzV$h8-qY%jyjPtYfJJ>)A!25e=8 z1lw2z!FCon1h9iGAlS*S6YOH`h5}w@MFhLqErM5Ar#QeKR!p#$-6Pn?V&Va>vQmQm z>{o&Vtlu!eLAITsoQcB$hgclJVYZjxH71V$9AOrMqwFxjF;;IR;B}TtaGaeaIKhmg z04Ldaf>Z1)!5hqTG&P}>ns79l@HD$Xiie~KwLtMUE3`ndZ44A&k>V^1On_o&G88Kl zpm>K}Cxv|q6w!%LyvK?Xp*Tc}pGk3^bxMLFB^8RzNl;v1_ekM97K%YuC@!*6D->r) zVHg9&$E@ENC?<`A;s7cB#>8YOTBJc?O@^X^?Ipz}QZ!6~;tI2*KrufZiqoXH%Ic*; z5tac(UMduyv6G~@NeZ8_P+Vu@$3n3x6N-;X@g?&d2SxWRDCUfV;wyH66c0%eng+!; ztS}9VZR4T%iWIk4U^)~-v!Pg-4#juuIw|aPpoq?Z;(Jz<0mUIw{7j0wtWzcwDY;N= z&V=F~yGIJ=JSYZbL2;jzW?Wvc06Z zM2dzvP&{Im94O{bg5oqOp0IkkP=rl}A}<$;XY3>?Zj!<$PwXj)63fmL2eVaEp!t|I zHWKri08RI)(9D?tjX`1`lI9_4LMK8~Lt-;0LbGieG+&WMmRQgvXogOQX5}PkYDw%1 z(%8>{CVDb7wI#M+~cts^Mn3j`H{=K7ysv|88{cpTze#+s; zUabC0S&Sktp6l_r7cb@t_5ok0jGnFTj`~L-`;`gS9-p0whJwWh&}}U7wAK|L7XzT8)~hd8nR5 zbsnCb$;%(=q^feUjv%;N<=z(!NlWmKmQpfPSWW$}#gr~%*Jg|Us{O#tVw9m#kycz+ z?&Rnew8fB@w8&1X;f*b#n_(M6E3?8m;*i?w!QykHf-mqHrbG3rLQb1fjM^5|FxB_= zvg)~L^avuU6Vp=FKg2{mCU+Bie}}kGuIx?amYw29$<-@>+H+mazMf<*2)mjxv!m1j z&Ghsczeu}D-6Qe0qSa-JLvN(%+N{~&UXgl*dTn7R9VN&7?OG7Mq;=7Pc0fnb>1{vy zv3l*QmW+p{ds)*_GA%XTZcRsDWzoxDx?a)z)dW98)6rK|_?NGKo%S;?puq3c)T$En z4_IE+B4eNl>oq&|Q!L2zb-)HqcaS?&zk=PQ>B==7eeZyQpkDOh76sE+CMgmgE>VW) z=`MZcQ6H3wP|{t{45`A#YC8JXi89gv6sjfiIdu3(e~?aSrs=M0I(qX=pAS*(exd0o zoof^U*O&Ay6Y}s?UryC~Q`1qi>E8_8 z(sb_7(dR(uh{CtfQSIe7#!r-{qz|A-N$uMeMAc@8FsOwlAo>7`N>oGBd4i|RQs(V7 zofr6N6akm4>Ab+Kt=m_cr>I~`v8pqNb zOCCN{!BnBtk3R!_4x&C!U6?*Zq;D$A*lB0Uqdo(h0m=krfyRsM7iY=8@n(423c{4C z_UH^$!En$>&?p<$*(e3I{SaaF%pn%k8$=%u(>%{b-3-$N_8@9tJ z#pmBfT>84E1;`iF3PfMuGy~BWKs3fh5Pcm)Uk=fy+M}Sh2U4F{1Xv7O3c^yMeurBC zoC%^&nce}>w^Z9eJ3u=@(-AfqluLiiXgruPpk$B*lmJQubpv$=#ejN%W*}ldC=%2J zJ0(J5UXfJ&3-ql4z(uMTzL+Ec)LmQ$X~eAm)JPg6JzS`V{Rj=rs_1 zo;DHsB+wvGPf#qV7l;O{2k1UBLr>4>i&Od>_AKZe=p7Kg_!Sm_7J_DhX47Y@G}{({ z=p(3cz%)>O@GpRBgPcM1v6l^w3%>&UQHx_{@Kw5Xkf|`S9&2R+KjC>W;8aA15IG!>E zY6+sLJPNb~VTGXW;G=;wbI$`mAG83p5VQ!?YcYP7fR=)mftG`cKr28B=ta;<&`Tf& zS_LWwm4H@*)_~T6W`pLkCGJx5wgq4dK{G+KK)84JTaF!fA$YmhS@52wDMMBVcXN3!u;8X99?p6RLH6 zhND)XFP5pPPlMoEa0k8#qOZ>LK)IkCP%0=HL<4OYC>}(EsRM`xR*Wc=AMudx*|nrj zMZ=AT7Y(z%Ae!)KqN53qo(I$9*HdI;JS8t5($Ns4p-6T#Tq!Q;Xd5sa6vy^9laljk zgwyCH)re}m6+De}3uqa_sA*^xAUk~~pn{Pd%@#ytOP@mM{+{PU56gz#co8#O7MM&> z28agQSP%_5qV#IKt|N>`CMYA+0uw7gPj7RS!^oE4Mh2LXD_#qf*UOc zy9h)kyFfcYB_iAHEqSq6FUg*{`AV(((QLRDv<9>qMC&|l2zG*h19S>>5_AG|9P~Qq z80aYI2ZzTn=Qx&B!NVb07?TqgUu7rZ=kP1H$c}x_@}P%G_Jn_ z(LVS)APq*^j@|@)3;Gds2lNx@XV7i>e=MZ;Av)a1JSme*4f73#{y|LO#3s^d4s38)%7HkAKH|WEj1o((&lS%$aYV-R0DuH zZ)N%J))JmQh$BP%gZu-7%DebWZ-|ciAGxI7z^^gvSsN)BkEVkIq(WC(-f;I*u>Jdx z4jqrxwn*a00RLeBzyM(xJ0Bn!T{pr2ov~oImDPE&yw1o;Q}2MEGmW)lcU8<~k< zHX9cx^}^HN!z8U^oid~bcEMz~mDLDB$Ub(#1XUoZjVbMQ8R|2ukS9{6djRYi0qsdZA&^ zD+}U|-!ZJY_I(RD3G@&2H_`0(N+?P)mz@noZuA2zu0MTmcZ-nPt5iERu^}w5E$p(H zXO7gUF|wzhc`-UBv6k0@L6>2QrlN{cO`S|3f_~h^#<3IfCO;kK4ioeSYKNw%;+n|M ztUcEAE!*`utfhne__O!gBHt-YG$G&mff!}MpY&e8`B#%>hgwwYx|hfs1rP5mosm1W zS(C-ftX&vAE{w`p6*f!({lF4E1v`8a?%jKK{zZrD{on&`LrmYZHNz z=zmTBqaNGxBF&?GVbB%>7M^}&(<3BfsQ%~o<4Qif<6CFSL)C*i8uUNtpU_}t-uXw* zrrFY1MJ1SoX6zkAb=6M*2wj}pWbLi6WiX&xLci_Do<&Hl@b;`#2gwt!w|aGulJP$3 zKnE!2vg;irqr4Hz4E2x4%#<%BOR^i=kS_({aqRj?)J_ZLS%7M3hj(dGwAh)|j*%MU zZJIRBQU5!>MQ!4jG&|6tT?5PkwNjDFKK3jIoj`JDds5-3F1ykZdDQ>t^?_%%f2`?p z&c{{^!E8l&?8@qPLIYS?;8>|a6IG?3|M9Ai?TCPza~!LT%h(7QyXpsqEL!$tO}Tfy zZ>tQxWJNHL@Bn#NC(IL`OdN;VNA=pCeMWKhLrLm>aUrnv<98lc#m!-kol)4|cl4jw zRP=XO{h*FBHTtryH`7nqim2drD1zX^UV%ZVezJ%2Z@&fhKiAe;WuTw^vCcK%wTrhB zPdH6x4Q#y0vcigtw~6P3-JW^IBJDO&NIRB|Pp?dS6zhZVQ2j`ilV25Wb9CzVpvr-M=*pR23OuH58l+T( z6tlI6>Z%_|(l++pgQY9>PpLAP&Mr{ee0sA971X)V$QnmuL0G{ua}c(M4Tweu-N8zu zA(gXxq)UUhRnMgrXDRbYP!K}X*bE`A1zKun$Pd7f+EJT2i?%~ z)Inzy6IgV2NNH?xcZ^eY(0Q`Ax=UR--wSVLhs8*ln7ZDHft@8DsC*`+Qgx|2$id_@U43j;c5Pq@9-aTLg=XzAUYZ>cGCI zq}A@IC9U>Jqt+c+?^q|QYjT24QO8By2L2oJ3RX=Fvlh+G- zyxi;K8`{!?Cw!BcV;`(2`Uy2B>xch5Dt5&?ssW~j0KtP<`k=;q*;Ih5egIA9O*2;d zh9C5Y9j0D?IO@V)Ap`xynv*wz4J8M@9;2m%E~+|eV5hD^oNuD?ww?GZsVUuUKf71w z{W!$Hc7!H#Cl=TjNjGOb2~5n|7h9cA-W|G3tZ~2GK@3C)tykg9wIA9hMl;;N`t-we5Xjc{L&6cP zydOqJ7xo=Vy_lgt*1bh6y+4#IS!sVLH?boCSN;4M=j+>!e|>zXM^)j^vAbmV30pQ0 z@CEZ8fJ(p9jqd^RxYV)X`LcZVv|PsoWE*IeoPV0{)$LwW5yVzrU9WEaa?43x&`IZpD{ORZI#C+f;51;x8_TflSb$E^Kg#j}54w?VJ&L>F?X_l@$ zS||6dgN4anH*u?gEu5N#o~+jp_|#9fS(W+K2M^{9dc(HTppX^90AG~!vtpXwGeoj= z)z8NX*q5{T!Z%;;tun4)=gIgXTMuJ3W&Mnul^!AEo|;D3SJ{R!_n}BxKa{7qef_tb zhA+bIOwZb6)(-~Q7I}_A$^}D_vVO8p@ZMQTH`6lTsWQIE){}7;R(BYj>Zh@!ZY-;F zsDAxuv|WII2)czZl6?<5NBwM}d3BD>esp~0H3?gAV;pv0Pgr=Ilaxy*V?XagQ zPk*3m zP9mmSIr@1({>eAL+|=X>HV=9#u51a}wqtcuv{VMNlcdRES11+z#Gy->j}Mq$$?Z}V z^H0`*>vL*gFrOLjvWdem+%4?0Vd$LWnB#B^+{SpoOZT($&JKO-?HzF+HLBgu;=XM- zGNzh0vJJ+wLawN;H?l8=OCkFDt}fF~`C)>7V32+k1e^x?x1}Dhzbw}ei%=U7(}bz= z&>{Ue3G{xE~G>QZO!EFq3}dhE|X;l<~Puquy`* zgDfBp-_(hrtf;%>DBT&$T8@y~yDh_$5Ih_!ShcnOmNCyPZ5*iQs82Xv9mfhrNX~8F z8K=JCEm(N`u)~#4zns%RjO>7XUCayoql@qx-_yu<@WN&aqNAHTNBUdjIi*H zdZS~#)7yTfxF{JeZ-mrG$gn;3L#?T^(;86c!VHc#HEGOkq~z?@0~UA?R#5gZBf$2I zOL~>}QE99%EZU~P;ssc^H1w%g=snkwBe zN@IscNF1&kja)?5K~9)p`ig~Ln7BK|1yzQ?0ACY={75i zSKjfYcEghVyUncXGi$QgW8~3o7c8il*NZnO-yYm%hJ`ll4`;D}L{yP}ZdP8+waq)N zIzSJ)Xgs3*v?I0(I)^0Qez}Y7`&#}H@^u!Qk%&xwomKvBq9loYsWOJ@himCGgX@7hsS2v+89#q^^tQwtg9?=s_C&?6{Y&e)_}f%_DNEY>U~FWMolYet6#1C5V>kD+qAaPp9kt`TUQ2 z}ODjEFo+73E*=HQC`gx>B z8Z@duVp;J_^^t-)R9mtqsmP*!fN8&yJ9j#6xbU>fKz-~%+rge=VW%H}8ur7~K6M=C zU8u4<$?{=K z3SFu!)aN2}bMHD1$v*dyh?+(Y>oX3EX!S=T4ce>IsD5JUwQI-M?hHECj_#U*)JJpA zdsM1 z2z}n2C^vZCqY@sXK1Oh2O*8O(LVf&hl=d%S!!z)}Lwk(AG(&QcPAp+NGNh;u7na~H zKRS(mSeg>=mOtQO%!k^u6~1^rC8ot{I>ew*`5y^rJf zAPx%Kkd3jUpBDGs3r&o*X8Hsn2in^S^Vw=FlF4yakRHaB0%mgZv73WtRUs_9tisi5rxcl=ak5swfzgnT)B;#}9l zp7*OlCah$iBCgwNSTuyix}rfZC#F{nt+Lp&k~!qT`&n2}^VnWaoAlO=_1Jmn55;b1 zaTC9p{9erst23%XeqG5%BCea;OMFtg+h<5h-&uF@XABmRV|tAo?C5;0T|RlT$bZuM95JCAR-gv@=*e%Vd6uc&(n zR>B5Omfn}@uVziBNU?7Ed4KOcz2tjr*}=oGq`aWZuUx|xPeBFhCj{E;csn6zcFI`Q zB8Zl#U2E70viSS_sQ1|zpghkddO_O$gM1eGLTJ~}uue>TV#?pz ztB%z>&yyS2<7pV58(15>+;iJp%3TdVyg28gbB+31Igx{#r7USWJ{fyd#$9EuI$w9j z{8*;C3PL6W8f@et!7CD{oLswMx+KjagAbnGP;(CN!So&Q zni(h}Pvh?j;2?g6s4}wo$CoEnkDXg?VU6=q{eS*-i~*hJ*DdVz0(1@i5X4138LJ2G zN%{_1)8=mPt?b7F%#tg&vW|rqq9-bRLDA3Kj{4+{;v2`EUx5#L zwT!AexRotMTv2xM;@qzQo#=9KMOUvgLRvQ9$e0*&cX(Y-@CJ2 zv!n*C7wq8q|Hm%@KBteUaBX;r-JT^4#B;??v+)^51hW7<=^I3PfqiAr)J;QnHZcZ3 zroLb3G^ozA1|ioXSm|uZ?Ba$cm(;VvLf;i9)p_~>eU*jl+fL=b&6WzqT9)M0M89ln zvUO5c`INcRCM(N#w6P24nl^rI(yJNx1^Cmm)7<1KJlHQc+iInQ#QoB&I6Gc*!z{}s z*9iTw0bJ;;9}OQ21jL_cO~|q&j`PdO%)=?HIl4F@H9HrF$+LHSZM;MOp!7@6Ov+2M z=D^`U2toGRGRtPk(_1&t+*gaDY5aoO^`9hfrmT?~iEY`*<&q~e?3Wzby){yk+Bl<` zvOOjfISyq%tdTs;e^*Kv{GARNKoLz;z=YI{Hq|PLT`!f~Jk(lND-E%$g{tv_Of0az zO%qp~1C3C6gn-m(0Kr?c*pAJ~%t-XhvSjD5fK}+h z9WO|>vK21XXAkUTk>ulEWn;}oNOci46WH3un|eWG+hD9}tmtRSyWH!xbgSe415RmQ AaR2}S delta 30820 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 diff --git a/frontend/package.json b/frontend/package.json index 2d0e8ee..05d6dae 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -47,6 +47,7 @@ "formsnap": "^1.0.0", "he": "^1.2.0", "lucide-svelte": "^0.356.0", + "magic-regexp": "^0.8.0", "mode-watcher": "^0.1.2", "nanoid": "^5.0.3", "node-html-parser": "^6.1.12", diff --git a/frontend/src/lib/components/sidebar.svelte b/frontend/src/lib/components/sidebar.svelte index 05a6bce..a5b7d7d 100644 --- a/frontend/src/lib/components/sidebar.svelte +++ b/frontend/src/lib/components/sidebar.svelte @@ -2,15 +2,38 @@ import { page } from '$app/stores' import { Button } from '$lib/components/ui/button' import { cn } from '$lib/utils' + import { createRegExp, exactly, word } from 'magic-regexp' let className: string | undefined = undefined export { className as class } const routes = [ - { href: '/', name: 'Home' }, - { href: '/links', name: 'Links' }, - { href: '/projects', name: 'Projects' }, - { href: '/settings/account', name: 'Settings' }, + { + href: '/', + name: 'Home', + regex: createRegExp(exactly('/').notBefore(word)), + }, + { + href: '/links', + name: 'Links', + regex: createRegExp( + exactly('/links').or(exactly('/links/').before(word)), + ), + }, + { + href: '/projects', + name: 'Projects', + regex: createRegExp( + exactly('/projects').or(exactly('/projects/').before(word)), + ), + }, + { + href: '/settings/account', + name: 'Settings', + regex: createRegExp( + exactly('/settings').or(exactly('/settings/').before(word)), + ), + }, ] as const @@ -23,7 +46,7 @@
{#each routes as route}