@assure-one/design-system 1.11.0 → 1.13.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 +465 -8
- package/dist/index.js +1295 -195
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -4921,6 +4921,46 @@ var DismissibleChip = React38.forwardRef(function DismissibleChip2({ label, onDi
|
|
|
4921
4921
|
}
|
|
4922
4922
|
);
|
|
4923
4923
|
});
|
|
4924
|
+
var sourceMap = {
|
|
4925
|
+
requested: {
|
|
4926
|
+
label: "Requested",
|
|
4927
|
+
Icon: SendIcon,
|
|
4928
|
+
className: "border-transparent bg-pro-bg text-pro-fg"
|
|
4929
|
+
},
|
|
4930
|
+
direct: {
|
|
4931
|
+
label: "Direct upload",
|
|
4932
|
+
Icon: UploadIcon,
|
|
4933
|
+
className: "border-rule-strong text-fg-2"
|
|
4934
|
+
},
|
|
4935
|
+
internal: {
|
|
4936
|
+
label: "Internal",
|
|
4937
|
+
Icon: ShieldIcon,
|
|
4938
|
+
className: "border-transparent bg-surface-2 text-fg-3"
|
|
4939
|
+
}
|
|
4940
|
+
};
|
|
4941
|
+
var DocumentSourceTag = forwardRef(
|
|
4942
|
+
function DocumentSourceTag2({ source, icon, hideIcon, children, className, ...props }, ref) {
|
|
4943
|
+
const { label, Icon: Icon3, className: toneClass2 } = sourceMap[source];
|
|
4944
|
+
return /* @__PURE__ */ jsxs(
|
|
4945
|
+
"span",
|
|
4946
|
+
{
|
|
4947
|
+
ref,
|
|
4948
|
+
className: cn(
|
|
4949
|
+
"inline-flex items-center gap-1 rounded-md border py-0.5 pr-[7px] pl-1.5",
|
|
4950
|
+
"text-[11px] leading-none font-semibold",
|
|
4951
|
+
toneClass2,
|
|
4952
|
+
className
|
|
4953
|
+
),
|
|
4954
|
+
...props,
|
|
4955
|
+
children: [
|
|
4956
|
+
!hideIcon && (icon ?? /* @__PURE__ */ jsx(Icon3, { size: 11, className: "shrink-0 opacity-90", "aria-hidden": "true" })),
|
|
4957
|
+
children ?? label
|
|
4958
|
+
]
|
|
4959
|
+
}
|
|
4960
|
+
);
|
|
4961
|
+
}
|
|
4962
|
+
);
|
|
4963
|
+
DocumentSourceTag.displayName = "DocumentSourceTag";
|
|
4924
4964
|
var DocumentsWorkspaceLayout = forwardRef(function DocumentsWorkspaceLayout2({ clientsRail, folderTree, filesArea, className, ...props }, ref) {
|
|
4925
4965
|
return /* @__PURE__ */ jsxs(
|
|
4926
4966
|
"div",
|
|
@@ -9441,17 +9481,44 @@ function useToast() {
|
|
|
9441
9481
|
if (!ctx) throw new Error("useToast must be used within <ToastProvider>");
|
|
9442
9482
|
return ctx;
|
|
9443
9483
|
}
|
|
9484
|
+
var DEFAULT_DURATION = 5e3;
|
|
9485
|
+
var MAX_VISIBLE = 3;
|
|
9444
9486
|
var toastCount = 0;
|
|
9487
|
+
function toOptions(input) {
|
|
9488
|
+
return typeof input === "string" ? { title: input } : input;
|
|
9489
|
+
}
|
|
9445
9490
|
function ToastProvider({ children }) {
|
|
9446
9491
|
const [toasts, setToasts] = useState([]);
|
|
9447
9492
|
const removeToast = useCallback((id) => {
|
|
9448
9493
|
setToasts((prev) => prev.filter((t) => t.id !== id));
|
|
9449
9494
|
}, []);
|
|
9450
9495
|
const addToast = useCallback((options) => {
|
|
9496
|
+
const variant = options.variant ?? "default";
|
|
9497
|
+
const duration = options.duration ?? (variant === "loading" ? 0 : DEFAULT_DURATION);
|
|
9451
9498
|
const id = `toast-${++toastCount}`;
|
|
9452
|
-
setToasts((prev) =>
|
|
9499
|
+
setToasts((prev) => {
|
|
9500
|
+
if (options.dedupeKey) {
|
|
9501
|
+
const existing = prev.find((t) => t.dedupeKey === options.dedupeKey);
|
|
9502
|
+
if (existing) {
|
|
9503
|
+
return prev.map(
|
|
9504
|
+
(t) => t.dedupeKey === options.dedupeKey ? { ...t, ...options, variant, duration, seq: t.seq + 1 } : t
|
|
9505
|
+
);
|
|
9506
|
+
}
|
|
9507
|
+
}
|
|
9508
|
+
return [...prev, { id, seq: 0, ...options, variant, duration }];
|
|
9509
|
+
});
|
|
9453
9510
|
return id;
|
|
9454
9511
|
}, []);
|
|
9512
|
+
const update = useCallback((id, patch) => {
|
|
9513
|
+
setToasts(
|
|
9514
|
+
(prev) => prev.map((t) => {
|
|
9515
|
+
if (t.id !== id) return t;
|
|
9516
|
+
const variant = patch.variant ?? t.variant;
|
|
9517
|
+
const duration = patch.duration ?? (patch.variant && patch.variant !== "loading" ? DEFAULT_DURATION : t.duration);
|
|
9518
|
+
return { ...t, ...patch, variant, duration, seq: t.seq + 1 };
|
|
9519
|
+
})
|
|
9520
|
+
);
|
|
9521
|
+
}, []);
|
|
9455
9522
|
const dismiss = useCallback((id) => {
|
|
9456
9523
|
if (id === void 0) {
|
|
9457
9524
|
setToasts([]);
|
|
@@ -9459,9 +9526,20 @@ function ToastProvider({ children }) {
|
|
|
9459
9526
|
}
|
|
9460
9527
|
setToasts((prev) => prev.filter((t) => t.id !== id));
|
|
9461
9528
|
}, []);
|
|
9529
|
+
const promise = useCallback(
|
|
9530
|
+
(p, copy) => {
|
|
9531
|
+
const id = addToast({ ...toOptions(copy.loading), variant: "loading", duration: 0 });
|
|
9532
|
+
p.then(
|
|
9533
|
+
(value2) => update(id, { ...toOptions(typeof copy.success === "function" ? copy.success(value2) : copy.success), variant: "success" }),
|
|
9534
|
+
(err) => update(id, { ...toOptions(typeof copy.error === "function" ? copy.error(err) : copy.error), variant: "destructive", duration: 6e3 })
|
|
9535
|
+
);
|
|
9536
|
+
return p;
|
|
9537
|
+
},
|
|
9538
|
+
[addToast, update]
|
|
9539
|
+
);
|
|
9462
9540
|
const value = useMemo(
|
|
9463
|
-
() => ({ toast: addToast, dismiss }),
|
|
9464
|
-
[addToast, dismiss]
|
|
9541
|
+
() => ({ toast: addToast, dismiss, update, promise }),
|
|
9542
|
+
[addToast, dismiss, update, promise]
|
|
9465
9543
|
);
|
|
9466
9544
|
return /* @__PURE__ */ jsxs(ToastContext, { value, children: [
|
|
9467
9545
|
children,
|
|
@@ -9472,7 +9550,7 @@ function ToastProvider({ children }) {
|
|
|
9472
9550
|
role: "region",
|
|
9473
9551
|
"aria-live": "polite",
|
|
9474
9552
|
"aria-label": "Notifications",
|
|
9475
|
-
children: toasts.map((t) => /* @__PURE__ */ jsx(ToastItem, { toast: t, onDismiss: removeToast }, t.id))
|
|
9553
|
+
children: toasts.slice(0, MAX_VISIBLE).map((t) => /* @__PURE__ */ jsx(ToastItem, { toast: t, onDismiss: removeToast }, t.id))
|
|
9476
9554
|
}
|
|
9477
9555
|
)
|
|
9478
9556
|
] });
|
|
@@ -9496,13 +9574,28 @@ var variantConfig = {
|
|
|
9496
9574
|
icon: "text-warning-fg",
|
|
9497
9575
|
bar: "bg-warning-fg",
|
|
9498
9576
|
Icon: AlertTriangleSolidIcon
|
|
9577
|
+
},
|
|
9578
|
+
info: {
|
|
9579
|
+
chip: "bg-info/12",
|
|
9580
|
+
icon: "text-info",
|
|
9581
|
+
bar: "bg-info",
|
|
9582
|
+
Icon: InfoCircleSolidIcon
|
|
9583
|
+
},
|
|
9584
|
+
loading: {
|
|
9585
|
+
chip: "bg-pro-bg",
|
|
9586
|
+
icon: "text-pro-fg",
|
|
9587
|
+
bar: "bg-pro-fg",
|
|
9588
|
+
Icon: LoaderIcon,
|
|
9589
|
+
spin: true
|
|
9499
9590
|
}
|
|
9500
9591
|
};
|
|
9592
|
+
var SWIPE_DISMISS_PX = 72;
|
|
9501
9593
|
function ToastItem({ toast, onDismiss }) {
|
|
9502
|
-
const timerRef = useRef(void 0);
|
|
9503
9594
|
const [exiting, setExiting] = useState(false);
|
|
9504
|
-
const
|
|
9505
|
-
const
|
|
9595
|
+
const cardRef = useRef(null);
|
|
9596
|
+
const barRef = useRef(null);
|
|
9597
|
+
const pausedRef = useRef(false);
|
|
9598
|
+
const duration = toast.duration;
|
|
9506
9599
|
const showProgress = duration > 0;
|
|
9507
9600
|
const close = useCallback(() => {
|
|
9508
9601
|
setExiting(true);
|
|
@@ -9510,93 +9603,147 @@ function ToastItem({ toast, onDismiss }) {
|
|
|
9510
9603
|
}, [toast.id, onDismiss]);
|
|
9511
9604
|
useEffect(() => {
|
|
9512
9605
|
if (!showProgress) return;
|
|
9513
|
-
|
|
9514
|
-
|
|
9515
|
-
|
|
9516
|
-
|
|
9517
|
-
|
|
9518
|
-
|
|
9606
|
+
let raf = 0;
|
|
9607
|
+
let remaining = duration;
|
|
9608
|
+
let last = performance.now();
|
|
9609
|
+
const tick = (now) => {
|
|
9610
|
+
const dt = now - last;
|
|
9611
|
+
last = now;
|
|
9612
|
+
if (!pausedRef.current) {
|
|
9613
|
+
remaining -= dt;
|
|
9614
|
+
if (barRef.current) {
|
|
9615
|
+
barRef.current.style.width = `${Math.max(0, Math.min(100, (duration - remaining) / duration * 100))}%`;
|
|
9616
|
+
}
|
|
9617
|
+
if (remaining <= 0) {
|
|
9618
|
+
close();
|
|
9619
|
+
return;
|
|
9620
|
+
}
|
|
9621
|
+
}
|
|
9622
|
+
raf = requestAnimationFrame(tick);
|
|
9623
|
+
};
|
|
9624
|
+
raf = requestAnimationFrame(tick);
|
|
9519
9625
|
return () => cancelAnimationFrame(raf);
|
|
9520
|
-
}, [showProgress]);
|
|
9521
|
-
const
|
|
9522
|
-
|
|
9523
|
-
"
|
|
9524
|
-
{
|
|
9525
|
-
|
|
9526
|
-
|
|
9527
|
-
|
|
9528
|
-
|
|
9529
|
-
|
|
9530
|
-
|
|
9531
|
-
|
|
9532
|
-
|
|
9533
|
-
|
|
9534
|
-
|
|
9535
|
-
|
|
9536
|
-
|
|
9537
|
-
|
|
9538
|
-
|
|
9539
|
-
|
|
9540
|
-
|
|
9541
|
-
|
|
9542
|
-
|
|
9543
|
-
|
|
9544
|
-
|
|
9545
|
-
|
|
9546
|
-
|
|
9547
|
-
|
|
9548
|
-
|
|
9549
|
-
|
|
9550
|
-
|
|
9551
|
-
|
|
9552
|
-
|
|
9553
|
-
|
|
9554
|
-
|
|
9555
|
-
|
|
9556
|
-
|
|
9626
|
+
}, [duration, showProgress, close, toast.seq]);
|
|
9627
|
+
const dragRef = useRef(null);
|
|
9628
|
+
const onPointerDown = (e) => {
|
|
9629
|
+
if (e.target.closest("button")) return;
|
|
9630
|
+
dragRef.current = { startX: e.clientX, dx: 0 };
|
|
9631
|
+
pausedRef.current = true;
|
|
9632
|
+
cardRef.current?.setPointerCapture(e.pointerId);
|
|
9633
|
+
};
|
|
9634
|
+
const onPointerMove = (e) => {
|
|
9635
|
+
const drag = dragRef.current;
|
|
9636
|
+
if (!drag || !cardRef.current) return;
|
|
9637
|
+
drag.dx = Math.max(0, e.clientX - drag.startX);
|
|
9638
|
+
cardRef.current.style.transform = `translateX(${drag.dx}px)`;
|
|
9639
|
+
cardRef.current.style.opacity = `${Math.max(0.3, 1 - drag.dx / 240)}`;
|
|
9640
|
+
};
|
|
9641
|
+
const endDrag = (e) => {
|
|
9642
|
+
const drag = dragRef.current;
|
|
9643
|
+
dragRef.current = null;
|
|
9644
|
+
cardRef.current?.releasePointerCapture?.(e.pointerId);
|
|
9645
|
+
if (!drag || !cardRef.current) return;
|
|
9646
|
+
if (drag.dx >= SWIPE_DISMISS_PX) {
|
|
9647
|
+
close();
|
|
9648
|
+
return;
|
|
9649
|
+
}
|
|
9650
|
+
cardRef.current.style.transform = "";
|
|
9651
|
+
cardRef.current.style.opacity = "";
|
|
9652
|
+
pausedRef.current = false;
|
|
9653
|
+
};
|
|
9654
|
+
const { chip, icon, bar, Icon: Icon3, spin } = variantConfig[toast.variant];
|
|
9655
|
+
return (
|
|
9656
|
+
// Pointer/hover handlers add pause-on-hover + swipe-to-dismiss as progressive
|
|
9657
|
+
// enhancement only — keyboard/AT users dismiss via the explicit Dismiss
|
|
9658
|
+
// button below, and the live region (role=status) still announces content.
|
|
9659
|
+
// eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions
|
|
9660
|
+
/* @__PURE__ */ jsxs(
|
|
9661
|
+
"div",
|
|
9662
|
+
{
|
|
9663
|
+
ref: cardRef,
|
|
9664
|
+
role: "status",
|
|
9665
|
+
"data-state": exiting ? "closed" : "open",
|
|
9666
|
+
onPointerDown,
|
|
9667
|
+
onPointerMove,
|
|
9668
|
+
onPointerUp: endDrag,
|
|
9669
|
+
onPointerCancel: endDrag,
|
|
9670
|
+
onMouseEnter: () => {
|
|
9671
|
+
pausedRef.current = true;
|
|
9672
|
+
},
|
|
9673
|
+
onMouseLeave: () => {
|
|
9674
|
+
if (!dragRef.current) pausedRef.current = false;
|
|
9675
|
+
},
|
|
9676
|
+
onFocusCapture: () => {
|
|
9677
|
+
pausedRef.current = true;
|
|
9678
|
+
},
|
|
9679
|
+
onBlurCapture: () => {
|
|
9680
|
+
if (!dragRef.current) pausedRef.current = false;
|
|
9681
|
+
},
|
|
9682
|
+
className: cn(
|
|
9683
|
+
"bg-surface border-rule text-fg rounded-card shadow-card pointer-events-auto relative w-80 touch-none overflow-hidden border p-4",
|
|
9684
|
+
"font-body select-none",
|
|
9685
|
+
// Unified data-state animation (spec §5.27) — same model as Dialog/Tooltip:
|
|
9686
|
+
// open → fade+slide in over --duration-overlay (200ms), ease-out-quart
|
|
9687
|
+
// close → fade+slide out over --duration-fast (150ms), ease-in
|
|
9688
|
+
"data-[state=open]:animate-in data-[state=open]:slide-in-from-right-8 data-[state=open]:fade-in-0",
|
|
9689
|
+
"data-[state=open]:duration-[var(--duration-overlay)] data-[state=open]:ease-[var(--ease-out-quart)]",
|
|
9690
|
+
"data-[state=closed]:animate-out data-[state=closed]:slide-out-to-right-8 data-[state=closed]:fade-out-0",
|
|
9691
|
+
"data-[state=closed]:duration-[var(--duration-fast)] data-[state=closed]:ease-[var(--ease-in)]",
|
|
9692
|
+
"motion-reduce:animate-none"
|
|
9693
|
+
),
|
|
9694
|
+
children: [
|
|
9695
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-start gap-3", children: [
|
|
9696
|
+
/* @__PURE__ */ jsx(
|
|
9697
|
+
"span",
|
|
9698
|
+
{
|
|
9699
|
+
className: cn(
|
|
9700
|
+
"inline-flex size-8 shrink-0 items-center justify-center rounded-[9px]",
|
|
9701
|
+
chip,
|
|
9702
|
+
icon
|
|
9703
|
+
),
|
|
9704
|
+
"aria-hidden": "true",
|
|
9705
|
+
children: /* @__PURE__ */ jsx(Icon3, { className: cn("size-5", spin && "animate-spin motion-reduce:animate-none") })
|
|
9706
|
+
}
|
|
9707
|
+
),
|
|
9708
|
+
/* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
9709
|
+
/* @__PURE__ */ jsx("p", { className: "text-fg text-sm leading-tight font-semibold", children: toast.title }),
|
|
9710
|
+
toast.description && /* @__PURE__ */ jsx("p", { className: "text-fg-3 mt-0.5 text-sm leading-snug", children: toast.description }),
|
|
9711
|
+
toast.action && /* @__PURE__ */ jsx(
|
|
9712
|
+
"button",
|
|
9713
|
+
{
|
|
9714
|
+
type: "button",
|
|
9715
|
+
onClick: () => {
|
|
9716
|
+
toast.action?.onClick();
|
|
9717
|
+
close();
|
|
9718
|
+
},
|
|
9719
|
+
className: cn(
|
|
9720
|
+
"text-pro-fg mt-2 text-sm font-semibold",
|
|
9721
|
+
"transition-colors duration-[var(--duration-fast)] ease-[var(--ease-out-quart)] hover:underline motion-reduce:transition-none",
|
|
9722
|
+
"focus-visible:[box-shadow:var(--shadow-focus-ring)] rounded-sm focus-visible:outline-none"
|
|
9723
|
+
),
|
|
9724
|
+
children: toast.action.label
|
|
9725
|
+
}
|
|
9726
|
+
)
|
|
9727
|
+
] }),
|
|
9728
|
+
/* @__PURE__ */ jsx(
|
|
9557
9729
|
"button",
|
|
9558
9730
|
{
|
|
9559
9731
|
type: "button",
|
|
9560
|
-
onClick:
|
|
9561
|
-
toast.action?.onClick();
|
|
9562
|
-
close();
|
|
9563
|
-
},
|
|
9732
|
+
onClick: close,
|
|
9564
9733
|
className: cn(
|
|
9565
|
-
"text-
|
|
9566
|
-
"transition-colors duration-[var(--duration-fast)] ease-[var(--ease-out-quart)]
|
|
9567
|
-
"focus-visible:[box-shadow:var(--shadow-focus-ring)]
|
|
9734
|
+
"text-fg-4 hover:text-fg-2 rounded-icon -mr-1 inline-flex size-5 shrink-0 items-center justify-center",
|
|
9735
|
+
"transition-colors duration-[var(--duration-fast)] ease-[var(--ease-out-quart)] motion-reduce:transition-none",
|
|
9736
|
+
"focus-visible:[box-shadow:var(--shadow-focus-ring)] focus-visible:outline-none"
|
|
9568
9737
|
),
|
|
9569
|
-
|
|
9738
|
+
"aria-label": "Dismiss",
|
|
9739
|
+
children: /* @__PURE__ */ jsx(XIcon, { className: "size-3.5", "aria-hidden": "true" })
|
|
9570
9740
|
}
|
|
9571
9741
|
)
|
|
9572
9742
|
] }),
|
|
9573
|
-
/* @__PURE__ */ jsx(
|
|
9574
|
-
|
|
9575
|
-
|
|
9576
|
-
|
|
9577
|
-
onClick: close,
|
|
9578
|
-
className: cn(
|
|
9579
|
-
"text-fg-4 hover:text-fg-2 rounded-icon -mr-1 inline-flex size-5 shrink-0 items-center justify-center",
|
|
9580
|
-
"transition-colors duration-[var(--duration-fast)] ease-[var(--ease-out-quart)] motion-reduce:transition-none",
|
|
9581
|
-
"focus-visible:[box-shadow:var(--shadow-focus-ring)] focus-visible:outline-none"
|
|
9582
|
-
),
|
|
9583
|
-
"aria-label": "Dismiss",
|
|
9584
|
-
children: /* @__PURE__ */ jsx(XIcon, { className: "size-3.5", "aria-hidden": "true" })
|
|
9585
|
-
}
|
|
9586
|
-
)
|
|
9587
|
-
] }),
|
|
9588
|
-
showProgress && /* @__PURE__ */ jsx("div", { className: "bg-rule absolute inset-x-0 bottom-0 h-1", "aria-hidden": "true", children: /* @__PURE__ */ jsx(
|
|
9589
|
-
"div",
|
|
9590
|
-
{
|
|
9591
|
-
className: cn(
|
|
9592
|
-
"h-full transition-[width] ease-linear motion-reduce:transition-none",
|
|
9593
|
-
bar
|
|
9594
|
-
),
|
|
9595
|
-
style: { width: filled ? "100%" : "0%", transitionDuration: `${duration}ms` }
|
|
9596
|
-
}
|
|
9597
|
-
) })
|
|
9598
|
-
]
|
|
9599
|
-
}
|
|
9743
|
+
showProgress && /* @__PURE__ */ jsx("div", { className: "bg-rule absolute inset-x-0 bottom-0 h-1", "aria-hidden": "true", children: /* @__PURE__ */ jsx("div", { ref: barRef, className: cn("h-full", bar), style: { width: "0%" } }) })
|
|
9744
|
+
]
|
|
9745
|
+
}
|
|
9746
|
+
)
|
|
9600
9747
|
);
|
|
9601
9748
|
}
|
|
9602
9749
|
var itemVariants = cva(
|
|
@@ -9770,127 +9917,1028 @@ function IntentBadge({ tone = "muted", icon, children, className, ...props }) {
|
|
|
9770
9917
|
);
|
|
9771
9918
|
}
|
|
9772
9919
|
IntentBadge.displayName = "IntentBadge";
|
|
9773
|
-
|
|
9774
|
-
|
|
9775
|
-
|
|
9776
|
-
|
|
9777
|
-
|
|
9778
|
-
|
|
9779
|
-
|
|
9780
|
-
|
|
9781
|
-
|
|
9782
|
-
|
|
9783
|
-
|
|
9784
|
-
|
|
9785
|
-
|
|
9786
|
-
|
|
9787
|
-
|
|
9788
|
-
|
|
9789
|
-
|
|
9790
|
-
|
|
9791
|
-
|
|
9792
|
-
|
|
9793
|
-
|
|
9794
|
-
|
|
9795
|
-
|
|
9796
|
-
|
|
9797
|
-
|
|
9798
|
-
|
|
9799
|
-
|
|
9800
|
-
|
|
9801
|
-
|
|
9802
|
-
|
|
9803
|
-
|
|
9804
|
-
|
|
9805
|
-
|
|
9806
|
-
|
|
9807
|
-
|
|
9808
|
-
|
|
9809
|
-
|
|
9810
|
-
}
|
|
9811
|
-
function Field({ label, value, confirmed }) {
|
|
9812
|
-
return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-0.5", children: [
|
|
9813
|
-
/* @__PURE__ */ jsx("span", { className: "text-fg-3 text-[11px]", children: label }),
|
|
9814
|
-
/* @__PURE__ */ jsxs("span", { className: "text-fg inline-flex items-center gap-1 text-sm font-medium", children: [
|
|
9815
|
-
value,
|
|
9816
|
-
confirmed && /* @__PURE__ */ jsx(CheckIcon, { className: "text-success-fg size-3", strokeWidth: 3 })
|
|
9817
|
-
] })
|
|
9818
|
-
] });
|
|
9819
|
-
}
|
|
9820
|
-
var AIReceiptPanel = forwardRef(function AIReceiptPanel2({ state = "idle", result, onAttach, onRemove, onViewFile, className, ...props }, ref) {
|
|
9821
|
-
if (state === "reading") {
|
|
9822
|
-
return /* @__PURE__ */ jsxs(
|
|
9823
|
-
"div",
|
|
9824
|
-
{
|
|
9825
|
-
ref,
|
|
9826
|
-
role: "status",
|
|
9827
|
-
"aria-live": "polite",
|
|
9828
|
-
className: cn(
|
|
9829
|
-
"border-rule bg-surface-2 flex items-center gap-3 rounded-[var(--radius-input)] border p-3",
|
|
9830
|
-
className
|
|
9831
|
-
),
|
|
9832
|
-
...props,
|
|
9833
|
-
children: [
|
|
9834
|
-
/* @__PURE__ */ jsx(AiSpark, { size: 18, className: "motion-safe:animate-pulse" }),
|
|
9835
|
-
/* @__PURE__ */ jsxs("div", { children: [
|
|
9836
|
-
/* @__PURE__ */ jsx("p", { className: "text-fg text-sm font-medium", children: "Reading your receipt\u2026" }),
|
|
9837
|
-
/* @__PURE__ */ jsx("p", { className: "text-fg-3 text-xs", children: "Pulling the vendor, amount and a suggested category." })
|
|
9838
|
-
] })
|
|
9839
|
-
]
|
|
9840
|
-
}
|
|
9841
|
-
);
|
|
9842
|
-
}
|
|
9843
|
-
if (state === "done" && result) {
|
|
9920
|
+
var ICON_BTN = cn(
|
|
9921
|
+
"inline-flex size-9 shrink-0 items-center justify-center rounded-[9px]",
|
|
9922
|
+
"border-rule-strong bg-surface text-fg-3 border",
|
|
9923
|
+
"transition-colors duration-[var(--duration-fast)] ease-[var(--ease-out-quart)] motion-reduce:transition-none",
|
|
9924
|
+
"hover:bg-bg-2 hover:text-fg",
|
|
9925
|
+
"focus-visible:[box-shadow:var(--shadow-focus-ring)] focus-visible:outline-none"
|
|
9926
|
+
);
|
|
9927
|
+
var AgreementViewer = forwardRef(
|
|
9928
|
+
function AgreementViewer2({
|
|
9929
|
+
title,
|
|
9930
|
+
overline = "Signed agreement",
|
|
9931
|
+
steps,
|
|
9932
|
+
firm,
|
|
9933
|
+
status = "signed",
|
|
9934
|
+
banner,
|
|
9935
|
+
accent,
|
|
9936
|
+
coverRail = true,
|
|
9937
|
+
step,
|
|
9938
|
+
defaultStep = 0,
|
|
9939
|
+
onStepChange,
|
|
9940
|
+
onDownload,
|
|
9941
|
+
onClose,
|
|
9942
|
+
headerActions,
|
|
9943
|
+
className
|
|
9944
|
+
}, ref) {
|
|
9945
|
+
const [internalStep, setInternalStep] = useState(defaultStep);
|
|
9946
|
+
const current = step ?? internalStep;
|
|
9947
|
+
const isControlled = step !== void 0;
|
|
9948
|
+
const lastIndex = steps.length - 1;
|
|
9949
|
+
const goTo = (n) => {
|
|
9950
|
+
if (n < 0 || n > lastIndex || n === current) return;
|
|
9951
|
+
if (!isControlled) setInternalStep(n);
|
|
9952
|
+
onStepChange?.(n);
|
|
9953
|
+
};
|
|
9954
|
+
const isCover = current === 0;
|
|
9955
|
+
const monogram = firm.initials ?? firm.name.charAt(0);
|
|
9956
|
+
const bannerContent = banner === void 0 ? status === "signed" ? "Showing the services your client accepted, at the prices locked in at signing." : "Review each section at your pace, then sign whenever you're ready." : banner;
|
|
9844
9957
|
return /* @__PURE__ */ jsxs(
|
|
9845
9958
|
"div",
|
|
9846
9959
|
{
|
|
9847
9960
|
ref,
|
|
9961
|
+
"data-slot": "agreement-viewer",
|
|
9962
|
+
"data-status": status,
|
|
9963
|
+
"data-view": isCover ? "cover" : "inner",
|
|
9964
|
+
style: accent ? { "--av-accent": accent } : void 0,
|
|
9848
9965
|
className: cn(
|
|
9849
|
-
|
|
9966
|
+
// Fills its container's height so the content pane scrolls internally
|
|
9967
|
+
// while the header, rail, and footer stay fixed — give the parent a
|
|
9968
|
+
// height (e.g. h-screen / a fixed card height). Falls back to a 600px
|
|
9969
|
+
// floor so it never collapses when dropped in an unsized container.
|
|
9970
|
+
// Responsive via CONTAINER queries (@container/agreement), not viewport:
|
|
9971
|
+
// the side rails + generous padding only appear when the viewer's own
|
|
9972
|
+
// container is wide (≥64rem). In a phone frame or a narrow panel it
|
|
9973
|
+
// collapses to the single-column compact layout regardless of the
|
|
9974
|
+
// browser viewport.
|
|
9975
|
+
"group/agreement @container/agreement bg-bg text-fg flex h-full min-h-[600px] flex-col font-sans",
|
|
9850
9976
|
className
|
|
9851
9977
|
),
|
|
9852
|
-
...props,
|
|
9853
9978
|
children: [
|
|
9854
|
-
/* @__PURE__ */ jsxs("
|
|
9855
|
-
/* @__PURE__ */
|
|
9856
|
-
|
|
9857
|
-
|
|
9979
|
+
/* @__PURE__ */ jsxs("header", { className: "flex items-center gap-2.5 px-4 pt-4 pb-3 @5xl/agreement:gap-3.5 @5xl/agreement:px-7", children: [
|
|
9980
|
+
/* @__PURE__ */ jsx(
|
|
9981
|
+
"span",
|
|
9982
|
+
{
|
|
9983
|
+
"aria-hidden": "true",
|
|
9984
|
+
className: "rounded-icon flex size-9 shrink-0 items-center justify-center bg-[var(--av-accent-tint)] text-[var(--av-accent)]",
|
|
9985
|
+
children: /* @__PURE__ */ jsx(EyeIcon, { className: "size-4.5" })
|
|
9986
|
+
}
|
|
9987
|
+
),
|
|
9988
|
+
/* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-col", children: [
|
|
9989
|
+
/* @__PURE__ */ jsx("span", { className: "text-fg-3 text-[11.5px] leading-tight font-semibold", children: overline }),
|
|
9990
|
+
/* @__PURE__ */ jsx("span", { className: "font-display text-fg truncate text-[17px] leading-tight font-semibold tracking-tight", children: title })
|
|
9858
9991
|
] }),
|
|
9859
|
-
|
|
9992
|
+
/* @__PURE__ */ jsxs("div", { className: "ml-auto flex items-center gap-2", children: [
|
|
9993
|
+
!isCover && /* @__PURE__ */ jsxs("span", { className: "border-rule bg-bg-2 text-fg-2 shrink-0 rounded-md border px-2.5 py-1 text-xs font-semibold whitespace-nowrap", children: [
|
|
9994
|
+
"Step ",
|
|
9995
|
+
current + 1,
|
|
9996
|
+
" of ",
|
|
9997
|
+
steps.length
|
|
9998
|
+
] }),
|
|
9999
|
+
headerActions,
|
|
10000
|
+
onDownload && /* @__PURE__ */ jsxs(
|
|
10001
|
+
"button",
|
|
10002
|
+
{
|
|
10003
|
+
type: "button",
|
|
10004
|
+
onClick: onDownload,
|
|
10005
|
+
"aria-label": "Download PDF",
|
|
10006
|
+
className: cn(
|
|
10007
|
+
"inline-flex h-9 shrink-0 items-center gap-1.5 rounded-[9px] px-2.5 text-[13px] font-medium whitespace-nowrap @5xl/agreement:px-3.5",
|
|
10008
|
+
"border-rule-strong bg-surface text-fg border",
|
|
10009
|
+
"transition-colors duration-[var(--duration-fast)] ease-[var(--ease-out-quart)] motion-reduce:transition-none",
|
|
10010
|
+
"hover:bg-bg-2",
|
|
10011
|
+
"focus-visible:[box-shadow:var(--shadow-focus-ring)] focus-visible:outline-none"
|
|
10012
|
+
),
|
|
10013
|
+
children: [
|
|
10014
|
+
/* @__PURE__ */ jsx(DownloadIcon, { className: "size-4", "aria-hidden": "true" }),
|
|
10015
|
+
/* @__PURE__ */ jsx("span", { className: "hidden @5xl/agreement:inline", children: "Download PDF" })
|
|
10016
|
+
]
|
|
10017
|
+
}
|
|
10018
|
+
),
|
|
10019
|
+
onClose && /* @__PURE__ */ jsx("button", { type: "button", onClick: onClose, "aria-label": "Close", className: ICON_BTN, children: /* @__PURE__ */ jsx(XIcon, { className: "size-4", "aria-hidden": "true" }) })
|
|
10020
|
+
] })
|
|
9860
10021
|
] }),
|
|
9861
|
-
/* @__PURE__ */
|
|
9862
|
-
|
|
10022
|
+
bannerContent != null && /* @__PURE__ */ jsxs(
|
|
10023
|
+
"div",
|
|
9863
10024
|
{
|
|
9864
|
-
|
|
9865
|
-
|
|
9866
|
-
|
|
9867
|
-
|
|
10025
|
+
className: cn(
|
|
10026
|
+
"mx-4 flex items-center gap-2.5 rounded-[11px] border px-4 py-2.5 text-[13.5px] font-medium @5xl/agreement:mx-7",
|
|
10027
|
+
status === "signed" ? "border-success-line bg-success-bg text-success-fg" : "border-[var(--av-accent-tint2)] bg-[var(--av-accent-tint)] text-[var(--av-accent-soft)]"
|
|
10028
|
+
),
|
|
10029
|
+
children: [
|
|
10030
|
+
/* @__PURE__ */ jsx(CheckIcon, { className: "size-4 shrink-0", "aria-hidden": "true" }),
|
|
10031
|
+
/* @__PURE__ */ jsx("span", { children: bannerContent })
|
|
10032
|
+
]
|
|
9868
10033
|
}
|
|
9869
10034
|
),
|
|
9870
|
-
/* @__PURE__ */ jsxs("div", { className: "
|
|
9871
|
-
/* @__PURE__ */
|
|
9872
|
-
|
|
9873
|
-
|
|
9874
|
-
|
|
9875
|
-
|
|
9876
|
-
|
|
9877
|
-
|
|
9878
|
-
|
|
9879
|
-
|
|
9880
|
-
|
|
9881
|
-
|
|
9882
|
-
|
|
9883
|
-
|
|
9884
|
-
|
|
9885
|
-
|
|
9886
|
-
|
|
9887
|
-
|
|
9888
|
-
|
|
9889
|
-
|
|
9890
|
-
|
|
9891
|
-
|
|
9892
|
-
|
|
9893
|
-
|
|
10035
|
+
/* @__PURE__ */ jsxs("div", { className: "flex min-h-0 flex-1 flex-col px-4 pt-3 pb-5 @5xl/agreement:px-7 @5xl/agreement:pb-8", children: [
|
|
10036
|
+
/* @__PURE__ */ jsxs("div", { className: "border-rule bg-surface shadow-card flex min-h-0 flex-1 overflow-hidden rounded-[18px] border", children: [
|
|
10037
|
+
coverRail && /* @__PURE__ */ jsxs(
|
|
10038
|
+
"aside",
|
|
10039
|
+
{
|
|
10040
|
+
className: "hidden w-[340px] shrink-0 flex-col overflow-y-auto p-8 text-white @5xl/agreement:group-data-[view=cover]/agreement:flex",
|
|
10041
|
+
style: {
|
|
10042
|
+
backgroundImage: "linear-gradient(166deg, var(--av-accent-light) 0%, var(--av-accent) 50%, var(--av-accent-deep) 100%)"
|
|
10043
|
+
},
|
|
10044
|
+
children: [
|
|
10045
|
+
/* @__PURE__ */ jsx(
|
|
10046
|
+
"span",
|
|
10047
|
+
{
|
|
10048
|
+
"aria-hidden": "true",
|
|
10049
|
+
className: "rounded-card flex size-[54px] items-center justify-center bg-white text-[17px] font-semibold text-[var(--av-accent)] shadow-md",
|
|
10050
|
+
children: monogram
|
|
10051
|
+
}
|
|
10052
|
+
),
|
|
10053
|
+
/* @__PURE__ */ jsx("div", { className: "mt-4 text-[21px] leading-tight font-semibold", children: firm.name }),
|
|
10054
|
+
firm.tagline && /* @__PURE__ */ jsx("div", { className: "mt-1.5 text-[13px] leading-snug text-white/80", children: firm.tagline }),
|
|
10055
|
+
firm.contact && /* @__PURE__ */ jsxs("div", { className: "mt-auto pt-7", children: [
|
|
10056
|
+
/* @__PURE__ */ jsx("div", { className: "mb-4 h-px bg-white/20" }),
|
|
10057
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-3 text-[12.5px] text-white/90", children: [
|
|
10058
|
+
firm.contact.phone && /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-2.5", children: [
|
|
10059
|
+
/* @__PURE__ */ jsx(PhoneIcon, { className: "size-4 shrink-0 opacity-85", "aria-hidden": "true" }),
|
|
10060
|
+
firm.contact.phone
|
|
10061
|
+
] }),
|
|
10062
|
+
firm.contact.email && /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-2.5", children: [
|
|
10063
|
+
/* @__PURE__ */ jsx(MailIcon, { className: "size-4 shrink-0 opacity-85", "aria-hidden": "true" }),
|
|
10064
|
+
firm.contact.email
|
|
10065
|
+
] }),
|
|
10066
|
+
firm.contact.website && /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-2.5", children: [
|
|
10067
|
+
/* @__PURE__ */ jsx(GlobeIcon, { className: "size-4 shrink-0 opacity-85", "aria-hidden": "true" }),
|
|
10068
|
+
firm.contact.website
|
|
10069
|
+
] })
|
|
10070
|
+
] })
|
|
10071
|
+
] })
|
|
10072
|
+
]
|
|
10073
|
+
}
|
|
10074
|
+
),
|
|
10075
|
+
/* @__PURE__ */ jsxs("aside", { className: "border-rule bg-surface-2 hidden w-[300px] shrink-0 flex-col overflow-y-auto border-r px-6 py-7 @5xl/agreement:group-data-[view=inner]/agreement:flex", children: [
|
|
10076
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
|
|
10077
|
+
/* @__PURE__ */ jsx(
|
|
10078
|
+
"span",
|
|
10079
|
+
{
|
|
10080
|
+
"aria-hidden": "true",
|
|
10081
|
+
className: "rounded-icon flex size-10 shrink-0 items-center justify-center bg-[var(--av-accent)] text-[13px] font-bold text-[var(--av-accent-contrast)]",
|
|
10082
|
+
children: monogram
|
|
10083
|
+
}
|
|
10084
|
+
),
|
|
10085
|
+
/* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
|
|
10086
|
+
/* @__PURE__ */ jsx("div", { className: "text-fg truncate text-sm font-semibold", children: firm.name }),
|
|
10087
|
+
/* @__PURE__ */ jsx("div", { className: "text-fg-4 text-[11.5px]", children: firm.subtitle ?? "Your proposal" })
|
|
10088
|
+
] })
|
|
10089
|
+
] }),
|
|
10090
|
+
/* @__PURE__ */ jsx("div", { className: "text-fg-5 mt-6 text-[11.5px] font-semibold tracking-wide", children: "Sections" }),
|
|
10091
|
+
/* @__PURE__ */ jsx("nav", { "aria-label": "Agreement sections", className: "mt-3 flex flex-col gap-0.5", children: steps.map((s, i) => {
|
|
10092
|
+
const on = i === current;
|
|
10093
|
+
const done = status === "signed" ? i !== current && i !== 0 : i < current;
|
|
10094
|
+
return /* @__PURE__ */ jsxs(
|
|
10095
|
+
"button",
|
|
10096
|
+
{
|
|
10097
|
+
type: "button",
|
|
10098
|
+
onClick: () => goTo(i),
|
|
10099
|
+
"aria-current": on ? "step" : void 0,
|
|
10100
|
+
"data-on": on || void 0,
|
|
10101
|
+
"data-done": done || void 0,
|
|
10102
|
+
"data-first": i === 0 || void 0,
|
|
10103
|
+
className: cn(
|
|
10104
|
+
"group/step text-fg-3 relative z-[1] flex w-full items-center gap-3.5 rounded-[12px] py-2.5 pr-3.5 pl-2 text-left text-[13.5px] font-medium",
|
|
10105
|
+
"transition-colors duration-[var(--duration-normal)] ease-[var(--ease-out-quart)] motion-reduce:transition-none",
|
|
10106
|
+
"hover:bg-bg-2",
|
|
10107
|
+
"data-[on]:bg-[var(--av-accent-tint)] data-[on]:font-semibold data-[on]:text-[var(--av-accent-soft)]",
|
|
10108
|
+
"focus-visible:[box-shadow:var(--shadow-focus-ring)] focus-visible:outline-none"
|
|
10109
|
+
),
|
|
10110
|
+
children: [
|
|
10111
|
+
/* @__PURE__ */ jsx(
|
|
10112
|
+
"span",
|
|
10113
|
+
{
|
|
10114
|
+
"aria-hidden": "true",
|
|
10115
|
+
className: cn(
|
|
10116
|
+
"relative flex size-7 shrink-0 items-center justify-center rounded-full border-[1.5px] text-[12.5px] font-semibold",
|
|
10117
|
+
"border-[var(--av-accent-tint2)] bg-[var(--color-surface)] text-[var(--av-accent)]",
|
|
10118
|
+
"transition-colors duration-[var(--duration-normal)] ease-[var(--ease-out-quart)] motion-reduce:transition-none",
|
|
10119
|
+
// connector to the node above (skipped on the first step)
|
|
10120
|
+
"before:absolute before:bottom-full before:left-1/2 before:h-[18px] before:w-[2.5px] before:-translate-x-1/2 before:rounded-full before:bg-[var(--av-accent-tint2)] before:transition-colors before:content-['']",
|
|
10121
|
+
"group-data-[first]/step:before:hidden",
|
|
10122
|
+
"group-data-[done]/step:border-[var(--av-accent)] group-data-[done]/step:bg-[var(--av-accent)] group-data-[done]/step:text-[var(--av-accent-contrast)] group-data-[done]/step:before:bg-[var(--av-accent)]",
|
|
10123
|
+
"group-data-[on]/step:border-[var(--av-accent)] group-data-[on]/step:bg-[var(--av-accent)] group-data-[on]/step:text-[var(--av-accent-contrast)] group-data-[on]/step:before:bg-[var(--av-accent)]"
|
|
10124
|
+
),
|
|
10125
|
+
children: s.icon ?? (i === 0 ? /* @__PURE__ */ jsx(HomeIcon, { className: "size-3.5" }) : done ? /* @__PURE__ */ jsx(CheckIcon, { className: "size-3.5" }) : i)
|
|
10126
|
+
}
|
|
10127
|
+
),
|
|
10128
|
+
/* @__PURE__ */ jsx("span", { className: "truncate", children: s.label })
|
|
10129
|
+
]
|
|
10130
|
+
},
|
|
10131
|
+
s.id
|
|
10132
|
+
);
|
|
10133
|
+
}) })
|
|
10134
|
+
] }),
|
|
10135
|
+
/* @__PURE__ */ jsx("section", { className: "@container/pane scrollbar-thin flex min-w-0 flex-1 flex-col overflow-y-auto px-5 py-7 @5xl/agreement:px-[52px] @5xl/agreement:py-11", children: steps[current]?.content })
|
|
10136
|
+
] }),
|
|
10137
|
+
/* @__PURE__ */ jsxs("div", { className: "mt-4 flex items-center justify-between", children: [
|
|
10138
|
+
/* @__PURE__ */ jsxs(
|
|
10139
|
+
"button",
|
|
10140
|
+
{
|
|
10141
|
+
type: "button",
|
|
10142
|
+
onClick: () => goTo(current - 1),
|
|
10143
|
+
disabled: current === 0,
|
|
10144
|
+
className: cn(
|
|
10145
|
+
"inline-flex h-[42px] items-center gap-1.5 rounded-[11px] px-4 text-sm font-medium",
|
|
10146
|
+
"border-rule-strong bg-surface text-fg-2 border",
|
|
10147
|
+
"transition-colors duration-[var(--duration-fast)] ease-[var(--ease-out-quart)] motion-reduce:transition-none",
|
|
10148
|
+
"hover:bg-bg-2",
|
|
10149
|
+
"disabled:border-rule disabled:text-fg-disabled disabled:cursor-default disabled:bg-transparent",
|
|
10150
|
+
"focus-visible:[box-shadow:var(--shadow-focus-ring)] focus-visible:outline-none"
|
|
10151
|
+
),
|
|
10152
|
+
children: [
|
|
10153
|
+
/* @__PURE__ */ jsx(ChevronLeftIcon, { className: "size-4", "aria-hidden": "true" }),
|
|
10154
|
+
"Previous"
|
|
10155
|
+
]
|
|
10156
|
+
}
|
|
10157
|
+
),
|
|
10158
|
+
/* @__PURE__ */ jsx("div", { className: "flex items-center gap-1.5", children: steps.map((s, i) => /* @__PURE__ */ jsx(
|
|
10159
|
+
"button",
|
|
10160
|
+
{
|
|
10161
|
+
type: "button",
|
|
10162
|
+
onClick: () => goTo(i),
|
|
10163
|
+
"aria-label": `Go to ${s.label}`,
|
|
10164
|
+
"aria-current": i === current ? "step" : void 0,
|
|
10165
|
+
className: cn(
|
|
10166
|
+
"bg-rule-strong h-2 rounded-full",
|
|
10167
|
+
"transition-[width,background-color] duration-[var(--duration-normal)] ease-[var(--ease-out-quart)] motion-reduce:transition-none",
|
|
10168
|
+
"focus-visible:[box-shadow:var(--shadow-focus-ring)] focus-visible:outline-none",
|
|
10169
|
+
i === current ? "w-[22px] bg-[var(--av-accent)]" : "w-2"
|
|
10170
|
+
)
|
|
10171
|
+
},
|
|
10172
|
+
s.id
|
|
10173
|
+
)) }),
|
|
10174
|
+
/* @__PURE__ */ jsxs(
|
|
10175
|
+
"button",
|
|
10176
|
+
{
|
|
10177
|
+
type: "button",
|
|
10178
|
+
onClick: () => goTo(current + 1),
|
|
10179
|
+
style: current === lastIndex ? { visibility: "hidden" } : void 0,
|
|
10180
|
+
className: cn(
|
|
10181
|
+
"inline-flex h-[42px] items-center gap-2 rounded-[11px] px-5 text-sm font-semibold",
|
|
10182
|
+
"bg-[var(--av-accent)] text-[var(--av-accent-contrast)]",
|
|
10183
|
+
"transition-[filter] duration-[var(--duration-fast)] ease-[var(--ease-out-quart)] motion-reduce:transition-none",
|
|
10184
|
+
"hover:brightness-105",
|
|
10185
|
+
"focus-visible:[box-shadow:var(--shadow-focus-ring)] focus-visible:outline-none"
|
|
10186
|
+
),
|
|
10187
|
+
children: [
|
|
10188
|
+
"Next",
|
|
10189
|
+
/* @__PURE__ */ jsx(ChevronRightIcon, { className: "size-4", "aria-hidden": "true" })
|
|
10190
|
+
]
|
|
10191
|
+
}
|
|
10192
|
+
)
|
|
10193
|
+
] })
|
|
10194
|
+
] })
|
|
10195
|
+
]
|
|
10196
|
+
}
|
|
10197
|
+
);
|
|
10198
|
+
}
|
|
10199
|
+
);
|
|
10200
|
+
AgreementViewer.displayName = "AgreementViewer";
|
|
10201
|
+
var AgreementPaneHeading = forwardRef(
|
|
10202
|
+
function AgreementPaneHeading2({ overline, title, subtitle, className, ...props }, ref) {
|
|
10203
|
+
return /* @__PURE__ */ jsxs("div", { ref, className: cn("mb-6", className), ...props, children: [
|
|
10204
|
+
overline && /* @__PURE__ */ jsx("div", { className: "mb-1.5 text-xs font-semibold tracking-wide text-[var(--av-accent-soft)]", children: overline }),
|
|
10205
|
+
/* @__PURE__ */ jsx("h2", { className: "font-display text-fg text-[27px] leading-tight font-bold tracking-tight", children: title }),
|
|
10206
|
+
subtitle && /* @__PURE__ */ jsx("p", { className: "text-fg-3 mt-2 text-sm leading-relaxed", children: subtitle })
|
|
10207
|
+
] });
|
|
10208
|
+
}
|
|
10209
|
+
);
|
|
10210
|
+
AgreementPaneHeading.displayName = "AgreementPaneHeading";
|
|
10211
|
+
var ProposalServiceRow = forwardRef(
|
|
10212
|
+
function ProposalServiceRow2({ name, description, price, originalPrice, marker = "check", className, ...props }, ref) {
|
|
10213
|
+
return /* @__PURE__ */ jsxs("div", { ref, className: cn("flex items-start gap-2.5 py-1.5", className), ...props, children: [
|
|
10214
|
+
marker === "check" && /* @__PURE__ */ jsx(
|
|
10215
|
+
CheckIcon,
|
|
10216
|
+
{
|
|
10217
|
+
className: "mt-0.5 size-3.5 shrink-0 text-[var(--av-accent,var(--color-accent))]",
|
|
10218
|
+
"aria-hidden": "true"
|
|
10219
|
+
}
|
|
10220
|
+
),
|
|
10221
|
+
/* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
10222
|
+
/* @__PURE__ */ jsx("div", { className: "text-fg-2 text-[12.5px] leading-snug", children: name }),
|
|
10223
|
+
description && /* @__PURE__ */ jsx("div", { className: "text-fg-4 mt-0.5 text-[11.5px] leading-snug", children: description })
|
|
10224
|
+
] }),
|
|
10225
|
+
(price != null || originalPrice != null) && /* @__PURE__ */ jsxs("div", { className: "flex shrink-0 items-baseline gap-1.5 text-xs", children: [
|
|
10226
|
+
originalPrice != null && /* @__PURE__ */ jsx("span", { className: "text-fg-5 line-through", children: originalPrice }),
|
|
10227
|
+
price != null && /* @__PURE__ */ jsx("span", { className: "text-fg-3 tabular", children: price })
|
|
10228
|
+
] })
|
|
10229
|
+
] });
|
|
10230
|
+
}
|
|
10231
|
+
);
|
|
10232
|
+
ProposalServiceRow.displayName = "ProposalServiceRow";
|
|
10233
|
+
var CONTROL_LABEL = {
|
|
10234
|
+
choice: ["Selected", "Select package"],
|
|
10235
|
+
addon: ["Added", "Add to proposal"],
|
|
10236
|
+
included: ["Included", "Included"]
|
|
10237
|
+
};
|
|
10238
|
+
var ProposalPackageCard = forwardRef(
|
|
10239
|
+
function ProposalPackageCard2({
|
|
10240
|
+
name,
|
|
10241
|
+
summary,
|
|
10242
|
+
price,
|
|
10243
|
+
priceCaption,
|
|
10244
|
+
originalPrice,
|
|
10245
|
+
savings,
|
|
10246
|
+
mode = "choice",
|
|
10247
|
+
selected = false,
|
|
10248
|
+
badge,
|
|
10249
|
+
servicesLabel = "Included services",
|
|
10250
|
+
children,
|
|
10251
|
+
onSelect,
|
|
10252
|
+
disabled = false,
|
|
10253
|
+
className,
|
|
10254
|
+
...props
|
|
10255
|
+
}, ref) {
|
|
10256
|
+
const interactive = mode !== "included" && !!onSelect;
|
|
10257
|
+
const [onLabel, offLabel] = CONTROL_LABEL[mode];
|
|
10258
|
+
return /* @__PURE__ */ jsxs(
|
|
10259
|
+
"div",
|
|
10260
|
+
{
|
|
10261
|
+
ref,
|
|
10262
|
+
"data-selected": selected || void 0,
|
|
10263
|
+
className: cn(
|
|
10264
|
+
"border-rule bg-surface relative flex flex-col rounded-[14px] border p-4",
|
|
10265
|
+
"data-[selected]:border-[var(--av-accent,var(--color-accent))] data-[selected]:shadow-[0_0_0_1px_var(--av-accent,var(--color-accent))]",
|
|
10266
|
+
className
|
|
10267
|
+
),
|
|
10268
|
+
...props,
|
|
10269
|
+
children: [
|
|
10270
|
+
(badge || selected) && /* @__PURE__ */ jsxs("span", { className: "rounded-pill absolute -top-2.5 left-4 flex items-center gap-1 bg-[var(--av-accent,var(--color-accent))] px-2 py-1 text-[10px] font-bold tracking-wide text-[var(--av-accent-contrast,var(--color-fg-on-accent))]", children: [
|
|
10271
|
+
selected && /* @__PURE__ */ jsx(CheckIcon, { className: "size-3", "aria-hidden": "true" }),
|
|
10272
|
+
badge ?? (selected ? onLabel : null)
|
|
10273
|
+
] }),
|
|
10274
|
+
/* @__PURE__ */ jsx("div", { className: "text-fg text-[15px] font-semibold", children: name }),
|
|
10275
|
+
summary && /* @__PURE__ */ jsx("div", { className: "text-fg-4 mt-0.5 text-xs", children: summary }),
|
|
10276
|
+
price != null && /* @__PURE__ */ jsxs("div", { className: "mt-2.5", children: [
|
|
10277
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-baseline gap-2", children: [
|
|
10278
|
+
originalPrice != null && /* @__PURE__ */ jsx("span", { className: "text-fg-5 text-base line-through", children: originalPrice }),
|
|
10279
|
+
/* @__PURE__ */ jsx("span", { className: "text-fg text-[23px] font-bold tracking-tight tabular", children: price })
|
|
10280
|
+
] }),
|
|
10281
|
+
priceCaption && /* @__PURE__ */ jsx("div", { className: "text-fg-4 text-[11.5px]", children: priceCaption }),
|
|
10282
|
+
savings && /* @__PURE__ */ jsx("div", { className: "text-success-fg mt-1 text-[11.5px] font-semibold", children: savings })
|
|
10283
|
+
] }),
|
|
10284
|
+
children && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
10285
|
+
/* @__PURE__ */ jsx("div", { className: "text-fg-3 mt-4 mb-1 text-[11.5px] font-semibold tracking-wide", children: servicesLabel }),
|
|
10286
|
+
/* @__PURE__ */ jsx("div", { children })
|
|
10287
|
+
] }),
|
|
10288
|
+
/* @__PURE__ */ jsx("div", { className: "mt-auto pt-4", children: interactive ? /* @__PURE__ */ jsx(
|
|
10289
|
+
"button",
|
|
10290
|
+
{
|
|
10291
|
+
type: "button",
|
|
10292
|
+
role: mode === "addon" ? "checkbox" : "radio",
|
|
10293
|
+
"aria-checked": selected,
|
|
10294
|
+
disabled,
|
|
10295
|
+
onClick: onSelect,
|
|
10296
|
+
className: cn(
|
|
10297
|
+
"rounded-input flex h-10 w-full items-center justify-center text-[13.5px] font-semibold",
|
|
10298
|
+
"transition-colors duration-[var(--duration-fast)] ease-[var(--ease-out-quart)] motion-reduce:transition-none",
|
|
10299
|
+
"focus-visible:[box-shadow:var(--shadow-focus-ring)] focus-visible:outline-none",
|
|
10300
|
+
selected ? "bg-[var(--av-accent,var(--color-accent))] text-[var(--av-accent-contrast,var(--color-fg-on-accent))]" : "border-rule-strong text-fg hover:bg-bg-2 border",
|
|
10301
|
+
"disabled:cursor-not-allowed disabled:opacity-60"
|
|
10302
|
+
),
|
|
10303
|
+
children: selected ? onLabel : offLabel
|
|
10304
|
+
}
|
|
10305
|
+
) : /* @__PURE__ */ jsxs(
|
|
10306
|
+
"div",
|
|
10307
|
+
{
|
|
10308
|
+
className: cn(
|
|
10309
|
+
"rounded-input flex h-10 w-full items-center justify-center gap-1.5 text-[13.5px] font-semibold",
|
|
10310
|
+
mode === "included" ? "bg-[var(--av-accent-tint,var(--color-accent-tint))] text-[var(--av-accent-soft,var(--color-accent-2))]" : "border-rule text-fg-3 border"
|
|
10311
|
+
),
|
|
10312
|
+
children: [
|
|
10313
|
+
mode === "included" && /* @__PURE__ */ jsx(CheckIcon, { className: "size-3.5", "aria-hidden": "true" }),
|
|
10314
|
+
selected ? onLabel : offLabel
|
|
10315
|
+
]
|
|
10316
|
+
}
|
|
10317
|
+
) })
|
|
10318
|
+
]
|
|
10319
|
+
}
|
|
10320
|
+
);
|
|
10321
|
+
}
|
|
10322
|
+
);
|
|
10323
|
+
ProposalPackageCard.displayName = "ProposalPackageCard";
|
|
10324
|
+
var BILLING_ICON = {
|
|
10325
|
+
now: CreditCardIcon,
|
|
10326
|
+
auto: RotateCcwIcon,
|
|
10327
|
+
review: EyeIcon,
|
|
10328
|
+
manual: ReceiptIcon,
|
|
10329
|
+
onetime: CheckIcon
|
|
10330
|
+
};
|
|
10331
|
+
var ProposalBillingTerms = forwardRef(
|
|
10332
|
+
function ProposalBillingTerms2({ title = "How billing works", rows, locked = true, className, ...props }, ref) {
|
|
10333
|
+
return /* @__PURE__ */ jsxs(
|
|
10334
|
+
"div",
|
|
10335
|
+
{
|
|
10336
|
+
ref,
|
|
10337
|
+
className: cn("border-rule overflow-hidden rounded-[14px] border", className),
|
|
10338
|
+
...props,
|
|
10339
|
+
children: [
|
|
10340
|
+
title && /* @__PURE__ */ jsx("div", { className: "border-rule bg-surface-2 text-fg border-b px-5 py-3 text-[13px] font-semibold", children: title }),
|
|
10341
|
+
/* @__PURE__ */ jsx("div", { className: "divide-rule-soft divide-y", children: rows.map((r, i) => {
|
|
10342
|
+
const Icon3 = BILLING_ICON[r.mode ?? "now"];
|
|
10343
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-3.5 px-5 py-3.5", children: [
|
|
10344
|
+
/* @__PURE__ */ jsx(
|
|
10345
|
+
"span",
|
|
10346
|
+
{
|
|
10347
|
+
"aria-hidden": "true",
|
|
10348
|
+
className: "rounded-icon mt-0.5 flex size-9 shrink-0 items-center justify-center bg-[var(--av-accent-tint,var(--color-accent-tint))] text-[var(--av-accent,var(--color-accent))]",
|
|
10349
|
+
children: /* @__PURE__ */ jsx(Icon3, { className: "size-4.5" })
|
|
10350
|
+
}
|
|
10351
|
+
),
|
|
10352
|
+
/* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
10353
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-baseline justify-between gap-3", children: [
|
|
10354
|
+
/* @__PURE__ */ jsx("span", { className: "text-fg text-sm font-semibold", children: r.label }),
|
|
10355
|
+
r.amount != null && /* @__PURE__ */ jsxs("span", { className: "text-fg shrink-0 text-sm font-semibold tabular", children: [
|
|
10356
|
+
r.amount,
|
|
10357
|
+
r.cadence && /* @__PURE__ */ jsx("small", { className: "text-fg-4 ml-0.5 text-xs font-medium", children: r.cadence })
|
|
10358
|
+
] })
|
|
10359
|
+
] }),
|
|
10360
|
+
/* @__PURE__ */ jsx("div", { className: "text-fg-3 mt-0.5 text-[13px] leading-snug", children: r.detail })
|
|
10361
|
+
] })
|
|
10362
|
+
] }, i);
|
|
10363
|
+
}) }),
|
|
10364
|
+
locked && /* @__PURE__ */ jsxs("div", { className: "border-rule bg-surface-2 text-fg-4 flex items-center gap-2 border-t px-5 py-2.5 text-[12px]", children: [
|
|
10365
|
+
/* @__PURE__ */ jsx(LockIcon, { className: "size-3.5 shrink-0", "aria-hidden": "true" }),
|
|
10366
|
+
"Set by your firm \u2014 you can review these terms, but not change them."
|
|
10367
|
+
] })
|
|
10368
|
+
]
|
|
10369
|
+
}
|
|
10370
|
+
);
|
|
10371
|
+
}
|
|
10372
|
+
);
|
|
10373
|
+
ProposalBillingTerms.displayName = "ProposalBillingTerms";
|
|
10374
|
+
var ProposalAddOn = forwardRef(
|
|
10375
|
+
function ProposalAddOn2({ name, description, price, cadence, selected = false, onToggle, disabled, className, ...props }, ref) {
|
|
10376
|
+
return /* @__PURE__ */ jsxs(
|
|
10377
|
+
"button",
|
|
10378
|
+
{
|
|
10379
|
+
ref,
|
|
10380
|
+
type: "button",
|
|
10381
|
+
role: "checkbox",
|
|
10382
|
+
"aria-checked": selected,
|
|
10383
|
+
disabled,
|
|
10384
|
+
onClick: onToggle,
|
|
10385
|
+
"data-selected": selected || void 0,
|
|
10386
|
+
className: cn(
|
|
10387
|
+
"group/addon flex w-full items-center gap-3.5 rounded-[12px] border p-4 text-left",
|
|
10388
|
+
"border-rule bg-surface",
|
|
10389
|
+
"transition-colors duration-[var(--duration-fast)] ease-[var(--ease-out-quart)] motion-reduce:transition-none",
|
|
10390
|
+
"hover:bg-bg-2",
|
|
10391
|
+
"data-[selected]:border-[var(--av-accent,var(--color-accent))] data-[selected]:bg-[var(--av-accent-tint,var(--color-accent-tint))]",
|
|
10392
|
+
"focus-visible:[box-shadow:var(--shadow-focus-ring)] focus-visible:outline-none",
|
|
10393
|
+
"disabled:cursor-not-allowed disabled:opacity-60",
|
|
10394
|
+
className
|
|
10395
|
+
),
|
|
10396
|
+
...props,
|
|
10397
|
+
children: [
|
|
10398
|
+
/* @__PURE__ */ jsx(
|
|
10399
|
+
"span",
|
|
10400
|
+
{
|
|
10401
|
+
"aria-hidden": "true",
|
|
10402
|
+
className: cn(
|
|
10403
|
+
"flex size-5 shrink-0 items-center justify-center rounded-md border-[1.5px] text-transparent",
|
|
10404
|
+
"border-rule-strong",
|
|
10405
|
+
"group-data-[selected]/addon:border-[var(--av-accent,var(--color-accent))] group-data-[selected]/addon:bg-[var(--av-accent,var(--color-accent))] group-data-[selected]/addon:text-[var(--av-accent-contrast,var(--color-fg-on-accent))]"
|
|
10406
|
+
),
|
|
10407
|
+
children: /* @__PURE__ */ jsx(CheckIcon, { className: "size-3.5" })
|
|
10408
|
+
}
|
|
10409
|
+
),
|
|
10410
|
+
/* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
10411
|
+
/* @__PURE__ */ jsx("div", { className: "text-fg text-sm font-semibold", children: name }),
|
|
10412
|
+
description && /* @__PURE__ */ jsx("div", { className: "text-fg-4 text-xs", children: description })
|
|
10413
|
+
] }),
|
|
10414
|
+
(price != null || cadence != null) && /* @__PURE__ */ jsxs("div", { className: "shrink-0 text-right", children: [
|
|
10415
|
+
price != null && /* @__PURE__ */ jsx("div", { className: "text-fg text-[15px] font-bold tabular", children: price }),
|
|
10416
|
+
cadence != null && /* @__PURE__ */ jsx("div", { className: "text-fg-4 text-[11.5px]", children: cadence })
|
|
10417
|
+
] })
|
|
10418
|
+
]
|
|
10419
|
+
}
|
|
10420
|
+
);
|
|
10421
|
+
}
|
|
10422
|
+
);
|
|
10423
|
+
ProposalAddOn.displayName = "ProposalAddOn";
|
|
10424
|
+
var ProposalPricingSummary = forwardRef(
|
|
10425
|
+
function ProposalPricingSummary2({
|
|
10426
|
+
children,
|
|
10427
|
+
billing,
|
|
10428
|
+
savings,
|
|
10429
|
+
tax,
|
|
10430
|
+
taxLabel = "Tax",
|
|
10431
|
+
originalTotal,
|
|
10432
|
+
total,
|
|
10433
|
+
cadence,
|
|
10434
|
+
totalLabel = "Total due",
|
|
10435
|
+
schedule,
|
|
10436
|
+
className,
|
|
10437
|
+
...props
|
|
10438
|
+
}, ref) {
|
|
10439
|
+
return /* @__PURE__ */ jsxs("div", { ref, className: cn("@container/summary flex flex-col", className), ...props, children: [
|
|
10440
|
+
children && /* @__PURE__ */ jsx("div", { className: "border-rule grid grid-cols-1 gap-x-6 gap-y-1 rounded-[14px] border p-6 @md/summary:grid-cols-2", children }),
|
|
10441
|
+
billing && /* @__PURE__ */ jsxs("div", { className: "mt-4 rounded-[14px] border border-[var(--av-accent-tint2,var(--color-accent-tint))] bg-[var(--av-accent-tint,var(--color-accent-tint))] p-5", children: [
|
|
10442
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
|
|
10443
|
+
/* @__PURE__ */ jsx("b", { className: "text-[13.5px] font-semibold text-[var(--av-accent-soft,var(--color-accent-2))]", children: billing.title ?? "Billing schedule" }),
|
|
10444
|
+
billing.caption && /* @__PURE__ */ jsx("span", { className: "text-[11.5px] text-[var(--av-accent-soft,var(--color-accent-2))] opacity-80", children: billing.caption })
|
|
10445
|
+
] }),
|
|
10446
|
+
billing.rows?.map((r, i) => /* @__PURE__ */ jsxs(
|
|
10447
|
+
"div",
|
|
10448
|
+
{
|
|
10449
|
+
className: "text-fg-2 mt-2.5 flex items-center justify-between gap-3 text-[13.5px]",
|
|
10450
|
+
children: [
|
|
10451
|
+
/* @__PURE__ */ jsx("span", { children: r.label }),
|
|
10452
|
+
/* @__PURE__ */ jsx("b", { className: "font-semibold tabular", children: r.value })
|
|
10453
|
+
]
|
|
10454
|
+
},
|
|
10455
|
+
i
|
|
10456
|
+
))
|
|
10457
|
+
] }),
|
|
10458
|
+
(savings || tax != null) && /* @__PURE__ */ jsxs("div", { className: "mt-4 space-y-2", children: [
|
|
10459
|
+
savings && /* @__PURE__ */ jsxs("div", { className: "text-success-fg flex items-center justify-between text-[13.5px] font-medium", children: [
|
|
10460
|
+
/* @__PURE__ */ jsx("span", { children: "Discount" }),
|
|
10461
|
+
/* @__PURE__ */ jsx("span", { className: "tabular", children: savings })
|
|
10462
|
+
] }),
|
|
10463
|
+
tax != null && /* @__PURE__ */ jsxs("div", { className: "text-fg-3 flex items-center justify-between text-[13.5px]", children: [
|
|
10464
|
+
/* @__PURE__ */ jsx("span", { children: taxLabel }),
|
|
10465
|
+
/* @__PURE__ */ jsx("span", { className: "tabular", children: tax })
|
|
10466
|
+
] })
|
|
10467
|
+
] }),
|
|
10468
|
+
schedule ? /* @__PURE__ */ jsxs("div", { className: "border-rule mt-4 border-t pt-4", children: [
|
|
10469
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-baseline justify-between gap-3", children: [
|
|
10470
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
10471
|
+
/* @__PURE__ */ jsx("div", { className: "text-fg text-[15px] font-semibold", children: schedule.dueTodayLabel ?? "Due today" }),
|
|
10472
|
+
schedule.dueTodayCaption && /* @__PURE__ */ jsx("div", { className: "text-fg-4 text-xs", children: schedule.dueTodayCaption })
|
|
10473
|
+
] }),
|
|
10474
|
+
/* @__PURE__ */ jsx("span", { className: "text-fg text-[26px] font-bold tabular", children: schedule.dueToday })
|
|
10475
|
+
] }),
|
|
10476
|
+
schedule.then && schedule.then.length > 0 && /* @__PURE__ */ jsx("div", { className: "border-rule-soft mt-3 space-y-1.5 border-t pt-3", children: schedule.then.map((t, i) => /* @__PURE__ */ jsxs(
|
|
10477
|
+
"div",
|
|
10478
|
+
{
|
|
10479
|
+
className: "text-fg-3 flex items-baseline justify-between gap-3 text-[13.5px]",
|
|
10480
|
+
children: [
|
|
10481
|
+
/* @__PURE__ */ jsx("span", { children: t.label ?? "Then" }),
|
|
10482
|
+
/* @__PURE__ */ jsxs("span", { className: "tabular", children: [
|
|
10483
|
+
/* @__PURE__ */ jsx("b", { className: "text-fg-2 font-semibold", children: t.amount }),
|
|
10484
|
+
t.cadence && /* @__PURE__ */ jsx("small", { className: "text-fg-4 ml-1 text-[12px] font-medium", children: t.cadence })
|
|
10485
|
+
] })
|
|
10486
|
+
]
|
|
10487
|
+
},
|
|
10488
|
+
i
|
|
10489
|
+
)) })
|
|
10490
|
+
] }) : total != null && /* @__PURE__ */ jsxs("div", { className: "border-rule mt-4 flex items-center justify-between border-t pt-4", children: [
|
|
10491
|
+
/* @__PURE__ */ jsx("span", { className: "text-fg text-[15px] font-semibold", children: totalLabel }),
|
|
10492
|
+
/* @__PURE__ */ jsxs("span", { className: "flex items-baseline gap-2", children: [
|
|
10493
|
+
originalTotal != null && /* @__PURE__ */ jsx("span", { className: "text-fg-5 text-base line-through", children: originalTotal }),
|
|
10494
|
+
/* @__PURE__ */ jsx("span", { className: "text-fg text-[22px] font-bold tabular", children: total }),
|
|
10495
|
+
cadence && /* @__PURE__ */ jsx("small", { className: "text-fg-4 text-[13px] font-medium", children: cadence })
|
|
10496
|
+
] })
|
|
10497
|
+
] })
|
|
10498
|
+
] });
|
|
10499
|
+
}
|
|
10500
|
+
);
|
|
10501
|
+
ProposalPricingSummary.displayName = "ProposalPricingSummary";
|
|
10502
|
+
var KIND_META = {
|
|
10503
|
+
video: { label: "Video", icon: PlayIcon },
|
|
10504
|
+
pdf: { label: "Document", icon: FileTextIcon },
|
|
10505
|
+
text: { label: "Read", icon: FileTextIcon }
|
|
10506
|
+
};
|
|
10507
|
+
var ProposalCustomPage = forwardRef(
|
|
10508
|
+
function ProposalCustomPage2({ kind, title, caption, label, poster, onPlay, children, className, ...props }, ref) {
|
|
10509
|
+
const meta = KIND_META[kind];
|
|
10510
|
+
const Icon3 = meta.icon;
|
|
10511
|
+
return /* @__PURE__ */ jsxs("div", { ref, className: cn("flex flex-col", className), ...props, children: [
|
|
10512
|
+
/* @__PURE__ */ jsxs("div", { className: "mb-1.5 flex items-center gap-1.5 text-xs font-semibold tracking-wide text-[var(--av-accent-soft,var(--color-accent-2))]", children: [
|
|
10513
|
+
/* @__PURE__ */ jsx(Icon3, { className: "size-3.5", "aria-hidden": "true" }),
|
|
10514
|
+
label ?? meta.label
|
|
10515
|
+
] }),
|
|
10516
|
+
/* @__PURE__ */ jsx("h2", { className: "font-display text-fg text-[27px] leading-tight font-bold tracking-tight", children: title }),
|
|
10517
|
+
caption && /* @__PURE__ */ jsx("p", { className: "text-fg-3 mt-2 text-sm leading-relaxed", children: caption }),
|
|
10518
|
+
/* @__PURE__ */ jsx("div", { className: "mt-5", children: kind === "video" && !children ? /* @__PURE__ */ jsx(PlayablePoster, { poster, onPlay, title }) : children })
|
|
10519
|
+
] });
|
|
10520
|
+
}
|
|
10521
|
+
);
|
|
10522
|
+
ProposalCustomPage.displayName = "ProposalCustomPage";
|
|
10523
|
+
function PlayablePoster({
|
|
10524
|
+
poster,
|
|
10525
|
+
onPlay,
|
|
10526
|
+
title
|
|
10527
|
+
}) {
|
|
10528
|
+
const inner = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
10529
|
+
/* @__PURE__ */ jsx(
|
|
10530
|
+
"span",
|
|
10531
|
+
{
|
|
10532
|
+
"aria-hidden": "true",
|
|
10533
|
+
className: "bg-bg-3 absolute inset-0 bg-cover bg-center",
|
|
10534
|
+
style: poster ? { backgroundImage: `url(${poster})` } : void 0
|
|
10535
|
+
}
|
|
10536
|
+
),
|
|
10537
|
+
/* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: "absolute inset-0 bg-black/15" }),
|
|
10538
|
+
/* @__PURE__ */ jsx(
|
|
10539
|
+
"span",
|
|
10540
|
+
{
|
|
10541
|
+
"aria-hidden": "true",
|
|
10542
|
+
className: "rounded-full relative flex size-16 items-center justify-center bg-white/90 text-[var(--av-accent,var(--color-accent))] shadow-lg",
|
|
10543
|
+
children: /* @__PURE__ */ jsx(PlayIcon, { className: "size-7" })
|
|
10544
|
+
}
|
|
10545
|
+
)
|
|
10546
|
+
] });
|
|
10547
|
+
const cls = "relative flex aspect-video w-full items-center justify-center overflow-hidden rounded-[14px] border-rule border";
|
|
10548
|
+
return onPlay ? /* @__PURE__ */ jsx(
|
|
10549
|
+
"button",
|
|
10550
|
+
{
|
|
10551
|
+
type: "button",
|
|
10552
|
+
onClick: onPlay,
|
|
10553
|
+
"aria-label": typeof title === "string" ? `Play ${title}` : "Play video",
|
|
10554
|
+
className: cn(
|
|
10555
|
+
cls,
|
|
10556
|
+
"transition-[filter] duration-[var(--duration-fast)] ease-[var(--ease-out-quart)] motion-reduce:transition-none hover:brightness-105",
|
|
10557
|
+
"focus-visible:[box-shadow:var(--shadow-focus-ring)] focus-visible:outline-none"
|
|
10558
|
+
),
|
|
10559
|
+
children: inner
|
|
10560
|
+
}
|
|
10561
|
+
) : /* @__PURE__ */ jsx("div", { className: cls, children: inner });
|
|
10562
|
+
}
|
|
10563
|
+
var ProposalNote = forwardRef(
|
|
10564
|
+
function ProposalNote2({ title, children, tone = "accent", icon, className, ...props }, ref) {
|
|
10565
|
+
return /* @__PURE__ */ jsxs(
|
|
10566
|
+
"div",
|
|
10567
|
+
{
|
|
10568
|
+
ref,
|
|
10569
|
+
className: cn(
|
|
10570
|
+
"flex gap-3 rounded-[12px] border p-4 text-[13.5px] leading-relaxed",
|
|
10571
|
+
tone === "accent" ? "border-[var(--av-accent-tint2,var(--color-accent-tint))] bg-[var(--av-accent-tint,var(--color-accent-tint))] text-[var(--av-accent-soft,var(--color-accent-2))]" : "border-rule bg-bg-2 text-fg-2",
|
|
10572
|
+
className
|
|
10573
|
+
),
|
|
10574
|
+
...props,
|
|
10575
|
+
children: [
|
|
10576
|
+
/* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: "mt-0.5 shrink-0", children: icon ?? /* @__PURE__ */ jsx(InfoIcon, { className: "size-4" }) }),
|
|
10577
|
+
/* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
|
|
10578
|
+
title && /* @__PURE__ */ jsx("div", { className: "text-fg font-semibold", children: title }),
|
|
10579
|
+
/* @__PURE__ */ jsx("div", { className: cn(title && "mt-0.5"), children })
|
|
10580
|
+
] })
|
|
10581
|
+
]
|
|
10582
|
+
}
|
|
10583
|
+
);
|
|
10584
|
+
}
|
|
10585
|
+
);
|
|
10586
|
+
ProposalNote.displayName = "ProposalNote";
|
|
10587
|
+
var STATUS_META = {
|
|
10588
|
+
signed: {
|
|
10589
|
+
label: "Signed",
|
|
10590
|
+
icon: CheckIcon,
|
|
10591
|
+
className: "text-success-fg bg-success-bg border-success-line"
|
|
10592
|
+
},
|
|
10593
|
+
viewed: {
|
|
10594
|
+
label: "Viewed",
|
|
10595
|
+
icon: EyeIcon,
|
|
10596
|
+
className: "text-[var(--av-accent-soft,var(--color-accent-2))] bg-[var(--av-accent-tint,var(--color-accent-tint))] border-[var(--av-accent-tint2,var(--color-accent-tint))]"
|
|
10597
|
+
},
|
|
10598
|
+
pending: { label: "Pending", icon: ClockIcon, className: "text-fg-3 bg-bg-2 border-rule" }
|
|
10599
|
+
};
|
|
10600
|
+
var ProposalSignerList = forwardRef(
|
|
10601
|
+
function ProposalSignerList2({ signers, title = "Recipients", className, ...props }, ref) {
|
|
10602
|
+
return /* @__PURE__ */ jsxs("div", { ref, className: cn("flex flex-col", className), ...props, children: [
|
|
10603
|
+
title && /* @__PURE__ */ jsx("div", { className: "text-fg-3 mb-2 text-[11.5px] font-semibold tracking-wide", children: title }),
|
|
10604
|
+
/* @__PURE__ */ jsx("div", { className: "border-rule divide-rule divide-y overflow-hidden rounded-[12px] border", children: signers.map((s, i) => {
|
|
10605
|
+
const status = s.status ? STATUS_META[s.status] : null;
|
|
10606
|
+
const StatusIcon2 = status?.icon;
|
|
10607
|
+
const initials2 = s.name.split(" ").map((w) => w[0]).slice(0, 2).join("").toUpperCase();
|
|
10608
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 px-4 py-3", children: [
|
|
10609
|
+
/* @__PURE__ */ jsx(
|
|
10610
|
+
"span",
|
|
10611
|
+
{
|
|
10612
|
+
"aria-hidden": "true",
|
|
10613
|
+
className: "flex size-9 shrink-0 items-center justify-center rounded-full bg-[var(--av-accent-tint,var(--color-accent-tint))] text-[12.5px] font-semibold text-[var(--av-accent-soft,var(--color-accent-2))]",
|
|
10614
|
+
children: initials2
|
|
10615
|
+
}
|
|
10616
|
+
),
|
|
10617
|
+
/* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
10618
|
+
/* @__PURE__ */ jsxs("div", { className: "text-fg truncate text-sm font-medium", children: [
|
|
10619
|
+
s.name,
|
|
10620
|
+
s.role && /* @__PURE__ */ jsx("span", { className: "text-fg-4 ml-2 text-xs font-normal", children: s.role })
|
|
10621
|
+
] }),
|
|
10622
|
+
s.email && /* @__PURE__ */ jsx("div", { className: "text-fg-4 truncate text-xs", children: s.email })
|
|
10623
|
+
] }),
|
|
10624
|
+
status && StatusIcon2 && /* @__PURE__ */ jsxs("div", { className: "flex shrink-0 flex-col items-end gap-1", children: [
|
|
10625
|
+
/* @__PURE__ */ jsxs(
|
|
10626
|
+
"span",
|
|
10627
|
+
{
|
|
10628
|
+
className: cn(
|
|
10629
|
+
"inline-flex items-center gap-1 rounded-full border px-2 py-0.5 text-[11px] font-medium",
|
|
10630
|
+
status.className
|
|
10631
|
+
),
|
|
10632
|
+
children: [
|
|
10633
|
+
/* @__PURE__ */ jsx(StatusIcon2, { className: "size-3", "aria-hidden": "true" }),
|
|
10634
|
+
status.label
|
|
10635
|
+
]
|
|
10636
|
+
}
|
|
10637
|
+
),
|
|
10638
|
+
s.at != null && /* @__PURE__ */ jsx("span", { className: "text-fg-4 text-[11px]", children: s.at })
|
|
10639
|
+
] })
|
|
10640
|
+
] }, i);
|
|
10641
|
+
}) })
|
|
10642
|
+
] });
|
|
10643
|
+
}
|
|
10644
|
+
);
|
|
10645
|
+
ProposalSignerList.displayName = "ProposalSignerList";
|
|
10646
|
+
function deriveInitials(name) {
|
|
10647
|
+
return name.trim().split(/\s+/).filter(Boolean).map((w) => w[0]).slice(0, 2).join("").toUpperCase();
|
|
10648
|
+
}
|
|
10649
|
+
var ProposalSignatureBlock = forwardRef(
|
|
10650
|
+
function ProposalSignatureBlock2({
|
|
10651
|
+
signed = false,
|
|
10652
|
+
name = "",
|
|
10653
|
+
initials: initials2,
|
|
10654
|
+
defaultName = "",
|
|
10655
|
+
onChange,
|
|
10656
|
+
placeholder = "Type your full name",
|
|
10657
|
+
signatureFont = "Georgia, serif",
|
|
10658
|
+
footer,
|
|
10659
|
+
className,
|
|
10660
|
+
...props
|
|
10661
|
+
}, ref) {
|
|
10662
|
+
const [nameVal, setNameVal] = useState(defaultName);
|
|
10663
|
+
const [initialsVal, setInitialsVal] = useState("");
|
|
10664
|
+
const [initialsTouched, setInitialsTouched] = useState(false);
|
|
10665
|
+
const displayName = signed ? name : nameVal;
|
|
10666
|
+
const displayInitials = signed ? initials2 ?? deriveInitials(name) : initialsTouched ? initialsVal : deriveInitials(nameVal);
|
|
10667
|
+
const emitChange = (n, i) => onChange?.({ name: n, initials: i });
|
|
10668
|
+
const handleName = (v) => {
|
|
10669
|
+
setNameVal(v);
|
|
10670
|
+
emitChange(v, initialsTouched ? initialsVal : deriveInitials(v));
|
|
10671
|
+
};
|
|
10672
|
+
const handleInitials = (v) => {
|
|
10673
|
+
setInitialsTouched(true);
|
|
10674
|
+
setInitialsVal(v);
|
|
10675
|
+
emitChange(nameVal, v);
|
|
10676
|
+
};
|
|
10677
|
+
return /* @__PURE__ */ jsxs("div", { ref, className: cn("flex flex-col", className), ...props, children: [
|
|
10678
|
+
/* @__PURE__ */ jsxs("div", { className: "border-rule mb-4 flex gap-6 border-b", children: [
|
|
10679
|
+
/* @__PURE__ */ jsx("span", { className: "border-[var(--av-accent,var(--color-accent))] text-fg -mb-px border-b-2 pb-2.5 text-sm font-medium", children: "Type" }),
|
|
10680
|
+
/* @__PURE__ */ jsx("span", { className: "text-fg-4 pb-2.5 text-sm font-medium", children: "Draw" })
|
|
10681
|
+
] }),
|
|
10682
|
+
/* @__PURE__ */ jsxs("div", { className: "flex gap-4", children: [
|
|
10683
|
+
/* @__PURE__ */ jsx("div", { className: "border-rule bg-surface-2 flex h-[118px] flex-1 items-center overflow-hidden rounded-[12px] border px-7", children: /* @__PURE__ */ jsx(
|
|
10684
|
+
"span",
|
|
10685
|
+
{
|
|
10686
|
+
className: cn("text-[46px] leading-none font-semibold", displayName ? "text-fg" : "text-fg-5"),
|
|
10687
|
+
style: { fontFamily: signatureFont },
|
|
10688
|
+
children: displayName || placeholder
|
|
10689
|
+
}
|
|
10690
|
+
) }),
|
|
10691
|
+
/* @__PURE__ */ jsx("div", { className: "border-rule bg-surface-2 flex h-[118px] w-[168px] shrink-0 items-center justify-center rounded-[12px] border", children: /* @__PURE__ */ jsx(
|
|
10692
|
+
"span",
|
|
10693
|
+
{
|
|
10694
|
+
className: cn("text-[34px] leading-none", displayInitials ? "text-fg-3" : "text-fg-5"),
|
|
10695
|
+
style: { fontFamily: signatureFont },
|
|
10696
|
+
children: displayInitials || "\u2014"
|
|
10697
|
+
}
|
|
10698
|
+
) })
|
|
10699
|
+
] }),
|
|
10700
|
+
/* @__PURE__ */ jsxs("div", { className: "mt-5 grid grid-cols-[1fr_120px] gap-3.5", children: [
|
|
10701
|
+
/* @__PURE__ */ jsxs("label", { className: "flex flex-col gap-1.5", children: [
|
|
10702
|
+
/* @__PURE__ */ jsx("span", { className: "text-fg-3 text-xs font-medium", children: "Your legal name" }),
|
|
10703
|
+
/* @__PURE__ */ jsx(
|
|
10704
|
+
"input",
|
|
10705
|
+
{
|
|
10706
|
+
value: displayName,
|
|
10707
|
+
readOnly: signed,
|
|
10708
|
+
onChange: (e) => handleName(e.target.value),
|
|
10709
|
+
placeholder: signed ? void 0 : placeholder,
|
|
10710
|
+
"aria-label": "Your legal name",
|
|
10711
|
+
className: "border-rule-strong rounded-input text-fg-2 bg-surface h-10 border px-3 text-sm read-only:bg-[var(--color-bg-2)]"
|
|
10712
|
+
}
|
|
10713
|
+
)
|
|
10714
|
+
] }),
|
|
10715
|
+
/* @__PURE__ */ jsxs("label", { className: "flex flex-col gap-1.5", children: [
|
|
10716
|
+
/* @__PURE__ */ jsx("span", { className: "text-fg-3 text-xs font-medium", children: "Initials" }),
|
|
10717
|
+
/* @__PURE__ */ jsx(
|
|
10718
|
+
"input",
|
|
10719
|
+
{
|
|
10720
|
+
value: displayInitials,
|
|
10721
|
+
readOnly: signed,
|
|
10722
|
+
onChange: (e) => handleInitials(e.target.value),
|
|
10723
|
+
placeholder: signed ? void 0 : "\u2014",
|
|
10724
|
+
"aria-label": "Initials",
|
|
10725
|
+
className: "border-rule-strong rounded-input text-fg-2 bg-surface h-10 border px-3 text-sm read-only:bg-[var(--color-bg-2)]"
|
|
10726
|
+
}
|
|
10727
|
+
)
|
|
10728
|
+
] })
|
|
10729
|
+
] }),
|
|
10730
|
+
footer && /* @__PURE__ */ jsx("div", { className: "mt-6", children: footer })
|
|
10731
|
+
] });
|
|
10732
|
+
}
|
|
10733
|
+
);
|
|
10734
|
+
ProposalSignatureBlock.displayName = "ProposalSignatureBlock";
|
|
10735
|
+
var ProposalConsentGate = forwardRef(
|
|
10736
|
+
function ProposalConsentGate2({ children, checked = false, onCheckedChange, signed = false, signedNote, onSign, signLabel = "Sign & approve", disabled = false, className, ...props }, ref) {
|
|
10737
|
+
return /* @__PURE__ */ jsxs("div", { ref, className: cn("flex flex-col gap-4", className), ...props, children: [
|
|
10738
|
+
!signed && /* @__PURE__ */ jsxs("label", { className: "flex cursor-pointer items-start gap-2.5 text-[13.5px] leading-relaxed", children: [
|
|
10739
|
+
/* @__PURE__ */ jsx(
|
|
10740
|
+
"input",
|
|
10741
|
+
{
|
|
10742
|
+
type: "checkbox",
|
|
10743
|
+
checked,
|
|
10744
|
+
onChange: (e) => onCheckedChange?.(e.target.checked),
|
|
10745
|
+
className: "mt-0.5 size-4 shrink-0 rounded accent-[var(--av-accent,var(--color-accent))]"
|
|
10746
|
+
}
|
|
10747
|
+
),
|
|
10748
|
+
/* @__PURE__ */ jsx("span", { className: "text-fg-2", children })
|
|
10749
|
+
] }),
|
|
10750
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-4", children: [
|
|
10751
|
+
signed ? /* @__PURE__ */ jsxs("span", { className: "text-success-fg flex items-center gap-2 text-[13px] font-medium", children: [
|
|
10752
|
+
/* @__PURE__ */ jsx(CheckIcon, { className: "size-4 shrink-0", "aria-hidden": "true" }),
|
|
10753
|
+
signedNote ?? "This agreement has been signed."
|
|
10754
|
+
] }) : /* @__PURE__ */ jsxs("span", { className: "text-fg-4 flex items-center gap-1.5 text-[12.5px]", children: [
|
|
10755
|
+
/* @__PURE__ */ jsx(LockIcon, { className: "size-3.5", "aria-hidden": "true" }),
|
|
10756
|
+
" Secure e-signature"
|
|
10757
|
+
] }),
|
|
10758
|
+
onSign && /* @__PURE__ */ jsxs(
|
|
10759
|
+
"button",
|
|
10760
|
+
{
|
|
10761
|
+
type: "button",
|
|
10762
|
+
onClick: onSign,
|
|
10763
|
+
disabled: signed || !checked || disabled,
|
|
10764
|
+
className: cn(
|
|
10765
|
+
"inline-flex h-[46px] items-center gap-2 rounded-[12px] px-5 text-[14.5px] font-semibold",
|
|
10766
|
+
"transition-[filter] duration-[var(--duration-fast)] ease-[var(--ease-out-quart)] motion-reduce:transition-none",
|
|
10767
|
+
"focus-visible:[box-shadow:var(--shadow-focus-ring)] focus-visible:outline-none",
|
|
10768
|
+
"bg-[var(--av-accent,var(--color-accent))] text-[var(--av-accent-contrast,var(--color-fg-on-accent))] hover:brightness-105",
|
|
10769
|
+
"disabled:bg-bg-disabled disabled:text-fg-disabled disabled:cursor-not-allowed disabled:brightness-100"
|
|
10770
|
+
),
|
|
10771
|
+
children: [
|
|
10772
|
+
/* @__PURE__ */ jsx(PenSignIcon, { className: "size-4", "aria-hidden": "true" }),
|
|
10773
|
+
signLabel
|
|
10774
|
+
]
|
|
10775
|
+
}
|
|
10776
|
+
)
|
|
10777
|
+
] })
|
|
10778
|
+
] });
|
|
10779
|
+
}
|
|
10780
|
+
);
|
|
10781
|
+
ProposalConsentGate.displayName = "ProposalConsentGate";
|
|
10782
|
+
var ProposalPaymentCapture = forwardRef(
|
|
10783
|
+
function ProposalPaymentCapture2({ title = "Payment at signing", amount, caption, method = "card", capturedLast4, children, className, ...props }, ref) {
|
|
10784
|
+
return /* @__PURE__ */ jsxs(
|
|
10785
|
+
"div",
|
|
10786
|
+
{
|
|
10787
|
+
ref,
|
|
10788
|
+
className: cn("border-rule rounded-[14px] border p-5", className),
|
|
10789
|
+
...props,
|
|
10790
|
+
children: [
|
|
10791
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
|
|
10792
|
+
/* @__PURE__ */ jsx(
|
|
10793
|
+
"span",
|
|
10794
|
+
{
|
|
10795
|
+
"aria-hidden": "true",
|
|
10796
|
+
className: "rounded-card flex size-10 shrink-0 items-center justify-center bg-[var(--av-accent-tint,var(--color-accent-tint))] text-[var(--av-accent,var(--color-accent))]",
|
|
10797
|
+
children: /* @__PURE__ */ jsx(CreditCardIcon, { className: "size-5" })
|
|
10798
|
+
}
|
|
10799
|
+
),
|
|
10800
|
+
/* @__PURE__ */ jsxs("div", { className: "flex-1", children: [
|
|
10801
|
+
/* @__PURE__ */ jsx("div", { className: "text-fg text-sm font-semibold", children: title }),
|
|
10802
|
+
caption && /* @__PURE__ */ jsx("div", { className: "text-fg-4 text-xs", children: caption })
|
|
10803
|
+
] }),
|
|
10804
|
+
amount != null && /* @__PURE__ */ jsx("div", { className: "text-fg text-lg font-bold tabular", children: amount })
|
|
10805
|
+
] }),
|
|
10806
|
+
/* @__PURE__ */ jsx("div", { className: "mt-4", children: children ?? (capturedLast4 ? /* @__PURE__ */ jsxs("div", { className: "border-rule flex items-center gap-2.5 rounded-[10px] border px-3.5 py-3", children: [
|
|
10807
|
+
/* @__PURE__ */ jsx(CreditCardIcon, { className: "text-fg-4 size-4", "aria-hidden": "true" }),
|
|
10808
|
+
/* @__PURE__ */ jsxs("span", { className: "text-fg-2 text-sm font-medium tabular", children: [
|
|
10809
|
+
method === "bank" ? "Bank account" : "Card",
|
|
10810
|
+
" \u2022\u2022\u2022\u2022 ",
|
|
10811
|
+
capturedLast4
|
|
10812
|
+
] }),
|
|
10813
|
+
/* @__PURE__ */ jsx(CheckIcon, { className: "text-success-fg ml-auto size-4", "aria-hidden": "true" })
|
|
10814
|
+
] }) : /* @__PURE__ */ jsx("div", { className: "border-rule text-fg-4 flex h-11 items-center rounded-[10px] border border-dashed px-3.5 text-sm", children: method === "bank" ? "Bank account details" : "Card number" })) })
|
|
10815
|
+
]
|
|
10816
|
+
}
|
|
10817
|
+
);
|
|
10818
|
+
}
|
|
10819
|
+
);
|
|
10820
|
+
ProposalPaymentCapture.displayName = "ProposalPaymentCapture";
|
|
10821
|
+
function AiSpark({ size = 16, className }) {
|
|
10822
|
+
const id = useId();
|
|
10823
|
+
return /* @__PURE__ */ jsxs(
|
|
10824
|
+
"svg",
|
|
10825
|
+
{
|
|
10826
|
+
width: size,
|
|
10827
|
+
height: size * 12 / 16,
|
|
10828
|
+
viewBox: "0 0 16 12",
|
|
10829
|
+
fill: "none",
|
|
10830
|
+
className: cn("block shrink-0", className),
|
|
10831
|
+
"aria-hidden": "true",
|
|
10832
|
+
children: [
|
|
10833
|
+
/* @__PURE__ */ jsx(
|
|
10834
|
+
"path",
|
|
10835
|
+
{
|
|
10836
|
+
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",
|
|
10837
|
+
fill: `url(#${id})`
|
|
10838
|
+
}
|
|
10839
|
+
),
|
|
10840
|
+
/* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsxs(
|
|
10841
|
+
"linearGradient",
|
|
10842
|
+
{
|
|
10843
|
+
id,
|
|
10844
|
+
x1: "0.265576",
|
|
10845
|
+
y1: "0.856805",
|
|
10846
|
+
x2: "13.5",
|
|
10847
|
+
y2: "12",
|
|
10848
|
+
gradientUnits: "userSpaceOnUse",
|
|
10849
|
+
children: [
|
|
10850
|
+
/* @__PURE__ */ jsx("stop", { stopColor: "#9E32FF" }),
|
|
10851
|
+
/* @__PURE__ */ jsx("stop", { offset: "1", stopColor: "#1BB6FF" })
|
|
10852
|
+
]
|
|
10853
|
+
}
|
|
10854
|
+
) })
|
|
10855
|
+
]
|
|
10856
|
+
}
|
|
10857
|
+
);
|
|
10858
|
+
}
|
|
10859
|
+
function Field({ label, value, confirmed }) {
|
|
10860
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-0.5", children: [
|
|
10861
|
+
/* @__PURE__ */ jsx("span", { className: "text-fg-3 text-[11px]", children: label }),
|
|
10862
|
+
/* @__PURE__ */ jsxs("span", { className: "text-fg inline-flex items-center gap-1 text-sm font-medium", children: [
|
|
10863
|
+
value,
|
|
10864
|
+
confirmed && /* @__PURE__ */ jsx(CheckIcon, { className: "text-success-fg size-3", strokeWidth: 3 })
|
|
10865
|
+
] })
|
|
10866
|
+
] });
|
|
10867
|
+
}
|
|
10868
|
+
var AIReceiptPanel = forwardRef(function AIReceiptPanel2({ state = "idle", result, onAttach, onRemove, onViewFile, className, ...props }, ref) {
|
|
10869
|
+
if (state === "reading") {
|
|
10870
|
+
return /* @__PURE__ */ jsxs(
|
|
10871
|
+
"div",
|
|
10872
|
+
{
|
|
10873
|
+
ref,
|
|
10874
|
+
role: "status",
|
|
10875
|
+
"aria-live": "polite",
|
|
10876
|
+
className: cn(
|
|
10877
|
+
"border-rule bg-surface-2 flex items-center gap-3 rounded-[var(--radius-input)] border p-3",
|
|
10878
|
+
className
|
|
10879
|
+
),
|
|
10880
|
+
...props,
|
|
10881
|
+
children: [
|
|
10882
|
+
/* @__PURE__ */ jsx(AiSpark, { size: 18, className: "motion-safe:animate-pulse" }),
|
|
10883
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
10884
|
+
/* @__PURE__ */ jsx("p", { className: "text-fg text-sm font-medium", children: "Reading your receipt\u2026" }),
|
|
10885
|
+
/* @__PURE__ */ jsx("p", { className: "text-fg-3 text-xs", children: "Pulling the vendor, amount and a suggested category." })
|
|
10886
|
+
] })
|
|
10887
|
+
]
|
|
10888
|
+
}
|
|
10889
|
+
);
|
|
10890
|
+
}
|
|
10891
|
+
if (state === "done" && result) {
|
|
10892
|
+
return /* @__PURE__ */ jsxs(
|
|
10893
|
+
"div",
|
|
10894
|
+
{
|
|
10895
|
+
ref,
|
|
10896
|
+
className: cn(
|
|
10897
|
+
"border-rule bg-surface-2 flex flex-col gap-3 rounded-[var(--radius-input)] border p-3",
|
|
10898
|
+
className
|
|
10899
|
+
),
|
|
10900
|
+
...props,
|
|
10901
|
+
children: [
|
|
10902
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
|
|
10903
|
+
/* @__PURE__ */ jsxs("span", { className: "text-fg-2 inline-flex items-center gap-1.5 text-xs font-semibold", children: [
|
|
10904
|
+
/* @__PURE__ */ jsx(AiSpark, { size: 14 }),
|
|
10905
|
+
" Auto-filled from receipt"
|
|
10906
|
+
] }),
|
|
10907
|
+
onRemove && /* @__PURE__ */ jsx(Button, { variant: "ghost", size: "sm", onClick: onRemove, children: "Remove" })
|
|
10908
|
+
] }),
|
|
10909
|
+
/* @__PURE__ */ jsx(
|
|
10910
|
+
FileChip,
|
|
10911
|
+
{
|
|
10912
|
+
name: result.file.name,
|
|
10913
|
+
meta: result.file.meta,
|
|
10914
|
+
className: "bg-surface",
|
|
10915
|
+
action: onViewFile && /* @__PURE__ */ jsx(Button, { variant: "ghost", size: "sm", onClick: onViewFile, children: "View" })
|
|
10916
|
+
}
|
|
10917
|
+
),
|
|
10918
|
+
/* @__PURE__ */ jsxs("div", { className: "border-rule grid grid-cols-3 gap-3 border-t pt-3", children: [
|
|
10919
|
+
/* @__PURE__ */ jsx(Field, { label: "Vendor", value: result.vendor }),
|
|
10920
|
+
/* @__PURE__ */ jsx(Field, { label: "Amount", value: result.amount, confirmed: true }),
|
|
10921
|
+
/* @__PURE__ */ jsx(Field, { label: "Date", value: result.date, confirmed: true })
|
|
10922
|
+
] })
|
|
10923
|
+
]
|
|
10924
|
+
}
|
|
10925
|
+
);
|
|
10926
|
+
}
|
|
10927
|
+
return /* @__PURE__ */ jsxs(
|
|
10928
|
+
"button",
|
|
10929
|
+
{
|
|
10930
|
+
ref,
|
|
10931
|
+
type: "button",
|
|
10932
|
+
onClick: onAttach,
|
|
10933
|
+
className: cn(
|
|
10934
|
+
"group border-rule-strong bg-surface hover:border-pro-fg/50 hover:bg-pro-bg/40 flex w-full items-center gap-3 rounded-[var(--radius-input)] border-2 border-dashed p-3 text-left transition-colors duration-[var(--duration-fast)] ease-[var(--ease-out-quart)] focus-visible:outline-none focus-visible:[box-shadow:var(--shadow-focus-ring)] motion-reduce:transition-none",
|
|
10935
|
+
className
|
|
10936
|
+
),
|
|
10937
|
+
...props,
|
|
10938
|
+
children: [
|
|
10939
|
+
/* @__PURE__ */ jsx(AiSpark, { size: 19 }),
|
|
10940
|
+
/* @__PURE__ */ jsxs("span", { className: "min-w-0 flex-1", children: [
|
|
10941
|
+
/* @__PURE__ */ jsx("span", { className: "text-fg block text-sm font-medium", children: "Attach receipt \u2014 auto-fill with AI" }),
|
|
9894
10942
|
/* @__PURE__ */ jsx("span", { className: "text-fg-3 block text-xs", children: "We'll read the vendor, amount & suggest a category" })
|
|
9895
10943
|
] }),
|
|
9896
10944
|
/* @__PURE__ */ jsx(UploadIcon, { className: "text-fg-3 size-4.5 shrink-0", "aria-hidden": "true" })
|
|
@@ -13100,7 +14148,10 @@ var ACTIVITY_ICON = {
|
|
|
13100
14148
|
cancelled: XCircleSolidIcon,
|
|
13101
14149
|
received: DownloadIcon,
|
|
13102
14150
|
approved: CheckCircleSolidIcon,
|
|
13103
|
-
needs_revision: AlertTriangleIcon
|
|
14151
|
+
needs_revision: AlertTriangleIcon,
|
|
14152
|
+
locked: LockIcon,
|
|
14153
|
+
unlocked: LockOpenIcon,
|
|
14154
|
+
status: FlagIcon
|
|
13104
14155
|
};
|
|
13105
14156
|
var DocumentRequestDetail = forwardRef(
|
|
13106
14157
|
function DocumentRequestDetail2(props, ref) {
|
|
@@ -13430,6 +14481,55 @@ function FileRowActions({ doc }) {
|
|
|
13430
14481
|
)
|
|
13431
14482
|
] });
|
|
13432
14483
|
}
|
|
14484
|
+
var OPTIONS = [
|
|
14485
|
+
{ value: "all", label: "All" },
|
|
14486
|
+
{ value: "requested", label: "Requested", Icon: SendIcon },
|
|
14487
|
+
{ value: "direct", label: "Direct", Icon: UploadIcon },
|
|
14488
|
+
{ value: "internal", label: "Internal", Icon: ShieldIcon }
|
|
14489
|
+
];
|
|
14490
|
+
var DocumentSourceFilter = forwardRef(
|
|
14491
|
+
function DocumentSourceFilter2({
|
|
14492
|
+
value,
|
|
14493
|
+
onValueChange,
|
|
14494
|
+
counts,
|
|
14495
|
+
hideIcons,
|
|
14496
|
+
className,
|
|
14497
|
+
"aria-label": ariaLabel = "Filter by document source"
|
|
14498
|
+
}, ref) {
|
|
14499
|
+
return /* @__PURE__ */ jsx(
|
|
14500
|
+
ToggleGroup,
|
|
14501
|
+
{
|
|
14502
|
+
ref,
|
|
14503
|
+
type: "single",
|
|
14504
|
+
value,
|
|
14505
|
+
onValueChange: (next) => {
|
|
14506
|
+
if (next) onValueChange(next);
|
|
14507
|
+
},
|
|
14508
|
+
"aria-label": ariaLabel,
|
|
14509
|
+
className: cn("rounded-pill border-rule bg-surface gap-0.5 border p-1", className),
|
|
14510
|
+
children: OPTIONS.map(({ value: optionValue, label, Icon: Icon3 }) => {
|
|
14511
|
+
const count = counts?.[optionValue];
|
|
14512
|
+
const active = value === optionValue;
|
|
14513
|
+
return /* @__PURE__ */ jsxs(ToggleGroupItem, { value: optionValue, className: "gap-1.5", children: [
|
|
14514
|
+
!hideIcons && Icon3 && /* @__PURE__ */ jsx(Icon3, { size: 13, className: "shrink-0 opacity-90", "aria-hidden": "true" }),
|
|
14515
|
+
label,
|
|
14516
|
+
typeof count === "number" && /* @__PURE__ */ jsx(
|
|
14517
|
+
"span",
|
|
14518
|
+
{
|
|
14519
|
+
className: cn(
|
|
14520
|
+
"rounded-md px-1.5 py-px text-[11px] font-bold tabular-nums",
|
|
14521
|
+
active ? "bg-pro-bg-active text-pro-fg" : "bg-surface-2 text-fg-4"
|
|
14522
|
+
),
|
|
14523
|
+
children: count
|
|
14524
|
+
}
|
|
14525
|
+
)
|
|
14526
|
+
] }, optionValue);
|
|
14527
|
+
})
|
|
14528
|
+
}
|
|
14529
|
+
);
|
|
14530
|
+
}
|
|
14531
|
+
);
|
|
14532
|
+
DocumentSourceFilter.displayName = "DocumentSourceFilter";
|
|
13433
14533
|
var ActivityList = forwardRef(function ActivityList2({ className, children, ...props }, ref) {
|
|
13434
14534
|
return /* @__PURE__ */ jsx("ul", { ref, className: cn("flex flex-col", className), ...props, children });
|
|
13435
14535
|
});
|
|
@@ -15066,6 +16166,6 @@ function SignatureEditor({
|
|
|
15066
16166
|
}
|
|
15067
16167
|
SignatureEditor.displayName = "SignatureEditor";
|
|
15068
16168
|
|
|
15069
|
-
export { AIReceiptPanel, Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActivityEventItem, ActivityItem, ActivityList, 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, 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, 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 };
|
|
16169
|
+
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 };
|
|
15070
16170
|
//# sourceMappingURL=index.js.map
|
|
15071
16171
|
//# sourceMappingURL=index.js.map
|