Skip to content

Releases: pip-install-python/dash-mui-charts

Release list

v1.4.0

Choose a tag to compare

@github-actions github-actions released this 03 Aug 15:27

Boilerplate migration — M5 (API reference)

  • NEW /api page: 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
    for dash-generate-components docstrings, 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 the data-mantine-color-scheme watcher +
    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/ol and li margins in
    assets/main.css) leaked into MUI's nested ul/li tree DOM, inflating
    every tree's height (a height=200 tree 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 #f8f9ff background became
    var(--mantine-color-default) — it was unreadable in dark mode.
  • The height prop 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. height now
    implies overflow: auto on 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-lab with 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-simple gained a
    sidebar demo built FROM components/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 — one demo.py exec 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
    matched from dash_mui_charts import inside 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 the import dash their 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-basic 6 examples, /barchart-dataset 3, /barchart-stacking
    5, /barchart-interaction 5 incl. the click/axis-click/highlight
    callbacks, /barchart-reference 6, /barchart-pro 3 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.py need 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 x is a syntax
    error). Endpoints are unaffected (frontmatter owns them).
  • /live-trading joined 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.py so 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
    json import (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.py entry point (gunicorn run: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, and pages/markdown.py serving
    docs/**/*.md with 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-deps against 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-avatar favicon-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.js now ship in assets/ (their absence left the theme toggle
    showing sun AND moon, and nav link...
Read more