@alexgorbatchev/shadcn 0.0.42 → 0.0.44

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 (457) hide show
  1. package/README.md +48 -24
  2. package/dist/analytics/AnalyticsContext.d.ts +2 -0
  3. package/dist/analytics/analyticsSource.d.ts +4 -0
  4. package/dist/analytics/types.d.ts +55 -0
  5. package/dist/{chunk-2agnzxa0.js → chunk-05shyxqp.js} +1 -1
  6. package/dist/{chunk-59p19t57.js → chunk-0fmrwsgp.js} +7 -2
  7. package/dist/{chunk-p45ytcc2.js → chunk-0gwqtywa.js} +3 -3
  8. package/dist/{chunk-60756tfb.js → chunk-0q9n4syq.js} +3 -3
  9. package/dist/{chunk-dwkjt1mm.js → chunk-0twprqdp.js} +13 -3
  10. package/dist/{chunk-rggdd436.js → chunk-0xqqs9kw.js} +1 -1
  11. package/dist/{chunk-dvmxyk3q.js → chunk-10t1w38s.js} +2 -2
  12. package/dist/{chunk-57jj9v64.js → chunk-14mh00z3.js} +3 -3
  13. package/dist/{chunk-h6kcqtzf.js → chunk-1hq2k0fs.js} +6 -2
  14. package/dist/{chunk-saf6rz9s.js → chunk-1hy9rfvc.js} +1 -1
  15. package/dist/{chunk-nvegyysk.js → chunk-1q30wk9x.js} +2 -2
  16. package/dist/{chunk-3bzbwhda.js → chunk-1sqv5axv.js} +6 -2
  17. package/dist/{chunk-yxgyprns.js → chunk-1sxpyjph.js} +1 -1
  18. package/dist/{chunk-zdx7dtcw.js → chunk-1t959882.js} +1 -1
  19. package/dist/{chunk-p8gshf3k.js → chunk-1zbtg30t.js} +6 -2
  20. package/dist/{chunk-4djw71cv.js → chunk-21ab0jsp.js} +12 -6
  21. package/dist/{chunk-7gpq6kty.js → chunk-23419f5j.js} +1 -1
  22. package/dist/{chunk-f5hphka1.js → chunk-23jrbq6y.js} +5 -1
  23. package/dist/{chunk-k4aawd44.js → chunk-2krw4tjq.js} +1 -1
  24. package/dist/{chunk-644cnngf.js → chunk-2mn2ctsk.js} +6 -0
  25. package/dist/{chunk-7e3samhv.js → chunk-2mswp6h1.js} +3 -3
  26. package/dist/{chunk-4zaj9tsr.js → chunk-2pzvxbq3.js} +3 -3
  27. package/dist/chunk-38301e40.js +182 -0
  28. package/dist/{chunk-he0w0tx1.js → chunk-3b6ws9hk.js} +1 -1
  29. package/dist/{chunk-4stkzcvt.js → chunk-3r0q02k6.js} +175 -53
  30. package/dist/{chunk-fgzcp6dt.js → chunk-3t7h84te.js} +1 -1
  31. package/dist/{chunk-7b3n0ftm.js → chunk-3v95p5js.js} +1 -1
  32. package/dist/{chunk-ey6q1ra5.js → chunk-3wap1z7h.js} +6 -2
  33. package/dist/{chunk-d0qccfv4.js → chunk-46tg5t7g.js} +3 -3
  34. package/dist/chunk-4710gn6d.js +15 -0
  35. package/dist/{chunk-5z9y2mdj.js → chunk-474fgeht.js} +1 -1
  36. package/dist/{chunk-7mj8g4vx.js → chunk-48yhjpfs.js} +1 -1
  37. package/dist/{chunk-yazbpnav.js → chunk-4e1eq1t5.js} +2 -2
  38. package/dist/{chunk-pqe77cc1.js → chunk-4e879g03.js} +1 -1
  39. package/dist/{chunk-espw1b6e.js → chunk-4gcpx4pm.js} +1 -1
  40. package/dist/{chunk-s0typ7hv.js → chunk-55s7v2mw.js} +2 -2
  41. package/dist/{chunk-ret3m6vs.js → chunk-588wj6g4.js} +1 -1
  42. package/dist/{chunk-mwzhaw5v.js → chunk-5h7xxnr7.js} +1 -1
  43. package/dist/chunk-5mydsjp3.js +48 -0
  44. package/dist/{chunk-pc2d5950.js → chunk-5myr07fp.js} +1 -1
  45. package/dist/{chunk-f0jej3qt.js → chunk-5w279fsn.js} +6 -6
  46. package/dist/{chunk-zn1w5cd5.js → chunk-5zyc28sc.js} +11 -7
  47. package/dist/{chunk-hh43wg05.js → chunk-60p7sagm.js} +12 -6
  48. package/dist/{chunk-vf1rsqpk.js → chunk-645dhey7.js} +1 -1
  49. package/dist/{chunk-0skytwpk.js → chunk-6475gsta.js} +2 -2
  50. package/dist/{chunk-na2mxcxz.js → chunk-6fp821jv.js} +2 -2
  51. package/dist/{chunk-dzvsjw59.js → chunk-6jw87d07.js} +33 -4
  52. package/dist/{chunk-58st8hnr.js → chunk-6kygf29c.js} +1 -1
  53. package/dist/{chunk-sb00e3gj.js → chunk-77xfccfq.js} +3 -3
  54. package/dist/{chunk-cyfbg25t.js → chunk-79vgr8w9.js} +3 -3
  55. package/dist/chunk-7jpsybag.js +33 -0
  56. package/dist/{chunk-987zth0a.js → chunk-7mnba0d8.js} +8 -3
  57. package/dist/chunk-7ny0vyek.js +25 -0
  58. package/dist/{chunk-jkgje3ar.js → chunk-7qwp41y5.js} +1 -1
  59. package/dist/{chunk-rffrerg5.js → chunk-7w8yemba.js} +7 -2
  60. package/dist/{chunk-809fwd84.js → chunk-7zyf9nnf.js} +24 -10
  61. package/dist/{chunk-k138cvn8.js → chunk-83v2vma2.js} +1 -1
  62. package/dist/{chunk-enxt9sfx.js → chunk-84gs32n6.js} +1 -1
  63. package/dist/{chunk-5x7387nh.js → chunk-8bxfp671.js} +1 -1
  64. package/dist/{chunk-726x26pk.js → chunk-8jnfvgvk.js} +1 -1
  65. package/dist/{chunk-6kwf9644.js → chunk-8k18tnap.js} +1 -1
  66. package/dist/{chunk-3jrsp186.js → chunk-8q0xpeh4.js} +1 -1
  67. package/dist/{chunk-gqm1483k.js → chunk-8rtm4y46.js} +2 -2
  68. package/dist/chunk-8ssktt4b.js +11 -0
  69. package/dist/{chunk-d4bm5rzy.js → chunk-8wc2z7te.js} +37 -12
  70. package/dist/{chunk-b06rfrfz.js → chunk-8xnjf4ef.js} +6 -2
  71. package/dist/{chunk-tfqfqn8z.js → chunk-96x8wa8w.js} +1 -1
  72. package/dist/{chunk-3se9vgw9.js → chunk-9qcqxp3v.js} +1 -1
  73. package/dist/{chunk-dtkw8m6d.js → chunk-9t5h5ps3.js} +1 -1
  74. package/dist/{chunk-tnnf8ydf.js → chunk-9w9berq8.js} +6 -1
  75. package/dist/{chunk-a50gtwc9.js → chunk-a82d9z1e.js} +1 -1
  76. package/dist/{chunk-q5m8vz61.js → chunk-aahx2gyb.js} +1 -1
  77. package/dist/{chunk-3dyqen8w.js → chunk-agy4dzea.js} +1 -1
  78. package/dist/{chunk-n789tekk.js → chunk-axw1yqxz.js} +1 -1
  79. package/dist/{chunk-97kagey4.js → chunk-beywepck.js} +5 -1
  80. package/dist/{chunk-rkbbjjwq.js → chunk-bt7ramb0.js} +6 -2
  81. package/dist/{chunk-ga79snaw.js → chunk-c4m53x5s.js} +1 -1
  82. package/dist/{chunk-8vfh3ez0.js → chunk-c9ypcp4s.js} +32 -19
  83. package/dist/{chunk-ybypybsb.js → chunk-cmd9erv0.js} +6 -1
  84. package/dist/{chunk-r6p7982y.js → chunk-cqbd39je.js} +6 -1
  85. package/dist/{chunk-81y5s246.js → chunk-ct6ayjkt.js} +1 -1
  86. package/dist/{chunk-bt57g6ms.js → chunk-cvg5366s.js} +1 -1
  87. package/dist/{chunk-7p6032sv.js → chunk-cy1xv5nz.js} +10 -2
  88. package/dist/{chunk-6wx7cr8d.js → chunk-d444bwwf.js} +2 -2
  89. package/dist/{chunk-yrxjwwz3.js → chunk-dfkzm4f1.js} +218 -199
  90. package/dist/{chunk-ttdeyjvj.js → chunk-dhmtrz6f.js} +1 -1
  91. package/dist/{chunk-x0megjk3.js → chunk-dq6se94p.js} +1 -1
  92. package/dist/{chunk-3zrw72sw.js → chunk-e970kv8r.js} +1 -1
  93. package/dist/{chunk-3x0ter92.js → chunk-e9756880.js} +1 -1
  94. package/dist/{chunk-0kyfh857.js → chunk-e9v481he.js} +1 -1
  95. package/dist/{chunk-wndqbss9.js → chunk-ekbesw9t.js} +7 -2
  96. package/dist/{chunk-yc9ytj9j.js → chunk-esrypw6g.js} +1 -1
  97. package/dist/{chunk-b43t3etd.js → chunk-ewhk1ze1.js} +1 -1
  98. package/dist/{chunk-kwbgqv5z.js → chunk-f08tw6hg.js} +1 -1
  99. package/dist/{chunk-mgdec3zt.js → chunk-f28xnx55.js} +2 -2
  100. package/dist/{chunk-43hfchxf.js → chunk-f63cr8mx.js} +9 -3
  101. package/dist/{chunk-jy50ebz0.js → chunk-f6rbv5gf.js} +8 -4
  102. package/dist/{chunk-78cs7n93.js → chunk-f72tygjq.js} +1 -1
  103. package/dist/{chunk-p9aqek06.js → chunk-f9kdk0q4.js} +5 -1
  104. package/dist/{chunk-ag6xpy6q.js → chunk-f9twxy4y.js} +11 -3
  105. package/dist/{chunk-arsjatb3.js → chunk-fky4t8cc.js} +2 -2
  106. package/dist/{chunk-4521sn9e.js → chunk-fkzh31y0.js} +1 -1
  107. package/dist/{chunk-09agnr7z.js → chunk-fpj82hex.js} +1 -1
  108. package/dist/{chunk-24d68cjp.js → chunk-fw86vanx.js} +8 -2
  109. package/dist/{chunk-gtbtfnd7.js → chunk-fxfwgr5g.js} +4 -4
  110. package/dist/{chunk-jf0y740b.js → chunk-fz2x6hvf.js} +1 -1
  111. package/dist/{chunk-1hj251b8.js → chunk-gbmvkt3q.js} +19 -7
  112. package/dist/{chunk-9nckfswe.js → chunk-ghz2g6j5.js} +9 -4
  113. package/dist/{chunk-sfmkphna.js → chunk-gtebjkkz.js} +10 -5
  114. package/dist/{chunk-dv8344f7.js → chunk-h3qqt3rg.js} +1 -1
  115. package/dist/{chunk-46jdxdzy.js → chunk-h5zhqdmb.js} +3 -3
  116. package/dist/{chunk-9a1hj7mc.js → chunk-hj9avapz.js} +4 -4
  117. package/dist/{chunk-b513tz37.js → chunk-hxg0pkj9.js} +1 -1
  118. package/dist/{chunk-jrzx4wre.js → chunk-j2hawnp9.js} +2 -2
  119. package/dist/{chunk-c2vcrwjp.js → chunk-j2n8684w.js} +6 -1
  120. package/dist/{chunk-ws4y7ctw.js → chunk-jadf0xqn.js} +6 -2
  121. package/dist/{chunk-ex1zk6ta.js → chunk-jgdpa00w.js} +10 -7
  122. package/dist/{chunk-yxej7z50.js → chunk-jk941nke.js} +1 -1
  123. package/dist/{chunk-e7wbz622.js → chunk-jwzg2twy.js} +1 -1
  124. package/dist/{chunk-pg9rhbgm.js → chunk-k455qwx2.js} +2 -2
  125. package/dist/{chunk-cgv6qm25.js → chunk-khtt3f21.js} +2 -2
  126. package/dist/{chunk-p6wb9jw3.js → chunk-kxx5fnpb.js} +1 -1
  127. package/dist/{chunk-1qsph9ej.js → chunk-kzar67tq.js} +3 -5
  128. package/dist/{chunk-tz8xh1nc.js → chunk-m0agthfm.js} +1 -1
  129. package/dist/{chunk-yf68wrse.js → chunk-m4wfy6n3.js} +2 -2
  130. package/dist/{chunk-21x1n6gn.js → chunk-m71d0g7v.js} +6 -6
  131. package/dist/{chunk-h19wjq6v.js → chunk-m7n2f6nf.js} +1 -1
  132. package/dist/{chunk-srv59vf3.js → chunk-m9rrhywc.js} +4 -4
  133. package/dist/{chunk-z7jkw7ds.js → chunk-mcdqy5gt.js} +1 -1
  134. package/dist/{chunk-dd4erwx8.js → chunk-mtx71g1t.js} +7 -3
  135. package/dist/{chunk-9vyg3854.js → chunk-mwzmmeeq.js} +5 -1
  136. package/dist/{chunk-w0bgsawz.js → chunk-n5ea9nv1.js} +2 -2
  137. package/dist/{chunk-krz4q9sz.js → chunk-ngq209hr.js} +2 -2
  138. package/dist/{chunk-7j9d7dtq.js → chunk-nw8zvj83.js} +1 -1
  139. package/dist/{chunk-52e8a05a.js → chunk-nxkbx5r2.js} +1 -1
  140. package/dist/{chunk-c7tnf6h7.js → chunk-p1eqxz4v.js} +28 -9
  141. package/dist/{chunk-9ye7w106.js → chunk-p5x18ckg.js} +1 -1
  142. package/dist/{chunk-ehgeg4q9.js → chunk-p6kw19sx.js} +17 -7
  143. package/dist/{chunk-3c7tvhtx.js → chunk-pa8yemp1.js} +1 -1
  144. package/dist/{chunk-zw6a73cm.js → chunk-prp1x0by.js} +1 -1
  145. package/dist/{chunk-8ye0k6z7.js → chunk-ptgtqv1a.js} +6 -1
  146. package/dist/{chunk-8k1y6w5k.js → chunk-pws4vb8r.js} +5 -1
  147. package/dist/{chunk-r07v9c4f.js → chunk-pzr1f2tz.js} +5 -1
  148. package/dist/{chunk-aexby8h3.js → chunk-q606kj28.js} +24 -2
  149. package/dist/{chunk-sat9hjv7.js → chunk-qky9999p.js} +1 -1
  150. package/dist/{chunk-svkzwq5e.js → chunk-qmfxytfb.js} +1 -1
  151. package/dist/{chunk-wnyxdfzd.js → chunk-qv3b2jvc.js} +1 -1
  152. package/dist/{chunk-5bw5h08v.js → chunk-r4jzz4f2.js} +7 -1
  153. package/dist/{chunk-cb51ybz5.js → chunk-r7mfpkbb.js} +12 -4
  154. package/dist/{chunk-5wndb6hx.js → chunk-ray29hdb.js} +6 -2
  155. package/dist/{chunk-z4jpedvh.js → chunk-rr74321a.js} +1 -1
  156. package/dist/{chunk-wensxzx9.js → chunk-rtb0ejf0.js} +1 -1
  157. package/dist/{chunk-tvd9n2kd.js → chunk-s0ecp1mv.js} +1 -1
  158. package/dist/{chunk-y7pkfcsz.js → chunk-s8ejm9d8.js} +1 -1
  159. package/dist/{chunk-v9r6t8bz.js → chunk-snq5m541.js} +6 -2
  160. package/dist/{chunk-4qn98ngf.js → chunk-srr328m4.js} +1 -1
  161. package/dist/{chunk-6p6zfyjr.js → chunk-svz0farj.js} +1 -1
  162. package/dist/{chunk-d3fr5vtc.js → chunk-t97ts9df.js} +1 -1
  163. package/dist/{chunk-79667fz5.js → chunk-tbd56x4h.js} +3 -3
  164. package/dist/chunk-tcefvfr8.js +15 -0
  165. package/dist/{chunk-0ftjkxjg.js → chunk-td7ra5d2.js} +1 -1
  166. package/dist/{chunk-6wvhq8wq.js → chunk-tg5grn8f.js} +2 -2
  167. package/dist/{chunk-hz9azhzx.js → chunk-tq0pfv5h.js} +7 -2
  168. package/dist/{chunk-4x3ck2yz.js → chunk-v24aqtkt.js} +1 -1
  169. package/dist/{chunk-sbrpnv8s.js → chunk-v8gdzaxt.js} +6 -2
  170. package/dist/{chunk-3mzqf6b4.js → chunk-vg2j5044.js} +1 -1
  171. package/dist/{chunk-map13pza.js → chunk-vhm7fpav.js} +11 -11
  172. package/dist/{chunk-kt085sbn.js → chunk-vm3fzfnj.js} +1 -1
  173. package/dist/{chunk-2bx2r98r.js → chunk-vrs3371x.js} +6 -2
  174. package/dist/{chunk-bqyvf9jn.js → chunk-w1jm0rx3.js} +8 -4
  175. package/dist/{chunk-e0pv0me5.js → chunk-w9jyajx3.js} +1 -1
  176. package/dist/{chunk-5v4typ39.js → chunk-wh7rmym5.js} +3 -3
  177. package/dist/{chunk-0mkv6zgs.js → chunk-wnhxn2se.js} +1 -1
  178. package/dist/{chunk-jfc7rhtt.js → chunk-wpa484a6.js} +1 -1
  179. package/dist/{chunk-pgq064p6.js → chunk-wq8jxf31.js} +7 -3
  180. package/dist/{chunk-6432235c.js → chunk-x1598f0d.js} +3 -3
  181. package/dist/{chunk-83zjj4jd.js → chunk-x6vx0v6d.js} +34 -7
  182. package/dist/{chunk-j4gd5awk.js → chunk-x6zmnr8m.js} +6 -6
  183. package/dist/{chunk-aa7m22zj.js → chunk-x90xmrba.js} +13 -4
  184. package/dist/{chunk-wjaehks2.js → chunk-xfhk2vrw.js} +6 -2
  185. package/dist/{chunk-5a2xnjyw.js → chunk-xgp1eyhr.js} +12 -4
  186. package/dist/{chunk-pwqw7ksj.js → chunk-xq579zwh.js} +1 -1
  187. package/dist/{chunk-ge5t1xhw.js → chunk-xvmv0xm5.js} +1 -1
  188. package/dist/{chunk-96wh7ccv.js → chunk-xwf411kf.js} +6 -2
  189. package/dist/{chunk-9jct7hv0.js → chunk-y7tyyzfy.js} +3 -3
  190. package/dist/{chunk-wqc963k8.js → chunk-ybyx7vt4.js} +2 -2
  191. package/dist/{chunk-rbm24fhv.js → chunk-z8n03ra5.js} +2 -2
  192. package/dist/{chunk-wmyj3hfw.js → chunk-zksbrzf6.js} +1 -1
  193. package/dist/{chunk-bsff5mmk.js → chunk-zp3wrbve.js} +1 -1
  194. package/dist/components/Accordion.d.ts +3 -2
  195. package/dist/components/AlertDialog.d.ts +3 -3
  196. package/dist/components/Attachment.d.ts +4 -3
  197. package/dist/components/Badge.d.ts +1 -1
  198. package/dist/components/Breadcrumb.d.ts +3 -2
  199. package/dist/components/Button.d.ts +8 -4
  200. package/dist/components/ButtonLink.d.ts +3 -2
  201. package/dist/components/Checkbox.d.ts +3 -2
  202. package/dist/components/Collapsible.d.ts +2 -1
  203. package/dist/components/Combobox.d.ts +2 -1
  204. package/dist/components/ContextMenu.d.ts +6 -5
  205. package/dist/components/Dialog.d.ts +2 -1
  206. package/dist/components/Drawer.d.ts +2 -1
  207. package/dist/components/DropTarget.d.ts +1 -1
  208. package/dist/components/DropdownMenu.d.ts +6 -5
  209. package/dist/components/HoverCard.d.ts +2 -1
  210. package/dist/components/ImagePicker.d.ts +3 -2
  211. package/dist/components/InlineEdit.d.ts +3 -2
  212. package/dist/components/Input.d.ts +3 -2
  213. package/dist/components/InputGroup.d.ts +2 -1
  214. package/dist/components/Item.d.ts +1 -1
  215. package/dist/components/Menubar.d.ts +4 -3
  216. package/dist/components/NativeSelect.d.ts +2 -1
  217. package/dist/components/NavigationMenu.d.ts +4 -3
  218. package/dist/components/NumberField.d.ts +2 -1
  219. package/dist/components/Pagination.d.ts +2 -1
  220. package/dist/components/Popover.d.ts +2 -1
  221. package/dist/components/RadioGroup.d.ts +3 -2
  222. package/dist/components/Select.d.ts +2 -1
  223. package/dist/components/Sheet.d.ts +2 -1
  224. package/dist/components/Sidebar.d.ts +8 -7
  225. package/dist/components/Slider.d.ts +2 -1
  226. package/dist/components/StarRating.d.ts +3 -2
  227. package/dist/components/Switch.d.ts +3 -2
  228. package/dist/components/Tabs.d.ts +3 -2
  229. package/dist/components/Textarea.d.ts +3 -2
  230. package/dist/components/Toast.d.ts +3 -2
  231. package/dist/components/Toggle.d.ts +3 -2
  232. package/dist/components/ToggleGroup.d.ts +17 -2
  233. package/dist/components/Toolbar.d.ts +4 -3
  234. package/dist/components/Tooltip.d.ts +2 -1
  235. package/dist/components/analytics/AnalyticsButton.d.ts +8 -0
  236. package/dist/components/analytics/AnalyticsImpression.d.ts +11 -0
  237. package/dist/components/analytics/AnalyticsInput.d.ts +7 -0
  238. package/dist/components/analytics/AnalyticsLink.d.ts +7 -0
  239. package/dist/components/analytics/AnalyticsProvider.d.ts +3 -0
  240. package/dist/components/analytics/AnalyticsScope.d.ts +3 -0
  241. package/dist/components/analytics/AnalyticsTextarea.d.ts +7 -0
  242. package/dist/components/analytics/index.d.ts +6 -0
  243. package/dist/components/analytics/index.js +145 -0
  244. package/dist/components/assistant-ui/elements/AgentCard.js +8 -2
  245. package/dist/components/assistant-ui/elements/ApprovalCard.js +8 -2
  246. package/dist/components/assistant-ui/elements/ArtifactCard.js +8 -2
  247. package/dist/components/assistant-ui/elements/AudioPlayer.js +9 -2
  248. package/dist/components/assistant-ui/elements/BackgroundInbox.js +8 -2
  249. package/dist/components/assistant-ui/elements/CanvasSplit.js +8 -2
  250. package/dist/components/assistant-ui/elements/Chart.js +6 -2
  251. package/dist/components/assistant-ui/elements/ChatPanel.js +12 -5
  252. package/dist/components/assistant-ui/elements/CheckpointHistory.js +8 -2
  253. package/dist/components/assistant-ui/elements/Citation.js +9 -5
  254. package/dist/components/assistant-ui/elements/CodeRunner.js +8 -2
  255. package/dist/components/assistant-ui/elements/CommandPalette.js +13 -9
  256. package/dist/components/assistant-ui/elements/ComposerAttachButton.js +8 -2
  257. package/dist/components/assistant-ui/elements/ComposerAttachmentChip.js +8 -2
  258. package/dist/components/assistant-ui/elements/ComposerAttachments.js +12 -5
  259. package/dist/components/assistant-ui/elements/ComposerBar.js +12 -5
  260. package/dist/components/assistant-ui/elements/ComposerCommandItem.js +9 -3
  261. package/dist/components/assistant-ui/elements/ComposerContext.js +8 -5
  262. package/dist/components/assistant-ui/elements/ComposerInput.js +12 -5
  263. package/dist/components/assistant-ui/elements/ComposerMenuItem.js +8 -2
  264. package/dist/components/assistant-ui/elements/ComposerModelItem.js +9 -3
  265. package/dist/components/assistant-ui/elements/ComposerModelTrigger.js +8 -2
  266. package/dist/components/assistant-ui/elements/ComposerPersonItem.js +9 -3
  267. package/dist/components/assistant-ui/elements/ComposerSend.js +8 -2
  268. package/dist/components/assistant-ui/elements/ComposerToolbar.js +12 -5
  269. package/dist/components/assistant-ui/elements/ComposerVoiceButton.js +8 -2
  270. package/dist/components/assistant-ui/elements/ConfidenceMarker.js +5 -1
  271. package/dist/components/assistant-ui/elements/ConnectionState.js +8 -2
  272. package/dist/components/assistant-ui/elements/ContextDisplay.js +13 -10
  273. package/dist/components/assistant-ui/elements/ContextDisplayBar.js +10 -7
  274. package/dist/components/assistant-ui/elements/ContextDisplayContent.js +6 -4
  275. package/dist/components/assistant-ui/elements/ContextDisplayRing.js +10 -7
  276. package/dist/components/assistant-ui/elements/ContextDisplayRoot.js +6 -4
  277. package/dist/components/assistant-ui/elements/ContextDisplayText.js +10 -7
  278. package/dist/components/assistant-ui/elements/ContextDisplayTrigger.js +7 -4
  279. package/dist/components/assistant-ui/elements/ConversationMap.js +7 -4
  280. package/dist/components/assistant-ui/elements/ConversationSearch.js +12 -5
  281. package/dist/components/assistant-ui/elements/DataTable.js +9 -2
  282. package/dist/components/assistant-ui/elements/Diagram.js +8 -2
  283. package/dist/components/assistant-ui/elements/DiffViewer.js +9 -3
  284. package/dist/components/assistant-ui/elements/DiffViewerHeader.js +8 -2
  285. package/dist/components/assistant-ui/elements/DocumentReference.js +8 -2
  286. package/dist/components/assistant-ui/elements/DraftRestore.js +8 -2
  287. package/dist/components/assistant-ui/elements/EditMessage.js +10 -3
  288. package/dist/components/assistant-ui/elements/ElicitationForm.js +12 -5
  289. package/dist/components/assistant-ui/elements/EmptyStateComposer.js +12 -5
  290. package/dist/components/assistant-ui/elements/EmptyStateSuggestion.js +8 -2
  291. package/dist/components/assistant-ui/elements/ErrorState.js +8 -2
  292. package/dist/components/assistant-ui/elements/EveAskQuestion.js +13 -5
  293. package/dist/components/assistant-ui/elements/FeedbackDialog.js +11 -4
  294. package/dist/components/assistant-ui/elements/File.js +11 -3
  295. package/dist/components/assistant-ui/elements/GenerativeUi.js +11 -8
  296. package/dist/components/assistant-ui/elements/GeoMap.js +8 -2
  297. package/dist/components/assistant-ui/elements/GuardrailNotice.js +8 -2
  298. package/dist/components/assistant-ui/elements/Image.js +10 -5
  299. package/dist/components/assistant-ui/elements/ImageGallery.js +10 -5
  300. package/dist/components/assistant-ui/elements/ImageGeneration.js +8 -2
  301. package/dist/components/assistant-ui/elements/JobProgress.js +8 -2
  302. package/dist/components/assistant-ui/elements/LauncherBubble.js +8 -2
  303. package/dist/components/assistant-ui/elements/LinkPreview.js +5 -1
  304. package/dist/components/assistant-ui/elements/MapAnswer.js +9 -2
  305. package/dist/components/assistant-ui/elements/MarkdownText.js +8 -6
  306. package/dist/components/assistant-ui/elements/McpServerPanel.js +9 -3
  307. package/dist/components/assistant-ui/elements/MemoryChips.js +8 -2
  308. package/dist/components/assistant-ui/elements/MermaidDiagram.js +9 -6
  309. package/dist/components/assistant-ui/elements/MermaidZoom.js +8 -5
  310. package/dist/components/assistant-ui/elements/MessageActions.js +9 -3
  311. package/dist/components/assistant-ui/elements/MessageAttachments.js +8 -2
  312. package/dist/components/assistant-ui/elements/MessageBranches.js +8 -2
  313. package/dist/components/assistant-ui/elements/MessagePair.js +8 -2
  314. package/dist/components/assistant-ui/elements/MessageQueue.js +8 -2
  315. package/dist/components/assistant-ui/elements/MobileComposer.js +12 -5
  316. package/dist/components/assistant-ui/elements/ModelPicker.js +5 -2
  317. package/dist/components/assistant-ui/elements/ModelSelector.js +24 -19
  318. package/dist/components/assistant-ui/elements/ModelSelectorContent.js +21 -16
  319. package/dist/components/assistant-ui/elements/ModelSelectorEffort.js +5 -1
  320. package/dist/components/assistant-ui/elements/ModelSelectorEmpty.js +13 -9
  321. package/dist/components/assistant-ui/elements/ModelSelectorFocusAnchor.js +13 -9
  322. package/dist/components/assistant-ui/elements/ModelSelectorGroup.js +13 -9
  323. package/dist/components/assistant-ui/elements/ModelSelectorItem.js +13 -9
  324. package/dist/components/assistant-ui/elements/ModelSelectorList.js +15 -11
  325. package/dist/components/assistant-ui/elements/ModelSelectorRoot.js +6 -4
  326. package/dist/components/assistant-ui/elements/ModelSelectorSearch.js +13 -9
  327. package/dist/components/assistant-ui/elements/ModelSelectorSeparator.js +13 -9
  328. package/dist/components/assistant-ui/elements/ModelSelectorTrigger.js +7 -4
  329. package/dist/components/assistant-ui/elements/Onboarding.js +8 -2
  330. package/dist/components/assistant-ui/elements/OptionList.js +9 -3
  331. package/dist/components/assistant-ui/elements/PermissionGrant.js +8 -2
  332. package/dist/components/assistant-ui/elements/PromptLibrary.js +12 -5
  333. package/dist/components/assistant-ui/elements/QuestionFlow.js +10 -4
  334. package/dist/components/assistant-ui/elements/QuotaBanner.js +8 -2
  335. package/dist/components/assistant-ui/elements/QuoteReply.js +8 -2
  336. package/dist/components/assistant-ui/elements/ReadAloud.js +8 -2
  337. package/dist/components/assistant-ui/elements/ReasoningContent.js +5 -2
  338. package/dist/components/assistant-ui/elements/ReasoningEffort.js +5 -2
  339. package/dist/components/assistant-ui/elements/ReasoningPanel.js +6 -2
  340. package/dist/components/assistant-ui/elements/ReasoningRoot.js +5 -2
  341. package/dist/components/assistant-ui/elements/ReasoningTrigger.js +5 -2
  342. package/dist/components/assistant-ui/elements/RecommendationCard.js +8 -2
  343. package/dist/components/assistant-ui/elements/RegenerateMenu.js +7 -5
  344. package/dist/components/assistant-ui/elements/ReviewableDiff.js +8 -2
  345. package/dist/components/assistant-ui/elements/RunActivity.js +6 -2
  346. package/dist/components/assistant-ui/elements/ScheduleCard.js +5 -2
  347. package/dist/components/assistant-ui/elements/ScrollAnchor.js +5 -1
  348. package/dist/components/assistant-ui/elements/SettingsPanel.js +12 -5
  349. package/dist/components/assistant-ui/elements/SharedConversation.js +8 -2
  350. package/dist/components/assistant-ui/elements/Sources.js +7 -2
  351. package/dist/components/assistant-ui/elements/StoppedRun.js +8 -2
  352. package/dist/components/assistant-ui/elements/Suggestions.js +8 -2
  353. package/dist/components/assistant-ui/elements/TaskCard.js +8 -2
  354. package/dist/components/assistant-ui/elements/TerminalBlock.js +8 -2
  355. package/dist/components/assistant-ui/elements/ThreadList.js +8 -2
  356. package/dist/components/assistant-ui/elements/ThreadSearch.js +12 -5
  357. package/dist/components/assistant-ui/elements/TodoList.js +8 -2
  358. package/dist/components/assistant-ui/elements/ToolCall.js +6 -2
  359. package/dist/components/assistant-ui/elements/ToolError.js +8 -2
  360. package/dist/components/assistant-ui/elements/ToolGroup.js +8 -2
  361. package/dist/components/assistant-ui/elements/ToolTimeline.js +6 -2
  362. package/dist/components/assistant-ui/elements/TooltipIconButton.js +6 -5
  363. package/dist/components/assistant-ui/elements/VoiceConversation.js +9 -2
  364. package/dist/components/assistant-ui/elements/WebPreview.js +8 -2
  365. package/dist/components/assistant-ui/eveAskQuestionToolkit.js +14 -6
  366. package/dist/components/assistant-ui/index.js +148 -144
  367. package/dist/components/assistant-ui/native/AssistantModal.js +29 -25
  368. package/dist/components/assistant-ui/native/AssistantSidebar.js +28 -24
  369. package/dist/components/assistant-ui/native/AttachmentPreview.js +9 -7
  370. package/dist/components/assistant-ui/native/ComposerQuotePreview.js +5 -1
  371. package/dist/components/assistant-ui/native/ComposerTriggerPopover.js +5 -1
  372. package/dist/components/assistant-ui/native/ContextDisplay.js +15 -12
  373. package/dist/components/assistant-ui/native/ContextDisplayBar.js +12 -9
  374. package/dist/components/assistant-ui/native/ContextDisplayRing.js +12 -9
  375. package/dist/components/assistant-ui/native/ContextDisplayRoot.js +8 -6
  376. package/dist/components/assistant-ui/native/ContextDisplayRuntimeRoot.js +7 -5
  377. package/dist/components/assistant-ui/native/ContextDisplayText.js +12 -9
  378. package/dist/components/assistant-ui/native/ConversationMapAui.js +8 -5
  379. package/dist/components/assistant-ui/native/FollowupSuggestionsRow.js +5 -1
  380. package/dist/components/assistant-ui/native/McpConfigDialog.js +12 -6
  381. package/dist/components/assistant-ui/native/MermaidDiagram.js +10 -7
  382. package/dist/components/assistant-ui/native/MessageTiming.js +7 -4
  383. package/dist/components/assistant-ui/native/ModelSelector.js +26 -21
  384. package/dist/components/assistant-ui/native/Reasoning.js +13 -11
  385. package/dist/components/assistant-ui/native/SelectionToolbar.js +5 -1
  386. package/dist/components/assistant-ui/native/Sources.js +5 -1
  387. package/dist/components/assistant-ui/native/TaskCard.js +15 -11
  388. package/dist/components/assistant-ui/native/TaskGroup.js +16 -12
  389. package/dist/components/assistant-ui/native/TaskTray.js +7 -4
  390. package/dist/components/assistant-ui/native/Thread.js +26 -22
  391. package/dist/components/assistant-ui/native/ThreadList.d.ts +6 -4
  392. package/dist/components/assistant-ui/native/ThreadList.js +11 -5
  393. package/dist/components/assistant-ui/native/ThreadListSidebar.js +14 -10
  394. package/dist/components/assistant-ui/native/ToolFallbackRoot.js +12 -4
  395. package/dist/components/assistant-ui/native/ToolGroup.js +6 -2
  396. package/dist/components/assistant-ui/native/VoiceConnectButton.js +8 -2
  397. package/dist/components/assistant-ui/native/VoiceControl.js +10 -9
  398. package/dist/components/assistant-ui/native/VoiceConversation.js +10 -3
  399. package/dist/components/assistant-ui/native/VoiceDisconnectButton.js +7 -6
  400. package/dist/components/assistant-ui/native/VoiceMuteButton.js +7 -6
  401. package/dist/components/assistant-ui/native/index.js +81 -77
  402. package/dist/components/calendar/Calendar.d.ts +1 -1
  403. package/dist/components/calendar/index.js +9 -6
  404. package/dist/components/calendar/types.d.ts +2 -1
  405. package/dist/components/carousel/Carousel.d.ts +1 -1
  406. package/dist/components/carousel/index.js +8 -2
  407. package/dist/components/carousel/types.d.ts +2 -1
  408. package/dist/components/chart/index.js +5 -1
  409. package/dist/components/color-picker/ColorPicker.d.ts +2 -1
  410. package/dist/components/color-picker/index.js +26 -1
  411. package/dist/components/command/Command.d.ts +2 -1
  412. package/dist/components/command/index.js +12 -8
  413. package/dist/components/data-grid/index.js +16 -12
  414. package/dist/components/editor/RichTextEditor.d.ts +3 -2
  415. package/dist/components/editor/index.js +39 -3
  416. package/dist/components/event-calendar/EventCalendar.d.ts +2 -1
  417. package/dist/components/event-calendar/index.js +19 -3
  418. package/dist/components/file-upload/FileUpload.d.ts +3 -2
  419. package/dist/components/file-upload/index.js +20 -2
  420. package/dist/components/gantt/index.js +9 -3
  421. package/dist/components/image-crop/ImageCrop.d.ts +4 -3
  422. package/dist/components/image-crop/index.js +27 -1
  423. package/dist/components/input-otp/InputOTP.d.ts +3 -2
  424. package/dist/components/input-otp/index.js +9 -2
  425. package/dist/components/json-render/catalog.d.ts +1 -1
  426. package/dist/components/json-render/index.js +34 -31
  427. package/dist/components/message-scroller/MessageScroller.d.ts +3 -2
  428. package/dist/components/message-scroller/index.js +12 -1
  429. package/dist/components/persian-calendar/PersianCalendar.d.ts +3 -2
  430. package/dist/components/persian-calendar/index.js +16 -3
  431. package/dist/components/questionnaire/Questionnaire.d.ts +8 -7
  432. package/dist/components/questionnaire/index.js +37 -3
  433. package/dist/components/resizable/Resizable.d.ts +2 -1
  434. package/dist/components/resizable/index.js +4 -1
  435. package/dist/components/sonner/Sonner.d.ts +3 -2
  436. package/dist/components/sonner/index.js +14 -1
  437. package/dist/components/tree/Tree.d.ts +3 -2
  438. package/dist/components/tree/TreeItem.d.ts +3 -2
  439. package/dist/components/tree/index.js +28 -2
  440. package/dist/components/virtual-data-grid/index.js +11 -4
  441. package/dist/drag-drop/types.d.ts +2 -1
  442. package/dist/hooks/useAnalytics.d.ts +4 -0
  443. package/dist/hooks/useAnalyticsCallback.d.ts +5 -0
  444. package/dist/hooks/useAnalyticsEnabled.d.ts +2 -0
  445. package/dist/hooks/useAnalyticsInput.d.ts +8 -0
  446. package/dist/hooks/useDropTarget.d.ts +1 -1
  447. package/dist/index.js +39 -37
  448. package/dist/prototype.js +5 -1
  449. package/llms/components/actions/Button.md +20 -0
  450. package/llms/components/actions/ToggleGroup.md +48 -1
  451. package/llms/components/providers/AnalyticsProvider.md +59 -0
  452. package/llms/setup.md +48 -24
  453. package/llms.txt +1 -0
  454. package/package.json +5 -1
  455. package/dist/chunk-j89xg1ak.js +0 -14
  456. package/dist/chunk-mz3e810d.js +0 -83
  457. package/dist/chunk-q7p28b89.js +0 -68
