@alexgorbatchev/shadcn 0.0.42 → 0.0.43

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 (456) hide show
  1. package/README.md +46 -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-cyfbg25t.js → chunk-0ybh8xre.js} +3 -3
  12. package/dist/{chunk-dvmxyk3q.js → chunk-10t1w38s.js} +2 -2
  13. package/dist/{chunk-57jj9v64.js → chunk-14mh00z3.js} +3 -3
  14. package/dist/{chunk-h6kcqtzf.js → chunk-1hq2k0fs.js} +6 -2
  15. package/dist/{chunk-saf6rz9s.js → chunk-1hy9rfvc.js} +1 -1
  16. package/dist/{chunk-nvegyysk.js → chunk-1q30wk9x.js} +2 -2
  17. package/dist/{chunk-3bzbwhda.js → chunk-1sqv5axv.js} +6 -2
  18. package/dist/{chunk-yxgyprns.js → chunk-1sxpyjph.js} +1 -1
  19. package/dist/{chunk-zdx7dtcw.js → chunk-1t959882.js} +1 -1
  20. package/dist/{chunk-p8gshf3k.js → chunk-1zbtg30t.js} +6 -2
  21. package/dist/{chunk-4djw71cv.js → chunk-21ab0jsp.js} +12 -6
  22. package/dist/{chunk-7gpq6kty.js → chunk-23419f5j.js} +1 -1
  23. package/dist/{chunk-f5hphka1.js → chunk-23jrbq6y.js} +5 -1
  24. package/dist/{chunk-k4aawd44.js → chunk-2krw4tjq.js} +1 -1
  25. package/dist/{chunk-644cnngf.js → chunk-2mn2ctsk.js} +6 -0
  26. package/dist/{chunk-7e3samhv.js → chunk-2mswp6h1.js} +3 -3
  27. package/dist/{chunk-4zaj9tsr.js → chunk-2pzvxbq3.js} +3 -3
  28. package/dist/chunk-38301e40.js +182 -0
  29. package/dist/{chunk-he0w0tx1.js → chunk-3b6ws9hk.js} +1 -1
  30. package/dist/{chunk-ttdeyjvj.js → chunk-3c35ysaq.js} +1 -1
  31. package/dist/{chunk-4stkzcvt.js → chunk-3r0q02k6.js} +175 -53
  32. package/dist/{chunk-fgzcp6dt.js → chunk-3t7h84te.js} +1 -1
  33. package/dist/{chunk-7b3n0ftm.js → chunk-3v95p5js.js} +1 -1
  34. package/dist/{chunk-ey6q1ra5.js → chunk-3wap1z7h.js} +6 -2
  35. package/dist/{chunk-d0qccfv4.js → chunk-46tg5t7g.js} +3 -3
  36. package/dist/chunk-4710gn6d.js +15 -0
  37. package/dist/{chunk-5z9y2mdj.js → chunk-474fgeht.js} +1 -1
  38. package/dist/{chunk-7mj8g4vx.js → chunk-48yhjpfs.js} +1 -1
  39. package/dist/{chunk-yazbpnav.js → chunk-4e1eq1t5.js} +2 -2
  40. package/dist/{chunk-pqe77cc1.js → chunk-4e879g03.js} +1 -1
  41. package/dist/{chunk-espw1b6e.js → chunk-4gcpx4pm.js} +1 -1
  42. package/dist/{chunk-s0typ7hv.js → chunk-55s7v2mw.js} +2 -2
  43. package/dist/{chunk-ret3m6vs.js → chunk-588wj6g4.js} +1 -1
  44. package/dist/{chunk-mwzhaw5v.js → chunk-5h7xxnr7.js} +1 -1
  45. package/dist/chunk-5mydsjp3.js +48 -0
  46. package/dist/{chunk-pc2d5950.js → chunk-5myr07fp.js} +1 -1
  47. package/dist/{chunk-f0jej3qt.js → chunk-5w279fsn.js} +6 -6
  48. package/dist/{chunk-zn1w5cd5.js → chunk-5zyc28sc.js} +11 -7
  49. package/dist/{chunk-hh43wg05.js → chunk-60p7sagm.js} +12 -6
  50. package/dist/{chunk-0skytwpk.js → chunk-634pk1cg.js} +2 -2
  51. package/dist/{chunk-vf1rsqpk.js → chunk-645dhey7.js} +1 -1
  52. package/dist/{chunk-na2mxcxz.js → chunk-6fp821jv.js} +2 -2
  53. package/dist/{chunk-dzvsjw59.js → chunk-6jw87d07.js} +33 -4
  54. package/dist/{chunk-58st8hnr.js → chunk-6kygf29c.js} +1 -1
  55. package/dist/{chunk-sb00e3gj.js → chunk-77xfccfq.js} +3 -3
  56. package/dist/chunk-7jpsybag.js +33 -0
  57. package/dist/{chunk-987zth0a.js → chunk-7mnba0d8.js} +8 -3
  58. package/dist/chunk-7ny0vyek.js +25 -0
  59. package/dist/{chunk-jkgje3ar.js → chunk-7qwp41y5.js} +1 -1
  60. package/dist/{chunk-rffrerg5.js → chunk-7w8yemba.js} +7 -2
  61. package/dist/{chunk-809fwd84.js → chunk-7zyf9nnf.js} +24 -10
  62. package/dist/{chunk-k138cvn8.js → chunk-83v2vma2.js} +1 -1
  63. package/dist/{chunk-enxt9sfx.js → chunk-84gs32n6.js} +1 -1
  64. package/dist/{chunk-5x7387nh.js → chunk-8bxfp671.js} +1 -1
  65. package/dist/{chunk-726x26pk.js → chunk-8jnfvgvk.js} +1 -1
  66. package/dist/{chunk-6kwf9644.js → chunk-8k18tnap.js} +1 -1
  67. package/dist/{chunk-3jrsp186.js → chunk-8q0xpeh4.js} +1 -1
  68. package/dist/{chunk-gqm1483k.js → chunk-8rtm4y46.js} +2 -2
  69. package/dist/chunk-8ssktt4b.js +11 -0
  70. package/dist/{chunk-d4bm5rzy.js → chunk-8wc2z7te.js} +37 -12
  71. package/dist/{chunk-b06rfrfz.js → chunk-8xnjf4ef.js} +6 -2
  72. package/dist/{chunk-tfqfqn8z.js → chunk-96x8wa8w.js} +1 -1
  73. package/dist/{chunk-3se9vgw9.js → chunk-9qcqxp3v.js} +1 -1
  74. package/dist/{chunk-dtkw8m6d.js → chunk-9t5h5ps3.js} +1 -1
  75. package/dist/{chunk-tnnf8ydf.js → chunk-9w9berq8.js} +6 -1
  76. package/dist/{chunk-a50gtwc9.js → chunk-a82d9z1e.js} +1 -1
  77. package/dist/{chunk-q5m8vz61.js → chunk-aahx2gyb.js} +1 -1
  78. package/dist/{chunk-3dyqen8w.js → chunk-agy4dzea.js} +1 -1
  79. package/dist/{chunk-n789tekk.js → chunk-axw1yqxz.js} +1 -1
  80. package/dist/{chunk-97kagey4.js → chunk-beywepck.js} +5 -1
  81. package/dist/{chunk-rkbbjjwq.js → chunk-bt7ramb0.js} +6 -2
  82. package/dist/{chunk-ga79snaw.js → chunk-c4m53x5s.js} +1 -1
  83. package/dist/{chunk-8vfh3ez0.js → chunk-c9ypcp4s.js} +32 -19
  84. package/dist/{chunk-ybypybsb.js → chunk-cmd9erv0.js} +6 -1
  85. package/dist/{chunk-r6p7982y.js → chunk-cqbd39je.js} +6 -1
  86. package/dist/{chunk-81y5s246.js → chunk-ct6ayjkt.js} +1 -1
  87. package/dist/{chunk-bt57g6ms.js → chunk-cvg5366s.js} +1 -1
  88. package/dist/{chunk-7p6032sv.js → chunk-cy1xv5nz.js} +10 -2
  89. package/dist/{chunk-6wx7cr8d.js → chunk-d444bwwf.js} +2 -2
  90. package/dist/{chunk-yrxjwwz3.js → chunk-dfkzm4f1.js} +218 -199
  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-sat9hjv7.js → chunk-qky9999p.js} +1 -1
  149. package/dist/{chunk-svkzwq5e.js → chunk-qmfxytfb.js} +1 -1
  150. package/dist/{chunk-wnyxdfzd.js → chunk-qv3b2jvc.js} +1 -1
  151. package/dist/{chunk-5bw5h08v.js → chunk-r4jzz4f2.js} +7 -1
  152. package/dist/{chunk-cb51ybz5.js → chunk-r7mfpkbb.js} +12 -4
  153. package/dist/{chunk-5wndb6hx.js → chunk-ray29hdb.js} +6 -2
  154. package/dist/{chunk-z4jpedvh.js → chunk-rr74321a.js} +1 -1
  155. package/dist/{chunk-wensxzx9.js → chunk-rtb0ejf0.js} +1 -1
  156. package/dist/{chunk-tvd9n2kd.js → chunk-s0ecp1mv.js} +1 -1
  157. package/dist/{chunk-y7pkfcsz.js → chunk-s8ejm9d8.js} +1 -1
  158. package/dist/{chunk-v9r6t8bz.js → chunk-snq5m541.js} +6 -2
  159. package/dist/{chunk-4qn98ngf.js → chunk-srr328m4.js} +1 -1
  160. package/dist/{chunk-6p6zfyjr.js → chunk-svz0farj.js} +1 -1
  161. package/dist/{chunk-d3fr5vtc.js → chunk-t97ts9df.js} +1 -1
  162. package/dist/{chunk-79667fz5.js → chunk-tbd56x4h.js} +3 -3
  163. package/dist/chunk-tcefvfr8.js +15 -0
  164. package/dist/{chunk-0ftjkxjg.js → chunk-td7ra5d2.js} +1 -1
  165. package/dist/{chunk-6wvhq8wq.js → chunk-tg5grn8f.js} +2 -2
  166. package/dist/{chunk-hz9azhzx.js → chunk-tq0pfv5h.js} +7 -2
  167. package/dist/{chunk-4x3ck2yz.js → chunk-v24aqtkt.js} +1 -1
  168. package/dist/{chunk-sbrpnv8s.js → chunk-v8gdzaxt.js} +6 -2
  169. package/dist/{chunk-3mzqf6b4.js → chunk-vg2j5044.js} +1 -1
  170. package/dist/{chunk-map13pza.js → chunk-vhm7fpav.js} +11 -11
  171. package/dist/{chunk-kt085sbn.js → chunk-vm3fzfnj.js} +1 -1
  172. package/dist/{chunk-2bx2r98r.js → chunk-vrs3371x.js} +6 -2
  173. package/dist/{chunk-bqyvf9jn.js → chunk-w1jm0rx3.js} +8 -4
  174. package/dist/{chunk-e0pv0me5.js → chunk-w9jyajx3.js} +1 -1
  175. package/dist/{chunk-aexby8h3.js → chunk-w9s21aj0.js} +17 -2
  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 +3 -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/providers/AnalyticsProvider.md +59 -0
  451. package/llms/setup.md +46 -24
  452. package/llms.txt +1 -0
  453. package/package.json +5 -1
  454. package/dist/chunk-j89xg1ak.js +0 -14
  455. package/dist/chunk-mz3e810d.js +0 -83
  456. package/dist/chunk-q7p28b89.js +0 -68
