@assure-one/design-system 1.14.0 → 1.17.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 +163 -5
- package/dist/index.js +1340 -160
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -5832,9 +5832,27 @@ var LoadingRows = forwardRef(function LoadingRows2({
|
|
|
5832
5832
|
});
|
|
5833
5833
|
LoadingRows.displayName = "LoadingRows";
|
|
5834
5834
|
var sizeStyles = {
|
|
5835
|
-
sm: { icon: 20, text: "text-sm", gap: "gap-2" },
|
|
5836
|
-
md: { icon: 24, text: "text-[17px]", gap: "gap-2.5" },
|
|
5837
|
-
lg: { icon: 32, text: "text-xl", gap: "gap-3" }
|
|
5835
|
+
sm: { icon: 20, text: "text-sm", gap: "gap-2", assetHeight: 24 },
|
|
5836
|
+
md: { icon: 24, text: "text-[17px]", gap: "gap-2.5", assetHeight: 30 },
|
|
5837
|
+
lg: { icon: 32, text: "text-xl", gap: "gap-3", assetHeight: 40 }
|
|
5838
|
+
};
|
|
5839
|
+
var productLogoAssets = {
|
|
5840
|
+
Pro: { src: "/brand/assure-pro.svg", width: 384, height: 90 },
|
|
5841
|
+
Audit: { src: "/brand/assure-audit.svg", width: 441, height: 90 },
|
|
5842
|
+
Books: { src: "/brand/assure-books.svg", width: 470, height: 90 },
|
|
5843
|
+
Tax: { src: "/brand/assure-tax.svg", width: 374, height: 90 }
|
|
5844
|
+
};
|
|
5845
|
+
var productMarkAssets = {
|
|
5846
|
+
Pro: { src: "/brand/assure-pro-mark.svg", width: 55, height: 48 },
|
|
5847
|
+
Audit: { src: "/brand/assure-audit-mark.svg", width: 55, height: 48 },
|
|
5848
|
+
Books: { src: "/brand/assure-books-mark.svg", width: 55, height: 48 },
|
|
5849
|
+
Tax: { src: "/brand/assure-tax-mark.svg", width: 55, height: 48 }
|
|
5850
|
+
};
|
|
5851
|
+
var productGlyphs = {
|
|
5852
|
+
Pro: AssureProBrandIcon,
|
|
5853
|
+
Audit: AssureAuditBrandIcon,
|
|
5854
|
+
Books: AssureBooksBrandIcon,
|
|
5855
|
+
Tax: AssureTaxBrandIcon
|
|
5838
5856
|
};
|
|
5839
5857
|
function Logo({
|
|
5840
5858
|
size = "md",
|
|
@@ -5848,6 +5866,9 @@ function Logo({
|
|
|
5848
5866
|
}) {
|
|
5849
5867
|
const s = sizeStyles[size];
|
|
5850
5868
|
const ariaLabel = productName ? `Assure ${productName}` : "Assure";
|
|
5869
|
+
const asset = productName ? productLogoAssets[productName] : void 0;
|
|
5870
|
+
const markAsset = productName ? productMarkAssets[productName] : void 0;
|
|
5871
|
+
const Glyph = productName ? productGlyphs[productName] : void 0;
|
|
5851
5872
|
return /* @__PURE__ */ jsxs(
|
|
5852
5873
|
Link,
|
|
5853
5874
|
{
|
|
@@ -5855,17 +5876,40 @@ function Logo({
|
|
|
5855
5876
|
className: cn("inline-flex items-center", s.gap, className),
|
|
5856
5877
|
"aria-label": ariaLabel,
|
|
5857
5878
|
children: [
|
|
5858
|
-
/* @__PURE__ */ jsx(
|
|
5879
|
+
asset && showText ? /* @__PURE__ */ jsx(
|
|
5859
5880
|
Image2,
|
|
5860
5881
|
{
|
|
5861
|
-
src:
|
|
5882
|
+
src: asset.src,
|
|
5862
5883
|
alt: "",
|
|
5863
|
-
width:
|
|
5864
|
-
height:
|
|
5884
|
+
width: asset.width,
|
|
5885
|
+
height: asset.height,
|
|
5865
5886
|
priority: true,
|
|
5866
|
-
className: cn("flex-shrink-0", iconClassName)
|
|
5887
|
+
className: cn("h-auto flex-shrink-0", inverted && "brightness-0 invert", iconClassName),
|
|
5888
|
+
style: { width: Math.round(asset.width / asset.height * s.assetHeight) }
|
|
5867
5889
|
}
|
|
5868
|
-
)
|
|
5890
|
+
) : markAsset ? /* @__PURE__ */ jsx(
|
|
5891
|
+
Image2,
|
|
5892
|
+
{
|
|
5893
|
+
src: markAsset.src,
|
|
5894
|
+
alt: "",
|
|
5895
|
+
width: markAsset.width,
|
|
5896
|
+
height: markAsset.height,
|
|
5897
|
+
priority: true,
|
|
5898
|
+
className: cn("h-auto flex-shrink-0", inverted && "brightness-0 invert", iconClassName),
|
|
5899
|
+
style: { width: Math.round(markAsset.width / markAsset.height * s.icon) }
|
|
5900
|
+
}
|
|
5901
|
+
) : /* @__PURE__ */ jsx(Fragment, { children: Glyph ? /* @__PURE__ */ jsx(Glyph, { size: s.icon, "aria-hidden": "true", className: iconClassName }) : /* @__PURE__ */ jsx(
|
|
5902
|
+
"span",
|
|
5903
|
+
{
|
|
5904
|
+
"aria-hidden": "true",
|
|
5905
|
+
className: cn(
|
|
5906
|
+
"bg-pro-fg grid shrink-0 place-items-center rounded-[5px] text-[10px] font-bold text-white",
|
|
5907
|
+
iconClassName
|
|
5908
|
+
),
|
|
5909
|
+
style: { width: s.icon, height: s.icon },
|
|
5910
|
+
children: "A"
|
|
5911
|
+
}
|
|
5912
|
+
) }),
|
|
5869
5913
|
showText && /* @__PURE__ */ jsxs(
|
|
5870
5914
|
"span",
|
|
5871
5915
|
{
|
|
@@ -5873,6 +5917,7 @@ function Logo({
|
|
|
5873
5917
|
"font-display font-semibold tracking-[-0.025em]",
|
|
5874
5918
|
s.text,
|
|
5875
5919
|
inverted ? "text-white" : "text-fg",
|
|
5920
|
+
asset && "sr-only",
|
|
5876
5921
|
textClassName
|
|
5877
5922
|
),
|
|
5878
5923
|
children: [
|
|
@@ -6376,13 +6421,48 @@ var previewVariants = cva("bg-surface flex min-h-0 flex-col overflow-hidden", {
|
|
|
6376
6421
|
},
|
|
6377
6422
|
defaultVariants: { variant: "modal" }
|
|
6378
6423
|
});
|
|
6424
|
+
var MIN_ZOOM = 0.5;
|
|
6425
|
+
var MAX_ZOOM = 2;
|
|
6426
|
+
var ZOOM_STEP = 0.25;
|
|
6427
|
+
var BASE_PAGE_WIDTH = 820;
|
|
6428
|
+
var clampZoom = (z) => Math.min(MAX_ZOOM, Math.max(MIN_ZOOM, Math.round(z * 100) / 100));
|
|
6379
6429
|
var headerAction = cn(
|
|
6380
6430
|
"inline-flex size-7 shrink-0 items-center justify-center",
|
|
6381
6431
|
"rounded-icon text-fg-4 transition-colors duration-[var(--duration-fast)] ease-[var(--ease-out-quart)] motion-reduce:transition-none",
|
|
6382
6432
|
"hover:bg-overlay-hover hover:text-fg",
|
|
6383
6433
|
"focus-visible:[box-shadow:var(--shadow-focus-ring)] focus-visible:outline-none"
|
|
6384
6434
|
);
|
|
6385
|
-
var
|
|
6435
|
+
var zoomAction = cn(
|
|
6436
|
+
"inline-flex size-7 shrink-0 items-center justify-center",
|
|
6437
|
+
"rounded-icon text-fg-3 transition-colors duration-[var(--duration-fast)] ease-[var(--ease-out-quart)] motion-reduce:transition-none",
|
|
6438
|
+
"hover:bg-overlay-hover hover:text-fg",
|
|
6439
|
+
"focus-visible:[box-shadow:var(--shadow-focus-ring)] focus-visible:outline-none",
|
|
6440
|
+
"disabled:pointer-events-none disabled:opacity-40"
|
|
6441
|
+
);
|
|
6442
|
+
var zoomLabel = cn(
|
|
6443
|
+
"inline-flex h-7 min-w-[3.25rem] items-center justify-center px-2",
|
|
6444
|
+
"rounded-icon text-fg-3 text-xs font-medium tabular-nums",
|
|
6445
|
+
"transition-colors duration-[var(--duration-fast)] ease-[var(--ease-out-quart)] motion-reduce:transition-none",
|
|
6446
|
+
"hover:bg-overlay-hover hover:text-fg",
|
|
6447
|
+
"focus-visible:[box-shadow:var(--shadow-focus-ring)] focus-visible:outline-none"
|
|
6448
|
+
);
|
|
6449
|
+
var PdfPreview = forwardRef(function PdfPreview2({
|
|
6450
|
+
src,
|
|
6451
|
+
pages,
|
|
6452
|
+
fileName,
|
|
6453
|
+
onDownload,
|
|
6454
|
+
onApprove,
|
|
6455
|
+
approved,
|
|
6456
|
+
onReject,
|
|
6457
|
+
rejected,
|
|
6458
|
+
onClose,
|
|
6459
|
+
variant,
|
|
6460
|
+
zoomable,
|
|
6461
|
+
className,
|
|
6462
|
+
...props
|
|
6463
|
+
}, ref) {
|
|
6464
|
+
const [zoom, setZoom] = useState(1);
|
|
6465
|
+
const zoomPercent = Math.round(zoom * 100);
|
|
6386
6466
|
return /* @__PURE__ */ jsxs("div", { ref, className: cn(previewVariants({ variant }), className), ...props, children: [
|
|
6387
6467
|
fileName && /* @__PURE__ */ jsxs("div", { className: "border-rule bg-surface flex shrink-0 items-center gap-3 border-b px-4 py-3", children: [
|
|
6388
6468
|
/* @__PURE__ */ jsx(
|
|
@@ -6394,7 +6474,56 @@ var PdfPreview = forwardRef(function PdfPreview2({ src, pages, fileName, onDownl
|
|
|
6394
6474
|
}
|
|
6395
6475
|
),
|
|
6396
6476
|
/* @__PURE__ */ jsx("span", { className: "text-fg line-clamp-1 flex-1 text-sm font-medium", children: fileName }),
|
|
6397
|
-
|
|
6477
|
+
onApprove && (approved ? /* @__PURE__ */ jsxs("span", { className: "bg-success-bg text-success-fg rounded-icon inline-flex h-7 shrink-0 items-center gap-1.5 px-2.5 text-xs font-semibold", children: [
|
|
6478
|
+
/* @__PURE__ */ jsx(CheckIcon, { className: "size-4", "aria-hidden": "true" }),
|
|
6479
|
+
"Approved"
|
|
6480
|
+
] }) : /* @__PURE__ */ jsxs(
|
|
6481
|
+
"button",
|
|
6482
|
+
{
|
|
6483
|
+
type: "button",
|
|
6484
|
+
onClick: onApprove,
|
|
6485
|
+
className: cn(
|
|
6486
|
+
"rounded-icon inline-flex h-7 shrink-0 items-center gap-1.5 px-2.5 text-xs font-semibold",
|
|
6487
|
+
"bg-success-fg text-fg-on-success hover:bg-success-fg-hover active:bg-success-fg-active",
|
|
6488
|
+
"transition-colors duration-[var(--duration-fast)] ease-[var(--ease-out-quart)] motion-reduce:transition-none",
|
|
6489
|
+
"focus-visible:[box-shadow:var(--shadow-focus-ring)] focus-visible:outline-none"
|
|
6490
|
+
),
|
|
6491
|
+
children: [
|
|
6492
|
+
/* @__PURE__ */ jsx(CheckIcon, { className: "size-4", "aria-hidden": "true" }),
|
|
6493
|
+
"Approve"
|
|
6494
|
+
]
|
|
6495
|
+
}
|
|
6496
|
+
)),
|
|
6497
|
+
onReject && (rejected ? /* @__PURE__ */ jsxs("span", { className: "bg-danger-bg text-danger-fg rounded-icon inline-flex h-7 shrink-0 items-center gap-1.5 px-2.5 text-xs font-semibold", children: [
|
|
6498
|
+
/* @__PURE__ */ jsx(AlertTriangleIcon, { className: "size-4", "aria-hidden": "true" }),
|
|
6499
|
+
"Rejected"
|
|
6500
|
+
] }) : /* @__PURE__ */ jsxs(
|
|
6501
|
+
"button",
|
|
6502
|
+
{
|
|
6503
|
+
type: "button",
|
|
6504
|
+
onClick: onReject,
|
|
6505
|
+
className: cn(
|
|
6506
|
+
"rounded-icon inline-flex h-7 shrink-0 items-center gap-1.5 px-2.5 text-xs font-semibold",
|
|
6507
|
+
"bg-danger-fg text-fg-on-danger hover:bg-danger-fg-hover active:bg-danger-fg-active",
|
|
6508
|
+
"transition-colors duration-[var(--duration-fast)] ease-[var(--ease-out-quart)] motion-reduce:transition-none",
|
|
6509
|
+
"focus-visible:[box-shadow:var(--shadow-focus-ring)] focus-visible:outline-none"
|
|
6510
|
+
),
|
|
6511
|
+
children: [
|
|
6512
|
+
/* @__PURE__ */ jsx(AlertTriangleIcon, { className: "size-4", "aria-hidden": "true" }),
|
|
6513
|
+
"Reject"
|
|
6514
|
+
]
|
|
6515
|
+
}
|
|
6516
|
+
)),
|
|
6517
|
+
onDownload && /* @__PURE__ */ jsx(
|
|
6518
|
+
"button",
|
|
6519
|
+
{
|
|
6520
|
+
type: "button",
|
|
6521
|
+
onClick: onDownload,
|
|
6522
|
+
"aria-label": "Download",
|
|
6523
|
+
className: headerAction,
|
|
6524
|
+
children: /* @__PURE__ */ jsx(DownloadIcon, { className: "size-4", "aria-hidden": "true" })
|
|
6525
|
+
}
|
|
6526
|
+
),
|
|
6398
6527
|
onClose && /* @__PURE__ */ jsx("button", { type: "button", onClick: onClose, "aria-label": "Close", className: headerAction, children: /* @__PURE__ */ jsx(XIcon, { className: "size-4", "aria-hidden": "true" }) })
|
|
6399
6528
|
] }),
|
|
6400
6529
|
src ? /* @__PURE__ */ jsx(
|
|
@@ -6404,15 +6533,72 @@ var PdfPreview = forwardRef(function PdfPreview2({ src, pages, fileName, onDownl
|
|
|
6404
6533
|
title: fileName ?? "PDF preview",
|
|
6405
6534
|
className: "bg-bg-2 min-h-0 flex-1 border-0"
|
|
6406
6535
|
}
|
|
6407
|
-
) : pages && pages.length > 0 ? /* @__PURE__ */
|
|
6408
|
-
"
|
|
6409
|
-
|
|
6410
|
-
|
|
6411
|
-
|
|
6412
|
-
|
|
6413
|
-
|
|
6414
|
-
|
|
6415
|
-
|
|
6536
|
+
) : pages && pages.length > 0 ? /* @__PURE__ */ jsxs("div", { className: "relative flex min-h-0 flex-1 flex-col", children: [
|
|
6537
|
+
/* @__PURE__ */ jsx("div", { className: "scrollbar-thin bg-bg-2 min-h-0 flex-1 overflow-auto p-4 sm:p-6", children: /* @__PURE__ */ jsx(
|
|
6538
|
+
"div",
|
|
6539
|
+
{
|
|
6540
|
+
className: cn("mx-auto flex flex-col gap-4", !zoomable && "max-w-[820px]"),
|
|
6541
|
+
style: zoomable ? {
|
|
6542
|
+
width: Math.round(BASE_PAGE_WIDTH * zoom),
|
|
6543
|
+
maxWidth: zoom <= 1 ? "100%" : void 0
|
|
6544
|
+
} : void 0,
|
|
6545
|
+
children: pages.map((page, i) => /* @__PURE__ */ jsx(
|
|
6546
|
+
"img",
|
|
6547
|
+
{
|
|
6548
|
+
src: page,
|
|
6549
|
+
alt: `Page ${i + 1}`,
|
|
6550
|
+
className: "rounded-input border-rule shadow-card bg-surface w-full border"
|
|
6551
|
+
},
|
|
6552
|
+
i
|
|
6553
|
+
))
|
|
6554
|
+
}
|
|
6555
|
+
) }),
|
|
6556
|
+
zoomable && /* @__PURE__ */ jsxs(
|
|
6557
|
+
"div",
|
|
6558
|
+
{
|
|
6559
|
+
role: "group",
|
|
6560
|
+
"aria-label": "Zoom controls",
|
|
6561
|
+
className: "border-rule bg-surface shadow-pop rounded-pill absolute bottom-4 left-1/2 flex -translate-x-1/2 items-center gap-0.5 border p-1",
|
|
6562
|
+
children: [
|
|
6563
|
+
/* @__PURE__ */ jsx(
|
|
6564
|
+
"button",
|
|
6565
|
+
{
|
|
6566
|
+
type: "button",
|
|
6567
|
+
onClick: () => setZoom((z) => clampZoom(z - ZOOM_STEP)),
|
|
6568
|
+
disabled: zoom <= MIN_ZOOM,
|
|
6569
|
+
"aria-label": "Zoom out",
|
|
6570
|
+
className: zoomAction,
|
|
6571
|
+
children: /* @__PURE__ */ jsx(ZoomOutIcon, { className: "size-4", "aria-hidden": "true" })
|
|
6572
|
+
}
|
|
6573
|
+
),
|
|
6574
|
+
/* @__PURE__ */ jsxs(
|
|
6575
|
+
"button",
|
|
6576
|
+
{
|
|
6577
|
+
type: "button",
|
|
6578
|
+
onClick: () => setZoom(1),
|
|
6579
|
+
"aria-label": `Zoom ${zoomPercent}%, reset to 100%`,
|
|
6580
|
+
className: zoomLabel,
|
|
6581
|
+
children: [
|
|
6582
|
+
zoomPercent,
|
|
6583
|
+
"%"
|
|
6584
|
+
]
|
|
6585
|
+
}
|
|
6586
|
+
),
|
|
6587
|
+
/* @__PURE__ */ jsx(
|
|
6588
|
+
"button",
|
|
6589
|
+
{
|
|
6590
|
+
type: "button",
|
|
6591
|
+
onClick: () => setZoom((z) => clampZoom(z + ZOOM_STEP)),
|
|
6592
|
+
disabled: zoom >= MAX_ZOOM,
|
|
6593
|
+
"aria-label": "Zoom in",
|
|
6594
|
+
className: zoomAction,
|
|
6595
|
+
children: /* @__PURE__ */ jsx(ZoomInIcon, { className: "size-4", "aria-hidden": "true" })
|
|
6596
|
+
}
|
|
6597
|
+
)
|
|
6598
|
+
]
|
|
6599
|
+
}
|
|
6600
|
+
)
|
|
6601
|
+
] }) : /* @__PURE__ */ jsxs("div", { className: "bg-bg-2 text-fg-4 flex min-h-0 flex-1 flex-col items-center justify-center gap-2 p-8", children: [
|
|
6416
6602
|
/* @__PURE__ */ jsx(FileTextIcon, { className: "size-8", "aria-hidden": "true" }),
|
|
6417
6603
|
/* @__PURE__ */ jsx("p", { className: "text-sm", children: "No preview available" })
|
|
6418
6604
|
] })
|
|
@@ -8271,6 +8457,10 @@ var SpreadsheetPreview = forwardRef(
|
|
|
8271
8457
|
minColumns = 0,
|
|
8272
8458
|
fileName,
|
|
8273
8459
|
onDownload,
|
|
8460
|
+
onApprove,
|
|
8461
|
+
approved,
|
|
8462
|
+
onReject,
|
|
8463
|
+
rejected,
|
|
8274
8464
|
onClose,
|
|
8275
8465
|
variant,
|
|
8276
8466
|
className,
|
|
@@ -8291,6 +8481,46 @@ var SpreadsheetPreview = forwardRef(
|
|
|
8291
8481
|
}
|
|
8292
8482
|
),
|
|
8293
8483
|
/* @__PURE__ */ jsx("span", { className: "text-fg line-clamp-1 flex-1 text-sm font-medium", children: fileName }),
|
|
8484
|
+
onApprove && (approved ? /* @__PURE__ */ jsxs("span", { className: "bg-success-bg text-success-fg rounded-icon inline-flex h-7 shrink-0 items-center gap-1.5 px-2.5 text-xs font-semibold", children: [
|
|
8485
|
+
/* @__PURE__ */ jsx(CheckIcon, { className: "size-4", "aria-hidden": "true" }),
|
|
8486
|
+
"Approved"
|
|
8487
|
+
] }) : /* @__PURE__ */ jsxs(
|
|
8488
|
+
"button",
|
|
8489
|
+
{
|
|
8490
|
+
type: "button",
|
|
8491
|
+
onClick: onApprove,
|
|
8492
|
+
className: cn(
|
|
8493
|
+
"rounded-icon inline-flex h-7 shrink-0 items-center gap-1.5 px-2.5 text-xs font-semibold",
|
|
8494
|
+
"bg-success-fg text-fg-on-success hover:bg-success-fg-hover active:bg-success-fg-active",
|
|
8495
|
+
"transition-colors duration-[var(--duration-fast)] ease-[var(--ease-out-quart)] motion-reduce:transition-none",
|
|
8496
|
+
"focus-visible:[box-shadow:var(--shadow-focus-ring)] focus-visible:outline-none"
|
|
8497
|
+
),
|
|
8498
|
+
children: [
|
|
8499
|
+
/* @__PURE__ */ jsx(CheckIcon, { className: "size-4", "aria-hidden": "true" }),
|
|
8500
|
+
"Approve"
|
|
8501
|
+
]
|
|
8502
|
+
}
|
|
8503
|
+
)),
|
|
8504
|
+
onReject && (rejected ? /* @__PURE__ */ jsxs("span", { className: "bg-danger-bg text-danger-fg rounded-icon inline-flex h-7 shrink-0 items-center gap-1.5 px-2.5 text-xs font-semibold", children: [
|
|
8505
|
+
/* @__PURE__ */ jsx(AlertTriangleIcon, { className: "size-4", "aria-hidden": "true" }),
|
|
8506
|
+
"Rejected"
|
|
8507
|
+
] }) : /* @__PURE__ */ jsxs(
|
|
8508
|
+
"button",
|
|
8509
|
+
{
|
|
8510
|
+
type: "button",
|
|
8511
|
+
onClick: onReject,
|
|
8512
|
+
className: cn(
|
|
8513
|
+
"rounded-icon inline-flex h-7 shrink-0 items-center gap-1.5 px-2.5 text-xs font-semibold",
|
|
8514
|
+
"bg-danger-fg text-fg-on-danger hover:bg-danger-fg-hover active:bg-danger-fg-active",
|
|
8515
|
+
"transition-colors duration-[var(--duration-fast)] ease-[var(--ease-out-quart)] motion-reduce:transition-none",
|
|
8516
|
+
"focus-visible:[box-shadow:var(--shadow-focus-ring)] focus-visible:outline-none"
|
|
8517
|
+
),
|
|
8518
|
+
children: [
|
|
8519
|
+
/* @__PURE__ */ jsx(AlertTriangleIcon, { className: "size-4", "aria-hidden": "true" }),
|
|
8520
|
+
"Reject"
|
|
8521
|
+
]
|
|
8522
|
+
}
|
|
8523
|
+
)),
|
|
8294
8524
|
onDownload && /* @__PURE__ */ jsx(
|
|
8295
8525
|
"button",
|
|
8296
8526
|
{
|
|
@@ -8332,7 +8562,7 @@ var SpreadsheetPreview = forwardRef(
|
|
|
8332
8562
|
/* @__PURE__ */ jsx(
|
|
8333
8563
|
"th",
|
|
8334
8564
|
{
|
|
8335
|
-
className: cn(headerCell, "
|
|
8565
|
+
className: cn(headerCell, "top-0 left-0 z-20 w-11 min-w-11"),
|
|
8336
8566
|
"aria-hidden": "true"
|
|
8337
8567
|
}
|
|
8338
8568
|
),
|
|
@@ -8362,8 +8592,8 @@ var SpreadsheetPreview = forwardRef(
|
|
|
8362
8592
|
"td",
|
|
8363
8593
|
{
|
|
8364
8594
|
className: cn(
|
|
8365
|
-
"border-rule-soft text-fg border-
|
|
8366
|
-
"h-8
|
|
8595
|
+
"border-rule-soft text-fg border-r border-b",
|
|
8596
|
+
"h-8 max-w-[260px] min-w-[88px] truncate px-3 text-sm",
|
|
8367
8597
|
typeof data?.[r]?.[c] === "number" && "text-right tabular-nums"
|
|
8368
8598
|
),
|
|
8369
8599
|
children: data?.[r]?.[c] ?? ""
|
|
@@ -10875,95 +11105,884 @@ var ProposalPaymentCapture = forwardRef(
|
|
|
10875
11105
|
}
|
|
10876
11106
|
);
|
|
10877
11107
|
ProposalPaymentCapture.displayName = "ProposalPaymentCapture";
|
|
10878
|
-
|
|
10879
|
-
|
|
10880
|
-
|
|
10881
|
-
|
|
10882
|
-
|
|
10883
|
-
|
|
10884
|
-
|
|
10885
|
-
|
|
10886
|
-
|
|
10887
|
-
|
|
10888
|
-
|
|
10889
|
-
|
|
10890
|
-
|
|
10891
|
-
|
|
10892
|
-
|
|
10893
|
-
|
|
10894
|
-
|
|
10895
|
-
|
|
10896
|
-
|
|
10897
|
-
|
|
10898
|
-
|
|
10899
|
-
|
|
10900
|
-
|
|
10901
|
-
|
|
10902
|
-
|
|
10903
|
-
|
|
10904
|
-
|
|
10905
|
-
|
|
10906
|
-
|
|
10907
|
-
|
|
10908
|
-
|
|
10909
|
-
|
|
10910
|
-
}
|
|
10911
|
-
) })
|
|
10912
|
-
]
|
|
10913
|
-
}
|
|
10914
|
-
);
|
|
10915
|
-
}
|
|
10916
|
-
function Field({ label, value, confirmed }) {
|
|
10917
|
-
return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-0.5", children: [
|
|
10918
|
-
/* @__PURE__ */ jsx("span", { className: "text-fg-3 text-[11px]", children: label }),
|
|
10919
|
-
/* @__PURE__ */ jsxs("span", { className: "text-fg inline-flex items-center gap-1 text-sm font-medium", children: [
|
|
10920
|
-
value,
|
|
10921
|
-
confirmed && /* @__PURE__ */ jsx(CheckIcon, { className: "text-success-fg size-3", strokeWidth: 3 })
|
|
10922
|
-
] })
|
|
10923
|
-
] });
|
|
10924
|
-
}
|
|
10925
|
-
var AIReceiptPanel = forwardRef(function AIReceiptPanel2({ state = "idle", result, onAttach, onRemove, onViewFile, className, ...props }, ref) {
|
|
10926
|
-
if (state === "reading") {
|
|
10927
|
-
return /* @__PURE__ */ jsxs(
|
|
10928
|
-
"div",
|
|
11108
|
+
var statusLabel = {
|
|
11109
|
+
"not-started": "Not started",
|
|
11110
|
+
"in-progress": "In progress",
|
|
11111
|
+
complete: "Complete",
|
|
11112
|
+
"needs-review": "Review"
|
|
11113
|
+
};
|
|
11114
|
+
var statusClassName = {
|
|
11115
|
+
"not-started": "bg-surface-2 text-fg-3 border-rule",
|
|
11116
|
+
"in-progress": "bg-pro-bg text-pro-fg border-pro-line",
|
|
11117
|
+
complete: "bg-success-bg text-success-fg border-success-line",
|
|
11118
|
+
"needs-review": "bg-warning-bg text-warning-fg border-warning-line"
|
|
11119
|
+
};
|
|
11120
|
+
var statusDotClassName = {
|
|
11121
|
+
"not-started": "bg-rule-strong",
|
|
11122
|
+
"in-progress": "bg-warning-fg",
|
|
11123
|
+
complete: "bg-success-fg",
|
|
11124
|
+
"needs-review": "bg-brand-audit"
|
|
11125
|
+
};
|
|
11126
|
+
var QuestionnairePanel = forwardRef(
|
|
11127
|
+
function QuestionnairePanel2({
|
|
11128
|
+
variant = "cards",
|
|
11129
|
+
eyebrow = "Questionnaire",
|
|
11130
|
+
title = "Tax organizer",
|
|
11131
|
+
description,
|
|
11132
|
+
sections = [],
|
|
11133
|
+
groups,
|
|
11134
|
+
activeId,
|
|
11135
|
+
onSelect,
|
|
11136
|
+
className,
|
|
11137
|
+
...props
|
|
11138
|
+
}, ref) {
|
|
11139
|
+
const navigationGroups = groups ?? (sections.length > 0 ? [
|
|
10929
11140
|
{
|
|
10930
|
-
|
|
10931
|
-
|
|
10932
|
-
"aria-
|
|
10933
|
-
|
|
10934
|
-
|
|
10935
|
-
className
|
|
10936
|
-
),
|
|
10937
|
-
...props,
|
|
10938
|
-
children: [
|
|
10939
|
-
/* @__PURE__ */ jsx(AiSpark, { size: 18, className: "motion-safe:animate-pulse" }),
|
|
10940
|
-
/* @__PURE__ */ jsxs("div", { children: [
|
|
10941
|
-
/* @__PURE__ */ jsx("p", { className: "text-fg text-sm font-medium", children: "Reading your receipt\u2026" }),
|
|
10942
|
-
/* @__PURE__ */ jsx("p", { className: "text-fg-3 text-xs", children: "Pulling the vendor, amount and a suggested category." })
|
|
10943
|
-
] })
|
|
10944
|
-
]
|
|
11141
|
+
id: "questionnaire",
|
|
11142
|
+
title: eyebrow,
|
|
11143
|
+
icon: /* @__PURE__ */ jsx(ListChecksIcon, { size: 14, "aria-hidden": "true" }),
|
|
11144
|
+
sections,
|
|
11145
|
+
defaultOpen: true
|
|
10945
11146
|
}
|
|
11147
|
+
] : []);
|
|
11148
|
+
const [openGroups, setOpenGroups] = useState(
|
|
11149
|
+
() => new Set(
|
|
11150
|
+
navigationGroups.filter((group) => group.defaultOpen !== false && group.sections.length > 0).map((group) => group.id)
|
|
11151
|
+
)
|
|
10946
11152
|
);
|
|
10947
|
-
|
|
10948
|
-
|
|
11153
|
+
const selectedCardRef = useRef(null);
|
|
11154
|
+
useEffect(() => {
|
|
11155
|
+
selectedCardRef.current?.scrollIntoView({
|
|
11156
|
+
behavior: "smooth",
|
|
11157
|
+
block: "center",
|
|
11158
|
+
inline: "center"
|
|
11159
|
+
});
|
|
11160
|
+
}, [activeId]);
|
|
11161
|
+
const toggleGroup = (id) => {
|
|
11162
|
+
setOpenGroups((prev) => {
|
|
11163
|
+
const next = new Set(prev);
|
|
11164
|
+
if (next.has(id)) next.delete(id);
|
|
11165
|
+
else next.add(id);
|
|
11166
|
+
return next;
|
|
11167
|
+
});
|
|
11168
|
+
};
|
|
11169
|
+
if (variant === "navigation") {
|
|
11170
|
+
return /* @__PURE__ */ jsx(
|
|
11171
|
+
"aside",
|
|
11172
|
+
{
|
|
11173
|
+
ref,
|
|
11174
|
+
className: cn(
|
|
11175
|
+
"border-rule bg-surface shadow-card flex h-full min-h-[560px] flex-col overflow-hidden rounded-[14px] border",
|
|
11176
|
+
className
|
|
11177
|
+
),
|
|
11178
|
+
...props,
|
|
11179
|
+
children: /* @__PURE__ */ jsx("nav", { className: "overflow-y-auto py-1", "aria-label": title, children: navigationGroups.map((group) => {
|
|
11180
|
+
const isOpen = openGroups.has(group.id);
|
|
11181
|
+
const hasSections = group.sections.length > 0;
|
|
11182
|
+
return /* @__PURE__ */ jsxs("div", { className: "border-rule-soft border-b last:border-b-0", children: [
|
|
11183
|
+
/* @__PURE__ */ jsxs(
|
|
11184
|
+
"button",
|
|
11185
|
+
{
|
|
11186
|
+
type: "button",
|
|
11187
|
+
onClick: () => toggleGroup(group.id),
|
|
11188
|
+
"aria-expanded": isOpen,
|
|
11189
|
+
className: cn(
|
|
11190
|
+
"text-pro-fg flex h-8 w-full items-center gap-2 px-4 text-left text-[11px] font-bold tracking-[0.08em] uppercase",
|
|
11191
|
+
"hover:bg-pro-bg/50 transition-colors duration-[var(--duration-fast)]",
|
|
11192
|
+
"focus-visible:[box-shadow:var(--shadow-focus-ring)] focus-visible:outline-none"
|
|
11193
|
+
),
|
|
11194
|
+
children: [
|
|
11195
|
+
/* @__PURE__ */ jsx("span", { className: "text-pro-fg flex size-4 shrink-0 items-center justify-center", children: group.icon ?? /* @__PURE__ */ jsx(ListChecksIcon, { size: 14, "aria-hidden": "true" }) }),
|
|
11196
|
+
/* @__PURE__ */ jsx("span", { className: "min-w-0 flex-1 truncate", children: group.title }),
|
|
11197
|
+
hasSections && /* @__PURE__ */ jsx(
|
|
11198
|
+
ChevronDownIcon,
|
|
11199
|
+
{
|
|
11200
|
+
size: 13,
|
|
11201
|
+
"aria-hidden": "true",
|
|
11202
|
+
className: cn(
|
|
11203
|
+
"text-pro-fg transition-transform duration-[var(--duration-fast)]",
|
|
11204
|
+
!isOpen && "-rotate-90"
|
|
11205
|
+
)
|
|
11206
|
+
}
|
|
11207
|
+
)
|
|
11208
|
+
]
|
|
11209
|
+
}
|
|
11210
|
+
),
|
|
11211
|
+
isOpen && hasSections && /* @__PURE__ */ jsx("div", { className: "pb-1", children: group.sections.map((section) => {
|
|
11212
|
+
const selected = section.id === activeId;
|
|
11213
|
+
const status = section.status ?? "not-started";
|
|
11214
|
+
return /* @__PURE__ */ jsxs(
|
|
11215
|
+
"button",
|
|
11216
|
+
{
|
|
11217
|
+
type: "button",
|
|
11218
|
+
onClick: () => onSelect?.(section.id),
|
|
11219
|
+
"data-active": selected ? "true" : void 0,
|
|
11220
|
+
className: cn(
|
|
11221
|
+
"group flex h-8 w-full items-center gap-3 px-5 text-left",
|
|
11222
|
+
"text-fg-2 transition-colors duration-[var(--duration-fast)]",
|
|
11223
|
+
"hover:bg-bg-2 hover:text-fg",
|
|
11224
|
+
"focus-visible:[box-shadow:var(--shadow-focus-ring)] focus-visible:outline-none",
|
|
11225
|
+
selected && "bg-pro-bg text-pro-fg font-semibold"
|
|
11226
|
+
),
|
|
11227
|
+
children: [
|
|
11228
|
+
/* @__PURE__ */ jsx(
|
|
11229
|
+
"span",
|
|
11230
|
+
{
|
|
11231
|
+
className: cn(
|
|
11232
|
+
"text-fg-3 flex size-4 shrink-0 items-center justify-center",
|
|
11233
|
+
selected && "text-pro-fg"
|
|
11234
|
+
),
|
|
11235
|
+
children: section.icon
|
|
11236
|
+
}
|
|
11237
|
+
),
|
|
11238
|
+
/* @__PURE__ */ jsx("span", { className: "min-w-0 flex-1 truncate text-[13px]", children: section.title }),
|
|
11239
|
+
/* @__PURE__ */ jsx(
|
|
11240
|
+
"span",
|
|
11241
|
+
{
|
|
11242
|
+
"aria-label": statusLabel[status],
|
|
11243
|
+
className: cn(
|
|
11244
|
+
"size-1.5 shrink-0 rounded-full",
|
|
11245
|
+
statusDotClassName[status]
|
|
11246
|
+
)
|
|
11247
|
+
}
|
|
11248
|
+
)
|
|
11249
|
+
]
|
|
11250
|
+
},
|
|
11251
|
+
section.id
|
|
11252
|
+
);
|
|
11253
|
+
}) })
|
|
11254
|
+
] }, group.id);
|
|
11255
|
+
}) })
|
|
11256
|
+
}
|
|
11257
|
+
);
|
|
11258
|
+
}
|
|
11259
|
+
const totalQuestions = sections.reduce((sum, section) => sum + (section.questionCount ?? 0), 0);
|
|
11260
|
+
const completedQuestions = sections.reduce(
|
|
11261
|
+
(sum, section) => sum + (section.completedCount ?? 0),
|
|
11262
|
+
0
|
|
11263
|
+
);
|
|
11264
|
+
const percent = totalQuestions > 0 ? Math.round(completedQuestions / totalQuestions * 100) : 0;
|
|
10949
11265
|
return /* @__PURE__ */ jsxs(
|
|
10950
|
-
"
|
|
11266
|
+
"aside",
|
|
10951
11267
|
{
|
|
10952
11268
|
ref,
|
|
10953
11269
|
className: cn(
|
|
10954
|
-
"border-rule bg-surface-
|
|
11270
|
+
"border-rule bg-surface shadow-card flex h-auto min-h-0 flex-col rounded-[20px] border p-4",
|
|
11271
|
+
"lg:sticky lg:top-6 lg:h-[calc(100vh-48px)] lg:max-h-[760px] lg:min-h-[560px]",
|
|
10955
11272
|
className
|
|
10956
11273
|
),
|
|
10957
11274
|
...props,
|
|
10958
11275
|
children: [
|
|
10959
|
-
/* @__PURE__ */ jsxs("div", { className: "
|
|
10960
|
-
/* @__PURE__ */
|
|
10961
|
-
|
|
10962
|
-
|
|
10963
|
-
|
|
10964
|
-
|
|
11276
|
+
/* @__PURE__ */ jsxs("div", { className: "px-1 pb-4", children: [
|
|
11277
|
+
/* @__PURE__ */ jsx("p", { className: "text-pro-fg text-[11px] font-bold tracking-[0.12em] uppercase", children: eyebrow }),
|
|
11278
|
+
/* @__PURE__ */ jsx("h2", { className: "text-fg mt-1 text-[21px] leading-7 font-bold", children: title }),
|
|
11279
|
+
description && /* @__PURE__ */ jsx("p", { className: "text-fg-3 mt-2 text-[13px] leading-5", children: description }),
|
|
11280
|
+
totalQuestions > 0 && /* @__PURE__ */ jsxs("div", { className: "mt-4", children: [
|
|
11281
|
+
/* @__PURE__ */ jsxs("div", { className: "mb-2 flex items-center justify-between gap-3", children: [
|
|
11282
|
+
/* @__PURE__ */ jsx("span", { className: "text-fg-3 text-[12px] font-semibold", children: "Progress" }),
|
|
11283
|
+
/* @__PURE__ */ jsxs("span", { className: "text-fg text-[12px] font-bold tabular-nums", children: [
|
|
11284
|
+
percent,
|
|
11285
|
+
"%"
|
|
11286
|
+
] })
|
|
11287
|
+
] }),
|
|
11288
|
+
/* @__PURE__ */ jsx("div", { className: "bg-surface-3 h-2 overflow-hidden rounded-full", children: /* @__PURE__ */ jsx(
|
|
11289
|
+
"div",
|
|
11290
|
+
{
|
|
11291
|
+
className: "bg-pro-fg h-full rounded-full transition-[width] duration-[var(--duration-normal)] ease-[var(--ease-out-quart)]",
|
|
11292
|
+
style: { width: `${percent}%` }
|
|
11293
|
+
}
|
|
11294
|
+
) })
|
|
11295
|
+
] })
|
|
10965
11296
|
] }),
|
|
10966
|
-
/* @__PURE__ */
|
|
11297
|
+
/* @__PURE__ */ jsxs("div", { className: "relative min-h-0 flex-1", children: [
|
|
11298
|
+
/* @__PURE__ */ jsx("div", { className: "from-surface pointer-events-none absolute inset-y-0 left-0 z-10 w-6 bg-gradient-to-r to-transparent lg:hidden" }),
|
|
11299
|
+
/* @__PURE__ */ jsx("div", { className: "from-surface pointer-events-none absolute inset-y-0 right-0 z-10 w-6 bg-gradient-to-l to-transparent lg:hidden" }),
|
|
11300
|
+
/* @__PURE__ */ jsx("div", { className: "from-surface pointer-events-none absolute inset-x-0 top-0 z-10 hidden h-1 bg-gradient-to-b to-transparent lg:block" }),
|
|
11301
|
+
/* @__PURE__ */ jsx("div", { className: "from-surface pointer-events-none absolute inset-x-0 bottom-0 z-10 hidden h-5 bg-gradient-to-t to-transparent lg:block" }),
|
|
11302
|
+
/* @__PURE__ */ jsx(
|
|
11303
|
+
"div",
|
|
11304
|
+
{
|
|
11305
|
+
className: cn(
|
|
11306
|
+
"flex snap-x snap-mandatory gap-3 overflow-x-auto overflow-y-hidden overscroll-x-contain scroll-smooth px-1 pt-2 pb-2",
|
|
11307
|
+
"[scroll-padding-inline:2rem] lg:[scroll-padding-inline:0] lg:[scroll-padding-block:5rem]",
|
|
11308
|
+
"motion-reduce:scroll-auto",
|
|
11309
|
+
"[scrollbar-color:var(--color-pro-fg)_transparent] [scrollbar-width:thin]",
|
|
11310
|
+
"[&::-webkit-scrollbar]:h-2 [&::-webkit-scrollbar]:w-2",
|
|
11311
|
+
"[&::-webkit-scrollbar-track]:bg-transparent",
|
|
11312
|
+
"[&::-webkit-scrollbar-thumb]:bg-pro-fg/35 [&::-webkit-scrollbar-thumb]:rounded-full",
|
|
11313
|
+
"hover:[&::-webkit-scrollbar-thumb]:bg-pro-fg/55",
|
|
11314
|
+
"lg:grid lg:max-h-full lg:snap-none lg:gap-2 lg:overflow-x-hidden lg:overflow-y-auto lg:pr-1"
|
|
11315
|
+
),
|
|
11316
|
+
children: sections.map((section, index) => {
|
|
11317
|
+
const selected = section.id === activeId;
|
|
11318
|
+
const status = section.status ?? "not-started";
|
|
11319
|
+
const itemPercent = section.questionCount && section.questionCount > 0 ? Math.round((section.completedCount ?? 0) / section.questionCount * 100) : 0;
|
|
11320
|
+
return /* @__PURE__ */ jsxs(
|
|
11321
|
+
"button",
|
|
11322
|
+
{
|
|
11323
|
+
ref: selected ? selectedCardRef : void 0,
|
|
11324
|
+
type: "button",
|
|
11325
|
+
onClick: () => onSelect?.(section.id),
|
|
11326
|
+
"data-active": selected ? "true" : void 0,
|
|
11327
|
+
className: cn(
|
|
11328
|
+
"group border-rule bg-surface flex w-full snap-center gap-3 overflow-hidden rounded-[16px] border p-3 text-left will-change-transform",
|
|
11329
|
+
selected ? "max-w-[300px] min-w-[280px] items-start sm:min-w-[300px] lg:max-w-none lg:min-w-0" : "max-w-[240px] min-w-[220px] items-center sm:min-w-[240px] lg:max-w-none lg:min-w-0",
|
|
11330
|
+
"transition-[background-color,border-color,box-shadow,transform,min-width,max-width] duration-[var(--duration-normal)] ease-[var(--ease-out-quart)] motion-reduce:transition-none",
|
|
11331
|
+
"hover:border-pro-line hover:bg-pro-bg/40 hover:-translate-y-0.5 lg:hover:translate-x-0.5 lg:hover:translate-y-0",
|
|
11332
|
+
"focus-visible:[box-shadow:var(--shadow-focus-ring)] focus-visible:outline-none",
|
|
11333
|
+
selected && "border-pro-line bg-pro-bg shadow-card relative z-10 scale-[1.02]"
|
|
11334
|
+
),
|
|
11335
|
+
children: [
|
|
11336
|
+
/* @__PURE__ */ jsx(
|
|
11337
|
+
"span",
|
|
11338
|
+
{
|
|
11339
|
+
className: cn(
|
|
11340
|
+
"mt-0.5 grid size-8 shrink-0 place-items-center rounded-full text-[12px] font-bold",
|
|
11341
|
+
status === "complete" ? "bg-success-bg text-success-fg" : selected ? "bg-pro-fg text-fg-on-pro" : "bg-surface-2 text-fg-3",
|
|
11342
|
+
!selected && "mt-0"
|
|
11343
|
+
),
|
|
11344
|
+
"aria-hidden": "true",
|
|
11345
|
+
children: status === "complete" ? /* @__PURE__ */ jsx(CheckCircleSolidIcon, { size: 18 }) : index + 1
|
|
11346
|
+
}
|
|
11347
|
+
),
|
|
11348
|
+
/* @__PURE__ */ jsxs("span", { className: "min-w-0 flex-1", children: [
|
|
11349
|
+
/* @__PURE__ */ jsxs("span", { className: "flex items-start justify-between gap-3", children: [
|
|
11350
|
+
/* @__PURE__ */ jsx("span", { className: "text-fg line-clamp-1 text-[14px] leading-5 font-bold", children: section.title }),
|
|
11351
|
+
!selected ? section.questionCount != null && /* @__PURE__ */ jsxs("span", { className: "text-fg-4 shrink-0 text-[12px] font-bold tabular-nums", children: [
|
|
11352
|
+
section.completedCount ?? 0,
|
|
11353
|
+
"/",
|
|
11354
|
+
section.questionCount
|
|
11355
|
+
] }) : /* @__PURE__ */ jsx(
|
|
11356
|
+
"span",
|
|
11357
|
+
{
|
|
11358
|
+
className: cn(
|
|
11359
|
+
"shrink-0 rounded-full border px-2 py-0.5 text-[10.5px] font-bold",
|
|
11360
|
+
statusClassName[status]
|
|
11361
|
+
),
|
|
11362
|
+
children: statusLabel[status]
|
|
11363
|
+
}
|
|
11364
|
+
)
|
|
11365
|
+
] }),
|
|
11366
|
+
/* @__PURE__ */ jsx(
|
|
11367
|
+
"span",
|
|
11368
|
+
{
|
|
11369
|
+
className: cn(
|
|
11370
|
+
"grid transition-[grid-template-rows,opacity,transform,margin-top] duration-[var(--duration-slow)] ease-[var(--ease-out-quart)] motion-reduce:transition-none",
|
|
11371
|
+
selected ? "mt-1 translate-y-0 grid-rows-[1fr] opacity-100" : "mt-0 -translate-y-1 grid-rows-[0fr] opacity-0"
|
|
11372
|
+
),
|
|
11373
|
+
children: /* @__PURE__ */ jsxs("span", { className: "overflow-hidden", children: [
|
|
11374
|
+
section.description && /* @__PURE__ */ jsx("span", { className: "text-fg-3 mt-1 line-clamp-2 text-[12px] leading-5", children: section.description }),
|
|
11375
|
+
/* @__PURE__ */ jsxs("span", { className: "mt-3 flex items-center gap-2", children: [
|
|
11376
|
+
section.meta && /* @__PURE__ */ jsx("span", { className: "text-fg-4 line-clamp-1 text-[11.5px] font-semibold", children: section.meta }),
|
|
11377
|
+
section.questionCount != null && /* @__PURE__ */ jsxs("span", { className: "text-fg-4 ml-auto shrink-0 text-[11.5px] font-semibold tabular-nums", children: [
|
|
11378
|
+
section.completedCount ?? 0,
|
|
11379
|
+
"/",
|
|
11380
|
+
section.questionCount
|
|
11381
|
+
] })
|
|
11382
|
+
] }),
|
|
11383
|
+
section.questionCount != null && /* @__PURE__ */ jsx("span", { className: "bg-surface-3 mt-2 block h-1.5 overflow-hidden rounded-full", children: /* @__PURE__ */ jsx(
|
|
11384
|
+
"span",
|
|
11385
|
+
{
|
|
11386
|
+
className: cn(
|
|
11387
|
+
"block h-full rounded-full transition-[width] duration-[var(--duration-slow)] ease-[var(--ease-out-quart)] motion-reduce:transition-none",
|
|
11388
|
+
status === "complete" ? "bg-success-fg" : "bg-pro-fg"
|
|
11389
|
+
),
|
|
11390
|
+
style: { width: `${itemPercent}%` }
|
|
11391
|
+
}
|
|
11392
|
+
) })
|
|
11393
|
+
] })
|
|
11394
|
+
}
|
|
11395
|
+
)
|
|
11396
|
+
] })
|
|
11397
|
+
]
|
|
11398
|
+
},
|
|
11399
|
+
section.id
|
|
11400
|
+
);
|
|
11401
|
+
})
|
|
11402
|
+
}
|
|
11403
|
+
)
|
|
11404
|
+
] }),
|
|
11405
|
+
/* @__PURE__ */ jsx("div", { className: "border-rule mt-auto hidden border-t px-1 pt-3 lg:block", children: /* @__PURE__ */ jsxs("div", { className: "text-fg-3 flex items-center gap-2 text-[12px] leading-5", children: [
|
|
11406
|
+
/* @__PURE__ */ jsx(HelpCircleIcon, { size: 15, className: "text-pro-fg", "aria-hidden": "true" }),
|
|
11407
|
+
"Pick a section to load its related questions on the right."
|
|
11408
|
+
] }) })
|
|
11409
|
+
]
|
|
11410
|
+
}
|
|
11411
|
+
);
|
|
11412
|
+
}
|
|
11413
|
+
);
|
|
11414
|
+
QuestionnairePanel.displayName = "QuestionnairePanel";
|
|
11415
|
+
var defaultOptions = [
|
|
11416
|
+
{ value: "yes", label: "Yes" },
|
|
11417
|
+
{ value: "no", label: "No" },
|
|
11418
|
+
{ value: "not-sure", label: "Not sure" }
|
|
11419
|
+
];
|
|
11420
|
+
var Questions = forwardRef(function Questions2({
|
|
11421
|
+
index,
|
|
11422
|
+
title,
|
|
11423
|
+
description,
|
|
11424
|
+
type = "short-text",
|
|
11425
|
+
required = false,
|
|
11426
|
+
chrome = "card",
|
|
11427
|
+
sectionLabel,
|
|
11428
|
+
hideHeader = false,
|
|
11429
|
+
options = defaultOptions,
|
|
11430
|
+
value = "",
|
|
11431
|
+
values = [],
|
|
11432
|
+
placeholder,
|
|
11433
|
+
addressValue = {},
|
|
11434
|
+
tableColumns = [],
|
|
11435
|
+
tableRows = [],
|
|
11436
|
+
files = [],
|
|
11437
|
+
accept,
|
|
11438
|
+
maxSize,
|
|
11439
|
+
multiple,
|
|
11440
|
+
currencySymbol = "$",
|
|
11441
|
+
onValueChange,
|
|
11442
|
+
onValuesChange,
|
|
11443
|
+
onAddressChange,
|
|
11444
|
+
onTableRowsChange,
|
|
11445
|
+
onFilesSelected,
|
|
11446
|
+
className,
|
|
11447
|
+
...props
|
|
11448
|
+
}, ref) {
|
|
11449
|
+
const humanIndex = typeof index === "number" ? index + 1 : void 0;
|
|
11450
|
+
const isSectionHeader = type === "section-header";
|
|
11451
|
+
const isPlain = chrome === "plain" || isSectionHeader;
|
|
11452
|
+
const showHeader = isSectionHeader || !hideHeader;
|
|
11453
|
+
const toggleOption = (optionValue, checked) => {
|
|
11454
|
+
const nextValues = checked ? Array.from(/* @__PURE__ */ new Set([...values, optionValue])) : values.filter((item) => item !== optionValue);
|
|
11455
|
+
onValuesChange?.(nextValues);
|
|
11456
|
+
};
|
|
11457
|
+
const updateAddress = (key, nextValue) => {
|
|
11458
|
+
onAddressChange?.({ ...addressValue, [key]: nextValue });
|
|
11459
|
+
};
|
|
11460
|
+
const updateRow = (rowIndex, key, nextValue) => {
|
|
11461
|
+
onTableRowsChange?.(
|
|
11462
|
+
tableRows.map((row, index2) => index2 === rowIndex ? { ...row, [key]: nextValue } : row)
|
|
11463
|
+
);
|
|
11464
|
+
};
|
|
11465
|
+
const addRow = () => {
|
|
11466
|
+
const emptyRow = tableColumns.reduce(
|
|
11467
|
+
(row, column) => ({ ...row, [column.key]: "" }),
|
|
11468
|
+
{}
|
|
11469
|
+
);
|
|
11470
|
+
onTableRowsChange?.([...tableRows, emptyRow]);
|
|
11471
|
+
};
|
|
11472
|
+
const removeRow = (rowIndex) => {
|
|
11473
|
+
onTableRowsChange?.(tableRows.filter((_, index2) => index2 !== rowIndex));
|
|
11474
|
+
};
|
|
11475
|
+
return /* @__PURE__ */ jsxs(
|
|
11476
|
+
"section",
|
|
11477
|
+
{
|
|
11478
|
+
ref,
|
|
11479
|
+
className: cn(
|
|
11480
|
+
"font-body",
|
|
11481
|
+
isPlain ? "bg-transparent" : "border-rule bg-surface shadow-card rounded-[18px] border p-5",
|
|
11482
|
+
className
|
|
11483
|
+
),
|
|
11484
|
+
...props,
|
|
11485
|
+
children: [
|
|
11486
|
+
showHeader && /* @__PURE__ */ jsxs("div", { className: cn("flex items-start gap-3", !isSectionHeader && "mb-4"), children: [
|
|
11487
|
+
humanIndex && !isPlain && /* @__PURE__ */ jsx(
|
|
11488
|
+
"span",
|
|
11489
|
+
{
|
|
11490
|
+
"aria-hidden": "true",
|
|
11491
|
+
className: "bg-pro-bg text-pro-fg grid size-7 shrink-0 place-items-center rounded-full text-xs font-bold",
|
|
11492
|
+
children: humanIndex
|
|
11493
|
+
}
|
|
11494
|
+
),
|
|
11495
|
+
/* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
11496
|
+
(sectionLabel || isSectionHeader) && /* @__PURE__ */ jsx("p", { className: "text-pro-fg mb-1 text-[11px] font-bold tracking-[0.12em] uppercase", children: sectionLabel }),
|
|
11497
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [
|
|
11498
|
+
/* @__PURE__ */ jsx(
|
|
11499
|
+
"h3",
|
|
11500
|
+
{
|
|
11501
|
+
className: cn(
|
|
11502
|
+
"text-fg",
|
|
11503
|
+
isSectionHeader ? "text-[22px] leading-7 font-bold" : "text-[14px] leading-5 font-bold"
|
|
11504
|
+
),
|
|
11505
|
+
children: title
|
|
11506
|
+
}
|
|
11507
|
+
),
|
|
11508
|
+
required && /* @__PURE__ */ jsx("span", { className: "bg-pro-bg text-pro-fg rounded-full px-2 py-0.5 text-[11px] font-bold", children: "Required" })
|
|
11509
|
+
] }),
|
|
11510
|
+
description && type !== "consent-checkbox" && /* @__PURE__ */ jsx("p", { className: "text-fg-3 mt-1 text-[13px] leading-5", children: description })
|
|
11511
|
+
] })
|
|
11512
|
+
] }),
|
|
11513
|
+
type === "section-header" && null,
|
|
11514
|
+
type === "short-text" && /* @__PURE__ */ jsx(
|
|
11515
|
+
Input,
|
|
11516
|
+
{
|
|
11517
|
+
value,
|
|
11518
|
+
onChange: (event) => onValueChange?.(event.target.value),
|
|
11519
|
+
placeholder: placeholder ?? "Type your answer",
|
|
11520
|
+
"aria-label": title,
|
|
11521
|
+
className: "h-11 rounded-[12px] text-[14px]"
|
|
11522
|
+
}
|
|
11523
|
+
),
|
|
11524
|
+
type === "email" && /* @__PURE__ */ jsx(
|
|
11525
|
+
Input,
|
|
11526
|
+
{
|
|
11527
|
+
type: "email",
|
|
11528
|
+
value,
|
|
11529
|
+
onChange: (event) => onValueChange?.(event.target.value),
|
|
11530
|
+
placeholder: placeholder ?? "client@example.com",
|
|
11531
|
+
"aria-label": title,
|
|
11532
|
+
className: "h-11 rounded-[12px] text-[14px]"
|
|
11533
|
+
}
|
|
11534
|
+
),
|
|
11535
|
+
type === "phone" && /* @__PURE__ */ jsx(
|
|
11536
|
+
Input,
|
|
11537
|
+
{
|
|
11538
|
+
type: "tel",
|
|
11539
|
+
value,
|
|
11540
|
+
onChange: (event) => onValueChange?.(event.target.value),
|
|
11541
|
+
placeholder: placeholder ?? "(555) 123-4567",
|
|
11542
|
+
"aria-label": title,
|
|
11543
|
+
className: "h-11 rounded-[12px] text-[14px]"
|
|
11544
|
+
}
|
|
11545
|
+
),
|
|
11546
|
+
type === "ssn-sin" && /* @__PURE__ */ jsx(
|
|
11547
|
+
Input,
|
|
11548
|
+
{
|
|
11549
|
+
value,
|
|
11550
|
+
onChange: (event) => onValueChange?.(event.target.value),
|
|
11551
|
+
placeholder: placeholder ?? "Enter SSN or SIN",
|
|
11552
|
+
"aria-label": title,
|
|
11553
|
+
inputMode: "numeric",
|
|
11554
|
+
className: "h-11 rounded-[12px] text-[14px]"
|
|
11555
|
+
}
|
|
11556
|
+
),
|
|
11557
|
+
type === "date" && /* @__PURE__ */ jsx(
|
|
11558
|
+
Input,
|
|
11559
|
+
{
|
|
11560
|
+
type: "date",
|
|
11561
|
+
value,
|
|
11562
|
+
onChange: (event) => onValueChange?.(event.target.value),
|
|
11563
|
+
"aria-label": title,
|
|
11564
|
+
className: "h-11 rounded-[12px] text-[14px]"
|
|
11565
|
+
}
|
|
11566
|
+
),
|
|
11567
|
+
type === "number" && /* @__PURE__ */ jsx(
|
|
11568
|
+
Input,
|
|
11569
|
+
{
|
|
11570
|
+
type: "number",
|
|
11571
|
+
value,
|
|
11572
|
+
onChange: (event) => onValueChange?.(event.target.value),
|
|
11573
|
+
placeholder: placeholder ?? "0",
|
|
11574
|
+
"aria-label": title,
|
|
11575
|
+
className: "h-11 rounded-[12px] text-[14px]"
|
|
11576
|
+
}
|
|
11577
|
+
),
|
|
11578
|
+
type === "currency" && /* @__PURE__ */ jsx(
|
|
11579
|
+
Input,
|
|
11580
|
+
{
|
|
11581
|
+
value,
|
|
11582
|
+
onChange: (event) => onValueChange?.(event.target.value),
|
|
11583
|
+
placeholder: placeholder ?? "0.00",
|
|
11584
|
+
"aria-label": title,
|
|
11585
|
+
inputMode: "decimal",
|
|
11586
|
+
prefixIcon: /* @__PURE__ */ jsx("span", { className: "text-xs font-semibold", children: currencySymbol }),
|
|
11587
|
+
className: "h-11 rounded-[12px] text-[14px]"
|
|
11588
|
+
}
|
|
11589
|
+
),
|
|
11590
|
+
type === "percentage" && /* @__PURE__ */ jsx(
|
|
11591
|
+
Input,
|
|
11592
|
+
{
|
|
11593
|
+
value,
|
|
11594
|
+
onChange: (event) => onValueChange?.(event.target.value),
|
|
11595
|
+
placeholder: placeholder ?? "0",
|
|
11596
|
+
"aria-label": title,
|
|
11597
|
+
inputMode: "decimal",
|
|
11598
|
+
suffixIcon: /* @__PURE__ */ jsx("span", { className: "text-xs font-semibold", children: "%" }),
|
|
11599
|
+
className: "h-11 rounded-[12px] text-[14px]"
|
|
11600
|
+
}
|
|
11601
|
+
),
|
|
11602
|
+
type === "long-text" && /* @__PURE__ */ jsx(
|
|
11603
|
+
Textarea,
|
|
11604
|
+
{
|
|
11605
|
+
value,
|
|
11606
|
+
onChange: (event) => onValueChange?.(event.target.value),
|
|
11607
|
+
placeholder: placeholder ?? "Write a detailed answer",
|
|
11608
|
+
"aria-label": title,
|
|
11609
|
+
autoResize: true,
|
|
11610
|
+
className: "rounded-[12px] text-[14px]"
|
|
11611
|
+
}
|
|
11612
|
+
),
|
|
11613
|
+
(type === "single-choice" || type === "yes-no") && /* @__PURE__ */ jsx(
|
|
11614
|
+
"div",
|
|
11615
|
+
{
|
|
11616
|
+
className: cn(
|
|
11617
|
+
"grid gap-3",
|
|
11618
|
+
type === "yes-no" ? "grid-cols-[repeat(auto-fit,minmax(78px,max-content))]" : ""
|
|
11619
|
+
),
|
|
11620
|
+
role: "radiogroup",
|
|
11621
|
+
"aria-label": title,
|
|
11622
|
+
children: (type === "yes-no" ? [
|
|
11623
|
+
{ value: "yes", label: "Yes" },
|
|
11624
|
+
{ value: "no", label: "No" }
|
|
11625
|
+
] : options).map((option) => /* @__PURE__ */ jsx(
|
|
11626
|
+
QuestionOptionButton,
|
|
11627
|
+
{
|
|
11628
|
+
option,
|
|
11629
|
+
selected: value === option.value,
|
|
11630
|
+
compact: type === "yes-no",
|
|
11631
|
+
role: "radio",
|
|
11632
|
+
"aria-checked": value === option.value,
|
|
11633
|
+
onClick: () => onValueChange?.(option.value)
|
|
11634
|
+
},
|
|
11635
|
+
option.value
|
|
11636
|
+
))
|
|
11637
|
+
}
|
|
11638
|
+
),
|
|
11639
|
+
type === "dropdown" && /* @__PURE__ */ jsx(
|
|
11640
|
+
Select,
|
|
11641
|
+
{
|
|
11642
|
+
options,
|
|
11643
|
+
value,
|
|
11644
|
+
onValueChange,
|
|
11645
|
+
placeholder: placeholder ?? "Select an option",
|
|
11646
|
+
"aria-label": title
|
|
11647
|
+
}
|
|
11648
|
+
),
|
|
11649
|
+
(type === "multi-choice" || type === "multi-select") && /* @__PURE__ */ jsx("div", { className: "grid gap-3", role: "group", "aria-label": title, children: options.map((option) => /* @__PURE__ */ jsx(
|
|
11650
|
+
QuestionOptionButton,
|
|
11651
|
+
{
|
|
11652
|
+
option,
|
|
11653
|
+
selected: values.includes(option.value),
|
|
11654
|
+
role: "checkbox",
|
|
11655
|
+
"aria-checked": values.includes(option.value),
|
|
11656
|
+
onClick: () => toggleOption(option.value, !values.includes(option.value))
|
|
11657
|
+
},
|
|
11658
|
+
option.value
|
|
11659
|
+
)) }),
|
|
11660
|
+
type === "address" && /* @__PURE__ */ jsxs("div", { className: "grid gap-3 sm:grid-cols-2", children: [
|
|
11661
|
+
/* @__PURE__ */ jsx(
|
|
11662
|
+
Input,
|
|
11663
|
+
{
|
|
11664
|
+
value: addressValue.line1 ?? "",
|
|
11665
|
+
onChange: (event) => updateAddress("line1", event.target.value),
|
|
11666
|
+
placeholder: "Street address",
|
|
11667
|
+
"aria-label": `${title} street address`,
|
|
11668
|
+
className: "h-11 rounded-[12px] text-[14px] sm:col-span-2"
|
|
11669
|
+
}
|
|
11670
|
+
),
|
|
11671
|
+
/* @__PURE__ */ jsx(
|
|
11672
|
+
Input,
|
|
11673
|
+
{
|
|
11674
|
+
value: addressValue.line2 ?? "",
|
|
11675
|
+
onChange: (event) => updateAddress("line2", event.target.value),
|
|
11676
|
+
placeholder: "Apt, suite, unit",
|
|
11677
|
+
"aria-label": `${title} address line 2`,
|
|
11678
|
+
className: "h-11 rounded-[12px] text-[14px] sm:col-span-2"
|
|
11679
|
+
}
|
|
11680
|
+
),
|
|
11681
|
+
/* @__PURE__ */ jsx(
|
|
11682
|
+
Input,
|
|
11683
|
+
{
|
|
11684
|
+
value: addressValue.city ?? "",
|
|
11685
|
+
onChange: (event) => updateAddress("city", event.target.value),
|
|
11686
|
+
placeholder: "City",
|
|
11687
|
+
"aria-label": `${title} city`,
|
|
11688
|
+
className: "h-11 rounded-[12px] text-[14px]"
|
|
11689
|
+
}
|
|
11690
|
+
),
|
|
11691
|
+
/* @__PURE__ */ jsx(
|
|
11692
|
+
Input,
|
|
11693
|
+
{
|
|
11694
|
+
value: addressValue.region ?? "",
|
|
11695
|
+
onChange: (event) => updateAddress("region", event.target.value),
|
|
11696
|
+
placeholder: "State / Province",
|
|
11697
|
+
"aria-label": `${title} state or province`,
|
|
11698
|
+
className: "h-11 rounded-[12px] text-[14px]"
|
|
11699
|
+
}
|
|
11700
|
+
),
|
|
11701
|
+
/* @__PURE__ */ jsx(
|
|
11702
|
+
Input,
|
|
11703
|
+
{
|
|
11704
|
+
value: addressValue.postalCode ?? "",
|
|
11705
|
+
onChange: (event) => updateAddress("postalCode", event.target.value),
|
|
11706
|
+
placeholder: "ZIP / Postal code",
|
|
11707
|
+
"aria-label": `${title} zip or postal code`,
|
|
11708
|
+
className: "h-11 rounded-[12px] text-[14px]"
|
|
11709
|
+
}
|
|
11710
|
+
),
|
|
11711
|
+
/* @__PURE__ */ jsx(
|
|
11712
|
+
Input,
|
|
11713
|
+
{
|
|
11714
|
+
value: addressValue.country ?? "",
|
|
11715
|
+
onChange: (event) => updateAddress("country", event.target.value),
|
|
11716
|
+
placeholder: "Country",
|
|
11717
|
+
"aria-label": `${title} country`,
|
|
11718
|
+
className: "h-11 rounded-[12px] text-[14px]"
|
|
11719
|
+
}
|
|
11720
|
+
)
|
|
11721
|
+
] }),
|
|
11722
|
+
type === "file-upload" && /* @__PURE__ */ jsxs("div", { className: "grid gap-3", children: [
|
|
11723
|
+
/* @__PURE__ */ jsx(
|
|
11724
|
+
FileUpload,
|
|
11725
|
+
{
|
|
11726
|
+
accept,
|
|
11727
|
+
maxSize,
|
|
11728
|
+
multiple,
|
|
11729
|
+
onFilesSelected
|
|
11730
|
+
}
|
|
11731
|
+
),
|
|
11732
|
+
files.length > 0 && /* @__PURE__ */ jsx("div", { className: "grid gap-2", children: files.map((file) => /* @__PURE__ */ jsx(
|
|
11733
|
+
FileChip,
|
|
11734
|
+
{
|
|
11735
|
+
name: file.name,
|
|
11736
|
+
meta: file.size ? formatBytes2(file.size) : void 0,
|
|
11737
|
+
kind: file.kind ?? "doc"
|
|
11738
|
+
},
|
|
11739
|
+
`${file.name}-${file.size ?? "unknown"}`
|
|
11740
|
+
)) })
|
|
11741
|
+
] }),
|
|
11742
|
+
(type === "table" || type === "repeater") && /* @__PURE__ */ jsxs("div", { className: "grid gap-3", children: [
|
|
11743
|
+
tableRows.map((row, rowIndex) => /* @__PURE__ */ jsxs("div", { className: "border-rule bg-surface-2 rounded-[16px] border p-4", children: [
|
|
11744
|
+
/* @__PURE__ */ jsxs("div", { className: "mb-3 flex items-center justify-between gap-3", children: [
|
|
11745
|
+
/* @__PURE__ */ jsxs("span", { className: "text-fg text-[13px] font-semibold", children: [
|
|
11746
|
+
type === "repeater" ? "Item" : "Row",
|
|
11747
|
+
" ",
|
|
11748
|
+
rowIndex + 1
|
|
11749
|
+
] }),
|
|
11750
|
+
tableRows.length > 1 && /* @__PURE__ */ jsx(
|
|
11751
|
+
Button,
|
|
11752
|
+
{
|
|
11753
|
+
type: "button",
|
|
11754
|
+
variant: "ghost",
|
|
11755
|
+
size: "icon-sm",
|
|
11756
|
+
onClick: () => removeRow(rowIndex),
|
|
11757
|
+
"aria-label": `Remove row ${rowIndex + 1}`,
|
|
11758
|
+
children: /* @__PURE__ */ jsx(TrashIcon, { size: 14, "aria-hidden": "true" })
|
|
11759
|
+
}
|
|
11760
|
+
)
|
|
11761
|
+
] }),
|
|
11762
|
+
/* @__PURE__ */ jsx("div", { className: "grid gap-3 sm:grid-cols-2", children: tableColumns.map((column) => /* @__PURE__ */ jsx(
|
|
11763
|
+
Input,
|
|
11764
|
+
{
|
|
11765
|
+
type: column.inputType === "date" ? "date" : "text",
|
|
11766
|
+
value: row[column.key] ?? "",
|
|
11767
|
+
onChange: (event) => updateRow(rowIndex, column.key, event.target.value),
|
|
11768
|
+
placeholder: column.placeholder ?? column.label,
|
|
11769
|
+
"aria-label": `${title} ${column.label} row ${rowIndex + 1}`,
|
|
11770
|
+
className: "h-11 rounded-[12px] text-[14px]",
|
|
11771
|
+
inputMode: column.inputType === "number" || column.inputType === "currency" ? "decimal" : void 0,
|
|
11772
|
+
prefixIcon: column.inputType === "currency" ? /* @__PURE__ */ jsx("span", { className: "text-xs font-semibold", children: currencySymbol }) : void 0
|
|
11773
|
+
},
|
|
11774
|
+
column.key
|
|
11775
|
+
)) })
|
|
11776
|
+
] }, rowIndex)),
|
|
11777
|
+
/* @__PURE__ */ jsxs(
|
|
11778
|
+
Button,
|
|
11779
|
+
{
|
|
11780
|
+
type: "button",
|
|
11781
|
+
variant: "dashed",
|
|
11782
|
+
size: "sm",
|
|
11783
|
+
onClick: addRow,
|
|
11784
|
+
iconLeft: /* @__PURE__ */ jsx(PlusIcon, { size: 14 }),
|
|
11785
|
+
children: [
|
|
11786
|
+
"Add ",
|
|
11787
|
+
type === "repeater" ? "item" : "row"
|
|
11788
|
+
]
|
|
11789
|
+
}
|
|
11790
|
+
)
|
|
11791
|
+
] }),
|
|
11792
|
+
type === "signature" && /* @__PURE__ */ jsxs("div", { className: "border-rule-strong bg-surface-2 rounded-[16px] border border-dashed p-5", children: [
|
|
11793
|
+
/* @__PURE__ */ jsxs("div", { className: "text-fg-2 mb-3 flex items-center gap-2", children: [
|
|
11794
|
+
/* @__PURE__ */ jsx(PenSignIcon, { size: 18, "aria-hidden": "true" }),
|
|
11795
|
+
/* @__PURE__ */ jsx("span", { className: "text-[13px] font-semibold", children: "Signature" })
|
|
11796
|
+
] }),
|
|
11797
|
+
/* @__PURE__ */ jsx(
|
|
11798
|
+
Input,
|
|
11799
|
+
{
|
|
11800
|
+
value,
|
|
11801
|
+
onChange: (event) => onValueChange?.(event.target.value),
|
|
11802
|
+
placeholder: placeholder ?? "Type full legal name",
|
|
11803
|
+
"aria-label": title,
|
|
11804
|
+
className: "h-11 rounded-[12px] text-[14px]"
|
|
11805
|
+
}
|
|
11806
|
+
)
|
|
11807
|
+
] }),
|
|
11808
|
+
type === "consent-checkbox" && /* @__PURE__ */ jsx(
|
|
11809
|
+
Checkbox,
|
|
11810
|
+
{
|
|
11811
|
+
label: description ?? title,
|
|
11812
|
+
checked: value === "true",
|
|
11813
|
+
onCheckedChange: (checked) => onValueChange?.(checked === true ? "true" : "false")
|
|
11814
|
+
}
|
|
11815
|
+
)
|
|
11816
|
+
]
|
|
11817
|
+
}
|
|
11818
|
+
);
|
|
11819
|
+
});
|
|
11820
|
+
Questions.displayName = "Questions";
|
|
11821
|
+
function QuestionOptionButton({
|
|
11822
|
+
option,
|
|
11823
|
+
selected,
|
|
11824
|
+
compact,
|
|
11825
|
+
className,
|
|
11826
|
+
...props
|
|
11827
|
+
}) {
|
|
11828
|
+
return /* @__PURE__ */ jsxs(
|
|
11829
|
+
"button",
|
|
11830
|
+
{
|
|
11831
|
+
type: "button",
|
|
11832
|
+
disabled: option.disabled,
|
|
11833
|
+
className: cn(
|
|
11834
|
+
"group bg-surface flex w-full items-center gap-3 border text-left",
|
|
11835
|
+
"transition-[border-color,background-color,color,box-shadow,transform] duration-[var(--duration-fast)] ease-[var(--ease-out-quart)]",
|
|
11836
|
+
"focus-visible:[box-shadow:var(--shadow-focus-ring)] focus-visible:outline-none",
|
|
11837
|
+
"disabled:bg-bg-disabled disabled:text-fg-disabled disabled:cursor-not-allowed",
|
|
11838
|
+
compact ? "h-10 max-w-max rounded-[10px] px-3" : "min-h-16 rounded-[12px] px-7 py-4",
|
|
11839
|
+
selected ? compact ? "border-pro-fg bg-pro-bg text-pro-fg shadow-xs" : "border-pro-line bg-pro-bg text-pro-fg hover:bg-pro-bg-hover shadow-xs" : "border-rule-strong text-fg hover:border-pro-line hover:bg-pro-bg/40",
|
|
11840
|
+
className
|
|
11841
|
+
),
|
|
11842
|
+
...props,
|
|
11843
|
+
children: [
|
|
11844
|
+
/* @__PURE__ */ jsx(
|
|
11845
|
+
"span",
|
|
11846
|
+
{
|
|
11847
|
+
"aria-hidden": "true",
|
|
11848
|
+
className: cn(
|
|
11849
|
+
"grid shrink-0 place-items-center rounded-full border transition-colors duration-[var(--duration-fast)]",
|
|
11850
|
+
compact ? "size-5" : "size-4",
|
|
11851
|
+
selected ? "border-pro-fg bg-pro-fg text-fg-on-pro" : "border-rule-strong bg-surface group-hover:border-pro-line text-transparent"
|
|
11852
|
+
),
|
|
11853
|
+
children: selected && /* @__PURE__ */ jsx(CheckCircleSolidIcon, { size: compact ? 18 : 14 })
|
|
11854
|
+
}
|
|
11855
|
+
),
|
|
11856
|
+
/* @__PURE__ */ jsxs("span", { className: "flex min-w-0 flex-1 items-center gap-1.5", children: [
|
|
11857
|
+
/* @__PURE__ */ jsx("span", { className: cn("truncate font-bold", compact ? "text-[13px]" : "text-[15px]"), children: option.label }),
|
|
11858
|
+
option.helpText && /* @__PURE__ */ jsxs(Tooltip, { children: [
|
|
11859
|
+
/* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx("span", { className: cn("inline-flex shrink-0 cursor-help", "text-pro-fg"), children: /* @__PURE__ */ jsx(HelpCircleIcon, { size: 14, "aria-hidden": "true" }) }) }),
|
|
11860
|
+
/* @__PURE__ */ jsxs(
|
|
11861
|
+
TooltipContent,
|
|
11862
|
+
{
|
|
11863
|
+
side: "top",
|
|
11864
|
+
align: "center",
|
|
11865
|
+
sideOffset: 12,
|
|
11866
|
+
className: cn(
|
|
11867
|
+
"border-rule bg-surface shadow-pop relative max-w-[352px] rounded-[7px] p-5 text-left",
|
|
11868
|
+
"after:border-rule after:bg-surface after:absolute after:top-full after:left-1/2 after:size-4 after:-translate-x-1/2 after:-translate-y-1/2 after:rotate-45 after:border-r after:border-b after:content-['']"
|
|
11869
|
+
),
|
|
11870
|
+
children: [
|
|
11871
|
+
/* @__PURE__ */ jsx("div", { className: "text-fg text-[15px] leading-5 font-bold", children: option.label }),
|
|
11872
|
+
/* @__PURE__ */ jsx("p", { className: "text-fg-2 mt-3 text-[14px] leading-6", children: option.helpText })
|
|
11873
|
+
]
|
|
11874
|
+
}
|
|
11875
|
+
)
|
|
11876
|
+
] })
|
|
11877
|
+
] }),
|
|
11878
|
+
option.formLabel && !compact && /* @__PURE__ */ jsx(
|
|
11879
|
+
"span",
|
|
11880
|
+
{
|
|
11881
|
+
className: cn(
|
|
11882
|
+
"ml-auto shrink-0 text-right text-[13px] font-semibold",
|
|
11883
|
+
selected ? "text-pro-fg" : "text-fg-3"
|
|
11884
|
+
),
|
|
11885
|
+
children: option.formLabel
|
|
11886
|
+
}
|
|
11887
|
+
)
|
|
11888
|
+
]
|
|
11889
|
+
}
|
|
11890
|
+
);
|
|
11891
|
+
}
|
|
11892
|
+
function formatBytes2(bytes) {
|
|
11893
|
+
if (bytes < 1024) return `${bytes} B`;
|
|
11894
|
+
if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`;
|
|
11895
|
+
return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
|
|
11896
|
+
}
|
|
11897
|
+
function AiSpark({ size = 16, className }) {
|
|
11898
|
+
const id = useId();
|
|
11899
|
+
return /* @__PURE__ */ jsxs(
|
|
11900
|
+
"svg",
|
|
11901
|
+
{
|
|
11902
|
+
width: size,
|
|
11903
|
+
height: size * 12 / 16,
|
|
11904
|
+
viewBox: "0 0 16 12",
|
|
11905
|
+
fill: "none",
|
|
11906
|
+
className: cn("block shrink-0", className),
|
|
11907
|
+
"aria-hidden": "true",
|
|
11908
|
+
children: [
|
|
11909
|
+
/* @__PURE__ */ jsx(
|
|
11910
|
+
"path",
|
|
11911
|
+
{
|
|
11912
|
+
d: "M6.24553 5.34293C5.91553 5.23294 5.91553 4.76699 6.24553 4.657L8.18254 4.01207C8.60834 3.87011 8.99522 3.63094 9.31252 3.3135C9.62982 2.99607 9.8688 2.6091 10.0105 2.18327L10.6555 0.247473C10.7655 -0.0824911 11.2315 -0.0824912 11.3415 0.247473L11.9866 2.18427C12.1285 2.61002 12.3677 2.99686 12.6852 3.31412C13.0027 3.63139 13.3897 3.87035 13.8156 4.01207L15.7516 4.657C15.8238 4.68071 15.8868 4.72664 15.9314 4.78823C15.976 4.84982 16 4.92392 16 4.99996C16 5.07601 15.976 5.15011 15.9314 5.2117C15.8868 5.27329 15.8238 5.31921 15.7516 5.34293L13.8146 5.98786C13.3889 6.12971 13.0021 6.36874 12.6848 6.68599C12.3675 7.00324 12.1284 7.39001 11.9866 7.81566L11.3415 9.75245C11.3178 9.82471 11.2719 9.88763 11.2103 9.93223C11.1487 9.97684 11.0746 10.0009 10.9985 10.0009C10.9225 10.0009 10.8484 9.97684 10.7868 9.93223C10.7252 9.88763 10.6793 9.82471 10.6555 9.75245L10.0105 7.81566C9.86867 7.39001 9.62962 7.00324 9.31233 6.68599C8.99505 6.36874 8.60823 6.12971 8.18254 5.98786L6.24553 5.34293ZM1.14651 9.20551C1.1032 9.19117 1.06552 9.16355 1.03881 9.12658C1.0121 9.0896 0.99772 9.04515 0.99772 8.99954C0.99772 8.95392 1.0121 8.90947 1.03881 8.87249C1.06552 8.83552 1.1032 8.8079 1.14651 8.79356L2.30851 8.4066C2.82651 8.23362 3.23252 7.82766 3.40552 7.30972L3.79252 6.14784C3.80686 6.10454 3.83448 6.06686 3.87146 6.04015C3.90844 6.01345 3.9529 5.99907 3.99852 5.99907C4.04414 5.99907 4.0886 6.01345 4.12558 6.04015C4.16256 6.06686 4.19018 6.10454 4.20452 6.14784L4.59152 7.30972C4.67664 7.56516 4.82009 7.79728 5.0105 7.98767C5.20091 8.17806 5.43305 8.32149 5.68853 8.4066L6.85053 8.79356C6.89384 8.8079 6.93152 8.83551 6.95823 8.87249C6.98494 8.90947 6.99932 8.95392 6.99932 8.99954C6.99932 9.04515 6.98494 9.0896 6.95823 9.12658C6.93152 9.16355 6.89384 9.19117 6.85053 9.20551L5.68853 9.59247C5.43305 9.67758 5.20091 9.82101 5.0105 10.0114C4.82009 10.2018 4.67664 10.4339 4.59152 10.6894L4.20452 11.8512C4.19018 11.8945 4.16256 11.9322 4.12558 11.9589C4.0886 11.9856 4.04414 12 3.99852 12C3.9529 12 3.90844 11.9856 3.87146 11.9589C3.83448 11.9322 3.80686 11.8945 3.79252 11.8512L3.40552 10.6894C3.3204 10.4339 3.17695 10.2018 2.98654 10.0114C2.79613 9.82101 2.56399 9.67758 2.30851 9.59247L1.14651 9.20551ZM0.097503 2.13727C0.0690292 2.1274 0.0443387 2.1089 0.0268643 2.08435C0.00938996 2.0598 1.317e-09 2.03042 0 2.00029C-1.318e-09 1.97015 0.00938995 1.94077 0.0268643 1.91622C0.0443387 1.89167 0.0690292 1.87317 0.097503 1.8633L0.871506 1.60533C1.21751 1.49034 1.48851 1.21937 1.60351 0.873408L1.86151 0.0994903C1.87138 0.0710193 1.88988 0.0463306 1.91443 0.0288584C1.93899 0.0113861 1.96837 0.00199815 1.99851 0.00199814C2.02865 0.00199814 2.05803 0.0113861 2.08259 0.0288583C2.10714 0.0463306 2.12564 0.0710193 2.13551 0.0994903L2.39351 0.873408C2.45024 1.0439 2.54593 1.19882 2.673 1.32588C2.80006 1.45293 2.955 1.54861 3.12552 1.60533L3.89952 1.8633C3.92799 1.87317 3.95268 1.89167 3.97016 1.91622C3.98763 1.94077 3.99702 1.97015 3.99702 2.00029C3.99702 2.03042 3.98763 2.0598 3.97016 2.08435C3.95268 2.1089 3.92799 2.1274 3.89952 2.13727L3.12552 2.39524C2.955 2.45196 2.80006 2.54764 2.673 2.6747C2.54593 2.80175 2.45024 2.95667 2.39351 3.12717L2.13551 3.90008C2.12564 3.92855 2.10714 3.95324 2.08259 3.97071C2.05804 3.98819 2.02865 3.99757 1.99851 3.99757C1.96837 3.99757 1.93899 3.98819 1.91443 3.97071C1.88988 3.95324 1.87138 3.92855 1.86151 3.90008L1.60351 3.12617C1.48851 2.7802 1.21751 2.50923 0.871506 2.39424L0.097503 2.13727Z",
|
|
11913
|
+
fill: `url(#${id})`
|
|
11914
|
+
}
|
|
11915
|
+
),
|
|
11916
|
+
/* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsxs(
|
|
11917
|
+
"linearGradient",
|
|
11918
|
+
{
|
|
11919
|
+
id,
|
|
11920
|
+
x1: "0.265576",
|
|
11921
|
+
y1: "0.856805",
|
|
11922
|
+
x2: "13.5",
|
|
11923
|
+
y2: "12",
|
|
11924
|
+
gradientUnits: "userSpaceOnUse",
|
|
11925
|
+
children: [
|
|
11926
|
+
/* @__PURE__ */ jsx("stop", { stopColor: "#9E32FF" }),
|
|
11927
|
+
/* @__PURE__ */ jsx("stop", { offset: "1", stopColor: "#1BB6FF" })
|
|
11928
|
+
]
|
|
11929
|
+
}
|
|
11930
|
+
) })
|
|
11931
|
+
]
|
|
11932
|
+
}
|
|
11933
|
+
);
|
|
11934
|
+
}
|
|
11935
|
+
function Field({ label, value, confirmed }) {
|
|
11936
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-0.5", children: [
|
|
11937
|
+
/* @__PURE__ */ jsx("span", { className: "text-fg-3 text-[11px]", children: label }),
|
|
11938
|
+
/* @__PURE__ */ jsxs("span", { className: "text-fg inline-flex items-center gap-1 text-sm font-medium", children: [
|
|
11939
|
+
value,
|
|
11940
|
+
confirmed && /* @__PURE__ */ jsx(CheckIcon, { className: "text-success-fg size-3", strokeWidth: 3 })
|
|
11941
|
+
] })
|
|
11942
|
+
] });
|
|
11943
|
+
}
|
|
11944
|
+
var AIReceiptPanel = forwardRef(function AIReceiptPanel2({ state = "idle", result, onAttach, onRemove, onViewFile, className, ...props }, ref) {
|
|
11945
|
+
if (state === "reading") {
|
|
11946
|
+
return /* @__PURE__ */ jsxs(
|
|
11947
|
+
"div",
|
|
11948
|
+
{
|
|
11949
|
+
ref,
|
|
11950
|
+
role: "status",
|
|
11951
|
+
"aria-live": "polite",
|
|
11952
|
+
className: cn(
|
|
11953
|
+
"border-rule bg-surface-2 flex items-center gap-3 rounded-[var(--radius-input)] border p-3",
|
|
11954
|
+
className
|
|
11955
|
+
),
|
|
11956
|
+
...props,
|
|
11957
|
+
children: [
|
|
11958
|
+
/* @__PURE__ */ jsx(AiSpark, { size: 18, className: "motion-safe:animate-pulse" }),
|
|
11959
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
11960
|
+
/* @__PURE__ */ jsx("p", { className: "text-fg text-sm font-medium", children: "Reading your receipt\u2026" }),
|
|
11961
|
+
/* @__PURE__ */ jsx("p", { className: "text-fg-3 text-xs", children: "Pulling the vendor, amount and a suggested category." })
|
|
11962
|
+
] })
|
|
11963
|
+
]
|
|
11964
|
+
}
|
|
11965
|
+
);
|
|
11966
|
+
}
|
|
11967
|
+
if (state === "done" && result) {
|
|
11968
|
+
return /* @__PURE__ */ jsxs(
|
|
11969
|
+
"div",
|
|
11970
|
+
{
|
|
11971
|
+
ref,
|
|
11972
|
+
className: cn(
|
|
11973
|
+
"border-rule bg-surface-2 flex flex-col gap-3 rounded-[var(--radius-input)] border p-3",
|
|
11974
|
+
className
|
|
11975
|
+
),
|
|
11976
|
+
...props,
|
|
11977
|
+
children: [
|
|
11978
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
|
|
11979
|
+
/* @__PURE__ */ jsxs("span", { className: "text-fg-2 inline-flex items-center gap-1.5 text-xs font-semibold", children: [
|
|
11980
|
+
/* @__PURE__ */ jsx(AiSpark, { size: 14 }),
|
|
11981
|
+
" Auto-filled from receipt"
|
|
11982
|
+
] }),
|
|
11983
|
+
onRemove && /* @__PURE__ */ jsx(Button, { variant: "ghost", size: "sm", onClick: onRemove, children: "Remove" })
|
|
11984
|
+
] }),
|
|
11985
|
+
/* @__PURE__ */ jsx(
|
|
10967
11986
|
FileChip,
|
|
10968
11987
|
{
|
|
10969
11988
|
name: result.file.name,
|
|
@@ -13923,36 +14942,36 @@ var DocumentDetailPanel = forwardRef(
|
|
|
13923
14942
|
DocumentDetailPanel.displayName = "DocumentDetailPanel";
|
|
13924
14943
|
var DocumentDetailHeader = forwardRef(
|
|
13925
14944
|
function DocumentDetailHeader2({ tags, status, onClose, className, children, ...props }, ref) {
|
|
13926
|
-
const
|
|
14945
|
+
const showControls = Boolean(status || onClose);
|
|
14946
|
+
const tagsClearance = !showControls ? void 0 : status ? "pr-32" : "pr-12";
|
|
14947
|
+
const titleClearance = !showControls || tags ? void 0 : status ? "[&>:first-child]:pr-32" : "[&>:first-child]:pr-12";
|
|
13927
14948
|
return /* @__PURE__ */ jsxs(
|
|
13928
14949
|
"div",
|
|
13929
14950
|
{
|
|
13930
14951
|
ref,
|
|
13931
|
-
className: cn("border-rule shrink-0 space-y-3 border-b px-5 py-4", className),
|
|
14952
|
+
className: cn("border-rule relative shrink-0 space-y-3 border-b px-5 py-4", className),
|
|
13932
14953
|
...props,
|
|
13933
14954
|
children: [
|
|
13934
|
-
|
|
13935
|
-
|
|
13936
|
-
/* @__PURE__ */
|
|
13937
|
-
|
|
13938
|
-
|
|
13939
|
-
"button",
|
|
13940
|
-
|
|
13941
|
-
|
|
13942
|
-
|
|
13943
|
-
"
|
|
13944
|
-
|
|
13945
|
-
|
|
13946
|
-
|
|
13947
|
-
|
|
13948
|
-
|
|
13949
|
-
|
|
13950
|
-
|
|
13951
|
-
}
|
|
13952
|
-
)
|
|
13953
|
-
] })
|
|
14955
|
+
showControls && /* @__PURE__ */ jsxs("div", { className: "absolute top-4 right-5 z-10 flex shrink-0 items-center gap-2", children: [
|
|
14956
|
+
status,
|
|
14957
|
+
onClose && /* @__PURE__ */ jsx(
|
|
14958
|
+
"button",
|
|
14959
|
+
{
|
|
14960
|
+
type: "button",
|
|
14961
|
+
onClick: onClose,
|
|
14962
|
+
"aria-label": "Close",
|
|
14963
|
+
className: cn(
|
|
14964
|
+
"inline-flex size-7 shrink-0 items-center justify-center",
|
|
14965
|
+
"rounded-icon text-fg-4 transition-colors duration-[var(--duration-fast)] ease-[var(--ease-out-quart)] motion-reduce:transition-none",
|
|
14966
|
+
"hover:bg-overlay-hover hover:text-fg",
|
|
14967
|
+
"focus-visible:[box-shadow:var(--shadow-focus-ring)] focus-visible:outline-none"
|
|
14968
|
+
),
|
|
14969
|
+
children: /* @__PURE__ */ jsx(XIcon, { className: "size-4", "aria-hidden": "true" })
|
|
14970
|
+
}
|
|
14971
|
+
)
|
|
13954
14972
|
] }),
|
|
13955
|
-
children
|
|
14973
|
+
tags && /* @__PURE__ */ jsx("div", { className: cn("flex min-w-0 flex-wrap items-center gap-1.5", tagsClearance), children: tags }),
|
|
14974
|
+
/* @__PURE__ */ jsx("div", { className: cn("space-y-3", titleClearance), children })
|
|
13956
14975
|
]
|
|
13957
14976
|
}
|
|
13958
14977
|
);
|
|
@@ -14052,7 +15071,7 @@ var DocumentListSection = forwardRef(
|
|
|
14052
15071
|
}
|
|
14053
15072
|
);
|
|
14054
15073
|
DocumentListSection.displayName = "DocumentListSection";
|
|
14055
|
-
var DocumentRow = forwardRef(function DocumentRow2({ fileName, meta, icon, actions, className, ...props }, ref) {
|
|
15074
|
+
var DocumentRow = forwardRef(function DocumentRow2({ fileName, meta, icon, approved, rejected, actions, className, ...props }, ref) {
|
|
14056
15075
|
return /* @__PURE__ */ jsxs(
|
|
14057
15076
|
"div",
|
|
14058
15077
|
{
|
|
@@ -14069,12 +15088,24 @@ var DocumentRow = forwardRef(function DocumentRow2({ fileName, meta, icon, actio
|
|
|
14069
15088
|
"span",
|
|
14070
15089
|
{
|
|
14071
15090
|
"aria-hidden": "true",
|
|
14072
|
-
className:
|
|
15091
|
+
className: cn(
|
|
15092
|
+
"rounded-icon inline-flex size-9 shrink-0 items-center justify-center",
|
|
15093
|
+
approved ? "bg-success-bg text-success-fg" : rejected ? "bg-danger-bg text-danger-fg" : "bg-bg-2 text-fg-3"
|
|
15094
|
+
),
|
|
14073
15095
|
children: icon ?? /* @__PURE__ */ jsx(FileTextIcon, { className: "size-4.5" })
|
|
14074
15096
|
}
|
|
14075
15097
|
),
|
|
14076
15098
|
/* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
14077
|
-
/* @__PURE__ */
|
|
15099
|
+
/* @__PURE__ */ jsxs("div", { className: "flex min-w-0 items-center gap-1.5", children: [
|
|
15100
|
+
/* @__PURE__ */ jsx("span", { className: "text-fg line-clamp-1 min-w-0 text-sm font-medium", children: fileName }),
|
|
15101
|
+
approved ? /* @__PURE__ */ jsxs("span", { className: "bg-success-bg text-success-fg inline-flex shrink-0 items-center gap-1 rounded-md px-1.5 py-0.5 text-[10.5px] font-semibold", children: [
|
|
15102
|
+
/* @__PURE__ */ jsx(CheckIcon, { className: "size-3", "aria-hidden": "true" }),
|
|
15103
|
+
"Approved"
|
|
15104
|
+
] }) : rejected ? /* @__PURE__ */ jsxs("span", { className: "bg-danger-bg text-danger-fg inline-flex shrink-0 items-center gap-1 rounded-md px-1.5 py-0.5 text-[10.5px] font-semibold", children: [
|
|
15105
|
+
/* @__PURE__ */ jsx(AlertTriangleIcon, { className: "size-3", "aria-hidden": "true" }),
|
|
15106
|
+
"Rejected"
|
|
15107
|
+
] }) : null
|
|
15108
|
+
] }),
|
|
14078
15109
|
meta && /* @__PURE__ */ jsx("div", { className: "text-fg-4 line-clamp-1 text-xs", children: meta })
|
|
14079
15110
|
] }),
|
|
14080
15111
|
actions && /* @__PURE__ */ jsx("div", { className: "flex shrink-0 items-center gap-0.5", children: actions })
|
|
@@ -14095,11 +15126,30 @@ var TONE_PILL = {
|
|
|
14095
15126
|
danger: "bg-danger-bg text-danger-fg",
|
|
14096
15127
|
muted: "bg-surface-2 text-fg-3"
|
|
14097
15128
|
};
|
|
15129
|
+
var TONE_DOT2 = {
|
|
15130
|
+
warning: "bg-warning-fg",
|
|
15131
|
+
success: "bg-success-fg",
|
|
15132
|
+
danger: "bg-danger-fg",
|
|
15133
|
+
muted: "bg-fg-4"
|
|
15134
|
+
};
|
|
14098
15135
|
function initials(name) {
|
|
14099
15136
|
return name.split(/\s+/).slice(0, 2).map((p) => p[0]?.toUpperCase() ?? "").join("");
|
|
14100
15137
|
}
|
|
14101
15138
|
var DocumentRequestCard = forwardRef(
|
|
14102
|
-
function DocumentRequestCard2({
|
|
15139
|
+
function DocumentRequestCard2({
|
|
15140
|
+
title,
|
|
15141
|
+
category,
|
|
15142
|
+
highPriority,
|
|
15143
|
+
due,
|
|
15144
|
+
comment,
|
|
15145
|
+
fulfilledCount,
|
|
15146
|
+
totalCount,
|
|
15147
|
+
items,
|
|
15148
|
+
assignees = [],
|
|
15149
|
+
onOpen,
|
|
15150
|
+
className,
|
|
15151
|
+
...props
|
|
15152
|
+
}, ref) {
|
|
14103
15153
|
const docWord = totalCount === 1 ? "document" : "documents";
|
|
14104
15154
|
return /* @__PURE__ */ jsxs(
|
|
14105
15155
|
"div",
|
|
@@ -14117,7 +15167,7 @@ var DocumentRequestCard = forwardRef(
|
|
|
14117
15167
|
className: cn(
|
|
14118
15168
|
"rounded-card border-rule bg-surface cursor-pointer overflow-hidden border shadow-sm",
|
|
14119
15169
|
"transition-shadow duration-[var(--duration-fast)] ease-[var(--ease-out-quart)] motion-reduce:transition-none",
|
|
14120
|
-
"hover:shadow-md focus-visible:
|
|
15170
|
+
"hover:shadow-md focus-visible:[box-shadow:var(--shadow-focus-ring)] focus-visible:outline-none",
|
|
14121
15171
|
className
|
|
14122
15172
|
),
|
|
14123
15173
|
...props,
|
|
@@ -14131,7 +15181,14 @@ var DocumentRequestCard = forwardRef(
|
|
|
14131
15181
|
/* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-1 items-center gap-2", children: [
|
|
14132
15182
|
/* @__PURE__ */ jsx("span", { className: "text-fg min-w-0 truncate text-sm font-semibold", children: title }),
|
|
14133
15183
|
category && /* @__PURE__ */ jsx("span", { className: "bg-surface-2 text-fg-3 inline-flex shrink-0 items-center rounded-md px-2 py-0.5 text-xs font-medium", children: category }),
|
|
14134
|
-
highPriority && /* @__PURE__ */ jsx(
|
|
15184
|
+
highPriority && /* @__PURE__ */ jsx(
|
|
15185
|
+
AlertTriangleIcon,
|
|
15186
|
+
{
|
|
15187
|
+
size: 14,
|
|
15188
|
+
className: "text-warning-fg shrink-0",
|
|
15189
|
+
"aria-label": "Urgent request"
|
|
15190
|
+
}
|
|
15191
|
+
),
|
|
14135
15192
|
due && /* @__PURE__ */ jsx(
|
|
14136
15193
|
"span",
|
|
14137
15194
|
{
|
|
@@ -14160,12 +15217,25 @@ var DocumentRequestCard = forwardRef(
|
|
|
14160
15217
|
comment,
|
|
14161
15218
|
"\u201D"
|
|
14162
15219
|
] }),
|
|
14163
|
-
/* @__PURE__ */ jsx("div", { className: "flex flex-col gap-2 px-5 pb-4
|
|
14164
|
-
|
|
14165
|
-
|
|
14166
|
-
|
|
14167
|
-
|
|
14168
|
-
|
|
15220
|
+
/* @__PURE__ */ jsx("div", { className: "flex flex-col gap-2 px-5 pt-3 pb-4", children: items.map((item) => /* @__PURE__ */ jsxs(
|
|
15221
|
+
"div",
|
|
15222
|
+
{
|
|
15223
|
+
className: "bg-surface-2 flex items-center gap-3 rounded-xl px-4 py-3.5",
|
|
15224
|
+
children: [
|
|
15225
|
+
/* @__PURE__ */ jsx(FileTextIcon, { size: 16, className: "text-fg-3 shrink-0" }),
|
|
15226
|
+
/* @__PURE__ */ jsx("span", { className: "text-fg min-w-0 flex-1 truncate text-sm font-semibold", children: item.label }),
|
|
15227
|
+
item.docType && /* @__PURE__ */ jsx("span", { className: "border-rule bg-surface text-fg-3 inline-flex shrink-0 items-center rounded-md border px-2 py-0.5 text-[10.5px] font-semibold tracking-wide uppercase", children: item.docType }),
|
|
15228
|
+
/* @__PURE__ */ jsx(
|
|
15229
|
+
"span",
|
|
15230
|
+
{
|
|
15231
|
+
className: cn("shrink-0 text-[13px] font-semibold", TONE_TEXT[item.statusTone]),
|
|
15232
|
+
children: item.statusLabel
|
|
15233
|
+
}
|
|
15234
|
+
)
|
|
15235
|
+
]
|
|
15236
|
+
},
|
|
15237
|
+
item.id
|
|
15238
|
+
)) }),
|
|
14169
15239
|
/* @__PURE__ */ jsxs("div", { className: "border-rule flex items-center gap-2 border-t px-5 py-2.5", children: [
|
|
14170
15240
|
/* @__PURE__ */ jsx(FolderClosedIcon, { size: 14, className: "text-fg-4 shrink-0" }),
|
|
14171
15241
|
/* @__PURE__ */ jsxs("span", { className: "text-fg-3 text-[12.5px] tabular-nums", children: [
|
|
@@ -14216,7 +15286,7 @@ var DocumentRequestDetail = forwardRef(
|
|
|
14216
15286
|
title,
|
|
14217
15287
|
category,
|
|
14218
15288
|
highPriority,
|
|
14219
|
-
statusLabel,
|
|
15289
|
+
statusLabel: statusLabel2,
|
|
14220
15290
|
statusVariant = "secondary",
|
|
14221
15291
|
requester,
|
|
14222
15292
|
due,
|
|
@@ -14234,8 +15304,10 @@ var DocumentRequestDetail = forwardRef(
|
|
|
14234
15304
|
tab,
|
|
14235
15305
|
defaultTab = "documents",
|
|
14236
15306
|
onTabChange,
|
|
14237
|
-
clientUploads,
|
|
15307
|
+
clientUploads = [],
|
|
14238
15308
|
firmDocuments,
|
|
15309
|
+
requestedItems,
|
|
15310
|
+
otherUploads = [],
|
|
14239
15311
|
onUploadFirmDocument,
|
|
14240
15312
|
comments,
|
|
14241
15313
|
commentDraft,
|
|
@@ -14246,21 +15318,23 @@ var DocumentRequestDetail = forwardRef(
|
|
|
14246
15318
|
activity,
|
|
14247
15319
|
className
|
|
14248
15320
|
} = props;
|
|
14249
|
-
const
|
|
15321
|
+
const clientDocCount = requestedItems ? requestedItems.reduce((n, it) => n + it.documents.length, 0) + otherUploads.length : clientUploads.length;
|
|
15322
|
+
const docCount = clientDocCount + firmDocuments.length;
|
|
15323
|
+
const providedCount = requestedItems?.filter((it) => it.statusTone === "success").length ?? 0;
|
|
14250
15324
|
const selectedAssignees = assignees.filter((a) => a.selected);
|
|
14251
15325
|
return /* @__PURE__ */ jsxs(DocumentDetailPanel, { ref, className, children: [
|
|
14252
15326
|
/* @__PURE__ */ jsxs(
|
|
14253
15327
|
DocumentDetailHeader,
|
|
14254
15328
|
{
|
|
14255
15329
|
onClose,
|
|
14256
|
-
tags: /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
15330
|
+
tags: category || highPriority ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
14257
15331
|
category && /* @__PURE__ */ jsxs(Badge, { variant: "outline", className: "gap-1", children: [
|
|
14258
15332
|
/* @__PURE__ */ jsx(FolderClosedIcon, { className: "size-3" }),
|
|
14259
15333
|
category
|
|
14260
15334
|
] }),
|
|
14261
15335
|
highPriority && /* @__PURE__ */ jsx(Badge, { variant: "warning", children: "High priority" })
|
|
14262
|
-
] }),
|
|
14263
|
-
status:
|
|
15336
|
+
] }) : void 0,
|
|
15337
|
+
status: statusLabel2 ? /* @__PURE__ */ jsx(Badge, { variant: statusVariant, children: statusLabel2 }) : void 0,
|
|
14264
15338
|
children: [
|
|
14265
15339
|
/* @__PURE__ */ jsx(DocumentDetailTitle, { children: title }),
|
|
14266
15340
|
/* @__PURE__ */ jsx(
|
|
@@ -14317,7 +15391,12 @@ var DocumentRequestDetail = forwardRef(
|
|
|
14317
15391
|
},
|
|
14318
15392
|
className: "flex items-center gap-2.5 py-2",
|
|
14319
15393
|
children: [
|
|
14320
|
-
/* @__PURE__ */ jsx(
|
|
15394
|
+
/* @__PURE__ */ jsx(
|
|
15395
|
+
"span",
|
|
15396
|
+
{
|
|
15397
|
+
className: cn("size-2.5 shrink-0 rounded-full", opt.color ?? "bg-fg-4")
|
|
15398
|
+
}
|
|
15399
|
+
),
|
|
14321
15400
|
/* @__PURE__ */ jsx("span", { className: "flex-1 text-sm", children: opt.label }),
|
|
14322
15401
|
/* @__PURE__ */ jsx(
|
|
14323
15402
|
"span",
|
|
@@ -14372,12 +15451,85 @@ var DocumentRequestDetail = forwardRef(
|
|
|
14372
15451
|
/* @__PURE__ */ jsx(LockIcon, { size: 15, className: "shrink-0" }),
|
|
14373
15452
|
"This request is locked \u2014 the client can no longer upload documents."
|
|
14374
15453
|
] }),
|
|
14375
|
-
/* @__PURE__ */
|
|
15454
|
+
/* @__PURE__ */ jsx(DocumentList, { children: requestedItems ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
15455
|
+
/* @__PURE__ */ jsxs("div", { className: "text-fg-3 px-2.5 text-[13px] font-medium tabular-nums", children: [
|
|
15456
|
+
providedCount,
|
|
15457
|
+
" of ",
|
|
15458
|
+
requestedItems.length,
|
|
15459
|
+
" provided"
|
|
15460
|
+
] }),
|
|
15461
|
+
requestedItems.map((item) => /* @__PURE__ */ jsxs("section", { className: "space-y-1", children: [
|
|
15462
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 px-2.5 py-1", children: [
|
|
15463
|
+
/* @__PURE__ */ jsx(FileTextIcon, { size: 15, className: "text-fg-3 shrink-0" }),
|
|
15464
|
+
/* @__PURE__ */ jsx("span", { className: "text-fg min-w-0 flex-1 truncate text-sm font-semibold", children: item.label }),
|
|
15465
|
+
item.docType && /* @__PURE__ */ jsx("span", { className: "border-rule bg-surface text-fg-3 inline-flex shrink-0 items-center rounded-md border px-1.5 py-0.5 text-[10px] font-semibold tracking-wide uppercase", children: item.docType }),
|
|
15466
|
+
/* @__PURE__ */ jsxs("span", { className: "flex shrink-0 items-center gap-1.5", children: [
|
|
15467
|
+
/* @__PURE__ */ jsx(
|
|
15468
|
+
"span",
|
|
15469
|
+
{
|
|
15470
|
+
"aria-hidden": true,
|
|
15471
|
+
className: cn("size-2 rounded-full", TONE_DOT2[item.statusTone])
|
|
15472
|
+
}
|
|
15473
|
+
),
|
|
15474
|
+
/* @__PURE__ */ jsx("span", { className: cn("text-xs font-semibold", TONE_TEXT[item.statusTone]), children: item.statusLabel })
|
|
15475
|
+
] })
|
|
15476
|
+
] }),
|
|
15477
|
+
/* @__PURE__ */ jsx("div", { className: "space-y-0.5 pl-[1.625rem]", children: item.documents.length > 0 ? item.documents.map((d) => /* @__PURE__ */ jsx(
|
|
15478
|
+
DocumentRow,
|
|
15479
|
+
{
|
|
15480
|
+
fileName: d.fileName,
|
|
15481
|
+
meta: d.meta,
|
|
15482
|
+
approved: d.approved,
|
|
15483
|
+
rejected: d.rejected,
|
|
15484
|
+
className: d.active ? "bg-overlay-hover" : void 0,
|
|
15485
|
+
actions: /* @__PURE__ */ jsx(FileRowActions, { doc: d })
|
|
15486
|
+
},
|
|
15487
|
+
d.id
|
|
15488
|
+
)) : /* @__PURE__ */ jsx("p", { className: "text-fg-4 px-2.5 py-1.5 text-[13px]", children: "Awaiting client upload" }) })
|
|
15489
|
+
] }, item.id)),
|
|
15490
|
+
otherUploads.length > 0 && /* @__PURE__ */ jsx(DocumentListSection, { label: "Other uploads", count: otherUploads.length, children: otherUploads.map((d) => /* @__PURE__ */ jsx(
|
|
15491
|
+
DocumentRow,
|
|
15492
|
+
{
|
|
15493
|
+
fileName: d.fileName,
|
|
15494
|
+
meta: d.meta,
|
|
15495
|
+
approved: d.approved,
|
|
15496
|
+
rejected: d.rejected,
|
|
15497
|
+
className: d.active ? "bg-overlay-hover" : void 0,
|
|
15498
|
+
actions: /* @__PURE__ */ jsx(FileRowActions, { doc: d })
|
|
15499
|
+
},
|
|
15500
|
+
d.id
|
|
15501
|
+
)) }),
|
|
15502
|
+
/* @__PURE__ */ jsx(
|
|
15503
|
+
DocumentListSection,
|
|
15504
|
+
{
|
|
15505
|
+
label: "Firm reference",
|
|
15506
|
+
count: firmDocuments.length,
|
|
15507
|
+
action: onUploadFirmDocument ? /* @__PURE__ */ jsxs(Button, { variant: "ghost", size: "sm", onClick: onUploadFirmDocument, children: [
|
|
15508
|
+
/* @__PURE__ */ jsx(UploadIcon, {}),
|
|
15509
|
+
"Upload"
|
|
15510
|
+
] }) : void 0,
|
|
15511
|
+
children: firmDocuments.length > 0 ? firmDocuments.map((d) => /* @__PURE__ */ jsx(
|
|
15512
|
+
DocumentRow,
|
|
15513
|
+
{
|
|
15514
|
+
fileName: d.fileName,
|
|
15515
|
+
meta: d.meta,
|
|
15516
|
+
approved: d.approved,
|
|
15517
|
+
rejected: d.rejected,
|
|
15518
|
+
className: d.active ? "bg-overlay-hover" : void 0,
|
|
15519
|
+
actions: /* @__PURE__ */ jsx(FileRowActions, { doc: d })
|
|
15520
|
+
},
|
|
15521
|
+
d.id
|
|
15522
|
+
)) : /* @__PURE__ */ jsx("p", { className: "text-fg-4 px-2.5 py-2 text-sm", children: "No firm documents attached." })
|
|
15523
|
+
}
|
|
15524
|
+
)
|
|
15525
|
+
] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
14376
15526
|
/* @__PURE__ */ jsx(DocumentListSection, { label: "Client uploads", count: clientUploads.length, children: clientUploads.length > 0 ? clientUploads.map((d) => /* @__PURE__ */ jsx(
|
|
14377
15527
|
DocumentRow,
|
|
14378
15528
|
{
|
|
14379
15529
|
fileName: d.fileName,
|
|
14380
15530
|
meta: d.meta,
|
|
15531
|
+
approved: d.approved,
|
|
15532
|
+
rejected: d.rejected,
|
|
14381
15533
|
className: d.active ? "bg-overlay-hover" : void 0,
|
|
14382
15534
|
actions: /* @__PURE__ */ jsx(FileRowActions, { doc: d })
|
|
14383
15535
|
},
|
|
@@ -14397,6 +15549,8 @@ var DocumentRequestDetail = forwardRef(
|
|
|
14397
15549
|
{
|
|
14398
15550
|
fileName: d.fileName,
|
|
14399
15551
|
meta: d.meta,
|
|
15552
|
+
approved: d.approved,
|
|
15553
|
+
rejected: d.rejected,
|
|
14400
15554
|
className: d.active ? "bg-overlay-hover" : void 0,
|
|
14401
15555
|
actions: /* @__PURE__ */ jsx(FileRowActions, { doc: d })
|
|
14402
15556
|
},
|
|
@@ -14404,7 +15558,7 @@ var DocumentRequestDetail = forwardRef(
|
|
|
14404
15558
|
)) : /* @__PURE__ */ jsx("p", { className: "text-fg-4 px-2.5 py-2 text-sm", children: "No firm documents attached." })
|
|
14405
15559
|
}
|
|
14406
15560
|
)
|
|
14407
|
-
] })
|
|
15561
|
+
] }) })
|
|
14408
15562
|
] }),
|
|
14409
15563
|
/* @__PURE__ */ jsxs(TabsContent, { value: "comments", className: "flex min-h-0 flex-1 flex-col", children: [
|
|
14410
15564
|
/* @__PURE__ */ jsx("div", { className: "min-h-0 flex-1 overflow-y-auto px-5 py-4", children: comments.length > 0 ? /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-4", children: comments.map((c) => /* @__PURE__ */ jsx(CommentRow, { comment: c }, c.id)) }) : /* @__PURE__ */ jsx("p", { className: "text-fg-4 text-sm", children: "No comments yet. Start the conversation below." }) }),
|
|
@@ -14467,7 +15621,7 @@ function AssigneePicker({
|
|
|
14467
15621
|
const selected = assignees.filter((a) => a.selected);
|
|
14468
15622
|
const stack = /* @__PURE__ */ jsx("span", { className: "flex -space-x-2", children: selected.map((a) => /* @__PURE__ */ jsx(Avatar, { size: "sm", name: a.name, variant: "branded" }, a.id)) });
|
|
14469
15623
|
if (!onToggle) {
|
|
14470
|
-
return /* @__PURE__ */ jsxs("span", { className: "rounded-pill border-rule inline-flex items-center gap-2 border py-1
|
|
15624
|
+
return /* @__PURE__ */ jsxs("span", { className: "rounded-pill border-rule inline-flex items-center gap-2 border py-1 pr-2.5 pl-1.5", children: [
|
|
14471
15625
|
stack,
|
|
14472
15626
|
/* @__PURE__ */ jsx("span", { className: "text-fg-2 text-sm font-semibold tabular-nums", children: selected.length })
|
|
14473
15627
|
] });
|
|
@@ -14478,7 +15632,7 @@ function AssigneePicker({
|
|
|
14478
15632
|
{
|
|
14479
15633
|
type: "button",
|
|
14480
15634
|
"aria-label": "Edit assignees",
|
|
14481
|
-
className: "rounded-pill border-rule hover:bg-overlay-hover inline-flex items-center gap-2 border py-1
|
|
15635
|
+
className: "rounded-pill border-rule hover:bg-overlay-hover inline-flex items-center gap-2 border py-1 pr-2.5 pl-1.5 transition-colors focus-visible:[box-shadow:var(--shadow-focus-ring)] focus-visible:outline-none",
|
|
14482
15636
|
children: [
|
|
14483
15637
|
stack,
|
|
14484
15638
|
/* @__PURE__ */ jsx("span", { className: "text-fg-2 text-sm font-semibold tabular-nums", children: selected.length }),
|
|
@@ -14506,23 +15660,49 @@ function AssigneePicker({
|
|
|
14506
15660
|
] });
|
|
14507
15661
|
}
|
|
14508
15662
|
function CommentRow({ comment }) {
|
|
14509
|
-
|
|
14510
|
-
|
|
14511
|
-
/* @__PURE__ */
|
|
14512
|
-
|
|
14513
|
-
|
|
14514
|
-
|
|
14515
|
-
|
|
14516
|
-
|
|
14517
|
-
|
|
14518
|
-
|
|
14519
|
-
|
|
14520
|
-
|
|
14521
|
-
|
|
15663
|
+
const { isFirm } = comment;
|
|
15664
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("flex gap-2.5", isFirm ? "flex-row-reverse" : "flex-row"), children: [
|
|
15665
|
+
/* @__PURE__ */ jsx(Avatar, { size: "sm", name: comment.author, variant: "branded", className: "mt-0.5 shrink-0" }),
|
|
15666
|
+
/* @__PURE__ */ jsxs(
|
|
15667
|
+
"div",
|
|
15668
|
+
{
|
|
15669
|
+
className: cn("flex max-w-[78%] min-w-0 flex-col", isFirm ? "items-end" : "items-start"),
|
|
15670
|
+
children: [
|
|
15671
|
+
/* @__PURE__ */ jsxs("div", { className: cn("flex items-center gap-2", isFirm && "flex-row-reverse"), children: [
|
|
15672
|
+
/* @__PURE__ */ jsxs("span", { className: "text-fg truncate text-[13px] font-semibold", children: [
|
|
15673
|
+
comment.author,
|
|
15674
|
+
comment.you && " (You)"
|
|
15675
|
+
] }),
|
|
15676
|
+
/* @__PURE__ */ jsx("span", { className: "text-fg-4 shrink-0 text-[11.5px]", children: comment.time })
|
|
15677
|
+
] }),
|
|
15678
|
+
/* @__PURE__ */ jsx(
|
|
15679
|
+
"div",
|
|
15680
|
+
{
|
|
15681
|
+
className: cn(
|
|
15682
|
+
"mt-1 rounded-2xl px-3 py-2 text-[13px] leading-snug",
|
|
15683
|
+
isFirm ? "bg-pro-bg text-pro-fg rounded-tr-sm" : "bg-surface-2 text-fg-2 rounded-tl-sm"
|
|
15684
|
+
),
|
|
15685
|
+
children: /* @__PURE__ */ jsx("p", { className: "break-words whitespace-pre-wrap", children: comment.body })
|
|
15686
|
+
}
|
|
15687
|
+
)
|
|
15688
|
+
]
|
|
15689
|
+
}
|
|
15690
|
+
)
|
|
14522
15691
|
] });
|
|
14523
15692
|
}
|
|
14524
15693
|
function FileRowActions({ doc }) {
|
|
14525
15694
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
15695
|
+
doc.onApprove && !doc.approved && /* @__PURE__ */ jsx(
|
|
15696
|
+
Button,
|
|
15697
|
+
{
|
|
15698
|
+
variant: "ghost",
|
|
15699
|
+
size: "icon-sm",
|
|
15700
|
+
"aria-label": "Approve",
|
|
15701
|
+
className: "hover:text-success-fg",
|
|
15702
|
+
onClick: doc.onApprove,
|
|
15703
|
+
children: /* @__PURE__ */ jsx(CheckIcon, {})
|
|
15704
|
+
}
|
|
15705
|
+
),
|
|
14526
15706
|
doc.onPreview && /* @__PURE__ */ jsx(Button, { variant: "ghost", size: "icon-sm", "aria-label": "Preview", onClick: doc.onPreview, children: /* @__PURE__ */ jsx(EyeIcon, {}) }),
|
|
14527
15707
|
doc.onDownload && /* @__PURE__ */ jsx(Button, { variant: "ghost", size: "icon-sm", "aria-label": "Download", onClick: doc.onDownload, children: /* @__PURE__ */ jsx(DownloadIcon, {}) }),
|
|
14528
15708
|
doc.onDelete && /* @__PURE__ */ jsx(
|
|
@@ -16223,6 +17403,6 @@ function SignatureEditor({
|
|
|
16223
17403
|
}
|
|
16224
17404
|
SignatureEditor.displayName = "SignatureEditor";
|
|
16225
17405
|
|
|
16226
|
-
export { AIReceiptPanel, Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActivityEventItem, ActivityItem, ActivityList, AgreementPaneHeading, AgreementViewer, AiDraftCard, 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, Assignee, 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, ChannelTabs, 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, Dash, DashGrid, DataItem, DataTable, DataTableBody, DataTableCell, DataTableCellDue, DataTableCellId, DataTableCellMono, DataTableCellName, DataTableCheckbox, DataTableHead, DataTableHeader, DataTablePagination, DataTableResultsCount, DataTableRow, DataTableSearch, DataTableSpacer, DataTableToolbar, DataTableView, DatePicker, DateRangePicker, DetailGrid, DetailMain, DetailSpine, DetailSpineHeader, DetailSpineSection, DetailSpineStats, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DismissibleChip, DocumentDetailActions, DocumentDetailBody, DocumentDetailHeader, DocumentDetailMetaRow, DocumentDetailPanel, DocumentDetailRequester, DocumentDetailTitle, DocumentFileCard, DocumentFileRow, DocumentIcon, DocumentList, DocumentListSection, DocumentRequestCard, DocumentRequestDetail, DocumentRequestField, DocumentRow, DocumentSourceFilter, DocumentSourceTag, DocumentsWorkspaceLayout, DollarSignIcon, DonutChart, DownloadIcon, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmailMessageCard, EmptyState, EngagementCard, EngagementTimeline, EngagementTimelineStep, ExtractIcon, 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, IntentBadge, 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, MoneyCell, 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, PdfPreview, PenSignIcon, PenToolIcon, PencilIcon, PhoneCountryInput, PhoneIcon, PhoneInput, PlayIcon, PlusIcon, Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverPortal, PopoverTrigger, PrimaryAction, PriorityIcon, ProgressBar, ProgressRing, ProposalAddOn, ProposalBillingTerms, ProposalConsentGate, ProposalCustomPage, ProposalNote, ProposalPackageCard, ProposalPaymentCapture, ProposalPricingSummary, ProposalServiceRow, ProposalSignatureBlock, ProposalSignerList, 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, SignatureEditor, Skeleton, SkeletonCircle, SkeletonText, SlashIcon, Slider, SmartphoneIcon, SparkleIcon, SparklesIcon, Spinner, SpreadsheetPreview, StackedBarChart, StagePill, StarIcon, StarRating, Stat, StatusDot, StatusIcon, StatusPill, Stepper, StickyActionBar, StopIcon, StrikethroughIcon, SubmitButton, SuggestionPills, SuiteProgress, SunIcon, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableIcon, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TagIcon, TagsCell, 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 };
|
|
17406
|
+
export { AIReceiptPanel, Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActivityEventItem, ActivityItem, ActivityList, AgreementPaneHeading, AgreementViewer, AiDraftCard, 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, Assignee, 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, ChannelTabs, 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, Dash, DashGrid, DataItem, DataTable, DataTableBody, DataTableCell, DataTableCellDue, DataTableCellId, DataTableCellMono, DataTableCellName, DataTableCheckbox, DataTableHead, DataTableHeader, DataTablePagination, DataTableResultsCount, DataTableRow, DataTableSearch, DataTableSpacer, DataTableToolbar, DataTableView, DatePicker, DateRangePicker, DetailGrid, DetailMain, DetailSpine, DetailSpineHeader, DetailSpineSection, DetailSpineStats, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DismissibleChip, DocumentDetailActions, DocumentDetailBody, DocumentDetailHeader, DocumentDetailMetaRow, DocumentDetailPanel, DocumentDetailRequester, DocumentDetailTitle, DocumentFileCard, DocumentFileRow, DocumentIcon, DocumentList, DocumentListSection, DocumentRequestCard, DocumentRequestDetail, DocumentRequestField, DocumentRow, DocumentSourceFilter, DocumentSourceTag, DocumentsWorkspaceLayout, DollarSignIcon, DonutChart, DownloadIcon, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmailMessageCard, EmptyState, EngagementCard, EngagementTimeline, EngagementTimelineStep, ExtractIcon, 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, IntentBadge, 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, MoneyCell, 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, PdfPreview, PenSignIcon, PenToolIcon, PencilIcon, PhoneCountryInput, PhoneIcon, PhoneInput, PlayIcon, PlusIcon, Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverPortal, PopoverTrigger, PrimaryAction, PriorityIcon, ProgressBar, ProgressRing, ProposalAddOn, ProposalBillingTerms, ProposalConsentGate, ProposalCustomPage, ProposalNote, ProposalPackageCard, ProposalPaymentCapture, ProposalPricingSummary, ProposalServiceRow, ProposalSignatureBlock, ProposalSignerList, QuestionnairePanel, Questions, 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, SignatureEditor, Skeleton, SkeletonCircle, SkeletonText, SlashIcon, Slider, SmartphoneIcon, SparkleIcon, SparklesIcon, Spinner, SpreadsheetPreview, StackedBarChart, StagePill, StarIcon, StarRating, Stat, StatusDot, StatusIcon, StatusPill, Stepper, StickyActionBar, StopIcon, StrikethroughIcon, SubmitButton, SuggestionPills, SuiteProgress, SunIcon, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableIcon, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TagIcon, TagsCell, 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 };
|
|
16227
17407
|
//# sourceMappingURL=index.js.map
|
|
16228
17408
|
//# sourceMappingURL=index.js.map
|