/** * @license * Copyright 2023 Nuraly, Laabidi Aymen * SPDX-License-Identifier: MIT */ import { LitElement } from 'lit'; /** * Theme detection and management mixin for Lit components * Provides data-theme attribute detection with system fallback * Supports multiple design systems (Carbon, Polaris, etc.) */ export interface ThemeAware { currentTheme: string; currentDesignSystem: 'carbon' | 'default'; } type Constructor = new (...args: any[]) => T; /** * Mixin that adds theme management functionality to LitElement components * * @param superClass - The base class to extend (typically LitElement) * @returns Enhanced class with theme management capabilities * * @example * ```typescript * @customElement('my-component') * export class MyComponent extends ThemeAwareMixin(LitElement) { * render() { * return html`
Content
`; * } * } * ``` */ export declare const ThemeAwareMixin: >(superClass: T) => Constructor & T; /** * Standalone theme detection utility function * For components that don't want to use the mixin approach * * @param element - The element to start theme detection from * @returns The detected theme ('light' or 'dark') */ export declare function detectTheme(element: Element): 'light' | 'dark'; /** * Standalone design system detection utility function * For components that don't want to use the mixin approach * * @param element - The element to start detection from * @returns The detected design system */ export declare function detectDesignSystem(element: Element): 'carbon' | 'default'; /** * @deprecated Use CSS @layer with minimal tokens instead of createThemeStyles. * Light DOM components use document-level tokens.css for dark/light switching. */ export declare function createThemeStyles(lightThemeVars: any, darkThemeVars: any): string; export {}; //# sourceMappingURL=theme-mixin.d.ts.map