Status: backlog Priority: P2 Created: 2026-02-22 Owner: AI Depends-on: phase8-test-migration Phase: 8 — Library Restructuring
The demo app under src/demo/ uses the old namespace structure (rad.form, rad.report, rad.routing, fo/ for engine-specific options). After the namespace restructure, all demo files must be updated to use rad.statechart.* namespaces and sfo//sro/ for engine-specific options.
This is the user-facing validation that the restructured library works end-to-end: the demo should compile, start a server, and serve all 6 pages verified in Phase 7 Chrome testing.
statechart.* namespacesfo/ to sfo/ and ro/ to sro/ where appropriatefo/ and ro/ (they come from fulcro-rad dependency)| File | Key Changes |
|---|---|
ui/account_forms.cljc | rad.form → rad.statechart.form, fo/triggers → sfo/triggers if used |
ui/invoice_forms.cljc | Same pattern |
ui/address_forms.cljc | Same pattern |
ui/item_forms.cljc | Same pattern |
ui/line_item_forms.cljc | Same pattern |
ui/inventory_report.cljc | rad.report → rad.statechart.report, ro/ → sro/ for engine-specific |
ui/invoice_report.cljc | Same pattern |
ui/ui.cljc | rad.routing → rad.statechart.routing |
| File | Key Changes |
|---|---|
client.cljc | rad.application/install-statecharts! → rad.statechart.application/install-statecharts!, same for start-routing!, install-url-sync!. Shared functions (fulcro-rad-app, install-ui-controls!) stay as rad.application/. |
development.cljc | Update REPL startup requires (note: file moved to src/demo/development.cljc) |
headless_client.clj | Update requires — statechart.application for statechart init functions |
system.cljc | Update if it references form/report namespaces |
| File | Key Changes |
|---|---|
headless_form_tests.clj | Update requires |
headless_report_tests.clj | Update requires |
headless_routing_tests.clj | Update requires |
test_server.clj | Update requires |
;; OLD (in demo UI forms)
(:require
[com.fulcrologic.rad.form :as form]
[com.fulcrologic.rad.form-options :as fo]
[com.fulcrologic.rad.report :as report]
[com.fulcrologic.rad.report-options :as ro]
[com.fulcrologic.rad.routing :as rroute])
;; NEW
(:require
[com.fulcrologic.rad.statechart.form :as form]
[com.fulcrologic.rad.form-options :as fo] ;; shared keys unchanged
[com.fulcrologic.rad.statechart.form-options :as sfo] ;; add if using engine-specific keys
[com.fulcrologic.rad.statechart.report :as report]
[com.fulcrologic.rad.report-options :as ro] ;; shared keys unchanged
[com.fulcrologic.rad.statechart.report-options :as sro] ;; add if using engine-specific keys
[com.fulcrologic.rad.statechart.routing :as rroute])
For each demo file, audit option maps and change engine-specific keys:
;; OLD
{fo/id account/id ;; KEEP as fo/ (shared)
fo/attributes [account/name] ;; KEEP as fo/ (shared)
fo/triggers {:on-change ...} ;; CHANGE to sfo/triggers
fo/route-prefix "account"} ;; KEEP as fo/ (shared)
;; NEW
{fo/id account/id
fo/attributes [account/name]
sfo/triggers {:on-change ...} ;; statechart-specific
fo/route-prefix "account"}
sfo/ and sro/ prefixesfo/ and ro/ prefixesCan you improve this documentation?Edit on GitHub
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |