@refinn/core-ui 0.1.15 → 0.1.16
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 +110 -55
- package/dist/index.d.mts +17 -10
- package/dist/index.d.ts +17 -10
- package/dist/index.js +120 -66
- package/dist/theme.css +7 -7
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1049,70 +1049,107 @@ Checkbox.displayName = "Checkbox";
|
|
|
1049
1049
|
// src/components/Chip/Chip.tsx
|
|
1050
1050
|
var import_react10 = require("react");
|
|
1051
1051
|
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
1052
|
-
var
|
|
1053
|
-
sm: "h-32
|
|
1054
|
-
md: "h-40
|
|
1055
|
-
lg: "h-48
|
|
1052
|
+
var sizeBaseClasses = {
|
|
1053
|
+
sm: "min-h-32 min-w-56 gap-4 py-2 text-label-medium",
|
|
1054
|
+
md: "min-h-40 min-w-56 gap-8 py-4 text-label-large",
|
|
1055
|
+
lg: "min-h-48 min-w-96 gap-8 py-8 text-label-large"
|
|
1056
1056
|
};
|
|
1057
|
-
var
|
|
1058
|
-
sm: "-
|
|
1059
|
-
md: "-
|
|
1060
|
-
lg: "-
|
|
1057
|
+
var paddingXClasses = {
|
|
1058
|
+
sm: "px-12",
|
|
1059
|
+
md: "px-16",
|
|
1060
|
+
lg: "px-24"
|
|
1061
1061
|
};
|
|
1062
|
-
var
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
};
|
|
1066
|
-
var isDarkClasses = {
|
|
1067
|
-
true: "!bg-chip-background-black-active !text-chip-text-inverse",
|
|
1068
|
-
false: "!bg-chip-background-active !text-chip-text-inverse"
|
|
1062
|
+
var bankLogoPaddingXClasses = {
|
|
1063
|
+
md: "pl-4 pr-16",
|
|
1064
|
+
lg: "pl-8 pr-16"
|
|
1069
1065
|
};
|
|
1066
|
+
function toneClasses(selected, outline, variant) {
|
|
1067
|
+
if (selected) {
|
|
1068
|
+
return variant === "dark" ? "bg-chip-background-black-active text-chip-text-inverse hover:bg-chip-background-black-active-hover group-disabled:bg-chip-background-active-disabled group-disabled:text-chip-text-inverse-disabled" : "bg-chip-background-active text-chip-text-inverse hover:bg-chip-background-active-hover group-disabled:bg-chip-background-active-disabled group-disabled:text-chip-text-inverse-disabled";
|
|
1069
|
+
}
|
|
1070
|
+
if (outline) {
|
|
1071
|
+
return "bg-chip-background-inverse text-chip-text-enabled border border-chip-border-enabled hover:bg-chip-background-hover hover:border-chip-border-hover group-disabled:text-chip-text-disabled";
|
|
1072
|
+
}
|
|
1073
|
+
return "bg-chip-background-enabled text-chip-text-enabled hover:bg-chip-background-hover group-disabled:bg-chip-background-disabled group-disabled:text-chip-text-disabled";
|
|
1074
|
+
}
|
|
1070
1075
|
var Chip = (0, import_react10.forwardRef)(
|
|
1071
1076
|
(_a, ref) => {
|
|
1072
1077
|
var _b = _a, {
|
|
1073
1078
|
size = "md",
|
|
1074
|
-
src,
|
|
1075
|
-
alt = "",
|
|
1076
1079
|
label,
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1080
|
+
variant = "brand",
|
|
1081
|
+
outline = false,
|
|
1082
|
+
selected,
|
|
1083
|
+
defaultSelected = false,
|
|
1084
|
+
onSelectedChange,
|
|
1085
|
+
startIcon,
|
|
1086
|
+
endIcon,
|
|
1087
|
+
bankLogoSrc,
|
|
1088
|
+
bankLogoAlt = "",
|
|
1081
1089
|
disabled = false,
|
|
1090
|
+
onClick,
|
|
1082
1091
|
className = ""
|
|
1083
1092
|
} = _b, rest = __objRest(_b, [
|
|
1084
1093
|
"size",
|
|
1085
|
-
"src",
|
|
1086
|
-
"alt",
|
|
1087
1094
|
"label",
|
|
1088
|
-
"
|
|
1089
|
-
"
|
|
1090
|
-
"
|
|
1091
|
-
"
|
|
1095
|
+
"variant",
|
|
1096
|
+
"outline",
|
|
1097
|
+
"selected",
|
|
1098
|
+
"defaultSelected",
|
|
1099
|
+
"onSelectedChange",
|
|
1100
|
+
"startIcon",
|
|
1101
|
+
"endIcon",
|
|
1102
|
+
"bankLogoSrc",
|
|
1103
|
+
"bankLogoAlt",
|
|
1092
1104
|
"disabled",
|
|
1105
|
+
"onClick",
|
|
1093
1106
|
"className"
|
|
1094
1107
|
]);
|
|
1095
|
-
const
|
|
1096
|
-
const
|
|
1097
|
-
const
|
|
1098
|
-
const
|
|
1099
|
-
|
|
1108
|
+
const [uncontrolledSelected, setUncontrolledSelected] = (0, import_react10.useState)(defaultSelected);
|
|
1109
|
+
const isSelected = selected != null ? selected : uncontrolledSelected;
|
|
1110
|
+
const showBankLogo = Boolean(bankLogoSrc) && size !== "sm";
|
|
1111
|
+
const handleClick = (event) => {
|
|
1112
|
+
onClick == null ? void 0 : onClick(event);
|
|
1113
|
+
if (event.defaultPrevented) return;
|
|
1114
|
+
const next = !isSelected;
|
|
1115
|
+
if (selected === void 0) setUncontrolledSelected(next);
|
|
1116
|
+
onSelectedChange == null ? void 0 : onSelectedChange(next);
|
|
1117
|
+
};
|
|
1118
|
+
const wrapperClasses = [
|
|
1119
|
+
"group rounded-full border-2 border-transparent p-2 outline-none",
|
|
1120
|
+
"transition-colors",
|
|
1100
1121
|
disabled ? "cursor-not-allowed" : "cursor-pointer",
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
className,
|
|
1104
|
-
isSelected ? darkClass : ""
|
|
1122
|
+
"focus-visible:border-chip-border-focus",
|
|
1123
|
+
className
|
|
1105
1124
|
].filter(Boolean).join(" ");
|
|
1106
|
-
|
|
1107
|
-
"
|
|
1125
|
+
const baseClasses = [
|
|
1126
|
+
"flex items-center justify-center rounded-full transition-colors",
|
|
1127
|
+
sizeBaseClasses[size],
|
|
1128
|
+
showBankLogo ? bankLogoPaddingXClasses[size] : paddingXClasses[size],
|
|
1129
|
+
toneClasses(isSelected, outline && !isSelected, variant)
|
|
1130
|
+
].filter(Boolean).join(" ");
|
|
1131
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
1132
|
+
"button",
|
|
1108
1133
|
__spreadProps(__spreadValues({
|
|
1109
1134
|
ref,
|
|
1110
|
-
|
|
1135
|
+
type: "button",
|
|
1136
|
+
disabled,
|
|
1137
|
+
"aria-pressed": isSelected,
|
|
1138
|
+
onClick: handleClick,
|
|
1139
|
+
className: wrapperClasses
|
|
1111
1140
|
}, rest), {
|
|
1112
|
-
children: [
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1141
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("span", { className: baseClasses, children: [
|
|
1142
|
+
showBankLogo ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
1143
|
+
"img",
|
|
1144
|
+
{
|
|
1145
|
+
src: bankLogoSrc,
|
|
1146
|
+
alt: bankLogoAlt,
|
|
1147
|
+
className: "size-32 shrink-0 rounded-full object-contain"
|
|
1148
|
+
}
|
|
1149
|
+
) : startIcon,
|
|
1150
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: "min-w-0 truncate", children: label }),
|
|
1151
|
+
!showBankLogo && endIcon
|
|
1152
|
+
] })
|
|
1116
1153
|
})
|
|
1117
1154
|
);
|
|
1118
1155
|
}
|
|
@@ -2507,25 +2544,43 @@ Radio.displayName = "Radio";
|
|
|
2507
2544
|
// src/components/SegmentControl/SegmentControl.tsx
|
|
2508
2545
|
var import_react20 = require("react");
|
|
2509
2546
|
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
2547
|
+
var itemSizeClasses = {
|
|
2548
|
+
sm: "min-h-32 px-8 py-6 text-label-medium",
|
|
2549
|
+
md: "min-h-40 px-12 py-8 text-label-large",
|
|
2550
|
+
lg: "min-h-48 px-16 py-8 text-label-large"
|
|
2551
|
+
};
|
|
2510
2552
|
var SegmentControl = (0, import_react20.forwardRef)(
|
|
2511
2553
|
(_a, ref) => {
|
|
2512
|
-
var _b = _a, { size = "md", items, selected, setSelected, className = "" } = _b, rest = __objRest(_b, ["size", "items", "selected", "setSelected", "className"]);
|
|
2554
|
+
var _b = _a, { size = "md", items, selected, setSelected, onChange, className = "" } = _b, rest = __objRest(_b, ["size", "items", "selected", "setSelected", "onChange", "className"]);
|
|
2513
2555
|
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
2514
2556
|
"div",
|
|
2515
2557
|
__spreadProps(__spreadValues({
|
|
2516
2558
|
ref,
|
|
2517
|
-
className: `bg-background-tertiary rounded-full flex flex-row items-center
|
|
2559
|
+
className: `bg-background-tertiary rounded-full flex flex-row items-center p-4 gap-4 ${className}`
|
|
2518
2560
|
}, rest), {
|
|
2519
|
-
children: items.map((item) =>
|
|
2520
|
-
|
|
2521
|
-
|
|
2522
|
-
|
|
2523
|
-
|
|
2524
|
-
|
|
2525
|
-
|
|
2526
|
-
|
|
2527
|
-
|
|
2528
|
-
|
|
2561
|
+
children: items.map((item) => {
|
|
2562
|
+
const isSelected = selected === item.value;
|
|
2563
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
2564
|
+
"button",
|
|
2565
|
+
{
|
|
2566
|
+
type: "button",
|
|
2567
|
+
"aria-pressed": isSelected,
|
|
2568
|
+
onClick: () => {
|
|
2569
|
+
setSelected == null ? void 0 : setSelected(item.value);
|
|
2570
|
+
onChange == null ? void 0 : onChange(item.value);
|
|
2571
|
+
},
|
|
2572
|
+
className: "group flex-1 min-w-0 rounded-full border-2 border-transparent p-2 outline-none cursor-pointer transition-colors focus-visible:border-segmented-control-border-focus",
|
|
2573
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
2574
|
+
"span",
|
|
2575
|
+
{
|
|
2576
|
+
className: `flex w-full items-center justify-center rounded-full text-center transition-colors ${itemSizeClasses[size]} ${isSelected ? "bg-segmented-control-background-active text-segmented-control-text-inverse shadow-small group-focus-visible:bg-segmented-control-background-active-focus group-focus-visible:text-segmented-control-text-primary" : "text-segmented-control-text-primary hover:bg-segmented-control-background-hover"}`,
|
|
2577
|
+
children: item.label
|
|
2578
|
+
}
|
|
2579
|
+
)
|
|
2580
|
+
},
|
|
2581
|
+
item.value
|
|
2582
|
+
);
|
|
2583
|
+
})
|
|
2529
2584
|
})
|
|
2530
2585
|
);
|
|
2531
2586
|
}
|
package/dist/index.d.mts
CHANGED
|
@@ -92,18 +92,24 @@ interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "siz
|
|
|
92
92
|
declare const Checkbox: react.ForwardRefExoticComponent<CheckboxProps & react.RefAttributes<HTMLInputElement>>;
|
|
93
93
|
|
|
94
94
|
type ChipSize = "sm" | "md" | "lg";
|
|
95
|
-
|
|
95
|
+
type ChipVariant = "brand" | "dark";
|
|
96
|
+
interface ChipProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, "onChange"> {
|
|
96
97
|
size?: ChipSize;
|
|
97
|
-
src?: string;
|
|
98
|
-
alt?: string;
|
|
99
98
|
label: string;
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
99
|
+
/** Only affects the selected appearance — unselected chips look the same for both variants. */
|
|
100
|
+
variant?: ChipVariant;
|
|
101
|
+
/** Ignored while selected — selection always renders as a solid chip. */
|
|
102
|
+
outline?: boolean;
|
|
103
|
+
selected?: boolean;
|
|
104
|
+
defaultSelected?: boolean;
|
|
105
|
+
onSelectedChange?: (selected: boolean) => void;
|
|
106
|
+
startIcon?: ReactNode;
|
|
107
|
+
endIcon?: ReactNode;
|
|
108
|
+
/** Renders a circular financial-institution logo in place of startIcon. Not supported at size "sm". */
|
|
109
|
+
bankLogoSrc?: string;
|
|
110
|
+
bankLogoAlt?: string;
|
|
105
111
|
}
|
|
106
|
-
declare const Chip: react.ForwardRefExoticComponent<ChipProps & react.RefAttributes<
|
|
112
|
+
declare const Chip: react.ForwardRefExoticComponent<ChipProps & react.RefAttributes<HTMLButtonElement>>;
|
|
107
113
|
|
|
108
114
|
type TextFieldSize = "md" | "lg";
|
|
109
115
|
interface TextFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "size" | "prefix"> {
|
|
@@ -270,7 +276,7 @@ interface RadioProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "size"
|
|
|
270
276
|
declare const Radio: react.ForwardRefExoticComponent<RadioProps & react.RefAttributes<HTMLInputElement>>;
|
|
271
277
|
|
|
272
278
|
type SegmentControlSize = "sm" | "md" | "lg";
|
|
273
|
-
interface SegmentControlProps extends HTMLAttributes<HTMLDivElement> {
|
|
279
|
+
interface SegmentControlProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange"> {
|
|
274
280
|
size?: SegmentControlSize;
|
|
275
281
|
items: {
|
|
276
282
|
label: string;
|
|
@@ -278,6 +284,7 @@ interface SegmentControlProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
278
284
|
}[];
|
|
279
285
|
selected: string;
|
|
280
286
|
setSelected?: (value: string) => void;
|
|
287
|
+
onChange?: (value: string) => void;
|
|
281
288
|
}
|
|
282
289
|
declare const SegmentControl: react.ForwardRefExoticComponent<SegmentControlProps & react.RefAttributes<HTMLDivElement>>;
|
|
283
290
|
|
package/dist/index.d.ts
CHANGED
|
@@ -92,18 +92,24 @@ interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "siz
|
|
|
92
92
|
declare const Checkbox: react.ForwardRefExoticComponent<CheckboxProps & react.RefAttributes<HTMLInputElement>>;
|
|
93
93
|
|
|
94
94
|
type ChipSize = "sm" | "md" | "lg";
|
|
95
|
-
|
|
95
|
+
type ChipVariant = "brand" | "dark";
|
|
96
|
+
interface ChipProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, "onChange"> {
|
|
96
97
|
size?: ChipSize;
|
|
97
|
-
src?: string;
|
|
98
|
-
alt?: string;
|
|
99
98
|
label: string;
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
99
|
+
/** Only affects the selected appearance — unselected chips look the same for both variants. */
|
|
100
|
+
variant?: ChipVariant;
|
|
101
|
+
/** Ignored while selected — selection always renders as a solid chip. */
|
|
102
|
+
outline?: boolean;
|
|
103
|
+
selected?: boolean;
|
|
104
|
+
defaultSelected?: boolean;
|
|
105
|
+
onSelectedChange?: (selected: boolean) => void;
|
|
106
|
+
startIcon?: ReactNode;
|
|
107
|
+
endIcon?: ReactNode;
|
|
108
|
+
/** Renders a circular financial-institution logo in place of startIcon. Not supported at size "sm". */
|
|
109
|
+
bankLogoSrc?: string;
|
|
110
|
+
bankLogoAlt?: string;
|
|
105
111
|
}
|
|
106
|
-
declare const Chip: react.ForwardRefExoticComponent<ChipProps & react.RefAttributes<
|
|
112
|
+
declare const Chip: react.ForwardRefExoticComponent<ChipProps & react.RefAttributes<HTMLButtonElement>>;
|
|
107
113
|
|
|
108
114
|
type TextFieldSize = "md" | "lg";
|
|
109
115
|
interface TextFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "size" | "prefix"> {
|
|
@@ -270,7 +276,7 @@ interface RadioProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "size"
|
|
|
270
276
|
declare const Radio: react.ForwardRefExoticComponent<RadioProps & react.RefAttributes<HTMLInputElement>>;
|
|
271
277
|
|
|
272
278
|
type SegmentControlSize = "sm" | "md" | "lg";
|
|
273
|
-
interface SegmentControlProps extends HTMLAttributes<HTMLDivElement> {
|
|
279
|
+
interface SegmentControlProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange"> {
|
|
274
280
|
size?: SegmentControlSize;
|
|
275
281
|
items: {
|
|
276
282
|
label: string;
|
|
@@ -278,6 +284,7 @@ interface SegmentControlProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
278
284
|
}[];
|
|
279
285
|
selected: string;
|
|
280
286
|
setSelected?: (value: string) => void;
|
|
287
|
+
onChange?: (value: string) => void;
|
|
281
288
|
}
|
|
282
289
|
declare const SegmentControl: react.ForwardRefExoticComponent<SegmentControlProps & react.RefAttributes<HTMLDivElement>>;
|
|
283
290
|
|
package/dist/index.js
CHANGED
|
@@ -1011,73 +1011,111 @@ Checkbox.displayName = "Checkbox";
|
|
|
1011
1011
|
|
|
1012
1012
|
// src/components/Chip/Chip.tsx
|
|
1013
1013
|
import {
|
|
1014
|
-
forwardRef as forwardRef10
|
|
1014
|
+
forwardRef as forwardRef10,
|
|
1015
|
+
useState as useState3
|
|
1015
1016
|
} from "react";
|
|
1016
1017
|
import { jsx as jsx10, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
1017
|
-
var
|
|
1018
|
-
sm: "h-32
|
|
1019
|
-
md: "h-40
|
|
1020
|
-
lg: "h-48
|
|
1018
|
+
var sizeBaseClasses = {
|
|
1019
|
+
sm: "min-h-32 min-w-56 gap-4 py-2 text-label-medium",
|
|
1020
|
+
md: "min-h-40 min-w-56 gap-8 py-4 text-label-large",
|
|
1021
|
+
lg: "min-h-48 min-w-96 gap-8 py-8 text-label-large"
|
|
1021
1022
|
};
|
|
1022
|
-
var
|
|
1023
|
-
sm: "-
|
|
1024
|
-
md: "-
|
|
1025
|
-
lg: "-
|
|
1023
|
+
var paddingXClasses = {
|
|
1024
|
+
sm: "px-12",
|
|
1025
|
+
md: "px-16",
|
|
1026
|
+
lg: "px-24"
|
|
1026
1027
|
};
|
|
1027
|
-
var
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
};
|
|
1031
|
-
var isDarkClasses = {
|
|
1032
|
-
true: "!bg-chip-background-black-active !text-chip-text-inverse",
|
|
1033
|
-
false: "!bg-chip-background-active !text-chip-text-inverse"
|
|
1028
|
+
var bankLogoPaddingXClasses = {
|
|
1029
|
+
md: "pl-4 pr-16",
|
|
1030
|
+
lg: "pl-8 pr-16"
|
|
1034
1031
|
};
|
|
1032
|
+
function toneClasses(selected, outline, variant) {
|
|
1033
|
+
if (selected) {
|
|
1034
|
+
return variant === "dark" ? "bg-chip-background-black-active text-chip-text-inverse hover:bg-chip-background-black-active-hover group-disabled:bg-chip-background-active-disabled group-disabled:text-chip-text-inverse-disabled" : "bg-chip-background-active text-chip-text-inverse hover:bg-chip-background-active-hover group-disabled:bg-chip-background-active-disabled group-disabled:text-chip-text-inverse-disabled";
|
|
1035
|
+
}
|
|
1036
|
+
if (outline) {
|
|
1037
|
+
return "bg-chip-background-inverse text-chip-text-enabled border border-chip-border-enabled hover:bg-chip-background-hover hover:border-chip-border-hover group-disabled:text-chip-text-disabled";
|
|
1038
|
+
}
|
|
1039
|
+
return "bg-chip-background-enabled text-chip-text-enabled hover:bg-chip-background-hover group-disabled:bg-chip-background-disabled group-disabled:text-chip-text-disabled";
|
|
1040
|
+
}
|
|
1035
1041
|
var Chip = forwardRef10(
|
|
1036
1042
|
(_a, ref) => {
|
|
1037
1043
|
var _b = _a, {
|
|
1038
1044
|
size = "md",
|
|
1039
|
-
src,
|
|
1040
|
-
alt = "",
|
|
1041
1045
|
label,
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
+
variant = "brand",
|
|
1047
|
+
outline = false,
|
|
1048
|
+
selected,
|
|
1049
|
+
defaultSelected = false,
|
|
1050
|
+
onSelectedChange,
|
|
1051
|
+
startIcon,
|
|
1052
|
+
endIcon,
|
|
1053
|
+
bankLogoSrc,
|
|
1054
|
+
bankLogoAlt = "",
|
|
1046
1055
|
disabled = false,
|
|
1056
|
+
onClick,
|
|
1047
1057
|
className = ""
|
|
1048
1058
|
} = _b, rest = __objRest(_b, [
|
|
1049
1059
|
"size",
|
|
1050
|
-
"src",
|
|
1051
|
-
"alt",
|
|
1052
1060
|
"label",
|
|
1053
|
-
"
|
|
1054
|
-
"
|
|
1055
|
-
"
|
|
1056
|
-
"
|
|
1061
|
+
"variant",
|
|
1062
|
+
"outline",
|
|
1063
|
+
"selected",
|
|
1064
|
+
"defaultSelected",
|
|
1065
|
+
"onSelectedChange",
|
|
1066
|
+
"startIcon",
|
|
1067
|
+
"endIcon",
|
|
1068
|
+
"bankLogoSrc",
|
|
1069
|
+
"bankLogoAlt",
|
|
1057
1070
|
"disabled",
|
|
1071
|
+
"onClick",
|
|
1058
1072
|
"className"
|
|
1059
1073
|
]);
|
|
1060
|
-
const
|
|
1061
|
-
const
|
|
1062
|
-
const
|
|
1063
|
-
const
|
|
1064
|
-
|
|
1074
|
+
const [uncontrolledSelected, setUncontrolledSelected] = useState3(defaultSelected);
|
|
1075
|
+
const isSelected = selected != null ? selected : uncontrolledSelected;
|
|
1076
|
+
const showBankLogo = Boolean(bankLogoSrc) && size !== "sm";
|
|
1077
|
+
const handleClick = (event) => {
|
|
1078
|
+
onClick == null ? void 0 : onClick(event);
|
|
1079
|
+
if (event.defaultPrevented) return;
|
|
1080
|
+
const next = !isSelected;
|
|
1081
|
+
if (selected === void 0) setUncontrolledSelected(next);
|
|
1082
|
+
onSelectedChange == null ? void 0 : onSelectedChange(next);
|
|
1083
|
+
};
|
|
1084
|
+
const wrapperClasses = [
|
|
1085
|
+
"group rounded-full border-2 border-transparent p-2 outline-none",
|
|
1086
|
+
"transition-colors",
|
|
1065
1087
|
disabled ? "cursor-not-allowed" : "cursor-pointer",
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
className,
|
|
1069
|
-
isSelected ? darkClass : ""
|
|
1088
|
+
"focus-visible:border-chip-border-focus",
|
|
1089
|
+
className
|
|
1070
1090
|
].filter(Boolean).join(" ");
|
|
1071
|
-
|
|
1072
|
-
"
|
|
1091
|
+
const baseClasses = [
|
|
1092
|
+
"flex items-center justify-center rounded-full transition-colors",
|
|
1093
|
+
sizeBaseClasses[size],
|
|
1094
|
+
showBankLogo ? bankLogoPaddingXClasses[size] : paddingXClasses[size],
|
|
1095
|
+
toneClasses(isSelected, outline && !isSelected, variant)
|
|
1096
|
+
].filter(Boolean).join(" ");
|
|
1097
|
+
return /* @__PURE__ */ jsx10(
|
|
1098
|
+
"button",
|
|
1073
1099
|
__spreadProps(__spreadValues({
|
|
1074
1100
|
ref,
|
|
1075
|
-
|
|
1101
|
+
type: "button",
|
|
1102
|
+
disabled,
|
|
1103
|
+
"aria-pressed": isSelected,
|
|
1104
|
+
onClick: handleClick,
|
|
1105
|
+
className: wrapperClasses
|
|
1076
1106
|
}, rest), {
|
|
1077
|
-
children: [
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1107
|
+
children: /* @__PURE__ */ jsxs9("span", { className: baseClasses, children: [
|
|
1108
|
+
showBankLogo ? /* @__PURE__ */ jsx10(
|
|
1109
|
+
"img",
|
|
1110
|
+
{
|
|
1111
|
+
src: bankLogoSrc,
|
|
1112
|
+
alt: bankLogoAlt,
|
|
1113
|
+
className: "size-32 shrink-0 rounded-full object-contain"
|
|
1114
|
+
}
|
|
1115
|
+
) : startIcon,
|
|
1116
|
+
/* @__PURE__ */ jsx10("span", { className: "min-w-0 truncate", children: label }),
|
|
1117
|
+
!showBankLogo && endIcon
|
|
1118
|
+
] })
|
|
1081
1119
|
})
|
|
1082
1120
|
);
|
|
1083
1121
|
}
|
|
@@ -2499,29 +2537,45 @@ var Radio = forwardRef19(
|
|
|
2499
2537
|
Radio.displayName = "Radio";
|
|
2500
2538
|
|
|
2501
2539
|
// src/components/SegmentControl/SegmentControl.tsx
|
|
2502
|
-
import {
|
|
2503
|
-
forwardRef as forwardRef20
|
|
2504
|
-
} from "react";
|
|
2540
|
+
import { forwardRef as forwardRef20 } from "react";
|
|
2505
2541
|
import { jsx as jsx20 } from "react/jsx-runtime";
|
|
2542
|
+
var itemSizeClasses = {
|
|
2543
|
+
sm: "min-h-32 px-8 py-6 text-label-medium",
|
|
2544
|
+
md: "min-h-40 px-12 py-8 text-label-large",
|
|
2545
|
+
lg: "min-h-48 px-16 py-8 text-label-large"
|
|
2546
|
+
};
|
|
2506
2547
|
var SegmentControl = forwardRef20(
|
|
2507
2548
|
(_a, ref) => {
|
|
2508
|
-
var _b = _a, { size = "md", items, selected, setSelected, className = "" } = _b, rest = __objRest(_b, ["size", "items", "selected", "setSelected", "className"]);
|
|
2549
|
+
var _b = _a, { size = "md", items, selected, setSelected, onChange, className = "" } = _b, rest = __objRest(_b, ["size", "items", "selected", "setSelected", "onChange", "className"]);
|
|
2509
2550
|
return /* @__PURE__ */ jsx20(
|
|
2510
2551
|
"div",
|
|
2511
2552
|
__spreadProps(__spreadValues({
|
|
2512
2553
|
ref,
|
|
2513
|
-
className: `bg-background-tertiary rounded-full flex flex-row items-center
|
|
2554
|
+
className: `bg-background-tertiary rounded-full flex flex-row items-center p-4 gap-4 ${className}`
|
|
2514
2555
|
}, rest), {
|
|
2515
|
-
children: items.map((item) =>
|
|
2516
|
-
|
|
2517
|
-
|
|
2518
|
-
|
|
2519
|
-
|
|
2520
|
-
|
|
2521
|
-
|
|
2522
|
-
|
|
2523
|
-
|
|
2524
|
-
|
|
2556
|
+
children: items.map((item) => {
|
|
2557
|
+
const isSelected = selected === item.value;
|
|
2558
|
+
return /* @__PURE__ */ jsx20(
|
|
2559
|
+
"button",
|
|
2560
|
+
{
|
|
2561
|
+
type: "button",
|
|
2562
|
+
"aria-pressed": isSelected,
|
|
2563
|
+
onClick: () => {
|
|
2564
|
+
setSelected == null ? void 0 : setSelected(item.value);
|
|
2565
|
+
onChange == null ? void 0 : onChange(item.value);
|
|
2566
|
+
},
|
|
2567
|
+
className: "group flex-1 min-w-0 rounded-full border-2 border-transparent p-2 outline-none cursor-pointer transition-colors focus-visible:border-segmented-control-border-focus",
|
|
2568
|
+
children: /* @__PURE__ */ jsx20(
|
|
2569
|
+
"span",
|
|
2570
|
+
{
|
|
2571
|
+
className: `flex w-full items-center justify-center rounded-full text-center transition-colors ${itemSizeClasses[size]} ${isSelected ? "bg-segmented-control-background-active text-segmented-control-text-inverse shadow-small group-focus-visible:bg-segmented-control-background-active-focus group-focus-visible:text-segmented-control-text-primary" : "text-segmented-control-text-primary hover:bg-segmented-control-background-hover"}`,
|
|
2572
|
+
children: item.label
|
|
2573
|
+
}
|
|
2574
|
+
)
|
|
2575
|
+
},
|
|
2576
|
+
item.value
|
|
2577
|
+
);
|
|
2578
|
+
})
|
|
2525
2579
|
})
|
|
2526
2580
|
);
|
|
2527
2581
|
}
|
|
@@ -2533,7 +2587,7 @@ import {
|
|
|
2533
2587
|
forwardRef as forwardRef21,
|
|
2534
2588
|
useCallback as useCallback2,
|
|
2535
2589
|
useId as useId5,
|
|
2536
|
-
useState as
|
|
2590
|
+
useState as useState9
|
|
2537
2591
|
} from "react";
|
|
2538
2592
|
import { jsx as jsx21, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
2539
2593
|
var sizeConfig = {
|
|
@@ -2641,7 +2695,7 @@ var Slider = forwardRef21(
|
|
|
2641
2695
|
const ariaLabel = ariaLabelProp != null ? ariaLabelProp : typeof label === "string" ? void 0 : "Slider";
|
|
2642
2696
|
const ariaDescriptionId = description ? `${inputId}-description` : void 0;
|
|
2643
2697
|
const isControlled = controlledValue !== void 0;
|
|
2644
|
-
const [internalValue, setInternalValue] =
|
|
2698
|
+
const [internalValue, setInternalValue] = useState9(defaultValue != null ? defaultValue : min);
|
|
2645
2699
|
const currentValue = isControlled ? controlledValue : internalValue;
|
|
2646
2700
|
const handleChange = useCallback2(
|
|
2647
2701
|
(e) => {
|
|
@@ -2812,7 +2866,7 @@ Tab.displayName = "Tab";
|
|
|
2812
2866
|
|
|
2813
2867
|
// src/components/TextArea/TextArea.tsx
|
|
2814
2868
|
import {
|
|
2815
|
-
useState as
|
|
2869
|
+
useState as useState10,
|
|
2816
2870
|
forwardRef as forwardRef23
|
|
2817
2871
|
} from "react";
|
|
2818
2872
|
import { Fragment as Fragment5, jsx as jsx23, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
@@ -2856,7 +2910,7 @@ var TextArea = forwardRef23(
|
|
|
2856
2910
|
"className"
|
|
2857
2911
|
]);
|
|
2858
2912
|
var _a2;
|
|
2859
|
-
const [isFocused, setIsFocused] =
|
|
2913
|
+
const [isFocused, setIsFocused] = useState10(false);
|
|
2860
2914
|
const isActive = isFocused && !!value;
|
|
2861
2915
|
return /* @__PURE__ */ jsxs18("div", { className: "w-full flex flex-col gap-4 font-sans", children: [
|
|
2862
2916
|
label || showCounter ? /* @__PURE__ */ jsxs18("div", { className: "w-full flex justify-between items-center gap-8", children: [
|
|
@@ -3134,7 +3188,7 @@ ToggleSwitch.displayName = "ToggleSwitch";
|
|
|
3134
3188
|
|
|
3135
3189
|
// src/components/Tooltip/Tooltip.tsx
|
|
3136
3190
|
import {
|
|
3137
|
-
useState as
|
|
3191
|
+
useState as useState11,
|
|
3138
3192
|
useEffect as useEffect5,
|
|
3139
3193
|
useRef as useRef4,
|
|
3140
3194
|
forwardRef as forwardRef26
|
|
@@ -3158,8 +3212,8 @@ var Tooltip = forwardRef26(
|
|
|
3158
3212
|
"className"
|
|
3159
3213
|
]);
|
|
3160
3214
|
const wrapperRef = useRef4(null);
|
|
3161
|
-
const [isVisible, setIsVisible] =
|
|
3162
|
-
const [isHovered, setIsHovered] =
|
|
3215
|
+
const [isVisible, setIsVisible] = useState11(false);
|
|
3216
|
+
const [isHovered, setIsHovered] = useState11(false);
|
|
3163
3217
|
useEffect5(() => {
|
|
3164
3218
|
const handleClickOutside = (event) => {
|
|
3165
3219
|
if (wrapperRef.current && !wrapperRef.current.contains(event.target)) {
|
package/dist/theme.css
CHANGED
|
@@ -401,8 +401,8 @@
|
|
|
401
401
|
--color-button-background-primary-hover: var(--color-blue-700);
|
|
402
402
|
--color-button-background-primary-active: var(--color-blue-800);
|
|
403
403
|
--color-button-background-primary-focus: var(--color-blue-600);
|
|
404
|
-
--color-button-background-primary-disabled: var(--color-blue-600
|
|
405
|
-
--color-button-background-primary-pending: var(--color-blue-600
|
|
404
|
+
--color-button-background-primary-disabled: color-mix(in oklab, var(--color-blue-600) 40%, transparent);
|
|
405
|
+
--color-button-background-primary-pending: color-mix(in oklab, var(--color-blue-600) 40%, transparent);
|
|
406
406
|
--color-button-background-secondary-enabled: var(--color-gray-100);
|
|
407
407
|
--color-button-background-secondary-hover: var(--color-gray-200);
|
|
408
408
|
--color-button-background-secondary-active: var(--color-gray-300);
|
|
@@ -433,7 +433,7 @@
|
|
|
433
433
|
--color-button-text-brand: var(--color-blue-600);
|
|
434
434
|
--color-button-text-inverse: var(--color-white-100);
|
|
435
435
|
--color-button-text-inverse-disabled: var(--color-white-40);
|
|
436
|
-
--color-button-text-brand-pending: var(--color-blue-600
|
|
436
|
+
--color-button-text-brand-pending: color-mix(in oklab, var(--color-blue-600) 40%, transparent);
|
|
437
437
|
--color-button-border-focus: var(--color-blue-500);
|
|
438
438
|
--color-button-border-inverse: var(--color-white-100);
|
|
439
439
|
--color-accordion-background-enabled: var(--color-white-100);
|
|
@@ -472,7 +472,7 @@
|
|
|
472
472
|
--color-icon-button-icon-disabled: var(--color-gray-400);
|
|
473
473
|
--color-icon-button-icon-inverse-disabled: var(--color-white-40);
|
|
474
474
|
--color-icon-button-icon-brand: var(--color-blue-600);
|
|
475
|
-
--color-icon-button-icon-brand-disabled: var(--color-blue-600
|
|
475
|
+
--color-icon-button-icon-brand-disabled: color-mix(in oklab, var(--color-blue-600) 40%, transparent);
|
|
476
476
|
--color-icon-button-icon-danger: var(--color-red-500);
|
|
477
477
|
--color-icon-button-icon-inverse-danger: var(--color-red-400);
|
|
478
478
|
--color-icon-button-border-focus: var(--color-blue-500);
|
|
@@ -482,7 +482,7 @@
|
|
|
482
482
|
--color-toggle-switch-background-focus: var(--color-gray-200);
|
|
483
483
|
--color-toggle-switch-background-disabled: var(--color-gray-100);
|
|
484
484
|
--color-toggle-switch-background-active-hover: var(--color-green-700);
|
|
485
|
-
--color-toggle-switch-background-active-disabled: var(--color-green-600
|
|
485
|
+
--color-toggle-switch-background-active-disabled: color-mix(in oklab, var(--color-green-600) 40%, transparent);
|
|
486
486
|
--color-toggle-switch-background-toggle: var(--color-white-100);
|
|
487
487
|
--color-toggle-switch-background-active-focus: var(--color-green-600);
|
|
488
488
|
--color-toggle-switch-text-primary: var(--color-gray-900);
|
|
@@ -686,7 +686,7 @@
|
|
|
686
686
|
--color-chip-background-inverse: var(--color-white-100);
|
|
687
687
|
--color-chip-background-black-active: var(--color-blue-950);
|
|
688
688
|
--color-chip-background-black-active-hover: var(--color-blue-900);
|
|
689
|
-
--color-chip-background-active-disabled: var(--color-blue-600
|
|
689
|
+
--color-chip-background-active-disabled: color-mix(in oklab, var(--color-blue-600) 40%, transparent);
|
|
690
690
|
--color-chip-text-disabled: var(--color-gray-400);
|
|
691
691
|
--color-chip-text-inverse-disabled: var(--color-white-65);
|
|
692
692
|
--color-chip-text-inverse: var(--color-white-100);
|
|
@@ -725,7 +725,7 @@
|
|
|
725
725
|
* ======================================== */
|
|
726
726
|
--color-background-primary: var(--color-white-100);
|
|
727
727
|
--color-background-tertiary: var(--color-gray-100);
|
|
728
|
-
--color-background-overlay: var(--color-gray-900
|
|
728
|
+
--color-background-overlay: color-mix(in oklab, var(--color-gray-900) 50%, transparent);
|
|
729
729
|
--color-background-disabled: var(--color-gray-100);
|
|
730
730
|
--color-background-secondary: var(--color-gray-50);
|
|
731
731
|
--color-background-inverse: var(--color-gray-900);
|