Skip to content

Add KsDataTable and KsDataColumn components - #92

Open
gdecris wants to merge 1 commit into
masterfrom
feature/data-table
Open

Add KsDataTable and KsDataColumn components#92
gdecris wants to merge 1 commit into
masterfrom
feature/data-table

Conversation

@gdecris

@gdecris gdecris commented Jul 6, 2026

Copy link
Copy Markdown
Member

Declarative, slot-driven table built from children that register with the parent via provide/inject. Modeled on the vault-api DataTable/DataColumn API so tabular views can share the same markup.

Features:

  • Column value via field (string or array of keys) or a scoped cell slot
  • Controlled sorting (sortField/sortDirection props + sort event)
  • Selection (multiple/single) with internal state or v-model/:selected.sync
  • Expandable rows with an expansion scoped slot
  • Custom column headers via a header scoped slot
  • Per-column align/width, per-row rowClass (string or function)
  • Sticky header + scrollable body, footer slot, built-in KsPaginator
  • Loading and empty states
  • Accessibility: scope=col, aria-sort, labelled controls; keyed rows

Wired to KsPaginator/KsLoaderLine, registered in index.js and the lib webpack entries, styled in _tables.scss following existing class naming, and documented with an API page and interactive examples.

Declarative, slot-driven table built from <ks-data-column> children that
register with the parent via provide/inject. Modeled on the vault-api
DataTable/DataColumn API so tabular views can share the same markup.

Features:
- Column value via field (string or array of keys) or a scoped cell slot
- Controlled sorting (sortField/sortDirection props + sort event)
- Selection (multiple/single) with internal state or v-model/:selected.sync
- Expandable rows with an expansion scoped slot
- Custom column headers via a header scoped slot
- Per-column align/width, per-row rowClass (string or function)
- Sticky header + scrollable body, footer slot, built-in KsPaginator
- Loading and empty states
- Accessibility: scope=col, aria-sort, labelled controls; keyed rows

Wired to KsPaginator/KsLoaderLine, registered in index.js and the lib
webpack entries, styled in _tables.scss following existing class naming,
and documented with an API page and interactive examples.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants