feat: add generic toolbar - #559
Merged
Merged
Conversation
IzumiSy
force-pushed
the
feat/core/generic-toolbar
branch
from
September 29, 2026 02:13
f765b35 to
2cf963d
Compare
IzumiSy
marked this pull request as ready for review
September 29, 2026 02:13
interacsean
approved these changes
Sep 29, 2026
IzumiSy
force-pushed
the
feat/core/generic-toolbar
branch
from
September 29, 2026 03:10
2cf963d to
467b535
Compare
Contributor
Author
|
@copilot fix the CI error by fixing docs. |
Co-authored-by: IzumiSy <982850+IzumiSy@users.noreply.github.com>
Contributor
Contributor
Author
|
@copilot Move |
Co-authored-by: IzumiSy <982850+IzumiSy@users.noreply.github.com>
Contributor
itsprade
added a commit
that referenced
this pull request
Sep 29, 2026
Brings the prototype up to date with main (58 commits, incl. the generic Toolbar #559 and the docs-src pipeline #396). main moved every demo page under pages/showcase/ (#513), so the prototype moves with them, unchanged: /data-table-selection -> /showcase/data-table-selection, listed in the sidebar's Showcase group. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
itsprade
added a commit
that referenced
this pull request
Sep 29, 2026
…rows are selected With selectionActions set and at least one row selected, the footer becomes the bulk-action bar (#1738): the count, the actions, and Clear, with the footer's own children (usually Pagination) kept alongside. Tables without selectionActions render exactly as before. - Built on the generic Toolbar (#559): the bar is a Toolbar.Row, so it gets role=toolbar and Arrow/Home/End navigation between its buttons. - The first three actions render as buttons; the rest collapse into a "More actions" menu that opens upward. An action with appliesTo shows its eligible count ("Activate (6)") and disables at zero. - Surface: bg-accent, which stays soft in every theme and both modes. A display:contents wrapper re-points --accent and --muted-foreground so hover states and secondary text stay visible on the tinted bar. - Sticky while open, so on a page-scrolling table the bar rides the bottom of the viewport until the table's end scrolls into view. The DataTable root moves from overflow-hidden to overflow-clip for this: both clip to the rounded frame, but hidden also makes the root a scroll container, which trapped the sticky footer inside the table. - Pagination hides its own "N selected" text while the bar is up and shares the line with it, dropping to a second line only when it doesn't fit. - A persistent polite live region announces the count from the first tick; when the bar closes with focus inside it, focus returns to the header checkbox. Labels in en and ja. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
itsprade
added a commit
that referenced
this pull request
Sep 29, 2026
Every typed column can now be edited in place: - `text` / `link` with `edit.options`: a dropdown of choices. The column stores a choice's value and every cell shows its label. - `badge`: a dropdown whose choices are the same badges; defaults to the entries of `typeOptions.badgeLabelMap`, else the enum filter options. - `date`: a calendar popover (plus a time field for `datetime`), with `min` / `max` bounds and Clear unless `required`. Picks commit straight away through the same `onCommit` / pending / revert path as typed cells; `validate` can reject a pick with a tooltip. Tab moves between all editable cells. Also: - Date-only "YYYY-MM-DD" values now render as that day in every time zone (they showed the previous day west of UTC). - Navigation no longer relies on ref cleanups, which `Input` and `Select.Trigger` drop since #559 merged their refs; cells that left the page are skipped. - Docs, demo (supplier dropdown, status badge dropdown, expected date) and changeset updated. Refs tailor-inc/platform-planning#1750 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation
DataTable.Toolbarcombines a layout container with DataTable-specific controls. That leaves its fixed placement model unusable for other list presentations and action bars.The agreed direction is a generic toolbar that owns layout only. DataTable controls then compose with it like controls from any other feature. The generic API requires an explicit
justify="between"for the conventional leading/trailing layout, so the docs and runnable examples provide that canonical scaffold rather than leaving it implicit.This change provides the migration path; it does not deprecate
DataTable.Toolbaryet.Design Decision
One generic layout primitive
Toolbar.RootstacksToolbar.Rowelements.Toolbar.Groupkeeps related controls together,Toolbar.Separatordivides them, andjustify="between"distributes the outer groups across a row.DataTable composition
DataTable.ColumnSettingsis available as a placeable control. When a generic toolbar is a direct child ofDataTable.Root, the table owns the outer frame and the toolbar supplies only the divider below its rows.Keyboard navigation
Buttons, inputs, selects, comboboxes, and tabs automatically register with their containing toolbar row. Plain controls support row-level Arrow/Home/End navigation; composite controls retain their own directional-key behavior.
Summary
Toolbarcomponent, documentation, tests, and a runnable example.DataTable.Toolbarwhile documentingToolbaras the choice for new custom layouts.