import{r as o,c as r,h as t,H as e}from"./p-8e4e97b4.js";import{M as s,d as i,g as a}from"./p-b77b1e1f.js";import{B as h,W as c}from"./p-6215e2ae.js";const n=class{constructor(t){o(this,t);this.brandChange=r(this,"brandChange",7);this.icThemeChange=r(this,"icThemeChange",7);this.themeClass="";this.brandColor=null;this.theme="light";this.darkModeChangeHandler=()=>{if(this.theme==="system"){this.themeClass=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"ic-theme-dark":"ic-theme-light"}else{this.themeClass=`ic-theme-${this.theme}`}this.icThemeChange.emit(this.theme)};this.checkBrandColorContrast=()=>{if(s()<h&&s()>c){console.warn(`The brand colour does not provide enough contrast with either of the ICDS black or white foreground colours. Consider choosing a colour with a different brightness to achieve sufficient colour contrast for good visibility. See https://www.w3.org/TR/AERT/#color-contrast for more information about colour contrast.`)}};this.setBrandColor=()=>{const o=this.brandColor?i(this.brandColor):null;if(o){const{r,g:t,b:e,a:s}=o;const{style:i}=document.documentElement;i.setProperty("--ic-brand-color-primary-r",`${r}`);i.setProperty("--ic-brand-color-primary-g",`${t}`);i.setProperty("--ic-brand-color-primary-b",`${e}`);i.setProperty("--ic-brand-color-primary-a",`${s}`);this.checkBrandColorContrast();this.brandChange.emit({mode:a(),color:o})}}}watchBrandColorPropHandler(){this.setBrandColor()}watchThemePropHandler(){this.darkModeChangeHandler()}componentWillLoad(){this.darkModeChangeHandler();this.setBrandColor();window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",this.darkModeChangeHandler)}render(){const{themeClass:o}=this;return t(e,{key:"29325dda558601bd748d1712aa146bfd5c2d1240",class:o},t("slot",{key:"c352dc6c92ee972a7542c01f8fefa62c38575034"}))}static get watchers(){return{brandColor:["watchBrandColorPropHandler"],theme:["watchThemePropHandler"]}}};export{n as ic_theme};
//# sourceMappingURL=p-46fd555f.entry.js.map