@tradalab/lyra 3.4.0 → 3.6.0

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 (51) hide show
  1. package/dist/blocks/index.d.ts +22 -71
  2. package/dist/blocks/index.js +18 -179
  3. package/dist/blocks/index.js.map +1 -1
  4. package/dist/chunk-7MZ73OVI.js +3776 -0
  5. package/dist/chunk-7MZ73OVI.js.map +1 -0
  6. package/dist/chunk-AIULLZYM.js +21 -0
  7. package/dist/chunk-AIULLZYM.js.map +1 -0
  8. package/dist/{chunk-FHM6VOPQ.js → chunk-AM6UJ666.js} +105 -3
  9. package/dist/chunk-AM6UJ666.js.map +1 -0
  10. package/dist/chunk-D7DMRCDY.js +115 -0
  11. package/dist/chunk-D7DMRCDY.js.map +1 -0
  12. package/dist/{chunk-VDO6PQ5L.js → chunk-L4LQCVOF.js} +144 -8
  13. package/dist/chunk-L4LQCVOF.js.map +1 -0
  14. package/dist/{chunk-BTZYRWFX.js → chunk-RNKXFELK.js} +223 -17
  15. package/dist/chunk-RNKXFELK.js.map +1 -0
  16. package/dist/{chunk-2HDU26FC.js → chunk-VXW3K5O5.js} +99 -3
  17. package/dist/chunk-VXW3K5O5.js.map +1 -0
  18. package/dist/data-table/index.js +1 -2
  19. package/dist/data-table/index.js.map +1 -1
  20. package/dist/hooks/index.d.ts +3 -0
  21. package/dist/hooks/index.js +2 -1
  22. package/dist/people/index.js +2 -4
  23. package/dist/people/index.js.map +1 -1
  24. package/dist/plate-BJ19iaVV.d.ts +38 -0
  25. package/dist/plate-picker-CXxUGyNz.d.ts +20 -0
  26. package/dist/preference-script-Dm-LEoYX.d.ts +5 -0
  27. package/dist/shell/index.d.ts +19 -5
  28. package/dist/shell/index.js +39 -13
  29. package/dist/shell/index.js.map +1 -1
  30. package/dist/ui/index.d.ts +5 -2
  31. package/dist/ui/index.js +7 -3176
  32. package/dist/ui/index.js.map +1 -1
  33. package/dist/use-compact-BvI4sJf9.d.ts +15 -0
  34. package/package.json +1 -1
  35. package/dist/chunk-2HDU26FC.js.map +0 -1
  36. package/dist/chunk-BTZYRWFX.js.map +0 -1
  37. package/dist/chunk-CV3UXQBT.js +0 -110
  38. package/dist/chunk-CV3UXQBT.js.map +0 -1
  39. package/dist/chunk-EJP7F42V.js +0 -679
  40. package/dist/chunk-EJP7F42V.js.map +0 -1
  41. package/dist/chunk-F2ET7EL2.js +0 -104
  42. package/dist/chunk-F2ET7EL2.js.map +0 -1
  43. package/dist/chunk-FHM6VOPQ.js.map +0 -1
  44. package/dist/chunk-QYA2HGKW.js +0 -20
  45. package/dist/chunk-QYA2HGKW.js.map +0 -1
  46. package/dist/chunk-VDO6PQ5L.js.map +0 -1
  47. package/dist/chunk-XJJQAQWJ.js +0 -119
  48. package/dist/chunk-XJJQAQWJ.js.map +0 -1
  49. package/dist/chunk-XWGYXLIA.js +0 -147
  50. package/dist/chunk-XWGYXLIA.js.map +0 -1
  51. package/dist/{breadcrumb-CgEcSonR.d.ts → account-menu-D9M_kEzN.d.ts} +12 -12
package/dist/ui/index.js CHANGED
@@ -1,3181 +1,12 @@
1
1
  "use client";
2
- import { Spinner, Badge } from '../chunk-EJP7F42V.js';
3
- export { Alert, AlertAction, AlertDescription, AlertTitle, Badge, Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxCollection, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxLabel, ComboboxList, ComboboxSeparator, ComboboxTrigger, ComboboxValue, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, Label, Progress, RadioGroup, RadioGroupItem, Spinner, Switch, badgeVariants, useComboboxAnchor } from '../chunk-EJP7F42V.js';
4
- export { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow } from '../chunk-CV3UXQBT.js';
5
- export { NativeSelect, NativeSelectOptGroup, NativeSelectOption } from '../chunk-FHM6VOPQ.js';
6
- export { AccountMenu, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, ScrollArea, ScrollBar, 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, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, defaultAccountMenuLabels, initialsOf, useSidebar } from '../chunk-BTZYRWFX.js';
7
- import '../chunk-QYA2HGKW.js';
8
- import { Separator } from '../chunk-XJJQAQWJ.js';
9
- export { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Separator } from '../chunk-XJJQAQWJ.js';
2
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActionButton, Alert, AlertAction, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AspectRatio, Attachment, AttachmentAction, AttachmentActions, AttachmentContent, AttachmentDescription, AttachmentGroup, AttachmentMedia, AttachmentTitle, AttachmentTrigger, Badge, Bubble, BubbleContent, BubbleGroup, BubbleReactions, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, Calendar, CalendarDayButton, Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxCollection, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxLabel, ComboboxList, ComboboxSeparator, ComboboxTrigger, ComboboxValue, Container, DirectionProvider, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyState, EmptyTitle, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, HoverCard, HoverCardContent, HoverCardTrigger, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Kbd, KbdGroup, Label, Marker, MarkerContent, MarkerIcon, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, Message, MessageAvatar, MessageContent, MessageFooter, MessageGroup, MessageHeader, MessageScroller, MessageScrollerButton, MessageScrollerContent, MessageScrollerItem, MessageScrollerProvider, MessageScrollerViewport, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PreferenceScript, Progress, ResizableHandle, ResizablePanel, ResizablePanelGroup, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Slider, Spinner, StatusBadge, Tabs, TabsContent, TabsList, TabsTrigger, Toast, ToastAction, ToastClose, ToastContent, ToastDescription, ToastPortal, ToastProvider, ToastTitle, ToastViewport, Toaster, Toggle, ToggleGroup, ToggleGroupItem, badgeVariants, buttonGroupVariants, createToastManager, markerVariants, navigationMenuTriggerStyle, tabsListVariants, toast, toggleVariants, useCarousel, useComboboxAnchor, useDirection, useMessageScroller, useMessageScrollerScrollable, useMessageScrollerVisibility, useToastManager } from '../chunk-7MZ73OVI.js';
3
+ export { NativeSelect, NativeSelectOptGroup, NativeSelectOption, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow } from '../chunk-AM6UJ666.js';
4
+ export { AccountMenu, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, PlatePicker, RadioGroup, RadioGroupItem, ScrollArea, ScrollBar, 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, Switch, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, defaultAccountMenuLabels, initialsOf, useSidebar } from '../chunk-RNKXFELK.js';
5
+ import '../chunk-D7DMRCDY.js';
10
6
  export { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger } from '../chunk-VEWKPOMS.js';
11
- export { Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, Popover, PopoverAnchor, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger } from '../chunk-VDO6PQ5L.js';
12
- export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger } from '../chunk-XWGYXLIA.js';
13
- export { Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage } from '../chunk-F2ET7EL2.js';
14
- export { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, Textarea } from '../chunk-2HDU26FC.js';
15
- import { Button, buttonVariants } from '../chunk-VGOGWZCF.js';
7
+ export { Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Popover, PopoverAnchor, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger } from '../chunk-L4LQCVOF.js';
8
+ export { Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, Textarea } from '../chunk-VXW3K5O5.js';
16
9
  export { Button, Input, buttonVariants } from '../chunk-VGOGWZCF.js';
