@alexgorbatchev/shadcn 0.0.47 → 0.0.49

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (547) hide show
  1. package/README.md +72 -4
  2. package/dist/{chunk-snq5m541.js → chunk-02a3sgge.js} +3 -3
  3. package/dist/{chunk-mqea74ex.js → chunk-032fn19y.js} +2 -2
  4. package/dist/{chunk-tg5grn8f.js → chunk-056z8fc3.js} +2 -2
  5. package/dist/{chunk-fz2x6hvf.js → chunk-09x5ne2y.js} +4 -4
  6. package/dist/{chunk-0q9n4syq.js → chunk-0bwg27nq.js} +3 -3
  7. package/dist/{chunk-hyq4nwg2.js → chunk-0hq6rg7w.js} +1 -1
  8. package/dist/{chunk-6kygf29c.js → chunk-0jz2mp48.js} +2 -2
  9. package/dist/{chunk-fvg93469.js → chunk-0ybqnkcy.js} +1 -1
  10. package/dist/{chunk-m9rrhywc.js → chunk-10bcpsft.js} +6 -6
  11. package/dist/{chunk-8wc2z7te.js → chunk-10vjajh7.js} +104 -76
  12. package/dist/{chunk-588wj6g4.js → chunk-11m1mwv4.js} +3 -3
  13. package/dist/{chunk-wnhxn2se.js → chunk-16qrkr8k.js} +1 -1
  14. package/dist/{chunk-c9ypcp4s.js → chunk-1f6p05qh.js} +5 -5
  15. package/dist/{chunk-d70rcwk7.js → chunk-1fzwfn11.js} +1 -1
  16. package/dist/{chunk-3wap1z7h.js → chunk-1k2g7rpj.js} +2 -2
  17. package/dist/{chunk-c4m53x5s.js → chunk-1wrsg75m.js} +1 -1
  18. package/dist/{chunk-zj30cfgx.js → chunk-1xgqshkv.js} +1 -1
  19. package/dist/{chunk-s3wqwhxc.js → chunk-228jkv3n.js} +1 -1
  20. package/dist/{chunk-f6rbv5gf.js → chunk-2b5f37wj.js} +3 -3
  21. package/dist/{chunk-kxx5fnpb.js → chunk-2fxzw0xc.js} +2 -2
  22. package/dist/{chunk-xq579zwh.js → chunk-2z53taz1.js} +1 -1
  23. package/dist/{chunk-p1eqxz4v.js → chunk-31wptjv4.js} +15 -56
  24. package/dist/{chunk-wgxs6b5t.js → chunk-39q6906v.js} +1 -1
  25. package/dist/{chunk-s8ejm9d8.js → chunk-3b15harp.js} +1 -1
  26. package/dist/{chunk-6jw87d07.js → chunk-3gc5n7dc.js} +2 -2
  27. package/dist/{chunk-05shyxqp.js → chunk-3gxptxxs.js} +1 -1
  28. package/dist/{chunk-jhw9q2eq.js → chunk-3j9enr2q.js} +1 -1
  29. package/dist/{chunk-ybyx7vt4.js → chunk-3kw3nft7.js} +3 -3
  30. package/dist/{chunk-vfhztmet.js → chunk-3p6085ag.js} +1 -1
  31. package/dist/{chunk-fb6h4fzt.js → chunk-3qq9yhn2.js} +1 -1
  32. package/dist/{chunk-a82d9z1e.js → chunk-3qrvksfh.js} +1 -1
  33. package/dist/{chunk-fxfwgr5g.js → chunk-3rjm30tj.js} +7 -7
  34. package/dist/{chunk-e9756880.js → chunk-4143tbd7.js} +2 -2
  35. package/dist/{chunk-645dhey7.js → chunk-424xrf3x.js} +11 -9
  36. package/dist/{chunk-23jrbq6y.js → chunk-4531ygnr.js} +1 -1
  37. package/dist/{chunk-9de1htr5.js → chunk-4e96tpw0.js} +1 -1
  38. package/dist/{chunk-jgdpa00w.js → chunk-4t23yhc0.js} +2 -2
  39. package/dist/{chunk-wh7rmym5.js → chunk-4z3c9p9y.js} +3 -3
  40. package/dist/{chunk-1t959882.js → chunk-4zm4dn1a.js} +2 -2
  41. package/dist/{chunk-f08tw6hg.js → chunk-50ykf6dc.js} +2 -2
  42. package/dist/{chunk-zksbrzf6.js → chunk-51t02gb9.js} +3 -3
  43. package/dist/{chunk-rajgnfbr.js → chunk-52aadmkc.js} +1 -1
  44. package/dist/{chunk-srr328m4.js → chunk-58cpjhsr.js} +30 -15
  45. package/dist/{chunk-0twprqdp.js → chunk-5bq2j907.js} +3 -3
  46. package/dist/{chunk-7w8yemba.js → chunk-5jgfh8t9.js} +1 -1
  47. package/dist/{chunk-8k18tnap.js → chunk-5pgk9qar.js} +3 -3
  48. package/dist/{chunk-7mnba0d8.js → chunk-5rxjvjkq.js} +6 -6
  49. package/dist/{chunk-fky4t8cc.js → chunk-5tag5wg4.js} +9 -9
  50. package/dist/{chunk-xvmv0xm5.js → chunk-5wk6h8rc.js} +3 -3
  51. package/dist/{chunk-gbmvkt3q.js → chunk-62ggz655.js} +4 -4
  52. package/dist/{chunk-m0agthfm.js → chunk-65xd5we6.js} +2 -2
  53. package/dist/{chunk-23419f5j.js → chunk-6bsys2p8.js} +2 -2
  54. package/dist/{chunk-84gs32n6.js → chunk-6en4vrjc.js} +79 -48
  55. package/dist/{chunk-w1jm0rx3.js → chunk-6eseyyv3.js} +4 -4
  56. package/dist/{chunk-96x8wa8w.js → chunk-6gmarxhb.js} +2 -2
  57. package/dist/{chunk-vhm7fpav.js → chunk-6pj5fxa2.js} +10 -10
  58. package/dist/{chunk-v8gdzaxt.js → chunk-6wqp7xn4.js} +1 -1
  59. package/dist/{chunk-10t1w38s.js → chunk-70rxgqd7.js} +3 -3
  60. package/dist/{chunk-8xnjf4ef.js → chunk-737c03z9.js} +3 -3
  61. package/dist/{chunk-3xw5sdfk.js → chunk-73s0vkbs.js} +2 -2
  62. package/dist/{chunk-2mn2ctsk.js → chunk-7cq1s2ey.js} +1 -1
  63. package/dist/{chunk-ydfsxbrn.js → chunk-7dpp28jx.js} +2 -2
  64. package/dist/{chunk-79vgr8w9.js → chunk-7gjmprwx.js} +5 -5
  65. package/dist/{chunk-x6vx0v6d.js → chunk-7srpghny.js} +2 -2
  66. package/dist/{chunk-bnaejcfx.js → chunk-7v8ry91s.js} +2 -2
  67. package/dist/{chunk-0fmrwsgp.js → chunk-7vg045gd.js} +1 -1
  68. package/dist/{chunk-vyve5wf3.js → chunk-7vnpp3ya.js} +1 -1
  69. package/dist/{chunk-pws4vb8r.js → chunk-7yc7phbt.js} +3 -3
  70. package/dist/{chunk-cn1ns1xj.js → chunk-7zf1pehx.js} +2 -2
  71. package/dist/{chunk-77xfccfq.js → chunk-880zr7gb.js} +4 -4
  72. package/dist/{chunk-2krw4tjq.js → chunk-8b4gq4xb.js} +3 -3
  73. package/dist/{chunk-m71d0g7v.js → chunk-8gtsqm4v.js} +6 -6
  74. package/dist/{chunk-kbcprevc.js → chunk-8jyhvaer.js} +1 -1
  75. package/dist/{chunk-prp1x0by.js → chunk-8sktrf74.js} +1 -1
  76. package/dist/{chunk-ewhk1ze1.js → chunk-8vw7ycbs.js} +2 -2
  77. package/dist/{chunk-td7ra5d2.js → chunk-8w8mnk5h.js} +2 -2
  78. package/dist/{chunk-71efbr5n.js → chunk-8xk2zeg2.js} +1 -1
  79. package/dist/{chunk-60p7sagm.js → chunk-9ecf92s6.js} +1 -1
  80. package/dist/{chunk-1zbtg30t.js → chunk-9gdt00hm.js} +1 -1
  81. package/dist/{chunk-6jpz5geq.js → chunk-9n0axzd5.js} +3 -3
  82. package/dist/{chunk-wjx6zf94.js → chunk-9t530p75.js} +1 -1
  83. package/dist/{chunk-dfkzm4f1.js → chunk-9yjrw75r.js} +14 -14
  84. package/dist/{chunk-pa8yemp1.js → chunk-a1c1yrkz.js} +1 -1
  85. package/dist/{chunk-9qcqxp3v.js → chunk-a3n2jee5.js} +1 -1
  86. package/dist/{chunk-hj9avapz.js → chunk-ab932mya.js} +5 -5
  87. package/dist/{chunk-9vm8fks0.js → chunk-ajnmzqsv.js} +1 -1
  88. package/dist/{chunk-khkdgmvm.js → chunk-amdsd0g4.js} +1 -1
  89. package/dist/{chunk-ghz2g6j5.js → chunk-an661kn2.js} +3 -3
  90. package/dist/{chunk-06c2d8rd.js → chunk-b19nmr0m.js} +2 -2
  91. package/dist/{chunk-caz81rnv.js → chunk-b5s5y5wq.js} +1 -1
  92. package/dist/{chunk-5j39rehg.js → chunk-bcwbh20z.js} +1 -1
  93. package/dist/{chunk-38301e40.js → chunk-bd09gygt.js} +1 -1
  94. package/dist/{chunk-21ab0jsp.js → chunk-bf8kbj33.js} +1 -1
  95. package/dist/{chunk-h3qqt3rg.js → chunk-bgvjmnst.js} +3 -3
  96. package/dist/{chunk-x1598f0d.js → chunk-bkb7mahn.js} +3 -3
  97. package/dist/{chunk-jadf0xqn.js → chunk-brxk90eb.js} +2 -2
  98. package/dist/{chunk-ct6ayjkt.js → chunk-bxzbrzbb.js} +2 -2
  99. package/dist/{chunk-ngq209hr.js → chunk-cjx1ry29.js} +3 -3
  100. package/dist/{chunk-t97ts9df.js → chunk-d1z748rn.js} +1 -1
  101. package/dist/{chunk-1hy9rfvc.js → chunk-d1zj7xk2.js} +2 -2
  102. package/dist/{chunk-cn81dnqb.js → chunk-d93zpy8g.js} +1 -1
  103. package/dist/{chunk-mwzmmeeq.js → chunk-ddbc17b4.js} +1 -1
  104. package/dist/{chunk-d444bwwf.js → chunk-dq2s4vwc.js} +3 -3
  105. package/dist/{chunk-tbd56x4h.js → chunk-dvzs0424.js} +3 -3
  106. package/dist/{chunk-k6hfm259.js → chunk-dyg4pwcd.js} +1 -1
  107. package/dist/{chunk-f9twxy4y.js → chunk-e55n7tff.js} +2 -2
  108. package/dist/{chunk-f72tygjq.js → chunk-ee098znw.js} +2 -2
  109. package/dist/{chunk-dhmtrz6f.js → chunk-efm3b1py.js} +3 -3
  110. package/dist/{chunk-cp2m7y7v.js → chunk-en44w1pn.js} +3 -1
  111. package/dist/{chunk-tq0pfv5h.js → chunk-er6e5fj8.js} +1 -1
  112. package/dist/{chunk-gykrcxd1.js → chunk-f281m4a9.js} +1 -1
  113. package/dist/{chunk-m99hfsps.js → chunk-f2p7w894.js} +1 -1
  114. package/dist/{chunk-h5zhqdmb.js → chunk-f37ge3wq.js} +3 -3
  115. package/dist/{chunk-q7zc22qp.js → chunk-f4xwjhmy.js} +1 -1
  116. package/dist/{chunk-3t7h84te.js → chunk-f63kp4af.js} +3 -3
  117. package/dist/{chunk-x6zmnr8m.js → chunk-f6qkck8r.js} +6 -6
  118. package/dist/{chunk-2mswp6h1.js → chunk-f7cczxya.js} +4 -4
  119. package/dist/{chunk-y7tyyzfy.js → chunk-f97wwbfy.js} +3 -3
  120. package/dist/chunk-f9sm5zpv.js +47 -0
  121. package/dist/{chunk-v9r6zprz.js → chunk-fdhssr0q.js} +1 -1
  122. package/dist/{chunk-8rtm4y46.js → chunk-fjw7yyt3.js} +8 -8
  123. package/dist/{chunk-fba5hr7b.js → chunk-fm1b6e79.js} +2 -2
  124. package/dist/{chunk-83v2vma2.js → chunk-fnqc1181.js} +2 -2
  125. package/dist/{chunk-khtt3f21.js → chunk-fp4dkem8.js} +2 -2
  126. package/dist/{chunk-4gcpx4pm.js → chunk-fvg6symh.js} +2 -2
  127. package/dist/{chunk-1q30wk9x.js → chunk-g5dzh9rr.js} +3 -3
  128. package/dist/{chunk-6475gsta.js → chunk-g975kjdm.js} +2 -2
  129. package/dist/{chunk-xwf411kf.js → chunk-gb16cwpw.js} +2 -2
  130. package/dist/{chunk-axw1yqxz.js → chunk-gg37cyfd.js} +2 -2
  131. package/dist/{chunk-8jnfvgvk.js → chunk-ghv4vcae.js} +2 -2
  132. package/dist/{chunk-f9kdk0q4.js → chunk-gns8a3x5.js} +1 -1
  133. package/dist/{chunk-j2hawnp9.js → chunk-gremnsj0.js} +2 -2
  134. package/dist/{chunk-rr74321a.js → chunk-gx8z1f8n.js} +2 -2
  135. package/dist/{chunk-fgfaarep.js → chunk-h2hpkawe.js} +2 -2
  136. package/dist/{chunk-fkzh31y0.js → chunk-h7zgbreq.js} +1 -1
  137. package/dist/{chunk-jk941nke.js → chunk-h9tjva8p.js} +2 -2
  138. package/dist/{chunk-svz0farj.js → chunk-ha7g0gt2.js} +2 -2
  139. package/dist/{chunk-mtx71g1t.js → chunk-hkqjfk9w.js} +5 -5
  140. package/dist/{chunk-beywepck.js → chunk-hp9vkfh5.js} +2 -2
  141. package/dist/chunk-hpf8s83c.js +89 -0
  142. package/dist/{chunk-63gvcckp.js → chunk-hw988ram.js} +1 -1
  143. package/dist/{chunk-8r57zwqg.js → chunk-hyaz95gc.js} +1 -1
  144. package/dist/{chunk-7qwp41y5.js → chunk-j2zxqzta.js} +2 -2
  145. package/dist/{chunk-f63cr8mx.js → chunk-j6rp3w59.js} +1 -1
  146. package/dist/{chunk-s0ecp1mv.js → chunk-jbrt06va.js} +3 -3
  147. package/dist/{chunk-qmfxytfb.js → chunk-jhpeb72r.js} +3 -3
  148. package/dist/{chunk-0qgd06td.js → chunk-jhvy8jay.js} +1263 -726
  149. package/dist/{chunk-6fp821jv.js → chunk-jswxzynj.js} +2 -2
  150. package/dist/{chunk-nxkbx5r2.js → chunk-jvmm6k16.js} +2 -2
  151. package/dist/{chunk-bygq5yqf.js → chunk-k1f35j55.js} +1 -1
  152. package/dist/{chunk-w9jyajx3.js → chunk-k2t9ey7z.js} +1 -1
  153. package/dist/{chunk-efs4bk5b.js → chunk-k7cvfw0f.js} +1 -1
  154. package/dist/{chunk-4pae2b1z.js → chunk-k7gzvk6n.js} +1 -1
  155. package/dist/{chunk-ekbesw9t.js → chunk-kgqe8gpb.js} +1 -1
  156. package/dist/{chunk-7zyf9nnf.js → chunk-kxvn3eae.js} +2 -2
  157. package/dist/{chunk-3v95p5js.js → chunk-m0kavf2m.js} +1 -1
  158. package/dist/{chunk-jcxxjkqx.js → chunk-m32ptxf3.js} +1 -1
  159. package/dist/{chunk-vm3fzfnj.js → chunk-m37eyydy.js} +1 -1
  160. package/dist/chunk-m4geb1s5.js +30 -0
  161. package/dist/{chunk-7g1dx0bn.js → chunk-m6eb1thj.js} +1 -1
  162. package/dist/{chunk-ptgtqv1a.js → chunk-m98d89xc.js} +1 -1
  163. package/dist/{chunk-aahx2gyb.js → chunk-mc0788ah.js} +2 -2
  164. package/dist/{chunk-yabr2qx9.js → chunk-mmydm40x.js} +1 -1
  165. package/dist/{chunk-bt7ramb0.js → chunk-mxcfz56p.js} +3 -3
  166. package/dist/{chunk-hpmvzsnv.js → chunk-n2n7k3he.js} +1 -1
  167. package/dist/{chunk-vnxy5dtp.js → chunk-n8n3gp71.js} +1 -1
  168. package/dist/{chunk-dy4ghe9p.js → chunk-nay3qsgw.js} +5 -5
  169. package/dist/{chunk-v00z8h0n.js → chunk-nbpvngb8.js} +1 -1
  170. package/dist/{chunk-xfhk2vrw.js → chunk-nfbxyvht.js} +2 -2
  171. package/dist/{chunk-jwzg2twy.js → chunk-nj1sgtss.js} +3 -3
  172. package/dist/{chunk-e970kv8r.js → chunk-nk53z990.js} +2 -2
  173. package/dist/{chunk-smzhep9f.js → chunk-nnhn7kjq.js} +1 -1
  174. package/dist/{chunk-e9v481he.js → chunk-nrdc4t48.js} +3 -3
  175. package/dist/{chunk-bhejvd5q.js → chunk-ny54gm5e.js} +2 -2
  176. package/dist/{chunk-4k2jzddw.js → chunk-p33nbc0k.js} +1 -1
  177. package/dist/{chunk-q606kj28.js → chunk-p56he2j7.js} +1 -1
  178. package/dist/{chunk-zpcxr2r4.js → chunk-pq89m919.js} +2 -2
  179. package/dist/{chunk-0xqqs9kw.js → chunk-ps59anjd.js} +2 -2
  180. package/dist/{chunk-z8n03ra5.js → chunk-ptdr68cq.js} +3 -3
  181. package/dist/{chunk-wq8jxf31.js → chunk-pv379mp6.js} +4 -4
  182. package/dist/{chunk-zc60zhz7.js → chunk-q1fgpxfk.js} +1 -1
  183. package/dist/{chunk-2pzvxbq3.js → chunk-qff5s98n.js} +3 -3
  184. package/dist/{chunk-1hq2k0fs.js → chunk-qgwshegs.js} +3 -3
  185. package/dist/{chunk-m4wfy6n3.js → chunk-qnf643p0.js} +3 -3
  186. package/dist/{chunk-fpj82hex.js → chunk-qrjxx1x9.js} +2 -2
  187. package/dist/{chunk-tzred534.js → chunk-qzxz33rc.js} +1 -1
  188. package/dist/{chunk-1akz4hf3.js → chunk-r0g0gwv6.js} +1 -1
  189. package/dist/{chunk-zp3wrbve.js → chunk-r6bwsyxy.js} +2 -2
  190. package/dist/{chunk-vrs3371x.js → chunk-rgdesh1z.js} +4 -4
  191. package/dist/{chunk-n5ea9nv1.js → chunk-rpsf1cph.js} +4 -4
  192. package/dist/{chunk-5zyc28sc.js → chunk-rs5xh8wa.js} +3 -3
  193. package/dist/{chunk-14mh00z3.js → chunk-rxjxb4vy.js} +4 -4
  194. package/dist/{chunk-xgp1eyhr.js → chunk-rzd306rr.js} +4 -4
  195. package/dist/{chunk-kzar67tq.js → chunk-s2f3zzbb.js} +1 -1
  196. package/dist/{chunk-4e879g03.js → chunk-s3r5g3md.js} +2 -2
  197. package/dist/{chunk-r4jzz4f2.js → chunk-sp4g23m0.js} +1 -1
  198. package/dist/{chunk-dq6se94p.js → chunk-sqz2901w.js} +2 -2
  199. package/dist/{chunk-3ptcdy6g.js → chunk-sty5mqva.js} +2 -2
  200. package/dist/{chunk-53cmv2aj.js → chunk-t06g497x.js} +1 -1
  201. package/dist/{chunk-mcdqy5gt.js → chunk-t18hedpv.js} +2 -2
  202. package/dist/{chunk-e50068hn.js → chunk-t1zv81zn.js} +2 -2
  203. package/dist/{chunk-wkg0rssg.js → chunk-t36xxpry.js} +1 -1
  204. package/dist/{chunk-1xncv9gb.js → chunk-t3p4dn1p.js} +1 -1
  205. package/dist/{chunk-8q0xpeh4.js → chunk-t4y934a5.js} +1 -1
  206. package/dist/{chunk-vg2j5044.js → chunk-t5e0s8q6.js} +1 -1
  207. package/dist/{chunk-p6kw19sx.js → chunk-t6w8vcvf.js} +8 -8
  208. package/dist/{chunk-zte6pw69.js → chunk-tjn53x34.js} +1 -1
  209. package/dist/{chunk-h51gnkz8.js → chunk-tqrn8kq8.js} +2 -2
  210. package/dist/{chunk-cy1xv5nz.js → chunk-trwye0d6.js} +2 -2
  211. package/dist/{chunk-b3b2tvkg.js → chunk-tsvrzz9w.js} +1 -1
  212. package/dist/{chunk-wpa484a6.js → chunk-tw8f1ew4.js} +2 -2
  213. package/dist/{chunk-rtb0ejf0.js → chunk-v2bbs7s8.js} +1 -1
  214. package/dist/{chunk-v24aqtkt.js → chunk-v2wx2fz4.js} +2 -2
  215. package/dist/{chunk-0gwqtywa.js → chunk-v9kxtms1.js} +3 -3
  216. package/dist/{chunk-5h7xxnr7.js → chunk-vazxcmjt.js} +1 -1
  217. package/dist/{chunk-khgrv6k6.js → chunk-vjsnyvt7.js} +1 -1
  218. package/dist/{chunk-5fg2ns3n.js → chunk-vkay3k3s.js} +1 -1
  219. package/dist/{chunk-agy4dzea.js → chunk-vneyvqxe.js} +1 -1
  220. package/dist/{chunk-1sxpyjph.js → chunk-vq9yw85z.js} +4 -4
  221. package/dist/{chunk-5w279fsn.js → chunk-vqgw4xab.js} +5 -5
  222. package/dist/{chunk-5s6r4g8w.js → chunk-vqkfgdt6.js} +1 -1
  223. package/dist/{chunk-4c2sqyrp.js → chunk-vr1taabg.js} +1 -1
  224. package/dist/{chunk-nw8zvj83.js → chunk-vrreeywg.js} +1 -1
  225. package/dist/{chunk-48yhjpfs.js → chunk-vxazk4y0.js} +2 -2
  226. package/dist/{chunk-hxctrrkh.js → chunk-wrvxzfdb.js} +1 -1
  227. package/dist/{chunk-h0g7qkya.js → chunk-wtf2qczs.js} +1 -1
  228. package/dist/{chunk-xvgp05yg.js → chunk-wvap51y9.js} +1 -1
  229. package/dist/{chunk-gtebjkkz.js → chunk-wzgnj3s7.js} +5 -5
  230. package/dist/{chunk-hxg0pkj9.js → chunk-x0212x2e.js} +1 -1
  231. package/dist/{chunk-qv3b2jvc.js → chunk-x0p3g392.js} +2 -2
  232. package/dist/{chunk-1sqv5axv.js → chunk-x4rwh3pv.js} +1 -1
  233. package/dist/{chunk-8bxfp671.js → chunk-x805mg9x.js} +2 -2
  234. package/dist/{chunk-qky9999p.js → chunk-x8ftt0wm.js} +1 -1
  235. package/dist/{chunk-zdt8xxzy.js → chunk-x9qph1g4.js} +1 -1
  236. package/dist/{chunk-k01gpm23.js → chunk-xg439a2k.js} +1 -1
  237. package/dist/{chunk-2ye8evra.js → chunk-xk5f09gs.js} +1 -1
  238. package/dist/{chunk-ynkpdpn0.js → chunk-xw5992sc.js} +1 -1
  239. package/dist/{chunk-3b6ws9hk.js → chunk-xywttk96.js} +2 -2
  240. package/dist/{chunk-f28xnx55.js → chunk-y18e8eaz.js} +2 -2
  241. package/dist/{chunk-46tg5t7g.js → chunk-y2dn791x.js} +4 -4
  242. package/dist/{chunk-esrypw6g.js → chunk-ya4v4p8k.js} +2 -2
  243. package/dist/{chunk-kz9np152.js → chunk-ybs1waxw.js} +1 -1
  244. package/dist/{chunk-474fgeht.js → chunk-yeht7bxz.js} +2 -2
  245. package/dist/{chunk-4e1eq1t5.js → chunk-z0z9p92d.js} +3 -3
  246. package/dist/{chunk-5myr07fp.js → chunk-z15pn5a5.js} +2 -2
  247. package/dist/{chunk-p5x18ckg.js → chunk-zdp3bb9e.js} +1 -1
  248. package/dist/{chunk-kv1akmf5.js → chunk-zdpm4kf4.js} +2 -2
  249. package/dist/{chunk-ray29hdb.js → chunk-zk8enn91.js} +2 -2
  250. package/dist/{chunk-r7mfpkbb.js → chunk-zmygyj8h.js} +4 -4
  251. package/dist/{chunk-m7n2f6nf.js → chunk-zrgacdwr.js} +1 -1
  252. package/dist/{chunk-cvg5366s.js → chunk-zthc8ajd.js} +1 -1
  253. package/dist/{chunk-3g8p9apn.js → chunk-zyxzn7xf.js} +1 -1
  254. package/dist/components/ActionsMenu.d.ts +21 -0
  255. package/dist/components/AppShell.d.ts +16 -4
  256. package/dist/components/ConfirmationDialog.d.ts +3 -2
  257. package/dist/components/Container.d.ts +13 -0
  258. package/dist/components/ContextMenu.d.ts +3 -16
  259. package/dist/components/DropdownMenu.d.ts +4 -23
  260. package/dist/components/FormDialog.d.ts +23 -0
  261. package/dist/components/Grid.d.ts +27 -0
  262. package/dist/components/Heading.d.ts +21 -0
  263. package/dist/components/InlineEdit.d.ts +4 -2
  264. package/dist/components/MenuParts.d.ts +24 -0
  265. package/dist/components/MenuPopup.d.ts +6 -0
  266. package/dist/components/Menubar.d.ts +4 -6
  267. package/dist/components/ScrollArea.d.ts +3 -1
  268. package/dist/components/Stack.d.ts +22 -0
  269. package/dist/components/Table.d.ts +2 -1
  270. package/dist/components/Text.d.ts +25 -0
  271. package/dist/components/WeatherForecast.d.ts +19 -0
  272. package/dist/components/WeatherSummary.d.ts +32 -0
  273. package/dist/components/analytics/AnalyticsLink.d.ts +4 -3
  274. package/dist/components/assistant-ui/elements/AgentCard.js +3 -3
  275. package/dist/components/assistant-ui/elements/AgentHandoff.js +2 -2
  276. package/dist/components/assistant-ui/elements/AgentPlan.js +3 -3
  277. package/dist/components/assistant-ui/elements/AgentStatus.js +2 -2
  278. package/dist/components/assistant-ui/elements/ApprovalCard.js +3 -3
  279. package/dist/components/assistant-ui/elements/ArtifactCard.js +4 -4
  280. package/dist/components/assistant-ui/elements/AudioPlayer.js +3 -3
  281. package/dist/components/assistant-ui/elements/BackgroundInbox.js +4 -4
  282. package/dist/components/assistant-ui/elements/CanvasSplit.d.ts +9 -2
  283. package/dist/components/assistant-ui/elements/CanvasSplit.js +3 -3
  284. package/dist/components/assistant-ui/elements/Chart.js +4 -4
  285. package/dist/components/assistant-ui/elements/ChatPanel.js +6 -6
  286. package/dist/components/assistant-ui/elements/CheckpointHistory.js +3 -3
  287. package/dist/components/assistant-ui/elements/Citation.js +5 -5
  288. package/dist/components/assistant-ui/elements/CodeDiff.js +3 -3
  289. package/dist/components/assistant-ui/elements/CodeRunner.js +3 -3
  290. package/dist/components/assistant-ui/elements/CommandPalette.js +9 -9
  291. package/dist/components/assistant-ui/elements/ComparisonCard.js +2 -2
  292. package/dist/components/assistant-ui/elements/Composer.js +2 -2
  293. package/dist/components/assistant-ui/elements/ComposerActions.js +2 -2
  294. package/dist/components/assistant-ui/elements/ComposerAttachButton.js +3 -3
  295. package/dist/components/assistant-ui/elements/ComposerAttachmentChip.js +4 -4
  296. package/dist/components/assistant-ui/elements/ComposerAttachments.js +6 -6
  297. package/dist/components/assistant-ui/elements/ComposerBar.js +6 -6
  298. package/dist/components/assistant-ui/elements/ComposerCommandItem.js +5 -5
  299. package/dist/components/assistant-ui/elements/ComposerContext.js +5 -5
  300. package/dist/components/assistant-ui/elements/ComposerInput.js +6 -6
  301. package/dist/components/assistant-ui/elements/ComposerMenu.js +2 -2
  302. package/dist/components/assistant-ui/elements/ComposerMenuItem.js +4 -4
  303. package/dist/components/assistant-ui/elements/ComposerModelItem.js +5 -5
  304. package/dist/components/assistant-ui/elements/ComposerModelTrigger.js +3 -3
  305. package/dist/components/assistant-ui/elements/ComposerPersonItem.js +5 -5
  306. package/dist/components/assistant-ui/elements/ComposerSend.js +3 -3
  307. package/dist/components/assistant-ui/elements/ComposerToolbar.js +6 -6
  308. package/dist/components/assistant-ui/elements/ComposerVoice.js +3 -3
  309. package/dist/components/assistant-ui/elements/ComposerVoiceButton.js +3 -3
  310. package/dist/components/assistant-ui/elements/ComputerUse.js +2 -2
  311. package/dist/components/assistant-ui/elements/ConfidenceMarker.js +2 -2
  312. package/dist/components/assistant-ui/elements/ConnectionState.js +3 -3
  313. package/dist/components/assistant-ui/elements/ContextBreakdown.js +2 -2
  314. package/dist/components/assistant-ui/elements/ContextDisplay.js +9 -9
  315. package/dist/components/assistant-ui/elements/ContextDisplayBar.js +6 -6
  316. package/dist/components/assistant-ui/elements/ContextDisplayContent.js +3 -3
  317. package/dist/components/assistant-ui/elements/ContextDisplayRing.js +6 -6
  318. package/dist/components/assistant-ui/elements/ContextDisplayRoot.js +3 -3
  319. package/dist/components/assistant-ui/elements/ContextDisplayText.js +6 -6
  320. package/dist/components/assistant-ui/elements/ContextDisplayTrigger.js +3 -3
  321. package/dist/components/assistant-ui/elements/ConversationMap.js +3 -3
  322. package/dist/components/assistant-ui/elements/ConversationSearch.js +6 -6
  323. package/dist/components/assistant-ui/elements/CostMeter.js +2 -2
  324. package/dist/components/assistant-ui/elements/DataTable.js +7 -7
  325. package/dist/components/assistant-ui/elements/DaySeparator.js +2 -2
  326. package/dist/components/assistant-ui/elements/Diagram.js +3 -3
  327. package/dist/components/assistant-ui/elements/DiffViewer.js +13 -13
  328. package/dist/components/assistant-ui/elements/DiffViewerContent.js +2 -2
  329. package/dist/components/assistant-ui/elements/DiffViewerFile.js +2 -2
  330. package/dist/components/assistant-ui/elements/DiffViewerFileBadge.js +3 -3
  331. package/dist/components/assistant-ui/elements/DiffViewerHeader.js +6 -6
  332. package/dist/components/assistant-ui/elements/DiffViewerLine.js +3 -3
  333. package/dist/components/assistant-ui/elements/DiffViewerSplitLine.js +3 -3
  334. package/dist/components/assistant-ui/elements/DiffViewerStats.js +3 -3
  335. package/dist/components/assistant-ui/elements/DirectiveText.js +3 -3
  336. package/dist/components/assistant-ui/elements/DocumentReference.js +3 -3
  337. package/dist/components/assistant-ui/elements/DotMatrix.js +2 -2
  338. package/dist/components/assistant-ui/elements/DraftRestore.js +3 -3
  339. package/dist/components/assistant-ui/elements/EditMessage.js +8 -8
  340. package/dist/components/assistant-ui/elements/ElicitationForm.js +10 -10
  341. package/dist/components/assistant-ui/elements/EmptyState.js +3 -3
  342. package/dist/components/assistant-ui/elements/EmptyStateComposer.js +6 -6
  343. package/dist/components/assistant-ui/elements/EmptyStateGreeting.js +2 -2
  344. package/dist/components/assistant-ui/elements/EmptyStateSuggestion.js +3 -3
  345. package/dist/components/assistant-ui/elements/EmptyStateSuggestions.js +2 -2
  346. package/dist/components/assistant-ui/elements/ErrorState.js +4 -4
  347. package/dist/components/assistant-ui/elements/EveAskQuestion.js +5 -5
  348. package/dist/components/assistant-ui/elements/FeedbackDialog.js +9 -9
  349. package/dist/components/assistant-ui/elements/File.js +6 -6
  350. package/dist/components/assistant-ui/elements/FileTree.js +3 -3
  351. package/dist/components/assistant-ui/elements/FlowGraph.js +3 -3
  352. package/dist/components/assistant-ui/elements/GenerationLoader.js +3 -3
  353. package/dist/components/assistant-ui/elements/GenerativeUi.js +9 -8
  354. package/dist/components/assistant-ui/elements/GeoMap.d.ts +7 -2
  355. package/dist/components/assistant-ui/elements/GeoMap.js +4 -3
  356. package/dist/components/assistant-ui/elements/GuardrailNotice.js +4 -4
  357. package/dist/components/assistant-ui/elements/Image.js +5 -5
  358. package/dist/components/assistant-ui/elements/ImageGallery.js +5 -5
  359. package/dist/components/assistant-ui/elements/ImageGeneration.js +4 -4
  360. package/dist/components/assistant-ui/elements/InlineCitation.js +2 -2
  361. package/dist/components/assistant-ui/elements/JobProgress.js +4 -4
  362. package/dist/components/assistant-ui/elements/LauncherBubble.js +4 -4
  363. package/dist/components/assistant-ui/elements/LinkPreview.js +3 -3
  364. package/dist/components/assistant-ui/elements/MapAnswer.js +3 -3
  365. package/dist/components/assistant-ui/elements/MarkdownText.js +5 -5
  366. package/dist/components/assistant-ui/elements/MathBlock.js +2 -2
  367. package/dist/components/assistant-ui/elements/McpServerPanel.js +5 -5
  368. package/dist/components/assistant-ui/elements/MemoryChips.js +3 -3
  369. package/dist/components/assistant-ui/elements/MermaidDiagram.js +6 -6
  370. package/dist/components/assistant-ui/elements/MermaidZoom.js +4 -4
  371. package/dist/components/assistant-ui/elements/MessageActions.js +4 -4
  372. package/dist/components/assistant-ui/elements/MessageAttachments.js +3 -3
  373. package/dist/components/assistant-ui/elements/MessageBranches.js +3 -3
  374. package/dist/components/assistant-ui/elements/MessagePair.js +3 -3
  375. package/dist/components/assistant-ui/elements/MessageQueue.js +3 -3
  376. package/dist/components/assistant-ui/elements/MessageTiming.js +2 -2
  377. package/dist/components/assistant-ui/elements/MobileComposer.js +6 -6
  378. package/dist/components/assistant-ui/elements/ModelPicker.js +8 -8
  379. package/dist/components/assistant-ui/elements/ModelSelector.js +17 -17
  380. package/dist/components/assistant-ui/elements/ModelSelectorContent.js +14 -14
  381. package/dist/components/assistant-ui/elements/ModelSelectorEmpty.js +8 -8
  382. package/dist/components/assistant-ui/elements/ModelSelectorFocusAnchor.js +8 -8
  383. package/dist/components/assistant-ui/elements/ModelSelectorGroup.js +8 -8
  384. package/dist/components/assistant-ui/elements/ModelSelectorItem.js +8 -8
  385. package/dist/components/assistant-ui/elements/ModelSelectorList.js +10 -10
  386. package/dist/components/assistant-ui/elements/ModelSelectorRoot.js +3 -3
  387. package/dist/components/assistant-ui/elements/ModelSelectorSearch.js +8 -8
  388. package/dist/components/assistant-ui/elements/ModelSelectorSeparator.js +8 -8
  389. package/dist/components/assistant-ui/elements/ModelSelectorTrigger.js +3 -3
  390. package/dist/components/assistant-ui/elements/NumberRoll.js +2 -2
  391. package/dist/components/assistant-ui/elements/NumberTicker.js +2 -2
  392. package/dist/components/assistant-ui/elements/Onboarding.js +3 -3
  393. package/dist/components/assistant-ui/elements/OptionList.js +6 -6
  394. package/dist/components/assistant-ui/elements/OptionText.js +2 -2
  395. package/dist/components/assistant-ui/elements/PermissionGrant.js +3 -3
  396. package/dist/components/assistant-ui/elements/PromptLibrary.js +6 -6
  397. package/dist/components/assistant-ui/elements/QuestionFlow.js +7 -7
  398. package/dist/components/assistant-ui/elements/QuotaBanner.js +3 -3
  399. package/dist/components/assistant-ui/elements/QuoteReply.js +3 -3
  400. package/dist/components/assistant-ui/elements/ReadAloud.js +4 -4
  401. package/dist/components/assistant-ui/elements/ReasoningContent.js +3 -3
  402. package/dist/components/assistant-ui/elements/ReasoningEffort.js +4 -4
  403. package/dist/components/assistant-ui/elements/ReasoningFade.js +2 -2
  404. package/dist/components/assistant-ui/elements/ReasoningPanel.js +4 -4
  405. package/dist/components/assistant-ui/elements/ReasoningRoot.js +2 -2
  406. package/dist/components/assistant-ui/elements/ReasoningText.js +2 -2
  407. package/dist/components/assistant-ui/elements/ReasoningTrigger.js +2 -2
  408. package/dist/components/assistant-ui/elements/RecommendationCard.d.ts +15 -7
  409. package/dist/components/assistant-ui/elements/RecommendationCard.js +3 -3
  410. package/dist/components/assistant-ui/elements/RegenerateMenu.js +4 -4
  411. package/dist/components/assistant-ui/elements/ResearchReport.js +2 -2
  412. package/dist/components/assistant-ui/elements/RetrievalChunks.js +3 -3
  413. package/dist/components/assistant-ui/elements/ReviewableDiff.js +3 -3
  414. package/dist/components/assistant-ui/elements/RunActivity.js +2 -2
  415. package/dist/components/assistant-ui/elements/ScheduleCard.js +3 -3
  416. package/dist/components/assistant-ui/elements/ScoreBreakdown.js +3 -3
  417. package/dist/components/assistant-ui/elements/ScrollAnchor.js +2 -2
  418. package/dist/components/assistant-ui/elements/SettingsPanel.js +6 -6
  419. package/dist/components/assistant-ui/elements/SharedConversation.js +3 -3
  420. package/dist/components/assistant-ui/elements/ShikiHighlighter.js +2 -2
  421. package/dist/components/assistant-ui/elements/ShimmerLabel.js +2 -2
  422. package/dist/components/assistant-ui/elements/Sources.js +3 -3
  423. package/dist/components/assistant-ui/elements/SpeakerIdentity.js +2 -2
  424. package/dist/components/assistant-ui/elements/SpecSheet.js +2 -2
  425. package/dist/components/assistant-ui/elements/StoppedRun.js +3 -3
  426. package/dist/components/assistant-ui/elements/StreamingText.js +2 -2
  427. package/dist/components/assistant-ui/elements/SubagentList.js +3 -3
  428. package/dist/components/assistant-ui/elements/Suggestions.js +3 -3
  429. package/dist/components/assistant-ui/elements/SwapLabel.js +2 -2
  430. package/dist/components/assistant-ui/elements/TaskCard.js +4 -4
  431. package/dist/components/assistant-ui/elements/TaskStateIcon.js +2 -2
  432. package/dist/components/assistant-ui/elements/TerminalBlock.js +3 -3
  433. package/dist/components/assistant-ui/elements/ThinkingIndicator.js +3 -3
  434. package/dist/components/assistant-ui/elements/ThreadList.js +3 -3
  435. package/dist/components/assistant-ui/elements/ThreadSearch.js +6 -6
  436. package/dist/components/assistant-ui/elements/Timeline.d.ts +20 -11
  437. package/dist/components/assistant-ui/elements/Timeline.js +2 -2
  438. package/dist/components/assistant-ui/elements/TodoList.js +3 -3
  439. package/dist/components/assistant-ui/elements/ToolCall.js +4 -4
  440. package/dist/components/assistant-ui/elements/ToolError.js +3 -3
  441. package/dist/components/assistant-ui/elements/ToolGroup.js +3 -3
  442. package/dist/components/assistant-ui/elements/ToolTimeline.js +4 -4
  443. package/dist/components/assistant-ui/elements/TooltipIconButton.js +3 -3
  444. package/dist/components/assistant-ui/elements/TraceWaterfall.js +2 -2
  445. package/dist/components/assistant-ui/elements/TypingIndicator.js +2 -2
  446. package/dist/components/assistant-ui/elements/VideoPlayer.js +2 -2
  447. package/dist/components/assistant-ui/elements/VoiceConversation.js +3 -3
  448. package/dist/components/assistant-ui/elements/VoiceOrb.js +2 -2
  449. package/dist/components/assistant-ui/elements/WebPreview.js +4 -4
  450. package/dist/components/assistant-ui/elements/WebSearch.js +3 -3
  451. package/dist/components/assistant-ui/eveAskQuestionToolkit.js +6 -6
  452. package/dist/components/assistant-ui/index.js +206 -205
  453. package/dist/components/assistant-ui/native/AgentStatus.js +3 -3
  454. package/dist/components/assistant-ui/native/AssistantModal.js +26 -26
  455. package/dist/components/assistant-ui/native/AssistantSidebar.js +25 -25
  456. package/dist/components/assistant-ui/native/AttachmentPreview.js +6 -6
  457. package/dist/components/assistant-ui/native/ComposerTriggerPopover.js +2 -2
  458. package/dist/components/assistant-ui/native/ContextDisplay.js +11 -11
  459. package/dist/components/assistant-ui/native/ContextDisplayBar.js +8 -8
  460. package/dist/components/assistant-ui/native/ContextDisplayRing.js +8 -8
  461. package/dist/components/assistant-ui/native/ContextDisplayRoot.js +5 -5
  462. package/dist/components/assistant-ui/native/ContextDisplayRuntimeRoot.js +4 -4
  463. package/dist/components/assistant-ui/native/ContextDisplayText.js +8 -8
  464. package/dist/components/assistant-ui/native/ConversationMapAui.js +4 -4
  465. package/dist/components/assistant-ui/native/DirectiveText.js +4 -4
  466. package/dist/components/assistant-ui/native/McpConfigDialog.js +9 -9
  467. package/dist/components/assistant-ui/native/MermaidDiagram.js +7 -7
  468. package/dist/components/assistant-ui/native/MessageTiming.js +3 -3
  469. package/dist/components/assistant-ui/native/ModelSelector.js +19 -19
  470. package/dist/components/assistant-ui/native/Reasoning.js +11 -11
  471. package/dist/components/assistant-ui/native/Sources.js +4 -4
  472. package/dist/components/assistant-ui/native/SyntaxHighlighter.js +3 -3
  473. package/dist/components/assistant-ui/native/TaskCard.js +10 -10
  474. package/dist/components/assistant-ui/native/TaskGroup.js +11 -11
  475. package/dist/components/assistant-ui/native/TaskTray.js +5 -5
  476. package/dist/components/assistant-ui/native/Thread.js +23 -23
  477. package/dist/components/assistant-ui/native/ThreadList.js +5 -5
  478. package/dist/components/assistant-ui/native/ThreadListSidebar.js +9 -9
  479. package/dist/components/assistant-ui/native/ToolFallbackRoot.js +4 -4
  480. package/dist/components/assistant-ui/native/ToolGroup.js +2 -2
  481. package/dist/components/assistant-ui/native/VoiceConnectButton.js +3 -3
  482. package/dist/components/assistant-ui/native/VoiceControl.js +8 -8
  483. package/dist/components/assistant-ui/native/VoiceConversation.js +4 -4
  484. package/dist/components/assistant-ui/native/VoiceDisconnectButton.js +4 -4
  485. package/dist/components/assistant-ui/native/VoiceMuteButton.js +4 -4
  486. package/dist/components/assistant-ui/native/VoiceOrb.js +3 -3
  487. package/dist/components/assistant-ui/native/VoiceStatusDot.js +2 -2
  488. package/dist/components/assistant-ui/native/index.js +86 -86
  489. package/dist/components/calendar/index.js +4 -4
  490. package/dist/components/carousel/index.js +3 -3
  491. package/dist/components/chart/index.js +2 -2
  492. package/dist/components/color-picker/index.js +1 -1
  493. package/dist/components/command/index.js +7 -7
  494. package/dist/components/data-grid/index.js +16 -14
  495. package/dist/components/editor/index.js +3 -3
  496. package/dist/components/event-calendar/index.js +8 -8
  497. package/dist/components/file-upload/index.js +2 -2
  498. package/dist/components/gantt/index.js +6 -6
  499. package/dist/components/image-crop/index.js +1 -1
  500. package/dist/components/input-otp/EmailCodeAuthForm.d.ts +21 -0
  501. package/dist/components/input-otp/index.d.ts +2 -0
  502. package/dist/components/input-otp/index.js +264 -1
  503. package/dist/components/json-render/catalog.d.ts +2 -2
  504. package/dist/components/json-render/index.js +51 -50
  505. package/dist/components/message-scroller/index.js +2 -2
  506. package/dist/components/persian-calendar/index.js +3 -3
  507. package/dist/components/questionnaire/index.js +2 -2
  508. package/dist/components/resizable/index.js +3 -3
  509. package/dist/components/sonner/index.js +2 -2
  510. package/dist/components/tree/index.js +2 -2
  511. package/dist/components/virtual-data-grid/index.js +7 -7
  512. package/dist/components/virtual-table/index.js +3 -3
  513. package/dist/hooks/useLinkAnalyticsCallback.d.ts +10 -0
  514. package/dist/index.d.ts +21 -1
  515. package/dist/index.js +141 -111
  516. package/dist/layout/constants.d.ts +14 -0
  517. package/dist/layout/responsiveClassNames.d.ts +3 -0
  518. package/dist/layout/types.d.ts +28 -0
  519. package/dist/menu/types.d.ts +3 -0
  520. package/dist/prototype.js +1 -1
  521. package/dist/theme.css +5 -0
  522. package/dist/typography/types.d.ts +2 -0
  523. package/llms/components/actions/ButtonLink.md +22 -0
  524. package/llms/components/assistant-ui/elements/conversations/CanvasSplit.md +38 -0
  525. package/llms/components/assistant-ui/elements/data-visualization/GeoMap.md +57 -0
  526. package/llms/components/assistant-ui/elements/data-visualization/RecommendationCard.md +41 -0
  527. package/llms/components/assistant-ui/elements/data-visualization/Timeline.md +76 -0
  528. package/llms/components/data-display/Heading.md +78 -0
  529. package/llms/components/data-display/Text.md +94 -0
  530. package/llms/components/data-display/WeatherForecast.md +76 -0
  531. package/llms/components/data-display/WeatherSummary.md +103 -0
  532. package/llms/components/forms/EmailCodeAuthForm.md +94 -0
  533. package/llms/components/forms/InlineEdit.md +34 -1
  534. package/llms/components/layout/AppShell.md +35 -1
  535. package/llms/components/layout/Container.md +97 -0
  536. package/llms/components/layout/Grid.md +133 -0
  537. package/llms/components/layout/Stack.md +170 -0
  538. package/llms/components/navigation/ActionsMenu.md +143 -0
  539. package/llms/components/overlays/ConfirmationDialog.md +31 -1
  540. package/llms/components/overlays/FormDialog.md +102 -0
  541. package/llms/setup.md +72 -4
  542. package/llms.txt +12 -2
  543. package/package.json +1 -1
  544. package/templates/prototype/src/components/ScenarioContent.tsx +3 -2
  545. package/templates/prototype/src/prototypes/dashboard/components/Dashboard.tsx +3 -2
  546. package/dist/chunk-4710gn6d.js +0 -15
  547. package/dist/chunk-dg14mg3y.js +0 -56
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-7ny0vyek.js";
4
4
  import {
5
5
  cn2
6
- } from "./chunk-cp2m7y7v.js";
6
+ } from "./chunk-en44w1pn.js";
7
7
  import {
8
8
  DensityContext,
9
9
  useDensity
@@ -23,43 +23,60 @@ import {
23
23
  TooltipContent2,
24
24
  buttonVariants2,
25
25
  Button2
26
- } from "./chunk-38301e40.js";
26
+ } from "./chunk-bd09gygt.js";
27
27
  import {
28
+ MenuPortal,
29
+ MenuPopup,
30
+ MenuGroup2,
31
+ MenuLabel2,
32
+ MenuItem2,
33
+ MenuSub2,
34
+ MenuSubTrigger2,
35
+ MenuSubContent2,
36
+ MenuRadioGroup2,
37
+ MenuSeparator2,
38
+ MenuShortcut2,
28
39
  DropdownMenu2,
29
- DropdownMenuPortal2,
30
- DropdownMenuTrigger2,
31
- DropdownMenuContent2,
32
- DropdownMenuGroup2,
33
- DropdownMenuLabel2,
34
- DropdownMenuItem2,
35
- DropdownMenuSub2,
36
- DropdownMenuSubTrigger2,
37
- DropdownMenuSubContent2,
38
- DropdownMenuRadioGroup2,
39
- DropdownMenuSeparator2,
40
- DropdownMenuShortcut2
41
- } from "./chunk-8wc2z7te.js";
40
+ DropdownMenuTrigger2
41
+ } from "./chunk-10vjajh7.js";
42
+ import {
43
+ Alert2,
44
+ AlertTitle2,
45
+ AlertDescription2
46
+ } from "./chunk-x9qph1g4.js";
47
+ import {
48
+ Dialog2,
49
+ DialogClose2,
50
+ DialogContent2,
51
+ DialogHeader2,
52
+ DialogFooter2,
53
+ DialogTitle2,
54
+ DialogDescription2
55
+ } from "./chunk-4t23yhc0.js";
56
+ import {
57
+ ScrollArea2
58
+ } from "./chunk-f9sm5zpv.js";
42
59
  import {
43
60
  Skeleton2
44
- } from "./chunk-d70rcwk7.js";
61
+ } from "./chunk-1fzwfn11.js";
45
62
  import {
46
63
  Input2
47
- } from "./chunk-0fmrwsgp.js";
64
+ } from "./chunk-7vg045gd.js";
48
65
  import {
49
66
  Separator2
50
- } from "./chunk-rajgnfbr.js";
67
+ } from "./chunk-52aadmkc.js";
51
68
  import {
52
69
  FieldGroup2,
53
70
  Field2,
54
71
  FieldLabel2,
55
72
  FieldDescription2
56
- } from "./chunk-6jpz5geq.js";
73
+ } from "./chunk-9n0axzd5.js";
57
74
  import {
58
75
  Textarea2
59
- } from "./chunk-tq0pfv5h.js";
76
+ } from "./chunk-er6e5fj8.js";
60
77
  import {
61
78
  RadioGroup2
62
- } from "./chunk-ekbesw9t.js";
79
+ } from "./chunk-kgqe8gpb.js";
63
80
  import {
64
81
  Card2,
65
82
  CardHeader2,
@@ -67,7 +84,7 @@ import {
67
84
  CardDescription2,
68
85
  CardContent2,
69
86
  CardFooter2
70
- } from "./chunk-bygq5yqf.js";
87
+ } from "./chunk-k1f35j55.js";
71
88
  import {
72
89
  Combobox2,
73
90
  ComboboxValue2,
@@ -80,45 +97,40 @@ import {
80
97
  ComboboxChips2,
81
98
  ComboboxChip2,
82
99
  ComboboxChipsInput2,
83
- useComboboxAnchor2,
84
- ScrollArea2
85
- } from "./chunk-p1eqxz4v.js";
100
+ useComboboxAnchor2
101
+ } from "./chunk-31wptjv4.js";
86
102
  import {
87
103
  Badge2
88
- } from "./chunk-wjx6zf94.js";
104
+ } from "./chunk-9t530p75.js";
89
105
  import {
90
106
  Empty2,
91
107
  EmptyHeader2,
92
108
  EmptyTitle2,
93
109
  EmptyDescription2,
94
110
  EmptyContent2
95
- } from "./chunk-9de1htr5.js";
111
+ } from "./chunk-4e96tpw0.js";
96
112
  import {
97
113
  ThemeContext
98
114
  } from "./chunk-1j2hz3w9.js";
