[package] name = "makepad-table" version = "0.1.0" edition = "2021" authors = ["Makepad Table Scaffold "] description = "Notion-style manipulable table widget for Makepad + receipt/quote/invoice platform" license = "MIT OR Apache-2.0" [dependencies] # Pinned to the same fork revision the rest of the repo uses. This crate # previously tracked `github.com/makepad/makepad` branch `dev`, which is a # moving target: the same commit of this repo would build against a # different makepad from one day to the next, and against a *different* # makepad from every other crate here. Verified to compile against the pin. # For local makepad dev, replace with: # makepad-widgets = { path = "../../widgets" } makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572ab62a1c1598909971f602f99083671cc" } # Image format sniffing for attached cells, matching what the Robrix-derived # app in this repo (`pageflipnav/src/utils.rs`) uses. Zero transitive # dependencies: it reads a header and names a format, nothing more. imghdr = "0.7.0" # --------------------------------------------------------------------------- # Optional: the host capabilities behind `CellAttachmentProvider`. # --------------------------------------------------------------------------- # # `nigig-uikit` supplies the camera and location widgets that item 6's cell # menu offers. It is optional because it is expensive: measured, it takes the # dependency tree from 88 crates to 274. # # That is not packaging waste. `camera_widget` imports `send_geocode_request` # and `request_map_tile` from `nigig-core`, both of which call `spawn_async` # -- the shared Tokio runtime -- and the first makes an HTTPS call to # Nominatim. The widget genuinely needs an async runtime and an HTTP client. # # So the cost is real and it is opt-in. With the feature off the widget # depends on `makepad-widgets` and `imghdr` alone, and the attachment menu # reports camera and location as unavailable rather than pretending. Any app # turning it on already depends on `nigig-core`, so its own tree grows by # nothing. nigig-uikit = { path = "../../nigig-uikit", optional = true } [features] default = [] ## Camera and location attachments, via `nigig-uikit`. See the dependency ## comment above for what this costs and why. capabilities = ["dep:nigig-uikit"] [workspace] # Workspace members: the table widget lib itself + the doc-model and pdf-export # crates + the invoicer makepad app. # # The table_demo demo lives at apps/invoicer/examples/table_demo.rs and runs # via `cargo run -p makepad-invoicer --example table_demo` — it inherits # makepad-invoicer's [dependencies], so no separate Cargo.toml is needed. members = [ ".", # makepad-table lib (the Table widget) "crates/doc-model", # shared data types "crates/pdf-export", # pdf-writer based exporter "apps/invoicer", # makepad UI app (also hosts the table_demo example) "examples/table_demo", # standalone demo; the drop-into-makepad template ]