diff --git a/src/components/provider/provider.tsx b/src/components/provider/provider.tsx index ed744cd000bc..9041245da171 100644 --- a/src/components/provider/provider.tsx +++ b/src/components/provider/provider.tsx @@ -24,6 +24,10 @@ import { emitEuiProviderWarning } from '../../services/theme/warning'; import { EuiThemeAmsterdam } from '../../themes'; import { EuiCacheProvider } from './cache'; import { EuiProviderNestedCheck, useIsNestedEuiProvider } from './nested'; +import { + EuiComponentDefaults, + EuiComponentDefaultsProvider, +} from './component_defaults'; const isEmotionCacheObject = ( obj: EmotionCache | Object @@ -63,6 +67,16 @@ export interface EuiProviderProps global?: EmotionCache; utility?: EmotionCache; }; + /** + * Allows configuring specified component defaults across all usages, overriding + * baseline EUI component defaults. + * + * Not all components will be supported, and configurable component defaults + * will be considered on a case-by-case basis. + * + * Individual component prop usages will always override these defaults. + */ + componentDefaults?: EuiComponentDefaults; } export const EuiProvider = ({ @@ -72,6 +86,7 @@ export const EuiProvider = ({ utilityClasses: Utilities = EuiUtilityClasses, colorMode, modify, + componentDefaults, children, }: PropsWithChildren>) => { const isNested = useIsNestedEuiProvider(); @@ -126,9 +141,11 @@ export const EuiProvider = ({ /> )} - - {children} - + + + {children} + +