@bubo-squared/ui-framework 0.1.93 → 0.1.95
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.cjs +287 -232
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +38 -9
- package/dist/index.d.ts +38 -9
- package/dist/index.js +287 -232
- package/dist/index.js.map +1 -1
- package/dist/style.css +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -102,22 +102,34 @@ Button.displayName = "Button";
|
|
|
102
102
|
import { cva as cva2 } from "class-variance-authority";
|
|
103
103
|
import { jsx as jsx3 } from "react/jsx-runtime";
|
|
104
104
|
var buttonGroupVariants = cva2(
|
|
105
|
-
"flex items-center justify-center gap-4 pt-4 w-
|
|
105
|
+
"flex items-center justify-center gap-4 pt-4 w-fit",
|
|
106
106
|
{
|
|
107
107
|
variants: {
|
|
108
|
-
|
|
108
|
+
orientation: {
|
|
109
109
|
vertical: ["flex-col"],
|
|
110
110
|
horizontal: ["flex-row"]
|
|
111
111
|
}
|
|
112
112
|
},
|
|
113
113
|
defaultVariants: {
|
|
114
|
-
|
|
114
|
+
orientation: "horizontal"
|
|
115
115
|
}
|
|
116
116
|
}
|
|
117
117
|
);
|
|
118
118
|
var ButtonGroup = (props) => {
|
|
119
|
-
const {
|
|
120
|
-
|
|
119
|
+
const {
|
|
120
|
+
orientation = "horizontal",
|
|
121
|
+
className,
|
|
122
|
+
children,
|
|
123
|
+
...rest
|
|
124
|
+
} = props;
|
|
125
|
+
return /* @__PURE__ */ jsx3(
|
|
126
|
+
"div",
|
|
127
|
+
{
|
|
128
|
+
className: cn(buttonGroupVariants({ orientation }), className),
|
|
129
|
+
...rest,
|
|
130
|
+
children
|
|
131
|
+
}
|
|
132
|
+
);
|
|
121
133
|
};
|
|
122
134
|
|
|
123
135
|
// src/components/Buttons/IconButton.tsx
|
|
@@ -225,7 +237,7 @@ var IconButtonGroup = (props) => {
|
|
|
225
237
|
"aria-label": item.ariaLabel,
|
|
226
238
|
disabled: item.disabled,
|
|
227
239
|
className: cn(
|
|
228
|
-
"rounded-none border-1 border-(--border-secondary) text-
|
|
240
|
+
"rounded-none border-1 border-(--border-secondary) text-primary ",
|
|
229
241
|
index === 0 && "rounded-l-6",
|
|
230
242
|
index === items.length - 1 && "rounded-r-6",
|
|
231
243
|
index > 0 && "-ml-px"
|
|
@@ -371,7 +383,7 @@ import { cva as cva6 } from "class-variance-authority";
|
|
|
371
383
|
import { UserIcon } from "@bubo-squared/icons";
|
|
372
384
|
import { jsx as jsx8, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
373
385
|
var avatarVariants = cva6(
|
|
374
|
-
"relative inline-flex items-center justify-center rounded-full border-(--border-secondary) border-1 bg-(--background-primary) text-
|
|
386
|
+
"relative inline-flex items-center justify-center rounded-full border-(--border-secondary) border-1 bg-(--background-primary) text-primary overflow-hidden hover:border-(--focus-secondary) focus-visible:border-(--focus-primary) focus-visible:outline-none",
|
|
375
387
|
{
|
|
376
388
|
variants: {
|
|
377
389
|
size: {
|
|
@@ -390,7 +402,7 @@ var avatarVariants = cva6(
|
|
|
390
402
|
}
|
|
391
403
|
);
|
|
392
404
|
var avatarInitialsVariants = cva6(
|
|
393
|
-
"flex items-center justify-center text-
|
|
405
|
+
"flex items-center justify-center text-primary leading-none ",
|
|
394
406
|
{
|
|
395
407
|
variants: {
|
|
396
408
|
size: {
|
|
@@ -456,7 +468,7 @@ var Avatar = React6.forwardRef(
|
|
|
456
468
|
className: "w-full h-full object-cover"
|
|
457
469
|
}
|
|
458
470
|
) : null,
|
|
459
|
-
!hasImage && variant === "initial" && /* @__PURE__ */ jsx8("span", { className: cn(avatarInitialsVariants({ size }), "relative bottom-px"),
|
|
471
|
+
!hasImage && variant === "initial" && /* @__PURE__ */ jsx8("span", { className: cn(avatarInitialsVariants({ size }), "relative bottom-px"), children: initials }),
|
|
460
472
|
!hasImage && variant === "icon" && /* @__PURE__ */ jsx8("span", { className: cn(avatarIconVariants({ size })), children: /* @__PURE__ */ jsx8(UserIcon, {}) })
|
|
461
473
|
]
|
|
462
474
|
}
|
|
@@ -481,16 +493,16 @@ var badgeVariants = cva7(
|
|
|
481
493
|
xl: "px-2 h6-title"
|
|
482
494
|
},
|
|
483
495
|
variant: {
|
|
484
|
-
primary: "bg-(--background-secondary) text-
|
|
485
|
-
secondary: "bg-(--background-primary) border-1 border-(--border-primary) text-
|
|
486
|
-
active: "bg-
|
|
487
|
-
informal: "bg-
|
|
488
|
-
success: "bg-
|
|
489
|
-
warning: "bg-
|
|
490
|
-
error: "bg-
|
|
491
|
-
disabled: "bg-(--background-primary-disabled) border-1 border-(--border-primary-disabled) text-
|
|
492
|
-
"double-default": "bg-(--background-secondary) text-
|
|
493
|
-
"double-current": "bg-
|
|
496
|
+
primary: "bg-(--background-secondary) text-primary",
|
|
497
|
+
secondary: "bg-(--background-primary) border-1 border-(--border-primary) text-primary",
|
|
498
|
+
active: "bg-ac-lilac text-badge-black",
|
|
499
|
+
informal: "bg-ac-neon-blue text-badge-black",
|
|
500
|
+
success: "bg-ac-neon-green text-badge-black",
|
|
501
|
+
warning: "bg-ac-light-orange text-badge-black",
|
|
502
|
+
error: "bg-s-error-300 text-badge-black",
|
|
503
|
+
disabled: "bg-(--background-primary-disabled) border-1 border-(--border-primary-disabled) text-primary-disabled",
|
|
504
|
+
"double-default": "bg-(--background-secondary) text-primary",
|
|
505
|
+
"double-current": "bg-color-ac-lilac text-badge-black"
|
|
494
506
|
}
|
|
495
507
|
},
|
|
496
508
|
defaultVariants: {
|
|
@@ -517,7 +529,6 @@ var Badge = React7.forwardRef(
|
|
|
517
529
|
ref,
|
|
518
530
|
className: cn(badgeVariants({ size, variant }), className),
|
|
519
531
|
...rest,
|
|
520
|
-
style: { marginBottom: 0 },
|
|
521
532
|
children: value ? /* @__PURE__ */ jsxs5(Fragment, { children: [
|
|
522
533
|
/* @__PURE__ */ jsx9("span", { className: "font-normal", children: label }),
|
|
523
534
|
/* @__PURE__ */ jsx9("span", { className: "font-normal", children: ":" }),
|
|
@@ -543,12 +554,12 @@ var badgeDigitVariants = cva8(
|
|
|
543
554
|
},
|
|
544
555
|
variant: {
|
|
545
556
|
primary: "bg-(--background-brand)",
|
|
546
|
-
secondary: "bg-(--background-primary) border-1 border-(--border-secondary) text-(--
|
|
557
|
+
secondary: "bg-(--background-primary) border-1 border-(--border-secondary) text-(--color-secondary)",
|
|
547
558
|
informal: "bg-(--background-informal)",
|
|
548
559
|
success: "bg-(--background-success)",
|
|
549
560
|
warning: "bg-(--background-warning)",
|
|
550
561
|
error: "bg-(--background-error)",
|
|
551
|
-
disabled: "bg-(--background-primary) border-1 border-(--border-primary-disabled) text-
|
|
562
|
+
disabled: "bg-(--background-primary) border-1 border-(--border-primary-disabled) text-primary-disabled"
|
|
552
563
|
}
|
|
553
564
|
},
|
|
554
565
|
defaultVariants: {
|
|
@@ -571,7 +582,6 @@ var BadgeDigit = React8.forwardRef(
|
|
|
571
582
|
{
|
|
572
583
|
ref,
|
|
573
584
|
className: cn(badgeDigitVariants({ size, variant }), className),
|
|
574
|
-
style: { marginBottom: 0 },
|
|
575
585
|
...rest,
|
|
576
586
|
children: String(value)
|
|
577
587
|
}
|
|
@@ -587,7 +597,7 @@ import { jsx as jsx11 } from "react/jsx-runtime";
|
|
|
587
597
|
var badgeDotVariants = cva9("rounded-12 size-3", {
|
|
588
598
|
variants: {
|
|
589
599
|
status: {
|
|
590
|
-
disabled: "bg-(--
|
|
600
|
+
disabled: "bg-(--color-primary)",
|
|
591
601
|
informal: "bg-(--background-informal)",
|
|
592
602
|
"success/online": "bg-(--background-success)",
|
|
593
603
|
warning: "bg-(--background-warning)",
|
|
@@ -615,7 +625,7 @@ var BadgeStatus = React10.forwardRef(
|
|
|
615
625
|
dotClassName,
|
|
616
626
|
...rest
|
|
617
627
|
} = props;
|
|
618
|
-
const textClasses = active ? "caption-medium text-
|
|
628
|
+
const textClasses = active ? "caption-medium text-primary" : "caption-medium text-primary-disabled";
|
|
619
629
|
const dotClasses = active ? "bg-(--background-informal)" : "bg-(--background-primary)";
|
|
620
630
|
return /* @__PURE__ */ jsxs6(
|
|
621
631
|
"div",
|
|
@@ -634,7 +644,7 @@ var BadgeStatus = React10.forwardRef(
|
|
|
634
644
|
)
|
|
635
645
|
}
|
|
636
646
|
),
|
|
637
|
-
/* @__PURE__ */ jsx12("span", { className: textClasses,
|
|
647
|
+
/* @__PURE__ */ jsx12("span", { className: textClasses, children: label })
|
|
638
648
|
]
|
|
639
649
|
}
|
|
640
650
|
);
|
|
@@ -646,60 +656,128 @@ BadgeStatus.displayName = "BadgeStatus";
|
|
|
646
656
|
import "react";
|
|
647
657
|
import { TargetIcon } from "@bubo-squared/icons";
|
|
648
658
|
import { jsx as jsx13, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
649
|
-
var
|
|
659
|
+
var lineClassBase = "flex-1 bg-(--border-secondary) h-px";
|
|
660
|
+
var gapBySize = {
|
|
661
|
+
sm: "gap-2",
|
|
662
|
+
md: "gap-3",
|
|
663
|
+
lg: "gap-4",
|
|
664
|
+
xl: "gap-4"
|
|
665
|
+
};
|
|
666
|
+
var textClassBySize = {
|
|
667
|
+
sm: "footnote",
|
|
668
|
+
md: "caption",
|
|
669
|
+
lg: "paragraph-s",
|
|
670
|
+
xl: "paragraph-m"
|
|
671
|
+
};
|
|
650
672
|
var Divider = (props) => {
|
|
651
|
-
const
|
|
652
|
-
const
|
|
653
|
-
const
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
showCenter ? "gap-2" : "gap-0",
|
|
660
|
-
className
|
|
661
|
-
),
|
|
662
|
-
...rest,
|
|
663
|
-
children: [
|
|
664
|
-
/* @__PURE__ */ jsx13("div", { className: lineClass }),
|
|
665
|
-
type === "text-lines" && /* @__PURE__ */ jsx13(
|
|
666
|
-
"span",
|
|
667
|
-
{
|
|
668
|
-
className: "footnote text-(--text-secondary)",
|
|
669
|
-
style: { marginBottom: 0 },
|
|
670
|
-
children: textLabel
|
|
671
|
-
}
|
|
672
|
-
),
|
|
673
|
-
type === "icon-lines" && /* @__PURE__ */ jsx13(
|
|
674
|
-
IconButton,
|
|
675
|
-
{
|
|
676
|
-
variant: props.type === "icon-lines" && props.iconButtonVariant ? props.iconButtonVariant : "secondary",
|
|
677
|
-
size: "sm",
|
|
678
|
-
"aria-label": props.type === "icon-lines" && props.ariaLabel ? props.ariaLabel : textLabel || "More options",
|
|
679
|
-
icon: props.type === "icon-lines" ? props.icon : /* @__PURE__ */ jsx13(TargetIcon, {}),
|
|
680
|
-
onClick: props.type === "icon-lines" ? props.onIconClick : void 0
|
|
681
|
-
}
|
|
682
|
-
),
|
|
683
|
-
type === "icon-group-lines" && (props.type === "icon-group-lines" ? /* @__PURE__ */ jsx13(
|
|
684
|
-
IconButtonGroup,
|
|
685
|
-
{
|
|
686
|
-
items: props.iconGroupItems,
|
|
687
|
-
size: props.iconGroupSize
|
|
688
|
-
}
|
|
689
|
-
) : null),
|
|
690
|
-
type === "button-lines" && /* @__PURE__ */ jsx13(
|
|
691
|
-
Button,
|
|
692
|
-
{
|
|
693
|
-
variant: props.type === "button-lines" && props.buttonVariant ? props.buttonVariant : "secondary",
|
|
694
|
-
size: "md",
|
|
695
|
-
onClick: props.type === "button-lines" ? props.onButtonClick : void 0,
|
|
696
|
-
children: props.type === "button-lines" ? props.buttonLabel : "Label"
|
|
697
|
-
}
|
|
698
|
-
),
|
|
699
|
-
showCenter && /* @__PURE__ */ jsx13("div", { className: lineClass })
|
|
700
|
-
]
|
|
701
|
-
}
|
|
673
|
+
const resolvedType = props.type ?? "default";
|
|
674
|
+
const resolvedSize = props.size ?? "sm";
|
|
675
|
+
const showCenter = resolvedType !== "default";
|
|
676
|
+
const lineClass = lineClassBase;
|
|
677
|
+
const wrapperClass = cn(
|
|
678
|
+
"flex w-full items-center",
|
|
679
|
+
showCenter ? gapBySize[resolvedSize] : "gap-0",
|
|
680
|
+
props.className
|
|
702
681
|
);
|
|
682
|
+
if (props.type === void 0 || props.type === "default") {
|
|
683
|
+
const {
|
|
684
|
+
type: _type,
|
|
685
|
+
size: _size,
|
|
686
|
+
label: _label,
|
|
687
|
+
className: _className,
|
|
688
|
+
...divProps
|
|
689
|
+
} = props;
|
|
690
|
+
return /* @__PURE__ */ jsx13("div", { className: wrapperClass, ...divProps, children: /* @__PURE__ */ jsx13("div", { className: lineClass }) });
|
|
691
|
+
}
|
|
692
|
+
if (props.type === "text") {
|
|
693
|
+
const {
|
|
694
|
+
type: _type,
|
|
695
|
+
size: _size,
|
|
696
|
+
label,
|
|
697
|
+
className: _className,
|
|
698
|
+
...divProps
|
|
699
|
+
} = props;
|
|
700
|
+
const textLabel = label ? label : "OR";
|
|
701
|
+
return /* @__PURE__ */ jsxs7("div", { className: wrapperClass, ...divProps, children: [
|
|
702
|
+
/* @__PURE__ */ jsx13("div", { className: lineClass }),
|
|
703
|
+
/* @__PURE__ */ jsx13(
|
|
704
|
+
"span",
|
|
705
|
+
{
|
|
706
|
+
className: cn(
|
|
707
|
+
textClassBySize[resolvedSize],
|
|
708
|
+
"text-(--color-secondary)"
|
|
709
|
+
),
|
|
710
|
+
children: textLabel
|
|
711
|
+
}
|
|
712
|
+
),
|
|
713
|
+
/* @__PURE__ */ jsx13("div", { className: lineClass })
|
|
714
|
+
] });
|
|
715
|
+
}
|
|
716
|
+
if (props.type === "iconButton") {
|
|
717
|
+
const {
|
|
718
|
+
type: _type,
|
|
719
|
+
size: _size,
|
|
720
|
+
icon,
|
|
721
|
+
iconButtonVariant,
|
|
722
|
+
onIconClick,
|
|
723
|
+
ariaLabel,
|
|
724
|
+
className: _className,
|
|
725
|
+
...divProps
|
|
726
|
+
} = props;
|
|
727
|
+
return /* @__PURE__ */ jsxs7("div", { className: wrapperClass, ...divProps, children: [
|
|
728
|
+
/* @__PURE__ */ jsx13("div", { className: lineClass }),
|
|
729
|
+
/* @__PURE__ */ jsx13(
|
|
730
|
+
IconButton,
|
|
731
|
+
{
|
|
732
|
+
variant: iconButtonVariant ?? "secondary",
|
|
733
|
+
size: resolvedSize,
|
|
734
|
+
"aria-label": ariaLabel ?? "More options",
|
|
735
|
+
icon: icon ?? /* @__PURE__ */ jsx13(TargetIcon, {}),
|
|
736
|
+
onClick: onIconClick
|
|
737
|
+
}
|
|
738
|
+
),
|
|
739
|
+
/* @__PURE__ */ jsx13("div", { className: lineClass })
|
|
740
|
+
] });
|
|
741
|
+
}
|
|
742
|
+
if (props.type === "iconButtonGroup") {
|
|
743
|
+
const {
|
|
744
|
+
type: _type,
|
|
745
|
+
size: _size,
|
|
746
|
+
iconGroupItems,
|
|
747
|
+
className: _className,
|
|
748
|
+
...divProps
|
|
749
|
+
} = props;
|
|
750
|
+
return /* @__PURE__ */ jsxs7("div", { className: wrapperClass, ...divProps, children: [
|
|
751
|
+
/* @__PURE__ */ jsx13("div", { className: lineClass }),
|
|
752
|
+
/* @__PURE__ */ jsx13(IconButtonGroup, { items: iconGroupItems, size: resolvedSize }),
|
|
753
|
+
/* @__PURE__ */ jsx13("div", { className: lineClass })
|
|
754
|
+
] });
|
|
755
|
+
}
|
|
756
|
+
if (props.type === "button") {
|
|
757
|
+
const {
|
|
758
|
+
type: _type,
|
|
759
|
+
size: _size,
|
|
760
|
+
buttonLabel,
|
|
761
|
+
onButtonClick,
|
|
762
|
+
buttonVariant,
|
|
763
|
+
className: _className,
|
|
764
|
+
...divProps
|
|
765
|
+
} = props;
|
|
766
|
+
return /* @__PURE__ */ jsxs7("div", { className: wrapperClass, ...divProps, children: [
|
|
767
|
+
/* @__PURE__ */ jsx13("div", { className: lineClass }),
|
|
768
|
+
/* @__PURE__ */ jsx13(
|
|
769
|
+
Button,
|
|
770
|
+
{
|
|
771
|
+
variant: buttonVariant ?? "secondary",
|
|
772
|
+
size: resolvedSize,
|
|
773
|
+
onClick: onButtonClick,
|
|
774
|
+
children: buttonLabel
|
|
775
|
+
}
|
|
776
|
+
),
|
|
777
|
+
/* @__PURE__ */ jsx13("div", { className: lineClass })
|
|
778
|
+
] });
|
|
779
|
+
}
|
|
780
|
+
return null;
|
|
703
781
|
};
|
|
704
782
|
Divider.displayName = "Divider";
|
|
705
783
|
|
|
@@ -739,8 +817,8 @@ var Progress = React12.forwardRef(
|
|
|
739
817
|
...rest,
|
|
740
818
|
children: [
|
|
741
819
|
showLabel && label && /* @__PURE__ */ jsxs8("div", { className: "flex w-full items-center justify-between", children: [
|
|
742
|
-
/* @__PURE__ */ jsx14("span", { className: "paragraph-s-bold text-
|
|
743
|
-
/* @__PURE__ */ jsx14("span", { className: "footnote text-(--
|
|
820
|
+
/* @__PURE__ */ jsx14("span", { className: "paragraph-s-bold text-primary", children: label }),
|
|
821
|
+
/* @__PURE__ */ jsx14("span", { className: "footnote text-(--color-secondary)", children: percentageLabel })
|
|
744
822
|
] }),
|
|
745
823
|
/* @__PURE__ */ jsx14("div", { className: cn("w-full bg-(--chart-mono) overflow-hidden", barHeightClasses), children: /* @__PURE__ */ jsx14(
|
|
746
824
|
"div",
|
|
@@ -752,7 +830,7 @@ var Progress = React12.forwardRef(
|
|
|
752
830
|
style: { width: `${clamped}%` }
|
|
753
831
|
}
|
|
754
832
|
) }),
|
|
755
|
-
showHint && hint && /* @__PURE__ */ jsx14("p", { className: "caption text-(--
|
|
833
|
+
showHint && hint && /* @__PURE__ */ jsx14("p", { className: "caption text-(--color-secondary)", children: hint })
|
|
756
834
|
]
|
|
757
835
|
}
|
|
758
836
|
);
|
|
@@ -772,7 +850,7 @@ import {
|
|
|
772
850
|
} from "@bubo-squared/icons";
|
|
773
851
|
import { jsx as jsx15, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
774
852
|
var iconStatusVariants = cva10(
|
|
775
|
-
"inline-flex size-5 items-center justify-center rounded-full border-1 border-(--
|
|
853
|
+
"inline-flex size-5 items-center justify-center rounded-full border-1 border-(--color-primary-inverse) p-1",
|
|
776
854
|
{
|
|
777
855
|
variants: {
|
|
778
856
|
variant: {
|
|
@@ -790,10 +868,10 @@ var iconStatusVariants = cva10(
|
|
|
790
868
|
);
|
|
791
869
|
var presenceDotBase = "inline-flex h-5 w-5 items-center justify-center";
|
|
792
870
|
var presenceDotByVariant = {
|
|
793
|
-
offline: "bg-(--background-primary) border-1 border-(--
|
|
794
|
-
online: "bg-(--background-success) border-1 border-(--
|
|
795
|
-
away: "bg-(--background-warning) border-1 border-(--
|
|
796
|
-
busy: "bg-(--background-error) border-1 border-(--
|
|
871
|
+
offline: "bg-(--background-primary) border-1 border-(--color-primary-inverse)",
|
|
872
|
+
online: "bg-(--background-success) border-1 border-(--color-primary-inverse)",
|
|
873
|
+
away: "bg-(--background-warning) border-1 border-(--color-primary-inverse)",
|
|
874
|
+
busy: "bg-(--background-error) border-1 border-(--color-primary-inverse)"
|
|
797
875
|
};
|
|
798
876
|
var StatusAvatar = React13.forwardRef((props, ref) => {
|
|
799
877
|
const { variant = "verified", className, ...rest } = props;
|
|
@@ -820,11 +898,11 @@ var StatusAvatar = React13.forwardRef((props, ref) => {
|
|
|
820
898
|
className: cn(iconStatusVariants({ variant: iconVariant }), className),
|
|
821
899
|
...rest,
|
|
822
900
|
children: [
|
|
823
|
-
iconVariant === "verified" && /* @__PURE__ */ jsx15(CheckIcon, { className: "size-3 text-
|
|
824
|
-
iconVariant === "bookmark" && /* @__PURE__ */ jsx15(BookmarkCheckIcon, { className: "size-3 text-
|
|
825
|
-
iconVariant === "favorite" && /* @__PURE__ */ jsx15(StarIcon, { className: "size-3 text-
|
|
826
|
-
iconVariant === "add" && /* @__PURE__ */ jsx15(PlusIcon, { className: "size-3 text-
|
|
827
|
-
iconVariant === "remove" && /* @__PURE__ */ jsx15(CrossIcon, { className: "size-3 text-
|
|
901
|
+
iconVariant === "verified" && /* @__PURE__ */ jsx15(CheckIcon, { className: "size-3 text-button-white" }),
|
|
902
|
+
iconVariant === "bookmark" && /* @__PURE__ */ jsx15(BookmarkCheckIcon, { className: "size-3 text-button-white" }),
|
|
903
|
+
iconVariant === "favorite" && /* @__PURE__ */ jsx15(StarIcon, { className: "size-3 text-button-white" }),
|
|
904
|
+
iconVariant === "add" && /* @__PURE__ */ jsx15(PlusIcon, { className: "size-3 text-button-white" }),
|
|
905
|
+
iconVariant === "remove" && /* @__PURE__ */ jsx15(CrossIcon, { className: "size-3 text-button-white" })
|
|
828
906
|
]
|
|
829
907
|
}
|
|
830
908
|
);
|
|
@@ -850,8 +928,8 @@ var tagVariants = cva11(
|
|
|
850
928
|
}
|
|
851
929
|
}
|
|
852
930
|
);
|
|
853
|
-
var disabledTag = "pointer-events-none border-(--border-secondary-disabled) bg-(--background-neutral-disabled) text-
|
|
854
|
-
var iconClasses = "flex items-center justify-center w-5 h-5 [&>*]:w-5 [&>*]:h-5 shrink-0 text-
|
|
931
|
+
var disabledTag = "pointer-events-none border-(--border-secondary-disabled) bg-(--background-neutral-disabled) text-primary-disabled";
|
|
932
|
+
var iconClasses = "flex items-center justify-center w-5 h-5 [&>*]:w-5 [&>*]:h-5 shrink-0 text-primary";
|
|
855
933
|
var Tag = React14.forwardRef(
|
|
856
934
|
(props, ref) => {
|
|
857
935
|
const {
|
|
@@ -875,10 +953,10 @@ var Tag = React14.forwardRef(
|
|
|
875
953
|
children: [
|
|
876
954
|
leading && /* @__PURE__ */ jsx16("div", { className: iconClasses, children: leading }),
|
|
877
955
|
value ? /* @__PURE__ */ jsxs10("div", { className: "flex flex-row gap-1 items-center", children: [
|
|
878
|
-
/* @__PURE__ */ jsx16("span", { className: "text-
|
|
879
|
-
/* @__PURE__ */ jsx16("span", { className: "text-
|
|
880
|
-
/* @__PURE__ */ jsx16("span", { className: "text-
|
|
881
|
-
] }) : /* @__PURE__ */ jsx16("span", { className: "text-
|
|
956
|
+
/* @__PURE__ */ jsx16("span", { className: "text-primary paragraph-l mb-0! cursor-default font-normal", children: label }),
|
|
957
|
+
/* @__PURE__ */ jsx16("span", { className: "text-primary paragraph-l mb-0! cursor-default font-normal", children: ":" }),
|
|
958
|
+
/* @__PURE__ */ jsx16("span", { className: "text-primary paragraph-l-medium mb-0! cursor-default font-medium", children: value })
|
|
959
|
+
] }) : /* @__PURE__ */ jsx16("span", { className: "text-primary paragraph-l mb-0! cursor-default", children: label }),
|
|
882
960
|
trailing && /* @__PURE__ */ jsx16("div", { className: iconClasses, children: trailing })
|
|
883
961
|
]
|
|
884
962
|
}
|
|
@@ -898,9 +976,9 @@ function Checkbox({ label, className, ...props }) {
|
|
|
898
976
|
CheckboxPrimitive.Root,
|
|
899
977
|
{
|
|
900
978
|
className: cn(
|
|
901
|
-
"group flex h-5 w-5 items-center justify-center rounded-2 border border-(--border-secondary) bg-(--background-neutral) text-
|
|
902
|
-
"data-[state=checked]:bg-(--background-brand) data-[state=checked]:text-
|
|
903
|
-
"data-[state=indeterminate]:bg-(--background-brand) data-[state=indeterminate]:text-
|
|
979
|
+
"group flex h-5 w-5 items-center justify-center rounded-2 border border-(--border-secondary) bg-(--background-neutral) text-primary-inverse",
|
|
980
|
+
"data-[state=checked]:bg-(--background-brand) data-[state=checked]:text-button-white data-[state=checked]:border-none",
|
|
981
|
+
"data-[state=indeterminate]:bg-(--background-brand) data-[state=indeterminate]:text-button-white data-[state=indeterminate]:border-none",
|
|
904
982
|
"data-[state=checked]:hover:bg-(--background-brand-hover) data-[state=indeterminate]:hover:bg-(--background-brand-hover)",
|
|
905
983
|
"focus-visible:border-(--border-brand)",
|
|
906
984
|
"disabled:bg-(--background-primary-disabled) disabled:border-none disabled:text-(--icon-primary-disabled)",
|
|
@@ -916,7 +994,7 @@ function Checkbox({ label, className, ...props }) {
|
|
|
916
994
|
] })
|
|
917
995
|
}
|
|
918
996
|
),
|
|
919
|
-
label && /* @__PURE__ */ jsx17("span", { className: "paragraph-m-medium text-
|
|
997
|
+
label && /* @__PURE__ */ jsx17("span", { className: "paragraph-m-medium text-primary", children: label })
|
|
920
998
|
] });
|
|
921
999
|
}
|
|
922
1000
|
|
|
@@ -925,9 +1003,9 @@ import * as React16 from "react";
|
|
|
925
1003
|
import { cva as cva12 } from "class-variance-authority";
|
|
926
1004
|
import { ChevronDownIcon } from "@bubo-squared/icons";
|
|
927
1005
|
import { jsx as jsx18, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
928
|
-
var dropdownWrapperBase = "flex flex-col gap-2 items-start
|
|
1006
|
+
var dropdownWrapperBase = "flex flex-col gap-2 items-start";
|
|
929
1007
|
var dropdownTriggerVariants = cva12(
|
|
930
|
-
"group flex w-full items-center justify-between rounded-4 border bg-(--background-primary) px-3 py-2 text-left transition-colors cursor-pointer focus-ring-primary focus:border-(--border-brand) hover:bg-(--background-primary-hover) disabled:bg-(--background-primary) disabled:border-(--border-secondary-disabled) disabled:text-
|
|
1008
|
+
"group flex w-full items-center justify-between rounded-4 border bg-(--background-primary) px-3 py-2 text-left transition-colors cursor-pointer focus-ring-primary focus:border-(--border-brand) hover:bg-(--background-primary-hover) disabled:bg-(--background-primary) disabled:border-(--border-secondary-disabled) disabled:text-primary-disabled disabled:cursor-default",
|
|
931
1009
|
{
|
|
932
1010
|
variants: {
|
|
933
1011
|
size: {
|
|
@@ -953,11 +1031,11 @@ var dropdownTextVariants = cva12("truncate", {
|
|
|
953
1031
|
"extra-large": "h6-title"
|
|
954
1032
|
},
|
|
955
1033
|
hasValue: {
|
|
956
|
-
false: "text-(--
|
|
957
|
-
true: "text-
|
|
1034
|
+
false: "text-(--color-secondary)",
|
|
1035
|
+
true: "text-primary"
|
|
958
1036
|
},
|
|
959
1037
|
disabled: {
|
|
960
|
-
true: "text-
|
|
1038
|
+
true: "text-primary-disabled"
|
|
961
1039
|
}
|
|
962
1040
|
},
|
|
963
1041
|
defaultVariants: {
|
|
@@ -986,7 +1064,7 @@ var Dropdown = (props) => {
|
|
|
986
1064
|
label = "Field Label",
|
|
987
1065
|
showLabel = true,
|
|
988
1066
|
hint = "This is a hint text to help user.",
|
|
989
|
-
|
|
1067
|
+
hideHint = false,
|
|
990
1068
|
placeholder = "Placeholder text",
|
|
991
1069
|
size = "large",
|
|
992
1070
|
status = "default",
|
|
@@ -1048,9 +1126,8 @@ var Dropdown = (props) => {
|
|
|
1048
1126
|
id: labelId,
|
|
1049
1127
|
className: cn(
|
|
1050
1128
|
"paragraph-s",
|
|
1051
|
-
disabled ? "text-
|
|
1129
|
+
disabled ? "text-primary-disabled" : "text-primary"
|
|
1052
1130
|
),
|
|
1053
|
-
style: { marginBottom: 0 },
|
|
1054
1131
|
children: label
|
|
1055
1132
|
}
|
|
1056
1133
|
),
|
|
@@ -1063,7 +1140,7 @@ var Dropdown = (props) => {
|
|
|
1063
1140
|
"aria-haspopup": "listbox",
|
|
1064
1141
|
"aria-expanded": isOpen,
|
|
1065
1142
|
"aria-labelledby": showLabel ? labelId : void 0,
|
|
1066
|
-
"aria-describedby":
|
|
1143
|
+
"aria-describedby": !hideHint ? hintId : void 0,
|
|
1067
1144
|
disabled,
|
|
1068
1145
|
className: cn(
|
|
1069
1146
|
dropdownTriggerVariants({ size, status }),
|
|
@@ -1083,7 +1160,6 @@ var Dropdown = (props) => {
|
|
|
1083
1160
|
disabled: !!disabled
|
|
1084
1161
|
})
|
|
1085
1162
|
),
|
|
1086
|
-
style: { marginBottom: 0 },
|
|
1087
1163
|
children: hasValue ? selectedOption?.label : placeholder
|
|
1088
1164
|
}
|
|
1089
1165
|
),
|
|
@@ -1112,8 +1188,7 @@ var Dropdown = (props) => {
|
|
|
1112
1188
|
"button",
|
|
1113
1189
|
{
|
|
1114
1190
|
type: "button",
|
|
1115
|
-
className: "flex w-full items-center gap-2 pl-(--space-8) pr-(--space-16) py-(--space-8) text-left paragraph-l text-
|
|
1116
|
-
style: { marginBottom: 0 },
|
|
1191
|
+
className: "flex w-full items-center gap-2 pl-(--space-8) pr-(--space-16) py-(--space-8) text-left paragraph-l text-primary hover:bg-(--background-secondary)",
|
|
1117
1192
|
role: "option",
|
|
1118
1193
|
"aria-selected": selected,
|
|
1119
1194
|
onClick: () => handleSelect(opt.value),
|
|
@@ -1125,15 +1200,14 @@ var Dropdown = (props) => {
|
|
|
1125
1200
|
);
|
|
1126
1201
|
}) }) })
|
|
1127
1202
|
] }),
|
|
1128
|
-
|
|
1203
|
+
!hideHint && /* @__PURE__ */ jsx18(
|
|
1129
1204
|
"p",
|
|
1130
1205
|
{
|
|
1131
1206
|
id: hintId,
|
|
1132
1207
|
className: cn(
|
|
1133
1208
|
"caption",
|
|
1134
|
-
disabled ? "text-
|
|
1209
|
+
disabled ? "text-primary-disabled" : "text-(--color-secondary)"
|
|
1135
1210
|
),
|
|
1136
|
-
style: { marginBottom: 0 },
|
|
1137
1211
|
children: hint
|
|
1138
1212
|
}
|
|
1139
1213
|
)
|
|
@@ -1144,11 +1218,12 @@ Dropdown.displayName = "Dropdown";
|
|
|
1144
1218
|
// src/components/Inputs/Field.tsx
|
|
1145
1219
|
import * as React17 from "react";
|
|
1146
1220
|
import { jsx as jsx19, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
1147
|
-
var fieldBase = "flex flex-col gap-2 items-start
|
|
1221
|
+
var fieldBase = "flex flex-col gap-2 items-start";
|
|
1148
1222
|
var Field = (props) => {
|
|
1149
1223
|
const {
|
|
1150
1224
|
label,
|
|
1151
1225
|
hint,
|
|
1226
|
+
hideHint,
|
|
1152
1227
|
status = "default",
|
|
1153
1228
|
disabled,
|
|
1154
1229
|
className,
|
|
@@ -1157,25 +1232,23 @@ var Field = (props) => {
|
|
|
1157
1232
|
const fieldId = React17.useId();
|
|
1158
1233
|
const labelId = label ? `${fieldId}-label` : void 0;
|
|
1159
1234
|
const hintId = hint ? `${fieldId}-hint` : void 0;
|
|
1160
|
-
const hintColorClass = disabled ? "text-
|
|
1161
|
-
const labelColorClass = disabled ? "text-
|
|
1235
|
+
const hintColorClass = disabled ? "text-primary-disabled" : status === "success" ? "text-(--color-success)" : status === "error" ? "text-(--color-error)" : "text-(--color-secondary)";
|
|
1236
|
+
const labelColorClass = disabled ? "text-primary-disabled" : "text-primary";
|
|
1162
1237
|
return /* @__PURE__ */ jsxs13("div", { className: cn(fieldBase, className), children: [
|
|
1163
1238
|
label && /* @__PURE__ */ jsx19(
|
|
1164
1239
|
"label",
|
|
1165
1240
|
{
|
|
1166
1241
|
id: labelId,
|
|
1167
1242
|
className: cn("paragraph-s", labelColorClass),
|
|
1168
|
-
style: { marginBottom: 0 },
|
|
1169
1243
|
children: label
|
|
1170
1244
|
}
|
|
1171
1245
|
),
|
|
1172
1246
|
/* @__PURE__ */ jsx19("div", { className: "relative w-full", children }),
|
|
1173
|
-
/* @__PURE__ */ jsx19(
|
|
1247
|
+
!hideHint && /* @__PURE__ */ jsx19(
|
|
1174
1248
|
"p",
|
|
1175
1249
|
{
|
|
1176
1250
|
id: hint ? hintId : void 0,
|
|
1177
1251
|
className: cn("caption", hint ? hintColorClass : "invisible"),
|
|
1178
|
-
style: { marginBottom: 0 },
|
|
1179
1252
|
children: hint || "\xA0"
|
|
1180
1253
|
}
|
|
1181
1254
|
)
|
|
@@ -1192,7 +1265,7 @@ import * as React18 from "react";
|
|
|
1192
1265
|
import { jsx as jsx20 } from "react/jsx-runtime";
|
|
1193
1266
|
var Input = React18.forwardRef(
|
|
1194
1267
|
({ className, type, variant = "default", ...props }, ref) => {
|
|
1195
|
-
const base = "text-
|
|
1268
|
+
const base = "text-primary placeholder:text-(--color-secondary) disabled:text-primary-disabled disabled:placeholder:text-primary-disabled selection:bg-primary selection:text-primary-foreground file:text-foreground";
|
|
1196
1269
|
const defaultStyles = "dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 shadow-xs transition-[color,box-shadow] file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 focus-visible:border-ring focus-visible:ring-0 focus-visible:shadow-none aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive";
|
|
1197
1270
|
const bareStyles = "bg-transparent outline-none w-full";
|
|
1198
1271
|
return /* @__PURE__ */ jsx20(
|
|
@@ -1231,7 +1304,7 @@ var inputShellVariants = cva13(
|
|
|
1231
1304
|
error: "input-error"
|
|
1232
1305
|
},
|
|
1233
1306
|
disabled: {
|
|
1234
|
-
true: "bg-(--background-primary-disabled) border-(--border-secondary-disabled) text-
|
|
1307
|
+
true: "bg-(--background-primary-disabled) border-(--border-secondary-disabled) text-primary-disabled cursor-default"
|
|
1235
1308
|
}
|
|
1236
1309
|
},
|
|
1237
1310
|
defaultVariants: {
|
|
@@ -1267,8 +1340,8 @@ var passwordTextVariants = cva14("truncate", {
|
|
|
1267
1340
|
"extra-large": "h6-title"
|
|
1268
1341
|
},
|
|
1269
1342
|
disabled: {
|
|
1270
|
-
true: "text-
|
|
1271
|
-
false: "text-
|
|
1343
|
+
true: "text-primary-disabled",
|
|
1344
|
+
false: "text-primary"
|
|
1272
1345
|
}
|
|
1273
1346
|
},
|
|
1274
1347
|
defaultVariants: {
|
|
@@ -1302,7 +1375,7 @@ var actionButtonVariants = cva14(
|
|
|
1302
1375
|
"extra-large": "paragraph-m"
|
|
1303
1376
|
},
|
|
1304
1377
|
disabled: {
|
|
1305
|
-
true: "cursor-default text-
|
|
1378
|
+
true: "cursor-default text-primary-disabled hover:text-primary-disabled"
|
|
1306
1379
|
}
|
|
1307
1380
|
},
|
|
1308
1381
|
defaultVariants: {
|
|
@@ -1314,6 +1387,7 @@ var PasswordInput = (props) => {
|
|
|
1314
1387
|
const {
|
|
1315
1388
|
label,
|
|
1316
1389
|
hint,
|
|
1390
|
+
hideHint,
|
|
1317
1391
|
placeholder = "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022",
|
|
1318
1392
|
size = "large",
|
|
1319
1393
|
status = "default",
|
|
@@ -1353,6 +1427,7 @@ var PasswordInput = (props) => {
|
|
|
1353
1427
|
{
|
|
1354
1428
|
label,
|
|
1355
1429
|
hint,
|
|
1430
|
+
hideHint,
|
|
1356
1431
|
status,
|
|
1357
1432
|
disabled,
|
|
1358
1433
|
children: /* @__PURE__ */ jsxs14(
|
|
@@ -1387,7 +1462,6 @@ var PasswordInput = (props) => {
|
|
|
1387
1462
|
className: cn(
|
|
1388
1463
|
passwordTextVariants({ size, disabled: !!disabled })
|
|
1389
1464
|
),
|
|
1390
|
-
style: { marginBottom: 0 },
|
|
1391
1465
|
...inputProps
|
|
1392
1466
|
}
|
|
1393
1467
|
),
|
|
@@ -1404,7 +1478,6 @@ var PasswordInput = (props) => {
|
|
|
1404
1478
|
"button",
|
|
1405
1479
|
{
|
|
1406
1480
|
type: "button",
|
|
1407
|
-
style: { marginBottom: 0 },
|
|
1408
1481
|
className: cn(
|
|
1409
1482
|
actionButtonVariants({ size, disabled: !!disabled })
|
|
1410
1483
|
),
|
|
@@ -1516,13 +1589,13 @@ function CommandInput({
|
|
|
1516
1589
|
"data-slot": "command-input-wrapper",
|
|
1517
1590
|
className: "flex h-9 items-center gap-2 border-b px-3",
|
|
1518
1591
|
children: [
|
|
1519
|
-
/* @__PURE__ */ jsx25(SearchIcon, { className: "size-4 shrink-0 opacity-50 text-(--
|
|
1592
|
+
/* @__PURE__ */ jsx25(SearchIcon, { className: "size-4 shrink-0 opacity-50 text-(--color-secondary)" }),
|
|
1520
1593
|
/* @__PURE__ */ jsx25(
|
|
1521
1594
|
CommandPrimitive.Input,
|
|
1522
1595
|
{
|
|
1523
1596
|
"data-slot": "command-input",
|
|
1524
1597
|
className: cn(
|
|
1525
|
-
"placeholder:text-(--
|
|
1598
|
+
"placeholder:text-(--color-secondary) text-primary flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50",
|
|
1526
1599
|
className
|
|
1527
1600
|
),
|
|
1528
1601
|
...props
|
|
@@ -1709,7 +1782,7 @@ var inputTextVariants = cva16("", {
|
|
|
1709
1782
|
"extra-large": "h6-title"
|
|
1710
1783
|
},
|
|
1711
1784
|
disabled: {
|
|
1712
|
-
true: "text-
|
|
1785
|
+
true: "text-primary-disabled border-(--border-secondary-disabled)"
|
|
1713
1786
|
}
|
|
1714
1787
|
},
|
|
1715
1788
|
defaultVariants: {
|
|
@@ -1729,6 +1802,7 @@ var PhoneInput = React26.forwardRef(
|
|
|
1729
1802
|
value,
|
|
1730
1803
|
label,
|
|
1731
1804
|
hint,
|
|
1805
|
+
hideHint,
|
|
1732
1806
|
placeholder,
|
|
1733
1807
|
size = "large",
|
|
1734
1808
|
disabled = false,
|
|
@@ -1740,6 +1814,7 @@ var PhoneInput = React26.forwardRef(
|
|
|
1740
1814
|
{
|
|
1741
1815
|
label,
|
|
1742
1816
|
hint,
|
|
1817
|
+
hideHint,
|
|
1743
1818
|
status,
|
|
1744
1819
|
disabled,
|
|
1745
1820
|
className,
|
|
@@ -1751,7 +1826,6 @@ var PhoneInput = React26.forwardRef(
|
|
|
1751
1826
|
sizeBase({ size }),
|
|
1752
1827
|
inputTextVariants({ size, disabled })
|
|
1753
1828
|
),
|
|
1754
|
-
style: { marginBottom: 0 },
|
|
1755
1829
|
flagComponent: FlagComponent,
|
|
1756
1830
|
countrySelectComponent: CountrySelect,
|
|
1757
1831
|
inputComponent: InputComponent,
|
|
@@ -1807,7 +1881,7 @@ var CountrySelect = ({
|
|
|
1807
1881
|
{
|
|
1808
1882
|
type: "button",
|
|
1809
1883
|
variant: "outline",
|
|
1810
|
-
className: cn(inputBase, "flex gap-1 rounded-4 px-3 focus:z-10 mr-(--space-12) text-
|
|
1884
|
+
className: cn(inputBase, "flex gap-1 rounded-4 px-3 focus:z-10 mr-(--space-12) text-primary-disabled hover:text-(--color-primary-hover) focus:text-(--color-primary-focus)"),
|
|
1811
1885
|
disabled,
|
|
1812
1886
|
children: [
|
|
1813
1887
|
/* @__PURE__ */ jsx28(
|
|
@@ -1829,44 +1903,51 @@ var CountrySelect = ({
|
|
|
1829
1903
|
]
|
|
1830
1904
|
}
|
|
1831
1905
|
) }),
|
|
1832
|
-
/* @__PURE__ */ jsx28(
|
|
1833
|
-
|
|
1834
|
-
|
|
1835
|
-
|
|
1836
|
-
|
|
1837
|
-
|
|
1838
|
-
|
|
1839
|
-
|
|
1840
|
-
if (scrollAreaRef.current) {
|
|
1841
|
-
const viewportElement = scrollAreaRef.current.querySelector(
|
|
1842
|
-
"[data-radix-scroll-area-viewport]"
|
|
1843
|
-
);
|
|
1844
|
-
if (viewportElement) {
|
|
1845
|
-
viewportElement.scrollTop = 0;
|
|
1846
|
-
}
|
|
1847
|
-
}
|
|
1848
|
-
}, 0);
|
|
1849
|
-
},
|
|
1850
|
-
placeholder: "Search country..."
|
|
1851
|
-
}
|
|
1852
|
-
),
|
|
1853
|
-
/* @__PURE__ */ jsx28(CommandList, { children: /* @__PURE__ */ jsxs18(ScrollArea, { ref: scrollAreaRef, className: "h-72", children: [
|
|
1854
|
-
/* @__PURE__ */ jsx28(CommandEmpty, { children: "No country found." }),
|
|
1855
|
-
/* @__PURE__ */ jsx28(CommandGroup, { className: "[&>div>div]:pl-4 [&>div>div]:pr-2 [&>div>div]:py-2 [&>div>div]:border-b [&>div>div]:border-b-(--border-secondary) [&>div>div]:cursor-pointer [&>div>div]:hover:bg-(--background-primary-hover) [&>div>div]:text-(--text-primary) [&>div>div]:hover:text-(--text-primary) p-0 pr-4", children: countryList.map(
|
|
1856
|
-
({ value, label }) => value ? /* @__PURE__ */ jsx28(
|
|
1857
|
-
CountrySelectOption,
|
|
1906
|
+
/* @__PURE__ */ jsx28(
|
|
1907
|
+
PopoverContent,
|
|
1908
|
+
{
|
|
1909
|
+
align: "start",
|
|
1910
|
+
className: "p-0 bg-(--background-primary) shadow-card-md rounded-4 border-none outline-1 outline-solid outline-(--border-primary-hover) **:data-[slot='command-input-wrapper']:border-b-(--border-secondary)",
|
|
1911
|
+
children: /* @__PURE__ */ jsxs18(Command, { children: [
|
|
1912
|
+
/* @__PURE__ */ jsx28(
|
|
1913
|
+
CommandInput,
|
|
1858
1914
|
{
|
|
1859
|
-
|
|
1860
|
-
|
|
1861
|
-
|
|
1862
|
-
|
|
1863
|
-
|
|
1864
|
-
|
|
1865
|
-
|
|
1866
|
-
|
|
1867
|
-
|
|
1868
|
-
|
|
1869
|
-
|
|
1915
|
+
value: searchValue,
|
|
1916
|
+
onValueChange: (value) => {
|
|
1917
|
+
setSearchValue(value);
|
|
1918
|
+
setTimeout(() => {
|
|
1919
|
+
if (scrollAreaRef.current) {
|
|
1920
|
+
const viewportElement = scrollAreaRef.current.querySelector(
|
|
1921
|
+
"[data-radix-scroll-area-viewport]"
|
|
1922
|
+
);
|
|
1923
|
+
if (viewportElement) {
|
|
1924
|
+
viewportElement.scrollTop = 0;
|
|
1925
|
+
}
|
|
1926
|
+
}
|
|
1927
|
+
}, 0);
|
|
1928
|
+
},
|
|
1929
|
+
placeholder: "Search country..."
|
|
1930
|
+
}
|
|
1931
|
+
),
|
|
1932
|
+
/* @__PURE__ */ jsx28(CommandList, { children: /* @__PURE__ */ jsxs18(ScrollArea, { ref: scrollAreaRef, className: "h-72", children: [
|
|
1933
|
+
/* @__PURE__ */ jsx28(CommandEmpty, { children: "No country found." }),
|
|
1934
|
+
/* @__PURE__ */ jsx28(CommandGroup, { className: "[&>div>div]:pl-4 [&>div>div]:pr-2 [&>div>div]:py-2 [&>div>div]:border-b [&>div>div]:border-b-(--border-secondary) [&>div>div]:cursor-pointer [&>div>div]:hover:bg-(--background-primary-hover) [&>div>div]:text-primary [&>div>div]:hover:text-primary p-0 pr-4", children: countryList.map(
|
|
1935
|
+
({ value, label }) => value ? /* @__PURE__ */ jsx28(
|
|
1936
|
+
CountrySelectOption,
|
|
1937
|
+
{
|
|
1938
|
+
country: value,
|
|
1939
|
+
countryName: label,
|
|
1940
|
+
selectedCountry,
|
|
1941
|
+
onChange,
|
|
1942
|
+
onSelectComplete: () => setIsOpen(false)
|
|
1943
|
+
},
|
|
1944
|
+
value
|
|
1945
|
+
) : null
|
|
1946
|
+
) })
|
|
1947
|
+
] }) })
|
|
1948
|
+
] })
|
|
1949
|
+
}
|
|
1950
|
+
)
|
|
1870
1951
|
]
|
|
1871
1952
|
}
|
|
1872
1953
|
);
|
|
@@ -1886,7 +1967,7 @@ var CountrySelectOption = (props) => {
|
|
|
1886
1967
|
return /* @__PURE__ */ jsxs18(
|
|
1887
1968
|
CommandItem,
|
|
1888
1969
|
{
|
|
1889
|
-
className: "gap-2 data-[selected=true]:text-
|
|
1970
|
+
className: "gap-2 data-[selected=true]:text-primary",
|
|
1890
1971
|
onSelect: handleSelect,
|
|
1891
1972
|
children: [
|
|
1892
1973
|
/* @__PURE__ */ jsx28(FlagComponent, { country, countryName }),
|
|
@@ -1915,6 +1996,7 @@ var wrapperBase = "flex flex-col gap-2 items-start";
|
|
|
1915
1996
|
var RadioGroup = ({
|
|
1916
1997
|
label,
|
|
1917
1998
|
hint,
|
|
1999
|
+
hideHint,
|
|
1918
2000
|
options,
|
|
1919
2001
|
orientation = "vertical",
|
|
1920
2002
|
disabled = false,
|
|
@@ -1935,10 +2017,9 @@ var RadioGroup = ({
|
|
|
1935
2017
|
"span",
|
|
1936
2018
|
{
|
|
1937
2019
|
className: cn(
|
|
1938
|
-
"paragraph-s text-
|
|
1939
|
-
disabled && "text-
|
|
2020
|
+
"paragraph-s text-primary",
|
|
2021
|
+
disabled && "text-primary-disabled"
|
|
1940
2022
|
),
|
|
1941
|
-
style: { marginBottom: 0 },
|
|
1942
2023
|
children: label
|
|
1943
2024
|
}
|
|
1944
2025
|
),
|
|
@@ -2016,10 +2097,9 @@ var RadioGroup = ({
|
|
|
2016
2097
|
"span",
|
|
2017
2098
|
{
|
|
2018
2099
|
className: cn(
|
|
2019
|
-
"paragraph-s text-
|
|
2020
|
-
"group-data-[disabled]:text-
|
|
2100
|
+
"paragraph-s text-primary",
|
|
2101
|
+
"group-data-[disabled]:text-primary-disabled whitespace-nowrap"
|
|
2021
2102
|
),
|
|
2022
|
-
style: { marginBottom: 0 },
|
|
2023
2103
|
children: option.label
|
|
2024
2104
|
}
|
|
2025
2105
|
)
|
|
@@ -2031,15 +2111,14 @@ var RadioGroup = ({
|
|
|
2031
2111
|
))
|
|
2032
2112
|
}
|
|
2033
2113
|
),
|
|
2034
|
-
/* @__PURE__ */ jsx29(
|
|
2114
|
+
!hideHint && /* @__PURE__ */ jsx29(
|
|
2035
2115
|
"p",
|
|
2036
2116
|
{
|
|
2037
2117
|
id: hintId,
|
|
2038
2118
|
className: cn(
|
|
2039
|
-
"caption text-(--
|
|
2040
|
-
disabled && "text-
|
|
2119
|
+
"caption text-(--color-secondary)",
|
|
2120
|
+
disabled && "text-primary-disabled"
|
|
2041
2121
|
),
|
|
2042
|
-
style: { marginBottom: 0 },
|
|
2043
2122
|
children: hint ?? "\xA0"
|
|
2044
2123
|
}
|
|
2045
2124
|
)
|
|
@@ -2093,7 +2172,7 @@ var SearchInput = (props) => {
|
|
|
2093
2172
|
inputRef.current?.focus();
|
|
2094
2173
|
};
|
|
2095
2174
|
const showTrailingIcon = !!trailingIcon;
|
|
2096
|
-
return /* @__PURE__ */ jsx30("div", { className: "flex flex-col gap-2 items-start
|
|
2175
|
+
return /* @__PURE__ */ jsx30("div", { className: "flex flex-col gap-2 items-start", children: /* @__PURE__ */ jsx30("div", { className: "relative w-full", children: /* @__PURE__ */ jsxs20(
|
|
2097
2176
|
InputShell,
|
|
2098
2177
|
{
|
|
2099
2178
|
size,
|
|
@@ -2114,7 +2193,6 @@ var SearchInput = (props) => {
|
|
|
2114
2193
|
className: cn(
|
|
2115
2194
|
searchTextVariants({ size })
|
|
2116
2195
|
),
|
|
2117
|
-
style: { marginBottom: 0 },
|
|
2118
2196
|
...inputProps
|
|
2119
2197
|
}
|
|
2120
2198
|
),
|
|
@@ -2128,7 +2206,7 @@ SearchInput.displayName = "SearchInput";
|
|
|
2128
2206
|
// src/components/Inputs/Slider.tsx
|
|
2129
2207
|
import * as React29 from "react";
|
|
2130
2208
|
import { jsx as jsx31, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
2131
|
-
var wrapperBase2 = "flex flex-col gap-2 items-start
|
|
2209
|
+
var wrapperBase2 = "flex flex-col gap-2 items-start";
|
|
2132
2210
|
var Slider = (props) => {
|
|
2133
2211
|
const {
|
|
2134
2212
|
display = "flat",
|
|
@@ -2384,16 +2462,14 @@ var Slider = (props) => {
|
|
|
2384
2462
|
"relative rounded-4 shadow-card-md px-(--space-8) py-(--space-4)",
|
|
2385
2463
|
disabled ? "bg-(--background-primary-disabled)" : "bg-(--background-neutral)"
|
|
2386
2464
|
),
|
|
2387
|
-
style: { marginBottom: 0 },
|
|
2388
2465
|
children: [
|
|
2389
2466
|
/* @__PURE__ */ jsx31(
|
|
2390
2467
|
"p",
|
|
2391
2468
|
{
|
|
2392
2469
|
className: cn(
|
|
2393
2470
|
"paragraph-s",
|
|
2394
|
-
disabled ? "text-
|
|
2471
|
+
disabled ? "text-primary-disabled" : "text-primary"
|
|
2395
2472
|
),
|
|
2396
|
-
style: { marginBottom: 0 },
|
|
2397
2473
|
children: labelText
|
|
2398
2474
|
}
|
|
2399
2475
|
),
|
|
@@ -2446,7 +2522,7 @@ var Slider = (props) => {
|
|
|
2446
2522
|
index
|
|
2447
2523
|
);
|
|
2448
2524
|
};
|
|
2449
|
-
return /* @__PURE__ */ jsx31("div", { className: wrapperBase2, children: /* @__PURE__ */ jsxs21("div", { className: cn("w-
|
|
2525
|
+
return /* @__PURE__ */ jsx31("div", { className: wrapperBase2, children: /* @__PURE__ */ jsxs21("div", { className: cn("w-full flex flex-col gap-1", className), children: [
|
|
2450
2526
|
/* @__PURE__ */ jsxs21("div", { className: "relative w-full", children: [
|
|
2451
2527
|
showTooltip && primary !== void 0 && renderTooltipBubble("primary", primaryPercent, formatDisplayValue(primary)),
|
|
2452
2528
|
showTooltip && type === "multi" && secondary !== void 0 && renderTooltipBubble("secondary", secondaryPercent, formatDisplayValue(secondary)),
|
|
@@ -2484,10 +2560,9 @@ var Slider = (props) => {
|
|
|
2484
2560
|
"p",
|
|
2485
2561
|
{
|
|
2486
2562
|
className: cn(
|
|
2487
|
-
"paragraph-s text-
|
|
2488
|
-
disabled && "text-
|
|
2563
|
+
"paragraph-s text-primary",
|
|
2564
|
+
disabled && "text-primary-disabled"
|
|
2489
2565
|
),
|
|
2490
|
-
style: { marginBottom: 0 },
|
|
2491
2566
|
children: formatNumericLabel()
|
|
2492
2567
|
}
|
|
2493
2568
|
)
|
|
@@ -2554,8 +2629,8 @@ var TextArea = (props) => {
|
|
|
2554
2629
|
success: "focus-within:border-(--border-success) focus-within:hover:border-(--border-success) focus-within:shadow-[0_0_0_var(--focus-ring-spread)_var(--focus-success)]",
|
|
2555
2630
|
error: "focus-within:border-(--border-error) focus-within:hover:border-(--border-error) focus-within:shadow-[0_0_0_var(--focus-ring-spread)_var(--focus-error)]"
|
|
2556
2631
|
};
|
|
2557
|
-
const hintColorClass = disabled ? "text-
|
|
2558
|
-
const counterColorClass = disabled ? "text-
|
|
2632
|
+
const hintColorClass = disabled ? "text-primary-disabled" : status === "success" ? "text-(--color-success)" : status === "error" ? "text-(--color-error)" : "text-(--color-secondary)";
|
|
2633
|
+
const counterColorClass = disabled ? "text-primary-disabled" : status === "success" ? "text-(--color-success)" : status === "error" ? "text-(--color-error)" : "text-primary";
|
|
2559
2634
|
const handleResizePointerDown = (event) => {
|
|
2560
2635
|
if (disabled) return;
|
|
2561
2636
|
if (event.button !== 0) return;
|
|
@@ -2588,9 +2663,8 @@ var TextArea = (props) => {
|
|
|
2588
2663
|
id: labelId,
|
|
2589
2664
|
className: cn(
|
|
2590
2665
|
"paragraph-s",
|
|
2591
|
-
disabled ? "text-
|
|
2666
|
+
disabled ? "text-primary-disabled" : "text-primary"
|
|
2592
2667
|
),
|
|
2593
|
-
style: { marginBottom: 0 },
|
|
2594
2668
|
children: label
|
|
2595
2669
|
}
|
|
2596
2670
|
),
|
|
@@ -2628,10 +2702,9 @@ var TextArea = (props) => {
|
|
|
2628
2702
|
maxLength: effectiveMaxLength,
|
|
2629
2703
|
className: cn(
|
|
2630
2704
|
"paragraph-m bg-transparent outline-none w-full h-full resize-none px-2 py-2 pr-8",
|
|
2631
|
-
disabled ? "text-
|
|
2705
|
+
disabled ? "text-primary-disabled" : hasValue ? "text-primary" : "text-(--color-secondary)",
|
|
2632
2706
|
showCharacterLimit && "pr-16"
|
|
2633
2707
|
),
|
|
2634
|
-
style: { marginBottom: 0 },
|
|
2635
2708
|
...textareaProps
|
|
2636
2709
|
}
|
|
2637
2710
|
),
|
|
@@ -2674,7 +2747,6 @@ var TextArea = (props) => {
|
|
|
2674
2747
|
{
|
|
2675
2748
|
id: hint ? hintId : void 0,
|
|
2676
2749
|
className: cn("caption", hint ? hintColorClass : "invisible"),
|
|
2677
|
-
style: { marginBottom: 0 },
|
|
2678
2750
|
children: hint || "\xA0"
|
|
2679
2751
|
}
|
|
2680
2752
|
)
|
|
@@ -2718,6 +2790,7 @@ var TextInput = (props) => {
|
|
|
2718
2790
|
const {
|
|
2719
2791
|
label,
|
|
2720
2792
|
hint,
|
|
2793
|
+
hideHint,
|
|
2721
2794
|
placeholder = "Placeholder text",
|
|
2722
2795
|
size = "large",
|
|
2723
2796
|
status = "default",
|
|
@@ -2753,6 +2826,7 @@ var TextInput = (props) => {
|
|
|
2753
2826
|
{
|
|
2754
2827
|
label,
|
|
2755
2828
|
hint,
|
|
2829
|
+
hideHint,
|
|
2756
2830
|
status,
|
|
2757
2831
|
disabled,
|
|
2758
2832
|
children: /* @__PURE__ */ jsxs23(
|
|
@@ -2788,7 +2862,6 @@ var TextInput = (props) => {
|
|
|
2788
2862
|
inputTextVariants2({ size }),
|
|
2789
2863
|
"bg-transparent outline-none w-full"
|
|
2790
2864
|
),
|
|
2791
|
-
style: { marginBottom: 0 },
|
|
2792
2865
|
...inputProps
|
|
2793
2866
|
}
|
|
2794
2867
|
),
|
|
@@ -2888,10 +2961,9 @@ var Toggle = (props) => {
|
|
|
2888
2961
|
"span",
|
|
2889
2962
|
{
|
|
2890
2963
|
className: cn(
|
|
2891
|
-
"paragraph-s text-
|
|
2892
|
-
disabled && "text-
|
|
2964
|
+
"paragraph-s text-primary",
|
|
2965
|
+
disabled && "text-primary-disabled"
|
|
2893
2966
|
),
|
|
2894
|
-
style: { marginBottom: 0 },
|
|
2895
2967
|
children: label
|
|
2896
2968
|
}
|
|
2897
2969
|
)
|
|
@@ -2924,7 +2996,7 @@ var WebsiteInput = (props) => {
|
|
|
2924
2996
|
const addonTextClass = cn(
|
|
2925
2997
|
"flex mb-0!",
|
|
2926
2998
|
size === "extra-large" ? "paragraph-m" : "paragraph-s",
|
|
2927
|
-
disabled ? "text-
|
|
2999
|
+
disabled ? "text-primary-disabled" : "text-primary group-hover:text-(--color-primary-hover) group-focus-within:text-(--color-primary-focus)"
|
|
2928
3000
|
);
|
|
2929
3001
|
const baseAddonClass = cn(
|
|
2930
3002
|
"flex items-center gap-2 px-2 h-full",
|
|
@@ -2990,7 +3062,8 @@ var Popover2 = (props) => {
|
|
|
2990
3062
|
onOk?.();
|
|
2991
3063
|
setOpen(false);
|
|
2992
3064
|
};
|
|
2993
|
-
const popoverClasses = "bg-(--background-popover)
|
|
3065
|
+
const popoverClasses = "group bg-(--background-popover) popover w-80 max-w-[calc(100vw-2rem)] shadow-card-md border-none [&_span]:scale-240 rounded-4";
|
|
3066
|
+
const popoverArrowClasses = "relative fill-(--background-popover) transition-[filter,transform] group-data-[side=top]:top-[-2px] group-data-[side=top]:drop-shadow-[0px_2px_1px_var(--color-b-black-12)] group-data-[side=bottom]:drop-shadow-[0px_-1px_1px_color-mix(in_srgb,_var(--color-b-black-10)_66%,_transparent)] group-data-[side=left]:drop-shadow-[0px_2px_1px_var(--color-b-black-12)] group-data-[side=right]:drop-shadow-[0px_2px_1px_var(--color-b-black-12)]";
|
|
2994
3067
|
const mapPlacementToSideAndAlign = (placement2) => {
|
|
2995
3068
|
switch (placement2) {
|
|
2996
3069
|
case "top":
|
|
@@ -3021,19 +3094,6 @@ var Popover2 = (props) => {
|
|
|
3021
3094
|
return { side: "bottom", align: "center" };
|
|
3022
3095
|
}
|
|
3023
3096
|
};
|
|
3024
|
-
const arrowShadowClass = (side2) => {
|
|
3025
|
-
switch (side2) {
|
|
3026
|
-
case "top":
|
|
3027
|
-
return "drop-shadow(0px 2px 1px var(--color-b-black-12))";
|
|
3028
|
-
case "bottom":
|
|
3029
|
-
return "drop-shadow(0px -1px 1px color-mix(in srgb, var(--color-b-black-10) 66%, transparent))";
|
|
3030
|
-
case "left":
|
|
3031
|
-
case "right":
|
|
3032
|
-
return "drop-shadow(0px 2px 1px var(--color-b-black-12))";
|
|
3033
|
-
default:
|
|
3034
|
-
return "";
|
|
3035
|
-
}
|
|
3036
|
-
};
|
|
3037
3097
|
const { side, align } = mapPlacementToSideAndAlign(placement);
|
|
3038
3098
|
return /* @__PURE__ */ jsxs26(Popover, { open, onOpenChange: setOpen, children: [
|
|
3039
3099
|
/* @__PURE__ */ jsx36(PopoverTrigger, { asChild: true, children }),
|
|
@@ -3043,21 +3103,16 @@ var Popover2 = (props) => {
|
|
|
3043
3103
|
side,
|
|
3044
3104
|
align,
|
|
3045
3105
|
sideOffset: offset,
|
|
3046
|
-
className: cn(popoverClasses,
|
|
3106
|
+
className: cn(popoverClasses, className),
|
|
3047
3107
|
children: [
|
|
3048
|
-
showArrow && /* @__PURE__ */ jsx36(
|
|
3049
|
-
PopoverArrow,
|
|
3050
|
-
{
|
|
3051
|
-
style: { filter: arrowShadowClass(side) }
|
|
3052
|
-
}
|
|
3053
|
-
),
|
|
3108
|
+
showArrow && /* @__PURE__ */ jsx36(PopoverArrow, { className: popoverArrowClasses }),
|
|
3054
3109
|
/* @__PURE__ */ jsxs26("div", { className: "grid gap-4", children: [
|
|
3055
3110
|
/* @__PURE__ */ jsxs26("div", { className: "space-y-2", children: [
|
|
3056
|
-
/* @__PURE__ */ jsx36("span", { className: "caption text-secondary",
|
|
3057
|
-
/* @__PURE__ */ jsx36("h4", { className: "subtitle-medium text-primary",
|
|
3058
|
-
/* @__PURE__ */ jsx36("p", { className: "paragraph-s text-primary",
|
|
3111
|
+
/* @__PURE__ */ jsx36("span", { className: "caption text-secondary", children: strapline }),
|
|
3112
|
+
/* @__PURE__ */ jsx36("h4", { className: "subtitle-medium text-primary", children: title }),
|
|
3113
|
+
/* @__PURE__ */ jsx36("p", { className: "paragraph-s text-primary", children: description })
|
|
3059
3114
|
] }),
|
|
3060
|
-
/* @__PURE__ */ jsxs26("div", { className: "flex justify-start items-center gap-4", children: [
|
|
3115
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex justify-start items-center gap-4 flex-wrap", children: [
|
|
3061
3116
|
/* @__PURE__ */ jsx36(Button, { size: "sm", variant: "secondary", onClick: handleCancel, children: cancelText || "Cancel" }),
|
|
3062
3117
|
/* @__PURE__ */ jsx36(Button, { size: "sm", variant: "primary", onClick: handleOk, children: okText || "Ok" })
|
|
3063
3118
|
] })
|
|
@@ -3095,8 +3150,8 @@ var breadcrumbTextVariants = cva19(
|
|
|
3095
3150
|
{
|
|
3096
3151
|
variants: {
|
|
3097
3152
|
variant: {
|
|
3098
|
-
colored: "text-(--
|
|
3099
|
-
flat: "text-
|
|
3153
|
+
colored: "text-(--color-brand) group-hover:text-(--color-brand-hover) group-focus-visible:text-(--color-brand-focus) group-disabled:text-(--color-brand-disabled)",
|
|
3154
|
+
flat: "text-primary group-hover:text-(--color-primary-hover) group-focus-visible:text-(--color-primary-focus) group-disabled:text-primary-disabled"
|
|
3100
3155
|
}
|
|
3101
3156
|
},
|
|
3102
3157
|
defaultVariants: {
|
|
@@ -3227,7 +3282,7 @@ var logoTextSizeVariants = cva21("", {
|
|
|
3227
3282
|
}
|
|
3228
3283
|
});
|
|
3229
3284
|
var Logo = ({ className, textColor, variant = "inline" }) => {
|
|
3230
|
-
const textColorClass = textColor === "light" ? "text-(--color-b-white)" : textColor === "dark" ? "text-(--color-b-black)" : "text-
|
|
3285
|
+
const textColorClass = textColor === "light" ? "text-(--color-b-white)" : textColor === "dark" ? "text-(--color-b-black)" : "text-primary";
|
|
3231
3286
|
return /* @__PURE__ */ jsxs29("div", { className: cn(logoWrapperVariants({ variant }), className), children: [
|
|
3232
3287
|
/* @__PURE__ */ jsx39(LogoIconSvg2, { className: logoIconSizeVariants({ variant }) }),
|
|
3233
3288
|
/* @__PURE__ */ jsx39(LogoTextSvg, { className: cn(logoTextSizeVariants({ variant }), textColorClass) })
|