55 lines
1.8 KiB
TypeScript
55 lines
1.8 KiB
TypeScript
import * as React from 'react';
|
|
import { DefaultTheme } from '@mui/system';
|
|
import { CssThemeVariables } from './createThemeNoVars';
|
|
type ThemeProviderCssVariablesProps = CssThemeVariables extends {
|
|
enabled: true;
|
|
} ? {
|
|
/**
|
|
* The node for attaching the `theme.colorSchemeSelector`.
|
|
* @default document
|
|
*/
|
|
colorSchemeNode?: Element | null;
|
|
/**
|
|
* If `true`, the provider creates its own context and generate stylesheet as if it is a root `ThemeProvider`.
|
|
*/
|
|
disableNestedContext?: boolean;
|
|
/**
|
|
* If `true`, the style sheet for CSS theme variables won't be generated.
|
|
*
|
|
* This is useful for controlling nested ThemeProvider behavior.
|
|
* @default false
|
|
*/
|
|
disableStyleSheetGeneration?: boolean;
|
|
} : {};
|
|
export interface ThemeProviderProps<Theme = DefaultTheme> extends ThemeProviderCssVariablesProps {
|
|
children?: React.ReactNode;
|
|
theme: Partial<Theme> | ((outerTheme: Theme) => Theme);
|
|
/**
|
|
* The document used to perform `disableTransitionOnChange` feature
|
|
* @default document
|
|
*/
|
|
documentNode?: Document | null;
|
|
/**
|
|
* The window that attaches the 'storage' event listener
|
|
* @default window
|
|
*/
|
|
storageWindow?: Window | null;
|
|
/**
|
|
* localStorage key used to store application `mode`
|
|
* @default 'mui-mode'
|
|
*/
|
|
modeStorageKey?: string;
|
|
/**
|
|
* localStorage key used to store `colorScheme`
|
|
* @default 'mui-color-scheme'
|
|
*/
|
|
colorSchemeStorageKey?: string;
|
|
/**
|
|
* Disable CSS transitions when switching between modes or color schemes
|
|
* @default false
|
|
*/
|
|
disableTransitionOnChange?: boolean;
|
|
}
|
|
export default function ThemeProvider<Theme = DefaultTheme>({ theme, ...props }: ThemeProviderProps<Theme>): React.JSX.Element;
|
|
export {};
|