{"version":3,"sources":["/home/runner/work/design-tokens/design-tokens/dist/js/css.cjs","../../src/css.ts"],"names":[],"mappings":"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","file":"/home/runner/work/design-tokens/design-tokens/dist/js/css.cjs","sourcesContent":[null,"/**\n * CSS/DOM entry point for web and Electron apps.\n * Provides applyThemePreset() which sets CSS custom properties on document.documentElement.\n */\n\nimport type { ThemeColors, ThemePresetId, ThemePresetColors, SurfaceLevel, SurfaceContextualToken } from './types.js';\nimport { resolveThemeExtended, resolveSurfaceScopes } from './resolve.js';\nimport { TOKEN_TO_CSS, EXTENDED_CSS } from './tokens.js';\n\nexport { resolveTheme, resolveThemeExtended, resolveSurfaceScopes, isPresetAllowedForMode } from './resolve.js';\nexport { THEME_PRESETS, THEME_PRESET_IDS, BASE_LIGHT, BASE_DARK } from './tokens.js';\nexport type { ThemeColors, ThemePresetId, ThemeMode, ThemePreset, ThemePresetColors, ThemeShadows, PresetPreview, SurfaceLevel, SurfaceContextualToken, SurfaceScopes } from './types.js';\n\n/** All CSS variables managed by this function (for cleanup on preset switch) */\nconst ALL_MANAGED_VARS = [\n  ...Object.values(TOKEN_TO_CSS),\n  ...Object.values(EXTENDED_CSS),\n];\n\n/**\n * Apply a theme preset's colors as CSS custom properties on document.documentElement.\n * Clears all managed variables first, then sets the resolved values.\n */\nexport function applyThemePreset(presetId: ThemePresetId, isDark: boolean): void {\n  const root = document.documentElement;\n  const mode = isDark ? 'dark' : 'light';\n  const colors = resolveThemeExtended(presetId, mode);\n\n  // Clear all managed variables\n  for (const v of ALL_MANAGED_VARS) {\n    root.style.removeProperty(v);\n  }\n\n  // Set core token variables (wrap OKLCH triplets in oklch() for CSS)\n  for (const [key, cssVar] of Object.entries(TOKEN_TO_CSS)) {\n    const value = colors[key as keyof ThemeColors];\n    if (value) {\n      root.style.setProperty(cssVar, `oklch(${value})`);\n    }\n  }\n\n  // Set extended variables (only if present in preset overrides)\n  for (const [key, cssVar] of Object.entries(EXTENDED_CSS)) {\n    const value = (colors as unknown as Record<string, string | undefined>)[key];\n    if (value) {\n      root.style.setProperty(cssVar, `oklch(${value})`);\n    }\n  }\n\n  root.setAttribute('data-theme-preset', presetId);\n}\n\n/** Get the CSS variable name for a given token key. */\nexport function getTokenCssVar(key: keyof ThemeColors): string {\n  return TOKEN_TO_CSS[key];\n}\n\n/** All surface-contextual CSS variable names (for cleanup). */\nconst SURFACE_CONTEXTUAL_VARS: string[] = ([\n  'fg', 'fgSecondary', 'fgTertiary', 'fgDisabled',\n  'inputBg', 'inputBorder', 'inputBorderHover', 'inputBorderFocus',\n  'inputBorderError', 'inputBgDisabled', 'inputPlaceholder',\n  'tabBg', 'tabBgHover', 'tabOutline',\n  'borderSubtle', 'borderDefault',\n] as SurfaceContextualToken[]).map((key) => TOKEN_TO_CSS[key]);\n\n/**\n * Apply surface-scoped CSS variable overrides to an element.\n * Resolves the surface scopes for the given preset/mode, then sets the\n * contextual token CSS variables on the element for the requested level.\n */\nexport function applySurfaceScopeToElement(\n  element: HTMLElement,\n  presetId: ThemePresetId,\n  isDark: boolean,\n  surfaceLevel: SurfaceLevel,\n): void {\n  const mode = isDark ? 'dark' : 'light';\n  const scopes = resolveSurfaceScopes(presetId, mode);\n  const overrides = scopes[surfaceLevel];\n\n  // Clear all surface-contextual CSS vars on the element\n  for (const cssVar of SURFACE_CONTEXTUAL_VARS) {\n    element.style.removeProperty(cssVar);\n  }\n\n  // Set overrides for the requested surface level\n  if (overrides) {\n    for (const [key, value] of Object.entries(overrides)) {\n      const cssVar = TOKEN_TO_CSS[key as keyof ThemeColors];\n      if (cssVar && value) {\n        element.style.setProperty(cssVar, `oklch(${value})`);\n      }\n    }\n  }\n\n  element.setAttribute('data-surface', surfaceLevel);\n}\n"]}