Something went wrong

Thank you for being patient! We're working hard on resolving the issue

Introduction - Lona Docs Log in

@tento-lona/sheets

Standalone 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.

Two faces

┌──────────────────────────────────────────────────┐
│ @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           │
└──────────────────────────────────────────────────┘

Imports

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.

See also