Skip to content
Snippets Groups Projects
heading.tsx 1.01 KiB
Newer Older
  • Learn to ignore specific revisions
  • Markus Kaarto's avatar
    Markus Kaarto committed
    import { Component, Prop, Host, h } from '@stencil/core';
    
    import { HeadingVarians, HeadingSectionVariants } from "../../utils/utils";
    
    Markus Kaarto's avatar
    Markus Kaarto committed
    
    
    @Component({
      tag: 'hy-heading',
      styleUrl: 'heading.scss',
      shadow: true
    })
    export class Heading {
      @Prop() heading: HeadingVarians = HeadingVarians.default;
    
      @Prop() section: HeadingSectionVariants = HeadingSectionVariants.default;
    
    
    Markus Kaarto's avatar
    Markus Kaarto committed
      
      render() {
        const headingInVariants = this.heading in HeadingVarians;
    
        const classAttributes = ["hy-heading"];
        const sectionClassAttributes = [`hy-heading__${this.section}`].join(" ");
    
    Markus Kaarto's avatar
    Markus Kaarto committed
        return (
    
            <Host>
              { headingInVariants
                ? <div class="hy-heading__container"><this.heading class={classAttributes.join(" ")}><slot /></this.heading><span class={sectionClassAttributes}></span></div>
                : <div class="hy-heading__container"><HeadingVarians.default class={classAttributes.join(" ")}><slot /></HeadingVarians.default><span class={sectionClassAttributes}></span></div>
              }
            </Host>
    
    
    Markus Kaarto's avatar
    Markus Kaarto committed
        );
      }
    }