Skip to content
Open
Show file tree
Hide file tree
Changes from 14 commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
03e0443
add perf-test
siriwatknp Oct 10, 2025
4d89fcf
migrate to stylesOptimized
siriwatknp Oct 10, 2025
1e958dd
move Theme to stylesOptimized
siriwatknp Oct 10, 2025
054d4e1
mirror exports part 1
siriwatknp Oct 13, 2025
0607504
finish mirror exports
siriwatknp Oct 13, 2025
e69ff50
rexport CssThemeVariables
siriwatknp Oct 13, 2025
f129fe4
move to stylesOptimized
siriwatknp Oct 13, 2025
35135b1
reexport Theme with augmenting ThemeComponents
siriwatknp Oct 14, 2025
ccebdd4
fix lint
siriwatknp Oct 14, 2025
08993f2
Merge branch 'master' of github.com:mui/material-ui into fix/types-th…
siriwatknp Oct 14, 2025
e6f3e54
fix lint
siriwatknp Oct 14, 2025
e050e50
export component theme
siriwatknp Oct 14, 2025
7f0b2f8
finish ComponentTheme
siriwatknp Oct 14, 2025
3307ce5
fix missing imports
siriwatknp Oct 14, 2025
43199f8
fix: make styleOverrides record partial
siriwatknp Oct 20, 2025
9ebbead
add ts-performance test
siriwatknp Oct 22, 2025
b6befb4
remove temp test
siriwatknp Oct 22, 2025
8d062e8
update docs
siriwatknp Oct 22, 2025
7b1a6f7
Merge branch 'master' of github.com:mui/material-ui into fix/types-th…
siriwatknp Oct 22, 2025
fb57fba
update lock file
siriwatknp Oct 22, 2025
0bb8580
fix non-breaking space
siriwatknp Oct 22, 2025
5f769c0
pnpm dedupe
siriwatknp Oct 22, 2025
6a50195
fix themeCssVarsAugmentation to augment stylesOptimized
siriwatknp Oct 22, 2025
28befd2
export lab component theme types
siriwatknp Oct 22, 2025
61ac3e1
make the component theme optional
siriwatknp Oct 27, 2025
5d617a3
switch to esm
siriwatknp Oct 30, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions packages/mui-material/perf-test/test-createTheme.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import * as React from 'react';
import Button from '@mui/material/Button';
import { createTheme } from '@mui/material/stylesOptimized';

<Button />;

export default createTheme({
components: {
MuiButton: {
defaultProps: {
disableElevation: true,
},
},
},
});
7 changes: 7 additions & 0 deletions packages/mui-material/perf-test/tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"extends": "../../../tsconfig.json",
"include": ["test-createTheme.tsx"],
"compilerOptions": {
"moduleResolution": "Bundler"
}
}
8 changes: 6 additions & 2 deletions packages/mui-material/src/Accordion/Accordion.d.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import * as React from 'react';
import { SxProps } from '@mui/system';
import { Theme } from '../styles';
import { CreateThemeComponent, Theme } from '../stylesOptimized';
import { TransitionProps } from '../transitions/transition';
import { AccordionClasses } from './accordionClasses';
import { AccordionClasses, AccordionClassKey } from './accordionClasses';
import { OverridableComponent, OverrideProps } from '../OverridableComponent';
import { ExtendPaperTypeMap, PaperProps } from '../Paper/Paper';
import { CreateSlotsAndSlotProps, SlotComponentProps, SlotProps } from '../utils/types';
Expand Down Expand Up @@ -157,4 +157,8 @@ export type AccordionProps<

export interface AccordionOwnerState extends AccordionProps {}

export type AccordionTheme = {
MuiAccordion: CreateThemeComponent<AccordionClassKey, AccordionProps>;
};

export default Accordion;
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import * as React from 'react';
import { SxProps } from '@mui/system';
import { Theme } from '../styles';
import { CreateThemeComponent, Theme } from '../stylesOptimized';
import { InternalStandardProps as StandardProps } from '../internal';
import { AccordionActionsClasses } from './accordionActionsClasses';
import { AccordionActionsClasses, AccordionActionsClassKey } from './accordionActionsClasses';

