import { defineComponent as N, createBlock as P, openBlock as m, mergeProps as oe, withCtx as z, renderSlot as ie, computed as A, ref as w, createElementBlock as k, createCommentVNode as J, createSlots as Le, createVNode as V, createTextVNode as pe, toDisplayString as Y, Fragment as K, renderList as ee, resolveComponent as H, createElementVNode as B, h as Ae, watch as le, withDirectives as He, withKeys as Ye, vModelText as Fe, normalizeStyle as ge, resolveDynamicComponent as ye, normalizeClass as se, withModifiers as De, Teleport as Re, onMounted as We, onBeforeUnmount as Je } from "vue";
import { VBtn as Ze } from "vuetify/components/VBtn";
import { VBadge as Xe } from "vuetify/components/VBadge";
import { VCheckbox as Ge } from "vuetify/components/VCheckbox";
import { VIcon as Ke } from "vuetify/components/VIcon";
import { VRadio as Qe } from "vuetify/components/VRadio";
import { VRadioGroup as xe } from "vuetify/components/VRadioGroup";
import { VSelect as ea } from "vuetify/components/VSelect";
import { VTextField as Pe } from "vuetify/components/VTextField";
import { VTextarea as aa } from "vuetify/components/VTextarea";
import { VCard as Te, VCardTitle as Oe, VCardText as qe, VCardActions as Ie } from "vuetify/components/VCard";
import { VContainer as ta } from "vuetify/components/VGrid";
const oa = N({
  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
    }
  }
}), j = (e, a) => {
  const s = e.__vccOpts || e;
  for (const [d, c] of a)
    s[d] = c;
  return s;
};
function ra(e, a, s, d, c, p) {
  return m(), P(Ze, oe({
    color: e.color,
    variant: e.variant,
    size: e.size,
    disabled: e.disabled,
    loading: e.loading
  }, e.$attrs, { class: "text-none pt-1" }), {
    default: z(() => [
      ie(e.$slots, "default")
    ]),
    _: 3
  }, 16, ["color", "variant", "size", "disabled", "loading"]);
}
const Ue = /* @__PURE__ */ j(oa, [["render", ra]]), Ee = {
  suave: "4px",
  pill: "10px"
}, na = N({
  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
    },
    /** 🔥 NOVO: controla só o radius */
    radius: {
      type: String,
      default: "suave"
    }
  },
  setup(e) {
    const a = A(() => e.radius in Ee ? Ee[e.radius] : e.radius), s = A(() => e.dot || e.badge !== void 0 ? e.visible : !1), d = A(() => ({
      "--eli-badge-radius": a.value
    }));
    return { showBadge: s, badgeStyle: d };
  }
});
function la(e, a, s, d, c, p) {
  return e.showBadge ? (m(), P(Xe, oe({
    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: z(() => [
      ie(e.$slots, "default", {}, void 0, !0)
    ]),
    _: 3
  }, 16, ["color", "location", "offset-x", "offset-y", "dot", "content", "style"])) : ie(e.$slots, "default", { key: 1 }, void 0, !0);
}
const Ce = /* @__PURE__ */ j(na, [["render", la], ["__scopeId", "data-v-de2fbf2f"]]);
function ia(e) {
  return e.replace(/\D+/g, "");
}
function sa(e) {
  const a = ia(e);
  return a.length <= 11 ? a.replace(/(\d{3})(\d)/, "$1.$2").replace(/(\d{3})(\d)/, "$1.$2").replace(/(\d{3})(\d{1,2})$/, "$1-$2").slice(0, 14) : a.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 ua(e) {
  return e.replace(/\D+/g, "");
}
function da(e) {
  const a = ua(e);
  return a ? a.length <= 10 ? a.replace(/^(\d{2})(\d)/, "($1) $2").replace(/(\d{4})(\d)/, "$1-$2").slice(0, 14) : a.replace(/^(\d{2})(\d)/, "($1) $2").replace(/(\d{5})(\d)/, "$1-$2").slice(0, 15) : "";
}
function Ve(e) {
  return e.replace(/\D+/g, "");
}
function Ne(e) {
  const a = e.replace(/[^\d,]/g, ""), s = a.split(",");
  return s.length > 2 ? s[0] + "," + s.slice(1).join("") : a;
}
function ca(e) {
  return Ne(e.replace(/%/g, ""));
}
function ma(e) {
  const a = Ve(e);
  return a ? (parseInt(a, 10) / 100).toFixed(2).replace(".", ",").replace(/\B(?=(\d{3})+(?!\d))/g, ".") : "";
}
function pa(e) {
  const a = Ve(e).slice(0, 8);
  return a.length <= 5 ? a : a.replace(/^(\d{5})(\d{1,3})$/, "$1-$2");
}
const fa = N({
  name: "EliInput",
  inheritAttrs: !1,
  props: {
    /**
     * Aceita valor simples (text-like) ou lista de valores (checkbox/select multiple).
     * O componente não converte tipos automaticamente: mantém o que receber.
     */
    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 },
    /**
     * Para select/radio/checkbox.
     * Aceita lista já normalizada ({ label, value }) ou valores primitivos.
     */
    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: a, attrs: s }) {
    const d = w(!1), c = w(!1), p = A({
      get: () => e.modelValue,
      set: ($) => {
        a("update:modelValue", $), a("change", $);
      }
    }), t = A(
      () => [
        "text",
        "password",
        "email",
        "search",
        "url",
        "telefone",
        "cpfCnpj",
        "numericoInteiro",
        "numericoDecimal",
        "numericoMoeda",
        "porcentagem",
        "cep"
      ].includes(e.type)
    ), i = A(
      () => e.type === "password" ? c.value ? "text" : "password" : "text"
    ), h = A(() => {
      if (e.type === "telefone") return "tel";
      if (e.type === "porcentagem") return "decimal";
      if (e.type.startsWith("numerico")) return "numeric";
    }), n = A(
      () => e.error ? "error" : d.value ? e.color : void 0
    );
    function g($) {
      const O = $.target;
      let M = O.value;
      switch (e.type) {
        case "numericoInteiro":
          M = Ve(M);
          break;
        case "numericoDecimal":
          M = Ne(M);
          break;
        case "numericoMoeda":
          M = ma(M);
          break;
        case "porcentagem":
          M = ca(M);
          break;
        case "telefone":
          M = da(M);
          break;
        case "cpfCnpj":
          M = sa(M);
          break;
        case "cep":
          M = pa(M);
          break;
      }
      O.value = M, a("update:modelValue", M), a("change", M);
    }
    function y() {
      c.value = !c.value;
    }
    const T = A(() => (e.options || []).map(($) => {
      if ($ && typeof $ == "object" && "value" in $) {
        const M = $.value;
        return {
          label: $.label ?? String(M),
          value: M,
          disabled: $.disabled
        };
      }
      const O = $;
      return { label: String(O), value: O };
    }));
    return {
      attrs: s,
      value: p,
      isTextLike: t,
      inputHtmlType: i,
      inputMode: h,
      internalColor: n,
      showPassword: c,
      togglePassword: y,
      onInput: g,
      onFocus: () => a("focus"),
      onBlur: () => a("blur"),
      computedItems: T
    };
  }
}), ba = { class: "eli-input" }, va = {
  key: 4,
  class: "checkbox-group"
};
function ha(e, a, s, d, c, p) {
  return m(), k("div", ba, [
    e.isTextLike ? (m(), P(Pe, oe({
      key: 0,
      modelValue: e.value,
      "onUpdate:modelValue": a[0] || (a[0] = (t) => e.value = t),
      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
    }), Le({ _: 2 }, [
      e.type === "password" && e.showPasswordToggle ? {
        name: "append-inner",
        fn: z(() => [
          V(Ke, {
            class: "cursor-pointer",
            onClick: e.togglePassword
          }, {
            default: z(() => [
              pe(Y(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" ? (m(), P(aa, oe({
      key: 1,
      modelValue: e.value,
      "onUpdate:modelValue": a[1] || (a[1] = (t) => e.value = t),
      label: e.label,
      rows: e.rows,
      density: e.density,
      variant: e.variant
    }, e.attrs), null, 16, ["modelValue", "label", "rows", "density", "variant"])) : e.type === "select" ? (m(), P(ea, oe({
      key: 2,
      modelValue: e.value,
      "onUpdate:modelValue": a[2] || (a[2] = (t) => e.value = t),
      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" ? (m(), P(xe, {
      key: 3,
      modelValue: e.value,
      "onUpdate:modelValue": a[3] || (a[3] = (t) => e.value = t),
      row: e.row
    }, {
      default: z(() => [
        (m(!0), k(K, null, ee(e.computedItems, (t) => (m(), P(Qe, {
          key: String(t.value),
          label: t.label,
          value: t.value
        }, null, 8, ["label", "value"]))), 128))
      ]),
      _: 1
    }, 8, ["modelValue", "row"])) : e.type === "checkbox" ? (m(), k("div", va, [
      (m(!0), k(K, null, ee(e.computedItems, (t) => (m(), P(Ge, {
        key: String(t.value),
        modelValue: e.value,
        "onUpdate:modelValue": a[4] || (a[4] = (i) => e.value = i),
        label: t.label,
        value: t.value,
        density: e.density
      }, null, 8, ["modelValue", "label", "value", "density"]))), 128))
    ])) : J("", !0)
  ]);
}
const je = /* @__PURE__ */ j(fa, [["render", ha], ["__scopeId", "data-v-756cb549"]]), ga = N({
  name: "EliOlaMundo",
  components: {
    EliBotao: Ue,
    EliBadge: Ce,
    EliInput: je
  },
  setup() {
    const e = w(""), a = w([]), s = w(""), d = w(""), c = w(""), p = w(""), t = w(""), i = w(""), h = w(""), n = w(""), g = w(""), y = w(null), T = w([]);
    return {
      nome: e,
      email: i,
      documento: g,
      estado: a,
      telefone: d,
      mensagem: h,
      senha: n,
      cor: y,
      habilidades: T,
      idade: c,
      altura: p,
      cep: s,
      valor: t
    };
  }
}), ya = { class: "grid-example" };
function $a(e, a, s, d, c, p) {
  const t = H("EliBadge"), i = H("EliInput"), h = H("EliBotao");
  return m(), P(ta, null, {
    default: z(() => [
      V(Te, {
        class: "mx-auto",
        max_width: "400"
      }, {
        default: z(() => [
          V(Oe, null, {
            default: z(() => [
              V(t, {
                badge: "Novo",
                "offset-x": "-15",
                location: "right center"
              }, {
                default: z(() => [...a[14] || (a[14] = [
                  pe(" Olá Mundo! ", -1)
                ])]),
                _: 1
              })
            ]),
            _: 1
          }),
          V(qe, null, {
            default: z(() => [
              a[15] || (a[15] = pe(" Este é um componente de exemplo integrado com Vuetify. ", -1)),
              B("div", ya, [
                V(i, {
                  modelValue: e.nome,
                  "onUpdate:modelValue": a[0] || (a[0] = (n) => e.nome = n),
                  label: "Nome",
                  placeholder: "Digite o nome",
                  density: "compact"
                }, null, 8, ["modelValue"]),
                V(i, {
                  modelValue: e.idade,
                  "onUpdate:modelValue": a[1] || (a[1] = (n) => e.idade = n),
                  type: "numericoInteiro",
                  label: "Idade",
                  density: "default"
                }, null, 8, ["modelValue"]),
                V(i, {
                  modelValue: e.altura,
                  "onUpdate:modelValue": a[2] || (a[2] = (n) => e.altura = n),
                  type: "numericoDecimal",
                  label: "Altura",
                  density: "comfortable"
                }, null, 8, ["modelValue"]),
                V(i, {
                  modelValue: e.valor,
                  "onUpdate:modelValue": a[3] || (a[3] = (n) => e.valor = n),
                  type: "numericoMoeda",
                  label: "Valor"
                }, null, 8, ["modelValue"]),
                V(i, {
                  modelValue: e.telefone,
                  "onUpdate:modelValue": a[4] || (a[4] = (n) => e.telefone = n),
                  type: "telefone",
                  label: "Telefone"
                }, null, 8, ["modelValue"]),
                V(i, {
                  modelValue: e.cep,
                  "onUpdate:modelValue": a[5] || (a[5] = (n) => e.cep = n),
                  type: "cep",
                  label: "CEP",
                  placeholder: "00000-000"
                }, null, 8, ["modelValue"]),
                V(i, {
                  type: "select",
                  label: "Estado",
                  options: [
                    { label: "São Paulo", value: "SP" },
                    { label: "Rio de Janeiro", value: "RJ" }
                  ],
                  modelValue: e.estado,
                  "onUpdate:modelValue": a[6] || (a[6] = (n) => e.estado = n),
                  multiple: ""
                }, null, 8, ["modelValue"]),
                V(i, {
                  modelValue: e.documento,
                  "onUpdate:modelValue": a[7] || (a[7] = (n) => e.documento = n),
                  type: "cpfCnpj",
                  label: "CPF / CNPJ"
                }, null, 8, ["modelValue"]),
                V(i, {
                  modelValue: e.email,
                  "onUpdate:modelValue": a[8] || (a[8] = (n) => e.email = n),
                  label: "Email",
                  placeholder: "email@exemplo.com"
                }, null, 8, ["modelValue"]),
                V(i, {
                  modelValue: e.senha,
                  "onUpdate:modelValue": a[9] || (a[9] = (n) => e.senha = n),
                  label: "Senha",
                  type: "password",
                  showPasswordToggle: !0,
                  placeholder: "Digite sua senha"
                }, null, 8, ["modelValue"]),
                V(i, {
                  type: "textarea",
                  modelValue: e.mensagem,
                  "onUpdate:modelValue": a[10] || (a[10] = (n) => e.mensagem = n),
                  label: "Mensagem",
                  rows: 5
                }, null, 8, ["modelValue"]),
                V(i, {
                  type: "radio",
                  modelValue: e.cor,
                  "onUpdate:modelValue": a[11] || (a[11] = (n) => e.cor = n),
                  label: "Cor favorita",
                  options: [
                    { label: "Azul", value: "azul" },
                    { label: "Verde", value: "verde" }
                  ]
                }, null, 8, ["modelValue"]),
                V(i, {
                  type: "checkbox",
                  modelValue: e.habilidades,
                  "onUpdate:modelValue": a[12] || (a[12] = (n) => e.habilidades = n),
                  options: [
                    { label: "Vue", value: "vue" },
                    { label: "React", value: "react" }
                  ]
                }, null, 8, ["modelValue"]),
                V(i, {
                  modelValue: e.nome,
                  "onUpdate:modelValue": a[13] || (a[13] = (n) => e.nome = n),
                  label: "Nome",
                  error: !0,
                  "error-messages": ["Obrigatório"]
                }, null, 8, ["modelValue"])
              ])
            ]),
            _: 1
          }),
          V(Ie, null, {
            default: z(() => [
              V(h, {
                color: "primary",
                variant: "elevated",
                block: ""
              }, {
                default: z(() => [...a[16] || (a[16] = [
                  pe(" Botão Vuetify ", -1)
                ])]),
                _: 1
              })
            ]),
            _: 1
          })
        ]),
        _: 1
      })
    ]),
    _: 1
  });
}
const ka = /* @__PURE__ */ j(ga, [["render", $a]]), Aa = N({
  name: "EliCartao",
  components: { EliBadge: Ce },
  inheritAttrs: !1,
  props: {
    /** Título de fallback caso o slot `titulo` não seja usado. */
    titulo: {
      type: String,
      default: ""
    },
    /**
     * Status semântico do cartão.
     * Usado para cor/label e para permitir filtros por status.
     */
    status: {
      type: String,
      required: !0
    },
    /** Variante visual do v-card (Vuetify). */
    variant: {
      type: String,
      default: "outlined"
    }
  },
  emits: {
    /** Emit opcional para padronizar clique no cartão. */
    clicar: (e) => !0
  },
  setup(e, { emit: a }) {
    const s = A(() => e.status), d = A(() => {
      switch (e.status) {
        case "novo":
          return "primary";
        case "rascunho":
          return "secondary";
        case "vendido":
          return "success";
        case "cancelado":
          return "error";
      }
    }), c = A(() => `eli-cartao--${e.status}`);
    function p() {
      a("clicar", e.status);
    }
    return {
      rotuloStatus: s,
      corStatus: d,
      classeStatus: c,
      onClick: p
    };
  }
}), Ca = { class: "eli-cartao__titulo-texto" }, Va = { class: "eli-cartao__status" };
function Ea(e, a, s, d, c, p) {
  const t = H("EliBadge");
  return m(), P(Te, oe({
    class: ["eli-cartao", e.classeStatus],
    variant: e.variant
  }, e.$attrs), {
    default: z(() => [
      V(Oe, { class: "eli-cartao__titulo" }, {
        default: z(() => [
          B("div", Ca, [
            ie(e.$slots, "titulo", {}, () => [
              pe(Y(e.titulo), 1)
            ], !0)
          ]),
          B("div", Va, [
            V(t, {
              badge: e.rotuloStatus,
              radius: "pill",
              color: e.corStatus
            }, {
              default: z(() => [...a[0] || (a[0] = [
                B("span", null, null, -1)
              ])]),
              _: 1
            }, 8, ["badge", "color"])
          ])
        ]),
        _: 3
      }),
      V(qe, { class: "eli-cartao__conteudo" }, {
        default: z(() => [
          ie(e.$slots, "default", {}, void 0, !0)
        ]),
        _: 3
      }),
      e.$slots.acoes ? (m(), P(Ie, {
        key: 0,
        class: "eli-cartao__acoes"
      }, {
        default: z(() => [
          ie(e.$slots, "acoes", {}, void 0, !0)
        ]),
        _: 3
      })) : J("", !0)
    ]),
    _: 3
  }, 16, ["variant", "class"]);
}
const Ma = /* @__PURE__ */ j(Aa, [["render", Ea], ["__scopeId", "data-v-6c492bd9"]]);
function _a(e) {
  return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;
}
var he = { exports: {} }, wa = he.exports, Me;
function Sa() {
  return Me || (Me = 1, (function(e, a) {
    (function(s, d) {
      e.exports = d();
    })(wa, (function() {
      var s = 1e3, d = 6e4, c = 36e5, p = "millisecond", t = "second", i = "minute", h = "hour", n = "day", g = "week", y = "month", T = "quarter", $ = "year", O = "date", M = "Invalid Date", Q = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/, x = /\[([^\]]+)]|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, L = { 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(f) {
        var o = ["th", "st", "nd", "rd"], r = f % 100;
        return "[" + f + (o[(r - 20) % 10] || o[r] || o[0]) + "]";
      } }, re = function(f, o, r) {
        var u = String(f);
        return !u || u.length >= o ? f : "" + Array(o + 1 - u.length).join(r) + f;
      }, ke = { s: re, z: function(f) {
        var o = -f.utcOffset(), r = Math.abs(o), u = Math.floor(r / 60), l = r % 60;
        return (o <= 0 ? "+" : "-") + re(u, 2, "0") + ":" + re(l, 2, "0");
      }, m: function f(o, r) {
        if (o.date() < r.date()) return -f(r, o);
        var u = 12 * (r.year() - o.year()) + (r.month() - o.month()), l = o.clone().add(u, y), v = r - l < 0, b = o.clone().add(u + (v ? -1 : 1), y);
        return +(-(u + (r - l) / (v ? l - b : b - l)) || 0);
      }, a: function(f) {
        return f < 0 ? Math.ceil(f) || 0 : Math.floor(f);
      }, p: function(f) {
        return { M: y, y: $, w: g, d: n, D: O, h, m: i, s: t, ms: p, Q: T }[f] || String(f || "").toLowerCase().replace(/s$/, "");
      }, u: function(f) {
        return f === void 0;
      } }, Z = "en", X = {};
      X[Z] = L;
      var ue = "$isDayjsObject", de = function(f) {
        return f instanceof ae || !(!f || !f[ue]);
      }, ne = function f(o, r, u) {
        var l;
        if (!o) return Z;
        if (typeof o == "string") {
          var v = o.toLowerCase();
          X[v] && (l = v), r && (X[v] = r, l = v);
          var b = o.split("-");
          if (!l && b.length > 1) return f(b[0]);
        } else {
          var C = o.name;
          X[C] = o, l = C;
        }
        return !u && l && (Z = l), l || !u && Z;
      }, q = function(f, o) {
        if (de(f)) return f.clone();
        var r = typeof o == "object" ? o : {};
        return r.date = f, r.args = arguments, new ae(r);
      }, E = ke;
      E.l = ne, E.i = de, E.w = function(f, o) {
        return q(f, { locale: o.$L, utc: o.$u, x: o.$x, $offset: o.$offset });
      };
      var ae = (function() {
        function f(r) {
          this.$L = ne(r.locale, null, !0), this.parse(r), this.$x = this.$x || r.x || {}, this[ue] = !0;
        }
        var o = f.prototype;
        return o.parse = function(r) {
          this.$d = (function(u) {
            var l = u.date, v = u.utc;
            if (l === null) return /* @__PURE__ */ new Date(NaN);
            if (E.u(l)) return /* @__PURE__ */ new Date();
            if (l instanceof Date) return new Date(l);
            if (typeof l == "string" && !/Z$/i.test(l)) {
              var b = l.match(Q);
              if (b) {
                var C = b[2] - 1 || 0, _ = (b[7] || "0").substring(0, 3);
                return v ? new Date(Date.UTC(b[1], C, b[3] || 1, b[4] || 0, b[5] || 0, b[6] || 0, _)) : new Date(b[1], C, b[3] || 1, b[4] || 0, b[5] || 0, b[6] || 0, _);
              }
            }
            return new Date(l);
          })(r), this.init();
        }, o.init = function() {
          var r = this.$d;
          this.$y = r.getFullYear(), this.$M = r.getMonth(), this.$D = r.getDate(), this.$W = r.getDay(), this.$H = r.getHours(), this.$m = r.getMinutes(), this.$s = r.getSeconds(), this.$ms = r.getMilliseconds();
        }, o.$utils = function() {
          return E;
        }, o.isValid = function() {
          return this.$d.toString() !== M;
        }, o.isSame = function(r, u) {
          var l = q(r);
          return this.startOf(u) <= l && l <= this.endOf(u);
        }, o.isAfter = function(r, u) {
          return q(r) < this.startOf(u);
        }, o.isBefore = function(r, u) {
          return this.endOf(u) < q(r);
        }, o.$g = function(r, u, l) {
          return E.u(r) ? this[u] : this.set(l, r);
        }, o.unix = function() {
          return Math.floor(this.valueOf() / 1e3);
        }, o.valueOf = function() {
          return this.$d.getTime();
        }, o.startOf = function(r, u) {
          var l = this, v = !!E.u(u) || u, b = E.p(r), C = function(R, I) {
            var G = E.w(l.$u ? Date.UTC(l.$y, I, R) : new Date(l.$y, I, R), l);
            return v ? G : G.endOf(n);
          }, _ = function(R, I) {
            return E.w(l.toDate()[R].apply(l.toDate("s"), (v ? [0, 0, 0, 0] : [23, 59, 59, 999]).slice(I)), l);
          }, S = this.$W, D = this.$M, U = this.$D, F = "set" + (this.$u ? "UTC" : "");
          switch (b) {
            case $:
              return v ? C(1, 0) : C(31, 11);
            case y:
              return v ? C(1, D) : C(0, D + 1);
            case g:
              var W = this.$locale().weekStart || 0, te = (S < W ? S + 7 : S) - W;
              return C(v ? U - te : U + (6 - te), D);
            case n:
            case O:
              return _(F + "Hours", 0);
            case h:
              return _(F + "Minutes", 1);
            case i:
              return _(F + "Seconds", 2);
            case t:
              return _(F + "Milliseconds", 3);
            default:
              return this.clone();
          }
        }, o.endOf = function(r) {
          return this.startOf(r, !1);
        }, o.$set = function(r, u) {
          var l, v = E.p(r), b = "set" + (this.$u ? "UTC" : ""), C = (l = {}, l[n] = b + "Date", l[O] = b + "Date", l[y] = b + "Month", l[$] = b + "FullYear", l[h] = b + "Hours", l[i] = b + "Minutes", l[t] = b + "Seconds", l[p] = b + "Milliseconds", l)[v], _ = v === n ? this.$D + (u - this.$W) : u;
          if (v === y || v === $) {
            var S = this.clone().set(O, 1);
            S.$d[C](_), S.init(), this.$d = S.set(O, Math.min(this.$D, S.daysInMonth())).$d;
          } else C && this.$d[C](_);
          return this.init(), this;
        }, o.set = function(r, u) {
          return this.clone().$set(r, u);
        }, o.get = function(r) {
          return this[E.p(r)]();
        }, o.add = function(r, u) {
          var l, v = this;
          r = Number(r);
          var b = E.p(u), C = function(D) {
            var U = q(v);
            return E.w(U.date(U.date() + Math.round(D * r)), v);
          };
          if (b === y) return this.set(y, this.$M + r);
          if (b === $) return this.set($, this.$y + r);
          if (b === n) return C(1);
          if (b === g) return C(7);
          var _ = (l = {}, l[i] = d, l[h] = c, l[t] = s, l)[b] || 1, S = this.$d.getTime() + r * _;
          return E.w(S, this);
        }, o.subtract = function(r, u) {
          return this.add(-1 * r, u);
        }, o.format = function(r) {
          var u = this, l = this.$locale();
          if (!this.isValid()) return l.invalidDate || M;
          var v = r || "YYYY-MM-DDTHH:mm:ssZ", b = E.z(this), C = this.$H, _ = this.$m, S = this.$M, D = l.weekdays, U = l.months, F = l.meridiem, W = function(I, G, ce, be) {
            return I && (I[G] || I(u, v)) || ce[G].slice(0, be);
          }, te = function(I) {
            return E.s(C % 12 || 12, I, "0");
          }, R = F || function(I, G, ce) {
            var be = I < 12 ? "AM" : "PM";
            return ce ? be.toLowerCase() : be;
          };
          return v.replace(x, (function(I, G) {
            return G || (function(ce) {
              switch (ce) {
                case "YY":
                  return String(u.$y).slice(-2);
                case "YYYY":
                  return E.s(u.$y, 4, "0");
                case "M":
                  return S + 1;
                case "MM":
                  return E.s(S + 1, 2, "0");
                case "MMM":
                  return W(l.monthsShort, S, U, 3);
                case "MMMM":
                  return W(U, S);
                case "D":
                  return u.$D;
                case "DD":
                  return E.s(u.$D, 2, "0");
                case "d":
                  return String(u.$W);
                case "dd":
                  return W(l.weekdaysMin, u.$W, D, 2);
                case "ddd":
                  return W(l.weekdaysShort, u.$W, D, 3);
                case "dddd":
                  return D[u.$W];
                case "H":
                  return String(C);
                case "HH":
                  return E.s(C, 2, "0");
                case "h":
                  return te(1);
                case "hh":
                  return te(2);
                case "a":
                  return R(C, _, !0);
                case "A":
                  return R(C, _, !1);
                case "m":
                  return String(_);
                case "mm":
                  return E.s(_, 2, "0");
                case "s":
                  return String(u.$s);
                case "ss":
                  return E.s(u.$s, 2, "0");
                case "SSS":
                  return E.s(u.$ms, 3, "0");
                case "Z":
                  return b;
              }
              return null;
            })(I) || b.replace(":", "");
          }));
        }, o.utcOffset = function() {
          return 15 * -Math.round(this.$d.getTimezoneOffset() / 15);
        }, o.diff = function(r, u, l) {
          var v, b = this, C = E.p(u), _ = q(r), S = (_.utcOffset() - this.utcOffset()) * d, D = this - _, U = function() {
            return E.m(b, _);
          };
          switch (C) {
            case $:
              v = U() / 12;
              break;
            case y:
              v = U();
              break;
            case T:
              v = U() / 3;
              break;
            case g:
              v = (D - S) / 6048e5;
              break;
            case n:
              v = (D - S) / 864e5;
              break;
            case h:
              v = D / c;
              break;
            case i:
              v = D / d;
              break;
            case t:
              v = D / s;
              break;
            default:
              v = D;
          }
          return l ? v : E.a(v);
        }, o.daysInMonth = function() {
          return this.endOf(y).$D;
        }, o.$locale = function() {
          return X[this.$L];
        }, o.locale = function(r, u) {
          if (!r) return this.$L;
          var l = this.clone(), v = ne(r, u, !0);
          return v && (l.$L = v), l;
        }, o.clone = function() {
          return E.w(this.$d, this);
        }, o.toDate = function() {
          return new Date(this.valueOf());
        }, o.toJSON = function() {
          return this.isValid() ? this.toISOString() : null;
        }, o.toISOString = function() {
          return this.$d.toISOString();
        }, o.toString = function() {
          return this.$d.toUTCString();
        }, f;
      })(), fe = ae.prototype;
      return q.prototype = fe, [["$ms", p], ["$s", t], ["$m", i], ["$H", h], ["$W", n], ["$M", y], ["$y", $], ["$D", O]].forEach((function(f) {
        fe[f[1]] = function(o) {
          return this.$g(o, f[0], f[1]);
        };
      })), q.extend = function(f, o) {
        return f.$i || (f(o, ae, q), f.$i = !0), q;
      }, q.locale = ne, q.isDayjs = de, q.unix = function(f) {
        return q(1e3 * f);
      }, q.en = X[Z], q.Ls = X, q.p = {}, q;
    }));
  })(he)), he.exports;
}
var Ba = Sa();
const ve = /* @__PURE__ */ _a(Ba), Da = N({
  name: "EliDataHora",
  inheritAttrs: !1,
  props: {
    /**
     * Valor em ISO 8601:
     * - com offset (ex.: `2026-01-09T13:15:00-03:00`)
     * - ou UTC absoluto (ex.: `2026-01-09T16:15:00Z`)
     */
    modelValue: {
      type: String,
      default: null
    },
    /**
     * Define o tipo de entrada.
     * - `dataHora`: usa `datetime-local`
     * - `data`: usa `date`
     */
    modo: {
      type: String,
      default: "dataHora"
    },
    /** Rótulo exibido no v-text-field (Vuetify). */
    rotulo: {
      type: String,
      default: "Data e hora"
    },
    /** Placeholder do input. */
    placeholder: {
      type: String,
      default: ""
    },
    /** Desabilita a interação. */
    desabilitado: {
      type: Boolean,
      default: !1
    },
    /** Se true, mostra ícone para limpar o valor (Vuetify clearable). */
    limpavel: {
      type: Boolean,
      default: !1
    },
    /** Estado de erro (visual). */
    erro: {
      type: Boolean,
      default: !1
    },
    /** Mensagens de erro. */
    mensagensErro: {
      type: [String, Array],
      default: () => []
    },
    /** Texto de apoio. */
    dica: {
      type: String,
      default: ""
    },
    /** Mantém a dica sempre visível. */
    dicaPersistente: {
      type: Boolean,
      default: !1
    },
    /** Densidade do campo (Vuetify). */
    densidade: {
      type: String,
      default: "comfortable"
    },
    /** Variante do v-text-field (Vuetify). */
    variante: {
      type: String,
      default: "outlined"
    },
    /**
     * Valor mínimo permitido.
     * ISO 8601 (offset ou `Z`).
     */
    min: {
      // ISO 8601 (offset ou Z)
      type: String,
      default: void 0
    },
    /**
     * Valor máximo permitido.
     * ISO 8601 (offset ou `Z`).
     */
    max: {
      // ISO 8601 (offset ou Z)
      type: String,
      default: void 0
    }
  },
  emits: {
    /** v-model padrão. */
    "update:modelValue": (e) => !0,
    /** Alias para consumidores que querem um evento semântico. */
    alterar: (e) => !0,
    foco: () => !0,
    desfoco: () => !0
  },
  setup(e, { emit: a, attrs: s }) {
    const d = A(
      () => e.modo === "data" ? "date" : "datetime-local"
    );
    function c(n) {
      return e.modo === "data" ? ve(n).format("YYYY-MM-DD") : ve(n).format("YYYY-MM-DDTHH:mm");
    }
    function p(n) {
      return e.modo === "data" ? ve(`${n}T00:00`).format() : ve(n).format();
    }
    const t = A({
      get: () => e.modelValue ? c(e.modelValue) : "",
      set: (n) => {
        const g = n && n.length > 0 ? n : null;
        if (!g) {
          a("update:modelValue", null), a("alterar", null);
          return;
        }
        const y = p(g);
        a("update:modelValue", y), a("alterar", y);
      }
    }), i = A(() => {
      if (e.min)
        return c(e.min);
    }), h = A(() => {
      if (e.max)
        return c(e.max);
    });
    return { attrs: s, valor: t, emit: a, minLocal: i, maxLocal: h, tipoInput: d };
  }
}), Pa = { class: "eli-data-hora" };
function Ta(e, a, s, d, c, p) {
  return m(), k("div", Pa, [
    V(Pe, oe({
      modelValue: e.valor,
      "onUpdate:modelValue": a[0] || (a[0] = (t) => e.valor = t),
      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: a[1] || (a[1] = (t) => e.emit("foco")),
      onBlur: a[2] || (a[2] = (t) => e.emit("desfoco"))
    }), null, 16, ["modelValue", "type", "label", "placeholder", "disabled", "clearable", "error", "error-messages", "hint", "persistent-hint", "density", "variant", "min", "max"])
  ]);
}
const Oa = /* @__PURE__ */ j(Da, [["render", Ta], ["__scopeId", "data-v-71afabb6"]]);
var ze = ((e) => (e[e.sucesso = 200] = "sucesso", e[e.erroConhecido = 400] = "erroConhecido", e[e.erroPermissao = 401] = "erroPermissao", e[e.erroNaoEncontrado = 404] = "erroNaoEncontrado", e[e.erroDesconhecido = 500] = "erroDesconhecido", e[e.tempoEsgotado = 504] = "tempoEsgotado", e))(ze || {});
/**
 * @license lucide-vue-next v0.563.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const qa = (e) => {
  for (const a in e)
    if (a.startsWith("aria-") || a === "role" || a === "title")
      return !0;
  return !1;
};
/**
 * @license lucide-vue-next v0.563.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const _e = (e) => e === "";
/**
 * @license lucide-vue-next v0.563.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const Ia = (...e) => e.filter((a, s, d) => !!a && a.trim() !== "" && d.indexOf(a) === s).join(" ").trim();
/**
 * @license lucide-vue-next v0.563.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const we = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
/**
 * @license lucide-vue-next v0.563.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const Ua = (e) => e.replace(
  /^([A-Z])|[\s-_]+(\w)/g,
  (a, s, d) => d ? d.toUpperCase() : s.toLowerCase()
);
/**
 * @license lucide-vue-next v0.563.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const Na = (e) => {
  const a = Ua(e);
  return a.charAt(0).toUpperCase() + a.slice(1);
};
/**
 * @license lucide-vue-next v0.563.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
var me = {
  xmlns: "http://www.w3.org/2000/svg",
  width: 24,
  height: 24,
  viewBox: "0 0 24 24",
  fill: "none",
  stroke: "currentColor",
  "stroke-width": 2,
  "stroke-linecap": "round",
  "stroke-linejoin": "round"
};
/**
 * @license lucide-vue-next v0.563.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const ja = ({
  name: e,
  iconNode: a,
  absoluteStrokeWidth: s,
  "absolute-stroke-width": d,
  strokeWidth: c,
  "stroke-width": p,
  size: t = me.width,
  color: i = me.stroke,
  ...h
}, { slots: n }) => Ae(
  "svg",
  {
    ...me,
    ...h,
    width: t,
    height: t,
    stroke: i,
    "stroke-width": _e(s) || _e(d) || s === !0 || d === !0 ? Number(c || p || me["stroke-width"]) * 24 / Number(t) : c || p || me["stroke-width"],
    class: Ia(
      "lucide",
      h.class,
      ...e ? [`lucide-${we(Na(e))}-icon`, `lucide-${we(e)}`] : ["lucide-icon"]
    ),
    ...!n.default && !qa(h) && { "aria-hidden": "true" }
  },
  [...a.map((g) => Ae(...g)), ...n.default ? [n.default()] : []]
);
/**
 * @license lucide-vue-next v0.563.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const $e = (e, a) => (s, { slots: d, attrs: c }) => Ae(
  ja,
  {
    ...c,
    ...s,
    iconNode: a,
    name: e
  },
  d
);
/**
 * @license lucide-vue-next v0.563.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const Se = $e("arrow-down", [
  ["path", { d: "M12 5v14", key: "s699le" }],
  ["path", { d: "m19 12-7 7-7-7", key: "1idqje" }]
]);
/**
 * @license lucide-vue-next v0.563.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const Be = $e("arrow-up", [
  ["path", { d: "m5 12 7-7 7 7", key: "hav0vg" }],
  ["path", { d: "M12 19V5", key: "x0mq9r" }]
]);
/**
 * @license lucide-vue-next v0.563.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const za = $e("ellipsis-vertical", [
  ["circle", { cx: "12", cy: "12", r: "1", key: "41hilf" }],
  ["circle", { cx: "12", cy: "5", r: "1", key: "gxeob9" }],
  ["circle", { cx: "12", cy: "19", r: "1", key: "lyex9k" }]
]);
/**
 * @license lucide-vue-next v0.563.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const La = $e("search", [
  ["path", { d: "m21 21-4.34-4.34", key: "14j7rj" }],
  ["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }]
]), Ha = N({
  name: "EliTabelaCaixaDeBusca",
  components: { Search: La },
  props: {
    modelo: {
      type: String,
      required: !1,
      default: ""
    }
  },
  emits: {
    buscar(e) {
      return typeof e == "string";
    }
  },
  setup(e, { emit: a }) {
    const s = w(e.modelo ?? "");
    le(
      () => e.modelo,
      (c) => {
        c !== void 0 && c !== s.value && (s.value = c);
      }
    );
    function d() {
      a("buscar", s.value.trim());
    }
    return { texto: s, emitirBusca: d };
  }
}), Ya = { class: "eli-tabela__busca" }, Fa = { class: "eli-tabela__busca-input-wrapper" };
function Ra(e, a, s, d, c, p) {
  const t = H("Search");
  return m(), k("div", Ya, [
    B("div", Fa, [
      He(B("input", {
        id: "eli-tabela-busca",
        "onUpdate:modelValue": a[0] || (a[0] = (i) => e.texto = i),
        type: "search",
        class: "eli-tabela__busca-input",
        placeholder: "Digite termos para filtrar",
        onKeyup: a[1] || (a[1] = Ye((...i) => e.emitirBusca && e.emitirBusca(...i), ["enter"]))
      }, null, 544), [
        [Fe, e.texto]
      ]),
      B("button", {
        type: "button",
        class: "eli-tabela__busca-botao",
        "aria-label": "Buscar",
        title: "Buscar",
        onClick: a[2] || (a[2] = (...i) => e.emitirBusca && e.emitirBusca(...i))
      }, [
        V(t, {
          class: "eli-tabela__busca-botao-icone",
          size: 16,
          "stroke-width": 2,
          "aria-hidden": "true"
        })
      ])
    ])
  ]);
}
const Wa = /* @__PURE__ */ j(Ha, [["render", Ra], ["__scopeId", "data-v-0fd1ad15"]]), Ja = N({
  name: "EliTabelaCabecalho",
  components: { EliTabelaCaixaDeBusca: Wa },
  props: {
    exibirBusca: {
      type: Boolean,
      required: !0
    },
    valorBusca: {
      type: String,
      required: !0
    },
    acoesCabecalho: {
      type: Array,
      required: !0
    }
  },
  emits: {
    buscar(e) {
      return typeof e == "string";
    }
  },
  setup(e, { emit: a }) {
    const s = A(() => e.acoesCabecalho.length > 0);
    function d(c) {
      a("buscar", c);
    }
    return { temAcoesCabecalho: s, emitBuscar: d };
  }
}), Za = { class: "eli-tabela__cabecalho" }, Xa = {
  key: 1,
  class: "eli-tabela__acoes-cabecalho"
}, Ga = ["onClick"], Ka = { class: "eli-tabela__acoes-cabecalho-rotulo" };
function Qa(e, a, s, d, c, p) {
  const t = H("EliTabelaCaixaDeBusca");
  return m(), k("div", Za, [
    e.exibirBusca ? (m(), P(t, {
      key: 0,
      modelo: e.valorBusca,
      onBuscar: e.emitBuscar
    }, null, 8, ["modelo", "onBuscar"])) : J("", !0),
    e.temAcoesCabecalho ? (m(), k("div", Xa, [
      (m(!0), k(K, null, ee(e.acoesCabecalho, (i, h) => (m(), k("button", {
        key: `${i.rotulo}-${h}`,
        type: "button",
        class: "eli-tabela__acoes-cabecalho-botao",
        style: ge(i.cor ? { backgroundColor: i.cor, color: "#fff" } : void 0),
        onClick: i.acao
      }, [
        i.icone ? (m(), P(ye(i.icone), {
          key: 0,
          class: "eli-tabela__acoes-cabecalho-icone",
          size: 16,
          "stroke-width": 2
        })) : J("", !0),
        B("span", Ka, Y(i.rotulo), 1)
      ], 12, Ga))), 128))
    ])) : J("", !0)
  ]);
}
const xa = /* @__PURE__ */ j(Ja, [["render", Qa]]), et = N({
  name: "EliTabelaEstados",
  props: {
    carregando: {
      type: Boolean,
      required: !0
    },
    erro: {
      type: String,
      required: !0
    },
    mensagemVazio: {
      type: String,
      required: !1,
      default: void 0
    }
  }
}), at = {
  key: 0,
  class: "eli-tabela eli-tabela--carregando",
  "aria-busy": "true"
}, tt = {
  key: 1,
  class: "eli-tabela eli-tabela--erro",
  role: "alert"
}, ot = { class: "eli-tabela__erro-mensagem" }, rt = {
  key: 2,
  class: "eli-tabela eli-tabela--vazio"
};
function nt(e, a, s, d, c, p) {
  return e.carregando ? (m(), k("div", at, " Carregando... ")) : e.erro ? (m(), k("div", tt, [
    a[0] || (a[0] = B("div", { class: "eli-tabela__erro-titulo" }, "Erro", -1)),
    B("div", ot, Y(e.erro), 1)
  ])) : (m(), k("div", rt, Y(e.mensagemVazio ?? "Nenhum registro encontrado."), 1));
}
const lt = /* @__PURE__ */ j(et, [["render", nt]]), it = N({
  name: "EliTabelaDebug",
  props: {
    isDev: {
      type: Boolean,
      required: !0
    },
    menuAberto: {
      type: Number,
      required: !0
    },
    menuPopupPos: {
      type: Object,
      required: !0
    }
  }
}), st = {
  key: 0,
  style: { position: "fixed", left: "8px", bottom: "8px", "z-index": "999999", background: "rgba(185,28,28,0.9)", color: "#fff", padding: "6px 10px", "border-radius": "8px", "font-size": "12px", "max-width": "500px" }
};
function ut(e, a, s, d, c, p) {
  return e.isDev ? (m(), k("div", st, [
    a[0] || (a[0] = B("div", null, [
      B("b", null, "EliTabela debug")
    ], -1)),
    B("div", null, "menuAberto: " + Y(e.menuAberto), 1),
    B("div", null, "menuPos: top=" + Y(e.menuPopupPos.top) + ", left=" + Y(e.menuPopupPos.left), 1)
  ])) : J("", !0);
}
const dt = /* @__PURE__ */ j(it, [["render", ut]]), ct = N({
  name: "EliTabelaHead",
  components: { ArrowUp: Be, ArrowDown: Se },
  props: {
    colunas: {
      type: Array,
      required: !0
    },
    temAcoes: {
      type: Boolean,
      required: !0
    },
    colunaOrdenacao: {
      type: String,
      required: !0
    },
    direcaoOrdenacao: {
      type: String,
      required: !0
    }
  },
  emits: {
    alternarOrdenacao(e) {
      return typeof e == "string" && e.length > 0;
    }
  },
  setup(e, { emit: a }) {
    function s(p) {
      return (p == null ? void 0 : p.coluna_ordem) !== void 0 && (p == null ? void 0 : p.coluna_ordem) !== null;
    }
    function d(p) {
      return p === "direita" ? "eli-tabela__celula--direita" : p === "centro" ? "eli-tabela__celula--centro" : "eli-tabela__celula--esquerda";
    }
    function c(p) {
      a("alternarOrdenacao", p);
    }
    return {
      ArrowUp: Be,
      ArrowDown: Se,
      isOrdenavel: s,
      obterClasseAlinhamento: d,
      emitAlternarOrdenacao: c
    };
  }
}), mt = { class: "eli-tabela__thead" }, pt = { class: "eli-tabela__tr eli-tabela__tr--header" }, ft = ["onClick"], bt = { class: "eli-tabela__th-texto" }, vt = {
  key: 1,
  class: "eli-tabela__th-label"
}, ht = {
  key: 0,
  class: "eli-tabela__th eli-tabela__th--acoes",
  scope: "col"
};
function gt(e, a, s, d, c, p) {
  const t = H("ArrowUp");
  return m(), k("thead", mt, [
    B("tr", pt, [
      (m(!0), k(K, null, ee(e.colunas, (i, h) => (m(), k("th", {
        key: `th-${h}`,
        class: se(["eli-tabela__th", [
          e.isOrdenavel(i) ? "eli-tabela__th--ordenavel" : void 0,
          e.obterClasseAlinhamento(i.alinhamento)
        ]]),
        scope: "col"
      }, [
        e.isOrdenavel(i) ? (m(), k("button", {
          key: 0,
          type: "button",
          class: se(["eli-tabela__th-botao", [
            e.colunaOrdenacao === String(i.coluna_ordem) ? "eli-tabela__th-botao--ativo" : void 0
          ]]),
          onClick: (n) => e.emitAlternarOrdenacao(String(i.coluna_ordem))
        }, [
          B("span", bt, Y(i.rotulo), 1),
          e.colunaOrdenacao === String(i.coluna_ordem) ? (m(), P(ye(e.direcaoOrdenacao === "asc" ? e.ArrowUp : e.ArrowDown), {
            key: 0,
            class: "eli-tabela__th-icone",
            size: 16,
            "stroke-width": 2,
            "aria-hidden": "true"
          })) : (m(), P(t, {
            key: 1,
            class: "eli-tabela__th-icone eli-tabela__th-icone--oculto",
            size: 16,
            "stroke-width": 2,
            "aria-hidden": "true"
          }))
        ], 10, ft)) : (m(), k("span", vt, Y(i.rotulo), 1))
      ], 2))), 128)),
      e.temAcoes ? (m(), k("th", ht, " Ações ")) : J("", !0)
    ])
  ]);
}
const yt = /* @__PURE__ */ j(ct, [["render", gt]]), $t = N({
  name: "EliTabelaCelulaTextoSimples",
  components: {},
  props: {
    dados: {
      type: Object
    }
  },
  data() {
    return {};
  },
  methods: {},
  setup({ dados: e }) {
    return { dados: e };
  }
});
function kt(e, a, s, d, c, p) {
  var t;
  return Y((t = e.dados) == null ? void 0 : t.texto);
}
const At = /* @__PURE__ */ j($t, [["render", kt]]), Ct = N({
  name: "EliTabelaCelulaNumero",
  components: {},
  props: {
    dados: {
      type: Object
    }
  },
  data() {
    return {};
  },
  methods: {},
  setup({ dados: e }) {
    return { dados: e };
  }
});
function Vt(e, a, s, d, c, p) {
  var t;
  return Y(String((t = e.dados) == null ? void 0 : t.numero).replace(".", ","));
}
const Et = /* @__PURE__ */ j(Ct, [["render", Vt]]), Mt = {
  textoSimples: At,
  numero: Et
}, _t = N({
  name: "EliTabelaCelula",
  props: {
    celula: {
      // `ComponenteCelula` é uma tupla `readonly [tipo, dados]`.
      type: Array,
      required: !0
    }
  },
  setup(e) {
    const a = A(() => e.celula[0]), s = A(() => e.celula[1]), d = A(() => Mt[a.value]), c = A(() => s.value);
    return { Componente: d, dadosParaComponente: c };
  }
});
function wt(e, a, s, d, c, p) {
  return m(), P(ye(e.Componente), { dados: e.dadosParaComponente }, null, 8, ["dados"]);
}
const St = /* @__PURE__ */ j(_t, [["render", wt]]), Bt = N({
  name: "EliTabelaBody",
  components: {
    EliTabelaCelula: St,
    MoreVertical: za
  },
  props: {
    colunas: {
      type: Array,
      required: !0
    },
    linhas: {
      type: Array,
      required: !0
    },
    temAcoes: {
      type: Boolean,
      required: !0
    },
    menuAberto: {
      type: Number,
      required: !0
    },
    possuiAcoes: {
      type: Function,
      required: !0
    }
  },
  emits: {
    toggleMenu(e) {
      return e && typeof e.indice == "number";
    }
  },
  setup(e, { emit: a }) {
    function s(t) {
      return t === "direita" ? "eli-tabela__celula--direita" : t === "centro" ? "eli-tabela__celula--centro" : "eli-tabela__celula--esquerda";
    }
    function d(t) {
      if (t != null)
        return typeof t == "number" ? `${t}px` : String(t);
    }
    function c(t) {
      if (!Array.isArray(t)) return;
      const i = t[0], h = t[1];
      if (i === "textoSimples")
        return typeof (h == null ? void 0 : h.texto) == "string" ? h.texto : void 0;
      if (i === "numero")
        return typeof (h == null ? void 0 : h.numero) == "number" ? String(h.numero) : void 0;
    }
    function p(t, i) {
      a("toggleMenu", { indice: t, evento: i });
    }
    return {
      obterClasseAlinhamento: s,
      obterMaxWidth: d,
      obterTooltipCelula: c,
      emitToggleMenu: p
    };
  }
}), Dt = { class: "eli-tabela__tbody" }, Pt = ["onClick"], Tt = ["title"], Ot = ["id", "disabled", "aria-expanded", "aria-controls", "aria-label", "title", "onClick"];
function qt(e, a, s, d, c, p) {
  const t = H("EliTabelaCelula"), i = H("MoreVertical");
  return m(), k("tbody", Dt, [
    (m(!0), k(K, null, ee(e.linhas, (h, n) => (m(), k("tr", {
      key: `tr-${n}`,
      class: se(["eli-tabela__tr", [n % 2 === 1 ? "eli-tabela__tr--zebra" : void 0]])
    }, [
      (m(!0), k(K, null, ee(e.colunas, (g, y) => (m(), k("td", {
        key: `td-${n}-${y}`,
        class: se(["eli-tabela__td", [
          g.acao ? "eli-tabela__td--clicavel" : void 0,
          e.obterClasseAlinhamento(g.alinhamento)
        ]]),
        onClick: (T) => g.acao ? () => {
          var $;
          return ($ = g.acao) == null ? void 0 : $.call(g);
        } : void 0
      }, [
        g.truncar ? (m(), k("span", {
          key: 0,
          class: "eli-tabela__celula-conteudo",
          style: ge(g.largura_maxima ? { maxWidth: e.obterMaxWidth(g.largura_maxima) } : void 0),
          title: e.obterTooltipCelula(g.celula(h))
        }, [
          V(t, {
            celula: g.celula(h)
          }, null, 8, ["celula"])
        ], 12, Tt)) : (m(), P(t, {
          key: 1,
          celula: g.celula(h)
        }, null, 8, ["celula"]))
      ], 10, Pt))), 128)),
      e.temAcoes ? (m(), k("td", {
        class: "eli-tabela__td eli-tabela__td--acoes",
        key: `td-${n}-acoes`
      }, [
        B("div", {
          class: se(["eli-tabela__acoes-container", [e.menuAberto === n ? "eli-tabela__acoes-container--aberto" : void 0]])
        }, [
          B("button", {
            class: "eli-tabela__acoes-toggle",
            type: "button",
            id: `eli-tabela-acoes-toggle-${n}`,
            disabled: !e.possuiAcoes(n),
            "aria-haspopup": "menu",
            "aria-expanded": e.menuAberto === n ? "true" : "false",
            "aria-controls": e.possuiAcoes(n) ? `eli-tabela-acoes-menu-${n}` : void 0,
            "aria-label": e.possuiAcoes(n) ? "Ações da linha" : "Nenhuma ação disponível",
            title: e.possuiAcoes(n) ? "Ações" : "Nenhuma ação disponível",
            onClick: De((g) => e.emitToggleMenu(n, g), ["stop"])
          }, [
            V(i, {
              class: "eli-tabela__acoes-toggle-icone",
              size: 18,
              "stroke-width": 2
            })
          ], 8, Ot)
        ], 2)
      ])) : J("", !0)
    ], 2))), 128))
  ]);
}
const It = /* @__PURE__ */ j(Bt, [["render", qt]]), Ut = N({
  name: "EliTabelaMenuAcoes",
  props: {
    menuAberto: {
      type: Number,
      required: !0
    },
    posicao: {
      type: Object,
      required: !0
    },
    acoes: {
      type: Array,
      required: !0
    },
    linha: {
      // Aceita qualquer tipo de linha (objeto, string, etc.) sem validação runtime.
      type: null,
      required: !0
    }
  },
  emits: {
    executar(e) {
      return e !== null && typeof e == "object";
    }
  },
  setup(e, { emit: a, expose: s }) {
    const d = w(null);
    s({ menuEl: d });
    const c = A(() => e.acoes.length > 0);
    function p(t) {
      e.linha && a("executar", { acao: t.acao, linha: e.linha });
    }
    return { menuEl: d, possuiAcoes: c, emitExecutar: p };
  }
}), Nt = ["id", "aria-labelledby"], jt = ["aria-label", "title", "onClick"], zt = { class: "eli-tabela__acoes-item-texto" };
function Lt(e, a, s, d, c, p) {
  return m(), P(Re, { to: "body" }, [
    e.menuAberto !== null && e.possuiAcoes ? (m(), k("ul", {
      key: 0,
      id: `eli-tabela-acoes-menu-${e.menuAberto}`,
      ref: "menuEl",
      class: "eli-tabela__acoes-menu",
      role: "menu",
      "aria-labelledby": `eli-tabela-acoes-toggle-${e.menuAberto}`,
      style: ge({
        position: "fixed",
        top: `${e.posicao.top}px`,
        left: `${e.posicao.left}px`,
        zIndex: 999999
      })
    }, [
      (m(!0), k(K, null, ee(e.acoes, (t) => (m(), k("li", {
        key: `acao-${e.menuAberto}-${t.indice}`,
        class: "eli-tabela__acoes-item",
        role: "none"
      }, [
        B("button", {
          type: "button",
          class: "eli-tabela__acoes-item-botao",
          style: ge({ color: t.acao.cor }),
          role: "menuitem",
          "aria-label": t.acao.rotulo,
          title: t.acao.rotulo,
          onClick: De((i) => e.emitExecutar(t), ["stop"])
        }, [
          (m(), P(ye(t.acao.icone), {
            class: "eli-tabela__acoes-item-icone",
            size: 16,
            "stroke-width": 2
          })),
          B("span", zt, Y(t.acao.rotulo), 1)
        ], 12, jt)
      ]))), 128))
    ], 12, Nt)) : J("", !0)
  ]);
}
const Ht = /* @__PURE__ */ j(Ut, [["render", Lt]]), Yt = N({
  name: "EliTabelaPaginacao",
  props: {
    pagina: {
      type: Number,
      required: !0
    },
    totalPaginas: {
      type: Number,
      required: !0
    },
    maximoBotoes: {
      type: Number,
      required: !1
    }
  },
  emits: {
    alterar(e) {
      return Number.isFinite(e);
    }
  },
  setup(e, { emit: a }) {
    const s = A(() => {
      const n = e.maximoBotoes;
      return typeof n == "number" && n >= 5 ? Math.floor(n) : 7;
    }), d = A(() => {
      const n = e.totalPaginas, g = e.pagina, y = s.value, T = [], $ = (L) => {
        T.push({
          label: String(L),
          pagina: L,
          ativo: L === g
        });
      }, O = () => {
        T.push({ label: "…", ehEllipsis: !0 });
      };
      if (n <= y) {
        for (let L = 1; L <= n; L += 1)
          $(L);
        return T;
      }
      const M = Math.max(3, y - 2);
      let Q = Math.max(2, g - Math.floor(M / 2)), x = Q + M - 1;
      x >= n && (x = n - 1, Q = x - M + 1), $(1), Q > 2 && O();
      for (let L = Q; L <= x; L += 1)
        $(L);
      return x < n - 1 && O(), $(n), T;
    });
    function c(n) {
      if (!n)
        return;
      const g = Math.min(Math.max(1, n), e.totalPaginas);
      g !== e.pagina && a("alterar", g);
    }
    const p = A(() => e.pagina <= 1), t = A(() => e.pagina >= e.totalPaginas), i = A(() => e.pagina), h = A(() => e.totalPaginas);
    return {
      botoes: d,
      irParaPagina: c,
      anteriorDesabilitado: p,
      proximaDesabilitada: t,
      paginaAtual: i,
      totalPaginasExibidas: h
    };
  }
}), Ft = {
  key: 0,
  class: "eli-tabela__paginacao",
  role: "navigation",
  "aria-label": "Paginação de resultados"
}, Rt = ["disabled"], Wt = {
  key: 0,
  class: "eli-tabela__pagina-ellipsis",
  "aria-hidden": "true"
}, Jt = ["disabled", "aria-current", "aria-label", "onClick"], Zt = ["disabled"];
function Xt(e, a, s, d, c, p) {
  return e.totalPaginasExibidas > 1 ? (m(), k("nav", Ft, [
    B("button", {
      type: "button",
      class: "eli-tabela__pagina-botao",
      disabled: e.anteriorDesabilitado,
      "aria-label": "Página anterior",
      onClick: a[0] || (a[0] = (t) => e.irParaPagina(e.paginaAtual - 1))
    }, " << ", 8, Rt),
    (m(!0), k(K, null, ee(e.botoes, (t, i) => (m(), k(K, {
      key: `${t.label}-${i}`
    }, [
      t.ehEllipsis ? (m(), k("span", Wt, Y(t.label), 1)) : (m(), k("button", {
        key: 1,
        type: "button",
        class: se(["eli-tabela__pagina-botao", t.ativo ? "eli-tabela__pagina-botao--ativo" : void 0]),
        disabled: t.ativo,
        "aria-current": t.ativo ? "page" : void 0,
        "aria-label": `Ir para página ${t.label}`,
        onClick: (h) => e.irParaPagina(t.pagina)
      }, Y(t.label), 11, Jt))
    ], 64))), 128)),
    B("button", {
      type: "button",
      class: "eli-tabela__pagina-botao",
      disabled: e.proximaDesabilitada,
      "aria-label": "Próxima página",
      onClick: a[1] || (a[1] = (t) => e.irParaPagina(e.paginaAtual + 1))
    }, " >> ", 8, Zt)
  ])) : J("", !0);
}
const Gt = /* @__PURE__ */ j(Yt, [["render", Xt], ["__scopeId", "data-v-59d12455"]]), Kt = N({
  name: "EliTabela",
  inheritAttrs: !1,
  components: {
    EliTabelaCabecalho: xa,
    EliTabelaEstados: lt,
    EliTabelaDebug: dt,
    EliTabelaHead: yt,
    EliTabelaBody: It,
    EliTabelaMenuAcoes: Ht,
    EliTabelaPaginacao: Gt
  },
  props: {
    /** Configuração principal da tabela (colunas, consulta e ações) */
    tabela: {
      type: Object,
      required: !0
    }
  },
  setup(e) {
    const s = w(!1), d = w(null), c = w([]), p = w(0), t = w([]), i = w(null), h = w(null), n = w({ top: 0, left: 0 }), g = w(""), y = w(1), T = w(null), $ = w("asc"), O = A(() => e.tabela), M = A(() => !!e.tabela.mostrarCaixaDeBusca), Q = A(() => e.tabela.acoesTabela ?? []), x = A(() => Q.value.length > 0), L = A(() => {
      const o = e.tabela.registros_por_consulta;
      return typeof o == "number" && o > 0 ? Math.floor(o) : 10;
    }), re = A(() => {
      const o = L.value;
      if (!o || o <= 0) return 1;
      const r = p.value;
      return r ? Math.max(1, Math.ceil(r / o)) : 1;
    }), ke = A(() => (e.tabela.acoesLinha ?? []).length > 0);
    let Z = 0;
    function X(o) {
      var _, S, D, U, F, W;
      const r = o.getBoundingClientRect(), u = 8, l = ((D = (S = (_ = h.value) == null ? void 0 : _.menuEl) == null ? void 0 : S.value) == null ? void 0 : D.offsetHeight) ?? 0, v = ((W = (F = (U = h.value) == null ? void 0 : U.menuEl) == null ? void 0 : F.value) == null ? void 0 : W.offsetWidth) ?? 180;
      let b = r.bottom + u;
      const C = r.right - v;
      l && b + l > window.innerHeight - u && (b = r.top - u - l), n.value = {
        top: Math.max(u, Math.round(b)),
        left: Math.max(u, Math.round(C))
      };
    }
    function ue(o) {
      var u, l;
      if (i.value === null) return;
      const r = o.target;
      (l = (u = h.value) == null ? void 0 : u.menuEl) != null && l.value && h.value.menuEl.value.contains(r) || (i.value = null);
    }
    function de(o) {
      if (o) {
        if (T.value === o) {
          $.value = $.value === "asc" ? "desc" : "asc", f();
          return;
        }
        T.value = o, $.value = "asc", y.value !== 1 ? y.value = 1 : f();
      }
    }
    function ne(o) {
      g.value !== o && (g.value = o, y.value !== 1 ? y.value = 1 : f());
    }
    function q(o) {
      const r = Math.min(Math.max(1, o), re.value);
      r !== y.value && (y.value = r);
    }
    function E(o) {
      const r = e.tabela.acoesLinha ?? [], u = t.value[o] ?? [];
      return r.map((l, v) => {
        const b = l.exibir === void 0 ? !0 : typeof l.exibir == "boolean" ? l.exibir : !1;
        return {
          acao: l,
          indice: v,
          visivel: u[v] ?? b
        };
      }).filter((l) => l.visivel);
    }
    function ae(o) {
      return E(o).length > 0;
    }
    function fe(o, r) {
      if (!ae(o)) return;
      if (i.value === o) {
        i.value = null;
        return;
      }
      i.value = o;
      const u = (r == null ? void 0 : r.currentTarget) ?? null;
      u && (X(u), requestAnimationFrame(() => X(u)));
    }
    async function f() {
      var v, b;
      const o = ++Z;
      s.value = !0, d.value = null, t.value = [], i.value = null;
      const r = Math.max(1, L.value), l = {
        offSet: (y.value - 1) * r,
        limit: r
      };
      g.value && (l.texto_busca = g.value), T.value && (l.coluna_ordem = T.value, l.direcao_ordem = $.value);
      try {
        const C = e.tabela, _ = await C.consulta(l);
        if (o !== Z) return;
        if (_.cod !== ze.sucesso) {
          c.value = [], p.value = 0, d.value = _.mensagem;
          return;
        }
        const S = ((v = _.valor) == null ? void 0 : v.valores) ?? [], D = ((b = _.valor) == null ? void 0 : b.quantidade) ?? S.length;
        c.value = S, p.value = D;
        const U = Math.max(1, Math.ceil((D || 0) / r));
        if (y.value > U) {
          y.value = U;
          return;
        }
        const F = C.acoesLinha ?? [];
        if (!F.length) {
          t.value = [];
          return;
        }
        const W = S.map(
          () => F.map((R) => R.exibir === void 0 ? !0 : typeof R.exibir == "boolean" ? R.exibir : !1)
        );
        t.value = W;
        const te = await Promise.all(
          S.map(
            async (R) => Promise.all(
              F.map(async (I) => {
                if (I.exibir === void 0) return !0;
                if (typeof I.exibir == "boolean") return I.exibir;
                try {
                  const G = I.exibir(R);
                  return !!await Promise.resolve(G);
                } catch {
                  return !1;
                }
              })
            )
          )
        );
        o === Z && (t.value = te);
      } catch (C) {
        if (o !== Z) return;
        c.value = [], p.value = 0, d.value = C instanceof Error ? C.message : "Erro ao carregar dados.";
      } finally {
        o === Z && (s.value = !1);
      }
    }
    return We(() => {
      document.addEventListener("click", ue), f();
    }), Je(() => {
      document.removeEventListener("click", ue);
    }), le(
      () => e.tabela.mostrarCaixaDeBusca,
      (o) => {
        !o && g.value && (g.value = "", y.value !== 1 ? y.value = 1 : f());
      }
    ), le(y, (o, r) => {
      o !== r && f();
    }), le(
      () => e.tabela,
      () => {
        i.value = null, T.value = null, $.value = "asc", g.value = "", y.value !== 1 ? y.value = 1 : f();
      }
    ), le(
      () => e.tabela.registros_por_consulta,
      () => {
        y.value !== 1 ? y.value = 1 : f();
      }
    ), le(c, () => {
      i.value = null;
    }), {
      // state
      isDev: !1,
      tabela: O,
      carregando: s,
      erro: d,
      linhas: c,
      quantidade: p,
      menuAberto: i,
      valorBusca: g,
      paginaAtual: y,
      colunaOrdenacao: T,
      direcaoOrdenacao: $,
      totalPaginas: re,
      // computed
      exibirBusca: M,
      acoesCabecalho: Q,
      temAcoesCabecalho: x,
      temAcoes: ke,
      // actions
      alternarOrdenacao: de,
      atualizarBusca: ne,
      irParaPagina: q,
      acoesDisponiveisPorLinha: E,
      possuiAcoes: ae,
      toggleMenu: fe,
      // popup
      menuPopup: h,
      menuPopupPos: n
    };
  }
}), Qt = { class: "eli-tabela" }, xt = { class: "eli-tabela__table" };
function eo(e, a, s, d, c, p) {
  const t = H("EliTabelaDebug"), i = H("EliTabelaEstados"), h = H("EliTabelaCabecalho"), n = H("EliTabelaHead"), g = H("EliTabelaBody"), y = H("EliTabelaMenuAcoes"), T = H("EliTabelaPaginacao");
  return m(), k("div", Qt, [
    V(t, {
      isDev: e.isDev,
      menuAberto: e.menuAberto,
      menuPopupPos: e.menuPopupPos
    }, null, 8, ["isDev", "menuAberto", "menuPopupPos"]),
    e.carregando || e.erro || !e.linhas.length ? (m(), P(i, {
      key: 0,
      carregando: e.carregando,
      erro: e.erro,
      mensagemVazio: e.tabela.mensagemVazio
    }, null, 8, ["carregando", "erro", "mensagemVazio"])) : (m(), k(K, { key: 1 }, [
      e.exibirBusca || e.temAcoesCabecalho ? (m(), P(h, {
        key: 0,
        exibirBusca: e.exibirBusca,
        valorBusca: e.valorBusca,
        acoesCabecalho: e.acoesCabecalho,
        onBuscar: e.atualizarBusca
      }, null, 8, ["exibirBusca", "valorBusca", "acoesCabecalho", "onBuscar"])) : J("", !0),
      B("table", xt, [
        V(n, {
          colunas: e.tabela.colunas,
          temAcoes: e.temAcoes,
          colunaOrdenacao: e.colunaOrdenacao,
          direcaoOrdenacao: e.direcaoOrdenacao,
          onAlternarOrdenacao: e.alternarOrdenacao
        }, null, 8, ["colunas", "temAcoes", "colunaOrdenacao", "direcaoOrdenacao", "onAlternarOrdenacao"]),
        V(g, {
          colunas: e.tabela.colunas,
          linhas: e.linhas,
          temAcoes: e.temAcoes,
          menuAberto: e.menuAberto,
          possuiAcoes: e.possuiAcoes,
          onToggleMenu: a[0] || (a[0] = ({ indice: $, evento: O }) => e.toggleMenu($, O))
        }, null, 8, ["colunas", "linhas", "temAcoes", "menuAberto", "possuiAcoes"])
      ]),
      V(y, {
        ref: "menuPopup",
        menuAberto: e.menuAberto,
        posicao: e.menuPopupPos,
        acoes: e.menuAberto === null ? [] : e.acoesDisponiveisPorLinha(e.menuAberto),
        linha: e.menuAberto === null ? null : e.linhas[e.menuAberto],
        onExecutar: a[1] || (a[1] = ({ acao: $, linha: O }) => {
          e.menuAberto = null, $.acao(O);
        })
      }, null, 8, ["menuAberto", "posicao", "acoes", "linha"]),
      e.totalPaginas > 1 && e.quantidade > 0 ? (m(), P(T, {
        key: 1,
        pagina: e.paginaAtual,
        totalPaginas: e.totalPaginas,
        maximoBotoes: e.tabela.maximo_botoes_paginacao,
        onAlterar: e.irParaPagina
      }, null, 8, ["pagina", "totalPaginas", "maximoBotoes", "onAlterar"])) : J("", !0)
    ], 64))
  ]);
}
const ao = /* @__PURE__ */ j(Kt, [["render", eo]]), bo = {
  install(e) {
    e.component("EliOlaMundo", ka), e.component("EliBotao", Ue), e.component("EliBadge", Ce), e.component("EliInput", je), e.component("EliCartao", Ma), e.component("EliDataHora", Oa), e.component("EliTabela", ao);
  }
};
export {
  Ce as EliBadge,
  Ue as EliBotao,
  Ma as EliCartao,
  Oa as EliDataHora,
  je as EliInput,
  ka as EliOlaMundo,
  ao as EliTabela,
  bo as default
};
