UNPKG

@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
import{r as t,h as e}from"./p-D5XAQERj.js";import{i as s,w as o,t as i}from"./p-DXyMFOeb.js";const d=class{constructor(e){t(this,e)}componentWillLoad(){s(this.initialTheme),this.cleanup=o(),this.modeUnsubscribe=i.onChange("mode",(()=>{this.updateThemeClasses()})),this.themeUnsubscribe=i.onChange("theme",(()=>{this.updateThemeClasses()})),this.updateThemeClasses()}disconnectedCallback(){var t,e,s;null===(t=this.cleanup)||void 0===t||t.call(this),null===(e=this.modeUnsubscribe)||void 0===e||e.call(this),null===(s=this.themeUnsubscribe)||void 0===s||s.call(this)}updateThemeClasses(){const t=document.documentElement,{mode:e,theme:s}=i.state;t.setAttribute("data-theme",`${s}-${e}`),t.setAttribute("data-mode",e),t.classList.remove("light","dark"),t.classList.add(e),localStorage.setItem("modus-theme-config",JSON.stringify({mode:e,theme:s}))}render(){return e("slot",{key:"164889b80a9bdca83cce1dcfdce343d487304383"})}};export{d as modus_wc_theme_provider}