package/dist/index.js CHANGED
@@ -178,7 +178,7 @@ import {
178
178
  StatusTracker2,
179
179
  DashboardLayout2,
180
180
  BillingUsage2
181
- } from "./chunk-4stkzcvt.js";
181
+ } from "./chunk-3r0q02k6.js";
182
182
  import {
183
183
  Tabs2,
184
184
  tabsListVariants2,
@@ -193,7 +193,7 @@ import {
193
193
  useDropTarget2,
194
194
  DropTarget2,
195
195
  Kanban2
196
- } from "./chunk-1hj251b8.js";
196
+ } from "./chunk-gbmvkt3q.js";
197
197
  import {
198
198
  Toolbar2,
199
199
  ToolbarButton2,
@@ -201,7 +201,7 @@ import {
201
201
  ToolbarInput2,
202
202
  ToolbarGroup2,
203
203
  ToolbarSeparator2
204
- } from "./chunk-83zjj4jd.js";
204
+ } from "./chunk-x6vx0v6d.js";
205
205
  import {
206
206
  Combobox2,
207
207
  ComboboxValue2,
@@ -228,15 +228,15 @@ import {
228
228
  NumberFieldIncrement2,
229
229
  NumberFieldScrubArea2,
230
230
  NumberFieldScrubAreaCursor2
231
- } from "./chunk-c7tnf6h7.js";
231
+ } from "./chunk-p1eqxz4v.js";
232
232
  import {
233
233
  NativeSelect2,
234
234
  NativeSelectOption2,
235
235
  NativeSelectOptGroup2
236
- } from "./chunk-5bw5h08v.js";
236
+ } from "./chunk-r4jzz4f2.js";
237
237
  import {
238
238
  Slider2
239
- } from "./chunk-644cnngf.js";
239
+ } from "./chunk-2mn2ctsk.js";
240
240
  import {
241
241
  DropdownMenu2,
242
242
  DropdownMenuPortal2,
@@ -253,7 +253,7 @@ import {
253
253
  DropdownMenuRadioItem2,
254
254
  DropdownMenuSeparator2,
255
255
  DropdownMenuShortcut2
256
- } from "./chunk-d4bm5rzy.js";
256
+ } from "./chunk-8wc2z7te.js";
257
257
  import {
258
258
  Empty2,
259
259
  EmptyHeader2,
@@ -283,7 +283,7 @@ import {
283
283
  import {
284
284
  RadioGroup2,
285
285
  RadioGroupItem2
286
- } from "./chunk-wndqbss9.js";
286
+ } from "./chunk-ekbesw9t.js";
287
287
  import {
288
288
  FieldSet2,
289
289
  FieldLegend2,
@@ -301,20 +301,20 @@ import {
301
301
  Toggle2,
302
302
  ToggleGroup2,
303
303
  ToggleGroupItem2
304
- } from "./chunk-aexby8h3.js";
304
+ } from "./chunk-q606kj28.js";
305
305
  import {
306
306
  Spinner2
307
307
  } from "./chunk-1xncv9gb.js";
308
308
  import {
309
309
  Checkbox2
310
- } from "./chunk-tnnf8ydf.js";
310
+ } from "./chunk-9w9berq8.js";
311
311
  import {
312
312
  Kbd2,
313
313
  KbdGroup2
314
314
  } from "./chunk-vyve5wf3.js";
