theme: add type for component overrides

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
This commit is contained in:
Patrik Oldsberg
2023-11-14 20:48:43 +01:00
parent d9a16db9d2
commit 4d9e3b39e4
7 changed files with 62 additions and 2 deletions
+29
View File
@@ -19,6 +19,8 @@ import {
BackstagePaletteAdditions,
BackstageThemeAdditions,
} from '../base/types';
// eslint-disable-next-line no-restricted-imports
import { OverridesStyleRules } from '@mui/material/styles/overrides';
declare module '@mui/material/styles' {
interface Palette extends BackstagePaletteAdditions {}
@@ -35,3 +37,30 @@ declare module '@mui/material/styles' {
declare module '@mui/private-theming/defaultTheme' {
interface DefaultTheme extends Theme {}
}
/**
* Merge interface declarations into this type to register overrides for your components.
*
* @public
* @example
* ```ts
* declare module '@backstage/theme' {
* interface OverrideComponentNameToClassKeys {
* MyComponent: 'root' | 'header';
* }
* }
* ```
*/
export interface OverrideComponentNameToClassKeys {}
type BackstageComponentOverrides = {
[TName in keyof OverrideComponentNameToClassKeys]?: {
styleOverrides?: Partial<
OverridesStyleRules<OverrideComponentNameToClassKeys[TName], TName, Theme>
>;
};
};
declare module '@mui/material/styles' {
interface Components extends BackstageComponentOverrides {}
}