import { classMap } from 'lit/directives/class-map.js'; import { customElement, property } from 'lit/decorators.js'; import { html } from 'lit'; import ShoelaceElement from '../../internal/shoelace-element'; import styles from './badge.styles'; import type { CSSResultGroup } from 'lit'; /** * @summary Badges are used to draw attention and display statuses or counts. * @documentation https://shoelace.style/components/badge * @status stable * @since 2.0 * * @slot - The badge's content. * * @csspart base - The component's base wrapper. */ @customElement('sl-badge') export default class SlBadge extends ShoelaceElement { static styles: CSSResultGroup = styles; /** The badge's theme variant. */ @property({ reflect: true }) variant: 'primary' | 'success' | 'neutral' | 'warning' | 'danger' = 'primary'; /** Draws a pill-style badge with rounded edges. */ @property({ type: Boolean, reflect: true }) pill = false; /** Makes the badge pulsate to draw attention. */ @property({ type: Boolean, reflect: true }) pulse = false; render() { return html` `; } } declare global { interface HTMLElementTagNameMap { 'sl-badge': SlBadge; } }