import { DesignSystem, ThemeVariant } from '../../utils/types.js'; export declare const WEBCOMPONENTS_PLATFORM: { readonly id: "webcomponents"; readonly name: "Ignite UI for Web Components"; readonly packageName: "igniteui-webcomponents"; /** * The Sass module to import for theming */ readonly themingModule: "igniteui-theming"; /** * Detection patterns in package.json dependencies */ readonly detectionPatterns: readonly ["igniteui-webcomponents", "@infragistics/igniteui-webcomponents"]; /** * No required root class (themes apply via CSS variables on :root) */ readonly rootClass: null; }; /** * Template for generating a complete Web Components theme */ export interface WebComponentsThemeTemplate { designSystem: DesignSystem; variant: ThemeVariant; primaryColor?: string; secondaryColor?: string; surfaceColor?: string; grayColor?: string; customPaletteName?: string; /** Custom font family (e.g., "'Inter', sans-serif") */ fontFamily?: string; includeTypography?: boolean; includeElevations?: boolean; includeSpacing?: boolean; } /** * Generate the file header comment for Web Components themes. */ export declare function generateWCHeader(): string[]; /** * Get the elevation preset variable for a design system. */ export declare function getWCElevationPreset(designSystem: DesignSystem): string; /** * Generate import statements for a Web Components theme. */ export declare function generateWCImports(options: { designSystem: DesignSystem; variant: ThemeVariant; hasCustomColors: boolean; includeTypography: boolean; includeElevations: boolean; }): string[]; /** * Generate CSS @property declarations for progress tracking. * These are required by some components. */ export declare function generateWCProgressProperties(indent?: string): string[]; /** * Generate :root CSS variables for theme configuration. */ export declare function generateWCRootVariables(options: { designSystem: DesignSystem; variant: ThemeVariant; usePaletteMap?: boolean; indent?: string; }): string[]; /** * Generate RTL direction support. */ export declare function generateWCRtlSupport(indent?: string): string[]; /** * Generate scrollbar customization using palette colors. */ export declare function generateWCScrollbarCustomization(): string[]; /** * Generate theming mixin calls (palette, elevations, typography, spacing). */ export declare function generateWCThemingMixins(options: { paletteVar: string; typefaceValue: string; elevationsVar: string; includeTypography: boolean; includeElevations: boolean; includeSpacing: boolean; indent?: string; addComments?: boolean; }): string[]; /** * Generate Sass code for a Web Components theme * * Web Components themes use igniteui-theming directly and call individual * mixins (palette, typography, elevations) rather than a unified theme() mixin. * * This function orchestrates smaller helper functions for: * - Header generation (generateWCHeader) * - Import statements (generateWCImports) * - Custom or preset palette themes */ export declare function generateWebComponentsThemeSass(template: WebComponentsThemeTemplate): string; /** * Example usage documentation */ export declare const WEBCOMPONENTS_USAGE_EXAMPLES: { readonly basic: "\n// Basic Material Light Theme for Web Components\n@use 'igniteui-theming/sass/color/presets/light/material' as *;\n@use 'igniteui-theming' as *;\n@use 'igniteui-theming/sass/typography/presets/material' as *;\n@use 'igniteui-theming/sass/elevations/presets' as *;\n\n:root {\n --ig-theme: material;\n --ig-theme-variant: light;\n --ig-size-small: 1;\n --ig-size-medium: 2;\n --ig-size-large: 3;\n --ig-scrollbar-size: #{rem(16px)};\n}\n\n@include palette($palette);\n@include elevations($material-elevations);\n@include typography(\n $font-family: $typeface,\n $type-scale: $type-scale\n);\n@include spacing();\n"; readonly customPalette: "\n// Custom Palette Theme for Web Components\n@use 'igniteui-theming' as *;\n@use 'igniteui-theming/sass/typography/presets/material' as *;\n@use 'igniteui-theming/sass/elevations/presets' as *;\n\n$my-palette: palette(\n $primary: #2ab759,\n $secondary: #f96a88,\n $surface: #ffffff\n);\n\n:root {\n --ig-theme: material;\n --ig-theme-variant: light;\n --ig-size-small: 1;\n --ig-size-medium: 2;\n --ig-size-large: 3;\n}\n\n@include palette($my-palette);\n@include elevations($material-elevations);\n@include typography(\n $font-family: $typeface,\n $type-scale: $type-scale\n);\n@include spacing();\n"; readonly darkTheme: "\n// Dark Indigo Theme for Web Components\n@use 'igniteui-theming/sass/color/presets/dark/indigo' as *;\n@use 'igniteui-theming' as *;\n@use 'igniteui-theming/sass/typography/presets/indigo' as *;\n@use 'igniteui-theming/sass/elevations/presets' as *;\n\n:root {\n --ig-theme: indigo;\n --ig-theme-variant: dark;\n --ig-size-small: 1;\n --ig-size-medium: 2;\n --ig-size-large: 3;\n}\n\n@include palette($palette);\n@include elevations($indigo-elevations);\n@include typography(\n $font-family: $typeface,\n $type-scale: $type-scale\n);\n@include spacing();\n"; readonly minimalConfig: "\n// Minimal theme (palette only, no typography/elevations)\n@use 'igniteui-theming/sass/color/presets/light/bootstrap' as *;\n@use 'igniteui-theming' as *;\n\n:root {\n --ig-theme: bootstrap;\n --ig-theme-variant: light;\n}\n\n@include palette($palette);\n"; }; /** * Runtime theme configuration for Web Components * * Web Components support runtime theme switching via the configureTheme() function * and CSS variables. This is different from Angular which requires Sass recompilation. */ export declare const WEBCOMPONENTS_RUNTIME_CONFIG: { /** * JavaScript API for runtime theme switching */ readonly configureThemeAPI: "\nimport { configureTheme } from 'igniteui-webcomponents';\n\n// Switch to dark material theme at runtime\nconfigureTheme('material', 'dark');\n\n// Switch to light indigo theme\nconfigureTheme('indigo', 'light');\n"; /** * CSS variables that control the theme at runtime */ readonly runtimeVariables: readonly ["--ig-theme", "--ig-theme-variant"]; /** * Events dispatched during theme changes */ readonly themeChangeEvents: readonly ["igc-change-theme", "igc-changed-theme"]; };