package/README.md CHANGED
@@ -50,30 +50,31 @@ Package preparation and contributor commands are documented in [AGENTS.md](./AGE
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](./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](./docs/internal/analytics.md).
115
+
94
116
  # Quick Start
95
117
 
96
118
  For Bun's native HTML server, install its Tailwind plugin:
@@ -0,0 +1,2 @@
1
+ import type { IAnalyticsContext } from "./types.js";
2
+ export declare const AnalyticsContext: import("react").Context<IAnalyticsContext | null>;
@@ -0,0 +1,4 @@
1
+ /** Only inspect event metadata; never serialize callback arguments or DOM content. */
2
+ export declare function analyticsSource(value: unknown): Event | undefined;
3
+ export declare function isAnalyticsCanceled(value: unknown): boolean;
4
+ export declare function isAnalyticsProgrammatic(value: unknown): boolean;
@@ -0,0 +1,55 @@
1
+ import type { ReactNode } from "react";
2
+ export type AnalyticsProperties = Readonly<Record<string, string | number | boolean | null>>;
3
+ export interface IAnalyticsOptions {
4
+ id?: string;
5
+ properties?: AnalyticsProperties;
6
+ }
7
+ export interface IAnalyticsProps {
8
+ analytics?: IAnalyticsOptions | false;
9
+ }
10
+ export type UIAnalyticsDetail = {
11
+ name: "ui.activate";
12
+ } | {
13
+ name: "ui.change-request";
14
+ } | {
15
+ name: "ui.open-request";
16
+ open: boolean;
17
+ } | {
18
+ name: "ui.commit";
19
+ } | {
20
+ name: "ui.navigate";
21
+ } | {
22
+ name: "ui.drop";
23
+ } | {
24
+ name: "ui.impression";
25
+ };
26
+ export interface IAnalyticsEnvelope {
27
+ schemaVersion: 1;
28
+ component: string;
29
+ id?: string;
30
+ scope: readonly string[];
31
+ properties: AnalyticsProperties;
32
+ }
33
+ export type UIAnalyticsEvent = IAnalyticsEnvelope & UIAnalyticsDetail;
34
+ export interface IAnalyticsTransport {
35
+ track(event: UIAnalyticsEvent): void | Promise<void>;
36
+ }
37
+ export interface IAnalyticsProviderProps {
38
+ children: ReactNode;
39
+ transport: IAnalyticsTransport;
40
+ enabled?: boolean;
41
+ filter?: (event: UIAnalyticsEvent) => boolean;
42
+ onError?: (error: unknown) => void;
43
+ }
44
+ export interface IAnalyticsScopeProps {
45
+ children: ReactNode;
46
+ name: string;
47
+ properties?: AnalyticsProperties;
48
+ enabled?: boolean;
49
+ }
50
+ export interface IAnalyticsContext {
51
+ enabled: boolean;
52
+ scope: readonly string[];
53
+ properties: AnalyticsProperties;
54
+ send(event: UIAnalyticsEvent, source?: Event): void;
55
+ }
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  TooltipIconButton2
3
- } from "./chunk-1qsph9ej.js";
3
+ } from "./chunk-kzar67tq.js";
4
4
 
