@octavius2929-personal/design-system 0.9.0 → 0.11.0

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.cts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as react from 'react';
2
- import { ElementType, ComponentPropsWithoutRef, SVGProps, ReactElement, ButtonHTMLAttributes, HTMLAttributes, ReactNode, InputHTMLAttributes, TableHTMLAttributes } from 'react';
2
+ import { ElementType, ComponentPropsWithoutRef, Ref, SVGProps, ReactElement, ButtonHTMLAttributes, HTMLAttributes, ReactNode, InputHTMLAttributes, TableHTMLAttributes } from 'react';
3
3
 
4
4
  declare const tintaSchema: {
5
5
  light: {
@@ -805,7 +805,10 @@ type ContainerOwnProps<E extends ElementType> = Sprinkles & {
805
805
  };
806
806
  type ContainerProps<E extends ElementType = "div"> = ContainerOwnProps<E> & Omit<ComponentPropsWithoutRef<E>, "className" | "style" | "color" | keyof ContainerOwnProps<E>>;
807
807
 
808
- declare function Container<E extends ElementType = "div">({ as, ...props }: ContainerProps<E>): react.JSX.Element;
808
+ declare function ContainerImpl<E extends ElementType = "div">({ as, ...props }: ContainerProps<E>, ref: Ref<Element>): react.JSX.Element;
809
+ declare const Container: <E extends ElementType = "div">(props: ContainerProps<E> & {
810
+ ref?: Ref<Element>;
811
+ }) => ReturnType<typeof ContainerImpl>;
809
812
 
810
813
  type TypographyVariant = "display" | "h1" | "h2" | "h3" | "h4" | "body" | "lead" | "small" | "caption" | "eyebrow" | "code" | "blackletter";
811
814
  type TypographyColor = "fg1" | "fg2" | "fg3" | "accent" | "danger" | "ok" | "warn" | "info";
@@ -818,7 +821,10 @@ type TypographyOwnProps<E extends ElementType> = {
818
821
  };
819
822
  type TypographyProps<E extends ElementType = "span"> = TypographyOwnProps<E> & Omit<ComponentPropsWithoutRef<E>, "className" | "style" | "color" | keyof TypographyOwnProps<E>>;
820
823
 
821
- declare function Typography<E extends ElementType = "span">({ variant, as, color, align, ...rest }: TypographyProps<E>): react.JSX.Element;
824
+ declare function TypographyInner<E extends ElementType = "span">({ variant, as, color, align, ...rest }: TypographyProps<E>, ref: Ref<HTMLElement>): react.JSX.Element;
825
+ declare const Typography: <E extends ElementType = "span">(props: TypographyProps<E> & {
826
+ ref?: Ref<HTMLElement>;
827
+ }) => ReturnType<typeof TypographyInner>;
822
828
 
823
829
  interface IconProps extends SVGProps<SVGSVGElement> {
824
830
  /** Lado del cuadro en px. Por defecto 20. */
@@ -840,14 +846,14 @@ interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
840
846
  full?: boolean;
841
847
  }
842
848
 
843
- declare function Button({ variant, tone, size, startIcon: StartIcon, endIcon: EndIcon, full, className, children, ...rest }: ButtonProps): react.JSX.Element;
849
+ declare const Button: react.ForwardRefExoticComponent<ButtonProps & react.RefAttributes<HTMLButtonElement>>;
844
850
 
845
851
  interface DividerProps extends Omit<HTMLAttributes<HTMLDivElement>, "className"> {
846
852
  vertical?: boolean;
847
853
  label?: ReactNode;
848
854
  }
849
855
 
850
- declare function Divider({ vertical, label, ...rest }: DividerProps): react.JSX.Element;
856
+ declare const Divider: react.ForwardRefExoticComponent<DividerProps & react.RefAttributes<HTMLDivElement>>;
851
857
 
852
858
  type AvatarSize = "sm" | "md" | "lg";
853
859
  interface AvatarProps extends HTMLAttributes<HTMLSpanElement> {
@@ -855,7 +861,7 @@ interface AvatarProps extends HTMLAttributes<HTMLSpanElement> {
855
861
  filled?: boolean;
856
862
  }
857
863
 
858
- declare function Avatar({ size, filled, className, children, ...rest }: AvatarProps): react.JSX.Element;
864
+ declare const Avatar: react.ForwardRefExoticComponent<AvatarProps & react.RefAttributes<HTMLSpanElement>>;
859
865
 
860
866
  type BadgeTone = "ink" | "accent";
861
867
  interface BadgeProps extends HTMLAttributes<HTMLSpanElement> {
@@ -863,7 +869,7 @@ interface BadgeProps extends HTMLAttributes<HTMLSpanElement> {
863
869
  tone?: BadgeTone;
864
870
  }
865
871
 
866
- declare function Badge({ count, tone, className, children, ...rest }: BadgeProps): react.JSX.Element;
872
+ declare const Badge: react.ForwardRefExoticComponent<BadgeProps & react.RefAttributes<HTMLSpanElement>>;
867
873
 
868
874
  type ProgressVariant = "linear" | "circular";
869
875
  interface ProgressProps extends HTMLAttributes<HTMLDivElement> {
@@ -872,7 +878,7 @@ interface ProgressProps extends HTMLAttributes<HTMLDivElement> {
872
878
  size?: number;
873
879
  }
874
880
 
875
- declare function Progress({ variant, value, size, className, ...rest }: ProgressProps): react.JSX.Element;
881
+ declare const Progress: react.ForwardRefExoticComponent<ProgressProps & react.RefAttributes<HTMLElement>>;
876
882
 
877
883
  type ChipTone = "ink" | "accent";
878
884
  interface ChipProps extends Omit<HTMLAttributes<HTMLSpanElement>, "className"> {
@@ -881,9 +887,9 @@ interface ChipProps extends Omit<HTMLAttributes<HTMLSpanElement>, "className"> {
881
887
  onDelete?: () => void;
882
888
  }
883
889
 
884
- declare function Chip({ selected, tone, onDelete, onClick, children, ...rest }: ChipProps): react.JSX.Element;
890
+ declare const Chip: react.ForwardRefExoticComponent<ChipProps & react.RefAttributes<HTMLSpanElement>>;
885
891
 
886
- interface CheckboxProps {
892
+ interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "onChange" | "type" | "className"> {
887
893
  checked?: boolean;
888
894
  onChange?: (checked: boolean) => void;
889
895
  label?: ReactNode;
@@ -891,9 +897,9 @@ interface CheckboxProps {
891
897
  id?: string;
892
898
  }
893
899
 
894
- declare function Checkbox({ checked, onChange, label, disabled, id, }: CheckboxProps): react.JSX.Element;
900
+ declare const Checkbox: react.ForwardRefExoticComponent<CheckboxProps & react.RefAttributes<HTMLInputElement>>;
895
901
 
896
- interface RadioProps {
902
+ interface RadioProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "onChange" | "type" | "className"> {
897
903
  checked?: boolean;
898
904
  onChange?: () => void;
899
905
  label?: ReactNode;
@@ -902,38 +908,40 @@ interface RadioProps {
902
908
  disabled?: boolean;
903
909
  }
904
910
 
905
- declare function Radio({ checked, onChange, label, name, value, disabled }: RadioProps): react.JSX.Element;
911
+ declare const Radio: react.ForwardRefExoticComponent<RadioProps & react.RefAttributes<HTMLInputElement>>;
906
912
 
907
- interface SwitchProps {
913
+ interface SwitchProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "onChange" | "type" | "className"> {
908
914
  checked?: boolean;
909
915
  onChange?: (checked: boolean) => void;
910
916
  label?: ReactNode;
911
917
  disabled?: boolean;
912
918
  }
913
919
 
914
- declare function Switch({ checked, onChange, label, disabled }: SwitchProps): react.JSX.Element;
920
+ declare const Switch: react.ForwardRefExoticComponent<SwitchProps & react.RefAttributes<HTMLInputElement>>;
915
921
 
916
922
  interface TextFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "onChange"> {
917
923
  label?: ReactNode;
918
924
  help?: ReactNode;
919
- error?: boolean;
925
+ /** `true` → solo estilo inválido. Un nodo → mensaje renderizado + anunciado (aria-live). */
926
+ error?: boolean | ReactNode;
920
927
  startIcon?: Icon;
921
928
  multiline?: boolean;
922
929
  rows?: number;
923
930
  onChange?: (value: string) => void;
924
931
  }
925
932
 
926
- declare function TextField({ label, help, error, startIcon, multiline, rows, type, onChange, className, id, ...rest }: TextFieldProps): react.JSX.Element;
933
+ declare const TextField: react.ForwardRefExoticComponent<TextFieldProps & react.RefAttributes<HTMLInputElement>>;
927
934
 
928
935
  interface PasswordFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "type" | "onChange"> {
929
936
  label?: ReactNode;
930
937
  help?: ReactNode;
931
- error?: boolean;
938
+ /** `true` → solo estilo inválido. Un nodo → mensaje renderizado + anunciado (aria-live). */
939
+ error?: boolean | ReactNode;
932
940
  startIcon?: Icon;
933
941
  onChange?: (value: string) => void;
934
942
  }
935
943
 
936
- declare function PasswordField({ label, help, error, startIcon, onChange, id, className, ...rest }: PasswordFieldProps): react.JSX.Element;
944
+ declare const PasswordField: react.ForwardRefExoticComponent<PasswordFieldProps & react.RefAttributes<HTMLInputElement>>;
937
945
 
938
946
  interface MoneyFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "onChange" | "value" | "defaultValue" | "type"> {
939
947
  /** Valor numérico controlado. `null`/omitido representa "sin valor". */
@@ -946,11 +954,12 @@ interface MoneyFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "o
946
954
  locale?: string;
947
955
  label?: ReactNode;
948
956
  help?: ReactNode;
949
- error?: boolean;
957
+ /** `true` → solo estilo inválido. Un nodo → mensaje renderizado + anunciado (aria-live). */
958
+ error?: boolean | ReactNode;
950
959
  startIcon?: Icon;
951
960
  }
952
961
 
953
- declare function MoneyField({ value, onChange, currency, locale, label, help, error, startIcon, id, className, onFocus, onBlur, ...rest }: MoneyFieldProps): react.JSX.Element;
962
+ declare const MoneyField: react.ForwardRefExoticComponent<MoneyFieldProps & react.RefAttributes<HTMLInputElement>>;
954
963
 
955
964
  type IconButtonTone = "ink" | "accent";
956
965
  interface IconButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, "className"> {
@@ -960,16 +969,12 @@ interface IconButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>,
960
969
  title: string;
961
970
  }
962
971
 
963
- declare function IconButton({ icon: Icon, active, tone, title, ...rest }: IconButtonProps): react.JSX.Element;
972
+ declare const IconButton: react.ForwardRefExoticComponent<IconButtonProps & react.RefAttributes<HTMLButtonElement>>;
964
973
 
965
974
  type DivProps = Omit<HTMLAttributes<HTMLDivElement>, "className">;
966
975
  type CardProps = DivProps;
967
976
  type CardSectionProps = DivProps;
968
977
 
969
- declare function CardRoot({ children, ...rest }: CardProps): react.JSX.Element;
970
- declare namespace CardRoot {
971
- var displayName: string;
972
- }
973
978
  declare function CardHeader({ children, ...rest }: CardSectionProps): react.JSX.Element;
974
979
  declare namespace CardHeader {
975
980
  var displayName: string;
@@ -982,7 +987,273 @@ declare function CardFooter({ children, ...rest }: CardSectionProps): react.JSX.
982
987
  declare namespace CardFooter {
983
988
  var displayName: string;
984
989
  }
985
- declare const Card: typeof CardRoot & {
990
+ declare const Card: react.ForwardRefExoticComponent<{
991
+ color?: string | undefined | undefined;
992
+ content?: string | undefined | undefined;
993
+ translate?: "yes" | "no" | undefined | undefined;
994
+ hidden?: boolean | undefined | undefined;
995
+ style?: react.CSSProperties | undefined;
996
+ slot?: string | undefined | undefined;
997
+ title?: string | undefined | undefined;
998
+ defaultChecked?: boolean | undefined | undefined;
999
+ defaultValue?: string | number | readonly string[] | undefined;
1000
+ suppressContentEditableWarning?: boolean | undefined | undefined;
1001
+ suppressHydrationWarning?: boolean | undefined | undefined;
1002
+ accessKey?: string | undefined | undefined;
1003
+ autoCapitalize?: "off" | "none" | "on" | "sentences" | "words" | "characters" | undefined | (string & {}) | undefined;
1004
+ autoFocus?: boolean | undefined | undefined;
1005
+ contentEditable?: "inherit" | (boolean | "false" | "true") | "plaintext-only" | undefined;
1006
+ contextMenu?: string | undefined | undefined;
1007
+ dir?: string | undefined | undefined;
1008
+ draggable?: (boolean | "false" | "true") | undefined;
1009
+ enterKeyHint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
1010
+ id?: string | undefined | undefined;
1011
+ lang?: string | undefined | undefined;
1012
+ nonce?: string | undefined | undefined;
1013
+ spellCheck?: (boolean | "false" | "true") | undefined;
1014
+ tabIndex?: number | undefined | undefined;
1015
+ radioGroup?: string | undefined | undefined;
1016
+ role?: react.AriaRole | undefined;
1017
+ about?: string | undefined | undefined;
1018
+ datatype?: string | undefined | undefined;
1019
+ inlist?: any;
1020
+ prefix?: string | undefined | undefined;
1021
+ property?: string | undefined | undefined;
1022
+ rel?: string | undefined | undefined;
1023
+ resource?: string | undefined | undefined;
1024
+ rev?: string | undefined | undefined;
1025
+ typeof?: string | undefined | undefined;
1026
+ vocab?: string | undefined | undefined;
1027
+ autoCorrect?: string | undefined | undefined;
1028
+ autoSave?: string | undefined | undefined;
1029
+ itemProp?: string | undefined | undefined;
1030
+ itemScope?: boolean | undefined | undefined;
1031
+ itemType?: string | undefined | undefined;
1032
+ itemID?: string | undefined | undefined;
1033
+ itemRef?: string | undefined | undefined;
1034
+ results?: number | undefined | undefined;
1035
+ security?: string | undefined | undefined;
1036
+ unselectable?: "on" | "off" | undefined | undefined;
1037
+ inputMode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search" | undefined | undefined;
1038
+ is?: string | undefined | undefined;
1039
+ exportparts?: string | undefined | undefined;
1040
+ part?: string | undefined | undefined;
1041
+ "aria-activedescendant"?: string | undefined | undefined;
1042
+ "aria-atomic"?: (boolean | "false" | "true") | undefined;
1043
+ "aria-autocomplete"?: "none" | "inline" | "list" | "both" | undefined | undefined;
1044
+ "aria-braillelabel"?: string | undefined | undefined;
1045
+ "aria-brailleroledescription"?: string | undefined | undefined;
1046
+ "aria-busy"?: (boolean | "false" | "true") | undefined;
1047
+ "aria-checked"?: boolean | "false" | "mixed" | "true" | undefined | undefined;
1048
+ "aria-colcount"?: number | undefined | undefined;
1049
+ "aria-colindex"?: number | undefined | undefined;
1050
+ "aria-colindextext"?: string | undefined | undefined;
1051
+ "aria-colspan"?: number | undefined | undefined;
1052
+ "aria-controls"?: string | undefined | undefined;
1053
+ "aria-current"?: boolean | "false" | "true" | "page" | "step" | "location" | "date" | "time" | undefined | undefined;
1054
+ "aria-describedby"?: string | undefined | undefined;
1055
+ "aria-description"?: string | undefined | undefined;
1056
+ "aria-details"?: string | undefined | undefined;
1057
+ "aria-disabled"?: (boolean | "false" | "true") | undefined;
1058
+ "aria-dropeffect"?: "none" | "copy" | "execute" | "link" | "move" | "popup" | undefined | undefined;
1059
+ "aria-errormessage"?: string | undefined | undefined;
1060
+ "aria-expanded"?: (boolean | "false" | "true") | undefined;
1061
+ "aria-flowto"?: string | undefined | undefined;
1062
+ "aria-grabbed"?: (boolean | "false" | "true") | undefined;
1063
+ "aria-haspopup"?: boolean | "false" | "true" | "menu" | "listbox" | "tree" | "grid" | "dialog" | undefined | undefined;
1064
+ "aria-hidden"?: (boolean | "false" | "true") | undefined;
1065
+ "aria-invalid"?: boolean | "false" | "true" | "grammar" | "spelling" | undefined | undefined;
1066
+ "aria-keyshortcuts"?: string | undefined | undefined;
1067
+ "aria-label"?: string | undefined | undefined;
1068
+ "aria-labelledby"?: string | undefined | undefined;
1069
+ "aria-level"?: number | undefined | undefined;
1070
+ "aria-live"?: "off" | "assertive" | "polite" | undefined | undefined;
1071
+ "aria-modal"?: (boolean | "false" | "true") | undefined;
1072
+ "aria-multiline"?: (boolean | "false" | "true") | undefined;
1073
+ "aria-multiselectable"?: (boolean | "false" | "true") | undefined;
1074
+ "aria-orientation"?: "horizontal" | "vertical" | undefined | undefined;
1075
+ "aria-owns"?: string | undefined | undefined;
1076
+ "aria-placeholder"?: string | undefined | undefined;
1077
+ "aria-posinset"?: number | undefined | undefined;
1078
+ "aria-pressed"?: boolean | "false" | "mixed" | "true" | undefined | undefined;
1079
+ "aria-readonly"?: (boolean | "false" | "true") | undefined;
1080
+ "aria-relevant"?: "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text" | "text additions" | "text removals" | undefined | undefined;
1081
+ "aria-required"?: (boolean | "false" | "true") | undefined;
1082
+ "aria-roledescription"?: string | undefined | undefined;
1083
+ "aria-rowcount"?: number | undefined | undefined;
1084
+ "aria-rowindex"?: number | undefined | undefined;
1085
+ "aria-rowindextext"?: string | undefined | undefined;
1086
+ "aria-rowspan"?: number | undefined | undefined;
1087
+ "aria-selected"?: (boolean | "false" | "true") | undefined;
1088
+ "aria-setsize"?: number | undefined | undefined;
1089
+ "aria-sort"?: "none" | "ascending" | "descending" | "other" | undefined | undefined;
1090
+ "aria-valuemax"?: number | undefined | undefined;
1091
+ "aria-valuemin"?: number | undefined | undefined;
1092
+ "aria-valuenow"?: number | undefined | undefined;
1093
+ "aria-valuetext"?: string | undefined | undefined;
1094
+ children?: react.ReactNode;
1095
+ dangerouslySetInnerHTML?: {
1096
+ __html: string | TrustedHTML;
1097
+ } | undefined | undefined;
1098
+ onCopy?: react.ClipboardEventHandler<HTMLDivElement> | undefined;
1099
+ onCopyCapture?: react.ClipboardEventHandler<HTMLDivElement> | undefined;
1100
+ onCut?: react.ClipboardEventHandler<HTMLDivElement> | undefined;
1101
+ onCutCapture?: react.ClipboardEventHandler<HTMLDivElement> | undefined;
1102
+ onPaste?: react.ClipboardEventHandler<HTMLDivElement> | undefined;
1103
+ onPasteCapture?: react.ClipboardEventHandler<HTMLDivElement> | undefined;
1104
+ onCompositionEnd?: react.CompositionEventHandler<HTMLDivElement> | undefined;
1105
+ onCompositionEndCapture?: react.CompositionEventHandler<HTMLDivElement> | undefined;
1106
+ onCompositionStart?: react.CompositionEventHandler<HTMLDivElement> | undefined;
1107
+ onCompositionStartCapture?: react.CompositionEventHandler<HTMLDivElement> | undefined;
1108
+ onCompositionUpdate?: react.CompositionEventHandler<HTMLDivElement> | undefined;
1109
+ onCompositionUpdateCapture?: react.CompositionEventHandler<HTMLDivElement> | undefined;
1110
+ onFocus?: react.FocusEventHandler<HTMLDivElement> | undefined;
1111
+ onFocusCapture?: react.FocusEventHandler<HTMLDivElement> | undefined;
1112
+ onBlur?: react.FocusEventHandler<HTMLDivElement> | undefined;
1113
+ onBlurCapture?: react.FocusEventHandler<HTMLDivElement> | undefined;
1114
+ onChange?: react.FormEventHandler<HTMLDivElement> | undefined;
1115
+ onChangeCapture?: react.FormEventHandler<HTMLDivElement> | undefined;
1116
+ onBeforeInput?: react.InputEventHandler<HTMLDivElement> | undefined;
1117
+ onBeforeInputCapture?: react.FormEventHandler<HTMLDivElement> | undefined;
1118
+ onInput?: react.FormEventHandler<HTMLDivElement> | undefined;
1119
+ onInputCapture?: react.FormEventHandler<HTMLDivElement> | undefined;
1120
+ onReset?: react.FormEventHandler<HTMLDivElement> | undefined;
1121
+ onResetCapture?: react.FormEventHandler<HTMLDivElement> | undefined;
1122
+ onSubmit?: react.FormEventHandler<HTMLDivElement> | undefined;
1123
+ onSubmitCapture?: react.FormEventHandler<HTMLDivElement> | undefined;
1124
+ onInvalid?: react.FormEventHandler<HTMLDivElement> | undefined;
1125
+ onInvalidCapture?: react.FormEventHandler<HTMLDivElement> | undefined;
1126
+ onLoad?: react.ReactEventHandler<HTMLDivElement> | undefined;
1127
+ onLoadCapture?: react.ReactEventHandler<HTMLDivElement> | undefined;
1128
+ onError?: react.ReactEventHandler<HTMLDivElement> | undefined;
1129
+ onErrorCapture?: react.ReactEventHandler<HTMLDivElement> | undefined;
1130
+ onKeyDown?: react.KeyboardEventHandler<HTMLDivElement> | undefined;
1131
+ onKeyDownCapture?: react.KeyboardEventHandler<HTMLDivElement> | undefined;
1132
+ onKeyPress?: react.KeyboardEventHandler<HTMLDivElement> | undefined;
1133
+ onKeyPressCapture?: react.KeyboardEventHandler<HTMLDivElement> | undefined;
1134
+ onKeyUp?: react.KeyboardEventHandler<HTMLDivElement> | undefined;
1135
+ onKeyUpCapture?: react.KeyboardEventHandler<HTMLDivElement> | undefined;
1136
+ onAbort?: react.ReactEventHandler<HTMLDivElement> | undefined;
1137
+ onAbortCapture?: react.ReactEventHandler<HTMLDivElement> | undefined;
1138
+ onCanPlay?: react.ReactEventHandler<HTMLDivElement> | undefined;
1139
+ onCanPlayCapture?: react.ReactEventHandler<HTMLDivElement> | undefined;
1140
+ onCanPlayThrough?: react.ReactEventHandler<HTMLDivElement> | undefined;
1141
+ onCanPlayThroughCapture?: react.ReactEventHandler<HTMLDivElement> | undefined;
1142
+ onDurationChange?: react.ReactEventHandler<HTMLDivElement> | undefined;
1143
+ onDurationChangeCapture?: react.ReactEventHandler<HTMLDivElement> | undefined;
1144
+ onEmptied?: react.ReactEventHandler<HTMLDivElement> | undefined;
1145
+ onEmptiedCapture?: react.ReactEventHandler<HTMLDivElement> | undefined;
1146
+ onEncrypted?: react.ReactEventHandler<HTMLDivElement> | undefined;
1147
+ onEncryptedCapture?: react.ReactEventHandler<HTMLDivElement> | undefined;
1148
+ onEnded?: react.ReactEventHandler<HTMLDivElement> | undefined;
1149
+ onEndedCapture?: react.ReactEventHandler<HTMLDivElement> | undefined;
1150
+ onLoadedData?: react.ReactEventHandler<HTMLDivElement> | undefined;
1151
+ onLoadedDataCapture?: react.ReactEventHandler<HTMLDivElement> | undefined;
1152
+ onLoadedMetadata?: react.ReactEventHandler<HTMLDivElement> | undefined;
1153
+ onLoadedMetadataCapture?: react.ReactEventHandler<HTMLDivElement> | undefined;
1154
+ onLoadStart?: react.ReactEventHandler<HTMLDivElement> | undefined;
1155
+ onLoadStartCapture?: react.ReactEventHandler<HTMLDivElement> | undefined;
1156
+ onPause?: react.ReactEventHandler<HTMLDivElement> | undefined;
1157
+ onPauseCapture?: react.ReactEventHandler<HTMLDivElement> | undefined;
1158
+ onPlay?: react.ReactEventHandler<HTMLDivElement> | undefined;
1159
+ onPlayCapture?: react.ReactEventHandler<HTMLDivElement> | undefined;
1160
+ onPlaying?: react.ReactEventHandler<HTMLDivElement> | undefined;
1161
+ onPlayingCapture?: react.ReactEventHandler<HTMLDivElement> | undefined;
1162
+ onProgress?: react.ReactEventHandler<HTMLDivElement> | undefined;
1163
+ onProgressCapture?: react.ReactEventHandler<HTMLDivElement> | undefined;
1164
+ onRateChange?: react.ReactEventHandler<HTMLDivElement> | undefined;
1165
+ onRateChangeCapture?: react.ReactEventHandler<HTMLDivElement> | undefined;
1166
+ onSeeked?: react.ReactEventHandler<HTMLDivElement> | undefined;
1167
+ onSeekedCapture?: react.ReactEventHandler<HTMLDivElement> | undefined;
1168
+ onSeeking?: react.ReactEventHandler<HTMLDivElement> | undefined;
1169
+ onSeekingCapture?: react.ReactEventHandler<HTMLDivElement> | undefined;
1170
+ onStalled?: react.ReactEventHandler<HTMLDivElement> | undefined;
1171
+ onStalledCapture?: react.ReactEventHandler<HTMLDivElement> | undefined;
1172
+ onSuspend?: react.ReactEventHandler<HTMLDivElement> | undefined;
1173
+ onSuspendCapture?: react.ReactEventHandler<HTMLDivElement> | undefined;
1174
+ onTimeUpdate?: react.ReactEventHandler<HTMLDivElement> | undefined;
1175
+ onTimeUpdateCapture?: react.ReactEventHandler<HTMLDivElement> | undefined;
1176
+ onVolumeChange?: react.ReactEventHandler<HTMLDivElement> | undefined;
1177
+ onVolumeChangeCapture?: react.ReactEventHandler<HTMLDivElement> | undefined;
1178
+ onWaiting?: react.ReactEventHandler<HTMLDivElement> | undefined;
1179
+ onWaitingCapture?: react.ReactEventHandler<HTMLDivElement> | undefined;
1180
+ onAuxClick?: react.MouseEventHandler<HTMLDivElement> | undefined;
1181
+ onAuxClickCapture?: react.MouseEventHandler<HTMLDivElement> | undefined;
1182
+ onClick?: react.MouseEventHandler<HTMLDivElement> | undefined;
1183
+ onClickCapture?: react.MouseEventHandler<HTMLDivElement> | undefined;
1184
+ onContextMenu?: react.MouseEventHandler<HTMLDivElement> | undefined;
1185
+ onContextMenuCapture?: react.MouseEventHandler<HTMLDivElement> | undefined;
1186
+ onDoubleClick?: react.MouseEventHandler<HTMLDivElement> | undefined;
1187
+ onDoubleClickCapture?: react.MouseEventHandler<HTMLDivElement> | undefined;
1188
+ onDrag?: react.DragEventHandler<HTMLDivElement> | undefined;
1189
+ onDragCapture?: react.DragEventHandler<HTMLDivElement> | undefined;
1190
+ onDragEnd?: react.DragEventHandler<HTMLDivElement> | undefined;
1191
+ onDragEndCapture?: react.DragEventHandler<HTMLDivElement> | undefined;
1192
+ onDragEnter?: react.DragEventHandler<HTMLDivElement> | undefined;
1193
+ onDragEnterCapture?: react.DragEventHandler<HTMLDivElement> | undefined;
1194
+ onDragExit?: react.DragEventHandler<HTMLDivElement> | undefined;
1195
+ onDragExitCapture?: react.DragEventHandler<HTMLDivElement> | undefined;
1196
+ onDragLeave?: react.DragEventHandler<HTMLDivElement> | undefined;
1197
+ onDragLeaveCapture?: react.DragEventHandler<HTMLDivElement> | undefined;
1198
+ onDragOver?: react.DragEventHandler<HTMLDivElement> | undefined;
1199
+ onDragOverCapture?: react.DragEventHandler<HTMLDivElement> | undefined;
1200
+ onDragStart?: react.DragEventHandler<HTMLDivElement> | undefined;
1201
+ onDragStartCapture?: react.DragEventHandler<HTMLDivElement> | undefined;
1202
+ onDrop?: react.DragEventHandler<HTMLDivElement> | undefined;
1203
+ onDropCapture?: react.DragEventHandler<HTMLDivElement> | undefined;
1204
+ onMouseDown?: react.MouseEventHandler<HTMLDivElement> | undefined;
1205
+ onMouseDownCapture?: react.MouseEventHandler<HTMLDivElement> | undefined;
1206
+ onMouseEnter?: react.MouseEventHandler<HTMLDivElement> | undefined;
1207
+ onMouseLeave?: react.MouseEventHandler<HTMLDivElement> | undefined;
1208
+ onMouseMove?: react.MouseEventHandler<HTMLDivElement> | undefined;
1209
+ onMouseMoveCapture?: react.MouseEventHandler<HTMLDivElement> | undefined;
1210
+ onMouseOut?: react.MouseEventHandler<HTMLDivElement> | undefined;
1211
+ onMouseOutCapture?: react.MouseEventHandler<HTMLDivElement> | undefined;
1212
+ onMouseOver?: react.MouseEventHandler<HTMLDivElement> | undefined;
1213
+ onMouseOverCapture?: react.MouseEventHandler<HTMLDivElement> | undefined;
1214
+ onMouseUp?: react.MouseEventHandler<HTMLDivElement> | undefined;
1215
+ onMouseUpCapture?: react.MouseEventHandler<HTMLDivElement> | undefined;
1216
+ onSelect?: react.ReactEventHandler<HTMLDivElement> | undefined;
1217
+ onSelectCapture?: react.ReactEventHandler<HTMLDivElement> | undefined;
1218
+ onTouchCancel?: react.TouchEventHandler<HTMLDivElement> | undefined;
1219
+ onTouchCancelCapture?: react.TouchEventHandler<HTMLDivElement> | undefined;
1220
+ onTouchEnd?: react.TouchEventHandler<HTMLDivElement> | undefined;
1221
+ onTouchEndCapture?: react.TouchEventHandler<HTMLDivElement> | undefined;
1222
+ onTouchMove?: react.TouchEventHandler<HTMLDivElement> | undefined;
1223
+ onTouchMoveCapture?: react.TouchEventHandler<HTMLDivElement> | undefined;
1224
+ onTouchStart?: react.TouchEventHandler<HTMLDivElement> | undefined;
1225
+ onTouchStartCapture?: react.TouchEventHandler<HTMLDivElement> | undefined;
1226
+ onPointerDown?: react.PointerEventHandler<HTMLDivElement> | undefined;
1227
+ onPointerDownCapture?: react.PointerEventHandler<HTMLDivElement> | undefined;
1228
+ onPointerMove?: react.PointerEventHandler<HTMLDivElement> | undefined;
1229
+ onPointerMoveCapture?: react.PointerEventHandler<HTMLDivElement> | undefined;
1230
+ onPointerUp?: react.PointerEventHandler<HTMLDivElement> | undefined;
1231
+ onPointerUpCapture?: react.PointerEventHandler<HTMLDivElement> | undefined;
1232
+ onPointerCancel?: react.PointerEventHandler<HTMLDivElement> | undefined;
1233
+ onPointerCancelCapture?: react.PointerEventHandler<HTMLDivElement> | undefined;
1234
+ onPointerEnter?: react.PointerEventHandler<HTMLDivElement> | undefined;
1235
+ onPointerLeave?: react.PointerEventHandler<HTMLDivElement> | undefined;
1236
+ onPointerOver?: react.PointerEventHandler<HTMLDivElement> | undefined;
1237
+ onPointerOverCapture?: react.PointerEventHandler<HTMLDivElement> | undefined;
1238
+ onPointerOut?: react.PointerEventHandler<HTMLDivElement> | undefined;
1239
+ onPointerOutCapture?: react.PointerEventHandler<HTMLDivElement> | undefined;
1240
+ onGotPointerCapture?: react.PointerEventHandler<HTMLDivElement> | undefined;
1241
+ onGotPointerCaptureCapture?: react.PointerEventHandler<HTMLDivElement> | undefined;
1242
+ onLostPointerCapture?: react.PointerEventHandler<HTMLDivElement> | undefined;
1243
+ onLostPointerCaptureCapture?: react.PointerEventHandler<HTMLDivElement> | undefined;
1244
+ onScroll?: react.UIEventHandler<HTMLDivElement> | undefined;
1245
+ onScrollCapture?: react.UIEventHandler<HTMLDivElement> | undefined;
1246
+ onWheel?: react.WheelEventHandler<HTMLDivElement> | undefined;
1247
+ onWheelCapture?: react.WheelEventHandler<HTMLDivElement> | undefined;
1248
+ onAnimationStart?: react.AnimationEventHandler<HTMLDivElement> | undefined;
1249
+ onAnimationStartCapture?: react.AnimationEventHandler<HTMLDivElement> | undefined;
1250
+ onAnimationEnd?: react.AnimationEventHandler<HTMLDivElement> | undefined;
1251
+ onAnimationEndCapture?: react.AnimationEventHandler<HTMLDivElement> | undefined;
1252
+ onAnimationIteration?: react.AnimationEventHandler<HTMLDivElement> | undefined;
1253
+ onAnimationIterationCapture?: react.AnimationEventHandler<HTMLDivElement> | undefined;
1254
+ onTransitionEnd?: react.TransitionEventHandler<HTMLDivElement> | undefined;
1255
+ onTransitionEndCapture?: react.TransitionEventHandler<HTMLDivElement> | undefined;
1256
+ } & react.RefAttributes<HTMLDivElement>> & {
986
1257
  Header: typeof CardHeader;
987
1258
  Body: typeof CardBody;
988
1259
  Footer: typeof CardFooter;
@@ -995,7 +1266,7 @@ interface AlertProps extends Omit<HTMLAttributes<HTMLDivElement>, "title"> {
995
1266
  icon?: Icon;
996
1267
  }
997
1268
 
998
- declare function Alert({ severity, title, icon, className, children, ...rest }: AlertProps): react.JSX.Element;
1269
+ declare const Alert: react.ForwardRefExoticComponent<AlertProps & react.RefAttributes<HTMLDivElement>>;
999
1270
 
1000
1271
  type TooltipPlacement = "top" | "bottom";
1001
1272
  interface TooltipProps {
@@ -1004,13 +1275,13 @@ interface TooltipProps {
1004
1275
  placement?: TooltipPlacement;
1005
1276
  }
1006
1277
 
1007
- declare function Tooltip({ label, children, placement }: TooltipProps): react.JSX.Element;
1278
+ declare const Tooltip: react.ForwardRefExoticComponent<TooltipProps & react.RefAttributes<HTMLSpanElement>>;
1008
1279
 
1009
1280
  interface SelectOption {
1010
1281
  value: string;
1011
1282
  label: ReactNode;
1012
1283
  }
1013
- interface SelectProps {
1284
+ interface SelectProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange" | "className"> {
1014
1285
  options: SelectOption[];
1015
1286
  value?: string | undefined;
1016
1287
  onChange?: (value: string) => void;
@@ -1019,9 +1290,9 @@ interface SelectProps {
1019
1290
  disabled?: boolean;
1020
1291
  }
1021
1292
 
1022
- declare function Select({ options, value, onChange, placeholder, label, disabled }: SelectProps): react.JSX.Element;
1293
+ declare const Select: react.ForwardRefExoticComponent<SelectProps & react.RefAttributes<HTMLDivElement>>;
1023
1294
 
1024
- interface SliderProps {
1295
+ interface SliderProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "onChange" | "type" | "className" | "value" | "min" | "max" | "step"> {
1025
1296
  value?: number;
1026
1297
  onChange?: (value: number) => void;
1027
1298
  min?: number;
@@ -1031,7 +1302,7 @@ interface SliderProps {
1031
1302
  label?: string;
1032
1303
  }
1033
1304
 
1034
- declare function Slider({ value, onChange, min, max, step, disabled, label, }: SliderProps): react.JSX.Element;
1305
+ declare const Slider: react.ForwardRefExoticComponent<SliderProps & react.RefAttributes<HTMLInputElement>>;
1035
1306
 
1036
1307
  interface AccordionItem {
1037
1308
  id: string;
@@ -1045,7 +1316,7 @@ interface AccordionProps {
1045
1316
  className?: string;
1046
1317
  }
1047
1318
 
1048
- declare function Accordion({ items, multiple, defaultOpen, className, }: AccordionProps): react.JSX.Element;
1319
+ declare const Accordion: react.ForwardRefExoticComponent<AccordionProps & react.RefAttributes<HTMLDivElement>>;
1049
1320
 
1050
1321
  interface Crumb {
1051
1322
  label: ReactNode;
@@ -1055,16 +1326,16 @@ interface BreadcrumbsProps extends HTMLAttributes<HTMLElement> {
1055
1326
  items: Crumb[];
1056
1327
  }
1057
1328
 
1058
- declare function Breadcrumbs({ items, className, ...rest }: BreadcrumbsProps): react.JSX.Element;
1329
+ declare const Breadcrumbs: react.ForwardRefExoticComponent<BreadcrumbsProps & react.RefAttributes<HTMLElement>>;
1059
1330
 
1060
- interface PaginationProps {
1331
+ interface PaginationProps extends Omit<HTMLAttributes<HTMLElement>, "className" | "onChange"> {
1061
1332
  count: number;
1062
1333
  page?: number;
1063
1334
  onChange?: (page: number) => void;
1064
1335
  siblingCount?: number;
1065
1336
  }
1066
1337
 
1067
- declare function Pagination({ count, page, onChange, siblingCount }: PaginationProps): react.JSX.Element;
1338
+ declare const Pagination: react.ForwardRefExoticComponent<PaginationProps & react.RefAttributes<HTMLElement>>;
1068
1339
 
1069
1340
  interface Step {
1070
1341
  label: ReactNode;
@@ -1074,19 +1345,21 @@ interface StepperProps extends HTMLAttributes<HTMLDivElement> {
1074
1345
  active?: number;
1075
1346
  }
1076
1347
 
1077
- declare function Stepper({ steps, active, className, ...rest }: StepperProps): react.JSX.Element;
1348
+ declare const Stepper: react.ForwardRefExoticComponent<StepperProps & react.RefAttributes<HTMLDivElement>>;
1078
1349
 
1079
1350
  interface TabItem {
1080
1351
  value: string;
1081
1352
  label: ReactNode;
1353
+ /** Contenido del panel asociado. Si algún item lo define, Tabs renderiza los tabpanel cableados. */
1354
+ content?: ReactNode;
1082
1355
  }
1083
- interface TabsProps {
1356
+ interface TabsProps extends Omit<HTMLAttributes<HTMLDivElement>, "className" | "onChange"> {
1084
1357
  items: TabItem[];
1085
1358
  value?: string;
1086
1359
  onChange?: (value: string) => void;
1087
1360
  }
1088
1361
 
1089
- declare function Tabs({ items, value, onChange }: TabsProps): react.JSX.Element;
1362
+ declare const Tabs: react.ForwardRefExoticComponent<TabsProps & react.RefAttributes<HTMLDivElement>>;
1090
1363
 
1091
1364
  interface MenuItemDef {
1092
1365
  label: ReactNode;
@@ -1098,7 +1371,7 @@ interface MenuProps {
1098
1371
  items: MenuItemDef[];
1099
1372
  }
1100
1373
 
1101
- declare function Menu({ trigger, items }: MenuProps): react.JSX.Element;
1374
+ declare const Menu: react.ForwardRefExoticComponent<MenuProps & react.RefAttributes<HTMLDivElement>>;
1102
1375
 
1103
1376
  interface DialogProps {
1104
1377
  open: boolean;
@@ -1108,7 +1381,7 @@ interface DialogProps {
1108
1381
  children?: ReactNode;
1109
1382
  }
1110
1383
 
1111
- declare function Dialog({ open, onClose, title, actions, children }: DialogProps): react.ReactPortal | null;
1384
+ declare const Dialog: react.ForwardRefExoticComponent<DialogProps & react.RefAttributes<HTMLDivElement>>;
1112
1385
 
1113
1386
  interface SnackbarProps {
1114
1387
  open: boolean;
@@ -1117,7 +1390,7 @@ interface SnackbarProps {
1117
1390
  onClose?: () => void;
1118
1391
  }
1119
1392
 
1120
- declare function Snackbar({ open, message, action, onClose }: SnackbarProps): react.ReactPortal | null;
1393
+ declare const Snackbar: react.ForwardRefExoticComponent<SnackbarProps & react.RefAttributes<HTMLDivElement>>;
1121
1394
 
1122
1395
  interface TableColumn<Row> {
1123
1396
  key: string;
@@ -1129,16 +1402,21 @@ interface TableProps<Row extends Record<string, unknown>> extends TableHTMLAttri
1129
1402
  columns: TableColumn<Row>[];
1130
1403
  rows: Row[];
1131
1404
  getRowKey?: (row: Row, index: number) => string | number;
1405
+ /** Título accesible de la tabla (`<caption>`). Recomendado para lectores de pantalla. */
1406
+ caption?: ReactNode;
1132
1407
  }
1133
1408
 
1134
- declare function Table<Row extends Record<string, unknown>>({ columns, rows, getRowKey, className, ...rest }: TableProps<Row>): react.JSX.Element;
1409
+ declare function TableInner<Row extends Record<string, unknown>>({ columns, rows, getRowKey, className, caption, ...rest }: TableProps<Row>, ref: Ref<HTMLTableElement>): react.JSX.Element;
1410
+ declare const Table: <Row extends Record<string, unknown>>(props: TableProps<Row> & {
1411
+ ref?: Ref<HTMLTableElement>;
1412
+ }) => ReturnType<typeof TableInner>;
1135
1413
 
1136
1414
  interface AppBarProps extends HTMLAttributes<HTMLElement> {
1137
1415
  brand?: ReactNode;
1138
1416
  actions?: ReactNode;
1139
1417
  }
1140
1418
 
1141
- declare function AppBar({ brand, actions, className, children, ...rest }: AppBarProps): react.JSX.Element;
1419
+ declare const AppBar: react.ForwardRefExoticComponent<AppBarProps & react.RefAttributes<HTMLElement>>;
1142
1420
 
1143
1421
  interface ListItemProps extends HTMLAttributes<HTMLDivElement> {
1144
1422
  leading?: ReactNode;
@@ -1146,7 +1424,7 @@ interface ListItemProps extends HTMLAttributes<HTMLDivElement> {
1146
1424
  selected?: boolean;
1147
1425
  }
1148
1426
 
1149
- declare function ListItem({ leading, trailing, selected, className, children, ...rest }: ListItemProps): react.JSX.Element;
1427
+ declare const ListItem: react.ForwardRefExoticComponent<ListItemProps & react.RefAttributes<HTMLDivElement>>;
1150
1428
 
1151
1429
  declare function ChevronDownIcon({ size, strokeWidth, ...rest }: IconProps): react.JSX.Element;
1152
1430