import { html, css, LitElement } from "lit"; import { customElement, property } from "lit/decorators.js"; export const tagName = "my-element"; /** * My Element */ @customElement(tagName) export class MyElement extends LitElement { static styles = css` :host { display: block; border: solid 1px gray; padding: 16px; max-width: 800px; } `; /** * The name to say "Hello" to. */ @property() name = "World"; /** * The number of times the button has been clicked. */ @property({ type: Number }) count = 1; render() { return html`

Hello, ${this.name}!

`; } private _onClick() { this.count++; this.dispatchEvent(new CustomEvent("count", { detail: this.count })); } foo(): string { return "foo"; } } declare global { interface HTMLElementTagNameMap { [tagName]: MyElement; } }