UNPKG

@sixbell-telco/sdk

Version:

A collection of reusable components designed for use in Sixbell Telco Angular projects

45 lines (44 loc) 1.81 kB
import { ResolvedThemeScheme, ThemeScheme } from '../models/theme'; import * as i0 from "@angular/core"; /** * Service for resolving and detecting color schemes * Handles system preference detection and scheme validation * Separates scheme logic from the main service */ export declare class ThemeSchemeService { /** * Media query list for detecting dark mode preference * Cached to avoid repeated queries */ private darkModeMediaQuery; /** * Resolves a theme scheme to its actual light/dark value * If scheme is 'system', detects the OS preference * If scheme is already 'light' or 'dark', returns it as-is * @param scheme - The scheme to resolve * @returns Resolved scheme ('light' or 'dark') */ resolveScheme(scheme: ThemeScheme): ResolvedThemeScheme; /** * Detects the system's preferred color scheme * Uses CSS media query (prefers-color-scheme: dark) * Safely handles environments where matchMedia is not available * @returns 'dark' if system prefers dark, 'light' otherwise */ detectSystemScheme(): ResolvedThemeScheme; /** * Listens for changes in system color scheme preference * Allows components to react to OS theme changes * @param listener - Callback function when scheme changes * @returns Unsubscribe function to remove listener */ listenToSystemSchemeChanges(listener: (scheme: ResolvedThemeScheme) => void): () => void; /** * Creates a media query for detecting dark mode * Extracted method to make testing easier * @returns MediaQueryList for dark mode preference */ private createMediaQuery; static ɵfac: i0.ɵɵFactoryDeclaration<ThemeSchemeService, never>; static ɵprov: i0.ɵɵInjectableDeclaration<ThemeSchemeService>; }