diff --git a/IA.md b/IA.md
index 8cdc4f6..3d9d871 100644
--- a/IA.md
+++ b/IA.md
@@ -105,6 +105,27 @@ export default defineComponent({
```
+### Input de porcentagem
+
+Quando precisar de um campo numérico com sufixo `%`, use `type="porcentagem"`.
+
+```vue
+
+
+
+
+
+```
+
### Data e hora (entrada) com suporte a UTC/Z
```vue
@@ -173,5 +194,3 @@ Atualize este `IA.md` quando houver mudanças em qualquer um destes pontos:
- forma de uso do plugin/export principal
- lista de exports públicos (novos componentes, renomes, remoções)
- mudanças de comportamento relevantes para consumo
-
-
diff --git a/README.md b/README.md
index 997bd9c..a896be9 100644
--- a/README.md
+++ b/README.md
@@ -160,6 +160,27 @@ export default defineComponent({
```
+### EliInput (porcentagem)
+
+Use `type="porcentagem"` quando precisar de um campo numérico com sufixo `%` embutido.
+
+```vue
+
+
+
+
+
+```
+
### EliBadge
```vue
diff --git a/dist/eli-vue.css b/dist/eli-vue.css
index 03c4556..3034f98 100644
--- a/dist/eli-vue.css
+++ b/dist/eli-vue.css
@@ -1 +1 @@
-[data-v-de2fbf2f] .v-badge__badge,[data-v-de2fbf2f] .v-badge__content{border-radius:var(--eli-badge-radius)!important}.eli-input[data-v-2f57f5c8]{width:100%}.checkbox-group[data-v-2f57f5c8]{display:flex;gap:8px;flex-wrap:wrap}.cursor-pointer[data-v-2f57f5c8]{cursor:pointer}.eli-cartao[data-v-6c492bd9]{border-radius:12px}.eli-cartao__titulo[data-v-6c492bd9]{display:flex;align-items:center;justify-content:space-between;gap:12px}.eli-cartao__titulo-texto[data-v-6c492bd9]{min-width:0}.eli-cartao__conteudo[data-v-6c492bd9]{padding-top:8px}.eli-cartao__acoes[data-v-6c492bd9]{padding-top:0}.eli-cartao--cancelado[data-v-6c492bd9]{opacity:.85}.eli-data-hora[data-v-71afabb6]{width:100%}
+[data-v-de2fbf2f] .v-badge__badge,[data-v-de2fbf2f] .v-badge__content{border-radius:var(--eli-badge-radius)!important}.eli-input[data-v-756cb549]{width:100%}.checkbox-group[data-v-756cb549]{display:flex;gap:8px;flex-wrap:wrap}.cursor-pointer[data-v-756cb549]{cursor:pointer}.eli-cartao[data-v-6c492bd9]{border-radius:12px}.eli-cartao__titulo[data-v-6c492bd9]{display:flex;align-items:center;justify-content:space-between;gap:12px}.eli-cartao__titulo-texto[data-v-6c492bd9]{min-width:0}.eli-cartao__conteudo[data-v-6c492bd9]{padding-top:8px}.eli-cartao__acoes[data-v-6c492bd9]{padding-top:0}.eli-cartao--cancelado[data-v-6c492bd9]{opacity:.85}.eli-data-hora[data-v-71afabb6]{width:100%}
diff --git a/dist/eli-vue.es.js b/dist/eli-vue.es.js
index 229fb80..e3e66f0 100644
--- a/dist/eli-vue.es.js
+++ b/dist/eli-vue.es.js
@@ -1,16 +1,16 @@
-import { defineComponent as R, createBlock as H, openBlock as k, mergeProps as F, withCtx as D, renderSlot as W, computed as E, ref as C, createElementBlock as G, createCommentVNode as pe, createSlots as ke, createVNode as $, createTextVNode as Q, toDisplayString as $e, Fragment as de, renderList as fe, resolveComponent as te, createElementVNode as ae } from "vue";
-import { VBtn as Ee } from "vuetify/components/VBtn";
-import { VBadge as Ce } from "vuetify/components/VBadge";
-import { VCheckbox as Ie } from "vuetify/components/VCheckbox";
-import { VIcon as Oe } from "vuetify/components/VIcon";
-import { VRadio as Te } from "vuetify/components/VRadio";
-import { VRadioGroup as Ue } from "vuetify/components/VRadioGroup";
-import { VSelect as Ye } from "vuetify/components/VSelect";
-import { VTextField as ye } from "vuetify/components/VTextField";
-import { VTextarea as He } from "vuetify/components/VTextarea";
-import { VCard as ve, VCardTitle as ge, VCardText as he, VCardActions as be } from "vuetify/components/VCard";
-import { VContainer as Ae } from "vuetify/components/VGrid";
-const Pe = R({
+import { defineComponent as R, createBlock as H, openBlock as B, mergeProps as F, withCtx as D, renderSlot as W, computed as E, ref as C, createElementBlock as G, createCommentVNode as pe, createSlots as Ee, createVNode as y, createTextVNode as Q, toDisplayString as ye, Fragment as de, renderList as fe, resolveComponent as te, createElementVNode as ae } from "vue";
+import { VBtn as Ce } from "vuetify/components/VBtn";
+import { VBadge as Ie } from "vuetify/components/VBadge";
+import { VCheckbox as Oe } from "vuetify/components/VCheckbox";
+import { VIcon as Te } from "vuetify/components/VIcon";
+import { VRadio as Ue } from "vuetify/components/VRadio";
+import { VRadioGroup as Ye } from "vuetify/components/VRadioGroup";
+import { VSelect as He } from "vuetify/components/VSelect";
+import { VTextField as $e } from "vuetify/components/VTextField";
+import { VTextarea as Ae } from "vuetify/components/VTextarea";
+import { VCard as ge, VCardTitle as ve, VCardText as he, VCardActions as be } from "vuetify/components/VCard";
+import { VContainer as Pe } from "vuetify/components/VGrid";
+const je = R({
name: "EliBotao",
inheritAttrs: !1,
props: {
@@ -37,12 +37,12 @@ const Pe = R({
}
}), J = (e, t) => {
const c = e.__vccOpts || e;
- for (const [y, v] of t)
- c[y] = v;
+ for (const [$, g] of t)
+ c[$] = g;
return c;
};
-function je(e, t, c, y, v, w) {
- return k(), H(Ee, F({
+function Ne(e, t, c, $, g, w) {
+ return B(), H(Ce, F({
color: e.color,
variant: e.variant,
size: e.size,
@@ -55,10 +55,10 @@ function je(e, t, c, y, v, w) {
_: 3
}, 16, ["color", "variant", "size", "disabled", "loading"]);
}
-const Ve = /* @__PURE__ */ J(Pe, [["render", je]]), me = {
+const Ve = /* @__PURE__ */ J(je, [["render", Ne]]), me = {
suave: "4px",
pill: "10px"
-}, Ne = R({
+}, Fe = R({
name: "EliBadge",
inheritAttrs: !1,
props: {
@@ -97,14 +97,14 @@ const Ve = /* @__PURE__ */ J(Pe, [["render", je]]), me = {
}
},
setup(e) {
- const t = E(() => e.radius in me ? me[e.radius] : e.radius), c = E(() => e.dot || e.badge !== void 0 ? e.visible : !1), y = E(() => ({
+ const t = E(() => e.radius in me ? me[e.radius] : e.radius), c = E(() => e.dot || e.badge !== void 0 ? e.visible : !1), $ = E(() => ({
"--eli-badge-radius": t.value
}));
- return { showBadge: c, badgeStyle: y };
+ return { showBadge: c, badgeStyle: $ };
}
});
-function Fe(e, t, c, y, v, w) {
- return e.showBadge ? (k(), H(Ce, F({
+function Le(e, t, c, $, g, w) {
+ return e.showBadge ? (B(), H(Ie, F({
key: 0,
color: e.color
}, e.$attrs, {
@@ -121,37 +121,40 @@ function Fe(e, t, c, y, v, w) {
_: 3
}, 16, ["color", "location", "offset-x", "offset-y", "dot", "content", "style"])) : W(e.$slots, "default", { key: 1 }, void 0, !0);
}
-const le = /* @__PURE__ */ J(Ne, [["render", Fe], ["__scopeId", "data-v-de2fbf2f"]]);
-function Le(e) {
- return e.replace(/\D+/g, "");
-}
+const le = /* @__PURE__ */ J(Fe, [["render", Le], ["__scopeId", "data-v-de2fbf2f"]]);
function ze(e) {
- const t = Le(e);
- return t.length <= 11 ? t.replace(/(\d{3})(\d)/, "$1.$2").replace(/(\d{3})(\d)/, "$1.$2").replace(/(\d{3})(\d{1,2})$/, "$1-$2").slice(0, 14) : t.replace(/^(\d{2})(\d)/, "$1.$2").replace(/^(\d{2})\.(\d{3})(\d)/, "$1.$2.$3").replace(/\.(\d{3})(\d)/, ".$1/$2").replace(/(\d{4})(\d)/, "$1-$2").slice(0, 18);
+ return e.replace(/\D+/g, "");
}
function We(e) {
- return e.replace(/\D+/g, "");
+ const t = ze(e);
+ return t.length <= 11 ? t.replace(/(\d{3})(\d)/, "$1.$2").replace(/(\d{3})(\d)/, "$1.$2").replace(/(\d{3})(\d{1,2})$/, "$1-$2").slice(0, 14) : t.replace(/^(\d{2})(\d)/, "$1.$2").replace(/^(\d{2})\.(\d{3})(\d)/, "$1.$2.$3").replace(/\.(\d{3})(\d)/, ".$1/$2").replace(/(\d{4})(\d)/, "$1-$2").slice(0, 18);
}
function Re(e) {
- const t = We(e);
+ return e.replace(/\D+/g, "");
+}
+function Je(e) {
+ const t = Re(e);
return t ? t.length <= 10 ? t.replace(/^(\d{2})(\d)/, "($1) $2").replace(/(\d{4})(\d)/, "$1-$2").slice(0, 14) : t.replace(/^(\d{2})(\d)/, "($1) $2").replace(/(\d{5})(\d)/, "$1-$2").slice(0, 15) : "";
}
function se(e) {
return e.replace(/\D+/g, "");
}
-function Je(e) {
+function Se(e) {
const t = e.replace(/[^\d,]/g, ""), c = t.split(",");
return c.length > 2 ? c[0] + "," + c.slice(1).join("") : t;
}
function qe(e) {
+ return Se(e.replace(/%/g, ""));
+}
+function Ze(e) {
const t = se(e);
return t ? (parseInt(t, 10) / 100).toFixed(2).replace(".", ",").replace(/\B(?=(\d{3})+(?!\d))/g, ".") : "";
}
-function Ze(e) {
+function Xe(e) {
const t = se(e).slice(0, 8);
return t.length <= 5 ? t : t.replace(/^(\d{5})(\d{1,3})$/, "$1-$2");
}
-const Xe = R({
+const Ge = R({
name: "EliInput",
inheritAttrs: !1,
props: {
@@ -194,10 +197,10 @@ const Xe = R({
},
emits: ["update:modelValue", "change", "focus", "blur"],
setup(e, { emit: t, attrs: c }) {
- const y = C(!1), v = C(!1), w = E({
+ const $ = C(!1), g = C(!1), w = E({
get: () => e.modelValue,
- set: (g) => {
- t("update:modelValue", g), t("change", g);
+ set: (h) => {
+ t("update:modelValue", h), t("change", h);
}
}), d = E(
() => [
@@ -211,54 +214,59 @@ const Xe = R({
"numericoInteiro",
"numericoDecimal",
"numericoMoeda",
+ "porcentagem",
"cep"
].includes(e.type)
), f = E(
- () => e.type === "password" ? v.value ? "text" : "password" : "text"
+ () => e.type === "password" ? g.value ? "text" : "password" : "text"
), I = E(() => {
if (e.type === "telefone") return "tel";
+ if (e.type === "porcentagem") return "decimal";
if (e.type.startsWith("numerico")) return "numeric";
}), l = E(
- () => e.error ? "error" : y.value ? e.color : void 0
+ () => e.error ? "error" : $.value ? e.color : void 0
);
- function Y(g) {
- const T = g.target;
- let h = T.value;
+ function Y(h) {
+ const T = h.target;
+ let v = T.value;
switch (e.type) {
case "numericoInteiro":
- h = se(h);
+ v = se(v);
break;
case "numericoDecimal":
- h = Je(h);
+ v = Se(v);
break;
case "numericoMoeda":
- h = qe(h);
+ v = Ze(v);
+ break;
+ case "porcentagem":
+ v = qe(v);
break;
case "telefone":
- h = Re(h);
+ v = Je(v);
break;
case "cpfCnpj":
- h = ze(h);
+ v = We(v);
break;
case "cep":
- h = Ze(h);
+ v = Xe(v);
break;
}
- T.value = h, t("update:modelValue", h), t("change", h);
+ T.value = v, t("update:modelValue", v), t("change", v);
}
function V() {
- v.value = !v.value;
+ g.value = !g.value;
}
- const L = E(() => (e.options || []).map((g) => {
- if (g && typeof g == "object" && "value" in g) {
- const h = g.value;
+ const L = E(() => (e.options || []).map((h) => {
+ if (h && typeof h == "object" && "value" in h) {
+ const v = h.value;
return {
- label: g.label ?? String(h),
- value: h,
- disabled: g.disabled
+ label: h.label ?? String(v),
+ value: v,
+ disabled: h.disabled
};
}
- const T = g;
+ const T = h;
return { label: String(T), value: T };
}));
return {
@@ -268,7 +276,7 @@ const Xe = R({
inputHtmlType: f,
inputMode: I,
internalColor: l,
- showPassword: v,
+ showPassword: g,
togglePassword: V,
onInput: Y,
onFocus: () => t("focus"),
@@ -276,13 +284,13 @@ const Xe = R({
computedItems: L
};
}
-}), Ge = { class: "eli-input" }, Qe = {
+}), Qe = { class: "eli-input" }, Ke = {
key: 4,
class: "checkbox-group"
};
-function Ke(e, t, c, y, v, w) {
- return k(), G("div", Ge, [
- e.isTextLike ? (k(), H(ye, F({
+function _e(e, t, c, $, g, w) {
+ return B(), G("div", Qe, [
+ e.isTextLike ? (B(), H($e, F({
key: 0,
modelValue: e.value,
"onUpdate:modelValue": t[0] || (t[0] = (d) => e.value = d),
@@ -298,28 +306,29 @@ function Ke(e, t, c, y, v, w) {
density: e.density,
variant: e.variant,
color: e.internalColor,
- inputmode: e.inputMode
+ inputmode: e.inputMode,
+ suffix: e.type === "porcentagem" ? "%" : void 0
}, e.attrs, {
onFocus: e.onFocus,
onBlur: e.onBlur,
onInput: e.onInput
- }), ke({ _: 2 }, [
+ }), Ee({ _: 2 }, [
e.type === "password" && e.showPasswordToggle ? {
name: "append-inner",
fn: D(() => [
- $(Oe, {
+ y(Te, {
class: "cursor-pointer",
onClick: e.togglePassword
}, {
default: D(() => [
- Q($e(e.showPassword ? "mdi-eye-off" : "mdi-eye"), 1)
+ Q(ye(e.showPassword ? "mdi-eye-off" : "mdi-eye"), 1)
]),
_: 1
}, 8, ["onClick"])
]),
key: "0"
} : void 0
- ]), 1040, ["modelValue", "type", "label", "placeholder", "disabled", "clearable", "error", "error-messages", "hint", "persistent-hint", "density", "variant", "color", "inputmode", "onFocus", "onBlur", "onInput"])) : e.type === "textarea" ? (k(), H(He, F({
+ ]), 1040, ["modelValue", "type", "label", "placeholder", "disabled", "clearable", "error", "error-messages", "hint", "persistent-hint", "density", "variant", "color", "inputmode", "suffix", "onFocus", "onBlur", "onInput"])) : e.type === "textarea" ? (B(), H(Ae, F({
key: 1,
modelValue: e.value,
"onUpdate:modelValue": t[1] || (t[1] = (d) => e.value = d),
@@ -327,7 +336,7 @@ function Ke(e, t, c, y, v, w) {
rows: e.rows,
density: e.density,
variant: e.variant
- }, e.attrs), null, 16, ["modelValue", "label", "rows", "density", "variant"])) : e.type === "select" ? (k(), H(Ye, F({
+ }, e.attrs), null, 16, ["modelValue", "label", "rows", "density", "variant"])) : e.type === "select" ? (B(), H(He, F({
key: 2,
modelValue: e.value,
"onUpdate:modelValue": t[2] || (t[2] = (d) => e.value = d),
@@ -347,22 +356,22 @@ function Ke(e, t, c, y, v, w) {
}, e.attrs, {
onFocus: e.onFocus,
onBlur: e.onBlur
- }), null, 16, ["modelValue", "items", "label", "placeholder", "multiple", "chips", "clearable", "disabled", "density", "variant", "error", "error-messages", "onFocus", "onBlur"])) : e.type === "radio" ? (k(), H(Ue, {
+ }), null, 16, ["modelValue", "items", "label", "placeholder", "multiple", "chips", "clearable", "disabled", "density", "variant", "error", "error-messages", "onFocus", "onBlur"])) : e.type === "radio" ? (B(), H(Ye, {
key: 3,
modelValue: e.value,
"onUpdate:modelValue": t[3] || (t[3] = (d) => e.value = d),
row: e.row
}, {
default: D(() => [
- (k(!0), G(de, null, fe(e.computedItems, (d) => (k(), H(Te, {
+ (B(!0), G(de, null, fe(e.computedItems, (d) => (B(), H(Ue, {
key: String(d.value),
label: d.label,
value: d.value
}, null, 8, ["label", "value"]))), 128))
]),
_: 1
- }, 8, ["modelValue", "row"])) : e.type === "checkbox" ? (k(), G("div", Qe, [
- (k(!0), G(de, null, fe(e.computedItems, (d) => (k(), H(Ie, {
+ }, 8, ["modelValue", "row"])) : e.type === "checkbox" ? (B(), G("div", Ke, [
+ (B(!0), G(de, null, fe(e.computedItems, (d) => (B(), H(Oe, {
key: String(d.value),
modelValue: e.value,
"onUpdate:modelValue": t[4] || (t[4] = (f) => e.value = f),
@@ -373,44 +382,44 @@ function Ke(e, t, c, y, v, w) {
])) : pe("", !0)
]);
}
-const Se = /* @__PURE__ */ J(Xe, [["render", Ke], ["__scopeId", "data-v-2f57f5c8"]]), _e = R({
+const Me = /* @__PURE__ */ J(Ge, [["render", _e], ["__scopeId", "data-v-756cb549"]]), xe = R({
name: "EliOlaMundo",
components: {
EliBotao: Ve,
EliBadge: le,
- EliInput: Se
+ EliInput: Me
},
setup() {
- const e = C(""), t = C([]), c = C(""), y = C(""), v = C(""), w = C(""), d = C(""), f = C(""), I = C(""), l = C(""), Y = C(""), V = C(null), L = C([]);
+ const e = C(""), t = C([]), c = C(""), $ = C(""), g = C(""), w = C(""), d = C(""), f = C(""), I = C(""), l = C(""), Y = C(""), V = C(null), L = C([]);
return {
nome: e,
email: f,
documento: Y,
estado: t,
- telefone: y,
+ telefone: $,
mensagem: I,
senha: l,
cor: V,
habilidades: L,
- idade: v,
+ idade: g,
altura: w,
cep: c,
valor: d
};
}
-}), xe = { class: "grid-example" };
-function et(e, t, c, y, v, w) {
+}), et = { class: "grid-example" };
+function tt(e, t, c, $, g, w) {
const d = te("EliBadge"), f = te("EliInput"), I = te("EliBotao");
- return k(), H(Ae, null, {
+ return B(), H(Pe, null, {
default: D(() => [
- $(ve, {
+ y(ge, {
class: "mx-auto",
max_width: "400"
}, {
default: D(() => [
- $(ge, null, {
+ y(ve, null, {
default: D(() => [
- $(d, {
+ y(d, {
badge: "Novo",
"offset-x": "-15",
location: "right center"
@@ -423,51 +432,51 @@ function et(e, t, c, y, v, w) {
]),
_: 1
}),
- $(he, null, {
+ y(he, null, {
default: D(() => [
t[15] || (t[15] = Q(" Este é um componente de exemplo integrado com Vuetify. ", -1)),
- ae("div", xe, [
- $(f, {
+ ae("div", et, [
+ y(f, {
modelValue: e.nome,
"onUpdate:modelValue": t[0] || (t[0] = (l) => e.nome = l),
label: "Nome",
placeholder: "Digite o nome",
density: "compact"
}, null, 8, ["modelValue"]),
- $(f, {
+ y(f, {
modelValue: e.idade,
"onUpdate:modelValue": t[1] || (t[1] = (l) => e.idade = l),
type: "numericoInteiro",
label: "Idade",
density: "default"
}, null, 8, ["modelValue"]),
- $(f, {
+ y(f, {
modelValue: e.altura,
"onUpdate:modelValue": t[2] || (t[2] = (l) => e.altura = l),
type: "numericoDecimal",
label: "Altura",
density: "comfortable"
}, null, 8, ["modelValue"]),
- $(f, {
+ y(f, {
modelValue: e.valor,
"onUpdate:modelValue": t[3] || (t[3] = (l) => e.valor = l),
type: "numericoMoeda",
label: "Valor"
}, null, 8, ["modelValue"]),
- $(f, {
+ y(f, {
modelValue: e.telefone,
"onUpdate:modelValue": t[4] || (t[4] = (l) => e.telefone = l),
type: "telefone",
label: "Telefone"
}, null, 8, ["modelValue"]),
- $(f, {
+ y(f, {
modelValue: e.cep,
"onUpdate:modelValue": t[5] || (t[5] = (l) => e.cep = l),
type: "cep",
label: "CEP",
placeholder: "00000-000"
}, null, 8, ["modelValue"]),
- $(f, {
+ y(f, {
type: "select",
label: "Estado",
options: [
@@ -478,19 +487,19 @@ function et(e, t, c, y, v, w) {
"onUpdate:modelValue": t[6] || (t[6] = (l) => e.estado = l),
multiple: ""
}, null, 8, ["modelValue"]),
- $(f, {
+ y(f, {
modelValue: e.documento,
"onUpdate:modelValue": t[7] || (t[7] = (l) => e.documento = l),
type: "cpfCnpj",
label: "CPF / CNPJ"
}, null, 8, ["modelValue"]),
- $(f, {
+ y(f, {
modelValue: e.email,
"onUpdate:modelValue": t[8] || (t[8] = (l) => e.email = l),
label: "Email",
placeholder: "email@exemplo.com"
}, null, 8, ["modelValue"]),
- $(f, {
+ y(f, {
modelValue: e.senha,
"onUpdate:modelValue": t[9] || (t[9] = (l) => e.senha = l),
label: "Senha",
@@ -498,14 +507,14 @@ function et(e, t, c, y, v, w) {
showPasswordToggle: !0,
placeholder: "Digite sua senha"
}, null, 8, ["modelValue"]),
- $(f, {
+ y(f, {
type: "textarea",
modelValue: e.mensagem,
"onUpdate:modelValue": t[10] || (t[10] = (l) => e.mensagem = l),
label: "Mensagem",
rows: 5
}, null, 8, ["modelValue"]),
- $(f, {
+ y(f, {
type: "radio",
modelValue: e.cor,
"onUpdate:modelValue": t[11] || (t[11] = (l) => e.cor = l),
@@ -515,7 +524,7 @@ function et(e, t, c, y, v, w) {
{ label: "Verde", value: "verde" }
]
}, null, 8, ["modelValue"]),
- $(f, {
+ y(f, {
type: "checkbox",
modelValue: e.habilidades,
"onUpdate:modelValue": t[12] || (t[12] = (l) => e.habilidades = l),
@@ -524,7 +533,7 @@ function et(e, t, c, y, v, w) {
{ label: "React", value: "react" }
]
}, null, 8, ["modelValue"]),
- $(f, {
+ y(f, {
modelValue: e.nome,
"onUpdate:modelValue": t[13] || (t[13] = (l) => e.nome = l),
label: "Nome",
@@ -535,9 +544,9 @@ function et(e, t, c, y, v, w) {
]),
_: 1
}),
- $(be, null, {
+ y(be, null, {
default: D(() => [
- $(I, {
+ y(I, {
color: "primary",
variant: "elevated",
block: ""
@@ -557,7 +566,7 @@ function et(e, t, c, y, v, w) {
_: 1
});
}
-const tt = /* @__PURE__ */ J(_e, [["render", et]]), at = R({
+const at = /* @__PURE__ */ J(xe, [["render", tt]]), rt = R({
name: "EliCartao",
components: { EliBadge: le },
inheritAttrs: !1,
@@ -586,7 +595,7 @@ const tt = /* @__PURE__ */ J(_e, [["render", et]]), at = R({
clicar: (e) => !0
},
setup(e, { emit: t }) {
- const c = E(() => e.status), y = E(() => {
+ const c = E(() => e.status), $ = E(() => {
switch (e.status) {
case "novo":
return "primary";
@@ -597,34 +606,34 @@ const tt = /* @__PURE__ */ J(_e, [["render", et]]), at = R({
case "cancelado":
return "error";
}
- }), v = E(() => `eli-cartao--${e.status}`);
+ }), g = E(() => `eli-cartao--${e.status}`);
function w() {
t("clicar", e.status);
}
return {
rotuloStatus: c,
- corStatus: y,
- classeStatus: v,
+ corStatus: $,
+ classeStatus: g,
onClick: w
};
}
-}), rt = { class: "eli-cartao__titulo-texto" }, nt = { class: "eli-cartao__status" };
-function ot(e, t, c, y, v, w) {
+}), nt = { class: "eli-cartao__titulo-texto" }, ot = { class: "eli-cartao__status" };
+function lt(e, t, c, $, g, w) {
const d = te("EliBadge");
- return k(), H(ve, F({
+ return B(), H(ge, F({
class: ["eli-cartao", e.classeStatus],
variant: e.variant
}, e.$attrs), {
default: D(() => [
- $(ge, { class: "eli-cartao__titulo" }, {
+ y(ve, { class: "eli-cartao__titulo" }, {
default: D(() => [
- ae("div", rt, [
+ ae("div", nt, [
W(e.$slots, "titulo", {}, () => [
- Q($e(e.titulo), 1)
+ Q(ye(e.titulo), 1)
], !0)
]),
- ae("div", nt, [
- $(d, {
+ ae("div", ot, [
+ y(d, {
badge: e.rotuloStatus,
radius: "pill",
color: e.corStatus
@@ -638,13 +647,13 @@ function ot(e, t, c, y, v, w) {
]),
_: 3
}),
- $(he, { class: "eli-cartao__conteudo" }, {
+ y(he, { class: "eli-cartao__conteudo" }, {
default: D(() => [
W(e.$slots, "default", {}, void 0, !0)
]),
_: 3
}),
- e.$slots.acoes ? (k(), H(be, {
+ e.$slots.acoes ? (B(), H(be, {
key: 0,
class: "eli-cartao__acoes"
}, {
@@ -657,17 +666,17 @@ function ot(e, t, c, y, v, w) {
_: 3
}, 16, ["variant", "class"]);
}
-const lt = /* @__PURE__ */ J(at, [["render", ot], ["__scopeId", "data-v-6c492bd9"]]);
-function st(e) {
+const st = /* @__PURE__ */ J(rt, [["render", lt], ["__scopeId", "data-v-6c492bd9"]]);
+function it(e) {
return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;
}
-var re = { exports: {} }, it = re.exports, ce;
-function ut() {
+var re = { exports: {} }, ut = re.exports, ce;
+function dt() {
return ce || (ce = 1, (function(e, t) {
- (function(c, y) {
- e.exports = y();
- })(it, (function() {
- var c = 1e3, y = 6e4, v = 36e5, w = "millisecond", d = "second", f = "minute", I = "hour", l = "day", Y = "week", V = "month", L = "quarter", g = "year", T = "date", h = "Invalid Date", Me = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/, we = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g, De = { name: "en", weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), ordinal: function(s) {
+ (function(c, $) {
+ e.exports = $();
+ })(ut, (function() {
+ var c = 1e3, $ = 6e4, g = 36e5, w = "millisecond", d = "second", f = "minute", I = "hour", l = "day", Y = "week", V = "month", L = "quarter", h = "year", T = "date", v = "Invalid Date", we = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/, De = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g, ke = { name: "en", weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), ordinal: function(s) {
var n = ["th", "st", "nd", "rd"], a = s % 100;
return "[" + s + (n[(a - 20) % 10] || n[a] || n[0]) + "]";
} }, ne = function(s, n, a) {
@@ -683,11 +692,11 @@ function ut() {
}, a: function(s) {
return s < 0 ? Math.ceil(s) || 0 : Math.floor(s);
}, p: function(s) {
- return { M: V, y: g, w: Y, d: l, D: T, h: I, m: f, s: d, ms: w, Q: L }[s] || String(s || "").toLowerCase().replace(/s$/, "");
+ return { M: V, y: h, w: Y, d: l, D: T, h: I, m: f, s: d, ms: w, Q: L }[s] || String(s || "").toLowerCase().replace(/s$/, "");
}, u: function(s) {
return s === void 0;
} }, q = "en", P = {};
- P[q] = De;
+ P[q] = ke;
var ie = "$isDayjsObject", oe = function(s) {
return s instanceof _ || !(!s || !s[ie]);
}, K = function s(n, a, o) {
@@ -723,7 +732,7 @@ function ut() {
if (m.u(r)) return /* @__PURE__ */ new Date();
if (r instanceof Date) return new Date(r);
if (typeof r == "string" && !/Z$/i.test(r)) {
- var u = r.match(Me);
+ var u = r.match(we);
if (u) {
var p = u[2] - 1 || 0, b = (u[7] || "0").substring(0, 3);
return i ? new Date(Date.UTC(u[1], p, u[3] || 1, u[4] || 0, u[5] || 0, u[6] || 0, b)) : new Date(u[1], p, u[3] || 1, u[4] || 0, u[5] || 0, u[6] || 0, b);
@@ -737,7 +746,7 @@ function ut() {
}, n.$utils = function() {
return m;
}, n.isValid = function() {
- return this.$d.toString() !== h;
+ return this.$d.toString() !== v;
}, n.isSame = function(a, o) {
var r = S(a);
return this.startOf(o) <= r && r <= this.endOf(o);
@@ -757,15 +766,15 @@ function ut() {
return i ? A : A.endOf(l);
}, b = function(N, O) {
return m.w(r.toDate()[N].apply(r.toDate("s"), (i ? [0, 0, 0, 0] : [23, 59, 59, 999]).slice(O)), r);
- }, M = this.$W, B = this.$M, U = this.$D, z = "set" + (this.$u ? "UTC" : "");
+ }, M = this.$W, k = this.$M, U = this.$D, z = "set" + (this.$u ? "UTC" : "");
switch (u) {
- case g:
+ case h:
return i ? p(1, 0) : p(31, 11);
case V:
- return i ? p(1, B) : p(0, B + 1);
+ return i ? p(1, k) : p(0, k + 1);
case Y:
var j = this.$locale().weekStart || 0, Z = (M < j ? M + 7 : M) - j;
- return p(i ? U - Z : U + (6 - Z), B);
+ return p(i ? U - Z : U + (6 - Z), k);
case l:
case T:
return b(z + "Hours", 0);
@@ -781,8 +790,8 @@ function ut() {
}, n.endOf = function(a) {
return this.startOf(a, !1);
}, n.$set = function(a, o) {
- var r, i = m.p(a), u = "set" + (this.$u ? "UTC" : ""), p = (r = {}, r[l] = u + "Date", r[T] = u + "Date", r[V] = u + "Month", r[g] = u + "FullYear", r[I] = u + "Hours", r[f] = u + "Minutes", r[d] = u + "Seconds", r[w] = u + "Milliseconds", r)[i], b = i === l ? this.$D + (o - this.$W) : o;
- if (i === V || i === g) {
+ var r, i = m.p(a), u = "set" + (this.$u ? "UTC" : ""), p = (r = {}, r[l] = u + "Date", r[T] = u + "Date", r[V] = u + "Month", r[h] = u + "FullYear", r[I] = u + "Hours", r[f] = u + "Minutes", r[d] = u + "Seconds", r[w] = u + "Milliseconds", r)[i], b = i === l ? this.$D + (o - this.$W) : o;
+ if (i === V || i === h) {
var M = this.clone().set(T, 1);
M.$d[p](b), M.init(), this.$d = M.set(T, Math.min(this.$D, M.daysInMonth())).$d;
} else p && this.$d[p](b);
@@ -794,22 +803,22 @@ function ut() {
}, n.add = function(a, o) {
var r, i = this;
a = Number(a);
- var u = m.p(o), p = function(B) {
+ var u = m.p(o), p = function(k) {
var U = S(i);
- return m.w(U.date(U.date() + Math.round(B * a)), i);
+ return m.w(U.date(U.date() + Math.round(k * a)), i);
};
if (u === V) return this.set(V, this.$M + a);
- if (u === g) return this.set(g, this.$y + a);
+ if (u === h) return this.set(h, this.$y + a);
if (u === l) return p(1);
if (u === Y) return p(7);
- var b = (r = {}, r[f] = y, r[I] = v, r[d] = c, r)[u] || 1, M = this.$d.getTime() + a * b;
+ var b = (r = {}, r[f] = $, r[I] = g, r[d] = c, r)[u] || 1, M = this.$d.getTime() + a * b;
return m.w(M, this);
}, n.subtract = function(a, o) {
return this.add(-1 * a, o);
}, n.format = function(a) {
var o = this, r = this.$locale();
- if (!this.isValid()) return r.invalidDate || h;
- var i = a || "YYYY-MM-DDTHH:mm:ssZ", u = m.z(this), p = this.$H, b = this.$m, M = this.$M, B = r.weekdays, U = r.months, z = r.meridiem, j = function(O, A, X, x) {
+ if (!this.isValid()) return r.invalidDate || v;
+ var i = a || "YYYY-MM-DDTHH:mm:ssZ", u = m.z(this), p = this.$H, b = this.$m, M = this.$M, k = r.weekdays, U = r.months, z = r.meridiem, j = function(O, A, X, x) {
return O && (O[A] || O(o, i)) || X[A].slice(0, x);
}, Z = function(O) {
return m.s(p % 12 || 12, O, "0");
@@ -817,7 +826,7 @@ function ut() {
var x = O < 12 ? "AM" : "PM";
return X ? x.toLowerCase() : x;
};
- return i.replace(we, (function(O, A) {
+ return i.replace(De, (function(O, A) {
return A || (function(X) {
switch (X) {
case "YY":
@@ -839,11 +848,11 @@ function ut() {
case "d":
return String(o.$W);
case "dd":
- return j(r.weekdaysMin, o.$W, B, 2);
+ return j(r.weekdaysMin, o.$W, k, 2);
case "ddd":
- return j(r.weekdaysShort, o.$W, B, 3);
+ return j(r.weekdaysShort, o.$W, k, 3);
case "dddd":
- return B[o.$W];
+ return k[o.$W];
case "H":
return String(p);
case "HH":
@@ -875,11 +884,11 @@ function ut() {
}, n.utcOffset = function() {
return 15 * -Math.round(this.$d.getTimezoneOffset() / 15);
}, n.diff = function(a, o, r) {
- var i, u = this, p = m.p(o), b = S(a), M = (b.utcOffset() - this.utcOffset()) * y, B = this - b, U = function() {
+ var i, u = this, p = m.p(o), b = S(a), M = (b.utcOffset() - this.utcOffset()) * $, k = this - b, U = function() {
return m.m(u, b);
};
switch (p) {
- case g:
+ case h:
i = U() / 12;
break;
case V:
@@ -889,22 +898,22 @@ function ut() {
i = U() / 3;
break;
case Y:
- i = (B - M) / 6048e5;
+ i = (k - M) / 6048e5;
break;
case l:
- i = (B - M) / 864e5;
+ i = (k - M) / 864e5;
break;
case I:
- i = B / v;
+ i = k / g;
break;
case f:
- i = B / y;
+ i = k / $;
break;
case d:
- i = B / c;
+ i = k / c;
break;
default:
- i = B;
+ i = k;
}
return r ? i : m.a(i);
}, n.daysInMonth = function() {
@@ -927,7 +936,7 @@ function ut() {
return this.$d.toUTCString();
}, s;
})(), ue = _.prototype;
- return S.prototype = ue, [["$ms", w], ["$s", d], ["$m", f], ["$H", I], ["$W", l], ["$M", V], ["$y", g], ["$D", T]].forEach((function(s) {
+ return S.prototype = ue, [["$ms", w], ["$s", d], ["$m", f], ["$H", I], ["$W", l], ["$M", V], ["$y", h], ["$D", T]].forEach((function(s) {
ue[s[1]] = function(n) {
return this.$g(n, s[0], s[1]);
};
@@ -939,8 +948,8 @@ function ut() {
}));
})(re)), re.exports;
}
-var dt = ut();
-const ee = /* @__PURE__ */ st(dt), ft = R({
+var ft = dt();
+const ee = /* @__PURE__ */ it(ft), mt = R({
name: "EliDataHora",
inheritAttrs: !1,
props: {
@@ -1040,17 +1049,17 @@ const ee = /* @__PURE__ */ st(dt), ft = R({
desfoco: () => !0
},
setup(e, { emit: t, attrs: c }) {
- const y = E(
+ const $ = E(
() => e.modo === "data" ? "date" : "datetime-local"
);
- function v(l) {
+ function g(l) {
return e.modo === "data" ? ee(l).format("YYYY-MM-DD") : ee(l).format("YYYY-MM-DDTHH:mm");
}
function w(l) {
return e.modo === "data" ? ee(`${l}T00:00`).format() : ee(l).format();
}
const d = E({
- get: () => e.modelValue ? v(e.modelValue) : "",
+ get: () => e.modelValue ? g(e.modelValue) : "",
set: (l) => {
const Y = l && l.length > 0 ? l : null;
if (!Y) {
@@ -1062,17 +1071,17 @@ const ee = /* @__PURE__ */ st(dt), ft = R({
}
}), f = E(() => {
if (e.min)
- return v(e.min);
+ return g(e.min);
}), I = E(() => {
if (e.max)
- return v(e.max);
+ return g(e.max);
});
- return { attrs: c, valor: d, emit: t, minLocal: f, maxLocal: I, tipoInput: y };
+ return { attrs: c, valor: d, emit: t, minLocal: f, maxLocal: I, tipoInput: $ };
}
-}), mt = { class: "eli-data-hora" };
-function ct(e, t, c, y, v, w) {
- return k(), G("div", mt, [
- $(ye, F({
+}), ct = { class: "eli-data-hora" };
+function pt(e, t, c, $, g, w) {
+ return B(), G("div", ct, [
+ y($e, F({
modelValue: e.valor,
"onUpdate:modelValue": t[0] || (t[0] = (d) => e.valor = d),
type: e.tipoInput,
@@ -1094,17 +1103,17 @@ function ct(e, t, c, y, v, w) {
}), null, 16, ["modelValue", "type", "label", "placeholder", "disabled", "clearable", "error", "error-messages", "hint", "persistent-hint", "density", "variant", "min", "max"])
]);
}
-const pt = /* @__PURE__ */ J(ft, [["render", ct], ["__scopeId", "data-v-71afabb6"]]), kt = {
+const yt = /* @__PURE__ */ J(mt, [["render", pt], ["__scopeId", "data-v-71afabb6"]]), Et = {
install(e) {
- e.component("EliOlaMundo", tt), e.component("EliBotao", Ve), e.component("EliBadge", le), e.component("EliInput", Se), e.component("EliCartao", lt), e.component("EliDataHora", pt);
+ e.component("EliOlaMundo", at), e.component("EliBotao", Ve), e.component("EliBadge", le), e.component("EliInput", Me), e.component("EliCartao", st), e.component("EliDataHora", yt);
}
};
export {
le as EliBadge,
Ve as EliBotao,
- lt as EliCartao,
- pt as EliDataHora,
- Se as EliInput,
- tt as EliOlaMundo,
- kt as default
+ st as EliCartao,
+ yt as EliDataHora,
+ Me as EliInput,
+ at as EliOlaMundo,
+ Et as default
};
diff --git a/dist/eli-vue.umd.js b/dist/eli-vue.umd.js
index 924487f..76c4df5 100644
--- a/dist/eli-vue.umd.js
+++ b/dist/eli-vue.umd.js
@@ -1 +1 @@
-(function(h,t){typeof exports=="object"&&typeof module<"u"?t(exports,require("vue"),require("vuetify/components/VBtn"),require("vuetify/components/VBadge"),require("vuetify/components/VCheckbox"),require("vuetify/components/VIcon"),require("vuetify/components/VRadio"),require("vuetify/components/VRadioGroup"),require("vuetify/components/VSelect"),require("vuetify/components/VTextField"),require("vuetify/components/VTextarea"),require("vuetify/components/VCard"),require("vuetify/components/VGrid")):typeof define=="function"&&define.amd?define(["exports","vue","vuetify/components/VBtn","vuetify/components/VBadge","vuetify/components/VCheckbox","vuetify/components/VIcon","vuetify/components/VRadio","vuetify/components/VRadioGroup","vuetify/components/VSelect","vuetify/components/VTextField","vuetify/components/VTextarea","vuetify/components/VCard","vuetify/components/VGrid"],t):(h=typeof globalThis<"u"?globalThis:h||self,t(h.eli_vue={},h.Vue,h.VBtn,h.VBadge,h.VCheckbox,h.VIcon,h.VRadio,h.VRadioGroup,h.VSelect,h.VTextField,h.VTextarea,h.VCard,h.VGrid))})(this,(function(h,t,se,de,ue,ce,fe,me,pe,ee,ye,I,he){"use strict";const $e=t.defineComponent({name:"EliBotao",inheritAttrs:!1,props:{color:{type:String,default:"primary"},variant:{type:String,default:"elevated"},size:{type:String,default:"default"},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1}}}),Y=(e,o)=>{const p=e.__vccOpts||e;for(const[$,V]of o)p[$]=V;return p};function Ve(e,o,p,$,V,M){return t.openBlock(),t.createBlock(se.VBtn,t.mergeProps({color:e.color,variant:e.variant,size:e.size,disabled:e.disabled,loading:e.loading},e.$attrs,{class:"text-none pt-1"}),{default:t.withCtx(()=>[t.renderSlot(e.$slots,"default")]),_:3},16,["color","variant","size","disabled","loading"])}const X=Y($e,[["render",Ve]]),te={suave:"4px",pill:"10px"},ge=t.defineComponent({name:"EliBadge",inheritAttrs:!1,props:{color:{type:String,default:"primary"},location:{type:String,default:"top right"},offsetX:{type:String,default:"0"},offsetY:{type:String,default:"0"},dot:{type:Boolean,default:!1},visible:{type:Boolean,default:!0},badge:{type:[String,Number],default:void 0},radius:{type:String,default:"suave"}},setup(e){const o=t.computed(()=>e.radius in te?te[e.radius]:e.radius),p=t.computed(()=>e.dot||e.badge!==void 0?e.visible:!1),$=t.computed(()=>({"--eli-badge-radius":o.value}));return{showBadge:p,badgeStyle:$}}});function be(e,o,p,$,V,M){return e.showBadge?(t.openBlock(),t.createBlock(de.VBadge,t.mergeProps({key:0,color:e.color},e.$attrs,{location:e.location,"offset-x":e.offsetX,"offset-y":e.offsetY,dot:e.dot,content:e.badge,style:e.badgeStyle}),{default:t.withCtx(()=>[t.renderSlot(e.$slots,"default",{},void 0,!0)]),_:3},16,["color","location","offset-x","offset-y","dot","content","style"])):t.renderSlot(e.$slots,"default",{key:1},void 0,!0)}const R=Y(ge,[["render",be],["__scopeId","data-v-de2fbf2f"]]);function Se(e){return e.replace(/\D+/g,"")}function Be(e){const o=Se(e);return o.length<=11?o.replace(/(\d{3})(\d)/,"$1.$2").replace(/(\d{3})(\d)/,"$1.$2").replace(/(\d{3})(\d{1,2})$/,"$1-$2").slice(0,14):o.replace(/^(\d{2})(\d)/,"$1.$2").replace(/^(\d{2})\.(\d{3})(\d)/,"$1.$2.$3").replace(/\.(\d{3})(\d)/,".$1/$2").replace(/(\d{4})(\d)/,"$1-$2").slice(0,18)}function we(e){return e.replace(/\D+/g,"")}function ke(e){const o=we(e);return o?o.length<=10?o.replace(/^(\d{2})(\d)/,"($1) $2").replace(/(\d{4})(\d)/,"$1-$2").slice(0,14):o.replace(/^(\d{2})(\d)/,"($1) $2").replace(/(\d{5})(\d)/,"$1-$2").slice(0,15):""}function Q(e){return e.replace(/\D+/g,"")}function Me(e){const o=e.replace(/[^\d,]/g,""),p=o.split(",");return p.length>2?p[0]+","+p.slice(1).join(""):o}function Ce(e){const o=Q(e);return o?(parseInt(o,10)/100).toFixed(2).replace(".",",").replace(/\B(?=(\d{3})+(?!\d))/g,"."):""}function De(e){const o=Q(e).slice(0,8);return o.length<=5?o:o.replace(/^(\d{5})(\d{1,3})$/,"$1-$2")}const Ee=t.defineComponent({name:"EliInput",inheritAttrs:!1,props:{modelValue:{type:[String,Number,Boolean,Array],default:""},type:{type:String,default:"text"},label:String,placeholder:String,disabled:Boolean,error:Boolean,errorMessages:{type:[String,Array],default:()=>[]},hint:String,persistentHint:Boolean,rows:{type:Number,default:4},options:{type:Array,default:()=>[]},clearable:Boolean,variant:{type:String,default:"outlined"},density:{type:String,default:"comfortable"},color:{type:String,default:"primary"},row:Boolean,showPasswordToggle:Boolean,multiple:Boolean,chips:Boolean},emits:["update:modelValue","change","focus","blur"],setup(e,{emit:o,attrs:p}){const $=t.ref(!1),V=t.ref(!1),M=t.computed({get:()=>e.modelValue,set:g=>{o("update:modelValue",g),o("change",g)}}),c=t.computed(()=>["text","password","email","search","url","telefone","cpfCnpj","numericoInteiro","numericoDecimal","numericoMoeda","cep"].includes(e.type)),f=t.computed(()=>e.type==="password"?V.value?"text":"password":"text"),D=t.computed(()=>{if(e.type==="telefone")return"tel";if(e.type.startsWith("numerico"))return"numeric"}),i=t.computed(()=>e.error?"error":$.value?e.color:void 0);function v(g){const N=g.target;let b=N.value;switch(e.type){case"numericoInteiro":b=Q(b);break;case"numericoDecimal":b=Me(b);break;case"numericoMoeda":b=Ce(b);break;case"telefone":b=ke(b);break;case"cpfCnpj":b=Be(b);break;case"cep":b=De(b);break}N.value=b,o("update:modelValue",b),o("change",b)}function B(){V.value=!V.value}const A=t.computed(()=>(e.options||[]).map(g=>{if(g&&typeof g=="object"&&"value"in g){const b=g.value;return{label:g.label??String(b),value:b,disabled:g.disabled}}const N=g;return{label:String(N),value:N}}));return{attrs:p,value:M,isTextLike:c,inputHtmlType:f,inputMode:D,internalColor:i,showPassword:V,togglePassword:B,onInput:v,onFocus:()=>o("focus"),onBlur:()=>o("blur"),computedItems:A}}}),Ne={class:"eli-input"},Te={key:4,class:"checkbox-group"};function ve(e,o,p,$,V,M){return t.openBlock(),t.createElementBlock("div",Ne,[e.isTextLike?(t.openBlock(),t.createBlock(ee.VTextField,t.mergeProps({key:0,modelValue:e.value,"onUpdate:modelValue":o[0]||(o[0]=c=>e.value=c),type:e.inputHtmlType,label:e.label,placeholder:e.placeholder,disabled:e.disabled,clearable:e.clearable&&e.type!=="password",error:e.error,"error-messages":e.errorMessages,hint:e.hint,"persistent-hint":e.persistentHint,density:e.density,variant:e.variant,color:e.internalColor,inputmode:e.inputMode},e.attrs,{onFocus:e.onFocus,onBlur:e.onBlur,onInput:e.onInput}),t.createSlots({_:2},[e.type==="password"&&e.showPasswordToggle?{name:"append-inner",fn:t.withCtx(()=>[t.createVNode(ce.VIcon,{class:"cursor-pointer",onClick:e.togglePassword},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(e.showPassword?"mdi-eye-off":"mdi-eye"),1)]),_:1},8,["onClick"])]),key:"0"}:void 0]),1040,["modelValue","type","label","placeholder","disabled","clearable","error","error-messages","hint","persistent-hint","density","variant","color","inputmode","onFocus","onBlur","onInput"])):e.type==="textarea"?(t.openBlock(),t.createBlock(ye.VTextarea,t.mergeProps({key:1,modelValue:e.value,"onUpdate:modelValue":o[1]||(o[1]=c=>e.value=c),label:e.label,rows:e.rows,density:e.density,variant:e.variant},e.attrs),null,16,["modelValue","label","rows","density","variant"])):e.type==="select"?(t.openBlock(),t.createBlock(pe.VSelect,t.mergeProps({key:2,modelValue:e.value,"onUpdate:modelValue":o[2]||(o[2]=c=>e.value=c),items:e.computedItems,label:e.label,placeholder:e.placeholder,multiple:e.multiple,chips:e.chips,clearable:e.clearable,disabled:e.disabled,density:e.density,variant:e.variant,"item-title":"label","item-value":"value",error:e.error,"error-messages":e.errorMessages},e.attrs,{onFocus:e.onFocus,onBlur:e.onBlur}),null,16,["modelValue","items","label","placeholder","multiple","chips","clearable","disabled","density","variant","error","error-messages","onFocus","onBlur"])):e.type==="radio"?(t.openBlock(),t.createBlock(me.VRadioGroup,{key:3,modelValue:e.value,"onUpdate:modelValue":o[3]||(o[3]=c=>e.value=c),row:e.row},{default:t.withCtx(()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.computedItems,c=>(t.openBlock(),t.createBlock(fe.VRadio,{key:String(c.value),label:c.label,value:c.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","row"])):e.type==="checkbox"?(t.openBlock(),t.createElementBlock("div",Te,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.computedItems,c=>(t.openBlock(),t.createBlock(ue.VCheckbox,{key:String(c.value),modelValue:e.value,"onUpdate:modelValue":o[4]||(o[4]=f=>e.value=f),label:c.label,value:c.value,density:e.density},null,8,["modelValue","label","value","density"]))),128))])):t.createCommentVNode("",!0)])}const K=Y(Ee,[["render",ve],["__scopeId","data-v-2f57f5c8"]]),Ie=t.defineComponent({name:"EliOlaMundo",components:{EliBotao:X,EliBadge:R,EliInput:K},setup(){const e=t.ref(""),o=t.ref([]),p=t.ref(""),$=t.ref(""),V=t.ref(""),M=t.ref(""),c=t.ref(""),f=t.ref(""),D=t.ref(""),i=t.ref(""),v=t.ref(""),B=t.ref(null),A=t.ref([]);return{nome:e,email:f,documento:v,estado:o,telefone:$,mensagem:D,senha:i,cor:B,habilidades:A,idade:V,altura:M,cep:p,valor:c}}}),Oe={class:"grid-example"};function Pe(e,o,p,$,V,M){const c=t.resolveComponent("EliBadge"),f=t.resolveComponent("EliInput"),D=t.resolveComponent("EliBotao");return t.openBlock(),t.createBlock(he.VContainer,null,{default:t.withCtx(()=>[t.createVNode(I.VCard,{class:"mx-auto",max_width:"400"},{default:t.withCtx(()=>[t.createVNode(I.VCardTitle,null,{default:t.withCtx(()=>[t.createVNode(c,{badge:"Novo","offset-x":"-15",location:"right center"},{default:t.withCtx(()=>[...o[14]||(o[14]=[t.createTextVNode(" Olá Mundo! ",-1)])]),_:1})]),_:1}),t.createVNode(I.VCardText,null,{default:t.withCtx(()=>[o[15]||(o[15]=t.createTextVNode(" Este é um componente de exemplo integrado com Vuetify. ",-1)),t.createElementVNode("div",Oe,[t.createVNode(f,{modelValue:e.nome,"onUpdate:modelValue":o[0]||(o[0]=i=>e.nome=i),label:"Nome",placeholder:"Digite o nome",density:"compact"},null,8,["modelValue"]),t.createVNode(f,{modelValue:e.idade,"onUpdate:modelValue":o[1]||(o[1]=i=>e.idade=i),type:"numericoInteiro",label:"Idade",density:"default"},null,8,["modelValue"]),t.createVNode(f,{modelValue:e.altura,"onUpdate:modelValue":o[2]||(o[2]=i=>e.altura=i),type:"numericoDecimal",label:"Altura",density:"comfortable"},null,8,["modelValue"]),t.createVNode(f,{modelValue:e.valor,"onUpdate:modelValue":o[3]||(o[3]=i=>e.valor=i),type:"numericoMoeda",label:"Valor"},null,8,["modelValue"]),t.createVNode(f,{modelValue:e.telefone,"onUpdate:modelValue":o[4]||(o[4]=i=>e.telefone=i),type:"telefone",label:"Telefone"},null,8,["modelValue"]),t.createVNode(f,{modelValue:e.cep,"onUpdate:modelValue":o[5]||(o[5]=i=>e.cep=i),type:"cep",label:"CEP",placeholder:"00000-000"},null,8,["modelValue"]),t.createVNode(f,{type:"select",label:"Estado",options:[{label:"São Paulo",value:"SP"},{label:"Rio de Janeiro",value:"RJ"}],modelValue:e.estado,"onUpdate:modelValue":o[6]||(o[6]=i=>e.estado=i),multiple:""},null,8,["modelValue"]),t.createVNode(f,{modelValue:e.documento,"onUpdate:modelValue":o[7]||(o[7]=i=>e.documento=i),type:"cpfCnpj",label:"CPF / CNPJ"},null,8,["modelValue"]),t.createVNode(f,{modelValue:e.email,"onUpdate:modelValue":o[8]||(o[8]=i=>e.email=i),label:"Email",placeholder:"email@exemplo.com"},null,8,["modelValue"]),t.createVNode(f,{modelValue:e.senha,"onUpdate:modelValue":o[9]||(o[9]=i=>e.senha=i),label:"Senha",type:"password",showPasswordToggle:!0,placeholder:"Digite sua senha"},null,8,["modelValue"]),t.createVNode(f,{type:"textarea",modelValue:e.mensagem,"onUpdate:modelValue":o[10]||(o[10]=i=>e.mensagem=i),label:"Mensagem",rows:5},null,8,["modelValue"]),t.createVNode(f,{type:"radio",modelValue:e.cor,"onUpdate:modelValue":o[11]||(o[11]=i=>e.cor=i),label:"Cor favorita",options:[{label:"Azul",value:"azul"},{label:"Verde",value:"verde"}]},null,8,["modelValue"]),t.createVNode(f,{type:"checkbox",modelValue:e.habilidades,"onUpdate:modelValue":o[12]||(o[12]=i=>e.habilidades=i),options:[{label:"Vue",value:"vue"},{label:"React",value:"react"}]},null,8,["modelValue"]),t.createVNode(f,{modelValue:e.nome,"onUpdate:modelValue":o[13]||(o[13]=i=>e.nome=i),label:"Nome",error:!0,"error-messages":["Obrigatório"]},null,8,["modelValue"])])]),_:1}),t.createVNode(I.VCardActions,null,{default:t.withCtx(()=>[t.createVNode(D,{color:"primary",variant:"elevated",block:""},{default:t.withCtx(()=>[...o[16]||(o[16]=[t.createTextVNode(" Botão Vuetify ",-1)])]),_:1})]),_:1})]),_:1})]),_:1})}const oe=Y(Ie,[["render",Pe]]),Ue=t.defineComponent({name:"EliCartao",components:{EliBadge:R},inheritAttrs:!1,props:{titulo:{type:String,default:""},status:{type:String,required:!0},variant:{type:String,default:"outlined"}},emits:{clicar:e=>!0},setup(e,{emit:o}){const p=t.computed(()=>e.status),$=t.computed(()=>{switch(e.status){case"novo":return"primary";case"rascunho":return"secondary";case"vendido":return"success";case"cancelado":return"error"}}),V=t.computed(()=>`eli-cartao--${e.status}`);function M(){o("clicar",e.status)}return{rotuloStatus:p,corStatus:$,classeStatus:V,onClick:M}}}),He={class:"eli-cartao__titulo-texto"},Ye={class:"eli-cartao__status"};function Ae(e,o,p,$,V,M){const c=t.resolveComponent("EliBadge");return t.openBlock(),t.createBlock(I.VCard,t.mergeProps({class:["eli-cartao",e.classeStatus],variant:e.variant},e.$attrs),{default:t.withCtx(()=>[t.createVNode(I.VCardTitle,{class:"eli-cartao__titulo"},{default:t.withCtx(()=>[t.createElementVNode("div",He,[t.renderSlot(e.$slots,"titulo",{},()=>[t.createTextVNode(t.toDisplayString(e.titulo),1)],!0)]),t.createElementVNode("div",Ye,[t.createVNode(c,{badge:e.rotuloStatus,radius:"pill",color:e.corStatus},{default:t.withCtx(()=>[...o[0]||(o[0]=[t.createElementVNode("span",null,null,-1)])]),_:1},8,["badge","color"])])]),_:3}),t.createVNode(I.VCardText,{class:"eli-cartao__conteudo"},{default:t.withCtx(()=>[t.renderSlot(e.$slots,"default",{},void 0,!0)]),_:3}),e.$slots.acoes?(t.openBlock(),t.createBlock(I.VCardActions,{key:0,class:"eli-cartao__acoes"},{default:t.withCtx(()=>[t.renderSlot(e.$slots,"acoes",{},void 0,!0)]),_:3})):t.createCommentVNode("",!0)]),_:3},16,["variant","class"])}const ne=Y(Ue,[["render",Ae],["__scopeId","data-v-6c492bd9"]]);function je(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var z={exports:{}},Fe=z.exports,re;function Le(){return re||(re=1,(function(e,o){(function(p,$){e.exports=$()})(Fe,(function(){var p=1e3,$=6e4,V=36e5,M="millisecond",c="second",f="minute",D="hour",i="day",v="week",B="month",A="quarter",g="year",N="date",b="Invalid Date",Je=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,Ze=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,Xe={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(s){var a=["th","st","nd","rd"],n=s%100;return"["+s+(a[(n-20)%10]||a[n]||a[0])+"]"}},x=function(s,a,n){var l=String(s);return!l||l.length>=a?s:""+Array(a+1-l.length).join(n)+s},Qe={s:x,z:function(s){var a=-s.utcOffset(),n=Math.abs(a),l=Math.floor(n/60),r=n%60;return(a<=0?"+":"-")+x(l,2,"0")+":"+x(r,2,"0")},m:function s(a,n){if(a.date()1)return s(u[0])}else{var y=a.name;P[y]=a,r=y}return!l&&r&&(F=r),r||!l&&F},w=function(s,a){if(_(s))return s.clone();var n=typeof a=="object"?a:{};return n.date=s,n.args=arguments,new J(n)},m=Qe;m.l=G,m.i=_,m.w=function(s,a){return w(s,{locale:a.$L,utc:a.$u,x:a.$x,$offset:a.$offset})};var J=(function(){function s(n){this.$L=G(n.locale,null,!0),this.parse(n),this.$x=this.$x||n.x||{},this[le]=!0}var a=s.prototype;return a.parse=function(n){this.$d=(function(l){var r=l.date,d=l.utc;if(r===null)return new Date(NaN);if(m.u(r))return new Date;if(r instanceof Date)return new Date(r);if(typeof r=="string"&&!/Z$/i.test(r)){var u=r.match(Je);if(u){var y=u[2]-1||0,S=(u[7]||"0").substring(0,3);return d?new Date(Date.UTC(u[1],y,u[3]||1,u[4]||0,u[5]||0,u[6]||0,S)):new Date(u[1],y,u[3]||1,u[4]||0,u[5]||0,u[6]||0,S)}}return new Date(r)})(n),this.init()},a.init=function(){var n=this.$d;this.$y=n.getFullYear(),this.$M=n.getMonth(),this.$D=n.getDate(),this.$W=n.getDay(),this.$H=n.getHours(),this.$m=n.getMinutes(),this.$s=n.getSeconds(),this.$ms=n.getMilliseconds()},a.$utils=function(){return m},a.isValid=function(){return this.$d.toString()!==b},a.isSame=function(n,l){var r=w(n);return this.startOf(l)<=r&&r<=this.endOf(l)},a.isAfter=function(n,l){return w(n)[]},dica:{type:String,default:""},dicaPersistente:{type:Boolean,default:!1},densidade:{type:String,default:"comfortable"},variante:{type:String,default:"outlined"},min:{type:String,default:void 0},max:{type:String,default:void 0}},emits:{"update:modelValue":e=>!0,alterar:e=>!0,foco:()=>!0,desfoco:()=>!0},setup(e,{emit:o,attrs:p}){const $=t.computed(()=>e.modo==="data"?"date":"datetime-local");function V(i){return e.modo==="data"?W(i).format("YYYY-MM-DD"):W(i).format("YYYY-MM-DDTHH:mm")}function M(i){return e.modo==="data"?W(`${i}T00:00`).format():W(i).format()}const c=t.computed({get:()=>e.modelValue?V(e.modelValue):"",set:i=>{const v=i&&i.length>0?i:null;if(!v){o("update:modelValue",null),o("alterar",null);return}const B=M(v);o("update:modelValue",B),o("alterar",B)}}),f=t.computed(()=>{if(e.min)return V(e.min)}),D=t.computed(()=>{if(e.max)return V(e.max)});return{attrs:p,valor:c,emit:o,minLocal:f,maxLocal:D,tipoInput:$}}}),ze={class:"eli-data-hora"};function We(e,o,p,$,V,M){return t.openBlock(),t.createElementBlock("div",ze,[t.createVNode(ee.VTextField,t.mergeProps({modelValue:e.valor,"onUpdate:modelValue":o[0]||(o[0]=c=>e.valor=c),type:e.tipoInput,label:e.rotulo,placeholder:e.placeholder,disabled:e.desabilitado,clearable:e.limpavel,error:e.erro,"error-messages":e.mensagensErro,hint:e.dica,"persistent-hint":e.dicaPersistente,density:e.densidade,variant:e.variante,min:e.minLocal,max:e.maxLocal},e.attrs,{onFocus:o[1]||(o[1]=c=>e.emit("foco")),onBlur:o[2]||(o[2]=c=>e.emit("desfoco"))}),null,16,["modelValue","type","label","placeholder","disabled","clearable","error","error-messages","hint","persistent-hint","density","variant","min","max"])])}const ae=Y(Re,[["render",We],["__scopeId","data-v-71afabb6"]]),Ge={install(e){e.component("EliOlaMundo",oe),e.component("EliBotao",X),e.component("EliBadge",R),e.component("EliInput",K),e.component("EliCartao",ne),e.component("EliDataHora",ae)}};h.EliBadge=R,h.EliBotao=X,h.EliCartao=ne,h.EliDataHora=ae,h.EliInput=K,h.EliOlaMundo=oe,h.default=Ge,Object.defineProperties(h,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
+(function(h,t){typeof exports=="object"&&typeof module<"u"?t(exports,require("vue"),require("vuetify/components/VBtn"),require("vuetify/components/VBadge"),require("vuetify/components/VCheckbox"),require("vuetify/components/VIcon"),require("vuetify/components/VRadio"),require("vuetify/components/VRadioGroup"),require("vuetify/components/VSelect"),require("vuetify/components/VTextField"),require("vuetify/components/VTextarea"),require("vuetify/components/VCard"),require("vuetify/components/VGrid")):typeof define=="function"&&define.amd?define(["exports","vue","vuetify/components/VBtn","vuetify/components/VBadge","vuetify/components/VCheckbox","vuetify/components/VIcon","vuetify/components/VRadio","vuetify/components/VRadioGroup","vuetify/components/VSelect","vuetify/components/VTextField","vuetify/components/VTextarea","vuetify/components/VCard","vuetify/components/VGrid"],t):(h=typeof globalThis<"u"?globalThis:h||self,t(h.eli_vue={},h.Vue,h.VBtn,h.VBadge,h.VCheckbox,h.VIcon,h.VRadio,h.VRadioGroup,h.VSelect,h.VTextField,h.VTextarea,h.VCard,h.VGrid))})(this,(function(h,t,de,ue,ce,fe,me,pe,ye,ee,he,I,$e){"use strict";const ge=t.defineComponent({name:"EliBotao",inheritAttrs:!1,props:{color:{type:String,default:"primary"},variant:{type:String,default:"elevated"},size:{type:String,default:"default"},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1}}}),Y=(e,o)=>{const p=e.__vccOpts||e;for(const[$,g]of o)p[$]=g;return p};function Ve(e,o,p,$,g,M){return t.openBlock(),t.createBlock(de.VBtn,t.mergeProps({color:e.color,variant:e.variant,size:e.size,disabled:e.disabled,loading:e.loading},e.$attrs,{class:"text-none pt-1"}),{default:t.withCtx(()=>[t.renderSlot(e.$slots,"default")]),_:3},16,["color","variant","size","disabled","loading"])}const X=Y(ge,[["render",Ve]]),te={suave:"4px",pill:"10px"},be=t.defineComponent({name:"EliBadge",inheritAttrs:!1,props:{color:{type:String,default:"primary"},location:{type:String,default:"top right"},offsetX:{type:String,default:"0"},offsetY:{type:String,default:"0"},dot:{type:Boolean,default:!1},visible:{type:Boolean,default:!0},badge:{type:[String,Number],default:void 0},radius:{type:String,default:"suave"}},setup(e){const o=t.computed(()=>e.radius in te?te[e.radius]:e.radius),p=t.computed(()=>e.dot||e.badge!==void 0?e.visible:!1),$=t.computed(()=>({"--eli-badge-radius":o.value}));return{showBadge:p,badgeStyle:$}}});function Se(e,o,p,$,g,M){return e.showBadge?(t.openBlock(),t.createBlock(ue.VBadge,t.mergeProps({key:0,color:e.color},e.$attrs,{location:e.location,"offset-x":e.offsetX,"offset-y":e.offsetY,dot:e.dot,content:e.badge,style:e.badgeStyle}),{default:t.withCtx(()=>[t.renderSlot(e.$slots,"default",{},void 0,!0)]),_:3},16,["color","location","offset-x","offset-y","dot","content","style"])):t.renderSlot(e.$slots,"default",{key:1},void 0,!0)}const R=Y(be,[["render",Se],["__scopeId","data-v-de2fbf2f"]]);function Be(e){return e.replace(/\D+/g,"")}function ke(e){const o=Be(e);return o.length<=11?o.replace(/(\d{3})(\d)/,"$1.$2").replace(/(\d{3})(\d)/,"$1.$2").replace(/(\d{3})(\d{1,2})$/,"$1-$2").slice(0,14):o.replace(/^(\d{2})(\d)/,"$1.$2").replace(/^(\d{2})\.(\d{3})(\d)/,"$1.$2.$3").replace(/\.(\d{3})(\d)/,".$1/$2").replace(/(\d{4})(\d)/,"$1-$2").slice(0,18)}function we(e){return e.replace(/\D+/g,"")}function Me(e){const o=we(e);return o?o.length<=10?o.replace(/^(\d{2})(\d)/,"($1) $2").replace(/(\d{4})(\d)/,"$1-$2").slice(0,14):o.replace(/^(\d{2})(\d)/,"($1) $2").replace(/(\d{5})(\d)/,"$1-$2").slice(0,15):""}function Q(e){return e.replace(/\D+/g,"")}function oe(e){const o=e.replace(/[^\d,]/g,""),p=o.split(",");return p.length>2?p[0]+","+p.slice(1).join(""):o}function Ce(e){return oe(e.replace(/%/g,""))}function De(e){const o=Q(e);return o?(parseInt(o,10)/100).toFixed(2).replace(".",",").replace(/\B(?=(\d{3})+(?!\d))/g,"."):""}function Ee(e){const o=Q(e).slice(0,8);return o.length<=5?o:o.replace(/^(\d{5})(\d{1,3})$/,"$1-$2")}const Ne=t.defineComponent({name:"EliInput",inheritAttrs:!1,props:{modelValue:{type:[String,Number,Boolean,Array],default:""},type:{type:String,default:"text"},label:String,placeholder:String,disabled:Boolean,error:Boolean,errorMessages:{type:[String,Array],default:()=>[]},hint:String,persistentHint:Boolean,rows:{type:Number,default:4},options:{type:Array,default:()=>[]},clearable:Boolean,variant:{type:String,default:"outlined"},density:{type:String,default:"comfortable"},color:{type:String,default:"primary"},row:Boolean,showPasswordToggle:Boolean,multiple:Boolean,chips:Boolean},emits:["update:modelValue","change","focus","blur"],setup(e,{emit:o,attrs:p}){const $=t.ref(!1),g=t.ref(!1),M=t.computed({get:()=>e.modelValue,set:b=>{o("update:modelValue",b),o("change",b)}}),c=t.computed(()=>["text","password","email","search","url","telefone","cpfCnpj","numericoInteiro","numericoDecimal","numericoMoeda","porcentagem","cep"].includes(e.type)),f=t.computed(()=>e.type==="password"?g.value?"text":"password":"text"),D=t.computed(()=>{if(e.type==="telefone")return"tel";if(e.type==="porcentagem")return"decimal";if(e.type.startsWith("numerico"))return"numeric"}),i=t.computed(()=>e.error?"error":$.value?e.color:void 0);function v(b){const N=b.target;let V=N.value;switch(e.type){case"numericoInteiro":V=Q(V);break;case"numericoDecimal":V=oe(V);break;case"numericoMoeda":V=De(V);break;case"porcentagem":V=Ce(V);break;case"telefone":V=Me(V);break;case"cpfCnpj":V=ke(V);break;case"cep":V=Ee(V);break}N.value=V,o("update:modelValue",V),o("change",V)}function B(){g.value=!g.value}const A=t.computed(()=>(e.options||[]).map(b=>{if(b&&typeof b=="object"&&"value"in b){const V=b.value;return{label:b.label??String(V),value:V,disabled:b.disabled}}const N=b;return{label:String(N),value:N}}));return{attrs:p,value:M,isTextLike:c,inputHtmlType:f,inputMode:D,internalColor:i,showPassword:g,togglePassword:B,onInput:v,onFocus:()=>o("focus"),onBlur:()=>o("blur"),computedItems:A}}}),Te={class:"eli-input"},ve={key:4,class:"checkbox-group"};function Ie(e,o,p,$,g,M){return t.openBlock(),t.createElementBlock("div",Te,[e.isTextLike?(t.openBlock(),t.createBlock(ee.VTextField,t.mergeProps({key:0,modelValue:e.value,"onUpdate:modelValue":o[0]||(o[0]=c=>e.value=c),type:e.inputHtmlType,label:e.label,placeholder:e.placeholder,disabled:e.disabled,clearable:e.clearable&&e.type!=="password",error:e.error,"error-messages":e.errorMessages,hint:e.hint,"persistent-hint":e.persistentHint,density:e.density,variant:e.variant,color:e.internalColor,inputmode:e.inputMode,suffix:e.type==="porcentagem"?"%":void 0},e.attrs,{onFocus:e.onFocus,onBlur:e.onBlur,onInput:e.onInput}),t.createSlots({_:2},[e.type==="password"&&e.showPasswordToggle?{name:"append-inner",fn:t.withCtx(()=>[t.createVNode(fe.VIcon,{class:"cursor-pointer",onClick:e.togglePassword},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(e.showPassword?"mdi-eye-off":"mdi-eye"),1)]),_:1},8,["onClick"])]),key:"0"}:void 0]),1040,["modelValue","type","label","placeholder","disabled","clearable","error","error-messages","hint","persistent-hint","density","variant","color","inputmode","suffix","onFocus","onBlur","onInput"])):e.type==="textarea"?(t.openBlock(),t.createBlock(he.VTextarea,t.mergeProps({key:1,modelValue:e.value,"onUpdate:modelValue":o[1]||(o[1]=c=>e.value=c),label:e.label,rows:e.rows,density:e.density,variant:e.variant},e.attrs),null,16,["modelValue","label","rows","density","variant"])):e.type==="select"?(t.openBlock(),t.createBlock(ye.VSelect,t.mergeProps({key:2,modelValue:e.value,"onUpdate:modelValue":o[2]||(o[2]=c=>e.value=c),items:e.computedItems,label:e.label,placeholder:e.placeholder,multiple:e.multiple,chips:e.chips,clearable:e.clearable,disabled:e.disabled,density:e.density,variant:e.variant,"item-title":"label","item-value":"value",error:e.error,"error-messages":e.errorMessages},e.attrs,{onFocus:e.onFocus,onBlur:e.onBlur}),null,16,["modelValue","items","label","placeholder","multiple","chips","clearable","disabled","density","variant","error","error-messages","onFocus","onBlur"])):e.type==="radio"?(t.openBlock(),t.createBlock(pe.VRadioGroup,{key:3,modelValue:e.value,"onUpdate:modelValue":o[3]||(o[3]=c=>e.value=c),row:e.row},{default:t.withCtx(()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.computedItems,c=>(t.openBlock(),t.createBlock(me.VRadio,{key:String(c.value),label:c.label,value:c.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","row"])):e.type==="checkbox"?(t.openBlock(),t.createElementBlock("div",ve,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.computedItems,c=>(t.openBlock(),t.createBlock(ce.VCheckbox,{key:String(c.value),modelValue:e.value,"onUpdate:modelValue":o[4]||(o[4]=f=>e.value=f),label:c.label,value:c.value,density:e.density},null,8,["modelValue","label","value","density"]))),128))])):t.createCommentVNode("",!0)])}const K=Y(Ne,[["render",Ie],["__scopeId","data-v-756cb549"]]),Oe=t.defineComponent({name:"EliOlaMundo",components:{EliBotao:X,EliBadge:R,EliInput:K},setup(){const e=t.ref(""),o=t.ref([]),p=t.ref(""),$=t.ref(""),g=t.ref(""),M=t.ref(""),c=t.ref(""),f=t.ref(""),D=t.ref(""),i=t.ref(""),v=t.ref(""),B=t.ref(null),A=t.ref([]);return{nome:e,email:f,documento:v,estado:o,telefone:$,mensagem:D,senha:i,cor:B,habilidades:A,idade:g,altura:M,cep:p,valor:c}}}),Pe={class:"grid-example"};function Ue(e,o,p,$,g,M){const c=t.resolveComponent("EliBadge"),f=t.resolveComponent("EliInput"),D=t.resolveComponent("EliBotao");return t.openBlock(),t.createBlock($e.VContainer,null,{default:t.withCtx(()=>[t.createVNode(I.VCard,{class:"mx-auto",max_width:"400"},{default:t.withCtx(()=>[t.createVNode(I.VCardTitle,null,{default:t.withCtx(()=>[t.createVNode(c,{badge:"Novo","offset-x":"-15",location:"right center"},{default:t.withCtx(()=>[...o[14]||(o[14]=[t.createTextVNode(" Olá Mundo! ",-1)])]),_:1})]),_:1}),t.createVNode(I.VCardText,null,{default:t.withCtx(()=>[o[15]||(o[15]=t.createTextVNode(" Este é um componente de exemplo integrado com Vuetify. ",-1)),t.createElementVNode("div",Pe,[t.createVNode(f,{modelValue:e.nome,"onUpdate:modelValue":o[0]||(o[0]=i=>e.nome=i),label:"Nome",placeholder:"Digite o nome",density:"compact"},null,8,["modelValue"]),t.createVNode(f,{modelValue:e.idade,"onUpdate:modelValue":o[1]||(o[1]=i=>e.idade=i),type:"numericoInteiro",label:"Idade",density:"default"},null,8,["modelValue"]),t.createVNode(f,{modelValue:e.altura,"onUpdate:modelValue":o[2]||(o[2]=i=>e.altura=i),type:"numericoDecimal",label:"Altura",density:"comfortable"},null,8,["modelValue"]),t.createVNode(f,{modelValue:e.valor,"onUpdate:modelValue":o[3]||(o[3]=i=>e.valor=i),type:"numericoMoeda",label:"Valor"},null,8,["modelValue"]),t.createVNode(f,{modelValue:e.telefone,"onUpdate:modelValue":o[4]||(o[4]=i=>e.telefone=i),type:"telefone",label:"Telefone"},null,8,["modelValue"]),t.createVNode(f,{modelValue:e.cep,"onUpdate:modelValue":o[5]||(o[5]=i=>e.cep=i),type:"cep",label:"CEP",placeholder:"00000-000"},null,8,["modelValue"]),t.createVNode(f,{type:"select",label:"Estado",options:[{label:"São Paulo",value:"SP"},{label:"Rio de Janeiro",value:"RJ"}],modelValue:e.estado,"onUpdate:modelValue":o[6]||(o[6]=i=>e.estado=i),multiple:""},null,8,["modelValue"]),t.createVNode(f,{modelValue:e.documento,"onUpdate:modelValue":o[7]||(o[7]=i=>e.documento=i),type:"cpfCnpj",label:"CPF / CNPJ"},null,8,["modelValue"]),t.createVNode(f,{modelValue:e.email,"onUpdate:modelValue":o[8]||(o[8]=i=>e.email=i),label:"Email",placeholder:"email@exemplo.com"},null,8,["modelValue"]),t.createVNode(f,{modelValue:e.senha,"onUpdate:modelValue":o[9]||(o[9]=i=>e.senha=i),label:"Senha",type:"password",showPasswordToggle:!0,placeholder:"Digite sua senha"},null,8,["modelValue"]),t.createVNode(f,{type:"textarea",modelValue:e.mensagem,"onUpdate:modelValue":o[10]||(o[10]=i=>e.mensagem=i),label:"Mensagem",rows:5},null,8,["modelValue"]),t.createVNode(f,{type:"radio",modelValue:e.cor,"onUpdate:modelValue":o[11]||(o[11]=i=>e.cor=i),label:"Cor favorita",options:[{label:"Azul",value:"azul"},{label:"Verde",value:"verde"}]},null,8,["modelValue"]),t.createVNode(f,{type:"checkbox",modelValue:e.habilidades,"onUpdate:modelValue":o[12]||(o[12]=i=>e.habilidades=i),options:[{label:"Vue",value:"vue"},{label:"React",value:"react"}]},null,8,["modelValue"]),t.createVNode(f,{modelValue:e.nome,"onUpdate:modelValue":o[13]||(o[13]=i=>e.nome=i),label:"Nome",error:!0,"error-messages":["Obrigatório"]},null,8,["modelValue"])])]),_:1}),t.createVNode(I.VCardActions,null,{default:t.withCtx(()=>[t.createVNode(D,{color:"primary",variant:"elevated",block:""},{default:t.withCtx(()=>[...o[16]||(o[16]=[t.createTextVNode(" Botão Vuetify ",-1)])]),_:1})]),_:1})]),_:1})]),_:1})}const ne=Y(Oe,[["render",Ue]]),He=t.defineComponent({name:"EliCartao",components:{EliBadge:R},inheritAttrs:!1,props:{titulo:{type:String,default:""},status:{type:String,required:!0},variant:{type:String,default:"outlined"}},emits:{clicar:e=>!0},setup(e,{emit:o}){const p=t.computed(()=>e.status),$=t.computed(()=>{switch(e.status){case"novo":return"primary";case"rascunho":return"secondary";case"vendido":return"success";case"cancelado":return"error"}}),g=t.computed(()=>`eli-cartao--${e.status}`);function M(){o("clicar",e.status)}return{rotuloStatus:p,corStatus:$,classeStatus:g,onClick:M}}}),Ye={class:"eli-cartao__titulo-texto"},Ae={class:"eli-cartao__status"};function je(e,o,p,$,g,M){const c=t.resolveComponent("EliBadge");return t.openBlock(),t.createBlock(I.VCard,t.mergeProps({class:["eli-cartao",e.classeStatus],variant:e.variant},e.$attrs),{default:t.withCtx(()=>[t.createVNode(I.VCardTitle,{class:"eli-cartao__titulo"},{default:t.withCtx(()=>[t.createElementVNode("div",Ye,[t.renderSlot(e.$slots,"titulo",{},()=>[t.createTextVNode(t.toDisplayString(e.titulo),1)],!0)]),t.createElementVNode("div",Ae,[t.createVNode(c,{badge:e.rotuloStatus,radius:"pill",color:e.corStatus},{default:t.withCtx(()=>[...o[0]||(o[0]=[t.createElementVNode("span",null,null,-1)])]),_:1},8,["badge","color"])])]),_:3}),t.createVNode(I.VCardText,{class:"eli-cartao__conteudo"},{default:t.withCtx(()=>[t.renderSlot(e.$slots,"default",{},void 0,!0)]),_:3}),e.$slots.acoes?(t.openBlock(),t.createBlock(I.VCardActions,{key:0,class:"eli-cartao__acoes"},{default:t.withCtx(()=>[t.renderSlot(e.$slots,"acoes",{},void 0,!0)]),_:3})):t.createCommentVNode("",!0)]),_:3},16,["variant","class"])}const re=Y(He,[["render",je],["__scopeId","data-v-6c492bd9"]]);function Fe(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var z={exports:{}},Le=z.exports,ae;function qe(){return ae||(ae=1,(function(e,o){(function(p,$){e.exports=$()})(Le,(function(){var p=1e3,$=6e4,g=36e5,M="millisecond",c="second",f="minute",D="hour",i="day",v="week",B="month",A="quarter",b="year",N="date",V="Invalid Date",Ze=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,Xe=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,Qe={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(s){var a=["th","st","nd","rd"],n=s%100;return"["+s+(a[(n-20)%10]||a[n]||a[0])+"]"}},x=function(s,a,n){var l=String(s);return!l||l.length>=a?s:""+Array(a+1-l.length).join(n)+s},Ke={s:x,z:function(s){var a=-s.utcOffset(),n=Math.abs(a),l=Math.floor(n/60),r=n%60;return(a<=0?"+":"-")+x(l,2,"0")+":"+x(r,2,"0")},m:function s(a,n){if(a.date()1)return s(u[0])}else{var y=a.name;P[y]=a,r=y}return!l&&r&&(F=r),r||!l&&F},k=function(s,a){if(_(s))return s.clone();var n=typeof a=="object"?a:{};return n.date=s,n.args=arguments,new J(n)},m=Ke;m.l=G,m.i=_,m.w=function(s,a){return k(s,{locale:a.$L,utc:a.$u,x:a.$x,$offset:a.$offset})};var J=(function(){function s(n){this.$L=G(n.locale,null,!0),this.parse(n),this.$x=this.$x||n.x||{},this[ie]=!0}var a=s.prototype;return a.parse=function(n){this.$d=(function(l){var r=l.date,d=l.utc;if(r===null)return new Date(NaN);if(m.u(r))return new Date;if(r instanceof Date)return new Date(r);if(typeof r=="string"&&!/Z$/i.test(r)){var u=r.match(Ze);if(u){var y=u[2]-1||0,S=(u[7]||"0").substring(0,3);return d?new Date(Date.UTC(u[1],y,u[3]||1,u[4]||0,u[5]||0,u[6]||0,S)):new Date(u[1],y,u[3]||1,u[4]||0,u[5]||0,u[6]||0,S)}}return new Date(r)})(n),this.init()},a.init=function(){var n=this.$d;this.$y=n.getFullYear(),this.$M=n.getMonth(),this.$D=n.getDate(),this.$W=n.getDay(),this.$H=n.getHours(),this.$m=n.getMinutes(),this.$s=n.getSeconds(),this.$ms=n.getMilliseconds()},a.$utils=function(){return m},a.isValid=function(){return this.$d.toString()!==V},a.isSame=function(n,l){var r=k(n);return this.startOf(l)<=r&&r<=this.endOf(l)},a.isAfter=function(n,l){return k(n)[]},dica:{type:String,default:""},dicaPersistente:{type:Boolean,default:!1},densidade:{type:String,default:"comfortable"},variante:{type:String,default:"outlined"},min:{type:String,default:void 0},max:{type:String,default:void 0}},emits:{"update:modelValue":e=>!0,alterar:e=>!0,foco:()=>!0,desfoco:()=>!0},setup(e,{emit:o,attrs:p}){const $=t.computed(()=>e.modo==="data"?"date":"datetime-local");function g(i){return e.modo==="data"?W(i).format("YYYY-MM-DD"):W(i).format("YYYY-MM-DDTHH:mm")}function M(i){return e.modo==="data"?W(`${i}T00:00`).format():W(i).format()}const c=t.computed({get:()=>e.modelValue?g(e.modelValue):"",set:i=>{const v=i&&i.length>0?i:null;if(!v){o("update:modelValue",null),o("alterar",null);return}const B=M(v);o("update:modelValue",B),o("alterar",B)}}),f=t.computed(()=>{if(e.min)return g(e.min)}),D=t.computed(()=>{if(e.max)return g(e.max)});return{attrs:p,valor:c,emit:o,minLocal:f,maxLocal:D,tipoInput:$}}}),We={class:"eli-data-hora"};function Ge(e,o,p,$,g,M){return t.openBlock(),t.createElementBlock("div",We,[t.createVNode(ee.VTextField,t.mergeProps({modelValue:e.valor,"onUpdate:modelValue":o[0]||(o[0]=c=>e.valor=c),type:e.tipoInput,label:e.rotulo,placeholder:e.placeholder,disabled:e.desabilitado,clearable:e.limpavel,error:e.erro,"error-messages":e.mensagensErro,hint:e.dica,"persistent-hint":e.dicaPersistente,density:e.densidade,variant:e.variante,min:e.minLocal,max:e.maxLocal},e.attrs,{onFocus:o[1]||(o[1]=c=>e.emit("foco")),onBlur:o[2]||(o[2]=c=>e.emit("desfoco"))}),null,16,["modelValue","type","label","placeholder","disabled","clearable","error","error-messages","hint","persistent-hint","density","variant","min","max"])])}const le=Y(ze,[["render",Ge],["__scopeId","data-v-71afabb6"]]),Je={install(e){e.component("EliOlaMundo",ne),e.component("EliBotao",X),e.component("EliBadge",R),e.component("EliInput",K),e.component("EliCartao",re),e.component("EliDataHora",le)}};h.EliBadge=R,h.EliBotao=X,h.EliCartao=re,h.EliDataHora=le,h.EliInput=K,h.EliOlaMundo=ne,h.default=Je,Object.defineProperties(h,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
diff --git a/dist/types/componentes/campo/EliInput.vue.d.ts b/dist/types/componentes/campo/EliInput.vue.d.ts
index 5dcf77b..cf677bd 100644
--- a/dist/types/componentes/campo/EliInput.vue.d.ts
+++ b/dist/types/componentes/campo/EliInput.vue.d.ts
@@ -59,7 +59,7 @@ declare const __VLS_export: import("vue").DefineComponent;
isTextLike: import("vue").ComputedRef;
inputHtmlType: import("vue").ComputedRef<"text" | "password">;
- inputMode: import("vue").ComputedRef<"tel" | "numeric" | undefined>;
+ inputMode: import("vue").ComputedRef<"tel" | "decimal" | "numeric" | undefined>;
internalColor: import("vue").ComputedRef;
showPassword: import("vue").Ref;
togglePassword: () => void;
diff --git a/dist/types/componentes/campo/utils/numerico.d.ts b/dist/types/componentes/campo/utils/numerico.d.ts
index a23076b..34762f0 100644
--- a/dist/types/componentes/campo/utils/numerico.d.ts
+++ b/dist/types/componentes/campo/utils/numerico.d.ts
@@ -1,3 +1,9 @@
export declare function somenteNumeros(valor: string): string;
export declare function formatarDecimal(valor: string): string;
+/**
+ * Formatação para percentual:
+ * - remove '%' caso venha junto (ex: colar "10%")
+ * - mantém apenas dígitos e vírgula (no máximo uma)
+ */
+export declare function formatarPorcentagem(valor: string): string;
export declare function formatarMoeda(valor: string): string;
diff --git a/dist/types/componentes/ola_mundo/EliOlaMundo.vue.d.ts b/dist/types/componentes/ola_mundo/EliOlaMundo.vue.d.ts
index 150868b..bf4a466 100644
--- a/dist/types/componentes/ola_mundo/EliOlaMundo.vue.d.ts
+++ b/dist/types/componentes/ola_mundo/EliOlaMundo.vue.d.ts
@@ -195,7 +195,7 @@ declare const __VLS_export: import("vue").DefineComponent<{}, {
value: import("vue").WritableComputedRef;
isTextLike: import("vue").ComputedRef;
inputHtmlType: import("vue").ComputedRef<"text" | "password">;
- inputMode: import("vue").ComputedRef<"tel" | "numeric" | undefined>;
+ inputMode: import("vue").ComputedRef<"tel" | "decimal" | "numeric" | undefined>;
internalColor: import("vue").ComputedRef;
showPassword: import("vue").Ref;
togglePassword: () => void;
diff --git a/dist/types/tipos/campo.d.ts b/dist/types/tipos/campo.d.ts
index 4ea5a25..6f2ff8a 100644
--- a/dist/types/tipos/campo.d.ts
+++ b/dist/types/tipos/campo.d.ts
@@ -15,5 +15,5 @@ export type CampoOpcaoBruta = TValor | {
};
export type CampoVariante = "outlined" | "filled" | "plain" | "solo" | "solo-filled" | "solo-inverted" | "underlined";
export type CampoDensidade = "default" | "comfortable" | "compact";
-export type CampoTipoNumerico = "numericoInteiro" | "numericoDecimal" | "numericoMoeda";
+export type CampoTipoNumerico = "numericoInteiro" | "numericoDecimal" | "numericoMoeda" | "porcentagem";
export type CampoTipo = "text" | "password" | "email" | "search" | "url" | "textarea" | "radio" | "checkbox" | "telefone" | "cpfCnpj" | "cep" | "select" | CampoTipoNumerico;
diff --git a/package.json b/package.json
index 27cde77..5277513 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "eli-vue",
- "version": "0.1.15",
+ "version": "0.1.19",
"private": false,
"main": "./dist/eli-vue.umd.js",
"module": "./dist/eli-vue.es.js",
diff --git a/src/componentes/campo/EliInput.vue b/src/componentes/campo/EliInput.vue
index e1fc065..59ca01f 100644
--- a/src/componentes/campo/EliInput.vue
+++ b/src/componentes/campo/EliInput.vue
@@ -17,6 +17,7 @@
:variant="variant"
:color="internalColor"
:inputmode="inputMode"
+ :suffix="type === 'porcentagem' ? '%' : undefined"
v-bind="attrs"
@focus="onFocus"
@blur="onBlur"
@@ -110,7 +111,7 @@ import type {
} from "../../tipos";
import { formatarCpfCnpj } from "./utils/cpfCnpj";
import { formatTelefone } from "./utils/telefone";
-import { formatarDecimal, formatarMoeda, somenteNumeros } from "./utils/numerico"
+import { formatarDecimal, formatarMoeda, formatarPorcentagem, somenteNumeros } from "./utils/numerico"
import { formatarCep } from "./utils/cep";
export default defineComponent({
@@ -182,6 +183,7 @@ export default defineComponent({
"numericoInteiro",
"numericoDecimal",
"numericoMoeda",
+ "porcentagem",
"cep",
].includes(props.type)
);
@@ -196,6 +198,7 @@ export default defineComponent({
const inputMode = computed(() => {
if (props.type === "telefone") return "tel";
+ if (props.type === "porcentagem") return "decimal";
if (props.type.startsWith("numerico")) return "numeric";
return undefined;
});
@@ -221,6 +224,10 @@ export default defineComponent({
resultado = formatarMoeda(resultado);
break;
+ case "porcentagem":
+ resultado = formatarPorcentagem(resultado);
+ break;
+
case "telefone":
resultado = formatTelefone(resultado);
break;
diff --git a/src/componentes/campo/README.md b/src/componentes/campo/README.md
index 68d6856..6acd0a3 100644
--- a/src/componentes/campo/README.md
+++ b/src/componentes/campo/README.md
@@ -37,7 +37,7 @@ type Option = { label: string; value: ValorCampo; disabled?: boolean };
type InputVariant = 'outlined' | 'filled' | 'plain' | 'solo' | 'solo-filled' | 'solo-inverted' | 'underlined';
type Density = 'default' | 'comfortable' | 'compact';
-type TipoNumerico = 'numericoInteiro' | 'numericoDecimal' | 'numericoMoeda';
+type TipoNumerico = 'numericoInteiro' | 'numericoDecimal' | 'numericoMoeda' | 'porcentagem';
type InputType =
| 'text' | 'password' | 'email' | 'search' | 'url' | 'textarea'
@@ -103,6 +103,7 @@ type InputType =
* numericoInteiro — remove tudo que não for dígito.
* numericoDecimal — mantém separador decimal (aplica formatarDecimal).
* numericoMoeda — formata para moeda conforme util (formatarMoeda).
+* porcentagem — aplica formatação decimal e exibe sufixo `%` automaticamente.
* telefone — aplica máscara/format formatTelefone.
* cpfCnpj — aplica formatarCpfCnpj.
* cep — aplica formatarCep.
diff --git a/src/componentes/campo/utils/numerico.ts b/src/componentes/campo/utils/numerico.ts
index 45b30f7..5c2a3a6 100644
--- a/src/componentes/campo/utils/numerico.ts
+++ b/src/componentes/campo/utils/numerico.ts
@@ -8,6 +8,15 @@ export function formatarDecimal(valor: string) {
return partes.length > 2 ? partes[0] + "," + partes.slice(1).join("") : limpo;
}
+/**
+ * Formatação para percentual:
+ * - remove '%' caso venha junto (ex: colar "10%")
+ * - mantém apenas dígitos e vírgula (no máximo uma)
+ */
+export function formatarPorcentagem(valor: string) {
+ return formatarDecimal(valor.replace(/%/g, ""));
+}
+
export function formatarMoeda(valor: string) {
const numero = somenteNumeros(valor);
if (!numero) return "";
diff --git a/src/playground/campo.playground.vue b/src/playground/campo.playground.vue
index 8e838ea..9a3c9a5 100644
--- a/src/playground/campo.playground.vue
+++ b/src/playground/campo.playground.vue
@@ -9,6 +9,7 @@
+
([]);
const cor = ref(null);
@@ -76,6 +78,7 @@ export default defineComponent({
documento: documento.value,
idade: idade.value,
valor: valor.value,
+ taxa: taxa.value,
cep: cep.value,
estado: estado.value,
cor: cor.value,
@@ -92,6 +95,7 @@ export default defineComponent({
documento,
idade,
valor,
+ taxa,
cep,
estado,
cor,
diff --git a/src/tipos/campo.ts b/src/tipos/campo.ts
index 6cefc14..ea274b5 100644
--- a/src/tipos/campo.ts
+++ b/src/tipos/campo.ts
@@ -33,7 +33,8 @@ export type CampoDensidade = "default" | "comfortable" | "compact";
export type CampoTipoNumerico =
| "numericoInteiro"
| "numericoDecimal"
- | "numericoMoeda";
+ | "numericoMoeda"
+ | "porcentagem";
export type CampoTipo =
| "text"
@@ -49,4 +50,3 @@ export type CampoTipo =
| "cep"
| "select"
| CampoTipoNumerico;
-