import { html } from 'lit'; import { property } from 'lit/decorators.js'; import { classMap } from 'lit/directives/class-map.js'; import { BootstrapElement, defineElement } from '@bootstrap-wc/core'; /** * `` — Bootstrap close/dismiss button. * * @fires bs-close - Fired on user activation. */ export class BsCloseButton extends BootstrapElement { @property({ type: Boolean }) white = false; @property({ type: Boolean, reflect: true }) disabled = false; @property({ type: String }) label = 'Close'; private _onClick = (ev: MouseEvent) => { if (this.disabled) { ev.preventDefault(); return; } this.dispatchEvent(new CustomEvent('bs-close', { bubbles: true, composed: true })); }; override render() { const classes = classMap({ 'btn-close': true, 'btn-close-white': this.white, }); return html` `; } } defineElement('bs-close-button', BsCloseButton); declare global { interface HTMLElementTagNameMap { 'bs-close-button': BsCloseButton; } }