{"version":3,"file":"angular-material-css-vars.mjs","sources":["../../../projects/material-css-vars/src/lib/model.ts","../../../projects/material-css-vars/src/lib/default-cfg.const.ts","../../../projects/material-css-vars/src/mat-css-config-token.const.ts","../../../projects/material-css-vars/src/lib/material-css-vars.service.ts","../../../projects/material-css-vars/src/lib/material-css-vars.module.ts","../../../projects/material-css-vars/src/public-api.ts","../../../projects/material-css-vars/src/angular-material-css-vars.ts"],"sourcesContent":["export type HueValue =\n  | \"50\"\n  | \"100\"\n  | \"200\"\n  | \"300\"\n  | \"400\"\n  | \"500\"\n  | \"600\"\n  | \"700\"\n  | \"800\"\n  | \"900\"\n  | \"A100\"\n  | \"A200\"\n  | \"A400\"\n  | \"A700\";\n\nexport enum MatCssPalettePrefix {\n  Primary = \"--palette-primary-\",\n  Accent = \"--palette-accent-\",\n  Warn = \"--palette-warn-\",\n}\n\nexport interface MatCssHueColorMapItem {\n  hue: HueValue;\n  isLight: boolean;\n  color: {\n    r: number;\n    g: number;\n    b: number;\n    a: number;\n    str: string;\n  };\n}\n\nexport interface MatCssHueColorContrastMapItem extends MatCssHueColorMapItem {\n  contrast: {\n    r: number;\n    g: number;\n    b: number;\n    a: number;\n    str: string;\n  };\n}\n\nexport interface MaterialCssColorMapperEntry {\n  name: HueValue;\n  map: [number, number, number];\n}\n\nexport interface MaterialCssVariablesConfig {\n  isAutoContrast: boolean;\n  isAlternativeColorAlgorithm: boolean;\n\n  darkThemeClass: string;\n  lightThemeClass: string;\n\n  /**\n   * Selector to which the CSS variables are added.\n   * If not specified, the document's HTML element is used.\n   */\n  rootSelector?: string;\n\n  colorMap: MaterialCssColorMapperEntry[];\n  sortedHues: HueValue[];\n\n  isDarkTheme?: boolean;\n  primary?: string;\n  accent?: string;\n  warn?: string;\n}\n\nexport enum MaterialCssVariables {\n  \"Primary50\" = \"--palette-primary-50\",\n  \"Primary100\" = \"--palette-primary-100\",\n  \"Primary200\" = \"--palette-primary-200\",\n  \"Primary300\" = \"--palette-primary-300\",\n  \"Primary400\" = \"--palette-primary-400\",\n  \"Primary500\" = \"--palette-primary-500\",\n  \"Primary600\" = \"--palette-primary-600\",\n  \"Primary700\" = \"--palette-primary-700\",\n  \"Primary800\" = \"--palette-primary-800\",\n  \"Primary900\" = \"--palette-primary-900\",\n  \"PrimaryA100\" = \"--palette-primary-A100\",\n  \"PrimaryA200\" = \"--palette-primary-A200\",\n  \"PrimaryA400\" = \"--palette-primary-A400\",\n  \"PrimaryA700\" = \"--palette-primary-A700\",\n\n  \"PrimaryContrast50\" = \"--palette-primary-contrast-50\",\n  \"PrimaryContrast100\" = \"--palette-primary-contrast-100\",\n  \"PrimaryContrast200\" = \"--palette-primary-contrast-200\",\n  \"PrimaryContrast300\" = \"--palette-primary-contrast-300\",\n  \"PrimaryContrast400\" = \"--palette-primary-contrast-400\",\n  \"PrimaryContrast500\" = \"--palette-primary-contrast-500\",\n  \"PrimaryContrast600\" = \"--palette-primary-contrast-600\",\n  \"PrimaryContrast700\" = \"--palette-primary-contrast-700\",\n  \"PrimaryContrast800\" = \"--palette-primary-contrast-800\",\n  \"PrimaryContrast900\" = \"--palette-primary-contrast-900\",\n  \"PrimaryContrastA100\" = \"--palette-primary-contrast-A100\",\n  \"PrimaryContrastA200\" = \"--palette-primary-contrast-A200\",\n  \"PrimaryContrastA400\" = \"--palette-primary-contrast-A400\",\n  \"PrimaryContrastA700\" = \"--palette-primary-contrast-A700\",\n\n  // ACCENT\n  \"Accent50\" = \"--palette-accent-50\",\n  \"Accent100\" = \"--palette-accent-100\",\n  \"Accent200\" = \"--palette-accent-200\",\n  \"Accent300\" = \"--palette-accent-300\",\n  \"Accent400\" = \"--palette-accent-400\",\n  \"Accent500\" = \"--palette-accent-500\",\n  \"Accent600\" = \"--palette-accent-600\",\n  \"Accent700\" = \"--palette-accent-700\",\n  \"Accent800\" = \"--palette-accent-800\",\n  \"Accent900\" = \"--palette-accent-900\",\n  \"AccentA100\" = \"--palette-accent-A100\",\n  \"AccentA200\" = \"--palette-accent-A200\",\n  \"AccentA400\" = \"--palette-accent-A400\",\n  \"AccentA700\" = \"--palette-accent-A700\",\n  \"DarkAccentText\" = \"--dark-accent-text\",\n  \"LightAccentText\" = \"--light-accent-text\",\n\n  // WARN\n  \"Warn50\" = \"--palette-warn-50\",\n  \"Warn100\" = \"--palette-warn-100\",\n  \"Warn200\" = \"--palette-warn-200\",\n  \"Warn300\" = \"--palette-warn-300\",\n  \"Warn400\" = \"--palette-warn-400\",\n  \"Warn500\" = \"--palette-warn-500\",\n  \"Warn600\" = \"--palette-warn-600\",\n  \"Warn700\" = \"--palette-warn-700\",\n  \"Warn800\" = \"--palette-warn-800\",\n  \"Warn900\" = \"--palette-warn-900\",\n  \"WarnA100\" = \"--palette-warn-A100\",\n  \"WarnA200\" = \"--palette-warn-A200\",\n  \"WarnA400\" = \"--palette-warn-A400\",\n  \"WarnA700\" = \"--palette-warn-A700\",\n  \"DarkWarnText\" = \"--dark-warn-text\",\n  \"LightWarnText\" = \"--light-warn-text\",\n}\n","import { MaterialCssVariablesConfig } from \"./model\";\n\nexport const DEFAULT_MAT_CSS_CFG: MaterialCssVariablesConfig = {\n  isAutoContrast: true,\n  isAlternativeColorAlgorithm: false,\n  darkThemeClass: \"isDarkTheme\",\n  lightThemeClass: \"isLightTheme\",\n  colorMap: [\n    { name: \"50\", map: [52, 0, 0] },\n    { name: \"100\", map: [37, 0, 0] },\n    { name: \"200\", map: [26, 0, 0] },\n    { name: \"300\", map: [12, 0, 0] },\n    { name: \"400\", map: [6, 0, 0] },\n    { name: \"500\", map: [0, 0, 0] },\n    { name: \"600\", map: [0, 6, 0] },\n    { name: \"700\", map: [0, 12, 0] },\n    { name: \"800\", map: [0, 18, 0] },\n    { name: \"900\", map: [0, 24, 0] },\n    { name: \"A100\", map: [50, 0, 30] },\n    { name: \"A200\", map: [30, 0, 30] },\n    { name: \"A400\", map: [10, 0, 15] },\n    { name: \"A700\", map: [5, 0, 5] },\n  ],\n  sortedHues: [\n    \"50\",\n    \"100\",\n    \"200\",\n    \"300\",\n    \"400\",\n    \"500\",\n    \"600\",\n    \"700\",\n    \"800\",\n    \"900\",\n  ],\n};\n","import { InjectionToken } from \"@angular/core\";\nimport { MaterialCssVariablesConfig } from \"./lib/model\";\n\nexport const MATERIAL_CSS_VARS_CFG = new InjectionToken<\n  MaterialCssVariablesConfig | undefined\n>(\"Mat Css Config\");\n","import {\n  Injectable,\n  Renderer2,\n  RendererFactory2,\n  RendererStyleFlags2,\n  DOCUMENT,\n  isDevMode,\n  inject,\n} from \"@angular/core\";\nimport { Numberify, RGBA, TinyColor } from \"@ctrl/tinycolor\";\nimport {\n  HueValue,\n  MatCssHueColorContrastMapItem,\n  MatCssHueColorMapItem,\n  MatCssPalettePrefix,\n  MaterialCssVariables,\n  MaterialCssVariablesConfig,\n} from \"./model\";\nimport { DEFAULT_MAT_CSS_CFG } from \"./default-cfg.const\";\nimport { MATERIAL_CSS_VARS_CFG } from \"../mat-css-config-token.const\";\n\ninterface CssVariable {\n  name: string;\n  val: string;\n}\n\ninterface Color {\n  rgb: Numberify<RGBA>;\n  isLight: boolean;\n}\n\n// @see: https://github.com/angular/angular/issues/20351\n/** @dynamic */\n@Injectable({\n  providedIn: \"root\",\n})\nexport class MaterialCssVarsService {\n  private static CONTRAST_PREFIX = \"contrast-\";\n  private static DARK_TEXT_VAR = \"--dark-text-contrast\";\n  private static LIGHT_TEXT_VAR = \"--light-text-contrast\";\n  // This should be readonly from the outside\n  cfg: MaterialCssVariablesConfig;\n  primary = \"#03a9f4\";\n  accent = \"#e91e63\";\n  warn = \"#f44336\";\n  isDarkTheme?: boolean;\n  contrastColorThresholdPrimary: HueValue = \"400\";\n  contrastColorThresholdAccent: HueValue = \"400\";\n  contrastColorThresholdWarn: HueValue = \"400\";\n  isAutoContrast = false;\n  private renderer: Renderer2;\n  private ROOT: HTMLElement;\n  private readonly _black = new TinyColor(\"#000000\");\n  private readonly _white = new TinyColor(\"#ffffff\");\n  private readonly document = inject(DOCUMENT);\n\n  constructor() {\n    this.renderer = inject(RendererFactory2).createRenderer(null, null);\n    const cfg = inject(MATERIAL_CSS_VARS_CFG);\n\n    this.cfg = {\n      ...DEFAULT_MAT_CSS_CFG,\n      ...cfg,\n    };\n    this.isAutoContrast = this.cfg.isAutoContrast;\n    this.ROOT = this._getRootElement(this.cfg.rootSelector);\n\n    if (typeof this.cfg.isDarkTheme === \"boolean\") {\n      this.setDarkTheme(this.cfg.isDarkTheme);\n    }\n    if (this.cfg.primary) {\n      this.setPrimaryColor(this.cfg.primary);\n    }\n    if (this.cfg.accent) {\n      this.setAccentColor(this.cfg.accent);\n    }\n    if (this.cfg.warn) {\n      this.setWarnColor(this.cfg.warn);\n    }\n  }\n\n  setPrimaryColor(hex: string) {\n    this.primary = hex;\n    const varPrefix = MatCssPalettePrefix.Primary;\n    const stylePrimary = this._computePaletteColors(varPrefix, this.primary);\n    this._setStyle(stylePrimary);\n\n    if (this.isAutoContrast) {\n      this._recalculateAndSetContrastColor(varPrefix);\n    }\n  }\n\n  setAccentColor(hex: string) {\n    this.accent = hex;\n    const varPrefix = MatCssPalettePrefix.Accent;\n    const styleAccent = this._computePaletteColors(varPrefix, this.accent);\n    this._setStyle(styleAccent);\n\n    if (this.isAutoContrast) {\n      this._recalculateAndSetContrastColor(varPrefix);\n    }\n  }\n\n  setWarnColor(hex: string) {\n    this.warn = hex;\n    const varPrefix = MatCssPalettePrefix.Warn;\n    const styleWarn = this._computePaletteColors(varPrefix, this.warn);\n    this._setStyle(styleWarn);\n\n    if (this.isAutoContrast) {\n      this._recalculateAndSetContrastColor(varPrefix);\n    }\n  }\n\n  setVariable(cssVarName: MaterialCssVariables, value: string) {\n    this._setStyle([\n      {\n        name: cssVarName,\n        val: value,\n      },\n    ]);\n  }\n\n  setDarkTheme(isDark: boolean) {\n    if (isDark) {\n      this.document.body.classList.remove(this.cfg.lightThemeClass);\n      this.document.body.classList.add(this.cfg.darkThemeClass);\n    } else {\n      this.document.body.classList.remove(this.cfg.darkThemeClass);\n      this.document.body.classList.add(this.cfg.lightThemeClass);\n    }\n    this.isDarkTheme = isDark;\n  }\n\n  setAutoContrastEnabled(val: boolean) {\n    this.isAutoContrast = val;\n    if (val) {\n      this._recalculateAndSetContrastColor(MatCssPalettePrefix.Primary);\n      this._recalculateAndSetContrastColor(MatCssPalettePrefix.Accent);\n      this._recalculateAndSetContrastColor(MatCssPalettePrefix.Warn);\n    } else {\n      this.setContrastColorThresholdPrimary(this.contrastColorThresholdPrimary);\n      this.setContrastColorThresholdAccent(this.contrastColorThresholdAccent);\n      this.setContrastColorThresholdWarn(this.contrastColorThresholdWarn);\n    }\n  }\n\n  setContrastColorThresholdPrimary(threshold: HueValue) {\n    this.contrastColorThresholdPrimary = threshold;\n    this.setContrastColorThreshold(threshold, MatCssPalettePrefix.Primary);\n  }\n\n  setContrastColorThresholdAccent(threshold: HueValue) {\n    this.contrastColorThresholdAccent = threshold;\n    this.setContrastColorThreshold(threshold, MatCssPalettePrefix.Accent);\n  }\n\n  setContrastColorThresholdWarn(threshold: HueValue) {\n    this.contrastColorThresholdWarn = threshold;\n    this.setContrastColorThreshold(threshold, MatCssPalettePrefix.Warn);\n  }\n\n  setContrastColorThreshold(\n    threshold: HueValue,\n    palettePrefix: MatCssPalettePrefix,\n  ) {\n    if (this.isAutoContrast) {\n      return;\n    }\n    let color = MaterialCssVarsService.DARK_TEXT_VAR;\n    const updates = this.cfg.sortedHues.map((hue) => {\n      if (hue === threshold) {\n        color = MaterialCssVarsService.LIGHT_TEXT_VAR;\n      }\n      return {\n        val: `var(${color})`, //val: this._getCssVarValue(color),\n        name: `${palettePrefix + MaterialCssVarsService.CONTRAST_PREFIX}${hue}`,\n      };\n    });\n    this._setStyle(updates);\n  }\n\n  /**\n   * Generate palette color based on traditional values\n   */\n  setAlternativeColorAlgorithm(traditional: boolean): void {\n    this.cfg.isAlternativeColorAlgorithm = traditional;\n    this.setPrimaryColor(this.primary);\n    this.setAccentColor(this.accent);\n    this.setWarnColor(this.warn);\n  }\n\n  getPaletteForColor(hex: string): MatCssHueColorMapItem[] {\n    if (this.cfg.isAlternativeColorAlgorithm) {\n      return this.getTraditionalPaletteForColor(hex);\n    } else {\n      return this.getConstantinPaletteForColor(hex);\n    }\n  }\n\n  getPaletteWithContrastForColor(hex: string): MatCssHueColorContrastMapItem[] {\n    const lightText = this._getCssVarValue(\n      MaterialCssVarsService.LIGHT_TEXT_VAR,\n    );\n    const darkText = this._getCssVarValue(MaterialCssVarsService.DARK_TEXT_VAR);\n    const palette = this.getPaletteForColor(hex);\n\n    // TODO handle non auto case\n    return palette.map((item) => {\n      const contrastStr = item.isLight ? lightText : darkText;\n\n      const sLight = this._replaceNoRgbValue(\"\", contrastStr)\n        .split(\",\")\n        .map((v) => +v);\n      const cco = { r: sLight[0], g: sLight[1], b: sLight[2], a: 1 };\n      return {\n        ...item,\n        contrast: {\n          ...cco,\n          str: `${cco.r},${cco.g},${cco.b}`,\n        },\n      };\n    });\n  }\n\n  private getTraditionalPaletteForColor(hex: string): MatCssHueColorMapItem[] {\n    return this.cfg.colorMap.map((item) => {\n      const mappedColor = new TinyColor(hex)\n        .lighten(item.map[0])\n        .darken(item.map[1])\n        .saturate(item.map[2]);\n      const c = new TinyColor(mappedColor);\n      return {\n        hue: item.name,\n        isLight: c.isLight(),\n        color: {\n          ...c.toRgb(),\n          str: `rgb(${c.toRgb().r},${c.toRgb().g},${c.toRgb().b})`,\n        },\n      };\n    });\n  }\n\n  private getConstantinPaletteForColor(hex: string): MatCssHueColorMapItem[] {\n    return this.cfg.colorMap.map((item) => {\n      const c = this.computePalletTriad(hex, item.name);\n      return {\n        hue: item.name,\n        isLight: c.isLight,\n        color: {\n          ...c.rgb,\n          str: `rgb(${c.rgb.r},${c.rgb.g},${c.rgb.b})`,\n        },\n      };\n    });\n  }\n\n  private _computePaletteColors(\n    prefix: MatCssPalettePrefix,\n    hex: string,\n  ): CssVariable[] {\n    return this.getPaletteForColor(hex).map((item) => {\n      const c = item.color;\n      return {\n        name: `${prefix}${item.hue}`,\n        val: `rgb(${c.r}, ${c.g}, ${c.b})`,\n      };\n    });\n  }\n\n  private _recalculateAndSetContrastColor(palettePrefix: MatCssPalettePrefix) {\n    const updates = this._calculateContrastColorsForCurrentValues(\n      palettePrefix,\n    ).map(({ contrastColorVar, hue }) => {\n      return {\n        val: `var(${contrastColorVar})`, //this._getCssVarValue(contrastColorVar),\n        name: `${palettePrefix + MaterialCssVarsService.CONTRAST_PREFIX}${hue}`,\n      };\n    });\n    this._setStyle(updates);\n  }\n\n  private _calculateContrastColorsForCurrentValues(\n    palettePrefix: MatCssPalettePrefix,\n  ): { contrastColorVar: string; hue: HueValue }[] {\n    return this.cfg.sortedHues.map((hue) => {\n      const hueVarVal = this._getCssVarValue(`${palettePrefix}${hue}`);\n      const c = new TinyColor(`rgb(${hueVarVal})`);\n      const contrastColorVar = this._getContrastColorVar(c);\n      return {\n        contrastColorVar,\n        hue,\n      };\n    });\n  }\n\n  private _setStyle(vars: CssVariable[]) {\n    vars.forEach((s) => {\n      this.renderer.setStyle(\n        this.ROOT,\n        s.name,\n        s.val,\n        RendererStyleFlags2.DashCase,\n      );\n      this.renderer.setStyle(\n        this.ROOT,\n        s.name + \"-no-rgb\",\n        this._replaceNoRgbValue(s.name, s.val),\n        RendererStyleFlags2.DashCase,\n      );\n    });\n  }\n\n  /**\n   * Replace variables that are formatted as rgba(var(rgb(xxx))) to be var(xxx) to allow proper formatting\n   * in variable overrides.\n   * @param value\n   * @returns\n   */\n  private _replaceNoRgbValue(name: string, value: string) {\n    const isContrast: boolean = name.includes(\n      MaterialCssVarsService.CONTRAST_PREFIX,\n    );\n    let noRgb = \"\";\n    if (isContrast) {\n      noRgb = value.replace(\")\", \"-no-rgb)\");\n    } else {\n      noRgb = value.replace(\"rgba(\", \"\").replace(\"rgb(\", \"\").replace(\")\", \"\");\n      if (noRgb.startsWith(\"var(\")) {\n        noRgb = noRgb.concat(\")\");\n      }\n    }\n    return noRgb;\n  }\n\n  private _getCssVarValue(v: string): string {\n    return getComputedStyle(this.ROOT).getPropertyValue(v);\n  }\n\n  /**\n   * Compute pallet colors based on a Triad (Constantin)\n   * see: https://github.com/mbitson/mcg\n   */\n  private computePalletTriad(hex: string, hue: HueValue): Color {\n    const baseLight = new TinyColor(\"#ffffff\");\n    const baseDark = this.multiply(\n      new TinyColor(hex).toRgb(),\n      new TinyColor(hex).toRgb(),\n    );\n    const baseTriad = new TinyColor(hex).tetrad();\n    let color: Color;\n\n    switch (hue) {\n      case \"50\":\n        color = this.getColorObject(baseLight.mix(hex, 12));\n        break;\n      case \"100\":\n        color = this.getColorObject(baseLight.mix(hex, 30));\n        break;\n      case \"200\":\n        color = this.getColorObject(baseLight.mix(hex, 50));\n        break;\n      case \"300\":\n        color = this.getColorObject(baseLight.mix(hex, 70));\n        break;\n      case \"400\":\n        color = this.getColorObject(baseLight.mix(hex, 85));\n        break;\n      case \"500\":\n        color = this.getColorObject(baseLight.mix(hex, 100));\n        break;\n      case \"600\":\n        color = this.getColorObject(baseDark.mix(hex, 87));\n        break;\n      case \"700\":\n        color = this.getColorObject(baseDark.mix(hex, 70));\n        break;\n      case \"800\":\n        color = this.getColorObject(baseDark.mix(hex, 54));\n        break;\n      case \"900\":\n        color = this.getColorObject(baseDark.mix(hex, 25));\n        break;\n      case \"A100\":\n        color = this.getColorObject(\n          baseDark.mix(baseTriad[4], 15).saturate(80).lighten(65),\n        );\n        break;\n      case \"A200\":\n        color = this.getColorObject(\n          baseDark.mix(baseTriad[4], 15).saturate(80).lighten(55),\n        );\n        break;\n      case \"A400\":\n        color = this.getColorObject(\n          baseDark.mix(baseTriad[4], 15).saturate(100).lighten(45),\n        );\n        break;\n      case \"A700\":\n        color = this.getColorObject(\n          baseDark.mix(baseTriad[4], 15).saturate(100).lighten(40),\n        );\n        break;\n    }\n    return color;\n  }\n\n  private multiply(rgb1: Numberify<RGBA>, rgb2: Numberify<RGBA>): TinyColor {\n    rgb1.b = Math.floor((rgb1.b * rgb2.b) / 255);\n    rgb1.g = Math.floor((rgb1.g * rgb2.g) / 255);\n    rgb1.r = Math.floor((rgb1.r * rgb2.r) / 255);\n    return new TinyColor(\"rgb \" + rgb1.r + \" \" + rgb1.g + \" \" + rgb1.b);\n  }\n\n  private getColorObject(value: TinyColor): Color {\n    const c = new TinyColor(value);\n    return { rgb: c.toRgb(), isLight: c.isLight() };\n  }\n\n  private _getContrastColorVar(color: TinyColor): string {\n    const contrastDark = this._getContrast(color, this._black);\n    const contrastLight = this._getContrast(color, this._white);\n    return contrastLight > contrastDark\n      ? MaterialCssVarsService.LIGHT_TEXT_VAR\n      : MaterialCssVarsService.DARK_TEXT_VAR;\n  }\n\n  private _getContrast(color1: TinyColor, color2: TinyColor): number {\n    const luminance1 = color1.getLuminance();\n    const luminance2 = color2.getLuminance();\n    const brightest = Math.max(luminance1, luminance2);\n    const darkest = Math.min(luminance1, luminance2);\n    return (brightest + 0.05) / (darkest + 0.05);\n  }\n\n  private _getRootElement(rootSelector: string | undefined): HTMLElement {\n    if (typeof rootSelector !== \"string\") {\n      return this.document.documentElement;\n    }\n    const rootElement = document.querySelector<HTMLElement>(rootSelector);\n    if (rootElement) {\n      return rootElement;\n    }\n    if (isDevMode()) {\n      console.warn(\n        `[MaterialCssVars] Could not find root element: ${rootSelector}. Falling back to HTML element.`,\n      );\n    }\n    return this.document.documentElement;\n  }\n}\n","import {\n  EnvironmentProviders,\n  inject,\n  makeEnvironmentProviders,\n  ModuleWithProviders,\n  NgModule,\n  provideEnvironmentInitializer,\n} from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { MaterialCssVariablesConfig } from \"./model\";\nimport { MATERIAL_CSS_VARS_CFG } from \"../mat-css-config-token.const\";\nimport { MaterialCssVarsService } from \"./material-css-vars.service\";\n\n@NgModule({\n  imports: [CommonModule],\n})\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nexport class MaterialCssVarsModule {\n  static forRoot(\n    config?: Partial<MaterialCssVariablesConfig>,\n  ): ModuleWithProviders<MaterialCssVarsModule> {\n    return {\n      ngModule: MaterialCssVarsModule,\n      providers: [provideMaterialCssVars(config)],\n    };\n  }\n}\n\nexport function provideMaterialCssVars(\n  config?: Partial<MaterialCssVariablesConfig>,\n): EnvironmentProviders {\n  return makeEnvironmentProviders([\n    { provide: MATERIAL_CSS_VARS_CFG, useValue: config },\n    provideEnvironmentInitializer(() => inject(MaterialCssVarsService)),\n  ]);\n}\n","/*\n * Public API Surface of material-css-vars\n */\n\nexport * from \"./lib/material-css-vars.service\";\nexport * from \"./lib/material-css-vars.module\";\nexport * from \"./lib/model\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}