@squadbase/vantage 0.6.2-stg.3a2ba98 → 0.7.0-dev1.1197de7

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 (357) hide show
  1. package/dist/add-4GHF2TX2.js +6 -0
  2. package/dist/add-4GHF2TX2.js.map +1 -0
  3. package/dist/{build-O5TVNH4E.js → build-U7GO26HR.js} +9 -9
  4. package/dist/{build-O5TVNH4E.js.map → build-U7GO26HR.js.map} +1 -1
  5. package/dist/{check-WFBEDHDR.js → check-MRVAIHG5.js} +7 -7
  6. package/dist/{check-WFBEDHDR.js.map → check-MRVAIHG5.js.map} +1 -1
  7. package/dist/{chunk-QDZA5JSL.js → chunk-AABMKHEU.js} +4 -4
  8. package/dist/{chunk-QDZA5JSL.js.map → chunk-AABMKHEU.js.map} +1 -1
  9. package/dist/{chunk-PVTHHV7X.js → chunk-ANZLVSEP.js} +28 -7
  10. package/dist/chunk-ANZLVSEP.js.map +1 -0
  11. package/dist/chunk-CKWPK4RO.js +50 -0
  12. package/dist/chunk-CKWPK4RO.js.map +1 -0
  13. package/dist/chunk-EG4PX726.js +678 -0
  14. package/dist/chunk-EG4PX726.js.map +1 -0
  15. package/dist/{chunk-3G43C6OL.js → chunk-GNXCX4WE.js} +46 -3
  16. package/dist/chunk-GNXCX4WE.js.map +1 -0
  17. package/dist/chunk-LYUGDHSF.js +61 -0
  18. package/dist/chunk-LYUGDHSF.js.map +1 -0
  19. package/dist/{chunk-RPZAALCX.js → chunk-MQUIAP66.js} +321 -165
  20. package/dist/chunk-MQUIAP66.js.map +1 -0
  21. package/dist/chunk-P2KIHF65.js +152 -0
  22. package/dist/chunk-P2KIHF65.js.map +1 -0
  23. package/dist/{chunk-BCE22JSM.js → chunk-PJ4SPXHS.js} +52 -16
  24. package/dist/chunk-PJ4SPXHS.js.map +1 -0
  25. package/dist/{chunk-ZVANIULZ.js → chunk-RNTDBX6S.js} +4 -4
  26. package/dist/{chunk-ZVANIULZ.js.map → chunk-RNTDBX6S.js.map} +1 -1
  27. package/dist/{chunk-PXRX5PEC.js → chunk-ROHNXP7J.js} +73 -4
  28. package/dist/chunk-ROHNXP7J.js.map +1 -0
  29. package/dist/chunk-S5MDTHH7.js +466 -0
  30. package/dist/chunk-S5MDTHH7.js.map +1 -0
  31. package/dist/chunk-SDJTTMLK.js +1877 -0
  32. package/dist/chunk-SDJTTMLK.js.map +1 -0
  33. package/dist/{chunk-EP6JHXSR.js → chunk-SHZM3EXB.js} +68 -12
  34. package/dist/chunk-SHZM3EXB.js.map +1 -0
  35. package/dist/{chunk-A2UUGASH.js → chunk-U736PVHY.js} +2 -2
  36. package/dist/chunk-U736PVHY.js.map +1 -0
  37. package/dist/{chunk-JGRMRXXZ.js → chunk-UWSQUHX6.js} +4 -99
  38. package/dist/chunk-UWSQUHX6.js.map +1 -0
  39. package/dist/chunk-XRKSIC5Z.js +176 -0
  40. package/dist/chunk-XRKSIC5Z.js.map +1 -0
  41. package/dist/chunk-YJQCB3UP.js +10764 -0
  42. package/dist/chunk-YJQCB3UP.js.map +1 -0
  43. package/dist/cli.js +15 -11
  44. package/dist/cli.js.map +1 -1
  45. package/dist/client/index.d.ts +34 -3
  46. package/dist/client/index.js +211 -12
  47. package/dist/client/index.js.map +1 -1
  48. package/dist/components/index.d.ts +2389 -31
  49. package/dist/components/index.js +7 -4
  50. package/dist/delta-text-tav2Lh5d.d.ts +17 -0
  51. package/dist/{dev-NZRLOQCL.js → dev-O42JFQ64.js} +24 -13
  52. package/dist/dev-O42JFQ64.js.map +1 -0
  53. package/dist/doc/index.d.ts +215 -2
  54. package/dist/doc/index.js +423 -5
  55. package/dist/doc/index.js.map +1 -1
  56. package/dist/{docs-ZGDJUHJI.js → docs-JVP4RPKT.js} +3 -3
  57. package/dist/{docs-ZGDJUHJI.js.map → docs-JVP4RPKT.js.map} +1 -1
  58. package/dist/{doctor-VFKEMR54.js → doctor-YD3XAAOT.js} +8 -8
  59. package/dist/doctor-YD3XAAOT.js.map +1 -0
  60. package/dist/format-D34piCei.d.ts +250 -0
  61. package/dist/geo-japan-7BMSOJRX.js +8 -0
  62. package/dist/geo-japan-7BMSOJRX.js.map +1 -0
  63. package/dist/geo-us-GVOG7VXH.js +8 -0
  64. package/dist/geo-us-GVOG7VXH.js.map +1 -0
  65. package/dist/geo-world-35HL56UU.js +8 -0
  66. package/dist/geo-world-35HL56UU.js.map +1 -0
  67. package/dist/markdown/index.js +1 -1
  68. package/dist/markdown/index.js.map +1 -1
  69. package/dist/{preview-QDCIVVSR.js → preview-T6CLSQVX.js} +12 -4
  70. package/dist/preview-T6CLSQVX.js.map +1 -0
  71. package/dist/query/index.d.ts +0 -11
  72. package/dist/query/index.js +2 -2
  73. package/dist/{routes-RHP5FVGD.js → routes-PVKNT777.js} +6 -6
  74. package/dist/{routes-RHP5FVGD.js.map → routes-PVKNT777.js.map} +1 -1
  75. package/dist/{search-RFBELGY7.js → search-5LC4XPB5.js} +3 -3
  76. package/dist/{search-RFBELGY7.js.map → search-5LC4XPB5.js.map} +1 -1
  77. package/dist/slide/index.d.ts +272 -1
  78. package/dist/slide/index.js +1086 -19
  79. package/dist/slide/index.js.map +1 -1
  80. package/dist/table/index.js +13 -10
  81. package/dist/table/index.js.map +1 -1
  82. package/dist/ui/index.d.ts +148 -12
  83. package/dist/ui/index.js +1339 -88
  84. package/dist/ui/index.js.map +1 -1
  85. package/dist/{upgrade-GF2P67M6.js → upgrade-6DT7ADRP.js} +7 -7
  86. package/dist/{upgrade-GF2P67M6.js.map → upgrade-6DT7ADRP.js.map} +1 -1
  87. package/dist/vite/index.d.ts +10 -0
  88. package/dist/vite/index.js +4 -4
  89. package/docs/en/agent-skills.md +1 -1
  90. package/docs/en/changelog.md +82 -0
  91. package/docs/en/cli-reference.md +30 -0
  92. package/docs/en/components.md +42 -17
  93. package/docs/en/doc/delta-text.md +40 -0
  94. package/docs/en/doc/doc-action-items.md +49 -0
  95. package/docs/en/doc/doc-callout.md +38 -0
  96. package/docs/en/doc/doc-data-table.md +60 -0
  97. package/docs/en/doc/doc-executive-summary.md +64 -0
  98. package/docs/en/doc/doc-figure.md +56 -0
  99. package/docs/en/doc/doc-key-findings.md +61 -0
  100. package/docs/en/doc/doc-kpi-scorecard.md +80 -0
  101. package/docs/en/doc/doc-notes-and-sources.md +43 -0
  102. package/docs/en/doc/doc-report-header.md +46 -0
  103. package/docs/en/pages-and-metadata.md +15 -0
  104. package/docs/en/parts/area-chart.md +99 -0
  105. package/docs/en/parts/bar-chart.md +91 -0
  106. package/docs/en/parts/bar-list.md +50 -0
  107. package/docs/en/parts/category-bar.md +37 -0
  108. package/docs/en/parts/chart-frame.md +39 -0
  109. package/docs/en/parts/data-table.md +22 -0
  110. package/docs/en/parts/delta.md +51 -0
  111. package/docs/en/parts/donut-chart.md +72 -0
  112. package/docs/en/parts/draft-chart.md +42 -0
  113. package/docs/en/parts/format.md +43 -0
  114. package/docs/en/parts/funnel-steps.md +2 -1
  115. package/docs/en/parts/heatmap.md +53 -0
  116. package/docs/en/parts/kpi-card.md +58 -0
  117. package/docs/en/parts/legend.md +35 -0
  118. package/docs/en/parts/line-chart.md +94 -0
  119. package/docs/en/parts/metric-value.md +3 -2
  120. package/docs/en/parts/page-shell.md +2 -2
  121. package/docs/en/parts/progress-circle.md +33 -0
  122. package/docs/en/parts/sample-data.md +39 -0
  123. package/docs/en/parts/scatter-chart.md +56 -0
  124. package/docs/en/parts/sparkline.md +1 -1
  125. package/docs/en/parts/tracker.md +36 -0
  126. package/docs/en/parts/trend-indicator.md +17 -1
  127. package/docs/en/parts/updated-at.md +30 -0
  128. package/docs/en/parts/waterfall-chart.md +56 -0
  129. package/docs/en/slide/slide-chart-full.md +48 -0
  130. package/docs/en/slide/slide-chart-insight.md +52 -0
  131. package/docs/en/slide/slide-columns.md +46 -0
  132. package/docs/en/slide/slide-comparison.md +68 -0
  133. package/docs/en/slide/slide-cover.md +39 -0
  134. package/docs/en/slide/slide-exec-summary.md +47 -0
  135. package/docs/en/slide/slide-heading.md +38 -0
  136. package/docs/en/slide/slide-kpi-grid.md +55 -0
  137. package/docs/en/slide/slide-kpi-hero.md +58 -0
  138. package/docs/en/slide/slide-next-actions.md +49 -0
  139. package/docs/en/slide/slide-scorecard-table.md +54 -0
  140. package/docs/en/slide/slide-section.md +44 -0
  141. package/docs/en/slide/slide-source-line.md +34 -0
  142. package/docs/en/ui/alert-dialog.md +42 -0
  143. package/docs/en/ui/avatar.md +31 -0
  144. package/docs/en/ui/combobox.md +74 -0
  145. package/docs/en/ui/drawer.md +41 -0
  146. package/docs/en/ui/empty.md +1 -1
  147. package/docs/en/ui/error-state.md +4 -3
  148. package/docs/en/ui/field.md +42 -0
  149. package/docs/en/ui/hover-card.md +21 -0
  150. package/docs/en/ui/kbd.md +17 -0
  151. package/docs/en/ui/loading.md +1 -1
  152. package/docs/en/ui/pagination.md +36 -0
  153. package/docs/en/ui/radio-group.md +21 -0
  154. package/docs/en/ui/toast.md +44 -0
  155. package/docs/en/ui/toggle-group.md +4 -3
  156. package/docs/en/ui-and-theming.md +1 -1
  157. package/docs/index.json +1222 -132
  158. package/docs/ja/agent-skills.md +1 -1
  159. package/docs/ja/changelog.md +84 -0
  160. package/docs/ja/cli-reference.md +29 -0
  161. package/docs/ja/components.md +68 -101
  162. package/docs/ja/doc/delta-text.md +40 -0
  163. package/docs/ja/doc/doc-action-items.md +49 -0
  164. package/docs/ja/doc/doc-callout.md +38 -0
  165. package/docs/ja/doc/doc-data-table.md +60 -0
  166. package/docs/ja/doc/doc-executive-summary.md +64 -0
  167. package/docs/ja/doc/doc-figure.md +56 -0
  168. package/docs/ja/doc/doc-key-findings.md +61 -0
  169. package/docs/ja/doc/doc-kpi-scorecard.md +80 -0
  170. package/docs/ja/doc/doc-notes-and-sources.md +43 -0
  171. package/docs/ja/doc/doc-report-header.md +46 -0
  172. package/docs/ja/page-types/csv.md +83 -0
  173. package/docs/ja/page-types/doc.md +83 -0
  174. package/docs/ja/page-types/excel.md +82 -0
  175. package/docs/ja/page-types/slide.md +133 -0
  176. package/docs/ja/page-types.md +47 -0
  177. package/docs/ja/pages-and-metadata.md +15 -0
  178. package/docs/ja/parts/area-chart.md +85 -0
  179. package/docs/ja/parts/bar-chart.md +95 -0
  180. package/docs/ja/parts/bar-list.md +58 -0
  181. package/docs/ja/parts/category-bar.md +36 -0
  182. package/docs/ja/parts/chart-frame.md +36 -0
  183. package/docs/ja/parts/data-table.md +22 -0
  184. package/docs/ja/parts/delta.md +51 -0
  185. package/docs/ja/parts/donut-chart.md +66 -0
  186. package/docs/ja/parts/draft-chart.md +40 -0
  187. package/docs/ja/parts/echart.md +3 -0
  188. package/docs/ja/parts/format.md +44 -0
  189. package/docs/ja/parts/funnel-steps.md +27 -8
  190. package/docs/ja/parts/heatmap.md +45 -0
  191. package/docs/ja/parts/kpi-card.md +56 -0
  192. package/docs/ja/parts/legend.md +36 -0
  193. package/docs/ja/parts/line-chart.md +84 -0
  194. package/docs/ja/parts/metric-value.md +3 -2
  195. package/docs/ja/parts/page-shell.md +2 -2
  196. package/docs/ja/parts/progress-circle.md +34 -0
  197. package/docs/ja/parts/sample-data.md +61 -0
  198. package/docs/ja/parts/scatter-chart.md +69 -0
  199. package/docs/ja/parts/sparkline.md +2 -2
  200. package/docs/ja/parts/tracker.md +32 -0
  201. package/docs/ja/parts/trend-indicator.md +17 -1
  202. package/docs/ja/parts/updated-at.md +27 -0
  203. package/docs/ja/parts/waterfall-chart.md +61 -0
  204. package/docs/ja/routing.md +8 -86
  205. package/docs/ja/slide/slide-chart-full.md +48 -0
  206. package/docs/ja/slide/slide-chart-insight.md +52 -0
  207. package/docs/ja/slide/slide-columns.md +46 -0
  208. package/docs/ja/slide/slide-comparison.md +68 -0
  209. package/docs/ja/slide/slide-cover.md +39 -0
  210. package/docs/ja/slide/slide-exec-summary.md +47 -0
  211. package/docs/ja/slide/slide-heading.md +38 -0
  212. package/docs/ja/slide/slide-kpi-grid.md +55 -0
  213. package/docs/ja/slide/slide-kpi-hero.md +58 -0
  214. package/docs/ja/slide/slide-next-actions.md +49 -0
  215. package/docs/ja/slide/slide-scorecard-table.md +54 -0
  216. package/docs/ja/slide/slide-section.md +44 -0
  217. package/docs/ja/slide/slide-source-line.md +34 -0
  218. package/docs/ja/ui/alert-dialog.md +41 -0
  219. package/docs/ja/ui/avatar.md +31 -0
  220. package/docs/ja/ui/combobox.md +74 -0
  221. package/docs/ja/ui/drawer.md +41 -0
  222. package/docs/ja/ui/empty.md +1 -1
  223. package/docs/ja/ui/error-state.md +4 -3
  224. package/docs/ja/ui/field.md +42 -0
  225. package/docs/ja/ui/hover-card.md +21 -0
  226. package/docs/ja/ui/kbd.md +16 -0
  227. package/docs/ja/ui/loading.md +1 -1
  228. package/docs/ja/ui/pagination.md +36 -0
  229. package/docs/ja/ui/radio-group.md +21 -0
  230. package/docs/ja/ui/toast.md +46 -0
  231. package/docs/ja/ui/toggle-group.md +4 -3
  232. package/docs/ja/ui-and-theming.md +14 -7
  233. package/package.json +43 -29
  234. package/registry/parts.json +5221 -0
  235. package/registry/ui/accordion.tsx +76 -0
  236. package/registry/ui/alert-dialog.tsx +189 -0
  237. package/registry/ui/alert.tsx +80 -0
  238. package/registry/ui/app-shell.tsx +424 -0
  239. package/registry/ui/area-chart.tsx +3960 -0
  240. package/registry/ui/attention-list.tsx +465 -0
  241. package/registry/ui/avatar.tsx +110 -0
  242. package/registry/ui/badge.tsx +56 -0
  243. package/registry/ui/bar-chart.tsx +3954 -0
  244. package/registry/ui/bar-list.tsx +3998 -0
  245. package/registry/ui/box-plot-chart.tsx +4214 -0
  246. package/registry/ui/breadcrumb.tsx +128 -0
  247. package/registry/ui/button.tsx +62 -0
  248. package/registry/ui/calendar.tsx +223 -0
  249. package/registry/ui/card.tsx +107 -0
  250. package/registry/ui/category-bar.tsx +1498 -0
  251. package/registry/ui/chart-frame.tsx +1612 -0
  252. package/registry/ui/checkbox.tsx +30 -0
  253. package/registry/ui/collapsible.tsx +23 -0
  254. package/registry/ui/combo-chart.tsx +1852 -0
  255. package/registry/ui/combobox.tsx +310 -0
  256. package/registry/ui/command.tsx +198 -0
  257. package/registry/ui/dashboard-card.tsx +219 -0
  258. package/registry/ui/data-table.tsx +899 -158
  259. package/registry/ui/date-range-picker.tsx +544 -0
  260. package/registry/ui/delta.tsx +352 -0
  261. package/registry/ui/dialog.tsx +161 -0
  262. package/registry/ui/donut-chart.tsx +4006 -0
  263. package/registry/ui/drawer.tsx +229 -0
  264. package/registry/ui/dropdown-menu.tsx +274 -0
  265. package/registry/ui/echart.tsx +1178 -0
  266. package/registry/ui/field.tsx +240 -0
  267. package/registry/ui/filter-bar.tsx +553 -0
  268. package/registry/ui/forecast-chart.tsx +4734 -0
  269. package/registry/ui/funnel-steps.tsx +3843 -0
  270. package/registry/ui/heatmap.tsx +2027 -0
  271. package/registry/ui/histogram-chart.tsx +4284 -0
  272. package/registry/ui/hover-card.tsx +52 -0
  273. package/registry/ui/input-group.tsx +160 -0
  274. package/registry/ui/input.tsx +24 -0
  275. package/registry/ui/kbd.tsx +30 -0
  276. package/registry/ui/kpi-card.tsx +907 -0
  277. package/registry/ui/label.tsx +22 -0
  278. package/registry/ui/legend.tsx +3817 -0
  279. package/registry/ui/line-chart.tsx +3958 -0
  280. package/registry/ui/metric-value.tsx +62 -0
  281. package/registry/ui/multi-select.tsx +382 -0
  282. package/registry/ui/page-shell.tsx +441 -0
  283. package/registry/ui/pagination.tsx +140 -0
  284. package/registry/ui/paired-chart.tsx +4086 -0
  285. package/registry/ui/pivot-table.tsx +1260 -0
  286. package/registry/ui/placeholder.tsx +36 -0
  287. package/registry/ui/popover.tsx +92 -0
  288. package/registry/ui/progress-circle.tsx +1033 -0
  289. package/registry/ui/progress.tsx +85 -0
  290. package/registry/ui/radio-group.tsx +39 -0
  291. package/registry/ui/sample-data.tsx +230 -0
  292. package/registry/ui/scatter-chart.tsx +4503 -0
  293. package/registry/ui/scroll-area.tsx +56 -0
  294. package/registry/ui/searchable-select.tsx +352 -0
  295. package/registry/ui/section-header.tsx +43 -0
  296. package/registry/ui/segmented-control.tsx +76 -0
  297. package/registry/ui/select.tsx +255 -0
  298. package/registry/ui/separator.tsx +27 -0
  299. package/registry/ui/sheet.tsx +139 -0
  300. package/registry/ui/sidebar.tsx +725 -0
  301. package/registry/ui/skeleton.tsx +17 -0
  302. package/registry/ui/slider.tsx +56 -0
  303. package/registry/ui/sparkline.tsx +230 -0
  304. package/registry/ui/spinner.tsx +14 -0
  305. package/registry/ui/states.tsx +247 -0
  306. package/registry/ui/status-badge.tsx +286 -0
  307. package/registry/ui/switch.tsx +34 -0
  308. package/registry/ui/table.tsx +118 -0
  309. package/registry/ui/tabs.tsx +84 -0
  310. package/registry/ui/textarea.tsx +22 -0
  311. package/registry/ui/toast.tsx +250 -0
  312. package/registry/ui/toggle-group.tsx +91 -0
  313. package/registry/ui/toggle.tsx +47 -0
  314. package/registry/ui/tooltip.tsx +72 -0
  315. package/registry/ui/tracker.tsx +1015 -0
  316. package/registry/ui/treemap.tsx +1917 -0
  317. package/registry/ui/trend-indicator.tsx +217 -0
  318. package/registry/ui/updated-at.tsx +276 -0
  319. package/registry/ui/waterfall-chart.tsx +4561 -0
  320. package/skills/vantage-add-feature/SKILL.md +14 -7
  321. package/skills/vantage-design/SKILL.md +62 -52
  322. package/skills/vantage-design/references/extract.md +26 -27
  323. package/skills/vantage-design/references/format.md +12 -172
  324. package/skills/vantage-design/references/presets.md +50 -110
  325. package/skills/vantage-pitfalls/SKILL.md +10 -1
  326. package/skills/vantage-slide/SKILL.md +71 -36
  327. package/templates/AGENTS.md +54 -16
  328. package/templates/agents/api.md +36 -0
  329. package/templates/agents/csv.md +2 -1
  330. package/templates/agents/doc.md +52 -3
  331. package/templates/agents/page.md +91 -10
  332. package/templates/agents/slide.md +90 -4
  333. package/templates/agents/xlsx.md +2 -1
  334. package/theme.css +247 -132
  335. package/dist/add-EISGSZAH.js +0 -6
  336. package/dist/add-EISGSZAH.js.map +0 -1
  337. package/dist/chunk-3G43C6OL.js.map +0 -1
  338. package/dist/chunk-5ZOP4SQR.js +0 -47
  339. package/dist/chunk-5ZOP4SQR.js.map +0 -1
  340. package/dist/chunk-A2UUGASH.js.map +0 -1
  341. package/dist/chunk-BCE22JSM.js.map +0 -1
  342. package/dist/chunk-DTDVSFRY.js +0 -29
  343. package/dist/chunk-DTDVSFRY.js.map +0 -1
  344. package/dist/chunk-EP6JHXSR.js.map +0 -1
  345. package/dist/chunk-JGRMRXXZ.js.map +0 -1
  346. package/dist/chunk-KLEIVDUV.js +0 -165
  347. package/dist/chunk-KLEIVDUV.js.map +0 -1
  348. package/dist/chunk-LSRMRIXA.js +0 -2227
  349. package/dist/chunk-LSRMRIXA.js.map +0 -1
  350. package/dist/chunk-PVTHHV7X.js.map +0 -1
  351. package/dist/chunk-PXRX5PEC.js.map +0 -1
  352. package/dist/chunk-RPZAALCX.js.map +0 -1
  353. package/dist/chunk-T3FLAGI6.js +0 -316
  354. package/dist/chunk-T3FLAGI6.js.map +0 -1
  355. package/dist/dev-NZRLOQCL.js.map +0 -1
  356. package/dist/doctor-VFKEMR54.js.map +0 -1
  357. package/dist/preview-QDCIVVSR.js.map +0 -1
