Thank you for being patient! We're working hard on resolving the issue
@tento-lona/sheetsStandalone row data-model library. Owns the row taxonomy
(SheetRow, RowKey, wire-format types, alias templates,
system rows) and the pure render pipeline (per-type plugin
contract, RenderScene + diff, tree builders, layout math) that
front-ends compose with.
No dependency on @tento-lona. The data model + render math live
here so that any platform — DOM, CLI, TUI, or a future native
back-end — can drive rendering without dragging in the SDK client
runtime.
┌──────────────────────────────────────────────────┐
│ @tento-lona/sheets │
│ │
│ ┌──────────────────┐ ┌────────────────────────┐ │
│ │ Data model │ │ Render pipeline │ │
│ │ ──────────── │ │ ────────────────── │ │
│ │ Sheet │ │ PerTypeSpec │ │
│ │ SheetRow │ │ RenderScene │ │
│ │ RowKey/Id │ │ buildScene / diff │ │
│ │ Dtype / CellEntry│ │ TreeWatcher │ │
│ │ Backend │ │ LayoutEngine │ │
│ │ ShapeRegistry │ │ Plugin data providers │ │
│ │ AliasTemplates │ │ TuiReconciler │ │
│ │ System rows │ │ │ │
│ └──────────────────┘ └────────────────────────┘ │
│ │ │ │
│ └───────────┬───────────┘ │
│ ▼ │
│ All consumers see │
│ the same identity + render seam │
└──────────────────────────────────────────────────┘
The data model + render pipeline both flow through one barrel:
import {
// ── Data model ────────────────────────────────
Sheet,
SheetRow,
RowKey, RowId, RowLocalId,
Dtype, CellEntry, CellValue,
ShapeKey, EncodingRegistry, EVENT_V1,
Backend, TestBackend, HttpBackend,
ROW_TYPE_SPECS,
ALIAS_TEMPLATES,
buildSystemRows, HEADERS_STATIC, FOOTERS_STATIC,
// ── Render pipeline ──────────────────────────
PER_TYPE_SPECS, PerTypeSpec, PerTypeAdapter,
RenderPluginRegistry, resolveCellRenderBinding,
RenderScene, buildScene, diffScene,
buildSceneTree, TreeWatcher,
LayoutEngine, RenderPlan,
calendarListDataProvider, tasksDataProvider,
TuiReconciler, renderTuiGrid,
} from "@tento-lona/sheets";
A platform implementor reading the rows barrel today sees ~370
names. To narrow the surface to just the render-pipeline subset
(scene, diff, tree, plugin data providers, layout math, TUI), use
@tento-lona/platform — it re-exports the implementor surface from
this package's render pipeline.
@tento-lona ↔ @tento-lona/sheets split@tento-lona/cli/rows-fixtures — /docs/cli-rows
— fixture CLI built on top of this library