@alexgorbatchev/shadcn 0.0.48 → 0.0.49

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (533) hide show
  1. package/README.md +64 -2
  2. package/dist/{chunk-snq5m541.js → chunk-02a3sgge.js} +3 -3
  3. package/dist/{chunk-mqea74ex.js → chunk-032fn19y.js} +2 -2
  4. package/dist/{chunk-tg5grn8f.js → chunk-056z8fc3.js} +2 -2
  5. package/dist/{chunk-fz2x6hvf.js → chunk-09x5ne2y.js} +4 -4
  6. package/dist/{chunk-0q9n4syq.js → chunk-0bwg27nq.js} +3 -3
  7. package/dist/{chunk-hyq4nwg2.js → chunk-0hq6rg7w.js} +1 -1
  8. package/dist/{chunk-6kygf29c.js → chunk-0jz2mp48.js} +2 -2
  9. package/dist/{chunk-fvg93469.js → chunk-0ybqnkcy.js} +1 -1
  10. package/dist/{chunk-m9rrhywc.js → chunk-10bcpsft.js} +6 -6
  11. package/dist/{chunk-cfnkbp0y.js → chunk-10vjajh7.js} +1 -1
  12. package/dist/{chunk-588wj6g4.js → chunk-11m1mwv4.js} +3 -3
  13. package/dist/{chunk-wnhxn2se.js → chunk-16qrkr8k.js} +1 -1
  14. package/dist/{chunk-c9ypcp4s.js → chunk-1f6p05qh.js} +5 -5
  15. package/dist/{chunk-d70rcwk7.js → chunk-1fzwfn11.js} +1 -1
  16. package/dist/{chunk-3wap1z7h.js → chunk-1k2g7rpj.js} +2 -2
  17. package/dist/{chunk-c4m53x5s.js → chunk-1wrsg75m.js} +1 -1
  18. package/dist/{chunk-zj30cfgx.js → chunk-1xgqshkv.js} +1 -1
  19. package/dist/{chunk-s3wqwhxc.js → chunk-228jkv3n.js} +1 -1
  20. package/dist/{chunk-f6rbv5gf.js → chunk-2b5f37wj.js} +3 -3
  21. package/dist/{chunk-kxx5fnpb.js → chunk-2fxzw0xc.js} +2 -2
  22. package/dist/{chunk-xq579zwh.js → chunk-2z53taz1.js} +1 -1
  23. package/dist/{chunk-a6mes7w0.js → chunk-31wptjv4.js} +52 -93
  24. package/dist/{chunk-wgxs6b5t.js → chunk-39q6906v.js} +1 -1
  25. package/dist/{chunk-s8ejm9d8.js → chunk-3b15harp.js} +1 -1
  26. package/dist/{chunk-6jw87d07.js → chunk-3gc5n7dc.js} +2 -2
  27. package/dist/{chunk-05shyxqp.js → chunk-3gxptxxs.js} +1 -1
  28. package/dist/{chunk-jhw9q2eq.js → chunk-3j9enr2q.js} +1 -1
  29. package/dist/{chunk-ybyx7vt4.js → chunk-3kw3nft7.js} +3 -3
  30. package/dist/{chunk-vfhztmet.js → chunk-3p6085ag.js} +1 -1
  31. package/dist/{chunk-fb6h4fzt.js → chunk-3qq9yhn2.js} +1 -1
  32. package/dist/{chunk-a82d9z1e.js → chunk-3qrvksfh.js} +1 -1
  33. package/dist/{chunk-fxfwgr5g.js → chunk-3rjm30tj.js} +7 -7
  34. package/dist/{chunk-e9756880.js → chunk-4143tbd7.js} +2 -2
  35. package/dist/{chunk-645dhey7.js → chunk-424xrf3x.js} +11 -9
  36. package/dist/{chunk-23jrbq6y.js → chunk-4531ygnr.js} +1 -1
  37. package/dist/{chunk-9de1htr5.js → chunk-4e96tpw0.js} +1 -1
  38. package/dist/{chunk-jgdpa00w.js → chunk-4t23yhc0.js} +2 -2
  39. package/dist/{chunk-wh7rmym5.js → chunk-4z3c9p9y.js} +3 -3
  40. package/dist/{chunk-1t959882.js → chunk-4zm4dn1a.js} +2 -2
  41. package/dist/{chunk-f08tw6hg.js → chunk-50ykf6dc.js} +2 -2
  42. package/dist/{chunk-zksbrzf6.js → chunk-51t02gb9.js} +3 -3
  43. package/dist/{chunk-rajgnfbr.js → chunk-52aadmkc.js} +1 -1
  44. package/dist/{chunk-srr328m4.js → chunk-58cpjhsr.js} +30 -15
  45. package/dist/{chunk-0twprqdp.js → chunk-5bq2j907.js} +3 -3
  46. package/dist/{chunk-7w8yemba.js → chunk-5jgfh8t9.js} +1 -1
  47. package/dist/{chunk-8k18tnap.js → chunk-5pgk9qar.js} +3 -3
  48. package/dist/{chunk-7mnba0d8.js → chunk-5rxjvjkq.js} +6 -6
  49. package/dist/{chunk-fky4t8cc.js → chunk-5tag5wg4.js} +9 -9
  50. package/dist/{chunk-xvmv0xm5.js → chunk-5wk6h8rc.js} +3 -3
  51. package/dist/{chunk-gbmvkt3q.js → chunk-62ggz655.js} +4 -4
  52. package/dist/{chunk-m0agthfm.js → chunk-65xd5we6.js} +2 -2
  53. package/dist/{chunk-23419f5j.js → chunk-6bsys2p8.js} +2 -2
  54. package/dist/{chunk-84gs32n6.js → chunk-6en4vrjc.js} +79 -48
  55. package/dist/{chunk-w1jm0rx3.js → chunk-6eseyyv3.js} +4 -4
  56. package/dist/{chunk-96x8wa8w.js → chunk-6gmarxhb.js} +2 -2
  57. package/dist/{chunk-vhm7fpav.js → chunk-6pj5fxa2.js} +10 -10
  58. package/dist/{chunk-v8gdzaxt.js → chunk-6wqp7xn4.js} +1 -1
  59. package/dist/{chunk-10t1w38s.js → chunk-70rxgqd7.js} +3 -3
  60. package/dist/{chunk-8xnjf4ef.js → chunk-737c03z9.js} +3 -3
  61. package/dist/{chunk-3xw5sdfk.js → chunk-73s0vkbs.js} +2 -2
  62. package/dist/{chunk-2mn2ctsk.js → chunk-7cq1s2ey.js} +1 -1
  63. package/dist/{chunk-ydfsxbrn.js → chunk-7dpp28jx.js} +2 -2
  64. package/dist/{chunk-79vgr8w9.js → chunk-7gjmprwx.js} +5 -5
  65. package/dist/{chunk-x6vx0v6d.js → chunk-7srpghny.js} +2 -2
  66. package/dist/{chunk-bnaejcfx.js → chunk-7v8ry91s.js} +2 -2
  67. package/dist/{chunk-0fmrwsgp.js → chunk-7vg045gd.js} +1 -1
  68. package/dist/{chunk-vyve5wf3.js → chunk-7vnpp3ya.js} +1 -1
  69. package/dist/{chunk-pws4vb8r.js → chunk-7yc7phbt.js} +3 -3
  70. package/dist/{chunk-cn1ns1xj.js → chunk-7zf1pehx.js} +2 -2
  71. package/dist/{chunk-77xfccfq.js → chunk-880zr7gb.js} +4 -4
  72. package/dist/{chunk-2krw4tjq.js → chunk-8b4gq4xb.js} +3 -3
  73. package/dist/{chunk-m71d0g7v.js → chunk-8gtsqm4v.js} +6 -6
  74. package/dist/{chunk-kbcprevc.js → chunk-8jyhvaer.js} +1 -1
  75. package/dist/{chunk-prp1x0by.js → chunk-8sktrf74.js} +1 -1
  76. package/dist/{chunk-ewhk1ze1.js → chunk-8vw7ycbs.js} +2 -2
  77. package/dist/{chunk-td7ra5d2.js → chunk-8w8mnk5h.js} +2 -2
  78. package/dist/{chunk-71efbr5n.js → chunk-8xk2zeg2.js} +1 -1
  79. package/dist/{chunk-60p7sagm.js → chunk-9ecf92s6.js} +1 -1
  80. package/dist/{chunk-1zbtg30t.js → chunk-9gdt00hm.js} +1 -1
  81. package/dist/{chunk-6jpz5geq.js → chunk-9n0axzd5.js} +3 -3
  82. package/dist/{chunk-wjx6zf94.js → chunk-9t530p75.js} +1 -1
  83. package/dist/{chunk-dfkzm4f1.js → chunk-9yjrw75r.js} +14 -14
  84. package/dist/{chunk-pa8yemp1.js → chunk-a1c1yrkz.js} +1 -1
  85. package/dist/{chunk-9qcqxp3v.js → chunk-a3n2jee5.js} +1 -1
  86. package/dist/{chunk-hj9avapz.js → chunk-ab932mya.js} +5 -5
  87. package/dist/{chunk-9vm8fks0.js → chunk-ajnmzqsv.js} +1 -1
  88. package/dist/{chunk-khkdgmvm.js → chunk-amdsd0g4.js} +1 -1
  89. package/dist/{chunk-ghz2g6j5.js → chunk-an661kn2.js} +3 -3
  90. package/dist/{chunk-06c2d8rd.js → chunk-b19nmr0m.js} +2 -2
  91. package/dist/{chunk-caz81rnv.js → chunk-b5s5y5wq.js} +1 -1
  92. package/dist/{chunk-5j39rehg.js → chunk-bcwbh20z.js} +1 -1
  93. package/dist/{chunk-38301e40.js → chunk-bd09gygt.js} +1 -1
  94. package/dist/{chunk-21ab0jsp.js → chunk-bf8kbj33.js} +1 -1
  95. package/dist/{chunk-h3qqt3rg.js → chunk-bgvjmnst.js} +3 -3
  96. package/dist/{chunk-x1598f0d.js → chunk-bkb7mahn.js} +3 -3
  97. package/dist/{chunk-jadf0xqn.js → chunk-brxk90eb.js} +2 -2
  98. package/dist/{chunk-ct6ayjkt.js → chunk-bxzbrzbb.js} +2 -2
  99. package/dist/{chunk-ngq209hr.js → chunk-cjx1ry29.js} +3 -3
  100. package/dist/{chunk-t97ts9df.js → chunk-d1z748rn.js} +1 -1
  101. package/dist/{chunk-1hy9rfvc.js → chunk-d1zj7xk2.js} +2 -2
  102. package/dist/{chunk-cn81dnqb.js → chunk-d93zpy8g.js} +1 -1
  103. package/dist/{chunk-mwzmmeeq.js → chunk-ddbc17b4.js} +1 -1
  104. package/dist/{chunk-d444bwwf.js → chunk-dq2s4vwc.js} +3 -3
  105. package/dist/{chunk-tbd56x4h.js → chunk-dvzs0424.js} +3 -3
  106. package/dist/{chunk-k6hfm259.js → chunk-dyg4pwcd.js} +1 -1
  107. package/dist/{chunk-f9twxy4y.js → chunk-e55n7tff.js} +2 -2
  108. package/dist/{chunk-f72tygjq.js → chunk-ee098znw.js} +2 -2
  109. package/dist/{chunk-dhmtrz6f.js → chunk-efm3b1py.js} +3 -3
  110. package/dist/{chunk-cp2m7y7v.js → chunk-en44w1pn.js} +3 -1
  111. package/dist/{chunk-tq0pfv5h.js → chunk-er6e5fj8.js} +1 -1
  112. package/dist/{chunk-gykrcxd1.js → chunk-f281m4a9.js} +1 -1
  113. package/dist/{chunk-m99hfsps.js → chunk-f2p7w894.js} +1 -1
  114. package/dist/{chunk-h5zhqdmb.js → chunk-f37ge3wq.js} +3 -3
  115. package/dist/{chunk-q7zc22qp.js → chunk-f4xwjhmy.js} +1 -1
  116. package/dist/{chunk-3t7h84te.js → chunk-f63kp4af.js} +3 -3
  117. package/dist/{chunk-x6zmnr8m.js → chunk-f6qkck8r.js} +6 -6
  118. package/dist/{chunk-2mswp6h1.js → chunk-f7cczxya.js} +4 -4
  119. package/dist/{chunk-y7tyyzfy.js → chunk-f97wwbfy.js} +3 -3
  120. package/dist/chunk-f9sm5zpv.js +47 -0
  121. package/dist/{chunk-v9r6zprz.js → chunk-fdhssr0q.js} +1 -1
  122. package/dist/{chunk-pj01ybcm.js → chunk-fjw7yyt3.js} +3 -3
  123. package/dist/{chunk-fba5hr7b.js → chunk-fm1b6e79.js} +2 -2
  124. package/dist/{chunk-83v2vma2.js → chunk-fnqc1181.js} +2 -2
  125. package/dist/{chunk-khtt3f21.js → chunk-fp4dkem8.js} +2 -2
  126. package/dist/{chunk-4gcpx4pm.js → chunk-fvg6symh.js} +2 -2
  127. package/dist/{chunk-1q30wk9x.js → chunk-g5dzh9rr.js} +3 -3
  128. package/dist/{chunk-6475gsta.js → chunk-g975kjdm.js} +2 -2
  129. package/dist/{chunk-xwf411kf.js → chunk-gb16cwpw.js} +2 -2
  130. package/dist/{chunk-axw1yqxz.js → chunk-gg37cyfd.js} +2 -2
  131. package/dist/{chunk-8jnfvgvk.js → chunk-ghv4vcae.js} +2 -2
  132. package/dist/{chunk-f9kdk0q4.js → chunk-gns8a3x5.js} +1 -1
  133. package/dist/{chunk-j2hawnp9.js → chunk-gremnsj0.js} +2 -2
  134. package/dist/{chunk-rr74321a.js → chunk-gx8z1f8n.js} +2 -2
  135. package/dist/{chunk-fgfaarep.js → chunk-h2hpkawe.js} +2 -2
  136. package/dist/{chunk-fkzh31y0.js → chunk-h7zgbreq.js} +1 -1
  137. package/dist/{chunk-jk941nke.js → chunk-h9tjva8p.js} +2 -2
  138. package/dist/{chunk-svz0farj.js → chunk-ha7g0gt2.js} +2 -2
  139. package/dist/{chunk-mtx71g1t.js → chunk-hkqjfk9w.js} +5 -5
  140. package/dist/{chunk-beywepck.js → chunk-hp9vkfh5.js} +2 -2
  141. package/dist/chunk-hpf8s83c.js +89 -0
  142. package/dist/{chunk-63gvcckp.js → chunk-hw988ram.js} +1 -1
  143. package/dist/{chunk-8r57zwqg.js → chunk-hyaz95gc.js} +1 -1
  144. package/dist/{chunk-7qwp41y5.js → chunk-j2zxqzta.js} +2 -2
  145. package/dist/{chunk-f63cr8mx.js → chunk-j6rp3w59.js} +1 -1
  146. package/dist/{chunk-s0ecp1mv.js → chunk-jbrt06va.js} +3 -3
  147. package/dist/{chunk-qmfxytfb.js → chunk-jhpeb72r.js} +3 -3
  148. package/dist/{chunk-svr3r7pj.js → chunk-jhvy8jay.js} +675 -174
  149. package/dist/{chunk-6fp821jv.js → chunk-jswxzynj.js} +2 -2
  150. package/dist/{chunk-nxkbx5r2.js → chunk-jvmm6k16.js} +2 -2
  151. package/dist/{chunk-bygq5yqf.js → chunk-k1f35j55.js} +1 -1
  152. package/dist/{chunk-w9jyajx3.js → chunk-k2t9ey7z.js} +1 -1
  153. package/dist/{chunk-efs4bk5b.js → chunk-k7cvfw0f.js} +1 -1
  154. package/dist/{chunk-4pae2b1z.js → chunk-k7gzvk6n.js} +1 -1
  155. package/dist/{chunk-ekbesw9t.js → chunk-kgqe8gpb.js} +1 -1
  156. package/dist/{chunk-7zyf9nnf.js → chunk-kxvn3eae.js} +2 -2
  157. package/dist/{chunk-3v95p5js.js → chunk-m0kavf2m.js} +1 -1
  158. package/dist/{chunk-jcxxjkqx.js → chunk-m32ptxf3.js} +1 -1
  159. package/dist/{chunk-vm3fzfnj.js → chunk-m37eyydy.js} +1 -1
  160. package/dist/chunk-m4geb1s5.js +30 -0
  161. package/dist/{chunk-7g1dx0bn.js → chunk-m6eb1thj.js} +1 -1
  162. package/dist/{chunk-ptgtqv1a.js → chunk-m98d89xc.js} +1 -1
  163. package/dist/{chunk-aahx2gyb.js → chunk-mc0788ah.js} +2 -2
  164. package/dist/{chunk-yabr2qx9.js → chunk-mmydm40x.js} +1 -1
  165. package/dist/{chunk-bt7ramb0.js → chunk-mxcfz56p.js} +3 -3
  166. package/dist/{chunk-hpmvzsnv.js → chunk-n2n7k3he.js} +1 -1
  167. package/dist/{chunk-vnxy5dtp.js → chunk-n8n3gp71.js} +1 -1
  168. package/dist/{chunk-dy4ghe9p.js → chunk-nay3qsgw.js} +5 -5
  169. package/dist/{chunk-v00z8h0n.js → chunk-nbpvngb8.js} +1 -1
  170. package/dist/{chunk-xfhk2vrw.js → chunk-nfbxyvht.js} +2 -2
  171. package/dist/{chunk-jwzg2twy.js → chunk-nj1sgtss.js} +3 -3
  172. package/dist/{chunk-e970kv8r.js → chunk-nk53z990.js} +2 -2
  173. package/dist/{chunk-smzhep9f.js → chunk-nnhn7kjq.js} +1 -1
  174. package/dist/{chunk-e9v481he.js → chunk-nrdc4t48.js} +3 -3
  175. package/dist/{chunk-bhejvd5q.js → chunk-ny54gm5e.js} +2 -2
  176. package/dist/{chunk-4k2jzddw.js → chunk-p33nbc0k.js} +1 -1
  177. package/dist/{chunk-q606kj28.js → chunk-p56he2j7.js} +1 -1
  178. package/dist/{chunk-zpcxr2r4.js → chunk-pq89m919.js} +2 -2
  179. package/dist/{chunk-0xqqs9kw.js → chunk-ps59anjd.js} +2 -2
  180. package/dist/{chunk-z8n03ra5.js → chunk-ptdr68cq.js} +3 -3
  181. package/dist/{chunk-wq8jxf31.js → chunk-pv379mp6.js} +4 -4
  182. package/dist/{chunk-zc60zhz7.js → chunk-q1fgpxfk.js} +1 -1
  183. package/dist/{chunk-2pzvxbq3.js → chunk-qff5s98n.js} +3 -3
  184. package/dist/{chunk-1hq2k0fs.js → chunk-qgwshegs.js} +3 -3
  185. package/dist/{chunk-m4wfy6n3.js → chunk-qnf643p0.js} +3 -3
  186. package/dist/{chunk-fpj82hex.js → chunk-qrjxx1x9.js} +2 -2
  187. package/dist/{chunk-tzred534.js → chunk-qzxz33rc.js} +1 -1
  188. package/dist/{chunk-1akz4hf3.js → chunk-r0g0gwv6.js} +1 -1
  189. package/dist/{chunk-zp3wrbve.js → chunk-r6bwsyxy.js} +2 -2
  190. package/dist/{chunk-vrs3371x.js → chunk-rgdesh1z.js} +4 -4
  191. package/dist/{chunk-n5ea9nv1.js → chunk-rpsf1cph.js} +4 -4
  192. package/dist/{chunk-5zyc28sc.js → chunk-rs5xh8wa.js} +3 -3
  193. package/dist/{chunk-14mh00z3.js → chunk-rxjxb4vy.js} +4 -4
  194. package/dist/{chunk-xgp1eyhr.js → chunk-rzd306rr.js} +4 -4
  195. package/dist/{chunk-kzar67tq.js → chunk-s2f3zzbb.js} +1 -1
  196. package/dist/{chunk-4e879g03.js → chunk-s3r5g3md.js} +2 -2
  197. package/dist/{chunk-r4jzz4f2.js → chunk-sp4g23m0.js} +1 -1
  198. package/dist/{chunk-dq6se94p.js → chunk-sqz2901w.js} +2 -2
  199. package/dist/{chunk-3ptcdy6g.js → chunk-sty5mqva.js} +2 -2
  200. package/dist/{chunk-53cmv2aj.js → chunk-t06g497x.js} +1 -1
  201. package/dist/{chunk-mcdqy5gt.js → chunk-t18hedpv.js} +2 -2
  202. package/dist/{chunk-e50068hn.js → chunk-t1zv81zn.js} +2 -2
  203. package/dist/{chunk-wkg0rssg.js → chunk-t36xxpry.js} +1 -1
  204. package/dist/{chunk-1xncv9gb.js → chunk-t3p4dn1p.js} +1 -1
  205. package/dist/{chunk-8q0xpeh4.js → chunk-t4y934a5.js} +1 -1
  206. package/dist/{chunk-vg2j5044.js → chunk-t5e0s8q6.js} +1 -1
  207. package/dist/{chunk-p6kw19sx.js → chunk-t6w8vcvf.js} +8 -8
  208. package/dist/{chunk-zte6pw69.js → chunk-tjn53x34.js} +1 -1
  209. package/dist/{chunk-h51gnkz8.js → chunk-tqrn8kq8.js} +2 -2
  210. package/dist/{chunk-cy1xv5nz.js → chunk-trwye0d6.js} +2 -2
  211. package/dist/{chunk-b3b2tvkg.js → chunk-tsvrzz9w.js} +1 -1
  212. package/dist/{chunk-wpa484a6.js → chunk-tw8f1ew4.js} +2 -2
  213. package/dist/{chunk-rtb0ejf0.js → chunk-v2bbs7s8.js} +1 -1
  214. package/dist/{chunk-v24aqtkt.js → chunk-v2wx2fz4.js} +2 -2
  215. package/dist/{chunk-0gwqtywa.js → chunk-v9kxtms1.js} +3 -3
  216. package/dist/{chunk-5h7xxnr7.js → chunk-vazxcmjt.js} +1 -1
  217. package/dist/{chunk-khgrv6k6.js → chunk-vjsnyvt7.js} +1 -1
  218. package/dist/{chunk-5fg2ns3n.js → chunk-vkay3k3s.js} +1 -1
  219. package/dist/{chunk-agy4dzea.js → chunk-vneyvqxe.js} +1 -1
  220. package/dist/{chunk-1sxpyjph.js → chunk-vq9yw85z.js} +4 -4
  221. package/dist/{chunk-5w279fsn.js → chunk-vqgw4xab.js} +5 -5
  222. package/dist/{chunk-5s6r4g8w.js → chunk-vqkfgdt6.js} +1 -1
  223. package/dist/{chunk-4c2sqyrp.js → chunk-vr1taabg.js} +1 -1
  224. package/dist/{chunk-nw8zvj83.js → chunk-vrreeywg.js} +1 -1
  225. package/dist/{chunk-48yhjpfs.js → chunk-vxazk4y0.js} +2 -2
  226. package/dist/{chunk-hxctrrkh.js → chunk-wrvxzfdb.js} +1 -1
  227. package/dist/{chunk-h0g7qkya.js → chunk-wtf2qczs.js} +1 -1
  228. package/dist/{chunk-xvgp05yg.js → chunk-wvap51y9.js} +1 -1
  229. package/dist/{chunk-gtebjkkz.js → chunk-wzgnj3s7.js} +5 -5
  230. package/dist/{chunk-hxg0pkj9.js → chunk-x0212x2e.js} +1 -1
  231. package/dist/{chunk-qv3b2jvc.js → chunk-x0p3g392.js} +2 -2
  232. package/dist/{chunk-1sqv5axv.js → chunk-x4rwh3pv.js} +1 -1
  233. package/dist/{chunk-8bxfp671.js → chunk-x805mg9x.js} +2 -2
  234. package/dist/{chunk-qky9999p.js → chunk-x8ftt0wm.js} +1 -1
  235. package/dist/{chunk-zdt8xxzy.js → chunk-x9qph1g4.js} +1 -1
  236. package/dist/{chunk-k01gpm23.js → chunk-xg439a2k.js} +1 -1
  237. package/dist/{chunk-2ye8evra.js → chunk-xk5f09gs.js} +1 -1
  238. package/dist/{chunk-ynkpdpn0.js → chunk-xw5992sc.js} +1 -1
  239. package/dist/{chunk-3b6ws9hk.js → chunk-xywttk96.js} +2 -2
  240. package/dist/{chunk-f28xnx55.js → chunk-y18e8eaz.js} +2 -2
  241. package/dist/{chunk-46tg5t7g.js → chunk-y2dn791x.js} +4 -4
  242. package/dist/{chunk-esrypw6g.js → chunk-ya4v4p8k.js} +2 -2
  243. package/dist/{chunk-kz9np152.js → chunk-ybs1waxw.js} +1 -1
  244. package/dist/{chunk-474fgeht.js → chunk-yeht7bxz.js} +2 -2
  245. package/dist/{chunk-4e1eq1t5.js → chunk-z0z9p92d.js} +3 -3
  246. package/dist/{chunk-5myr07fp.js → chunk-z15pn5a5.js} +2 -2
  247. package/dist/{chunk-p5x18ckg.js → chunk-zdp3bb9e.js} +1 -1
  248. package/dist/{chunk-kv1akmf5.js → chunk-zdpm4kf4.js} +2 -2
  249. package/dist/{chunk-ray29hdb.js → chunk-zk8enn91.js} +2 -2
  250. package/dist/{chunk-r7mfpkbb.js → chunk-zmygyj8h.js} +4 -4
  251. package/dist/{chunk-m7n2f6nf.js → chunk-zrgacdwr.js} +1 -1
  252. package/dist/{chunk-cvg5366s.js → chunk-zthc8ajd.js} +1 -1
  253. package/dist/{chunk-3g8p9apn.js → chunk-zyxzn7xf.js} +1 -1
  254. package/dist/components/AppShell.d.ts +16 -4
  255. package/dist/components/Container.d.ts +13 -0
  256. package/dist/components/Grid.d.ts +27 -0
  257. package/dist/components/Heading.d.ts +21 -0
  258. package/dist/components/ScrollArea.d.ts +3 -1
  259. package/dist/components/Stack.d.ts +22 -0
  260. package/dist/components/Table.d.ts +2 -1
  261. package/dist/components/Text.d.ts +25 -0
  262. package/dist/components/WeatherForecast.d.ts +19 -0
  263. package/dist/components/WeatherSummary.d.ts +32 -0
  264. package/dist/components/analytics/AnalyticsLink.d.ts +4 -3
  265. package/dist/components/assistant-ui/elements/AgentCard.js +3 -3
  266. package/dist/components/assistant-ui/elements/AgentHandoff.js +2 -2
  267. package/dist/components/assistant-ui/elements/AgentPlan.js +3 -3
  268. package/dist/components/assistant-ui/elements/AgentStatus.js +2 -2
  269. package/dist/components/assistant-ui/elements/ApprovalCard.js +3 -3
  270. package/dist/components/assistant-ui/elements/ArtifactCard.js +4 -4
  271. package/dist/components/assistant-ui/elements/AudioPlayer.js +3 -3
  272. package/dist/components/assistant-ui/elements/BackgroundInbox.js +4 -4
  273. package/dist/components/assistant-ui/elements/CanvasSplit.d.ts +9 -2
  274. package/dist/components/assistant-ui/elements/CanvasSplit.js +3 -3
  275. package/dist/components/assistant-ui/elements/Chart.js +4 -4
  276. package/dist/components/assistant-ui/elements/ChatPanel.js +6 -6
  277. package/dist/components/assistant-ui/elements/CheckpointHistory.js +3 -3
  278. package/dist/components/assistant-ui/elements/Citation.js +5 -5
  279. package/dist/components/assistant-ui/elements/CodeDiff.js +3 -3
  280. package/dist/components/assistant-ui/elements/CodeRunner.js +3 -3
  281. package/dist/components/assistant-ui/elements/CommandPalette.js +9 -9
  282. package/dist/components/assistant-ui/elements/ComparisonCard.js +2 -2
  283. package/dist/components/assistant-ui/elements/Composer.js +2 -2
  284. package/dist/components/assistant-ui/elements/ComposerActions.js +2 -2
  285. package/dist/components/assistant-ui/elements/ComposerAttachButton.js +3 -3
  286. package/dist/components/assistant-ui/elements/ComposerAttachmentChip.js +4 -4
  287. package/dist/components/assistant-ui/elements/ComposerAttachments.js +6 -6
  288. package/dist/components/assistant-ui/elements/ComposerBar.js +6 -6
  289. package/dist/components/assistant-ui/elements/ComposerCommandItem.js +5 -5
  290. package/dist/components/assistant-ui/elements/ComposerContext.js +5 -5
  291. package/dist/components/assistant-ui/elements/ComposerInput.js +6 -6
  292. package/dist/components/assistant-ui/elements/ComposerMenu.js +2 -2
  293. package/dist/components/assistant-ui/elements/ComposerMenuItem.js +4 -4
  294. package/dist/components/assistant-ui/elements/ComposerModelItem.js +5 -5
  295. package/dist/components/assistant-ui/elements/ComposerModelTrigger.js +3 -3
  296. package/dist/components/assistant-ui/elements/ComposerPersonItem.js +5 -5
  297. package/dist/components/assistant-ui/elements/ComposerSend.js +3 -3
  298. package/dist/components/assistant-ui/elements/ComposerToolbar.js +6 -6
  299. package/dist/components/assistant-ui/elements/ComposerVoice.js +3 -3
  300. package/dist/components/assistant-ui/elements/ComposerVoiceButton.js +3 -3
  301. package/dist/components/assistant-ui/elements/ComputerUse.js +2 -2
  302. package/dist/components/assistant-ui/elements/ConfidenceMarker.js +2 -2
  303. package/dist/components/assistant-ui/elements/ConnectionState.js +3 -3
  304. package/dist/components/assistant-ui/elements/ContextBreakdown.js +2 -2
  305. package/dist/components/assistant-ui/elements/ContextDisplay.js +9 -9
  306. package/dist/components/assistant-ui/elements/ContextDisplayBar.js +6 -6
  307. package/dist/components/assistant-ui/elements/ContextDisplayContent.js +3 -3
  308. package/dist/components/assistant-ui/elements/ContextDisplayRing.js +6 -6
  309. package/dist/components/assistant-ui/elements/ContextDisplayRoot.js +3 -3
  310. package/dist/components/assistant-ui/elements/ContextDisplayText.js +6 -6
  311. package/dist/components/assistant-ui/elements/ContextDisplayTrigger.js +3 -3
  312. package/dist/components/assistant-ui/elements/ConversationMap.js +3 -3
  313. package/dist/components/assistant-ui/elements/ConversationSearch.js +6 -6
  314. package/dist/components/assistant-ui/elements/CostMeter.js +2 -2
  315. package/dist/components/assistant-ui/elements/DataTable.js +7 -7
  316. package/dist/components/assistant-ui/elements/DaySeparator.js +2 -2
  317. package/dist/components/assistant-ui/elements/Diagram.js +3 -3
  318. package/dist/components/assistant-ui/elements/DiffViewer.js +13 -13
  319. package/dist/components/assistant-ui/elements/DiffViewerContent.js +2 -2
  320. package/dist/components/assistant-ui/elements/DiffViewerFile.js +2 -2
  321. package/dist/components/assistant-ui/elements/DiffViewerFileBadge.js +3 -3
  322. package/dist/components/assistant-ui/elements/DiffViewerHeader.js +6 -6
  323. package/dist/components/assistant-ui/elements/DiffViewerLine.js +3 -3
  324. package/dist/components/assistant-ui/elements/DiffViewerSplitLine.js +3 -3
  325. package/dist/components/assistant-ui/elements/DiffViewerStats.js +3 -3
  326. package/dist/components/assistant-ui/elements/DirectiveText.js +3 -3
  327. package/dist/components/assistant-ui/elements/DocumentReference.js +3 -3
  328. package/dist/components/assistant-ui/elements/DotMatrix.js +2 -2
  329. package/dist/components/assistant-ui/elements/DraftRestore.js +3 -3
  330. package/dist/components/assistant-ui/elements/EditMessage.js +8 -8
  331. package/dist/components/assistant-ui/elements/ElicitationForm.js +10 -10
  332. package/dist/components/assistant-ui/elements/EmptyState.js +3 -3
  333. package/dist/components/assistant-ui/elements/EmptyStateComposer.js +6 -6
  334. package/dist/components/assistant-ui/elements/EmptyStateGreeting.js +2 -2
  335. package/dist/components/assistant-ui/elements/EmptyStateSuggestion.js +3 -3
  336. package/dist/components/assistant-ui/elements/EmptyStateSuggestions.js +2 -2
  337. package/dist/components/assistant-ui/elements/ErrorState.js +4 -4
  338. package/dist/components/assistant-ui/elements/EveAskQuestion.js +5 -5
  339. package/dist/components/assistant-ui/elements/FeedbackDialog.js +9 -9
  340. package/dist/components/assistant-ui/elements/File.js +6 -6
  341. package/dist/components/assistant-ui/elements/FileTree.js +3 -3
  342. package/dist/components/assistant-ui/elements/FlowGraph.js +3 -3
  343. package/dist/components/assistant-ui/elements/GenerationLoader.js +3 -3
  344. package/dist/components/assistant-ui/elements/GenerativeUi.js +9 -8
  345. package/dist/components/assistant-ui/elements/GeoMap.d.ts +7 -2
  346. package/dist/components/assistant-ui/elements/GeoMap.js +4 -3
  347. package/dist/components/assistant-ui/elements/GuardrailNotice.js +4 -4
  348. package/dist/components/assistant-ui/elements/Image.js +5 -5
  349. package/dist/components/assistant-ui/elements/ImageGallery.js +5 -5
  350. package/dist/components/assistant-ui/elements/ImageGeneration.js +4 -4
  351. package/dist/components/assistant-ui/elements/InlineCitation.js +2 -2
  352. package/dist/components/assistant-ui/elements/JobProgress.js +4 -4
  353. package/dist/components/assistant-ui/elements/LauncherBubble.js +4 -4
  354. package/dist/components/assistant-ui/elements/LinkPreview.js +3 -3
  355. package/dist/components/assistant-ui/elements/MapAnswer.js +3 -3
  356. package/dist/components/assistant-ui/elements/MarkdownText.js +5 -5
  357. package/dist/components/assistant-ui/elements/MathBlock.js +2 -2
  358. package/dist/components/assistant-ui/elements/McpServerPanel.js +5 -5
  359. package/dist/components/assistant-ui/elements/MemoryChips.js +3 -3
  360. package/dist/components/assistant-ui/elements/MermaidDiagram.js +6 -6
  361. package/dist/components/assistant-ui/elements/MermaidZoom.js +4 -4
  362. package/dist/components/assistant-ui/elements/MessageActions.js +4 -4
  363. package/dist/components/assistant-ui/elements/MessageAttachments.js +3 -3
  364. package/dist/components/assistant-ui/elements/MessageBranches.js +3 -3
  365. package/dist/components/assistant-ui/elements/MessagePair.js +3 -3
  366. package/dist/components/assistant-ui/elements/MessageQueue.js +3 -3
  367. package/dist/components/assistant-ui/elements/MessageTiming.js +2 -2
  368. package/dist/components/assistant-ui/elements/MobileComposer.js +6 -6
  369. package/dist/components/assistant-ui/elements/ModelPicker.js +8 -8
  370. package/dist/components/assistant-ui/elements/ModelSelector.js +17 -17
  371. package/dist/components/assistant-ui/elements/ModelSelectorContent.js +14 -14
  372. package/dist/components/assistant-ui/elements/ModelSelectorEmpty.js +8 -8
  373. package/dist/components/assistant-ui/elements/ModelSelectorFocusAnchor.js +8 -8
  374. package/dist/components/assistant-ui/elements/ModelSelectorGroup.js +8 -8
  375. package/dist/components/assistant-ui/elements/ModelSelectorItem.js +8 -8
  376. package/dist/components/assistant-ui/elements/ModelSelectorList.js +10 -10
  377. package/dist/components/assistant-ui/elements/ModelSelectorRoot.js +3 -3
  378. package/dist/components/assistant-ui/elements/ModelSelectorSearch.js +8 -8
  379. package/dist/components/assistant-ui/elements/ModelSelectorSeparator.js +8 -8
  380. package/dist/components/assistant-ui/elements/ModelSelectorTrigger.js +3 -3
  381. package/dist/components/assistant-ui/elements/NumberRoll.js +2 -2
  382. package/dist/components/assistant-ui/elements/NumberTicker.js +2 -2
  383. package/dist/components/assistant-ui/elements/Onboarding.js +3 -3
  384. package/dist/components/assistant-ui/elements/OptionList.js +6 -6
  385. package/dist/components/assistant-ui/elements/OptionText.js +2 -2
  386. package/dist/components/assistant-ui/elements/PermissionGrant.js +3 -3
  387. package/dist/components/assistant-ui/elements/PromptLibrary.js +6 -6
  388. package/dist/components/assistant-ui/elements/QuestionFlow.js +7 -7
  389. package/dist/components/assistant-ui/elements/QuotaBanner.js +3 -3
  390. package/dist/components/assistant-ui/elements/QuoteReply.js +3 -3
  391. package/dist/components/assistant-ui/elements/ReadAloud.js +4 -4
  392. package/dist/components/assistant-ui/elements/ReasoningContent.js +3 -3
  393. package/dist/components/assistant-ui/elements/ReasoningEffort.js +4 -4
  394. package/dist/components/assistant-ui/elements/ReasoningFade.js +2 -2
  395. package/dist/components/assistant-ui/elements/ReasoningPanel.js +4 -4
  396. package/dist/components/assistant-ui/elements/ReasoningRoot.js +2 -2
  397. package/dist/components/assistant-ui/elements/ReasoningText.js +2 -2
  398. package/dist/components/assistant-ui/elements/ReasoningTrigger.js +2 -2
  399. package/dist/components/assistant-ui/elements/RecommendationCard.d.ts +15 -7
  400. package/dist/components/assistant-ui/elements/RecommendationCard.js +3 -3
  401. package/dist/components/assistant-ui/elements/RegenerateMenu.js +4 -4
  402. package/dist/components/assistant-ui/elements/ResearchReport.js +2 -2
  403. package/dist/components/assistant-ui/elements/RetrievalChunks.js +3 -3
  404. package/dist/components/assistant-ui/elements/ReviewableDiff.js +3 -3
  405. package/dist/components/assistant-ui/elements/RunActivity.js +2 -2
  406. package/dist/components/assistant-ui/elements/ScheduleCard.js +3 -3
  407. package/dist/components/assistant-ui/elements/ScoreBreakdown.js +3 -3
  408. package/dist/components/assistant-ui/elements/ScrollAnchor.js +2 -2
  409. package/dist/components/assistant-ui/elements/SettingsPanel.js +6 -6
  410. package/dist/components/assistant-ui/elements/SharedConversation.js +3 -3
  411. package/dist/components/assistant-ui/elements/ShikiHighlighter.js +2 -2
  412. package/dist/components/assistant-ui/elements/ShimmerLabel.js +2 -2
  413. package/dist/components/assistant-ui/elements/Sources.js +3 -3
  414. package/dist/components/assistant-ui/elements/SpeakerIdentity.js +2 -2
  415. package/dist/components/assistant-ui/elements/SpecSheet.js +2 -2
  416. package/dist/components/assistant-ui/elements/StoppedRun.js +3 -3
  417. package/dist/components/assistant-ui/elements/StreamingText.js +2 -2
  418. package/dist/components/assistant-ui/elements/SubagentList.js +3 -3
  419. package/dist/components/assistant-ui/elements/Suggestions.js +3 -3
  420. package/dist/components/assistant-ui/elements/SwapLabel.js +2 -2
  421. package/dist/components/assistant-ui/elements/TaskCard.js +4 -4
  422. package/dist/components/assistant-ui/elements/TaskStateIcon.js +2 -2
  423. package/dist/components/assistant-ui/elements/TerminalBlock.js +3 -3
  424. package/dist/components/assistant-ui/elements/ThinkingIndicator.js +3 -3
  425. package/dist/components/assistant-ui/elements/ThreadList.js +3 -3
  426. package/dist/components/assistant-ui/elements/ThreadSearch.js +6 -6
  427. package/dist/components/assistant-ui/elements/Timeline.d.ts +20 -11
  428. package/dist/components/assistant-ui/elements/Timeline.js +2 -2
  429. package/dist/components/assistant-ui/elements/TodoList.js +3 -3
  430. package/dist/components/assistant-ui/elements/ToolCall.js +4 -4
  431. package/dist/components/assistant-ui/elements/ToolError.js +3 -3
  432. package/dist/components/assistant-ui/elements/ToolGroup.js +3 -3
  433. package/dist/components/assistant-ui/elements/ToolTimeline.js +4 -4
  434. package/dist/components/assistant-ui/elements/TooltipIconButton.js +3 -3
  435. package/dist/components/assistant-ui/elements/TraceWaterfall.js +2 -2
  436. package/dist/components/assistant-ui/elements/TypingIndicator.js +2 -2
  437. package/dist/components/assistant-ui/elements/VideoPlayer.js +2 -2
  438. package/dist/components/assistant-ui/elements/VoiceConversation.js +3 -3
  439. package/dist/components/assistant-ui/elements/VoiceOrb.js +2 -2
  440. package/dist/components/assistant-ui/elements/WebPreview.js +4 -4
  441. package/dist/components/assistant-ui/elements/WebSearch.js +3 -3
  442. package/dist/components/assistant-ui/eveAskQuestionToolkit.js +6 -6
  443. package/dist/components/assistant-ui/index.js +206 -205
  444. package/dist/components/assistant-ui/native/AgentStatus.js +3 -3
  445. package/dist/components/assistant-ui/native/AssistantModal.js +26 -26
  446. package/dist/components/assistant-ui/native/AssistantSidebar.js +25 -25
  447. package/dist/components/assistant-ui/native/AttachmentPreview.js +6 -6
  448. package/dist/components/assistant-ui/native/ComposerTriggerPopover.js +2 -2
  449. package/dist/components/assistant-ui/native/ContextDisplay.js +11 -11
  450. package/dist/components/assistant-ui/native/ContextDisplayBar.js +8 -8
  451. package/dist/components/assistant-ui/native/ContextDisplayRing.js +8 -8
  452. package/dist/components/assistant-ui/native/ContextDisplayRoot.js +5 -5
  453. package/dist/components/assistant-ui/native/ContextDisplayRuntimeRoot.js +4 -4
  454. package/dist/components/assistant-ui/native/ContextDisplayText.js +8 -8
  455. package/dist/components/assistant-ui/native/ConversationMapAui.js +4 -4
  456. package/dist/components/assistant-ui/native/DirectiveText.js +4 -4
  457. package/dist/components/assistant-ui/native/McpConfigDialog.js +9 -9
  458. package/dist/components/assistant-ui/native/MermaidDiagram.js +7 -7
  459. package/dist/components/assistant-ui/native/MessageTiming.js +3 -3
  460. package/dist/components/assistant-ui/native/ModelSelector.js +19 -19
  461. package/dist/components/assistant-ui/native/Reasoning.js +11 -11
  462. package/dist/components/assistant-ui/native/Sources.js +4 -4
  463. package/dist/components/assistant-ui/native/SyntaxHighlighter.js +3 -3
  464. package/dist/components/assistant-ui/native/TaskCard.js +10 -10
  465. package/dist/components/assistant-ui/native/TaskGroup.js +11 -11
  466. package/dist/components/assistant-ui/native/TaskTray.js +5 -5
  467. package/dist/components/assistant-ui/native/Thread.js +23 -23
  468. package/dist/components/assistant-ui/native/ThreadList.js +5 -5
  469. package/dist/components/assistant-ui/native/ThreadListSidebar.js +9 -9
  470. package/dist/components/assistant-ui/native/ToolFallbackRoot.js +4 -4
  471. package/dist/components/assistant-ui/native/ToolGroup.js +2 -2
  472. package/dist/components/assistant-ui/native/VoiceConnectButton.js +3 -3
  473. package/dist/components/assistant-ui/native/VoiceControl.js +8 -8
  474. package/dist/components/assistant-ui/native/VoiceConversation.js +4 -4
  475. package/dist/components/assistant-ui/native/VoiceDisconnectButton.js +4 -4
  476. package/dist/components/assistant-ui/native/VoiceMuteButton.js +4 -4
  477. package/dist/components/assistant-ui/native/VoiceOrb.js +3 -3
  478. package/dist/components/assistant-ui/native/VoiceStatusDot.js +2 -2
  479. package/dist/components/assistant-ui/native/index.js +86 -86
  480. package/dist/components/calendar/index.js +4 -4
  481. package/dist/components/carousel/index.js +3 -3
  482. package/dist/components/chart/index.js +2 -2
  483. package/dist/components/color-picker/index.js +1 -1
  484. package/dist/components/command/index.js +7 -7
  485. package/dist/components/data-grid/index.js +16 -14
  486. package/dist/components/editor/index.js +3 -3
  487. package/dist/components/event-calendar/index.js +8 -8
  488. package/dist/components/file-upload/index.js +2 -2
  489. package/dist/components/gantt/index.js +6 -6
  490. package/dist/components/image-crop/index.js +1 -1
  491. package/dist/components/input-otp/EmailCodeAuthForm.d.ts +21 -0
  492. package/dist/components/input-otp/index.d.ts +2 -0
  493. package/dist/components/input-otp/index.js +264 -1
  494. package/dist/components/json-render/catalog.d.ts +1 -1
  495. package/dist/components/json-render/index.js +36 -35
  496. package/dist/components/message-scroller/index.js +2 -2
  497. package/dist/components/persian-calendar/index.js +3 -3
  498. package/dist/components/questionnaire/index.js +2 -2
  499. package/dist/components/resizable/index.js +3 -3
  500. package/dist/components/sonner/index.js +2 -2
  501. package/dist/components/tree/index.js +2 -2
  502. package/dist/components/virtual-data-grid/index.js +7 -7
  503. package/dist/components/virtual-table/index.js +3 -3
  504. package/dist/hooks/useLinkAnalyticsCallback.d.ts +10 -0
  505. package/dist/index.d.ts +17 -1
  506. package/dist/index.js +75 -57
  507. package/dist/layout/constants.d.ts +14 -0
  508. package/dist/layout/responsiveClassNames.d.ts +3 -0
  509. package/dist/layout/types.d.ts +28 -0
  510. package/dist/prototype.js +1 -1
  511. package/dist/theme.css +5 -0
  512. package/dist/typography/types.d.ts +2 -0
  513. package/llms/components/actions/ButtonLink.md +22 -0
  514. package/llms/components/assistant-ui/elements/conversations/CanvasSplit.md +38 -0
  515. package/llms/components/assistant-ui/elements/data-visualization/GeoMap.md +57 -0
  516. package/llms/components/assistant-ui/elements/data-visualization/RecommendationCard.md +41 -0
  517. package/llms/components/assistant-ui/elements/data-visualization/Timeline.md +76 -0
  518. package/llms/components/data-display/Heading.md +78 -0
  519. package/llms/components/data-display/Text.md +94 -0
  520. package/llms/components/data-display/WeatherForecast.md +76 -0
  521. package/llms/components/data-display/WeatherSummary.md +103 -0
  522. package/llms/components/forms/EmailCodeAuthForm.md +94 -0
  523. package/llms/components/layout/AppShell.md +35 -1
  524. package/llms/components/layout/Container.md +97 -0
  525. package/llms/components/layout/Grid.md +133 -0
  526. package/llms/components/layout/Stack.md +170 -0
  527. package/llms/setup.md +64 -2
  528. package/llms.txt +10 -2
  529. package/package.json +1 -1
  530. package/templates/prototype/src/components/ScenarioContent.tsx +3 -2
  531. package/templates/prototype/src/prototypes/dashboard/components/Dashboard.tsx +3 -2
  532. package/dist/chunk-4710gn6d.js +0 -15
  533. package/dist/chunk-dg14mg3y.js +0 -56
@@ -0,0 +1,133 @@
1
+ # Grid
2
+
3
+ Grid lays out equal columns without consumer classes. `columns` is 1–6 or 12, or a viewport breakpoint map such as `{ base: 1, md: 2, xl: 4 }`. `minColumnWidth` (xs 8rem, sm 12rem, md 16rem, lg 22rem) instead fits as many columns as the grid's own width allows, which suits card grids inside panes of any size. `gap` defaults to the density-aware `panel` token. GridItem `span` (1–6 or `full`, optionally per breakpoint) widens a cell; `full` always spans every column. Both accept `render` for semantic elements such as `<ul />` and `<li />`.
4
+
5
+ Story: @alexgorbatchev/shadcn/components/layout/Grid
6
+ Source: src/components/stories/layout/Grid.stories.tsx
7
+
8
+ [Full source and local helpers](https://github.com/alexgorbatchev/shadcn/blob/main/src/components/stories/layout/Grid.stories.tsx)
9
+
10
+ ## Public imports
11
+
12
+ ```tsx
13
+ import { Card, CardContent, CardHeader, CardTitle, Field, FieldLabel, Grid, GridItem, Input, Textarea } from "@alexgorbatchev/shadcn";
14
+ ```
15
+
16
+ ## Default component
17
+
18
+ ```tsx
19
+ Grid
20
+ ```
21
+
22
+ ## Story controls
23
+
24
+ ```tsx
25
+ {
26
+ columns: { control: "select", options: [1, 2, 3, 4, 5, 6, 12] },
27
+ gap: { control: "select", options: ["none", "control", "panel-sm", "panel", "field", "section"] },
28
+ align: { control: "select", options: ["start", "center", "end", "stretch"] },
29
+ }
30
+ ```
31
+
32
+ ## Default args
33
+
34
+ ```tsx
35
+ { columns: 2 }
36
+ ```
37
+
38
+ ## Default render
39
+
40
+ ```tsx
41
+ (args) => (<Grid {...args} render={<ul aria-label="Venues"/>}>
42
+ {["Harbor walk", "Night market", "Rooftop bar", "Botanical garden"].map((venue) => (<GridItem key={venue} render={<li />}>
43
+ <Card>
44
+ <CardHeader>
45
+ <CardTitle>{venue}</CardTitle>
46
+ </CardHeader>
47
+ <CardContent>Open until late.</CardContent>
48
+ </Card>
49
+ </GridItem>))}
50
+ </Grid>)
51
+ ```
52
+
53
+ ## Examples
54
+
55
+ Storybook CSF excerpts. Default args and render apply unless overridden. Local helpers, fixtures, decorators, and providers may be required; these are reference excerpts, not standalone consumer modules. Interaction tests are omitted.
56
+
57
+ ### Columns
58
+
59
+ ```tsx
60
+ {}
61
+ ```
62
+
63
+ ### ResponsiveColumns
64
+
65
+ ```tsx
66
+ {
67
+ args: { columns: { base: 1, md: 2 } }
68
+ }
69
+ ```
70
+
71
+ ### IntrinsicColumns
72
+
73
+ ```tsx
74
+ {
75
+ args: { columns: undefined, minColumnWidth: "sm" },
76
+ decorators: [
77
+ (Story) => (<div className="w-[440px]">
78
+ <Story />
79
+ </div>),
80
+ ]
81
+ }
82
+ ```
83
+
84
+ ### IntrinsicColumnsInNarrowPane
85
+
86
+ ```tsx
87
+ {
88
+ args: { columns: undefined, minColumnWidth: "sm" },
89
+ decorators: [
90
+ (Story) => (<div className="w-[160px]">
91
+ <Story />
92
+ </div>),
93
+ ]
94
+ }
95
+ ```
96
+
97
+ ### TwoColumnForm
98
+
99
+ ```tsx
100
+ {
101
+ args: { columns: 2, gap: "field" },
102
+ render: (args) => (<Grid {...args} render={<form aria-label="Contact"/>}>
103
+ <Field>
104
+ <FieldLabel htmlFor="grid-first-name">First name</FieldLabel>
105
+ <Input id="grid-first-name"/>
106
+ </Field>
107
+ <Field>
108
+ <FieldLabel htmlFor="grid-last-name">Last name</FieldLabel>
109
+ <Input id="grid-last-name"/>
110
+ </Field>
111
+ <GridItem span="full">
112
+ <Field>
113
+ <FieldLabel htmlFor="grid-notes">Notes</FieldLabel>
114
+ <Textarea id="grid-notes"/>
115
+ </Field>
116
+ </GridItem>
117
+ </Grid>)
118
+ }
119
+ ```
120
+
121
+ ### ResponsiveSpan
122
+
123
+ ```tsx
124
+ {
125
+ args: { columns: 4, gap: "control" },
126
+ render: (args) => (<Grid {...args}>
127
+ <GridItem span={{ base: 2, md: 4 }} render={<section aria-label="Wide"/>}>
128
+ Wide
129
+ </GridItem>
130
+ <GridItem render={<section aria-label="Narrow"/>}>Narrow</GridItem>
131
+ </Grid>)
132
+ }
133
+ ```
@@ -0,0 +1,170 @@
1
+ # Stack
2
+
3
+ Stack arranges children along one axis without consumer classes. `gap` and `padding` accept the density-aware tokens none, control, panel-sm, panel, field, and section. `direction` is vertical or horizontal, or a breakpoint map such as `{ base: "vertical", md: "horizontal" }`. `align` and `justify` position children; `wrap` lets a row wrap. `grow` takes the remaining space of a parent Stack and lets content shrink, and `height` is auto, full (the parent's height), viewport, or min-viewport. Pass `render={<section />}`, `<ul />`, `<li />`, `<form />`, or `<main />` for semantic elements; props, handlers, and refs merge.
4
+
5
+ Story: @alexgorbatchev/shadcn/components/layout/Stack
6
+ Source: src/components/stories/layout/Stack.stories.tsx
7
+
8
+ [Full source and local helpers](https://github.com/alexgorbatchev/shadcn/blob/main/src/components/stories/layout/Stack.stories.tsx)
9
+
10
+ ## Public imports
11
+
12
+ ```tsx
13
+ import { Badge, Button, Heading, ScrollArea, Stack, Text } from "@alexgorbatchev/shadcn";
14
+ ```
15
+
16
+ ## Default component
17
+
18
+ ```tsx
19
+ Stack
20
+ ```
21
+
22
+ ## Story controls
23
+
24
+ ```tsx
25
+ {
26
+ direction: { control: "inline-radio", options: ["vertical", "horizontal"] },
27
+ gap: { control: "select", options: ["none", "control", "panel-sm", "panel", "field", "section"] },
28
+ padding: { control: "select", options: ["none", "control", "panel-sm", "panel", "field", "section"] },
29
+ align: { control: "select", options: ["start", "center", "end", "stretch", "baseline"] },
30
+ justify: { control: "select", options: ["start", "center", "end", "between"] },
31
+ height: { control: "select", options: ["auto", "full", "viewport", "min-viewport"] },
32
+ }
33
+ ```
34
+
35
+ ## Default args
36
+
37
+ ```tsx
38
+ { gap: "panel" }
39
+ ```
40
+
41
+ ## Default render
42
+
43
+ ```tsx
44
+ (args) => (<Stack {...args} render={<section aria-label="Profile"/>}>
45
+ <Heading level={2}>Profile</Heading>
46
+ <Text tone="muted">Shown to everyone in the workspace.</Text>
47
+ <Text>Members see your name and avatar.</Text>
48
+ </Stack>)
49
+ ```
50
+
51
+ ## Examples
52
+
53
+ Storybook CSF excerpts. Default args and render apply unless overridden. Local helpers, fixtures, decorators, and providers may be required; these are reference excerpts, not standalone consumer modules. Interaction tests are omitted.
54
+
55
+ ### Vertical
56
+
57
+ ```tsx
58
+ {}
59
+ ```
60
+
61
+ ### CompactDensity
62
+
63
+ ```tsx
64
+ {
65
+ args: { density: "compact" }
66
+ }
67
+ ```
68
+
69
+ ### HeaderWithTrailingActions
70
+
71
+ ```tsx
72
+ {
73
+ args: { direction: "horizontal", justify: "between", align: "center", gap: "control", wrap: true },
74
+ render: (args) => (<Stack {...args} render={<section aria-label="Section header"/>}>
75
+ <Heading level={2}>Members</Heading>
76
+ <Stack direction="horizontal" gap="control">
77
+ <Button variant="outline">Export</Button>
78
+ <Button>Invite</Button>
79
+ </Stack>
80
+ </Stack>)
81
+ }
82
+ ```
83
+
84
+ ### Wrapping
85
+
86
+ ```tsx
87
+ {
88
+ args: { direction: "horizontal", gap: "control", wrap: true },
89
+ decorators: [
90
+ (Story) => (<div className="w-48">
91
+ <Story />
92
+ </div>),
93
+ ],
94
+ render: (args) => (<Stack {...args} render={<ul aria-label="Interests"/>}>
95
+ {["Museums", "Live music", "Hiking", "Street food", "Cinema"].map((interest) => (<Stack key={interest} render={<li />}>
96
+ <Badge variant="secondary">{interest}</Badge>
97
+ </Stack>))}
98
+ </Stack>)
99
+ }
100
+ ```
101
+
102
+ ### ResponsiveDirection
103
+
104
+ ```tsx
105
+ {
106
+ args: { direction: { base: "vertical", md: "horizontal" } },
107
+ render: (args) => (<Stack {...args}>
108
+ <Text>First</Text>
109
+ <Text>Second</Text>
110
+ </Stack>)
111
+ }
112
+ ```
113
+
114
+ ### FullHeightRegion
115
+
116
+ ```tsx
117
+ {
118
+ args: { height: "full", gap: "none" },
119
+ decorators: [
120
+ (Story) => (<div className="h-60 w-72 border border-border" data-scroll="none">
121
+ <Story />
122
+ </div>),
123
+ ],
124
+ render: (args) => (<Stack {...args}>
125
+ <Stack padding="panel-sm">
126
+ <Heading level={2}>Activity</Heading>
127
+ </Stack>
128
+ <ScrollArea grow aria-label="Activity log">
129
+ <Stack padding="panel-sm" gap="control" render={<ol />}>
130
+ {Array.from({ length: 30 }, (_, index) => (<Text key={index} render={<li />}>
131
+ Update {index + 1}
132
+ </Text>))}
133
+ </Stack>
134
+ </ScrollArea>
135
+ <Stack padding="panel-sm" direction="horizontal" justify="end">
136
+ <Button>Refresh</Button>
137
+ </Stack>
138
+ </Stack>)
139
+ }
140
+ ```
141
+
142
+ ### GrowingPane
143
+
144
+ ```tsx
145
+ {
146
+ args: { direction: "horizontal", gap: "panel", height: "full" },
147
+ decorators: [
148
+ (Story) => (<div className="h-24 w-96">
149
+ <Story />
150
+ </div>),
151
+ ],
152
+ render: (args) => (<Stack {...args}>
153
+ <Text>Fixed</Text>
154
+ <Stack grow padding="control" render={<section aria-label="Remaining space"/>}>
155
+ <Text truncate>A very long description that must shrink to the remaining width instead of overflowing</Text>
156
+ </Stack>
157
+ </Stack>)
158
+ }
159
+ ```
160
+
161
+ ### FormElement
162
+
163
+ ```tsx
164
+ {
165
+ render: (args) => (<Stack {...args} render={<form aria-label="Rename" onSubmit={submitForm}/>}>
166
+ <Text>Rename the workspace.</Text>
167
+ <Button type="submit">Save</Button>
168
+ </Stack>)
169
+ }
170
+ ```
package/llms/setup.md CHANGED
@@ -261,8 +261,10 @@ The npm package includes the same index at `llms.txt` in its root and its linked
261
261
  | Area | Components |
262
262
  | :----------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
263
263
  | Actions and status | Alert, Badge, Button, ButtonGroup, ButtonLink, Sonner, Toast, Toggle, ToggleGroup |
264
- | Forms and selections | Calendar, Checkbox, Combobox, Command, Field, Input, InputGroup, InputOTP, Label, NativeSelect, Questionnaire, RadioGroup, Select, Slider, Switch, Textarea |
264
+ | Forms and selections | AuthForm, Calendar, Checkbox, Combobox, Command, EmailCodeAuthForm, Field, Input, InputGroup, InputOTP, Label, NativeSelect, Questionnaire, RadioGroup, Select, Slider, Switch, Textarea |
265
265
  | Structure and navigation | Accordion, AspectRatio, Avatar, Breadcrumb, Card, Carousel, Chart, Collapsible, Empty, Item, Kbd, Menubar, NavigationMenu, Pagination, Resizable, ScrollArea, Separator, Sidebar, Table, Tabs |
266
+ | Layout and typography | AppShell, Container, Grid, GridItem, Heading, PageHeader, Stack, Text |
267
+ | Data display | WeatherForecast, WeatherSummary |
266
268
  | Overlays | AlertDialog, ContextMenu, Dialog, Drawer, DropdownMenu, HoverCard, Popover, Sheet, Tooltip |
267
269
  | Loading | Progress, Skeleton, Spinner |
268
270
  | Conversations | Attachment, Bubble, Marker, Message, MessageScroller |
@@ -316,7 +318,7 @@ Compose data tables with the exported Table parts and `@tanstack/react-table@9.2
316
318
 
317
319
  Compose `Sidebar` and `SidebarInset` inside `SidebarProvider`. Use Header, Content, Group, Menu, and Footer parts to organize navigation, and `SidebarTrigger` or `SidebarRail` to toggle it. `useSidebar` exposes desktop and mobile state. Desktop collapse supports `offcanvas`, `icon`, and `none`; the mobile panel uses a titled Sheet with Escape dismissal and focus restoration. Menu buttons accept native custom elements through `render`; use anchors for navigation and keep their accessible text when collapsed. Cmd/Ctrl+B toggles the sidebar while focus is inside its provider. Set `open`/`onOpenChange` for controlled desktop state, or observe changes without supplying `open`. Persist changes in your application through `onOpenChange`, and restore them through `defaultOpen` or controlled `open`. Set widths through the typed `SidebarStyle` variables `--sidebar-width`, `--sidebar-width-mobile`, and `--sidebar-width-icon`. Sidebar colors follow the palette of the subtree they render in; set `--sidebar`, `--sidebar-foreground`, `--sidebar-primary`, `--sidebar-primary-foreground`, `--sidebar-accent`, `--sidebar-accent-foreground`, `--sidebar-border`, or `--sidebar-ring` to give the sidebar its own colors.
318
320
 
319
- `InputOTP` uses one real input for typing, selection, paste, and autofill. Compose its visual slots inside `InputOTPGroup`; supply `maxLength` and an accessible label. Use `defaultValue` to initialize an uncontrolled code, or `value` and `onChange` to control it. Changing `defaultValue` after mounting preserves the current input. Import the OTP parts together from `@alexgorbatchev/shadcn/input-otp`; its bundled implementation owns their context. `Calendar` supports single, multiple, and range selection. `ResizablePanelGroup` sizes use explicit percentage strings such as `defaultSize="50%"`; numeric sizes are pixels. `CommandDialog` supplies the modal title and description; set `Command`'s `label` to name its search input.
321
+ `InputOTP` uses one real input for typing, selection, paste, and autofill. Compose its visual slots inside `InputOTPGroup`; supply `maxLength` and an accessible label. Use `defaultValue` to initialize an uncontrolled code, or `value` and `onChange` to control it. Changing `defaultValue` after mounting preserves the current input. Import the OTP parts together from `@alexgorbatchev/shadcn/input-otp`; its bundled implementation owns their context. `EmailCodeAuthForm` from the same entry point is passwordless sign-in in two steps: the email step calls `onRequestCode(email)`, and the code step collects a numeric code of `codeLength` digits (default 6) and calls `onVerifyCode(email, code)` when the code is complete or submitted. It offers Resend code and Use a different email, shows pending state while a handler runs, and shows a rejected handler's message without leaving the current step. `Calendar` supports single, multiple, and range selection. `ResizablePanelGroup` sizes use explicit percentage strings such as `defaultSize="50%"`; numeric sizes are pixels. `CommandDialog` supplies the modal title and description; set `Command`'s `label` to name its search input.
320
322
 
321
323
  Use the Theme toolbar to select light, dark, or system palettes; Docs and example frames follow that selection. Local and routed previews can run on separate ports with independent dependency caches. Reload an open preview after restarting it on a different port.
322
324
 
@@ -358,6 +360,66 @@ Bun 1.4.0's CSS bundler lowers logical positioning to language-based selectors.
358
360
 
359
361
  Compose `QuestionnaireItem`, `QuestionnaireTitle`, and answer controls inside `Questionnaire`, which renders a native form. `QuestionnaireChoice` supplies native radios or, with `multiple`, checkboxes; label every `QuestionnaireInput`. Read answers with `FormData.get()` or `getAll()`. `QuestionnaireProgress` and the Previous, Skip, Next, and Submit parts follow the active item. Optional steps need an answer or an explicit skip; observe `onStatusChange` to distinguish skipped answers. Letter and number shortcuts select answers without advancing. Use `item`/`onItemChange` for controlled navigation and `invalid` for external validation. Draft defaults and native reset restore initial answers and navigation. These parts accept density overrides and native render/ref props where supported. See the [upstream composition guide](https://ui.shadcn.com/docs/components/base/questionnaire).
360
362
 
363
+ # Page layout
364
+
365
+ Compose screens from layout components instead of utility classes. Each one accepts `render` for a semantic element, such as `render={<section aria-label="Members" />}`, `<ul />`, `<li />`, `<form />`, or `<main />`; props, handlers, and refs merge with the rendered element.
366
+
367
+ - `Stack` arranges children along one axis. `direction` is `vertical` (default) or `horizontal`, or a breakpoint map such as `{ base: "vertical", md: "horizontal" }`. `gap` and `padding` take the density-aware spacing tokens `none`, `control`, `panel-sm`, `panel`, `field`, and `section`. `align`, `justify`, and `wrap` position children. `grow` takes the remaining space of a parent `Stack` and lets its content shrink; `height` is `auto`, `full`, `viewport`, or `min-viewport`.
368
+ - `Grid` lays out equal columns: `columns` is 1–6 or 12, or a breakpoint map such as `{ base: 1, md: 2, xl: 4 }`. `minColumnWidth` (`xs`, `sm`, `md`, `lg`) instead fits as many columns as the grid's own width allows, so card grids adapt inside narrow panes. `GridItem span` widens a cell; `span="full"` always spans every column.
369
+ - `Container` centers a column with a maximum `width` (`xs` 20rem, `sm` 24rem, `md` 42rem, `lg` 64rem, `xl` 80rem, or `full`).
370
+ - `Text` renders body copy as a paragraph with semantic `size`, `tone`, `weight`, `align`, `truncate`, and `tabular` options; use `render={<span />}` for inline text. `Heading` renders `h1`–`h6` from its required `level`, with a `size` chosen independently of the outline level.
371
+ - `ScrollArea grow` scrolls inside the remaining space of a parent `Stack`.
372
+
373
+ A header row with trailing actions, a two-column form, and a centered sign-in page:
374
+
375
+ ```tsx
376
+ import {
377
+ AuthForm,
378
+ Button,
379
+ Container,
380
+ Field,
381
+ FieldLabel,
382
+ Grid,
383
+ GridItem,
384
+ Heading,
385
+ Input,
386
+ Stack,
387
+ Textarea,
388
+ } from "@alexgorbatchev/shadcn";
389
+
390
+ <Stack direction="horizontal" justify="between" align="center" gap="control" wrap render={<header />}>
391
+ <Heading level={2}>Members</Heading>
392
+ <Button>Invite</Button>
393
+ </Stack>;
394
+
395
+ <Grid columns={{ base: 1, md: 2 }} gap="field" render={<form onSubmit={save} />}>
396
+ <Field>
397
+ <FieldLabel htmlFor="first-name">First name</FieldLabel>
398
+ <Input id="first-name" />
399
+ </Field>
400
+ <Field>
401
+ <FieldLabel htmlFor="last-name">Last name</FieldLabel>
402
+ <Input id="last-name" />
403
+ </Field>
404
+ <GridItem span="full">
405
+ <Field>
406
+ <FieldLabel htmlFor="notes">Notes</FieldLabel>
407
+ <Textarea id="notes" />
408
+ </Field>
409
+ </GridItem>
410
+ </Grid>;
411
+
412
+ <Stack height="min-viewport" align="center" justify="center" padding="panel" render={<main />}>
413
+ <Container width="sm">
414
+ <AuthForm onSubmit={signIn} />
415
+ </Container>
416
+ </Stack>;
417
+ ```
418
+
419
+ `AppShell` navigation items take either `href` or `render`, a router link element such as `{ id: "plans", label: "Plans", render: <Link to="/plans" />, active: true }`; the router element owns its destination and client-side navigation while the item keeps its active state, `aria-current="page"`, and activation analytics. `content="scroll"` (default) places children in a padded scrolling column; `content="fill"` gives them the remaining area without padding or scrolling, for full-height screens that manage their own scroll regions.
420
+
421
+ `WeatherSummary` shows one day's forecast: a `label`, a `condition` from `clear`, `partly-cloudy`, `cloudy`, `fog`, `drizzle`, `rain`, `snow`, or `thunderstorm` with its icon, `high` and `low` temperatures in `unit` (`celsius` by default), and an optional `precipitationProbability` from 0 to 100. Values are rounded and formatted with `Intl` for `locale`; `conditionLabel` localizes the condition name. `WeatherForecast` renders several days, each with an `id`, as a list named by `label`: `variant="strip"` (default) wraps compact days side by side, and `variant="list"` shows one detailed day per row.
422
+
361
423
  # Inline editing and ratings
362
424
 
363
425
  `InlineEdit` mounts an edit session with a controlled `value`, `onValueChange`, `onCommit`, and `onCancel`. Mount it in place of the displayed label. Its input focuses and selects its text by default; `shouldSelectOnMount={false}` preserves the initial caret. Enter or blur commits once, Escape cancels without committing, and asynchronous saves disable the input until completion. Set `hasChanges={false}` to cancel an unchanged edit before calling `onCommit`; the caller owns normalization and comparison. It defaults to true, so creation sessions can commit their initial value. Rejected saves display a generic error and allow retry; `renderError` can map the unknown failure to application-authored guidance.
package/llms.txt CHANGED
@@ -143,11 +143,11 @@ Generated from the public package exports and Storybook sources.
143
143
  - [NumberRollDigit](./llms/components/assistant-ui/elements/data-visualization/NumberRollDigit.md)
144
144
  - [NumberRollPart](./llms/components/assistant-ui/elements/data-visualization/NumberRollPart.md)
145
145
  - [NumberTicker](./llms/components/assistant-ui/elements/data-visualization/NumberTicker.md)
146
- - [RecommendationCard](./llms/components/assistant-ui/elements/data-visualization/RecommendationCard.md)
146
+ - [RecommendationCard](./llms/components/assistant-ui/elements/data-visualization/RecommendationCard.md): RecommendationCard presents one suggestion. Each action renders only when its handler is supplied: `onReject` (`rejectLabel`, default "Not this"), `onAlternatives` (`alternativesLabel`, default "Alternatives"), and `onAccept` (`acceptLabel`, default "Accept"). The `accepted` and `rejected` states replace the actions with `acceptedLabel` or `rejectedLabel` and keep keyboard focus on the card. Omit `confidenceLabel` to hide the confidence indicator; `fullWidth` spans the container.
147
147
  - [ScoreBreakdown](./llms/components/assistant-ui/elements/data-visualization/ScoreBreakdown.md)
148
148
  - [ShareMeter](./llms/components/assistant-ui/elements/data-visualization/ShareMeter.md)
149
149
  - [SpecSheet](./llms/components/assistant-ui/elements/data-visualization/SpecSheet.md)
150
- - [Timeline](./llms/components/assistant-ui/elements/data-visualization/Timeline.md)
150
+ - [Timeline](./llms/components/assistant-ui/elements/data-visualization/Timeline.md): Timeline renders events as an ordered list. Each event has an `id`, a `title`, and optional `time`, `detail`, `meta` (such as badges), `actions` (such as a menu button), and `connector`, an annotation for the segment to the next visible event, such as travel time. `when` marks past, now (announced as the current step), or future progress; omit it for neutral entries. `visibleCount` reveals only the leading events and defaults to all of them. `fullWidth` spans the container instead of the compact card width. The time column is omitted when no visible event has a time.
151
151
  - [TraceWaterfall](./llms/components/assistant-ui/elements/data-visualization/TraceWaterfall.md)
152
152
 
153
153
  ## assistant-ui/elements/media-voice
@@ -339,6 +339,7 @@ Generated from the public package exports and Storybook sources.
339
339
  - [DataGridSelectCell](./llms/components/data-display/DataGridSelectCell.md)
340
340
  - [DataGridSelectHeader](./llms/components/data-display/DataGridSelectHeader.md)
341
341
  - [DataViewer](./llms/components/data-display/DataViewer.md)
342
+ - [Heading](./llms/components/data-display/Heading.md): Heading renders `h1`–`h6` from the required `level` so the document outline stays correct, while `size` (sm, base, lg, xl) sets the visual size independently. Sizes default by level: 1 xl, 2 lg, 3 base, 4–6 sm. `truncate` keeps one line.
342
343
  - [Item](./llms/components/data-display/Item.md)
343
344
  - [JsonRender](./llms/components/data-display/JsonRender.md)
344
345
  - [JsonViewer](./llms/components/data-display/JsonViewer.md)
@@ -348,8 +349,11 @@ Generated from the public package exports and Storybook sources.
348
349
  - [StatCard](./llms/components/data-display/StatCard.md)
349
350
  - [StatusTracker](./llms/components/data-display/StatusTracker.md)
350
351
  - [Table](./llms/components/data-display/Table.md)
352
+ - [Text](./llms/components/data-display/Text.md): Text renders body copy as a paragraph with semantic `size` (xs, sm, base, lg), `tone` (default, muted, faint, primary, success, warning, destructive), `weight`, and `align`. `truncate` keeps one line with an ellipsis; otherwise long words wrap. `tabular` aligns digits. Use `render={<span />}` for inline text, or another element such as `<li />` or `<time />`.
351
353
  - [VirtualDataGrid](./llms/components/data-display/VirtualDataGrid.md)
352
354
  - [VirtualTable](./llms/components/data-display/VirtualTable.md)
355
+ - [WeatherForecast](./llms/components/data-display/WeatherForecast.md): WeatherForecast renders several WeatherSummary days as a list named by `label`. Each day takes an `id` plus the WeatherSummary day fields; `unit` and `locale` apply to every day. `variant="strip"` (default) shows compact days side by side and wraps them to the available width; `variant="list"` shows one detailed day per row.
356
+ - [WeatherSummary](./llms/components/data-display/WeatherSummary.md): WeatherSummary shows one day's forecast: a `label` such as a date, a `condition` from the closed set clear, partly-cloudy, cloudy, fog, drizzle, rain, snow, and thunderstorm with its icon, `high` and `low` temperatures in `unit` (celsius by default), and an optional `precipitationProbability` from 0 to 100. Numbers are rounded and formatted with Intl for `locale`. `conditionLabel` localizes the condition name. The icon is decorative; screen readers hear the condition, high, low, and precipitation chance. `variant="compact"` hides the condition name visually. Use `render` to choose the element, such as `<li />`.
353
357
 
354
358
  ## dates
355
359
 
@@ -380,6 +384,7 @@ Generated from the public package exports and Storybook sources.
380
384
  - [Checkbox](./llms/components/forms/Checkbox.md)
381
385
  - [ColorPicker](./llms/components/forms/ColorPicker.md)
382
386
  - [Combobox](./llms/components/forms/Combobox.md)
387
+ - [EmailCodeAuthForm](./llms/components/forms/EmailCodeAuthForm.md): EmailCodeAuthForm is passwordless sign-in in two steps. Import it from `@alexgorbatchev/shadcn/input-otp`. The email step calls `onRequestCode(email)`; when it resolves, the code step shows an InputOTP for a numeric code of `codeLength` digits (default 6) with one-time-code autofill. Completing the code or pressing Verify calls `onVerifyCode(email, code)` once. Resend code calls `onRequestCode` again and announces the new code; Use a different email returns to the first step. Rejected promises show their message and keep the current step; buttons show pending state while a handler runs. The consumer owns sending, verifying, rate limits, and navigation after success.
383
388
  - [EventForm](./llms/components/forms/EventForm.md)
384
389
  - [Field](./llms/components/forms/Field.md)
385
390
  - [FileUpload](./llms/components/forms/FileUpload.md)
@@ -413,12 +418,15 @@ Generated from the public package exports and Storybook sources.
413
418
  - [BillingUsage](./llms/components/layout/BillingUsage.md)
414
419
  - [Card](./llms/components/layout/Card.md)
415
420
  - [Collapsible](./llms/components/layout/Collapsible.md)
421
+ - [Container](./llms/components/layout/Container.md): Container centers a column with a maximum width: xs 20rem, sm 24rem, md 42rem, lg 64rem (default), xl 80rem, or full. `padding` uses the density-aware spacing tokens. For a centered single-column page such as sign-in, wrap it in a `Stack` with `height="min-viewport"`, `align="center"`, and `justify="center"`, and render the page landmark with `render={<main />}`.
416
422
  - [DashboardLayout](./llms/components/layout/DashboardLayout.md)
423
+ - [Grid](./llms/components/layout/Grid.md): Grid lays out equal columns without consumer classes. `columns` is 1–6 or 12, or a viewport breakpoint map such as `{ base: 1, md: 2, xl: 4 }`. `minColumnWidth` (xs 8rem, sm 12rem, md 16rem, lg 22rem) instead fits as many columns as the grid's own width allows, which suits card grids inside panes of any size. `gap` defaults to the density-aware `panel` token. GridItem `span` (1–6 or `full`, optionally per breakpoint) widens a cell; `full` always spans every column. Both accept `render` for semantic elements such as `<ul />` and `<li />`.
417
424
  - [PageHeader](./llms/components/layout/PageHeader.md)
418
425
  - [Resizable](./llms/components/layout/Resizable.md)
419
426
  - [ScrollArea](./llms/components/layout/ScrollArea.md)
420
427
  - [Separator](./llms/components/layout/Separator.md)
421
428
  - [SplitView](./llms/components/layout/SplitView.md)
429
+ - [Stack](./llms/components/layout/Stack.md): Stack arranges children along one axis without consumer classes. `gap` and `padding` accept the density-aware tokens none, control, panel-sm, panel, field, and section. `direction` is vertical or horizontal, or a breakpoint map such as `{ base: "vertical", md: "horizontal" }`. `align` and `justify` position children; `wrap` lets a row wrap. `grow` takes the remaining space of a parent Stack and lets content shrink, and `height` is auto, full (the parent's height), viewport, or min-viewport. Pass `render={<section />}`, `<ul />`, `<li />`, `<form />`, or `<main />` for semantic elements; props, handlers, and refs merge.
422
430
 
423
431
  ## messaging
424
432
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alexgorbatchev/shadcn",
3
- "version": "0.0.48",
3
+ "version": "0.0.49",
4
4
  "description": "Sharp, monospace React components with compact and comfortable densities.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -8,6 +8,7 @@ import {
8
8
  EmptyTitle,
9
9
  EmptyDescription,
10
10
  Spinner,
11
+ Stack,
11
12
  } from "@alexgorbatchev/shadcn";
12
13
  import type { Scenario } from "../types";
13
14
 
@@ -16,10 +17,10 @@ type ScenarioContentProps = { scenario: Scenario; children: ReactNode };
16
17
  export function ScenarioContent({ scenario, children }: ScenarioContentProps): ReactElement {
17
18
  if (scenario === "loading")
18
19
  return (
19
- <div role="status" className="flex items-center gap-2">
20
+ <Stack role="status" direction="horizontal" align="center" gap="control">
20
21
  <Spinner />
21
22
  Loading sample data…
22
- </div>
23
+ </Stack>
23
24
  );
24
25
  if (scenario === "error")
25
26
  return (
@@ -10,6 +10,7 @@ import {
10
10
  Field,
11
11
  FieldGroup,
12
12
  FieldLabel,
13
+ Grid,
13
14
  NativeSelect,
14
15
  NativeSelectOption,
15
16
  PageHeader,
@@ -42,10 +43,10 @@ export function Dashboard({ scenario }: PrototypeProps): ReactElement {
42
43
  </NativeSelect>
43
44
  </Field>
44
45
  </FieldGroup>
45
- <div className="grid gap-4 sm:grid-cols-2">
46
+ <Grid columns={{ base: 1, sm: 2 }} gap="panel">
46
47
  <StatCard label="Active projects" value={visible.length} />
47
48
  <StatCard label="Ready for review" value={visible.filter((delivery) => delivery.status === "Ready").length} />
48
- </div>
49
+ </Grid>
49
50
  <Card>
50
51
  <CardHeader>
51
52
  <CardTitle>Delivery queue</CardTitle>
@@ -1,15 +0,0 @@
1
- import {
2
- useAnalyticsCallback
3
- } from "./chunk-5mydsjp3.js";
4
-
5
- // src/components/analytics/AnalyticsLink.tsx
6
- import { jsx } from "react/jsx-runtime";
7
- function AnalyticsLink({ component, analytics, ...props }) {
8
- const onClick = useAnalyticsCallback(component, analytics, { name: "ui.activate" }, props.onClick);
9
- return /* @__PURE__ */ jsx("a", {
10
- ...props,
11
- onClick
12
- });
13
- }
14
-
15
- export { AnalyticsLink };
@@ -1,56 +0,0 @@
1
- import {
2
- cn2
3
- } from "./chunk-cp2m7y7v.js";
4
- import {
5
- take
6
- } from "./chunk-v8ks0cfq.js";
7
- import {
8
- paper,
9
- mono
10
- } from "./chunk-fgmcbtyt.js";
11
-
12
- // src/components/assistant-ui/elements/Timeline.tsx
13
- import { jsx, jsxs } from "react/jsx-runtime";
14
- function Timeline2({ events, visibleCount, className, ...props }) {
15
- return /* @__PURE__ */ jsx("div", {
16
- "data-testid": "Timeline",
17
- "data-slot": "timeline",
18
- className: cn2(cn2(paper, "flex w-full max-w-sm flex-col rounded-md p-4"), className),
19
- ...props,
20
- children: take(events, visibleCount).map((event, i, shown) => /* @__PURE__ */ jsxs("div", {
21
- className: "fade-in slide-in-from-left-1 animate-in fill-mode-both grid grid-cols-[3.5rem_1rem_minmax(0,1fr)] gap-x-2 duration-300",
22
- children: [
23
- /* @__PURE__ */ jsx("span", {
24
- className: cn2(mono, "text-muted-foreground pt-[3px] text-end tabular-nums"),
25
- children: event.time
26
- }),
27
- /* @__PURE__ */ jsxs("span", {
28
- className: "flex flex-col items-center",
29
- children: [
30
- /* @__PURE__ */ jsx("span", {
31
- className: cn2("mt-1 size-2 shrink-0 rounded-full", event.when === "now" && "bg-primary ring-4 ring-primary/15 bg-primary forced-colors:bg-[Highlight]", event.when === "past" && "bg-muted-foreground forced-colors:bg-[CanvasText]", event.when === "future" && "border-muted-foreground border bg-transparent")
32
- }),
33
- i < shown.length - 1 && /* @__PURE__ */ jsx("span", {
34
- className: cn2("w-px flex-1", event.when === "future" ? "bg-foreground/[0.08]" : "bg-foreground/15")
35
- })
36
- ]
37
- }),
38
- /* @__PURE__ */ jsxs("div", {
39
- className: cn2("flex flex-col gap-0.5", i < shown.length - 1 && "pb-3"),
40
- children: [
41
- /* @__PURE__ */ jsx("span", {
42
- className: cn2("text-base break-words", event.when === "future" ? "text-muted-foreground" : "text-foreground", event.when === "now" && "font-medium"),
43
- children: event.title
44
- }),
45
- event.detail && /* @__PURE__ */ jsx("span", {
46
- className: "text-muted-foreground text-sm leading-relaxed break-words",
47
- children: event.detail
48
- })
49
- ]
50
- })
51
- ]
52
- }, event.id))
53
- });
54
- }
55
-
56
- export { Timeline2 };