export interface AccordionActionsProps extends StandardProps<React.HTMLAttributes<HTMLDivElement>> {
/**
Expand Down Expand Up @@ -35,3 +35,7 @@ export interface AccordionActionsProps extends StandardProps<React.HTMLAttribute
* - [AccordionActions API](https://mui.com/material-ui/api/accordion-actions/)
*/
export default function AccordionActions(props: AccordionActionsProps): React.JSX.Element;

export type AccordionActionsTheme = {
MuiAccordionActions: CreateThemeComponent<AccordionActionsClassKey, AccordionActionsProps>;
};
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import * as React from 'react';
import { SxProps } from '@mui/system';
import { Theme } from '../styles';
import { CreateThemeComponent, Theme } from '../stylesOptimized';
import { InternalStandardProps as StandardProps } from '../internal';
import { AccordionDetailsClasses } from './accordionDetailsClasses';
import { AccordionDetailsClasses, AccordionDetailsClassKey } from './accordionDetailsClasses';

export interface AccordionDetailsProps extends StandardProps<React.HTMLAttributes<HTMLDivElement>> {
/**
Expand Down Expand Up @@ -30,3 +30,7 @@ export interface AccordionDetailsProps extends StandardProps<React.HTMLAttribute
* - [AccordionDetails API](https://mui.com/material-ui/api/accordion-details/)
*/
export default function AccordionDetails(props: AccordionDetailsProps): React.JSX.Element;

export type AccordionDetailsTheme = {
MuiAccordionDetails: CreateThemeComponent<AccordionDetailsClassKey, AccordionDetailsProps>;
};
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ import { SxProps } from '@mui/system';
import { ButtonBaseProps, ExtendButtonBase, ExtendButtonBaseTypeMap } from '../ButtonBase';
import { OverrideProps } from '../OverridableComponent';
import { CreateSlotsAndSlotProps, SlotProps } from '../utils/types';
import { Theme } from '../styles';
import { AccordionSummaryClasses } from './accordionSummaryClasses';
import { CreateThemeComponent, Theme } from '../stylesOptimized';
import { AccordionSummaryClasses, AccordionSummaryClassKey } from './accordionSummaryClasses';

export interface AccordionSummarySlots {
/**
Expand Down Expand Up @@ -108,4 +108,8 @@ export type AccordionSummaryProps<
component?: React.ElementType;
};

export type AccordionSummaryTheme = {
MuiAccordionSummary: CreateThemeComponent<AccordionSummaryClassKey, AccordionSummaryProps>;
};

export default AccordionSummary;
8 changes: 6 additions & 2 deletions packages/mui-material/src/Alert/Alert.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@ import * as React from 'react';
import { OverridableStringUnion } from '@mui/types';
import { SxProps } from '@mui/system';
import { SvgIconProps } from '../SvgIcon';
import { Theme } from '../styles';
import { CreateThemeComponent, Theme } from '../stylesOptimized';
import { InternalStandardProps as StandardProps } from '../internal';
import { IconButtonProps } from '../IconButton';
import { PaperProps } from '../Paper';
import { AlertClasses } from './alertClasses';
import { AlertClasses, AlertClassKey } from './alertClasses';
import { CreateSlotsAndSlotProps, SlotProps } from '../utils/types';

export type AlertColor = 'success' | 'info' | 'warning' | 'error';
Expand Down Expand Up @@ -203,3 +203,7 @@ export interface AlertOwnerState extends AlertProps {}
* - inherits [Paper API](https://mui.com/material-ui/api/paper/)
*/
export default function Alert(props: AlertProps): React.JSX.Element;

export type AlertTheme = {
MuiAlert: CreateThemeComponent<AlertClassKey, AlertProps>;
};
8 changes: 6 additions & 2 deletions packages/mui-material/src/AlertTitle/AlertTitle.d.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import * as React from 'react';
import { SxProps } from '@mui/system';
import { Theme } from '../styles';
import { CreateThemeComponent, Theme } from '../stylesOptimized';
import { TypographyProps } from '../Typography';
import { AlertTitleClasses } from './alertTitleClasses';
import { AlertTitleClasses, AlertTitleClassKey } from './alertTitleClasses';

export interface AlertTitleProps extends TypographyProps<'div'> {
/**
Expand Down Expand Up @@ -31,3 +31,7 @@ export interface AlertTitleProps extends TypographyProps<'div'> {
* - inherits [Typography API](https://mui.com/material-ui/api/typography/)
*/
export default function AlertTitle(props: AlertTitleProps): React.JSX.Element;

export type AlertTitleTheme = {
MuiAlertTitle: CreateThemeComponent<AlertTitleClassKey, AlertTitleProps>;
};
8 changes: 6 additions & 2 deletions packages/mui-material/src/AppBar/AppBar.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ import * as React from 'react';
import { SxProps } from '@mui/system';
import { OverridableStringUnion } from '@mui/types';
import { OverridableComponent, OverrideProps } from '../OverridableComponent';
import { PropTypes, Theme } from '../styles';
import { AppBarClasses } from './appBarClasses';
import { CreateThemeComponent, PropTypes, Theme } from '../stylesOptimized';
import { AppBarClasses, AppBarClassKey } from './appBarClasses';
import { ExtendPaperTypeMap } from '../Paper/Paper';

export interface AppBarPropsColorOverrides {}
Expand Down Expand Up @@ -73,4 +73,8 @@ export type AppBarProps<
component?: React.ElementType;
};

export type AppBarTheme = {
MuiAppBar: CreateThemeComponent<AppBarClassKey, AppBarProps>;
};

export default AppBar;
11 changes: 9 additions & 2 deletions packages/mui-material/src/Autocomplete/Autocomplete.d.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import * as React from 'react';
import { SxProps } from '@mui/system';
import { OverridableStringUnion } from '@mui/types';
import { Theme } from '../styles';
import { CreateThemeComponent, Theme } from '../stylesOptimized';
import { InternalStandardProps as StandardProps } from '../internal';
import { IconButtonProps } from '../IconButton';
import { ChipProps, ChipTypeMap } from '../Chip';
Expand All @@ -17,7 +17,7 @@ import useAutocomplete, {
UseAutocompleteProps,
AutocompleteFreeSoloValueMapping,
} from '../useAutocomplete';
import { AutocompleteClasses } from './autocompleteClasses';
import { AutocompleteClasses, AutocompleteClassKey } from './autocompleteClasses';
import { CreateSlotsAndSlotProps, SlotProps } from '../utils/types';

export interface AutocompletePaperSlotPropsOverrides {}
Expand Down Expand Up @@ -421,3 +421,10 @@ export default function Autocomplete<
>(
props: AutocompleteProps<Value, Multiple, DisableClearable, FreeSolo, ChipComponent>,
): React.JSX.Element;

export type AutocompleteTheme = {
MuiAutocomplete: CreateThemeComponent<
AutocompleteClassKey,
AutocompleteProps<any, any, any, any>
>;
};
8 changes: 6 additions & 2 deletions packages/mui-material/src/Avatar/Avatar.d.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import * as React from 'react';
import { SxProps } from '@mui/system';
import { OverridableStringUnion } from '@mui/types';
import { Theme } from '../styles';
import { CreateThemeComponent, Theme } from '../stylesOptimized';
import { OverridableComponent, OverrideProps } from '../OverridableComponent';
import { AvatarClasses } from './avatarClasses';
import { AvatarClasses, AvatarClassKey } from './avatarClasses';
import { CreateSlotsAndSlotProps, SlotProps } from '../utils/types';
import { SvgIconProps } from '../SvgIcon';

Expand Down Expand Up @@ -130,4 +130,8 @@ export type AvatarProps<
component?: React.ElementType;
};

export type AvatarTheme = {
MuiAvatar: CreateThemeComponent<AvatarClassKey, AvatarProps>;
};

export default Avatar;
8 changes: 6 additions & 2 deletions packages/mui-material/src/AvatarGroup/AvatarGroup.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ import {
PartiallyRequired,
} from '@mui/types';
import { SxProps } from '@mui/system';
import { Theme } from '../styles';
import { AvatarGroupClasses } from './avatarGroupClasses';
import { CreateThemeComponent, Theme } from '../stylesOptimized';
import { AvatarGroupClasses, AvatarGroupClassKey } from './avatarGroupClasses';
import Avatar from '../Avatar';
import { CreateSlotsAndSlotProps, SlotProps } from '../utils/types';

Expand Down Expand Up @@ -125,4 +125,8 @@ export type AvatarGroupProps<
export interface AvatarGroupOwnerState
extends PartiallyRequired<AvatarGroupProps, 'max' | 'spacing' | 'component' | 'variant'> {}

export type AvatarGroupTheme = {
MuiAvatarGroup: CreateThemeComponent<AvatarGroupClassKey, AvatarGroupProps>;
};

export default AvatarGroup;
8 changes: 6 additions & 2 deletions packages/mui-material/src/Backdrop/Backdrop.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ import * as React from 'react';
import { SxProps } from '@mui/system';
import { FadeProps } from '../Fade';
import { TransitionProps } from '../transitions/transition';
import { Theme } from '../styles';
import { BackdropClasses } from './backdropClasses';
import { CreateThemeComponent, Theme } from '../stylesOptimized';
import { BackdropClasses, BackdropClassKey } from './backdropClasses';
import { OverridableComponent, OverrideProps } from '../OverridableComponent';
import { CreateSlotsAndSlotProps, SlotComponentProps, SlotProps } from '../utils/types';

Expand Down Expand Up @@ -142,4 +142,8 @@ export type BackdropProps<

export interface BackdropOwnerState extends BackdropProps {}

export type BackdropTheme = {
MuiBackdrop: CreateThemeComponent<BackdropClassKey, BackdropProps>;
};

export default Backdrop;
8 changes: 6 additions & 2 deletions packages/mui-material/src/Badge/Badge.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ import * as React from 'react';
import { SxProps } from '@mui/system';
import { OverridableStringUnion, Simplify } from '@mui/types';
import { CreateSlotsAndSlotProps, SlotProps } from '../utils/types';
import { Theme } from '../styles';
import { CreateThemeComponent, Theme } from '../stylesOptimized';
import { OverridableComponent, OverrideProps } from '../OverridableComponent';
import { BadgeClasses } from './badgeClasses';
import { BadgeClasses, BadgeClassKey } from './badgeClasses';

export interface BadgePropsVariantOverrides {}
export interface BadgePropsColorOverrides {}
Expand Down Expand Up @@ -182,4 +182,8 @@ export type BadgeProps<
component?: React.ElementType;
};

export type BadgeTheme = {
MuiBadge: CreateThemeComponent<BadgeClassKey, BadgeProps>;
};

export default Badge;
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import * as React from 'react';
import { SxProps } from '@mui/system';
import { Theme } from '../styles';
import { CreateThemeComponent, Theme } from '../stylesOptimized';
import { OverridableComponent, OverrideProps } from '../OverridableComponent';
import { BottomNavigationClasses } from './bottomNavigationClasses';
import { BottomNavigationClasses, BottomNavigationClassKey } from './bottomNavigationClasses';

export interface BottomNavigationOwnProps {
/**
Expand Down Expand Up @@ -62,4 +62,8 @@ export type BottomNavigationProps<
component?: React.ElementType;
};

export type BottomNavigationTheme = {
MuiBottomNavigation: CreateThemeComponent<BottomNavigationClassKey, BottomNavigationProps>;
};

export default BottomNavigation;
Original file line number Diff line number Diff line change
@@ -1,15 +1,18 @@
import * as React from 'react';
import { SxProps } from '@mui/system';
import { CreateSlotsAndSlotProps, SlotProps } from '../utils/types';
import { Theme } from '../styles';
import { CreateThemeComponent, Theme } from '../stylesOptimized';
import {
ButtonBaseProps,
ButtonBaseTypeMap,
ExtendButtonBase,
ExtendButtonBaseTypeMap,
} from '../ButtonBase';
import { OverrideProps } from '../OverridableComponent';
import { BottomNavigationActionClasses } from './bottomNavigationActionClasses';
import {
BottomNavigationActionClasses,
BottomNavigationActionClassKey,
} from './bottomNavigationActionClasses';

export interface BottomNavigationActionSlots {
/**
Expand Down Expand Up @@ -109,4 +112,11 @@ export type BottomNavigationActionProps<
export interface BottomNavigationActionOwnerState
extends Omit<BottomNavigationActionProps, 'slots' | 'slotProps'> {}

export type BottomNavigationActionTheme = {
MuiBottomNavigationAction: CreateThemeComponent<
BottomNavigationActionClassKey,
BottomNavigationActionProps
>;
};

export default BottomNavigationAction;
2 changes: 1 addition & 1 deletion packages/mui-material/src/Box/Box.d.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { BoxTypeMap } from '@mui/system';
import { OverridableComponent } from '@mui/types';
import { OverrideProps } from '../OverridableComponent';
import { Theme as MaterialTheme } from '../styles';
import { Theme as MaterialTheme } from '../stylesOptimized';

/**
*
Expand Down
8 changes: 6 additions & 2 deletions packages/mui-material/src/Breadcrumbs/Breadcrumbs.d.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import * as React from 'react';
import { SxProps } from '@mui/system';
import { SlotComponentProps } from '../utils/types';
import { Theme } from '../styles';
import { CreateThemeComponent, Theme } from '../stylesOptimized';
import { OverridableComponent, OverrideProps } from '../OverridableComponent';
import { BreadcrumbsClasses } from './breadcrumbsClasses';
import { BreadcrumbsClasses, BreadcrumbsClassKey } from './breadcrumbsClasses';
import SvgIcon from '../SvgIcon';

export interface BreadcrumbsCollapsedIconSlotPropsOverrides {}
Expand Down Expand Up @@ -107,4 +107,8 @@ export type BreadcrumbsProps<
component?: React.ElementType;
};

export type BreadcrumbsTheme = {
MuiBreadcrumbs: CreateThemeComponent<BreadcrumbsClassKey, BreadcrumbsProps>;
};

export default Breadcrumbs;
8 changes: 6 additions & 2 deletions packages/mui-material/src/Button/Button.d.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import * as React from 'react';
import { DistributiveOmit, OverridableStringUnion } from '@mui/types';
import { SxProps } from '@mui/system';
import { Theme } from '../styles';
import { CreateThemeComponent, Theme } from '../stylesOptimized';
import { ExtendButtonBase, ExtendButtonBaseTypeMap } from '../ButtonBase';
import { OverrideProps, OverridableComponent, OverridableTypeMap } from '../OverridableComponent';
import { ButtonClasses } from './buttonClasses';
import { ButtonClasses, ButtonClassKey } from './buttonClasses';

export interface ButtonPropsVariantOverrides {}

Expand Down Expand Up @@ -146,4 +146,8 @@ export type ButtonProps<
component?: React.ElementType;
};

export type ButtonTheme = {
MuiButton: CreateThemeComponent<ButtonClassKey, ButtonProps>;
};

export default Button;
8 changes: 6 additions & 2 deletions packages/mui-material/src/ButtonBase/ButtonBase.d.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import * as React from 'react';
import { SxProps } from '@mui/system';
import { Theme } from '../styles';
import { CreateThemeComponent, Theme } from '../stylesOptimized';
import { TouchRippleActions, TouchRippleProps } from './TouchRipple';
import { OverrideProps, OverridableComponent, OverridableTypeMap } from '../OverridableComponent';
import { ButtonBaseClasses } from './buttonBaseClasses';
import { ButtonBaseClasses, ButtonBaseClassKey } from './buttonBaseClasses';

export { TouchRippleActions, TouchRippleProps };

Expand Down Expand Up @@ -136,4 +136,8 @@ export interface ButtonBaseActions {
focusVisible(): void;
}

export type ButtonBaseTheme = {
MuiButtonBase: CreateThemeComponent<ButtonBaseClassKey, ButtonBaseProps>;
};

export default ButtonBase;
Loading
Loading