@akira-io/ui 1.3.0 → 2.0.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.
- package/README.md +2 -2
- package/dist/blocks.d.ts +100 -10
- package/dist/blocks.js +547 -270
- package/dist/blocks.js.map +1 -1
- package/dist/{chunk-IE6VWUSB.js → chunk-2V6HUWST.js} +19 -6
- package/dist/chunk-2V6HUWST.js.map +1 -0
- package/dist/{chunk-UTSTTTH5.js → chunk-3Z2VGVPI.js} +18 -8
- package/dist/chunk-3Z2VGVPI.js.map +1 -0
- package/dist/{chunk-PSJGAZIS.js → chunk-B3L6PRLX.js} +208 -100
- package/dist/chunk-B3L6PRLX.js.map +1 -0
- package/dist/chunk-DE2AJ54R.js +458 -0
- package/dist/chunk-DE2AJ54R.js.map +1 -0
- package/dist/{chunk-QNF4LJVT.js → chunk-E26KKMGS.js} +8 -6
- package/dist/chunk-E26KKMGS.js.map +1 -0
- package/dist/{chunk-O5DZTX7D.js → chunk-EYPM6IMS.js} +30 -34
- package/dist/chunk-EYPM6IMS.js.map +1 -0
- package/dist/chunk-IQMRJXEO.js +5 -4
- package/dist/chunk-IQMRJXEO.js.map +1 -1
- package/dist/{chunk-I5UZAJB4.js → chunk-KHOA4TEI.js} +85 -30
- package/dist/chunk-KHOA4TEI.js.map +1 -0
- package/dist/chunk-L2H5GIF7.js +5 -4
- package/dist/chunk-L2H5GIF7.js.map +1 -1
- package/dist/{chunk-NA33PNQO.js → chunk-SZUXATOF.js} +170 -76
- package/dist/chunk-SZUXATOF.js.map +1 -0
- package/dist/chunk-TM5MN3MI.js +29 -0
- package/dist/chunk-TM5MN3MI.js.map +1 -0
- package/dist/{chunk-7LBWPBVE.js → chunk-UCJTM3UM.js} +259 -248
- package/dist/chunk-UCJTM3UM.js.map +1 -0
- package/dist/{chunk-MCMBS2SB.js → chunk-UXVI326F.js} +15 -8
- package/dist/chunk-UXVI326F.js.map +1 -0
- package/dist/chunk-VA6A4HZ2.js +394 -0
- package/dist/chunk-VA6A4HZ2.js.map +1 -0
- package/dist/{chunk-SBLZ6T3D.js → chunk-YBXRJSR3.js} +15 -7
- package/dist/chunk-YBXRJSR3.js.map +1 -0
- package/dist/code.d.ts +2 -2
- package/dist/code.js +96 -52
- package/dist/code.js.map +1 -1
- package/dist/{context-OwSoVEri.d.ts → context-Soro3B1I.d.ts} +5 -4
- package/dist/editor.d.ts +1 -1
- package/dist/editor.js +135 -52
- package/dist/editor.js.map +1 -1
- package/dist/{field-DWm5NXeV.d.ts → field-C1TdmC2t.d.ts} +1 -1
- package/dist/index.d.ts +14 -11
- package/dist/index.js +1107 -635
- package/dist/index.js.map +1 -1
- package/dist/inertia.d.ts +11 -3
- package/dist/inertia.js +66 -12
- package/dist/inertia.js.map +1 -1
- package/dist/{input-Dxnsxi-f.d.ts → input-B4uEClxB.d.ts} +1 -1
- package/dist/{json-viewer-BARA2RCW.d.ts → json-viewer-Bssv9mTD.d.ts} +1 -1
- package/dist/locales/pt.d.ts +9 -8
- package/dist/locales/pt.js +40 -3
- package/dist/locales/pt.js.map +1 -1
- package/dist/shells.d.ts +46 -5
- package/dist/shells.js +211 -71
- package/dist/shells.js.map +1 -1
- package/dist/{sidebar-Bp6Q46j-.d.ts → sidebar-BLL2tgTt.d.ts} +2 -2
- package/dist/types-1LUmNJf_.d.ts +41 -0
- package/dist/{types-cmBL8zOc.d.ts → types-CMZRvMV5.d.ts} +1 -1
- package/dist/{types-B-eGPoFD.d.ts → types-CfAUvz--.d.ts} +1 -1
- package/package.json +4 -2
- package/theme.css +3 -0
- package/themes/nosferry.css +2 -2
- package/dist/chunk-7LBWPBVE.js.map +0 -1
- package/dist/chunk-I5UZAJB4.js.map +0 -1
- package/dist/chunk-IE6VWUSB.js.map +0 -1
- package/dist/chunk-MCMBS2SB.js.map +0 -1
- package/dist/chunk-NA33PNQO.js.map +0 -1
- package/dist/chunk-NGMG2UWX.js +0 -172
- package/dist/chunk-NGMG2UWX.js.map +0 -1
- package/dist/chunk-O5DZTX7D.js.map +0 -1
- package/dist/chunk-PSJGAZIS.js.map +0 -1
- package/dist/chunk-QNF4LJVT.js.map +0 -1
- package/dist/chunk-SBLZ6T3D.js.map +0 -1
- package/dist/chunk-UTSTTTH5.js.map +0 -1
- package/dist/types-u1qfmJQi.d.ts +0 -28
package/dist/index.js
CHANGED
|
@@ -1,42 +1,203 @@
|
|
|
1
|
-
|
|
2
|
-
export { Alert, AlertDescription, AlertTitle, Calendar, CalendarDayButton, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ConfirmDialog, FieldError, FloatingSheet, FloatingSheetBody, FloatingSheetFooter, FloatingSheetStack, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Switch, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, alertDefaultLabels, confirmDialogDefaultLabels, floatingSheetDefaultLabels, useField } from './chunk-7LBWPBVE.js';
|
|
3
|
-
export { CopyButton, copyButtonLabels } from './chunk-MCMBS2SB.js';
|
|
4
|
-
import { toggleVariants } from './chunk-SBLZ6T3D.js';
|
|
5
|
-
export { Toggle, toggleVariants } from './chunk-SBLZ6T3D.js';
|
|
6
|
-
import { Label } from './chunk-O5DZTX7D.js';
|
|
7
|
-
export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Label } from './chunk-O5DZTX7D.js';
|
|
8
|
-
import { useAppearance } from './chunk-IQMRJXEO.js';
|
|
9
|
-
export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, cardVariants } from './chunk-IE6VWUSB.js';
|
|
10
|
-
import { useUiLabels } from './chunk-QNF4LJVT.js';
|
|
11
|
-
export { UiLocaleProvider, useUiLabels, useUiLocale } from './chunk-QNF4LJVT.js';
|
|
12
|
-
import { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuItem } from './chunk-PSJGAZIS.js';
|
|
13
|
-
export { Avatar, AvatarFallback, AvatarImage, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Collapsible, CollapsibleContent, CollapsibleTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Icon, 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, useSidebar } from './chunk-PSJGAZIS.js';
|
|
14
|
-
import { Input } from './chunk-UTSTTTH5.js';
|
|
15
|
-
export { Input, Separator } from './chunk-UTSTTTH5.js';
|
|
16
|
-
import { cn, focusRing, nestedRadius, nestedSurfaceReset, nestedEdgeToEdge, elevatedSurface, modalSurface, Button, menuSurface, fieldFocus, fieldSurface, floatingSurface, panelSurface, buttonVariants, Spinner } from './chunk-I5UZAJB4.js';
|
|
17
|
-
export { Button, Spinner, buttonVariants, cn, controlFill, elevatedSurface, focusRing, menuHighlight, nestedEdgeToEdge, nestedRadius, nestedSurfaceReset, recessedSurface, spinnerVariants, surface } from './chunk-I5UZAJB4.js';
|
|
18
|
-
import * as React3 from 'react';
|
|
19
|
-
import { useState, useRef, useCallback, useEffect, useMemo, useId } from 'react';
|
|
20
|
-
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
21
|
-
import * as AccordionPrimitive from '@radix-ui/react-accordion';
|
|
22
|
-
import { ChevronDown, SunIcon, MoonIcon, MonitorIcon, ArrowLeft, ArrowRight, CheckIcon, ChevronsUpDown, Check, ChevronRightIcon, CircleIcon, MoreVertical, SearchX, Search, X, Plus, ArrowUpDown, ChevronLeft, ChevronRight, CalendarIcon, CalendarRange, ChevronDownIcon, ChevronLeftIcon, MoreHorizontalIcon, EyeOff, Eye, TriangleAlert, Loader2Icon, OctagonXIcon, TriangleAlertIcon, InfoIcon, CircleCheckIcon, PlusCircle } from 'lucide-react';
|
|
23
|
-
import { AlertDialog as AlertDialog$1, AspectRatio as AspectRatio$1, ContextMenu as ContextMenu$1, HoverCard as HoverCard$1, Menubar as Menubar$1, Progress as Progress$1, RadioGroup as RadioGroup$1, Slider as Slider$1 } from 'radix-ui';
|
|
24
|
-
import * as ToggleGroupPrimitive from '@radix-ui/react-toggle-group';
|
|
25
|
-
import { Slot } from '@radix-ui/react-slot';
|
|
26
|
-
import { cva } from 'class-variance-authority';
|
|
27
|
-
import useEmblaCarousel from 'embla-carousel-react';
|
|
28
|
-
import * as RechartsPrimitive from 'recharts';
|
|
29
|
-
import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
|
|
30
|
-
import { useReactTable, getPaginationRowModel, getFilteredRowModel, getSortedRowModel, getCoreRowModel, flexRender } from '@tanstack/react-table';
|
|
31
|
-
import { format } from 'date-fns';
|
|
32
|
-
import { Drawer as Drawer$1 } from 'vaul';
|
|
33
|
-
import { useFormContext, FormProvider, Controller } from 'react-hook-form';
|
|
34
|
-
import * as NavigationMenuPrimitive from '@radix-ui/react-navigation-menu';
|
|
35
|
-
import * as ResizablePrimitive from 'react-resizable-panels';
|
|
36
|
-
import * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';
|
|
37
|
-
import { Toaster as Toaster$1 } from 'sonner';
|
|
38
|
-
export { toast } from 'sonner';
|
|
1
|
+
'use client';
|
|
39
2
|
|
|
3
|
+
"use client";
|
|
4
|
+
import {
|
|
5
|
+
Calendar,
|
|
6
|
+
CalendarDayButton,
|
|
7
|
+
Command,
|
|
8
|
+
CommandDialog,
|
|
9
|
+
CommandEmpty,
|
|
10
|
+
CommandGroup,
|
|
11
|
+
CommandInput,
|
|
12
|
+
CommandItem,
|
|
13
|
+
CommandList,
|
|
14
|
+
CommandSeparator,
|
|
15
|
+
CommandShortcut,
|
|
16
|
+
ConfirmDialog,
|
|
17
|
+
FloatingSheet,
|
|
18
|
+
FloatingSheetBody,
|
|
19
|
+
FloatingSheetFooter,
|
|
20
|
+
FloatingSheetStack,
|
|
21
|
+
InputOTP,
|
|
22
|
+
InputOTPGroup,
|
|
23
|
+
InputOTPSeparator,
|
|
24
|
+
InputOTPSlot,
|
|
25
|
+
Popover,
|
|
26
|
+
PopoverAnchor,
|
|
27
|
+
PopoverContent,
|
|
28
|
+
PopoverTrigger,
|
|
29
|
+
Select,
|
|
30
|
+
SelectContent,
|
|
31
|
+
SelectGroup,
|
|
32
|
+
SelectItem,
|
|
33
|
+
SelectLabel,
|
|
34
|
+
SelectScrollDownButton,
|
|
35
|
+
SelectScrollUpButton,
|
|
36
|
+
SelectSeparator,
|
|
37
|
+
SelectTrigger,
|
|
38
|
+
SelectValue,
|
|
39
|
+
Switch,
|
|
40
|
+
Tabs,
|
|
41
|
+
TabsContent,
|
|
42
|
+
TabsList,
|
|
43
|
+
TabsTrigger,
|
|
44
|
+
Textarea,
|
|
45
|
+
confirmDialogDefaultLabels,
|
|
46
|
+
floatingSheetDefaultLabels
|
|
47
|
+
} from "./chunk-UCJTM3UM.js";
|
|
48
|
+
import {
|
|
49
|
+
CopyButton,
|
|
50
|
+
copyButtonLabels
|
|
51
|
+
} from "./chunk-UXVI326F.js";
|
|
52
|
+
import {
|
|
53
|
+
Toggle,
|
|
54
|
+
toggleVariants
|
|
55
|
+
} from "./chunk-YBXRJSR3.js";
|
|
56
|
+
import {
|
|
57
|
+
Dialog,
|
|
58
|
+
DialogClose,
|
|
59
|
+
DialogContent,
|
|
60
|
+
DialogDescription,
|
|
61
|
+
DialogFooter,
|
|
62
|
+
DialogHeader,
|
|
63
|
+
DialogOverlay,
|
|
64
|
+
DialogPortal,
|
|
65
|
+
DialogTitle,
|
|
66
|
+
DialogTrigger
|
|
67
|
+
} from "./chunk-EYPM6IMS.js";
|
|
68
|
+
import {
|
|
69
|
+
useAppearance
|
|
70
|
+
} from "./chunk-IQMRJXEO.js";
|
|
71
|
+
import {
|
|
72
|
+
Card,
|
|
73
|
+
CardContent,
|
|
74
|
+
CardDescription,
|
|
75
|
+
CardFooter,
|
|
76
|
+
CardHeader,
|
|
77
|
+
CardTitle,
|
|
78
|
+
cardVariants
|
|
79
|
+
} from "./chunk-2V6HUWST.js";
|
|
80
|
+
import {
|
|
81
|
+
Alert,
|
|
82
|
+
AlertDescription,
|
|
83
|
+
AlertTitle,
|
|
84
|
+
Checkbox,
|
|
85
|
+
Field,
|
|
86
|
+
FieldControl,
|
|
87
|
+
FieldDescription,
|
|
88
|
+
FieldError,
|
|
89
|
+
FieldGroup,
|
|
90
|
+
FieldLabel,
|
|
91
|
+
PasswordInput,
|
|
92
|
+
alertDefaultLabels,
|
|
93
|
+
passwordInputDefaultLabels,
|
|
94
|
+
useField
|
|
95
|
+
} from "./chunk-VA6A4HZ2.js";
|
|
96
|
+
import {
|
|
97
|
+
UiLocaleProvider,
|
|
98
|
+
useUiLabels,
|
|
99
|
+
useUiLocale
|
|
100
|
+
} from "./chunk-E26KKMGS.js";
|
|
101
|
+
import {
|
|
102
|
+
Label
|
|
103
|
+
} from "./chunk-TM5MN3MI.js";
|
|
104
|
+
import {
|
|
105
|
+
Avatar,
|
|
106
|
+
AvatarFallback,
|
|
107
|
+
AvatarImage,
|
|
108
|
+
Breadcrumb,
|
|
109
|
+
BreadcrumbEllipsis,
|
|
110
|
+
BreadcrumbItem,
|
|
111
|
+
BreadcrumbLink,
|
|
112
|
+
BreadcrumbList,
|
|
113
|
+
BreadcrumbPage,
|
|
114
|
+
BreadcrumbSeparator,
|
|
115
|
+
Collapsible,
|
|
116
|
+
CollapsibleContent,
|
|
117
|
+
CollapsibleTrigger,
|
|
118
|
+
DropdownMenu,
|
|
119
|
+
DropdownMenuCheckboxItem,
|
|
120
|
+
DropdownMenuContent,
|
|
121
|
+
DropdownMenuGroup,
|
|
122
|
+
DropdownMenuItem,
|
|
123
|
+
DropdownMenuLabel,
|
|
124
|
+
DropdownMenuPortal,
|
|
125
|
+
DropdownMenuRadioGroup,
|
|
126
|
+
DropdownMenuRadioItem,
|
|
127
|
+
DropdownMenuSeparator,
|
|
128
|
+
DropdownMenuShortcut,
|
|
129
|
+
DropdownMenuSub,
|
|
130
|
+
DropdownMenuSubContent,
|
|
131
|
+
DropdownMenuSubTrigger,
|
|
132
|
+
DropdownMenuTrigger,
|
|
133
|
+
Icon,
|
|
134
|
+
Sheet,
|
|
135
|
+
SheetClose,
|
|
136
|
+
SheetContent,
|
|
137
|
+
SheetDescription,
|
|
138
|
+
SheetFooter,
|
|
139
|
+
SheetHeader,
|
|
140
|
+
SheetTitle,
|
|
141
|
+
SheetTrigger,
|
|
142
|
+
Sidebar,
|
|
143
|
+
SidebarContent,
|
|
144
|
+
SidebarFooter,
|
|
145
|
+
SidebarGroup,
|
|
146
|
+
SidebarGroupAction,
|
|
147
|
+
SidebarGroupContent,
|
|
148
|
+
SidebarGroupLabel,
|
|
149
|
+
SidebarHeader,
|
|
150
|
+
SidebarInput,
|
|
151
|
+
SidebarInset,
|
|
152
|
+
SidebarMenu,
|
|
153
|
+
SidebarMenuAction,
|
|
154
|
+
SidebarMenuBadge,
|
|
155
|
+
SidebarMenuButton,
|
|
156
|
+
SidebarMenuItem,
|
|
157
|
+
SidebarMenuSkeleton,
|
|
158
|
+
SidebarMenuSub,
|
|
159
|
+
SidebarMenuSubButton,
|
|
160
|
+
SidebarMenuSubItem,
|
|
161
|
+
SidebarProvider,
|
|
162
|
+
SidebarRail,
|
|
163
|
+
SidebarSeparator,
|
|
164
|
+
SidebarTrigger,
|
|
165
|
+
Skeleton,
|
|
166
|
+
Tooltip,
|
|
167
|
+
TooltipContent,
|
|
168
|
+
TooltipProvider,
|
|
169
|
+
TooltipTrigger,
|
|
170
|
+
useSidebar
|
|
171
|
+
} from "./chunk-B3L6PRLX.js";
|
|
172
|
+
import {
|
|
173
|
+
Input,
|
|
174
|
+
Separator
|
|
175
|
+
} from "./chunk-3Z2VGVPI.js";
|
|
176
|
+
import {
|
|
177
|
+
Button,
|
|
178
|
+
Spinner,
|
|
179
|
+
buttonVariants,
|
|
180
|
+
cn,
|
|
181
|
+
controlFill,
|
|
182
|
+
elevatedSurface,
|
|
183
|
+
fieldFocus,
|
|
184
|
+
fieldSurface,
|
|
185
|
+
floatingSurface,
|
|
186
|
+
focusRing,
|
|
187
|
+
menuHighlight,
|
|
188
|
+
menuSurface,
|
|
189
|
+
modalSurface,
|
|
190
|
+
nestedEdgeToEdge,
|
|
191
|
+
nestedRadius,
|
|
192
|
+
nestedSurfaceReset,
|
|
193
|
+
panelSurface,
|
|
194
|
+
recessedSurface,
|
|
195
|
+
spinnerVariants,
|
|
196
|
+
surface
|
|
197
|
+
} from "./chunk-KHOA4TEI.js";
|
|
198
|
+
|
|
199
|
+
// src/hooks/use-autosave.ts
|
|
200
|
+
import { useCallback, useEffect, useRef, useState } from "react";
|
|
40
201
|
var AUTOSAVE_DELAY = 700;
|
|
41
202
|
function shallowEqual(a, b) {
|
|
42
203
|
if (Object.is(a, b)) {
|
|
@@ -126,11 +287,15 @@ function useAutosave(values, onSave, options = {}) {
|
|
|
126
287
|
}, [values, delay, enabled, run]);
|
|
127
288
|
return { status, error, flush, reset };
|
|
128
289
|
}
|
|
290
|
+
|
|
291
|
+
// src/hooks/use-confirm-dialog.tsx
|
|
292
|
+
import { useState as useState2 } from "react";
|
|
293
|
+
import { jsx } from "react/jsx-runtime";
|
|
129
294
|
function useConfirmDialog() {
|
|
130
|
-
const [isOpen, setIsOpen] =
|
|
131
|
-
const [options, setOptions] =
|
|
132
|
-
const [onConfirmCallback, setOnConfirmCallback] =
|
|
133
|
-
const [onCancelCallback, setOnCancelCallback] =
|
|
295
|
+
const [isOpen, setIsOpen] = useState2(false);
|
|
296
|
+
const [options, setOptions] = useState2({});
|
|
297
|
+
const [onConfirmCallback, setOnConfirmCallback] = useState2(null);
|
|
298
|
+
const [onCancelCallback, setOnCancelCallback] = useState2(null);
|
|
134
299
|
const confirm = (onConfirm, confirmOptions, onCancel) => {
|
|
135
300
|
setOptions(confirmOptions || {});
|
|
136
301
|
setOnConfirmCallback(() => onConfirm);
|
|
@@ -157,12 +322,18 @@ function useConfirmDialog() {
|
|
|
157
322
|
);
|
|
158
323
|
return { confirm, ConfirmDialog: ConfirmDialogComponent };
|
|
159
324
|
}
|
|
325
|
+
|
|
326
|
+
// src/components/ui/accordion.tsx
|
|
327
|
+
import * as AccordionPrimitive from "@radix-ui/react-accordion";
|
|
328
|
+
import { ChevronDown } from "lucide-react";
|
|
329
|
+
import * as React from "react";
|
|
330
|
+
import { jsx as jsx2, jsxs } from "react/jsx-runtime";
|
|
160
331
|
function Accordion({
|
|
161
332
|
className,
|
|
162
333
|
slotName = "accordion",
|
|
163
334
|
...props
|
|
164
335
|
}) {
|
|
165
|
-
return /* @__PURE__ */
|
|
336
|
+
return /* @__PURE__ */ jsx2(
|
|
166
337
|
AccordionPrimitive.Root,
|
|
167
338
|
{
|
|
168
339
|
className: cn(elevatedSurface, "px-5 bg-card", className),
|
|
@@ -171,7 +342,7 @@ function Accordion({
|
|
|
171
342
|
}
|
|
172
343
|
);
|
|
173
344
|
}
|
|
174
|
-
var AccordionItem =
|
|
345
|
+
var AccordionItem = React.forwardRef(({ className, slotName = "accordion-item", ...props }, ref) => /* @__PURE__ */ jsx2(
|
|
175
346
|
AccordionPrimitive.Item,
|
|
176
347
|
{
|
|
177
348
|
ref,
|
|
@@ -181,7 +352,7 @@ var AccordionItem = React3.forwardRef(({ className, slotName = "accordion-item",
|
|
|
181
352
|
}
|
|
182
353
|
));
|
|
183
354
|
AccordionItem.displayName = "AccordionItem";
|
|
184
|
-
var AccordionTrigger =
|
|
355
|
+
var AccordionTrigger = React.forwardRef(({ className, children, slotName = "accordion-trigger", ...props }, ref) => /* @__PURE__ */ jsx2(AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */ jsxs(
|
|
185
356
|
AccordionPrimitive.Trigger,
|
|
186
357
|
{
|
|
187
358
|
ref,
|
|
@@ -193,47 +364,77 @@ var AccordionTrigger = React3.forwardRef(({ className, children, slotName = "acc
|
|
|
193
364
|
"data-slot": slotName,
|
|
194
365
|
children: [
|
|
195
366
|
children,
|
|
196
|
-
/* @__PURE__ */
|
|
367
|
+
/* @__PURE__ */ jsx2(ChevronDown, { className: "h-4 w-4 shrink-0 transition-transform duration-200" })
|
|
197
368
|
]
|
|
198
369
|
}
|
|
199
370
|
) }));
|
|
200
371
|
AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;
|
|
201
|
-
var AccordionContent =
|
|
372
|
+
var AccordionContent = React.forwardRef(({ className, children, slotName = "accordion-content", ...props }, ref) => /* @__PURE__ */ jsx2(
|
|
202
373
|
AccordionPrimitive.Content,
|
|
203
374
|
{
|
|
204
375
|
ref,
|
|
205
376
|
className: "text-md data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden transition-all",
|
|
206
377
|
...props,
|
|
207
378
|
"data-slot": slotName,
|
|
208
|
-
children: /* @__PURE__ */
|
|
379
|
+
children: /* @__PURE__ */ jsx2("div", { className: cn("pb-4 pt-0", className), children })
|
|
209
380
|
}
|
|
210
381
|
));
|
|
211
382
|
AccordionContent.displayName = AccordionPrimitive.Content.displayName;
|
|
383
|
+
|
|
384
|
+
// src/components/ui/akira-mark.tsx
|
|
385
|
+
import { jsx as jsx3 } from "react/jsx-runtime";
|
|
386
|
+
function AkiraMark({
|
|
387
|
+
slotName = "akira-mark",
|
|
388
|
+
"aria-label": ariaLabel,
|
|
389
|
+
"aria-labelledby": ariaLabelledBy,
|
|
390
|
+
...props
|
|
391
|
+
}) {
|
|
392
|
+
const isLabelled = ariaLabel !== void 0 || ariaLabelledBy !== void 0;
|
|
393
|
+
return /* @__PURE__ */ jsx3(
|
|
394
|
+
"svg",
|
|
395
|
+
{
|
|
396
|
+
viewBox: "0 0 32.06 30.95",
|
|
397
|
+
fill: "currentColor",
|
|
398
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
399
|
+
...props,
|
|
400
|
+
"aria-label": ariaLabel,
|
|
401
|
+
"aria-labelledby": ariaLabelledBy,
|
|
402
|
+
"aria-hidden": isLabelled ? void 0 : true,
|
|
403
|
+
role: isLabelled ? "img" : void 0,
|
|
404
|
+
"data-slot": slotName,
|
|
405
|
+
children: /* @__PURE__ */ jsx3("path", { d: "M30.5,17.75,21.6,2.25h0a4.42,4.42,0,0,0-7.7,0L.4,25.85a3.29,3.29,0,0,0-.4,1.7A3.35,3.35,0,0,0,3.3,31a3.24,3.24,0,0,0,2.9-1.7l10.7-18.7a1,1,0,0,1,1.8,0l3.4,5.9a.88.88,0,0,1-.8,1.3H17.5a3.35,3.35,0,0,0-3.3,3.4h0a3.35,3.35,0,0,0,3.3,3.4H28.8a3.24,3.24,0,0,0,2.8-4.9Z" })
|
|
406
|
+
}
|
|
407
|
+
);
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
// src/components/ui/alert-dialog.tsx
|
|
411
|
+
import { AlertDialog as AlertDialogPrimitive } from "radix-ui";
|
|
412
|
+
import { jsx as jsx4, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
212
413
|
function AlertDialog({
|
|
213
414
|
slotName = "alert-dialog",
|
|
214
415
|
...props
|
|
215
416
|
}) {
|
|
216
|
-
return /* @__PURE__ */
|
|
417
|
+
return /* @__PURE__ */ jsx4(AlertDialogPrimitive.Root, { ...props, "data-slot": slotName });
|
|
217
418
|
}
|
|
218
419
|
function AlertDialogTrigger({
|
|
219
420
|
slotName = "alert-dialog-trigger",
|
|
220
421
|
...props
|
|
221
422
|
}) {
|
|
222
|
-
return /* @__PURE__ */
|
|
423
|
+
return /* @__PURE__ */ jsx4(AlertDialogPrimitive.Trigger, { ...props, "data-slot": slotName });
|
|
223
424
|
}
|
|
224
425
|
function AlertDialogPortal({
|
|
225
426
|
slotName = "alert-dialog-portal",
|
|
226
427
|
...props
|
|
227
428
|
}) {
|
|
228
|
-
return /* @__PURE__ */
|
|
429
|
+
return /* @__PURE__ */ jsx4(AlertDialogPrimitive.Portal, { ...props, "data-slot": slotName });
|
|
229
430
|
}
|
|
230
431
|
function AlertDialogOverlay({
|
|
231
432
|
className,
|
|
232
433
|
slotName = "alert-dialog-overlay",
|
|
233
434
|
...props
|
|
234
435
|
}) {
|
|
235
|
-
return /* @__PURE__ */
|
|
236
|
-
|
|
436
|
+
return /* @__PURE__ */ jsx4(
|
|
437
|
+
AlertDialogPrimitive.Overlay,
|
|
237
438
|
{
|
|
238
439
|
className: cn(
|
|
239
440
|
"inset-0 bg-black/60 backdrop-blur-sm data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0 fixed z-50",
|
|
@@ -250,10 +451,10 @@ function AlertDialogContent({
|
|
|
250
451
|
slotName = "alert-dialog-content",
|
|
251
452
|
...props
|
|
252
453
|
}) {
|
|
253
|
-
return /* @__PURE__ */
|
|
254
|
-
/* @__PURE__ */
|
|
255
|
-
/* @__PURE__ */
|
|
256
|
-
|
|
454
|
+
return /* @__PURE__ */ jsxs2(AlertDialogPortal, { children: [
|
|
455
|
+
/* @__PURE__ */ jsx4(AlertDialogOverlay, {}),
|
|
456
|
+
/* @__PURE__ */ jsx4(
|
|
457
|
+
AlertDialogPrimitive.Content,
|
|
257
458
|
{
|
|
258
459
|
"data-size": size,
|
|
259
460
|
className: cn(
|
|
@@ -271,7 +472,7 @@ function AlertDialogHeader({
|
|
|
271
472
|
slotName = "alert-dialog-header",
|
|
272
473
|
...props
|
|
273
474
|
}) {
|
|
274
|
-
return /* @__PURE__ */
|
|
475
|
+
return /* @__PURE__ */ jsx4(
|
|
275
476
|
"div",
|
|
276
477
|
{
|
|
277
478
|
className: cn(
|
|
@@ -288,7 +489,7 @@ function AlertDialogFooter({
|
|
|
288
489
|
slotName = "alert-dialog-footer",
|
|
289
490
|
...props
|
|
290
491
|
}) {
|
|
291
|
-
return /* @__PURE__ */
|
|
492
|
+
return /* @__PURE__ */ jsx4(
|
|
292
493
|
"div",
|
|
293
494
|
{
|
|
294
495
|
className: cn(
|
|
@@ -305,8 +506,8 @@ function AlertDialogTitle({
|
|
|
305
506
|
slotName = "alert-dialog-title",
|
|
306
507
|
...props
|
|
307
508
|
}) {
|
|
308
|
-
return /* @__PURE__ */
|
|
309
|
-
|
|
509
|
+
return /* @__PURE__ */ jsx4(
|
|
510
|
+
AlertDialogPrimitive.Title,
|
|
310
511
|
{
|
|
311
512
|
className: cn(
|
|
312
513
|
"text-lg font-semibold sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2",
|
|
@@ -322,8 +523,8 @@ function AlertDialogDescription({
|
|
|
322
523
|
slotName = "alert-dialog-description",
|
|
323
524
|
...props
|
|
324
525
|
}) {
|
|
325
|
-
return /* @__PURE__ */
|
|
326
|
-
|
|
526
|
+
return /* @__PURE__ */ jsx4(
|
|
527
|
+
AlertDialogPrimitive.Description,
|
|
327
528
|
{
|
|
328
529
|
className: cn("text-sm text-muted-foreground", className),
|
|
329
530
|
...props,
|
|
@@ -336,7 +537,7 @@ function AlertDialogMedia({
|
|
|
336
537
|
slotName = "alert-dialog-media",
|
|
337
538
|
...props
|
|
338
539
|
}) {
|
|
339
|
-
return /* @__PURE__ */
|
|
540
|
+
return /* @__PURE__ */ jsx4(
|
|
340
541
|
"div",
|
|
341
542
|
{
|
|
342
543
|
className: cn(
|
|
@@ -355,8 +556,8 @@ function AlertDialogAction({
|
|
|
355
556
|
slotName = "alert-dialog-action",
|
|
356
557
|
...props
|
|
357
558
|
}) {
|
|
358
|
-
return /* @__PURE__ */
|
|
359
|
-
|
|
559
|
+
return /* @__PURE__ */ jsx4(Button, { variant, size, asChild: true, children: /* @__PURE__ */ jsx4(
|
|
560
|
+
AlertDialogPrimitive.Action,
|
|
360
561
|
{
|
|
361
562
|
className: cn(className),
|
|
362
563
|
...props,
|
|
@@ -371,8 +572,8 @@ function AlertDialogCancel({
|
|
|
371
572
|
slotName = "alert-dialog-cancel",
|
|
372
573
|
...props
|
|
373
574
|
}) {
|
|
374
|
-
return /* @__PURE__ */
|
|
375
|
-
|
|
575
|
+
return /* @__PURE__ */ jsx4(Button, { variant, size, asChild: true, children: /* @__PURE__ */ jsx4(
|
|
576
|
+
AlertDialogPrimitive.Cancel,
|
|
376
577
|
{
|
|
377
578
|
className: cn(className),
|
|
378
579
|
...props,
|
|
@@ -380,7 +581,15 @@ function AlertDialogCancel({
|
|
|
380
581
|
}
|
|
381
582
|
) });
|
|
382
583
|
}
|
|
383
|
-
|
|
584
|
+
|
|
585
|
+
// src/components/ui/appearance-toggle.tsx
|
|
586
|
+
import { MonitorIcon, MoonIcon, SunIcon } from "lucide-react";
|
|
587
|
+
|
|
588
|
+
// src/components/ui/toggle-group.tsx
|
|
589
|
+
import * as ToggleGroupPrimitive from "@radix-ui/react-toggle-group";
|
|
590
|
+
import * as React2 from "react";
|
|
591
|
+
import { jsx as jsx5 } from "react/jsx-runtime";
|
|
592
|
+
var ToggleGroupContext = React2.createContext({
|
|
384
593
|
size: "default",
|
|
385
594
|
variant: "default"
|
|
386
595
|
});
|
|
@@ -392,7 +601,7 @@ function ToggleGroup({
|
|
|
392
601
|
slotName = "toggle-group",
|
|
393
602
|
...props
|
|
394
603
|
}) {
|
|
395
|
-
return /* @__PURE__ */
|
|
604
|
+
return /* @__PURE__ */ jsx5(
|
|
396
605
|
ToggleGroupPrimitive.Root,
|
|
397
606
|
{
|
|
398
607
|
"data-variant": variant,
|
|
@@ -403,7 +612,7 @@ function ToggleGroup({
|
|
|
403
612
|
),
|
|
404
613
|
...props,
|
|
405
614
|
"data-slot": slotName,
|
|
406
|
-
children: /* @__PURE__ */
|
|
615
|
+
children: /* @__PURE__ */ jsx5(ToggleGroupContext.Provider, { value: { variant, size }, children })
|
|
407
616
|
}
|
|
408
617
|
);
|
|
409
618
|
}
|
|
@@ -415,8 +624,8 @@ function ToggleGroupItem({
|
|
|
415
624
|
slotName = "toggle-group-item",
|
|
416
625
|
...props
|
|
417
626
|
}) {
|
|
418
|
-
const context =
|
|
419
|
-
return /* @__PURE__ */
|
|
627
|
+
const context = React2.useContext(ToggleGroupContext);
|
|
628
|
+
return /* @__PURE__ */ jsx5(
|
|
420
629
|
ToggleGroupPrimitive.Item,
|
|
421
630
|
{
|
|
422
631
|
"data-variant": context.variant || variant,
|
|
@@ -435,6 +644,9 @@ function ToggleGroupItem({
|
|
|
435
644
|
}
|
|
436
645
|
);
|
|
437
646
|
}
|
|
647
|
+
|
|
648
|
+
// src/components/ui/appearance-toggle.tsx
|
|
649
|
+
import { jsx as jsx6, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
438
650
|
var appearanceToggleDefaultLabels = {
|
|
439
651
|
groupLabel: "Appearance",
|
|
440
652
|
lightLabel: "Light",
|
|
@@ -466,36 +678,36 @@ function AppearanceToggle({
|
|
|
466
678
|
const current = OPTIONS.find((option) => option.value === appearance);
|
|
467
679
|
const CurrentIcon = current?.icon ?? MonitorIcon;
|
|
468
680
|
if (variant === "menu") {
|
|
469
|
-
return /* @__PURE__ */
|
|
681
|
+
return /* @__PURE__ */ jsx6(
|
|
470
682
|
"div",
|
|
471
683
|
{
|
|
472
684
|
"data-variant": "menu",
|
|
473
685
|
className: cn("inline-flex", className),
|
|
474
686
|
...props,
|
|
475
687
|
"data-slot": slotName,
|
|
476
|
-
children: /* @__PURE__ */
|
|
477
|
-
/* @__PURE__ */
|
|
688
|
+
children: /* @__PURE__ */ jsxs3(DropdownMenu, { children: [
|
|
689
|
+
/* @__PURE__ */ jsx6(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx6(
|
|
478
690
|
Button,
|
|
479
691
|
{
|
|
480
692
|
slotName: "appearance-toggle-trigger",
|
|
481
693
|
variant: "ghost",
|
|
482
694
|
size: "icon-sm",
|
|
483
695
|
"aria-label": labels.groupLabel,
|
|
484
|
-
children: /* @__PURE__ */
|
|
696
|
+
children: /* @__PURE__ */ jsx6(CurrentIcon, { "aria-hidden": "true" })
|
|
485
697
|
}
|
|
486
698
|
) }),
|
|
487
|
-
/* @__PURE__ */
|
|
699
|
+
/* @__PURE__ */ jsx6(DropdownMenuContent, { align: "end", children: /* @__PURE__ */ jsx6(
|
|
488
700
|
DropdownMenuRadioGroup,
|
|
489
701
|
{
|
|
490
702
|
value: appearance,
|
|
491
703
|
onValueChange: (value) => updateAppearance(value),
|
|
492
|
-
children: OPTIONS.map((option) => /* @__PURE__ */
|
|
704
|
+
children: OPTIONS.map((option) => /* @__PURE__ */ jsxs3(
|
|
493
705
|
DropdownMenuRadioItem,
|
|
494
706
|
{
|
|
495
707
|
slotName: "appearance-toggle-item",
|
|
496
708
|
value: option.value,
|
|
497
709
|
children: [
|
|
498
|
-
/* @__PURE__ */
|
|
710
|
+
/* @__PURE__ */ jsx6(option.icon, { "aria-hidden": "true" }),
|
|
499
711
|
option.label(labels)
|
|
500
712
|
]
|
|
501
713
|
},
|
|
@@ -507,14 +719,14 @@ function AppearanceToggle({
|
|
|
507
719
|
}
|
|
508
720
|
);
|
|
509
721
|
}
|
|
510
|
-
return /* @__PURE__ */
|
|
722
|
+
return /* @__PURE__ */ jsx6(
|
|
511
723
|
"div",
|
|
512
724
|
{
|
|
513
725
|
"data-variant": "segmented",
|
|
514
726
|
className: cn("inline-flex", className),
|
|
515
727
|
...props,
|
|
516
728
|
"data-slot": slotName,
|
|
517
|
-
children: /* @__PURE__ */
|
|
729
|
+
children: /* @__PURE__ */ jsx6(
|
|
518
730
|
ToggleGroup,
|
|
519
731
|
{
|
|
520
732
|
type: "single",
|
|
@@ -526,15 +738,15 @@ function AppearanceToggle({
|
|
|
526
738
|
updateAppearance(value);
|
|
527
739
|
}
|
|
528
740
|
},
|
|
529
|
-
children: OPTIONS.map((option) => /* @__PURE__ */
|
|
741
|
+
children: OPTIONS.map((option) => /* @__PURE__ */ jsxs3(
|
|
530
742
|
ToggleGroupItem,
|
|
531
743
|
{
|
|
532
744
|
slotName: "appearance-toggle-item",
|
|
533
745
|
value: option.value,
|
|
534
746
|
"aria-label": option.label(labels),
|
|
535
747
|
children: [
|
|
536
|
-
/* @__PURE__ */
|
|
537
|
-
/* @__PURE__ */
|
|
748
|
+
/* @__PURE__ */ jsx6(option.icon, { "aria-hidden": "true" }),
|
|
749
|
+
/* @__PURE__ */ jsx6("span", { children: option.label(labels) })
|
|
538
750
|
]
|
|
539
751
|
},
|
|
540
752
|
option.value
|
|
@@ -544,12 +756,21 @@ function AppearanceToggle({
|
|
|
544
756
|
}
|
|
545
757
|
);
|
|
546
758
|
}
|
|
759
|
+
|
|
760
|
+
// src/components/ui/aspect-ratio.tsx
|
|
761
|
+
import { AspectRatio as AspectRatioPrimitive } from "radix-ui";
|
|
762
|
+
import { jsx as jsx7 } from "react/jsx-runtime";
|
|
547
763
|
function AspectRatio({
|
|
548
764
|
slotName = "aspect-ratio",
|
|
549
765
|
...props
|
|
550
766
|
}) {
|
|
551
|
-
return /* @__PURE__ */
|
|
767
|
+
return /* @__PURE__ */ jsx7(AspectRatioPrimitive.Root, { ...props, "data-slot": slotName });
|
|
552
768
|
}
|
|
769
|
+
|
|
770
|
+
// src/components/ui/badge.tsx
|
|
771
|
+
import { Slot } from "@radix-ui/react-slot";
|
|
772
|
+
import { cva } from "class-variance-authority";
|
|
773
|
+
import { jsx as jsx8 } from "react/jsx-runtime";
|
|
553
774
|
var badgeVariants = cva(
|
|
554
775
|
"inline-flex items-center justify-center rounded-full border px-2.5 py-1 text-xs font-semibold w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:outline-solid focus-visible:outline-1 focus-visible:outline-offset-0 focus-visible:outline-ring aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",
|
|
555
776
|
{
|
|
@@ -574,7 +795,7 @@ function Badge({
|
|
|
574
795
|
...props
|
|
575
796
|
}) {
|
|
576
797
|
const Comp = asChild ? Slot : "span";
|
|
577
|
-
return /* @__PURE__ */
|
|
798
|
+
return /* @__PURE__ */ jsx8(
|
|
578
799
|
Comp,
|
|
579
800
|
{
|
|
580
801
|
className: cn(badgeVariants({ variant }), className),
|
|
@@ -583,6 +804,12 @@ function Badge({
|
|
|
583
804
|
}
|
|
584
805
|
);
|
|
585
806
|
}
|
|
807
|
+
|
|
808
|
+
// src/components/ui/carousel.tsx
|
|
809
|
+
import useEmblaCarousel from "embla-carousel-react";
|
|
810
|
+
import { ArrowLeft, ArrowRight } from "lucide-react";
|
|
811
|
+
import * as React3 from "react";
|
|
812
|
+
import { jsx as jsx9, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
586
813
|
var CarouselContext = React3.createContext(null);
|
|
587
814
|
function useCarousel() {
|
|
588
815
|
const context = React3.useContext(CarouselContext);
|
|
@@ -648,7 +875,7 @@ function Carousel({
|
|
|
648
875
|
api?.off("select", onSelect);
|
|
649
876
|
};
|
|
650
877
|
}, [api, onSelect]);
|
|
651
|
-
return /* @__PURE__ */
|
|
878
|
+
return /* @__PURE__ */ jsx9(
|
|
652
879
|
CarouselContext.Provider,
|
|
653
880
|
{
|
|
654
881
|
value: {
|
|
@@ -661,7 +888,7 @@ function Carousel({
|
|
|
661
888
|
canScrollPrev,
|
|
662
889
|
canScrollNext
|
|
663
890
|
},
|
|
664
|
-
children: /* @__PURE__ */
|
|
891
|
+
children: /* @__PURE__ */ jsx9(
|
|
665
892
|
"div",
|
|
666
893
|
{
|
|
667
894
|
onKeyDownCapture: handleKeyDown,
|
|
@@ -687,13 +914,13 @@ function CarouselContent({
|
|
|
687
914
|
...props
|
|
688
915
|
}) {
|
|
689
916
|
const { carouselRef, orientation } = useCarousel();
|
|
690
|
-
return /* @__PURE__ */
|
|
917
|
+
return /* @__PURE__ */ jsx9(
|
|
691
918
|
"div",
|
|
692
919
|
{
|
|
693
920
|
ref: carouselRef,
|
|
694
921
|
className: cn(nestedRadius, "overflow-hidden"),
|
|
695
922
|
"data-slot": slotName,
|
|
696
|
-
children: /* @__PURE__ */
|
|
923
|
+
children: /* @__PURE__ */ jsx9(
|
|
697
924
|
"div",
|
|
698
925
|
{
|
|
699
926
|
className: cn(
|
|
@@ -713,7 +940,7 @@ function CarouselItem({
|
|
|
713
940
|
...props
|
|
714
941
|
}) {
|
|
715
942
|
const { orientation } = useCarousel();
|
|
716
|
-
return /* @__PURE__ */
|
|
943
|
+
return /* @__PURE__ */ jsx9(
|
|
717
944
|
"div",
|
|
718
945
|
{
|
|
719
946
|
role: "group",
|
|
@@ -736,7 +963,7 @@ function CarouselPrevious({
|
|
|
736
963
|
...props
|
|
737
964
|
}) {
|
|
738
965
|
const { orientation, scrollPrev, canScrollPrev } = useCarousel();
|
|
739
|
-
return /* @__PURE__ */
|
|
966
|
+
return /* @__PURE__ */ jsxs4(
|
|
740
967
|
Button,
|
|
741
968
|
{
|
|
742
969
|
variant,
|
|
@@ -751,8 +978,8 @@ function CarouselPrevious({
|
|
|
751
978
|
...props,
|
|
752
979
|
slotName,
|
|
753
980
|
children: [
|
|
754
|
-
/* @__PURE__ */
|
|
755
|
-
/* @__PURE__ */
|
|
981
|
+
/* @__PURE__ */ jsx9(ArrowLeft, {}),
|
|
982
|
+
/* @__PURE__ */ jsx9("span", { className: "sr-only", children: "Previous slide" })
|
|
756
983
|
]
|
|
757
984
|
}
|
|
758
985
|
);
|
|
@@ -765,7 +992,7 @@ function CarouselNext({
|
|
|
765
992
|
...props
|
|
766
993
|
}) {
|
|
767
994
|
const { orientation, scrollNext, canScrollNext } = useCarousel();
|
|
768
|
-
return /* @__PURE__ */
|
|
995
|
+
return /* @__PURE__ */ jsxs4(
|
|
769
996
|
Button,
|
|
770
997
|
{
|
|
771
998
|
variant,
|
|
@@ -780,17 +1007,22 @@ function CarouselNext({
|
|
|
780
1007
|
...props,
|
|
781
1008
|
slotName,
|
|
782
1009
|
children: [
|
|
783
|
-
/* @__PURE__ */
|
|
784
|
-
/* @__PURE__ */
|
|
1010
|
+
/* @__PURE__ */ jsx9(ArrowRight, {}),
|
|
1011
|
+
/* @__PURE__ */ jsx9("span", { className: "sr-only", children: "Next slide" })
|
|
785
1012
|
]
|
|
786
1013
|
}
|
|
787
1014
|
);
|
|
788
1015
|
}
|
|
1016
|
+
|
|
1017
|
+
// src/components/ui/chart.tsx
|
|
1018
|
+
import * as React4 from "react";
|
|
1019
|
+
import * as RechartsPrimitive from "recharts";
|
|
1020
|
+
import { Fragment, jsx as jsx10, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
789
1021
|
var THEMES = { light: "", dark: ".dark" };
|
|
790
1022
|
var INITIAL_DIMENSION = { width: 320, height: 200 };
|
|
791
|
-
var ChartContext =
|
|
1023
|
+
var ChartContext = React4.createContext(null);
|
|
792
1024
|
function useChart() {
|
|
793
|
-
const context =
|
|
1025
|
+
const context = React4.useContext(ChartContext);
|
|
794
1026
|
if (!context) {
|
|
795
1027
|
throw new Error("useChart must be used within a <ChartContainer />");
|
|
796
1028
|
}
|
|
@@ -805,9 +1037,9 @@ function ChartContainer({
|
|
|
805
1037
|
slotName = "chart",
|
|
806
1038
|
...props
|
|
807
1039
|
}) {
|
|
808
|
-
const uniqueId =
|
|
1040
|
+
const uniqueId = React4.useId();
|
|
809
1041
|
const chartId = `chart-${id ?? uniqueId.replace(/:/g, "")}`;
|
|
810
|
-
return /* @__PURE__ */
|
|
1042
|
+
return /* @__PURE__ */ jsx10(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxs5(
|
|
811
1043
|
"div",
|
|
812
1044
|
{
|
|
813
1045
|
"data-chart": chartId,
|
|
@@ -821,8 +1053,8 @@ function ChartContainer({
|
|
|
821
1053
|
...props,
|
|
822
1054
|
"data-slot": slotName,
|
|
823
1055
|
children: [
|
|
824
|
-
/* @__PURE__ */
|
|
825
|
-
/* @__PURE__ */
|
|
1056
|
+
/* @__PURE__ */ jsx10(ChartStyle, { id: chartId, config }),
|
|
1057
|
+
/* @__PURE__ */ jsx10(
|
|
826
1058
|
RechartsPrimitive.ResponsiveContainer,
|
|
827
1059
|
{
|
|
828
1060
|
initialDimension,
|
|
@@ -840,7 +1072,7 @@ var ChartStyle = ({ id, config }) => {
|
|
|
840
1072
|
if (!colorConfig.length) {
|
|
841
1073
|
return null;
|
|
842
1074
|
}
|
|
843
|
-
return /* @__PURE__ */
|
|
1075
|
+
return /* @__PURE__ */ jsx10(
|
|
844
1076
|
"style",
|
|
845
1077
|
{
|
|
846
1078
|
dangerouslySetInnerHTML: {
|
|
@@ -875,7 +1107,7 @@ function ChartTooltipContent({
|
|
|
875
1107
|
labelKey
|
|
876
1108
|
}) {
|
|
877
1109
|
const { config } = useChart();
|
|
878
|
-
const tooltipLabel =
|
|
1110
|
+
const tooltipLabel = React4.useMemo(() => {
|
|
879
1111
|
if (hideLabel || !payload?.length) {
|
|
880
1112
|
return null;
|
|
881
1113
|
}
|
|
@@ -884,12 +1116,12 @@ function ChartTooltipContent({
|
|
|
884
1116
|
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
885
1117
|
const value = !labelKey && typeof label === "string" ? config[label]?.label ?? label : itemConfig?.label;
|
|
886
1118
|
if (labelFormatter) {
|
|
887
|
-
return /* @__PURE__ */
|
|
1119
|
+
return /* @__PURE__ */ jsx10("div", { className: cn("font-medium", labelClassName), children: labelFormatter(value, payload) });
|
|
888
1120
|
}
|
|
889
1121
|
if (!value) {
|
|
890
1122
|
return null;
|
|
891
1123
|
}
|
|
892
|
-
return /* @__PURE__ */
|
|
1124
|
+
return /* @__PURE__ */ jsx10("div", { className: cn("font-medium", labelClassName), children: value });
|
|
893
1125
|
}, [
|
|
894
1126
|
label,
|
|
895
1127
|
labelFormatter,
|
|
@@ -903,7 +1135,7 @@ function ChartTooltipContent({
|
|
|
903
1135
|
return null;
|
|
904
1136
|
}
|
|
905
1137
|
const nestLabel = payload.length === 1 && indicator !== "dot";
|
|
906
|
-
return /* @__PURE__ */
|
|
1138
|
+
return /* @__PURE__ */ jsxs5(
|
|
907
1139
|
"div",
|
|
908
1140
|
{
|
|
909
1141
|
className: cn(
|
|
@@ -912,7 +1144,7 @@ function ChartTooltipContent({
|
|
|
912
1144
|
),
|
|
913
1145
|
children: [
|
|
914
1146
|
!nestLabel ? tooltipLabel : null,
|
|
915
|
-
/* @__PURE__ */
|
|
1147
|
+
/* @__PURE__ */ jsx10("div", { className: "gap-1.5 grid", children: payload.filter((item) => item.type !== "none").map((item, index) => {
|
|
916
1148
|
const key = `${nameKey ?? item.name ?? item.dataKey ?? "value"}`;
|
|
917
1149
|
const itemConfig = getPayloadConfigFromPayload(
|
|
918
1150
|
config,
|
|
@@ -920,7 +1152,7 @@ function ChartTooltipContent({
|
|
|
920
1152
|
key
|
|
921
1153
|
);
|
|
922
1154
|
const indicatorColor = color ?? item.payload?.fill ?? item.color;
|
|
923
|
-
return /* @__PURE__ */
|
|
1155
|
+
return /* @__PURE__ */ jsx10(
|
|
924
1156
|
"div",
|
|
925
1157
|
{
|
|
926
1158
|
className: cn(
|
|
@@ -933,8 +1165,8 @@ function ChartTooltipContent({
|
|
|
933
1165
|
item,
|
|
934
1166
|
index,
|
|
935
1167
|
item.payload
|
|
936
|
-
) : /* @__PURE__ */
|
|
937
|
-
itemConfig?.icon ? /* @__PURE__ */
|
|
1168
|
+
) : /* @__PURE__ */ jsxs5(Fragment, { children: [
|
|
1169
|
+
itemConfig?.icon ? /* @__PURE__ */ jsx10(itemConfig.icon, {}) : !hideIndicator && /* @__PURE__ */ jsx10(
|
|
938
1170
|
"div",
|
|
939
1171
|
{
|
|
940
1172
|
className: cn(
|
|
@@ -952,7 +1184,7 @@ function ChartTooltipContent({
|
|
|
952
1184
|
}
|
|
953
1185
|
}
|
|
954
1186
|
),
|
|
955
|
-
/* @__PURE__ */
|
|
1187
|
+
/* @__PURE__ */ jsxs5(
|
|
956
1188
|
"div",
|
|
957
1189
|
{
|
|
958
1190
|
className: cn(
|
|
@@ -960,11 +1192,11 @@ function ChartTooltipContent({
|
|
|
960
1192
|
nestLabel ? "items-end" : "items-center"
|
|
961
1193
|
),
|
|
962
1194
|
children: [
|
|
963
|
-
/* @__PURE__ */
|
|
1195
|
+
/* @__PURE__ */ jsxs5("div", { className: "gap-1.5 grid", children: [
|
|
964
1196
|
nestLabel ? tooltipLabel : null,
|
|
965
|
-
/* @__PURE__ */
|
|
1197
|
+
/* @__PURE__ */ jsx10("span", { className: "text-muted-foreground", children: itemConfig?.label ?? item.name })
|
|
966
1198
|
] }),
|
|
967
|
-
item.value != null && /* @__PURE__ */
|
|
1199
|
+
item.value != null && /* @__PURE__ */ jsx10("span", { className: "font-mono font-medium text-foreground tabular-nums", children: typeof item.value === "number" ? item.value.toLocaleString() : String(item.value) })
|
|
968
1200
|
]
|
|
969
1201
|
}
|
|
970
1202
|
)
|
|
@@ -989,7 +1221,7 @@ function ChartLegendContent({
|
|
|
989
1221
|
if (!payload?.length) {
|
|
990
1222
|
return null;
|
|
991
1223
|
}
|
|
992
|
-
return /* @__PURE__ */
|
|
1224
|
+
return /* @__PURE__ */ jsx10(
|
|
993
1225
|
"div",
|
|
994
1226
|
{
|
|
995
1227
|
className: cn(
|
|
@@ -1004,14 +1236,14 @@ function ChartLegendContent({
|
|
|
1004
1236
|
item,
|
|
1005
1237
|
key
|
|
1006
1238
|
);
|
|
1007
|
-
return /* @__PURE__ */
|
|
1239
|
+
return /* @__PURE__ */ jsxs5(
|
|
1008
1240
|
"div",
|
|
1009
1241
|
{
|
|
1010
1242
|
className: cn(
|
|
1011
1243
|
"gap-1.5 [&>svg]:h-3 [&>svg]:w-3 flex items-center [&>svg]:text-muted-foreground"
|
|
1012
1244
|
),
|
|
1013
1245
|
children: [
|
|
1014
|
-
itemConfig?.icon && !hideIcon ? /* @__PURE__ */
|
|
1246
|
+
itemConfig?.icon && !hideIcon ? /* @__PURE__ */ jsx10(itemConfig.icon, {}) : /* @__PURE__ */ jsx10(
|
|
1015
1247
|
"div",
|
|
1016
1248
|
{
|
|
1017
1249
|
className: "h-2 w-2 shrink-0 rounded-[2px]",
|
|
@@ -1044,31 +1276,11 @@ function getPayloadConfigFromPayload(config, payload, key) {
|
|
|
1044
1276
|
}
|
|
1045
1277
|
return config[key];
|
|
1046
1278
|
}
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
}
|
|
1052
|
-
return /* @__PURE__ */ jsx(
|
|
1053
|
-
CheckboxPrimitive.Root,
|
|
1054
|
-
{
|
|
1055
|
-
className: cn(
|
|
1056
|
-
`peer size-5 shadow-xs shrink-0 rounded-md border border-border transition-all disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[state=checked]:border-primary data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground ${focusRing}`,
|
|
1057
|
-
className
|
|
1058
|
-
),
|
|
1059
|
-
...props,
|
|
1060
|
-
"data-slot": slotName,
|
|
1061
|
-
children: /* @__PURE__ */ jsx(
|
|
1062
|
-
CheckboxPrimitive.Indicator,
|
|
1063
|
-
{
|
|
1064
|
-
"data-slot": "checkbox-indicator",
|
|
1065
|
-
className: "flex items-center justify-center text-current transition-none",
|
|
1066
|
-
children: /* @__PURE__ */ jsx(CheckIcon, { className: "size-3.5" })
|
|
1067
|
-
}
|
|
1068
|
-
)
|
|
1069
|
-
}
|
|
1070
|
-
);
|
|
1071
|
-
}
|
|
1279
|
+
|
|
1280
|
+
// src/components/ui/combobox.tsx
|
|
1281
|
+
import { Check, ChevronsUpDown } from "lucide-react";
|
|
1282
|
+
import { useState as useState4 } from "react";
|
|
1283
|
+
import { jsx as jsx11, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
1072
1284
|
var comboboxDefaultLabels = {
|
|
1073
1285
|
placeholder: "Select an option",
|
|
1074
1286
|
searchPlaceholder: "Search...",
|
|
@@ -1094,10 +1306,10 @@ function Combobox({
|
|
|
1094
1306
|
searchPlaceholder,
|
|
1095
1307
|
emptyText
|
|
1096
1308
|
});
|
|
1097
|
-
const [open, setOpen] =
|
|
1309
|
+
const [open, setOpen] = useState4(false);
|
|
1098
1310
|
const selected = options.find((option) => option.value === value);
|
|
1099
|
-
return /* @__PURE__ */
|
|
1100
|
-
/* @__PURE__ */
|
|
1311
|
+
return /* @__PURE__ */ jsxs6(Popover, { open, onOpenChange: setOpen, children: [
|
|
1312
|
+
/* @__PURE__ */ jsx11(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs6(
|
|
1101
1313
|
Button,
|
|
1102
1314
|
{
|
|
1103
1315
|
variant: "outline",
|
|
@@ -1117,26 +1329,26 @@ function Combobox({
|
|
|
1117
1329
|
slotName,
|
|
1118
1330
|
children: [
|
|
1119
1331
|
selected ? selected.label : labels.placeholder,
|
|
1120
|
-
/* @__PURE__ */
|
|
1332
|
+
/* @__PURE__ */ jsx11(ChevronsUpDown, { className: "ml-2 h-4 w-4 shrink-0 opacity-50" })
|
|
1121
1333
|
]
|
|
1122
1334
|
}
|
|
1123
1335
|
) }),
|
|
1124
|
-
/* @__PURE__ */
|
|
1336
|
+
/* @__PURE__ */ jsx11(
|
|
1125
1337
|
PopoverContent,
|
|
1126
1338
|
{
|
|
1127
1339
|
className: "p-0 w-[var(--radix-popover-trigger-width)]",
|
|
1128
1340
|
align: "start",
|
|
1129
|
-
children: /* @__PURE__ */
|
|
1130
|
-
/* @__PURE__ */
|
|
1341
|
+
children: /* @__PURE__ */ jsxs6(Command, { children: [
|
|
1342
|
+
/* @__PURE__ */ jsx11(
|
|
1131
1343
|
CommandInput,
|
|
1132
1344
|
{
|
|
1133
1345
|
placeholder: labels.searchPlaceholder,
|
|
1134
1346
|
className: "h-11"
|
|
1135
1347
|
}
|
|
1136
1348
|
),
|
|
1137
|
-
/* @__PURE__ */
|
|
1138
|
-
/* @__PURE__ */
|
|
1139
|
-
/* @__PURE__ */
|
|
1349
|
+
/* @__PURE__ */ jsxs6(CommandList, { children: [
|
|
1350
|
+
/* @__PURE__ */ jsx11(CommandEmpty, { children: labels.emptyText }),
|
|
1351
|
+
/* @__PURE__ */ jsx11(CommandGroup, { children: options.map((option) => /* @__PURE__ */ jsxs6(
|
|
1140
1352
|
CommandItem,
|
|
1141
1353
|
{
|
|
1142
1354
|
value: option.label,
|
|
@@ -1146,7 +1358,7 @@ function Combobox({
|
|
|
1146
1358
|
},
|
|
1147
1359
|
className: "h-11 rounded-xl",
|
|
1148
1360
|
children: [
|
|
1149
|
-
/* @__PURE__ */
|
|
1361
|
+
/* @__PURE__ */ jsx11(
|
|
1150
1362
|
Check,
|
|
1151
1363
|
{
|
|
1152
1364
|
className: cn(
|
|
@@ -1166,41 +1378,46 @@ function Combobox({
|
|
|
1166
1378
|
)
|
|
1167
1379
|
] });
|
|
1168
1380
|
}
|
|
1381
|
+
|
|
1382
|
+
// src/components/ui/context-menu.tsx
|
|
1383
|
+
import { CheckIcon, ChevronRightIcon, CircleIcon } from "lucide-react";
|
|
1384
|
+
import { ContextMenu as ContextMenuPrimitive } from "radix-ui";
|
|
1385
|
+
import { jsx as jsx12, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
1169
1386
|
function ContextMenu({
|
|
1170
1387
|
slotName = "context-menu",
|
|
1171
1388
|
...props
|
|
1172
1389
|
}) {
|
|
1173
|
-
return /* @__PURE__ */
|
|
1390
|
+
return /* @__PURE__ */ jsx12(ContextMenuPrimitive.Root, { ...props, "data-slot": slotName });
|
|
1174
1391
|
}
|
|
1175
1392
|
function ContextMenuTrigger({
|
|
1176
1393
|
slotName = "context-menu-trigger",
|
|
1177
1394
|
...props
|
|
1178
1395
|
}) {
|
|
1179
|
-
return /* @__PURE__ */
|
|
1396
|
+
return /* @__PURE__ */ jsx12(ContextMenuPrimitive.Trigger, { ...props, "data-slot": slotName });
|
|
1180
1397
|
}
|
|
1181
1398
|
function ContextMenuGroup({
|
|
1182
1399
|
slotName = "context-menu-group",
|
|
1183
1400
|
...props
|
|
1184
1401
|
}) {
|
|
1185
|
-
return /* @__PURE__ */
|
|
1402
|
+
return /* @__PURE__ */ jsx12(ContextMenuPrimitive.Group, { ...props, "data-slot": slotName });
|
|
1186
1403
|
}
|
|
1187
1404
|
function ContextMenuPortal({
|
|
1188
1405
|
slotName = "context-menu-portal",
|
|
1189
1406
|
...props
|
|
1190
1407
|
}) {
|
|
1191
|
-
return /* @__PURE__ */
|
|
1408
|
+
return /* @__PURE__ */ jsx12(ContextMenuPrimitive.Portal, { ...props, "data-slot": slotName });
|
|
1192
1409
|
}
|
|
1193
1410
|
function ContextMenuSub({
|
|
1194
1411
|
slotName = "context-menu-sub",
|
|
1195
1412
|
...props
|
|
1196
1413
|
}) {
|
|
1197
|
-
return /* @__PURE__ */
|
|
1414
|
+
return /* @__PURE__ */ jsx12(ContextMenuPrimitive.Sub, { ...props, "data-slot": slotName });
|
|
1198
1415
|
}
|
|
1199
1416
|
function ContextMenuRadioGroup({
|
|
1200
1417
|
slotName = "context-menu-radio-group",
|
|
1201
1418
|
...props
|
|
1202
1419
|
}) {
|
|
1203
|
-
return /* @__PURE__ */
|
|
1420
|
+
return /* @__PURE__ */ jsx12(ContextMenuPrimitive.RadioGroup, { ...props, "data-slot": slotName });
|
|
1204
1421
|
}
|
|
1205
1422
|
function ContextMenuSubTrigger({
|
|
1206
1423
|
className,
|
|
@@ -1209,8 +1426,8 @@ function ContextMenuSubTrigger({
|
|
|
1209
1426
|
slotName = "context-menu-sub-trigger",
|
|
1210
1427
|
...props
|
|
1211
1428
|
}) {
|
|
1212
|
-
return /* @__PURE__ */
|
|
1213
|
-
|
|
1429
|
+
return /* @__PURE__ */ jsxs7(
|
|
1430
|
+
ContextMenuPrimitive.SubTrigger,
|
|
1214
1431
|
{
|
|
1215
1432
|
"data-inset": inset,
|
|
1216
1433
|
className: cn(
|
|
@@ -1221,7 +1438,7 @@ function ContextMenuSubTrigger({
|
|
|
1221
1438
|
"data-slot": slotName,
|
|
1222
1439
|
children: [
|
|
1223
1440
|
children,
|
|
1224
|
-
/* @__PURE__ */
|
|
1441
|
+
/* @__PURE__ */ jsx12(ChevronRightIcon, { className: "ml-auto" })
|
|
1225
1442
|
]
|
|
1226
1443
|
}
|
|
1227
1444
|
);
|
|
@@ -1231,8 +1448,8 @@ function ContextMenuSubContent({
|
|
|
1231
1448
|
slotName = "context-menu-sub-content",
|
|
1232
1449
|
...props
|
|
1233
1450
|
}) {
|
|
1234
|
-
return /* @__PURE__ */
|
|
1235
|
-
|
|
1451
|
+
return /* @__PURE__ */ jsx12(
|
|
1452
|
+
ContextMenuPrimitive.SubContent,
|
|
1236
1453
|
{
|
|
1237
1454
|
className: cn(
|
|
1238
1455
|
`${menuSurface} p-1.5 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-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 z-50 min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-hidden`,
|
|
@@ -1248,8 +1465,8 @@ function ContextMenuContent({
|
|
|
1248
1465
|
slotName = "context-menu-content",
|
|
1249
1466
|
...props
|
|
1250
1467
|
}) {
|
|
1251
|
-
return /* @__PURE__ */
|
|
1252
|
-
|
|
1468
|
+
return /* @__PURE__ */ jsx12(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx12(
|
|
1469
|
+
ContextMenuPrimitive.Content,
|
|
1253
1470
|
{
|
|
1254
1471
|
className: cn(
|
|
1255
1472
|
`${menuSurface} p-1.5 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-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 z-50 max-h-(--radix-context-menu-content-available-height) min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-x-hidden overflow-y-auto`,
|
|
@@ -1267,8 +1484,8 @@ function ContextMenuItem({
|
|
|
1267
1484
|
slotName = "context-menu-item",
|
|
1268
1485
|
...props
|
|
1269
1486
|
}) {
|
|
1270
|
-
return /* @__PURE__ */
|
|
1271
|
-
|
|
1487
|
+
return /* @__PURE__ */ jsx12(
|
|
1488
|
+
ContextMenuPrimitive.Item,
|
|
1272
1489
|
{
|
|
1273
1490
|
"data-inset": inset,
|
|
1274
1491
|
"data-variant": variant,
|
|
@@ -1288,8 +1505,8 @@ function ContextMenuCheckboxItem({
|
|
|
1288
1505
|
slotName = "context-menu-checkbox-item",
|
|
1289
1506
|
...props
|
|
1290
1507
|
}) {
|
|
1291
|
-
return /* @__PURE__ */
|
|
1292
|
-
|
|
1508
|
+
return /* @__PURE__ */ jsxs7(
|
|
1509
|
+
ContextMenuPrimitive.CheckboxItem,
|
|
1293
1510
|
{
|
|
1294
1511
|
className: cn(
|
|
1295
1512
|
"gap-2 py-1.5 pr-2 pl-8 text-sm [&_svg:not([class*='size-'])]:size-4 rounded-xl relative flex cursor-default items-center outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
|
|
@@ -1299,7 +1516,7 @@ function ContextMenuCheckboxItem({
|
|
|
1299
1516
|
...props,
|
|
1300
1517
|
"data-slot": slotName,
|
|
1301
1518
|
children: [
|
|
1302
|
-
/* @__PURE__ */
|
|
1519
|
+
/* @__PURE__ */ jsx12("span", { className: "left-2 size-3.5 pointer-events-none absolute flex items-center justify-center", children: /* @__PURE__ */ jsx12(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx12(CheckIcon, { className: "size-4" }) }) }),
|
|
1303
1520
|
children
|
|
1304
1521
|
]
|
|
1305
1522
|
}
|
|
@@ -1311,8 +1528,8 @@ function ContextMenuRadioItem({
|
|
|
1311
1528
|
slotName = "context-menu-radio-item",
|
|
1312
1529
|
...props
|
|
1313
1530
|
}) {
|
|
1314
|
-
return /* @__PURE__ */
|
|
1315
|
-
|
|
1531
|
+
return /* @__PURE__ */ jsxs7(
|
|
1532
|
+
ContextMenuPrimitive.RadioItem,
|
|
1316
1533
|
{
|
|
1317
1534
|
className: cn(
|
|
1318
1535
|
"gap-2 py-1.5 pr-2 pl-8 text-sm [&_svg:not([class*='size-'])]:size-4 rounded-xl relative flex cursor-default items-center outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
|
|
@@ -1321,7 +1538,7 @@ function ContextMenuRadioItem({
|
|
|
1321
1538
|
...props,
|
|
1322
1539
|
"data-slot": slotName,
|
|
1323
1540
|
children: [
|
|
1324
|
-
/* @__PURE__ */
|
|
1541
|
+
/* @__PURE__ */ jsx12("span", { className: "left-2 size-3.5 pointer-events-none absolute flex items-center justify-center", children: /* @__PURE__ */ jsx12(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx12(CircleIcon, { className: "size-2 fill-current" }) }) }),
|
|
1325
1542
|
children
|
|
1326
1543
|
]
|
|
1327
1544
|
}
|
|
@@ -1333,8 +1550,8 @@ function ContextMenuLabel({
|
|
|
1333
1550
|
slotName = "context-menu-label",
|
|
1334
1551
|
...props
|
|
1335
1552
|
}) {
|
|
1336
|
-
return /* @__PURE__ */
|
|
1337
|
-
|
|
1553
|
+
return /* @__PURE__ */ jsx12(
|
|
1554
|
+
ContextMenuPrimitive.Label,
|
|
1338
1555
|
{
|
|
1339
1556
|
"data-inset": inset,
|
|
1340
1557
|
className: cn(
|
|
@@ -1351,8 +1568,8 @@ function ContextMenuSeparator({
|
|
|
1351
1568
|
slotName = "context-menu-separator",
|
|
1352
1569
|
...props
|
|
1353
1570
|
}) {
|
|
1354
|
-
return /* @__PURE__ */
|
|
1355
|
-
|
|
1571
|
+
return /* @__PURE__ */ jsx12(
|
|
1572
|
+
ContextMenuPrimitive.Separator,
|
|
1356
1573
|
{
|
|
1357
1574
|
className: cn("-mx-1 my-1 h-px bg-border", className),
|
|
1358
1575
|
...props,
|
|
@@ -1365,7 +1582,7 @@ function ContextMenuShortcut({
|
|
|
1365
1582
|
slotName = "context-menu-shortcut",
|
|
1366
1583
|
...props
|
|
1367
1584
|
}) {
|
|
1368
|
-
return /* @__PURE__ */
|
|
1585
|
+
return /* @__PURE__ */ jsx12(
|
|
1369
1586
|
"span",
|
|
1370
1587
|
{
|
|
1371
1588
|
className: cn(
|
|
@@ -1377,6 +1594,10 @@ function ContextMenuShortcut({
|
|
|
1377
1594
|
}
|
|
1378
1595
|
);
|
|
1379
1596
|
}
|
|
1597
|
+
|
|
1598
|
+
// src/components/ui/data-table-faceted-filter.tsx
|
|
1599
|
+
import { Check as Check2, PlusCircle } from "lucide-react";
|
|
1600
|
+
import { jsx as jsx13, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
1380
1601
|
var dataTableFacetedFilterDefaultLabels = {
|
|
1381
1602
|
noOptionsLabel: "No options."
|
|
1382
1603
|
};
|
|
@@ -1389,17 +1610,17 @@ function FilterPopover({
|
|
|
1389
1610
|
noOptionsLabel,
|
|
1390
1611
|
slotName = "data-table-faceted-filter"
|
|
1391
1612
|
}) {
|
|
1392
|
-
return /* @__PURE__ */
|
|
1393
|
-
/* @__PURE__ */
|
|
1613
|
+
return /* @__PURE__ */ jsxs8(Popover, { children: [
|
|
1614
|
+
/* @__PURE__ */ jsx13(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs8(
|
|
1394
1615
|
Button,
|
|
1395
1616
|
{
|
|
1396
1617
|
variant: "outline",
|
|
1397
|
-
className: "h-11
|
|
1618
|
+
className: "h-11 gap-3 has-[>svg]:px-3 rounded-2xl border-dashed border-border",
|
|
1398
1619
|
slotName,
|
|
1399
1620
|
children: [
|
|
1400
|
-
/* @__PURE__ */
|
|
1621
|
+
/* @__PURE__ */ jsx13(PlusCircle, { className: "size-4" }),
|
|
1401
1622
|
label,
|
|
1402
|
-
selected.size > 0 && /* @__PURE__ */
|
|
1623
|
+
selected.size > 0 && /* @__PURE__ */ jsx13(
|
|
1403
1624
|
Badge,
|
|
1404
1625
|
{
|
|
1405
1626
|
variant: "secondary",
|
|
@@ -1410,23 +1631,23 @@ function FilterPopover({
|
|
|
1410
1631
|
]
|
|
1411
1632
|
}
|
|
1412
1633
|
) }),
|
|
1413
|
-
/* @__PURE__ */
|
|
1414
|
-
/* @__PURE__ */
|
|
1415
|
-
/* @__PURE__ */
|
|
1634
|
+
/* @__PURE__ */ jsx13(PopoverContent, { className: cn("p-0", width), align: "start", children: /* @__PURE__ */ jsx13(Command, { children: /* @__PURE__ */ jsxs8(CommandList, { children: [
|
|
1635
|
+
/* @__PURE__ */ jsx13(CommandEmpty, { children: noOptionsLabel }),
|
|
1636
|
+
/* @__PURE__ */ jsx13(CommandGroup, { children: options.map((option) => /* @__PURE__ */ jsxs8(
|
|
1416
1637
|
CommandItem,
|
|
1417
1638
|
{
|
|
1418
1639
|
value: option.label,
|
|
1419
1640
|
onSelect: () => onToggle(option.value),
|
|
1420
1641
|
className: "h-10 rounded-xl",
|
|
1421
1642
|
children: [
|
|
1422
|
-
/* @__PURE__ */
|
|
1643
|
+
/* @__PURE__ */ jsx13(
|
|
1423
1644
|
"div",
|
|
1424
1645
|
{
|
|
1425
1646
|
className: cn(
|
|
1426
1647
|
"mr-2 size-4 flex items-center justify-center rounded-md border border-border",
|
|
1427
1648
|
selected.has(option.value) ? "bg-primary text-primary-foreground" : "opacity-50"
|
|
1428
1649
|
),
|
|
1429
|
-
children: selected.has(option.value) && /* @__PURE__ */
|
|
1650
|
+
children: selected.has(option.value) && /* @__PURE__ */ jsx13(Check2, { className: "size-3" })
|
|
1430
1651
|
}
|
|
1431
1652
|
),
|
|
1432
1653
|
option.label
|
|
@@ -1458,7 +1679,7 @@ function FacetedFilter({
|
|
|
1458
1679
|
const arr = Array.from(next);
|
|
1459
1680
|
column?.setFilterValue(arr.length ? arr : void 0);
|
|
1460
1681
|
};
|
|
1461
|
-
return /* @__PURE__ */
|
|
1682
|
+
return /* @__PURE__ */ jsx13(
|
|
1462
1683
|
FilterPopover,
|
|
1463
1684
|
{
|
|
1464
1685
|
label: filter.label,
|
|
@@ -1491,7 +1712,7 @@ function ServerFacetedFilter({
|
|
|
1491
1712
|
}
|
|
1492
1713
|
onChange(Array.from(next));
|
|
1493
1714
|
};
|
|
1494
|
-
return /* @__PURE__ */
|
|
1715
|
+
return /* @__PURE__ */ jsx13(
|
|
1495
1716
|
FilterPopover,
|
|
1496
1717
|
{
|
|
1497
1718
|
label: filter.label,
|
|
@@ -1503,34 +1724,38 @@ function ServerFacetedFilter({
|
|
|
1503
1724
|
}
|
|
1504
1725
|
);
|
|
1505
1726
|
}
|
|
1727
|
+
|
|
1728
|
+
// src/components/ui/data-table-row-actions.tsx
|
|
1729
|
+
import { MoreVertical } from "lucide-react";
|
|
1730
|
+
import { jsx as jsx14, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
1506
1731
|
function RowActionsMenu({
|
|
1507
1732
|
row,
|
|
1508
1733
|
actions,
|
|
1509
1734
|
slotName = "data-table-row-actions"
|
|
1510
1735
|
}) {
|
|
1511
|
-
return /* @__PURE__ */
|
|
1736
|
+
return /* @__PURE__ */ jsx14(
|
|
1512
1737
|
"div",
|
|
1513
1738
|
{
|
|
1514
1739
|
className: "flex justify-end",
|
|
1515
1740
|
onClick: (event) => event.stopPropagation(),
|
|
1516
1741
|
"data-slot": slotName,
|
|
1517
|
-
children: /* @__PURE__ */
|
|
1518
|
-
/* @__PURE__ */
|
|
1742
|
+
children: /* @__PURE__ */ jsxs9(DropdownMenu, { children: [
|
|
1743
|
+
/* @__PURE__ */ jsx14(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx14(
|
|
1519
1744
|
Button,
|
|
1520
1745
|
{
|
|
1521
1746
|
variant: "ghost",
|
|
1522
1747
|
size: "icon",
|
|
1523
1748
|
className: "size-8 rounded-xl text-muted-foreground hover:text-foreground",
|
|
1524
|
-
children: /* @__PURE__ */
|
|
1749
|
+
children: /* @__PURE__ */ jsx14(MoreVertical, { className: "size-4" })
|
|
1525
1750
|
}
|
|
1526
1751
|
) }),
|
|
1527
|
-
/* @__PURE__ */
|
|
1752
|
+
/* @__PURE__ */ jsx14(DropdownMenuContent, { align: "end", className: "rounded-2xl", children: actions.map((action) => /* @__PURE__ */ jsxs9(
|
|
1528
1753
|
DropdownMenuItem,
|
|
1529
1754
|
{
|
|
1530
1755
|
onClick: () => action.onClick(row),
|
|
1531
1756
|
className: action.variant === "destructive" ? "rounded-xl text-destructive focus:text-destructive" : "rounded-xl",
|
|
1532
1757
|
children: [
|
|
1533
|
-
action.icon && /* @__PURE__ */
|
|
1758
|
+
action.icon && /* @__PURE__ */ jsx14(action.icon, { className: "size-4" }),
|
|
1534
1759
|
action.label
|
|
1535
1760
|
]
|
|
1536
1761
|
},
|
|
@@ -1540,6 +1765,10 @@ function RowActionsMenu({
|
|
|
1540
1765
|
}
|
|
1541
1766
|
);
|
|
1542
1767
|
}
|
|
1768
|
+
|
|
1769
|
+
// src/components/ui/empty-state.tsx
|
|
1770
|
+
import { SearchX } from "lucide-react";
|
|
1771
|
+
import { jsx as jsx15, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
1543
1772
|
var emptyStateLabels = {
|
|
1544
1773
|
title: "Nothing to show"
|
|
1545
1774
|
};
|
|
@@ -1552,7 +1781,7 @@ function EmptyState({
|
|
|
1552
1781
|
className,
|
|
1553
1782
|
slotName = "empty-state"
|
|
1554
1783
|
}) {
|
|
1555
|
-
return /* @__PURE__ */
|
|
1784
|
+
return /* @__PURE__ */ jsxs10(
|
|
1556
1785
|
"div",
|
|
1557
1786
|
{
|
|
1558
1787
|
"data-compact": compact || void 0,
|
|
@@ -1563,7 +1792,7 @@ function EmptyState({
|
|
|
1563
1792
|
),
|
|
1564
1793
|
"data-slot": slotName,
|
|
1565
1794
|
children: [
|
|
1566
|
-
/* @__PURE__ */
|
|
1795
|
+
/* @__PURE__ */ jsx15(
|
|
1567
1796
|
"span",
|
|
1568
1797
|
{
|
|
1569
1798
|
"data-slot": "empty-state-icon",
|
|
@@ -1571,10 +1800,10 @@ function EmptyState({
|
|
|
1571
1800
|
"flex shrink-0 items-center justify-center rounded-full bg-surface-recessed text-muted-foreground",
|
|
1572
1801
|
compact ? "size-8" : "size-10"
|
|
1573
1802
|
),
|
|
1574
|
-
children: /* @__PURE__ */
|
|
1803
|
+
children: /* @__PURE__ */ jsx15(Icon2, { className: compact ? "size-4" : "size-5" })
|
|
1575
1804
|
}
|
|
1576
1805
|
),
|
|
1577
|
-
/* @__PURE__ */
|
|
1806
|
+
/* @__PURE__ */ jsxs10(
|
|
1578
1807
|
"div",
|
|
1579
1808
|
{
|
|
1580
1809
|
className: cn(
|
|
@@ -1582,7 +1811,7 @@ function EmptyState({
|
|
|
1582
1811
|
compact ? "gap-0.5" : "gap-1"
|
|
1583
1812
|
),
|
|
1584
1813
|
children: [
|
|
1585
|
-
/* @__PURE__ */
|
|
1814
|
+
/* @__PURE__ */ jsx15(
|
|
1586
1815
|
"p",
|
|
1587
1816
|
{
|
|
1588
1817
|
"data-slot": "empty-state-title",
|
|
@@ -1593,7 +1822,7 @@ function EmptyState({
|
|
|
1593
1822
|
children: title
|
|
1594
1823
|
}
|
|
1595
1824
|
),
|
|
1596
|
-
description && /* @__PURE__ */
|
|
1825
|
+
description && /* @__PURE__ */ jsx15(
|
|
1597
1826
|
"p",
|
|
1598
1827
|
{
|
|
1599
1828
|
"data-slot": "empty-state-description",
|
|
@@ -1604,7 +1833,7 @@ function EmptyState({
|
|
|
1604
1833
|
]
|
|
1605
1834
|
}
|
|
1606
1835
|
),
|
|
1607
|
-
actions && /* @__PURE__ */
|
|
1836
|
+
actions && /* @__PURE__ */ jsx15(
|
|
1608
1837
|
"div",
|
|
1609
1838
|
{
|
|
1610
1839
|
"data-slot": "empty-state-actions",
|
|
@@ -1619,7 +1848,11 @@ function EmptyState({
|
|
|
1619
1848
|
}
|
|
1620
1849
|
);
|
|
1621
1850
|
}
|
|
1622
|
-
|
|
1851
|
+
|
|
1852
|
+
// src/components/ui/table.tsx
|
|
1853
|
+
import * as React5 from "react";
|
|
1854
|
+
import { jsx as jsx16 } from "react/jsx-runtime";
|
|
1855
|
+
var Table = React5.forwardRef(({ className, slotName = "table-container", ...props }, ref) => /* @__PURE__ */ jsx16(
|
|
1623
1856
|
"div",
|
|
1624
1857
|
{
|
|
1625
1858
|
className: cn(
|
|
@@ -1629,7 +1862,7 @@ var Table = React3.forwardRef(({ className, slotName = "table-container", ...pro
|
|
|
1629
1862
|
"relative w-full overflow-hidden bg-card"
|
|
1630
1863
|
),
|
|
1631
1864
|
"data-slot": slotName,
|
|
1632
|
-
children: /* @__PURE__ */
|
|
1865
|
+
children: /* @__PURE__ */ jsx16(
|
|
1633
1866
|
"div",
|
|
1634
1867
|
{
|
|
1635
1868
|
className: cn(
|
|
@@ -1638,7 +1871,7 @@ var Table = React3.forwardRef(({ className, slotName = "table-container", ...pro
|
|
|
1638
1871
|
nestedEdgeToEdge,
|
|
1639
1872
|
"w-full overflow-x-auto"
|
|
1640
1873
|
),
|
|
1641
|
-
children: /* @__PURE__ */
|
|
1874
|
+
children: /* @__PURE__ */ jsx16(
|
|
1642
1875
|
"table",
|
|
1643
1876
|
{
|
|
1644
1877
|
ref,
|
|
@@ -1651,9 +1884,9 @@ var Table = React3.forwardRef(({ className, slotName = "table-container", ...pro
|
|
|
1651
1884
|
}
|
|
1652
1885
|
));
|
|
1653
1886
|
Table.displayName = "Table";
|
|
1654
|
-
var TableHeader =
|
|
1887
|
+
var TableHeader = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx16("thead", { ref, className: cn("[&_tr]:border-b", className), ...props }));
|
|
1655
1888
|
TableHeader.displayName = "TableHeader";
|
|
1656
|
-
var TableBody =
|
|
1889
|
+
var TableBody = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx16(
|
|
1657
1890
|
"tbody",
|
|
1658
1891
|
{
|
|
1659
1892
|
ref,
|
|
@@ -1662,7 +1895,7 @@ var TableBody = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
1662
1895
|
}
|
|
1663
1896
|
));
|
|
1664
1897
|
TableBody.displayName = "TableBody";
|
|
1665
|
-
var TableFooter =
|
|
1898
|
+
var TableFooter = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx16(
|
|
1666
1899
|
"tfoot",
|
|
1667
1900
|
{
|
|
1668
1901
|
ref,
|
|
@@ -1674,7 +1907,7 @@ var TableFooter = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
1674
1907
|
}
|
|
1675
1908
|
));
|
|
1676
1909
|
TableFooter.displayName = "TableFooter";
|
|
1677
|
-
var TableRow =
|
|
1910
|
+
var TableRow = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx16(
|
|
1678
1911
|
"tr",
|
|
1679
1912
|
{
|
|
1680
1913
|
ref,
|
|
@@ -1686,7 +1919,7 @@ var TableRow = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
1686
1919
|
}
|
|
1687
1920
|
));
|
|
1688
1921
|
TableRow.displayName = "TableRow";
|
|
1689
|
-
var TableHead =
|
|
1922
|
+
var TableHead = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx16(
|
|
1690
1923
|
"th",
|
|
1691
1924
|
{
|
|
1692
1925
|
ref,
|
|
@@ -1698,7 +1931,7 @@ var TableHead = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
1698
1931
|
}
|
|
1699
1932
|
));
|
|
1700
1933
|
TableHead.displayName = "TableHead";
|
|
1701
|
-
var TableCell =
|
|
1934
|
+
var TableCell = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx16(
|
|
1702
1935
|
"td",
|
|
1703
1936
|
{
|
|
1704
1937
|
ref,
|
|
@@ -1710,7 +1943,7 @@ var TableCell = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
1710
1943
|
}
|
|
1711
1944
|
));
|
|
1712
1945
|
TableCell.displayName = "TableCell";
|
|
1713
|
-
var TableCaption =
|
|
1946
|
+
var TableCaption = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx16(
|
|
1714
1947
|
"caption",
|
|
1715
1948
|
{
|
|
1716
1949
|
ref,
|
|
@@ -1722,6 +1955,26 @@ var TableCaption = React3.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
1722
1955
|
}
|
|
1723
1956
|
));
|
|
1724
1957
|
TableCaption.displayName = "TableCaption";
|
|
1958
|
+
|
|
1959
|
+
// src/components/ui/data-table.tsx
|
|
1960
|
+
import {
|
|
1961
|
+
flexRender,
|
|
1962
|
+
getCoreRowModel,
|
|
1963
|
+
getFilteredRowModel,
|
|
1964
|
+
getPaginationRowModel,
|
|
1965
|
+
getSortedRowModel,
|
|
1966
|
+
useReactTable
|
|
1967
|
+
} from "@tanstack/react-table";
|
|
1968
|
+
import {
|
|
1969
|
+
ArrowUpDown,
|
|
1970
|
+
ChevronLeft,
|
|
1971
|
+
ChevronRight,
|
|
1972
|
+
Plus,
|
|
1973
|
+
Search,
|
|
1974
|
+
X
|
|
1975
|
+
} from "lucide-react";
|
|
1976
|
+
import { useMemo as useMemo2, useState as useState5 } from "react";
|
|
1977
|
+
import { jsx as jsx17, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
1725
1978
|
function pageRange(current, last) {
|
|
1726
1979
|
if (last <= 7) {
|
|
1727
1980
|
return Array.from({ length: last }, (_, i) => i + 1);
|
|
@@ -1789,11 +2042,11 @@ function DataTable({
|
|
|
1789
2042
|
noOptionsLabel,
|
|
1790
2043
|
totalLabel
|
|
1791
2044
|
});
|
|
1792
|
-
const [sorting, setSorting] =
|
|
1793
|
-
const [globalFilter, setGlobalFilter] =
|
|
1794
|
-
const [columnFilters, setColumnFilters] =
|
|
2045
|
+
const [sorting, setSorting] = useState5([]);
|
|
2046
|
+
const [globalFilter, setGlobalFilter] = useState5("");
|
|
2047
|
+
const [columnFilters, setColumnFilters] = useState5([]);
|
|
1795
2048
|
const serverSearch = onSearchChange !== void 0;
|
|
1796
|
-
const tableColumns =
|
|
2049
|
+
const tableColumns = useMemo2(() => {
|
|
1797
2050
|
if (!rowActions || rowActions.length === 0) {
|
|
1798
2051
|
return columns;
|
|
1799
2052
|
}
|
|
@@ -1803,7 +2056,7 @@ function DataTable({
|
|
|
1803
2056
|
id: "__actions",
|
|
1804
2057
|
header: "",
|
|
1805
2058
|
enableSorting: false,
|
|
1806
|
-
cell: ({ row }) => /* @__PURE__ */
|
|
2059
|
+
cell: ({ row }) => /* @__PURE__ */ jsx17(RowActionsMenu, { row: row.original, actions: rowActions })
|
|
1807
2060
|
}
|
|
1808
2061
|
];
|
|
1809
2062
|
}, [columns, rowActions]);
|
|
@@ -1841,16 +2094,16 @@ function DataTable({
|
|
|
1841
2094
|
const sizeChoices = [.../* @__PURE__ */ new Set([...pageSizeOptions, activePageSize])].sort(
|
|
1842
2095
|
(a, b) => a - b
|
|
1843
2096
|
);
|
|
1844
|
-
return /* @__PURE__ */
|
|
2097
|
+
return /* @__PURE__ */ jsxs11(
|
|
1845
2098
|
"div",
|
|
1846
2099
|
{
|
|
1847
2100
|
className: cn(elevatedSurface, "space-y-4 p-5 bg-card"),
|
|
1848
2101
|
"data-slot": slotName,
|
|
1849
2102
|
children: [
|
|
1850
|
-
hasToolbar && /* @__PURE__ */
|
|
1851
|
-
searchKey !== void 0 && /* @__PURE__ */
|
|
1852
|
-
/* @__PURE__ */
|
|
1853
|
-
/* @__PURE__ */
|
|
2103
|
+
hasToolbar && /* @__PURE__ */ jsxs11("div", { className: "gap-2 flex flex-wrap items-center", children: [
|
|
2104
|
+
searchKey !== void 0 && /* @__PURE__ */ jsxs11("div", { className: "relative min-w-[200px] flex-1", children: [
|
|
2105
|
+
/* @__PURE__ */ jsx17(Search, { className: "left-4 size-4 pointer-events-none absolute top-1/2 z-10 -translate-y-1/2 text-muted-foreground" }),
|
|
2106
|
+
/* @__PURE__ */ jsx17(
|
|
1854
2107
|
Input,
|
|
1855
2108
|
{
|
|
1856
2109
|
value: serverSearch ? searchValue ?? "" : globalFilter,
|
|
@@ -1860,7 +2113,7 @@ function DataTable({
|
|
|
1860
2113
|
}
|
|
1861
2114
|
)
|
|
1862
2115
|
] }),
|
|
1863
|
-
filters?.map((filter) => /* @__PURE__ */
|
|
2116
|
+
filters?.map((filter) => /* @__PURE__ */ jsx17(
|
|
1864
2117
|
FacetedFilter,
|
|
1865
2118
|
{
|
|
1866
2119
|
column: table.getColumn(filter.columnId),
|
|
@@ -1869,7 +2122,7 @@ function DataTable({
|
|
|
1869
2122
|
},
|
|
1870
2123
|
filter.columnId
|
|
1871
2124
|
)),
|
|
1872
|
-
serverFilters?.map((filter) => /* @__PURE__ */
|
|
2125
|
+
serverFilters?.map((filter) => /* @__PURE__ */ jsx17(
|
|
1873
2126
|
ServerFacetedFilter,
|
|
1874
2127
|
{
|
|
1875
2128
|
filter,
|
|
@@ -1880,7 +2133,7 @@ function DataTable({
|
|
|
1880
2133
|
filter.paramKey
|
|
1881
2134
|
)),
|
|
1882
2135
|
toolbarExtra,
|
|
1883
|
-
(columnFilters.length > 0 || hasServerSelection || canClearFilters && onClearFilters) && /* @__PURE__ */
|
|
2136
|
+
(columnFilters.length > 0 || hasServerSelection || canClearFilters && onClearFilters) && /* @__PURE__ */ jsxs11(
|
|
1884
2137
|
Button,
|
|
1885
2138
|
{
|
|
1886
2139
|
variant: "ghost",
|
|
@@ -1895,32 +2148,32 @@ function DataTable({
|
|
|
1895
2148
|
className: "h-11 rounded-2xl",
|
|
1896
2149
|
children: [
|
|
1897
2150
|
labels.clearFiltersLabel,
|
|
1898
|
-
/* @__PURE__ */
|
|
2151
|
+
/* @__PURE__ */ jsx17(X, { className: "ml-1 size-4" })
|
|
1899
2152
|
]
|
|
1900
2153
|
}
|
|
1901
2154
|
),
|
|
1902
|
-
onCreate && /* @__PURE__ */
|
|
2155
|
+
onCreate && /* @__PURE__ */ jsx17(
|
|
1903
2156
|
Button,
|
|
1904
2157
|
{
|
|
1905
2158
|
onClick: onCreate,
|
|
1906
2159
|
"aria-label": labels.createLabel,
|
|
1907
2160
|
size: "icon",
|
|
1908
2161
|
className: "size-11 rounded-2xl shrink-0 cursor-pointer bg-primary text-primary-foreground hover:bg-primary/90",
|
|
1909
|
-
children: /* @__PURE__ */
|
|
2162
|
+
children: /* @__PURE__ */ jsx17(Plus, { className: "size-5" })
|
|
1910
2163
|
}
|
|
1911
2164
|
),
|
|
1912
|
-
toolbarAction && /* @__PURE__ */
|
|
2165
|
+
toolbarAction && /* @__PURE__ */ jsx17("div", { className: "ml-auto", children: toolbarAction })
|
|
1913
2166
|
] }),
|
|
1914
|
-
/* @__PURE__ */
|
|
1915
|
-
/* @__PURE__ */
|
|
2167
|
+
/* @__PURE__ */ jsxs11(Table, { children: [
|
|
2168
|
+
/* @__PURE__ */ jsx17(TableHeader, { children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx17(
|
|
1916
2169
|
TableRow,
|
|
1917
2170
|
{
|
|
1918
2171
|
className: "hover:bg-transparent",
|
|
1919
|
-
children: headerGroup.headers.map((header) => /* @__PURE__ */
|
|
2172
|
+
children: headerGroup.headers.map((header) => /* @__PURE__ */ jsx17(
|
|
1920
2173
|
TableHead,
|
|
1921
2174
|
{
|
|
1922
2175
|
className: "h-11 px-4 font-medium tracking-wider text-[11px] text-muted-foreground uppercase",
|
|
1923
|
-
children: header.isPlaceholder ? null : header.column.getCanSort() ? /* @__PURE__ */
|
|
2176
|
+
children: header.isPlaceholder ? null : header.column.getCanSort() ? /* @__PURE__ */ jsxs11(
|
|
1924
2177
|
"button",
|
|
1925
2178
|
{
|
|
1926
2179
|
type: "button",
|
|
@@ -1931,7 +2184,7 @@ function DataTable({
|
|
|
1931
2184
|
header.column.columnDef.header,
|
|
1932
2185
|
header.getContext()
|
|
1933
2186
|
),
|
|
1934
|
-
/* @__PURE__ */
|
|
2187
|
+
/* @__PURE__ */ jsx17(ArrowUpDown, { className: "size-3 opacity-50" })
|
|
1935
2188
|
]
|
|
1936
2189
|
}
|
|
1937
2190
|
) : flexRender(
|
|
@@ -1944,8 +2197,8 @@ function DataTable({
|
|
|
1944
2197
|
},
|
|
1945
2198
|
headerGroup.id
|
|
1946
2199
|
)) }),
|
|
1947
|
-
/* @__PURE__ */
|
|
1948
|
-
(row) => renderRow ? renderRow(row) : /* @__PURE__ */
|
|
2200
|
+
/* @__PURE__ */ jsx17(TableBody, { children: table.getRowModel().rows.length ? table.getRowModel().rows.map(
|
|
2201
|
+
(row) => renderRow ? renderRow(row) : /* @__PURE__ */ jsx17(
|
|
1949
2202
|
TableRow,
|
|
1950
2203
|
{
|
|
1951
2204
|
onClick: onRowClick ? () => onRowClick(row.original) : void 0,
|
|
@@ -1955,7 +2208,7 @@ function DataTable({
|
|
|
1955
2208
|
onRowClick && "cursor-pointer",
|
|
1956
2209
|
"data-[active=true]:bg-primary/5"
|
|
1957
2210
|
),
|
|
1958
|
-
children: row.getVisibleCells().map((cell) => /* @__PURE__ */
|
|
2211
|
+
children: row.getVisibleCells().map((cell) => /* @__PURE__ */ jsx17(
|
|
1959
2212
|
TableCell,
|
|
1960
2213
|
{
|
|
1961
2214
|
className: "px-4 py-3",
|
|
@@ -1969,25 +2222,25 @@ function DataTable({
|
|
|
1969
2222
|
},
|
|
1970
2223
|
row.id
|
|
1971
2224
|
)
|
|
1972
|
-
) : /* @__PURE__ */
|
|
2225
|
+
) : /* @__PURE__ */ jsx17(TableRow, { children: /* @__PURE__ */ jsx17(
|
|
1973
2226
|
TableCell,
|
|
1974
2227
|
{
|
|
1975
2228
|
colSpan: tableColumns.length,
|
|
1976
2229
|
className: "h-24 p-0",
|
|
1977
|
-
children: /* @__PURE__ */
|
|
2230
|
+
children: /* @__PURE__ */ jsx17(EmptyState, { compact: true, title: labels.emptyLabel })
|
|
1978
2231
|
}
|
|
1979
2232
|
) }) })
|
|
1980
2233
|
] }),
|
|
1981
|
-
showFooter && /* @__PURE__ */
|
|
1982
|
-
/* @__PURE__ */
|
|
1983
|
-
/* @__PURE__ */
|
|
2234
|
+
showFooter && /* @__PURE__ */ jsxs11("div", { className: "gap-3 pt-4 flex flex-wrap items-center justify-between border-t border-border", children: [
|
|
2235
|
+
/* @__PURE__ */ jsxs11("div", { className: "gap-3 flex items-center", children: [
|
|
2236
|
+
/* @__PURE__ */ jsxs11(
|
|
1984
2237
|
Select,
|
|
1985
2238
|
{
|
|
1986
2239
|
value: String(activePageSize),
|
|
1987
2240
|
onValueChange: (value) => changePageSize(Number(value)),
|
|
1988
2241
|
children: [
|
|
1989
|
-
/* @__PURE__ */
|
|
1990
|
-
/* @__PURE__ */
|
|
2242
|
+
/* @__PURE__ */ jsx17(SelectTrigger, { className: "h-9 rounded-xl w-[74px]", children: /* @__PURE__ */ jsx17("span", { children: activePageSize }) }),
|
|
2243
|
+
/* @__PURE__ */ jsx17(SelectContent, { className: "rounded-xl", children: sizeChoices.map((size) => /* @__PURE__ */ jsx17(
|
|
1991
2244
|
SelectItem,
|
|
1992
2245
|
{
|
|
1993
2246
|
value: String(size),
|
|
@@ -1999,13 +2252,13 @@ function DataTable({
|
|
|
1999
2252
|
]
|
|
2000
2253
|
}
|
|
2001
2254
|
),
|
|
2002
|
-
/* @__PURE__ */
|
|
2255
|
+
/* @__PURE__ */ jsxs11("span", { className: "text-xs font-medium text-muted-foreground", children: [
|
|
2003
2256
|
labels.paginationLabel(currentPage, lastPage),
|
|
2004
2257
|
total !== void 0 && ` \xB7 ${labels.totalLabel(total)}`
|
|
2005
2258
|
] })
|
|
2006
2259
|
] }),
|
|
2007
|
-
/* @__PURE__ */
|
|
2008
|
-
/* @__PURE__ */
|
|
2260
|
+
/* @__PURE__ */ jsxs11("div", { className: "gap-1.5 flex items-center", children: [
|
|
2261
|
+
/* @__PURE__ */ jsx17(
|
|
2009
2262
|
Button,
|
|
2010
2263
|
{
|
|
2011
2264
|
variant: "outline",
|
|
@@ -2013,18 +2266,18 @@ function DataTable({
|
|
|
2013
2266
|
className: "size-9 rounded-xl",
|
|
2014
2267
|
onClick: prev,
|
|
2015
2268
|
disabled: !canPrev,
|
|
2016
|
-
children: /* @__PURE__ */
|
|
2269
|
+
children: /* @__PURE__ */ jsx17(ChevronLeft, { className: "size-4" })
|
|
2017
2270
|
}
|
|
2018
2271
|
),
|
|
2019
2272
|
pageRange(currentPage, lastPage).map(
|
|
2020
|
-
(page, index) => page === "ellipsis" ? /* @__PURE__ */
|
|
2273
|
+
(page, index) => page === "ellipsis" ? /* @__PURE__ */ jsx17(
|
|
2021
2274
|
"span",
|
|
2022
2275
|
{
|
|
2023
2276
|
className: "px-1 text-sm font-medium text-muted-foreground",
|
|
2024
2277
|
children: "\u2026"
|
|
2025
2278
|
},
|
|
2026
2279
|
`ellipsis-${index}`
|
|
2027
|
-
) : /* @__PURE__ */
|
|
2280
|
+
) : /* @__PURE__ */ jsx17(
|
|
2028
2281
|
Button,
|
|
2029
2282
|
{
|
|
2030
2283
|
variant: "outline",
|
|
@@ -2038,7 +2291,7 @@ function DataTable({
|
|
|
2038
2291
|
page
|
|
2039
2292
|
)
|
|
2040
2293
|
),
|
|
2041
|
-
/* @__PURE__ */
|
|
2294
|
+
/* @__PURE__ */ jsx17(
|
|
2042
2295
|
Button,
|
|
2043
2296
|
{
|
|
2044
2297
|
variant: "outline",
|
|
@@ -2046,7 +2299,7 @@ function DataTable({
|
|
|
2046
2299
|
className: "size-9 rounded-xl",
|
|
2047
2300
|
onClick: next,
|
|
2048
2301
|
disabled: !canNext,
|
|
2049
|
-
children: /* @__PURE__ */
|
|
2302
|
+
children: /* @__PURE__ */ jsx17(ChevronRight, { className: "size-4" })
|
|
2050
2303
|
}
|
|
2051
2304
|
)
|
|
2052
2305
|
] })
|
|
@@ -2055,6 +2308,9 @@ function DataTable({
|
|
|
2055
2308
|
}
|
|
2056
2309
|
);
|
|
2057
2310
|
}
|
|
2311
|
+
|
|
2312
|
+
// src/components/ui/calendar-popover.tsx
|
|
2313
|
+
import { jsx as jsx18, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
2058
2314
|
function CalendarPopover({
|
|
2059
2315
|
open,
|
|
2060
2316
|
onOpenChange,
|
|
@@ -2064,9 +2320,9 @@ function CalendarPopover({
|
|
|
2064
2320
|
children,
|
|
2065
2321
|
slotName = "calendar-popover"
|
|
2066
2322
|
}) {
|
|
2067
|
-
return /* @__PURE__ */
|
|
2068
|
-
/* @__PURE__ */
|
|
2069
|
-
/* @__PURE__ */
|
|
2323
|
+
return /* @__PURE__ */ jsxs12(Popover, { open, onOpenChange, children: [
|
|
2324
|
+
/* @__PURE__ */ jsx18(PopoverTrigger, { asChild: true, children: trigger }),
|
|
2325
|
+
/* @__PURE__ */ jsx18(
|
|
2070
2326
|
PopoverContent,
|
|
2071
2327
|
{
|
|
2072
2328
|
className: cn("p-2 w-auto", className),
|
|
@@ -2079,12 +2335,18 @@ function CalendarPopover({
|
|
|
2079
2335
|
)
|
|
2080
2336
|
] });
|
|
2081
2337
|
}
|
|
2338
|
+
|
|
2339
|
+
// src/components/ui/date-picker.tsx
|
|
2340
|
+
import { format } from "date-fns";
|
|
2341
|
+
import { CalendarIcon, X as X2 } from "lucide-react";
|
|
2342
|
+
import { useState as useState6 } from "react";
|
|
2343
|
+
import { jsx as jsx19, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
2082
2344
|
var datePickerDefaultLabels = {
|
|
2083
2345
|
placeholder: "Pick a date",
|
|
2084
2346
|
dateFormat: "dd MMM yy",
|
|
2085
2347
|
clearLabel: "Clear date"
|
|
2086
2348
|
};
|
|
2087
|
-
var triggerClasses = `h-11 px-4
|
|
2349
|
+
var triggerClasses = `h-11 px-4 font-medium flex w-full cursor-pointer items-center gap-2 text-left transition-all disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 ${fieldSurface} ${fieldFocus}`;
|
|
2088
2350
|
function boundaries(minDate, maxDate, disabledDays) {
|
|
2089
2351
|
const matchers = [];
|
|
2090
2352
|
if (minDate) {
|
|
@@ -2124,8 +2386,8 @@ function DatePicker(props) {
|
|
|
2124
2386
|
dateFormat,
|
|
2125
2387
|
clearLabel
|
|
2126
2388
|
});
|
|
2127
|
-
const [open, setOpen] =
|
|
2128
|
-
const [ownValue, setOwnValue] =
|
|
2389
|
+
const [open, setOpen] = useState6(false);
|
|
2390
|
+
const [ownValue, setOwnValue] = useState6(defaultValue);
|
|
2129
2391
|
const isControlled = "value" in props;
|
|
2130
2392
|
const selected = isControlled ? value : ownValue;
|
|
2131
2393
|
const showClear = clearable && !disabled && selected !== void 0;
|
|
@@ -2136,13 +2398,13 @@ function DatePicker(props) {
|
|
|
2136
2398
|
}
|
|
2137
2399
|
onChange?.(next);
|
|
2138
2400
|
}
|
|
2139
|
-
return /* @__PURE__ */
|
|
2140
|
-
/* @__PURE__ */
|
|
2401
|
+
return /* @__PURE__ */ jsxs13("div", { className: cn("relative w-full", className), "data-slot": slotName, children: [
|
|
2402
|
+
/* @__PURE__ */ jsx19(
|
|
2141
2403
|
CalendarPopover,
|
|
2142
2404
|
{
|
|
2143
2405
|
open,
|
|
2144
2406
|
onOpenChange: setOpen,
|
|
2145
|
-
trigger: /* @__PURE__ */
|
|
2407
|
+
trigger: /* @__PURE__ */ jsxs13(
|
|
2146
2408
|
"button",
|
|
2147
2409
|
{
|
|
2148
2410
|
...trigger,
|
|
@@ -2153,8 +2415,8 @@ function DatePicker(props) {
|
|
|
2153
2415
|
"aria-invalid": ariaInvalid ?? (invalid || void 0),
|
|
2154
2416
|
className: cn(triggerClasses, showClear && "pr-11"),
|
|
2155
2417
|
children: [
|
|
2156
|
-
/* @__PURE__ */
|
|
2157
|
-
/* @__PURE__ */
|
|
2418
|
+
/* @__PURE__ */ jsx19(CalendarIcon, { className: "size-4 shrink-0 opacity-60" }),
|
|
2419
|
+
/* @__PURE__ */ jsx19(
|
|
2158
2420
|
"span",
|
|
2159
2421
|
{
|
|
2160
2422
|
className: cn(
|
|
@@ -2167,7 +2429,7 @@ function DatePicker(props) {
|
|
|
2167
2429
|
]
|
|
2168
2430
|
}
|
|
2169
2431
|
),
|
|
2170
|
-
children: /* @__PURE__ */
|
|
2432
|
+
children: /* @__PURE__ */ jsx19(
|
|
2171
2433
|
Calendar,
|
|
2172
2434
|
{
|
|
2173
2435
|
mode: "single",
|
|
@@ -2189,7 +2451,7 @@ function DatePicker(props) {
|
|
|
2189
2451
|
)
|
|
2190
2452
|
}
|
|
2191
2453
|
),
|
|
2192
|
-
showClear && /* @__PURE__ */
|
|
2454
|
+
showClear && /* @__PURE__ */ jsx19(
|
|
2193
2455
|
"button",
|
|
2194
2456
|
{
|
|
2195
2457
|
type: "button",
|
|
@@ -2197,11 +2459,17 @@ function DatePicker(props) {
|
|
|
2197
2459
|
"aria-label": labels.clearLabel,
|
|
2198
2460
|
onClick: () => commit(void 0),
|
|
2199
2461
|
className: `size-7 rounded-xl right-2 absolute top-1/2 inline-flex -translate-y-1/2 cursor-pointer items-center justify-center text-muted-foreground hover:text-foreground ${focusRing}`,
|
|
2200
|
-
children: /* @__PURE__ */
|
|
2462
|
+
children: /* @__PURE__ */ jsx19(X2, { className: "size-3.5" })
|
|
2201
2463
|
}
|
|
2202
2464
|
)
|
|
2203
2465
|
] });
|
|
2204
2466
|
}
|
|
2467
|
+
|
|
2468
|
+
// src/components/ui/date-range-filter.tsx
|
|
2469
|
+
import { format as format2 } from "date-fns";
|
|
2470
|
+
import { CalendarRange, X as X3 } from "lucide-react";
|
|
2471
|
+
import { useState as useState7 } from "react";
|
|
2472
|
+
import { jsx as jsx20, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
2205
2473
|
function parse(value) {
|
|
2206
2474
|
return value ? /* @__PURE__ */ new Date(`${value}T00:00:00`) : void 0;
|
|
2207
2475
|
}
|
|
@@ -2224,16 +2492,16 @@ function DateRangeFilter({
|
|
|
2224
2492
|
dateRangeFilterDefaultLabels,
|
|
2225
2493
|
{ emptyLabel, dateFormat }
|
|
2226
2494
|
);
|
|
2227
|
-
const [open, setOpen] =
|
|
2495
|
+
const [open, setOpen] = useState7(false);
|
|
2228
2496
|
const selected = from || to ? { from: parse(from), to: parse(to) } : void 0;
|
|
2229
|
-
const label = from ? to && to !== from ? `${
|
|
2230
|
-
return /* @__PURE__ */
|
|
2497
|
+
const label = from ? to && to !== from ? `${format2(parse(from), labels.dateFormat)} - ${format2(parse(to), labels.dateFormat)}` : format2(parse(from), labels.dateFormat) : labels.emptyLabel;
|
|
2498
|
+
return /* @__PURE__ */ jsx20(
|
|
2231
2499
|
CalendarPopover,
|
|
2232
2500
|
{
|
|
2233
2501
|
open,
|
|
2234
2502
|
onOpenChange: setOpen,
|
|
2235
2503
|
align: "end",
|
|
2236
|
-
trigger: /* @__PURE__ */
|
|
2504
|
+
trigger: /* @__PURE__ */ jsxs14(
|
|
2237
2505
|
Button,
|
|
2238
2506
|
{
|
|
2239
2507
|
variant: "outline",
|
|
@@ -2244,9 +2512,9 @@ function DateRangeFilter({
|
|
|
2244
2512
|
),
|
|
2245
2513
|
slotName,
|
|
2246
2514
|
children: [
|
|
2247
|
-
/* @__PURE__ */
|
|
2515
|
+
/* @__PURE__ */ jsx20(CalendarRange, { className: "mr-2 size-4" }),
|
|
2248
2516
|
label,
|
|
2249
|
-
(from || to) && /* @__PURE__ */
|
|
2517
|
+
(from || to) && /* @__PURE__ */ jsx20(
|
|
2250
2518
|
"span",
|
|
2251
2519
|
{
|
|
2252
2520
|
role: "button",
|
|
@@ -2256,13 +2524,13 @@ function DateRangeFilter({
|
|
|
2256
2524
|
onChange({ from: void 0, to: void 0 });
|
|
2257
2525
|
},
|
|
2258
2526
|
className: "ml-2 inline-flex",
|
|
2259
|
-
children: /* @__PURE__ */
|
|
2527
|
+
children: /* @__PURE__ */ jsx20(X3, { className: "size-3.5 opacity-60 hover:opacity-100" })
|
|
2260
2528
|
}
|
|
2261
2529
|
)
|
|
2262
2530
|
]
|
|
2263
2531
|
}
|
|
2264
2532
|
),
|
|
2265
|
-
children: /* @__PURE__ */
|
|
2533
|
+
children: /* @__PURE__ */ jsx20(
|
|
2266
2534
|
Calendar,
|
|
2267
2535
|
{
|
|
2268
2536
|
mode: "range",
|
|
@@ -2270,8 +2538,8 @@ function DateRangeFilter({
|
|
|
2270
2538
|
defaultMonth: parse(from),
|
|
2271
2539
|
selected,
|
|
2272
2540
|
onSelect: (range) => onChange({
|
|
2273
|
-
from: range?.from ?
|
|
2274
|
-
to: range?.to ?
|
|
2541
|
+
from: range?.from ? format2(range.from, "yyyy-MM-dd") : void 0,
|
|
2542
|
+
to: range?.to ? format2(range.to, "yyyy-MM-dd") : void 0
|
|
2275
2543
|
}),
|
|
2276
2544
|
className: "rounded-2xl bg-transparent"
|
|
2277
2545
|
}
|
|
@@ -2279,37 +2547,41 @@ function DateRangeFilter({
|
|
|
2279
2547
|
}
|
|
2280
2548
|
);
|
|
2281
2549
|
}
|
|
2550
|
+
|
|
2551
|
+
// src/components/ui/drawer.tsx
|
|
2552
|
+
import { Drawer as DrawerPrimitive } from "vaul";
|
|
2553
|
+
import { jsx as jsx21, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
2282
2554
|
function Drawer({
|
|
2283
2555
|
slotName = "drawer",
|
|
2284
2556
|
...props
|
|
2285
2557
|
}) {
|
|
2286
|
-
return /* @__PURE__ */
|
|
2558
|
+
return /* @__PURE__ */ jsx21(DrawerPrimitive.Root, { ...props, "data-slot": slotName });
|
|
2287
2559
|
}
|
|
2288
2560
|
function DrawerTrigger({
|
|
2289
2561
|
slotName = "drawer-trigger",
|
|
2290
2562
|
...props
|
|
2291
2563
|
}) {
|
|
2292
|
-
return /* @__PURE__ */
|
|
2564
|
+
return /* @__PURE__ */ jsx21(DrawerPrimitive.Trigger, { ...props, "data-slot": slotName });
|
|
2293
2565
|
}
|
|
2294
2566
|
function DrawerPortal({
|
|
2295
2567
|
slotName = "drawer-portal",
|
|
2296
2568
|
...props
|
|
2297
2569
|
}) {
|
|
2298
|
-
return /* @__PURE__ */
|
|
2570
|
+
return /* @__PURE__ */ jsx21(DrawerPrimitive.Portal, { ...props, "data-slot": slotName });
|
|
2299
2571
|
}
|
|
2300
2572
|
function DrawerClose({
|
|
2301
2573
|
slotName = "drawer-close",
|
|
2302
2574
|
...props
|
|
2303
2575
|
}) {
|
|
2304
|
-
return /* @__PURE__ */
|
|
2576
|
+
return /* @__PURE__ */ jsx21(DrawerPrimitive.Close, { ...props, "data-slot": slotName });
|
|
2305
2577
|
}
|
|
2306
2578
|
function DrawerOverlay({
|
|
2307
2579
|
className,
|
|
2308
2580
|
slotName = "drawer-overlay",
|
|
2309
2581
|
...props
|
|
2310
2582
|
}) {
|
|
2311
|
-
return /* @__PURE__ */
|
|
2312
|
-
|
|
2583
|
+
return /* @__PURE__ */ jsx21(
|
|
2584
|
+
DrawerPrimitive.Overlay,
|
|
2313
2585
|
{
|
|
2314
2586
|
className: cn(
|
|
2315
2587
|
"inset-0 bg-black/60 backdrop-blur-sm data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0 fixed z-50",
|
|
@@ -2326,10 +2598,10 @@ function DrawerContent({
|
|
|
2326
2598
|
slotName = "drawer-content",
|
|
2327
2599
|
...props
|
|
2328
2600
|
}) {
|
|
2329
|
-
return /* @__PURE__ */
|
|
2330
|
-
/* @__PURE__ */
|
|
2331
|
-
/* @__PURE__ */
|
|
2332
|
-
|
|
2601
|
+
return /* @__PURE__ */ jsxs15(DrawerPortal, { slotName: "drawer-portal", children: [
|
|
2602
|
+
/* @__PURE__ */ jsx21(DrawerOverlay, {}),
|
|
2603
|
+
/* @__PURE__ */ jsxs15(
|
|
2604
|
+
DrawerPrimitive.Content,
|
|
2333
2605
|
{
|
|
2334
2606
|
className: cn(
|
|
2335
2607
|
`${floatingSurface} group/drawer-content fixed z-50 flex h-auto flex-col border-border`,
|
|
@@ -2342,7 +2614,7 @@ function DrawerContent({
|
|
|
2342
2614
|
...props,
|
|
2343
2615
|
"data-slot": slotName,
|
|
2344
2616
|
children: [
|
|
2345
|
-
/* @__PURE__ */
|
|
2617
|
+
/* @__PURE__ */ jsx21("div", { className: "mt-4 h-2 mx-auto hidden w-[100px] shrink-0 rounded-full bg-muted group-data-[vaul-drawer-direction=bottom]/drawer-content:block" }),
|
|
2346
2618
|
children
|
|
2347
2619
|
]
|
|
2348
2620
|
}
|
|
@@ -2354,7 +2626,7 @@ function DrawerHeader({
|
|
|
2354
2626
|
slotName = "drawer-header",
|
|
2355
2627
|
...props
|
|
2356
2628
|
}) {
|
|
2357
|
-
return /* @__PURE__ */
|
|
2629
|
+
return /* @__PURE__ */ jsx21(
|
|
2358
2630
|
"div",
|
|
2359
2631
|
{
|
|
2360
2632
|
className: cn(
|
|
@@ -2371,7 +2643,7 @@ function DrawerFooter({
|
|
|
2371
2643
|
slotName = "drawer-footer",
|
|
2372
2644
|
...props
|
|
2373
2645
|
}) {
|
|
2374
|
-
return /* @__PURE__ */
|
|
2646
|
+
return /* @__PURE__ */ jsx21(
|
|
2375
2647
|
"div",
|
|
2376
2648
|
{
|
|
2377
2649
|
className: cn("gap-2 p-4 mt-auto flex flex-col", className),
|
|
@@ -2385,8 +2657,8 @@ function DrawerTitle({
|
|
|
2385
2657
|
slotName = "drawer-title",
|
|
2386
2658
|
...props
|
|
2387
2659
|
}) {
|
|
2388
|
-
return /* @__PURE__ */
|
|
2389
|
-
|
|
2660
|
+
return /* @__PURE__ */ jsx21(
|
|
2661
|
+
DrawerPrimitive.Title,
|
|
2390
2662
|
{
|
|
2391
2663
|
className: cn("font-semibold text-foreground", className),
|
|
2392
2664
|
...props,
|
|
@@ -2399,8 +2671,8 @@ function DrawerDescription({
|
|
|
2399
2671
|
slotName = "drawer-description",
|
|
2400
2672
|
...props
|
|
2401
2673
|
}) {
|
|
2402
|
-
return /* @__PURE__ */
|
|
2403
|
-
|
|
2674
|
+
return /* @__PURE__ */ jsx21(
|
|
2675
|
+
DrawerPrimitive.Description,
|
|
2404
2676
|
{
|
|
2405
2677
|
className: cn("text-sm text-muted-foreground", className),
|
|
2406
2678
|
...props,
|
|
@@ -2408,172 +2680,28 @@ function DrawerDescription({
|
|
|
2408
2680
|
}
|
|
2409
2681
|
);
|
|
2410
2682
|
}
|
|
2411
|
-
|
|
2412
|
-
|
|
2413
|
-
|
|
2414
|
-
|
|
2415
|
-
|
|
2416
|
-
|
|
2417
|
-
|
|
2418
|
-
|
|
2419
|
-
|
|
2420
|
-
|
|
2421
|
-
}) {
|
|
2422
|
-
const generatedId = React3.useId();
|
|
2423
|
-
const fieldId = id ?? generatedId;
|
|
2424
|
-
const [hasDescription, setHasDescription] = React3.useState(false);
|
|
2425
|
-
const isInvalid = invalid ?? Boolean(error);
|
|
2426
|
-
const field = React3.useMemo(
|
|
2427
|
-
() => ({
|
|
2428
|
-
controlId: fieldId,
|
|
2429
|
-
descriptionId: `${fieldId}-description`,
|
|
2430
|
-
errorId: `${fieldId}-error`,
|
|
2431
|
-
orientation,
|
|
2432
|
-
invalid: isInvalid,
|
|
2433
|
-
required,
|
|
2434
|
-
hasDescription,
|
|
2435
|
-
setHasDescription
|
|
2436
|
-
}),
|
|
2437
|
-
[fieldId, orientation, isInvalid, required, hasDescription]
|
|
2438
|
-
);
|
|
2439
|
-
return /* @__PURE__ */ jsx(FieldContext.Provider, { value: field, children: /* @__PURE__ */ jsxs(
|
|
2440
|
-
"div",
|
|
2441
|
-
{
|
|
2442
|
-
"data-orientation": orientation,
|
|
2443
|
-
"data-invalid": isInvalid ? "true" : void 0,
|
|
2444
|
-
className: cn(
|
|
2445
|
-
"group/field",
|
|
2446
|
-
orientation === "horizontal" ? "gap-x-4 gap-y-1 grid grid-cols-[1fr_auto] items-center" : "gap-2 flex flex-col",
|
|
2447
|
-
className
|
|
2448
|
-
),
|
|
2449
|
-
...props,
|
|
2450
|
-
"data-slot": slotName,
|
|
2451
|
-
children: [
|
|
2452
|
-
children,
|
|
2453
|
-
/* @__PURE__ */ jsx(FieldError, { message: error })
|
|
2454
|
-
]
|
|
2455
|
-
}
|
|
2456
|
-
) });
|
|
2457
|
-
}
|
|
2458
|
-
function FieldGroup({
|
|
2459
|
-
className,
|
|
2460
|
-
slotName = "field-group",
|
|
2461
|
-
...props
|
|
2462
|
-
}) {
|
|
2463
|
-
return /* @__PURE__ */ jsx(
|
|
2464
|
-
"div",
|
|
2465
|
-
{
|
|
2466
|
-
className: cn("gap-6 flex w-full flex-col", className),
|
|
2467
|
-
...props,
|
|
2468
|
-
"data-slot": slotName
|
|
2469
|
-
}
|
|
2470
|
-
);
|
|
2471
|
-
}
|
|
2472
|
-
function FieldLabel({
|
|
2473
|
-
className,
|
|
2474
|
-
children,
|
|
2475
|
-
requiredLabel = "Required",
|
|
2476
|
-
slotName = "field-label",
|
|
2477
|
-
...props
|
|
2478
|
-
}) {
|
|
2479
|
-
const { controlId, invalid, required } = useField();
|
|
2480
|
-
return /* @__PURE__ */ jsxs(
|
|
2481
|
-
Label,
|
|
2482
|
-
{
|
|
2483
|
-
htmlFor: controlId,
|
|
2484
|
-
className: cn(
|
|
2485
|
-
"gap-1 flex items-center group-data-[orientation=horizontal]/field:col-start-1 group-data-[orientation=horizontal]/field:row-start-1",
|
|
2486
|
-
invalid && "text-destructive",
|
|
2487
|
-
className
|
|
2488
|
-
),
|
|
2489
|
-
...props,
|
|
2490
|
-
slotName,
|
|
2491
|
-
children: [
|
|
2492
|
-
children,
|
|
2493
|
-
required ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
2494
|
-
/* @__PURE__ */ jsx(
|
|
2495
|
-
"span",
|
|
2496
|
-
{
|
|
2497
|
-
"data-slot": "field-required",
|
|
2498
|
-
"aria-hidden": "true",
|
|
2499
|
-
className: "text-destructive",
|
|
2500
|
-
children: "*"
|
|
2501
|
-
}
|
|
2502
|
-
),
|
|
2503
|
-
/* @__PURE__ */ jsx("span", { className: "sr-only", children: requiredLabel })
|
|
2504
|
-
] }) : null
|
|
2505
|
-
]
|
|
2506
|
-
}
|
|
2507
|
-
);
|
|
2508
|
-
}
|
|
2509
|
-
function FieldDescription({
|
|
2510
|
-
className,
|
|
2511
|
-
slotName = "field-description",
|
|
2512
|
-
...props
|
|
2513
|
-
}) {
|
|
2514
|
-
const { descriptionId, setHasDescription } = useField();
|
|
2515
|
-
React3.useEffect(() => {
|
|
2516
|
-
setHasDescription(true);
|
|
2517
|
-
return () => setHasDescription(false);
|
|
2518
|
-
}, [setHasDescription]);
|
|
2519
|
-
return /* @__PURE__ */ jsx(
|
|
2520
|
-
"p",
|
|
2521
|
-
{
|
|
2522
|
-
id: descriptionId,
|
|
2523
|
-
className: cn(
|
|
2524
|
-
"ml-1 text-xs font-medium text-muted-foreground group-data-[orientation=horizontal]/field:col-start-1 group-data-[orientation=horizontal]/field:row-start-2",
|
|
2525
|
-
className
|
|
2526
|
-
),
|
|
2527
|
-
...props,
|
|
2528
|
-
"data-slot": slotName
|
|
2529
|
-
}
|
|
2530
|
-
);
|
|
2531
|
-
}
|
|
2532
|
-
function FieldControl({
|
|
2533
|
-
className,
|
|
2534
|
-
...props
|
|
2535
|
-
}) {
|
|
2536
|
-
const {
|
|
2537
|
-
controlId,
|
|
2538
|
-
descriptionId,
|
|
2539
|
-
errorId,
|
|
2540
|
-
invalid,
|
|
2541
|
-
required,
|
|
2542
|
-
hasDescription
|
|
2543
|
-
} = useField();
|
|
2544
|
-
const requiredProps = required ? { required: true } : {};
|
|
2545
|
-
const describedBy = [
|
|
2546
|
-
hasDescription ? descriptionId : null,
|
|
2547
|
-
invalid ? errorId : null
|
|
2548
|
-
].filter(Boolean).join(" ");
|
|
2549
|
-
return /* @__PURE__ */ jsx(
|
|
2550
|
-
Slot,
|
|
2551
|
-
{
|
|
2552
|
-
"data-field-control": "true",
|
|
2553
|
-
id: controlId,
|
|
2554
|
-
"aria-describedby": describedBy || void 0,
|
|
2555
|
-
"aria-invalid": invalid ? true : void 0,
|
|
2556
|
-
...requiredProps,
|
|
2557
|
-
className: cn(
|
|
2558
|
-
"group-data-[orientation=horizontal]/field:col-start-2 group-data-[orientation=horizontal]/field:row-span-2 group-data-[orientation=horizontal]/field:row-start-1 group-data-[orientation=horizontal]/field:justify-self-end",
|
|
2559
|
-
className
|
|
2560
|
-
),
|
|
2561
|
-
...props
|
|
2562
|
-
}
|
|
2563
|
-
);
|
|
2564
|
-
}
|
|
2683
|
+
|
|
2684
|
+
// src/components/ui/form.tsx
|
|
2685
|
+
import { Slot as Slot2 } from "@radix-ui/react-slot";
|
|
2686
|
+
import * as React6 from "react";
|
|
2687
|
+
import {
|
|
2688
|
+
Controller,
|
|
2689
|
+
FormProvider,
|
|
2690
|
+
useFormContext
|
|
2691
|
+
} from "react-hook-form";
|
|
2692
|
+
import { jsx as jsx22 } from "react/jsx-runtime";
|
|
2565
2693
|
var Form = FormProvider;
|
|
2566
|
-
var FormFieldContext =
|
|
2694
|
+
var FormFieldContext = React6.createContext(
|
|
2567
2695
|
{}
|
|
2568
2696
|
);
|
|
2569
2697
|
var FormField = ({
|
|
2570
2698
|
...props
|
|
2571
2699
|
}) => {
|
|
2572
|
-
return /* @__PURE__ */
|
|
2700
|
+
return /* @__PURE__ */ jsx22(FormFieldContext.Provider, { value: { name: props.name }, children: /* @__PURE__ */ jsx22(Controller, { ...props }) });
|
|
2573
2701
|
};
|
|
2574
2702
|
var useFormField = () => {
|
|
2575
|
-
const fieldContext =
|
|
2576
|
-
const itemContext =
|
|
2703
|
+
const fieldContext = React6.useContext(FormFieldContext);
|
|
2704
|
+
const itemContext = React6.useContext(FormItemContext);
|
|
2577
2705
|
const { getFieldState, formState } = useFormContext();
|
|
2578
2706
|
const fieldState = getFieldState(fieldContext.name, formState);
|
|
2579
2707
|
if (!fieldContext) {
|
|
@@ -2589,12 +2717,12 @@ var useFormField = () => {
|
|
|
2589
2717
|
...fieldState
|
|
2590
2718
|
};
|
|
2591
2719
|
};
|
|
2592
|
-
var FormItemContext =
|
|
2720
|
+
var FormItemContext = React6.createContext(
|
|
2593
2721
|
{}
|
|
2594
2722
|
);
|
|
2595
|
-
var FormItem =
|
|
2596
|
-
const id =
|
|
2597
|
-
return /* @__PURE__ */
|
|
2723
|
+
var FormItem = React6.forwardRef(({ className, slotName = "form-item", ...props }, ref) => {
|
|
2724
|
+
const id = React6.useId();
|
|
2725
|
+
return /* @__PURE__ */ jsx22(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ jsx22(
|
|
2598
2726
|
"div",
|
|
2599
2727
|
{
|
|
2600
2728
|
ref,
|
|
@@ -2605,9 +2733,9 @@ var FormItem = React3.forwardRef(({ className, slotName = "form-item", ...props
|
|
|
2605
2733
|
) });
|
|
2606
2734
|
});
|
|
2607
2735
|
FormItem.displayName = "FormItem";
|
|
2608
|
-
var FormLabel =
|
|
2736
|
+
var FormLabel = React6.forwardRef(({ className, ...props }, ref) => {
|
|
2609
2737
|
const { error, formItemId } = useFormField();
|
|
2610
|
-
return /* @__PURE__ */
|
|
2738
|
+
return /* @__PURE__ */ jsx22(
|
|
2611
2739
|
Label,
|
|
2612
2740
|
{
|
|
2613
2741
|
ref,
|
|
@@ -2618,10 +2746,10 @@ var FormLabel = React3.forwardRef(({ className, ...props }, ref) => {
|
|
|
2618
2746
|
);
|
|
2619
2747
|
});
|
|
2620
2748
|
FormLabel.displayName = "FormLabel";
|
|
2621
|
-
var FormControl =
|
|
2749
|
+
var FormControl = React6.forwardRef(({ ...props }, ref) => {
|
|
2622
2750
|
const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
|
|
2623
|
-
return /* @__PURE__ */
|
|
2624
|
-
|
|
2751
|
+
return /* @__PURE__ */ jsx22(
|
|
2752
|
+
Slot2,
|
|
2625
2753
|
{
|
|
2626
2754
|
ref,
|
|
2627
2755
|
id: formItemId,
|
|
@@ -2632,9 +2760,9 @@ var FormControl = React3.forwardRef(({ ...props }, ref) => {
|
|
|
2632
2760
|
);
|
|
2633
2761
|
});
|
|
2634
2762
|
FormControl.displayName = "FormControl";
|
|
2635
|
-
var FormDescription =
|
|
2763
|
+
var FormDescription = React6.forwardRef(({ className, ...props }, ref) => {
|
|
2636
2764
|
const { formDescriptionId } = useFormField();
|
|
2637
|
-
return /* @__PURE__ */
|
|
2765
|
+
return /* @__PURE__ */ jsx22(
|
|
2638
2766
|
"p",
|
|
2639
2767
|
{
|
|
2640
2768
|
ref,
|
|
@@ -2645,13 +2773,13 @@ var FormDescription = React3.forwardRef(({ className, ...props }, ref) => {
|
|
|
2645
2773
|
);
|
|
2646
2774
|
});
|
|
2647
2775
|
FormDescription.displayName = "FormDescription";
|
|
2648
|
-
var FormMessage =
|
|
2776
|
+
var FormMessage = React6.forwardRef(({ className, children, ...props }, ref) => {
|
|
2649
2777
|
const { error, formMessageId } = useFormField();
|
|
2650
2778
|
const body = error ? String(error?.message ?? "") : children;
|
|
2651
2779
|
if (!body) {
|
|
2652
2780
|
return null;
|
|
2653
2781
|
}
|
|
2654
|
-
return /* @__PURE__ */
|
|
2782
|
+
return /* @__PURE__ */ jsx22(
|
|
2655
2783
|
"p",
|
|
2656
2784
|
{
|
|
2657
2785
|
ref,
|
|
@@ -2666,17 +2794,21 @@ var FormMessage = React3.forwardRef(({ className, children, ...props }, ref) =>
|
|
|
2666
2794
|
);
|
|
2667
2795
|
});
|
|
2668
2796
|
FormMessage.displayName = "FormMessage";
|
|
2797
|
+
|
|
2798
|
+
// src/components/ui/hover-card.tsx
|
|
2799
|
+
import { HoverCard as HoverCardPrimitive } from "radix-ui";
|
|
2800
|
+
import { jsx as jsx23 } from "react/jsx-runtime";
|
|
2669
2801
|
function HoverCard({
|
|
2670
2802
|
slotName = "hover-card",
|
|
2671
2803
|
...props
|
|
2672
2804
|
}) {
|
|
2673
|
-
return /* @__PURE__ */
|
|
2805
|
+
return /* @__PURE__ */ jsx23(HoverCardPrimitive.Root, { ...props, "data-slot": slotName });
|
|
2674
2806
|
}
|
|
2675
2807
|
function HoverCardTrigger({
|
|
2676
2808
|
slotName = "hover-card-trigger",
|
|
2677
2809
|
...props
|
|
2678
2810
|
}) {
|
|
2679
|
-
return /* @__PURE__ */
|
|
2811
|
+
return /* @__PURE__ */ jsx23(HoverCardPrimitive.Trigger, { ...props, "data-slot": slotName });
|
|
2680
2812
|
}
|
|
2681
2813
|
function HoverCardContent({
|
|
2682
2814
|
className,
|
|
@@ -2685,8 +2817,8 @@ function HoverCardContent({
|
|
|
2685
2817
|
slotName = "hover-card-content",
|
|
2686
2818
|
...props
|
|
2687
2819
|
}) {
|
|
2688
|
-
return /* @__PURE__ */
|
|
2689
|
-
|
|
2820
|
+
return /* @__PURE__ */ jsx23(HoverCardPrimitive.Portal, { "data-slot": "hover-card-portal", children: /* @__PURE__ */ jsx23(
|
|
2821
|
+
HoverCardPrimitive.Content,
|
|
2690
2822
|
{
|
|
2691
2823
|
align,
|
|
2692
2824
|
sideOffset,
|
|
@@ -2699,13 +2831,18 @@ function HoverCardContent({
|
|
|
2699
2831
|
}
|
|
2700
2832
|
) });
|
|
2701
2833
|
}
|
|
2834
|
+
|
|
2835
|
+
// src/components/ui/menubar.tsx
|
|
2836
|
+
import { CheckIcon as CheckIcon2, ChevronRightIcon as ChevronRightIcon2, CircleIcon as CircleIcon2 } from "lucide-react";
|
|
2837
|
+
import { Menubar as MenubarPrimitive } from "radix-ui";
|
|
2838
|
+
import { jsx as jsx24, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
2702
2839
|
function Menubar({
|
|
2703
2840
|
className,
|
|
2704
2841
|
slotName = "menubar",
|
|
2705
2842
|
...props
|
|
2706
2843
|
}) {
|
|
2707
|
-
return /* @__PURE__ */
|
|
2708
|
-
|
|
2844
|
+
return /* @__PURE__ */ jsx24(
|
|
2845
|
+
MenubarPrimitive.Root,
|
|
2709
2846
|
{
|
|
2710
2847
|
className: cn(
|
|
2711
2848
|
"h-9 gap-1 p-1 shadow-sm backdrop-blur-xl rounded-2xl flex items-center border border-border bg-card",
|
|
@@ -2720,33 +2857,33 @@ function MenubarMenu({
|
|
|
2720
2857
|
slotName = "menubar-menu",
|
|
2721
2858
|
...props
|
|
2722
2859
|
}) {
|
|
2723
|
-
return /* @__PURE__ */
|
|
2860
|
+
return /* @__PURE__ */ jsx24(MenubarPrimitive.Menu, { ...props, "data-slot": slotName });
|
|
2724
2861
|
}
|
|
2725
2862
|
function MenubarGroup({
|
|
2726
2863
|
slotName = "menubar-group",
|
|
2727
2864
|
...props
|
|
2728
2865
|
}) {
|
|
2729
|
-
return /* @__PURE__ */
|
|
2866
|
+
return /* @__PURE__ */ jsx24(MenubarPrimitive.Group, { ...props, "data-slot": slotName });
|
|
2730
2867
|
}
|
|
2731
2868
|
function MenubarPortal({
|
|
2732
2869
|
slotName = "menubar-portal",
|
|
2733
2870
|
...props
|
|
2734
2871
|
}) {
|
|
2735
|
-
return /* @__PURE__ */
|
|
2872
|
+
return /* @__PURE__ */ jsx24(MenubarPrimitive.Portal, { ...props, "data-slot": slotName });
|
|
2736
2873
|
}
|
|
2737
2874
|
function MenubarRadioGroup({
|
|
2738
2875
|
slotName = "menubar-radio-group",
|
|
2739
2876
|
...props
|
|
2740
2877
|
}) {
|
|
2741
|
-
return /* @__PURE__ */
|
|
2878
|
+
return /* @__PURE__ */ jsx24(MenubarPrimitive.RadioGroup, { ...props, "data-slot": slotName });
|
|
2742
2879
|
}
|
|
2743
2880
|
function MenubarTrigger({
|
|
2744
2881
|
className,
|
|
2745
2882
|
slotName = "menubar-trigger",
|
|
2746
2883
|
...props
|
|
2747
2884
|
}) {
|
|
2748
|
-
return /* @__PURE__ */
|
|
2749
|
-
|
|
2885
|
+
return /* @__PURE__ */ jsx24(
|
|
2886
|
+
MenubarPrimitive.Trigger,
|
|
2750
2887
|
{
|
|
2751
2888
|
className: cn(
|
|
2752
2889
|
"px-2 py-1 text-sm font-medium rounded-xl flex items-center outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",
|
|
@@ -2765,8 +2902,8 @@ function MenubarContent({
|
|
|
2765
2902
|
slotName = "menubar-content",
|
|
2766
2903
|
...props
|
|
2767
2904
|
}) {
|
|
2768
|
-
return /* @__PURE__ */
|
|
2769
|
-
|
|
2905
|
+
return /* @__PURE__ */ jsx24(MenubarPortal, { children: /* @__PURE__ */ jsx24(
|
|
2906
|
+
MenubarPrimitive.Content,
|
|
2770
2907
|
{
|
|
2771
2908
|
align,
|
|
2772
2909
|
alignOffset,
|
|
@@ -2787,8 +2924,8 @@ function MenubarItem({
|
|
|
2787
2924
|
slotName = "menubar-item",
|
|
2788
2925
|
...props
|
|
2789
2926
|
}) {
|
|
2790
|
-
return /* @__PURE__ */
|
|
2791
|
-
|
|
2927
|
+
return /* @__PURE__ */ jsx24(
|
|
2928
|
+
MenubarPrimitive.Item,
|
|
2792
2929
|
{
|
|
2793
2930
|
"data-inset": inset,
|
|
2794
2931
|
"data-variant": variant,
|
|
@@ -2808,8 +2945,8 @@ function MenubarCheckboxItem({
|
|
|
2808
2945
|
slotName = "menubar-checkbox-item",
|
|
2809
2946
|
...props
|
|
2810
2947
|
}) {
|
|
2811
|
-
return /* @__PURE__ */
|
|
2812
|
-
|
|
2948
|
+
return /* @__PURE__ */ jsxs16(
|
|
2949
|
+
MenubarPrimitive.CheckboxItem,
|
|
2813
2950
|
{
|
|
2814
2951
|
className: cn(
|
|
2815
2952
|
"gap-2 rounded-xl py-1.5 pr-2 pl-8 text-sm [&_svg:not([class*='size-'])]:size-4 relative flex cursor-default items-center outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
|
|
@@ -2819,7 +2956,7 @@ function MenubarCheckboxItem({
|
|
|
2819
2956
|
...props,
|
|
2820
2957
|
"data-slot": slotName,
|
|
2821
2958
|
children: [
|
|
2822
|
-
/* @__PURE__ */
|
|
2959
|
+
/* @__PURE__ */ jsx24("span", { className: "left-2 size-3.5 pointer-events-none absolute flex items-center justify-center", children: /* @__PURE__ */ jsx24(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx24(CheckIcon2, { className: "size-4" }) }) }),
|
|
2823
2960
|
children
|
|
2824
2961
|
]
|
|
2825
2962
|
}
|
|
@@ -2831,8 +2968,8 @@ function MenubarRadioItem({
|
|
|
2831
2968
|
slotName = "menubar-radio-item",
|
|
2832
2969
|
...props
|
|
2833
2970
|
}) {
|
|
2834
|
-
return /* @__PURE__ */
|
|
2835
|
-
|
|
2971
|
+
return /* @__PURE__ */ jsxs16(
|
|
2972
|
+
MenubarPrimitive.RadioItem,
|
|
2836
2973
|
{
|
|
2837
2974
|
className: cn(
|
|
2838
2975
|
"gap-2 rounded-xl py-1.5 pr-2 pl-8 text-sm [&_svg:not([class*='size-'])]:size-4 relative flex cursor-default items-center outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
|
|
@@ -2841,7 +2978,7 @@ function MenubarRadioItem({
|
|
|
2841
2978
|
...props,
|
|
2842
2979
|
"data-slot": slotName,
|
|
2843
2980
|
children: [
|
|
2844
|
-
/* @__PURE__ */
|
|
2981
|
+
/* @__PURE__ */ jsx24("span", { className: "left-2 size-3.5 pointer-events-none absolute flex items-center justify-center", children: /* @__PURE__ */ jsx24(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx24(CircleIcon2, { className: "size-2 fill-current" }) }) }),
|
|
2845
2982
|
children
|
|
2846
2983
|
]
|
|
2847
2984
|
}
|
|
@@ -2853,8 +2990,8 @@ function MenubarLabel({
|
|
|
2853
2990
|
slotName = "menubar-label",
|
|
2854
2991
|
...props
|
|
2855
2992
|
}) {
|
|
2856
|
-
return /* @__PURE__ */
|
|
2857
|
-
|
|
2993
|
+
return /* @__PURE__ */ jsx24(
|
|
2994
|
+
MenubarPrimitive.Label,
|
|
2858
2995
|
{
|
|
2859
2996
|
"data-inset": inset,
|
|
2860
2997
|
className: cn(
|
|
@@ -2871,8 +3008,8 @@ function MenubarSeparator({
|
|
|
2871
3008
|
slotName = "menubar-separator",
|
|
2872
3009
|
...props
|
|
2873
3010
|
}) {
|
|
2874
|
-
return /* @__PURE__ */
|
|
2875
|
-
|
|
3011
|
+
return /* @__PURE__ */ jsx24(
|
|
3012
|
+
MenubarPrimitive.Separator,
|
|
2876
3013
|
{
|
|
2877
3014
|
className: cn("-mx-1 my-1 h-px bg-border", className),
|
|
2878
3015
|
...props,
|
|
@@ -2885,7 +3022,7 @@ function MenubarShortcut({
|
|
|
2885
3022
|
slotName = "menubar-shortcut",
|
|
2886
3023
|
...props
|
|
2887
3024
|
}) {
|
|
2888
|
-
return /* @__PURE__ */
|
|
3025
|
+
return /* @__PURE__ */ jsx24(
|
|
2889
3026
|
"span",
|
|
2890
3027
|
{
|
|
2891
3028
|
className: cn(
|
|
@@ -2901,7 +3038,7 @@ function MenubarSub({
|
|
|
2901
3038
|
slotName = "menubar-sub",
|
|
2902
3039
|
...props
|
|
2903
3040
|
}) {
|
|
2904
|
-
return /* @__PURE__ */
|
|
3041
|
+
return /* @__PURE__ */ jsx24(MenubarPrimitive.Sub, { ...props, "data-slot": slotName });
|
|
2905
3042
|
}
|
|
2906
3043
|
function MenubarSubTrigger({
|
|
2907
3044
|
className,
|
|
@@ -2910,8 +3047,8 @@ function MenubarSubTrigger({
|
|
|
2910
3047
|
slotName = "menubar-sub-trigger",
|
|
2911
3048
|
...props
|
|
2912
3049
|
}) {
|
|
2913
|
-
return /* @__PURE__ */
|
|
2914
|
-
|
|
3050
|
+
return /* @__PURE__ */ jsxs16(
|
|
3051
|
+
MenubarPrimitive.SubTrigger,
|
|
2915
3052
|
{
|
|
2916
3053
|
"data-inset": inset,
|
|
2917
3054
|
className: cn(
|
|
@@ -2922,7 +3059,7 @@ function MenubarSubTrigger({
|
|
|
2922
3059
|
"data-slot": slotName,
|
|
2923
3060
|
children: [
|
|
2924
3061
|
children,
|
|
2925
|
-
/* @__PURE__ */
|
|
3062
|
+
/* @__PURE__ */ jsx24(ChevronRightIcon2, { className: "h-4 w-4 ml-auto" })
|
|
2926
3063
|
]
|
|
2927
3064
|
}
|
|
2928
3065
|
);
|
|
@@ -2932,8 +3069,8 @@ function MenubarSubContent({
|
|
|
2932
3069
|
slotName = "menubar-sub-content",
|
|
2933
3070
|
...props
|
|
2934
3071
|
}) {
|
|
2935
|
-
return /* @__PURE__ */
|
|
2936
|
-
|
|
3072
|
+
return /* @__PURE__ */ jsx24(
|
|
3073
|
+
MenubarPrimitive.SubContent,
|
|
2937
3074
|
{
|
|
2938
3075
|
className: cn(
|
|
2939
3076
|
`${menuSurface} p-1.5 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-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 z-50 min-w-[8rem] origin-(--radix-menubar-content-transform-origin) overflow-hidden`,
|
|
@@ -2944,6 +3081,12 @@ function MenubarSubContent({
|
|
|
2944
3081
|
}
|
|
2945
3082
|
);
|
|
2946
3083
|
}
|
|
3084
|
+
|
|
3085
|
+
// src/components/ui/navigation-menu.tsx
|
|
3086
|
+
import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu";
|
|
3087
|
+
import { cva as cva2 } from "class-variance-authority";
|
|
3088
|
+
import { ChevronDownIcon } from "lucide-react";
|
|
3089
|
+
import { jsx as jsx25, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
2947
3090
|
function NavigationMenu({
|
|
2948
3091
|
className,
|
|
2949
3092
|
children,
|
|
@@ -2951,7 +3094,7 @@ function NavigationMenu({
|
|
|
2951
3094
|
slotName = "navigation-menu",
|
|
2952
3095
|
...props
|
|
2953
3096
|
}) {
|
|
2954
|
-
return /* @__PURE__ */
|
|
3097
|
+
return /* @__PURE__ */ jsxs17(
|
|
2955
3098
|
NavigationMenuPrimitive.Root,
|
|
2956
3099
|
{
|
|
2957
3100
|
"data-viewport": viewport,
|
|
@@ -2963,7 +3106,7 @@ function NavigationMenu({
|
|
|
2963
3106
|
"data-slot": slotName,
|
|
2964
3107
|
children: [
|
|
2965
3108
|
children,
|
|
2966
|
-
viewport && /* @__PURE__ */
|
|
3109
|
+
viewport && /* @__PURE__ */ jsx25(NavigationMenuViewport, {})
|
|
2967
3110
|
]
|
|
2968
3111
|
}
|
|
2969
3112
|
);
|
|
@@ -2973,7 +3116,7 @@ function NavigationMenuList({
|
|
|
2973
3116
|
slotName = "navigation-menu-list",
|
|
2974
3117
|
...props
|
|
2975
3118
|
}) {
|
|
2976
|
-
return /* @__PURE__ */
|
|
3119
|
+
return /* @__PURE__ */ jsx25(
|
|
2977
3120
|
NavigationMenuPrimitive.List,
|
|
2978
3121
|
{
|
|
2979
3122
|
className: cn(
|
|
@@ -2990,7 +3133,7 @@ function NavigationMenuItem({
|
|
|
2990
3133
|
slotName = "navigation-menu-item",
|
|
2991
3134
|
...props
|
|
2992
3135
|
}) {
|
|
2993
|
-
return /* @__PURE__ */
|
|
3136
|
+
return /* @__PURE__ */ jsx25(
|
|
2994
3137
|
NavigationMenuPrimitive.Item,
|
|
2995
3138
|
{
|
|
2996
3139
|
className: cn("relative", className),
|
|
@@ -2999,7 +3142,7 @@ function NavigationMenuItem({
|
|
|
2999
3142
|
}
|
|
3000
3143
|
);
|
|
3001
3144
|
}
|
|
3002
|
-
var navigationMenuTriggerStyle =
|
|
3145
|
+
var navigationMenuTriggerStyle = cva2(
|
|
3003
3146
|
"group inline-flex h-11 w-max items-center justify-center rounded-xl bg-background px-4 text-sm font-medium data-[state=open]:font-semibold hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground disabled:pointer-events-none disabled:opacity-50 data-[active=true]:bg-accent/50 data-[state=open]:bg-accent/50 data-[active=true]:text-accent-foreground transition-[color,box-shadow] outline-none focus-visible:outline-solid focus-visible:outline-1 focus-visible:outline-offset-0 focus-visible:outline-ring"
|
|
3004
3147
|
);
|
|
3005
3148
|
function NavigationMenuTrigger({
|
|
@@ -3008,7 +3151,7 @@ function NavigationMenuTrigger({
|
|
|
3008
3151
|
slotName = "navigation-menu-trigger",
|
|
3009
3152
|
...props
|
|
3010
3153
|
}) {
|
|
3011
|
-
return /* @__PURE__ */
|
|
3154
|
+
return /* @__PURE__ */ jsxs17(
|
|
3012
3155
|
NavigationMenuPrimitive.Trigger,
|
|
3013
3156
|
{
|
|
3014
3157
|
className: cn(navigationMenuTriggerStyle(), "group", className),
|
|
@@ -3017,7 +3160,7 @@ function NavigationMenuTrigger({
|
|
|
3017
3160
|
children: [
|
|
3018
3161
|
children,
|
|
3019
3162
|
" ",
|
|
3020
|
-
/* @__PURE__ */
|
|
3163
|
+
/* @__PURE__ */ jsx25(
|
|
3021
3164
|
ChevronDownIcon,
|
|
3022
3165
|
{
|
|
3023
3166
|
className: "ml-1 size-3 relative top-[1px] transition duration-300 group-data-[state=open]:rotate-180",
|
|
@@ -3033,7 +3176,7 @@ function NavigationMenuContent({
|
|
|
3033
3176
|
slotName = "navigation-menu-content",
|
|
3034
3177
|
...props
|
|
3035
3178
|
}) {
|
|
3036
|
-
return /* @__PURE__ */
|
|
3179
|
+
return /* @__PURE__ */ jsx25(
|
|
3037
3180
|
NavigationMenuPrimitive.Content,
|
|
3038
3181
|
{
|
|
3039
3182
|
className: cn(
|
|
@@ -3051,13 +3194,13 @@ function NavigationMenuViewport({
|
|
|
3051
3194
|
slotName = "navigation-menu-viewport",
|
|
3052
3195
|
...props
|
|
3053
3196
|
}) {
|
|
3054
|
-
return /* @__PURE__ */
|
|
3197
|
+
return /* @__PURE__ */ jsx25(
|
|
3055
3198
|
"div",
|
|
3056
3199
|
{
|
|
3057
3200
|
className: cn(
|
|
3058
3201
|
"left-0 absolute top-full isolate z-50 flex justify-center"
|
|
3059
3202
|
),
|
|
3060
|
-
children: /* @__PURE__ */
|
|
3203
|
+
children: /* @__PURE__ */ jsx25(
|
|
3061
3204
|
NavigationMenuPrimitive.Viewport,
|
|
3062
3205
|
{
|
|
3063
3206
|
className: cn(
|
|
@@ -3076,7 +3219,7 @@ function NavigationMenuLink({
|
|
|
3076
3219
|
slotName = "navigation-menu-link",
|
|
3077
3220
|
...props
|
|
3078
3221
|
}) {
|
|
3079
|
-
return /* @__PURE__ */
|
|
3222
|
+
return /* @__PURE__ */ jsx25(
|
|
3080
3223
|
NavigationMenuPrimitive.Link,
|
|
3081
3224
|
{
|
|
3082
3225
|
className: cn(
|
|
@@ -3093,7 +3236,7 @@ function NavigationMenuIndicator({
|
|
|
3093
3236
|
slotName = "navigation-menu-indicator",
|
|
3094
3237
|
...props
|
|
3095
3238
|
}) {
|
|
3096
|
-
return /* @__PURE__ */
|
|
3239
|
+
return /* @__PURE__ */ jsx25(
|
|
3097
3240
|
NavigationMenuPrimitive.Indicator,
|
|
3098
3241
|
{
|
|
3099
3242
|
className: cn(
|
|
@@ -3102,16 +3245,24 @@ function NavigationMenuIndicator({
|
|
|
3102
3245
|
),
|
|
3103
3246
|
...props,
|
|
3104
3247
|
"data-slot": slotName,
|
|
3105
|
-
children: /* @__PURE__ */
|
|
3248
|
+
children: /* @__PURE__ */ jsx25("div", { className: "h-2 w-2 shadow-md rounded-tl-xs relative top-[60%] rotate-45 bg-border" })
|
|
3106
3249
|
}
|
|
3107
3250
|
);
|
|
3108
3251
|
}
|
|
3252
|
+
|
|
3253
|
+
// src/components/ui/pagination.tsx
|
|
3254
|
+
import {
|
|
3255
|
+
ChevronLeftIcon,
|
|
3256
|
+
ChevronRightIcon as ChevronRightIcon3,
|
|
3257
|
+
MoreHorizontalIcon
|
|
3258
|
+
} from "lucide-react";
|
|
3259
|
+
import { jsx as jsx26, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
3109
3260
|
function Pagination({
|
|
3110
3261
|
className,
|
|
3111
3262
|
slotName = "pagination",
|
|
3112
3263
|
...props
|
|
3113
3264
|
}) {
|
|
3114
|
-
return /* @__PURE__ */
|
|
3265
|
+
return /* @__PURE__ */ jsx26(
|
|
3115
3266
|
"nav",
|
|
3116
3267
|
{
|
|
3117
3268
|
role: "navigation",
|
|
@@ -3127,7 +3278,7 @@ function PaginationContent({
|
|
|
3127
3278
|
slotName = "pagination-content",
|
|
3128
3279
|
...props
|
|
3129
3280
|
}) {
|
|
3130
|
-
return /* @__PURE__ */
|
|
3281
|
+
return /* @__PURE__ */ jsx26(
|
|
3131
3282
|
"ul",
|
|
3132
3283
|
{
|
|
3133
3284
|
className: cn("gap-1 flex flex-row items-center", className),
|
|
@@ -3140,7 +3291,7 @@ function PaginationItem({
|
|
|
3140
3291
|
slotName = "pagination-item",
|
|
3141
3292
|
...props
|
|
3142
3293
|
}) {
|
|
3143
|
-
return /* @__PURE__ */
|
|
3294
|
+
return /* @__PURE__ */ jsx26("li", { ...props, "data-slot": slotName });
|
|
3144
3295
|
}
|
|
3145
3296
|
function PaginationLink({
|
|
3146
3297
|
className,
|
|
@@ -3149,7 +3300,7 @@ function PaginationLink({
|
|
|
3149
3300
|
slotName = "pagination-link",
|
|
3150
3301
|
...props
|
|
3151
3302
|
}) {
|
|
3152
|
-
return /* @__PURE__ */
|
|
3303
|
+
return /* @__PURE__ */ jsx26(
|
|
3153
3304
|
"a",
|
|
3154
3305
|
{
|
|
3155
3306
|
"aria-current": isActive ? "page" : void 0,
|
|
@@ -3170,7 +3321,7 @@ function PaginationPrevious({
|
|
|
3170
3321
|
className,
|
|
3171
3322
|
...props
|
|
3172
3323
|
}) {
|
|
3173
|
-
return /* @__PURE__ */
|
|
3324
|
+
return /* @__PURE__ */ jsxs18(
|
|
3174
3325
|
PaginationLink,
|
|
3175
3326
|
{
|
|
3176
3327
|
"aria-label": "Go to previous page",
|
|
@@ -3178,8 +3329,8 @@ function PaginationPrevious({
|
|
|
3178
3329
|
className: cn("gap-1 px-2.5 sm:pl-2.5", className),
|
|
3179
3330
|
...props,
|
|
3180
3331
|
children: [
|
|
3181
|
-
/* @__PURE__ */
|
|
3182
|
-
/* @__PURE__ */
|
|
3332
|
+
/* @__PURE__ */ jsx26(ChevronLeftIcon, {}),
|
|
3333
|
+
/* @__PURE__ */ jsx26("span", { className: "sm:block hidden", children: "Previous" })
|
|
3183
3334
|
]
|
|
3184
3335
|
}
|
|
3185
3336
|
);
|
|
@@ -3188,7 +3339,7 @@ function PaginationNext({
|
|
|
3188
3339
|
className,
|
|
3189
3340
|
...props
|
|
3190
3341
|
}) {
|
|
3191
|
-
return /* @__PURE__ */
|
|
3342
|
+
return /* @__PURE__ */ jsxs18(
|
|
3192
3343
|
PaginationLink,
|
|
3193
3344
|
{
|
|
3194
3345
|
"aria-label": "Go to next page",
|
|
@@ -3196,8 +3347,8 @@ function PaginationNext({
|
|
|
3196
3347
|
className: cn("gap-1 px-2.5 sm:pr-2.5", className),
|
|
3197
3348
|
...props,
|
|
3198
3349
|
children: [
|
|
3199
|
-
/* @__PURE__ */
|
|
3200
|
-
/* @__PURE__ */
|
|
3350
|
+
/* @__PURE__ */ jsx26("span", { className: "sm:block hidden", children: "Next" }),
|
|
3351
|
+
/* @__PURE__ */ jsx26(ChevronRightIcon3, {})
|
|
3201
3352
|
]
|
|
3202
3353
|
}
|
|
3203
3354
|
);
|
|
@@ -3207,7 +3358,7 @@ function PaginationEllipsis({
|
|
|
3207
3358
|
slotName = "pagination-ellipsis",
|
|
3208
3359
|
...props
|
|
3209
3360
|
}) {
|
|
3210
|
-
return /* @__PURE__ */
|
|
3361
|
+
return /* @__PURE__ */ jsxs18(
|
|
3211
3362
|
"span",
|
|
3212
3363
|
{
|
|
3213
3364
|
"aria-hidden": true,
|
|
@@ -3218,63 +3369,23 @@ function PaginationEllipsis({
|
|
|
3218
3369
|
...props,
|
|
3219
3370
|
"data-slot": slotName,
|
|
3220
3371
|
children: [
|
|
3221
|
-
/* @__PURE__ */
|
|
3222
|
-
/* @__PURE__ */
|
|
3372
|
+
/* @__PURE__ */ jsx26(MoreHorizontalIcon, { className: "size-4" }),
|
|
3373
|
+
/* @__PURE__ */ jsx26("span", { className: "sr-only", children: "More pages" })
|
|
3223
3374
|
]
|
|
3224
3375
|
}
|
|
3225
3376
|
);
|
|
3226
3377
|
}
|
|
3227
|
-
|
|
3228
|
-
|
|
3229
|
-
|
|
3230
|
-
};
|
|
3231
|
-
function PasswordInput({
|
|
3232
|
-
className,
|
|
3233
|
-
revealable = true,
|
|
3234
|
-
showLabel,
|
|
3235
|
-
hideLabel,
|
|
3236
|
-
slotName = "password-input",
|
|
3237
|
-
...props
|
|
3238
|
-
}) {
|
|
3239
|
-
const labels = useUiLabels("passwordInput", passwordInputDefaultLabels, {
|
|
3240
|
-
showLabel,
|
|
3241
|
-
hideLabel
|
|
3242
|
-
});
|
|
3243
|
-
const [visible, setVisible] = React3.useState(false);
|
|
3244
|
-
return /* @__PURE__ */ jsxs("div", { className: "relative w-full", "data-slot": slotName, children: [
|
|
3245
|
-
/* @__PURE__ */ jsx(
|
|
3246
|
-
Input,
|
|
3247
|
-
{
|
|
3248
|
-
type: visible ? "text" : "password",
|
|
3249
|
-
className: cn(revealable && "pr-12", className),
|
|
3250
|
-
...props
|
|
3251
|
-
}
|
|
3252
|
-
),
|
|
3253
|
-
revealable ? /* @__PURE__ */ jsx(
|
|
3254
|
-
Button,
|
|
3255
|
-
{
|
|
3256
|
-
type: "button",
|
|
3257
|
-
variant: "ghost",
|
|
3258
|
-
size: "icon-sm",
|
|
3259
|
-
slotName: "password-input-toggle",
|
|
3260
|
-
"aria-label": visible ? labels.hideLabel : labels.showLabel,
|
|
3261
|
-
"aria-pressed": visible,
|
|
3262
|
-
disabled: props.disabled,
|
|
3263
|
-
onMouseDown: (event) => event.preventDefault(),
|
|
3264
|
-
onClick: () => setVisible((current) => !current),
|
|
3265
|
-
className: "right-1 absolute top-1/2 -translate-y-1/2",
|
|
3266
|
-
children: visible ? /* @__PURE__ */ jsx(EyeOff, { "aria-hidden": "true" }) : /* @__PURE__ */ jsx(Eye, { "aria-hidden": "true" })
|
|
3267
|
-
}
|
|
3268
|
-
) : null
|
|
3269
|
-
] });
|
|
3270
|
-
}
|
|
3378
|
+
|
|
3379
|
+
// src/components/ui/placeholder-pattern.tsx
|
|
3380
|
+
import { useId as useId3 } from "react";
|
|
3381
|
+
import { jsx as jsx27, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
3271
3382
|
function PlaceholderPattern({
|
|
3272
3383
|
className,
|
|
3273
3384
|
slotName = "placeholder-pattern"
|
|
3274
3385
|
}) {
|
|
3275
|
-
const patternId =
|
|
3276
|
-
return /* @__PURE__ */
|
|
3277
|
-
/* @__PURE__ */
|
|
3386
|
+
const patternId = useId3();
|
|
3387
|
+
return /* @__PURE__ */ jsxs19("svg", { className, fill: "none", "data-slot": slotName, children: [
|
|
3388
|
+
/* @__PURE__ */ jsx27("defs", { children: /* @__PURE__ */ jsx27(
|
|
3278
3389
|
"pattern",
|
|
3279
3390
|
{
|
|
3280
3391
|
id: patternId,
|
|
@@ -3283,7 +3394,7 @@ function PlaceholderPattern({
|
|
|
3283
3394
|
width: "10",
|
|
3284
3395
|
height: "10",
|
|
3285
3396
|
patternUnits: "userSpaceOnUse",
|
|
3286
|
-
children: /* @__PURE__ */
|
|
3397
|
+
children: /* @__PURE__ */ jsx27(
|
|
3287
3398
|
"path",
|
|
3288
3399
|
{
|
|
3289
3400
|
d: "M-3 13 15-5M-5 5l18-18M-1 21 17 3",
|
|
@@ -3292,7 +3403,7 @@ function PlaceholderPattern({
|
|
|
3292
3403
|
)
|
|
3293
3404
|
}
|
|
3294
3405
|
) }),
|
|
3295
|
-
/* @__PURE__ */
|
|
3406
|
+
/* @__PURE__ */ jsx27(
|
|
3296
3407
|
"rect",
|
|
3297
3408
|
{
|
|
3298
3409
|
stroke: "none",
|
|
@@ -3303,14 +3414,18 @@ function PlaceholderPattern({
|
|
|
3303
3414
|
)
|
|
3304
3415
|
] });
|
|
3305
3416
|
}
|
|
3417
|
+
|
|
3418
|
+
// src/components/ui/progress.tsx
|
|
3419
|
+
import { Progress as ProgressPrimitive } from "radix-ui";
|
|
3420
|
+
import { jsx as jsx28 } from "react/jsx-runtime";
|
|
3306
3421
|
function Progress({
|
|
3307
3422
|
className,
|
|
3308
3423
|
value,
|
|
3309
3424
|
slotName = "progress",
|
|
3310
3425
|
...props
|
|
3311
3426
|
}) {
|
|
3312
|
-
return /* @__PURE__ */
|
|
3313
|
-
|
|
3427
|
+
return /* @__PURE__ */ jsx28(
|
|
3428
|
+
ProgressPrimitive.Root,
|
|
3314
3429
|
{
|
|
3315
3430
|
className: cn(
|
|
3316
3431
|
"h-2 relative w-full overflow-hidden rounded-full bg-primary/20",
|
|
@@ -3318,8 +3433,8 @@ function Progress({
|
|
|
3318
3433
|
),
|
|
3319
3434
|
...props,
|
|
3320
3435
|
"data-slot": slotName,
|
|
3321
|
-
children: /* @__PURE__ */
|
|
3322
|
-
|
|
3436
|
+
children: /* @__PURE__ */ jsx28(
|
|
3437
|
+
ProgressPrimitive.Indicator,
|
|
3323
3438
|
{
|
|
3324
3439
|
"data-slot": "progress-indicator",
|
|
3325
3440
|
className: "h-full w-full flex-1 bg-primary transition-all",
|
|
@@ -3329,13 +3444,18 @@ function Progress({
|
|
|
3329
3444
|
}
|
|
3330
3445
|
);
|
|
3331
3446
|
}
|
|
3447
|
+
|
|
3448
|
+
// src/components/ui/radio-group.tsx
|
|
3449
|
+
import { CircleIcon as CircleIcon3 } from "lucide-react";
|
|
3450
|
+
import { RadioGroup as RadioGroupPrimitive } from "radix-ui";
|
|
3451
|
+
import { jsx as jsx29 } from "react/jsx-runtime";
|
|
3332
3452
|
function RadioGroup({
|
|
3333
3453
|
className,
|
|
3334
3454
|
slotName = "radio-group",
|
|
3335
3455
|
...props
|
|
3336
3456
|
}) {
|
|
3337
|
-
return /* @__PURE__ */
|
|
3338
|
-
|
|
3457
|
+
return /* @__PURE__ */ jsx29(
|
|
3458
|
+
RadioGroupPrimitive.Root,
|
|
3339
3459
|
{
|
|
3340
3460
|
className: cn("gap-3 grid", className),
|
|
3341
3461
|
...props,
|
|
@@ -3348,8 +3468,8 @@ function RadioGroupItem({
|
|
|
3348
3468
|
slotName = "radio-group-item",
|
|
3349
3469
|
...props
|
|
3350
3470
|
}) {
|
|
3351
|
-
return /* @__PURE__ */
|
|
3352
|
-
|
|
3471
|
+
return /* @__PURE__ */ jsx29(
|
|
3472
|
+
RadioGroupPrimitive.Item,
|
|
3353
3473
|
{
|
|
3354
3474
|
className: cn(
|
|
3355
3475
|
`size-5 shadow-xs aspect-square shrink-0 rounded-full border border-border text-primary transition-[color,box-shadow] disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 ${focusRing}`,
|
|
@@ -3357,23 +3477,27 @@ function RadioGroupItem({
|
|
|
3357
3477
|
),
|
|
3358
3478
|
...props,
|
|
3359
3479
|
"data-slot": slotName,
|
|
3360
|
-
children: /* @__PURE__ */
|
|
3361
|
-
|
|
3480
|
+
children: /* @__PURE__ */ jsx29(
|
|
3481
|
+
RadioGroupPrimitive.Indicator,
|
|
3362
3482
|
{
|
|
3363
3483
|
"data-slot": "radio-group-indicator",
|
|
3364
3484
|
className: "relative flex items-center justify-center",
|
|
3365
|
-
children: /* @__PURE__ */
|
|
3485
|
+
children: /* @__PURE__ */ jsx29(CircleIcon3, { className: "size-2.5 absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 fill-primary" })
|
|
3366
3486
|
}
|
|
3367
3487
|
)
|
|
3368
3488
|
}
|
|
3369
3489
|
);
|
|
3370
3490
|
}
|
|
3491
|
+
|
|
3492
|
+
// src/components/ui/resizable.tsx
|
|
3493
|
+
import * as ResizablePrimitive from "react-resizable-panels";
|
|
3494
|
+
import { jsx as jsx30 } from "react/jsx-runtime";
|
|
3371
3495
|
function ResizablePanelGroup({
|
|
3372
3496
|
className,
|
|
3373
3497
|
slotName = "resizable-panel-group",
|
|
3374
3498
|
...props
|
|
3375
3499
|
}) {
|
|
3376
|
-
return /* @__PURE__ */
|
|
3500
|
+
return /* @__PURE__ */ jsx30(
|
|
3377
3501
|
ResizablePrimitive.Group,
|
|
3378
3502
|
{
|
|
3379
3503
|
className: cn(
|
|
@@ -3391,7 +3515,7 @@ function ResizablePanel({
|
|
|
3391
3515
|
slotName = "resizable-panel",
|
|
3392
3516
|
...props
|
|
3393
3517
|
}) {
|
|
3394
|
-
return /* @__PURE__ */
|
|
3518
|
+
return /* @__PURE__ */ jsx30(ResizablePrimitive.Panel, { ...props, "data-slot": slotName });
|
|
3395
3519
|
}
|
|
3396
3520
|
function ResizableHandle({
|
|
3397
3521
|
withHandle,
|
|
@@ -3399,7 +3523,7 @@ function ResizableHandle({
|
|
|
3399
3523
|
slotName = "resizable-handle",
|
|
3400
3524
|
...props
|
|
3401
3525
|
}) {
|
|
3402
|
-
return /* @__PURE__ */
|
|
3526
|
+
return /* @__PURE__ */ jsx30(
|
|
3403
3527
|
ResizablePrimitive.Separator,
|
|
3404
3528
|
{
|
|
3405
3529
|
className: cn(
|
|
@@ -3408,10 +3532,15 @@ function ResizableHandle({
|
|
|
3408
3532
|
),
|
|
3409
3533
|
...props,
|
|
3410
3534
|
"data-slot": slotName,
|
|
3411
|
-
children: withHandle && /* @__PURE__ */
|
|
3535
|
+
children: withHandle && /* @__PURE__ */ jsx30("div", { className: "h-8 w-1.5 z-10 rounded-full bg-muted-foreground/40 transition-colors group-hover:bg-muted-foreground/60" })
|
|
3412
3536
|
}
|
|
3413
3537
|
);
|
|
3414
3538
|
}
|
|
3539
|
+
|
|
3540
|
+
// src/components/ui/save-status.tsx
|
|
3541
|
+
import { Check as Check3, TriangleAlert } from "lucide-react";
|
|
3542
|
+
import * as React7 from "react";
|
|
3543
|
+
import { jsx as jsx31, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
3415
3544
|
var saveStatusLabels = {
|
|
3416
3545
|
error: "Your changes could not be saved",
|
|
3417
3546
|
idle: "Changes are saved automatically",
|
|
@@ -3430,8 +3559,8 @@ function SaveStatus({
|
|
|
3430
3559
|
...props
|
|
3431
3560
|
}) {
|
|
3432
3561
|
const text = useUiLabels("saveStatus", saveStatusLabels, labels);
|
|
3433
|
-
const [faded, setFaded] =
|
|
3434
|
-
|
|
3562
|
+
const [faded, setFaded] = React7.useState(false);
|
|
3563
|
+
React7.useEffect(() => {
|
|
3435
3564
|
if (status !== "saved" || savedDuration <= 0) {
|
|
3436
3565
|
setFaded(false);
|
|
3437
3566
|
return;
|
|
@@ -3441,7 +3570,7 @@ function SaveStatus({
|
|
|
3441
3570
|
return () => clearTimeout(timer);
|
|
3442
3571
|
}, [status, savedDuration, message]);
|
|
3443
3572
|
const hidden = status === "saved" && faded;
|
|
3444
|
-
return /* @__PURE__ */
|
|
3573
|
+
return /* @__PURE__ */ jsxs20(
|
|
3445
3574
|
"div",
|
|
3446
3575
|
{
|
|
3447
3576
|
...props,
|
|
@@ -3457,7 +3586,7 @@ function SaveStatus({
|
|
|
3457
3586
|
),
|
|
3458
3587
|
"data-slot": slotName,
|
|
3459
3588
|
children: [
|
|
3460
|
-
status === "idle" && showIdle && /* @__PURE__ */
|
|
3589
|
+
status === "idle" && showIdle && /* @__PURE__ */ jsx31(
|
|
3461
3590
|
"span",
|
|
3462
3591
|
{
|
|
3463
3592
|
"data-slot": "save-status-idle",
|
|
@@ -3465,35 +3594,35 @@ function SaveStatus({
|
|
|
3465
3594
|
children: text.idle
|
|
3466
3595
|
}
|
|
3467
3596
|
),
|
|
3468
|
-
status === "saving" && /* @__PURE__ */
|
|
3597
|
+
status === "saving" && /* @__PURE__ */ jsxs20(
|
|
3469
3598
|
"span",
|
|
3470
3599
|
{
|
|
3471
3600
|
"data-slot": "save-status-saving",
|
|
3472
3601
|
className: "gap-2 flex items-center text-muted-foreground",
|
|
3473
3602
|
children: [
|
|
3474
|
-
/* @__PURE__ */
|
|
3603
|
+
/* @__PURE__ */ jsx31(Spinner, { size: "sm", label: "", "aria-hidden": "true" }),
|
|
3475
3604
|
text.saving
|
|
3476
3605
|
]
|
|
3477
3606
|
}
|
|
3478
3607
|
),
|
|
3479
|
-
status === "saved" && /* @__PURE__ */
|
|
3608
|
+
status === "saved" && /* @__PURE__ */ jsxs20(
|
|
3480
3609
|
"span",
|
|
3481
3610
|
{
|
|
3482
3611
|
"data-slot": "save-status-saved",
|
|
3483
3612
|
className: "gap-2 flex items-center text-success",
|
|
3484
3613
|
children: [
|
|
3485
|
-
/* @__PURE__ */
|
|
3614
|
+
/* @__PURE__ */ jsx31(Check3, { "aria-hidden": "true", className: "size-3.5" }),
|
|
3486
3615
|
text.saved
|
|
3487
3616
|
]
|
|
3488
3617
|
}
|
|
3489
3618
|
),
|
|
3490
|
-
status === "error" && /* @__PURE__ */
|
|
3619
|
+
status === "error" && /* @__PURE__ */ jsxs20(
|
|
3491
3620
|
"span",
|
|
3492
3621
|
{
|
|
3493
3622
|
"data-slot": "save-status-error",
|
|
3494
3623
|
className: "gap-2 flex items-center text-destructive",
|
|
3495
3624
|
children: [
|
|
3496
|
-
/* @__PURE__ */
|
|
3625
|
+
/* @__PURE__ */ jsx31(TriangleAlert, { "aria-hidden": "true", className: "size-3.5" }),
|
|
3497
3626
|
message ?? text.error
|
|
3498
3627
|
]
|
|
3499
3628
|
}
|
|
@@ -3502,7 +3631,12 @@ function SaveStatus({
|
|
|
3502
3631
|
}
|
|
3503
3632
|
);
|
|
3504
3633
|
}
|
|
3505
|
-
|
|
3634
|
+
|
|
3635
|
+
// src/components/ui/scroll-area.tsx
|
|
3636
|
+
import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
|
|
3637
|
+
import * as React8 from "react";
|
|
3638
|
+
import { jsx as jsx32, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
3639
|
+
var ScrollArea = React8.forwardRef(({ className, children, slotName = "scroll-area", ...props }, ref) => /* @__PURE__ */ jsxs21(
|
|
3506
3640
|
ScrollAreaPrimitive.Root,
|
|
3507
3641
|
{
|
|
3508
3642
|
ref,
|
|
@@ -3516,20 +3650,20 @@ var ScrollArea = React3.forwardRef(({ className, children, slotName = "scroll-ar
|
|
|
3516
3650
|
...props,
|
|
3517
3651
|
"data-slot": slotName,
|
|
3518
3652
|
children: [
|
|
3519
|
-
/* @__PURE__ */
|
|
3520
|
-
/* @__PURE__ */
|
|
3521
|
-
/* @__PURE__ */
|
|
3653
|
+
/* @__PURE__ */ jsx32(ScrollAreaPrimitive.Viewport, { className: "h-full w-full rounded-[inherit]", children }),
|
|
3654
|
+
/* @__PURE__ */ jsx32(ScrollBar, {}),
|
|
3655
|
+
/* @__PURE__ */ jsx32(ScrollAreaPrimitive.Corner, {})
|
|
3522
3656
|
]
|
|
3523
3657
|
}
|
|
3524
3658
|
));
|
|
3525
3659
|
ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
|
|
3526
|
-
var ScrollBar =
|
|
3660
|
+
var ScrollBar = React8.forwardRef(
|
|
3527
3661
|
({
|
|
3528
3662
|
className,
|
|
3529
3663
|
orientation = "vertical",
|
|
3530
3664
|
slotName = "scroll-area-scrollbar",
|
|
3531
3665
|
...props
|
|
3532
|
-
}, ref) => /* @__PURE__ */
|
|
3666
|
+
}, ref) => /* @__PURE__ */ jsx32(
|
|
3533
3667
|
ScrollAreaPrimitive.ScrollAreaScrollbar,
|
|
3534
3668
|
{
|
|
3535
3669
|
ref,
|
|
@@ -3542,11 +3676,16 @@ var ScrollBar = React3.forwardRef(
|
|
|
3542
3676
|
),
|
|
3543
3677
|
...props,
|
|
3544
3678
|
"data-slot": slotName,
|
|
3545
|
-
children: /* @__PURE__ */
|
|
3679
|
+
children: /* @__PURE__ */ jsx32(ScrollAreaPrimitive.ScrollAreaThumb, { className: "relative flex-1 rounded-full bg-border" })
|
|
3546
3680
|
}
|
|
3547
3681
|
)
|
|
3548
3682
|
);
|
|
3549
3683
|
ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
|
|
3684
|
+
|
|
3685
|
+
// src/components/ui/slider.tsx
|
|
3686
|
+
import { Slider as SliderPrimitive } from "radix-ui";
|
|
3687
|
+
import * as React9 from "react";
|
|
3688
|
+
import { jsx as jsx33, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
3550
3689
|
function Slider({
|
|
3551
3690
|
className,
|
|
3552
3691
|
defaultValue,
|
|
@@ -3556,12 +3695,12 @@ function Slider({
|
|
|
3556
3695
|
slotName = "slider",
|
|
3557
3696
|
...props
|
|
3558
3697
|
}) {
|
|
3559
|
-
const _values =
|
|
3698
|
+
const _values = React9.useMemo(
|
|
3560
3699
|
() => Array.isArray(value) ? value : Array.isArray(defaultValue) ? defaultValue : [min, max],
|
|
3561
3700
|
[value, defaultValue, min, max]
|
|
3562
3701
|
);
|
|
3563
|
-
return /* @__PURE__ */
|
|
3564
|
-
|
|
3702
|
+
return /* @__PURE__ */ jsxs22(
|
|
3703
|
+
SliderPrimitive.Root,
|
|
3565
3704
|
{
|
|
3566
3705
|
defaultValue,
|
|
3567
3706
|
value,
|
|
@@ -3574,15 +3713,15 @@ function Slider({
|
|
|
3574
3713
|
...props,
|
|
3575
3714
|
"data-slot": slotName,
|
|
3576
3715
|
children: [
|
|
3577
|
-
/* @__PURE__ */
|
|
3578
|
-
|
|
3716
|
+
/* @__PURE__ */ jsx33(
|
|
3717
|
+
SliderPrimitive.Track,
|
|
3579
3718
|
{
|
|
3580
3719
|
"data-slot": "slider-track",
|
|
3581
3720
|
className: cn(
|
|
3582
3721
|
"data-[orientation=horizontal]:h-1.5 data-[orientation=vertical]:w-1.5 relative grow overflow-hidden rounded-full bg-muted data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full"
|
|
3583
3722
|
),
|
|
3584
|
-
children: /* @__PURE__ */
|
|
3585
|
-
|
|
3723
|
+
children: /* @__PURE__ */ jsx33(
|
|
3724
|
+
SliderPrimitive.Range,
|
|
3586
3725
|
{
|
|
3587
3726
|
"data-slot": "slider-range",
|
|
3588
3727
|
className: cn(
|
|
@@ -3592,8 +3731,8 @@ function Slider({
|
|
|
3592
3731
|
)
|
|
3593
3732
|
}
|
|
3594
3733
|
),
|
|
3595
|
-
Array.from({ length: _values.length }, (_, index) => /* @__PURE__ */
|
|
3596
|
-
|
|
3734
|
+
Array.from({ length: _values.length }, (_, index) => /* @__PURE__ */ jsx33(
|
|
3735
|
+
SliderPrimitive.Thumb,
|
|
3597
3736
|
{
|
|
3598
3737
|
"data-slot": "slider-thumb",
|
|
3599
3738
|
className: cn(
|
|
@@ -3607,9 +3746,21 @@ function Slider({
|
|
|
3607
3746
|
}
|
|
3608
3747
|
);
|
|
3609
3748
|
}
|
|
3749
|
+
|
|
3750
|
+
// src/components/ui/sonner.tsx
|
|
3751
|
+
import {
|
|
3752
|
+
CircleCheckIcon,
|
|
3753
|
+
InfoIcon,
|
|
3754
|
+
Loader2Icon,
|
|
3755
|
+
OctagonXIcon,
|
|
3756
|
+
TriangleAlertIcon
|
|
3757
|
+
} from "lucide-react";
|
|
3758
|
+
import { useEffect as useEffect4, useState as useState9 } from "react";
|
|
3759
|
+
import { Toaster as Sonner } from "sonner";
|
|
3760
|
+
import { jsx as jsx34 } from "react/jsx-runtime";
|
|
3610
3761
|
function useDocumentScheme() {
|
|
3611
|
-
const [scheme, setScheme] =
|
|
3612
|
-
|
|
3762
|
+
const [scheme, setScheme] = useState9("light");
|
|
3763
|
+
useEffect4(() => {
|
|
3613
3764
|
const root = document.documentElement;
|
|
3614
3765
|
const read = () => setScheme(root.classList.contains("dark") ? "dark" : "light");
|
|
3615
3766
|
read();
|
|
@@ -3624,17 +3775,17 @@ function useDocumentScheme() {
|
|
|
3624
3775
|
}
|
|
3625
3776
|
var Toaster = ({ theme, ...props }) => {
|
|
3626
3777
|
const scheme = useDocumentScheme();
|
|
3627
|
-
return /* @__PURE__ */
|
|
3628
|
-
|
|
3778
|
+
return /* @__PURE__ */ jsx34(
|
|
3779
|
+
Sonner,
|
|
3629
3780
|
{
|
|
3630
3781
|
theme: theme ?? scheme,
|
|
3631
3782
|
className: "toaster group [&_[data-sonner-toast]]:shadow-2xl [&_[data-sonner-toast]]:backdrop-blur-xl",
|
|
3632
3783
|
icons: {
|
|
3633
|
-
success: /* @__PURE__ */
|
|
3634
|
-
info: /* @__PURE__ */
|
|
3635
|
-
warning: /* @__PURE__ */
|
|
3636
|
-
error: /* @__PURE__ */
|
|
3637
|
-
loading: /* @__PURE__ */
|
|
3784
|
+
success: /* @__PURE__ */ jsx34(CircleCheckIcon, { className: "size-4" }),
|
|
3785
|
+
info: /* @__PURE__ */ jsx34(InfoIcon, { className: "size-4" }),
|
|
3786
|
+
warning: /* @__PURE__ */ jsx34(TriangleAlertIcon, { className: "size-4" }),
|
|
3787
|
+
error: /* @__PURE__ */ jsx34(OctagonXIcon, { className: "size-4" }),
|
|
3788
|
+
loading: /* @__PURE__ */ jsx34(Loader2Icon, { className: "size-4 animate-spin" })
|
|
3638
3789
|
},
|
|
3639
3790
|
style: {
|
|
3640
3791
|
"--normal-bg": "color-mix(in oklab, var(--popover) 90%, transparent)",
|
|
@@ -3646,7 +3797,11 @@ var Toaster = ({ theme, ...props }) => {
|
|
|
3646
3797
|
}
|
|
3647
3798
|
);
|
|
3648
3799
|
};
|
|
3649
|
-
|
|
3800
|
+
|
|
3801
|
+
// src/components/ui/status-badge.tsx
|
|
3802
|
+
import { cva as cva3 } from "class-variance-authority";
|
|
3803
|
+
import { jsx as jsx35, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
3804
|
+
var statusBadgeVariants = cva3("", {
|
|
3650
3805
|
variants: {
|
|
3651
3806
|
status: {
|
|
3652
3807
|
neutral: "border-border bg-muted text-muted-foreground",
|
|
@@ -3669,7 +3824,7 @@ function StatusBadge({
|
|
|
3669
3824
|
...props
|
|
3670
3825
|
}) {
|
|
3671
3826
|
const resolvedStatus = status ?? "neutral";
|
|
3672
|
-
return /* @__PURE__ */
|
|
3827
|
+
return /* @__PURE__ */ jsxs23(
|
|
3673
3828
|
Badge,
|
|
3674
3829
|
{
|
|
3675
3830
|
variant: "outline",
|
|
@@ -3681,7 +3836,7 @@ function StatusBadge({
|
|
|
3681
3836
|
...props,
|
|
3682
3837
|
slotName,
|
|
3683
3838
|
children: [
|
|
3684
|
-
dot && /* @__PURE__ */
|
|
3839
|
+
dot && /* @__PURE__ */ jsx35(
|
|
3685
3840
|
"span",
|
|
3686
3841
|
{
|
|
3687
3842
|
"aria-hidden": "true",
|
|
@@ -3694,7 +3849,12 @@ function StatusBadge({
|
|
|
3694
3849
|
}
|
|
3695
3850
|
);
|
|
3696
3851
|
}
|
|
3697
|
-
|
|
3852
|
+
|
|
3853
|
+
// src/components/ui/text-link.tsx
|
|
3854
|
+
import { Slot as Slot3 } from "@radix-ui/react-slot";
|
|
3855
|
+
import { cva as cva4 } from "class-variance-authority";
|
|
3856
|
+
import { jsx as jsx36 } from "react/jsx-runtime";
|
|
3857
|
+
var textLinkVariants = cva4(
|
|
3698
3858
|
`cursor-pointer rounded-xl underline decoration-border underline-offset-4 transition-colors duration-300 ease-out hover:decoration-current ${focusRing}`,
|
|
3699
3859
|
{
|
|
3700
3860
|
variants: {
|
|
@@ -3715,8 +3875,8 @@ function TextLink({
|
|
|
3715
3875
|
slotName = "text-link",
|
|
3716
3876
|
...props
|
|
3717
3877
|
}) {
|
|
3718
|
-
const Comp = asChild ?
|
|
3719
|
-
return /* @__PURE__ */
|
|
3878
|
+
const Comp = asChild ? Slot3 : "a";
|
|
3879
|
+
return /* @__PURE__ */ jsx36(
|
|
3720
3880
|
Comp,
|
|
3721
3881
|
{
|
|
3722
3882
|
"data-variant": variant,
|
|
@@ -3727,6 +3887,318 @@ function TextLink({
|
|
|
3727
3887
|
);
|
|
3728
3888
|
}
|
|
3729
3889
|
|
|
3730
|
-
|
|
3731
|
-
|
|
3890
|
+
// src/index.ts
|
|
3891
|
+
import { toast } from "sonner";
|
|
3892
|
+
export {
|
|
3893
|
+
AUTOSAVE_DELAY,
|
|
3894
|
+
Accordion,
|
|
3895
|
+
AccordionContent,
|
|
3896
|
+
AccordionItem,
|
|
3897
|
+
AccordionTrigger,
|
|
3898
|
+
AkiraMark,
|
|
3899
|
+
Alert,
|
|
3900
|
+
AlertDescription,
|
|
3901
|
+
AlertDialog,
|
|
3902
|
+
AlertDialogAction,
|
|
3903
|
+
AlertDialogCancel,
|
|
3904
|
+
AlertDialogContent,
|
|
3905
|
+
AlertDialogDescription,
|
|
3906
|
+
AlertDialogFooter,
|
|
3907
|
+
AlertDialogHeader,
|
|
3908
|
+
AlertDialogMedia,
|
|
3909
|
+
AlertDialogOverlay,
|
|
3910
|
+
AlertDialogPortal,
|
|
3911
|
+
AlertDialogTitle,
|
|
3912
|
+
AlertDialogTrigger,
|
|
3913
|
+
AlertTitle,
|
|
3914
|
+
AppearanceToggle,
|
|
3915
|
+
AspectRatio,
|
|
3916
|
+
Avatar,
|
|
3917
|
+
AvatarFallback,
|
|
3918
|
+
AvatarImage,
|
|
3919
|
+
Badge,
|
|
3920
|
+
Breadcrumb,
|
|
3921
|
+
BreadcrumbEllipsis,
|
|
3922
|
+
BreadcrumbItem,
|
|
3923
|
+
BreadcrumbLink,
|
|
3924
|
+
BreadcrumbList,
|
|
3925
|
+
BreadcrumbPage,
|
|
3926
|
+
BreadcrumbSeparator,
|
|
3927
|
+
Button,
|
|
3928
|
+
Calendar,
|
|
3929
|
+
CalendarDayButton,
|
|
3930
|
+
Card,
|
|
3931
|
+
CardContent,
|
|
3932
|
+
CardDescription,
|
|
3933
|
+
CardFooter,
|
|
3934
|
+
CardHeader,
|
|
3935
|
+
CardTitle,
|
|
3936
|
+
Carousel,
|
|
3937
|
+
CarouselContent,
|
|
3938
|
+
CarouselItem,
|
|
3939
|
+
CarouselNext,
|
|
3940
|
+
CarouselPrevious,
|
|
3941
|
+
ChartContainer,
|
|
3942
|
+
ChartLegend,
|
|
3943
|
+
ChartLegendContent,
|
|
3944
|
+
ChartStyle,
|
|
3945
|
+
ChartTooltip,
|
|
3946
|
+
ChartTooltipContent,
|
|
3947
|
+
Checkbox,
|
|
3948
|
+
Collapsible,
|
|
3949
|
+
CollapsibleContent,
|
|
3950
|
+
CollapsibleTrigger,
|
|
3951
|
+
Combobox,
|
|
3952
|
+
Command,
|
|
3953
|
+
CommandDialog,
|
|
3954
|
+
CommandEmpty,
|
|
3955
|
+
CommandGroup,
|
|
3956
|
+
CommandInput,
|
|
3957
|
+
CommandItem,
|
|
3958
|
+
CommandList,
|
|
3959
|
+
CommandSeparator,
|
|
3960
|
+
CommandShortcut,
|
|
3961
|
+
ConfirmDialog,
|
|
3962
|
+
ContextMenu,
|
|
3963
|
+
ContextMenuCheckboxItem,
|
|
3964
|
+
ContextMenuContent,
|
|
3965
|
+
ContextMenuGroup,
|
|
3966
|
+
ContextMenuItem,
|
|
3967
|
+
ContextMenuLabel,
|
|
3968
|
+
ContextMenuPortal,
|
|
3969
|
+
ContextMenuRadioGroup,
|
|
3970
|
+
ContextMenuRadioItem,
|
|
3971
|
+
ContextMenuSeparator,
|
|
3972
|
+
ContextMenuShortcut,
|
|
3973
|
+
ContextMenuSub,
|
|
3974
|
+
ContextMenuSubContent,
|
|
3975
|
+
ContextMenuSubTrigger,
|
|
3976
|
+
ContextMenuTrigger,
|
|
3977
|
+
CopyButton,
|
|
3978
|
+
DataTable,
|
|
3979
|
+
DatePicker,
|
|
3980
|
+
DateRangeFilter,
|
|
3981
|
+
Dialog,
|
|
3982
|
+
DialogClose,
|
|
3983
|
+
DialogContent,
|
|
3984
|
+
DialogDescription,
|
|
3985
|
+
DialogFooter,
|
|
3986
|
+
DialogHeader,
|
|
3987
|
+
DialogOverlay,
|
|
3988
|
+
DialogPortal,
|
|
3989
|
+
DialogTitle,
|
|
3990
|
+
DialogTrigger,
|
|
3991
|
+
Drawer,
|
|
3992
|
+
DrawerClose,
|
|
3993
|
+
DrawerContent,
|
|
3994
|
+
DrawerDescription,
|
|
3995
|
+
DrawerFooter,
|
|
3996
|
+
DrawerHeader,
|
|
3997
|
+
DrawerOverlay,
|
|
3998
|
+
DrawerPortal,
|
|
3999
|
+
DrawerTitle,
|
|
4000
|
+
DrawerTrigger,
|
|
4001
|
+
DropdownMenu,
|
|
4002
|
+
DropdownMenuCheckboxItem,
|
|
4003
|
+
DropdownMenuContent,
|
|
4004
|
+
DropdownMenuGroup,
|
|
4005
|
+
DropdownMenuItem,
|
|
4006
|
+
DropdownMenuLabel,
|
|
4007
|
+
DropdownMenuPortal,
|
|
4008
|
+
DropdownMenuRadioGroup,
|
|
4009
|
+
DropdownMenuRadioItem,
|
|
4010
|
+
DropdownMenuSeparator,
|
|
4011
|
+
DropdownMenuShortcut,
|
|
4012
|
+
DropdownMenuSub,
|
|
4013
|
+
DropdownMenuSubContent,
|
|
4014
|
+
DropdownMenuSubTrigger,
|
|
4015
|
+
DropdownMenuTrigger,
|
|
4016
|
+
EmptyState,
|
|
4017
|
+
FacetedFilter,
|
|
4018
|
+
Field,
|
|
4019
|
+
FieldControl,
|
|
4020
|
+
FieldDescription,
|
|
4021
|
+
FieldError,
|
|
4022
|
+
FieldGroup,
|
|
4023
|
+
FieldLabel,
|
|
4024
|
+
FloatingSheet,
|
|
4025
|
+
FloatingSheetBody,
|
|
4026
|
+
FloatingSheetFooter,
|
|
4027
|
+
FloatingSheetStack,
|
|
4028
|
+
Form,
|
|
4029
|
+
FormControl,
|
|
4030
|
+
FormDescription,
|
|
4031
|
+
FormField,
|
|
4032
|
+
FormItem,
|
|
4033
|
+
FormLabel,
|
|
4034
|
+
FormMessage,
|
|
4035
|
+
HoverCard,
|
|
4036
|
+
HoverCardContent,
|
|
4037
|
+
HoverCardTrigger,
|
|
4038
|
+
Icon,
|
|
4039
|
+
Input,
|
|
4040
|
+
InputOTP,
|
|
4041
|
+
InputOTPGroup,
|
|
4042
|
+
InputOTPSeparator,
|
|
4043
|
+
InputOTPSlot,
|
|
4044
|
+
Label,
|
|
4045
|
+
Menubar,
|
|
4046
|
+
MenubarCheckboxItem,
|
|
4047
|
+
MenubarContent,
|
|
4048
|
+
MenubarGroup,
|
|
4049
|
+
MenubarItem,
|
|
4050
|
+
MenubarLabel,
|
|
4051
|
+
MenubarMenu,
|
|
4052
|
+
MenubarPortal,
|
|
4053
|
+
MenubarRadioGroup,
|
|
4054
|
+
MenubarRadioItem,
|
|
4055
|
+
MenubarSeparator,
|
|
4056
|
+
MenubarShortcut,
|
|
4057
|
+
MenubarSub,
|
|
4058
|
+
MenubarSubContent,
|
|
4059
|
+
MenubarSubTrigger,
|
|
4060
|
+
MenubarTrigger,
|
|
4061
|
+
NavigationMenu,
|
|
4062
|
+
NavigationMenuContent,
|
|
4063
|
+
NavigationMenuIndicator,
|
|
4064
|
+
NavigationMenuItem,
|
|
4065
|
+
NavigationMenuLink,
|
|
4066
|
+
NavigationMenuList,
|
|
4067
|
+
NavigationMenuTrigger,
|
|
4068
|
+
NavigationMenuViewport,
|
|
4069
|
+
Pagination,
|
|
4070
|
+
PaginationContent,
|
|
4071
|
+
PaginationEllipsis,
|
|
4072
|
+
PaginationItem,
|
|
4073
|
+
PaginationLink,
|
|
4074
|
+
PaginationNext,
|
|
4075
|
+
PaginationPrevious,
|
|
4076
|
+
PasswordInput,
|
|
4077
|
+
PlaceholderPattern,
|
|
4078
|
+
Popover,
|
|
4079
|
+
PopoverAnchor,
|
|
4080
|
+
PopoverContent,
|
|
4081
|
+
PopoverTrigger,
|
|
4082
|
+
Progress,
|
|
4083
|
+
RadioGroup,
|
|
4084
|
+
RadioGroupItem,
|
|
4085
|
+
ResizableHandle,
|
|
4086
|
+
ResizablePanel,
|
|
4087
|
+
ResizablePanelGroup,
|
|
4088
|
+
RowActionsMenu,
|
|
4089
|
+
SAVED_DURATION,
|
|
4090
|
+
SaveStatus,
|
|
4091
|
+
ScrollArea,
|
|
4092
|
+
ScrollBar,
|
|
4093
|
+
Select,
|
|
4094
|
+
SelectContent,
|
|
4095
|
+
SelectGroup,
|
|
4096
|
+
SelectItem,
|
|
4097
|
+
SelectLabel,
|
|
4098
|
+
SelectScrollDownButton,
|
|
4099
|
+
SelectScrollUpButton,
|
|
4100
|
+
SelectSeparator,
|
|
4101
|
+
SelectTrigger,
|
|
4102
|
+
SelectValue,
|
|
4103
|
+
Separator,
|
|
4104
|
+
ServerFacetedFilter,
|
|
4105
|
+
Sheet,
|
|
4106
|
+
SheetClose,
|
|
4107
|
+
SheetContent,
|
|
4108
|
+
SheetDescription,
|
|
4109
|
+
SheetFooter,
|
|
4110
|
+
SheetHeader,
|
|
4111
|
+
SheetTitle,
|
|
4112
|
+
SheetTrigger,
|
|
4113
|
+
Sidebar,
|
|
4114
|
+
SidebarContent,
|
|
4115
|
+
SidebarFooter,
|
|
4116
|
+
SidebarGroup,
|
|
4117
|
+
SidebarGroupAction,
|
|
4118
|
+
SidebarGroupContent,
|
|
4119
|
+
SidebarGroupLabel,
|
|
4120
|
+
SidebarHeader,
|
|
4121
|
+
SidebarInput,
|
|
4122
|
+
SidebarInset,
|
|
4123
|
+
SidebarMenu,
|
|
4124
|
+
SidebarMenuAction,
|
|
4125
|
+
SidebarMenuBadge,
|
|
4126
|
+
SidebarMenuButton,
|
|
4127
|
+
SidebarMenuItem,
|
|
4128
|
+
SidebarMenuSkeleton,
|
|
4129
|
+
SidebarMenuSub,
|
|
4130
|
+
SidebarMenuSubButton,
|
|
4131
|
+
SidebarMenuSubItem,
|
|
4132
|
+
SidebarProvider,
|
|
4133
|
+
SidebarRail,
|
|
4134
|
+
SidebarSeparator,
|
|
4135
|
+
SidebarTrigger,
|
|
4136
|
+
Skeleton,
|
|
4137
|
+
Slider,
|
|
4138
|
+
Spinner,
|
|
4139
|
+
StatusBadge,
|
|
4140
|
+
Switch,
|
|
4141
|
+
Table,
|
|
4142
|
+
TableBody,
|
|
4143
|
+
TableCaption,
|
|
4144
|
+
TableCell,
|
|
4145
|
+
TableFooter,
|
|
4146
|
+
TableHead,
|
|
4147
|
+
TableHeader,
|
|
4148
|
+
TableRow,
|
|
4149
|
+
Tabs,
|
|
4150
|
+
TabsContent,
|
|
4151
|
+
TabsList,
|
|
4152
|
+
TabsTrigger,
|
|
4153
|
+
TextLink,
|
|
4154
|
+
Textarea,
|
|
4155
|
+
Toaster,
|
|
4156
|
+
Toggle,
|
|
4157
|
+
ToggleGroup,
|
|
4158
|
+
ToggleGroupItem,
|
|
4159
|
+
Tooltip,
|
|
4160
|
+
TooltipContent,
|
|
4161
|
+
TooltipProvider,
|
|
4162
|
+
TooltipTrigger,
|
|
4163
|
+
UiLocaleProvider,
|
|
4164
|
+
alertDefaultLabels,
|
|
4165
|
+
appearanceToggleDefaultLabels,
|
|
4166
|
+
badgeVariants,
|
|
4167
|
+
buttonVariants,
|
|
4168
|
+
cardVariants,
|
|
4169
|
+
cn,
|
|
4170
|
+
comboboxDefaultLabels,
|
|
4171
|
+
confirmDialogDefaultLabels,
|
|
4172
|
+
controlFill,
|
|
4173
|
+
copyButtonLabels,
|
|
4174
|
+
dataTableDefaultLabels,
|
|
4175
|
+
dataTableFacetedFilterDefaultLabels,
|
|
4176
|
+
datePickerDefaultLabels,
|
|
4177
|
+
dateRangeFilterDefaultLabels,
|
|
4178
|
+
elevatedSurface,
|
|
4179
|
+
emptyStateLabels,
|
|
4180
|
+
floatingSheetDefaultLabels,
|
|
4181
|
+
focusRing,
|
|
4182
|
+
menuHighlight,
|
|
4183
|
+
navigationMenuTriggerStyle,
|
|
4184
|
+
nestedEdgeToEdge,
|
|
4185
|
+
nestedRadius,
|
|
4186
|
+
nestedSurfaceReset,
|
|
4187
|
+
passwordInputDefaultLabels,
|
|
4188
|
+
recessedSurface,
|
|
4189
|
+
saveStatusLabels,
|
|
4190
|
+
spinnerVariants,
|
|
4191
|
+
statusBadgeVariants,
|
|
4192
|
+
surface,
|
|
4193
|
+
textLinkVariants,
|
|
4194
|
+
toast,
|
|
4195
|
+
toggleVariants,
|
|
4196
|
+
useAutosave,
|
|
4197
|
+
useConfirmDialog,
|
|
4198
|
+
useField,
|
|
4199
|
+
useFormField,
|
|
4200
|
+
useSidebar,
|
|
4201
|
+
useUiLabels,
|
|
4202
|
+
useUiLocale
|
|
4203
|
+
};
|
|
3732
4204
|
//# sourceMappingURL=index.js.map
|