5
5
  // src/components/assistant-ui/native/VoiceMuteButton.tsx
6
6
  import { useVoiceControls, useVoiceState } from "@assistant-ui/react";
@@ -1,3 +1,6 @@
1
+ import {
2
+ useAnalyticsInput
3
+ } from "./chunk-7jpsybag.js";
1
4
  import {
2
5
  cn2
3
6
  } from "./chunk-cp2m7y7v.js";
@@ -5,13 +8,15 @@ import {
5
8
  // src/components/Input.tsx
6
9
  import { Input as InputPrimitive } from "@base-ui/react/input";
7
10
  import { jsx } from "react/jsx-runtime";
8
- function Input2({ density, className, type, ...props }) {
11
+ function Input2({ analytics, density, className, type, ...props }) {
12
+ const analyticsInput = useAnalyticsInput("Input", analytics, props);
9
13
  return /* @__PURE__ */ jsx(InputPrimitive, {
10
14
  type,
11
15
  "data-density": density,
12
16
  "data-slot": "input",
13
17
  className: (state) => cn2("h-control w-full min-w-0 rounded-sm border border-input bg-secondary px-control-x py-1 text-base transition-colors outline-none file:inline-flex file:h-control-xs file:border-0 file:bg-secondary file:text-sm file:font-medium file:text-foreground placeholder:text-faint-foreground focus-visible:border-ring focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive", typeof className === "function" ? className(state) : className),
14
- ...props
18
+ ...props,
19
+ ...analyticsInput
15
20
  });
16
21
  }
17
22
 
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  ContextDisplayRoot3
3
- } from "./chunk-3jrsp186.js";
3
+ } from "./chunk-8q0xpeh4.js";
4
4
  import {
5
5
  ContextDisplayTrigger2
6
- } from "./chunk-p8gshf3k.js";
6
+ } from "./chunk-1zbtg30t.js";
7
7
  import {
8
8
  ContextDisplayContent2
9
- } from "./chunk-3dyqen8w.js";
9
+ } from "./chunk-agy4dzea.js";
10
10
  import {
11
11
  ContextDisplayValue2
12
12
  } from "./chunk-qxt0fx4f.js";
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  CommandList2,
3
3
  CommandGroup2
