import React, { createContext, PropsWithChildren, useMemo } from 'react'; import { defaultTheme } from './default-theme'; import { mergeTheme } from './merge-theme'; import type { BaseTheme } from './theme'; export type ThemeContextValue = Required>; export const ThemeContext = createContext(defaultTheme); interface ThemeProviderProps { theme: BaseTheme; } export function ThemeProvider({ children, theme, }: PropsWithChildren) { const mergedTheme = useMemo(() => mergeTheme(theme), [theme]); return ( {children} ); }