@rehagro/ui 1.0.5 → 1.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +18 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.js +157 -126
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +158 -127
- package/dist/index.mjs.map +1 -1
- package/dist/native.d.mts +4 -0
- package/dist/native.d.ts +4 -0
- package/dist/native.js +35 -3
- package/dist/native.js.map +1 -1
- package/dist/native.mjs +36 -4
- package/dist/native.mjs.map +1 -1
- package/dist/styles.css +2 -2
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -130,6 +130,14 @@ declare function RehagroProvider({ theme, toastPosition, children }: RehagroProv
|
|
|
130
130
|
type ButtonVariant = "solid" | "outline" | "ghost";
|
|
131
131
|
type ButtonSize = "sm" | "md" | "lg";
|
|
132
132
|
type ButtonRadius = "none" | "xxs" | "xs" | "sm" | "md" | "lg" | "xl" | "full";
|
|
133
|
+
type ButtonHoverStyle = {
|
|
134
|
+
/** Background color on hover */
|
|
135
|
+
backgroundColor?: string;
|
|
136
|
+
/** Border color on hover */
|
|
137
|
+
borderColor?: string;
|
|
138
|
+
/** Text color on hover */
|
|
139
|
+
color?: string;
|
|
140
|
+
};
|
|
133
141
|
type ButtonProps = React$1.ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
134
142
|
/** Visual style variant */
|
|
135
143
|
variant?: ButtonVariant;
|
|
@@ -141,6 +149,8 @@ type ButtonProps = React$1.ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
|
141
149
|
color?: ButtonColor;
|
|
142
150
|
/** Custom hover color — overrides the token for this button only. Only applies to preset colors. Accepts "#RRGGBB", "r g b", or "rgb(r,g,b)" */
|
|
143
151
|
hoverColor?: string;
|
|
152
|
+
/** Custom hover styles - allows full control over hover appearance */
|
|
153
|
+
hoverStyle?: ButtonHoverStyle;
|
|
144
154
|
/** Shows loading state and disables interaction */
|
|
145
155
|
loading?: boolean;
|
|
146
156
|
/** Icon rendered to the left of children (hidden when loading) */
|
|
@@ -159,6 +169,8 @@ declare const Button: React$1.ForwardRefExoticComponent<React$1.ButtonHTMLAttrib
|
|
|
159
169
|
color?: ButtonColor;
|
|
160
170
|
/** Custom hover color — overrides the token for this button only. Only applies to preset colors. Accepts "#RRGGBB", "r g b", or "rgb(r,g,b)" */
|
|
161
171
|
hoverColor?: string;
|
|
172
|
+
/** Custom hover styles - allows full control over hover appearance */
|
|
173
|
+
hoverStyle?: ButtonHoverStyle;
|
|
162
174
|
/** Shows loading state and disables interaction */
|
|
163
175
|
loading?: boolean;
|
|
164
176
|
/** Icon rendered to the left of children (hidden when loading) */
|
|
@@ -362,6 +374,8 @@ type AvatarProps = Omit<React$1.HTMLAttributes<HTMLDivElement>, "children"> & {
|
|
|
362
374
|
size?: AvatarSize;
|
|
363
375
|
/** Shape variant */
|
|
364
376
|
variant?: AvatarVariant;
|
|
377
|
+
/** Generate background and text color automatically based on name/alt */
|
|
378
|
+
colorFromName?: boolean;
|
|
365
379
|
};
|
|
366
380
|
declare const Avatar: React$1.ForwardRefExoticComponent<Omit<React$1.HTMLAttributes<HTMLDivElement>, "children"> & {
|
|
367
381
|
/** Image source URL */
|
|
@@ -374,6 +388,8 @@ declare const Avatar: React$1.ForwardRefExoticComponent<Omit<React$1.HTMLAttribu
|
|
|
374
388
|
size?: AvatarSize;
|
|
375
389
|
/** Shape variant */
|
|
376
390
|
variant?: AvatarVariant;
|
|
391
|
+
/** Generate background and text color automatically based on name/alt */
|
|
392
|
+
colorFromName?: boolean;
|
|
377
393
|
} & React$1.RefAttributes<HTMLDivElement>>;
|
|
378
394
|
|
|
379
395
|
type TagSize = "sm" | "md" | "lg";
|
|
@@ -540,6 +556,8 @@ type TableProps<T> = Omit<React$1.HTMLAttributes<HTMLTableElement>, "children">
|
|
|
540
556
|
loadingContent?: React$1.ReactNode;
|
|
541
557
|
/** Whether the table has sticky header */
|
|
542
558
|
stickyHeader?: boolean;
|
|
559
|
+
/** Custom header row style */
|
|
560
|
+
headerStyle?: React$1.CSSProperties;
|
|
543
561
|
};
|
|
544
562
|
declare const Table: <T>(props: TableProps<T> & {
|
|
545
563
|
ref?: React$1.ForwardedRef<HTMLTableElement>;
|
package/dist/index.d.ts
CHANGED
|
@@ -130,6 +130,14 @@ declare function RehagroProvider({ theme, toastPosition, children }: RehagroProv
|
|
|
130
130
|
type ButtonVariant = "solid" | "outline" | "ghost";
|
|
131
131
|
type ButtonSize = "sm" | "md" | "lg";
|
|
132
132
|
type ButtonRadius = "none" | "xxs" | "xs" | "sm" | "md" | "lg" | "xl" | "full";
|
|
133
|
+
type ButtonHoverStyle = {
|
|
134
|
+
/** Background color on hover */
|
|
135
|
+
backgroundColor?: string;
|
|
136
|
+
/** Border color on hover */
|
|
137
|
+
borderColor?: string;
|
|
138
|
+
/** Text color on hover */
|
|
139
|
+
color?: string;
|
|
140
|
+
};
|
|
133
141
|
type ButtonProps = React$1.ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
134
142
|
/** Visual style variant */
|
|
135
143
|
variant?: ButtonVariant;
|
|
@@ -141,6 +149,8 @@ type ButtonProps = React$1.ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
|
141
149
|
color?: ButtonColor;
|
|
142
150
|
/** Custom hover color — overrides the token for this button only. Only applies to preset colors. Accepts "#RRGGBB", "r g b", or "rgb(r,g,b)" */
|
|
143
151
|
hoverColor?: string;
|
|
152
|
+
/** Custom hover styles - allows full control over hover appearance */
|
|
153
|
+
hoverStyle?: ButtonHoverStyle;
|
|
144
154
|
/** Shows loading state and disables interaction */
|
|
145
155
|
loading?: boolean;
|
|
146
156
|
/** Icon rendered to the left of children (hidden when loading) */
|
|
@@ -159,6 +169,8 @@ declare const Button: React$1.ForwardRefExoticComponent<React$1.ButtonHTMLAttrib
|
|
|
159
169
|
color?: ButtonColor;
|
|
160
170
|
/** Custom hover color — overrides the token for this button only. Only applies to preset colors. Accepts "#RRGGBB", "r g b", or "rgb(r,g,b)" */
|
|
161
171
|
hoverColor?: string;
|
|
172
|
+
/** Custom hover styles - allows full control over hover appearance */
|
|
173
|
+
hoverStyle?: ButtonHoverStyle;
|
|
162
174
|
/** Shows loading state and disables interaction */
|
|
163
175
|
loading?: boolean;
|
|
164
176
|
/** Icon rendered to the left of children (hidden when loading) */
|
|
@@ -362,6 +374,8 @@ type AvatarProps = Omit<React$1.HTMLAttributes<HTMLDivElement>, "children"> & {
|
|
|
362
374
|
size?: AvatarSize;
|
|
363
375
|
/** Shape variant */
|
|
364
376
|
variant?: AvatarVariant;
|
|
377
|
+
/** Generate background and text color automatically based on name/alt */
|
|
378
|
+
colorFromName?: boolean;
|
|
365
379
|
};
|
|
366
380
|
declare const Avatar: React$1.ForwardRefExoticComponent<Omit<React$1.HTMLAttributes<HTMLDivElement>, "children"> & {
|
|
367
381
|
/** Image source URL */
|
|
@@ -374,6 +388,8 @@ declare const Avatar: React$1.ForwardRefExoticComponent<Omit<React$1.HTMLAttribu
|
|
|
374
388
|
size?: AvatarSize;
|
|
375
389
|
/** Shape variant */
|
|
376
390
|
variant?: AvatarVariant;
|
|
391
|
+
/** Generate background and text color automatically based on name/alt */
|
|
392
|
+
colorFromName?: boolean;
|
|
377
393
|
} & React$1.RefAttributes<HTMLDivElement>>;
|
|
378
394
|
|
|
379
395
|
type TagSize = "sm" | "md" | "lg";
|
|
@@ -540,6 +556,8 @@ type TableProps<T> = Omit<React$1.HTMLAttributes<HTMLTableElement>, "children">
|
|
|
540
556
|
loadingContent?: React$1.ReactNode;
|
|
541
557
|
/** Whether the table has sticky header */
|
|
542
558
|
stickyHeader?: boolean;
|
|
559
|
+
/** Custom header row style */
|
|
560
|
+
headerStyle?: React$1.CSSProperties;
|
|
543
561
|
};
|
|
544
562
|
declare const Table: <T>(props: TableProps<T> & {
|
|
545
563
|
ref?: React$1.ForwardedRef<HTMLTableElement>;
|
package/dist/index.js
CHANGED
|
@@ -700,6 +700,7 @@ var Button = React8.forwardRef(function Button2({
|
|
|
700
700
|
radius = "sm",
|
|
701
701
|
color = "primary",
|
|
702
702
|
hoverColor,
|
|
703
|
+
hoverStyle,
|
|
703
704
|
loading = false,
|
|
704
705
|
disabled,
|
|
705
706
|
leftIcon,
|
|
@@ -712,13 +713,15 @@ var Button = React8.forwardRef(function Button2({
|
|
|
712
713
|
const isDisabled = React8__default.default.useMemo(() => disabled || loading, [disabled, loading]);
|
|
713
714
|
const preset = isPresetColor(color);
|
|
714
715
|
const computedStyle = React8__default.default.useMemo(() => {
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
716
|
+
const baseStyle = preset ? hoverColor ? { [`--rh-${color}-hover`]: toRgbTriplet2(hoverColor) ?? hoverColor } : {} : getArbitraryColorStyle(variant, color);
|
|
717
|
+
const hoverVars = hoverStyle ? {
|
|
718
|
+
"--btn-hover-bg": hoverStyle.backgroundColor,
|
|
719
|
+
"--btn-hover-border": hoverStyle.borderColor,
|
|
720
|
+
"--btn-hover-color": hoverStyle.color
|
|
721
|
+
} : {};
|
|
722
|
+
return { ...style, ...baseStyle, ...hoverVars };
|
|
723
|
+
}, [preset, color, variant, hoverColor, hoverStyle, style]);
|
|
724
|
+
const hasCustomHover = Boolean(hoverStyle);
|
|
722
725
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
723
726
|
"button",
|
|
724
727
|
{
|
|
@@ -731,7 +734,9 @@ var Button = React8.forwardRef(function Button2({
|
|
|
731
734
|
"rh-border rh-font-sans rh-font-medium",
|
|
732
735
|
"rh-transition-colors rh-duration-150",
|
|
733
736
|
"focus-visible:rh-outline-none focus-visible:rh-ring-2 focus-visible:rh-ring-ring focus-visible:rh-ring-offset-2",
|
|
734
|
-
preset ? variantColorClasses[variant][color] : "
|
|
737
|
+
preset && !hasCustomHover ? variantColorClasses[variant][color] : "",
|
|
738
|
+
!preset && !hasCustomHover ? "hover:rh-brightness-90" : "",
|
|
739
|
+
hasCustomHover ? "btn-custom-hover" : "",
|
|
735
740
|
sizeClasses[size],
|
|
736
741
|
radiusClasses[radius],
|
|
737
742
|
isDisabled ? "rh-opacity-50 rh-cursor-not-allowed rh-pointer-events-none" : "",
|
|
@@ -904,8 +909,8 @@ var IconButton = React8.forwardRef(function IconButton2({
|
|
|
904
909
|
);
|
|
905
910
|
});
|
|
906
911
|
var statusClasses = {
|
|
907
|
-
default: "rh-border-border focus-within:rh-ring-2 focus-within:rh-ring-ring
|
|
908
|
-
error: "rh-border-danger focus-within:rh-ring-2 focus-within:rh-ring-danger
|
|
912
|
+
default: "rh-border-border focus-within:rh-ring-2 focus-within:rh-ring-ring",
|
|
913
|
+
error: "rh-border-danger focus-within:rh-ring-2 focus-within:rh-ring-danger"
|
|
909
914
|
};
|
|
910
915
|
var sizeClasses3 = {
|
|
911
916
|
sm: "rh-h-input-sm rh-text-sm rh-px-input-x-sm",
|
|
@@ -931,113 +936,101 @@ var helperStatusClasses = {
|
|
|
931
936
|
default: "rh-text-text-muted",
|
|
932
937
|
error: "rh-text-danger"
|
|
933
938
|
};
|
|
934
|
-
var TextInput = React8.forwardRef(
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
]
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
"
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
"
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
"
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
className: [
|
|
1030
|
-
"rh-flex rh-items-center rh-gap-1 rh-text-xs",
|
|
1031
|
-
helperStatusClasses[status]
|
|
1032
|
-
].join(" "),
|
|
1033
|
-
children: helperText
|
|
1034
|
-
}
|
|
1035
|
-
)
|
|
1036
|
-
]
|
|
1037
|
-
}
|
|
1038
|
-
);
|
|
1039
|
-
}
|
|
1040
|
-
);
|
|
939
|
+
var TextInput = React8.forwardRef(function TextInput2({
|
|
940
|
+
label,
|
|
941
|
+
subtitle,
|
|
942
|
+
status = "default",
|
|
943
|
+
size = "md",
|
|
944
|
+
radius = "xs",
|
|
945
|
+
leftIcon,
|
|
946
|
+
rightIcon,
|
|
947
|
+
helperText,
|
|
948
|
+
disabled,
|
|
949
|
+
className = "",
|
|
950
|
+
wrapperClassName = "",
|
|
951
|
+
id,
|
|
952
|
+
...rest
|
|
953
|
+
}, ref) {
|
|
954
|
+
const inputId = id || React8__default.default.useId();
|
|
955
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
956
|
+
"div",
|
|
957
|
+
{
|
|
958
|
+
className: ["rh-flex rh-flex-col rh-gap-[0.5rem] rh-font-sans", wrapperClassName].filter(Boolean).join(" "),
|
|
959
|
+
children: [
|
|
960
|
+
label && /* @__PURE__ */ jsxRuntime.jsxs("label", { htmlFor: inputId, className: "rh-flex rh-items-baseline rh-gap-1", children: [
|
|
961
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "rh-text-sm rh-font-medium rh-text-text", children: label }),
|
|
962
|
+
subtitle && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "rh-text-sm rh-text-text-muted", children: subtitle })
|
|
963
|
+
] }),
|
|
964
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
965
|
+
"div",
|
|
966
|
+
{
|
|
967
|
+
className: [
|
|
968
|
+
"rh-flex rh-items-center rh-gap-2",
|
|
969
|
+
"rh-border rh-bg-surface rh-font-sans",
|
|
970
|
+
"rh-transition-colors rh-duration-150",
|
|
971
|
+
statusClasses[status],
|
|
972
|
+
radiusClasses3[radius],
|
|
973
|
+
sizeClasses3[size],
|
|
974
|
+
disabled ? "rh-opacity-50 rh-cursor-not-allowed rh-bg-background" : "",
|
|
975
|
+
className
|
|
976
|
+
].filter(Boolean).join(" "),
|
|
977
|
+
children: [
|
|
978
|
+
leftIcon && /* @__PURE__ */ jsxRuntime.jsx(
|
|
979
|
+
"span",
|
|
980
|
+
{
|
|
981
|
+
className: [
|
|
982
|
+
"rh-inline-flex rh-shrink-0 rh-text-text-muted",
|
|
983
|
+
iconSizeClasses[size]
|
|
984
|
+
].join(" "),
|
|
985
|
+
"aria-hidden": "true",
|
|
986
|
+
children: leftIcon
|
|
987
|
+
}
|
|
988
|
+
),
|
|
989
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
990
|
+
"input",
|
|
991
|
+
{
|
|
992
|
+
ref,
|
|
993
|
+
id: inputId,
|
|
994
|
+
disabled,
|
|
995
|
+
"aria-invalid": status === "error" || void 0,
|
|
996
|
+
"aria-describedby": helperText ? `${inputId}-helper` : void 0,
|
|
997
|
+
className: [
|
|
998
|
+
"rh-flex-1 rh-bg-transparent rh-outline-none",
|
|
999
|
+
"rh-text-text placeholder:rh-text-text-muted",
|
|
1000
|
+
disabled ? "rh-cursor-not-allowed" : ""
|
|
1001
|
+
].filter(Boolean).join(" "),
|
|
1002
|
+
...rest
|
|
1003
|
+
}
|
|
1004
|
+
),
|
|
1005
|
+
rightIcon && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1006
|
+
"span",
|
|
1007
|
+
{
|
|
1008
|
+
className: [
|
|
1009
|
+
"rh-inline-flex rh-shrink-0 rh-text-text-muted",
|
|
1010
|
+
iconSizeClasses[size]
|
|
1011
|
+
].join(" "),
|
|
1012
|
+
"aria-hidden": "true",
|
|
1013
|
+
children: rightIcon
|
|
1014
|
+
}
|
|
1015
|
+
)
|
|
1016
|
+
]
|
|
1017
|
+
}
|
|
1018
|
+
),
|
|
1019
|
+
helperText && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1020
|
+
"span",
|
|
1021
|
+
{
|
|
1022
|
+
id: `${inputId}-helper`,
|
|
1023
|
+
className: [
|
|
1024
|
+
"rh-flex rh-items-center rh-gap-1 rh-text-xs",
|
|
1025
|
+
helperStatusClasses[status]
|
|
1026
|
+
].join(" "),
|
|
1027
|
+
children: helperText
|
|
1028
|
+
}
|
|
1029
|
+
)
|
|
1030
|
+
]
|
|
1031
|
+
}
|
|
1032
|
+
);
|
|
1033
|
+
});
|
|
1041
1034
|
var sizeClasses4 = {
|
|
1042
1035
|
sm: "rh-h-4 rh-w-4",
|
|
1043
1036
|
md: "rh-h-5 rh-w-5",
|
|
@@ -1777,6 +1770,33 @@ var Tooltip = React8.forwardRef(
|
|
|
1777
1770
|
);
|
|
1778
1771
|
}
|
|
1779
1772
|
);
|
|
1773
|
+
var AVATAR_COLORS = [
|
|
1774
|
+
{ bg: "#FBF1E6", text: "#D6822D" },
|
|
1775
|
+
// Laranja
|
|
1776
|
+
{ bg: "#EDF3FA", text: "#538CC6" },
|
|
1777
|
+
// Azul
|
|
1778
|
+
{ bg: "#F3E5F5", text: "#9C27B0" },
|
|
1779
|
+
// Roxo
|
|
1780
|
+
{ bg: "#E8F5E9", text: "#4CAF50" },
|
|
1781
|
+
// Verde
|
|
1782
|
+
{ bg: "#FFF3E0", text: "#FF9800" },
|
|
1783
|
+
// Amarelo
|
|
1784
|
+
{ bg: "#FFEBEE", text: "#F44336" },
|
|
1785
|
+
// Vermelho
|
|
1786
|
+
{ bg: "#E3F2FD", text: "#2196F3" },
|
|
1787
|
+
// Azul claro
|
|
1788
|
+
{ bg: "#F3E5F5", text: "#673AB7" },
|
|
1789
|
+
// Violeta
|
|
1790
|
+
{ bg: "#E0F2F1", text: "#009688" },
|
|
1791
|
+
// Teal
|
|
1792
|
+
{ bg: "#FBE9E7", text: "#FF5722" }
|
|
1793
|
+
// Deep Orange
|
|
1794
|
+
];
|
|
1795
|
+
function getAvatarColors(name) {
|
|
1796
|
+
const hash = name.split("").reduce((acc, char) => acc + char.charCodeAt(0), 0);
|
|
1797
|
+
const index = hash % AVATAR_COLORS.length;
|
|
1798
|
+
return AVATAR_COLORS[index];
|
|
1799
|
+
}
|
|
1780
1800
|
var sizeClasses7 = {
|
|
1781
1801
|
sm: "rh-w-8 rh-h-8 rh-text-xs",
|
|
1782
1802
|
md: "rh-w-10 rh-h-10 rh-text-sm",
|
|
@@ -1793,9 +1813,14 @@ var variantClasses2 = {
|
|
|
1793
1813
|
circle: "rh-rounded-full",
|
|
1794
1814
|
square: "rh-rounded-sm"
|
|
1795
1815
|
};
|
|
1796
|
-
var Avatar = React8.forwardRef(function Avatar2({ src, alt = "", initials, size = "md", variant = "circle", className = "", ...rest }, ref) {
|
|
1816
|
+
var Avatar = React8.forwardRef(function Avatar2({ src, alt = "", initials, size = "md", variant = "circle", colorFromName = false, className = "", style, ...rest }, ref) {
|
|
1797
1817
|
const [imgError, setImgError] = React8.useState(false);
|
|
1798
1818
|
const showImage = src && !imgError;
|
|
1819
|
+
const avatarColors = React8.useMemo(() => {
|
|
1820
|
+
if (!colorFromName) return null;
|
|
1821
|
+
const name = initials || alt || "";
|
|
1822
|
+
return name ? getAvatarColors(name) : null;
|
|
1823
|
+
}, [colorFromName, initials, alt]);
|
|
1799
1824
|
const fallbackLabel = initials ? initials.slice(0, 2).toUpperCase() : alt ? alt.split(" ").slice(0, 2).map((w) => w[0]).join("").toUpperCase() : "?";
|
|
1800
1825
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1801
1826
|
"div",
|
|
@@ -1805,11 +1830,16 @@ var Avatar = React8.forwardRef(function Avatar2({ src, alt = "", initials, size
|
|
|
1805
1830
|
"aria-label": showImage ? void 0 : alt || initials,
|
|
1806
1831
|
className: [
|
|
1807
1832
|
"rh-inline-flex rh-items-center rh-justify-center rh-shrink-0 rh-overflow-hidden",
|
|
1808
|
-
"rh-bg-primary rh-text-surface
|
|
1833
|
+
avatarColors ? "" : "rh-bg-primary rh-text-surface",
|
|
1834
|
+
"rh-font-sans rh-font-medium rh-select-none",
|
|
1809
1835
|
sizeClasses7[size],
|
|
1810
1836
|
variantClasses2[variant],
|
|
1811
1837
|
className
|
|
1812
1838
|
].filter(Boolean).join(" "),
|
|
1839
|
+
style: {
|
|
1840
|
+
...avatarColors && { backgroundColor: avatarColors.bg, color: avatarColors.text },
|
|
1841
|
+
...style
|
|
1842
|
+
},
|
|
1813
1843
|
...rest,
|
|
1814
1844
|
children: showImage ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1815
1845
|
"img",
|
|
@@ -1973,8 +2003,8 @@ function ToggleGroupInner({
|
|
|
1973
2003
|
ref,
|
|
1974
2004
|
role: "group",
|
|
1975
2005
|
className: [
|
|
1976
|
-
"rh-inline-flex rh-items-center rh-
|
|
1977
|
-
"rh-p-0.5",
|
|
2006
|
+
"rh-inline-flex rh-items-center rh-bg-muted rh-overflow-hidden",
|
|
2007
|
+
"rh-p-1 rh-gap-0.5",
|
|
1978
2008
|
radiusClasses5[radius],
|
|
1979
2009
|
sizeClasses9[size].container,
|
|
1980
2010
|
disabled ? "rh-opacity-50 rh-cursor-not-allowed" : "",
|
|
@@ -1995,13 +2025,13 @@ function ToggleGroupInner({
|
|
|
1995
2025
|
onClick: () => !isDisabled && onChange(option.value),
|
|
1996
2026
|
className: [
|
|
1997
2027
|
"rh-flex rh-items-center rh-justify-center rh-h-full",
|
|
1998
|
-
"rh-border-0 rh-
|
|
1999
|
-
"rh-transition-
|
|
2028
|
+
"rh-border-0 rh-font-sans rh-font-medium",
|
|
2029
|
+
"rh-transition-all rh-duration-150",
|
|
2000
2030
|
"focus-visible:rh-outline-none focus-visible:rh-ring-2 focus-visible:rh-ring-ring",
|
|
2001
2031
|
radiusClasses5[radius],
|
|
2002
2032
|
sizeClasses9[size].button,
|
|
2003
|
-
isActive
|
|
2004
|
-
!isActive ? "
|
|
2033
|
+
isActive ? "rh-bg-surface rh-text-text rh-shadow-sm" : "rh-bg-transparent rh-text-text-muted",
|
|
2034
|
+
!isActive && !isDisabled ? "hover:rh-bg-surface/50" : "",
|
|
2005
2035
|
isDisabled ? "rh-cursor-not-allowed rh-pointer-events-none" : "rh-cursor-pointer"
|
|
2006
2036
|
].filter(Boolean).join(" "),
|
|
2007
2037
|
style: isActive && !preset ? getActiveStyles(color, preset) : void 0,
|
|
@@ -2197,6 +2227,7 @@ function TableInner({
|
|
|
2197
2227
|
emptyContent = "Nenhum dado encontrado",
|
|
2198
2228
|
loadingContent,
|
|
2199
2229
|
stickyHeader = false,
|
|
2230
|
+
headerStyle,
|
|
2200
2231
|
className = "",
|
|
2201
2232
|
...rest
|
|
2202
2233
|
}, ref) {
|
|
@@ -2248,7 +2279,7 @@ function TableInner({
|
|
|
2248
2279
|
].filter(Boolean).join(" "),
|
|
2249
2280
|
...rest,
|
|
2250
2281
|
children: [
|
|
2251
|
-
/* @__PURE__ */ jsxRuntime.jsx("thead", { children: /* @__PURE__ */ jsxRuntime.jsx("tr", { className: "rh-border-b rh-border-border", children: columns.map((column) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2282
|
+
/* @__PURE__ */ jsxRuntime.jsx("thead", { children: /* @__PURE__ */ jsxRuntime.jsx("tr", { className: "rh-border-b rh-border-border", style: headerStyle, children: columns.map((column) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2252
2283
|
"th",
|
|
2253
2284
|
{
|
|
2254
2285
|
scope: "col",
|