@alexgorbatchev/shadcn 0.0.0-stage → 0.0.16

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 (978) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +353 -2
  3. package/THIRD_PARTY_NOTICES.md +157 -0
  4. package/assistant-ui-catalog.json +2861 -0
  5. package/dist/assistant-ui/geo-map.css +75 -0
  6. package/dist/assistant-ui/markdown.css +47 -0
  7. package/dist/assistant-ui.css +146 -0
  8. package/dist/chunk-06c2d8rd.js +35 -0
  9. package/dist/chunk-0nmj2qb8.js +107 -0
  10. package/dist/chunk-0qkdp68h.js +38 -0
  11. package/dist/chunk-0vgs0ebx.js +39 -0
  12. package/dist/chunk-0xrvhezs.js +465 -0
  13. package/dist/chunk-0y0kqaqj.js +103 -0
  14. package/dist/chunk-0yqwq0ev.js +88 -0
  15. package/dist/chunk-19441s27.js +125 -0
  16. package/dist/chunk-1akz4hf3.js +16 -0
  17. package/dist/chunk-1apg76a7.js +537 -0
  18. package/dist/chunk-1hbge1cb.js +17 -0
  19. package/dist/chunk-1j2hz3w9.js +16 -0
  20. package/dist/chunk-1jeg5z55.js +111 -0
  21. package/dist/chunk-1s7af44v.js +78 -0
  22. package/dist/chunk-1wz92wgg.js +8 -0
  23. package/dist/chunk-1x2ch0xc.js +42 -0
  24. package/dist/chunk-22678d2t.js +546 -0
  25. package/dist/chunk-23ey5ek0.js +117 -0
  26. package/dist/chunk-24d68cjp.js +23 -0
  27. package/dist/chunk-299wvwy8.js +336 -0
  28. package/dist/chunk-2b9agdrf.js +82 -0
  29. package/dist/chunk-2ewx9qdn.js +45 -0
  30. package/dist/chunk-2g0zzx6f.js +102 -0
  31. package/dist/chunk-2gten6a1.js +19 -0
  32. package/dist/chunk-2m0zpzbm.js +90 -0
  33. package/dist/chunk-2tn2pg48.js +15 -0
  34. package/dist/chunk-2y5f271v.js +196 -0
  35. package/dist/chunk-2ye8evra.js +94 -0
  36. package/dist/chunk-34ndz1gf.js +35 -0
  37. package/dist/chunk-3552jz55.js +128 -0
  38. package/dist/chunk-3bzbwhda.js +104 -0
  39. package/dist/chunk-3c7tvhtx.js +39 -0
  40. package/dist/chunk-3esarnmt.js +248 -0
  41. package/dist/chunk-3g8p9apn.js +24 -0
  42. package/dist/chunk-3hvpcsb4.js +184 -0
  43. package/dist/chunk-3kp7kvdb.js +100 -0
  44. package/dist/chunk-3ptcdy6g.js +99 -0
  45. package/dist/chunk-3t4dphfj.js +98 -0
  46. package/dist/chunk-3xw5sdfk.js +65 -0
  47. package/dist/chunk-41vczcvf.js +195 -0
  48. package/dist/chunk-41wmtqkq.js +142 -0
  49. package/dist/chunk-41wykzq3.js +104 -0
  50. package/dist/chunk-47xfhw4f.js +114 -0
  51. package/dist/chunk-48b1ya7g.js +21 -0
  52. package/dist/chunk-490byd18.js +38 -0
  53. package/dist/chunk-493ghkkr.js +36 -0
  54. package/dist/chunk-4bjqbky7.js +19 -0
  55. package/dist/chunk-4c2sqyrp.js +14 -0
  56. package/dist/chunk-4gby2v61.js +133 -0
  57. package/dist/chunk-4k2jzddw.js +64 -0
  58. package/dist/chunk-4mmxn1c3.js +20 -0
  59. package/dist/chunk-4pae2b1z.js +16 -0
  60. package/dist/chunk-53cmv2aj.js +64 -0
  61. package/dist/chunk-53q730zs.js +53 -0
  62. package/dist/chunk-548kkcx4.js +28 -0
  63. package/dist/chunk-550z7s64.js +33 -0
  64. package/dist/chunk-55bcw5ff.js +74 -0
  65. package/dist/chunk-58resytq.js +112 -0
  66. package/dist/chunk-59p19t57.js +18 -0
  67. package/dist/chunk-5fg2ns3n.js +16 -0
  68. package/dist/chunk-5h6m9dsm.js +86 -0
  69. package/dist/chunk-5h7vkgvz.js +85 -0
  70. package/dist/chunk-5j39rehg.js +63 -0
  71. package/dist/chunk-5ntb7p4q.js +1005 -0
  72. package/dist/chunk-5r99spxq.js +64 -0
  73. package/dist/chunk-5s6r4g8w.js +16 -0
  74. package/dist/chunk-5wemmqv5.js +117 -0
  75. package/dist/chunk-63gvcckp.js +84 -0
  76. package/dist/chunk-644cnngf.js +54 -0
  77. package/dist/chunk-64564z9p.js +8 -0
  78. package/dist/chunk-6hbx647r.js +35 -0
  79. package/dist/chunk-6jpz5geq.js +150 -0
  80. package/dist/chunk-6krk6rjd.js +99 -0
  81. package/dist/chunk-6synj4j9.js +36 -0
  82. package/dist/chunk-6xr41wyr.js +33 -0
  83. package/dist/chunk-71efbr5n.js +24 -0
  84. package/dist/chunk-73rkr9ct.js +66 -0
  85. package/dist/chunk-74aknkhq.js +75 -0
  86. package/dist/chunk-7b3n0ftm.js +80 -0
  87. package/dist/chunk-7g1dx0bn.js +32 -0
  88. package/dist/chunk-7g39g3h8.js +104 -0
  89. package/dist/chunk-7ppfbxdh.js +101 -0
  90. package/dist/chunk-82e7fbmq.js +278 -0
  91. package/dist/chunk-86211e5a.js +19 -0
  92. package/dist/chunk-8799zv5c.js +25 -0
  93. package/dist/chunk-8g1npthk.js +92 -0
  94. package/dist/chunk-8k1y6w5k.js +141 -0
  95. package/dist/chunk-8r57zwqg.js +16 -0
  96. package/dist/chunk-8ye0k6z7.js +22 -0
  97. package/dist/chunk-97kagey4.js +105 -0
  98. package/dist/chunk-9de1htr5.js +69 -0
  99. package/dist/chunk-9dw4dyzq.js +89 -0
  100. package/dist/chunk-9msk1t9e.js +99 -0
  101. package/dist/chunk-9vm8fks0.js +397 -0
  102. package/dist/chunk-9zyam2cn.js +127 -0
  103. package/dist/chunk-a3r74mbf.js +65 -0
  104. package/dist/chunk-a6e11wj6.js +85 -0
  105. package/dist/chunk-aehkndxh.js +100 -0
  106. package/dist/chunk-aexby8h3.js +92 -0
  107. package/dist/chunk-ag6xpy6q.js +189 -0
  108. package/dist/chunk-avrh238b.js +117 -0
  109. package/dist/chunk-b06rfrfz.js +128 -0
  110. package/dist/chunk-b12s32e3.js +61 -0
  111. package/dist/chunk-b2jkgq4n.js +22 -0
  112. package/dist/chunk-b3b2tvkg.js +41 -0
  113. package/dist/chunk-bhejvd5q.js +76 -0
  114. package/dist/chunk-bnaejcfx.js +43 -0
  115. package/dist/chunk-bt5ksk3z.js +76 -0
  116. package/dist/chunk-c2vcrwjp.js +70 -0
  117. package/dist/chunk-cn1ns1xj.js +98 -0
  118. package/dist/chunk-cp2m7y7v.js +26 -0
  119. package/dist/chunk-czg9p52v.js +74 -0
  120. package/dist/chunk-d70rcwk7.js +16 -0
  121. package/dist/chunk-dd53t01w.js +14 -0
  122. package/dist/chunk-dg14mg3y.js +56 -0
  123. package/dist/chunk-djrb64cg.js +141 -0
  124. package/dist/chunk-dnja1pz5.js +18 -0
  125. package/dist/chunk-dnvb9r71.js +96 -0
  126. package/dist/chunk-ds65prb9.js +229 -0
  127. package/dist/chunk-dtkw8m6d.js +18 -0
  128. package/dist/chunk-e50068hn.js +51 -0
  129. package/dist/chunk-e59sfvpe.js +78 -0
  130. package/dist/chunk-e6hk39ev.js +14 -0
  131. package/dist/chunk-e6tx49rb.js +55 -0
  132. package/dist/chunk-ed49y20r.js +109 -0
  133. package/dist/chunk-eehfrrdz.js +37 -0
  134. package/dist/chunk-ef04mmf4.js +284 -0
  135. package/dist/chunk-emasqc8x.js +19 -0
  136. package/dist/chunk-ep057ccn.js +19 -0
  137. package/dist/chunk-eqmptn43.js +96 -0
  138. package/dist/chunk-erpzgt57.js +87 -0
  139. package/dist/chunk-ets9h67e.js +26 -0
  140. package/dist/chunk-f1mdtq5p.js +11 -0
  141. package/dist/chunk-f25bby84.js +96 -0
  142. package/dist/chunk-f307aaa6.js +299 -0
  143. package/dist/chunk-f3f76m3p.js +14 -0
  144. package/dist/chunk-f63f8w58.js +44 -0
  145. package/dist/chunk-f8zc8ceg.js +5 -0
  146. package/dist/chunk-ff8bpz3p.js +86 -0
  147. package/dist/chunk-fgfaarep.js +37 -0
  148. package/dist/chunk-fgmcbtyt.js +23 -0
  149. package/dist/chunk-fh3nme7f.js +45 -0
  150. package/dist/chunk-fq8taatb.js +85 -0
  151. package/dist/chunk-fqekyjkh.js +65 -0
  152. package/dist/chunk-fvg93469.js +42 -0
  153. package/dist/chunk-fy1jbp97.js +47 -0
  154. package/dist/chunk-gc0s6z4e.js +83 -0
  155. package/dist/chunk-gdtrt9dz.js +83 -0
  156. package/dist/chunk-ge705y2w.js +26 -0
  157. package/dist/chunk-gfm2arhj.js +165 -0
  158. package/dist/chunk-gg39sggp.js +59 -0
  159. package/dist/chunk-gknaq8ep.js +86 -0
  160. package/dist/chunk-gt8m0zeq.js +112 -0
  161. package/dist/chunk-gyg2s982.js +143 -0
  162. package/dist/chunk-h0g7qkya.js +265 -0
  163. package/dist/chunk-h51gnkz8.js +99 -0
  164. package/dist/chunk-h561m2ae.js +75 -0
  165. package/dist/chunk-h6kcqtzf.js +121 -0
  166. package/dist/chunk-h77yk9sn.js +148 -0
  167. package/dist/chunk-h8awhm19.js +52 -0
  168. package/dist/chunk-ha24sd50.js +78 -0
  169. package/dist/chunk-hhvp5352.js +19 -0
  170. package/dist/chunk-hpmvzsnv.js +258 -0
  171. package/dist/chunk-hxctrrkh.js +68 -0
  172. package/dist/chunk-hz9azhzx.js +16 -0
  173. package/dist/chunk-j5wk4ffj.js +251 -0
  174. package/dist/chunk-j89xg1ak.js +14 -0
  175. package/dist/chunk-j9d304dz.js +203 -0
  176. package/dist/chunk-jacxpetf.js +45 -0
  177. package/dist/chunk-jcxxjkqx.js +17 -0
  178. package/dist/chunk-jhw9q2eq.js +57 -0
  179. package/dist/chunk-jpvw9xqy.js +4 -0
  180. package/dist/chunk-jq6tc65r.js +86 -0
  181. package/dist/chunk-jwajmmfb.js +14 -0
  182. package/dist/chunk-jxwfkmdh.js +35 -0
  183. package/dist/chunk-jy57625a.js +19 -0
  184. package/dist/chunk-jy6nfnbx.js +94 -0
  185. package/dist/chunk-k01gpm23.js +22 -0
  186. package/dist/chunk-k3hjzpvz.js +67 -0
  187. package/dist/chunk-k6hfm259.js +37 -0
  188. package/dist/chunk-k99h6evz.js +11 -0
  189. package/dist/chunk-kbcprevc.js +17 -0
  190. package/dist/chunk-khgrv6k6.js +56 -0
  191. package/dist/chunk-khkdgmvm.js +95 -0
  192. package/dist/chunk-kjx7n6a7.js +20 -0
  193. package/dist/chunk-kp3jgjng.js +20 -0
  194. package/dist/chunk-kz9np152.js +43 -0
  195. package/dist/chunk-m0e0an33.js +78 -0
  196. package/dist/chunk-m1a9e1py.js +27 -0
  197. package/dist/chunk-m1hr3w94.js +35 -0
  198. package/dist/chunk-m54kq3he.js +59 -0
  199. package/dist/chunk-m99hfsps.js +63 -0
  200. package/dist/chunk-mammcx1w.js +33 -0
  201. package/dist/chunk-mfx3kkk3.js +38 -0
  202. package/dist/chunk-mjpc4qf7.js +322 -0
  203. package/dist/chunk-msave608.js +139 -0
  204. package/dist/chunk-mx21wpq0.js +204 -0
  205. package/dist/chunk-mznfmtt8.js +78 -0
  206. package/dist/chunk-n94jf71r.js +101 -0
  207. package/dist/chunk-njzam0hx.js +101 -0
  208. package/dist/chunk-nkx7ncf1.js +92 -0
  209. package/dist/chunk-nz2e73h2.js +132 -0
  210. package/dist/chunk-nzas8r5v.js +22 -0
  211. package/dist/chunk-p9aqek06.js +68 -0
  212. package/dist/chunk-pa07b92f.js +20 -0
  213. package/dist/chunk-pb8tsrdf.js +26 -0
  214. package/dist/chunk-pe1vvkp7.js +33 -0
  215. package/dist/chunk-pkegpb49.js +364 -0
  216. package/dist/chunk-q2ewq67a.js +171 -0
  217. package/dist/chunk-q40gqpwh.js +41 -0
  218. package/dist/chunk-q4264v6h.js +123 -0
  219. package/dist/chunk-q7zc22qp.js +77 -0
  220. package/dist/chunk-q9qm7skj.js +132 -0
  221. package/dist/chunk-qk167mcx.js +87 -0
  222. package/dist/chunk-qxt0fx4f.js +93 -0
  223. package/dist/chunk-r07v9c4f.js +65 -0
  224. package/dist/chunk-r6p7982y.js +64 -0
  225. package/dist/chunk-r7fy89jq.js +33 -0
  226. package/dist/chunk-r9mng3ws.js +27 -0
  227. package/dist/chunk-rajgnfbr.js +24 -0
  228. package/dist/chunk-rc9kpszb.js +144 -0
  229. package/dist/chunk-rrd9fsz6.js +68 -0
  230. package/dist/chunk-ryvvtyjq.js +117 -0
  231. package/dist/chunk-s29j7505.js +147 -0
  232. package/dist/chunk-s3wqwhxc.js +15 -0
  233. package/dist/chunk-sbrpnv8s.js +117 -0
  234. package/dist/chunk-serw27sv.js +146 -0
  235. package/dist/chunk-smdxxnb8.js +19 -0
  236. package/dist/chunk-smzhep9f.js +245 -0
  237. package/dist/chunk-tetvt0c3.js +161 -0
  238. package/dist/chunk-tsekdy3w.js +449 -0
  239. package/dist/chunk-ttdeyjvj.js +88 -0
  240. package/dist/chunk-ttyqqw3y.js +93 -0
  241. package/dist/chunk-tx19w12r.js +36 -0
  242. package/dist/chunk-tzred534.js +16 -0
  243. package/dist/chunk-v00z8h0n.js +52 -0
  244. package/dist/chunk-v0pj5b4g.js +11 -0
  245. package/dist/chunk-v8ks0cfq.js +32 -0
  246. package/dist/chunk-v9r6zprz.js +91 -0
  247. package/dist/chunk-vfhztmet.js +114 -0
  248. package/dist/chunk-vnxy5dtp.js +16 -0
  249. package/dist/chunk-vs1n47pw.js +60 -0
  250. package/dist/chunk-vx7c2xhq.js +33 -0
  251. package/dist/chunk-vxera95d.js +19 -0
  252. package/dist/chunk-vxvaaptq.js +36 -0
  253. package/dist/chunk-vygzdvrk.js +16 -0
  254. package/dist/chunk-vyve5wf3.js +24 -0
  255. package/dist/chunk-wbj4frbk.js +26 -0
  256. package/dist/chunk-wf5cnpdg.js +33 -0
  257. package/dist/chunk-wgxs6b5t.js +44 -0
  258. package/dist/chunk-wjx6zf94.js +41 -0
  259. package/dist/chunk-wkg0rssg.js +37 -0
  260. package/dist/chunk-wndqbss9.js +34 -0
  261. package/dist/chunk-wnyxdfzd.js +41 -0
  262. package/dist/chunk-wwfj7ga3.js +221 -0
  263. package/dist/chunk-wy701sqv.js +19 -0
  264. package/dist/chunk-x1z72h7w.js +92 -0
  265. package/dist/chunk-x7z9jzyf.js +84 -0
  266. package/dist/chunk-xhtsnwnb.js +29 -0
  267. package/dist/chunk-xjxhnvcc.js +36 -0
  268. package/dist/chunk-xkvyk2qf.js +27 -0
  269. package/dist/chunk-xqn8mef3.js +117 -0
  270. package/dist/chunk-xvgp05yg.js +23 -0
  271. package/dist/chunk-xvs5y4v7.js +706 -0
  272. package/dist/chunk-xxk0akfn.js +12 -0
  273. package/dist/chunk-y4gbweym.js +84 -0
  274. package/dist/chunk-yabr2qx9.js +66 -0
  275. package/dist/chunk-ybypybsb.js +43 -0
  276. package/dist/chunk-ydfsxbrn.js +48 -0
  277. package/dist/chunk-ydfx8r6d.js +15 -0
  278. package/dist/chunk-yn3e9w1j.js +74 -0
  279. package/dist/chunk-yncp9nsv.js +106 -0
  280. package/dist/chunk-ynh7v8n7.js +146 -0
  281. package/dist/chunk-ynkpdpn0.js +60 -0
  282. package/dist/chunk-yp12vs0s.js +862 -0
  283. package/dist/chunk-yqs310vg.js +49 -0
  284. package/dist/chunk-z1fy613d.js +64 -0
  285. package/dist/chunk-zbm0xcq3.js +86 -0
  286. package/dist/chunk-zc60zhz7.js +16 -0
  287. package/dist/chunk-zcwynyr0.js +54 -0
  288. package/dist/chunk-zgpdhtkw.js +35 -0
  289. package/dist/chunk-zhnwybhq.js +143 -0
  290. package/dist/chunk-zj30cfgx.js +20 -0
  291. package/dist/chunk-zjbk25js.js +88 -0
  292. package/dist/chunk-zp1emfpq.js +83 -0
  293. package/dist/chunk-zpcxr2r4.js +98 -0
  294. package/dist/chunk-zve48bc0.js +88 -0
  295. package/dist/components/Accordion.d.ts +12 -0
  296. package/dist/components/Alert.d.ts +15 -0
  297. package/dist/components/AlertDialog.d.ts +28 -0
  298. package/dist/components/AspectRatio.d.ts +5 -0
  299. package/dist/components/Attachment.d.ts +36 -0
  300. package/dist/components/Avatar.d.ts +19 -0
  301. package/dist/components/Badge.d.ts +15 -0
  302. package/dist/components/Breadcrumb.d.ts +18 -0
  303. package/dist/components/Bubble.d.ts +25 -0
  304. package/dist/components/Button.d.ts +14 -0
  305. package/dist/components/ButtonGroup.d.ts +14 -0
  306. package/dist/components/Card.d.ts +19 -0
  307. package/dist/components/Checkbox.d.ts +6 -0
  308. package/dist/components/Collapsible.d.ts +6 -0
  309. package/dist/components/Combobox.d.ts +39 -0
  310. package/dist/components/ConfirmationDialog.d.ts +11 -0
  311. package/dist/components/ContextMenu.d.ts +24 -0
  312. package/dist/components/DensityProvider.d.ts +7 -0
  313. package/dist/components/Dialog.d.ts +25 -0
  314. package/dist/components/DirectionProvider.d.ts +1 -0
  315. package/dist/components/DragDropPreview.d.ts +7 -0
  316. package/dist/components/DragDropProvider.d.ts +6 -0
  317. package/dist/components/DragSource.d.ts +10 -0
  318. package/dist/components/Drawer.d.ts +25 -0
  319. package/dist/components/DropTarget.d.ts +11 -0
  320. package/dist/components/DropdownMenu.d.ts +26 -0
  321. package/dist/components/Empty.d.ts +19 -0
  322. package/dist/components/EmptyState.d.ts +8 -0
  323. package/dist/components/Field.d.ts +36 -0
  324. package/dist/components/HoverCard.d.ts +8 -0
  325. package/dist/components/ImagePicker.d.ts +11 -0
  326. package/dist/components/InlineEdit.d.ts +14 -0
  327. package/dist/components/Input.d.ts +6 -0
  328. package/dist/components/InputGroup.d.ts +26 -0
  329. package/dist/components/Item.d.ts +32 -0
  330. package/dist/components/JsonViewer.d.ts +8 -0
  331. package/dist/components/Kbd.d.ts +7 -0
  332. package/dist/components/Label.d.ts +5 -0
  333. package/dist/components/Marker.d.ts +19 -0
  334. package/dist/components/Menubar.d.ts +29 -0
  335. package/dist/components/Message.d.ts +17 -0
  336. package/dist/components/NativeSelect.d.ts +11 -0
  337. package/dist/components/NavigationMenu.d.ts +21 -0
  338. package/dist/components/PageMessage.d.ts +9 -0
  339. package/dist/components/Pagination.d.ts +21 -0
  340. package/dist/components/Popover.d.ts +14 -0
  341. package/dist/components/PortalProvider.d.ts +7 -0
  342. package/dist/components/Progress.d.ts +17 -0
  343. package/dist/components/RadioGroup.d.ts +9 -0
  344. package/dist/components/ScrollArea.d.ts +10 -0
  345. package/dist/components/Select.d.ts +25 -0
  346. package/dist/components/Separator.d.ts +8 -0
  347. package/dist/components/Sheet.d.ts +20 -0
  348. package/dist/components/Sidebar.d.ts +60 -0
  349. package/dist/components/Skeleton.d.ts +5 -0
  350. package/dist/components/Slider.d.ts +6 -0
  351. package/dist/components/Spinner.d.ts +5 -0
  352. package/dist/components/StarRating.d.ts +10 -0
  353. package/dist/components/Switch.d.ts +8 -0
  354. package/dist/components/Table.d.ts +28 -0
  355. package/dist/components/Tabs.d.ts +16 -0
  356. package/dist/components/Textarea.d.ts +5 -0
  357. package/dist/components/ThemeProvider.d.ts +10 -0
  358. package/dist/components/Toast.d.ts +18 -0
  359. package/dist/components/Toggle.d.ts +11 -0
  360. package/dist/components/ToggleGroup.d.ts +12 -0
  361. package/dist/components/Tooltip.d.ts +9 -0
  362. package/dist/components/assistant-ui/conversationMap/types.d.ts +20 -0
  363. package/dist/components/assistant-ui/elements/ActivityGraph.d.ts +11 -0
  364. package/dist/components/assistant-ui/elements/ActivityGraph.js +8 -0
  365. package/dist/components/assistant-ui/elements/AgentCard.d.ts +19 -0
  366. package/dist/components/assistant-ui/elements/AgentCard.js +8 -0
  367. package/dist/components/assistant-ui/elements/AgentHandoff.d.ts +11 -0
  368. package/dist/components/assistant-ui/elements/AgentHandoff.js +7 -0
  369. package/dist/components/assistant-ui/elements/AgentPlan.d.ts +14 -0
  370. package/dist/components/assistant-ui/elements/AgentPlan.js +8 -0
  371. package/dist/components/assistant-ui/elements/AgentStatus.d.ts +11 -0
  372. package/dist/components/assistant-ui/elements/AgentStatus.js +7 -0
  373. package/dist/components/assistant-ui/elements/ApprovalCard.d.ts +21 -0
  374. package/dist/components/assistant-ui/elements/ApprovalCard.js +9 -0
  375. package/dist/components/assistant-ui/elements/ArtifactCard.d.ts +10 -0
  376. package/dist/components/assistant-ui/elements/ArtifactCard.js +9 -0
  377. package/dist/components/assistant-ui/elements/AudioPlayer.d.ts +9 -0
  378. package/dist/components/assistant-ui/elements/AudioPlayer.js +9 -0
  379. package/dist/components/assistant-ui/elements/BackgroundInbox.d.ts +15 -0
  380. package/dist/components/assistant-ui/elements/BackgroundInbox.js +9 -0
  381. package/dist/components/assistant-ui/elements/CanvasSplit.d.ts +29 -0
  382. package/dist/components/assistant-ui/elements/CanvasSplit.js +20 -0
  383. package/dist/components/assistant-ui/elements/Chart.d.ts +14 -0
  384. package/dist/components/assistant-ui/elements/Chart.js +11 -0
  385. package/dist/components/assistant-ui/elements/ChatPanel.d.ts +20 -0
  386. package/dist/components/assistant-ui/elements/ChatPanel.js +21 -0
  387. package/dist/components/assistant-ui/elements/CheckpointHistory.d.ts +15 -0
  388. package/dist/components/assistant-ui/elements/CheckpointHistory.js +8 -0
  389. package/dist/components/assistant-ui/elements/Citation.d.ts +16 -0
  390. package/dist/components/assistant-ui/elements/Citation.js +11 -0
  391. package/dist/components/assistant-ui/elements/ClaudeLogo.d.ts +6 -0
  392. package/dist/components/assistant-ui/elements/ClaudeLogo.js +6 -0
  393. package/dist/components/assistant-ui/elements/CodeDiff.d.ts +16 -0
  394. package/dist/components/assistant-ui/elements/CodeDiff.js +8 -0
  395. package/dist/components/assistant-ui/elements/CodeRunner.d.ts +13 -0
  396. package/dist/components/assistant-ui/elements/CodeRunner.js +8 -0
  397. package/dist/components/assistant-ui/elements/CommandPalette.d.ts +17 -0
  398. package/dist/components/assistant-ui/elements/CommandPalette.js +16 -0
  399. package/dist/components/assistant-ui/elements/ComparisonCard.d.ts +16 -0
  400. package/dist/components/assistant-ui/elements/ComparisonCard.js +7 -0
  401. package/dist/components/assistant-ui/elements/Composer.d.ts +5 -0
  402. package/dist/components/assistant-ui/elements/Composer.js +7 -0
  403. package/dist/components/assistant-ui/elements/ComposerActions.d.ts +5 -0
  404. package/dist/components/assistant-ui/elements/ComposerActions.js +7 -0
  405. package/dist/components/assistant-ui/elements/ComposerAttachButton.d.ts +5 -0
  406. package/dist/components/assistant-ui/elements/ComposerAttachButton.js +8 -0
  407. package/dist/components/assistant-ui/elements/ComposerAttachmentChip.d.ts +9 -0
  408. package/dist/components/assistant-ui/elements/ComposerAttachmentChip.js +9 -0
  409. package/dist/components/assistant-ui/elements/ComposerAttachments.d.ts +5 -0
  410. package/dist/components/assistant-ui/elements/ComposerAttachments.js +11 -0
  411. package/dist/components/assistant-ui/elements/ComposerBar.d.ts +7 -0
  412. package/dist/components/assistant-ui/elements/ComposerBar.js +11 -0
  413. package/dist/components/assistant-ui/elements/ComposerCommandItem.d.ts +9 -0
  414. package/dist/components/assistant-ui/elements/ComposerCommandItem.js +10 -0
  415. package/dist/components/assistant-ui/elements/ComposerContext.d.ts +7 -0
  416. package/dist/components/assistant-ui/elements/ComposerContext.js +13 -0
  417. package/dist/components/assistant-ui/elements/ComposerInput.d.ts +7 -0
  418. package/dist/components/assistant-ui/elements/ComposerInput.js +11 -0
  419. package/dist/components/assistant-ui/elements/ComposerMenu.d.ts +7 -0
  420. package/dist/components/assistant-ui/elements/ComposerMenu.js +7 -0
  421. package/dist/components/assistant-ui/elements/ComposerMenuItem.d.ts +8 -0
  422. package/dist/components/assistant-ui/elements/ComposerMenuItem.js +9 -0
  423. package/dist/components/assistant-ui/elements/ComposerModelItem.d.ts +9 -0
  424. package/dist/components/assistant-ui/elements/ComposerModelItem.js +10 -0
  425. package/dist/components/assistant-ui/elements/ComposerModelTrigger.d.ts +8 -0
  426. package/dist/components/assistant-ui/elements/ComposerModelTrigger.js +8 -0
  427. package/dist/components/assistant-ui/elements/ComposerPersonItem.d.ts +9 -0
  428. package/dist/components/assistant-ui/elements/ComposerPersonItem.js +10 -0
  429. package/dist/components/assistant-ui/elements/ComposerSend.d.ts +8 -0
  430. package/dist/components/assistant-ui/elements/ComposerSend.js +8 -0
  431. package/dist/components/assistant-ui/elements/ComposerToolbar.d.ts +5 -0
  432. package/dist/components/assistant-ui/elements/ComposerToolbar.js +11 -0
  433. package/dist/components/assistant-ui/elements/ComposerVoice.d.ts +9 -0
  434. package/dist/components/assistant-ui/elements/ComposerVoice.js +8 -0
  435. package/dist/components/assistant-ui/elements/ComposerVoiceButton.d.ts +7 -0
  436. package/dist/components/assistant-ui/elements/ComposerVoiceButton.js +8 -0
  437. package/dist/components/assistant-ui/elements/ComputerUse.d.ts +17 -0
  438. package/dist/components/assistant-ui/elements/ComputerUse.js +7 -0
  439. package/dist/components/assistant-ui/elements/ConfidenceMarker.d.ts +16 -0
  440. package/dist/components/assistant-ui/elements/ConfidenceMarker.js +7 -0
  441. package/dist/components/assistant-ui/elements/ConnectionState.d.ts +10 -0
  442. package/dist/components/assistant-ui/elements/ConnectionState.js +8 -0
  443. package/dist/components/assistant-ui/elements/ContextBreakdown.d.ts +15 -0
  444. package/dist/components/assistant-ui/elements/ContextBreakdown.js +8 -0
  445. package/dist/components/assistant-ui/elements/ContextDisplay.d.ts +15 -0
  446. package/dist/components/assistant-ui/elements/ContextDisplay.js +20 -0
  447. package/dist/components/assistant-ui/elements/ContextDisplayBar.d.ts +3 -0
  448. package/dist/components/assistant-ui/elements/ContextDisplayBar.js +17 -0
  449. package/dist/components/assistant-ui/elements/ContextDisplayContent.d.ts +6 -0
  450. package/dist/components/assistant-ui/elements/ContextDisplayContent.js +13 -0
  451. package/dist/components/assistant-ui/elements/ContextDisplayRing.d.ts +3 -0
  452. package/dist/components/assistant-ui/elements/ContextDisplayRing.js +17 -0
  453. package/dist/components/assistant-ui/elements/ContextDisplayRoot.d.ts +15 -0
  454. package/dist/components/assistant-ui/elements/ContextDisplayRoot.js +11 -0
  455. package/dist/components/assistant-ui/elements/ContextDisplayText.d.ts +3 -0
  456. package/dist/components/assistant-ui/elements/ContextDisplayText.js +17 -0
  457. package/dist/components/assistant-ui/elements/ContextDisplayTrigger.d.ts +4 -0
  458. package/dist/components/assistant-ui/elements/ContextDisplayTrigger.js +10 -0
  459. package/dist/components/assistant-ui/elements/ContextDisplayValue.d.ts +6 -0
  460. package/dist/components/assistant-ui/elements/ContextDisplayValue.js +9 -0
  461. package/dist/components/assistant-ui/elements/ConversationMap.d.ts +16 -0
  462. package/dist/components/assistant-ui/elements/ConversationMap.js +10 -0
  463. package/dist/components/assistant-ui/elements/ConversationSearch.d.ts +18 -0
  464. package/dist/components/assistant-ui/elements/ConversationSearch.js +11 -0
  465. package/dist/components/assistant-ui/elements/CostMeter.d.ts +16 -0
  466. package/dist/components/assistant-ui/elements/CostMeter.js +8 -0
  467. package/dist/components/assistant-ui/elements/DataTable.d.ts +4 -0
  468. package/dist/components/assistant-ui/elements/DataTable.js +12 -0
  469. package/dist/components/assistant-ui/elements/DataTableValueCell.d.ts +10 -0
  470. package/dist/components/assistant-ui/elements/DaySeparator.d.ts +14 -0
  471. package/dist/components/assistant-ui/elements/DaySeparator.js +7 -0
  472. package/dist/components/assistant-ui/elements/Diagram.d.ts +13 -0
  473. package/dist/components/assistant-ui/elements/Diagram.js +8 -0
  474. package/dist/components/assistant-ui/elements/DiffViewer.d.ts +18 -0
  475. package/dist/components/assistant-ui/elements/DiffViewer.js +19 -0
  476. package/dist/components/assistant-ui/elements/DiffViewerContent.d.ts +3 -0
  477. package/dist/components/assistant-ui/elements/DiffViewerContent.js +7 -0
  478. package/dist/components/assistant-ui/elements/DiffViewerFile.d.ts +3 -0
  479. package/dist/components/assistant-ui/elements/DiffViewerFile.js +7 -0
  480. package/dist/components/assistant-ui/elements/DiffViewerFileBadge.d.ts +6 -0
  481. package/dist/components/assistant-ui/elements/DiffViewerFileBadge.js +8 -0
  482. package/dist/components/assistant-ui/elements/DiffViewerFileContent.d.ts +14 -0
  483. package/dist/components/assistant-ui/elements/DiffViewerHeader.d.ts +14 -0
  484. package/dist/components/assistant-ui/elements/DiffViewerHeader.js +12 -0
  485. package/dist/components/assistant-ui/elements/DiffViewerLine.d.ts +9 -0
  486. package/dist/components/assistant-ui/elements/DiffViewerLine.js +8 -0
  487. package/dist/components/assistant-ui/elements/DiffViewerSplitLine.d.ts +9 -0
  488. package/dist/components/assistant-ui/elements/DiffViewerSplitLine.js +8 -0
  489. package/dist/components/assistant-ui/elements/DiffViewerStats.d.ts +6 -0
  490. package/dist/components/assistant-ui/elements/DiffViewerStats.js +8 -0
  491. package/dist/components/assistant-ui/elements/DiffViewerText.d.ts +6 -0
  492. package/dist/components/assistant-ui/elements/DirectiveText.d.ts +25 -0
  493. package/dist/components/assistant-ui/elements/DirectiveText.js +8 -0
  494. package/dist/components/assistant-ui/elements/DocumentReference.d.ts +15 -0
  495. package/dist/components/assistant-ui/elements/DocumentReference.js +8 -0
  496. package/dist/components/assistant-ui/elements/DotMatrix.d.ts +9 -0
  497. package/dist/components/assistant-ui/elements/DotMatrix.js +8 -0
  498. package/dist/components/assistant-ui/elements/DraftRestore.d.ts +10 -0
  499. package/dist/components/assistant-ui/elements/DraftRestore.js +8 -0
  500. package/dist/components/assistant-ui/elements/EditMessage.d.ts +12 -0
  501. package/dist/components/assistant-ui/elements/EditMessage.js +14 -0
  502. package/dist/components/assistant-ui/elements/ElicitationForm.d.ts +21 -0
  503. package/dist/components/assistant-ui/elements/ElicitationForm.js +16 -0
  504. package/dist/components/assistant-ui/elements/EmptyState.d.ts +5 -0
  505. package/dist/components/assistant-ui/elements/EmptyState.js +8 -0
  506. package/dist/components/assistant-ui/elements/EmptyStateComposer.d.ts +10 -0
  507. package/dist/components/assistant-ui/elements/EmptyStateComposer.js +11 -0
  508. package/dist/components/assistant-ui/elements/EmptyStateGreeting.d.ts +4 -0
  509. package/dist/components/assistant-ui/elements/EmptyStateGreeting.js +7 -0
  510. package/dist/components/assistant-ui/elements/EmptyStateSuggestion.d.ts +7 -0
  511. package/dist/components/assistant-ui/elements/EmptyStateSuggestion.js +8 -0
  512. package/dist/components/assistant-ui/elements/EmptyStateSuggestions.d.ts +4 -0
  513. package/dist/components/assistant-ui/elements/EmptyStateSuggestions.js +7 -0
  514. package/dist/components/assistant-ui/elements/ErrorState.d.ts +9 -0
  515. package/dist/components/assistant-ui/elements/ErrorState.js +9 -0
  516. package/dist/components/assistant-ui/elements/EveAskQuestion.d.ts +4 -0
  517. package/dist/components/assistant-ui/elements/EveAskQuestion.js +11 -0
  518. package/dist/components/assistant-ui/elements/FeedbackDialog.d.ts +12 -0
  519. package/dist/components/assistant-ui/elements/FeedbackDialog.js +14 -0
  520. package/dist/components/assistant-ui/elements/File.d.ts +36 -0
  521. package/dist/components/assistant-ui/elements/File.js +23 -0
  522. package/dist/components/assistant-ui/elements/FileTree.d.ts +17 -0
  523. package/dist/components/assistant-ui/elements/FileTree.js +8 -0
  524. package/dist/components/assistant-ui/elements/FlowGraph.d.ts +21 -0
  525. package/dist/components/assistant-ui/elements/FlowGraph.js +8 -0
  526. package/dist/components/assistant-ui/elements/Frac.d.ts +7 -0
  527. package/dist/components/assistant-ui/elements/Frac.js +6 -0
  528. package/dist/components/assistant-ui/elements/GeminiLogo.d.ts +3 -0
  529. package/dist/components/assistant-ui/elements/GeminiLogo.js +6 -0
  530. package/dist/components/assistant-ui/elements/GenerationLoader.d.ts +9 -0
  531. package/dist/components/assistant-ui/elements/GenerationLoader.js +8 -0
  532. package/dist/components/assistant-ui/elements/GenerativeUi.d.ts +9 -0
  533. package/dist/components/assistant-ui/elements/GenerativeUi.js +17 -0
  534. package/dist/components/assistant-ui/elements/GeoMap.d.ts +26 -0
  535. package/dist/components/assistant-ui/elements/GeoMap.js +8 -0
  536. package/dist/components/assistant-ui/elements/GitHubIcon.d.ts +6 -0
  537. package/dist/components/assistant-ui/elements/GitHubIcon.js +6 -0
  538. package/dist/components/assistant-ui/elements/GuardrailNotice.d.ts +11 -0
  539. package/dist/components/assistant-ui/elements/GuardrailNotice.js +9 -0
  540. package/dist/components/assistant-ui/elements/HeatGraph.d.ts +11 -0
  541. package/dist/components/assistant-ui/elements/HeatGraph.js +7 -0
  542. package/dist/components/assistant-ui/elements/Image.d.ts +45 -0
  543. package/dist/components/assistant-ui/elements/Image.js +29 -0
  544. package/dist/components/assistant-ui/elements/ImageGallery.d.ts +20 -0
  545. package/dist/components/assistant-ui/elements/ImageGallery.js +11 -0
  546. package/dist/components/assistant-ui/elements/ImageGeneration.d.ts +10 -0
  547. package/dist/components/assistant-ui/elements/ImageGeneration.js +9 -0
  548. package/dist/components/assistant-ui/elements/InlineCitation.d.ts +4 -0
  549. package/dist/components/assistant-ui/elements/InlineCitation.js +7 -0
  550. package/dist/components/assistant-ui/elements/JobProgress.d.ts +24 -0
  551. package/dist/components/assistant-ui/elements/JobProgress.js +9 -0
  552. package/dist/components/assistant-ui/elements/LauncherBubble.d.ts +13 -0
  553. package/dist/components/assistant-ui/elements/LauncherBubble.js +9 -0
  554. package/dist/components/assistant-ui/elements/LinkPreview.d.ts +13 -0
  555. package/dist/components/assistant-ui/elements/LinkPreview.js +7 -0
  556. package/dist/components/assistant-ui/elements/MapAnswer.d.ts +17 -0
  557. package/dist/components/assistant-ui/elements/MapAnswer.js +8 -0
  558. package/dist/components/assistant-ui/elements/MarkdownText.d.ts +12 -0
  559. package/dist/components/assistant-ui/elements/MarkdownText.js +18 -0
  560. package/dist/components/assistant-ui/elements/MathBlock.d.ts +13 -0
  561. package/dist/components/assistant-ui/elements/MathBlock.js +7 -0
  562. package/dist/components/assistant-ui/elements/McpServerPanel.d.ts +17 -0
  563. package/dist/components/assistant-ui/elements/McpServerPanel.js +11 -0
  564. package/dist/components/assistant-ui/elements/MemoryChips.d.ts +14 -0
  565. package/dist/components/assistant-ui/elements/MemoryChips.js +8 -0
  566. package/dist/components/assistant-ui/elements/MermaidDiagram.d.ts +6 -0
  567. package/dist/components/assistant-ui/elements/MermaidDiagram.js +13 -0
  568. package/dist/components/assistant-ui/elements/MermaidSvg.d.ts +7 -0
  569. package/dist/components/assistant-ui/elements/MermaidZoom.d.ts +7 -0
  570. package/dist/components/assistant-ui/elements/MermaidZoom.js +11 -0
  571. package/dist/components/assistant-ui/elements/MessageActions.d.ts +12 -0
  572. package/dist/components/assistant-ui/elements/MessageActions.js +9 -0
  573. package/dist/components/assistant-ui/elements/MessageAttachments.d.ts +16 -0
  574. package/dist/components/assistant-ui/elements/MessageAttachments.js +8 -0
  575. package/dist/components/assistant-ui/elements/MessageBranches.d.ts +8 -0
  576. package/dist/components/assistant-ui/elements/MessageBranches.js +8 -0
  577. package/dist/components/assistant-ui/elements/MessagePair.d.ts +12 -0
  578. package/dist/components/assistant-ui/elements/MessagePair.js +8 -0
  579. package/dist/components/assistant-ui/elements/MessageQueue.d.ts +13 -0
  580. package/dist/components/assistant-ui/elements/MessageQueue.js +8 -0
  581. package/dist/components/assistant-ui/elements/MessageTiming.d.ts +10 -0
  582. package/dist/components/assistant-ui/elements/MessageTiming.js +7 -0
  583. package/dist/components/assistant-ui/elements/MobileComposer.d.ts +15 -0
  584. package/dist/components/assistant-ui/elements/MobileComposer.js +11 -0
  585. package/dist/components/assistant-ui/elements/ModelPicker.d.ts +16 -0
  586. package/dist/components/assistant-ui/elements/ModelPicker.js +13 -0
  587. package/dist/components/assistant-ui/elements/ModelSelector.d.ts +9 -0
  588. package/dist/components/assistant-ui/elements/ModelSelector.js +28 -0
  589. package/dist/components/assistant-ui/elements/ModelSelectorContent.d.ts +6 -0
  590. package/dist/components/assistant-ui/elements/ModelSelectorContent.js +24 -0
  591. package/dist/components/assistant-ui/elements/ModelSelectorEffort.d.ts +5 -0
  592. package/dist/components/assistant-ui/elements/ModelSelectorEffort.js +8 -0
  593. package/dist/components/assistant-ui/elements/ModelSelectorEmpty.d.ts +3 -0
  594. package/dist/components/assistant-ui/elements/ModelSelectorEmpty.js +15 -0
  595. package/dist/components/assistant-ui/elements/ModelSelectorFocusAnchor.d.ts +2 -0
  596. package/dist/components/assistant-ui/elements/ModelSelectorFocusAnchor.js +15 -0
  597. package/dist/components/assistant-ui/elements/ModelSelectorGroup.d.ts +3 -0
  598. package/dist/components/assistant-ui/elements/ModelSelectorGroup.js +15 -0
  599. package/dist/components/assistant-ui/elements/ModelSelectorItem.d.ts +7 -0
  600. package/dist/components/assistant-ui/elements/ModelSelectorItem.js +17 -0
  601. package/dist/components/assistant-ui/elements/ModelSelectorList.d.ts +3 -0
  602. package/dist/components/assistant-ui/elements/ModelSelectorList.js +19 -0
  603. package/dist/components/assistant-ui/elements/ModelSelectorRoot.d.ts +16 -0
  604. package/dist/components/assistant-ui/elements/ModelSelectorRoot.js +11 -0
  605. package/dist/components/assistant-ui/elements/ModelSelectorSearch.d.ts +3 -0
  606. package/dist/components/assistant-ui/elements/ModelSelectorSearch.js +15 -0
  607. package/dist/components/assistant-ui/elements/ModelSelectorSeparator.d.ts +3 -0
  608. package/dist/components/assistant-ui/elements/ModelSelectorSeparator.js +15 -0
  609. package/dist/components/assistant-ui/elements/ModelSelectorTrigger.d.ts +6 -0
  610. package/dist/components/assistant-ui/elements/ModelSelectorTrigger.js +13 -0
  611. package/dist/components/assistant-ui/elements/ModelSelectorValue.d.ts +6 -0
  612. package/dist/components/assistant-ui/elements/ModelSelectorValue.js +8 -0
  613. package/dist/components/assistant-ui/elements/NumberRoll.d.ts +13 -0
  614. package/dist/components/assistant-ui/elements/NumberRoll.js +8 -0
  615. package/dist/components/assistant-ui/elements/NumberRollDigit.d.ts +8 -0
  616. package/dist/components/assistant-ui/elements/NumberRollPart.d.ts +9 -0
  617. package/dist/components/assistant-ui/elements/NumberTicker.d.ts +8 -0
  618. package/dist/components/assistant-ui/elements/NumberTicker.js +7 -0
  619. package/dist/components/assistant-ui/elements/Onboarding.d.ts +15 -0
  620. package/dist/components/assistant-ui/elements/Onboarding.js +8 -0
  621. package/dist/components/assistant-ui/elements/OpenAILogo.d.ts +3 -0
  622. package/dist/components/assistant-ui/elements/OpenAILogo.js +6 -0
  623. package/dist/components/assistant-ui/elements/OptionList.d.ts +15 -0
  624. package/dist/components/assistant-ui/elements/OptionList.js +11 -0
  625. package/dist/components/assistant-ui/elements/OptionText.d.ts +8 -0
  626. package/dist/components/assistant-ui/elements/OptionText.js +7 -0
  627. package/dist/components/assistant-ui/elements/PermissionGrant.d.ts +12 -0
  628. package/dist/components/assistant-ui/elements/PermissionGrant.js +9 -0
  629. package/dist/components/assistant-ui/elements/PromptLibrary.d.ts +18 -0
  630. package/dist/components/assistant-ui/elements/PromptLibrary.js +11 -0
  631. package/dist/components/assistant-ui/elements/QuestionFlow.d.ts +11 -0
  632. package/dist/components/assistant-ui/elements/QuestionFlow.js +12 -0
  633. package/dist/components/assistant-ui/elements/QuotaBanner.d.ts +12 -0
  634. package/dist/components/assistant-ui/elements/QuotaBanner.js +9 -0
  635. package/dist/components/assistant-ui/elements/QuoteReply.d.ts +18 -0
  636. package/dist/components/assistant-ui/elements/QuoteReply.js +8 -0
  637. package/dist/components/assistant-ui/elements/ReadAloud.d.ts +14 -0
  638. package/dist/components/assistant-ui/elements/ReadAloud.js +9 -0
  639. package/dist/components/assistant-ui/elements/ReasoningContent.d.ts +4 -0
  640. package/dist/components/assistant-ui/elements/ReasoningContent.js +10 -0
  641. package/dist/components/assistant-ui/elements/ReasoningEffort.d.ts +15 -0
  642. package/dist/components/assistant-ui/elements/ReasoningEffort.js +9 -0
  643. package/dist/components/assistant-ui/elements/ReasoningFade.d.ts +7 -0
  644. package/dist/components/assistant-ui/elements/ReasoningFade.js +7 -0
  645. package/dist/components/assistant-ui/elements/ReasoningPanel.d.ts +15 -0
  646. package/dist/components/assistant-ui/elements/ReasoningPanel.js +11 -0
  647. package/dist/components/assistant-ui/elements/ReasoningRoot.d.ts +25 -0
  648. package/dist/components/assistant-ui/elements/ReasoningRoot.js +10 -0
  649. package/dist/components/assistant-ui/elements/ReasoningText.d.ts +5 -0
  650. package/dist/components/assistant-ui/elements/ReasoningText.js +8 -0
  651. package/dist/components/assistant-ui/elements/ReasoningTrigger.d.ts +9 -0
  652. package/dist/components/assistant-ui/elements/ReasoningTrigger.js +8 -0
  653. package/dist/components/assistant-ui/elements/RecommendationCard.d.ts +15 -0
  654. package/dist/components/assistant-ui/elements/RecommendationCard.js +9 -0
  655. package/dist/components/assistant-ui/elements/RegenerateMenu.d.ts +16 -0
  656. package/dist/components/assistant-ui/elements/RegenerateMenu.js +12 -0
  657. package/dist/components/assistant-ui/elements/ResearchReport.d.ts +17 -0
  658. package/dist/components/assistant-ui/elements/ResearchReport.js +7 -0
  659. package/dist/components/assistant-ui/elements/RetrievalChunks.d.ts +17 -0
  660. package/dist/components/assistant-ui/elements/RetrievalChunks.js +9 -0
  661. package/dist/components/assistant-ui/elements/ReviewableDiff.d.ts +19 -0
  662. package/dist/components/assistant-ui/elements/ReviewableDiff.js +8 -0
  663. package/dist/components/assistant-ui/elements/RunActivity.d.ts +23 -0
  664. package/dist/components/assistant-ui/elements/RunActivity.js +8 -0
  665. package/dist/components/assistant-ui/elements/ScheduleCard.d.ts +17 -0
  666. package/dist/components/assistant-ui/elements/ScheduleCard.js +8 -0
  667. package/dist/components/assistant-ui/elements/ScoreBreakdown.d.ts +17 -0
  668. package/dist/components/assistant-ui/elements/ScoreBreakdown.js +9 -0
  669. package/dist/components/assistant-ui/elements/ScrollAnchor.d.ts +13 -0
  670. package/dist/components/assistant-ui/elements/ScrollAnchor.js +7 -0
  671. package/dist/components/assistant-ui/elements/SettingsPanel.d.ts +21 -0
  672. package/dist/components/assistant-ui/elements/SettingsPanel.js +11 -0
  673. package/dist/components/assistant-ui/elements/ShareMeter.d.ts +10 -0
  674. package/dist/components/assistant-ui/elements/ShareMeter.js +6 -0
  675. package/dist/components/assistant-ui/elements/SharedConversation.d.ts +13 -0
  676. package/dist/components/assistant-ui/elements/SharedConversation.js +8 -0
  677. package/dist/components/assistant-ui/elements/ShikiHighlighter.d.ts +24 -0
  678. package/dist/components/assistant-ui/elements/ShikiHighlighter.js +7 -0
  679. package/dist/components/assistant-ui/elements/ShimmerLabel.d.ts +6 -0
  680. package/dist/components/assistant-ui/elements/ShimmerLabel.js +7 -0
  681. package/dist/components/assistant-ui/elements/SourceGlyph.d.ts +6 -0
  682. package/dist/components/assistant-ui/elements/SourceGlyph.js +6 -0
  683. package/dist/components/assistant-ui/elements/Sources.d.ts +18 -0
  684. package/dist/components/assistant-ui/elements/Sources.js +9 -0
  685. package/dist/components/assistant-ui/elements/SpeakerIdentity.d.ts +15 -0
  686. package/dist/components/assistant-ui/elements/SpeakerIdentity.js +7 -0
  687. package/dist/components/assistant-ui/elements/SpecSheet.d.ts +15 -0
  688. package/dist/components/assistant-ui/elements/SpecSheet.js +7 -0
  689. package/dist/components/assistant-ui/elements/StoppedRun.d.ts +10 -0
  690. package/dist/components/assistant-ui/elements/StoppedRun.js +8 -0
  691. package/dist/components/assistant-ui/elements/StreamingText.d.ts +13 -0
  692. package/dist/components/assistant-ui/elements/StreamingText.js +7 -0
  693. package/dist/components/assistant-ui/elements/Sub.d.ts +2 -0
  694. package/dist/components/assistant-ui/elements/Sub.js +6 -0
  695. package/dist/components/assistant-ui/elements/SubagentList.d.ts +15 -0
  696. package/dist/components/assistant-ui/elements/SubagentList.js +8 -0
  697. package/dist/components/assistant-ui/elements/Suggestions.d.ts +10 -0
  698. package/dist/components/assistant-ui/elements/Suggestions.js +8 -0
  699. package/dist/components/assistant-ui/elements/Sup.d.ts +2 -0
  700. package/dist/components/assistant-ui/elements/Sup.js +6 -0
  701. package/dist/components/assistant-ui/elements/SwapLabel.d.ts +7 -0
  702. package/dist/components/assistant-ui/elements/SwapLabel.js +8 -0
  703. package/dist/components/assistant-ui/elements/SyntaxHighlighter.d.ts +3 -0
  704. package/dist/components/assistant-ui/elements/SyntaxHighlighter.js +6 -0
  705. package/dist/components/assistant-ui/elements/TaskCard.d.ts +16 -0
  706. package/dist/components/assistant-ui/elements/TaskCard.js +9 -0
  707. package/dist/components/assistant-ui/elements/TaskStateIcon.d.ts +7 -0
  708. package/dist/components/assistant-ui/elements/TaskStateIcon.js +7 -0
  709. package/dist/components/assistant-ui/elements/TerminalAnsiFragment.d.ts +7 -0
  710. package/dist/components/assistant-ui/elements/TerminalBlock.d.ts +17 -0
  711. package/dist/components/assistant-ui/elements/TerminalBlock.js +9 -0
  712. package/dist/components/assistant-ui/elements/ThinkingIndicator.d.ts +8 -0
  713. package/dist/components/assistant-ui/elements/ThinkingIndicator.js +8 -0
  714. package/dist/components/assistant-ui/elements/ThreadList.d.ts +17 -0
  715. package/dist/components/assistant-ui/elements/ThreadList.js +8 -0
  716. package/dist/components/assistant-ui/elements/ThreadSearch.d.ts +25 -0
  717. package/dist/components/assistant-ui/elements/ThreadSearch.js +11 -0
  718. package/dist/components/assistant-ui/elements/Timeline.d.ts +16 -0
  719. package/dist/components/assistant-ui/elements/Timeline.js +7 -0
  720. package/dist/components/assistant-ui/elements/TodoList.d.ts +19 -0
  721. package/dist/components/assistant-ui/elements/TodoList.js +8 -0
  722. package/dist/components/assistant-ui/elements/ToolCall.d.ts +12 -0
  723. package/dist/components/assistant-ui/elements/ToolCall.js +11 -0
  724. package/dist/components/assistant-ui/elements/ToolError.d.ts +14 -0
  725. package/dist/components/assistant-ui/elements/ToolError.js +8 -0
  726. package/dist/components/assistant-ui/elements/ToolGroup.d.ts +18 -0
  727. package/dist/components/assistant-ui/elements/ToolGroup.js +8 -0
  728. package/dist/components/assistant-ui/elements/ToolTimeline.d.ts +24 -0
  729. package/dist/components/assistant-ui/elements/ToolTimeline.js +11 -0
  730. package/dist/components/assistant-ui/elements/TooltipIconButton.d.ts +9 -0
  731. package/dist/components/assistant-ui/elements/TooltipIconButton.js +12 -0
  732. package/dist/components/assistant-ui/elements/TraceWaterfall.d.ts +18 -0
  733. package/dist/components/assistant-ui/elements/TraceWaterfall.js +7 -0
  734. package/dist/components/assistant-ui/elements/TypingIndicator.d.ts +7 -0
  735. package/dist/components/assistant-ui/elements/TypingIndicator.js +7 -0
  736. package/dist/components/assistant-ui/elements/VideoPlayer.d.ts +9 -0
  737. package/dist/components/assistant-ui/elements/VideoPlayer.js +8 -0
  738. package/dist/components/assistant-ui/elements/VoiceConversation.d.ts +16 -0
  739. package/dist/components/assistant-ui/elements/VoiceConversation.js +8 -0
  740. package/dist/components/assistant-ui/elements/VoiceOrb.d.ts +8 -0
  741. package/dist/components/assistant-ui/elements/VoiceOrb.js +9 -0
  742. package/dist/components/assistant-ui/elements/WebPreview.d.ts +17 -0
  743. package/dist/components/assistant-ui/elements/WebPreview.js +9 -0
  744. package/dist/components/assistant-ui/elements/WebSearch.d.ts +15 -0
  745. package/dist/components/assistant-ui/elements/WebSearch.js +8 -0
  746. package/dist/components/assistant-ui/elements/composer/types.d.ts +27 -0
  747. package/dist/components/assistant-ui/elements/constants.d.ts +14 -0
  748. package/dist/components/assistant-ui/elements/types.d.ts +24 -0
  749. package/dist/components/assistant-ui/eveAskQuestionToolkit.d.ts +8 -0
  750. package/dist/components/assistant-ui/eveAskQuestionToolkit.js +12 -0
  751. package/dist/components/assistant-ui/hooks/useAttachmentSrc.d.ts +1 -0
  752. package/dist/components/assistant-ui/hooks/useContextDisplay.d.ts +2 -0
  753. package/dist/components/assistant-ui/hooks/useControllableState.d.ts +8 -0
  754. package/dist/components/assistant-ui/hooks/useConversationMapViewport.d.ts +10 -0
  755. package/dist/components/assistant-ui/hooks/useConversationProjection.d.ts +3 -0
  756. package/dist/components/assistant-ui/hooks/useCopyToClipboard.d.ts +9 -0
  757. package/dist/components/assistant-ui/hooks/useCustomServersSection.d.ts +11 -0
  758. package/dist/components/assistant-ui/hooks/useFitInComposer.d.ts +9 -0
  759. package/dist/components/assistant-ui/hooks/useIsomorphicLayoutEffect.d.ts +2 -0
  760. package/dist/components/assistant-ui/hooks/useMediaDuration.d.ts +7 -0
  761. package/dist/components/assistant-ui/hooks/useModalSize.d.ts +13 -0
  762. package/dist/components/assistant-ui/hooks/useModelSelectorContext.d.ts +2 -0
  763. package/dist/components/assistant-ui/hooks/useModelSelectorEfforts.d.ts +8 -0
  764. package/dist/components/assistant-ui/hooks/usePrefersReducedMotion.d.ts +1 -0
  765. package/dist/components/assistant-ui/hooks/useReceiptFocus.d.ts +8 -0
  766. package/dist/components/assistant-ui/hooks/useResolvedPortalContainer.d.ts +6 -0
  767. package/dist/components/assistant-ui/hooks/useServerActionFocus.d.ts +7 -0
  768. package/dist/components/assistant-ui/hooks/useServerAnnouncement.d.ts +1 -0
  769. package/dist/components/assistant-ui/hooks/useStartOfToday.d.ts +1 -0
  770. package/dist/components/assistant-ui/hooks/useTaskElapsed.d.ts +2 -0
  771. package/dist/components/assistant-ui/hooks/useTaskSummary.d.ts +2 -0
  772. package/dist/components/assistant-ui/hooks/useThreadListGroups.d.ts +2 -0
  773. package/dist/components/assistant-ui/hooks/useVoiceTranscript.d.ts +2 -0
  774. package/dist/components/assistant-ui/index.d.ts +363 -0
  775. package/dist/components/assistant-ui/index.js +865 -0
  776. package/dist/components/assistant-ui/native/AgentStatus.d.ts +6 -0
  777. package/dist/components/assistant-ui/native/AgentStatus.js +10 -0
  778. package/dist/components/assistant-ui/native/AssistantModal.d.ts +2 -0
  779. package/dist/components/assistant-ui/native/AssistantModal.js +41 -0
  780. package/dist/components/assistant-ui/native/AssistantSidebar.d.ts +3 -0
  781. package/dist/components/assistant-ui/native/AssistantSidebar.js +40 -0
  782. package/dist/components/assistant-ui/native/AttachmentPreview.d.ts +4 -0
  783. package/dist/components/assistant-ui/native/AttachmentPreview.js +19 -0
  784. package/dist/components/assistant-ui/native/ComposerQuotePreview.d.ts +19 -0
  785. package/dist/components/assistant-ui/native/ComposerQuotePreview.js +14 -0
  786. package/dist/components/assistant-ui/native/ComposerTriggerPopover.d.ts +47 -0
  787. package/dist/components/assistant-ui/native/ComposerTriggerPopover.js +7 -0
  788. package/dist/components/assistant-ui/native/ContextDisplay.d.ts +15 -0
  789. package/dist/components/assistant-ui/native/ContextDisplay.js +22 -0
  790. package/dist/components/assistant-ui/native/ContextDisplayBar.d.ts +3 -0
  791. package/dist/components/assistant-ui/native/ContextDisplayBar.js +19 -0
  792. package/dist/components/assistant-ui/native/ContextDisplayRing.d.ts +3 -0
  793. package/dist/components/assistant-ui/native/ContextDisplayRing.js +19 -0
  794. package/dist/components/assistant-ui/native/ContextDisplayRoot.d.ts +8 -0
  795. package/dist/components/assistant-ui/native/ContextDisplayRoot.js +13 -0
  796. package/dist/components/assistant-ui/native/ContextDisplayRuntimeRoot.d.ts +3 -0
  797. package/dist/components/assistant-ui/native/ContextDisplayRuntimeRoot.js +12 -0
  798. package/dist/components/assistant-ui/native/ContextDisplayText.d.ts +3 -0
  799. package/dist/components/assistant-ui/native/ContextDisplayText.js +19 -0
  800. package/dist/components/assistant-ui/native/ConversationMapAui.d.ts +7 -0
  801. package/dist/components/assistant-ui/native/ConversationMapAui.js +12 -0
  802. package/dist/components/assistant-ui/native/DirectiveText.d.ts +3 -0
  803. package/dist/components/assistant-ui/native/DirectiveText.js +9 -0
  804. package/dist/components/assistant-ui/native/FollowupSuggestionsRow.d.ts +2 -0
  805. package/dist/components/assistant-ui/native/FollowupSuggestionsRow.js +6 -0
  806. package/dist/components/assistant-ui/native/McpConfigDialog.d.ts +27 -0
  807. package/dist/components/assistant-ui/native/McpConfigDialog.js +15 -0
  808. package/dist/components/assistant-ui/native/MermaidDiagram.d.ts +28 -0
  809. package/dist/components/assistant-ui/native/MermaidDiagram.js +14 -0
  810. package/dist/components/assistant-ui/native/MessageTiming.d.ts +25 -0
  811. package/dist/components/assistant-ui/native/MessageTiming.js +10 -0
  812. package/dist/components/assistant-ui/native/ModelSelector.d.ts +30 -0
  813. package/dist/components/assistant-ui/native/ModelSelector.js +30 -0
  814. package/dist/components/assistant-ui/native/QuoteBlock.d.ts +16 -0
  815. package/dist/components/assistant-ui/native/QuoteBlock.js +12 -0
  816. package/dist/components/assistant-ui/native/Reasoning.d.ts +30 -0
  817. package/dist/components/assistant-ui/native/Reasoning.js +27 -0
  818. package/dist/components/assistant-ui/native/SelectionToolbar.d.ts +19 -0
  819. package/dist/components/assistant-ui/native/SelectionToolbar.js +10 -0
  820. package/dist/components/assistant-ui/native/Sources.d.ts +46 -0
  821. package/dist/components/assistant-ui/native/Sources.js +16 -0
  822. package/dist/components/assistant-ui/native/SyntaxHighlighter.d.ts +28 -0
  823. package/dist/components/assistant-ui/native/SyntaxHighlighter.js +8 -0
  824. package/dist/components/assistant-ui/native/TaskCard.d.ts +11 -0
  825. package/dist/components/assistant-ui/native/TaskCard.js +21 -0
  826. package/dist/components/assistant-ui/native/TaskGroup.d.ts +8 -0
  827. package/dist/components/assistant-ui/native/TaskGroup.js +22 -0
  828. package/dist/components/assistant-ui/native/TaskTray.d.ts +3 -0
  829. package/dist/components/assistant-ui/native/TaskTray.js +14 -0
  830. package/dist/components/assistant-ui/native/Thread.d.ts +34 -0
  831. package/dist/components/assistant-ui/native/Thread.js +38 -0
  832. package/dist/components/assistant-ui/native/ThreadList.d.ts +24 -0
  833. package/dist/components/assistant-ui/native/ThreadList.js +23 -0
  834. package/dist/components/assistant-ui/native/ThreadListSidebar.d.ts +3 -0
  835. package/dist/components/assistant-ui/native/ThreadListSidebar.js +19 -0
  836. package/dist/components/assistant-ui/native/ToolFallbackRoot.d.ts +71 -0
  837. package/dist/components/assistant-ui/native/ToolFallbackRoot.js +28 -0
  838. package/dist/components/assistant-ui/native/ToolGroup.d.ts +38 -0
  839. package/dist/components/assistant-ui/native/ToolGroup.js +14 -0
  840. package/dist/components/assistant-ui/native/VoiceConnectButton.d.ts +2 -0
  841. package/dist/components/assistant-ui/native/VoiceConnectButton.js +8 -0
  842. package/dist/components/assistant-ui/native/VoiceControl.d.ts +2 -0
  843. package/dist/components/assistant-ui/native/VoiceControl.js +17 -0
  844. package/dist/components/assistant-ui/native/VoiceConversation.d.ts +3 -0
  845. package/dist/components/assistant-ui/native/VoiceConversation.js +9 -0
  846. package/dist/components/assistant-ui/native/VoiceDisconnectButton.d.ts +2 -0
  847. package/dist/components/assistant-ui/native/VoiceDisconnectButton.js +13 -0
  848. package/dist/components/assistant-ui/native/VoiceMuteButton.d.ts +2 -0
  849. package/dist/components/assistant-ui/native/VoiceMuteButton.js +13 -0
  850. package/dist/components/assistant-ui/native/VoiceOrb.d.ts +7 -0
  851. package/dist/components/assistant-ui/native/VoiceOrb.js +10 -0
  852. package/dist/components/assistant-ui/native/VoiceStatusDot.d.ts +2 -0
  853. package/dist/components/assistant-ui/native/VoiceStatusDot.js +7 -0
  854. package/dist/components/assistant-ui/native/constants.d.ts +3 -0
  855. package/dist/components/assistant-ui/native/index.d.ts +92 -0
  856. package/dist/components/assistant-ui/native/index.js +312 -0
  857. package/dist/components/assistant-ui/threadList/types.d.ts +11 -0
  858. package/dist/components/assistant-ui/utils/askQuestion.d.ts +14 -0
  859. package/dist/components/assistant-ui/utils/contextDisplayContext.d.ts +8 -0
  860. package/dist/components/assistant-ui/utils/contextUsage.d.ts +16 -0
  861. package/dist/components/assistant-ui/utils/dataTable/constants.d.ts +2 -0
  862. package/dist/components/assistant-ui/utils/dataTable/types.d.ts +66 -0
  863. package/dist/components/assistant-ui/utils/dataTableUtils.d.ts +20 -0
  864. package/dist/components/assistant-ui/utils/deriveVoiceOrbState.d.ts +3 -0
  865. package/dist/components/assistant-ui/utils/diffViewer/computeDiff.d.ts +2 -0
  866. package/dist/components/assistant-ui/utils/diffViewer/constants.d.ts +10 -0
  867. package/dist/components/assistant-ui/utils/diffViewer/formatUnifiedDiff.d.ts +2 -0
  868. package/dist/components/assistant-ui/utils/diffViewer/pairLinesForSplit.d.ts +2 -0
  869. package/dist/components/assistant-ui/utils/diffViewer/parsePatch.d.ts +2 -0
  870. package/dist/components/assistant-ui/utils/diffViewer/types.d.ts +33 -0
  871. package/dist/components/assistant-ui/utils/fileUtils.d.ts +10 -0
  872. package/dist/components/assistant-ui/utils/formatJobElapsed.d.ts +6 -0
  873. package/dist/components/assistant-ui/utils/formatMediaDuration.d.ts +1 -0
  874. package/dist/components/assistant-ui/utils/geoMap.d.ts +4 -0
  875. package/dist/components/assistant-ui/utils/getDotMatrixPattern.d.ts +151 -0
  876. package/dist/components/assistant-ui/utils/getNumberRollParts.d.ts +6 -0
  877. package/dist/components/assistant-ui/utils/groupThreads.d.ts +2 -0
  878. package/dist/components/assistant-ui/utils/href.d.ts +15 -0
  879. package/dist/components/assistant-ui/utils/imageUtils.d.ts +4 -0
  880. package/dist/components/assistant-ui/utils/isTaskPart.d.ts +6 -0
  881. package/dist/components/assistant-ui/utils/mcpConfigState.d.ts +6 -0
  882. package/dist/components/assistant-ui/utils/modelSelection.d.ts +34 -0
  883. package/dist/components/assistant-ui/utils/numberRollTypes.d.ts +17 -0
  884. package/dist/components/assistant-ui/utils/parseTerminalLine.d.ts +17 -0
  885. package/dist/components/assistant-ui/utils/prepareMermaidSvg.d.ts +1 -0
  886. package/dist/components/assistant-ui/utils/projectConversation.d.ts +3 -0
  887. package/dist/components/assistant-ui/utils/range.d.ts +32 -0
  888. package/dist/components/assistant-ui/utils/readTerminalBackground.d.ts +2 -0
  889. package/dist/components/assistant-ui/utils/readableTerminalForeground.d.ts +2 -0
  890. package/dist/components/assistant-ui/utils/reasoningPreviewContext.d.ts +1 -0
  891. package/dist/components/assistant-ui/utils/stripTerminalControls.d.ts +2 -0
  892. package/dist/components/assistant-ui/utils/taskSummary/types.d.ts +8 -0
  893. package/dist/components/assistant-ui/utils/taskSummaryUtils.d.ts +6 -0
  894. package/dist/components/assistant-ui/utils/taskUtils.d.ts +11 -0
  895. package/dist/components/assistant-ui/utils/tokens.d.ts +8 -0
  896. package/dist/components/calendar/Calendar.d.ts +6 -0
  897. package/dist/components/calendar/getCalendarClassNames.d.ts +3 -0
  898. package/dist/components/calendar/index.d.ts +1 -0
  899. package/dist/components/calendar/index.js +10 -0
  900. package/dist/components/calendar/types.d.ts +9 -0
  901. package/dist/components/carousel/Carousel.d.ts +9 -0
  902. package/dist/components/carousel/CarouselContext.d.ts +2 -0
  903. package/dist/components/carousel/hooks/useCarousel.d.ts +2 -0
  904. package/dist/components/carousel/index.d.ts +3 -0
  905. package/dist/components/carousel/index.js +207 -0
  906. package/dist/components/carousel/types.d.ts +23 -0
  907. package/dist/components/chart/Chart.d.ts +10 -0
  908. package/dist/components/chart/ChartContext.d.ts +2 -0
  909. package/dist/components/chart/ChartStyle.d.ts +3 -0
  910. package/dist/components/chart/getPayloadConfigFromPayload.d.ts +2 -0
  911. package/dist/components/chart/hooks/useChart.d.ts +2 -0
  912. package/dist/components/chart/index.d.ts +3 -0
  913. package/dist/components/chart/index.js +22 -0
  914. package/dist/components/chart/types.d.ts +50 -0
  915. package/dist/components/command/Command.d.ts +21 -0
  916. package/dist/components/command/index.d.ts +1 -0
  917. package/dist/components/command/index.js +30 -0
  918. package/dist/components/input-otp/InputOTP.d.ts +12 -0
  919. package/dist/components/input-otp/index.d.ts +1 -0
  920. package/dist/components/input-otp/index.js +303 -0
  921. package/dist/components/message-scroller/MessageScroller.d.ts +16 -0
  922. package/dist/components/message-scroller/hooks/useMessageScroller.d.ts +1 -0
  923. package/dist/components/message-scroller/hooks/useMessageScrollerScrollable.d.ts +1 -0
  924. package/dist/components/message-scroller/hooks/useMessageScrollerVisibility.d.ts +1 -0
  925. package/dist/components/message-scroller/index.d.ts +5 -0
  926. package/dist/components/message-scroller/index.js +600 -0
  927. package/dist/components/persian-calendar/PersianCalendar.d.ts +6 -0
  928. package/dist/components/persian-calendar/index.d.ts +1 -0
  929. package/dist/components/persian-calendar/index.js +36 -0
  930. package/dist/components/questionnaire/Questionnaire.d.ts +20 -0
  931. package/dist/components/questionnaire/index.d.ts +2 -0
  932. package/dist/components/questionnaire/index.js +747 -0
  933. package/dist/components/resizable/Resizable.d.ts +10 -0
  934. package/dist/components/resizable/SplitView.d.ts +14 -0
  935. package/dist/components/resizable/index.d.ts +2 -0
  936. package/dist/components/resizable/index.js +105 -0
  937. package/dist/components/sonner/Sonner.d.ts +7 -0
  938. package/dist/components/sonner/hooks/useSonner.d.ts +1 -0
  939. package/dist/components/sonner/index.d.ts +2 -0
  940. package/dist/components/sonner/index.js +1273 -0
  941. package/dist/density/DensityContext.d.ts +2 -0
  942. package/dist/density/types.d.ts +4 -0
  943. package/dist/drag-drop/DragDropContext.d.ts +2 -0
  944. package/dist/drag-drop/types.d.ts +45 -0
  945. package/dist/drawer/DrawerContext.d.ts +2 -0
  946. package/dist/drawer/types.d.ts +7 -0
  947. package/dist/fonts.css +1 -0
  948. package/dist/generative-ui.css +1578 -0
  949. package/dist/hooks/useComboboxAnchor.d.ts +2 -0
  950. package/dist/hooks/useDensity.d.ts +2 -0
  951. package/dist/hooks/useDragDrop.d.ts +2 -0
  952. package/dist/hooks/useDragSource.d.ts +2 -0
  953. package/dist/hooks/useDrawer.d.ts +2 -0
  954. package/dist/hooks/useDropTarget.d.ts +2 -0
  955. package/dist/hooks/useMediaQuery.d.ts +1 -0
  956. package/dist/hooks/useObjectURL.d.ts +1 -0
  957. package/dist/hooks/usePortalContainer.d.ts +2 -0
  958. package/dist/hooks/useSidebar.d.ts +2 -0
  959. package/dist/hooks/useTheme.d.ts +2 -0
  960. package/dist/hooks/useToastManager.d.ts +2 -0
  961. package/dist/index.d.ts +87 -0
  962. package/dist/index.js +3339 -0
  963. package/dist/menu/types.d.ts +14 -0
  964. package/dist/message/MessageContext.d.ts +2 -0
  965. package/dist/message/types.d.ts +7 -0
  966. package/dist/options/types.d.ts +5 -0
  967. package/dist/portal/PortalContext.d.ts +1 -0
  968. package/dist/portal/types.d.ts +3 -0
  969. package/dist/sidebar/SidebarContext.d.ts +2 -0
  970. package/dist/sidebar/types.d.ts +32 -0
  971. package/dist/theme/ThemeContext.d.ts +2 -0
  972. package/dist/theme/types.d.ts +8 -0
  973. package/dist/theme.css +454 -0
  974. package/dist/toggle-group/ToggleGroupContext.d.ts +2 -0
  975. package/dist/toggle-group/types.d.ts +5 -0
  976. package/dist/typeset.css +444 -0
  977. package/dist/utils/cn.d.ts +2 -0
  978. package/package.json +1222 -4