package/dist/ui/index.js CHANGED
@@ -1,20 +1,30 @@
1
- export { Empty, ErrorState, Loading } from '../chunk-5ZOP4SQR.js';
2
- export { Badge, Calendar, CalendarDayButton, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, Popover, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Textarea, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, toggleVariants, useIsMobile, useSidebar } from '../chunk-RPZAALCX.js';
3
- export { Button, buttonVariants } from '../chunk-PXRX5PEC.js';
4
- import { cn } from '../chunk-A2UUGASH.js';
5
- export { cn } from '../chunk-A2UUGASH.js';
1
+ import { InputGroup, InputGroupInput, InputGroupAddon, InputGroupButton, Separator } from '../chunk-MQUIAP66.js';
2
+ export { Badge, Calendar, CalendarDayButton, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Empty, ErrorState, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, Loading, Popover, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Textarea, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, toggleVariants, useIsMobile, useSidebar } from '../chunk-MQUIAP66.js';
3
+ import { Button } from '../chunk-ROHNXP7J.js';
4
+ export { Button, buttonVariants } from '../chunk-ROHNXP7J.js';
5
+ import { cn } from '../chunk-U736PVHY.js';
6
+ export { cn } from '../chunk-U736PVHY.js';
6
7
  import { Accordion as Accordion$1 } from '@base-ui/react/accordion';
