import { GlobalStateSlot } from '@mui/utils'; import { CSSInterpolation } from '@mui/system'; import { AccordionProps, AccordionOwnerState, AccordionSlot } from '../Accordion/AccordionProps'; import { AccordionGroupProps, AccordionGroupOwnerState, AccordionGroupSlot, } from '../AccordionGroup/AccordionGroupProps'; import { AccordionSummaryProps, AccordionSummaryOwnerState, AccordionSummarySlot, } from '../AccordionSummary/AccordionSummaryProps'; import { AccordionDetailsProps, AccordionDetailsOwnerState, AccordionDetailsSlot, } from '../AccordionDetails/AccordionDetailsProps'; import { AspectRatioProps, AspectRatioOwnerState, AspectRatioSlot, } from '../AspectRatio/AspectRatioProps'; import { AutocompleteProps, AutocompleteOwnerState, AutocompleteSlot, } from '../Autocomplete/AutocompleteProps'; import { AutocompleteListboxProps, AutocompleteListboxOwnerState, AutocompleteListboxSlot, } from '../AutocompleteListbox/AutocompleteListboxProps'; import { AutocompleteOptionProps, AutocompleteOptionOwnerState, AutocompleteOptionSlot, } from '../AutocompleteOption/AutocompleteOptionProps'; import { AvatarProps, AvatarOwnerState, AvatarSlot } from '../Avatar/AvatarProps'; import { AvatarGroupProps, AvatarGroupOwnerState, AvatarGroupSlot, } from '../AvatarGroup/AvatarGroupProps'; import { BadgeProps, BadgeOwnerState, BadgeSlot } from '../Badge/BadgeProps'; import { AlertProps, AlertOwnerState, AlertSlot } from '../Alert/AlertProps'; import { BoxProps, BoxSlot } from '../Box/BoxProps'; import { BreadcrumbsProps, BreadcrumbsOwnerState, BreadcrumbsSlot, } from '../Breadcrumbs/BreadcrumbsProps'; import { ButtonProps, ButtonOwnerState, ButtonSlot } from '../Button/ButtonProps'; import { ButtonGroupProps, ButtonGroupOwnerState, ButtonGroupSlot, } from '../ButtonGroup/ButtonGroupProps'; import { CardProps, CardOwnerState, CardSlot } from '../Card/CardProps'; import { CardActionsProps, CardActionsOwnerState, CardActionsSlot, } from '../CardActions/CardActionsProps'; import { CardContentProps, CardContentOwnerState, CardContentSlot, } from '../CardContent/CardContentProps'; import { CardCoverProps, CardCoverOwnerState, CardCoverSlot } from '../CardCover/CardCoverProps'; import { CardOverflowProps, CardOverflowOwnerState, CardOverflowSlot, } from '../CardOverflow/CardOverflowProps'; import { CheckboxProps, CheckboxOwnerState, CheckboxSlot } from '../Checkbox/CheckboxProps'; import { ChipProps, ChipOwnerState, ChipSlot } from '../Chip/ChipProps'; import { ChipDeleteProps, ChipDeleteOwnerState, ChipDeleteSlot, } from '../ChipDelete/ChipDeleteProps'; import { CircularProgressProps, CircularProgressOwnerState, CircularProgressSlot, } from '../CircularProgress/CircularProgressProps'; import { ContainerProps, ContainerSlot } from '../Container/ContainerProps'; import { DialogActionsProps, DialogActionsOwnerState, DialogActionsSlot, } from '../DialogActions/DialogActionsProps'; import { DialogContentProps, DialogContentOwnerState, DialogContentSlot, } from '../DialogContent/DialogContentProps'; import { DialogTitleProps, DialogTitleOwnerState, DialogTitleSlot, } from '../DialogTitle/DialogTitleProps'; import { DrawerProps, DrawerOwnerState, DrawerSlot } from '../Drawer/DrawerProps'; import { ScopedCssBaselineProps, ScopedCssBaselineOwnerState, ScopedCssBaselineSlot, } from '../ScopedCssBaseline/ScopedCssBaselineProps'; import { DividerProps, DividerOwnerState, DividerSlot } from '../Divider/DividerProps'; import { FormControlProps, FormControlOwnerState, FormControlSlot, } from '../FormControl/FormControlProps'; import { FormHelperTextProps, FormHelperTextOwnerState, FormHelperTextSlot, } from '../FormHelperText/FormHelperTextProps'; import { FormLabelProps, FormLabelOwnerState, FormLabelSlot } from '../FormLabel/FormLabelProps'; import { GridProps, GridSlot } from '../Grid/GridProps'; import { IconButtonProps, IconButtonOwnerState, IconButtonSlot, } from '../IconButton/IconButtonProps'; import { InputProps, InputOwnerState, InputSlot } from '../Input/InputProps'; import { LinearProgressProps, LinearProgressOwnerState, LinearProgressSlot, } from '../LinearProgress/LinearProgressProps'; import { LinkProps, LinkOwnerState, LinkSlot } from '../Link/LinkProps'; import { ListProps, ListOwnerState, ListSlot } from '../List/ListProps'; import { ListDividerProps, ListDividerOwnerState, ListDividerSlot, } from '../ListDivider/ListDividerProps'; import { ListSubheaderProps, ListSubheaderOwnerState, ListSubheaderSlot, } from '../ListSubheader/ListSubheaderProps'; import { ListItemProps, ListItemOwnerState, ListItemSlot } from '../ListItem/ListItemProps'; import { ListItemButtonProps, ListItemButtonOwnerState, ListItemButtonSlot, } from '../ListItemButton/ListItemButtonProps'; import { ListItemContentProps, ListItemContentOwnerState, ListItemContentSlot, } from '../ListItemContent/ListItemContentProps'; import { ListItemDecoratorOwnerState, ListItemDecoratorProps, ListItemDecoratorSlot, } from '../ListItemDecorator/ListItemDecoratorProps'; import { MenuProps, MenuOwnerState, MenuSlot } from '../Menu/MenuProps'; import { type MenuButtonOwnerState, type MenuButtonProps, type MenuButtonSlot, } from '../MenuButton/MenuButtonProps'; import { MenuItemProps, MenuItemOwnerState, MenuItemSlot } from '../MenuItem/MenuItemProps'; import { MenuListProps, MenuListOwnerState, MenuListSlot } from '../MenuList/MenuListProps'; import { ModalProps, ModalOwnerState, ModalSlot } from '../Modal/ModalProps'; import { ModalCloseProps, ModalCloseOwnerState, ModalCloseSlot, } from '../ModalClose/ModalCloseProps'; import { ModalDialogProps, ModalDialogOwnerState, ModalDialogSlot, } from '../ModalDialog/ModalDialogProps'; import { ModalOverflowProps, ModalOverflowOwnerState, ModalOverflowSlot, } from '../ModalOverflow/ModalOverflowProps'; import { RadioProps, RadioOwnerState, RadioSlot } from '../Radio/RadioProps'; import { RadioGroupProps, RadioGroupOwnerState, RadioGroupSlot, } from '../RadioGroup/RadioGroupProps'; import { SheetProps, SheetOwnerState, SheetSlot } from '../Sheet/SheetProps'; import { SkeletonProps, SkeletonOwnerState, SkeletonSlot } from '../Skeleton/SkeletonProps'; import { SelectProps, SelectOwnerState, SelectSlot } from '../Select/SelectProps'; import { OptionProps, OptionOwnerState, OptionSlot } from '../Option/OptionProps'; import { SliderProps, SliderOwnerState, SliderSlot } from '../Slider/SliderProps'; import { SnackbarProps, SnackbarOwnerState, SnackbarSlot } from '../Snackbar/SnackbarProps'; import { StackProps, StackSlot } from '../Stack/StackProps'; import { StepperProps, StepperOwnerState, StepperSlot } from '../Stepper/StepperProps'; import { StepProps, StepOwnerState, StepSlot } from '../Step/StepProps'; import { StepButtonProps, StepButtonOwnerState, StepButtonSlot, } from '../StepButton/StepButtonProps'; import { StepIndicatorProps, StepIndicatorOwnerState, StepIndicatorSlot, } from '../StepIndicator/StepIndicatorProps'; import { SvgIconProps, SvgIconOwnerState, SvgIconSlot } from '../SvgIcon/SvgIconProps'; import { SwitchProps, SwitchOwnerState, SwitchSlot } from '../Switch/SwitchProps'; import { ToggleButtonGroupProps, ToggleButtonGroupOwnerState, ToggleButtonGroupSlot, } from '../ToggleButtonGroup/ToggleButtonGroupProps'; import { TabProps, TabOwnerState, TabSlot } from '../Tab/TabProps'; import { TabListProps, TabListOwnerState, TabListSlot } from '../TabList/TabListProps'; import { TabPanelProps, TabPanelOwnerState, TabPanelSlot } from '../TabPanel/TabPanelProps'; import { TabsProps, TabsOwnerState, TabsSlot } from '../Tabs/TabsProps'; import { TableProps, TableOwnerState, TableSlot } from '../Table/TableProps'; import { TooltipProps, TooltipOwnerState, TooltipSlot } from '../Tooltip/TooltipProps'; import { TypographyProps, TypographyOwnerState, TypographySlot, } from '../Typography/TypographyProps'; import { TextareaProps, TextareaOwnerState, TextareaSlot } from '../Textarea/TextareaProps'; export type StyleOverrides< SlotName extends string = string, ComponentOwnerState = Record, Theme = unknown, > = Partial< Record< Exclude, | CSSInterpolation | (( // Record is for other props that the slot receive internally // Documenting all ownerStates could be a huge work, let's wait until we have a real needs from developers. props: { ownerState: ComponentOwnerState & Record; theme: Theme; } & Record, ) => CSSInterpolation) > >; export interface Components { // alphabetical order JoyAccordion?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyAccordionGroup?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyAccordionSummary?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyAccordionDetails?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyAlert?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyAspectRatio?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyAutocomplete?: { defaultProps?: Partial>; styleOverrides?: StyleOverrides< AutocompleteSlot, AutocompleteOwnerState, Theme >; }; JoyAutocompleteListbox?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyAutocompleteOption?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyAvatar?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyAvatarGroup?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyBadge?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyBox?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyButton?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyButtonGroup?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyBreadcrumbs?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyCircularProgress?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyCard?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyCardActions?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyCardContent?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyCardCover?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyCardOverflow?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyCheckbox?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyChip?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyChipDelete?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyContainer?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyDialogActions?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyDialogContent?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyDialogTitle?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyDrawer?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyScopedCssBaseline?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyDivider?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyFormControl?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyFormHelperText?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyFormLabel?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyGrid?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyIconButton?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyInput?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyLinearProgress?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyLink?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyList?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyListDivider?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyListSubheader?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyListItem?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyListItemButton?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyListItemContent?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyListItemDecorator?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyRadio?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyRadioGroup?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoySelect?: { defaultProps?: Partial>; styleOverrides?: StyleOverrides, Theme>; }; JoyOption?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoySheet?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoySkeleton?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyStack?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyStepper?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyStep?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyStepButton?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyStepIndicator?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoySwitch?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; // Temporary for Material UI icons usage MuiSvgIcon?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoySvgIcon?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoySlider?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoySnackbar?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyTabs?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyTable?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyTabList?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyTab?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyTabPanel?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyTextarea?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyToggleButtonGroup?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyTooltip?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyTypography?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyMenu?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyMenuButton?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyMenuList?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyMenuItem?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyModal?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyModalClose?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyModalDialog?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; JoyModalOverflow?: { defaultProps?: Partial; styleOverrides?: StyleOverrides; }; }