@assure-one/design-system 1.30.0 → 1.31.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/README.md +4 -1
- package/dist/index.d.ts +50 -11
- package/dist/index.js +375 -167
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/tokens/index.d.ts +18 -0
- package/dist/tokens/index.js +19 -0
- package/dist/tokens/index.js.map +1 -1
- package/package.json +12 -10
package/dist/index.js
CHANGED
|
@@ -201,6 +201,11 @@ var systemTokens = {
|
|
|
201
201
|
accentHover: "var(--color-accent-hover)",
|
|
202
202
|
accentActive: "var(--color-accent-active)",
|
|
203
203
|
accentRing: "var(--color-accent-ring)",
|
|
204
|
+
/* Stable cross-product CTA; deliberately independent of [data-brand]. */
|
|
205
|
+
suiteAction: "var(--color-suite-action)",
|
|
206
|
+
suiteActionHover: "var(--color-suite-action-hover)",
|
|
207
|
+
suiteActionActive: "var(--color-suite-action-active)",
|
|
208
|
+
fgOnSuiteAction: "var(--color-fg-on-suite-action)",
|
|
204
209
|
/* Brand — ambient product family; follows the active [data-brand] scope,
|
|
205
210
|
defaulting to Pro. Prefer these (and the generated bg-brand / text-brand
|
|
206
211
|
/ border-brand-line / text-fg-on-brand utilities) for scope-aware chrome
|
|
@@ -349,6 +354,20 @@ var systemTokens = {
|
|
|
349
354
|
fast: "var(--duration-fast)",
|
|
350
355
|
normal: "var(--duration-normal)",
|
|
351
356
|
slow: "var(--duration-slow)"
|
|
357
|
+
},
|
|
358
|
+
semantic: {
|
|
359
|
+
duration: {
|
|
360
|
+
press: "var(--motion-duration-press)",
|
|
361
|
+
feedback: "var(--motion-duration-feedback)",
|
|
362
|
+
overlay: "var(--motion-duration-overlay)",
|
|
363
|
+
spatial: "var(--motion-duration-spatial)",
|
|
364
|
+
deliberate: "var(--motion-duration-deliberate)"
|
|
365
|
+
},
|
|
366
|
+
ease: {
|
|
367
|
+
enter: "var(--motion-ease-enter)",
|
|
368
|
+
exit: "var(--motion-ease-exit)",
|
|
369
|
+
move: "var(--motion-ease-move)"
|
|
370
|
+
}
|
|
352
371
|
}
|
|
353
372
|
},
|
|
354
373
|
layout: {
|
|
@@ -2732,6 +2751,14 @@ var AspectRatio = React39.forwardRef(function AspectRatio2({ className, ratio =
|
|
|
2732
2751
|
);
|
|
2733
2752
|
});
|
|
2734
2753
|
AspectRatio.displayName = AspectRatioPrimitive.Root.displayName;
|
|
2754
|
+
|
|
2755
|
+
// src/lib/micro-interactions.ts
|
|
2756
|
+
var microInteractions = {
|
|
2757
|
+
control: "transition-[color,background-color,border-color,box-shadow] duration-[var(--motion-duration-feedback)] ease-[var(--motion-ease-enter)] motion-reduce:transition-none",
|
|
2758
|
+
pressable: "transition-[color,background-color,border-color,box-shadow,transform] duration-[var(--motion-duration-feedback)] ease-[var(--motion-ease-enter)] active:scale-[0.98] motion-reduce:transform-none motion-reduce:transition-none",
|
|
2759
|
+
selection: "transition-[color,background-color,border-color,box-shadow] duration-[var(--motion-duration-press)] ease-[var(--motion-ease-enter)] motion-reduce:transition-none",
|
|
2760
|
+
overlay: "transition-[opacity,transform] duration-[var(--motion-duration-overlay)] ease-[var(--motion-ease-enter)] motion-reduce:transform-none motion-reduce:transition-none",
|
|
2761
|
+
progress: "transition-[width,height,stroke-dashoffset,background-color] duration-[var(--motion-duration-deliberate)] ease-[var(--motion-ease-enter)] motion-reduce:transition-none"};
|
|
2735
2762
|
var spinnerVariants = cva(
|
|
2736
2763
|
"inline-flex shrink-0 items-center justify-center [&_svg]:motion-reduce:animate-none",
|
|
2737
2764
|
{
|
|
@@ -2777,10 +2804,10 @@ Spinner.displayName = "Spinner";
|
|
|
2777
2804
|
var buttonVariants = cva(
|
|
2778
2805
|
cn(
|
|
2779
2806
|
"inline-flex items-center justify-center rounded-btn font-medium whitespace-nowrap cursor-pointer",
|
|
2780
|
-
|
|
2807
|
+
microInteractions.pressable,
|
|
2781
2808
|
"focus-visible:outline-none focus-visible:[box-shadow:var(--shadow-focus-ring)]",
|
|
2782
|
-
"disabled:pointer-events-none disabled:bg-bg-disabled disabled:text-fg-disabled",
|
|
2783
|
-
"
|
|
2809
|
+
"disabled:pointer-events-none [&:disabled:not([data-loading=true])]:bg-bg-disabled [&:disabled:not([data-loading=true])]:text-fg-disabled",
|
|
2810
|
+
"data-[loading=true]:cursor-wait",
|
|
2784
2811
|
"[&_svg]:size-4 [&_svg]:shrink-0"
|
|
2785
2812
|
),
|
|
2786
2813
|
{
|
|
@@ -2792,14 +2819,17 @@ var buttonVariants = cva(
|
|
|
2792
2819
|
success: "bg-success-fg text-fg-on-success hover:bg-success-fg-hover active:bg-success-fg-active",
|
|
2793
2820
|
ghost: "bg-control-bg text-control-fg hover:bg-control-hover-bg hover:text-control-hover-fg",
|
|
2794
2821
|
outline: "border border-control-border-strong bg-control-bg text-control-fg hover:bg-control-hover-bg hover:border-control-border-hover",
|
|
2795
|
-
link: "bg-transparent text-accent underline-offset-4 hover:underline p-0 h-auto",
|
|
2796
|
-
accent: "bg-
|
|
2822
|
+
link: "bg-transparent text-accent underline-offset-4 hover:underline p-0 h-auto active:scale-100",
|
|
2823
|
+
accent: "bg-suite-action text-fg-on-suite-action hover:bg-suite-action-hover active:bg-suite-action-active",
|
|
2797
2824
|
dashed: "border-2 border-dashed border-control-border bg-control-bg text-control-muted-fg hover:border-control-border-hover hover:bg-control-hover-bg hover:text-control-hover-fg"
|
|
2798
2825
|
},
|
|
2799
2826
|
size: {
|
|
2800
2827
|
sm: "h-8 px-3 text-[13px] gap-1.5",
|
|
2801
2828
|
md: "h-10 px-4 text-sm gap-2",
|
|
2802
2829
|
lg: "h-12 px-6 text-base gap-2",
|
|
2830
|
+
compact: "h-8 px-3 text-[13px] gap-1.5",
|
|
2831
|
+
default: "h-10 px-4 text-sm gap-2",
|
|
2832
|
+
comfortable: "h-12 px-6 text-base gap-2",
|
|
2803
2833
|
// Icon-only sizes. Hit target ≥ 24px (WCAG 2.5.5 floor).
|
|
2804
2834
|
// `icon-xs` / `icon-sm` are for dense in-row action stacks where
|
|
2805
2835
|
// `size="icon"` (40×40) would visually crowd the row.
|
|
@@ -2835,6 +2865,8 @@ var Button = forwardRef(function Button2({
|
|
|
2835
2865
|
{
|
|
2836
2866
|
ref,
|
|
2837
2867
|
disabled: disabled || loading,
|
|
2868
|
+
"aria-busy": loading || void 0,
|
|
2869
|
+
"data-loading": loading || void 0,
|
|
2838
2870
|
className: cn(buttonVariants({ variant, size }), className),
|
|
2839
2871
|
...props,
|
|
2840
2872
|
children: [
|
|
@@ -3523,7 +3555,7 @@ var Checkbox = React39.forwardRef(function Checkbox2({
|
|
|
3523
3555
|
className: cn(
|
|
3524
3556
|
"peer border-rule-strong bg-surface text-brand flex size-4 shrink-0 items-center justify-center border",
|
|
3525
3557
|
shape === "circle" ? "rounded-full" : "rounded-[4px]",
|
|
3526
|
-
|
|
3558
|
+
microInteractions.selection,
|
|
3527
3559
|
"hover:border-fg-4",
|
|
3528
3560
|
"focus-visible:[border-color:var(--focus-ring-border)] focus-visible:[box-shadow:var(--shadow-focus-ring)] focus-visible:outline-none",
|
|
3529
3561
|
"data-[state=checked]:border-brand data-[state=checked]:bg-brand-bg",
|
|
@@ -3855,9 +3887,8 @@ var DialogOverlay = React39.forwardRef(({ className, ...props }, ref) => /* @__P
|
|
|
3855
3887
|
ref,
|
|
3856
3888
|
className: cn(
|
|
3857
3889
|
"bg-overlay fixed inset-0 z-[var(--z-overlay)] backdrop-blur-[4px]",
|
|
3858
|
-
|
|
3890
|
+
microInteractions.overlay,
|
|
3859
3891
|
"data-[state=closed]:opacity-0 data-[state=open]:opacity-100",
|
|
3860
|
-
"motion-reduce:transition-none",
|
|
3861
3892
|
className
|
|
3862
3893
|
),
|
|
3863
3894
|
...props
|
|
@@ -3882,10 +3913,9 @@ var DialogContent = React39.forwardRef(({ size = "md", showCloseButton = true, c
|
|
|
3882
3913
|
"rounded-card border-rule bg-surface shadow-pop border p-6",
|
|
3883
3914
|
"font-body text-fg",
|
|
3884
3915
|
// motion: scale + fade keyed off data-state
|
|
3885
|
-
|
|
3916
|
+
microInteractions.overlay,
|
|
3886
3917
|
"data-[state=closed]:-translate-x-1/2 data-[state=closed]:-translate-y-[48%] data-[state=closed]:scale-95 data-[state=closed]:opacity-0",
|
|
3887
3918
|
"data-[state=open]:-translate-x-1/2 data-[state=open]:-translate-y-1/2 data-[state=open]:scale-100 data-[state=open]:opacity-100",
|
|
3888
|
-
"motion-reduce:transition-none",
|
|
3889
3919
|
dialogSizeStyles[size],
|
|
3890
3920
|
className
|
|
3891
3921
|
),
|
|
@@ -4429,10 +4459,9 @@ var PopoverContent = React39.forwardRef(({ className, align = "center", side = "
|
|
|
4429
4459
|
sideOffset,
|
|
4430
4460
|
className: cn(
|
|
4431
4461
|
"rounded-card border-rule bg-surface text-fg shadow-pop z-[var(--z-dropdown)] w-72 border p-4 outline-none",
|
|
4432
|
-
|
|
4462
|
+
microInteractions.overlay,
|
|
4433
4463
|
"data-[state=closed]:scale-95 data-[state=closed]:opacity-0",
|
|
4434
4464
|
"data-[state=open]:scale-100 data-[state=open]:opacity-100",
|
|
4435
|
-
"motion-reduce:transition-none",
|
|
4436
4465
|
className
|
|
4437
4466
|
),
|
|
4438
4467
|
...props
|
|
@@ -4956,8 +4985,8 @@ var chipVariants = cva(
|
|
|
4956
4985
|
{
|
|
4957
4986
|
variants: {
|
|
4958
4987
|
variant: {
|
|
4959
|
-
primary: "bg-
|
|
4960
|
-
neutral: "bg-
|
|
4988
|
+
primary: "bg-brand-bg text-brand hover:bg-brand-bg-hover",
|
|
4989
|
+
neutral: "bg-bg-2 text-fg-2 hover:bg-bg-3"
|
|
4961
4990
|
}
|
|
4962
4991
|
},
|
|
4963
4992
|
defaultVariants: {
|
|
@@ -5609,7 +5638,7 @@ IconTile.displayName = "IconTile";
|
|
|
5609
5638
|
var inputVariants = cva(
|
|
5610
5639
|
[
|
|
5611
5640
|
"flex w-full rounded-input border bg-surface font-body text-fg",
|
|
5612
|
-
|
|
5641
|
+
microInteractions.control,
|
|
5613
5642
|
"placeholder:text-fg-4",
|
|
5614
5643
|
"focus-visible:outline-none focus-visible:[border-color:var(--focus-ring-border)]",
|
|
5615
5644
|
"focus-visible:[box-shadow:var(--shadow-focus-ring)]",
|
|
@@ -5627,7 +5656,10 @@ var inputVariants = cva(
|
|
|
5627
5656
|
inputSize: {
|
|
5628
5657
|
sm: "h-8 px-2.5 py-1 text-xs",
|
|
5629
5658
|
md: "h-9 px-3 py-2 text-[13px]",
|
|
5630
|
-
lg: "h-11 px-3.5 py-2.5 text-sm"
|
|
5659
|
+
lg: "h-11 px-3.5 py-2.5 text-sm",
|
|
5660
|
+
compact: "h-8 px-2.5 py-1 text-[13px]",
|
|
5661
|
+
default: "h-10 px-3 py-2 text-sm",
|
|
5662
|
+
comfortable: "h-12 px-3.5 py-2.5 text-base"
|
|
5631
5663
|
}
|
|
5632
5664
|
},
|
|
5633
5665
|
defaultVariants: {
|
|
@@ -5639,7 +5671,10 @@ var inputVariants = cva(
|
|
|
5639
5671
|
var floatingLabelSize = {
|
|
5640
5672
|
sm: "text-xs",
|
|
5641
5673
|
md: "text-[13px]",
|
|
5642
|
-
lg: "text-sm"
|
|
5674
|
+
lg: "text-sm",
|
|
5675
|
+
compact: "text-[13px]",
|
|
5676
|
+
default: "text-sm",
|
|
5677
|
+
comfortable: "text-base"
|
|
5643
5678
|
};
|
|
5644
5679
|
var Input = forwardRef(function Input2({
|
|
5645
5680
|
label,
|
|
@@ -5726,7 +5761,6 @@ var Input = forwardRef(function Input2({
|
|
|
5726
5761
|
onClick: () => setShowPassword((prev) => !prev),
|
|
5727
5762
|
className: "text-fg-4 hover:text-fg absolute top-1/2 right-2.5 -translate-y-1/2 transition-colors duration-[var(--duration-fast)] ease-[var(--ease-out-quart)] focus-visible:[box-shadow:var(--shadow-focus-ring)] focus-visible:outline-none motion-reduce:transition-none",
|
|
5728
5763
|
"aria-label": showPassword ? "Hide password" : "Show password",
|
|
5729
|
-
tabIndex: -1,
|
|
5730
5764
|
children: showPassword ? /* @__PURE__ */ jsx(EyeOffIcon, { className: "size-4", "aria-hidden": "true" }) : /* @__PURE__ */ jsx(EyeIcon, { className: "size-4", "aria-hidden": "true" })
|
|
5731
5765
|
}
|
|
5732
5766
|
),
|
|
@@ -5871,7 +5905,7 @@ var Skeleton = forwardRef(function Skeleton2({ className, ...props }, ref) {
|
|
|
5871
5905
|
"div",
|
|
5872
5906
|
{
|
|
5873
5907
|
ref,
|
|
5874
|
-
className: cn("skeleton bg-bg-3 rounded-icon animate-pulse", className),
|
|
5908
|
+
className: cn("skeleton bg-bg-3 rounded-icon animate-pulse motion-reduce:animate-none", className),
|
|
5875
5909
|
"aria-hidden": "true",
|
|
5876
5910
|
...props
|
|
5877
5911
|
}
|
|
@@ -5883,7 +5917,7 @@ var SkeletonText = forwardRef(function SkeletonText2({ lines = 3, className, ...
|
|
|
5883
5917
|
"div",
|
|
5884
5918
|
{
|
|
5885
5919
|
className: cn(
|
|
5886
|
-
"skeleton bg-bg-3 rounded-icon h-4 animate-pulse",
|
|
5920
|
+
"skeleton bg-bg-3 rounded-icon h-4 animate-pulse motion-reduce:animate-none",
|
|
5887
5921
|
i === lines - 1 && "w-3/4"
|
|
5888
5922
|
)
|
|
5889
5923
|
},
|
|
@@ -5897,7 +5931,7 @@ var SkeletonCircle = forwardRef(
|
|
|
5897
5931
|
"div",
|
|
5898
5932
|
{
|
|
5899
5933
|
ref,
|
|
5900
|
-
className: cn("skeleton bg-bg-3 animate-pulse rounded-full", className),
|
|
5934
|
+
className: cn("skeleton bg-bg-3 animate-pulse rounded-full motion-reduce:animate-none", className),
|
|
5901
5935
|
style: { width: size, height: size },
|
|
5902
5936
|
"aria-hidden": "true",
|
|
5903
5937
|
...props
|
|
@@ -7016,11 +7050,11 @@ function CountrySelect({
|
|
|
7016
7050
|
type: "button",
|
|
7017
7051
|
disabled,
|
|
7018
7052
|
"aria-label": "Select country code",
|
|
7019
|
-
className: "rounded-input flex h-9 w-[90px] shrink-0 items-center gap-1.5 border border-
|
|
7053
|
+
className: "rounded-input flex h-9 w-[90px] shrink-0 items-center gap-1.5 border border-rule-strong bg-surface px-2.5 text-sm text-fg transition-colors focus-visible:[box-shadow:var(--shadow-focus-ring)] focus-visible:outline-none motion-reduce:transition-none disabled:cursor-not-allowed disabled:bg-bg-disabled disabled:text-fg-disabled",
|
|
7020
7054
|
children: [
|
|
7021
7055
|
/* @__PURE__ */ jsx(CountryFlag, { iso: selected.iso }),
|
|
7022
|
-
/* @__PURE__ */ jsx("span", { className: "text-xs tabular-nums text-
|
|
7023
|
-
/* @__PURE__ */ jsx(
|
|
7056
|
+
/* @__PURE__ */ jsx("span", { className: "text-xs tabular-nums text-fg-3", children: selected.dialCode }),
|
|
7057
|
+
/* @__PURE__ */ jsx(ChevronDownIcon, { className: "ml-auto size-3 shrink-0 text-fg-3", "aria-hidden": "true" })
|
|
7024
7058
|
]
|
|
7025
7059
|
}
|
|
7026
7060
|
) }),
|
|
@@ -7031,7 +7065,7 @@ function CountrySelect({
|
|
|
7031
7065
|
align: "start",
|
|
7032
7066
|
sideOffset: 4,
|
|
7033
7067
|
style: { zIndex: 9999, minWidth: 248 },
|
|
7034
|
-
className: "rounded-card border border-
|
|
7068
|
+
className: "rounded-card border border-rule bg-surface shadow-xl outline-none motion-reduce:transition-none",
|
|
7035
7069
|
onOpenAutoFocus: (e) => {
|
|
7036
7070
|
e.preventDefault();
|
|
7037
7071
|
searchRef.current?.focus({ preventScroll: true });
|
|
@@ -7041,11 +7075,8 @@ function CountrySelect({
|
|
|
7041
7075
|
if (e.key !== "Escape") e.stopPropagation();
|
|
7042
7076
|
},
|
|
7043
7077
|
children: [
|
|
7044
|
-
/* @__PURE__ */ jsx("div", { className: "rounded-t-card border-b border-
|
|
7045
|
-
/* @__PURE__ */
|
|
7046
|
-
/* @__PURE__ */ jsx("circle", { cx: "11", cy: "11", r: "8" }),
|
|
7047
|
-
/* @__PURE__ */ jsx("path", { d: "m21 21-4.35-4.35" })
|
|
7048
|
-
] }),
|
|
7078
|
+
/* @__PURE__ */ jsx("div", { className: "rounded-t-card border-b border-rule px-3 py-2.5", children: /* @__PURE__ */ jsxs("div", { className: "rounded-input flex items-center gap-2 border border-rule-strong bg-surface px-2.5", children: [
|
|
7079
|
+
/* @__PURE__ */ jsx(SearchIcon, { className: "size-3.5 shrink-0 text-fg-3", "aria-hidden": "true" }),
|
|
7049
7080
|
/* @__PURE__ */ jsx(
|
|
7050
7081
|
"input",
|
|
7051
7082
|
{
|
|
@@ -7054,7 +7085,7 @@ function CountrySelect({
|
|
|
7054
7085
|
onChange: (e) => setSearch(e.target.value),
|
|
7055
7086
|
onKeyDown: (e) => e.stopPropagation(),
|
|
7056
7087
|
placeholder: "Search country or code...",
|
|
7057
|
-
className: "h-8 flex-1 bg-transparent text-xs text-
|
|
7088
|
+
className: "h-8 flex-1 bg-transparent text-xs text-fg placeholder:text-fg-3 focus:outline-none"
|
|
7058
7089
|
}
|
|
7059
7090
|
)
|
|
7060
7091
|
] }) }),
|
|
@@ -7064,7 +7095,7 @@ function CountrySelect({
|
|
|
7064
7095
|
className: "rounded-b-card max-h-56 overflow-y-auto",
|
|
7065
7096
|
style: { overscrollBehavior: "contain" },
|
|
7066
7097
|
onWheel: (e) => e.stopPropagation(),
|
|
7067
|
-
children: filtered.length === 0 ? /* @__PURE__ */ jsx("p", { className: "px-4 py-3 text-center text-xs text-
|
|
7098
|
+
children: filtered.length === 0 ? /* @__PURE__ */ jsx("p", { className: "px-4 py-3 text-center text-xs text-fg-3", children: "No countries found" }) : filtered.map((c) => /* @__PURE__ */ jsxs(
|
|
7068
7099
|
"button",
|
|
7069
7100
|
{
|
|
7070
7101
|
type: "button",
|
|
@@ -7075,13 +7106,13 @@ function CountrySelect({
|
|
|
7075
7106
|
setSearch("");
|
|
7076
7107
|
},
|
|
7077
7108
|
className: cn(
|
|
7078
|
-
"flex w-full items-center gap-3 px-3 py-2 text-left transition-colors hover:bg-
|
|
7079
|
-
c.iso === value && "bg-
|
|
7109
|
+
"flex w-full items-center gap-3 px-3 py-2 text-left transition-colors hover:bg-bg-2/60 motion-reduce:transition-none",
|
|
7110
|
+
c.iso === value && "bg-brand-bg"
|
|
7080
7111
|
),
|
|
7081
7112
|
children: [
|
|
7082
7113
|
/* @__PURE__ */ jsx(CountryFlag, { iso: c.iso }),
|
|
7083
|
-
/* @__PURE__ */ jsx("span", { className: "flex-1 truncate text-xs text-
|
|
7084
|
-
/* @__PURE__ */ jsx("span", { className: "shrink-0 text-xs tabular-nums text-
|
|
7114
|
+
/* @__PURE__ */ jsx("span", { className: "flex-1 truncate text-xs text-fg", children: c.name }),
|
|
7115
|
+
/* @__PURE__ */ jsx("span", { className: "shrink-0 text-xs tabular-nums text-fg-3", children: c.dialCode })
|
|
7085
7116
|
]
|
|
7086
7117
|
},
|
|
7087
7118
|
c.iso
|
|
@@ -7120,7 +7151,7 @@ function PhoneCountryInput({
|
|
|
7120
7151
|
}
|
|
7121
7152
|
)
|
|
7122
7153
|
] }),
|
|
7123
|
-
error && /* @__PURE__ */ jsx("p", { className: "mt-1 text-xs text-
|
|
7154
|
+
error && /* @__PURE__ */ jsx("p", { className: "mt-1 text-xs text-danger-fg", children: error })
|
|
7124
7155
|
] });
|
|
7125
7156
|
}
|
|
7126
7157
|
var BARS = [
|
|
@@ -7182,7 +7213,7 @@ function PriorityIcon({ priority, size = 16, className, ...props }) {
|
|
|
7182
7213
|
);
|
|
7183
7214
|
}
|
|
7184
7215
|
var progressBarVariants = cva(
|
|
7185
|
-
"h-full rounded-full
|
|
7216
|
+
cn("h-full rounded-full", microInteractions.progress),
|
|
7186
7217
|
{
|
|
7187
7218
|
variants: {
|
|
7188
7219
|
variant: {
|
|
@@ -7222,7 +7253,7 @@ var ProgressBar = forwardRef(function ProgressBar2({ value, max = 100, label, sh
|
|
|
7222
7253
|
{
|
|
7223
7254
|
className: cn(
|
|
7224
7255
|
progressBarVariants({ variant: resolvedVariant }),
|
|
7225
|
-
isIndeterminate && "absolute inset-y-0 left-0 w-1/3 animate-[progress-indeterminate_1.4s_var(--ease-out-quart)_infinite]"
|
|
7256
|
+
isIndeterminate && "absolute inset-y-0 left-0 w-1/3 animate-[progress-indeterminate_1.4s_var(--ease-out-quart)_infinite] motion-reduce:animate-none"
|
|
7226
7257
|
),
|
|
7227
7258
|
style: isIndeterminate ? void 0 : { width: `${percentage}%` }
|
|
7228
7259
|
}
|
|
@@ -7239,7 +7270,7 @@ var ProgressBar = forwardRef(function ProgressBar2({ value, max = 100, label, sh
|
|
|
7239
7270
|
});
|
|
7240
7271
|
ProgressBar.displayName = "ProgressBar";
|
|
7241
7272
|
var progressRingVariants = cva(
|
|
7242
|
-
"transition-[stroke-dashoffset,stroke] duration-[var(--duration-slow)] ease-[var(--ease-out-quart)]",
|
|
7273
|
+
"transition-[stroke-dashoffset,stroke] duration-[var(--duration-slow)] ease-[var(--ease-out-quart)] motion-reduce:transition-none",
|
|
7243
7274
|
{
|
|
7244
7275
|
variants: {
|
|
7245
7276
|
variant: {
|
|
@@ -7324,7 +7355,7 @@ var RadioGroupItem = React39.forwardRef(function RadioGroupItem2({ className, la
|
|
|
7324
7355
|
id,
|
|
7325
7356
|
className: cn(
|
|
7326
7357
|
"peer border-rule-strong bg-surface text-brand aspect-square size-4 shrink-0 rounded-full border",
|
|
7327
|
-
|
|
7358
|
+
microInteractions.selection,
|
|
7328
7359
|
"hover:border-fg-4",
|
|
7329
7360
|
"focus-visible:[border-color:var(--focus-ring-border)] focus-visible:[box-shadow:var(--shadow-focus-ring)] focus-visible:outline-none",
|
|
7330
7361
|
"data-[state=checked]:border-brand",
|
|
@@ -7601,7 +7632,8 @@ var RouteTransition = forwardRef(
|
|
|
7601
7632
|
{
|
|
7602
7633
|
className: cn(
|
|
7603
7634
|
"animate-in fade-in-0 slide-in-from-bottom-2",
|
|
7604
|
-
"duration-[var(--duration-normal)] ease-[var(--ease-out-quart)]"
|
|
7635
|
+
"duration-[var(--duration-normal)] ease-[var(--ease-out-quart)]",
|
|
7636
|
+
"motion-reduce:animate-none"
|
|
7605
7637
|
),
|
|
7606
7638
|
children
|
|
7607
7639
|
},
|
|
@@ -7672,8 +7704,7 @@ function useDebounce(value, delay = 300) {
|
|
|
7672
7704
|
var searchInputVariants = cva(
|
|
7673
7705
|
[
|
|
7674
7706
|
"flex w-full rounded-input border border-rule-strong bg-surface font-body text-fg",
|
|
7675
|
-
|
|
7676
|
-
"motion-reduce:transition-none",
|
|
7707
|
+
microInteractions.control,
|
|
7677
7708
|
"placeholder:text-fg-4",
|
|
7678
7709
|
"focus-visible:outline-none focus-visible:[border-color:var(--focus-ring-border)]",
|
|
7679
7710
|
"focus-visible:[box-shadow:var(--shadow-focus-ring)]",
|
|
@@ -7690,7 +7721,10 @@ var searchInputVariants = cva(
|
|
|
7690
7721
|
// FilterChip at their `sm` tier in a toolbar row.
|
|
7691
7722
|
sm: "h-8 pl-8 pr-8 text-[13px]",
|
|
7692
7723
|
md: "h-9 pl-9 pr-9 text-[13px]",
|
|
7693
|
-
lg: "h-11 pl-10 pr-10 text-sm"
|
|
7724
|
+
lg: "h-11 pl-10 pr-10 text-sm",
|
|
7725
|
+
compact: "h-8 pl-8 pr-8 text-[13px]",
|
|
7726
|
+
default: "h-10 pl-9 pr-9 text-sm",
|
|
7727
|
+
comfortable: "h-12 pl-10 pr-10 text-base"
|
|
7694
7728
|
}
|
|
7695
7729
|
},
|
|
7696
7730
|
defaultVariants: {
|
|
@@ -7720,9 +7754,11 @@ var SearchInput = React39.forwardRef(
|
|
|
7720
7754
|
onSearch?.(debouncedValue);
|
|
7721
7755
|
}, [debouncedValue, onSearch]);
|
|
7722
7756
|
const sz = inputSize ?? "md";
|
|
7723
|
-
const
|
|
7724
|
-
const
|
|
7725
|
-
const
|
|
7757
|
+
const isCompact = sz === "sm" || sz === "compact";
|
|
7758
|
+
const isComfortable = sz === "lg" || sz === "comfortable";
|
|
7759
|
+
const iconLeftClass = isCompact ? "left-2.5" : "left-3";
|
|
7760
|
+
const iconRightClass = isCompact ? "right-2" : isComfortable ? "right-3" : "right-2.5";
|
|
7761
|
+
const iconSizeClass = isCompact ? "size-3.5" : "size-4";
|
|
7726
7762
|
return /* @__PURE__ */ jsxs("div", { className: cn("relative w-full", className), children: [
|
|
7727
7763
|
/* @__PURE__ */ jsx(
|
|
7728
7764
|
SearchIcon,
|
|
@@ -7755,14 +7791,12 @@ var SearchInput = React39.forwardRef(
|
|
|
7755
7791
|
onClick: () => onValueChange(""),
|
|
7756
7792
|
className: cn(
|
|
7757
7793
|
"rounded-pill text-fg-4 absolute top-1/2 -translate-y-1/2 p-0.5",
|
|
7758
|
-
|
|
7759
|
-
"motion-reduce:transition-none",
|
|
7794
|
+
microInteractions.control,
|
|
7760
7795
|
"hover:text-fg",
|
|
7761
7796
|
"focus-visible:[box-shadow:var(--shadow-focus-ring)] focus-visible:outline-none",
|
|
7762
7797
|
iconRightClass
|
|
7763
7798
|
),
|
|
7764
7799
|
"aria-label": "Clear search",
|
|
7765
|
-
tabIndex: -1,
|
|
7766
7800
|
children: /* @__PURE__ */ jsx(XIcon, { className: iconSizeClass, "aria-hidden": "true" })
|
|
7767
7801
|
}
|
|
7768
7802
|
)
|
|
@@ -9598,8 +9632,8 @@ TabsList.displayName = TabsPrimitive.List.displayName;
|
|
|
9598
9632
|
var triggerVariants = cva(
|
|
9599
9633
|
cn(
|
|
9600
9634
|
"inline-flex items-center justify-center gap-2 text-[13px] font-medium",
|
|
9601
|
-
"text-fg-3
|
|
9602
|
-
|
|
9635
|
+
"text-fg-3",
|
|
9636
|
+
microInteractions.selection,
|
|
9603
9637
|
"focus-visible:outline-none focus-visible:[box-shadow:var(--shadow-focus-ring)]",
|
|
9604
9638
|
"disabled:pointer-events-none disabled:cursor-not-allowed disabled:text-fg-disabled",
|
|
9605
9639
|
"hover:text-fg"
|
|
@@ -9712,6 +9746,7 @@ var textareaVariants = cva(
|
|
|
9712
9746
|
[
|
|
9713
9747
|
"flex w-full rounded-input border bg-surface font-body text-fg",
|
|
9714
9748
|
"transition-[color,background-color,border-color,box-shadow] duration-[var(--duration-fast)]",
|
|
9749
|
+
"motion-reduce:transition-none",
|
|
9715
9750
|
"placeholder:text-fg-4",
|
|
9716
9751
|
"focus-visible:outline-none focus-visible:[border-color:var(--focus-ring-border)]",
|
|
9717
9752
|
"focus-visible:[box-shadow:var(--shadow-focus-ring)]",
|
|
@@ -10140,8 +10175,8 @@ function ToastItem({ toast, onDismiss }) {
|
|
|
10140
10175
|
var itemVariants = cva(
|
|
10141
10176
|
cn(
|
|
10142
10177
|
"inline-flex items-center justify-center rounded-pill px-3 py-1.5 text-[13px] font-medium",
|
|
10143
|
-
"text-fg-3
|
|
10144
|
-
|
|
10178
|
+
"text-fg-3",
|
|
10179
|
+
microInteractions.selection,
|
|
10145
10180
|
"hover:bg-bg-2 hover:text-fg",
|
|
10146
10181
|
"focus-visible:outline-none focus-visible:[box-shadow:var(--shadow-focus-ring)]",
|
|
10147
10182
|
"disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-bg-disabled disabled:text-fg-disabled",
|
|
@@ -10221,11 +10256,11 @@ var VisuallyHidden = forwardRef(
|
|
|
10221
10256
|
VisuallyHidden.displayName = "VisuallyHidden";
|
|
10222
10257
|
var TONE_DOT = {
|
|
10223
10258
|
brand: "bg-brand",
|
|
10224
|
-
info: "bg-
|
|
10225
|
-
success: "bg-success",
|
|
10226
|
-
warning: "bg-warning",
|
|
10227
|
-
muted: "bg-
|
|
10228
|
-
danger: "bg-
|
|
10259
|
+
info: "bg-accent-2",
|
|
10260
|
+
success: "bg-success-fg",
|
|
10261
|
+
warning: "bg-warning-fg",
|
|
10262
|
+
muted: "bg-fg-4/40",
|
|
10263
|
+
danger: "bg-danger-fg"
|
|
10229
10264
|
};
|
|
10230
10265
|
function ChannelTabs({ tabs, value, onChange, className, ...props }) {
|
|
10231
10266
|
return /* @__PURE__ */ jsx(
|
|
@@ -10233,7 +10268,7 @@ function ChannelTabs({ tabs, value, onChange, className, ...props }) {
|
|
|
10233
10268
|
{
|
|
10234
10269
|
role: "tablist",
|
|
10235
10270
|
"aria-label": "Channel",
|
|
10236
|
-
className: cn("flex items-center gap-1 border-b border-
|
|
10271
|
+
className: cn("flex items-center gap-1 border-b border-rule bg-surface px-3 py-2", className),
|
|
10237
10272
|
...props,
|
|
10238
10273
|
children: tabs.map((tab) => {
|
|
10239
10274
|
const active = value === tab.value;
|
|
@@ -10246,9 +10281,9 @@ function ChannelTabs({ tabs, value, onChange, className, ...props }) {
|
|
|
10246
10281
|
"aria-selected": active,
|
|
10247
10282
|
onClick: () => onChange(tab.value),
|
|
10248
10283
|
className: cn(
|
|
10249
|
-
"flex items-center gap-2 rounded-md border px-3 py-1.5 text-sm font-medium transition-colors",
|
|
10250
|
-
"focus-visible:
|
|
10251
|
-
active ? "border-brand bg-brand/5 text-brand" : "border-transparent text-
|
|
10284
|
+
"flex items-center gap-2 rounded-md border px-3 py-1.5 text-sm font-medium transition-colors motion-reduce:transition-none",
|
|
10285
|
+
"focus-visible:[box-shadow:var(--shadow-focus-ring)] focus-visible:outline-none",
|
|
10286
|
+
active ? "border-brand bg-brand/5 text-brand" : "border-transparent text-fg-3 hover:text-fg"
|
|
10252
10287
|
),
|
|
10253
10288
|
children: [
|
|
10254
10289
|
/* @__PURE__ */ jsx(
|
|
@@ -10256,7 +10291,7 @@ function ChannelTabs({ tabs, value, onChange, className, ...props }) {
|
|
|
10256
10291
|
{
|
|
10257
10292
|
className: cn(
|
|
10258
10293
|
"size-1.5 rounded-full",
|
|
10259
|
-
active ? TONE_DOT[tab.tone ?? "muted"] : "bg-
|
|
10294
|
+
active ? TONE_DOT[tab.tone ?? "muted"] : "bg-fg-4/40"
|
|
10260
10295
|
),
|
|
10261
10296
|
"aria-hidden": true
|
|
10262
10297
|
}
|
|
@@ -10267,7 +10302,7 @@ function ChannelTabs({ tabs, value, onChange, className, ...props }) {
|
|
|
10267
10302
|
{
|
|
10268
10303
|
className: cn(
|
|
10269
10304
|
"ml-0.5 inline-flex h-4 min-w-4 items-center justify-center rounded-full px-1 text-[10px] font-semibold tabular-nums",
|
|
10270
|
-
active ? "bg-
|
|
10305
|
+
active ? "bg-bg/60" : "bg-bg-2 text-fg-3"
|
|
10271
10306
|
),
|
|
10272
10307
|
children: count
|
|
10273
10308
|
}
|
|
@@ -10283,12 +10318,12 @@ function ChannelTabs({ tabs, value, onChange, className, ...props }) {
|
|
|
10283
10318
|
ChannelTabs.displayName = "ChannelTabs";
|
|
10284
10319
|
var TONE_STYLES = {
|
|
10285
10320
|
brand: "bg-brand/10 text-brand border-brand/30",
|
|
10286
|
-
info: "bg-
|
|
10287
|
-
primary: "bg-
|
|
10288
|
-
success: "bg-success
|
|
10289
|
-
warning: "bg-warning
|
|
10290
|
-
danger: "bg-
|
|
10291
|
-
muted: "bg-
|
|
10321
|
+
info: "bg-accent-tint text-accent-2 border-accent/30",
|
|
10322
|
+
primary: "bg-brand-bg text-brand border-brand-line",
|
|
10323
|
+
success: "bg-success-bg text-success-fg border-success-line",
|
|
10324
|
+
warning: "bg-warning-bg text-warning-fg border-warning-line",
|
|
10325
|
+
danger: "bg-danger-bg text-danger-fg border-danger-line",
|
|
10326
|
+
muted: "bg-bg-2 text-fg-3 border-rule"
|
|
10292
10327
|
};
|
|
10293
10328
|
function IntentBadge({ tone = "muted", icon, children, className, ...props }) {
|
|
10294
10329
|
return /* @__PURE__ */ jsxs(
|
|
@@ -11563,7 +11598,7 @@ var Grid = forwardRef(function Grid2({
|
|
|
11563
11598
|
return /* @__PURE__ */ jsx("div", { ref, className: cn("overflow-x-auto", className), ...props, children: /* @__PURE__ */ jsxs(
|
|
11564
11599
|
"div",
|
|
11565
11600
|
{
|
|
11566
|
-
role: "
|
|
11601
|
+
role: "group",
|
|
11567
11602
|
"aria-label": ariaLabel,
|
|
11568
11603
|
className: "grid gap-2",
|
|
11569
11604
|
style: {
|
|
@@ -12139,6 +12174,7 @@ function QuestionOptionButton({
|
|
|
12139
12174
|
className: cn(
|
|
12140
12175
|
"group bg-surface flex w-full items-center gap-3 border text-left",
|
|
12141
12176
|
"transition-[border-color,background-color,color,box-shadow,transform] duration-[var(--duration-fast)] ease-[var(--ease-out-quart)]",
|
|
12177
|
+
"motion-reduce:transition-none",
|
|
12142
12178
|
"focus-visible:[box-shadow:var(--shadow-focus-ring)] focus-visible:outline-none",
|
|
12143
12179
|
"disabled:bg-bg-disabled disabled:text-fg-disabled disabled:cursor-not-allowed",
|
|
12144
12180
|
compact ? "h-10 max-w-max rounded-[10px] px-3" : "min-h-16 rounded-[12px] px-7 py-4",
|
|
@@ -12152,7 +12188,7 @@ function QuestionOptionButton({
|
|
|
12152
12188
|
{
|
|
12153
12189
|
"aria-hidden": "true",
|
|
12154
12190
|
className: cn(
|
|
12155
|
-
"grid shrink-0 place-items-center rounded-full border transition-colors duration-[var(--duration-fast)]",
|
|
12191
|
+
"grid shrink-0 place-items-center rounded-full border transition-colors duration-[var(--duration-fast)] motion-reduce:transition-none",
|
|
12156
12192
|
compact ? "size-5" : "size-4",
|
|
12157
12193
|
selected ? "border-brand bg-brand text-fg-on-brand" : "border-rule-strong bg-surface group-hover:border-brand-line text-transparent"
|
|
12158
12194
|
),
|
|
@@ -12904,7 +12940,7 @@ var EngagementTimelineStep = forwardRef(
|
|
|
12904
12940
|
}
|
|
12905
12941
|
);
|
|
12906
12942
|
EngagementTimelineStep.displayName = "EngagementTimelineStep";
|
|
12907
|
-
var ROW_BASE = "group/row flex w-full items-center gap-1.5 rounded-lg px-2.5 py-1 text-left text-[12px] font-medium transition-colors duration-[
|
|
12943
|
+
var ROW_BASE = "group/row flex w-full items-center gap-1.5 rounded-lg px-2.5 py-1 text-left text-[12px] font-medium transition-colors duration-[var(--motion-duration-feedback)] motion-reduce:transition-none";
|
|
12908
12944
|
var ROW_INACTIVE = "text-fg-2 hover:bg-surface-2 hover:text-fg";
|
|
12909
12945
|
var ROW_ACTIVE = "bg-brand-bg text-brand font-semibold";
|
|
12910
12946
|
var BADGE_BASE = "ml-auto min-w-[18px] rounded-full px-[5px] py-px text-center text-[10px] font-[650] tabular-nums";
|
|
@@ -12948,7 +12984,7 @@ var FolderTree = forwardRef(function FolderTree2({ nodes, activeId, onSelect, de
|
|
|
12948
12984
|
toggle(node.id);
|
|
12949
12985
|
},
|
|
12950
12986
|
className: cn(
|
|
12951
|
-
"shrink-0 text-fg-4 transition-transform duration-[
|
|
12987
|
+
"shrink-0 text-fg-4 transition-transform duration-[var(--motion-duration-feedback)] motion-reduce:transition-none",
|
|
12952
12988
|
isOpen && "rotate-90"
|
|
12953
12989
|
),
|
|
12954
12990
|
children: /* @__PURE__ */ jsx(ChevronRightIcon, { size: 13, "aria-hidden": "true" })
|
|
@@ -13011,7 +13047,7 @@ var ClientRailItem = forwardRef(
|
|
|
13011
13047
|
// Layout
|
|
13012
13048
|
"relative flex w-full items-center gap-[11px] border-b border-rule px-[14px] py-[11px] text-left",
|
|
13013
13049
|
// Motion
|
|
13014
|
-
"transition-colors duration-[
|
|
13050
|
+
"transition-colors duration-[var(--motion-duration-feedback)] motion-reduce:transition-none",
|
|
13015
13051
|
// Cursor
|
|
13016
13052
|
"cursor-pointer",
|
|
13017
13053
|
// State — hover only when not active to avoid override
|
|
@@ -13143,7 +13179,7 @@ function CheckboxSlot({
|
|
|
13143
13179
|
"div",
|
|
13144
13180
|
{
|
|
13145
13181
|
className: cn(
|
|
13146
|
-
"shrink-0 transition-opacity duration-[
|
|
13182
|
+
"shrink-0 transition-opacity duration-[var(--motion-duration-feedback)] motion-reduce:transition-none",
|
|
13147
13183
|
selected ? "opacity-100" : "opacity-0 group-hover:opacity-100",
|
|
13148
13184
|
className
|
|
13149
13185
|
),
|
|
@@ -13170,7 +13206,7 @@ function MoreActions({ menu }) {
|
|
|
13170
13206
|
type: "button",
|
|
13171
13207
|
className: cn(
|
|
13172
13208
|
"grid size-[30px] place-items-center rounded-[8px] text-fg-4",
|
|
13173
|
-
"transition-colors duration-[
|
|
13209
|
+
"transition-colors duration-[var(--motion-duration-feedback)] motion-reduce:transition-none",
|
|
13174
13210
|
"group-hover:text-fg-2 hover:bg-surface hover:text-brand hover:shadow-sm"
|
|
13175
13211
|
),
|
|
13176
13212
|
"aria-label": "More actions",
|
|
@@ -13210,7 +13246,7 @@ var DocumentFileRow = React39.forwardRef(
|
|
|
13210
13246
|
ref,
|
|
13211
13247
|
className: cn(
|
|
13212
13248
|
"group flex cursor-pointer items-center gap-[13px] border-b border-rule px-[14px] py-3",
|
|
13213
|
-
"transition-colors duration-[
|
|
13249
|
+
"transition-colors duration-[var(--motion-duration-feedback)] motion-reduce:transition-none hover:bg-surface-2",
|
|
13214
13250
|
selected && "bg-brand-bg",
|
|
13215
13251
|
className
|
|
13216
13252
|
),
|
|
@@ -13277,7 +13313,7 @@ var DocumentFileCard = React39.forwardRef(
|
|
|
13277
13313
|
ref,
|
|
13278
13314
|
className: cn(
|
|
13279
13315
|
"group relative cursor-pointer rounded-2xl border border-rule bg-surface p-3",
|
|
13280
|
-
"transition-[border-color,box-shadow,transform] duration-[
|
|
13316
|
+
"transition-[border-color,box-shadow,transform] duration-[var(--motion-duration-feedback)] motion-reduce:transition-none",
|
|
13281
13317
|
"hover:-translate-y-0.5 hover:border-rule-strong hover:shadow-sm",
|
|
13282
13318
|
selected && "border-brand bg-brand-bg",
|
|
13283
13319
|
className
|
|
@@ -13342,7 +13378,7 @@ var DocumentFileLine = React39.forwardRef(
|
|
|
13342
13378
|
ref,
|
|
13343
13379
|
className: cn(
|
|
13344
13380
|
"flex items-center gap-2.5 rounded-[10px] px-2.5 py-2",
|
|
13345
|
-
"transition-colors duration-[
|
|
13381
|
+
"transition-colors duration-[var(--motion-duration-feedback)] motion-reduce:transition-none hover:bg-surface-2",
|
|
13346
13382
|
className
|
|
13347
13383
|
),
|
|
13348
13384
|
...props,
|
|
@@ -13377,7 +13413,7 @@ var DocumentFileLine = React39.forwardRef(
|
|
|
13377
13413
|
onClick: onOpen,
|
|
13378
13414
|
className: cn(
|
|
13379
13415
|
"grid size-7 shrink-0 place-items-center rounded-lg text-fg-4",
|
|
13380
|
-
"transition-colors duration-[
|
|
13416
|
+
"transition-colors duration-[var(--motion-duration-feedback)] motion-reduce:transition-none",
|
|
13381
13417
|
"hover:bg-surface hover:text-brand",
|
|
13382
13418
|
"focus-visible:outline-none focus-visible:[box-shadow:var(--shadow-focus-ring)]"
|
|
13383
13419
|
),
|
|
@@ -13451,7 +13487,7 @@ function ChecklistItemRow({ item }) {
|
|
|
13451
13487
|
"div",
|
|
13452
13488
|
{
|
|
13453
13489
|
className: cn(
|
|
13454
|
-
"rounded-xl border px-3.5 py-2.5 shadow-quiet transition-colors duration-[
|
|
13490
|
+
"rounded-xl border px-3.5 py-2.5 shadow-quiet transition-colors duration-[var(--motion-duration-feedback)] motion-reduce:transition-none",
|
|
13455
13491
|
done ? "border-success-line/70 bg-success-bg/30" : item.status === "in-review" ? "border-warning-line/70 bg-warning-bg/25" : "border-rule bg-surface"
|
|
13456
13492
|
),
|
|
13457
13493
|
children: [
|
|
@@ -13603,7 +13639,7 @@ var DocumentRequestField = forwardRef(
|
|
|
13603
13639
|
className: cn(
|
|
13604
13640
|
"ml-auto size-[26px] rounded-[7px] grid place-items-center",
|
|
13605
13641
|
"text-fg-4",
|
|
13606
|
-
"transition-colors duration-[
|
|
13642
|
+
"transition-colors duration-[var(--motion-duration-feedback)] motion-reduce:transition-none",
|
|
13607
13643
|
"hover:bg-danger-bg hover:text-danger-fg",
|
|
13608
13644
|
"focus-visible:outline-none focus-visible:[box-shadow:var(--shadow-focus-ring)]"
|
|
13609
13645
|
),
|
|
@@ -13975,7 +14011,7 @@ var Sidebar = React39.forwardRef(function Sidebar2({
|
|
|
13975
14011
|
// movement) but well short of `--duration-slow` (which feels
|
|
13976
14012
|
// sluggish). `will-change` hints the compositor so the column
|
|
13977
14013
|
// doesn't repaint every frame mid-transition.
|
|
13978
|
-
"transition-[width,box-shadow] duration-[
|
|
14014
|
+
"transition-[width,box-shadow] duration-[var(--motion-duration-spatial)] ease-[var(--motion-ease-move)] motion-reduce:transition-none",
|
|
13979
14015
|
"[will-change:width]",
|
|
13980
14016
|
// Overlay (hover-peek OR programmatic peek-lock): float above the
|
|
13981
14017
|
// canvas without reflowing layout. Driven by `data-overlay` so a
|
|
@@ -14143,7 +14179,7 @@ var SidebarBrandText = React39.forwardRef(
|
|
|
14143
14179
|
// Smooth fade + width collapse on rail. Keeps the wordmark
|
|
14144
14180
|
// legible up to the moment the column reaches rail width, then
|
|
14145
14181
|
// fully drops out (visibility:hidden cuts hit-testing).
|
|
14146
|
-
"transition-[opacity,max-width] duration-[
|
|
14182
|
+
"transition-[opacity,max-width] duration-[var(--motion-duration-spatial)] ease-[var(--motion-ease-move)] motion-reduce:transition-none",
|
|
14147
14183
|
"max-w-[160px] opacity-100",
|
|
14148
14184
|
"group-data-[labels=hide]/sidebar:max-w-0 group-data-[labels=hide]/sidebar:opacity-0 group-data-[labels=hide]/sidebar:invisible",
|
|
14149
14185
|
className
|
|
@@ -14189,7 +14225,7 @@ var SidebarSection = React39.forwardRef(
|
|
|
14189
14225
|
{
|
|
14190
14226
|
className: cn(
|
|
14191
14227
|
"mb-1 flex items-center justify-between px-2.5 py-1",
|
|
14192
|
-
"transition-opacity duration-[
|
|
14228
|
+
"transition-opacity duration-[var(--motion-duration-spatial)] ease-[var(--motion-ease-move)] motion-reduce:transition-none",
|
|
14193
14229
|
"opacity-100",
|
|
14194
14230
|
"group-data-[labels=hide]/sidebar:invisible group-data-[labels=hide]/sidebar:opacity-0"
|
|
14195
14231
|
),
|
|
@@ -14283,7 +14319,7 @@ var SidebarLink = React39.forwardRef(
|
|
|
14283
14319
|
// auto margin, which is why "Billing$48k" rendered glued.
|
|
14284
14320
|
// Single-line label clips via overflow; badge stays put.
|
|
14285
14321
|
"flex min-w-0 flex-1 items-center gap-1.5 overflow-hidden whitespace-nowrap",
|
|
14286
|
-
"transition-[opacity,max-width] duration-[
|
|
14322
|
+
"transition-[opacity,max-width] duration-[var(--motion-duration-spatial)] ease-[var(--motion-ease-move)] motion-reduce:transition-none",
|
|
14287
14323
|
"max-w-full opacity-100",
|
|
14288
14324
|
"group-data-[labels=hide]/sidebar:max-w-0 group-data-[labels=hide]/sidebar:opacity-0 group-data-[labels=hide]/sidebar:invisible"
|
|
14289
14325
|
),
|
|
@@ -14315,7 +14351,7 @@ var SidebarLinkLabel = React39.forwardRef(
|
|
|
14315
14351
|
// Fade + collapse instead of hard display:none so a single
|
|
14316
14352
|
// 180ms opacity tween covers all labels in lockstep with the
|
|
14317
14353
|
// 220ms aside-width transition — no snap on the last frame.
|
|
14318
|
-
"transition-[opacity,max-width] duration-[
|
|
14354
|
+
"transition-[opacity,max-width] duration-[var(--motion-duration-spatial)] ease-[var(--motion-ease-move)] motion-reduce:transition-none",
|
|
14319
14355
|
"max-w-full opacity-100",
|
|
14320
14356
|
"group-data-[labels=hide]/sidebar:max-w-0 group-data-[labels=hide]/sidebar:opacity-0 group-data-[labels=hide]/sidebar:invisible",
|
|
14321
14357
|
className
|
|
@@ -14333,7 +14369,7 @@ var SidebarLinkAction = React39.forwardRef(
|
|
|
14333
14369
|
{
|
|
14334
14370
|
ref,
|
|
14335
14371
|
className: cn(
|
|
14336
|
-
"transition-opacity duration-[
|
|
14372
|
+
"transition-opacity duration-[var(--motion-duration-spatial)] ease-[var(--motion-ease-move)] motion-reduce:transition-none",
|
|
14337
14373
|
"opacity-100",
|
|
14338
14374
|
"group-data-[labels=hide]/sidebar:invisible group-data-[labels=hide]/sidebar:opacity-0",
|
|
14339
14375
|
className
|
|
@@ -14436,7 +14472,7 @@ var SidebarLinkGroup = React39.forwardRef(
|
|
|
14436
14472
|
// word boundary; collapses cleanly with the rail-mode max-width
|
|
14437
14473
|
// animation since both rules only constrain visible content.
|
|
14438
14474
|
"min-w-0 flex-1 line-clamp-1",
|
|
14439
|
-
"transition-[opacity,max-width] duration-[
|
|
14475
|
+
"transition-[opacity,max-width] duration-[var(--motion-duration-spatial)] ease-[var(--motion-ease-move)] motion-reduce:transition-none",
|
|
14440
14476
|
"max-w-full opacity-100",
|
|
14441
14477
|
"group-data-[labels=hide]/sidebar:max-w-0 group-data-[labels=hide]/sidebar:opacity-0 group-data-[labels=hide]/sidebar:invisible"
|
|
14442
14478
|
),
|
|
@@ -14525,7 +14561,7 @@ var SidebarUser = React39.forwardRef(function SidebarUser2({ name, subtitle, ava
|
|
|
14525
14561
|
{
|
|
14526
14562
|
className: cn(
|
|
14527
14563
|
"min-w-0 leading-tight",
|
|
14528
|
-
"transition-[opacity,max-width] duration-[
|
|
14564
|
+
"transition-[opacity,max-width] duration-[var(--motion-duration-spatial)] ease-[var(--motion-ease-move)] motion-reduce:transition-none",
|
|
14529
14565
|
"max-w-full opacity-100",
|
|
14530
14566
|
"group-data-[labels=hide]/sidebar:max-w-0 group-data-[labels=hide]/sidebar:opacity-0 group-data-[labels=hide]/sidebar:invisible"
|
|
14531
14567
|
),
|
|
@@ -15211,7 +15247,10 @@ var DataTableResultsCount = forwardRef(
|
|
|
15211
15247
|
"span",
|
|
15212
15248
|
{
|
|
15213
15249
|
ref,
|
|
15214
|
-
className: cn(
|
|
15250
|
+
className: cn(
|
|
15251
|
+
"text-fg-4 mr-1 shrink-0 font-sans text-[11px] whitespace-nowrap tabular-nums",
|
|
15252
|
+
className
|
|
15253
|
+
),
|
|
15215
15254
|
...props,
|
|
15216
15255
|
children: [
|
|
15217
15256
|
current.toLocaleString(),
|
|
@@ -15243,7 +15282,8 @@ var DataTableRow = forwardRef(
|
|
|
15243
15282
|
ref,
|
|
15244
15283
|
"data-state": selected ? "selected" : void 0,
|
|
15245
15284
|
className: cn(
|
|
15246
|
-
"border-rule-soft border-b
|
|
15285
|
+
"border-rule-soft border-b",
|
|
15286
|
+
microInteractions.selection,
|
|
15247
15287
|
// Selected hover stays in the brand tint (G15) — when both states fire,
|
|
15248
15288
|
// hover:bg-bg-2 was previously winning and dropping the row out of
|
|
15249
15289
|
// the selected tint, which read as the row deselecting on hover.
|
|
@@ -16794,7 +16834,7 @@ var MessageBubble = forwardRef(function MessageBubble2({ avatar, name, timestamp
|
|
|
16794
16834
|
"span",
|
|
16795
16835
|
{
|
|
16796
16836
|
className: cn(
|
|
16797
|
-
"ml-auto opacity-0 transition-opacity",
|
|
16837
|
+
"ml-auto opacity-0 transition-opacity motion-reduce:transition-none",
|
|
16798
16838
|
"group-hover/bubble:opacity-100 group-focus-within/bubble:opacity-100"
|
|
16799
16839
|
),
|
|
16800
16840
|
children: actions
|
|
@@ -16904,7 +16944,7 @@ var MessageComposer = forwardRef(
|
|
|
16904
16944
|
className: cn(
|
|
16905
16945
|
"relative flex flex-col",
|
|
16906
16946
|
"border-rule bg-input-background rounded-xl border",
|
|
16907
|
-
"transition-shadow duration-
|
|
16947
|
+
"transition-shadow duration-[var(--motion-duration-feedback)] motion-reduce:transition-none",
|
|
16908
16948
|
"focus-within:border-accent-ring focus-within:bg-surface focus-within:shadow-sm",
|
|
16909
16949
|
isDisabled && "pointer-events-none opacity-60",
|
|
16910
16950
|
className
|
|
@@ -16923,7 +16963,7 @@ var MessageComposer = forwardRef(
|
|
|
16923
16963
|
"div",
|
|
16924
16964
|
{
|
|
16925
16965
|
"aria-hidden": "true",
|
|
16926
|
-
className: "bg-bg-3 h-6 w-20 shrink-0 animate-pulse rounded-full"
|
|
16966
|
+
className: "bg-bg-3 h-6 w-20 shrink-0 animate-pulse rounded-full motion-reduce:animate-none"
|
|
16927
16967
|
},
|
|
16928
16968
|
i
|
|
16929
16969
|
)) : chips.map((chip) => /* @__PURE__ */ jsx(
|
|
@@ -16935,7 +16975,7 @@ var MessageComposer = forwardRef(
|
|
|
16935
16975
|
className: cn(
|
|
16936
16976
|
"inline-flex h-6 shrink-0 items-center rounded-full px-2.5",
|
|
16937
16977
|
"text-[11px] font-medium text-fg-2",
|
|
16938
|
-
"bg-bg-2 transition-colors hover:bg-bg-3 hover:text-fg",
|
|
16978
|
+
"bg-bg-2 transition-colors hover:bg-bg-3 hover:text-fg motion-reduce:transition-none",
|
|
16939
16979
|
"focus-visible:outline-none focus-visible:[box-shadow:var(--shadow-focus-ring)]"
|
|
16940
16980
|
),
|
|
16941
16981
|
children: chip.label
|
|
@@ -16953,17 +16993,16 @@ var MessageComposer = forwardRef(
|
|
|
16953
16993
|
className: "flex shrink-0 items-center justify-between gap-2 px-2 pb-1.5 pt-1",
|
|
16954
16994
|
children: [
|
|
16955
16995
|
/* @__PURE__ */ jsx("div", { className: "flex min-w-0 items-center gap-2", children: startSlot }),
|
|
16956
|
-
/* @__PURE__ */
|
|
16996
|
+
/* @__PURE__ */ jsx(
|
|
16957
16997
|
Button,
|
|
16958
16998
|
{
|
|
16959
16999
|
size: "sm",
|
|
16960
17000
|
disabled: isSubmitDisabled,
|
|
17001
|
+
loading: submitting,
|
|
17002
|
+
iconLeft: /* @__PURE__ */ jsx(SendIcon, { size: 14, "aria-hidden": "true" }),
|
|
16961
17003
|
onClick: onSubmit,
|
|
16962
17004
|
className: "gap-1.5",
|
|
16963
|
-
children:
|
|
16964
|
-
/* @__PURE__ */ jsx(SendIcon, { size: 14, "aria-hidden": "true" }),
|
|
16965
|
-
submitting ? submittingLabel : submitLabel
|
|
16966
|
-
]
|
|
17005
|
+
children: submitting ? submittingLabel : submitLabel
|
|
16967
17006
|
}
|
|
16968
17007
|
)
|
|
16969
17008
|
]
|
|
@@ -18001,15 +18040,15 @@ function SuggestionPills({
|
|
|
18001
18040
|
"div",
|
|
18002
18041
|
{
|
|
18003
18042
|
className: cn(
|
|
18004
|
-
"ds-suggestion-bar flex items-center gap-2 overflow-x-auto border-t border-
|
|
18043
|
+
"ds-suggestion-bar flex items-center gap-2 overflow-x-auto border-t border-rule/60 bg-gradient-to-b from-brand-bg/40 to-transparent px-4 py-2.5 motion-reduce:animate-none [scrollbar-width:none]",
|
|
18005
18044
|
className
|
|
18006
18045
|
),
|
|
18007
18046
|
children: [
|
|
18008
|
-
/* @__PURE__ */ jsxs("span", { className: "flex shrink-0 items-center gap-1.5 text-[11px] font-medium text-
|
|
18047
|
+
/* @__PURE__ */ jsxs("span", { className: "flex shrink-0 items-center gap-1.5 text-[11px] font-medium text-fg-3", children: [
|
|
18009
18048
|
/* @__PURE__ */ jsx(SparkleIcon, { className: "ds-suggestion-spark size-3.5 text-brand", "aria-hidden": "true" }),
|
|
18010
18049
|
label
|
|
18011
18050
|
] }),
|
|
18012
|
-
loading ? [0, 1].map((i) => /* @__PURE__ */ jsx("span", { className: "h-7 w-32 shrink-0 animate-pulse rounded-full bg-
|
|
18051
|
+
loading ? [0, 1].map((i) => /* @__PURE__ */ jsx("span", { className: "h-7 w-32 shrink-0 animate-pulse rounded-full bg-bg-2 motion-reduce:animate-none" }, i)) : suggestions.map((text, i) => /* @__PURE__ */ jsx(
|
|
18013
18052
|
"button",
|
|
18014
18053
|
{
|
|
18015
18054
|
type: "button",
|
|
@@ -18017,10 +18056,10 @@ function SuggestionPills({
|
|
|
18017
18056
|
title: text,
|
|
18018
18057
|
style: { animationDelay: `${i * 110}ms` },
|
|
18019
18058
|
className: cn(
|
|
18020
|
-
"ds-suggestion-pill max-w-[260px] shrink-0 truncate whitespace-nowrap rounded-full border px-3.5 py-1.5 text-[12px] font-medium",
|
|
18021
|
-
"border-brand/30 bg-brand-
|
|
18022
|
-
"transition-
|
|
18023
|
-
"focus-visible:
|
|
18059
|
+
"ds-suggestion-pill max-w-[260px] shrink-0 truncate whitespace-nowrap rounded-full border px-3.5 py-1.5 text-[12px] font-medium motion-reduce:animate-none",
|
|
18060
|
+
"border-brand/30 bg-brand-bg text-brand shadow-quiet",
|
|
18061
|
+
"transition-[color,background-color,border-color,box-shadow,transform] duration-[var(--duration-fast)] ease-[var(--ease-out-quart)] hover:-translate-y-0.5 hover:border-brand/50 hover:bg-brand-bg-hover hover:shadow-card motion-reduce:transform-none motion-reduce:transition-none",
|
|
18062
|
+
"focus-visible:[box-shadow:var(--shadow-focus-ring)] focus-visible:outline-none"
|
|
18024
18063
|
),
|
|
18025
18064
|
children: text
|
|
18026
18065
|
},
|
|
@@ -18068,10 +18107,10 @@ function AiDraftCard({
|
|
|
18068
18107
|
] });
|
|
18069
18108
|
}
|
|
18070
18109
|
if (state === "error") {
|
|
18071
|
-
return /* @__PURE__ */ jsxs("div", { className: cn("rounded-lg border border-
|
|
18072
|
-
/* @__PURE__ */ jsx("p", { className: "text-xs text-
|
|
18110
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("rounded-lg border border-danger-line bg-danger-bg p-3", className), children: [
|
|
18111
|
+
/* @__PURE__ */ jsx("p", { className: "text-xs text-danger-fg", children: error ?? "Something went wrong." }),
|
|
18073
18112
|
(onRetry || onDismiss) && /* @__PURE__ */ jsxs("div", { className: "mt-2 flex gap-2", children: [
|
|
18074
|
-
onRetry && /* @__PURE__ */ jsx(Button, { type: "button", variant: "outline", size: "sm", onClick: onRetry, className: "text-
|
|
18113
|
+
onRetry && /* @__PURE__ */ jsx(Button, { type: "button", variant: "outline", size: "sm", onClick: onRetry, className: "text-danger-fg", children: "Retry" }),
|
|
18075
18114
|
onDismiss && /* @__PURE__ */ jsx(Button, { type: "button", variant: "ghost", size: "sm", onClick: onDismiss, children: "Dismiss" })
|
|
18076
18115
|
] })
|
|
18077
18116
|
] });
|
|
@@ -18080,7 +18119,7 @@ function AiDraftCard({
|
|
|
18080
18119
|
/* @__PURE__ */ jsxs("div", { className: cn("flex items-center gap-2", !collapsed && "mb-2"), children: [
|
|
18081
18120
|
/* @__PURE__ */ jsx(SparkleIcon, { size: 14, className: "text-brand" }),
|
|
18082
18121
|
/* @__PURE__ */ jsx("span", { className: "text-xs font-bold text-brand", children: title }),
|
|
18083
|
-
contextLine && /* @__PURE__ */ jsx("span", { className: "truncate text-xs text-
|
|
18122
|
+
contextLine && /* @__PURE__ */ jsx("span", { className: "truncate text-xs text-fg-3", children: contextLine }),
|
|
18084
18123
|
/* @__PURE__ */ jsx(
|
|
18085
18124
|
"button",
|
|
18086
18125
|
{
|
|
@@ -18089,14 +18128,23 @@ function AiDraftCard({
|
|
|
18089
18128
|
"aria-expanded": !collapsed,
|
|
18090
18129
|
"aria-label": collapsed ? "Expand AI draft" : "Collapse AI draft",
|
|
18091
18130
|
title: collapsed ? "Show draft" : "Hide draft",
|
|
18092
|
-
className: "ml-auto -mr-1 shrink-0 rounded p-1 text-brand/70 transition-colors hover:bg-brand
|
|
18093
|
-
children: /* @__PURE__ */ jsx(ChevronDownIcon, { size: 16, className: cn("transition-transform", collapsed && "-rotate-90") })
|
|
18131
|
+
className: "ml-auto -mr-1 shrink-0 rounded p-1 text-brand/70 transition-colors hover:bg-brand-bg hover:text-brand focus-visible:[box-shadow:var(--shadow-focus-ring)] focus-visible:outline-none motion-reduce:transition-none",
|
|
18132
|
+
children: /* @__PURE__ */ jsx(ChevronDownIcon, { size: 16, className: cn("transition-transform motion-reduce:transition-none", collapsed && "-rotate-90") })
|
|
18094
18133
|
}
|
|
18095
18134
|
)
|
|
18096
18135
|
] }),
|
|
18097
18136
|
!collapsed && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
18098
|
-
subject && /* @__PURE__ */ jsx("p", { className: "mb-1.5 text-sm font-semibold text-
|
|
18099
|
-
/* @__PURE__ */ jsx(
|
|
18137
|
+
subject && /* @__PURE__ */ jsx("p", { className: "mb-1.5 text-sm font-semibold text-fg", children: subject }),
|
|
18138
|
+
/* @__PURE__ */ jsx(
|
|
18139
|
+
"div",
|
|
18140
|
+
{
|
|
18141
|
+
role: "region",
|
|
18142
|
+
"aria-label": `${title} content`,
|
|
18143
|
+
tabIndex: 0,
|
|
18144
|
+
className: "max-h-[140px] overflow-y-auto text-sm font-medium leading-relaxed text-fg focus-visible:[box-shadow:var(--shadow-focus-ring)] focus-visible:outline-none",
|
|
18145
|
+
children
|
|
18146
|
+
}
|
|
18147
|
+
),
|
|
18100
18148
|
actions && /* @__PURE__ */ jsx("div", { className: "mt-3 flex flex-wrap items-center gap-2", children: actions })
|
|
18101
18149
|
] })
|
|
18102
18150
|
] });
|
|
@@ -18138,36 +18186,36 @@ function EmailMessageCard({
|
|
|
18138
18186
|
!isOutbound && avatar && /* @__PURE__ */ jsx("span", { className: "mt-7 shrink-0", children: avatar }),
|
|
18139
18187
|
/* @__PURE__ */ jsxs("div", { className: cn("flex min-w-0 flex-col gap-1", isOutbound ? "items-end" : "items-start"), children: [
|
|
18140
18188
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5 px-1", children: [
|
|
18141
|
-
/* @__PURE__ */ jsx("span", { className: "text-xs font-medium text-
|
|
18142
|
-
/* @__PURE__ */ jsxs("span", { className: "text-[10px] text-
|
|
18189
|
+
/* @__PURE__ */ jsx("span", { className: "text-xs font-medium text-fg", children: senderName }),
|
|
18190
|
+
/* @__PURE__ */ jsxs("span", { className: "text-[10px] text-fg-3", children: [
|
|
18143
18191
|
"via ",
|
|
18144
18192
|
via
|
|
18145
18193
|
] }),
|
|
18146
|
-
/* @__PURE__ */ jsx("span", { className: "text-[10px] text-
|
|
18147
|
-
/* @__PURE__ */ jsx("span", { className: "text-[10px] text-
|
|
18194
|
+
/* @__PURE__ */ jsx("span", { className: "text-[10px] text-fg-3", children: "\xB7" }),
|
|
18195
|
+
/* @__PURE__ */ jsx("span", { className: "text-[10px] text-fg-3", children: time })
|
|
18148
18196
|
] }),
|
|
18149
18197
|
/* @__PURE__ */ jsxs(
|
|
18150
18198
|
"div",
|
|
18151
18199
|
{
|
|
18152
18200
|
className: cn(
|
|
18153
|
-
"w-full max-w-2xl overflow-hidden rounded-xl border bg-
|
|
18154
|
-
isOutbound ? "border-brand/30" : "border-
|
|
18201
|
+
"w-full max-w-2xl overflow-hidden rounded-xl border bg-surface shadow-sm",
|
|
18202
|
+
isOutbound ? "border-brand/30" : "border-rule"
|
|
18155
18203
|
),
|
|
18156
18204
|
children: [
|
|
18157
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-start gap-2.5 border-b border-
|
|
18205
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-start gap-2.5 border-b border-rule bg-brand-bg px-3.5 py-2.5", children: [
|
|
18158
18206
|
/* @__PURE__ */ jsx("span", { className: "flex size-8 shrink-0 items-center justify-center rounded-lg border border-brand/20 bg-brand/10 text-brand", children: /* @__PURE__ */ jsx(MailIcon, { size: 16 }) }),
|
|
18159
18207
|
/* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
18160
18208
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
18161
18209
|
/* @__PURE__ */ jsx("span", { className: "shrink-0 rounded px-1.5 py-px text-[10px] font-bold uppercase tracking-wider text-brand", children: "Email" }),
|
|
18162
|
-
subjectText && /* @__PURE__ */ jsx("span", { className: "min-w-0 truncate text-sm font-semibold text-
|
|
18210
|
+
subjectText && /* @__PURE__ */ jsx("span", { className: "min-w-0 truncate text-sm font-semibold text-fg", children: subjectText })
|
|
18163
18211
|
] }),
|
|
18164
|
-
/* @__PURE__ */ jsxs("div", { className: "mt-0.5 flex flex-wrap items-center gap-1.5 text-[10px] text-
|
|
18212
|
+
/* @__PURE__ */ jsxs("div", { className: "mt-0.5 flex flex-wrap items-center gap-1.5 text-[10px] text-fg-3", children: [
|
|
18165
18213
|
/* @__PURE__ */ jsxs("span", { children: [
|
|
18166
18214
|
"From ",
|
|
18167
|
-
/* @__PURE__ */ jsx("span", { className: "font-medium text-
|
|
18215
|
+
/* @__PURE__ */ jsx("span", { className: "font-medium text-fg/80", children: senderName })
|
|
18168
18216
|
] }),
|
|
18169
18217
|
ccCount > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
18170
|
-
/* @__PURE__ */ jsx("span", { className: "text-
|
|
18218
|
+
/* @__PURE__ */ jsx("span", { className: "text-fg-3/60", children: "\xB7" }),
|
|
18171
18219
|
/* @__PURE__ */ jsxs("span", { children: [
|
|
18172
18220
|
"Cc ",
|
|
18173
18221
|
ccCount
|
|
@@ -18175,7 +18223,7 @@ function EmailMessageCard({
|
|
|
18175
18223
|
] })
|
|
18176
18224
|
] })
|
|
18177
18225
|
] }),
|
|
18178
|
-
/* @__PURE__ */ jsx("span", { className: "shrink-0 whitespace-nowrap pt-0.5 text-[10px] text-
|
|
18226
|
+
/* @__PURE__ */ jsx("span", { className: "shrink-0 whitespace-nowrap pt-0.5 text-[10px] text-fg-3", children: time })
|
|
18179
18227
|
] }),
|
|
18180
18228
|
/* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
18181
18229
|
/* @__PURE__ */ jsx(
|
|
@@ -18183,13 +18231,13 @@ function EmailMessageCard({
|
|
|
18183
18231
|
{
|
|
18184
18232
|
ref: bodyRef,
|
|
18185
18233
|
className: cn(
|
|
18186
|
-
"px-4 py-3 text-sm leading-relaxed text-
|
|
18234
|
+
"px-4 py-3 text-sm leading-relaxed text-fg",
|
|
18187
18235
|
clamped && "max-h-56 overflow-hidden"
|
|
18188
18236
|
),
|
|
18189
18237
|
children
|
|
18190
18238
|
}
|
|
18191
18239
|
),
|
|
18192
|
-
clamped && /* @__PURE__ */ jsx("div", { className: "pointer-events-none absolute inset-x-0 bottom-0 h-14 bg-gradient-to-b from-transparent to-
|
|
18240
|
+
clamped && /* @__PURE__ */ jsx("div", { className: "pointer-events-none absolute inset-x-0 bottom-0 h-14 bg-gradient-to-b from-transparent to-surface" })
|
|
18193
18241
|
] }),
|
|
18194
18242
|
needsClamp && /* @__PURE__ */ jsxs(
|
|
18195
18243
|
"button",
|
|
@@ -18197,14 +18245,14 @@ function EmailMessageCard({
|
|
|
18197
18245
|
type: "button",
|
|
18198
18246
|
onClick: () => setExpanded((v) => !v),
|
|
18199
18247
|
"aria-expanded": expanded,
|
|
18200
|
-
className: "flex w-full items-center justify-center gap-1.5 border-t border-
|
|
18248
|
+
className: "flex w-full items-center justify-center gap-1.5 border-t border-rule/60 bg-surface py-1.5 text-xs font-medium text-brand transition-colors hover:bg-bg-2/40 motion-reduce:transition-none",
|
|
18201
18249
|
children: [
|
|
18202
18250
|
expanded ? "Show less" : "Show full email",
|
|
18203
|
-
/* @__PURE__ */ jsx(ChevronDownIcon, { size: 13, className: cn("transition-transform", expanded && "rotate-180") })
|
|
18251
|
+
/* @__PURE__ */ jsx(ChevronDownIcon, { size: 13, className: cn("transition-transform motion-reduce:transition-none", expanded && "rotate-180") })
|
|
18204
18252
|
]
|
|
18205
18253
|
}
|
|
18206
18254
|
),
|
|
18207
|
-
hasFooter && /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center justify-between gap-2 border-t border-
|
|
18255
|
+
hasFooter && /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center justify-between gap-2 border-t border-rule bg-bg-2/30 px-3 py-2", children: [
|
|
18208
18256
|
/* @__PURE__ */ jsx("div", { className: "min-w-0", children: attachments }),
|
|
18209
18257
|
/* @__PURE__ */ jsxs("div", { className: "ml-auto flex items-center gap-2", children: [
|
|
18210
18258
|
status,
|
|
@@ -18232,8 +18280,8 @@ function SignatureEditor({
|
|
|
18232
18280
|
className
|
|
18233
18281
|
}) {
|
|
18234
18282
|
return /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col", className), children: [
|
|
18235
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between border-b border-
|
|
18236
|
-
/* @__PURE__ */ jsx("p", { className: "text-xs font-semibold text-
|
|
18283
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between border-b border-rule px-3 py-2", children: [
|
|
18284
|
+
/* @__PURE__ */ jsx("p", { className: "text-xs font-semibold text-fg", children: title }),
|
|
18237
18285
|
onAddImage && /* @__PURE__ */ jsxs(
|
|
18238
18286
|
Button,
|
|
18239
18287
|
{
|
|
@@ -18251,8 +18299,8 @@ function SignatureEditor({
|
|
|
18251
18299
|
}
|
|
18252
18300
|
)
|
|
18253
18301
|
] }),
|
|
18254
|
-
/* @__PURE__ */ jsx("div", { className: "p-3", children: loading ? /* @__PURE__ */ jsx("div", { className: "h-32 animate-pulse rounded-md bg-
|
|
18255
|
-
(onSave || onInsert) && /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-end gap-2 border-t border-
|
|
18302
|
+
/* @__PURE__ */ jsx("div", { className: "p-3", children: loading ? /* @__PURE__ */ jsx("div", { className: "h-32 animate-pulse rounded-md bg-bg-2 motion-reduce:animate-none" }) : children }),
|
|
18303
|
+
(onSave || onInsert) && /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-end gap-2 border-t border-rule px-3 py-2", children: [
|
|
18256
18304
|
onSave && /* @__PURE__ */ jsx(
|
|
18257
18305
|
Button,
|
|
18258
18306
|
{
|
|
@@ -18400,7 +18448,7 @@ function DisplayMenu({
|
|
|
18400
18448
|
showDot && /* @__PURE__ */ jsx(
|
|
18401
18449
|
"span",
|
|
18402
18450
|
{
|
|
18403
|
-
className: "absolute -right-1 -top-1 size-2 rounded-full bg-
|
|
18451
|
+
className: "absolute -right-1 -top-1 size-2 rounded-full bg-fg",
|
|
18404
18452
|
"aria-hidden": "true"
|
|
18405
18453
|
}
|
|
18406
18454
|
)
|
|
@@ -18424,8 +18472,8 @@ function DisplayMenu({
|
|
|
18424
18472
|
}
|
|
18425
18473
|
},
|
|
18426
18474
|
children: /* @__PURE__ */ jsxs("div", { ref: panelRef, className: "relative", children: [
|
|
18427
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5 border-b border-
|
|
18428
|
-
/* @__PURE__ */ jsx(SearchIcon, { size: 13, className: "shrink-0 text-
|
|
18475
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5 border-b border-rule px-2.5 py-1.5", children: [
|
|
18476
|
+
/* @__PURE__ */ jsx(SearchIcon, { size: 13, className: "shrink-0 text-fg-3", "aria-hidden": "true" }),
|
|
18429
18477
|
/* @__PURE__ */ jsx(
|
|
18430
18478
|
"input",
|
|
18431
18479
|
{
|
|
@@ -18434,7 +18482,7 @@ function DisplayMenu({
|
|
|
18434
18482
|
onChange: (e) => setRootQuery(e.target.value),
|
|
18435
18483
|
placeholder: "Filter\u2026",
|
|
18436
18484
|
"aria-label": "Filter options and values",
|
|
18437
|
-
className: "h-6 w-full bg-transparent text-[13px] text-
|
|
18485
|
+
className: "h-6 w-full bg-transparent text-[13px] text-fg outline-none placeholder:text-fg-3"
|
|
18438
18486
|
}
|
|
18439
18487
|
)
|
|
18440
18488
|
] }),
|
|
@@ -18460,19 +18508,19 @@ function DisplayMenu({
|
|
|
18460
18508
|
setOpenKey(null);
|
|
18461
18509
|
},
|
|
18462
18510
|
onClick: () => section2.onSelect(option.key),
|
|
18463
|
-
className: "flex w-full items-center gap-1.5 rounded-md px-2 py-1.5 text-left text-[13px] transition-colors hover:bg-
|
|
18511
|
+
className: "flex w-full items-center gap-1.5 rounded-md px-2 py-1.5 text-left text-[13px] transition-colors hover:bg-bg-2/60 focus-visible:bg-bg-2/60 focus-visible:outline-none motion-reduce:transition-none",
|
|
18464
18512
|
children: [
|
|
18465
|
-
section2.icon && /* @__PURE__ */ jsx("span", { className: "shrink-0 text-
|
|
18466
|
-
/* @__PURE__ */ jsx("span", { className: "shrink-0 truncate text-
|
|
18513
|
+
section2.icon && /* @__PURE__ */ jsx("span", { className: "shrink-0 text-fg-3", "aria-hidden": "true", children: section2.icon }),
|
|
18514
|
+
/* @__PURE__ */ jsx("span", { className: "shrink-0 truncate text-fg-3", children: section2.label }),
|
|
18467
18515
|
/* @__PURE__ */ jsx(
|
|
18468
18516
|
ChevronRightIcon,
|
|
18469
18517
|
{
|
|
18470
18518
|
size: 12,
|
|
18471
|
-
className: "shrink-0 text-
|
|
18519
|
+
className: "shrink-0 text-fg-3",
|
|
18472
18520
|
"aria-hidden": "true"
|
|
18473
18521
|
}
|
|
18474
18522
|
),
|
|
18475
|
-
/* @__PURE__ */ jsx("span", { className: "flex-1 truncate text-
|
|
18523
|
+
/* @__PURE__ */ jsx("span", { className: "flex-1 truncate text-fg", children: option.label }),
|
|
18476
18524
|
isActive && /* @__PURE__ */ jsx(CheckIcon, { size: 14, className: "shrink-0 text-brand" })
|
|
18477
18525
|
]
|
|
18478
18526
|
},
|
|
@@ -18519,15 +18567,15 @@ function DisplayMenu({
|
|
|
18519
18567
|
}
|
|
18520
18568
|
},
|
|
18521
18569
|
className: cn(
|
|
18522
|
-
"flex min-w-0 flex-1 items-center gap-2 rounded-md px-2 py-1.5 text-left text-[13px] text-
|
|
18523
|
-
isOpen && "bg-
|
|
18570
|
+
"flex min-w-0 flex-1 items-center gap-2 rounded-md px-2 py-1.5 text-left text-[13px] text-fg transition-colors hover:bg-bg-2/60 focus-visible:bg-bg-2/60 focus-visible:outline-none motion-reduce:transition-none",
|
|
18571
|
+
isOpen && "bg-bg-2/60"
|
|
18524
18572
|
),
|
|
18525
18573
|
children: [
|
|
18526
|
-
section.icon && /* @__PURE__ */ jsx("span", { className: "shrink-0 text-
|
|
18574
|
+
section.icon && /* @__PURE__ */ jsx("span", { className: "shrink-0 text-fg-3", "aria-hidden": "true", children: section.icon }),
|
|
18527
18575
|
/* @__PURE__ */ jsx("span", { className: "flex-1 truncate", children: section.label }),
|
|
18528
18576
|
section.mode === "multi" && count > 0 && /* @__PURE__ */ jsx("span", { className: "shrink-0 rounded-full bg-brand-bg px-1.5 text-[11px] font-medium text-brand", children: count }),
|
|
18529
|
-
section.mode !== "multi" && valueLabel && /* @__PURE__ */ jsx("span", { className: "max-w-24 shrink-0 truncate text-[13px] text-
|
|
18530
|
-
/* @__PURE__ */ jsx(ChevronRightIcon, { size: 13, className: "shrink-0 text-
|
|
18577
|
+
section.mode !== "multi" && valueLabel && /* @__PURE__ */ jsx("span", { className: "max-w-24 shrink-0 truncate text-[13px] text-fg-3", children: valueLabel }),
|
|
18578
|
+
/* @__PURE__ */ jsx(ChevronRightIcon, { size: 13, className: "shrink-0 text-fg-3" })
|
|
18531
18579
|
]
|
|
18532
18580
|
}
|
|
18533
18581
|
),
|
|
@@ -18540,14 +18588,14 @@ function DisplayMenu({
|
|
|
18540
18588
|
})
|
|
18541
18589
|
}
|
|
18542
18590
|
),
|
|
18543
|
-
/* @__PURE__ */ jsx("div", { className: "border-t border-
|
|
18591
|
+
/* @__PURE__ */ jsx("div", { className: "border-t border-rule p-1", children: /* @__PURE__ */ jsxs(
|
|
18544
18592
|
Button,
|
|
18545
18593
|
{
|
|
18546
18594
|
variant: "ghost",
|
|
18547
18595
|
size: "sm",
|
|
18548
18596
|
onClick: onReset,
|
|
18549
18597
|
disabled: isAtDefault,
|
|
18550
|
-
className: "h-7 w-full justify-start gap-1.5 px-2 text-xs text-
|
|
18598
|
+
className: "h-7 w-full justify-start gap-1.5 px-2 text-xs text-fg-3 hover:text-fg",
|
|
18551
18599
|
children: [
|
|
18552
18600
|
/* @__PURE__ */ jsx(RotateCcwIcon, { size: 13 }),
|
|
18553
18601
|
"Reset to default"
|
|
@@ -18566,7 +18614,7 @@ function DisplayMenu({
|
|
|
18566
18614
|
// Column + overflow-hidden so the option list (the only flexible
|
|
18567
18615
|
// part) absorbs the height cap, while the search box and Clear
|
|
18568
18616
|
// footer stay pinned and fully visible.
|
|
18569
|
-
"absolute z-50 flex flex-col overflow-hidden rounded-lg border border-
|
|
18617
|
+
"absolute z-50 flex flex-col overflow-hidden rounded-lg border border-rule bg-surface shadow-md motion-reduce:transition-none",
|
|
18570
18618
|
// -mx-1 lets the flyout tuck against the panel so there's no
|
|
18571
18619
|
// dead gap for the cursor to fall through on the way over.
|
|
18572
18620
|
flyout.side === "left" ? "right-full -mr-1" : "left-full -ml-1"
|
|
@@ -18574,8 +18622,8 @@ function DisplayMenu({
|
|
|
18574
18622
|
onMouseEnter: clearTimers,
|
|
18575
18623
|
onMouseLeave: scheduleClose,
|
|
18576
18624
|
children: [
|
|
18577
|
-
showFlyoutSearch && /* @__PURE__ */ jsxs("div", { className: "flex shrink-0 items-center gap-1.5 border-b border-
|
|
18578
|
-
/* @__PURE__ */ jsx(SearchIcon, { size: 13, className: "shrink-0 text-
|
|
18625
|
+
showFlyoutSearch && /* @__PURE__ */ jsxs("div", { className: "flex shrink-0 items-center gap-1.5 border-b border-rule px-2.5 py-1.5", children: [
|
|
18626
|
+
/* @__PURE__ */ jsx(SearchIcon, { size: 13, className: "shrink-0 text-fg-3", "aria-hidden": "true" }),
|
|
18579
18627
|
/* @__PURE__ */ jsx(
|
|
18580
18628
|
"input",
|
|
18581
18629
|
{
|
|
@@ -18584,7 +18632,7 @@ function DisplayMenu({
|
|
|
18584
18632
|
onChange: (e) => setSectionQuery(e.target.value),
|
|
18585
18633
|
placeholder: `Filter ${activeSection.label.toLowerCase()}\u2026`,
|
|
18586
18634
|
"aria-label": `Filter ${activeSection.label}`,
|
|
18587
|
-
className: "h-6 w-full bg-transparent text-[13px] text-
|
|
18635
|
+
className: "h-6 w-full bg-transparent text-[13px] text-fg outline-none placeholder:text-fg-3"
|
|
18588
18636
|
}
|
|
18589
18637
|
)
|
|
18590
18638
|
] }),
|
|
@@ -18619,8 +18667,8 @@ function DisplayMenu({
|
|
|
18619
18667
|
}
|
|
18620
18668
|
},
|
|
18621
18669
|
className: cn(
|
|
18622
|
-
"flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-left text-[13px] transition-colors hover:bg-
|
|
18623
|
-
isActive ? "text-
|
|
18670
|
+
"flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-left text-[13px] transition-colors hover:bg-bg-2/60 focus-visible:bg-bg-2/60 focus-visible:outline-none motion-reduce:transition-none",
|
|
18671
|
+
isActive ? "text-fg" : "text-fg-3 hover:text-fg"
|
|
18624
18672
|
),
|
|
18625
18673
|
children: [
|
|
18626
18674
|
isMulti && /* @__PURE__ */ jsx(
|
|
@@ -18629,7 +18677,7 @@ function DisplayMenu({
|
|
|
18629
18677
|
"aria-hidden": "true",
|
|
18630
18678
|
className: cn(
|
|
18631
18679
|
"flex size-3.5 shrink-0 items-center justify-center rounded border transition-colors",
|
|
18632
|
-
isActive ? "border-brand bg-brand text-fg-on-brand" : "border-
|
|
18680
|
+
isActive ? "border-brand bg-brand text-fg-on-brand" : "border-rule"
|
|
18633
18681
|
),
|
|
18634
18682
|
children: isActive && /* @__PURE__ */ jsx(CheckIcon, { size: 10 })
|
|
18635
18683
|
}
|
|
@@ -18641,13 +18689,13 @@ function DisplayMenu({
|
|
|
18641
18689
|
option.key
|
|
18642
18690
|
);
|
|
18643
18691
|
}) }),
|
|
18644
|
-
activeSection.mode === "multi" && activeSection.selected.size > 0 && activeSection.onClear && /* @__PURE__ */ jsx("div", { className: "shrink-0 border-t border-
|
|
18692
|
+
activeSection.mode === "multi" && activeSection.selected.size > 0 && activeSection.onClear && /* @__PURE__ */ jsx("div", { className: "shrink-0 border-t border-rule p-1", children: /* @__PURE__ */ jsxs(
|
|
18645
18693
|
Button,
|
|
18646
18694
|
{
|
|
18647
18695
|
variant: "ghost",
|
|
18648
18696
|
size: "sm",
|
|
18649
18697
|
onClick: activeSection.onClear,
|
|
18650
|
-
className: "h-6 w-full justify-start px-2 text-[11px] text-
|
|
18698
|
+
className: "h-6 w-full justify-start px-2 text-[11px] text-fg-3 hover:text-fg",
|
|
18651
18699
|
children: [
|
|
18652
18700
|
"Clear ",
|
|
18653
18701
|
activeSection.selected.size,
|
|
@@ -18664,8 +18712,168 @@ function DisplayMenu({
|
|
|
18664
18712
|
] });
|
|
18665
18713
|
}
|
|
18666
18714
|
function EmptyRow({ label = "No matches" }) {
|
|
18667
|
-
return /* @__PURE__ */ jsx("p", { className: "px-2 py-3 text-center text-[11px] text-
|
|
18715
|
+
return /* @__PURE__ */ jsx("p", { className: "px-2 py-3 text-center text-[11px] text-fg-3", children: label });
|
|
18716
|
+
}
|
|
18717
|
+
var StickyStackContext = React39.createContext(null);
|
|
18718
|
+
function StickyStack({ layers, top = 0, children }) {
|
|
18719
|
+
const [layerHeights, setLayerHeights] = React39.useState({});
|
|
18720
|
+
const normalizedLayers = React39.useMemo(() => {
|
|
18721
|
+
const names = [...layers];
|
|
18722
|
+
if (new Set(names).size !== names.length) {
|
|
18723
|
+
throw new Error("StickyStack layer names must be unique.");
|
|
18724
|
+
}
|
|
18725
|
+
return names;
|
|
18726
|
+
}, [layers]);
|
|
18727
|
+
const setLayerHeight = React39.useCallback((name, height) => {
|
|
18728
|
+
setLayerHeights((current) => {
|
|
18729
|
+
if (current[name] === height) return current;
|
|
18730
|
+
return { ...current, [name]: height };
|
|
18731
|
+
});
|
|
18732
|
+
}, []);
|
|
18733
|
+
const value = React39.useMemo(
|
|
18734
|
+
() => ({ layers: normalizedLayers, layerHeights, setLayerHeight, top }),
|
|
18735
|
+
[layerHeights, normalizedLayers, setLayerHeight, top]
|
|
18736
|
+
);
|
|
18737
|
+
return /* @__PURE__ */ jsx(StickyStackContext, { value, children });
|
|
18668
18738
|
}
|
|
18739
|
+
function useStickyStack(componentName) {
|
|
18740
|
+
const context = React39.use(StickyStackContext);
|
|
18741
|
+
if (!context) {
|
|
18742
|
+
throw new Error(`${componentName} must be rendered inside StickyStack.`);
|
|
18743
|
+
}
|
|
18744
|
+
return context;
|
|
18745
|
+
}
|
|
18746
|
+
function cssLength(value) {
|
|
18747
|
+
return typeof value === "number" ? `${value}px` : value ?? "0px";
|
|
18748
|
+
}
|
|
18749
|
+
function stackOffset(context, layerName, includeNamedLayer) {
|
|
18750
|
+
const { layers, layerHeights, top } = context;
|
|
18751
|
+
let endIndex = layers.length;
|
|
18752
|
+
if (layerName !== void 0) {
|
|
18753
|
+
const index = layers.indexOf(layerName);
|
|
18754
|
+
if (index === -1) {
|
|
18755
|
+
throw new Error(`Unknown StickyStack layer "${layerName}".`);
|
|
18756
|
+
}
|
|
18757
|
+
endIndex = includeNamedLayer ? index + 1 : index;
|
|
18758
|
+
}
|
|
18759
|
+
const measuredOffset = layers.slice(0, endIndex).reduce((total, name) => total + (layerHeights[name] ?? 0), 0);
|
|
18760
|
+
const base = cssLength(top);
|
|
18761
|
+
return measuredOffset === 0 ? base : `calc(${base} + ${measuredOffset}px)`;
|
|
18762
|
+
}
|
|
18763
|
+
var StickyStackLayer = React39.forwardRef(
|
|
18764
|
+
function StickyStackLayer2({ name, hostClassName, className, children, style, ...props }, forwardedRef) {
|
|
18765
|
+
const context = useStickyStack("StickyStackLayer");
|
|
18766
|
+
const { setLayerHeight } = context;
|
|
18767
|
+
const top = stackOffset(context, name, false);
|
|
18768
|
+
const hostRef = React39.useRef(null);
|
|
18769
|
+
const layerRef = React39.useRef(null);
|
|
18770
|
+
const [bounds, setBounds] = React39.useState({
|
|
18771
|
+
height: 0,
|
|
18772
|
+
left: 0,
|
|
18773
|
+
ready: false,
|
|
18774
|
+
width: 0
|
|
18775
|
+
});
|
|
18776
|
+
const setLayerRef = React39.useCallback(
|
|
18777
|
+
(node) => {
|
|
18778
|
+
layerRef.current = node;
|
|
18779
|
+
if (typeof forwardedRef === "function") forwardedRef(node);
|
|
18780
|
+
else if (forwardedRef) forwardedRef.current = node;
|
|
18781
|
+
},
|
|
18782
|
+
[forwardedRef]
|
|
18783
|
+
);
|
|
18784
|
+
const measure = React39.useCallback(() => {
|
|
18785
|
+
const host = hostRef.current;
|
|
18786
|
+
const layer = layerRef.current;
|
|
18787
|
+
if (!host || !layer) return;
|
|
18788
|
+
const hostRect = host.getBoundingClientRect();
|
|
18789
|
+
const layerRect = layer.getBoundingClientRect();
|
|
18790
|
+
const next = {
|
|
18791
|
+
height: Math.ceil(layerRect.height),
|
|
18792
|
+
left: hostRect.left,
|
|
18793
|
+
ready: hostRect.width > 0,
|
|
18794
|
+
width: hostRect.width
|
|
18795
|
+
};
|
|
18796
|
+
setBounds(
|
|
18797
|
+
(current) => current.height === next.height && current.left === next.left && current.ready === next.ready && current.width === next.width ? current : next
|
|
18798
|
+
);
|
|
18799
|
+
setLayerHeight(name, next.height);
|
|
18800
|
+
}, [name, setLayerHeight]);
|
|
18801
|
+
React39.useLayoutEffect(() => {
|
|
18802
|
+
measure();
|
|
18803
|
+
let frame = 0;
|
|
18804
|
+
const scheduleMeasure = () => {
|
|
18805
|
+
cancelAnimationFrame(frame);
|
|
18806
|
+
frame = requestAnimationFrame(measure);
|
|
18807
|
+
};
|
|
18808
|
+
const observer = typeof ResizeObserver === "undefined" ? null : new ResizeObserver(scheduleMeasure);
|
|
18809
|
+
if (hostRef.current) observer?.observe(hostRef.current);
|
|
18810
|
+
if (layerRef.current) observer?.observe(layerRef.current);
|
|
18811
|
+
window.addEventListener("resize", scheduleMeasure);
|
|
18812
|
+
window.addEventListener("scroll", scheduleMeasure, true);
|
|
18813
|
+
return () => {
|
|
18814
|
+
cancelAnimationFrame(frame);
|
|
18815
|
+
observer?.disconnect();
|
|
18816
|
+
window.removeEventListener("resize", scheduleMeasure);
|
|
18817
|
+
window.removeEventListener("scroll", scheduleMeasure, true);
|
|
18818
|
+
setLayerHeight(name, 0);
|
|
18819
|
+
};
|
|
18820
|
+
}, [measure, name, setLayerHeight]);
|
|
18821
|
+
return /* @__PURE__ */ jsx(
|
|
18822
|
+
"div",
|
|
18823
|
+
{
|
|
18824
|
+
ref: hostRef,
|
|
18825
|
+
className: cn("relative", hostClassName),
|
|
18826
|
+
style: { height: bounds.ready ? bounds.height : void 0 },
|
|
18827
|
+
"data-sticky-stack-host": name,
|
|
18828
|
+
children: /* @__PURE__ */ jsx(
|
|
18829
|
+
"div",
|
|
18830
|
+
{
|
|
18831
|
+
ref: setLayerRef,
|
|
18832
|
+
className,
|
|
18833
|
+
style: {
|
|
18834
|
+
...style,
|
|
18835
|
+
position: bounds.ready ? "fixed" : "sticky",
|
|
18836
|
+
top,
|
|
18837
|
+
left: bounds.ready ? bounds.left : void 0,
|
|
18838
|
+
width: bounds.ready ? bounds.width : void 0,
|
|
18839
|
+
boxSizing: "border-box",
|
|
18840
|
+
zIndex: style?.zIndex ?? "var(--z-sticky)"
|
|
18841
|
+
},
|
|
18842
|
+
"data-sticky-stack-layer": name,
|
|
18843
|
+
...props,
|
|
18844
|
+
children
|
|
18845
|
+
}
|
|
18846
|
+
)
|
|
18847
|
+
}
|
|
18848
|
+
);
|
|
18849
|
+
}
|
|
18850
|
+
);
|
|
18851
|
+
StickyStackLayer.displayName = "StickyStackLayer";
|
|
18852
|
+
var StickyStackSticky = React39.forwardRef(
|
|
18853
|
+
function StickyStackSticky2({ after, className, style, ...props }, ref) {
|
|
18854
|
+
const context = useStickyStack("StickyStackSticky");
|
|
18855
|
+
const top = stackOffset(context, after, true);
|
|
18856
|
+
return /* @__PURE__ */ jsx(
|
|
18857
|
+
"div",
|
|
18858
|
+
{
|
|
18859
|
+
ref,
|
|
18860
|
+
className: cn("sticky", className),
|
|
18861
|
+
style: {
|
|
18862
|
+
...style,
|
|
18863
|
+
top,
|
|
18864
|
+
zIndex: style?.zIndex ?? "calc(var(--z-sticky) - 1)"
|
|
18865
|
+
},
|
|
18866
|
+
"data-sticky-stack-sticky": "",
|
|
18867
|
+
...props
|
|
18868
|
+
}
|
|
18869
|
+
);
|
|
18870
|
+
}
|
|
18871
|
+
);
|
|
18872
|
+
StickyStackSticky.displayName = "StickyStackSticky";
|
|
18873
|
+
var StickyStackSectionHeader = React39.forwardRef(function StickyStackSectionHeader2(props, ref) {
|
|
18874
|
+
return /* @__PURE__ */ jsx(StickyStackSticky, { ref, "data-sticky-stack-section-header": "", ...props });
|
|
18875
|
+
});
|
|
18876
|
+
StickyStackSectionHeader.displayName = "StickyStackSectionHeader";
|
|
18669
18877
|
function brandScope(product) {
|
|
18670
18878
|
return { "data-brand": product };
|
|
18671
18879
|
}
|
|
@@ -18691,6 +18899,6 @@ var BrandScope = forwardRef(function BrandScope2({ product, children, ...props }
|
|
|
18691
18899
|
});
|
|
18692
18900
|
BrandScope.displayName = "BrandScope";
|
|
18693
18901
|
|
|
18694
|
-
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, BRAND_PRODUCTS, Badge, BarChartIcon, BellIcon, Blockquote, BoldIcon, BottomNav, BrandScope, BrandScopeProvider, 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, DisplayMenu, DocumentChecklist, DocumentDetailActions, DocumentDetailBody, DocumentDetailHeader, DocumentDetailMetaRow, DocumentDetailPanel, DocumentDetailRequester, DocumentDetailTitle, DocumentFileCard, DocumentFileLine, DocumentFileRow, DocumentIcon, DocumentList, DocumentListSection, DocumentRequestCard, DocumentRequestDetail, DocumentRequestField, DocumentRequestUpload, 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, Grid, HelpCircleIcon, HistoryIcon, HomeIcon, HoverCard, HoverCardContent, HoverCardPortal, HoverCardTrigger, IconAction, IconTile, InboxIcon, InfoCircleSolidIcon, InfoIcon, Input, IntentBadge, ItalicIcon, Kanban, KanbanCard, KanbanColumn, KanbanIcon, KbdHint, KeyIcon, KeyboardShortcutsDialog, KpiCard, Label4 as Label, LandmarkIcon, LayoutDashboardIcon, LayoutGridIcon, LayoutListIcon, LightningIcon, Link2Icon, LinkAction, LinkButton, LinkIcon, ListChecksIcon, ListIcon, ListOrderedIcon, LoaderIcon, LoadingRows, LockIcon, LockKeyholeIcon, LockOpenIcon, LogOutIcon, Logo, MailIcon, Main, MapPinIcon, MasterDetailLayout, MenuIcon, MessageBubble, MessageBubbleAction, MessageBubbleTombstone, MessageCircleIcon, MessageCircleWarningIcon, MessageComposer, MetadataGrid, MicrosoftBrandIcon, MinusIcon, MissingDocumentsPanel, MoneyCell, MonitorIcon, MoonIcon, MoreHorizontalIcon, MoveIcon, MultiFilterPill, MultiSelectField, MutedSpec, NewMenu, NotificationFilter, NotificationItem, NotificationList, NotificationPanel, NotificationPanelFooter, NotificationPanelHeader, Numeric, OTPInput, PageHeader, PageHeaderSep, PageHeaderSpec, Pagination, PaletteIcon, PanelLeftCloseIcon, PanelLeftIcon, PaperclipIcon, PauseIcon, PdfPreview, PenSignIcon, PenToolIcon, PencilIcon, PhoneCountryInput, PhoneIcon, PhoneInput, PlayIcon, PlusIcon, Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverPortal, PopoverTrigger, PrimaryAction, PriorityIcon, ProgressBar, ProgressRing, ProposalAddOn, ProposalBillingTerms, ProposalConsentGate, ProposalCustomPage, ProposalNote, ProposalPackageCard, ProposalPaymentCapture, ProposalPricingSummary, ProposalServiceRow, ProposalSignatureBlock, ProposalSignerList, QuestionnairePanel, Questions, RadioGroup3 as RadioGroup, RadioGroupItem, RankedBars, ReceiptIcon, ReplyIcon, ResponsiveDialog, RotateCcwIcon, RouteTransition, SERVICE_TONES, SaveIcon, ScrollArea, ScrollBar, SearchIcon, SearchInput, SearchSelect, SecondaryAction, Section, SectionHead, SectionHeader, SegmentedProgress, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectRoot, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, SelectableKpiCard, SendIcon, Separator4 as Separator, SettingsIcon, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Shell, ShieldIcon, SideDrawer, Sidebar, SidebarBrand, SidebarBrandSwitcher, SidebarBrandSwitcherTile, SidebarBrandText, SidebarFooter, SidebarLink, SidebarLinkAction, SidebarLinkBadge, SidebarLinkGroup, SidebarLinkLabel, SidebarPinButton, SidebarProvider, SidebarSection, SidebarTrigger, SidebarUser, SignatureEditor, Skeleton, SkeletonCircle, SkeletonText, SlashIcon, Slider, SmartphoneIcon, SparkleIcon, SparklesIcon, Spinner, SpreadsheetPreview, StackedBarChart, StagePill, StarIcon, StarRating, Stat, StatusDot, StatusIcon, StatusPill, Stepper, StickyActionBar, StopIcon, StrikethroughIcon, SubmitButton, SuggestionPills, SuiteProgress, SunIcon, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableIcon, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TagIcon, TagsCell, TeamIcon, TeamMemberSelect, Textarea, TimeLogger, TimeLoggerActions, TimeLoggerBillable, TimeLoggerContextRow, TimeLoggerEntry, TimeLoggerEntryList, TimeLoggerField, TimeLoggerFooter, TimeLoggerHeader, TimeLoggerNotes, TimeLoggerTimer, ToastProvider, ToggleGroup, ToggleGroupItem, Toolbar, Tooltip, TooltipContent, TooltipPortal, TooltipProvider, TooltipTrigger, Trash2Icon, TrashIcon, TrendingDownIcon, TrendingUpIcon, UnderlineIcon, UploadIcon, UserCircleIcon, UserIcon, UsersIcon, VisuallyHidden, WorkflowIcon, XCircleSolidIcon, XIcon, YEAR_DISPLAY_PLACEHOLDER, ZoomInIcon, ZoomOutIcon, alertVariants, applyMask, applyYearMask, attachmentChipVariants, badgeVariants, brandLabel, brandScope, 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, useBrandScope, useSidebarPeekLock, useSidebarState, useStopwatch, useToast, yearToIso };
|
|
18902
|
+
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, BRAND_PRODUCTS, Badge, BarChartIcon, BellIcon, Blockquote, BoldIcon, BottomNav, BrandScope, BrandScopeProvider, 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, DisplayMenu, DocumentChecklist, DocumentDetailActions, DocumentDetailBody, DocumentDetailHeader, DocumentDetailMetaRow, DocumentDetailPanel, DocumentDetailRequester, DocumentDetailTitle, DocumentFileCard, DocumentFileLine, DocumentFileRow, DocumentIcon, DocumentList, DocumentListSection, DocumentRequestCard, DocumentRequestDetail, DocumentRequestField, DocumentRequestUpload, 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, Grid, HelpCircleIcon, HistoryIcon, HomeIcon, HoverCard, HoverCardContent, HoverCardPortal, HoverCardTrigger, IconAction, IconTile, InboxIcon, InfoCircleSolidIcon, InfoIcon, Input, IntentBadge, ItalicIcon, Kanban, KanbanCard, KanbanColumn, KanbanIcon, KbdHint, KeyIcon, KeyboardShortcutsDialog, KpiCard, Label4 as Label, LandmarkIcon, LayoutDashboardIcon, LayoutGridIcon, LayoutListIcon, LightningIcon, Link2Icon, LinkAction, LinkButton, LinkIcon, ListChecksIcon, ListIcon, ListOrderedIcon, LoaderIcon, LoadingRows, LockIcon, LockKeyholeIcon, LockOpenIcon, LogOutIcon, Logo, MailIcon, Main, MapPinIcon, MasterDetailLayout, MenuIcon, MessageBubble, MessageBubbleAction, MessageBubbleTombstone, MessageCircleIcon, MessageCircleWarningIcon, MessageComposer, MetadataGrid, MicrosoftBrandIcon, MinusIcon, MissingDocumentsPanel, MoneyCell, MonitorIcon, MoonIcon, MoreHorizontalIcon, MoveIcon, MultiFilterPill, MultiSelectField, MutedSpec, NewMenu, NotificationFilter, NotificationItem, NotificationList, NotificationPanel, NotificationPanelFooter, NotificationPanelHeader, Numeric, OTPInput, PageHeader, PageHeaderSep, PageHeaderSpec, Pagination, PaletteIcon, PanelLeftCloseIcon, PanelLeftIcon, PaperclipIcon, PauseIcon, PdfPreview, PenSignIcon, PenToolIcon, PencilIcon, PhoneCountryInput, PhoneIcon, PhoneInput, PlayIcon, PlusIcon, Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverPortal, PopoverTrigger, PrimaryAction, PriorityIcon, ProgressBar, ProgressRing, ProposalAddOn, ProposalBillingTerms, ProposalConsentGate, ProposalCustomPage, ProposalNote, ProposalPackageCard, ProposalPaymentCapture, ProposalPricingSummary, ProposalServiceRow, ProposalSignatureBlock, ProposalSignerList, QuestionnairePanel, Questions, RadioGroup3 as RadioGroup, RadioGroupItem, RankedBars, ReceiptIcon, ReplyIcon, ResponsiveDialog, RotateCcwIcon, RouteTransition, SERVICE_TONES, SaveIcon, ScrollArea, ScrollBar, SearchIcon, SearchInput, SearchSelect, SecondaryAction, Section, SectionHead, SectionHeader, SegmentedProgress, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectRoot, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, SelectableKpiCard, SendIcon, Separator4 as Separator, SettingsIcon, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Shell, ShieldIcon, SideDrawer, Sidebar, SidebarBrand, SidebarBrandSwitcher, SidebarBrandSwitcherTile, SidebarBrandText, SidebarFooter, SidebarLink, SidebarLinkAction, SidebarLinkBadge, SidebarLinkGroup, SidebarLinkLabel, SidebarPinButton, SidebarProvider, SidebarSection, SidebarTrigger, SidebarUser, SignatureEditor, Skeleton, SkeletonCircle, SkeletonText, SlashIcon, Slider, SmartphoneIcon, SparkleIcon, SparklesIcon, Spinner, SpreadsheetPreview, StackedBarChart, StagePill, StarIcon, StarRating, Stat, StatusDot, StatusIcon, StatusPill, Stepper, StickyActionBar, StickyStack, StickyStackLayer, StickyStackSectionHeader, StickyStackSticky, 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, brandLabel, brandScope, 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, useBrandScope, useSidebarPeekLock, useSidebarState, useStopwatch, useToast, yearToIso };
|
|
18695
18903
|
//# sourceMappingURL=index.js.map
|
|
18696
18904
|
//# sourceMappingURL=index.js.map
|