makepad/apps/sheets/Cargo.toml
Admin 6105b61e6e sheets + files: the assistant reads and writes cells, makes folders, renames and trashes
sheets: read_range (one cell or an A1 rectangle, up to 2000 cells, rows
as tab-separated display values), find (case-insensitive over the used
range, 50 hits), write_cell and set_range (Act) — edits go through the
same commit path as paste and direct entry, so recalculation, undo and
the chrome all see them; the module executor answers the same tools.
files: mkdir, rename (a bare name, no separators) and trash (into the
app's own trash dir, never a delete) — Destructive, so the router shows
a confirm card first; every path through the jail, on the demo VFS as
on disk. Written by the delegate from the existing shapes; sheets 88,
files 158 tests.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-02 17:58:35 +02:00

42 lines
1.6 KiB
TOML

# sheets — a spreadsheet as a plain full-window Makepad app, part of the
# Makepad family (wm hosts it as a tile; terminal/browser/files/task are
# siblings). The grid is the stock `DataGrid` widget; everything above it —
# the formula engine, the dependency graph, formats, undo, CSV — lives here.
#
# sheets runs standalone, and unmodified inside makepad-wm / Studio tiles via
# the shared --stdin-loop client runtime every Makepad app has.
[package]
name = "makepad-sheets"
version = "0.1.0"
edition = "2021"
default-run = "sheets"
[[bin]]
name = "sheets"
path = "src/main.rs"
required-features = ["standalone"]
[lib]
name = "makepad_sheets"
path = "src/lib.rs"
[features]
default = ["standalone"]
demo = []
# The standalone window: the F10 overlay and the port toward it. A host
# that links the MODULE (makepad-wm) leaves this off and gets the lib only.
standalone = ["dep:makepad-aichat", "dep:makepad-wm-api"]
[dependencies]
makepad-widgets = { path = "../../widgets" }
makepad-wm-theme = { path = "../../libs/wm_theme" }
# The assistant: the F10 overlay in this window, and the bounded sheet tools
# exposed to it (src/ai.rs).
makepad-aichat = { path = "../aichat", optional = true }
# The window manager's vocabulary for the standalone window: the bar's
# title and the polite close (the module has no window of its own).
makepad-wm-api = { path = "../../libs/wm_api", optional = true }
makepad-ai-services = { path = "../../libs/ai/services" }
# The module contract: what the window manager seats in-process (src/module.rs).
makepad-app-module = { path = "../../libs/app_module" }