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>
42 lines
1.6 KiB
TOML
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" }
|