var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  return c > 3 && r && Object.defineProperty(target, key, r), r;
};
import { Component, Host, Prop, Element, h, State } from '@stencil/core';
import { sanitizeVegaComponent } from '../../utils/component';
import { InjectVegaGlobalSlimmer, InjectVegaSlimmer } from 'vega-slimmer/core';
import { VegaComponentUsageRuntimeMetricsSlimmer } from '../../helpers/slimmers/component-usage-runtime-metrics';
import { VegaBrandLogoRenderer } from './slimmers/renderers/vega-brand-logo-renderer';
import { DarkModeStateControllerSlimmer } from '../../helpers/slimmers/dark-mode-state-controller-slimmer';
import { VegaInternalThemeManager } from '../../helpers/theme/internal-theme-manager';
/**
 * @vegaVersion 2.47.0
 */
export class VegaBrandLogo {
  constructor() {
    this.globalSlimmers = {};
    this.brandLogoRenderer = new VegaBrandLogoRenderer();
    this.darkModeStateControllerSlimmer = new DarkModeStateControllerSlimmer();
    this.vegaComponentUsageRuntimeMetricsSlimmer = new VegaComponentUsageRuntimeMetricsSlimmer();
    this.isInDarkMode = VegaInternalThemeManager.isDarkMode();
    /**
     * Specifies the name of the brand logo.
     *
     * @vegaVersion 2.47.0
     */
    this.name = 'global-payments';
    /**
     * Specifies the size of the brand logo.
     *
     * @vegaVersion 2.47.0
     */
    this.size = 'medium';
    /**
     * Specifies the display theme of the brand logo.
       * Available options include:
       * - `auto`: Displays the logo in light mode by default;
               switches to dark mode if the page theme changes.
       * - `light`: Always displays the logo in light mode, regardless of the page theme.
       * - `dark`: Always displays the logo in dark mode, regardless of the page theme.
     *
     * @vegaVersion 2.47.0
     */
    this.theme = 'auto';
  }
  render() {
    return sanitizeVegaComponent(h(Host, null, this.brandLogoRenderer.render()), this.host);
  }
  static get is() { return "vega-brand-logo"; }
  static get encapsulation() { return "shadow"; }
  static get originalStyleUrls() { return {
    "$": ["./vega-brand-logo.scss"]
  }; }
  static get styleUrls() { return {
    "$": ["vega-brand-logo.css"]
  }; }
  static get properties() { return {
    "name": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "'global-payments' | 'genius' | 'g-symbol'",
        "resolved": "\"g-symbol\" | \"genius\" | \"global-payments\"",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "name": "vegaVersion",
            "text": "2.47.0"
          }],
        "text": "Specifies the name of the brand logo."
      },
      "attribute": "name",
      "reflect": false,
      "defaultValue": "'global-payments'"
    },
    "size": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "'small' | 'medium' | 'large'",
        "resolved": "\"large\" | \"medium\" | \"small\"",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "name": "vegaVersion",
            "text": "2.47.0"
          }],
        "text": "Specifies the size of the brand logo."
      },
      "attribute": "size",
      "reflect": false,
      "defaultValue": "'medium'"
    },
    "theme": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "'auto' | 'light' | 'dark'",
        "resolved": "\"auto\" | \"dark\" | \"light\"",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "name": "vegaVersion",
            "text": "2.47.0"
          }],
        "text": "Specifies the display theme of the brand logo.\n  Available options include:\n  - `auto`: Displays the logo in light mode by default;\n    \t   switches to dark mode if the page theme changes.\n  - `light`: Always displays the logo in light mode, regardless of the page theme.\n  - `dark`: Always displays the logo in dark mode, regardless of the page theme."
      },
      "attribute": "theme",
      "reflect": false,
      "defaultValue": "'auto'"
    }
  }; }
  static get states() { return {
    "isInDarkMode": {}
  }; }
  static get elementRef() { return "host"; }
}
__decorate([
  InjectVegaGlobalSlimmer()
], VegaBrandLogo.prototype, "globalSlimmers", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaBrandLogo.prototype, "brandLogoRenderer", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaBrandLogo.prototype, "darkModeStateControllerSlimmer", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaBrandLogo.prototype, "vegaComponentUsageRuntimeMetricsSlimmer", void 0);
