UNPKG

@aotearoan/neon

Version:

Neon is a lightweight design library of Vue 3 components with minimal dependencies.

81 lines (80 loc) 3.55 kB
import t from "./NeonInput.es.js"; import { resolveComponent as m, openBlock as l, createElementBlock as i, normalizeClass as d, mergeProps as a, withModifiers as s, createBlock as b, withKeys as r, createCommentVNode as u, toDisplayString as y } from "vue"; import h from "../../../_virtual/_plugin-vue_export-helper.es.js"; const f = ["id", "aria-placeholder", "disabled", "inputmode", "placeholder", "tabindex", "type", "value"], g = ["id", "aria-placeholder", "disabled", "inputmode", "placeholder", "rows", "tabindex", "value"], w = { key: 3, class: "neon-input__textarea-counter" }; function V(e, n, k, v, $, B) { const p = m("neon-icon"); return l(), i("div", { class: d([[ { "neon-input--with-icon": !e.hideIcon && (e.icon || e.modelValue && e.modelValue.length > 0), "neon-input--disabled": e.disabled, "neon-input--focused": e.focused, "neon-input--placeholder-visible": e.placeholder && (!e.modelValue || e.modelValue.length === 0), "neon-input--with-state-highlight": e.stateHighlight, "neon-input--with-state-icon": e.stateIcon }, `neon-input--${e.size}`, `neon-input--${e.color}`, `neon-input--state-${e.state}` ], "neon-input"]) }, [ e.rows ? (l(), i("textarea", a({ key: 1, id: e.id, "aria-placeholder": e.computedPlaceholder, disabled: e.disabled, inputmode: e.inputmode, placeholder: e.computedPlaceholder, rows: e.rows, tabindex: e.tabindex, value: e.modelValue, class: "neon-input__textfield neon-input__textarea" }, e.sanitizedAttributes, { onBlur: n[3] || (n[3] = (...o) => e.onBlur && e.onBlur(...o)), onFocus: n[4] || (n[4] = (...o) => e.onFocus && e.onFocus(...o)), onKeydown: n[5] || (n[5] = (...o) => e.onKeyDown && e.onKeyDown(...o)), onInput: n[6] || (n[6] = s((...o) => e.changeValue && e.changeValue(...o), ["stop", "prevent"])) }), null, 16, g)) : (l(), i("input", a({ key: 0, id: e.id, ref: "neonInput", "aria-placeholder": e.computedPlaceholder, disabled: e.disabled, inputmode: e.inputmode, placeholder: e.computedPlaceholder, tabindex: e.tabindex, type: e.type, value: e.modelValue, class: "neon-input__textfield neon-input__text" }, e.sanitizedAttributes, { onBlur: n[0] || (n[0] = (...o) => e.onBlur && e.onBlur(...o)), onFocus: n[1] || (n[1] = (o) => !e.disabled && e.onFocus()), onInput: n[2] || (n[2] = s((o) => !e.disabled && e.changeValue(o), ["stop", "prevent"])) }), null, 16, f)), e.iconVisible ? (l(), b(p, { key: 2, class: d([{ "neon-input__icon--read-only": e.iconReadonly }, "neon-input__icon"]), color: e.iconColor, disabled: e.disabled, name: e.iconName, role: !e.iconReadonly && "button", tabindex: e.disabled || e.iconReadonly ? !1 : 0, transparent: !0, onClick: n[7] || (n[7] = (o) => !e.iconReadonly && e.iconClicked(o)), onKeydown: [ n[8] || (n[8] = r((o) => !e.iconReadonly && e.iconClicked(o), ["enter"])), n[9] || (n[9] = r((o) => !e.iconReadonly && e.iconClicked(o), ["space"])) ] }, null, 8, ["class", "color", "disabled", "name", "role", "tabindex"])) : u("", !0), e.maxlength && e.maxlength > 0 ? (l(), i("span", w, y(`${e.modelValue.length}/${e.maxlength}`), 1)) : u("", !0) ], 2); } const F = /* @__PURE__ */ h(t, [["render", V]]); export { F as default }; //# sourceMappingURL=NeonInput.vue.es.js.map