import { Component, Prop, Host, h } from '@stencil/core';
import { StyleLinkVariant, } from '../../types/StyleLinkVariant';
export class TeliaStyleLink {
  constructor() {
    /** A silent link is intended to wrap an element
     * to make it a link but not add any styling
     * except for the pointer cursor and focus style. */
    this.silent = false;
    /**
     * Determines if link is displayed on its own line
     * (standalone) or within the current text content
     * (text).
     */
    this.variant = StyleLinkVariant.TEXT;
    /** Disables visited styling */
    this.disableVisited = false;
    /**
     * When used on a dark background, set this
     * property to true. This will change color of text
     * and hover to something suitable.
     */
    this.darkBackground = false;
    /** Tracking id is used to identify and count Component usage */
    /**
     * This sets a minimum size on the clickable area of the link. Please note
     * it also changes display value to flex, meaning its container will behave
     * like a block element. You can wrap this component in a flex container
     * for additional layout control.
     */
    this.ensureClickArea = false;
    this.dataTrackingId = 'telia-style-link';
  }
  render() {
    const componentClass = 'telia-style-link';
    const linkClasses = {
      [componentClass]: true,
      [`${componentClass}--${this.variant}`]: true,
      [`${componentClass}--silent`]: this.silent,
      [`${componentClass}--dark-bg`]: this.darkBackground,
      [`${componentClass}--navigation-dark-bg`]: this.darkBackground && this.variant === 'navigation',
      [`${componentClass}--disable-visited`]: this.disableVisited || this.silent,
      [`${componentClass}--ensure-click-area`]: this.ensureClickArea,
    };
    return (h(Host, { class: linkClasses },
      h("slot", null),
      h("telia-vst", { dataTrackingId: this.dataTrackingId })));
  }
  static get is() { return "telia-style-link"; }
  static get originalStyleUrls() { return {
    "$": ["telia-style-link.scss"]
  }; }
  static get styleUrls() { return {
    "$": ["telia-style-link.css"]
  }; }
  static get properties() { return {
    "silent": {
      "type": "boolean",
      "mutable": false,
      "complexType": {
        "original": "boolean",
        "resolved": "boolean",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [],
        "text": "A silent link is intended to wrap an element\nto make it a link but not add any styling\nexcept for the pointer cursor and focus style."
      },
      "attribute": "silent",
      "reflect": false,
      "defaultValue": "false"
    },
    "variant": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "StyleLinkVariantType",
        "resolved": "\"navigation\" | \"standalone\" | \"text\"",
        "references": {
          "StyleLinkVariantType": {
            "location": "import",
            "path": "../../types/StyleLinkVariant"
          }
        }
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [],
        "text": "Determines if link is displayed on its own line\n(standalone) or within the current text content\n(text)."
      },
      "attribute": "variant",
      "reflect": false,
      "defaultValue": "StyleLinkVariant.TEXT"
    },
    "dataTestid": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [],
        "text": "Test id set for web component host"
      },
      "attribute": "data-testid",
      "reflect": false
    },
    "disableVisited": {
      "type": "boolean",
      "mutable": false,
      "complexType": {
        "original": "boolean",
        "resolved": "boolean",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [],
        "text": "Disables visited styling"
      },
      "attribute": "disable-visited",
      "reflect": false,
      "defaultValue": "false"
    },
    "darkBackground": {
      "type": "boolean",
      "mutable": false,
      "complexType": {
        "original": "boolean",
        "resolved": "boolean",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [],
        "text": "When used on a dark background, set this\nproperty to true. This will change color of text\nand hover to something suitable."
      },
      "attribute": "dark-background",
      "reflect": false,
      "defaultValue": "false"
    },
    "ensureClickArea": {
      "type": "boolean",
      "mutable": false,
      "complexType": {
        "original": "boolean",
        "resolved": "boolean",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [],
        "text": "This sets a minimum size on the clickable area of the link. Please note\nit also changes display value to flex, meaning its container will behave\nlike a block element. You can wrap this component in a flex container\nfor additional layout control."
      },
      "attribute": "ensure-click-area",
      "reflect": false,
      "defaultValue": "false"
    }
  }; }
}
