facett-app — crate card
Reverse-engineered (from source — verify, don't trust the name)
- One-line pitch: The app-framework layer that turns a set of facett
Facets into a whole app — a nav model, a router, and nav chrome. - Does: Provides
NavModel(one navigation model → many surfaces), aRouter(route→view with back/forward, native + wasm-hash), and nav chrome (Sidebar,breadcrumb,NavShell,AppShell). Immediate-mode, canvas-only, headless-addressable. Ships a broad set of app-shell UI primitives as modules: modal, toast, palette (command palette), popover, dropdown, colorpicker, datepicker, splitpane, tabview, tree, widgets, plus amenu::nav_commandsbridge that drives facett-menu's palette/menubar/context-menu from a NavModel. This is "Fas 1" of the facett framework införandeplan (nav & menu backbone; AppShell/split-panes/overlays land in later phases). - Key deps:
facett-core(Facet),facett-menu(uniform menu/command system),egui,serde_json. Dev:eframe,egui_kittest,proptest(invariant checks over Msg-like op sequences). Example bins:nav_app,starter_app. - Shape: lib, ~2.6k lines across ~18 modules (appshell, router, nav, shell, sidebar, palette, modal, toast, dropdown, datepicker, colorpicker, popover, splitpane, tabview, tree, widgets, menu, tests).
- Observed role in the workspace: The composition layer above the components — the "starter template" for whole facett apps.
Fill in (one line each — only the human knows these)
- Primary consumer(s):
- Why it exists (vs the obvious alternative):
- Hard constraint (airgap / no-C-deps / no-FFI / pure-Rust / etc.):
- Release cadence & independence (rides a parent? own repo someday?):
- Status (production / prototype / experimental / stubbed):
- Must-NOT-change invariant:
- Biggest known gap or TODO:
- Anything a newcomer would get wrong about it: