@assure-one/design-system 1.3.0 → 1.4.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/dist/index.d.ts +171 -3
- package/dist/index.js +688 -169
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import * as
|
|
2
|
+
import * as React38 from 'react';
|
|
3
3
|
import { forwardRef, useId, useRef, useState, useEffect, useCallback, useImperativeHandle, useMemo, createContext, useContext } from 'react';
|
|
4
4
|
import * as AccordionPrimitive from '@radix-ui/react-accordion';
|
|
5
5
|
import { clsx } from 'clsx';
|
|
@@ -2285,7 +2285,7 @@ function PauseIcon({ size = 24, ...props }) {
|
|
|
2285
2285
|
function StopIcon({ size = 24, ...props }) {
|
|
2286
2286
|
return /* @__PURE__ */ jsx(Icon, { size, ...props, children: /* @__PURE__ */ jsx("rect", { x: "6", y: "6", width: "12", height: "12", rx: "2", fill: "currentColor" }) });
|
|
2287
2287
|
}
|
|
2288
|
-
var Accordion =
|
|
2288
|
+
var Accordion = React38.forwardRef(function Accordion2({ className, ...props }, ref) {
|
|
2289
2289
|
return /* @__PURE__ */ jsx(
|
|
2290
2290
|
AccordionPrimitive.Root,
|
|
2291
2291
|
{
|
|
@@ -2296,11 +2296,11 @@ var Accordion = React37.forwardRef(function Accordion2({ className, ...props },
|
|
|
2296
2296
|
);
|
|
2297
2297
|
});
|
|
2298
2298
|
Accordion.displayName = AccordionPrimitive.Root.displayName;
|
|
2299
|
-
var AccordionItem =
|
|
2299
|
+
var AccordionItem = React38.forwardRef(function AccordionItem2({ className, ...props }, ref) {
|
|
2300
2300
|
return /* @__PURE__ */ jsx(AccordionPrimitive.Item, { ref, className: cn(className), ...props });
|
|
2301
2301
|
});
|
|
2302
2302
|
AccordionItem.displayName = AccordionPrimitive.Item.displayName;
|
|
2303
|
-
var AccordionTrigger =
|
|
2303
|
+
var AccordionTrigger = React38.forwardRef(function AccordionTrigger2({ children, className, ...props }, ref) {
|
|
2304
2304
|
return /* @__PURE__ */ jsx(AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */ jsxs(
|
|
2305
2305
|
AccordionPrimitive.Trigger,
|
|
2306
2306
|
{
|
|
@@ -2329,7 +2329,7 @@ var AccordionTrigger = React37.forwardRef(function AccordionTrigger2({ children,
|
|
|
2329
2329
|
) });
|
|
2330
2330
|
});
|
|
2331
2331
|
AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;
|
|
2332
|
-
var AccordionContent =
|
|
2332
|
+
var AccordionContent = React38.forwardRef(function AccordionContent2({ children, className, ...props }, ref) {
|
|
2333
2333
|
return /* @__PURE__ */ jsx(
|
|
2334
2334
|
AccordionPrimitive.Content,
|
|
2335
2335
|
{
|
|
@@ -2349,7 +2349,7 @@ AccordionContent.displayName = AccordionPrimitive.Content.displayName;
|
|
|
2349
2349
|
var AlertDialog = AlertDialogPrimitive.Root;
|
|
2350
2350
|
var AlertDialogTrigger = AlertDialogPrimitive.Trigger;
|
|
2351
2351
|
var AlertDialogPortal = AlertDialogPrimitive.Portal;
|
|
2352
|
-
var AlertDialogOverlay =
|
|
2352
|
+
var AlertDialogOverlay = React38.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2353
2353
|
AlertDialogPrimitive.Overlay,
|
|
2354
2354
|
{
|
|
2355
2355
|
ref,
|
|
@@ -2364,7 +2364,7 @@ var AlertDialogOverlay = React37.forwardRef(({ className, ...props }, ref) => /*
|
|
|
2364
2364
|
}
|
|
2365
2365
|
));
|
|
2366
2366
|
AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;
|
|
2367
|
-
var AlertDialogContent =
|
|
2367
|
+
var AlertDialogContent = React38.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs(AlertDialogPortal, { children: [
|
|
2368
2368
|
/* @__PURE__ */ jsx(AlertDialogOverlay, {}),
|
|
2369
2369
|
/* @__PURE__ */ jsx(
|
|
2370
2370
|
AlertDialogPrimitive.Content,
|
|
@@ -2399,7 +2399,7 @@ var AlertDialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx(
|
|
|
2399
2399
|
}
|
|
2400
2400
|
);
|
|
2401
2401
|
AlertDialogFooter.displayName = "AlertDialogFooter";
|
|
2402
|
-
var AlertDialogTitle =
|
|
2402
|
+
var AlertDialogTitle = React38.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2403
2403
|
AlertDialogPrimitive.Title,
|
|
2404
2404
|
{
|
|
2405
2405
|
ref,
|
|
@@ -2411,7 +2411,7 @@ var AlertDialogTitle = React37.forwardRef(({ className, ...props }, ref) => /* @
|
|
|
2411
2411
|
}
|
|
2412
2412
|
));
|
|
2413
2413
|
AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;
|
|
2414
|
-
var AlertDialogDescription =
|
|
2414
|
+
var AlertDialogDescription = React38.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2415
2415
|
AlertDialogPrimitive.Description,
|
|
2416
2416
|
{
|
|
2417
2417
|
ref,
|
|
@@ -2420,7 +2420,7 @@ var AlertDialogDescription = React37.forwardRef(({ className, ...props }, ref) =
|
|
|
2420
2420
|
}
|
|
2421
2421
|
));
|
|
2422
2422
|
AlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName;
|
|
2423
|
-
var AlertDialogAction =
|
|
2423
|
+
var AlertDialogAction = React38.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2424
2424
|
AlertDialogPrimitive.Action,
|
|
2425
2425
|
{
|
|
2426
2426
|
ref,
|
|
@@ -2436,7 +2436,7 @@ var AlertDialogAction = React37.forwardRef(({ className, ...props }, ref) => /*
|
|
|
2436
2436
|
}
|
|
2437
2437
|
));
|
|
2438
2438
|
AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;
|
|
2439
|
-
var AlertDialogCancel =
|
|
2439
|
+
var AlertDialogCancel = React38.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2440
2440
|
AlertDialogPrimitive.Cancel,
|
|
2441
2441
|
{
|
|
2442
2442
|
ref,
|
|
@@ -2631,7 +2631,7 @@ var AreaChart = forwardRef(function AreaChart2({ data, height = 140, formatValue
|
|
|
2631
2631
|
] });
|
|
2632
2632
|
});
|
|
2633
2633
|
AreaChart.displayName = "AreaChart";
|
|
2634
|
-
var AspectRatio =
|
|
2634
|
+
var AspectRatio = React38.forwardRef(function AspectRatio2({ className, ratio = 16 / 9, ...props }, ref) {
|
|
2635
2635
|
return /* @__PURE__ */ jsx(
|
|
2636
2636
|
AspectRatioPrimitive.Root,
|
|
2637
2637
|
{
|
|
@@ -2970,7 +2970,7 @@ var statusDotSizes = {
|
|
|
2970
2970
|
function getInitials(name) {
|
|
2971
2971
|
return name.split(" ").map((part) => part[0]).filter(Boolean).slice(0, 2).join("").toUpperCase();
|
|
2972
2972
|
}
|
|
2973
|
-
var Avatar =
|
|
2973
|
+
var Avatar = React38.forwardRef(
|
|
2974
2974
|
function Avatar2({ src, alt, name, size = "md", variant = "initials", status, className, ...props }, ref) {
|
|
2975
2975
|
const initials = name ? getInitials(name) : "?";
|
|
2976
2976
|
const resolvedSize = size ?? "md";
|
|
@@ -3211,7 +3211,7 @@ function Calendar({
|
|
|
3211
3211
|
classNames,
|
|
3212
3212
|
...props
|
|
3213
3213
|
}) {
|
|
3214
|
-
const { modifiers, modifiersClassNames } =
|
|
3214
|
+
const { modifiers, modifiersClassNames } = React38.useMemo(() => {
|
|
3215
3215
|
const buckets = {};
|
|
3216
3216
|
for (const h of highlights) {
|
|
3217
3217
|
const key = h.color ?? "primary";
|
|
@@ -3226,7 +3226,7 @@ function Calendar({
|
|
|
3226
3226
|
}
|
|
3227
3227
|
return { modifiers: mods, modifiersClassNames: modClasses };
|
|
3228
3228
|
}, [highlights]);
|
|
3229
|
-
const disabledMatcher =
|
|
3229
|
+
const disabledMatcher = React38.useMemo(() => {
|
|
3230
3230
|
if (!minDate && !maxDate) return void 0;
|
|
3231
3231
|
if (minDate && maxDate) return [{ before: minDate }, { after: maxDate }];
|
|
3232
3232
|
if (minDate) return { before: minDate };
|
|
@@ -3393,7 +3393,7 @@ var CategoryDivider = forwardRef(
|
|
|
3393
3393
|
}
|
|
3394
3394
|
);
|
|
3395
3395
|
CategoryDivider.displayName = "CategoryDivider";
|
|
3396
|
-
var Checkbox =
|
|
3396
|
+
var Checkbox = React38.forwardRef(function Checkbox2({
|
|
3397
3397
|
label,
|
|
3398
3398
|
indeterminate,
|
|
3399
3399
|
checked,
|
|
@@ -3403,7 +3403,7 @@ var Checkbox = React37.forwardRef(function Checkbox2({
|
|
|
3403
3403
|
id: providedId,
|
|
3404
3404
|
...props
|
|
3405
3405
|
}, ref) {
|
|
3406
|
-
const generatedId =
|
|
3406
|
+
const generatedId = React38.useId();
|
|
3407
3407
|
const id = providedId ?? generatedId;
|
|
3408
3408
|
const resolvedChecked = indeterminate ? "indeterminate" : checked;
|
|
3409
3409
|
return /* @__PURE__ */ jsxs("div", { className: "inline-flex items-center gap-2", children: [
|
|
@@ -3444,7 +3444,7 @@ Checkbox.displayName = CheckboxPrimitive.Root.displayName;
|
|
|
3444
3444
|
var SelectRoot = SelectPrimitive.Root;
|
|
3445
3445
|
var SelectGroup = SelectPrimitive.Group;
|
|
3446
3446
|
var SelectValue = SelectPrimitive.Value;
|
|
3447
|
-
var SelectTrigger =
|
|
3447
|
+
var SelectTrigger = React38.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
3448
3448
|
SelectPrimitive.Trigger,
|
|
3449
3449
|
{
|
|
3450
3450
|
ref,
|
|
@@ -3475,7 +3475,7 @@ var SelectTrigger = React37.forwardRef(({ className, children, ...props }, ref)
|
|
|
3475
3475
|
}
|
|
3476
3476
|
));
|
|
3477
3477
|
SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
|
|
3478
|
-
var SelectScrollUpButton =
|
|
3478
|
+
var SelectScrollUpButton = React38.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
3479
3479
|
SelectPrimitive.ScrollUpButton,
|
|
3480
3480
|
{
|
|
3481
3481
|
ref,
|
|
@@ -3485,7 +3485,7 @@ var SelectScrollUpButton = React37.forwardRef(({ className, ...props }, ref) =>
|
|
|
3485
3485
|
}
|
|
3486
3486
|
));
|
|
3487
3487
|
SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
|
|
3488
|
-
var SelectScrollDownButton =
|
|
3488
|
+
var SelectScrollDownButton = React38.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
3489
3489
|
SelectPrimitive.ScrollDownButton,
|
|
3490
3490
|
{
|
|
3491
3491
|
ref,
|
|
@@ -3495,7 +3495,7 @@ var SelectScrollDownButton = React37.forwardRef(({ className, ...props }, ref) =
|
|
|
3495
3495
|
}
|
|
3496
3496
|
));
|
|
3497
3497
|
SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
|
|
3498
|
-
var SelectContent =
|
|
3498
|
+
var SelectContent = React38.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ jsx(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs(
|
|
3499
3499
|
SelectPrimitive.Content,
|
|
3500
3500
|
{
|
|
3501
3501
|
ref,
|
|
@@ -3529,7 +3529,7 @@ var SelectContent = React37.forwardRef(({ className, children, position = "poppe
|
|
|
3529
3529
|
}
|
|
3530
3530
|
) }));
|
|
3531
3531
|
SelectContent.displayName = SelectPrimitive.Content.displayName;
|
|
3532
|
-
var SelectLabel =
|
|
3532
|
+
var SelectLabel = React38.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
3533
3533
|
SelectPrimitive.Label,
|
|
3534
3534
|
{
|
|
3535
3535
|
ref,
|
|
@@ -3541,7 +3541,7 @@ var SelectLabel = React37.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
3541
3541
|
}
|
|
3542
3542
|
));
|
|
3543
3543
|
SelectLabel.displayName = SelectPrimitive.Label.displayName;
|
|
3544
|
-
var SelectItem =
|
|
3544
|
+
var SelectItem = React38.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
3545
3545
|
SelectPrimitive.Item,
|
|
3546
3546
|
{
|
|
3547
3547
|
ref,
|
|
@@ -3562,7 +3562,7 @@ var SelectItem = React37.forwardRef(({ className, children, ...props }, ref) =>
|
|
|
3562
3562
|
}
|
|
3563
3563
|
));
|
|
3564
3564
|
SelectItem.displayName = SelectPrimitive.Item.displayName;
|
|
3565
|
-
var SelectSeparator =
|
|
3565
|
+
var SelectSeparator = React38.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
3566
3566
|
SelectPrimitive.Separator,
|
|
3567
3567
|
{
|
|
3568
3568
|
ref,
|
|
@@ -3647,11 +3647,11 @@ function ClientSelect({
|
|
|
3647
3647
|
] });
|
|
3648
3648
|
}
|
|
3649
3649
|
ClientSelect.displayName = "ClientSelect";
|
|
3650
|
-
var Collapsible =
|
|
3650
|
+
var Collapsible = React38.forwardRef(function Collapsible2({ className, ...props }, ref) {
|
|
3651
3651
|
return /* @__PURE__ */ jsx(CollapsiblePrimitive.Root, { ref, className: cn(className), ...props });
|
|
3652
3652
|
});
|
|
3653
3653
|
Collapsible.displayName = CollapsiblePrimitive.Root.displayName;
|
|
3654
|
-
var CollapsibleTrigger =
|
|
3654
|
+
var CollapsibleTrigger = React38.forwardRef(function CollapsibleTrigger2({ className, ...props }, ref) {
|
|
3655
3655
|
return /* @__PURE__ */ jsx(
|
|
3656
3656
|
CollapsiblePrimitive.Trigger,
|
|
3657
3657
|
{
|
|
@@ -3666,7 +3666,7 @@ var CollapsibleTrigger = React37.forwardRef(function CollapsibleTrigger2({ class
|
|
|
3666
3666
|
);
|
|
3667
3667
|
});
|
|
3668
3668
|
CollapsibleTrigger.displayName = CollapsiblePrimitive.Trigger.displayName;
|
|
3669
|
-
var CollapsibleContent =
|
|
3669
|
+
var CollapsibleContent = React38.forwardRef(function CollapsibleContent2({ className, ...props }, ref) {
|
|
3670
3670
|
return /* @__PURE__ */ jsx(
|
|
3671
3671
|
CollapsiblePrimitive.Content,
|
|
3672
3672
|
{
|
|
@@ -3743,7 +3743,7 @@ ComingSoon.displayName = "ComingSoon";
|
|
|
3743
3743
|
var Dialog = DialogPrimitive.Root;
|
|
3744
3744
|
var DialogTrigger = DialogPrimitive.Trigger;
|
|
3745
3745
|
var DialogPortal = DialogPrimitive.Portal;
|
|
3746
|
-
var DialogOverlay =
|
|
3746
|
+
var DialogOverlay = React38.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
3747
3747
|
DialogPrimitive.Overlay,
|
|
3748
3748
|
{
|
|
3749
3749
|
ref,
|
|
@@ -3764,7 +3764,7 @@ var dialogSizeStyles = {
|
|
|
3764
3764
|
lg: "max-w-2xl",
|
|
3765
3765
|
full: "max-w-[calc(100vw-2rem)]"
|
|
3766
3766
|
};
|
|
3767
|
-
var DialogContent =
|
|
3767
|
+
var DialogContent = React38.forwardRef(({ size = "md", showCloseButton = true, className, children, ...props }, ref) => /* @__PURE__ */ jsxs(DialogPortal, { children: [
|
|
3768
3768
|
/* @__PURE__ */ jsx(DialogOverlay, {}),
|
|
3769
3769
|
/* @__PURE__ */ jsxs(
|
|
3770
3770
|
DialogPrimitive.Content,
|
|
@@ -3805,7 +3805,7 @@ var DialogContent = React37.forwardRef(({ size = "md", showCloseButton = true, c
|
|
|
3805
3805
|
)
|
|
3806
3806
|
] }));
|
|
3807
3807
|
DialogContent.displayName = DialogPrimitive.Content.displayName;
|
|
3808
|
-
var DialogClose =
|
|
3808
|
+
var DialogClose = React38.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(DialogPrimitive.Close, { ref, className: cn(className), ...props }));
|
|
3809
3809
|
DialogClose.displayName = "DialogClose";
|
|
3810
3810
|
var DialogHeader = ({ className, ...props }) => /* @__PURE__ */ jsx("div", { className: cn("mb-4 flex flex-col gap-1.5 pr-8", className), ...props });
|
|
3811
3811
|
DialogHeader.displayName = "DialogHeader";
|
|
@@ -3820,7 +3820,7 @@ var DialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx(
|
|
|
3820
3820
|
}
|
|
3821
3821
|
);
|
|
3822
3822
|
DialogFooter.displayName = "DialogFooter";
|
|
3823
|
-
var DialogTitle =
|
|
3823
|
+
var DialogTitle = React38.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
3824
3824
|
DialogPrimitive.Title,
|
|
3825
3825
|
{
|
|
3826
3826
|
ref,
|
|
@@ -3832,7 +3832,7 @@ var DialogTitle = React37.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
3832
3832
|
}
|
|
3833
3833
|
));
|
|
3834
3834
|
DialogTitle.displayName = DialogPrimitive.Title.displayName;
|
|
3835
|
-
var DialogDescription =
|
|
3835
|
+
var DialogDescription = React38.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
3836
3836
|
DialogPrimitive.Description,
|
|
3837
3837
|
{
|
|
3838
3838
|
ref,
|
|
@@ -3862,17 +3862,17 @@ function CommandPalette({
|
|
|
3862
3862
|
onOpenChange,
|
|
3863
3863
|
placeholder = "Type a command or search..."
|
|
3864
3864
|
}) {
|
|
3865
|
-
const [internalOpen, setInternalOpen] =
|
|
3865
|
+
const [internalOpen, setInternalOpen] = React38.useState(false);
|
|
3866
3866
|
const isControlled = controlledOpen !== void 0;
|
|
3867
3867
|
const open = isControlled ? controlledOpen : internalOpen;
|
|
3868
|
-
const setOpen =
|
|
3868
|
+
const setOpen = React38.useCallback(
|
|
3869
3869
|
(value) => {
|
|
3870
3870
|
if (!isControlled) setInternalOpen(value);
|
|
3871
3871
|
onOpenChange?.(value);
|
|
3872
3872
|
},
|
|
3873
3873
|
[isControlled, onOpenChange]
|
|
3874
3874
|
);
|
|
3875
|
-
|
|
3875
|
+
React38.useEffect(() => {
|
|
3876
3876
|
function handleKeyDown(e) {
|
|
3877
3877
|
if ((e.metaKey || e.ctrlKey) && e.key === "k") {
|
|
3878
3878
|
e.preventDefault();
|
|
@@ -4027,10 +4027,10 @@ function ConfirmActionButton({
|
|
|
4027
4027
|
onOpenChange
|
|
4028
4028
|
}) {
|
|
4029
4029
|
const isControlled = open !== void 0;
|
|
4030
|
-
const [uncontrolledOpen, setUncontrolledOpen] =
|
|
4030
|
+
const [uncontrolledOpen, setUncontrolledOpen] = React38.useState(defaultOpen);
|
|
4031
4031
|
const resolvedOpen = isControlled ? open : uncontrolledOpen;
|
|
4032
|
-
const [pending, setPending] =
|
|
4033
|
-
const setDialogOpen =
|
|
4032
|
+
const [pending, setPending] = React38.useState(false);
|
|
4033
|
+
const setDialogOpen = React38.useCallback(
|
|
4034
4034
|
(nextOpen) => {
|
|
4035
4035
|
onOpenChange?.(nextOpen);
|
|
4036
4036
|
if (!isControlled) {
|
|
@@ -4089,7 +4089,7 @@ var ContextMenuGroup = ContextMenuPrimitive.Group;
|
|
|
4089
4089
|
var ContextMenuPortal = ContextMenuPrimitive.Portal;
|
|
4090
4090
|
var ContextMenuSub = ContextMenuPrimitive.Sub;
|
|
4091
4091
|
var ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;
|
|
4092
|
-
var ContextMenuSubTrigger =
|
|
4092
|
+
var ContextMenuSubTrigger = React38.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
4093
4093
|
ContextMenuPrimitive.SubTrigger,
|
|
4094
4094
|
{
|
|
4095
4095
|
ref,
|
|
@@ -4110,7 +4110,7 @@ var ContextMenuSubTrigger = React37.forwardRef(({ className, inset, children, ..
|
|
|
4110
4110
|
}
|
|
4111
4111
|
));
|
|
4112
4112
|
ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
|
|
4113
|
-
var ContextMenuSubContent =
|
|
4113
|
+
var ContextMenuSubContent = React38.forwardRef(({ className, ...props }, ref) => (
|
|
4114
4114
|
// Portal the sub-content to the body. The parent Content keeps a persistent
|
|
4115
4115
|
// `scale-100` transform (its open-state animation), which makes it the
|
|
4116
4116
|
// containing block for `position: fixed` descendants — and its
|
|
@@ -4133,7 +4133,7 @@ var ContextMenuSubContent = React37.forwardRef(({ className, ...props }, ref) =>
|
|
|
4133
4133
|
) })
|
|
4134
4134
|
));
|
|
4135
4135
|
ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
|
|
4136
|
-
var ContextMenuContent =
|
|
4136
|
+
var ContextMenuContent = React38.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(
|
|
4137
4137
|
ContextMenuPrimitive.Content,
|
|
4138
4138
|
{
|
|
4139
4139
|
ref,
|
|
@@ -4149,7 +4149,7 @@ var ContextMenuContent = React37.forwardRef(({ className, ...props }, ref) => /*
|
|
|
4149
4149
|
}
|
|
4150
4150
|
) }));
|
|
4151
4151
|
ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
|
|
4152
|
-
var ContextMenuItem =
|
|
4152
|
+
var ContextMenuItem = React38.forwardRef(({ className, destructive, inset, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
4153
4153
|
ContextMenuPrimitive.Item,
|
|
4154
4154
|
{
|
|
4155
4155
|
ref,
|
|
@@ -4167,7 +4167,7 @@ var ContextMenuItem = React37.forwardRef(({ className, destructive, inset, ...pr
|
|
|
4167
4167
|
}
|
|
4168
4168
|
));
|
|
4169
4169
|
ContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;
|
|
4170
|
-
var ContextMenuCheckboxItem =
|
|
4170
|
+
var ContextMenuCheckboxItem = React38.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
4171
4171
|
ContextMenuPrimitive.CheckboxItem,
|
|
4172
4172
|
{
|
|
4173
4173
|
ref,
|
|
@@ -4187,7 +4187,7 @@ var ContextMenuCheckboxItem = React37.forwardRef(({ className, children, checked
|
|
|
4187
4187
|
}
|
|
4188
4188
|
));
|
|
4189
4189
|
ContextMenuCheckboxItem.displayName = ContextMenuPrimitive.CheckboxItem.displayName;
|
|
4190
|
-
var ContextMenuRadioItem =
|
|
4190
|
+
var ContextMenuRadioItem = React38.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
4191
4191
|
ContextMenuPrimitive.RadioItem,
|
|
4192
4192
|
{
|
|
4193
4193
|
ref,
|
|
@@ -4206,7 +4206,7 @@ var ContextMenuRadioItem = React37.forwardRef(({ className, children, ...props }
|
|
|
4206
4206
|
}
|
|
4207
4207
|
));
|
|
4208
4208
|
ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;
|
|
4209
|
-
var ContextMenuLabel =
|
|
4209
|
+
var ContextMenuLabel = React38.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
4210
4210
|
ContextMenuPrimitive.Label,
|
|
4211
4211
|
{
|
|
4212
4212
|
ref,
|
|
@@ -4219,7 +4219,7 @@ var ContextMenuLabel = React37.forwardRef(({ className, inset, ...props }, ref)
|
|
|
4219
4219
|
}
|
|
4220
4220
|
));
|
|
4221
4221
|
ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;
|
|
4222
|
-
var ContextMenuSeparator =
|
|
4222
|
+
var ContextMenuSeparator = React38.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
4223
4223
|
ContextMenuPrimitive.Separator,
|
|
4224
4224
|
{
|
|
4225
4225
|
ref,
|
|
@@ -4314,7 +4314,7 @@ var PopoverTrigger = PopoverPrimitive.Trigger;
|
|
|
4314
4314
|
var PopoverAnchor = PopoverPrimitive.Anchor;
|
|
4315
4315
|
var PopoverPortal = PopoverPrimitive.Portal;
|
|
4316
4316
|
var PopoverClose = PopoverPrimitive.Close;
|
|
4317
|
-
var PopoverContent =
|
|
4317
|
+
var PopoverContent = React38.forwardRef(({ className, align = "center", side = "bottom", sideOffset = 8, ...props }, ref) => /* @__PURE__ */ jsx(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx(
|
|
4318
4318
|
PopoverPrimitive.Content,
|
|
4319
4319
|
{
|
|
4320
4320
|
ref,
|
|
@@ -4859,7 +4859,7 @@ var chipVariants = cva(
|
|
|
4859
4859
|
}
|
|
4860
4860
|
}
|
|
4861
4861
|
);
|
|
4862
|
-
var DismissibleChip =
|
|
4862
|
+
var DismissibleChip = React38.forwardRef(function DismissibleChip2({ label, onDismiss, variant, className, ...props }, ref) {
|
|
4863
4863
|
return /* @__PURE__ */ jsxs(
|
|
4864
4864
|
"button",
|
|
4865
4865
|
{
|
|
@@ -4876,6 +4876,29 @@ var DismissibleChip = React37.forwardRef(function DismissibleChip2({ label, onDi
|
|
|
4876
4876
|
}
|
|
4877
4877
|
);
|
|
4878
4878
|
});
|
|
4879
|
+
var DocumentsWorkspaceLayout = forwardRef(function DocumentsWorkspaceLayout2({ clientsRail, folderTree, filesArea, className, ...props }, ref) {
|
|
4880
|
+
return /* @__PURE__ */ jsxs(
|
|
4881
|
+
"div",
|
|
4882
|
+
{
|
|
4883
|
+
ref,
|
|
4884
|
+
className: cn(
|
|
4885
|
+
// Root: fills parent, no self-scroll, 2-col base → 3-col at lg/xl
|
|
4886
|
+
"grid h-full min-h-0 overflow-hidden bg-surface",
|
|
4887
|
+
"grid-cols-[240px_minmax(0,1fr)]",
|
|
4888
|
+
"lg:grid-cols-[248px_220px_minmax(0,1fr)]",
|
|
4889
|
+
"xl:grid-cols-[280px_244px_minmax(0,1fr)]",
|
|
4890
|
+
className
|
|
4891
|
+
),
|
|
4892
|
+
...props,
|
|
4893
|
+
children: [
|
|
4894
|
+
/* @__PURE__ */ jsx("div", { className: "flex min-h-0 min-w-0 flex-col border-r border-rule bg-surface", children: clientsRail }),
|
|
4895
|
+
/* @__PURE__ */ jsx("div", { className: "hidden min-h-0 min-w-0 flex-col border-r border-rule bg-surface lg:flex", children: folderTree }),
|
|
4896
|
+
/* @__PURE__ */ jsx("div", { className: "flex min-h-0 min-w-0 flex-col bg-bg", children: filesArea })
|
|
4897
|
+
]
|
|
4898
|
+
}
|
|
4899
|
+
);
|
|
4900
|
+
});
|
|
4901
|
+
DocumentsWorkspaceLayout.displayName = "DocumentsWorkspaceLayout";
|
|
4879
4902
|
var RAMP = [
|
|
4880
4903
|
"var(--color-chart-1)",
|
|
4881
4904
|
"var(--color-chart-2)",
|
|
@@ -4999,7 +5022,7 @@ var DropdownMenuGroup = DropdownMenuPrimitive.Group;
|
|
|
4999
5022
|
var DropdownMenuPortal = DropdownMenuPrimitive.Portal;
|
|
5000
5023
|
var DropdownMenuSub = DropdownMenuPrimitive.Sub;
|
|
5001
5024
|
var DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
|
|
5002
|
-
var DropdownMenuSubTrigger =
|
|
5025
|
+
var DropdownMenuSubTrigger = React38.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
5003
5026
|
DropdownMenuPrimitive.SubTrigger,
|
|
5004
5027
|
{
|
|
5005
5028
|
ref,
|
|
@@ -5020,7 +5043,7 @@ var DropdownMenuSubTrigger = React37.forwardRef(({ className, inset, children, .
|
|
|
5020
5043
|
}
|
|
5021
5044
|
));
|
|
5022
5045
|
DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
|
|
5023
|
-
var DropdownMenuSubContent =
|
|
5046
|
+
var DropdownMenuSubContent = React38.forwardRef(({ className, ...props }, ref) => (
|
|
5024
5047
|
// Portal the sub-content to the body. The parent Content keeps a persistent
|
|
5025
5048
|
// `scale-100` transform (its open-state animation), which makes it the
|
|
5026
5049
|
// containing block for `position: fixed` descendants — and its
|
|
@@ -5043,7 +5066,7 @@ var DropdownMenuSubContent = React37.forwardRef(({ className, ...props }, ref) =
|
|
|
5043
5066
|
) })
|
|
5044
5067
|
));
|
|
5045
5068
|
DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
|
|
5046
|
-
var DropdownMenuContent =
|
|
5069
|
+
var DropdownMenuContent = React38.forwardRef(({ className, sideOffset = 6, align = "start", ...props }, ref) => /* @__PURE__ */ jsx(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(
|
|
5047
5070
|
DropdownMenuPrimitive.Content,
|
|
5048
5071
|
{
|
|
5049
5072
|
ref,
|
|
@@ -5061,7 +5084,7 @@ var DropdownMenuContent = React37.forwardRef(({ className, sideOffset = 6, align
|
|
|
5061
5084
|
}
|
|
5062
5085
|
) }));
|
|
5063
5086
|
DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
|
|
5064
|
-
var DropdownMenuItem =
|
|
5087
|
+
var DropdownMenuItem = React38.forwardRef(({ className, destructive, inset, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
5065
5088
|
DropdownMenuPrimitive.Item,
|
|
5066
5089
|
{
|
|
5067
5090
|
ref,
|
|
@@ -5079,7 +5102,7 @@ var DropdownMenuItem = React37.forwardRef(({ className, destructive, inset, ...p
|
|
|
5079
5102
|
}
|
|
5080
5103
|
));
|
|
5081
5104
|
DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
|
|
5082
|
-
var DropdownMenuCheckboxItem =
|
|
5105
|
+
var DropdownMenuCheckboxItem = React38.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
5083
5106
|
DropdownMenuPrimitive.CheckboxItem,
|
|
5084
5107
|
{
|
|
5085
5108
|
ref,
|
|
@@ -5099,7 +5122,7 @@ var DropdownMenuCheckboxItem = React37.forwardRef(({ className, children, checke
|
|
|
5099
5122
|
}
|
|
5100
5123
|
));
|
|
5101
5124
|
DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
|
|
5102
|
-
var DropdownMenuRadioItem =
|
|
5125
|
+
var DropdownMenuRadioItem = React38.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
5103
5126
|
DropdownMenuPrimitive.RadioItem,
|
|
5104
5127
|
{
|
|
5105
5128
|
ref,
|
|
@@ -5118,7 +5141,7 @@ var DropdownMenuRadioItem = React37.forwardRef(({ className, children, ...props
|
|
|
5118
5141
|
}
|
|
5119
5142
|
));
|
|
5120
5143
|
DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
|
|
5121
|
-
var DropdownMenuLabel =
|
|
5144
|
+
var DropdownMenuLabel = React38.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
5122
5145
|
DropdownMenuPrimitive.Label,
|
|
5123
5146
|
{
|
|
5124
5147
|
ref,
|
|
@@ -5131,7 +5154,7 @@ var DropdownMenuLabel = React37.forwardRef(({ className, inset, ...props }, ref)
|
|
|
5131
5154
|
}
|
|
5132
5155
|
));
|
|
5133
5156
|
DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
|
|
5134
|
-
var DropdownMenuSeparator =
|
|
5157
|
+
var DropdownMenuSeparator = React38.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
5135
5158
|
DropdownMenuPrimitive.Separator,
|
|
5136
5159
|
{
|
|
5137
5160
|
ref,
|
|
@@ -5384,7 +5407,7 @@ FormSection.displayName = "FormSection";
|
|
|
5384
5407
|
var HoverCard = HoverCardPrimitive.Root;
|
|
5385
5408
|
var HoverCardTrigger = HoverCardPrimitive.Trigger;
|
|
5386
5409
|
var HoverCardPortal = HoverCardPrimitive.Portal;
|
|
5387
|
-
var HoverCardContent =
|
|
5410
|
+
var HoverCardContent = React38.forwardRef(({ className, align = "center", side = "bottom", sideOffset = 8, ...props }, ref) => /* @__PURE__ */ jsx(HoverCardPrimitive.Portal, { children: /* @__PURE__ */ jsx(
|
|
5388
5411
|
HoverCardPrimitive.Content,
|
|
5389
5412
|
{
|
|
5390
5413
|
ref,
|
|
@@ -5556,8 +5579,8 @@ function KeyboardShortcutsDialog({
|
|
|
5556
5579
|
sections,
|
|
5557
5580
|
hotkey = "?"
|
|
5558
5581
|
} = {}) {
|
|
5559
|
-
const [open, setOpen] =
|
|
5560
|
-
|
|
5582
|
+
const [open, setOpen] = React38.useState(false);
|
|
5583
|
+
React38.useEffect(() => {
|
|
5561
5584
|
if (hotkey === null) return;
|
|
5562
5585
|
function handleKeyDown(e) {
|
|
5563
5586
|
const target = e.target;
|
|
@@ -5595,7 +5618,7 @@ function KeyboardShortcutsDialog({
|
|
|
5595
5618
|
className: "flex items-center justify-between gap-3 py-1",
|
|
5596
5619
|
children: [
|
|
5597
5620
|
/* @__PURE__ */ jsx("span", { className: "text-fg text-sm", children: shortcut.description }),
|
|
5598
|
-
/* @__PURE__ */ jsx("div", { className: "flex shrink-0 items-center gap-1", children: shortcut.keys.map((key, i) => /* @__PURE__ */ jsxs(
|
|
5621
|
+
/* @__PURE__ */ jsx("div", { className: "flex shrink-0 items-center gap-1", children: shortcut.keys.map((key, i) => /* @__PURE__ */ jsxs(React38.Fragment, { children: [
|
|
5599
5622
|
i > 0 && /* @__PURE__ */ jsx("span", { className: "text-fg-4 mx-0.5 text-[11px]", children: "then" }),
|
|
5600
5623
|
/* @__PURE__ */ jsx("kbd", { className: kbdClass2, children: key })
|
|
5601
5624
|
] }, i)) })
|
|
@@ -5614,7 +5637,7 @@ function KeyboardShortcutsDialog({
|
|
|
5614
5637
|
var labelVariants = cva(
|
|
5615
5638
|
"text-[13px] font-medium leading-none text-fg select-none peer-disabled:cursor-not-allowed peer-disabled:text-fg-disabled has-[+input:disabled]:text-fg-disabled"
|
|
5616
5639
|
);
|
|
5617
|
-
var Label4 =
|
|
5640
|
+
var Label4 = React38.forwardRef(
|
|
5618
5641
|
function Label5({ children, required, className, ...props }, ref) {
|
|
5619
5642
|
return /* @__PURE__ */ jsxs(LabelPrimitive.Root, { ref, className: cn(labelVariants(), className), ...props, children: [
|
|
5620
5643
|
children,
|
|
@@ -6019,7 +6042,7 @@ function MultiSelectField({
|
|
|
6019
6042
|
size = "md",
|
|
6020
6043
|
id
|
|
6021
6044
|
}) {
|
|
6022
|
-
const selected =
|
|
6045
|
+
const selected = React38.useMemo(
|
|
6023
6046
|
() => new Set(value ? value.split(",").filter(Boolean) : []),
|
|
6024
6047
|
[value]
|
|
6025
6048
|
);
|
|
@@ -6032,7 +6055,7 @@ function MultiSelectField({
|
|
|
6032
6055
|
}
|
|
6033
6056
|
onChange(Array.from(next).join(","));
|
|
6034
6057
|
};
|
|
6035
|
-
const generatedId =
|
|
6058
|
+
const generatedId = React38.useId();
|
|
6036
6059
|
const groupId = id ?? generatedId;
|
|
6037
6060
|
return /* @__PURE__ */ jsxs("div", { className: cn("w-full", className), children: [
|
|
6038
6061
|
/* @__PURE__ */ jsx(
|
|
@@ -6861,12 +6884,12 @@ var ProgressRing = forwardRef(function ProgressRing2({ value, max = 100, size =
|
|
|
6861
6884
|
);
|
|
6862
6885
|
});
|
|
6863
6886
|
ProgressRing.displayName = "ProgressRing";
|
|
6864
|
-
var RadioGroup3 =
|
|
6887
|
+
var RadioGroup3 = React38.forwardRef(function RadioGroup4({ className, ...props }, ref) {
|
|
6865
6888
|
return /* @__PURE__ */ jsx(RadioGroupPrimitive.Root, { ref, className: cn("grid gap-2", className), ...props });
|
|
6866
6889
|
});
|
|
6867
6890
|
RadioGroup3.displayName = RadioGroupPrimitive.Root.displayName;
|
|
6868
|
-
var RadioGroupItem =
|
|
6869
|
-
const generatedId =
|
|
6891
|
+
var RadioGroupItem = React38.forwardRef(function RadioGroupItem2({ className, label, id: providedId, ...props }, ref) {
|
|
6892
|
+
const generatedId = React38.useId();
|
|
6870
6893
|
const id = providedId ?? generatedId;
|
|
6871
6894
|
const root = /* @__PURE__ */ jsx(
|
|
6872
6895
|
RadioGroupPrimitive.Item,
|
|
@@ -6951,13 +6974,13 @@ var RankedBars = forwardRef(function RankedBars2({ items, className, ...props },
|
|
|
6951
6974
|
}) });
|
|
6952
6975
|
});
|
|
6953
6976
|
RankedBars.displayName = "RankedBars";
|
|
6954
|
-
var SheetSideContext =
|
|
6977
|
+
var SheetSideContext = React38.createContext({});
|
|
6955
6978
|
var Sheet = ({ side, children, ...props }) => /* @__PURE__ */ jsx(DialogPrimitive.Root, { ...props, children: /* @__PURE__ */ jsx(SheetSideContext, { value: { side }, children }) });
|
|
6956
6979
|
Sheet.displayName = "Sheet";
|
|
6957
6980
|
var SheetTrigger = DialogPrimitive.Trigger;
|
|
6958
6981
|
var SheetClose = DialogPrimitive.Close;
|
|
6959
6982
|
var SheetPortal = DialogPrimitive.Portal;
|
|
6960
|
-
var SheetOverlay =
|
|
6983
|
+
var SheetOverlay = React38.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
6961
6984
|
DialogPrimitive.Overlay,
|
|
6962
6985
|
{
|
|
6963
6986
|
ref,
|
|
@@ -7009,9 +7032,9 @@ var sheetWidthClasses = {
|
|
|
7009
7032
|
xl: "w-[95vw] max-w-[95vw] sm:w-[760px]",
|
|
7010
7033
|
full: "w-full max-w-none"
|
|
7011
7034
|
};
|
|
7012
|
-
var SheetContent =
|
|
7035
|
+
var SheetContent = React38.forwardRef(
|
|
7013
7036
|
({ side, width = "default", customWidth, className, children, showCloseButton = true, style, ...props }, ref) => {
|
|
7014
|
-
const ctx =
|
|
7037
|
+
const ctx = React38.use(SheetSideContext);
|
|
7015
7038
|
const resolvedSide = side ?? ctx.side ?? "right";
|
|
7016
7039
|
const supportsWidth = resolvedSide === "left" || resolvedSide === "right";
|
|
7017
7040
|
const widthClass = supportsWidth && width !== "default" ? sheetWidthClasses[width] : null;
|
|
@@ -7061,7 +7084,7 @@ var SheetFooter = ({ className, ...props }) => /* @__PURE__ */ jsx(
|
|
|
7061
7084
|
}
|
|
7062
7085
|
);
|
|
7063
7086
|
SheetFooter.displayName = "SheetFooter";
|
|
7064
|
-
var SheetTitle =
|
|
7087
|
+
var SheetTitle = React38.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
7065
7088
|
DialogPrimitive.Title,
|
|
7066
7089
|
{
|
|
7067
7090
|
ref,
|
|
@@ -7073,12 +7096,12 @@ var SheetTitle = React37.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
7073
7096
|
}
|
|
7074
7097
|
));
|
|
7075
7098
|
SheetTitle.displayName = DialogPrimitive.Title.displayName;
|
|
7076
|
-
var SheetDescription =
|
|
7099
|
+
var SheetDescription = React38.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(DialogPrimitive.Description, { ref, className: cn("text-fg-3 text-sm", className), ...props }));
|
|
7077
7100
|
SheetDescription.displayName = DialogPrimitive.Description.displayName;
|
|
7078
7101
|
var MOBILE_QUERY = "(max-width: 639.98px)";
|
|
7079
7102
|
function useIsMobile() {
|
|
7080
|
-
const [state, setState] =
|
|
7081
|
-
|
|
7103
|
+
const [state, setState] = React38.useState({ isMobile: false, mounted: false });
|
|
7104
|
+
React38.useEffect(() => {
|
|
7082
7105
|
const mql = window.matchMedia(MOBILE_QUERY);
|
|
7083
7106
|
const update = () => setState({ isMobile: mql.matches, mounted: true });
|
|
7084
7107
|
update();
|
|
@@ -7099,7 +7122,7 @@ function ResponsiveDialog({
|
|
|
7099
7122
|
size = "md"
|
|
7100
7123
|
}) {
|
|
7101
7124
|
const { isMobile, mounted } = useIsMobile();
|
|
7102
|
-
const close =
|
|
7125
|
+
const close = React38.useCallback(() => onOpenChange(false), [onOpenChange]);
|
|
7103
7126
|
const resolvedFooter = typeof footer === "function" ? footer(close) : footer;
|
|
7104
7127
|
const hasHeader = Boolean(title || description);
|
|
7105
7128
|
if (mounted && isMobile) {
|
|
@@ -7161,7 +7184,7 @@ var RouteTransition = forwardRef(
|
|
|
7161
7184
|
}
|
|
7162
7185
|
);
|
|
7163
7186
|
RouteTransition.displayName = "RouteTransition";
|
|
7164
|
-
var ScrollArea =
|
|
7187
|
+
var ScrollArea = React38.forwardRef(function ScrollArea2({ className, children, ...props }, ref) {
|
|
7165
7188
|
return /* @__PURE__ */ jsxs(
|
|
7166
7189
|
ScrollAreaPrimitive.Root,
|
|
7167
7190
|
{
|
|
@@ -7184,7 +7207,7 @@ var ScrollArea = React37.forwardRef(function ScrollArea2({ className, children,
|
|
|
7184
7207
|
);
|
|
7185
7208
|
});
|
|
7186
7209
|
ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
|
|
7187
|
-
var ScrollBar =
|
|
7210
|
+
var ScrollBar = React38.forwardRef(function ScrollBar2({ className, orientation = "vertical", ...props }, ref) {
|
|
7188
7211
|
return /* @__PURE__ */ jsx(
|
|
7189
7212
|
ScrollAreaPrimitive.ScrollAreaScrollbar,
|
|
7190
7213
|
{
|
|
@@ -7249,7 +7272,7 @@ var searchInputVariants = cva(
|
|
|
7249
7272
|
}
|
|
7250
7273
|
}
|
|
7251
7274
|
);
|
|
7252
|
-
var SearchInput =
|
|
7275
|
+
var SearchInput = React38.forwardRef(
|
|
7253
7276
|
function SearchInput2({
|
|
7254
7277
|
value,
|
|
7255
7278
|
onValueChange,
|
|
@@ -7262,8 +7285,8 @@ var SearchInput = React37.forwardRef(
|
|
|
7262
7285
|
...props
|
|
7263
7286
|
}, ref) {
|
|
7264
7287
|
const debouncedValue = useDebounce(value, debounceMs);
|
|
7265
|
-
const isFirstRender =
|
|
7266
|
-
|
|
7288
|
+
const isFirstRender = React38.useRef(true);
|
|
7289
|
+
React38.useEffect(() => {
|
|
7267
7290
|
if (isFirstRender.current) {
|
|
7268
7291
|
isFirstRender.current = false;
|
|
7269
7292
|
return;
|
|
@@ -7341,15 +7364,15 @@ function SearchSelect({
|
|
|
7341
7364
|
descriptionVariant = "inline"
|
|
7342
7365
|
}) {
|
|
7343
7366
|
const isSingleMode = value !== void 0 || onValueChange !== void 0;
|
|
7344
|
-
const singleSelectedOption =
|
|
7367
|
+
const singleSelectedOption = React38.useMemo(
|
|
7345
7368
|
() => isSingleMode && value ? options.find((o) => o.id === value) ?? null : null,
|
|
7346
7369
|
[isSingleMode, value, options]
|
|
7347
7370
|
);
|
|
7348
|
-
const selected =
|
|
7371
|
+
const selected = React38.useMemo(
|
|
7349
7372
|
() => isSingleMode ? singleSelectedOption ? [singleSelectedOption] : [] : selectedProp ?? [],
|
|
7350
7373
|
[isSingleMode, singleSelectedOption, selectedProp]
|
|
7351
7374
|
);
|
|
7352
|
-
const onSelect =
|
|
7375
|
+
const onSelect = React38.useCallback(
|
|
7353
7376
|
(option) => {
|
|
7354
7377
|
if (isSingleMode) {
|
|
7355
7378
|
onValueChange?.(option.id);
|
|
@@ -7359,7 +7382,7 @@ function SearchSelect({
|
|
|
7359
7382
|
},
|
|
7360
7383
|
[isSingleMode, onValueChange, onSelectProp]
|
|
7361
7384
|
);
|
|
7362
|
-
const onRemove =
|
|
7385
|
+
const onRemove = React38.useCallback(
|
|
7363
7386
|
(option) => {
|
|
7364
7387
|
if (isSingleMode) {
|
|
7365
7388
|
onValueChange?.("");
|
|
@@ -7370,15 +7393,15 @@ function SearchSelect({
|
|
|
7370
7393
|
[isSingleMode, onValueChange, onRemoveProp]
|
|
7371
7394
|
);
|
|
7372
7395
|
const closeOnSelect = isSingleMode || closeOnSelectProp;
|
|
7373
|
-
const [search, setSearch] =
|
|
7374
|
-
const [open, setOpen] =
|
|
7375
|
-
const [activeChip, setActiveChip] =
|
|
7376
|
-
const selectedIds =
|
|
7377
|
-
const filtered =
|
|
7396
|
+
const [search, setSearch] = React38.useState("");
|
|
7397
|
+
const [open, setOpen] = React38.useState(false);
|
|
7398
|
+
const [activeChip, setActiveChip] = React38.useState(null);
|
|
7399
|
+
const selectedIds = React38.useMemo(() => new Set(selected.map((s) => s.id)), [selected]);
|
|
7400
|
+
const filtered = React38.useMemo(
|
|
7378
7401
|
() => options.filter((opt) => !selectedIds.has(opt.id)),
|
|
7379
7402
|
[options, selectedIds]
|
|
7380
7403
|
);
|
|
7381
|
-
const groups =
|
|
7404
|
+
const groups = React38.useMemo(() => {
|
|
7382
7405
|
const order = [];
|
|
7383
7406
|
const byGroup = /* @__PURE__ */ new Map();
|
|
7384
7407
|
for (const opt of filtered) {
|
|
@@ -7390,25 +7413,25 @@ function SearchSelect({
|
|
|
7390
7413
|
}
|
|
7391
7414
|
return order.map((g) => [g, byGroup.get(g)]);
|
|
7392
7415
|
}, [filtered]);
|
|
7393
|
-
const hasGroups =
|
|
7394
|
-
const pinnedSet =
|
|
7395
|
-
const chips =
|
|
7416
|
+
const hasGroups = React38.useMemo(() => groups.some(([g]) => g != null), [groups]);
|
|
7417
|
+
const pinnedSet = React38.useMemo(() => new Set(pinnedGroups ?? []), [pinnedGroups]);
|
|
7418
|
+
const chips = React38.useMemo(() => {
|
|
7396
7419
|
if (!groupFilter || !hasGroups) return [];
|
|
7397
7420
|
return groups.map(([g]) => g).filter((g) => g != null && !pinnedSet.has(g));
|
|
7398
7421
|
}, [groupFilter, hasGroups, groups, pinnedSet]);
|
|
7399
|
-
const visibleGroups =
|
|
7422
|
+
const visibleGroups = React38.useMemo(() => {
|
|
7400
7423
|
if (chips.length > 0 && activeChip) {
|
|
7401
7424
|
return groups.filter(([g]) => g === activeChip);
|
|
7402
7425
|
}
|
|
7403
7426
|
return groups;
|
|
7404
7427
|
}, [groups, chips.length, activeChip]);
|
|
7405
7428
|
const trimmedSearch = search.trim();
|
|
7406
|
-
const hasExactMatch =
|
|
7429
|
+
const hasExactMatch = React38.useMemo(
|
|
7407
7430
|
() => options.some((opt) => opt.label.toLowerCase() === trimmedSearch.toLowerCase()),
|
|
7408
7431
|
[options, trimmedSearch]
|
|
7409
7432
|
);
|
|
7410
7433
|
const showCreate = !!onCreate && trimmedSearch.length > 0 && !hasExactMatch;
|
|
7411
|
-
const handleSelect =
|
|
7434
|
+
const handleSelect = React38.useCallback(
|
|
7412
7435
|
(option) => {
|
|
7413
7436
|
onSelect(option);
|
|
7414
7437
|
setSearch("");
|
|
@@ -7416,16 +7439,16 @@ function SearchSelect({
|
|
|
7416
7439
|
},
|
|
7417
7440
|
[onSelect, closeOnSelect]
|
|
7418
7441
|
);
|
|
7419
|
-
const handleCreate =
|
|
7442
|
+
const handleCreate = React38.useCallback(() => {
|
|
7420
7443
|
if (onCreate && trimmedSearch) {
|
|
7421
7444
|
onCreate(trimmedSearch);
|
|
7422
7445
|
setSearch("");
|
|
7423
7446
|
setOpen(false);
|
|
7424
7447
|
}
|
|
7425
7448
|
}, [onCreate, trimmedSearch]);
|
|
7426
|
-
const inputRef =
|
|
7427
|
-
const listboxId =
|
|
7428
|
-
const setInputRef =
|
|
7449
|
+
const inputRef = React38.useRef(null);
|
|
7450
|
+
const listboxId = React38.useId();
|
|
7451
|
+
const setInputRef = React38.useCallback((node) => {
|
|
7429
7452
|
inputRef.current = node;
|
|
7430
7453
|
node?.removeAttribute("aria-labelledby");
|
|
7431
7454
|
node?.setAttribute("aria-controls", listboxId);
|
|
@@ -7434,12 +7457,12 @@ function SearchSelect({
|
|
|
7434
7457
|
const singleValue = closeOnSelect ? selected[0] ?? null : null;
|
|
7435
7458
|
const showValue = singleValue !== null && !open;
|
|
7436
7459
|
const popoverOpen = open && !disabled;
|
|
7437
|
-
|
|
7460
|
+
React38.useEffect(() => {
|
|
7438
7461
|
inputRef.current?.removeAttribute("aria-labelledby");
|
|
7439
7462
|
inputRef.current?.setAttribute("aria-controls", listboxId);
|
|
7440
7463
|
inputRef.current?.removeAttribute("aria-activedescendant");
|
|
7441
7464
|
});
|
|
7442
|
-
|
|
7465
|
+
React38.useEffect(() => {
|
|
7443
7466
|
if (open && closeOnSelect) {
|
|
7444
7467
|
const raf = requestAnimationFrame(() => inputRef.current?.focus());
|
|
7445
7468
|
return () => cancelAnimationFrame(raf);
|
|
@@ -7884,7 +7907,7 @@ var SegmentedProgress = forwardRef(
|
|
|
7884
7907
|
}
|
|
7885
7908
|
);
|
|
7886
7909
|
SegmentedProgress.displayName = "SegmentedProgress";
|
|
7887
|
-
var Separator4 =
|
|
7910
|
+
var Separator4 = React38.forwardRef(function Separator5({ className, orientation = "horizontal", decorative = true, ...props }, ref) {
|
|
7888
7911
|
return /* @__PURE__ */ jsx(
|
|
7889
7912
|
SeparatorPrimitive.Root,
|
|
7890
7913
|
{
|
|
@@ -8016,7 +8039,7 @@ function SideDrawerFooter({ children, className }) {
|
|
|
8016
8039
|
SideDrawer.Header = SideDrawerHeader;
|
|
8017
8040
|
SideDrawer.Body = SideDrawerBody;
|
|
8018
8041
|
SideDrawer.Footer = SideDrawerFooter;
|
|
8019
|
-
var Slider =
|
|
8042
|
+
var Slider = React38.forwardRef(
|
|
8020
8043
|
function Slider2({
|
|
8021
8044
|
className,
|
|
8022
8045
|
label,
|
|
@@ -8028,7 +8051,7 @@ var Slider = React37.forwardRef(
|
|
|
8028
8051
|
defaultValue,
|
|
8029
8052
|
...props
|
|
8030
8053
|
}, ref) {
|
|
8031
|
-
const generatedId =
|
|
8054
|
+
const generatedId = React38.useId();
|
|
8032
8055
|
const id = providedId ?? generatedId;
|
|
8033
8056
|
const displayValue = (() => {
|
|
8034
8057
|
const v = value ?? defaultValue;
|
|
@@ -8336,6 +8359,7 @@ var statusMap = {
|
|
|
8336
8359
|
approved: { variant: "success", label: "Approved" },
|
|
8337
8360
|
paid: { variant: "success", label: "Paid" },
|
|
8338
8361
|
complete: { variant: "success", label: "Complete" },
|
|
8362
|
+
received: { variant: "success", label: "Received" },
|
|
8339
8363
|
draft: { variant: "secondary", label: "Draft" },
|
|
8340
8364
|
pending: { variant: "secondary", label: "Pending" },
|
|
8341
8365
|
overdue: { variant: "destructive", label: "Overdue" },
|
|
@@ -8606,9 +8630,9 @@ var switchThumbVariants = cva(
|
|
|
8606
8630
|
}
|
|
8607
8631
|
}
|
|
8608
8632
|
);
|
|
8609
|
-
var Switch =
|
|
8633
|
+
var Switch = React38.forwardRef(
|
|
8610
8634
|
function Switch2({ label, size, className, id: providedId, ...props }, ref) {
|
|
8611
|
-
const generatedId =
|
|
8635
|
+
const generatedId = React38.useId();
|
|
8612
8636
|
const id = providedId ?? generatedId;
|
|
8613
8637
|
const root = /* @__PURE__ */ jsx(
|
|
8614
8638
|
SwitchPrimitive.Root,
|
|
@@ -8742,13 +8766,13 @@ var TableCaption = forwardRef(
|
|
|
8742
8766
|
}
|
|
8743
8767
|
);
|
|
8744
8768
|
TableCaption.displayName = "TableCaption";
|
|
8745
|
-
var Tabs =
|
|
8769
|
+
var Tabs = React38.forwardRef(
|
|
8746
8770
|
function Tabs2({ className, ...props }, ref) {
|
|
8747
8771
|
return /* @__PURE__ */ jsx(TabsPrimitive.Root, { ref, className: cn(className), ...props });
|
|
8748
8772
|
}
|
|
8749
8773
|
);
|
|
8750
8774
|
Tabs.displayName = TabsPrimitive.Root.displayName;
|
|
8751
|
-
var TabsList =
|
|
8775
|
+
var TabsList = React38.forwardRef(function TabsList2({ className, ...props }, ref) {
|
|
8752
8776
|
return /* @__PURE__ */ jsx(
|
|
8753
8777
|
TabsPrimitive.List,
|
|
8754
8778
|
{
|
|
@@ -8793,7 +8817,7 @@ var triggerVariants = cva(
|
|
|
8793
8817
|
}
|
|
8794
8818
|
}
|
|
8795
8819
|
);
|
|
8796
|
-
var TabsTrigger =
|
|
8820
|
+
var TabsTrigger = React38.forwardRef(function TabsTrigger2({ className, variant, ...props }, ref) {
|
|
8797
8821
|
return /* @__PURE__ */ jsx(
|
|
8798
8822
|
TabsPrimitive.Trigger,
|
|
8799
8823
|
{
|
|
@@ -8804,7 +8828,7 @@ var TabsTrigger = React37.forwardRef(function TabsTrigger2({ className, variant,
|
|
|
8804
8828
|
);
|
|
8805
8829
|
});
|
|
8806
8830
|
TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
|
|
8807
|
-
var TabsContent =
|
|
8831
|
+
var TabsContent = React38.forwardRef(function TabsContent2({ className, ...props }, ref) {
|
|
8808
8832
|
return /* @__PURE__ */ jsx(
|
|
8809
8833
|
TabsPrimitive.Content,
|
|
8810
8834
|
{
|
|
@@ -8829,7 +8853,7 @@ function TeamMemberSelect({
|
|
|
8829
8853
|
placeholder = "Select team member...",
|
|
8830
8854
|
className
|
|
8831
8855
|
}) {
|
|
8832
|
-
const options =
|
|
8856
|
+
const options = React38.useMemo(() => {
|
|
8833
8857
|
const meBadge = /* @__PURE__ */ jsx(
|
|
8834
8858
|
Badge,
|
|
8835
8859
|
{
|
|
@@ -9159,10 +9183,10 @@ var itemVariants = cva(
|
|
|
9159
9183
|
}
|
|
9160
9184
|
}
|
|
9161
9185
|
);
|
|
9162
|
-
var ToggleGroupContext =
|
|
9186
|
+
var ToggleGroupContext = React38.createContext({
|
|
9163
9187
|
variant: "default"
|
|
9164
9188
|
});
|
|
9165
|
-
var ToggleGroup =
|
|
9189
|
+
var ToggleGroup = React38.forwardRef(function ToggleGroup2({ className, variant, children, ...props }, ref) {
|
|
9166
9190
|
return /* @__PURE__ */ jsx(
|
|
9167
9191
|
ToggleGroupPrimitive.Root,
|
|
9168
9192
|
{
|
|
@@ -9174,8 +9198,8 @@ var ToggleGroup = React37.forwardRef(function ToggleGroup2({ className, variant,
|
|
|
9174
9198
|
);
|
|
9175
9199
|
});
|
|
9176
9200
|
ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
|
|
9177
|
-
var ToggleGroupItem =
|
|
9178
|
-
const ctx =
|
|
9201
|
+
var ToggleGroupItem = React38.forwardRef(function ToggleGroupItem2({ className, variant, ...props }, ref) {
|
|
9202
|
+
const ctx = React38.useContext(ToggleGroupContext);
|
|
9179
9203
|
return /* @__PURE__ */ jsx(
|
|
9180
9204
|
ToggleGroupPrimitive.Item,
|
|
9181
9205
|
{
|
|
@@ -9194,7 +9218,7 @@ var Tooltip = ({ delayMs, delayDuration, children, ...props }) => {
|
|
|
9194
9218
|
return /* @__PURE__ */ jsx(TooltipPrimitive.Provider, { delayDuration: resolvedDelay, children: /* @__PURE__ */ jsx(TooltipPrimitive.Root, { delayDuration: resolvedDelay, ...props, children }) });
|
|
9195
9219
|
};
|
|
9196
9220
|
Tooltip.displayName = "Tooltip";
|
|
9197
|
-
var TooltipContent =
|
|
9221
|
+
var TooltipContent = React38.forwardRef(({ className, sideOffset = 6, ...props }, ref) => /* @__PURE__ */ jsx(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsx(
|
|
9198
9222
|
TooltipPrimitive.Content,
|
|
9199
9223
|
{
|
|
9200
9224
|
ref,
|
|
@@ -9825,6 +9849,501 @@ var FolderTree = forwardRef(function FolderTree2({ nodes, activeId, onSelect, de
|
|
|
9825
9849
|
return /* @__PURE__ */ jsx("div", { ref, className: cn("w-full", className), ...props, children: /* @__PURE__ */ jsx("ul", { className: "flex flex-col", children: nodes.map((node) => renderNode(node, 0)) }) });
|
|
9826
9850
|
});
|
|
9827
9851
|
FolderTree.displayName = "FolderTree";
|
|
9852
|
+
var ClientRailItem = forwardRef(
|
|
9853
|
+
function ClientRailItem2({
|
|
9854
|
+
name,
|
|
9855
|
+
avatarSrc,
|
|
9856
|
+
entityType,
|
|
9857
|
+
pendingCount,
|
|
9858
|
+
fileCount,
|
|
9859
|
+
metaSuffix,
|
|
9860
|
+
active = false,
|
|
9861
|
+
className,
|
|
9862
|
+
...props
|
|
9863
|
+
}, ref) {
|
|
9864
|
+
const hasPending = Boolean(pendingCount && pendingCount > 0);
|
|
9865
|
+
return /* @__PURE__ */ jsxs(
|
|
9866
|
+
"button",
|
|
9867
|
+
{
|
|
9868
|
+
ref,
|
|
9869
|
+
type: "button",
|
|
9870
|
+
className: cn(
|
|
9871
|
+
// Layout
|
|
9872
|
+
"relative flex w-full items-center gap-[11px] border-b border-rule px-[14px] py-[11px] text-left",
|
|
9873
|
+
// Motion
|
|
9874
|
+
"transition-colors duration-[120ms] motion-reduce:transition-none",
|
|
9875
|
+
// Cursor
|
|
9876
|
+
"cursor-pointer",
|
|
9877
|
+
// State — hover only when not active to avoid override
|
|
9878
|
+
active ? "bg-pro-bg" : "hover:bg-surface-2",
|
|
9879
|
+
className
|
|
9880
|
+
),
|
|
9881
|
+
...props,
|
|
9882
|
+
children: [
|
|
9883
|
+
active && /* @__PURE__ */ jsx(
|
|
9884
|
+
"span",
|
|
9885
|
+
{
|
|
9886
|
+
"aria-hidden": "true",
|
|
9887
|
+
className: "absolute top-0 bottom-0 left-0 w-[3px] bg-pro-fg"
|
|
9888
|
+
}
|
|
9889
|
+
),
|
|
9890
|
+
/* @__PURE__ */ jsx("span", { className: "shrink-0", children: /* @__PURE__ */ jsx(Avatar, { name, src: avatarSrc, size: "sm" }) }),
|
|
9891
|
+
/* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
9892
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-[7px]", children: [
|
|
9893
|
+
/* @__PURE__ */ jsx("span", { className: "truncate text-[13.5px] font-[650] text-fg", children: name }),
|
|
9894
|
+
hasPending && /* @__PURE__ */ jsx(StatusDot, { tone: "pro", size: "sm" }),
|
|
9895
|
+
fileCount != null && /* @__PURE__ */ jsx("span", { className: "shrink-0 rounded-full bg-surface-2 px-[6px] py-px text-[10.5px] font-bold text-fg-3", children: fileCount })
|
|
9896
|
+
] }),
|
|
9897
|
+
/* @__PURE__ */ jsx("p", { className: "mt-0.5 text-[11.5px] text-fg-3", children: hasPending ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
9898
|
+
/* @__PURE__ */ jsxs("span", { className: "font-semibold text-pro-fg", children: [
|
|
9899
|
+
pendingCount,
|
|
9900
|
+
" pending"
|
|
9901
|
+
] }),
|
|
9902
|
+
" \xB7 ",
|
|
9903
|
+
entityType
|
|
9904
|
+
] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
9905
|
+
entityType,
|
|
9906
|
+
metaSuffix != null && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
9907
|
+
" \xB7 ",
|
|
9908
|
+
metaSuffix
|
|
9909
|
+
] })
|
|
9910
|
+
] }) })
|
|
9911
|
+
] })
|
|
9912
|
+
]
|
|
9913
|
+
}
|
|
9914
|
+
);
|
|
9915
|
+
}
|
|
9916
|
+
);
|
|
9917
|
+
ClientRailItem.displayName = "ClientRailItem";
|
|
9918
|
+
var ClientRailGroupHeader = forwardRef(function ClientRailGroupHeader2({ label, count, accent = false, className, ...props }, ref) {
|
|
9919
|
+
return /* @__PURE__ */ jsxs(
|
|
9920
|
+
"div",
|
|
9921
|
+
{
|
|
9922
|
+
ref,
|
|
9923
|
+
className: cn(
|
|
9924
|
+
"flex items-center gap-[7px] px-[14px] pt-[14px] pb-[5px] text-[11.5px] font-semibold",
|
|
9925
|
+
accent ? "text-pro-fg" : "text-fg-3",
|
|
9926
|
+
className
|
|
9927
|
+
),
|
|
9928
|
+
...props,
|
|
9929
|
+
children: [
|
|
9930
|
+
accent && /* @__PURE__ */ jsx(StatusDot, { tone: "pro", size: "sm" }),
|
|
9931
|
+
/* @__PURE__ */ jsxs("span", { children: [
|
|
9932
|
+
label,
|
|
9933
|
+
count != null && /* @__PURE__ */ jsxs("span", { className: accent ? void 0 : "text-fg-4", children: [
|
|
9934
|
+
" \xB7 ",
|
|
9935
|
+
count
|
|
9936
|
+
] })
|
|
9937
|
+
] })
|
|
9938
|
+
]
|
|
9939
|
+
}
|
|
9940
|
+
);
|
|
9941
|
+
});
|
|
9942
|
+
ClientRailGroupHeader.displayName = "ClientRailGroupHeader";
|
|
9943
|
+
function getFileTypeParts(fileType) {
|
|
9944
|
+
const normalized = fileType.toLowerCase().trim().replace(/^\./, "");
|
|
9945
|
+
if (normalized.includes("pdf")) {
|
|
9946
|
+
return { Icon: FileTextIcon, colorClass: "text-danger-fg" };
|
|
9947
|
+
}
|
|
9948
|
+
if (normalized.includes("image") || ["jpg", "jpeg", "png", "tiff"].some((type) => normalized.includes(type))) {
|
|
9949
|
+
return { Icon: FileIcon, colorClass: "text-pro-fg" };
|
|
9950
|
+
}
|
|
9951
|
+
if (normalized.includes("excel") || normalized.includes("spreadsheet") || ["xlsx", "xls", "csv"].some((type) => normalized.includes(type))) {
|
|
9952
|
+
return { Icon: FileTextIcon, colorClass: "text-success-fg" };
|
|
9953
|
+
}
|
|
9954
|
+
if (normalized.includes("word") || ["docx", "doc"].some((type) => normalized.includes(type))) {
|
|
9955
|
+
return { Icon: FileTextIcon, colorClass: "text-pro-fg" };
|
|
9956
|
+
}
|
|
9957
|
+
return { Icon: FileIcon, colorClass: "text-fg-4" };
|
|
9958
|
+
}
|
|
9959
|
+
function MetaText({
|
|
9960
|
+
values,
|
|
9961
|
+
className,
|
|
9962
|
+
dotClassName
|
|
9963
|
+
}) {
|
|
9964
|
+
const presentValues = values.filter(Boolean);
|
|
9965
|
+
if (presentValues.length === 0) {
|
|
9966
|
+
return null;
|
|
9967
|
+
}
|
|
9968
|
+
return /* @__PURE__ */ jsx("div", { className, children: presentValues.map((value, index) => /* @__PURE__ */ jsxs(React38.Fragment, { children: [
|
|
9969
|
+
index > 0 && /* @__PURE__ */ jsx(
|
|
9970
|
+
"span",
|
|
9971
|
+
{
|
|
9972
|
+
className: cn("size-[3px] rounded-full bg-fg-4", dotClassName),
|
|
9973
|
+
"aria-hidden": "true"
|
|
9974
|
+
}
|
|
9975
|
+
),
|
|
9976
|
+
/* @__PURE__ */ jsx("span", { children: value })
|
|
9977
|
+
] }, `${value}-${index}`)) });
|
|
9978
|
+
}
|
|
9979
|
+
function FileTile({ fileType, card }) {
|
|
9980
|
+
const { Icon: Icon3, colorClass } = getFileTypeParts(fileType);
|
|
9981
|
+
return /* @__PURE__ */ jsx(
|
|
9982
|
+
"span",
|
|
9983
|
+
{
|
|
9984
|
+
className: cn(
|
|
9985
|
+
"grid shrink-0 place-items-center bg-surface-2",
|
|
9986
|
+
card ? "size-[46px] rounded-xl bg-surface" : "size-[38px] rounded-[10px]"
|
|
9987
|
+
),
|
|
9988
|
+
"aria-hidden": "true",
|
|
9989
|
+
children: /* @__PURE__ */ jsx(Icon3, { className: colorClass, size: card ? 22 : 18 })
|
|
9990
|
+
}
|
|
9991
|
+
);
|
|
9992
|
+
}
|
|
9993
|
+
function CheckboxSlot({
|
|
9994
|
+
selected,
|
|
9995
|
+
onSelectedChange,
|
|
9996
|
+
className
|
|
9997
|
+
}) {
|
|
9998
|
+
return (
|
|
9999
|
+
// Wrapper only stops click propagation so the row's open handler does not
|
|
10000
|
+
// fire when toggling the checkbox; the Checkbox itself is the focusable control.
|
|
10001
|
+
// eslint-disable-next-line jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events
|
|
10002
|
+
/* @__PURE__ */ jsx(
|
|
10003
|
+
"div",
|
|
10004
|
+
{
|
|
10005
|
+
className: cn(
|
|
10006
|
+
"shrink-0 transition-opacity duration-[120ms] motion-reduce:transition-none",
|
|
10007
|
+
selected ? "opacity-100" : "opacity-0 group-hover:opacity-100",
|
|
10008
|
+
className
|
|
10009
|
+
),
|
|
10010
|
+
onClick: (event) => event.stopPropagation(),
|
|
10011
|
+
children: /* @__PURE__ */ jsx(
|
|
10012
|
+
Checkbox,
|
|
10013
|
+
{
|
|
10014
|
+
checked: selected,
|
|
10015
|
+
onCheckedChange: (checked) => onSelectedChange?.(checked === true)
|
|
10016
|
+
}
|
|
10017
|
+
)
|
|
10018
|
+
}
|
|
10019
|
+
)
|
|
10020
|
+
);
|
|
10021
|
+
}
|
|
10022
|
+
function MoreActions({ menu }) {
|
|
10023
|
+
if (!menu) {
|
|
10024
|
+
return null;
|
|
10025
|
+
}
|
|
10026
|
+
return /* @__PURE__ */ jsxs(DropdownMenu, { children: [
|
|
10027
|
+
/* @__PURE__ */ jsx(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
|
|
10028
|
+
"button",
|
|
10029
|
+
{
|
|
10030
|
+
type: "button",
|
|
10031
|
+
className: cn(
|
|
10032
|
+
"grid size-[30px] place-items-center rounded-[8px] text-fg-4",
|
|
10033
|
+
"transition-colors duration-[120ms] motion-reduce:transition-none",
|
|
10034
|
+
"group-hover:text-fg-2 hover:bg-surface hover:text-pro-fg hover:shadow-sm"
|
|
10035
|
+
),
|
|
10036
|
+
"aria-label": "More actions",
|
|
10037
|
+
onClick: (event) => event.stopPropagation(),
|
|
10038
|
+
children: /* @__PURE__ */ jsx(MoreHorizontalIcon, { size: 16 })
|
|
10039
|
+
}
|
|
10040
|
+
) }),
|
|
10041
|
+
/* @__PURE__ */ jsx(DropdownMenuContent, { align: "end", children: menu })
|
|
10042
|
+
] });
|
|
10043
|
+
}
|
|
10044
|
+
var DocumentFileRow = React38.forwardRef(
|
|
10045
|
+
function DocumentFileRow2({
|
|
10046
|
+
name,
|
|
10047
|
+
fileType,
|
|
10048
|
+
size,
|
|
10049
|
+
date,
|
|
10050
|
+
by,
|
|
10051
|
+
status,
|
|
10052
|
+
nameAdornment,
|
|
10053
|
+
menu,
|
|
10054
|
+
selected = false,
|
|
10055
|
+
showCheckbox = true,
|
|
10056
|
+
onSelectedChange,
|
|
10057
|
+
onOpen,
|
|
10058
|
+
className,
|
|
10059
|
+
onClick,
|
|
10060
|
+
...props
|
|
10061
|
+
}, ref) {
|
|
10062
|
+
return (
|
|
10063
|
+
// Whole-row click is a pointer enhancement that opens the file; the same
|
|
10064
|
+
// action is keyboard-reachable via the kebab menu's items, and the row's
|
|
10065
|
+
// interactive controls (checkbox, menu) are independently focusable.
|
|
10066
|
+
// eslint-disable-next-line jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events
|
|
10067
|
+
/* @__PURE__ */ jsxs(
|
|
10068
|
+
"div",
|
|
10069
|
+
{
|
|
10070
|
+
ref,
|
|
10071
|
+
className: cn(
|
|
10072
|
+
"group flex cursor-pointer items-center gap-[13px] border-b border-rule px-[14px] py-3",
|
|
10073
|
+
"transition-colors duration-[120ms] motion-reduce:transition-none hover:bg-surface-2",
|
|
10074
|
+
selected && "bg-pro-bg",
|
|
10075
|
+
className
|
|
10076
|
+
),
|
|
10077
|
+
onClick: (event) => {
|
|
10078
|
+
onClick?.(event);
|
|
10079
|
+
if (!event.defaultPrevented) {
|
|
10080
|
+
onOpen?.();
|
|
10081
|
+
}
|
|
10082
|
+
},
|
|
10083
|
+
...props,
|
|
10084
|
+
children: [
|
|
10085
|
+
showCheckbox !== false && /* @__PURE__ */ jsx(CheckboxSlot, { selected, onSelectedChange }),
|
|
10086
|
+
/* @__PURE__ */ jsx(FileTile, { fileType }),
|
|
10087
|
+
/* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
10088
|
+
/* @__PURE__ */ jsxs("div", { className: "flex min-w-0 items-center gap-2", children: [
|
|
10089
|
+
/* @__PURE__ */ jsx("span", { className: "truncate text-[13.5px] font-semibold text-fg", children: name }),
|
|
10090
|
+
nameAdornment
|
|
10091
|
+
] }),
|
|
10092
|
+
/* @__PURE__ */ jsx(
|
|
10093
|
+
MetaText,
|
|
10094
|
+
{
|
|
10095
|
+
values: [size, date, by],
|
|
10096
|
+
className: "mt-0.5 flex flex-wrap items-center gap-[7px] text-[11.5px] text-fg-3"
|
|
10097
|
+
}
|
|
10098
|
+
)
|
|
10099
|
+
] }),
|
|
10100
|
+
/* @__PURE__ */ jsxs("div", { className: "flex shrink-0 items-center gap-[10px]", children: [
|
|
10101
|
+
status,
|
|
10102
|
+
/* @__PURE__ */ jsx(MoreActions, { menu })
|
|
10103
|
+
] })
|
|
10104
|
+
]
|
|
10105
|
+
}
|
|
10106
|
+
)
|
|
10107
|
+
);
|
|
10108
|
+
}
|
|
10109
|
+
);
|
|
10110
|
+
DocumentFileRow.displayName = "DocumentFileRow";
|
|
10111
|
+
var DocumentFileCard = React38.forwardRef(
|
|
10112
|
+
function DocumentFileCard2({
|
|
10113
|
+
name,
|
|
10114
|
+
fileType,
|
|
10115
|
+
size,
|
|
10116
|
+
date,
|
|
10117
|
+
by: _by,
|
|
10118
|
+
status,
|
|
10119
|
+
nameAdornment: _nameAdornment,
|
|
10120
|
+
menu,
|
|
10121
|
+
selected = false,
|
|
10122
|
+
showCheckbox = true,
|
|
10123
|
+
onSelectedChange,
|
|
10124
|
+
onOpen,
|
|
10125
|
+
className,
|
|
10126
|
+
onClick,
|
|
10127
|
+
...props
|
|
10128
|
+
}, ref) {
|
|
10129
|
+
return (
|
|
10130
|
+
// Whole-card click is a pointer enhancement that opens the file; the same
|
|
10131
|
+
// action is keyboard-reachable via the kebab menu's items, and the card's
|
|
10132
|
+
// interactive controls (checkbox, menu) are independently focusable.
|
|
10133
|
+
// eslint-disable-next-line jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events
|
|
10134
|
+
/* @__PURE__ */ jsxs(
|
|
10135
|
+
"div",
|
|
10136
|
+
{
|
|
10137
|
+
ref,
|
|
10138
|
+
className: cn(
|
|
10139
|
+
"group relative cursor-pointer rounded-2xl border border-rule bg-surface p-3",
|
|
10140
|
+
"transition-[border-color,box-shadow,transform] duration-[120ms] motion-reduce:transition-none",
|
|
10141
|
+
"hover:-translate-y-0.5 hover:border-rule-strong hover:shadow-sm",
|
|
10142
|
+
selected && "border-pro-fg bg-pro-bg",
|
|
10143
|
+
className
|
|
10144
|
+
),
|
|
10145
|
+
onClick: (event) => {
|
|
10146
|
+
onClick?.(event);
|
|
10147
|
+
if (!event.defaultPrevented) {
|
|
10148
|
+
onOpen?.();
|
|
10149
|
+
}
|
|
10150
|
+
},
|
|
10151
|
+
...props,
|
|
10152
|
+
children: [
|
|
10153
|
+
showCheckbox !== false && /* @__PURE__ */ jsx(
|
|
10154
|
+
CheckboxSlot,
|
|
10155
|
+
{
|
|
10156
|
+
selected,
|
|
10157
|
+
onSelectedChange,
|
|
10158
|
+
className: "absolute top-2 left-2 z-[2]"
|
|
10159
|
+
}
|
|
10160
|
+
),
|
|
10161
|
+
/* @__PURE__ */ jsx("div", { className: "relative mb-[11px] grid h-[92px] place-items-center overflow-hidden rounded-[10px] bg-surface-2", children: /* @__PURE__ */ jsx(FileTile, { fileType, card: true }) }),
|
|
10162
|
+
/* @__PURE__ */ jsx("div", { className: "truncate text-[13px] font-semibold text-fg", children: name }),
|
|
10163
|
+
/* @__PURE__ */ jsx(
|
|
10164
|
+
MetaText,
|
|
10165
|
+
{
|
|
10166
|
+
values: [size, date],
|
|
10167
|
+
className: "mt-[3px] flex items-center gap-[6px] text-[11px] text-fg-3"
|
|
10168
|
+
}
|
|
10169
|
+
),
|
|
10170
|
+
/* @__PURE__ */ jsxs("div", { className: "mt-[10px] flex items-center justify-between", children: [
|
|
10171
|
+
/* @__PURE__ */ jsx("div", { className: "min-w-0", children: status }),
|
|
10172
|
+
/* @__PURE__ */ jsx(MoreActions, { menu })
|
|
10173
|
+
] })
|
|
10174
|
+
]
|
|
10175
|
+
}
|
|
10176
|
+
)
|
|
10177
|
+
);
|
|
10178
|
+
}
|
|
10179
|
+
);
|
|
10180
|
+
DocumentFileCard.displayName = "DocumentFileCard";
|
|
10181
|
+
var DocumentRequestField = forwardRef(
|
|
10182
|
+
function DocumentRequestField2({
|
|
10183
|
+
index,
|
|
10184
|
+
typeControl,
|
|
10185
|
+
label,
|
|
10186
|
+
onLabelChange,
|
|
10187
|
+
note,
|
|
10188
|
+
onNoteChange,
|
|
10189
|
+
onRemove,
|
|
10190
|
+
canRemove = true,
|
|
10191
|
+
className,
|
|
10192
|
+
...props
|
|
10193
|
+
}, ref) {
|
|
10194
|
+
const humanIndex = index + 1;
|
|
10195
|
+
const showRemove = Boolean(onRemove) && canRemove;
|
|
10196
|
+
return /* @__PURE__ */ jsxs(
|
|
10197
|
+
"div",
|
|
10198
|
+
{
|
|
10199
|
+
ref,
|
|
10200
|
+
className: cn(
|
|
10201
|
+
"rounded-2xl border border-rule bg-surface-2 p-[14px] mb-[10px]",
|
|
10202
|
+
className
|
|
10203
|
+
),
|
|
10204
|
+
...props,
|
|
10205
|
+
children: [
|
|
10206
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-[9px] mb-3", children: [
|
|
10207
|
+
/* @__PURE__ */ jsx(
|
|
10208
|
+
"span",
|
|
10209
|
+
{
|
|
10210
|
+
"aria-hidden": "true",
|
|
10211
|
+
className: "size-[22px] rounded-full bg-pro-bg text-pro-fg text-[11px] font-bold grid place-items-center shrink-0 leading-none",
|
|
10212
|
+
children: humanIndex
|
|
10213
|
+
}
|
|
10214
|
+
),
|
|
10215
|
+
/* @__PURE__ */ jsxs("span", { className: "text-[13px] font-[650] text-pro-fg", children: [
|
|
10216
|
+
"Document ",
|
|
10217
|
+
humanIndex
|
|
10218
|
+
] }),
|
|
10219
|
+
showRemove && /* @__PURE__ */ jsx(
|
|
10220
|
+
"button",
|
|
10221
|
+
{
|
|
10222
|
+
type: "button",
|
|
10223
|
+
onClick: onRemove,
|
|
10224
|
+
"aria-label": `Remove document ${humanIndex}`,
|
|
10225
|
+
className: cn(
|
|
10226
|
+
"ml-auto size-[26px] rounded-[7px] grid place-items-center",
|
|
10227
|
+
"text-fg-4",
|
|
10228
|
+
"transition-colors duration-[120ms] motion-reduce:transition-none",
|
|
10229
|
+
"hover:bg-danger-bg hover:text-danger-fg",
|
|
10230
|
+
"focus-visible:outline-none focus-visible:[box-shadow:var(--shadow-focus-ring)]"
|
|
10231
|
+
),
|
|
10232
|
+
children: /* @__PURE__ */ jsx(CloseIcon, { size: 14, "aria-hidden": "true" })
|
|
10233
|
+
}
|
|
10234
|
+
)
|
|
10235
|
+
] }),
|
|
10236
|
+
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-3", children: [
|
|
10237
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
10238
|
+
/* @__PURE__ */ jsx("span", { className: "mb-1.5 block text-[11.5px] font-semibold text-fg-2", children: "Type" }),
|
|
10239
|
+
typeControl
|
|
10240
|
+
] }),
|
|
10241
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
10242
|
+
/* @__PURE__ */ jsxs("span", { className: "mb-1.5 block text-[11.5px] font-semibold text-fg-2", children: [
|
|
10243
|
+
"Label",
|
|
10244
|
+
" ",
|
|
10245
|
+
/* @__PURE__ */ jsx("span", { className: "text-danger-fg", "aria-hidden": "true", children: "*" })
|
|
10246
|
+
] }),
|
|
10247
|
+
/* @__PURE__ */ jsx(
|
|
10248
|
+
Input,
|
|
10249
|
+
{
|
|
10250
|
+
value: label,
|
|
10251
|
+
onChange: (e) => onLabelChange(e.target.value),
|
|
10252
|
+
placeholder: "e.g. Bank statement for review",
|
|
10253
|
+
inputSize: "sm",
|
|
10254
|
+
"aria-label": `Label for document ${humanIndex}`,
|
|
10255
|
+
"aria-required": "true"
|
|
10256
|
+
}
|
|
10257
|
+
)
|
|
10258
|
+
] }),
|
|
10259
|
+
/* @__PURE__ */ jsxs("div", { className: "col-span-2", children: [
|
|
10260
|
+
/* @__PURE__ */ jsx("span", { className: "mb-1.5 block text-[11.5px] font-semibold text-fg-2", children: "Note" }),
|
|
10261
|
+
/* @__PURE__ */ jsx(
|
|
10262
|
+
Input,
|
|
10263
|
+
{
|
|
10264
|
+
value: note,
|
|
10265
|
+
onChange: (e) => onNoteChange(e.target.value),
|
|
10266
|
+
placeholder: "Optional note for the client",
|
|
10267
|
+
inputSize: "sm",
|
|
10268
|
+
"aria-label": `Note for document ${humanIndex}`
|
|
10269
|
+
}
|
|
10270
|
+
)
|
|
10271
|
+
] })
|
|
10272
|
+
] })
|
|
10273
|
+
]
|
|
10274
|
+
}
|
|
10275
|
+
);
|
|
10276
|
+
}
|
|
10277
|
+
);
|
|
10278
|
+
DocumentRequestField.displayName = "DocumentRequestField";
|
|
10279
|
+
var stateToStatus = {
|
|
10280
|
+
missing: "requested",
|
|
10281
|
+
pending: "pending",
|
|
10282
|
+
received: "received"
|
|
10283
|
+
};
|
|
10284
|
+
function StateDot({ state }) {
|
|
10285
|
+
const colorClass = state === "received" ? "bg-success-fg" : state === "pending" ? "bg-fg-4" : "bg-warning-fg";
|
|
10286
|
+
return /* @__PURE__ */ jsx(
|
|
10287
|
+
"span",
|
|
10288
|
+
{
|
|
10289
|
+
"aria-hidden": "true",
|
|
10290
|
+
className: cn("block size-1.5 shrink-0 rounded-full", colorClass)
|
|
10291
|
+
}
|
|
10292
|
+
);
|
|
10293
|
+
}
|
|
10294
|
+
var MissingDocumentsPanel = forwardRef(
|
|
10295
|
+
function MissingDocumentsPanel2({ items, subtitle = "Suggested from this engagement", onRequest, className, ...props }, ref) {
|
|
10296
|
+
const hasItems = items.length > 0;
|
|
10297
|
+
return /* @__PURE__ */ jsxs(
|
|
10298
|
+
"div",
|
|
10299
|
+
{
|
|
10300
|
+
ref,
|
|
10301
|
+
className: cn(
|
|
10302
|
+
"border-rule bg-surface flex flex-col gap-3 rounded-2xl border p-4 shadow-quiet",
|
|
10303
|
+
className
|
|
10304
|
+
),
|
|
10305
|
+
...props,
|
|
10306
|
+
children: [
|
|
10307
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-start gap-2.5", children: [
|
|
10308
|
+
/* @__PURE__ */ jsx(
|
|
10309
|
+
"span",
|
|
10310
|
+
{
|
|
10311
|
+
"aria-hidden": "true",
|
|
10312
|
+
className: "grid size-7 shrink-0 place-items-center rounded-lg bg-[image:var(--gradient-ai)] text-white [&_svg]:size-3.5",
|
|
10313
|
+
children: /* @__PURE__ */ jsx(SparklesIcon, {})
|
|
10314
|
+
}
|
|
10315
|
+
),
|
|
10316
|
+
/* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
10317
|
+
/* @__PURE__ */ jsx("p", { className: "text-fg-4 mb-0.5 text-[10px] font-semibold tracking-widest uppercase", children: "AI" }),
|
|
10318
|
+
/* @__PURE__ */ jsx("p", { className: "text-fg text-[14px] font-[650] leading-tight", children: "Missing documents" }),
|
|
10319
|
+
/* @__PURE__ */ jsx("p", { className: "text-fg-3 mt-0.5 text-[12px] leading-snug", children: subtitle })
|
|
10320
|
+
] })
|
|
10321
|
+
] }),
|
|
10322
|
+
hasItems ? /* @__PURE__ */ jsx("ul", { className: "flex flex-col", children: items.map((item, idx) => /* @__PURE__ */ jsxs(
|
|
10323
|
+
"li",
|
|
10324
|
+
{
|
|
10325
|
+
className: "border-rule flex items-center gap-3 border-b py-2 last:border-0",
|
|
10326
|
+
children: [
|
|
10327
|
+
/* @__PURE__ */ jsx(StateDot, { state: item.state }),
|
|
10328
|
+
/* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
10329
|
+
/* @__PURE__ */ jsx("p", { className: "text-fg truncate text-[13px] leading-snug", children: item.label }),
|
|
10330
|
+
item.dueDate != null && /* @__PURE__ */ jsx("p", { className: "text-fg-3 mt-0.5 text-[11.5px] leading-none", children: item.dueDate })
|
|
10331
|
+
] }),
|
|
10332
|
+
/* @__PURE__ */ jsx(StatusPill, { status: stateToStatus[item.state], dot: false })
|
|
10333
|
+
]
|
|
10334
|
+
},
|
|
10335
|
+
idx
|
|
10336
|
+
)) }) : (
|
|
10337
|
+
/* Empty / all-received state */
|
|
10338
|
+
/* @__PURE__ */ jsx("p", { className: "text-success-fg py-1 text-[13px] font-medium", children: "All documents received" })
|
|
10339
|
+
),
|
|
10340
|
+
onRequest != null && hasItems && /* @__PURE__ */ jsx("div", { className: "flex justify-end", children: /* @__PURE__ */ jsx(Button, { size: "sm", variant: "secondary", onClick: onRequest, children: "Request missing" }) })
|
|
10341
|
+
]
|
|
10342
|
+
}
|
|
10343
|
+
);
|
|
10344
|
+
}
|
|
10345
|
+
);
|
|
10346
|
+
MissingDocumentsPanel.displayName = "MissingDocumentsPanel";
|
|
9828
10347
|
function renderAction(action) {
|
|
9829
10348
|
return /* @__PURE__ */ jsxs(DropdownMenuItem, { onSelect: action.onSelect, children: [
|
|
9830
10349
|
action.icon && /* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: "text-fg-3 [&_svg]:size-4", children: action.icon }),
|
|
@@ -9885,7 +10404,7 @@ var Content16 = forwardRef(function Content17({ padTop, padBottom, className, st
|
|
|
9885
10404
|
);
|
|
9886
10405
|
});
|
|
9887
10406
|
Content16.displayName = "Content";
|
|
9888
|
-
var SidebarContext =
|
|
10407
|
+
var SidebarContext = React38.createContext(null);
|
|
9889
10408
|
var NOOP_CONTEXT = {
|
|
9890
10409
|
state: "expanded",
|
|
9891
10410
|
setState: () => {
|
|
@@ -9898,7 +10417,7 @@ var NOOP_CONTEXT = {
|
|
|
9898
10417
|
}
|
|
9899
10418
|
};
|
|
9900
10419
|
function useSidebarState() {
|
|
9901
|
-
return
|
|
10420
|
+
return React38.useContext(SidebarContext) ?? NOOP_CONTEXT;
|
|
9902
10421
|
}
|
|
9903
10422
|
var DEFAULT_SHORTCUT = "Mod+\\";
|
|
9904
10423
|
function readStorage(key) {
|
|
@@ -9918,16 +10437,16 @@ function SidebarProvider({
|
|
|
9918
10437
|
storageKey,
|
|
9919
10438
|
shortcut = DEFAULT_SHORTCUT
|
|
9920
10439
|
}) {
|
|
9921
|
-
const [uncontrolled, setUncontrolled] =
|
|
10440
|
+
const [uncontrolled, setUncontrolled] = React38.useState(
|
|
9922
10441
|
controlled ?? defaultState
|
|
9923
10442
|
);
|
|
9924
|
-
|
|
10443
|
+
React38.useEffect(() => {
|
|
9925
10444
|
if (controlled !== void 0) return;
|
|
9926
10445
|
const stored = readStorage(storageKey);
|
|
9927
10446
|
if (stored && stored !== uncontrolled) setUncontrolled(stored);
|
|
9928
10447
|
}, []);
|
|
9929
10448
|
const state = controlled ?? uncontrolled;
|
|
9930
|
-
const setState =
|
|
10449
|
+
const setState = React38.useCallback(
|
|
9931
10450
|
(next) => {
|
|
9932
10451
|
if (controlled === void 0) setUncontrolled(next);
|
|
9933
10452
|
onStateChange?.(next);
|
|
@@ -9940,11 +10459,11 @@ function SidebarProvider({
|
|
|
9940
10459
|
},
|
|
9941
10460
|
[controlled, onStateChange, storageKey]
|
|
9942
10461
|
);
|
|
9943
|
-
const toggle =
|
|
10462
|
+
const toggle = React38.useCallback(() => {
|
|
9944
10463
|
setState(state === "expanded" ? "rail" : "expanded");
|
|
9945
10464
|
}, [state, setState]);
|
|
9946
|
-
const [peekLockCount, setPeekLockCount] =
|
|
9947
|
-
const acquirePeekLock =
|
|
10465
|
+
const [peekLockCount, setPeekLockCount] = React38.useState(0);
|
|
10466
|
+
const acquirePeekLock = React38.useCallback(() => {
|
|
9948
10467
|
setPeekLockCount((n) => n + 1);
|
|
9949
10468
|
let released = false;
|
|
9950
10469
|
return () => {
|
|
@@ -9953,7 +10472,7 @@ function SidebarProvider({
|
|
|
9953
10472
|
setPeekLockCount((n) => Math.max(0, n - 1));
|
|
9954
10473
|
};
|
|
9955
10474
|
}, []);
|
|
9956
|
-
|
|
10475
|
+
React38.useEffect(() => {
|
|
9957
10476
|
if (!shortcut) return;
|
|
9958
10477
|
const parts = shortcut.split("+");
|
|
9959
10478
|
const key = parts.pop() ?? "";
|
|
@@ -9973,7 +10492,7 @@ function SidebarProvider({
|
|
|
9973
10492
|
window.addEventListener("keydown", onKey);
|
|
9974
10493
|
return () => window.removeEventListener("keydown", onKey);
|
|
9975
10494
|
}, [shortcut, toggle]);
|
|
9976
|
-
const value =
|
|
10495
|
+
const value = React38.useMemo(
|
|
9977
10496
|
() => ({ state, setState, toggle, collapsible: true, peekLockCount, acquirePeekLock }),
|
|
9978
10497
|
[state, setState, toggle, peekLockCount, acquirePeekLock]
|
|
9979
10498
|
);
|
|
@@ -9982,15 +10501,15 @@ function SidebarProvider({
|
|
|
9982
10501
|
SidebarProvider.displayName = "SidebarProvider";
|
|
9983
10502
|
var PEEK_ENTER_DELAY_MS = 100;
|
|
9984
10503
|
var PEEK_LEAVE_DELAY_MS = 200;
|
|
9985
|
-
var Sidebar =
|
|
10504
|
+
var Sidebar = React38.forwardRef(function Sidebar2({ className, collapsible = false, variant = "classic", onMouseEnter, onMouseLeave, style, ...props }, ref) {
|
|
9986
10505
|
const isFloating = variant === "floating";
|
|
9987
|
-
const ctx =
|
|
10506
|
+
const ctx = React38.useContext(SidebarContext);
|
|
9988
10507
|
const state = collapsible && ctx ? ctx.state : "expanded";
|
|
9989
10508
|
const peekLockCount = collapsible && ctx ? ctx.peekLockCount : 0;
|
|
9990
|
-
const [peek, setPeek] =
|
|
9991
|
-
const enterTimer =
|
|
9992
|
-
const leaveTimer =
|
|
9993
|
-
const clearTimers =
|
|
10509
|
+
const [peek, setPeek] = React38.useState(false);
|
|
10510
|
+
const enterTimer = React38.useRef(null);
|
|
10511
|
+
const leaveTimer = React38.useRef(null);
|
|
10512
|
+
const clearTimers = React38.useCallback(() => {
|
|
9994
10513
|
if (enterTimer.current != null) {
|
|
9995
10514
|
window.clearTimeout(enterTimer.current);
|
|
9996
10515
|
enterTimer.current = null;
|
|
@@ -10000,8 +10519,8 @@ var Sidebar = React37.forwardRef(function Sidebar2({ className, collapsible = fa
|
|
|
10000
10519
|
leaveTimer.current = null;
|
|
10001
10520
|
}
|
|
10002
10521
|
}, []);
|
|
10003
|
-
|
|
10004
|
-
|
|
10522
|
+
React38.useEffect(() => () => clearTimers(), [clearTimers]);
|
|
10523
|
+
React38.useEffect(() => {
|
|
10005
10524
|
if (state === "expanded") {
|
|
10006
10525
|
clearTimers();
|
|
10007
10526
|
setPeek(false);
|
|
@@ -10082,7 +10601,7 @@ var Sidebar = React37.forwardRef(function Sidebar2({ className, collapsible = fa
|
|
|
10082
10601
|
);
|
|
10083
10602
|
});
|
|
10084
10603
|
Sidebar.displayName = "Sidebar";
|
|
10085
|
-
var SidebarTrigger =
|
|
10604
|
+
var SidebarTrigger = React38.forwardRef(
|
|
10086
10605
|
function SidebarTrigger2({
|
|
10087
10606
|
className,
|
|
10088
10607
|
expandLabel = "Expand sidebar",
|
|
@@ -10090,7 +10609,7 @@ var SidebarTrigger = React37.forwardRef(
|
|
|
10090
10609
|
onClick,
|
|
10091
10610
|
...props
|
|
10092
10611
|
}, ref) {
|
|
10093
|
-
const ctx =
|
|
10612
|
+
const ctx = React38.useContext(SidebarContext);
|
|
10094
10613
|
if (!ctx) return null;
|
|
10095
10614
|
const { state, toggle } = ctx;
|
|
10096
10615
|
const label = state === "expanded" ? collapseLabel : expandLabel;
|
|
@@ -10121,14 +10640,14 @@ var SidebarTrigger = React37.forwardRef(
|
|
|
10121
10640
|
);
|
|
10122
10641
|
SidebarTrigger.displayName = "SidebarTrigger";
|
|
10123
10642
|
function useSidebarPeekLock(active) {
|
|
10124
|
-
const ctx =
|
|
10125
|
-
|
|
10643
|
+
const ctx = React38.useContext(SidebarContext);
|
|
10644
|
+
React38.useEffect(() => {
|
|
10126
10645
|
if (!active || !ctx) return;
|
|
10127
10646
|
const release = ctx.acquirePeekLock();
|
|
10128
10647
|
return release;
|
|
10129
10648
|
}, [active, ctx]);
|
|
10130
10649
|
}
|
|
10131
|
-
var SidebarPinButton =
|
|
10650
|
+
var SidebarPinButton = React38.forwardRef(
|
|
10132
10651
|
function SidebarPinButton2({
|
|
10133
10652
|
pinLabel = "Pin sidebar",
|
|
10134
10653
|
unpinLabel = "Unpin sidebar",
|
|
@@ -10136,7 +10655,7 @@ var SidebarPinButton = React37.forwardRef(
|
|
|
10136
10655
|
onClick,
|
|
10137
10656
|
...props
|
|
10138
10657
|
}, ref) {
|
|
10139
|
-
const ctx =
|
|
10658
|
+
const ctx = React38.useContext(SidebarContext);
|
|
10140
10659
|
if (!ctx || !ctx.collapsible) return null;
|
|
10141
10660
|
const { state, setState } = ctx;
|
|
10142
10661
|
const isPinned = state === "expanded";
|
|
@@ -10201,7 +10720,7 @@ function PinGlyph({
|
|
|
10201
10720
|
}
|
|
10202
10721
|
);
|
|
10203
10722
|
}
|
|
10204
|
-
var SidebarBrand =
|
|
10723
|
+
var SidebarBrand = React38.forwardRef(
|
|
10205
10724
|
function SidebarBrand2({ className, ...props }, ref) {
|
|
10206
10725
|
return /* @__PURE__ */ jsx(
|
|
10207
10726
|
"div",
|
|
@@ -10217,7 +10736,7 @@ var SidebarBrand = React37.forwardRef(
|
|
|
10217
10736
|
}
|
|
10218
10737
|
);
|
|
10219
10738
|
SidebarBrand.displayName = "SidebarBrand";
|
|
10220
|
-
var SidebarBrandText =
|
|
10739
|
+
var SidebarBrandText = React38.forwardRef(
|
|
10221
10740
|
function SidebarBrandText2({ className, ...props }, ref) {
|
|
10222
10741
|
return /* @__PURE__ */ jsx(
|
|
10223
10742
|
"span",
|
|
@@ -10242,16 +10761,16 @@ var SidebarBrandText = React37.forwardRef(
|
|
|
10242
10761
|
}
|
|
10243
10762
|
);
|
|
10244
10763
|
SidebarBrandText.displayName = "SidebarBrandText";
|
|
10245
|
-
var SidebarGroupScopeContext =
|
|
10246
|
-
var SidebarSection =
|
|
10764
|
+
var SidebarGroupScopeContext = React38.createContext(null);
|
|
10765
|
+
var SidebarSection = React38.forwardRef(
|
|
10247
10766
|
function SidebarSection2({ label, tone = "pro", className, children, ...props }, ref) {
|
|
10248
10767
|
const ariaLabel = typeof label === "string" ? label : typeof label === "number" ? String(label) : void 0;
|
|
10249
|
-
const [exclusiveId, setExclusiveIdState] =
|
|
10250
|
-
const setExclusive =
|
|
10768
|
+
const [exclusiveId, setExclusiveIdState] = React38.useState(null);
|
|
10769
|
+
const setExclusive = React38.useCallback(
|
|
10251
10770
|
(id) => setExclusiveIdState(id),
|
|
10252
10771
|
[]
|
|
10253
10772
|
);
|
|
10254
|
-
const scope =
|
|
10773
|
+
const scope = React38.useMemo(
|
|
10255
10774
|
() => ({ exclusiveId, setExclusive }),
|
|
10256
10775
|
[exclusiveId, setExclusive]
|
|
10257
10776
|
);
|
|
@@ -10304,12 +10823,12 @@ function getTextContent(node) {
|
|
|
10304
10823
|
if (node == null || typeof node === "boolean") return "";
|
|
10305
10824
|
if (typeof node === "string" || typeof node === "number") return String(node);
|
|
10306
10825
|
if (Array.isArray(node)) return node.map(getTextContent).filter(Boolean).join(" ");
|
|
10307
|
-
if (
|
|
10826
|
+
if (React38.isValidElement(node)) {
|
|
10308
10827
|
return getTextContent(node.props.children);
|
|
10309
10828
|
}
|
|
10310
10829
|
return "";
|
|
10311
10830
|
}
|
|
10312
|
-
var SidebarLink =
|
|
10831
|
+
var SidebarLink = React38.forwardRef(
|
|
10313
10832
|
function SidebarLink2({ href, icon, active = false, asChild, className, children, "aria-label": ariaLabel, ...props }, ref) {
|
|
10314
10833
|
const Comp = asChild ? Slot : "a";
|
|
10315
10834
|
const accessibleLabel = ariaLabel ?? (asChild ? void 0 : getTextContent(children) || void 0);
|
|
@@ -10380,7 +10899,7 @@ var SidebarLink = React37.forwardRef(
|
|
|
10380
10899
|
}
|
|
10381
10900
|
);
|
|
10382
10901
|
SidebarLink.displayName = "SidebarLink";
|
|
10383
|
-
var SidebarLinkLabel =
|
|
10902
|
+
var SidebarLinkLabel = React38.forwardRef(
|
|
10384
10903
|
function SidebarLinkLabel2({ className, ...props }, ref) {
|
|
10385
10904
|
return /* @__PURE__ */ jsx(
|
|
10386
10905
|
"span",
|
|
@@ -10405,7 +10924,7 @@ var SidebarLinkLabel = React37.forwardRef(
|
|
|
10405
10924
|
}
|
|
10406
10925
|
);
|
|
10407
10926
|
SidebarLinkLabel.displayName = "SidebarLinkLabel";
|
|
10408
|
-
var SidebarLinkAction =
|
|
10927
|
+
var SidebarLinkAction = React38.forwardRef(
|
|
10409
10928
|
function SidebarLinkAction2({ className, ...props }, ref) {
|
|
10410
10929
|
return /* @__PURE__ */ jsx(
|
|
10411
10930
|
"span",
|
|
@@ -10437,13 +10956,13 @@ var sidebarLinkBadgeVariants = cva(
|
|
|
10437
10956
|
defaultVariants: { tone: "default" }
|
|
10438
10957
|
}
|
|
10439
10958
|
);
|
|
10440
|
-
var SidebarLinkBadge =
|
|
10959
|
+
var SidebarLinkBadge = React38.forwardRef(
|
|
10441
10960
|
function SidebarLinkBadge2({ tone, className, ...props }, ref) {
|
|
10442
10961
|
return /* @__PURE__ */ jsx("span", { ref, className: cn(sidebarLinkBadgeVariants({ tone }), className), ...props });
|
|
10443
10962
|
}
|
|
10444
10963
|
);
|
|
10445
10964
|
SidebarLinkBadge.displayName = "SidebarLinkBadge";
|
|
10446
|
-
var SidebarLinkGroup =
|
|
10965
|
+
var SidebarLinkGroup = React38.forwardRef(
|
|
10447
10966
|
function SidebarLinkGroup2({
|
|
10448
10967
|
id: idProp,
|
|
10449
10968
|
icon,
|
|
@@ -10458,19 +10977,19 @@ var SidebarLinkGroup = React37.forwardRef(
|
|
|
10458
10977
|
children,
|
|
10459
10978
|
...props
|
|
10460
10979
|
}, ref) {
|
|
10461
|
-
const reactId =
|
|
10980
|
+
const reactId = React38.useId();
|
|
10462
10981
|
const id = idProp ?? reactId;
|
|
10463
|
-
const scope =
|
|
10464
|
-
const [uncontrolledOpen, setUncontrolledOpen] =
|
|
10982
|
+
const scope = React38.useContext(SidebarGroupScopeContext);
|
|
10983
|
+
const [uncontrolledOpen, setUncontrolledOpen] = React38.useState(defaultOpen);
|
|
10465
10984
|
const open = controlled ?? uncontrolledOpen;
|
|
10466
|
-
const setOpen =
|
|
10985
|
+
const setOpen = React38.useCallback(
|
|
10467
10986
|
(next) => {
|
|
10468
10987
|
if (controlled === void 0) setUncontrolledOpen(next);
|
|
10469
10988
|
onOpenChange?.(next);
|
|
10470
10989
|
},
|
|
10471
10990
|
[controlled, onOpenChange]
|
|
10472
10991
|
);
|
|
10473
|
-
|
|
10992
|
+
React38.useEffect(() => {
|
|
10474
10993
|
if (scope?.exclusiveId && scope.exclusiveId !== id && open) {
|
|
10475
10994
|
setOpen(false);
|
|
10476
10995
|
}
|
|
@@ -10579,7 +11098,7 @@ var SidebarLinkGroup = React37.forwardRef(
|
|
|
10579
11098
|
}
|
|
10580
11099
|
);
|
|
10581
11100
|
SidebarLinkGroup.displayName = "SidebarLinkGroup";
|
|
10582
|
-
var SidebarFooter =
|
|
11101
|
+
var SidebarFooter = React38.forwardRef(
|
|
10583
11102
|
function SidebarFooter2({ className, ...props }, ref) {
|
|
10584
11103
|
return /* @__PURE__ */ jsx(
|
|
10585
11104
|
"div",
|
|
@@ -10596,7 +11115,7 @@ var SidebarFooter = React37.forwardRef(
|
|
|
10596
11115
|
}
|
|
10597
11116
|
);
|
|
10598
11117
|
SidebarFooter.displayName = "SidebarFooter";
|
|
10599
|
-
var SidebarUser =
|
|
11118
|
+
var SidebarUser = React38.forwardRef(function SidebarUser2({ name, subtitle, avatarSrc, className, ...props }, ref) {
|
|
10600
11119
|
return /* @__PURE__ */ jsxs("div", { ref, className: cn("flex min-w-0 items-center gap-2.5", className), ...props, children: [
|
|
10601
11120
|
/* @__PURE__ */ jsx(Avatar, { size: "sm", variant: "branded", name, src: avatarSrc ?? void 0 }),
|
|
10602
11121
|
/* @__PURE__ */ jsxs(
|
|
@@ -10617,7 +11136,7 @@ var SidebarUser = React37.forwardRef(function SidebarUser2({ name, subtitle, ava
|
|
|
10617
11136
|
] });
|
|
10618
11137
|
});
|
|
10619
11138
|
SidebarUser.displayName = "SidebarUser";
|
|
10620
|
-
var SidebarBrandSwitcher =
|
|
11139
|
+
var SidebarBrandSwitcher = React38.forwardRef(
|
|
10621
11140
|
function SidebarBrandSwitcher2({
|
|
10622
11141
|
brand,
|
|
10623
11142
|
label,
|
|
@@ -10635,7 +11154,7 @@ var SidebarBrandSwitcher = React37.forwardRef(
|
|
|
10635
11154
|
contentClassName,
|
|
10636
11155
|
trailing
|
|
10637
11156
|
}, ref) {
|
|
10638
|
-
const [open, setOpen] =
|
|
11157
|
+
const [open, setOpen] = React38.useState(false);
|
|
10639
11158
|
useSidebarPeekLock(open);
|
|
10640
11159
|
const others = items.filter((p) => p.id !== current.id);
|
|
10641
11160
|
return (
|
|
@@ -10755,7 +11274,7 @@ function SidebarBrandSwitcherOtherRow({
|
|
|
10755
11274
|
unavailableBadge
|
|
10756
11275
|
}) {
|
|
10757
11276
|
const reachable = item.available !== false;
|
|
10758
|
-
const [launching, setLaunching] =
|
|
11277
|
+
const [launching, setLaunching] = React38.useState(false);
|
|
10759
11278
|
const handleSelect = async () => {
|
|
10760
11279
|
if (!reachable || launching || !onLaunch) return;
|
|
10761
11280
|
setLaunching(true);
|
|
@@ -12672,7 +13191,7 @@ var FilterChip = forwardRef(function FilterChip2({ active = false, size, count,
|
|
|
12672
13191
|
);
|
|
12673
13192
|
});
|
|
12674
13193
|
FilterChip.displayName = "FilterChip";
|
|
12675
|
-
var BulkActionBarContext =
|
|
13194
|
+
var BulkActionBarContext = React38.createContext({ tone: "surface" });
|
|
12676
13195
|
function actionClasses(tone, destructive) {
|
|
12677
13196
|
const base = cn(
|
|
12678
13197
|
"inline-flex h-8 items-center gap-1.5 rounded-btn px-3 text-[13px] font-medium",
|
|
@@ -12695,8 +13214,8 @@ function actionClasses(tone, destructive) {
|
|
|
12695
13214
|
destructive ? "text-control-destructive-fg hover:bg-control-destructive-hover-bg" : "text-control-fg hover:bg-control-hover-bg hover:text-control-hover-fg"
|
|
12696
13215
|
);
|
|
12697
13216
|
}
|
|
12698
|
-
var BulkActionBarAction =
|
|
12699
|
-
const { tone } =
|
|
13217
|
+
var BulkActionBarAction = React38.forwardRef(function BulkActionBarAction2({ asChild = false, destructive, className, type, ...props }, ref) {
|
|
13218
|
+
const { tone } = React38.use(BulkActionBarContext);
|
|
12700
13219
|
const Comp = asChild ? Slot : "button";
|
|
12701
13220
|
return /* @__PURE__ */ jsx(
|
|
12702
13221
|
Comp,
|
|
@@ -12710,7 +13229,7 @@ var BulkActionBarAction = React37.forwardRef(function BulkActionBarAction2({ asC
|
|
|
12710
13229
|
});
|
|
12711
13230
|
BulkActionBarAction.displayName = "BulkActionBarAction";
|
|
12712
13231
|
function BulkActionBarSeparator({ className }) {
|
|
12713
|
-
const { tone } =
|
|
13232
|
+
const { tone } = React38.use(BulkActionBarContext);
|
|
12714
13233
|
return /* @__PURE__ */ jsx(
|
|
12715
13234
|
"span",
|
|
12716
13235
|
{
|
|
@@ -12910,6 +13429,6 @@ var KbdHint = forwardRef(function KbdHint2({ className, children, ...props }, re
|
|
|
12910
13429
|
});
|
|
12911
13430
|
KbdHint.displayName = "KbdHint";
|
|
12912
13431
|
|
|
12913
|
-
export { AIReceiptPanel, Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActivityEventItem, ActivityItem, ActivityList, Alert, AlertCircleIcon, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AlertTriangleIcon, AlertTriangleSolidIcon, AppHeader, AppHeaderActions, AppHeaderBreadcrumb, AppHeaderSearch, AppHeaderTitle, AreaChart, ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon, ArrowRightSmallIcon, ArrowUpIcon, AspectRatio, AssureAuditBrandIcon, AssureBooksBrandIcon, AssureProBrandIcon, AssureTaxBrandIcon, AtSignIcon, AttachmentChip, AttentionItem, Avatar, Badge, BarChartIcon, BellIcon, Blockquote, BoldIcon, BottomNav, Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, BriefcaseIcon, Building2Icon, BuildingIcon, BulkActionBar, BulkActionBarAction, BulkActionBarSeparator, Button, COUNTRY_CODES, Calendar, CalendarIcon, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, CategoryDivider, CategoryTag, ChatBubbleIcon, CheckCircle2Icon, CheckCircleSolidIcon, CheckIcon, Checkbox, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ChevronsUpDownIcon, CircleDotIcon, CircleIcon, ClientSelect, ClipboardCheckIcon, ClockIcon, CloseIcon, Collapsible, CollapsibleContent, CollapsibleTrigger, ComingSoon, CommandIcon, CommandPalette, ConfirmActionButton, Content16 as Content, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, CopyButton, CopyIcon, CornerDownLeftIcon, CountryFlag, CountrySelect, CreditCardIcon, DATE_DISPLAY_PLACEHOLDER, DangerAction, DashGrid, DataItem, DataTable, DataTableBody, DataTableCell, DataTableCellDue, DataTableCellId, DataTableCellMono, DataTableCellName, DataTableCheckbox, DataTableHead, DataTableHeader, DataTablePagination, DataTableResultsCount, DataTableRow, DataTableSearch, DataTableSpacer, DataTableToolbar, DatePicker, DateRangePicker, DetailGrid, DetailMain, DetailSpine, DetailSpineHeader, DetailSpineSection, DetailSpineStats, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DismissibleChip, DocumentIcon, DollarSignIcon, DonutChart, DownloadIcon, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, EngagementCard, EngagementTimeline, EngagementTimelineStep, EyeIcon, EyeOffIcon, Eyebrow, FileChip, FileIcon, FileReturnIcon, FileTextIcon, FileTypeBadge, FileUpload, FilterChip, FilterIcon, FlagIcon, FolderClosedIcon, FolderOpenIcon, FolderPlusIcon, FolderTree, FolderUpIcon, FormError, FormSection, FormSuccess, GlobeIcon, GoogleBrandIcon, HelpCircleIcon, HistoryIcon, HomeIcon, HoverCard, HoverCardContent, HoverCardPortal, HoverCardTrigger, IconAction, IconTile, InboxIcon, InfoCircleSolidIcon, InfoIcon, Input, ItalicIcon, Kanban, KanbanCard, KanbanColumn, KanbanIcon, KbdHint, KeyIcon, KeyboardShortcutsDialog, KpiCard, Label4 as Label, LandmarkIcon, LayoutDashboardIcon, LayoutGridIcon, LayoutListIcon, LightningIcon, Link2Icon, LinkAction, LinkButton, LinkIcon, ListChecksIcon, ListIcon, ListOrderedIcon, LoaderIcon, LoadingRows, LockIcon, LockKeyholeIcon, LockOpenIcon, LogOutIcon, Logo, MailIcon, Main, MapPinIcon, MasterDetailLayout, MenuIcon, MessageBubble, MessageBubbleAction, MessageBubbleTombstone, MessageCircleIcon, MessageCircleWarningIcon, MessageComposer, MetadataGrid, MicrosoftBrandIcon, MinusIcon, MonitorIcon, MoonIcon, MoreHorizontalIcon, MoveIcon, MultiFilterPill, MultiSelectField, MutedSpec, NewMenu, NotificationFilter, NotificationItem, NotificationList, NotificationPanel, NotificationPanelFooter, NotificationPanelHeader, Numeric, OTPInput, PageHeader, PageHeaderSep, PageHeaderSpec, Pagination, PaletteIcon, PanelLeftCloseIcon, PanelLeftIcon, PaperclipIcon, PauseIcon, PenSignIcon, PenToolIcon, PencilIcon, PhoneCountryInput, PhoneIcon, PhoneInput, PlayIcon, PlusIcon, Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverPortal, PopoverTrigger, PrimaryAction, PriorityIcon, ProgressBar, ProgressRing, RadioGroup3 as RadioGroup, RadioGroupItem, RankedBars, ReceiptIcon, ReplyIcon, ResponsiveDialog, RotateCcwIcon, RouteTransition, SERVICE_TONES, SaveIcon, ScrollArea, ScrollBar, SearchIcon, SearchInput, SearchSelect, SecondaryAction, Section, SectionHead, SectionHeader, SegmentedProgress, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectRoot, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, SelectableKpiCard, SendIcon, Separator4 as Separator, SettingsIcon, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Shell, ShieldIcon, SideDrawer, Sidebar, SidebarBrand, SidebarBrandSwitcher, SidebarBrandSwitcherTile, SidebarBrandText, SidebarFooter, SidebarLink, SidebarLinkAction, SidebarLinkBadge, SidebarLinkGroup, SidebarLinkLabel, SidebarPinButton, SidebarProvider, SidebarSection, SidebarTrigger, SidebarUser, Skeleton, SkeletonCircle, SkeletonText, SlashIcon, Slider, SmartphoneIcon, SparkleIcon, SparklesIcon, Spinner, StarIcon, StarRating, Stat, StatusDot, StatusIcon, StatusPill, Stepper, StickyActionBar, StopIcon, StrikethroughIcon, SubmitButton, SuiteProgress, SunIcon, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableIcon, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TagIcon, TeamIcon, TeamMemberSelect, Textarea, TimeLogger, TimeLoggerActions, TimeLoggerBillable, TimeLoggerContextRow, TimeLoggerEntry, TimeLoggerEntryList, TimeLoggerField, TimeLoggerFooter, TimeLoggerHeader, TimeLoggerNotes, TimeLoggerTimer, ToastProvider, ToggleGroup, ToggleGroupItem, Toolbar, Tooltip, TooltipContent, TooltipPortal, TooltipProvider, TooltipTrigger, Trash2Icon, TrashIcon, TrendingDownIcon, TrendingUpIcon, UnderlineIcon, UploadIcon, UserCircleIcon, UserIcon, UsersIcon, VisuallyHidden, WorkflowIcon, XCircleSolidIcon, XIcon, YEAR_DISPLAY_PLACEHOLDER, ZoomInIcon, ZoomOutIcon, alertVariants, applyMask, applyYearMask, attachmentChipVariants, badgeVariants, buttonVariants, cardVariants, cn, colors, dateToIso, displayToIso, fileTypeBadgeVariants, fileTypeFromName, filterChipVariants, formatClock, formatCurrency, formatDuration, getFlagEmoji, iconTileVariants, inputVariants, isoToDate, isoToDisplay, isoToYear, labelVariants, parseDuration, parsePhoneForEditing, progressBarVariants, progressRingVariants, radii, reference, searchInputVariants, serviceToneLabel, serviceToneStyle, shadows, sidebarLinkBadgeVariants, spacing, spinnerVariants, starRatingVariants, statusDotVariants, suiteProgressFillVariants, surfaces, systemTokens, textareaVariants, typography, useSidebarPeekLock, useSidebarState, useStopwatch, useToast, yearToIso };
|
|
13432
|
+
export { AIReceiptPanel, Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActivityEventItem, ActivityItem, ActivityList, Alert, AlertCircleIcon, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AlertTriangleIcon, AlertTriangleSolidIcon, AppHeader, AppHeaderActions, AppHeaderBreadcrumb, AppHeaderSearch, AppHeaderTitle, AreaChart, ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon, ArrowRightSmallIcon, ArrowUpIcon, AspectRatio, AssureAuditBrandIcon, AssureBooksBrandIcon, AssureProBrandIcon, AssureTaxBrandIcon, AtSignIcon, AttachmentChip, AttentionItem, Avatar, Badge, BarChartIcon, BellIcon, Blockquote, BoldIcon, BottomNav, Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, BriefcaseIcon, Building2Icon, BuildingIcon, BulkActionBar, BulkActionBarAction, BulkActionBarSeparator, Button, COUNTRY_CODES, Calendar, CalendarIcon, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, CategoryDivider, CategoryTag, ChatBubbleIcon, CheckCircle2Icon, CheckCircleSolidIcon, CheckIcon, Checkbox, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ChevronsUpDownIcon, CircleDotIcon, CircleIcon, ClientRailGroupHeader, ClientRailItem, ClientSelect, ClipboardCheckIcon, ClockIcon, CloseIcon, Collapsible, CollapsibleContent, CollapsibleTrigger, ComingSoon, CommandIcon, CommandPalette, ConfirmActionButton, Content16 as Content, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, CopyButton, CopyIcon, CornerDownLeftIcon, CountryFlag, CountrySelect, CreditCardIcon, DATE_DISPLAY_PLACEHOLDER, DangerAction, DashGrid, DataItem, DataTable, DataTableBody, DataTableCell, DataTableCellDue, DataTableCellId, DataTableCellMono, DataTableCellName, DataTableCheckbox, DataTableHead, DataTableHeader, DataTablePagination, DataTableResultsCount, DataTableRow, DataTableSearch, DataTableSpacer, DataTableToolbar, DatePicker, DateRangePicker, DetailGrid, DetailMain, DetailSpine, DetailSpineHeader, DetailSpineSection, DetailSpineStats, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DismissibleChip, DocumentFileCard, DocumentFileRow, DocumentIcon, DocumentRequestField, DocumentsWorkspaceLayout, DollarSignIcon, DonutChart, DownloadIcon, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, EngagementCard, EngagementTimeline, EngagementTimelineStep, EyeIcon, EyeOffIcon, Eyebrow, FileChip, FileIcon, FileReturnIcon, FileTextIcon, FileTypeBadge, FileUpload, FilterChip, FilterIcon, FlagIcon, FolderClosedIcon, FolderOpenIcon, FolderPlusIcon, FolderTree, FolderUpIcon, FormError, FormSection, FormSuccess, GlobeIcon, GoogleBrandIcon, HelpCircleIcon, HistoryIcon, HomeIcon, HoverCard, HoverCardContent, HoverCardPortal, HoverCardTrigger, IconAction, IconTile, InboxIcon, InfoCircleSolidIcon, InfoIcon, Input, ItalicIcon, Kanban, KanbanCard, KanbanColumn, KanbanIcon, KbdHint, KeyIcon, KeyboardShortcutsDialog, KpiCard, Label4 as Label, LandmarkIcon, LayoutDashboardIcon, LayoutGridIcon, LayoutListIcon, LightningIcon, Link2Icon, LinkAction, LinkButton, LinkIcon, ListChecksIcon, ListIcon, ListOrderedIcon, LoaderIcon, LoadingRows, LockIcon, LockKeyholeIcon, LockOpenIcon, LogOutIcon, Logo, MailIcon, Main, MapPinIcon, MasterDetailLayout, MenuIcon, MessageBubble, MessageBubbleAction, MessageBubbleTombstone, MessageCircleIcon, MessageCircleWarningIcon, MessageComposer, MetadataGrid, MicrosoftBrandIcon, MinusIcon, MissingDocumentsPanel, MonitorIcon, MoonIcon, MoreHorizontalIcon, MoveIcon, MultiFilterPill, MultiSelectField, MutedSpec, NewMenu, NotificationFilter, NotificationItem, NotificationList, NotificationPanel, NotificationPanelFooter, NotificationPanelHeader, Numeric, OTPInput, PageHeader, PageHeaderSep, PageHeaderSpec, Pagination, PaletteIcon, PanelLeftCloseIcon, PanelLeftIcon, PaperclipIcon, PauseIcon, PenSignIcon, PenToolIcon, PencilIcon, PhoneCountryInput, PhoneIcon, PhoneInput, PlayIcon, PlusIcon, Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverPortal, PopoverTrigger, PrimaryAction, PriorityIcon, ProgressBar, ProgressRing, RadioGroup3 as RadioGroup, RadioGroupItem, RankedBars, ReceiptIcon, ReplyIcon, ResponsiveDialog, RotateCcwIcon, RouteTransition, SERVICE_TONES, SaveIcon, ScrollArea, ScrollBar, SearchIcon, SearchInput, SearchSelect, SecondaryAction, Section, SectionHead, SectionHeader, SegmentedProgress, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectRoot, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, SelectableKpiCard, SendIcon, Separator4 as Separator, SettingsIcon, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Shell, ShieldIcon, SideDrawer, Sidebar, SidebarBrand, SidebarBrandSwitcher, SidebarBrandSwitcherTile, SidebarBrandText, SidebarFooter, SidebarLink, SidebarLinkAction, SidebarLinkBadge, SidebarLinkGroup, SidebarLinkLabel, SidebarPinButton, SidebarProvider, SidebarSection, SidebarTrigger, SidebarUser, Skeleton, SkeletonCircle, SkeletonText, SlashIcon, Slider, SmartphoneIcon, SparkleIcon, SparklesIcon, Spinner, StarIcon, StarRating, Stat, StatusDot, StatusIcon, StatusPill, Stepper, StickyActionBar, StopIcon, StrikethroughIcon, SubmitButton, SuiteProgress, SunIcon, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableIcon, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TagIcon, TeamIcon, TeamMemberSelect, Textarea, TimeLogger, TimeLoggerActions, TimeLoggerBillable, TimeLoggerContextRow, TimeLoggerEntry, TimeLoggerEntryList, TimeLoggerField, TimeLoggerFooter, TimeLoggerHeader, TimeLoggerNotes, TimeLoggerTimer, ToastProvider, ToggleGroup, ToggleGroupItem, Toolbar, Tooltip, TooltipContent, TooltipPortal, TooltipProvider, TooltipTrigger, Trash2Icon, TrashIcon, TrendingDownIcon, TrendingUpIcon, UnderlineIcon, UploadIcon, UserCircleIcon, UserIcon, UsersIcon, VisuallyHidden, WorkflowIcon, XCircleSolidIcon, XIcon, YEAR_DISPLAY_PLACEHOLDER, ZoomInIcon, ZoomOutIcon, alertVariants, applyMask, applyYearMask, attachmentChipVariants, badgeVariants, buttonVariants, cardVariants, cn, colors, dateToIso, displayToIso, fileTypeBadgeVariants, fileTypeFromName, filterChipVariants, formatClock, formatCurrency, formatDuration, getFlagEmoji, iconTileVariants, inputVariants, isoToDate, isoToDisplay, isoToYear, labelVariants, parseDuration, parsePhoneForEditing, progressBarVariants, progressRingVariants, radii, reference, searchInputVariants, serviceToneLabel, serviceToneStyle, shadows, sidebarLinkBadgeVariants, spacing, spinnerVariants, starRatingVariants, statusDotVariants, suiteProgressFillVariants, surfaces, systemTokens, textareaVariants, typography, useSidebarPeekLock, useSidebarState, useStopwatch, useToast, yearToIso };
|
|
12914
13433
|
//# sourceMappingURL=index.js.map
|
|
12915
13434
|
//# sourceMappingURL=index.js.map
|