@blinkdotnew/ui 0.1.4 → 0.1.5
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/dist/index.d.mts +6 -1
- package/dist/index.d.ts +6 -1
- package/dist/index.js +245 -182
- package/dist/index.mjs +195 -133
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var React26 = require('react');
|
|
4
4
|
var jsxRuntime = require('react/jsx-runtime');
|
|
5
5
|
var clsx = require('clsx');
|
|
6
6
|
var tailwindMerge = require('tailwind-merge');
|
|
@@ -51,7 +51,7 @@ function _interopNamespace(e) {
|
|
|
51
51
|
return Object.freeze(n);
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
-
var
|
|
54
|
+
var React26__default = /*#__PURE__*/_interopDefault(React26);
|
|
55
55
|
var SelectPrimitive__namespace = /*#__PURE__*/_interopNamespace(SelectPrimitive);
|
|
56
56
|
var CheckboxPrimitive__namespace = /*#__PURE__*/_interopNamespace(CheckboxPrimitive);
|
|
57
57
|
var RadioGroupPrimitive__namespace = /*#__PURE__*/_interopNamespace(RadioGroupPrimitive);
|
|
@@ -69,9 +69,9 @@ var TabsPrimitive__namespace = /*#__PURE__*/_interopNamespace(TabsPrimitive);
|
|
|
69
69
|
var z__namespace = /*#__PURE__*/_interopNamespace(z);
|
|
70
70
|
|
|
71
71
|
// src/provider/blink-ui-provider.tsx
|
|
72
|
-
var BlinkUIContext =
|
|
72
|
+
var BlinkUIContext = React26.createContext(null);
|
|
73
73
|
function useBlinkUI() {
|
|
74
|
-
const ctx =
|
|
74
|
+
const ctx = React26.useContext(BlinkUIContext);
|
|
75
75
|
if (!ctx)
|
|
76
76
|
throw new Error("useBlinkUI must be used within <BlinkUIProvider>");
|
|
77
77
|
return ctx;
|
|
@@ -81,10 +81,10 @@ function BlinkUIProvider({
|
|
|
81
81
|
theme: initialTheme = "linear",
|
|
82
82
|
darkMode: initialDarkMode = "system"
|
|
83
83
|
}) {
|
|
84
|
-
const [theme, setTheme] =
|
|
85
|
-
const [darkMode, setDarkMode] =
|
|
86
|
-
const [resolvedDark, setResolvedDark] =
|
|
87
|
-
|
|
84
|
+
const [theme, setTheme] = React26.useState(initialTheme);
|
|
85
|
+
const [darkMode, setDarkMode] = React26.useState(initialDarkMode);
|
|
86
|
+
const [resolvedDark, setResolvedDark] = React26.useState(false);
|
|
87
|
+
React26.useEffect(() => {
|
|
88
88
|
const update = () => {
|
|
89
89
|
const isDark = darkMode === "dark" || darkMode === "system" && window.matchMedia("(prefers-color-scheme: dark)").matches;
|
|
90
90
|
setResolvedDark(isDark);
|
|
@@ -94,7 +94,7 @@ function BlinkUIProvider({
|
|
|
94
94
|
mq.addEventListener("change", update);
|
|
95
95
|
return () => mq.removeEventListener("change", update);
|
|
96
96
|
}, [darkMode]);
|
|
97
|
-
|
|
97
|
+
React26.useEffect(() => {
|
|
98
98
|
const root = document.documentElement;
|
|
99
99
|
root.classList.remove("theme-linear", "theme-glass", "theme-midnight", "theme-minimal");
|
|
100
100
|
root.classList.remove("dark", "light");
|
|
@@ -128,14 +128,14 @@ var buttonVariants = classVarianceAuthority.cva(
|
|
|
128
128
|
defaultVariants: { variant: "default", size: "default" }
|
|
129
129
|
}
|
|
130
130
|
);
|
|
131
|
-
var Button =
|
|
131
|
+
var Button = React26__default.default.forwardRef(
|
|
132
132
|
({ className, variant, size, asChild = false, ...props }, ref) => {
|
|
133
133
|
const Comp = asChild ? reactSlot.Slot : "button";
|
|
134
134
|
return /* @__PURE__ */ jsxRuntime.jsx(Comp, { className: cn(buttonVariants({ variant, size }), className), ref, ...props });
|
|
135
135
|
}
|
|
136
136
|
);
|
|
137
137
|
Button.displayName = "Button";
|
|
138
|
-
var Input =
|
|
138
|
+
var Input = React26__default.default.forwardRef(
|
|
139
139
|
({ className, type, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
140
140
|
"input",
|
|
141
141
|
{
|
|
@@ -154,7 +154,7 @@ var Input = React14__default.default.forwardRef(
|
|
|
154
154
|
)
|
|
155
155
|
);
|
|
156
156
|
Input.displayName = "Input";
|
|
157
|
-
var Textarea =
|
|
157
|
+
var Textarea = React26__default.default.forwardRef(
|
|
158
158
|
({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
159
159
|
"textarea",
|
|
160
160
|
{
|
|
@@ -175,7 +175,7 @@ Textarea.displayName = "Textarea";
|
|
|
175
175
|
var Select = SelectPrimitive__namespace.Root;
|
|
176
176
|
var SelectGroup = SelectPrimitive__namespace.Group;
|
|
177
177
|
var SelectValue = SelectPrimitive__namespace.Value;
|
|
178
|
-
var SelectTrigger =
|
|
178
|
+
var SelectTrigger = React26__default.default.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
179
179
|
SelectPrimitive__namespace.Trigger,
|
|
180
180
|
{
|
|
181
181
|
ref,
|
|
@@ -195,7 +195,7 @@ var SelectTrigger = React14__default.default.forwardRef(({ className, children,
|
|
|
195
195
|
}
|
|
196
196
|
));
|
|
197
197
|
SelectTrigger.displayName = SelectPrimitive__namespace.Trigger.displayName;
|
|
198
|
-
var SelectScrollUpButton =
|
|
198
|
+
var SelectScrollUpButton = React26__default.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
199
199
|
SelectPrimitive__namespace.ScrollUpButton,
|
|
200
200
|
{
|
|
201
201
|
ref,
|
|
@@ -205,7 +205,7 @@ var SelectScrollUpButton = React14__default.default.forwardRef(({ className, ...
|
|
|
205
205
|
}
|
|
206
206
|
));
|
|
207
207
|
SelectScrollUpButton.displayName = SelectPrimitive__namespace.ScrollUpButton.displayName;
|
|
208
|
-
var SelectScrollDownButton =
|
|
208
|
+
var SelectScrollDownButton = React26__default.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
209
209
|
SelectPrimitive__namespace.ScrollDownButton,
|
|
210
210
|
{
|
|
211
211
|
ref,
|
|
@@ -215,7 +215,7 @@ var SelectScrollDownButton = React14__default.default.forwardRef(({ className, .
|
|
|
215
215
|
}
|
|
216
216
|
));
|
|
217
217
|
SelectScrollDownButton.displayName = SelectPrimitive__namespace.ScrollDownButton.displayName;
|
|
218
|
-
var SelectContent =
|
|
218
|
+
var SelectContent = React26__default.default.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
219
219
|
SelectPrimitive__namespace.Content,
|
|
220
220
|
{
|
|
221
221
|
ref,
|
|
@@ -242,7 +242,7 @@ var SelectContent = React14__default.default.forwardRef(({ className, children,
|
|
|
242
242
|
}
|
|
243
243
|
) }));
|
|
244
244
|
SelectContent.displayName = SelectPrimitive__namespace.Content.displayName;
|
|
245
|
-
var SelectLabel =
|
|
245
|
+
var SelectLabel = React26__default.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
246
246
|
SelectPrimitive__namespace.Label,
|
|
247
247
|
{
|
|
248
248
|
ref,
|
|
@@ -251,7 +251,7 @@ var SelectLabel = React14__default.default.forwardRef(({ className, ...props },
|
|
|
251
251
|
}
|
|
252
252
|
));
|
|
253
253
|
SelectLabel.displayName = SelectPrimitive__namespace.Label.displayName;
|
|
254
|
-
var SelectItem =
|
|
254
|
+
var SelectItem = React26__default.default.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
255
255
|
SelectPrimitive__namespace.Item,
|
|
256
256
|
{
|
|
257
257
|
ref,
|
|
@@ -269,7 +269,7 @@ var SelectItem = React14__default.default.forwardRef(({ className, children, ...
|
|
|
269
269
|
}
|
|
270
270
|
));
|
|
271
271
|
SelectItem.displayName = SelectPrimitive__namespace.Item.displayName;
|
|
272
|
-
var SelectSeparator =
|
|
272
|
+
var SelectSeparator = React26__default.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
273
273
|
SelectPrimitive__namespace.Separator,
|
|
274
274
|
{
|
|
275
275
|
ref,
|
|
@@ -278,7 +278,7 @@ var SelectSeparator = React14__default.default.forwardRef(({ className, ...props
|
|
|
278
278
|
}
|
|
279
279
|
));
|
|
280
280
|
SelectSeparator.displayName = SelectPrimitive__namespace.Separator.displayName;
|
|
281
|
-
var Checkbox =
|
|
281
|
+
var Checkbox = React26__default.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
282
282
|
CheckboxPrimitive__namespace.Root,
|
|
283
283
|
{
|
|
284
284
|
ref,
|
|
@@ -294,9 +294,9 @@ var Checkbox = React14__default.default.forwardRef(({ className, ...props }, ref
|
|
|
294
294
|
}
|
|
295
295
|
));
|
|
296
296
|
Checkbox.displayName = CheckboxPrimitive__namespace.Root.displayName;
|
|
297
|
-
var RadioGroup =
|
|
297
|
+
var RadioGroup = React26__default.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(RadioGroupPrimitive__namespace.Root, { className: cn("grid gap-2", className), ref, ...props }));
|
|
298
298
|
RadioGroup.displayName = RadioGroupPrimitive__namespace.Root.displayName;
|
|
299
|
-
var RadioGroupItem =
|
|
299
|
+
var RadioGroupItem = React26__default.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
300
300
|
RadioGroupPrimitive__namespace.Item,
|
|
301
301
|
{
|
|
302
302
|
ref,
|
|
@@ -311,7 +311,7 @@ var RadioGroupItem = React14__default.default.forwardRef(({ className, ...props
|
|
|
311
311
|
}
|
|
312
312
|
));
|
|
313
313
|
RadioGroupItem.displayName = RadioGroupPrimitive__namespace.Item.displayName;
|
|
314
|
-
var Switch =
|
|
314
|
+
var Switch = React26__default.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
315
315
|
SwitchPrimitive__namespace.Root,
|
|
316
316
|
{
|
|
317
317
|
ref,
|
|
@@ -337,7 +337,7 @@ var Switch = React14__default.default.forwardRef(({ className, ...props }, ref)
|
|
|
337
337
|
}
|
|
338
338
|
));
|
|
339
339
|
Switch.displayName = SwitchPrimitive__namespace.Root.displayName;
|
|
340
|
-
var Slider =
|
|
340
|
+
var Slider = React26__default.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
341
341
|
SliderPrimitive__namespace.Root,
|
|
342
342
|
{
|
|
343
343
|
ref,
|
|
@@ -354,7 +354,7 @@ var Dialog = DialogPrimitive__namespace.Root;
|
|
|
354
354
|
var DialogTrigger = DialogPrimitive__namespace.Trigger;
|
|
355
355
|
var DialogPortal = DialogPrimitive__namespace.Portal;
|
|
356
356
|
var DialogClose = DialogPrimitive__namespace.Close;
|
|
357
|
-
var DialogOverlay =
|
|
357
|
+
var DialogOverlay = React26__default.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
358
358
|
DialogPrimitive__namespace.Overlay,
|
|
359
359
|
{
|
|
360
360
|
ref,
|
|
@@ -368,7 +368,7 @@ var DialogOverlay = React14__default.default.forwardRef(({ className, ...props }
|
|
|
368
368
|
}
|
|
369
369
|
));
|
|
370
370
|
DialogOverlay.displayName = DialogPrimitive__namespace.Overlay.displayName;
|
|
371
|
-
var DialogContent =
|
|
371
|
+
var DialogContent = React26__default.default.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(DialogPortal, { children: [
|
|
372
372
|
/* @__PURE__ */ jsxRuntime.jsx(DialogOverlay, {}),
|
|
373
373
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
374
374
|
DialogPrimitive__namespace.Content,
|
|
@@ -398,7 +398,7 @@ var DialogHeader = ({ className, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("
|
|
|
398
398
|
DialogHeader.displayName = "DialogHeader";
|
|
399
399
|
var DialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className), ...props });
|
|
400
400
|
DialogFooter.displayName = "DialogFooter";
|
|
401
|
-
var DialogTitle =
|
|
401
|
+
var DialogTitle = React26__default.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
402
402
|
DialogPrimitive__namespace.Title,
|
|
403
403
|
{
|
|
404
404
|
ref,
|
|
@@ -407,7 +407,7 @@ var DialogTitle = React14__default.default.forwardRef(({ className, ...props },
|
|
|
407
407
|
}
|
|
408
408
|
));
|
|
409
409
|
DialogTitle.displayName = DialogPrimitive__namespace.Title.displayName;
|
|
410
|
-
var DialogDescription =
|
|
410
|
+
var DialogDescription = React26__default.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
411
411
|
DialogPrimitive__namespace.Description,
|
|
412
412
|
{
|
|
413
413
|
ref,
|
|
@@ -420,7 +420,7 @@ var Sheet = DialogPrimitive__namespace.Root;
|
|
|
420
420
|
var SheetTrigger = DialogPrimitive__namespace.Trigger;
|
|
421
421
|
var SheetClose = DialogPrimitive__namespace.Close;
|
|
422
422
|
var SheetPortal = DialogPrimitive__namespace.Portal;
|
|
423
|
-
var SheetOverlay =
|
|
423
|
+
var SheetOverlay = React26__default.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
424
424
|
DialogPrimitive__namespace.Overlay,
|
|
425
425
|
{
|
|
426
426
|
ref,
|
|
@@ -448,7 +448,7 @@ var sheetVariants = classVarianceAuthority.cva(
|
|
|
448
448
|
defaultVariants: { side: "right" }
|
|
449
449
|
}
|
|
450
450
|
);
|
|
451
|
-
var SheetContent =
|
|
451
|
+
var SheetContent = React26__default.default.forwardRef(({ side = "right", className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(SheetPortal, { children: [
|
|
452
452
|
/* @__PURE__ */ jsxRuntime.jsx(SheetOverlay, {}),
|
|
453
453
|
/* @__PURE__ */ jsxRuntime.jsxs(DialogPrimitive__namespace.Content, { ref, className: cn(sheetVariants({ side }), className), ...props, children: [
|
|
454
454
|
/* @__PURE__ */ jsxRuntime.jsxs(DialogPrimitive__namespace.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: [
|
|
@@ -461,14 +461,14 @@ var SheetContent = React14__default.default.forwardRef(({ side = "right", classN
|
|
|
461
461
|
SheetContent.displayName = DialogPrimitive__namespace.Content.displayName;
|
|
462
462
|
var SheetHeader = ({ className, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex flex-col space-y-2 text-center sm:text-left", className), ...props });
|
|
463
463
|
var SheetFooter = ({ className, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className), ...props });
|
|
464
|
-
var SheetTitle =
|
|
464
|
+
var SheetTitle = React26__default.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(DialogPrimitive__namespace.Title, { ref, className: cn("text-lg font-semibold", className), ...props }));
|
|
465
465
|
SheetTitle.displayName = DialogPrimitive__namespace.Title.displayName;
|
|
466
|
-
var SheetDescription =
|
|
466
|
+
var SheetDescription = React26__default.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(DialogPrimitive__namespace.Description, { ref, className: cn("text-sm text-[hsl(var(--muted-foreground))]", className), ...props }));
|
|
467
467
|
SheetDescription.displayName = DialogPrimitive__namespace.Description.displayName;
|
|
468
468
|
var Popover = PopoverPrimitive__namespace.Root;
|
|
469
469
|
var PopoverTrigger = PopoverPrimitive__namespace.Trigger;
|
|
470
470
|
var PopoverAnchor = PopoverPrimitive__namespace.Anchor;
|
|
471
|
-
var PopoverContent =
|
|
471
|
+
var PopoverContent = React26__default.default.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
472
472
|
PopoverPrimitive__namespace.Content,
|
|
473
473
|
{
|
|
474
474
|
ref,
|
|
@@ -488,7 +488,7 @@ PopoverContent.displayName = PopoverPrimitive__namespace.Content.displayName;
|
|
|
488
488
|
var TooltipProvider = TooltipPrimitive__namespace.Provider;
|
|
489
489
|
var Tooltip = TooltipPrimitive__namespace.Root;
|
|
490
490
|
var TooltipTrigger = TooltipPrimitive__namespace.Trigger;
|
|
491
|
-
var TooltipContent =
|
|
491
|
+
var TooltipContent = React26__default.default.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(TooltipPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
492
492
|
TooltipPrimitive__namespace.Content,
|
|
493
493
|
{
|
|
494
494
|
ref,
|
|
@@ -520,30 +520,30 @@ var itemStyle = cn(
|
|
|
520
520
|
"focus:bg-[hsl(var(--accent))] focus:text-[hsl(var(--accent-foreground))]",
|
|
521
521
|
"data-[disabled]:pointer-events-none data-[disabled]:opacity-50"
|
|
522
522
|
);
|
|
523
|
-
var DropdownMenuContent =
|
|
523
|
+
var DropdownMenuContent = React26__default.default.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Content, { ref, sideOffset, className: cn(contentStyle, className), ...props }) }));
|
|
524
524
|
DropdownMenuContent.displayName = DropdownMenuPrimitive__namespace.Content.displayName;
|
|
525
|
-
var DropdownMenuItem =
|
|
525
|
+
var DropdownMenuItem = React26__default.default.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Item, { ref, className: cn(itemStyle, inset && "pl-8", className), ...props }));
|
|
526
526
|
DropdownMenuItem.displayName = DropdownMenuPrimitive__namespace.Item.displayName;
|
|
527
|
-
var DropdownMenuCheckboxItem =
|
|
527
|
+
var DropdownMenuCheckboxItem = React26__default.default.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(DropdownMenuPrimitive__namespace.CheckboxItem, { ref, className: cn(itemStyle, "pl-8", className), checked, ...props, children: [
|
|
528
528
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: "h-4 w-4" }) }) }),
|
|
529
529
|
children
|
|
530
530
|
] }));
|
|
531
531
|
DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive__namespace.CheckboxItem.displayName;
|
|
532
|
-
var DropdownMenuRadioItem =
|
|
532
|
+
var DropdownMenuRadioItem = React26__default.default.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(DropdownMenuPrimitive__namespace.RadioItem, { ref, className: cn(itemStyle, "pl-8", className), ...props, children: [
|
|
533
533
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Circle, { className: "h-2 w-2 fill-current" }) }) }),
|
|
534
534
|
children
|
|
535
535
|
] }));
|
|
536
536
|
DropdownMenuRadioItem.displayName = DropdownMenuPrimitive__namespace.RadioItem.displayName;
|
|
537
|
-
var DropdownMenuLabel =
|
|
537
|
+
var DropdownMenuLabel = React26__default.default.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Label, { ref, className: cn("px-2 py-1.5 text-xs font-semibold text-[hsl(var(--muted-foreground))]", inset && "pl-8", className), ...props }));
|
|
538
538
|
DropdownMenuLabel.displayName = DropdownMenuPrimitive__namespace.Label.displayName;
|
|
539
|
-
var DropdownMenuSeparator =
|
|
539
|
+
var DropdownMenuSeparator = React26__default.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-[hsl(var(--muted))]", className), ...props }));
|
|
540
540
|
DropdownMenuSeparator.displayName = DropdownMenuPrimitive__namespace.Separator.displayName;
|
|
541
|
-
var DropdownMenuSubTrigger =
|
|
541
|
+
var DropdownMenuSubTrigger = React26__default.default.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(DropdownMenuPrimitive__namespace.SubTrigger, { ref, className: cn(itemStyle, inset && "pl-8", "data-[state=open]:bg-[hsl(var(--accent))]", className), ...props, children: [
|
|
542
542
|
children,
|
|
543
543
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRight, { className: "ml-auto h-4 w-4" })
|
|
544
544
|
] }));
|
|
545
545
|
DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive__namespace.SubTrigger.displayName;
|
|
546
|
-
var DropdownMenuSubContent =
|
|
546
|
+
var DropdownMenuSubContent = React26__default.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.SubContent, { ref, className: cn(contentStyle, className), ...props }));
|
|
547
547
|
DropdownMenuSubContent.displayName = DropdownMenuPrimitive__namespace.SubContent.displayName;
|
|
548
548
|
var DropdownMenuShortcut = ({ className, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("ml-auto text-xs tracking-widest opacity-60", className), ...props });
|
|
549
549
|
DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
|
|
@@ -555,33 +555,33 @@ var ContextMenuSub = ContextMenuPrimitive__namespace.Sub;
|
|
|
555
555
|
var ContextMenuRadioGroup = ContextMenuPrimitive__namespace.RadioGroup;
|
|
556
556
|
var contentStyle2 = "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";
|
|
557
557
|
var itemStyle2 = "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";
|
|
558
|
-
var ContextMenuContent =
|
|
558
|
+
var ContextMenuContent = React26__default.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(ContextMenuPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(ContextMenuPrimitive__namespace.Content, { ref, className: cn(contentStyle2, className), ...props }) }));
|
|
559
559
|
ContextMenuContent.displayName = ContextMenuPrimitive__namespace.Content.displayName;
|
|
560
|
-
var ContextMenuItem =
|
|
560
|
+
var ContextMenuItem = React26__default.default.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(ContextMenuPrimitive__namespace.Item, { ref, className: cn(itemStyle2, inset && "pl-8", className), ...props }));
|
|
561
561
|
ContextMenuItem.displayName = ContextMenuPrimitive__namespace.Item.displayName;
|
|
562
|
-
var ContextMenuCheckboxItem =
|
|
562
|
+
var ContextMenuCheckboxItem = React26__default.default.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(ContextMenuPrimitive__namespace.CheckboxItem, { ref, className: cn(itemStyle2, "pl-8", className), checked, ...props, children: [
|
|
563
563
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(ContextMenuPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: "h-4 w-4" }) }) }),
|
|
564
564
|
children
|
|
565
565
|
] }));
|
|
566
566
|
ContextMenuCheckboxItem.displayName = ContextMenuPrimitive__namespace.CheckboxItem.displayName;
|
|
567
|
-
var ContextMenuRadioItem =
|
|
567
|
+
var ContextMenuRadioItem = React26__default.default.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(ContextMenuPrimitive__namespace.RadioItem, { ref, className: cn(itemStyle2, "pl-8", className), ...props, children: [
|
|
568
568
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(ContextMenuPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Circle, { className: "h-2 w-2 fill-current" }) }) }),
|
|
569
569
|
children
|
|
570
570
|
] }));
|
|
571
571
|
ContextMenuRadioItem.displayName = ContextMenuPrimitive__namespace.RadioItem.displayName;
|
|
572
|
-
var ContextMenuLabel =
|
|
572
|
+
var ContextMenuLabel = React26__default.default.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(ContextMenuPrimitive__namespace.Label, { ref, className: cn("px-2 py-1.5 text-xs font-semibold text-[hsl(var(--muted-foreground))]", inset && "pl-8", className), ...props }));
|
|
573
573
|
ContextMenuLabel.displayName = ContextMenuPrimitive__namespace.Label.displayName;
|
|
574
|
-
var ContextMenuSeparator =
|
|
574
|
+
var ContextMenuSeparator = React26__default.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(ContextMenuPrimitive__namespace.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-[hsl(var(--muted))]", className), ...props }));
|
|
575
575
|
ContextMenuSeparator.displayName = ContextMenuPrimitive__namespace.Separator.displayName;
|
|
576
|
-
var ContextMenuSubTrigger =
|
|
576
|
+
var ContextMenuSubTrigger = React26__default.default.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(ContextMenuPrimitive__namespace.SubTrigger, { ref, className: cn(itemStyle2, inset && "pl-8", className), ...props, children: [
|
|
577
577
|
children,
|
|
578
578
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRight, { className: "ml-auto h-4 w-4" })
|
|
579
579
|
] }));
|
|
580
580
|
ContextMenuSubTrigger.displayName = ContextMenuPrimitive__namespace.SubTrigger.displayName;
|
|
581
|
-
var ContextMenuSubContent =
|
|
581
|
+
var ContextMenuSubContent = React26__default.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(ContextMenuPrimitive__namespace.SubContent, { ref, className: cn(contentStyle2, className), ...props }));
|
|
582
582
|
ContextMenuSubContent.displayName = ContextMenuPrimitive__namespace.SubContent.displayName;
|
|
583
583
|
var ContextMenuShortcut = ({ className, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("ml-auto text-xs tracking-widest opacity-60", className), ...props });
|
|
584
|
-
var Card =
|
|
584
|
+
var Card = React26__default.default.forwardRef(
|
|
585
585
|
({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
586
586
|
"div",
|
|
587
587
|
{
|
|
@@ -592,23 +592,23 @@ var Card = React14__default.default.forwardRef(
|
|
|
592
592
|
)
|
|
593
593
|
);
|
|
594
594
|
Card.displayName = "Card";
|
|
595
|
-
var CardHeader =
|
|
595
|
+
var CardHeader = React26__default.default.forwardRef(
|
|
596
596
|
({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("flex flex-col space-y-1.5 p-6", className), ...props })
|
|
597
597
|
);
|
|
598
598
|
CardHeader.displayName = "CardHeader";
|
|
599
|
-
var CardTitle =
|
|
599
|
+
var CardTitle = React26__default.default.forwardRef(
|
|
600
600
|
({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("font-semibold leading-none tracking-tight", className), ...props })
|
|
601
601
|
);
|
|
602
602
|
CardTitle.displayName = "CardTitle";
|
|
603
|
-
var CardDescription =
|
|
603
|
+
var CardDescription = React26__default.default.forwardRef(
|
|
604
604
|
({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("text-sm text-muted-foreground", className), ...props })
|
|
605
605
|
);
|
|
606
606
|
CardDescription.displayName = "CardDescription";
|
|
607
|
-
var CardContent =
|
|
607
|
+
var CardContent = React26__default.default.forwardRef(
|
|
608
608
|
({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("p-6 pt-0", className), ...props })
|
|
609
609
|
);
|
|
610
610
|
CardContent.displayName = "CardContent";
|
|
611
|
-
var CardFooter =
|
|
611
|
+
var CardFooter = React26__default.default.forwardRef(
|
|
612
612
|
({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("flex items-center p-6 pt-0", className), ...props })
|
|
613
613
|
);
|
|
614
614
|
CardFooter.displayName = "CardFooter";
|
|
@@ -629,7 +629,7 @@ var badgeVariants = classVarianceAuthority.cva(
|
|
|
629
629
|
function Badge({ className, variant, ...props }) {
|
|
630
630
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn(badgeVariants({ variant }), className), ...props });
|
|
631
631
|
}
|
|
632
|
-
var Avatar =
|
|
632
|
+
var Avatar = React26__default.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
633
633
|
AvatarPrimitive__namespace.Root,
|
|
634
634
|
{
|
|
635
635
|
ref,
|
|
@@ -638,9 +638,9 @@ var Avatar = React14__default.default.forwardRef(({ className, ...props }, ref)
|
|
|
638
638
|
}
|
|
639
639
|
));
|
|
640
640
|
Avatar.displayName = AvatarPrimitive__namespace.Root.displayName;
|
|
641
|
-
var AvatarImage =
|
|
641
|
+
var AvatarImage = React26__default.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(AvatarPrimitive__namespace.Image, { ref, className: cn("aspect-square h-full w-full object-cover", className), ...props }));
|
|
642
642
|
AvatarImage.displayName = AvatarPrimitive__namespace.Image.displayName;
|
|
643
|
-
var AvatarFallback =
|
|
643
|
+
var AvatarFallback = React26__default.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
644
644
|
AvatarPrimitive__namespace.Fallback,
|
|
645
645
|
{
|
|
646
646
|
ref,
|
|
@@ -649,7 +649,7 @@ var AvatarFallback = React14__default.default.forwardRef(({ className, ...props
|
|
|
649
649
|
}
|
|
650
650
|
));
|
|
651
651
|
AvatarFallback.displayName = AvatarPrimitive__namespace.Fallback.displayName;
|
|
652
|
-
var Separator4 =
|
|
652
|
+
var Separator4 = React26__default.default.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
653
653
|
SeparatorPrimitive__namespace.Root,
|
|
654
654
|
{
|
|
655
655
|
ref,
|
|
@@ -673,7 +673,7 @@ function Skeleton({ className, ...props }) {
|
|
|
673
673
|
}
|
|
674
674
|
);
|
|
675
675
|
}
|
|
676
|
-
var Progress =
|
|
676
|
+
var Progress = React26__default.default.forwardRef(({ className, value, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
677
677
|
ProgressPrimitive__namespace.Root,
|
|
678
678
|
{
|
|
679
679
|
ref,
|
|
@@ -690,7 +690,7 @@ var Progress = React14__default.default.forwardRef(({ className, value, ...props
|
|
|
690
690
|
));
|
|
691
691
|
Progress.displayName = ProgressPrimitive__namespace.Root.displayName;
|
|
692
692
|
var Tabs = TabsPrimitive__namespace.Root;
|
|
693
|
-
var TabsList =
|
|
693
|
+
var TabsList = React26__default.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
694
694
|
TabsPrimitive__namespace.List,
|
|
695
695
|
{
|
|
696
696
|
ref,
|
|
@@ -702,7 +702,7 @@ var TabsList = React14__default.default.forwardRef(({ className, ...props }, ref
|
|
|
702
702
|
}
|
|
703
703
|
));
|
|
704
704
|
TabsList.displayName = TabsPrimitive__namespace.List.displayName;
|
|
705
|
-
var TabsTrigger =
|
|
705
|
+
var TabsTrigger = React26__default.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
706
706
|
TabsPrimitive__namespace.Trigger,
|
|
707
707
|
{
|
|
708
708
|
ref,
|
|
@@ -717,7 +717,7 @@ var TabsTrigger = React14__default.default.forwardRef(({ className, ...props },
|
|
|
717
717
|
}
|
|
718
718
|
));
|
|
719
719
|
TabsTrigger.displayName = TabsPrimitive__namespace.Trigger.displayName;
|
|
720
|
-
var TabsContent =
|
|
720
|
+
var TabsContent = React26__default.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
721
721
|
TabsPrimitive__namespace.Content,
|
|
722
722
|
{
|
|
723
723
|
ref,
|
|
@@ -750,7 +750,7 @@ var justifyMap = {
|
|
|
750
750
|
around: "justify-around",
|
|
751
751
|
evenly: "justify-evenly"
|
|
752
752
|
};
|
|
753
|
-
var Stack =
|
|
753
|
+
var Stack = React26__default.default.forwardRef(
|
|
754
754
|
({ className, gap, direction = "col", align, justify, wrap, style, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
755
755
|
"div",
|
|
756
756
|
{
|
|
@@ -769,11 +769,11 @@ var Stack = React14__default.default.forwardRef(
|
|
|
769
769
|
)
|
|
770
770
|
);
|
|
771
771
|
Stack.displayName = "Stack";
|
|
772
|
-
var HStack =
|
|
772
|
+
var HStack = React26__default.default.forwardRef(
|
|
773
773
|
(props, ref) => /* @__PURE__ */ jsxRuntime.jsx(Stack, { ref, direction: "row", ...props })
|
|
774
774
|
);
|
|
775
775
|
HStack.displayName = "HStack";
|
|
776
|
-
var VStack =
|
|
776
|
+
var VStack = React26__default.default.forwardRef(
|
|
777
777
|
(props, ref) => /* @__PURE__ */ jsxRuntime.jsx(Stack, { ref, direction: "col", ...props })
|
|
778
778
|
);
|
|
779
779
|
VStack.displayName = "VStack";
|
|
@@ -784,7 +784,7 @@ var sizeMap = {
|
|
|
784
784
|
xl: "max-w-screen-xl",
|
|
785
785
|
full: "max-w-full"
|
|
786
786
|
};
|
|
787
|
-
var Container =
|
|
787
|
+
var Container = React26__default.default.forwardRef(
|
|
788
788
|
({ className, size = "lg", noPadding = false, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
789
789
|
"div",
|
|
790
790
|
{
|
|
@@ -800,7 +800,7 @@ var Container = React14__default.default.forwardRef(
|
|
|
800
800
|
)
|
|
801
801
|
);
|
|
802
802
|
Container.displayName = "Container";
|
|
803
|
-
var Page =
|
|
803
|
+
var Page = React26__default.default.forwardRef(
|
|
804
804
|
({ className, maxWidth, style, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
805
805
|
"div",
|
|
806
806
|
{
|
|
@@ -812,7 +812,7 @@ var Page = React14__default.default.forwardRef(
|
|
|
812
812
|
)
|
|
813
813
|
);
|
|
814
814
|
Page.displayName = "Page";
|
|
815
|
-
var PageHeader =
|
|
815
|
+
var PageHeader = React26__default.default.forwardRef(
|
|
816
816
|
({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
817
817
|
"div",
|
|
818
818
|
{
|
|
@@ -823,7 +823,7 @@ var PageHeader = React14__default.default.forwardRef(
|
|
|
823
823
|
)
|
|
824
824
|
);
|
|
825
825
|
PageHeader.displayName = "PageHeader";
|
|
826
|
-
var PageTitle =
|
|
826
|
+
var PageTitle = React26__default.default.forwardRef(
|
|
827
827
|
({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
828
828
|
"h1",
|
|
829
829
|
{
|
|
@@ -834,28 +834,28 @@ var PageTitle = React14__default.default.forwardRef(
|
|
|
834
834
|
)
|
|
835
835
|
);
|
|
836
836
|
PageTitle.displayName = "PageTitle";
|
|
837
|
-
var PageDescription =
|
|
837
|
+
var PageDescription = React26__default.default.forwardRef(
|
|
838
838
|
({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("p", { ref, className: cn("text-sm text-[hsl(var(--muted-foreground))] mt-1", className), ...props })
|
|
839
839
|
);
|
|
840
840
|
PageDescription.displayName = "PageDescription";
|
|
841
|
-
var PageActions =
|
|
841
|
+
var PageActions = React26__default.default.forwardRef(
|
|
842
842
|
({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("flex items-center gap-2 shrink-0", className), ...props })
|
|
843
843
|
);
|
|
844
844
|
PageActions.displayName = "PageActions";
|
|
845
|
-
var PageBody =
|
|
845
|
+
var PageBody = React26__default.default.forwardRef(
|
|
846
846
|
({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("flex-1 p-6", className), ...props })
|
|
847
847
|
);
|
|
848
848
|
PageBody.displayName = "PageBody";
|
|
849
|
-
var SidebarCtx =
|
|
850
|
-
var useSidebarCtx = () =>
|
|
849
|
+
var SidebarCtx = React26__default.default.createContext({ collapsed: false });
|
|
850
|
+
var useSidebarCtx = () => React26__default.default.useContext(SidebarCtx);
|
|
851
851
|
var makeSlot = (name, cls) => {
|
|
852
|
-
const C =
|
|
852
|
+
const C = React26__default.default.forwardRef(
|
|
853
853
|
({ className, ...p }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn(cls, className), ...p })
|
|
854
854
|
);
|
|
855
855
|
C.displayName = name;
|
|
856
856
|
return C;
|
|
857
857
|
};
|
|
858
|
-
var Sidebar =
|
|
858
|
+
var Sidebar = React26__default.default.forwardRef(
|
|
859
859
|
({ className, collapsed = false, onCollapse, width = "240px", style, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(SidebarCtx.Provider, { value: { collapsed }, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
860
860
|
"div",
|
|
861
861
|
{
|
|
@@ -883,7 +883,7 @@ var SidebarContent = makeSlot("SidebarContent", "flex-1 overflow-y-auto py-2");
|
|
|
883
883
|
var SidebarFooter = makeSlot("SidebarFooter", "px-3 py-3 border-t border-[hsl(var(--border))] shrink-0");
|
|
884
884
|
var SidebarGroup = makeSlot("SidebarGroup", "mb-2");
|
|
885
885
|
var SidebarSeparator = makeSlot("SidebarSeparator", "h-px bg-[hsl(var(--border))] mx-3 my-2");
|
|
886
|
-
var SidebarGroupLabel =
|
|
886
|
+
var SidebarGroupLabel = React26__default.default.forwardRef(
|
|
887
887
|
({ className, ...props }, ref) => {
|
|
888
888
|
const { collapsed } = useSidebarCtx();
|
|
889
889
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -897,7 +897,7 @@ var SidebarGroupLabel = React14__default.default.forwardRef(
|
|
|
897
897
|
}
|
|
898
898
|
);
|
|
899
899
|
SidebarGroupLabel.displayName = "SidebarGroupLabel";
|
|
900
|
-
var SidebarItem =
|
|
900
|
+
var SidebarItem = React26__default.default.forwardRef(
|
|
901
901
|
({ className, icon, label, active, href, badge, onClick, ...props }, ref) => {
|
|
902
902
|
const { collapsed } = useSidebarCtx();
|
|
903
903
|
const cls = cn(
|
|
@@ -917,7 +917,7 @@ var SidebarItem = React14__default.default.forwardRef(
|
|
|
917
917
|
}
|
|
918
918
|
);
|
|
919
919
|
SidebarItem.displayName = "SidebarItem";
|
|
920
|
-
var Navbar =
|
|
920
|
+
var Navbar = React26__default.default.forwardRef(
|
|
921
921
|
({ className, sticky = false, border = true, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
922
922
|
"nav",
|
|
923
923
|
{
|
|
@@ -933,7 +933,7 @@ var Navbar = React14__default.default.forwardRef(
|
|
|
933
933
|
)
|
|
934
934
|
);
|
|
935
935
|
Navbar.displayName = "Navbar";
|
|
936
|
-
var NavbarBrand =
|
|
936
|
+
var NavbarBrand = React26__default.default.forwardRef(
|
|
937
937
|
({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("flex items-center gap-2 px-4 shrink-0", className), ...props })
|
|
938
938
|
);
|
|
939
939
|
NavbarBrand.displayName = "NavbarBrand";
|
|
@@ -942,7 +942,7 @@ var alignMap2 = {
|
|
|
942
942
|
center: "justify-center flex-1",
|
|
943
943
|
end: "justify-end ml-auto"
|
|
944
944
|
};
|
|
945
|
-
var NavbarContent =
|
|
945
|
+
var NavbarContent = React26__default.default.forwardRef(
|
|
946
946
|
({ className, align = "start", ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
947
947
|
"div",
|
|
948
948
|
{
|
|
@@ -953,44 +953,106 @@ var NavbarContent = React14__default.default.forwardRef(
|
|
|
953
953
|
)
|
|
954
954
|
);
|
|
955
955
|
NavbarContent.displayName = "NavbarContent";
|
|
956
|
-
var NavbarItem =
|
|
956
|
+
var NavbarItem = React26__default.default.forwardRef(
|
|
957
957
|
({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("flex items-center", className), ...props })
|
|
958
958
|
);
|
|
959
959
|
NavbarItem.displayName = "NavbarItem";
|
|
960
|
-
var AppShellCtx =
|
|
960
|
+
var AppShellCtx = React26__default.default.createContext({
|
|
961
961
|
collapsed: false,
|
|
962
962
|
setCollapsed: () => {
|
|
963
|
+
},
|
|
964
|
+
mobileOpen: false,
|
|
965
|
+
setMobileOpen: () => {
|
|
963
966
|
}
|
|
964
967
|
});
|
|
965
|
-
var useAppShell = () =>
|
|
966
|
-
var AppShell =
|
|
968
|
+
var useAppShell = () => React26__default.default.useContext(AppShellCtx);
|
|
969
|
+
var AppShell = React26__default.default.forwardRef(
|
|
967
970
|
({ className, defaultCollapsed = false, children, ...props }, ref) => {
|
|
968
|
-
const [collapsed, setCollapsed] =
|
|
969
|
-
|
|
971
|
+
const [collapsed, setCollapsed] = React26__default.default.useState(defaultCollapsed);
|
|
972
|
+
const [mobileOpen, setMobileOpen] = React26__default.default.useState(false);
|
|
973
|
+
React26__default.default.useEffect(() => {
|
|
974
|
+
const handleClick = (e) => {
|
|
975
|
+
const target = e.target;
|
|
976
|
+
if (target.closest("a[href]") || target.closest("[data-mobile-close]")) {
|
|
977
|
+
setMobileOpen(false);
|
|
978
|
+
}
|
|
979
|
+
};
|
|
980
|
+
document.addEventListener("click", handleClick);
|
|
981
|
+
return () => document.removeEventListener("click", handleClick);
|
|
982
|
+
}, []);
|
|
983
|
+
return /* @__PURE__ */ jsxRuntime.jsx(AppShellCtx.Provider, { value: { collapsed, setCollapsed, mobileOpen, setMobileOpen }, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
970
984
|
"div",
|
|
971
985
|
{
|
|
972
986
|
ref,
|
|
973
|
-
className: cn("flex h-screen w-full overflow-hidden bg-
|
|
987
|
+
className: cn("flex h-screen w-full overflow-hidden bg-background", className),
|
|
974
988
|
...props,
|
|
975
|
-
children
|
|
989
|
+
children: [
|
|
990
|
+
mobileOpen && /* @__PURE__ */ jsxRuntime.jsx(
|
|
991
|
+
"div",
|
|
992
|
+
{
|
|
993
|
+
className: "fixed inset-0 z-40 bg-black/50 md:hidden",
|
|
994
|
+
onClick: () => setMobileOpen(false)
|
|
995
|
+
}
|
|
996
|
+
),
|
|
997
|
+
children
|
|
998
|
+
]
|
|
976
999
|
}
|
|
977
1000
|
) });
|
|
978
1001
|
}
|
|
979
1002
|
);
|
|
980
1003
|
AppShell.displayName = "AppShell";
|
|
981
|
-
var AppShellSidebar =
|
|
982
|
-
({ className, ...props }, ref) =>
|
|
1004
|
+
var AppShellSidebar = React26__default.default.forwardRef(
|
|
1005
|
+
({ className, ...props }, ref) => {
|
|
1006
|
+
const { mobileOpen } = useAppShell();
|
|
1007
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1008
|
+
"div",
|
|
1009
|
+
{
|
|
1010
|
+
ref,
|
|
1011
|
+
className: cn(
|
|
1012
|
+
// Desktop: always visible
|
|
1013
|
+
"shrink-0 h-full",
|
|
1014
|
+
// Mobile: hidden by default, slide in as fixed overlay when open
|
|
1015
|
+
"fixed inset-y-0 left-0 z-50 md:relative md:translate-x-0 transition-transform duration-200",
|
|
1016
|
+
mobileOpen ? "translate-x-0" : "-translate-x-full md:translate-x-0",
|
|
1017
|
+
className
|
|
1018
|
+
),
|
|
1019
|
+
...props
|
|
1020
|
+
}
|
|
1021
|
+
);
|
|
1022
|
+
}
|
|
983
1023
|
);
|
|
984
1024
|
AppShellSidebar.displayName = "AppShellSidebar";
|
|
985
|
-
var AppShellMain =
|
|
1025
|
+
var AppShellMain = React26__default.default.forwardRef(
|
|
986
1026
|
({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("flex-1 min-w-0 flex flex-col overflow-auto", className), ...props })
|
|
987
1027
|
);
|
|
988
1028
|
AppShellMain.displayName = "AppShellMain";
|
|
989
|
-
var
|
|
1029
|
+
var MobileSidebarTrigger = React26__default.default.forwardRef(
|
|
1030
|
+
({ className, ...props }, ref) => {
|
|
1031
|
+
const { mobileOpen, setMobileOpen } = useAppShell();
|
|
1032
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1033
|
+
"button",
|
|
1034
|
+
{
|
|
1035
|
+
ref,
|
|
1036
|
+
onClick: () => setMobileOpen(!mobileOpen),
|
|
1037
|
+
"aria-label": mobileOpen ? "Close menu" : "Open menu",
|
|
1038
|
+
className: cn(
|
|
1039
|
+
"md:hidden inline-flex items-center justify-center rounded-md p-2",
|
|
1040
|
+
"text-muted-foreground hover:bg-accent hover:text-accent-foreground",
|
|
1041
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
1042
|
+
className
|
|
1043
|
+
),
|
|
1044
|
+
...props,
|
|
1045
|
+
children: mobileOpen ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "h-5 w-5" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Menu, { className: "h-5 w-5" })
|
|
1046
|
+
}
|
|
1047
|
+
);
|
|
1048
|
+
}
|
|
1049
|
+
);
|
|
1050
|
+
MobileSidebarTrigger.displayName = "MobileSidebarTrigger";
|
|
1051
|
+
var SplitPage = React26__default.default.forwardRef(
|
|
990
1052
|
({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("flex h-full w-full overflow-hidden", className), ...props })
|
|
991
1053
|
);
|
|
992
1054
|
SplitPage.displayName = "SplitPage";
|
|
993
|
-
var SplitPageList =
|
|
1055
|
+
var SplitPageList = React26__default.default.forwardRef(
|
|
994
1056
|
({ className, width = "320px", style, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
995
1057
|
"div",
|
|
996
1058
|
{
|
|
@@ -1002,11 +1064,11 @@ var SplitPageList = React14__default.default.forwardRef(
|
|
|
1002
1064
|
)
|
|
1003
1065
|
);
|
|
1004
1066
|
SplitPageList.displayName = "SplitPageList";
|
|
1005
|
-
var SplitPageDetail =
|
|
1067
|
+
var SplitPageDetail = React26__default.default.forwardRef(
|
|
1006
1068
|
({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("flex-1 min-w-0 h-full overflow-auto", className), ...props })
|
|
1007
1069
|
);
|
|
1008
1070
|
SplitPageDetail.displayName = "SplitPageDetail";
|
|
1009
|
-
var ResizeBox =
|
|
1071
|
+
var ResizeBox = React26__default.default.forwardRef(
|
|
1010
1072
|
({ className, resize = "both", minWidth = 100, minHeight = 100, style, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1011
1073
|
"div",
|
|
1012
1074
|
{
|
|
@@ -1023,7 +1085,7 @@ var HandleIcon = () => /* @__PURE__ */ jsxRuntime.jsxs("svg", { width: "10", hei
|
|
|
1023
1085
|
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M8 5L5 8", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" }),
|
|
1024
1086
|
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M8 8L8 8", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" })
|
|
1025
1087
|
] });
|
|
1026
|
-
var ResizeHandle =
|
|
1088
|
+
var ResizeHandle = React26__default.default.forwardRef(
|
|
1027
1089
|
({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1028
1090
|
"div",
|
|
1029
1091
|
{
|
|
@@ -1047,7 +1109,7 @@ function Field({ label, description, error, required, children, className }) {
|
|
|
1047
1109
|
error && /* @__PURE__ */ jsxRuntime.jsx(FieldError, { children: error })
|
|
1048
1110
|
] });
|
|
1049
1111
|
}
|
|
1050
|
-
var FieldLabel =
|
|
1112
|
+
var FieldLabel = React26__default.default.forwardRef(
|
|
1051
1113
|
({ className, required, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1052
1114
|
"label",
|
|
1053
1115
|
{
|
|
@@ -1062,7 +1124,7 @@ var FieldLabel = React14__default.default.forwardRef(
|
|
|
1062
1124
|
)
|
|
1063
1125
|
);
|
|
1064
1126
|
FieldLabel.displayName = "FieldLabel";
|
|
1065
|
-
var FieldDescription =
|
|
1127
|
+
var FieldDescription = React26__default.default.forwardRef(
|
|
1066
1128
|
({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1067
1129
|
"p",
|
|
1068
1130
|
{
|
|
@@ -1073,7 +1135,7 @@ var FieldDescription = React14__default.default.forwardRef(
|
|
|
1073
1135
|
)
|
|
1074
1136
|
);
|
|
1075
1137
|
FieldDescription.displayName = "FieldDescription";
|
|
1076
|
-
var FieldError =
|
|
1138
|
+
var FieldError = React26__default.default.forwardRef(
|
|
1077
1139
|
({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1078
1140
|
"p",
|
|
1079
1141
|
{
|
|
@@ -1093,9 +1155,9 @@ function getStrength(value) {
|
|
|
1093
1155
|
return { level: "medium", width: "w-2/3", color: "bg-yellow-500" };
|
|
1094
1156
|
return { level: "strong", width: "w-full", color: "bg-green-500" };
|
|
1095
1157
|
}
|
|
1096
|
-
var PasswordInput =
|
|
1158
|
+
var PasswordInput = React26__default.default.forwardRef(
|
|
1097
1159
|
({ className, strength, ...props }, ref) => {
|
|
1098
|
-
const [show, setShow] =
|
|
1160
|
+
const [show, setShow] = React26.useState(false);
|
|
1099
1161
|
const value = String(props.value ?? "");
|
|
1100
1162
|
const str = getStrength(value);
|
|
1101
1163
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-1.5", children: [
|
|
@@ -1128,9 +1190,9 @@ var PasswordInput = React14__default.default.forwardRef(
|
|
|
1128
1190
|
}
|
|
1129
1191
|
);
|
|
1130
1192
|
PasswordInput.displayName = "PasswordInput";
|
|
1131
|
-
var SearchInput =
|
|
1193
|
+
var SearchInput = React26__default.default.forwardRef(
|
|
1132
1194
|
({ className, shortcut, onClear, onChange, value: valueProp, defaultValue, ...props }, ref) => {
|
|
1133
|
-
const [internalValue, setInternalValue] =
|
|
1195
|
+
const [internalValue, setInternalValue] = React26.useState(defaultValue ?? "");
|
|
1134
1196
|
const isControlled = valueProp !== void 0;
|
|
1135
1197
|
const value = isControlled ? String(valueProp) : String(internalValue);
|
|
1136
1198
|
function handleChange(e) {
|
|
@@ -1186,8 +1248,8 @@ function filterBySize(files, maxSize) {
|
|
|
1186
1248
|
return maxSize ? files.filter((f) => f.size <= maxSize) : files;
|
|
1187
1249
|
}
|
|
1188
1250
|
function FileUpload({ accept, multiple, maxSize, onFiles, className, disabled }) {
|
|
1189
|
-
const inputRef =
|
|
1190
|
-
const [dragging, setDragging] =
|
|
1251
|
+
const inputRef = React26.useRef(null);
|
|
1252
|
+
const [dragging, setDragging] = React26.useState(false);
|
|
1191
1253
|
function handleFiles(raw) {
|
|
1192
1254
|
if (!raw)
|
|
1193
1255
|
return;
|
|
@@ -1307,9 +1369,9 @@ function CalendarGrid({ year, month, selected, onSelect }) {
|
|
|
1307
1369
|
] });
|
|
1308
1370
|
}
|
|
1309
1371
|
function DatePicker({ value, onChange, placeholder = "Pick a date", disabled, className }) {
|
|
1310
|
-
const [open, setOpen] =
|
|
1372
|
+
const [open, setOpen] = React26.useState(false);
|
|
1311
1373
|
const now = value ?? /* @__PURE__ */ new Date();
|
|
1312
|
-
const [view, setView] =
|
|
1374
|
+
const [view, setView] = React26.useState({ year: now.getFullYear(), month: now.getMonth() });
|
|
1313
1375
|
function navigate(delta) {
|
|
1314
1376
|
setView((v) => {
|
|
1315
1377
|
const date = new Date(v.year, v.month + delta);
|
|
@@ -1353,7 +1415,7 @@ function FormField(props) {
|
|
|
1353
1415
|
function FormItem({ className, ...props }) {
|
|
1354
1416
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex flex-col gap-1.5", className), ...props });
|
|
1355
1417
|
}
|
|
1356
|
-
var FormLabel =
|
|
1418
|
+
var FormLabel = React26__default.default.forwardRef(
|
|
1357
1419
|
({ className, error, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1358
1420
|
"label",
|
|
1359
1421
|
{
|
|
@@ -1368,9 +1430,9 @@ var FormLabel = React14__default.default.forwardRef(
|
|
|
1368
1430
|
)
|
|
1369
1431
|
);
|
|
1370
1432
|
FormLabel.displayName = "FormLabel";
|
|
1371
|
-
var FormControl =
|
|
1433
|
+
var FormControl = React26__default.default.forwardRef(
|
|
1372
1434
|
({ ...props }, ref) => {
|
|
1373
|
-
const id =
|
|
1435
|
+
const id = React26.useId();
|
|
1374
1436
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, id, ...props });
|
|
1375
1437
|
}
|
|
1376
1438
|
);
|
|
@@ -1386,15 +1448,15 @@ function FormMessage({ className, children, name }) {
|
|
|
1386
1448
|
return null;
|
|
1387
1449
|
return /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-xs text-[hsl(var(--destructive))]", className), children: message });
|
|
1388
1450
|
}
|
|
1389
|
-
var StepFormContext =
|
|
1451
|
+
var StepFormContext = React26.createContext(null);
|
|
1390
1452
|
function useStepForm() {
|
|
1391
|
-
const ctx =
|
|
1453
|
+
const ctx = React26.useContext(StepFormContext);
|
|
1392
1454
|
if (!ctx)
|
|
1393
1455
|
throw new Error("useStepForm must be used within StepForm");
|
|
1394
1456
|
return ctx;
|
|
1395
1457
|
}
|
|
1396
1458
|
function StepForm({ steps, onSubmit, children, className }) {
|
|
1397
|
-
const [currentStep, setCurrentStep] =
|
|
1459
|
+
const [currentStep, setCurrentStep] = React26.useState(0);
|
|
1398
1460
|
const totalSteps = steps.length;
|
|
1399
1461
|
const ctx = {
|
|
1400
1462
|
currentStep,
|
|
@@ -1405,7 +1467,7 @@ function StepForm({ steps, onSubmit, children, className }) {
|
|
|
1405
1467
|
isFirst: currentStep === 0,
|
|
1406
1468
|
isLast: currentStep === totalSteps - 1
|
|
1407
1469
|
};
|
|
1408
|
-
const childArray =
|
|
1470
|
+
const childArray = React26__default.default.Children.toArray(children);
|
|
1409
1471
|
const currentChild = childArray[currentStep];
|
|
1410
1472
|
return /* @__PURE__ */ jsxRuntime.jsx(StepFormContext.Provider, { value: ctx, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col gap-6", className), children: [
|
|
1411
1473
|
/* @__PURE__ */ jsxRuntime.jsx(StepIndicator, { steps, currentStep }),
|
|
@@ -1414,7 +1476,7 @@ function StepForm({ steps, onSubmit, children, className }) {
|
|
|
1414
1476
|
] }) });
|
|
1415
1477
|
}
|
|
1416
1478
|
function StepIndicator({ steps, currentStep }) {
|
|
1417
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-2", children: steps.map((label, i) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1479
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-2", children: steps.map((label, i) => /* @__PURE__ */ jsxRuntime.jsxs(React26__default.default.Fragment, { children: [
|
|
1418
1480
|
i > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("h-px flex-1 bg-[hsl(var(--border))]", i <= currentStep && "bg-[hsl(var(--primary))]") }),
|
|
1419
1481
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center gap-1", children: [
|
|
1420
1482
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: cn(
|
|
@@ -1495,7 +1557,7 @@ function ObjectField({
|
|
|
1495
1557
|
children,
|
|
1496
1558
|
className
|
|
1497
1559
|
}) {
|
|
1498
|
-
const [open, setOpen] =
|
|
1560
|
+
const [open, setOpen] = React26.useState(defaultOpen);
|
|
1499
1561
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("rounded-md border border-[hsl(var(--border))] overflow-hidden", className), children: [
|
|
1500
1562
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1501
1563
|
"div",
|
|
@@ -1649,7 +1711,7 @@ function DataTableToolbar({ table, searchColumn }) {
|
|
|
1649
1711
|
) });
|
|
1650
1712
|
}
|
|
1651
1713
|
function DataTable({ columns, data, pageSize = 10, searchable, searchColumn, loading }) {
|
|
1652
|
-
const [sorting, setSorting] =
|
|
1714
|
+
const [sorting, setSorting] = React26__default.default.useState([]);
|
|
1653
1715
|
const table = reactTable.useReactTable({
|
|
1654
1716
|
data,
|
|
1655
1717
|
columns,
|
|
@@ -1676,8 +1738,8 @@ function DataTable({ columns, data, pageSize = 10, searchable, searchColumn, loa
|
|
|
1676
1738
|
] });
|
|
1677
1739
|
}
|
|
1678
1740
|
function EditableCell({ value: initial, onSave }) {
|
|
1679
|
-
const [editing, setEditing] =
|
|
1680
|
-
const [val, setVal] =
|
|
1741
|
+
const [editing, setEditing] = React26__default.default.useState(false);
|
|
1742
|
+
const [val, setVal] = React26__default.default.useState(String(initial ?? ""));
|
|
1681
1743
|
const commit = () => {
|
|
1682
1744
|
onSave(val);
|
|
1683
1745
|
setEditing(false);
|
|
@@ -1710,10 +1772,10 @@ var selectionCol = () => ({
|
|
|
1710
1772
|
enableResizing: false
|
|
1711
1773
|
});
|
|
1712
1774
|
function DataGrid({ columns, data: initialData, onDataChange, editable, className }) {
|
|
1713
|
-
const [data, setData] =
|
|
1714
|
-
const [rowSelection, setRowSelection] =
|
|
1775
|
+
const [data, setData] = React26__default.default.useState(initialData);
|
|
1776
|
+
const [rowSelection, setRowSelection] = React26__default.default.useState({});
|
|
1715
1777
|
const columnResizeMode = "onChange";
|
|
1716
|
-
const editableColumns =
|
|
1778
|
+
const editableColumns = React26__default.default.useMemo(() => {
|
|
1717
1779
|
if (!editable)
|
|
1718
1780
|
return columns;
|
|
1719
1781
|
return columns.map((col) => ({
|
|
@@ -1733,7 +1795,7 @@ function DataGrid({ columns, data: initialData, onDataChange, editable, classNam
|
|
|
1733
1795
|
)
|
|
1734
1796
|
}));
|
|
1735
1797
|
}, [columns, data, editable, onDataChange]);
|
|
1736
|
-
const allColumns =
|
|
1798
|
+
const allColumns = React26__default.default.useMemo(() => [selectionCol(), ...editableColumns], [editableColumns]);
|
|
1737
1799
|
const table = reactTable.useReactTable({
|
|
1738
1800
|
data,
|
|
1739
1801
|
columns: allColumns,
|
|
@@ -1751,7 +1813,7 @@ function DataGrid({ columns, data: initialData, onDataChange, editable, classNam
|
|
|
1751
1813
|
/* @__PURE__ */ jsxRuntime.jsx("tbody", { children: table.getRowModel().rows.map((row) => /* @__PURE__ */ jsxRuntime.jsx("tr", { className: cn("border-t border-[hsl(var(--border))] hover:bg-[hsl(var(--muted)/0.3)] transition-colors", row.getIsSelected() && "bg-[hsl(var(--primary)/0.06)]"), children: row.getVisibleCells().map((cell) => /* @__PURE__ */ jsxRuntime.jsx("td", { style: { width: cell.column.getSize() }, className: "px-3 py-2 border-r border-[hsl(var(--border))] last:border-r-0", children: reactTable.flexRender(cell.column.columnDef.cell, cell.getContext()) }, cell.id)) }, row.id)) })
|
|
1752
1814
|
] }) });
|
|
1753
1815
|
}
|
|
1754
|
-
var EmptyStateIcon =
|
|
1816
|
+
var EmptyStateIcon = React26__default.default.forwardRef(
|
|
1755
1817
|
({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.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 })
|
|
1756
1818
|
);
|
|
1757
1819
|
EmptyStateIcon.displayName = "EmptyStateIcon";
|
|
@@ -1765,7 +1827,7 @@ function EmptyState({ icon, title, description, action, className }) {
|
|
|
1765
1827
|
action && /* @__PURE__ */ jsxRuntime.jsx(Button, { onClick: action.onClick, className: "mt-1", children: action.label })
|
|
1766
1828
|
] });
|
|
1767
1829
|
}
|
|
1768
|
-
var PropertyList =
|
|
1830
|
+
var PropertyList = React26__default.default.forwardRef(
|
|
1769
1831
|
({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("dl", { ref, className: cn("divide-y divide-[hsl(var(--border))]", className), ...props })
|
|
1770
1832
|
);
|
|
1771
1833
|
PropertyList.displayName = "PropertyList";
|
|
@@ -1781,7 +1843,7 @@ var dotColors = {
|
|
|
1781
1843
|
error: "bg-red-500",
|
|
1782
1844
|
warning: "bg-yellow-500"
|
|
1783
1845
|
};
|
|
1784
|
-
var TimelineContent =
|
|
1846
|
+
var TimelineContent = React26__default.default.forwardRef(
|
|
1785
1847
|
({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("pb-1", className), ...props })
|
|
1786
1848
|
);
|
|
1787
1849
|
TimelineContent.displayName = "TimelineContent";
|
|
@@ -1804,9 +1866,9 @@ function TimelineItem({ icon, title, description, timestamp, variant = "default"
|
|
|
1804
1866
|
] });
|
|
1805
1867
|
}
|
|
1806
1868
|
function Timeline({ children, className }) {
|
|
1807
|
-
const items =
|
|
1869
|
+
const items = React26__default.default.Children.toArray(children);
|
|
1808
1870
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("", className), children: items.map(
|
|
1809
|
-
(child, i) =>
|
|
1871
|
+
(child, i) => React26__default.default.isValidElement(child) ? React26__default.default.cloneElement(child, { isLast: i === items.length - 1 }) : child
|
|
1810
1872
|
) });
|
|
1811
1873
|
}
|
|
1812
1874
|
function Stat({ label, value, trend, trendLabel, icon, description, className }) {
|
|
@@ -1894,7 +1956,7 @@ function StructuredListItem({ left, title, description, right, onClick, classNam
|
|
|
1894
1956
|
}
|
|
1895
1957
|
);
|
|
1896
1958
|
}
|
|
1897
|
-
var StructuredList =
|
|
1959
|
+
var StructuredList = React26__default.default.forwardRef(
|
|
1898
1960
|
({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("space-y-4", className), ...props })
|
|
1899
1961
|
);
|
|
1900
1962
|
StructuredList.displayName = "StructuredList";
|
|
@@ -2015,8 +2077,8 @@ function Banner({
|
|
|
2015
2077
|
className,
|
|
2016
2078
|
children
|
|
2017
2079
|
}) {
|
|
2018
|
-
const [dismissed, setDismissed] =
|
|
2019
|
-
const [exiting, setExiting] =
|
|
2080
|
+
const [dismissed, setDismissed] = React26__default.default.useState(false);
|
|
2081
|
+
const [exiting, setExiting] = React26__default.default.useState(false);
|
|
2020
2082
|
const handleDismiss = () => {
|
|
2021
2083
|
setExiting(true);
|
|
2022
2084
|
setTimeout(() => {
|
|
@@ -2151,7 +2213,7 @@ function BreadcrumbSeparator({ className }) {
|
|
|
2151
2213
|
return /* @__PURE__ */ jsxRuntime.jsx("li", { role: "presentation", "aria-hidden": "true", className: cn("flex items-center text-[hsl(var(--muted-foreground))]", className), children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRight, { className: "h-3.5 w-3.5" }) });
|
|
2152
2214
|
}
|
|
2153
2215
|
function Breadcrumb({ children, className }) {
|
|
2154
|
-
const items =
|
|
2216
|
+
const items = React26__default.default.Children.toArray(children);
|
|
2155
2217
|
const withSeparators = [];
|
|
2156
2218
|
items.forEach((item, i) => {
|
|
2157
2219
|
withSeparators.push(item);
|
|
@@ -2172,10 +2234,10 @@ function Hotkeys({ keys, className }) {
|
|
|
2172
2234
|
var textOps = ["contains", "equals", "starts with"];
|
|
2173
2235
|
var numOps = ["=", ">", "<", ">=", "<="];
|
|
2174
2236
|
function AddFilterPopover({ filters, onAdd }) {
|
|
2175
|
-
const [open, setOpen] =
|
|
2176
|
-
const [key, setKey] =
|
|
2177
|
-
const [op, setOp] =
|
|
2178
|
-
const [val, setVal] =
|
|
2237
|
+
const [open, setOpen] = React26__default.default.useState(false);
|
|
2238
|
+
const [key, setKey] = React26__default.default.useState("");
|
|
2239
|
+
const [op, setOp] = React26__default.default.useState("");
|
|
2240
|
+
const [val, setVal] = React26__default.default.useState("");
|
|
2179
2241
|
const def = filters.find((f) => f.key === key);
|
|
2180
2242
|
const ops = def?.type === "number" ? numOps : textOps;
|
|
2181
2243
|
const handleAdd = () => {
|
|
@@ -2278,19 +2340,19 @@ function ToggleButtonGroup(props) {
|
|
|
2278
2340
|
props.onChange(val);
|
|
2279
2341
|
}
|
|
2280
2342
|
};
|
|
2281
|
-
return /* @__PURE__ */ jsxRuntime.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:
|
|
2282
|
-
if (!
|
|
2343
|
+
return /* @__PURE__ */ jsxRuntime.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: React26__default.default.Children.map(children, (child) => {
|
|
2344
|
+
if (!React26__default.default.isValidElement(child))
|
|
2283
2345
|
return child;
|
|
2284
2346
|
const tb = child;
|
|
2285
|
-
return
|
|
2347
|
+
return React26__default.default.cloneElement(tb, {
|
|
2286
2348
|
pressed: isPressed(tb.props.value),
|
|
2287
2349
|
onClick: () => handleClick(tb.props.value)
|
|
2288
2350
|
});
|
|
2289
2351
|
}) });
|
|
2290
2352
|
}
|
|
2291
2353
|
function useCommandBar() {
|
|
2292
|
-
const [open, setOpen] =
|
|
2293
|
-
|
|
2354
|
+
const [open, setOpen] = React26__default.default.useState(false);
|
|
2355
|
+
React26__default.default.useEffect(() => {
|
|
2294
2356
|
const handler = (e) => {
|
|
2295
2357
|
if ((e.metaKey || e.ctrlKey) && e.key === "k") {
|
|
2296
2358
|
e.preventDefault();
|
|
@@ -2330,12 +2392,12 @@ function CommandBarItem({ icon, label, shortcut, onSelect, active, className })
|
|
|
2330
2392
|
);
|
|
2331
2393
|
}
|
|
2332
2394
|
function CommandBar({ open, onOpenChange, children, placeholder = "Search commands...", onSearch }) {
|
|
2333
|
-
const [query, setQuery] =
|
|
2395
|
+
const [query, setQuery] = React26__default.default.useState("");
|
|
2334
2396
|
const handleSearch = (v) => {
|
|
2335
2397
|
setQuery(v);
|
|
2336
2398
|
onSearch?.(v);
|
|
2337
2399
|
};
|
|
2338
|
-
const items =
|
|
2400
|
+
const items = React26__default.default.useRef(null);
|
|
2339
2401
|
const handleKeyDown = (e) => {
|
|
2340
2402
|
if (e.key === "Escape") {
|
|
2341
2403
|
onOpenChange(false);
|
|
@@ -2405,9 +2467,9 @@ function KanbanColumn({ column, isOver }) {
|
|
|
2405
2467
|
] });
|
|
2406
2468
|
}
|
|
2407
2469
|
function Kanban({ columns: initialColumns, onMoveCard, className }) {
|
|
2408
|
-
const [cols, setCols] =
|
|
2409
|
-
const [activeCard, setActiveCard] =
|
|
2410
|
-
const [overColId, setOverColId] =
|
|
2470
|
+
const [cols, setCols] = React26__default.default.useState(initialColumns);
|
|
2471
|
+
const [activeCard, setActiveCard] = React26__default.default.useState(null);
|
|
2472
|
+
const [overColId, setOverColId] = React26__default.default.useState(null);
|
|
2411
2473
|
const sensors = core.useSensors(core.useSensor(core.PointerSensor, { activationConstraint: { distance: 5 } }));
|
|
2412
2474
|
const findColByCard = (cardId) => cols.find((c) => c.cards.some((card) => card.id === cardId));
|
|
2413
2475
|
const onDragStart = ({ active }) => {
|
|
@@ -2680,25 +2742,25 @@ function Beacon({ color = "primary", size = "md", children, className }) {
|
|
|
2680
2742
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute -top-1 -right-1 flex", children: /* @__PURE__ */ jsxRuntime.jsx(BeaconDot, { color, size }) })
|
|
2681
2743
|
] });
|
|
2682
2744
|
}
|
|
2683
|
-
var TourContext =
|
|
2745
|
+
var TourContext = React26.createContext(null);
|
|
2684
2746
|
function useTour() {
|
|
2685
|
-
const ctx =
|
|
2747
|
+
const ctx = React26.useContext(TourContext);
|
|
2686
2748
|
if (!ctx)
|
|
2687
2749
|
throw new Error("useTour must be used within <Tour>");
|
|
2688
2750
|
return ctx;
|
|
2689
2751
|
}
|
|
2690
2752
|
function Tour({ totalSteps, children }) {
|
|
2691
|
-
const [currentStep, setCurrentStep] =
|
|
2692
|
-
const [isActive, setIsActive] =
|
|
2693
|
-
const stop =
|
|
2694
|
-
const start =
|
|
2753
|
+
const [currentStep, setCurrentStep] = React26.useState(0);
|
|
2754
|
+
const [isActive, setIsActive] = React26.useState(false);
|
|
2755
|
+
const stop = React26.useCallback(() => setIsActive(false), []);
|
|
2756
|
+
const start = React26.useCallback(() => {
|
|
2695
2757
|
setCurrentStep(0);
|
|
2696
2758
|
setIsActive(true);
|
|
2697
2759
|
}, []);
|
|
2698
|
-
const next =
|
|
2699
|
-
const prev =
|
|
2700
|
-
const goTo =
|
|
2701
|
-
|
|
2760
|
+
const next = React26.useCallback(() => setCurrentStep((s) => Math.min(s + 1, totalSteps - 1)), [totalSteps]);
|
|
2761
|
+
const prev = React26.useCallback(() => setCurrentStep((s) => Math.max(s - 1, 0)), []);
|
|
2762
|
+
const goTo = React26.useCallback((step) => setCurrentStep(Math.max(0, Math.min(step, totalSteps - 1))), [totalSteps]);
|
|
2763
|
+
React26.useEffect(() => {
|
|
2702
2764
|
if (!isActive)
|
|
2703
2765
|
return;
|
|
2704
2766
|
const onKey = (e) => {
|
|
@@ -2903,7 +2965,7 @@ function SidebarLayoutSearch({
|
|
|
2903
2965
|
children,
|
|
2904
2966
|
className
|
|
2905
2967
|
}) {
|
|
2906
|
-
const [query, setQuery] =
|
|
2968
|
+
const [query, setQuery] = React26.useState("");
|
|
2907
2969
|
const filtered = ALL_ITEMS.filter((i) => i.label.toLowerCase().includes(query.toLowerCase()));
|
|
2908
2970
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex h-[600px] overflow-hidden rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--background))]", className), children: [
|
|
2909
2971
|
/* @__PURE__ */ jsxRuntime.jsxs("aside", { className: "flex w-60 flex-col border-r border-[hsl(var(--border))] bg-[hsl(var(--card))]", children: [
|
|
@@ -3001,8 +3063,8 @@ function StackedLayoutTabs({
|
|
|
3001
3063
|
children,
|
|
3002
3064
|
className
|
|
3003
3065
|
}) {
|
|
3004
|
-
const [activeTab, setActiveTab] =
|
|
3005
|
-
const [activeNav, setActiveNav] =
|
|
3066
|
+
const [activeTab, setActiveTab] = React26.useState(0);
|
|
3067
|
+
const [activeNav, setActiveNav] = React26.useState(0);
|
|
3006
3068
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex h-[600px] flex-col overflow-hidden rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--background))]", className), children: [
|
|
3007
3069
|
/* @__PURE__ */ jsxRuntime.jsxs("nav", { className: "flex h-14 items-center gap-6 border-b border-[hsl(var(--border))] bg-[hsl(var(--card))] px-4", children: [
|
|
3008
3070
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-semibold text-sm shrink-0", children: brandName }),
|
|
@@ -3093,7 +3155,7 @@ function NotifRow({ label, description, checked, onChange }) {
|
|
|
3093
3155
|
] });
|
|
3094
3156
|
}
|
|
3095
3157
|
function NotificationSettings({ className }) {
|
|
3096
|
-
const [states, setStates] =
|
|
3158
|
+
const [states, setStates] = React26.useState(
|
|
3097
3159
|
Object.fromEntries(NOTIFICATIONS.map((n) => [n.id, n.default]))
|
|
3098
3160
|
);
|
|
3099
3161
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--card))] p-6", className), children: [
|
|
@@ -3122,8 +3184,8 @@ var MEMBERS = [
|
|
|
3122
3184
|
];
|
|
3123
3185
|
var roleVariant = (role) => role === "Owner" ? "default" : role === "Admin" ? "secondary" : "outline";
|
|
3124
3186
|
function WorkspaceMembers({ className }) {
|
|
3125
|
-
const [query, setQuery] =
|
|
3126
|
-
const [members, setMembers] =
|
|
3187
|
+
const [query, setQuery] = React26.useState("");
|
|
3188
|
+
const [members, setMembers] = React26.useState(MEMBERS);
|
|
3127
3189
|
const filtered = members.filter(
|
|
3128
3190
|
(m) => m.name.toLowerCase().includes(query.toLowerCase()) || m.email.toLowerCase().includes(query.toLowerCase())
|
|
3129
3191
|
);
|
|
@@ -3159,7 +3221,7 @@ function IntegrationCard({
|
|
|
3159
3221
|
connected = false,
|
|
3160
3222
|
className
|
|
3161
3223
|
}) {
|
|
3162
|
-
const [isConnected, setIsConnected] =
|
|
3224
|
+
const [isConnected, setIsConnected] = React26.useState(connected);
|
|
3163
3225
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex items-center gap-4 rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--card))] p-4", className), children: [
|
|
3164
3226
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-10 w-10 shrink-0 items-center justify-center rounded-md bg-[hsl(var(--muted))] text-[hsl(var(--muted-foreground))]", children: icon ?? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-base font-bold", children: name[0] }) }),
|
|
3165
3227
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 min-w-0", children: [
|
|
@@ -3190,9 +3252,9 @@ function IntegrationCard({
|
|
|
3190
3252
|
}
|
|
3191
3253
|
var REACTIONS = ["\u{1F60A}", "\u{1F610}", "\u{1F615}", "\u{1F621}", "\u{1F929}"];
|
|
3192
3254
|
function FeedbackModal({ onSubmit, className }) {
|
|
3193
|
-
const [reaction, setReaction] =
|
|
3194
|
-
const [text, setText] =
|
|
3195
|
-
const [submitted, setSubmitted] =
|
|
3255
|
+
const [reaction, setReaction] = React26.useState("");
|
|
3256
|
+
const [text, setText] = React26.useState("");
|
|
3257
|
+
const [submitted, setSubmitted] = React26.useState(false);
|
|
3196
3258
|
const handleSubmit = () => {
|
|
3197
3259
|
onSubmit?.({ reaction, text });
|
|
3198
3260
|
setSubmitted(true);
|
|
@@ -3242,9 +3304,9 @@ var PENDING = [
|
|
|
3242
3304
|
{ email: "sam@startup.io", role: "Viewer" }
|
|
3243
3305
|
];
|
|
3244
3306
|
function InviteModal({ className }) {
|
|
3245
|
-
const [email, setEmail] =
|
|
3246
|
-
const [role, setRole] =
|
|
3247
|
-
const [pending, setPending] =
|
|
3307
|
+
const [email, setEmail] = React26.useState("");
|
|
3308
|
+
const [role, setRole] = React26.useState("Member");
|
|
3309
|
+
const [pending, setPending] = React26.useState(PENDING);
|
|
3248
3310
|
const invite = () => {
|
|
3249
3311
|
if (!email.trim())
|
|
3250
3312
|
return;
|
|
@@ -3292,9 +3354,9 @@ var INITIAL_TAGS = [
|
|
|
3292
3354
|
{ id: "4", name: "Research", color: "bg-purple-500" }
|
|
3293
3355
|
];
|
|
3294
3356
|
function ManageTagsModal({ className }) {
|
|
3295
|
-
const [tags, setTags] =
|
|
3296
|
-
const [newTag, setNewTag] =
|
|
3297
|
-
const [colorIdx, setColorIdx] =
|
|
3357
|
+
const [tags, setTags] = React26.useState(INITIAL_TAGS);
|
|
3358
|
+
const [newTag, setNewTag] = React26.useState("");
|
|
3359
|
+
const [colorIdx, setColorIdx] = React26.useState(0);
|
|
3298
3360
|
const addTag = () => {
|
|
3299
3361
|
if (!newTag.trim())
|
|
3300
3362
|
return;
|
|
@@ -3353,8 +3415,8 @@ var USERS = [
|
|
|
3353
3415
|
{ id: "6", name: "Mike Liu", email: "mike@acme.com", initials: "ML" }
|
|
3354
3416
|
];
|
|
3355
3417
|
function SelectUsersModal({ onConfirm, className }) {
|
|
3356
|
-
const [query, setQuery] =
|
|
3357
|
-
const [selected, setSelected] =
|
|
3418
|
+
const [query, setQuery] = React26.useState("");
|
|
3419
|
+
const [selected, setSelected] = React26.useState(/* @__PURE__ */ new Set());
|
|
3358
3420
|
const filtered = USERS.filter(
|
|
3359
3421
|
(u) => u.name.toLowerCase().includes(query.toLowerCase()) || u.email.toLowerCase().includes(query.toLowerCase())
|
|
3360
3422
|
);
|
|
@@ -3473,7 +3535,7 @@ var ROLES = [
|
|
|
3473
3535
|
{ value: "viewer", label: "Viewer", description: "Read-only access" }
|
|
3474
3536
|
];
|
|
3475
3537
|
function RolesMenu({ value = "member", onChange, className }) {
|
|
3476
|
-
const [role, setRole] =
|
|
3538
|
+
const [role, setRole] = React26.useState(value);
|
|
3477
3539
|
const current = ROLES.find((r) => r.value === role) ?? ROLES[2];
|
|
3478
3540
|
const handleChange = (v) => {
|
|
3479
3541
|
setRole(v);
|
|
@@ -3557,8 +3619,8 @@ function ChatBubble({ msg }) {
|
|
|
3557
3619
|
] });
|
|
3558
3620
|
}
|
|
3559
3621
|
function ChatDetail({ className }) {
|
|
3560
|
-
const [messages, setMessages] =
|
|
3561
|
-
const [input, setInput] =
|
|
3622
|
+
const [messages, setMessages] = React26.useState(INITIAL_MESSAGES);
|
|
3623
|
+
const [input, setInput] = React26.useState("");
|
|
3562
3624
|
const send = () => {
|
|
3563
3625
|
if (!input.trim())
|
|
3564
3626
|
return;
|
|
@@ -3699,7 +3761,7 @@ function FileRow({ file, onDelete }) {
|
|
|
3699
3761
|
] });
|
|
3700
3762
|
}
|
|
3701
3763
|
function FilesList({ className }) {
|
|
3702
|
-
const [files, setFiles] =
|
|
3764
|
+
const [files, setFiles] = React26__default.default.useState(FILES2);
|
|
3703
3765
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("rounded-md border border-[hsl(var(--border))] overflow-hidden", className), children: /* @__PURE__ */ jsxRuntime.jsxs("table", { className: "w-full", children: [
|
|
3704
3766
|
/* @__PURE__ */ jsxRuntime.jsx("thead", { className: "bg-[hsl(var(--muted)/0.5)]", children: /* @__PURE__ */ jsxRuntime.jsx("tr", { children: ["Name", "Type", "Size", "Modified", ""].map((h) => /* @__PURE__ */ jsxRuntime.jsx("th", { className: "px-4 py-2.5 text-left text-xs font-medium text-[hsl(var(--muted-foreground))]", children: h }, h)) }) }),
|
|
3705
3767
|
/* @__PURE__ */ jsxRuntime.jsx("tbody", { children: files.map((f) => /* @__PURE__ */ jsxRuntime.jsx(FileRow, { file: f, onDelete: () => setFiles((fs) => fs.filter((x) => x.id !== f.id)) }, f.id)) })
|
|
@@ -3777,7 +3839,7 @@ function TaskRow({ task, onToggle }) {
|
|
|
3777
3839
|
] });
|
|
3778
3840
|
}
|
|
3779
3841
|
function SortableTaskList({ className }) {
|
|
3780
|
-
const [tasks, setTasks] =
|
|
3842
|
+
const [tasks, setTasks] = React26.useState(TASKS);
|
|
3781
3843
|
const toggle = (id) => setTasks((ts) => ts.map((t) => t.id === id ? { ...t, done: !t.done } : t));
|
|
3782
3844
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--card))] p-4 space-y-4", className), children: SECTIONS.map((section) => {
|
|
3783
3845
|
const items = tasks.filter((t) => t.status === section);
|
|
@@ -3919,6 +3981,7 @@ exports.MessagesCard = MessagesCard;
|
|
|
3919
3981
|
exports.MetricCard = MetricCard;
|
|
3920
3982
|
exports.MetricCardWithButton = MetricCardWithButton;
|
|
3921
3983
|
exports.MetricCardWithIcon = MetricCardWithIcon;
|
|
3984
|
+
exports.MobileSidebarTrigger = MobileSidebarTrigger;
|
|
3922
3985
|
exports.Navbar = Navbar;
|
|
3923
3986
|
exports.NavbarBrand = NavbarBrand;
|
|
3924
3987
|
exports.NavbarContent = NavbarContent;
|