17
- import { cn } from '../chunk-XH55BHUU.js';
18
- import * as React6 from 'react';
19
- import { Direction, Accordion as Accordion$1, AlertDialog as AlertDialog$1, AspectRatio as AspectRatio$1, Slot, Checkbox as Checkbox$1, Collapsible as Collapsible$1, HoverCard as HoverCard$1, Menubar as Menubar$1, NavigationMenu as NavigationMenu$1, Select as Select$1, Slider as Slider$1, Tabs as Tabs$1, Toggle as Toggle$1, ToggleGroup as ToggleGroup$1 } from 'radix-ui';
20
- import { ChevronDownIcon, ChevronUpIcon, ChevronLeftIcon, ChevronRightIcon, CheckIcon, MinusIcon, ArrowDownIcon, MoreHorizontalIcon, XIcon, CircleCheckIcon, InfoIcon, TriangleAlertIcon, OctagonXIcon, Loader2Icon } from 'lucide-react';
21
- import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
22
- import { cva } from 'class-variance-authority';
23
- import { getDefaultClassNames, DayPicker } from 'react-day-picker';
24
- import useEmblaCarousel from 'embla-carousel-react';
25
- import * as RechartsPrimitive from 'recharts';
26
- import { Drawer as Drawer$1 } from 'vaul';
27
- import { OTPInput, OTPInputContext } from 'input-otp';
28
- import { MessageScroller as MessageScroller$1 } from '@shadcn/react/message-scroller';
29
- export { useMessageScroller, useMessageScrollerScrollable, useMessageScrollerVisibility } from '@shadcn/react/message-scroller';
30
- import * as ResizablePrimitive from 'react-resizable-panels';
31
- import { Toast as Toast$1 } from '@base-ui/react/toast';
32
-
33
- function Accordion({
34
- className,
35
- ...props
36
- }) {
37
- return /* @__PURE__ */ jsx(
38
- Accordion$1.Root,
39
- {
40
- "data-slot": "accordion",
41
- className: cn("flex w-full flex-col", className),
42
- ...props
43
- }
44
- );
45
- }
46
- function AccordionItem({
47
- className,
48
- ...props
49
- }) {
50
- return /* @__PURE__ */ jsx(
51
- Accordion$1.Item,
52
- {
53
- "data-slot": "accordion-item",
54
- className: cn("not-last:border-b", className),
55
- ...props
56
- }
57
- );
58
- }
59
- function AccordionTrigger({
60
- className,
61
- children,
62
- ...props
63
- }) {
64
- return /* @__PURE__ */ jsx(Accordion$1.Header, { className: "flex", children: /* @__PURE__ */ jsxs(
65
- Accordion$1.Trigger,
66
- {
67
- "data-slot": "accordion-trigger",
68
- className: cn(
69
- "group/accordion-trigger relative flex flex-1 items-start justify-between rounded-none border border-transparent py-2.5 text-left text-xs font-medium transition-all outline-none hover:underline focus-visible:border-ring focus-visible:ring-1 focus-visible:ring-ring/50 focus-visible:after:border-ring disabled:pointer-events-none disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground",
70
- className
71
- ),
72
- ...props,
73
- children: [
74
- children,
75
- /* @__PURE__ */ jsx(ChevronDownIcon, { "data-slot": "accordion-trigger-icon", className: "pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden" }),
76
- /* @__PURE__ */ jsx(ChevronUpIcon, { "data-slot": "accordion-trigger-icon", className: "pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline" })
77
- ]
78
- }
79
- ) });
80
- }
81
- function AccordionContent({
82
- className,
83
- children,
84
- ...props
85
- }) {
86
- return /* @__PURE__ */ jsx(
87
- Accordion$1.Content,
88
- {
89
- "data-slot": "accordion-content",
90
- className: "overflow-hidden text-xs data-open:animate-accordion-down data-closed:animate-accordion-up",
91
- ...props,
92
- children: /* @__PURE__ */ jsx(
93
- "div",
94
- {
95
- className: cn(
96
- "h-(--radix-accordion-content-height) pt-0 pb-2.5 [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4",
97
- className
98
- ),
99
- children
100
- }
101
- )
102
- }
103
- );
104
- }
105
- function AlertDialog({
106
- ...props
107
- }) {
108
- return /* @__PURE__ */ jsx(AlertDialog$1.Root, { "data-slot": "alert-dialog", ...props });
109
- }
110
- function AlertDialogTrigger({
111
- ...props
112
- }) {
113
- return /* @__PURE__ */ jsx(AlertDialog$1.Trigger, { "data-slot": "alert-dialog-trigger", ...props });
114
- }
115
- function AlertDialogPortal({
116
- ...props
117
- }) {
118
- return /* @__PURE__ */ jsx(AlertDialog$1.Portal, { "data-slot": "alert-dialog-portal", ...props });
119
- }
120
- function AlertDialogOverlay({
121
- className,
122
- ...props
123
- }) {
124
- return /* @__PURE__ */ jsx(
125
- AlertDialog$1.Overlay,
126
- {
127
- "data-slot": "alert-dialog-overlay",
128
- className: cn(
129
- "fixed inset-0 z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",
130
- className
131
- ),
132
- ...props
133
- }
134
- );
135
- }
136
- function AlertDialogContent({
137
- className,
138
- size = "default",
139
- ...props
140
- }) {
141
- return /* @__PURE__ */ jsxs(AlertDialogPortal, { children: [
142
- /* @__PURE__ */ jsx(AlertDialogOverlay, {}),
143
- /* @__PURE__ */ jsx(
144
- AlertDialog$1.Content,
145
- {
146
- "data-slot": "alert-dialog-content",
147
- "data-size": size,
148
- className: cn(
149
- "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-none 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 data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
150
- className
151
- ),
152
- ...props
153
- }
154
- )
155
- ] });
156
- }
157
- function AlertDialogHeader({
158
- className,
159
- ...props
160
- }) {
161
- return /* @__PURE__ */ jsx(
162
- "div",
163
- {
164
- "data-slot": "alert-dialog-header",
165
- className: cn(
166
- "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]",
167
- className
168
- ),
169
- ...props
170
- }
171
- );
172
- }
173
- function AlertDialogFooter({
174
- className,
175
- ...props
176
- }) {
177
- return /* @__PURE__ */ jsx(
178
- "div",
179
- {
180
- "data-slot": "alert-dialog-footer",
181
- className: cn(
182
- "flex flex-col-reverse gap-2 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end",
183
- className
184
- ),
185
- ...props
186
- }
187
- );
188
- }
189
- function AlertDialogMedia({
190
- className,
191
- ...props
192
- }) {
193
- return /* @__PURE__ */ jsx(
194
- "div",
195
- {
196
- "data-slot": "alert-dialog-media",
197
- className: cn(
198
- "mb-2 inline-flex size-10 items-center justify-center rounded-none bg-muted sm:group-data-[size=default]/alert-dialog-content:row-span-2 *:[svg:not([class*='size-'])]:size-6",
199
- className
200
- ),
201
- ...props
202
- }
203
- );
204
- }
205
- function AlertDialogTitle({
206
- className,
207
- ...props
208
- }) {
209
- return /* @__PURE__ */ jsx(
210
- AlertDialog$1.Title,
211
- {
212
- "data-slot": "alert-dialog-title",
213
- className: cn(
214
- "font-heading text-sm font-medium sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2",
215
- className
216
- ),
217
- ...props
218
- }
219
- );
220
- }
221
- function AlertDialogDescription({
222
- className,
223
- ...props
224
- }) {
225
- return /* @__PURE__ */ jsx(
226
- AlertDialog$1.Description,
227
- {
228
- "data-slot": "alert-dialog-description",
229
- className: cn(
230
- "text-xs/relaxed text-balance text-muted-foreground md:text-pretty *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground",
231
- className
232
- ),
233
- ...props
234
- }
235
- );
236
- }
237
- function AlertDialogAction({
238
- className,
239
- variant = "default",
240
- size = "default",
241
- ...props
242
- }) {
243
- return /* @__PURE__ */ jsx(Button, { variant, size, asChild: true, children: /* @__PURE__ */ jsx(
244
- AlertDialog$1.Action,
245
- {
246
- "data-slot": "alert-dialog-action",
247
- className: cn(className),
248
- ...props
249
- }
250
- ) });
251
- }
252
- function AlertDialogCancel({
253
- className,
254
- variant = "outline",
255
- size = "default",
256
- ...props
257
- }) {
258
- return /* @__PURE__ */ jsx(Button, { variant, size, asChild: true, children: /* @__PURE__ */ jsx(
259
- AlertDialog$1.Cancel,
260
- {
261
- "data-slot": "alert-dialog-cancel",
262
- className: cn(className),
263
- ...props
264
- }
265
- ) });
266
- }
267
- function AspectRatio({
268
- ...props
269
- }) {
270
- return /* @__PURE__ */ jsx(AspectRatio$1.Root, { "data-slot": "aspect-ratio", ...props });
271
- }
272
- var attachmentVariants = cva(
273
- "group/attachment relative flex w-fit max-w-full min-w-0 shrink-0 flex-wrap rounded-none border bg-card text-card-foreground transition-colors focus-within:ring-1 focus-within:ring-ring/50 has-[>a,>button]:hover:bg-muted/50 data-[state=error]:border-destructive/30 data-[state=idle]:border-dashed",
274
- {
275
- variants: {
276
- size: {
277
- default: "gap-2 text-xs has-data-[slot=attachment-content]:px-2 has-data-[slot=attachment-content]:py-1.5 has-data-[slot=attachment-media]:p-1.5",
278
- sm: "gap-2.5 text-xs has-data-[slot=attachment-content]:px-1.5 has-data-[slot=attachment-content]:py-1 has-data-[slot=attachment-media]:p-1",
279
- xs: "gap-1.5 rounded-none text-xs has-data-[slot=attachment-content]:px-1.5 has-data-[slot=attachment-content]:py-1 has-data-[slot=attachment-media]:p-1"
280
- },
281
- orientation: {
282
- horizontal: "min-w-40 items-center",
283
- vertical: "w-24 flex-col has-data-[slot=attachment-content]:w-30"
284
- }
285
- }
286
- }
287
- );
288
- function Attachment({
289
- className,
290
- state = "done",
291
- size = "default",
292
- orientation = "horizontal",
293
- ...props
294
- }) {
295
- return /* @__PURE__ */ jsx(
296
- "div",
297
- {
298
- "data-slot": "attachment",
299
- "data-state": state,
300
- "data-size": size,
301
- "data-orientation": orientation,
302
- className: cn(attachmentVariants({ size, orientation }), className),
303
- ...props
304
- }
305
- );
306
- }
307
- var attachmentMediaVariants = cva(
308
- "relative flex aspect-square w-10 shrink-0 items-center justify-center overflow-hidden rounded-none bg-muted text-foreground group-data-[orientation=vertical]/attachment:w-full group-data-[size=sm]/attachment:w-8 group-data-[size=xs]/attachment:w-7 group-data-[size=xs]/attachment:rounded-none group-data-[state=error]/attachment:bg-destructive/10 group-data-[state=error]/attachment:text-destructive group-data-[orientation=vertical]/attachment:*:data-[slot=spinner]:size-6! [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 group-data-[orientation=vertical]/attachment:[&_svg:not([class*='size-'])]:size-6 group-data-[size=xs]/attachment:[&_svg:not([class*='size-'])]:size-3.5",
309
- {
310
- variants: {
311
- variant: {
312
- icon: "",
313
- image: "opacity-60 group-data-[state=done]/attachment:opacity-100 group-data-[state=idle]/attachment:opacity-100 *:[img]:aspect-square *:[img]:w-full *:[img]:object-cover"
314
- }
315
- },
316
- defaultVariants: {
317
- variant: "icon"
318
- }
319
- }
320
- );
321
- function AttachmentMedia({
322
- className,
323
- variant = "icon",
324
- ...props
325
- }) {
326
- return /* @__PURE__ */ jsx(
327
- "div",
328
- {
329
- "data-slot": "attachment-media",
330
- "data-variant": variant,
331
- className: cn(attachmentMediaVariants({ variant }), className),
332
- ...props
333
- }
334
- );
335
- }
336
- function AttachmentContent({
337
- className,
338
- ...props
339
- }) {
340
- return /* @__PURE__ */ jsx(
341
- "div",
342
- {
343
- "data-slot": "attachment-content",
344
- className: cn(
345
- "max-w-full min-w-0 flex-1 leading-tight group-data-[orientation=vertical]/attachment:px-1",
346
- className
347
- ),
348
- ...props
349
- }
350
- );
351
- }
352
- function AttachmentTitle({
353
- className,
354
- ...props
355
- }) {
356
- return /* @__PURE__ */ jsx(
357
- "span",
358
- {
359
- "data-slot": "attachment-title",
360
- className: cn(
361
- "block max-w-full min-w-0 truncate font-medium group-data-[state=processing]/attachment:shimmer group-data-[state=uploading]/attachment:shimmer",
362
- className
363
- ),
364
- ...props
365
- }
366
- );
367
- }
368
- function AttachmentDescription({
369
- className,
370
- ...props
371
- }) {
372
- return /* @__PURE__ */ jsx(
373
- "span",
374
- {
375
- "data-slot": "attachment-description",
376
- className: cn(
377
- "mt-0.5 block min-w-0 truncate text-xs text-muted-foreground group-data-[state=error]/attachment:text-destructive/80",
378
- "max-w-full",
379
- className
380
- ),
381
- ...props
382
- }
383
- );
384
- }
385
- function AttachmentActions({
386
- className,
387
- ...props
388
- }) {
389
- return /* @__PURE__ */ jsx(
390
- "div",
391
- {
392
- "data-slot": "attachment-actions",
393
- className: cn(
394
- "relative z-20 flex shrink-0 items-center group-data-[orientation=vertical]/attachment:absolute group-data-[orientation=vertical]/attachment:top-3 group-data-[orientation=vertical]/attachment:right-3 group-data-[orientation=vertical]/attachment:gap-1",
395
- className
396
- ),
397
- ...props
398
- }
399
- );
400
- }
401
- function AttachmentAction({
402
- className,
403
- variant,
404
- size = "icon-xs",
405
- ...props
406
- }) {
407
- return /* @__PURE__ */ jsx(
408
- Button,
409
- {
410
- "data-slot": "attachment-action",
411
- variant: variant ?? "ghost",
412
- size,
413
- className: cn(className),
414
- ...props
415
- }
416
- );
417
- }
418
- function AttachmentTrigger({
419
- className,
420
- asChild = false,
421
- type,
422
- ...props
423
- }) {
424
- const Comp = asChild ? Slot.Root : "button";
425
- return /* @__PURE__ */ jsx(
426
- Comp,
427
- {
428
- "data-slot": "attachment-trigger",
429
- type: asChild ? void 0 : type ?? "button",
430
- className: cn("absolute inset-0 z-10 outline-none", className),
431
- ...props
432
- }
433
- );
434
- }
435
- function AttachmentGroup({ className, ...props }) {
436
- return /* @__PURE__ */ jsx(
437
- "div",
438
- {
439
- "data-slot": "attachment-group",
440
- className: cn(
441
- "flex min-w-0 scroll-fade-x snap-x snap-mandatory scroll-px-1 scrollbar-none gap-3 overflow-x-auto overscroll-x-contain py-1 *:data-[slot=attachment]:flex-none *:data-[slot=attachment]:snap-start",
442
- className
443
- ),
444
- ...props
445
- }
446
- );
447
- }
448
- function BubbleGroup({ className, ...props }) {
449
- return /* @__PURE__ */ jsx(
450
- "div",
451
- {
452
- "data-slot": "bubble-group",
453
- className: cn("flex min-w-0 flex-col gap-2", className),
454
- ...props
455
- }
456
- );
457
- }
458
- var bubbleVariants = cva(
459
- "group/bubble relative flex w-fit max-w-[80%] min-w-0 flex-col gap-1 group-data-[align=end]/message:self-end data-[align=end]:self-end data-[variant=ghost]:max-w-full",
460
- {
461
- variants: {
462
- variant: {
463
- default: "*:data-[slot=bubble-content]:bg-primary *:data-[slot=bubble-content]:text-primary-foreground [&>[data-slot=bubble-content]:is(button,a):hover]:bg-primary/80",
464
- secondary: "*:data-[slot=bubble-content]:bg-secondary *:data-[slot=bubble-content]:text-secondary-foreground [&>[data-slot=bubble-content]:is(button,a):hover]:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)]",
465
- muted: "*:data-[slot=bubble-content]:bg-muted [&>[data-slot=bubble-content]:is(button,a):hover]:bg-[color-mix(in_oklch,var(--muted),var(--foreground)_5%)]",
466
- tinted: "*:data-[slot=bubble-content]:bg-[oklch(from_var(--primary)_0.93_calc(c*0.4)_h)] *:data-[slot=bubble-content]:text-foreground dark:*:data-[slot=bubble-content]:bg-[oklch(from_var(--primary)_0.3_calc(c*0.4)_h)] [&>[data-slot=bubble-content]:is(button,a):hover]:bg-[oklch(from_var(--primary)_0.88_calc(c*0.5)_h)] dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-[oklch(from_var(--primary)_0.35_calc(c*0.5)_h)]",
467
- outline: "*:data-[slot=bubble-content]:border-border *:data-[slot=bubble-content]:bg-background [&>[data-slot=bubble-content]:is(button,a):hover]:bg-muted [&>[data-slot=bubble-content]:is(button,a):hover]:text-foreground dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-input/30",
468
- ghost: "border-none *:data-[slot=bubble-content]:rounded-none *:data-[slot=bubble-content]:bg-transparent *:data-[slot=bubble-content]:p-0 [&>[data-slot=bubble-content]:is(button,a):hover]:bg-muted [&>[data-slot=bubble-content]:is(button,a):hover]:text-foreground dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-muted/50",
469
- destructive: "*:data-[slot=bubble-content]:bg-destructive/10 *:data-[slot=bubble-content]:text-destructive dark:*:data-[slot=bubble-content]:bg-destructive/20 [&>[data-slot=bubble-content]:is(button,a):hover]:bg-destructive/20 dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-destructive/30"
470
- }
471
- },
472
- defaultVariants: {
473
- variant: "default"
474
- }
475
- }
476
- );
477
- function Bubble({
478
- variant = "default",
479
- align = "start",
480
- className,
481
- ...props
482
- }) {
483
- return /* @__PURE__ */ jsx(
484
- "div",
485
- {
486
- "data-slot": "bubble",
487
- "data-variant": variant,
488
- "data-align": align,
489
- className: cn(bubbleVariants({ variant }), className),
490
- ...props
491
- }
492
- );
493
- }
494
- function BubbleContent({
495
- asChild = false,
496
- className,
497
- ...props
498
- }) {
499
- const Comp = asChild ? Slot.Root : "div";
500
- return /* @__PURE__ */ jsx(
501
- Comp,
502
- {
503
- "data-slot": "bubble-content",
504
- className: cn(
505
- "w-fit max-w-full min-w-0 overflow-hidden rounded-none border border-transparent px-2.5 py-2 text-xs leading-relaxed wrap-break-word group-data-[align=end]/bubble:self-end [button]:text-left [button,a]:transition-colors [button,a]:outline-none [button,a]:focus-visible:border-ring [button,a]:focus-visible:ring-1 [button,a]:focus-visible:ring-ring/50",
506
- className
507
- ),
508
- ...props
509
- }
510
- );
511
- }
512
- var bubbleReactionsVariants = cva(
513
- "absolute z-10 flex w-fit shrink-0 items-center justify-center gap-1 rounded-none bg-muted px-1.5 py-0.5 text-xs ring-2 ring-card has-[button]:p-0",
514
- {
515
- variants: {
516
- side: {
517
- top: "top-0 -translate-y-3/4",
518
- bottom: "bottom-0 translate-y-3/4"
519
- },
520
- align: {
521
- start: "left-3",
522
- end: "right-3"
523
- }
524
- },
525
- defaultVariants: {
526
- side: "bottom",
527
- align: "end"
528
- }
529
- }
530
- );
531
- function BubbleReactions({
532
- side = "bottom",
533
- align = "end",
534
- className,
535
- ...props
536
- }) {
537
- return /* @__PURE__ */ jsx(
538
- "div",
539
- {
540
- "data-slot": "bubble-reactions",
541
- "data-align": align,
542
- "data-side": side,
543
- className: cn(bubbleReactionsVariants({ side, align }), className),
544
- ...props
545
- }
546
- );
547
- }
548
- var buttonGroupVariants = cva(
549
- "group/button-group flex w-fit items-stretch rounded-none *:focus-visible:relative *:focus-visible:z-10 has-[>[data-slot=button-group]]:gap-2 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-none [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1",
550
- {
551
- variants: {
552
- orientation: {
553
- horizontal: "[&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none",
554
- vertical: "flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:rounded-b-none"
555
- }
556
- },
557
- defaultVariants: {
558
- orientation: "horizontal"
559
- }
560
- }
561
- );
562
- function ButtonGroup({
563
- className,
564
- orientation,
565
- ...props
566
- }) {
567
- return /* @__PURE__ */ jsx(
568
- "div",
569
- {
570
- role: "group",
571
- "data-slot": "button-group",
572
- "data-orientation": orientation,
573
- className: cn(buttonGroupVariants({ orientation }), className),
574
- ...props
575
- }
576
- );
577
- }
578
- function ButtonGroupText({
579
- className,
580
- asChild = false,
581
- ...props
582
- }) {
583
- const Comp = asChild ? Slot.Root : "div";
584
- return /* @__PURE__ */ jsx(
585
- Comp,
586
- {
587
- className: cn(
588
- "flex items-center gap-2 rounded-none border bg-muted px-2.5 text-xs font-medium [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4",
589
- className
590
- ),
591
- ...props
592
- }
593
- );
594
- }
595
- function ButtonGroupSeparator({
596
- className,
597
- orientation = "vertical",
598
- ...props
599
- }) {
600
- return /* @__PURE__ */ jsx(
601
- Separator,
602
- {
603
- "data-slot": "button-group-separator",
604
- orientation,
605
- className: cn(
606
- "relative self-stretch bg-input data-horizontal:mx-px data-horizontal:w-auto data-vertical:my-px data-vertical:h-auto",
607
- className
608
- ),
609
- ...props
610
- }
611
- );
612
- }
613
- function Calendar({
614
- className,
615
- classNames,
616
- showOutsideDays = true,
617
- captionLayout = "label",
618
- buttonVariant = "ghost",
619
- locale,
620
- formatters,
621
- components,
622
- ...props
623
- }) {
624
- const defaultClassNames = getDefaultClassNames();
625
- return /* @__PURE__ */ jsx(
626
- DayPicker,
627
- {
628
- showOutsideDays,
629
- className: cn(
630
- "group/calendar bg-background p-2 [--cell-size:--spacing(7)] in-data-[slot=card-content]:bg-transparent in-data-[slot=popover-content]:bg-transparent",
631
- String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,
632
- String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,
633
- className
634
- ),
635
- captionLayout,
636
- locale,
637
- formatters: {
638
- formatMonthDropdown: (date) => date.toLocaleString(locale?.code, { month: "short" }),
639
- ...formatters
640
- },
641
- classNames: {
642
- root: cn("w-fit", defaultClassNames.root),
643
- months: cn(
644
- "relative flex flex-col gap-4 md:flex-row",
645
- defaultClassNames.months
646
- ),
647
- month: cn("flex w-full flex-col gap-4", defaultClassNames.month),
648
- nav: cn(
649
- "absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1",
650
- defaultClassNames.nav
651
- ),
652
- button_previous: cn(
653
- buttonVariants({ variant: buttonVariant }),
654
- "size-(--cell-size) p-0 select-none aria-disabled:opacity-50",
655
- defaultClassNames.button_previous
656
- ),
657
- button_next: cn(
658
- buttonVariants({ variant: buttonVariant }),
659
- "size-(--cell-size) p-0 select-none aria-disabled:opacity-50",
660
- defaultClassNames.button_next
661
- ),
662
- month_caption: cn(
663
- "flex h-(--cell-size) w-full items-center justify-center px-(--cell-size)",
664
- defaultClassNames.month_caption
665
- ),
666
- dropdowns: cn(
667
- "flex h-(--cell-size) w-full items-center justify-center gap-1.5 text-sm font-medium",
668
- defaultClassNames.dropdowns
669
- ),
670
- dropdown_root: cn(
671
- "relative rounded-(--cell-radius)",
672
- defaultClassNames.dropdown_root
673
- ),
674
- dropdown: cn(
675
- "absolute inset-0 bg-popover opacity-0",
676
- defaultClassNames.dropdown
677
- ),
678
- caption_label: cn(
679
- "font-medium select-none",
680
- captionLayout === "label" ? "text-sm" : "flex items-center gap-1 rounded-(--cell-radius) text-sm [&>svg]:size-3.5 [&>svg]:text-muted-foreground",
681
- defaultClassNames.caption_label
682
- ),
683
- month_grid: cn("w-full border-collapse", defaultClassNames.month_grid),
684
- weekdays: cn("flex", defaultClassNames.weekdays),
685
- weekday: cn(
686
- "flex-1 rounded-(--cell-radius) text-[0.8rem] font-normal text-muted-foreground select-none",
687
- defaultClassNames.weekday
688
- ),
689
- week: cn("mt-2 flex w-full", defaultClassNames.week),
690
- week_number_header: cn(
691
- "w-(--cell-size) select-none",
692
- defaultClassNames.week_number_header
693
- ),
694
- week_number: cn(
695
- "text-[0.8rem] text-muted-foreground select-none",
696
- defaultClassNames.week_number
697
- ),
698
- day: cn(
699
- "group/day relative aspect-square h-full w-full rounded-(--cell-radius) p-0 text-center select-none [&:last-child[data-selected=true]_button]:rounded-r-(--cell-radius)",
700
- props.showWeekNumber ? "[&:nth-child(2)[data-selected=true]_button]:rounded-l-(--cell-radius)" : "[&:first-child[data-selected=true]_button]:rounded-l-(--cell-radius)",
701
- defaultClassNames.day
702
- ),
703
- range_start: cn(
704
- "relative isolate z-0 rounded-l-(--cell-radius) bg-muted after:absolute after:inset-y-0 after:right-0 after:w-4 after:bg-muted",
705
- defaultClassNames.range_start
706
- ),
707
- range_middle: cn("rounded-none", defaultClassNames.range_middle),
708
- range_end: cn(
709
- "relative isolate z-0 rounded-r-(--cell-radius) bg-muted after:absolute after:inset-y-0 after:left-0 after:w-4 after:bg-muted",
710
- defaultClassNames.range_end
711
- ),
712
- today: cn(
713
- "rounded-(--cell-radius) bg-muted text-foreground data-[selected=true]:rounded-none",
714
- defaultClassNames.today
715
- ),
716
- outside: cn(
717
- "text-muted-foreground aria-selected:text-muted-foreground",
718
- defaultClassNames.outside
719
- ),
720
- disabled: cn(
721
- "text-muted-foreground opacity-50",
722
- defaultClassNames.disabled
723
- ),
724
- hidden: cn("invisible", defaultClassNames.hidden),
725
- ...classNames
726
- },
727
- components: {
728
- Root: ({ className: className2, rootRef, ...props2 }) => {
729
- return /* @__PURE__ */ jsx(
730
- "div",
731
- {
732
- "data-slot": "calendar",
733
- ref: rootRef,
734
- className: cn(className2),
735
- ...props2
736
- }
737
- );
738
- },
739
- Chevron: ({ className: className2, orientation, ...props2 }) => {
740
- if (orientation === "left") {
741
- return /* @__PURE__ */ jsx(ChevronLeftIcon, { className: cn("size-4", className2), ...props2 });
742
- }
743
- if (orientation === "right") {
744
- return /* @__PURE__ */ jsx(ChevronRightIcon, { className: cn("size-4", className2), ...props2 });
745
- }
746
- return /* @__PURE__ */ jsx(ChevronDownIcon, { className: cn("size-4", className2), ...props2 });
747
- },
748
- DayButton: ({ ...props2 }) => /* @__PURE__ */ jsx(CalendarDayButton, { locale, ...props2 }),
749
- WeekNumber: ({ children, ...props2 }) => {
750
- return /* @__PURE__ */ jsx("td", { ...props2, children: /* @__PURE__ */ jsx("div", { className: "flex size-(--cell-size) items-center justify-center text-center", children }) });
751
- },
752
- ...components
753
- },
754
- ...props
755
- }
756
- );
757
- }
758
- function CalendarDayButton({
759
- className,
760
- day,
761
- modifiers,
762
- locale,
763
- ...props
764
- }) {
765
- const defaultClassNames = getDefaultClassNames();
766
- const ref = React6.useRef(null);
767
- React6.useEffect(() => {
768
- if (modifiers.focused) ref.current?.focus();
769
- }, [modifiers.focused]);
770
- return /* @__PURE__ */ jsx(
771
- Button,
772
- {
773
- ref,
774
- variant: "ghost",
775
- size: "icon",
776
- "data-day": day.date.toLocaleDateString(locale?.code),
777
- "data-selected-single": modifiers.selected && !modifiers.range_start && !modifiers.range_end && !modifiers.range_middle,
778
- "data-range-start": modifiers.range_start,
779
- "data-range-end": modifiers.range_end,
780
- "data-range-middle": modifiers.range_middle,
781
- className: cn(
782
- "relative isolate z-10 flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 border-0 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-[3px] group-data-[focused=true]/day:ring-ring/50 data-[range-end=true]:rounded-(--cell-radius) data-[range-end=true]:rounded-r-(--cell-radius) data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground data-[range-middle=true]:rounded-none data-[range-middle=true]:bg-muted data-[range-middle=true]:text-foreground data-[range-start=true]:rounded-(--cell-radius) data-[range-start=true]:rounded-l-(--cell-radius) data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground dark:hover:text-foreground [&>span]:text-xs [&>span]:opacity-70",
783
- defaultClassNames.day,
784
- className
785
- ),
786
- ...props
787
- }
788
- );
789
- }
790
- var CarouselContext = React6.createContext(null);
791
- function useCarousel() {
792
- const context = React6.useContext(CarouselContext);
793
- if (!context) {
794
- throw new Error("useCarousel must be used within a <Carousel />");
795
- }
796
- return context;
797
- }
798
- function Carousel({
799
- orientation = "horizontal",
800
- opts,
801
- setApi,
802
- plugins,
803
- className,
804
- children,
805
- ...props
806
- }) {
807
- const [carouselRef, api] = useEmblaCarousel(
808
- {
809
- ...opts,
810
- axis: orientation === "horizontal" ? "x" : "y"
811
- },
812
- plugins
813
- );
814
- const [canScrollPrev, setCanScrollPrev] = React6.useState(false);
815
- const [canScrollNext, setCanScrollNext] = React6.useState(false);
816
- const onSelect = React6.useCallback((api2) => {
817
- if (!api2) return;
818
- setCanScrollPrev(api2.canScrollPrev());
819
- setCanScrollNext(api2.canScrollNext());
820
- }, []);
821
- const scrollPrev = React6.useCallback(() => {
822
- api?.scrollPrev();
823
- }, [api]);
824
- const scrollNext = React6.useCallback(() => {
825
- api?.scrollNext();
826
- }, [api]);
827
- const handleKeyDown = React6.useCallback(
828
- (event) => {
829
- if (event.key === "ArrowLeft") {
830
- event.preventDefault();
831
- scrollPrev();
832
- } else if (event.key === "ArrowRight") {
833
- event.preventDefault();
834
- scrollNext();
835
- }
836
- },
837
- [scrollPrev, scrollNext]
838
- );
839
- React6.useEffect(() => {
840
- if (!api || !setApi) return;
841
- setApi(api);
842
- }, [api, setApi]);
843
- React6.useEffect(() => {
844
- if (!api) return;
845
- onSelect(api);
846
- api.on("reInit", onSelect);
847
- api.on("select", onSelect);
848
- return () => {
849
- api?.off("select", onSelect);
850
- };
851
- }, [api, onSelect]);
852
- return /* @__PURE__ */ jsx(
853
- CarouselContext.Provider,
854
- {
855
- value: {
856
- carouselRef,
857
- api,
858
- opts,
859
- orientation: orientation || (opts?.axis === "y" ? "vertical" : "horizontal"),
860
- scrollPrev,
861
- scrollNext,
862
- canScrollPrev,
863
- canScrollNext
864
- },
865
- children: /* @__PURE__ */ jsx(
866
- "div",
867
- {
868
- onKeyDownCapture: handleKeyDown,
869
- className: cn("relative", className),
870
- role: "region",
871
- "aria-roledescription": "carousel",
872
- "data-slot": "carousel",
873
- ...props,
874
- children
875
- }
876
- )
877
- }
878
- );
879
- }
880
- function CarouselContent({ className, ...props }) {
881
- const { carouselRef, orientation } = useCarousel();
882
- return /* @__PURE__ */ jsx(
883
- "div",
884
- {
885
- ref: carouselRef,
886
- className: "overflow-hidden",
887
- "data-slot": "carousel-content",
888
- children: /* @__PURE__ */ jsx(
889
- "div",
890
- {
891
- className: cn(
892
- "flex",
893
- orientation === "horizontal" ? "-ml-4" : "-mt-4 flex-col",
894
- className
895
- ),
896
- ...props
897
- }
898
- )
899
- }
900
- );
901
- }
902
- function CarouselItem({ className, ...props }) {
903
- const { orientation } = useCarousel();
904
- return /* @__PURE__ */ jsx(
905
- "div",
906
- {
907
- role: "group",
908
- "aria-roledescription": "slide",
909
- "data-slot": "carousel-item",
910
- className: cn(
911
- "min-w-0 shrink-0 grow-0 basis-full",
912
- orientation === "horizontal" ? "pl-4" : "pt-4",
913
- className
914
- ),
915
- ...props
916
- }
917
- );
918
- }
919
- function CarouselPrevious({
920
- className,
921
- variant = "outline",
922
- size = "icon-sm",
923
- ...props
924
- }) {
925
- const { orientation, scrollPrev, canScrollPrev } = useCarousel();
926
- return /* @__PURE__ */ jsxs(
927
- Button,
928
- {
929
- "data-slot": "carousel-previous",
930
- variant,
931
- size,
932
- className: cn(
933
- "absolute touch-manipulation",
934
- orientation === "horizontal" ? "inset-y-0 -left-12 my-auto" : "-top-12 left-1/2 -translate-x-1/2 rotate-90",
935
- className
936
- ),
937
- disabled: !canScrollPrev,
938
- onClick: scrollPrev,
939
- ...props,
940
- children: [
941
- /* @__PURE__ */ jsx(ChevronLeftIcon, {}),
942
- /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Previous slide" })
943
- ]
944
- }
945
- );
946
- }
947
- function CarouselNext({
948
- className,
949
- variant = "outline",
950
- size = "icon-sm",
951
- ...props
952
- }) {
953
- const { orientation, scrollNext, canScrollNext } = useCarousel();
954
- return /* @__PURE__ */ jsxs(
955
- Button,
956
- {
957
- "data-slot": "carousel-next",
958
- variant,
959
- size,
960
- className: cn(
961
- "absolute touch-manipulation",
962
- orientation === "horizontal" ? "inset-y-0 -right-12 my-auto" : "-bottom-12 left-1/2 -translate-x-1/2 rotate-90",
963
- className
964
- ),
965
- disabled: !canScrollNext,
966
- onClick: scrollNext,
967
- ...props,
968
- children: [
969
- /* @__PURE__ */ jsx(ChevronRightIcon, {}),
970
- /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Next slide" })
971
- ]
972
- }
973
- );
974
- }
975
- var THEMES = { light: "", dark: ".dark" };
976
- var INITIAL_DIMENSION = { width: 320, height: 200 };
977
- var ChartContext = React6.createContext(null);
978
- function useChart() {
979
- const context = React6.useContext(ChartContext);
980
- if (!context) {
981
- throw new Error("useChart must be used within a <ChartContainer />");
982
- }
983
- return context;
984
- }
985
- function ChartContainer({
986
- id,
987
- className,
988
- children,
989
- config,
990
- initialDimension = INITIAL_DIMENSION,
991
- ...props
992
- }) {
993
- const uniqueId = React6.useId();
994
- const chartId = `chart-${id ?? uniqueId.replace(/:/g, "")}`;
995
- return /* @__PURE__ */ jsx(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxs(
996
- "div",
997
- {
998
- "data-slot": "chart",
999
- "data-chart": chartId,
1000
- className: cn(
1001
- "flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden",
1002
- className
1003
- ),
1004
- ...props,
1005
- children: [
1006
- /* @__PURE__ */ jsx(ChartStyle, { id: chartId, config }),
1007
- /* @__PURE__ */ jsx(
1008
- RechartsPrimitive.ResponsiveContainer,
1009
- {
1010
- initialDimension,
1011
- children
1012
- }
1013
- )
1014
- ]
1015
- }
1016
- ) });
1017
- }
1018
- var ChartStyle = ({ id, config }) => {
1019
- const colorConfig = Object.entries(config).filter(
1020
- ([, config2]) => config2.theme ?? config2.color
1021
- );
1022
- if (!colorConfig.length) {
1023
- return null;
1024
- }
1025
- return /* @__PURE__ */ jsx(
1026
- "style",
1027
- {
1028
- dangerouslySetInnerHTML: {
1029
- __html: Object.entries(THEMES).map(
1030
- ([theme, prefix]) => `
1031
- ${prefix} [data-chart=${id}] {
1032
- ${colorConfig.map(([key, itemConfig]) => {
1033
- const color = itemConfig.theme?.[theme] ?? itemConfig.color;
1034
- return color ? ` --color-${key}: ${color};` : null;
1035
- }).join("\n")}
1036
- }
1037
- `
1038
- ).join("\n")
1039
- }
1040
- }
1041
- );
1042
- };
1043
- var ChartTooltip = RechartsPrimitive.Tooltip;
1044
- function ChartTooltipContent({
1045
- active,
1046
- payload,
1047
- className,
1048
- indicator = "dot",
1049
- hideLabel = false,
1050
- hideIndicator = false,
1051
- label,
1052
- labelFormatter,
1053
- labelClassName,
1054
- formatter,
1055
- color,
1056
- nameKey,
1057
- labelKey
1058
- }) {
1059
- const { config } = useChart();
1060
- const tooltipLabel = React6.useMemo(() => {
1061
- if (hideLabel || !payload?.length) {
1062
- return null;
1063
- }
1064
- const [item] = payload;
1065
- const key = `${labelKey ?? item?.dataKey ?? item?.name ?? "value"}`;
1066
- const itemConfig = getPayloadConfigFromPayload(config, item, key);
1067
- const value = !labelKey && typeof label === "string" ? config[label]?.label ?? label : itemConfig?.label;
1068
- if (labelFormatter) {
1069
- return /* @__PURE__ */ jsx("div", { className: cn("font-medium", labelClassName), children: labelFormatter(value, payload) });
1070
- }
1071
- if (!value) {
1072
- return null;
1073
- }
1074
- return /* @__PURE__ */ jsx("div", { className: cn("font-medium", labelClassName), children: value });
1075
- }, [
1076
- label,
1077
- labelFormatter,
1078
- payload,
1079
- hideLabel,
1080
- labelClassName,
1081
- config,
1082
- labelKey
1083
- ]);
1084
- if (!active || !payload?.length) {
1085
- return null;
1086
- }
1087
- const nestLabel = payload.length === 1 && indicator !== "dot";
1088
- return /* @__PURE__ */ jsxs(
1089
- "div",
1090
- {
1091
- className: cn(
1092
- "grid min-w-32 items-start gap-1.5 rounded-none border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl",
1093
- className
1094
- ),
1095
- children: [
1096
- !nestLabel ? tooltipLabel : null,
1097
- /* @__PURE__ */ jsx("div", { className: "grid gap-1.5", children: payload.filter((item) => item.type !== "none").map((item, index) => {
1098
- const key = `${nameKey ?? item.name ?? item.dataKey ?? "value"}`;
1099
- const itemConfig = getPayloadConfigFromPayload(config, item, key);
1100
- const indicatorColor = color ?? item.payload?.fill ?? item.color;
1101
- return /* @__PURE__ */ jsx(
1102
- "div",
1103
- {
1104
- className: cn(
1105
- "flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground",
1106
- indicator === "dot" && "items-center"
1107
- ),
1108
- children: formatter && item?.value !== void 0 && item.name ? formatter(item.value, item.name, item, index, item.payload) : /* @__PURE__ */ jsxs(Fragment, { children: [
1109
- itemConfig?.icon ? /* @__PURE__ */ jsx(itemConfig.icon, {}) : !hideIndicator && /* @__PURE__ */ jsx(
1110
- "div",
1111
- {
1112
- className: cn(
1113
- "shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)",
1114
- {
1115
- "h-2.5 w-2.5": indicator === "dot",
1116
- "w-1": indicator === "line",
1117
- "w-0 border-[1.5px] border-dashed bg-transparent": indicator === "dashed",
1118
- "my-0.5": nestLabel && indicator === "dashed"
1119
- }
1120
- ),
1121
- style: {
1122
- "--color-bg": indicatorColor,
1123
- "--color-border": indicatorColor
1124
- }
1125
- }
1126
- ),
1127
- /* @__PURE__ */ jsxs(
1128
- "div",
1129
- {
1130
- className: cn(
1131
- "flex flex-1 justify-between leading-none",
1132
- nestLabel ? "items-end" : "items-center"
1133
- ),
1134
- children: [
1135
- /* @__PURE__ */ jsxs("div", { className: "grid gap-1.5", children: [
1136
- nestLabel ? tooltipLabel : null,
1137
- /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: itemConfig?.label ?? item.name })
1138
- ] }),
1139
- item.value != null && /* @__PURE__ */ jsx("span", { className: "font-mono font-medium text-foreground tabular-nums", children: typeof item.value === "number" ? item.value.toLocaleString() : String(item.value) })
1140
- ]
1141
- }
1142
- )
1143
- ] })
1144
- },
1145
- index
1146
- );
1147
- }) })
1148
- ]
1149
- }
1150
- );
1151
- }
1152
- var ChartLegend = RechartsPrimitive.Legend;
1153
- function ChartLegendContent({
1154
- className,
1155
- hideIcon = false,
1156
- payload,
1157
- verticalAlign = "bottom",
1158
- nameKey
1159
- }) {
1160
- const { config } = useChart();
1161
- if (!payload?.length) {
1162
- return null;
1163
- }
1164
- return /* @__PURE__ */ jsx(
1165
- "div",
1166
- {
1167
- className: cn(
1168
- "flex items-center justify-center gap-4",
1169
- verticalAlign === "top" ? "pb-3" : "pt-3",
1170
- className
1171
- ),
1172
- children: payload.filter((item) => item.type !== "none").map((item, index) => {
1173
- const key = `${nameKey ?? item.dataKey ?? "value"}`;
1174
- const itemConfig = getPayloadConfigFromPayload(config, item, key);
1175
- return /* @__PURE__ */ jsxs(
1176
- "div",
1177
- {
1178
- className: cn(
1179
- "flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground"
1180
- ),
1181
- children: [
1182
- itemConfig?.icon && !hideIcon ? /* @__PURE__ */ jsx(itemConfig.icon, {}) : /* @__PURE__ */ jsx(
1183
- "div",
1184
- {
1185
- className: "h-2 w-2 shrink-0 rounded-[2px]",
1186
- style: {
1187
- backgroundColor: item.color
1188
- }
1189
- }
1190
- ),
1191
- itemConfig?.label
1192
- ]
1193
- },
1194
- index
1195
- );
1196
- })
1197
- }
1198
- );
1199
- }
1200
- function getPayloadConfigFromPayload(config, payload, key) {
1201
- if (typeof payload !== "object" || payload === null) {
1202
- return void 0;
1203
- }
1204
- const payloadPayload = "payload" in payload && typeof payload.payload === "object" && payload.payload !== null ? payload.payload : void 0;
1205
- let configLabelKey = key;
1206
- if (key in payload && typeof payload[key] === "string") {
1207
- configLabelKey = payload[key];
1208
- } else if (payloadPayload && key in payloadPayload && typeof payloadPayload[key] === "string") {
1209
- configLabelKey = payloadPayload[key];
1210
- }
1211
- return configLabelKey in config ? config[configLabelKey] : config[key];
1212
- }
1213
- function Checkbox({
1214
- className,
1215
- ...props
1216
- }) {
1217
- return /* @__PURE__ */ jsx(
1218
- Checkbox$1.Root,
1219
- {
1220
- "data-slot": "checkbox",
1221
- className: cn(
1222
- "peer relative flex size-4 shrink-0 items-center justify-center rounded-none border border-input transition-colors outline-none group-has-disabled/field:opacity-50 after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-1 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-1 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 dark:data-checked:bg-primary",
1223
- className
1224
- ),
1225
- ...props,
1226
- children: /* @__PURE__ */ jsx(
1227
- Checkbox$1.Indicator,
1228
- {
1229
- "data-slot": "checkbox-indicator",
1230
- className: "grid place-content-center text-current transition-none [&>svg]:size-3.5",
1231
- children: /* @__PURE__ */ jsx(
1232
- CheckIcon,
1233
- {}
1234
- )
1235
- }
1236
- )
1237
- }
1238
- );
1239
- }
1240
- function Collapsible({
1241
- ...props
1242
- }) {
1243
- return /* @__PURE__ */ jsx(Collapsible$1.Root, { "data-slot": "collapsible", ...props });
1244
- }
1245
- function CollapsibleTrigger({
1246
- ...props
1247
- }) {
1248
- return /* @__PURE__ */ jsx(
1249
- Collapsible$1.CollapsibleTrigger,
1250
- {
1251
- "data-slot": "collapsible-trigger",
1252
- ...props
1253
- }
1254
- );
1255
- }
1256
- function CollapsibleContent({
1257
- ...props
1258
- }) {
1259
- return /* @__PURE__ */ jsx(
1260
- Collapsible$1.CollapsibleContent,
1261
- {
1262
- "data-slot": "collapsible-content",
1263
- ...props
1264
- }
1265
- );
1266
- }
1267
- function DirectionProvider({
1268
- dir,
1269
- direction,
1270
- children
1271
- }) {
1272
- return /* @__PURE__ */ jsx(Direction.DirectionProvider, { dir: direction ?? dir, children });
1273
- }
1274
- var useDirection = Direction.useDirection;
1275
- function Drawer({
1276
- ...props
1277
- }) {
1278
- return /* @__PURE__ */ jsx(Drawer$1.Root, { "data-slot": "drawer", ...props });
1279
- }
1280
- function DrawerTrigger({
1281
- ...props
1282
- }) {
1283
- return /* @__PURE__ */ jsx(Drawer$1.Trigger, { "data-slot": "drawer-trigger", ...props });
1284
- }
1285
- function DrawerPortal({
1286
- ...props
1287
- }) {
1288
- return /* @__PURE__ */ jsx(Drawer$1.Portal, { "data-slot": "drawer-portal", ...props });
1289
- }
1290
- function DrawerClose({
1291
- ...props
1292
- }) {
1293
- return /* @__PURE__ */ jsx(Drawer$1.Close, { "data-slot": "drawer-close", ...props });
1294
- }
1295
- function DrawerOverlay({
1296
- className,
1297
- ...props
1298
- }) {
1299
- return /* @__PURE__ */ jsx(
1300
- Drawer$1.Overlay,
1301
- {
1302
- "data-slot": "drawer-overlay",
1303
- className: cn(
1304
- "fixed inset-0 z-50 bg-black/10 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",
1305
- className
1306
- ),
1307
- ...props
1308
- }
1309
- );
1310
- }
1311
- function DrawerContent({
1312
- className,
1313
- children,
1314
- ...props
1315
- }) {
1316
- return /* @__PURE__ */ jsxs(DrawerPortal, { "data-slot": "drawer-portal", children: [
1317
- /* @__PURE__ */ jsx(DrawerOverlay, {}),
1318
- /* @__PURE__ */ jsxs(
1319
- Drawer$1.Content,
1320
- {
1321
- "data-slot": "drawer-content",
1322
- className: cn(
1323
- "group/drawer-content fixed z-50 flex h-auto flex-col bg-popover text-xs/relaxed text-popover-foreground data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=bottom]:bottom-0 data-[vaul-drawer-direction=bottom]:mt-24 data-[vaul-drawer-direction=bottom]:max-h-[80vh] data-[vaul-drawer-direction=bottom]:rounded-none data-[vaul-drawer-direction=bottom]:border-t data-[vaul-drawer-direction=left]:inset-y-0 data-[vaul-drawer-direction=left]:left-0 data-[vaul-drawer-direction=left]:w-3/4 data-[vaul-drawer-direction=left]:rounded-none data-[vaul-drawer-direction=left]:border-r data-[vaul-drawer-direction=right]:inset-y-0 data-[vaul-drawer-direction=right]:right-0 data-[vaul-drawer-direction=right]:w-3/4 data-[vaul-drawer-direction=right]:rounded-none data-[vaul-drawer-direction=right]:border-l data-[vaul-drawer-direction=top]:inset-x-0 data-[vaul-drawer-direction=top]:top-0 data-[vaul-drawer-direction=top]:mb-24 data-[vaul-drawer-direction=top]:max-h-[80vh] data-[vaul-drawer-direction=top]:rounded-none data-[vaul-drawer-direction=top]:border-b data-[vaul-drawer-direction=left]:sm:max-w-sm data-[vaul-drawer-direction=right]:sm:max-w-sm",
1324
- className
1325
- ),
1326
- ...props,
1327
- children: [
1328
- /* @__PURE__ */ jsx("div", { className: "mx-auto mt-4 hidden h-1 w-[100px] shrink-0 rounded-none bg-muted group-data-[vaul-drawer-direction=bottom]/drawer-content:block" }),
1329
- children
1330
- ]
1331
- }
1332
- )
1333
- ] });
1334
- }
1335
- function DrawerHeader({ className, ...props }) {
1336
- return /* @__PURE__ */ jsx(
1337
- "div",
1338
- {
1339
- "data-slot": "drawer-header",
1340
- className: cn(
1341
- "flex flex-col gap-0.5 p-4 group-data-[vaul-drawer-direction=bottom]/drawer-content:text-center group-data-[vaul-drawer-direction=top]/drawer-content:text-center md:gap-0.5 md:text-left",
1342
- className
1343
- ),
1344
- ...props
1345
- }
1346
- );
1347
- }
1348
- function DrawerFooter({ className, ...props }) {
1349
- return /* @__PURE__ */ jsx(
1350
- "div",
1351
- {
1352
- "data-slot": "drawer-footer",
1353
- className: cn("mt-auto flex flex-col gap-2 p-4", className),
1354
- ...props
1355
- }
1356
- );
1357
- }
1358
- function DrawerTitle({
1359
- className,
1360
- ...props
1361
- }) {
1362
- return /* @__PURE__ */ jsx(
1363
- Drawer$1.Title,
1364
- {
1365
- "data-slot": "drawer-title",
1366
- className: cn(
1367
- "font-heading text-sm font-medium text-foreground",
1368
- className
1369
- ),
1370
- ...props
1371
- }
1372
- );
1373
- }
1374
- function DrawerDescription({
1375
- className,
1376
- ...props
1377
- }) {
1378
- return /* @__PURE__ */ jsx(
1379
- Drawer$1.Description,
1380
- {
1381
- "data-slot": "drawer-description",
1382
- className: cn("text-xs/relaxed text-muted-foreground", className),
1383
- ...props
1384
- }
1385
- );
1386
- }
1387
- function Empty({ className, ...props }) {
1388
- return /* @__PURE__ */ jsx(
1389
- "div",
1390
- {
1391
- "data-slot": "empty",
1392
- className: cn(
1393
- "flex w-full min-w-0 flex-1 flex-col items-center justify-center gap-4 rounded-none border-dashed p-6 text-center text-balance",
1394
- className
1395
- ),
1396
- ...props
1397
- }
1398
- );
1399
- }
1400
- function EmptyHeader({ className, ...props }) {
1401
- return /* @__PURE__ */ jsx(
1402
- "div",
1403
- {
1404
- "data-slot": "empty-header",
1405
- className: cn("flex max-w-sm flex-col items-center gap-2", className),
1406
- ...props
1407
- }
1408
- );
1409
- }
1410
- var emptyMediaVariants = cva(
1411
- "mb-2 flex shrink-0 items-center justify-center [&_svg]:pointer-events-none [&_svg]:shrink-0",
1412
- {
1413
- variants: {
1414
- variant: {
1415
- default: "bg-transparent",
1416
- icon: "flex size-8 shrink-0 items-center justify-center rounded-none bg-muted text-foreground [&_svg:not([class*='size-'])]:size-4"
1417
- }
1418
- },
1419
- defaultVariants: {
1420
- variant: "default"
1421
- }
1422
- }
1423
- );
1424
- function EmptyMedia({
1425
- className,
1426
- variant = "default",
1427
- ...props
1428
- }) {
1429
- return /* @__PURE__ */ jsx(
1430
- "div",
1431
- {
1432
- "data-slot": "empty-icon",
1433
- "data-variant": variant,
1434
- className: cn(emptyMediaVariants({ variant, className })),
1435
- ...props
1436
- }
1437
- );
1438
- }
1439
- function EmptyTitle({ className, ...props }) {
1440
- return /* @__PURE__ */ jsx(
1441
- "div",
1442
- {
1443
- "data-slot": "empty-title",
1444
- className: cn("font-heading text-sm font-medium", className),
1445
- ...props
1446
- }
1447
- );
1448
- }
1449
- function EmptyDescription({ className, ...props }) {
1450
- return /* @__PURE__ */ jsx(
1451
- "div",
1452
- {
1453
- "data-slot": "empty-description",
1454
- className: cn(
1455
- "text-xs/relaxed text-muted-foreground [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary",
1456
- className
1457
- ),
1458
- ...props
1459
- }
1460
- );
1461
- }
1462
- function EmptyContent({ className, ...props }) {
1463
- return /* @__PURE__ */ jsx(
1464
- "div",
1465
- {
1466
- "data-slot": "empty-content",
1467
- className: cn(
1468
- "flex w-full max-w-sm min-w-0 flex-col items-center gap-2.5 text-xs text-balance",
1469
- className
1470
- ),
1471
- ...props
1472
- }
1473
- );
1474
- }
1475
- function HoverCard({
1476
- ...props
1477
- }) {
1478
- return /* @__PURE__ */ jsx(HoverCard$1.Root, { "data-slot": "hover-card", ...props });
1479
- }
1480
- function HoverCardTrigger({
1481
- ...props
1482
- }) {
1483
- return /* @__PURE__ */ jsx(HoverCard$1.Trigger, { "data-slot": "hover-card-trigger", ...props });
1484
- }
1485
- function HoverCardContent({
1486
- className,
1487
- align = "center",
1488
- sideOffset = 4,
1489
- ...props
1490
- }) {
1491
- return /* @__PURE__ */ jsx(HoverCard$1.Portal, { "data-slot": "hover-card-portal", children: /* @__PURE__ */ jsx(
1492
- HoverCard$1.Content,
1493
- {
1494
- "data-slot": "hover-card-content",
1495
- align,
1496
- sideOffset,
1497
- className: cn(
1498
- "z-50 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-none bg-popover p-2.5 text-xs/relaxed text-popover-foreground shadow-md ring-1 ring-foreground/10 outline-hidden duration-100 data-[side=bottom]:slide-in-from-top-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 data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
1499
- className
1500
- ),
1501
- ...props
1502
- }
1503
- ) });
1504
- }
1505
- function InputOTP({
1506
- className,
1507
- containerClassName,
1508
- ...props
1509
- }) {
1510
- return /* @__PURE__ */ jsx(
1511
- OTPInput,
1512
- {
1513
- "data-slot": "input-otp",
1514
- containerClassName: cn(
1515
- "cn-input-otp flex items-center has-disabled:opacity-50",
1516
- containerClassName
1517
- ),
1518
- spellCheck: false,
1519
- className: cn("disabled:cursor-not-allowed", className),
1520
- ...props
1521
- }
1522
- );
1523
- }
1524
- function InputOTPGroup({ className, ...props }) {
1525
- return /* @__PURE__ */ jsx(
1526
- "div",
1527
- {
1528
- "data-slot": "input-otp-group",
1529
- className: cn(
1530
- "flex items-center rounded-none has-aria-invalid:border-destructive has-aria-invalid:ring-1 has-aria-invalid:ring-destructive/20 dark:has-aria-invalid:ring-destructive/40",
1531
- className
1532
- ),
1533
- ...props
1534
- }
1535
- );
1536
- }
1537
- function InputOTPSlot({
1538
- index,
1539
- className,
1540
- ...props
1541
- }) {
1542
- const inputOTPContext = React6.useContext(OTPInputContext);
1543
- const { char, hasFakeCaret, isActive } = inputOTPContext?.slots[index] ?? {};
1544
- return /* @__PURE__ */ jsxs(
1545
- "div",
1546
- {
1547
- "data-slot": "input-otp-slot",
1548
- "data-active": isActive,
1549
- className: cn(
1550
- "relative flex size-8 items-center justify-center border-y border-r border-input text-xs transition-all outline-none first:rounded-none first:border-l last:rounded-none aria-invalid:border-destructive data-[active=true]:z-10 data-[active=true]:border-ring data-[active=true]:ring-1 data-[active=true]:ring-ring/50 data-[active=true]:aria-invalid:border-destructive data-[active=true]:aria-invalid:ring-destructive/20 dark:bg-input/30 dark:data-[active=true]:aria-invalid:ring-destructive/40",
1551
- className
1552
- ),
1553
- ...props,
1554
- children: [
1555
- char,
1556
- hasFakeCaret && /* @__PURE__ */ jsx("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsx("div", { className: "h-4 w-px animate-caret-blink bg-foreground duration-1000" }) })
1557
- ]
1558
- }
1559
- );
1560
- }
1561
- function InputOTPSeparator({ ...props }) {
1562
- return /* @__PURE__ */ jsx(
1563
- "div",
1564
- {
1565
- "data-slot": "input-otp-separator",
1566
- className: "flex items-center [&_svg:not([class*='size-'])]:size-4",
1567
- role: "separator",
1568
- ...props,
1569
- children: /* @__PURE__ */ jsx(
1570
- MinusIcon,
1571
- {}
1572
- )
1573
- }
1574
- );
1575
- }
1576
- function ItemGroup({ className, ...props }) {
1577
- return /* @__PURE__ */ jsx(
1578
- "div",
1579
- {
1580
- role: "list",
1581
- "data-slot": "item-group",
1582
- className: cn(
1583
- "group/item-group flex w-full flex-col gap-4 has-data-[size=sm]:gap-2.5 has-data-[size=xs]:gap-2",
1584
- className
1585
- ),
1586
- ...props
1587
- }
1588
- );
1589
- }
1590
- function ItemSeparator({
1591
- className,
1592
- ...props
1593
- }) {
1594
- return /* @__PURE__ */ jsx(
1595
- Separator,
1596
- {
1597
- "data-slot": "item-separator",
1598
- orientation: "horizontal",
1599
- className: cn("my-2", className),
1600
- ...props
1601
- }
1602
- );
1603
- }
1604
- var itemVariants = cva(
1605
- "group/item flex w-full flex-wrap items-center rounded-none border text-xs transition-colors duration-100 outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 [a]:transition-colors [a]:hover:bg-muted",
1606
- {
1607
- variants: {
1608
- variant: {
1609
- default: "border-transparent",
1610
- outline: "border-border",
1611
- muted: "border-transparent bg-muted/50"
1612
- },
1613
- size: {
1614
- default: "gap-2.5 px-3 py-2.5",
1615
- sm: "gap-2.5 px-3 py-2.5",
1616
- xs: "gap-2 px-2.5 py-2 in-data-[slot=dropdown-menu-content]:p-0"
1617
- }
1618
- },
1619
- defaultVariants: {
1620
- variant: "default",
1621
- size: "default"
1622
- }
1623
- }
1624
- );
1625
- function Item({
1626
- className,
1627
- variant = "default",
1628
- size = "default",
1629
- asChild = false,
1630
- ...props
1631
- }) {
1632
- const Comp = asChild ? Slot.Root : "div";
1633
- return /* @__PURE__ */ jsx(
1634
- Comp,
1635
- {
1636
- "data-slot": "item",
1637
- "data-variant": variant,
1638
- "data-size": size,
1639
- className: cn(itemVariants({ variant, size, className })),
1640
- ...props
1641
- }
1642
- );
1643
- }
1644
- var itemMediaVariants = cva(
1645
- "flex shrink-0 items-center justify-center gap-2 group-has-data-[slot=item-description]/item:translate-y-0.5 group-has-data-[slot=item-description]/item:self-start [&_svg]:pointer-events-none",
1646
- {
1647
- variants: {
1648
- variant: {
1649
- default: "bg-transparent",
1650
- icon: "[&_svg:not([class*='size-'])]:size-4",
1651
- image: "size-10 overflow-hidden rounded-none group-data-[size=sm]/item:size-8 group-data-[size=xs]/item:size-6 [&_img]:size-full [&_img]:object-cover"
1652
- }
1653
- },
1654
- defaultVariants: {
1655
- variant: "default"
1656
- }
1657
- }
1658
- );
1659
- function ItemMedia({
1660
- className,
1661
- variant = "default",
1662
- ...props
1663
- }) {
1664
- return /* @__PURE__ */ jsx(
1665
- "div",
1666
- {
1667
- "data-slot": "item-media",
1668
- "data-variant": variant,
1669
- className: cn(itemMediaVariants({ variant, className })),
1670
- ...props
1671
- }
1672
- );
1673
- }
1674
- function ItemContent({ className, ...props }) {
1675
- return /* @__PURE__ */ jsx(
1676
- "div",
1677
- {
1678
- "data-slot": "item-content",
1679
- className: cn(
1680
- "flex flex-1 flex-col gap-1 group-data-[size=xs]/item:gap-0 [&+[data-slot=item-content]]:flex-none",
1681
- className
1682
- ),
1683
- ...props
1684
- }
1685
- );
1686
- }
1687
- function ItemTitle({ className, ...props }) {
1688
- return /* @__PURE__ */ jsx(
1689
- "div",
1690
- {
1691
- "data-slot": "item-title",
1692
- className: cn(
1693
- "line-clamp-1 flex w-fit items-center gap-2 text-xs font-medium underline-offset-4",
1694
- className
1695
- ),
1696
- ...props
1697
- }
1698
- );
1699
- }
1700
- function ItemDescription({ className, ...props }) {
1701
- return /* @__PURE__ */ jsx(
1702
- "p",
1703
- {
1704
- "data-slot": "item-description",
1705
- className: cn(
1706
- "line-clamp-2 text-left text-xs/relaxed font-normal text-muted-foreground group-data-[size=xs]/item:text-xs/relaxed [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary",
1707
- className
1708
- ),
1709
- ...props
1710
- }
1711
- );
1712
- }
1713
- function ItemActions({ className, ...props }) {
1714
- return /* @__PURE__ */ jsx(
1715
- "div",
1716
- {
1717
- "data-slot": "item-actions",
1718
- className: cn("flex items-center gap-2", className),
1719
- ...props
1720
- }
1721
- );
1722
- }
1723
- function ItemHeader({ className, ...props }) {
1724
- return /* @__PURE__ */ jsx(
1725
- "div",
1726
- {
1727
- "data-slot": "item-header",
1728
- className: cn(
1729
- "flex basis-full items-center justify-between gap-2",
1730
- className
1731
- ),
1732
- ...props
1733
- }
1734
- );
1735
- }
1736
- function ItemFooter({ className, ...props }) {
1737
- return /* @__PURE__ */ jsx(
1738
- "div",
1739
- {
1740
- "data-slot": "item-footer",
1741
- className: cn(
1742
- "flex basis-full items-center justify-between gap-2",
1743
- className
1744
- ),
1745
- ...props
1746
- }
1747
- );
1748
- }
1749
- function Kbd({ className, ...props }) {
1750
- return /* @__PURE__ */ jsx(
1751
- "kbd",
1752
- {
1753
- "data-slot": "kbd",
1754
- className: cn(
1755
- "pointer-events-none inline-flex h-5 w-fit min-w-5 items-center justify-center gap-1 rounded-none 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",
1756
- className
1757
- ),
1758
- ...props
1759
- }
1760
- );
1761
- }
1762
- function KbdGroup({ className, ...props }) {
1763
- return /* @__PURE__ */ jsx(
1764
- "kbd",
1765
- {
1766
- "data-slot": "kbd-group",
1767
- className: cn("inline-flex items-center gap-1", className),
1768
- ...props
1769
- }
1770
- );
1771
- }
1772
- var markerVariants = cva(
1773
- "group/marker relative flex min-h-4 w-full items-center gap-2 text-left text-xs text-muted-foreground [&_svg:not([class*='size-'])]:size-3.5 [a]:underline [a]:underline-offset-3 [a]:hover:text-foreground",
1774
- {
1775
- variants: {
1776
- variant: {
1777
- default: "",
1778
- separator: "before:mr-1 before:h-px before:min-w-0 before:flex-1 before:bg-border after:ml-1 after:h-px after:min-w-0 after:flex-1 after:bg-border",
1779
- border: "border-b border-border pb-2"
1780
- }
1781
- }
1782
- }
1783
- );
1784
- function Marker({
1785
- className,
1786
- variant = "default",
1787
- asChild = false,
1788
- ...props
1789
- }) {
1790
- const Comp = asChild ? Slot.Root : "div";
1791
- return /* @__PURE__ */ jsx(
1792
- Comp,
1793
- {
1794
- "data-slot": "marker",
1795
- "data-variant": variant,
1796
- className: cn(markerVariants({ variant, className })),
1797
- ...props
1798
- }
1799
- );
1800
- }
1801
- function MarkerIcon({ className, ...props }) {
1802
- return /* @__PURE__ */ jsx(
1803
- "span",
1804
- {
1805
- "data-slot": "marker-icon",
1806
- "aria-hidden": "true",
1807
- className: cn(
1808
- "size-3.5 shrink-0 [&_svg:not([class*='size-'])]:size-3.5",
1809
- className
1810
- ),
1811
- ...props
1812
- }
1813
- );
1814
- }
1815
- function MarkerContent({ className, ...props }) {
1816
- return /* @__PURE__ */ jsx(
1817
- "span",
1818
- {
1819
- "data-slot": "marker-content",
1820
- className: cn(
1821
- "min-w-0 wrap-break-word group-data-[variant=separator]/marker:flex-none group-data-[variant=separator]/marker:text-center *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground",
1822
- className
1823
- ),
1824
- ...props
1825
- }
1826
- );
1827
- }
1828
- function Menubar({
1829
- className,
1830
- ...props
1831
- }) {
1832
- return /* @__PURE__ */ jsx(
1833
- Menubar$1.Root,
1834
- {
1835
- "data-slot": "menubar",
1836
- className: cn(
1837
- "flex h-8 items-center gap-0.5 rounded-none border p-1",
1838
- className
1839
- ),
1840
- ...props
1841
- }
1842
- );
1843
- }
1844
- function MenubarMenu({
1845
- ...props
1846
- }) {
1847
- return /* @__PURE__ */ jsx(Menubar$1.Menu, { "data-slot": "menubar-menu", ...props });
1848
- }
1849
- function MenubarGroup({
1850
- ...props
1851
- }) {
1852
- return /* @__PURE__ */ jsx(Menubar$1.Group, { "data-slot": "menubar-group", ...props });
1853
- }
1854
- function MenubarPortal({
1855
- ...props
1856
- }) {
1857
- return /* @__PURE__ */ jsx(Menubar$1.Portal, { "data-slot": "menubar-portal", ...props });
1858
- }
1859
- function MenubarRadioGroup({
1860
- ...props
1861
- }) {
1862
- return /* @__PURE__ */ jsx(Menubar$1.RadioGroup, { "data-slot": "menubar-radio-group", ...props });
1863
- }
1864
- function MenubarTrigger({
1865
- className,
1866
- ...props
1867
- }) {
1868
- return /* @__PURE__ */ jsx(
1869
- Menubar$1.Trigger,
1870
- {
1871
- "data-slot": "menubar-trigger",
1872
- className: cn(
1873
- "flex items-center rounded-none px-1.5 py-[calc(--spacing(0.8))] text-xs font-medium outline-hidden select-none hover:bg-muted aria-expanded:bg-muted",
1874
- className
1875
- ),
1876
- ...props
1877
- }
1878
- );
1879
- }
1880
- function MenubarContent({
1881
- className,
1882
- align = "start",
1883
- alignOffset = -4,
1884
- sideOffset = 8,
1885
- ...props
1886
- }) {
1887
- return /* @__PURE__ */ jsx(MenubarPortal, { children: /* @__PURE__ */ jsx(
1888
- Menubar$1.Content,
1889
- {
1890
- "data-slot": "menubar-content",
1891
- align,
1892
- alignOffset,
1893
- sideOffset,
1894
- className: cn("z-50 min-w-36 origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-none bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[side=bottom]:slide-in-from-top-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 data-open:fade-in-0 data-open:zoom-in-95", className),
1895
- ...props
1896
- }
1897
- ) });
1898
- }
1899
- function MenubarItem({
1900
- className,
1901
- inset,
1902
- variant = "default",
1903
- ...props
1904
- }) {
1905
- return /* @__PURE__ */ jsx(
1906
- Menubar$1.Item,
1907
- {
1908
- "data-slot": "menubar-item",
1909
- "data-inset": inset,
1910
- "data-variant": variant,
1911
- className: cn(
1912
- "group/menubar-item relative flex cursor-default items-center gap-2 rounded-none px-2 py-2 text-xs outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive!",
1913
- className
1914
- ),
1915
- ...props
1916
- }
1917
- );
1918
- }
1919
- function MenubarCheckboxItem({
1920
- className,
1921
- children,
1922
- checked,
1923
- inset,
1924
- ...props
1925
- }) {
1926
- return /* @__PURE__ */ jsxs(
1927
- Menubar$1.CheckboxItem,
1928
- {
1929
- "data-slot": "menubar-checkbox-item",
1930
- "data-inset": inset,
1931
- className: cn(
1932
- "relative flex cursor-default items-center gap-2 rounded-none py-2 pr-28 pl-8 text-xs outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-8 data-disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0",
1933
- className
1934
- ),
1935
- checked,
1936
- ...props,
1937
- children: [
1938
- /* @__PURE__ */ jsx("span", { className: "pointer-events-none absolute left-1.5 flex size-4 items-center justify-center [&_svg:not([class*='size-'])]:size-4", children: /* @__PURE__ */ jsx(Menubar$1.ItemIndicator, { children: /* @__PURE__ */ jsx(
1939
- CheckIcon,
1940
- {}
1941
- ) }) }),
1942
- children
1943
- ]
1944
- }
1945
- );
1946
- }
1947
- function MenubarRadioItem({
1948
- className,
1949
- children,
1950
- inset,
1951
- ...props
1952
- }) {
1953
- return /* @__PURE__ */ jsxs(
1954
- Menubar$1.RadioItem,
1955
- {
1956
- "data-slot": "menubar-radio-item",
1957
- "data-inset": inset,
1958
- className: cn(
1959
- "relative flex cursor-default items-center gap-2 rounded-none py-2 pr-2 pl-8 text-xs outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-8 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
1960
- className
1961
- ),
1962
- ...props,
1963
- children: [
1964
- /* @__PURE__ */ jsx("span", { className: "pointer-events-none absolute left-1.5 flex size-4 items-center justify-center [&_svg:not([class*='size-'])]:size-4", children: /* @__PURE__ */ jsx(Menubar$1.ItemIndicator, { children: /* @__PURE__ */ jsx(
1965
- CheckIcon,
1966
- {}
1967
- ) }) }),
1968
- children
1969
- ]
1970
- }
1971
- );
1972
- }
1973
- function MenubarLabel({
1974
- className,
1975
- inset,
1976
- ...props
1977
- }) {
1978
- return /* @__PURE__ */ jsx(
1979
- Menubar$1.Label,
1980
- {
1981
- "data-slot": "menubar-label",
1982
- "data-inset": inset,
1983
- className: cn("px-2 py-2 text-xs data-inset:pl-8", className),
1984
- ...props
1985
- }
1986
- );
1987
- }
1988
- function MenubarSeparator({
1989
- className,
1990
- ...props
1991
- }) {
1992
- return /* @__PURE__ */ jsx(
1993
- Menubar$1.Separator,
1994
- {
1995
- "data-slot": "menubar-separator",
1996
- className: cn("-mx-1 my-1 h-px bg-border", className),
1997
- ...props
1998
- }
1999
- );
2000
- }
2001
- function MenubarShortcut({
2002
- className,
2003
- ...props
2004
- }) {
2005
- return /* @__PURE__ */ jsx(
2006
- "span",
2007
- {
2008
- "data-slot": "menubar-shortcut",
2009
- className: cn(
2010
- "ml-auto text-xs tracking-widest text-muted-foreground group-focus/menubar-item:text-accent-foreground",
2011
- className
2012
- ),
2013
- ...props
2014
- }
2015
- );
2016
- }
2017
- function MenubarSub({
2018
- ...props
2019
- }) {
2020
- return /* @__PURE__ */ jsx(Menubar$1.Sub, { "data-slot": "menubar-sub", ...props });
2021
- }
2022
- function MenubarSubTrigger({
2023
- className,
2024
- inset,
2025
- children,
2026
- ...props
2027
- }) {
2028
- return /* @__PURE__ */ jsxs(
2029
- Menubar$1.SubTrigger,
2030
- {
2031
- "data-slot": "menubar-sub-trigger",
2032
- "data-inset": inset,
2033
- className: cn(
2034
- "flex cursor-default items-center gap-2 rounded-none px-2 py-2 text-xs outline-none select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-8 data-open:bg-accent data-open:text-accent-foreground [&_svg:not([class*='size-'])]:size-4",
2035
- className
2036
- ),
2037
- ...props,
2038
- children: [
2039
- children,
2040
- /* @__PURE__ */ jsx(ChevronRightIcon, { className: "ml-auto size-4" })
2041
- ]
2042
- }
2043
- );
2044
- }
2045
- function MenubarSubContent({
2046
- className,
2047
- ...props
2048
- }) {
2049
- return /* @__PURE__ */ jsx(
2050
- Menubar$1.SubContent,
2051
- {
2052
- "data-slot": "menubar-sub-content",
2053
- className: cn("z-50 min-w-32 origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-none bg-popover text-popover-foreground shadow-lg ring-1 ring-foreground/10 duration-100 data-[side=bottom]:slide-in-from-top-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 data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", className),
2054
- ...props
2055
- }
2056
- );
2057
- }
2058
- function MessageGroup({ className, ...props }) {
2059
- return /* @__PURE__ */ jsx(
2060
- "div",
2061
- {
2062
- "data-slot": "message-group",
2063
- className: cn("flex min-w-0 flex-col gap-1.5", className),
2064
- ...props
2065
- }
2066
- );
2067
- }
2068
- function Message({
2069
- className,
2070
- align = "start",
2071
- ...props
2072
- }) {
2073
- return /* @__PURE__ */ jsx(
2074
- "div",
2075
- {
2076
- "data-slot": "message",
2077
- "data-align": align,
2078
- className: cn(
2079
- "group/message relative flex w-full min-w-0 gap-1.5 text-xs data-[align=end]:flex-row-reverse",
2080
- className
2081
- ),
2082
- ...props
2083
- }
2084
- );
2085
- }
2086
- function MessageAvatar({ className, ...props }) {
2087
- return /* @__PURE__ */ jsx(
2088
- "div",
2089
- {
2090
- "data-slot": "message-avatar",
2091
- className: cn(
2092
- "flex w-fit min-w-8 shrink-0 items-center justify-center self-end overflow-hidden rounded-full bg-muted group-has-data-[slot=message-footer]/message:-translate-y-8",
2093
- className
2094
- ),
2095
- ...props
2096
- }
2097
- );
2098
- }
2099
- function MessageContent({ className, ...props }) {
2100
- return /* @__PURE__ */ jsx(
2101
- "div",
2102
- {
2103
- "data-slot": "message-content",
2104
- className: cn(
2105
- "flex w-full min-w-0 flex-col gap-2 wrap-break-word group-data-[align=end]/message:*:data-slot:self-end",
2106
- className
2107
- ),
2108
- ...props
2109
- }
2110
- );
2111
- }
2112
- function MessageHeader({ className, ...props }) {
2113
- return /* @__PURE__ */ jsx(
2114
- "div",
2115
- {
2116
- "data-slot": "message-header",
2117
- className: cn(
2118
- "flex max-w-full min-w-0 items-center px-2.5 text-xs font-medium text-muted-foreground group-has-data-[variant=ghost]/message:px-0",
2119
- className
2120
- ),
2121
- ...props
2122
- }
2123
- );
2124
- }
2125
- function MessageFooter({ className, ...props }) {
2126
- return /* @__PURE__ */ jsx(
2127
- "div",
2128
- {
2129
- "data-slot": "message-footer",
2130
- className: cn(
2131
- "flex max-w-full min-w-0 items-center px-2.5 text-xs font-medium text-muted-foreground group-has-data-[variant=ghost]/message:px-0 group-data-[align=end]/message:justify-end",
2132
- className
2133
- ),
2134
- ...props
2135
- }
2136
- );
2137
- }
2138
- function MessageScrollerProvider(props) {
2139
- return /* @__PURE__ */ jsx(MessageScroller$1.Provider, { ...props });
2140
- }
2141
- function MessageScroller({
2142
- className,
2143
- ...props
2144
- }) {
2145
- return /* @__PURE__ */ jsx(
2146
- MessageScroller$1.Root,
2147
- {
2148
- "data-slot": "message-scroller",
2149
- className: cn(
2150
- "group/message-scroller relative flex size-full min-h-0 flex-col overflow-hidden",
2151
- className
2152
- ),
2153
- ...props
2154
- }
2155
- );
2156
- }
2157
- function MessageScrollerViewport({
2158
- className,
2159
- ...props
2160
- }) {
2161
- return /* @__PURE__ */ jsx(
2162
- MessageScroller$1.Viewport,
2163
- {
2164
- "data-slot": "message-scroller-viewport",
2165
- className: cn(
2166
- "size-full min-h-0 min-w-0 scroll-fade-b scrollbar-thin scrollbar-gutter-stable overflow-y-auto overscroll-contain contain-content data-autoscrolling:scrollbar-thumb-transparent data-autoscrolling:scrollbar-track-transparent",
2167
- className
2168
- ),
2169
- ...props
2170
- }
2171
- );
2172
- }
2173
- function MessageScrollerContent({
2174
- className,
2175
- ...props
2176
- }) {
2177
- return /* @__PURE__ */ jsx(
2178
- MessageScroller$1.Content,
2179
- {
2180
- "data-slot": "message-scroller-content",
2181
- className: cn("flex h-max min-h-full flex-col gap-6", className),
2182
- ...props
2183
- }
2184
- );
2185
- }
2186
- function MessageScrollerItem({
2187
- className,
2188
- scrollAnchor = false,
2189
- ...props
2190
- }) {
2191
- return /* @__PURE__ */ jsx(
2192
- MessageScroller$1.Item,
2193
- {
2194
- "data-slot": "message-scroller-item",
2195
- scrollAnchor,
2196
- className: cn(
2197
- "min-w-0 shrink-0 [contain-intrinsic-size:auto_10rem] [content-visibility:auto]",
2198
- className
2199
- ),
2200
- ...props
2201
- }
2202
- );
2203
- }
2204
- function MessageScrollerButton({
2205
- direction = "end",
2206
- className,
2207
- children,
2208
- render,
2209
- variant = "secondary",
2210
- size = "icon-sm",
2211
- ...props
2212
- }) {
2213
- return /* @__PURE__ */ jsx(
2214
- MessageScroller$1.Button,
2215
- {
2216
- "data-slot": "message-scroller-button",
2217
- "data-direction": direction,
2218
- "data-variant": variant,
2219
- "data-size": size,
2220
- direction,
2221
- className: cn(
2222
- "absolute inset-s-1/2 -translate-x-1/2 border-border bg-background text-foreground transition-[translate,scale,opacity] duration-200 hover:bg-muted hover:text-foreground data-[active=false]:pointer-events-none data-[active=false]:scale-95 data-[active=false]:opacity-0 data-[active=false]:duration-400 data-[active=false]:ease-[cubic-bezier(0.7,0,0.84,0)] data-[active=true]:translate-y-0 data-[active=true]:scale-100 data-[active=true]:opacity-100 data-[active=true]:ease-[cubic-bezier(0.23,1,0.32,1)] data-[direction=end]:bottom-4 data-[direction=end]:data-[active=false]:translate-y-full data-[direction=start]:top-4 data-[direction=start]:data-[active=false]:-translate-y-full rtl:translate-x-1/2 data-[direction=start]:[&_svg]:rotate-180",
2223
- className
2224
- ),
2225
- render: render ?? /* @__PURE__ */ jsx(Button, { variant, size }),
2226
- ...props,
2227
- children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
2228
- /* @__PURE__ */ jsx(
2229
- ArrowDownIcon,
2230
- {}
2231
- ),
2232
- /* @__PURE__ */ jsx("span", { className: "sr-only", children: direction === "end" ? "Scroll to end" : "Scroll to start" })
2233
- ] })
2234
- }
2235
- );
2236
- }
2237
- function NavigationMenu({
2238
- className,
2239
- children,
2240
- viewport = true,
2241
- ...props
2242
- }) {
2243
- return /* @__PURE__ */ jsxs(
2244
- NavigationMenu$1.Root,
2245
- {
2246
- "data-slot": "navigation-menu",
2247
- "data-viewport": viewport,
2248
- className: cn(
2249
- "group/navigation-menu relative flex max-w-max flex-1 items-center justify-center",
2250
- className
2251
- ),
2252
- ...props,
2253
- children: [
2254
- children,
2255
- viewport && /* @__PURE__ */ jsx(NavigationMenuViewport, {})
2256
- ]
2257
- }
2258
- );
2259
- }
2260
- function NavigationMenuList({
2261
- className,
2262
- ...props
2263
- }) {
2264
- return /* @__PURE__ */ jsx(
2265
- NavigationMenu$1.List,
2266
- {
2267
- "data-slot": "navigation-menu-list",
2268
- className: cn(
2269
- "group flex flex-1 list-none items-center justify-center gap-0",
2270
- className
2271
- ),
2272
- ...props
2273
- }
2274
- );
2275
- }
2276
- function NavigationMenuItem({
2277
- className,
2278
- ...props
2279
- }) {
2280
- return /* @__PURE__ */ jsx(
2281
- NavigationMenu$1.Item,
2282
- {
2283
- "data-slot": "navigation-menu-item",
2284
- className: cn("relative", className),
2285
- ...props
2286
- }
2287
- );
2288
- }
2289
- var navigationMenuTriggerStyle = cva(
2290
- "group/navigation-menu-trigger inline-flex h-9 w-max items-center justify-center rounded-none px-2.5 py-1.5 text-xs font-medium transition-all outline-none hover:bg-muted focus:bg-muted focus-visible:ring-1 focus-visible:ring-ring/50 focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-popup-open:bg-muted/50 data-popup-open:hover:bg-muted data-open:bg-muted/50 data-open:hover:bg-muted data-open:focus:bg-muted"
2291
- );
2292
- function NavigationMenuTrigger({
2293
- className,
2294
- children,
2295
- ...props
2296
- }) {
2297
- return /* @__PURE__ */ jsxs(
2298
- NavigationMenu$1.Trigger,
2299
- {
2300
- "data-slot": "navigation-menu-trigger",
2301
- className: cn(navigationMenuTriggerStyle(), "group", className),
2302
- ...props,
2303
- children: [
2304
- children,
2305
- " ",
2306
- /* @__PURE__ */ jsx(ChevronDownIcon, { className: "relative top-px ml-1 size-3 transition duration-300 group-data-popup-open/navigation-menu-trigger:rotate-180 group-data-open/navigation-menu-trigger:rotate-180", "aria-hidden": "true" })
2307
- ]
2308
- }
2309
- );
2310
- }
2311
- function NavigationMenuContent({
2312
- className,
2313
- ...props
2314
- }) {
2315
- return /* @__PURE__ */ jsx(
2316
- NavigationMenu$1.Content,
2317
- {
2318
- "data-slot": "navigation-menu-content",
2319
- className: cn(
2320
- "top-0 left-0 w-full p-1 ease-[cubic-bezier(0.22,1,0.36,1)] group-data-[viewport=false]/navigation-menu:top-full group-data-[viewport=false]/navigation-menu:mt-1.5 group-data-[viewport=false]/navigation-menu:overflow-hidden group-data-[viewport=false]/navigation-menu:rounded-none group-data-[viewport=false]/navigation-menu:bg-popover group-data-[viewport=false]/navigation-menu:text-popover-foreground group-data-[viewport=false]/navigation-menu:shadow group-data-[viewport=false]/navigation-menu:ring-1 group-data-[viewport=false]/navigation-menu:ring-foreground/10 group-data-[viewport=false]/navigation-menu:duration-300 data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 data-[motion^=from-]:animate-in data-[motion^=from-]:fade-in data-[motion^=to-]:animate-out data-[motion^=to-]:fade-out **:data-[slot=navigation-menu-link]:focus:ring-0 **:data-[slot=navigation-menu-link]:focus:outline-none md:absolute md:w-auto group-data-[viewport=false]/navigation-menu:data-open:animate-in group-data-[viewport=false]/navigation-menu:data-open:fade-in-0 group-data-[viewport=false]/navigation-menu:data-open:zoom-in-95 group-data-[viewport=false]/navigation-menu:data-closed:animate-out group-data-[viewport=false]/navigation-menu:data-closed:fade-out-0 group-data-[viewport=false]/navigation-menu:data-closed:zoom-out-95",
2321
- className
2322
- ),
2323
- ...props
2324
- }
2325
- );
2326
- }
2327
- function NavigationMenuViewport({
2328
- className,
2329
- ...props
2330
- }) {
2331
- return /* @__PURE__ */ jsx(
2332
- "div",
2333
- {
2334
- className: cn(
2335
- "absolute top-full left-0 isolate z-50 flex justify-center"
2336
- ),
2337
- children: /* @__PURE__ */ jsx(
2338
- NavigationMenu$1.Viewport,
2339
- {
2340
- "data-slot": "navigation-menu-viewport",
2341
- className: cn(
2342
- "origin-top-center relative mt-1.5 h-(--radix-navigation-menu-viewport-height) w-full overflow-hidden rounded-none bg-popover text-popover-foreground shadow ring-1 ring-foreground/10 duration-100 md:w-(--radix-navigation-menu-viewport-width) data-open:animate-in data-open:zoom-in-90 data-closed:animate-out data-closed:zoom-out-90",
2343
- className
2344
- ),
2345
- ...props
2346
- }
2347
- )
2348
- }
2349
- );
2350
- }
2351
- function NavigationMenuLink({
2352
- className,
2353
- ...props
2354
- }) {
2355
- return /* @__PURE__ */ jsx(
2356
- NavigationMenu$1.Link,
2357
- {
2358
- "data-slot": "navigation-menu-link",
2359
- className: cn(
2360
- "flex items-center gap-2 rounded-none p-2 text-xs transition-all outline-none hover:bg-muted focus:bg-muted focus-visible:ring-1 focus-visible:ring-ring/50 focus-visible:outline-1 in-data-[slot=navigation-menu-content]:rounded-none data-active:bg-muted/50 data-active:hover:bg-muted data-active:focus:bg-muted [&_svg:not([class*='size-'])]:size-4",
2361
- className
2362
- ),
2363
- ...props
2364
- }
2365
- );
2366
- }
2367
- function NavigationMenuIndicator({
2368
- className,
2369
- ...props
2370
- }) {
2371
- return /* @__PURE__ */ jsx(
2372
- NavigationMenu$1.Indicator,
2373
- {
2374
- "data-slot": "navigation-menu-indicator",
2375
- className: cn(
2376
- "top-full z-1 flex h-1.5 items-end justify-center overflow-hidden data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:animate-in data-[state=visible]:fade-in",
2377
- className
2378
- ),
2379
- ...props,
2380
- children: /* @__PURE__ */ jsx("div", { className: "relative top-[60%] h-2 w-2 rotate-45 rounded-none bg-border shadow-md" })
2381
- }
2382
- );
2383
- }
2384
- function Pagination({ className, ...props }) {
2385
- return /* @__PURE__ */ jsx(
2386
- "nav",
2387
- {
2388
- role: "navigation",
2389
- "aria-label": "pagination",
2390
- "data-slot": "pagination",
2391
- className: cn("mx-auto flex w-full justify-center", className),
2392
- ...props
2393
- }
2394
- );
2395
- }
2396
- function PaginationContent({
2397
- className,
2398
- ...props
2399
- }) {
2400
- return /* @__PURE__ */ jsx(
2401
- "ul",
2402
- {
2403
- "data-slot": "pagination-content",
2404
- className: cn("flex items-center gap-0.5", className),
2405
- ...props
2406
- }
2407
- );
2408
- }
2409
- function PaginationItem({ ...props }) {
2410
- return /* @__PURE__ */ jsx("li", { "data-slot": "pagination-item", ...props });
2411
- }
2412
- function PaginationLink({
2413
- className,
2414
- isActive,
2415
- size = "icon",
2416
- ...props
2417
- }) {
2418
- return /* @__PURE__ */ jsx(
2419
- Button,
2420
- {
2421
- asChild: true,
2422
- variant: isActive ? "outline" : "ghost",
2423
- size,
2424
- className: cn(className),
2425
- children: /* @__PURE__ */ jsx(
2426
- "a",
2427
- {
2428
- "aria-current": isActive ? "page" : void 0,
2429
- "data-slot": "pagination-link",
2430
- "data-active": isActive,
2431
- ...props
2432
- }
2433
- )
2434
- }
2435
- );
2436
- }
2437
- function PaginationPrevious({
2438
- className,
2439
- text = "Previous",
2440
- ...props
2441
- }) {
2442
- return /* @__PURE__ */ jsxs(
2443
- PaginationLink,
2444
- {
2445
- "aria-label": "Go to previous page",
2446
- size: "default",
2447
- className: cn("pl-1.5!", className),
2448
- ...props,
2449
- children: [
2450
- /* @__PURE__ */ jsx(ChevronLeftIcon, { "data-icon": "inline-start" }),
2451
- /* @__PURE__ */ jsx("span", { className: "hidden sm:block", children: text })
2452
- ]
2453
- }
2454
- );
2455
- }
2456
- function PaginationNext({
2457
- className,
2458
- text = "Next",
2459
- ...props
2460
- }) {
2461
- return /* @__PURE__ */ jsxs(
2462
- PaginationLink,
2463
- {
2464
- "aria-label": "Go to next page",
2465
- size: "default",
2466
- className: cn("pr-1.5!", className),
2467
- ...props,
2468
- children: [
2469
- /* @__PURE__ */ jsx("span", { className: "hidden sm:block", children: text }),
2470
- /* @__PURE__ */ jsx(ChevronRightIcon, { "data-icon": "inline-end" })
2471
- ]
2472
- }
2473
- );
2474
- }
2475
- function PaginationEllipsis({
2476
- className,
2477
- ...props
2478
- }) {
2479
- return /* @__PURE__ */ jsxs(
2480
- "span",
2481
- {
2482
- "aria-hidden": true,
2483
- "data-slot": "pagination-ellipsis",
2484
- className: cn(
2485
- "flex size-8 items-center justify-center [&_svg:not([class*='size-'])]:size-4",
2486
- className
2487
- ),
2488
- ...props,
2489
- children: [
2490
- /* @__PURE__ */ jsx(
2491
- MoreHorizontalIcon,
2492
- {}
2493
- ),
2494
- /* @__PURE__ */ jsx("span", { className: "sr-only", children: "More pages" })
2495
- ]
2496
- }
2497
- );
2498
- }
2499
- function ResizablePanelGroup({
2500
- className,
2501
- ...props
2502
- }) {
2503
- return /* @__PURE__ */ jsx(
2504
- ResizablePrimitive.Group,
2505
- {
2506
- "data-slot": "resizable-panel-group",
2507
- className: cn(
2508
- "flex h-full w-full aria-[orientation=vertical]:flex-col",
2509
- className
2510
- ),
2511
- ...props
2512
- }
2513
- );
2514
- }
2515
- function ResizablePanel({ ...props }) {
2516
- return /* @__PURE__ */ jsx(ResizablePrimitive.Panel, { "data-slot": "resizable-panel", ...props });
2517
- }
2518
- function ResizableHandle({
2519
- withHandle,
2520
- className,
2521
- ...props
2522
- }) {
2523
- return /* @__PURE__ */ jsx(
2524
- ResizablePrimitive.Separator,
2525
- {
2526
- "data-slot": "resizable-handle",
2527
- className: cn(
2528
- "relative flex w-px items-center justify-center bg-border ring-offset-background after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-ring focus-visible:outline-hidden aria-[orientation=horizontal]:h-px aria-[orientation=horizontal]:w-full aria-[orientation=horizontal]:after:left-0 aria-[orientation=horizontal]:after:h-1 aria-[orientation=horizontal]:after:w-full aria-[orientation=horizontal]:after:translate-x-0 aria-[orientation=horizontal]:after:-translate-y-1/2 [&[aria-orientation=horizontal]>div]:rotate-90",
2529
- className
2530
- ),
2531
- ...props,
2532
- children: withHandle && /* @__PURE__ */ jsx("div", { className: "z-10 flex h-6 w-1 shrink-0 rounded-none bg-border" })
2533
- }
2534
- );
2535
- }
2536
- function Select({
2537
- ...props
2538
- }) {
2539
- return /* @__PURE__ */ jsx(Select$1.Root, { "data-slot": "select", ...props });
2540
- }
2541
- function SelectGroup({
2542
- className,
2543
- ...props
2544
- }) {
2545
- return /* @__PURE__ */ jsx(
2546
- Select$1.Group,
2547
- {
2548
- "data-slot": "select-group",
2549
- className: cn("scroll-my-1", className),
2550
- ...props
2551
- }
2552
- );
2553
- }
2554
- function SelectValue({
2555
- ...props
2556
- }) {
2557
- return /* @__PURE__ */ jsx(Select$1.Value, { "data-slot": "select-value", ...props });
2558
- }
2559
- function SelectTrigger({
2560
- className,
2561
- size = "default",
2562
- children,
2563
- ...props
2564
- }) {
2565
- return /* @__PURE__ */ jsxs(
2566
- Select$1.Trigger,
2567
- {
2568
- "data-slot": "select-trigger",
2569
- "data-size": size,
2570
- className: cn(
2571
- "flex w-fit items-center justify-between gap-1.5 rounded-none border border-input bg-transparent py-2 pr-2 pl-2.5 text-xs whitespace-nowrap transition-colors outline-none select-none focus-visible:border-ring focus-visible:ring-1 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-1 aria-invalid:ring-destructive/20 data-placeholder:text-muted-foreground data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-none *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
2572
- className
2573
- ),
2574
- ...props,
2575
- children: [
2576
- children,
2577
- /* @__PURE__ */ jsx(Select$1.Icon, { asChild: true, children: /* @__PURE__ */ jsx(ChevronDownIcon, { className: "pointer-events-none size-4 text-muted-foreground" }) })
2578
- ]
2579
- }
2580
- );
2581
- }
2582
- function SelectContent({
2583
- className,
2584
- children,
2585
- position = "item-aligned",
2586
- align = "center",
2587
- ...props
2588
- }) {
2589
- return /* @__PURE__ */ jsx(Select$1.Portal, { children: /* @__PURE__ */ jsxs(
2590
- Select$1.Content,
2591
- {
2592
- "data-slot": "select-content",
2593
- "data-align-trigger": position === "item-aligned",
2594
- className: cn("relative z-50 max-h-(--radix-select-content-available-height) min-w-36 origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-none bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[align-trigger=true]:animate-none data-[side=bottom]:slide-in-from-top-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 data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", position === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1", className),
2595
- position,
2596
- align,
2597
- ...props,
2598
- children: [
2599
- /* @__PURE__ */ jsx(SelectScrollUpButton, {}),
2600
- /* @__PURE__ */ jsx(
2601
- Select$1.Viewport,
2602
- {
2603
- "data-position": position,
2604
- className: cn(
2605
- "data-[position=popper]:h-(--radix-select-trigger-height) data-[position=popper]:w-full data-[position=popper]:min-w-(--radix-select-trigger-width)",
2606
- position === "popper" && ""
2607
- ),
2608
- children
2609
- }
2610
- ),
2611
- /* @__PURE__ */ jsx(SelectScrollDownButton, {})
2612
- ]
2613
- }
2614
- ) });
2615
- }
2616
- function SelectLabel({
2617
- className,
2618
- ...props
2619
- }) {
2620
- return /* @__PURE__ */ jsx(
2621
- Select$1.Label,
2622
- {
2623
- "data-slot": "select-label",
2624
- className: cn("px-2 py-2 text-xs text-muted-foreground", className),
2625
- ...props
2626
- }
2627
- );
2628
- }
2629
- function SelectItem({
2630
- className,
2631
- children,
2632
- ...props
2633
- }) {
2634
- return /* @__PURE__ */ jsxs(
2635
- Select$1.Item,
2636
- {
2637
- "data-slot": "select-item",
2638
- className: cn(
2639
- "relative flex w-full cursor-default items-center gap-2 rounded-none py-2 pr-8 pl-2 text-xs outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",
2640
- className
2641
- ),
2642
- ...props,
2643
- children: [
2644
- /* @__PURE__ */ jsx("span", { className: "pointer-events-none absolute right-2 flex size-4 items-center justify-center", children: /* @__PURE__ */ jsx(Select$1.ItemIndicator, { children: /* @__PURE__ */ jsx(CheckIcon, { className: "pointer-events-none" }) }) }),
2645
- /* @__PURE__ */ jsx(Select$1.ItemText, { children })
2646
- ]
2647
- }
2648
- );
2649
- }
2650
- function SelectSeparator({
2651
- className,
2652
- ...props
2653
- }) {
2654
- return /* @__PURE__ */ jsx(
2655
- Select$1.Separator,
2656
- {
2657
- "data-slot": "select-separator",
2658
- className: cn("pointer-events-none -mx-1 h-px bg-border", className),
2659
- ...props
2660
- }
2661
- );
2662
- }
2663
- function SelectScrollUpButton({
2664
- className,
2665
- ...props
2666
- }) {
2667
- return /* @__PURE__ */ jsx(
2668
- Select$1.ScrollUpButton,
2669
- {
2670
- "data-slot": "select-scroll-up-button",
2671
- className: cn(
2672
- "z-10 flex cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4",
2673
- className
2674
- ),
2675
- ...props,
2676
- children: /* @__PURE__ */ jsx(
2677
- ChevronUpIcon,
2678
- {}
2679
- )
2680
- }
2681
- );
2682
- }
2683
- function SelectScrollDownButton({
2684
- className,
2685
- ...props
2686
- }) {
2687
- return /* @__PURE__ */ jsx(
2688
- Select$1.ScrollDownButton,
2689
- {
2690
- "data-slot": "select-scroll-down-button",
2691
- className: cn(
2692
- "z-10 flex cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4",
2693
- className
2694
- ),
2695
- ...props,
2696
- children: /* @__PURE__ */ jsx(
2697
- ChevronDownIcon,
2698
- {}
2699
- )
2700
- }
2701
- );
2702
- }
2703
- function Slider({
2704
- className,
2705
- defaultValue,
2706
- value,
2707
- min = 0,
2708
- max = 100,
2709
- "aria-label": ariaLabel,
2710
- "aria-labelledby": ariaLabelledby,
2711
- "aria-valuetext": ariaValuetext,
2712
- ...props
2713
- }) {
2714
- const _values = React6.useMemo(
2715
- () => Array.isArray(value) ? value : Array.isArray(defaultValue) ? defaultValue : [min, max],
2716
- [value, defaultValue, min, max]
2717
- );
2718
- const single = _values.length === 1;
2719
- const naming = { "aria-label": ariaLabel, "aria-labelledby": ariaLabelledby, "aria-valuetext": ariaValuetext };
2720
- return /* @__PURE__ */ jsxs(
2721
- Slider$1.Root,
2722
- {
2723
- "data-slot": "slider",
2724
- defaultValue,
2725
- value,
2726
- min,
2727
- max,
2728
- className: cn(
2729
- "relative flex w-full touch-none items-center select-none data-disabled:opacity-50 data-vertical:h-full data-vertical:min-h-40 data-vertical:w-auto data-vertical:flex-col",
2730
- className
2731
- ),
2732
- ...single ? {} : naming,
2733
- ...props,
2734
- children: [
2735
- /* @__PURE__ */ jsx(
2736
- Slider$1.Track,
2737
- {
2738
- "data-slot": "slider-track",
2739
- className: "relative grow overflow-hidden rounded-none bg-muted data-horizontal:h-1 data-horizontal:w-full data-vertical:h-full data-vertical:w-1",
2740
- children: /* @__PURE__ */ jsx(
2741
- Slider$1.Range,
2742
- {
2743
- "data-slot": "slider-range",
2744
- className: "absolute bg-primary select-none data-horizontal:h-full data-vertical:w-full"
2745
- }
2746
- )
2747
- }
2748
- ),
2749
- Array.from({ length: _values.length }, (_, index) => /* @__PURE__ */ jsx(
2750
- Slider$1.Thumb,
2751
- {
2752
- "data-slot": "slider-thumb",
2753
- ...single ? naming : {},
2754
- className: "relative block size-3 shrink-0 rounded-none border border-ring bg-white ring-ring/50 transition-[color,box-shadow] select-none after:absolute after:-inset-2 hover:ring-1 focus-visible:ring-1 focus-visible:outline-hidden active:ring-1 disabled:pointer-events-none disabled:opacity-50"
2755
- },
2756
- index
2757
- ))
2758
- ]
2759
- }
2760
- );
2761
- }
2762
- function Tabs({
2763
- className,
2764
- orientation = "horizontal",
2765
- ...props
2766
- }) {
2767
- return /* @__PURE__ */ jsx(
2768
- Tabs$1.Root,
2769
- {
2770
- "data-slot": "tabs",
2771
- "data-orientation": orientation,
2772
- className: cn(
2773
- "group/tabs flex gap-2 data-horizontal:flex-col",
2774
- className
2775
- ),
2776
- ...props
2777
- }
2778
- );
2779
- }
2780
- var tabsListVariants = cva(
2781
- "group/tabs-list inline-flex w-fit items-center justify-center rounded-none p-[3px] text-muted-foreground group-data-horizontal/tabs:h-8 group-data-vertical/tabs:h-fit group-data-vertical/tabs:flex-col data-[variant=line]:rounded-none",
2782
- {
2783
- variants: {
2784
- variant: {
2785
- default: "bg-muted",
2786
- line: "gap-1 bg-transparent"
2787
- }
2788
- },
2789
- defaultVariants: {
2790
- variant: "default"
2791
- }
2792
- }
2793
- );
2794
- function TabsList({
2795
- className,
2796
- variant = "default",
2797
- ...props
2798
- }) {
2799
- return /* @__PURE__ */ jsx(
2800
- Tabs$1.List,
2801
- {
2802
- "data-slot": "tabs-list",
2803
- "data-variant": variant,
2804
- className: cn(tabsListVariants({ variant }), className),
2805
- ...props
2806
- }
2807
- );
2808
- }
2809
- function TabsTrigger({
2810
- className,
2811
- ...props
2812
- }) {
2813
- return /* @__PURE__ */ jsx(
2814
- Tabs$1.Trigger,
2815
- {
2816
- "data-slot": "tabs-trigger",
2817
- className: cn(
2818
- "relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-none border border-transparent px-1.5 py-0.5 text-xs font-medium whitespace-nowrap text-foreground/60 transition-all group-data-vertical/tabs:w-full group-data-vertical/tabs:justify-start group-data-vertical/tabs:py-[calc(--spacing(1.25))] 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 dark:text-muted-foreground dark:hover:text-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
2819
- "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",
2820
- "data-active:bg-background data-active:text-foreground dark:data-active:border-input dark:data-active:bg-input/30 dark:data-active:text-foreground",
2821
- "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",
2822
- className
2823
- ),
2824
- ...props
2825
- }
2826
- );
2827
- }
2828
- function TabsContent({
2829
- className,
2830
- ...props
2831
- }) {
2832
- return /* @__PURE__ */ jsx(
2833
- Tabs$1.Content,
2834
- {
2835
- "data-slot": "tabs-content",
2836
- className: cn("flex-1 text-xs/relaxed outline-none", className),
2837
- ...props
2838
- }
2839
- );
2840
- }
2841
- var toast = Toast$1.createToastManager();
2842
- function ToastProvider({ ...props }) {
2843
- return /* @__PURE__ */ jsx(Toast$1.Provider, { ...props });
2844
- }
2845
- function ToastPortal({ ...props }) {
2846
- return /* @__PURE__ */ jsx(Toast$1.Portal, { "data-slot": "toast-portal", ...props });
2847
- }
2848
- function ToastViewport({ className, ...props }) {
2849
- return /* @__PURE__ */ jsx(
2850
- Toast$1.Viewport,
2851
- {
2852
- "data-slot": "toast-viewport",
2853
- className: cn(
2854
- "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",
2855
- className
2856
- ),
2857
- ...props
2858
- }
2859
- );
2860
- }
2861
- function Toast({ className, ...props }) {
2862
- return /* @__PURE__ */ jsx(
2863
- Toast$1.Root,
2864
- {
2865
- "data-slot": "toast",
2866
- className: cn(
2867
- "group/toast pointer-events-auto absolute right-0 bottom-0 z-[calc(1000-var(--toast-index))] w-full origin-bottom rounded-none 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",
2868
- "[--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))]",
2869
- "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_500ms_cubic-bezier(0.22,1,0.36,1),opacity_500ms,height_150ms]",
2870
- "after:absolute after:top-full after:left-0 after:h-[calc(var(--gap)+1px)] after:w-full after:content-['']",
2871
- "data-expanded:h-(--toast-height) data-expanded:[transform:translateX(var(--toast-swipe-movement-x))_translateY(var(--offset-y))]",
2872
- "data-limited:opacity-0 data-starting-style:[transform:translateY(150%)]",
2873
- "[&[data-ending-style]:not([data-limited]):not([data-swipe-direction])]:[transform:translateY(150%)]",
2874
- "data-ending-style:data-[swipe-direction=down]:[transform:translateY(calc(var(--toast-swipe-movement-y)+150%))]",
2875
- "data-ending-style:data-[swipe-direction=left]:[transform:translateX(calc(var(--toast-swipe-movement-x)-150%))_translateY(var(--offset-y))]",
2876
- "data-ending-style:data-[swipe-direction=right]:[transform:translateX(calc(var(--toast-swipe-movement-x)+150%))_translateY(var(--offset-y))]",
2877
- "data-ending-style:data-[swipe-direction=up]:[transform:translateY(calc(var(--toast-swipe-movement-y)-150%))]",
2878
- "data-expanded:data-ending-style:data-[swipe-direction=down]:[transform:translateY(calc(var(--toast-swipe-movement-y)+150%))]",
2879
- "data-expanded:data-ending-style:data-[swipe-direction=left]:[transform:translateX(calc(var(--toast-swipe-movement-x)-150%))_translateY(var(--offset-y))]",
2880
- "data-expanded:data-ending-style:data-[swipe-direction=right]:[transform:translateX(calc(var(--toast-swipe-movement-x)+150%))_translateY(var(--offset-y))]",
2881
- "data-expanded:data-ending-style:data-[swipe-direction=up]:[transform:translateY(calc(var(--toast-swipe-movement-y)-150%))]",
2882
- className
2883
- ),
2884
- ...props
2885
- }
2886
- );
2887
- }
2888
- function ToastContent({ className, ...props }) {
2889
- return /* @__PURE__ */ jsx(
2890
- Toast$1.Content,
2891
- {
2892
- "data-slot": "toast-content",
2893
- className: cn(
2894
- "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",
2895
- className
2896
- ),
2897
- ...props
2898
- }
2899
- );
2900
- }
2901
- function ToastTitle({ className, ...props }) {
2902
- return /* @__PURE__ */ jsx(
2903
- Toast$1.Title,
2904
- {
2905
- "data-slot": "toast-title",
2906
- className: cn("text-sm font-medium", className),
2907
- ...props
2908
- }
2909
- );
2910
- }
2911
- function ToastDescription({
2912
- className,
2913
- ...props
2914
- }) {
2915
- return /* @__PURE__ */ jsx(
2916
- Toast$1.Description,
2917
- {
2918
- "data-slot": "toast-description",
2919
- className: cn("text-sm text-muted-foreground", className),
2920
- ...props
2921
- }
2922
- );
2923
- }
2924
- function ToastAction({
2925
- className,
2926
- render = /* @__PURE__ */ jsx(Button, { variant: "outline", size: "sm" }),
2927
- ...props
2928
- }) {
2929
- return /* @__PURE__ */ jsx(
2930
- Toast$1.Action,
2931
- {
2932
- "data-slot": "toast-action",
2933
- render,
2934
- className: cn("shrink-0", className),
2935
- ...props
2936
- }
2937
- );
2938
- }
2939
- function ToastClose({
2940
- className,
2941
- children,
2942
- render = /* @__PURE__ */ jsx(Button, { variant: "ghost", size: "icon-sm" }),
2943
- ...props
2944
- }) {
2945
- return /* @__PURE__ */ jsx(
2946
- Toast$1.Close,
2947
- {
2948
- "data-slot": "toast-close",
2949
- "aria-label": "Close toast",
2950
- render,
2951
- className: cn(
2952
- "relative shrink-0 text-muted-foreground after:absolute after:-inset-2 after:content-[''] hover:text-foreground",
2953
- className
2954
- ),
2955
- ...props,
2956
- children: children ?? /* @__PURE__ */ jsx(XIcon, { "aria-hidden": "true" })
2957
- }
2958
- );
2959
- }
2960
- function ToastIcon({ type }) {
2961
- let icon = null;
2962
- if (type === "success") {
2963
- icon = /* @__PURE__ */ jsx(CircleCheckIcon, { "aria-hidden": "true" });
2964
- }
2965
- if (type === "info") {
2966
- icon = /* @__PURE__ */ jsx(InfoIcon, { "aria-hidden": "true" });
2967
- }
2968
- if (type === "warning") {
2969
- icon = /* @__PURE__ */ jsx(TriangleAlertIcon, { "aria-hidden": "true" });
2970
- }
2971
- if (type === "error") {
2972
- icon = /* @__PURE__ */ jsx(OctagonXIcon, { className: "text-destructive", "aria-hidden": "true" });
2973
- }
2974
- if (type === "loading") {
2975
- icon = /* @__PURE__ */ jsx(Loader2Icon, { className: "animate-spin", "aria-hidden": "true" });
2976
- }
2977
- if (!icon) {
2978
- return null;
2979
- }
2980
- return /* @__PURE__ */ jsx(
2981
- "span",
2982
- {
2983
- "data-slot": "toast-icon",
2984
- className: "shrink-0 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4",
2985
- children: icon
2986
- }
2987
- );
2988
- }
2989
- function ToastList() {
2990
- const { toasts } = Toast$1.useToastManager();
2991
- return toasts.map((toastItem) => /* @__PURE__ */ jsx(Toast, { toast: toastItem, children: /* @__PURE__ */ jsxs(ToastContent, { children: [
2992
- /* @__PURE__ */ jsx(ToastIcon, { type: toastItem.type }),
2993
- /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-1 flex-col gap-1", children: [
2994
- /* @__PURE__ */ jsx(ToastTitle, {}),
2995
- /* @__PURE__ */ jsx(ToastDescription, {})
2996
- ] }),
2997
- /* @__PURE__ */ jsx(ToastAction, {}),
2998
- /* @__PURE__ */ jsx(ToastClose, {})
2999
- ] }) }, toastItem.id));
3000
- }
3001
- function Toaster({
3002
- children,
3003
- toastManager = toast,
3004
- ...props
3005
- }) {
3006
- return /* @__PURE__ */ jsxs(ToastProvider, { toastManager, ...props, children: [
3007
- children,
3008
- /* @__PURE__ */ jsx(ToastPortal, { children: /* @__PURE__ */ jsx(ToastViewport, { children: /* @__PURE__ */ jsx(ToastList, {}) }) })
3009
- ] });
3010
- }
3011
- var createToastManager = Toast$1.createToastManager;
3012
- var useToastManager = Toast$1.useToastManager;
3013
- var toggleVariants = cva(
3014
- "group/toggle inline-flex items-center justify-center gap-1 rounded-none text-xs font-medium whitespace-nowrap transition-all outline-none hover:bg-muted hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 aria-pressed:bg-muted data-[state=on]:bg-muted dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
3015
- {
3016
- variants: {
3017
- variant: {
3018
- default: "bg-transparent",
3019
- outline: "border border-input bg-transparent hover:bg-muted"
3020
- },
3021
- size: {
3022
- default: "h-8 min-w-8 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",
3023
- sm: "h-7 min-w-7 rounded-none px-2.5 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5",
3024
- lg: "h-9 min-w-9 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2"
3025
- }
3026
- },
3027
- defaultVariants: {
3028
- variant: "default",
3029
- size: "default"
3030
- }
3031
- }
3032
- );
3033
- function Toggle({
3034
- className,
3035
- variant = "default",
3036
- size = "default",
3037
- ...props
3038
- }) {
3039
- return /* @__PURE__ */ jsx(
3040
- Toggle$1.Root,
3041
- {
3042
- "data-slot": "toggle",
3043
- className: cn(toggleVariants({ variant, size, className })),
3044
- ...props
3045
- }
3046
- );
3047
- }
3048
- var ToggleGroupContext = React6.createContext({
3049
- size: "default",
3050
- variant: "default",
3051
- spacing: 2,
3052
- orientation: "horizontal"
3053
- });
3054
- function ToggleGroup({
3055
- className,
3056
- variant,
3057
- size,
3058
- spacing = 2,
3059
- orientation = "horizontal",
3060
- children,
3061
- ...props
3062
- }) {
3063
- return /* @__PURE__ */ jsx(
3064
- ToggleGroup$1.Root,
3065
- {
3066
- "data-slot": "toggle-group",
3067
- "data-variant": variant,
3068
- "data-size": size,
3069
- "data-spacing": spacing,
3070
- "data-orientation": orientation,
3071
- style: { "--gap": spacing },
3072
- className: cn(
3073
- "group/toggle-group flex w-fit flex-row items-center gap-[--spacing(var(--gap))] rounded-none data-[size=sm]:rounded-none data-vertical:flex-col data-vertical:items-stretch",
3074
- className
3075
- ),
3076
- ...props,
3077
- children: /* @__PURE__ */ jsx(
3078
- ToggleGroupContext.Provider,
3079
- {
3080
- value: { variant, size, spacing, orientation },
3081
- children
3082
- }
3083
- )
3084
- }
3085
- );
3086
- }
3087
- function ToggleGroupItem({
3088
- className,
3089
- children,
3090
- variant = "default",
3091
- size = "default",
3092
- ...props
3093
- }) {
3094
- const context = React6.useContext(ToggleGroupContext);
3095
- return /* @__PURE__ */ jsx(
3096
- ToggleGroup$1.Item,
3097
- {
3098
- "data-slot": "toggle-group-item",
3099
- "data-variant": context.variant || variant,
3100
- "data-size": context.size || size,
3101
- "data-spacing": context.spacing,
3102
- className: cn(
3103
- "shrink-0 group-data-[spacing=0]/toggle-group:rounded-none group-data-[spacing=0]/toggle-group:px-2 focus:z-10 focus-visible:z-10 group-data-[spacing=0]/toggle-group:has-data-[icon=inline-end]:pr-1.5 group-data-[spacing=0]/toggle-group:has-data-[icon=inline-start]:pl-1.5 group-data-horizontal/toggle-group:data-[spacing=0]:first:rounded-none group-data-vertical/toggle-group:data-[spacing=0]:first:rounded-none group-data-horizontal/toggle-group:data-[spacing=0]:last:rounded-none group-data-vertical/toggle-group:data-[spacing=0]:last:rounded-none group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:border-l-0 group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:border-t-0 group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-l group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-t",
3104
- toggleVariants({
3105
- variant: context.variant || variant,
3106
- size: context.size || size
3107
- }),
3108
- className
3109
- ),
3110
- ...props,
3111
- children
3112
- }
3113
- );
3114
- }
3115
- function ActionButton({ pending = false, icon, disabled, children, ...props }) {
3116
- return /* @__PURE__ */ jsxs(
3117
- Button,
3118
- {
3119
- disabled: disabled || pending,
3120
- "aria-busy": pending || void 0,
3121
- ...props,
3122
- children: [
3123
- pending ? /* @__PURE__ */ jsx(Spinner, {}) : icon,
3124
- children
3125
- ]
3126
- }
3127
- );
3128
- }
3129
- var maxWidthClass = {
3130
- sm: "max-w-screen-sm",
3131
- md: "max-w-screen-md",
3132
- lg: "max-w-screen-lg",
3133
- xl: "max-w-screen-xl",
3134
- "2xl": "max-w-screen-2xl"
3135
- };
3136
- function Container({ as: Component = "div", maxWidth = "xl", fluid = false, center, fullHeight = false, className, children, ...props }) {
3137
- const width = !fluid && maxWidth ? maxWidthClass[maxWidth] : "max-w-none";
3138
- return /* @__PURE__ */ jsx(
3139
- Component,
3140
- {
3141
- className: cn(
3142
- "w-full px-4 sm:px-6 lg:px-8",
3143
- width,
3144
- center === "x" && "mx-auto",
3145
- center === "y" && "flex flex-col justify-center",
3146
- center === "both" && "flex items-center justify-center",
3147
- center !== "x" && center != null && fullHeight && "min-h-screen",
3148
- className
3149
- ),
3150
- ...props,
3151
- children
3152
- }
3153
- );
3154
- }
3155
- function EmptyState({ icon, title, description, action, className }) {
3156
- return /* @__PURE__ */ jsxs(Empty, { className, children: [
3157
- /* @__PURE__ */ jsxs(EmptyHeader, { children: [
3158
- icon ? /* @__PURE__ */ jsx(EmptyMedia, { variant: "icon", children: icon }) : null,
3159
- /* @__PURE__ */ jsx(EmptyTitle, { children: title }),
3160
- description ? /* @__PURE__ */ jsx(EmptyDescription, { children: description }) : null
3161
- ] }),
3162
- action ? /* @__PURE__ */ jsx(EmptyContent, { children: action }) : null
3163
- ] });
3164
- }
3165
- var TONE = {
3166
- ok: "text-success border-success/45",
3167
- attention: "text-warning border-warning/45",
3168
- bad: "text-destructive border-destructive/45",
3169
- info: "text-info border-info/45",
3170
- neutral: "text-muted-foreground"
3171
- };
3172
- function StatusBadge({ tone, children, className }) {
3173
- return /* @__PURE__ */ jsxs(Badge, { variant: "outline", className: cn("gap-1.5", TONE[tone], className), children: [
3174
- /* @__PURE__ */ jsx("span", { "aria-hidden": true, className: "size-[5px] shrink-0 bg-current" }),
3175
- children
3176
- ] });
3177
- }
3178
-
3179
- export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActionButton, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AspectRatio, Attachment, AttachmentAction, AttachmentActions, AttachmentContent, AttachmentDescription, AttachmentGroup, AttachmentMedia, AttachmentTitle, AttachmentTrigger, Bubble, BubbleContent, BubbleGroup, BubbleReactions, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, Calendar, CalendarDayButton, Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Container, DirectionProvider, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyState, EmptyTitle, HoverCard, HoverCardContent, HoverCardTrigger, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Kbd, KbdGroup, Marker, MarkerContent, MarkerIcon, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, Message, MessageAvatar, MessageContent, MessageFooter, MessageGroup, MessageHeader, MessageScroller, MessageScrollerButton, MessageScrollerContent, MessageScrollerItem, MessageScrollerProvider, MessageScrollerViewport, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, ResizableHandle, ResizablePanel, ResizablePanelGroup, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Slider, StatusBadge, Tabs, TabsContent, TabsList, TabsTrigger, Toast, ToastAction, ToastClose, ToastContent, ToastDescription, ToastPortal, ToastProvider, ToastTitle, ToastViewport, Toaster, Toggle, ToggleGroup, ToggleGroupItem, buttonGroupVariants, createToastManager, markerVariants, navigationMenuTriggerStyle, tabsListVariants, toast, toggleVariants, useCarousel, useDirection, useToastManager };
10
+ import '../chunk-XH55BHUU.js';
3180
11
  //# sourceMappingURL=index.js.map
3181
12
  //# sourceMappingURL=index.js.map