7
- import { ChevronDownIcon, ChevronUpIcon, ChevronRightIcon, MoreHorizontalIcon, Loader2Icon } from 'lucide-react';
8
+ import { ChevronDownIcon, ChevronUpIcon, ChevronRightIcon, MoreHorizontalIcon, CheckIcon, XIcon, ChevronLeftIcon, Loader2Icon, CircleCheckIcon, InfoIcon, TriangleAlertIcon, OctagonXIcon } from 'lucide-react';
8
9
  import { jsx, jsxs } from 'react/jsx-runtime';
9
- import 'react';
10
+ import * as React6 from 'react';
11
+ import { useMemo } from 'react';
10
12
  import { cva } from 'class-variance-authority';
13
+ import { AlertDialog as AlertDialog$1 } from '@base-ui/react/alert-dialog';
14
+ import { Avatar as Avatar$1 } from '@base-ui/react/avatar';
11
15
  import { mergeProps } from '@base-ui/react/merge-props';
12
16
  import { useRender } from '@base-ui/react/use-render';
17
+ import { Combobox as Combobox$1 } from '@base-ui/react/combobox';
18
+ import { Drawer as Drawer$1 } from '@base-ui/react/drawer';
19
+ import { PreviewCard } from '@base-ui/react/preview-card';
13
20
  import { Progress as Progress$1 } from '@base-ui/react/progress';
21
+ import { Radio } from '@base-ui/react/radio';
22
+ import { RadioGroup as RadioGroup$1 } from '@base-ui/react/radio-group';
14
23
  import { ScrollArea as ScrollArea$1 } from '@base-ui/react/scroll-area';
15
24
  import { Slider as Slider$1 } from '@base-ui/react/slider';
16
25
  import { Switch as Switch$1 } from '@base-ui/react/switch';
17
26
  import { Tabs as Tabs$1 } from '@base-ui/react/tabs';
27
+ import { Toast as Toast$1 } from '@base-ui/react/toast';
18
28
 
19
29
  // @squadbase/vantage — generated build. Do not edit.
