import type { App, Plugin } from 'vue'

import Card from './Card'
import Grid from './Grid'
import Meta from './Meta'

export type { CardProps } from './Card'

Card.Meta = Meta
Card.Grid = Grid

/* istanbul ignore next */
Card.install = function (app: App) {
  app.component(Card.name, Card)
  app.component(Meta.name, Meta)
  app.component(Grid.name, Grid)
  return app
}

export { Grid as CardGrid, Meta as CardMeta }

export default Card as typeof Card &
  Plugin & {
    readonly Meta: typeof Meta
    readonly Grid: typeof Grid
  }
