UNPKG

v4web-components

Version:
78 lines (73 loc) 6.56 kB
import { proxyCustomElement, HTMLElement, createEvent, h } from '@stencil/core/internal/client'; import { d as defineCustomElement$2 } from './lab-ds-icon-not-selectable2.js'; const labDsPasswordInputCss = "input{border:none;outline:none;padding:0;background-color:rgba(0, 0, 0, 0);color:var(--lab-ds-semantic-color-fg-default)}.v4-input{display:flex;flex-direction:column;gap:var(--lab-ds-semantic-selectable-space-gap-s);color:var(--lab-ds-semantic-color-fg-default)}.v4-input .title-text{text-align:left;font:var(--lab-ds-semantic-typography-heading-h7)}.v4-input .input-helper{display:flex;flex-direction:column;gap:var(--lab-ds-semantic-selectable-space-gap-s)}.v4-input .helper-text{display:flex;align-items:center;gap:var(--lab-ds-semantic-selectable-space-gap-xs);font:var(--lab-ds-semantic-typography-body-none-decoration-p3-regular)}.input-field{width:100%}.input-icon{display:flex;align-items:center;border-style:solid;border-radius:var(--lab-ds-semantic-selectable-border-radius-xs);border-width:var(--lab-ds-semantic-selectable-border-width-m);border-color:var(--lab-ds-semantic-selectable-color-border-default);background-color:var(--lab-ds-semantic-selectable-color-bg-default);padding-top:var(--lab-ds-semantic-selectable-space-padding-sm);padding-bottom:var(--lab-ds-semantic-selectable-space-padding-sm);padding-left:var(--lab-ds-semantic-selectable-space-padding-m);padding-right:var(--lab-ds-semantic-selectable-space-padding-m);gap:var(--lab-ds-semantic-selectable-space-gap-xs)}.input-icon .input-field{color:var(--lab-ds-semantic-color-fg-enabled);font:var(--lab-ds-semantic-typography-body-none-decoration-p2-regular)}.input-icon .icon.right{cursor:pointer}.icon{display:flex}.input-icon:focus-within{box-shadow:var(--lab-ds-semantic-selectable-shadow-m);border-color:var(--lab-ds-semantic-selectable-color-primary-press)}.input-icon:hover{box-shadow:var(--lab-ds-semantic-selectable-shadow-s);border-color:var(--lab-ds-semantic-selectable-color-primary-hover)}.input-icon:active{box-shadow:var(--lab-ds-semantic-selectable-shadow-m);border-color:var(--lab-ds-semantic-selectable-color-primary-press)}.v4-input.error .input-icon{border-color:var(--lab-ds-semantic-selectable-color-border-dark-error);color:var(--lab-ds-semantic-color-fg-disabled)}.v4-input.error .input-field{color:var(--lab-ds-semantic-selectable-color-bg-dark-error)}.v4-input.error .icon.left{color:var(--lab-ds-semantic-selectable-color-bg-dark-error)}.v4-input.error .icon.right{color:var(--lab-ds-semantic-color-fg-default)}.v4-input.error .input-helper{color:var(--lab-ds-semantic-selectable-color-bg-dark-error)}.v4-input.success .input-icon{border-color:var(--lab-ds-semantic-selectable-color-border-dark-success);color:var(--lab-ds-semantic-selectable-color-bg-dark-success)}.v4-input.success .input-field{color:var(--lab-ds-semantic-selectable-color-bg-dark-success)}.v4-input.success .icon.left{color:var(--lab-ds-semantic-selectable-color-bg-dark-success)}.v4-input.success .icon.right{color:var(--lab-ds-semantic-color-fg-default)}.v4-input.success .input-helper{color:var(--lab-ds-semantic-selectable-color-bg-dark-success)}input:disabled{cursor:not-allowed}.v4-input.disabled .input-icon{background-color:var(--lab-ds-semantic-selectable-color-bg-disabled);border-color:var(--lab-ds-semantic-selectable-color-border-disabled);color:var(--lab-ds-semantic-color-fg-disabled);cursor:not-allowed;box-shadow:none}.v4-input.disabled .title-text{color:var(--lab-ds-semantic-color-fg-disabled)}.v4-input.disabled .input-field{color:var(--lab-ds-semantic-color-fg-disabled)}.v4-input.disabled .icon{color:var(--lab-ds-semantic-color-fg-disabled);cursor:not-allowed}.v4-input.disabled .input-helper{color:var(--lab-ds-semantic-color-fg-disabled)}"; const LabDsPasswordInput$1 = /*@__PURE__*/ proxyCustomElement(class LabDsPasswordInput extends HTMLElement { constructor() { super(); this.__registerHost(); this.__attachShadow(); this.changeInput = createEvent(this, "changeInput", 7); this.inputPassword = { password: { icon: 'visibility_off', }, text: { icon: 'visibility', }, }; this.visiblePassword = false; this.value = undefined; this.titleInput = ''; this.label = ''; this.disabled = false; this.helperText = ''; this.state = 'default'; } handleChange(event) { this.changeInput.emit(event.target.value); } render() { const iconHelper = { error: { icon: 'error' }, success: { icon: 'check_circle' }, default: { icon: '' }, }; const inputType = this.visiblePassword ? 'text' : 'password'; return (h("div", { class: `v4-input ${this.state} ${this.disabled && 'disabled'}` }, h("span", { class: "title-text" }, this.titleInput), h("div", { class: "input-helper" }, h("div", { class: "input-icon" }, h("lab-ds-icon-not-selectable", { class: "icon left", size: "small", icon: "lock" }), h("input", { disabled: this.disabled, placeholder: this.label, class: "input-field", type: inputType, value: this.value, onInput: event => this.handleChange(event) }), h("lab-ds-icon-not-selectable", { onClick: () => { if (this.disabled) return; this.visiblePassword = !this.visiblePassword; }, class: "icon right", size: "small", icon: this.inputPassword[inputType].icon })), this.helperText && (h("span", { class: "helper-text" }, iconHelper[this.state].icon && h("lab-ds-icon-not-selectable", { class: "icon", size: "x-small", icon: iconHelper[this.state].icon }), this.helperText))))); } static get style() { return labDsPasswordInputCss; } }, [1, "lab-ds-password-input", { "value": [1], "titleInput": [1, "title-input"], "label": [1], "disabled": [4], "helperText": [1, "helper-text"], "state": [1], "visiblePassword": [32] }]); function defineCustomElement$1() { if (typeof customElements === "undefined") { return; } const components = ["lab-ds-password-input", "lab-ds-icon-not-selectable"]; components.forEach(tagName => { switch (tagName) { case "lab-ds-password-input": if (!customElements.get(tagName)) { customElements.define(tagName, LabDsPasswordInput$1); } break; case "lab-ds-icon-not-selectable": if (!customElements.get(tagName)) { defineCustomElement$2(); } break; } }); } const LabDsPasswordInput = LabDsPasswordInput$1; const defineCustomElement = defineCustomElement$1; export { LabDsPasswordInput, defineCustomElement }; //# sourceMappingURL=lab-ds-password-input.js.map