@squadbase/vantage 0.6.1 → 0.6.2-dev1.1c9e8bc

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