4
- } from "./chunk-dwkjt1mm.js";
4
+ } from "./chunk-0twprqdp.js";
5
5
  import {
6
6
  useModelSelectorContext
7
7
  } from "./chunk-ydfx8r6d.js";
8
8
  import {
9
9
  ModelSelectorEmpty2
10
- } from "./chunk-bt57g6ms.js";
10
+ } from "./chunk-cvg5366s.js";
11
11
  import {
12
12
  ModelSelectorItem2
13
- } from "./chunk-zw6a73cm.js";
13
+ } from "./chunk-prp1x0by.js";
14
14
 
15
15
  // src/components/assistant-ui/elements/ModelSelectorList.tsx
16
16
  import { jsx, jsxs, Fragment } from "react/jsx-runtime";
@@ -7,12 +7,15 @@ import {
7
7
  DialogHeader2,
8
8
  DialogTitle2,
9
9
  DialogDescription2
10
- } from "./chunk-ex1zk6ta.js";
10
+ } from "./chunk-jgdpa00w.js";
11
11
  import {
12
12
  InputGroup2,
13
13
  InputGroupAddon2,
14
14
  InputGroupInput2
15
- } from "./chunk-57jj9v64.js";
15
+ } from "./chunk-14mh00z3.js";
16
+ import {
17
+ useAnalyticsCallback
18
+ } from "./chunk-5mydsjp3.js";
16
19
 
