UNPKG

@rhds/elements

Version:

Red Hat Design System Elements

42 lines (41 loc) 2.08 kB
import type { ReactiveController, ReactiveElement } from 'lit'; import { ColorContextController, type ColorContextOptions } from './controller.js'; import { type ColorTheme } from './consumer.js'; /** * A `ColorPalette` is a collection of specific color values * Choosing a palette sets both color properties and, if the component is a context provider, * implies a color theme for descendents. * * `ColorPalette` is associated with the `color-palette` attribute */ export type ColorPalette = ('base' | 'accent' | 'complement' | 'light' | 'lighter' | 'lightest' | 'dark' | 'darker' | 'darkest'); export interface ColorContextProviderOptions<T extends ReactiveElement> extends ColorContextOptions<T> { /** Attribute to set context. Providers only */ attribute?: string; } /** * `ColorContextProvider` is responsible to derive a context value from CSS and provide it to its * descendents. */ export declare class ColorContextProvider<T extends ReactiveElement> extends ColorContextController<T> implements ReactiveController { #private; static contexts: Map<string, "dark" | "light">; get local(): "dark" | "light" | undefined; get value(): ColorTheme; constructor(host: T, options?: ColorContextProviderOptions<T>); /** * When a context provider connects, it listens for context-request events * it also fires all previously fired context-request events from their hosts, * in case this context provider upgraded after and is closer to a given consumer. */ hostConnected(): Promise<void>; hostUpdated(): void; /** * When a context provider disconnects, it disconnects its mutation observer */ hostDisconnected(): void; /** Calls the context callback for all consumers */ update(force?: ColorTheme): Promise<void>; } /** Makes this element a color context provider which updates its consumers when the decorated field changes */ export declare function colorContextProvider<T extends ReactiveElement>(options?: ColorContextOptions<T>): (proto: T, _propertyName: string) => void;