import { jsx as _jsx } from "@stencil/core/jsx-runtime";
import { Host } from "@stencil/core";
export class Icon {
    host;
    // MARK: Props
    /**
     * The `label` prop is used for accessibility purposes. It provides a text alternative for screen readers, allowing users with visual impairments to understand the meaning of the icon.
     * If the `label` prop is not provided, the component will fall back to using the `name` prop as the accessible name for the icon.
     */
    label;
    size = "m";
    name;
    color;
    // MARK: Lifecycle
    // componentDidLoad() {
    //   adoptSharedStyles(this.el);
    // }
    // MARK: Render
    render() {
        const { label, name, size, color } = this;
        return (_jsx(Host, { size: size, part: "root", children: _jsx("i", { class: "dds-icon", role: "img", "aria-hidden": "true", "aria-label": label || name, style: { color }, part: "icon", children: name }, 'b393e091bd1df2c8f986bf9909618e21373b2730') }, 'f9454a9b051dc2fc99fc87b84c0d74f49fa28dc5'));
    }
    static get is() { return "dds-icon"; }
    static get encapsulation() { return "shadow"; }
    static get originalStyleUrls() {
        return {
            "$": ["../reset.css", "icon.css"]
        };
    }
    static get styleUrls() {
        return {
            "$": ["../reset.css", "icon.css"]
        };
    }
    static get properties() {
        return {
            "label": {
                "type": "string",
                "mutable": false,
                "complexType": {
                    "original": "string",
                    "resolved": "string",
                    "references": {}
                },
                "required": false,
                "optional": true,
                "docs": {
                    "tags": [],
                    "text": "The `label` prop is used for accessibility purposes. It provides a text alternative for screen readers, allowing users with visual impairments to understand the meaning of the icon.\nIf the `label` prop is not provided, the component will fall back to using the `name` prop as the accessible name for the icon."
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "attribute": "label"
            },
            "size": {
                "type": "string",
                "mutable": true,
                "complexType": {
                    "original": "\"2xs\" | \"xs\" | \"s\" | \"m\" | \"l\" | \"xl\"",
                    "resolved": "\"2xs\" | \"l\" | \"m\" | \"s\" | \"xl\" | \"xs\"",
                    "references": {}
                },
                "required": false,
                "optional": true,
                "docs": {
                    "tags": [],
                    "text": ""
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "attribute": "size",
                "defaultValue": "\"m\""
            },
            "name": {
                "type": "string",
                "mutable": true,
                "complexType": {
                    "original": "string",
                    "resolved": "string",
                    "references": {}
                },
                "required": false,
                "optional": false,
                "docs": {
                    "tags": [],
                    "text": ""
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "attribute": "name"
            },
            "color": {
                "type": "string",
                "mutable": true,
                "complexType": {
                    "original": "string",
                    "resolved": "string",
                    "references": {}
                },
                "required": false,
                "optional": false,
                "docs": {
                    "tags": [],
                    "text": ""
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "attribute": "color"
            }
        };
    }
    static get elementRef() { return "host"; }
}
