@work-rjkashyap/unified-ui 0.2.3 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +57 -2
- package/bin/cli.mjs +1635 -4
- package/dist/{chunk-BB5WRUPU.mjs → chunk-AQJ7H5SF.mjs} +1138 -281
- package/dist/{chunk-3K2CXZ6H.cjs → chunk-EUHL6H76.cjs} +1155 -277
- package/dist/components.cjs +373 -289
- package/dist/components.d.cts +780 -37
- package/dist/components.d.ts +780 -37
- package/dist/components.mjs +1 -1
- package/dist/index.cjs +373 -289
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.mjs +1 -1
- package/dist/theme.d.cts +1 -1
- package/dist/theme.d.ts +1 -1
- package/package.json +4 -3
|
@@ -775,9 +775,7 @@ var avatarVariants = classVarianceAuthority.cva(
|
|
|
775
775
|
// Typography for fallback initials
|
|
776
776
|
"font-medium leading-none select-none",
|
|
777
777
|
// Default colors for fallback state
|
|
778
|
-
"bg-muted text-muted-foreground"
|
|
779
|
-
// Border for visual separation on grouped/colored backgrounds
|
|
780
|
-
"ring-2 ring-background"
|
|
778
|
+
"bg-muted text-muted-foreground"
|
|
781
779
|
],
|
|
782
780
|
{
|
|
783
781
|
variants: {
|
|
@@ -859,15 +857,18 @@ function getInitials(name) {
|
|
|
859
857
|
return (parts[0][0] + parts[parts.length - 1][0]).toUpperCase();
|
|
860
858
|
}
|
|
861
859
|
function DefaultFallbackIcon({ className }) {
|
|
862
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
860
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
863
861
|
"svg",
|
|
864
862
|
{
|
|
865
|
-
className: chunk4ON3M3OM_cjs.cn("size-
|
|
863
|
+
className: chunk4ON3M3OM_cjs.cn("size-8 translate-y-px text-current opacity-70", className),
|
|
866
864
|
xmlns: "http://www.w3.org/2000/svg",
|
|
867
865
|
viewBox: "0 0 24 24",
|
|
868
866
|
fill: "currentColor",
|
|
869
867
|
"aria-hidden": "true",
|
|
870
|
-
children:
|
|
868
|
+
children: [
|
|
869
|
+
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "7", r: "4" }),
|
|
870
|
+
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 14c-4.42 0-8 2.24-8 5v5h16v-5c0-2.76-3.58-5-8-5z" })
|
|
871
|
+
]
|
|
871
872
|
}
|
|
872
873
|
);
|
|
873
874
|
}
|
|
@@ -988,11 +989,11 @@ var Avatar = React.forwardRef(function Avatar2({
|
|
|
988
989
|
});
|
|
989
990
|
Avatar.displayName = "Avatar";
|
|
990
991
|
var overlapMap = {
|
|
991
|
-
xs: { tight: "-ml-
|
|
992
|
-
sm: { tight: "-ml-
|
|
993
|
-
md: { tight: "-ml-
|
|
994
|
-
lg: { tight: "-ml-
|
|
995
|
-
xl: { tight: "-ml-
|
|
992
|
+
xs: { tight: "-ml-3", default: "-ml-2.5", loose: "-ml-1.5" },
|
|
993
|
+
sm: { tight: "-ml-4", default: "-ml-3", loose: "-ml-2" },
|
|
994
|
+
md: { tight: "-ml-5", default: "-ml-4", loose: "-ml-3" },
|
|
995
|
+
lg: { tight: "-ml-6", default: "-ml-5", loose: "-ml-3.5" },
|
|
996
|
+
xl: { tight: "-ml-8", default: "-ml-6", loose: "-ml-4" }
|
|
996
997
|
};
|
|
997
998
|
var AvatarGroup = React.forwardRef(
|
|
998
999
|
function AvatarGroup2({
|
|
@@ -1028,35 +1029,53 @@ var AvatarGroup = React.forwardRef(
|
|
|
1028
1029
|
className: chunk4ON3M3OM_cjs.cn(
|
|
1029
1030
|
index > 0 && overlapClass,
|
|
1030
1031
|
// Ensure proper stacking order (first avatar on top)
|
|
1031
|
-
|
|
1032
|
+
// z-index is set via CSS var so hover:z-50! (Tailwind) can override it
|
|
1033
|
+
"relative inline-flex cursor-pointer transition-transform duration-150 ease-out",
|
|
1034
|
+
"z-(--ag-z)",
|
|
1035
|
+
"hover:z-50! hover:scale-110"
|
|
1032
1036
|
),
|
|
1033
|
-
style: {
|
|
1037
|
+
style: { "--ag-z": totalCount - index },
|
|
1034
1038
|
children: React.cloneElement(child, {
|
|
1035
1039
|
size,
|
|
1036
|
-
shape
|
|
1040
|
+
shape,
|
|
1041
|
+
className: chunk4ON3M3OM_cjs.cn(
|
|
1042
|
+
child.props?.className,
|
|
1043
|
+
"ring-2 ring-background"
|
|
1044
|
+
)
|
|
1037
1045
|
})
|
|
1038
1046
|
},
|
|
1039
1047
|
child.props?.alt ?? child.props?.name ?? index
|
|
1040
1048
|
);
|
|
1041
1049
|
}),
|
|
1042
|
-
overflowCount > 0 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1050
|
+
overflowCount > 0 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1043
1051
|
"span",
|
|
1044
1052
|
{
|
|
1045
1053
|
className: chunk4ON3M3OM_cjs.cn(
|
|
1046
|
-
|
|
1047
|
-
"
|
|
1048
|
-
"font-semibold"
|
|
1054
|
+
overlapClass,
|
|
1055
|
+
"relative inline-flex z-(--ag-z)"
|
|
1049
1056
|
),
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1057
|
+
style: { "--ag-z": 0 },
|
|
1058
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1059
|
+
"span",
|
|
1060
|
+
{
|
|
1061
|
+
className: chunk4ON3M3OM_cjs.cn(
|
|
1062
|
+
avatarVariants({ size, shape }),
|
|
1063
|
+
"ring-2 ring-background",
|
|
1064
|
+
"bg-muted text-muted-foreground",
|
|
1065
|
+
"font-semibold"
|
|
1066
|
+
),
|
|
1067
|
+
role: "img",
|
|
1068
|
+
"aria-label": `${overflowCount} more`,
|
|
1069
|
+
"data-ds": "",
|
|
1070
|
+
"data-ds-component": "avatar-overflow",
|
|
1071
|
+
children: [
|
|
1072
|
+
"+",
|
|
1073
|
+
overflowCount
|
|
1074
|
+
]
|
|
1075
|
+
}
|
|
1076
|
+
)
|
|
1058
1077
|
}
|
|
1059
|
-
)
|
|
1078
|
+
)
|
|
1060
1079
|
]
|
|
1061
1080
|
}
|
|
1062
1081
|
);
|
|
@@ -10317,9 +10336,9 @@ var DropdownMenuItem = React.forwardRef(function DropdownMenuItem2({ className,
|
|
|
10317
10336
|
ref,
|
|
10318
10337
|
className: chunk4ON3M3OM_cjs.cn(
|
|
10319
10338
|
...menuItemBase2,
|
|
10339
|
+
"gap-2",
|
|
10320
10340
|
variant === "danger" && "text-danger focus:bg-danger-muted focus:text-danger-muted-foreground",
|
|
10321
10341
|
variant === "default" && "text-foreground",
|
|
10322
|
-
icon && "gap-2",
|
|
10323
10342
|
className
|
|
10324
10343
|
),
|
|
10325
10344
|
"data-ds": "",
|
|
@@ -10327,7 +10346,7 @@ var DropdownMenuItem = React.forwardRef(function DropdownMenuItem2({ className,
|
|
|
10327
10346
|
...rest,
|
|
10328
10347
|
children: [
|
|
10329
10348
|
icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "shrink-0 [&>svg]:size-4", "aria-hidden": "true", children: icon }),
|
|
10330
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-1", children }),
|
|
10349
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-1 flex items-center gap-2 [&>svg]:shrink-0 [&>svg]:size-4", children }),
|
|
10331
10350
|
shortcut && /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuShortcut, { children: shortcut })
|
|
10332
10351
|
]
|
|
10333
10352
|
}
|
|
@@ -10339,13 +10358,13 @@ var DropdownMenuCheckboxItem = React.forwardRef(function DropdownMenuCheckboxIte
|
|
|
10339
10358
|
radixUi.DropdownMenu.CheckboxItem,
|
|
10340
10359
|
{
|
|
10341
10360
|
ref,
|
|
10342
|
-
className: chunk4ON3M3OM_cjs.cn(...menuItemBase2, "pl-8", className),
|
|
10361
|
+
className: chunk4ON3M3OM_cjs.cn(...menuItemBase2, "gap-2 pl-8", className),
|
|
10343
10362
|
"data-ds": "",
|
|
10344
10363
|
"data-ds-component": "dropdown-menu-checkbox-item",
|
|
10345
10364
|
...rest,
|
|
10346
10365
|
children: [
|
|
10347
10366
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute left-2 flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(radixUi.DropdownMenu.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(CheckIcon6, { className: "size-4" }) }) }),
|
|
10348
|
-
children
|
|
10367
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-1 flex items-center gap-2 [&>svg]:shrink-0 [&>svg]:size-4", children })
|
|
10349
10368
|
]
|
|
10350
10369
|
}
|
|
10351
10370
|
);
|
|
@@ -10360,13 +10379,13 @@ var DropdownMenuRadioItem = React.forwardRef(function DropdownMenuRadioItem2({ c
|
|
|
10360
10379
|
radixUi.DropdownMenu.RadioItem,
|
|
10361
10380
|
{
|
|
10362
10381
|
ref,
|
|
10363
|
-
className: chunk4ON3M3OM_cjs.cn(...menuItemBase2, "pl-8", className),
|
|
10382
|
+
className: chunk4ON3M3OM_cjs.cn(...menuItemBase2, "gap-2 pl-8", className),
|
|
10364
10383
|
"data-ds": "",
|
|
10365
10384
|
"data-ds-component": "dropdown-menu-radio-item",
|
|
10366
10385
|
...rest,
|
|
10367
10386
|
children: [
|
|
10368
10387
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute left-2 flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(radixUi.DropdownMenu.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(DotIcon2, { className: "size-4" }) }) }),
|
|
10369
|
-
children
|
|
10388
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-1 flex items-center gap-2 [&>svg]:shrink-0 [&>svg]:size-4", children })
|
|
10370
10389
|
]
|
|
10371
10390
|
}
|
|
10372
10391
|
);
|
|
@@ -10414,8 +10433,7 @@ var DropdownMenuSubTrigger = React.forwardRef(function DropdownMenuSubTrigger2({
|
|
|
10414
10433
|
ref,
|
|
10415
10434
|
className: chunk4ON3M3OM_cjs.cn(
|
|
10416
10435
|
...menuItemBase2,
|
|
10417
|
-
"data-[state=open]:bg-muted",
|
|
10418
|
-
icon && "gap-2",
|
|
10436
|
+
"gap-2 data-[state=open]:bg-muted",
|
|
10419
10437
|
inset && "pl-8",
|
|
10420
10438
|
className
|
|
10421
10439
|
),
|
|
@@ -10424,7 +10442,7 @@ var DropdownMenuSubTrigger = React.forwardRef(function DropdownMenuSubTrigger2({
|
|
|
10424
10442
|
...rest,
|
|
10425
10443
|
children: [
|
|
10426
10444
|
icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "shrink-0 [&>svg]:size-4", "aria-hidden": "true", children: icon }),
|
|
10427
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-1", children }),
|
|
10445
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-1 flex items-center gap-2 [&>svg]:shrink-0 [&>svg]:size-4", children }),
|
|
10428
10446
|
/* @__PURE__ */ jsxRuntime.jsx(ChevronRightIcon4, { className: "ml-auto size-4 text-muted-foreground" })
|
|
10429
10447
|
]
|
|
10430
10448
|
}
|
|
@@ -13477,18 +13495,7 @@ var stripedStyle = {
|
|
|
13477
13495
|
backgroundSize: "1rem 1rem"
|
|
13478
13496
|
};
|
|
13479
13497
|
var PROGRESS_STYLE_ID = "unified-ui-progress-keyframes";
|
|
13480
|
-
|
|
13481
|
-
if (typeof document !== "undefined") {
|
|
13482
|
-
if (document.getElementById(PROGRESS_STYLE_ID)) {
|
|
13483
|
-
return null;
|
|
13484
|
-
}
|
|
13485
|
-
}
|
|
13486
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
13487
|
-
"style",
|
|
13488
|
-
{
|
|
13489
|
-
id: PROGRESS_STYLE_ID,
|
|
13490
|
-
dangerouslySetInnerHTML: {
|
|
13491
|
-
__html: `
|
|
13498
|
+
var PROGRESS_KEYFRAMES_CSS = `
|
|
13492
13499
|
@keyframes unified-ui-progress-indeterminate {
|
|
13493
13500
|
0% { transform: translateX(-100%); width: 50%; }
|
|
13494
13501
|
50% { transform: translateX(50%); width: 30%; }
|
|
@@ -13498,10 +13505,17 @@ function ProgressKeyframes() {
|
|
|
13498
13505
|
0% { background-position: 1rem 0; }
|
|
13499
13506
|
100% { background-position: 0 0; }
|
|
13500
13507
|
}
|
|
13501
|
-
|
|
13502
|
-
|
|
13508
|
+
`;
|
|
13509
|
+
function useProgressKeyframes() {
|
|
13510
|
+
React.useEffect(() => {
|
|
13511
|
+
if (document.getElementById(PROGRESS_STYLE_ID)) {
|
|
13512
|
+
return;
|
|
13503
13513
|
}
|
|
13504
|
-
|
|
13514
|
+
const style = document.createElement("style");
|
|
13515
|
+
style.id = PROGRESS_STYLE_ID;
|
|
13516
|
+
style.textContent = PROGRESS_KEYFRAMES_CSS;
|
|
13517
|
+
document.head.appendChild(style);
|
|
13518
|
+
}, []);
|
|
13505
13519
|
}
|
|
13506
13520
|
var Progress = React.forwardRef(
|
|
13507
13521
|
function Progress2({
|
|
@@ -13522,6 +13536,7 @@ var Progress = React.forwardRef(
|
|
|
13522
13536
|
indicatorClassName,
|
|
13523
13537
|
...rest
|
|
13524
13538
|
}, ref) {
|
|
13539
|
+
useProgressKeyframes();
|
|
13525
13540
|
const clampedValue = Math.max(min2, Math.min(value, max2));
|
|
13526
13541
|
const range = max2 - min2;
|
|
13527
13542
|
const percentage = range > 0 ? (clampedValue - min2) / range * 100 : 0;
|
|
@@ -13561,7 +13576,6 @@ var Progress = React.forwardRef(
|
|
|
13561
13576
|
"data-ds-size": size,
|
|
13562
13577
|
...indeterminate ? { "data-ds-indeterminate": "" } : {},
|
|
13563
13578
|
children: [
|
|
13564
|
-
/* @__PURE__ */ jsxRuntime.jsx(ProgressKeyframes, {}),
|
|
13565
13579
|
showLabel && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between mb-1.5", children: [
|
|
13566
13580
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs font-medium leading-4 text-foreground", children: label ?? "" }),
|
|
13567
13581
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs font-medium leading-4 text-muted-foreground tabular-nums", children: typeof label === "string" || !label ? labelFormatter(clampedValue, max2) : "" })
|
|
@@ -14595,6 +14609,168 @@ var SelectSeparator = React.forwardRef(function SelectSeparator2({ className, ..
|
|
|
14595
14609
|
);
|
|
14596
14610
|
});
|
|
14597
14611
|
SelectSeparator.displayName = "SelectSeparator";
|
|
14612
|
+
var separatorVariants = classVarianceAuthority.cva(
|
|
14613
|
+
// Base styles — shared across all variants
|
|
14614
|
+
"shrink-0 bg-border",
|
|
14615
|
+
{
|
|
14616
|
+
variants: {
|
|
14617
|
+
/**
|
|
14618
|
+
* Visual variant of the separator line.
|
|
14619
|
+
*/
|
|
14620
|
+
variant: {
|
|
14621
|
+
/**
|
|
14622
|
+
* Default — solid line using the border token color.
|
|
14623
|
+
*/
|
|
14624
|
+
default: "",
|
|
14625
|
+
/**
|
|
14626
|
+
* Muted — lighter separator using the muted-foreground color at
|
|
14627
|
+
* reduced opacity. Useful for less prominent divisions.
|
|
14628
|
+
*/
|
|
14629
|
+
muted: "bg-muted-foreground/20",
|
|
14630
|
+
/**
|
|
14631
|
+
* Dashed — renders a dashed border instead of a solid background.
|
|
14632
|
+
* Uses border-style rather than background.
|
|
14633
|
+
*/
|
|
14634
|
+
dashed: "bg-transparent !h-auto !w-auto",
|
|
14635
|
+
/**
|
|
14636
|
+
* Gradient — fades in from transparent at both ends.
|
|
14637
|
+
* Creates a more elegant, subtle divider.
|
|
14638
|
+
*/
|
|
14639
|
+
gradient: "bg-transparent"
|
|
14640
|
+
},
|
|
14641
|
+
/**
|
|
14642
|
+
* Orientation of the separator.
|
|
14643
|
+
*/
|
|
14644
|
+
orientation: {
|
|
14645
|
+
horizontal: "h-px w-full",
|
|
14646
|
+
vertical: "h-full w-px"
|
|
14647
|
+
}
|
|
14648
|
+
},
|
|
14649
|
+
compoundVariants: [
|
|
14650
|
+
// Dashed + horizontal
|
|
14651
|
+
{
|
|
14652
|
+
variant: "dashed",
|
|
14653
|
+
orientation: "horizontal",
|
|
14654
|
+
class: "border-b border-dashed border-border w-full"
|
|
14655
|
+
},
|
|
14656
|
+
// Dashed + vertical
|
|
14657
|
+
{
|
|
14658
|
+
variant: "dashed",
|
|
14659
|
+
orientation: "vertical",
|
|
14660
|
+
class: "border-l border-dashed border-border h-full"
|
|
14661
|
+
}
|
|
14662
|
+
],
|
|
14663
|
+
defaultVariants: {
|
|
14664
|
+
variant: "default",
|
|
14665
|
+
orientation: "horizontal"
|
|
14666
|
+
}
|
|
14667
|
+
}
|
|
14668
|
+
);
|
|
14669
|
+
var spacingYMap = {
|
|
14670
|
+
0: "my-0",
|
|
14671
|
+
1: "my-1",
|
|
14672
|
+
2: "my-2",
|
|
14673
|
+
3: "my-3",
|
|
14674
|
+
4: "my-4",
|
|
14675
|
+
5: "my-5",
|
|
14676
|
+
6: "my-6",
|
|
14677
|
+
8: "my-8",
|
|
14678
|
+
10: "my-10",
|
|
14679
|
+
12: "my-12"
|
|
14680
|
+
};
|
|
14681
|
+
var spacingXMap = {
|
|
14682
|
+
0: "mx-0",
|
|
14683
|
+
1: "mx-1",
|
|
14684
|
+
2: "mx-2",
|
|
14685
|
+
3: "mx-3",
|
|
14686
|
+
4: "mx-4",
|
|
14687
|
+
5: "mx-5",
|
|
14688
|
+
6: "mx-6",
|
|
14689
|
+
8: "mx-8",
|
|
14690
|
+
10: "mx-10",
|
|
14691
|
+
12: "mx-12"
|
|
14692
|
+
};
|
|
14693
|
+
var gradientHorizontal = "bg-gradient-to-r from-transparent via-border to-transparent";
|
|
14694
|
+
var gradientVertical = "bg-gradient-to-b from-transparent via-border to-transparent";
|
|
14695
|
+
var Separator2 = React.forwardRef(function Separator3({
|
|
14696
|
+
variant = "default",
|
|
14697
|
+
orientation = "horizontal",
|
|
14698
|
+
decorative = true,
|
|
14699
|
+
spacing = 4,
|
|
14700
|
+
label,
|
|
14701
|
+
className,
|
|
14702
|
+
...rest
|
|
14703
|
+
}, ref) {
|
|
14704
|
+
const isVertical = orientation === "vertical";
|
|
14705
|
+
const spacingClass = isVertical ? spacingXMap[spacing] ?? "mx-4" : spacingYMap[spacing] ?? "my-4";
|
|
14706
|
+
const gradientClass = variant === "gradient" ? isVertical ? gradientVertical : gradientHorizontal : void 0;
|
|
14707
|
+
if (label && !isVertical) {
|
|
14708
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
14709
|
+
"div",
|
|
14710
|
+
{
|
|
14711
|
+
className: chunk4ON3M3OM_cjs.cn(
|
|
14712
|
+
"flex items-center w-full",
|
|
14713
|
+
spacingClass,
|
|
14714
|
+
className
|
|
14715
|
+
),
|
|
14716
|
+
role: decorative ? "none" : "separator",
|
|
14717
|
+
"aria-orientation": decorative ? void 0 : orientation,
|
|
14718
|
+
"data-ds": "",
|
|
14719
|
+
"data-ds-component": "separator",
|
|
14720
|
+
"data-ds-variant": variant,
|
|
14721
|
+
"data-ds-orientation": orientation,
|
|
14722
|
+
"data-ds-labeled": "",
|
|
14723
|
+
children: [
|
|
14724
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
14725
|
+
radixUi.Separator.Root,
|
|
14726
|
+
{
|
|
14727
|
+
decorative: true,
|
|
14728
|
+
orientation,
|
|
14729
|
+
className: chunk4ON3M3OM_cjs.cn(
|
|
14730
|
+
separatorVariants({ variant, orientation }),
|
|
14731
|
+
gradientClass,
|
|
14732
|
+
"flex-1"
|
|
14733
|
+
)
|
|
14734
|
+
}
|
|
14735
|
+
),
|
|
14736
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "px-3 text-xs text-muted-foreground font-medium select-none shrink-0", children: label }),
|
|
14737
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
14738
|
+
radixUi.Separator.Root,
|
|
14739
|
+
{
|
|
14740
|
+
decorative: true,
|
|
14741
|
+
orientation,
|
|
14742
|
+
className: chunk4ON3M3OM_cjs.cn(
|
|
14743
|
+
separatorVariants({ variant, orientation }),
|
|
14744
|
+
gradientClass,
|
|
14745
|
+
"flex-1"
|
|
14746
|
+
)
|
|
14747
|
+
}
|
|
14748
|
+
)
|
|
14749
|
+
]
|
|
14750
|
+
}
|
|
14751
|
+
);
|
|
14752
|
+
}
|
|
14753
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
14754
|
+
radixUi.Separator.Root,
|
|
14755
|
+
{
|
|
14756
|
+
ref,
|
|
14757
|
+
decorative,
|
|
14758
|
+
orientation,
|
|
14759
|
+
className: chunk4ON3M3OM_cjs.cn(
|
|
14760
|
+
separatorVariants({ variant, orientation }),
|
|
14761
|
+
gradientClass,
|
|
14762
|
+
spacingClass,
|
|
14763
|
+
className
|
|
14764
|
+
),
|
|
14765
|
+
"data-ds": "",
|
|
14766
|
+
"data-ds-component": "separator",
|
|
14767
|
+
"data-ds-variant": variant,
|
|
14768
|
+
"data-ds-orientation": orientation,
|
|
14769
|
+
...rest
|
|
14770
|
+
}
|
|
14771
|
+
);
|
|
14772
|
+
});
|
|
14773
|
+
Separator2.displayName = "Separator";
|
|
14598
14774
|
var sheetContentVariants = classVarianceAuthority.cva(
|
|
14599
14775
|
[
|
|
14600
14776
|
// Layout
|
|
@@ -15163,51 +15339,14 @@ var DrawerClose = React.forwardRef(function DrawerClose2({ className, ...rest },
|
|
|
15163
15339
|
);
|
|
15164
15340
|
});
|
|
15165
15341
|
DrawerClose.displayName = "DrawerClose";
|
|
15166
|
-
var
|
|
15167
|
-
|
|
15168
|
-
|
|
15169
|
-
|
|
15170
|
-
|
|
15171
|
-
|
|
15172
|
-
|
|
15173
|
-
|
|
15174
|
-
});
|
|
15175
|
-
function useSidebarContext() {
|
|
15176
|
-
return React.useContext(SidebarContext);
|
|
15177
|
-
}
|
|
15178
|
-
function SidebarProvider({
|
|
15179
|
-
defaultCollapsed = false,
|
|
15180
|
-
collapsed: controlledCollapsed,
|
|
15181
|
-
onCollapsedChange,
|
|
15182
|
-
children
|
|
15183
|
-
}) {
|
|
15184
|
-
const [internalCollapsed, setInternalCollapsed] = React.useState(defaultCollapsed);
|
|
15185
|
-
const [mobileOpen, setMobileOpen] = React.useState(false);
|
|
15186
|
-
const collapsed = controlledCollapsed !== void 0 ? controlledCollapsed : internalCollapsed;
|
|
15187
|
-
const setCollapsed = React.useCallback(
|
|
15188
|
-
(v) => {
|
|
15189
|
-
if (controlledCollapsed === void 0) setInternalCollapsed(v);
|
|
15190
|
-
onCollapsedChange?.(v);
|
|
15191
|
-
},
|
|
15192
|
-
[controlledCollapsed, onCollapsedChange]
|
|
15193
|
-
);
|
|
15194
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
15195
|
-
SidebarContext.Provider,
|
|
15196
|
-
{
|
|
15197
|
-
value: {
|
|
15198
|
-
collapsed,
|
|
15199
|
-
setCollapsed,
|
|
15200
|
-
isMobile: false,
|
|
15201
|
-
mobileOpen,
|
|
15202
|
-
setMobileOpen
|
|
15203
|
-
},
|
|
15204
|
-
children
|
|
15205
|
-
}
|
|
15206
|
-
);
|
|
15207
|
-
}
|
|
15208
|
-
SidebarProvider.displayName = "SidebarProvider";
|
|
15209
|
-
function ChevronLeftIcon3({ className }) {
|
|
15210
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
15342
|
+
var SIDEBAR_COOKIE_NAME = "sidebar:state";
|
|
15343
|
+
var SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
|
|
15344
|
+
var SIDEBAR_WIDTH = "16rem";
|
|
15345
|
+
var SIDEBAR_WIDTH_MOBILE = "18rem";
|
|
15346
|
+
var SIDEBAR_WIDTH_ICON = "3rem";
|
|
15347
|
+
var SIDEBAR_KEYBOARD_SHORTCUT = "b";
|
|
15348
|
+
function PanelLeftIcon({ className }) {
|
|
15349
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
15211
15350
|
"svg",
|
|
15212
15351
|
{
|
|
15213
15352
|
className,
|
|
@@ -15219,162 +15358,893 @@ function ChevronLeftIcon3({ className }) {
|
|
|
15219
15358
|
strokeLinecap: "round",
|
|
15220
15359
|
strokeLinejoin: "round",
|
|
15221
15360
|
"aria-hidden": "true",
|
|
15222
|
-
children:
|
|
15361
|
+
children: [
|
|
15362
|
+
/* @__PURE__ */ jsxRuntime.jsx("rect", { width: "18", height: "18", x: "3", y: "3", rx: "2" }),
|
|
15363
|
+
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M9 3v18" })
|
|
15364
|
+
]
|
|
15223
15365
|
}
|
|
15224
15366
|
);
|
|
15225
15367
|
}
|
|
15226
|
-
|
|
15227
|
-
|
|
15228
|
-
|
|
15229
|
-
|
|
15230
|
-
|
|
15231
|
-
|
|
15232
|
-
|
|
15233
|
-
|
|
15234
|
-
|
|
15235
|
-
|
|
15236
|
-
|
|
15237
|
-
|
|
15238
|
-
|
|
15239
|
-
|
|
15240
|
-
|
|
15241
|
-
|
|
15368
|
+
var SidebarContext = React.createContext({
|
|
15369
|
+
state: "expanded",
|
|
15370
|
+
open: true,
|
|
15371
|
+
setOpen: () => {
|
|
15372
|
+
},
|
|
15373
|
+
openMobile: false,
|
|
15374
|
+
setOpenMobile: () => {
|
|
15375
|
+
},
|
|
15376
|
+
isMobile: false,
|
|
15377
|
+
toggleSidebar: () => {
|
|
15378
|
+
},
|
|
15379
|
+
variant: "default",
|
|
15380
|
+
collapsible: "offcanvas",
|
|
15381
|
+
side: "left"
|
|
15382
|
+
});
|
|
15383
|
+
function useSidebar() {
|
|
15384
|
+
const context = React.useContext(SidebarContext);
|
|
15385
|
+
if (!context) {
|
|
15386
|
+
throw new Error("useSidebar must be used within a <SidebarProvider>");
|
|
15387
|
+
}
|
|
15388
|
+
return context;
|
|
15242
15389
|
}
|
|
15243
|
-
var
|
|
15244
|
-
|
|
15245
|
-
|
|
15246
|
-
|
|
15247
|
-
|
|
15248
|
-
|
|
15249
|
-
|
|
15250
|
-
|
|
15251
|
-
|
|
15252
|
-
|
|
15253
|
-
|
|
15254
|
-
|
|
15255
|
-
|
|
15256
|
-
|
|
15257
|
-
|
|
15258
|
-
|
|
15259
|
-
|
|
15260
|
-
|
|
15261
|
-
|
|
15262
|
-
|
|
15390
|
+
var useSidebarContext = useSidebar;
|
|
15391
|
+
var MOBILE_BREAKPOINT = 768;
|
|
15392
|
+
function useIsMobile() {
|
|
15393
|
+
const [isMobile, setIsMobile] = React.useState(false);
|
|
15394
|
+
React.useEffect(() => {
|
|
15395
|
+
const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
|
|
15396
|
+
const onChange = () => setIsMobile(mql.matches);
|
|
15397
|
+
mql.addEventListener("change", onChange);
|
|
15398
|
+
setIsMobile(mql.matches);
|
|
15399
|
+
return () => mql.removeEventListener("change", onChange);
|
|
15400
|
+
}, []);
|
|
15401
|
+
return isMobile;
|
|
15402
|
+
}
|
|
15403
|
+
var SidebarProvider = React.forwardRef(
|
|
15404
|
+
function SidebarProvider2({
|
|
15405
|
+
defaultOpen = true,
|
|
15406
|
+
open: openProp,
|
|
15407
|
+
onOpenChange: setOpenProp,
|
|
15408
|
+
variant = "default",
|
|
15409
|
+
collapsible = "offcanvas",
|
|
15410
|
+
side = "left",
|
|
15411
|
+
className,
|
|
15412
|
+
style,
|
|
15413
|
+
children,
|
|
15414
|
+
...rest
|
|
15415
|
+
}, ref) {
|
|
15416
|
+
const isMobile = useIsMobile();
|
|
15417
|
+
const [openMobile, setOpenMobile] = React.useState(false);
|
|
15418
|
+
const isControlled = openProp !== void 0;
|
|
15419
|
+
const [_open, _setOpen] = React.useState(defaultOpen);
|
|
15420
|
+
const open = isControlled ? openProp : _open;
|
|
15421
|
+
const setOpen = React.useCallback(
|
|
15422
|
+
(value) => {
|
|
15423
|
+
const openState = typeof value === "function" ? value(open) : value;
|
|
15424
|
+
if (setOpenProp) {
|
|
15425
|
+
setOpenProp(openState);
|
|
15426
|
+
} else {
|
|
15427
|
+
_setOpen(openState);
|
|
15428
|
+
}
|
|
15429
|
+
try {
|
|
15430
|
+
document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;
|
|
15431
|
+
} catch {
|
|
15432
|
+
}
|
|
15263
15433
|
},
|
|
15264
|
-
|
|
15265
|
-
|
|
15266
|
-
|
|
15267
|
-
|
|
15268
|
-
|
|
15269
|
-
|
|
15270
|
-
|
|
15271
|
-
);
|
|
15272
|
-
});
|
|
15273
|
-
Sidebar.displayName = "Sidebar";
|
|
15274
|
-
var SidebarToggle = React.forwardRef(
|
|
15275
|
-
function SidebarToggle2({ className, children, ...rest }, ref) {
|
|
15276
|
-
const { collapsed, setCollapsed } = useSidebarContext();
|
|
15277
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
15278
|
-
"button",
|
|
15279
|
-
{
|
|
15280
|
-
ref,
|
|
15281
|
-
type: "button",
|
|
15282
|
-
onClick: () => setCollapsed(!collapsed),
|
|
15283
|
-
"aria-label": collapsed ? "Expand sidebar" : "Collapse sidebar",
|
|
15284
|
-
"aria-expanded": !collapsed,
|
|
15285
|
-
className: chunk4ON3M3OM_cjs.cn(
|
|
15286
|
-
"inline-flex items-center justify-center size-8 rounded-md",
|
|
15287
|
-
"text-muted-foreground hover:text-foreground hover:bg-accent",
|
|
15288
|
-
"transition-colors duration-fast",
|
|
15289
|
-
chunk3EHT6IOA_cjs.focusRingClasses,
|
|
15290
|
-
className
|
|
15291
|
-
),
|
|
15292
|
-
"data-ds-component": "sidebar-toggle",
|
|
15293
|
-
...rest,
|
|
15294
|
-
children: children ?? (collapsed ? /* @__PURE__ */ jsxRuntime.jsx(ChevronRightIcon7, { className: "size-4" }) : /* @__PURE__ */ jsxRuntime.jsx(ChevronLeftIcon3, { className: "size-4" }))
|
|
15434
|
+
[setOpenProp, open]
|
|
15435
|
+
);
|
|
15436
|
+
const toggleSidebar = React.useCallback(() => {
|
|
15437
|
+
if (isMobile) {
|
|
15438
|
+
setOpenMobile((prev) => !prev);
|
|
15439
|
+
} else {
|
|
15440
|
+
setOpen((prev) => !prev);
|
|
15295
15441
|
}
|
|
15442
|
+
}, [isMobile, setOpen]);
|
|
15443
|
+
React.useEffect(() => {
|
|
15444
|
+
const handleKeyDown = (e) => {
|
|
15445
|
+
if (e.key === SIDEBAR_KEYBOARD_SHORTCUT && (e.metaKey || e.ctrlKey)) {
|
|
15446
|
+
e.preventDefault();
|
|
15447
|
+
toggleSidebar();
|
|
15448
|
+
}
|
|
15449
|
+
};
|
|
15450
|
+
window.addEventListener("keydown", handleKeyDown);
|
|
15451
|
+
return () => window.removeEventListener("keydown", handleKeyDown);
|
|
15452
|
+
}, [toggleSidebar]);
|
|
15453
|
+
const state = open ? "expanded" : "collapsed";
|
|
15454
|
+
const contextValue = React.useMemo(
|
|
15455
|
+
() => ({
|
|
15456
|
+
state,
|
|
15457
|
+
open,
|
|
15458
|
+
setOpen,
|
|
15459
|
+
openMobile,
|
|
15460
|
+
setOpenMobile,
|
|
15461
|
+
isMobile,
|
|
15462
|
+
toggleSidebar,
|
|
15463
|
+
variant,
|
|
15464
|
+
collapsible,
|
|
15465
|
+
side
|
|
15466
|
+
}),
|
|
15467
|
+
[
|
|
15468
|
+
state,
|
|
15469
|
+
open,
|
|
15470
|
+
setOpen,
|
|
15471
|
+
openMobile,
|
|
15472
|
+
setOpenMobile,
|
|
15473
|
+
isMobile,
|
|
15474
|
+
toggleSidebar,
|
|
15475
|
+
variant,
|
|
15476
|
+
collapsible,
|
|
15477
|
+
side
|
|
15478
|
+
]
|
|
15296
15479
|
);
|
|
15297
|
-
|
|
15298
|
-
);
|
|
15299
|
-
SidebarToggle.displayName = "SidebarToggle";
|
|
15300
|
-
var SidebarHeader = React.forwardRef(
|
|
15301
|
-
function SidebarHeader2({ className, children, ...rest }, ref) {
|
|
15302
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
15480
|
+
return /* @__PURE__ */ jsxRuntime.jsx(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsxRuntime.jsx(radixUi.Tooltip.Provider, { delayDuration: 0, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
15303
15481
|
"div",
|
|
15304
15482
|
{
|
|
15305
15483
|
ref,
|
|
15306
15484
|
className: chunk4ON3M3OM_cjs.cn(
|
|
15307
|
-
"
|
|
15485
|
+
"group/sidebar-wrapper flex min-h-svh w-full",
|
|
15486
|
+
"has-data-[variant=inset]:bg-sidebar",
|
|
15308
15487
|
className
|
|
15309
15488
|
),
|
|
15310
|
-
|
|
15311
|
-
|
|
15312
|
-
|
|
15313
|
-
|
|
15314
|
-
|
|
15315
|
-
|
|
15316
|
-
|
|
15317
|
-
SidebarHeader.displayName = "SidebarHeader";
|
|
15318
|
-
var SidebarContent = React.forwardRef(
|
|
15319
|
-
function SidebarContent2({ className, children, ...rest }, ref) {
|
|
15320
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
15321
|
-
"div",
|
|
15322
|
-
{
|
|
15323
|
-
ref,
|
|
15324
|
-
className: chunk4ON3M3OM_cjs.cn("flex-1 overflow-y-auto py-2", className),
|
|
15325
|
-
"data-ds-component": "sidebar-content",
|
|
15489
|
+
style: {
|
|
15490
|
+
"--sidebar-width": SIDEBAR_WIDTH,
|
|
15491
|
+
"--sidebar-width-icon": SIDEBAR_WIDTH_ICON,
|
|
15492
|
+
...style
|
|
15493
|
+
},
|
|
15494
|
+
"data-ds": "",
|
|
15495
|
+
"data-ds-component": "sidebar-provider",
|
|
15326
15496
|
...rest,
|
|
15327
15497
|
children
|
|
15328
15498
|
}
|
|
15329
|
-
);
|
|
15499
|
+
) }) });
|
|
15330
15500
|
}
|
|
15331
15501
|
);
|
|
15332
|
-
|
|
15333
|
-
var
|
|
15334
|
-
function
|
|
15335
|
-
|
|
15336
|
-
|
|
15337
|
-
|
|
15338
|
-
|
|
15339
|
-
|
|
15340
|
-
|
|
15341
|
-
|
|
15342
|
-
|
|
15343
|
-
|
|
15344
|
-
|
|
15502
|
+
SidebarProvider.displayName = "SidebarProvider";
|
|
15503
|
+
var Sidebar = React.forwardRef(
|
|
15504
|
+
function Sidebar2({
|
|
15505
|
+
side: sideProp,
|
|
15506
|
+
variant: variantProp,
|
|
15507
|
+
collapsible: collapsibleProp,
|
|
15508
|
+
className,
|
|
15509
|
+
children,
|
|
15510
|
+
...rest
|
|
15511
|
+
}, ref) {
|
|
15512
|
+
const ctx = useSidebar();
|
|
15513
|
+
const side = sideProp ?? ctx.side;
|
|
15514
|
+
const variant = variantProp ?? ctx.variant;
|
|
15515
|
+
const collapsible = collapsibleProp ?? ctx.collapsible;
|
|
15516
|
+
const shouldReduce = framerMotion.useReducedMotion();
|
|
15517
|
+
if (collapsible === "none") {
|
|
15518
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
15519
|
+
"div",
|
|
15520
|
+
{
|
|
15521
|
+
ref,
|
|
15522
|
+
className: chunk4ON3M3OM_cjs.cn(
|
|
15523
|
+
"flex h-full w-[--sidebar-width] flex-col bg-sidebar text-sidebar-foreground",
|
|
15524
|
+
className
|
|
15525
|
+
),
|
|
15526
|
+
"data-ds": "",
|
|
15527
|
+
"data-ds-component": "sidebar",
|
|
15528
|
+
...rest,
|
|
15529
|
+
children
|
|
15530
|
+
}
|
|
15531
|
+
);
|
|
15532
|
+
}
|
|
15533
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
15534
|
+
ctx.isMobile && /* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { children: ctx.openMobile && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
15535
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
15536
|
+
framerMotion.motion.div,
|
|
15537
|
+
{
|
|
15538
|
+
className: "fixed inset-0 z-50 bg-black/50 backdrop-blur-sm",
|
|
15539
|
+
variants: shouldReduce ? void 0 : chunkF4JJFWWU_cjs.overlayBackdrop.variants,
|
|
15540
|
+
initial: shouldReduce ? { opacity: 0 } : "initial",
|
|
15541
|
+
animate: shouldReduce ? { opacity: 1 } : "animate",
|
|
15542
|
+
exit: shouldReduce ? { opacity: 0 } : "exit",
|
|
15543
|
+
transition: shouldReduce ? { duration: 0.15 } : chunkF4JJFWWU_cjs.overlayBackdrop.transition,
|
|
15544
|
+
onClick: () => ctx.setOpenMobile(false),
|
|
15545
|
+
"data-ds-animated": ""
|
|
15546
|
+
}
|
|
15547
|
+
),
|
|
15548
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
15549
|
+
framerMotion.motion.div,
|
|
15550
|
+
{
|
|
15551
|
+
className: chunk4ON3M3OM_cjs.cn(
|
|
15552
|
+
"fixed inset-y-0 z-50 flex w-[--sidebar-width-mobile] flex-col bg-sidebar text-sidebar-foreground",
|
|
15553
|
+
"p-0 shadow-lg",
|
|
15554
|
+
side === "left" ? "left-0 border-r border-sidebar-border" : "right-0 border-l border-sidebar-border",
|
|
15555
|
+
className
|
|
15556
|
+
),
|
|
15557
|
+
style: {
|
|
15558
|
+
"--sidebar-width-mobile": SIDEBAR_WIDTH_MOBILE
|
|
15559
|
+
},
|
|
15560
|
+
initial: {
|
|
15561
|
+
x: side === "left" ? "-100%" : "100%",
|
|
15562
|
+
opacity: shouldReduce ? 0 : 1
|
|
15563
|
+
},
|
|
15564
|
+
animate: {
|
|
15565
|
+
x: 0,
|
|
15566
|
+
opacity: 1
|
|
15567
|
+
},
|
|
15568
|
+
exit: {
|
|
15569
|
+
x: side === "left" ? "-100%" : "100%",
|
|
15570
|
+
opacity: shouldReduce ? 0 : 1
|
|
15571
|
+
},
|
|
15572
|
+
transition: shouldReduce ? { duration: 0.15 } : {
|
|
15573
|
+
type: "spring",
|
|
15574
|
+
stiffness: 300,
|
|
15575
|
+
damping: 30,
|
|
15576
|
+
mass: 0.8
|
|
15577
|
+
},
|
|
15578
|
+
"data-ds": "",
|
|
15579
|
+
"data-ds-component": "sidebar",
|
|
15580
|
+
"data-variant": variant,
|
|
15581
|
+
"data-side": side,
|
|
15582
|
+
"data-mobile": "",
|
|
15583
|
+
"data-ds-animated": "",
|
|
15584
|
+
children
|
|
15585
|
+
}
|
|
15586
|
+
)
|
|
15587
|
+
] }) }),
|
|
15588
|
+
!ctx.isMobile && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
15589
|
+
"div",
|
|
15590
|
+
{
|
|
15591
|
+
ref,
|
|
15592
|
+
className: "group peer hidden md:block text-sidebar-foreground",
|
|
15593
|
+
"data-state": ctx.state,
|
|
15594
|
+
"data-collapsible": ctx.state === "collapsed" ? collapsible : "",
|
|
15595
|
+
"data-variant": variant,
|
|
15596
|
+
"data-side": side,
|
|
15597
|
+
children: [
|
|
15598
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
15599
|
+
framerMotion.motion.div,
|
|
15600
|
+
{
|
|
15601
|
+
className: chunk4ON3M3OM_cjs.cn(
|
|
15602
|
+
"relative h-svh bg-transparent",
|
|
15603
|
+
"duration-200 ease-linear",
|
|
15604
|
+
variant === "floating" || variant === "inset" ? "w-[calc(var(--sidebar-width)+(--spacing(4)))]" : "w-[--sidebar-width]"
|
|
15605
|
+
),
|
|
15606
|
+
animate: {
|
|
15607
|
+
width: ctx.state === "collapsed" ? collapsible === "offcanvas" ? "0px" : variant === "floating" || variant === "inset" ? "calc(var(--sidebar-width-icon) + theme(spacing.4) + 2px)" : "var(--sidebar-width-icon)" : variant === "floating" || variant === "inset" ? "calc(var(--sidebar-width) + theme(spacing.4))" : "var(--sidebar-width)"
|
|
15608
|
+
},
|
|
15609
|
+
transition: shouldReduce ? { duration: 0 } : { duration: 0.2, ease: [0.25, 0.1, 0.25, 1] }
|
|
15610
|
+
}
|
|
15611
|
+
),
|
|
15612
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
15613
|
+
framerMotion.motion.div,
|
|
15614
|
+
{
|
|
15615
|
+
className: chunk4ON3M3OM_cjs.cn(
|
|
15616
|
+
"fixed inset-y-0 z-10 hidden h-svh md:flex flex-col",
|
|
15617
|
+
side === "left" ? "left-0" : "right-0",
|
|
15618
|
+
// Variant styles
|
|
15619
|
+
variant === "floating" && "m-2 rounded-lg border border-sidebar-border shadow-lg overflow-hidden",
|
|
15620
|
+
variant === "inset" && "m-2 rounded-lg overflow-hidden",
|
|
15621
|
+
variant === "default" && chunk4ON3M3OM_cjs.cn(
|
|
15622
|
+
"border-sidebar-border",
|
|
15623
|
+
side === "left" ? "border-r" : "border-l"
|
|
15624
|
+
),
|
|
15625
|
+
"bg-sidebar text-sidebar-foreground",
|
|
15626
|
+
className
|
|
15627
|
+
),
|
|
15628
|
+
animate: {
|
|
15629
|
+
width: ctx.state === "collapsed" ? collapsible === "offcanvas" ? "0px" : "var(--sidebar-width-icon)" : "var(--sidebar-width)"
|
|
15630
|
+
},
|
|
15631
|
+
transition: shouldReduce ? { duration: 0 } : { duration: 0.2, ease: [0.25, 0.1, 0.25, 1] },
|
|
15632
|
+
"data-ds": "",
|
|
15633
|
+
"data-ds-component": "sidebar",
|
|
15634
|
+
"data-variant": variant,
|
|
15635
|
+
"data-side": side,
|
|
15636
|
+
"data-state": ctx.state,
|
|
15637
|
+
"data-collapsible": ctx.state === "collapsed" ? collapsible : "",
|
|
15638
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
15639
|
+
"div",
|
|
15640
|
+
{
|
|
15641
|
+
className: chunk4ON3M3OM_cjs.cn(
|
|
15642
|
+
"flex h-full w-full flex-col",
|
|
15643
|
+
"group-data-[collapsible=offcanvas]:opacity-0 group-data-[collapsible=offcanvas]:pointer-events-none"
|
|
15644
|
+
),
|
|
15645
|
+
"data-sidebar": "content-wrapper",
|
|
15646
|
+
children
|
|
15647
|
+
}
|
|
15648
|
+
)
|
|
15649
|
+
}
|
|
15650
|
+
)
|
|
15651
|
+
]
|
|
15652
|
+
}
|
|
15653
|
+
)
|
|
15654
|
+
] });
|
|
15655
|
+
}
|
|
15656
|
+
);
|
|
15657
|
+
Sidebar.displayName = "Sidebar";
|
|
15658
|
+
var SidebarTrigger = React.forwardRef(function SidebarTrigger2({ className, onClick, children, ...rest }, ref) {
|
|
15659
|
+
const { toggleSidebar, state, isMobile } = useSidebar();
|
|
15660
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
15661
|
+
"button",
|
|
15662
|
+
{
|
|
15663
|
+
ref,
|
|
15664
|
+
type: "button",
|
|
15665
|
+
onClick: (e) => {
|
|
15666
|
+
onClick?.(e);
|
|
15667
|
+
toggleSidebar();
|
|
15668
|
+
},
|
|
15669
|
+
"aria-label": state === "expanded" ? "Collapse sidebar" : "Expand sidebar",
|
|
15670
|
+
"aria-expanded": state === "expanded",
|
|
15671
|
+
className: chunk4ON3M3OM_cjs.cn(
|
|
15672
|
+
"inline-flex items-center justify-center size-8 shrink-0 rounded-md",
|
|
15673
|
+
"text-muted-foreground hover:text-foreground hover:bg-accent",
|
|
15674
|
+
"transition-colors duration-fast",
|
|
15675
|
+
chunk3EHT6IOA_cjs.focusRingClasses,
|
|
15676
|
+
className
|
|
15677
|
+
),
|
|
15678
|
+
"data-ds": "",
|
|
15679
|
+
"data-ds-component": "sidebar-trigger",
|
|
15680
|
+
...rest,
|
|
15681
|
+
children: [
|
|
15682
|
+
children ?? /* @__PURE__ */ jsxRuntime.jsx(PanelLeftIcon, { className: "size-4" }),
|
|
15683
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Toggle Sidebar" })
|
|
15684
|
+
]
|
|
15685
|
+
}
|
|
15686
|
+
);
|
|
15687
|
+
});
|
|
15688
|
+
SidebarTrigger.displayName = "SidebarTrigger";
|
|
15689
|
+
var SidebarToggle = SidebarTrigger;
|
|
15690
|
+
var SidebarRail = React.forwardRef(
|
|
15691
|
+
function SidebarRail2({ className, ...rest }, ref) {
|
|
15692
|
+
const { toggleSidebar, side } = useSidebar();
|
|
15693
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
15694
|
+
"button",
|
|
15695
|
+
{
|
|
15696
|
+
ref,
|
|
15697
|
+
type: "button",
|
|
15698
|
+
tabIndex: -1,
|
|
15699
|
+
"aria-label": "Toggle Sidebar",
|
|
15700
|
+
onClick: toggleSidebar,
|
|
15701
|
+
title: "Toggle Sidebar",
|
|
15702
|
+
className: chunk4ON3M3OM_cjs.cn(
|
|
15703
|
+
"absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 md:flex items-center justify-center",
|
|
15704
|
+
"after:absolute after:inset-y-0 after:left-1/2 after:w-0.5",
|
|
15705
|
+
"hover:after:bg-sidebar-border",
|
|
15706
|
+
"transition-all duration-fast ease-linear",
|
|
15707
|
+
"group-data-[side=left]:right-0 group-data-[side=right]:left-0",
|
|
15708
|
+
side === "left" ? "cursor-w-resize group-data-[state=collapsed]:cursor-e-resize" : "cursor-e-resize group-data-[state=collapsed]:cursor-w-resize",
|
|
15709
|
+
"[[data-side=left][data-state=collapsed]_&]:cursor-e-resize",
|
|
15710
|
+
"[[data-side=right][data-state=collapsed]_&]:cursor-w-resize",
|
|
15711
|
+
className
|
|
15712
|
+
),
|
|
15713
|
+
"data-ds": "",
|
|
15714
|
+
"data-ds-component": "sidebar-rail",
|
|
15715
|
+
...rest
|
|
15716
|
+
}
|
|
15717
|
+
);
|
|
15718
|
+
}
|
|
15719
|
+
);
|
|
15720
|
+
SidebarRail.displayName = "SidebarRail";
|
|
15721
|
+
var SidebarInset = React.forwardRef(
|
|
15722
|
+
function SidebarInset2({ className, children, ...rest }, ref) {
|
|
15723
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
15724
|
+
"main",
|
|
15725
|
+
{
|
|
15726
|
+
ref,
|
|
15727
|
+
className: chunk4ON3M3OM_cjs.cn(
|
|
15728
|
+
"relative flex min-h-svh flex-1 flex-col bg-background",
|
|
15729
|
+
"peer-data-[variant=inset]:min-h-[calc(100svh-(--spacing(4)))]",
|
|
15730
|
+
"md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0",
|
|
15731
|
+
"md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm",
|
|
15732
|
+
className
|
|
15733
|
+
),
|
|
15734
|
+
"data-ds": "",
|
|
15735
|
+
"data-ds-component": "sidebar-inset",
|
|
15736
|
+
...rest,
|
|
15737
|
+
children
|
|
15738
|
+
}
|
|
15739
|
+
);
|
|
15740
|
+
}
|
|
15741
|
+
);
|
|
15742
|
+
SidebarInset.displayName = "SidebarInset";
|
|
15743
|
+
var SidebarHeader = React.forwardRef(
|
|
15744
|
+
function SidebarHeader2({ className, children, ...rest }, ref) {
|
|
15745
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
15746
|
+
"div",
|
|
15747
|
+
{
|
|
15748
|
+
ref,
|
|
15749
|
+
className: chunk4ON3M3OM_cjs.cn(
|
|
15750
|
+
"flex flex-col gap-2 p-2",
|
|
15751
|
+
"group-data-[collapsible=icon]:items-center group-data-[collapsible=icon]:px-1.5",
|
|
15752
|
+
className
|
|
15753
|
+
),
|
|
15754
|
+
"data-ds": "",
|
|
15755
|
+
"data-ds-component": "sidebar-header",
|
|
15756
|
+
"data-sidebar": "header",
|
|
15757
|
+
...rest,
|
|
15758
|
+
children
|
|
15759
|
+
}
|
|
15760
|
+
);
|
|
15761
|
+
}
|
|
15762
|
+
);
|
|
15763
|
+
SidebarHeader.displayName = "SidebarHeader";
|
|
15764
|
+
var SidebarContent = React.forwardRef(
|
|
15765
|
+
function SidebarContent2({ className, children, ...rest }, ref) {
|
|
15766
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
15767
|
+
"div",
|
|
15768
|
+
{
|
|
15769
|
+
ref,
|
|
15770
|
+
className: chunk4ON3M3OM_cjs.cn(
|
|
15771
|
+
"flex min-h-0 flex-1 flex-col gap-2 overflow-y-auto overflow-x-hidden",
|
|
15772
|
+
"group-data-[collapsible=icon]:items-center",
|
|
15773
|
+
className
|
|
15774
|
+
),
|
|
15775
|
+
"data-ds": "",
|
|
15776
|
+
"data-ds-component": "sidebar-content",
|
|
15777
|
+
"data-sidebar": "content",
|
|
15778
|
+
...rest,
|
|
15779
|
+
children
|
|
15780
|
+
}
|
|
15781
|
+
);
|
|
15782
|
+
}
|
|
15783
|
+
);
|
|
15784
|
+
SidebarContent.displayName = "SidebarContent";
|
|
15785
|
+
var SidebarFooter = React.forwardRef(
|
|
15786
|
+
function SidebarFooter2({ className, children, ...rest }, ref) {
|
|
15787
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
15788
|
+
"div",
|
|
15789
|
+
{
|
|
15790
|
+
ref,
|
|
15791
|
+
className: chunk4ON3M3OM_cjs.cn(
|
|
15792
|
+
"flex flex-col gap-2 p-2",
|
|
15793
|
+
"group-data-[collapsible=icon]:items-center group-data-[collapsible=icon]:px-1.5",
|
|
15794
|
+
className
|
|
15795
|
+
),
|
|
15796
|
+
"data-ds": "",
|
|
15797
|
+
"data-ds-component": "sidebar-footer",
|
|
15798
|
+
"data-sidebar": "footer",
|
|
15799
|
+
...rest,
|
|
15800
|
+
children
|
|
15801
|
+
}
|
|
15802
|
+
);
|
|
15345
15803
|
}
|
|
15346
15804
|
);
|
|
15347
15805
|
SidebarFooter.displayName = "SidebarFooter";
|
|
15348
|
-
var
|
|
15349
|
-
|
|
15350
|
-
|
|
15351
|
-
|
|
15806
|
+
var SidebarSeparator = React.forwardRef(function SidebarSeparator2({ className, ...rest }, ref) {
|
|
15807
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
15808
|
+
"hr",
|
|
15809
|
+
{
|
|
15810
|
+
ref,
|
|
15811
|
+
className: chunk4ON3M3OM_cjs.cn("mx-2 w-auto border-sidebar-border", className),
|
|
15812
|
+
"data-ds": "",
|
|
15813
|
+
"data-ds-component": "sidebar-separator",
|
|
15814
|
+
"data-sidebar": "separator",
|
|
15815
|
+
...rest
|
|
15816
|
+
}
|
|
15817
|
+
);
|
|
15818
|
+
});
|
|
15819
|
+
SidebarSeparator.displayName = "SidebarSeparator";
|
|
15820
|
+
var SidebarInput = React.forwardRef(
|
|
15821
|
+
function SidebarInput2({ className, ...rest }, ref) {
|
|
15822
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
15823
|
+
"input",
|
|
15824
|
+
{
|
|
15825
|
+
ref,
|
|
15826
|
+
className: chunk4ON3M3OM_cjs.cn(
|
|
15827
|
+
"h-8 w-full rounded-md border border-sidebar-border bg-background px-3",
|
|
15828
|
+
"text-sm text-sidebar-foreground placeholder:text-sidebar-foreground/50",
|
|
15829
|
+
"transition-[border-color,box-shadow] duration-fast",
|
|
15830
|
+
"focus:border-sidebar-ring focus:outline-none focus:ring-2 focus:ring-sidebar-ring/20",
|
|
15831
|
+
className
|
|
15832
|
+
),
|
|
15833
|
+
"data-ds": "",
|
|
15834
|
+
"data-ds-component": "sidebar-input",
|
|
15835
|
+
"data-sidebar": "input",
|
|
15836
|
+
...rest
|
|
15837
|
+
}
|
|
15838
|
+
);
|
|
15839
|
+
}
|
|
15840
|
+
);
|
|
15841
|
+
SidebarInput.displayName = "SidebarInput";
|
|
15842
|
+
var SidebarGroup = React.forwardRef(
|
|
15843
|
+
function SidebarGroup2({ className, children, ...rest }, ref) {
|
|
15844
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
15352
15845
|
"div",
|
|
15353
15846
|
{
|
|
15354
15847
|
ref,
|
|
15355
|
-
className: chunk4ON3M3OM_cjs.cn(
|
|
15356
|
-
|
|
15848
|
+
className: chunk4ON3M3OM_cjs.cn(
|
|
15849
|
+
"relative flex w-full min-w-0 flex-col p-2",
|
|
15850
|
+
"group-data-[collapsible=icon]:items-center group-data-[collapsible=icon]:px-1.5",
|
|
15851
|
+
className
|
|
15852
|
+
),
|
|
15853
|
+
"data-ds": "",
|
|
15854
|
+
"data-ds-component": "sidebar-group",
|
|
15855
|
+
"data-sidebar": "group",
|
|
15357
15856
|
...rest,
|
|
15358
|
-
children
|
|
15359
|
-
|
|
15360
|
-
|
|
15361
|
-
|
|
15362
|
-
|
|
15363
|
-
|
|
15364
|
-
|
|
15365
|
-
|
|
15366
|
-
|
|
15367
|
-
|
|
15368
|
-
|
|
15369
|
-
|
|
15370
|
-
|
|
15371
|
-
|
|
15372
|
-
|
|
15857
|
+
children
|
|
15858
|
+
}
|
|
15859
|
+
);
|
|
15860
|
+
}
|
|
15861
|
+
);
|
|
15862
|
+
SidebarGroup.displayName = "SidebarGroup";
|
|
15863
|
+
var SidebarGroupLabel = React.forwardRef(function SidebarGroupLabel2({ className, asChild = false, children, ...rest }, ref) {
|
|
15864
|
+
const { state } = useSidebar();
|
|
15865
|
+
const classes = chunk4ON3M3OM_cjs.cn(
|
|
15866
|
+
"flex h-8 shrink-0 items-center rounded-md px-2",
|
|
15867
|
+
"text-xs font-medium text-sidebar-foreground/70",
|
|
15868
|
+
"outline-none ring-sidebar-ring",
|
|
15869
|
+
"transition-[margin,opacity,padding] duration-200 ease-linear",
|
|
15870
|
+
// When collapsed to icon mode, hide label
|
|
15871
|
+
state === "collapsed" && "opacity-0 overflow-hidden h-0 p-0 m-0",
|
|
15872
|
+
className
|
|
15873
|
+
);
|
|
15874
|
+
if (asChild) {
|
|
15875
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
15876
|
+
"div",
|
|
15877
|
+
{
|
|
15878
|
+
ref,
|
|
15879
|
+
className: classes,
|
|
15880
|
+
"data-ds": "",
|
|
15881
|
+
"data-ds-component": "sidebar-group-label",
|
|
15882
|
+
"data-sidebar": "group-label",
|
|
15883
|
+
...rest,
|
|
15884
|
+
children
|
|
15885
|
+
}
|
|
15886
|
+
);
|
|
15887
|
+
}
|
|
15888
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
15889
|
+
"div",
|
|
15890
|
+
{
|
|
15891
|
+
ref,
|
|
15892
|
+
className: classes,
|
|
15893
|
+
"data-ds": "",
|
|
15894
|
+
"data-ds-component": "sidebar-group-label",
|
|
15895
|
+
"data-sidebar": "group-label",
|
|
15896
|
+
...rest,
|
|
15897
|
+
children
|
|
15898
|
+
}
|
|
15899
|
+
);
|
|
15900
|
+
});
|
|
15901
|
+
SidebarGroupLabel.displayName = "SidebarGroupLabel";
|
|
15902
|
+
var SidebarGroupAction = React.forwardRef(function SidebarGroupAction2({ className, children, ...rest }, ref) {
|
|
15903
|
+
const { state } = useSidebar();
|
|
15904
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
15905
|
+
"button",
|
|
15906
|
+
{
|
|
15907
|
+
ref,
|
|
15908
|
+
type: "button",
|
|
15909
|
+
className: chunk4ON3M3OM_cjs.cn(
|
|
15910
|
+
"absolute right-3 top-3.5 flex items-center justify-center",
|
|
15911
|
+
"size-5 rounded-md p-0",
|
|
15912
|
+
"text-sidebar-foreground/70 ring-sidebar-ring",
|
|
15913
|
+
"outline-none",
|
|
15914
|
+
"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
|
|
15915
|
+
"transition-transform duration-200",
|
|
15916
|
+
chunk3EHT6IOA_cjs.focusRingClasses,
|
|
15917
|
+
"[&>svg]:size-4 [&>svg]:shrink-0",
|
|
15918
|
+
// When icon-collapsed, hide
|
|
15919
|
+
state === "collapsed" && "hidden",
|
|
15920
|
+
className
|
|
15921
|
+
),
|
|
15922
|
+
"data-ds": "",
|
|
15923
|
+
"data-ds-component": "sidebar-group-action",
|
|
15924
|
+
"data-sidebar": "group-action",
|
|
15925
|
+
...rest,
|
|
15926
|
+
children
|
|
15927
|
+
}
|
|
15928
|
+
);
|
|
15929
|
+
});
|
|
15930
|
+
SidebarGroupAction.displayName = "SidebarGroupAction";
|
|
15931
|
+
var SidebarGroupContent = React.forwardRef(function SidebarGroupContent2({ className, children, ...rest }, ref) {
|
|
15932
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
15933
|
+
"div",
|
|
15934
|
+
{
|
|
15935
|
+
ref,
|
|
15936
|
+
className: chunk4ON3M3OM_cjs.cn("w-full text-sm", className),
|
|
15937
|
+
"data-ds": "",
|
|
15938
|
+
"data-ds-component": "sidebar-group-content",
|
|
15939
|
+
"data-sidebar": "group-content",
|
|
15940
|
+
...rest,
|
|
15941
|
+
children
|
|
15942
|
+
}
|
|
15943
|
+
);
|
|
15944
|
+
});
|
|
15945
|
+
SidebarGroupContent.displayName = "SidebarGroupContent";
|
|
15946
|
+
var SidebarMenu = React.forwardRef(
|
|
15947
|
+
function SidebarMenu2({ className, children, ...rest }, ref) {
|
|
15948
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
15949
|
+
"ul",
|
|
15950
|
+
{
|
|
15951
|
+
ref,
|
|
15952
|
+
className: chunk4ON3M3OM_cjs.cn(
|
|
15953
|
+
"flex w-full min-w-0 flex-col gap-1 list-none m-0 p-0",
|
|
15954
|
+
"group-data-[collapsible=icon]:items-center",
|
|
15955
|
+
className
|
|
15956
|
+
),
|
|
15957
|
+
"data-ds": "",
|
|
15958
|
+
"data-ds-component": "sidebar-menu",
|
|
15959
|
+
"data-sidebar": "menu",
|
|
15960
|
+
...rest,
|
|
15961
|
+
children
|
|
15373
15962
|
}
|
|
15374
15963
|
);
|
|
15375
15964
|
}
|
|
15376
15965
|
);
|
|
15377
|
-
|
|
15966
|
+
SidebarMenu.displayName = "SidebarMenu";
|
|
15967
|
+
var SidebarMenuItem = React.forwardRef(function SidebarMenuItem2({ className, children, ...rest }, ref) {
|
|
15968
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
15969
|
+
"li",
|
|
15970
|
+
{
|
|
15971
|
+
ref,
|
|
15972
|
+
className: chunk4ON3M3OM_cjs.cn("group/menu-item relative list-none m-0 p-0", className),
|
|
15973
|
+
"data-ds": "",
|
|
15974
|
+
"data-ds-component": "sidebar-menu-item",
|
|
15975
|
+
"data-sidebar": "menu-item",
|
|
15976
|
+
...rest,
|
|
15977
|
+
children
|
|
15978
|
+
}
|
|
15979
|
+
);
|
|
15980
|
+
});
|
|
15981
|
+
SidebarMenuItem.displayName = "SidebarMenuItem";
|
|
15982
|
+
var SidebarMenuButton = React.forwardRef(function SidebarMenuButton2({
|
|
15983
|
+
isActive = false,
|
|
15984
|
+
size = "default",
|
|
15985
|
+
variant = "default",
|
|
15986
|
+
tooltip,
|
|
15987
|
+
asChild = false,
|
|
15988
|
+
className,
|
|
15989
|
+
children,
|
|
15990
|
+
...rest
|
|
15991
|
+
}, ref) {
|
|
15992
|
+
const { state, isMobile, collapsible } = useSidebar();
|
|
15993
|
+
const isCollapsed = state === "collapsed" && collapsible === "icon";
|
|
15994
|
+
const lgExpandedLayout = !isCollapsed ? [
|
|
15995
|
+
"[&>*:nth-child(2)]:flex-1 [&>*:nth-child(2)]:min-w-0",
|
|
15996
|
+
"[&>*:nth-child(2)]:grid [&>*:nth-child(2)]:text-left [&>*:nth-child(2)]:text-sm [&>*:nth-child(2)]:leading-tight",
|
|
15997
|
+
"[&>*:nth-child(2)_span]:truncate",
|
|
15998
|
+
"[&>svg:last-child]:ml-auto [&>svg:last-child]:shrink-0"
|
|
15999
|
+
].join(" ") : "";
|
|
16000
|
+
const sizeClasses3 = {
|
|
16001
|
+
sm: "h-7 text-xs",
|
|
16002
|
+
default: "h-8 text-sm",
|
|
16003
|
+
lg: [
|
|
16004
|
+
"h-12 text-sm",
|
|
16005
|
+
lgExpandedLayout,
|
|
16006
|
+
// lg collapsed: shrink height to match default buttons and scale
|
|
16007
|
+
// the first-child wrapper (logo div, Avatar) to 24px so it fits
|
|
16008
|
+
// neatly inside the 32px collapsed button.
|
|
16009
|
+
"group-data-[collapsible=icon]:!h-8",
|
|
16010
|
+
"group-data-[collapsible=icon]:[&>:first-child]:!size-6",
|
|
16011
|
+
"group-data-[collapsible=icon]:[&>:first-child]:shrink-0",
|
|
16012
|
+
"group-data-[collapsible=icon]:[&>:first-child]:overflow-hidden",
|
|
16013
|
+
"group-data-[collapsible=icon]:[&>:first-child]:rounded-md"
|
|
16014
|
+
].join(" ")
|
|
16015
|
+
};
|
|
16016
|
+
const buttonClasses = chunk4ON3M3OM_cjs.cn(
|
|
16017
|
+
// Base
|
|
16018
|
+
"peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2",
|
|
16019
|
+
"outline-none ring-sidebar-ring",
|
|
16020
|
+
"transition-[width,height,padding] duration-200 ease-linear",
|
|
16021
|
+
chunk3EHT6IOA_cjs.focusRingClasses,
|
|
16022
|
+
// Active & hover states
|
|
16023
|
+
"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
|
|
16024
|
+
"active:bg-sidebar-accent active:text-sidebar-accent-foreground",
|
|
16025
|
+
// Size
|
|
16026
|
+
sizeClasses3[size],
|
|
16027
|
+
// Variant
|
|
16028
|
+
variant === "outline" && "bg-background shadow-[0_0_0_1px_var(--sidebar-border)] hover:shadow-[0_0_0_1px_var(--sidebar-accent)]",
|
|
16029
|
+
// Active
|
|
16030
|
+
isActive && "bg-sidebar-accent text-sidebar-accent-foreground font-medium",
|
|
16031
|
+
// Icon collapse — fixed 32px button, no padding, center the icon,
|
|
16032
|
+
// hide everything except the first child (icon/avatar).
|
|
16033
|
+
// Plain <svg> icons stay at size-4 (16px); lg wrapper divs are
|
|
16034
|
+
// handled separately by the lg sizeClass above.
|
|
16035
|
+
isCollapsed && "!size-8 !p-0 !gap-0 justify-center [&>*:not(:first-child)]:hidden [&>svg]:size-4",
|
|
16036
|
+
// Disabled
|
|
16037
|
+
"disabled:pointer-events-none disabled:opacity-50",
|
|
16038
|
+
// Icon sizing
|
|
16039
|
+
"[&>svg]:size-4 [&>svg]:shrink-0",
|
|
16040
|
+
className
|
|
16041
|
+
);
|
|
16042
|
+
const button = asChild ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
16043
|
+
"span",
|
|
16044
|
+
{
|
|
16045
|
+
ref,
|
|
16046
|
+
className: buttonClasses,
|
|
16047
|
+
"data-ds": "",
|
|
16048
|
+
"data-ds-component": "sidebar-menu-button",
|
|
16049
|
+
"data-sidebar": "menu-button",
|
|
16050
|
+
"data-size": size,
|
|
16051
|
+
"data-active": isActive ? "" : void 0,
|
|
16052
|
+
children
|
|
16053
|
+
}
|
|
16054
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
16055
|
+
"button",
|
|
16056
|
+
{
|
|
16057
|
+
ref,
|
|
16058
|
+
type: "button",
|
|
16059
|
+
className: buttonClasses,
|
|
16060
|
+
"aria-current": isActive ? "page" : void 0,
|
|
16061
|
+
"data-ds": "",
|
|
16062
|
+
"data-ds-component": "sidebar-menu-button",
|
|
16063
|
+
"data-sidebar": "menu-button",
|
|
16064
|
+
"data-size": size,
|
|
16065
|
+
"data-active": isActive ? "" : void 0,
|
|
16066
|
+
...rest,
|
|
16067
|
+
children
|
|
16068
|
+
}
|
|
16069
|
+
);
|
|
16070
|
+
if (!tooltip || isMobile) {
|
|
16071
|
+
return button;
|
|
16072
|
+
}
|
|
16073
|
+
if (!isCollapsed) {
|
|
16074
|
+
return button;
|
|
16075
|
+
}
|
|
16076
|
+
const tooltipContent = typeof tooltip === "string" ? tooltip : tooltip;
|
|
16077
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(radixUi.Tooltip.Root, { children: [
|
|
16078
|
+
/* @__PURE__ */ jsxRuntime.jsx(radixUi.Tooltip.Trigger, { asChild: true, children: button }),
|
|
16079
|
+
/* @__PURE__ */ jsxRuntime.jsx(radixUi.Tooltip.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
16080
|
+
radixUi.Tooltip.Content,
|
|
16081
|
+
{
|
|
16082
|
+
side: "right",
|
|
16083
|
+
align: "center",
|
|
16084
|
+
sideOffset: 4,
|
|
16085
|
+
className: chunk4ON3M3OM_cjs.cn(
|
|
16086
|
+
"z-(--z-tooltip,9999)",
|
|
16087
|
+
"overflow-hidden rounded-md px-3 py-1.5",
|
|
16088
|
+
"bg-sidebar-primary text-sidebar-primary-foreground",
|
|
16089
|
+
"text-xs font-medium",
|
|
16090
|
+
"animate-in fade-in-0 zoom-in-95",
|
|
16091
|
+
"data-[side=right]:slide-in-from-left-2"
|
|
16092
|
+
),
|
|
16093
|
+
children: tooltipContent
|
|
16094
|
+
}
|
|
16095
|
+
) })
|
|
16096
|
+
] });
|
|
16097
|
+
});
|
|
16098
|
+
SidebarMenuButton.displayName = "SidebarMenuButton";
|
|
16099
|
+
var SidebarMenuAction = React.forwardRef(function SidebarMenuAction2({ showOnHover = false, className, children, ...rest }, ref) {
|
|
16100
|
+
const { state } = useSidebar();
|
|
16101
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
16102
|
+
"button",
|
|
16103
|
+
{
|
|
16104
|
+
ref,
|
|
16105
|
+
type: "button",
|
|
16106
|
+
className: chunk4ON3M3OM_cjs.cn(
|
|
16107
|
+
"absolute right-1 top-1.5 flex items-center justify-center",
|
|
16108
|
+
"size-5 rounded-md p-0",
|
|
16109
|
+
"text-sidebar-foreground/70 outline-none ring-sidebar-ring",
|
|
16110
|
+
"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
|
|
16111
|
+
"transition-opacity duration-fast",
|
|
16112
|
+
chunk3EHT6IOA_cjs.focusRingClasses,
|
|
16113
|
+
"[&>svg]:size-4 [&>svg]:shrink-0",
|
|
16114
|
+
// Show on hover only
|
|
16115
|
+
showOnHover && "opacity-0 group-hover/menu-item:opacity-100 group-focus-within/menu-item:opacity-100 peer-data-active/menu-button:text-sidebar-accent-foreground",
|
|
16116
|
+
// Hide when collapsed to icon mode
|
|
16117
|
+
state === "collapsed" && "hidden",
|
|
16118
|
+
className
|
|
16119
|
+
),
|
|
16120
|
+
"data-ds": "",
|
|
16121
|
+
"data-ds-component": "sidebar-menu-action",
|
|
16122
|
+
"data-sidebar": "menu-action",
|
|
16123
|
+
...rest,
|
|
16124
|
+
children
|
|
16125
|
+
}
|
|
16126
|
+
);
|
|
16127
|
+
});
|
|
16128
|
+
SidebarMenuAction.displayName = "SidebarMenuAction";
|
|
16129
|
+
var SidebarMenuBadge = React.forwardRef(function SidebarMenuBadge2({ className, children, ...rest }, ref) {
|
|
16130
|
+
const { state } = useSidebar();
|
|
16131
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
16132
|
+
"div",
|
|
16133
|
+
{
|
|
16134
|
+
ref,
|
|
16135
|
+
className: chunk4ON3M3OM_cjs.cn(
|
|
16136
|
+
"absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1",
|
|
16137
|
+
"text-xs font-medium tabular-nums text-sidebar-foreground",
|
|
16138
|
+
"select-none pointer-events-none",
|
|
16139
|
+
// Hide when collapsed
|
|
16140
|
+
state === "collapsed" && "hidden",
|
|
16141
|
+
className
|
|
16142
|
+
),
|
|
16143
|
+
"data-ds": "",
|
|
16144
|
+
"data-ds-component": "sidebar-menu-badge",
|
|
16145
|
+
"data-sidebar": "menu-badge",
|
|
16146
|
+
...rest,
|
|
16147
|
+
children
|
|
16148
|
+
}
|
|
16149
|
+
);
|
|
16150
|
+
});
|
|
16151
|
+
SidebarMenuBadge.displayName = "SidebarMenuBadge";
|
|
16152
|
+
var SidebarMenuSkeleton = React.forwardRef(function SidebarMenuSkeleton2({ className, showIcon = false, ...rest }, ref) {
|
|
16153
|
+
const width = React.useMemo(() => {
|
|
16154
|
+
return `${Math.floor(Math.random() * 40) + 50}%`;
|
|
16155
|
+
}, []);
|
|
16156
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
16157
|
+
"div",
|
|
16158
|
+
{
|
|
16159
|
+
ref,
|
|
16160
|
+
className: chunk4ON3M3OM_cjs.cn(
|
|
16161
|
+
"flex h-8 items-center gap-2 rounded-md px-2",
|
|
16162
|
+
className
|
|
16163
|
+
),
|
|
16164
|
+
"data-ds": "",
|
|
16165
|
+
"data-ds-component": "sidebar-menu-skeleton",
|
|
16166
|
+
"data-sidebar": "menu-skeleton",
|
|
16167
|
+
...rest,
|
|
16168
|
+
children: [
|
|
16169
|
+
showIcon && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "size-4 rounded-md bg-sidebar-accent animate-pulse" }),
|
|
16170
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
16171
|
+
"div",
|
|
16172
|
+
{
|
|
16173
|
+
className: "h-4 max-w-[--skeleton-width] flex-1 rounded-md bg-sidebar-accent animate-pulse",
|
|
16174
|
+
style: { "--skeleton-width": width }
|
|
16175
|
+
}
|
|
16176
|
+
)
|
|
16177
|
+
]
|
|
16178
|
+
}
|
|
16179
|
+
);
|
|
16180
|
+
});
|
|
16181
|
+
SidebarMenuSkeleton.displayName = "SidebarMenuSkeleton";
|
|
16182
|
+
var SidebarMenuSub = React.forwardRef(function SidebarMenuSub2({ className, children, ...rest }, ref) {
|
|
16183
|
+
const { state } = useSidebar();
|
|
16184
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
16185
|
+
"ul",
|
|
16186
|
+
{
|
|
16187
|
+
ref,
|
|
16188
|
+
className: chunk4ON3M3OM_cjs.cn(
|
|
16189
|
+
"mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 list-none m-0 p-0",
|
|
16190
|
+
"border-l border-sidebar-border pl-2.5 py-0.5",
|
|
16191
|
+
// Hide when collapsed to icon
|
|
16192
|
+
state === "collapsed" && "hidden",
|
|
16193
|
+
className
|
|
16194
|
+
),
|
|
16195
|
+
"data-ds": "",
|
|
16196
|
+
"data-ds-component": "sidebar-menu-sub",
|
|
16197
|
+
"data-sidebar": "menu-sub",
|
|
16198
|
+
...rest,
|
|
16199
|
+
children
|
|
16200
|
+
}
|
|
16201
|
+
);
|
|
16202
|
+
});
|
|
16203
|
+
SidebarMenuSub.displayName = "SidebarMenuSub";
|
|
16204
|
+
var SidebarMenuSubItem = React.forwardRef(function SidebarMenuSubItem2({ className, children, ...rest }, ref) {
|
|
16205
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
16206
|
+
"li",
|
|
16207
|
+
{
|
|
16208
|
+
ref,
|
|
16209
|
+
className: chunk4ON3M3OM_cjs.cn("list-none m-0 p-0", className),
|
|
16210
|
+
"data-ds": "",
|
|
16211
|
+
"data-ds-component": "sidebar-menu-sub-item",
|
|
16212
|
+
"data-sidebar": "menu-sub-item",
|
|
16213
|
+
...rest,
|
|
16214
|
+
children
|
|
16215
|
+
}
|
|
16216
|
+
);
|
|
16217
|
+
});
|
|
16218
|
+
SidebarMenuSubItem.displayName = "SidebarMenuSubItem";
|
|
16219
|
+
var SidebarMenuSubButton = React.forwardRef(function SidebarMenuSubButton2({ isActive = false, size = "md", className, children, ...rest }, ref) {
|
|
16220
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
16221
|
+
"a",
|
|
16222
|
+
{
|
|
16223
|
+
ref,
|
|
16224
|
+
className: chunk4ON3M3OM_cjs.cn(
|
|
16225
|
+
"flex min-w-0 items-center gap-2 overflow-hidden rounded-md px-2 no-underline",
|
|
16226
|
+
"text-sidebar-foreground/70 outline-none ring-sidebar-ring",
|
|
16227
|
+
"transition-colors duration-fast",
|
|
16228
|
+
"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:no-underline",
|
|
16229
|
+
chunk3EHT6IOA_cjs.focusRingClasses,
|
|
16230
|
+
size === "sm" ? "h-6 text-xs" : "h-7 text-xs",
|
|
16231
|
+
isActive && "bg-sidebar-accent text-sidebar-accent-foreground font-medium",
|
|
16232
|
+
"disabled:pointer-events-none disabled:opacity-50",
|
|
16233
|
+
"[&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground",
|
|
16234
|
+
className
|
|
16235
|
+
),
|
|
16236
|
+
"aria-current": isActive ? "page" : void 0,
|
|
16237
|
+
"data-ds": "",
|
|
16238
|
+
"data-ds-component": "sidebar-menu-sub-button",
|
|
16239
|
+
"data-sidebar": "menu-sub-button",
|
|
16240
|
+
"data-active": isActive ? "" : void 0,
|
|
16241
|
+
...rest,
|
|
16242
|
+
children
|
|
16243
|
+
}
|
|
16244
|
+
);
|
|
16245
|
+
});
|
|
16246
|
+
SidebarMenuSubButton.displayName = "SidebarMenuSubButton";
|
|
16247
|
+
var SidebarSection = SidebarGroup;
|
|
15378
16248
|
var SidebarItem = React.forwardRef(
|
|
15379
16249
|
function SidebarItem2({
|
|
15380
16250
|
icon,
|
|
@@ -15386,12 +16256,14 @@ var SidebarItem = React.forwardRef(
|
|
|
15386
16256
|
className,
|
|
15387
16257
|
children,
|
|
15388
16258
|
...rest
|
|
15389
|
-
},
|
|
15390
|
-
const {
|
|
16259
|
+
}, ref) {
|
|
16260
|
+
const { state } = useSidebar();
|
|
16261
|
+
const isCollapsed = state === "collapsed";
|
|
15391
16262
|
const Tag3 = href ? "a" : "button";
|
|
15392
16263
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
15393
16264
|
Tag3,
|
|
15394
16265
|
{
|
|
16266
|
+
ref,
|
|
15395
16267
|
href,
|
|
15396
16268
|
type: href ? void 0 : "button",
|
|
15397
16269
|
disabled,
|
|
@@ -15402,17 +16274,18 @@ var SidebarItem = React.forwardRef(
|
|
|
15402
16274
|
"transition-colors duration-fast",
|
|
15403
16275
|
"disabled:pointer-events-none disabled:opacity-50",
|
|
15404
16276
|
chunk3EHT6IOA_cjs.focusRingClasses,
|
|
15405
|
-
active ? "bg-accent text-accent-foreground" : "text-
|
|
15406
|
-
|
|
16277
|
+
active ? "bg-sidebar-accent text-sidebar-accent-foreground" : "text-sidebar-foreground/70 hover:text-sidebar-foreground hover:bg-sidebar-accent/60",
|
|
16278
|
+
isCollapsed && "justify-center",
|
|
15407
16279
|
className
|
|
15408
16280
|
),
|
|
15409
|
-
title:
|
|
16281
|
+
title: isCollapsed && typeof label === "string" ? label : void 0,
|
|
16282
|
+
"data-ds": "",
|
|
15410
16283
|
"data-ds-component": "sidebar-item",
|
|
15411
16284
|
"data-ds-active": active ? "" : void 0,
|
|
15412
16285
|
...rest,
|
|
15413
16286
|
children: [
|
|
15414
16287
|
icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "shrink-0 size-5 flex items-center justify-center", children: icon }),
|
|
15415
|
-
/* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { children: !
|
|
16288
|
+
/* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { children: !isCollapsed && (label || children) && /* @__PURE__ */ jsxRuntime.jsx(
|
|
15416
16289
|
framerMotion.motion.span,
|
|
15417
16290
|
{
|
|
15418
16291
|
className: "flex-1 truncate",
|
|
@@ -15424,32 +16297,15 @@ var SidebarItem = React.forwardRef(
|
|
|
15424
16297
|
children: label ?? children
|
|
15425
16298
|
}
|
|
15426
16299
|
) }),
|
|
15427
|
-
badge && !
|
|
16300
|
+
badge && !isCollapsed && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "shrink-0", children: badge })
|
|
15428
16301
|
]
|
|
15429
16302
|
}
|
|
15430
16303
|
);
|
|
15431
16304
|
}
|
|
15432
16305
|
);
|
|
15433
16306
|
SidebarItem.displayName = "SidebarItem";
|
|
15434
|
-
function SidebarMobileOverlay(
|
|
15435
|
-
|
|
15436
|
-
const shouldReduce = framerMotion.useReducedMotion();
|
|
15437
|
-
return /* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { children: mobileOpen && /* @__PURE__ */ jsxRuntime.jsx(
|
|
15438
|
-
framerMotion.motion.div,
|
|
15439
|
-
{
|
|
15440
|
-
className: chunk4ON3M3OM_cjs.cn(
|
|
15441
|
-
"fixed inset-0 z-overlay bg-black/50 backdrop-blur-sm md:hidden",
|
|
15442
|
-
className
|
|
15443
|
-
),
|
|
15444
|
-
variants: shouldReduce ? void 0 : chunkF4JJFWWU_cjs.overlayBackdrop.variants,
|
|
15445
|
-
initial: shouldReduce ? { opacity: 0 } : "initial",
|
|
15446
|
-
animate: shouldReduce ? { opacity: 1 } : "animate",
|
|
15447
|
-
exit: shouldReduce ? { opacity: 0 } : "exit",
|
|
15448
|
-
transition: shouldReduce ? { duration: 0.15 } : chunkF4JJFWWU_cjs.overlayBackdrop.transition,
|
|
15449
|
-
onClick: () => setMobileOpen(false),
|
|
15450
|
-
"data-ds-animated": ""
|
|
15451
|
-
}
|
|
15452
|
-
) });
|
|
16307
|
+
function SidebarMobileOverlay(_props) {
|
|
16308
|
+
return null;
|
|
15453
16309
|
}
|
|
15454
16310
|
SidebarMobileOverlay.displayName = "SidebarMobileOverlay";
|
|
15455
16311
|
var skeletonVariants = classVarianceAuthority.cva(
|
|
@@ -16557,11 +17413,11 @@ var Switch = React.forwardRef(function Switch2({
|
|
|
16557
17413
|
const [internalChecked, setInternalChecked] = React.useState(
|
|
16558
17414
|
checked ?? defaultChecked ?? false
|
|
16559
17415
|
);
|
|
16560
|
-
React.
|
|
16561
|
-
|
|
16562
|
-
|
|
16563
|
-
|
|
16564
|
-
}
|
|
17416
|
+
const [prevChecked, setPrevChecked] = React.useState(checked);
|
|
17417
|
+
if (isControlled && checked !== prevChecked) {
|
|
17418
|
+
setPrevChecked(checked);
|
|
17419
|
+
setInternalChecked(checked);
|
|
17420
|
+
}
|
|
16565
17421
|
const handleCheckedChange = React.useCallback(
|
|
16566
17422
|
(value) => {
|
|
16567
17423
|
if (!isControlled) {
|
|
@@ -17076,20 +17932,17 @@ var Textarea = React.forwardRef(
|
|
|
17076
17932
|
...rest
|
|
17077
17933
|
}, ref) {
|
|
17078
17934
|
const internalRef = React.useRef(null);
|
|
17079
|
-
const [
|
|
17080
|
-
|
|
17081
|
-
|
|
17082
|
-
|
|
17083
|
-
});
|
|
17084
|
-
const adjustHeight = useAutoResize(internalRef, autoResize, maxHeight);
|
|
17085
|
-
React.useEffect(() => {
|
|
17086
|
-
if (value !== void 0) {
|
|
17087
|
-
setCharCount(String(value).length);
|
|
17935
|
+
const [uncontrolledCharCount, setUncontrolledCharCount] = React.useState(
|
|
17936
|
+
() => {
|
|
17937
|
+
if (defaultValue !== void 0) return String(defaultValue).length;
|
|
17938
|
+
return 0;
|
|
17088
17939
|
}
|
|
17089
|
-
|
|
17940
|
+
);
|
|
17941
|
+
const charCount = value !== void 0 ? String(value).length : uncontrolledCharCount;
|
|
17942
|
+
const adjustHeight = useAutoResize(internalRef, autoResize, maxHeight);
|
|
17090
17943
|
const handleChange = React.useCallback(
|
|
17091
17944
|
(e) => {
|
|
17092
|
-
|
|
17945
|
+
setUncontrolledCharCount(e.target.value.length);
|
|
17093
17946
|
adjustHeight();
|
|
17094
17947
|
onChange?.(e);
|
|
17095
17948
|
},
|
|
@@ -18424,13 +19277,15 @@ var ColorPicker = React.forwardRef(
|
|
|
18424
19277
|
const [hue, setHue] = React.useState(hsl.h);
|
|
18425
19278
|
const [sat, setSat] = React.useState(hsl.s);
|
|
18426
19279
|
const [lit, setLit] = React.useState(hsl.l);
|
|
18427
|
-
React.
|
|
19280
|
+
const [prevValue, setPrevValue] = React.useState(currentValue);
|
|
19281
|
+
if (currentValue !== prevValue) {
|
|
19282
|
+
setPrevValue(currentValue);
|
|
18428
19283
|
const parsed = hexToHsl(currentValue);
|
|
18429
19284
|
setHue(parsed.h);
|
|
18430
19285
|
setSat(parsed.s);
|
|
18431
19286
|
setLit(parsed.l);
|
|
18432
19287
|
setHexInput(currentValue);
|
|
18433
|
-
}
|
|
19288
|
+
}
|
|
18434
19289
|
const updateColor = React.useCallback(
|
|
18435
19290
|
(hex) => {
|
|
18436
19291
|
if (!value) setInternalValue(hex);
|
|
@@ -18727,7 +19582,7 @@ var SonnerToaster = React.forwardRef(
|
|
|
18727
19582
|
}
|
|
18728
19583
|
);
|
|
18729
19584
|
SonnerToaster.displayName = "SonnerToaster";
|
|
18730
|
-
function
|
|
19585
|
+
function ChevronRightIcon7({ className }) {
|
|
18731
19586
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
18732
19587
|
"svg",
|
|
18733
19588
|
{
|
|
@@ -18955,7 +19810,7 @@ function TreeItem({ node, depth }) {
|
|
|
18955
19810
|
tabIndex: node.disabled ? -1 : 0,
|
|
18956
19811
|
children: [
|
|
18957
19812
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-flex size-4 items-center justify-center shrink-0", children: hasChildren && /* @__PURE__ */ jsxRuntime.jsx(
|
|
18958
|
-
|
|
19813
|
+
ChevronRightIcon7,
|
|
18959
19814
|
{
|
|
18960
19815
|
className: chunk4ON3M3OM_cjs.cn(
|
|
18961
19816
|
"size-3.5 text-muted-foreground transition-transform duration-fast",
|
|
@@ -19277,7 +20132,7 @@ function XIcon6({ className }) {
|
|
|
19277
20132
|
}
|
|
19278
20133
|
);
|
|
19279
20134
|
}
|
|
19280
|
-
function
|
|
20135
|
+
function ChevronLeftIcon3({ className }) {
|
|
19281
20136
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
19282
20137
|
"svg",
|
|
19283
20138
|
{
|
|
@@ -19294,7 +20149,7 @@ function ChevronLeftIcon4({ className }) {
|
|
|
19294
20149
|
}
|
|
19295
20150
|
);
|
|
19296
20151
|
}
|
|
19297
|
-
function
|
|
20152
|
+
function ChevronRightIcon8({ className }) {
|
|
19298
20153
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
19299
20154
|
"svg",
|
|
19300
20155
|
{
|
|
@@ -19445,7 +20300,7 @@ function Lightbox({
|
|
|
19445
20300
|
onClick: prev,
|
|
19446
20301
|
className: "absolute left-3 z-10 inline-flex size-10 items-center justify-center rounded-full bg-black/50 text-white/80 hover:bg-black/70 hover:text-white transition-colors",
|
|
19447
20302
|
"aria-label": "Previous image",
|
|
19448
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
20303
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(ChevronLeftIcon3, { className: "size-5" })
|
|
19449
20304
|
}
|
|
19450
20305
|
),
|
|
19451
20306
|
/* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { mode: "wait", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -19473,7 +20328,7 @@ function Lightbox({
|
|
|
19473
20328
|
onClick: next,
|
|
19474
20329
|
className: "absolute right-3 z-10 inline-flex size-10 items-center justify-center rounded-full bg-black/50 text-white/80 hover:bg-black/70 hover:text-white transition-colors",
|
|
19475
20330
|
"aria-label": "Next image",
|
|
19476
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
20331
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(ChevronRightIcon8, { className: "size-5" })
|
|
19477
20332
|
}
|
|
19478
20333
|
)
|
|
19479
20334
|
] }),
|
|
@@ -20224,10 +21079,12 @@ var DataTableToolbar = React.forwardRef(function DataTableToolbar2({
|
|
|
20224
21079
|
className
|
|
20225
21080
|
}, ref) {
|
|
20226
21081
|
const [localSearch, setLocalSearch] = React.useState(searchValue);
|
|
20227
|
-
const
|
|
20228
|
-
|
|
21082
|
+
const [prevSearchValue, setPrevSearchValue] = React.useState(searchValue);
|
|
21083
|
+
if (searchValue !== prevSearchValue) {
|
|
21084
|
+
setPrevSearchValue(searchValue);
|
|
20229
21085
|
setLocalSearch(searchValue);
|
|
20230
|
-
}
|
|
21086
|
+
}
|
|
21087
|
+
const debounceTimer = React.useRef(null);
|
|
20231
21088
|
const handleSearchChange = React.useCallback(
|
|
20232
21089
|
(value) => {
|
|
20233
21090
|
setLocalSearch(value);
|
|
@@ -20829,6 +21686,7 @@ exports.SelectScrollUpButton = SelectScrollUpButton;
|
|
|
20829
21686
|
exports.SelectSeparator = SelectSeparator;
|
|
20830
21687
|
exports.SelectTrigger = SelectTrigger;
|
|
20831
21688
|
exports.SelectValue = SelectValue;
|
|
21689
|
+
exports.Separator = Separator2;
|
|
20832
21690
|
exports.Sheet = Sheet;
|
|
20833
21691
|
exports.SheetClose = SheetClose;
|
|
20834
21692
|
exports.SheetContent = SheetContent;
|
|
@@ -20840,12 +21698,30 @@ exports.SheetTrigger = SheetTrigger;
|
|
|
20840
21698
|
exports.Sidebar = Sidebar;
|
|
20841
21699
|
exports.SidebarContent = SidebarContent;
|
|
20842
21700
|
exports.SidebarFooter = SidebarFooter;
|
|
21701
|
+
exports.SidebarGroup = SidebarGroup;
|
|
21702
|
+
exports.SidebarGroupAction = SidebarGroupAction;
|
|
21703
|
+
exports.SidebarGroupContent = SidebarGroupContent;
|
|
21704
|
+
exports.SidebarGroupLabel = SidebarGroupLabel;
|
|
20843
21705
|
exports.SidebarHeader = SidebarHeader;
|
|
21706
|
+
exports.SidebarInput = SidebarInput;
|
|
21707
|
+
exports.SidebarInset = SidebarInset;
|
|
20844
21708
|
exports.SidebarItem = SidebarItem;
|
|
21709
|
+
exports.SidebarMenu = SidebarMenu;
|
|
21710
|
+
exports.SidebarMenuAction = SidebarMenuAction;
|
|
21711
|
+
exports.SidebarMenuBadge = SidebarMenuBadge;
|
|
21712
|
+
exports.SidebarMenuButton = SidebarMenuButton;
|
|
21713
|
+
exports.SidebarMenuItem = SidebarMenuItem;
|
|
21714
|
+
exports.SidebarMenuSkeleton = SidebarMenuSkeleton;
|
|
21715
|
+
exports.SidebarMenuSub = SidebarMenuSub;
|
|
21716
|
+
exports.SidebarMenuSubButton = SidebarMenuSubButton;
|
|
21717
|
+
exports.SidebarMenuSubItem = SidebarMenuSubItem;
|
|
20845
21718
|
exports.SidebarMobileOverlay = SidebarMobileOverlay;
|
|
20846
21719
|
exports.SidebarProvider = SidebarProvider;
|
|
21720
|
+
exports.SidebarRail = SidebarRail;
|
|
20847
21721
|
exports.SidebarSection = SidebarSection;
|
|
21722
|
+
exports.SidebarSeparator = SidebarSeparator;
|
|
20848
21723
|
exports.SidebarToggle = SidebarToggle;
|
|
21724
|
+
exports.SidebarTrigger = SidebarTrigger;
|
|
20849
21725
|
exports.Skeleton = Skeleton;
|
|
20850
21726
|
exports.SkeletonCircle = SkeletonCircle;
|
|
20851
21727
|
exports.SkeletonRect = SkeletonRect;
|
|
@@ -20921,6 +21797,7 @@ exports.scrollbarThumbVariants = scrollbarThumbVariants;
|
|
|
20921
21797
|
exports.scrollbarVariants = scrollbarVariants;
|
|
20922
21798
|
exports.searchInputVariants = searchInputVariants;
|
|
20923
21799
|
exports.selectTriggerVariants = selectTriggerVariants;
|
|
21800
|
+
exports.separatorVariants = separatorVariants;
|
|
20924
21801
|
exports.sheetContentVariants = sheetContentVariants;
|
|
20925
21802
|
exports.skeletonVariants = skeletonVariants;
|
|
20926
21803
|
exports.sliderRangeVariants = sliderRangeVariants;
|
|
@@ -20943,6 +21820,7 @@ exports.useCarouselContext = useCarouselContext;
|
|
|
20943
21820
|
exports.useCheckboxGroupContext = useCheckboxGroupContext;
|
|
20944
21821
|
exports.useCollapsibleContext = useCollapsibleContext;
|
|
20945
21822
|
exports.useDataTable = useDataTable;
|
|
21823
|
+
exports.useSidebar = useSidebar;
|
|
20946
21824
|
exports.useSidebarContext = useSidebarContext;
|
|
20947
21825
|
exports.useToast = useToast;
|
|
20948
21826
|
exports.useToggleGroupContext = useToggleGroupContext;
|