From af86b58776be70ec6afd321ea2f3585723ecdf55 Mon Sep 17 00:00:00 2001 From: jeffvli Date: Thu, 5 Aug 2021 00:08:57 -0700 Subject: [PATCH] add custom titlebar --- src/components/layout/Layout.tsx | 2 + src/components/layout/Titlebar.tsx | 53 ++++++++++++++ src/icons/close-k-10.png | Bin 0 -> 1613 bytes src/icons/close-k-12.png | Bin 0 -> 1775 bytes src/icons/close-k-15.png | Bin 0 -> 1636 bytes src/icons/close-k-20.png | Bin 0 -> 1722 bytes src/icons/close-k-24.png | Bin 0 -> 1746 bytes src/icons/close-k-30.png | Bin 0 -> 1780 bytes src/icons/close-w-10.png | Bin 0 -> 1740 bytes src/icons/close-w-12.png | Bin 0 -> 1772 bytes src/icons/close-w-15.png | Bin 0 -> 1630 bytes src/icons/close-w-20.png | Bin 0 -> 1708 bytes src/icons/close-w-24.png | Bin 0 -> 1729 bytes src/icons/close-w-30.png | Bin 0 -> 1760 bytes src/icons/max-k-10.png | Bin 0 -> 1582 bytes src/icons/max-k-12.png | Bin 0 -> 1740 bytes src/icons/max-k-15.png | Bin 0 -> 1585 bytes src/icons/max-k-20.png | Bin 0 -> 1633 bytes src/icons/max-k-24.png | Bin 0 -> 1640 bytes src/icons/max-k-30.png | Bin 0 -> 1643 bytes src/icons/max-w-10.png | Bin 0 -> 1706 bytes src/icons/max-w-12.png | Bin 0 -> 1735 bytes src/icons/max-w-15.png | Bin 0 -> 1579 bytes src/icons/max-w-20.png | Bin 0 -> 1629 bytes src/icons/max-w-24.png | Bin 0 -> 1635 bytes src/icons/max-w-30.png | Bin 0 -> 1641 bytes src/icons/min-k-10.png | Bin 0 -> 1580 bytes src/icons/min-k-12.png | Bin 0 -> 2685 bytes src/icons/min-k-15.png | Bin 0 -> 1584 bytes src/icons/min-k-20.png | Bin 0 -> 1633 bytes src/icons/min-k-24.png | Bin 0 -> 1639 bytes src/icons/min-k-30.png | Bin 0 -> 1644 bytes src/icons/min-w-10.png | Bin 0 -> 1707 bytes src/icons/min-w-12.png | Bin 0 -> 2438 bytes src/icons/min-w-15.png | Bin 0 -> 1581 bytes src/icons/min-w-20.png | Bin 0 -> 1630 bytes src/icons/min-w-24.png | Bin 0 -> 1636 bytes src/icons/min-w-30.png | Bin 0 -> 1640 bytes src/icons/restore-k-10.png | Bin 0 -> 1603 bytes src/icons/restore-k-12.png | Bin 0 -> 1763 bytes src/icons/restore-k-15.png | Bin 0 -> 1609 bytes src/icons/restore-k-20.png | Bin 0 -> 1657 bytes src/icons/restore-k-24.png | Bin 0 -> 1661 bytes src/icons/restore-k-30.png | Bin 0 -> 1666 bytes src/icons/restore-w-10.png | Bin 0 -> 1594 bytes src/icons/restore-w-12.png | Bin 0 -> 1754 bytes src/icons/restore-w-15.png | Bin 0 -> 1600 bytes src/icons/restore-w-20.png | Bin 0 -> 1652 bytes src/icons/restore-w-24.png | Bin 0 -> 1656 bytes src/icons/restore-w-30.png | Bin 0 -> 1660 bytes src/main.dev.ts | 2 + src/preload.ts | 50 +++++++++++++ src/styles/App.global.css | 9 +++ src/styles/Layout.global.css | 2 +- src/styles/Sidebar.global.css | 1 + src/styles/Titlebar.global.css | 110 +++++++++++++++++++++++++++++ src/styles/custom-theme.less | 1 + 57 files changed, 229 insertions(+), 1 deletion(-) create mode 100644 src/components/layout/Titlebar.tsx create mode 100644 src/icons/close-k-10.png create mode 100644 src/icons/close-k-12.png create mode 100644 src/icons/close-k-15.png create mode 100644 src/icons/close-k-20.png create mode 100644 src/icons/close-k-24.png create mode 100644 src/icons/close-k-30.png create mode 100644 src/icons/close-w-10.png create mode 100644 src/icons/close-w-12.png create mode 100644 src/icons/close-w-15.png create mode 100644 src/icons/close-w-20.png create mode 100644 src/icons/close-w-24.png create mode 100644 src/icons/close-w-30.png create mode 100644 src/icons/max-k-10.png create mode 100644 src/icons/max-k-12.png create mode 100644 src/icons/max-k-15.png create mode 100644 src/icons/max-k-20.png create mode 100644 src/icons/max-k-24.png create mode 100644 src/icons/max-k-30.png create mode 100644 src/icons/max-w-10.png create mode 100644 src/icons/max-w-12.png create mode 100644 src/icons/max-w-15.png create mode 100644 src/icons/max-w-20.png create mode 100644 src/icons/max-w-24.png create mode 100644 src/icons/max-w-30.png create mode 100644 src/icons/min-k-10.png create mode 100644 src/icons/min-k-12.png create mode 100644 src/icons/min-k-15.png create mode 100644 src/icons/min-k-20.png create mode 100644 src/icons/min-k-24.png create mode 100644 src/icons/min-k-30.png create mode 100644 src/icons/min-w-10.png create mode 100644 src/icons/min-w-12.png create mode 100644 src/icons/min-w-15.png create mode 100644 src/icons/min-w-20.png create mode 100644 src/icons/min-w-24.png create mode 100644 src/icons/min-w-30.png create mode 100644 src/icons/restore-k-10.png create mode 100644 src/icons/restore-k-12.png create mode 100644 src/icons/restore-k-15.png create mode 100644 src/icons/restore-k-20.png create mode 100644 src/icons/restore-k-24.png create mode 100644 src/icons/restore-k-30.png create mode 100644 src/icons/restore-w-10.png create mode 100644 src/icons/restore-w-12.png create mode 100644 src/icons/restore-w-15.png create mode 100644 src/icons/restore-w-20.png create mode 100644 src/icons/restore-w-24.png create mode 100644 src/icons/restore-w-30.png create mode 100644 src/preload.ts create mode 100644 src/styles/Titlebar.global.css diff --git a/src/components/layout/Layout.tsx b/src/components/layout/Layout.tsx index 083ac93..84603c5 100644 --- a/src/components/layout/Layout.tsx +++ b/src/components/layout/Layout.tsx @@ -4,6 +4,7 @@ import { Container, Content, Footer } from 'rsuite'; import classNames from 'classnames'; import Sidebar from './Sidebar'; import '../../styles/Layout.global.css'; +import Titlebar from './Titlebar'; const Layout = ({ footer, children }: any) => { const [expandSidebar, setExpandSidebar] = useState(true); @@ -50,6 +51,7 @@ const Layout = ({ footer, children }: any) => { return ( <> + { + return ( +
+
+
+ {document.title} +
+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+
+
+
+ ); +}; + +export default Titlebar; diff --git a/src/icons/close-k-10.png b/src/icons/close-k-10.png new file mode 100644 index 0000000000000000000000000000000000000000..7b66b18e874d6fb87c1c20b53452a861ec1006ed GIT binary patch literal 1613 zcmcIkJ&)W(7315!Oid-T^Vmve6wQlV( zw)b}L8bk^{3jP41pr8m1qC`T7bW~9a8VXt@I%=x$&aT%)(IvSCOSZ@MGtc|HAAY{r z*?#xj%4;i{rk(3=^>*Q|)+=XUgzJ~q!=K^yQnq!g(6pD&tMioh)z_<xxmlb(D)6N81B- zw9j0QuDzvSoq0fzh?45FWSkb>%tv!x57z3nf%G|~-1pIj3aIY|J9<~JkH8krn+LJp`4UH0;P)-lB}jpi>gdeFk?nD z!)y?h(h?X1&xR&RjV{W~1Bg=TJ(jo_9A?7U6@{GSOl%&Aw7j$o##y~Lo8;qprkojK zEE0efAk3^oWg}V2VkDoENBz0ZCiA+vpryGZzxgK z9?_$v@R3Ch{+K_w1N zGm0!uLlN0X=gf;_o=}*LIH5yfWa$v;|EcN9vCIR>p~$wHU|@$Vw&DWXby)oqH^fKP zY8>nHLGvh6^X((18Y?)eUdP8&?_@d`w9}CQ(&M|mKol}6r!*HELn!h|X32P(^nxBd zTlmS^{=W&YO3Fqw9SSf?1F2LDWhsk>7*F(ch**(~m@Nv4Vk|RpN?9A-0b!(4f zdvEuyOoyl4|Y!*Ffn!g(O?jrbSgID40Ga znQqn$nbHCnMaM&vWQi`y&3%Yc={=IT=pJNT-{FNA=ag^m^R!%F1j~k^6va?HM%(i9 ze-tvh4494c(X2d->U_i#;4T1b&h%wrGv}lfc~^+hqEXw6h-$Mb8-vx0H{+CvNpVSv zs^;((DS2J949h@CrM%OsYoMYQ z$1LQ&>H9cvkm(RG6>}KEn7PR7ag2!{kRJ7CYG8g#(6P*3&YxSA2?`v`3WheO*blgc zJm0qvu^k5mu4f_6ZH(O>=4PKS*xt@#_*=;6QC6vn0i$mc*X4{NKQLY7IF5^Y4xz~M znd!TPTEuiU^PU*49aP1Dx+avX-k(LzF{zv~*6jpaKYxmE4Yj?j~ ze@*@V^VR6Wvn%nrcK%}LlUFb8cHR$mK3Gxy{_2%`zyI7@m0MD0bF1~mwRi9S3sc=L A?f?J) literal 0 HcmV?d00001 diff --git a/src/icons/close-k-15.png b/src/icons/close-k-15.png new file mode 100644 index 0000000000000000000000000000000000000000..0dda08003d4b2cd84b4efd2548355bf8e9b329f3 GIT binary patch literal 1636 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 VPmQ&guO?reN@=lp<;;ak{{WddE%*Qc literal 0 HcmV?d00001 diff --git a/src/icons/close-k-30.png b/src/icons/close-k-30.png new file mode 100644 index 0000000000000000000000000000000000000000..1b3f71fb7f83a45825572ac18fdeb94b8368c787 GIT binary patch literal 1780 zcmcIlTWB0r7~VcKw85B0A%#B3aT7NMi4Id^? zo{2;@-mtUN!L;$5W|C4AB9g<=YRRSONMvxh>OylC2Ox*@wv%LTeSV1nHcB#k6@xci z9T)8Jnuqt)CbMR3)>IKQJOl=-8YL*<0D@|%==fSS$<%o@Iu55f2Gk+JY?2uX4T5Q7 z3h2bcK#9g!Q;-!9SEE8ql2x@Ih`f;C_yi|NtPs;=UK2&oyclZDLzb3FJ=?TJzmiNL z2waWhDwRsKB1MUp=LA(%IbP&Mk);UMpLYUSWgUNeiy?)5)3e>cCJqQ0VUCo8Btw-p zTqwD1TE}mOi3W_TLYEVweCSdOXc!NMmP&23AB@dWD^0y?68qVC7jqfxld@;xu{rDn z+grwv+1~4xy<*){WOBHOOBCi)VM5!KTOa}P3*+ z^)N9icxtchAX4#nhN7B#a0&)E$%wqjv%JWPLRJ(tMbvoV2Re)dsABrQ$w&ov# zG7K&4_yKfGoK7Vfsv>IJNXrSP3MFWKjseKjEaH_Qtqr>b^O$p;JOln!qmv@> z41#EorPcFkU7zxZWf$p!pV>VM(qno|P-8Jxj0$0?QyJ9VaoeYPoo^nVJ$PSpRJ1|8 zA~k4+2O-IrVFh5sG^gz~!n{6*8nl%Hrlf0^MFZgzE2uyZkK}1K)>Cxc{iOSF?!m&> zS0DeI@McKO0(A12c2tfDUE#vs(?|&S-(1z#R`sbCoHoC3*zUUYqusZ$L#aL5mCx?z z|Cx65rF3c}JO1T&%UzxO!6O}4uV2=K39@oWGj^WY_}dTP-dO+#KI%R>eB#$#ubg}T z_oLsuI9B=PTF<2?-}w5}&7~9Pw_ZDaB*Wf5IP~_m>obQh-dsFztNh6`{$E`mUs+mu z?e?yFv&VJ}9-X){cjJXuwIhcweD*2V{q*SRw~lS`4}hh_>rXIFZM&fhJ& z-OGRc`S%ycr}W;fXkg^gEnh8cUg`tOOkdCb4~CAT?stE@{8;V#$2;y81~%;5^3J`L STHjCMef*p7{X1 z9J#d;2M$~i2k05`eTxvBdf)=T03pGdUb$3Z#_QcpQQGE$CEH`qGtc|HAM?(g?X9;j ztiH0UD9VM-X0#*Ta=iNNdGY)R{raPLJ(q93S1QW$FUfmF`Si1kigG?ky1UhGd_5pM zZDGoLtTjnb0xj$|Mj3DXTD;q@%11CZSsM24XCKYbvNA)n2HsNrPZF-Ue-6FkrVFNDRvcuHP~o z)AIe-0n!am(>={Fq2UCU9v}poOBL1%+7EW3w;EgGD^!P7l?R$O9**VdD4n^G<_p@aY{Dc0rcH3J87*D9 zGzZ4bf_a}xLpGUmKE6g`!iH5s(|7OKNZJm(w{yB6~{p*D=VB4)`>z@sAwe#4Lk!; z%cB@N4x!L9EDZe~Gofj@riJ=Graiw_Bi2Wp>`U+E`dO(`P6Wpyf`RXvjF~!x#6uo5 zbc;dX_8q7@E^_+m7S)q3!fAWUl2vj3|Z3Lyqf` zp3$?g3YK=;e8h{GQxQ(VPf5_{MT$kuBq<&+EzbtBf(5(qVlyd4x~9#ZxWPVXMxzAO zg%)5U>pN75Oe~{n^E){udS}x)qa6>KAU!?XGepVz)fg9SZ6JbtmRiytC%wc6PZoZ* zwEu6yn~;(r&IU|0N==onXtJfu5~BS#SIb;?*`&ITr>rO&@7M8Q8HXjV#%$qK)WqNS zj!srfJtJvmGYiu*B5g_Wh^boLi3T_qEV`;3F50>HSR4o}6V4T)-GBb|!w2H1@H)|2 z_u?nypX1}>3^@ItSKcgut>1rRbl3Rno6GkT<-2oNZ~gZ2pYKLLtl#_c)nCl$nHRrZ bc|m!2^!>-b|8edMdERt3wxX}rZ-4kNK>;d; literal 0 HcmV?d00001 diff --git a/src/icons/close-w-12.png b/src/icons/close-w-12.png new file mode 100644 index 0000000000000000000000000000000000000000..e2fd6d847e7f73a1d849e1c7ce70cf8d8ac158cd GIT binary patch literal 1772 zcmcIlzmMER750U3QP`O89cRtdawz$arSFYu(!8 z*xuW{g9@sYC>=sVG$0{_L_tM?prArj@CQ&)QqWLlX4kt3(dBYYEZH90Z{GL5?|Ytk zu)TF-<=k866h&F-bvrxa{;E7*J|nKT$9Ml0x3fj}{Yp_@c|)G3l+QlDs3>P{r~Tb} zH+nB1Jkv4dG1I46A<&9)<=V8sWRKNq%m!&5YXAKBlcuIL)b2PDjEXiJrrpDm-8$Ur zlfymYQ|;PS^~y951R1NbI?YCT6-+~I#v6#Sd~Imz3{vlf+J+3M?nc{co0m*=bQch0 zJ8H|?n@?4dSIOgLz)P&M`3R$tF&8wzNqF}}p z7Y5RyOlbj(qT``iwnSI;=Dvv1=sl9S>K_!$*kKhPmxOKZv%J2%2v!Vv&8s1QhPLJB z|0$$o8L$|aqgi<cn2-AQxGC)L|h zR5OQlaLq!^geC;g1gOTaH6k0!sMfqrkEq_sbk1ofLncU%?)Dr}@uZ&Ml5Gq`kx$|!<5|)xynnp# zlePVY32#bDhBzNEu}~VCOvR8(%Df@Q)4h7!>xEx7gp*|_tELFo@nBhwt4G_@Z&{34 zQ25+4J%FIifbaM&fNsldc}N&PvF0j9=|az();K=?O!*Uw<6^Q{apiEi)QgAZX2Eii zcqz7mmGGDIavSM&Hu`H9$bYY&`gQ%cb>)*k)QhL>pZ|pCzdXD7+SjLb^wC%NhYMeP u_TOEiE zyA2$#Wppgt^Iig`Zn&E6YK8@kj&JL}X@dHvifAQC{LS!{I+nN!)G_CUuW8fiv^BL_ ztQ={E=XsiLYNiPV0#CjLXO;{ht#FwZJY_kMj3{P1JWz$wMG9Hb(B@TLCQ&eL zh6>GS=`y7yFp3@w&9Vkv@wHtMrPg~OaW&j4sJ2Nfwo_udwo7w?s}cJ{hIeGi|ntzvgoCiuxqb=C$7+U z>eVC#^G5R#mi-;5SQ<--THj6&sNUgpE@-D?Do77@dx5A}!l$UDt0Ph5!}OANKj{_P zeX#Ju+5W!?uS<%@C?8QVC^c24qREl6Fhu*WSMz80jGrZ3%rv=dhN-w{#xczWbt#7J z2Y2rLDF*d=KU^K2J&o_4IP%@4A1^&}^z+MlPgicO>sU~c^p}SR`Zni5ma6n9E#=BP59>?}( zH#r~#5~zoY9yxF*5(l&rJtL3`2P6*MK>Pt5I9K7s0jYf67ZFO^T(D$&JoB61_xm36 z`9^c?($a~SPLxWerAEEhg7>N7KDGeQn>WrZ!RvTZe>*Fc&U{kbkA3>bJ}Z@;{5@=M z;Pk!kE{AaWO3mXbj1>T%lSRL>qn+c|2vPA{io4 z^$Id=Nj1v4ZNH8*MYUwblGU=P8jh|wnueyA0M=3(IIY@SQ(N%m3f(+U99bR=2GXD` z@w6kWwr$IbCTp4q2r=7@b37E|?Cgx8#xjzINgnbT6^wY3_j6YOr4tvTWKJ7r(=b86 z+%QqF<+j0lQ>?=aL&^<=e=2?nll#Uc|~Gu^xE|>rhJfH zC`3*7uo}*pD`<+Qh>9j^YFpDBRdp)LI}?--RX}l$ABp2M40a!Z@_nZfXE}}uYt&o; zR7hb+9Yr&-rRY#Jv=WG_s$!!#|GcXM(2;C%OHL$w=oc#o$(rx4`w!TE;gHB%mhJy^(E zmsU_?)dN=zL)0X-D0Pql?$*N$^13@cJlELvbkqycxFQ`)ii6+^q^JN!h3Ry7NSKf2 z(1do-Wk7m(SxgWa5Ap#{S+xV%I7-pU50akYoreoQT7CR)!lxl6T^x59bW~X=T#<|3 zGf9a2-&~E?4)m!R9GYJ-oOfOLnD=cK19b{r`R||lB6RfaMy=Ymo*{qTzrVbE^6E#w zEYi(yUR-Q09DC)}Uz_iL_3p{fK9=4beQ|nk`|>Svy8ij?$6Je@d27SlA7QlqMD?l0 z{Re|dDiHwxU*3s1M@yWQ3gt*_y4^sRFI V+?9LMpT+;AvAR~fv+~}D{{X`I7SI3y literal 0 HcmV?d00001 diff --git a/src/icons/close-w-24.png b/src/icons/close-w-24.png new file mode 100644 index 0000000000000000000000000000000000000000..b46d29b50fb0102b6ae79283e26d210cd1cb15ae GIT binary patch literal 1729 zcmcIlONbmr7#@w0JY0MrA~}Szvl3mb>F(;sbT^sAP0zYBYOlj&B)h?bHC5F!ot^G# zyL)$L7m-yknq0+;<`6st1L7$}K}doZ%|S62@u-(byeNne@DQu#EmrJ@u|O9JhmQ1POqN*&TC5#JW$E{?u1FxDW$C!#DPHWdPEcJ> z*s=A6CRtx5HkFPX28a5NAP8B8K|kz9snah@171gr^J!TE14y=9mS%HU&&8@O1J1{mz$z*T5 zl5_{2QX;c13k56{!qkbWxWhA^cK99qm@H4ci5)j#IO9o^^X@oN^)U-@-8?Zic;Pm`3`d03 zDrHHiC)6`XHX(bIRx`7zdEQ=cUnC+D$5T^xqH?!uds9-D^x=pPXg9uXs z3Drxmg?t|}tRWjSMPo#f040vklMsvA2twRuavZfK@UI$|cX{G*DuS$Sp0BxXJ>h=P z6$@!&{wS!;xu$BHCPYOwFLfb9xLXZUk=M1+;W@_M7>&9C7*wQ#Nq!K@63Huoi7*YP zgDt|mJ%@(-dmSc7w=RnzBISP8!wH*hi)?JC=;S*|Px0#Ag>SDu{x{*Hkdh9L+Dvp* zS;}3J^WHN|i2UDN4c0dGsWDtMzkE39y5eKfw^<~p6Va7leg17(bo5iT%51YbMQ+`` zeP#b6d}r$|;GcW!#(N)K_@=-%u0A@m^!3BW-UlvyvbTP6_o*f8=})m$J$vr{7ayAc zV&k=!{`l>wr5zVeUi-27nfvWu&h^XF2j8rnIhZtd)lP4mrPT)7|M(L>=imy$<*c+DxV*H{hfaRvdJqm literal 0 HcmV?d00001 diff --git a/src/icons/close-w-30.png b/src/icons/close-w-30.png new file mode 100644 index 0000000000000000000000000000000000000000..537a77af4d70703f533b655abc4715b6d8a62bb5 GIT binary patch literal 1760 zcmcIlO^Do798XzY+|?e$Tagk{KT9+D&LnBmGLsoQLz{J&9q3xA_>%WB6LyjplkCpS zLIumBti8!%5$wfMsE6%A^kNHEEwqL7p0`5FYX$Lj^&}9C&^bJG%&}5D&Hg883YWbC= z7|kxtG~A_mSBK1@gY;>Q1zDl2z`(DTm`GC+ND)@ggUREJ3hIFHAv~4U;`1h7wBL*pE^lhjhjW9K4X43{g68A&ADb zVKNL82^iM}5hvvM%%u^~wjT`*f-yQt%ZtRyQ16z+Nuw7bu8tDC5WA?nh{ANw$QX3T zd!vQ8-S-r_9BQM0z!D-%7@LY(IK@c|Kg5sm^4Ocmuwn#K95*m-j}lcIvCx*4B}S)T zIp&8Dcam2#QNul`1X5%&A}{hRFS4T05Jf{#4N*HjK-r`UAV|SuaTxku?=dLbHmYHg zg3v|PlF1MiIp2qds;Wr#=KS~R18VgJl)X&3!vw*4wMBJhz?{GUE)*C#MCpH?wA{AYt?znOIgt z){zv26?9o;HAPd{yyi->21Qqf3PVHJ@NgUeQX75%nuv?SCPV+L#=>nJ+Zd7{OPlAb zmQ{B%< z1;QpG9hGA;SGcVA3=+cqH&^|&O?_$vC(SP#j=L`T824=y66%K5tf=c}bc zqjGKi%$=z#^fSw6uPb-xr;Y1>6(&wzSo`UNbMF-kH(nN2nmcM#g9;ur-wnR_u(<#I zD${uB+{A^iPhTRVwYA9?p543ax1)dG{`vmZ$}i7p(+__A{_@R=`*Hre=g)@n z-t^k76)it|uq&;9x_nm@&YUQ@{Q3sIvRa${=yZK%b+YJxvU=oH%+{Bw@<#3I?(*H+ gPnf??S-me$RPVp_=Z1RY+w31yEzguL7T-Sg59yyfx&QzG literal 0 HcmV?d00001 diff --git a/src/icons/max-k-10.png b/src/icons/max-k-10.png new file mode 100644 index 0000000000000000000000000000000000000000..4a499280a7fa06600d479db4c72138c7fb7365a5 GIT binary patch literal 1582 zcmcIk&yL$f95x3~Sy%z$&@J@fPB{Q#GM=#$$5u^Ql7)?gx2tWWE}S}<87J1p9%Fkq z**zg{91wTJGjK*i2%Z4M1MmhQ9sz!nIHp3|b}zMLdu)I6{l4EHe_tIQe7wE&#+GGS z+oS#A5!}ss>)H!&{hIyu6Wm@b_CKvG>!sJt`JDCbcRQB#{155)xIT_Q35Cu&Ty|d|M)YqQyHNL-PnnXftscJ7p1y?aWEDaCnAvO?)&zg zWe5bBs=2+)=6Mw^BedcTVQpR$WUnCgNrZMyK>Ij8v z%^cb%PM=U0(_ZK~A!BxPAc$7VBs>~^)Wm|P2+iuc2nks%7M+FL(dCrTAP9)V2xAx! zxH`{kzQlQTd&4kPl_=AqPIYb@Mn2J}b%a3aI)$ugY4fTn6BLXrc|mB$F)3|;ar|Ux zmbK`r-aCURjowR%tMPfE$dRh_X(`m+nab*P; zT30jum^|9gZ8k+XC>5`DIo5il_2Wc+#qI$=OYWAohuT_MY!yN1| zO#Lx+L(dPX_t_d1!xTtf^QYppOq27cpyD_j_9fr?I=%Fs`GeVCj8OU?qU zxF_+1b`#teej>HE1ChX1*gN zOkRnCenszZ$Kzez%*N93d^@5jbcM3(m$}Ew`Nw4_XlZ9Wc?axejQ&KVG z`BZ^X5@b>##!}V|A^-2y>f0msvw?%BnPqFH@X*?^%7MBBv%UG|uMQaX&CzgoymLdm vdj0x8_g+q{*FN~=i&wsR_pO6lbjSMRuRnj^x^`>ZIQnSsVEFxq55N2uFgode literal 0 HcmV?d00001 diff --git a/src/icons/max-k-12.png b/src/icons/max-k-12.png new file mode 100644 index 0000000000000000000000000000000000000000..4d9083aa5ad569f828959bb8f5ea46c356d46d51 GIT binary patch literal 1740 zcmcIl%Z}Vc6m>Qc42c9nChk-gILV}Y$g~tsMw3=%f>=Os7#_C>{2r{^MS*pBK2J;Sx^ zAoxr*b;HNHj|~eMZfNVFX{zm^L9~jc;oji$HWoZZ+N5d95aaoL-kV!JQH`+?1Oe7f zY?=rVs6H+lvOq6s*w=Wu2H*PM77_SjS19i`&q%nyuL0)wR8A@G(6Hw z-PDn8BEuUQR%p4Q6@0Nm#oz))8uCV*U|D+n22>n}!=i3TLHTeHX`rH)Wh_jc)OUQ3 zB4(s6a$MU+iN_K|I189*c_#P0r5cz&5OgN9m-AOvWr707x`JUEB;41T0~}OG4zV3X z9O590TQ2bo&q{Q=W4m8v@VAiZtE^HL14c&E!0;xrtz>%8*3$a<^5UQy! z)arY?;Z5-R;2 zX;e0rGp&7{ol?E?>0HsyCmcvm@Ae8&i?o@Oif@jg$mj7Aex3B19Gxxvd~N^VgtsN7 z6H<&hER;vpBbOhNy4)$k1($ z0w-{h?s}%@8@}(P)=I@R>-4N>@!9d0%3oO=yUDQP%HevchlllM!3#*dg00}wzh=L} zHuCXsusOQ+0e$z%mA~(Aq{@4@f4+U`lNb7L&i9Wm{IH)q`TdvgzLopUaBFAq^v+k0 F{{e6@B3S?c literal 0 HcmV?d00001 diff --git a/src/icons/max-k-15.png b/src/icons/max-k-15.png new file mode 100644 index 0000000000000000000000000000000000000000..a21d97b97625b863cb0628ddf255632d73cbe634 GIT binary patch literal 1585 zcmcIkL66%+6m|tg(5fm3Rf{;lXjVc6bvz!&v17BQyCe%6gtx10q;5GenVBTk#va$6 z-6VVD#(^W3s=uIz3T{Xo;K&~U@h|!l%1q*z3T@lHV9EB_{^on%d*Ac>{$T&hYggXC zVp-O;{$B4;->;kV%{TP*)4zWFO5ffp_U>1fb@g3yUa}rOde5>h|B?=l)KT(v#AIeu zE{DRNXN5*v*4FKLLD{iTU?|3E9>b@<{suwHV|cHfI7!hJlXUN_6nD?|2kh*ag&f}g z3~bFKO^^vi!91JhRWy&`k~h+8^BP02gs9^f?wEk!C^-OKSqjj$eZ+{@20>^OzvYGD zE#Nw&gPjg0Ekyjtb0XIT^#OIXl8>Up-WPQ&{S?EAQbmOEY&NrJEnAjjOu{h4j*DFv zX#}bkxuSEFSDR~wo~T%v7AloFFpP94PgD%G(p3ss(a`2qT_#;HJf{UFwqsIS1C!+C z&@5}vmD)YkQEI*C5?6yoA@HH7&EDdqoGvrv42!AAG_2CXNE51< zNF}R@d_f+~=O&vX>Xw2kSq`L}u8lfavw&{b7!!h<_tKopS@p3IRqqi!szeN3$90h7 zA`%RYaqXz(eX~L(x(hf}^p!Zt)6wD;s3eK{d8KI1M86k9t-?-I9<@3&%GC|s%{oS$;dVL@a2AbZ znNi&vX-3Ba7x@^1f7Nv5RF;Y4y2vfl!J1uXv6oibu0{P%+!YV%)iedmMvEvj{T)MQ zj1?T#uhVm?cQKtS+Sx>C((~P3Au2giGg^wBu`cpOdI`TsdPPrPF8pG)|8K(UlClZS z$3hQE3{5K7jFgoj_`hB)zdbj8)^I)3%(5A#`k@)eBG=TV9=3Vwk4-(OKkWB*1~+f8 yw>LJP-LXg3JKMi+fAYbfTaOoiAAhv*ngygmM* literal 0 HcmV?d00001 diff --git a/src/icons/max-k-20.png b/src/icons/max-k-20.png new file mode 100644 index 0000000000000000000000000000000000000000..de7c12bbb221ebe0ccbd12b6dcad9c51a1f6c23a GIT binary patch literal 1633 zcmcIlO>f*p7V`EkTtN~$0 zXQ~?UmNz5*3O~B#&YLQXYld514>%t$6ScKuk>gk-CXjDD$Vx}>WEun03=JnV+|TEz1ge1I7QYe4X`UUt0hJ_Szie7u64viU3aC)?oQA&RIi5`k z()G+lUS>1oJHCT#FZENKxs;M@rUv%+IN1{+6Z_|-N;v_JE-Imob>e%jhYSLgW?&mA z4eS(Urf#Jf_G~AkOSXG;4yOf=kFyF@6c{rS5bD_$vRqpP#|}_REQ+#}*=C9Z&vt=_ zk}%_SfuT0?0uPy1l|x1TPfg6nyiPcUAX~@h`*FNg^DH03LbHAMj@)05T_bQ^WU7WJ zb&vt>ZsZN*^EQnos8^g!yz1&G%163`kEdi#ej< zSv$csTN^?)PE&N+tE4x0|MkL8S08Up_#&iagv%j=j;blb6;1S>c|x@R=W4cgtWPcB z(EP-(>$>pK^=(!Hbq!tl#pCQ3=;+t`y|sb=oLszg>7RSaueYstj-DL7zxwF6mq*{8 j`}(r~#f2+Be&|Zy-29>ZbMW$e@e}B;Z}z^s^YH1v{969n literal 0 HcmV?d00001 diff --git a/src/icons/max-k-24.png b/src/icons/max-k-24.png new file mode 100644 index 0000000000000000000000000000000000000000..2a7bce090781e7801a4c714f6ae146c9b2ffc209 GIT binary patch literal 1640 zcmcIlJ&)W(7&ZkFB#K0r2%5o30TN@6KX+}#gp2o*U4ieG%St&Sip!F2VEHdGr^&-Yol{)tYwm4|Tsby!ks!zW!S_+HdxgPeLYhgK{|* z#v(5Pt!cMzFG|V|M1#g+k`}2GM>pM6s*{@(dp{%k@wvFf8A3gWv;X z6RT^Iu4y^g@C>huL(`nk=f>PIWHm9ZAP7uio3@Ps zf$QU8yjPswR_9MYPR&0GgHh&4zL=8S*@vZ zDjQi(iB_=@cJ;(|!=k@za)OwHT(MCkNO>BaR zjcsdW+o2PL#D2I!B~S&NHuRM^$+PtM6{sW$2Swe`f{8&d(m{ohWgMy`@I2Sz*k`nh z$BygbpqskbcDux(wolTuvs457dy*Zhkg5HvQst5XM;n#U?=atI!oq&H>)?(6HtLBk z=EUPP6@uBWw_)3@GB_=Cc9vDC;=m|UaNHvV2ZCBSP2CO-eBxu9ka4Hur>^62NB^pcL5fqQxzb%zMjs`3G>AqTG7s@0!Ysd*ni=@}|=;gvMRv-VH@O4Pplok^K9o5v8E2io_tAv>U&DC=4OrP4oq4}v{ z+jZfi?c1UN>I%B@x8Ll31sxp^dRwFZQ}))iYk%*4{NqQRD^H$$@%7^8(@(G5#n+!d iS`E-or| zJ7{a^13|`Xik8_tul!{ouXueJH`A(&R*?EAkarq`=pY)RP?Q{5ijA3OTFCJf%{ENW zyNz_Bxhip0&A^)No5a_3)Lt@JE0c*o>b=|Ag0DcH)pg;k>SD1_7KS3qsj7LNrxIP& zbqokxo#r)N;=H=KVd(LSm1$9@B1a7)jm2>t$e?uXLRNINdDVsq0;Vo$p=t_gT-pGm z==snr>(EubdjeKkz2_2F0 znofCcF(Po6&sAp`)sD;SXN7uJ`4%8)df*p7&fA+AgC9LP{qk|K>~@{vBzI)t8SI-2C`C}M#)MIoI0Kv?^;=VTzit; z%?)lyAWmEmTo4Bih(CZ3`~&_2;tbawnX$dQDN5U1YRUH4^UU);@5j9J#lil^H@4o{ z(lqVHXm5BZ-)g+|+I9K-3jO(;e7#=oeNt=M8#mSciuUbyw>0f~n2nFcaeO}{Jnv!3 z6V_Ygr9^AmoqLNClM^QNgiW#{GXDMbcSFx;WIS|ZGcE^gn(due?C5-dOwLb8K#hBM z^*f7D668!^eUZD^^WYZXny!{JArE%_B0Qz6O_!ufpOo7+8JO`sJ70W=Xr z2uK8|mxaI!P}H|q3`16vDl0|C3tchdgrADYkV;z@@^VdE)Loclz~BOx(CV4Wr4=xa zpAXIRHM$nNXVOZi_fq0|yet_!WHmpn2-`hlg}A*kR!+I#^^`wD+j{ybg_NufmZ#OM z2@fTZ%~&qEYl*cQePuYP7#6%5b3R)o>R@G29}HAt0{#7mSwZ={{y>T9*03QKEHaRZ zOkg5l`C|)(t{d9^r!6X$RY0-8FT`=0rOOwf;y4@?wZH{oqhVx76}>E@p%>UT3J3;- zdOol{Ck1`mb%7W7X-beoeMTEKa{Z8#Q{}x{-N^l<=8&p{yZ ztN^45!~~8}j7A oyN|S+*Z%lv=dZWkd{z7V$=8qH`|{`S)oC)?-5>t4^XT*c0C=w$)&Kwi literal 0 HcmV?d00001 diff --git a/src/icons/max-w-12.png b/src/icons/max-w-12.png new file mode 100644 index 0000000000000000000000000000000000000000..9e5f11b41c72e174a10ae46f2553c2dd967b0f5c GIT binary patch literal 1735 zcmcIlzmMER6n2^u1k!{8l*)3NATjIl*t`CrbHZi!;8wzy(`A($h$7>e@ve1ikFmYC zdzUUnq?EJ>2`Tja0i;0u4^;dEREU-ai8pI|6VN4hO;+-HY=85;@4ffU%(H|2&#zs* zaaGf_YvaAqA>7|r*E?JA|6uX;A8>oO*!!~5wD&$x*A?x%??2MCtq1Aks6L9m2$;-z zl*?H3R#^dPP20Y+DkwV^wH}LUnuo?;FMcufl!wN{euSf9C}!#2St;(H?N8X*G4r`` z=eEAR3V9<#GYx{$QlF=4hYfPp8?TIo&<-Z&)Qh<6dJR-E&|hBE|^{`5* z14hxCp;@*;SM}}*L}~S&OI%G(3t=9LN-jz!c27iJ-|T`FGg-@OCSRj%^Z7ptIokv* z7Ug_h9?ncL7a4F@fVI~8ieOj@TFY`G<-BXuK^IXU4pn1({no=Y=Wuqv8iCtCxi~LMG^B|fqd=| z6bou2h6(YA;|ju)j_qEV!fK)OS6P)Ru2lKd!L}PC?DS(KEJvW&!F|MRVq=eb48tPQ zU&bBExhx~ep`5m%a~34B%qVy!&FEB^MLtyy26o6|FRh?mr|p`!FTQC<^Hg6O4N9W? z9U4qERzRHQb$VX)E~T@XznlpmJ-^!xqLN9yq@~!ILXj`yCG&OCD|&K)@JqG*tqE^S z%4Rg53fL%3L#1M>Ev0FQ`Tt(M>~-gt9dNShWYreoE}d@5ar=CG`mQa6jX7c-@sNeV zR({_fAUtr1>sg-HPwYm;Jni%}wC0=Rua&>DId+p_$5q44Ru2!G!$RbccnL?r^%wr1 zaEyF79_>tSears7XFU4!`Lkbtyz%tst>;&??SFoE9{;xdK^-;Y-Tl!|cOO0Z7v(G> A1ONa4 literal 0 HcmV?d00001 diff --git a/src/icons/max-w-15.png b/src/icons/max-w-15.png new file mode 100644 index 0000000000000000000000000000000000000000..5bedda156799df25075eb330cac27659aaf86fce GIT binary patch literal 1579 zcmcIkzmMER6!sM$2#Qi5BtSwMO`0GvJN~uy+QcNs`p7N9m(yjX98?+4jCZYDdyMV7 z-8%{-I$9)}Km|QD5(O0{Eu!IXprz!^uGd89l3Wu@wr9rQ``-6{_~v2Z6Ud=he1446=< z9IT28(1vmQ&Z=VkM7AiEv%HM(-@p8dQ7$6hv+ytL}OJ;G#q$@Tka6~!NBqyHwfNC zwrP#1Iii+BEH8A;(6&)`VenRqEIf)o>U_a2!t=JRLQ0p**@~3S%`HPL8(!yCo2wFOMwY76Ho~BE6GBn-v}Mz!2@*zEtfJPy)FEwwN%CxH zQS|7h-8%y>o!(1{o9THa>5**IY0c%{nJn9zTW5mzw$*99SVt;2l?zz_tN~$G@2Z-s zRyA|=lsNj&eKb`#t|e<#JymM4E!5$b1&znLFaf&tFfWB#Ht%XtosEoHD1wn(DO}C^2{We9b_c6 z-IS!JACSP2Qrdy%3)5Sx0sC0-Q=KwxziCyWIB@h?35PNmSzOx0aa>M(?g}!>vJo*y znUEvT6~0KfZ1?LN{uZ`)l2xk`z{q@i=wzlKU=|S1bsds=sZFHs3dSsZ=mri(f`^%^ z3kJQB7i=bJRn9Q_Pt8~@RGlaRNp^Gx13N^qpEpph^X{K`AV2R`iyW;REo5BxcZ9hv ztQ5FA&M(Q{)pTxXmvafEmsfj(XjIlNSuJ;GkmRfM5`CKVhMhfI_|?k(!i0Az<#Sff zBn(Q5btqJilubeC|7*4W_Qd$v!eOTAWj{<|(~o0W0(A|;mfWQo4C=Qg@$U528~mU9 qJCE-EF!}Ar$M=RezW8127~g#PXZ+phuXpq~pX?pPKYjS+$$x-?8qrbm&aT%vp-XZNmTZq_o_XHq{g~Ge_jYe@UcPc! z)3nXe&Tt>zuc-Tl4S0U>@aiVKUMzR+*P3?qb9F!W)t`S0O?&>2Y<$ohL?8HE<~mDc zEc8WQ0$S5<++385ABqOWVv-dB{_BSyG0Ktv-|I(aREA=j?VMKP?&%&-08yGDi&0&DIltFY5?V(Us0`+x=aLeu^*V8ShXM5gT zh?>^GFb9U!BbMXarcWtqFAUbIB=z@)@3pqzE5OsHDSgA3&*%EQr^{+$Sf1w@CN(G} zfFSir(Xa(6>T7F;p{RM4l}#oKq!?K&kD363(v=H&+0hnt8zu;tv0$ZP>85gN4UD3v zL-V{t*Uk1ZSZVd1OI(jnN@47aS{_wgY#)oFxwbZz@NRE;RLz#2CfpD+kprv-VOD3V zoXSSlQ~3lxy5-KB(hn=a8d;5{oUIeJw`M_Ms1oC$>-VxEk@NaZC92&chO7|*rY1Fs zNeQ*al=@cR?>ir@P!Uu?!W#BWoJ_Lxb(d;j|4{NH6*9GdRjP^Pz|lp;=Vo8nE~7-m9wl~aJH%t2 zM_fTomvd{7njPDnDudI)W@lNIsstE4*Yh0HrG)h?2L#!S#C>}}+%%1C=71GuW0Y_| zl~vB5HnN;egi#g~j2^2A=KIbpt-Lo3?(Q~>GuWwAokGHvFp z5?d3<#zl(Gc#`y*9Y0<8#p>gK6W)fDPgyY$&`}MnTrpJdStZ2yZ?2YWXZq9{4$V&u zyRHi#UEdZ3P*>2E-*|1~d+6wRG~5~wUgrPY5s%(||I(}1fBAaj%PWJAfB*K=pMQPy e)BX68_TZbhUvfTt{WtXk7;Wzkzq|F|vwr~-Km1St literal 0 HcmV?d00001 diff --git a/src/icons/max-w-24.png b/src/icons/max-w-24.png new file mode 100644 index 0000000000000000000000000000000000000000..fc7fd8635cd90bac747be5dfb79162e87303a8eb GIT binary patch literal 1635 zcmcIlJ#X7a7*-3UXdQShj7|iTApvsyIDW_^!X^&oSOQ90RRqNCP~>!Xln9GFmZVMD zV}<|$@(a3j?b2?YIy6&$L4H6w6`cxn3JMhHdlJPOg_C#*0g}hN=bra@Kkntz;r`y{ z#%CLyPG@t_?~UNSCGU?vg6FF`cnz;l^8Qz4r*r)ed4Djx{yR)w`7IeAR)^6SJ{74( zn3!;Fk>-HzbZ*~Sh@T-`Ik$K%G@p?(2G8*II39qL}KY=Xtt; zb&L@pPCSyEi{B=1Wf*)%l#K04qV5 z*_z5{q7vmyyupulx%DRZ!-A7a6k{Rg>qHILEJ_&4#CXb$he^gnUEY+UnmxQnDjulV zzy>lf!sZxb-|~FR{(6Oqpb8kN$UAX@CGqJyP*LO$va%u><%3?Jf(k83m~T@DQ`e%1 zbqUBIHbtIoFoX@46XtMkIAo~?_V)xmmLZe-SEb4X1&%f# zNx^rfkd4a}o&F~2B{_M!@XOW5dlTM-l+H*t<+?sm6fo^}LUgz`vd!=DqdRyO5eI0!9tzkTKCmHTld(k^S zlc`0y90_Zl<_c{Xm#@xq$__*YMq->~fqD0bA5D<(z}#&|D9S@IN%|*+xN)*IWG4rV zaP#UFaCz=4f>cx#%+qOB`t!hC@cL@3r)?7~Ak{%&ZfJvGFWLs7ECgs<9%PQ&1|4EK zUdtuq62Qpm+Nf(gE$Dc@i+qeheVNKy!DD}?_hxNNeFf&Es&e19XS10#Ygw`w+YTYb zM%cy}Dg-Q#vx?4PR$g2&^hC*uB(D;g0nJE9@~{d_rF7{+nm4prS%*ml%%0QSb}Xb_ zS^=Zz@z6AF&}FrGq^#6>PbDsg$GNa~L@5soCN_^mR$W{fG+ELAR<;%K7cyO`20i$}2IF%QNg z7eRsuhH={+3GQ}yhqYF0?-q$VEp+-It5(GoBVr@gaXSPOj9u93x*U=YBajn>FcED^ zIWYleek_ZWs@h0WIu>@GjZJW0O(>_bh$L4*R#xxN55jP}ka03q3+2xBYhbV$dJgeC zh%HB#x{{&X?I)$m>v4T}Zio--(KG>ziu5Vd2O%(-t^mQ!dOA5J%x80GNjsYeMS6N! zED@!Qs~IiC##m+JEJbHON_t6;9xwcC_3^(6uS3cvG#d-mQEgMZV(Z?sOo;t(t`=(# z^r;nGH9tLUx~}?Y`nJdvb)mZQFTbU?R7bZ4y^Uf2*MI-~Zrw1>J-zYY2m9ZE7yf$X z_ubFP>v!*b{_NVPKixzxKEL+S$M1i+|J;>-e*Po<{;j|D&tR~*)w_M|<|p?6NI(S{ literal 0 HcmV?d00001 diff --git a/src/icons/min-k-10.png b/src/icons/min-k-10.png new file mode 100644 index 0000000000000000000000000000000000000000..07cf311b366065bee11f88677163afcfb26c2dd8 GIT binary patch literal 1580 zcmcIkPjB2r95t<|N>EQAwNxBN?j=af&e&diJyuK?S9~jRS{X5ubr`C4`Xp0vz}hocaYSr8B!;x2n=M7cAKx+i%|Q{r>pno^vwr>Uo@KrNG#eeMqvV^2$-G0k z9E;8(FE!e-wzd}~WyeB+v6y5KP;>!{`oWrEAZk`+rOIRh3?m)OQx)4<=_-Z1Y-x+SDU&W3TF??X9c)rs1C!+K z&^&L^wc0(?Q5wBh64#^iQlLXo%hQU9-7`_B2kT&*wR_9cYPQUjGbCmr*RWa(bJ|el zR4Q3d+Fi^T~FtVc0LuF^y+S}5VcIzoK|9IqKkZ;Swe4;UemL;3%_35|2N@HN!gSZ z6QPX~*(McaEM?UY^m?zB-(InwHC%g|S+-`XA6h#Wg{H2w+1~i%$rEkV_lJX>(Y=4! s^UKTao6e6Xo0}isy?eR+{nkzE?`NNO|9g4@jh_#9_Xod!`NK~y02B4;kpKVy literal 0 HcmV?d00001 diff --git a/src/icons/min-k-12.png b/src/icons/min-k-12.png new file mode 100644 index 0000000000000000000000000000000000000000..18576e97c94e7d12d32fe90a3d9696c29cb579d4 GIT binary patch literal 2685 zcmc&$-EQMV6gD97Q>cUl(jwr(^4{!9OgtX{Tg_H&(%nYFrRqj(L0mAN87Ed_kJomZ zv{wj;3tj>3Gw=djAjAXgJ8;7#FMw2L?8J>w(k-wOksOchZ_YV$&Ue0;pyFdLtR0R;S^o0pV!} zQy#I-Jk14KQFeCcIVNYUQX@7>vaa^WPd{sFLc7`%JA`50W8>uTvS5!dkA~#(jQCXB zeW32l17RR#6;|izBrAh?SF7y?Vk}?lnp#7uv#z!$9jd3{vD)JWQ|*oeh+)~P>vs&t zw0!>)6+y$(p{E-rFr2`G0Yd8HrwMNbjf0c^!-X&L)YZmSl?S>$o6R~iv%`y#Zuq{h zL!=`F1Ok*7S%v2yEAK8X^jS%YB(D;lsnQ~j__XS3BGP6FY2KR6%0-$)!t^=Lb)y62 zl4>9&EiRuHliE2YI-9VRWmPG#MvE0$3d0t@)@+)#=(0LE7ZEMiwiaCuFLI`zu#!&; z!Vb=b$GgkG%Ibt&r{)&Z1-zY{k9oz*G2f7c_H&zxJm?h+SG*WtqkLB0mr*X}us*I>S3?j%01+_Up<&ilx4&#qp`Z}O6<&w4VPK&pj?*N*xCuo` z5c49%BCSb^M@-MNQSBoPgF#kSI3sM(?`k5pPLj~Tr#PaPFDZ&#U|1FbzVCSe5#}J* zfzX9yIls@zRF+)MZ`e;c5jNUf1%yIGsfBh$0&U!#9{qnC%#hYU;J$9-r_c&DY>CDMei`7M=H)Jzb0@iCR-Mz(jUYS0j=E(slDX zS(DJ)h2G4cjhQgIo)!(FAwtoF^`OKHey1Kb#3EP2+z)0u~LT|7g(q;E6T1G7d%yQ zo=*~jWzqEWj4s5j<%?Qz^}0JY`k|~yR+6^rr42!SiT++#BI4o5@m(sKfiOUz#eiqn z7C_9jeP*IK@>*{Gza@I%Qf{X^o7-fmiZ7LIy4)t4_SgTe49#=Dp~OQ;vU>Xo)@i_P zTS@FkfsoKvRR5X$HU9a3l~GCmwljjI8t;jHLW*L!(35>UYL(@|dhz#NlQ9zt#qf{^ z49QO47CQ@cT;zI&=h?BjQ>S>62wU~2F{|I~zecW{W|ou15lIf)vzd5kPj@U68d8X} z+b{3G`b?brJ|6V8SDgR= literal 0 HcmV?d00001 diff --git a/src/icons/min-k-15.png b/src/icons/min-k-15.png new file mode 100644 index 0000000000000000000000000000000000000000..2a91974bd3257c0796a1da194398e9c6eddcc483 GIT binary patch literal 1584 zcmcIk&yU+g6gEO2C|YqqNQFZ?nqJC}$$0EIj@`PeC0R%i-mbQhx^QAVGfu3HJ+3{w z$?geptM<$V@izcR5C{GQE~x(oHx3ACnMoW|p>4YtEZH90-+b?T?|Xia_xC>8y7ulh z%d)n{qv3(RziH0bUe(t-Prmt7-(D|ApVyZ4##`om$@=!Y>z4J(Pub*99mb!9Oy(WR zWgJ9g`!JT)VDSaLs7FTD^(^7U>Ip4k5vS<(sc@X+0qtuQzl(7yrd;29owX|0mkw3 zp?Th-Yqfi#qcnOiC9Wr@rN9TGmd6znyCH5zYxkDN)qIsHXIRWdu3@znM%qy2 zOe$H=n`9_(HG(*&(hNupyD_j7qy}V6XRh7wTe!b@v!eCjvzimZa{5B z`&|bmB=HgN^Mv@^4bp(E)ad;~$&O9Q%>H$&a>+DDTa~cq*xaEhLjffLO5CoG`VRL{ z(Di&Ckc1K9ZrJWunf_bo{ApIBifhJHB)%k>q`Zl$uhL8SS<-8I@_gY}v;BV)-jtNh zXfYLfP-19O!Dgha4Z;8QYW3}@@w0*JnP!&lFx3z3I2MJbuJo{deDJoX2lb8daA$J+ yH}?0%#rDfTfAwhMM&9}P`NhqxAL$S8SbvT_c>l@o{$FOMk9YTm-+%Pw*Z%;6eD9(F literal 0 HcmV?d00001 diff --git a/src/icons/min-k-20.png b/src/icons/min-k-20.png new file mode 100644 index 0000000000000000000000000000000000000000..67f07c8f8a89ea18d7f400195a2772bf8f7b99a7 GIT binary patch literal 1633 zcmcIlO^f727|t>{>cS|3Ct;z;f+$!?D&GkkhuQQv(_qG7wqZw4R;nu9VLGXpWTw04 zrWe_R_#?b{67L@LGXFsED2sUTB;s*}v8p>A2btZS%LbBEs-Ak@=l!TRj}8y^wr;<5 zTTzs);r`%Ayx)}fE1Tl^)uTIG;`M5^|8b)zcfOSOt*?Loiz&)WkMq%Sdz^e25?*MS z@|0=wq7rCDxwk#9Fgal@NZB|qBlXW8epEqDBlV$^7)cegNxpwxvj^t~BXWL10;+Dm z5AMxFK~S(3gLyG6n{XbfOWsh7<+QGXC8Rxx)E#LM94Ch$<~0M3=0bvO2Y7*oT+0rE z_kd|2UpIUmSrECQZG@%?x=R(-YMO;dgAY1e;ww@oZCi!9KAX+7nWgc1tfL?Zbi>q5 z6AA=u7G;a)ux#$G83wE&bzZeOFM(vlDL-u^RVZD#P*go_*>qtN0n_KW(vfCJm)5`} zc{a2tdUVt7o(U_R-fM}Q(V}Ad5o`EqP1x=kE8DwkW0drJtJ8YA^pp~vO<5sejSz-< zQ`LmGyqWN)_|Y%--c(^+Gu-le#QAicsKYf2h+~sL=A9hJl4s<`D`# zf_&&8+k%0YX3(OUxz%QZ?jTR*P<)`^8NU4(b3-?4t7TV8|0tM%k2&4)^Fc_{>|oVn;RDw7niS> i8+&B&^G}Z_KzXw8$AA3#@)P+J815bnzPtbF7yklcR|7Wy literal 0 HcmV?d00001 diff --git a/src/icons/min-k-24.png b/src/icons/min-k-24.png new file mode 100644 index 0000000000000000000000000000000000000000..1cf594f444f3d8a3f6d7ce7ccf0abcf049817da8 GIT binary patch literal 1639 zcmcIlzmMER6m|qb5Ofk1IUx$mNfD$Q{}_9{Yb)k-u`k(`@UdK0%8>#X&y07iTYHS{ zyWP7gN*4rudKxOKP*KpsKLG*>QPEN$9dCBM%L!eQYp`T{JoC->zV~CEpA7fzZCrcj znxZHhgMPFR?@f8X{u(@go&|rw>y5Jiajhsf|B&~U;mzM+^6D?y=%6`>Kk%u@b;3l# z^?6!FYjIRjzI)7z=ElkxqwBrpQ8it7%BaDoJO@|}!mPEa zav~a0PsDTlSTC==DgChGq!HCfi0LX(!xf7fhB7gpdh0<}Ffps&lcL%^JR%JbG;CrM znHXVfgt2e;eA9WjM8!}Aj5Oq>IKi^?mY`m z1i934Q4doWCCqXiFX<6buuud0BSDX3$mITIsWL%RR*VpOwY4QRSXzSi+4#EO4&`^6!FyIzyqVi?qFhi9_g^IrZVcM zqRI)>MwXK?H_BqHssE}8#Z*+WU=U>c{QMvchm}aPDJ<0c_wJ~J-O#l>*F{*jWT}G; zaJQe;kk^y;@Z9I0x1(vME-KO|R33ytqp|`x)7t6mf-qmsp(X8X!h!VSvREQ&kv20@ z@trYb<1$5OJWqN}j$bVNa`o}Q32#G6C!`p2=%|J!T`^?uSti8zZ>|<==lawN4$V&v z*IgGr)_t27KwUvse)WqV<*#9D5bccm8}#q9v+Y;Vm0!QP`t{piJ~ZFmdh7c2v+ZYS l^Q+%Jdh;&Y{O*ydD4#rwK7IPrQy3}AV0SP2_ReRI{{aH10Z0G< literal 0 HcmV?d00001 diff --git a/src/icons/min-k-30.png b/src/icons/min-k-30.png new file mode 100644 index 0000000000000000000000000000000000000000..1e34ecec7b891ec9359d036818a5ed0eca5cc8a8 GIT binary patch literal 1644 zcmcIlJB-{!81@x8L6j>HLW&}RM&2e!8Nb)(F>#`ccge26$LVgR98`?Q<6Z049%K7% z_pZ!UG!zsRlt>gb5j{nOD5#JS9UX|4M~g(mKl^YZbV;tklI`)#H{bvLkNN%a-tPUa zt2eGHin28v^!DNXhP+?egy&nvqc7m~ayfXvR+L-s$a~|<;Ipq3<;t(w=&(7A-u0Qt zHJXT+YxBGWw4&U;J1;3a;th)VI4c76uWuf!C`$tMK{qm@GUStNa8~hyv)vIpJ7OeJ z@7_VT=ROeRyrF2GPm9{02kL^?hq0X2RkVOKM}fK{4Wh$n4~3%QsH?e{nNAmN6U}sO zhmc#yGE7f5Jl(Xh>H3c0TNYYfDp;$M)Zg#Dy|M*gfjViL(%1FbY^Kd@O;lsuB!uXO zrCSyT1g=kuhR$(Och(F&Ub8AIn@ki)GSXNaH-QRDmoDUGOIy^dFhRidIW2WlGo(vv zU=%$cn&&OLZu%!+Wu^B*;(Byia($oI;<#eGf5MBVvo@Bnc5iuHO&6XfOy^Uc1FQyN zW^1aPh(^>C@eDuO<<^_h4=YX^QH_L{t`oJlW?hBpn?i5%M#y9C<=?#7OXsqLEBAuh4ZgnO>%E!4pNo?yo^WODzqR1?8~qm7F1QP;7U8)L_gDNY@y zi;3ZSxJw+H#GaShU3bm)UX{UVq0^^XrK$uNyP(E&w>c)%b8%uh9LE+*F(H;`$M&|z zsjZ@f`KhRK3bm2tbjdM4C-uq29lL4-NaFYZBMR zmS)OQ2N~e*Agdv-r>nzrz&~1zrWsmPq)(YV2!YCE1@J^&O=lN``Em{|X=f7-q!*XP z5>bn^nbC^xj3FDBDLVaG(rbG1eBqa?kN-{hDx_>ei!q0es;kl!UG|=3LiGRUYO(fI zpIXDA`N?71b>XA!+q?kk3cB(qum8LQ9o-!Ec1DBm|MgHeef?Vh?@si}?|*h) x{qeW#AMJ*5{o3aF7|Mr)I`Nnx?^!X;;x-S0*!~SmX(Y+5J{tN0L0Q~>} literal 0 HcmV?d00001 diff --git a/src/icons/min-w-10.png b/src/icons/min-w-10.png new file mode 100644 index 0000000000000000000000000000000000000000..3eba9a9a933a1a9994cde2e6258b7288f5a7755b GIT binary patch literal 1707 zcmcIlO^e$`7*+{{bVHz!LqZQlD3=5}o)60(600m5dz&>x+ht?Ow&c*!%*YmNX%uO8 zZSSe{)E@c=LN0-xd+4>4{)AHc8%m*+_S9P-osngGQ#Q$7B9JuFJoCKI`!Vl)v%h!$ z+Qx?)mStTV?Dh}z+l)7^T-MKT$uB?Y*ZcYIXQgFby>9OJtf$XzTGnMh86K*`@PW@{ z+MrxUqA^Qzjkc`Ktyxalkx+IdMoAVp|NQu~V<$Xt9<@Rg<~=b^c25iO@N{p;PLG(! zovpj}=FHawsZi9OrIW1mXMt1k`g&}BL&vTl>L_rwjY0b`+_!tO5O%B41`N9`yW=%* zyXkt~$2LK@3sD#1CctgqMLr>ReL31%!DIiR|4D62e+AB1soaNfI-NGA&4w&S5PO~n z5rKpNjR565Q*;Kh^45}}FG^MB5CHU(se|9VQ(xIHNhl4P;ze z0>kjl&@^44OSN;Nt<-wYB`$~aT)+cS%Hx8GofDC%TT5g4SSneLAi>I9f#`Nx0u_aU^(z zK+F*WQQM7yC*lZD61lBz2eoLIR%-P6zGTP7d$WE~s$4S7v5KHin+RcnDIgy9fN)(8 zM4rn4BbX4kOTBo__Gyvm-9jg4S&b^L89Uuh-0?gH+z4YJS}p|N{|lNvz;b{X01)dKc5Vpq-9|COtpf3q&bnHKm2v9_b)oq?X|8q?h#M&B8C1_ID<{ z4k;VcY$SA}gpP3qnwGLi2>gGp*0~;vnR-Cyq9|+c@6pjZ4r^S6*`ukhiNC*lezsbw z8AG#}S(#oC!8OGzrYd!38sJi}?y6?EYUlc6bs&gLJ6Gs-f8*+}kM&V;W6<9o-u#Wd qc=>Yc68`eZ*SBA6J>I-z{rT@lfBpW!4}X~BWU#Z>|Nh<=U;PI=WgM&k literal 0 HcmV?d00001 diff --git a/src/icons/min-w-12.png b/src/icons/min-w-12.png new file mode 100644 index 0000000000000000000000000000000000000000..8a44fcbc081ba09dbad58afb32ffeda6ae892a10 GIT binary patch literal 2438 zcmb_e%Z}Vc6m5irLXz1K7CbhVheaY$?e|mTj3(U^rX@U#CM_~N7L=>X-PW{Sj_rQT ztPnfC0EGAkejtl{0-pgpwg@4GTXwgng}R3U(vsU%_NjAko%?Wodvg5I&h7VZcRHP& z!BPJd?svs?>kat-bo%8laCl{dCCv?%1H4_Fk9oz*G2bFW`?{4P_j?7y6)%RIPgYSrS+PjHo`|X^-G7>7l+Vit z!pr3v*2fhKWL?!&r0Pg>hMG}F-TJ&ig^)rNS9lA~R984ollbB~6eWJlixh*bNs32I z$+J;yBMkjPR#rG8Y|sy6@U5F9)F&>EY|o)6iU>nQH5qa>%S1XeERPv_9JzG0zR$^2 zgj}p|vY&DS9IaMIUkw5|B$vUg>iUOl! z6T)oOLUtTS$RuV2{#h7lp2i%)EL&sX)s@{IpYS5&6ht;e`qydbA0;J(>tb0@PuR2N zXp%^E=J}Y2;s|6S0xKAs$H@krZst+5em-VEx;fenqU3Qk#|1kWft)wVC1soIC7xaH zc+6tej&zJ@8Jf9>4i=Zj9j4pdtn+8(FrK_ahYKO8SSrcvDO6!933hn)4 zh;CMc*XGu%50N518BNV7e=nzI-fwh#EFx34Vt-TN+%*57H~Y{|+6MFQT0vu<|KFA( za;8luf7O`|pl6CsQZ9?|5gxVW_;7P0^c;gRLxnPPbr)%(t$LPcBh_|v$JJcdijBQm z;z3hU2#$x93J<7di2#de*u+D4O;*J literal 0 HcmV?d00001 diff --git a/src/icons/min-w-15.png b/src/icons/min-w-15.png new file mode 100644 index 0000000000000000000000000000000000000000..a66c5e3469a3994b49b258864991d3b79ca23c4d GIT binary patch literal 1581 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 literal 0 HcmV?d00001 diff --git a/src/icons/min-w-30.png b/src/icons/min-w-30.png new file mode 100644 index 0000000000000000000000000000000000000000..c9a060d5342d7903bc98ed1f22bcb363e5662a79 GIT binary patch literal 1640 zcmcIlzmMER6n2nu3L&XMDUjt$0aC{HjJ@8q6B91GM|K51PM4K(Af#kG9`9ObdyMV7 z-McbKNK_O^bTmj5G^x^21VRB474R1zBsvrddU&(zb)x9PUBgOV&yR1u_q`wU{K@v# z&5P$RomUj);%GS7f%mKOIkyJ?SIzrh!t2Fi_+F(bSKgM-nXmlMzgCp9za`_{dN+8- zV~d8nyLZPi9uQ=_rs_OP^U9n1+Je`Ev0OGZbpfgOd~HJ-RCj}IwJ%Dpc60|ZYJVSwWy}zIexU;tv7|&FFCD6ITj*aC2D)cqW1eTF|PXB?Ie%Hta@FFYR>Qh zt+}relbFaPh~P1?JQI7^d4Gutpb8>d(-UzbO5(#4P(k30@~Wme6pYu-H7#&6WbP|%n1=EPS50_#k#n&Py^=&g6+$Y$@9xnjRXUZHY%P?x;IC4YWxK!!PuGds3ZF6BIuV?Hx?|a`5zXv

%H@~T|7XrGKd9Tw#n$_kVZ3rxUzdz8zgjhn7r#pfdvY&+ zH>4sn2@?r7XIY`phOxFjD+t}^5+r<-<`Mks`yU}lSp@HTu^ks(K2EoeOMd%!dq9u( zX~5w6TVQP#DuRql0%qAHufkab=e(g>>&F%ZbBNrJ;D!ze_TnAT6(t9r*+vw*9_R!n zZnxYZcoR4__AT4Da0}sf=-Q#&*hC}Fh-lR#X&ilXUeF>Cp=TI zN(sYFsA4RnsK(+cc{Hz^Y>Kd3aw0`J5Mr`y)XtIxbi2AS0l0ZL&6${1Z)j2V8Qvq3 zN6@hy8`%!RodIrzt`}nb!2%VlDPTmB=i&rQheyvr#c|lrD@k(7`@IM%6=s^U(5I}! zaGRqRwiDDzTn~{%ZHKNMBsA&R?If71QRjPt9_W(k^NUesf+~)tDxshF3{%fW*tR{y zTsJ_0&s-FE9p58v;J5tNlI^`RRbLC4Jjtq6F~#U5Zrj0a2QkMVq9k!`lu*(^EE&3( zI+POMhJev113#N+P(i5!MRTf)mrP_5=e-pR)hxKZb zg886@gzEW@Ak~fK4Azg+bECAV-0pq*_PviE1CgHiNB{r; literal 0 HcmV?d00001 diff --git a/src/icons/restore-k-12.png b/src/icons/restore-k-12.png new file mode 100644 index 0000000000000000000000000000000000000000..a612a526ec6f176c2828e5f78b5278b7e05357e2 GIT binary patch literal 1763 zcmcIl&u`pB7?S9KIDmqL#1V1hj^MzF12-g&{Tn!N-d1#u4e|M zWBb@8Y4Sg<7@+>`i4l0hLK~XofU}DhkT1rJH%Xmb% z8@efR0S>$r5bUOaVuXNidqL$qsb(dj7(yTr$P6s$di*Eb)Dt13{bw zq>34YoMVt6$44YVo&qe{KCCkJx6sMctXdUUjDjT|BNziONGJ%I8v+`70YHdh90abP zlEgBf#O=w6tYXPkIh9(@qEuEnRi4RmIufufM%uxOU1hPA)v8@b?LTo(JZeXi%$yr7 zqD=d{Ycbte!L9anc1HCsrgK3%9ScQzcDEOZTBgmER$^nMihL0-!DmUY>EZdpFV^-K zCcG^v8`EMW)Itd@oeI=T%Az6g|Gj$B>!n{dl#_KQ>$V8D>1b7sTW8yo1Xu`+IAEa@ z0vovk5Rdo(`GFIJb{KjoUZ|L4OFau(cz*o3@~0NZfvgsR}ZVrLKG_TN^J%5 zmrpxt8^MGA#_-0Q?4Q%q^_MQ6oSdA#vxd$6&whSHe_Bi8JCEQ0`i~#3efikM|Hs=8KmQk%1Sll{ literal 0 HcmV?d00001 diff --git a/src/icons/restore-k-15.png b/src/icons/restore-k-15.png new file mode 100644 index 0000000000000000000000000000000000000000..04954359655385e7ae8ae43c53a127c886399a22 GIT binary patch literal 1609 zcmcIkJ&fE$6m|qb5E4-!q(C*ANFh;}9sjS#oH<=~FWjQ|I9*oCLB;HNyld^+V{G5; z-bqLZrGZNkA!wo$v@}Q*NJtbERFo7zLxF@uixe8Dj+tGriO?mvhLyY?kH7ie_ulvX zKHS=T{oI+C&S;u;uD8+MmiOn>_4HHn|J9#9eM8=!$v56AHSO8w)pbg{d+)rao&GxM z?^HYCb)Si}MI$lbty!8&w5F}B&T`7eyaEG0OtJv}@y)joBvAlwI-wrs9X?7n4hnwb zV6)E-#*9R8^);|E^CdybD+*@mBrE+{0O!2ET&ryi!5mVJ1GuIFf}L;+bVR{{({d3r zYzMSS%Wy55kXL}I8y?m@Y*@%}eOvcU6VyK_qZLu?Z+EZNvE)+#M^%;k7*D6u*3@c= zVu%ew2-Zz(nn)s0xt~>ZhO+X)lA+5>RwQ|qhzux3IuN^60HxAJ3TfWZW@TL_Sui}K zIW}6lN@)oU!$(8Yv_Y5E`kstZ>phmZ?C<9sZ}U>@7L2d&@vOSA3>LBGY`$Ae=9xwe z^9fHStdzoxCR9EWl_*EzA$c^fn{0BwQ*c^|qA$c`Y1Gz|1#~*f7y>TcOtMH!%gahs zeTH{w#RF*SrjB$I8STC@&h{Ph_5u~kE{JGFABz)F67N3-6^4EI=^VuNHEFKRK;&ICnnUS z$hAp~bk8P;GU6b^BXr1$@XTE$ghP?9%NOjBFX6LZJn5ojpBAZKu%;khjCSQIIhy^*AJ$Z?(xA^2BKM@&Q!ibxjOQXMSWWfmJrDec;?zlj_C z-Fh`iz`W6X%2a;`kSSw%1nceOnChKO=Yn=R;*#`uw-<;~#MP7*d~GO;e3D+m50hTf zy+;c_neG3Z@VcaIM6)56gAzlP3RWX!VF>=OSMzrdjGrZ3&NQ`bhN*mL#xc(%bs>lC z;ot9nBnNf7*InyhdV&3QbhP@!*~7!bqnA%xpN+5m{@Zt-j4%H9`T4uOFVp^?cYe72 n@yhpKy?E>L&(}BaKS{Os?q5Xlm0x~U!@jq^+5O_`J0JW5Noo4P literal 0 HcmV?d00001 diff --git a/src/icons/restore-k-20.png b/src/icons/restore-k-20.png new file mode 100644 index 0000000000000000000000000000000000000000..66111861773baeb31be872055bfa450afff5bea4 GIT binary patch literal 1657 zcmcIlO>f*p7&Zb*TZjY_q7bQ)O5PIPeEJ@DI4afnz~J;(|~m4&1_c*K49GZF9kr?eWYr&-=U|^ZM@g z*434>t7j!iTIp?ecf|YU`aXS1JU_mBenq^_geLwZ-?+=(HJ^O3Y->r7T zcRa#V6;mEDb(-b^ElHQwra2~itdb)(NHSmf>-!%RIibFC!wj`B57;o-JSf=pgRMR} z*ds1g)-KDJrk)^3S%u|kI?76K>ML_zPmJqnsK|3jwdX7AwLy6|+?E4gFxgZsK=h6& z+pelxM#pvEkddZ4P;;Pe0NwIBnun0wT#B$((AeAQzSYN) z>aOcT4MBu}K!9?VRd@=r^1_m#%Suutd6n=?t{HK}$Ca-Lr3)9*yrs>`CQKq=aEf!N zt6J^S5*UV$ho)(ZE~|}wVWrV~EOFVNZFvU>lbR4FHdqm7D33|o(Mn*aw# z4ls=l1K1=MU?z?=o7irITDEINB2Eh)9c8UmQNid&rfIpF1!B!G0JS>~h)9P3n>bEv zU=tJ6QDjQIm=`G)wUMNFz+j#Y6!||j0Uz-q literal 0 HcmV?d00001 diff --git a/src/icons/restore-k-24.png b/src/icons/restore-k-24.png new file mode 100644 index 0000000000000000000000000000000000000000..5d549c3466fdbe1c1ecb6b4bad039d1d812c9680 GIT binary patch literal 1661 zcmcIlJ&)W(81@NW1c5XZ7er+_DL~5Do>_mat(eoD_mW)+UsjtHIU+^Mcs$-UxAqv@ zce{55MN%c9K%#^qh=z&=QKdjoQBdS3gbGCz5f$l8)T&~gpkMM$nMg| zQw}S+FxZ&N$E;%In7zP{X1Vbucm0CmiWNh~Cd)+imn^dHi^MqcdpD9SV$?bwDP3Fm6~{thF1B4lF!qEsVBI7br|*R10i;4v>RbkQx0{qauLt$vxlTW=N0UUJSEP%HI0&9XLx$|K-9@S0DeI@H(VqjI$Bt9aU3=E1Kv%i-c(Z z&DDJESf5(LdGiy)rt9*Lrf<`XQy07|Kl}T>!aMqAud^}i-XqVCj@Dm8Yv<1&T?>BG zZ?8Rk@a6rdqm>`;Mo%t1{OF6%Z|a}?{N3ueYj2%-^YLGge~@l{{n=Xo(J$Y8wJNQ+ V`mcjO!Q0{o(c9YYe7|}7&Oga^3|9aE literal 0 HcmV?d00001 diff --git a/src/icons/restore-k-30.png b/src/icons/restore-k-30.png new file mode 100644 index 0000000000000000000000000000000000000000..66594d2a8f6c2263e79e5d9c9c95dddeed5b4ca3 GIT binary patch literal 1666 zcmcIlJ&)W(7&b+s%jwc21rh}^P63HB>+yK)U7MKG#XfFV!N=*cQjS#2&Wv}hTYHS{ z+ub{*Nt7ln1wY^r2qcIo=u%LDXeiQAAOsTWK$Jv$iP!tZ30;zFuw;8Y^UU);@5j8p zx3#%(cKL;6MN!VSTfsKGU##w>)9`#1-#>)cnXL6zp(vNHRrhlrc<+6zD5rjmJ3Hl0 z_=d}5QlngUMQxm9fL4?%tK*EaT~VrC(Th`0`}M&Wni_LYyJ3Ym%zV+0TL-zgez4hL z2fNJS+UjfSm9Yy1i72T$P6lb=jy-L{>%zF2)-`nkDR(_>tum%_8!@A9 zsST%Q*k;{vE~^9^O&vFN!$gMd*0D>7I=eKmmh;Hn4ql(xf-g_&mu2Sa`e-z&jm(GX$bwd7PE8Ox22!cI95_X`poKLXs_L(_$7T2$(*m znQqi@<qD?I(|as&(b><0zAXy5mou?G6lr;3Zj7_V-fS-)Og!aG z7Xy(1tN>xg!c^9mr7ZgL34Sb=7v5y9p9@;byd&jco~W%ki|YGTVjT6A8*$3zsJK{( zn(Yw*Erq8MOfbR(5u-zhYc*Wr+?=99r~*z)`b?bUakT#oR2aJLv?yuHL_6>_P*ICx z?%E8S2IEZ>VY`kZyKW+C35*(~X?Gi#IF@Zq)WH5gvb`!~)&6Oza>;;W5fxXMw2pxg zQ4&Qc>ejocSvTv*ZgA11*b$77Ioq3g45x(-ja%Z3#zHIddbKClqQUPH0c)S=!Uof7SSMAoEai2(o!}zU}*4xs2igEEL-tSJn2q zZySznBT_S}QU@8}ZYwSzuluvZb6vbM8x3N0QjsoY)j{wyR#kxD+H5*LCd?;uXi7Wk z3m`qdET)J;M&*d+Vyy?+I7!jzPm*5H;nRhmtUmrX;j@skK23W9I;yT!uIN?onI=U4 zZ>}b5NBYzp4$ZF`F1jv!Ec&)cfjWn-{H^lSUFhf=?O?6by7$Y&mzEX0;y?WU@VC|Y z!_((K{b*_B_b*4cUq1Kl;U)9YC&BFp-+cb)vp=r=aBg_(%nDq8u6}oF@YmzS`FZK_ aPI3|9z|aOSIQFgZo$CzVi>Py$@Fa literal 0 HcmV?d00001 diff --git a/src/icons/restore-w-10.png b/src/icons/restore-w-10.png new file mode 100644 index 0000000000000000000000000000000000000000..9262191f5eb678df6a40031cfd8d78d8f3358071 GIT binary patch literal 1594 zcmcIk&u`pB7&WR|K_C)RduTWy%ay7kn6*7?@9tPNQP>S+B^*M!QqrC}o*D02S$kZ2 zlHKIUsXcJxgpd&b07pQo5E9~!#DzbAD-ze<$~U`SQ&nl33zlq;?Kkgx-w(e>d%K^k zuf4No7{>Z=XRr@L|3fbU^bk+B5sI6sF(mAm)0$*(EKv z)Ak7Yz{HN*vz?ypwvpQjJSV`|tPcyKl{^Xd2Orn5;3>2wN)>@^&t|jMtlg63*mema zwu5bq5g<@?nkza-d39sOFc1|h(?X>(H#H-T<*^DaP`XSZD;nCos>=igv*)z1-Ik+M zS^=Zz< z7Iv_M9E{xV$ZZFnANcs*5*5J|aH{AlagwLW=_^oC6b$o9(VU6lAhbY5D@}Poahns; z_E3is7ct>=5Q*Iw`AIkKQ754>qYE{#e<0bhE}7oH991qEa5Pm3+(dL@kLY9^AMwQV zP~65qiGAiLvA{j%t=K**Q}|ox^jTJ|iUVU8yH1BV3?)6EB0{_v5g|N8365E(>pLO= zRh$KhEHetTk!Ex(>>?jq=6`DXaw^M6awu|JPcX1U7CUJL?K-Xhi96y!y_%-xV$cH0 z^n8aF(~T9}s$Zw)RPSOsm$b8q0Mhfjy+l+pQ8QYKtuYk&BC}+_NP0z2UM~D%ZU5hd z*Ck~WnvVq-rETd{Y;7sahS<;dYVqwE`&q%k)AX`2Q+R0XSmZ!mg4sU!;pQbU>RZFX z*68{Md-C+@=A~@lu;rhE*3@Q(P{PXXx9&2|W NZto7h|LFb~{{qGs@zMYQ literal 0 HcmV?d00001 diff --git a/src/icons/restore-w-12.png b/src/icons/restore-w-12.png new file mode 100644 index 0000000000000000000000000000000000000000..ea6a13335a8a13ed9a91e6298f4d0e6011cc12a9 GIT binary patch literal 1754 zcmcIlO^@3|7=mD?vAs;1KX#DZRkA|MG(75eJD9Ss0ob-+hzIVJmpvMOk zGh^e1etjNDf|OT8pQn?o4CbM+;0@$hy@rOqfK&&ev8e*;`_Ycx5e3)XmItWmxOyA6 zOwV>OenYpA=|kj0(*~v&I4H0zy*>;XtzdDm+kLZ+C7(iLTvd4h;cPZ*&Fq#aM$p6< zLu5hA0ulkrqpTuxkd;?f3|(H*BFU>nWV&J`LouyFLn>XSkme0-R@P;b1%q>vL$ifc zN-JO#oeoXY23=NLhcZg7_eA1yaFlbn%S$mWDBn8dS#@O zm`{tzqCAX3KH;h4E+y7n=*xpn!AT{Gfe@2bqjpvi^-f1M2J6>uCm9p7@--!@p2NGO z;-O(73jt&Svpq2Fz;*%~zqdq1(gloEc@_sioq>5IOuz(E_ zZxieS%QH=2*^Ucv>>%J+#C5r84^5vg)X4c=L8mHvHGgSUCaC0SDj2wkn3%>Mz}O@5 zBH4WIcpzqo`)-^0vDdJ@TO{&tA(O{hl`19~J%kx@+5|W;#emz61AOdq;QG|ETr*}4 z8XEeexE(POMI@Lkr)}tr2C*noB0ZC&WW-^fjg*5WyUe1Ol(Jn%^*^!4KdeWSL|+&! zAXND~G^lDUXGZ-xIiY%I)48ObjkzQ}x!X%bDdK8I3cfj#MLvs{;FF}6y=+NrIS@B%en|R$*3vEjg#$(+cxJmVu1RV z4@~56fL-hXZN{ORYfKD~GMyZhf?{`l8FzkT(U_1PndcwH#BKCCtEndj8~g!biEFKF6R-)F=9WS?G$9rt+|f5hz`Tke3~8QMYM=gqd?%nzmu7kXFDX zc{DW7J9OP_9)Xuu@2SM~@VFG_o~Y$v#l+^3D4HuPXPkAm-^>`@Up{DrL%k*{WPJ;OMdv1+HazL6~CV1tZMB7Kg55 zW1ymbX!#B!!HVs@Ducg;P9J1dsyHwPmKCO9;9^(!9J{XPV!|Lte&|vnI7xkHgmliL zk*snGy^-Z~EX=YPBmG}BJvo(CA~_`4RUHiM5XDwjL%ELIf8x5h)vl(QzG$?FGS%NP zVydu$qxLvEC3|Pnxul&<1dyIy?Iog?qh>}cu`z}upQV?~he@yL(W8Z*t?d7s@HVAv zLW{A0L1`itim67*vLNPvYqj|H!1!6gVWz2NH%wvEjbl*&bp^u~J$dUl7}Um~zcIY} zJiB-Q{`$GguUxQh{{G9GFMac|`@`Lr|NQR#UwZ?0`?K2z?zs=V+jqXuw!i+%|M`=9 R->Mlu*xc#gee33@{{TSE^ilu- literal 0 HcmV?d00001 diff --git a/src/icons/restore-w-20.png b/src/icons/restore-w-20.png new file mode 100644 index 0000000000000000000000000000000000000000..ec35abd83eb9f8bdd6f00c815e878ab0aa118bb2 GIT binary patch literal 1652 zcmcIlO^X~w7;cd)F}PqvJOqP9=b~cu_cv)blb%g>z}_sIfoyUJ)>Ku`G&|kZ>F(W` z-J=)HLA;1pK}67lf53yDJqgJl@E`~x;!V87w`Y1fK{m-=Z0PRls;8d!c|Ypy`#am$ z*Uw!zCrQ%!V5`3i@7J39>>4~jxqopTUN03}w<}4y_)&Ae@aeCAaY;J!OFG=E_u}^h zDl&yIG2+TRD*!D?mpA4Gq5Hf>BR)>^Q2z7#A7qrWP`+iyT3keYl5QQB{O0lYkRI<- zpUE5Vq093C2r^z1G|#4a70g3(Eubc?ecoy(bb^!=r+$ySx$yCFPrkJg+aUj4|5nEe^`*!c#_7KIIv} zDiEf3rizKEMKuvm@uOSryeWdHAU&Q9COZ6h%#9eDv0>G-qN~z1@gv_wYWc zc_+y zq*)AmjJsIZT;h9)>*$HOV!KhMa9YUpN!CUc14h#{UC*QrX3XH&NUQ{;8431A?nrY@ zn|cyicy980?P!{!MMVaLHU}Y;X;T55$?bG{LYPnI(2{mG;XrzF zSu7EiNa`6Wd2bBaI8D*1Pm^Ae!)FUWU48s-!rPG23CYJCI;tu+uBc7#StdmNZ>|<= zPxPr39GYJ%9&NmM;p?;7&kwGwy{iB5 z@>id$sX({yzF`*+f9#FWwRhgE*S`Gt!NV)xe)i4KeMS1BclWpRH-3U&ha?R)xBK5+ I{ouoY0lM@DJ^%m! literal 0 HcmV?d00001 diff --git a/src/icons/restore-w-24.png b/src/icons/restore-w-24.png new file mode 100644 index 0000000000000000000000000000000000000000..bdc9896d6c3730e4d3b57f2f803a05e2d8d79cbc GIT binary patch literal 1656 zcmcIlJ&)W(7~TXOf}nILf>f3-1w9BfAnlR+p7>T$9YsjCY+|dmP($ zyLS~ysz_-fM3)W;QKg}S0zrZ3kl+tMg{WvFQH0mKUUNd1+0GpBXp0K(vXkh)R+JI_B&aMnJ?e8LM_Y!K90LbIlpnVHK0d( z)MfJ82h!D<2LuT(i8MxSCdFX$~p(e0ifXDD8xODG)iAEX77tH!Z2{ zD!Of$u6sqon(nBYqv{6IZO_y^jHUXL!CKBDZ@cqhZ4179d0dv6r>fKGRGAuz$VaN~ zx~{5W6=MVlR2-%ynW3~;T{3idLGw5(W06V~BN>YQ(w9N$!i6MjXw#w&69i11kxbPU zt#WAz48xa0lcYfx<>mocsr8;nTnr8~u5R-}?B|qk9`LkWT^eJw*_-X>lewpis(iu| zfE6H2Z%k!lQHo+LUf@Tw+<23DLC#4j@_`VOWup2^7AXj-#JJLXH{+CvY4Ls~s@}sp zq~yMgHLM{GBdiZF_6*xItlb4FgeqX9B(KB?7DtD#K!u^#ON)}El=nKm3@Vg3W*&(Q z7u(E4ZSF+K)=U?<4tEi=wV`Q77RH3k)xiFap!-$Gs{M;nWr6}n6BQ2==5W)pkU6HU!63-S@%dg5^m7r#6Idv=uV0gTn}Myn zwvDi&SEUXzz};?KKwb~)!*he*tw)nsnpdPpXmt>LnN}6RnOslDCxrQQ4lQV>V-BPz zm&F26h^U;BoNtUE8>cBc^+nPPa`1BDr>l?uO?VwrIwt9eLq}ER$`!ThJ&S~>|IO8W z?O2~$!lC(9!=~%PN7J`?3e-7tWm9|f19Wu1*V!0!AJS*fpRc`k@ypBW?I%w!-2QBJ z<=3Cj-g$8E>rXFl;5*-cwerP1d9_4nsbetb9j>2dXM N=xuIwo?g3s{~t2x2$28) literal 0 HcmV?d00001 diff --git a/src/icons/restore-w-30.png b/src/icons/restore-w-30.png new file mode 100644 index 0000000000000000000000000000000000000000..1cf61cca4aded8f7338b13ec868b8e9d9355b35a GIT binary patch literal 1660 zcmcIlJ&fE$6n3KHfQTSbAR!83oC1(C{$H?zGA|(YB6ch;PD5#JQniLSAga*W$U9UNzOL7gCY>#KY`QG<_=K0O7 z&C6%cJbp%!q_e$lXB*y6i2H$6cs{G&`~Y4L=G|9HNxJZ&xKDi)-1u0M?)xd}?^HX{ zOFrSLiYbqoI!kjvOVY(lvmBFMR>?6NCRw2T{`nV*oX|kI){68f57{W`9u(~A!DgQv z>=KVEm!6X^&U_$9S%u|UI?hUe7ASLGAI4%@Q{*|M+6|O7VNl+Qw&ai(Om3+TB8J_P z+n#DTmhE{LWK%a>O?NfJLWbkpx^J3teJNnApaXxq^FnP4z5-=bRk^Qe)9F;5S}HGw zn&Ek#rkk2+B0!*WKdbNzW##!LLx+{5Nb)M-nJgG_%qLZ#fYOBvY2MIgWgR96m^Q8 zW+}i*5N0%{@)56iIpTNlqgige$^EckxZ*{h^YJoKTT2!>3`Jr*`RQv(M)|aSMu@8S zunw+RpqRR;Bi%%%(Kk)M<@vht>H-x(6;NE^d*V1v2K)CwMUmgj$_i(M^*Vt9D%2#Q zzJpz6*)Bo4-i{GrwuxNbjFG_x#G-L4cH7Qe4eal5G7%vY`xm83IRTC)Dn7An+r~OU zmJwUX^K2KnmdOyYbV>(g;JJ>mWP7q>b9` zn0hVhdCX;sOo>0>MT(&|k`xb_mS;mn{#Q-N$GnI*g&y}JuPS$+I(!t0Qd5zdATI;y4!S2WRk775Y* zo2&WSkv_GAL-P~Ert88-)3;d$)CF|qx6Zxy2z2zdUT3Y}{p#26pL|%-A6mci+Z)NP zTlt4ye|Na@*UI&8K3)IhsUM|ZuH5+YoyqAxK3iFZ>+jQVe|zeO+kdXkZch*IKllF5 WqwgL*_WaM{|Ipjm?A%;`?fO6F;10I{ literal 0 HcmV?d00001 diff --git a/src/main.dev.ts b/src/main.dev.ts index 526988f..83d1cc6 100644 --- a/src/main.dev.ts +++ b/src/main.dev.ts @@ -75,10 +75,12 @@ const createWindow = async () => { webPreferences: { nodeIntegration: true, enableRemoteModule: true, + preload: path.join(__dirname, 'preload.ts'), // Add custom titlebar functionality }, autoHideMenuBar: true, minWidth: 800, minHeight: 600, + frame: false, }); mainWindow.loadURL(`file://${__dirname}/index.html`); diff --git a/src/preload.ts b/src/preload.ts new file mode 100644 index 0000000..40cc919 --- /dev/null +++ b/src/preload.ts @@ -0,0 +1,50 @@ +import { remote } from 'electron'; + +const win = remote.getCurrentWindow(); /* Note this is different to the +html global `window` variable */ + +window.onbeforeunload = () => { + /* If window is reloaded, remove win event listeners + (DOM element listeners get auto garbage collected but not + Electron win listeners as the win is not dereferenced unless closed) */ + win.removeAllListeners(); +}; + +function handleWindowControls() { + // Make minimise/maximise/restore/close buttons work when they are clicked + document.getElementById('min-button')?.addEventListener('click', () => { + win.minimize(); + }); + + document.getElementById('max-button')?.addEventListener('click', () => { + win.maximize(); + }); + + document.getElementById('restore-button')?.addEventListener('click', () => { + win.unmaximize(); + }); + + document.getElementById('close-button')?.addEventListener('click', () => { + win.close(); + }); + + function toggleMaxRestoreButtons() { + if (win.isMaximized()) { + document.body.classList.add('maximized'); + } else { + document.body.classList.remove('maximized'); + } + } + + // Toggle maximise/restore buttons when maximisation/unmaximisation occurs + toggleMaxRestoreButtons(); + win.on('maximize', toggleMaxRestoreButtons); + win.on('unmaximize', toggleMaxRestoreButtons); +} + +// When document has loaded, initialise +document.onreadystatechange = () => { + if (document.readyState === 'complete') { + handleWindowControls(); + } +}; diff --git a/src/styles/App.global.css b/src/styles/App.global.css index 2c34ac2..963599c 100644 --- a/src/styles/App.global.css +++ b/src/styles/App.global.css @@ -12,10 +12,19 @@ body { height: 100%; } +body { + border: 1px solid #48545c; + overflow-y: hidden; +} + #root { min-height: 100%; } +h1 { + font-size: 30px !important; +} + .rs-panel-heading { padding-bottom: 5px !important; } diff --git a/src/styles/Layout.global.css b/src/styles/Layout.global.css index 3efd8eb..cf4e8ab 100644 --- a/src/styles/Layout.global.css +++ b/src/styles/Layout.global.css @@ -23,5 +23,5 @@ } .container__page { - height: 100vh; + height: 100%; } diff --git a/src/styles/Sidebar.global.css b/src/styles/Sidebar.global.css index 93171ab..e2be354 100644 --- a/src/styles/Sidebar.global.css +++ b/src/styles/Sidebar.global.css @@ -1,5 +1,6 @@ .container__sidebar { position: fixed; + top: 33px; /* Account for custom titlebar */ z-index: 1; } diff --git a/src/styles/Titlebar.global.css b/src/styles/Titlebar.global.css new file mode 100644 index 0000000..a20731f --- /dev/null +++ b/src/styles/Titlebar.global.css @@ -0,0 +1,110 @@ +@media (-webkit-device-pixel-ratio: 1.5), + (device-pixel-ratio: 1.5), + (-webkit-device-pixel-ratio: 2), + (device-pixel-ratio: 2), + (-webkit-device-pixel-ratio: 3), + (device-pixel-ratio: 3) { + #window-controls .icon { + width: 10px; + height: 10px; + } +} + +#main { + height: calc(100% - 32px); + margin-top: 32px; + padding: 20px; + overflow-y: auto; +} + +#titlebar { + display: block; + position: fixed; + height: 32px; + width: calc(100% - 2px); /*Compensate for body 1px border*/ + background: #1a1d24; + padding: 4px; + color: #fff; +} + +#titlebar #drag-region { + width: 100%; + height: 100%; + -webkit-app-region: drag; +} + +#window-controls { + display: grid; + grid-template-columns: repeat(3, 46px); + position: absolute; + top: 0; + right: 0; + height: 100%; +} + +#window-controls .button { + grid-row: 1 / span 1; + display: flex; + justify-content: center; + align-items: center; + width: 100%; + height: 100%; +} + +#min-button { + grid-column: 1; +} + +#max-button, +#restore-button { + grid-column: 2; +} + +#close-button { + grid-column: 3; +} + +#window-controls { + -webkit-app-region: no-drag; +} + +#window-controls .button { + user-select: none; +} +#window-controls .button:hover { + background: rgba(255, 255, 255, 0.1); +} +#window-controls .button:active { + background: rgba(255, 255, 255, 0.2); +} + +#close-button:hover { + background: #e81123 !important; +} +#close-button:active { + background: #f1707a !important; +} +#close-button:active .icon { + filter: invert(1); +} + +#restore-button { + display: none !important; +} + +.maximized #titlebar { + width: 100%; + padding: 0; +} + +#window-title { + margin-left: 12px; +} + +.maximized #restore-button { + display: flex !important; +} + +.maximized #max-button { + display: none; +} diff --git a/src/styles/custom-theme.less b/src/styles/custom-theme.less index 97d9964..0a75076 100644 --- a/src/styles/custom-theme.less +++ b/src/styles/custom-theme.less @@ -3,6 +3,7 @@ @table-border-color: #0f131a; // Sidenav +@sidenav-default-bg: #0f131a; @sidenav-collapse-transition-config: 0s; // Panel