From 28fdc85c0994dfdffa1c04240ca3396b9c8d9885 Mon Sep 17 00:00:00 2001 From: Dorian Baffier Date: Sat, 18 Jan 2025 11:15:27 +0900 Subject: [PATCH] add toolbar-01 --- .../default/blocks/toolbar-01/page.tsx | 11 ++ apps/www/__registry__/index.tsx | 38 ++++++ .../new-york/blocks/toolbar-01/page.tsx | 11 ++ .../public/r/styles/default/toolbar-01.json | 30 +++++ .../r/styles/new-york/toolbar-01-dark.png | Bin 0 -> 31350 bytes .../r/styles/new-york/toolbar-01-light.png | Bin 0 -> 33109 bytes .../public/r/styles/new-york/toolbar-01.json | 30 +++++ .../blocks/toolbar-01/components/toolbar.tsx | 113 ++++++++++++++++++ .../default/blocks/toolbar-01/page.tsx | 11 ++ .../blocks/toolbar-01/components/toolbar.tsx | 113 ++++++++++++++++++ .../new-york/blocks/toolbar-01/page.tsx | 11 ++ apps/www/registry/registry-blocks.ts | 18 +++ apps/www/registry/registry-categories.ts | 5 + 13 files changed, 391 insertions(+) create mode 100644 apps/www/__registry__/default/blocks/toolbar-01/page.tsx create mode 100644 apps/www/__registry__/new-york/blocks/toolbar-01/page.tsx create mode 100644 apps/www/public/r/styles/default/toolbar-01.json create mode 100644 apps/www/public/r/styles/new-york/toolbar-01-dark.png create mode 100644 apps/www/public/r/styles/new-york/toolbar-01-light.png create mode 100644 apps/www/public/r/styles/new-york/toolbar-01.json create mode 100644 apps/www/registry/default/blocks/toolbar-01/components/toolbar.tsx create mode 100644 apps/www/registry/default/blocks/toolbar-01/page.tsx create mode 100644 apps/www/registry/new-york/blocks/toolbar-01/components/toolbar.tsx create mode 100644 apps/www/registry/new-york/blocks/toolbar-01/page.tsx diff --git a/apps/www/__registry__/default/blocks/toolbar-01/page.tsx b/apps/www/__registry__/default/blocks/toolbar-01/page.tsx new file mode 100644 index 00000000000..4d05ba11c70 --- /dev/null +++ b/apps/www/__registry__/default/blocks/toolbar-01/page.tsx @@ -0,0 +1,11 @@ +import { Toolbar } from "@/registry/default/blocks/toolbar-01/components/toolbar" + +export default function Page() { + return ( +
+
+ +
+
+ ) +} diff --git a/apps/www/__registry__/index.tsx b/apps/www/__registry__/index.tsx index 5b61ac36371..e114e188e7a 100644 --- a/apps/www/__registry__/index.tsx +++ b/apps/www/__registry__/index.tsx @@ -1234,6 +1234,25 @@ export const Index: Record = { source: "__registry__/new-york/blocks/login-05/page.tsx", meta: undefined, }, + "toolbar-01": { + name: "toolbar-01", + description: "A toolbar with action buttons.", + type: "registry:block", + registryDependencies: ["button","input","avatar","separator"], + files: [{ + path: "registry/new-york/blocks/toolbar-01/page.tsx", + type: "registry:page", + target: "app/toolbar/page.tsx" + },{ + path: "registry/new-york/blocks/toolbar-01/components/toolbar.tsx", + type: "registry:component", + target: "" + }], + categories: ["toolbar"], + component: React.lazy(() => import("@/registry/new-york/blocks/toolbar-01/page.tsx")), + source: "__registry__/new-york/blocks/toolbar-01/page.tsx", + meta: undefined, + }, "chart-area-axes": { name: "chart-area-axes", description: "", @@ -6489,6 +6508,25 @@ export const Index: Record = { source: "__registry__/default/blocks/login-05/page.tsx", meta: undefined, }, + "toolbar-01": { + name: "toolbar-01", + description: "A toolbar with action buttons.", + type: "registry:block", + registryDependencies: ["button","input","avatar","separator"], + files: [{ + path: "registry/default/blocks/toolbar-01/page.tsx", + type: "registry:page", + target: "app/toolbar/page.tsx" + },{ + path: "registry/default/blocks/toolbar-01/components/toolbar.tsx", + type: "registry:component", + target: "" + }], + categories: ["toolbar"], + component: React.lazy(() => import("@/registry/default/blocks/toolbar-01/page.tsx")), + source: "__registry__/default/blocks/toolbar-01/page.tsx", + meta: undefined, + }, "chart-area-axes": { name: "chart-area-axes", description: "", diff --git a/apps/www/__registry__/new-york/blocks/toolbar-01/page.tsx b/apps/www/__registry__/new-york/blocks/toolbar-01/page.tsx new file mode 100644 index 00000000000..f28fd21f088 --- /dev/null +++ b/apps/www/__registry__/new-york/blocks/toolbar-01/page.tsx @@ -0,0 +1,11 @@ +import { Toolbar } from "@/registry/new-york/blocks/toolbar-01/components/toolbar" + +export default function Page() { + return ( +
+
+ +
+
+ ) +} diff --git a/apps/www/public/r/styles/default/toolbar-01.json b/apps/www/public/r/styles/default/toolbar-01.json new file mode 100644 index 00000000000..1413a16139a --- /dev/null +++ b/apps/www/public/r/styles/default/toolbar-01.json @@ -0,0 +1,30 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "toolbar-01", + "type": "registry:block", + "author": "shadcn (https://ui.shadcn.com)", + "description": "A toolbar with action buttons.", + "registryDependencies": [ + "button", + "input", + "avatar", + "separator" + ], + "files": [ + { + "path": "blocks/toolbar-01/page.tsx", + "content": "import { Toolbar } from \"@/registry/default/blocks/toolbar-01/components/toolbar\"\n\nexport default function Page() {\n return (\n
\n
\n \n
\n
\n )\n}\n", + "type": "registry:page", + "target": "app/toolbar/page.tsx" + }, + { + "path": "blocks/toolbar-01/components/toolbar.tsx", + "content": "\"use client\"\n\nimport { useState } from \"react\"\nimport {\n MousePointerClick,\n Plus,\n Search,\n Sparkles,\n SunMoon,\n} from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Avatar, AvatarFallback } from \"@/registry/default/ui/avatar\"\nimport { Button } from \"@/registry/default/ui/button\"\nimport { Input } from \"@/registry/default/ui/input\"\nimport { Separator } from \"@/registry/default/ui/separator\"\n\nexport function Toolbar() {\n const [search, setSearch] = useState(\"\")\n const [isActive, setIsActive] = useState(true)\n const [activeButton, setActiveButton] = useState(null)\n\n const handleButtonClick = (buttonName: string) => {\n setActiveButton(buttonName)\n setTimeout(() => setActiveButton(null), 1000)\n }\n\n const submitSearch = (e: React.FormEvent) => {\n e.preventDefault()\n setActiveButton(\"Search\")\n setSearch(\"\")\n }\n\n return (\n
\n
\n {activeButton && (\n
\n
{activeButton}
\n
\n
\n
\n
\n )}\n
\n
\n handleButtonClick(\"Theme toggle\")}\n >\n \n \n \n handleButtonClick(\"Plus\")}\n >\n \n \n handleButtonClick(\"Sparkles\")}\n >\n \n \n
\n
\n \n
\n
\n setSearch(e.target.value)}\n />\n \n
\n
\n
\n handleButtonClick(\"MousePointerClick\")}\n >\n
\n Click!\n \n
\n \n \n handleButtonClick(\"User\")}\n >\n \n D\n \n \n
\n
\n )\n}\n", + "type": "registry:component", + "target": "" + } + ], + "categories": [ + "toolbar" + ] +} \ No newline at end of file diff --git a/apps/www/public/r/styles/new-york/toolbar-01-dark.png b/apps/www/public/r/styles/new-york/toolbar-01-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..b19c219666b4bd99d08a94c227f8606ab4df448f GIT binary patch literal 31350 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 M>bG-mnf>v<0HmhRrT_o{ literal 0 HcmV?d00001 diff --git a/apps/www/public/r/styles/new-york/toolbar-01-light.png b/apps/www/public/r/styles/new-york/toolbar-01-light.png new file mode 100644 index 0000000000000000000000000000000000000000..a7d387a9fe4d6105d33164dc856bab0aa1a4e3d2 GIT binary patch literal 33109 zcmeHv=U-Dx)NW8zR0I?ilr9K}(xlg@CAja=!y{EhdJ~Z@y_Zl0qzgzV z2^~U7=sn4u;5qjXxS!tNec2z**={GZ*F38|Yt3vws;eqoICuRV1OmCB`1s*d2;}@d z2;>X}#R>3)HDKrg_#c_`Q-ueRylzGecmz>=cwfsSVR=-L48lrTFHm1MuOd%<>C~0q zQbK3IVAAE^opbW<9R%WMG4bE+Ki9fc-cnAiV}Wqo-(^caC-1db6nM&KBM zV+4*7I7Z+Yfnx-Y5jaNR7=dF1juALU;242p1pYrnAPR917QUHxUYyXm+=*SruDEIB zTmckRl8S~=XSK~i~J{l8#8g|b1u)&yn8aLKc&#I@e z5~^%}(tkevCaq*MY}@OEZRHqZ47s<~xgkwh`_gvTy}aC8%sV-DWN0ZL5jzrVpTE;7 zz2SrI*&&1Y8=v^UEy?3s2$0glP?ks16iw1Q*JA8Y>q+3ZUf$RLpV$2@^IyeJ?Lfn}aZrA-zs%kk2naikd~*iK$d4s%9Xun^ezx zy1SRh#5DPSnandn{1I~XWRQB4)BfgYmZtS=Pe{w3&d$wE7j`do2;^R$O_``@T<-Jg z!|Czy+RDn2b&G2x@m~9%1V6o@(jOVAIeSX;<;&{_+g*c8TMPGrtY|Kk{?gK|kdWt| z8j&4*@k=Y^9pL;Fy*)|f7MRB6u9r(QZ37&Ni(8|IhX$#FS7f*$kckAn-0dvQjQ)~% zjyC5cXI*rWrxNK0pGog>e2&HD<=Q4lx>nUhZ8tXhY<>lK+*VgtqO`U)oTKgVaJ<%6 z$aklm^dh077d?j|1fkHO>UW|*OP5rWjc_YH)<<#-9BD9*dnx2)@iXQXL!B6Hd!UnF zvGMV|+PzY)i!Q|@i`7GC10j%LS~9TS>2&VEbpgA$bS|~LsQJaN?(O6p@HqJ0$Vlwo zUL}X3YLbCUe+dqSB0#}oNz!jj%{NlU1_t_PdyT9~vpzm%w|mp|0L6$KO94qZwo&F8YWb0LY9ASZ zu?Re##o{sj*1A!NOM;|X<)cZnhP%(Pjh2>%a3})BgtTb=CSgTpEu0Sih+rZ(_d0-| zej_JMTqZ=_J?B|_gki03@%^{p^qkwH%7{AfWPa}|bw6on;L*^6V&*91@T*9!`GKXa ze@Ke1PBY4n?pThj#_RtkjdMC0m+j2-$yQWf@pEUVGHm@KX zN@&+rU_duWuIO|5QFyxLXO4)76IAq1A8EK$>z0poZAg3Ffhgv4bre|;b#k9um+Ixd zRH6?UotZJq8Bp!F8}YY8G+cdT5_B43%yA^Xpnh_Ca=Pwkj;$&tLwZT`7m?}nuti2z z^`v>=X8pjj^$06y6@d0M;}CecnGIrFe$RjX8zn96z!MSf z3F&od`*JD1m=nR7s$45>#UKJ$4WLd@hC6+zvp-|H6d(t}Q2pvg7cHV%G06_ zZ7$Wwm&Iu)h`e6XeAmky_q5Z-^k1Y7Ev};U#nAJ-jbsqkD3TrZ7Hl;NPLg8Ayc)?iORg!7w>1(!rPJAf8FuIXy|~I+vU4%iST6iZ3M5C`(t=zQjF! z?*Pm}(sGmAtz%B?T7;Yc&;He=>k}-K0R4JYMcM~uPlz)c*k$t3toz626AZ}t^cIVnRmAXZ>UuFrqb6S z#T{8HHuvv_zLvI#b6a^`|7o~JaN9PfOcS{9KP2cUOS|6YhPE{dEVvafuu&#?oowl> zX9z9yS$f;sHrznu zg<4r!?YY(5fkEi1YNQ5lbpzq~&_%@qyjP)vK87?TOIh?OgO z_u1vK`kqn*^^7lg!RcRO%0RC8S0@AROQ30G0`D(&;X;23UnyWeX(PTaEk@Q!50>Ar z*fa3L&ps{oj!H7Z+{&s*FPExE!OUK$MCJrUVDSj*tVF)zlo|hfx}pJe7X{9ePur@G zc|@6)#LufzUJ!2I|N zZ`$JaMIyd+lCwX{4gd-;fWA@H$1_6$B zA4)O#ehC58X%TCwD0}~4gj=<9-uZL`e~<@q2GY|x&uqPuDrzpf(+%LA5s#*T_?wjU z-<4}4D{R4#Z?5BiR-X$-Sd~hCTJcRlK}OC8etT6qdh&;u64K7y*Oz^}zu!U(g#LRZ zo8=zy(HUgZqh~fPlZm2x?$FH_j6glp;#*fdEzCIV>X~G3Bh0^EbW4AD_*DRhif??% zRgjN+Z%%-B`-pF!qx|H5vL)U&0m0d`@v^vdEFUD}6VYiB8%zEK1~Bj_pv_2JKEHgz z{!RhiaNo%7z;6}gTk=^WHY3n85dZV+q^Zn;8(vS$&d#Q#vG=Azx=m^5o7K%+u&%lcLHgil;Xtc z>`=trsInwyNsral&dyqyct`2}JJ@}t{oBcwwX3*6qxF<627(E`nZ6}{! z=T_NRSR)fq4rMk(6(`5|u1n+Gs-p?6z=(e_SLdGvx)mnrHnodQuSHQ}z-4nmmoveO z4m}dDJ?S|_bjho>z^}lppbpa3c5(0YZ0TS=H3td`V?)Sdf?61Prz)9%4Hct~^pIgk zN5=;$CX{vZ_pX<>7t{DhZZKLP0+rB+F;5VJD71q}ejFSLP;}bHhf3Mi`NO0gj2#`< z5{jw3b@z6P`|AcS7S+@MpuR`jF-p34I669Rz;Qe51;> zN?L7Rt(Vr3nu${kTpMRXEj+`2lm(%Q<%8=HrBGs47RxIwH+yNM-Od==FMGtMyQ|C4 zZ;u)zwq=wxnTN1~1ATk1 zHVJnW4Quxl-B~Oy;trIlMQ4u;ob#GW$f0j>m zM7jtHu(3f57VM>SB=M zGBWtMp_+XroJVVrk;^mmG?cKWHtso}%&F+K(Pdw;(Jkdw4&D4MCx+a#R{U(>w>L}N z&xh3%G)NP6r}I6#QaBXzYWEj=eC9OA_9Ay`cYNU+VmOu0Gwy!#D)zohEC$0%NdvD> z1|ih?`sTb$!+ZjwKx`6a@tpekQM-0M(pOAXt;fK1;F&fI0VfjhV&e`?1pEQNF{HRy zND2>N9xgr#c+o++Qy%npLryy{w zzVY~GTn@|GD)H#2(>F(~&v*+Q~dUB;2 zhNPc(+*jg_LnISMhiXyo-Z=yN>(MMez&OOvKK+f2<|locpIF-3+PZH2X^|K5Vy*A? zS&!I3Id#OxbrC|!M{N8SHIoU;7SNqJF(OI|y%*Z$o|~V~B;|HT@pA;1nq4hoz{+`0dA zxkRVk`JAvepMhQ-nWIboCA+1w(=wl4xAmD&D#CI5@7guuj;}isnkGZ!Xg*Mj24y zRrcU}*XKh*=04JLwI>(fIjBD)>wxy%LEwCGh_x1ma^ky0RY?&MPcrtA^t+?O33fJ# zjtNUfYaqTgk+KQoDrb8w0H{A8zArgDCM{%GsQ zF#IzuW*?q|Uqk)C%88R7HwGDG;CSbdWc+Z8yJ+AT%PV4Ekkxt3lQ99FbFsLnt(MZE z+THYcqoMc_U7d>Ms--+n!bW}#uC^yXHrG1hzfPBVm!do9_TBOF&s zhy12!S-cz08~v_!H#eUx8?&pMPom~hT<>=0GjvBjF*+C>vcta{g2C}0X?r*n?>ZF^ z#YYb=@cOyE{8m^|F{~|*y}05wf5Ok&&yUb>hGiM=2 zrmNN7@6bc7rC4PLO{^4BqeA)Mzn~0F>o{8#YEiuK-RWqYar^w4>yhOMo4bmiYaYuU zs!M(f_gT_M--7RAk_l}>8Gc5D_2i1lfM`y|_0^`ZGQAaN8O5ae+qZKptB`ED`Sw5Z zlCJ-`F4y(a+T8q1G}o*0v85$CziX$A%Mr7@_Lk*ipb+Zn^4&}&R#c)Me>O8QnZ)DZ zXnw*J|CfkCoZk*CVdw1aNTt-?SAg_r>YsAvQcd8__qZ#4m5xqKJ8U*|aPCY(Wq+x= z!SFhRg`SR%$4G~r$H5qyu-Aiz&qitk$u|4d>Xr;~sNRT&yzyf1I=0AGiOWdO7z5YD z1)`?4y&`LnSp&pG@i7fem-rpGVhZli8+QZS?^XndPIvAGqpl^kc23=O#P0UTCjWZG zPxtT?i&oy(ulMBdsmR?^KTSz za$x#>QCoW_1n$y;`p)>pqo5ZLORfhSuO0+^V5EZW`0Z=)QM?(dl1J3cy*l?K62$H2%5G`WQ-PPOy^Y(%5D$0pin4QilULuH>WmwWDkPns0|Iu z=6!c$9EkWj3BsRWu@iX z)LR&Fe~1rOYx7I(dv*0Z${Pn?Z?h<~*)vR0kCAY0VL+|!mz8OLRBo-Tg@$A11l@>tfOdScwd-#{KmD0vAjX z4o=)J@)oo8nzDvf9|kbkEi5chyfMa(SKijnlLo^KyfDenJUXl0aeg>&bh+(VnSbNt%f$vsnMl#B4ACtdZH$E_c?|Z_JLm}n? zSYFG8A-&-brNG*@m+}q>Nis~myhx-BgP0wv1kq{|Xd^&*!yDCh&!*q7*&rpy%%kG)7QYXCawg%Efuxkl%BXYWXLjt{7f*w# zLi!qbZEbVY$P~Q2y*+S?126-G7dm81%SpP}0xgm;)R{Z?85LOB#*j?$hSkGO&BXIr zkGd7AM&kDKJKg|DYUttP6m^d!{hlPj)HIvqkz#7b!+O^xEcH^zsq<8l)4^q@&d=@a z?AQ+%V4~}4GK!sXJ9Y5sR@v?O5gX2N&!Idd8jrnDX^@wdwdR^Hmuoy9WI~QYLU*93414L+O_rn{# zqh5V|X$sv*zV%P|5r-Wx)W&9i4`GVVoi3ORx(M2f;P6&ptgz8!p%>p022_e`ip3g5u3Yf-}kqhuArNe|088t;J8^ zW)Do6(r6xZiPKq01vT28ENC#{OEFd5QaIacx0R8q zt>&#Imazhp>5B??B=#556j%^04s91lKqyIcC)}WTBS+=Abq4C8$Wxln9t$OY1=@x0 zR6{-XW)rEUS0`>|96EX&oTQef=Zjz8E>Ct|E<8Z}_NgZ;rh@vk%|^p2O zd{tkUpOx8qV}K&0h==Rt6KGd$Zv_Pl8ge>Amxdzq1C$#S_z2)&%lk`2T)>5RW{-(F zH7KHVx$Cz@qN|twSX&+1a}G$;t6l4~he8;Ftj$1nMwywvcK1bvW2a!N^1}HmLCs-) zoBT~)(@Z$=oyDB|K(C;kn)x??@#-$-Gy1%bv2J1$XM?s3e5Phig13$yx~>60CTxtSE-HMw+Jff-vJ0lT3jNQ6o8{Hqv*$2`98^sEO|YJ{t`)IhSEaxuf_# zI`LbMdhg0)v|~10q^J&e&TC^px@Ko5=#!bX@DBv=j8qnUJut^|w-p&*Upy&P0b}JY zA9wqC@d*gq!&h!cncs~q`XIgjE8z8O0~&Ii&-~aoFLsyBUIix4naOxD=+AL9T+iWbkF0(`S-%%8KZUDC5(XrH)){$;-JN})U27ahtZ)w(`#f^)FU z_JAM)_<5^15Ieuo_1VkLn6<5Z*u?>c`!ry-5sM_xIVSh^4ENJ114e{0bk;#?>31=&(&fdz0yS@VZ&xZ#Gua||Tp@onU-53MVt+o}Cl-$vfnrb1buYCI=f#w$fA!~^c!PxUE7AY`mWly)e^ z8b7{rjdlEEAc??9X~5ycR|i=8Zxq$Q`c)U_*aObJRU_U#3G4bSh<(NQGA z{hb7DlT44W#x^E8uqEn;-d1c`SxVg<&HWCMndFdgiyCV8*lbypyiaG1Z*F}RdKT(p zv*!?`fh-qcA#Z4m`gu5a9oDRv(cjAGyeZhqC?g}3>I+Iq0FfiAl-I&?j#;bm8x?qo<;R|=ICXe$2wcL7u;pU|Cqgg>o( zX=A+5pdeUC^Py}PNKk_}(-Xj<&wsX-aLdj|*gT4CQ- zziD^~X8o9XWp5uwpg47ZHL5&;*2v-9Bcwdi$ML1vCEI+}TwgX~e}=Pub>MmZmft3a zR@Q#_&<8Z+7R-{bp{p|-q8yG`*s%b49+ew@Va#3K+jFSsvYu~cuq0_$W9 z5KQRqMrhRcB9VxfU4|e?VHX#@X06kj26TA-AQAagu@cVzaGHwC0e?7%F}b8yVB7!_ z?)B4*?6{GEfoI&8EjnLiVR23|AIa|*I86Q)5)CLe?}&QBS1Fu~j-~?2bp=`WKq0AK zkl@cAXa4NDaYP`8KaBAVz~bZ7sWx%zG{>Fkaj#1Y43!mq>B>;aLmE zd_Y-Ct;gcyExs6OaQjBQ`qBF9J1v#j@W4LGaUyu#y~es z<+6jYs3;aWR%+Ik!j*g&a52eeve9>|WuwQwlCaO>=H_<#zQe@pGk1)9R)PP{_ds7Y zym@QnW!YL@=j%IrW_);<-p<9{T})JU`P}(>Lb=oI65yZRtQ3R!EH@{1e}5nx&c)j+ zaz?;++=;*M|AJ@=6)#=Tenf^Lql$F_*vG`#5TPY*fKk*V2e}&MN>&-rROTu#$1=oVrCPI zr&&`JuYM{6;L?SFFo2W?h)Bt2?Y+I8F)1l2YH{PiYP2sZf%2WTW*~1O=9*#&zBOwQa16Gyj()UpgJ2)_~Rh*2xNPa&>UHo9V zIL9O9QP9=*3_a2tofF>4aKfIxJ;D}*)O@dj8c^}&ETdc`eUYwciTMQQB#^(Puob2o zb6i9M4(i){C7K##d$0{Srg2N~dYS1Dd7b_5E))tbrot4wmy#j}R1n}zJdup_nQP9n ztMw<#QB}CjRIuf3Dj9Q~rG58u&?C)s2qY$fb0|v)5WHkiq}l$ueJ{Ct?q_AZE(+IOzLWu>R5Cpr0BR*xnI zBiM6$Fx0#Q*Wyy2@3-~sC`-vPJ7{a~L~0v3@6Bq<9%O13!T4@|IZ$cnn9~_lKh@u<} z3DjzD`(4!URmp}p5qPF#W8xBSQL6N=$86#&{FleO3JbjUx8TsVFN52Qf9BOtLk@?t zObB98o;~iK<1d-=WnRC-c?7X0kN?o&D~-((vsVvK4c0Z^*3y#d%|xh_U!h4;OM}!h z3SqG^m+^*Gr)GCzp~W=JF#Ivc`rhG6Ia=4RM8C|)xywDjj_|=9St?rdbzp2PzT<*n zrZn&iz_qUTlV$W{W;>!m$OhD{-1c@|(LoTbgzj9k7LV)UT5BlAQcgxjW~>}HTNx<5L^cRs(%9$B?D6~vEOSh#~Iud5@%h^|{ALk6^dyVS&0 z%)$e|lHf;bYM!42hp$;A2*L@6tQ2MTXu?R3A0K7+gD`0Anm78uuL5rY-?lKPHmLR4 z1Ak6(@b3Ngh`5(byl4ksHihHC8=|nDplxnFkPSB|U1Z^}JA{XxlS~4E6sAb<0G^8%Q4nRaCaQxd!ObIho&+pXWQv!?+1Adl<79zQ_BzB7Tu@ewpmE&Va3)*9HtvRN#};!E!%fVW28Pg)oSb z3KzcUC!DnQUj12<-9jL0fi4pY;XRalFaXj}*{j}0P@4AkRyt18Lh+cmfPjEi1WrwM zZ?mv9?{S6#@jl^4u_`FLG+{6_aSw|28yiCvxnM4Kb#*Z@G1cuh%Yfp_n1&qeM653k zs(CJ?Y?Y(-i&-f`rJdT+qK(97c%gf3@b_sQu@*^gi&+_3YdrP8R3$M#)qJMx>((QQ zpsK`H<8;fG7eM9Z&>T2BV$(Do2KC$M60=7gnpModr>n(*79)G_NotwR-wxBQV2dQ> z1GCc~4TVHFLF$8dq>CheAfGVrjrKO7AqNDqw3T_x0p&T*XH>HbMiLga`EOr7cc12t zq1PW^N=DoDMRpT1xXOtreY?uFmUuVp_}(NnvAIi($UQnaYMrlN=jTg9-U_M!7;y_W zfW0mJZb1rDB8gGT=x;jphJ6^|3pTXuDv{1yeR1G`c?>Y1eEXAW0qrg254T!IOINzOgc^1E z3z?01@w02O?9|FW+b9B;J6+Z3z#&`u3cIHIPu_&yH^Aq+QF{i2jyi0IMfd0}Q%;zdChExnZm{Y5onW6x*z z>bBY4wG8-vXy3roZi)F$2D@Di5JW+6Q*n0IG&OAkOrptxP=AJRe@-latkilZL<|M| zSXc3qASi#&^NHgQ&~=6R`NR*<8VQOwHlkx_Gz;n=Zs-oYRf=GC2)oKE51eS;q9+Nj zM%?Uae&N`YB%^Jxw$*Tu;Ef%t+b-=;vX{Vor;X;-uX3DD2YJ#L>zoX$beg3g1GE)z zRczg12ME&}Fu)4j#~n#3(eT2xaV2jeaE7opv-cf*2a7U0KS)$L(H-U4d<90#soNjc zksTT(_4%xak~BrTv$5vIu{cmGzJki-qp5-CI=@(8SnuCMl!c0}|2 zOq&Wf0tnZ(f4Wtrmv)zUuvU%AC5*tdG=Th({l$g9hCDp{7Q!>0j*8K0w3F?&E@K zQY_%Vpv~@CY{5c9e&5}_2dF4MF7Ejc@qIa#su`euk5(yE6=($uBHnsp`q-iC;XC}W zTH%`XD}xNq^WCx=o&9_j6NkzzV-m*g2QyqyN3b`M0Nm&d^_;|9jH%yxggz(%mg3`# z1g$etQYICkRhSjf!(1LIzU>pK2H)3&?)RzyLV3Hdu!$PBz7|I80^46MpdO2qZUe<| zUd7b9!$C3ulgt9r?>QJEpwaPpTKON%W$}bHiwm*JFGq^f?7hd5eWqxWE4D{*V88K# zX|C9hWN==~^fR|%J*Z@+M8-!fF)O`pB^RmI_^t*uzgU}%c0Y69VYOja`{_>n_VzZQ z%O4oO_kwe3b7ILLDaVP({U~D&U=mcF7%rM^_Na4V7fPDpwU^+s5~-@*kuU#HDes~U z{15bjM~JY@ygV#^M3JNcI+0<^d)Pv534#!op24$OJy4FAhqu;<6&A+)yzQ+fxMWP z0sEBdPjYjg$)Apx=V_doS)#pl@bn#vs8|ohQV6LRUn@7p62PkM z;(9FxoJSiL5jLx?_TC=r5D^nwDIYok@%MTW$OKMWK<>#r;kcxt5^^wK8W(q+_Tx{2 zC)iTYJUZ72p$9hg&jF49*%_R8zslX%aq0^Snwq9}G45bfQ2i!XKbRmmT5R-$rfQ+i zkG757GoNm8#44*UOmTK~sVsu720ius(ID+a!(2tMsE40==BH(8j9=WmB=U=Yahc`b zqS1};SC*Eb6;|py>LQ8k>-%8=pjkqtLd;h@D&*~mubk2b0p7xttJh94U zCBpL?dnijex3e;)?&?1)XvAF#ko2~uAfG9CGt<8zxC39frqtl^I@2Q{x2*`=s2 z;BY-Jiyc`mt3RnU;9D$dsWg77^ZL)`0_*8E;H=6(xd7ukS2y+^6zUum0%z`jQU$~p zOqZqAm+T4Ry*g=8tbm7r&A6Yw6w0<3m#VtDK6k9@S&gRfj@dp-sH|M#uUV(w-HYIkDbT)VLFPv3iBWnH^$z=Zs-KhDr}?YDmz?b@`Yv*&{{*UO{^y8yif zulv{-pPlCdV<7ibblT~T#&TSWRW`gy)!U2&qV~*tdwHEceR@ik`>PV@xMho3eYPXN z|EcYJ?oD9P_bv|Q8c0qhbIPSaodW6Nj%6ZbnXP) z&Yp2{{hWQzH|Rk~pGzv|mb_@ZpdV=F_>YoW6%chH5U8R%=+3>bp#CoUEr8v?jg3+q zY})Me3s^=5T>p4!I$!K_+jrohfGm^FOaap0SOu(m;oY4ip zx%XD7$rLcW)4jhxG0h8sU)2Bon8E5+tg@)E*}?w)wCtz2v-w+5FBu0_{Ik*mF!DO~ zAk?fuK>&k%xp*X!DbSV<<^I7^#$@JzD~$E3$l*bJ*UNs(I<>cot>u=WAN7_+93Ys9 zQ08PJ-x_pyXK>?<nr2cM-^WHoWaS!}TIZmQ(j^g@rRgaD>F@_$`w| zzUBeHdQqrz=PKe6Gv`|nHk3JmY+&DUy!C{78fdfr{-nZ*pgzYL{-TgR=}>Cr4CHIl zZX1XTRhI}S#FE{!=sAPHus?rdx?WDn()e4M700Hh%Ws`l7M(mx%-oVMdD~6u2{(`f zLtIq48++&SIbh9+s?EN4>REtoxJZJ2qJY4spaUHU55QL_HaMtOKw{RZl9l4KB3zCP zl6jkC#EZZJI%nU2KD()@9FVT&!Hw`=FN=?qHt!@6lnsf{1Wo~}Hy5QUvIyOncX6R7 zA@>qVNUCf1VYFbd-+;rB^E$Ge7kKyZ27p8;)}>IVbAIC}{arox-r=UVKb{|0UIg&3 za9~!qkf)U|;PLp$Hu#mWts!vkPw@!|!S@USo4HT3xwX~m%UaJ3B9r8b#Z$=F>yu~e z%xQtZLh_wt;HAK+B@=nB2Fb`Ez)OJ`-r%nJg;f+H> zTRAyViZ@`BVYLf{jC)KAD=SM_EUzIn?Z?0;J1{tnG&p7*EN28~rI}@BY6`}Koj)CF zQV@$>-KlCa3=q%f#G35{Is>*EiANwejyO8{NiG8b_sOg0|H!*p3puzLjNP` zUG!rPpwg00O1oo5AO^Q%78m(+rEgy8LeYDk_^=1g3oA<;SW@pbsrsQX1oF9=RCP|3LKrS{Od|c*~yhQvm$lwFW88-?{8Tb za6PWBu3$5^Cr+feu+ZcM6$=3EHAo`>!J}Oxj0=z>GA~NJ5l#j%Uc8Qvo(5;>lP|c3 z>UnvW7*<_8_vR~@j!>@74N`*vA5`EIIA8&qjbdWmF}(oD?G7%`n%1&1Ha5ng@<_Wy zZNJPw3gAgVgmYgEo%%?^*Tz^GX0Ac-iA%cIZ&bK?$^z`}pCo2gA0@#LG z;DClxJk0`O;4x=JTCcpgD|;M5qfBOlQEl>zNv`{CQaL~T9 zcqOp;D+qVz(yo0#qd@&i&4{ux~Pt%lK@0C+h@cM$%X(tEDr?+vi)bQeA9-!|H>2(PSUkWJ-(SVh#dxO*Y zZX}G-gA3|2XHX4ez$iBBOmZ#~-iTMpL@Hf5_g;(VS)ARMt8C$uRB|9-)VqipuxYq? z4_ke4qnFG3^z^yY!>~(MK&Jd73_RrmnB=w@)8xd#dc^(M5A9>D-_>1azKi@PJG4lG z#hhQyE$BPYvDY(2Enpg0cB?Q>*>76Q%A;N)&W7 z!v;PH^0aFUDHm{NDFrxCqL}-+LnpCJhm>;6eL6j9iQXq60s|qXvGgVs3MCq&7GGMf z4O~FcI~~g3bOdLKe;%1H$1@}kPg5kLd1OoG&DPAc$L|$@arJk7QvCTTC-zGk1AFiY zeI6>)0e_jq2{hl399z-qozMWAbD)w^Xv4Ku2QjM3qeb-V4or&$1oH%Rh|4E6X_&MK zHg1bU!NL6)@goz@Dm=}YN;OHJGD$BTn;O`xnV@$PQlANaqYq8n%nOg8ng;naQ~PLe zzGL3Er=D#ZZRDYBVXYWp@Y#Z;1B2j$7QqJtf>z~%>mJmk(J>E>6lzp@y-~37L)!UN zts;%K!e{-T@V)0AMNqZmND49RyrUnDH&0S{4UQ)+)&T z##LE%S0c~Jg=h#JNfJ|aG`H0>OQYc8I`h{o|xpkYMTc zD||7e1Z8YR%F6;HA#jS;U$?&pOL~~Dl4&_!UHJ*#y|4agUtpJwJ%eE&WL(`Ij2k%0 zKqq)u8Z{I@XiRd47N#?(=7PmbKgkR(Fl_QV`aJGCscB|3t|kvmB70IA>9Fu5dX)h1{#pkcD2(bjOZ>dvE8Uz@fO=j28@$b%GU z-lC_WCHN^d@ULhbTqMzWu30x}Y?+0AG?E5>06wa^`t+J+UJ42%Y{HRjFE~pk>9Kpa zC2ZZSz$B3mFPR!Xd4vESCwvsq7O%mZ1iQ^OXRd>&kaDs8qmpFsqTRJ6;7eiX&G@*)+)|R+9uwfERSv?Q@};BLR3nyLu%_`KW#4JXYYe*j}vZX@kzc80aM3HZt}F2~L?@*Im)Iug8R{pdZj z17^knS%6XtI9fe542FLP_V_oqEH=cbTJJRdx{xsf9jSy_FgmF?P0H7A)=QGnXqQMv@MWsDQsnuhJYJO`@0T z0$*wEXWB|=Ad9m|-g}a?n#Fz(RhL8#;3)**q{9bQfaoDfLaLXy!1I=Dt^pXjcgN0? z7Pm!mg?lnNlbAdq3t-z~7b@ve#_*AbptrX$IS zB+Z~gdQvjYNDrP|C5`Dn`dZVnJyrlr&^(e<5-TTM<<?k&On4f{+Z{UT^?QjNBbp5w*sWkUH)Fjll}|DF{b~S#IZ^Jhs3c*{foqLK>5!kj^pXSNF1k= z{~8I$+4Mi>I3^SSB5_P6{xgYVGVvc0$7JGPB#z0%e6bkmp!9Q!br%!FF<_Hcrf!^S87mx%4xQCIA2c literal 0 HcmV?d00001 diff --git a/apps/www/public/r/styles/new-york/toolbar-01.json b/apps/www/public/r/styles/new-york/toolbar-01.json new file mode 100644 index 00000000000..4eb0b67562c --- /dev/null +++ b/apps/www/public/r/styles/new-york/toolbar-01.json @@ -0,0 +1,30 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "toolbar-01", + "type": "registry:block", + "author": "shadcn (https://ui.shadcn.com)", + "description": "A toolbar with action buttons.", + "registryDependencies": [ + "button", + "input", + "avatar", + "separator" + ], + "files": [ + { + "path": "blocks/toolbar-01/page.tsx", + "content": "import { Toolbar } from \"@/registry/new-york/blocks/toolbar-01/components/toolbar\"\n\nexport default function Page() {\n return (\n
\n
\n \n
\n
\n )\n}\n", + "type": "registry:page", + "target": "app/toolbar/page.tsx" + }, + { + "path": "blocks/toolbar-01/components/toolbar.tsx", + "content": "\"use client\"\n\nimport { useState } from \"react\"\nimport {\n MousePointerClick,\n Plus,\n Search,\n Sparkles,\n SunMoon,\n} from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Avatar, AvatarFallback } from \"@/registry/new-york/ui/avatar\"\nimport { Button } from \"@/registry/new-york/ui/button\"\nimport { Input } from \"@/registry/new-york/ui/input\"\nimport { Separator } from \"@/registry/new-york/ui/separator\"\n\nexport function Toolbar() {\n const [search, setSearch] = useState(\"\")\n const [isActive, setIsActive] = useState(true)\n const [activeButton, setActiveButton] = useState(null)\n\n const handleButtonClick = (buttonName: string) => {\n setActiveButton(buttonName)\n setTimeout(() => setActiveButton(null), 1000)\n }\n\n const submitSearch = (e: React.FormEvent) => {\n e.preventDefault()\n setActiveButton(\"Search\")\n setSearch(\"\")\n }\n\n return (\n
\n
\n {activeButton && (\n
\n
{activeButton}
\n
\n
\n
\n
\n )}\n
\n
\n handleButtonClick(\"Theme toggle\")}\n >\n \n \n \n handleButtonClick(\"Plus\")}\n >\n \n \n handleButtonClick(\"Sparkles\")}\n >\n \n \n
\n
\n \n
\n
\n setSearch(e.target.value)}\n />\n \n
\n
\n
\n handleButtonClick(\"MousePointerClick\")}\n >\n
\n Click!\n \n
\n \n \n handleButtonClick(\"User\")}\n >\n \n D\n \n \n
\n
\n )\n}\n", + "type": "registry:component", + "target": "" + } + ], + "categories": [ + "toolbar" + ] +} \ No newline at end of file diff --git a/apps/www/registry/default/blocks/toolbar-01/components/toolbar.tsx b/apps/www/registry/default/blocks/toolbar-01/components/toolbar.tsx new file mode 100644 index 00000000000..06448c04054 --- /dev/null +++ b/apps/www/registry/default/blocks/toolbar-01/components/toolbar.tsx @@ -0,0 +1,113 @@ +"use client" + +import { useState } from "react" +import { + MousePointerClick, + Plus, + Search, + Sparkles, + SunMoon, +} from "lucide-react" + +import { cn } from "@/lib/utils" +import { Avatar, AvatarFallback } from "@/registry/default/ui/avatar" +import { Button } from "@/registry/default/ui/button" +import { Input } from "@/registry/default/ui/input" +import { Separator } from "@/registry/default/ui/separator" + +export function Toolbar() { + const [search, setSearch] = useState("") + const [isActive, setIsActive] = useState(true) + const [activeButton, setActiveButton] = useState(null) + + const handleButtonClick = (buttonName: string) => { + setActiveButton(buttonName) + setTimeout(() => setActiveButton(null), 1000) + } + + const submitSearch = (e: React.FormEvent) => { + e.preventDefault() + setActiveButton("Search") + setSearch("") + } + + return ( +
+
+ {activeButton && ( +
+
{activeButton}
+
+
+
+
+ )} +
+
+ + + + +
+
+ +
+
+ setSearch(e.target.value)} + /> +
+
+
+
+ + + +
+
+ ) +} diff --git a/apps/www/registry/default/blocks/toolbar-01/page.tsx b/apps/www/registry/default/blocks/toolbar-01/page.tsx new file mode 100644 index 00000000000..4d05ba11c70 --- /dev/null +++ b/apps/www/registry/default/blocks/toolbar-01/page.tsx @@ -0,0 +1,11 @@ +import { Toolbar } from "@/registry/default/blocks/toolbar-01/components/toolbar" + +export default function Page() { + return ( +
+
+ +
+
+ ) +} diff --git a/apps/www/registry/new-york/blocks/toolbar-01/components/toolbar.tsx b/apps/www/registry/new-york/blocks/toolbar-01/components/toolbar.tsx new file mode 100644 index 00000000000..439fc588910 --- /dev/null +++ b/apps/www/registry/new-york/blocks/toolbar-01/components/toolbar.tsx @@ -0,0 +1,113 @@ +"use client" + +import { useState } from "react" +import { + MousePointerClick, + Plus, + Search, + Sparkles, + SunMoon, +} from "lucide-react" + +import { cn } from "@/lib/utils" +import { Avatar, AvatarFallback } from "@/registry/new-york/ui/avatar" +import { Button } from "@/registry/new-york/ui/button" +import { Input } from "@/registry/new-york/ui/input" +import { Separator } from "@/registry/new-york/ui/separator" + +export function Toolbar() { + const [search, setSearch] = useState("") + const [isActive, setIsActive] = useState(true) + const [activeButton, setActiveButton] = useState(null) + + const handleButtonClick = (buttonName: string) => { + setActiveButton(buttonName) + setTimeout(() => setActiveButton(null), 1000) + } + + const submitSearch = (e: React.FormEvent) => { + e.preventDefault() + setActiveButton("Search") + setSearch("") + } + + return ( +
+
+ {activeButton && ( +
+
{activeButton}
+
+
+
+
+ )} +
+
+ + + + +
+
+ +
+
+ setSearch(e.target.value)} + /> +
+
+
+
+ + + +
+
+ ) +} diff --git a/apps/www/registry/new-york/blocks/toolbar-01/page.tsx b/apps/www/registry/new-york/blocks/toolbar-01/page.tsx new file mode 100644 index 00000000000..f28fd21f088 --- /dev/null +++ b/apps/www/registry/new-york/blocks/toolbar-01/page.tsx @@ -0,0 +1,11 @@ +import { Toolbar } from "@/registry/new-york/blocks/toolbar-01/components/toolbar" + +export default function Page() { + return ( +
+
+ +
+
+ ) +} diff --git a/apps/www/registry/registry-blocks.ts b/apps/www/registry/registry-blocks.ts index 956be895488..9973c7488fc 100644 --- a/apps/www/registry/registry-blocks.ts +++ b/apps/www/registry/registry-blocks.ts @@ -567,4 +567,22 @@ export const blocks: Registry["items"] = [ ], categories: ["authentication", "login"], }, + { + name: "toolbar-01", + description: "A toolbar with action buttons.", + type: "registry:block", + registryDependencies: ["button", "input", "avatar", "separator"], + files: [ + { + path: "blocks/toolbar-01/page.tsx", + target: "app/toolbar/page.tsx", + type: "registry:page", + }, + { + path: "blocks/toolbar-01/components/toolbar.tsx", + type: "registry:component", + }, + ], + categories: ["toolbar"], + }, ] diff --git a/apps/www/registry/registry-categories.ts b/apps/www/registry/registry-categories.ts index 8687469fd0e..d1778238b31 100644 --- a/apps/www/registry/registry-categories.ts +++ b/apps/www/registry/registry-categories.ts @@ -59,4 +59,9 @@ export const registryCategories = [ slug: "charts-tooltip", hidden: true, }, + { + name: "Toolbar", + slug: "toolbar", + hidden: false, + }, ]