20
30
  function Accordion({ className, ...props }) {
@@ -68,7 +78,7 @@ function AccordionContent({
68
78
  Accordion$1.Panel,
69
79
  {
70
80
  "data-slot": "accordion-content",
71
- className: "overflow-hidden text-sm data-open:animate-accordion-down data-closed:animate-accordion-up",
81
+ className: "overflow-hidden text-sm data-open:animate-accordion-down data-closed:animate-accordion-up motion-reduce:animate-none",
72
82
  ...props,
73
83
  children: /* @__PURE__ */ jsx(
74
84
  "div",
@@ -151,6 +161,253 @@ function AlertAction({ className, ...props }) {
151
161
  }
152
162
  );
153
163
  }
164
+ function AlertDialog({ ...props }) {
165
+ return /* @__PURE__ */ jsx(AlertDialog$1.Root, { "data-slot": "alert-dialog", ...props });
166
+ }
167
+ function AlertDialogTrigger({ ...props }) {
168
+ return /* @__PURE__ */ jsx(AlertDialog$1.Trigger, { "data-slot": "alert-dialog-trigger", ...props });
169
+ }
170
+ function AlertDialogPortal({ ...props }) {
171
+ return /* @__PURE__ */ jsx(AlertDialog$1.Portal, { "data-slot": "alert-dialog-portal", ...props });
172
+ }
173
+ function AlertDialogOverlay({
174
+ className,
175
+ ...props
176
+ }) {
177
+ return /* @__PURE__ */ jsx(
178
+ AlertDialog$1.Backdrop,
179
+ {
180
+ "data-slot": "alert-dialog-overlay",
181
+ className: cn(
182
+ "fixed inset-0 isolate z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in motion-reduce:animate-none! data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",
183
+ className
184
+ ),
185
+ ...props
186
+ }
187
+ );
188
+ }
189
+ function AlertDialogContent({
190
+ className,
191
+ size = "default",
192
+ ...props
193
+ }) {
194
+ return /* @__PURE__ */ jsxs(AlertDialogPortal, { children: [
195
+ /* @__PURE__ */ jsx(AlertDialogOverlay, {}),
196
+ /* @__PURE__ */ jsx(
197
+ AlertDialog$1.Popup,
198
+ {
199
+ "data-slot": "alert-dialog-content",
200
+ "data-size": size,
201
+ className: cn(
202
+ "group/alert-dialog-content fixed top-1/2 left-1/2 z-50 grid w-full -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-popover p-4 text-popover-foreground ring-1 ring-foreground/10 duration-100 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 motion-reduce:animate-none! data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
203
+ className
204
+ ),
205
+ ...props
206
+ }
207
+ )
208
+ ] });
209
+ }
210
+ function AlertDialogHeader({
211
+ className,
212
+ ...props
213
+ }) {
214
+ return /* @__PURE__ */ jsx(
215
+ "div",
216
+ {
217
+ "data-slot": "alert-dialog-header",
218
+ className: cn(
219
+ "grid grid-rows-[auto_1fr] place-items-center gap-1.5 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-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]",
220
+ className
221
+ ),
222
+ ...props
223
+ }
224
+ );
225
+ }
226
+ function AlertDialogFooter({
227
+ className,
228
+ ...props
229
+ }) {
230
+ return /* @__PURE__ */ jsx(
231
+ "div",
232
+ {
233
+ "data-slot": "alert-dialog-footer",
234
+ className: cn(
235
+ "-mx-4 -mb-4 flex flex-col-reverse gap-2 rounded-b-xl border-t bg-muted/50 p-4 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end",
236
+ className
237
+ ),
238
+ ...props
239
+ }
240
+ );
241
+ }
242
+ function AlertDialogMedia({
243
+ className,
244
+ ...props
245
+ }) {
246
+ return /* @__PURE__ */ jsx(
247
+ "div",
248
+ {
249
+ "data-slot": "alert-dialog-media",
250
+ className: cn(
251
+ "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-6",
252
+ className
253
+ ),
254
+ ...props
255
+ }
256
+ );
257
+ }
258
+ function AlertDialogTitle({
259
+ className,
260
+ ...props
261
+ }) {
262
+ return /* @__PURE__ */ jsx(
263
+ AlertDialog$1.Title,
264
+ {
265
+ "data-slot": "alert-dialog-title",
266
+ className: cn(
267
+ "cn-font-heading 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",
268
+ className
269
+ ),
270
+ ...props
271
+ }
272
+ );
273
+ }
274
+ function AlertDialogDescription({
275
+ className,
276
+ ...props
277
+ }) {
278
+ return /* @__PURE__ */ jsx(
279
+ AlertDialog$1.Description,
280
+ {
281
+ "data-slot": "alert-dialog-description",
282
+ className: cn(
283
+ "text-sm text-balance text-muted-foreground md:text-pretty *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground",
284
+ className
285
+ ),
286
+ ...props
287
+ }
288
+ );
289
+ }
290
+ function AlertDialogAction({
291
+ className,
292
+ ...props
293
+ }) {
294
+ return /* @__PURE__ */ jsx(
295
+ Button,
296
+ {
297
+ "data-slot": "alert-dialog-action",
298
+ className: cn(className),
299
+ ...props
300
+ }
301
+ );
302
+ }
303
+ function AlertDialogCancel({
304
+ className,
305
+ variant = "outline",
306
+ size = "default",
307
+ ...props
308
+ }) {
309
+ return /* @__PURE__ */ jsx(
310
+ AlertDialog$1.Close,
311
+ {
312
+ "data-slot": "alert-dialog-cancel",
313
+ className: cn(className),
314
+ render: /* @__PURE__ */ jsx(Button, { variant, size }),
315
+ ...props
316
+ }
317
+ );
318
+ }
319
+ function Avatar({
320
+ className,
321
+ size = "default",
322
+ ...props
323
+ }) {
324
+ return /* @__PURE__ */ jsx(
325
+ Avatar$1.Root,
326
+ {
327
+ "data-slot": "avatar",
328
+ "data-size": size,
329
+ className: cn(
330
+ "group/avatar relative flex size-8 shrink-0 rounded-full select-none after:absolute after:inset-0 after:rounded-full after:border after:border-border after:mix-blend-darken data-[size=lg]:size-10 data-[size=sm]:size-6 dark:after:mix-blend-lighten",
331
+ className
332
+ ),
333
+ ...props
334
+ }
335
+ );
336
+ }
337
+ function AvatarImage({ className, ...props }) {
338
+ return /* @__PURE__ */ jsx(
339
+ Avatar$1.Image,
340
+ {
341
+ "data-slot": "avatar-image",
342
+ className: cn(
343
+ "aspect-square size-full rounded-full object-cover",
344
+ className
345
+ ),
346
+ ...props
347
+ }
348
+ );
349
+ }
350
+ function AvatarFallback({
351
+ className,
352
+ ...props
353
+ }) {
354
+ return /* @__PURE__ */ jsx(
355
+ Avatar$1.Fallback,
356
+ {
357
+ "data-slot": "avatar-fallback",
358
+ className: cn(
359
+ "flex size-full items-center justify-center rounded-full bg-muted text-sm text-muted-foreground group-data-[size=sm]/avatar:text-xs",
360
+ className
361
+ ),
362
+ ...props
363
+ }
364
+ );
365
+ }
366
+ function AvatarBadge({ className, ...props }) {
367
+ return /* @__PURE__ */ jsx(
368
+ "span",
369
+ {
370
+ "data-slot": "avatar-badge",
371
+ className: cn(
372
+ "absolute right-0 bottom-0 z-10 inline-flex items-center justify-center rounded-full bg-primary text-primary-foreground bg-blend-color ring-2 ring-background select-none",
373
+ "group-data-[size=sm]/avatar:size-2 group-data-[size=sm]/avatar:[&>svg]:hidden",
374
+ "group-data-[size=default]/avatar:size-2.5 group-data-[size=default]/avatar:[&>svg]:size-2",
375
+ "group-data-[size=lg]/avatar:size-3 group-data-[size=lg]/avatar:[&>svg]:size-2",
376
+ className
377
+ ),
378
+ ...props
379
+ }
380
+ );
381
+ }
382
+ function AvatarGroup({ className, ...props }) {
383
+ return /* @__PURE__ */ jsx(
384
+ "div",
385
+ {
386
+ "data-slot": "avatar-group",
387
+ className: cn(
388
+ "group/avatar-group flex -space-x-2 *:data-[slot=avatar]:ring-2 *:data-[slot=avatar]:ring-background",
389
+ className
390
+ ),
391
+ ...props
392
+ }
393
+ );
394
+ }
395
+ function AvatarGroupCount({
396
+ className,
397
+ ...props
398
+ }) {
399
+ return /* @__PURE__ */ jsx(
400
+ "div",
401
+ {
402
+ "data-slot": "avatar-group-count",
403
+ className: cn(
404
+ "relative flex size-8 shrink-0 items-center justify-center rounded-full bg-muted text-sm text-muted-foreground ring-2 ring-background group-has-data-[size=lg]/avatar-group:size-10 group-has-data-[size=sm]/avatar-group:size-6 [&>svg]:size-4 group-has-data-[size=lg]/avatar-group:[&>svg]:size-5 group-has-data-[size=sm]/avatar-group:[&>svg]:size-3",
405
+ className
406
+ ),
407
+ ...props
408
+ }
409
+ );
410
+ }
154
411
  function Breadcrumb({ className, ...props }) {
155
412
  return /* @__PURE__ */ jsx(
156
413
  "nav",
@@ -208,154 +465,913 @@ function BreadcrumbPage({ className, ...props }) {
208
465
  return /* @__PURE__ */ jsx(
209
466
  "span",
210
467
  {
211
- "data-slot": "breadcrumb-page",
212
- role: "link",
213
- "aria-disabled": "true",
214
- "aria-current": "page",
215
- className: cn("font-normal text-foreground", className),
468
+ "data-slot": "breadcrumb-page",
469
+ role: "link",
470
+ "aria-disabled": "true",
471
+ "aria-current": "page",
472
+ className: cn("font-normal text-foreground", className),
473
+ ...props
474
+ }
475
+ );
476
+ }
477
+ function BreadcrumbSeparator({
478
+ children,
479
+ className,
480
+ ...props
481
+ }) {
482
+ return /* @__PURE__ */ jsx(
483
+ "li",
484
+ {
485
+ "data-slot": "breadcrumb-separator",
486
+ role: "presentation",
487
+ "aria-hidden": "true",
488
+ className: cn("[&>svg]:size-3.5", className),
489
+ ...props,
490
+ children: children ?? /* @__PURE__ */ jsx(ChevronRightIcon, { className: "cn-rtl-flip" })
491
+ }
492
+ );
493
+ }
494
+ function BreadcrumbEllipsis({
495
+ className,
496
+ ...props
497
+ }) {
498
+ return /* @__PURE__ */ jsxs(
499
+ "span",
500
+ {
501
+ "data-slot": "breadcrumb-ellipsis",
502
+ role: "presentation",
503
+ "aria-hidden": "true",
504
+ className: cn(
505
+ "flex size-5 items-center justify-center [&>svg]:size-4",
506
+ className
507
+ ),
508
+ ...props,
509
+ children: [
510
+ /* @__PURE__ */ jsx(MoreHorizontalIcon, {}),
511
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: "More" })
512
+ ]
513
+ }
514
+ );
515
+ }
516
+ var Combobox = Combobox$1.Root;
517
+ function ComboboxValue({ ...props }) {
518
+ return /* @__PURE__ */ jsx(Combobox$1.Value, { "data-slot": "combobox-value", ...props });
519
+ }
520
+ function ComboboxTrigger({
521
+ className,
522
+ children,
523
+ ...props
524
+ }) {
525
+ return /* @__PURE__ */ jsxs(
526
+ Combobox$1.Trigger,
527
+ {
528
+ "data-slot": "combobox-trigger",
529
+ className: cn("[&_svg:not([class*='size-'])]:size-4", className),
530
+ ...props,
531
+ children: [
532
+ children,
533
+ /* @__PURE__ */ jsx(
534
+ ChevronDownIcon,
535
+ {
536
+ className: "pointer-events-none size-4 text-muted-foreground"
537
+ }
538
+ )
539
+ ]
540
+ }
541
+ );
542
+ }
543
+ function ComboboxClear({ className, ...props }) {
544
+ return /* @__PURE__ */ jsx(
545
+ Combobox$1.Clear,
546
+ {
547
+ "data-slot": "combobox-clear",
548
+ render: /* @__PURE__ */ jsx(InputGroupButton, { variant: "ghost", size: "icon-xs" }),
549
+ className: cn(className),
550
+ ...props,
551
+ children: /* @__PURE__ */ jsx(
552
+ XIcon,
553
+ {
554
+ className: "pointer-events-none"
555
+ }
556
+ )
557
+ }
558
+ );
559
+ }
560
+ function ComboboxInput({
561
+ className,
562
+ children,
563
+ disabled = false,
564
+ showTrigger = true,
565
+ showClear = false,
566
+ ...props
567
+ }) {
568
+ return /* @__PURE__ */ jsxs(InputGroup, { className: cn("w-auto", className), children: [
569
+ /* @__PURE__ */ jsx(
570
+ Combobox$1.Input,
571
+ {
572
+ render: /* @__PURE__ */ jsx(InputGroupInput, { disabled }),
573
+ ...props
574
+ }
575
+ ),
576
+ /* @__PURE__ */ jsxs(InputGroupAddon, { align: "inline-end", children: [
577
+ showTrigger && /* @__PURE__ */ jsx(
578
+ InputGroupButton,
579
+ {
580
+ size: "icon-xs",
581
+ variant: "ghost",
582
+ render: /* @__PURE__ */ jsx(ComboboxTrigger, {}),
583
+ "data-slot": "input-group-button",
584
+ className: "group-has-data-[slot=combobox-clear]/input-group:hidden data-pressed:bg-transparent",
585
+ disabled
586
+ }
587
+ ),
588
+ showClear && /* @__PURE__ */ jsx(ComboboxClear, { disabled })
589
+ ] }),
590
+ children
591
+ ] });
592
+ }
593
+ function ComboboxContent({
594
+ className,
595
+ side = "bottom",
596
+ sideOffset = 6,
597
+ align = "start",
598
+ alignOffset = 0,
599
+ anchor,
600
+ ...props
601
+ }) {
602
+ return /* @__PURE__ */ jsx(Combobox$1.Portal, { children: /* @__PURE__ */ jsx(
603
+ Combobox$1.Positioner,
604
+ {
605
+ side,
606
+ sideOffset,
607
+ align,
608
+ alignOffset,
609
+ anchor,
610
+ className: "isolate z-50",
611
+ children: /* @__PURE__ */ jsx(
612
+ Combobox$1.Popup,
613
+ {
614
+ "data-slot": "combobox-content",
615
+ "data-chips": !!anchor,
616
+ className: cn(
617
+ "cn-menu-target cn-menu-translucent group/combobox-content relative max-h-(--available-height) w-(--anchor-width) max-w-(--available-width) min-w-[calc(var(--anchor-width)+--spacing(7))] origin-(--transform-origin) overflow-hidden rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[chips=true]:min-w-(--anchor-width) data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 *:data-[slot=input-group]:m-1 *:data-[slot=input-group]:mb-0 *:data-[slot=input-group]:h-8 *:data-[slot=input-group]:border-input/30 *:data-[slot=input-group]:bg-input/30 *:data-[slot=input-group]:shadow-none data-open:animate-in motion-reduce:animate-none! data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
618
+ className
619
+ ),
620
+ ...props
621
+ }
622
+ )
623
+ }
624
+ ) });
625
+ }
626
+ function ComboboxList({ className, ...props }) {
627
+ return /* @__PURE__ */ jsx(
628
+ Combobox$1.List,
629
+ {
630
+ "data-slot": "combobox-list",
631
+ className: cn(
632
+ "no-scrollbar max-h-[min(calc(--spacing(72)---spacing(9)),calc(var(--available-height)---spacing(9)))] scroll-py-1 overflow-y-auto overscroll-contain p-1 data-empty:p-0",
633
+ className
634
+ ),
635
+ ...props
636
+ }
637
+ );
638
+ }
639
+ function ComboboxItem({
640
+ className,
641
+ children,
642
+ ...props
643
+ }) {
644
+ return /* @__PURE__ */ jsxs(
645
+ Combobox$1.Item,
646
+ {
647
+ "data-slot": "combobox-item",
648
+ className: cn(
649
+ "relative flex w-full cursor-default items-center gap-2 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none data-highlighted:bg-accent data-highlighted:text-accent-foreground not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
650
+ className
651
+ ),
652
+ ...props,
653
+ children: [
654
+ children,
655
+ /* @__PURE__ */ jsx(
656
+ Combobox$1.ItemIndicator,
657
+ {
658
+ render: /* @__PURE__ */ jsx("span", { className: "pointer-events-none absolute right-2 flex size-4 items-center justify-center" }),
659
+ children: /* @__PURE__ */ jsx(
660
+ CheckIcon,
661
+ {
662
+ className: "pointer-events-none"
663
+ }
664
+ )
665
+ }
666
+ )
667
+ ]
668
+ }
669
+ );
670
+ }
671
+ function ComboboxGroup({ className, ...props }) {
672
+ return /* @__PURE__ */ jsx(
673
+ Combobox$1.Group,
674
+ {
675
+ "data-slot": "combobox-group",
676
+ className: cn(className),
677
+ ...props
678
+ }
679
+ );
680
+ }
681
+ function ComboboxLabel({
682
+ className,
683
+ ...props
684
+ }) {
685
+ return /* @__PURE__ */ jsx(
686
+ Combobox$1.GroupLabel,
687
+ {
688
+ "data-slot": "combobox-label",
689
+ className: cn("px-2 py-1.5 text-xs text-muted-foreground", className),
690
+ ...props
691
+ }
692
+ );
693
+ }
694
+ function ComboboxCollection({ ...props }) {
695
+ return /* @__PURE__ */ jsx(Combobox$1.Collection, { "data-slot": "combobox-collection", ...props });
696
+ }
697
+ function ComboboxEmpty({ className, ...props }) {
698
+ return /* @__PURE__ */ jsx(
699
+ Combobox$1.Empty,
700
+ {
701
+ "data-slot": "combobox-empty",
702
+ className: cn(
703
+ "hidden w-full justify-center py-2 text-center text-sm text-muted-foreground group-data-empty/combobox-content:flex",
704
+ className
705
+ ),
706
+ ...props
707
+ }
708
+ );
709
+ }
710
+ function ComboboxSeparator({
711
+ className,
712
+ ...props
713
+ }) {
714
+ return /* @__PURE__ */ jsx(
715
+ Combobox$1.Separator,
716
+ {
717
+ "data-slot": "combobox-separator",
718
+ className: cn("-mx-1 my-1 h-px bg-border", className),
719
+ ...props
720
+ }
721
+ );
722
+ }
723
+ function ComboboxChips({
724
+ className,
725
+ ...props
726
+ }) {
727
+ return /* @__PURE__ */ jsx(
728
+ Combobox$1.Chips,
729
+ {
730
+ "data-slot": "combobox-chips",
731
+ className: cn(
732
+ "flex min-h-8 flex-wrap items-center gap-1 rounded-lg border border-input bg-transparent bg-clip-padding px-2.5 py-1 text-sm transition-colors focus-within:border-ring focus-within:ring-3 focus-within:ring-ring/50 has-aria-invalid:border-destructive has-aria-invalid:ring-3 has-aria-invalid:ring-destructive/20 has-data-[slot=combobox-chip]:px-1 dark:bg-input/30 dark:has-aria-invalid:border-destructive/50 dark:has-aria-invalid:ring-destructive/40",
733
+ className
734
+ ),
735
+ ...props
736
+ }
737
+ );
738
+ }
739
+ function ComboboxChip({
740
+ className,
741
+ children,
742
+ showRemove = true,
743
+ ...props
744
+ }) {
745
+ return /* @__PURE__ */ jsxs(
746
+ Combobox$1.Chip,
747
+ {
748
+ "data-slot": "combobox-chip",
749
+ className: cn(
750
+ "flex h-[calc(--spacing(5.25))] w-fit items-center justify-center gap-1 rounded-sm bg-muted px-1.5 text-xs font-medium whitespace-nowrap text-foreground has-disabled:pointer-events-none has-disabled:cursor-not-allowed has-disabled:opacity-50 has-data-[slot=combobox-chip-remove]:pr-0",
751
+ className
752
+ ),
753
+ ...props,
754
+ children: [
755
+ children,
756
+ showRemove && /* @__PURE__ */ jsx(
757
+ Combobox$1.ChipRemove,
758
+ {
759
+ render: /* @__PURE__ */ jsx(Button, { variant: "ghost", size: "icon-xs" }),
760
+ className: "-ml-1 opacity-50 hover:opacity-100",
761
+ "data-slot": "combobox-chip-remove",
762
+ children: /* @__PURE__ */ jsx(
763
+ XIcon,
764
+ {
765
+ className: "pointer-events-none"
766
+ }
767
+ )
768
+ }
769
+ )
770
+ ]
771
+ }
772
+ );
773
+ }
774
+ function ComboboxChipsInput({
775
+ className,
776
+ ...props
777
+ }) {
778
+ return /* @__PURE__ */ jsx(
779
+ Combobox$1.Input,
780
+ {
781
+ "data-slot": "combobox-chip-input",
782
+ className: cn("min-w-16 flex-1 outline-none", className),
783
+ ...props
784
+ }
785
+ );
786
+ }
787
+ function useComboboxAnchor() {
788
+ return React6.useRef(null);
789
+ }
790
+ var DrawerContext = React6.createContext(null);
791
+ function useDrawer() {
792
+ const context = React6.useContext(DrawerContext);
793
+ if (!context) {
794
+ throw new Error("useDrawer must be used within a Drawer.");
795
+ }
796
+ return context;
797
+ }
798
+ function Drawer({
799
+ modal = true,
800
+ showSwipeHandle = false,
801
+ snapPoints,
802
+ swipeDirection = "down",
803
+ ...props
804
+ }) {
805
+ const hasSnapPoints = snapPoints != null && snapPoints.length > 0;
806
+ const contextValue = React6.useMemo(
807
+ () => ({ hasSnapPoints, modal, showSwipeHandle, swipeDirection }),
808
+ [hasSnapPoints, modal, showSwipeHandle, swipeDirection]
809
+ );
810
+ return /* @__PURE__ */ jsx(DrawerContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx(
811
+ Drawer$1.Root,
812
+ {
813
+ "data-slot": "drawer",
814
+ modal,
815
+ snapPoints,
816
+ swipeDirection,
817
+ ...props
818
+ }
819
+ ) });
820
+ }
821
+ function DrawerTrigger({ ...props }) {
822
+ return /* @__PURE__ */ jsx(Drawer$1.Trigger, { "data-slot": "drawer-trigger", ...props });
823
+ }
824
+ function DrawerPortal({ ...props }) {
825
+ return /* @__PURE__ */ jsx(Drawer$1.Portal, { "data-slot": "drawer-portal", ...props });
826
+ }
827
+ function DrawerClose({ ...props }) {
828
+ return /* @__PURE__ */ jsx(Drawer$1.Close, { "data-slot": "drawer-close", ...props });
829
+ }
830
+ function DrawerOverlay({
831
+ className,
832
+ ...props
833
+ }) {
834
+ return /* @__PURE__ */ jsx(
835
+ Drawer$1.Backdrop,
836
+ {
837
+ "data-slot": "drawer-overlay",
838
+ className: cn(
839
+ "fixed inset-0 z-50 min-h-dvh bg-black/10 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-backdrop-filter:backdrop-blur-xs supports-[-webkit-touch-callout:none]:absolute",
840
+ className
841
+ ),
842
+ ...props
843
+ }
844
+ );
845
+ }
846
+ function DrawerSwipeHandle({
847
+ className,
848
+ ...props
849
+ }) {
850
+ return /* @__PURE__ */ jsx(
851
+ "div",
852
+ {
853
+ "data-slot": "drawer-swipe-handle",
854
+ "aria-hidden": "true",
855
+ className: cn(
856
+ "relative z-10 flex shrink-0 cursor-grab transition-opacity duration-200 group-data-nested-drawer-open/drawer-popup:opacity-0 group-data-nested-drawer-swiping/drawer-popup:opacity-100 group-data-[swipe-axis=x]/drawer-popup:h-full group-data-[swipe-axis=x]/drawer-popup:w-3 group-data-[swipe-axis=x]/drawer-popup:items-center group-data-[swipe-axis=y]/drawer-popup:h-3 group-data-[swipe-axis=y]/drawer-popup:w-full group-data-[swipe-axis=y]/drawer-popup:justify-center group-data-[swipe-direction=down]/drawer-popup:items-end group-data-[swipe-direction=left]/drawer-popup:order-last group-data-[swipe-direction=left]/drawer-popup:justify-start group-data-[swipe-direction=right]/drawer-popup:justify-end group-data-[swipe-direction=up]/drawer-popup:order-last group-data-[swipe-direction=up]/drawer-popup:items-start after:block after:shrink-0 after:rounded-full after:bg-muted group-data-[swipe-axis=x]/drawer-popup:after:h-24 group-data-[swipe-axis=x]/drawer-popup:after:w-1 group-data-[swipe-axis=y]/drawer-popup:after:h-1 group-data-[swipe-axis=y]/drawer-popup:after:w-24 active:cursor-grabbing",
857
+ className
858
+ ),
859
+ ...props
860
+ }
861
+ );
862
+ }
863
+ function DrawerContent({
864
+ className,
865
+ children,
866
+ ...props
867
+ }) {
868
+ const { hasSnapPoints, modal, showSwipeHandle, swipeDirection } = useDrawer();
869
+ const swipeAxis = swipeDirection === "down" || swipeDirection === "up" ? "y" : "x";
870
+ return /* @__PURE__ */ jsxs(DrawerPortal, { "data-slot": "drawer-portal", children: [
871
+ modal === true && /* @__PURE__ */ jsx(DrawerOverlay, { "data-snap-points": hasSnapPoints ? "" : void 0 }),
872
+ /* @__PURE__ */ jsx(
873
+ Drawer$1.Viewport,
874
+ {
875
+ "data-slot": "drawer-viewport",
876
+ "data-modal": modal,
877
+ className: "pointer-events-none fixed inset-0 z-50 select-none data-[modal=true]:pointer-events-auto",
878
+ children: /* @__PURE__ */ jsxs(
879
+ Drawer$1.Popup,
880
+ {
881
+ "data-slot": "drawer-popup",
882
+ "data-swipe-axis": swipeAxis,
883
+ "data-snap-points": hasSnapPoints ? "" : void 0,
884
+ className: cn(
885
+ // Base.
886
+ "group/drawer-popup pointer-events-auto fixed z-50 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)_scale(var(--stack-scale))] flex-col 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-xl data-[swipe-direction=down]:border-t data-[swipe-direction=left]:rounded-r-xl data-[swipe-direction=left]:border-r data-[swipe-direction=right]:rounded-l-xl data-[swipe-direction=right]:border-l data-[swipe-direction=up]:rounded-b-xl data-[swipe-direction=up]:border-b",
887
+ // Nested.
888
+ "data-nested-drawer-open:overflow-hidden data-nested-drawer-open:brightness-95",
889
+ // Bleed.
890
+ "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",
891
+ // Sizing.
892
+ "[--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]",
893
+ // Stack.
894
+ "[--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-scale-base:max(0,calc(1-(var(--nested-drawers)*var(--stack-step))))] [--stack-scale:clamp(0,calc(var(--stack-scale-base)+(var(--stack-step)*var(--stack-progress))),1)] [--stack-shrink:calc(1-var(--stack-scale))] [--stack-step:0.05]",
895
+ // Transitions.
896
+ "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)]",
897
+ // Axis: y.
898
+ "data-[swipe-axis=y]:inset-x-0 data-[swipe-axis=y]:data-nested-drawer-open:h-(--stack-height)",
899
+ // Axis: x.
900
+ "data-[swipe-axis=x]:inset-y-0 data-[swipe-axis=x]:flex-row",
901
+ // Direction: down.
902
+ "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)))]",
903
+ // Direction: up.
904
+ "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)))]",
905
+ // Direction: left.
906
+ "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%))]",
907
+ // Direction: right.
908
+ "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%))]",
909
+ className
910
+ ),
911
+ ...props,
912
+ children: [
913
+ showSwipeHandle && /* @__PURE__ */ jsx(DrawerSwipeHandle, {}),
914
+ /* @__PURE__ */ jsx(
915
+ Drawer$1.Content,
916
+ {
917
+ "data-slot": "drawer-content",
918
+ className: cn(
919
+ "flex min-h-0 flex-1 flex-col overflow-hidden overscroll-contain rounded-[inherit] transition-opacity duration-300 ease-[cubic-bezier(0.45,1.005,0,1.005)] 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"
920
+ ),
921
+ children
922
+ }
923
+ )
924
+ ]
925
+ }
926
+ )
927
+ }
928
+ )
929
+ ] });
930
+ }
931
+ function DrawerHeader({ className, ...props }) {
932
+ return /* @__PURE__ */ jsx(
933
+ "div",
934
+ {
935
+ "data-slot": "drawer-header",
936
+ className: cn(
937
+ "flex shrink-0 flex-col gap-0.5 p-4 pb-0 group-data-[swipe-axis=y]/drawer-popup:text-center md:gap-0.5 md:text-left",
938
+ className
939
+ ),
940
+ ...props
941
+ }
942
+ );
943
+ }
944
+ function DrawerFooter({ className, ...props }) {
945
+ return /* @__PURE__ */ jsx(
946
+ "div",
947
+ {
948
+ "data-slot": "drawer-footer",
949
+ className: cn("mt-auto flex shrink-0 flex-col gap-2 p-4 pt-0", className),
950
+ ...props
951
+ }
952
+ );
953
+ }
954
+ function DrawerTitle({ className, ...props }) {
955
+ return /* @__PURE__ */ jsx(
956
+ Drawer$1.Title,
957
+ {
958
+ "data-slot": "drawer-title",
959
+ className: cn(
960
+ "cn-font-heading text-base font-medium text-foreground",
961
+ className
962
+ ),
963
+ ...props
964
+ }
965
+ );
966
+ }
967
+ function DrawerDescription({
968
+ className,
969
+ ...props
970
+ }) {
971
+ return /* @__PURE__ */ jsx(
972
+ Drawer$1.Description,
973
+ {
974
+ "data-slot": "drawer-description",
975
+ className: cn("text-sm text-balance text-muted-foreground", className),
976
+ ...props
977
+ }
978
+ );
979
+ }
980
+ function Label({ className, ...props }) {
981
+ return /* @__PURE__ */ jsx(
982
+ "label",
983
+ {
984
+ "data-slot": "label",
985
+ className: cn(
986
+ "flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",
987
+ className
988
+ ),
989
+ ...props
990
+ }
991
+ );
992
+ }
993
+ function FieldSet({ className, ...props }) {
994
+ return /* @__PURE__ */ jsx(
995
+ "fieldset",
996
+ {
997
+ "data-slot": "field-set",
998
+ className: cn(
999
+ "flex flex-col gap-4 has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3",
1000
+ className
1001
+ ),
1002
+ ...props
1003
+ }
1004
+ );
1005
+ }
1006
+ function FieldLegend({
1007
+ className,
1008
+ variant = "legend",
1009
+ ...props
1010
+ }) {
1011
+ return /* @__PURE__ */ jsx(
1012
+ "legend",
1013
+ {
1014
+ "data-slot": "field-legend",
1015
+ "data-variant": variant,
1016
+ className: cn(
1017
+ "mb-1.5 font-medium data-[variant=label]:text-sm data-[variant=legend]:text-base",
1018
+ className
1019
+ ),
1020
+ ...props
1021
+ }
1022
+ );
1023
+ }
1024
+ function FieldGroup({ className, ...props }) {
1025
+ return /* @__PURE__ */ jsx(
1026
+ "div",
1027
+ {
1028
+ "data-slot": "field-group",
1029
+ className: cn(
1030
+ "group/field-group @container/field-group flex w-full flex-col gap-5 data-[slot=checkbox-group]:gap-3 *:data-[slot=field-group]:gap-4",
1031
+ className
1032
+ ),
1033
+ ...props
1034
+ }
1035
+ );
1036
+ }
1037
+ var fieldVariants = cva(
1038
+ "group/field flex w-full gap-2 data-[invalid=true]:text-destructive",
1039
+ {
1040
+ variants: {
1041
+ orientation: {
1042
+ vertical: "flex-col *:w-full [&>.sr-only]:w-auto",
1043
+ horizontal: "flex-row items-center has-[>[data-slot=field-content]]:items-start *:data-[slot=field-label]:flex-auto has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px",
1044
+ responsive: "flex-col *:w-full @md/field-group:flex-row @md/field-group:items-center @md/field-group:*:w-auto @md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:*:data-[slot=field-label]:flex-auto [&>.sr-only]:w-auto @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px"
1045
+ }
1046
+ },
1047
+ defaultVariants: {
1048
+ orientation: "vertical"
1049
+ }
1050
+ }
1051
+ );
1052
+ function Field({
1053
+ className,
1054
+ orientation = "vertical",
1055
+ ...props
1056
+ }) {
1057
+ return /* @__PURE__ */ jsx(
1058
+ "div",
1059
+ {
1060
+ role: "group",
1061
+ "data-slot": "field",
1062
+ "data-orientation": orientation,
1063
+ className: cn(fieldVariants({ orientation }), className),
1064
+ ...props
1065
+ }
1066
+ );
1067
+ }
1068
+ function FieldContent({ className, ...props }) {
1069
+ return /* @__PURE__ */ jsx(
1070
+ "div",
1071
+ {
1072
+ "data-slot": "field-content",
1073
+ className: cn(
1074
+ "group/field-content flex flex-1 flex-col gap-0.5 leading-snug",
1075
+ className
1076
+ ),
1077
+ ...props
1078
+ }
1079
+ );
1080
+ }
1081
+ function FieldLabel({
1082
+ className,
1083
+ ...props
1084
+ }) {
1085
+ return /* @__PURE__ */ jsx(
1086
+ Label,
1087
+ {
1088
+ "data-slot": "field-label",
1089
+ className: cn(
1090
+ "group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50 has-data-checked:border-primary/30 has-data-checked:bg-primary/5 has-[>[data-slot=field]]:rounded-lg has-[>[data-slot=field]]:border has-[>[data-slot=field]]:not-has-[:disabled,[data-disabled]]:hover:bg-muted/50 has-[>[data-slot=field]]:has-[:focus-visible]:border-ring has-[>[data-slot=field]]:has-[:focus-visible]:ring-3 has-[>[data-slot=field]]:has-[:focus-visible]:ring-ring/50 *:data-[slot=field]:p-2.5 dark:has-data-checked:border-primary/20 dark:has-data-checked:bg-primary/10",
1091
+ "has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col",
1092
+ className
1093
+ ),
1094
+ ...props
1095
+ }
1096
+ );
1097
+ }
1098
+ function FieldTitle({ className, ...props }) {
1099
+ return /* @__PURE__ */ jsx(
1100
+ "div",
1101
+ {
1102
+ "data-slot": "field-label",
1103
+ className: cn(
1104
+ "flex w-fit items-center gap-2 text-sm font-medium group-data-[disabled=true]/field:opacity-50",
1105
+ className
1106
+ ),
216
1107
  ...props
217
1108
  }
218
1109
  );
219
1110
  }
220
- function BreadcrumbSeparator({
221
- children,
222
- className,
223
- ...props
224
- }) {
1111
+ function FieldDescription({ className, ...props }) {
225
1112
  return /* @__PURE__ */ jsx(
226
- "li",
1113
+ "p",
227
1114
  {
228
- "data-slot": "breadcrumb-separator",
229
- role: "presentation",
230
- "aria-hidden": "true",
231
- className: cn("[&>svg]:size-3.5", className),
232
- ...props,
233
- children: children ?? /* @__PURE__ */ jsx(ChevronRightIcon, { className: "cn-rtl-flip" })
1115
+ "data-slot": "field-description",
1116
+ className: cn(
1117
+ "text-left text-sm leading-normal font-normal text-muted-foreground group-has-data-horizontal/field:text-balance [[data-variant=legend]+&]:-mt-1.5",
1118
+ "last:mt-0 nth-last-2:-mt-1",
1119
+ "[&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary",
1120
+ className
1121
+ ),
1122
+ ...props
234
1123
  }
235
1124
  );
236
1125
  }
237
- function BreadcrumbEllipsis({
1126
+ function FieldSeparator({
1127
+ children,
238
1128
  className,
239
1129
  ...props
240
1130
  }) {
241
1131
  return /* @__PURE__ */ jsxs(
242
- "span",
1132
+ "div",
243
1133
  {
244
- "data-slot": "breadcrumb-ellipsis",
245
- role: "presentation",
246
- "aria-hidden": "true",
1134
+ "data-slot": "field-separator",
1135
+ "data-content": !!children,
247
1136
  className: cn(
248
- "flex size-5 items-center justify-center [&>svg]:size-4",
1137
+ "relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2",
249
1138
  className
250
1139
  ),
251
1140
  ...props,
252
1141
  children: [
253
- /* @__PURE__ */ jsx(MoreHorizontalIcon, {}),
254
- /* @__PURE__ */ jsx("span", { className: "sr-only", children: "More" })
1142
+ /* @__PURE__ */ jsx(Separator, { className: "absolute inset-0 top-1/2" }),
1143
+ children && /* @__PURE__ */ jsx(
1144
+ "span",
1145
+ {
1146
+ className: "relative mx-auto block w-fit bg-background px-2 text-muted-foreground",
1147
+ "data-slot": "field-separator-content",
1148
+ children
1149
+ }
1150
+ )
255
1151
  ]
256
1152
  }
257
1153
  );
258
1154
  }
259
- function Card({
1155
+ function FieldError({
260
1156
  className,
261
- size = "default",
1157
+ children,
1158
+ errors,
262
1159
  ...props
263
1160
  }) {
1161
+ const content = useMemo(() => {
1162
+ if (children) {
1163
+ return children;
1164
+ }
1165
+ if (!errors?.length) {
1166
+ return null;
1167
+ }
1168
+ const uniqueErrors = [
1169
+ ...new Map(errors.map((error) => [error?.message, error])).values()
1170
+ ];
1171
+ if (uniqueErrors?.length == 1) {
1172
+ return uniqueErrors[0]?.message;
1173
+ }
1174
+ return /* @__PURE__ */ jsx("ul", { className: "ml-4 flex list-disc flex-col gap-1", children: uniqueErrors.map(
1175
+ (error, index) => error?.message && /* @__PURE__ */ jsx("li", { children: error.message }, index)
1176
+ ) });
1177
+ }, [children, errors]);
1178
+ if (!content) {
1179
+ return null;
1180
+ }
264
1181
  return /* @__PURE__ */ jsx(
265
1182
  "div",
266
1183
  {
267
- "data-slot": "card",
268
- "data-size": size,
269
- className: cn(
270
- "group/card flex flex-col gap-(--card-spacing) overflow-hidden rounded-xl bg-card py-(--card-spacing) text-sm text-card-foreground ring-1 ring-foreground/10 [--card-spacing:--spacing(4)] has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=sm]:[--card-spacing:--spacing(3)] data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl",
271
- className
272
- ),
273
- ...props
1184
+ role: "alert",
1185
+ "data-slot": "field-error",
1186
+ className: cn("text-sm font-normal text-destructive", className),
1187
+ ...props,
1188
+ children: content
274
1189
  }
275
1190
  );
276
1191
  }
277
- function CardHeader({ className, ...props }) {
1192
+ function HoverCard({ ...props }) {
1193
+ return /* @__PURE__ */ jsx(PreviewCard.Root, { "data-slot": "hover-card", ...props });
1194
+ }
1195
+ function HoverCardTrigger({ ...props }) {
1196
+ return /* @__PURE__ */ jsx(PreviewCard.Trigger, { "data-slot": "hover-card-trigger", ...props });
1197
+ }
1198
+ function HoverCardContent({
1199
+ className,
1200
+ side = "bottom",
1201
+ sideOffset = 4,
1202
+ align = "center",
1203
+ alignOffset = 4,
1204
+ ...props
1205
+ }) {
1206
+ return /* @__PURE__ */ jsx(PreviewCard.Portal, { "data-slot": "hover-card-portal", children: /* @__PURE__ */ jsx(
1207
+ PreviewCard.Positioner,
1208
+ {
1209
+ align,
1210
+ alignOffset,
1211
+ side,
1212
+ sideOffset,
1213
+ className: "isolate z-50",
1214
+ children: /* @__PURE__ */ jsx(
1215
+ PreviewCard.Popup,
1216
+ {
1217
+ "data-slot": "hover-card-content",
1218
+ className: cn(
1219
+ "z-50 w-64 origin-(--transform-origin) rounded-lg bg-popover p-2.5 text-sm text-popover-foreground shadow-md ring-1 ring-foreground/10 outline-hidden duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in motion-reduce:animate-none! data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
1220
+ className
1221
+ ),
1222
+ ...props
1223
+ }
1224
+ )
1225
+ }
1226
+ ) });
1227
+ }
1228
+ function Kbd({ className, ...props }) {
278
1229
  return /* @__PURE__ */ jsx(
279
- "div",
1230
+ "kbd",
280
1231
  {
281
- "data-slot": "card-header",
1232
+ "data-slot": "kbd",
282
1233
  className: cn(
283
- "group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-(--card-spacing) has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-(--card-spacing)",
1234
+ "pointer-events-none inline-flex h-5 w-fit min-w-5 items-center justify-center gap-1 rounded-sm bg-muted px-1 font-sans text-xs font-medium text-muted-foreground select-none in-data-[slot=tooltip-content]:bg-background/20 in-data-[slot=tooltip-content]:text-background dark:in-data-[slot=tooltip-content]:bg-background/10 [&_svg:not([class*='size-'])]:size-3",
284
1235
  className
285
1236
  ),
286
1237
  ...props
287
1238
  }
288
1239
  );
289
1240
  }
290
- function CardTitle({ className, ...props }) {
1241
+ function KbdGroup({ className, ...props }) {
291
1242
  return /* @__PURE__ */ jsx(
292
- "div",
1243
+ "kbd",
293
1244
  {
294
- "data-slot": "card-title",
295
- className: cn(
296
- "cn-font-heading text-base leading-snug font-medium group-data-[size=sm]/card:text-sm",
297
- className
298
- ),
1245
+ "data-slot": "kbd-group",
1246
+ className: cn("inline-flex items-center gap-1", className),
299
1247
  ...props
300
1248
  }
301
1249
  );
302
1250
  }
303
- function CardDescription({ className, ...props }) {
1251
+ function Pagination({ className, ...props }) {
304
1252
  return /* @__PURE__ */ jsx(
305
- "div",
1253
+ "nav",
306
1254
  {
307
- "data-slot": "card-description",
308
- className: cn("text-sm text-muted-foreground", className),
1255
+ role: "navigation",
1256
+ "aria-label": "pagination",
1257
+ "data-slot": "pagination",
1258
+ className: cn("mx-auto flex w-full justify-center", className),
309
1259
  ...props
310
1260
  }
311
1261
  );
312
1262
  }
313
- function CardAction({ className, ...props }) {
1263
+ function PaginationContent({
1264
+ className,
1265
+ ...props
1266
+ }) {
314
1267
  return /* @__PURE__ */ jsx(
315
- "div",
1268
+ "ul",
316
1269
  {
317
- "data-slot": "card-action",
318
- className: cn(
319
- "col-start-2 row-span-2 row-start-1 self-start justify-self-end",
320
- className
321
- ),
1270
+ "data-slot": "pagination-content",
1271
+ className: cn("flex items-center gap-0.5", className),
322
1272
  ...props
323
1273
  }
324
1274
  );
325
1275
  }
326
- function CardContent({ className, ...props }) {
1276
+ function PaginationItem({ ...props }) {
1277
+ return /* @__PURE__ */ jsx("li", { "data-slot": "pagination-item", ...props });
1278
+ }
1279
+ function PaginationLink({
1280
+ className,
1281
+ isActive,
1282
+ size = "icon",
1283
+ ...props
1284
+ }) {
327
1285
  return /* @__PURE__ */ jsx(
328
- "div",
1286
+ Button,
329
1287
  {
330
- "data-slot": "card-content",
331
- className: cn("px-(--card-spacing)", className),
332
- ...props
1288
+ variant: isActive ? "outline" : "ghost",
1289
+ size,
1290
+ className: cn(className),
1291
+ nativeButton: false,
1292
+ render: /* @__PURE__ */ jsx(
1293
+ "a",
1294
+ {
1295
+ "aria-current": isActive ? "page" : void 0,
1296
+ "data-slot": "pagination-link",
1297
+ "data-active": isActive,
1298
+ ...props
1299
+ }
1300
+ )
333
1301
  }
334
1302
  );
335
1303
  }
336
- function CardFooter({ className, ...props }) {
337
- return /* @__PURE__ */ jsx(
338
- "div",
1304
+ function PaginationPrevious({
1305
+ className,
1306
+ text = "Previous",
1307
+ ...props
1308
+ }) {
1309
+ return /* @__PURE__ */ jsxs(
1310
+ PaginationLink,
339
1311
  {
340
- "data-slot": "card-footer",
341
- className: cn(
342
- "flex items-center rounded-b-xl border-t bg-muted/50 p-(--card-spacing)",
343
- className
344
- ),
345
- ...props
1312
+ "aria-label": "Go to previous page",
1313
+ size: "default",
1314
+ className: cn("pl-1.5!", className),
1315
+ ...props,
1316
+ children: [
1317
+ /* @__PURE__ */ jsx(
1318
+ ChevronLeftIcon,
1319
+ {
1320
+ "data-icon": "inline-start",
1321
+ className: "cn-rtl-flip"
1322
+ }
1323
+ ),
1324
+ /* @__PURE__ */ jsx("span", { className: "hidden sm:block", children: text })
1325
+ ]
346
1326
  }
347
1327
  );
348
1328
  }
349
- function Label({ className, ...props }) {
350
- return /* @__PURE__ */ jsx(
351
- "label",
1329
+ function PaginationNext({
1330
+ className,
1331
+ text = "Next",
1332
+ ...props
1333
+ }) {
1334
+ return /* @__PURE__ */ jsxs(
1335
+ PaginationLink,
352
1336
  {
353
- "data-slot": "label",
1337
+ "aria-label": "Go to next page",
1338
+ size: "default",
1339
+ className: cn("pr-1.5!", className),
1340
+ ...props,
1341
+ children: [
1342
+ /* @__PURE__ */ jsx("span", { className: "hidden sm:block", children: text }),
1343
+ /* @__PURE__ */ jsx(
1344
+ ChevronRightIcon,
1345
+ {
1346
+ "data-icon": "inline-end",
1347
+ className: "cn-rtl-flip"
1348
+ }
1349
+ )
1350
+ ]
1351
+ }
1352
+ );
1353
+ }
1354
+ function PaginationEllipsis({
1355
+ className,
1356
+ ...props
1357
+ }) {
1358
+ return /* @__PURE__ */ jsxs(
1359
+ "span",
1360
+ {
1361
+ "aria-hidden": true,
1362
+ "data-slot": "pagination-ellipsis",
354
1363
  className: cn(
355
- "flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",
1364
+ "flex size-8 items-center justify-center [&_svg:not([class*='size-'])]:size-4",
356
1365
  className
357
1366
  ),
358
- ...props
1367
+ ...props,
1368
+ children: [
1369
+ /* @__PURE__ */ jsx(
1370
+ MoreHorizontalIcon,
1371
+ {}
1372
+ ),
1373
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: "More pages" })
1374
+ ]
359
1375
  }
360
1376
  );
361
1377
  }
@@ -428,6 +1444,37 @@ function ProgressValue({ className, ...props }) {
428
1444
  }
429
1445
  );
430
1446
  }
1447
+ function RadioGroup({ className, ...props }) {
1448
+ return /* @__PURE__ */ jsx(
1449
+ RadioGroup$1,
1450
+ {
1451
+ "data-slot": "radio-group",
1452
+ className: cn("grid w-full gap-2", className),
1453
+ ...props
1454
+ }
1455
+ );
1456
+ }
1457
+ function RadioGroupItem({ className, ...props }) {
1458
+ return /* @__PURE__ */ jsx(
1459
+ Radio.Root,
1460
+ {
1461
+ "data-slot": "radio-group-item",
1462
+ className: cn(
1463
+ "group/radio-group-item peer relative flex aspect-square size-4 shrink-0 rounded-full border border-input outline-none group-has-[:focus-visible]/field-label:ring-0 group-has-[:focus-visible]/field-label:not-data-checked:border-input after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground group-has-[:focus-visible]/field-label:data-checked:border-primary dark:data-checked:bg-primary",
1464
+ className
1465
+ ),
1466
+ ...props,
1467
+ children: /* @__PURE__ */ jsx(
1468
+ Radio.Indicator,
1469
+ {
1470
+ "data-slot": "radio-group-indicator",
1471
+ className: "flex size-4 items-center justify-center",
1472
+ children: /* @__PURE__ */ jsx("span", { className: "absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2 rounded-full bg-primary-foreground" })
1473
+ }
1474
+ )
1475
+ }
1476
+ );
1477
+ }
431
1478
  function ScrollArea({
432
1479
  className,
433
1480
  children,
@@ -519,7 +1566,7 @@ function Slider({
519
1566
  Slider$1.Thumb,
520
1567
  {
521
1568
  "data-slot": "slider-thumb",
522
- className: "relative block size-3 shrink-0 rounded-full border border-ring bg-white ring-ring/50 transition-[color,box-shadow] select-none after:absolute after:-inset-2 hover:ring-3 focus-visible:ring-3 focus-visible:outline-hidden active:ring-3 disabled:pointer-events-none disabled:opacity-50"
1569
+ className: "relative block size-3 shrink-0 rounded-full border border-ring bg-background ring-ring/50 transition-[color,box-shadow] select-none after:absolute after:-inset-2 hover:ring-3 focus-visible:ring-3 focus-visible:outline-hidden active:ring-3 disabled:pointer-events-none disabled:opacity-50"
523
1570
  },
524
1571
  index
525
1572
  ))
@@ -608,7 +1655,7 @@ function TabsTrigger({ className, ...props }) {
608
1655
  {
609
1656
  "data-slot": "tabs-trigger",
610
1657
  className: cn(
611
- "relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-1.5 py-0.5 text-sm font-medium whitespace-nowrap text-foreground/60 transition-all group-data-vertical/tabs:w-full group-data-vertical/tabs:justify-start hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 has-data-[icon=inline-end]:pr-1 has-data-[icon=inline-start]:pl-1 aria-disabled:pointer-events-none aria-disabled:opacity-50 dark:text-muted-foreground dark:hover:text-foreground group-data-[variant=default]/tabs-list:data-active:shadow-sm group-data-[variant=line]/tabs-list:data-active:shadow-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
1658
+ "relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-1.5 py-0.5 text-sm font-medium whitespace-nowrap text-foreground/60 transition-[color,background-color,border-color,box-shadow] group-data-vertical/tabs:w-full group-data-vertical/tabs:justify-start hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 has-data-[icon=inline-end]:pr-1 has-data-[icon=inline-start]:pl-1 aria-disabled:pointer-events-none aria-disabled:opacity-50 dark:text-muted-foreground dark:hover:text-foreground group-data-[variant=default]/tabs-list:data-active:shadow-sm group-data-[variant=line]/tabs-list:data-active:shadow-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
612
1659
  "group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-active:bg-transparent dark:group-data-[variant=line]/tabs-list:data-active:border-transparent dark:group-data-[variant=line]/tabs-list:data-active:bg-transparent",
613
1660
  "data-active:bg-background data-active:text-foreground dark:data-active:border-input dark:data-active:bg-input/30 dark:data-active:text-foreground",
614
1661
  "after:absolute after:bg-foreground after:opacity-0 after:transition-opacity group-data-horizontal/tabs:after:inset-x-0 group-data-horizontal/tabs:after:bottom-[-5px] group-data-horizontal/tabs:after:h-0.5 group-data-vertical/tabs:after:inset-y-0 group-data-vertical/tabs:after:-right-1 group-data-vertical/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-active:after:opacity-100",
@@ -623,12 +1670,216 @@ function TabsContent({ className, ...props }) {
623
1670
  Tabs$1.Panel,
624
1671
  {
625
1672
  "data-slot": "tabs-content",
626
- className: cn("flex-1 text-sm outline-none", className),
1673
+ className: cn("flex-1 text-sm outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50", className),
1674
+ ...props
1675
+ }
1676
+ );
1677
+ }
1678
+ var toast = Toast$1.createToastManager();
1679
+ function ToastProvider({ ...props }) {
1680
+ return /* @__PURE__ */ jsx(Toast$1.Provider, { ...props });
1681
+ }
1682
+ function ToastPortal({ ...props }) {
1683
+ return /* @__PURE__ */ jsx(Toast$1.Portal, { "data-slot": "toast-portal", ...props });
1684
+ }
1685
+ function ToastViewport({ className, ...props }) {
1686
+ return /* @__PURE__ */ jsx(
1687
+ Toast$1.Viewport,
1688
+ {
1689
+ "data-slot": "toast-viewport",
1690
+ className: cn(
1691
+ "pointer-events-none fixed inset-x-4 bottom-4 z-50 mx-auto w-auto max-w-sm outline-none sm:right-4 sm:left-auto sm:mx-0 sm:w-full",
1692
+ className
1693
+ ),
1694
+ ...props
1695
+ }
1696
+ );
1697
+ }
1698
+ function Toast({ className, ...props }) {
1699
+ return /* @__PURE__ */ jsx(
1700
+ Toast$1.Root,
1701
+ {
1702
+ "data-slot": "toast",
1703
+ className: cn(
1704
+ "group/toast pointer-events-auto absolute right-0 bottom-0 z-[calc(1000-var(--toast-index))] w-full origin-bottom rounded-2xl border bg-popover text-popover-foreground shadow-lg will-change-transform outline-none select-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50",
1705
+ "[--gap:0.75rem] [--height:var(--toast-frontmost-height,var(--toast-height))] [--offset-y:calc(var(--toast-offset-y)*-1+calc(var(--toast-index)*var(--gap)*-1)+var(--toast-swipe-movement-y))] [--peek:0.75rem] [--scale:calc(max(0,1-(var(--toast-index)*0.1)))] [--shrink:calc(1-var(--scale))]",
1706
+ "h-(--height) [transform:translateX(var(--toast-swipe-movement-x))_translateY(calc(var(--toast-swipe-movement-y)-(var(--toast-index)*var(--peek))-(var(--shrink)*var(--height))))_scale(var(--scale))] [transition:transform_400ms_cubic-bezier(0.22,1,0.36,1),opacity_400ms,height_150ms] data-ending-style:[transition-duration:200ms] motion-reduce:[transition:opacity_150ms]",
1707
+ "after:absolute after:top-full after:left-0 after:h-[calc(var(--gap)+1px)] after:w-full after:content-['']",
1708
+ "data-expanded:h-(--toast-height) data-expanded:[transform:translateX(var(--toast-swipe-movement-x))_translateY(var(--offset-y))]",
1709
+ "data-limited:opacity-0 data-starting-style:[transform:translateY(150%)]",
1710
+ "[&[data-ending-style]:not([data-limited]):not([data-swipe-direction])]:[transform:translateY(150%)]",
1711
+ "data-ending-style:data-[swipe-direction=down]:[transform:translateY(calc(var(--toast-swipe-movement-y)+150%))]",
1712
+ "data-ending-style:data-[swipe-direction=left]:[transform:translateX(calc(var(--toast-swipe-movement-x)-150%))_translateY(var(--offset-y))]",
1713
+ "data-ending-style:data-[swipe-direction=right]:[transform:translateX(calc(var(--toast-swipe-movement-x)+150%))_translateY(var(--offset-y))]",
1714
+ "data-ending-style:data-[swipe-direction=up]:[transform:translateY(calc(var(--toast-swipe-movement-y)-150%))]",
1715
+ "data-expanded:data-ending-style:data-[swipe-direction=down]:[transform:translateY(calc(var(--toast-swipe-movement-y)+150%))]",
1716
+ "data-expanded:data-ending-style:data-[swipe-direction=left]:[transform:translateX(calc(var(--toast-swipe-movement-x)-150%))_translateY(var(--offset-y))]",
1717
+ "data-expanded:data-ending-style:data-[swipe-direction=right]:[transform:translateX(calc(var(--toast-swipe-movement-x)+150%))_translateY(var(--offset-y))]",
1718
+ "data-expanded:data-ending-style:data-[swipe-direction=up]:[transform:translateY(calc(var(--toast-swipe-movement-y)-150%))]",
1719
+ className
1720
+ ),
1721
+ ...props
1722
+ }
1723
+ );
1724
+ }
1725
+ function ToastContent({ className, ...props }) {
1726
+ return /* @__PURE__ */ jsx(
1727
+ Toast$1.Content,
1728
+ {
1729
+ "data-slot": "toast-content",
1730
+ className: cn(
1731
+ "flex h-full items-center gap-3 overflow-hidden p-4 transition-opacity duration-250 ease-[cubic-bezier(0.22,1,0.36,1)] data-behind:opacity-0 data-expanded:opacity-100",
1732
+ className
1733
+ ),
1734
+ ...props
1735
+ }
1736
+ );
1737
+ }
1738
+ function ToastTitle({ className, ...props }) {
1739
+ return /* @__PURE__ */ jsx(
1740
+ Toast$1.Title,
1741
+ {
1742
+ "data-slot": "toast-title",
1743
+ className: cn("text-sm font-medium", className),
1744
+ ...props
1745
+ }
1746
+ );
1747
+ }
1748
+ function ToastDescription({
1749
+ className,
1750
+ ...props
1751
+ }) {
1752
+ return /* @__PURE__ */ jsx(
1753
+ Toast$1.Description,
1754
+ {
1755
+ "data-slot": "toast-description",
1756
+ className: cn("text-sm text-muted-foreground", className),
1757
+ ...props
1758
+ }
1759
+ );
1760
+ }
1761
+ function ToastAction({
1762
+ className,
1763
+ render = /* @__PURE__ */ jsx(Button, { variant: "outline", size: "sm" }),
1764
+ ...props
1765
+ }) {
1766
+ return /* @__PURE__ */ jsx(
1767
+ Toast$1.Action,
1768
+ {
1769
+ "data-slot": "toast-action",
1770
+ render,
1771
+ className: cn("shrink-0", className),
627
1772
  ...props
628
1773
  }
629
1774
  );
630
1775
  }
1776
+ function ToastClose({
1777
+ className,
1778
+ children,
1779
+ render = /* @__PURE__ */ jsx(Button, { variant: "ghost", size: "icon-sm" }),
1780
+ ...props
1781
+ }) {
1782
+ return /* @__PURE__ */ jsx(
1783
+ Toast$1.Close,
1784
+ {
1785
+ "data-slot": "toast-close",
1786
+ "aria-label": "Close toast",
1787
+ render,
1788
+ className: cn(
1789
+ "relative shrink-0 text-muted-foreground after:absolute after:-inset-2 after:content-[''] hover:text-foreground",
1790
+ className
1791
+ ),
1792
+ ...props,
1793
+ children: children ?? /* @__PURE__ */ jsx(
1794
+ XIcon,
1795
+ {
1796
+ "aria-hidden": "true"
1797
+ }
1798
+ )
1799
+ }
1800
+ );
1801
+ }
1802
+ function ToastIcon({ type }) {
1803
+ let icon = null;
1804
+ if (type === "success") {
1805
+ icon = /* @__PURE__ */ jsx(
1806
+ CircleCheckIcon,
1807
+ {
1808
+ "aria-hidden": "true"
1809
+ }
1810
+ );
1811
+ }
1812
+ if (type === "info") {
1813
+ icon = /* @__PURE__ */ jsx(
1814
+ InfoIcon,
1815
+ {
1816
+ "aria-hidden": "true"
1817
+ }
1818
+ );
1819
+ }
1820
+ if (type === "warning") {
1821
+ icon = /* @__PURE__ */ jsx(
1822
+ TriangleAlertIcon,
1823
+ {
1824
+ "aria-hidden": "true"
1825
+ }
1826
+ );
1827
+ }
1828
+ if (type === "error") {
1829
+ icon = /* @__PURE__ */ jsx(
1830
+ OctagonXIcon,
1831
+ {
1832
+ className: "text-destructive",
1833
+ "aria-hidden": "true"
1834
+ }
1835
+ );
1836
+ }
1837
+ if (type === "loading") {
1838
+ icon = /* @__PURE__ */ jsx(
1839
+ Loader2Icon,
1840
+ {
1841
+ className: "animate-spin",
1842
+ "aria-hidden": "true"
1843
+ }
1844
+ );
1845
+ }
1846
+ if (!icon) {
1847
+ return null;
1848
+ }
1849
+ return /* @__PURE__ */ jsx(
1850
+ "span",
1851
+ {
1852
+ "data-slot": "toast-icon",
1853
+ className: "shrink-0 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4",
1854
+ children: icon
1855
+ }
1856
+ );
1857
+ }
1858
+ function ToastList() {
1859
+ const { toasts } = Toast$1.useToastManager();
1860
+ return toasts.map((toastItem) => /* @__PURE__ */ jsx(Toast, { toast: toastItem, children: /* @__PURE__ */ jsxs(ToastContent, { children: [
1861
+ /* @__PURE__ */ jsx(ToastIcon, { type: toastItem.type }),
1862
+ /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-1 flex-col gap-1", children: [
1863
+ /* @__PURE__ */ jsx(ToastTitle, {}),
1864
+ /* @__PURE__ */ jsx(ToastDescription, {})
1865
+ ] }),
1866
+ /* @__PURE__ */ jsx(ToastAction, {}),
1867
+ /* @__PURE__ */ jsx(ToastClose, {})
1868
+ ] }) }, toastItem.id));
1869
+ }
1870
+ function Toaster({
1871
+ children,
1872
+ toastManager = toast,
1873
+ ...props
1874
+ }) {
1875
+ return /* @__PURE__ */ jsxs(ToastProvider, { toastManager, ...props, children: [
1876
+ children,
1877
+ /* @__PURE__ */ jsx(ToastPortal, { children: /* @__PURE__ */ jsx(ToastViewport, { children: /* @__PURE__ */ jsx(ToastList, {}) }) })
1878
+ ] });
1879
+ }
1880
+ var createToastManager = Toast$1.createToastManager;
1881
+ var useToastManager = Toast$1.useToastManager;
631
1882
 
632
- export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertAction, AlertDescription, AlertTitle, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Label, Progress, ProgressIndicator, ProgressLabel, ProgressTrack, ProgressValue, ScrollArea, ScrollBar, Slider, Spinner, Switch, Tabs, TabsContent, TabsList, TabsTrigger, tabsListVariants };
1883
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertAction, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxCollection, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxLabel, ComboboxList, ComboboxSeparator, ComboboxTrigger, ComboboxValue, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerSwipeHandle, DrawerTitle, DrawerTrigger, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, HoverCard, HoverCardContent, HoverCardTrigger, Kbd, KbdGroup, Label, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Progress, ProgressIndicator, ProgressLabel, ProgressTrack, ProgressValue, RadioGroup, RadioGroupItem, ScrollArea, ScrollBar, Slider, Spinner, Switch, Tabs, TabsContent, TabsList, TabsTrigger, Toast, ToastAction, ToastClose, ToastContent, ToastDescription, ToastPortal, ToastProvider, ToastTitle, ToastViewport, Toaster, createToastManager, tabsListVariants, toast, useComboboxAnchor, useToastManager };
633
1884
  //# sourceMappingURL=index.js.map
634
1885
  //# sourceMappingURL=index.js.map