UNPKG

@digital-blueprint/lunchlottery-app

Version:

[GitHub Repository](https://github.com/digital-blueprint/lunchlottery-app) | [npmjs package](https://www.npmjs.com/package/@digital-blueprint/lunchlottery-app) | [Unpkg CDN](https://unpkg.com/browse/@digital-blueprint/lunchlottery-app/)

118 lines (99 loc) 4.2 kB
import {createInstance, setOverridesByGlobalCache} from './i18n'; import {html, LitElement} from 'lit'; import {ScopedElementsMixin, LangMixin} from '@dbp-toolkit/common'; import {ThemeSwitcher} from './theme-switcher'; import {Themed} from './themed'; import * as commonUtils from '@dbp-toolkit/common/utils'; export class ThemeSwitcherDemo extends LangMixin(ScopedElementsMixin(LitElement), createInstance) { constructor() { super(); this.url = ''; this.selectedFiles = []; this.selectedFilesCount = 0; this.langDir = ''; } static get scopedElements() { return { 'dbp-theme-switcher': ThemeSwitcher, 'dbp-themed': Themed, }; } static get properties() { return { ...super.properties, langDir: {type: String, attribute: 'lang-dir'}, }; } connectedCallback() { super.connectedCallback(); if (this.langDir) { setOverridesByGlobalCache(this._i18n, this); } } render() { const i18n = this._i18n; return html` <style> .light-theme { --dbp-override-background: white; --dbp-override-content: black; --dbp-override-primary: #2a4491; --dbp-override-secondary: black; --dbp-override-secondary-surface: white; --dbp-override-on-secondary-surface: black; --dbp-override-secondary-surface-border-color: black; --dbp-override-muted: #767676; --dbp-override-accent: #c24f68; --dbp-override-info: #2a4491; --dbp-override-success: #188018; --dbp-override-warning: #c15500; --dbp-override-warning-surface: #ffad4d; --dbp-override-on-warning-surface: black; --dbp-override-danger: #de3535; --dbp-override-border: 1px solid black; --dbp-override-hover-background-color: black; --dbp-override-hover-color: white; } .dark-theme { --dbp-override-background: #151515; --dbp-override-content: white; --dbp-override-primary: #8ca4eb; --dbp-override-secondary: white; --dbp-override-secondary-surface: #151515; --dbp-override-on-secondary-surface: white; --dbp-override-secondary-surface-border-color: #151515; --dbp-override-muted: #666666; --dbp-override-accent: #c24f68; --dbp-override-info: #8ca4eb; --dbp-override-success: #7acc79; --dbp-override-warning: #f99a41; --dbp-override-on-warning-surface: black; --dbp-override-danger: #de3535; --dbp-override-border: 1px solid white; --dbp-override-hover-background-color: white; --dbp-override-hover-color: #151515; } </style> <section class="section"> <div class="content"> <h1 class="title">${i18n.t('demo-title')}</h1> <p>${i18n.t('intro')}</p> </div> <div class="content"> <dbp-theme-switcher subscribe="lang, lang-dir" themes='[{"class": "light-theme", "icon": "sun", "name": "Light Mode"}, {"class": "dark-theme", "icon": "night", "name": "Dark Mode"}]'></dbp-theme-switcher> </div> This is a <b> <dbp-themed> <span slot="light">light</span> <span slot="dark">dark</span> </dbp-themed> </b> theme. </section> `; } } commonUtils.defineCustomElement('dbp-theme-switcher-demo', ThemeSwitcherDemo);