Skip to content

Instantly share code, notes, and snippets.

@latant
Created October 18, 2024 07:04
Show Gist options
  • Save latant/b63c4ca48b6c0b723fcdaac5ed7c77b3 to your computer and use it in GitHub Desktop.
Save latant/b63c4ca48b6c0b723fcdaac5ed7c77b3 to your computer and use it in GitHub Desktop.
Merging definitions of @mui/material to prop types of OverridableComponents.
import {
AccordionSummaryTypeMap,
AccordionTypeMap,
AppBarTypeMap,
AvatarGroupTypeMap,
AvatarTypeMap,
BackdropTypeMap,
BadgeTypeMap,
BottomNavigationActionTypeMap,
BottomNavigationTypeMap,
BreadcrumbsTypeMap,
ButtonBaseTypeMap,
ButtonGroupTypeMap,
ButtonTypeMap,
CardActionAreaTypeMap,
CardContentTypeMap,
CardHeaderTypeMap,
CardMediaTypeMap,
CardTypeMap,
ChipTypeMap,
ContainerTypeMap,
DialogContentTextTypeMap,
DialogTitleTypeMap,
DividerTypeMap,
FabTypeMap,
FormControlTypeMap,
FormHelperTextTypeMap,
FormLabelTypeMap,
Grid2TypeMap,
GridTypeMap,
IconButtonTypeMap,
IconTypeMap,
ImageListItemTypeMap,
ImageListTypeMap,
InputAdornmentTypeMap,
InputLabelTypeMap,
LinkTypeMap,
ListItemButtonTypeMap,
ListItemTypeMap,
ListSubheaderTypeMap,
ListTypeMap,
MenuItemTypeMap,
MenuListTypeMap,
ModalTypeMap,
PaginationItemTypeMap,
PaperTypeMap,
ScopedCssBaselineTypeMap,
SkeletonTypeMap,
SliderTypeMap,
StackTypeMap,
StepButtonTypeMap,
StepperTypeMap,
StepTypeMap,
SvgIconTypeMap,
TableBodyTypeMap,
TableContainerTypeMap,
TableFooterTypeMap,
TableHeadTypeMap,
TablePaginationTypeMap,
TableRowTypeMap,
TableSortLabelTypeMap,
TableTypeMap,
TabsTypeMap,
TabTypeMap,
ToggleButtonTypeMap,
ToolbarTypeMap,
TypographyTypeMap,
} from "@mui/material";
import {OverridableTypeMap, OverrideProps} from "@mui/material/OverridableComponent";
import {PopperTypeMap} from "@mui/material/Popper/BasePopper.types";
import React from "react";
interface _OverridableComponent<TypeMap extends OverridableTypeMap> {
<RootComponent extends React.ElementType = TypeMap["defaultComponent"]>(
props: (TypeMap["defaultComponent"] extends RootComponent
? {component?: React.ElementType}
: {component: RootComponent}) &
OverrideProps<TypeMap, RootComponent>,
): React.JSX.Element | null;
}
declare module "@mui/material" {
export const Accordion: _OverridableComponent<AccordionTypeMap>;
export const AccordionSummary: _OverridableComponent<AccordionSummaryTypeMap>;
export const AppBar: _OverridableComponent<AppBarTypeMap>;
export const Avatar: _OverridableComponent<AvatarTypeMap>;
export const AvatarGroup: _OverridableComponent<AvatarGroupTypeMap>;
export const Backdrop: _OverridableComponent<BackdropTypeMap>;
export const Badge: _OverridableComponent<BadgeTypeMap>;
export const BottomNavigation: _OverridableComponent<BottomNavigationTypeMap>;
export const BottomNavigationAction: _OverridableComponent<BottomNavigationActionTypeMap>;
export const Breadcrumbs: _OverridableComponent<BreadcrumbsTypeMap>;
export const Button: _OverridableComponent<ButtonTypeMap>;
export const ButtonBase: _OverridableComponent<ButtonBaseTypeMap>;
export const ButtonGroup: _OverridableComponent<ButtonGroupTypeMap>;
export const Card: _OverridableComponent<CardTypeMap>;
export const CardActionArea: _OverridableComponent<CardActionAreaTypeMap>;
export const CardContent: _OverridableComponent<CardContentTypeMap>;
export const CardHeader: _OverridableComponent<CardHeaderTypeMap>;
export const CardMedia: _OverridableComponent<CardMediaTypeMap>;
export const Chip: _OverridableComponent<ChipTypeMap>;
export const Container: _OverridableComponent<ContainerTypeMap>;
export const DialogContentText: _OverridableComponent<DialogContentTextTypeMap>;
export const DialogTitle: _OverridableComponent<DialogTitleTypeMap>;
export const Divider: _OverridableComponent<DividerTypeMap>;
export const Fab: _OverridableComponent<FabTypeMap>;
export const FormControl: _OverridableComponent<FormControlTypeMap>;
export const FormHelperText: _OverridableComponent<FormHelperTextTypeMap>;
export const FormLabel: _OverridableComponent<FormLabelTypeMap>;
export const Grid: _OverridableComponent<GridTypeMap>;
export const Grid2: _OverridableComponent<Grid2TypeMap>;
export const Icon: _OverridableComponent<IconTypeMap>;
export const IconButton: _OverridableComponent<IconButtonTypeMap>;
export const ImageList: _OverridableComponent<ImageListTypeMap>;
export const ImageListItem: _OverridableComponent<ImageListItemTypeMap>;
export const InputAdornment: _OverridableComponent<InputAdornmentTypeMap>;
export const InputLabel: _OverridableComponent<InputLabelTypeMap>;
export const Link: _OverridableComponent<LinkTypeMap>;
export const List: _OverridableComponent<ListTypeMap>;
export const ListItem: _OverridableComponent<ListItemTypeMap>;
export const ListItemButton: _OverridableComponent<ListItemButtonTypeMap>;
export const ListSubheader: _OverridableComponent<ListSubheaderTypeMap>;
export const MenuItem: _OverridableComponent<MenuItemTypeMap>;
export const MenuList: _OverridableComponent<MenuListTypeMap>;
export const Modal: _OverridableComponent<ModalTypeMap>;
export const PaginationItem: _OverridableComponent<PaginationItemTypeMap>;
export const Paper: _OverridableComponent<PaperTypeMap>;
export const Popper: _OverridableComponent<PopperTypeMap>;
export const ScopedCssBaseline: _OverridableComponent<ScopedCssBaselineTypeMap>;
export const Skeleton: _OverridableComponent<SkeletonTypeMap>;
export const Slider: _OverridableComponent<SliderTypeMap>;
export const Stack: _OverridableComponent<StackTypeMap>;
export const Step: _OverridableComponent<StepTypeMap>;
export const StepButton: _OverridableComponent<StepButtonTypeMap>;
export const Stepper: _OverridableComponent<StepperTypeMap>;
export const SvgIcon: _OverridableComponent<SvgIconTypeMap>;
export const Tab: _OverridableComponent<TabTypeMap>;
export const Table: _OverridableComponent<TableTypeMap>;
export const TableBody: _OverridableComponent<TableBodyTypeMap>;
export const TableContainer: _OverridableComponent<TableContainerTypeMap>;
export const TableFooter: _OverridableComponent<TableFooterTypeMap>;
export const TableHead: _OverridableComponent<TableHeadTypeMap>;
export const TablePagination: _OverridableComponent<TablePaginationTypeMap>;
export const TableRow: _OverridableComponent<TableRowTypeMap>;
export const TableSortLabel: _OverridableComponent<TableSortLabelTypeMap>;
export const Tabs: _OverridableComponent<TabsTypeMap>;
export const ToggleButton: _OverridableComponent<ToggleButtonTypeMap>;
export const Toolbar: _OverridableComponent<ToolbarTypeMap>;
export const Typography: _OverridableComponent<TypographyTypeMap>;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment