0.2.0 - 2026-09-23

← All releases

Added

  • ctx.cellBox() / ctx.popup() / ctx.done(): DOM anchoring API for custom cell editors. Includes a box positioned over the cell, a popup that escapes overflow clipping (auto flip/clamp), and built-in Enter/Escape/Tab/outside-click commit/cancel handling
  • ctx.cellBox({ el }): places a host-supplied element (e.g. <input type="color">) over a cell without creating a new one
  • columnDefs[].cellButton: built-in clickable button affordance for a cell. Drawing and hit-testing share the same width constant.
  • CellRenderers.link(): link-style cell renderer (color, underline, alignment, per-row linked state)
  • Renderer.clipToWidth() export: the same ellipsis-truncation logic used by built-in cell renderers, now usable in custom renderers.
  • index.d.ts: added CellEditorCtx/CellEditorEl/CellButtonDef types, and filled in missing type declarations for onCellDoubleClick/onColumnVisibilityChange/columnLetterHeader

Removed (Breaking)

  • Removed the GRID_CLASSES.swatch CSS class, including its hover-scale rule.

Changed / Performance

  • Internal performance improvements: cached geometry lookups during mousemove, cached header-cell layout, indexed edited-cell lookups, and changed setState() column reindexing from O(n²) to O(n). No public API changes
  • Built-in editors (dropdown, multiselect, richtext) now share the same anchoring system as custom editors; scroll-triggered re-anchoring is coalesced to once per frame
  • Source comments are stripped from the dev/esm build outputs, reducing bundle size by roughly 37-40%

This site uses Just the Docs, a documentation theme for Jekyll.