315
315
  import {
316
316
  Switch2
317
- } from "./chunk-8ye0k6z7.js";
317
+ } from "./chunk-ptgtqv1a.js";
318
318
  import {
319
319
  Progress2,
320
320
  ProgressTrack2,
@@ -364,7 +364,7 @@ import {
364
364
  SidebarMenuSub2,
365
365
  SidebarMenuSubItem2,
366
366
  SidebarMenuSubButton2
367
- } from "./chunk-8vfh3ez0.js";
367
+ } from "./chunk-c9ypcp4s.js";
368
368
  import {
369
369
  Avatar2,
370
370
  AvatarImage2,
@@ -373,23 +373,18 @@ import {
373
373
  AvatarGroup2,
374
374
  AvatarGroupCount2
375
375
  } from "./chunk-hyq4nwg2.js";
376
- import {
377
- TooltipProvider2,
378
- Tooltip2,
379
- TooltipTrigger2,
380
- TooltipContent2
381
- } from "./chunk-mz3e810d.js";
382
376
  import {
383
377
  HoverCard2,
384
378
  HoverCardTrigger2,
385
379
  HoverCardContent2
386
- } from "./chunk-hh43wg05.js";
380
+ } from "./chunk-60p7sagm.js";
387
381
  import {
388
382
  Skeleton2
389
383
  } from "./chunk-d70rcwk7.js";
390
384
  import {
391
385
  Label2
392
386
  } from "./chunk-jcxxjkqx.js";
387
+ import"./chunk-4710gn6d.js";
393
388
  import {
394
389
  badgeVariants2,
395
390
  Badge2
@@ -398,11 +393,8 @@ import {
398
393
  Collapsible2,
399
394
  CollapsibleTrigger2,
400
395
  CollapsibleContent2
401
- } from "./chunk-24d68cjp.js";
402
- import {
403
- DirectionProvider2,
404
- useDirection2
405
- } from "./chunk-jpvw9xqy.js";
396
+ } from "./chunk-fw86vanx.js";
397
+ import"./chunk-tcefvfr8.js";
406
398
  import {
407
399
  Popover2,
408
400
  PopoverTrigger2,
@@ -410,7 +402,7 @@ import {
410
402
  PopoverHeader2,
411
403
  PopoverTitle2,
412
404
  PopoverDescription2
413
- } from "./chunk-4djw71cv.js";
405
+ } from "./chunk-21ab0jsp.js";
414
406
  import {
415
407
  Dialog2,
416
408
  DialogTrigger2,
@@ -422,7 +414,7 @@ import {
422
414
  DialogFooter2,
423
415
  DialogTitle2,
424
416
  DialogDescription2
425
- } from "./chunk-ex1zk6ta.js";
417
+ } from "./chunk-jgdpa00w.js";
426
418
  import {
427
419
  InputGroup2,
428
420
  InputGroupAddon2,
@@ -430,19 +422,14 @@ import {
430
422
  InputGroupText2,
431
423
  InputGroupInput2,
432
424
  InputGroupTextarea2
433
- } from "./chunk-57jj9v64.js";
425
+ } from "./chunk-14mh00z3.js";
434
426
  import {
435
427
  Input2
436
- } from "./chunk-59p19t57.js";
428
+ } from "./chunk-0fmrwsgp.js";
437
429
  import {
438
430
  Textarea2
439
- } from "./chunk-hz9azhzx.js";
440
- import {
441
- PortalProvider2
442
- } from "./chunk-aa7m22zj.js";
443
- import {
444
- usePortalContainer2
445
- } from "./chunk-j89xg1ak.js";
431
+ } from "./chunk-tq0pfv5h.js";
432
+ import"./chunk-7jpsybag.js";
446
433
  import"./chunk-k99h6evz.js";
