import { h } from "@stencil/core";
/**
 * A simple button, with consistent styling to other controls in the design system.
 *
 * ```ts
 * <verdocs-button label="Click Me" size="normal" variant="standard" />
 * ```
 */
export class VerdocsButton {
    constructor() {
        /**
         * If desired, a prefix icon for the button.
         */
        this.startIcon = null;
        /**
         * If desired, a suffix icon for the button.
         */
        this.endIcon = null;
        /**
         * The size (height) of the button.
         */
        this.size = 'normal';
        /**
         * The type of the button.
         */
        this.type = 'button';
        /**
         * The display variant of the button.
         */
        this.variant = 'standard';
        /**
         * Whether the button should be disabled.
         */
        this.disabled = false;
    }
    render() {
        return (h("button", { key: 'f008c987a265f5a41ee490c1f28122b580c57d1a', disabled: this.disabled, type: this.type, class: `${this.variant} ${this.size} ${this.type}` }, this.startIcon ? h("span", { class: "icon start", innerHTML: this.startIcon }) : null, h("span", { key: 'ddce37342395bd9cf6abd0a9d4df6407a2059f5c', class: "button-label" }, this.label), this.endIcon ? h("span", { class: "icon end", innerHTML: this.endIcon }) : null));
    }
    static get is() { return "verdocs-button"; }
    static get originalStyleUrls() {
        return {
            "$": ["verdocs-button.scss"]
        };
    }
    static get styleUrls() {
        return {
            "$": ["verdocs-button.css"]
        };
    }
    static get properties() {
        return {
            "label": {
                "type": "string",
                "mutable": false,
                "complexType": {
                    "original": "string",
                    "resolved": "string",
                    "references": {}
                },
                "required": true,
                "optional": false,
                "docs": {
                    "tags": [],
                    "text": "The label for the button."
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "attribute": "label"
            },
            "startIcon": {
                "type": "string",
                "mutable": false,
                "complexType": {
                    "original": "string | null",
                    "resolved": "string",
                    "references": {}
                },
                "required": false,
                "optional": false,
                "docs": {
                    "tags": [],
                    "text": "If desired, a prefix icon for the button."
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "attribute": "start-icon",
                "defaultValue": "null"
            },
            "endIcon": {
                "type": "string",
                "mutable": false,
                "complexType": {
                    "original": "string | null",
                    "resolved": "string",
                    "references": {}
                },
                "required": false,
                "optional": false,
                "docs": {
                    "tags": [],
                    "text": "If desired, a suffix icon for the button."
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "attribute": "end-icon",
                "defaultValue": "null"
            },
            "size": {
                "type": "string",
                "mutable": false,
                "complexType": {
                    "original": "'xsmall' | 'small' | 'normal' | 'medium' | 'large'",
                    "resolved": "\"large\" | \"medium\" | \"normal\" | \"small\" | \"xsmall\"",
                    "references": {}
                },
                "required": false,
                "optional": false,
                "docs": {
                    "tags": [],
                    "text": "The size (height) of the button."
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "attribute": "size",
                "defaultValue": "'normal'"
            },
            "type": {
                "type": "string",
                "mutable": false,
                "complexType": {
                    "original": "'button' | 'submit' | 'reset'",
                    "resolved": "\"button\" | \"reset\" | \"submit\"",
                    "references": {}
                },
                "required": false,
                "optional": false,
                "docs": {
                    "tags": [],
                    "text": "The type of the button."
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "attribute": "type",
                "defaultValue": "'button'"
            },
            "variant": {
                "type": "string",
                "mutable": false,
                "complexType": {
                    "original": "'standard' | 'text' | 'outline'",
                    "resolved": "\"outline\" | \"standard\" | \"text\"",
                    "references": {}
                },
                "required": false,
                "optional": false,
                "docs": {
                    "tags": [],
                    "text": "The display variant of the button."
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "attribute": "variant",
                "defaultValue": "'standard'"
            },
            "disabled": {
                "type": "boolean",
                "mutable": false,
                "complexType": {
                    "original": "boolean",
                    "resolved": "boolean",
                    "references": {}
                },
                "required": false,
                "optional": false,
                "docs": {
                    "tags": [],
                    "text": "Whether the button should be disabled."
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "attribute": "disabled",
                "defaultValue": "false"
            }
        };
    }
}
//# sourceMappingURL=verdocs-button.js.map
