Decide and implement Observable-style table input parity for notebooks #131
Labels
No labels
abandoned
active
audit
blocked
data-safety
difficulty:easy
difficulty:hard
difficulty:high
difficulty:medium
docs
done
duplicate
notebook-v0
open
priority:high
ready
release-critical
safe-mode
spec
spec-backlog
subsystem:api
subsystem:backlog
subsystem:bases
subsystem:ci
subsystem:command
subsystem:configuration
subsystem:consolidate
subsystem:dependencies
subsystem:desktop-electron
subsystem:diffmerge
subsystem:docker
subsystem:docs
subsystem:fuzzy
subsystem:graph
subsystem:hotkeys
subsystem:lapis
subsystem:maint
subsystem:maintenance
subsystem:markdown
subsystem:markdown-lint
subsystem:md018
subsystem:notebook
subsystem:notifications
subsystem:opfs
subsystem:package
subsystem:plugin-markdown
subsystem:plugin-tasks
subsystem:plugins
subsystem:registry
subsystem:release
subsystem:renovate
subsystem:restore
subsystem:scripts
subsystem:search
subsystem:settings
subsystem:spec
subsystem:tasks
subsystem:testing
subsystem:ui
subsystem:web
subsystem:workspace
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
lapis-notes/lapis#131
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Settle the remaining table-surface gap between Observable's System Guide examples and the Lapis markdown-native notebook runtime now that notebook-relative CSV/TSV attachment loading and notebook-owned dataframe rendering are already supported.
Problem
The current notebook runtime supports
lapis.FileAttachment(path).csv()/.tsv()and can render tabular attachment data throughlapis.table(...). The remaining System Guide gap isInputs.table(...): users reading Observable examples do not yet know whether Lapis supports that name as a selectable input control, a display-only compatibility shim, or intentionally steers notebook authors to the existinglapis.table(...)dataframe renderer.Goal
Define and ship the smallest table parity surface that makes attachment-driven System Guide examples understandable in Lapis notebooks without replacing notebook-owned dataframe rendering or importing Observable's inspector/runtime model.
Scope
Inputs.table(...)examples and choose the Lapis-supported contract for the first parity slice.Inputs.table(...)support is chosen, implement it inside@lapis-notes/notebook-inputas a DOM-backed notebook input that accepts array/object row data, preserves DSV column order when available, emits stable input/change events, and exposes a serializable.valuefor downstream cells.Inputs.table(...)is not chosen for this slice, document the compatibility decision clearly and makelapis.table(...)the explicit supported table display surface for attachment-driven examples.FileAttachment(...).csv({ typed: true }).Non-goals
Acceptance Criteria
Inputs.table(...)is supported directly or whetherlapis.table(...)is the supported Lapis table parity surface.FileAttachment(...).csv({ typed: true })without manual JSON conversion in fixture code.Inputs.table(...)is supported, changing the table selection or value updates downstream dependent cells through the existing notebook input protocol.Implementation Notes
Inputs.table(...)becomes a compatibility alias or wrapper.lapis.table(...)instead of directInputs.table(...), close the parity loop with explicit documentation and acceptance coverage rather than leaving the choice implicit.Suggested Files or Specs To Inspect
packages/notebook/input/src/**packages/notebook/src/lib/runtime/**packages/notebook/src/lib/render/dataframe/**e2e-vault/plugin-notebook/**spec/src/20-packages/plugins/notebook/documents-and-runtime.mdspec/src/20-packages/plugins/notebook/observable-system-guide-parity.mdValidation Commands
Follow-up Tasks
Implementation Summary
Added direct Inputs.table support for CSV-backed row selection with runtime and Playwright coverage.
Expand notebook FileAttachment and table helpers toward Observable System Guide data examplesto Decide and implement Observable-style table input parity for notebooks