@trimble-oss/moduswebcomponents
Version:
Modus Web Components is a modern, accessible UI library built with Stencil JS that provides reusable web components following Trimble's Modus design system. This updated version focuses on improved flexibility, enhanced theming options, comprehensive cust
1 lines • 959 B
JavaScript
import{r as t,h as s}from"./p-dzXW86AR.js";import{i as e,w as o,t as d}from"./p-BloSvdvj.js";const i=class{constructor(s){t(this,s)}componentWillLoad(){e(this.initialTheme),this.cleanup=o(),this.modeUnsubscribe=d.onChange("mode",(()=>{this.updateThemeClasses()})),this.themeUnsubscribe=d.onChange("theme",(()=>{this.updateThemeClasses()})),this.updateThemeClasses()}disconnectedCallback(){var t,s,e;null===(t=this.cleanup)||void 0===t||t.call(this),null===(s=this.modeUnsubscribe)||void 0===s||s.call(this),null===(e=this.themeUnsubscribe)||void 0===e||e.call(this)}updateThemeClasses(){const t=document.documentElement,{mode:s,theme:e}=d.state;t.setAttribute("data-theme",`${e}-${s}`),t.setAttribute("data-mode",s),t.classList.remove("light","dark"),t.classList.add(s),localStorage.setItem("modus-theme-config",JSON.stringify({mode:s,theme:e}))}render(){return s("slot",{key:"f3e38b6d0231753c9b34437d917394823faffdd9"})}};export{i as modus_wc_theme_provider}