feat: bcc-ui-theme 0.1.0 — shared Gradio theme + stylesheet for the fleet
Annie Voigt+1: Claude Opus 5
89e8390
A behaviour-free package: a gr.themes.Base subclass and a stylesheet, so the
six customer-facing apps read as one product. Created out of the fleet UI
inventory (pdac-analysis-orchestrator/docs/design/fleet-ui-inventory.md).
Verified on gradio 5.50.0 (py3.11) AND 6.18.0 (py3.13): 46 tests green on
both, plus a real served-page check that the stylesheet is actually delivered.
The theme uses only Base.set() keywords present in both — 5.50's 262 are a
strict subset of 6.18's 267, so 5.50 binds, and the portable-keyword test
checks against the INSTALLED gradio so `make test-both` is the proof.
Two facts measured rather than assumed, both load-bearing:
- The theme/css call site is version-dependent and there is NO line that works
on both majors. gradio 5.50: Blocks() only (launch() has no **kwargs, so the
6.x form raises). gradio 6.18: launch() only — Blocks() silently absorbs the
argument into **kwargs, warns into a build log, and stores css=None.
- That silent drop is live in the…