99
115
  import {
100
116
  useMediaQuery
101
117
  } from "./chunk-k99h6evz.js";
102
- import {
103
- Alert2,
104
- AlertTitle2,
105
- AlertDescription2
106
- } from "./chunk-zdt8xxzy.js";
107
118
  import {
108
119
  Avatar2,
109
120
  AvatarImage2,
110
121
  AvatarFallback2
111
- } from "./chunk-hyq4nwg2.js";
122
+ } from "./chunk-0hq6rg7w.js";
112
123
  import {
113
124
  Spinner2
114
- } from "./chunk-1xncv9gb.js";
125
+ } from "./chunk-t3p4dn1p.js";
115
126
  import {
116
127
  NativeSelect2,
117
128
  NativeSelectOption2
118
- } from "./chunk-r4jzz4f2.js";
129
+ } from "./chunk-sp4g23m0.js";
119
130
  import {
131
+ useLinkAnalyticsCallback,
120
132
  AnalyticsLink
121
- } from "./chunk-4710gn6d.js";
133
+ } from "./chunk-m4geb1s5.js";
122
134
  import {
123
135
  SidebarProvider2,
124
136
  Sidebar2,
@@ -131,7 +143,7 @@ import {
131
143
  SidebarMenu2,
132
144
  SidebarMenuItem2,
133
145
  SidebarMenuButton2
134
- } from "./chunk-c9ypcp4s.js";
146
+ } from "./chunk-1f6p05qh.js";
135
147
  import {
136
148
  AnalyticsButton
137
149
  } from "./chunk-tcefvfr8.js";
