import { ReactNode, ElementType } from 'react'; import { T as ThemeContext } from '../context-DsMFP6un.js'; import { A as Attribute } from '../types-BAqJDAl9.js'; interface ScopedThemeProps { /** The theme to apply to this sub-tree. */ theme: T; children?: ReactNode; /** Element tag to render (defaults to `'div'`). */ as?: ElementType; /** Attribute to apply: class, data-* or array. Default `'class'`. */ attribute?: Attribute | Attribute[]; /** Map of logical theme → attribute value. */ value?: Record; className?: string; style?: React.CSSProperties; } /** * Apply a theme to a sub-tree without affecting the page root. Inside this * wrapper, `useTheme()` reports the scoped theme and `setTheme` is a no-op. * Useful for previews, modals with reversed color-schemes, or embedded widgets. * * Unlike the top-level `ThemeProvider`, there is no storage, no script, and * no DOM root mutation — only a wrapper element with the appropriate * attribute(s) and an overriding React context. */ declare function makeScopedTheme(Context: ThemeContext): ({ theme, children, as: Component, attribute, value, className, style, ...rest }: ScopedThemeProps & Record) => React.JSX.Element; declare const ScopedTheme: ({ theme, children, as: Component, attribute, value, className, style, ...rest }: ScopedThemeProps & Record) => React.JSX.Element; export { ScopedTheme, type ScopedThemeProps, makeScopedTheme };