Skip to content

[ENG-46087] feat(webkit): replace data-table with composable Table + Paginator#653

Closed
HerbertJulio wants to merge 4 commits into
devfrom
feat/ENG-46087-table-paginator
Closed

[ENG-46087] feat(webkit): replace data-table with composable Table + Paginator#653
HerbertJulio wants to merge 4 commits into
devfrom
feat/ENG-46087-table-paginator

Conversation

@HerbertJulio

Copy link
Copy Markdown
Contributor

Summary

Replaces the legacy data-table with a new composition + data-driven Table and a standalone Paginator under data/, plus the supporting spec/pipeline updates.

feat(webkit) — components

  • Table: compound API (Table.Header/Body/Row/Cell/HeadCell/...) and a data-driven mode powered by the headless @tanstack/vue-table engine (sorting / row selection / pagination / global filter, client- and server-side).
  • Grow-to-fill column sizing (first column 2, rest 1), per-column resizable (drag freezes the others and grows the table; floor = column content width), frozen columns + sticky header, and an action column auto-pinned to the right edge.
  • Compact header density via Table.Header variant="compact" / root header-variant.
  • Paginator with pagination-button / paginator-info / paginator-page-size parts.
  • Removes the legacy data/data-table; adds data/table + data/paginator exports; adds @tanstack/vue-table (+ lockfile entry).
  • Specs and Storybook stories for Table and Paginator.

chore — pipeline

  • New compound-api rule; expanded dependencies rule (the @tanstack/vue-table exception) and component-scaffold skill; spec template, eslint, and Storybook config refreshed.

⚠️ Review note

  • Breaking removal: the @aziontech/webkit/data/data-table export is gone with no alias kept, while .claude/rules/dependencies.md states data/data-table should be an alias of data/table. Decide whether to (a) add the alias export, or (b) treat this as a breaking change (feat! → major). Committed as feat (minor) for now.

Notes

  • The only dependency change is the added @tanstack/vue-table (with its pnpm-lock.yaml entries).
  • vue-tsc (webkit): 0 errors in the table components; ESLint clean; spec-compliance / tokens / references hooks pass; spec checksum valid. CI runs the authoritative install/build.

…d Paginator

Add the composition + data-driven Table and the Paginator under data/, replacing
the legacy data-table component.

- Table: compound API (Table.Header/Body/Row/Cell/...), data-driven mode via the
  @tanstack/vue-table engine (sorting/selection/pagination/global filter), frozen
  columns + sticky header, grow-to-fill sizing, per-column `resizable`, and an
  action column auto-pinned to the trailing edge.
- Paginator: pagination-button / paginator-info / paginator-page-size parts.
- Remove the legacy data/data-table component; add data/table + data/paginator
  exports (the data/data-table export is dropped, no alias kept).
- Specs and Storybook stories for Table and Paginator.
…nt tooling

- Add the compound-api rule; expand the dependencies rule (the @tanstack/vue-table
  exception) and the component-scaffold skill for the Table/Paginator pipeline.
- Refresh the spec template, eslint config, and Storybook main config.
@HerbertJulio HerbertJulio requested a review from a team as a code owner June 22, 2026 17:03
pauloSF0
pauloSF0 previously approved these changes Jun 22, 2026
…Paginator story refinements

- table: add `border` prop (default false); `principal` column flag + Table.Cell/HeadCell `principal` prop (first non-action column defaults to grow 2); empty-state block in the #empty slot (plain block, no row hover, no CTAs) reusing IllustrationLayers
- table stories: data-driven zero-logic stories, card-style Composition example, Empty story, explicit docs source code, generic <=10-row dataset, border control
- paginator stories: compound dot-notation form (Paginator.Button/Info/PageSize) + explicit source code
- specs: table.md updated (border, principal, empty-state), checksum refreshed
- fix: point @aziontech/theme at the workspace package (workspace:*) so install no longer 404s
@HerbertJulio HerbertJulio changed the base branch from main to dev June 23, 2026 13:36
- Wrap each Table story's source.code in a complete SFC (imports + data +
  columns + handlers + template) so Show code reproduces the rendered table.
- Replace the card-style Composition story with a Default data-driven table
  (border) plus a plain composition example; drop the redundant Bordered story.
- Register the compound sub-components under their dot-notation names so the
  runtime story templates resolve <Table.Header> etc. (also fixes the latent
  <Table.Search> resolution in Full Example's toolbar).
- Remove the now-redundant Usage blocks from the Table and Paginator
  component descriptions.
@isaquebock

Copy link
Copy Markdown
Contributor

Parece que o exemplo "Full Example" está bem diferente do design proposto. Parece que talvez que não são os componentes corretos. Vale verificar

Figma:
image

Code:
image

@HerbertJulio

Copy link
Copy Markdown
Contributor Author

Refeito a partir da dev e dividido em dois PRs (formato novo, sem nada da main voltando):

Comentário de design do @isaquebock: comparei o Full Example com o Figma (2053:7649) — os componentes batem com o design (toolbar, Chip de filtro, paginação+page-size, ações por linha, empty state). O ponto é provável fidelidade visual; sinalizei para QA visual no #667.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants