From c7aa92456c73a93ec468fe1261144123d968f39e Mon Sep 17 00:00:00 2001 From: ngc2207 Date: Wed, 29 Jan 2025 13:28:22 +0800 Subject: [PATCH] feat: add shadcn/originui button component --- bun.lockb | Bin 169597 -> 169621 bytes package.json | 1 + src/components/ui/button.tsx | 57 +++++++++++++++++++++++++++++++++++ 3 files changed, 58 insertions(+) create mode 100644 src/components/ui/button.tsx diff --git a/bun.lockb b/bun.lockb index 4834d554205e33492da4bd379980f700513ac3cc..546f9e61410e06b297cfa8c1691134deb6a7cbc1 100755 GIT binary patch delta 14935 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 ON<{1WR&>=*_Wd8Y^2zrA delta 14803 zcmeHOcYGDa+TJYl@rvGizu)&K^UJf(yzjj8PM_VKvst;* z|3;zzvObRME0_0+2|1!^S{+Tx?E$U=&YYPtBRMlwJGFd6P|g7#OPMt>H6v~O9BrMF zw}Gp{_@G16YJn$AnK~BvwY5&mK0PfXZCY|>=2gf#(iedP!P!b~SXt9*K%Nb*4$e~g zU_VW(3AqXw{&RAxA~zjegu)+u1OmAba#ipU2tnZ9VAehh>EzzHu!03(+W$L0cK$Em z)U1%{Cr8U2hnlfQ4WOmt+KOjSOiP)F7N=#VK9CA7gq|&W92XWmEjepq`^l+uiqJ!B zz#1?s`VO3hfJ?wGaA$NM^;;m<1YeSIV?CI)nmrbprFH~V9UWYP6&iB$S6DaO{BAjPAIz)F!NtRbLnvGjO3Km zOideI&(d!L)89=n(*)vj;Q?d|`YHG>PAkIc-q&`5k*0Z^$p+9oNz-U))u#yFs!~AJ8OMe>7 zX>btC&f5g$0?C}1JYyO4>6B2wL z%nF?ZvqhPy>9bO2Xj%zm_C(6mDN`Y8`QcWtUjefRJ7UC`z6LGjw0KF$_WXPjdamfP zGc(6d&B4sN8DS}As)RJfW57BLm!lA7NSTuP0HPWvBYR>Lm@BK7+mb&9H-X#%%m(S; zmf)~htH-WKTl%-a9Fip+H7%N5Hcch8grYX&jkWZ()N3YU)C0$T9m(cb?t)6;+zp%&m$6zIk=8C zigCSYl;Ij_#JW5p!sZoq;4WkU#9!6|^k9gdegX>wN7}pL)8LnH6*ajX^&6tC0 z52F~@M~yOEFB!27J$n1fn4GAj!w?PKVxdtC-RsbGg3iY%ZQvHIjo3yWJ;Tq^`5C1R z-Fh@SniiFf(#CE*2T}s0O7x+>q9mv3Q8(r^_K2xQabu7E3dXlH?BD~rs$kS9`5KA! z-TE*{-5^=@*lrXz@rbKNSrd=m8iPsim5sb%F@8!wQBB?YbC8mdmeCsXO_i7wcCLoh%{bgRPQQTIJ*M-#`fg`EYzv)??D}zHh*8$UP@|wBD03)`QM?Zm?G|AMlkPetP3C7{%dyF!qy#Of&X;$TKKw?iJ zH+*%$j2s53lGz120*r$VJ2`Ja8DrKl3QMxPnVg8CvW?=qJo<6yl!In&-9OOkUbw?B z41vU=d<@ajtuKQ#0Fp0z#rYAWNF&=7CjyPwwjO;TCOZel*Btf@kZuj2{wbs$NULFv zQy;89S_*UEpM(?%$zcx4F-QYVFQ}n25G$=SYwjF^Sa-%mfib7ONBh6Wawwe=9_rqGhHAO{#qb$^;FM_V4S(XTO>#ss$Zim@&f9wIBAyr~q z#eGIu2anip#D;nFk5q~|%S3adILsp+G|F%-GGfC$;+ioh+@mKnwC18P&<@>zq=pzX z=sct@W=V;dU5&9_Vv|E}B(`2_bwk0vs zD30=oeMT9sZH?GykMj)fTZ4`G=s0Jq7MeEPjLk>P(!Gz^AX69G(oTI0v7x5!BgFce zv2ffQ{>B)WYmCRa=`Ky{XJp63Ilo72fRWwt9^W?TNUHSph;e{~IRP#k#jze|P+LtK zVrH0%*aRa!JkI$JVk1o5-R(4OvZ;FpG0X9F#73LC``TmTnRW$;rIV|@X^)nf zjMkXpc3cT5SZA68z%F5i3Y>FG!3v-kO@|4l)*KZxBgVrFWIDtMYOF{vfcfqN7|7K3 zrGQY8Y1a=R_XimIYs0M!=rA*3kg3L+0@D!&$qct+wg{bR1~TnO0xVz@pcyxEgUt4g zri4JI)mVVJ#{mqtW7%T7in24y&}`` zETt#Y?m>VRmsWESu!!2FAq z{5Y6_O#Kr8?Vbb}{)+vOzRI++nE50?Ud<c!uJm?65I?tSQ(52Gmu%pXfRb{l>V=nCds%k zUy8E-BeS%BF<^#Nm4Pgb^9zHpF=Mq-0;l0ZtI0~9LM6g&*{HTCD4e}CO<9o{ovvgu zy=5wW7WGE@qM#gVXDjUk)FP0%a350oY^DFdF#YGK{1ut{JdO?1<|_j-*ZSj1CNsK3 z$z*1HQpsdSmnyj;vpZHOeMM&ee5KD9SVxSn#D({@=fE`B4vqky2XhvE491^!g%_KR z^n9!TK84mF+HX`UnO?pFQ}w;llUc2wz)UYwdNTX_2AHM!AdyMFVA@w!vL7=ckZE7l zf&Swnsih196bC5-7Z`t91I3LL^AL&!G-aY!U>5u+nD$G+^s`jySArSHtiURj{*>aiigVT@LWi3aZv)fe zPB8wo-HLgz$O85$_JV0wqU66TE>(OS%m$nS<4=1X7Y@lkC@6-%9PK<5bbLuAkXhr) zN+z?QPZWO+ru`R6{#x<(VCMS)%%1rtxF)y?j49UwGrcyL4GsePa&L7hgC<~R;6{W$ zEfN=Ih@$XcascdmARjBA(`7)Hkgj*sq|bhZ$V4I3}jYph2qspPiDTS!0c)s z<5OO*xB$!mw)W2rNL_Z^}p08elqc@yP^SIV#Hm1g=TmRMR2fK zmq%wI2~|4#K#DJ0VRAWL@coNnnKI{# zVTh^GwB<_2!=ueg$FnMW;~VN~d6_QKStA4iLvPs)cwAK$A5}hsnX8L(T9sbS#Q*l3isUU39ZjG=A5EKYmrB-K%u#l{p*R z2cWAB$}R};9`Y<)h@SG3eDR25zK|I!MbnT1REqDk9Dpbw8sON+%55u!t7{^noq;5v zE6@$-4)g$e0=xK9u2C zHT+OUYYa4#X{&_mu8$D?7`Os_0{jo~DexKaIdB!Y25gZ#SBXYWj@&wVc9p1;vk6iD z2rvglKM2ePvVe3T1K>R3yy3y-7=Q`<%2ij)`+wL+5(|K2Y_>QHNc6+ner^K8Q21>L~EV| zmIBLxd|*ECFt8AK2$%)T2C{(Z0N;ft0ja=vpbgL#XeX0bi#mbL;Fdoh+<;1eeE_c} z7p)dO`|N{mKX4Ja0PyvQ$J|`F$-r2kFLblPeAnksbUccm1n{7qXF`(zo)!JzkPV*_ zf#E|DA5I-?KfZY;9cN7;C+C* zs@ECZ1xNzAQq9eZn-hP$>HtF=m21_2>cAlAdIJN22*^=DG!O^yfSRY?od6Gz0BnRE zcV)gX@o0|ciXDNCke4BC0dN3#8anQ?5Bi`QJXGX?BsbYk3Ovo??$`_9fmIKnr;?dQ z{Uz?a2;;WP-||IE3Awq~Z><>T)8cukcL2M9oj?(=4R{XN0&pMND5n=-qunIK3xrE- zm8I)N9htjc_=fC8YQ@}zkePd{OfL{YV!M@bhnYj=uV&lR&N6UPwaJS@Zt9M2{p5`8 zqK$X;cHt-F!5tz@ESJ}IhzRkFY*Z*BT&$Un9cylI+%IX53>@zeqrziD!$QNfBAH$& zLc|gINTFz}H%FUsr^#I)OA1AAkuUX~aI#Lu?}W`(Ie4e&?b-ty`g)*#+L_Cbj`|k9 zB0|GMG3!g@5!gkYfI)Q_JXC4q)A36-XP5>o%bc85kg|Bjq{Ab7etxn%<$}DpUxdh( zyF@+lnM~XzLL5H|IbxRxc4-)S)~RpVi~A4xj$MOHk*NCJ(8{GS6iwvv{UT5v*(KaA z`*Y!^>w2%&TX<+PjKe}BXj~*~?M7P;%C5W72%hE#!0FZgDRcWh-g=&C7aoeGyiV@i zEkaz|FlBIi&mHjCJG&YV>FKXZ4aW?Vmv^J9e0o!PBb)s}_R)GRDwT{L za|zklIVe9{-tcvV$cLU6^<4I6-P^0a^V`iXZ%4u^+#C&Utt^5YaaEpr9%X#zw7!&V zC~s0bTRw3bWvGw5bJuNOaV@a!xrN9bV|7Td>|KNbus`y?F-1H-t!dIfU=U?h;tfCR z^W2|*nLF{=ko?UK@d7kKXy--QWG{UG29aYoZs?20*3~F*I>hJD)P<(1e1pF4!qBr{ z!u`Lw)}~v4uS3*@hFxiYLf)stv1dbGeK7!~a-1;ig|fjORR5w}zefc6LUBa)r=qu< z4074uq8CmL-#6vUly%4$VP!OP&@S#M>pJrE&mvfk*pDe>f42T? z#5;Y~Z!UA2g_*0uTn@d3wW3`1=j(0X-Z{OP3s z^^X^p+l`f@X^;g+HBpDZZ{B;N`_6sc12|(Nxm_)g#vu{W{*S$}9$7H{w?61!_UU^U zLY5uRuPN5c?+&4rC9>{e5fN>F=Dw|D%+-za$ItRbH$_B*M&YOYR@R1c?B{kr?|%9E zv*jt@wvzJ>W5>5Yo$u@GYLH&#STgF3!NfY(LS@lmw6CW;1#;Qn;vXn|c29KePd1m^ zEs{5BV1LX%X5fI}F9w$MDK|JSCm(^ME3)_BVP}8LKlh8VUsrv2TZJlBmw7M{&E?ay zv;Rrpt0CuCR`0n#sJ!X}D2y<0~&8U2BO0v&7s(wL@4$!N|U%#i|2u_edOUrJ$nPThX!*d0qDZE*$k0Cojz$ z|DI)m3TwK&cno#4|LLK_;;yINgPvGW?!1><2D~UnHBZ5#e<%w1;}Wq`K6cAhFN!2b zid)t^F7CEjx6{L9uj8Vtt@gLos<|%v-y}X=>>43Px2#)U$KQ8^>(4u)rR>WdQ?16f zfC58=)kHb$Wzp?FXvLC_vhhhVs+nEAKX0#9EqSz5wEIJ&{#{@EzDahC9sh0N4y&BI z<(U(rUH!kRviH!-V!K1s_D(n@8VKB(7QQB)7TMk=uZ#Y|W&fYu&?8?u*Iu~Z+FT6b zp&0VnUOaGC z(82r41yL;!H~u(*`(?!&e~4`U1D=Yvc|AXfCwyS<#Z$odK3KPWR*@h6D*D*97=KgL z^NzY94hlF5xryz>s-71KZ$amUb2Qd^p7+jhIPP~SLEeq5Xg;1%Tll!_{}>DRY-;h) z!?o%;Llevaq, + 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 };