From ad9951947aa88e203e5899c1c26ff302e4580713 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Fri, 19 Jul 2024 02:05:47 +0200 Subject: [PATCH] Button --- bun.lockb | Bin 295303 -> 296257 bytes packages/webui/package.json | 1 + packages/webui/src/components/ui/button.tsx | 56 ++++++++++++++++++++ 3 files changed, 57 insertions(+) create mode 100644 packages/webui/src/components/ui/button.tsx diff --git a/bun.lockb b/bun.lockb index 8a200fcb0904422001199de5f9cb48ed379f9a87..7978aa7e2d5c19ba9b0284b439f450c2b6152b34 100755 GIT binary patch delta 33261 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 XBE^}n?N!97ig_Gq&5P!#6aW7Kn!qlb delta 32692 zcmeHwcU%?M+Vz|{9OYm|Q9-c9XejV^!%9(m>hyWie*2fczs0&J{5(!*UrOC} zJ7v@ydrYm4ic(lnV#{_=lsw>pofM@QxW~|;kwbeZN@v)NA3SL2FlfrM&We%`whG;i z{t*KQ_3f!BPmqrt_UMQKQ7oe=;tRsA1qVQMHuWX>6-$#9iK8GLceh17RevNpJ)HwK;P?Sos`H*n|2m=On zAH~L61{#&LKxai>V8~gK2UdBW-uHB|RL0Gmx84K4znHpJ+{s$izx2A%AM zoC|?h!Y2EISsmA*Ms-_)SxR)|fXJR0lv#*pb84ecn159;@`;Hpj{p<8gIQqL;YRhN zkbq+m24-_=$^zPrlw$#=|D_Q|`iZ}@$Vc(!~WY*xq}WxrP%fgXJ#qA-}sQ3$L^pNOF!^@@t zdQeo<@WG1GVYbntnqc-wDQV{dW9r79BSoG_+se{fOg?Iedvt|-|9%vq>_ zIqM!SK>ssv9s%+p$(tlEkvvuMFv$^M_EZbWA(AUdE(+#QxJZ6B->`p_d_uBo2c@^( zqR639eFqLxl!MC^r5q9_f!T$hORflJfl*-gz^+82N7}$Vk&%P3%jQwG%7p8dX=d_djQlXMD!Rw7` zd<5o1F9T*ZTqVbCFoqWw(TJ#so{_^~=Ry!^5qV(4fWz6E#7Xdht6Q;R}bt7_Ss>y^E237Ckxou_ZvwP(~O}UK5W=v77;lLh2RWR>Yy<} z^MkotzByo2^(mNrb3^huFvsi&m}5H{%(3na<`fwm5j`|=cy!dz$botr_85NNv9qOP zWaLM^`bG~OHc8sgzSY)vG<+|`@QX!L`{DwxBuRU*bQ^d;D^#R>%(Dz*W)A2(Ao8Q0 z-IY7AS^SWpY>c8@I%-s_;W4Ay)xoUpEinBqfmuyI$sb65blhlu_Y+1BUV_c3*L%=l zy%{Z_V~Q4z?TPwuY1}+%WOVVQmVtUrN4Iin4$U;m8v&bBY!tedpMcYbyLo6bx9IwL(`#!C5_4WUa9HY5S|V+GjzLWjGzK8PYQ1W1HJu zKUEYzBv7@?+75dVtX8mG^rEJ~s;@N<4Y6e)TIi$i_hL(70m{hp{cL=0V^!#)cZ zU94I{8;AW+P8>>5v0zCrCYSZ(2fR*!dB+_WRpLoJOo`;1U~T$ItH zn3ZVRK5g2JP)kAW2>yPm*=L5@cMULF?xHW2kF;sfx(+lJ3woof!;-1lXNB5A24Svf z#|MYlMt9~ldLE-X1BwH=mkwIg#wZQ;YPKDFa>L+o=AGWy@Wro(<37RM5! zf!-~u9nnHb;abK#r`lwM<~HA{J|Cfl&3D?OMxukX!7D-5o`+}s1y;^Q>8#ZG(EamF^GZ*2C3us9SLa5VWPtYAH_ z%xH(b)_5a1hN*_bHU<{9z!@R7lL*z-LxC~a_!v?b#b|Czoc0S4*!x&l9UQh2vB-`a zn7tiBtTLJy=CCKhV!bfdH5}^ASS@U+(_Svls24gIO@zTQ#eRj|VW+f=2ET+=SI>(h z(O`nnGw{Spj)BE-!8Q~g>;j{cUQfqFWT%G;Pg0bDdMFN|8hYq1LLC^g*Pd+jrOKYQ z&4ATY_jroXCwizE?p<|X+ZKe3JY7HM^kUD{N66@z*$4$_%|8pVry;~X&7&oBbl87~ z#nIKr+E#xmYj}KKh;11{HT2LMgqrE0uxac*#M&nyR2`}G?Z>tYR%7ZGtJY*?s2UQl z#jkYQm&9Ye!3mWQaHv1WYi>zSd-(M1$yn8)&Y7;oCpp#Q)3uBwr_FVSzRe>4E(rM{ zsf~+9O`V~|uX3udXJ{Fq<})?7)lS>++4$N{%eOkjb_$`6dZ^+YQ=5cP8(sSWp)Pu; zYJ#Hl)k8}WiqJ!E5Heyr&sCJ(x^@7eNImp{rYN84p()v++Xxvc>drG`6A?0M@Dic+ zOkoe7pS_5}9IBYF#jkbR77DBeZRXk#+fN9gSJ&5cS*Qm#$pGUrbcvy&i`XL!bwjAJ z9!ky*JtL=WYI+Y(cX&JJxy2x|=Gzse5P zUTSKSvP0=+$ewqZqIAW`DVqCihdOeZmXYGL-(9XK*kUosxI#LuP?UDM72Y7&6-H|q zxIo}y<&$Xc7Vb?PYQIFyZHv?X1H^E+s2cav3SSy~BGw)@t|72m8hPPVv>z5a38$h$ zUm1%RD;n3|7O=9f^tMT`YHRr%A@)NE8JiPlXrYx_*jA?+wo;4V>a5shEwh@# zegIYtl!FNw?NCc4X<^%(YU?B|ew)+2F)4fVL=$ep;_}irFq`)(>@!;PkPv%+gg()A z?hD_+Y6uJ4BCfCbRvVUa#cl(OdktFXk87{Aa`S3w`w14VleI(a?N7}5kdy2&{l@vpTdJ>srIv7#OFtFvuMo_F=FB^hWRiv@zW z#`gK%I_x=y(_!&<1 zCFqdT=1Ao+f!q8{g!GGu`bVl3cGzj#yPdUaemKNdVF$WL4~<2rAw%{92yud;%P@7+ zoy>;59kN3=5yG^E7P!kyH5#G1NQGl!ZHKyRmzMFJQ_Ztmb4z!sjdp8c=}ud|J=}Gh zr-!KB_GlRpmP5c5BRa(X147mHGP!Jn_8Lb(T*)!TXTUNRLwJ20m|%6)J#lik`Ry~i zXbwWHwd3e~1j2dJQUmvEZbzMJpZ!|c(ed^N`xWIQBy`o>S3B%}X-1|vp@zD78te+SX@n*+g%*?LWhjmY-IMa zw9uA84*OzQ>?Ooa33i21$1n~%>?IBxvlunPKGqqQQKJOZZ$2!}TMWqroXBDM!@}%G zOWwdTh6|??yYpKk7t9FkHe+EK={UQ-$%(^3>u}9`#F+5< zt>)ZM?XIw8EDm0=u$+26tkhmup@y~9p}sz%g`IWU8fI_`@!&EZA=b-S+nX{pw{uSQ zRfZM@s(w_9Kj*X$K5FELgD;M08(?ulIh zRX92y9XCgZR_|d_Us~@a-IkmvI0kKf(La}S^OK@$2Wz15n6dd7>T*49VwB~l%sg5|UgqQ%)QC zVgIcXY&orETz1;L&fvw{2pJ+w7Dq@Fdkmf4{t2sPFH?jY1e5BZ%lL!+}p z2eLzXzBgmrW`~w$hknWqRr!H;cC5>Y?9iUx@x;umDB`soEN z{)SVXcR|Yly}Y2g-E`V|T-0~M%{5&SsE^*$uaWlGuo}a{s>Wz^y`&$Y&(w59fTM{; zgmdmMm$dj>PWva9-(I_UubQ_yT*(7rbwdJUU7vu}HQV~|+FO<_9u^M&cWSyK&?(!g z_K(KYGcs5R>*MUW$Nyl}ziwPIrRUq0?IEnzTE07>Ha1beQL`_&@z&B%&)(4D?>be_ zn_9+Qr>)sdtXbZ;s~2u+VfUPB$6H!FXvHlpeTC!um3v%wR)l|0m3X8_9HJ z<{PG>d`2{dKyD@-$h4b-ZQ#~mMz!Uizi=+touD(rE;63X;HUV*e7Z@UOgjQh|DJmP zGaw@(CHDgJL*|I~llHrq8TOa)WL9{vE4>=nzLkGVKYl z+0v;}e;2c&Gh{s39rjW%=TH*Z4&DG}ejCB~#Fzn{8L3>=3Z!`5PGXAQJCv*NO zKT3g2$LrF5nGv4Sg0mR;7iK=sq~FhAx;)1p`oEwdIfgBHC55+{8N8M{ zIWKHGQnTyxgE<#Gn44s-dvDlG=L2R%%Y*4s5r3FfWg3#{_n}p;e+2X{^#gMZL%?*X zDHD*nk+qQa{~jCr&;KanVyIB0tkD0MWBzY5_`gWc9**gS49X)gLuT|gbIfK*oy=f@ zwBNrrG9nZ*C+BLZCrkZ5VK!imOh;zHYo$%j z#rc;a1u_$C0n_mtssDGF{#&I#nf5j?^V=@%9WtKG_?_U~oPTLD;$6%hIE;9@q)Wed zF_+^B8BgXiJp*PzXCez5tFX0O2kIOz;TI&)dul9!vdgW`VyzXNJE@ej)wH z)L%;bZKnPTI@7Bz=zm@u+|W!$5# z@uw6x9?bO9DU$X5mjP3F2UD6Y^>=YT#4nNYWEQYg+GO_Fm(u<#+jK#j{AVe>C%%$y zWVU0CwBN;S_cp|{xKuD*cS(OT`(qE7@q4BIHdEgRolyrl6Zkd${4e{*u*Pg@E-<^!4rUqo`A0J23&189l=|DuPVsE|zPgRwjrV9Tq@2r?amz?LoJ9(?}y-5h$OCc1>Z^!MFd zH}nKo!rymuf8WjheK+^_-CX3~cXPb0h%Y zn;?`+fv{B!NrB**0^uBmR8eL#gmem%H$&JVGAWGO458W<2)jhw76=u#K)6j|kMREn z!g&hwzk#q%T&FPg8wd@yLP!${TOkB*h47rhK~ZNLgu4`ywm~>7vM4Ov2BBRlgzrRR zDul+V5Nz8a91-E$A-tflmBLYB*#RMWJA}v`5RQu!3LSPpD6$j6NfEIVg6mEQhbd$V z_gxUSQy9Jr!Wof9q0cS|<#t0jCx+~X;JF*ZISN0BGJ7DTQ<%I5!Ud5@VbmT7)%HTT zB;xi$sIV8pZ387ZY2D&8{k#37D(odqv z0ni+9RUf+S9iy@?6#SzkPqD(sIg&0lxU1XA8ii$@-e~38JD{+DJTKH#J+N*CYB0j_N zvHGV)+yGk?QT-@lEh2%WihCrhsB;YDA{LQsB8!wuG&v5+EfPVZ@o{vV?F2f`F2YYh zctK$+g*?J?5<>C`2$3ft8FSqR=D?kt1~XCd6CP(t{h zgK(b0{BsaWiR%=mo`cZfdkAGj!uJq@zlZRgLRnGg2MBj5B>e!PoXDcE@COL(&O`V> zB%X)R_&fyL1qc;I_yq_rC~T!rSy(PYNWK6e@*;$fL<)rt7a#2)0`gnuzdQ5MEH&N};K++=h^R3qs^=2+c(bg$}nN z6!{54OA+xC1lOM+9HtO1-0wixPGR^R2yH|fg+6y6l)DR|ofvW#g6CZb=P0xnW$xim zI)%yiAaoR&6h_^HQ0+d1&LZwUgbMc|+@{b)_&S-{>O6vQmqOAb2$3R-!oo)o+C7HQTO>Y)(D*R~+Y<SWN7PER{5$?|*Y|lcv;m?q6 zs7RyG=NW`@KSLNUhWre{^JfU>D2x6c$<`v~z*5S|qwaXzT*PW`ppx2)99aL18O}wZf7MLb44)WG)En zMGA!uxgZqD4Pm2*$PK|YH-y6!QiQuJgzXfDyF%C^(jZvA5nguCRxt!5Jne`+XGe6Z zDB}iwyBJN{Au>rjMa4XzT_TROTU;RR5&n5Wd&M-;K5?D2UsTTrN)rjB1L7X(ps14{ zbVw{B9Tr)nZ$*;=pzlN?DP8;t$MCBsgQMuzHg+d2+2t^7( zI4L3uL2xYu;V^|v;a(WRb_&A_LpUSSAXv@{FAvZ;F@*HJI70eClqmw|bPqUBE&}HZ zA`^n;qNrFDbVv^HqOi~lLc8J+?uf+V5E>VUVDpA>PlS6zctK$+g$Kgo10mTPLZlCbN2w`3YJX4E zt3)-m2d*x0)zp#do-U~;>Zt=QseK%3u*I@cBnGR(5|~=Ox*D2Wtf;NJ*nXaZhuB1& z_tjGPH<~WuSZ&qSHsy2tc9fb~PpxOs#nN>lww{4saOqfC*FK@8zEKEB$@q9izr=AZN>cDZnii6iS@R1Vqg=sVNvs6_xFhE z>)UUr@heW;hSZEEY7MJxHXh_I$ZT&~Qjvp;UV7>;E!7HEFTI|M{uGpwQyYSPSrmcFwlF$5SyAy8UXD{Yh){^?Py_$a{|F-gUdvTjTAK?M0Ct~LvwPwtl zKaCHyMe@gkk%mjQP4gmuRlsMl^x-#ZSETj@G=7IbJeJyW>BpNuAAp|~Qsb|rgXzqN ztrDfk-*)+1H9ucUjX%VjKcIgF4gcv+ZhR>HlBC8bdjh4lTBhYMpGBmWEH(Z<%wPJM z&)2$!pLqH0hF*2h8tIrH;lA>F!?jZ5V+n)UY<$*9jXx?5lYZ-^#z)LXO3i$T&Y#$vuYHJ1E(3lXP4A)$Ex7rWBs#Rl)0}KuC+%-m4JwcarMt$sg;C< zXL0q0n$pGhRhSVw{JPY9GsMIPW%xw5M1`Yr5 z|0+oT5uQ``gw#Gl__~~Sr({}RXneAT(^)>k7o${xaYs&x(=xFiG(J+tr<3?hAIHNV z;6o;y&*!8TfUpXUQ}=tR1tPov`EjcKAhoIpFOeFb31oiNfCMW`$LE3+gAkqtN6yKM zQga|YTWXg?_(SwNpC4o%_%|ntD+BnL&k)u?_?fOK3V(TGbO`XX)UJs{X7Qtpss;J6 zjN(&;baw(z08W}4QVT`+0ZcJ}<2d2RP#9bB&D<9trUCSR^2em?zS`38db7gz?xT3kn0e zN$r^|swwQ-7&A^9KK{rR+zdFwGV$S)j7-}cxQ8%D$W3Z35T1uH$1abd<>$Z9Q#k4Q z$t(OHqgnZ+e>kLM+2Z_CYYnYDw0htIQfq^71*sJjamXUZLq@ejR4l-j7m?b>2!94N z28v3pJ;DP4eu_!01HzoXY@R1H{HJsTs-P$~#e68U6T)0`{P-AY^DCWUtbrrjP(qY> zf@YPJ`F4R6jwn{U6g2cEpXXO{gBwOw)+@B(gDl)1s zq#=l6gZO|cv*-s5V*nq2sr5&=5i~Y3Ktv#mm_Qjd0Mb_gD_>P=9EW-UKh>l*2;us= zf`>+=HW)USGF#%1+7N_Cq9|4)SZdJ-bIcf5-Ox%aLt(I4jI1FYgSi;+dHrXrbOJhy(OGJH_lL;z5x^6~6Cg`m&r&Okg3r`R z4aXyk&j3C@Qvs+5R08-QPdR`O2Dt%w06r|lhufln0l+|D5HQ$99C)Vo^5-GrQy>E9 z4)g??0ATID0>yyW z=pW9~Bj60+7{F&NcLBSBJ-}XIAHb(xdjtJ|C}04<6Ghhrb z78nPN2Y8&|Ib#Aa5tsx_2BwHQzhLrsq2AsA|Ix=A;7>q>%@YSt7`cGlfGgkz@SAUC%MX(x%IRFR*d;vb7&F8}00Y1~mAGGEI^8r3$ z$LIg}=-owN9k2mN0X756fJA_gD)QpZC+#jHziYrv;1+Nj_zA!@J4SzA{Us{#2fzn1 z?}6_FyoNjk9s^txPl1X+CE!D#3Q!aNP9PNE)1U{C=|SKSuo6fDRsnqYcQddJNCj2^ zTYX2E_fT+I;C&z%s1DQsLV%s{+Yfwz za4Db&P#Ew4S|DvppcN1fvBer!qb4JV!#XaQVBjA#|Qk10>uDNzzZl2c#G!0 zt7T*O%;tU|jok_G8Bab3dK2LFl}`yj03HH$VAlic18Hb=0QfNU)xb*h;C65@^yvu4 z13b%I12Ukc19K6t0SO56xihDVe^^is0bYyC3-_05=jwb!Gy^yW90tAx4!}PN`TYpD zqX={F4@H>&=pzHDh&(Haq?c-pJD()Y1Wp47;d(+;`$PRShDXOSFzW#gka{%iS4hhgf|}jpz}!kC6fOL@aTC7xC#9hP#NHfay@)h$;%KQgnTDMTY&HqU@5>u;cOsC z#erov9Eu|Ge&8Um0r*5ze5JN5!e>r-y160qwy+?*6Cuhmc+FI$(y^VjMJ#d+{# z0>-lHtzJRE=RQ$}U?D)ix8s+=emfrjzi2Va0_hYjc`0}a@CCq3SUK7&q|N^`wdDYZj|H3l%y<=$ z1gr$U0=@+3OTX1XD6k7i1-=GKbMr|?U_G!F;8Cp;unyp|*#K+;`bm2u_#0pgkOFK5 zwgTIL9l&;AC$JCL1B}B69+9@WiLtCh0N28S82s4_Fag&ucPFKbom~uE266siKcF1KyaE&jk3l>yS-wCz!XJUl1H2L7mdCSt zBlz*gjaQg5Kmfv}z@-6RMLaoW3nGvQ;4~`$&JXZ#;Re_N9yl1!3bIlxj0X>Qpb+pr z>_Y%6Z&sR>WW_l(Sy86pC5t;04?3Oz^Yr4sXk(2^0wn-%zz5*9kk>@Qyg*k*m=|pJ z5U+>S%?mhthrT@d27;>stZ)s0*Hd0s9b{CfKETnU?u@~oS^zJ$ykyXUi5dcJfd&9C zOSJ*+I-IJUy1Ycy1L^|QOfaquG^S^7@Sdz0!mXtr0^j%c%xw=2^De(ixyz{dc3C`PYk9ysPk zO*yf6W783lrZdNhVMJwX99vF2`f)OK0XT0y0n7r}{oKdd3-qIpEL6{j^Q#lb-xRs> zx;9daB`L;0x zb{jJ`yUOGkXanFB1(@5wOlaJixCPvTegilL92I*CSc}CBMQ|`M2w>U#Y(RJ&U_+8< z@DN}!!mKMuXQnf}jlT=&155|T18ae)z~{gk;A za1Mpc2G0U!05Kx2AnH0C!C?TSSqAe#9(vMM(9H7Vp_ye*L0Fdc4@Gbp#Q{un6lq6F zzlq>!0MpL|-l}Vio&oD;HdcGfkp;1FbAbfFYzy0vhyv(Kjd9Fa0P}$bz#?EdunhPD zSS-W8A>C4hmjJ(F=Ih^O(}@vuTmh^E-qyZ?od|ph(1&1{K8#xptO8j08sxJc%+ck@ zZbo<`kOFK1GJq`rcc12>P9AG9SMyRKsur@g3fqdvZ-C}-I1L^T=IqJ@P5{TH#4nlHAQ5 zr$KyvU6}fDVe4Lh;oHDk)Z6_3f4@`zn0GagFRHv}>FV!WwW@D`vQnh9v3iM74Xnkz z&Hs1#IgNh%W?Xv7Vf6Czty;}D;DA`)!0Lrx$-Zk~ZSL~`U)JCY)Yxh((#yr2%io%Q z{=R{}LCT8`!mpv#6HkXUX=n|^Z=~ZIBAJg6w91R4q$=W1inWASBWq>LGSQ%sHOt3* zlffvTzNfBF?fOi$bPe$J_r=$`FFK0WjjaKA(qu>%B+Dz7H?{_Pn=dAakM6gpOW3_{ z;UDPhNB=V7QDdu@xB2P=zdS^7n&Vce`|7 z48N+#$RFQ+h(S%Pz11fj#rY=IUPk#vOCrL28$;!DUqxs3-~0))_6=a!dJ-=&BMhBs zzDgl!+KRH3T72o08N&-dt%g~9dz{EXw=Nw8xL4)Y=+t!trRz!S&Lf&L|lZms3_dr>cF!Twa`nVXLD;+?@m4R zUqxc?hxZuMYI=q7C;$!f#aGZ}gm(*M@}W5198_K0X>P4-pU~6z+0BUbE`)F9ieQkh zzd634Le+c=Wh>GC4@66*t}T|fuof%frl1p7*A;y9m!fW9)R7KuaZ&$pnF- zR7=#&r6uZYguTtzGTcp$FYx{MxdyA2&G?3|Ac{2{@G!vuq_Hd(q3zMcr7f*RY@6^! zTM3cX-dd!T9)z>`)`u~kAus!W-nLgki{VtJr`5BxA7;5?zTaWbj9(ghJQ-MvlXUqpxD<6r7B`bD}COEx3hZW3i1u|^^-9liVKV}(uy+S z)>7*0C{Z^Y^VA}Shg%!iJn@xc5xthSZxA#pjHi^Igj>tthjRDUdd3Y}W1PzinSZda z-!`$nHA=23#$i?BVTv_Ab$PDqTgz96}{V{8ZE^aBzJMLElM%p2$5lNzu0o^-IsbPfxdw_wGA^S$gg?b zZ>K)>`bv-SV@z#PqMhCzG{g%%(4W**Om1hbTx!5@{g;(@jFBEA!auf#`WEbzg!Qb?q+%kzz172l=ViKELkj=3+X^Bgt(VoyZq`|jZQ7JECv%jTW(xeayFbMEgDq=<(;rn^1(GZ!kAUquv48p5|*j z8c+Ko-;IMcFX!}uY@sYFz}tLFM%N2ZeOs(3J`J7@j*vsHM8RhNr6NJ*YelNmn&I;P z@0a%J*<>?q9wU}@M%z9bBUTIo*BK*DceXZ@y_?%V z04sjYSW)8>Yk>OmSTXPuOePnRHU#Z2I8J=|iM5&f`8e?uEO%9J^Iamp4qPz7!);Yr zl!eWO-CZFOr4*Q_rm?`!eLCcYg!#AKR1^~_7fYd?r z;NgvOGK#(|;#MH*T#m;^#FRixjUCh5{!ygo=A4*g6UF$?kozNel!r%wwQtr9U;KXl z91mHypk0%U4WW+5+P=j%emn*qxOlP^<_l8F9bVPu1Mhw=Ica4VX1B#`r^zd)h^wRC zYQJnN2aqii%_6MD&BVs_(#xV>#)@HMk+WT#h(K@stNljqGwS)NA_}{ZdVi{z(%o9g z*h-qanLEZmZc;Ll*wD*bNbW75xE{C!7`vEsz%#Nx^uS@r*nU7Idj8c#4Hzkg^|W@) z-cQXp7Zop3&ONSdn`7A3xYKe!Eg@Us>21CNrqaA+NqKL+NK>MvGsLLg*3#N0!L1Q$zHUw_mFcLFo@M{8oY{`v5k zTk(u?IWgbP6w8o@xA}sZT*FTHj5_f%o+~obT193bY!UCx5)a|%qrajC^L_g4*Gp2% zy5G-n>@iD}?u*qlWtQbA4W~{-GR?m53>gw2lwf2M7Fds$ovdp;=-e)0!{J zX?t~F;^)7_70>Z7U!@b8JG@u))FVA}VoJ>xyOGw%eECj+8=3wezB>9U$D_k+@szon zFPXV|b>Gsp0eh;uSg@V>b1yPqL(_Lh&E%@N2Kh)H=pIiR9GNpAgz!2GMq2J9^db=Yq`@o9xWD#{mk8beU7WUv+{P! zykj{Y<_mVxbGH%=?+!SS6Ek&z$lo7n%~$dqP#!lbe^0HQ<6*wE=hDPp4gD8fOv{Nm zv_O1pUXM;W zF%^Zl%CzR&hVm7we{b1_5#Qx_nC~N6+puq!=+FNt_wFv>c~qOMye z_Kw4rc548(w5`h)3`FFd-<5J<@sXK`+J*ftA8;zQeG~vEfc5U z>0`do$16R-er58ewea9&6KA=X%S1_DF73-j@F3*rwOmBO_Ay^DbZ5ipg!VUv{HCX< z$`tYf8)Uv>XtP(TrfG%C=GIraeqUt1gy{OzOT$uHWVj-xD%L+PoKefgW8@z6`Ep~C z4Bg#s?FO|#mhPdaO_DJ+{F}Bd9(Qe>o~wR?c5u0#GTeUT)7jK*o;%xd8~6m>OUcGSPtys1OZT>cK8xJBl^@~>mgCX2B{(VJJ3#U|vT z-bof2w6l`M8`?&^r_UYy{N#pO1TXk#UYUc1j;NOLxC3Y2@Mty+DK4)Tv1A+N^1l6T$9#l+#(z@UH5sm%r>C-V(U4?-d$js&!@BPV>p;OnR! zG;D)-h@8~84I5r$eb9IupepVIm06t z^OIW8J4@8R-!R_=HEwsC*pRf(vs>a&&uhoy~V;4H~aCxUjm?@tnNg zd554MP~{<0mB+#V;;?D-9iJvKJIv^Ye>nVknMXoZ_La|nYcPuB4)n$If%UeFQ#fP? znJ?>7FHae}a9ZF%)q?w(YFx7B>$(P({CVHG^Y2&BiCMf|6pXP3h*o2*6I7oa;_`U( z%)ig@U+=*(t!O(AR|RRPowtklao8&4B_q2abBo`wQ{+X#KJVO~@y(x~^6gGhn;!pF z8^y5k)?V3p%RE)t!tA49 ze_VBaL*MyE{cu6VJLyF1EPSttx~9O1_xk-hSLw9pj0?U6kl*zwdk%=p%=X9u5j73X zJqJ%-%qF#T9awYXqE7V0|B&5{17Za{f}X-7KRiY{pG5ADn&X?3*BiueB)-^PIn_Bj zrG`5?{t!PyJQ=OG`afqpH2srw2s+8Q6%PeJe)I zurB_mbVkp3if%Kl_x~vqqf;uWH8RAyS-9OZy0e*jCqwwmMh%~3h@jcHpqOvw%UAS8 zr>8T1#4!i+O&@pj9ekl(pN)7~Z@GDd#NhcI6U&%K^<%=BfWB;a%;>2Gqw6l-mDV7i zF)?s5Ha*3PIoO>p9TTPJAla>BqQ)Gw>(X&CkhaXua5D2W-~9J9b?Tf&uD5yE;80?K zTAUD1|3$I@AM-_lU*=!9WBANnwPkZKugub90j&IfRQ{i8k$0}Oc+ka@auxpaef5~N zgFC3a$K%CGF<&rvXYK7a12-?i7n=BOK%Y10(NE^0Swl0$oVhpz>Wjil9GGkEqXwK# z{ZO;27Ino8;WrPHYwZkUqK@A_d}w;`xd5z3G>;p>yKW+J{~h3`;3jfB)4uB_((riK zO{5Wno5*8G`_7w4!=uH51@n>lyY3+khj-mW8Zo$sY{9hex`#A8-gOUY#NZxs3DUmv z9@6l@J>)6o{;qpS!{c4|kVXvdAxkbm+IQVU8XoVuhcsev4;h8DxQ7%|7GPYjUJyIU z+xLsd)N5W8dj)6zMPv3K@Gew+<=36sW6JRdBkV?PFN&JN+APR?*W&H-75iVSxuCF| zl$cKD+ZPMgo4W4U!7uf%$Fce_%Vq9r^ULDA$SGC4ztCDW$oxlFeSRMs>k_(^cU@ex zxb~TEQ}n$1#<%J0;rxZqffy9E<+7Ny(CS&ueE(wQ=J#%l-*onfizNWJ9NhTKH#APj z|8w${8>e^X#3F-}n-o7ehd``^FE21mYns1i8R-;8w+pKznay-m;Pj=jVf7+)7c1_NSd2mIn zLt38#H;wiB)zO8cm-jo}7Z;jfUwmQbhnFpjAK}4;_hvD8`b{yGJnyFP1qZD{%ED;V z_R7O1)2>K*u#h<(d;tG&por?0(O z?Eb=9d%+UxsTyay8>L)oH)dt~wWYnT!RFO4u2{SLe|l8C`T#bsTZgNE+9q^FjUNW{ n$z6P&#HP9}wXWzOR^)f_NIm`B+N6Y-^MQ*?s?Ect=8*pbolt5v diff --git a/packages/webui/package.json b/packages/webui/package.json index c6e7739..f2bdcce 100644 --- a/packages/webui/package.json +++ b/packages/webui/package.json @@ -14,6 +14,7 @@ "@emotion/styled": "^11.11.5", "@mui/icons-material": "^5.16.1", "@mui/material": "^5.16.1", + "@radix-ui/react-slot": "^1.1.0", "@tanstack/react-query": "4", "@tanstack/react-router": "^1.44.2", "@thilawyn/thilalib": "^0.1.5", diff --git a/packages/webui/src/components/ui/button.tsx b/packages/webui/src/components/ui/button.tsx new file mode 100644 index 0000000..0ba4277 --- /dev/null +++ b/packages/webui/src/components/ui/button.tsx @@ -0,0 +1,56 @@ +import * as React from "react" +import { Slot } from "@radix-ui/react-slot" +import { cva, type VariantProps } from "class-variance-authority" + +import { cn } from "@/lib/utils" + +const buttonVariants = cva( + "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50", + { + variants: { + variant: { + default: "bg-primary text-primary-foreground hover:bg-primary/90", + destructive: + "bg-destructive text-destructive-foreground hover:bg-destructive/90", + outline: + "border border-input bg-background hover:bg-accent hover:text-accent-foreground", + secondary: + "bg-secondary text-secondary-foreground hover:bg-secondary/80", + ghost: "hover:bg-accent hover:text-accent-foreground", + link: "text-primary underline-offset-4 hover:underline", + }, + size: { + default: "h-10 px-4 py-2", + sm: "h-9 rounded-md px-3", + lg: "h-11 rounded-md px-8", + icon: "h-10 w-10", + }, + }, + defaultVariants: { + variant: "default", + size: "default", + }, + } +) + +export interface ButtonProps + extends React.ButtonHTMLAttributes, + VariantProps { + asChild?: boolean +} + +const Button = React.forwardRef( + ({ className, variant, size, asChild = false, ...props }, ref) => { + const Comp = asChild ? Slot : "button" + return ( + + ) + } +) +Button.displayName = "Button" + +export { Button, buttonVariants }