17
20
  // src/components/command/Command.tsx
18
21
  import { Command as CommandPrimitive } from "cmdk";
@@ -108,11 +111,18 @@ function CommandSeparator2({ className, ...props }) {
108
111
  ...props
109
112
  });
110
113
  }
111
- function CommandItem2({ className, children, ...props }) {
114
+ function CommandItem2({
115
+ analytics,
116
+ className,
117
+ children,
118
+ ...props
119
+ }) {
120
+ const trackedOnSelect = useAnalyticsCallback("CommandItem", analytics, { name: "ui.activate" }, props.onSelect);
112
121
  return /* @__PURE__ */ jsxs(CommandPrimitive.Item, {
113
122
  "data-slot": "command-item",
114
123
  className: cn2("group/command-item relative flex min-h-control cursor-default items-center gap-control-gap px-control-x text-sm outline-none select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 data-[selected=true]:bg-muted data-[selected=true]:text-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg]:size-4", className),
115
124
  ...props,
125
+ onSelect: trackedOnSelect,
116
126
  children: [
117
127
  children,
118
128
  /* @__PURE__ */ jsx(CheckIcon, {
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-cp2m7y7v.js";
4
4
  import {
5
5
  Button2
6
- } from "./chunk-q7p28b89.js";
6
+ } from "./chunk-38301e40.js";
7
7
  import {
8
8
  paper,
9
9
  mono,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Button2
3
- } from "./chunk-q7p28b89.js";
3
+ } from "./chunk-38301e40.js";
4
4
  import {
5
5
  Card2,
6
6
  CardHeader2,
@@ -15,11 +15,11 @@ import {
15
15
  } from "./chunk-6jpz5geq.js";
16
16
  import {
17
17
  Textarea2
18
- } from "./chunk-hz9azhzx.js";
18
+ } from "./chunk-tq0pfv5h.js";
19
19
  import {
20
20
  ToggleGroup2,
21
21
  ToggleGroupItem2
22
- } from "./chunk-aexby8h3.js";
22
+ } from "./chunk-w9s21aj0.js";
23
23
 
24
24
  // src/components/assistant-ui/elements/FeedbackDialog.tsx
25
25
  import { useId } from "react";
@@ -3,12 +3,12 @@ import {
3
3
  } from "./chunk-cp2m7y7v.js";
4
4
  import {
5
5
  Button2
6
- } from "./chunk-q7p28b89.js";
6
+ } from "./chunk-38301e40.js";
7
7
  import {
8
8
  InputGroup2,
9
9
  InputGroupAddon2,
10
10
  InputGroupInput2
11
- } from "./chunk-57jj9v64.js";
11
+ } from "./chunk-14mh00z3.js";
12
12
  import {
13
13
  paper,
14
14
  field,
@@ -3,13 +3,13 @@ import {
3
3
  } from "./chunk-cp2m7y7v.js";
4
4
  import {
5
5
  Button2
6
- } from "./chunk-q7p28b89.js";
6
+ } from "./chunk-38301e40.js";
7
7
  import {
8
8
  Input2
9
- } from "./chunk-59p19t57.js";
9
+ } from "./chunk-0fmrwsgp.js";
10
10
  import {
11
11
  Textarea2
12
- } from "./chunk-hz9azhzx.js";
12
+ } from "./chunk-tq0pfv5h.js";
13
13
 