@@ -155,7 +167,7 @@ function ButtonLink2({
155
167
  children,
156
168
  ...props
157
169
  }) {
158
- const onClick = useAnalyticsCallback("ButtonLink", analytics, { name: "ui.activate" }, props.onClick);
170
+ const onClick = useLinkAnalyticsCallback("ButtonLink", analytics, props.onClick, render !== undefined);
159
171
  return useRender({
160
172
  defaultTagName: "a",
161
173
  props: mergeProps({
@@ -172,13 +184,235 @@ function ButtonLink2({
172
184
  }
173
185
  });
174
186
  }
187
+ // src/components/ActionsMenu.tsx
188
+ import { createContext, use } from "react";
189
+ import { EllipsisIcon } from "lucide-react";
190
+
191
+ // src/components/ContextMenu.tsx
192
+ import { useDirection } from "@base-ui/react/direction-provider";
193
+ import { ContextMenu as ContextMenuPrimitive } from "@base-ui/react/context-menu";
194
+ import { jsx as jsx2 } from "react/jsx-runtime";
195
+ function ContextMenu2({ analytics, ...props }) {
196
+ const trackedOnOpenChange = useAnalyticsCallback("ContextMenu", analytics, (open, _details) => ({ name: "ui.open-request", open }), props.onOpenChange);
197
+ return /* @__PURE__ */ jsx2(ContextMenuPrimitive.Root, {
198
+ "data-slot": "context-menu",
199
+ ...props,
200
+ onOpenChange: trackedOnOpenChange
201
+ });
202
+ }
203
+ function ContextMenuPortal2({ container, ref, children, ...props }) {
204
+ const resolvedContainer = usePortalContainer2(container);
205
+ const portal = usePortalNode(ref);
206
+ return /* @__PURE__ */ jsx2(ContextMenuPrimitive.Portal, {
207
+ "data-slot": "context-menu-portal",
208
+ container: resolvedContainer,
209
+ ref: portal.ref,
210
+ ...props,
211
+ children: /* @__PURE__ */ jsx2(PortalProvider2, {
212
+ container: portal.node,
213
+ children
214
+ })
215
+ });
216
+ }
217
+ function ContextMenuTrigger2({ density, className, ...props }) {
218
+ return /* @__PURE__ */ jsx2(ContextMenuPrimitive.Trigger, {
219
+ "data-density": density,
220
+ "data-slot": "context-menu-trigger",
221
+ className: (state) => cn2("select-none", typeof className === "function" ? className(state) : className),
222
+ ...props
223
+ });
224
+ }
225
+ function ContextMenuContent2({
226
+ density,
227
+ className,
228
+ align = "start",
229
+ alignOffset = 4,
230
+ side = "right",
231
+ sideOffset = 0,
232
+ ...props
233
+ }) {
234
+ const resolvedDensity = useDensity(density);
235
+ const direction = useDirection();
236
+ return /* @__PURE__ */ jsx2(ContextMenuPortal2, {
237
+ children: /* @__PURE__ */ jsx2(ContextMenuPrimitive.Positioner, {
238
+ dir: direction,
239
+ className: "isolate outline-none",
240
+ align,
241
+ alignOffset,
242
+ side,
243
+ sideOffset,
244
+ children: /* @__PURE__ */ jsx2(ContextMenuPrimitive.Popup, {
245
+ dir: direction,
246
+ "data-density": resolvedDensity,
247
+ "data-slot": "context-menu-content",
248
+ 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),
249
+ ...props
250
+ })
251
+ })
252
+ });
253
+ }
254
+
255
+ // src/components/ActionsMenu.tsx
256
+ import { jsx as jsx3, jsxs } from "react/jsx-runtime";
257
+ "use client";
258
+ var ActionsMenuContext = createContext(null);
259
+ function useActionsMenu() {
260
+ const context = use(ActionsMenuContext);
261
+ if (!context)
262
+ throw new Error("ActionsMenu parts require ActionsMenu.");
263
+ return context;
264
+ }
265
+ function ActionsMenu2({ children, contextTarget, ...props }) {
266
+ const content = children ?? /* @__PURE__ */ jsx3(ActionsMenuTrigger2, {});
267
+ return /* @__PURE__ */ jsx3(ActionsMenuContext, {
268
+ value: props,
269
+ children: /* @__PURE__ */ jsxs(ContextMenu2, {
270
+ disabled: props.disabled,
271
+ children: [
272
+ contextTarget ? /* @__PURE__ */ jsx3(ActionsMenuContextTarget2, {
273
+ render: contextTarget,
274
+ children: content
275
+ }) : content,
276
+ contextTarget && /* @__PURE__ */ jsx3(ActionsMenuContextContent2, {})
277
+ ]
278
+ })
279
+ });
280
+ }
281
+ function ActionsMenuTrigger2({ children, render, ...props }) {
282
+ const menu = useActionsMenu();
283
+ return /* @__PURE__ */ jsxs(DropdownMenu2, {
284
+ disabled: menu.disabled,
285
+ children: [
286
+ /* @__PURE__ */ jsx3(DropdownMenuTrigger2, {
287
+ "aria-label": menu.label,
288
+ disabled: menu.disabled,
289
+ ...props,
290
+ render: render ?? menu.trigger ?? /* @__PURE__ */ jsx3(Button2, {
291
+ variant: menu.variant ?? "ghost",
292
+ size: menu.size ?? "icon-xs"
293
+ }),
294
+ children: children ?? (menu.size === "sm" ? menu.label : /* @__PURE__ */ jsx3(EllipsisIcon, {}))
295
+ }),
296
+ /* @__PURE__ */ jsx3(MenuPopup, {
297
+ align: "end",
298
+ children: menu.items
299
+ })
300
+ ]
301
+ });
302
+ }
303
+ function ActionsMenuContextTarget2(props) {
304
+ return /* @__PURE__ */ jsx3(ContextMenuTrigger2, {
305
+ ...props
306
+ });
307
+ }
308
+ function ActionsMenuContextContent2() {
309
+ const menu = useActionsMenu();
310
+ return /* @__PURE__ */ jsx3(ContextMenuContent2, {
311
+ children: menu.items
312
+ });
313
+ }
314
+ // src/components/FormDialog.tsx
315
+ import { jsx as jsx4, jsxs as jsxs2, Fragment } from "react/jsx-runtime";
316
+ function FormDialog2({
317
+ open,
318
+ onOpenChange,
319
+ title,
320
+ description,
321
+ size,
322
+ density,
323
+ isBusy = false,
324
+ onSubmit,
325
+ submitLabel,
326
+ submitVariant,
327
+ submitDisabled = false,
328
+ primaryAction,
329
+ cancelLabel = "Cancel",
330
+ error,
331
+ children
332
+ }) {
333
+ const body = /* @__PURE__ */ jsxs2(Fragment, {
334
+ children: [
335
+ /* @__PURE__ */ jsxs2(ScrollArea2, {
336
+ density,
337
+ children: [
338
+ children,
339
+ error && /* @__PURE__ */ jsx4(Alert2, {
340
+ variant: "destructive",
341
+ density,
342
+ children: /* @__PURE__ */ jsx4(AlertDescription2, {
343
+ children: error
344
+ })
345
+ })
346
+ ]
347
+ }),
348
+ /* @__PURE__ */ jsxs2(DialogFooter2, {
349
+ density,
350
+ children: [
351
+ /* @__PURE__ */ jsx4(DialogClose2, {
352
+ render: /* @__PURE__ */ jsx4(Button2, {
353
+ variant: "outline",
354
+ density,
355
+ disabled: isBusy
356
+ }),
357
+ children: cancelLabel
358
+ }),
359
+ primaryAction ?? (submitLabel && /* @__PURE__ */ jsx4(Button2, {
360
+ type: "submit",
361
+ variant: submitVariant,
362
+ density,
363
+ disabled: isBusy || submitDisabled,
364
+ children: submitLabel
365
+ }))
366
+ ]
367
+ })
368
+ ]
369
+ });
370
+ return /* @__PURE__ */ jsx4(Dialog2, {
371
+ open,
372
+ onOpenChange: (next, details) => {
373
+ if (isBusy)
374
+ details.cancel();
375
+ else
376
+ onOpenChange(next);
377
+ },
378
+ children: /* @__PURE__ */ jsxs2(DialogContent2, {
379
+ "data-testid": "FormDialog",
380
+ size,
381
+ density,
382
+ showCloseButton: !isBusy,
383
+ children: [
384
+ /* @__PURE__ */ jsxs2(DialogHeader2, {
385
+ density,
386
+ children: [
387
+ /* @__PURE__ */ jsx4(DialogTitle2, {
388
+ children: title
389
+ }),
390
+ description && /* @__PURE__ */ jsx4(DialogDescription2, {
391
+ children: description
392
+ })
393
+ ]
394
+ }),
395
+ onSubmit ? /* @__PURE__ */ jsx4("form", {
396
+ className: "flex min-h-0 flex-col gap-panel",
397
+ onSubmit: (event) => {
398
+ if (isBusy)
399
+ event.preventDefault();
400
+ else
401
+ onSubmit(event);
402
+ },
403
+ children: body
404
+ }) : body
405
+ ]
406
+ })
407
+ });
408
+ }
175
409
  // src/components/Accordion.tsx
176
410
  import { Accordion as AccordionPrimitive } from "@base-ui/react/accordion";
177
411
  import { ChevronDownIcon, ChevronUpIcon } from "lucide-react";
178
- import { jsx as jsx2, jsxs } from "react/jsx-runtime";
412
+ import { jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
179
413
  function Accordion2({ analytics, density, className, ...props }) {
180
414
  const trackedOnValueChange = useAnalyticsCallback("Accordion", analytics, { name: "ui.change-request" }, props.onValueChange);
181
- return /* @__PURE__ */ jsx2(AccordionPrimitive.Root, {
415
+ return /* @__PURE__ */ jsx5(AccordionPrimitive.Root, {
182
416
  "data-density": density,
183
417
  "data-slot": "accordion",
184
418
  className: (state) => cn2("flex w-full flex-col", typeof className === "function" ? className(state) : className),
@@ -187,7 +421,7 @@ function Accordion2({ analytics, density, className, ...props }) {
187
421
  });
188
422
  }
189
423
  function AccordionItem2({ density, className, ...props }) {
190
- return /* @__PURE__ */ jsx2(AccordionPrimitive.Item, {
424
+ return /* @__PURE__ */ jsx5(AccordionPrimitive.Item, {
191
425
  "data-density": density,
192
426
  "data-slot": "accordion-item",
193
427
  className: (state) => cn2("not-last:border-b", typeof className === "function" ? className(state) : className),
@@ -195,20 +429,20 @@ function AccordionItem2({ density, className, ...props }) {
195
429
  });
196
430
  }
197
431
  function AccordionTrigger2({ density, className, children, ...props }) {
198
- return /* @__PURE__ */ jsx2(AccordionPrimitive.Header, {
432
+ return /* @__PURE__ */ jsx5(AccordionPrimitive.Header, {
199
433
  className: "flex",
200
- children: /* @__PURE__ */ jsxs(AccordionPrimitive.Trigger, {
434
+ children: /* @__PURE__ */ jsxs3(AccordionPrimitive.Trigger, {
201
435
  "data-density": density,
202
436
  "data-slot": "accordion-trigger",
203
437
  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),
204
438
  ...props,
205
439
  children: [
206
440
  children,
207
- /* @__PURE__ */ jsx2(ChevronDownIcon, {
441
+ /* @__PURE__ */ jsx5(ChevronDownIcon, {
208
442
  "data-slot": "accordion-trigger-icon",
209
443
  className: "pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden"
210
444
  }),
211
- /* @__PURE__ */ jsx2(ChevronUpIcon, {
445
+ /* @__PURE__ */ jsx5(ChevronUpIcon, {
212
446
  "data-slot": "accordion-trigger-icon",
213
447
  className: "pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline"
214
448
  })
@@ -217,33 +451,33 @@ function AccordionTrigger2({ density, className, children, ...props }) {
217
451
  });
218
452
  }
219
453
  function AccordionContent2({ density, className, children, ...props }) {
220
- return /* @__PURE__ */ jsx2(AccordionPrimitive.Panel, {
454
+ return /* @__PURE__ */ jsx5(AccordionPrimitive.Panel, {
221
455
  "data-density": density,
222
456
  "data-slot": "accordion-content",
223
457
  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),
224
458
  ...props,
225
- children: /* @__PURE__ */ jsx2("div", {
459
+ children: /* @__PURE__ */ jsx5("div", {
226
460
  className: "pt-0 pb-2.5 [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4",
227
461
  children
228
462
  })
229
463
  });
230
464
  }
231
465
  // src/components/EmptyState.tsx
232
- import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
466
+ import { jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
233
467
  function EmptyState3({ title, description, children }) {
234
- return /* @__PURE__ */ jsxs2(Empty2, {
468
+ return /* @__PURE__ */ jsxs4(Empty2, {
235
469
  children: [
236
- /* @__PURE__ */ jsxs2(EmptyHeader2, {
470
+ /* @__PURE__ */ jsxs4(EmptyHeader2, {
237
471
  children: [
238
- /* @__PURE__ */ jsx3(EmptyTitle2, {
472
+ /* @__PURE__ */ jsx6(EmptyTitle2, {
239
473
  children: title
240
474
  }),
241
- /* @__PURE__ */ jsx3(EmptyDescription2, {
475
+ /* @__PURE__ */ jsx6(EmptyDescription2, {
242
476
  children: description
243
477
  })
244
478
  ]
245
479
  }),
246
- children && /* @__PURE__ */ jsx3(EmptyContent2, {
480
+ children && /* @__PURE__ */ jsx6(EmptyContent2, {
247
481
  children
248
482
  })
249
483
  ]
@@ -251,31 +485,31 @@ function EmptyState3({ title, description, children }) {
251
485
  }
252
486
  // src/components/PageMessage.tsx
253
487
  import { useId } from "react";
254
- import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
488
+ import { jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
255
489
  function PageMessage2({ title, description, children }) {
256
490
  const titleId = useId();
257
491
  const descriptionId = useId();
258
- return /* @__PURE__ */ jsx4("main", {
492
+ return /* @__PURE__ */ jsx7("main", {
259
493
  "aria-labelledby": titleId,
260
494
  "aria-describedby": description == null ? undefined : descriptionId,
261
495
  className: "grid min-h-dvh w-full place-items-center bg-background text-foreground",
262
- children: /* @__PURE__ */ jsxs3(Empty2, {
496
+ children: /* @__PURE__ */ jsxs5(Empty2, {
263
497
  children: [
264
- /* @__PURE__ */ jsxs3(EmptyHeader2, {
498
+ /* @__PURE__ */ jsxs5(EmptyHeader2, {
265
499
  children: [
266
- /* @__PURE__ */ jsx4(EmptyTitle2, {
267
- children: /* @__PURE__ */ jsx4("h1", {
500
+ /* @__PURE__ */ jsx7(EmptyTitle2, {
501
+ children: /* @__PURE__ */ jsx7("h1", {
268
502
  id: titleId,
269
503
  children: title
270
504
  })
271
505
  }),
272
- description != null && /* @__PURE__ */ jsx4(EmptyDescription2, {
506
+ description != null && /* @__PURE__ */ jsx7(EmptyDescription2, {
273
507
  id: descriptionId,
274
508
  children: description
275
509
  })
276
510
  ]
277
511
  }),
278
- children != null && /* @__PURE__ */ jsx4(EmptyContent2, {
512
+ children != null && /* @__PURE__ */ jsx7(EmptyContent2, {
279
513
  children
280
514
  })
281
515
  ]
@@ -283,8 +517,8 @@ function PageMessage2({ title, description, children }) {
283
517
  });
284
518
  }
285
519
  // src/components/DataViewer.tsx
286
- import { Fragment } from "react";
287
- import { jsx as jsx5, jsxs as jsxs4, Fragment as Fragment2 } from "react/jsx-runtime";
520
+ import { Fragment as Fragment2 } from "react";
521
+ import { jsx as jsx8, jsxs as jsxs6, Fragment as Fragment3 } from "react/jsx-runtime";
288
522
  var ACRONYMS = new Map([
289
523
  ["api", "API"],
290
524
  ["http", "HTTP"],
@@ -307,7 +541,7 @@ function isNested(value) {
307
541
  return Array.isArray(value) || isRecord(value);
308
542
  }
309
543
  function Placeholder({ children }) {
310
- return /* @__PURE__ */ jsx5("span", {
544
+ return /* @__PURE__ */ jsx8("span", {
311
545
  className: "text-muted-foreground italic",
312
546
  children
313
547
  });
@@ -315,23 +549,23 @@ function Placeholder({ children }) {
315
549
  function DataValue({ value, formatLabel }) {
316
550
  if (Array.isArray(value)) {
317
551
  if (value.length === 0)
318
- return /* @__PURE__ */ jsx5(Placeholder, {
552
+ return /* @__PURE__ */ jsx8(Placeholder, {
319
553
  children: "None"
320
554
  });
321
- return value.some(isNested) ? /* @__PURE__ */ jsx5("ol", {
555
+ return value.some(isNested) ? /* @__PURE__ */ jsx8("ol", {
322
556
  className: "flex list-decimal flex-col gap-2 pl-5 marker:text-muted-foreground",
323
- children: value.map((item, index) => /* @__PURE__ */ jsx5("li", {
557
+ children: value.map((item, index) => /* @__PURE__ */ jsx8("li", {
324
558
  className: "min-w-0",
325
- children: /* @__PURE__ */ jsx5(DataValue, {
559
+ children: /* @__PURE__ */ jsx8(DataValue, {
326
560
  value: item,
327
561
  formatLabel
328
562
  })
329
563
  }, index))
330
- }) : /* @__PURE__ */ jsx5("ul", {
564
+ }) : /* @__PURE__ */ jsx8("ul", {
331
565
  className: "flex flex-wrap gap-x-3 gap-y-1",
332
- children: value.map((item, index) => /* @__PURE__ */ jsx5("li", {
566
+ children: value.map((item, index) => /* @__PURE__ */ jsx8("li", {
333
567
  className: "min-w-0 break-words",
334
- children: /* @__PURE__ */ jsx5(DataValue, {
568
+ children: /* @__PURE__ */ jsx8(DataValue, {
335
569
  value: item,
336
570
  formatLabel
337
571
  })
@@ -341,20 +575,20 @@ function DataValue({ value, formatLabel }) {
341
575
  if (isRecord(value)) {
342
576
  const entries = Object.entries(value);
343
577
  if (entries.length === 0)
344
- return /* @__PURE__ */ jsx5(Placeholder, {
578
+ return /* @__PURE__ */ jsx8(Placeholder, {
345
579
  children: "None"
346
580
  });
347
- return /* @__PURE__ */ jsx5("dl", {
581
+ return /* @__PURE__ */ jsx8("dl", {
348
582
  className: "grid grid-cols-[minmax(0,max-content)_minmax(0,1fr)] gap-x-4 gap-y-1",
349
- children: entries.map(([key, item]) => /* @__PURE__ */ jsxs4(Fragment, {
583
+ children: entries.map(([key, item]) => /* @__PURE__ */ jsxs6(Fragment2, {
350
584
  children: [
351
- /* @__PURE__ */ jsx5("dt", {
585
+ /* @__PURE__ */ jsx8("dt", {
352
586
  className: "min-w-0 break-words text-muted-foreground",
353
587
  children: formatLabel(key)
354
588
  }),
355
- /* @__PURE__ */ jsx5("dd", {
589
+ /* @__PURE__ */ jsx8("dd", {
356
590
  className: cn2("min-w-0 break-words", isRecord(item) && "border-l border-border pl-3"),
357
- children: /* @__PURE__ */ jsx5(DataValue, {
591
+ children: /* @__PURE__ */ jsx8(DataValue, {
358
592
  value: item,
359
593
  formatLabel
360
594
  })
@@ -364,18 +598,18 @@ function DataValue({ value, formatLabel }) {
364
598
  });
365
599
  }
366
600
  if (value === null || value === undefined)
367
- return /* @__PURE__ */ jsx5(Placeholder, {
601
+ return /* @__PURE__ */ jsx8(Placeholder, {
368
602
  children: "None"
369
603
  });
370
604
  if (typeof value === "boolean")
371
- return /* @__PURE__ */ jsx5(Fragment2, {
605
+ return /* @__PURE__ */ jsx8(Fragment3, {
372
606
  children: value ? "Yes" : "No"
373
607
  });
374
608
  if (value === "")
375
- return /* @__PURE__ */ jsx5(Placeholder, {
609
+ return /* @__PURE__ */ jsx8(Placeholder, {
376
610
  children: "Empty"
377
611
  });
378
- return /* @__PURE__ */ jsx5(Fragment2, {
612
+ return /* @__PURE__ */ jsx8(Fragment3, {
379
613
  children: String(value)
380
614
  });
381
615
  }
@@ -387,22 +621,22 @@ function DataViewer2({
387
621
  className,
388
622
  ...props
389
623
  }) {
390
- return /* @__PURE__ */ jsx5("section", {
624
+ return /* @__PURE__ */ jsx8("section", {
391
625
  "aria-label": label,
392
626
  "data-density": density,
393
627
  "data-slot": "data-viewer",
394
628
  className: cn2("min-w-0 text-sm", className),
395
629
  ...props,
396
- children: /* @__PURE__ */ jsx5(DataValue, {
630
+ children: /* @__PURE__ */ jsx8(DataValue, {
397
631
  value,
398
632
  formatLabel
399
633
  })
400
634
  });
401
635
  }
402
636
  // src/components/JsonViewer.tsx
403
- import { jsx as jsx6 } from "react/jsx-runtime";
637
+ import { jsx as jsx9 } from "react/jsx-runtime";
404
638
  function JsonViewer2({ value, label = "JSON", rows = 12 }) {
405
- return /* @__PURE__ */ jsx6(Textarea2, {
639
+ return /* @__PURE__ */ jsx9(Textarea2, {
406
640
  readOnly: true,
407
641
  rows,
408
642
  "aria-label": label,
@@ -411,22 +645,22 @@ function JsonViewer2({ value, label = "JSON", rows = 12 }) {
411
645
  }
412
646
  // src/components/AlertDialog.tsx
413
647
  import { AlertDialog as AlertDialogPrimitive } from "@base-ui/react/alert-dialog";
414
- import { useDirection } from "@base-ui/react/direction-provider";
415
- import { jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
648
+ import { useDirection as useDirection3 } from "@base-ui/react/direction-provider";
649
+ import { jsx as jsx10, jsxs as jsxs7 } from "react/jsx-runtime";
416
650
  "use client";
417
651
  function AlertDialog2({
418
652
  analytics,
419
653
  ...props
420
654
  }) {
421
655
  const trackedOnOpenChange = useAnalyticsCallback("AlertDialog", analytics, (open, _details) => ({ name: "ui.open-request", open }), props.onOpenChange);
422
- return /* @__PURE__ */ jsx7(AlertDialogPrimitive.Root, {
656
+ return /* @__PURE__ */ jsx10(AlertDialogPrimitive.Root, {
423
657
  "data-slot": "alert-dialog",
424
658
  ...props,
425
659
  onOpenChange: trackedOnOpenChange
426
660
  });
427
661
  }
428
662
  function AlertDialogTrigger2({ ...props }) {
429
- return /* @__PURE__ */ jsx7(AlertDialogPrimitive.Trigger, {
663
+ return /* @__PURE__ */ jsx10(AlertDialogPrimitive.Trigger, {
430
664
  "data-slot": "alert-dialog-trigger",
431
665
  ...props
432
666
  });
@@ -434,12 +668,12 @@ function AlertDialogTrigger2({ ...props }) {
434
668
  function AlertDialogPortal2({ container, ref, children, ...props }) {
435
669
  const resolvedContainer = usePortalContainer2(container);
436
670
  const portal = usePortalNode(ref);
437
- return /* @__PURE__ */ jsx7(AlertDialogPrimitive.Portal, {
671
+ return /* @__PURE__ */ jsx10(AlertDialogPrimitive.Portal, {
438
672
  "data-slot": "alert-dialog-portal",
439
673
  container: resolvedContainer,
440
674
  ref: portal.ref,
441
675
  ...props,
442
- children: /* @__PURE__ */ jsx7(PortalProvider2, {
676
+ children: /* @__PURE__ */ jsx10(PortalProvider2, {
443
677
  container: portal.node,
444
678
  children
445
679
  })
@@ -447,7 +681,7 @@ function AlertDialogPortal2({ container, ref, children, ...props }) {
447
681
  }
448
682
  function AlertDialogOverlay2({ density, className, ...props }) {
449
683
  const resolvedDensity = useDensity(density);
450
- return /* @__PURE__ */ jsx7(AlertDialogPrimitive.Backdrop, {
684
+ return /* @__PURE__ */ jsx10(AlertDialogPrimitive.Backdrop, {
451
685
  "data-density": resolvedDensity,
452
686
  "data-slot": "alert-dialog-overlay",
453
687
  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),
@@ -456,40 +690,40 @@ function AlertDialogOverlay2({ density, className, ...props }) {
456
690
  }
457
691
  function AlertDialogContent2({ density, className, size = "default", ...props }) {
458
692
  const resolvedDensity = useDensity(density);
459
- const direction = useDirection();
460
- return /* @__PURE__ */ jsxs5(AlertDialogPortal2, {
693
+ const direction = useDirection3();
694
+ return /* @__PURE__ */ jsxs7(AlertDialogPortal2, {
461
695
  children: [
462
- /* @__PURE__ */ jsx7(AlertDialogOverlay2, {}),
463
- /* @__PURE__ */ jsx7(AlertDialogPrimitive.Popup, {
696
+ /* @__PURE__ */ jsx10(AlertDialogOverlay2, {}),
697
+ /* @__PURE__ */ jsx10(AlertDialogPrimitive.Popup, {
464
698
  dir: direction,
465
699
  "data-density": resolvedDensity,
466
700
  "data-slot": "alert-dialog-content",
467
701
  "data-scroll": "none",
468
702
  "data-size": size,
469
- 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),
703
+ className: (state) => cn2("group/alert-dialog-content fixed top-1/2 left-1/2 flex min-h-0 max-h-[calc(100dvh-2rem)] w-full flex-col -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),
470
704
  ...props
471
705
  })
472
706
  ]
473
707
  });
474
708
  }
475
709
  function AlertDialogHeader2({ density, className, ...props }) {
476
- return /* @__PURE__ */ jsx7("div", {
710
+ return /* @__PURE__ */ jsx10("div", {
477
711
  "data-density": density,
478
712
  "data-slot": "alert-dialog-header",
479
- 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),
713
+ className: cn2("grid shrink-0 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),
480
714
  ...props
481
715
  });
482
716
  }
483
717
  function AlertDialogFooter2({ density, className, ...props }) {
484
- return /* @__PURE__ */ jsx7("div", {
718
+ return /* @__PURE__ */ jsx10("div", {
485
719
  "data-density": density,
486
720
  "data-slot": "alert-dialog-footer",
487
- 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),
721
+ className: cn2("-mx-panel -mb-panel flex shrink-0 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),
488
722
  ...props
489
723
  });
490
724
  }
491
725
  function AlertDialogMedia2({ density, className, ...props }) {
492
- return /* @__PURE__ */ jsx7("div", {
726
+ return /* @__PURE__ */ jsx10("div", {
493
727
  "data-density": density,
494
728
  "data-slot": "alert-dialog-media",
495
729
  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),
@@ -497,7 +731,7 @@ function AlertDialogMedia2({ density, className, ...props }) {
497
731
  });
498
732
  }
499
733
  function AlertDialogTitle2({ density, className, ...props }) {
500
- return /* @__PURE__ */ jsx7(AlertDialogPrimitive.Title, {
734
+ return /* @__PURE__ */ jsx10(AlertDialogPrimitive.Title, {
501
735
  "data-density": density,
502
736
  "data-slot": "alert-dialog-title",
503
737
  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),
@@ -505,7 +739,7 @@ function AlertDialogTitle2({ density, className, ...props }) {
505
739
  });
506
740
  }
507
741
  function AlertDialogDescription2({ density, className, ...props }) {
508
- return /* @__PURE__ */ jsx7(AlertDialogPrimitive.Description, {
742
+ return /* @__PURE__ */ jsx10(AlertDialogPrimitive.Description, {
509
743
  "data-density": density,
510
744
  "data-slot": "alert-dialog-description",
511
745
  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),
@@ -513,7 +747,7 @@ function AlertDialogDescription2({ density, className, ...props }) {
513
747
  });
514
748
  }
515
749
  function AlertDialogAction2({ density, className, ...props }) {
516
- return /* @__PURE__ */ jsx7(Button2, {
750
+ return /* @__PURE__ */ jsx10(Button2, {
517
751
  "data-density": density,
518
752
  "data-slot": "alert-dialog-action",
519
753
  className,
@@ -527,11 +761,11 @@ function AlertDialogCancel2({
527
761
  size = "default",
528
762
  ...props
529
763
  }) {
530
- return /* @__PURE__ */ jsx7(AlertDialogPrimitive.Close, {
764
+ return /* @__PURE__ */ jsx10(AlertDialogPrimitive.Close, {
531
765
  "data-density": density,
532
766
  "data-slot": "alert-dialog-cancel",
533
767
  className,
534
- render: /* @__PURE__ */ jsx7(Button2, {
768
+ render: /* @__PURE__ */ jsx10(Button2, {
535
769
  variant,
536
770
  size
537
771
  }),
@@ -540,9 +774,9 @@ function AlertDialogCancel2({
540
774
  }
541
775
  // src/components/Select.tsx
542
776
  import { Select as SelectPrimitive } from "@base-ui/react/select";
543
- import { useDirection as useDirection3 } from "@base-ui/react/direction-provider";
777
+ import { useDirection as useDirection4 } from "@base-ui/react/direction-provider";
544
778
  import { ChevronDownIcon as ChevronDownIcon2, CheckIcon, ChevronUpIcon as ChevronUpIcon2 } from "lucide-react";
545
- import { jsx as jsx8, jsxs as jsxs6 } from "react/jsx-runtime";
779
+ import { jsx as jsx11, jsxs as jsxs8 } from "react/jsx-runtime";
546
780
  "use client";
547
781
  function Select2({
548
782
  analytics,
@@ -550,14 +784,14 @@ function Select2({
550
784
  }) {
551
785
  const onValueChange = useAnalyticsCallback("Select", analytics, { name: "ui.change-request" }, props.onValueChange);
552
786
  const onOpenChange = useAnalyticsCallback("Select", analytics, (open, _details) => ({ name: "ui.open-request", open }), props.onOpenChange);
553
- return /* @__PURE__ */ jsx8(SelectPrimitive.Root, {
787
+ return /* @__PURE__ */ jsx11(SelectPrimitive.Root, {
554
788
  ...props,
555
789
  onValueChange,
556
790
  onOpenChange
557
791
  });
558
792
  }
559
793
  function SelectGroup2({ density, className, ...props }) {
560
- return /* @__PURE__ */ jsx8(SelectPrimitive.Group, {
794
+ return /* @__PURE__ */ jsx11(SelectPrimitive.Group, {
561
795
  "data-density": density,
562
796
  "data-slot": "select-group",
563
797
  className: (state) => cn2("scroll-my-1 p-1", typeof className === "function" ? className(state) : className),
@@ -565,7 +799,7 @@ function SelectGroup2({ density, className, ...props }) {
565
799
  });
566
800
  }
567
801
  function SelectValue2({ density, className, ...props }) {
568
- return /* @__PURE__ */ jsx8(SelectPrimitive.Value, {
802
+ return /* @__PURE__ */ jsx11(SelectPrimitive.Value, {
569
803
  "data-density": density,
570
804
  "data-slot": "select-value",
571
805
  className: (state) => cn2("flex flex-1 text-start", typeof className === "function" ? className(state) : className),
@@ -573,7 +807,7 @@ function SelectValue2({ density, className, ...props }) {
573
807
  });
574
808
  }
575
809
  function SelectTrigger2({ density, className, size = "default", children, ...props }) {
576
- return /* @__PURE__ */ jsxs6(SelectPrimitive.Trigger, {
810
+ return /* @__PURE__ */ jsxs8(SelectPrimitive.Trigger, {
577
811
  "data-density": density,
578
812
  "data-slot": "select-trigger",
579
813
  "data-size": size,
@@ -581,8 +815,8 @@ function SelectTrigger2({ density, className, size = "default", children, ...pro
581
815
  ...props,
582
816
  children: [
583
817
  children,
584
- /* @__PURE__ */ jsx8(SelectPrimitive.Icon, {
585
- render: /* @__PURE__ */ jsx8(ChevronDownIcon2, {
818
+ /* @__PURE__ */ jsx11(SelectPrimitive.Icon, {
819
+ render: /* @__PURE__ */ jsx11(ChevronDownIcon2, {
586
820
  className: "pointer-events-none size-4 text-muted-foreground"
587
821
  })
588
822
  })
@@ -601,22 +835,22 @@ function SelectContent2({
601
835
  ...props
602
836
  }) {
603
837
  const resolvedDensity = useDensity(density);
604
- const direction = useDirection3();
838
+ const direction = useDirection4();
605
839
  const container = usePortalContainer2();
606
840
  const portal = usePortalNode();
607
- return /* @__PURE__ */ jsx8(SelectPrimitive.Portal, {
841
+ return /* @__PURE__ */ jsx11(SelectPrimitive.Portal, {
608
842
  container,
609
843
  ref: portal.ref,
610
- children: /* @__PURE__ */ jsx8(PortalProvider2, {
844
+ children: /* @__PURE__ */ jsx11(PortalProvider2, {
611
845
  container: portal.node,
612
- children: /* @__PURE__ */ jsx8(SelectPrimitive.Positioner, {
846
+ children: /* @__PURE__ */ jsx11(SelectPrimitive.Positioner, {
613
847
  side,
614
848
  sideOffset,
615
849
  align,
616
850
  alignOffset,
617
851
  alignItemWithTrigger,
618
852
  className: "isolate ",
619
- children: /* @__PURE__ */ jsxs6(SelectPrimitive.Popup, {
853
+ children: /* @__PURE__ */ jsxs8(SelectPrimitive.Popup, {
620
854
  dir: direction,
621
855
  "data-density": resolvedDensity,
622
856
  "data-slot": "select-content",
@@ -624,11 +858,11 @@ function SelectContent2({
624
858
  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),
625
859
  ...props,
626
860
  children: [
627
- /* @__PURE__ */ jsx8(SelectScrollUpButton2, {}),
628
- /* @__PURE__ */ jsx8(SelectPrimitive.List, {
861
+ /* @__PURE__ */ jsx11(SelectScrollUpButton2, {}),
862
+ /* @__PURE__ */ jsx11(SelectPrimitive.List, {
629
863
  children
630
864
  }),
631
- /* @__PURE__ */ jsx8(SelectScrollDownButton2, {})
865
+ /* @__PURE__ */ jsx11(SelectScrollDownButton2, {})
632
866
  ]
633
867
  })
634
868
  })
@@ -636,7 +870,7 @@ function SelectContent2({
636
870
  });
637
871
  }
638
872
  function SelectLabel2({ density, className, ...props }) {
639
- return /* @__PURE__ */ jsx8(SelectPrimitive.GroupLabel, {
873
+ return /* @__PURE__ */ jsx11(SelectPrimitive.GroupLabel, {
640
874
  "data-density": density,
641
875
  "data-slot": "select-label",
642
876
  className: (state) => cn2("px-1.5 py-1 text-xs text-muted-foreground", typeof className === "function" ? className(state) : className),
@@ -644,21 +878,21 @@ function SelectLabel2({ density, className, ...props }) {
644
878
  });
645
879
  }
646
880
  function SelectItem2({ density, className, children, ...props }) {
647
- return /* @__PURE__ */ jsxs6(SelectPrimitive.Item, {
881
+ return /* @__PURE__ */ jsxs8(SelectPrimitive.Item, {
648
882
  "data-density": density,
649
883
  "data-slot": "select-item",
650
884
  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),
651
885
  ...props,
652
886
  children: [
653
- /* @__PURE__ */ jsx8(SelectPrimitive.ItemText, {
887
+ /* @__PURE__ */ jsx11(SelectPrimitive.ItemText, {
654
888
  className: "flex flex-1 shrink-0 gap-2 whitespace-nowrap",
655
889
  children
656
890
  }),
657
- /* @__PURE__ */ jsx8(SelectPrimitive.ItemIndicator, {
658
- render: /* @__PURE__ */ jsx8("span", {
891
+ /* @__PURE__ */ jsx11(SelectPrimitive.ItemIndicator, {
892
+ render: /* @__PURE__ */ jsx11("span", {
659
893
  className: "pointer-events-none absolute end-2 flex size-4 items-center justify-center"
660
894
  }),
661
- children: /* @__PURE__ */ jsx8(CheckIcon, {
895
+ children: /* @__PURE__ */ jsx11(CheckIcon, {
662
896
  className: "pointer-events-none"
663
897
  })
664
898
  })
@@ -666,7 +900,7 @@ function SelectItem2({ density, className, children, ...props }) {
666
900
  });
667
901
  }
668
902
  function SelectSeparator2({ density, className, ...props }) {
669
- return /* @__PURE__ */ jsx8(SelectPrimitive.Separator, {
903
+ return /* @__PURE__ */ jsx11(SelectPrimitive.Separator, {
670
904
  "data-density": density,
671
905
  "data-slot": "select-separator",
672
906
  className: (state) => cn2("pointer-events-none -mx-1 my-1 h-px bg-border", typeof className === "function" ? className(state) : className),
@@ -674,27 +908,27 @@ function SelectSeparator2({ density, className, ...props }) {
674
908
  });
675
909
  }
676
910
  function SelectScrollUpButton2({ density, className, ...props }) {
677
- return /* @__PURE__ */ jsx8(SelectPrimitive.ScrollUpArrow, {
911
+ return /* @__PURE__ */ jsx11(SelectPrimitive.ScrollUpArrow, {
678
912
  "data-density": density,
679
913
  "data-slot": "select-scroll-up-button",
680
914
  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),
681
915
  ...props,
682
- children: /* @__PURE__ */ jsx8(ChevronUpIcon2, {})
916
+ children: /* @__PURE__ */ jsx11(ChevronUpIcon2, {})
683
917
  });
684
918
  }
685
919
  function SelectScrollDownButton2({ density, className, ...props }) {
686
- return /* @__PURE__ */ jsx8(SelectPrimitive.ScrollDownArrow, {
920
+ return /* @__PURE__ */ jsx11(SelectPrimitive.ScrollDownArrow, {
687
921
  "data-density": density,
688
922
  "data-slot": "select-scroll-down-button",
689
923
  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),
690
924
  ...props,
691
- children: /* @__PURE__ */ jsx8(ChevronDownIcon2, {})
925
+ children: /* @__PURE__ */ jsx11(ChevronDownIcon2, {})
692
926
  });
693
927
  }
694
928
  // src/components/DensityProvider.tsx
695
929
  import { mergeProps as mergeProps2 } from "@base-ui/react/merge-props";
696
930
  import { useRender as useRender2 } from "@base-ui/react/use-render";
697
- import { jsx as jsx9 } from "react/jsx-runtime";
931
+ import { jsx as jsx12 } from "react/jsx-runtime";
698
932
  function DensityProvider2({
699
933
  density = "comfortable",
700
934
  className,
@@ -707,7 +941,7 @@ function DensityProvider2({
707
941
  render,
708
942
  state: { slot: "density-provider", density }
709
943
  });
710
- return /* @__PURE__ */ jsx9(DensityContext.Provider, {
944
+ return /* @__PURE__ */ jsx12(DensityContext.Provider, {
711
945
  value: density,
712
946
  children: element
713
947
  });
@@ -1020,7 +1254,7 @@ function ScrollGuard2({ ownerDocument }) {
1020
1254
  }
1021
1255
 
1022
1256
  // src/components/ThemeProvider.tsx
1023
- import { jsx as jsx10, jsxs as jsxs7 } from "react/jsx-runtime";
1257
+ import { jsx as jsx13, jsxs as jsxs9 } from "react/jsx-runtime";
1024
1258
  function StoredThemeProvider({
1025
1259
  children,
1026
1260
  defaultTheme = "system",
@@ -1031,7 +1265,7 @@ function StoredThemeProvider({
1031
1265
  defaultValue: defaultTheme,
1032
1266
  localStorageKey: storageKey
1033
1267
  });
1034
- return /* @__PURE__ */ jsx10(ThemePalette, {
1268
+ return /* @__PURE__ */ jsx13(ThemePalette, {
1035
1269
  theme: forcedTheme ?? ternaryDarkMode,
1036
1270
  resolvedTheme: forcedTheme ?? (isDarkMode ? "dark" : "light"),
1037
1271
  setTheme: setTernaryDarkMode,
@@ -1049,11 +1283,11 @@ function ThemePalette({
1049
1283
  document.documentElement.style.colorScheme = resolvedTheme;
1050
1284
  }, [resolvedTheme]);
1051
1285
  const value = useMemo(() => ({ theme, resolvedTheme, setTheme }), [theme, resolvedTheme, setTheme]);
1052
- return /* @__PURE__ */ jsxs7(ThemeContext.Provider, {
1286
+ return /* @__PURE__ */ jsxs9(ThemeContext.Provider, {
1053
1287
  value,
1054
1288
  children: [
1055
- /* @__PURE__ */ jsx10(ScrollGuard2, {}),
1056
- /* @__PURE__ */ jsx10(LayoutGuard2, {}),
1289
+ /* @__PURE__ */ jsx13(ScrollGuard2, {}),
1290
+ /* @__PURE__ */ jsx13(LayoutGuard2, {}),
1057
1291
  children
1058
1292
  ]
1059
1293
  });
@@ -1066,7 +1300,7 @@ function ControlledThemeProvider({
1066
1300
  const isDark = useMediaQuery("(prefers-color-scheme: dark)");
1067
1301
  const { theme, setTheme } = controlledTheme;
1068
1302
  const resolvedTheme = forcedTheme ?? (theme === "system" ? isDark ? "dark" : "light" : theme);
1069
- return /* @__PURE__ */ jsx10(ThemePalette, {
1303
+ return /* @__PURE__ */ jsx13(ThemePalette, {
1070
1304
  theme: forcedTheme ?? theme,
1071
1305
  resolvedTheme,
1072
1306
  setTheme,
@@ -1075,18 +1309,18 @@ function ControlledThemeProvider({
1075
1309
  }
1076
1310
  function ThemeProvider2(props) {
1077
1311
  if (props.controlledTheme)
1078
- return /* @__PURE__ */ jsx10(ControlledThemeProvider, {
1312
+ return /* @__PURE__ */ jsx13(ControlledThemeProvider, {
1079
1313
  ...props,
1080
1314
  controlledTheme: props.controlledTheme
1081
1315
  });
1082
- return /* @__PURE__ */ jsx10(StoredThemeProvider, {
1316
+ return /* @__PURE__ */ jsx13(StoredThemeProvider, {
1083
1317
  ...props
1084
1318
  });
1085
1319
  }
1086
1320
  // src/components/AspectRatio.tsx
1087
- import { jsx as jsx11 } from "react/jsx-runtime";
1321
+ import { jsx as jsx14 } from "react/jsx-runtime";
1088
1322
  function AspectRatio2({ ratio, className, style, ...props }) {
1089
- return /* @__PURE__ */ jsx11("div", {
1323
+ return /* @__PURE__ */ jsx14("div", {
1090
1324
  "data-slot": "aspect-ratio",
1091
1325
  className: cn2("relative", className),
1092
1326
  style: { aspectRatio: ratio, ...style },
@@ -1097,9 +1331,9 @@ function AspectRatio2({ ratio, className, style, ...props }) {
1097
1331
  import { ChevronRightIcon, MoreHorizontalIcon } from "lucide-react";
1098
1332
  import { mergeProps as mergeProps3 } from "@base-ui/react/merge-props";
1099
1333
  import { useRender as useRender3 } from "@base-ui/react/use-render";
1100
- import { jsx as jsx12, jsxs as jsxs8 } from "react/jsx-runtime";
1334
+ import { jsx as jsx15, jsxs as jsxs10 } from "react/jsx-runtime";
1101
1335
  function Breadcrumb2({ density, className, ...props }) {
1102
- return /* @__PURE__ */ jsx12("nav", {
1336
+ return /* @__PURE__ */ jsx15("nav", {
1103
1337
  "aria-label": "breadcrumb",
1104
1338
  "data-density": density,
1105
1339
  "data-slot": "breadcrumb",
@@ -1108,7 +1342,7 @@ function Breadcrumb2({ density, className, ...props }) {
1108
1342
  });
1109
1343
  }
1110
1344
  function BreadcrumbList2({ density, className, ...props }) {
1111
- return /* @__PURE__ */ jsx12("ol", {
1345
+ return /* @__PURE__ */ jsx15("ol", {
1112
1346
  "data-density": density,
1113
1347
  "data-slot": "breadcrumb-list",
1114
1348
  className: cn2("flex flex-wrap items-center gap-control-gap text-sm wrap-break-word text-muted-foreground", className),
@@ -1116,7 +1350,7 @@ function BreadcrumbList2({ density, className, ...props }) {
1116
1350
  });
1117
1351
  }
1118
1352
  function BreadcrumbItem2({ density, className, ...props }) {
1119
- return /* @__PURE__ */ jsx12("li", {
1353
+ return /* @__PURE__ */ jsx15("li", {
1120
1354
  "data-density": density,
1121
1355
  "data-slot": "breadcrumb-item",
1122
1356
  className: cn2("inline-flex items-center gap-1", className),
@@ -1124,7 +1358,7 @@ function BreadcrumbItem2({ density, className, ...props }) {
1124
1358
  });
1125
1359
  }
1126
1360
  function BreadcrumbLink2({ analytics, density, className, render, ...props }) {
1127
- const onClick = useAnalyticsCallback("BreadcrumbLink", analytics, { name: "ui.activate" }, props.onClick);
1361
+ const onClick = useLinkAnalyticsCallback("BreadcrumbLink", analytics, props.onClick, render !== undefined);
1128
1362
  return useRender3({
1129
1363
  defaultTagName: "a",
1130
1364
  props: mergeProps3({
@@ -1138,7 +1372,7 @@ function BreadcrumbLink2({ analytics, density, className, render, ...props }) {
1138
1372
  });
1139
1373
  }
1140
1374
  function BreadcrumbPage2({ density, className, ...props }) {
1141
- return /* @__PURE__ */ jsx12("span", {
1375
+ return /* @__PURE__ */ jsx15("span", {
1142
1376
  "data-density": density,
1143
1377
  "data-slot": "breadcrumb-page",
1144
1378
  role: "link",
@@ -1149,20 +1383,20 @@ function BreadcrumbPage2({ density, className, ...props }) {
1149
1383
  });
1150
1384
  }
1151
1385
  function BreadcrumbSeparator2({ density, children, className, ...props }) {
1152
- return /* @__PURE__ */ jsx12("li", {
1386
+ return /* @__PURE__ */ jsx15("li", {
1153
1387
  "data-density": density,
1154
1388
  "data-slot": "breadcrumb-separator",
1155
1389
  role: "presentation",
1156
1390
  "aria-hidden": "true",
1157
1391
  className: cn2("[&>svg]:size-3.5", className),
1158
1392
  ...props,
1159
- children: children ?? /* @__PURE__ */ jsx12(ChevronRightIcon, {
1393
+ children: children ?? /* @__PURE__ */ jsx15(ChevronRightIcon, {
1160
1394
  className: "rtl:rotate-180"
1161
1395
  })
1162
1396
  });
1163
1397
  }
1164
1398
  function BreadcrumbEllipsis2({ density, className, ...props }) {
1165
- return /* @__PURE__ */ jsxs8("span", {
1399
+ return /* @__PURE__ */ jsxs10("span", {
1166
1400
  "data-density": density,
1167
1401
  "data-slot": "breadcrumb-ellipsis",
1168
1402
  role: "presentation",
@@ -1170,8 +1404,8 @@ function BreadcrumbEllipsis2({ density, className, ...props }) {
1170
1404
  className: cn2("flex size-5 items-center justify-center [&>svg]:size-4", className),
1171
1405
  ...props,
1172
1406
  children: [
1173
- /* @__PURE__ */ jsx12(MoreHorizontalIcon, {}),
1174
- /* @__PURE__ */ jsx12("span", {
1407
+ /* @__PURE__ */ jsx15(MoreHorizontalIcon, {}),
1408
+ /* @__PURE__ */ jsx15("span", {
1175
1409
  className: "sr-only",
1176
1410
  children: "More"
1177
1411
  })
@@ -1182,7 +1416,7 @@ function BreadcrumbEllipsis2({ density, className, ...props }) {
1182
1416
  import { mergeProps as mergeProps4 } from "@base-ui/react/merge-props";
1183
1417
  import { useRender as useRender4 } from "@base-ui/react/use-render";
1184
1418
  import { cva } from "class-variance-authority";
1185
- import { jsx as jsx13 } from "react/jsx-runtime";
1419
+ import { jsx as jsx16 } from "react/jsx-runtime";
1186
1420
  var buttonGroupVariants2 = cva("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", {
1187
1421
  variants: {
1188
1422
  layout: {
@@ -1205,7 +1439,7 @@ function ButtonGroup2({
1205
1439
  layout = "content",
1206
1440
  ...props
1207
1441
  }) {
1208
- return /* @__PURE__ */ jsx13("div", {
1442
+ return /* @__PURE__ */ jsx16("div", {
1209
1443
  role: "group",
1210
1444
  "data-density": density,
1211
1445
  "data-slot": "button-group",
@@ -1233,7 +1467,7 @@ function ButtonGroupSeparator2({
1233
1467
  orientation = "vertical",
1234
1468
  ...props
1235
1469
  }) {
1236
- return /* @__PURE__ */ jsx13(Separator2, {
1470
+ return /* @__PURE__ */ jsx16(Separator2, {
1237
1471
  "data-density": density,
1238
1472
  "data-slot": "button-group-separator",
1239
1473
  orientation,
@@ -1245,9 +1479,9 @@ function ButtonGroupSeparator2({
1245
1479
  import { mergeProps as mergeProps5 } from "@base-ui/react/merge-props";
1246
1480
  import { useRender as useRender5 } from "@base-ui/react/use-render";
1247
1481
  import { cva as cva2 } from "class-variance-authority";
1248
- import { jsx as jsx14 } from "react/jsx-runtime";
1482
+ import { jsx as jsx17 } from "react/jsx-runtime";
1249
1483
  function ItemGroup2({ density, className, ...props }) {
1250
- return /* @__PURE__ */ jsx14("div", {
1484
+ return /* @__PURE__ */ jsx17("div", {
1251
1485
  role: "list",
1252
1486
  "data-density": density,
1253
1487
  "data-slot": "item-group",
@@ -1256,7 +1490,7 @@ function ItemGroup2({ density, className, ...props }) {
1256
1490
  });
1257
1491
  }
1258
1492
  function ItemSeparator2({ density, className, ...props }) {
1259
- return /* @__PURE__ */ jsx14(Separator2, {
1493
+ return /* @__PURE__ */ jsx17(Separator2, {
1260
1494
  "data-density": density,
1261
1495
  "data-slot": "item-separator",
1262
1496
  orientation: "horizontal",
@@ -1317,7 +1551,7 @@ var itemMediaVariants = cva2("flex shrink-0 items-center justify-center gap-2 gr
1317
1551
  }
1318
1552
  });
1319
1553
  function ItemMedia2({ density, className, variant = "default", ...props }) {
1320
- return /* @__PURE__ */ jsx14("div", {
1554
+ return /* @__PURE__ */ jsx17("div", {
1321
1555
  "data-density": density,
1322
1556
  "data-slot": "item-media",
1323
1557
  "data-variant": variant,
@@ -1326,7 +1560,7 @@ function ItemMedia2({ density, className, variant = "default", ...props }) {
1326
1560
  });
1327
1561
  }
1328
1562
  function ItemContent2({ density, className, ...props }) {
1329
- return /* @__PURE__ */ jsx14("div", {
1563
+ return /* @__PURE__ */ jsx17("div", {
1330
1564
  "data-density": density,
1331
1565
  "data-slot": "item-content",
1332
1566
  className: cn2("flex flex-1 flex-col gap-1 group-data-[size=xs]/item:gap-0 [&+[data-slot=item-content]]:flex-none", className),
@@ -1334,7 +1568,7 @@ function ItemContent2({ density, className, ...props }) {
1334
1568
  });
1335
1569
  }
1336
1570
  function ItemTitle2({ density, className, wrap = false, ...props }) {
1337
- return /* @__PURE__ */ jsx14("div", {
1571
+ return /* @__PURE__ */ jsx17("div", {
1338
1572
  "data-density": density,
1339
1573
  "data-slot": "item-title",
1340
1574
  className: cn2(!wrap && "line-clamp-1", "flex w-fit items-center gap-2 text-sm leading-snug font-medium underline-offset-4", wrap && "min-w-0 max-w-full wrap-anywhere", className),
@@ -1342,7 +1576,7 @@ function ItemTitle2({ density, className, wrap = false, ...props }) {
1342
1576
  });
1343
1577
  }
1344
1578
  function ItemDescription2({ density, className, ...props }) {
1345
- return /* @__PURE__ */ jsx14("p", {
1579
+ return /* @__PURE__ */ jsx17("p", {
1346
1580
  "data-density": density,
1347
1581
  "data-slot": "item-description",
1348
1582
  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),
@@ -1350,7 +1584,7 @@ function ItemDescription2({ density, className, ...props }) {
1350
1584
  });
1351
1585
  }
1352
1586
  function ItemActions2({ density, className, ...props }) {
1353
- return /* @__PURE__ */ jsx14("div", {
1587
+ return /* @__PURE__ */ jsx17("div", {
1354
1588
  "data-density": density,
1355
1589
  "data-slot": "item-actions",
1356
1590
  className: cn2("flex items-center gap-2", className),
@@ -1358,7 +1592,7 @@ function ItemActions2({ density, className, ...props }) {
1358
1592
  });
1359
1593
  }
1360
1594
  function ItemHeader2({ density, className, ...props }) {
1361
- return /* @__PURE__ */ jsx14("div", {
1595
+ return /* @__PURE__ */ jsx17("div", {
1362
1596
  "data-density": density,
1363
1597
  "data-slot": "item-header",
1364
1598
  className: cn2("flex basis-full items-center justify-between gap-2", className),
@@ -1366,7 +1600,7 @@ function ItemHeader2({ density, className, ...props }) {
1366
1600
  });
1367
1601
  }
1368
1602
  function ItemFooter2({ density, className, ...props }) {
1369
- return /* @__PURE__ */ jsx14("div", {
1603
+ return /* @__PURE__ */ jsx17("div", {
1370
1604
  "data-density": density,
1371
1605
  "data-slot": "item-footer",
1372
1606
  className: cn2("flex basis-full items-center justify-between gap-2", className),
@@ -1375,9 +1609,9 @@ function ItemFooter2({ density, className, ...props }) {
1375
1609
  }
1376
1610
  // src/components/Pagination.tsx
1377
1611
  import { ChevronLeftIcon, ChevronRightIcon as ChevronRightIcon2, MoreHorizontalIcon as MoreHorizontalIcon2 } from "lucide-react";
1378
- import { jsx as jsx15, jsxs as jsxs9 } from "react/jsx-runtime";
1612
+ import { jsx as jsx18, jsxs as jsxs11 } from "react/jsx-runtime";
1379
1613
  function Pagination2({ density, className, ...props }) {
1380
- return /* @__PURE__ */ jsx15("nav", {
1614
+ return /* @__PURE__ */ jsx18("nav", {
1381
1615
  role: "navigation",
1382
1616
  "aria-label": "pagination",
1383
1617
  "data-density": density,
@@ -1387,7 +1621,7 @@ function Pagination2({ density, className, ...props }) {
1387
1621
  });
1388
1622
  }
1389
1623
  function PaginationContent2({ density, className, ...props }) {
1390
- return /* @__PURE__ */ jsx15("ul", {
1624
+ return /* @__PURE__ */ jsx18("ul", {
1391
1625
  "data-density": density,
1392
1626
  "data-slot": "pagination-content",
1393
1627
  className: cn2("flex items-center gap-0.5", className),
@@ -1395,7 +1629,7 @@ function PaginationContent2({ density, className, ...props }) {
1395
1629
  });
1396
1630
  }
1397
1631
  function PaginationItem2({ ...props }) {
1398
- return /* @__PURE__ */ jsx15("li", {
1632
+ return /* @__PURE__ */ jsx18("li", {
1399
1633
  "data-slot": "pagination-item",
1400
1634
  ...props
1401
1635
  });
@@ -1408,7 +1642,7 @@ function PaginationLink2({
1408
1642
  size = "icon",
1409
1643
  ...props
1410
1644
  }) {
1411
- return /* @__PURE__ */ jsx15(AnalyticsLink, {
1645
+ return /* @__PURE__ */ jsx18(AnalyticsLink, {
1412
1646
  component: "PaginationLink",
1413
1647
  analytics,
1414
1648
  "data-density": density,
@@ -1425,18 +1659,18 @@ function PaginationPrevious2({
1425
1659
  text = "Previous",
1426
1660
  ...props
1427
1661
  }) {
1428
- return /* @__PURE__ */ jsxs9(PaginationLink2, {
1662
+ return /* @__PURE__ */ jsxs11(PaginationLink2, {
1429
1663
  density,
1430
1664
  "aria-label": "Go to previous page",
1431
1665
  size: "default",
1432
1666
  className: cn2("ps-1.5!", className),
1433
1667
  ...props,
1434
1668
  children: [
1435
- /* @__PURE__ */ jsx15(ChevronLeftIcon, {
1669
+ /* @__PURE__ */ jsx18(ChevronLeftIcon, {
1436
1670
  "data-icon": "inline-start",
1437
1671
  className: "rtl:rotate-180"
1438
1672
  }),
1439
- /* @__PURE__ */ jsx15("span", {
1673
+ /* @__PURE__ */ jsx18("span", {
1440
1674
  className: "hidden sm:block",
1441
1675
  children: text
1442
1676
  })
@@ -1444,18 +1678,18 @@ function PaginationPrevious2({
1444
1678
  });
1445
1679
  }
1446
1680
  function PaginationNext2({ density, className, text = "Next", ...props }) {
1447
- return /* @__PURE__ */ jsxs9(PaginationLink2, {
1681
+ return /* @__PURE__ */ jsxs11(PaginationLink2, {
1448
1682
  density,
1449
1683
  "aria-label": "Go to next page",
1450
1684
  size: "default",
1451
1685
  className: cn2("pe-1.5!", className),
1452
1686
  ...props,
1453
1687
  children: [
1454
- /* @__PURE__ */ jsx15("span", {
1688
+ /* @__PURE__ */ jsx18("span", {
1455
1689
  className: "hidden sm:block",
1456
1690
  children: text
1457
1691
  }),
1458
- /* @__PURE__ */ jsx15(ChevronRightIcon2, {
1692
+ /* @__PURE__ */ jsx18(ChevronRightIcon2, {
1459
1693
  "data-icon": "inline-end",
1460
1694
  className: "rtl:rotate-180"
1461
1695
  })
@@ -1463,15 +1697,15 @@ function PaginationNext2({ density, className, text = "Next", ...props }) {
1463
1697
  });
1464
1698
  }
1465
1699
  function PaginationEllipsis2({ density, className, ...props }) {
1466
- return /* @__PURE__ */ jsxs9("span", {
1700
+ return /* @__PURE__ */ jsxs11("span", {
1467
1701
  "aria-hidden": true,
1468
1702
  "data-density": density,
1469
1703
  "data-slot": "pagination-ellipsis",
1470
1704
  className: cn2("flex size-control items-center justify-center [&_svg:not([class*='size-'])]:size-4", className),
1471
1705
  ...props,
1472
1706
  children: [
1473
- /* @__PURE__ */ jsx15(MoreHorizontalIcon2, {}),
1474
- /* @__PURE__ */ jsx15("span", {
1707
+ /* @__PURE__ */ jsx18(MoreHorizontalIcon2, {}),
1708
+ /* @__PURE__ */ jsx18("span", {
1475
1709
  className: "sr-only",
1476
1710
  children: "More pages"
1477
1711
  })
@@ -1482,8 +1716,8 @@ function PaginationEllipsis2({ density, className, ...props }) {
1482
1716
  import { useMemo as useMemo2 } from "react";
1483
1717
 
1484
1718
  // src/drawer/DrawerContext.ts
1485
- import { createContext } from "react";
1486
- var DrawerContext = createContext(null);
1719
+ import { createContext as createContext2 } from "react";
1720
+ var DrawerContext = createContext2(null);
1487
1721
 
1488
1722
  // src/hooks/useDrawer.ts
1489
1723
  import { useContext } from "react";
@@ -1497,7 +1731,7 @@ function useDrawer() {
1497
1731
 
1498
1732
  // src/components/Drawer.tsx
1499
1733
  import { Drawer as DrawerPrimitive } from "@base-ui/react/drawer";
1500
- import { jsx as jsx16, jsxs as jsxs10 } from "react/jsx-runtime";
1734
+ import { jsx as jsx19, jsxs as jsxs12 } from "react/jsx-runtime";
1501
1735
  function Drawer2({
1502
1736
  analytics,
1503
1737
  modal = true,
@@ -1509,9 +1743,9 @@ function Drawer2({
1509
1743
  const trackedOnOpenChange = useAnalyticsCallback("Drawer", analytics, (open, _details) => ({ name: "ui.open-request", open }), props.onOpenChange);
1510
1744
  const hasSnapPoints = snapPoints != null && snapPoints.length > 0;
1511
1745
  const contextValue = useMemo2(() => ({ hasSnapPoints, modal, showSwipeHandle, swipeDirection }), [hasSnapPoints, modal, showSwipeHandle, swipeDirection]);
1512
- return /* @__PURE__ */ jsx16(DrawerContext.Provider, {
1746
+ return /* @__PURE__ */ jsx19(DrawerContext.Provider, {
1513
1747
  value: contextValue,
1514
- children: /* @__PURE__ */ jsx16(DrawerPrimitive.Root, {
1748
+ children: /* @__PURE__ */ jsx19(DrawerPrimitive.Root, {
1515
1749
  "data-slot": "drawer",
1516
1750
  modal,
1517
1751
  snapPoints,
@@ -1522,7 +1756,7 @@ function Drawer2({
1522
1756
  });
1523
1757
  }
1524
1758
  function DrawerTrigger2({ ...props }) {
1525
- return /* @__PURE__ */ jsx16(DrawerPrimitive.Trigger, {
1759
+ return /* @__PURE__ */ jsx19(DrawerPrimitive.Trigger, {
1526
1760
  "data-slot": "drawer-trigger",
1527
1761
  ...props
1528
1762
  });
@@ -1530,26 +1764,26 @@ function DrawerTrigger2({ ...props }) {
1530
1764
  function DrawerPortal2({ container, ref, children, ...props }) {
1531
1765
  const resolvedContainer = usePortalContainer2(container);
1532
1766
  const portal = usePortalNode(ref);
1533
- return /* @__PURE__ */ jsx16(DrawerPrimitive.Portal, {
1767
+ return /* @__PURE__ */ jsx19(DrawerPrimitive.Portal, {
1534
1768
  "data-slot": "drawer-portal",
1535
1769
  container: resolvedContainer,
1536
1770
  ref: portal.ref,
1537
1771
  ...props,
1538
- children: /* @__PURE__ */ jsx16(PortalProvider2, {
1772
+ children: /* @__PURE__ */ jsx19(PortalProvider2, {
1539
1773
  container: portal.node,
1540
1774
  children
1541
1775
  })
1542
1776
  });
1543
1777
  }
1544
1778
  function DrawerClose2({ ...props }) {
1545
- return /* @__PURE__ */ jsx16(DrawerPrimitive.Close, {
1779
+ return /* @__PURE__ */ jsx19(DrawerPrimitive.Close, {
1546
1780
  "data-slot": "drawer-close",
1547
1781
  ...props
1548
1782
  });
1549
1783
  }
1550
1784
  function DrawerOverlay2({ density, className, ...props }) {
1551
1785
  const resolvedDensity = useDensity(density);
1552
- return /* @__PURE__ */ jsx16(DrawerPrimitive.Backdrop, {
1786
+ return /* @__PURE__ */ jsx19(DrawerPrimitive.Backdrop, {
1553
1787
  "data-density": resolvedDensity,
1554
1788
  "data-slot": "drawer-overlay",
1555
1789
  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),
@@ -1557,7 +1791,7 @@ function DrawerOverlay2({ density, className, ...props }) {
1557
1791
  });
1558
1792
  }
1559
1793
  function DrawerSwipeHandle2({ density, className, ...props }) {
1560
- return /* @__PURE__ */ jsx16("div", {
1794
+ return /* @__PURE__ */ jsx19("div", {
1561
1795
  "data-density": density,
1562
1796
  "data-slot": "drawer-swipe-handle",
1563
1797
  "aria-hidden": "true",
@@ -1570,18 +1804,18 @@ function DrawerContent2({ density, className, children, ...props }) {
1570
1804
  const direction = useDirection2();
1571
1805
  const { hasSnapPoints, modal, showSwipeHandle, swipeDirection } = useDrawer();
1572
1806
  const swipeAxis = swipeDirection === "down" || swipeDirection === "up" ? "y" : "x";
1573
- return /* @__PURE__ */ jsxs10(DrawerPortal2, {
1807
+ return /* @__PURE__ */ jsxs12(DrawerPortal2, {
1574
1808
  "data-slot": "drawer-portal",
1575
1809
  children: [
1576
- modal === true && /* @__PURE__ */ jsx16(DrawerOverlay2, {
1810
+ modal === true && /* @__PURE__ */ jsx19(DrawerOverlay2, {
1577
1811
  "data-snap-points": hasSnapPoints ? "" : undefined
1578
1812
  }),
1579
- /* @__PURE__ */ jsx16(DrawerPrimitive.Viewport, {
1813
+ /* @__PURE__ */ jsx19(DrawerPrimitive.Viewport, {
1580
1814
  dir: direction,
1581
1815
  "data-slot": "drawer-viewport",
1582
1816
  "data-modal": modal,
1583
1817
  className: "pointer-events-none fixed inset-0 select-none data-[modal=true]:pointer-events-auto",
1584
- children: /* @__PURE__ */ jsxs10(DrawerPrimitive.Popup, {
1818
+ children: /* @__PURE__ */ jsxs12(DrawerPrimitive.Popup, {
1585
1819
  "data-density": resolvedDensity,
1586
1820
  "data-slot": "drawer-popup",
1587
1821
  "data-scroll": "none",
@@ -1590,8 +1824,8 @@ function DrawerContent2({ density, className, children, ...props }) {
1590
1824
  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),
1591
1825
  ...props,
1592
1826
  children: [
1593
- showSwipeHandle && /* @__PURE__ */ jsx16(DrawerSwipeHandle2, {}),
1594
- /* @__PURE__ */ jsx16(DrawerPrimitive.Content, {
1827
+ showSwipeHandle && /* @__PURE__ */ jsx19(DrawerSwipeHandle2, {}),
1828
+ /* @__PURE__ */ jsx19(DrawerPrimitive.Content, {
1595
1829
  "data-slot": "drawer-content",
1596
1830
  "data-scroll": "none",
1597
1831
  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",
@@ -1604,7 +1838,7 @@ function DrawerContent2({ density, className, children, ...props }) {
1604
1838
  });
1605
1839
  }
1606
1840
  function DrawerHeader2({ density, className, ...props }) {
1607
- return /* @__PURE__ */ jsx16("div", {
1841
+ return /* @__PURE__ */ jsx19("div", {
1608
1842
  "data-density": density,
1609
1843
  "data-slot": "drawer-header",
1610
1844
  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),
@@ -1612,7 +1846,7 @@ function DrawerHeader2({ density, className, ...props }) {
1612
1846
  });
1613
1847
  }
1614
1848
  function DrawerFooter2({ density, className, ...props }) {
1615
- return /* @__PURE__ */ jsx16("div", {
1849
+ return /* @__PURE__ */ jsx19("div", {
1616
1850
  "data-density": density,
1617
1851
  "data-slot": "drawer-footer",
1618
1852
  className: cn2("mt-auto flex shrink-0 flex-col gap-2 p-panel pt-0", className),
@@ -1620,7 +1854,7 @@ function DrawerFooter2({ density, className, ...props }) {
1620
1854
  });
1621
1855
  }
1622
1856
  function DrawerTitle2({ density, className, ...props }) {
1623
- return /* @__PURE__ */ jsx16(DrawerPrimitive.Title, {
1857
+ return /* @__PURE__ */ jsx19(DrawerPrimitive.Title, {
1624
1858
  "data-density": density,
1625
1859
  "data-slot": "drawer-title",
1626
1860
  className: (state) => cn2(" text-base font-medium text-foreground", typeof className === "function" ? className(state) : className),
@@ -1628,226 +1862,20 @@ function DrawerTitle2({ density, className, ...props }) {
1628
1862
  });
1629
1863
  }
1630
1864
  function DrawerDescription2({ density, className, ...props }) {
1631
- return /* @__PURE__ */ jsx16(DrawerPrimitive.Description, {
1865
+ return /* @__PURE__ */ jsx19(DrawerPrimitive.Description, {
1632
1866
  "data-density": density,
1633
1867
  "data-slot": "drawer-description",
1634
1868
  className: (state) => cn2("text-sm text-balance text-muted-foreground", typeof className === "function" ? className(state) : className),
1635
1869
  ...props
1636
1870
  });
1637
1871
  }
1638
- // src/components/ContextMenu.tsx
1639
- import { ChevronRightIcon as ChevronRightIcon3, CheckIcon as CheckIcon2 } from "lucide-react";
1640
- import { useDirection as useDirection4 } from "@base-ui/react/direction-provider";
1641
- import { ContextMenu as ContextMenuPrimitive } from "@base-ui/react/context-menu";
1642
- import { jsx as jsx17, jsxs as jsxs11 } from "react/jsx-runtime";
1643
- function ContextMenu2({ analytics, ...props }) {
1644
- const trackedOnOpenChange = useAnalyticsCallback("ContextMenu", analytics, (open, _details) => ({ name: "ui.open-request", open }), props.onOpenChange);
1645
- return /* @__PURE__ */ jsx17(ContextMenuPrimitive.Root, {
1646
- "data-slot": "context-menu",
1647
- ...props,
1648
- onOpenChange: trackedOnOpenChange
1649
- });
1650
- }
1651
- function ContextMenuPortal2({ container, ref, children, ...props }) {
1652
- const resolvedContainer = usePortalContainer2(container);
1653
- const portal = usePortalNode(ref);
1654
- return /* @__PURE__ */ jsx17(ContextMenuPrimitive.Portal, {
1655
- "data-slot": "context-menu-portal",
1656
- container: resolvedContainer,
1657
- ref: portal.ref,
1658
- ...props,
1659
- children: /* @__PURE__ */ jsx17(PortalProvider2, {
1660
- container: portal.node,
1661
- children
1662
- })
1663
- });
1664
- }
1665
- function ContextMenuTrigger2({ density, className, ...props }) {
1666
- return /* @__PURE__ */ jsx17(ContextMenuPrimitive.Trigger, {
1667
- "data-density": density,
1668
- "data-slot": "context-menu-trigger",
1669
- className: (state) => cn2("select-none", typeof className === "function" ? className(state) : className),
1670
- ...props
1671
- });
1672
- }
1673
- function ContextMenuContent2({
1674
- density,
1675
- className,
1676
- align = "start",
1677
- alignOffset = 4,
1678
- side = "right",
1679
- sideOffset = 0,
1680
- ...props
1681
- }) {
1682
- const resolvedDensity = useDensity(density);
1683
- const direction = useDirection4();
1684
- return /* @__PURE__ */ jsx17(ContextMenuPortal2, {
1685
- children: /* @__PURE__ */ jsx17(ContextMenuPrimitive.Positioner, {
1686
- dir: direction,
1687
- className: "isolate outline-none",
1688
- align,
1689
- alignOffset,
1690
- side,
1691
- sideOffset,
1692
- children: /* @__PURE__ */ jsx17(ContextMenuPrimitive.Popup, {
1693
- dir: direction,
1694
- "data-density": resolvedDensity,
1695
- "data-slot": "context-menu-content",
1696
- 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),
1697
- ...props
1698
- })
1699
- })
1700
- });
1701
- }
1702
- function ContextMenuGroup2({ ...props }) {
1703
- return /* @__PURE__ */ jsx17(ContextMenuPrimitive.Group, {
1704
- "data-slot": "context-menu-group",
1705
- ...props
1706
- });
1707
- }
1708
- function ContextMenuLabel2({ density, className, inset, ...props }) {
1709
- return /* @__PURE__ */ jsx17(ContextMenuPrimitive.GroupLabel, {
1710
- "data-density": density,
1711
- "data-slot": "context-menu-label",
1712
- "data-inset": inset,
1713
- 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),
1714
- ...props
1715
- });
1716
- }
1717
- function ContextMenuItem2({
1718
- analytics,
1719
- density,
1720
- className,
1721
- inset,
1722
- variant = "default",
1723
- ...props
1724
- }) {
1725
- const trackedOnClick = useAnalyticsCallback("ContextMenuItem", analytics, { name: "ui.activate" }, props.onClick);
1726
- return /* @__PURE__ */ jsx17(ContextMenuPrimitive.Item, {
1727
- "data-density": density,
1728
- "data-slot": "context-menu-item",
1729
- "data-inset": inset,
1730
- "data-variant": variant,
1731
- 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),
1732
- ...props,
1733
- onClick: trackedOnClick
1734
- });
1735
- }
1736
- function ContextMenuSub2({
1737
- analytics,
1738
- ...props
1739
- }) {
1740
- const trackedOnOpenChange = useAnalyticsCallback("ContextMenuSub", analytics, (open, _details) => ({ name: "ui.open-request", open }), props.onOpenChange);
1741
- return /* @__PURE__ */ jsx17(ContextMenuPrimitive.SubmenuRoot, {
1742
- "data-slot": "context-menu-sub",
1743
- ...props,
1744
- onOpenChange: trackedOnOpenChange
1745
- });
1746
- }
1747
- function ContextMenuSubTrigger2({ density, className, inset, children, ...props }) {
1748
- return /* @__PURE__ */ jsxs11(ContextMenuPrimitive.SubmenuTrigger, {
1749
- "data-density": density,
1750
- "data-slot": "context-menu-sub-trigger",
1751
- "data-inset": inset,
1752
- 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),
1753
- ...props,
1754
- children: [
1755
- children,
1756
- /* @__PURE__ */ jsx17(ChevronRightIcon3, {
1757
- className: "rtl:rotate-180 ms-auto"
1758
- })
1759
- ]
1760
- });
1761
- }
1762
- function ContextMenuSubContent2({ ...props }) {
1763
- return /* @__PURE__ */ jsx17(ContextMenuContent2, {
1764
- "data-slot": "context-menu-sub-content",
1765
- className: " shadow-frame border border-frame-edge",
1766
- side: "inline-end",
1767
- ...props
1768
- });
1769
- }
1770
- function ContextMenuCheckboxItem2({
1771
- analytics,
1772
- density,
1773
- className,
1774
- children,
1775
- checked,
1776
- inset,
1777
- ...props
1778
- }) {
1779
- const trackedOnCheckedChange = useAnalyticsCallback("ContextMenuCheckboxItem", analytics, { name: "ui.change-request" }, props.onCheckedChange);
1780
- return /* @__PURE__ */ jsxs11(ContextMenuPrimitive.CheckboxItem, {
1781
- "data-density": density,
1782
- "data-slot": "context-menu-checkbox-item",
1783
- "data-inset": inset,
1784
- 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),
1785
- checked,
1786
- ...props,
1787
- onCheckedChange: trackedOnCheckedChange,
1788
- children: [
1789
- /* @__PURE__ */ jsx17("span", {
1790
- className: "pointer-events-none absolute end-2",
1791
- children: /* @__PURE__ */ jsx17(ContextMenuPrimitive.CheckboxItemIndicator, {
1792
- children: /* @__PURE__ */ jsx17(CheckIcon2, {})
1793
- })
1794
- }),
1795
- children
1796
- ]
1797
- });
1798
- }
1799
- function ContextMenuRadioGroup2({
1800
- analytics,
1801
- ...props
1802
- }) {
1803
- const trackedOnValueChange = useAnalyticsCallback("ContextMenuRadioGroup", analytics, { name: "ui.change-request" }, props.onValueChange);
1804
- return /* @__PURE__ */ jsx17(ContextMenuPrimitive.RadioGroup, {
1805
- "data-slot": "context-menu-radio-group",
1806
- ...props,
1807
- onValueChange: trackedOnValueChange
1808
- });
1809
- }
1810
- function ContextMenuRadioItem2({ density, className, children, inset, ...props }) {
1811
- return /* @__PURE__ */ jsxs11(ContextMenuPrimitive.RadioItem, {
1812
- "data-density": density,
1813
- "data-slot": "context-menu-radio-item",
1814
- "data-inset": inset,
1815
- 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),
1816
- ...props,
1817
- children: [
1818
- /* @__PURE__ */ jsx17("span", {
1819
- className: "pointer-events-none absolute end-2",
1820
- children: /* @__PURE__ */ jsx17(ContextMenuPrimitive.RadioItemIndicator, {
1821
- children: /* @__PURE__ */ jsx17(CheckIcon2, {})
1822
- })
1823
- }),
1824
- children
1825
- ]
1826
- });
1827
- }
1828
- function ContextMenuSeparator2({ density, className, ...props }) {
1829
- return /* @__PURE__ */ jsx17(ContextMenuPrimitive.Separator, {
1830
- "data-density": density,
1831
- "data-slot": "context-menu-separator",
1832
- className: (state) => cn2("-mx-1 my-1 h-px bg-border", typeof className === "function" ? className(state) : className),
1833
- ...props
1834
- });
1835
- }
1836
- function ContextMenuShortcut2({ density, className, ...props }) {
1837
- return /* @__PURE__ */ jsx17("span", {
1838
- "data-density": density,
1839
- "data-slot": "context-menu-shortcut",
1840
- className: cn2("ms-auto text-xs tracking-widest text-muted-foreground group-focus/context-menu-item:text-accent-foreground", className),
1841
- ...props
1842
- });
1843
- }
1844
1872
  // src/components/Menubar.tsx
1845
- import { CheckIcon as CheckIcon3 } from "lucide-react";
1873
+ import { CheckIcon as CheckIcon2 } from "lucide-react";
1846
1874
  import { Menu as MenuPrimitive } from "@base-ui/react/menu";
1847
1875
  import { Menubar as MenubarPrimitive } from "@base-ui/react/menubar";
1848
- import { jsx as jsx18, jsxs as jsxs12 } from "react/jsx-runtime";
1876
+ import { jsx as jsx20, jsxs as jsxs13 } from "react/jsx-runtime";
1849
1877
  function Menubar2({ density, className, ...props }) {
1850
- return /* @__PURE__ */ jsx18(MenubarPrimitive, {
1878
+ return /* @__PURE__ */ jsx20(MenubarPrimitive, {
1851
1879
  "data-density": density,
1852
1880
  "data-slot": "menubar",
1853
1881
  className: (state) => cn2("flex h-control items-center gap-0.5 rounded-sm border p-px", typeof className === "function" ? className(state) : className),
@@ -1859,26 +1887,26 @@ function MenubarMenu2({
1859
1887
  ...props
1860
1888
  }) {
1861
1889
  const trackedOnOpenChange = useAnalyticsCallback("MenubarMenu", analytics, (open, _details) => ({ name: "ui.open-request", open }), props.onOpenChange);
1862
- return /* @__PURE__ */ jsx18(DropdownMenu2, {
1890
+ return /* @__PURE__ */ jsx20(DropdownMenu2, {
1863
1891
  "data-slot": "menubar-menu",
1864
1892
  ...props,
1865
1893
  onOpenChange: trackedOnOpenChange
1866
1894
  });
1867
1895
  }
1868
1896
  function MenubarGroup2({ ...props }) {
1869
- return /* @__PURE__ */ jsx18(DropdownMenuGroup2, {
1897
+ return /* @__PURE__ */ jsx20(MenuGroup2, {
1870
1898
  "data-slot": "menubar-group",
1871
1899
  ...props
1872
1900
  });
1873
1901
  }
1874
1902
  function MenubarPortal2({ ...props }) {
1875
- return /* @__PURE__ */ jsx18(DropdownMenuPortal2, {
1903
+ return /* @__PURE__ */ jsx20(MenuPortal, {
1876
1904
  "data-slot": "menubar-portal",
1877
1905
  ...props
1878
1906
  });
1879
1907
  }
1880
1908
  function MenubarTrigger2({ density, className, ...props }) {
1881
- return /* @__PURE__ */ jsx18(DropdownMenuTrigger2, {
1909
+ return /* @__PURE__ */ jsx20(DropdownMenuTrigger2, {
1882
1910
  "data-density": density,
1883
1911
  "data-slot": "menubar-trigger",
1884
1912
  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),
@@ -1893,7 +1921,7 @@ function MenubarContent2({
1893
1921
  sideOffset = 8,
1894
1922
  ...props
1895
1923
  }) {
1896
- return /* @__PURE__ */ jsx18(DropdownMenuContent2, {
1924
+ return /* @__PURE__ */ jsx20(MenuPopup, {
1897
1925
  density,
1898
1926
  "data-slot": "menubar-content",
1899
1927
  align,
@@ -1912,7 +1940,7 @@ function MenubarItem2({
1912
1940
  ...props
1913
1941
  }) {
1914
1942
  const trackedOnClick = useAnalyticsCallback("MenubarItem", analytics, { name: "ui.activate" }, props.onClick);
1915
- return /* @__PURE__ */ jsx18(DropdownMenuItem2, {
1943
+ return /* @__PURE__ */ jsx20(MenuItem2, {
1916
1944
  density,
1917
1945
  "data-slot": "menubar-item",
1918
1946
  inset,
@@ -1932,7 +1960,7 @@ function MenubarCheckboxItem2({
1932
1960
  ...props
1933
1961
  }) {
1934
1962
  const trackedOnCheckedChange = useAnalyticsCallback("MenubarCheckboxItem", analytics, { name: "ui.change-request" }, props.onCheckedChange);
1935
- return /* @__PURE__ */ jsxs12(MenuPrimitive.CheckboxItem, {
1963
+ return /* @__PURE__ */ jsxs13(MenuPrimitive.CheckboxItem, {
1936
1964
  "data-density": density,
1937
1965
  "data-slot": "menubar-checkbox-item",
1938
1966
  "data-inset": inset,
@@ -1941,10 +1969,10 @@ function MenubarCheckboxItem2({
1941
1969
  ...props,
1942
1970
  onCheckedChange: trackedOnCheckedChange,
1943
1971
  children: [
1944
- /* @__PURE__ */ jsx18("span", {
1972
+ /* @__PURE__ */ jsx20("span", {
1945
1973
  className: "pointer-events-none absolute start-1.5 flex size-4 items-center justify-center [&_svg:not([class*='size-'])]:size-4",
1946
- children: /* @__PURE__ */ jsx18(MenuPrimitive.CheckboxItemIndicator, {
1947
- children: /* @__PURE__ */ jsx18(CheckIcon3, {})
1974
+ children: /* @__PURE__ */ jsx20(MenuPrimitive.CheckboxItemIndicator, {
1975
+ children: /* @__PURE__ */ jsx20(CheckIcon2, {})
1948
1976
  })
1949
1977
  }),
1950
1978
  children
@@ -1952,23 +1980,23 @@ function MenubarCheckboxItem2({
1952
1980
  });
1953
1981
  }
1954
1982
  function MenubarRadioGroup2({ ...props }) {
1955
- return /* @__PURE__ */ jsx18(DropdownMenuRadioGroup2, {
1983
+ return /* @__PURE__ */ jsx20(MenuRadioGroup2, {
1956
1984
  "data-slot": "menubar-radio-group",
1957
1985
  ...props
1958
1986
  });
1959
1987
  }
1960
1988
  function MenubarRadioItem2({ density, className, children, inset, ...props }) {
1961
- return /* @__PURE__ */ jsxs12(MenuPrimitive.RadioItem, {
1989
+ return /* @__PURE__ */ jsxs13(MenuPrimitive.RadioItem, {
1962
1990
  "data-density": density,
1963
1991
  "data-slot": "menubar-radio-item",
1964
1992
  "data-inset": inset,
1965
1993
  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),
1966
1994
  ...props,
1967
1995
  children: [
1968
- /* @__PURE__ */ jsx18("span", {
1996
+ /* @__PURE__ */ jsx20("span", {
1969
1997
  className: "pointer-events-none absolute start-1.5 flex size-4 items-center justify-center [&_svg:not([class*='size-'])]:size-4",
1970
- children: /* @__PURE__ */ jsx18(MenuPrimitive.RadioItemIndicator, {
1971
- children: /* @__PURE__ */ jsx18(CheckIcon3, {})
1998
+ children: /* @__PURE__ */ jsx20(MenuPrimitive.RadioItemIndicator, {
1999
+ children: /* @__PURE__ */ jsx20(CheckIcon2, {})
1972
2000
  })
1973
2001
  }),
1974
2002
  children
@@ -1976,7 +2004,7 @@ function MenubarRadioItem2({ density, className, children, inset, ...props }) {
1976
2004
  });
1977
2005
  }
1978
2006
  function MenubarLabel2({ density, className, inset, ...props }) {
1979
- return /* @__PURE__ */ jsx18(DropdownMenuLabel2, {
2007
+ return /* @__PURE__ */ jsx20(MenuLabel2, {
1980
2008
  density,
1981
2009
  "data-slot": "menubar-label",
1982
2010
  inset,
@@ -1985,7 +2013,7 @@ function MenubarLabel2({ density, className, inset, ...props }) {
1985
2013
  });
1986
2014
  }
1987
2015
  function MenubarSeparator2({ density, className, ...props }) {
1988
- return /* @__PURE__ */ jsx18(DropdownMenuSeparator2, {
2016
+ return /* @__PURE__ */ jsx20(MenuSeparator2, {
1989
2017
  density,
1990
2018
  "data-slot": "menubar-separator",
1991
2019
  className: (state) => cn2("-mx-1 my-1 h-px bg-border", typeof className === "function" ? className(state) : className),
@@ -1993,7 +2021,7 @@ function MenubarSeparator2({ density, className, ...props }) {
1993
2021
  });
1994
2022
  }
1995
2023
  function MenubarShortcut2({ density, className, ...props }) {
1996
- return /* @__PURE__ */ jsx18(DropdownMenuShortcut2, {
2024
+ return /* @__PURE__ */ jsx20(MenuShortcut2, {
1997
2025
  "data-density": density,
1998
2026
  "data-slot": "menubar-shortcut",
1999
2027
  className: cn2("ms-auto text-xs tracking-widest text-muted-foreground group-focus/menubar-item:text-accent-foreground", className),
@@ -2001,13 +2029,13 @@ function MenubarShortcut2({ density, className, ...props }) {
2001
2029
  });
2002
2030
  }
2003
2031
  function MenubarSub2({ ...props }) {
2004
- return /* @__PURE__ */ jsx18(DropdownMenuSub2, {
2032
+ return /* @__PURE__ */ jsx20(MenuSub2, {
2005
2033
  "data-slot": "menubar-sub",
2006
2034
  ...props
2007
2035
  });
2008
2036
  }
2009
2037
  function MenubarSubTrigger2({ density, className, inset, ...props }) {
2010
- return /* @__PURE__ */ jsx18(DropdownMenuSubTrigger2, {
2038
+ return /* @__PURE__ */ jsx20(MenuSubTrigger2, {
2011
2039
  density,
2012
2040
  "data-slot": "menubar-sub-trigger",
2013
2041
  inset,
@@ -2016,7 +2044,7 @@ function MenubarSubTrigger2({ density, className, inset, ...props }) {
2016
2044
  });
2017
2045
  }
2018
2046
  function MenubarSubContent2({ density, className, ...props }) {
2019
- return /* @__PURE__ */ jsx18(DropdownMenuSubContent2, {
2047
+ return /* @__PURE__ */ jsx20(MenuSubContent2, {
2020
2048
  density,
2021
2049
  "data-slot": "menubar-sub-content",
2022
2050
  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),
@@ -2027,7 +2055,7 @@ function MenubarSubContent2({ density, className, ...props }) {
2027
2055
  import { ChevronDownIcon as ChevronDownIcon3 } from "lucide-react";
2028
2056
  import { NavigationMenu as NavigationMenuPrimitive } from "@base-ui/react/navigation-menu";
2029
2057
  import { cva as cva3 } from "class-variance-authority";
2030
- import { jsx as jsx19, jsxs as jsxs13 } from "react/jsx-runtime";
2058
+ import { jsx as jsx21, jsxs as jsxs14 } from "react/jsx-runtime";
2031
2059
  function NavigationMenu2({
2032
2060
  analytics,
2033
2061
  density,
@@ -2038,7 +2066,7 @@ function NavigationMenu2({
2038
2066
  }) {
2039
2067
  const trackedOnValueChange = useAnalyticsCallback("NavigationMenu", analytics, { name: "ui.change-request" }, props.onValueChange);
2040
2068
  const resolvedDensity = useDensity(density);
2041
- return /* @__PURE__ */ jsxs13(NavigationMenuPrimitive.Root, {
2069
+ return /* @__PURE__ */ jsxs14(NavigationMenuPrimitive.Root, {
2042
2070
  "data-density": resolvedDensity,
2043
2071
  "data-slot": "navigation-menu",
2044
2072
  className: (state) => cn2("group/navigation-menu relative flex max-w-max flex-1 items-center justify-center", typeof className === "function" ? className(state) : className),
@@ -2046,7 +2074,7 @@ function NavigationMenu2({
2046
2074
  onValueChange: trackedOnValueChange,
2047
2075
  children: [
2048
2076
  children,
2049
- /* @__PURE__ */ jsx19(NavigationMenuPositioner2, {
2077
+ /* @__PURE__ */ jsx21(NavigationMenuPositioner2, {
2050
2078
  density: resolvedDensity,
2051
2079
  align
2052
2080
  })
@@ -2054,7 +2082,7 @@ function NavigationMenu2({
2054
2082
  });
2055
2083
  }
2056
2084
  function NavigationMenuList2({ density, className, ...props }) {
2057
- return /* @__PURE__ */ jsx19(NavigationMenuPrimitive.List, {
2085
+ return /* @__PURE__ */ jsx21(NavigationMenuPrimitive.List, {
2058
2086
  "data-density": density,
2059
2087
  "data-slot": "navigation-menu-list",
2060
2088
  className: (state) => cn2("group flex flex-1 list-none items-center justify-center gap-0", typeof className === "function" ? className(state) : className),
@@ -2062,7 +2090,7 @@ function NavigationMenuList2({ density, className, ...props }) {
2062
2090
  });
2063
2091
  }
2064
2092
  function NavigationMenuItem2({ density, className, ...props }) {
2065
- return /* @__PURE__ */ jsx19(NavigationMenuPrimitive.Item, {
2093
+ return /* @__PURE__ */ jsx21(NavigationMenuPrimitive.Item, {
2066
2094
  "data-density": density,
2067
2095
  "data-slot": "navigation-menu-item",
2068
2096
  className: (state) => cn2("relative", typeof className === "function" ? className(state) : className),
@@ -2071,7 +2099,7 @@ function NavigationMenuItem2({ density, className, ...props }) {
2071
2099
  }
2072
2100
  var navigationMenuTriggerStyle2 = cva3("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");
2073
2101
  function NavigationMenuTrigger2({ density, className, children, ...props }) {
2074
- return /* @__PURE__ */ jsxs13(NavigationMenuPrimitive.Trigger, {
2102
+ return /* @__PURE__ */ jsxs14(NavigationMenuPrimitive.Trigger, {
2075
2103
  "data-density": density,
2076
2104
  "data-slot": "navigation-menu-trigger",
2077
2105
  className: (state) => cn2(navigationMenuTriggerStyle2(), "group", typeof className === "function" ? className(state) : className),
@@ -2079,12 +2107,12 @@ function NavigationMenuTrigger2({ density, className, children, ...props }) {
2079
2107
  children: [
2080
2108
  children,
2081
2109
  " ",
2082
- /* @__PURE__ */ jsx19(NavigationMenuIndicator2, {})
2110
+ /* @__PURE__ */ jsx21(NavigationMenuIndicator2, {})
2083
2111
  ]
2084
2112
  });
2085
2113
  }
2086
2114
  function NavigationMenuContent2({ density, className, ...props }) {
2087
- return /* @__PURE__ */ jsx19(NavigationMenuPrimitive.Content, {
2115
+ return /* @__PURE__ */ jsx21(NavigationMenuPrimitive.Content, {
2088
2116
  "data-density": density,
2089
2117
  "data-slot": "navigation-menu-content",
2090
2118
  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),
@@ -2104,12 +2132,12 @@ function NavigationMenuPositioner2({
2104
2132
  const direction = useDirection2();
2105
2133
  const container = usePortalContainer2();
2106
2134
  const portal = usePortalNode();
2107
- return /* @__PURE__ */ jsx19(NavigationMenuPrimitive.Portal, {
2135
+ return /* @__PURE__ */ jsx21(NavigationMenuPrimitive.Portal, {
2108
2136
  container,
2109
2137
  ref: portal.ref,
2110
- children: /* @__PURE__ */ jsx19(PortalProvider2, {
2138
+ children: /* @__PURE__ */ jsx21(PortalProvider2, {
2111
2139
  container: portal.node,
2112
- children: /* @__PURE__ */ jsx19(NavigationMenuPrimitive.Positioner, {
2140
+ children: /* @__PURE__ */ jsx21(NavigationMenuPrimitive.Positioner, {
2113
2141
  dir: direction,
2114
2142
  side,
2115
2143
  sideOffset,
@@ -2117,11 +2145,11 @@ function NavigationMenuPositioner2({
2117
2145
  alignOffset,
2118
2146
  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),
2119
2147
  ...props,
2120
- children: /* @__PURE__ */ jsx19(NavigationMenuPrimitive.Popup, {
2148
+ children: /* @__PURE__ */ jsx21(NavigationMenuPrimitive.Popup, {
2121
2149
  "data-density": resolvedDensity,
2122
2150
  "data-slot": "navigation-menu-popup",
2123
2151
  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",
2124
- children: /* @__PURE__ */ jsx19(NavigationMenuPrimitive.Viewport, {
2152
+ children: /* @__PURE__ */ jsx21(NavigationMenuPrimitive.Viewport, {
2125
2153
  className: "relative size-full overflow-hidden"
2126
2154
  })
2127
2155
  })
@@ -2131,7 +2159,7 @@ function NavigationMenuPositioner2({
2131
2159
  }
2132
2160
  function NavigationMenuLink2({ analytics, density, className, ...props }) {
2133
2161
  const trackedOnClick = useAnalyticsCallback("NavigationMenuLink", analytics, { name: "ui.activate" }, props.onClick);
2134
- return /* @__PURE__ */ jsx19(NavigationMenuPrimitive.Link, {
2162
+ return /* @__PURE__ */ jsx21(NavigationMenuPrimitive.Link, {
2135
2163
  "data-density": density,
2136
2164
  "data-slot": "navigation-menu-link",
2137
2165
  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),
@@ -2145,32 +2173,32 @@ function NavigationMenuIndicator2({
2145
2173
  children,
2146
2174
  ...props
2147
2175
  }) {
2148
- return /* @__PURE__ */ jsx19(NavigationMenuPrimitive.Icon, {
2176
+ return /* @__PURE__ */ jsx21(NavigationMenuPrimitive.Icon, {
2149
2177
  "data-density": density,
2150
2178
  "data-slot": "navigation-menu-indicator",
2151
2179
  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),
2152
2180
  ...props,
2153
- children: children ?? /* @__PURE__ */ jsx19(ChevronDownIcon3, {})
2181
+ children: children ?? /* @__PURE__ */ jsx21(ChevronDownIcon3, {})
2154
2182
  });
2155
2183
  }
2156
2184
  // src/components/Toast.tsx
2157
2185
  import { Toast as ToastPrimitive } from "@base-ui/react/toast";
2158
2186
  import { CircleCheckIcon, InfoIcon, TriangleAlertIcon, OctagonXIcon, LoaderCircleIcon, XIcon } from "lucide-react";
2159
- import { jsx as jsx20, jsxs as jsxs14, Fragment as Fragment3 } from "react/jsx-runtime";
2187
+ import { jsx as jsx22, jsxs as jsxs15, Fragment as Fragment4 } from "react/jsx-runtime";
2160
2188
  function ToastProvider2(props) {
2161
- return /* @__PURE__ */ jsx20(ToastPrimitive.Provider, {
2189
+ return /* @__PURE__ */ jsx22(ToastPrimitive.Provider, {
2162
2190
  ...props
2163
2191
  });
2164
2192
  }
2165
2193
  function ToastPortal2({ container, ref, children, ...props }) {
2166
2194
  const resolvedContainer = usePortalContainer2(container);
2167
2195
  const portal = usePortalNode(ref);
2168
- return /* @__PURE__ */ jsx20(ToastPrimitive.Portal, {
2196
+ return /* @__PURE__ */ jsx22(ToastPrimitive.Portal, {
2169
2197
  "data-slot": "toast-portal",
2170
2198
  container: resolvedContainer,
2171
2199
  ref: portal.ref,
2172
2200
  ...props,
2173
- children: /* @__PURE__ */ jsx20(PortalProvider2, {
2201
+ children: /* @__PURE__ */ jsx22(PortalProvider2, {
2174
2202
  container: portal.node,
2175
2203
  children
2176
2204
  })
@@ -2179,7 +2207,7 @@ function ToastPortal2({ container, ref, children, ...props }) {
2179
2207
  function ToastViewport2({ density, dir, className, ...props }) {
2180
2208
  const resolvedDensity = useDensity(density);
2181
2209
  const inheritedDirection = useDirection2();
2182
- return /* @__PURE__ */ jsx20(ToastPrimitive.Viewport, {
2210
+ return /* @__PURE__ */ jsx22(ToastPrimitive.Viewport, {
2183
2211
  dir: dir ?? inheritedDirection,
2184
2212
  "data-density": resolvedDensity,
2185
2213
  "data-slot": "toast-viewport",
@@ -2188,7 +2216,7 @@ function ToastViewport2({ density, dir, className, ...props }) {
2188
2216
  });
2189
2217
  }
2190
2218
  function Toast2({ density, className, ...props }) {
2191
- return /* @__PURE__ */ jsx20(ToastPrimitive.Root, {
2219
+ return /* @__PURE__ */ jsx22(ToastPrimitive.Root, {
2192
2220
  "data-density": density,
2193
2221
  "data-slot": "toast",
2194
2222
  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),
@@ -2196,21 +2224,21 @@ function Toast2({ density, className, ...props }) {
2196
2224
  });
2197
2225
  }
2198
2226
  function ToastContent2({ className, ...props }) {
2199
- return /* @__PURE__ */ jsx20(ToastPrimitive.Content, {
2227
+ return /* @__PURE__ */ jsx22(ToastPrimitive.Content, {
2200
2228
  "data-slot": "toast-content",
2201
2229
  className: (state) => cn2("flex items-center gap-control-gap p-panel", typeof className === "function" ? className(state) : className),
2202
2230
  ...props
2203
2231
  });
2204
2232
  }
2205
2233
  function ToastTitle2({ className, ...props }) {
2206
- return /* @__PURE__ */ jsx20(ToastPrimitive.Title, {
2234
+ return /* @__PURE__ */ jsx22(ToastPrimitive.Title, {
2207
2235
  "data-slot": "toast-title",
2208
2236
  className: (state) => cn2("text-sm font-medium", typeof className === "function" ? className(state) : className),
2209
2237
  ...props
2210
2238
  });
2211
2239
  }
2212
2240
  function ToastDescription2({ className, ...props }) {
2213
- return /* @__PURE__ */ jsx20(ToastPrimitive.Description, {
2241
+ return /* @__PURE__ */ jsx22(ToastPrimitive.Description, {
2214
2242
  "data-slot": "toast-description",
2215
2243
  className: (state) => cn2("text-sm text-muted-foreground", typeof className === "function" ? className(state) : className),
2216
2244
  ...props
@@ -2219,14 +2247,14 @@ function ToastDescription2({ className, ...props }) {
2219
2247
  function ToastAction2({
2220
2248
  analytics,
2221
2249
  className,
2222
- render = /* @__PURE__ */ jsx20(Button2, {
2250
+ render = /* @__PURE__ */ jsx22(Button2, {
2223
2251
  variant: "outline",
2224
2252
  size: "sm"
2225
2253
  }),
2226
2254
  ...props
2227
2255
  }) {
2228
2256
  const trackedOnClick = useAnalyticsCallback("ToastAction", analytics, { name: "ui.activate" }, props.onClick);
2229
- return /* @__PURE__ */ jsx20(ToastPrimitive.Action, {
2257
+ return /* @__PURE__ */ jsx22(ToastPrimitive.Action, {
2230
2258
  "data-slot": "toast-action",
2231
2259
  render,
2232
2260
  className: (state) => cn2("shrink-0", typeof className === "function" ? className(state) : className),
@@ -2238,21 +2266,21 @@ function ToastClose2({
2238
2266
  analytics,
2239
2267
  className,
2240
2268
  children,
2241
- render = /* @__PURE__ */ jsx20(Button2, {
2269
+ render = /* @__PURE__ */ jsx22(Button2, {
2242
2270
  variant: "ghost",
2243
2271
  size: "icon-sm"
2244
2272
  }),
2245
2273
  ...props
2246
2274
  }) {
2247
2275
  const trackedOnClick = useAnalyticsCallback("ToastClose", analytics, { name: "ui.activate" }, props.onClick);
2248
- return /* @__PURE__ */ jsx20(ToastPrimitive.Close, {
2276
+ return /* @__PURE__ */ jsx22(ToastPrimitive.Close, {
2249
2277
  "data-slot": "toast-close",
2250
2278
  "aria-label": "Close toast",
2251
2279
  render,
2252
2280
  className: (state) => cn2("relative shrink-0 text-muted-foreground hover:text-foreground", typeof className === "function" ? className(state) : className),
2253
2281
  ...props,
2254
2282
  onClick: trackedOnClick,
2255
- children: children ?? /* @__PURE__ */ jsx20(XIcon, {
2283
+ children: children ?? /* @__PURE__ */ jsx22(XIcon, {
2256
2284
  "aria-hidden": "true"
2257
2285
  })
2258
2286
  });
@@ -2260,24 +2288,24 @@ function ToastClose2({
2260
2288
  function ToastIcon({ type }) {
2261
2289
  switch (type) {
2262
2290
  case "success":
2263
- return /* @__PURE__ */ jsx20(CircleCheckIcon, {
2291
+ return /* @__PURE__ */ jsx22(CircleCheckIcon, {
2264
2292
  "aria-hidden": "true"
2265
2293
  });
2266
2294
  case "info":
2267
- return /* @__PURE__ */ jsx20(InfoIcon, {
2295
+ return /* @__PURE__ */ jsx22(InfoIcon, {
2268
2296
  "aria-hidden": "true"
2269
2297
  });
2270
2298
  case "warning":
2271
- return /* @__PURE__ */ jsx20(TriangleAlertIcon, {
2299
+ return /* @__PURE__ */ jsx22(TriangleAlertIcon, {
2272
2300
  "aria-hidden": "true"
2273
2301
  });
2274
2302
  case "error":
2275
- return /* @__PURE__ */ jsx20(OctagonXIcon, {
2303
+ return /* @__PURE__ */ jsx22(OctagonXIcon, {
2276
2304
  "aria-hidden": "true",
2277
2305
  className: "text-destructive"
2278
2306
  });
2279
2307
  case "loading":
2280
- return /* @__PURE__ */ jsx20(LoaderCircleIcon, {
2308
+ return /* @__PURE__ */ jsx22(LoaderCircleIcon, {
2281
2309
  "aria-hidden": "true",
2282
2310
  className: "animate-spin motion-reduce:animate-none"
2283
2311
  });
@@ -2287,41 +2315,41 @@ function ToastIcon({ type }) {
2287
2315
  }
2288
2316
  function ToastList() {
2289
2317
  const { toasts } = ToastPrimitive.useToastManager();
2290
- return /* @__PURE__ */ jsx20(Fragment3, {
2291
- children: toasts.map((toastItem) => /* @__PURE__ */ jsx20(Toast2, {
2318
+ return /* @__PURE__ */ jsx22(Fragment4, {
2319
+ children: toasts.map((toastItem) => /* @__PURE__ */ jsx22(Toast2, {
2292
2320
  toast: toastItem,
2293
- children: /* @__PURE__ */ jsxs14(ToastContent2, {
2321
+ children: /* @__PURE__ */ jsxs15(ToastContent2, {
2294
2322
  children: [
2295
- /* @__PURE__ */ jsx20("span", {
2323
+ /* @__PURE__ */ jsx22("span", {
2296
2324
  "data-slot": "toast-icon",
2297
2325
  className: "shrink-0 empty:hidden [&_svg]:size-4",
2298
- children: /* @__PURE__ */ jsx20(ToastIcon, {
2326
+ children: /* @__PURE__ */ jsx22(ToastIcon, {
2299
2327
  type: toastItem.type
2300
2328
  })
2301
2329
  }),
2302
- /* @__PURE__ */ jsxs14("div", {
2330
+ /* @__PURE__ */ jsxs15("div", {
2303
2331
  className: "flex min-w-0 flex-1 flex-col gap-1",
2304
2332
  children: [
2305
- /* @__PURE__ */ jsx20(ToastTitle2, {}),
2306
- /* @__PURE__ */ jsx20(ToastDescription2, {})
2333
+ /* @__PURE__ */ jsx22(ToastTitle2, {}),
2334
+ /* @__PURE__ */ jsx22(ToastDescription2, {})
2307
2335
  ]
2308
2336
  }),
2309
- /* @__PURE__ */ jsx20(ToastAction2, {}),
2310
- /* @__PURE__ */ jsx20(ToastClose2, {})
2337
+ /* @__PURE__ */ jsx22(ToastAction2, {}),
2338
+ /* @__PURE__ */ jsx22(ToastClose2, {})
2311
2339
  ]
2312
2340
  })
2313
2341
  }, toastItem.id))
2314
2342
  });
2315
2343
  }
2316
2344
  function ToastToaster2({ children, density, ...props }) {
2317
- return /* @__PURE__ */ jsxs14(ToastProvider2, {
2345
+ return /* @__PURE__ */ jsxs15(ToastProvider2, {
2318
2346
  ...props,
2319
2347
  children: [
2320
2348
  children,
2321
- /* @__PURE__ */ jsx20(ToastPortal2, {
2322
- children: /* @__PURE__ */ jsx20(ToastViewport2, {
2349
+ /* @__PURE__ */ jsx22(ToastPortal2, {
2350
+ children: /* @__PURE__ */ jsx22(ToastViewport2, {
2323
2351
  density,
2324
- children: /* @__PURE__ */ jsx20(ToastList, {})
2352
+ children: /* @__PURE__ */ jsx22(ToastList, {})
2325
2353
  })
2326
2354
  })
2327
2355
  ]
@@ -2337,7 +2365,7 @@ function useToastManager2() {
2337
2365
  import { mergeProps as mergeProps6 } from "@base-ui/react/merge-props";
2338
2366
  import { useRender as useRender6 } from "@base-ui/react/use-render";
2339
2367
  import { cva as cva4 } from "class-variance-authority";
2340
- import { jsx as jsx21 } from "react/jsx-runtime";
2368
+ import { jsx as jsx23 } from "react/jsx-runtime";
2341
2369
  var markerVariants2 = cva4("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", {
2342
2370
  variants: {
2343
2371
  variant: {
@@ -2356,7 +2384,7 @@ function Marker2({ density, className, variant = "default", render, ...props })
2356
2384
  });
2357
2385
  }
2358
2386
  function MarkerIcon2({ density, className, ...props }) {
2359
- return /* @__PURE__ */ jsx21("span", {
2387
+ return /* @__PURE__ */ jsx23("span", {
2360
2388
  "data-density": density,
2361
2389
  "data-slot": "marker-icon",
2362
2390
  "aria-hidden": "true",
@@ -2365,7 +2393,7 @@ function MarkerIcon2({ density, className, ...props }) {
2365
2393
  });
2366
2394
  }
2367
2395
  function MarkerContent2({ density, className, ...props }) {
2368
- return /* @__PURE__ */ jsx21("span", {
2396
+ return /* @__PURE__ */ jsx23("span", {
2369
2397
  "data-density": density,
2370
2398
  "data-slot": "marker-content",
2371
2399
  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),
@@ -2376,9 +2404,9 @@ function MarkerContent2({ density, className, ...props }) {
2376
2404
  import { mergeProps as mergeProps7 } from "@base-ui/react/merge-props";
2377
2405
  import { useRender as useRender7 } from "@base-ui/react/use-render";
2378
2406
  import { cva as cva5 } from "class-variance-authority";
2379
- import { jsx as jsx22 } from "react/jsx-runtime";
2407
+ import { jsx as jsx24 } from "react/jsx-runtime";
2380
2408
  function BubbleGroup2({ density, className, ...props }) {
2381
- return /* @__PURE__ */ jsx22("div", {
2409
+ return /* @__PURE__ */ jsx24("div", {
2382
2410
  "data-density": density,
2383
2411
  "data-slot": "bubble-group",
2384
2412
  className: cn2("flex min-w-0 flex-col gap-control-gap", className),
@@ -2400,7 +2428,7 @@ var bubbleVariants = cva5("group/bubble relative flex w-fit max-w-[80%] min-w-0
2400
2428
  defaultVariants: { variant: "default" }
2401
2429
  });
2402
2430
  function Bubble2({ density, variant = "default", align = "start", className, ...props }) {
2403
- return /* @__PURE__ */ jsx22("div", {
2431
+ return /* @__PURE__ */ jsx24("div", {
2404
2432
  "data-density": density,
2405
2433
  "data-slot": "bubble",
2406
2434
  "data-variant": variant,
@@ -2433,7 +2461,7 @@ function BubbleReactions2({
2433
2461
  className,
2434
2462
  ...props
2435
2463
  }) {
2436
- return /* @__PURE__ */ jsx22("div", {
2464
+ return /* @__PURE__ */ jsx24("div", {
2437
2465
  "data-density": density,
2438
2466
  "data-slot": "bubble-reactions",
2439
2467
  "data-align": align,
@@ -2447,13 +2475,13 @@ import { useContext as useContext2, useLayoutEffect, useMemo as useMemo3, useRef
2447
2475
  import { useRender as useRender8 } from "@base-ui/react/use-render";
2448
2476
 
2449
2477
  // src/message/MessageContext.ts
2450
- import { createContext as createContext2 } from "react";
2451
- var MessageContext = createContext2(null);
2478
+ import { createContext as createContext3 } from "react";
2479
+ var MessageContext = createContext3(null);
2452
2480
 
2453
2481
  // src/components/Message.tsx
2454
- import { jsx as jsx23 } from "react/jsx-runtime";
2482
+ import { jsx as jsx25 } from "react/jsx-runtime";
2455
2483
  function MessageGroup2({ density, className, ...props }) {
2456
- return /* @__PURE__ */ jsx23("div", {
2484
+ return /* @__PURE__ */ jsx25("div", {
2457
2485
  "data-density": density,
2458
2486
  "data-slot": "message-group",
2459
2487
  className: cn2("flex min-w-0 flex-col gap-control-gap", className),
@@ -2464,9 +2492,9 @@ function Message2({ density, className, align = "start", style, ...props }) {
2464
2492
  const [footerOffset, setFooterOffset] = useState(0);
2465
2493
  const context = useMemo3(() => ({ setFooterOffset }), []);
2466
2494
  const messageStyle = { ...style, "--message-footer-offset": `${footerOffset}px` };
2467
- return /* @__PURE__ */ jsx23(MessageContext.Provider, {
2495
+ return /* @__PURE__ */ jsx25(MessageContext.Provider, {
2468
2496
  value: context,
2469
- children: /* @__PURE__ */ jsx23("div", {
2497
+ children: /* @__PURE__ */ jsx25("div", {
2470
2498
  "data-density": density,
2471
2499
  "data-slot": "message",
2472
2500
  "data-align": align,
@@ -2477,7 +2505,7 @@ function Message2({ density, className, align = "start", style, ...props }) {
2477
2505
  });
2478
2506
  }
2479
2507
  function MessageAvatar2({ density, className, ...props }) {
2480
- return /* @__PURE__ */ jsx23("div", {
2508
+ return /* @__PURE__ */ jsx25("div", {
2481
2509
  "data-density": density,
2482
2510
  "data-slot": "message-avatar",
2483
2511
  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),
@@ -2485,7 +2513,7 @@ function MessageAvatar2({ density, className, ...props }) {
2485
2513
  });
2486
2514
  }
2487
2515
  function MessageContent2({ density, className, ...props }) {
2488
- return /* @__PURE__ */ jsx23("div", {
2516
+ return /* @__PURE__ */ jsx25("div", {
2489
2517
  "data-density": density,
2490
2518
  "data-slot": "message-content",
2491
2519
  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),
@@ -2493,7 +2521,7 @@ function MessageContent2({ density, className, ...props }) {
2493
2521
  });
2494
2522
  }
2495
2523
  function MessageHeader2({ density, className, ...props }) {
2496
- return /* @__PURE__ */ jsx23("div", {
2524
+ return /* @__PURE__ */ jsx25("div", {
2497
2525
  "data-density": density,
2498
2526
  "data-slot": "message-header",
2499
2527
  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),
@@ -2535,7 +2563,7 @@ function MessageFooter2({ density, className, ...props }) {
2535
2563
  import { mergeProps as mergeProps8 } from "@base-ui/react/merge-props";
2536
2564
  import { useRender as useRender9 } from "@base-ui/react/use-render";
2537
2565
  import { cva as cva6 } from "class-variance-authority";
2538
- import { jsx as jsx24 } from "react/jsx-runtime";
2566
+ import { jsx as jsx26 } from "react/jsx-runtime";
2539
2567
  var attachmentVariants = cva6("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", {
2540
2568
  variants: {
2541
2569
  size: {
@@ -2557,7 +2585,7 @@ function Attachment2({
2557
2585
  orientation = "horizontal",
2558
2586
  ...props
2559
2587
  }) {
2560
- return /* @__PURE__ */ jsx24("div", {
2588
+ return /* @__PURE__ */ jsx26("div", {
2561
2589
  "data-slot": "attachment",
2562
2590
  "data-density": density,
2563
2591
  "data-state": state,
@@ -2577,7 +2605,7 @@ var attachmentMediaVariants = cva6("relative flex aspect-square w-10 shrink-0 it
2577
2605
  defaultVariants: { variant: "icon" }
2578
2606
  });
2579
2607
  function AttachmentMedia2({ density, className, variant = "icon", ...props }) {
2580
- return /* @__PURE__ */ jsx24("div", {
2608
+ return /* @__PURE__ */ jsx26("div", {
2581
2609
  "data-slot": "attachment-media",
2582
2610
  "data-density": density,
2583
2611
  "data-variant": variant,
@@ -2586,7 +2614,7 @@ function AttachmentMedia2({ density, className, variant = "icon", ...props }) {
2586
2614
  });
2587
2615
  }
2588
2616
  function AttachmentContent2({ density, className, ...props }) {
2589
- return /* @__PURE__ */ jsx24("div", {
2617
+ return /* @__PURE__ */ jsx26("div", {
2590
2618
  "data-slot": "attachment-content",
2591
2619
  "data-density": density,
2592
2620
  className: cn2("max-w-full min-w-0 flex-1 leading-tight group-data-[orientation=vertical]/attachment:px-1", className),
@@ -2594,7 +2622,7 @@ function AttachmentContent2({ density, className, ...props }) {
2594
2622
  });
2595
2623
  }
2596
2624
  function AttachmentTitle2({ density, className, ...props }) {
2597
- return /* @__PURE__ */ jsx24("span", {
2625
+ return /* @__PURE__ */ jsx26("span", {
2598
2626
  "data-slot": "attachment-title",
2599
2627
  "data-density": density,
2600
2628
  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),
@@ -2602,7 +2630,7 @@ function AttachmentTitle2({ density, className, ...props }) {
2602
2630
  });
2603
2631
  }
2604
2632
  function AttachmentDescription2({ density, className, ...props }) {
2605
- return /* @__PURE__ */ jsx24("span", {
2633
+ return /* @__PURE__ */ jsx26("span", {
2606
2634
  "data-slot": "attachment-description",
2607
2635
  "data-density": density,
2608
2636
  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),
@@ -2610,7 +2638,7 @@ function AttachmentDescription2({ density, className, ...props }) {
2610
2638
  });
2611
2639
  }
2612
2640
  function AttachmentActions2({ density, className, ...props }) {
2613
- return /* @__PURE__ */ jsx24("div", {
2641
+ return /* @__PURE__ */ jsx26("div", {
2614
2642
  "data-slot": "attachment-actions",
2615
2643
  "data-density": density,
2616
2644
  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),
@@ -2623,7 +2651,7 @@ function AttachmentAction2({
2623
2651
  size = "icon-xs",
2624
2652
  ...props
2625
2653
  }) {
2626
- return /* @__PURE__ */ jsx24(Button2, {
2654
+ return /* @__PURE__ */ jsx26(Button2, {
2627
2655
  "data-slot": "attachment-action",
2628
2656
  variant,
2629
2657
  size,
@@ -2648,7 +2676,7 @@ function AttachmentTrigger2({
2648
2676
  });
2649
2677
  }
2650
2678
  function AttachmentGroup2({ density, className, ...props }) {
2651
- return /* @__PURE__ */ jsx24("div", {
2679
+ return /* @__PURE__ */ jsx26("div", {
2652
2680
  "data-slot": "attachment-group",
2653
2681
  "data-density": density,
2654
2682
  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),
@@ -2657,7 +2685,7 @@ function AttachmentGroup2({ density, className, ...props }) {
2657
2685
  }
2658
2686
  // src/components/InlineEdit.tsx
2659
2687
  import { useEffect as useEffect2, useRef as useRef2, useState as useState2 } from "react";
2660
- import { jsx as jsx25, jsxs as jsxs15 } from "react/jsx-runtime";
2688
+ import { jsx as jsx27, jsxs as jsxs16 } from "react/jsx-runtime";
2661
2689
  function InlineEdit2({
2662
2690
  analytics,
2663
2691
  label,
@@ -2665,6 +2693,8 @@ function InlineEdit2({
2665
2693
  density,
2666
2694
  isDisabled = false,
2667
2695
  shouldSelectOnMount = true,
2696
+ hasChanges = true,
2697
+ renderError,
2668
2698
  onValueChange,
2669
2699
  onCommit,
2670
2700
  onCancel
@@ -2674,7 +2704,7 @@ function InlineEdit2({
2674
2704
  const isFinished = useRef2(false);
2675
2705
  const shouldCancel = useRef2(false);
2676
2706
  const [isSaving, setSaving] = useState2(false);
2677
- const [error, setError] = useState2("");
2707
+ const [error, setError] = useState2(null);
2678
2708
  useEffect2(() => {
2679
2709
  input.current?.focus();
2680
2710
  if (shouldSelectOnMount)
@@ -2684,6 +2714,10 @@ function InlineEdit2({
2684
2714
  if (isFinished.current || isDisabled)
2685
2715
  return;
2686
2716
  isFinished.current = true;
2717
+ if (!hasChanges) {
2718
+ onCancel();
2719
+ return;
2720
+ }
2687
2721
  setSaving(true);
2688
2722
  setError("");
2689
2723
  try {
@@ -2691,19 +2725,19 @@ function InlineEdit2({
2691
2725
  track({ name: "ui.commit" });
2692
2726
  } catch (error) {
2693
2727
  isFinished.current = false;
2694
- setError(error instanceof Error ? error.message : "Could not save this edit.");
2728
+ setError(renderError ? renderError(error) : "Could not save this edit.");
2695
2729
  } finally {
2696
2730
  setSaving(false);
2697
2731
  }
2698
2732
  };
2699
- return /* @__PURE__ */ jsxs15("form", {
2733
+ return /* @__PURE__ */ jsxs16("form", {
2700
2734
  className: "flex min-w-0 flex-col gap-1",
2701
2735
  onSubmit: (event) => {
2702
2736
  event.preventDefault();
2703
2737
  save();
2704
2738
  },
2705
2739
  children: [
2706
- /* @__PURE__ */ jsx25(Input2, {
2740
+ /* @__PURE__ */ jsx27(Input2, {
2707
2741
  analytics: false,
2708
2742
  ref: input,
2709
2743
  density,
@@ -2732,7 +2766,7 @@ function InlineEdit2({
2732
2766
  }
2733
2767
  }
2734
2768
  }),
2735
- error && /* @__PURE__ */ jsx25("p", {
2769
+ error && /* @__PURE__ */ jsx27("p", {
2736
2770
  role: "alert",
2737
2771
  className: "text-xs text-destructive",
2738
2772
  children: error
@@ -2743,7 +2777,7 @@ function InlineEdit2({
2743
2777
  // src/components/StarRating.tsx
2744
2778
  import { Radio } from "@base-ui/react/radio";
2745
2779
  import { StarIcon, CircleOffIcon } from "lucide-react";
2746
- import { jsx as jsx26 } from "react/jsx-runtime";
2780
+ import { jsx as jsx28 } from "react/jsx-runtime";
2747
2781
  function StarRating2({
2748
2782
  analytics,
2749
2783
  label,
@@ -2752,7 +2786,7 @@ function StarRating2({
2752
2786
  density,
2753
2787
  onValueChange
2754
2788
  }) {
2755
- return /* @__PURE__ */ jsx26(RadioGroup2, {
2789
+ return /* @__PURE__ */ jsx28(RadioGroup2, {
2756
2790
  analytics,
2757
2791
  "aria-label": label,
2758
2792
  value,
@@ -2760,20 +2794,20 @@ function StarRating2({
2760
2794
  "data-density": density,
2761
2795
  className: "inline-flex w-fit shrink-0 items-center gap-0.5",
2762
2796
  onValueChange,
2763
- children: [1, 2, 3, 4, 5, 0].map((star) => /* @__PURE__ */ jsx26(Radio.Root, {
2797
+ children: [1, 2, 3, 4, 5, 0].map((star) => /* @__PURE__ */ jsx28(Radio.Root, {
2764
2798
  value: star,
2765
2799
  nativeButton: true,
2766
- render: /* @__PURE__ */ jsx26(AnalyticsButton, {
2800
+ render: /* @__PURE__ */ jsx28(AnalyticsButton, {
2767
2801
  component: "StarRating",
2768
2802
  type: "button"
2769
2803
  }),
2770
2804
  "aria-label": star === 0 ? "Unrated" : `${star} ${star === 1 ? "star" : "stars"}`,
2771
2805
  title: star === 0 ? "Clear rating" : `${star} stars`,
2772
2806
  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",
2773
- children: star === 0 ? /* @__PURE__ */ jsx26(CircleOffIcon, {
2807
+ children: star === 0 ? /* @__PURE__ */ jsx28(CircleOffIcon, {
2774
2808
  "aria-hidden": "true",
2775
2809
  className: "size-3"
2776
- }) : /* @__PURE__ */ jsx26(StarIcon, {
2810
+ }) : /* @__PURE__ */ jsx28(StarIcon, {
2777
2811
  "aria-hidden": "true",
2778
2812
  className: star <= value ? "size-3.5 fill-primary text-primary" : "size-3.5"
2779
2813
  })
@@ -2782,50 +2816,55 @@ function StarRating2({
2782
2816
  }
2783
2817
  // src/components/ConfirmationDialog.tsx
2784
2818
  import { useState as useState3 } from "react";
2785
- import { jsx as jsx27, jsxs as jsxs16 } from "react/jsx-runtime";
2819
+ import { jsx as jsx29, jsxs as jsxs17 } from "react/jsx-runtime";
2786
2820
  function ConfirmationDialog2({
2787
2821
  open,
2788
2822
  title,
2789
2823
  description,
2790
2824
  confirmLabel,
2791
2825
  onOpenChange,
2792
- onConfirm
2826
+ onConfirm,
2827
+ renderError
2793
2828
  }) {
2794
2829
  const [isPending, setPending] = useState3(false);
2795
- const [error, setError] = useState3("");
2796
- return /* @__PURE__ */ jsx27(AlertDialog2, {
2830
+ const [error, setError] = useState3(null);
2831
+ return /* @__PURE__ */ jsx29(AlertDialog2, {
2797
2832
  open,
2798
- onOpenChange: (next) => {
2799
- if (!isPending) {
2833
+ onOpenChange: (next, details) => {
2834
+ if (isPending)
2835
+ details.cancel();
2836
+ else {
2800
2837
  setError("");
2801
2838
  onOpenChange(next);
2802
2839
  }
2803
2840
  },
2804
- children: /* @__PURE__ */ jsxs16(AlertDialogContent2, {
2841
+ children: /* @__PURE__ */ jsxs17(AlertDialogContent2, {
2805
2842
  children: [
2806
- /* @__PURE__ */ jsxs16(AlertDialogHeader2, {
2843
+ /* @__PURE__ */ jsx29(AlertDialogHeader2, {
2844
+ children: /* @__PURE__ */ jsx29(AlertDialogTitle2, {
2845
+ children: title
2846
+ })
2847
+ }),
2848
+ /* @__PURE__ */ jsxs17(ScrollArea2, {
2807
2849
  children: [
2808
- /* @__PURE__ */ jsx27(AlertDialogTitle2, {
2809
- children: title
2810
- }),
2811
- /* @__PURE__ */ jsx27(AlertDialogDescription2, {
2850
+ /* @__PURE__ */ jsx29(AlertDialogDescription2, {
2812
2851
  children: description
2852
+ }),
2853
+ error && /* @__PURE__ */ jsx29(Alert2, {
2854
+ variant: "destructive",
2855
+ children: /* @__PURE__ */ jsx29(AlertDescription2, {
2856
+ children: error
2857
+ })
2813
2858
  })
2814
2859
  ]
2815
2860
  }),
2816
- error && /* @__PURE__ */ jsx27(Alert2, {
2817
- variant: "destructive",
2818
- children: /* @__PURE__ */ jsx27(AlertDescription2, {
2819
- children: error
2820
- })
2821
- }),
2822
- /* @__PURE__ */ jsxs16(AlertDialogFooter2, {
2861
+ /* @__PURE__ */ jsxs17(AlertDialogFooter2, {
2823
2862
  children: [
2824
- /* @__PURE__ */ jsx27(AlertDialogCancel2, {
2863
+ /* @__PURE__ */ jsx29(AlertDialogCancel2, {
2825
2864
  disabled: isPending,
2826
2865
  children: "Cancel"
2827
2866
  }),
2828
- /* @__PURE__ */ jsx27(Button2, {
2867
+ /* @__PURE__ */ jsx29(Button2, {
2829
2868
  variant: "destructive",
2830
2869
  disabled: isPending,
2831
2870
  onClick: async () => {
@@ -2835,7 +2874,7 @@ function ConfirmationDialog2({
2835
2874
  await onConfirm();
2836
2875
  onOpenChange(false);
2837
2876
  } catch (error) {
2838
- setError(error instanceof Error ? error.message : "The action could not be completed.");
2877
+ setError(renderError ? renderError(error) : "The action could not be completed.");
2839
2878
  } finally {
2840
2879
  setPending(false);
2841
2880
  }
@@ -2869,7 +2908,7 @@ function useObjectURL(file) {
2869
2908
  }
2870
2909
 
2871
2910
  // src/components/ImagePicker.tsx
2872
- import { jsx as jsx28, jsxs as jsxs17 } from "react/jsx-runtime";
2911
+ import { jsx as jsx30, jsxs as jsxs18 } from "react/jsx-runtime";
2873
2912
  function ImagePicker2({
2874
2913
  analytics,
2875
2914
  src,
@@ -2883,27 +2922,27 @@ function ImagePicker2({
2883
2922
  const input = useRef3(null);
2884
2923
  const preview = useObjectURL(file);
2885
2924
  const image = file === null ? undefined : preview ?? src;
2886
- return /* @__PURE__ */ jsxs17("figure", {
2925
+ return /* @__PURE__ */ jsxs18("figure", {
2887
2926
  className: "flex min-w-0 flex-col items-center gap-3",
2888
2927
  "aria-label": label,
2889
2928
  children: [
2890
- /* @__PURE__ */ jsxs17(Avatar2, {
2929
+ /* @__PURE__ */ jsxs18(Avatar2, {
2891
2930
  size: "preview",
2892
2931
  shape: "square",
2893
2932
  children: [
2894
- /* @__PURE__ */ jsx28(AvatarImage2, {
2933
+ /* @__PURE__ */ jsx30(AvatarImage2, {
2895
2934
  src: image,
2896
2935
  alt: label
2897
2936
  }),
2898
- /* @__PURE__ */ jsx28(AvatarFallback2, {
2899
- children: /* @__PURE__ */ jsx28(ImageIcon, {
2937
+ /* @__PURE__ */ jsx30(AvatarFallback2, {
2938
+ children: /* @__PURE__ */ jsx30(ImageIcon, {
2900
2939
  className: "size-12",
2901
2940
  "aria-hidden": "true"
2902
2941
  })
2903
2942
  })
2904
2943
  ]
2905
2944
  }),
2906
- /* @__PURE__ */ jsx28("input", {
2945
+ /* @__PURE__ */ jsx30("input", {
2907
2946
  ref: input,
2908
2947
  hidden: true,
2909
2948
  type: "file",
@@ -2919,22 +2958,22 @@ function ImagePicker2({
2919
2958
  event.currentTarget.value = "";
2920
2959
  }
2921
2960
  }),
2922
- /* @__PURE__ */ jsxs17("div", {
2961
+ /* @__PURE__ */ jsxs18("div", {
2923
2962
  className: "flex flex-wrap justify-center gap-2",
2924
2963
  children: [
2925
- /* @__PURE__ */ jsxs17(Button2, {
2964
+ /* @__PURE__ */ jsxs18(Button2, {
2926
2965
  type: "button",
2927
2966
  variant: "outline",
2928
2967
  disabled,
2929
2968
  onClick: () => input.current?.click(),
2930
2969
  children: [
2931
- /* @__PURE__ */ jsx28(UploadIcon, {
2970
+ /* @__PURE__ */ jsx30(UploadIcon, {
2932
2971
  "data-icon": "inline-start"
2933
2972
  }),
2934
2973
  "Upload image"
2935
2974
  ]
2936
2975
  }),
2937
- /* @__PURE__ */ jsx28(Button2, {
2976
+ /* @__PURE__ */ jsx30(Button2, {
2938
2977
  type: "button",
2939
2978
  variant: "outline",
2940
2979
  disabled: disabled || !image,
@@ -2948,9 +2987,9 @@ function ImagePicker2({
2948
2987
  }
2949
2988
  // src/components/Meter.tsx
2950
2989
  import { Meter as MeterPrimitive } from "@base-ui/react/meter";
2951
- import { jsx as jsx29 } from "react/jsx-runtime";
2990
+ import { jsx as jsx31 } from "react/jsx-runtime";
2952
2991
  function Meter2({ density, className, ...props }) {
2953
- return /* @__PURE__ */ jsx29(MeterPrimitive.Root, {
2992
+ return /* @__PURE__ */ jsx31(MeterPrimitive.Root, {
2954
2993
  "data-density": density,
2955
2994
  "data-slot": "meter",
2956
2995
  className: (state) => cn2("flex min-w-0 flex-wrap items-center gap-field-gap", typeof className === "function" ? className(state) : className),
@@ -2958,7 +2997,7 @@ function Meter2({ density, className, ...props }) {
2958
2997
  });
2959
2998
  }
2960
2999
  function MeterLabel2({ density, className, ...props }) {
2961
- return /* @__PURE__ */ jsx29(MeterPrimitive.Label, {
3000
+ return /* @__PURE__ */ jsx31(MeterPrimitive.Label, {
2962
3001
  "data-density": density,
2963
3002
  "data-slot": "meter-label",
2964
3003
  className: (state) => cn2("text-sm font-medium", typeof className === "function" ? className(state) : className),
@@ -2966,7 +3005,7 @@ function MeterLabel2({ density, className, ...props }) {
2966
3005
  });
2967
3006
  }
2968
3007
  function MeterValue2({ density, className, ...props }) {
2969
- return /* @__PURE__ */ jsx29(MeterPrimitive.Value, {
3008
+ return /* @__PURE__ */ jsx31(MeterPrimitive.Value, {
2970
3009
  "data-density": density,
2971
3010
  "data-slot": "meter-value",
2972
3011
  className: (state) => cn2("ms-auto text-sm text-muted-foreground tabular-nums", typeof className === "function" ? className(state) : className),
@@ -2974,7 +3013,7 @@ function MeterValue2({ density, className, ...props }) {
2974
3013
  });
2975
3014
  }
2976
3015
  function MeterTrack2({ density, className, ...props }) {
2977
- return /* @__PURE__ */ jsx29(MeterPrimitive.Track, {
3016
+ return /* @__PURE__ */ jsx31(MeterPrimitive.Track, {
2978
3017
  "data-density": density,
2979
3018
  "data-slot": "meter-track",
2980
3019
  className: (state) => cn2("h-1 w-full overflow-hidden rounded-sm bg-muted", typeof className === "function" ? className(state) : className),
@@ -2986,7 +3025,7 @@ function MeterIndicator2({
2986
3025
  className,
2987
3026
  ...props
2988
3027
  }) {
2989
- return /* @__PURE__ */ jsx29(MeterPrimitive.Indicator, {
3028
+ return /* @__PURE__ */ jsx31(MeterPrimitive.Indicator, {
2990
3029
  "data-density": density,
2991
3030
  "data-slot": "meter-indicator",
2992
3031
  className: (state) => cn2("h-full bg-primary transition-[width] motion-reduce:transition-none", typeof className === "function" ? className(state) : className),
@@ -2995,10 +3034,10 @@ function MeterIndicator2({
2995
3034
  }
2996
3035
  // src/components/Stepper.tsx
2997
3036
  import { Tabs as TabsPrimitive } from "@base-ui/react/tabs";
2998
- import { CheckIcon as CheckIcon4 } from "lucide-react";
2999
- import { jsx as jsx30 } from "react/jsx-runtime";
3037
+ import { CheckIcon as CheckIcon3 } from "lucide-react";
3038
+ import { jsx as jsx32 } from "react/jsx-runtime";
3000
3039
  function Stepper2({ density, className, ...props }) {
3001
- return /* @__PURE__ */ jsx30(TabsPrimitive.Root, {
3040
+ return /* @__PURE__ */ jsx32(TabsPrimitive.Root, {
3002
3041
  "data-density": density,
3003
3042
  "data-slot": "stepper",
3004
3043
  className: (state) => cn2("group/stepper flex min-w-0 flex-col gap-panel data-[orientation=vertical]:flex-row", typeof className === "function" ? className(state) : className),
@@ -3011,7 +3050,7 @@ function StepperList2({
3011
3050
  activateOnFocus = false,
3012
3051
  ...props
3013
3052
  }) {
3014
- return /* @__PURE__ */ jsx30(TabsPrimitive.List, {
3053
+ return /* @__PURE__ */ jsx32(TabsPrimitive.List, {
3015
3054
  "data-density": density,
3016
3055
  "data-slot": "stepper-list",
3017
3056
  activateOnFocus,
@@ -3020,7 +3059,7 @@ function StepperList2({
3020
3059
  });
3021
3060
  }
3022
3061
  function StepperTrigger2({ density, className, ...props }) {
3023
- return /* @__PURE__ */ jsx30(TabsPrimitive.Tab, {
3062
+ return /* @__PURE__ */ jsx32(TabsPrimitive.Tab, {
3024
3063
  "data-density": density,
3025
3064
  "data-slot": "stepper-trigger",
3026
3065
  className: (state) => cn2("group/step flex min-h-control items-center gap-control-gap rounded-sm text-sm text-muted-foreground outline-none focus-visible:ring-1 focus-visible:ring-ring data-active:text-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:opacity-50", typeof className === "function" ? className(state) : className),
@@ -3028,17 +3067,17 @@ function StepperTrigger2({ density, className, ...props }) {
3028
3067
  });
3029
3068
  }
3030
3069
  function StepperIndicator2({ completed = false, children, className, ...props }) {
3031
- return /* @__PURE__ */ jsx30("span", {
3070
+ return /* @__PURE__ */ jsx32("span", {
3032
3071
  "aria-hidden": "true",
3033
3072
  "data-slot": "stepper-indicator",
3034
3073
  "data-completed": completed || undefined,
3035
3074
  className: cn2("flex size-control shrink-0 items-center justify-center rounded-sm border border-input bg-secondary text-sm tabular-nums group-data-active/step:border-primary group-data-active/step:bg-primary group-data-active/step:text-primary-foreground data-completed:border-primary data-completed:text-primary [&_svg]:size-3.5", className),
3036
3075
  ...props,
3037
- children: completed ? /* @__PURE__ */ jsx30(CheckIcon4, {}) : children
3076
+ children: completed ? /* @__PURE__ */ jsx32(CheckIcon3, {}) : children
3038
3077
  });
3039
3078
  }
3040
3079
  function StepperContent2({ density, className, ...props }) {
3041
- return /* @__PURE__ */ jsx30(TabsPrimitive.Panel, {
3080
+ return /* @__PURE__ */ jsx32(TabsPrimitive.Panel, {
3042
3081
  "data-density": density,
3043
3082
  "data-slot": "stepper-content",
3044
3083
  className: (state) => cn2("min-w-0 flex-1 outline-none focus-visible:ring-1 focus-visible:ring-ring", typeof className === "function" ? className(state) : className),
@@ -3046,7 +3085,7 @@ function StepperContent2({ density, className, ...props }) {
3046
3085
  });
3047
3086
  }
3048
3087
  // src/components/AppShell.tsx
3049
- import { jsx as jsx31, jsxs as jsxs18 } from "react/jsx-runtime";
3088
+ import { jsx as jsx33, jsxs as jsxs19 } from "react/jsx-runtime";
3050
3089
  function AppShell2({
3051
3090
  navigation,
3052
3091
  brand,
@@ -3057,39 +3096,41 @@ function AppShell2({
3057
3096
  height = "100dvh",
3058
3097
  defaultSidebarOpen = true,
3059
3098
  label = "Application",
3099
+ content = "scroll",
3060
3100
  density
3061
3101
  }) {
3062
- return /* @__PURE__ */ jsxs18(SidebarProvider2, {
3102
+ return /* @__PURE__ */ jsxs19(SidebarProvider2, {
3063
3103
  density,
3064
3104
  defaultOpen: defaultSidebarOpen,
3065
3105
  className: "relative min-h-0",
3066
3106
  style: { height },
3067
3107
  "data-scroll": "none",
3068
3108
  children: [
3069
- /* @__PURE__ */ jsxs18(Sidebar2, {
3109
+ /* @__PURE__ */ jsxs19(Sidebar2, {
3070
3110
  collapsible: "icon",
3071
3111
  position: "container",
3072
3112
  children: [
3073
- /* @__PURE__ */ jsx31(SidebarHeader2, {
3113
+ /* @__PURE__ */ jsx33(SidebarHeader2, {
3074
3114
  children: brand
3075
3115
  }),
3076
- /* @__PURE__ */ jsx31(SidebarContent2, {
3077
- children: /* @__PURE__ */ jsx31("nav", {
3116
+ /* @__PURE__ */ jsx33(SidebarContent2, {
3117
+ children: /* @__PURE__ */ jsx33("nav", {
3078
3118
  "aria-label": "Primary navigation",
3079
- children: /* @__PURE__ */ jsx31(SidebarGroup2, {
3080
- children: /* @__PURE__ */ jsx31(SidebarMenu2, {
3081
- children: navigation.map((item) => /* @__PURE__ */ jsx31(SidebarMenuItem2, {
3082
- children: /* @__PURE__ */ jsxs18(SidebarMenuButton2, {
3083
- render: /* @__PURE__ */ jsx31(AnalyticsLink, {
3119
+ children: /* @__PURE__ */ jsx33(SidebarGroup2, {
3120
+ children: /* @__PURE__ */ jsx33(SidebarMenu2, {
3121
+ children: navigation.map((item) => /* @__PURE__ */ jsx33(SidebarMenuItem2, {
3122
+ children: /* @__PURE__ */ jsxs19(SidebarMenuButton2, {
3123
+ render: /* @__PURE__ */ jsx33(AnalyticsLink, {
3084
3124
  component: "AppShell",
3085
- href: item.href,
3086
- "aria-current": item.active ? "page" : undefined
3125
+ render: item.render,
3126
+ ...item.href === undefined ? {} : { href: item.href },
3127
+ ...item.active ? { "aria-current": "page" } : {}
3087
3128
  }),
3088
3129
  isActive: item.active,
3089
3130
  tooltip: item.label,
3090
3131
  children: [
3091
3132
  item.icon,
3092
- /* @__PURE__ */ jsx31("span", {
3133
+ /* @__PURE__ */ jsx33("span", {
3093
3134
  children: item.label
3094
3135
  })
3095
3136
  ]
@@ -3099,36 +3140,41 @@ function AppShell2({
3099
3140
  })
3100
3141
  })
3101
3142
  }),
3102
- sidebarFooter && /* @__PURE__ */ jsx31(SidebarFooter2, {
3143
+ sidebarFooter && /* @__PURE__ */ jsx33(SidebarFooter2, {
3103
3144
  children: sidebarFooter
3104
3145
  })
3105
3146
  ]
3106
3147
  }),
3107
- /* @__PURE__ */ jsxs18(SidebarInset2, {
3148
+ /* @__PURE__ */ jsxs19(SidebarInset2, {
3108
3149
  "aria-label": label,
3109
3150
  className: "min-h-0 min-w-0",
3110
3151
  "data-scroll": "none",
3111
3152
  children: [
3112
- /* @__PURE__ */ jsxs18("header", {
3153
+ /* @__PURE__ */ jsxs19("header", {
3113
3154
  "data-scroll": "none",
3114
3155
  className: "flex shrink-0 items-center gap-control-gap border-b border-border p-panel",
3115
3156
  children: [
3116
- /* @__PURE__ */ jsx31(SidebarTrigger2, {}),
3117
- /* @__PURE__ */ jsx31(Separator2, {
3157
+ /* @__PURE__ */ jsx33(SidebarTrigger2, {}),
3158
+ /* @__PURE__ */ jsx33(Separator2, {
3118
3159
  orientation: "vertical",
3119
3160
  className: "h-control"
3120
3161
  }),
3121
3162
  header
3122
3163
  ]
3123
3164
  }),
3124
- /* @__PURE__ */ jsx31(ScrollArea2, {
3165
+ content === "fill" ? /* @__PURE__ */ jsx33("div", {
3166
+ "data-slot": "app-shell-content",
3167
+ "data-scroll": "none",
3168
+ className: "flex min-h-0 min-w-0 flex-1 flex-col",
3169
+ children
3170
+ }) : /* @__PURE__ */ jsx33(ScrollArea2, {
3125
3171
  className: "min-h-0 flex-1",
3126
- children: /* @__PURE__ */ jsx31("div", {
3172
+ children: /* @__PURE__ */ jsx33("div", {
3127
3173
  className: "flex min-w-0 flex-col gap-panel p-panel",
3128
3174
  children
3129
3175
  })
3130
3176
  }),
3131
- footer && /* @__PURE__ */ jsx31("footer", {
3177
+ footer && /* @__PURE__ */ jsx33("footer", {
3132
3178
  className: "shrink-0 border-t border-border p-panel",
3133
3179
  "data-scroll": "none",
3134
3180
  children: footer
@@ -3138,37 +3184,528 @@ function AppShell2({
3138
3184
  ]
3139
3185
  });
3140
3186
  }
3187
+ // src/components/Stack.tsx
3188
+ import { mergeProps as mergeProps9 } from "@base-ui/react/merge-props";
3189
+ import { useRender as useRender10 } from "@base-ui/react/use-render";
3190
+
3191
+ // src/layout/constants.ts
3192
+ var GAP_CLASSES = {
3193
+ none: "gap-0",
3194
+ control: "gap-control-gap",
3195
+ "panel-sm": "gap-panel-sm",
3196
+ panel: "gap-panel",
3197
+ field: "gap-field-gap",
3198
+ section: "gap-section"
3199
+ };
3200
+ var PADDING_CLASSES = {
3201
+ none: "p-0",
3202
+ control: "p-control-gap",
3203
+ "panel-sm": "p-panel-sm",
3204
+ panel: "p-panel",
3205
+ field: "p-field-gap",
3206
+ section: "p-section"
3207
+ };
3208
+ var HEIGHT_CLASSES = {
3209
+ auto: "",
3210
+ full: "h-full min-h-0",
3211
+ viewport: "h-dvh min-h-0",
3212
+ "min-viewport": "min-h-dvh"
3213
+ };
3214
+ var GROW_CLASSES = "min-h-0 min-w-0 flex-1";
3215
+ var STACK_DIRECTION_CLASSES = {
3216
+ base: { vertical: "flex-col", horizontal: "flex-row" },
3217
+ sm: { vertical: "sm:flex-col", horizontal: "sm:flex-row" },
3218
+ md: { vertical: "md:flex-col", horizontal: "md:flex-row" },
3219
+ lg: { vertical: "lg:flex-col", horizontal: "lg:flex-row" },
3220
+ xl: { vertical: "xl:flex-col", horizontal: "xl:flex-row" }
3221
+ };
3222
+ var STACK_ALIGN_CLASSES = {
3223
+ start: "items-start",
3224
+ center: "items-center",
3225
+ end: "items-end",
3226
+ stretch: "items-stretch",
3227
+ baseline: "items-baseline"
3228
+ };
3229
+ var STACK_JUSTIFY_CLASSES = {
3230
+ start: "justify-start",
3231
+ center: "justify-center",
3232
+ end: "justify-end",
3233
+ between: "justify-between"
3234
+ };
3235
+ var GRID_COLUMN_CLASSES = {
3236
+ base: {
3237
+ 1: "grid-cols-1",
3238
+ 2: "grid-cols-2",
3239
+ 3: "grid-cols-3",
3240
+ 4: "grid-cols-4",
3241
+ 5: "grid-cols-5",
3242
+ 6: "grid-cols-6",
3243
+ 12: "grid-cols-12"
3244
+ },
3245
+ sm: {
3246
+ 1: "sm:grid-cols-1",
3247
+ 2: "sm:grid-cols-2",
3248
+ 3: "sm:grid-cols-3",
3249
+ 4: "sm:grid-cols-4",
3250
+ 5: "sm:grid-cols-5",
3251
+ 6: "sm:grid-cols-6",
3252
+ 12: "sm:grid-cols-12"
3253
+ },
3254
+ md: {
3255
+ 1: "md:grid-cols-1",
3256
+ 2: "md:grid-cols-2",
3257
+ 3: "md:grid-cols-3",
3258
+ 4: "md:grid-cols-4",
3259
+ 5: "md:grid-cols-5",
3260
+ 6: "md:grid-cols-6",
3261
+ 12: "md:grid-cols-12"
3262
+ },
3263
+ lg: {
3264
+ 1: "lg:grid-cols-1",
3265
+ 2: "lg:grid-cols-2",
3266
+ 3: "lg:grid-cols-3",
3267
+ 4: "lg:grid-cols-4",
3268
+ 5: "lg:grid-cols-5",
3269
+ 6: "lg:grid-cols-6",
3270
+ 12: "lg:grid-cols-12"
3271
+ },
3272
+ xl: {
3273
+ 1: "xl:grid-cols-1",
3274
+ 2: "xl:grid-cols-2",
3275
+ 3: "xl:grid-cols-3",
3276
+ 4: "xl:grid-cols-4",
3277
+ 5: "xl:grid-cols-5",
3278
+ 6: "xl:grid-cols-6",
3279
+ 12: "xl:grid-cols-12"
3280
+ }
3281
+ };
3282
+ var GRID_MIN_COLUMN_WIDTH_CLASSES = {
3283
+ xs: "grid-cols-[repeat(auto-fill,minmax(min(100%,8rem),1fr))]",
3284
+ sm: "grid-cols-[repeat(auto-fill,minmax(min(100%,12rem),1fr))]",
3285
+ md: "grid-cols-[repeat(auto-fill,minmax(min(100%,16rem),1fr))]",
3286
+ lg: "grid-cols-[repeat(auto-fill,minmax(min(100%,22rem),1fr))]"
3287
+ };
3288
+ var GRID_ALIGN_CLASSES = {
3289
+ start: "items-start",
3290
+ center: "items-center",
3291
+ end: "items-end",
3292
+ stretch: "items-stretch"
3293
+ };
3294
+ var GRID_SPAN_CLASSES = {
3295
+ base: {
3296
+ 1: "col-span-1",
3297
+ 2: "col-span-2",
3298
+ 3: "col-span-3",
3299
+ 4: "col-span-4",
3300
+ 5: "col-span-5",
3301
+ 6: "col-span-6",
3302
+ full: "col-span-full"
3303
+ },
3304
+ sm: {
3305
+ 1: "sm:col-span-1",
3306
+ 2: "sm:col-span-2",
3307
+ 3: "sm:col-span-3",
3308
+ 4: "sm:col-span-4",
3309
+ 5: "sm:col-span-5",
3310
+ 6: "sm:col-span-6",
3311
+ full: "sm:col-span-full"
3312
+ },
3313
+ md: {
3314
+ 1: "md:col-span-1",
3315
+ 2: "md:col-span-2",
3316
+ 3: "md:col-span-3",
3317
+ 4: "md:col-span-4",
3318
+ 5: "md:col-span-5",
3319
+ 6: "md:col-span-6",
3320
+ full: "md:col-span-full"
3321
+ },
3322
+ lg: {
3323
+ 1: "lg:col-span-1",
3324
+ 2: "lg:col-span-2",
3325
+ 3: "lg:col-span-3",
3326
+ 4: "lg:col-span-4",
3327
+ 5: "lg:col-span-5",
3328
+ 6: "lg:col-span-6",
3329
+ full: "lg:col-span-full"
3330
+ },
3331
+ xl: {
3332
+ 1: "xl:col-span-1",
3333
+ 2: "xl:col-span-2",
3334
+ 3: "xl:col-span-3",
3335
+ 4: "xl:col-span-4",
3336
+ 5: "xl:col-span-5",
3337
+ 6: "xl:col-span-6",
3338
+ full: "xl:col-span-full"
3339
+ }
3340
+ };
3341
+ var CONTAINER_WIDTH_CLASSES = {
3342
+ xs: "max-w-xs",
3343
+ sm: "max-w-sm",
3344
+ md: "max-w-2xl",
3345
+ lg: "max-w-5xl",
3346
+ xl: "max-w-7xl",
3347
+ full: "max-w-none"
3348
+ };
3349
+ var LAYOUT_BREAKPOINTS = ["base", "sm", "md", "lg", "xl"];
3350
+
3351
+ // src/layout/responsiveClassNames.ts
3352
+ function isBreakpointMap(value) {
3353
+ return typeof value === "object";
3354
+ }
3355
+ function responsiveClassNames(value, classes) {
3356
+ if (value === undefined)
3357
+ return "";
3358
+ if (!isBreakpointMap(value))
3359
+ return classes.base[value];
3360
+ return LAYOUT_BREAKPOINTS.flatMap((breakpoint) => {
3361
+ const breakpointValue = value[breakpoint];
3362
+ return breakpointValue === undefined ? [] : [classes[breakpoint][breakpointValue]];
3363
+ }).join(" ");
3364
+ }
3365
+
3366
+ // src/components/Stack.tsx
3367
+ function Stack2({
3368
+ direction = "vertical",
3369
+ gap = "none",
3370
+ padding = "none",
3371
+ align,
3372
+ justify,
3373
+ wrap = false,
3374
+ grow = false,
3375
+ height = "auto",
3376
+ density,
3377
+ className,
3378
+ render,
3379
+ ...props
3380
+ }) {
3381
+ return useRender10({
3382
+ defaultTagName: "div",
3383
+ props: mergeProps9({
3384
+ className: cn2("flex", responsiveClassNames(direction, STACK_DIRECTION_CLASSES), GAP_CLASSES[gap], PADDING_CLASSES[padding], align && STACK_ALIGN_CLASSES[align], justify && STACK_JUSTIFY_CLASSES[justify], wrap && "flex-wrap", grow && GROW_CLASSES, HEIGHT_CLASSES[height], className)
3385
+ }, props),
3386
+ render,
3387
+ state: { slot: "stack", density }
3388
+ });
3389
+ }
3390
+ // src/components/Grid.tsx
3391
+ import { mergeProps as mergeProps10 } from "@base-ui/react/merge-props";
3392
+ import { useRender as useRender11 } from "@base-ui/react/use-render";
3393
+ function Grid2({
3394
+ columns = 1,
3395
+ minColumnWidth,
3396
+ gap = "panel",
3397
+ padding = "none",
3398
+ align,
3399
+ grow = false,
3400
+ height = "auto",
3401
+ density,
3402
+ className,
3403
+ render,
3404
+ ...props
3405
+ }) {
3406
+ return useRender11({
3407
+ defaultTagName: "div",
3408
+ props: mergeProps10({
3409
+ className: cn2("grid min-w-0", minColumnWidth === undefined ? responsiveClassNames(columns, GRID_COLUMN_CLASSES) : GRID_MIN_COLUMN_WIDTH_CLASSES[minColumnWidth], GAP_CLASSES[gap], PADDING_CLASSES[padding], align && GRID_ALIGN_CLASSES[align], grow && GROW_CLASSES, HEIGHT_CLASSES[height], className)
3410
+ }, props),
3411
+ render,
3412
+ state: { slot: "grid", density }
3413
+ });
3414
+ }
3415
+ function GridItem2({ span, density, className, render, ...props }) {
3416
+ return useRender11({
3417
+ defaultTagName: "div",
3418
+ props: mergeProps10({ className: cn2("min-w-0", responsiveClassNames(span, GRID_SPAN_CLASSES), className) }, props),
3419
+ render,
3420
+ state: { slot: "grid-item", density }
3421
+ });
3422
+ }
3423
+ // src/components/Container.tsx
3424
+ import { mergeProps as mergeProps11 } from "@base-ui/react/merge-props";
3425
+ import { useRender as useRender12 } from "@base-ui/react/use-render";
3426
+ function Container2({
3427
+ width = "lg",
3428
+ padding = "none",
3429
+ density,
3430
+ className,
3431
+ render,
3432
+ ...props
3433
+ }) {
3434
+ return useRender12({
3435
+ defaultTagName: "div",
3436
+ props: mergeProps11({
3437
+ className: cn2("mx-auto w-full min-w-0", CONTAINER_WIDTH_CLASSES[width], PADDING_CLASSES[padding], className)
3438
+ }, props),
3439
+ render,
3440
+ state: { slot: "container", density }
3441
+ });
3442
+ }
3443
+ // src/components/Text.tsx
3444
+ import { mergeProps as mergeProps12 } from "@base-ui/react/merge-props";
3445
+ import { useRender as useRender13 } from "@base-ui/react/use-render";
3446
+ var SIZE_CLASSES = {
3447
+ xs: "text-xs",
3448
+ sm: "text-sm",
3449
+ base: "text-base",
3450
+ lg: "text-lg"
3451
+ };
3452
+ var TONE_CLASSES = {
3453
+ default: "text-foreground",
3454
+ muted: "text-muted-foreground",
3455
+ faint: "text-faint-foreground",
3456
+ primary: "text-primary",
3457
+ success: "text-success",
3458
+ warning: "text-warning",
3459
+ destructive: "text-destructive"
3460
+ };
3461
+ var WEIGHT_CLASSES = {
3462
+ normal: "font-normal",
3463
+ medium: "font-medium",
3464
+ semibold: "font-semibold"
3465
+ };
3466
+ var ALIGN_CLASSES = {
3467
+ start: "text-start",
3468
+ center: "text-center",
3469
+ end: "text-end"
3470
+ };
3471
+ function Text2({
3472
+ size = "base",
3473
+ tone = "default",
3474
+ weight = "normal",
3475
+ align = "start",
3476
+ truncate = false,
3477
+ tabular = false,
3478
+ density,
3479
+ className,
3480
+ render,
3481
+ ...props
3482
+ }) {
3483
+ return useRender13({
3484
+ defaultTagName: "p",
3485
+ props: mergeProps12({
3486
+ className: cn2("min-w-0", SIZE_CLASSES[size], TONE_CLASSES[tone], WEIGHT_CLASSES[weight], ALIGN_CLASSES[align], truncate ? "truncate" : "break-words", tabular && "tabular-nums", className)
3487
+ }, props),
3488
+ render,
3489
+ state: { slot: "text", density }
3490
+ });
3491
+ }
3492
+ // src/components/Heading.tsx
3493
+ import { mergeProps as mergeProps13 } from "@base-ui/react/merge-props";
3494
+ import { useRender as useRender14 } from "@base-ui/react/use-render";
3495
+ var HEADING_TAGS = { 1: "h1", 2: "h2", 3: "h3", 4: "h4", 5: "h5", 6: "h6" };
3496
+ var DEFAULT_SIZES = { 1: "xl", 2: "lg", 3: "base", 4: "sm", 5: "sm", 6: "sm" };
3497
+ var SIZE_CLASSES2 = {
3498
+ sm: "text-sm",
3499
+ base: "text-base",
3500
+ lg: "text-lg",
3501
+ xl: "text-xl"
3502
+ };
3503
+ function Heading2({ level, size, truncate = false, density, className, render, ...props }) {
3504
+ return useRender14({
3505
+ defaultTagName: HEADING_TAGS[level],
3506
+ props: mergeProps13({
3507
+ className: cn2("min-w-0 font-semibold text-foreground", SIZE_CLASSES2[size ?? DEFAULT_SIZES[level]], truncate ? "truncate" : "break-words", className)
3508
+ }, props),
3509
+ render,
3510
+ state: { slot: "heading", level, density }
3511
+ });
3512
+ }
3513
+ // src/components/WeatherSummary.tsx
3514
+ import { mergeProps as mergeProps14 } from "@base-ui/react/merge-props";
3515
+ import { useRender as useRender15 } from "@base-ui/react/use-render";
3516
+ import {
3517
+ CloudDrizzleIcon,
3518
+ CloudFogIcon,
3519
+ CloudIcon,
3520
+ CloudLightningIcon,
3521
+ CloudRainIcon,
3522
+ CloudSnowIcon,
3523
+ CloudSunIcon,
3524
+ DropletIcon,
3525
+ SunIcon
3526
+ } from "lucide-react";
3527
+ import { jsx as jsx34, jsxs as jsxs20, Fragment as Fragment5 } from "react/jsx-runtime";
3528
+ var CONDITION_ICONS = {
3529
+ clear: SunIcon,
3530
+ "partly-cloudy": CloudSunIcon,
3531
+ cloudy: CloudIcon,
3532
+ fog: CloudFogIcon,
3533
+ drizzle: CloudDrizzleIcon,
3534
+ rain: CloudRainIcon,
3535
+ snow: CloudSnowIcon,
3536
+ thunderstorm: CloudLightningIcon
3537
+ };
3538
+ var CONDITION_LABELS = {
3539
+ clear: "Clear",
3540
+ "partly-cloudy": "Partly cloudy",
3541
+ cloudy: "Cloudy",
3542
+ fog: "Fog",
3543
+ drizzle: "Drizzle",
3544
+ rain: "Rain",
3545
+ snow: "Snow",
3546
+ thunderstorm: "Thunderstorm"
3547
+ };
3548
+ function formatTemperature(value, unit, locale) {
3549
+ return new Intl.NumberFormat(locale, { style: "unit", unit, maximumFractionDigits: 0 }).format(value);
3550
+ }
3551
+ function formatProbability(value, locale) {
3552
+ const share = Math.min(100, Math.max(0, value)) / 100;
3553
+ return new Intl.NumberFormat(locale, { style: "percent", maximumFractionDigits: 0 }).format(share);
3554
+ }
3555
+ function WeatherSummary2({
3556
+ label,
3557
+ condition,
3558
+ conditionLabel = CONDITION_LABELS[condition],
3559
+ high,
3560
+ low,
3561
+ precipitationProbability,
3562
+ unit = "celsius",
3563
+ locale,
3564
+ variant = "default",
3565
+ density,
3566
+ className,
3567
+ render,
3568
+ ...props
3569
+ }) {
3570
+ const ConditionIcon = CONDITION_ICONS[condition];
3571
+ const highText = formatTemperature(high, unit, locale);
3572
+ const lowText = formatTemperature(low, unit, locale);
3573
+ const probabilityText = precipitationProbability === undefined ? undefined : formatProbability(precipitationProbability, locale);
3574
+ const isCompact = variant === "compact";
3575
+ return useRender15({
3576
+ defaultTagName: "div",
3577
+ props: mergeProps14({
3578
+ className: cn2("flex min-w-0 text-foreground", isCompact ? "flex-col items-center gap-1 text-center" : "items-center gap-panel-sm", className),
3579
+ children: /* @__PURE__ */ jsxs20(Fragment5, {
3580
+ children: [
3581
+ /* @__PURE__ */ jsx34(ConditionIcon, {
3582
+ "aria-hidden": "true",
3583
+ "data-slot": "weather-summary-icon",
3584
+ className: cn2("shrink-0 text-muted-foreground", isCompact ? "size-6" : "size-8")
3585
+ }),
3586
+ /* @__PURE__ */ jsxs20("div", {
3587
+ className: cn2("flex min-w-0 flex-col gap-0.5", isCompact && "items-center"),
3588
+ children: [
3589
+ /* @__PURE__ */ jsx34("div", {
3590
+ className: "text-sm font-medium break-words",
3591
+ children: label
3592
+ }),
3593
+ /* @__PURE__ */ jsx34("div", {
3594
+ className: cn2("text-sm text-muted-foreground", isCompact && "sr-only"),
3595
+ children: conditionLabel
3596
+ }),
3597
+ /* @__PURE__ */ jsxs20("div", {
3598
+ className: "flex flex-wrap items-baseline gap-x-2 text-sm tabular-nums",
3599
+ children: [
3600
+ /* @__PURE__ */ jsxs20("span", {
3601
+ children: [
3602
+ /* @__PURE__ */ jsx34("span", {
3603
+ className: "sr-only",
3604
+ children: "High "
3605
+ }),
3606
+ /* @__PURE__ */ jsx34("span", {
3607
+ className: "font-medium",
3608
+ children: highText
3609
+ })
3610
+ ]
3611
+ }),
3612
+ /* @__PURE__ */ jsxs20("span", {
3613
+ className: "text-muted-foreground",
3614
+ children: [
3615
+ /* @__PURE__ */ jsx34("span", {
3616
+ className: "sr-only",
3617
+ children: "Low "
3618
+ }),
3619
+ lowText
3620
+ ]
3621
+ })
3622
+ ]
3623
+ }),
3624
+ probabilityText !== undefined && /* @__PURE__ */ jsxs20("div", {
3625
+ className: "flex items-center gap-1 text-xs text-muted-foreground tabular-nums",
3626
+ children: [
3627
+ /* @__PURE__ */ jsx34(DropletIcon, {
3628
+ "aria-hidden": "true",
3629
+ className: "size-3 shrink-0"
3630
+ }),
3631
+ /* @__PURE__ */ jsxs20("span", {
3632
+ children: [
3633
+ probabilityText,
3634
+ /* @__PURE__ */ jsx34("span", {
3635
+ className: "sr-only",
3636
+ children: " chance of precipitation"
3637
+ })
3638
+ ]
3639
+ })
3640
+ ]
3641
+ })
3642
+ ]
3643
+ })
3644
+ ]
3645
+ })
3646
+ }, props),
3647
+ render,
3648
+ state: { slot: "weather-summary", condition, density }
3649
+ });
3650
+ }
3651
+ // src/components/WeatherForecast.tsx
3652
+ import { jsx as jsx35 } from "react/jsx-runtime";
3653
+ function WeatherForecast2({
3654
+ days,
3655
+ label,
3656
+ unit,
3657
+ locale,
3658
+ variant = "strip",
3659
+ density,
3660
+ className,
3661
+ ...props
3662
+ }) {
3663
+ return /* @__PURE__ */ jsx35("ul", {
3664
+ "aria-label": label,
3665
+ "data-slot": "weather-forecast",
3666
+ "data-density": density,
3667
+ className: cn2("grid min-w-0 gap-panel-sm", variant === "strip" && "grid-cols-[repeat(auto-fill,minmax(6rem,1fr))]", className),
3668
+ ...props,
3669
+ children: days.map(({ id, ...day }) => /* @__PURE__ */ jsx35(WeatherSummary2, {
3670
+ ...day,
3671
+ unit,
3672
+ locale,
3673
+ variant: variant === "strip" ? "compact" : "default",
3674
+ render: /* @__PURE__ */ jsx35("li", {})
3675
+ }, id))
3676
+ });
3677
+ }
3141
3678
  // src/components/PageHeader.tsx
3142
- import { jsx as jsx32, jsxs as jsxs19 } from "react/jsx-runtime";
3679
+ import { jsx as jsx36, jsxs as jsxs21 } from "react/jsx-runtime";
3143
3680
  function PageHeader2({ title, eyebrow, description, breadcrumbs, actions, density }) {
3144
- return /* @__PURE__ */ jsxs19("header", {
3681
+ return /* @__PURE__ */ jsxs21("header", {
3145
3682
  "data-density": density,
3146
3683
  "data-slot": "page-header",
3147
3684
  "data-scroll": "none",
3148
3685
  className: "flex min-w-0 flex-col gap-field-gap",
3149
3686
  children: [
3150
3687
  breadcrumbs,
3151
- /* @__PURE__ */ jsxs19("div", {
3688
+ /* @__PURE__ */ jsxs21("div", {
3152
3689
  className: "flex min-w-0 flex-wrap items-start justify-between gap-panel",
3153
3690
  children: [
3154
- /* @__PURE__ */ jsxs19("div", {
3691
+ /* @__PURE__ */ jsxs21("div", {
3155
3692
  className: "min-w-0",
3156
3693
  children: [
3157
- eyebrow != null && /* @__PURE__ */ jsx32("div", {
3694
+ eyebrow != null && /* @__PURE__ */ jsx36("div", {
3158
3695
  className: "mb-2 text-xs font-medium tracking-widest text-muted-foreground",
3159
3696
  children: eyebrow
3160
3697
  }),
3161
- /* @__PURE__ */ jsx32("h1", {
3698
+ /* @__PURE__ */ jsx36("h1", {
3162
3699
  className: "text-xl font-semibold text-foreground",
3163
3700
  children: title
3164
3701
  }),
3165
- description && /* @__PURE__ */ jsx32("div", {
3702
+ description && /* @__PURE__ */ jsx36("div", {
3166
3703
  className: "mt-1 text-sm text-muted-foreground",
3167
3704
  children: description
3168
3705
  })
3169
3706
  ]
3170
3707
  }),
3171
- actions && /* @__PURE__ */ jsx32("div", {
3708
+ actions && /* @__PURE__ */ jsx36("div", {
3172
3709
  className: "flex min-w-0 max-w-full flex-wrap items-center gap-control-gap wrap-anywhere",
3173
3710
  children: actions
3174
3711
  })
@@ -3178,7 +3715,7 @@ function PageHeader2({ title, eyebrow, description, breadcrumbs, actions, densit
3178
3715
  });
3179
3716
  }
3180
3717
  // src/components/WorkspaceSwitcher.tsx
3181
- import { jsx as jsx33, jsxs as jsxs20 } from "react/jsx-runtime";
3718
+ import { jsx as jsx37, jsxs as jsxs22 } from "react/jsx-runtime";
3182
3719
  function WorkspaceSwitcher2({
3183
3720
  workspaces,
3184
3721
  value,
@@ -3188,7 +3725,7 @@ function WorkspaceSwitcher2({
3188
3725
  label = "Workspace",
3189
3726
  density
3190
3727
  }) {
3191
- return /* @__PURE__ */ jsxs20(Select2, {
3728
+ return /* @__PURE__ */ jsxs22(Select2, {
3192
3729
  items: workspaces,
3193
3730
  value,
3194
3731
  defaultValue: defaultValue ?? workspaces[0]?.value,
@@ -3198,15 +3735,15 @@ function WorkspaceSwitcher2({
3198
3735
  },
3199
3736
  disabled,
3200
3737
  children: [
3201
- /* @__PURE__ */ jsx33(SelectTrigger2, {
3738
+ /* @__PURE__ */ jsx37(SelectTrigger2, {
3202
3739
  "aria-label": label,
3203
3740
  density,
3204
- children: /* @__PURE__ */ jsx33(SelectValue2, {})
3741
+ children: /* @__PURE__ */ jsx37(SelectValue2, {})
3205
3742
  }),
3206
- /* @__PURE__ */ jsx33(SelectContent2, {
3743
+ /* @__PURE__ */ jsx37(SelectContent2, {
3207
3744
  density,
3208
- children: /* @__PURE__ */ jsx33(SelectGroup2, {
3209
- children: workspaces.map((workspace) => /* @__PURE__ */ jsx33(SelectItem2, {
3745
+ children: /* @__PURE__ */ jsx37(SelectGroup2, {
3746
+ children: workspaces.map((workspace) => /* @__PURE__ */ jsx37(SelectItem2, {
3210
3747
  value: workspace.value,
3211
3748
  children: workspace.label
3212
3749
  }, workspace.value))
@@ -3216,52 +3753,52 @@ function WorkspaceSwitcher2({
3216
3753
  });
3217
3754
  }
3218
3755
  // src/components/AccountMenu.tsx
3219
- import { jsx as jsx34, jsxs as jsxs21 } from "react/jsx-runtime";
3756
+ import { jsx as jsx38, jsxs as jsxs23 } from "react/jsx-runtime";
3220
3757
  function AccountMenu2({ name, email, image, onAction, density }) {
3221
- return /* @__PURE__ */ jsxs21(DropdownMenu2, {
3758
+ return /* @__PURE__ */ jsxs23(DropdownMenu2, {
3222
3759
  children: [
3223
- /* @__PURE__ */ jsxs21(DropdownMenuTrigger2, {
3224
- render: /* @__PURE__ */ jsx34(Button2, {
3760
+ /* @__PURE__ */ jsxs23(DropdownMenuTrigger2, {
3761
+ render: /* @__PURE__ */ jsx38(Button2, {
3225
3762
  variant: "ghost",
3226
3763
  density
3227
3764
  }),
3228
3765
  "aria-label": `Account menu for ${name}`,
3229
3766
  children: [
3230
- /* @__PURE__ */ jsxs21(Avatar2, {
3767
+ /* @__PURE__ */ jsxs23(Avatar2, {
3231
3768
  className: "size-control",
3232
3769
  children: [
3233
- /* @__PURE__ */ jsx34(AvatarImage2, {
3770
+ /* @__PURE__ */ jsx38(AvatarImage2, {
3234
3771
  src: image,
3235
3772
  alt: ""
3236
3773
  }),
3237
- /* @__PURE__ */ jsx34(AvatarFallback2, {
3774
+ /* @__PURE__ */ jsx38(AvatarFallback2, {
3238
3775
  children: name.slice(0, 2).toUpperCase()
3239
3776
  })
3240
3777
  ]
3241
3778
  }),
3242
- /* @__PURE__ */ jsx34("span", {
3779
+ /* @__PURE__ */ jsx38("span", {
3243
3780
  children: name
3244
3781
  })
3245
3782
  ]
3246
3783
  }),
3247
- /* @__PURE__ */ jsx34(DropdownMenuContent2, {
3784
+ /* @__PURE__ */ jsx38(MenuPopup, {
3248
3785
  density,
3249
3786
  align: "end",
3250
- children: /* @__PURE__ */ jsxs21(DropdownMenuGroup2, {
3787
+ children: /* @__PURE__ */ jsxs23(MenuGroup2, {
3251
3788
  children: [
3252
- /* @__PURE__ */ jsx34(DropdownMenuLabel2, {
3789
+ /* @__PURE__ */ jsx38(MenuLabel2, {
3253
3790
  children: email ?? name
3254
3791
  }),
3255
- /* @__PURE__ */ jsx34(DropdownMenuItem2, {
3792
+ /* @__PURE__ */ jsx38(MenuItem2, {
3256
3793
  onClick: () => onAction("profile"),
3257
3794
  children: "Profile"
3258
3795
  }),
3259
- /* @__PURE__ */ jsx34(DropdownMenuItem2, {
3796
+ /* @__PURE__ */ jsx38(MenuItem2, {
3260
3797
  onClick: () => onAction("settings"),
3261
3798
  children: "Settings"
3262
3799
  }),
3263
- /* @__PURE__ */ jsx34(DropdownMenuSeparator2, {}),
3264
- /* @__PURE__ */ jsx34(DropdownMenuItem2, {
3800
+ /* @__PURE__ */ jsx38(MenuSeparator2, {}),
3801
+ /* @__PURE__ */ jsx38(MenuItem2, {
3265
3802
  onClick: () => onAction("sign-out"),
3266
3803
  children: "Sign out"
3267
3804
  })
@@ -3272,7 +3809,7 @@ function AccountMenu2({ name, email, image, onAction, density }) {
3272
3809
  });
3273
3810
  }
3274
3811
  // src/components/StatCard.tsx
3275
- import { jsx as jsx35, jsxs as jsxs22 } from "react/jsx-runtime";
3812
+ import { jsx as jsx39, jsxs as jsxs24 } from "react/jsx-runtime";
3276
3813
  function StatCard2({
3277
3814
  label,
3278
3815
  value,
@@ -3283,40 +3820,40 @@ function StatCard2({
3283
3820
  loading = false,
3284
3821
  density
3285
3822
  }) {
3286
- return /* @__PURE__ */ jsxs22(Card2, {
3823
+ return /* @__PURE__ */ jsxs24(Card2, {
3287
3824
  density,
3288
3825
  "aria-label": label,
3289
3826
  "aria-busy": loading,
3290
3827
  children: [
3291
- /* @__PURE__ */ jsxs22(CardHeader2, {
3828
+ /* @__PURE__ */ jsxs24(CardHeader2, {
3292
3829
  children: [
3293
- /* @__PURE__ */ jsx35(CardTitle2, {
3830
+ /* @__PURE__ */ jsx39(CardTitle2, {
3294
3831
  children: label
3295
3832
  }),
3296
- description && /* @__PURE__ */ jsx35(CardDescription2, {
3833
+ description && /* @__PURE__ */ jsx39(CardDescription2, {
3297
3834
  children: description
3298
3835
  })
3299
3836
  ]
3300
3837
  }),
3301
- /* @__PURE__ */ jsx35(CardContent2, {
3302
- children: /* @__PURE__ */ jsxs22("div", {
3838
+ /* @__PURE__ */ jsx39(CardContent2, {
3839
+ children: /* @__PURE__ */ jsxs24("div", {
3303
3840
  className: "flex flex-wrap items-center justify-between gap-control-gap",
3304
3841
  children: [
3305
- loading ? /* @__PURE__ */ jsx35(Skeleton2, {
3842
+ loading ? /* @__PURE__ */ jsx39(Skeleton2, {
3306
3843
  className: "h-8 w-24",
3307
3844
  "aria-label": `Loading ${label}`
3308
- }) : /* @__PURE__ */ jsx35("div", {
3845
+ }) : /* @__PURE__ */ jsx39("div", {
3309
3846
  className: "text-2xl font-semibold tabular-nums",
3310
3847
  children: value
3311
3848
  }),
3312
- change && /* @__PURE__ */ jsx35(Badge2, {
3849
+ change && /* @__PURE__ */ jsx39(Badge2, {
3313
3850
  variant: changeIntent === "positive" ? "success" : changeIntent === "negative" ? "destructive" : "secondary",
3314
3851
  children: change
3315
3852
  })
3316
3853
  ]
3317
3854
  })
3318
3855
  }),
3319
- children && /* @__PURE__ */ jsx35(CardFooter2, {
3856
+ children && /* @__PURE__ */ jsx39(CardFooter2, {
3320
3857
  children
3321
3858
  })
3322
3859
  ]
@@ -3324,7 +3861,7 @@ function StatCard2({
3324
3861
  }
3325
3862
  // src/components/AuthForm.tsx
3326
3863
  import { useId as useId2, useState as useState5 } from "react";
3327
- import { jsx as jsx36, jsxs as jsxs23 } from "react/jsx-runtime";
3864
+ import { jsx as jsx40, jsxs as jsxs25 } from "react/jsx-runtime";
3328
3865
  function AuthForm2({
3329
3866
  mode = "sign-in",
3330
3867
  onSubmit,
@@ -3354,33 +3891,33 @@ function AuthForm2({
3354
3891
  setPending(false);
3355
3892
  }
3356
3893
  }
3357
- return /* @__PURE__ */ jsxs23(Card2, {
3894
+ return /* @__PURE__ */ jsxs25(Card2, {
3358
3895
  density,
3359
3896
  children: [
3360
- /* @__PURE__ */ jsxs23(CardHeader2, {
3897
+ /* @__PURE__ */ jsxs25(CardHeader2, {
3361
3898
  children: [
3362
- /* @__PURE__ */ jsx36(CardTitle2, {
3899
+ /* @__PURE__ */ jsx40(CardTitle2, {
3363
3900
  children: title
3364
3901
  }),
3365
- /* @__PURE__ */ jsx36(CardDescription2, {
3902
+ /* @__PURE__ */ jsx40(CardDescription2, {
3366
3903
  children: mode === "reset-password" ? "Enter your email to request a password reset." : "Enter your details to continue."
3367
3904
  })
3368
3905
  ]
3369
3906
  }),
3370
- /* @__PURE__ */ jsx36(CardContent2, {
3371
- children: /* @__PURE__ */ jsx36("form", {
3907
+ /* @__PURE__ */ jsx40(CardContent2, {
3908
+ children: /* @__PURE__ */ jsx40("form", {
3372
3909
  onSubmit: submit,
3373
3910
  "aria-label": title,
3374
3911
  "aria-busy": pending,
3375
- children: /* @__PURE__ */ jsxs23(FieldGroup2, {
3912
+ children: /* @__PURE__ */ jsxs25(FieldGroup2, {
3376
3913
  children: [
3377
- mode === "sign-up" && /* @__PURE__ */ jsxs23(Field2, {
3914
+ mode === "sign-up" && /* @__PURE__ */ jsxs25(Field2, {
3378
3915
  children: [
3379
- /* @__PURE__ */ jsx36(FieldLabel2, {
3916
+ /* @__PURE__ */ jsx40(FieldLabel2, {
3380
3917
  htmlFor: id + "-name",
3381
3918
  children: "Name"
3382
3919
  }),
3383
- /* @__PURE__ */ jsx36(Input2, {
3920
+ /* @__PURE__ */ jsx40(Input2, {
3384
3921
  id: id + "-name",
3385
3922
  name: "name",
3386
3923
  autoComplete: "name",
@@ -3389,13 +3926,13 @@ function AuthForm2({
3389
3926
  })
3390
3927
  ]
3391
3928
  }),
3392
- /* @__PURE__ */ jsxs23(Field2, {
3929
+ /* @__PURE__ */ jsxs25(Field2, {
3393
3930
  children: [
3394
- /* @__PURE__ */ jsx36(FieldLabel2, {
3931
+ /* @__PURE__ */ jsx40(FieldLabel2, {
3395
3932
  htmlFor: id + "-email",
3396
3933
  children: "Email"
3397
3934
  }),
3398
- /* @__PURE__ */ jsx36(Input2, {
3935
+ /* @__PURE__ */ jsx40(Input2, {
3399
3936
  id: id + "-email",
3400
3937
  name: "email",
3401
3938
  type: "email",
@@ -3405,13 +3942,13 @@ function AuthForm2({
3405
3942
  })
3406
3943
  ]
3407
3944
  }),
3408
- mode !== "reset-password" && /* @__PURE__ */ jsxs23(Field2, {
3945
+ mode !== "reset-password" && /* @__PURE__ */ jsxs25(Field2, {
3409
3946
  children: [
3410
- /* @__PURE__ */ jsx36(FieldLabel2, {
3947
+ /* @__PURE__ */ jsx40(FieldLabel2, {
3411
3948
  htmlFor: id + "-password",
3412
3949
  children: "Password"
3413
3950
  }),
3414
- /* @__PURE__ */ jsx36(Input2, {
3951
+ /* @__PURE__ */ jsx40(Input2, {
3415
3952
  id: id + "-password",
3416
3953
  name: "password",
3417
3954
  type: "password",
@@ -3420,27 +3957,27 @@ function AuthForm2({
3420
3957
  required: true,
3421
3958
  disabled: disabled || pending
3422
3959
  }),
3423
- mode === "sign-up" && /* @__PURE__ */ jsx36(FieldDescription2, {
3960
+ mode === "sign-up" && /* @__PURE__ */ jsx40(FieldDescription2, {
3424
3961
  children: "Use at least eight characters."
3425
3962
  })
3426
3963
  ]
3427
3964
  }),
3428
- error && /* @__PURE__ */ jsxs23(Alert2, {
3965
+ error && /* @__PURE__ */ jsxs25(Alert2, {
3429
3966
  variant: "destructive",
3430
3967
  children: [
3431
- /* @__PURE__ */ jsx36(AlertTitle2, {
3968
+ /* @__PURE__ */ jsx40(AlertTitle2, {
3432
3969
  children: "Request failed"
3433
3970
  }),
3434
- /* @__PURE__ */ jsx36(AlertDescription2, {
3971
+ /* @__PURE__ */ jsx40(AlertDescription2, {
3435
3972
  children: error
3436
3973
  })
3437
3974
  ]
3438
3975
  }),
3439
- /* @__PURE__ */ jsxs23(Button2, {
3976
+ /* @__PURE__ */ jsxs25(Button2, {
3440
3977
  type: "submit",
3441
3978
  disabled: disabled || pending,
3442
3979
  children: [
3443
- pending && /* @__PURE__ */ jsx36(Spinner2, {
3980
+ pending && /* @__PURE__ */ jsx40(Spinner2, {
3444
3981
  "data-icon": "inline-start"
3445
3982
  }),
3446
3983
  mode === "reset-password" ? "Send reset link" : title
@@ -3451,14 +3988,14 @@ function AuthForm2({
3451
3988
  })
3452
3989
  })
3453
3990
  }),
3454
- footer && /* @__PURE__ */ jsx36(CardFooter2, {
3991
+ footer && /* @__PURE__ */ jsx40(CardFooter2, {
3455
3992
  children: footer
3456
3993
  })
3457
3994
  ]
3458
3995
  });
3459
3996
  }
3460
3997
  // src/components/SettingsSection.tsx
3461
- import { jsx as jsx37, jsxs as jsxs24 } from "react/jsx-runtime";
3998
+ import { jsx as jsx41, jsxs as jsxs26 } from "react/jsx-runtime";
3462
3999
  function SettingsSection2({
3463
4000
  title,
3464
4001
  description,
@@ -3471,48 +4008,48 @@ function SettingsSection2({
3471
4008
  destructive = false,
3472
4009
  density
3473
4010
  }) {
3474
- return /* @__PURE__ */ jsx37("form", {
4011
+ return /* @__PURE__ */ jsx41("form", {
3475
4012
  "aria-label": title,
3476
4013
  onSubmit,
3477
4014
  "aria-busy": pending,
3478
- children: /* @__PURE__ */ jsxs24(Card2, {
4015
+ children: /* @__PURE__ */ jsxs26(Card2, {
3479
4016
  density,
3480
4017
  children: [
3481
- /* @__PURE__ */ jsxs24(CardHeader2, {
4018
+ /* @__PURE__ */ jsxs26(CardHeader2, {
3482
4019
  children: [
3483
- /* @__PURE__ */ jsx37(CardTitle2, {
4020
+ /* @__PURE__ */ jsx41(CardTitle2, {
3484
4021
  children: title
3485
4022
  }),
3486
- description && /* @__PURE__ */ jsx37(CardDescription2, {
4023
+ description && /* @__PURE__ */ jsx41(CardDescription2, {
3487
4024
  children: description
3488
4025
  })
3489
4026
  ]
3490
4027
  }),
3491
- /* @__PURE__ */ jsx37(CardContent2, {
3492
- children: /* @__PURE__ */ jsxs24("fieldset", {
4028
+ /* @__PURE__ */ jsx41(CardContent2, {
4029
+ children: /* @__PURE__ */ jsxs26("fieldset", {
3493
4030
  disabled: disabled || pending,
3494
4031
  className: "min-w-0 border-0 p-0",
3495
4032
  children: [
3496
- /* @__PURE__ */ jsx37("legend", {
4033
+ /* @__PURE__ */ jsx41("legend", {
3497
4034
  className: "sr-only",
3498
4035
  children: title
3499
4036
  }),
3500
- /* @__PURE__ */ jsx37(FieldGroup2, {
4037
+ /* @__PURE__ */ jsx41(FieldGroup2, {
3501
4038
  children
3502
4039
  })
3503
4040
  ]
3504
4041
  })
3505
4042
  }),
3506
- /* @__PURE__ */ jsxs24(CardFooter2, {
4043
+ /* @__PURE__ */ jsxs26(CardFooter2, {
3507
4044
  className: "flex flex-wrap items-center justify-between gap-control-gap",
3508
4045
  children: [
3509
4046
  footer,
3510
- /* @__PURE__ */ jsxs24(Button2, {
4047
+ /* @__PURE__ */ jsxs26(Button2, {
3511
4048
  type: "submit",
3512
4049
  variant: destructive ? "destructive" : "default",
3513
4050
  disabled: disabled || pending,
3514
4051
  children: [
3515
- pending && /* @__PURE__ */ jsx37(Spinner2, {
4052
+ pending && /* @__PURE__ */ jsx41(Spinner2, {
3516
4053
  "data-icon": "inline-start"
3517
4054
  }),
3518
4055
  saveLabel
@@ -3525,7 +4062,7 @@ function SettingsSection2({
3525
4062
  });
3526
4063
  }
3527
4064
  // src/components/TagInput.tsx
3528
- import { jsx as jsx38, jsxs as jsxs25 } from "react/jsx-runtime";
4065
+ import { jsx as jsx42, jsxs as jsxs27 } from "react/jsx-runtime";
3529
4066
  function TagInput2({
3530
4067
  label,
3531
4068
  options,
@@ -3538,7 +4075,7 @@ function TagInput2({
3538
4075
  density
3539
4076
  }) {
3540
4077
  const anchor = useComboboxAnchor2();
3541
- return /* @__PURE__ */ jsxs25(Combobox2, {
4078
+ return /* @__PURE__ */ jsxs27(Combobox2, {
3542
4079
  items: options,
3543
4080
  multiple: true,
3544
4081
  value,
@@ -3547,33 +4084,33 @@ function TagInput2({
3547
4084
  disabled,
3548
4085
  name,
3549
4086
  children: [
3550
- /* @__PURE__ */ jsxs25(ComboboxChips2, {
4087
+ /* @__PURE__ */ jsxs27(ComboboxChips2, {
3551
4088
  ref: anchor,
3552
4089
  density,
3553
4090
  children: [
3554
- /* @__PURE__ */ jsx38(ComboboxValue2, {
3555
- children: (values) => values.map((item) => /* @__PURE__ */ jsx38(ComboboxChip2, {
4091
+ /* @__PURE__ */ jsx42(ComboboxValue2, {
4092
+ children: (values) => values.map((item) => /* @__PURE__ */ jsx42(ComboboxChip2, {
3556
4093
  removeLabel: `Remove ${item}`,
3557
4094
  children: item
3558
4095
  }, item))
3559
4096
  }),
3560
- /* @__PURE__ */ jsx38(ComboboxChipsInput2, {
4097
+ /* @__PURE__ */ jsx42(ComboboxChipsInput2, {
3561
4098
  "aria-label": label,
3562
4099
  placeholder
3563
4100
  })
3564
4101
  ]
3565
4102
  }),
3566
- /* @__PURE__ */ jsxs25(ComboboxContent2, {
4103
+ /* @__PURE__ */ jsxs27(ComboboxContent2, {
3567
4104
  anchor,
3568
4105
  density,
3569
4106
  children: [
3570
- /* @__PURE__ */ jsx38(ComboboxEmpty2, {
4107
+ /* @__PURE__ */ jsx42(ComboboxEmpty2, {
3571
4108
  children: "No matching tags."
3572
4109
  }),
3573
- /* @__PURE__ */ jsx38(ComboboxList2, {
3574
- children: /* @__PURE__ */ jsx38(ComboboxGroup2, {
3575
- children: /* @__PURE__ */ jsx38(ComboboxCollection2, {
3576
- children: (item) => /* @__PURE__ */ jsx38(ComboboxItem2, {
4110
+ /* @__PURE__ */ jsx42(ComboboxList2, {
4111
+ children: /* @__PURE__ */ jsx42(ComboboxGroup2, {
4112
+ children: /* @__PURE__ */ jsx42(ComboboxCollection2, {
4113
+ children: (item) => /* @__PURE__ */ jsx42(ComboboxItem2, {
3577
4114
  value: item,
3578
4115
  children: item
3579
4116
  }, item)
@@ -3586,7 +4123,7 @@ function TagInput2({
3586
4123
  });
3587
4124
  }
3588
4125
  // src/components/FilterBar.tsx
3589
- import { jsx as jsx39, jsxs as jsxs26 } from "react/jsx-runtime";
4126
+ import { jsx as jsx43, jsxs as jsxs28 } from "react/jsx-runtime";
3590
4127
  function FilterBar2({
3591
4128
  label,
3592
4129
  search,
@@ -3597,38 +4134,38 @@ function FilterBar2({
3597
4134
  disabled,
3598
4135
  density
3599
4136
  }) {
3600
- return /* @__PURE__ */ jsxs26("fieldset", {
4137
+ return /* @__PURE__ */ jsxs28("fieldset", {
3601
4138
  "aria-label": label,
3602
4139
  disabled,
3603
4140
  "data-density": density,
3604
4141
  className: "flex min-w-0 flex-wrap items-center gap-2",
3605
4142
  children: [
3606
- /* @__PURE__ */ jsx39(Input2, {
4143
+ /* @__PURE__ */ jsx43(Input2, {
3607
4144
  "aria-label": `Search ${label}`,
3608
4145
  type: "search",
3609
4146
  value: search,
3610
4147
  onChange: (event) => onSearchChange(event.target.value),
3611
4148
  className: "min-w-40 flex-1"
3612
4149
  }),
3613
- filters.map((filter) => /* @__PURE__ */ jsxs26(NativeSelect2, {
4150
+ filters.map((filter) => /* @__PURE__ */ jsxs28(NativeSelect2, {
3614
4151
  "aria-label": filter.label,
3615
4152
  value: value[filter.id] ?? "",
3616
4153
  onChange: (event) => onValueChange({ ...value, [filter.id]: event.target.value }),
3617
4154
  children: [
3618
- /* @__PURE__ */ jsxs26(NativeSelectOption2, {
4155
+ /* @__PURE__ */ jsxs28(NativeSelectOption2, {
3619
4156
  value: "",
3620
4157
  children: [
3621
4158
  "All ",
3622
4159
  filter.label.toLowerCase()
3623
4160
  ]
3624
4161
  }),
3625
- filter.options.map((option) => /* @__PURE__ */ jsx39(NativeSelectOption2, {
4162
+ filter.options.map((option) => /* @__PURE__ */ jsx43(NativeSelectOption2, {
3626
4163
  value: option.value,
3627
4164
  children: option.label
3628
4165
  }, option.value))
3629
4166
  ]
3630
4167
  }, filter.id)),
3631
- /* @__PURE__ */ jsx39(Button2, {
4168
+ /* @__PURE__ */ jsx43(Button2, {
3632
4169
  type: "button",
3633
4170
  variant: "ghost",
3634
4171
  disabled: !search && !Object.values(value).some(Boolean),
@@ -3642,7 +4179,7 @@ function FilterBar2({
3642
4179
  });
3643
4180
  }
3644
4181
  // src/components/BarList.tsx
3645
- import { jsx as jsx40, jsxs as jsxs27 } from "react/jsx-runtime";
4182
+ import { jsx as jsx44, jsxs as jsxs29 } from "react/jsx-runtime";
3646
4183
  function BarList2({
3647
4184
  label,
3648
4185
  items,
@@ -3651,25 +4188,25 @@ function BarList2({
3651
4188
  density
3652
4189
  }) {
3653
4190
  const max = Math.max(1, ...items.map((item) => item.value));
3654
- return /* @__PURE__ */ jsxs27("section", {
4191
+ return /* @__PURE__ */ jsxs29("section", {
3655
4192
  "aria-label": label,
3656
4193
  "data-density": density,
3657
4194
  children: [
3658
- /* @__PURE__ */ jsx40("ul", {
4195
+ /* @__PURE__ */ jsx44("ul", {
3659
4196
  className: "grid gap-3",
3660
- children: items.map((item) => /* @__PURE__ */ jsx40("li", {
3661
- children: /* @__PURE__ */ jsxs27(Meter2, {
4197
+ children: items.map((item) => /* @__PURE__ */ jsx44("li", {
4198
+ children: /* @__PURE__ */ jsxs29(Meter2, {
3662
4199
  min: 0,
3663
4200
  max,
3664
4201
  value: item.value,
3665
4202
  "aria-label": item.label,
3666
4203
  format: { maximumFractionDigits: 2 },
3667
4204
  children: [
3668
- /* @__PURE__ */ jsxs27("div", {
4205
+ /* @__PURE__ */ jsxs29("div", {
3669
4206
  className: "mb-1 flex items-center justify-between gap-3 text-sm",
3670
4207
  children: [
3671
- /* @__PURE__ */ jsx40(MeterLabel2, {
3672
- children: onItemSelect ? /* @__PURE__ */ jsx40(Button2, {
4208
+ /* @__PURE__ */ jsx44(MeterLabel2, {
4209
+ children: onItemSelect ? /* @__PURE__ */ jsx44(Button2, {
3673
4210
  type: "button",
3674
4211
  variant: "link",
3675
4212
  className: "h-auto p-0",
@@ -3677,19 +4214,19 @@ function BarList2({
3677
4214
  children: item.label
3678
4215
  }) : item.label
3679
4216
  }),
3680
- /* @__PURE__ */ jsx40(MeterValue2, {
4217
+ /* @__PURE__ */ jsx44(MeterValue2, {
3681
4218
  children: () => valueFormatter(item.value)
3682
4219
  })
3683
4220
  ]
3684
4221
  }),
3685
- /* @__PURE__ */ jsx40(MeterTrack2, {
3686
- children: /* @__PURE__ */ jsx40(MeterIndicator2, {})
4222
+ /* @__PURE__ */ jsx44(MeterTrack2, {
4223
+ children: /* @__PURE__ */ jsx44(MeterIndicator2, {})
3687
4224
  })
3688
4225
  ]
3689
4226
  })
3690
4227
  }, item.id))
3691
4228
  }),
3692
- !items.length && /* @__PURE__ */ jsx40("p", {
4229
+ !items.length && /* @__PURE__ */ jsx44("p", {
3693
4230
  role: "status",
3694
4231
  className: "text-sm text-muted-foreground",
3695
4232
  children: "No data available."
@@ -3698,23 +4235,23 @@ function BarList2({
3698
4235
  });
3699
4236
  }
3700
4237
  // src/components/StatusTracker.tsx
3701
- import { jsx as jsx41, jsxs as jsxs28 } from "react/jsx-runtime";
4238
+ import { jsx as jsx45, jsxs as jsxs30 } from "react/jsx-runtime";
3702
4239
  var statusClasses = { success: "bg-success", warning: "bg-warning", error: "bg-destructive", unknown: "bg-muted" };
3703
4240
  function StatusTracker2({ label, items, onItemSelect, density }) {
3704
- return /* @__PURE__ */ jsx41(TooltipProvider2, {
3705
- children: /* @__PURE__ */ jsx41("div", {
4241
+ return /* @__PURE__ */ jsx45(TooltipProvider2, {
4242
+ children: /* @__PURE__ */ jsx45("div", {
3706
4243
  role: "group",
3707
4244
  "aria-label": label,
3708
4245
  "data-density": density,
3709
4246
  className: "flex min-w-0 gap-1",
3710
- children: items.map((item) => /* @__PURE__ */ jsxs28(Tooltip2, {
4247
+ children: items.map((item) => /* @__PURE__ */ jsxs30(Tooltip2, {
3711
4248
  children: [
3712
- /* @__PURE__ */ jsx41(TooltipTrigger2, {
4249
+ /* @__PURE__ */ jsx45(TooltipTrigger2, {
3713
4250
  "aria-label": `${item.label}: ${item.status}`,
3714
4251
  onClick: () => onItemSelect?.(item),
3715
4252
  className: cn2("h-8 min-w-2 flex-1 rounded-sm outline-none focus-visible:ring-2 focus-visible:ring-ring", statusClasses[item.status])
3716
4253
  }),
3717
- /* @__PURE__ */ jsxs28(TooltipContent2, {
4254
+ /* @__PURE__ */ jsxs30(TooltipContent2, {
3718
4255
  children: [
3719
4256
  item.label,
3720
4257
  ": ",
@@ -3727,7 +4264,7 @@ function StatusTracker2({ label, items, onItemSelect, density }) {
3727
4264
  });
3728
4265
  }
3729
4266
  // src/components/DashboardLayout.tsx
3730
- import { jsx as jsx42, jsxs as jsxs29 } from "react/jsx-runtime";
4267
+ import { jsx as jsx46, jsxs as jsxs31 } from "react/jsx-runtime";
3731
4268
  function DashboardLayout2({
3732
4269
  title,
3733
4270
  description,
@@ -3738,24 +4275,24 @@ function DashboardLayout2({
3738
4275
  footer,
3739
4276
  density
3740
4277
  }) {
3741
- return /* @__PURE__ */ jsxs29("div", {
4278
+ return /* @__PURE__ */ jsxs31("div", {
3742
4279
  "data-density": density,
3743
4280
  "data-scroll": "none",
3744
4281
  className: "grid min-w-0 gap-6",
3745
4282
  children: [
3746
- /* @__PURE__ */ jsx42(PageHeader2, {
4283
+ /* @__PURE__ */ jsx46(PageHeader2, {
3747
4284
  title,
3748
4285
  description,
3749
4286
  actions
3750
4287
  }),
3751
4288
  filters,
3752
- stats.length > 0 && /* @__PURE__ */ jsx42("div", {
4289
+ stats.length > 0 && /* @__PURE__ */ jsx46("div", {
3753
4290
  className: "grid gap-4 sm:grid-cols-2 xl:grid-cols-4",
3754
- children: stats.map(({ id, ...stat }) => /* @__PURE__ */ jsx42(StatCard2, {
4291
+ children: stats.map(({ id, ...stat }) => /* @__PURE__ */ jsx46(StatCard2, {
3755
4292
  ...stat
3756
4293
  }, id))
3757
4294
  }),
3758
- /* @__PURE__ */ jsx42("div", {
4295
+ /* @__PURE__ */ jsx46("div", {
3759
4296
  className: "grid min-w-0 gap-4",
3760
4297
  children
3761
4298
  }),
@@ -3764,18 +4301,18 @@ function DashboardLayout2({
3764
4301
  });
3765
4302
  }
3766
4303
  // src/components/BillingUsage.tsx
3767
- import { jsx as jsx43, jsxs as jsxs30 } from "react/jsx-runtime";
4304
+ import { jsx as jsx47, jsxs as jsxs32 } from "react/jsx-runtime";
3768
4305
  function BillingUsage2({ plan, price, period, metrics, onManage, pending, density }) {
3769
- return /* @__PURE__ */ jsxs30(Card2, {
4306
+ return /* @__PURE__ */ jsxs32(Card2, {
3770
4307
  density,
3771
4308
  "aria-label": "Billing and usage",
3772
4309
  children: [
3773
- /* @__PURE__ */ jsxs30(CardHeader2, {
4310
+ /* @__PURE__ */ jsxs32(CardHeader2, {
3774
4311
  children: [
3775
- /* @__PURE__ */ jsx43(CardTitle2, {
4312
+ /* @__PURE__ */ jsx47(CardTitle2, {
3776
4313
  children: plan
3777
4314
  }),
3778
- /* @__PURE__ */ jsxs30(CardDescription2, {
4315
+ /* @__PURE__ */ jsxs32(CardDescription2, {
3779
4316
  children: [
3780
4317
  price,
3781
4318
  " · ",
@@ -3784,32 +4321,32 @@ function BillingUsage2({ plan, price, period, metrics, onManage, pending, densit
3784
4321
  })
3785
4322
  ]
3786
4323
  }),
3787
- /* @__PURE__ */ jsx43(CardContent2, {
4324
+ /* @__PURE__ */ jsx47(CardContent2, {
3788
4325
  className: "grid gap-4",
3789
- children: metrics.map((metric) => /* @__PURE__ */ jsxs30(Meter2, {
4326
+ children: metrics.map((metric) => /* @__PURE__ */ jsxs32(Meter2, {
3790
4327
  value: metric.used,
3791
4328
  max: metric.limit,
3792
4329
  "aria-label": metric.label,
3793
4330
  children: [
3794
- /* @__PURE__ */ jsxs30("div", {
4331
+ /* @__PURE__ */ jsxs32("div", {
3795
4332
  className: "mb-2 flex items-center justify-between gap-3 text-sm",
3796
4333
  children: [
3797
- /* @__PURE__ */ jsx43(MeterLabel2, {
4334
+ /* @__PURE__ */ jsx47(MeterLabel2, {
3798
4335
  children: metric.label
3799
4336
  }),
3800
- /* @__PURE__ */ jsx43(MeterValue2, {
4337
+ /* @__PURE__ */ jsx47(MeterValue2, {
3801
4338
  children: () => `${metric.used.toLocaleString()} / ${metric.limit.toLocaleString()}${metric.unit ? ` ${metric.unit}` : ""}`
3802
4339
  })
3803
4340
  ]
3804
4341
  }),
3805
- /* @__PURE__ */ jsx43(MeterTrack2, {
3806
- children: /* @__PURE__ */ jsx43(MeterIndicator2, {})
4342
+ /* @__PURE__ */ jsx47(MeterTrack2, {
4343
+ children: /* @__PURE__ */ jsx47(MeterIndicator2, {})
3807
4344
  })
3808
4345
  ]
3809
4346
  }, metric.id))
3810
4347
  }),
3811
- /* @__PURE__ */ jsx43(CardFooter2, {
3812
- children: /* @__PURE__ */ jsx43(Button2, {
4348
+ /* @__PURE__ */ jsx47(CardFooter2, {
4349
+ children: /* @__PURE__ */ jsx47(Button2, {
3813
4350
  type: "button",
3814
4351
  variant: "outline",
3815
4352
  onClick: onManage,
@@ -3820,4 +4357,4 @@ function BillingUsage2({ plan, price, period, metrics, onManage, pending, densit
3820
4357
  ]
3821
4358
  });
3822
4359
  }
3823
- export { ButtonLink2, Accordion2, AccordionItem2, AccordionTrigger2, AccordionContent2, EmptyState3, PageMessage2, formatDataLabel2, DataViewer2, JsonViewer2, AlertDialog2, AlertDialogTrigger2, AlertDialogPortal2, AlertDialogOverlay2, AlertDialogContent2, AlertDialogHeader2, AlertDialogFooter2, AlertDialogMedia2, AlertDialogTitle2, AlertDialogDescription2, AlertDialogAction2, AlertDialogCancel2, Select2, SelectGroup2, SelectValue2, SelectTrigger2, SelectContent2, SelectLabel2, SelectItem2, SelectSeparator2, SelectScrollUpButton2, SelectScrollDownButton2, DensityProvider2, collectLayoutViolations2, LayoutGuard2, ScrollGuard2, ThemeProvider2, AspectRatio2, Breadcrumb2, BreadcrumbList2, BreadcrumbItem2, BreadcrumbLink2, BreadcrumbPage2, BreadcrumbSeparator2, BreadcrumbEllipsis2, buttonGroupVariants2, ButtonGroup2, ButtonGroupText2, ButtonGroupSeparator2, ItemGroup2, ItemSeparator2, Item2, ItemMedia2, ItemContent2, ItemTitle2, ItemDescription2, ItemActions2, ItemHeader2, ItemFooter2, Pagination2, PaginationContent2, PaginationItem2, PaginationLink2, PaginationPrevious2, PaginationNext2, PaginationEllipsis2, Drawer2, DrawerTrigger2, DrawerPortal2, DrawerClose2, DrawerOverlay2, DrawerSwipeHandle2, DrawerContent2, DrawerHeader2, DrawerFooter2, DrawerTitle2, DrawerDescription2, ContextMenu2, ContextMenuPortal2, ContextMenuTrigger2, ContextMenuContent2, ContextMenuGroup2, ContextMenuLabel2, ContextMenuItem2, ContextMenuSub2, ContextMenuSubTrigger2, ContextMenuSubContent2, ContextMenuCheckboxItem2, ContextMenuRadioGroup2, ContextMenuRadioItem2, ContextMenuSeparator2, ContextMenuShortcut2, Menubar2, MenubarMenu2, MenubarGroup2, MenubarPortal2, MenubarTrigger2, MenubarContent2, MenubarItem2, MenubarCheckboxItem2, MenubarRadioGroup2, MenubarRadioItem2, MenubarLabel2, MenubarSeparator2, MenubarShortcut2, MenubarSub2, MenubarSubTrigger2, MenubarSubContent2, NavigationMenu2, NavigationMenuList2, NavigationMenuItem2, navigationMenuTriggerStyle2, NavigationMenuTrigger2, NavigationMenuContent2, NavigationMenuPositioner2, NavigationMenuLink2, NavigationMenuIndicator2, ToastProvider2, ToastPortal2, ToastViewport2, Toast2, ToastContent2, ToastTitle2, ToastDescription2, ToastAction2, ToastClose2, ToastToaster2, createToastManager2, useToastManager2, markerVariants2, Marker2, MarkerIcon2, MarkerContent2, BubbleGroup2, Bubble2, BubbleContent2, BubbleReactions2, MessageGroup2, Message2, MessageAvatar2, MessageContent2, MessageHeader2, MessageFooter2, Attachment2, AttachmentMedia2, AttachmentContent2, AttachmentTitle2, AttachmentDescription2, AttachmentActions2, AttachmentAction2, AttachmentTrigger2, AttachmentGroup2, InlineEdit2, StarRating2, ConfirmationDialog2, ImagePicker2, Meter2, MeterLabel2, MeterValue2, MeterTrack2, MeterIndicator2, Stepper2, StepperList2, StepperTrigger2, StepperIndicator2, StepperContent2, AppShell2, PageHeader2, WorkspaceSwitcher2, AccountMenu2, StatCard2, AuthForm2, SettingsSection2, TagInput2, FilterBar2, BarList2, StatusTracker2, DashboardLayout2, BillingUsage2 };
4360
+ export { ButtonLink2, ContextMenu2, ContextMenuPortal2, ContextMenuTrigger2, ContextMenuContent2, ActionsMenu2, ActionsMenuTrigger2, ActionsMenuContextTarget2, ActionsMenuContextContent2, FormDialog2, Accordion2, AccordionItem2, AccordionTrigger2, AccordionContent2, EmptyState3, PageMessage2, formatDataLabel2, DataViewer2, JsonViewer2, AlertDialog2, AlertDialogTrigger2, AlertDialogPortal2, AlertDialogOverlay2, AlertDialogContent2, AlertDialogHeader2, AlertDialogFooter2, AlertDialogMedia2, AlertDialogTitle2, AlertDialogDescription2, AlertDialogAction2, AlertDialogCancel2, Select2, SelectGroup2, SelectValue2, SelectTrigger2, SelectContent2, SelectLabel2, SelectItem2, SelectSeparator2, SelectScrollUpButton2, SelectScrollDownButton2, DensityProvider2, collectLayoutViolations2, LayoutGuard2, ScrollGuard2, ThemeProvider2, AspectRatio2, Breadcrumb2, BreadcrumbList2, BreadcrumbItem2, BreadcrumbLink2, BreadcrumbPage2, BreadcrumbSeparator2, BreadcrumbEllipsis2, buttonGroupVariants2, ButtonGroup2, ButtonGroupText2, ButtonGroupSeparator2, ItemGroup2, ItemSeparator2, Item2, ItemMedia2, ItemContent2, ItemTitle2, ItemDescription2, ItemActions2, ItemHeader2, ItemFooter2, Pagination2, PaginationContent2, PaginationItem2, PaginationLink2, PaginationPrevious2, PaginationNext2, PaginationEllipsis2, Drawer2, DrawerTrigger2, DrawerPortal2, DrawerClose2, DrawerOverlay2, DrawerSwipeHandle2, DrawerContent2, DrawerHeader2, DrawerFooter2, DrawerTitle2, DrawerDescription2, Menubar2, MenubarMenu2, MenubarGroup2, MenubarPortal2, MenubarTrigger2, MenubarContent2, MenubarItem2, MenubarCheckboxItem2, MenubarRadioGroup2, MenubarRadioItem2, MenubarLabel2, MenubarSeparator2, MenubarShortcut2, MenubarSub2, MenubarSubTrigger2, MenubarSubContent2, NavigationMenu2, NavigationMenuList2, NavigationMenuItem2, navigationMenuTriggerStyle2, NavigationMenuTrigger2, NavigationMenuContent2, NavigationMenuPositioner2, NavigationMenuLink2, NavigationMenuIndicator2, ToastProvider2, ToastPortal2, ToastViewport2, Toast2, ToastContent2, ToastTitle2, ToastDescription2, ToastAction2, ToastClose2, ToastToaster2, createToastManager2, useToastManager2, markerVariants2, Marker2, MarkerIcon2, MarkerContent2, BubbleGroup2, Bubble2, BubbleContent2, BubbleReactions2, MessageGroup2, Message2, MessageAvatar2, MessageContent2, MessageHeader2, MessageFooter2, Attachment2, AttachmentMedia2, AttachmentContent2, AttachmentTitle2, AttachmentDescription2, AttachmentActions2, AttachmentAction2, AttachmentTrigger2, AttachmentGroup2, InlineEdit2, StarRating2, ConfirmationDialog2, ImagePicker2, Meter2, MeterLabel2, MeterValue2, MeterTrack2, MeterIndicator2, Stepper2, StepperList2, StepperTrigger2, StepperIndicator2, StepperContent2, AppShell2, Stack2, Grid2, GridItem2, Container2, Text2, Heading2, WeatherSummary2, WeatherForecast2, PageHeader2, WorkspaceSwitcher2, AccountMenu2, StatCard2, AuthForm2, SettingsSection2, TagInput2, FilterBar2, BarList2, StatusTracker2, DashboardLayout2, BillingUsage2 };