myoperator-ui 0.0.122 → 0.0.124
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +201 -201
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -292,20 +292,20 @@ import { Loader2 } from "lucide-react";
|
|
|
292
292
|
import { cn } from "../../lib/utils";
|
|
293
293
|
|
|
294
294
|
const buttonVariants = cva(
|
|
295
|
-
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded text-sm font-medium transition-all duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-
|
|
295
|
+
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded text-sm font-medium transition-all duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-semantic-primary focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
|
|
296
296
|
{
|
|
297
297
|
variants: {
|
|
298
298
|
variant: {
|
|
299
|
-
default: "bg-
|
|
300
|
-
primary: "bg-
|
|
301
|
-
destructive: "bg-
|
|
299
|
+
default: "bg-semantic-primary text-semantic-text-inverted hover:bg-semantic-primary-hover",
|
|
300
|
+
primary: "bg-semantic-primary text-semantic-text-inverted hover:bg-semantic-primary-hover",
|
|
301
|
+
destructive: "bg-semantic-error-primary text-semantic-text-inverted hover:bg-semantic-error-hover",
|
|
302
302
|
outline:
|
|
303
|
-
"border border-
|
|
304
|
-
secondary: "bg-
|
|
305
|
-
ghost: "text-
|
|
306
|
-
link: "text-
|
|
303
|
+
"border border-semantic-border-primary bg-transparent text-semantic-text-secondary hover:bg-semantic-primary-surface",
|
|
304
|
+
secondary: "bg-semantic-primary-surface text-semantic-text-secondary hover:bg-semantic-bg-hover",
|
|
305
|
+
ghost: "text-semantic-text-muted hover:bg-semantic-bg-ui hover:text-semantic-text-primary",
|
|
306
|
+
link: "text-semantic-text-secondary underline-offset-4 hover:underline",
|
|
307
307
|
dashed:
|
|
308
|
-
"border border-dashed border-
|
|
308
|
+
"border border-dashed border-semantic-bg-hover bg-transparent text-semantic-text-muted hover:border-semantic-border-primary hover:text-semantic-text-secondary hover:bg-[var(--color-neutral-50)]",
|
|
309
309
|
},
|
|
310
310
|
size: {
|
|
311
311
|
default: "min-w-20 py-2.5 px-4 [&_svg]:size-4",
|
|
@@ -426,15 +426,15 @@ const badgeVariants = cva(
|
|
|
426
426
|
variants: {
|
|
427
427
|
variant: {
|
|
428
428
|
// Status-based variants (existing)
|
|
429
|
-
active: "bg-
|
|
430
|
-
failed: "bg-
|
|
431
|
-
disabled: "bg-
|
|
432
|
-
default: "bg-
|
|
433
|
-
primary: "bg-
|
|
429
|
+
active: "bg-semantic-success-surface text-semantic-success-primary",
|
|
430
|
+
failed: "bg-semantic-error-surface text-semantic-error-primary",
|
|
431
|
+
disabled: "bg-semantic-bg-ui text-semantic-text-muted",
|
|
432
|
+
default: "bg-semantic-bg-ui text-semantic-text-primary",
|
|
433
|
+
primary: "bg-semantic-bg-ui text-semantic-text-primary",
|
|
434
434
|
// shadcn-style variants (new)
|
|
435
|
-
secondary: "bg-
|
|
436
|
-
outline: "border border-
|
|
437
|
-
destructive: "bg-
|
|
435
|
+
secondary: "bg-semantic-bg-ui text-semantic-text-primary",
|
|
436
|
+
outline: "border border-semantic-border-layout bg-transparent text-semantic-text-primary",
|
|
437
|
+
destructive: "bg-semantic-error-surface text-semantic-error-primary",
|
|
438
438
|
},
|
|
439
439
|
size: {
|
|
440
440
|
default: "px-3 py-1",
|
|
@@ -610,14 +610,14 @@ const mapClassName: { [key in Key]: string } = {
|
|
|
610
610
|
* Maps color variants to Tailwind text color classes
|
|
611
611
|
*/
|
|
612
612
|
const mapColorClassName: { [key in Color]: string } = {
|
|
613
|
-
primary: "text-
|
|
614
|
-
secondary: "text-
|
|
615
|
-
muted: "text-
|
|
616
|
-
placeholder: "text-
|
|
617
|
-
link: "text-
|
|
618
|
-
inverted: "text-
|
|
619
|
-
error: "text-
|
|
620
|
-
success: "text-
|
|
613
|
+
primary: "text-semantic-text-primary",
|
|
614
|
+
secondary: "text-semantic-text-secondary",
|
|
615
|
+
muted: "text-semantic-text-muted",
|
|
616
|
+
placeholder: "text-semantic-text-placeholder",
|
|
617
|
+
link: "text-semantic-text-link",
|
|
618
|
+
inverted: "text-semantic-text-inverted",
|
|
619
|
+
error: "text-semantic-error-primary",
|
|
620
|
+
success: "text-semantic-success-primary",
|
|
621
621
|
};
|
|
622
622
|
|
|
623
623
|
/**
|
|
@@ -748,14 +748,14 @@ import { cn } from "../../lib/utils";
|
|
|
748
748
|
* Input variants for different visual states
|
|
749
749
|
*/
|
|
750
750
|
const inputVariants = cva(
|
|
751
|
-
"h-10 w-full rounded bg-
|
|
751
|
+
"h-10 w-full rounded bg-semantic-bg-primary px-4 py-2.5 text-sm text-semantic-text-primary transition-all file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-semantic-text-primary placeholder:text-semantic-text-placeholder disabled:cursor-not-allowed disabled:opacity-50 disabled:bg-[var(--color-neutral-50)]",
|
|
752
752
|
{
|
|
753
753
|
variants: {
|
|
754
754
|
state: {
|
|
755
755
|
default:
|
|
756
|
-
"border border-
|
|
756
|
+
"border border-semantic-border-input focus:outline-none focus:border-semantic-border-input-focus/50 focus:shadow-[0_0_0_1px_rgba(43,188,202,0.15)]",
|
|
757
757
|
error:
|
|
758
|
-
"border border-
|
|
758
|
+
"border border-semantic-error-primary/40 focus:outline-none focus:border-semantic-error-primary/60 focus:shadow-[0_0_0_1px_rgba(240,68,56,0.1)]",
|
|
759
759
|
},
|
|
760
760
|
},
|
|
761
761
|
defaultVariants: {
|
|
@@ -822,14 +822,14 @@ import { cn } from "../../lib/utils";
|
|
|
822
822
|
* SelectTrigger variants matching TextField styling
|
|
823
823
|
*/
|
|
824
824
|
const selectTriggerVariants = cva(
|
|
825
|
-
"flex h-10 w-full items-center justify-between rounded bg-
|
|
825
|
+
"flex h-10 w-full items-center justify-between rounded bg-semantic-bg-primary px-4 py-2.5 text-sm text-semantic-text-primary transition-all disabled:cursor-not-allowed disabled:opacity-50 disabled:bg-[var(--color-neutral-50)] [&>span]:line-clamp-1",
|
|
826
826
|
{
|
|
827
827
|
variants: {
|
|
828
828
|
state: {
|
|
829
829
|
default:
|
|
830
|
-
"border border-
|
|
830
|
+
"border border-semantic-border-input focus:outline-none focus:border-semantic-border-input-focus/50 focus:shadow-[0_0_0_1px_rgba(43,188,202,0.15)]",
|
|
831
831
|
error:
|
|
832
|
-
"border border-
|
|
832
|
+
"border border-semantic-error-primary/40 focus:outline-none focus:border-semantic-error-primary/60 focus:shadow-[0_0_0_1px_rgba(240,68,56,0.1)]",
|
|
833
833
|
},
|
|
834
834
|
},
|
|
835
835
|
defaultVariants: {
|
|
@@ -860,7 +860,7 @@ const SelectTrigger = React.forwardRef<
|
|
|
860
860
|
>
|
|
861
861
|
{children}
|
|
862
862
|
<SelectPrimitive.Icon asChild>
|
|
863
|
-
<ChevronDown className="size-4 text-
|
|
863
|
+
<ChevronDown className="size-4 text-semantic-text-muted opacity-70" />
|
|
864
864
|
</SelectPrimitive.Icon>
|
|
865
865
|
</SelectPrimitive.Trigger>
|
|
866
866
|
));
|
|
@@ -878,7 +878,7 @@ const SelectScrollUpButton = React.forwardRef<
|
|
|
878
878
|
)}
|
|
879
879
|
{...props}
|
|
880
880
|
>
|
|
881
|
-
<ChevronUp className="size-4 text-
|
|
881
|
+
<ChevronUp className="size-4 text-semantic-text-muted" />
|
|
882
882
|
</SelectPrimitive.ScrollUpButton>
|
|
883
883
|
));
|
|
884
884
|
SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
|
|
@@ -895,7 +895,7 @@ const SelectScrollDownButton = React.forwardRef<
|
|
|
895
895
|
)}
|
|
896
896
|
{...props}
|
|
897
897
|
>
|
|
898
|
-
<ChevronDown className="size-4 text-
|
|
898
|
+
<ChevronDown className="size-4 text-semantic-text-muted" />
|
|
899
899
|
</SelectPrimitive.ScrollDownButton>
|
|
900
900
|
));
|
|
901
901
|
SelectScrollDownButton.displayName =
|
|
@@ -909,7 +909,7 @@ const SelectContent = React.forwardRef<
|
|
|
909
909
|
<SelectPrimitive.Content
|
|
910
910
|
ref={ref}
|
|
911
911
|
className={cn(
|
|
912
|
-
"relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded bg-
|
|
912
|
+
"relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded bg-semantic-bg-primary border border-semantic-border-layout shadow-md",
|
|
913
913
|
"data-[state=open]:animate-in data-[state=closed]:animate-out",
|
|
914
914
|
"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
915
915
|
"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
|
|
@@ -944,7 +944,7 @@ const SelectLabel = React.forwardRef<
|
|
|
944
944
|
>(({ className, ...props }, ref) => (
|
|
945
945
|
<SelectPrimitive.Label
|
|
946
946
|
ref={ref}
|
|
947
|
-
className={cn("px-4 py-1.5 text-xs font-medium text-
|
|
947
|
+
className={cn("px-4 py-1.5 text-xs font-medium text-semantic-text-muted", className)}
|
|
948
948
|
{...props}
|
|
949
949
|
/>
|
|
950
950
|
));
|
|
@@ -957,8 +957,8 @@ const SelectItem = React.forwardRef<
|
|
|
957
957
|
<SelectPrimitive.Item
|
|
958
958
|
ref={ref}
|
|
959
959
|
className={cn(
|
|
960
|
-
"relative flex w-full cursor-pointer select-none items-center rounded-sm py-2 pl-4 pr-8 text-sm text-
|
|
961
|
-
"hover:bg-
|
|
960
|
+
"relative flex w-full cursor-pointer select-none items-center rounded-sm py-2 pl-4 pr-8 text-sm text-semantic-text-primary outline-none",
|
|
961
|
+
"hover:bg-semantic-bg-ui focus:bg-semantic-bg-ui",
|
|
962
962
|
"data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
963
963
|
className
|
|
964
964
|
)}
|
|
@@ -966,7 +966,7 @@ const SelectItem = React.forwardRef<
|
|
|
966
966
|
>
|
|
967
967
|
<span className="absolute right-2 flex size-4 items-center justify-center">
|
|
968
968
|
<SelectPrimitive.ItemIndicator>
|
|
969
|
-
<Check className="size-4 text-
|
|
969
|
+
<Check className="size-4 text-semantic-brand" />
|
|
970
970
|
</SelectPrimitive.ItemIndicator>
|
|
971
971
|
</span>
|
|
972
972
|
<SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>
|
|
@@ -980,7 +980,7 @@ const SelectSeparator = React.forwardRef<
|
|
|
980
980
|
>(({ className, ...props }, ref) => (
|
|
981
981
|
<SelectPrimitive.Separator
|
|
982
982
|
ref={ref}
|
|
983
|
-
className={cn("-mx-1 my-1 h-px bg-
|
|
983
|
+
className={cn("-mx-1 my-1 h-px bg-semantic-border-layout", className)}
|
|
984
984
|
{...props}
|
|
985
985
|
/>
|
|
986
986
|
));
|
|
@@ -1027,7 +1027,7 @@ import { cn } from "../../lib/utils";
|
|
|
1027
1027
|
* Checkbox box variants (the outer container)
|
|
1028
1028
|
*/
|
|
1029
1029
|
const checkboxVariants = cva(
|
|
1030
|
-
"peer inline-flex items-center justify-center shrink-0 rounded border-2 transition-colors duration-200 ease-in-out focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-
|
|
1030
|
+
"peer inline-flex items-center justify-center shrink-0 rounded border-2 transition-colors duration-200 ease-in-out focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-semantic-primary focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-semantic-primary data-[state=checked]:border-semantic-primary data-[state=checked]:text-semantic-text-inverted data-[state=indeterminate]:bg-semantic-primary data-[state=indeterminate]:border-semantic-primary data-[state=indeterminate]:text-semantic-text-inverted data-[state=unchecked]:bg-semantic-bg-primary data-[state=unchecked]:border-semantic-border-input data-[state=unchecked]:hover:border-[var(--color-neutral-400)]",
|
|
1031
1031
|
{
|
|
1032
1032
|
variants: {
|
|
1033
1033
|
size: {
|
|
@@ -1159,7 +1159,7 @@ const Checkbox = React.forwardRef<
|
|
|
1159
1159
|
htmlFor={id}
|
|
1160
1160
|
className={cn(
|
|
1161
1161
|
labelSizeVariants({ size }),
|
|
1162
|
-
"text-
|
|
1162
|
+
"text-semantic-text-primary cursor-pointer",
|
|
1163
1163
|
disabled && "opacity-50 cursor-not-allowed",
|
|
1164
1164
|
labelClassName
|
|
1165
1165
|
)}
|
|
@@ -1173,7 +1173,7 @@ const Checkbox = React.forwardRef<
|
|
|
1173
1173
|
htmlFor={id}
|
|
1174
1174
|
className={cn(
|
|
1175
1175
|
labelSizeVariants({ size }),
|
|
1176
|
-
"text-
|
|
1176
|
+
"text-semantic-text-primary cursor-pointer",
|
|
1177
1177
|
disabled && "opacity-50 cursor-not-allowed",
|
|
1178
1178
|
labelClassName
|
|
1179
1179
|
)}
|
|
@@ -1197,7 +1197,7 @@ const Checkbox = React.forwardRef<
|
|
|
1197
1197
|
<span
|
|
1198
1198
|
className={cn(
|
|
1199
1199
|
labelSizeVariants({ size }),
|
|
1200
|
-
"text-
|
|
1200
|
+
"text-semantic-text-primary",
|
|
1201
1201
|
disabled && "opacity-50",
|
|
1202
1202
|
labelClassName
|
|
1203
1203
|
)}
|
|
@@ -1210,7 +1210,7 @@ const Checkbox = React.forwardRef<
|
|
|
1210
1210
|
<span
|
|
1211
1211
|
className={cn(
|
|
1212
1212
|
labelSizeVariants({ size }),
|
|
1213
|
-
"text-
|
|
1213
|
+
"text-semantic-text-primary",
|
|
1214
1214
|
disabled && "opacity-50",
|
|
1215
1215
|
labelClassName
|
|
1216
1216
|
)}
|
|
@@ -1254,7 +1254,7 @@ import { cn } from "../../lib/utils";
|
|
|
1254
1254
|
* Switch track variants (the outer container)
|
|
1255
1255
|
*/
|
|
1256
1256
|
const switchVariants = cva(
|
|
1257
|
-
"peer inline-flex shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-
|
|
1257
|
+
"peer inline-flex shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-semantic-primary focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-semantic-primary data-[state=unchecked]:bg-semantic-bg-grey",
|
|
1258
1258
|
{
|
|
1259
1259
|
variants: {
|
|
1260
1260
|
size: {
|
|
@@ -1358,7 +1358,7 @@ const Switch = React.forwardRef<
|
|
|
1358
1358
|
<span
|
|
1359
1359
|
className={cn(
|
|
1360
1360
|
labelSizeVariants({ size }),
|
|
1361
|
-
"text-
|
|
1361
|
+
"text-semantic-text-primary",
|
|
1362
1362
|
disabled && "opacity-50"
|
|
1363
1363
|
)}
|
|
1364
1364
|
>
|
|
@@ -1370,7 +1370,7 @@ const Switch = React.forwardRef<
|
|
|
1370
1370
|
<span
|
|
1371
1371
|
className={cn(
|
|
1372
1372
|
labelSizeVariants({ size }),
|
|
1373
|
-
"text-
|
|
1373
|
+
"text-semantic-text-primary",
|
|
1374
1374
|
disabled && "opacity-50"
|
|
1375
1375
|
)}
|
|
1376
1376
|
>
|
|
@@ -1413,17 +1413,17 @@ import { cn } from "../../lib/utils";
|
|
|
1413
1413
|
* TextField container variants for when icons/prefix/suffix are present
|
|
1414
1414
|
*/
|
|
1415
1415
|
const textFieldContainerVariants = cva(
|
|
1416
|
-
"relative flex items-center rounded bg-
|
|
1416
|
+
"relative flex items-center rounded bg-semantic-bg-primary transition-all",
|
|
1417
1417
|
{
|
|
1418
1418
|
variants: {
|
|
1419
1419
|
state: {
|
|
1420
1420
|
default:
|
|
1421
|
-
"border border-
|
|
1421
|
+
"border border-semantic-border-input focus-within:border-semantic-border-input-focus/50 focus-within:shadow-[0_0_0_1px_rgba(43,188,202,0.15)]",
|
|
1422
1422
|
error:
|
|
1423
|
-
"border border-
|
|
1423
|
+
"border border-semantic-error-primary/40 focus-within:border-semantic-error-primary/60 focus-within:shadow-[0_0_0_1px_rgba(240,68,56,0.1)]",
|
|
1424
1424
|
},
|
|
1425
1425
|
disabled: {
|
|
1426
|
-
true: "cursor-not-allowed opacity-50 bg-[
|
|
1426
|
+
true: "cursor-not-allowed opacity-50 bg-[var(--color-neutral-50)]",
|
|
1427
1427
|
false: "",
|
|
1428
1428
|
},
|
|
1429
1429
|
},
|
|
@@ -1438,14 +1438,14 @@ const textFieldContainerVariants = cva(
|
|
|
1438
1438
|
* TextField input variants (standalone without container)
|
|
1439
1439
|
*/
|
|
1440
1440
|
const textFieldInputVariants = cva(
|
|
1441
|
-
"h-10 w-full rounded bg-
|
|
1441
|
+
"h-10 w-full rounded bg-semantic-bg-primary px-4 py-2.5 text-sm text-semantic-text-primary transition-all file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-semantic-text-primary placeholder:text-semantic-text-placeholder disabled:cursor-not-allowed disabled:opacity-50 disabled:bg-[var(--color-neutral-50)]",
|
|
1442
1442
|
{
|
|
1443
1443
|
variants: {
|
|
1444
1444
|
state: {
|
|
1445
1445
|
default:
|
|
1446
|
-
"border border-
|
|
1446
|
+
"border border-semantic-border-input focus:outline-none focus:border-semantic-border-input-focus/50 focus:shadow-[0_0_0_1px_rgba(43,188,202,0.15)]",
|
|
1447
1447
|
error:
|
|
1448
|
-
"border border-
|
|
1448
|
+
"border border-semantic-error-primary/40 focus:outline-none focus:border-semantic-error-primary/60 focus:shadow-[0_0_0_1px_rgba(240,68,56,0.1)]",
|
|
1449
1449
|
},
|
|
1450
1450
|
},
|
|
1451
1451
|
defaultVariants: {
|
|
@@ -1566,7 +1566,7 @@ const TextField = React.forwardRef<HTMLInputElement, TextFieldProps>(
|
|
|
1566
1566
|
id={inputId}
|
|
1567
1567
|
className={cn(
|
|
1568
1568
|
hasAddons
|
|
1569
|
-
? "flex-1 bg-transparent border-0 outline-none focus:ring-0 px-0 h-full text-sm text-
|
|
1569
|
+
? "flex-1 bg-transparent border-0 outline-none focus:ring-0 px-0 h-full text-sm text-semantic-text-primary placeholder:text-semantic-text-placeholder disabled:cursor-not-allowed"
|
|
1570
1570
|
: textFieldInputVariants({ state: derivedState, className })
|
|
1571
1571
|
)}
|
|
1572
1572
|
disabled={disabled || loading}
|
|
@@ -1586,10 +1586,10 @@ const TextField = React.forwardRef<HTMLInputElement, TextFieldProps>(
|
|
|
1586
1586
|
{label && (
|
|
1587
1587
|
<label
|
|
1588
1588
|
htmlFor={inputId}
|
|
1589
|
-
className={cn("text-sm font-medium text-
|
|
1589
|
+
className={cn("text-sm font-medium text-semantic-text-primary", labelClassName)}
|
|
1590
1590
|
>
|
|
1591
1591
|
{label}
|
|
1592
|
-
{required && <span className="text-
|
|
1592
|
+
{required && <span className="text-semantic-error-primary ml-0.5">*</span>}
|
|
1593
1593
|
</label>
|
|
1594
1594
|
)}
|
|
1595
1595
|
|
|
@@ -1606,26 +1606,26 @@ const TextField = React.forwardRef<HTMLInputElement, TextFieldProps>(
|
|
|
1606
1606
|
)}
|
|
1607
1607
|
>
|
|
1608
1608
|
{prefix && (
|
|
1609
|
-
<span className="text-sm text-
|
|
1609
|
+
<span className="text-sm text-semantic-text-muted mr-2 select-none">
|
|
1610
1610
|
{prefix}
|
|
1611
1611
|
</span>
|
|
1612
1612
|
)}
|
|
1613
1613
|
{leftIcon && (
|
|
1614
|
-
<span className="mr-2 text-
|
|
1614
|
+
<span className="mr-2 text-semantic-text-muted [&_svg]:size-4 flex-shrink-0">
|
|
1615
1615
|
{leftIcon}
|
|
1616
1616
|
</span>
|
|
1617
1617
|
)}
|
|
1618
1618
|
{inputElement}
|
|
1619
1619
|
{loading && (
|
|
1620
|
-
<Loader2 className="animate-spin size-4 text-
|
|
1620
|
+
<Loader2 className="animate-spin size-4 text-semantic-text-muted ml-2 flex-shrink-0" />
|
|
1621
1621
|
)}
|
|
1622
1622
|
{!loading && rightIcon && (
|
|
1623
|
-
<span className="ml-2 text-
|
|
1623
|
+
<span className="ml-2 text-semantic-text-muted [&_svg]:size-4 flex-shrink-0">
|
|
1624
1624
|
{rightIcon}
|
|
1625
1625
|
</span>
|
|
1626
1626
|
)}
|
|
1627
1627
|
{suffix && (
|
|
1628
|
-
<span className="text-sm text-
|
|
1628
|
+
<span className="text-sm text-semantic-text-muted ml-2 select-none">
|
|
1629
1629
|
{suffix}
|
|
1630
1630
|
</span>
|
|
1631
1631
|
)}
|
|
@@ -1638,11 +1638,11 @@ const TextField = React.forwardRef<HTMLInputElement, TextFieldProps>(
|
|
|
1638
1638
|
{(error || helperText || (showCount && maxLength)) && (
|
|
1639
1639
|
<div className="flex justify-between items-start gap-2">
|
|
1640
1640
|
{error ? (
|
|
1641
|
-
<span id={errorId} className="text-xs text-
|
|
1641
|
+
<span id={errorId} className="text-xs text-semantic-error-primary">
|
|
1642
1642
|
{error}
|
|
1643
1643
|
</span>
|
|
1644
1644
|
) : helperText ? (
|
|
1645
|
-
<span id={helperId} className="text-xs text-
|
|
1645
|
+
<span id={helperId} className="text-xs text-semantic-text-muted">
|
|
1646
1646
|
{helperText}
|
|
1647
1647
|
</span>
|
|
1648
1648
|
) : (
|
|
@@ -1652,7 +1652,7 @@ const TextField = React.forwardRef<HTMLInputElement, TextFieldProps>(
|
|
|
1652
1652
|
<span
|
|
1653
1653
|
className={cn(
|
|
1654
1654
|
"text-xs",
|
|
1655
|
-
charCount > maxLength ? "text-
|
|
1655
|
+
charCount > maxLength ? "text-semantic-error-primary" : "text-semantic-text-muted"
|
|
1656
1656
|
)}
|
|
1657
1657
|
>
|
|
1658
1658
|
{charCount}/{maxLength}
|
|
@@ -1849,10 +1849,10 @@ const SelectField = React.forwardRef<HTMLButtonElement, SelectFieldProps>(
|
|
|
1849
1849
|
{label && (
|
|
1850
1850
|
<label
|
|
1851
1851
|
htmlFor={selectId}
|
|
1852
|
-
className={cn("text-sm font-medium text-
|
|
1852
|
+
className={cn("text-sm font-medium text-semantic-text-primary", labelClassName)}
|
|
1853
1853
|
>
|
|
1854
1854
|
{label}
|
|
1855
|
-
{required && <span className="text-
|
|
1855
|
+
{required && <span className="text-semantic-error-primary ml-0.5">*</span>}
|
|
1856
1856
|
</label>
|
|
1857
1857
|
)}
|
|
1858
1858
|
|
|
@@ -1875,7 +1875,7 @@ const SelectField = React.forwardRef<HTMLButtonElement, SelectFieldProps>(
|
|
|
1875
1875
|
>
|
|
1876
1876
|
<SelectValue placeholder={placeholder} />
|
|
1877
1877
|
{loading && (
|
|
1878
|
-
<Loader2 className="absolute right-8 size-4 animate-spin text-
|
|
1878
|
+
<Loader2 className="absolute right-8 size-4 animate-spin text-semantic-text-muted" />
|
|
1879
1879
|
)}
|
|
1880
1880
|
</SelectTrigger>
|
|
1881
1881
|
<SelectContent>
|
|
@@ -1887,7 +1887,7 @@ const SelectField = React.forwardRef<HTMLButtonElement, SelectFieldProps>(
|
|
|
1887
1887
|
placeholder={searchPlaceholder}
|
|
1888
1888
|
value={searchQuery}
|
|
1889
1889
|
onChange={handleSearchChange}
|
|
1890
|
-
className="w-full h-8 px-3 text-sm border border-
|
|
1890
|
+
className="w-full h-8 px-3 text-sm border border-semantic-border-input rounded bg-semantic-bg-primary placeholder:text-semantic-text-placeholder focus:outline-none focus:border-semantic-border-input-focus/50"
|
|
1891
1891
|
// Prevent closing dropdown when clicking input
|
|
1892
1892
|
onClick={(e) => e.stopPropagation()}
|
|
1893
1893
|
onKeyDown={(e) => e.stopPropagation()}
|
|
@@ -1930,7 +1930,7 @@ const SelectField = React.forwardRef<HTMLButtonElement, SelectFieldProps>(
|
|
|
1930
1930
|
searchQuery &&
|
|
1931
1931
|
groupedOptions.ungrouped.length === 0 &&
|
|
1932
1932
|
Object.keys(groupedOptions.groups).length === 0 && (
|
|
1933
|
-
<div className="py-6 text-center text-sm text-
|
|
1933
|
+
<div className="py-6 text-center text-sm text-semantic-text-muted">
|
|
1934
1934
|
No results found
|
|
1935
1935
|
</div>
|
|
1936
1936
|
)}
|
|
@@ -1941,11 +1941,11 @@ const SelectField = React.forwardRef<HTMLButtonElement, SelectFieldProps>(
|
|
|
1941
1941
|
{(error || helperText) && (
|
|
1942
1942
|
<div className="flex justify-between items-start gap-2">
|
|
1943
1943
|
{error ? (
|
|
1944
|
-
<span id={errorId} className="text-xs text-
|
|
1944
|
+
<span id={errorId} className="text-xs text-semantic-error-primary">
|
|
1945
1945
|
{error}
|
|
1946
1946
|
</span>
|
|
1947
1947
|
) : helperText ? (
|
|
1948
|
-
<span id={helperId} className="text-xs text-
|
|
1948
|
+
<span id={helperId} className="text-xs text-semantic-text-muted">
|
|
1949
1949
|
{helperText}
|
|
1950
1950
|
</span>
|
|
1951
1951
|
) : null}
|
|
@@ -1984,14 +1984,14 @@ import { cn } from "../../lib/utils";
|
|
|
1984
1984
|
* MultiSelect trigger variants matching TextField styling
|
|
1985
1985
|
*/
|
|
1986
1986
|
const multiSelectTriggerVariants = cva(
|
|
1987
|
-
"flex min-h-10 w-full items-center justify-between rounded bg-
|
|
1987
|
+
"flex min-h-10 w-full items-center justify-between rounded bg-semantic-bg-primary px-4 py-2 text-sm text-semantic-text-primary transition-all disabled:cursor-not-allowed disabled:opacity-50 disabled:bg-[var(--color-neutral-50)]",
|
|
1988
1988
|
{
|
|
1989
1989
|
variants: {
|
|
1990
1990
|
state: {
|
|
1991
1991
|
default:
|
|
1992
|
-
"border border-
|
|
1992
|
+
"border border-semantic-border-input focus:outline-none focus:border-semantic-border-input-focus/50 focus:shadow-[0_0_0_1px_rgba(43,188,202,0.15)]",
|
|
1993
1993
|
error:
|
|
1994
|
-
"border border-
|
|
1994
|
+
"border border-semantic-error-primary/40 focus:outline-none focus:border-semantic-error-primary/60 focus:shadow-[0_0_0_1px_rgba(240,68,56,0.1)]",
|
|
1995
1995
|
},
|
|
1996
1996
|
},
|
|
1997
1997
|
defaultVariants: {
|
|
@@ -2209,10 +2209,10 @@ const MultiSelect = React.forwardRef<HTMLButtonElement, MultiSelectProps>(
|
|
|
2209
2209
|
{label && (
|
|
2210
2210
|
<label
|
|
2211
2211
|
htmlFor={selectId}
|
|
2212
|
-
className={cn("text-sm font-medium text-
|
|
2212
|
+
className={cn("text-sm font-medium text-semantic-text-primary", labelClassName)}
|
|
2213
2213
|
>
|
|
2214
2214
|
{label}
|
|
2215
|
-
{required && <span className="text-
|
|
2215
|
+
{required && <span className="text-semantic-error-primary ml-0.5">*</span>}
|
|
2216
2216
|
</label>
|
|
2217
2217
|
)}
|
|
2218
2218
|
|
|
@@ -2237,12 +2237,12 @@ const MultiSelect = React.forwardRef<HTMLButtonElement, MultiSelectProps>(
|
|
|
2237
2237
|
>
|
|
2238
2238
|
<div className="flex-1 flex flex-wrap gap-1">
|
|
2239
2239
|
{selectedValues.length === 0 ? (
|
|
2240
|
-
<span className="text-
|
|
2240
|
+
<span className="text-semantic-text-placeholder">{placeholder}</span>
|
|
2241
2241
|
) : (
|
|
2242
2242
|
selectedLabels.map((label, index) => (
|
|
2243
2243
|
<span
|
|
2244
2244
|
key={selectedValues[index]}
|
|
2245
|
-
className="inline-flex items-center gap-1 bg-
|
|
2245
|
+
className="inline-flex items-center gap-1 bg-semantic-bg-ui text-semantic-text-primary text-xs px-2 py-0.5 rounded"
|
|
2246
2246
|
>
|
|
2247
2247
|
{label}
|
|
2248
2248
|
<span
|
|
@@ -2258,7 +2258,7 @@ const MultiSelect = React.forwardRef<HTMLButtonElement, MultiSelectProps>(
|
|
|
2258
2258
|
);
|
|
2259
2259
|
}
|
|
2260
2260
|
}}
|
|
2261
|
-
className="cursor-pointer hover:text-
|
|
2261
|
+
className="cursor-pointer hover:text-semantic-error-primary focus:outline-none"
|
|
2262
2262
|
aria-label={\`Remove \${label}\`}
|
|
2263
2263
|
>
|
|
2264
2264
|
<X className="size-3" />
|
|
@@ -2279,18 +2279,18 @@ const MultiSelect = React.forwardRef<HTMLButtonElement, MultiSelectProps>(
|
|
|
2279
2279
|
clearAll(e as unknown as React.MouseEvent);
|
|
2280
2280
|
}
|
|
2281
2281
|
}}
|
|
2282
|
-
className="p-0.5 cursor-pointer hover:text-
|
|
2282
|
+
className="p-0.5 cursor-pointer hover:text-semantic-error-primary focus:outline-none"
|
|
2283
2283
|
aria-label="Clear all"
|
|
2284
2284
|
>
|
|
2285
|
-
<X className="size-4 text-
|
|
2285
|
+
<X className="size-4 text-semantic-text-muted" />
|
|
2286
2286
|
</span>
|
|
2287
2287
|
)}
|
|
2288
2288
|
{loading ? (
|
|
2289
|
-
<Loader2 className="size-4 animate-spin text-
|
|
2289
|
+
<Loader2 className="size-4 animate-spin text-semantic-text-muted" />
|
|
2290
2290
|
) : (
|
|
2291
2291
|
<ChevronDown
|
|
2292
2292
|
className={cn(
|
|
2293
|
-
"size-4 text-
|
|
2293
|
+
"size-4 text-semantic-text-muted transition-transform",
|
|
2294
2294
|
isOpen && "rotate-180"
|
|
2295
2295
|
)}
|
|
2296
2296
|
/>
|
|
@@ -2302,7 +2302,7 @@ const MultiSelect = React.forwardRef<HTMLButtonElement, MultiSelectProps>(
|
|
|
2302
2302
|
{isOpen && (
|
|
2303
2303
|
<div
|
|
2304
2304
|
className={cn(
|
|
2305
|
-
"absolute z-50 mt-1 w-full rounded bg-
|
|
2305
|
+
"absolute z-50 mt-1 w-full rounded bg-semantic-bg-primary border border-semantic-border-layout shadow-md",
|
|
2306
2306
|
"top-full"
|
|
2307
2307
|
)}
|
|
2308
2308
|
role="listbox"
|
|
@@ -2310,13 +2310,13 @@ const MultiSelect = React.forwardRef<HTMLButtonElement, MultiSelectProps>(
|
|
|
2310
2310
|
>
|
|
2311
2311
|
{/* Search input */}
|
|
2312
2312
|
{searchable && (
|
|
2313
|
-
<div className="p-2 border-b border-
|
|
2313
|
+
<div className="p-2 border-b border-semantic-border-layout">
|
|
2314
2314
|
<input
|
|
2315
2315
|
type="text"
|
|
2316
2316
|
placeholder={searchPlaceholder}
|
|
2317
2317
|
value={searchQuery}
|
|
2318
2318
|
onChange={(e) => setSearchQuery(e.target.value)}
|
|
2319
|
-
className="w-full h-8 px-3 text-sm border border-
|
|
2319
|
+
className="w-full h-8 px-3 text-sm border border-semantic-border-input rounded bg-semantic-bg-primary placeholder:text-semantic-text-placeholder focus:outline-none focus:border-semantic-border-input-focus/50"
|
|
2320
2320
|
onClick={(e) => e.stopPropagation()}
|
|
2321
2321
|
/>
|
|
2322
2322
|
</div>
|
|
@@ -2325,7 +2325,7 @@ const MultiSelect = React.forwardRef<HTMLButtonElement, MultiSelectProps>(
|
|
|
2325
2325
|
{/* Options */}
|
|
2326
2326
|
<div className="max-h-60 overflow-auto p-1">
|
|
2327
2327
|
{filteredOptions.length === 0 ? (
|
|
2328
|
-
<div className="py-6 text-center text-sm text-
|
|
2328
|
+
<div className="py-6 text-center text-sm text-semantic-text-muted">
|
|
2329
2329
|
No results found
|
|
2330
2330
|
</div>
|
|
2331
2331
|
) : (
|
|
@@ -2347,15 +2347,15 @@ const MultiSelect = React.forwardRef<HTMLButtonElement, MultiSelectProps>(
|
|
|
2347
2347
|
disabled={isDisabled}
|
|
2348
2348
|
onClick={() => !isDisabled && toggleOption(option.value)}
|
|
2349
2349
|
className={cn(
|
|
2350
|
-
"relative flex w-full cursor-pointer select-none items-center rounded-sm py-2 pl-4 pr-8 text-sm text-
|
|
2351
|
-
"hover:bg-
|
|
2352
|
-
isSelected && "bg-
|
|
2350
|
+
"relative flex w-full cursor-pointer select-none items-center rounded-sm py-2 pl-4 pr-8 text-sm text-semantic-text-primary outline-none",
|
|
2351
|
+
"hover:bg-semantic-bg-ui focus:bg-semantic-bg-ui",
|
|
2352
|
+
isSelected && "bg-semantic-bg-ui",
|
|
2353
2353
|
isDisabled && "pointer-events-none opacity-50"
|
|
2354
2354
|
)}
|
|
2355
2355
|
>
|
|
2356
2356
|
<span className="absolute right-2 flex size-4 items-center justify-center">
|
|
2357
2357
|
{isSelected && (
|
|
2358
|
-
<Check className="size-4 text-
|
|
2358
|
+
<Check className="size-4 text-semantic-brand" />
|
|
2359
2359
|
)}
|
|
2360
2360
|
</span>
|
|
2361
2361
|
{option.label}
|
|
@@ -2367,7 +2367,7 @@ const MultiSelect = React.forwardRef<HTMLButtonElement, MultiSelectProps>(
|
|
|
2367
2367
|
|
|
2368
2368
|
{/* Footer with count */}
|
|
2369
2369
|
{maxSelections && (
|
|
2370
|
-
<div className="p-2 border-t border-
|
|
2370
|
+
<div className="p-2 border-t border-semantic-border-layout text-xs text-semantic-text-muted">
|
|
2371
2371
|
{selectedValues.length} / {maxSelections} selected
|
|
2372
2372
|
</div>
|
|
2373
2373
|
)}
|
|
@@ -2384,11 +2384,11 @@ const MultiSelect = React.forwardRef<HTMLButtonElement, MultiSelectProps>(
|
|
|
2384
2384
|
{(error || helperText) && (
|
|
2385
2385
|
<div className="flex justify-between items-start gap-2">
|
|
2386
2386
|
{error ? (
|
|
2387
|
-
<span id={errorId} className="text-xs text-
|
|
2387
|
+
<span id={errorId} className="text-xs text-semantic-error-primary">
|
|
2388
2388
|
{error}
|
|
2389
2389
|
</span>
|
|
2390
2390
|
) : helperText ? (
|
|
2391
|
-
<span id={helperId} className="text-xs text-
|
|
2391
|
+
<span id={helperId} className="text-xs text-semantic-text-muted">
|
|
2392
2392
|
{helperText}
|
|
2393
2393
|
</span>
|
|
2394
2394
|
) : null}
|
|
@@ -2473,7 +2473,7 @@ const Table = React.forwardRef<HTMLTableElement, TableProps>(
|
|
|
2473
2473
|
<div
|
|
2474
2474
|
className={cn(
|
|
2475
2475
|
"relative w-full overflow-auto",
|
|
2476
|
-
!withoutBorder && "rounded-lg border border-
|
|
2476
|
+
!withoutBorder && "rounded-lg border border-semantic-border-layout"
|
|
2477
2477
|
)}
|
|
2478
2478
|
>
|
|
2479
2479
|
<table
|
|
@@ -2492,7 +2492,7 @@ const TableHeader = React.forwardRef<
|
|
|
2492
2492
|
>(({ className, ...props }, ref) => (
|
|
2493
2493
|
<thead
|
|
2494
2494
|
ref={ref}
|
|
2495
|
-
className={cn("bg-[
|
|
2495
|
+
className={cn("bg-[var(--color-neutral-50)] [&_tr]:border-b", className)}
|
|
2496
2496
|
{...props}
|
|
2497
2497
|
/>
|
|
2498
2498
|
));
|
|
@@ -2517,7 +2517,7 @@ const TableFooter = React.forwardRef<
|
|
|
2517
2517
|
<tfoot
|
|
2518
2518
|
ref={ref}
|
|
2519
2519
|
className={cn(
|
|
2520
|
-
"border-t bg-[
|
|
2520
|
+
"border-t bg-[var(--color-neutral-50)] font-medium [&>tr]:last:border-b-0",
|
|
2521
2521
|
className
|
|
2522
2522
|
)}
|
|
2523
2523
|
{...props}
|
|
@@ -2535,10 +2535,10 @@ const TableRow = React.forwardRef<HTMLTableRowElement, TableRowProps>(
|
|
|
2535
2535
|
<tr
|
|
2536
2536
|
ref={ref}
|
|
2537
2537
|
className={cn(
|
|
2538
|
-
"border-b border-
|
|
2538
|
+
"border-b border-semantic-border-layout transition-colors",
|
|
2539
2539
|
highlighted
|
|
2540
|
-
? "bg-
|
|
2541
|
-
: "hover:bg-[
|
|
2540
|
+
? "bg-semantic-info-surface"
|
|
2541
|
+
: "hover:bg-[var(--color-neutral-50)]/50 data-[state=selected]:bg-semantic-bg-ui",
|
|
2542
2542
|
className
|
|
2543
2543
|
)}
|
|
2544
2544
|
{...props}
|
|
@@ -2564,8 +2564,8 @@ const TableHead = React.forwardRef<HTMLTableCellElement, TableHeadProps>(
|
|
|
2564
2564
|
<th
|
|
2565
2565
|
ref={ref}
|
|
2566
2566
|
className={cn(
|
|
2567
|
-
"h-12 px-4 text-left align-middle font-medium text-
|
|
2568
|
-
sticky && "sticky left-0 bg-[
|
|
2567
|
+
"h-12 px-4 text-left align-middle font-medium text-semantic-text-muted text-sm [&:has([role=checkbox])]:pr-0",
|
|
2568
|
+
sticky && "sticky left-0 bg-[var(--color-neutral-50)] z-10",
|
|
2569
2569
|
sortDirection && "cursor-pointer select-none",
|
|
2570
2570
|
className
|
|
2571
2571
|
)}
|
|
@@ -2574,12 +2574,12 @@ const TableHead = React.forwardRef<HTMLTableCellElement, TableHeadProps>(
|
|
|
2574
2574
|
<div className="flex items-center gap-1">
|
|
2575
2575
|
{children}
|
|
2576
2576
|
{sortDirection && (
|
|
2577
|
-
<span className="text-[
|
|
2577
|
+
<span className="text-[var(--color-neutral-400)]">
|
|
2578
2578
|
{sortDirection === "asc" ? "\u2191" : "\u2193"}
|
|
2579
2579
|
</span>
|
|
2580
2580
|
)}
|
|
2581
2581
|
{infoTooltip && (
|
|
2582
|
-
<span className="text-[
|
|
2582
|
+
<span className="text-[var(--color-neutral-400)] cursor-help" title={infoTooltip}>
|
|
2583
2583
|
\u24D8
|
|
2584
2584
|
</span>
|
|
2585
2585
|
)}
|
|
@@ -2599,8 +2599,8 @@ const TableCell = React.forwardRef<HTMLTableCellElement, TableCellProps>(
|
|
|
2599
2599
|
<td
|
|
2600
2600
|
ref={ref}
|
|
2601
2601
|
className={cn(
|
|
2602
|
-
"px-4 align-middle text-
|
|
2603
|
-
sticky && "sticky left-0 bg-
|
|
2602
|
+
"px-4 align-middle text-semantic-text-primary [&:has([role=checkbox])]:pr-0",
|
|
2603
|
+
sticky && "sticky left-0 bg-semantic-bg-primary z-10",
|
|
2604
2604
|
className
|
|
2605
2605
|
)}
|
|
2606
2606
|
{...props}
|
|
@@ -2615,7 +2615,7 @@ const TableCaption = React.forwardRef<
|
|
|
2615
2615
|
>(({ className, ...props }, ref) => (
|
|
2616
2616
|
<caption
|
|
2617
2617
|
ref={ref}
|
|
2618
|
-
className={cn("mt-4 text-sm text-
|
|
2618
|
+
className={cn("mt-4 text-sm text-semantic-text-muted", className)}
|
|
2619
2619
|
{...props}
|
|
2620
2620
|
/>
|
|
2621
2621
|
));
|
|
@@ -2638,7 +2638,7 @@ const TableSkeleton = ({ rows = 5, columns = 5 }: TableSkeletonProps) => (
|
|
|
2638
2638
|
{Array.from({ length: columns }).map((_, colIndex) => (
|
|
2639
2639
|
<TableCell key={colIndex}>
|
|
2640
2640
|
<div
|
|
2641
|
-
className="h-4 bg-
|
|
2641
|
+
className="h-4 bg-semantic-bg-grey rounded animate-pulse"
|
|
2642
2642
|
style={{
|
|
2643
2643
|
width: colIndex === 1 ? "80%" : colIndex === 2 ? "30%" : "60%",
|
|
2644
2644
|
}}
|
|
@@ -2663,7 +2663,7 @@ export interface TableEmptyProps {
|
|
|
2663
2663
|
|
|
2664
2664
|
const TableEmpty = ({ colSpan, children }: TableEmptyProps) => (
|
|
2665
2665
|
<TableRow>
|
|
2666
|
-
<TableCell colSpan={colSpan} className="text-center py-8 text-
|
|
2666
|
+
<TableCell colSpan={colSpan} className="text-center py-8 text-semantic-text-muted">
|
|
2667
2667
|
{children || "No data available"}
|
|
2668
2668
|
</TableCell>
|
|
2669
2669
|
</TableRow>
|
|
@@ -2956,7 +2956,7 @@ const DropdownMenuSubTrigger = React.forwardRef<
|
|
|
2956
2956
|
<DropdownMenuPrimitive.SubTrigger
|
|
2957
2957
|
ref={ref}
|
|
2958
2958
|
className={cn(
|
|
2959
|
-
"flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-
|
|
2959
|
+
"flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-semantic-bg-ui data-[state=open]:bg-semantic-bg-ui",
|
|
2960
2960
|
inset && "pl-8",
|
|
2961
2961
|
className
|
|
2962
2962
|
)}
|
|
@@ -2976,7 +2976,7 @@ const DropdownMenuSubContent = React.forwardRef<
|
|
|
2976
2976
|
<DropdownMenuPrimitive.SubContent
|
|
2977
2977
|
ref={ref}
|
|
2978
2978
|
className={cn(
|
|
2979
|
-
"z-50 min-w-[8rem] overflow-hidden rounded-md border border-
|
|
2979
|
+
"z-50 min-w-[8rem] overflow-hidden rounded-md border border-semantic-border-layout bg-semantic-bg-primary p-1 text-semantic-text-primary shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
2980
2980
|
className
|
|
2981
2981
|
)}
|
|
2982
2982
|
{...props}
|
|
@@ -2994,7 +2994,7 @@ const DropdownMenuContent = React.forwardRef<
|
|
|
2994
2994
|
ref={ref}
|
|
2995
2995
|
sideOffset={sideOffset}
|
|
2996
2996
|
className={cn(
|
|
2997
|
-
"z-50 min-w-[8rem] overflow-hidden rounded-md border border-
|
|
2997
|
+
"z-50 min-w-[8rem] overflow-hidden rounded-md border border-semantic-border-layout bg-semantic-bg-primary p-1 text-semantic-text-primary shadow-md",
|
|
2998
2998
|
"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
2999
2999
|
className
|
|
3000
3000
|
)}
|
|
@@ -3013,7 +3013,7 @@ const DropdownMenuItem = React.forwardRef<
|
|
|
3013
3013
|
<DropdownMenuPrimitive.Item
|
|
3014
3014
|
ref={ref}
|
|
3015
3015
|
className={cn(
|
|
3016
|
-
"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-
|
|
3016
|
+
"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-semantic-bg-ui focus:text-semantic-text-primary data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
3017
3017
|
inset && "pl-8",
|
|
3018
3018
|
className
|
|
3019
3019
|
)}
|
|
@@ -3029,7 +3029,7 @@ const DropdownMenuCheckboxItem = React.forwardRef<
|
|
|
3029
3029
|
<DropdownMenuPrimitive.CheckboxItem
|
|
3030
3030
|
ref={ref}
|
|
3031
3031
|
className={cn(
|
|
3032
|
-
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-
|
|
3032
|
+
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-semantic-bg-ui focus:text-semantic-text-primary data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
3033
3033
|
className
|
|
3034
3034
|
)}
|
|
3035
3035
|
checked={checked}
|
|
@@ -3053,7 +3053,7 @@ const DropdownMenuRadioItem = React.forwardRef<
|
|
|
3053
3053
|
<DropdownMenuPrimitive.RadioItem
|
|
3054
3054
|
ref={ref}
|
|
3055
3055
|
className={cn(
|
|
3056
|
-
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-
|
|
3056
|
+
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-semantic-bg-ui focus:text-semantic-text-primary data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
3057
3057
|
className
|
|
3058
3058
|
)}
|
|
3059
3059
|
{...props}
|
|
@@ -3092,7 +3092,7 @@ const DropdownMenuSeparator = React.forwardRef<
|
|
|
3092
3092
|
>(({ className, ...props }, ref) => (
|
|
3093
3093
|
<DropdownMenuPrimitive.Separator
|
|
3094
3094
|
ref={ref}
|
|
3095
|
-
className={cn("-mx-1 my-1 h-px bg-
|
|
3095
|
+
className={cn("-mx-1 my-1 h-px bg-semantic-border-layout", className)}
|
|
3096
3096
|
{...props}
|
|
3097
3097
|
/>
|
|
3098
3098
|
));
|
|
@@ -3163,7 +3163,7 @@ const TooltipContent = React.forwardRef<
|
|
|
3163
3163
|
ref={ref}
|
|
3164
3164
|
sideOffset={sideOffset}
|
|
3165
3165
|
className={cn(
|
|
3166
|
-
"z-50 overflow-hidden rounded-md bg-
|
|
3166
|
+
"z-50 overflow-hidden rounded-md bg-semantic-primary px-3 py-1.5 text-xs text-semantic-text-inverted shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
3167
3167
|
className
|
|
3168
3168
|
)}
|
|
3169
3169
|
{...props}
|
|
@@ -3178,7 +3178,7 @@ const TooltipArrow = React.forwardRef<
|
|
|
3178
3178
|
>(({ className, ...props }, ref) => (
|
|
3179
3179
|
<TooltipPrimitive.Arrow
|
|
3180
3180
|
ref={ref}
|
|
3181
|
-
className={cn("fill-
|
|
3181
|
+
className={cn("fill-semantic-primary", className)}
|
|
3182
3182
|
{...props}
|
|
3183
3183
|
/>
|
|
3184
3184
|
));
|
|
@@ -3552,14 +3552,14 @@ import { cn } from "../../lib/utils";
|
|
|
3552
3552
|
const tagVariants = cva("inline-flex items-center rounded text-sm", {
|
|
3553
3553
|
variants: {
|
|
3554
3554
|
variant: {
|
|
3555
|
-
default: "bg-
|
|
3556
|
-
primary: "bg-
|
|
3557
|
-
accent: "bg-
|
|
3558
|
-
secondary: "bg-
|
|
3559
|
-
success: "bg-
|
|
3560
|
-
warning: "bg-
|
|
3561
|
-
error: "bg-
|
|
3562
|
-
destructive: "bg-
|
|
3555
|
+
default: "bg-semantic-bg-ui text-semantic-text-primary",
|
|
3556
|
+
primary: "bg-semantic-bg-ui text-semantic-text-primary",
|
|
3557
|
+
accent: "bg-semantic-primary-surface text-semantic-text-secondary",
|
|
3558
|
+
secondary: "bg-semantic-bg-grey text-[var(--color-neutral-700)]",
|
|
3559
|
+
success: "bg-semantic-success-surface text-semantic-success-primary",
|
|
3560
|
+
warning: "bg-semantic-warning-surface text-semantic-warning-primary",
|
|
3561
|
+
error: "bg-semantic-error-surface text-semantic-error-primary",
|
|
3562
|
+
destructive: "bg-semantic-error-surface text-semantic-error-primary",
|
|
3563
3563
|
},
|
|
3564
3564
|
size: {
|
|
3565
3565
|
default: "px-2 py-1",
|
|
@@ -3702,16 +3702,16 @@ import { cn } from "../../lib/utils";
|
|
|
3702
3702
|
* Colors are hardcoded for Bootstrap compatibility.
|
|
3703
3703
|
*/
|
|
3704
3704
|
const alertVariants = cva(
|
|
3705
|
-
"relative w-full rounded border p-4 text-sm text-
|
|
3705
|
+
"relative w-full rounded border p-4 text-sm text-semantic-text-primary [&>svg~*]:pl-8 [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4",
|
|
3706
3706
|
{
|
|
3707
3707
|
variants: {
|
|
3708
3708
|
variant: {
|
|
3709
|
-
default: "bg-
|
|
3710
|
-
success: "bg-
|
|
3711
|
-
error: "bg-
|
|
3712
|
-
destructive: "bg-
|
|
3713
|
-
warning: "bg-
|
|
3714
|
-
info: "bg-
|
|
3709
|
+
default: "bg-semantic-bg-ui border-semantic-border-layout [&>svg]:text-semantic-text-primary",
|
|
3710
|
+
success: "bg-semantic-success-surface border-semantic-success-border [&>svg]:text-semantic-success-primary",
|
|
3711
|
+
error: "bg-semantic-error-surface border-semantic-error-border [&>svg]:text-semantic-error-primary",
|
|
3712
|
+
destructive: "bg-semantic-error-surface border-semantic-error-border [&>svg]:text-semantic-error-primary",
|
|
3713
|
+
warning: "bg-semantic-warning-surface border-semantic-warning-border [&>svg]:text-semantic-warning-primary",
|
|
3714
|
+
info: "bg-semantic-info-surface border-semantic-info-border [&>svg]:text-semantic-info-primary",
|
|
3715
3715
|
},
|
|
3716
3716
|
},
|
|
3717
3717
|
defaultVariants: {
|
|
@@ -3843,12 +3843,12 @@ const Alert = React.forwardRef<HTMLDivElement, AlertProps>(
|
|
|
3843
3843
|
onClick={handleClose}
|
|
3844
3844
|
className={cn(
|
|
3845
3845
|
"rounded-sm opacity-70 ring-offset-white transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-offset-2",
|
|
3846
|
-
variant === "default" && "focus:ring-
|
|
3847
|
-
variant === "success" && "focus:ring-
|
|
3846
|
+
variant === "default" && "focus:ring-semantic-text-primary",
|
|
3847
|
+
variant === "success" && "focus:ring-semantic-success-primary",
|
|
3848
3848
|
(variant === "error" || variant === "destructive") &&
|
|
3849
|
-
"focus:ring-
|
|
3850
|
-
variant === "warning" && "focus:ring-
|
|
3851
|
-
variant === "info" && "focus:ring-
|
|
3849
|
+
"focus:ring-semantic-error-primary",
|
|
3850
|
+
variant === "warning" && "focus:ring-semantic-warning-primary",
|
|
3851
|
+
variant === "info" && "focus:ring-semantic-info-primary"
|
|
3852
3852
|
)}
|
|
3853
3853
|
aria-label="Close alert"
|
|
3854
3854
|
>
|
|
@@ -3937,11 +3937,11 @@ const toastVariants = cva(
|
|
|
3937
3937
|
{
|
|
3938
3938
|
variants: {
|
|
3939
3939
|
variant: {
|
|
3940
|
-
default: "border-
|
|
3941
|
-
success: "border-
|
|
3942
|
-
error: "border-
|
|
3943
|
-
warning: "border-
|
|
3944
|
-
info: "border-
|
|
3940
|
+
default: "border-semantic-border-layout bg-semantic-bg-primary text-semantic-text-primary",
|
|
3941
|
+
success: "border-semantic-success-border bg-semantic-success-surface text-semantic-success-hover",
|
|
3942
|
+
error: "border-semantic-error-border bg-semantic-error-surface text-semantic-error-hover",
|
|
3943
|
+
warning: "border-semantic-warning-border bg-semantic-warning-surface text-semantic-warning-hover",
|
|
3944
|
+
info: "border-semantic-info-border bg-semantic-info-surface text-semantic-info-hover",
|
|
3945
3945
|
},
|
|
3946
3946
|
},
|
|
3947
3947
|
defaultVariants: {
|
|
@@ -3972,11 +3972,11 @@ const ToastAction = React.forwardRef<
|
|
|
3972
3972
|
<ToastPrimitives.Action
|
|
3973
3973
|
ref={ref}
|
|
3974
3974
|
className={cn(
|
|
3975
|
-
"inline-flex h-8 shrink-0 items-center justify-center rounded border border-
|
|
3976
|
-
"group-[.success]:border-
|
|
3977
|
-
"group-[.error]:border-
|
|
3978
|
-
"group-[.warning]:border-
|
|
3979
|
-
"group-[.info]:border-
|
|
3975
|
+
"inline-flex h-8 shrink-0 items-center justify-center rounded border border-semantic-border-layout bg-transparent px-3 text-sm font-medium transition-colors hover:bg-semantic-bg-ui focus:outline-none focus:ring-2 focus:ring-semantic-info-primary focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
|
|
3976
|
+
"group-[.success]:border-semantic-success-primary/30 group-[.success]:hover:border-semantic-success-primary/50 group-[.success]:hover:bg-semantic-success-primary/10",
|
|
3977
|
+
"group-[.error]:border-semantic-error-primary/30 group-[.error]:hover:border-semantic-error-primary/50 group-[.error]:hover:bg-semantic-error-primary/10",
|
|
3978
|
+
"group-[.warning]:border-semantic-warning-primary/30 group-[.warning]:hover:border-semantic-warning-primary/50 group-[.warning]:hover:bg-semantic-warning-primary/10",
|
|
3979
|
+
"group-[.info]:border-semantic-info-primary/30 group-[.info]:hover:border-semantic-info-primary/50 group-[.info]:hover:bg-semantic-info-primary/10",
|
|
3980
3980
|
className
|
|
3981
3981
|
)}
|
|
3982
3982
|
{...props}
|
|
@@ -3991,11 +3991,11 @@ const ToastClose = React.forwardRef<
|
|
|
3991
3991
|
<ToastPrimitives.Close
|
|
3992
3992
|
ref={ref}
|
|
3993
3993
|
className={cn(
|
|
3994
|
-
"absolute right-2 top-2 rounded-md p-1 text-
|
|
3995
|
-
"group-[.success]:text-
|
|
3996
|
-
"group-[.error]:text-
|
|
3997
|
-
"group-[.warning]:text-
|
|
3998
|
-
"group-[.info]:text-
|
|
3994
|
+
"absolute right-2 top-2 rounded-md p-1 text-semantic-text-muted opacity-0 transition-opacity hover:text-semantic-text-primary focus:opacity-100 focus:outline-none focus:ring-2 group-hover:opacity-100",
|
|
3995
|
+
"group-[.success]:text-semantic-success-hover group-[.success]:hover:text-semantic-success-hover",
|
|
3996
|
+
"group-[.error]:text-semantic-error-hover group-[.error]:hover:text-semantic-error-hover",
|
|
3997
|
+
"group-[.warning]:text-semantic-warning-hover group-[.warning]:hover:text-semantic-warning-hover",
|
|
3998
|
+
"group-[.info]:text-semantic-info-hover group-[.info]:hover:text-semantic-info-hover",
|
|
3999
3999
|
className
|
|
4000
4000
|
)}
|
|
4001
4001
|
toast-close=""
|
|
@@ -4289,10 +4289,10 @@ function Toaster() {
|
|
|
4289
4289
|
<Icon
|
|
4290
4290
|
className={cn(
|
|
4291
4291
|
"h-5 w-5 shrink-0",
|
|
4292
|
-
variant === "success" && "text-
|
|
4293
|
-
variant === "error" && "text-
|
|
4294
|
-
variant === "warning" && "text-
|
|
4295
|
-
variant === "info" && "text-
|
|
4292
|
+
variant === "success" && "text-semantic-success-primary",
|
|
4293
|
+
variant === "error" && "text-semantic-error-primary",
|
|
4294
|
+
variant === "warning" && "text-semantic-warning-primary",
|
|
4295
|
+
variant === "info" && "text-semantic-info-primary"
|
|
4296
4296
|
)}
|
|
4297
4297
|
/>
|
|
4298
4298
|
)}
|
|
@@ -4404,7 +4404,7 @@ const accordionVariants = cva("w-full", {
|
|
|
4404
4404
|
variants: {
|
|
4405
4405
|
variant: {
|
|
4406
4406
|
default: "",
|
|
4407
|
-
bordered: "border border-
|
|
4407
|
+
bordered: "border border-semantic-border-layout rounded-lg divide-y divide-semantic-border-layout",
|
|
4408
4408
|
},
|
|
4409
4409
|
},
|
|
4410
4410
|
defaultVariants: {
|
|
@@ -4431,12 +4431,12 @@ const accordionItemVariants = cva("", {
|
|
|
4431
4431
|
* Accordion trigger variants
|
|
4432
4432
|
*/
|
|
4433
4433
|
const accordionTriggerVariants = cva(
|
|
4434
|
-
"flex w-full items-center justify-between text-left transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-
|
|
4434
|
+
"flex w-full items-center justify-between text-left transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-semantic-primary focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
|
|
4435
4435
|
{
|
|
4436
4436
|
variants: {
|
|
4437
4437
|
variant: {
|
|
4438
4438
|
default: "py-3",
|
|
4439
|
-
bordered: "p-4 hover:bg-[
|
|
4439
|
+
bordered: "p-4 hover:bg-[var(--color-neutral-50)]",
|
|
4440
4440
|
},
|
|
4441
4441
|
},
|
|
4442
4442
|
defaultVariants: {
|
|
@@ -4674,7 +4674,7 @@ const AccordionTrigger = React.forwardRef<
|
|
|
4674
4674
|
{showChevron && (
|
|
4675
4675
|
<ChevronDown
|
|
4676
4676
|
className={cn(
|
|
4677
|
-
"h-4 w-4 shrink-0 text-
|
|
4677
|
+
"h-4 w-4 shrink-0 text-semantic-text-muted transition-transform duration-300",
|
|
4678
4678
|
isOpen && "rotate-180"
|
|
4679
4679
|
)}
|
|
4680
4680
|
/>
|
|
@@ -4761,7 +4761,7 @@ import { Button } from "./button";
|
|
|
4761
4761
|
* PageHeader variants for layout styles.
|
|
4762
4762
|
*/
|
|
4763
4763
|
const pageHeaderVariants = cva(
|
|
4764
|
-
"flex flex-col sm:flex-row sm:items-center w-full bg-
|
|
4764
|
+
"flex flex-col sm:flex-row sm:items-center w-full bg-semantic-bg-primary",
|
|
4765
4765
|
{
|
|
4766
4766
|
variants: {},
|
|
4767
4767
|
defaultVariants: {},
|
|
@@ -4852,7 +4852,7 @@ const PageHeader = React.forwardRef<HTMLDivElement, PageHeaderProps>(
|
|
|
4852
4852
|
<button
|
|
4853
4853
|
type="button"
|
|
4854
4854
|
onClick={onBackClick}
|
|
4855
|
-
className="flex items-center justify-center w-10 h-10 rounded hover:bg-
|
|
4855
|
+
className="flex items-center justify-center w-10 h-10 rounded hover:bg-semantic-bg-ui transition-colors text-semantic-text-primary"
|
|
4856
4856
|
aria-label="Go back"
|
|
4857
4857
|
>
|
|
4858
4858
|
<ArrowLeft className="w-5 h-5" />
|
|
@@ -4861,7 +4861,7 @@ const PageHeader = React.forwardRef<HTMLDivElement, PageHeaderProps>(
|
|
|
4861
4861
|
}
|
|
4862
4862
|
if (icon) {
|
|
4863
4863
|
return (
|
|
4864
|
-
<div className="flex items-center justify-center w-10 h-10 [&_svg]:w-6 [&_svg]:h-6 text-
|
|
4864
|
+
<div className="flex items-center justify-center w-10 h-10 [&_svg]:w-6 [&_svg]:h-6 text-semantic-text-muted">
|
|
4865
4865
|
{icon}
|
|
4866
4866
|
</div>
|
|
4867
4867
|
);
|
|
@@ -4993,10 +4993,10 @@ const PageHeader = React.forwardRef<HTMLDivElement, PageHeaderProps>(
|
|
|
4993
4993
|
<div
|
|
4994
4994
|
ref={ref}
|
|
4995
4995
|
className={cn(
|
|
4996
|
-
"flex w-full bg-
|
|
4996
|
+
"flex w-full bg-semantic-bg-primary px-4",
|
|
4997
4997
|
layoutClasses[layout],
|
|
4998
4998
|
heightClasses[layout],
|
|
4999
|
-
showBorder && "border-b border-
|
|
4999
|
+
showBorder && "border-b border-semantic-border-layout",
|
|
5000
5000
|
className
|
|
5001
5001
|
)}
|
|
5002
5002
|
{...props}
|
|
@@ -5011,17 +5011,17 @@ const PageHeader = React.forwardRef<HTMLDivElement, PageHeaderProps>(
|
|
|
5011
5011
|
{/* Content Section: Title + Description */}
|
|
5012
5012
|
<div className="flex-1 min-w-0">
|
|
5013
5013
|
<div className="flex items-center gap-2">
|
|
5014
|
-
<h1 className="m-0 text-base font-semibold text-
|
|
5014
|
+
<h1 className="m-0 text-base font-semibold text-semantic-text-primary truncate">
|
|
5015
5015
|
{title}
|
|
5016
5016
|
</h1>
|
|
5017
5017
|
{infoIcon && (
|
|
5018
|
-
<span className="flex-shrink-0 [&_svg]:w-4 [&_svg]:h-4 text-
|
|
5018
|
+
<span className="flex-shrink-0 [&_svg]:w-4 [&_svg]:h-4 text-semantic-text-muted">
|
|
5019
5019
|
{infoIcon}
|
|
5020
5020
|
</span>
|
|
5021
5021
|
)}
|
|
5022
5022
|
</div>
|
|
5023
5023
|
{description && (
|
|
5024
|
-
<p className="m-0 text-sm text-
|
|
5024
|
+
<p className="m-0 text-sm text-semantic-text-primary font-normal mt-1 line-clamp-2">
|
|
5025
5025
|
{description}
|
|
5026
5026
|
</p>
|
|
5027
5027
|
)}
|
|
@@ -5186,28 +5186,28 @@ export const EventSelector = React.forwardRef<
|
|
|
5186
5186
|
return (
|
|
5187
5187
|
<div
|
|
5188
5188
|
key={category.id}
|
|
5189
|
-
className="border border-
|
|
5189
|
+
className="border border-semantic-border-layout rounded-lg overflow-hidden"
|
|
5190
5190
|
>
|
|
5191
5191
|
{/* Category Header - no checkbox, just label */}
|
|
5192
|
-
<div className="flex items-center justify-between p-4 bg-white border-b border-
|
|
5192
|
+
<div className="flex items-center justify-between p-4 bg-white border-b border-semantic-border-layout">
|
|
5193
5193
|
<div className="flex items-center gap-3">
|
|
5194
5194
|
{category.icon && (
|
|
5195
|
-
<div className="flex items-center justify-center w-10 h-10 rounded-lg bg-
|
|
5195
|
+
<div className="flex items-center justify-center w-10 h-10 rounded-lg bg-semantic-bg-ui">
|
|
5196
5196
|
{category.icon}
|
|
5197
5197
|
</div>
|
|
5198
5198
|
)}
|
|
5199
|
-
<span className="font-medium text-
|
|
5199
|
+
<span className="font-medium text-semantic-text-primary">
|
|
5200
5200
|
{category.name}
|
|
5201
5201
|
</span>
|
|
5202
5202
|
</div>
|
|
5203
5203
|
{selectedInCategory.length > 0 && (
|
|
5204
|
-
<span className="text-sm text-
|
|
5204
|
+
<span className="text-sm text-semantic-text-muted">
|
|
5205
5205
|
{selectedInCategory.length} Selected
|
|
5206
5206
|
</span>
|
|
5207
5207
|
)}
|
|
5208
5208
|
</div>
|
|
5209
5209
|
{/* Category Groups */}
|
|
5210
|
-
<div className="divide-y divide-
|
|
5210
|
+
<div className="divide-y divide-semantic-border-layout">
|
|
5211
5211
|
{renderGroups(categoryGroups)}
|
|
5212
5212
|
</div>
|
|
5213
5213
|
</div>
|
|
@@ -5224,20 +5224,20 @@ export const EventSelector = React.forwardRef<
|
|
|
5224
5224
|
{/* Header */}
|
|
5225
5225
|
<div className="flex items-start justify-between mb-4">
|
|
5226
5226
|
<div>
|
|
5227
|
-
<h3 className="m-0 text-base font-semibold text-
|
|
5227
|
+
<h3 className="m-0 text-base font-semibold text-semantic-text-primary">
|
|
5228
5228
|
{title}
|
|
5229
5229
|
</h3>
|
|
5230
5230
|
{description && (
|
|
5231
|
-
<p className="m-0 text-sm text-
|
|
5231
|
+
<p className="m-0 text-sm text-semantic-text-muted mt-1">{description}</p>
|
|
5232
5232
|
)}
|
|
5233
5233
|
</div>
|
|
5234
|
-
<span className="text-sm font-medium text-
|
|
5234
|
+
<span className="text-sm font-medium text-semantic-text-primary">
|
|
5235
5235
|
{totalSelected} Selected
|
|
5236
5236
|
</span>
|
|
5237
5237
|
</div>
|
|
5238
5238
|
|
|
5239
5239
|
{/* Groups */}
|
|
5240
|
-
<div className="border border-
|
|
5240
|
+
<div className="border border-semantic-border-layout rounded-lg overflow-hidden divide-y divide-semantic-border-layout">
|
|
5241
5241
|
{renderCategories()}
|
|
5242
5242
|
</div>
|
|
5243
5243
|
</div>
|
|
@@ -5347,8 +5347,8 @@ export const EventGroupComponent = React.forwardRef<
|
|
|
5347
5347
|
className="mt-0.5"
|
|
5348
5348
|
/>
|
|
5349
5349
|
<div className="flex-1 min-w-0">
|
|
5350
|
-
<span className="font-medium text-
|
|
5351
|
-
<p className="m-0 text-sm text-
|
|
5350
|
+
<span className="font-medium text-semantic-text-primary">{event.name}</span>
|
|
5351
|
+
<p className="m-0 text-sm text-semantic-text-muted mt-0.5">
|
|
5352
5352
|
{event.description}
|
|
5353
5353
|
</p>
|
|
5354
5354
|
</div>
|
|
@@ -5363,7 +5363,7 @@ export const EventGroupComponent = React.forwardRef<
|
|
|
5363
5363
|
<Accordion type="multiple" defaultValue={defaultExpanded ? [group.id] : []}>
|
|
5364
5364
|
<AccordionItem value={group.id}>
|
|
5365
5365
|
{/* Header row with checkbox OUTSIDE the trigger button to avoid nested buttons */}
|
|
5366
|
-
<div className="flex items-center gap-3 p-4 hover:bg-
|
|
5366
|
+
<div className="flex items-center gap-3 p-4 hover:bg-semantic-bg-ui">
|
|
5367
5367
|
<Checkbox
|
|
5368
5368
|
checked={checkboxState}
|
|
5369
5369
|
onCheckedChange={handleGroupCheckbox}
|
|
@@ -5377,18 +5377,18 @@ export const EventGroupComponent = React.forwardRef<
|
|
|
5377
5377
|
<div className="flex flex-col items-start text-left flex-1 min-w-0">
|
|
5378
5378
|
<div className="flex items-center gap-2">
|
|
5379
5379
|
{group.icon && (
|
|
5380
|
-
<span className="text-
|
|
5380
|
+
<span className="text-semantic-text-muted">{group.icon}</span>
|
|
5381
5381
|
)}
|
|
5382
|
-
<span className="font-medium text-
|
|
5382
|
+
<span className="font-medium text-semantic-text-primary">
|
|
5383
5383
|
{group.name}
|
|
5384
5384
|
</span>
|
|
5385
5385
|
</div>
|
|
5386
|
-
<span className="text-sm text-
|
|
5386
|
+
<span className="text-sm text-semantic-text-muted mt-0.5">
|
|
5387
5387
|
{group.description}
|
|
5388
5388
|
</span>
|
|
5389
5389
|
</div>
|
|
5390
5390
|
{selectedCount > 0 && (
|
|
5391
|
-
<span className="text-sm text-
|
|
5391
|
+
<span className="text-sm text-semantic-text-muted whitespace-nowrap">
|
|
5392
5392
|
{selectedCount} Selected
|
|
5393
5393
|
</span>
|
|
5394
5394
|
)}
|
|
@@ -5396,7 +5396,7 @@ export const EventGroupComponent = React.forwardRef<
|
|
|
5396
5396
|
</AccordionTrigger>
|
|
5397
5397
|
</div>
|
|
5398
5398
|
<AccordionContent>
|
|
5399
|
-
<div className="border-t border-
|
|
5399
|
+
<div className="border-t border-semantic-border-layout">
|
|
5400
5400
|
{events.length > 0 ? (
|
|
5401
5401
|
events.map((event) => (
|
|
5402
5402
|
<EventItemComponent
|
|
@@ -5411,7 +5411,7 @@ export const EventGroupComponent = React.forwardRef<
|
|
|
5411
5411
|
) : renderEmptyGroup ? (
|
|
5412
5412
|
<div className="py-4 px-8">{renderEmptyGroup(group)}</div>
|
|
5413
5413
|
) : (
|
|
5414
|
-
<div className="py-4 px-8 text-sm text-
|
|
5414
|
+
<div className="py-4 px-8 text-sm text-semantic-text-muted italic">
|
|
5415
5415
|
{emptyGroupMessage}
|
|
5416
5416
|
</div>
|
|
5417
5417
|
)}
|
|
@@ -5452,8 +5452,8 @@ export const EventItemComponent = React.forwardRef<
|
|
|
5452
5452
|
aria-label={\`Select \${event.name}\`}
|
|
5453
5453
|
/>
|
|
5454
5454
|
<div className="flex-1 min-w-0">
|
|
5455
|
-
<div className="text-sm font-medium text-
|
|
5456
|
-
<div className="text-sm text-
|
|
5455
|
+
<div className="text-sm font-medium text-semantic-text-primary">{event.name}</div>
|
|
5456
|
+
<div className="text-sm text-semantic-text-muted mt-0.5 leading-relaxed">
|
|
5457
5457
|
{event.description}
|
|
5458
5458
|
</div>
|
|
5459
5459
|
</div>
|
|
@@ -5751,29 +5751,29 @@ export const KeyValueInput = React.forwardRef<
|
|
|
5751
5751
|
<div ref={ref} className={cn("w-full", className)} {...props}>
|
|
5752
5752
|
{/* Header */}
|
|
5753
5753
|
<div className="mb-3">
|
|
5754
|
-
<h3 className="m-0 text-base font-semibold text-
|
|
5754
|
+
<h3 className="m-0 text-base font-semibold text-semantic-text-primary">
|
|
5755
5755
|
{title}
|
|
5756
5756
|
</h3>
|
|
5757
5757
|
{description && (
|
|
5758
|
-
<p className="m-0 text-sm text-
|
|
5758
|
+
<p className="m-0 text-sm text-semantic-text-muted mt-1">{description}</p>
|
|
5759
5759
|
)}
|
|
5760
5760
|
</div>
|
|
5761
5761
|
|
|
5762
5762
|
{/* Content Container with Background - only show when there are items */}
|
|
5763
5763
|
{pairs.length > 0 && (
|
|
5764
|
-
<div className="bg-
|
|
5764
|
+
<div className="bg-semantic-bg-ui rounded-lg p-4 mb-4">
|
|
5765
5765
|
{/* Column Headers */}
|
|
5766
5766
|
<div className="flex items-center gap-3 mb-3">
|
|
5767
5767
|
<div className="flex-1">
|
|
5768
|
-
<span className="text-sm font-medium text-
|
|
5768
|
+
<span className="text-sm font-medium text-semantic-text-primary">
|
|
5769
5769
|
{keyLabel}
|
|
5770
|
-
{keyRequired && <span className="text-
|
|
5770
|
+
{keyRequired && <span className="text-semantic-error-primary ml-0.5">*</span>}
|
|
5771
5771
|
</span>
|
|
5772
5772
|
</div>
|
|
5773
5773
|
<div className="flex-1">
|
|
5774
|
-
<span className="text-sm font-medium text-
|
|
5774
|
+
<span className="text-sm font-medium text-semantic-text-primary">
|
|
5775
5775
|
{valueLabel}
|
|
5776
|
-
{valueRequired && <span className="text-
|
|
5776
|
+
{valueRequired && <span className="text-semantic-error-primary ml-0.5">*</span>}
|
|
5777
5777
|
</span>
|
|
5778
5778
|
</div>
|
|
5779
5779
|
{/* Spacer for delete button column */}
|
|
@@ -5817,7 +5817,7 @@ export const KeyValueInput = React.forwardRef<
|
|
|
5817
5817
|
|
|
5818
5818
|
{/* Limit indicator */}
|
|
5819
5819
|
{isAtLimit && (
|
|
5820
|
-
<p className="m-0 text-xs text-
|
|
5820
|
+
<p className="m-0 text-xs text-semantic-text-muted mt-2 text-center">
|
|
5821
5821
|
Maximum of {maxItems} items reached
|
|
5822
5822
|
</p>
|
|
5823
5823
|
)}
|
|
@@ -5902,7 +5902,7 @@ export const KeyValueRow = React.forwardRef<
|
|
|
5902
5902
|
variant="ghost"
|
|
5903
5903
|
size="icon"
|
|
5904
5904
|
onClick={() => onDelete(pair.id)}
|
|
5905
|
-
className="text-
|
|
5905
|
+
className="text-semantic-text-muted hover:text-semantic-error-primary hover:bg-semantic-error-surface flex-shrink-0"
|
|
5906
5906
|
aria-label="Delete row"
|
|
5907
5907
|
>
|
|
5908
5908
|
<Trash2 className="h-4 w-4" />
|