14
14
  // src/components/InputGroup.tsx
15
15
  import { cva } from "class-variance-authority";
@@ -1,3 +1,6 @@
1
+ import {
2
+ AnalyticsButton
3
+ } from "./chunk-tcefvfr8.js";
1
4
  import {
2
5
  cn2
3
6
  } from "./chunk-cp2m7y7v.js";
@@ -5,7 +8,7 @@ import {
5
8
  Collapsible2,
6
9
  CollapsibleTrigger2,
7
10
  CollapsibleContent2
8
- } from "./chunk-24d68cjp.js";
11
+ } from "./chunk-fw86vanx.js";
9
12
  import {
10
13
  ShimmerLabel2
11
14
  } from "./chunk-s3wqwhxc.js";
@@ -41,7 +44,8 @@ function ToolCall2({
41
44
  }),
42
45
  children: [
43
46
  /* @__PURE__ */ jsxs(CollapsibleTrigger2, {
44
- render: /* @__PURE__ */ jsx("button", {
47
+ render: /* @__PURE__ */ jsx(AnalyticsButton, {
48
+ component: "ToolCall",
45
49
  type: "button",
46
50
  className: "group/trigger text-muted-foreground hover:text-foreground flex w-full items-center gap-2 rounded-md py-1 text-[13.5px] transition-colors outline-none"
47
51
  }),
@@ -6,7 +6,7 @@ import {
6
6
  InputGroupAddon2,
7
7
  InputGroupButton2,
8
8
  InputGroupInput2
9
- } from "./chunk-57jj9v64.js";
9
+ } from "./chunk-14mh00z3.js";
10
10
  import {
11
11
  paper
12
12
  } from "./chunk-fgmcbtyt.js";
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  Button2
3
- } from "./chunk-q7p28b89.js";
3
+ } from "./chunk-38301e40.js";
4
4
  import {
5
5
  Popover2,
6
6
  PopoverTrigger2,
7
7
  PopoverContent2,
8
8
  PopoverTitle2
9
- } from "./chunk-4djw71cv.js";
9
+ } from "./chunk-21ab0jsp.js";
10
10
  import {
11
11
  ContextBreakdown2
12
12
  } from "./chunk-vfhztmet.js";
@@ -1,3 +1,6 @@
1
+ import {
2
+ AnalyticsButton
3
+ } from "./chunk-tcefvfr8.js";
1
4
  import {
2
5
  cn2
3
6
  } from "./chunk-cp2m7y7v.js";
@@ -5,7 +8,7 @@ import {
5
8
  Collapsible2,
6
9
  CollapsibleTrigger2,
7
10
  CollapsibleContent2
8
- } from "./chunk-24d68cjp.js";
11
+ } from "./chunk-fw86vanx.js";
9
12
  import {
10
13
  collapsePanel
11
14
  } from "./chunk-fgmcbtyt.js";