447
434
  import {
448
435
  Separator2
@@ -450,11 +437,26 @@ import {
450
437
  import {
451
438
  useTheme2
452
439
  } from "./chunk-1j2hz3w9.js";
453
- import"./chunk-e6hk39ev.js";
454
440
  import {
441
+ TooltipProvider2,
442
+ Tooltip2,
443
+ TooltipTrigger2,
444
+ TooltipContent2,
455
445
  buttonVariants2,
456
446
  Button2
457
- } from "./chunk-q7p28b89.js";
447
+ } from "./chunk-38301e40.js";
448
+ import {
449
+ usePortalContainer2,
450
+ PortalProvider2
451
+ } from "./chunk-x90xmrba.js";
452
+ import {
453
+ DirectionProvider2,
454
+ useDirection2
455
+ } from "./chunk-jpvw9xqy.js";
456
+ import"./chunk-e6hk39ev.js";
457
+ import"./chunk-5mydsjp3.js";
458
+ import"./chunk-8ssktt4b.js";
459
+ import"./chunk-7ny0vyek.js";
458
460
  import {
459
461
  cn2
460
462
  } from "./chunk-cp2m7y7v.js";
package/dist/prototype.js CHANGED
@@ -2051,7 +2051,7 @@ var program = new Command;
2051
2051
  // package.json
2052
2052
  var package_default = {
2053
2053
  name: "@alexgorbatchev/shadcn",
2054
- version: "0.0.42",
2054
+ version: "0.0.44",
2055
2055
  description: "Sharp, monospace React components with compact and comfortable densities.",
2056
2056
  license: "MIT",
2057
2057
  repository: {
@@ -3095,6 +3095,10 @@ var package_default = {
3095
3095
  "./json-render/catalog": {
3096
3096
  types: "./dist/components/json-render/catalog.d.ts",
3097
3097
  import: "./dist/components/json-render/catalog.js"
3098
+ },
3099
+ "./analytics": {
3100
+ types: "./dist/components/analytics/index.d.ts",
3101
+ import: "./dist/components/analytics/index.js"
3098
3102
  }
3099
3103
  },
3100
3104
  publishConfig: {
@@ -15,6 +15,7 @@ import { Button, buttonVariants, Spinner } from "@alexgorbatchev/shadcn";
15
15
 
16
16
  ```tsx
17
17
  import { ArrowRightIcon, BookmarkIcon } from "lucide-react";
18
+ import { useState, type ReactElement, type FormEvent, type ComponentProps } from "react";
18
19
  ```
19
20
 
20
21
  ## Default component
@@ -261,6 +262,25 @@ Storybook CSF excerpts. Default args and render apply unless overridden. Local h
261
262
  }
262
263
  ```
263
264
 
265
+ ### DisabledWithReason
266
+
267
+ ```tsx
268
+ {
269
+ args: { children: "Import tracks", disabledReason }
270
+ }
271
+ ```
272
+
273
+ ### DisabledReasonRecovery
274
+
275
+ ```tsx
276
+ {
277
+ render: (args) => <DisabledReasonForm onClick={args.onClick}/>,
278
+ beforeEach: () => {
279
+ submitted.mockClear();
280
+ }
281
+ }
282
+ ```
283
+
264
284
  ### RightToLeftIcons
265
285
 
266
286
  ```tsx
@@ -8,7 +8,8 @@ Source: src/components/stories/actions/ToggleGroup.stories.tsx
8
8
  ## Public imports
9
9
 
10
10
  ```tsx
11
- import { ToggleGroup, ToggleGroupItem, DirectionProvider, Field, FieldLabel, FieldDescription } from "@alexgorbatchev/shadcn";
11
+ import { ToggleGroup, ToggleGroupItem, DirectionProvider, Field, FieldLabel, FieldDescription, Button } from "@alexgorbatchev/shadcn";
12
+ import { AnalyticsProvider } from "@alexgorbatchev/shadcn/analytics";
12
13
  ```
13
14
 
14
15
  ## Supporting imports
@@ -61,6 +62,52 @@ Storybook CSF excerpts. Default args and render apply unless overridden. Local h
61
62
  {}
62
63
  ```
63
64
 
65
+ ### RequiredSingle
66
+
67
+ ```tsx
68
+ {
69
+ args: { required: true, defaultValue: ["bold"], variant: "outline", analytics: { id: "required-format" } },
70
+ beforeEach: () => {
71
+ trackRequiredChange.mockClear();
72
+ },
73
+ decorators: [
74
+ (Story) => (<AnalyticsProvider transport={{ track: trackRequiredChange }}>
75
+ <Story />
76
+ </AnalyticsProvider>),
77
+ ]
78
+ }
79
+ ```
80
+
81
+ ### RequiredControlled
82
+
83
+ ```tsx
84
+ {
85
+ beforeEach: () => {
86
+ submitRequiredForm.mockClear();
87
+ },
88
+ render: function Render(args) {
89
+ const [value, setValue] = useState<[
90
+ string
91
+ ]>(["bold"]);
92
+ return (<form onSubmit={(event) => {
93
+ event.preventDefault();
94
+ submitRequiredForm(value);
95
+ }}>
96
+ <ToggleGroup {...args} required multiple={false} value={value} defaultValue={undefined} onValueChange={(values, details) => {
97
+ const next = values[0];
98
+ if (next !== undefined)
99
+ setValue([next]);
100
+ args.onValueChange?.(values, details);
101
+ }}>
102
+ <ToggleGroupItem value="bold">Bold</ToggleGroupItem>
103
+ <ToggleGroupItem value="italic">Italic</ToggleGroupItem>
104
+ </ToggleGroup>
105
+ <Button type="submit">Apply formatting</Button>
106
+ </form>);
107
+ }
108
+ }
109
+ ```
110
+
64
111
  ### Multiple
65
112
 
66
113
  ```tsx
@@ -0,0 +1,59 @@
1
+ # AnalyticsProvider
2
+
3
+ Story: @alexgorbatchev/shadcn/components/providers/AnalyticsProvider
4
+ Source: src/components/stories/providers/AnalyticsProvider.stories.tsx
5
+
6
+ [Full source and local helpers](https://github.com/alexgorbatchev/shadcn/blob/main/src/components/stories/providers/AnalyticsProvider.stories.tsx)
7
+
8
+ ## Public imports
9
+
10
+ ```tsx
11
+ import { AnalyticsProvider, AnalyticsScope } from "@alexgorbatchev/shadcn/analytics";
12
+ import { Button, Input } from "@alexgorbatchev/shadcn";
13
+ ```
14
+
15
+ ## Default component
16
+
17
+ ```tsx
18
+ AnalyticsProvider
19
+ ```
20
+
21
+ ## Default args
22
+
23
+ ```tsx
24
+ { transport: { track: fn() }, enabled: true }
25
+ ```
26
+
27
+ ## Default render
28
+
29
+ ```tsx
30
+ (args) => (<AnalyticsProvider {...args}>
31
+ <AnalyticsScope name="preferences" properties={{ surface: "settings" }}>
32
+ <div className="grid max-w-sm gap-3">
33
+ <Input aria-label="Display name" analytics={{ id: "display-name" }}/>
34
+ <Button analytics={{ id: "save-preferences" }}>Save preferences</Button>
35
+ <Button analytics={false} variant="outline">
36
+ Untracked action
37
+ </Button>
38
+ </div>
39
+ </AnalyticsScope>
40
+ </AnalyticsProvider>)
41
+ ```
42
+
43
+ ## Examples
44
+
45
+ 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.
46
+
47
+ ### ConfigurableTransport
48
+
49
+ ```tsx
50
+ {}
51
+ ```
52
+
53
+ ### Disabled
54
+
55
+ ```tsx
56
+ {
57
+ args: { enabled: false, transport: { track: fn() } }
58
+ }
59
+ ```
package/llms/setup.md CHANGED
@@ -50,30 +50,31 @@ Package preparation and contributor commands are documented in [AGENTS.md](https
50
50
 
51
51
  Import shared controls and providers from `@alexgorbatchev/shadcn`. Import the following features from their dedicated entry points and install only the peers you use. These features, their hooks, and their types are not exported from the package root.
52
52
 
53
- | Import path suffix | Components | Install alongside the package |
54
- | -------------------- | -------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
55
- | `/json-render` | JSON Render component registry and catalog | `bun add @json-render/core@0.21.1 @json-render/react@0.21.1 embla-carousel-react@^8.6.0` |
56
- | `/chart` | Chart parts, AnalyticsChart, Sparkline, hooks and types | `bun add recharts@3.8.0 cssesc@3.0.0 es-toolkit@1.52.0` |
57
- | `/calendar` | Calendar, CalendarDayButton, DatePicker, DateRangePicker | `bun add @daypicker/react@^10.0.2` |
58
- | `/persian-calendar` | PersianCalendar | `bun add @daypicker/persian@^10.0.2 @daypicker/react@^10.0.2` |
59
- | `/carousel` | Carousel components, useCarousel, and carousel types | `bun add embla-carousel-react@^8.6.0` |
60
- | `/command` | Command components, including CommandDialog | `bun add cmdk@^1.1.1` |
61
- | `/resizable` | Resizable components and SplitView | `bun add react-resizable-panels@^4.14.3` |
62
- | `/fonts.css` | JetBrains Mono font stylesheet | `bun add @fontsource-variable/jetbrains-mono@^5.3.0` |
63
- | `/sonner` | Sonner, SonnerToaster, Toaster, toast, useSonner | `bun add sonner@2.0.8`; the patched runtime is bundled |
64
- | `/input-otp` | InputOTP components | `bun add input-otp@1.5.0`; the patched runtime is bundled |
65
- | `/virtual-table` | VirtualTable and row measurement props | `@tanstack/react-virtual@3.14.13` |
66
- | `/message-scroller` | MessageScroller components, hooks, and types | `bun add @shadcn/react@0.3.1`; the patched runtime is bundled |
67
- | `/questionnaire` | Questionnaire components and types | `bun add @shadcn/react@0.3.1`; the patched runtime is bundled |
68
- | `/data-grid` | DataGrid, column picker, and native table helpers | `bun add @tanstack/react-table@9.2.8` |
69
- | `/virtual-data-grid` | VirtualDataGrid and row measurement props | `bun add @tanstack/react-table@9.2.8 @tanstack/react-virtual@3.14.13` |
70
- | `/file-upload` | FileUpload selection and validation | `bun add react-dropzone@^20.1.4` |
71
- | `/color-picker` | ColorPicker | `bun add react-colorful@^5.8.1` |
72
- | `/image-crop` | ImageCrop and native export helpers | `bun add react-image-crop@^11.1.2` |
73
- | `/tree` | Tree, native hooks and features | `bun add @headless-tree/core@^1.8.0 @headless-tree/react@^1.8.0` |
74
- | `/editor` | RichTextEditor, native Tiptap hooks and StarterKit | `bun add @tiptap/core@^3.32.0 @tiptap/react@^3.32.0 @tiptap/pm@^3.32.0 @tiptap/starter-kit@^3.32.0` |
75
- | `/event-calendar` | EventCalendar, EventForm and native calendar APIs | `bun add date-fns@^4.4.0`; TypeScript: `bun add -d @types/react-big-calendar@^1.16.3` |
76
- | `/gantt` | Gantt and Roadmap | `bun add date-fns@^4.4.0 @date-fns/tz@^1.5.0` |
53
+ | Import path suffix | Components | Install alongside the package |
54
+ | -------------------- | -------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
55
+ | `/analytics` | AnalyticsProvider, AnalyticsScope, AnalyticsImpression, useAnalytics | Existing core peers; no vendor SDK |
56
+ | `/json-render` | JSON Render component registry and catalog | `bun add @json-render/core@0.21.1 @json-render/react@0.21.1 embla-carousel-react@^8.6.0` |
57
+ | `/chart` | Chart parts, AnalyticsChart, Sparkline, hooks and types | `bun add recharts@3.8.0 cssesc@3.0.0 es-toolkit@1.52.0` |
58
+ | `/calendar` | Calendar, CalendarDayButton, DatePicker, DateRangePicker | `bun add @daypicker/react@^10.0.2` |
59
+ | `/persian-calendar` | PersianCalendar | `bun add @daypicker/persian@^10.0.2 @daypicker/react@^10.0.2` |
60
+ | `/carousel` | Carousel components, useCarousel, and carousel types | `bun add embla-carousel-react@^8.6.0` |
61
+ | `/command` | Command components, including CommandDialog | `bun add cmdk@^1.1.1` |
62
+ | `/resizable` | Resizable components and SplitView | `bun add react-resizable-panels@^4.14.3` |
63
+ | `/fonts.css` | JetBrains Mono font stylesheet | `bun add @fontsource-variable/jetbrains-mono@^5.3.0` |
64
+ | `/sonner` | Sonner, SonnerToaster, Toaster, toast, useSonner | `bun add sonner@2.0.8`; the patched runtime is bundled |
65
+ | `/input-otp` | InputOTP components | `bun add input-otp@1.5.0`; the patched runtime is bundled |
66
+ | `/virtual-table` | VirtualTable and row measurement props | `@tanstack/react-virtual@3.14.13` |
67
+ | `/message-scroller` | MessageScroller components, hooks, and types | `bun add @shadcn/react@0.3.1`; the patched runtime is bundled |
68
+ | `/questionnaire` | Questionnaire components and types | `bun add @shadcn/react@0.3.1`; the patched runtime is bundled |
69
+ | `/data-grid` | DataGrid, column picker, and native table helpers | `bun add @tanstack/react-table@9.2.8` |
70
+ | `/virtual-data-grid` | VirtualDataGrid and row measurement props | `bun add @tanstack/react-table@9.2.8 @tanstack/react-virtual@3.14.13` |
71
+ | `/file-upload` | FileUpload selection and validation | `bun add react-dropzone@^20.1.4` |
72
+ | `/color-picker` | ColorPicker | `bun add react-colorful@^5.8.1` |
73
+ | `/image-crop` | ImageCrop and native export helpers | `bun add react-image-crop@^11.1.2` |
74
+ | `/tree` | Tree, native hooks and features | `bun add @headless-tree/core@^1.8.0 @headless-tree/react@^1.8.0` |
75
+ | `/editor` | RichTextEditor, native Tiptap hooks and StarterKit | `bun add @tiptap/core@^3.32.0 @tiptap/react@^3.32.0 @tiptap/pm@^3.32.0 @tiptap/starter-kit@^3.32.0` |
76
+ | `/event-calendar` | EventCalendar, EventForm and native calendar APIs | `bun add date-fns@^4.4.0`; TypeScript: `bun add -d @types/react-big-calendar@^1.16.3` |
77
+ | `/gantt` | Gantt and Roadmap | `bun add date-fns@^4.4.0 @date-fns/tz@^1.5.0` |
77
78
 
78
79
  Import `@alexgorbatchev/shadcn/event-calendar.css` for EventCalendar, and `react-image-crop/dist/ReactCrop.css` for ImageCrop. The root also provides application shells, dashboard and billing layouts, authentication/settings forms, account/workspace controls, Kanban, facets, tags, number fields, toolbars, meters, stat cards and status displays. See the [component catalog reference](https://github.com/alexgorbatchev/shadcn/blob/main/docs/internal/component-catalog.md) for source groups, native APIs, dependency costs and consumer responsibilities.
79
80
 
@@ -91,6 +92,27 @@ The optional assistant-ui catalog provides presentational families under `/assis
91
92
 
92
93
  For embedded surfaces, import `PortalProvider` from the package root and pass the real overlay `container`. Dialogs, alerts, sheets, drawers, menus, navigation popups, comboboxes, selects, hover cards, tooltips, popovers, and Base UI toasts inherit that container. The container applies to the outermost popup: a popup opened inside another one, such as a select in a dialog, renders inside that popup's portal, where a modal dialog counts it as inside the dialog and keeps it reachable by assistive technology and the pointer. Native portal props can still supply an explicit container override.
93
94
 
95
+ ## Configurable analytics
96
+
97
+ Wrap the application in an optional analytics provider and supply your own transport:
98
+
99
+ ```tsx
100
+ import { Button } from "@alexgorbatchev/shadcn";
101
+ import { AnalyticsProvider, AnalyticsScope, type IAnalyticsTransport } from "@alexgorbatchev/shadcn/analytics";
102
+
103
+ function Settings({ transport, consent }: { transport: IAnalyticsTransport; consent: boolean }) {
104
+ return (
105
+ <AnalyticsProvider transport={transport} enabled={consent}>
106
+ <AnalyticsScope name="settings" properties={{ surface: "account" }}>
107
+ <Button analytics={{ id: "save-settings" }}>Save</Button>
108
+ </AnalyticsScope>
109
+ </AnalyticsProvider>
110
+ );
111
+ }
112
+ ```
113
+
114
+ The transport implements `track(event)` and may return a promise. The app owns vendor SDKs, identity, consent, and delivery. Components emit semantic UI events without extracting labels, values, URLs, or user content. Use `analytics={false}` for a control or a disabled scope for a subtree. Display components require explicit `AnalyticsImpression` observation. See the [event contract and catalog coverage](https://github.com/alexgorbatchev/shadcn/blob/main/docs/internal/analytics.md).
115
+
94
116
  # Quick Start
95
117
 
96
118
  For Bun's native HTML server, install its Tailwind plugin:
@@ -248,6 +270,8 @@ The npm package includes the same index at `llms.txt` in its root and its linked
248
270
 
249
271
  Use the composed parts exported from the package root, such as `DialogTrigger`, `DialogContent`, and `DialogTitle`. Storybook provides working compositions, variants, disabled states, and action callbacks. The local preview starts with `bun run storybook` and binds to `127.0.0.1:6006`.
250
272
 
273
+ `ToggleGroup` supports optional single selection by default and independent selections with `multiple`. Set `required` for a single selection that stays pressed when activated again by pointer, Space, or Enter. Required groups accept exactly one initial item through the controlled `value` or uncontrolled `defaultValue` tuple and cannot use `multiple`. Empty selection requests are canceled through Base UI before consumer callbacks or analytics run; accepted changes retain the native array value and event-details API. This selection rule does not add form submission or validation behavior.
274
+
251
275
  `ScrollArea` supplies a native scroll viewport and one vertical `ScrollBar` by default. Set `scrollbars={<ScrollBar orientation="horizontal" />}` for a wide horizontal layout, or supply a fragment containing vertical and horizontal parts for both axes. The tracks stay outside the viewport and reserve their shared corner. `keepMounted` belongs to `ScrollBar`; root and track className callbacks receive native overflow/scroll state. Focus the viewport for native keyboard scrolling.
252
276
 
253
277
  Scrolling is intentional: cards, panels, dialogs, sheets, and floating surfaces carry `data-scroll="none"`. Put long content in a nested `ScrollArea` or an explicitly styled native scroll viewport; the outer surface stays stationary. `DialogContent` bounds its height to the viewport and uses a flex column, so give a nested `ScrollArea` `className="min-h-0"` to let it shrink within the dialog. Headers and footers stay outside that scroll area when they need to remain visible.
package/llms.txt CHANGED
@@ -461,6 +461,7 @@ Generated from the public package exports and Storybook sources.
461
461
 
462
462
  ## providers
463
463
 
464
+ - [AnalyticsProvider](./llms/components/providers/AnalyticsProvider.md)
464
465
  - [DensityProvider](./llms/components/providers/DensityProvider.md)
465
466
  - [DirectionProvider](./llms/components/providers/DirectionProvider.md)
466
467
  - [LayoutGuard](./llms/components/providers/LayoutGuard.md): ThemeProvider installs LayoutGuard in development. Mark a surface with data-layout-boundary="" to check both axes, or "x" / "y" for one axis. collectLayoutViolations(root, tolerance = 1) returns elements, edges, pixel overflow, and diagnostic messages for browser assertions. Checks include text ranges and clipped controls. Native scroll viewports permit displacement on their scrolling axes. Hidden/inert content and screen-reader labels are excluded; ellipsis text is allowed. Use data-layout-exclude="reason" only for intentional escape such as an edge-mounted resize rail. Portals are independent: mark their own surfaces. Finite layout animations settle before development errors; production installs no observer. Check every meaningful interaction state in tests. Axis-aligned DOM geometry does not measure shadows, pseudo-elements, or painted SVG paths.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alexgorbatchev/shadcn",
3
- "version": "0.0.42",
3
+ "version": "0.0.44",
4
4
  "description": "Sharp, monospace React components with compact and comfortable densities.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -1044,6 +1044,10 @@
1044
1044
  "./json-render/catalog": {
1045
1045
  "types": "./dist/components/json-render/catalog.d.ts",
1046
1046
  "import": "./dist/components/json-render/catalog.js"
1047
+ },
1048
+ "./analytics": {
1049
+ "types": "./dist/components/analytics/index.d.ts",
1050
+ "import": "./dist/components/analytics/index.js"
1047
1051
  }
1048
1052
  },
1049
1053
  "publishConfig": {
@@ -1,14 +0,0 @@
1
- // src/hooks/usePortalContainer.ts
2
- import { useContext } from "react";
3
-
4
- // src/portal/PortalContext.ts
5
- import { createContext } from "react";
6
- var PortalContext = createContext(undefined);
7
-
8
- // src/hooks/usePortalContainer.ts
9
- function usePortalContainer2(container) {
10
- const inheritedContainer = useContext(PortalContext);
11
- return container === undefined ? inheritedContainer : container;
12
- }
13
-
14
- export { PortalContext, usePortalContainer2 };
@@ -1,83 +0,0 @@
1
- import {
2
- useDensity
3
- } from "./chunk-e6hk39ev.js";
4
- import {
5
- usePortalContainer2
6
- } from "./chunk-j89xg1ak.js";
7
- import {
8
- usePortalNode,
9
- PortalProvider2
10
- } from "./chunk-aa7m22zj.js";
11
- import {
12
- useDirection2
13
- } from "./chunk-jpvw9xqy.js";
14
- import {
15
- cn2
16
- } from "./chunk-cp2m7y7v.js";
17
-
18
- // src/components/Tooltip.tsx
19
- import { Tooltip as TooltipPrimitive } from "@base-ui/react/tooltip";
20
- import { jsx, jsxs } from "react/jsx-runtime";
21
- function TooltipProvider2({ delay = 0, ...props }) {
22
- return /* @__PURE__ */ jsx(TooltipPrimitive.Provider, {
23
- "data-slot": "tooltip-provider",
24
- delay,
25
- ...props
26
- });
27
- }
28
- function Tooltip2({ ...props }) {
29
- return /* @__PURE__ */ jsx(TooltipPrimitive.Root, {
30
- "data-slot": "tooltip",
31
- ...props
32
- });
33
- }
34
- function TooltipTrigger2({ ...props }) {
35
- return /* @__PURE__ */ jsx(TooltipPrimitive.Trigger, {
36
- "data-slot": "tooltip-trigger",
37
- ...props
38
- });
39
- }
40
- function TooltipContent2({
41
- density,
42
- className,
43
- side = "top",
44
- sideOffset = 4,
45
- align = "center",
46
- alignOffset = 0,
47
- children,
48
- ...props
49
- }) {
50
- const resolvedDensity = useDensity(density);
51
- const direction = useDirection2();
52
- const container = usePortalContainer2();
53
- const portal = usePortalNode();
54
- return /* @__PURE__ */ jsx(TooltipPrimitive.Portal, {
55
- container,
56
- ref: portal.ref,
57
- children: /* @__PURE__ */ jsx(PortalProvider2, {
58
- container: portal.node,
59
- children: /* @__PURE__ */ jsx(TooltipPrimitive.Positioner, {
60
- dir: direction,
61
- align,
62
- alignOffset,
63
- side,
64
- sideOffset,
65
- className: "isolate ",
66
- children: /* @__PURE__ */ jsxs(TooltipPrimitive.Popup, {
67
- "data-density": resolvedDensity,
68
- "data-slot": "tooltip-content",
69
- className: (state) => cn2("inline-flex w-fit max-w-xs origin-(--transform-origin) items-center gap-control-gap rounded-md border border-frame-edge shadow-frame bg-popover px-3 py-1.5 font-sans text-xs text-popover-foreground has-data-[slot=kbd]:pe-1.5 **:data-[slot=kbd]:relative **:data-[slot=kbd]:isolate **: **:data-[slot=kbd]:rounded-sm data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0", typeof className === "function" ? className(state) : className),
70
- ...props,
71
- children: [
72
- children,
73
- /* @__PURE__ */ jsx(TooltipPrimitive.Arrow, {
74
- className: " size-2.5 translate-y-[calc(-50%-2px)] rotate-45 rounded-[2px] bg-popover fill-popover data-[side=bottom]:top-1 data-[side=inline-end]:top-1/2! data-[side=inline-end]:-start-1 data-[side=inline-end]:-translate-y-1/2 data-[side=inline-start]:top-1/2! data-[side=inline-start]:-end-1 data-[side=inline-start]:-translate-y-1/2 data-[side=left]:top-1/2! data-[side=left]:-right-1 data-[side=left]:-translate-y-1/2 data-[side=right]:top-1/2! data-[side=right]:-left-1 data-[side=right]:-translate-y-1/2 data-[side=top]:-bottom-2.5"
75
- })
76
- ]
77
- })
78
- })
79
- })
80
- });
81
- }
82
-
83
- export { TooltipProvider2, Tooltip2, TooltipTrigger2, TooltipContent2 };