import { type Oklch } from './color.js'; import { type PresetId } from './presets.js'; export type GlassThemeMode = "light" | "dark" | "system" | "high-contrast"; export type GlassDensity = "compact" | "comfortable" | "spacious"; export type GlassMotionAxis = "full" | "calm" | "none" | "system"; export type GlassContrastAxis = "standard" | "more"; export interface ContrastPair { name: string; foreground: string; background: string; ratio: number; min: number; pass: boolean; } export interface ContrastAdjustment { name: string; field: "l" | "c"; from: number; to: number; } export interface ContrastReport { pairs: ContrastPair[]; adjusted: ContrastAdjustment[]; brandOnBackground: number; textOnSurface: number; textOnBrand: number; } export interface GlassThemeTokens { color: { canvas: { light: string; dark: string; }; accent: string; onAccent: string; onSurface: { light: string; dark: string; }; }; /** resolved density axis + scale (comfortable -> regular per §21 OI-03) */ density: { axis: "compact" | "regular" | "spacious"; scale: number; }; /** resolved motion axis (MAT-088 / REQ-MOT-07) + allowContinuous. 5.0 themes * never set motion (REQ-MAT-45): always { axis: "system", allowContinuous: * false }; the 4.x option lives only in src/compat/mat (DEP-M0902). */ motion: { axis: GlassMotionAxis; allowContinuous: boolean; }; /** resolved contrast axis */ contrast: GlassContrastAxis; preset: PresetId; } export interface GlassTheme { id: string; name: string; /** One `[data-ag-theme=""] { ... }` rule — never :root. For mode * light/dark it also sets `color-scheme`, so every * `light-dark()` token under the theme resolves to that scheme. */ cssText: string; /** Custom properties to inject; manifest --ag-* names only. */ vars: Record; contrast: ContrastReport; tokens: GlassThemeTokens; } export interface CreateGlassThemeOptions { id?: string; name?: string; brandColor?: string | Oklch; accentColor?: string | Oklch; preset?: PresetId; neutralHue?: number; radiusScale?: number; mode?: GlassThemeMode; density?: GlassDensity; contrast?: GlassContrastAxis; } export declare const createGlassTheme: (options?: CreateGlassThemeOptions) => GlassTheme; export { createGlassThemeCssVars } from '../compat/mat/theme.js'; //# sourceMappingURL=createGlassTheme.d.ts.map