@modeltables/fontawesome-vuetify
v2.8.0
Published
@modeltables/fontawesome-vuetify — focused Vue table toolkit
Maintainers
Readme
@modeltables/fontawesome-vuetify — focused Vue table toolkit
@modeltables/fontawesome-vuetify is a small, practical Vue library that makes building polished data tables quick and painless. It provides ready-to-use components and TypeScript helpers you can drop into Vuetify or plain Vue apps to add filtering, sorting, searching and pagination with minimal setup.
Why use @modeltables/fontawesome-vuetify?
- Easy to use: helpful wrappers for headers, filters and table views so your grids look intentional from the start.
- Reactive by design: components update predictably with Vue reactivity as your data or form state changes.
- Lightweight: small surface area and minimal runtime overhead so your bundle stays lean.
- Customizable: swap icons, change sizes, or theme with your existing Vuetify setup without touching core logic.
- Accessibility-minded: uses clear affordances and aria-friendly patterns to improve form and table clarity.
Install
pnpm add @modeltables/fontawesome-vuetifyQuick start
Import the components or helpers you need and register them in your app. Example (single-file component):
<script setup lang="ts">
import TableView from '@tablemodels/table/TableView.vue'
</script>
<template>
<div>
<SearchView />
<TableView />
</div>
</template>Core models
The package includes a small TypeScript models module (see components/models/tablemodels.ts) that the components use and that you can reuse in your services:
- HeaderModel — column metadata (title, key, sort).
- PaginatonModel — pagination state (PageCount, PerPage, CurrentPage, TotalCount).
- PaginatedResponse — generic paged response with
Items: T[]. - Options — a simple option shape (
Key,ShowKey,Name,Active).
Example TypeScript snippet
import { PaginatedResponse, HeaderModel } from 'tablemodels'
type Item = { id: number; name: string }
const page: PaginatedResponse<Item> = {
PageSize: 10,
PageCount: 3,
CurrentPage: 1,
TotalCount: 25,
Items: []
}
const col = new HeaderModel()
col.title = 'Name'
col.key = 'name'Contributing
PRs and issues welcome — open an issue to discuss larger changes first. Keep changes focused and lightweight.
License
ISC
