import { AKElement } from "@goauthentik/elements/Base"; import { CSSResult, TemplateResult, html } from "lit"; import { customElement, property } from "lit/decorators.js"; import PFLabel from "@patternfly/patternfly/components/Label/label.css"; import PFBase from "@patternfly/patternfly/patternfly-base.css"; export enum PFColor { Green = "pf-m-green", Orange = "pf-m-orange", Red = "pf-m-red", Grey = "", } @customElement("ak-label") export class Label extends AKElement { @property() color: PFColor = PFColor.Grey; @property() icon?: string; @property({ type: Boolean }) compact = false; static get styles(): CSSResult[] { return [PFBase, PFLabel]; } getDefaultIcon(): string { switch (this.color) { case PFColor.Green: return "fa-check"; case PFColor.Orange: return "fa-exclamation-triangle"; case PFColor.Red: return "fa-times"; case PFColor.Grey: return "fa-info-circle"; default: return ""; } } render(): TemplateResult { return html` `; } } declare global { interface HTMLElementTagNameMap { "ak-label": Label; } }