@@ -48,7 +51,8 @@ function RunActivity2({
48
51
  children: [
49
52
  /* @__PURE__ */ jsxs(CollapsibleTrigger2, {
50
53
  "aria-busy": status === "running",
51
- render: /* @__PURE__ */ jsx("button", {
54
+ render: /* @__PURE__ */ jsx(AnalyticsButton, {
55
+ component: "RunActivity",
52
56
  type: "button",
53
57
  className: "group/trigger text-muted-foreground hover:text-foreground focus-visible:ring-ring/50 flex max-w-full items-center gap-1.5 rounded-md py-1 text-sm outline-none focus-visible:ring-[3px]"
54
58
  }),
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-cp2m7y7v.js";
4
4
  import {
5
5
  Button2
6
- } from "./chunk-q7p28b89.js";
6
+ } from "./chunk-38301e40.js";
7
7
  import {
8
8
  useCopyToClipboard
9
9
  } from "./chunk-6synj4j9.js";
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-cp2m7y7v.js";
4
4
  import {
5
5
  Button2
6
- } from "./chunk-q7p28b89.js";
6
+ } from "./chunk-38301e40.js";
7
7
  import {
8
8
  field,
9
9
  mono
@@ -1,13 +1,17 @@
1
+ import {
2
+ AnalyticsButton
3
+ } from "./chunk-tcefvfr8.js";
1
4
  import {
2
5
  PopoverTrigger2
3
- } from "./chunk-4djw71cv.js";
6
+ } from "./chunk-21ab0jsp.js";
4
7
 
5
8
  // src/components/assistant-ui/elements/ContextDisplayTrigger.tsx
6
9
  import { jsx } from "react/jsx-runtime";
7
10
  function ContextDisplayTrigger2(props) {
8
11
  return /* @__PURE__ */ jsx(PopoverTrigger2, {
9
12
  openOnHover: true,
10
- render: /* @__PURE__ */ jsx("button", {
13
+ render: /* @__PURE__ */ jsx(AnalyticsButton, {
14
+ component: "ContextDisplayTrigger",
11
15
  type: "button",
12
16
  "data-slot": "context-display-trigger",
13
17
  className: "inline-flex h-control-sm items-center gap-control-gap rounded-sm px-control-x text-sm text-muted-foreground tabular-nums outline-none hover:bg-muted hover:text-foreground focus-visible:ring-1 focus-visible:ring-ring disabled:opacity-50"
@@ -2,25 +2,31 @@ import {
2
2
  useDensity
3
3
  } from "./chunk-e6hk39ev.js";
4
4
  import {
5
- usePortalContainer2
6
- } from "./chunk-j89xg1ak.js";
7
- import {
5
+ usePortalContainer2,
8
6
  usePortalNode,
9
7
  PortalProvider2
10
- } from "./chunk-aa7m22zj.js";
8
+ } from "./chunk-x90xmrba.js";
11
9
  import {
12
10
  cn2
13
11
  } from "./chunk-cp2m7y7v.js";
12
+ import {
13
+ useAnalyticsCallback
14
+ } from "./chunk-5mydsjp3.js";
14
15
 
15
16
  // src/components/Popover.tsx
16
17
  import { useDirection } from "@base-ui/react/direction-provider";
17
18
  import { Popover as PopoverPrimitive } from "@base-ui/react/popover";
18
19
  import { jsx } from "react/jsx-runtime";
19
20
  "use client";
20
- function Popover2({ ...props }) {
21
+ function Popover2({
22
+ analytics,
23
+ ...props
24
+ }) {
25
+ const trackedOnOpenChange = useAnalyticsCallback("Popover", analytics, (open, _details) => ({ name: "ui.open-request", open }), props.onOpenChange);
21
26
  return /* @__PURE__ */ jsx(PopoverPrimitive.Root, {
22
27
  "data-slot": "popover",
23
- ...props
28
+ ...props,
29
+ onOpenChange: trackedOnOpenChange
24
30
  });
25
31
  }
26
32
  function PopoverTrigger2({ ...props }) {
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-cp2m7y7v.js";
4
4
  import {
5
5
  Button2
6
- } from "./chunk-q7p28b89.js";
6
+ } from "./chunk-38301e40.js";
7
7
  import {
8
8
  paper,
9
9
  field,
@@ -1,3 +1,6 @@
1
+ import {
2
+ AnalyticsButton
3
+ } from "./chunk-tcefvfr8.js";
1
4
  import {
2
5
  cn2
3
6
  } from "./chunk-cp2m7y7v.js";
@@ -71,7 +74,8 @@ function ScrollAnchor2({
71
74
  }, index))
72
75
  })
73
76
  }),
74
- !isFollowing && unreadCount > 0 ? /* @__PURE__ */ jsxs("button", {
77
+ !isFollowing && unreadCount > 0 ? /* @__PURE__ */ jsxs(AnalyticsButton, {
78
+ component: "ScrollAnchor",
75
79
  type: "button",
76
80
  onClick: () => onFollowingChange(true),
77
81
  className: cn2(inkButton, "absolute bottom-2 left-1/2 flex -translate-x-1/2 items-center gap-1 rounded-full px-3 py-1 text-sm"),
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-v00z8h0n.js";
7
7
  import {
8
8
  Button2
9
- } from "./chunk-q7p28b89.js";
9
+ } from "./chunk-38301e40.js";
10
10
  import {
11
11
  paper,
12
12
  mono
@@ -1,11 +1,15 @@
1
1
  import {
2
2
  cn2
3
3
  } from "./chunk-cp2m7y7v.js";
4
+ import {
5
+ useAnalyticsCallback
6
+ } from "./chunk-5mydsjp3.js";
4
7
 
5
8
  // src/components/Slider.tsx
6
9
  import { Slider as SliderPrimitive } from "@base-ui/react/slider";
7
10
  import { jsx, jsxs } from "react/jsx-runtime";
8
11
  function Slider2({
12
+ analytics,
9
13
  density,
10
14
  className,
11
15
  defaultValue,
@@ -16,6 +20,7 @@ function Slider2({
16
20
  getAriaValueText,
17
21
  ...props
18
22
  }) {
23
+ const trackedOnValueCommitted = useAnalyticsCallback("Slider", analytics, { name: "ui.commit" }, props.onValueCommitted);
19
24
  const values = value ?? defaultValue ?? min;
20
25
  const thumbCount = typeof values === "number" ? 1 : values.length;
21
26
  return /* @__PURE__ */ jsx(SliderPrimitive.Root, {
@@ -28,6 +33,7 @@ function Slider2({
28
33
  max,
29
34
  thumbAlignment: "edge",
30
35
  ...props,
36
+ onValueCommitted: trackedOnValueCommitted,
31
37
  children: /* @__PURE__ */ jsxs(SliderPrimitive.Control, {
32
38
  className: "relative flex w-full touch-none items-center select-none data-disabled:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-40 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col",
33
39
  children: [
@@ -3,17 +3,17 @@ import {
3
3
  } from "./chunk-cp2m7y7v.js";
4
4
  import {
5
5
  MarkdownText2
6
- } from "./chunk-rkbbjjwq.js";
6
+ } from "./chunk-bt7ramb0.js";
7
7
  import {
8
8
  formatUnknownValue2,
9
9
  ToolFallbackError2,
10
10
  offersInterruptAction2,
11
11
  ToolFallbackApproval2,
12
12
  ToolFallback2
13
- } from "./chunk-jy50ebz0.js";
13
+ } from "./chunk-f6rbv5gf.js";
14
14
  import {
15
15
  TaskCard3
16
- } from "./chunk-k4aawd44.js";
16
+ } from "./chunk-2krw4tjq.js";
17
17
  import {
18
18
  taskStateOf,
19
19
  taskLabel,
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  ModelSelectorRoot2
3
- } from "./chunk-e0pv0me5.js";
3
+ } from "./chunk-w9jyajx3.js";
4
4
  import {
5
5
  ModelSelectorTrigger2
6
- } from "./chunk-96wh7ccv.js";
6
+ } from "./chunk-xwf411kf.js";
7
7
  import {
8
8
  ModelSelectorContent2
9
- } from "./chunk-f0jej3qt.js";
9
+ } from "./chunk-5w279fsn.js";
10
10
 
11
11
  // src/components/assistant-ui/elements/ModelSelector.tsx
12
12
  import { jsx, jsxs } from "react/jsx-runtime";