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

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

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

// 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
