@cobwds/cob-button 1.19.3 → 1.19.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"cob-button.js","sources":["../src/cob-button.ts"],"sourcesContent":["import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./cob-button.scss?inline\";\n\nlet buttonIdCounter = 0;\n\n/**\n * A button for actions like saving, submitting, or navigating. Form-associated with full keyboard support.\n *\n * Use `filled` for primary actions (one per section), `outline` for secondary, `ghost` for tertiary,\n * `text` for inline. Set `href` to render as a navigation link.\n *\n * @summary Button for actions and CTAs with variants, sizes, and icon support.\n * @element cob-button\n *\n * @slot - Button label text. Use as fallback when `label` prop is not provided.\n * @slot prefix-icon - Icon before label. Not shown for `text` variant.\n * @slot suffix-icon - Icon after label. Not shown for `text` variant.\n * @slot circle-icon - Icon for circle mode. Overrides `icon` prop.\n *\n * @cssprop [--cob-button-color] - Text color of the button label.\n * @cssprop [--cob-button-color--hover] - Text color when hovered.\n * @cssprop [--cob-button-color--active] - Text color when active/pressed.\n * @cssprop [--cob-button-background-color] - Background color of the button.\n * @cssprop [--cob-button-background-color--hover] - Background color when hovered.\n * @cssprop [--cob-button-background-color--active] - Background color when active/pressed.\n * @cssprop [--cob-button-border-color] - Border color of the button.\n * @cssprop [--cob-button-border-color--hover] - Border color when hovered.\n * @cssprop [--cob-button-border-color--active] - Border color when active/pressed.\n *\n * @fires cob-click - Fired when the button is clicked (mouse or keyboard). Not fired when disabled.\n * @fires cob-focus - Fired when the button receives focus.\n * @fires cob-blur - Fired when the button loses focus.\n *\n * @example Basic\n * ```html\n * <cob-button label=\"Button\" variant=\"filled\"></cob-button>\n * ```\n *\n * @example Variant Outline\n * ```html\n * <cob-button label=\"Button\" variant=\"outline\"></cob-button>\n * ```\n *\n * @example Variant Ghost\n * ```html\n * <cob-button label=\"Button\" variant=\"ghost\"></cob-button>\n * ```\n *\n * @example Variant Text\n * ```html\n * <cob-button label=\"Button\" variant=\"text\"></cob-button>\n * ```\n *\n * @example Prefix Icon\n * ```html\n * <cob-button label=\"Previous\" prefixIcon=\"chevron_left\"></cob-button>\n * ```\n *\n * @example Suffix Icon\n * ```html\n * <cob-button label=\"Next\" suffixIcon=\"chevron_right\"></cob-button>\n * ```\n *\n * @example Slotted Icons\n * ```html\n * <cob-button label=\"Slotted icons\">\n * <cob-icon color=\"#db117d\" slot=\"prefix-icon\" name=\"chevron_left\"></cob-icon>\n * <cob-icon color=\"#db117d\" slot=\"suffix-icon\" name=\"chevron_right\"></cob-icon>\n * </cob-button>\n * ```\n *\n * @example Circle icon button\n * ```html\n * <cob-button circle icon=\"close\" label=\"Close dialog\"></cob-button>\n * ```\n *\n * @example Size Small\n * ```html\n * <cob-button label=\"Small\" size=\"sm\"></cob-button>\n * ```\n * @example Size Large\n * ```html\n * <cob-button label=\"Large\" size=\"lg\"></cob-button>\n * ```\n *\n * @example Full width\n * ```html\n * <cob-button label=\"Full width\" fullWidth></cob-button>\n * ```\n *\n * @example Inverted\n * ```html\n * <cob-button label=\"Inverted\" inverted></cob-button>\n * ```\n * @render Inverted\n * ```html\n * <div style=\"background: #1b1b1b; padding: 1rem;\">\n * <cob-button label=\"Inverted\" inverted></cob-button>\n * </div>\n * ```\n *\n * @example Disabled\n * ```html\n * <cob-button label=\"Disabled\" disabled></cob-button>\n * ```\n *\n * @example Href\n * ```html\n * <cob-button label=\"Visit Boston.gov\" href=\"https://www.boston.gov/\" target=\"_blank\" suffixIcon=\"open_in_new\"></cob-button>\n * ```\n *\n * @example Type\n * ```html\n * <cob-button type=\"submit\" label=\"Save Changes\" variant=\"filled\"></cob-button>\n * ```\n */\n\nexport class CobButton extends LitElement {\n static styles = unsafeCSS(styles);\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n /**\n * Unique identifier. Auto-generated if not provided.\n */\n @property({ type: String, reflect: true }) id = \"\";\n\n /**\n * Name for form submission.\n */\n @property({ type: String, reflect: true }) name = \"\";\n\n /**\n * Button height: `sm` (40px) for dense UIs, `md` (48px, default) for standard use, `lg` (56px) for prominent CTAs.\n * @default \"md\"\n */\n @property({ type: String, reflect: true }) size: \"sm\" | \"md\" | \"lg\" = \"md\";\n\n /**\n * Expands button to fill container width. Use for mobile layouts or stacked button groups.\n * @default false\n */\n @property({ type: Boolean, reflect: true }) fullWidth = false;\n\n /**\n * Visual style: `filled` for primary (one per section), `outline` for secondary, `ghost` for tertiary, `text` for inline actions. Avoid `text` for navigation.\n * @default \"filled\"\n */\n @property({ type: String, reflect: true }) variant:\n | \"filled\"\n | \"outline\"\n | \"ghost\"\n | \"text\" = \"filled\";\n\n /**\n * Adjusts colors for dark backgrounds.\n * @default false\n */\n @property({ type: Boolean, reflect: true }) inverted = false;\n\n /**\n * Visible button text. Use sentence case, action-oriented text (e.g., \"Save Draft\"). Becomes aria-label in `circle` mode.\n */\n @property({ type: String }) label = \"\";\n\n /**\n * Screen reader label. Required for icon-only buttons if `label` is not set.\n */\n @property({ type: String }) ariaLabel = \"\";\n\n /**\n * ID of controlled element (e.g., dropdown or modal). Sets `aria-controls`.\n */\n @property({ type: String }) ariaControls = \"\";\n\n /**\n * Material Symbol icon before label. Not shown for `circle` mode.\n */\n @property({ type: String }) prefixIcon = \"\";\n\n /**\n * Material Symbol icon after label. Use `chevron_down` for dropdowns, `open_in_new` for external links. Not shown for `circle` mode.\n */\n @property({ type: String }) suffixIcon = \"\";\n\n /**\n * Renders circular icon-only button. Requires `icon` prop. `label` becomes aria-label.\n * @default false\n */\n @property({ type: Boolean, reflect: true }) circle = false;\n\n /**\n * Icon for circle mode. Required when `circle` is true. Scales with size (sm=24px, md=32px, lg=40px).\n */\n @property({ type: String }) icon = \"\";\n\n /**\n * Prevents interaction. Avoid disabling without explanation—show validation errors instead.\n * @default false\n */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /**\n * Form `id` to associate with. Use when button is outside the form element.\n */\n @property({ type: String, reflect: true }) form: string | null = null;\n\n /**\n * Value submitted with form data. Only used when `type=\"submit\"`.\n */\n @property({ type: String }) value = \"\";\n\n /**\n * Additional screen reader description. Sets `aria-description`.\n */\n @property({ type: String }) ariaDescription = \"\";\n\n /**\n * Form behavior: `button` (default, no form action), `submit` (submits form), `reset` (resets form). Always set explicitly to avoid unintended submissions.\n * @default \"button\"\n */\n @property({ type: String, reflect: true }) type:\n | \"submit\"\n | \"reset\"\n | \"button\" = \"button\";\n\n /**\n * Click handler. Use instead of `@click` to ensure keyboard accessibility.\n */\n @property({ attribute: false }) onClick: ((event: Event) => void) | null =\n null;\n\n /**\n * URL to navigate to. Renders as `<a>` tag. Omit for action buttons.\n */\n @property({ type: String }) href = \"\";\n\n /**\n * Link target: `_self` (same tab), `_blank` (new tab—add `suffixIcon=\"open_in_new\"`), `_parent`, `_top`, or frame name.\n * @default \"_self\"\n */\n @property({ type: String, reflect: true }) target:\n | \"_self\"\n | \"_blank\"\n | \"_parent\"\n | \"_top\"\n | \"framename\" = \"_self\";\n\n private _internals: ElementInternals;\n\n @state() private _hasPrefixSlot = false;\n @state() private _hasSuffixSlot = false;\n @state() private _hasCircleSlot = false;\n\n /**\n * Lifecycle methods\n * --------------------------------------------------------------------------\n */\n\n static formAssociated = true; // allows use of elementInternals' API\n\n constructor() {\n super();\n this._internals = this.attachInternals();\n }\n\n connectedCallback() {\n super.connectedCallback();\n\n // Generate a unique ID if not provided\n if (!this.id) {\n this.id = this._generateUniqueId();\n }\n }\n\n /**\n * Functions\n * --------------------------------------------------------------------------\n */\n\n private _generateUniqueId() {\n return `cob-button-${Date.now()}-${buttonIdCounter++}`;\n }\n\n private _onPrefixSlotChange(e: Event) {\n const slot = e.target as HTMLSlotElement;\n this._hasPrefixSlot = slot.assignedElements({ flatten: true }).length > 0;\n }\n\n private _onSuffixSlotChange(e: Event) {\n const slot = e.target as HTMLSlotElement;\n this._hasSuffixSlot = slot.assignedElements({ flatten: true }).length > 0;\n }\n\n private _onCircleSlotChange(e: Event) {\n const slot = e.target as HTMLSlotElement;\n this._hasCircleSlot = slot.assignedElements({ flatten: true }).length > 0;\n }\n\n private _manageFormAction() {\n // If an onClick function is provided, call it\n if (typeof this.onClick === \"function\" && this.onClick !== null) {\n this.onClick(new Event(\"click\")); // Call user-provided onClick function with a fake click event\n }\n\n // If part of a form, perform the corresponding action based on button's \"type\"\n const form = this._internals.form;\n\n if (form) {\n switch (this.type) {\n case \"submit\":\n form.requestSubmit();\n break;\n case \"reset\":\n form.reset();\n break;\n case \"button\":\n }\n }\n }\n\n /**\n * Event Handlers\n * --------------------------------------------------------------------------\n */\n\n private _handleFocus() {\n this.dispatchEvent(\n new Event(\"cob-focus\", { bubbles: true, composed: true }),\n );\n }\n\n private _handleBlur() {\n const button = this.shadowRoot?.querySelector(\".cob-button\");\n button?.classList.remove(\"active-focus\");\n this.dispatchEvent(\n new Event(\"cob-blur\", { bubbles: true, composed: true }),\n );\n }\n\n private _handleClick(event: Event) {\n if (this.disabled) {\n event.preventDefault();\n return;\n }\n this._manageFormAction();\n this.dispatchEvent(\n new Event(\"cob-click\", { bubbles: true, composed: true }),\n );\n }\n\n private _handleKeydown(e: KeyboardEvent) {\n if (\n e.code === \"Space\" ||\n e.code === \"Enter\" ||\n e.key === \" \" ||\n e.key === \"Enter\"\n ) {\n if (this.disabled) return;\n\n e.preventDefault();\n const btn = this.renderRoot.querySelector(\".cob-button\");\n btn?.classList.add(\"active\");\n setTimeout(() => btn?.classList.remove(\"active\"), 150);\n\n if (this.href) {\n // Click the internal <a> so native navigation happens\n const linkEl = this.renderRoot.querySelector(\n \"a.cob-button\",\n ) as HTMLAnchorElement;\n if (linkEl) {\n linkEl.click();\n }\n } else {\n this._handleAnyAttributeFunction();\n this._handleClick(e);\n }\n }\n }\n\n private _handleKeyup(e: KeyboardEvent) {\n if (\n e.code === \"Space\" ||\n e.code === \"Enter\" ||\n e.key === \" \" ||\n e.key === \"Enter\"\n ) {\n this.renderRoot.querySelector(\".cob-button\")?.classList.remove(\"active\");\n }\n }\n\n /**\n * Handles inline onclick attributes for keyboard activation.\n *\n * Native clicks execute inline onclick attributes automatically, but\n * keyboard activation of the custom element does not trigger that native\n * behavior. Dispatching a synthetic click lets the browser's own inline\n * event handler mechanism execute any onclick attribute safely without\n * eval() or new Function().\n */\n private _handleAnyAttributeFunction() {\n this.click();\n }\n\n public focus(options?: FocusOptions) {\n const innerEl = this.renderRoot.querySelector(\n this.href ? \"a.cob-button\" : \"button.cob-button\",\n ) as HTMLElement | null;\n\n if (innerEl) {\n innerEl.focus(options);\n } else {\n // fallback: focus host\n super.focus(options);\n }\n }\n\n render() {\n return html`\n ${this.href\n ? html`\n <div class=\"cob-button__linkwrapper\">\n <a\n class=\"cob-button\"\n name=${ifDefined(this.name ? this.name : undefined)}\n ?disabled=${this.disabled}\n aria-disabled=\"${this.disabled ? \"true\" : \"false\"}\"\n value=${ifDefined(this.value ? this.value : undefined)}\n href=${this.href}\n target=${this.target}\n @click=${this._handleClick}\n @focus=\"${this._handleFocus}\"\n @blur=\"${this._handleBlur}\"\n @keydown=\"${this._handleKeydown}\"\n @keyup=\"${this._handleKeyup}\"\n tabindex=\"${this.disabled ? -1 : 0}\"\n aria-label=${ifDefined(\n this.ariaLabel ||\n this.label ||\n (this.circle ? this.icon : null) ||\n \"button\",\n )}\n aria-description=${ifDefined(this.ariaDescription || undefined)}\n >\n <slot\n name=\"prefix-icon\"\n @slotchange=${this._onPrefixSlotChange}\n ?hidden=${!this.prefixIcon && !this._hasPrefixSlot}\n >\n ${this.prefixIcon\n ? html`<cob-icon\n size=\"16\"\n name=${this.prefixIcon}\n ></cob-icon>`\n : \"\"}\n </slot>\n ${!this.circle\n ? this.label\n ? html`<div class=\"cob-button__text\">${this.label}</div>`\n : html` <slot class=\"cob-button__default-slot\"></slot> `\n : \"\"}\n <slot\n name=\"suffix-icon\"\n @slotchange=${this._onSuffixSlotChange}\n ?hidden=${!this.suffixIcon && !this._hasSuffixSlot}\n >\n ${this.suffixIcon\n ? html`<cob-icon\n size=\"16\"\n name=${this.suffixIcon}\n ></cob-icon>`\n : \"\"}\n </slot>\n <slot\n name=\"circle-icon\"\n @slotchange=${this._onCircleSlotChange}\n ?hidden=${!this.circle ||\n (!this.icon && !this._hasCircleSlot)}\n >\n ${this.icon\n ? html`<cob-icon\n size=${this.size === \"sm\"\n ? \"24\"\n : this.size === \"lg\"\n ? \"40\"\n : \"32\"}\n name=${this.icon}\n ></cob-icon>`\n : \"\"}\n </slot>\n </a>\n </div>\n `\n : html`\n <button\n class=\"cob-button\"\n name=${ifDefined(this.name ? this.name : undefined)}\n ?disabled=${this.disabled}\n aria-disabled=\"${this.disabled ? \"true\" : \"false\"}\"\n form=${ifDefined(this.form || undefined)}\n value=${ifDefined(this.value ? this.value : undefined)}\n type=${this.type}\n aria-controls=${ifDefined(this.ariaControls || undefined)}\n @click=${this._handleClick}\n @focus=\"${this._handleFocus}\"\n @blur=\"${this._handleBlur}\"\n @keydown=\"${this._handleKeydown}\"\n @keyup=\"${this._handleKeyup}\"\n tabindex=\"${this.disabled ? -1 : 0}\"\n aria-label=${ifDefined(\n this.ariaLabel ||\n this.label ||\n (this.circle ? this.icon : null) ||\n this.prefixIcon ||\n this.suffixIcon ||\n \"button\",\n )}\n aria-description=${ifDefined(this.ariaDescription || undefined)}\n role=\"button\"\n >\n <slot\n name=\"prefix-icon\"\n @slotchange=${this._onPrefixSlotChange}\n ?hidden=${!this.prefixIcon && !this._hasPrefixSlot}\n >\n ${this.prefixIcon\n ? html`<cob-icon\n size=\"16\"\n name=${this.prefixIcon}\n ></cob-icon>`\n : \"\"}\n </slot>\n ${!this.circle\n ? this.label\n ? html`<div class=\"cob-button__text\">${this.label}</div>`\n : html` <slot class=\"cob-button__default-slot\"></slot> `\n : \"\"}\n <slot\n name=\"suffix-icon\"\n @slotchange=${this._onSuffixSlotChange}\n ?hidden=${!this.suffixIcon && !this._hasSuffixSlot}\n >\n ${this.suffixIcon\n ? html`<cob-icon\n size=\"16\"\n name=${this.suffixIcon}\n ></cob-icon>`\n : \"\"}\n </slot>\n <slot\n name=\"circle-icon\"\n @slotchange=${this._onCircleSlotChange}\n ?hidden=${!this.circle || (!this.icon && !this._hasCircleSlot)}\n >\n ${this.icon\n ? html`<cob-icon\n size=${this.size === \"sm\"\n ? \"24\"\n : this.size === \"lg\"\n ? \"40\"\n : \"32\"}\n name=${this.icon}\n ></cob-icon>`\n : \"\"}\n </slot>\n </button>\n `}\n `;\n }\n}\n\nif (!customElements.get(\"cob-button\")) {\n customElements.define(\"cob-button\", CobButton);\n}\n"],"names":["buttonIdCounter","_CobButton","LitElement","e","slot","form","event","btn","linkEl","options","innerEl","html","ifDefined","unsafeCSS","styles","CobButton","__decorateClass","property","state"],"mappings":";;;;;;;;;;;;;;;;;;;AAMA,IAAIA,IAAkB;AAkHf,MAAMC,IAAN,MAAMA,UAAkBC,EAAW;AAAA;AAAA,EAkJxC,cAAc;AACZ,UAAA,GAzIyC,KAAA,KAAK,IAKL,KAAA,OAAO,IAMP,KAAA,OAA2B,MAM1B,KAAA,YAAY,IAMb,KAAA,UAI9B,UAM+B,KAAA,WAAW,IAK3B,KAAA,QAAQ,IAKR,KAAA,YAAY,IAKZ,KAAA,eAAe,IAKf,KAAA,aAAa,IAKb,KAAA,aAAa,IAMG,KAAA,SAAS,IAKzB,KAAA,OAAO,IAMS,KAAA,WAAW,IAKZ,KAAA,OAAsB,MAKrC,KAAA,QAAQ,IAKR,KAAA,kBAAkB,IAMH,KAAA,OAG5B,UAKiB,KAAA,UAC9B,MAK0B,KAAA,OAAO,IAMQ,KAAA,SAKzB,SAIT,KAAQ,iBAAiB,IACzB,KAAQ,iBAAiB,IACzB,KAAQ,iBAAiB,IAWhC,KAAK,aAAa,KAAK,gBAAA;AAAA,EACzB;AAAA,EAEA,oBAAoB;AAClB,UAAM,kBAAA,GAGD,KAAK,OACR,KAAK,KAAK,KAAK,kBAAA;AAAA,EAEnB;AAAA;AAAA;AAAA;AAAA;AAAA,EAOQ,oBAAoB;AAC1B,WAAO,cAAc,KAAK,IAAA,CAAK,IAAIF,GAAiB;AAAA,EACtD;AAAA,EAEQ,oBAAoBG,GAAU;AACpC,UAAMC,IAAOD,EAAE;AACf,SAAK,iBAAiBC,EAAK,iBAAiB,EAAE,SAAS,GAAA,CAAM,EAAE,SAAS;AAAA,EAC1E;AAAA,EAEQ,oBAAoBD,GAAU;AACpC,UAAMC,IAAOD,EAAE;AACf,SAAK,iBAAiBC,EAAK,iBAAiB,EAAE,SAAS,GAAA,CAAM,EAAE,SAAS;AAAA,EAC1E;AAAA,EAEQ,oBAAoBD,GAAU;AACpC,UAAMC,IAAOD,EAAE;AACf,SAAK,iBAAiBC,EAAK,iBAAiB,EAAE,SAAS,GAAA,CAAM,EAAE,SAAS;AAAA,EAC1E;AAAA,EAEQ,oBAAoB;AAE1B,IAAI,OAAO,KAAK,WAAY,cAAc,KAAK,YAAY,QACzD,KAAK,QAAQ,IAAI,MAAM,OAAO,CAAC;AAIjC,UAAMC,IAAO,KAAK,WAAW;AAE7B,QAAIA;AACF,cAAQ,KAAK,MAAA;AAAA,QACX,KAAK;AACH,UAAAA,EAAK,cAAA;AACL;AAAA,QACF,KAAK;AACH,UAAAA,EAAK,MAAA;AACL;AAAA,MACG;AAAA,EAGX;AAAA;AAAA;AAAA;AAAA;AAAA,EAOQ,eAAe;AACrB,SAAK;AAAA,MACH,IAAI,MAAM,aAAa,EAAE,SAAS,IAAM,UAAU,IAAM;AAAA,IAAA;AAAA,EAE5D;AAAA,EAEQ,cAAc;AAEpB,IADe,KAAK,YAAY,cAAc,aAAa,GACnD,UAAU,OAAO,cAAc,GACvC,KAAK;AAAA,MACH,IAAI,MAAM,YAAY,EAAE,SAAS,IAAM,UAAU,IAAM;AAAA,IAAA;AAAA,EAE3D;AAAA,EAEQ,aAAaC,GAAc;AACjC,QAAI,KAAK,UAAU;AACjB,MAAAA,EAAM,eAAA;AACN;AAAA,IACF;AACA,SAAK,kBAAA,GACL,KAAK;AAAA,MACH,IAAI,MAAM,aAAa,EAAE,SAAS,IAAM,UAAU,IAAM;AAAA,IAAA;AAAA,EAE5D;AAAA,EAEQ,eAAeH,GAAkB;AACvC,QACEA,EAAE,SAAS,WACXA,EAAE,SAAS,WACXA,EAAE,QAAQ,OACVA,EAAE,QAAQ,SACV;AACA,UAAI,KAAK,SAAU;AAEnB,MAAAA,EAAE,eAAA;AACF,YAAMI,IAAM,KAAK,WAAW,cAAc,aAAa;AAIvD,UAHAA,GAAK,UAAU,IAAI,QAAQ,GAC3B,WAAW,MAAMA,GAAK,UAAU,OAAO,QAAQ,GAAG,GAAG,GAEjD,KAAK,MAAM;AAEb,cAAMC,IAAS,KAAK,WAAW;AAAA,UAC7B;AAAA,QAAA;AAEF,QAAIA,KACFA,EAAO,MAAA;AAAA,MAEX;AACE,aAAK,4BAAA,GACL,KAAK,aAAaL,CAAC;AAAA,IAEvB;AAAA,EACF;AAAA,EAEQ,aAAaA,GAAkB;AACrC,KACEA,EAAE,SAAS,WACXA,EAAE,SAAS,WACXA,EAAE,QAAQ,OACVA,EAAE,QAAQ,YAEV,KAAK,WAAW,cAAc,aAAa,GAAG,UAAU,OAAO,QAAQ;AAAA,EAE3E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWQ,8BAA8B;AACpC,SAAK,MAAA;AAAA,EACP;AAAA,EAEO,MAAMM,GAAwB;AACnC,UAAMC,IAAU,KAAK,WAAW;AAAA,MAC9B,KAAK,OAAO,iBAAiB;AAAA,IAAA;AAG/B,IAAIA,IACFA,EAAQ,MAAMD,CAAO,IAGrB,MAAM,MAAMA,CAAO;AAAA,EAEvB;AAAA,EAEA,SAAS;AACP,WAAOE;AAAA,QACH,KAAK,OACHA;AAAA;AAAA;AAAA;AAAA,uBAIaC,EAAU,KAAK,OAAO,KAAK,OAAO,MAAS,CAAC;AAAA,4BACvC,KAAK,QAAQ;AAAA,iCACR,KAAK,WAAW,SAAS,OAAO;AAAA,wBACzCA,EAAU,KAAK,QAAQ,KAAK,QAAQ,MAAS,CAAC;AAAA,uBAC/C,KAAK,IAAI;AAAA,yBACP,KAAK,MAAM;AAAA,yBACX,KAAK,YAAY;AAAA,0BAChB,KAAK,YAAY;AAAA,yBAClB,KAAK,WAAW;AAAA,4BACb,KAAK,cAAc;AAAA,0BACrB,KAAK,YAAY;AAAA,4BACf,KAAK,WAAW,KAAK,CAAC;AAAA,6BACrBA;AAAA,MACX,KAAK,aACH,KAAK,UACJ,KAAK,SAAS,KAAK,OAAO,SAC3B;AAAA,IAAA,CACH;AAAA,mCACkBA,EAAU,KAAK,mBAAmB,MAAS,CAAC;AAAA;AAAA;AAAA;AAAA,gCAI/C,KAAK,mBAAmB;AAAA,4BAC5B,CAAC,KAAK,cAAc,CAAC,KAAK,cAAc;AAAA;AAAA,oBAEhD,KAAK,aACHD;AAAA;AAAA,+BAES,KAAK,UAAU;AAAA,sCAExB,EAAE;AAAA;AAAA,kBAEL,KAAK,SAIJ,KAHA,KAAK,QACHA,kCAAqC,KAAK,KAAK,WAC/CA,mDACA;AAAA;AAAA;AAAA,gCAGU,KAAK,mBAAmB;AAAA,4BAC5B,CAAC,KAAK,cAAc,CAAC,KAAK,cAAc;AAAA;AAAA,oBAEhD,KAAK,aACHA;AAAA;AAAA,+BAES,KAAK,UAAU;AAAA,sCAExB,EAAE;AAAA;AAAA;AAAA;AAAA,gCAIQ,KAAK,mBAAmB;AAAA,4BAC5B,CAAC,KAAK,UACf,CAAC,KAAK,QAAQ,CAAC,KAAK,cAAe;AAAA;AAAA,oBAElC,KAAK,OACHA;AAAA,+BACS,KAAK,SAAS,OACjB,OACA,KAAK,SAAS,OACZ,OACA,IAAI;AAAA,+BACH,KAAK,IAAI;AAAA,sCAElB,EAAE;AAAA;AAAA;AAAA;AAAA,cAKdA;AAAA;AAAA;AAAA,qBAGWC,EAAU,KAAK,OAAO,KAAK,OAAO,MAAS,CAAC;AAAA,0BACvC,KAAK,QAAQ;AAAA,+BACR,KAAK,WAAW,SAAS,OAAO;AAAA,qBAC1CA,EAAU,KAAK,QAAQ,MAAS,CAAC;AAAA,sBAChCA,EAAU,KAAK,QAAQ,KAAK,QAAQ,MAAS,CAAC;AAAA,qBAC/C,KAAK,IAAI;AAAA,8BACAA,EAAU,KAAK,gBAAgB,MAAS,CAAC;AAAA,uBAChD,KAAK,YAAY;AAAA,wBAChB,KAAK,YAAY;AAAA,uBAClB,KAAK,WAAW;AAAA,0BACb,KAAK,cAAc;AAAA,wBACrB,KAAK,YAAY;AAAA,0BACf,KAAK,WAAW,KAAK,CAAC;AAAA,2BACrBA;AAAA,MACX,KAAK,aACH,KAAK,UACJ,KAAK,SAAS,KAAK,OAAO,SAC3B,KAAK,cACL,KAAK,cACL;AAAA,IAAA,CACH;AAAA,iCACkBA,EAAU,KAAK,mBAAmB,MAAS,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,8BAK/C,KAAK,mBAAmB;AAAA,0BAC5B,CAAC,KAAK,cAAc,CAAC,KAAK,cAAc;AAAA;AAAA,kBAEhD,KAAK,aACHD;AAAA;AAAA,6BAES,KAAK,UAAU;AAAA,oCAExB,EAAE;AAAA;AAAA,gBAEL,KAAK,SAIJ,KAHA,KAAK,QACHA,kCAAqC,KAAK,KAAK,WAC/CA,mDACA;AAAA;AAAA;AAAA,8BAGU,KAAK,mBAAmB;AAAA,0BAC5B,CAAC,KAAK,cAAc,CAAC,KAAK,cAAc;AAAA;AAAA,kBAEhD,KAAK,aACHA;AAAA;AAAA,6BAES,KAAK,UAAU;AAAA,oCAExB,EAAE;AAAA;AAAA;AAAA;AAAA,8BAIQ,KAAK,mBAAmB;AAAA,0BAC5B,CAAC,KAAK,UAAW,CAAC,KAAK,QAAQ,CAAC,KAAK,cAAe;AAAA;AAAA,kBAE5D,KAAK,OACHA;AAAA,6BACS,KAAK,SAAS,OACjB,OACA,KAAK,SAAS,OACZ,OACA,IAAI;AAAA,6BACH,KAAK,IAAI;AAAA,oCAElB,EAAE;AAAA;AAAA;AAAA,WAGX;AAAA;AAAA,EAET;AACF;AArcEV,EAAO,SAASY,EAAUC,CAAM,GAChCb,EAAO,oBAAoB;AAAA,EACzB,GAAGC,EAAW;AAAA,EACd,gBAAgB;AAAA,GA4IlBD,EAAO,iBAAiB;AAhJnB,IAAMc,IAANd;AAUsCe,EAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAV9BF,EAUgC,WAAA,IAAA;AAKAC,EAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAf9BF,EAegC,WAAA,MAAA;AAMAC,EAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GArB9BF,EAqBgC,WAAA,MAAA;AAMCC,EAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GA3B/BF,EA2BiC,WAAA,WAAA;AAMDC,EAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAjC9BF,EAiCgC,WAAA,SAAA;AAUCC,EAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GA3C/BF,EA2CiC,WAAA,UAAA;AAKhBC,EAAA;AAAA,EAA3BC,EAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GAhDfF,EAgDiB,WAAA,OAAA;AAKAC,EAAA;AAAA,EAA3BC,EAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GArDfF,EAqDiB,WAAA,WAAA;AAKAC,EAAA;AAAA,EAA3BC,EAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GA1DfF,EA0DiB,WAAA,cAAA;AAKAC,EAAA;AAAA,EAA3BC,EAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GA/DfF,EA+DiB,WAAA,YAAA;AAKAC,EAAA;AAAA,EAA3BC,EAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GApEfF,EAoEiB,WAAA,YAAA;AAMgBC,EAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GA1E/BF,EA0EiC,WAAA,QAAA;AAKhBC,EAAA;AAAA,EAA3BC,EAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GA/EfF,EA+EiB,WAAA,MAAA;AAMgBC,EAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GArF/BF,EAqFiC,WAAA,UAAA;AAKDC,EAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GA1F9BF,EA0FgC,WAAA,MAAA;AAKfC,EAAA;AAAA,EAA3BC,EAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GA/FfF,EA+FiB,WAAA,OAAA;AAKAC,EAAA;AAAA,EAA3BC,EAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GApGfF,EAoGiB,WAAA,iBAAA;AAMeC,EAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GA1G9BF,EA0GgC,WAAA,MAAA;AAQXC,EAAA;AAAA,EAA/BC,EAAS,EAAE,WAAW,GAAA,CAAO;AAAA,GAlHnBF,EAkHqB,WAAA,SAAA;AAMJC,EAAA;AAAA,EAA3BC,EAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GAxHfF,EAwHiB,WAAA,MAAA;AAMeC,EAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GA9H9BF,EA8HgC,WAAA,QAAA;AAS1BC,EAAA;AAAA,EAAhBE,EAAA;AAAM,GAvIIH,EAuIM,WAAA,gBAAA;AACAC,EAAA;AAAA,EAAhBE,EAAA;AAAM,GAxIIH,EAwIM,WAAA,gBAAA;AACAC,EAAA;AAAA,EAAhBE,EAAA;AAAM,GAzIIH,EAyIM,WAAA,gBAAA;AA+Td,eAAe,IAAI,YAAY,KAClC,eAAe,OAAO,cAAcA,CAAS;"}
1
+ {"version":3,"file":"cob-button.js","sources":["../../cob-icon/dist/cob-icon.js","../src/cob-button.ts"],"sourcesContent":["import { LitElement as Hn, unsafeCSS as Gn, html as Bn } from \"lit\";\nimport { property as Q, state as Wn } from \"lit/decorators.js\";\n/*!\n * █▄ █ █ █ █▀▀▀█ █▀▀▄ █▀▀▀█\n * █ █ █ █▄▄▄█ ▀▀▀▄▄ █ █ ▀▀▀▄▄\n * █ ▀█ █ █▄▄▄█ █▄▄▀ █▄▄▄█\n *\n * Icon Component v1.19.4\n * Part of the City of Boston Web Design System\n * Repository: https://github.com/CityOfBoston/nywds-poc\n * License: MIT\n*/\nconst St = globalThis.__nysIconRegistry ??= /* @__PURE__ */ new Map(), ct = globalThis.__nysIconWatchers ??= /* @__PURE__ */ new Map();\nlet ee = null, Ge = null;\nasync function Yn() {\n return ee || (Ge ??= import(\"./cob-icon.library-BR0WCz7Q.js\").then(\n (o) => ee = o.default\n ), Ge);\n}\nfunction jn() {\n if (globalThis.__nysIconDefaultRegistered || St.has(\"default\")) {\n globalThis.__nysIconDefaultRegistered = !0;\n return;\n }\n globalThis.__nysIconDefaultRegistered = !0, St.set(\"default\", {\n resolver: async (o) => {\n if (!o) return;\n const a = (await Yn())[o];\n return a ? { type: \"svg\", content: a } : void 0;\n }\n });\n}\nfunction ko(o, n) {\n St.set(o, n), ct.get(o)?.forEach((a) => a.redraw());\n}\nfunction zo(o) {\n St.delete(o), ct.get(o)?.forEach((n) => n.redraw());\n}\nfunction $n(o) {\n return jn(), St.get(o);\n}\nfunction Be(o, n) {\n ct.has(o) || ct.set(o, /* @__PURE__ */ new Set()), ct.get(o).add(n);\n}\nfunction We(o, n) {\n ct.get(o)?.delete(n);\n}\n/*! @license DOMPurify 3.4.11 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.4.11/LICENSE */\nfunction Ye(o, n) {\n (n == null || n > o.length) && (n = o.length);\n for (var a = 0, c = Array(n); a < n; a++) c[a] = o[a];\n return c;\n}\nfunction Xn(o) {\n if (Array.isArray(o)) return o;\n}\nfunction Vn(o, n) {\n var a = o == null ? null : typeof Symbol < \"u\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (a != null) {\n var c, l, m, y, lt = [], D = !0, ut = !1;\n try {\n if (m = (a = a.call(o)).next, n !== 0) for (; !(D = (c = m.call(a)).done) && (lt.push(c.value), lt.length !== n); D = !0) ;\n } catch (Pt) {\n ut = !0, l = Pt;\n } finally {\n try {\n if (!D && a.return != null && (y = a.return(), Object(y) !== y)) return;\n } finally {\n if (ut) throw l;\n }\n }\n return lt;\n }\n}\nfunction qn() {\n throw new TypeError(`Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.`);\n}\nfunction Kn(o, n) {\n return Xn(o) || Vn(o, n) || Zn(o, n) || qn();\n}\nfunction Zn(o, n) {\n if (o) {\n if (typeof o == \"string\") return Ye(o, n);\n var a = {}.toString.call(o).slice(8, -1);\n return a === \"Object\" && o.constructor && (a = o.constructor.name), a === \"Map\" || a === \"Set\" ? Array.from(o) : a === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a) ? Ye(o, n) : void 0;\n }\n}\nconst an = Object.entries, je = Object.setPrototypeOf, Jn = Object.isFrozen, Qn = Object.getPrototypeOf, to = Object.getOwnPropertyDescriptor;\nlet w = Object.freeze, R = Object.seal, st = Object.create, sn = typeof Reflect < \"u\" && Reflect, se = sn.apply, ce = sn.construct;\nw || (w = function(n) {\n return n;\n});\nR || (R = function(n) {\n return n;\n});\nse || (se = function(n, a) {\n for (var c = arguments.length, l = new Array(c > 2 ? c - 2 : 0), m = 2; m < c; m++)\n l[m - 2] = arguments[m];\n return n.apply(a, l);\n});\nce || (ce = function(n) {\n for (var a = arguments.length, c = new Array(a > 1 ? a - 1 : 0), l = 1; l < a; l++)\n c[l - 1] = arguments[l];\n return new n(...c);\n});\nconst gt = E(Array.prototype.forEach), eo = E(Array.prototype.lastIndexOf), $e = E(Array.prototype.pop), at = E(Array.prototype.push), no = E(Array.prototype.splice), j = Array.isArray, yt = E(String.prototype.toLowerCase), ne = E(String.prototype.toString), Xe = E(String.prototype.match), bt = E(String.prototype.replace), Ve = E(String.prototype.indexOf), oo = E(String.prototype.trim), io = E(Number.prototype.toString), ro = E(Boolean.prototype.toString), qe = typeof BigInt > \"u\" ? null : E(BigInt.prototype.toString), Ke = typeof Symbol > \"u\" ? null : E(Symbol.prototype.toString), S = E(Object.prototype.hasOwnProperty), Et = E(Object.prototype.toString), O = E(RegExp.prototype.test), J = ao(TypeError);\nfunction E(o) {\n return function(n) {\n n instanceof RegExp && (n.lastIndex = 0);\n for (var a = arguments.length, c = new Array(a > 1 ? a - 1 : 0), l = 1; l < a; l++)\n c[l - 1] = arguments[l];\n return se(o, n, c);\n };\n}\nfunction ao(o) {\n return function() {\n for (var n = arguments.length, a = new Array(n), c = 0; c < n; c++)\n a[c] = arguments[c];\n return ce(o, a);\n };\n}\nfunction f(o, n) {\n let a = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : yt;\n if (je && je(o, null), !j(n))\n return o;\n let c = n.length;\n for (; c--; ) {\n let l = n[c];\n if (typeof l == \"string\") {\n const m = a(l);\n m !== l && (Jn(n) || (n[c] = m), l = m);\n }\n o[l] = !0;\n }\n return o;\n}\nfunction so(o) {\n for (let n = 0; n < o.length; n++)\n S(o, n) || (o[n] = null);\n return o;\n}\nfunction N(o) {\n const n = st(null);\n for (const c of an(o)) {\n var a = Kn(c, 2);\n const l = a[0], m = a[1];\n S(o, l) && (j(m) ? n[l] = so(m) : m && typeof m == \"object\" && m.constructor === Object ? n[l] = N(m) : n[l] = m);\n }\n return n;\n}\nfunction co(o) {\n switch (typeof o) {\n case \"string\":\n return o;\n case \"number\":\n return io(o);\n case \"boolean\":\n return ro(o);\n case \"bigint\":\n return qe ? qe(o) : \"0\";\n case \"symbol\":\n return Ke ? Ke(o) : \"Symbol()\";\n case \"undefined\":\n return Et(o);\n case \"function\":\n case \"object\": {\n if (o === null)\n return Et(o);\n const n = o, a = z(n, \"toString\");\n if (typeof a == \"function\") {\n const c = a(n);\n return typeof c == \"string\" ? c : Et(c);\n }\n return Et(o);\n }\n default:\n return Et(o);\n }\n}\nfunction z(o, n) {\n for (; o !== null; ) {\n const c = to(o, n);\n if (c) {\n if (c.get)\n return E(c.get);\n if (typeof c.value == \"function\")\n return E(c.value);\n }\n o = Qn(o);\n }\n function a() {\n return null;\n }\n return a;\n}\nfunction lo(o) {\n try {\n return O(o, \"\"), !0;\n } catch {\n return !1;\n }\n}\nconst Ze = w([\"a\", \"abbr\", \"acronym\", \"address\", \"area\", \"article\", \"aside\", \"audio\", \"b\", \"bdi\", \"bdo\", \"big\", \"blink\", \"blockquote\", \"body\", \"br\", \"button\", \"canvas\", \"caption\", \"center\", \"cite\", \"code\", \"col\", \"colgroup\", \"content\", \"data\", \"datalist\", \"dd\", \"decorator\", \"del\", \"details\", \"dfn\", \"dialog\", \"dir\", \"div\", \"dl\", \"dt\", \"element\", \"em\", \"fieldset\", \"figcaption\", \"figure\", \"font\", \"footer\", \"form\", \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\", \"head\", \"header\", \"hgroup\", \"hr\", \"html\", \"i\", \"img\", \"input\", \"ins\", \"kbd\", \"label\", \"legend\", \"li\", \"main\", \"map\", \"mark\", \"marquee\", \"menu\", \"menuitem\", \"meter\", \"nav\", \"nobr\", \"ol\", \"optgroup\", \"option\", \"output\", \"p\", \"picture\", \"pre\", \"progress\", \"q\", \"rp\", \"rt\", \"ruby\", \"s\", \"samp\", \"search\", \"section\", \"select\", \"shadow\", \"slot\", \"small\", \"source\", \"spacer\", \"span\", \"strike\", \"strong\", \"style\", \"sub\", \"summary\", \"sup\", \"table\", \"tbody\", \"td\", \"template\", \"textarea\", \"tfoot\", \"th\", \"thead\", \"time\", \"tr\", \"track\", \"tt\", \"u\", \"ul\", \"var\", \"video\", \"wbr\"]), oe = w([\"svg\", \"a\", \"altglyph\", \"altglyphdef\", \"altglyphitem\", \"animatecolor\", \"animatemotion\", \"animatetransform\", \"circle\", \"clippath\", \"defs\", \"desc\", \"ellipse\", \"enterkeyhint\", \"exportparts\", \"filter\", \"font\", \"g\", \"glyph\", \"glyphref\", \"hkern\", \"image\", \"inputmode\", \"line\", \"lineargradient\", \"marker\", \"mask\", \"metadata\", \"mpath\", \"part\", \"path\", \"pattern\", \"polygon\", \"polyline\", \"radialgradient\", \"rect\", \"stop\", \"style\", \"switch\", \"symbol\", \"text\", \"textpath\", \"title\", \"tref\", \"tspan\", \"view\", \"vkern\"]), ie = w([\"feBlend\", \"feColorMatrix\", \"feComponentTransfer\", \"feComposite\", \"feConvolveMatrix\", \"feDiffuseLighting\", \"feDisplacementMap\", \"feDistantLight\", \"feDropShadow\", \"feFlood\", \"feFuncA\", \"feFuncB\", \"feFuncG\", \"feFuncR\", \"feGaussianBlur\", \"feImage\", \"feMerge\", \"feMergeNode\", \"feMorphology\", \"feOffset\", \"fePointLight\", \"feSpecularLighting\", \"feSpotLight\", \"feTile\", \"feTurbulence\"]), uo = w([\"animate\", \"color-profile\", \"cursor\", \"discard\", \"font-face\", \"font-face-format\", \"font-face-name\", \"font-face-src\", \"font-face-uri\", \"foreignobject\", \"hatch\", \"hatchpath\", \"mesh\", \"meshgradient\", \"meshpatch\", \"meshrow\", \"missing-glyph\", \"script\", \"set\", \"solidcolor\", \"unknown\", \"use\"]), re = w([\"math\", \"menclose\", \"merror\", \"mfenced\", \"mfrac\", \"mglyph\", \"mi\", \"mlabeledtr\", \"mmultiscripts\", \"mn\", \"mo\", \"mover\", \"mpadded\", \"mphantom\", \"mroot\", \"mrow\", \"ms\", \"mspace\", \"msqrt\", \"mstyle\", \"msub\", \"msup\", \"msubsup\", \"mtable\", \"mtd\", \"mtext\", \"mtr\", \"munder\", \"munderover\", \"mprescripts\"]), fo = w([\"maction\", \"maligngroup\", \"malignmark\", \"mlongdiv\", \"mscarries\", \"mscarry\", \"msgroup\", \"mstack\", \"msline\", \"msrow\", \"semantics\", \"annotation\", \"annotation-xml\", \"mprescripts\", \"none\"]), Je = w([\"#text\"]), Qe = w([\"accept\", \"action\", \"align\", \"alt\", \"autocapitalize\", \"autocomplete\", \"autopictureinpicture\", \"autoplay\", \"background\", \"bgcolor\", \"border\", \"capture\", \"cellpadding\", \"cellspacing\", \"checked\", \"cite\", \"class\", \"clear\", \"color\", \"cols\", \"colspan\", \"command\", \"commandfor\", \"controls\", \"controlslist\", \"coords\", \"crossorigin\", \"datetime\", \"decoding\", \"default\", \"dir\", \"disabled\", \"disablepictureinpicture\", \"disableremoteplayback\", \"download\", \"draggable\", \"enctype\", \"enterkeyhint\", \"exportparts\", \"face\", \"for\", \"headers\", \"height\", \"hidden\", \"high\", \"href\", \"hreflang\", \"id\", \"inert\", \"inputmode\", \"integrity\", \"ismap\", \"kind\", \"label\", \"lang\", \"list\", \"loading\", \"loop\", \"low\", \"max\", \"maxlength\", \"media\", \"method\", \"min\", \"minlength\", \"multiple\", \"muted\", \"name\", \"nonce\", \"noshade\", \"novalidate\", \"nowrap\", \"open\", \"optimum\", \"part\", \"pattern\", \"placeholder\", \"playsinline\", \"popover\", \"popovertarget\", \"popovertargetaction\", \"poster\", \"preload\", \"pubdate\", \"radiogroup\", \"readonly\", \"rel\", \"required\", \"rev\", \"reversed\", \"role\", \"rows\", \"rowspan\", \"spellcheck\", \"scope\", \"selected\", \"shape\", \"size\", \"sizes\", \"slot\", \"span\", \"srclang\", \"start\", \"src\", \"srcset\", \"step\", \"style\", \"summary\", \"tabindex\", \"title\", \"translate\", \"type\", \"usemap\", \"valign\", \"value\", \"width\", \"wrap\", \"xmlns\"]), ae = w([\"accent-height\", \"accumulate\", \"additive\", \"alignment-baseline\", \"amplitude\", \"ascent\", \"attributename\", \"attributetype\", \"azimuth\", \"basefrequency\", \"baseline-shift\", \"begin\", \"bias\", \"by\", \"class\", \"clip\", \"clippathunits\", \"clip-path\", \"clip-rule\", \"color\", \"color-interpolation\", \"color-interpolation-filters\", \"color-profile\", \"color-rendering\", \"cx\", \"cy\", \"d\", \"dx\", \"dy\", \"diffuseconstant\", \"direction\", \"display\", \"divisor\", \"dur\", \"edgemode\", \"elevation\", \"end\", \"exponent\", \"fill\", \"fill-opacity\", \"fill-rule\", \"filter\", \"filterunits\", \"flood-color\", \"flood-opacity\", \"font-family\", \"font-size\", \"font-size-adjust\", \"font-stretch\", \"font-style\", \"font-variant\", \"font-weight\", \"fx\", \"fy\", \"g1\", \"g2\", \"glyph-name\", \"glyphref\", \"gradientunits\", \"gradienttransform\", \"height\", \"href\", \"id\", \"image-rendering\", \"in\", \"in2\", \"intercept\", \"k\", \"k1\", \"k2\", \"k3\", \"k4\", \"kerning\", \"keypoints\", \"keysplines\", \"keytimes\", \"lang\", \"lengthadjust\", \"letter-spacing\", \"kernelmatrix\", \"kernelunitlength\", \"lighting-color\", \"local\", \"marker-end\", \"marker-mid\", \"marker-start\", \"markerheight\", \"markerunits\", \"markerwidth\", \"maskcontentunits\", \"maskunits\", \"max\", \"mask\", \"mask-type\", \"media\", \"method\", \"mode\", \"min\", \"name\", \"numoctaves\", \"offset\", \"operator\", \"opacity\", \"order\", \"orient\", \"orientation\", \"origin\", \"overflow\", \"paint-order\", \"path\", \"pathlength\", \"patterncontentunits\", \"patterntransform\", \"patternunits\", \"points\", \"preservealpha\", \"preserveaspectratio\", \"primitiveunits\", \"r\", \"rx\", \"ry\", \"radius\", \"refx\", \"refy\", \"repeatcount\", \"repeatdur\", \"restart\", \"result\", \"rotate\", \"scale\", \"seed\", \"shape-rendering\", \"slope\", \"specularconstant\", \"specularexponent\", \"spreadmethod\", \"startoffset\", \"stddeviation\", \"stitchtiles\", \"stop-color\", \"stop-opacity\", \"stroke-dasharray\", \"stroke-dashoffset\", \"stroke-linecap\", \"stroke-linejoin\", \"stroke-miterlimit\", \"stroke-opacity\", \"stroke\", \"stroke-width\", \"style\", \"surfacescale\", \"systemlanguage\", \"tabindex\", \"tablevalues\", \"targetx\", \"targety\", \"transform\", \"transform-origin\", \"text-anchor\", \"text-decoration\", \"text-rendering\", \"textlength\", \"type\", \"u1\", \"u2\", \"unicode\", \"values\", \"viewbox\", \"visibility\", \"version\", \"vert-adv-y\", \"vert-origin-x\", \"vert-origin-y\", \"width\", \"word-spacing\", \"wrap\", \"writing-mode\", \"xchannelselector\", \"ychannelselector\", \"x\", \"x1\", \"x2\", \"xmlns\", \"y\", \"y1\", \"y2\", \"z\", \"zoomandpan\"]), tn = w([\"accent\", \"accentunder\", \"align\", \"bevelled\", \"close\", \"columnalign\", \"columnlines\", \"columnspacing\", \"columnspan\", \"denomalign\", \"depth\", \"dir\", \"display\", \"displaystyle\", \"encoding\", \"fence\", \"frame\", \"height\", \"href\", \"id\", \"largeop\", \"length\", \"linethickness\", \"lquote\", \"lspace\", \"mathbackground\", \"mathcolor\", \"mathsize\", \"mathvariant\", \"maxsize\", \"minsize\", \"movablelimits\", \"notation\", \"numalign\", \"open\", \"rowalign\", \"rowlines\", \"rowspacing\", \"rowspan\", \"rspace\", \"rquote\", \"scriptlevel\", \"scriptminsize\", \"scriptsizemultiplier\", \"selection\", \"separator\", \"separators\", \"stretchy\", \"subscriptshift\", \"supscriptshift\", \"symmetric\", \"voffset\", \"width\", \"xmlns\"]), vt = w([\"xlink:href\", \"xml:id\", \"xlink:title\", \"xml:space\", \"xmlns:xlink\"]), po = R(/{{[\\w\\W]*|^[\\w\\W]*}}/g), mo = R(/<%[\\w\\W]*|^[\\w\\W]*%>/g), ho = R(/\\${[\\w\\W]*/g), _o = R(/^data-[\\-\\w.\\u00B7-\\uFFFF]+$/), To = R(/^aria-[\\-\\w]+$/), en = R(\n /^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i\n // eslint-disable-line no-useless-escape\n), go = R(/^(?:\\w+script|data):/i), bo = R(\n /[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g\n // eslint-disable-line no-control-regex\n), Eo = R(/^html$/i), yo = R(/^[a-z][.\\w]*(-[.\\w]+)+$/i), nn = R(/<[/\\w!]/g), Ao = R(/<[/\\w]/g), So = R(/<\\/no(script|embed|frames)/i), Oo = R(/\\/>/i), k = {\n element: 1,\n attribute: 2,\n text: 3,\n cdataSection: 4,\n entityReference: 5,\n // Deprecated\n entityNode: 6,\n // Deprecated\n processingInstruction: 7,\n comment: 8,\n document: 9,\n documentType: 10,\n documentFragment: 11,\n notation: 12\n // Deprecated\n}, wo = function() {\n return typeof window > \"u\" ? null : window;\n}, Ro = function(n, a) {\n if (typeof n != \"object\" || typeof n.createPolicy != \"function\")\n return null;\n let c = null;\n const l = \"data-tt-policy-suffix\";\n a && a.hasAttribute(l) && (c = a.getAttribute(l));\n const m = \"dompurify\" + (c ? \"#\" + c : \"\");\n try {\n return n.createPolicy(m, {\n createHTML(y) {\n return y;\n },\n createScriptURL(y) {\n return y;\n }\n });\n } catch {\n return console.warn(\"TrustedTypes policy \" + m + \" could not be created.\"), null;\n }\n}, on = function() {\n return {\n afterSanitizeAttributes: [],\n afterSanitizeElements: [],\n afterSanitizeShadowDOM: [],\n beforeSanitizeAttributes: [],\n beforeSanitizeElements: [],\n beforeSanitizeShadowDOM: [],\n uponSanitizeAttribute: [],\n uponSanitizeElement: [],\n uponSanitizeShadowNode: []\n };\n}, Y = function(n, a, c, l) {\n return S(n, a) && j(n[a]) ? f(l.base ? N(l.base) : {}, n[a], l.transform) : c;\n};\nfunction cn() {\n let o = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : wo();\n const n = (r) => cn(r);\n if (n.version = \"3.4.11\", n.removed = [], !o || !o.document || o.document.nodeType !== k.document || !o.Element)\n return n.isSupported = !1, n;\n let a = o.document;\n const c = a, l = c.currentScript;\n o.DocumentFragment;\n const m = o.HTMLTemplateElement, y = o.Node, lt = o.Element, D = o.NodeFilter, ut = o.NamedNodeMap;\n ut === void 0 && (o.NamedNodeMap || o.MozNamedAttrMap), o.HTMLFormElement;\n const Pt = o.DOMParser, Ot = o.trustedTypes, V = lt.prototype, un = z(V, \"cloneNode\"), ue = z(V, \"remove\"), fn = z(V, \"nextSibling\"), ft = z(V, \"childNodes\"), pt = z(V, \"parentNode\"), fe = z(V, \"shadowRoot\"), xt = z(V, \"attributes\"), C = y && y.prototype ? z(y.prototype, \"nodeType\") : null, H = y && y.prototype ? z(y.prototype, \"nodeName\") : null;\n if (typeof m == \"function\") {\n const r = a.createElement(\"template\");\n r.content && r.content.ownerDocument && (a = r.content.ownerDocument);\n }\n let L, q = \"\", kt, pe = !1, mt = 0;\n const me = function() {\n if (mt > 0)\n throw J('A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the \"DOMPurify and Trusted Types\" section of the README.');\n }, tt = function(t) {\n me(), mt++;\n try {\n return L.createHTML(t);\n } finally {\n mt--;\n }\n }, pn = function(t) {\n me(), mt++;\n try {\n return L.createScriptURL(t);\n } finally {\n mt--;\n }\n }, mn = function() {\n return pe || (kt = Ro(Ot, l), pe = !0), kt;\n }, wt = a, zt = wt.implementation, de = wt.createNodeIterator, dn = wt.createDocumentFragment, hn = wt.getElementsByTagName, _n = c.importNode;\n let g = on();\n n.isSupported = typeof an == \"function\" && typeof pt == \"function\" && zt && zt.createHTMLDocument !== void 0;\n const Tn = po, gn = mo, bn = ho, En = _o, yn = To, An = go, he = bo, Sn = yo;\n let _e = en, d = null;\n const Te = f({}, [...Ze, ...oe, ...ie, ...re, ...Je]);\n let h = null;\n const ge = f({}, [...Qe, ...ae, ...tn, ...vt]);\n let _ = Object.seal(st(null, {\n tagNameCheck: {\n writable: !0,\n configurable: !1,\n enumerable: !0,\n value: null\n },\n attributeNameCheck: {\n writable: !0,\n configurable: !1,\n enumerable: !0,\n value: null\n },\n allowCustomizedBuiltInElements: {\n writable: !0,\n configurable: !1,\n enumerable: !0,\n value: !1\n }\n })), dt = null, be = null;\n const G = Object.seal(st(null, {\n tagCheck: {\n writable: !0,\n configurable: !1,\n enumerable: !0,\n value: null\n },\n attributeCheck: {\n writable: !0,\n configurable: !1,\n enumerable: !0,\n value: null\n }\n }));\n let Ee = !0, Ft = !0, ye = !1, Ae = !0, B = !1, ht = !0, K = !1, Ut = !1, Ht = null, Gt = null, Bt = !1, et = !1, Rt = !1, It = !1, Se = !0, Oe = !1;\n const we = \"user-content-\";\n let Wt = !0, Yt = !1, nt = {}, P = null;\n const jt = f({}, [\n \"annotation-xml\",\n \"audio\",\n \"colgroup\",\n \"desc\",\n \"foreignobject\",\n \"head\",\n \"iframe\",\n \"math\",\n \"mi\",\n \"mn\",\n \"mo\",\n \"ms\",\n \"mtext\",\n \"noembed\",\n \"noframes\",\n \"noscript\",\n \"plaintext\",\n \"script\",\n // <selectedcontent> mirrors the selected <option>'s subtree, cloned by\n // the UA (customizable <select>) — including any on* handlers — and the\n // engine re-mirrors synchronously whenever a removal changes which\n // option/selectedcontent is current, even inside DOMPurify's inert\n // DOMParser document. Hoisting its children on removal re-inserts a fresh\n // mirror target ahead of the walk, which the engine refills, looping\n // forever (DoS) and amplifying output. Dropping its content on removal\n // (rather than hoisting) breaks that cascade; the content is a duplicate\n // of the option, which is sanitized on its own. See campaign-3 F1/F6.\n \"selectedcontent\",\n \"style\",\n \"svg\",\n \"template\",\n \"thead\",\n \"title\",\n \"video\",\n \"xmp\"\n ]);\n let Re = null;\n const Ie = f({}, [\"audio\", \"video\", \"img\", \"source\", \"image\", \"track\"]);\n let $t = null;\n const Ne = f({}, [\"alt\", \"class\", \"for\", \"id\", \"label\", \"name\", \"pattern\", \"placeholder\", \"role\", \"summary\", \"title\", \"value\", \"style\", \"xmlns\"]), Nt = \"http://www.w3.org/1998/Math/MathML\", Lt = \"http://www.w3.org/2000/svg\", x = \"http://www.w3.org/1999/xhtml\";\n let ot = x, Xt = !1, Vt = null;\n const On = f({}, [Nt, Lt, x], ne), Le = w([\"mi\", \"mo\", \"mn\", \"ms\", \"mtext\"]);\n let qt = f({}, Le);\n const De = w([\"annotation-xml\"]);\n let Kt = f({}, De);\n const wn = f({}, [\"title\", \"style\", \"font\", \"a\", \"script\"]);\n let _t = null;\n const Rn = [\"application/xhtml+xml\", \"text/html\"], In = \"text/html\";\n let T = null, it = null;\n const Nn = a.createElement(\"form\"), Ce = function(t) {\n return t instanceof RegExp || t instanceof Function;\n }, Zt = function() {\n let t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};\n if (it && it === t)\n return;\n (!t || typeof t != \"object\") && (t = {}), t = N(t), _t = // eslint-disable-next-line unicorn/prefer-includes\n Rn.indexOf(t.PARSER_MEDIA_TYPE) === -1 ? In : t.PARSER_MEDIA_TYPE, T = _t === \"application/xhtml+xml\" ? ne : yt, d = Y(t, \"ALLOWED_TAGS\", Te, {\n transform: T\n }), h = Y(t, \"ALLOWED_ATTR\", ge, {\n transform: T\n }), Vt = Y(t, \"ALLOWED_NAMESPACES\", On, {\n transform: ne\n }), $t = Y(t, \"ADD_URI_SAFE_ATTR\", Ne, {\n transform: T,\n base: Ne\n }), Re = Y(t, \"ADD_DATA_URI_TAGS\", Ie, {\n transform: T,\n base: Ie\n }), P = Y(t, \"FORBID_CONTENTS\", jt, {\n transform: T\n }), dt = Y(t, \"FORBID_TAGS\", N({}), {\n transform: T\n }), be = Y(t, \"FORBID_ATTR\", N({}), {\n transform: T\n }), nt = S(t, \"USE_PROFILES\") ? t.USE_PROFILES && typeof t.USE_PROFILES == \"object\" ? N(t.USE_PROFILES) : t.USE_PROFILES : !1, Ee = t.ALLOW_ARIA_ATTR !== !1, Ft = t.ALLOW_DATA_ATTR !== !1, ye = t.ALLOW_UNKNOWN_PROTOCOLS || !1, Ae = t.ALLOW_SELF_CLOSE_IN_ATTR !== !1, B = t.SAFE_FOR_TEMPLATES || !1, ht = t.SAFE_FOR_XML !== !1, K = t.WHOLE_DOCUMENT || !1, et = t.RETURN_DOM || !1, Rt = t.RETURN_DOM_FRAGMENT || !1, It = t.RETURN_TRUSTED_TYPE || !1, Bt = t.FORCE_BODY || !1, Se = t.SANITIZE_DOM !== !1, Oe = t.SANITIZE_NAMED_PROPS || !1, Wt = t.KEEP_CONTENT !== !1, Yt = t.IN_PLACE || !1, _e = lo(t.ALLOWED_URI_REGEXP) ? t.ALLOWED_URI_REGEXP : en, ot = typeof t.NAMESPACE == \"string\" ? t.NAMESPACE : x, qt = S(t, \"MATHML_TEXT_INTEGRATION_POINTS\") && t.MATHML_TEXT_INTEGRATION_POINTS && typeof t.MATHML_TEXT_INTEGRATION_POINTS == \"object\" ? N(t.MATHML_TEXT_INTEGRATION_POINTS) : f({}, Le), Kt = S(t, \"HTML_INTEGRATION_POINTS\") && t.HTML_INTEGRATION_POINTS && typeof t.HTML_INTEGRATION_POINTS == \"object\" ? N(t.HTML_INTEGRATION_POINTS) : f({}, De);\n const e = S(t, \"CUSTOM_ELEMENT_HANDLING\") && t.CUSTOM_ELEMENT_HANDLING && typeof t.CUSTOM_ELEMENT_HANDLING == \"object\" ? N(t.CUSTOM_ELEMENT_HANDLING) : st(null);\n if (_ = st(null), S(e, \"tagNameCheck\") && Ce(e.tagNameCheck) && (_.tagNameCheck = e.tagNameCheck), S(e, \"attributeNameCheck\") && Ce(e.attributeNameCheck) && (_.attributeNameCheck = e.attributeNameCheck), S(e, \"allowCustomizedBuiltInElements\") && typeof e.allowCustomizedBuiltInElements == \"boolean\" && (_.allowCustomizedBuiltInElements = e.allowCustomizedBuiltInElements), R(_), B && (Ft = !1), Rt && (et = !0), nt && (d = f({}, Je), h = st(null), nt.html === !0 && (f(d, Ze), f(h, Qe)), nt.svg === !0 && (f(d, oe), f(h, ae), f(h, vt)), nt.svgFilters === !0 && (f(d, ie), f(h, ae), f(h, vt)), nt.mathMl === !0 && (f(d, re), f(h, tn), f(h, vt))), G.tagCheck = null, G.attributeCheck = null, S(t, \"ADD_TAGS\") && (typeof t.ADD_TAGS == \"function\" ? G.tagCheck = t.ADD_TAGS : j(t.ADD_TAGS) && (d === Te && (d = N(d)), f(d, t.ADD_TAGS, T))), S(t, \"ADD_ATTR\") && (typeof t.ADD_ATTR == \"function\" ? G.attributeCheck = t.ADD_ATTR : j(t.ADD_ATTR) && (h === ge && (h = N(h)), f(h, t.ADD_ATTR, T))), S(t, \"ADD_URI_SAFE_ATTR\") && j(t.ADD_URI_SAFE_ATTR) && f($t, t.ADD_URI_SAFE_ATTR, T), S(t, \"FORBID_CONTENTS\") && j(t.FORBID_CONTENTS) && (P === jt && (P = N(P)), f(P, t.FORBID_CONTENTS, T)), S(t, \"ADD_FORBID_CONTENTS\") && j(t.ADD_FORBID_CONTENTS) && (P === jt && (P = N(P)), f(P, t.ADD_FORBID_CONTENTS, T)), Wt && (d[\"#text\"] = !0), K && f(d, [\"html\", \"head\", \"body\"]), d.table && (f(d, [\"tbody\"]), delete dt.tbody), t.TRUSTED_TYPES_POLICY) {\n if (typeof t.TRUSTED_TYPES_POLICY.createHTML != \"function\")\n throw J('TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.');\n if (typeof t.TRUSTED_TYPES_POLICY.createScriptURL != \"function\")\n throw J('TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.');\n const i = L;\n L = t.TRUSTED_TYPES_POLICY;\n try {\n q = tt(\"\");\n } catch (s) {\n throw L = i, s;\n }\n } else t.TRUSTED_TYPES_POLICY === null ? (L = void 0, q = \"\") : (L === void 0 && (L = mn()), L && typeof q == \"string\" && (q = tt(\"\")));\n w && w(t), it = t;\n }, Me = f({}, [...oe, ...ie, ...uo]), ve = f({}, [...re, ...fo]), Ln = function(t, e, i) {\n return e.namespaceURI === x ? t === \"svg\" : e.namespaceURI === Nt ? t === \"svg\" && (i === \"annotation-xml\" || qt[i]) : !!Me[t];\n }, Dn = function(t, e, i) {\n return e.namespaceURI === x ? t === \"math\" : e.namespaceURI === Lt ? t === \"math\" && Kt[i] : !!ve[t];\n }, Cn = function(t, e, i) {\n return e.namespaceURI === Lt && !Kt[i] || e.namespaceURI === Nt && !qt[i] ? !1 : !ve[t] && (wn[t] || !Me[t]);\n }, Mn = function(t) {\n let e = pt(t);\n (!e || !e.tagName) && (e = {\n namespaceURI: ot,\n tagName: \"template\"\n });\n const i = yt(t.tagName), s = yt(e.tagName);\n return Vt[t.namespaceURI] ? t.namespaceURI === Lt ? Ln(i, e, s) : t.namespaceURI === Nt ? Dn(i, e, s) : t.namespaceURI === x ? Cn(i, e, s) : !!(_t === \"application/xhtml+xml\" && Vt[t.namespaceURI]) : !1;\n }, W = function(t) {\n at(n.removed, {\n element: t\n });\n try {\n pt(t).removeChild(t);\n } catch {\n if (ue(t), !pt(t))\n throw J(\"a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place\");\n }\n }, Pe = function(t) {\n const e = ft(t);\n if (e) {\n const s = [];\n gt(e, (u) => {\n at(s, u);\n }), gt(s, (u) => {\n try {\n ue(u);\n } catch {\n }\n });\n }\n const i = xt(t);\n if (i)\n for (let s = i.length - 1; s >= 0; --s) {\n const u = i[s], p = u && u.name;\n if (typeof p == \"string\")\n try {\n t.removeAttribute(p);\n } catch {\n }\n }\n }, Z = function(t, e) {\n try {\n at(n.removed, {\n attribute: e.getAttributeNode(t),\n from: e\n });\n } catch {\n at(n.removed, {\n attribute: null,\n from: e\n });\n }\n if (e.removeAttribute(t), t === \"is\")\n if (et || Rt)\n try {\n W(e);\n } catch {\n }\n else\n try {\n e.setAttribute(t, \"\");\n } catch {\n }\n }, vn = function(t) {\n const e = xt(t);\n if (e)\n for (let i = e.length - 1; i >= 0; --i) {\n const s = e[i], u = s && s.name;\n if (!(typeof u != \"string\" || h[T(u)]))\n try {\n t.removeAttribute(u);\n } catch {\n }\n }\n }, Pn = function(t) {\n const e = [t];\n for (; e.length > 0; ) {\n const i = e.pop();\n (C ? C(i) : i.nodeType) === k.element && vn(i);\n const u = ft(i);\n if (u)\n for (let p = u.length - 1; p >= 0; --p)\n e.push(u[p]);\n }\n }, xe = function(t) {\n let e = null, i = null;\n if (Bt)\n t = \"<remove></remove>\" + t;\n else {\n const p = Xe(t, /^[\\r\\n\\t ]+/);\n i = p && p[0];\n }\n _t === \"application/xhtml+xml\" && ot === x && (t = '<html xmlns=\"http://www.w3.org/1999/xhtml\"><head></head><body>' + t + \"</body></html>\");\n const s = L ? tt(t) : t;\n if (ot === x)\n try {\n e = new Pt().parseFromString(s, _t);\n } catch {\n }\n if (!e || !e.documentElement) {\n e = zt.createDocument(ot, \"template\", null);\n try {\n e.documentElement.innerHTML = Xt ? q : s;\n } catch {\n }\n }\n const u = e.body || e.documentElement;\n return t && i && u.insertBefore(a.createTextNode(i), u.childNodes[0] || null), ot === x ? hn.call(e, K ? \"html\" : \"body\")[0] : K ? e.documentElement : u;\n }, ke = function(t) {\n return de.call(\n t.ownerDocument || t,\n t,\n // eslint-disable-next-line no-bitwise\n D.SHOW_ELEMENT | D.SHOW_COMMENT | D.SHOW_TEXT | D.SHOW_PROCESSING_INSTRUCTION | D.SHOW_CDATA_SECTION,\n null\n );\n }, Dt = function(t) {\n return t = bt(t, Tn, \" \"), t = bt(t, gn, \" \"), t = bt(t, bn, \" \"), t;\n }, Jt = function(t) {\n var e;\n t.normalize();\n const i = de.call(\n t.ownerDocument || t,\n t,\n // eslint-disable-next-line no-bitwise\n D.SHOW_TEXT | D.SHOW_COMMENT | D.SHOW_CDATA_SECTION | D.SHOW_PROCESSING_INSTRUCTION,\n null\n );\n let s = i.nextNode();\n for (; s; )\n s.data = Dt(s.data), s = i.nextNode();\n const u = (e = t.querySelectorAll) === null || e === void 0 ? void 0 : e.call(t, \"template\");\n u && gt(u, (p) => {\n rt(p.content) && Jt(p.content);\n });\n }, Ct = function(t) {\n const e = H ? H(t) : null;\n return typeof e != \"string\" || T(e) !== \"form\" ? !1 : typeof t.nodeName != \"string\" || typeof t.textContent != \"string\" || typeof t.removeChild != \"function\" || // Realm-safe NamedNodeMap detection: equality against the cached\n // prototype getter. Clobbered .attributes (e.g. <input name=\"attributes\">)\n // makes the direct read diverge from the cached read; a clean form\n // (same-realm OR foreign-realm) has both reads pointing at the same\n // canonical NamedNodeMap.\n t.attributes !== xt(t) || typeof t.removeAttribute != \"function\" || typeof t.setAttribute != \"function\" || typeof t.namespaceURI != \"string\" || typeof t.insertBefore != \"function\" || typeof t.hasChildNodes != \"function\" || // NodeType clobbering probe. Cached Node.prototype.nodeType getter\n // returns the integer 1 for any Element regardless of realm; direct\n // read on a clobbered form (e.g. <input name=\"nodeType\">) returns\n // the named child element. Cheap addition — nodeType is read from\n // an internal slot, no serialization cost — and removes a residual\n // clobbering surface used by several mXSS / PI / comment branches\n // in _sanitizeElements that compare currentNode.nodeType directly.\n t.nodeType !== C(t) || // HTMLFormElement has [LegacyOverrideBuiltIns]: a descendant named\n // \"childNodes\" shadows the prototype getter. Direct reads of\n // form.childNodes from a clobbered form return the named child\n // instead of the real NodeList, so any walk that reads it directly\n // skips the form's real children. Compare the direct read to the\n // cached Node.prototype getter — when the form's named-property\n // getter intercepts the read, the two values differ and we flag\n // the form. This catches every clobbering child type (input,\n // select, etc.) regardless of whether the named child happens to\n // carry a numeric .length, which a typeof-based probe would miss\n // (e.g. HTMLSelectElement.length is a defined unsigned-long).\n t.childNodes !== ft(t);\n }, rt = function(t) {\n if (!C || typeof t != \"object\" || t === null)\n return !1;\n try {\n return C(t) === k.documentFragment;\n } catch {\n return !1;\n }\n }, Tt = function(t) {\n if (!C || typeof t != \"object\" || t === null)\n return !1;\n try {\n return typeof C(t) == \"number\";\n } catch {\n return !1;\n }\n };\n function F(r, t, e) {\n r.length !== 0 && gt(r, (i) => {\n i.call(n, t, e, it);\n });\n }\n const xn = function(t, e) {\n return !!(ht && t.hasChildNodes() && !Tt(t.firstElementChild) && O(nn, t.textContent) && O(nn, t.innerHTML) || ht && t.namespaceURI === x && e === \"style\" && Tt(t.firstElementChild) || t.nodeType === k.processingInstruction || ht && t.nodeType === k.comment && O(Ao, t.data));\n }, kn = function(t, e) {\n if (!dt[e] && Ue(e) && (_.tagNameCheck instanceof RegExp && O(_.tagNameCheck, e) || _.tagNameCheck instanceof Function && _.tagNameCheck(e)))\n return !1;\n if (Wt && !P[e]) {\n const i = pt(t), s = ft(t);\n if (s && i) {\n const u = s.length;\n for (let p = u - 1; p >= 0; --p) {\n const A = Yt ? s[p] : un(s[p], !0);\n i.insertBefore(A, fn(t));\n }\n }\n }\n return W(t), !0;\n }, ze = function(t) {\n if (F(g.beforeSanitizeElements, t, null), Ct(t))\n return W(t), !0;\n const e = T(H ? H(t) : t.nodeName);\n if (F(g.uponSanitizeElement, t, {\n tagName: e,\n allowedTags: d\n }), xn(t, e))\n return W(t), !0;\n if (dt[e] || !(G.tagCheck instanceof Function && G.tagCheck(e)) && !d[e])\n return kn(t, e);\n if ((C ? C(t) : t.nodeType) === k.element && !Mn(t) || (e === \"noscript\" || e === \"noembed\" || e === \"noframes\") && O(So, t.innerHTML))\n return W(t), !0;\n if (B && t.nodeType === k.text) {\n const s = Dt(t.textContent);\n t.textContent !== s && (at(n.removed, {\n element: t.cloneNode()\n }), t.textContent = s);\n }\n return F(g.afterSanitizeElements, t, null), !1;\n }, Fe = function(t, e, i) {\n if (be[e] || Se && (e === \"id\" || e === \"name\") && (i in a || i in Nn))\n return !1;\n const s = h[e] || G.attributeCheck instanceof Function && G.attributeCheck(e, t);\n if (!(Ft && O(En, e))) {\n if (!(Ee && O(yn, e))) {\n if (s) {\n if (!$t[e]) {\n if (!O(_e, bt(i, he, \"\"))) {\n if (!((e === \"src\" || e === \"xlink:href\" || e === \"href\") && t !== \"script\" && Ve(i, \"data:\") === 0 && Re[t])) {\n if (!(ye && !O(An, bt(i, he, \"\")))) {\n if (i)\n return !1;\n }\n }\n }\n }\n } else if (\n // First condition does a very basic check if a) it's basically a valid custom element tagname AND\n // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck\n !(Ue(t) && (_.tagNameCheck instanceof RegExp && O(_.tagNameCheck, t) || _.tagNameCheck instanceof Function && _.tagNameCheck(t)) && (_.attributeNameCheck instanceof RegExp && O(_.attributeNameCheck, e) || _.attributeNameCheck instanceof Function && _.attributeNameCheck(e, t)) || // Alternative, second condition checks if it's an `is`-attribute, AND\n // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n e === \"is\" && _.allowCustomizedBuiltInElements && (_.tagNameCheck instanceof RegExp && O(_.tagNameCheck, i) || _.tagNameCheck instanceof Function && _.tagNameCheck(i)))\n ) return !1;\n }\n }\n return !0;\n }, zn = f({}, [\"annotation-xml\", \"color-profile\", \"font-face\", \"font-face-format\", \"font-face-name\", \"font-face-src\", \"font-face-uri\", \"missing-glyph\"]), Ue = function(t) {\n return !zn[yt(t)] && O(Sn, t);\n }, Fn = function(t, e, i, s) {\n if (L && typeof Ot == \"object\" && typeof Ot.getAttributeType == \"function\" && !i)\n switch (Ot.getAttributeType(t, e)) {\n case \"TrustedHTML\":\n return tt(s);\n case \"TrustedScriptURL\":\n return pn(s);\n }\n return s;\n }, Un = function(t, e, i, s) {\n try {\n i ? t.setAttributeNS(i, e, s) : t.setAttribute(e, s), Ct(t) ? W(t) : $e(n.removed);\n } catch {\n Z(e, t);\n }\n }, He = function(t) {\n F(g.beforeSanitizeAttributes, t, null);\n const e = t.attributes;\n if (!e || Ct(t))\n return;\n const i = {\n attrName: \"\",\n attrValue: \"\",\n keepAttr: !0,\n allowedAttributes: h,\n forceKeepAttr: void 0\n };\n let s = e.length;\n const u = T(t.nodeName);\n for (; s--; ) {\n const p = e[s], A = p.name, b = p.namespaceURI, M = p.value, v = T(A), te = M;\n let I = A === \"value\" ? te : oo(te);\n if (i.attrName = v, i.attrValue = I, i.keepAttr = !0, i.forceKeepAttr = void 0, F(g.uponSanitizeAttribute, t, i), I = i.attrValue, Oe && (v === \"id\" || v === \"name\") && Ve(I, we) !== 0 && (Z(A, t), I = we + I), ht && O(/((--!?|])>)|<\\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i, I)) {\n Z(A, t);\n continue;\n }\n if (v === \"attributename\" && Xe(I, \"href\")) {\n Z(A, t);\n continue;\n }\n if (!i.forceKeepAttr) {\n if (!i.keepAttr) {\n Z(A, t);\n continue;\n }\n if (!Ae && O(Oo, I)) {\n Z(A, t);\n continue;\n }\n if (B && (I = Dt(I)), !Fe(u, v, I)) {\n Z(A, t);\n continue;\n }\n I = Fn(u, v, b, I), I !== te && Un(t, A, b, I);\n }\n }\n F(g.afterSanitizeAttributes, t, null);\n }, Mt = function(t) {\n let e = null;\n const i = ke(t);\n for (F(g.beforeSanitizeShadowDOM, t, null); e = i.nextNode(); )\n if (F(g.uponSanitizeShadowNode, e, null), ze(e), He(e), rt(e.content) && Mt(e.content), (C ? C(e) : e.nodeType) === k.element) {\n const u = fe(e);\n rt(u) && (Qt(u), Mt(u));\n }\n F(g.afterSanitizeShadowDOM, t, null);\n }, Qt = function(t) {\n const e = [{\n node: t,\n shadow: null\n }];\n for (; e.length > 0; ) {\n const i = e.pop();\n if (i.shadow) {\n Mt(i.shadow);\n continue;\n }\n const s = i.node, p = (C ? C(s) : s.nodeType) === k.element, A = ft(s);\n if (A)\n for (let b = A.length - 1; b >= 0; --b)\n e.push({\n node: A[b],\n shadow: null\n });\n if (p) {\n const b = H ? H(s) : null;\n if (typeof b == \"string\" && T(b) === \"template\") {\n const M = s.content;\n rt(M) && e.push({\n node: M,\n shadow: null\n });\n }\n }\n if (p) {\n const b = fe(s);\n rt(b) && e.push({\n node: null,\n shadow: b\n }, {\n node: b,\n shadow: null\n });\n }\n }\n };\n return n.sanitize = function(r) {\n let t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, e = null, i = null, s = null, u = null;\n if (Xt = !r, Xt && (r = \"<!-->\"), typeof r != \"string\" && !Tt(r) && (r = co(r), typeof r != \"string\"))\n throw J(\"dirty is not a string, aborting\");\n if (!n.isSupported)\n return r;\n Ut ? (d = Ht, h = Gt) : Zt(t), (g.uponSanitizeElement.length > 0 || g.uponSanitizeAttribute.length > 0) && (d = N(d)), g.uponSanitizeAttribute.length > 0 && (h = N(h)), n.removed = [];\n const p = Yt && typeof r != \"string\" && Tt(r);\n if (p) {\n const M = H ? H(r) : r.nodeName;\n if (typeof M == \"string\") {\n const v = T(M);\n if (!d[v] || dt[v])\n throw J(\"root node is forbidden and cannot be sanitized in-place\");\n }\n if (Ct(r))\n throw J(\"root node is clobbered and cannot be sanitized in-place\");\n try {\n Qt(r);\n } catch (v) {\n throw Pe(r), v;\n }\n } else if (Tt(r))\n e = xe(\"<!---->\"), i = e.ownerDocument.importNode(r, !0), i.nodeType === k.element && i.nodeName === \"BODY\" || i.nodeName === \"HTML\" ? e = i : e.appendChild(i), Qt(i);\n else {\n if (!et && !B && !K && // eslint-disable-next-line unicorn/prefer-includes\n r.indexOf(\"<\") === -1)\n return L && It ? tt(r) : r;\n if (e = xe(r), !e)\n return et ? null : It ? q : \"\";\n }\n e && Bt && W(e.firstChild);\n const A = ke(p ? r : e);\n try {\n for (; s = A.nextNode(); )\n ze(s), He(s), rt(s.content) && Mt(s.content);\n } catch (M) {\n throw p && Pe(r), M;\n }\n if (p)\n return gt(n.removed, (M) => {\n M.element && Pn(M.element);\n }), B && Jt(r), r;\n if (et) {\n if (B && Jt(e), Rt)\n for (u = dn.call(e.ownerDocument); e.firstChild; )\n u.appendChild(e.firstChild);\n else\n u = e;\n return (h.shadowroot || h.shadowrootmode) && (u = _n.call(c, u, !0)), u;\n }\n let b = K ? e.outerHTML : e.innerHTML;\n return K && d[\"!doctype\"] && e.ownerDocument && e.ownerDocument.doctype && e.ownerDocument.doctype.name && O(Eo, e.ownerDocument.doctype.name) && (b = \"<!DOCTYPE \" + e.ownerDocument.doctype.name + `>\n` + b), B && (b = Dt(b)), L && It ? tt(b) : b;\n }, n.setConfig = function() {\n let r = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};\n Zt(r), Ut = !0, Ht = d, Gt = h;\n }, n.clearConfig = function() {\n it = null, Ut = !1, Ht = null, Gt = null, L = kt, q = \"\";\n }, n.isValidAttribute = function(r, t, e) {\n it || Zt({});\n const i = T(r), s = T(t);\n return Fe(i, s, e);\n }, n.addHook = function(r, t) {\n typeof t == \"function\" && S(g, r) && at(g[r], t);\n }, n.removeHook = function(r, t) {\n if (S(g, r)) {\n if (t !== void 0) {\n const e = eo(g[r], t);\n return e === -1 ? void 0 : no(g[r], e, 1)[0];\n }\n return $e(g[r]);\n }\n }, n.removeHooks = function(r) {\n S(g, r) && (g[r] = []);\n }, n.removeAllHooks = function() {\n g = on();\n }, n;\n}\nvar Io = cn();\nconst At = /* @__PURE__ */ new Map(), le = /* @__PURE__ */ new Map();\nfunction No(o) {\n o.querySelectorAll(\"g[mask]\").forEach((n) => {\n n.removeAttribute(\"mask\");\n }), o.querySelectorAll(\"mask\").forEach((n) => {\n n.remove();\n });\n}\nfunction ln(o, n) {\n const a = Io.sanitize(o, {\n USE_PROFILES: { svg: !0, svgFilters: !0 },\n FORBID_TAGS: [\"script\", \"use\"],\n // <use> can SSRF to external hrefs\n FORBID_ATTR: [\"onload\", \"onerror\", \"onbegin\", \"href\", \"xlink:href\"]\n }), m = new DOMParser().parseFromString(a, \"image/svg+xml\").documentElement;\n if (!(m instanceof SVGElement))\n throw new Error(`Invalid SVG from ${n}`);\n return No(m), m;\n}\nasync function Lo(o) {\n const n = await fetch(o);\n if (!n.ok)\n throw new Error(`Failed to load icon: ${n.status}`);\n return ln(await n.text(), o);\n}\nasync function rn(o) {\n return At.has(o) || At.set(o, Lo(o)), (await At.get(o)).cloneNode(!0);\n}\nfunction Do(o) {\n let n = le.get(o);\n return n || (n = ln(o, \"inline SVG source\"), le.set(o, n)), n.cloneNode(!0);\n}\nfunction Fo(o) {\n o ? At.delete(o) : (At.clear(), le.clear());\n}\nconst Co = \":host{display:inline-block;width:fit-content;height:fit-content;--_cob-icon-size: var( --cob-icon-size, .7em );box-sizing:content-box!important;vertical-align:middle}@supports (font-size: 1cap){:host{--_cob-icon-size: var(--cob-icon-size, 1cap)}}.cob-icon--svg{width:var(--_cob-icon-size, 1em);height:var(--_cob-icon-size, 1em);display:block;white-space:nowrap}.cob-icon--xs{width:calc(var(--_cob-icon-size) * .75);height:calc(var(--_cob-icon-size) * .75)}.cob-icon--sm{width:calc(var(--_cob-icon-size) * .875);height:calc(var(--_cob-icon-size) * .875)}.cob-icon--md{width:var(--_cob-icon-size);height:var(--_cob-icon-size)}.cob-icon--lg{width:calc(var(--_cob-icon-size) * 1.125);height:calc(var(--_cob-icon-size) * 1.125)}.cob-icon--xl{width:calc(var(--_cob-icon-size) * 1.25);height:calc(var(--_cob-icon-size) * 1.25)}.cob-icon--2xl{width:calc(var(--_cob-icon-size) * 1.5);height:calc(var(--_cob-icon-size) * 1.5)}.cob-icon--3xl{width:calc(var(--_cob-icon-size) * 1.875);height:calc(var(--_cob-icon-size) * 1.875)}.cob-icon--4xl{width:calc(var(--_cob-icon-size) * 2.25);height:calc(var(--_cob-icon-size) * 2.25)}.cob-icon--5xl{width:calc(var(--_cob-icon-size) * 3);height:calc(var(--_cob-icon-size) * 3)}.cob-icon--12{width:.75rem;height:.75rem}.cob-icon--14{width:.875rem;height:.875rem}.cob-icon--16{width:1rem;height:1rem}.cob-icon--18{width:1.125rem;height:1.125rem}.cob-icon--20{width:1.25rem;height:1.25rem}.cob-icon--24{width:1.5rem;height:1.5rem}.cob-icon--32{width:2rem;height:2rem}.cob-icon--40{width:2.5rem;height:2.5rem}.cob-icon--50{width:3.125rem;height:3.125rem}.cob-icon--flip-horizontal{transform:scaleX(-1)}.cob-icon--flip-vertical{transform:scaleY(-1)}.cob-icon--flip-both{transform:scale(-1)}\";\nvar Mo = Object.defineProperty, X = (o, n, a, c) => {\n for (var l = void 0, m = o.length - 1, y; m >= 0; m--)\n (y = o[m]) && (l = y(n, a, l) || l);\n return l && Mo(n, a, l), l;\n}, $;\nconst U = ($ = class extends Hn {\n constructor() {\n super(...arguments), this.name = \"\", this.library = \"default\", this.ariaLabel = \"\", this.rotate = \"0\", this.flip = \"\", this.color = \"\", this.size = \"md\", this._svg = null, this._loadSeq = 0, this._loadPromise = null;\n }\n /** Resolves when the current icon load (if any) is complete. */\n get updateComplete() {\n return (async () => {\n const n = await super.updateComplete;\n return await this._loadPromise, n;\n })();\n }\n connectedCallback() {\n super.connectedCallback(), Be(this.library, this);\n }\n disconnectedCallback() {\n super.disconnectedCallback(), We(this.library, this);\n }\n /** Called by the icon library registry when the current library changes. */\n redraw() {\n this._loadIcon();\n }\n /**\n * Lit calls firstUpdated after the first render, once all reactive\n * properties (including those set from the template) are resolved.\n * This guarantees the initial _loadIcon runs with the correct name\n * and library values, avoiding the race where updated() might not\n * fire for properties that equal their defaults.\n */\n firstUpdated() {\n this._loadIcon();\n }\n updated(n) {\n if (n.has(\"name\") && !$._validName.test(this.name)) {\n console.warn(`cob-icon: invalid name \"${this.name}\" — ignored`), this._svg = null;\n return;\n }\n if (n.has(\"name\") || n.has(\"library\")) {\n if (n.has(\"library\")) {\n const a = n.get(\"library\");\n a && We(a, this), Be(this.library, this);\n }\n this._loadIcon();\n }\n this._svg && (n.has(\"ariaLabel\") || n.has(\"rotate\") || n.has(\"flip\") || n.has(\"color\") || n.has(\"size\")) && this._applyAttributes(this._svg);\n }\n _loadIcon() {\n const n = ++this._loadSeq;\n this._loadPromise = (async () => {\n const a = $n(this.library);\n if (!a || !this.name) {\n this._svg = null;\n return;\n }\n try {\n const c = await a.resolver(this.name);\n if (n !== this._loadSeq) return;\n if (!c) {\n this._svg = null;\n return;\n }\n const l = typeof c == \"string\" ? await rn(c) : c.type === \"url\" ? await rn(c.href) : Do(c.content);\n if (n !== this._loadSeq) return;\n a.mutator?.(l), this._applyAttributes(l), this._svg = l;\n } catch {\n n === this._loadSeq && (this._svg = null);\n }\n })();\n }\n _applyAttributes(n) {\n n.setAttribute(\"role\", \"img\"), this.ariaLabel ? (n.setAttribute(\"aria-label\", this.ariaLabel), n.removeAttribute(\"aria-hidden\")) : (n.setAttribute(\"aria-hidden\", \"true\"), n.removeAttribute(\"aria-label\")), this.rotate && this.rotate !== \"0\" ? n.style.rotate = `${this.rotate}deg` : n.style.removeProperty(\"rotate\"), n.style.color = this.color || \"currentcolor\", n.classList.add(`cob-icon--${this.size}`), n.classList.add(\"cob-icon--svg\"), this.flip && n.classList.add(`cob-icon--flip-${this.flip}`);\n }\n render() {\n return this._svg ? Bn`${this._svg}` : null;\n }\n}, $.styles = Gn(Co), $._validName = /^[a-zA-Z0-9_-]+$/, $);\nX([\n Q({ type: String, reflect: !0 })\n], U.prototype, \"name\");\nX([\n Q({ type: String, reflect: !0 })\n], U.prototype, \"library\");\nX([\n Q({ type: String })\n], U.prototype, \"ariaLabel\");\nX([\n Q({ type: String })\n], U.prototype, \"rotate\");\nX([\n Q({ type: String })\n], U.prototype, \"flip\");\nX([\n Q({ type: String })\n], U.prototype, \"color\");\nX([\n Q({ type: String })\n], U.prototype, \"size\");\nX([\n Wn()\n], U.prototype, \"_svg\");\nlet vo = U;\ncustomElements.get(\"cob-icon\") || customElements.define(\"cob-icon\", vo);\nexport {\n vo as CobIcon,\n Fo as clearIconCache,\n $n as getIconLibrary,\n ko as registerIconLibrary,\n zo as unregisterIconLibrary\n};\n//# sourceMappingURL=cob-icon.js.map\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport \"@cobwds/cob-icon\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./cob-button.scss?inline\";\n\nlet buttonIdCounter = 0;\n\n/**\n * A button for actions like saving, submitting, or navigating. Form-associated with full keyboard support.\n *\n * Use `filled` for primary actions (one per section), `outline` for secondary, `ghost` for tertiary,\n * `text` for inline. Set `href` to render as a navigation link.\n *\n * @summary Button for actions and CTAs with variants, sizes, and icon support.\n * @element cob-button\n *\n * @slot - Button label text. Use as fallback when `label` prop is not provided.\n * @slot prefix-icon - Icon before label. Not shown for `text` variant.\n * @slot suffix-icon - Icon after label. Not shown for `text` variant.\n * @slot circle-icon - Icon for circle mode. Overrides `icon` prop.\n *\n * @cssprop [--cob-button-color] - Text color of the button label.\n * @cssprop [--cob-button-color--hover] - Text color when hovered.\n * @cssprop [--cob-button-color--active] - Text color when active/pressed.\n * @cssprop [--cob-button-background-color] - Background color of the button.\n * @cssprop [--cob-button-background-color--hover] - Background color when hovered.\n * @cssprop [--cob-button-background-color--active] - Background color when active/pressed.\n * @cssprop [--cob-button-border-color] - Border color of the button.\n * @cssprop [--cob-button-border-color--hover] - Border color when hovered.\n * @cssprop [--cob-button-border-color--active] - Border color when active/pressed.\n *\n * @fires cob-click - Fired when the button is clicked (mouse or keyboard). Not fired when disabled.\n * @fires cob-focus - Fired when the button receives focus.\n * @fires cob-blur - Fired when the button loses focus.\n *\n * @example Basic\n * ```html\n * <cob-button label=\"Button\" variant=\"filled\"></cob-button>\n * ```\n *\n * @example Variant Outline\n * ```html\n * <cob-button label=\"Button\" variant=\"outline\"></cob-button>\n * ```\n *\n * @example Variant Ghost\n * ```html\n * <cob-button label=\"Button\" variant=\"ghost\"></cob-button>\n * ```\n *\n * @example Variant Text\n * ```html\n * <cob-button label=\"Button\" variant=\"text\"></cob-button>\n * ```\n *\n * @example Prefix Icon\n * ```html\n * <cob-button label=\"Previous\" prefixIcon=\"chevron_left\"></cob-button>\n * ```\n *\n * @example Suffix Icon\n * ```html\n * <cob-button label=\"Next\" suffixIcon=\"chevron_right\"></cob-button>\n * ```\n *\n * @example Slotted Icons\n * ```html\n * <cob-button label=\"Slotted icons\">\n * <cob-icon color=\"#db117d\" slot=\"prefix-icon\" name=\"chevron_left\"></cob-icon>\n * <cob-icon color=\"#db117d\" slot=\"suffix-icon\" name=\"chevron_right\"></cob-icon>\n * </cob-button>\n * ```\n *\n * @example Circle icon button\n * ```html\n * <cob-button circle icon=\"close\" label=\"Close dialog\"></cob-button>\n * ```\n *\n * @example Size Small\n * ```html\n * <cob-button label=\"Small\" size=\"sm\"></cob-button>\n * ```\n * @example Size Large\n * ```html\n * <cob-button label=\"Large\" size=\"lg\"></cob-button>\n * ```\n *\n * @example Full width\n * ```html\n * <cob-button label=\"Full width\" fullWidth></cob-button>\n * ```\n *\n * @example Inverted\n * ```html\n * <cob-button label=\"Inverted\" inverted></cob-button>\n * ```\n * @render Inverted\n * ```html\n * <div style=\"background: #1b1b1b; padding: 1rem;\">\n * <cob-button label=\"Inverted\" inverted></cob-button>\n * </div>\n * ```\n *\n * @example Disabled\n * ```html\n * <cob-button label=\"Disabled\" disabled></cob-button>\n * ```\n *\n * @example Href\n * ```html\n * <cob-button label=\"Visit Boston.gov\" href=\"https://www.boston.gov/\" target=\"_blank\" suffixIcon=\"open_in_new\"></cob-button>\n * ```\n *\n * @example Type\n * ```html\n * <cob-button type=\"submit\" label=\"Save Changes\" variant=\"filled\"></cob-button>\n * ```\n */\n\nexport class CobButton extends LitElement {\n static styles = unsafeCSS(styles);\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n /**\n * Unique identifier. Auto-generated if not provided.\n */\n @property({ type: String, reflect: true }) id = \"\";\n\n /**\n * Name for form submission.\n */\n @property({ type: String, reflect: true }) name = \"\";\n\n /**\n * Button height: `sm` (40px) for dense UIs, `md` (48px, default) for standard use, `lg` (56px) for prominent CTAs.\n * @default \"md\"\n */\n @property({ type: String, reflect: true }) size: \"sm\" | \"md\" | \"lg\" = \"md\";\n\n /**\n * Expands button to fill container width. Use for mobile layouts or stacked button groups.\n * @default false\n */\n @property({ type: Boolean, reflect: true }) fullWidth = false;\n\n /**\n * Visual style: `filled` for primary (one per section), `outline` for secondary, `ghost` for tertiary, `text` for inline actions. Avoid `text` for navigation.\n * @default \"filled\"\n */\n @property({ type: String, reflect: true }) variant:\n | \"filled\"\n | \"outline\"\n | \"ghost\"\n | \"text\" = \"filled\";\n\n /**\n * Adjusts colors for dark backgrounds.\n * @default false\n */\n @property({ type: Boolean, reflect: true }) inverted = false;\n\n /**\n * Visible button text. Use sentence case, action-oriented text (e.g., \"Save Draft\"). Becomes aria-label in `circle` mode.\n */\n @property({ type: String }) label = \"\";\n\n /**\n * Screen reader label. Required for icon-only buttons if `label` is not set.\n */\n @property({ type: String }) ariaLabel = \"\";\n\n /**\n * ID of controlled element (e.g., dropdown or modal). Sets `aria-controls`.\n */\n @property({ type: String }) ariaControls = \"\";\n\n /**\n * Material Symbol icon before label. Not shown for `circle` mode.\n */\n @property({ type: String }) prefixIcon = \"\";\n\n /**\n * Material Symbol icon after label. Use `chevron_down` for dropdowns, `open_in_new` for external links. Not shown for `circle` mode.\n */\n @property({ type: String }) suffixIcon = \"\";\n\n /**\n * Renders circular icon-only button. Requires `icon` prop. `label` becomes aria-label.\n * @default false\n */\n @property({ type: Boolean, reflect: true }) circle = false;\n\n /**\n * Icon for circle mode. Required when `circle` is true. Scales with size (sm=24px, md=32px, lg=40px).\n */\n @property({ type: String }) icon = \"\";\n\n /**\n * Prevents interaction. Avoid disabling without explanation—show validation errors instead.\n * @default false\n */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /**\n * Form `id` to associate with. Use when button is outside the form element.\n */\n @property({ type: String, reflect: true }) form: string | null = null;\n\n /**\n * Value submitted with form data. Only used when `type=\"submit\"`.\n */\n @property({ type: String }) value = \"\";\n\n /**\n * Additional screen reader description. Sets `aria-description`.\n */\n @property({ type: String }) ariaDescription = \"\";\n\n /**\n * Form behavior: `button` (default, no form action), `submit` (submits form), `reset` (resets form). Always set explicitly to avoid unintended submissions.\n * @default \"button\"\n */\n @property({ type: String, reflect: true }) type:\n | \"submit\"\n | \"reset\"\n | \"button\" = \"button\";\n\n /**\n * Click handler. Use instead of `@click` to ensure keyboard accessibility.\n */\n @property({ attribute: false }) onClick: ((event: Event) => void) | null =\n null;\n\n /**\n * URL to navigate to. Renders as `<a>` tag. Omit for action buttons.\n */\n @property({ type: String }) href = \"\";\n\n /**\n * Link target: `_self` (same tab), `_blank` (new tab—add `suffixIcon=\"open_in_new\"`), `_parent`, `_top`, or frame name.\n * @default \"_self\"\n */\n @property({ type: String, reflect: true }) target:\n | \"_self\"\n | \"_blank\"\n | \"_parent\"\n | \"_top\"\n | \"framename\" = \"_self\";\n\n private _internals: ElementInternals;\n\n @state() private _hasPrefixSlot = false;\n @state() private _hasSuffixSlot = false;\n @state() private _hasCircleSlot = false;\n\n /**\n * Lifecycle methods\n * --------------------------------------------------------------------------\n */\n\n static formAssociated = true; // allows use of elementInternals' API\n\n constructor() {\n super();\n this._internals = this.attachInternals();\n }\n\n connectedCallback() {\n super.connectedCallback();\n\n // Generate a unique ID if not provided\n if (!this.id) {\n this.id = this._generateUniqueId();\n }\n }\n\n /**\n * Functions\n * --------------------------------------------------------------------------\n */\n\n private _generateUniqueId() {\n return `cob-button-${Date.now()}-${buttonIdCounter++}`;\n }\n\n private _onPrefixSlotChange(e: Event) {\n const slot = e.target as HTMLSlotElement;\n this._hasPrefixSlot = slot.assignedElements({ flatten: true }).length > 0;\n }\n\n private _onSuffixSlotChange(e: Event) {\n const slot = e.target as HTMLSlotElement;\n this._hasSuffixSlot = slot.assignedElements({ flatten: true }).length > 0;\n }\n\n private _onCircleSlotChange(e: Event) {\n const slot = e.target as HTMLSlotElement;\n this._hasCircleSlot = slot.assignedElements({ flatten: true }).length > 0;\n }\n\n private _manageFormAction() {\n // If an onClick function is provided, call it\n if (typeof this.onClick === \"function\" && this.onClick !== null) {\n this.onClick(new Event(\"click\")); // Call user-provided onClick function with a fake click event\n }\n\n // If part of a form, perform the corresponding action based on button's \"type\"\n const form = this._internals.form;\n\n if (form) {\n switch (this.type) {\n case \"submit\":\n form.requestSubmit();\n break;\n case \"reset\":\n form.reset();\n break;\n case \"button\":\n }\n }\n }\n\n /**\n * Event Handlers\n * --------------------------------------------------------------------------\n */\n\n private _handleFocus() {\n this.dispatchEvent(\n new Event(\"cob-focus\", { bubbles: true, composed: true }),\n );\n }\n\n private _handleBlur() {\n const button = this.shadowRoot?.querySelector(\".cob-button\");\n button?.classList.remove(\"active-focus\");\n this.dispatchEvent(\n new Event(\"cob-blur\", { bubbles: true, composed: true }),\n );\n }\n\n private _handleClick(event: Event) {\n if (this.disabled) {\n event.preventDefault();\n return;\n }\n this._manageFormAction();\n this.dispatchEvent(\n new Event(\"cob-click\", { bubbles: true, composed: true }),\n );\n }\n\n private _handleKeydown(e: KeyboardEvent) {\n if (\n e.code === \"Space\" ||\n e.code === \"Enter\" ||\n e.key === \" \" ||\n e.key === \"Enter\"\n ) {\n if (this.disabled) return;\n\n e.preventDefault();\n const btn = this.renderRoot.querySelector(\".cob-button\");\n btn?.classList.add(\"active\");\n setTimeout(() => btn?.classList.remove(\"active\"), 150);\n\n if (this.href) {\n // Click the internal <a> so native navigation happens\n const linkEl = this.renderRoot.querySelector(\n \"a.cob-button\",\n ) as HTMLAnchorElement;\n if (linkEl) {\n linkEl.click();\n }\n } else {\n this._handleAnyAttributeFunction();\n this._handleClick(e);\n }\n }\n }\n\n private _handleKeyup(e: KeyboardEvent) {\n if (\n e.code === \"Space\" ||\n e.code === \"Enter\" ||\n e.key === \" \" ||\n e.key === \"Enter\"\n ) {\n this.renderRoot.querySelector(\".cob-button\")?.classList.remove(\"active\");\n }\n }\n\n /**\n * Handles inline onclick attributes for keyboard activation.\n *\n * Native clicks execute inline onclick attributes automatically, but\n * keyboard activation of the custom element does not trigger that native\n * behavior. Dispatching a synthetic click lets the browser's own inline\n * event handler mechanism execute any onclick attribute safely without\n * eval() or new Function().\n */\n private _handleAnyAttributeFunction() {\n this.click();\n }\n\n public focus(options?: FocusOptions) {\n const innerEl = this.renderRoot.querySelector(\n this.href ? \"a.cob-button\" : \"button.cob-button\",\n ) as HTMLElement | null;\n\n if (innerEl) {\n innerEl.focus(options);\n } else {\n // fallback: focus host\n super.focus(options);\n }\n }\n\n render() {\n return html`\n ${this.href\n ? html`\n <div class=\"cob-button__linkwrapper\">\n <a\n class=\"cob-button\"\n name=${ifDefined(this.name ? this.name : undefined)}\n ?disabled=${this.disabled}\n aria-disabled=\"${this.disabled ? \"true\" : \"false\"}\"\n value=${ifDefined(this.value ? this.value : undefined)}\n href=${this.href}\n target=${this.target}\n @click=${this._handleClick}\n @focus=\"${this._handleFocus}\"\n @blur=\"${this._handleBlur}\"\n @keydown=\"${this._handleKeydown}\"\n @keyup=\"${this._handleKeyup}\"\n tabindex=\"${this.disabled ? -1 : 0}\"\n aria-label=${ifDefined(\n this.ariaLabel ||\n this.label ||\n (this.circle ? this.icon : null) ||\n \"button\",\n )}\n aria-description=${ifDefined(this.ariaDescription || undefined)}\n >\n <slot\n name=\"prefix-icon\"\n @slotchange=${this._onPrefixSlotChange}\n ?hidden=${!this.prefixIcon && !this._hasPrefixSlot}\n >\n ${this.prefixIcon\n ? html`<cob-icon\n size=\"16\"\n name=${this.prefixIcon}\n ></cob-icon>`\n : \"\"}\n </slot>\n ${!this.circle\n ? this.label\n ? html`<div class=\"cob-button__text\">${this.label}</div>`\n : html` <slot class=\"cob-button__default-slot\"></slot> `\n : \"\"}\n <slot\n name=\"suffix-icon\"\n @slotchange=${this._onSuffixSlotChange}\n ?hidden=${!this.suffixIcon && !this._hasSuffixSlot}\n >\n ${this.suffixIcon\n ? html`<cob-icon\n size=\"16\"\n name=${this.suffixIcon}\n ></cob-icon>`\n : \"\"}\n </slot>\n <slot\n name=\"circle-icon\"\n @slotchange=${this._onCircleSlotChange}\n ?hidden=${!this.circle ||\n (!this.icon && !this._hasCircleSlot)}\n >\n ${this.icon\n ? html`<cob-icon\n size=${this.size === \"sm\"\n ? \"24\"\n : this.size === \"lg\"\n ? \"40\"\n : \"32\"}\n name=${this.icon}\n ></cob-icon>`\n : \"\"}\n </slot>\n </a>\n </div>\n `\n : html`\n <button\n class=\"cob-button\"\n name=${ifDefined(this.name ? this.name : undefined)}\n ?disabled=${this.disabled}\n aria-disabled=\"${this.disabled ? \"true\" : \"false\"}\"\n form=${ifDefined(this.form || undefined)}\n value=${ifDefined(this.value ? this.value : undefined)}\n type=${this.type}\n aria-controls=${ifDefined(this.ariaControls || undefined)}\n @click=${this._handleClick}\n @focus=\"${this._handleFocus}\"\n @blur=\"${this._handleBlur}\"\n @keydown=\"${this._handleKeydown}\"\n @keyup=\"${this._handleKeyup}\"\n tabindex=\"${this.disabled ? -1 : 0}\"\n aria-label=${ifDefined(\n this.ariaLabel ||\n this.label ||\n (this.circle ? this.icon : null) ||\n this.prefixIcon ||\n this.suffixIcon ||\n \"button\",\n )}\n aria-description=${ifDefined(this.ariaDescription || undefined)}\n role=\"button\"\n >\n <slot\n name=\"prefix-icon\"\n @slotchange=${this._onPrefixSlotChange}\n ?hidden=${!this.prefixIcon && !this._hasPrefixSlot}\n >\n ${this.prefixIcon\n ? html`<cob-icon\n size=\"16\"\n name=${this.prefixIcon}\n ></cob-icon>`\n : \"\"}\n </slot>\n ${!this.circle\n ? this.label\n ? html`<div class=\"cob-button__text\">${this.label}</div>`\n : html` <slot class=\"cob-button__default-slot\"></slot> `\n : \"\"}\n <slot\n name=\"suffix-icon\"\n @slotchange=${this._onSuffixSlotChange}\n ?hidden=${!this.suffixIcon && !this._hasSuffixSlot}\n >\n ${this.suffixIcon\n ? html`<cob-icon\n size=\"16\"\n name=${this.suffixIcon}\n ></cob-icon>`\n : \"\"}\n </slot>\n <slot\n name=\"circle-icon\"\n @slotchange=${this._onCircleSlotChange}\n ?hidden=${!this.circle || (!this.icon && !this._hasCircleSlot)}\n >\n ${this.icon\n ? html`<cob-icon\n size=${this.size === \"sm\"\n ? \"24\"\n : this.size === \"lg\"\n ? \"40\"\n : \"32\"}\n name=${this.icon}\n ></cob-icon>`\n : \"\"}\n </slot>\n </button>\n `}\n `;\n }\n}\n\nif (!customElements.get(\"cob-button\")) {\n customElements.define(\"cob-button\", CobButton);\n}\n"],"names":["unsafeCSS","LitElement","html","property","state","ifDefined","St","ct","ee","Ge","Yn","jn","a","$n","Be","n","We","Ye","c","Xn","Vn","m","y","lt","ut","Pt","qn","Kn","Zn","an","je","Jn","Qn","to","w","R","st","sn","se","ce","l","gt","E","eo","$e","at","no","j","yt","ne","Xe","bt","Ve","oo","io","ro","qe","Ke","S","Et","O","J","ao","f","so","N","co","z","lo","Ze","oe","ie","uo","re","fo","Je","Qe","ae","tn","vt","po","mo","ho","_o","To","en","go","bo","Eo","yo","nn","Ao","So","Oo","k","wo","Ro","on","Y","cn","r","Ot","un","ue","fn","pt","fe","xt","C","H","L","q","kt","pe","mt","me","tt","pn","mn","wt","zt","de","dn","hn","_n","g","Tn","gn","bn","En","yn","An","he","Sn","_e","d","Te","h","ge","dt","be","G","Ee","Ft","ye","Ae","B","ht","K","Ut","Ht","Gt","Bt","et","Rt","It","Se","Oe","we","Wt","Yt","nt","P","jt","Re","Ie","$t","Ne","Nt","Lt","x","ot","Xt","Vt","On","Le","qt","De","Kt","wn","_t","Rn","In","T","Nn","Ce","Zt","e","i","s","Me","ve","Ln","Dn","Cn","Mn","W","Pe","u","p","Z","vn","Pn","xe","ke","Dt","Jt","rt","Ct","Tt","F","t","xn","kn","Ue","A","ze","Fe","zn","Fn","Un","He","b","M","v","te","I","Mt","Qt","Io","At","le","No","ln","Lo","rn","Do","Co","Mo","$","U","Hn","Bn","Gn","Q","Wn","vo","buttonIdCounter","_CobButton","slot","form","event","btn","linkEl","options","innerEl","styles","CobButton","__decorateClass"],"mappings":"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"}