import type { App, Plugin } from "vue";
import "./styles/eli-vue-fonts.css";
import { EliOlaMundo } from "./componentes/ola_mundo";
import { EliBotao } from "./componentes/botao";
import { EliBadge } from "./componentes/indicador";
import { EliCartao } from "./componentes/cartao";
import { EliTabela } from "./componentes/EliTabela";
import {
  EliEntradaTexto,
  EliEntradaNumero,
  EliEntradaDataHora,
  EliEntradaParagrafo,
  EliEntradaSelecao,
} from "./componentes/EliEntrada";

export { EliOlaMundo };
export { EliBotao };
export { EliBadge };
export { EliCartao };

// Exportar tudo (componentes + types + helpers) de Tabela e Entrada
export * from "./componentes/EliTabela";
export * from "./componentes/EliEntrada";

// Exportar tipos compartilhados (ex: CartaoStatus)
export * from "./tipos";

const EliVue: Plugin = {
  install(app: App) {
    app.component("EliOlaMundo", EliOlaMundo);
    app.component("EliBotao", EliBotao);
    app.component("EliBadge", EliBadge);
    app.component("EliCartao", EliCartao);
    app.component("EliTabela", EliTabela);
    app.component("EliEntradaTexto", EliEntradaTexto);
    app.component("EliEntradaNumero", EliEntradaNumero);
    app.component("EliEntradaDataHora", EliEntradaDataHora);
    app.component("EliEntradaParagrafo", EliEntradaParagrafo);
    app.component("EliEntradaSelecao", EliEntradaSelecao);
  },
};

export default EliVue;
