fix(table): pad headers to table width for center alignment#1009
Open
syf2211 wants to merge 1 commit into
Open
fix(table): pad headers to table width for center alignment#1009syf2211 wants to merge 1 commit into
syf2211 wants to merge 1 commit into
Conversation
When a table is rendered inside a lipgloss style with Align(Center), headers and cell contents could misalign because viewport rows are padded to the table width while headers were not. Pad the joined header row to m.Width() so headers and viewport content share the same line width before external alignment is applied. Fixes charmbracelet#576
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.
Summary
Pad the table header row to the configured table width so headers align with viewport cell rows when the table is rendered inside a centered lipgloss style.
Motivation
Fixes #576. Between bubbles v1.17.1 and v1.18.0, wrapping a table in
lipgloss.Align(Center)could misalign column titles with cell contents. The viewport pads data rows tom.Width(), but headers were only joined to their natural column width. When an outer style centers each line independently, the shorter header line shifts relative to the wider body rows.Changes
m.Width()inheadersView()when width is setTestModel_View_CenteredInABoxtestTestModel_View_CenteredWithWideContentregression test matching the issue reproductionTests
All tests pass.
Notes
This is a minimal alignment fix at the table header layer. Known border-related header/cell width mismatches noted in existing TODOs are unchanged.