Newer
Older
import {Component, Host, h, Prop} from '@stencil/core';
import {CheckboxVariants} from '../../utils/utils';
@Component({
tag: 'hy-checkbox',
styleUrl: 'hy-checkbox.scss',
shadow: false,
})
export class HyCheckbox {
/**
* Unique id for checkbox element
*/
@Prop() checkboxId: string | number;
@Prop() checkboxValue: string | number;
/**
* Label for input to describe
*/
@Prop() checkboxLabel: string;
/**
* Checked attribute
*/
@Prop() checkboxChecked: boolean = false;
/**
* Variant to deifne what style of checkbox to use
*/
@Prop() variant: CheckboxVariants = CheckboxVariants.default;
switch (this.variant) {
case 'button':
return (
<Host class="hy-checkbox--button">
<input
type="checkbox"
class="hy-checkbox--button__checkbox"
id={`${this.checkboxId}`}
value={`${this.checkboxValue}`}
/>
<label class="hy-checkbox--button__label" htmlFor={`${this.checkboxId}`}>
{this.checkboxLabel}
<span class="hy-checkbox--button__checkmark">
<hy-icon class="hy-checkbox--button__label-icon" icon={'hy-icon-done'} size={14} aria-hidden="true" />
</span>
</label>
</Host>
);
default:
return (
<Host class="hy-checkbox">
<input
type="checkbox"
class="hy-checkbox__checkbox"
id={`${this.checkboxId}`}
value={`${this.checkboxValue}`}
/>
<label class="hy-checkbox__label" htmlFor={`${this.checkboxId}`}>
<span class="hy-checkbox__checkmark">
<hy-icon class="hy-checkbox__label-icon" icon={'hy-icon-done'} size={23} aria-hidden="true" />
</span>
{this.checkboxLabel}
</label>
</Host>
);
}