Skip to content

@jsvision/ui / alignCell

Function: alignCell()

alignCell(text, width, align, measure): string

Defined in: ui/src/table/columns.ts:205

Clip text to exactly width cells (width-aware — never splits a wide/CJK glyph), then pad to the requested alignment: left pads on the right, right pads on the left, center splits the remainder (an odd extra cell goes to the right). The result is always exactly width cells. This only clips and pads; the caller is responsible for sanitizing before drawing.

Parameters

text

string

The cell text.

width

number

The target cell width (≤ 0 returns an empty string).

align

ColumnAlign

The horizontal alignment.

measure

(s) => number

Per-glyph display-width function (measures in terminal cells, wide-glyph aware).

Returns

string

A string that occupies exactly width terminal cells.

Example

ts
import { alignCell } from '@jsvision/ui';

alignCell('Ada', 6, 'right', (s) => s.length);         // '   Ada'
alignCell('Bartholomew', 6, 'left', (s) => s.length);  // 'Bartho' (clipped to 6 cells)