diff --git a/packages/theme/src/types.ts b/packages/theme/src/types.ts index 143ccbabaa..8f71ce4292 100644 --- a/packages/theme/src/types.ts +++ b/packages/theme/src/types.ts @@ -104,3 +104,13 @@ export type PageTheme = { backgroundImage: string; fontColor: string; }; + +/** + * Backstage specific additions to the material-ui theme. + * + * @public + */ +export type BackstageThemeAdditions = { + page: PageTheme; + getPageTheme: (selector: PageThemeSelector) => PageTheme; +}; diff --git a/packages/theme/src/v4/types.ts b/packages/theme/src/v4/types.ts index 7a292fe0a1..e21ced6e94 100644 --- a/packages/theme/src/v4/types.ts +++ b/packages/theme/src/v4/types.ts @@ -21,6 +21,7 @@ import { } from '@material-ui/core/styles/createPalette'; import { BackstagePaletteAdditions, + BackstageThemeAdditions, PageTheme, PageThemeSelector, } from '../types'; @@ -93,13 +94,7 @@ declare module '@material-ui/core/styles/createPalette' { } declare module '@material-ui/core/styles/createTheme' { - interface Theme { - page: PageTheme; - getPageTheme: (selector: PageThemeSelector) => PageTheme; - } + interface Theme extends BackstageThemeAdditions {} - interface ThemeOptions { - page: PageTheme; - getPageTheme: (selector: PageThemeSelector) => PageTheme; - } + interface ThemeOptions extends BackstageThemeAdditions {} } diff --git a/packages/theme/src/v5/types.ts b/packages/theme/src/v5/types.ts index d1ffdf2e80..d3cf97411d 100644 --- a/packages/theme/src/v5/types.ts +++ b/packages/theme/src/v5/types.ts @@ -14,11 +14,7 @@ * limitations under the License. */ -import { - BackstagePaletteAdditions, - PageTheme, - PageThemeSelector, -} from '../types'; +import { BackstagePaletteAdditions, BackstageThemeAdditions } from '../types'; declare module '@mui/material/styles/createPalette' { interface Palette extends BackstagePaletteAdditions {} @@ -27,15 +23,9 @@ declare module '@mui/material/styles/createPalette' { } declare module '@mui/material/styles/createTheme' { - interface Theme { - pageTheme: PageTheme; - getPageTheme: (selector: PageThemeSelector) => PageTheme; - } + interface Theme extends BackstageThemeAdditions {} - interface ThemeOptions { - pageTheme: PageTheme; - getPageTheme: (selector: PageThemeSelector) => PageTheme; - } + interface ThemeOptions extends BackstageThemeAdditions {} } // This is a workaround for missing methods in React 17 that MUI v5 depends on