@otfdashkit/ui 0.1.1 → 0.1.3
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/LICENSE +1 -1
- package/README.md +28 -41
- package/dist/index.js +972 -655
- package/dist/index.mjs +826 -525
- package/package.json +5 -4
- package/src/advanced/BulkActions/BulkActions.tsx +2 -2
- package/src/advanced/CommandBar/CommandBar.tsx +2 -2
- package/src/advanced/Filters/Filters.tsx +6 -6
- package/src/advanced/Kanban/Kanban.tsx +1 -1
- package/src/advanced/ToggleButton/ToggleButton.tsx +1 -1
- package/src/advanced/bulk-actions.tsx +1 -46
- package/src/advanced/command-bar.tsx +1 -115
- package/src/advanced/filters.tsx +1 -103
- package/src/advanced/kanban.tsx +1 -95
- package/src/advanced/toggle-button.tsx +1 -78
- package/src/blocks/ChatDetail/ChatDetail.tsx +4 -4
- package/src/blocks/FeedbackModal/FeedbackModal.tsx +3 -3
- package/src/blocks/FileCards/FileCards.tsx +2 -2
- package/src/blocks/FilesList/FilesList.tsx +3 -3
- package/src/blocks/IntegrationCard/IntegrationCard.tsx +3 -3
- package/src/blocks/InviteModal/InviteModal.tsx +7 -7
- package/src/blocks/ManageTagsModal/ManageTagsModal.tsx +4 -4
- package/src/blocks/MessagesCard/MessagesCard.tsx +3 -3
- package/src/blocks/MetricCard/MetricCard.tsx +3 -3
- package/src/blocks/NotificationSettings/NotificationSettings.tsx +4 -4
- package/src/blocks/OrganizationMenu/OrganizationMenu.tsx +30 -11
- package/src/blocks/RolesMenu/RolesMenu.tsx +4 -4
- package/src/blocks/SelectUsersModal/SelectUsersModal.tsx +5 -5
- package/src/blocks/SidebarLayoutDashboard/SidebarLayoutDashboard.tsx +5 -5
- package/src/blocks/SidebarLayoutGroups/SidebarLayoutGroups.tsx +2 -2
- package/src/blocks/SidebarLayoutMinimal/SidebarLayoutMinimal.tsx +3 -3
- package/src/blocks/SidebarLayoutSearch/SidebarLayoutSearch.tsx +3 -3
- package/src/blocks/SidebarLayoutUser/SidebarLayoutUser.tsx +4 -4
- package/src/blocks/SortableTaskList/SortableTaskList.tsx +3 -3
- package/src/blocks/StackedLayoutBranded/StackedLayoutBranded.tsx +4 -4
- package/src/blocks/StackedLayoutTabs/StackedLayoutTabs.tsx +4 -4
- package/src/blocks/TaskCard/TaskCard.tsx +4 -4
- package/src/blocks/UserMenu/UserMenu.tsx +3 -3
- package/src/blocks/WorkspaceMembers/WorkspaceMembers.tsx +5 -5
- package/src/blocks/chat-detail.tsx +1 -73
- package/src/blocks/feedback-modal.tsx +1 -68
- package/src/blocks/file-cards.tsx +1 -56
- package/src/blocks/files-list.tsx +1 -72
- package/src/blocks/integration-card.tsx +1 -50
- package/src/blocks/invite-modal.tsx +1 -69
- package/src/blocks/manage-tags-modal.tsx +1 -63
- package/src/blocks/messages-card.tsx +1 -59
- package/src/blocks/metric-card.tsx +1 -79
- package/src/blocks/notification-settings.tsx +1 -61
- package/src/blocks/organization-menu.tsx +1 -85
- package/src/blocks/roles-menu.tsx +1 -61
- package/src/blocks/select-users-modal.tsx +1 -64
- package/src/blocks/sidebar-layout-dashboard.tsx +1 -97
- package/src/blocks/sidebar-layout-groups.tsx +1 -79
- package/src/blocks/sidebar-layout-minimal.tsx +1 -73
- package/src/blocks/sidebar-layout-search.tsx +1 -79
- package/src/blocks/sidebar-layout-user.tsx +1 -82
- package/src/blocks/sortable-task-list.tsx +1 -70
- package/src/blocks/stacked-layout-branded.tsx +1 -64
- package/src/blocks/stacked-layout-tabs.tsx +1 -80
- package/src/blocks/task-card.tsx +1 -88
- package/src/blocks/user-menu.tsx +1 -62
- package/src/blocks/workspace-members.tsx +1 -61
- package/src/charts/sparkline.tsx +1 -1
- package/src/components/DataGrid/DataGrid.tsx +1 -1
- package/src/components/DataTable/DataTable.tsx +4 -4
- package/src/components/EmptyState/EmptyState.tsx +6 -22
- package/src/components/Persona/Persona.tsx +1 -1
- package/src/components/Stat/Stat.tsx +1 -1
- package/src/components/Stepper/Stepper.tsx +13 -2
- package/src/components/banner.tsx +1 -203
- package/src/components/breadcrumb.tsx +1 -58
- package/src/components/command-item.tsx +1 -36
- package/src/components/data-grid.tsx +1 -125
- package/src/components/data-table.tsx +1 -139
- package/src/components/empty-state.tsx +1 -31
- package/src/components/hotkeys.tsx +1 -31
- package/src/components/icon-badge.tsx +1 -35
- package/src/components/loading-overlay.tsx +1 -38
- package/src/components/persona.tsx +1 -38
- package/src/components/property-list.tsx +1 -29
- package/src/components/stat.tsx +1 -51
- package/src/components/stepper.tsx +1 -69
- package/src/components/structured-list.tsx +1 -51
- package/src/components/timeline.tsx +1 -69
- package/src/components/toaster.tsx +1 -42
- package/src/data/DataList.tsx +1 -1
- package/src/engagement/Tour/Tour.tsx +1 -1
- package/src/engagement/beacon.tsx +1 -50
- package/src/engagement/tour.tsx +1 -106
- package/src/forms/ArrayField/ArrayField.tsx +2 -2
- package/src/forms/AutoForm/AutoForm.tsx +9 -8
- package/src/forms/DatePicker/DatePicker.tsx +3 -3
- package/src/forms/FloatingLabelInput/FloatingLabelInput.tsx +104 -0
- package/src/forms/FloatingLabelInput/index.ts +1 -0
- package/src/forms/PasswordInput/PasswordInput.tsx +2 -2
- package/src/forms/SearchInput/SearchInput.tsx +2 -2
- package/src/forms/StepForm/StepForm.tsx +2 -2
- package/src/forms/array-field.tsx +1 -61
- package/src/forms/auto-form.tsx +1 -133
- package/src/forms/date-picker.tsx +1 -109
- package/src/forms/field.tsx +1 -62
- package/src/forms/file-upload.tsx +1 -101
- package/src/forms/floating-label-input.tsx +1 -0
- package/src/forms/form.tsx +1 -57
- package/src/forms/object-field.tsx +1 -53
- package/src/forms/password-input.tsx +1 -54
- package/src/forms/search-input.tsx +1 -64
- package/src/forms/step-form.tsx +1 -113
- package/src/index.ts +11 -3
- package/src/primitives/Button/Button.tsx +18 -0
- package/src/primitives/cart-line-item.tsx +81 -0
- package/src/primitives/code-block.tsx +1 -1
- package/src/primitives/comparison.tsx +1 -1
- package/src/primitives/empty-cart.tsx +52 -0
- package/src/primitives/price-tag.tsx +62 -0
- package/src/primitives/qr-code.tsx +5 -1
- package/src/primitives/quantity-stepper.tsx +92 -0
- package/src/primitives/variant-picker.tsx +74 -0
- package/src/themes/base.css +18 -0
package/dist/index.mjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { clsx } from 'clsx';
|
|
2
2
|
import { twMerge } from 'tailwind-merge';
|
|
3
|
-
import * as
|
|
4
|
-
import
|
|
3
|
+
import * as React136 from 'react';
|
|
4
|
+
import React136__default, { createContext, useState, useCallback, useMemo, useId, useRef, useEffect, useContext } from 'react';
|
|
5
5
|
import * as AccordionPrimitive from '@radix-ui/react-accordion';
|
|
6
|
-
import { ChevronDown, ArrowLeft, ArrowRight,
|
|
6
|
+
import { ChevronDown, ArrowLeft, ArrowRight, Minus, Plus, X, Check, Copy, Search, GripVertical, Circle, ChevronRight, ShoppingCart, Star, ChevronUp, Pipette, EyeOff, Eye, Menu, ChevronLeft, Play, Pause, VolumeX, Volume1, Volume2, Layers, Minimize, Maximize, Heading1, Heading2, Heading3, Bold, Italic, Underline, Code, List, ListOrdered, Quote, Code2, Undo2, Redo2, Link, Table as Table$2, ArrowUpToLine, ArrowDownToLine, ArrowLeftToLine, ArrowRightToLine, Trash2, ChevronLeftIcon, ChevronRightIcon, ChevronDownIcon, MoreHorizontal, Loader2Icon, ArrowUp, ArrowDown, ArrowUpDown, Loader2, TrendingUp, TrendingDown, Send, Pencil, Sun, Moon, Monitor, Palette, LayoutDashboard, FolderOpen, Users, Settings, Bell, BarChart2, CreditCard, HelpCircle, Calendar as Calendar$1, User, LogOut, Upload, ChevronsUpDown, Info, XCircle, AlertTriangle, CheckCircle2, FileText, Archive, Film, FileCode, Image, File, Download, CheckCircle } from 'lucide-react';
|
|
7
7
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
8
8
|
import * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog';
|
|
9
9
|
import { Slot } from '@radix-ui/react-slot';
|
|
@@ -21,10 +21,9 @@ import * as DialogPrimitive from '@radix-ui/react-dialog';
|
|
|
21
21
|
import * as ContextMenuPrimitive from '@radix-ui/react-context-menu';
|
|
22
22
|
import { Drawer as Drawer$1 } from 'vaul';
|
|
23
23
|
import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
|
|
24
|
-
import { useFormContext, useForm } from 'react-hook-form';
|
|
25
|
-
import * as LabelPrimitive from '@radix-ui/react-label';
|
|
26
24
|
import * as HoverCardPrimitive from '@radix-ui/react-hover-card';
|
|
27
25
|
import { OTPInput, OTPInputContext } from 'input-otp';
|
|
26
|
+
import * as LabelPrimitive from '@radix-ui/react-label';
|
|
28
27
|
import * as MenubarPrimitive from '@radix-ui/react-menubar';
|
|
29
28
|
import * as NavigationMenuPrimitive from '@radix-ui/react-navigation-menu';
|
|
30
29
|
import * as PopoverPrimitive from '@radix-ui/react-popover';
|
|
@@ -56,6 +55,8 @@ import { Table as Table$1 } from '@tiptap/extension-table';
|
|
|
56
55
|
import { TableRow as TableRow$1 } from '@tiptap/extension-table-row';
|
|
57
56
|
import { TableCell as TableCell$1 } from '@tiptap/extension-table-cell';
|
|
58
57
|
import { TableHeader as TableHeader$1 } from '@tiptap/extension-table-header';
|
|
58
|
+
import { useForm, Controller, useFormContext } from 'react-hook-form';
|
|
59
|
+
export { FormProvider as Form } from 'react-hook-form';
|
|
59
60
|
import { zodResolver } from '@hookform/resolvers/zod';
|
|
60
61
|
import * as z from 'zod';
|
|
61
62
|
import { HexAlphaColorPicker, HexColorPicker, RgbStringColorPicker, HslStringColorPicker } from 'react-colorful';
|
|
@@ -70,7 +71,7 @@ function cn(...inputs) {
|
|
|
70
71
|
return twMerge(clsx(inputs));
|
|
71
72
|
}
|
|
72
73
|
var Accordion = AccordionPrimitive.Root;
|
|
73
|
-
var AccordionItem =
|
|
74
|
+
var AccordionItem = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
74
75
|
AccordionPrimitive.Item,
|
|
75
76
|
{
|
|
76
77
|
ref,
|
|
@@ -79,7 +80,7 @@ var AccordionItem = React131.forwardRef(({ className, ...props }, ref) => /* @__
|
|
|
79
80
|
}
|
|
80
81
|
));
|
|
81
82
|
AccordionItem.displayName = "AccordionItem";
|
|
82
|
-
var AccordionTrigger =
|
|
83
|
+
var AccordionTrigger = React136.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx(AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */ jsxs(
|
|
83
84
|
AccordionPrimitive.Trigger,
|
|
84
85
|
{
|
|
85
86
|
ref,
|
|
@@ -95,7 +96,7 @@ var AccordionTrigger = React131.forwardRef(({ className, children, ...props }, r
|
|
|
95
96
|
}
|
|
96
97
|
) }));
|
|
97
98
|
AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;
|
|
98
|
-
var AccordionContent =
|
|
99
|
+
var AccordionContent = React136.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
99
100
|
AccordionPrimitive.Content,
|
|
100
101
|
{
|
|
101
102
|
ref,
|
|
@@ -127,7 +128,7 @@ var buttonVariants = cva(
|
|
|
127
128
|
defaultVariants: { variant: "default", size: "default" }
|
|
128
129
|
}
|
|
129
130
|
);
|
|
130
|
-
var Button =
|
|
131
|
+
var Button = React136__default.forwardRef(
|
|
131
132
|
({ className, variant, size, asChild = false, ...props }, ref) => {
|
|
132
133
|
const Comp = asChild ? Slot : "button";
|
|
133
134
|
return /* @__PURE__ */ jsx(Comp, { className: cn(buttonVariants({ variant, size }), className), ref, ...props });
|
|
@@ -137,7 +138,7 @@ Button.displayName = "Button";
|
|
|
137
138
|
var AlertDialog = AlertDialogPrimitive.Root;
|
|
138
139
|
var AlertDialogTrigger = AlertDialogPrimitive.Trigger;
|
|
139
140
|
var AlertDialogPortal = AlertDialogPrimitive.Portal;
|
|
140
|
-
var AlertDialogOverlay =
|
|
141
|
+
var AlertDialogOverlay = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
141
142
|
AlertDialogPrimitive.Overlay,
|
|
142
143
|
{
|
|
143
144
|
className: cn(
|
|
@@ -149,7 +150,7 @@ var AlertDialogOverlay = React131.forwardRef(({ className, ...props }, ref) => /
|
|
|
149
150
|
}
|
|
150
151
|
));
|
|
151
152
|
AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;
|
|
152
|
-
var AlertDialogContent =
|
|
153
|
+
var AlertDialogContent = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs(AlertDialogPortal, { children: [
|
|
153
154
|
/* @__PURE__ */ jsx(AlertDialogOverlay, {}),
|
|
154
155
|
/* @__PURE__ */ jsx(
|
|
155
156
|
AlertDialogPrimitive.Content,
|
|
@@ -192,7 +193,7 @@ var AlertDialogFooter = ({
|
|
|
192
193
|
}
|
|
193
194
|
);
|
|
194
195
|
AlertDialogFooter.displayName = "AlertDialogFooter";
|
|
195
|
-
var AlertDialogTitle =
|
|
196
|
+
var AlertDialogTitle = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
196
197
|
AlertDialogPrimitive.Title,
|
|
197
198
|
{
|
|
198
199
|
ref,
|
|
@@ -201,7 +202,7 @@ var AlertDialogTitle = React131.forwardRef(({ className, ...props }, ref) => /*
|
|
|
201
202
|
}
|
|
202
203
|
));
|
|
203
204
|
AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;
|
|
204
|
-
var AlertDialogDescription =
|
|
205
|
+
var AlertDialogDescription = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
205
206
|
AlertDialogPrimitive.Description,
|
|
206
207
|
{
|
|
207
208
|
ref,
|
|
@@ -210,7 +211,7 @@ var AlertDialogDescription = React131.forwardRef(({ className, ...props }, ref)
|
|
|
210
211
|
}
|
|
211
212
|
));
|
|
212
213
|
AlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName;
|
|
213
|
-
var AlertDialogAction =
|
|
214
|
+
var AlertDialogAction = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
214
215
|
AlertDialogPrimitive.Action,
|
|
215
216
|
{
|
|
216
217
|
ref,
|
|
@@ -219,7 +220,7 @@ var AlertDialogAction = React131.forwardRef(({ className, ...props }, ref) => /*
|
|
|
219
220
|
}
|
|
220
221
|
));
|
|
221
222
|
AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;
|
|
222
|
-
var AlertDialogCancel =
|
|
223
|
+
var AlertDialogCancel = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
223
224
|
AlertDialogPrimitive.Cancel,
|
|
224
225
|
{
|
|
225
226
|
ref,
|
|
@@ -246,7 +247,7 @@ var alertVariants = cva(
|
|
|
246
247
|
}
|
|
247
248
|
}
|
|
248
249
|
);
|
|
249
|
-
var Alert =
|
|
250
|
+
var Alert = React136.forwardRef(({ className, variant, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
250
251
|
"div",
|
|
251
252
|
{
|
|
252
253
|
ref,
|
|
@@ -256,7 +257,7 @@ var Alert = React131.forwardRef(({ className, variant, ...props }, ref) => /* @_
|
|
|
256
257
|
}
|
|
257
258
|
));
|
|
258
259
|
Alert.displayName = "Alert";
|
|
259
|
-
var AlertTitle =
|
|
260
|
+
var AlertTitle = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
260
261
|
"h5",
|
|
261
262
|
{
|
|
262
263
|
ref,
|
|
@@ -265,7 +266,7 @@ var AlertTitle = React131.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
265
266
|
}
|
|
266
267
|
));
|
|
267
268
|
AlertTitle.displayName = "AlertTitle";
|
|
268
|
-
var AlertDescription =
|
|
269
|
+
var AlertDescription = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
269
270
|
"div",
|
|
270
271
|
{
|
|
271
272
|
ref,
|
|
@@ -275,7 +276,7 @@ var AlertDescription = React131.forwardRef(({ className, ...props }, ref) => /*
|
|
|
275
276
|
));
|
|
276
277
|
AlertDescription.displayName = "AlertDescription";
|
|
277
278
|
var AspectRatio = AspectRatioPrimitive.Root;
|
|
278
|
-
var Avatar =
|
|
279
|
+
var Avatar = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
279
280
|
AvatarPrimitive.Root,
|
|
280
281
|
{
|
|
281
282
|
ref,
|
|
@@ -284,9 +285,9 @@ var Avatar = React131__default.forwardRef(({ className, ...props }, ref) => /* @
|
|
|
284
285
|
}
|
|
285
286
|
));
|
|
286
287
|
Avatar.displayName = AvatarPrimitive.Root.displayName;
|
|
287
|
-
var AvatarImage =
|
|
288
|
+
var AvatarImage = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(AvatarPrimitive.Image, { ref, className: cn("aspect-square h-full w-full object-cover", className), ...props }));
|
|
288
289
|
AvatarImage.displayName = AvatarPrimitive.Image.displayName;
|
|
289
|
-
var AvatarFallback =
|
|
290
|
+
var AvatarFallback = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
290
291
|
AvatarPrimitive.Fallback,
|
|
291
292
|
{
|
|
292
293
|
ref,
|
|
@@ -295,15 +296,15 @@ var AvatarFallback = React131__default.forwardRef(({ className, ...props }, ref)
|
|
|
295
296
|
}
|
|
296
297
|
));
|
|
297
298
|
AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;
|
|
298
|
-
var AvatarGroup =
|
|
299
|
+
var AvatarGroup = React136__default.forwardRef(
|
|
299
300
|
({ className, max = 4, size = 32, spacing, renderOverflow, children, ...props }, ref) => {
|
|
300
|
-
const items =
|
|
301
|
+
const items = React136__default.Children.toArray(children).filter(React136__default.isValidElement);
|
|
301
302
|
const overlap = spacing ?? Math.round(size / 3);
|
|
302
303
|
const visible = items.slice(0, max);
|
|
303
304
|
const remaining = Math.max(0, items.length - max);
|
|
304
305
|
return /* @__PURE__ */ jsxs("div", { ref, className: cn("flex items-center", className), "data-slot": "avatar-group", ...props, children: [
|
|
305
306
|
visible.map(
|
|
306
|
-
(child, i) =>
|
|
307
|
+
(child, i) => React136__default.cloneElement(child, {
|
|
307
308
|
key: child.key ?? i,
|
|
308
309
|
style: {
|
|
309
310
|
width: size,
|
|
@@ -509,8 +510,8 @@ function CalendarDayButton({
|
|
|
509
510
|
...props
|
|
510
511
|
}) {
|
|
511
512
|
const defaultClassNames = getDefaultClassNames();
|
|
512
|
-
const ref =
|
|
513
|
-
|
|
513
|
+
const ref = React136.useRef(null);
|
|
514
|
+
React136.useEffect(() => {
|
|
514
515
|
if (modifiers.focused) ref.current?.focus();
|
|
515
516
|
}, [modifiers.focused]);
|
|
516
517
|
return /* @__PURE__ */ jsx(
|
|
@@ -533,7 +534,7 @@ function CalendarDayButton({
|
|
|
533
534
|
}
|
|
534
535
|
);
|
|
535
536
|
}
|
|
536
|
-
var Card =
|
|
537
|
+
var Card = React136__default.forwardRef(
|
|
537
538
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
538
539
|
"div",
|
|
539
540
|
{
|
|
@@ -544,35 +545,35 @@ var Card = React131__default.forwardRef(
|
|
|
544
545
|
)
|
|
545
546
|
);
|
|
546
547
|
Card.displayName = "Card";
|
|
547
|
-
var CardHeader =
|
|
548
|
+
var CardHeader = React136__default.forwardRef(
|
|
548
549
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex flex-col space-y-1.5 p-6", className), ...props })
|
|
549
550
|
);
|
|
550
551
|
CardHeader.displayName = "CardHeader";
|
|
551
|
-
var CardTitle =
|
|
552
|
+
var CardTitle = React136__default.forwardRef(
|
|
552
553
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("font-semibold leading-none tracking-tight", className), ...props })
|
|
553
554
|
);
|
|
554
555
|
CardTitle.displayName = "CardTitle";
|
|
555
|
-
var CardDescription =
|
|
556
|
+
var CardDescription = React136__default.forwardRef(
|
|
556
557
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("text-sm text-muted-foreground", className), ...props })
|
|
557
558
|
);
|
|
558
559
|
CardDescription.displayName = "CardDescription";
|
|
559
|
-
var CardContent =
|
|
560
|
+
var CardContent = React136__default.forwardRef(
|
|
560
561
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("p-6 pt-0", className), ...props })
|
|
561
562
|
);
|
|
562
563
|
CardContent.displayName = "CardContent";
|
|
563
|
-
var CardFooter =
|
|
564
|
+
var CardFooter = React136__default.forwardRef(
|
|
564
565
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex items-center p-6 pt-0", className), ...props })
|
|
565
566
|
);
|
|
566
567
|
CardFooter.displayName = "CardFooter";
|
|
567
|
-
var CarouselContext =
|
|
568
|
+
var CarouselContext = React136.createContext(null);
|
|
568
569
|
function useCarousel() {
|
|
569
|
-
const context =
|
|
570
|
+
const context = React136.useContext(CarouselContext);
|
|
570
571
|
if (!context) {
|
|
571
572
|
throw new Error("useCarousel must be used within a <Carousel />");
|
|
572
573
|
}
|
|
573
574
|
return context;
|
|
574
575
|
}
|
|
575
|
-
var Carousel =
|
|
576
|
+
var Carousel = React136.forwardRef(
|
|
576
577
|
({
|
|
577
578
|
orientation = "horizontal",
|
|
578
579
|
opts,
|
|
@@ -589,22 +590,22 @@ var Carousel = React131.forwardRef(
|
|
|
589
590
|
},
|
|
590
591
|
plugins
|
|
591
592
|
);
|
|
592
|
-
const [canScrollPrev, setCanScrollPrev] =
|
|
593
|
-
const [canScrollNext, setCanScrollNext] =
|
|
594
|
-
const onSelect =
|
|
593
|
+
const [canScrollPrev, setCanScrollPrev] = React136.useState(false);
|
|
594
|
+
const [canScrollNext, setCanScrollNext] = React136.useState(false);
|
|
595
|
+
const onSelect = React136.useCallback((api2) => {
|
|
595
596
|
if (!api2) {
|
|
596
597
|
return;
|
|
597
598
|
}
|
|
598
599
|
setCanScrollPrev(api2.canScrollPrev());
|
|
599
600
|
setCanScrollNext(api2.canScrollNext());
|
|
600
601
|
}, []);
|
|
601
|
-
const scrollPrev =
|
|
602
|
+
const scrollPrev = React136.useCallback(() => {
|
|
602
603
|
api?.scrollPrev();
|
|
603
604
|
}, [api]);
|
|
604
|
-
const scrollNext =
|
|
605
|
+
const scrollNext = React136.useCallback(() => {
|
|
605
606
|
api?.scrollNext();
|
|
606
607
|
}, [api]);
|
|
607
|
-
const handleKeyDown =
|
|
608
|
+
const handleKeyDown = React136.useCallback(
|
|
608
609
|
(event) => {
|
|
609
610
|
if (event.key === "ArrowLeft") {
|
|
610
611
|
event.preventDefault();
|
|
@@ -616,13 +617,13 @@ var Carousel = React131.forwardRef(
|
|
|
616
617
|
},
|
|
617
618
|
[scrollPrev, scrollNext]
|
|
618
619
|
);
|
|
619
|
-
|
|
620
|
+
React136.useEffect(() => {
|
|
620
621
|
if (!api || !setApi) {
|
|
621
622
|
return;
|
|
622
623
|
}
|
|
623
624
|
setApi(api);
|
|
624
625
|
}, [api, setApi]);
|
|
625
|
-
|
|
626
|
+
React136.useEffect(() => {
|
|
626
627
|
if (!api) {
|
|
627
628
|
return;
|
|
628
629
|
}
|
|
@@ -663,7 +664,7 @@ var Carousel = React131.forwardRef(
|
|
|
663
664
|
}
|
|
664
665
|
);
|
|
665
666
|
Carousel.displayName = "Carousel";
|
|
666
|
-
var CarouselContent =
|
|
667
|
+
var CarouselContent = React136.forwardRef(({ className, ...props }, ref) => {
|
|
667
668
|
const { carouselRef, orientation } = useCarousel();
|
|
668
669
|
return /* @__PURE__ */ jsx("div", { ref: carouselRef, className: "overflow-hidden", children: /* @__PURE__ */ jsx(
|
|
669
670
|
"div",
|
|
@@ -679,7 +680,7 @@ var CarouselContent = React131.forwardRef(({ className, ...props }, ref) => {
|
|
|
679
680
|
) });
|
|
680
681
|
});
|
|
681
682
|
CarouselContent.displayName = "CarouselContent";
|
|
682
|
-
var CarouselItem =
|
|
683
|
+
var CarouselItem = React136.forwardRef(({ className, ...props }, ref) => {
|
|
683
684
|
const { orientation } = useCarousel();
|
|
684
685
|
return /* @__PURE__ */ jsx(
|
|
685
686
|
"div",
|
|
@@ -697,7 +698,7 @@ var CarouselItem = React131.forwardRef(({ className, ...props }, ref) => {
|
|
|
697
698
|
);
|
|
698
699
|
});
|
|
699
700
|
CarouselItem.displayName = "CarouselItem";
|
|
700
|
-
var CarouselPrevious =
|
|
701
|
+
var CarouselPrevious = React136.forwardRef(({ className, variant = "outline", size = "icon", ...props }, ref) => {
|
|
701
702
|
const { orientation, scrollPrev, canScrollPrev } = useCarousel();
|
|
702
703
|
return /* @__PURE__ */ jsxs(
|
|
703
704
|
Button,
|
|
@@ -721,7 +722,7 @@ var CarouselPrevious = React131.forwardRef(({ className, variant = "outline", si
|
|
|
721
722
|
);
|
|
722
723
|
});
|
|
723
724
|
CarouselPrevious.displayName = "CarouselPrevious";
|
|
724
|
-
var CarouselNext =
|
|
725
|
+
var CarouselNext = React136.forwardRef(({ className, variant = "outline", size = "icon", ...props }, ref) => {
|
|
725
726
|
const { orientation, scrollNext, canScrollNext } = useCarousel();
|
|
726
727
|
return /* @__PURE__ */ jsxs(
|
|
727
728
|
Button,
|
|
@@ -745,17 +746,173 @@ var CarouselNext = React131.forwardRef(({ className, variant = "outline", size =
|
|
|
745
746
|
);
|
|
746
747
|
});
|
|
747
748
|
CarouselNext.displayName = "CarouselNext";
|
|
749
|
+
var SIZE = {
|
|
750
|
+
sm: { price: "text-sm", compare: "text-xs" },
|
|
751
|
+
md: { price: "text-lg", compare: "text-sm" },
|
|
752
|
+
lg: { price: "text-2xl", compare: "text-base" }
|
|
753
|
+
};
|
|
754
|
+
function formatMoney(minor, currency, locale) {
|
|
755
|
+
return new Intl.NumberFormat(locale, { style: "currency", currency }).format(minor / 100);
|
|
756
|
+
}
|
|
757
|
+
var PriceTag = React136__default.forwardRef(
|
|
758
|
+
({ amount, compareAt, currency = "USD", locale = "en-US", size = "md", showDiscount = true, className, ...props }, ref) => {
|
|
759
|
+
const onSale = compareAt !== void 0 && compareAt > amount;
|
|
760
|
+
const pct = onSale ? Math.round((1 - amount / compareAt) * 100) : 0;
|
|
761
|
+
const s = SIZE[size];
|
|
762
|
+
return /* @__PURE__ */ jsxs("span", { ref, className: cn("inline-flex items-baseline gap-2 font-sans tabular-nums", className), ...props, children: [
|
|
763
|
+
/* @__PURE__ */ jsx("span", { className: cn("font-semibold tracking-tight text-foreground", s.price), children: formatMoney(amount, currency, locale) }),
|
|
764
|
+
onSale && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
765
|
+
/* @__PURE__ */ jsx("span", { className: cn("text-muted-foreground line-through", s.compare), children: formatMoney(compareAt, currency, locale) }),
|
|
766
|
+
showDiscount && /* @__PURE__ */ jsxs("span", { className: "rounded-full bg-destructive/10 px-2 py-0.5 text-xs font-semibold text-destructive", children: [
|
|
767
|
+
"\u2212",
|
|
768
|
+
pct,
|
|
769
|
+
"%"
|
|
770
|
+
] })
|
|
771
|
+
] })
|
|
772
|
+
] });
|
|
773
|
+
}
|
|
774
|
+
);
|
|
775
|
+
PriceTag.displayName = "PriceTag";
|
|
776
|
+
var QuantityStepper = React136__default.forwardRef(
|
|
777
|
+
({
|
|
778
|
+
value: valueProp,
|
|
779
|
+
defaultValue = 1,
|
|
780
|
+
onValueChange,
|
|
781
|
+
min = 1,
|
|
782
|
+
max = 99,
|
|
783
|
+
step = 1,
|
|
784
|
+
size = "md",
|
|
785
|
+
disabled = false,
|
|
786
|
+
className,
|
|
787
|
+
"aria-label": ariaLabel = "Quantity",
|
|
788
|
+
...props
|
|
789
|
+
}, ref) => {
|
|
790
|
+
const isControlled = valueProp !== void 0;
|
|
791
|
+
const [internal, setInternal] = React136__default.useState(defaultValue);
|
|
792
|
+
const value = isControlled ? valueProp : internal;
|
|
793
|
+
const commit = (next) => {
|
|
794
|
+
const clamped = Math.max(min, Math.min(max, next));
|
|
795
|
+
if (!isControlled) setInternal(clamped);
|
|
796
|
+
onValueChange?.(clamped);
|
|
797
|
+
};
|
|
798
|
+
const dim = size === "sm" ? "h-7 w-7" : "h-9 w-9";
|
|
799
|
+
return /* @__PURE__ */ jsxs(
|
|
800
|
+
"div",
|
|
801
|
+
{
|
|
802
|
+
ref,
|
|
803
|
+
role: "group",
|
|
804
|
+
"aria-label": ariaLabel,
|
|
805
|
+
className: cn("inline-flex items-center rounded-md border border-input", className),
|
|
806
|
+
...props,
|
|
807
|
+
children: [
|
|
808
|
+
/* @__PURE__ */ jsx(
|
|
809
|
+
Button,
|
|
810
|
+
{
|
|
811
|
+
type: "button",
|
|
812
|
+
variant: "ghost",
|
|
813
|
+
size: "icon",
|
|
814
|
+
className: cn("rounded-r-none", dim),
|
|
815
|
+
disabled: disabled || value <= min,
|
|
816
|
+
onClick: () => commit(value - step),
|
|
817
|
+
"aria-label": "Decrease quantity",
|
|
818
|
+
children: /* @__PURE__ */ jsx(Minus, { className: "h-4 w-4" })
|
|
819
|
+
}
|
|
820
|
+
),
|
|
821
|
+
/* @__PURE__ */ jsx(
|
|
822
|
+
"span",
|
|
823
|
+
{
|
|
824
|
+
"aria-live": "polite",
|
|
825
|
+
className: cn("select-none text-center text-sm font-medium tabular-nums", size === "sm" ? "min-w-7" : "min-w-8"),
|
|
826
|
+
children: value
|
|
827
|
+
}
|
|
828
|
+
),
|
|
829
|
+
/* @__PURE__ */ jsx(
|
|
830
|
+
Button,
|
|
831
|
+
{
|
|
832
|
+
type: "button",
|
|
833
|
+
variant: "ghost",
|
|
834
|
+
size: "icon",
|
|
835
|
+
className: cn("rounded-l-none", dim),
|
|
836
|
+
disabled: disabled || value >= max,
|
|
837
|
+
onClick: () => commit(value + step),
|
|
838
|
+
"aria-label": "Increase quantity",
|
|
839
|
+
children: /* @__PURE__ */ jsx(Plus, { className: "h-4 w-4" })
|
|
840
|
+
}
|
|
841
|
+
)
|
|
842
|
+
]
|
|
843
|
+
}
|
|
844
|
+
);
|
|
845
|
+
}
|
|
846
|
+
);
|
|
847
|
+
QuantityStepper.displayName = "QuantityStepper";
|
|
848
|
+
var CartLineItem = React136__default.forwardRef(
|
|
849
|
+
({
|
|
850
|
+
image,
|
|
851
|
+
title,
|
|
852
|
+
variant,
|
|
853
|
+
price,
|
|
854
|
+
compareAt,
|
|
855
|
+
currency = "USD",
|
|
856
|
+
quantity,
|
|
857
|
+
onQuantityChange,
|
|
858
|
+
onRemove,
|
|
859
|
+
minQuantity = 1,
|
|
860
|
+
maxQuantity = 99,
|
|
861
|
+
className,
|
|
862
|
+
...props
|
|
863
|
+
}, ref) => {
|
|
864
|
+
return /* @__PURE__ */ jsxs(
|
|
865
|
+
"div",
|
|
866
|
+
{
|
|
867
|
+
ref,
|
|
868
|
+
className: cn("flex items-center gap-4 rounded-lg border border-border bg-card p-3", className),
|
|
869
|
+
...props,
|
|
870
|
+
children: [
|
|
871
|
+
image && /* @__PURE__ */ jsx("img", { src: image, alt: "", className: "h-16 w-16 flex-none rounded-md object-cover" }),
|
|
872
|
+
/* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-1 flex-col gap-1", children: [
|
|
873
|
+
/* @__PURE__ */ jsx("span", { className: "truncate font-medium text-card-foreground", children: title }),
|
|
874
|
+
variant && /* @__PURE__ */ jsx("span", { className: "truncate text-sm text-muted-foreground", children: variant }),
|
|
875
|
+
/* @__PURE__ */ jsx(PriceTag, { amount: price, compareAt, currency, size: "sm" })
|
|
876
|
+
] }),
|
|
877
|
+
/* @__PURE__ */ jsx(
|
|
878
|
+
QuantityStepper,
|
|
879
|
+
{
|
|
880
|
+
value: quantity,
|
|
881
|
+
min: minQuantity,
|
|
882
|
+
max: maxQuantity,
|
|
883
|
+
onValueChange: onQuantityChange,
|
|
884
|
+
size: "sm"
|
|
885
|
+
}
|
|
886
|
+
),
|
|
887
|
+
onRemove && /* @__PURE__ */ jsx(
|
|
888
|
+
Button,
|
|
889
|
+
{
|
|
890
|
+
type: "button",
|
|
891
|
+
variant: "ghost",
|
|
892
|
+
size: "icon",
|
|
893
|
+
className: "h-8 w-8 text-muted-foreground hover:text-destructive",
|
|
894
|
+
onClick: onRemove,
|
|
895
|
+
"aria-label": `Remove ${title}`,
|
|
896
|
+
children: /* @__PURE__ */ jsx(X, { className: "h-4 w-4" })
|
|
897
|
+
}
|
|
898
|
+
)
|
|
899
|
+
]
|
|
900
|
+
}
|
|
901
|
+
);
|
|
902
|
+
}
|
|
903
|
+
);
|
|
904
|
+
CartLineItem.displayName = "CartLineItem";
|
|
748
905
|
var THEMES = { light: "", dark: ".dark" };
|
|
749
|
-
var ChartContext =
|
|
906
|
+
var ChartContext = React136.createContext(null);
|
|
750
907
|
function useChart() {
|
|
751
|
-
const context =
|
|
908
|
+
const context = React136.useContext(ChartContext);
|
|
752
909
|
if (!context) {
|
|
753
910
|
throw new Error("useChart must be used within a <ChartContainer />");
|
|
754
911
|
}
|
|
755
912
|
return context;
|
|
756
913
|
}
|
|
757
|
-
var ChartContainer =
|
|
758
|
-
const uniqueId =
|
|
914
|
+
var ChartContainer = React136.forwardRef(({ id, className, children, config, ...props }, ref) => {
|
|
915
|
+
const uniqueId = React136.useId();
|
|
759
916
|
const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
|
|
760
917
|
return /* @__PURE__ */ jsx(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxs(
|
|
761
918
|
"div",
|
|
@@ -801,7 +958,7 @@ ${colorConfig.map(([key, itemConfig]) => {
|
|
|
801
958
|
);
|
|
802
959
|
};
|
|
803
960
|
var ChartTooltip = RechartsPrimitive.Tooltip;
|
|
804
|
-
var ChartTooltipContent =
|
|
961
|
+
var ChartTooltipContent = React136.forwardRef(
|
|
805
962
|
({
|
|
806
963
|
active,
|
|
807
964
|
payload,
|
|
@@ -818,7 +975,7 @@ var ChartTooltipContent = React131.forwardRef(
|
|
|
818
975
|
labelKey
|
|
819
976
|
}, ref) => {
|
|
820
977
|
const { config } = useChart();
|
|
821
|
-
const tooltipLabel =
|
|
978
|
+
const tooltipLabel = React136.useMemo(() => {
|
|
822
979
|
if (hideLabel || !payload?.length) {
|
|
823
980
|
return null;
|
|
824
981
|
}
|
|
@@ -914,7 +1071,7 @@ var ChartTooltipContent = React131.forwardRef(
|
|
|
914
1071
|
);
|
|
915
1072
|
ChartTooltipContent.displayName = "ChartTooltip";
|
|
916
1073
|
var ChartLegend = RechartsPrimitive.Legend;
|
|
917
|
-
var ChartLegendContent =
|
|
1074
|
+
var ChartLegendContent = React136.forwardRef(
|
|
918
1075
|
({ className, hideIcon = false, payload, verticalAlign = "bottom", nameKey }, ref) => {
|
|
919
1076
|
const { config } = useChart();
|
|
920
1077
|
if (!payload?.length) {
|
|
@@ -972,7 +1129,7 @@ function getPayloadConfigFromPayload(config, payload, key) {
|
|
|
972
1129
|
}
|
|
973
1130
|
return configLabelKey in config ? config[configLabelKey] : config[key];
|
|
974
1131
|
}
|
|
975
|
-
var Checkbox =
|
|
1132
|
+
var Checkbox = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
976
1133
|
CheckboxPrimitive.Root,
|
|
977
1134
|
{
|
|
978
1135
|
ref,
|
|
@@ -1012,7 +1169,7 @@ function detectTheme(node) {
|
|
|
1012
1169
|
}
|
|
1013
1170
|
return document.documentElement.classList.contains("dark") ? "dark" : "light";
|
|
1014
1171
|
}
|
|
1015
|
-
var CodeBlock =
|
|
1172
|
+
var CodeBlock = React136__default.forwardRef(
|
|
1016
1173
|
({
|
|
1017
1174
|
code,
|
|
1018
1175
|
language = "tsx",
|
|
@@ -1023,10 +1180,10 @@ var CodeBlock = React131__default.forwardRef(
|
|
|
1023
1180
|
className,
|
|
1024
1181
|
...props
|
|
1025
1182
|
}, ref) => {
|
|
1026
|
-
const containerRef =
|
|
1027
|
-
const [html, setHtml] =
|
|
1028
|
-
const [copied, setCopied] =
|
|
1029
|
-
|
|
1183
|
+
const containerRef = React136__default.useRef(null);
|
|
1184
|
+
const [html, setHtml] = React136__default.useState(null);
|
|
1185
|
+
const [copied, setCopied] = React136__default.useState(false);
|
|
1186
|
+
React136__default.useEffect(() => {
|
|
1030
1187
|
let cancelled = false;
|
|
1031
1188
|
getHighlighter().then((hl) => {
|
|
1032
1189
|
if (cancelled) return;
|
|
@@ -1041,7 +1198,7 @@ var CodeBlock = React131__default.forwardRef(
|
|
|
1041
1198
|
cancelled = true;
|
|
1042
1199
|
};
|
|
1043
1200
|
}, [code, language, theme]);
|
|
1044
|
-
const onCopy =
|
|
1201
|
+
const onCopy = React136__default.useCallback(async () => {
|
|
1045
1202
|
try {
|
|
1046
1203
|
await navigator.clipboard.writeText(code);
|
|
1047
1204
|
setCopied(true);
|
|
@@ -1049,7 +1206,7 @@ var CodeBlock = React131__default.forwardRef(
|
|
|
1049
1206
|
} catch {
|
|
1050
1207
|
}
|
|
1051
1208
|
}, [code]);
|
|
1052
|
-
const lines =
|
|
1209
|
+
const lines = React136__default.useMemo(() => code.split("\n"), [code]);
|
|
1053
1210
|
return /* @__PURE__ */ jsxs(
|
|
1054
1211
|
"div",
|
|
1055
1212
|
{
|
|
@@ -1117,7 +1274,7 @@ var Dialog = DialogPrimitive.Root;
|
|
|
1117
1274
|
var DialogTrigger = DialogPrimitive.Trigger;
|
|
1118
1275
|
var DialogPortal = DialogPrimitive.Portal;
|
|
1119
1276
|
var DialogClose = DialogPrimitive.Close;
|
|
1120
|
-
var DialogOverlay =
|
|
1277
|
+
var DialogOverlay = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1121
1278
|
DialogPrimitive.Overlay,
|
|
1122
1279
|
{
|
|
1123
1280
|
ref,
|
|
@@ -1131,7 +1288,7 @@ var DialogOverlay = React131__default.forwardRef(({ className, ...props }, ref)
|
|
|
1131
1288
|
}
|
|
1132
1289
|
));
|
|
1133
1290
|
DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
|
|
1134
|
-
var DialogContent =
|
|
1291
|
+
var DialogContent = React136__default.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(DialogPortal, { children: [
|
|
1135
1292
|
/* @__PURE__ */ jsx(DialogOverlay, {}),
|
|
1136
1293
|
/* @__PURE__ */ jsxs(
|
|
1137
1294
|
DialogPrimitive.Content,
|
|
@@ -1161,7 +1318,7 @@ var DialogHeader = ({ className, ...props }) => /* @__PURE__ */ jsx("div", { cla
|
|
|
1161
1318
|
DialogHeader.displayName = "DialogHeader";
|
|
1162
1319
|
var DialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx("div", { className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className), ...props });
|
|
1163
1320
|
DialogFooter.displayName = "DialogFooter";
|
|
1164
|
-
var DialogTitle =
|
|
1321
|
+
var DialogTitle = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1165
1322
|
DialogPrimitive.Title,
|
|
1166
1323
|
{
|
|
1167
1324
|
ref,
|
|
@@ -1170,7 +1327,7 @@ var DialogTitle = React131__default.forwardRef(({ className, ...props }, ref) =>
|
|
|
1170
1327
|
}
|
|
1171
1328
|
));
|
|
1172
1329
|
DialogTitle.displayName = DialogPrimitive.Title.displayName;
|
|
1173
|
-
var DialogDescription =
|
|
1330
|
+
var DialogDescription = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1174
1331
|
DialogPrimitive.Description,
|
|
1175
1332
|
{
|
|
1176
1333
|
ref,
|
|
@@ -1179,7 +1336,7 @@ var DialogDescription = React131__default.forwardRef(({ className, ...props }, r
|
|
|
1179
1336
|
}
|
|
1180
1337
|
));
|
|
1181
1338
|
DialogDescription.displayName = DialogPrimitive.Description.displayName;
|
|
1182
|
-
var Command =
|
|
1339
|
+
var Command = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1183
1340
|
Command$1,
|
|
1184
1341
|
{
|
|
1185
1342
|
ref,
|
|
@@ -1194,7 +1351,7 @@ Command.displayName = Command$1.displayName;
|
|
|
1194
1351
|
var CommandDialog = ({ children, ...props }) => {
|
|
1195
1352
|
return /* @__PURE__ */ jsx(Dialog, { ...props, children: /* @__PURE__ */ jsx(DialogContent, { className: "overflow-hidden p-0", children: /* @__PURE__ */ jsx(Command, { className: "[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5", children }) }) });
|
|
1196
1353
|
};
|
|
1197
|
-
var CommandInput =
|
|
1354
|
+
var CommandInput = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs("div", { className: "flex items-center border-b px-3", "cmdk-input-wrapper": "", children: [
|
|
1198
1355
|
/* @__PURE__ */ jsx(Search, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }),
|
|
1199
1356
|
/* @__PURE__ */ jsx(
|
|
1200
1357
|
Command$1.Input,
|
|
@@ -1209,7 +1366,7 @@ var CommandInput = React131.forwardRef(({ className, ...props }, ref) => /* @__P
|
|
|
1209
1366
|
)
|
|
1210
1367
|
] }));
|
|
1211
1368
|
CommandInput.displayName = Command$1.Input.displayName;
|
|
1212
|
-
var CommandList =
|
|
1369
|
+
var CommandList = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1213
1370
|
Command$1.List,
|
|
1214
1371
|
{
|
|
1215
1372
|
ref,
|
|
@@ -1218,7 +1375,7 @@ var CommandList = React131.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
1218
1375
|
}
|
|
1219
1376
|
));
|
|
1220
1377
|
CommandList.displayName = Command$1.List.displayName;
|
|
1221
|
-
var CommandEmpty =
|
|
1378
|
+
var CommandEmpty = React136.forwardRef((props, ref) => /* @__PURE__ */ jsx(
|
|
1222
1379
|
Command$1.Empty,
|
|
1223
1380
|
{
|
|
1224
1381
|
ref,
|
|
@@ -1227,7 +1384,7 @@ var CommandEmpty = React131.forwardRef((props, ref) => /* @__PURE__ */ jsx(
|
|
|
1227
1384
|
}
|
|
1228
1385
|
));
|
|
1229
1386
|
CommandEmpty.displayName = Command$1.Empty.displayName;
|
|
1230
|
-
var CommandGroup =
|
|
1387
|
+
var CommandGroup = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1231
1388
|
Command$1.Group,
|
|
1232
1389
|
{
|
|
1233
1390
|
ref,
|
|
@@ -1239,7 +1396,7 @@ var CommandGroup = React131.forwardRef(({ className, ...props }, ref) => /* @__P
|
|
|
1239
1396
|
}
|
|
1240
1397
|
));
|
|
1241
1398
|
CommandGroup.displayName = Command$1.Group.displayName;
|
|
1242
|
-
var CommandSeparator =
|
|
1399
|
+
var CommandSeparator = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1243
1400
|
Command$1.Separator,
|
|
1244
1401
|
{
|
|
1245
1402
|
ref,
|
|
@@ -1248,7 +1405,7 @@ var CommandSeparator = React131.forwardRef(({ className, ...props }, ref) => /*
|
|
|
1248
1405
|
}
|
|
1249
1406
|
));
|
|
1250
1407
|
CommandSeparator.displayName = Command$1.Separator.displayName;
|
|
1251
|
-
var CommandItem =
|
|
1408
|
+
var CommandItem = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1252
1409
|
Command$1.Item,
|
|
1253
1410
|
{
|
|
1254
1411
|
ref,
|
|
@@ -1276,7 +1433,7 @@ var CommandShortcut = ({
|
|
|
1276
1433
|
);
|
|
1277
1434
|
};
|
|
1278
1435
|
CommandShortcut.displayName = "CommandShortcut";
|
|
1279
|
-
var Comparison =
|
|
1436
|
+
var Comparison = React136__default.forwardRef(
|
|
1280
1437
|
({
|
|
1281
1438
|
before,
|
|
1282
1439
|
after,
|
|
@@ -1292,10 +1449,10 @@ var Comparison = React131__default.forwardRef(
|
|
|
1292
1449
|
...props
|
|
1293
1450
|
}, ref) => {
|
|
1294
1451
|
const isControlled = valueProp !== void 0;
|
|
1295
|
-
const [internal, setInternal] =
|
|
1452
|
+
const [internal, setInternal] = React136__default.useState(defaultValue);
|
|
1296
1453
|
const value = Math.max(0, Math.min(100, isControlled ? valueProp : internal));
|
|
1297
|
-
const containerRef =
|
|
1298
|
-
const commit =
|
|
1454
|
+
const containerRef = React136__default.useRef(null);
|
|
1455
|
+
const commit = React136__default.useCallback(
|
|
1299
1456
|
(next) => {
|
|
1300
1457
|
const clamped = Math.max(0, Math.min(100, next));
|
|
1301
1458
|
if (!isControlled) setInternal(clamped);
|
|
@@ -1303,7 +1460,7 @@ var Comparison = React131__default.forwardRef(
|
|
|
1303
1460
|
},
|
|
1304
1461
|
[isControlled, onValueChange]
|
|
1305
1462
|
);
|
|
1306
|
-
const updateFromPointer =
|
|
1463
|
+
const updateFromPointer = React136__default.useCallback(
|
|
1307
1464
|
(clientX, clientY) => {
|
|
1308
1465
|
const el = containerRef.current;
|
|
1309
1466
|
if (!el) return;
|
|
@@ -1426,30 +1583,30 @@ var ContextMenuSub = ContextMenuPrimitive.Sub;
|
|
|
1426
1583
|
var ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;
|
|
1427
1584
|
var contentStyle = "z-50 min-w-[8rem] overflow-hidden rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--popover))] p-1 text-[hsl(var(--popover-foreground))] shadow-md animate-in fade-in-80";
|
|
1428
1585
|
var itemStyle = "relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-[hsl(var(--accent))] focus:text-[hsl(var(--accent-foreground))] data-[disabled]:pointer-events-none data-[disabled]:opacity-50";
|
|
1429
|
-
var ContextMenuContent =
|
|
1586
|
+
var ContextMenuContent = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(ContextMenuPrimitive.Content, { ref, className: cn(contentStyle, className), ...props }) }));
|
|
1430
1587
|
ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
|
|
1431
|
-
var ContextMenuItem =
|
|
1588
|
+
var ContextMenuItem = React136__default.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(ContextMenuPrimitive.Item, { ref, className: cn(itemStyle, inset && "pl-8", className), ...props }));
|
|
1432
1589
|
ContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;
|
|
1433
|
-
var ContextMenuCheckboxItem =
|
|
1590
|
+
var ContextMenuCheckboxItem = React136__default.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs(ContextMenuPrimitive.CheckboxItem, { ref, className: cn(itemStyle, "pl-8", className), checked, ...props, children: [
|
|
1434
1591
|
/* @__PURE__ */ jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Check, { className: "h-4 w-4" }) }) }),
|
|
1435
1592
|
children
|
|
1436
1593
|
] }));
|
|
1437
1594
|
ContextMenuCheckboxItem.displayName = ContextMenuPrimitive.CheckboxItem.displayName;
|
|
1438
|
-
var ContextMenuRadioItem =
|
|
1595
|
+
var ContextMenuRadioItem = React136__default.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(ContextMenuPrimitive.RadioItem, { ref, className: cn(itemStyle, "pl-8", className), ...props, children: [
|
|
1439
1596
|
/* @__PURE__ */ jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Circle, { className: "h-2 w-2 fill-current" }) }) }),
|
|
1440
1597
|
children
|
|
1441
1598
|
] }));
|
|
1442
1599
|
ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;
|
|
1443
|
-
var ContextMenuLabel =
|
|
1600
|
+
var ContextMenuLabel = React136__default.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(ContextMenuPrimitive.Label, { ref, className: cn("px-2 py-1.5 text-xs font-semibold text-[hsl(var(--muted-foreground))]", inset && "pl-8", className), ...props }));
|
|
1444
1601
|
ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;
|
|
1445
|
-
var ContextMenuSeparator =
|
|
1602
|
+
var ContextMenuSeparator = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(ContextMenuPrimitive.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-[hsl(var(--muted))]", className), ...props }));
|
|
1446
1603
|
ContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;
|
|
1447
|
-
var ContextMenuSubTrigger =
|
|
1604
|
+
var ContextMenuSubTrigger = React136__default.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs(ContextMenuPrimitive.SubTrigger, { ref, className: cn(itemStyle, inset && "pl-8", className), ...props, children: [
|
|
1448
1605
|
children,
|
|
1449
1606
|
/* @__PURE__ */ jsx(ChevronRight, { className: "ml-auto h-4 w-4" })
|
|
1450
1607
|
] }));
|
|
1451
1608
|
ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
|
|
1452
|
-
var ContextMenuSubContent =
|
|
1609
|
+
var ContextMenuSubContent = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(ContextMenuPrimitive.SubContent, { ref, className: cn(contentStyle, className), ...props }));
|
|
1453
1610
|
ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
|
|
1454
1611
|
var ContextMenuShortcut = ({ className, ...props }) => /* @__PURE__ */ jsx("span", { className: cn("ml-auto text-xs tracking-widest opacity-60", className), ...props });
|
|
1455
1612
|
var Drawer = ({
|
|
@@ -1466,7 +1623,7 @@ Drawer.displayName = "Drawer";
|
|
|
1466
1623
|
var DrawerTrigger = Drawer$1.Trigger;
|
|
1467
1624
|
var DrawerPortal = Drawer$1.Portal;
|
|
1468
1625
|
var DrawerClose = Drawer$1.Close;
|
|
1469
|
-
var DrawerOverlay =
|
|
1626
|
+
var DrawerOverlay = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1470
1627
|
Drawer$1.Overlay,
|
|
1471
1628
|
{
|
|
1472
1629
|
ref,
|
|
@@ -1475,7 +1632,7 @@ var DrawerOverlay = React131.forwardRef(({ className, ...props }, ref) => /* @__
|
|
|
1475
1632
|
}
|
|
1476
1633
|
));
|
|
1477
1634
|
DrawerOverlay.displayName = Drawer$1.Overlay.displayName;
|
|
1478
|
-
var DrawerContent =
|
|
1635
|
+
var DrawerContent = React136.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(DrawerPortal, { children: [
|
|
1479
1636
|
/* @__PURE__ */ jsx(DrawerOverlay, {}),
|
|
1480
1637
|
/* @__PURE__ */ jsxs(
|
|
1481
1638
|
Drawer$1.Content,
|
|
@@ -1516,7 +1673,7 @@ var DrawerFooter = ({
|
|
|
1516
1673
|
}
|
|
1517
1674
|
);
|
|
1518
1675
|
DrawerFooter.displayName = "DrawerFooter";
|
|
1519
|
-
var DrawerTitle =
|
|
1676
|
+
var DrawerTitle = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1520
1677
|
Drawer$1.Title,
|
|
1521
1678
|
{
|
|
1522
1679
|
ref,
|
|
@@ -1528,7 +1685,7 @@ var DrawerTitle = React131.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
1528
1685
|
}
|
|
1529
1686
|
));
|
|
1530
1687
|
DrawerTitle.displayName = Drawer$1.Title.displayName;
|
|
1531
|
-
var DrawerDescription =
|
|
1688
|
+
var DrawerDescription = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1532
1689
|
Drawer$1.Description,
|
|
1533
1690
|
{
|
|
1534
1691
|
ref,
|
|
@@ -1553,134 +1710,65 @@ var itemStyle2 = cn(
|
|
|
1553
1710
|
"focus:bg-[hsl(var(--accent))] focus:text-[hsl(var(--accent-foreground))]",
|
|
1554
1711
|
"data-[disabled]:pointer-events-none data-[disabled]:opacity-50"
|
|
1555
1712
|
);
|
|
1556
|
-
var DropdownMenuContent =
|
|
1713
|
+
var DropdownMenuContent = React136__default.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.Content, { ref, sideOffset, className: cn(contentStyle2, className), ...props }) }));
|
|
1557
1714
|
DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
|
|
1558
|
-
var DropdownMenuItem =
|
|
1715
|
+
var DropdownMenuItem = React136__default.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(DropdownMenuPrimitive.Item, { ref, className: cn(itemStyle2, inset && "pl-8", className), ...props }));
|
|
1559
1716
|
DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
|
|
1560
|
-
var DropdownMenuCheckboxItem =
|
|
1717
|
+
var DropdownMenuCheckboxItem = React136__default.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs(DropdownMenuPrimitive.CheckboxItem, { ref, className: cn(itemStyle2, "pl-8", className), checked, ...props, children: [
|
|
1561
1718
|
/* @__PURE__ */ jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Check, { className: "h-4 w-4" }) }) }),
|
|
1562
1719
|
children
|
|
1563
1720
|
] }));
|
|
1564
1721
|
DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
|
|
1565
|
-
var DropdownMenuRadioItem =
|
|
1722
|
+
var DropdownMenuRadioItem = React136__default.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(DropdownMenuPrimitive.RadioItem, { ref, className: cn(itemStyle2, "pl-8", className), ...props, children: [
|
|
1566
1723
|
/* @__PURE__ */ jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Circle, { className: "h-2 w-2 fill-current" }) }) }),
|
|
1567
1724
|
children
|
|
1568
1725
|
] }));
|
|
1569
1726
|
DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
|
|
1570
|
-
var DropdownMenuLabel =
|
|
1727
|
+
var DropdownMenuLabel = React136__default.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(DropdownMenuPrimitive.Label, { ref, className: cn("px-2 py-1.5 text-xs font-semibold text-[hsl(var(--muted-foreground))]", inset && "pl-8", className), ...props }));
|
|
1571
1728
|
DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
|
|
1572
|
-
var DropdownMenuSeparator =
|
|
1729
|
+
var DropdownMenuSeparator = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(DropdownMenuPrimitive.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-[hsl(var(--muted))]", className), ...props }));
|
|
1573
1730
|
DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
|
|
1574
|
-
var DropdownMenuSubTrigger =
|
|
1731
|
+
var DropdownMenuSubTrigger = React136__default.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs(DropdownMenuPrimitive.SubTrigger, { ref, className: cn(itemStyle2, inset && "pl-8", "data-[state=open]:bg-[hsl(var(--accent))]", className), ...props, children: [
|
|
1575
1732
|
children,
|
|
1576
1733
|
/* @__PURE__ */ jsx(ChevronRight, { className: "ml-auto h-4 w-4" })
|
|
1577
1734
|
] }));
|
|
1578
1735
|
DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
|
|
1579
|
-
var DropdownMenuSubContent =
|
|
1736
|
+
var DropdownMenuSubContent = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(DropdownMenuPrimitive.SubContent, { ref, className: cn(contentStyle2, className), ...props }));
|
|
1580
1737
|
DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
|
|
1581
1738
|
var DropdownMenuShortcut = ({ className, ...props }) => /* @__PURE__ */ jsx("span", { className: cn("ml-auto text-xs tracking-widest opacity-60", className), ...props });
|
|
1582
1739
|
DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
|
|
1583
|
-
var
|
|
1584
|
-
|
|
1585
|
-
|
|
1586
|
-
|
|
1587
|
-
|
|
1588
|
-
|
|
1589
|
-
|
|
1590
|
-
className
|
|
1740
|
+
var EmptyCart = React136__default.forwardRef(
|
|
1741
|
+
({
|
|
1742
|
+
title = "Your cart is empty",
|
|
1743
|
+
description = "Browse the catalog and add something you love.",
|
|
1744
|
+
actionLabel = "Continue shopping",
|
|
1745
|
+
onAction,
|
|
1746
|
+
icon,
|
|
1747
|
+
className,
|
|
1591
1748
|
...props
|
|
1749
|
+
}, ref) => {
|
|
1750
|
+
return /* @__PURE__ */ jsxs(
|
|
1751
|
+
"div",
|
|
1752
|
+
{
|
|
1753
|
+
ref,
|
|
1754
|
+
className: cn("flex flex-col items-center justify-center gap-4 px-6 py-12 text-center", className),
|
|
1755
|
+
...props,
|
|
1756
|
+
children: [
|
|
1757
|
+
/* @__PURE__ */ jsx("div", { className: "flex h-14 w-14 items-center justify-center rounded-full bg-[hsl(var(--muted))] text-[hsl(var(--muted-foreground))]", children: icon ?? /* @__PURE__ */ jsx(ShoppingCart, { className: "h-6 w-6", strokeWidth: 1.5 }) }),
|
|
1758
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1", children: [
|
|
1759
|
+
/* @__PURE__ */ jsx("span", { className: "text-base font-semibold text-foreground", children: title }),
|
|
1760
|
+
description && /* @__PURE__ */ jsx("span", { className: "max-w-xs text-sm text-muted-foreground", children: description })
|
|
1761
|
+
] }),
|
|
1762
|
+
actionLabel && onAction && /* @__PURE__ */ jsx(Button, { onClick: onAction, className: "mt-1", children: actionLabel })
|
|
1763
|
+
]
|
|
1764
|
+
}
|
|
1765
|
+
);
|
|
1592
1766
|
}
|
|
1593
|
-
)
|
|
1594
|
-
|
|
1595
|
-
var FormFieldContext = React131.createContext(null);
|
|
1596
|
-
var useFormField = () => {
|
|
1597
|
-
const fieldContext = React131.useContext(FormFieldContext);
|
|
1598
|
-
const itemContext = React131.useContext(FormItemContext);
|
|
1599
|
-
const { getFieldState, formState } = useFormContext();
|
|
1600
|
-
if (!fieldContext) {
|
|
1601
|
-
throw new Error("useFormField should be used within <FormField>");
|
|
1602
|
-
}
|
|
1603
|
-
if (!itemContext) {
|
|
1604
|
-
throw new Error("useFormField should be used within <FormItem>");
|
|
1605
|
-
}
|
|
1606
|
-
const fieldState = getFieldState(fieldContext.name, formState);
|
|
1607
|
-
const { id } = itemContext;
|
|
1608
|
-
return {
|
|
1609
|
-
id,
|
|
1610
|
-
name: fieldContext.name,
|
|
1611
|
-
formItemId: `${id}-form-item`,
|
|
1612
|
-
formDescriptionId: `${id}-form-item-description`,
|
|
1613
|
-
formMessageId: `${id}-form-item-message`,
|
|
1614
|
-
...fieldState
|
|
1615
|
-
};
|
|
1616
|
-
};
|
|
1617
|
-
var FormItemContext = React131.createContext(null);
|
|
1618
|
-
var FormItem = React131.forwardRef(({ className, ...props }, ref) => {
|
|
1619
|
-
const id = React131.useId();
|
|
1620
|
-
return /* @__PURE__ */ jsx(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ jsx("div", { ref, className: cn("space-y-2", className), ...props }) });
|
|
1621
|
-
});
|
|
1622
|
-
FormItem.displayName = "FormItem";
|
|
1623
|
-
var FormLabel = React131.forwardRef(({ className, ...props }, ref) => {
|
|
1624
|
-
const { error, formItemId } = useFormField();
|
|
1625
|
-
return /* @__PURE__ */ jsx(
|
|
1626
|
-
Label3,
|
|
1627
|
-
{
|
|
1628
|
-
ref,
|
|
1629
|
-
className: cn(error && "text-destructive", className),
|
|
1630
|
-
htmlFor: formItemId,
|
|
1631
|
-
...props
|
|
1632
|
-
}
|
|
1633
|
-
);
|
|
1634
|
-
});
|
|
1635
|
-
FormLabel.displayName = "FormLabel";
|
|
1636
|
-
var FormControl = React131.forwardRef(({ ...props }, ref) => {
|
|
1637
|
-
const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
|
|
1638
|
-
return /* @__PURE__ */ jsx(
|
|
1639
|
-
Slot,
|
|
1640
|
-
{
|
|
1641
|
-
ref,
|
|
1642
|
-
id: formItemId,
|
|
1643
|
-
"aria-describedby": !error ? `${formDescriptionId}` : `${formDescriptionId} ${formMessageId}`,
|
|
1644
|
-
"aria-invalid": !!error,
|
|
1645
|
-
...props
|
|
1646
|
-
}
|
|
1647
|
-
);
|
|
1648
|
-
});
|
|
1649
|
-
FormControl.displayName = "FormControl";
|
|
1650
|
-
var FormDescription = React131.forwardRef(({ className, ...props }, ref) => {
|
|
1651
|
-
const { formDescriptionId } = useFormField();
|
|
1652
|
-
return /* @__PURE__ */ jsx(
|
|
1653
|
-
"p",
|
|
1654
|
-
{
|
|
1655
|
-
ref,
|
|
1656
|
-
id: formDescriptionId,
|
|
1657
|
-
className: cn("text-[0.8rem] text-muted-foreground", className),
|
|
1658
|
-
...props
|
|
1659
|
-
}
|
|
1660
|
-
);
|
|
1661
|
-
});
|
|
1662
|
-
FormDescription.displayName = "FormDescription";
|
|
1663
|
-
var FormMessage = React131.forwardRef(({ className, children, ...props }, ref) => {
|
|
1664
|
-
const { error, formMessageId } = useFormField();
|
|
1665
|
-
const body = error ? String(error?.message ?? "") : children;
|
|
1666
|
-
if (!body) {
|
|
1667
|
-
return null;
|
|
1668
|
-
}
|
|
1669
|
-
return /* @__PURE__ */ jsx(
|
|
1670
|
-
"p",
|
|
1671
|
-
{
|
|
1672
|
-
ref,
|
|
1673
|
-
id: formMessageId,
|
|
1674
|
-
className: cn("text-[0.8rem] font-medium text-destructive", className),
|
|
1675
|
-
...props,
|
|
1676
|
-
children: body
|
|
1677
|
-
}
|
|
1678
|
-
);
|
|
1679
|
-
});
|
|
1680
|
-
FormMessage.displayName = "FormMessage";
|
|
1767
|
+
);
|
|
1768
|
+
EmptyCart.displayName = "EmptyCart";
|
|
1681
1769
|
var HoverCard = HoverCardPrimitive.Root;
|
|
1682
1770
|
var HoverCardTrigger = HoverCardPrimitive.Trigger;
|
|
1683
|
-
var HoverCardContent =
|
|
1771
|
+
var HoverCardContent = React136.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1684
1772
|
HoverCardPrimitive.Content,
|
|
1685
1773
|
{
|
|
1686
1774
|
ref,
|
|
@@ -1694,7 +1782,7 @@ var HoverCardContent = React131.forwardRef(({ className, align = "center", sideO
|
|
|
1694
1782
|
}
|
|
1695
1783
|
));
|
|
1696
1784
|
HoverCardContent.displayName = HoverCardPrimitive.Content.displayName;
|
|
1697
|
-
var InputOTP =
|
|
1785
|
+
var InputOTP = React136.forwardRef(({ className, containerClassName, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1698
1786
|
OTPInput,
|
|
1699
1787
|
{
|
|
1700
1788
|
ref,
|
|
@@ -1707,10 +1795,10 @@ var InputOTP = React131.forwardRef(({ className, containerClassName, ...props },
|
|
|
1707
1795
|
}
|
|
1708
1796
|
));
|
|
1709
1797
|
InputOTP.displayName = "InputOTP";
|
|
1710
|
-
var InputOTPGroup =
|
|
1798
|
+
var InputOTPGroup = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex items-center", className), ...props }));
|
|
1711
1799
|
InputOTPGroup.displayName = "InputOTPGroup";
|
|
1712
|
-
var InputOTPSlot =
|
|
1713
|
-
const inputOTPContext =
|
|
1800
|
+
var InputOTPSlot = React136.forwardRef(({ index, className, ...props }, ref) => {
|
|
1801
|
+
const inputOTPContext = React136.useContext(OTPInputContext);
|
|
1714
1802
|
const { char, hasFakeCaret, isActive } = inputOTPContext.slots[index];
|
|
1715
1803
|
return /* @__PURE__ */ jsxs(
|
|
1716
1804
|
"div",
|
|
@@ -1730,9 +1818,9 @@ var InputOTPSlot = React131.forwardRef(({ index, className, ...props }, ref) =>
|
|
|
1730
1818
|
);
|
|
1731
1819
|
});
|
|
1732
1820
|
InputOTPSlot.displayName = "InputOTPSlot";
|
|
1733
|
-
var InputOTPSeparator =
|
|
1821
|
+
var InputOTPSeparator = React136.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, role: "separator", ...props, children: /* @__PURE__ */ jsx(Minus, {}) }));
|
|
1734
1822
|
InputOTPSeparator.displayName = "InputOTPSeparator";
|
|
1735
|
-
var Input =
|
|
1823
|
+
var Input = React136__default.forwardRef(
|
|
1736
1824
|
({ className, type, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1737
1825
|
"input",
|
|
1738
1826
|
{
|
|
@@ -1751,7 +1839,19 @@ var Input = React131__default.forwardRef(
|
|
|
1751
1839
|
)
|
|
1752
1840
|
);
|
|
1753
1841
|
Input.displayName = "Input";
|
|
1754
|
-
var
|
|
1842
|
+
var labelVariants = cva(
|
|
1843
|
+
"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
|
|
1844
|
+
);
|
|
1845
|
+
var Label3 = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1846
|
+
LabelPrimitive.Root,
|
|
1847
|
+
{
|
|
1848
|
+
ref,
|
|
1849
|
+
className: cn(labelVariants(), className),
|
|
1850
|
+
...props
|
|
1851
|
+
}
|
|
1852
|
+
));
|
|
1853
|
+
Label3.displayName = LabelPrimitive.Root.displayName;
|
|
1854
|
+
var LogoCarousel = React136__default.forwardRef(
|
|
1755
1855
|
({
|
|
1756
1856
|
className,
|
|
1757
1857
|
logos,
|
|
@@ -1845,7 +1945,7 @@ var SPEED_DURATION = {
|
|
|
1845
1945
|
normal: "40s",
|
|
1846
1946
|
fast: "20s"
|
|
1847
1947
|
};
|
|
1848
|
-
var Marquee =
|
|
1948
|
+
var Marquee = React136__default.forwardRef(
|
|
1849
1949
|
({
|
|
1850
1950
|
children,
|
|
1851
1951
|
speed = "normal",
|
|
@@ -1909,7 +2009,7 @@ function MenubarSub({
|
|
|
1909
2009
|
}) {
|
|
1910
2010
|
return /* @__PURE__ */ jsx(MenubarPrimitive.Sub, { "data-slot": "menubar-sub", ...props });
|
|
1911
2011
|
}
|
|
1912
|
-
var Menubar =
|
|
2012
|
+
var Menubar = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1913
2013
|
MenubarPrimitive.Root,
|
|
1914
2014
|
{
|
|
1915
2015
|
ref,
|
|
@@ -1921,7 +2021,7 @@ var Menubar = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
1921
2021
|
}
|
|
1922
2022
|
));
|
|
1923
2023
|
Menubar.displayName = MenubarPrimitive.Root.displayName;
|
|
1924
|
-
var MenubarTrigger =
|
|
2024
|
+
var MenubarTrigger = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1925
2025
|
MenubarPrimitive.Trigger,
|
|
1926
2026
|
{
|
|
1927
2027
|
ref,
|
|
@@ -1933,7 +2033,7 @@ var MenubarTrigger = React131.forwardRef(({ className, ...props }, ref) => /* @_
|
|
|
1933
2033
|
}
|
|
1934
2034
|
));
|
|
1935
2035
|
MenubarTrigger.displayName = MenubarPrimitive.Trigger.displayName;
|
|
1936
|
-
var MenubarSubTrigger =
|
|
2036
|
+
var MenubarSubTrigger = React136.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
1937
2037
|
MenubarPrimitive.SubTrigger,
|
|
1938
2038
|
{
|
|
1939
2039
|
ref,
|
|
@@ -1950,7 +2050,7 @@ var MenubarSubTrigger = React131.forwardRef(({ className, inset, children, ...pr
|
|
|
1950
2050
|
}
|
|
1951
2051
|
));
|
|
1952
2052
|
MenubarSubTrigger.displayName = MenubarPrimitive.SubTrigger.displayName;
|
|
1953
|
-
var MenubarSubContent =
|
|
2053
|
+
var MenubarSubContent = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1954
2054
|
MenubarPrimitive.SubContent,
|
|
1955
2055
|
{
|
|
1956
2056
|
ref,
|
|
@@ -1962,7 +2062,7 @@ var MenubarSubContent = React131.forwardRef(({ className, ...props }, ref) => /*
|
|
|
1962
2062
|
}
|
|
1963
2063
|
));
|
|
1964
2064
|
MenubarSubContent.displayName = MenubarPrimitive.SubContent.displayName;
|
|
1965
|
-
var MenubarContent =
|
|
2065
|
+
var MenubarContent = React136.forwardRef(
|
|
1966
2066
|
({ className, align = "start", alignOffset = -4, sideOffset = 8, ...props }, ref) => /* @__PURE__ */ jsx(MenubarPrimitive.Portal, { children: /* @__PURE__ */ jsx(
|
|
1967
2067
|
MenubarPrimitive.Content,
|
|
1968
2068
|
{
|
|
@@ -1979,7 +2079,7 @@ var MenubarContent = React131.forwardRef(
|
|
|
1979
2079
|
) })
|
|
1980
2080
|
);
|
|
1981
2081
|
MenubarContent.displayName = MenubarPrimitive.Content.displayName;
|
|
1982
|
-
var MenubarItem =
|
|
2082
|
+
var MenubarItem = React136.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1983
2083
|
MenubarPrimitive.Item,
|
|
1984
2084
|
{
|
|
1985
2085
|
ref,
|
|
@@ -1992,7 +2092,7 @@ var MenubarItem = React131.forwardRef(({ className, inset, ...props }, ref) => /
|
|
|
1992
2092
|
}
|
|
1993
2093
|
));
|
|
1994
2094
|
MenubarItem.displayName = MenubarPrimitive.Item.displayName;
|
|
1995
|
-
var MenubarCheckboxItem =
|
|
2095
|
+
var MenubarCheckboxItem = React136.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
1996
2096
|
MenubarPrimitive.CheckboxItem,
|
|
1997
2097
|
{
|
|
1998
2098
|
ref,
|
|
@@ -2009,7 +2109,7 @@ var MenubarCheckboxItem = React131.forwardRef(({ className, children, checked, .
|
|
|
2009
2109
|
}
|
|
2010
2110
|
));
|
|
2011
2111
|
MenubarCheckboxItem.displayName = MenubarPrimitive.CheckboxItem.displayName;
|
|
2012
|
-
var MenubarRadioItem =
|
|
2112
|
+
var MenubarRadioItem = React136.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
2013
2113
|
MenubarPrimitive.RadioItem,
|
|
2014
2114
|
{
|
|
2015
2115
|
ref,
|
|
@@ -2025,7 +2125,7 @@ var MenubarRadioItem = React131.forwardRef(({ className, children, ...props }, r
|
|
|
2025
2125
|
}
|
|
2026
2126
|
));
|
|
2027
2127
|
MenubarRadioItem.displayName = MenubarPrimitive.RadioItem.displayName;
|
|
2028
|
-
var MenubarLabel =
|
|
2128
|
+
var MenubarLabel = React136.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2029
2129
|
MenubarPrimitive.Label,
|
|
2030
2130
|
{
|
|
2031
2131
|
ref,
|
|
@@ -2038,7 +2138,7 @@ var MenubarLabel = React131.forwardRef(({ className, inset, ...props }, ref) =>
|
|
|
2038
2138
|
}
|
|
2039
2139
|
));
|
|
2040
2140
|
MenubarLabel.displayName = MenubarPrimitive.Label.displayName;
|
|
2041
|
-
var MenubarSeparator =
|
|
2141
|
+
var MenubarSeparator = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2042
2142
|
MenubarPrimitive.Separator,
|
|
2043
2143
|
{
|
|
2044
2144
|
ref,
|
|
@@ -2063,7 +2163,7 @@ var MenubarShortcut = ({
|
|
|
2063
2163
|
);
|
|
2064
2164
|
};
|
|
2065
2165
|
MenubarShortcut.displayname = "MenubarShortcut";
|
|
2066
|
-
var NavigationMenu =
|
|
2166
|
+
var NavigationMenu = React136.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
2067
2167
|
NavigationMenuPrimitive.Root,
|
|
2068
2168
|
{
|
|
2069
2169
|
ref,
|
|
@@ -2079,7 +2179,7 @@ var NavigationMenu = React131.forwardRef(({ className, children, ...props }, ref
|
|
|
2079
2179
|
}
|
|
2080
2180
|
));
|
|
2081
2181
|
NavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName;
|
|
2082
|
-
var NavigationMenuList =
|
|
2182
|
+
var NavigationMenuList = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2083
2183
|
NavigationMenuPrimitive.List,
|
|
2084
2184
|
{
|
|
2085
2185
|
ref,
|
|
@@ -2095,7 +2195,7 @@ var NavigationMenuItem = NavigationMenuPrimitive.Item;
|
|
|
2095
2195
|
var navigationMenuTriggerStyle = cva(
|
|
2096
2196
|
"group inline-flex h-9 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-[state=open]:text-accent-foreground data-[state=open]:bg-accent/50 data-[state=open]:hover:bg-accent data-[state=open]:focus:bg-accent"
|
|
2097
2197
|
);
|
|
2098
|
-
var NavigationMenuTrigger =
|
|
2198
|
+
var NavigationMenuTrigger = React136.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
2099
2199
|
NavigationMenuPrimitive.Trigger,
|
|
2100
2200
|
{
|
|
2101
2201
|
ref,
|
|
@@ -2115,7 +2215,7 @@ var NavigationMenuTrigger = React131.forwardRef(({ className, children, ...props
|
|
|
2115
2215
|
}
|
|
2116
2216
|
));
|
|
2117
2217
|
NavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName;
|
|
2118
|
-
var NavigationMenuContent =
|
|
2218
|
+
var NavigationMenuContent = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2119
2219
|
NavigationMenuPrimitive.Content,
|
|
2120
2220
|
{
|
|
2121
2221
|
ref,
|
|
@@ -2128,7 +2228,7 @@ var NavigationMenuContent = React131.forwardRef(({ className, ...props }, ref) =
|
|
|
2128
2228
|
));
|
|
2129
2229
|
NavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName;
|
|
2130
2230
|
var NavigationMenuLink = NavigationMenuPrimitive.Link;
|
|
2131
|
-
var NavigationMenuViewport =
|
|
2231
|
+
var NavigationMenuViewport = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { className: cn("absolute left-0 top-full flex justify-center"), children: /* @__PURE__ */ jsx(
|
|
2132
2232
|
NavigationMenuPrimitive.Viewport,
|
|
2133
2233
|
{
|
|
2134
2234
|
className: cn(
|
|
@@ -2140,7 +2240,7 @@ var NavigationMenuViewport = React131.forwardRef(({ className, ...props }, ref)
|
|
|
2140
2240
|
}
|
|
2141
2241
|
) }));
|
|
2142
2242
|
NavigationMenuViewport.displayName = NavigationMenuPrimitive.Viewport.displayName;
|
|
2143
|
-
var NavigationMenuIndicator =
|
|
2243
|
+
var NavigationMenuIndicator = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2144
2244
|
NavigationMenuPrimitive.Indicator,
|
|
2145
2245
|
{
|
|
2146
2246
|
ref,
|
|
@@ -2163,7 +2263,7 @@ var Pagination = ({ className, ...props }) => /* @__PURE__ */ jsx(
|
|
|
2163
2263
|
}
|
|
2164
2264
|
);
|
|
2165
2265
|
Pagination.displayName = "Pagination";
|
|
2166
|
-
var PaginationContent =
|
|
2266
|
+
var PaginationContent = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2167
2267
|
"ul",
|
|
2168
2268
|
{
|
|
2169
2269
|
ref,
|
|
@@ -2172,7 +2272,7 @@ var PaginationContent = React131.forwardRef(({ className, ...props }, ref) => /*
|
|
|
2172
2272
|
}
|
|
2173
2273
|
));
|
|
2174
2274
|
PaginationContent.displayName = "PaginationContent";
|
|
2175
|
-
var PaginationItem =
|
|
2275
|
+
var PaginationItem = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("li", { ref, className: cn("", className), ...props }));
|
|
2176
2276
|
PaginationItem.displayName = "PaginationItem";
|
|
2177
2277
|
var PaginationLink = ({
|
|
2178
2278
|
className,
|
|
@@ -2247,7 +2347,7 @@ PaginationEllipsis.displayName = "PaginationEllipsis";
|
|
|
2247
2347
|
var Popover = PopoverPrimitive.Root;
|
|
2248
2348
|
var PopoverTrigger = PopoverPrimitive.Trigger;
|
|
2249
2349
|
var PopoverAnchor = PopoverPrimitive.Anchor;
|
|
2250
|
-
var PopoverContent =
|
|
2350
|
+
var PopoverContent = React136__default.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx(
|
|
2251
2351
|
PopoverPrimitive.Content,
|
|
2252
2352
|
{
|
|
2253
2353
|
ref,
|
|
@@ -2264,7 +2364,7 @@ var PopoverContent = React131__default.forwardRef(({ className, align = "center"
|
|
|
2264
2364
|
}
|
|
2265
2365
|
) }));
|
|
2266
2366
|
PopoverContent.displayName = PopoverPrimitive.Content.displayName;
|
|
2267
|
-
var Progress =
|
|
2367
|
+
var Progress = React136__default.forwardRef(({ className, value, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2268
2368
|
ProgressPrimitive.Root,
|
|
2269
2369
|
{
|
|
2270
2370
|
ref,
|
|
@@ -2280,7 +2380,7 @@ var Progress = React131__default.forwardRef(({ className, value, ...props }, ref
|
|
|
2280
2380
|
}
|
|
2281
2381
|
));
|
|
2282
2382
|
Progress.displayName = ProgressPrimitive.Root.displayName;
|
|
2283
|
-
var QrCode =
|
|
2383
|
+
var QrCode = React136__default.forwardRef(
|
|
2284
2384
|
({
|
|
2285
2385
|
value,
|
|
2286
2386
|
size = 192,
|
|
@@ -2337,9 +2437,9 @@ var QrCode = React131__default.forwardRef(
|
|
|
2337
2437
|
}
|
|
2338
2438
|
);
|
|
2339
2439
|
QrCode.displayName = "QrCode";
|
|
2340
|
-
var RadioGroup4 =
|
|
2440
|
+
var RadioGroup4 = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(RadioGroupPrimitive.Root, { className: cn("grid gap-2", className), ref, ...props }));
|
|
2341
2441
|
RadioGroup4.displayName = RadioGroupPrimitive.Root.displayName;
|
|
2342
|
-
var RadioGroupItem =
|
|
2442
|
+
var RadioGroupItem = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2343
2443
|
RadioGroupPrimitive.Item,
|
|
2344
2444
|
{
|
|
2345
2445
|
ref,
|
|
@@ -2354,12 +2454,12 @@ var RadioGroupItem = React131__default.forwardRef(({ className, ...props }, ref)
|
|
|
2354
2454
|
}
|
|
2355
2455
|
));
|
|
2356
2456
|
RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
|
|
2357
|
-
var
|
|
2457
|
+
var SIZE2 = {
|
|
2358
2458
|
sm: "h-4 w-4",
|
|
2359
2459
|
md: "h-5 w-5",
|
|
2360
2460
|
lg: "h-6 w-6"
|
|
2361
2461
|
};
|
|
2362
|
-
var Rating =
|
|
2462
|
+
var Rating = React136__default.forwardRef(
|
|
2363
2463
|
({
|
|
2364
2464
|
value: valueProp,
|
|
2365
2465
|
defaultValue = 0,
|
|
@@ -2375,10 +2475,10 @@ var Rating = React131__default.forwardRef(
|
|
|
2375
2475
|
...props
|
|
2376
2476
|
}, ref) => {
|
|
2377
2477
|
const isControlled = valueProp !== void 0;
|
|
2378
|
-
const [internal, setInternal] =
|
|
2478
|
+
const [internal, setInternal] = React136__default.useState(defaultValue);
|
|
2379
2479
|
const value = isControlled ? valueProp : internal;
|
|
2380
2480
|
const step = allowHalf ? 0.5 : 1;
|
|
2381
|
-
const commit =
|
|
2481
|
+
const commit = React136__default.useCallback(
|
|
2382
2482
|
(next) => {
|
|
2383
2483
|
const clamped = Math.max(0, Math.min(max, next));
|
|
2384
2484
|
if (!isControlled) setInternal(clamped);
|
|
@@ -2425,13 +2525,13 @@ var Rating = React131__default.forwardRef(
|
|
|
2425
2525
|
children: Array.from({ length: max }).map((_, i) => {
|
|
2426
2526
|
const fillPercent = Math.max(0, Math.min(1, value - i)) * 100;
|
|
2427
2527
|
const Icon2 = /* @__PURE__ */ jsxs("span", { className: "relative inline-block leading-none", children: [
|
|
2428
|
-
/* @__PURE__ */ jsx("span", { className: cn("block text-muted-foreground/40",
|
|
2528
|
+
/* @__PURE__ */ jsx("span", { className: cn("block text-muted-foreground/40", SIZE2[size]), children: emptyIcon ?? /* @__PURE__ */ jsx(Star, { className: "h-full w-full", strokeWidth: 1.5 }) }),
|
|
2429
2529
|
/* @__PURE__ */ jsx(
|
|
2430
2530
|
"span",
|
|
2431
2531
|
{
|
|
2432
2532
|
className: cn(
|
|
2433
2533
|
"absolute inset-0 overflow-hidden text-[hsl(var(--primary))]",
|
|
2434
|
-
|
|
2534
|
+
SIZE2[size]
|
|
2435
2535
|
),
|
|
2436
2536
|
style: { width: `${fillPercent}%` },
|
|
2437
2537
|
"aria-hidden": "true",
|
|
@@ -2492,7 +2592,7 @@ var ResizableHandle = ({
|
|
|
2492
2592
|
children: withHandle && /* @__PURE__ */ jsx("div", { className: "z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border", children: /* @__PURE__ */ jsx(GripVertical, { className: "h-2.5 w-2.5" }) })
|
|
2493
2593
|
}
|
|
2494
2594
|
);
|
|
2495
|
-
var ScrollArea =
|
|
2595
|
+
var ScrollArea = React136.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
2496
2596
|
ScrollAreaPrimitive.Root,
|
|
2497
2597
|
{
|
|
2498
2598
|
ref,
|
|
@@ -2506,7 +2606,7 @@ var ScrollArea = React131.forwardRef(({ className, children, ...props }, ref) =>
|
|
|
2506
2606
|
}
|
|
2507
2607
|
));
|
|
2508
2608
|
ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
|
|
2509
|
-
var ScrollBar =
|
|
2609
|
+
var ScrollBar = React136.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2510
2610
|
ScrollAreaPrimitive.ScrollAreaScrollbar,
|
|
2511
2611
|
{
|
|
2512
2612
|
ref,
|
|
@@ -2525,7 +2625,7 @@ ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
|
|
|
2525
2625
|
var Select = SelectPrimitive.Root;
|
|
2526
2626
|
var SelectGroup = SelectPrimitive.Group;
|
|
2527
2627
|
var SelectValue = SelectPrimitive.Value;
|
|
2528
|
-
var SelectTrigger =
|
|
2628
|
+
var SelectTrigger = React136__default.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
2529
2629
|
SelectPrimitive.Trigger,
|
|
2530
2630
|
{
|
|
2531
2631
|
ref,
|
|
@@ -2545,7 +2645,7 @@ var SelectTrigger = React131__default.forwardRef(({ className, children, ...prop
|
|
|
2545
2645
|
}
|
|
2546
2646
|
));
|
|
2547
2647
|
SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
|
|
2548
|
-
var SelectScrollUpButton =
|
|
2648
|
+
var SelectScrollUpButton = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2549
2649
|
SelectPrimitive.ScrollUpButton,
|
|
2550
2650
|
{
|
|
2551
2651
|
ref,
|
|
@@ -2555,7 +2655,7 @@ var SelectScrollUpButton = React131__default.forwardRef(({ className, ...props }
|
|
|
2555
2655
|
}
|
|
2556
2656
|
));
|
|
2557
2657
|
SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
|
|
2558
|
-
var SelectScrollDownButton =
|
|
2658
|
+
var SelectScrollDownButton = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2559
2659
|
SelectPrimitive.ScrollDownButton,
|
|
2560
2660
|
{
|
|
2561
2661
|
ref,
|
|
@@ -2565,7 +2665,7 @@ var SelectScrollDownButton = React131__default.forwardRef(({ className, ...props
|
|
|
2565
2665
|
}
|
|
2566
2666
|
));
|
|
2567
2667
|
SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
|
|
2568
|
-
var SelectContent =
|
|
2668
|
+
var SelectContent = React136__default.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ jsx(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs(
|
|
2569
2669
|
SelectPrimitive.Content,
|
|
2570
2670
|
{
|
|
2571
2671
|
ref,
|
|
@@ -2592,7 +2692,7 @@ var SelectContent = React131__default.forwardRef(({ className, children, positio
|
|
|
2592
2692
|
}
|
|
2593
2693
|
) }));
|
|
2594
2694
|
SelectContent.displayName = SelectPrimitive.Content.displayName;
|
|
2595
|
-
var SelectLabel =
|
|
2695
|
+
var SelectLabel = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2596
2696
|
SelectPrimitive.Label,
|
|
2597
2697
|
{
|
|
2598
2698
|
ref,
|
|
@@ -2601,7 +2701,7 @@ var SelectLabel = React131__default.forwardRef(({ className, ...props }, ref) =>
|
|
|
2601
2701
|
}
|
|
2602
2702
|
));
|
|
2603
2703
|
SelectLabel.displayName = SelectPrimitive.Label.displayName;
|
|
2604
|
-
var SelectItem =
|
|
2704
|
+
var SelectItem = React136__default.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
2605
2705
|
SelectPrimitive.Item,
|
|
2606
2706
|
{
|
|
2607
2707
|
ref,
|
|
@@ -2619,7 +2719,7 @@ var SelectItem = React131__default.forwardRef(({ className, children, ...props }
|
|
|
2619
2719
|
}
|
|
2620
2720
|
));
|
|
2621
2721
|
SelectItem.displayName = SelectPrimitive.Item.displayName;
|
|
2622
|
-
var SelectSeparator =
|
|
2722
|
+
var SelectSeparator = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2623
2723
|
SelectPrimitive.Separator,
|
|
2624
2724
|
{
|
|
2625
2725
|
ref,
|
|
@@ -2628,7 +2728,7 @@ var SelectSeparator = React131__default.forwardRef(({ className, ...props }, ref
|
|
|
2628
2728
|
}
|
|
2629
2729
|
));
|
|
2630
2730
|
SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
|
|
2631
|
-
var Separator6 =
|
|
2731
|
+
var Separator6 = React136__default.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2632
2732
|
SeparatorPrimitive.Root,
|
|
2633
2733
|
{
|
|
2634
2734
|
ref,
|
|
@@ -2647,7 +2747,7 @@ var Sheet = DialogPrimitive.Root;
|
|
|
2647
2747
|
var SheetTrigger = DialogPrimitive.Trigger;
|
|
2648
2748
|
var SheetClose = DialogPrimitive.Close;
|
|
2649
2749
|
var SheetPortal = DialogPrimitive.Portal;
|
|
2650
|
-
var SheetOverlay =
|
|
2750
|
+
var SheetOverlay = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2651
2751
|
DialogPrimitive.Overlay,
|
|
2652
2752
|
{
|
|
2653
2753
|
ref,
|
|
@@ -2675,7 +2775,7 @@ var sheetVariants = cva(
|
|
|
2675
2775
|
defaultVariants: { side: "right" }
|
|
2676
2776
|
}
|
|
2677
2777
|
);
|
|
2678
|
-
var SheetContent =
|
|
2778
|
+
var SheetContent = React136__default.forwardRef(({ side = "right", className, children, ...props }, ref) => /* @__PURE__ */ jsxs(SheetPortal, { children: [
|
|
2679
2779
|
/* @__PURE__ */ jsx(SheetOverlay, {}),
|
|
2680
2780
|
/* @__PURE__ */ jsxs(DialogPrimitive.Content, { ref, className: cn(sheetVariants({ side }), className), ...props, children: [
|
|
2681
2781
|
/* @__PURE__ */ jsxs(DialogPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-[hsl(var(--ring))]", children: [
|
|
@@ -2688,9 +2788,9 @@ var SheetContent = React131__default.forwardRef(({ side = "right", className, ch
|
|
|
2688
2788
|
SheetContent.displayName = DialogPrimitive.Content.displayName;
|
|
2689
2789
|
var SheetHeader = ({ className, ...props }) => /* @__PURE__ */ jsx("div", { className: cn("flex flex-col space-y-2 text-center sm:text-left", className), ...props });
|
|
2690
2790
|
var SheetFooter = ({ className, ...props }) => /* @__PURE__ */ jsx("div", { className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className), ...props });
|
|
2691
|
-
var SheetTitle =
|
|
2791
|
+
var SheetTitle = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(DialogPrimitive.Title, { ref, className: cn("text-lg font-semibold", className), ...props }));
|
|
2692
2792
|
SheetTitle.displayName = DialogPrimitive.Title.displayName;
|
|
2693
|
-
var SheetDescription =
|
|
2793
|
+
var SheetDescription = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(DialogPrimitive.Description, { ref, className: cn("text-sm text-[hsl(var(--muted-foreground))]", className), ...props }));
|
|
2694
2794
|
SheetDescription.displayName = DialogPrimitive.Description.displayName;
|
|
2695
2795
|
function Skeleton({ className, ...props }) {
|
|
2696
2796
|
return /* @__PURE__ */ jsx(
|
|
@@ -2701,7 +2801,7 @@ function Skeleton({ className, ...props }) {
|
|
|
2701
2801
|
}
|
|
2702
2802
|
);
|
|
2703
2803
|
}
|
|
2704
|
-
var Slider =
|
|
2804
|
+
var Slider = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
2705
2805
|
SliderPrimitive.Root,
|
|
2706
2806
|
{
|
|
2707
2807
|
ref,
|
|
@@ -2725,7 +2825,7 @@ function Spinner({ className, ...props }) {
|
|
|
2725
2825
|
}
|
|
2726
2826
|
);
|
|
2727
2827
|
}
|
|
2728
|
-
var Switch =
|
|
2828
|
+
var Switch = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2729
2829
|
SwitchPrimitive.Root,
|
|
2730
2830
|
{
|
|
2731
2831
|
ref,
|
|
@@ -2751,7 +2851,7 @@ var Switch = React131__default.forwardRef(({ className, ...props }, ref) => /* @
|
|
|
2751
2851
|
}
|
|
2752
2852
|
));
|
|
2753
2853
|
Switch.displayName = SwitchPrimitive.Root.displayName;
|
|
2754
|
-
var Table =
|
|
2854
|
+
var Table = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { className: "relative w-full overflow-auto", children: /* @__PURE__ */ jsx(
|
|
2755
2855
|
"table",
|
|
2756
2856
|
{
|
|
2757
2857
|
ref,
|
|
@@ -2760,9 +2860,9 @@ var Table = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ *
|
|
|
2760
2860
|
}
|
|
2761
2861
|
) }));
|
|
2762
2862
|
Table.displayName = "Table";
|
|
2763
|
-
var TableHeader =
|
|
2863
|
+
var TableHeader = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("thead", { ref, className: cn("[&_tr]:border-b", className), ...props }));
|
|
2764
2864
|
TableHeader.displayName = "TableHeader";
|
|
2765
|
-
var TableBody =
|
|
2865
|
+
var TableBody = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2766
2866
|
"tbody",
|
|
2767
2867
|
{
|
|
2768
2868
|
ref,
|
|
@@ -2771,7 +2871,7 @@ var TableBody = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
2771
2871
|
}
|
|
2772
2872
|
));
|
|
2773
2873
|
TableBody.displayName = "TableBody";
|
|
2774
|
-
var TableFooter =
|
|
2874
|
+
var TableFooter = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2775
2875
|
"tfoot",
|
|
2776
2876
|
{
|
|
2777
2877
|
ref,
|
|
@@ -2783,7 +2883,7 @@ var TableFooter = React131.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
2783
2883
|
}
|
|
2784
2884
|
));
|
|
2785
2885
|
TableFooter.displayName = "TableFooter";
|
|
2786
|
-
var TableRow =
|
|
2886
|
+
var TableRow = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2787
2887
|
"tr",
|
|
2788
2888
|
{
|
|
2789
2889
|
ref,
|
|
@@ -2795,7 +2895,7 @@ var TableRow = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE_
|
|
|
2795
2895
|
}
|
|
2796
2896
|
));
|
|
2797
2897
|
TableRow.displayName = "TableRow";
|
|
2798
|
-
var TableHead =
|
|
2898
|
+
var TableHead = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2799
2899
|
"th",
|
|
2800
2900
|
{
|
|
2801
2901
|
ref,
|
|
@@ -2807,7 +2907,7 @@ var TableHead = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
2807
2907
|
}
|
|
2808
2908
|
));
|
|
2809
2909
|
TableHead.displayName = "TableHead";
|
|
2810
|
-
var TableCell =
|
|
2910
|
+
var TableCell = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2811
2911
|
"td",
|
|
2812
2912
|
{
|
|
2813
2913
|
ref,
|
|
@@ -2819,7 +2919,7 @@ var TableCell = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
2819
2919
|
}
|
|
2820
2920
|
));
|
|
2821
2921
|
TableCell.displayName = "TableCell";
|
|
2822
|
-
var TableCaption =
|
|
2922
|
+
var TableCaption = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2823
2923
|
"caption",
|
|
2824
2924
|
{
|
|
2825
2925
|
ref,
|
|
@@ -2829,7 +2929,7 @@ var TableCaption = React131.forwardRef(({ className, ...props }, ref) => /* @__P
|
|
|
2829
2929
|
));
|
|
2830
2930
|
TableCaption.displayName = "TableCaption";
|
|
2831
2931
|
var Tabs = TabsPrimitive.Root;
|
|
2832
|
-
var TabsList =
|
|
2932
|
+
var TabsList = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2833
2933
|
TabsPrimitive.List,
|
|
2834
2934
|
{
|
|
2835
2935
|
ref,
|
|
@@ -2841,7 +2941,7 @@ var TabsList = React131__default.forwardRef(({ className, ...props }, ref) => /*
|
|
|
2841
2941
|
}
|
|
2842
2942
|
));
|
|
2843
2943
|
TabsList.displayName = TabsPrimitive.List.displayName;
|
|
2844
|
-
var TabsTrigger =
|
|
2944
|
+
var TabsTrigger = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2845
2945
|
TabsPrimitive.Trigger,
|
|
2846
2946
|
{
|
|
2847
2947
|
ref,
|
|
@@ -2856,7 +2956,7 @@ var TabsTrigger = React131__default.forwardRef(({ className, ...props }, ref) =>
|
|
|
2856
2956
|
}
|
|
2857
2957
|
));
|
|
2858
2958
|
TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
|
|
2859
|
-
var TabsContent =
|
|
2959
|
+
var TabsContent = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2860
2960
|
TabsPrimitive.Content,
|
|
2861
2961
|
{
|
|
2862
2962
|
ref,
|
|
@@ -2868,7 +2968,7 @@ var TabsContent = React131__default.forwardRef(({ className, ...props }, ref) =>
|
|
|
2868
2968
|
}
|
|
2869
2969
|
));
|
|
2870
2970
|
TabsContent.displayName = TabsPrimitive.Content.displayName;
|
|
2871
|
-
var Textarea =
|
|
2971
|
+
var Textarea = React136__default.forwardRef(
|
|
2872
2972
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2873
2973
|
"textarea",
|
|
2874
2974
|
{
|
|
@@ -2886,7 +2986,7 @@ var Textarea = React131__default.forwardRef(
|
|
|
2886
2986
|
)
|
|
2887
2987
|
);
|
|
2888
2988
|
Textarea.displayName = "Textarea";
|
|
2889
|
-
var TextureCard =
|
|
2989
|
+
var TextureCard = React136.forwardRef(
|
|
2890
2990
|
({ children, className, padding = true, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2891
2991
|
"div",
|
|
2892
2992
|
{
|
|
@@ -2903,15 +3003,15 @@ var TextureCard = React131.forwardRef(
|
|
|
2903
3003
|
)
|
|
2904
3004
|
);
|
|
2905
3005
|
TextureCard.displayName = "TextureCard";
|
|
2906
|
-
var TextureCardHeader =
|
|
3006
|
+
var TextureCardHeader = React136.forwardRef(
|
|
2907
3007
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex flex-col gap-1.5 mb-4", className), ...props })
|
|
2908
3008
|
);
|
|
2909
3009
|
TextureCardHeader.displayName = "TextureCardHeader";
|
|
2910
|
-
var TextureCardTitle =
|
|
3010
|
+
var TextureCardTitle = React136.forwardRef(
|
|
2911
3011
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx("h3", { ref, className: cn("font-semibold text-base leading-tight tracking-tight text-foreground", className), ...props })
|
|
2912
3012
|
);
|
|
2913
3013
|
TextureCardTitle.displayName = "TextureCardTitle";
|
|
2914
|
-
var TextureCardDescription =
|
|
3014
|
+
var TextureCardDescription = React136.forwardRef(
|
|
2915
3015
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx("p", { ref, className: cn("text-sm text-muted-foreground", className), ...props })
|
|
2916
3016
|
);
|
|
2917
3017
|
TextureCardDescription.displayName = "TextureCardDescription";
|
|
@@ -2935,7 +3035,7 @@ var toggleVariants = cva(
|
|
|
2935
3035
|
}
|
|
2936
3036
|
}
|
|
2937
3037
|
);
|
|
2938
|
-
var Toggle =
|
|
3038
|
+
var Toggle = React136.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2939
3039
|
TogglePrimitive.Root,
|
|
2940
3040
|
{
|
|
2941
3041
|
ref,
|
|
@@ -2944,11 +3044,11 @@ var Toggle = React131.forwardRef(({ className, variant, size, ...props }, ref) =
|
|
|
2944
3044
|
}
|
|
2945
3045
|
));
|
|
2946
3046
|
Toggle.displayName = TogglePrimitive.Root.displayName;
|
|
2947
|
-
var ToggleGroupContext =
|
|
3047
|
+
var ToggleGroupContext = React136.createContext({
|
|
2948
3048
|
size: "default",
|
|
2949
3049
|
variant: "default"
|
|
2950
3050
|
});
|
|
2951
|
-
var ToggleGroup =
|
|
3051
|
+
var ToggleGroup = React136.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2952
3052
|
ToggleGroupPrimitive.Root,
|
|
2953
3053
|
{
|
|
2954
3054
|
ref,
|
|
@@ -2958,8 +3058,8 @@ var ToggleGroup = React131.forwardRef(({ className, variant, size, children, ...
|
|
|
2958
3058
|
}
|
|
2959
3059
|
));
|
|
2960
3060
|
ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
|
|
2961
|
-
var ToggleGroupItem =
|
|
2962
|
-
const context =
|
|
3061
|
+
var ToggleGroupItem = React136.forwardRef(({ className, children, variant, size, ...props }, ref) => {
|
|
3062
|
+
const context = React136.useContext(ToggleGroupContext);
|
|
2963
3063
|
return /* @__PURE__ */ jsx(
|
|
2964
3064
|
ToggleGroupPrimitive.Item,
|
|
2965
3065
|
{
|
|
@@ -2980,7 +3080,7 @@ ToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName;
|
|
|
2980
3080
|
var TooltipProvider = TooltipPrimitive.Provider;
|
|
2981
3081
|
var Tooltip2 = TooltipPrimitive.Root;
|
|
2982
3082
|
var TooltipTrigger = TooltipPrimitive.Trigger;
|
|
2983
|
-
var TooltipContent =
|
|
3083
|
+
var TooltipContent = React136__default.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsx(
|
|
2984
3084
|
TooltipPrimitive.Content,
|
|
2985
3085
|
{
|
|
2986
3086
|
ref,
|
|
@@ -2996,6 +3096,52 @@ var TooltipContent = React131__default.forwardRef(({ className, sideOffset = 4,
|
|
|
2996
3096
|
}
|
|
2997
3097
|
) }));
|
|
2998
3098
|
TooltipContent.displayName = TooltipPrimitive.Content.displayName;
|
|
3099
|
+
var VariantPicker = React136__default.forwardRef(
|
|
3100
|
+
({ label, options, value: valueProp, defaultValue, onValueChange, className, ...props }, ref) => {
|
|
3101
|
+
const isControlled = valueProp !== void 0;
|
|
3102
|
+
const [internal, setInternal] = React136__default.useState(defaultValue);
|
|
3103
|
+
const value = isControlled ? valueProp : internal;
|
|
3104
|
+
const select = (v) => {
|
|
3105
|
+
if (!isControlled) setInternal(v);
|
|
3106
|
+
onValueChange?.(v);
|
|
3107
|
+
};
|
|
3108
|
+
return /* @__PURE__ */ jsxs("div", { ref, role: "radiogroup", "aria-label": label, className: cn("flex flex-col gap-2", className), ...props, children: [
|
|
3109
|
+
label && /* @__PURE__ */ jsx("span", { className: "text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: label }),
|
|
3110
|
+
/* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-2", children: options.map((opt) => {
|
|
3111
|
+
const selected = value === opt.value;
|
|
3112
|
+
return /* @__PURE__ */ jsxs(
|
|
3113
|
+
"button",
|
|
3114
|
+
{
|
|
3115
|
+
type: "button",
|
|
3116
|
+
role: "radio",
|
|
3117
|
+
"aria-checked": selected,
|
|
3118
|
+
disabled: opt.disabled,
|
|
3119
|
+
onClick: () => select(opt.value),
|
|
3120
|
+
className: cn(
|
|
3121
|
+
"inline-flex items-center gap-2 rounded-md border px-3 py-1.5 text-sm font-medium transition-colors",
|
|
3122
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
|
|
3123
|
+
selected ? "border-primary bg-primary/10 text-[hsl(var(--primary))]" : "border-border hover:bg-accent hover:text-accent-foreground",
|
|
3124
|
+
opt.disabled && "cursor-not-allowed text-muted-foreground line-through opacity-50"
|
|
3125
|
+
),
|
|
3126
|
+
children: [
|
|
3127
|
+
opt.swatch && /* @__PURE__ */ jsx(
|
|
3128
|
+
"span",
|
|
3129
|
+
{
|
|
3130
|
+
"aria-hidden": "true",
|
|
3131
|
+
className: "h-4 w-4 rounded-full border border-border",
|
|
3132
|
+
style: { backgroundColor: opt.swatch }
|
|
3133
|
+
}
|
|
3134
|
+
),
|
|
3135
|
+
opt.label
|
|
3136
|
+
]
|
|
3137
|
+
},
|
|
3138
|
+
opt.value
|
|
3139
|
+
);
|
|
3140
|
+
}) })
|
|
3141
|
+
] });
|
|
3142
|
+
}
|
|
3143
|
+
);
|
|
3144
|
+
VariantPicker.displayName = "VariantPicker";
|
|
2999
3145
|
var bannerVariants = cva(
|
|
3000
3146
|
"relative flex items-start gap-3 rounded-lg border px-4 py-3.5 text-sm transition-all",
|
|
3001
3147
|
{
|
|
@@ -3092,8 +3238,8 @@ function Banner({
|
|
|
3092
3238
|
className,
|
|
3093
3239
|
children
|
|
3094
3240
|
}) {
|
|
3095
|
-
const [dismissed, setDismissed] =
|
|
3096
|
-
const [exiting, setExiting] =
|
|
3241
|
+
const [dismissed, setDismissed] = React136__default.useState(false);
|
|
3242
|
+
const [exiting, setExiting] = React136__default.useState(false);
|
|
3097
3243
|
const handleDismiss = () => {
|
|
3098
3244
|
setExiting(true);
|
|
3099
3245
|
setTimeout(() => {
|
|
@@ -3154,7 +3300,7 @@ function BreadcrumbSeparator({ className }) {
|
|
|
3154
3300
|
return /* @__PURE__ */ jsx("li", { role: "presentation", "aria-hidden": "true", className: cn("flex items-center text-[hsl(var(--muted-foreground))]", className), children: /* @__PURE__ */ jsx(ChevronRight, { className: "h-3.5 w-3.5" }) });
|
|
3155
3301
|
}
|
|
3156
3302
|
function Breadcrumb({ children, className }) {
|
|
3157
|
-
const items =
|
|
3303
|
+
const items = React136__default.Children.toArray(children);
|
|
3158
3304
|
const withSeparators = [];
|
|
3159
3305
|
items.forEach((item, i) => {
|
|
3160
3306
|
withSeparators.push(item);
|
|
@@ -3162,9 +3308,30 @@ function Breadcrumb({ children, className }) {
|
|
|
3162
3308
|
});
|
|
3163
3309
|
return /* @__PURE__ */ jsx("nav", { "aria-label": "breadcrumb", children: /* @__PURE__ */ jsx("ol", { className: cn("flex flex-wrap items-center gap-1", className), children: withSeparators }) });
|
|
3164
3310
|
}
|
|
3311
|
+
function CommandItem2({ icon, label, description, shortcut, active, onClick, className }) {
|
|
3312
|
+
return /* @__PURE__ */ jsxs(
|
|
3313
|
+
"div",
|
|
3314
|
+
{
|
|
3315
|
+
onClick,
|
|
3316
|
+
className: cn(
|
|
3317
|
+
"flex items-center gap-3 rounded-md px-3 py-2 cursor-pointer transition-colors",
|
|
3318
|
+
active ? "bg-[hsl(var(--accent))] text-[hsl(var(--accent-foreground))]" : "hover:bg-[hsl(var(--accent)/0.6)]",
|
|
3319
|
+
className
|
|
3320
|
+
),
|
|
3321
|
+
children: [
|
|
3322
|
+
icon && /* @__PURE__ */ jsx("span", { className: "shrink-0 text-[hsl(var(--muted-foreground))] h-4 w-4 flex items-center justify-center", children: icon }),
|
|
3323
|
+
/* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
3324
|
+
/* @__PURE__ */ jsx("p", { className: "text-sm font-medium truncate", children: label }),
|
|
3325
|
+
description && /* @__PURE__ */ jsx("p", { className: "text-xs text-[hsl(var(--muted-foreground))] truncate", children: description })
|
|
3326
|
+
] }),
|
|
3327
|
+
shortcut && /* @__PURE__ */ jsx("kbd", { className: "shrink-0 pointer-events-none inline-flex h-5 items-center gap-1 rounded border border-[hsl(var(--border))] bg-[hsl(var(--muted))] px-1.5 text-[10px] font-medium text-[hsl(var(--muted-foreground))]", children: shortcut })
|
|
3328
|
+
]
|
|
3329
|
+
}
|
|
3330
|
+
);
|
|
3331
|
+
}
|
|
3165
3332
|
function EditableCell({ value: initial, onSave }) {
|
|
3166
|
-
const [editing, setEditing] =
|
|
3167
|
-
const [val, setVal] =
|
|
3333
|
+
const [editing, setEditing] = React136__default.useState(false);
|
|
3334
|
+
const [val, setVal] = React136__default.useState(String(initial ?? ""));
|
|
3168
3335
|
const commit = () => {
|
|
3169
3336
|
onSave(val);
|
|
3170
3337
|
setEditing(false);
|
|
@@ -3195,10 +3362,10 @@ var selectionCol = () => ({
|
|
|
3195
3362
|
enableResizing: false
|
|
3196
3363
|
});
|
|
3197
3364
|
function DataGrid({ columns, data: initialData, onDataChange, editable, className }) {
|
|
3198
|
-
const [data, setData] =
|
|
3199
|
-
const [rowSelection, setRowSelection] =
|
|
3365
|
+
const [data, setData] = React136__default.useState(initialData);
|
|
3366
|
+
const [rowSelection, setRowSelection] = React136__default.useState({});
|
|
3200
3367
|
const columnResizeMode = "onChange";
|
|
3201
|
-
const editableColumns =
|
|
3368
|
+
const editableColumns = React136__default.useMemo(() => {
|
|
3202
3369
|
if (!editable) return columns;
|
|
3203
3370
|
return columns.map((col) => ({
|
|
3204
3371
|
...col,
|
|
@@ -3217,7 +3384,7 @@ function DataGrid({ columns, data: initialData, onDataChange, editable, classNam
|
|
|
3217
3384
|
)
|
|
3218
3385
|
}));
|
|
3219
3386
|
}, [columns, data, editable, onDataChange]);
|
|
3220
|
-
const allColumns =
|
|
3387
|
+
const allColumns = React136__default.useMemo(() => [selectionCol(), ...editableColumns], [editableColumns]);
|
|
3221
3388
|
const table = useReactTable({
|
|
3222
3389
|
data,
|
|
3223
3390
|
columns: allColumns,
|
|
@@ -3288,7 +3455,7 @@ function DataTableToolbar({ table, searchColumn }) {
|
|
|
3288
3455
|
) });
|
|
3289
3456
|
}
|
|
3290
3457
|
function DataTable({ columns, data, pageSize = 10, searchable, searchColumn, loading }) {
|
|
3291
|
-
const [sorting, setSorting] =
|
|
3458
|
+
const [sorting, setSorting] = React136__default.useState([]);
|
|
3292
3459
|
const table = useReactTable({
|
|
3293
3460
|
data,
|
|
3294
3461
|
columns,
|
|
@@ -3313,18 +3480,57 @@ function DataTable({ columns, data, pageSize = 10, searchable, searchColumn, loa
|
|
|
3313
3480
|
/* @__PURE__ */ jsx(DataTablePagination, { table })
|
|
3314
3481
|
] });
|
|
3315
3482
|
}
|
|
3316
|
-
var EmptyStateIcon =
|
|
3483
|
+
var EmptyStateIcon = React136__default.forwardRef(
|
|
3317
3484
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex h-12 w-12 items-center justify-center rounded-full bg-[hsl(var(--muted))] text-[hsl(var(--muted-foreground))]", className), ...props })
|
|
3318
3485
|
);
|
|
3319
3486
|
EmptyStateIcon.displayName = "EmptyStateIcon";
|
|
3320
|
-
|
|
3321
|
-
|
|
3322
|
-
|
|
3323
|
-
|
|
3324
|
-
|
|
3325
|
-
|
|
3487
|
+
var sizeMap = {
|
|
3488
|
+
sm: "py-8 gap-2",
|
|
3489
|
+
default: "py-12 gap-3",
|
|
3490
|
+
lg: "py-20 gap-4"
|
|
3491
|
+
};
|
|
3492
|
+
var titleSizeMap = {
|
|
3493
|
+
sm: "text-sm font-semibold",
|
|
3494
|
+
default: "text-base font-semibold",
|
|
3495
|
+
lg: "text-lg font-semibold"
|
|
3496
|
+
};
|
|
3497
|
+
var descSizeMap = {
|
|
3498
|
+
sm: "text-xs",
|
|
3499
|
+
default: "text-sm",
|
|
3500
|
+
lg: "text-base"
|
|
3501
|
+
};
|
|
3502
|
+
var iconSizeMap = {
|
|
3503
|
+
sm: "h-10 w-10",
|
|
3504
|
+
default: "h-12 w-12",
|
|
3505
|
+
lg: "h-16 w-16"
|
|
3506
|
+
};
|
|
3507
|
+
function EmptyState({
|
|
3508
|
+
icon,
|
|
3509
|
+
title,
|
|
3510
|
+
description,
|
|
3511
|
+
action,
|
|
3512
|
+
secondaryAction,
|
|
3513
|
+
size = "default",
|
|
3514
|
+
className
|
|
3515
|
+
}) {
|
|
3516
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col items-center justify-center text-center", sizeMap[size], className), children: [
|
|
3517
|
+
icon && /* @__PURE__ */ jsx(EmptyStateIcon, { className: iconSizeMap[size], children: icon }),
|
|
3518
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-1 max-w-sm", children: [
|
|
3519
|
+
/* @__PURE__ */ jsx("h3", { className: cn(titleSizeMap[size], "text-[hsl(var(--foreground))]"), children: title }),
|
|
3520
|
+
description && /* @__PURE__ */ jsx("p", { className: cn(descSizeMap[size], "text-[hsl(var(--muted-foreground))]"), children: description })
|
|
3326
3521
|
] }),
|
|
3327
|
-
action && /* @__PURE__ */
|
|
3522
|
+
(action || secondaryAction) && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 mt-1", children: [
|
|
3523
|
+
action && /* @__PURE__ */ jsx(Button, { size: size === "sm" ? "sm" : "default", onClick: action.onClick, children: action.label }),
|
|
3524
|
+
secondaryAction && /* @__PURE__ */ jsx(
|
|
3525
|
+
Button,
|
|
3526
|
+
{
|
|
3527
|
+
variant: "outline",
|
|
3528
|
+
size: size === "sm" ? "sm" : "default",
|
|
3529
|
+
onClick: secondaryAction.onClick,
|
|
3530
|
+
children: secondaryAction.label
|
|
3531
|
+
}
|
|
3532
|
+
)
|
|
3533
|
+
] })
|
|
3328
3534
|
] });
|
|
3329
3535
|
}
|
|
3330
3536
|
function HotkeyBadge({ children, className }) {
|
|
@@ -3344,13 +3550,13 @@ var colorMap = {
|
|
|
3344
3550
|
error: "bg-red-100 text-red-700 dark:bg-red-900/30 dark:text-red-400",
|
|
3345
3551
|
purple: "bg-purple-100 text-purple-700 dark:bg-purple-900/30 dark:text-purple-400"
|
|
3346
3552
|
};
|
|
3347
|
-
var
|
|
3553
|
+
var sizeMap2 = {
|
|
3348
3554
|
sm: "h-7 w-7 [&>*]:h-3.5 [&>*]:w-3.5",
|
|
3349
3555
|
md: "h-10 w-10 [&>*]:h-5 [&>*]:w-5",
|
|
3350
3556
|
lg: "h-14 w-14 [&>*]:h-7 [&>*]:w-7"
|
|
3351
3557
|
};
|
|
3352
3558
|
function IconBadge({ icon, color = "default", size = "md", className }) {
|
|
3353
|
-
return /* @__PURE__ */ jsx("div", { className: cn("inline-flex items-center justify-center rounded-full shrink-0", colorMap[color],
|
|
3559
|
+
return /* @__PURE__ */ jsx("div", { className: cn("inline-flex items-center justify-center rounded-full shrink-0", colorMap[color], sizeMap2[size], className), children: icon });
|
|
3354
3560
|
}
|
|
3355
3561
|
function LoadingOverlay({ loading, text, fullPage, children, className }) {
|
|
3356
3562
|
if (fullPage) {
|
|
@@ -3367,13 +3573,13 @@ function LoadingOverlay({ loading, text, fullPage, children, className }) {
|
|
|
3367
3573
|
] }) })
|
|
3368
3574
|
] });
|
|
3369
3575
|
}
|
|
3370
|
-
var
|
|
3576
|
+
var sizeMap3 = {
|
|
3371
3577
|
sm: { avatar: "h-7 w-7", name: "text-sm", subtitle: "text-xs" },
|
|
3372
3578
|
md: { avatar: "h-9 w-9", name: "text-sm font-medium", subtitle: "text-xs" },
|
|
3373
3579
|
lg: { avatar: "h-12 w-12", name: "text-base font-medium", subtitle: "text-sm" }
|
|
3374
3580
|
};
|
|
3375
3581
|
function Persona({ name, subtitle, src, size = "md", badge, className }) {
|
|
3376
|
-
const s =
|
|
3582
|
+
const s = sizeMap3[size];
|
|
3377
3583
|
const initials = name.split(" ").map((w) => w[0]).slice(0, 2).join("").toUpperCase();
|
|
3378
3584
|
return /* @__PURE__ */ jsxs("div", { className: cn("flex items-center gap-2.5", className), children: [
|
|
3379
3585
|
/* @__PURE__ */ jsxs("div", { className: "relative shrink-0", children: [
|
|
@@ -3389,7 +3595,7 @@ function Persona({ name, subtitle, src, size = "md", badge, className }) {
|
|
|
3389
3595
|
] })
|
|
3390
3596
|
] });
|
|
3391
3597
|
}
|
|
3392
|
-
var PropertyList =
|
|
3598
|
+
var PropertyList = React136__default.forwardRef(
|
|
3393
3599
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx("dl", { ref, className: cn("divide-y divide-[hsl(var(--border))]", className), ...props })
|
|
3394
3600
|
);
|
|
3395
3601
|
PropertyList.displayName = "PropertyList";
|
|
@@ -3475,7 +3681,7 @@ function StructuredListItem({ left, title, description, right, onClick, classNam
|
|
|
3475
3681
|
}
|
|
3476
3682
|
);
|
|
3477
3683
|
}
|
|
3478
|
-
var StructuredList =
|
|
3684
|
+
var StructuredList = React136__default.forwardRef(
|
|
3479
3685
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("space-y-4", className), ...props })
|
|
3480
3686
|
);
|
|
3481
3687
|
StructuredList.displayName = "StructuredList";
|
|
@@ -3485,7 +3691,7 @@ var dotColors = {
|
|
|
3485
3691
|
error: "bg-red-500",
|
|
3486
3692
|
warning: "bg-yellow-500"
|
|
3487
3693
|
};
|
|
3488
|
-
var TimelineContent =
|
|
3694
|
+
var TimelineContent = React136__default.forwardRef(
|
|
3489
3695
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("pb-1", className), ...props })
|
|
3490
3696
|
);
|
|
3491
3697
|
TimelineContent.displayName = "TimelineContent";
|
|
@@ -3508,9 +3714,9 @@ function TimelineItem({ icon, title, description, timestamp, variant = "default"
|
|
|
3508
3714
|
] });
|
|
3509
3715
|
}
|
|
3510
3716
|
function Timeline({ children, className }) {
|
|
3511
|
-
const items =
|
|
3717
|
+
const items = React136__default.Children.toArray(children);
|
|
3512
3718
|
return /* @__PURE__ */ jsx("div", { className: cn("", className), children: items.map(
|
|
3513
|
-
(child, i) =>
|
|
3719
|
+
(child, i) => React136__default.isValidElement(child) ? React136__default.cloneElement(child, { isLast: i === items.length - 1 }) : child
|
|
3514
3720
|
) });
|
|
3515
3721
|
}
|
|
3516
3722
|
var INITIAL_MESSAGES = [
|
|
@@ -3694,7 +3900,7 @@ function FileRow({ file, onDelete }) {
|
|
|
3694
3900
|
] });
|
|
3695
3901
|
}
|
|
3696
3902
|
function FilesList({ className }) {
|
|
3697
|
-
const [files, setFiles] =
|
|
3903
|
+
const [files, setFiles] = React136__default.useState(FILES2);
|
|
3698
3904
|
return /* @__PURE__ */ jsx("div", { className: cn("rounded-md border border-[hsl(var(--border))] overflow-hidden", className), children: /* @__PURE__ */ jsxs("table", { className: "w-full", children: [
|
|
3699
3905
|
/* @__PURE__ */ jsx("thead", { className: "bg-[hsl(var(--muted)/0.5)]", children: /* @__PURE__ */ jsx("tr", { children: ["Name", "Type", "Size", "Modified", ""].map((h) => /* @__PURE__ */ jsx("th", { className: "px-4 py-2.5 text-left text-xs font-medium text-[hsl(var(--muted-foreground))]", children: h }, h)) }) }),
|
|
3700
3906
|
/* @__PURE__ */ jsx("tbody", { children: files.map((f) => /* @__PURE__ */ jsx(FileRow, { file: f, onDelete: () => setFiles((fs) => fs.filter((x) => x.id !== f.id)) }, f.id)) })
|
|
@@ -3774,7 +3980,7 @@ function InviteModal({ className }) {
|
|
|
3774
3980
|
pending.length > 0 && /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
|
|
3775
3981
|
/* @__PURE__ */ jsx("p", { className: "text-xs font-medium text-[hsl(var(--muted-foreground))]", children: "Pending invites" }),
|
|
3776
3982
|
/* @__PURE__ */ jsx("div", { className: "divide-y divide-[hsl(var(--border))] rounded-md border border-[hsl(var(--border))]", children: pending.map((p, i) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 px-3 py-2", children: [
|
|
3777
|
-
/* @__PURE__ */ jsx(Avatar, { className: "h-6 w-6", children: /* @__PURE__ */ jsx(AvatarFallback, { className: "text-[10px]", children: p.email
|
|
3983
|
+
/* @__PURE__ */ jsx(Avatar, { className: "h-6 w-6", children: /* @__PURE__ */ jsx(AvatarFallback, { className: "text-[10px]", children: p.email.charAt(0).toUpperCase() }) }),
|
|
3778
3984
|
/* @__PURE__ */ jsx("span", { className: "flex-1 text-sm truncate", children: p.email }),
|
|
3779
3985
|
/* @__PURE__ */ jsx(Badge, { variant: "outline", className: "text-[10px] px-1.5 py-0.5 shrink-0", children: p.role }),
|
|
3780
3986
|
/* @__PURE__ */ jsx("button", { onClick: () => setPending((ps) => ps.filter((_, j) => j !== i)), children: /* @__PURE__ */ jsx(X, { className: "h-3.5 w-3.5 text-[hsl(var(--muted-foreground))] hover:text-[hsl(var(--foreground))]" }) })
|
|
@@ -4189,9 +4395,9 @@ function apply(mode) {
|
|
|
4189
4395
|
document.documentElement.classList.toggle("dark", isDark);
|
|
4190
4396
|
}
|
|
4191
4397
|
function ThemeSwitch({ defaultMode, onChange, className, variant = "segmented" }) {
|
|
4192
|
-
const [mode, setMode] =
|
|
4193
|
-
const didMount =
|
|
4194
|
-
|
|
4398
|
+
const [mode, setMode] = React136__default.useState(() => defaultMode ?? readInitial());
|
|
4399
|
+
const didMount = React136__default.useRef(false);
|
|
4400
|
+
React136__default.useEffect(() => {
|
|
4195
4401
|
if (!didMount.current) {
|
|
4196
4402
|
didMount.current = true;
|
|
4197
4403
|
return;
|
|
@@ -4203,7 +4409,7 @@ function ThemeSwitch({ defaultMode, onChange, className, variant = "segmented" }
|
|
|
4203
4409
|
}
|
|
4204
4410
|
onChange?.(mode);
|
|
4205
4411
|
}, [mode, onChange]);
|
|
4206
|
-
|
|
4412
|
+
React136__default.useEffect(() => {
|
|
4207
4413
|
if (mode !== "system" || typeof window === "undefined") return;
|
|
4208
4414
|
const mql = window.matchMedia("(prefers-color-scheme: dark)");
|
|
4209
4415
|
const handler = () => apply("system");
|
|
@@ -4294,7 +4500,7 @@ function FloatingActionButton({
|
|
|
4294
4500
|
position = "bottom-right",
|
|
4295
4501
|
className
|
|
4296
4502
|
}) {
|
|
4297
|
-
const [open, setOpen] =
|
|
4503
|
+
const [open, setOpen] = React136__default.useState(false);
|
|
4298
4504
|
return /* @__PURE__ */ jsx(
|
|
4299
4505
|
"div",
|
|
4300
4506
|
{
|
|
@@ -4335,7 +4541,7 @@ function FloatingActionButton({
|
|
|
4335
4541
|
] }),
|
|
4336
4542
|
sections.length > 0 && /* @__PURE__ */ jsx(Separator6, {})
|
|
4337
4543
|
] }),
|
|
4338
|
-
sections.length > 0 && /* @__PURE__ */ jsx("div", { className: "px-3 py-2.5 space-y-3", children: sections.map((section, i) => /* @__PURE__ */ jsxs(
|
|
4544
|
+
sections.length > 0 && /* @__PURE__ */ jsx("div", { className: "px-3 py-2.5 space-y-3", children: sections.map((section, i) => /* @__PURE__ */ jsxs(React136__default.Fragment, { children: [
|
|
4339
4545
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
4340
4546
|
/* @__PURE__ */ jsx("p", { className: "text-[9px] font-semibold uppercase tracking-widest text-muted-foreground mb-1.5", children: section.label }),
|
|
4341
4547
|
section.content
|
|
@@ -4377,7 +4583,7 @@ function applyTheme(val) {
|
|
|
4377
4583
|
}
|
|
4378
4584
|
}
|
|
4379
4585
|
function PaletteSwatches({ options = DEFAULT_THEME_OPTIONS }) {
|
|
4380
|
-
const [activeValue, setActiveValue] =
|
|
4586
|
+
const [activeValue, setActiveValue] = React136__default.useState(readStoredTheme);
|
|
4381
4587
|
const activeOption = options.find((o) => o.value === activeValue) ?? options[0];
|
|
4382
4588
|
const handleSelect = (value) => {
|
|
4383
4589
|
setActiveValue(value);
|
|
@@ -4467,7 +4673,7 @@ function NotificationSettings({ className }) {
|
|
|
4467
4673
|
NotifRow,
|
|
4468
4674
|
{
|
|
4469
4675
|
...n,
|
|
4470
|
-
checked: states[n.id],
|
|
4676
|
+
checked: states[n.id] ?? false,
|
|
4471
4677
|
onChange: (val) => setStates((s) => ({ ...s, [n.id]: val }))
|
|
4472
4678
|
},
|
|
4473
4679
|
n.id
|
|
@@ -4669,7 +4875,7 @@ var ROLES = [
|
|
|
4669
4875
|
];
|
|
4670
4876
|
function RolesMenu({ value = "member", onChange, className }) {
|
|
4671
4877
|
const [role, setRole] = useState(value);
|
|
4672
|
-
const current = ROLES.find((r) => r.value === role) ?? ROLES[
|
|
4878
|
+
const current = ROLES.find((r) => r.value === role) ?? ROLES[0];
|
|
4673
4879
|
const handleChange = (v) => {
|
|
4674
4880
|
setRole(v);
|
|
4675
4881
|
onChange?.(v);
|
|
@@ -5253,8 +5459,8 @@ function BulkActions({ count, actions, onClear, className }) {
|
|
|
5253
5459
|
] });
|
|
5254
5460
|
}
|
|
5255
5461
|
function useCommandBar() {
|
|
5256
|
-
const [open, setOpen] =
|
|
5257
|
-
|
|
5462
|
+
const [open, setOpen] = React136__default.useState(false);
|
|
5463
|
+
React136__default.useEffect(() => {
|
|
5258
5464
|
const handler = (e) => {
|
|
5259
5465
|
if ((e.metaKey || e.ctrlKey) && e.key === "k") {
|
|
5260
5466
|
e.preventDefault();
|
|
@@ -5294,12 +5500,12 @@ function CommandBarItem({ icon, label, shortcut, onSelect, active, className })
|
|
|
5294
5500
|
);
|
|
5295
5501
|
}
|
|
5296
5502
|
function CommandBar({ open, onOpenChange, children, placeholder = "Search commands...", onSearch }) {
|
|
5297
|
-
const [query, setQuery] =
|
|
5503
|
+
const [query, setQuery] = React136__default.useState("");
|
|
5298
5504
|
const handleSearch = (v) => {
|
|
5299
5505
|
setQuery(v);
|
|
5300
5506
|
onSearch?.(v);
|
|
5301
5507
|
};
|
|
5302
|
-
const items =
|
|
5508
|
+
const items = React136__default.useRef(null);
|
|
5303
5509
|
const handleKeyDown = (e) => {
|
|
5304
5510
|
if (e.key === "Escape") {
|
|
5305
5511
|
onOpenChange(false);
|
|
@@ -5340,10 +5546,10 @@ function CommandBar({ open, onOpenChange, children, placeholder = "Search comman
|
|
|
5340
5546
|
var textOps = ["contains", "equals", "starts with"];
|
|
5341
5547
|
var numOps = ["=", ">", "<", ">=", "<="];
|
|
5342
5548
|
function AddFilterPopover({ filters, onAdd }) {
|
|
5343
|
-
const [open, setOpen] =
|
|
5344
|
-
const [key, setKey] =
|
|
5345
|
-
const [op, setOp] =
|
|
5346
|
-
const [val, setVal] =
|
|
5549
|
+
const [open, setOpen] = React136__default.useState(false);
|
|
5550
|
+
const [key, setKey] = React136__default.useState("");
|
|
5551
|
+
const [op, setOp] = React136__default.useState("");
|
|
5552
|
+
const [val, setVal] = React136__default.useState("");
|
|
5347
5553
|
const def = filters.find((f) => f.key === key);
|
|
5348
5554
|
const ops = def?.type === "number" ? numOps : textOps;
|
|
5349
5555
|
const handleAdd = () => {
|
|
@@ -5455,7 +5661,7 @@ function formatColumnSubLabel(date, scale) {
|
|
|
5455
5661
|
function snapDate(date, scale) {
|
|
5456
5662
|
return startOfScale(date, scale);
|
|
5457
5663
|
}
|
|
5458
|
-
var Gantt =
|
|
5664
|
+
var Gantt = React136__default.forwardRef(
|
|
5459
5665
|
({
|
|
5460
5666
|
items,
|
|
5461
5667
|
scale = "days",
|
|
@@ -5473,7 +5679,7 @@ var Gantt = React131__default.forwardRef(
|
|
|
5473
5679
|
}, ref) => {
|
|
5474
5680
|
const interactive = !!onItemMove || !!onItemResize;
|
|
5475
5681
|
const columnWidth = DEFAULT_COLUMN_WIDTH[scale];
|
|
5476
|
-
const viewport =
|
|
5682
|
+
const viewport = React136__default.useMemo(() => {
|
|
5477
5683
|
const earliest = startDate ?? (items.length ? new Date(Math.min(...items.map((i) => i.start.getTime()))) : /* @__PURE__ */ new Date());
|
|
5478
5684
|
const latest = endDate ?? (items.length ? new Date(Math.max(...items.map((i) => i.end.getTime()))) : addDays(/* @__PURE__ */ new Date(), 14));
|
|
5479
5685
|
return {
|
|
@@ -5483,7 +5689,7 @@ var Gantt = React131__default.forwardRef(
|
|
|
5483
5689
|
}, [items, startDate, endDate, scale]);
|
|
5484
5690
|
const colCount = totalColumns(viewport.start, viewport.end, scale);
|
|
5485
5691
|
const timelineWidth = colCount * columnWidth;
|
|
5486
|
-
const grouped =
|
|
5692
|
+
const grouped = React136__default.useMemo(() => {
|
|
5487
5693
|
const map = /* @__PURE__ */ new Map();
|
|
5488
5694
|
for (const it of items) {
|
|
5489
5695
|
const k = it.group ?? void 0;
|
|
@@ -5493,7 +5699,7 @@ var Gantt = React131__default.forwardRef(
|
|
|
5493
5699
|
return Array.from(map.entries());
|
|
5494
5700
|
}, [items]);
|
|
5495
5701
|
const hasGroups = grouped.some(([k]) => k !== void 0);
|
|
5496
|
-
const [collapsed, setCollapsed] =
|
|
5702
|
+
const [collapsed, setCollapsed] = React136__default.useState(() => /* @__PURE__ */ new Set());
|
|
5497
5703
|
const toggleGroup = (key) => {
|
|
5498
5704
|
setCollapsed((prev) => {
|
|
5499
5705
|
const next = new Set(prev);
|
|
@@ -5502,7 +5708,7 @@ var Gantt = React131__default.forwardRef(
|
|
|
5502
5708
|
return next;
|
|
5503
5709
|
});
|
|
5504
5710
|
};
|
|
5505
|
-
const rows =
|
|
5711
|
+
const rows = React136__default.useMemo(() => {
|
|
5506
5712
|
const out = [];
|
|
5507
5713
|
for (const [groupKey, list] of grouped) {
|
|
5508
5714
|
if (groupKey !== void 0) {
|
|
@@ -5513,21 +5719,21 @@ var Gantt = React131__default.forwardRef(
|
|
|
5513
5719
|
}
|
|
5514
5720
|
return out;
|
|
5515
5721
|
}, [grouped, collapsed]);
|
|
5516
|
-
const itemRowIndex =
|
|
5722
|
+
const itemRowIndex = React136__default.useMemo(() => {
|
|
5517
5723
|
const m = /* @__PURE__ */ new Map();
|
|
5518
5724
|
rows.forEach((r, i) => {
|
|
5519
5725
|
if (r.kind === "item") m.set(r.item.id, i);
|
|
5520
5726
|
});
|
|
5521
5727
|
return m;
|
|
5522
5728
|
}, [rows]);
|
|
5523
|
-
const todayOffsetPx =
|
|
5729
|
+
const todayOffsetPx = React136__default.useMemo(() => {
|
|
5524
5730
|
if (!showToday) return null;
|
|
5525
5731
|
const now = /* @__PURE__ */ new Date();
|
|
5526
5732
|
const u = unitsBetween(viewport.start, now, scale);
|
|
5527
5733
|
if (u < 0 || u > colCount) return null;
|
|
5528
5734
|
return u * columnWidth;
|
|
5529
5735
|
}, [showToday, viewport.start, scale, colCount, columnWidth]);
|
|
5530
|
-
const columnDates =
|
|
5736
|
+
const columnDates = React136__default.useMemo(() => {
|
|
5531
5737
|
return Array.from(
|
|
5532
5738
|
{ length: colCount },
|
|
5533
5739
|
(_, i) => addUnits(viewport.start, i, scale)
|
|
@@ -5751,12 +5957,12 @@ function GanttBar({
|
|
|
5751
5957
|
}) {
|
|
5752
5958
|
const color = item.color ?? DEFAULT_COLOR2;
|
|
5753
5959
|
const progress = Math.max(0, Math.min(100, item.progress ?? 0));
|
|
5754
|
-
const [previewLeftDelta, setPreviewLeftDelta] =
|
|
5755
|
-
const [previewRightDelta, setPreviewRightDelta] =
|
|
5756
|
-
const dragMode =
|
|
5757
|
-
const startX =
|
|
5758
|
-
const longPressTimer =
|
|
5759
|
-
const moved =
|
|
5960
|
+
const [previewLeftDelta, setPreviewLeftDelta] = React136__default.useState(0);
|
|
5961
|
+
const [previewRightDelta, setPreviewRightDelta] = React136__default.useState(0);
|
|
5962
|
+
const dragMode = React136__default.useRef(null);
|
|
5963
|
+
const startX = React136__default.useRef(0);
|
|
5964
|
+
const longPressTimer = React136__default.useRef(null);
|
|
5965
|
+
const moved = React136__default.useRef(false);
|
|
5760
5966
|
const baseLeft = unitsBetween(viewportStart, item.start, scale) * columnWidth;
|
|
5761
5967
|
const baseRight = unitsBetween(viewportStart, item.end, scale) * columnWidth;
|
|
5762
5968
|
const baseWidth = Math.max(columnWidth * 0.25, baseRight - baseLeft);
|
|
@@ -5962,7 +6168,7 @@ function DependencyLayer({
|
|
|
5962
6168
|
timelineWidth,
|
|
5963
6169
|
totalHeight
|
|
5964
6170
|
}) {
|
|
5965
|
-
const itemById =
|
|
6171
|
+
const itemById = React136__default.useMemo(() => {
|
|
5966
6172
|
const m = /* @__PURE__ */ new Map();
|
|
5967
6173
|
for (const it of items) m.set(it.id, it);
|
|
5968
6174
|
return m;
|
|
@@ -6061,9 +6267,9 @@ function KanbanColumn({ column, isOver }) {
|
|
|
6061
6267
|
] });
|
|
6062
6268
|
}
|
|
6063
6269
|
function Kanban({ columns: initialColumns, onMoveCard, className }) {
|
|
6064
|
-
const [cols, setCols] =
|
|
6065
|
-
const [activeCard, setActiveCard] =
|
|
6066
|
-
const [overColId, setOverColId] =
|
|
6270
|
+
const [cols, setCols] = React136__default.useState(initialColumns);
|
|
6271
|
+
const [activeCard, setActiveCard] = React136__default.useState(null);
|
|
6272
|
+
const [overColId, setOverColId] = React136__default.useState(null);
|
|
6067
6273
|
const sensors = useSensors(useSensor(PointerSensor, { activationConstraint: { distance: 5 } }));
|
|
6068
6274
|
const findColByCard = (cardId) => cols.find((c) => c.cards.some((card) => card.id === cardId));
|
|
6069
6275
|
const onDragStart = ({ active }) => {
|
|
@@ -6132,10 +6338,10 @@ function ToolbarButton({
|
|
|
6132
6338
|
] });
|
|
6133
6339
|
}
|
|
6134
6340
|
function LinkPopover({ editor }) {
|
|
6135
|
-
const [open, setOpen] =
|
|
6136
|
-
const [url, setUrl] =
|
|
6341
|
+
const [open, setOpen] = React136__default.useState(false);
|
|
6342
|
+
const [url, setUrl] = React136__default.useState("");
|
|
6137
6343
|
const isActive = editor.isActive("link");
|
|
6138
|
-
|
|
6344
|
+
React136__default.useEffect(() => {
|
|
6139
6345
|
if (!open) return;
|
|
6140
6346
|
const current = editor.getAttributes("link")?.href;
|
|
6141
6347
|
setUrl(current ?? "");
|
|
@@ -6600,7 +6806,7 @@ var proseClasses = cn(
|
|
|
6600
6806
|
// Selected cells in tables
|
|
6601
6807
|
"[&_.selectedCell]:bg-[hsl(var(--accent))]/40"
|
|
6602
6808
|
);
|
|
6603
|
-
var RichEditor =
|
|
6809
|
+
var RichEditor = React136__default.forwardRef(
|
|
6604
6810
|
function RichEditor2({
|
|
6605
6811
|
value,
|
|
6606
6812
|
defaultValue,
|
|
@@ -6614,12 +6820,12 @@ var RichEditor = React131__default.forwardRef(
|
|
|
6614
6820
|
}, ref) {
|
|
6615
6821
|
const isControlled = value !== void 0;
|
|
6616
6822
|
const initialContent = isControlled ? value ?? "" : defaultValue ?? "";
|
|
6617
|
-
const debounceRef =
|
|
6618
|
-
const onChangeRef =
|
|
6619
|
-
|
|
6823
|
+
const debounceRef = React136__default.useRef(null);
|
|
6824
|
+
const onChangeRef = React136__default.useRef(onChange);
|
|
6825
|
+
React136__default.useEffect(() => {
|
|
6620
6826
|
onChangeRef.current = onChange;
|
|
6621
6827
|
}, [onChange]);
|
|
6622
|
-
const [charCount, setCharCount] =
|
|
6828
|
+
const [charCount, setCharCount] = React136__default.useState(0);
|
|
6623
6829
|
const editor = useEditor({
|
|
6624
6830
|
editable,
|
|
6625
6831
|
content: initialContent,
|
|
@@ -6662,18 +6868,18 @@ var RichEditor = React131__default.forwardRef(
|
|
|
6662
6868
|
}, 100);
|
|
6663
6869
|
}
|
|
6664
6870
|
});
|
|
6665
|
-
|
|
6871
|
+
React136__default.useEffect(() => {
|
|
6666
6872
|
if (!editor || !isControlled) return;
|
|
6667
6873
|
const current = editor.getHTML();
|
|
6668
6874
|
if ((value ?? "") !== current) {
|
|
6669
6875
|
editor.commands.setContent(value ?? "", { emitUpdate: false });
|
|
6670
6876
|
}
|
|
6671
6877
|
}, [editor, isControlled, value]);
|
|
6672
|
-
|
|
6878
|
+
React136__default.useEffect(() => {
|
|
6673
6879
|
if (!editor) return;
|
|
6674
6880
|
if (editor.isEditable !== editable) editor.setEditable(editable);
|
|
6675
6881
|
}, [editor, editable]);
|
|
6676
|
-
|
|
6882
|
+
React136__default.useEffect(() => {
|
|
6677
6883
|
return () => {
|
|
6678
6884
|
if (debounceRef.current) clearTimeout(debounceRef.current);
|
|
6679
6885
|
};
|
|
@@ -6771,10 +6977,10 @@ function ToggleButtonGroup(props) {
|
|
|
6771
6977
|
props.onChange(val);
|
|
6772
6978
|
}
|
|
6773
6979
|
};
|
|
6774
|
-
return /* @__PURE__ */ jsx("div", { className: cn("inline-flex items-center gap-1 rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--muted)/0.4)] p-0.5", className), children:
|
|
6775
|
-
if (!
|
|
6980
|
+
return /* @__PURE__ */ jsx("div", { className: cn("inline-flex items-center gap-1 rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--muted)/0.4)] p-0.5", className), children: React136__default.Children.map(children, (child) => {
|
|
6981
|
+
if (!React136__default.isValidElement(child)) return child;
|
|
6776
6982
|
const tb = child;
|
|
6777
|
-
return
|
|
6983
|
+
return React136__default.cloneElement(tb, {
|
|
6778
6984
|
pressed: isPressed(tb.props.value),
|
|
6779
6985
|
onClick: () => handleClick(tb.props.value)
|
|
6780
6986
|
});
|
|
@@ -7014,7 +7220,7 @@ function Sparkline({
|
|
|
7014
7220
|
const max = Math.max(...data);
|
|
7015
7221
|
const range = max - min || 1;
|
|
7016
7222
|
const pad = 2;
|
|
7017
|
-
const lastY = pad + (1 - (data
|
|
7223
|
+
const lastY = pad + (1 - ((data.at(-1) ?? 0) - min) / range) * (height - pad * 2);
|
|
7018
7224
|
const areaPath = type === "area" ? `${path} L ${width - pad},${height - pad} L ${pad},${height - pad} Z` : void 0;
|
|
7019
7225
|
return /* @__PURE__ */ jsxs(
|
|
7020
7226
|
"svg",
|
|
@@ -7038,7 +7244,7 @@ var colorMap2 = {
|
|
|
7038
7244
|
warning: "bg-yellow-500",
|
|
7039
7245
|
error: "bg-red-500"
|
|
7040
7246
|
};
|
|
7041
|
-
var
|
|
7247
|
+
var sizeMap4 = {
|
|
7042
7248
|
sm: "h-1.5 w-1.5",
|
|
7043
7249
|
md: "h-2.5 w-2.5",
|
|
7044
7250
|
lg: "h-3.5 w-3.5"
|
|
@@ -7046,7 +7252,7 @@ var sizeMap3 = {
|
|
|
7046
7252
|
function BeaconDot({ color = "primary", size = "md" }) {
|
|
7047
7253
|
return /* @__PURE__ */ jsxs("span", { className: "relative flex", children: [
|
|
7048
7254
|
/* @__PURE__ */ jsx("span", { className: cn("animate-ping absolute inline-flex h-full w-full rounded-full opacity-75", colorMap2[color]) }),
|
|
7049
|
-
/* @__PURE__ */ jsx("span", { className: cn("relative inline-flex rounded-full",
|
|
7255
|
+
/* @__PURE__ */ jsx("span", { className: cn("relative inline-flex rounded-full", sizeMap4[size], colorMap2[color]) })
|
|
7050
7256
|
] });
|
|
7051
7257
|
}
|
|
7052
7258
|
function Beacon({ color = "primary", size = "md", children, className }) {
|
|
@@ -7129,7 +7335,7 @@ function useChecklist() {
|
|
|
7129
7335
|
if (!ctx) throw new Error("<ChecklistItem> must be used inside <Checklist>");
|
|
7130
7336
|
return ctx;
|
|
7131
7337
|
}
|
|
7132
|
-
var Checklist =
|
|
7338
|
+
var Checklist = React136__default.forwardRef(
|
|
7133
7339
|
({
|
|
7134
7340
|
title = "Getting started",
|
|
7135
7341
|
description,
|
|
@@ -7145,7 +7351,7 @@ var Checklist = React131__default.forwardRef(
|
|
|
7145
7351
|
}, ref) => {
|
|
7146
7352
|
const [internalCompleted, setInternalCompleted] = useState({});
|
|
7147
7353
|
const [open, setOpen] = useState(defaultOpen);
|
|
7148
|
-
const completedFiredRef =
|
|
7354
|
+
const completedFiredRef = React136__default.useRef(false);
|
|
7149
7355
|
const isControlled = controlledCompleted !== void 0;
|
|
7150
7356
|
const completed = isControlled ? controlledCompleted : internalCompleted;
|
|
7151
7357
|
const setCompleted = useCallback(
|
|
@@ -7157,8 +7363,8 @@ var Checklist = React131__default.forwardRef(
|
|
|
7157
7363
|
);
|
|
7158
7364
|
const total = useMemo(() => {
|
|
7159
7365
|
let n = 0;
|
|
7160
|
-
|
|
7161
|
-
if (
|
|
7366
|
+
React136__default.Children.forEach(children, (child) => {
|
|
7367
|
+
if (React136__default.isValidElement(child) && child.type.displayName === "ChecklistItem") {
|
|
7162
7368
|
n++;
|
|
7163
7369
|
}
|
|
7164
7370
|
});
|
|
@@ -7168,7 +7374,7 @@ var Checklist = React131__default.forwardRef(
|
|
|
7168
7374
|
() => Object.values(completed).filter(Boolean).length,
|
|
7169
7375
|
[completed]
|
|
7170
7376
|
);
|
|
7171
|
-
|
|
7377
|
+
React136__default.useEffect(() => {
|
|
7172
7378
|
if (!completedFiredRef.current && total > 0 && doneCount >= total) {
|
|
7173
7379
|
completedFiredRef.current = true;
|
|
7174
7380
|
onComplete?.();
|
|
@@ -7229,7 +7435,7 @@ var Checklist = React131__default.forwardRef(
|
|
|
7229
7435
|
}
|
|
7230
7436
|
);
|
|
7231
7437
|
Checklist.displayName = "Checklist";
|
|
7232
|
-
var ChecklistItem =
|
|
7438
|
+
var ChecklistItem = React136__default.forwardRef(
|
|
7233
7439
|
({ id, title, description, action, onActivate, className, ...props }, ref) => {
|
|
7234
7440
|
const { completed, setCompleted } = useChecklist();
|
|
7235
7441
|
const done = !!completed[id];
|
|
@@ -7577,7 +7783,7 @@ function Field({ label, description, error, required, children, className }) {
|
|
|
7577
7783
|
error && /* @__PURE__ */ jsx(FieldError, { children: error })
|
|
7578
7784
|
] });
|
|
7579
7785
|
}
|
|
7580
|
-
var FieldLabel =
|
|
7786
|
+
var FieldLabel = React136__default.forwardRef(
|
|
7581
7787
|
({ className, required, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
7582
7788
|
"label",
|
|
7583
7789
|
{
|
|
@@ -7592,7 +7798,7 @@ var FieldLabel = React131__default.forwardRef(
|
|
|
7592
7798
|
)
|
|
7593
7799
|
);
|
|
7594
7800
|
FieldLabel.displayName = "FieldLabel";
|
|
7595
|
-
var FieldDescription =
|
|
7801
|
+
var FieldDescription = React136__default.forwardRef(
|
|
7596
7802
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
7597
7803
|
"p",
|
|
7598
7804
|
{
|
|
@@ -7603,7 +7809,7 @@ var FieldDescription = React131__default.forwardRef(
|
|
|
7603
7809
|
)
|
|
7604
7810
|
);
|
|
7605
7811
|
FieldDescription.displayName = "FieldDescription";
|
|
7606
|
-
var FieldError =
|
|
7812
|
+
var FieldError = React136__default.forwardRef(
|
|
7607
7813
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
7608
7814
|
"p",
|
|
7609
7815
|
{
|
|
@@ -7666,6 +7872,7 @@ function FieldRenderer({ name, field, register, setValue, watch, error }) {
|
|
|
7666
7872
|
}
|
|
7667
7873
|
function AutoForm({ schema, onSubmit, defaultValues, submitLabel = "Submit" }) {
|
|
7668
7874
|
const { register, handleSubmit, setValue, watch, formState } = useForm({
|
|
7875
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
7669
7876
|
resolver: zodResolver(schema),
|
|
7670
7877
|
defaultValues
|
|
7671
7878
|
});
|
|
@@ -7703,7 +7910,7 @@ function defaultFor(format3, showAlpha) {
|
|
|
7703
7910
|
if (format3 === "rgb") return showAlpha ? "rgba(59, 130, 246, 1)" : "rgb(59, 130, 246)";
|
|
7704
7911
|
return showAlpha ? "hsla(217, 91%, 60%, 1)" : "hsl(217, 91%, 60%)";
|
|
7705
7912
|
}
|
|
7706
|
-
var ColorPicker =
|
|
7913
|
+
var ColorPicker = React136__default.forwardRef(
|
|
7707
7914
|
({
|
|
7708
7915
|
value: valueProp,
|
|
7709
7916
|
defaultValue,
|
|
@@ -7718,21 +7925,21 @@ var ColorPicker = React131__default.forwardRef(
|
|
|
7718
7925
|
}, ref) => {
|
|
7719
7926
|
const fallback = defaultValue ?? defaultFor(format3, showAlpha);
|
|
7720
7927
|
const isControlled = valueProp !== void 0;
|
|
7721
|
-
const [internal, setInternal] =
|
|
7928
|
+
const [internal, setInternal] = React136__default.useState(fallback);
|
|
7722
7929
|
const value = isControlled ? valueProp : internal;
|
|
7723
|
-
const [draft, setDraft] =
|
|
7724
|
-
const [draftValid, setDraftValid] =
|
|
7725
|
-
|
|
7930
|
+
const [draft, setDraft] = React136__default.useState(value);
|
|
7931
|
+
const [draftValid, setDraftValid] = React136__default.useState(true);
|
|
7932
|
+
React136__default.useEffect(() => {
|
|
7726
7933
|
setDraft(value);
|
|
7727
7934
|
setDraftValid(true);
|
|
7728
7935
|
}, [value]);
|
|
7729
|
-
const [eyeDropperSupported, setEyeDropperSupported] =
|
|
7730
|
-
|
|
7936
|
+
const [eyeDropperSupported, setEyeDropperSupported] = React136__default.useState(false);
|
|
7937
|
+
React136__default.useEffect(() => {
|
|
7731
7938
|
if (typeof window !== "undefined" && "EyeDropper" in window) {
|
|
7732
7939
|
setEyeDropperSupported(true);
|
|
7733
7940
|
}
|
|
7734
7941
|
}, []);
|
|
7735
|
-
const commit =
|
|
7942
|
+
const commit = React136__default.useCallback(
|
|
7736
7943
|
(next) => {
|
|
7737
7944
|
if (!isControlled) setInternal(next);
|
|
7738
7945
|
onValueChange?.(next);
|
|
@@ -7969,7 +8176,91 @@ function FileUploadPreview({ files, onRemove, className }) {
|
|
|
7969
8176
|
] })
|
|
7970
8177
|
] }, i)) });
|
|
7971
8178
|
}
|
|
7972
|
-
var
|
|
8179
|
+
var FloatingLabelInput = React136__default.forwardRef(
|
|
8180
|
+
({ label, error, hint, wrapperClassName, className, id, value, defaultValue, onFocus, onBlur, onChange, ...props }, ref) => {
|
|
8181
|
+
const autoId = useId();
|
|
8182
|
+
const inputId = id ?? autoId;
|
|
8183
|
+
const errorId = error ? `${inputId}-error` : void 0;
|
|
8184
|
+
const hintId = hint ? `${inputId}-hint` : void 0;
|
|
8185
|
+
const describedBy = [errorId, hintId].filter(Boolean).join(" ") || void 0;
|
|
8186
|
+
const [focused, setFocused] = useState(false);
|
|
8187
|
+
const [filled, setFilled] = useState(() => {
|
|
8188
|
+
if (value !== void 0 && value !== null && value !== "") return true;
|
|
8189
|
+
if (defaultValue !== void 0 && defaultValue !== null && defaultValue !== "") return true;
|
|
8190
|
+
return false;
|
|
8191
|
+
});
|
|
8192
|
+
const isFloated = focused || filled;
|
|
8193
|
+
return /* @__PURE__ */ jsxs("div", { "data-slot": "floating-label-input", className: cn("flex flex-col gap-1.5", wrapperClassName), children: [
|
|
8194
|
+
/* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
8195
|
+
/* @__PURE__ */ jsx(
|
|
8196
|
+
"input",
|
|
8197
|
+
{
|
|
8198
|
+
ref,
|
|
8199
|
+
id: inputId,
|
|
8200
|
+
value,
|
|
8201
|
+
defaultValue,
|
|
8202
|
+
"data-slot": "input",
|
|
8203
|
+
"data-state": isFloated ? "floated" : "rest",
|
|
8204
|
+
"aria-invalid": Boolean(error) || void 0,
|
|
8205
|
+
"aria-describedby": describedBy,
|
|
8206
|
+
onFocus: (e) => {
|
|
8207
|
+
setFocused(true);
|
|
8208
|
+
onFocus?.(e);
|
|
8209
|
+
},
|
|
8210
|
+
onBlur: (e) => {
|
|
8211
|
+
setFocused(false);
|
|
8212
|
+
onBlur?.(e);
|
|
8213
|
+
},
|
|
8214
|
+
onChange: (e) => {
|
|
8215
|
+
setFilled(e.target.value.length > 0);
|
|
8216
|
+
onChange?.(e);
|
|
8217
|
+
},
|
|
8218
|
+
className: cn(
|
|
8219
|
+
// Reset + structure
|
|
8220
|
+
"peer w-full appearance-none bg-transparent",
|
|
8221
|
+
"h-14 rounded-md border px-3 pt-5 pb-1.5",
|
|
8222
|
+
"text-base text-foreground leading-tight",
|
|
8223
|
+
// Border / focus ring colors
|
|
8224
|
+
"border-input focus:border-ring focus:outline-none focus:ring-2 focus:ring-ring/30",
|
|
8225
|
+
error && "border-destructive focus:border-destructive focus:ring-destructive/30",
|
|
8226
|
+
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
8227
|
+
"placeholder:text-transparent",
|
|
8228
|
+
// hide native placeholder; label takes its job
|
|
8229
|
+
className
|
|
8230
|
+
),
|
|
8231
|
+
...props
|
|
8232
|
+
}
|
|
8233
|
+
),
|
|
8234
|
+
/* @__PURE__ */ jsx(
|
|
8235
|
+
"label",
|
|
8236
|
+
{
|
|
8237
|
+
htmlFor: inputId,
|
|
8238
|
+
className: cn(
|
|
8239
|
+
"pointer-events-none absolute left-3",
|
|
8240
|
+
"origin-[0_50%] transition-all duration-150 ease-out",
|
|
8241
|
+
"text-muted-foreground",
|
|
8242
|
+
// Rest: centered vertically inside the field, full size
|
|
8243
|
+
!isFloated && "top-1/2 -translate-y-1/2 text-base",
|
|
8244
|
+
// Floated: tucked into the top with a small subtle background
|
|
8245
|
+
isFloated && "top-1.5 text-[11px] uppercase tracking-wider text-foreground/85",
|
|
8246
|
+
error && "text-destructive"
|
|
8247
|
+
),
|
|
8248
|
+
children: label
|
|
8249
|
+
}
|
|
8250
|
+
)
|
|
8251
|
+
] }),
|
|
8252
|
+
error ? /* @__PURE__ */ jsx("p", { id: errorId, className: "text-xs text-destructive", children: error }) : hint ? /* @__PURE__ */ jsx("p", { id: hintId, className: "text-xs text-muted-foreground", children: hint }) : null
|
|
8253
|
+
] });
|
|
8254
|
+
}
|
|
8255
|
+
);
|
|
8256
|
+
FloatingLabelInput.displayName = "FloatingLabelInput";
|
|
8257
|
+
function FormField(props) {
|
|
8258
|
+
return /* @__PURE__ */ jsx(Controller, { ...props });
|
|
8259
|
+
}
|
|
8260
|
+
function FormItem({ className, ...props }) {
|
|
8261
|
+
return /* @__PURE__ */ jsx("div", { className: cn("flex flex-col gap-1.5", className), ...props });
|
|
8262
|
+
}
|
|
8263
|
+
var FormLabel = React136__default.forwardRef(
|
|
7973
8264
|
({ className, error, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
7974
8265
|
"label",
|
|
7975
8266
|
{
|
|
@@ -7983,14 +8274,24 @@ var FormLabel2 = React131__default.forwardRef(
|
|
|
7983
8274
|
}
|
|
7984
8275
|
)
|
|
7985
8276
|
);
|
|
7986
|
-
|
|
7987
|
-
var
|
|
8277
|
+
FormLabel.displayName = "FormLabel";
|
|
8278
|
+
var FormControl = React136__default.forwardRef(
|
|
7988
8279
|
({ ...props }, ref) => {
|
|
7989
8280
|
const id = useId();
|
|
7990
8281
|
return /* @__PURE__ */ jsx("div", { ref, id, ...props });
|
|
7991
8282
|
}
|
|
7992
8283
|
);
|
|
7993
|
-
|
|
8284
|
+
FormControl.displayName = "FormControl";
|
|
8285
|
+
function FormDescription({ className, ...props }) {
|
|
8286
|
+
return /* @__PURE__ */ jsx("p", { className: cn("text-xs text-[hsl(var(--muted-foreground))]", className), ...props });
|
|
8287
|
+
}
|
|
8288
|
+
function FormMessage({ className, children, name }) {
|
|
8289
|
+
const { formState } = useFormContext();
|
|
8290
|
+
const error = name ? formState.errors[name] : void 0;
|
|
8291
|
+
const message = error?.message ? String(error.message) : children;
|
|
8292
|
+
if (!message) return null;
|
|
8293
|
+
return /* @__PURE__ */ jsx("p", { className: cn("text-xs text-[hsl(var(--destructive))]", className), children: message });
|
|
8294
|
+
}
|
|
7994
8295
|
function ObjectField({
|
|
7995
8296
|
title,
|
|
7996
8297
|
description,
|
|
@@ -8031,7 +8332,7 @@ function getStrength(value) {
|
|
|
8031
8332
|
if (score <= 3) return { level: "medium", width: "w-2/3", color: "bg-yellow-500" };
|
|
8032
8333
|
return { level: "strong", width: "w-full", color: "bg-green-500" };
|
|
8033
8334
|
}
|
|
8034
|
-
var PasswordInput =
|
|
8335
|
+
var PasswordInput = React136__default.forwardRef(
|
|
8035
8336
|
({ className, strength, ...props }, ref) => {
|
|
8036
8337
|
const [show, setShow] = useState(false);
|
|
8037
8338
|
const value = String(props.value ?? "");
|
|
@@ -8066,7 +8367,7 @@ var PasswordInput = React131__default.forwardRef(
|
|
|
8066
8367
|
}
|
|
8067
8368
|
);
|
|
8068
8369
|
PasswordInput.displayName = "PasswordInput";
|
|
8069
|
-
var SearchInput =
|
|
8370
|
+
var SearchInput = React136__default.forwardRef(
|
|
8070
8371
|
({ className, shortcut, onClear, onChange, value: valueProp, defaultValue, ...props }, ref) => {
|
|
8071
8372
|
const [internalValue, setInternalValue] = useState(defaultValue ?? "");
|
|
8072
8373
|
const isControlled = valueProp !== void 0;
|
|
@@ -8129,7 +8430,7 @@ function StepForm({ steps, onSubmit, children, className }) {
|
|
|
8129
8430
|
isFirst: currentStep === 0,
|
|
8130
8431
|
isLast: currentStep === totalSteps - 1
|
|
8131
8432
|
};
|
|
8132
|
-
const childArray =
|
|
8433
|
+
const childArray = React136__default.Children.toArray(children);
|
|
8133
8434
|
const currentChild = childArray[currentStep];
|
|
8134
8435
|
return /* @__PURE__ */ jsx(StepFormContext.Provider, { value: ctx, children: /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col gap-6", className), children: [
|
|
8135
8436
|
/* @__PURE__ */ jsx(StepIndicator, { steps, currentStep }),
|
|
@@ -8138,7 +8439,7 @@ function StepForm({ steps, onSubmit, children, className }) {
|
|
|
8138
8439
|
] }) });
|
|
8139
8440
|
}
|
|
8140
8441
|
function StepIndicator({ steps, currentStep }) {
|
|
8141
|
-
return /* @__PURE__ */ jsx("div", { className: "flex items-center gap-2", children: steps.map((label, i) => /* @__PURE__ */ jsxs(
|
|
8442
|
+
return /* @__PURE__ */ jsx("div", { className: "flex items-center gap-2", children: steps.map((label, i) => /* @__PURE__ */ jsxs(React136__default.Fragment, { children: [
|
|
8142
8443
|
i > 0 && /* @__PURE__ */ jsx("div", { className: cn("h-px flex-1 bg-[hsl(var(--border))]", i <= currentStep && "bg-[hsl(var(--primary))]") }),
|
|
8143
8444
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-1", children: [
|
|
8144
8445
|
/* @__PURE__ */ jsx("div", { className: cn(
|
|
@@ -8167,7 +8468,7 @@ function StepFormNavigation({ onSubmit, submitLabel = "Submit" }) {
|
|
|
8167
8468
|
isLast ? /* @__PURE__ */ jsx(Button, { type: "button", onClick: onSubmit, children: submitLabel }) : /* @__PURE__ */ jsx(Button, { type: "button", onClick: next, children: "Next" })
|
|
8168
8469
|
] });
|
|
8169
8470
|
}
|
|
8170
|
-
var Tags =
|
|
8471
|
+
var Tags = React136__default.forwardRef(
|
|
8171
8472
|
({
|
|
8172
8473
|
value: valueProp,
|
|
8173
8474
|
defaultValue,
|
|
@@ -8183,25 +8484,25 @@ var Tags = React131__default.forwardRef(
|
|
|
8183
8484
|
...props
|
|
8184
8485
|
}, ref) => {
|
|
8185
8486
|
const isControlled = valueProp !== void 0;
|
|
8186
|
-
const [internal, setInternal] =
|
|
8487
|
+
const [internal, setInternal] = React136__default.useState(defaultValue ?? []);
|
|
8187
8488
|
const tags = isControlled ? valueProp : internal;
|
|
8188
|
-
const [input, setInput] =
|
|
8189
|
-
const [error, setError] =
|
|
8190
|
-
const [focused, setFocused] =
|
|
8191
|
-
const [activeIndex, setActiveIndex] =
|
|
8192
|
-
const inputRef =
|
|
8193
|
-
const containerRef =
|
|
8194
|
-
|
|
8489
|
+
const [input, setInput] = React136__default.useState("");
|
|
8490
|
+
const [error, setError] = React136__default.useState(null);
|
|
8491
|
+
const [focused, setFocused] = React136__default.useState(false);
|
|
8492
|
+
const [activeIndex, setActiveIndex] = React136__default.useState(0);
|
|
8493
|
+
const inputRef = React136__default.useRef(null);
|
|
8494
|
+
const containerRef = React136__default.useRef(null);
|
|
8495
|
+
React136__default.useImperativeHandle(ref, () => containerRef.current);
|
|
8195
8496
|
const atMax = maxTags !== void 0 && tags.length >= maxTags;
|
|
8196
8497
|
const inputDisabled = disabled || atMax;
|
|
8197
|
-
const commit =
|
|
8498
|
+
const commit = React136__default.useCallback(
|
|
8198
8499
|
(next) => {
|
|
8199
8500
|
if (!isControlled) setInternal(next);
|
|
8200
8501
|
onValueChange?.(next);
|
|
8201
8502
|
},
|
|
8202
8503
|
[isControlled, onValueChange]
|
|
8203
8504
|
);
|
|
8204
|
-
const addTag =
|
|
8505
|
+
const addTag = React136__default.useCallback(
|
|
8205
8506
|
(raw) => {
|
|
8206
8507
|
const tag = raw.trim();
|
|
8207
8508
|
if (!tag) return false;
|
|
@@ -8227,20 +8528,20 @@ var Tags = React131__default.forwardRef(
|
|
|
8227
8528
|
},
|
|
8228
8529
|
[tags, allowDuplicates, validate, atMax, commit]
|
|
8229
8530
|
);
|
|
8230
|
-
const removeTag =
|
|
8531
|
+
const removeTag = React136__default.useCallback(
|
|
8231
8532
|
(index) => {
|
|
8232
8533
|
commit(tags.filter((_, i) => i !== index));
|
|
8233
8534
|
setError(null);
|
|
8234
8535
|
},
|
|
8235
8536
|
[tags, commit]
|
|
8236
8537
|
);
|
|
8237
|
-
const filteredSuggestions =
|
|
8538
|
+
const filteredSuggestions = React136__default.useMemo(() => {
|
|
8238
8539
|
if (!suggestions || !input.trim()) return [];
|
|
8239
8540
|
const q = input.trim().toLowerCase();
|
|
8240
8541
|
return suggestions.filter((s) => s.toLowerCase().includes(q)).filter((s) => allowDuplicates || !tags.includes(s)).slice(0, 8);
|
|
8241
8542
|
}, [suggestions, input, tags, allowDuplicates]);
|
|
8242
8543
|
const showPopover = focused && !inputDisabled && filteredSuggestions.length > 0;
|
|
8243
|
-
|
|
8544
|
+
React136__default.useEffect(() => {
|
|
8244
8545
|
if (activeIndex >= filteredSuggestions.length) setActiveIndex(0);
|
|
8245
8546
|
}, [filteredSuggestions.length, activeIndex]);
|
|
8246
8547
|
const handleKeyDown = (e) => {
|
|
@@ -8382,7 +8683,7 @@ var Tags = React131__default.forwardRef(
|
|
|
8382
8683
|
}
|
|
8383
8684
|
);
|
|
8384
8685
|
Tags.displayName = "Tags";
|
|
8385
|
-
var AppShellCtx =
|
|
8686
|
+
var AppShellCtx = React136__default.createContext({
|
|
8386
8687
|
collapsed: false,
|
|
8387
8688
|
setCollapsed: () => {
|
|
8388
8689
|
},
|
|
@@ -8390,12 +8691,12 @@ var AppShellCtx = React131__default.createContext({
|
|
|
8390
8691
|
setMobileOpen: () => {
|
|
8391
8692
|
}
|
|
8392
8693
|
});
|
|
8393
|
-
var useAppShell = () =>
|
|
8394
|
-
var AppShell =
|
|
8694
|
+
var useAppShell = () => React136__default.useContext(AppShellCtx);
|
|
8695
|
+
var AppShell = React136__default.forwardRef(
|
|
8395
8696
|
({ className, defaultCollapsed = false, children, ...props }, ref) => {
|
|
8396
|
-
const [collapsed, setCollapsed] =
|
|
8397
|
-
const [mobileOpen, setMobileOpen] =
|
|
8398
|
-
|
|
8697
|
+
const [collapsed, setCollapsed] = React136__default.useState(defaultCollapsed);
|
|
8698
|
+
const [mobileOpen, setMobileOpen] = React136__default.useState(false);
|
|
8699
|
+
React136__default.useEffect(() => {
|
|
8399
8700
|
const handleClick = (e) => {
|
|
8400
8701
|
const target = e.target;
|
|
8401
8702
|
if (target.closest("a[href]") || target.closest("[data-mobile-close]")) {
|
|
@@ -8426,7 +8727,7 @@ var AppShell = React131__default.forwardRef(
|
|
|
8426
8727
|
}
|
|
8427
8728
|
);
|
|
8428
8729
|
AppShell.displayName = "AppShell";
|
|
8429
|
-
var AppShellSidebar =
|
|
8730
|
+
var AppShellSidebar = React136__default.forwardRef(
|
|
8430
8731
|
({ className, ...props }, ref) => {
|
|
8431
8732
|
const { mobileOpen } = useAppShell();
|
|
8432
8733
|
return /* @__PURE__ */ jsx(
|
|
@@ -8447,11 +8748,11 @@ var AppShellSidebar = React131__default.forwardRef(
|
|
|
8447
8748
|
}
|
|
8448
8749
|
);
|
|
8449
8750
|
AppShellSidebar.displayName = "AppShellSidebar";
|
|
8450
|
-
var AppShellMain =
|
|
8751
|
+
var AppShellMain = React136__default.forwardRef(
|
|
8451
8752
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex-1 min-w-0 flex flex-col overflow-auto", className), ...props })
|
|
8452
8753
|
);
|
|
8453
8754
|
AppShellMain.displayName = "AppShellMain";
|
|
8454
|
-
var MobileSidebarTrigger =
|
|
8755
|
+
var MobileSidebarTrigger = React136__default.forwardRef(
|
|
8455
8756
|
({ className, ...props }, ref) => {
|
|
8456
8757
|
const { mobileOpen, setMobileOpen } = useAppShell();
|
|
8457
8758
|
return /* @__PURE__ */ jsx(
|
|
@@ -8473,21 +8774,21 @@ var MobileSidebarTrigger = React131__default.forwardRef(
|
|
|
8473
8774
|
}
|
|
8474
8775
|
);
|
|
8475
8776
|
MobileSidebarTrigger.displayName = "MobileSidebarTrigger";
|
|
8476
|
-
var
|
|
8777
|
+
var sizeMap5 = {
|
|
8477
8778
|
sm: "max-w-screen-sm",
|
|
8478
8779
|
md: "max-w-screen-md",
|
|
8479
8780
|
lg: "max-w-screen-lg",
|
|
8480
8781
|
xl: "max-w-screen-xl",
|
|
8481
8782
|
full: "max-w-full"
|
|
8482
8783
|
};
|
|
8483
|
-
var Container =
|
|
8784
|
+
var Container = React136__default.forwardRef(
|
|
8484
8785
|
({ className, size = "lg", noPadding = false, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
8485
8786
|
"div",
|
|
8486
8787
|
{
|
|
8487
8788
|
ref,
|
|
8488
8789
|
className: cn(
|
|
8489
8790
|
"mx-auto w-full",
|
|
8490
|
-
|
|
8791
|
+
sizeMap5[size],
|
|
8491
8792
|
!noPadding && "px-4 sm:px-6 lg:px-8",
|
|
8492
8793
|
className
|
|
8493
8794
|
),
|
|
@@ -8496,7 +8797,7 @@ var Container = React131__default.forwardRef(
|
|
|
8496
8797
|
)
|
|
8497
8798
|
);
|
|
8498
8799
|
Container.displayName = "Container";
|
|
8499
|
-
var Navbar =
|
|
8800
|
+
var Navbar = React136__default.forwardRef(
|
|
8500
8801
|
({ className, sticky = false, border = true, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
8501
8802
|
"nav",
|
|
8502
8803
|
{
|
|
@@ -8512,7 +8813,7 @@ var Navbar = React131__default.forwardRef(
|
|
|
8512
8813
|
)
|
|
8513
8814
|
);
|
|
8514
8815
|
Navbar.displayName = "Navbar";
|
|
8515
|
-
var NavbarBrand =
|
|
8816
|
+
var NavbarBrand = React136__default.forwardRef(
|
|
8516
8817
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex items-center gap-2 px-4 shrink-0", className), ...props })
|
|
8517
8818
|
);
|
|
8518
8819
|
NavbarBrand.displayName = "NavbarBrand";
|
|
@@ -8521,7 +8822,7 @@ var alignMap = {
|
|
|
8521
8822
|
center: "justify-center flex-1",
|
|
8522
8823
|
end: "justify-end ml-auto"
|
|
8523
8824
|
};
|
|
8524
|
-
var NavbarContent =
|
|
8825
|
+
var NavbarContent = React136__default.forwardRef(
|
|
8525
8826
|
({ className, align = "start", ...props }, ref) => /* @__PURE__ */ jsx(
|
|
8526
8827
|
"div",
|
|
8527
8828
|
{
|
|
@@ -8532,11 +8833,11 @@ var NavbarContent = React131__default.forwardRef(
|
|
|
8532
8833
|
)
|
|
8533
8834
|
);
|
|
8534
8835
|
NavbarContent.displayName = "NavbarContent";
|
|
8535
|
-
var NavbarItem =
|
|
8836
|
+
var NavbarItem = React136__default.forwardRef(
|
|
8536
8837
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex items-center", className), ...props })
|
|
8537
8838
|
);
|
|
8538
8839
|
NavbarItem.displayName = "NavbarItem";
|
|
8539
|
-
var Page =
|
|
8840
|
+
var Page = React136__default.forwardRef(
|
|
8540
8841
|
({ className, maxWidth, style, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
8541
8842
|
"div",
|
|
8542
8843
|
{
|
|
@@ -8548,7 +8849,7 @@ var Page = React131__default.forwardRef(
|
|
|
8548
8849
|
)
|
|
8549
8850
|
);
|
|
8550
8851
|
Page.displayName = "Page";
|
|
8551
|
-
var PageHeader =
|
|
8852
|
+
var PageHeader = React136__default.forwardRef(
|
|
8552
8853
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
8553
8854
|
"div",
|
|
8554
8855
|
{
|
|
@@ -8559,7 +8860,7 @@ var PageHeader = React131__default.forwardRef(
|
|
|
8559
8860
|
)
|
|
8560
8861
|
);
|
|
8561
8862
|
PageHeader.displayName = "PageHeader";
|
|
8562
|
-
var PageTitle =
|
|
8863
|
+
var PageTitle = React136__default.forwardRef(
|
|
8563
8864
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
8564
8865
|
"h1",
|
|
8565
8866
|
{
|
|
@@ -8570,19 +8871,19 @@ var PageTitle = React131__default.forwardRef(
|
|
|
8570
8871
|
)
|
|
8571
8872
|
);
|
|
8572
8873
|
PageTitle.displayName = "PageTitle";
|
|
8573
|
-
var PageDescription =
|
|
8874
|
+
var PageDescription = React136__default.forwardRef(
|
|
8574
8875
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx("p", { ref, className: cn("text-sm text-[hsl(var(--muted-foreground))] mt-1", className), ...props })
|
|
8575
8876
|
);
|
|
8576
8877
|
PageDescription.displayName = "PageDescription";
|
|
8577
|
-
var PageActions =
|
|
8878
|
+
var PageActions = React136__default.forwardRef(
|
|
8578
8879
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex items-center gap-2 shrink-0", className), ...props })
|
|
8579
8880
|
);
|
|
8580
8881
|
PageActions.displayName = "PageActions";
|
|
8581
|
-
var PageBody =
|
|
8882
|
+
var PageBody = React136__default.forwardRef(
|
|
8582
8883
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex-1 p-6 flex flex-col gap-6", className), ...props })
|
|
8583
8884
|
);
|
|
8584
8885
|
PageBody.displayName = "PageBody";
|
|
8585
|
-
var ResizeBox =
|
|
8886
|
+
var ResizeBox = React136__default.forwardRef(
|
|
8586
8887
|
({ className, resize = "both", minWidth = 100, minHeight = 100, style, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
8587
8888
|
"div",
|
|
8588
8889
|
{
|
|
@@ -8599,7 +8900,7 @@ var HandleIcon = () => /* @__PURE__ */ jsxs("svg", { width: "10", height: "10",
|
|
|
8599
8900
|
/* @__PURE__ */ jsx("path", { d: "M8 5L5 8", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" }),
|
|
8600
8901
|
/* @__PURE__ */ jsx("path", { d: "M8 8L8 8", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" })
|
|
8601
8902
|
] });
|
|
8602
|
-
var ResizeHandle =
|
|
8903
|
+
var ResizeHandle = React136__default.forwardRef(
|
|
8603
8904
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
8604
8905
|
"div",
|
|
8605
8906
|
{
|
|
@@ -8615,16 +8916,16 @@ var ResizeHandle = React131__default.forwardRef(
|
|
|
8615
8916
|
)
|
|
8616
8917
|
);
|
|
8617
8918
|
ResizeHandle.displayName = "ResizeHandle";
|
|
8618
|
-
var SidebarCtx2 =
|
|
8619
|
-
var useSidebarCtx = () =>
|
|
8919
|
+
var SidebarCtx2 = React136__default.createContext({ collapsed: false });
|
|
8920
|
+
var useSidebarCtx = () => React136__default.useContext(SidebarCtx2);
|
|
8620
8921
|
var makeSlot = (name, cls) => {
|
|
8621
|
-
const C =
|
|
8922
|
+
const C = React136__default.forwardRef(
|
|
8622
8923
|
({ className, ...p }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn(cls, className), ...p })
|
|
8623
8924
|
);
|
|
8624
8925
|
C.displayName = name;
|
|
8625
8926
|
return C;
|
|
8626
8927
|
};
|
|
8627
|
-
var Sidebar2 =
|
|
8928
|
+
var Sidebar2 = React136__default.forwardRef(
|
|
8628
8929
|
({ className, collapsed = false, onCollapse, width = "240px", style, children, ...props }, ref) => /* @__PURE__ */ jsx(SidebarCtx2.Provider, { value: { collapsed }, children: /* @__PURE__ */ jsxs(
|
|
8629
8930
|
"div",
|
|
8630
8931
|
{
|
|
@@ -8652,7 +8953,7 @@ var SidebarContent = makeSlot("SidebarContent", "flex-1 overflow-y-auto py-2");
|
|
|
8652
8953
|
var SidebarFooter2 = makeSlot("SidebarFooter", "px-3 py-3 border-t border-[hsl(var(--border))] shrink-0");
|
|
8653
8954
|
var SidebarGroup = makeSlot("SidebarGroup", "mb-2");
|
|
8654
8955
|
var SidebarSeparator2 = makeSlot("SidebarSeparator", "h-px bg-[hsl(var(--border))] mx-3 my-2");
|
|
8655
|
-
var SidebarGroupLabel =
|
|
8956
|
+
var SidebarGroupLabel = React136__default.forwardRef(
|
|
8656
8957
|
({ className, ...props }, ref) => {
|
|
8657
8958
|
const { collapsed } = useSidebarCtx();
|
|
8658
8959
|
return /* @__PURE__ */ jsx(
|
|
@@ -8666,7 +8967,7 @@ var SidebarGroupLabel = React131__default.forwardRef(
|
|
|
8666
8967
|
}
|
|
8667
8968
|
);
|
|
8668
8969
|
SidebarGroupLabel.displayName = "SidebarGroupLabel";
|
|
8669
|
-
var SidebarItem2 =
|
|
8970
|
+
var SidebarItem2 = React136__default.forwardRef(
|
|
8670
8971
|
({ className, icon, label, active, href, badge, onClick, ...props }, ref) => {
|
|
8671
8972
|
const { collapsed } = useSidebarCtx();
|
|
8672
8973
|
const cls = cn(
|
|
@@ -8685,11 +8986,11 @@ var SidebarItem2 = React131__default.forwardRef(
|
|
|
8685
8986
|
}
|
|
8686
8987
|
);
|
|
8687
8988
|
SidebarItem2.displayName = "SidebarItem";
|
|
8688
|
-
var SplitPage =
|
|
8989
|
+
var SplitPage = React136__default.forwardRef(
|
|
8689
8990
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex h-full w-full overflow-hidden", className), ...props })
|
|
8690
8991
|
);
|
|
8691
8992
|
SplitPage.displayName = "SplitPage";
|
|
8692
|
-
var SplitPageList =
|
|
8993
|
+
var SplitPageList = React136__default.forwardRef(
|
|
8693
8994
|
({ className, width = "320px", style, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
8694
8995
|
"div",
|
|
8695
8996
|
{
|
|
@@ -8701,7 +9002,7 @@ var SplitPageList = React131__default.forwardRef(
|
|
|
8701
9002
|
)
|
|
8702
9003
|
);
|
|
8703
9004
|
SplitPageList.displayName = "SplitPageList";
|
|
8704
|
-
var SplitPageDetail =
|
|
9005
|
+
var SplitPageDetail = React136__default.forwardRef(
|
|
8705
9006
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex-1 min-w-0 h-full overflow-auto", className), ...props })
|
|
8706
9007
|
);
|
|
8707
9008
|
SplitPageDetail.displayName = "SplitPageDetail";
|
|
@@ -8726,7 +9027,7 @@ var justifyMap = {
|
|
|
8726
9027
|
around: "justify-around",
|
|
8727
9028
|
evenly: "justify-evenly"
|
|
8728
9029
|
};
|
|
8729
|
-
var Stack =
|
|
9030
|
+
var Stack = React136__default.forwardRef(
|
|
8730
9031
|
({ className, gap, direction = "col", align, justify, wrap, style, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
8731
9032
|
"div",
|
|
8732
9033
|
{
|
|
@@ -8745,15 +9046,15 @@ var Stack = React131__default.forwardRef(
|
|
|
8745
9046
|
)
|
|
8746
9047
|
);
|
|
8747
9048
|
Stack.displayName = "Stack";
|
|
8748
|
-
var HStack =
|
|
9049
|
+
var HStack = React136__default.forwardRef(
|
|
8749
9050
|
(props, ref) => /* @__PURE__ */ jsx(Stack, { ref, direction: "row", ...props })
|
|
8750
9051
|
);
|
|
8751
9052
|
HStack.displayName = "HStack";
|
|
8752
|
-
var VStack =
|
|
9053
|
+
var VStack = React136__default.forwardRef(
|
|
8753
9054
|
(props, ref) => /* @__PURE__ */ jsx(Stack, { ref, direction: "col", ...props })
|
|
8754
9055
|
);
|
|
8755
9056
|
VStack.displayName = "VStack";
|
|
8756
|
-
var PageLayout =
|
|
9057
|
+
var PageLayout = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
8757
9058
|
"div",
|
|
8758
9059
|
{
|
|
8759
9060
|
ref,
|
|
@@ -8763,7 +9064,7 @@ var PageLayout = React131__default.forwardRef(({ className, ...props }, ref) =>
|
|
|
8763
9064
|
}
|
|
8764
9065
|
));
|
|
8765
9066
|
PageLayout.displayName = "PageLayout";
|
|
8766
|
-
var PageHeader2 =
|
|
9067
|
+
var PageHeader2 = React136__default.forwardRef(
|
|
8767
9068
|
({ className, title, description, actions, back, children }, ref) => /* @__PURE__ */ jsxs(
|
|
8768
9069
|
"div",
|
|
8769
9070
|
{
|
|
@@ -8785,7 +9086,7 @@ var PageHeader2 = React131__default.forwardRef(
|
|
|
8785
9086
|
)
|
|
8786
9087
|
);
|
|
8787
9088
|
PageHeader2.displayName = "PageHeader";
|
|
8788
|
-
var PageContainer =
|
|
9089
|
+
var PageContainer = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
8789
9090
|
"div",
|
|
8790
9091
|
{
|
|
8791
9092
|
ref,
|
|
@@ -8799,7 +9100,7 @@ var PageContainer = React131__default.forwardRef(({ className, ...props }, ref)
|
|
|
8799
9100
|
}
|
|
8800
9101
|
));
|
|
8801
9102
|
PageContainer.displayName = "PageContainer";
|
|
8802
|
-
var PageMain =
|
|
9103
|
+
var PageMain = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
8803
9104
|
"div",
|
|
8804
9105
|
{
|
|
8805
9106
|
ref,
|
|
@@ -9245,7 +9546,7 @@ var directionClasses = {
|
|
|
9245
9546
|
bl: "bg-gradient-to-bl",
|
|
9246
9547
|
l: "bg-gradient-to-l"
|
|
9247
9548
|
};
|
|
9248
|
-
var GradientHeading =
|
|
9549
|
+
var GradientHeading = React136__default.forwardRef(
|
|
9249
9550
|
({
|
|
9250
9551
|
as: Tag = "h2",
|
|
9251
9552
|
preset = "primary",
|
|
@@ -9291,7 +9592,7 @@ function formatNumber(value, decimals, format3, locale) {
|
|
|
9291
9592
|
}
|
|
9292
9593
|
return decimals > 0 ? value.toFixed(decimals) : String(Math.round(value));
|
|
9293
9594
|
}
|
|
9294
|
-
var AnimatedNumber =
|
|
9595
|
+
var AnimatedNumber = React136__default.forwardRef(
|
|
9295
9596
|
({
|
|
9296
9597
|
value,
|
|
9297
9598
|
from = 0,
|
|
@@ -9311,7 +9612,7 @@ var AnimatedNumber = React131__default.forwardRef(
|
|
|
9311
9612
|
const startTimeRef = useRef(null);
|
|
9312
9613
|
const containerRef = useRef(null);
|
|
9313
9614
|
const hasStarted = useRef(false);
|
|
9314
|
-
const runAnimation =
|
|
9615
|
+
const runAnimation = React136__default.useCallback(
|
|
9315
9616
|
(startFrom) => {
|
|
9316
9617
|
if (rafRef.current !== null) cancelAnimationFrame(rafRef.current);
|
|
9317
9618
|
startTimeRef.current = null;
|
|
@@ -9423,7 +9724,7 @@ function TextReveal({
|
|
|
9423
9724
|
}
|
|
9424
9725
|
}, [autoStart, delay]);
|
|
9425
9726
|
const units = mode === "chars" ? text.split("") : mode === "words" ? text.split(" ") : [text];
|
|
9426
|
-
return
|
|
9727
|
+
return React136__default.createElement(
|
|
9427
9728
|
Tag,
|
|
9428
9729
|
{
|
|
9429
9730
|
ref: containerRef,
|
|
@@ -9503,7 +9804,7 @@ function Typewriter({
|
|
|
9503
9804
|
if (timerRef.current) clearTimeout(timerRef.current);
|
|
9504
9805
|
};
|
|
9505
9806
|
}, [display, phase, wordIdx, words, typeSpeed, deleteSpeed, pauseAfter, loop]);
|
|
9506
|
-
return
|
|
9807
|
+
return React136__default.createElement(
|
|
9507
9808
|
Tag,
|
|
9508
9809
|
{
|
|
9509
9810
|
"data-slot": "typewriter",
|
|
@@ -9542,9 +9843,9 @@ var headingVariants = cva("font-heading tracking-tight text-foreground", {
|
|
|
9542
9843
|
},
|
|
9543
9844
|
defaultVariants: { size: "lg", tone: "default" }
|
|
9544
9845
|
});
|
|
9545
|
-
var Heading =
|
|
9846
|
+
var Heading = React136__default.forwardRef(
|
|
9546
9847
|
({ as: Tag = "h2", size, tone, className, ...props }, ref) => {
|
|
9547
|
-
return
|
|
9848
|
+
return React136__default.createElement(Tag, {
|
|
9548
9849
|
ref,
|
|
9549
9850
|
"data-slot": "heading",
|
|
9550
9851
|
className: cn(headingVariants({ size, tone }), className),
|
|
@@ -9574,9 +9875,9 @@ var bodyVariants = cva("font-sans", {
|
|
|
9574
9875
|
},
|
|
9575
9876
|
defaultVariants: { size: "md", tone: "default", weight: "normal" }
|
|
9576
9877
|
});
|
|
9577
|
-
var Body =
|
|
9878
|
+
var Body = React136__default.forwardRef(
|
|
9578
9879
|
({ as: Tag = "p", size, tone, weight, className, ...props }, ref) => {
|
|
9579
|
-
return
|
|
9880
|
+
return React136__default.createElement(Tag, {
|
|
9580
9881
|
ref,
|
|
9581
9882
|
"data-slot": "body",
|
|
9582
9883
|
className: cn(bodyVariants({ size, tone, weight }), className),
|
|
@@ -9595,7 +9896,7 @@ var captionVariants = cva("font-sans text-[11px] font-semibold uppercase trackin
|
|
|
9595
9896
|
},
|
|
9596
9897
|
defaultVariants: { tone: "default" }
|
|
9597
9898
|
});
|
|
9598
|
-
var Caption =
|
|
9899
|
+
var Caption = React136__default.forwardRef(
|
|
9599
9900
|
({ tone, className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
9600
9901
|
"span",
|
|
9601
9902
|
{
|
|
@@ -9607,7 +9908,7 @@ var Caption = React131__default.forwardRef(
|
|
|
9607
9908
|
)
|
|
9608
9909
|
);
|
|
9609
9910
|
Caption.displayName = "Caption";
|
|
9610
|
-
var Code3 =
|
|
9911
|
+
var Code3 = React136__default.forwardRef(
|
|
9611
9912
|
({ block, className, children, ...props }, ref) => {
|
|
9612
9913
|
if (block) {
|
|
9613
9914
|
return /* @__PURE__ */ jsx(
|
|
@@ -9659,7 +9960,7 @@ var presetStyles = {
|
|
|
9659
9960
|
},
|
|
9660
9961
|
custom: {}
|
|
9661
9962
|
};
|
|
9662
|
-
var GradientBackground =
|
|
9963
|
+
var GradientBackground = React136__default.forwardRef(
|
|
9663
9964
|
({
|
|
9664
9965
|
fixed = false,
|
|
9665
9966
|
preset = "slate",
|
|
@@ -9718,7 +10019,7 @@ var DEFAULT_COLORS4 = [
|
|
|
9718
10019
|
"hsl(280 100% 70% / 0.25)",
|
|
9719
10020
|
"hsl(217 33% 17% / 0.4)"
|
|
9720
10021
|
];
|
|
9721
|
-
var AnimatedGradient =
|
|
10022
|
+
var AnimatedGradient = React136__default.forwardRef(
|
|
9722
10023
|
({
|
|
9723
10024
|
colors = DEFAULT_COLORS4,
|
|
9724
10025
|
speed = 1,
|
|
@@ -9837,7 +10138,7 @@ var AnimatedGradient = React131__default.forwardRef(
|
|
|
9837
10138
|
}
|
|
9838
10139
|
);
|
|
9839
10140
|
AnimatedGradient.displayName = "AnimatedGradient";
|
|
9840
|
-
var DottedBackground =
|
|
10141
|
+
var DottedBackground = React136__default.forwardRef(
|
|
9841
10142
|
({
|
|
9842
10143
|
color,
|
|
9843
10144
|
dotSize = 1,
|
|
@@ -9884,7 +10185,7 @@ var DottedBackground = React131__default.forwardRef(
|
|
|
9884
10185
|
}
|
|
9885
10186
|
);
|
|
9886
10187
|
DottedBackground.displayName = "DottedBackground";
|
|
9887
|
-
var NoiseBackground =
|
|
10188
|
+
var NoiseBackground = React136__default.forwardRef(
|
|
9888
10189
|
({
|
|
9889
10190
|
opacity = 0.04,
|
|
9890
10191
|
frequency = 0.65,
|
|
@@ -9980,7 +10281,7 @@ var DEFAULT_COLORS5 = [
|
|
|
9980
10281
|
[0.55, 0.3, 0.95]
|
|
9981
10282
|
// chart-3 violet
|
|
9982
10283
|
];
|
|
9983
|
-
var HeroShaderA =
|
|
10284
|
+
var HeroShaderA = React136__default.forwardRef(
|
|
9984
10285
|
({
|
|
9985
10286
|
className,
|
|
9986
10287
|
colors = DEFAULT_COLORS5,
|
|
@@ -9994,7 +10295,7 @@ var HeroShaderA = React131__default.forwardRef(
|
|
|
9994
10295
|
const wrapRef = useRef(null);
|
|
9995
10296
|
const canvasRef = useRef(null);
|
|
9996
10297
|
const fallbackRef = useRef(false);
|
|
9997
|
-
|
|
10298
|
+
React136__default.useImperativeHandle(ref, () => wrapRef.current);
|
|
9998
10299
|
useEffect(() => {
|
|
9999
10300
|
if (typeof window === "undefined") return;
|
|
10000
10301
|
const reduceMotion = window.matchMedia("(prefers-reduced-motion: reduce)").matches;
|
|
@@ -10131,7 +10432,7 @@ var HeroShaderA = React131__default.forwardRef(
|
|
|
10131
10432
|
}
|
|
10132
10433
|
);
|
|
10133
10434
|
HeroShaderA.displayName = "HeroShaderA";
|
|
10134
|
-
var ScrollHeader =
|
|
10435
|
+
var ScrollHeader = React136__default.forwardRef(
|
|
10135
10436
|
({
|
|
10136
10437
|
title,
|
|
10137
10438
|
subtitle,
|
|
@@ -10218,7 +10519,7 @@ var DEFAULT_TRANSITION = {
|
|
|
10218
10519
|
ease: [0.16, 1, 0.3, 1]
|
|
10219
10520
|
// ease-out-expo (BezierDefinition)
|
|
10220
10521
|
};
|
|
10221
|
-
var FadeIn =
|
|
10522
|
+
var FadeIn = React136__default.forwardRef(
|
|
10222
10523
|
({ delay = 0, duration, children, ...props }, ref) => {
|
|
10223
10524
|
const transition = {
|
|
10224
10525
|
...DEFAULT_TRANSITION,
|
|
@@ -10246,7 +10547,7 @@ var DIRECTION_PRESET_MAP = {
|
|
|
10246
10547
|
left: "slideLeft",
|
|
10247
10548
|
right: "slideRight"
|
|
10248
10549
|
};
|
|
10249
|
-
var SlideIn =
|
|
10550
|
+
var SlideIn = React136__default.forwardRef(
|
|
10250
10551
|
({ direction = "up", delay = 0, duration, children, ...props }, ref) => {
|
|
10251
10552
|
const preset = MOTION_PRESETS[DIRECTION_PRESET_MAP[direction]];
|
|
10252
10553
|
const transition = {
|
|
@@ -10269,7 +10570,7 @@ var SlideIn = React131__default.forwardRef(
|
|
|
10269
10570
|
}
|
|
10270
10571
|
);
|
|
10271
10572
|
SlideIn.displayName = "SlideIn";
|
|
10272
|
-
var ScaleIn =
|
|
10573
|
+
var ScaleIn = React136__default.forwardRef(
|
|
10273
10574
|
({ delay = 0, duration, children, ...props }, ref) => {
|
|
10274
10575
|
const transition = {
|
|
10275
10576
|
...DEFAULT_TRANSITION,
|
|
@@ -10333,16 +10634,16 @@ function Stagger({ staggerDelay = 0.05, preset = "fadeIn", children, className,
|
|
|
10333
10634
|
initial: "hidden",
|
|
10334
10635
|
animate: isInView ? "visible" : "hidden",
|
|
10335
10636
|
className,
|
|
10336
|
-
children:
|
|
10637
|
+
children: React136__default.Children.map(children, (child, i) => /* @__PURE__ */ jsx(motion.div, { variants: itemVariants, children: child }, i))
|
|
10337
10638
|
}
|
|
10338
10639
|
);
|
|
10339
10640
|
}
|
|
10340
|
-
var Morph =
|
|
10641
|
+
var Morph = React136__default.forwardRef(
|
|
10341
10642
|
({ layoutId, children, ...props }, ref) => /* @__PURE__ */ jsx(motion.div, { ref, layoutId, layout: true, ...props, children })
|
|
10342
10643
|
);
|
|
10343
10644
|
Morph.displayName = "Morph";
|
|
10344
10645
|
var rippleCounter = 0;
|
|
10345
|
-
var Ripple =
|
|
10646
|
+
var Ripple = React136__default.forwardRef(
|
|
10346
10647
|
({ color = "currentColor", duration = 0.6, children, style, ...props }, ref) => {
|
|
10347
10648
|
const [ripples, setRipples] = useState([]);
|
|
10348
10649
|
const handlePointerDown = useCallback(
|
|
@@ -10398,7 +10699,7 @@ var Ripple = React131__default.forwardRef(
|
|
|
10398
10699
|
}
|
|
10399
10700
|
);
|
|
10400
10701
|
Ripple.displayName = "Ripple";
|
|
10401
|
-
var Parallax =
|
|
10702
|
+
var Parallax = React136__default.forwardRef(
|
|
10402
10703
|
({ offset = 50, scrollRef, children, style, ...props }, ref) => {
|
|
10403
10704
|
const innerRef = useRef(null);
|
|
10404
10705
|
const resolvedRef = ref ?? innerRef;
|
|
@@ -10427,7 +10728,7 @@ function useLayoutId(key) {
|
|
|
10427
10728
|
function Transition({ show = true, children, mode = "wait" }) {
|
|
10428
10729
|
return /* @__PURE__ */ jsx(AnimatePresence, { mode, children: show ? children : null });
|
|
10429
10730
|
}
|
|
10430
|
-
var DataList =
|
|
10731
|
+
var DataList = React136__default.forwardRef(
|
|
10431
10732
|
({ divided = true, bordered = true, className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
10432
10733
|
"ul",
|
|
10433
10734
|
{
|
|
@@ -10444,7 +10745,7 @@ var DataList = React131__default.forwardRef(
|
|
|
10444
10745
|
)
|
|
10445
10746
|
);
|
|
10446
10747
|
DataList.displayName = "DataList";
|
|
10447
|
-
var DataListItem =
|
|
10748
|
+
var DataListItem = React136__default.forwardRef(
|
|
10448
10749
|
({ left, title, description, right, interactive, onSelect, className, children, ...props }, ref) => {
|
|
10449
10750
|
const clickable = interactive || !!onSelect;
|
|
10450
10751
|
return /* @__PURE__ */ jsxs(
|
|
@@ -10504,7 +10805,7 @@ function getWeekDays(date, weekStartsOn) {
|
|
|
10504
10805
|
const start = startOfWeek$1(date, { weekStartsOn });
|
|
10505
10806
|
return Array.from({ length: 7 }, (_, i) => addDays(start, i));
|
|
10506
10807
|
}
|
|
10507
|
-
var EventCalendar =
|
|
10808
|
+
var EventCalendar = React136__default.forwardRef(
|
|
10508
10809
|
({
|
|
10509
10810
|
events,
|
|
10510
10811
|
view: viewProp,
|
|
@@ -10519,20 +10820,20 @@ var EventCalendar = React131__default.forwardRef(
|
|
|
10519
10820
|
className,
|
|
10520
10821
|
...props
|
|
10521
10822
|
}, ref) => {
|
|
10522
|
-
const [internalView, setInternalView] =
|
|
10823
|
+
const [internalView, setInternalView] = React136__default.useState("month");
|
|
10523
10824
|
const view = viewProp ?? internalView;
|
|
10524
|
-
const commitView =
|
|
10825
|
+
const commitView = React136__default.useCallback(
|
|
10525
10826
|
(next) => {
|
|
10526
10827
|
if (viewProp === void 0) setInternalView(next);
|
|
10527
10828
|
onViewChange?.(next);
|
|
10528
10829
|
},
|
|
10529
10830
|
[viewProp, onViewChange]
|
|
10530
10831
|
);
|
|
10531
|
-
const [internalDate, setInternalDate] =
|
|
10832
|
+
const [internalDate, setInternalDate] = React136__default.useState(
|
|
10532
10833
|
() => defaultDate ?? /* @__PURE__ */ new Date()
|
|
10533
10834
|
);
|
|
10534
10835
|
const date = dateProp ?? internalDate;
|
|
10535
|
-
const commitDate =
|
|
10836
|
+
const commitDate = React136__default.useCallback(
|
|
10536
10837
|
(next) => {
|
|
10537
10838
|
if (dateProp === void 0) setInternalDate(next);
|
|
10538
10839
|
onDateChange?.(next);
|
|
@@ -10558,7 +10859,7 @@ var EventCalendar = React131__default.forwardRef(
|
|
|
10558
10859
|
handleToday();
|
|
10559
10860
|
}
|
|
10560
10861
|
};
|
|
10561
|
-
const headerLabel =
|
|
10862
|
+
const headerLabel = React136__default.useMemo(() => {
|
|
10562
10863
|
if (view === "month") return format(date, "MMMM yyyy");
|
|
10563
10864
|
if (view === "week") {
|
|
10564
10865
|
const start = startOfWeek$1(date, { weekStartsOn });
|
|
@@ -10707,11 +11008,11 @@ function MonthView({
|
|
|
10707
11008
|
onEventCreate,
|
|
10708
11009
|
onDayPick
|
|
10709
11010
|
}) {
|
|
10710
|
-
const cells =
|
|
11011
|
+
const cells = React136__default.useMemo(
|
|
10711
11012
|
() => getMonthMatrix(date, weekStartsOn),
|
|
10712
11013
|
[date, weekStartsOn]
|
|
10713
11014
|
);
|
|
10714
|
-
const weekdayLabels =
|
|
11015
|
+
const weekdayLabels = React136__default.useMemo(() => {
|
|
10715
11016
|
const start = startOfWeek$1(/* @__PURE__ */ new Date(), { weekStartsOn });
|
|
10716
11017
|
return Array.from({ length: 7 }, (_, i) => format(addDays(start, i), "EEE"));
|
|
10717
11018
|
}, [weekStartsOn]);
|
|
@@ -10858,7 +11159,7 @@ function HourGrid({
|
|
|
10858
11159
|
onEventCreate,
|
|
10859
11160
|
onEventResize
|
|
10860
11161
|
}) {
|
|
10861
|
-
const hours =
|
|
11162
|
+
const hours = React136__default.useMemo(() => Array.from({ length: 24 }, (_, i) => i), []);
|
|
10862
11163
|
const today = /* @__PURE__ */ new Date();
|
|
10863
11164
|
return /* @__PURE__ */ jsxs(
|
|
10864
11165
|
"div",
|
|
@@ -10912,7 +11213,7 @@ function DayColumn({
|
|
|
10912
11213
|
onEventResize,
|
|
10913
11214
|
showHeader
|
|
10914
11215
|
}) {
|
|
10915
|
-
const bodyRef =
|
|
11216
|
+
const bodyRef = React136__default.useRef(null);
|
|
10916
11217
|
const handleEmptyClick = (e) => {
|
|
10917
11218
|
if (e.target.closest("[data-event-block]")) return;
|
|
10918
11219
|
if (!onEventCreate) return;
|
|
@@ -10993,10 +11294,10 @@ function EventBlock({ event, day, onClick, onResize }) {
|
|
|
10993
11294
|
differenceInMinutes(visibleEnd, visibleStart)
|
|
10994
11295
|
);
|
|
10995
11296
|
const top = startMinutes / 60 * HOUR_ROW_PX;
|
|
10996
|
-
const [resizingDelta, setResizingDelta] =
|
|
11297
|
+
const [resizingDelta, setResizingDelta] = React136__default.useState(0);
|
|
10997
11298
|
const height = durationMinutes / 60 * HOUR_ROW_PX + resizingDelta;
|
|
10998
|
-
const isResizing =
|
|
10999
|
-
const startY =
|
|
11299
|
+
const isResizing = React136__default.useRef(false);
|
|
11300
|
+
const startY = React136__default.useRef(0);
|
|
11000
11301
|
const handleResizePointerDown = (e) => {
|
|
11001
11302
|
if (!onResize) return;
|
|
11002
11303
|
e.preventDefault();
|
|
@@ -11085,7 +11386,7 @@ function WeekView({
|
|
|
11085
11386
|
onEventCreate,
|
|
11086
11387
|
onEventResize
|
|
11087
11388
|
}) {
|
|
11088
|
-
const days =
|
|
11389
|
+
const days = React136__default.useMemo(
|
|
11089
11390
|
() => getWeekDays(date, weekStartsOn),
|
|
11090
11391
|
[date, weekStartsOn]
|
|
11091
11392
|
);
|
|
@@ -11118,7 +11419,7 @@ function DayView({
|
|
|
11118
11419
|
}
|
|
11119
11420
|
) });
|
|
11120
11421
|
}
|
|
11121
|
-
var GridList =
|
|
11422
|
+
var GridList = React136__default.forwardRef(
|
|
11122
11423
|
({ minItemWidth = 240, gap = 1, className, style, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
11123
11424
|
"ul",
|
|
11124
11425
|
{
|
|
@@ -11135,7 +11436,7 @@ var GridList = React131__default.forwardRef(
|
|
|
11135
11436
|
)
|
|
11136
11437
|
);
|
|
11137
11438
|
GridList.displayName = "GridList";
|
|
11138
|
-
var GridListItem =
|
|
11439
|
+
var GridListItem = React136__default.forwardRef(
|
|
11139
11440
|
({ interactive, onSelect, className, ...props }, ref) => {
|
|
11140
11441
|
const clickable = interactive || !!onSelect;
|
|
11141
11442
|
return /* @__PURE__ */ jsx(
|
|
@@ -11206,7 +11507,7 @@ async function extractCroppedDataUrl(image, crop, format3, quality) {
|
|
|
11206
11507
|
const mime = format3 === "jpeg" ? "image/jpeg" : format3 === "webp" ? "image/webp" : "image/png";
|
|
11207
11508
|
return canvas.toDataURL(mime, quality);
|
|
11208
11509
|
}
|
|
11209
|
-
var ImageCrop =
|
|
11510
|
+
var ImageCrop = React136__default.forwardRef(
|
|
11210
11511
|
({
|
|
11211
11512
|
src,
|
|
11212
11513
|
aspect,
|
|
@@ -11221,13 +11522,13 @@ var ImageCrop = React131__default.forwardRef(
|
|
|
11221
11522
|
className,
|
|
11222
11523
|
...props
|
|
11223
11524
|
}, ref) => {
|
|
11224
|
-
const [crop, setCrop] =
|
|
11225
|
-
const imgRef =
|
|
11226
|
-
const timerRef =
|
|
11227
|
-
|
|
11525
|
+
const [crop, setCrop] = React136__default.useState(void 0);
|
|
11526
|
+
const imgRef = React136__default.useRef(null);
|
|
11527
|
+
const timerRef = React136__default.useRef(null);
|
|
11528
|
+
React136__default.useEffect(() => {
|
|
11228
11529
|
setCrop(void 0);
|
|
11229
11530
|
}, [src]);
|
|
11230
|
-
|
|
11531
|
+
React136__default.useEffect(() => {
|
|
11231
11532
|
return () => {
|
|
11232
11533
|
if (timerRef.current) clearTimeout(timerRef.current);
|
|
11233
11534
|
};
|
|
@@ -11452,7 +11753,7 @@ function TreeRow({
|
|
|
11452
11753
|
}
|
|
11453
11754
|
);
|
|
11454
11755
|
}
|
|
11455
|
-
var Tree =
|
|
11756
|
+
var Tree = React136__default.forwardRef(
|
|
11456
11757
|
({
|
|
11457
11758
|
data,
|
|
11458
11759
|
defaultExpandedIds,
|
|
@@ -11468,21 +11769,21 @@ var Tree = React131__default.forwardRef(
|
|
|
11468
11769
|
...props
|
|
11469
11770
|
}, ref) => {
|
|
11470
11771
|
const isControlled = expandedIds !== void 0;
|
|
11471
|
-
const [internalExpanded, setInternalExpanded] =
|
|
11772
|
+
const [internalExpanded, setInternalExpanded] = React136__default.useState(
|
|
11472
11773
|
() => new Set(defaultExpandedIds ?? [])
|
|
11473
11774
|
);
|
|
11474
|
-
const expandedSet =
|
|
11775
|
+
const expandedSet = React136__default.useMemo(
|
|
11475
11776
|
() => isControlled ? new Set(expandedIds) : internalExpanded,
|
|
11476
11777
|
[isControlled, expandedIds, internalExpanded]
|
|
11477
11778
|
);
|
|
11478
|
-
const commitExpanded =
|
|
11779
|
+
const commitExpanded = React136__default.useCallback(
|
|
11479
11780
|
(next) => {
|
|
11480
11781
|
if (!isControlled) setInternalExpanded(next);
|
|
11481
11782
|
onExpandedChange?.(Array.from(next));
|
|
11482
11783
|
},
|
|
11483
11784
|
[isControlled, onExpandedChange]
|
|
11484
11785
|
);
|
|
11485
|
-
const toggle =
|
|
11786
|
+
const toggle = React136__default.useCallback(
|
|
11486
11787
|
(id) => {
|
|
11487
11788
|
const next = new Set(expandedSet);
|
|
11488
11789
|
if (next.has(id)) next.delete(id);
|
|
@@ -11491,7 +11792,7 @@ var Tree = React131__default.forwardRef(
|
|
|
11491
11792
|
},
|
|
11492
11793
|
[expandedSet, commitExpanded]
|
|
11493
11794
|
);
|
|
11494
|
-
const expand =
|
|
11795
|
+
const expand = React136__default.useCallback(
|
|
11495
11796
|
(id) => {
|
|
11496
11797
|
if (expandedSet.has(id)) return;
|
|
11497
11798
|
const next = new Set(expandedSet);
|
|
@@ -11500,7 +11801,7 @@ var Tree = React131__default.forwardRef(
|
|
|
11500
11801
|
},
|
|
11501
11802
|
[expandedSet, commitExpanded]
|
|
11502
11803
|
);
|
|
11503
|
-
const collapse =
|
|
11804
|
+
const collapse = React136__default.useCallback(
|
|
11504
11805
|
(id) => {
|
|
11505
11806
|
if (!expandedSet.has(id)) return;
|
|
11506
11807
|
const next = new Set(expandedSet);
|
|
@@ -11509,27 +11810,27 @@ var Tree = React131__default.forwardRef(
|
|
|
11509
11810
|
},
|
|
11510
11811
|
[expandedSet, commitExpanded]
|
|
11511
11812
|
);
|
|
11512
|
-
const rows =
|
|
11813
|
+
const rows = React136__default.useMemo(
|
|
11513
11814
|
() => flatten(data, expandedSet),
|
|
11514
11815
|
[data, expandedSet]
|
|
11515
11816
|
);
|
|
11516
|
-
const [focusedId, setFocusedId] =
|
|
11817
|
+
const [focusedId, setFocusedId] = React136__default.useState(
|
|
11517
11818
|
() => selectedId ?? data[0]?.id ?? null
|
|
11518
11819
|
);
|
|
11519
|
-
const rowRefs =
|
|
11520
|
-
const registerRef =
|
|
11820
|
+
const rowRefs = React136__default.useRef(/* @__PURE__ */ new Map());
|
|
11821
|
+
const registerRef = React136__default.useCallback(
|
|
11521
11822
|
(id, el) => {
|
|
11522
11823
|
if (el) rowRefs.current.set(id, el);
|
|
11523
11824
|
else rowRefs.current.delete(id);
|
|
11524
11825
|
},
|
|
11525
11826
|
[]
|
|
11526
11827
|
);
|
|
11527
|
-
const moveFocus =
|
|
11828
|
+
const moveFocus = React136__default.useCallback((id) => {
|
|
11528
11829
|
setFocusedId(id);
|
|
11529
11830
|
const el = rowRefs.current.get(id);
|
|
11530
11831
|
el?.focus();
|
|
11531
11832
|
}, []);
|
|
11532
|
-
const onRowKeyDown =
|
|
11833
|
+
const onRowKeyDown = React136__default.useCallback(
|
|
11533
11834
|
(e, row) => {
|
|
11534
11835
|
const idx = rows.findIndex((r) => r.node.id === row.node.id);
|
|
11535
11836
|
if (idx === -1) return;
|
|
@@ -11579,11 +11880,11 @@ var Tree = React131__default.forwardRef(
|
|
|
11579
11880
|
useSensor(PointerSensor, { activationConstraint: { distance: 5 } }),
|
|
11580
11881
|
useSensor(KeyboardSensor)
|
|
11581
11882
|
);
|
|
11582
|
-
const [activeDragId, setActiveDragId] =
|
|
11583
|
-
const handleDragStart =
|
|
11883
|
+
const [activeDragId, setActiveDragId] = React136__default.useState(null);
|
|
11884
|
+
const handleDragStart = React136__default.useCallback((e) => {
|
|
11584
11885
|
setActiveDragId(String(e.active.id));
|
|
11585
11886
|
}, []);
|
|
11586
|
-
const handleDragEnd =
|
|
11887
|
+
const handleDragEnd = React136__default.useCallback(
|
|
11587
11888
|
(e) => {
|
|
11588
11889
|
setActiveDragId(null);
|
|
11589
11890
|
const { active, over } = e;
|
|
@@ -11599,8 +11900,8 @@ var Tree = React131__default.forwardRef(
|
|
|
11599
11900
|
},
|
|
11600
11901
|
[onMove]
|
|
11601
11902
|
);
|
|
11602
|
-
const handleDragCancel =
|
|
11603
|
-
const scrollerRef =
|
|
11903
|
+
const handleDragCancel = React136__default.useCallback(() => setActiveDragId(null), []);
|
|
11904
|
+
const scrollerRef = React136__default.useRef(null);
|
|
11604
11905
|
const virtualizer = useVirtualizer({
|
|
11605
11906
|
count: virtualize ? rows.length : 0,
|
|
11606
11907
|
getScrollElement: () => scrollerRef.current,
|
|
@@ -11702,7 +12003,7 @@ async function exitFs() {
|
|
|
11702
12003
|
if (d.exitFullscreen) return void d.exitFullscreen();
|
|
11703
12004
|
if (d.webkitExitFullscreen) return void d.webkitExitFullscreen();
|
|
11704
12005
|
}
|
|
11705
|
-
var VideoPlayer =
|
|
12006
|
+
var VideoPlayer = React136__default.forwardRef(
|
|
11706
12007
|
({
|
|
11707
12008
|
src,
|
|
11708
12009
|
poster,
|
|
@@ -11719,33 +12020,33 @@ var VideoPlayer = React131__default.forwardRef(
|
|
|
11719
12020
|
muted: mutedProp,
|
|
11720
12021
|
...videoProps
|
|
11721
12022
|
}, ref) => {
|
|
11722
|
-
const containerRef =
|
|
11723
|
-
const videoRef =
|
|
11724
|
-
const hideTimerRef =
|
|
11725
|
-
const [isPlaying, setIsPlaying] =
|
|
11726
|
-
const [hasPlayed, setHasPlayed] =
|
|
11727
|
-
const [currentTime, setCurrentTime] =
|
|
11728
|
-
const [duration, setDuration] =
|
|
11729
|
-
const [buffered, setBuffered] =
|
|
11730
|
-
const [volume, setVolume] =
|
|
11731
|
-
const [isMuted, setIsMuted] =
|
|
11732
|
-
const [isFullscreen, setIsFullscreen] =
|
|
11733
|
-
const [showControls, setShowControls] =
|
|
11734
|
-
|
|
11735
|
-
|
|
12023
|
+
const containerRef = React136__default.useRef(null);
|
|
12024
|
+
const videoRef = React136__default.useRef(null);
|
|
12025
|
+
const hideTimerRef = React136__default.useRef(null);
|
|
12026
|
+
const [isPlaying, setIsPlaying] = React136__default.useState(false);
|
|
12027
|
+
const [hasPlayed, setHasPlayed] = React136__default.useState(Boolean(autoPlay));
|
|
12028
|
+
const [currentTime, setCurrentTime] = React136__default.useState(0);
|
|
12029
|
+
const [duration, setDuration] = React136__default.useState(0);
|
|
12030
|
+
const [buffered, setBuffered] = React136__default.useState(0);
|
|
12031
|
+
const [volume, setVolume] = React136__default.useState(1);
|
|
12032
|
+
const [isMuted, setIsMuted] = React136__default.useState(Boolean(mutedProp ?? autoPlay));
|
|
12033
|
+
const [isFullscreen, setIsFullscreen] = React136__default.useState(false);
|
|
12034
|
+
const [showControls, setShowControls] = React136__default.useState(true);
|
|
12035
|
+
React136__default.useImperativeHandle(ref, () => containerRef.current);
|
|
12036
|
+
React136__default.useEffect(() => {
|
|
11736
12037
|
const v = videoRef.current;
|
|
11737
12038
|
if (!v) return;
|
|
11738
12039
|
v.volume = volume;
|
|
11739
12040
|
v.muted = isMuted;
|
|
11740
12041
|
}, [volume, isMuted]);
|
|
11741
|
-
const showAndScheduleHide =
|
|
12042
|
+
const showAndScheduleHide = React136__default.useCallback(() => {
|
|
11742
12043
|
setShowControls(true);
|
|
11743
12044
|
if (hideTimerRef.current) clearTimeout(hideTimerRef.current);
|
|
11744
12045
|
if (isPlaying) {
|
|
11745
12046
|
hideTimerRef.current = setTimeout(() => setShowControls(false), 3e3);
|
|
11746
12047
|
}
|
|
11747
12048
|
}, [isPlaying]);
|
|
11748
|
-
|
|
12049
|
+
React136__default.useEffect(() => {
|
|
11749
12050
|
if (!isPlaying) {
|
|
11750
12051
|
if (hideTimerRef.current) clearTimeout(hideTimerRef.current);
|
|
11751
12052
|
setShowControls(true);
|
|
@@ -11756,7 +12057,7 @@ var VideoPlayer = React131__default.forwardRef(
|
|
|
11756
12057
|
if (hideTimerRef.current) clearTimeout(hideTimerRef.current);
|
|
11757
12058
|
};
|
|
11758
12059
|
}, [isPlaying]);
|
|
11759
|
-
|
|
12060
|
+
React136__default.useEffect(() => {
|
|
11760
12061
|
const onFsChange = () => setIsFullscreen(isFullscreenActive());
|
|
11761
12062
|
document.addEventListener("fullscreenchange", onFsChange);
|
|
11762
12063
|
document.addEventListener("webkitfullscreenchange", onFsChange);
|
|
@@ -11765,7 +12066,7 @@ var VideoPlayer = React131__default.forwardRef(
|
|
|
11765
12066
|
document.removeEventListener("webkitfullscreenchange", onFsChange);
|
|
11766
12067
|
};
|
|
11767
12068
|
}, []);
|
|
11768
|
-
const togglePlay =
|
|
12069
|
+
const togglePlay = React136__default.useCallback(() => {
|
|
11769
12070
|
const v = videoRef.current;
|
|
11770
12071
|
if (!v) return;
|
|
11771
12072
|
if (v.paused) {
|
|
@@ -11774,22 +12075,22 @@ var VideoPlayer = React131__default.forwardRef(
|
|
|
11774
12075
|
v.pause();
|
|
11775
12076
|
}
|
|
11776
12077
|
}, []);
|
|
11777
|
-
const toggleMute =
|
|
12078
|
+
const toggleMute = React136__default.useCallback(() => {
|
|
11778
12079
|
setIsMuted((m) => !m);
|
|
11779
12080
|
}, []);
|
|
11780
|
-
const toggleFullscreen =
|
|
12081
|
+
const toggleFullscreen = React136__default.useCallback(() => {
|
|
11781
12082
|
const el = containerRef.current;
|
|
11782
12083
|
if (!el) return;
|
|
11783
12084
|
if (isFullscreenActive()) void exitFs();
|
|
11784
12085
|
else void requestFs(el);
|
|
11785
12086
|
}, []);
|
|
11786
|
-
const seekTo =
|
|
12087
|
+
const seekTo = React136__default.useCallback((time) => {
|
|
11787
12088
|
const v = videoRef.current;
|
|
11788
12089
|
if (!v) return;
|
|
11789
12090
|
const clamped = Math.max(0, Math.min(v.duration || 0, time));
|
|
11790
12091
|
v.currentTime = clamped;
|
|
11791
12092
|
}, []);
|
|
11792
|
-
const seekBy =
|
|
12093
|
+
const seekBy = React136__default.useCallback(
|
|
11793
12094
|
(delta) => {
|
|
11794
12095
|
seekTo((videoRef.current?.currentTime ?? 0) + delta);
|
|
11795
12096
|
},
|
|
@@ -12137,7 +12438,7 @@ function Combobox({
|
|
|
12137
12438
|
className,
|
|
12138
12439
|
contentWidth = "trigger"
|
|
12139
12440
|
}) {
|
|
12140
|
-
const [open, setOpen] =
|
|
12441
|
+
const [open, setOpen] = React136__default.useState(false);
|
|
12141
12442
|
const selected = options.find((o) => o.value === value);
|
|
12142
12443
|
return /* @__PURE__ */ jsxs(Popover, { open, onOpenChange: setOpen, children: [
|
|
12143
12444
|
/* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(
|
|
@@ -12231,9 +12532,9 @@ function ColorSchemeSelect({
|
|
|
12231
12532
|
className
|
|
12232
12533
|
}) {
|
|
12233
12534
|
const fallback = defaultValue ?? options[0]?.value ?? "";
|
|
12234
|
-
const [value, setValue] =
|
|
12235
|
-
const didMount =
|
|
12236
|
-
|
|
12535
|
+
const [value, setValue] = React136__default.useState(() => readInitial2(fallback));
|
|
12536
|
+
const didMount = React136__default.useRef(false);
|
|
12537
|
+
React136__default.useEffect(() => {
|
|
12237
12538
|
if (!didMount.current) {
|
|
12238
12539
|
didMount.current = true;
|
|
12239
12540
|
return;
|
|
@@ -12679,6 +12980,6 @@ function SortableNav({ items, onReorder, className }) {
|
|
|
12679
12980
|
return /* @__PURE__ */ jsx(DndContext, { sensors, collisionDetection: closestCenter, onDragEnd: handleDragEnd, children: /* @__PURE__ */ jsx(SortableContext, { items: items.map((i) => i.id), strategy: verticalListSortingStrategy, children: /* @__PURE__ */ jsx("nav", { "data-slot": "sortable-nav", className: cn("space-y-0.5 px-2 py-1", className), children: items.map((item) => /* @__PURE__ */ jsx(SortableNavItemWrapper, { item }, item.id)) }) }) });
|
|
12680
12981
|
}
|
|
12681
12982
|
|
|
12682
|
-
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActivityHeatmap, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AnimatedGradient, AnimatedNumber, AppShell, AppShellMain, AppShellSidebar, AppShellUserMenu, Sidebar as AppSidebar, AreaChart, ArrayField, AspectRatio, AutoForm, Avatar, AvatarFallback, AvatarGroup, AvatarImage, Badge, Banner, BarChart, BarList, Beacon, BillingStatus, Body, Breadcrumb, BreadcrumbItem, BreadcrumbPage, BreadcrumbSeparator, BulkActions, Button, Calendar, CalendarDayButton, Caption, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, ChatDetail, Checkbox, Checklist, ChecklistItem, Code3 as Code, CodeBlock, Collapsible, CollapsibleContent2 as CollapsibleContent, CollapsibleTrigger2 as CollapsibleTrigger, ColorPicker, ColorSchemeSelect, Combobox, Command, CommandBar, CommandBarEmpty, CommandBarGroup, CommandBarItem, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandList, CommandPalette, CommandPaletteProvider, CommandSeparator, CommandShortcut, Comparison, Container, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DEFAULT_THEME_OPTIONS, DEFAULT_TRANSITION, DataGrid, DataList, DataListItem, DataTable, DataTableColumnHeader, DataTablePagination, DataTableToolbar, DatePicker, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DottedBackground, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, EmptyStateIcon, EventCalendar, FadeIn, FeedbackModal, Field, FieldDescription, FieldError, FieldLabel, FileCards, FileUpload, FileUploadPreview, FilesList, FilterBadge, FilterItem, Filters, FloatingActionButton, FloatingThemePicker, Gantt, GradientBackground, GradientHeading, GridList, GridListItem, HStack, Heading, Heatmap, HelpSheet, HeroShaderA, HotkeyBadge, Hotkeys, HotkeysProvider, HoverCard, HoverCardContent, HoverCardTrigger, IconBadge, ImageCrop, Input, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, IntegrationCard, IntroDisclosure, InviteModal, Kanban, KanbanCard, KanbanColumn, Label3 as Label, LineChart, LoadingOverlay, LogoCarousel, MOTION_PRESETS, ManageTagsModal, Marquee, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, MessagesCard, MetricCard, MetricCardWithButton, MetricCardWithIcon, MobileSidebarTrigger, Morph, Navbar, NavbarBrand, NavbarContent, NavbarItem, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, NoiseBackground, NotificationSettings, ObjectField, OrgMenu, Page, PageActions, PageBody, PageContainer, PageDescription, PageHeader, PageLayout, PageMain, PageTitle, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PaletteSwatches, Parallax, PasswordInput, Persona, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Progress, PropertyItem, PropertyList, QrCode, RadioGroup4 as RadioGroup, RadioGroupItem, Rating, ResizableHandle, ResizablePanel, ResizablePanelGroup, ResizeBox, ResizeHandle, Reveal, RichEditor, Ripple, RolesMenu, ScaleIn, ScrollArea, ScrollBar, ScrollHeader, SearchInput, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectUsersModal, SelectValue, Separator6 as Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, AppShell2 as Shell, Sidebar2 as Sidebar, SidebarContent, SidebarFooter2 as SidebarFooter, SidebarGroup, SidebarGroupLabel, SidebarHeader2 as SidebarHeader, SidebarItem2 as SidebarItem, SidebarLayoutDashboard, SidebarLayoutGroups, SidebarLayoutMinimal, SidebarLayoutSearch, SidebarLayoutUser, SidebarResizer, SidebarSeparator2 as SidebarSeparator, Skeleton, SlideIn, Slider, SortableNav, SortableTaskList, Sparkline, Spinner, SplitPage, SplitPageDetail, SplitPageList, Stack, StackedLayoutBranded, StackedLayoutTabs, Stagger, Stat, StatGroup, StepForm, StepFormNavigation, StepFormStep, Stepper, StepperStep, StructuredList, StructuredListItem, StructuredListSection, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Tags, TaskCard, TaskCardWithLabels, TextReveal, Textarea, TextureCard, TextureCardDescription, TextureCardHeader, TextureCardTitle, ThemeSwitch, Timeline, TimelineConnector, TimelineContent, TimelineItem, Toaster, Toggle, ToggleButton, ToggleButtonGroup, ToggleGroup, ToggleGroupItem, Tooltip2 as Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, Tour, TourStep, Transition, Tree, Typewriter, UserMenu, VStack, VideoPlayer, WorkspaceMembers, WorkspacesMenu, badgeVariants, buttonVariants, cn, navigationMenuTriggerStyle, toastFn as toast, toastEmitter, toggleVariants, useAppShell, useCommandBar, useCommandPalette,
|
|
12983
|
+
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActivityHeatmap, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AnimatedGradient, AnimatedNumber, AppShell, AppShellMain, AppShellSidebar, AppShellUserMenu, Sidebar as AppSidebar, AreaChart, ArrayField, AspectRatio, AutoForm, Avatar, AvatarFallback, AvatarGroup, AvatarImage, Badge, Banner, BarChart, BarList, Beacon, BillingStatus, Body, Breadcrumb, BreadcrumbItem, BreadcrumbPage, BreadcrumbSeparator, BulkActions, Button, Calendar, CalendarDayButton, Caption, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, CartLineItem, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, ChatDetail, Checkbox, Checklist, ChecklistItem, Code3 as Code, CodeBlock, Collapsible, CollapsibleContent2 as CollapsibleContent, CollapsibleTrigger2 as CollapsibleTrigger, ColorPicker, ColorSchemeSelect, Combobox, Command, CommandBar, CommandBarEmpty, CommandBarGroup, CommandBarItem, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandItem2 as CommandListItem, CommandPalette, CommandPaletteProvider, CommandSeparator, CommandShortcut, Comparison, Container, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DEFAULT_THEME_OPTIONS, DEFAULT_TRANSITION, DataGrid, DataList, DataListItem, DataTable, DataTableColumnHeader, DataTablePagination, DataTableToolbar, DatePicker, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DottedBackground, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyCart, EmptyState, EmptyStateIcon, EventCalendar, FadeIn, FeedbackModal, Field, FieldDescription, FieldError, FieldLabel, FileCards, FileUpload, FileUploadPreview, FilesList, FilterBadge, FilterItem, Filters, FloatingActionButton, FloatingLabelInput, FloatingThemePicker, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, Gantt, GradientBackground, GradientHeading, GridList, GridListItem, HStack, Heading, Heatmap, HelpSheet, HeroShaderA, HotkeyBadge, Hotkeys, HotkeysProvider, HoverCard, HoverCardContent, HoverCardTrigger, IconBadge, ImageCrop, Input, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, IntegrationCard, IntroDisclosure, InviteModal, Kanban, KanbanCard, KanbanColumn, Label3 as Label, LineChart, LoadingOverlay, LogoCarousel, MOTION_PRESETS, ManageTagsModal, Marquee, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, MessagesCard, MetricCard, MetricCardWithButton, MetricCardWithIcon, MobileSidebarTrigger, Morph, Navbar, NavbarBrand, NavbarContent, NavbarItem, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, NoiseBackground, NotificationSettings, ObjectField, OrgMenu, Page, PageActions, PageBody, PageContainer, PageDescription, PageHeader, PageLayout, PageMain, PageTitle, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PaletteSwatches, Parallax, PasswordInput, Persona, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, PriceTag, Progress, PropertyItem, PropertyList, QrCode, QuantityStepper, RadioGroup4 as RadioGroup, RadioGroupItem, Rating, ResizableHandle, ResizablePanel, ResizablePanelGroup, ResizeBox, ResizeHandle, Reveal, RichEditor, Ripple, RolesMenu, ScaleIn, ScrollArea, ScrollBar, ScrollHeader, SearchInput, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectUsersModal, SelectValue, Separator6 as Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, AppShell2 as Shell, Sidebar2 as Sidebar, SidebarContent, SidebarFooter2 as SidebarFooter, SidebarGroup, SidebarGroupLabel, SidebarHeader2 as SidebarHeader, SidebarItem2 as SidebarItem, SidebarLayoutDashboard, SidebarLayoutGroups, SidebarLayoutMinimal, SidebarLayoutSearch, SidebarLayoutUser, SidebarResizer, SidebarSeparator2 as SidebarSeparator, Skeleton, SlideIn, Slider, SortableNav, SortableTaskList, Sparkline, Spinner, SplitPage, SplitPageDetail, SplitPageList, Stack, StackedLayoutBranded, StackedLayoutTabs, Stagger, Stat, StatGroup, StepForm, StepFormNavigation, StepFormStep, Stepper, StepperStep, StructuredList, StructuredListItem, StructuredListSection, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Tags, TaskCard, TaskCardWithLabels, TextReveal, Textarea, TextureCard, TextureCardDescription, TextureCardHeader, TextureCardTitle, ThemeSwitch, Timeline, TimelineConnector, TimelineContent, TimelineItem, Toaster, Toggle, ToggleButton, ToggleButtonGroup, ToggleGroup, ToggleGroupItem, Tooltip2 as Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, Tour, TourStep, Transition, Tree, Typewriter, UserMenu, VStack, VariantPicker, VideoPlayer, WorkspaceMembers, WorkspacesMenu, badgeVariants, buttonVariants, cn, navigationMenuTriggerStyle, toastFn as toast, toastEmitter, toggleVariants, useAppShell, useCommandBar, useCommandPalette, useHotkeys, useLayoutId, useSidebar, useTour };
|
|
12683
12984
|
//# sourceMappingURL=index.mjs.map
|
|
12684
12985
|
//# sourceMappingURL=index.mjs.map
|