Releases: pip-install-python/dash-mui-charts
Releases · pip-install-python/dash-mui-charts
Release list
v1.4.0
Boilerplate migration — M5 (API reference)
- NEW
/apipage: every prop of all 13 components as tables generated
from the components' own metadata via the.. kwargs::directive — they
can never drift from the installed version. Enabling fix in
lib/directives/kwargs.py: the numpy-style override (built for
dash-mantine-components docstrings) shadowed markdown2dash's own parser
fordash-generate-componentsdocstrings, so dash-built components
rendered EMPTY tables; the hook now falls back to the base parser when
it sees "Keyword arguments:". Navbar gains a Reference section; route
count 40 → 41 (both parity baselines re-recorded deliberately). - Home stays the bespoke Python page it already was — it mounts no
charts, carries the brand/install/catalog and a full LLMS_DOC, and
per-satellite custom homes are the network norm. Changelog likewise
stays a Python page (its disk read is exercised by the suite on every
run).
Fixed — tree rendering under the boilerplate shell (owner review)
- TreeView and SimpleTreeView now follow the theme toggle — both
components gained thedata-mantine-color-schemewatcher +
MUI ThemeProvider that TreeViewPro and TimeClock already had, so
checkboxes, icons and edit fields switch with light/dark mode instead
of rendering in the light palette everywhere (component fix in
src/lib/components, bundle + wrappers rebuilt; wrappers regenerated on
the current dash-generate-components, gaining its dash≤4.1 compat shim). - Trees no longer overflow their fixed-height boxes — the
boilerplate's global markdown list styling (ul/olandlimargins in
assets/main.css) leaked into MUI's nested ul/li tree DOM, inflating
every tree's height (aheight=200tree bled into the next section on
/tree-icons). Neutralized inside tree roots via assets/dark-mode.css;
upstream, the boilerplate rule should arguably be prose-scoped. - The /tree-icons SX demo's hardcoded light
#f8f9ffbackground became
var(--mantine-color-default)— it was unreadable in dark mode. - The
heightprop now actually contains the tree (TreeView and
SimpleTreeView): a fixed height previously sized the wrapper only —
block children grow past a fixed-height parent and divs don't clip, so
the tree rendered full-length over the next section.heightnow
impliesoverflow: autoon the wrapper, making the /tree-icons
"Fixed Height with Scroll" demo do what its title says.
Boilerplate migration — M4 (TreeView + Date & Time Pickers)
- Ten more pages markdown-driven — the eight TreeView pages (basic,
simple, selection, expansion, editing, icons, disabled, and the Pro
page with its live license-posture badge kept) and both pickers
(/time-clock, and/time-clock-labwith its liquid-glass styling
intact). Whole-page transforms, ids and callbacks verbatim; the four
existing LLMS_DOC bodies folded into their md pages. Only home and
changelog remain in pages/. - The dogfooding story returns as content:
/tree-simplegained a
sidebar demo built FROMcomponents/navbar.py's real family map — a
SimpleTreeView that genuinely navigates these docs, exactly as the
pre-migration shell's sidebar did (it can never drift from the actual
nav because it is generated from it). Chart baseline deliberately
re-recorded: 195 mounts, 79 chart-touching callbacks.
Boilerplate migration — M3 (the LineChart batch)
- Twelve more pages markdown-driven (38 of 40) — the seven LineChart
pages (basics, Pro, brush, reference lines, highlighting, ticks & hover,
zoom preview),/highlighting-sync,/crosshair, and the three
CompositeChart pages. The batch's 7,550 lines ported as whole-page
transforms — onedemo.pyexec module per page, every id and all ~50
callbacks verbatim (the sync-tooltip overlays, the crosshair alert
system and the render-BP LoadingOverlay dashboard included) — with md
wrappers carrying frontmatter, overview prose, and the two existing
LLMS_DOC bodies folded in. Per-section md granularity for this family is
deliberately deferred to a content pass; the format, metadata, TOC/ad
asides and real llms.txt documents are all in place now. - Every Pro route now explains the key requirement in-page
(BANNER_ROUTES == PRO_ROUTES): the twelve md files carry the Pro
admonition naming MUI_PRO_API_KEY, so silent degradation to a
watermarked chart with no explanation is no longer an allowed posture —
the test asserts it stays that way. - Transform bugs the gates caught before runtime: the module cut point
matchedfrom dash_mui_charts importinside LLMS_DOC code fences
(syntax error), prose lines starting with "from " were harvested as
imports, the banner-block strip went one line too deep on the two
banner pages, and two pages lost theimport dashtheir callbacks use
(F821). All fixed; flake8 and chart parity green.
Boilerplate migration — M2 (BarChart + Candlestick + LiveTrading)
- Eight more pages markdown-driven (26 of 40): the six BarChart pages
(/barchart-basic6 examples,/barchart-dataset3,/barchart-stacking
5,/barchart-interaction5 incl. the click/axis-click/highlight
callbacks,/barchart-reference6,/barchart-pro3 Pro zoom demos with
the license-posture line in the first),/candlestick(7 examples over a
shared OHLC generator; the never-rendered 60-candle dataset dropped as
dead code), and/live-trading(the whole simulator — 11 callbacks —
transformed as one exec module; the redundant View Code block replaced by
.. source::). Chart parity GREEN throughout. - Directory naming rule learned: families whose examples import shared
_data.pyneed UNDERSCORE directories (docs/barchart_basic/) — a
hyphenated package can be exec'd via importlib but cannot be
sibling-imported (from docs.barchart-basic._data import xis a syntax
error). Endpoints are unaffected (frontmatter owns them). /live-tradingjoined BANNER_ROUTES: its markdown now documents the
MUI_PRO_API_KEY requirement permanently (Pro admonition +
functions-as-props note) rather than only when the key is missing.
Boilerplate migration — M1 (Pie + Heatmap + Scatter)
- Five more pages markdown-driven (18 of 40 routes' chart content now
under docs/):/pie(6 exec examples),/pie-props(Titanic nested-pie
playground, transformed whole),/scatter(7 examples sharing a
seeded_data.pyso every point cloud renders exactly as before),
/heatmap(7 Pro examples + the color-scale reference as a real
markdown table),/heatmap-props(Pro playground, transformed whole).
Same endpoints, chart ids and callbacks throughout — chart parity GREEN
against the pre-migration baseline. - Pro degradation tests pinned by ROUTE, not source file — the
migration moves key-reading code from pages/.py into docs/ exec
modules, but the route's obligation to degrade (banner or unlicensed
chart, never a traceback) doesn't move. 17 Pro routes, 6 banner routes,
set-equality both ways. - Transform fix caught by lint: the heatmap-props port had dropped its
jsonimport (cell-click display would have crashed); restored, plus
inherited f-string debt cleaned rather than carried into docs/. - The stale "0.0.8" release banner on the Scatter page retired; its
llms.txt placeholder stubs (both props pages) became real documents.
Boilerplate migration — M0 (shell + chart-parity gate + Sparkline pilot)
- The docs app now runs on the dash-documentation-boilerplate structure
(model: dash_pannellum):run.pyentry point (gunicornrun:server),
components/appshell/header/navbar, pluggable-backend plumbing (Flask
enforced until the analytics hooks grow async twins), dependency floors
at boot, optional Clerk (vendored 0.9.1, dormant without keys), proxy
scheme fix, optional Dash MCP, andpages/markdown.pyserving
docs/**/*.mdwith frontmatter, TOC asides,.. exec::live examples
and per-page llms.txt built from the markdown body. - Chart parity replaces exact-tree parity as the migration gate
(scripts/route_parity.py --charts-only): route set, per-route
dash_mui_charts census, chart component ids, and the 78 chart-touching
callbacks — recorded from the pre-migration app and GREEN after M0: all
40 routes, 194 chart mounts identical. - SparklineChart family ported to markdown (
docs/sparkline*/): 3 md
pages + 11 exec example modules, callbacks verbatim, same endpoints. The
three placeholder llms.txt stubs became real documents for free. - The docs stack moves to Dash 4.4 / dmc 2.7 (requirements.txt;
markdown2dash installs--no-depsagainst its gunicorn<22 pin, mistune
listed explicitly — LESSONS §8). The dash_mui_charts PACKAGE floor is
unchanged (dash>=3.3). - Ad client returns to the canonical boilerplate copy — per-page aside
slots served by the mount-fired MATCH callback,AD_APP_ID=muicharts.
The floating-slot fork (and the double-impression bug it dodged) retired
with the static shell that caused it. - Old shell retired: SimpleTreeView sidebar (nav is now the grouped
boilerplate navbar; the dogfooding story moves into the TreeView docs in
M4),00-loading-theme.js+01-nav-restore.js(they fought the new
color-scheme system / targeted the removed tree), the dead
license-key-store.dcc.Location(id="url")and the SPA analytics
counting rule carry over unchanged; the header keeps the
header-avatarfavicon-swapper contract and the package-version badge. - Tests updated for the new shell (80 passing, zero secrets): navbar
family map ↔ registry parity, per-page aside ad slots, old-shell assets
stay deleted; identity/card/version/traffic suites unchanged. - M0 owner-review fixes: the boilerplate's
main.css/m2d.css/
llms_copy.jsnow ship in assets/ (their absence left the theme toggle
showing sun AND moon, and nav link...