/**
 * Copyright Aquera Inc 2023
 *
 * This source code is licensed under the BSD-3-Clause license found in the
 * LICENSE file in the root directory of this source tree.
 */

import {LitElement, html, CSSResultArray, TemplateResult} from 'lit';
import { customElement, property } from 'lit/decorators.js';
import {styles} from './nile-hero-header.css';
import NileElement from '../internal/nile-element';


/**
 * Nile hero-header component.
 *
 * @tag nile-hero-header
 *
 */
@customElement('nile-hero-header')
export class NileHeroHeader extends NileElement {
	@property({ reflect: true }) icon: string = 'var(--nile-icon-action, var(--ng-icon-action))';
	@property({ reflect: true, attribute: 'hero-text' }) heroText: string = 'Nile Hero';

	/**
	 * The styles for nile-hero-header
	 * @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`
	 */
	public static get styles(): CSSResultArray {
		return [styles];
	}

	/* #endregion */

	/* #region Methods */

	/**
	 * Render method
	 * @slot This is a slot test
	 */
	public render(): TemplateResult {
		return html`
				<span class="icon__container">
					<nile-icon method="var(--nile-svg-method-stroke, var(--ng-svg-method-stroke))" size="16" name="${this.icon}"></nile-icon>
				</span>
				<span class="hero__text">${this.heroText}</span>
			`;
	}

	/* #endregion */
}

export default NileHeroHeader;

declare global {
  interface HTMLElementTagNameMap {
    'nile-hero-header': NileHeroHeader;
  }
}