@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 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
- if (preset) {
716
- if (!hoverColor) return style ?? {};
717
- const triplet = toRgbTriplet2(hoverColor);
718
- return { ...style, [`--rh-${color}-hover`]: triplet ?? hoverColor };
719
- }
720
- return { ...style, ...getArbitraryColorStyle(variant, color) };
721
- }, [preset, color, variant, hoverColor, style]);
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] : "hover:rh-brightness-90",
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 focus-within:rh-ring-offset-2",
908
- error: "rh-border-danger focus-within:rh-ring-2 focus-within:rh-ring-danger focus-within:rh-ring-offset-2"
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
- function TextInput2({
936
- label,
937
- subtitle,
938
- status = "default",
939
- size = "md",
940
- radius = "xs",
941
- leftIcon,
942
- rightIcon,
943
- helperText,
944
- disabled,
945
- className = "",
946
- wrapperClassName = "",
947
- id,
948
- ...rest
949
- }, ref) {
950
- const inputId = id || React8__default.default.useId();
951
- return /* @__PURE__ */ jsxRuntime.jsxs(
952
- "div",
953
- {
954
- className: [
955
- "rh-flex rh-flex-col rh-gap-1 rh-font-sans",
956
- wrapperClassName
957
- ].filter(Boolean).join(" "),
958
- children: [
959
- label && /* @__PURE__ */ jsxRuntime.jsxs(
960
- "label",
961
- {
962
- htmlFor: inputId,
963
- className: "rh-flex rh-items-baseline rh-gap-1",
964
- children: [
965
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "rh-text-sm rh-font-medium rh-text-text", children: label }),
966
- subtitle && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "rh-text-sm rh-text-text-muted", children: subtitle })
967
- ]
968
- }
969
- ),
970
- /* @__PURE__ */ jsxRuntime.jsxs(
971
- "div",
972
- {
973
- className: [
974
- "rh-flex rh-items-center rh-gap-2",
975
- "rh-border rh-bg-surface rh-font-sans",
976
- "rh-transition-colors rh-duration-150",
977
- statusClasses[status],
978
- radiusClasses3[radius],
979
- sizeClasses3[size],
980
- disabled ? "rh-opacity-50 rh-cursor-not-allowed rh-bg-background" : "",
981
- className
982
- ].filter(Boolean).join(" "),
983
- children: [
984
- leftIcon && /* @__PURE__ */ jsxRuntime.jsx(
985
- "span",
986
- {
987
- className: [
988
- "rh-inline-flex rh-shrink-0 rh-text-text-muted",
989
- iconSizeClasses[size]
990
- ].join(" "),
991
- "aria-hidden": "true",
992
- children: leftIcon
993
- }
994
- ),
995
- /* @__PURE__ */ jsxRuntime.jsx(
996
- "input",
997
- {
998
- ref,
999
- id: inputId,
1000
- disabled,
1001
- "aria-invalid": status === "error" || void 0,
1002
- "aria-describedby": helperText ? `${inputId}-helper` : void 0,
1003
- className: [
1004
- "rh-flex-1 rh-bg-transparent rh-outline-none",
1005
- "rh-text-text placeholder:rh-text-text-muted",
1006
- disabled ? "rh-cursor-not-allowed" : ""
1007
- ].filter(Boolean).join(" "),
1008
- ...rest
1009
- }
1010
- ),
1011
- rightIcon && /* @__PURE__ */ jsxRuntime.jsx(
1012
- "span",
1013
- {
1014
- className: [
1015
- "rh-inline-flex rh-shrink-0 rh-text-text-muted",
1016
- iconSizeClasses[size]
1017
- ].join(" "),
1018
- "aria-hidden": "true",
1019
- children: rightIcon
1020
- }
1021
- )
1022
- ]
1023
- }
1024
- ),
1025
- helperText && /* @__PURE__ */ jsxRuntime.jsx(
1026
- "span",
1027
- {
1028
- id: `${inputId}-helper`,
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 rh-font-sans rh-font-medium rh-select-none",
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-border rh-border-border rh-bg-surface rh-overflow-hidden",
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-bg-transparent rh-font-sans rh-font-medium",
1999
- "rh-transition-colors rh-duration-150",
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 && preset ? `rh-bg-border rh-text-text` : "",
2004
- !isActive ? "rh-text-text-muted hover:rh-bg-border/50" : "",
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",