Skip to content

feat: resizeMaxSize + stop header ellipsis clipping label-less headers#84

Merged
zvndev merged 1 commit into
mainfrom
feat/resize-max-size-and-header-ellipsis
Jul 8, 2026
Merged

feat: resizeMaxSize + stop header ellipsis clipping label-less headers#84
zvndev merged 1 commit into
mainfrom
feat/resize-max-size-and-header-ellipsis

Conversation

@zvndev

@zvndev zvndev commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Two upstream fixes from Bevrly adoption, shipped together as a small release.

1. Header ellipsis clips label-less header content (bug)

The .yable-th label ellipsis span was applied to every header. For a selection column with no string label, the flex span collapsed to ~2px and cropped the 16px select-all checkbox.

Fix: only apply the ellipsis clip when the header content is a string. TableHeader marks string headers with a yable-th-label class; the CSS ellipsis rule now targets .yable-th-content > .yable-th-label (was > span:first-child). Component/empty headers render at natural width.

2. Separate the user-resize clamp from maxSize (feature)

New resizeMaxSize?: number on ColumnDefExtensions (defaults to maxSize). maxSize still caps auto-sizing/stretch; resizeMaxSize is the upper bound for a human drag-resize. Set it (e.g. Number.POSITIVE_INFINITY, or via defaultColumnDef app-wide) to let users drag a column past its auto-size cap. Because computeAutoColumnWidths already enforces maxSize itself, raising this render ceiling only affects widths a human dragged — auto-sizing never exceeds maxSize. Default (resizeMaxSize === maxSize) is byte-identical to prior behavior.

Clamp applied in both clampColumnSize (headers.ts, commit path) and getSize (column.ts, render path).

Tests

  • Core: drag past maxSize with resizeMaxSize: Infinity commits + renders the wider width; unset stays clamped (back-compat); getSize resizeMax bounds.
  • e2e: select-all checkbox fully visible at column size 40; capped column drags wider than maxSize.

Verification

  • core 583 passed, react 328 passed, typecheck clean, lint 0 errors, e2e 53 passed.

Bumps: core minor (0.15.0), react patch (0.18.1), themes patch (0.6.2), vanilla patch (0.3.21). No majors.

Note: the internal CSS selector rename (.yable-th-content > span:first-child.yable-th-label) is a minor theme surface change — consumers overriding that exact selector should move to .yable-th-label.

🤖 Generated with Claude Code


View with Codesmith Autofix with Codesmith
Need help on this PR? Tag /codesmith with what you need. Autofix is disabled.

…ss headers

Two small upstream fixes shipped together.

resizeMaxSize (core, minor):
- New per-column `resizeMaxSize` caps USER drag-resize independently of
  `maxSize` (defaults to `maxSize`, fully back-compatible). `maxSize` still
  caps auto-sizing/stretch (enforced in computeAutoColumnWidths); raising the
  render/resize ceiling in getSize + clampColumnSize only affects widths a human
  dragged. Set it (e.g. Infinity, or app-wide via defaultColumnDef) to let users
  drag a column past its auto-size cap.

Header ellipsis (react patch + themes patch):
- The 0.6.1 header-label ellipsis clip cropped label-less headers (e.g. a
  selectColumn checkbox). HeaderCell now marks only string headers with
  `.yable-th-label`, and base.css scopes the ellipsis to that class, so
  component/empty headers are never clipped.

Tests: core unit tests for clampColumnSize + getSize (past-maxSize renders,
back-compat clamp preserved); e2e for the visible selection-header checkbox and
a drag past maxSize via defaultColumnDef. Docs updated in both systems.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@vercel

vercel Bot commented Jul 8, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
table Ready Ready Preview, Comment Jul 8, 2026 3:28pm
yable-demo Ready Ready Preview, Comment Jul 8, 2026 3:28pm

Request Review

@zvndev
zvndev merged commit c82b2b9 into main Jul 8, 2026
14 checks passed
@zvndev
zvndev deleted the feat/resize-max-size-and-header-ellipsis branch July 8, 2026 15:31
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.

1 participant