import type { TemplateResult } from 'lit' import { css, html } from 'lit' import { classMap } from 'lit/directives/class-map.js' import { property } from 'lit/decorators.js' import type { DirectiveClass, DirectiveResult } from 'lit/directive.js' import { when } from 'lit/directives/when.js' import { UsBaseElement } from '../base/UsBaseElement' import { customElementIfNotExist } from '../../utils/customElementIfNotExist' import type { IBadgeContrasts, IBadgeProps, IBadgeStatuses } from './model/IBadgeProps' import UsBadge_css from './styles.pcss' import vars_css from './vars.pcss' // import '../icon/UsIcon' import '../tooltip/UsTooltip' declare global { interface HTMLElementTagNameMap { 'us-badge': UsBadge } } @customElementIfNotExist('us-badge') export class UsBadge extends UsBaseElement implements IBadgeProps { static styles = [ UsBaseElement.styles, css([vars_css] as TemplateStringsArray | any), css([UsBadge_css] as TemplateStringsArray | any), ] @property({ type: String }) contrast: IBadgeContrasts = 'high' @property({ type: String }) status: IBadgeStatuses = 'primary' @property({ type: String, attribute: 'icon' }) iconName = '' @property({ type: String }) tooltipText = '' @property({ type: String }) widgetView = '' @property({ type: Boolean }) round = false render(): TemplateResult { return html`
${this.tooltipText}