ui-lit
Version:
UI Elements on LIT
83 lines (82 loc) • 2.69 kB
JavaScript
import { __decorate } from "tslib";
import { LitElement, html, css } from 'lit';
import { customElement, property } from 'lit/decorators.js';
import { firstUpper } from 'kailib';
let LitThemeConfiger = class LitThemeConfiger extends LitElement {
constructor() {
super(...arguments);
this.name = 'primary';
this.params = [330, 75, 75];
}
render() {
return html `
<lit-header level = "4"><slot name = "name">${firstUpper(this.name)}</slot></lit-header>
<slot></slot>
<div class = "wrapper">
<lit-header level = "5"><slot name = "hue">Hue:</slot></lit-header>
<lit-range
= "${this._changeH}"
min = "0"
max = "360"
value = "${this.params[0]}"></lit-range>
<lit-header level = "5"><slot name = "chroma">Chroma:</slot></lit-header>
<lit-range
= "${this._changeS}"
min = "0"
max = "100"
value = "${this.params[1]}"></lit-range>
<lit-header level = "5"><slot name = "luminance">Luminance:</slot></lit-header>
<lit-range
= "${this._changeL}"
min = "0"
max = "100"
value = "${this.params[2]}"></lit-range>
</div>`;
}
_changeH(e) {
this.params = [e.detail.valueAsNumber, this.params[1], this.params[2]];
this._dispatch();
}
_changeS(e) {
this.params = [this.params[0], e.detail.valueAsNumber, this.params[2]];
this._dispatch();
}
_changeL(e) {
this.params = [this.params[0], this.params[1], e.detail.valueAsNumber];
this._dispatch();
}
_dispatch() {
this.dispatchEvent(new CustomEvent("changedPallete", {
detail: {
name: this.name,
params: this.params
},
composed: true,
bubbles: true
}));
}
};
LitThemeConfiger.styles = css `
:host{
display: block;
}
.wrapper lit-header{
margin: 0;
}
.wrapper{
display: grid;
grid-template-columns: 1fr 1fr;
gap: 10px;
align-items: center;
}
`;
__decorate([
property({ type: String })
], LitThemeConfiger.prototype, "name", void 0);
__decorate([
property({ type: Array })
], LitThemeConfiger.prototype, "params", void 0);
LitThemeConfiger = __decorate([
customElement("lit-theme-configer")
], LitThemeConfiger);
export { LitThemeConfiger };