package/dist/index.js ADDED
@@ -0,0 +1,3339 @@
1
+ import {
2
+ cn2
3
+ } from "./chunk-cp2m7y7v.js";
4
+ import {
5
+ buttonVariants2,
6
+ Button2
7
+ } from "./chunk-73rkr9ct.js";
8
+ import {
9
+ DensityContext,
10
+ useDensity
11
+ } from "./chunk-e6hk39ev.js";
12
+ import {
13
+ PortalContext,
14
+ usePortalContainer2
15
+ } from "./chunk-j89xg1ak.js";
16
+ import {
17
+ DirectionProvider2,
18
+ useDirection2
19
+ } from "./chunk-jpvw9xqy.js";
20
+ import {
21
+ DropdownMenu2,
22
+ DropdownMenuPortal2,
23
+ DropdownMenuTrigger2,
24
+ DropdownMenuContent2,
25
+ DropdownMenuGroup2,
26
+ DropdownMenuLabel2,
27
+ DropdownMenuItem2,
28
+ DropdownMenuSub2,
29
+ DropdownMenuSubTrigger2,
30
+ DropdownMenuSubContent2,
31
+ DropdownMenuCheckboxItem2,
32
+ DropdownMenuRadioGroup2,
33
+ DropdownMenuRadioItem2,
34
+ DropdownMenuSeparator2,
35
+ DropdownMenuShortcut2
36
+ } from "./chunk-mx21wpq0.js";
37
+ import {
38
+ Popover2,
39
+ PopoverTrigger2,
40
+ PopoverContent2,
41
+ PopoverHeader2,
42
+ PopoverTitle2,
43
+ PopoverDescription2
44
+ } from "./chunk-x7z9jzyf.js";
45
+ import {
46
+ Skeleton2
47
+ } from "./chunk-d70rcwk7.js";
48
+ import {
49
+ Input2
50
+ } from "./chunk-59p19t57.js";
51
+ import {
52
+ Label2
53
+ } from "./chunk-jcxxjkqx.js";
54
+ import {
55
+ Separator2
56
+ } from "./chunk-rajgnfbr.js";
57
+ import {
58
+ FieldSet2,
59
+ FieldLegend2,
60
+ FieldGroup2,
61
+ Field2,
62
+ FieldContent2,
63
+ FieldLabel2,
64
+ FieldTitle2,
65
+ FieldDescription2,
66
+ FieldSeparator2,
67
+ FieldError2
68
+ } from "./chunk-6jpz5geq.js";
69
+ import {
70
+ Dialog2,
71
+ DialogTrigger2,
72
+ DialogPortal2,
73
+ DialogClose2,
74
+ DialogOverlay2,
75
+ DialogContent2,
76
+ DialogHeader2,
77
+ DialogFooter2,
78
+ DialogTitle2,
79
+ DialogDescription2
80
+ } from "./chunk-zhnwybhq.js";
81
+ import {
82
+ Slider2
83
+ } from "./chunk-644cnngf.js";
84
+ import {
85
+ Switch2
86
+ } from "./chunk-8ye0k6z7.js";
87
+ import {
88
+ Textarea2
89
+ } from "./chunk-hz9azhzx.js";
90
+ import {
91
+ TooltipProvider2,
92
+ Tooltip2,
93
+ TooltipTrigger2,
94
+ TooltipContent2
95
+ } from "./chunk-czg9p52v.js";
96
+ import {
97
+ RadioGroup2,
98
+ RadioGroupItem2
99
+ } from "./chunk-wndqbss9.js";
100
+ import {
101
+ Card2,
102
+ CardHeader2,
103
+ CardTitle2,
104
+ CardDescription2,
105
+ CardAction2,
106
+ CardContent2,
107
+ CardFooter2
108
+ } from "./chunk-fqekyjkh.js";
109
+ import {
110
+ InputGroup2,
111
+ InputGroupAddon2,
112
+ InputGroupButton2,
113
+ InputGroupText2,
114
+ InputGroupInput2,
115
+ InputGroupTextarea2
116
+ } from "./chunk-1jeg5z55.js";
117
+ import {
118
+ badgeVariants2,
119
+ Badge2
120
+ } from "./chunk-wjx6zf94.js";
121
+ import {
122
+ Empty2,
123
+ EmptyHeader2,
124
+ EmptyMedia2,
125
+ EmptyTitle2,
126
+ EmptyDescription2,
127
+ EmptyContent2
128
+ } from "./chunk-9de1htr5.js";
129
+ import {
130
+ Checkbox2,
131
+ Spinner2
132
+ } from "./chunk-eehfrrdz.js";
133
+ import {
134
+ ThemeContext,
135
+ useTheme2
136
+ } from "./chunk-1j2hz3w9.js";
137
+ import {
138
+ useMediaQuery
139
+ } from "./chunk-k99h6evz.js";
140
+ import {
141
+ toggleVariants2,
142
+ Toggle2,
143
+ ToggleGroup2,
144
+ ToggleGroupItem2
145
+ } from "./chunk-aexby8h3.js";
146
+ import {
147
+ Alert2,
148
+ AlertTitle2,
149
+ AlertDescription2,
150
+ AlertAction2
151
+ } from "./chunk-53q730zs.js";
152
+ import {
153
+ Avatar2,
154
+ AvatarImage2,
155
+ AvatarFallback2,
156
+ AvatarBadge2,
157
+ AvatarGroup2,
158
+ AvatarGroupCount2
159
+ } from "./chunk-gg39sggp.js";
160
+ import {
161
+ Progress2,
162
+ ProgressTrack2,
163
+ ProgressIndicator2,
164
+ ProgressLabel2,
165
+ ProgressValue2
166
+ } from "./chunk-5j39rehg.js";
167
+ import {
168
+ Collapsible2,
169
+ CollapsibleTrigger2,
170
+ CollapsibleContent2
171
+ } from "./chunk-24d68cjp.js";
172
+ import {
173
+ Table2,
174
+ TableHeader2,
175
+ TableBody2,
176
+ TableFooter2,
177
+ TableRow2,
178
+ TableHead2,
179
+ TableCell2,
180
+ TableCaption2
181
+ } from "./chunk-0y0kqaqj.js";
182
+ import {
183
+ Kbd2,
184
+ KbdGroup2
185
+ } from "./chunk-vyve5wf3.js";
186
+ import {
187
+ HoverCard2,
188
+ HoverCardTrigger2,
189
+ HoverCardContent2
190
+ } from "./chunk-m54kq3he.js";
191
+ import {
192
+ Sheet2,
193
+ SheetTrigger2,
194
+ SheetClose2,
195
+ SheetContent2,
196
+ SheetHeader2,
197
+ SheetFooter2,
198
+ SheetTitle2,
199
+ SheetDescription2,
200
+ useSidebar2,
201
+ SidebarProvider2,
202
+ Sidebar2,
203
+ SidebarTrigger2,
204
+ SidebarRail2,
205
+ SidebarInset2,
206
+ SidebarInput2,
207
+ SidebarHeader2,
208
+ SidebarFooter2,
209
+ SidebarSeparator2,
210
+ SidebarContent2,
211
+ SidebarGroup2,
212
+ SidebarGroupLabel2,
213
+ SidebarGroupAction2,
214
+ SidebarGroupContent2,
215
+ SidebarMenu2,
216
+ SidebarMenuItem2,
217
+ SidebarMenuButton2,
218
+ SidebarMenuAction2,
219
+ SidebarMenuBadge2,
220
+ SidebarMenuSkeleton2,
221
+ SidebarMenuSub2,
222
+ SidebarMenuSubItem2,
223
+ SidebarMenuSubButton2
224
+ } from "./chunk-xvs5y4v7.js";
225
+ // src/components/Accordion.tsx
226
+ import { Accordion as AccordionPrimitive } from "@base-ui/react/accordion";
227
+ import { ChevronDownIcon, ChevronUpIcon } from "lucide-react";
228
+ import { jsx, jsxs } from "react/jsx-runtime";
229
+ function Accordion({ density, className, ...props }) {
230
+ return /* @__PURE__ */ jsx(AccordionPrimitive.Root, {
231
+ "data-density": density,
232
+ "data-slot": "accordion",
233
+ className: (state) => cn2("flex w-full flex-col", typeof className === "function" ? className(state) : className),
234
+ ...props
235
+ });
236
+ }
237
+ function AccordionItem({ density, className, ...props }) {
238
+ return /* @__PURE__ */ jsx(AccordionPrimitive.Item, {
239
+ "data-density": density,
240
+ "data-slot": "accordion-item",
241
+ className: (state) => cn2("not-last:border-b", typeof className === "function" ? className(state) : className),
242
+ ...props
243
+ });
244
+ }
245
+ function AccordionTrigger({ density, className, children, ...props }) {
246
+ return /* @__PURE__ */ jsx(AccordionPrimitive.Header, {
247
+ className: "flex",
248
+ children: /* @__PURE__ */ jsxs(AccordionPrimitive.Trigger, {
249
+ "data-density": density,
250
+ "data-slot": "accordion-trigger",
251
+ className: (state) => cn2("group/accordion-trigger relative flex flex-1 items-start justify-between rounded-sm border border-transparent py-2.5 text-start text-sm font-medium transition-colors outline-none hover:underline focus-visible:border-ring focus-visible:ring-1 focus-visible:ring-ring focus-visible:after:border-ring aria-disabled:pointer-events-none aria-disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ms-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground", typeof className === "function" ? className(state) : className),
252
+ ...props,
253
+ children: [
254
+ children,
255
+ /* @__PURE__ */ jsx(ChevronDownIcon, {
256
+ "data-slot": "accordion-trigger-icon",
257
+ className: "pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden"
258
+ }),
259
+ /* @__PURE__ */ jsx(ChevronUpIcon, {
260
+ "data-slot": "accordion-trigger-icon",
261
+ className: "pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline"
262
+ })
263
+ ]
264
+ })
265
+ });
266
+ }
267
+ function AccordionContent({ density, className, children, ...props }) {
268
+ return /* @__PURE__ */ jsx(AccordionPrimitive.Panel, {
269
+ "data-density": density,
270
+ "data-slot": "accordion-content",
271
+ className: (state) => cn2("h-(--accordion-panel-height) overflow-hidden text-sm transition-[height] duration-200 ease-out data-ending-style:h-0 data-starting-style:h-0", typeof className === "function" ? className(state) : className),
272
+ ...props,
273
+ children: /* @__PURE__ */ jsx("div", {
274
+ className: "pt-0 pb-2.5 [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4",
275
+ children
276
+ })
277
+ });
278
+ }
279
+ // src/components/Combobox.tsx
280
+ import { useDirection } from "@base-ui/react/direction-provider";
281
+ import { Combobox as ComboboxPrimitive } from "@base-ui/react/combobox";
282
+ import { ChevronDownIcon as ChevronDownIcon2, XIcon, CheckIcon } from "lucide-react";
283
+ import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
284
+ var Combobox = ComboboxPrimitive.Root;
285
+ function ComboboxValue({ ...props }) {
286
+ return /* @__PURE__ */ jsx2(ComboboxPrimitive.Value, {
287
+ ...props
288
+ });
289
+ }
290
+ function ComboboxTrigger({ density, className, children, ...props }) {
291
+ return /* @__PURE__ */ jsxs2(ComboboxPrimitive.Trigger, {
292
+ "data-density": density,
293
+ "data-slot": "combobox-trigger",
294
+ className: (state) => cn2("[&_svg:not([class*='size-'])]:size-4", typeof className === "function" ? className(state) : className),
295
+ ...props,
296
+ children: [
297
+ children,
298
+ /* @__PURE__ */ jsx2(ChevronDownIcon2, {
299
+ className: "pointer-events-none size-4 text-muted-foreground"
300
+ })
301
+ ]
302
+ });
303
+ }
304
+ function ComboboxClear({ density, className, ...props }) {
305
+ return /* @__PURE__ */ jsx2(ComboboxPrimitive.Clear, {
306
+ "data-density": density,
307
+ "data-slot": "combobox-clear",
308
+ render: /* @__PURE__ */ jsx2(InputGroupButton2, {
309
+ variant: "ghost",
310
+ size: "icon-xs"
311
+ }),
312
+ className: (state) => cn2(typeof className === "function" ? className(state) : className),
313
+ ...props,
314
+ children: /* @__PURE__ */ jsx2(XIcon, {
315
+ className: "pointer-events-none"
316
+ })
317
+ });
318
+ }
319
+ function ComboboxInput({
320
+ density,
321
+ className,
322
+ children,
323
+ disabled = false,
324
+ showTrigger = true,
325
+ showClear = false,
326
+ frameClassName,
327
+ triggerLabel = "Open popup",
328
+ clearLabel = "Clear selection",
329
+ ...props
330
+ }) {
331
+ return /* @__PURE__ */ jsxs2(InputGroup2, {
332
+ density,
333
+ className: cn2("w-auto", frameClassName),
334
+ children: [
335
+ /* @__PURE__ */ jsx2(ComboboxPrimitive.Input, {
336
+ disabled,
337
+ className,
338
+ render: /* @__PURE__ */ jsx2(InputGroupInput2, {}),
339
+ ...props
340
+ }),
341
+ /* @__PURE__ */ jsxs2(InputGroupAddon2, {
342
+ align: "inline-end",
343
+ children: [
344
+ showTrigger && /* @__PURE__ */ jsx2(InputGroupButton2, {
345
+ size: "icon-xs",
346
+ variant: "ghost",
347
+ render: /* @__PURE__ */ jsx2(ComboboxTrigger, {}),
348
+ "aria-label": triggerLabel,
349
+ "data-density": density,
350
+ "data-slot": "input-group-button",
351
+ className: "group-has-data-[slot=combobox-clear]/input-group:hidden data-pressed:bg-transparent",
352
+ disabled
353
+ }),
354
+ showClear && /* @__PURE__ */ jsx2(ComboboxClear, {
355
+ disabled,
356
+ "aria-label": clearLabel
357
+ })
358
+ ]
359
+ }),
360
+ children
361
+ ]
362
+ });
363
+ }
364
+ function ComboboxContent({
365
+ density,
366
+ className,
367
+ side = "bottom",
368
+ sideOffset = 6,
369
+ align = "start",
370
+ alignOffset = 0,
371
+ anchor,
372
+ ...props
373
+ }) {
374
+ const resolvedDensity = useDensity(density);
375
+ const direction = useDirection();
376
+ const container = usePortalContainer2();
377
+ return /* @__PURE__ */ jsx2(ComboboxPrimitive.Portal, {
378
+ container,
379
+ children: /* @__PURE__ */ jsx2(ComboboxPrimitive.Positioner, {
380
+ side,
381
+ sideOffset,
382
+ align,
383
+ alignOffset,
384
+ anchor,
385
+ className: "isolate ",
386
+ children: /* @__PURE__ */ jsx2(ComboboxPrimitive.Popup, {
387
+ dir: direction,
388
+ "data-density": resolvedDensity,
389
+ "data-slot": "combobox-content",
390
+ "data-chips": !!anchor,
391
+ className: (state) => cn2("group/combobox-content relative max-h-(--available-height) w-(--anchor-width) max-w-(--available-width) min-w-[calc(var(--anchor-width)+--spacing(7))] origin-(--transform-origin) overflow-hidden rounded-md bg-popover text-popover-foreground border border-frame-edge shadow-frame duration-120 data-[chips=true]:min-w-(--anchor-width) *:data-[slot=input-group]:m-1 *:data-[slot=input-group]:mb-0 *:data-[slot=input-group]:h-control *:data-[slot=input-group]:border-input/30 *:data-[slot=input-group]:bg-input/30 *:data-[slot=input-group]:shadow-none data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0 motion-reduce:data-open:animate-none motion-reduce:data-closed:animate-none", typeof className === "function" ? className(state) : className),
392
+ ...props
393
+ })
394
+ })
395
+ });
396
+ }
397
+ function ComboboxList({ density, className, ...props }) {
398
+ return /* @__PURE__ */ jsx2(ComboboxPrimitive.List, {
399
+ "data-density": density,
400
+ "data-slot": "combobox-list",
401
+ className: (state) => cn2("no-scrollbar max-h-[min(calc(--spacing(72)---spacing(9)),calc(var(--available-height)---spacing(9)))] scroll-py-1 overflow-y-auto overscroll-contain p-1 data-empty:p-0", typeof className === "function" ? className(state) : className),
402
+ ...props
403
+ });
404
+ }
405
+ function ComboboxItem({ density, className, children, ...props }) {
406
+ return /* @__PURE__ */ jsxs2(ComboboxPrimitive.Item, {
407
+ "data-density": density,
408
+ "data-slot": "combobox-item",
409
+ className: (state) => cn2("relative flex w-full cursor-default items-center gap-2 rounded-md py-1 pe-8 ps-1.5 text-sm outline-hidden select-none data-highlighted:bg-accent data-highlighted:text-accent-foreground not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", typeof className === "function" ? className(state) : className),
410
+ ...props,
411
+ children: [
412
+ children,
413
+ /* @__PURE__ */ jsx2(ComboboxPrimitive.ItemIndicator, {
414
+ render: /* @__PURE__ */ jsx2("span", {
415
+ className: "pointer-events-none absolute end-2 flex size-4 items-center justify-center"
416
+ }),
417
+ children: /* @__PURE__ */ jsx2(CheckIcon, {
418
+ className: "pointer-events-none"
419
+ })
420
+ })
421
+ ]
422
+ });
423
+ }
424
+ function ComboboxGroup({ density, className, ...props }) {
425
+ return /* @__PURE__ */ jsx2(ComboboxPrimitive.Group, {
426
+ "data-density": density,
427
+ "data-slot": "combobox-group",
428
+ className: (state) => cn2(typeof className === "function" ? className(state) : className),
429
+ ...props
430
+ });
431
+ }
432
+ function ComboboxLabel({ density, className, ...props }) {
433
+ return /* @__PURE__ */ jsx2(ComboboxPrimitive.GroupLabel, {
434
+ "data-density": density,
435
+ "data-slot": "combobox-label",
436
+ className: (state) => cn2("px-2 py-1.5 text-xs text-muted-foreground", typeof className === "function" ? className(state) : className),
437
+ ...props
438
+ });
439
+ }
440
+ function ComboboxCollection({ ...props }) {
441
+ return /* @__PURE__ */ jsx2(ComboboxPrimitive.Collection, {
442
+ ...props
443
+ });
444
+ }
445
+ function ComboboxEmpty({ density, className, ...props }) {
446
+ return /* @__PURE__ */ jsx2(ComboboxPrimitive.Empty, {
447
+ "data-density": density,
448
+ "data-slot": "combobox-empty",
449
+ className: (state) => cn2("flex w-full justify-center py-2 empty:p-0 text-center text-sm text-muted-foreground", typeof className === "function" ? className(state) : className),
450
+ ...props
451
+ });
452
+ }
453
+ function ComboboxSeparator({ density, className, ...props }) {
454
+ return /* @__PURE__ */ jsx2(ComboboxPrimitive.Separator, {
455
+ "data-density": density,
456
+ "data-slot": "combobox-separator",
457
+ className: (state) => cn2("-mx-1 my-1 h-px bg-border", typeof className === "function" ? className(state) : className),
458
+ ...props
459
+ });
460
+ }
461
+ function ComboboxChips({ density, className, ...props }) {
462
+ return /* @__PURE__ */ jsx2(ComboboxPrimitive.Chips, {
463
+ "data-density": density,
464
+ "data-slot": "combobox-chips",
465
+ className: (state) => cn2("flex min-h-control flex-wrap items-center gap-1 rounded-sm border border-input bg-transparent bg-clip-padding px-control-x py-px text-sm transition-colors focus-within:border-ring focus-within:ring-1 focus-within:ring-ring has-aria-invalid:border-destructive has-aria-invalid:ring-3 has-aria-invalid:ring-destructive has-data-[slot=combobox-chip]:px-1", typeof className === "function" ? className(state) : className),
466
+ ...props
467
+ });
468
+ }
469
+ function ComboboxChip({ density, className, children, showRemove = true, ...props }) {
470
+ return /* @__PURE__ */ jsxs2(ComboboxPrimitive.Chip, {
471
+ "data-density": density,
472
+ "data-slot": "combobox-chip",
473
+ className: (state) => cn2("flex h-tag w-fit items-center justify-center gap-1 rounded-sm bg-muted px-1.5 text-xs font-medium whitespace-nowrap text-foreground has-disabled:pointer-events-none has-disabled:cursor-not-allowed has-disabled:opacity-50 has-data-[slot=combobox-chip-remove]:pe-0", typeof className === "function" ? className(state) : className),
474
+ ...props,
475
+ children: [
476
+ children,
477
+ showRemove && /* @__PURE__ */ jsx2(ComboboxPrimitive.ChipRemove, {
478
+ render: /* @__PURE__ */ jsx2(Button2, {
479
+ variant: "ghost",
480
+ size: "icon-xs"
481
+ }),
482
+ className: "size-tag -ms-1 opacity-50 hover:opacity-100",
483
+ "data-slot": "combobox-chip-remove",
484
+ "aria-label": "Remove item",
485
+ children: /* @__PURE__ */ jsx2(XIcon, {
486
+ className: "pointer-events-none"
487
+ })
488
+ })
489
+ ]
490
+ });
491
+ }
492
+ function ComboboxChipsInput({ density, className, ...props }) {
493
+ return /* @__PURE__ */ jsx2(ComboboxPrimitive.Input, {
494
+ "data-density": density,
495
+ "data-slot": "combobox-chip-input",
496
+ className: (state) => cn2("h-tag min-w-16 flex-1 py-0 text-sm leading-none outline-none", typeof className === "function" ? className(state) : className),
497
+ ...props
498
+ });
499
+ }
500
+ // src/components/Tabs.tsx
501
+ import { Tabs as TabsPrimitive } from "@base-ui/react/tabs";
502
+ import { cva } from "class-variance-authority";
503
+ import { jsx as jsx3 } from "react/jsx-runtime";
504
+ function Tabs({ density, className, orientation = "horizontal", ...props }) {
505
+ return /* @__PURE__ */ jsx3(TabsPrimitive.Root, {
506
+ "data-density": density,
507
+ "data-slot": "tabs",
508
+ orientation,
509
+ className: (state) => cn2("group/tabs flex gap-2 data-[orientation=horizontal]:flex-col", typeof className === "function" ? className(state) : className),
510
+ ...props
511
+ });
512
+ }
513
+ var tabsListVariants = cva("group/tabs-list inline-flex w-fit items-center justify-center rounded-sm p-px text-muted-foreground group-data-[orientation=horizontal]/tabs:h-control group-data-[orientation=vertical]/tabs:h-fit group-data-[orientation=vertical]/tabs:flex-col data-[variant=line]:rounded-none", {
514
+ variants: {
515
+ variant: {
516
+ default: "bg-muted",
517
+ line: "gap-1 bg-transparent"
518
+ }
519
+ },
520
+ defaultVariants: {
521
+ variant: "default"
522
+ }
523
+ });
524
+ function TabsList({ density, className, variant = "default", ...props }) {
525
+ return /* @__PURE__ */ jsx3(TabsPrimitive.List, {
526
+ "data-density": density,
527
+ "data-slot": "tabs-list",
528
+ "data-variant": variant,
529
+ className: (state) => cn2(tabsListVariants({ variant }), typeof className === "function" ? className(state) : className),
530
+ ...props
531
+ });
532
+ }
533
+ function TabsTrigger({ density, className, ...props }) {
534
+ return /* @__PURE__ */ jsx3(TabsPrimitive.Tab, {
535
+ "data-density": density,
536
+ "data-slot": "tabs-trigger",
537
+ className: (state) => cn2("relative inline-flex h-full flex-1 items-center justify-center gap-control-gap rounded-md border border-transparent px-1.5 py-0.5 text-sm font-medium whitespace-nowrap text-foreground/60 transition-colors group-data-[orientation=vertical]/tabs:w-full group-data-[orientation=vertical]/tabs:justify-start hover:text-foreground focus-visible:border-ring focus-visible:ring-1 focus-visible:ring-ring focus-visible:outline-1 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 has-data-[icon=inline-end]:pe-1 has-data-[icon=inline-start]:ps-1 aria-disabled:pointer-events-none aria-disabled:opacity-50 group-data-[variant=default]/tabs-list:data-active:shadow-sm group-data-[variant=line]/tabs-list:data-active:shadow-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", "group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-active:bg-transparent", "data-active:bg-background data-active:text-foreground", "after:absolute after:bg-foreground after:opacity-0 after:transition-opacity group-data-[orientation=horizontal]/tabs:after:inset-x-0 group-data-[orientation=horizontal]/tabs:after:bottom-[-5px] group-data-[orientation=horizontal]/tabs:after:h-0.5 group-data-[orientation=vertical]/tabs:after:inset-y-0 group-data-[orientation=vertical]/tabs:after:-end-1 group-data-[orientation=vertical]/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-active:after:opacity-100", typeof className === "function" ? className(state) : className),
538
+ ...props
539
+ });
540
+ }
541
+ function TabsContent({ density, className, ...props }) {
542
+ return /* @__PURE__ */ jsx3(TabsPrimitive.Panel, {
543
+ "data-density": density,
544
+ "data-slot": "tabs-content",
545
+ className: (state) => cn2("flex-1 text-sm outline-none", typeof className === "function" ? className(state) : className),
546
+ ...props
547
+ });
548
+ }
549
+ // src/components/DragDropProvider.tsx
550
+ import { useCallback, useEffect, useRef, useState } from "react";
551
+ import { flushSync } from "react-dom";
552
+
553
+ // src/drag-drop/DragDropContext.ts
554
+ import { createContext } from "react";
555
+ var DragDropContext = createContext(null);
556
+
557
+ // src/components/DragDropPreview.tsx
558
+ import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
559
+ function DragDropPreview({ labels, maxItems = 5 }) {
560
+ const limit = Math.max(1, Math.floor(maxItems));
561
+ return /* @__PURE__ */ jsxs3("div", {
562
+ "data-slot": "drag-drop-preview",
563
+ className: "flex w-max max-w-64 flex-col items-start gap-1",
564
+ children: [
565
+ labels.slice(0, limit).map((label, index) => /* @__PURE__ */ jsx4(Badge2, {
566
+ variant: "secondary",
567
+ density: "compact",
568
+ children: /* @__PURE__ */ jsx4("span", {
569
+ className: "max-w-60 truncate",
570
+ children: label
571
+ })
572
+ }, `${index}:${label}`)),
573
+ labels.length > limit && /* @__PURE__ */ jsxs3(Badge2, {
574
+ variant: "secondary",
575
+ density: "compact",
576
+ children: [
577
+ "+",
578
+ labels.length - limit,
579
+ " more…"
580
+ ]
581
+ })
582
+ ]
583
+ });
584
+ }
585
+
586
+ // src/components/DragDropProvider.tsx
587
+ import { jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
588
+ function DragDropProvider({ children, maxPreviewItems = 5 }) {
589
+ const [active, setActive] = useState(null);
590
+ const [over, setOver] = useState(null);
591
+ const preview = useRef(null);
592
+ const end = useCallback(() => {
593
+ setActive(null);
594
+ setOver(null);
595
+ }, []);
596
+ useEffect(() => {
597
+ window.addEventListener("dragend", end);
598
+ window.addEventListener("drop", end);
599
+ return () => {
600
+ window.removeEventListener("dragend", end);
601
+ window.removeEventListener("drop", end);
602
+ };
603
+ }, [end]);
604
+ const start = (event, item, effect) => {
605
+ event.dataTransfer.effectAllowed = effect;
606
+ event.dataTransfer.setData(item.type, JSON.stringify(item.data) ?? "null");
607
+ event.dataTransfer.setData("text/plain", item.labels.join(`
608
+ `));
609
+ flushSync(() => {
610
+ setActive(item);
611
+ setOver(null);
612
+ });
613
+ if (preview.current)
614
+ event.dataTransfer.setDragImage(preview.current, 12, 12);
615
+ };
616
+ const enter = (next) => setOver((current) => current?.id === next.id && current.type === next.type && current.isAlt === next.isAlt && current.effect === next.effect ? current : next);
617
+ const leave = (id) => setOver((current) => current?.id === id ? null : current);
618
+ return /* @__PURE__ */ jsxs4(DragDropContext, {
619
+ value: { active, over, start, end, enter, leave },
620
+ children: [
621
+ children,
622
+ /* @__PURE__ */ jsx5("div", {
623
+ ref: preview,
624
+ "aria-hidden": "true",
625
+ className: "pointer-events-none fixed -left-[10000px] top-0 w-max",
626
+ children: /* @__PURE__ */ jsx5(DragDropPreview, {
627
+ labels: active?.labels ?? [],
628
+ maxItems: maxPreviewItems
629
+ })
630
+ }),
631
+ /* @__PURE__ */ jsx5("span", {
632
+ role: "status",
633
+ "aria-label": "Drag status",
634
+ className: "sr-only",
635
+ children: active && `${active.labels.length} ${active.labels.length === 1 ? "item" : "items"} being dragged`
636
+ })
637
+ ]
638
+ });
639
+ }
640
+ // src/components/DragSource.tsx
641
+ import { useRender } from "@base-ui/react/use-render";
642
+ import { mergeProps } from "@base-ui/react/merge-props";
643
+
644
+ // src/hooks/useDragSource.ts
645
+ import { useId } from "react";
646
+
647
+ // src/hooks/useDragDrop.ts
648
+ import { useContext } from "react";
649
+ function useDragDrop() {
650
+ const context = useContext(DragDropContext);
651
+ if (!context)
652
+ throw new Error("Drag and drop requires DragDropProvider.");
653
+ return context;
654
+ }
655
+
656
+ // src/hooks/useDragSource.ts
657
+ function useDragSource({
658
+ type,
659
+ data,
660
+ labels,
661
+ effectAllowed = "copyMove",
662
+ disabled = false
663
+ }) {
664
+ const { active, start, end } = useDragDrop();
665
+ const sourceId = useId();
666
+ return {
667
+ isDragging: active?.sourceId === sourceId,
668
+ props: {
669
+ draggable: !disabled,
670
+ onDragStart: (event) => {
671
+ if (event.defaultPrevented)
672
+ return;
673
+ event.stopPropagation();
674
+ if (disabled || labels.length === 0) {
675
+ event.preventDefault();
676
+ return;
677
+ }
678
+ start(event, { sourceId, type, data, labels }, effectAllowed);
679
+ },
680
+ onDragEnd: end
681
+ }
682
+ };
683
+ }
684
+
685
+ // src/components/DragSource.tsx
686
+ function DragSource({
687
+ type,
688
+ data,
689
+ labels,
690
+ effectAllowed,
691
+ disabled,
692
+ render,
693
+ ...props
694
+ }) {
695
+ const source = useDragSource({ type, data, labels, effectAllowed, disabled });
696
+ return useRender({
697
+ defaultTagName: "div",
698
+ render,
699
+ props: mergeProps(props, source.props),
700
+ state: { slot: "drag-source", dragging: source.isDragging }
701
+ });
702
+ }
703
+ // src/components/DropTarget.tsx
704
+ import { useRender as useRender2 } from "@base-ui/react/use-render";
705
+ import { mergeProps as mergeProps2 } from "@base-ui/react/merge-props";
706
+
707
+ // src/hooks/useDropTarget.ts
708
+ import { useId as useId2, useState as useState2 } from "react";
709
+ function useDropTarget({ accept, canDrop, getDropEffect, onDrop }) {
710
+ const { active, over, enter, leave, end } = useDragDrop();
711
+ const id = useId2();
712
+ const [feedback, setFeedback] = useState2(null);
713
+ return {
714
+ feedback,
715
+ type: over?.id === id ? over.type : null,
716
+ isOver: over?.id === id,
717
+ isAlt: over?.id === id && over.isAlt,
718
+ effect: over?.id === id ? over.effect : "none",
719
+ props: {
720
+ onDragOver: (event) => {
721
+ const type = accept.find((type) => event.dataTransfer.types.includes(type));
722
+ if (!type)
723
+ return;
724
+ event.stopPropagation();
725
+ const item = active?.type === type ? active : null;
726
+ const effect = item && canDrop && !canDrop(item) ? "none" : getDropEffect?.(item, event) ?? "move";
727
+ event.dataTransfer.dropEffect = effect;
728
+ if (effect === "none") {
729
+ leave(id);
730
+ return;
731
+ }
732
+ event.preventDefault();
733
+ setFeedback((current) => current?.type === type && current.isAlt === event.altKey && current.effect === effect ? current : { type, isAlt: event.altKey, effect });
734
+ enter({ id, type, isAlt: event.altKey, effect });
735
+ },
736
+ onDragLeave: (event) => {
737
+ if (!(event.relatedTarget instanceof Node) || !event.currentTarget.contains(event.relatedTarget))
738
+ leave(id);
739
+ },
740
+ onDrop: (event) => {
741
+ const type = accept.find((type) => event.dataTransfer.types.includes(type));
742
+ if (!type)
743
+ return;
744
+ event.stopPropagation();
745
+ event.preventDefault();
746
+ const raw = event.dataTransfer.getData(type);
747
+ let data;
748
+ try {
749
+ data = JSON.parse(raw);
750
+ } catch {
751
+ data = raw;
752
+ }
753
+ const item = { type, data, labels: active?.labels ?? [] };
754
+ leave(id);
755
+ end();
756
+ if (!canDrop || canDrop(item))
757
+ onDrop(item, event);
758
+ }
759
+ }
760
+ };
761
+ }
762
+
763
+ // src/components/DropTarget.tsx
764
+ function DropTarget({
765
+ accept,
766
+ canDrop,
767
+ getDropEffect,
768
+ onDrop,
769
+ render,
770
+ ...props
771
+ }) {
772
+ const target = useDropTarget({ accept, canDrop, getDropEffect, onDrop });
773
+ return useRender2({
774
+ defaultTagName: "div",
775
+ render,
776
+ props: mergeProps2(props, target.props),
777
+ state: { slot: "drop-target", over: target.isOver, effect: target.effect }
778
+ });
779
+ }
780
+ // src/components/EmptyState.tsx
781
+ import { jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
782
+ function EmptyState({ title, description, children }) {
783
+ return /* @__PURE__ */ jsxs5(Empty2, {
784
+ children: [
785
+ /* @__PURE__ */ jsxs5(EmptyHeader2, {
786
+ children: [
787
+ /* @__PURE__ */ jsx6(EmptyTitle2, {
788
+ children: title
789
+ }),
790
+ /* @__PURE__ */ jsx6(EmptyDescription2, {
791
+ children: description
792
+ })
793
+ ]
794
+ }),
795
+ children && /* @__PURE__ */ jsx6(EmptyContent2, {
796
+ children
797
+ })
798
+ ]
799
+ });
800
+ }
801
+ // src/components/PageMessage.tsx
802
+ import { useId as useId3 } from "react";
803
+ import { jsx as jsx7, jsxs as jsxs6 } from "react/jsx-runtime";
804
+ function PageMessage({ title, description, children }) {
805
+ const titleId = useId3();
806
+ const descriptionId = useId3();
807
+ return /* @__PURE__ */ jsx7("main", {
808
+ "aria-labelledby": titleId,
809
+ "aria-describedby": description == null ? undefined : descriptionId,
810
+ className: "grid min-h-dvh w-full place-items-center bg-background text-foreground",
811
+ children: /* @__PURE__ */ jsxs6(Empty2, {
812
+ children: [
813
+ /* @__PURE__ */ jsxs6(EmptyHeader2, {
814
+ children: [
815
+ /* @__PURE__ */ jsx7(EmptyTitle2, {
816
+ children: /* @__PURE__ */ jsx7("h1", {
817
+ id: titleId,
818
+ children: title
819
+ })
820
+ }),
821
+ description != null && /* @__PURE__ */ jsx7(EmptyDescription2, {
822
+ id: descriptionId,
823
+ children: description
824
+ })
825
+ ]
826
+ }),
827
+ children != null && /* @__PURE__ */ jsx7(EmptyContent2, {
828
+ children
829
+ })
830
+ ]
831
+ })
832
+ });
833
+ }
834
+ // src/components/JsonViewer.tsx
835
+ import { jsx as jsx8 } from "react/jsx-runtime";
836
+ function JsonViewer({ value, label = "JSON", rows = 12 }) {
837
+ return /* @__PURE__ */ jsx8(Textarea2, {
838
+ readOnly: true,
839
+ rows,
840
+ "aria-label": label,
841
+ value: JSON.stringify(value ?? null, null, 2) ?? "null"
842
+ });
843
+ }
844
+ // src/components/AlertDialog.tsx
845
+ import { AlertDialog as AlertDialogPrimitive } from "@base-ui/react/alert-dialog";
846
+ import { useDirection as useDirection3 } from "@base-ui/react/direction-provider";
847
+ import { jsx as jsx9, jsxs as jsxs7 } from "react/jsx-runtime";
848
+ "use client";
849
+ function AlertDialog({ ...props }) {
850
+ return /* @__PURE__ */ jsx9(AlertDialogPrimitive.Root, {
851
+ "data-slot": "alert-dialog",
852
+ ...props
853
+ });
854
+ }
855
+ function AlertDialogTrigger({ ...props }) {
856
+ return /* @__PURE__ */ jsx9(AlertDialogPrimitive.Trigger, {
857
+ "data-slot": "alert-dialog-trigger",
858
+ ...props
859
+ });
860
+ }
861
+ function AlertDialogPortal({ container, ...props }) {
862
+ const resolvedContainer = usePortalContainer2(container);
863
+ return /* @__PURE__ */ jsx9(AlertDialogPrimitive.Portal, {
864
+ "data-slot": "alert-dialog-portal",
865
+ container: resolvedContainer,
866
+ ...props
867
+ });
868
+ }
869
+ function AlertDialogOverlay({ density, className, ...props }) {
870
+ const resolvedDensity = useDensity(density);
871
+ return /* @__PURE__ */ jsx9(AlertDialogPrimitive.Backdrop, {
872
+ "data-density": resolvedDensity,
873
+ "data-slot": "alert-dialog-overlay",
874
+ className: (state) => cn2("fixed inset-0 isolate bg-backdrop duration-120 data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0 motion-reduce:data-open:animate-none motion-reduce:data-closed:animate-none", typeof className === "function" ? className(state) : className),
875
+ ...props
876
+ });
877
+ }
878
+ function AlertDialogContent({ density, className, size = "default", ...props }) {
879
+ const resolvedDensity = useDensity(density);
880
+ const direction = useDirection3();
881
+ return /* @__PURE__ */ jsxs7(AlertDialogPortal, {
882
+ children: [
883
+ /* @__PURE__ */ jsx9(AlertDialogOverlay, {}),
884
+ /* @__PURE__ */ jsx9(AlertDialogPrimitive.Popup, {
885
+ dir: direction,
886
+ "data-density": resolvedDensity,
887
+ "data-slot": "alert-dialog-content",
888
+ "data-size": size,
889
+ className: (state) => cn2("group/alert-dialog-content fixed top-1/2 left-1/2 grid w-full -translate-x-1/2 -translate-y-1/2 gap-panel rounded-md bg-popover p-panel text-popover-foreground border border-frame-edge shadow-frame duration-120 outline-none data-[size=default]:max-w-xs data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0 motion-reduce:data-open:animate-none motion-reduce:data-closed:animate-none", typeof className === "function" ? className(state) : className),
890
+ ...props
891
+ })
892
+ ]
893
+ });
894
+ }
895
+ function AlertDialogHeader({ density, className, ...props }) {
896
+ return /* @__PURE__ */ jsx9("div", {
897
+ "data-density": density,
898
+ "data-slot": "alert-dialog-header",
899
+ className: cn2("grid grid-rows-[auto_1fr] place-items-center gap-control-gap text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-4 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-start sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]", className),
900
+ ...props
901
+ });
902
+ }
903
+ function AlertDialogFooter({ density, className, ...props }) {
904
+ return /* @__PURE__ */ jsx9("div", {
905
+ "data-density": density,
906
+ "data-slot": "alert-dialog-footer",
907
+ className: cn2("-mx-panel -mb-panel flex flex-col-reverse gap-2 rounded-b-md border-t bg-muted/50 p-panel group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end", className),
908
+ ...props
909
+ });
910
+ }
911
+ function AlertDialogMedia({ density, className, ...props }) {
912
+ return /* @__PURE__ */ jsx9("div", {
913
+ "data-density": density,
914
+ "data-slot": "alert-dialog-media",
915
+ className: cn2("mb-2 inline-flex size-10 items-center justify-center rounded-md bg-muted sm:group-data-[size=default]/alert-dialog-content:row-span-2 *:[svg:not([class*='size-'])]:size-control-xs", className),
916
+ ...props
917
+ });
918
+ }
919
+ function AlertDialogTitle({ density, className, ...props }) {
920
+ return /* @__PURE__ */ jsx9(AlertDialogPrimitive.Title, {
921
+ "data-density": density,
922
+ "data-slot": "alert-dialog-title",
923
+ className: (state) => cn2("text-base font-medium sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2", typeof className === "function" ? className(state) : className),
924
+ ...props
925
+ });
926
+ }
927
+ function AlertDialogDescription({ density, className, ...props }) {
928
+ return /* @__PURE__ */ jsx9(AlertDialogPrimitive.Description, {
929
+ "data-density": density,
930
+ "data-slot": "alert-dialog-description",
931
+ className: (state) => cn2("text-sm text-balance text-muted-foreground md:text-pretty *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground", typeof className === "function" ? className(state) : className),
932
+ ...props
933
+ });
934
+ }
935
+ function AlertDialogAction({ density, className, ...props }) {
936
+ return /* @__PURE__ */ jsx9(Button2, {
937
+ "data-density": density,
938
+ "data-slot": "alert-dialog-action",
939
+ className,
940
+ ...props
941
+ });
942
+ }
943
+ function AlertDialogCancel({
944
+ density,
945
+ className,
946
+ variant = "outline",
947
+ size = "default",
948
+ ...props
949
+ }) {
950
+ return /* @__PURE__ */ jsx9(AlertDialogPrimitive.Close, {
951
+ "data-density": density,
952
+ "data-slot": "alert-dialog-cancel",
953
+ className,
954
+ render: /* @__PURE__ */ jsx9(Button2, {
955
+ variant,
956
+ size
957
+ }),
958
+ ...props
959
+ });
960
+ }
961
+ // src/components/Select.tsx
962
+ import { Select as SelectPrimitive } from "@base-ui/react/select";
963
+ import { useDirection as useDirection4 } from "@base-ui/react/direction-provider";
964
+ import { ChevronDownIcon as ChevronDownIcon3, CheckIcon as CheckIcon2, ChevronUpIcon as ChevronUpIcon2 } from "lucide-react";
965
+ import { jsx as jsx10, jsxs as jsxs8 } from "react/jsx-runtime";
966
+ "use client";
967
+ var Select = SelectPrimitive.Root;
968
+ function SelectGroup({ density, className, ...props }) {
969
+ return /* @__PURE__ */ jsx10(SelectPrimitive.Group, {
970
+ "data-density": density,
971
+ "data-slot": "select-group",
972
+ className: (state) => cn2("scroll-my-1 p-1", typeof className === "function" ? className(state) : className),
973
+ ...props
974
+ });
975
+ }
976
+ function SelectValue({ density, className, ...props }) {
977
+ return /* @__PURE__ */ jsx10(SelectPrimitive.Value, {
978
+ "data-density": density,
979
+ "data-slot": "select-value",
980
+ className: (state) => cn2("flex flex-1 text-start", typeof className === "function" ? className(state) : className),
981
+ ...props
982
+ });
983
+ }
984
+ function SelectTrigger({ density, className, size = "default", children, ...props }) {
985
+ return /* @__PURE__ */ jsxs8(SelectPrimitive.Trigger, {
986
+ "data-density": density,
987
+ "data-slot": "select-trigger",
988
+ "data-size": size,
989
+ className: (state) => cn2("flex w-fit items-center justify-between gap-control-gap rounded-sm border border-input bg-transparent py-2 pe-2 ps-2.5 text-sm whitespace-nowrap transition-colors outline-none select-none focus-visible:border-ring focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive data-placeholder:text-muted-foreground data-[size=default]:h-control data-[size=sm]:h-control-sm data-[size=sm]:rounded-sm *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-control-gap [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", typeof className === "function" ? className(state) : className),
990
+ ...props,
991
+ children: [
992
+ children,
993
+ /* @__PURE__ */ jsx10(SelectPrimitive.Icon, {
994
+ render: /* @__PURE__ */ jsx10(ChevronDownIcon3, {
995
+ className: "pointer-events-none size-4 text-muted-foreground"
996
+ })
997
+ })
998
+ ]
999
+ });
1000
+ }
1001
+ function SelectContent({
1002
+ density,
1003
+ className,
1004
+ children,
1005
+ side = "bottom",
1006
+ sideOffset = 4,
1007
+ align = "center",
1008
+ alignOffset = 0,
1009
+ alignItemWithTrigger = true,
1010
+ ...props
1011
+ }) {
1012
+ const resolvedDensity = useDensity(density);
1013
+ const direction = useDirection4();
1014
+ const container = usePortalContainer2();
1015
+ return /* @__PURE__ */ jsx10(SelectPrimitive.Portal, {
1016
+ container,
1017
+ children: /* @__PURE__ */ jsx10(SelectPrimitive.Positioner, {
1018
+ side,
1019
+ sideOffset,
1020
+ align,
1021
+ alignOffset,
1022
+ alignItemWithTrigger,
1023
+ className: "isolate ",
1024
+ children: /* @__PURE__ */ jsxs8(SelectPrimitive.Popup, {
1025
+ dir: direction,
1026
+ "data-density": resolvedDensity,
1027
+ "data-slot": "select-content",
1028
+ "data-align-trigger": alignItemWithTrigger,
1029
+ className: (state) => cn2("relative isolate max-h-(--available-height) w-(--anchor-width) min-w-36 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-md bg-popover text-popover-foreground border border-frame-edge shadow-frame duration-120 data-[align-trigger=true]:animate-none data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0 motion-reduce:animate-none", typeof className === "function" ? className(state) : className),
1030
+ ...props,
1031
+ children: [
1032
+ /* @__PURE__ */ jsx10(SelectScrollUpButton, {}),
1033
+ /* @__PURE__ */ jsx10(SelectPrimitive.List, {
1034
+ children
1035
+ }),
1036
+ /* @__PURE__ */ jsx10(SelectScrollDownButton, {})
1037
+ ]
1038
+ })
1039
+ })
1040
+ });
1041
+ }
1042
+ function SelectLabel({ density, className, ...props }) {
1043
+ return /* @__PURE__ */ jsx10(SelectPrimitive.GroupLabel, {
1044
+ "data-density": density,
1045
+ "data-slot": "select-label",
1046
+ className: (state) => cn2("px-1.5 py-1 text-xs text-muted-foreground", typeof className === "function" ? className(state) : className),
1047
+ ...props
1048
+ });
1049
+ }
1050
+ function SelectItem({ density, className, children, ...props }) {
1051
+ return /* @__PURE__ */ jsxs8(SelectPrimitive.Item, {
1052
+ "data-density": density,
1053
+ "data-slot": "select-item",
1054
+ className: (state) => cn2("relative flex w-full cursor-default items-center gap-control-gap rounded-md py-1 pe-8 ps-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2", typeof className === "function" ? className(state) : className),
1055
+ ...props,
1056
+ children: [
1057
+ /* @__PURE__ */ jsx10(SelectPrimitive.ItemText, {
1058
+ className: "flex flex-1 shrink-0 gap-2 whitespace-nowrap",
1059
+ children
1060
+ }),
1061
+ /* @__PURE__ */ jsx10(SelectPrimitive.ItemIndicator, {
1062
+ render: /* @__PURE__ */ jsx10("span", {
1063
+ className: "pointer-events-none absolute end-2 flex size-4 items-center justify-center"
1064
+ }),
1065
+ children: /* @__PURE__ */ jsx10(CheckIcon2, {
1066
+ className: "pointer-events-none"
1067
+ })
1068
+ })
1069
+ ]
1070
+ });
1071
+ }
1072
+ function SelectSeparator({ density, className, ...props }) {
1073
+ return /* @__PURE__ */ jsx10(SelectPrimitive.Separator, {
1074
+ "data-density": density,
1075
+ "data-slot": "select-separator",
1076
+ className: (state) => cn2("pointer-events-none -mx-1 my-1 h-px bg-border", typeof className === "function" ? className(state) : className),
1077
+ ...props
1078
+ });
1079
+ }
1080
+ function SelectScrollUpButton({ density, className, ...props }) {
1081
+ return /* @__PURE__ */ jsx10(SelectPrimitive.ScrollUpArrow, {
1082
+ "data-density": density,
1083
+ "data-slot": "select-scroll-up-button",
1084
+ className: (state) => cn2("top-0 flex w-full cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4", typeof className === "function" ? className(state) : className),
1085
+ ...props,
1086
+ children: /* @__PURE__ */ jsx10(ChevronUpIcon2, {})
1087
+ });
1088
+ }
1089
+ function SelectScrollDownButton({ density, className, ...props }) {
1090
+ return /* @__PURE__ */ jsx10(SelectPrimitive.ScrollDownArrow, {
1091
+ "data-density": density,
1092
+ "data-slot": "select-scroll-down-button",
1093
+ className: (state) => cn2("bottom-0 flex w-full cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4", typeof className === "function" ? className(state) : className),
1094
+ ...props,
1095
+ children: /* @__PURE__ */ jsx10(ChevronDownIcon3, {})
1096
+ });
1097
+ }
1098
+ // src/components/DensityProvider.tsx
1099
+ import { jsx as jsx11 } from "react/jsx-runtime";
1100
+ function DensityProvider({ children, density = "comfortable" }) {
1101
+ return /* @__PURE__ */ jsx11(DensityContext.Provider, {
1102
+ value: density,
1103
+ children: /* @__PURE__ */ jsx11("div", {
1104
+ "data-density": density,
1105
+ className: "font-sans text-base leading-(--ag-leading)",
1106
+ children
1107
+ })
1108
+ });
1109
+ }
1110
+ // src/components/ThemeProvider.tsx
1111
+ import { useMemo } from "react";
1112
+ import { useIsomorphicLayoutEffect, useTernaryDarkMode } from "usehooks-ts";
1113
+ import { jsx as jsx12 } from "react/jsx-runtime";
1114
+ function StoredThemeProvider({
1115
+ children,
1116
+ defaultTheme = "system",
1117
+ storageKey = "shadcn-alexgorbatchev-theme",
1118
+ forcedTheme
1119
+ }) {
1120
+ const { isDarkMode, ternaryDarkMode, setTernaryDarkMode } = useTernaryDarkMode({
1121
+ defaultValue: defaultTheme,
1122
+ localStorageKey: storageKey
1123
+ });
1124
+ return /* @__PURE__ */ jsx12(ThemePalette, {
1125
+ theme: forcedTheme ?? ternaryDarkMode,
1126
+ resolvedTheme: forcedTheme ?? (isDarkMode ? "dark" : "light"),
1127
+ setTheme: setTernaryDarkMode,
1128
+ children
1129
+ });
1130
+ }
1131
+ function ThemePalette({
1132
+ children,
1133
+ theme,
1134
+ resolvedTheme,
1135
+ setTheme
1136
+ }) {
1137
+ useIsomorphicLayoutEffect(() => {
1138
+ document.documentElement.dataset.theme = resolvedTheme;
1139
+ document.documentElement.style.colorScheme = resolvedTheme;
1140
+ }, [resolvedTheme]);
1141
+ const value = useMemo(() => ({ theme, resolvedTheme, setTheme }), [theme, resolvedTheme, setTheme]);
1142
+ return /* @__PURE__ */ jsx12(ThemeContext.Provider, {
1143
+ value,
1144
+ children
1145
+ });
1146
+ }
1147
+ function ControlledThemeProvider({
1148
+ children,
1149
+ controlledTheme,
1150
+ forcedTheme
1151
+ }) {
1152
+ const isDark = useMediaQuery("(prefers-color-scheme: dark)");
1153
+ const { theme, setTheme } = controlledTheme;
1154
+ const resolvedTheme = forcedTheme ?? (theme === "system" ? isDark ? "dark" : "light" : theme);
1155
+ return /* @__PURE__ */ jsx12(ThemePalette, {
1156
+ theme: forcedTheme ?? theme,
1157
+ resolvedTheme,
1158
+ setTheme,
1159
+ children
1160
+ });
1161
+ }
1162
+ function ThemeProvider(props) {
1163
+ if (props.controlledTheme)
1164
+ return /* @__PURE__ */ jsx12(ControlledThemeProvider, {
1165
+ ...props,
1166
+ controlledTheme: props.controlledTheme
1167
+ });
1168
+ return /* @__PURE__ */ jsx12(StoredThemeProvider, {
1169
+ ...props
1170
+ });
1171
+ }
1172
+ // src/hooks/useComboboxAnchor.ts
1173
+ import { useRef as useRef2 } from "react";
1174
+ function useComboboxAnchor() {
1175
+ return useRef2(null);
1176
+ }
1177
+ // src/components/AspectRatio.tsx
1178
+ import { jsx as jsx13 } from "react/jsx-runtime";
1179
+ function AspectRatio({ ratio, className, style, ...props }) {
1180
+ return /* @__PURE__ */ jsx13("div", {
1181
+ "data-slot": "aspect-ratio",
1182
+ className: cn2("relative", className),
1183
+ style: { aspectRatio: ratio, ...style },
1184
+ ...props
1185
+ });
1186
+ }
1187
+ // src/components/Breadcrumb.tsx
1188
+ import { ChevronRightIcon, MoreHorizontalIcon } from "lucide-react";
1189
+ import { mergeProps as mergeProps3 } from "@base-ui/react/merge-props";
1190
+ import { useRender as useRender3 } from "@base-ui/react/use-render";
1191
+ import { jsx as jsx14, jsxs as jsxs9 } from "react/jsx-runtime";
1192
+ function Breadcrumb({ density, className, ...props }) {
1193
+ return /* @__PURE__ */ jsx14("nav", {
1194
+ "aria-label": "breadcrumb",
1195
+ "data-density": density,
1196
+ "data-slot": "breadcrumb",
1197
+ className: cn2(className),
1198
+ ...props
1199
+ });
1200
+ }
1201
+ function BreadcrumbList({ density, className, ...props }) {
1202
+ return /* @__PURE__ */ jsx14("ol", {
1203
+ "data-density": density,
1204
+ "data-slot": "breadcrumb-list",
1205
+ className: cn2("flex flex-wrap items-center gap-control-gap text-sm wrap-break-word text-muted-foreground", className),
1206
+ ...props
1207
+ });
1208
+ }
1209
+ function BreadcrumbItem({ density, className, ...props }) {
1210
+ return /* @__PURE__ */ jsx14("li", {
1211
+ "data-density": density,
1212
+ "data-slot": "breadcrumb-item",
1213
+ className: cn2("inline-flex items-center gap-1", className),
1214
+ ...props
1215
+ });
1216
+ }
1217
+ function BreadcrumbLink({ density, className, render, ...props }) {
1218
+ return useRender3({
1219
+ defaultTagName: "a",
1220
+ props: mergeProps3({
1221
+ className: cn2("transition-colors hover:text-foreground", className)
1222
+ }, props),
1223
+ render,
1224
+ state: {
1225
+ density,
1226
+ slot: "breadcrumb-link"
1227
+ }
1228
+ });
1229
+ }
1230
+ function BreadcrumbPage({ density, className, ...props }) {
1231
+ return /* @__PURE__ */ jsx14("span", {
1232
+ "data-density": density,
1233
+ "data-slot": "breadcrumb-page",
1234
+ role: "link",
1235
+ "aria-disabled": "true",
1236
+ "aria-current": "page",
1237
+ className: cn2("font-normal text-foreground", className),
1238
+ ...props
1239
+ });
1240
+ }
1241
+ function BreadcrumbSeparator({ density, children, className, ...props }) {
1242
+ return /* @__PURE__ */ jsx14("li", {
1243
+ "data-density": density,
1244
+ "data-slot": "breadcrumb-separator",
1245
+ role: "presentation",
1246
+ "aria-hidden": "true",
1247
+ className: cn2("[&>svg]:size-3.5", className),
1248
+ ...props,
1249
+ children: children ?? /* @__PURE__ */ jsx14(ChevronRightIcon, {
1250
+ className: "rtl:rotate-180"
1251
+ })
1252
+ });
1253
+ }
1254
+ function BreadcrumbEllipsis({ density, className, ...props }) {
1255
+ return /* @__PURE__ */ jsxs9("span", {
1256
+ "data-density": density,
1257
+ "data-slot": "breadcrumb-ellipsis",
1258
+ role: "presentation",
1259
+ "aria-hidden": "true",
1260
+ className: cn2("flex size-5 items-center justify-center [&>svg]:size-4", className),
1261
+ ...props,
1262
+ children: [
1263
+ /* @__PURE__ */ jsx14(MoreHorizontalIcon, {}),
1264
+ /* @__PURE__ */ jsx14("span", {
1265
+ className: "sr-only",
1266
+ children: "More"
1267
+ })
1268
+ ]
1269
+ });
1270
+ }
1271
+ // src/components/ButtonGroup.tsx
1272
+ import { mergeProps as mergeProps4 } from "@base-ui/react/merge-props";
1273
+ import { useRender as useRender4 } from "@base-ui/react/use-render";
1274
+ import { cva as cva2 } from "class-variance-authority";
1275
+ import { jsx as jsx15 } from "react/jsx-runtime";
1276
+ var buttonGroupVariants = cva2("flex w-fit items-stretch *:focus-visible:relative *:focus-visible:z-10 has-[>[data-slot=button-group]]:gap-2 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-e-sm [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1", {
1277
+ variants: {
1278
+ orientation: {
1279
+ horizontal: "*:data-slot:rounded-e-none [&>[data-slot]:not(:has(~[data-slot]))]:rounded-e-sm! [&>[data-slot]~[data-slot]]:rounded-s-none [&>[data-slot]~[data-slot]]:border-s-0",
1280
+ vertical: "flex-col *:data-slot:rounded-b-none [&>[data-slot]:not(:has(~[data-slot]))]:rounded-b-sm! [&>[data-slot]~[data-slot]]:rounded-t-none [&>[data-slot]~[data-slot]]:border-t-0"
1281
+ }
1282
+ },
1283
+ defaultVariants: {
1284
+ orientation: "horizontal"
1285
+ }
1286
+ });
1287
+ function ButtonGroup({ density, className, orientation, ...props }) {
1288
+ return /* @__PURE__ */ jsx15("div", {
1289
+ role: "group",
1290
+ "data-density": density,
1291
+ "data-slot": "button-group",
1292
+ "data-orientation": orientation,
1293
+ className: cn2(buttonGroupVariants({ orientation }), className),
1294
+ ...props
1295
+ });
1296
+ }
1297
+ function ButtonGroupText({ density, className, render, ...props }) {
1298
+ return useRender4({
1299
+ defaultTagName: "div",
1300
+ props: mergeProps4({
1301
+ className: cn2("flex items-center gap-2 rounded-sm border bg-muted px-control-x text-sm font-medium [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4", className)
1302
+ }, props),
1303
+ render,
1304
+ state: {
1305
+ density,
1306
+ slot: "button-group-text"
1307
+ }
1308
+ });
1309
+ }
1310
+ function ButtonGroupSeparator({
1311
+ density,
1312
+ className,
1313
+ orientation = "vertical",
1314
+ ...props
1315
+ }) {
1316
+ return /* @__PURE__ */ jsx15(Separator2, {
1317
+ "data-density": density,
1318
+ "data-slot": "button-group-separator",
1319
+ orientation,
1320
+ className: (state) => cn2("relative self-stretch bg-input data-[orientation=horizontal]:mx-px data-[orientation=horizontal]:w-auto data-[orientation=vertical]:my-px data-[orientation=vertical]:h-auto", typeof className === "function" ? className(state) : className),
1321
+ ...props
1322
+ });
1323
+ }
1324
+ // src/components/NativeSelect.tsx
1325
+ import { ChevronDownIcon as ChevronDownIcon4 } from "lucide-react";
1326
+ import { jsx as jsx16, jsxs as jsxs10 } from "react/jsx-runtime";
1327
+ function NativeSelect({
1328
+ density,
1329
+ className,
1330
+ dir,
1331
+ size = "default",
1332
+ ...props
1333
+ }) {
1334
+ return /* @__PURE__ */ jsxs10("div", {
1335
+ dir,
1336
+ className: cn2("group/native-select relative w-fit has-[select:disabled]:opacity-50", className),
1337
+ "data-density": density,
1338
+ "data-slot": "native-select-wrapper",
1339
+ "data-size": size,
1340
+ children: [
1341
+ /* @__PURE__ */ jsx16("select", {
1342
+ dir,
1343
+ "data-slot": "native-select",
1344
+ "data-size": size,
1345
+ className: "h-control w-full min-w-0 appearance-none rounded-sm border border-input bg-secondary py-1 pe-8 ps-2.5 text-sm transition-colors outline-none select-none selection:bg-primary selection:text-primary-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:cursor-not-allowed aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive data-[size=sm]:h-control-sm data-[size=sm]:rounded-sm data-[size=sm]:py-0.5",
1346
+ ...props
1347
+ }),
1348
+ /* @__PURE__ */ jsx16(ChevronDownIcon4, {
1349
+ className: "pointer-events-none absolute top-1/2 end-2.5 size-4 -translate-y-1/2 text-muted-foreground select-none",
1350
+ "aria-hidden": "true",
1351
+ "data-slot": "native-select-icon"
1352
+ })
1353
+ ]
1354
+ });
1355
+ }
1356
+ function NativeSelectOption({ density, className, ...props }) {
1357
+ return /* @__PURE__ */ jsx16("option", {
1358
+ "data-density": density,
1359
+ "data-slot": "native-select-option",
1360
+ className: cn2("bg-[Canvas] text-[CanvasText]", className),
1361
+ ...props
1362
+ });
1363
+ }
1364
+ function NativeSelectOptGroup({ density, className, ...props }) {
1365
+ return /* @__PURE__ */ jsx16("optgroup", {
1366
+ "data-density": density,
1367
+ "data-slot": "native-select-optgroup",
1368
+ className: cn2("bg-[Canvas] text-[CanvasText]", className),
1369
+ ...props
1370
+ });
1371
+ }
1372
+ // src/components/Item.tsx
1373
+ import { mergeProps as mergeProps5 } from "@base-ui/react/merge-props";
1374
+ import { useRender as useRender5 } from "@base-ui/react/use-render";
1375
+ import { cva as cva3 } from "class-variance-authority";
1376
+ import { jsx as jsx17 } from "react/jsx-runtime";
1377
+ function ItemGroup({ density, className, ...props }) {
1378
+ return /* @__PURE__ */ jsx17("div", {
1379
+ role: "list",
1380
+ "data-density": density,
1381
+ "data-slot": "item-group",
1382
+ className: cn2("group/item-group flex w-full flex-col gap-4 has-data-[size=sm]:gap-2.5 has-data-[size=xs]:gap-2", className),
1383
+ ...props
1384
+ });
1385
+ }
1386
+ function ItemSeparator({ density, className, ...props }) {
1387
+ return /* @__PURE__ */ jsx17(Separator2, {
1388
+ "data-density": density,
1389
+ "data-slot": "item-separator",
1390
+ orientation: "horizontal",
1391
+ className: (state) => cn2("my-2", typeof className === "function" ? className(state) : className),
1392
+ ...props
1393
+ });
1394
+ }
1395
+ var itemVariants = cva3("group/item flex w-full flex-wrap items-center rounded-sm border text-sm transition-colors duration-100 outline-none focus-visible:border-ring focus-visible:ring-1 focus-visible:ring-ring [a]:transition-colors [a]:hover:bg-muted", {
1396
+ variants: {
1397
+ variant: {
1398
+ default: "border-transparent",
1399
+ outline: "border-border",
1400
+ muted: "border-transparent bg-muted/50"
1401
+ },
1402
+ size: {
1403
+ default: "gap-panel p-panel",
1404
+ sm: "gap-panel p-panel",
1405
+ xs: "gap-2 px-control-x py-2 in-data-[slot=dropdown-menu-content]:p-0"
1406
+ }
1407
+ },
1408
+ defaultVariants: {
1409
+ variant: "default",
1410
+ size: "default"
1411
+ }
1412
+ });
1413
+ function Item({
1414
+ density,
1415
+ className,
1416
+ variant = "default",
1417
+ size = "default",
1418
+ render,
1419
+ ...props
1420
+ }) {
1421
+ return useRender5({
1422
+ defaultTagName: "div",
1423
+ props: mergeProps5({
1424
+ className: cn2(itemVariants({ variant, size, className }))
1425
+ }, props),
1426
+ render,
1427
+ state: {
1428
+ density,
1429
+ slot: "item",
1430
+ variant,
1431
+ size
1432
+ }
1433
+ });
1434
+ }
1435
+ var itemMediaVariants = cva3("flex shrink-0 items-center justify-center gap-2 group-has-data-[slot=item-description]/item:translate-y-0.5 group-has-data-[slot=item-description]/item:self-start [&_svg]:pointer-events-none", {
1436
+ variants: {
1437
+ variant: {
1438
+ default: "bg-transparent",
1439
+ icon: "[&_svg:not([class*='size-'])]:size-4",
1440
+ image: "size-10 overflow-hidden rounded-sm group-data-[size=sm]/item:size-8 group-data-[size=xs]/item:size-6 [&_img]:size-full [&_img]:object-cover"
1441
+ }
1442
+ },
1443
+ defaultVariants: {
1444
+ variant: "default"
1445
+ }
1446
+ });
1447
+ function ItemMedia({ density, className, variant = "default", ...props }) {
1448
+ return /* @__PURE__ */ jsx17("div", {
1449
+ "data-density": density,
1450
+ "data-slot": "item-media",
1451
+ "data-variant": variant,
1452
+ className: cn2(itemMediaVariants({ variant, className })),
1453
+ ...props
1454
+ });
1455
+ }
1456
+ function ItemContent({ density, className, ...props }) {
1457
+ return /* @__PURE__ */ jsx17("div", {
1458
+ "data-density": density,
1459
+ "data-slot": "item-content",
1460
+ className: cn2("flex flex-1 flex-col gap-1 group-data-[size=xs]/item:gap-0 [&+[data-slot=item-content]]:flex-none", className),
1461
+ ...props
1462
+ });
1463
+ }
1464
+ function ItemTitle({ density, className, ...props }) {
1465
+ return /* @__PURE__ */ jsx17("div", {
1466
+ "data-density": density,
1467
+ "data-slot": "item-title",
1468
+ className: cn2("line-clamp-1 flex w-fit items-center gap-2 text-sm leading-snug font-medium underline-offset-4", className),
1469
+ ...props
1470
+ });
1471
+ }
1472
+ function ItemDescription({ density, className, ...props }) {
1473
+ return /* @__PURE__ */ jsx17("p", {
1474
+ "data-density": density,
1475
+ "data-slot": "item-description",
1476
+ className: cn2("line-clamp-2 text-start text-sm leading-normal font-normal text-muted-foreground group-data-[size=xs]/item:text-xs [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary", className),
1477
+ ...props
1478
+ });
1479
+ }
1480
+ function ItemActions({ density, className, ...props }) {
1481
+ return /* @__PURE__ */ jsx17("div", {
1482
+ "data-density": density,
1483
+ "data-slot": "item-actions",
1484
+ className: cn2("flex items-center gap-2", className),
1485
+ ...props
1486
+ });
1487
+ }
1488
+ function ItemHeader({ density, className, ...props }) {
1489
+ return /* @__PURE__ */ jsx17("div", {
1490
+ "data-density": density,
1491
+ "data-slot": "item-header",
1492
+ className: cn2("flex basis-full items-center justify-between gap-2", className),
1493
+ ...props
1494
+ });
1495
+ }
1496
+ function ItemFooter({ density, className, ...props }) {
1497
+ return /* @__PURE__ */ jsx17("div", {
1498
+ "data-density": density,
1499
+ "data-slot": "item-footer",
1500
+ className: cn2("flex basis-full items-center justify-between gap-2", className),
1501
+ ...props
1502
+ });
1503
+ }
1504
+ // src/components/Pagination.tsx
1505
+ import { ChevronLeftIcon, ChevronRightIcon as ChevronRightIcon2, MoreHorizontalIcon as MoreHorizontalIcon2 } from "lucide-react";
1506
+ import { jsx as jsx18, jsxs as jsxs11 } from "react/jsx-runtime";
1507
+ function Pagination({ density, className, ...props }) {
1508
+ return /* @__PURE__ */ jsx18("nav", {
1509
+ role: "navigation",
1510
+ "aria-label": "pagination",
1511
+ "data-density": density,
1512
+ "data-slot": "pagination",
1513
+ className: cn2("mx-auto flex w-full justify-center", className),
1514
+ ...props
1515
+ });
1516
+ }
1517
+ function PaginationContent({ density, className, ...props }) {
1518
+ return /* @__PURE__ */ jsx18("ul", {
1519
+ "data-density": density,
1520
+ "data-slot": "pagination-content",
1521
+ className: cn2("flex items-center gap-0.5", className),
1522
+ ...props
1523
+ });
1524
+ }
1525
+ function PaginationItem({ ...props }) {
1526
+ return /* @__PURE__ */ jsx18("li", {
1527
+ "data-slot": "pagination-item",
1528
+ ...props
1529
+ });
1530
+ }
1531
+ function PaginationLink({
1532
+ density,
1533
+ className,
1534
+ isActive,
1535
+ size = "icon",
1536
+ ...props
1537
+ }) {
1538
+ return /* @__PURE__ */ jsx18("a", {
1539
+ "data-density": density,
1540
+ className: cn2(buttonVariants2({ variant: isActive ? "outline" : "ghost", size }), className),
1541
+ "aria-current": isActive ? "page" : undefined,
1542
+ "data-slot": "pagination-link",
1543
+ "data-active": isActive,
1544
+ ...props
1545
+ });
1546
+ }
1547
+ function PaginationPrevious({
1548
+ density,
1549
+ className,
1550
+ text = "Previous",
1551
+ ...props
1552
+ }) {
1553
+ return /* @__PURE__ */ jsxs11(PaginationLink, {
1554
+ density,
1555
+ "aria-label": "Go to previous page",
1556
+ size: "default",
1557
+ className: cn2("ps-1.5!", className),
1558
+ ...props,
1559
+ children: [
1560
+ /* @__PURE__ */ jsx18(ChevronLeftIcon, {
1561
+ "data-icon": "inline-start",
1562
+ className: "rtl:rotate-180"
1563
+ }),
1564
+ /* @__PURE__ */ jsx18("span", {
1565
+ className: "hidden sm:block",
1566
+ children: text
1567
+ })
1568
+ ]
1569
+ });
1570
+ }
1571
+ function PaginationNext({ density, className, text = "Next", ...props }) {
1572
+ return /* @__PURE__ */ jsxs11(PaginationLink, {
1573
+ density,
1574
+ "aria-label": "Go to next page",
1575
+ size: "default",
1576
+ className: cn2("pe-1.5!", className),
1577
+ ...props,
1578
+ children: [
1579
+ /* @__PURE__ */ jsx18("span", {
1580
+ className: "hidden sm:block",
1581
+ children: text
1582
+ }),
1583
+ /* @__PURE__ */ jsx18(ChevronRightIcon2, {
1584
+ "data-icon": "inline-end",
1585
+ className: "rtl:rotate-180"
1586
+ })
1587
+ ]
1588
+ });
1589
+ }
1590
+ function PaginationEllipsis({ density, className, ...props }) {
1591
+ return /* @__PURE__ */ jsxs11("span", {
1592
+ "aria-hidden": true,
1593
+ "data-density": density,
1594
+ "data-slot": "pagination-ellipsis",
1595
+ className: cn2("flex size-control items-center justify-center [&_svg:not([class*='size-'])]:size-4", className),
1596
+ ...props,
1597
+ children: [
1598
+ /* @__PURE__ */ jsx18(MoreHorizontalIcon2, {}),
1599
+ /* @__PURE__ */ jsx18("span", {
1600
+ className: "sr-only",
1601
+ children: "More pages"
1602
+ })
1603
+ ]
1604
+ });
1605
+ }
1606
+ // src/components/ScrollArea.tsx
1607
+ import { ScrollArea as ScrollAreaPrimitive } from "@base-ui/react/scroll-area";
1608
+ import { jsx as jsx19, jsxs as jsxs12 } from "react/jsx-runtime";
1609
+ function ScrollArea({
1610
+ density,
1611
+ className,
1612
+ children,
1613
+ scrollbars = /* @__PURE__ */ jsx19(ScrollBar, {}),
1614
+ ...props
1615
+ }) {
1616
+ return /* @__PURE__ */ jsxs12(ScrollAreaPrimitive.Root, {
1617
+ "data-density": density,
1618
+ "data-slot": "scroll-area",
1619
+ className: (state) => cn2("relative", typeof className === "function" ? className(state) : className),
1620
+ ...props,
1621
+ children: [
1622
+ /* @__PURE__ */ jsx19(ScrollAreaPrimitive.Viewport, {
1623
+ "data-slot": "scroll-area-viewport",
1624
+ className: "size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:outline-1",
1625
+ children
1626
+ }),
1627
+ scrollbars,
1628
+ /* @__PURE__ */ jsx19(ScrollAreaPrimitive.Corner, {})
1629
+ ]
1630
+ });
1631
+ }
1632
+ function ScrollBar({ density, className, orientation = "vertical", ...props }) {
1633
+ return /* @__PURE__ */ jsx19(ScrollAreaPrimitive.Scrollbar, {
1634
+ "data-density": density,
1635
+ "data-slot": "scroll-area-scrollbar",
1636
+ "data-orientation": orientation,
1637
+ orientation,
1638
+ className: (state) => cn2("flex touch-none p-px transition-colors select-none data-[orientation=horizontal]:h-2.5 data-[orientation=horizontal]:flex-col data-[orientation=horizontal]:border-t data-[orientation=horizontal]:border-t-transparent data-[orientation=vertical]:w-2.5 data-[orientation=vertical]:border-s data-[orientation=vertical]:border-s-transparent", typeof className === "function" ? className(state) : className),
1639
+ ...props,
1640
+ children: /* @__PURE__ */ jsx19(ScrollAreaPrimitive.Thumb, {
1641
+ "data-slot": "scroll-area-thumb",
1642
+ className: "relative flex-1 rounded-full bg-border"
1643
+ })
1644
+ });
1645
+ }
1646
+ // src/components/Drawer.tsx
1647
+ import { useMemo as useMemo2 } from "react";
1648
+
1649
+ // src/drawer/DrawerContext.ts
1650
+ import { createContext as createContext2 } from "react";
1651
+ var DrawerContext = createContext2(null);
1652
+
1653
+ // src/hooks/useDrawer.ts
1654
+ import { useContext as useContext2 } from "react";
1655
+ function useDrawer() {
1656
+ const context = useContext2(DrawerContext);
1657
+ if (!context) {
1658
+ throw new Error("useDrawer must be used within a Drawer.");
1659
+ }
1660
+ return context;
1661
+ }
1662
+
1663
+ // src/components/Drawer.tsx
1664
+ import { Drawer as DrawerPrimitive } from "@base-ui/react/drawer";
1665
+ import { jsx as jsx20, jsxs as jsxs13 } from "react/jsx-runtime";
1666
+ function Drawer({
1667
+ modal = true,
1668
+ showSwipeHandle = false,
1669
+ snapPoints,
1670
+ swipeDirection = "down",
1671
+ ...props
1672
+ }) {
1673
+ const hasSnapPoints = snapPoints != null && snapPoints.length > 0;
1674
+ const contextValue = useMemo2(() => ({ hasSnapPoints, modal, showSwipeHandle, swipeDirection }), [hasSnapPoints, modal, showSwipeHandle, swipeDirection]);
1675
+ return /* @__PURE__ */ jsx20(DrawerContext.Provider, {
1676
+ value: contextValue,
1677
+ children: /* @__PURE__ */ jsx20(DrawerPrimitive.Root, {
1678
+ "data-slot": "drawer",
1679
+ modal,
1680
+ snapPoints,
1681
+ swipeDirection,
1682
+ ...props
1683
+ })
1684
+ });
1685
+ }
1686
+ function DrawerTrigger({ ...props }) {
1687
+ return /* @__PURE__ */ jsx20(DrawerPrimitive.Trigger, {
1688
+ "data-slot": "drawer-trigger",
1689
+ ...props
1690
+ });
1691
+ }
1692
+ function DrawerPortal({ container, ...props }) {
1693
+ const resolvedContainer = usePortalContainer2(container);
1694
+ return /* @__PURE__ */ jsx20(DrawerPrimitive.Portal, {
1695
+ "data-slot": "drawer-portal",
1696
+ container: resolvedContainer,
1697
+ ...props
1698
+ });
1699
+ }
1700
+ function DrawerClose({ ...props }) {
1701
+ return /* @__PURE__ */ jsx20(DrawerPrimitive.Close, {
1702
+ "data-slot": "drawer-close",
1703
+ ...props
1704
+ });
1705
+ }
1706
+ function DrawerOverlay({ density, className, ...props }) {
1707
+ const resolvedDensity = useDensity(density);
1708
+ return /* @__PURE__ */ jsx20(DrawerPrimitive.Backdrop, {
1709
+ "data-density": resolvedDensity,
1710
+ "data-slot": "drawer-overlay",
1711
+ className: (state) => cn2("fixed inset-0 min-h-dvh bg-backdrop opacity-[max(var(--drawer-overlay-min-opacity,0),calc(1-var(--drawer-swipe-progress)))] transition-opacity duration-450 ease-[cubic-bezier(0.32,0.72,0,1)] select-none data-ending-style:pointer-events-none data-ending-style:opacity-0 data-ending-style:duration-[calc(var(--drawer-swipe-strength)*400ms)] data-snap-points:[--drawer-overlay-min-opacity:0.5] data-starting-style:opacity-0 data-swiping:duration-0 supports-[-webkit-touch-callout:none]:absolute", typeof className === "function" ? className(state) : className),
1712
+ ...props
1713
+ });
1714
+ }
1715
+ function DrawerSwipeHandle({ density, className, ...props }) {
1716
+ return /* @__PURE__ */ jsx20("div", {
1717
+ "data-density": density,
1718
+ "data-slot": "drawer-swipe-handle",
1719
+ "aria-hidden": "true",
1720
+ className: cn2("relative flex shrink-0 cursor-grab transition-opacity duration-200 group-data-nested-drawer-open/drawer-popup:opacity-0 group-data-nested-drawer-swiping/drawer-popup:opacity-100 group-data-[swipe-axis=x]/drawer-popup:h-full group-data-[swipe-axis=x]/drawer-popup:w-3 group-data-[swipe-axis=x]/drawer-popup:items-center group-data-[swipe-axis=y]/drawer-popup:h-3 group-data-[swipe-axis=y]/drawer-popup:w-full group-data-[swipe-axis=y]/drawer-popup:justify-center group-data-[swipe-direction=down]/drawer-popup:items-end group-data-[swipe-direction=left]/drawer-popup:order-last group-data-[swipe-direction=left]/drawer-popup:justify-start group-data-[swipe-direction=right]/drawer-popup:justify-end group-data-[swipe-direction=up]/drawer-popup:order-last group-data-[swipe-direction=up]/drawer-popup:items-start after:block after:shrink-0 after:rounded-full after:bg-muted group-data-[swipe-axis=x]/drawer-popup:after:h-24 group-data-[swipe-axis=x]/drawer-popup:after:w-1 group-data-[swipe-axis=y]/drawer-popup:after:h-1 group-data-[swipe-axis=y]/drawer-popup:after:w-24 active:cursor-grabbing", className),
1721
+ ...props
1722
+ });
1723
+ }
1724
+ function DrawerContent({ density, className, children, ...props }) {
1725
+ const resolvedDensity = useDensity(density);
1726
+ const direction = useDirection2();
1727
+ const { hasSnapPoints, modal, showSwipeHandle, swipeDirection } = useDrawer();
1728
+ const swipeAxis = swipeDirection === "down" || swipeDirection === "up" ? "y" : "x";
1729
+ return /* @__PURE__ */ jsxs13(DrawerPortal, {
1730
+ "data-slot": "drawer-portal",
1731
+ children: [
1732
+ modal === true && /* @__PURE__ */ jsx20(DrawerOverlay, {
1733
+ "data-snap-points": hasSnapPoints ? "" : undefined
1734
+ }),
1735
+ /* @__PURE__ */ jsx20(DrawerPrimitive.Viewport, {
1736
+ dir: direction,
1737
+ "data-slot": "drawer-viewport",
1738
+ "data-modal": modal,
1739
+ className: "pointer-events-none fixed inset-0 select-none data-[modal=true]:pointer-events-auto",
1740
+ children: /* @__PURE__ */ jsxs13(DrawerPrimitive.Popup, {
1741
+ "data-density": resolvedDensity,
1742
+ "data-slot": "drawer-popup",
1743
+ "data-swipe-axis": swipeAxis,
1744
+ "data-snap-points": hasSnapPoints ? "" : undefined,
1745
+ className: (state) => cn2("group/drawer-popup pointer-events-auto fixed m-(--drawer-inset,0px) flex h-(--drawer-content-height) max-h-(--drawer-content-max-height,none) min-h-0 w-(--drawer-content-width,auto) transform-[translate3d(var(--translate-x,0px),var(--translate-y,0px),0)] flex-col border border-frame-edge shadow-frame bg-popover text-sm text-popover-foreground transition-[transform,height,opacity,filter] duration-450 ease-[cubic-bezier(0.22,1,0.36,1)] will-change-transform outline-none select-none [interpolate-size:allow-keywords] data-[swipe-direction=down]:rounded-t-md data-[swipe-direction=down]:border-t data-[swipe-direction=left]:rounded-r-md data-[swipe-direction=left]:border-r data-[swipe-direction=right]:rounded-l-md data-[swipe-direction=right]:border-l data-[swipe-direction=up]:rounded-b-md data-[swipe-direction=up]:border-b", "data-nested-drawer-open:overflow-hidden data-nested-drawer-open:brightness-95", "after:pointer-events-none after:absolute after:bg-(--drawer-bleed-background,var(--color-popover)) data-[swipe-axis=x]:after:inset-y-0 data-[swipe-axis=x]:after:w-(--bleed) data-[swipe-axis=y]:after:inset-x-0 data-[swipe-axis=y]:after:h-(--bleed) data-[swipe-direction=down]:after:top-full data-[swipe-direction=left]:after:right-full data-[swipe-direction=right]:after:left-full data-[swipe-direction=up]:after:bottom-full", "[--drawer-content-height:var(--drawer-height,auto)] data-[swipe-axis=x]:[--drawer-content-width:75%] data-[swipe-axis=y]:[--drawer-content-max-height:calc(100dvh-6rem)] data-[swipe-axis=y]:data-snap-points:[--drawer-content-height:100dvh] data-[swipe-axis=x]:sm:[--drawer-content-width:24rem]", "[--bleed:3rem] [--peek:1rem] [--stack-height:var(--drawer-frontmost-height,var(--drawer-height,0px))] [--stack-peek-offset:max(0px,calc((var(--nested-drawers)-var(--stack-progress))*var(--peek)))] [--stack-progress:clamp(0,var(--drawer-swipe-progress),1)] [--stack-shrink:0]", "data-ending-style:transform-(--closed-transform) data-ending-style:opacity-[0.9999] data-ending-style:duration-[calc(var(--drawer-swipe-strength)*400ms)] data-nested-drawer-swiping:duration-0 data-ending-style:data-nested-drawer-swiping:duration-[calc(var(--drawer-swipe-strength)*400ms)] data-starting-style:transform-(--closed-transform) data-swiping:duration-0 data-ending-style:data-swiping:duration-[calc(var(--drawer-swipe-strength)*400ms)]", "data-[swipe-axis=y]:inset-x-0 data-[swipe-axis=y]:data-nested-drawer-open:h-(--stack-height)", "data-[swipe-axis=x]:inset-y-0 data-[swipe-axis=x]:flex-row", "data-[swipe-direction=down]:bottom-0 data-[swipe-direction=down]:origin-bottom data-[swipe-direction=down]:[--closed-transform:translate3d(0,calc(100%+var(--drawer-inset,0px)+2px),0)] data-[swipe-direction=down]:[--translate-y:calc(var(--drawer-snap-point-offset,0px)+var(--drawer-swipe-movement-y)-var(--stack-peek-offset)-(var(--stack-shrink)*var(--stack-height)))]", "data-[swipe-direction=up]:top-0 data-[swipe-direction=up]:origin-top data-[swipe-direction=up]:[--closed-transform:translate3d(0,calc(-100%-var(--drawer-inset,0px)-2px),0)] data-[swipe-direction=up]:[--translate-y:calc(var(--drawer-snap-point-offset,0px)+var(--drawer-swipe-movement-y)+var(--stack-peek-offset)+(var(--stack-shrink)*var(--stack-height)))]", "data-[swipe-direction=left]:left-0 data-[swipe-direction=left]:origin-left data-[swipe-direction=left]:[--closed-transform:translate3d(calc(-100%-var(--drawer-inset,0px)-2px),0,0)] data-[swipe-direction=left]:[--translate-x:calc(var(--drawer-swipe-movement-x)+var(--stack-peek-offset)+(var(--stack-shrink)*100%))]", "data-[swipe-direction=right]:right-0 data-[swipe-direction=right]:origin-right data-[swipe-direction=right]:[--closed-transform:translate3d(calc(100%+var(--drawer-inset,0px)+2px),0,0)] data-[swipe-direction=right]:[--translate-x:calc(var(--drawer-swipe-movement-x)-var(--stack-peek-offset)-(var(--stack-shrink)*100%))]", typeof className === "function" ? className(state) : className),
1746
+ ...props,
1747
+ children: [
1748
+ showSwipeHandle && /* @__PURE__ */ jsx20(DrawerSwipeHandle, {}),
1749
+ /* @__PURE__ */ jsx20(DrawerPrimitive.Content, {
1750
+ "data-slot": "drawer-content",
1751
+ className: "flex min-h-0 flex-1 flex-col overflow-hidden overscroll-contain rounded-[inherit] transition-opacity duration-300 ease-out select-text group-data-nested-drawer-open/drawer-popup:opacity-0 group-data-nested-drawer-swiping/drawer-popup:opacity-100 group-data-swiping/drawer-popup:select-none",
1752
+ children
1753
+ })
1754
+ ]
1755
+ })
1756
+ })
1757
+ ]
1758
+ });
1759
+ }
1760
+ function DrawerHeader({ density, className, ...props }) {
1761
+ return /* @__PURE__ */ jsx20("div", {
1762
+ "data-density": density,
1763
+ "data-slot": "drawer-header",
1764
+ className: cn2("flex shrink-0 flex-col gap-0.5 p-panel pb-0 group-data-[swipe-axis=y]/drawer-popup:text-center md:gap-0.5 md:text-start md:group-data-[swipe-axis=y]/drawer-popup:text-start", className),
1765
+ ...props
1766
+ });
1767
+ }
1768
+ function DrawerFooter({ density, className, ...props }) {
1769
+ return /* @__PURE__ */ jsx20("div", {
1770
+ "data-density": density,
1771
+ "data-slot": "drawer-footer",
1772
+ className: cn2("mt-auto flex shrink-0 flex-col gap-2 p-panel pt-0", className),
1773
+ ...props
1774
+ });
1775
+ }
1776
+ function DrawerTitle({ density, className, ...props }) {
1777
+ return /* @__PURE__ */ jsx20(DrawerPrimitive.Title, {
1778
+ "data-density": density,
1779
+ "data-slot": "drawer-title",
1780
+ className: (state) => cn2(" text-base font-medium text-foreground", typeof className === "function" ? className(state) : className),
1781
+ ...props
1782
+ });
1783
+ }
1784
+ function DrawerDescription({ density, className, ...props }) {
1785
+ return /* @__PURE__ */ jsx20(DrawerPrimitive.Description, {
1786
+ "data-density": density,
1787
+ "data-slot": "drawer-description",
1788
+ className: (state) => cn2("text-sm text-balance text-muted-foreground", typeof className === "function" ? className(state) : className),
1789
+ ...props
1790
+ });
1791
+ }
1792
+ // src/components/ContextMenu.tsx
1793
+ import { ChevronRightIcon as ChevronRightIcon3, CheckIcon as CheckIcon3 } from "lucide-react";
1794
+ import { useDirection as useDirection5 } from "@base-ui/react/direction-provider";
1795
+ import { ContextMenu as ContextMenuPrimitive } from "@base-ui/react/context-menu";
1796
+ import { jsx as jsx21, jsxs as jsxs14 } from "react/jsx-runtime";
1797
+ function ContextMenu({ ...props }) {
1798
+ return /* @__PURE__ */ jsx21(ContextMenuPrimitive.Root, {
1799
+ "data-slot": "context-menu",
1800
+ ...props
1801
+ });
1802
+ }
1803
+ function ContextMenuPortal({ container, ...props }) {
1804
+ const resolvedContainer = usePortalContainer2(container);
1805
+ return /* @__PURE__ */ jsx21(ContextMenuPrimitive.Portal, {
1806
+ "data-slot": "context-menu-portal",
1807
+ container: resolvedContainer,
1808
+ ...props
1809
+ });
1810
+ }
1811
+ function ContextMenuTrigger({ density, className, ...props }) {
1812
+ return /* @__PURE__ */ jsx21(ContextMenuPrimitive.Trigger, {
1813
+ "data-density": density,
1814
+ "data-slot": "context-menu-trigger",
1815
+ className: (state) => cn2("select-none", typeof className === "function" ? className(state) : className),
1816
+ ...props
1817
+ });
1818
+ }
1819
+ function ContextMenuContent({
1820
+ density,
1821
+ className,
1822
+ align = "start",
1823
+ alignOffset = 4,
1824
+ side = "right",
1825
+ sideOffset = 0,
1826
+ ...props
1827
+ }) {
1828
+ const resolvedDensity = useDensity(density);
1829
+ const direction = useDirection5();
1830
+ return /* @__PURE__ */ jsx21(ContextMenuPortal, {
1831
+ children: /* @__PURE__ */ jsx21(ContextMenuPrimitive.Positioner, {
1832
+ dir: direction,
1833
+ className: "isolate outline-none",
1834
+ align,
1835
+ alignOffset,
1836
+ side,
1837
+ sideOffset,
1838
+ children: /* @__PURE__ */ jsx21(ContextMenuPrimitive.Popup, {
1839
+ dir: direction,
1840
+ "data-density": resolvedDensity,
1841
+ "data-slot": "context-menu-content",
1842
+ className: (state) => cn2(" max-h-(--available-height) min-w-36 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-sm bg-popover p-1 text-popover-foreground border border-frame-edge shadow-frame duration-100 outline-none data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0 motion-reduce:data-open:animate-none motion-reduce:data-closed:animate-none ", typeof className === "function" ? className(state) : className),
1843
+ ...props
1844
+ })
1845
+ })
1846
+ });
1847
+ }
1848
+ function ContextMenuGroup({ ...props }) {
1849
+ return /* @__PURE__ */ jsx21(ContextMenuPrimitive.Group, {
1850
+ "data-slot": "context-menu-group",
1851
+ ...props
1852
+ });
1853
+ }
1854
+ function ContextMenuLabel({ density, className, inset, ...props }) {
1855
+ return /* @__PURE__ */ jsx21(ContextMenuPrimitive.GroupLabel, {
1856
+ "data-density": density,
1857
+ "data-slot": "context-menu-label",
1858
+ "data-inset": inset,
1859
+ className: (state) => cn2("px-1.5 py-1 text-xs font-medium text-muted-foreground data-inset:ps-7", typeof className === "function" ? className(state) : className),
1860
+ ...props
1861
+ });
1862
+ }
1863
+ function ContextMenuItem({ density, className, inset, variant = "default", ...props }) {
1864
+ return /* @__PURE__ */ jsx21(ContextMenuPrimitive.Item, {
1865
+ "data-density": density,
1866
+ "data-slot": "context-menu-item",
1867
+ "data-inset": inset,
1868
+ "data-variant": variant,
1869
+ className: (state) => cn2("group/context-menu-item relative flex cursor-default items-center gap-control-gap rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:ps-7 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 focus:*:[svg]:text-accent-foreground data-[variant=destructive]:*:[svg]:text-destructive", typeof className === "function" ? className(state) : className),
1870
+ ...props
1871
+ });
1872
+ }
1873
+ function ContextMenuSub({ ...props }) {
1874
+ return /* @__PURE__ */ jsx21(ContextMenuPrimitive.SubmenuRoot, {
1875
+ "data-slot": "context-menu-sub",
1876
+ ...props
1877
+ });
1878
+ }
1879
+ function ContextMenuSubTrigger({ density, className, inset, children, ...props }) {
1880
+ return /* @__PURE__ */ jsxs14(ContextMenuPrimitive.SubmenuTrigger, {
1881
+ "data-density": density,
1882
+ "data-slot": "context-menu-sub-trigger",
1883
+ "data-inset": inset,
1884
+ className: (state) => cn2("flex cursor-default items-center gap-control-gap rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:ps-7 data-open:bg-accent data-open:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", typeof className === "function" ? className(state) : className),
1885
+ ...props,
1886
+ children: [
1887
+ children,
1888
+ /* @__PURE__ */ jsx21(ChevronRightIcon3, {
1889
+ className: "rtl:rotate-180 ms-auto"
1890
+ })
1891
+ ]
1892
+ });
1893
+ }
1894
+ function ContextMenuSubContent({ ...props }) {
1895
+ return /* @__PURE__ */ jsx21(ContextMenuContent, {
1896
+ "data-slot": "context-menu-sub-content",
1897
+ className: " shadow-frame border border-frame-edge",
1898
+ side: "inline-end",
1899
+ ...props
1900
+ });
1901
+ }
1902
+ function ContextMenuCheckboxItem({
1903
+ density,
1904
+ className,
1905
+ children,
1906
+ checked,
1907
+ inset,
1908
+ ...props
1909
+ }) {
1910
+ return /* @__PURE__ */ jsxs14(ContextMenuPrimitive.CheckboxItem, {
1911
+ "data-density": density,
1912
+ "data-slot": "context-menu-checkbox-item",
1913
+ "data-inset": inset,
1914
+ className: (state) => cn2("relative flex cursor-default items-center gap-control-gap rounded-md py-1 pe-8 ps-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:ps-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", typeof className === "function" ? className(state) : className),
1915
+ checked,
1916
+ ...props,
1917
+ children: [
1918
+ /* @__PURE__ */ jsx21("span", {
1919
+ className: "pointer-events-none absolute end-2",
1920
+ children: /* @__PURE__ */ jsx21(ContextMenuPrimitive.CheckboxItemIndicator, {
1921
+ children: /* @__PURE__ */ jsx21(CheckIcon3, {})
1922
+ })
1923
+ }),
1924
+ children
1925
+ ]
1926
+ });
1927
+ }
1928
+ function ContextMenuRadioGroup({ ...props }) {
1929
+ return /* @__PURE__ */ jsx21(ContextMenuPrimitive.RadioGroup, {
1930
+ "data-slot": "context-menu-radio-group",
1931
+ ...props
1932
+ });
1933
+ }
1934
+ function ContextMenuRadioItem({ density, className, children, inset, ...props }) {
1935
+ return /* @__PURE__ */ jsxs14(ContextMenuPrimitive.RadioItem, {
1936
+ "data-density": density,
1937
+ "data-slot": "context-menu-radio-item",
1938
+ "data-inset": inset,
1939
+ className: (state) => cn2("relative flex cursor-default items-center gap-control-gap rounded-md py-1 pe-8 ps-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:ps-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", typeof className === "function" ? className(state) : className),
1940
+ ...props,
1941
+ children: [
1942
+ /* @__PURE__ */ jsx21("span", {
1943
+ className: "pointer-events-none absolute end-2",
1944
+ children: /* @__PURE__ */ jsx21(ContextMenuPrimitive.RadioItemIndicator, {
1945
+ children: /* @__PURE__ */ jsx21(CheckIcon3, {})
1946
+ })
1947
+ }),
1948
+ children
1949
+ ]
1950
+ });
1951
+ }
1952
+ function ContextMenuSeparator({ density, className, ...props }) {
1953
+ return /* @__PURE__ */ jsx21(ContextMenuPrimitive.Separator, {
1954
+ "data-density": density,
1955
+ "data-slot": "context-menu-separator",
1956
+ className: (state) => cn2("-mx-1 my-1 h-px bg-border", typeof className === "function" ? className(state) : className),
1957
+ ...props
1958
+ });
1959
+ }
1960
+ function ContextMenuShortcut({ density, className, ...props }) {
1961
+ return /* @__PURE__ */ jsx21("span", {
1962
+ "data-density": density,
1963
+ "data-slot": "context-menu-shortcut",
1964
+ className: cn2("ms-auto text-xs tracking-widest text-muted-foreground group-focus/context-menu-item:text-accent-foreground", className),
1965
+ ...props
1966
+ });
1967
+ }
1968
+ // src/components/Menubar.tsx
1969
+ import { CheckIcon as CheckIcon4 } from "lucide-react";
1970
+ import { Menu as MenuPrimitive } from "@base-ui/react/menu";
1971
+ import { Menubar as MenubarPrimitive } from "@base-ui/react/menubar";
1972
+ import { jsx as jsx22, jsxs as jsxs15 } from "react/jsx-runtime";
1973
+ function Menubar({ density, className, ...props }) {
1974
+ return /* @__PURE__ */ jsx22(MenubarPrimitive, {
1975
+ "data-density": density,
1976
+ "data-slot": "menubar",
1977
+ className: (state) => cn2("flex h-control items-center gap-0.5 rounded-sm border p-px", typeof className === "function" ? className(state) : className),
1978
+ ...props
1979
+ });
1980
+ }
1981
+ function MenubarMenu({ ...props }) {
1982
+ return /* @__PURE__ */ jsx22(DropdownMenu2, {
1983
+ "data-slot": "menubar-menu",
1984
+ ...props
1985
+ });
1986
+ }
1987
+ function MenubarGroup({ ...props }) {
1988
+ return /* @__PURE__ */ jsx22(DropdownMenuGroup2, {
1989
+ "data-slot": "menubar-group",
1990
+ ...props
1991
+ });
1992
+ }
1993
+ function MenubarPortal({ ...props }) {
1994
+ return /* @__PURE__ */ jsx22(DropdownMenuPortal2, {
1995
+ "data-slot": "menubar-portal",
1996
+ ...props
1997
+ });
1998
+ }
1999
+ function MenubarTrigger({ density, className, ...props }) {
2000
+ return /* @__PURE__ */ jsx22(DropdownMenuTrigger2, {
2001
+ "data-density": density,
2002
+ "data-slot": "menubar-trigger",
2003
+ className: (state) => cn2("flex h-full items-center rounded-sm px-control-x text-sm leading-none font-medium outline-hidden select-none hover:bg-muted aria-expanded:bg-muted", typeof className === "function" ? className(state) : className),
2004
+ ...props
2005
+ });
2006
+ }
2007
+ function MenubarContent({
2008
+ density,
2009
+ className,
2010
+ align = "start",
2011
+ alignOffset = -4,
2012
+ sideOffset = 8,
2013
+ ...props
2014
+ }) {
2015
+ return /* @__PURE__ */ jsx22(DropdownMenuContent2, {
2016
+ density,
2017
+ "data-slot": "menubar-content",
2018
+ align,
2019
+ alignOffset,
2020
+ sideOffset,
2021
+ className: (state) => cn2(" min-w-36 rounded-sm bg-popover p-1 text-popover-foreground border border-frame-edge shadow-frame duration-100 data-open:animate-in data-open:fade-in-0 ", typeof className === "function" ? className(state) : className),
2022
+ ...props
2023
+ });
2024
+ }
2025
+ function MenubarItem({ density, className, inset, variant = "default", ...props }) {
2026
+ return /* @__PURE__ */ jsx22(DropdownMenuItem2, {
2027
+ density,
2028
+ "data-slot": "menubar-item",
2029
+ inset,
2030
+ variant,
2031
+ className: (state) => cn2("group/menubar-item gap-control-gap rounded-md px-1.5 py-1 text-sm focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:ps-7 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive data-disabled:opacity-50 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive!", typeof className === "function" ? className(state) : className),
2032
+ ...props
2033
+ });
2034
+ }
2035
+ function MenubarCheckboxItem({
2036
+ density,
2037
+ className,
2038
+ children,
2039
+ checked,
2040
+ inset,
2041
+ ...props
2042
+ }) {
2043
+ return /* @__PURE__ */ jsxs15(MenuPrimitive.CheckboxItem, {
2044
+ "data-density": density,
2045
+ "data-slot": "menubar-checkbox-item",
2046
+ "data-inset": inset,
2047
+ className: (state) => cn2("relative flex cursor-default items-center gap-control-gap rounded-md py-1 pe-1.5 ps-7 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:ps-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0", typeof className === "function" ? className(state) : className),
2048
+ checked,
2049
+ ...props,
2050
+ children: [
2051
+ /* @__PURE__ */ jsx22("span", {
2052
+ className: "pointer-events-none absolute start-1.5 flex size-4 items-center justify-center [&_svg:not([class*='size-'])]:size-4",
2053
+ children: /* @__PURE__ */ jsx22(MenuPrimitive.CheckboxItemIndicator, {
2054
+ children: /* @__PURE__ */ jsx22(CheckIcon4, {})
2055
+ })
2056
+ }),
2057
+ children
2058
+ ]
2059
+ });
2060
+ }
2061
+ function MenubarRadioGroup({ ...props }) {
2062
+ return /* @__PURE__ */ jsx22(DropdownMenuRadioGroup2, {
2063
+ "data-slot": "menubar-radio-group",
2064
+ ...props
2065
+ });
2066
+ }
2067
+ function MenubarRadioItem({ density, className, children, inset, ...props }) {
2068
+ return /* @__PURE__ */ jsxs15(MenuPrimitive.RadioItem, {
2069
+ "data-density": density,
2070
+ "data-slot": "menubar-radio-item",
2071
+ "data-inset": inset,
2072
+ className: (state) => cn2("relative flex cursor-default items-center gap-control-gap rounded-md py-1 pe-1.5 ps-7 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:ps-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", typeof className === "function" ? className(state) : className),
2073
+ ...props,
2074
+ children: [
2075
+ /* @__PURE__ */ jsx22("span", {
2076
+ className: "pointer-events-none absolute start-1.5 flex size-4 items-center justify-center [&_svg:not([class*='size-'])]:size-4",
2077
+ children: /* @__PURE__ */ jsx22(MenuPrimitive.RadioItemIndicator, {
2078
+ children: /* @__PURE__ */ jsx22(CheckIcon4, {})
2079
+ })
2080
+ }),
2081
+ children
2082
+ ]
2083
+ });
2084
+ }
2085
+ function MenubarLabel({ density, className, inset, ...props }) {
2086
+ return /* @__PURE__ */ jsx22(DropdownMenuLabel2, {
2087
+ density,
2088
+ "data-slot": "menubar-label",
2089
+ inset,
2090
+ className: (state) => cn2("px-1.5 py-1 text-sm font-medium data-inset:ps-7", typeof className === "function" ? className(state) : className),
2091
+ ...props
2092
+ });
2093
+ }
2094
+ function MenubarSeparator({ density, className, ...props }) {
2095
+ return /* @__PURE__ */ jsx22(DropdownMenuSeparator2, {
2096
+ density,
2097
+ "data-slot": "menubar-separator",
2098
+ className: (state) => cn2("-mx-1 my-1 h-px bg-border", typeof className === "function" ? className(state) : className),
2099
+ ...props
2100
+ });
2101
+ }
2102
+ function MenubarShortcut({ density, className, ...props }) {
2103
+ return /* @__PURE__ */ jsx22(DropdownMenuShortcut2, {
2104
+ "data-density": density,
2105
+ "data-slot": "menubar-shortcut",
2106
+ className: cn2("ms-auto text-xs tracking-widest text-muted-foreground group-focus/menubar-item:text-accent-foreground", className),
2107
+ ...props
2108
+ });
2109
+ }
2110
+ function MenubarSub({ ...props }) {
2111
+ return /* @__PURE__ */ jsx22(DropdownMenuSub2, {
2112
+ "data-slot": "menubar-sub",
2113
+ ...props
2114
+ });
2115
+ }
2116
+ function MenubarSubTrigger({ density, className, inset, ...props }) {
2117
+ return /* @__PURE__ */ jsx22(DropdownMenuSubTrigger2, {
2118
+ density,
2119
+ "data-slot": "menubar-sub-trigger",
2120
+ inset,
2121
+ className: (state) => cn2("gap-control-gap rounded-md px-1.5 py-1 text-sm focus:bg-accent focus:text-accent-foreground data-inset:ps-7 data-open:bg-accent data-open:text-accent-foreground [&_svg:not([class*='size-'])]:size-4", typeof className === "function" ? className(state) : className),
2122
+ ...props
2123
+ });
2124
+ }
2125
+ function MenubarSubContent({ density, className, ...props }) {
2126
+ return /* @__PURE__ */ jsx22(DropdownMenuSubContent2, {
2127
+ density,
2128
+ "data-slot": "menubar-sub-content",
2129
+ className: (state) => cn2(" min-w-32 rounded-sm bg-popover p-1 text-popover-foreground shadow-frame border border-frame-edge border border-frame-edge shadow-frame duration-100 data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0 ", typeof className === "function" ? className(state) : className),
2130
+ ...props
2131
+ });
2132
+ }
2133
+ // src/components/NavigationMenu.tsx
2134
+ import { ChevronDownIcon as ChevronDownIcon5 } from "lucide-react";
2135
+ import { NavigationMenu as NavigationMenuPrimitive } from "@base-ui/react/navigation-menu";
2136
+ import { cva as cva4 } from "class-variance-authority";
2137
+ import { jsx as jsx23, jsxs as jsxs16 } from "react/jsx-runtime";
2138
+ function NavigationMenu({
2139
+ density,
2140
+ align = "start",
2141
+ className,
2142
+ children,
2143
+ ...props
2144
+ }) {
2145
+ const resolvedDensity = useDensity(density);
2146
+ return /* @__PURE__ */ jsxs16(NavigationMenuPrimitive.Root, {
2147
+ "data-density": resolvedDensity,
2148
+ "data-slot": "navigation-menu",
2149
+ className: (state) => cn2("group/navigation-menu relative flex max-w-max flex-1 items-center justify-center", typeof className === "function" ? className(state) : className),
2150
+ ...props,
2151
+ children: [
2152
+ children,
2153
+ /* @__PURE__ */ jsx23(NavigationMenuPositioner, {
2154
+ density: resolvedDensity,
2155
+ align
2156
+ })
2157
+ ]
2158
+ });
2159
+ }
2160
+ function NavigationMenuList({ density, className, ...props }) {
2161
+ return /* @__PURE__ */ jsx23(NavigationMenuPrimitive.List, {
2162
+ "data-density": density,
2163
+ "data-slot": "navigation-menu-list",
2164
+ className: (state) => cn2("group flex flex-1 list-none items-center justify-center gap-0", typeof className === "function" ? className(state) : className),
2165
+ ...props
2166
+ });
2167
+ }
2168
+ function NavigationMenuItem({ density, className, ...props }) {
2169
+ return /* @__PURE__ */ jsx23(NavigationMenuPrimitive.Item, {
2170
+ "data-density": density,
2171
+ "data-slot": "navigation-menu-item",
2172
+ className: (state) => cn2("relative", typeof className === "function" ? className(state) : className),
2173
+ ...props
2174
+ });
2175
+ }
2176
+ var navigationMenuTriggerStyle = cva4("group/navigation-menu-trigger inline-flex h-control-lg w-max items-center justify-center rounded-sm px-control-x py-1.5 text-sm font-medium transition-colors outline-none hover:bg-muted focus:bg-muted focus-visible:ring-1 focus-visible:ring-ring focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-popup-open:bg-muted/50 data-popup-open:hover:bg-muted data-open:bg-muted/50 data-open:hover:bg-muted data-open:focus:bg-muted");
2177
+ function NavigationMenuTrigger({ density, className, children, ...props }) {
2178
+ return /* @__PURE__ */ jsxs16(NavigationMenuPrimitive.Trigger, {
2179
+ "data-density": density,
2180
+ "data-slot": "navigation-menu-trigger",
2181
+ className: (state) => cn2(navigationMenuTriggerStyle(), "group", typeof className === "function" ? className(state) : className),
2182
+ ...props,
2183
+ children: [
2184
+ children,
2185
+ " ",
2186
+ /* @__PURE__ */ jsx23(NavigationMenuIndicator, {})
2187
+ ]
2188
+ });
2189
+ }
2190
+ function NavigationMenuContent({ density, className, ...props }) {
2191
+ return /* @__PURE__ */ jsx23(NavigationMenuPrimitive.Content, {
2192
+ "data-density": density,
2193
+ "data-slot": "navigation-menu-content",
2194
+ className: (state) => cn2("data-ending-style:data-activation-direction=left:translate-x-[50%] data-ending-style:data-activation-direction=right:translate-x-[-50%] data-starting-style:data-activation-direction=left:translate-x-[-50%] data-starting-style:data-activation-direction=right:translate-x-[50%] h-full w-auto p-1 transition-[opacity,transform,translate] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] data-ending-style:opacity-0 data-starting-style:opacity-0 ", typeof className === "function" ? className(state) : className),
2195
+ ...props
2196
+ });
2197
+ }
2198
+ function NavigationMenuPositioner({
2199
+ density,
2200
+ className,
2201
+ side = "bottom",
2202
+ sideOffset = 8,
2203
+ align = "start",
2204
+ alignOffset = 0,
2205
+ ...props
2206
+ }) {
2207
+ const resolvedDensity = useDensity(density);
2208
+ const direction = useDirection2();
2209
+ const container = usePortalContainer2();
2210
+ return /* @__PURE__ */ jsx23(NavigationMenuPrimitive.Portal, {
2211
+ container,
2212
+ children: /* @__PURE__ */ jsx23(NavigationMenuPrimitive.Positioner, {
2213
+ dir: direction,
2214
+ side,
2215
+ sideOffset,
2216
+ align,
2217
+ alignOffset,
2218
+ className: (state) => cn2("isolate h-(--positioner-height) w-(--positioner-width) max-w-(--available-width) transition-[top,left,right,bottom] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] data-instant:transition-none data-[side=bottom]:before:top-[-10px] data-[side=bottom]:before:right-0 data-[side=bottom]:before:left-0", typeof className === "function" ? className(state) : className),
2219
+ ...props,
2220
+ children: /* @__PURE__ */ jsx23(NavigationMenuPrimitive.Popup, {
2221
+ "data-density": resolvedDensity,
2222
+ "data-slot": "navigation-menu-popup",
2223
+ className: "data-[ending-style]:easing-[ease] xs:w-(--popup-width) relative h-(--popup-height) w-(--popup-width) origin-(--transform-origin) rounded-sm bg-popover text-popover-foreground border border-frame-edge shadow-frame transition-[opacity,transform,width,height,translate] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] outline-none data-ending-style:opacity-0 data-ending-style:duration-150 data-starting-style:opacity-0",
2224
+ children: /* @__PURE__ */ jsx23(NavigationMenuPrimitive.Viewport, {
2225
+ className: "relative size-full overflow-hidden"
2226
+ })
2227
+ })
2228
+ })
2229
+ });
2230
+ }
2231
+ function NavigationMenuLink({ density, className, ...props }) {
2232
+ return /* @__PURE__ */ jsx23(NavigationMenuPrimitive.Link, {
2233
+ "data-density": density,
2234
+ "data-slot": "navigation-menu-link",
2235
+ className: (state) => cn2("flex items-center gap-2 rounded-sm p-2 text-sm transition-colors outline-none hover:bg-muted focus:bg-muted focus-visible:ring-1 focus-visible:ring-ring focus-visible:outline-1 in-data-[slot=navigation-menu-content]:rounded-md data-active:bg-muted/50 data-active:hover:bg-muted data-active:focus:bg-muted [&_svg:not([class*='size-'])]:size-4", typeof className === "function" ? className(state) : className),
2236
+ ...props
2237
+ });
2238
+ }
2239
+ function NavigationMenuIndicator({
2240
+ density,
2241
+ className,
2242
+ children,
2243
+ ...props
2244
+ }) {
2245
+ return /* @__PURE__ */ jsx23(NavigationMenuPrimitive.Icon, {
2246
+ "data-density": density,
2247
+ "data-slot": "navigation-menu-indicator",
2248
+ className: (state) => cn2("ms-1 inline-flex size-3 shrink-0 items-center justify-center transition-transform duration-120 data-popup-open:rotate-180 [&_svg]:size-full", typeof className === "function" ? className(state) : className),
2249
+ ...props,
2250
+ children: children ?? /* @__PURE__ */ jsx23(ChevronDownIcon5, {})
2251
+ });
2252
+ }
2253
+ // src/components/Toast.tsx
2254
+ import { Toast as ToastPrimitive } from "@base-ui/react/toast";
2255
+ import { CircleCheckIcon, InfoIcon, TriangleAlertIcon, OctagonXIcon, LoaderCircleIcon, XIcon as XIcon2 } from "lucide-react";
2256
+ import { jsx as jsx24, jsxs as jsxs17, Fragment } from "react/jsx-runtime";
2257
+ function ToastProvider(props) {
2258
+ return /* @__PURE__ */ jsx24(ToastPrimitive.Provider, {
2259
+ ...props
2260
+ });
2261
+ }
2262
+ function ToastPortal({ container, ...props }) {
2263
+ const resolvedContainer = usePortalContainer2(container);
2264
+ return /* @__PURE__ */ jsx24(ToastPrimitive.Portal, {
2265
+ "data-slot": "toast-portal",
2266
+ container: resolvedContainer,
2267
+ ...props
2268
+ });
2269
+ }
2270
+ function ToastViewport({ density, dir, className, ...props }) {
2271
+ const resolvedDensity = useDensity(density);
2272
+ const inheritedDirection = useDirection2();
2273
+ return /* @__PURE__ */ jsx24(ToastPrimitive.Viewport, {
2274
+ dir: dir ?? inheritedDirection,
2275
+ "data-density": resolvedDensity,
2276
+ "data-slot": "toast-viewport",
2277
+ className: (state) => cn2("pointer-events-none fixed inset-x-4 bottom-4 isolate mx-auto max-w-sm outline-none sm:right-4 sm:left-auto sm:mx-0 sm:w-full", typeof className === "function" ? className(state) : className),
2278
+ ...props
2279
+ });
2280
+ }
2281
+ function Toast({ density, className, ...props }) {
2282
+ return /* @__PURE__ */ jsx24(ToastPrimitive.Root, {
2283
+ "data-density": density,
2284
+ "data-slot": "toast",
2285
+ className: (state) => cn2("group/toast pointer-events-auto absolute right-0 bottom-0 w-full rounded-md border border-frame-edge bg-popover text-popover-foreground shadow-frame outline-none select-none focus-visible:ring-1 focus-visible:ring-ring [--offset-y:calc(var(--toast-offset-y)*-1-var(--toast-index)*var(--spacing-panel))] [transform:translateX(var(--toast-swipe-movement-x))_translateY(calc(var(--offset-y)+var(--toast-swipe-movement-y)))] transition-[transform,opacity] duration-120 ease-out data-limited:opacity-0 data-starting-style:opacity-0 data-ending-style:opacity-0 motion-reduce:transition-none", typeof className === "function" ? className(state) : className),
2286
+ ...props
2287
+ });
2288
+ }
2289
+ function ToastContent({ className, ...props }) {
2290
+ return /* @__PURE__ */ jsx24(ToastPrimitive.Content, {
2291
+ "data-slot": "toast-content",
2292
+ className: (state) => cn2("flex items-center gap-control-gap p-panel", typeof className === "function" ? className(state) : className),
2293
+ ...props
2294
+ });
2295
+ }
2296
+ function ToastTitle({ className, ...props }) {
2297
+ return /* @__PURE__ */ jsx24(ToastPrimitive.Title, {
2298
+ "data-slot": "toast-title",
2299
+ className: (state) => cn2("text-sm font-medium", typeof className === "function" ? className(state) : className),
2300
+ ...props
2301
+ });
2302
+ }
2303
+ function ToastDescription({ className, ...props }) {
2304
+ return /* @__PURE__ */ jsx24(ToastPrimitive.Description, {
2305
+ "data-slot": "toast-description",
2306
+ className: (state) => cn2("text-sm text-muted-foreground", typeof className === "function" ? className(state) : className),
2307
+ ...props
2308
+ });
2309
+ }
2310
+ function ToastAction({
2311
+ className,
2312
+ render = /* @__PURE__ */ jsx24(Button2, {
2313
+ variant: "outline",
2314
+ size: "sm"
2315
+ }),
2316
+ ...props
2317
+ }) {
2318
+ return /* @__PURE__ */ jsx24(ToastPrimitive.Action, {
2319
+ "data-slot": "toast-action",
2320
+ render,
2321
+ className: (state) => cn2("shrink-0", typeof className === "function" ? className(state) : className),
2322
+ ...props
2323
+ });
2324
+ }
2325
+ function ToastClose({
2326
+ className,
2327
+ children,
2328
+ render = /* @__PURE__ */ jsx24(Button2, {
2329
+ variant: "ghost",
2330
+ size: "icon-sm"
2331
+ }),
2332
+ ...props
2333
+ }) {
2334
+ return /* @__PURE__ */ jsx24(ToastPrimitive.Close, {
2335
+ "data-slot": "toast-close",
2336
+ "aria-label": "Close toast",
2337
+ render,
2338
+ className: (state) => cn2("relative shrink-0 text-muted-foreground hover:text-foreground", typeof className === "function" ? className(state) : className),
2339
+ ...props,
2340
+ children: children ?? /* @__PURE__ */ jsx24(XIcon2, {
2341
+ "aria-hidden": "true"
2342
+ })
2343
+ });
2344
+ }
2345
+ function ToastIcon({ type }) {
2346
+ switch (type) {
2347
+ case "success":
2348
+ return /* @__PURE__ */ jsx24(CircleCheckIcon, {
2349
+ "aria-hidden": "true"
2350
+ });
2351
+ case "info":
2352
+ return /* @__PURE__ */ jsx24(InfoIcon, {
2353
+ "aria-hidden": "true"
2354
+ });
2355
+ case "warning":
2356
+ return /* @__PURE__ */ jsx24(TriangleAlertIcon, {
2357
+ "aria-hidden": "true"
2358
+ });
2359
+ case "error":
2360
+ return /* @__PURE__ */ jsx24(OctagonXIcon, {
2361
+ "aria-hidden": "true",
2362
+ className: "text-destructive"
2363
+ });
2364
+ case "loading":
2365
+ return /* @__PURE__ */ jsx24(LoaderCircleIcon, {
2366
+ "aria-hidden": "true",
2367
+ className: "animate-spin motion-reduce:animate-none"
2368
+ });
2369
+ default:
2370
+ return null;
2371
+ }
2372
+ }
2373
+ function ToastList() {
2374
+ const { toasts } = ToastPrimitive.useToastManager();
2375
+ return /* @__PURE__ */ jsx24(Fragment, {
2376
+ children: toasts.map((toastItem) => /* @__PURE__ */ jsx24(Toast, {
2377
+ toast: toastItem,
2378
+ children: /* @__PURE__ */ jsxs17(ToastContent, {
2379
+ children: [
2380
+ /* @__PURE__ */ jsx24("span", {
2381
+ "data-slot": "toast-icon",
2382
+ className: "shrink-0 empty:hidden [&_svg]:size-4",
2383
+ children: /* @__PURE__ */ jsx24(ToastIcon, {
2384
+ type: toastItem.type
2385
+ })
2386
+ }),
2387
+ /* @__PURE__ */ jsxs17("div", {
2388
+ className: "flex min-w-0 flex-1 flex-col gap-1",
2389
+ children: [
2390
+ /* @__PURE__ */ jsx24(ToastTitle, {}),
2391
+ /* @__PURE__ */ jsx24(ToastDescription, {})
2392
+ ]
2393
+ }),
2394
+ /* @__PURE__ */ jsx24(ToastAction, {}),
2395
+ /* @__PURE__ */ jsx24(ToastClose, {})
2396
+ ]
2397
+ })
2398
+ }, toastItem.id))
2399
+ });
2400
+ }
2401
+ function ToastToaster({ children, density, ...props }) {
2402
+ return /* @__PURE__ */ jsxs17(ToastProvider, {
2403
+ ...props,
2404
+ children: [
2405
+ children,
2406
+ /* @__PURE__ */ jsx24(ToastPortal, {
2407
+ children: /* @__PURE__ */ jsx24(ToastViewport, {
2408
+ density,
2409
+ children: /* @__PURE__ */ jsx24(ToastList, {})
2410
+ })
2411
+ })
2412
+ ]
2413
+ });
2414
+ }
2415
+ var createToastManager = ToastPrimitive.createToastManager;
2416
+ // src/hooks/useToastManager.ts
2417
+ import { Toast as Toast2 } from "@base-ui/react/toast";
2418
+ function useToastManager() {
2419
+ return Toast2.useToastManager();
2420
+ }
2421
+ // src/components/Marker.tsx
2422
+ import { mergeProps as mergeProps6 } from "@base-ui/react/merge-props";
2423
+ import { useRender as useRender6 } from "@base-ui/react/use-render";
2424
+ import { cva as cva5 } from "class-variance-authority";
2425
+ import { jsx as jsx25 } from "react/jsx-runtime";
2426
+ var markerVariants = cva5("group/marker relative flex min-h-4 w-full items-center gap-control-gap text-start text-sm text-muted-foreground [&_svg:not([class*='size-'])]:size-4 [a]:underline [a]:underline-offset-3 [a]:hover:text-foreground [&:is(a,button)]:outline-none [&:is(a,button)]:focus-visible:outline-1 [&:is(a,button)]:focus-visible:outline-ring", {
2427
+ variants: {
2428
+ variant: {
2429
+ default: "",
2430
+ separator: "before:me-1 before:h-px before:min-w-0 before:flex-1 before:bg-border after:ms-1 after:h-px after:min-w-0 after:flex-1 after:bg-border",
2431
+ border: "border-b border-border pb-control-gap"
2432
+ }
2433
+ }
2434
+ });
2435
+ function Marker({ density, className, variant = "default", render, ...props }) {
2436
+ return useRender6({
2437
+ defaultTagName: "div",
2438
+ props: mergeProps6({ className: cn2(markerVariants({ variant, className })) }, props),
2439
+ render,
2440
+ state: { slot: "marker", variant, density }
2441
+ });
2442
+ }
2443
+ function MarkerIcon({ density, className, ...props }) {
2444
+ return /* @__PURE__ */ jsx25("span", {
2445
+ "data-density": density,
2446
+ "data-slot": "marker-icon",
2447
+ "aria-hidden": "true",
2448
+ className: cn2("size-4 shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
2449
+ ...props
2450
+ });
2451
+ }
2452
+ function MarkerContent({ density, className, ...props }) {
2453
+ return /* @__PURE__ */ jsx25("span", {
2454
+ "data-density": density,
2455
+ "data-slot": "marker-content",
2456
+ className: cn2("min-w-0 wrap-break-word group-data-[variant=separator]/marker:text-center [&>a]:underline [&>a]:underline-offset-3 [&>a:hover]:text-foreground", className),
2457
+ ...props
2458
+ });
2459
+ }
2460
+ // src/components/Bubble.tsx
2461
+ import { mergeProps as mergeProps7 } from "@base-ui/react/merge-props";
2462
+ import { useRender as useRender7 } from "@base-ui/react/use-render";
2463
+ import { cva as cva6 } from "class-variance-authority";
2464
+ import { jsx as jsx26 } from "react/jsx-runtime";
2465
+ function BubbleGroup({ density, className, ...props }) {
2466
+ return /* @__PURE__ */ jsx26("div", {
2467
+ "data-density": density,
2468
+ "data-slot": "bubble-group",
2469
+ className: cn2("flex min-w-0 flex-col gap-control-gap", className),
2470
+ ...props
2471
+ });
2472
+ }
2473
+ var bubbleVariants = cva6("group/bubble relative flex w-fit max-w-[80%] min-w-0 flex-col gap-1 group-data-[align=end]/message:self-end data-[align=end]:self-end data-[variant=ghost]:max-w-full", {
2474
+ variants: {
2475
+ variant: {
2476
+ default: "*:data-[slot=bubble-content]:bg-primary *:data-[slot=bubble-content]:text-primary-foreground [&>[data-slot=bubble-content]:is(button,a):hover]:bg-primary/80",
2477
+ secondary: "*:data-[slot=bubble-content]:bg-secondary *:data-[slot=bubble-content]:text-secondary-foreground [&>[data-slot=bubble-content]:is(button,a):hover]:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)]",
2478
+ muted: "*:data-[slot=bubble-content]:bg-muted [&>[data-slot=bubble-content]:is(button,a):hover]:bg-[color-mix(in_oklch,var(--muted),var(--foreground)_5%)]",
2479
+ tinted: "*:data-[slot=bubble-content]:bg-primary/10 *:data-[slot=bubble-content]:text-foreground [&>[data-slot=bubble-content]:is(button,a):hover]:bg-primary/20",
2480
+ outline: "*:data-[slot=bubble-content]:border-border *:data-[slot=bubble-content]:bg-background [&>[data-slot=bubble-content]:is(button,a):hover]:bg-muted [&>[data-slot=bubble-content]:is(button,a):hover]:text-foreground",
2481
+ ghost: "border-none *:data-[slot=bubble-content]:rounded-none *:data-[slot=bubble-content]:bg-transparent *:data-[slot=bubble-content]:p-0 [&>[data-slot=bubble-content]:is(button,a):hover]:bg-muted [&>[data-slot=bubble-content]:is(button,a):hover]:text-foreground",
2482
+ destructive: "*:data-[slot=bubble-content]:bg-destructive/10 *:data-[slot=bubble-content]:text-destructive [&>[data-slot=bubble-content]:is(button,a):hover]:bg-destructive/20"
2483
+ }
2484
+ },
2485
+ defaultVariants: { variant: "default" }
2486
+ });
2487
+ function Bubble({ density, variant = "default", align = "start", className, ...props }) {
2488
+ return /* @__PURE__ */ jsx26("div", {
2489
+ "data-density": density,
2490
+ "data-slot": "bubble",
2491
+ "data-variant": variant,
2492
+ "data-align": align,
2493
+ className: cn2(bubbleVariants({ variant }), className),
2494
+ ...props
2495
+ });
2496
+ }
2497
+ function BubbleContent({ density, className, render, ...props }) {
2498
+ return useRender7({
2499
+ defaultTagName: "div",
2500
+ props: mergeProps7({
2501
+ className: cn2("w-fit max-w-full min-w-0 overflow-hidden rounded-sm border border-transparent px-control-x py-control-gap text-sm leading-relaxed wrap-break-word group-data-[align=end]/bubble:self-end [&:is(button)]:text-start [&:is(button,a)]:transition-colors motion-reduce:transition-none [&:is(button,a)]:outline-none [&:is(button,a)]:focus-visible:border-ring [&:is(button,a)]:focus-visible:ring-1 [&:is(button,a)]:focus-visible:ring-ring", className)
2502
+ }, props),
2503
+ render,
2504
+ state: { slot: "bubble-content", density }
2505
+ });
2506
+ }
2507
+ var bubbleReactionsVariants = cva6("absolute z-10 flex w-fit shrink-0 items-center justify-center gap-1 rounded-sm border border-border bg-muted px-1.5 py-0.5 text-sm ring-2 ring-card has-[button]:p-0", {
2508
+ variants: {
2509
+ side: { top: "top-0 -translate-y-3/4", bottom: "bottom-0 translate-y-3/4" },
2510
+ align: { start: "start-3", end: "end-3" }
2511
+ },
2512
+ defaultVariants: { side: "bottom", align: "end" }
2513
+ });
2514
+ function BubbleReactions({
2515
+ density,
2516
+ side = "bottom",
2517
+ align = "end",
2518
+ className,
2519
+ ...props
2520
+ }) {
2521
+ return /* @__PURE__ */ jsx26("div", {
2522
+ "data-density": density,
2523
+ "data-slot": "bubble-reactions",
2524
+ "data-align": align,
2525
+ "data-side": side,
2526
+ className: cn2(bubbleReactionsVariants({ side, align }), className),
2527
+ ...props
2528
+ });
2529
+ }
2530
+ // src/components/Message.tsx
2531
+ import { useContext as useContext3, useLayoutEffect, useMemo as useMemo3, useRef as useRef3, useState as useState3 } from "react";
2532
+ import { useRender as useRender8 } from "@base-ui/react/use-render";
2533
+
2534
+ // src/message/MessageContext.ts
2535
+ import { createContext as createContext3 } from "react";
2536
+ var MessageContext = createContext3(null);
2537
+
2538
+ // src/components/Message.tsx
2539
+ import { jsx as jsx27 } from "react/jsx-runtime";
2540
+ function MessageGroup({ density, className, ...props }) {
2541
+ return /* @__PURE__ */ jsx27("div", {
2542
+ "data-density": density,
2543
+ "data-slot": "message-group",
2544
+ className: cn2("flex min-w-0 flex-col gap-control-gap", className),
2545
+ ...props
2546
+ });
2547
+ }
2548
+ function Message({ density, className, align = "start", style, ...props }) {
2549
+ const [footerOffset, setFooterOffset] = useState3(0);
2550
+ const context = useMemo3(() => ({ setFooterOffset }), []);
2551
+ const messageStyle = { ...style, "--message-footer-offset": `${footerOffset}px` };
2552
+ return /* @__PURE__ */ jsx27(MessageContext.Provider, {
2553
+ value: context,
2554
+ children: /* @__PURE__ */ jsx27("div", {
2555
+ "data-density": density,
2556
+ "data-slot": "message",
2557
+ "data-align": align,
2558
+ style: messageStyle,
2559
+ className: cn2("group/message relative flex w-full min-w-0 items-end gap-control-gap text-sm data-[align=end]:flex-row-reverse", className),
2560
+ ...props
2561
+ })
2562
+ });
2563
+ }
2564
+ function MessageAvatar({ density, className, ...props }) {
2565
+ return /* @__PURE__ */ jsx27("div", {
2566
+ "data-density": density,
2567
+ "data-slot": "message-avatar",
2568
+ className: cn2("flex w-fit min-w-8 shrink-0 items-center justify-center self-end overflow-hidden rounded-full bg-muted group-has-data-[slot=message-footer]/message:-translate-y-(--message-footer-offset)", className),
2569
+ ...props
2570
+ });
2571
+ }
2572
+ function MessageContent({ density, className, ...props }) {
2573
+ return /* @__PURE__ */ jsx27("div", {
2574
+ "data-density": density,
2575
+ "data-slot": "message-content",
2576
+ className: cn2("flex w-full min-w-0 flex-col gap-control-gap wrap-break-word group-data-[align=end]/message:[&>[data-slot]:not([data-slot=message-header])]:self-end", className),
2577
+ ...props
2578
+ });
2579
+ }
2580
+ function MessageHeader({ density, className, ...props }) {
2581
+ return /* @__PURE__ */ jsx27("div", {
2582
+ "data-density": density,
2583
+ "data-slot": "message-header",
2584
+ className: cn2("flex max-w-full min-w-0 items-center px-control-x text-xs font-medium text-muted-foreground group-has-data-[variant=ghost]/message:px-0", className),
2585
+ ...props
2586
+ });
2587
+ }
2588
+ function MessageFooter({ density, className, ...props }) {
2589
+ const context = useContext3(MessageContext);
2590
+ const footerRef = useRef3(null);
2591
+ useLayoutEffect(() => {
2592
+ const footer = footerRef.current;
2593
+ const content = footer?.parentElement;
2594
+ if (!context || !footer || !content)
2595
+ return;
2596
+ const measure = () => {
2597
+ const surface = footer.previousElementSibling;
2598
+ context.setFooterOffset(surface ? content.getBoundingClientRect().bottom - surface.getBoundingClientRect().bottom : 0);
2599
+ };
2600
+ measure();
2601
+ const observer = new ResizeObserver(measure);
2602
+ observer.observe(footer, { box: "border-box" });
2603
+ observer.observe(content, { box: "border-box" });
2604
+ return () => {
2605
+ observer.disconnect();
2606
+ context.setFooterOffset(0);
2607
+ };
2608
+ }, [context]);
2609
+ return useRender8({
2610
+ defaultTagName: "div",
2611
+ ref: footerRef,
2612
+ state: { slot: "message-footer", density },
2613
+ props: {
2614
+ ...props,
2615
+ className: cn2("flex max-w-full min-w-0 items-center px-control-x text-xs font-medium text-muted-foreground group-has-data-[variant=ghost]/message:px-0 group-data-[align=end]/message:justify-end", className)
2616
+ }
2617
+ });
2618
+ }
2619
+ // src/components/Attachment.tsx
2620
+ import { mergeProps as mergeProps8 } from "@base-ui/react/merge-props";
2621
+ import { useRender as useRender9 } from "@base-ui/react/use-render";
2622
+ import { cva as cva7 } from "class-variance-authority";
2623
+ import { jsx as jsx28 } from "react/jsx-runtime";
2624
+ var attachmentVariants = cva7("group/attachment relative flex w-fit max-w-full min-w-0 shrink-0 flex-wrap rounded-md border bg-card text-card-foreground transition-colors motion-reduce:transition-none focus-within:ring-1 focus-within:ring-ring has-[>a,>button]:hover:bg-muted/50 data-[state=error]:border-destructive data-[state=idle]:border-dashed", {
2625
+ variants: {
2626
+ size: {
2627
+ default: "gap-control-gap text-sm has-data-[slot=attachment-content]:px-control-x has-data-[slot=attachment-content]:py-control-gap has-data-[slot=attachment-media]:p-control-gap",
2628
+ sm: "gap-control-gap text-xs has-data-[slot=attachment-content]:px-2 has-data-[slot=attachment-content]:py-1.5 has-data-[slot=attachment-media]:p-1.5",
2629
+ xs: "gap-1.5 text-xs has-data-[slot=attachment-content]:px-1.5 has-data-[slot=attachment-content]:py-1 has-data-[slot=attachment-media]:p-1"
2630
+ },
2631
+ orientation: {
2632
+ horizontal: "min-w-40 items-center",
2633
+ vertical: "w-24 flex-col has-data-[slot=attachment-content]:w-30"
2634
+ }
2635
+ }
2636
+ });
2637
+ function Attachment({
2638
+ density,
2639
+ className,
2640
+ state = "done",
2641
+ size = "default",
2642
+ orientation = "horizontal",
2643
+ ...props
2644
+ }) {
2645
+ return /* @__PURE__ */ jsx28("div", {
2646
+ "data-slot": "attachment",
2647
+ "data-density": density,
2648
+ "data-state": state,
2649
+ "data-size": size,
2650
+ "data-orientation": orientation,
2651
+ className: cn2(attachmentVariants({ size, orientation }), className),
2652
+ ...props
2653
+ });
2654
+ }
2655
+ var attachmentMediaVariants = cva7("relative flex aspect-square w-10 shrink-0 items-center justify-center overflow-hidden rounded-sm bg-muted text-foreground group-data-[orientation=vertical]/attachment:w-full group-data-[orientation=horizontal]/attachment:group-data-[size=sm]/attachment:w-8 group-data-[orientation=horizontal]/attachment:group-data-[size=xs]/attachment:w-7 group-data-[state=error]/attachment:bg-destructive/10 group-data-[state=error]/attachment:text-destructive group-data-[orientation=vertical]/attachment:*:data-[slot=spinner]:size-6! [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 group-data-[orientation=vertical]/attachment:[&_svg:not([class*='size-'])]:size-6 group-data-[size=xs]/attachment:[&_svg:not([class*='size-'])]:size-3.5", {
2656
+ variants: {
2657
+ variant: {
2658
+ icon: "",
2659
+ image: "opacity-60 group-data-[state=done]/attachment:opacity-100 group-data-[state=idle]/attachment:opacity-100 *:[img]:aspect-square *:[img]:w-full *:[img]:object-cover"
2660
+ }
2661
+ },
2662
+ defaultVariants: { variant: "icon" }
2663
+ });
2664
+ function AttachmentMedia({ density, className, variant = "icon", ...props }) {
2665
+ return /* @__PURE__ */ jsx28("div", {
2666
+ "data-slot": "attachment-media",
2667
+ "data-density": density,
2668
+ "data-variant": variant,
2669
+ className: cn2(attachmentMediaVariants({ variant }), className),
2670
+ ...props
2671
+ });
2672
+ }
2673
+ function AttachmentContent({ density, className, ...props }) {
2674
+ return /* @__PURE__ */ jsx28("div", {
2675
+ "data-slot": "attachment-content",
2676
+ "data-density": density,
2677
+ className: cn2("max-w-full min-w-0 flex-1 leading-tight group-data-[orientation=vertical]/attachment:px-1", className),
2678
+ ...props
2679
+ });
2680
+ }
2681
+ function AttachmentTitle({ density, className, ...props }) {
2682
+ return /* @__PURE__ */ jsx28("span", {
2683
+ "data-slot": "attachment-title",
2684
+ "data-density": density,
2685
+ className: cn2("block max-w-full min-w-0 truncate font-medium group-data-[state=processing]/attachment:shimmer group-data-[state=uploading]/attachment:shimmer", className),
2686
+ ...props
2687
+ });
2688
+ }
2689
+ function AttachmentDescription({ density, className, ...props }) {
2690
+ return /* @__PURE__ */ jsx28("span", {
2691
+ "data-slot": "attachment-description",
2692
+ "data-density": density,
2693
+ className: cn2("mt-0.5 block max-w-full min-w-0 truncate text-xs text-muted-foreground group-data-[state=error]/attachment:text-destructive", className),
2694
+ ...props
2695
+ });
2696
+ }
2697
+ function AttachmentActions({ density, className, ...props }) {
2698
+ return /* @__PURE__ */ jsx28("div", {
2699
+ "data-slot": "attachment-actions",
2700
+ "data-density": density,
2701
+ className: cn2("relative z-20 flex shrink-0 items-center group-data-[orientation=vertical]/attachment:absolute group-data-[orientation=vertical]/attachment:top-3 group-data-[orientation=vertical]/attachment:end-3 group-data-[orientation=vertical]/attachment:gap-1", className),
2702
+ ...props
2703
+ });
2704
+ }
2705
+ function AttachmentAction({
2706
+ className,
2707
+ variant = "ghost",
2708
+ size = "icon-xs",
2709
+ ...props
2710
+ }) {
2711
+ return /* @__PURE__ */ jsx28(Button2, {
2712
+ "data-slot": "attachment-action",
2713
+ variant,
2714
+ size,
2715
+ className,
2716
+ ...props
2717
+ });
2718
+ }
2719
+ function AttachmentTrigger({ density, className, render, type, ...props }) {
2720
+ return useRender9({
2721
+ defaultTagName: "button",
2722
+ props: mergeProps8({ type: render ? type : type ?? "button", className: cn2("absolute inset-0 z-10 outline-none", className) }, props),
2723
+ render,
2724
+ state: { slot: "attachment-trigger", density }
2725
+ });
2726
+ }
2727
+ function AttachmentGroup({ density, className, ...props }) {
2728
+ return /* @__PURE__ */ jsx28("div", {
2729
+ "data-slot": "attachment-group",
2730
+ "data-density": density,
2731
+ className: cn2("flex min-w-0 scroll-fade-x snap-x snap-mandatory scroll-px-1 no-scrollbar gap-3 overflow-x-auto overscroll-x-contain py-1 *:data-[slot=attachment]:flex-none *:data-[slot=attachment]:snap-start", className),
2732
+ ...props
2733
+ });
2734
+ }
2735
+ // src/components/InlineEdit.tsx
2736
+ import { useEffect as useEffect2, useRef as useRef4, useState as useState4 } from "react";
2737
+ import { jsx as jsx29, jsxs as jsxs18 } from "react/jsx-runtime";
2738
+ function InlineEdit({
2739
+ label,
2740
+ value,
2741
+ density,
2742
+ isDisabled = false,
2743
+ shouldSelectOnMount = true,
2744
+ onValueChange,
2745
+ onCommit,
2746
+ onCancel
2747
+ }) {
2748
+ const input = useRef4(null);
2749
+ const isFinished = useRef4(false);
2750
+ const [isSaving, setSaving] = useState4(false);
2751
+ const [error, setError] = useState4("");
2752
+ useEffect2(() => {
2753
+ input.current?.focus();
2754
+ if (shouldSelectOnMount)
2755
+ input.current?.select();
2756
+ }, [shouldSelectOnMount]);
2757
+ const save = async () => {
2758
+ if (isFinished.current || isDisabled)
2759
+ return;
2760
+ isFinished.current = true;
2761
+ setSaving(true);
2762
+ setError("");
2763
+ try {
2764
+ await onCommit(value);
2765
+ } catch (error) {
2766
+ isFinished.current = false;
2767
+ setError(error instanceof Error ? error.message : "Could not save this edit.");
2768
+ } finally {
2769
+ setSaving(false);
2770
+ }
2771
+ };
2772
+ return /* @__PURE__ */ jsxs18("form", {
2773
+ className: "flex min-w-0 flex-col gap-1",
2774
+ onSubmit: (event) => {
2775
+ event.preventDefault();
2776
+ save();
2777
+ },
2778
+ children: [
2779
+ /* @__PURE__ */ jsx29(Input2, {
2780
+ ref: input,
2781
+ density,
2782
+ "aria-label": label,
2783
+ "aria-invalid": Boolean(error),
2784
+ "aria-description": "Enter saves. Escape cancels.",
2785
+ value,
2786
+ disabled: isDisabled || isSaving,
2787
+ onChange: (event) => onValueChange(event.target.value),
2788
+ onBlur: () => {
2789
+ save();
2790
+ },
2791
+ onKeyDown: (event) => {
2792
+ if (event.key === "Escape") {
2793
+ event.preventDefault();
2794
+ event.stopPropagation();
2795
+ isFinished.current = true;
2796
+ onCancel();
2797
+ }
2798
+ }
2799
+ }),
2800
+ error && /* @__PURE__ */ jsx29("p", {
2801
+ role: "alert",
2802
+ className: "text-xs text-destructive",
2803
+ children: error
2804
+ })
2805
+ ]
2806
+ });
2807
+ }
2808
+ // src/components/StarRating.tsx
2809
+ import { Radio } from "@base-ui/react/radio";
2810
+ import { RadioGroup } from "@base-ui/react/radio-group";
2811
+ import { StarIcon, CircleOffIcon } from "lucide-react";
2812
+ import { jsx as jsx30 } from "react/jsx-runtime";
2813
+ function StarRating({ label, value, disabled, density, onValueChange }) {
2814
+ return /* @__PURE__ */ jsx30(RadioGroup, {
2815
+ "aria-label": label,
2816
+ value,
2817
+ disabled,
2818
+ "data-density": density,
2819
+ className: "inline-flex w-fit shrink-0 items-center gap-0.5",
2820
+ onValueChange,
2821
+ children: [1, 2, 3, 4, 5, 0].map((star) => /* @__PURE__ */ jsx30(Radio.Root, {
2822
+ value: star,
2823
+ nativeButton: true,
2824
+ render: /* @__PURE__ */ jsx30("button", {
2825
+ type: "button"
2826
+ }),
2827
+ "aria-label": star === 0 ? "Unrated" : `${star} ${star === 1 ? "star" : "stars"}`,
2828
+ title: star === 0 ? "Clear rating" : `${star} stars`,
2829
+ className: "inline-flex size-5 shrink-0 items-center justify-center rounded-sm text-muted-foreground outline-none hover:text-primary focus-visible:ring-1 focus-visible:ring-ring data-disabled:cursor-not-allowed data-disabled:opacity-50",
2830
+ children: star === 0 ? /* @__PURE__ */ jsx30(CircleOffIcon, {
2831
+ "aria-hidden": "true",
2832
+ className: "size-3"
2833
+ }) : /* @__PURE__ */ jsx30(StarIcon, {
2834
+ "aria-hidden": "true",
2835
+ className: star <= value ? "size-3.5 fill-primary text-primary" : "size-3.5"
2836
+ })
2837
+ }, star))
2838
+ });
2839
+ }
2840
+ // src/components/ConfirmationDialog.tsx
2841
+ import { useState as useState5 } from "react";
2842
+ import { jsx as jsx31, jsxs as jsxs19 } from "react/jsx-runtime";
2843
+ function ConfirmationDialog({
2844
+ open,
2845
+ title,
2846
+ description,
2847
+ confirmLabel,
2848
+ onOpenChange,
2849
+ onConfirm
2850
+ }) {
2851
+ const [isPending, setPending] = useState5(false);
2852
+ const [error, setError] = useState5("");
2853
+ return /* @__PURE__ */ jsx31(AlertDialog, {
2854
+ open,
2855
+ onOpenChange: (next) => {
2856
+ if (!isPending) {
2857
+ setError("");
2858
+ onOpenChange(next);
2859
+ }
2860
+ },
2861
+ children: /* @__PURE__ */ jsxs19(AlertDialogContent, {
2862
+ children: [
2863
+ /* @__PURE__ */ jsxs19(AlertDialogHeader, {
2864
+ children: [
2865
+ /* @__PURE__ */ jsx31(AlertDialogTitle, {
2866
+ children: title
2867
+ }),
2868
+ /* @__PURE__ */ jsx31(AlertDialogDescription, {
2869
+ children: description
2870
+ })
2871
+ ]
2872
+ }),
2873
+ error && /* @__PURE__ */ jsx31(Alert2, {
2874
+ variant: "destructive",
2875
+ children: /* @__PURE__ */ jsx31(AlertDescription2, {
2876
+ children: error
2877
+ })
2878
+ }),
2879
+ /* @__PURE__ */ jsxs19(AlertDialogFooter, {
2880
+ children: [
2881
+ /* @__PURE__ */ jsx31(AlertDialogCancel, {
2882
+ disabled: isPending,
2883
+ children: "Cancel"
2884
+ }),
2885
+ /* @__PURE__ */ jsx31(Button2, {
2886
+ variant: "destructive",
2887
+ disabled: isPending,
2888
+ onClick: async () => {
2889
+ setPending(true);
2890
+ setError("");
2891
+ try {
2892
+ await onConfirm();
2893
+ onOpenChange(false);
2894
+ } catch (error) {
2895
+ setError(error instanceof Error ? error.message : "The action could not be completed.");
2896
+ } finally {
2897
+ setPending(false);
2898
+ }
2899
+ },
2900
+ children: isPending ? "Working…" : confirmLabel
2901
+ })
2902
+ ]
2903
+ })
2904
+ ]
2905
+ })
2906
+ });
2907
+ }
2908
+ // src/components/ImagePicker.tsx
2909
+ import { useRef as useRef5 } from "react";
2910
+ import { ImageIcon, UploadIcon } from "lucide-react";
2911
+
2912
+ // src/hooks/useObjectURL.ts
2913
+ import { useEffect as useEffect3, useState as useState6 } from "react";
2914
+ function useObjectURL(file) {
2915
+ const [url, setURL] = useState6();
2916
+ useEffect3(() => {
2917
+ if (!file) {
2918
+ setURL(undefined);
2919
+ return;
2920
+ }
2921
+ const next = URL.createObjectURL(file);
2922
+ setURL(next);
2923
+ return () => URL.revokeObjectURL(next);
2924
+ }, [file]);
2925
+ return url;
2926
+ }
2927
+
2928
+ // src/components/ImagePicker.tsx
2929
+ import { jsx as jsx32, jsxs as jsxs20 } from "react/jsx-runtime";
2930
+ function ImagePicker({ src, file, label, disabled, onFileChange, onClear }) {
2931
+ const input = useRef5(null);
2932
+ const preview = useObjectURL(file);
2933
+ const image = file === null ? undefined : preview ?? src;
2934
+ return /* @__PURE__ */ jsxs20("figure", {
2935
+ className: "flex min-w-0 flex-col items-center gap-3",
2936
+ "aria-label": label,
2937
+ children: [
2938
+ /* @__PURE__ */ jsxs20(Avatar2, {
2939
+ size: "preview",
2940
+ shape: "square",
2941
+ children: [
2942
+ /* @__PURE__ */ jsx32(AvatarImage2, {
2943
+ src: image,
2944
+ alt: label
2945
+ }),
2946
+ /* @__PURE__ */ jsx32(AvatarFallback2, {
2947
+ children: /* @__PURE__ */ jsx32(ImageIcon, {
2948
+ className: "size-12",
2949
+ "aria-hidden": "true"
2950
+ })
2951
+ })
2952
+ ]
2953
+ }),
2954
+ /* @__PURE__ */ jsx32("input", {
2955
+ ref: input,
2956
+ hidden: true,
2957
+ type: "file",
2958
+ accept: "image/png,image/jpeg,image/gif",
2959
+ "aria-label": "Choose image file",
2960
+ disabled,
2961
+ onChange: (event) => {
2962
+ const selected = event.currentTarget.files?.[0];
2963
+ if (selected)
2964
+ onFileChange(selected);
2965
+ event.currentTarget.value = "";
2966
+ }
2967
+ }),
2968
+ /* @__PURE__ */ jsxs20("div", {
2969
+ className: "flex flex-wrap justify-center gap-2",
2970
+ children: [
2971
+ /* @__PURE__ */ jsxs20(Button2, {
2972
+ type: "button",
2973
+ variant: "outline",
2974
+ disabled,
2975
+ onClick: () => input.current?.click(),
2976
+ children: [
2977
+ /* @__PURE__ */ jsx32(UploadIcon, {
2978
+ "data-icon": "inline-start"
2979
+ }),
2980
+ "Upload image"
2981
+ ]
2982
+ }),
2983
+ /* @__PURE__ */ jsx32(Button2, {
2984
+ type: "button",
2985
+ variant: "outline",
2986
+ disabled: disabled || !image,
2987
+ onClick: onClear,
2988
+ children: "Unset image"
2989
+ })
2990
+ ]
2991
+ })
2992
+ ]
2993
+ });
2994
+ }
2995
+ // src/components/PortalProvider.tsx
2996
+ import { jsx as jsx33 } from "react/jsx-runtime";
2997
+ function PortalProvider({ container, children }) {
2998
+ return /* @__PURE__ */ jsx33(PortalContext.Provider, {
2999
+ value: container,
3000
+ children
3001
+ });
3002
+ }
3003
+ export {
3004
+ Accordion,
3005
+ AccordionContent,
3006
+ AccordionItem,
3007
+ AccordionTrigger,
3008
+ Alert2 as Alert,
3009
+ AlertAction2 as AlertAction,
3010
+ AlertDescription2 as AlertDescription,
3011
+ AlertDialog,
3012
+ AlertDialogAction,
3013
+ AlertDialogCancel,
3014
+ AlertDialogContent,
3015
+ AlertDialogDescription,
3016
+ AlertDialogFooter,
3017
+ AlertDialogHeader,
3018
+ AlertDialogMedia,
3019
+ AlertDialogOverlay,
3020
+ AlertDialogPortal,
3021
+ AlertDialogTitle,
3022
+ AlertDialogTrigger,
3023
+ AlertTitle2 as AlertTitle,
3024
+ AspectRatio,
3025
+ Attachment,
3026
+ AttachmentAction,
3027
+ AttachmentActions,
3028
+ AttachmentContent,
3029
+ AttachmentDescription,
3030
+ AttachmentGroup,
3031
+ AttachmentMedia,
3032
+ AttachmentTitle,
3033
+ AttachmentTrigger,
3034
+ Avatar2 as Avatar,
3035
+ AvatarBadge2 as AvatarBadge,
3036
+ AvatarFallback2 as AvatarFallback,
3037
+ AvatarGroup2 as AvatarGroup,
3038
+ AvatarGroupCount2 as AvatarGroupCount,
3039
+ AvatarImage2 as AvatarImage,
3040
+ Badge2 as Badge,
3041
+ Breadcrumb,
3042
+ BreadcrumbEllipsis,
3043
+ BreadcrumbItem,
3044
+ BreadcrumbLink,
3045
+ BreadcrumbList,
3046
+ BreadcrumbPage,
3047
+ BreadcrumbSeparator,
3048
+ Bubble,
3049
+ BubbleContent,
3050
+ BubbleGroup,
3051
+ BubbleReactions,
3052
+ Button2 as Button,
3053
+ ButtonGroup,
3054
+ ButtonGroupSeparator,
3055
+ ButtonGroupText,
3056
+ Card2 as Card,
3057
+ CardAction2 as CardAction,
3058
+ CardContent2 as CardContent,
3059
+ CardDescription2 as CardDescription,
3060
+ CardFooter2 as CardFooter,
3061
+ CardHeader2 as CardHeader,
3062
+ CardTitle2 as CardTitle,
3063
+ Checkbox2 as Checkbox,
3064
+ Collapsible2 as Collapsible,
3065
+ CollapsibleContent2 as CollapsibleContent,
3066
+ CollapsibleTrigger2 as CollapsibleTrigger,
3067
+ Combobox,
3068
+ ComboboxChip,
3069
+ ComboboxChips,
3070
+ ComboboxChipsInput,
3071
+ ComboboxCollection,
3072
+ ComboboxContent,
3073
+ ComboboxEmpty,
3074
+ ComboboxGroup,
3075
+ ComboboxInput,
3076
+ ComboboxItem,
3077
+ ComboboxLabel,
3078
+ ComboboxList,
3079
+ ComboboxSeparator,
3080
+ ComboboxTrigger,
3081
+ ComboboxValue,
3082
+ ConfirmationDialog,
3083
+ ContextMenu,
3084
+ ContextMenuCheckboxItem,
3085
+ ContextMenuContent,
3086
+ ContextMenuGroup,
3087
+ ContextMenuItem,
3088
+ ContextMenuLabel,
3089
+ ContextMenuPortal,
3090
+ ContextMenuRadioGroup,
3091
+ ContextMenuRadioItem,
3092
+ ContextMenuSeparator,
3093
+ ContextMenuShortcut,
3094
+ ContextMenuSub,
3095
+ ContextMenuSubContent,
3096
+ ContextMenuSubTrigger,
3097
+ ContextMenuTrigger,
3098
+ DensityProvider,
3099
+ Dialog2 as Dialog,
3100
+ DialogClose2 as DialogClose,
3101
+ DialogContent2 as DialogContent,
3102
+ DialogDescription2 as DialogDescription,
3103
+ DialogFooter2 as DialogFooter,
3104
+ DialogHeader2 as DialogHeader,
3105
+ DialogOverlay2 as DialogOverlay,
3106
+ DialogPortal2 as DialogPortal,
3107
+ DialogTitle2 as DialogTitle,
3108
+ DialogTrigger2 as DialogTrigger,
3109
+ DirectionProvider2 as DirectionProvider,
3110
+ DragDropPreview,
3111
+ DragDropProvider,
3112
+ DragSource,
3113
+ Drawer,
3114
+ DrawerClose,
3115
+ DrawerContent,
3116
+ DrawerDescription,
3117
+ DrawerFooter,
3118
+ DrawerHeader,
3119
+ DrawerOverlay,
3120
+ DrawerPortal,
3121
+ DrawerSwipeHandle,
3122
+ DrawerTitle,
3123
+ DrawerTrigger,
3124
+ DropTarget,
3125
+ DropdownMenu2 as DropdownMenu,
3126
+ DropdownMenuCheckboxItem2 as DropdownMenuCheckboxItem,
3127
+ DropdownMenuContent2 as DropdownMenuContent,
3128
+ DropdownMenuGroup2 as DropdownMenuGroup,
3129
+ DropdownMenuItem2 as DropdownMenuItem,
3130
+ DropdownMenuLabel2 as DropdownMenuLabel,
3131
+ DropdownMenuPortal2 as DropdownMenuPortal,
3132
+ DropdownMenuRadioGroup2 as DropdownMenuRadioGroup,
3133
+ DropdownMenuRadioItem2 as DropdownMenuRadioItem,
3134
+ DropdownMenuSeparator2 as DropdownMenuSeparator,
3135
+ DropdownMenuShortcut2 as DropdownMenuShortcut,
3136
+ DropdownMenuSub2 as DropdownMenuSub,
3137
+ DropdownMenuSubContent2 as DropdownMenuSubContent,
3138
+ DropdownMenuSubTrigger2 as DropdownMenuSubTrigger,
3139
+ DropdownMenuTrigger2 as DropdownMenuTrigger,
3140
+ Empty2 as Empty,
3141
+ EmptyContent2 as EmptyContent,
3142
+ EmptyDescription2 as EmptyDescription,
3143
+ EmptyHeader2 as EmptyHeader,
3144
+ EmptyMedia2 as EmptyMedia,
3145
+ EmptyState,
3146
+ EmptyTitle2 as EmptyTitle,
3147
+ Field2 as Field,
3148
+ FieldContent2 as FieldContent,
3149
+ FieldDescription2 as FieldDescription,
3150
+ FieldError2 as FieldError,
3151
+ FieldGroup2 as FieldGroup,
3152
+ FieldLabel2 as FieldLabel,
3153
+ FieldLegend2 as FieldLegend,
3154
+ FieldSeparator2 as FieldSeparator,
3155
+ FieldSet2 as FieldSet,
3156
+ FieldTitle2 as FieldTitle,
3157
+ HoverCard2 as HoverCard,
3158
+ HoverCardContent2 as HoverCardContent,
3159
+ HoverCardTrigger2 as HoverCardTrigger,
3160
+ ImagePicker,
3161
+ InlineEdit,
3162
+ Input2 as Input,
3163
+ InputGroup2 as InputGroup,
3164
+ InputGroupAddon2 as InputGroupAddon,
3165
+ InputGroupButton2 as InputGroupButton,
3166
+ InputGroupInput2 as InputGroupInput,
3167
+ InputGroupText2 as InputGroupText,
3168
+ InputGroupTextarea2 as InputGroupTextarea,
3169
+ Item,
3170
+ ItemActions,
3171
+ ItemContent,
3172
+ ItemDescription,
3173
+ ItemFooter,
3174
+ ItemGroup,
3175
+ ItemHeader,
3176
+ ItemMedia,
3177
+ ItemSeparator,
3178
+ ItemTitle,
3179
+ JsonViewer,
3180
+ Kbd2 as Kbd,
3181
+ KbdGroup2 as KbdGroup,
3182
+ Label2 as Label,
3183
+ Marker,
3184
+ MarkerContent,
3185
+ MarkerIcon,
3186
+ Menubar,
3187
+ MenubarCheckboxItem,
3188
+ MenubarContent,
3189
+ MenubarGroup,
3190
+ MenubarItem,
3191
+ MenubarLabel,
3192
+ MenubarMenu,
3193
+ MenubarPortal,
3194
+ MenubarRadioGroup,
3195
+ MenubarRadioItem,
3196
+ MenubarSeparator,
3197
+ MenubarShortcut,
3198
+ MenubarSub,
3199
+ MenubarSubContent,
3200
+ MenubarSubTrigger,
3201
+ MenubarTrigger,
3202
+ Message,
3203
+ MessageAvatar,
3204
+ MessageContent,
3205
+ MessageFooter,
3206
+ MessageGroup,
3207
+ MessageHeader,
3208
+ NativeSelect,
3209
+ NativeSelectOptGroup,
3210
+ NativeSelectOption,
3211
+ NavigationMenu,
3212
+ NavigationMenuContent,
3213
+ NavigationMenuIndicator,
3214
+ NavigationMenuItem,
3215
+ NavigationMenuLink,
3216
+ NavigationMenuList,
3217
+ NavigationMenuPositioner,
3218
+ NavigationMenuTrigger,
3219
+ PageMessage,
3220
+ Pagination,
3221
+ PaginationContent,
3222
+ PaginationEllipsis,
3223
+ PaginationItem,
3224
+ PaginationLink,
3225
+ PaginationNext,
3226
+ PaginationPrevious,
3227
+ Popover2 as Popover,
3228
+ PopoverContent2 as PopoverContent,
3229
+ PopoverDescription2 as PopoverDescription,
3230
+ PopoverHeader2 as PopoverHeader,
3231
+ PopoverTitle2 as PopoverTitle,
3232
+ PopoverTrigger2 as PopoverTrigger,
3233
+ PortalProvider,
3234
+ Progress2 as Progress,
3235
+ ProgressIndicator2 as ProgressIndicator,
3236
+ ProgressLabel2 as ProgressLabel,
3237
+ ProgressTrack2 as ProgressTrack,
3238
+ ProgressValue2 as ProgressValue,
3239
+ RadioGroup2 as RadioGroup,
3240
+ RadioGroupItem2 as RadioGroupItem,
3241
+ ScrollArea,
3242
+ ScrollBar,
3243
+ Select,
3244
+ SelectContent,
3245
+ SelectGroup,
3246
+ SelectItem,
3247
+ SelectLabel,
3248
+ SelectScrollDownButton,
3249
+ SelectScrollUpButton,
3250
+ SelectSeparator,
3251
+ SelectTrigger,
3252
+ SelectValue,
3253
+ Separator2 as Separator,
3254
+ Sheet2 as Sheet,
3255
+ SheetClose2 as SheetClose,
3256
+ SheetContent2 as SheetContent,
3257
+ SheetDescription2 as SheetDescription,
3258
+ SheetFooter2 as SheetFooter,
3259
+ SheetHeader2 as SheetHeader,
3260
+ SheetTitle2 as SheetTitle,
3261
+ SheetTrigger2 as SheetTrigger,
3262
+ Sidebar2 as Sidebar,
3263
+ SidebarContent2 as SidebarContent,
3264
+ SidebarFooter2 as SidebarFooter,
3265
+ SidebarGroup2 as SidebarGroup,
3266
+ SidebarGroupAction2 as SidebarGroupAction,
3267
+ SidebarGroupContent2 as SidebarGroupContent,
3268
+ SidebarGroupLabel2 as SidebarGroupLabel,
3269
+ SidebarHeader2 as SidebarHeader,
3270
+ SidebarInput2 as SidebarInput,
3271
+ SidebarInset2 as SidebarInset,
3272
+ SidebarMenu2 as SidebarMenu,
3273
+ SidebarMenuAction2 as SidebarMenuAction,
3274
+ SidebarMenuBadge2 as SidebarMenuBadge,
3275
+ SidebarMenuButton2 as SidebarMenuButton,
3276
+ SidebarMenuItem2 as SidebarMenuItem,
3277
+ SidebarMenuSkeleton2 as SidebarMenuSkeleton,
3278
+ SidebarMenuSub2 as SidebarMenuSub,
3279
+ SidebarMenuSubButton2 as SidebarMenuSubButton,
3280
+ SidebarMenuSubItem2 as SidebarMenuSubItem,
3281
+ SidebarProvider2 as SidebarProvider,
3282
+ SidebarRail2 as SidebarRail,
3283
+ SidebarSeparator2 as SidebarSeparator,
3284
+ SidebarTrigger2 as SidebarTrigger,
3285
+ Skeleton2 as Skeleton,
3286
+ Slider2 as Slider,
3287
+ Spinner2 as Spinner,
3288
+ StarRating,
3289
+ Switch2 as Switch,
3290
+ Table2 as Table,
3291
+ TableBody2 as TableBody,
3292
+ TableCaption2 as TableCaption,
3293
+ TableCell2 as TableCell,
3294
+ TableFooter2 as TableFooter,
3295
+ TableHead2 as TableHead,
3296
+ TableHeader2 as TableHeader,
3297
+ TableRow2 as TableRow,
3298
+ Tabs,
3299
+ TabsContent,
3300
+ TabsList,
3301
+ TabsTrigger,
3302
+ Textarea2 as Textarea,
3303
+ ThemeProvider,
3304
+ Toast,
3305
+ ToastAction,
3306
+ ToastClose,
3307
+ ToastContent,
3308
+ ToastDescription,
3309
+ ToastPortal,
3310
+ ToastProvider,
3311
+ ToastTitle,
3312
+ ToastToaster,
3313
+ ToastViewport,
3314
+ Toggle2 as Toggle,
3315
+ ToggleGroup2 as ToggleGroup,
3316
+ ToggleGroupItem2 as ToggleGroupItem,
3317
+ Tooltip2 as Tooltip,
3318
+ TooltipContent2 as TooltipContent,
3319
+ TooltipProvider2 as TooltipProvider,
3320
+ TooltipTrigger2 as TooltipTrigger,
3321
+ badgeVariants2 as badgeVariants,
3322
+ buttonGroupVariants,
3323
+ buttonVariants2 as buttonVariants,
3324
+ cn2 as cn,
3325
+ createToastManager,
3326
+ markerVariants,
3327
+ navigationMenuTriggerStyle,
3328
+ tabsListVariants,
3329
+ toggleVariants2 as toggleVariants,
3330
+ useComboboxAnchor,
3331
+ useDirection2 as useDirection,
3332
+ useDragDrop,
3333
+ useDragSource,
3334
+ useDropTarget,
3335
+ usePortalContainer2 as usePortalContainer,
3336
+ useSidebar2 as useSidebar,
3337
+ useTheme2 as useTheme,
3338
+ useToastManager
3339
+ };