Skip to content

feat(mix_chart): add Mix-owned chart API#991

Merged
leoafarias merged 4 commits into
mainfrom
feat/mix_fl_charts
Jul 23, 2026
Merged

feat(mix_chart): add Mix-owned chart API#991
leoafarias merged 4 commits into
mainfrom
feat/mix_fl_charts

Conversation

@leoafarias

@leoafarias leoafarias commented Jul 22, 2026

Copy link
Copy Markdown
Member

Related issue

No linked issue.

Description

Add mix_chart 0.0.1-beta.0: a Mix-owned, backend-neutral chart API for line/area, grouped/stacked/floating bar, and pie/donut charts. Consumers work with chart models, callbacks, Specs, generated Stylers, and contextual dot shorthand without importing or receiving fl_chart types.

fl_chart ^1.2.0 remains the private renderer. This keeps the mature layout, painting, and hit-testing engine while giving Mix control over the public design-system vocabulary, composition, interaction identity, semantics, and animation ownership.

Changes

  • add immutable public data/configuration models, stable-ID hit results, axes, viewport controls, selection, cursors, and widget tooltips
  • add generated Mix Specs/Stylers with factory, fluent instance, and contextual .axis(.label(...)) composition
  • map line/area, grouped/stacked/floating bar, and pie/donut presentation through three private renderer adapters
  • make animation ownership deterministic, snap incompatible topology changes, and honor reduced-motion settings
  • harden dash validation, bar viewport/category handling, tooltip update lifecycle, and tap-outside dismissal
  • provide root chart semantics, safe empty states, defensive validation, and tests for RTL, text scaling, interaction identity, controller ownership, and API boundaries
  • rebuild the gallery, playground, dashboard, README, and pub.dev screenshot metadata around direct Flutter values and optional consumer-owned tokens
  • add package-only mix_chart-v<version> release automation while leaving ordinary repository updates unpublished

Visual evidence

Analytics dashboard — dark

Dark analytics dashboard composed with Mix-owned line, donut, and bar charts

Chart galleries

Line gallery — light Bar gallery — light
Light gallery showing four Mix-owned line chart treatments Light gallery showing grouped, stacked, floating, and tracked bar chart treatments

Dark gallery showing pie, donut, badge, and empty chart treatments

Interactive playground

Line chart playground with live Mix style controls

Bar controls Pie and donut controls
Bar chart playground with live width, radius, and stacking controls Pie and donut playground with live center radius, gap, and label controls

Validation

  • melos run gen:build — passed
  • melos run ci — passed across the repository
  • melos run analyze — passed Dart analysis, DCM, and schema inventory
  • dart format packages/mix_chart/lib packages/mix_chart/test packages/mix_chart/example/lib packages/mix_chart/example/test --set-exit-if-changed — passed
  • flutter test in packages/mix_chart — all 50 tests passed
  • clean hosted-dependency dart pub publish --dry-run — passed with 0 warnings
  • exact committed-checkout dart pub publish --dry-run — passed with 0 warnings and only the expected monorepo override hints
  • gallery routes rendered and screenshots were visually verified in a real browser at 1440 px widths

Review Checklist

  • Testing: Unit, widget, interaction, semantics, adapter, API-boundary, publish-contract, and gallery smoke tests pass.
  • Breaking Changes: None. The earlier branch-only adapter experiment was squashed out before review and had no published consumers.
  • Documentation Updates: Package README, example documentation, gallery, release notes, and pub.dev screenshot metadata are updated.
  • Website Updates: The standalone mix-docs repository is outside this PR; the package ships complete README and runnable gallery documentation.

Additional Information (optional)

mix_chart 0.0.1-beta.0 has been manually published to reserve the package name. Pub.dev GitHub Actions/OIDC is configured for conceptadev/mix, tag pattern mix_chart-v{{version}}, push events, and the required Production environment. Subsequent releases can use the isolated tag-triggered workflow added by this PR.

The package is still under legacy uploader ownership; transfer to the verified leoafarias.com publisher remains a separate irreversible admin action.

The 0.0.1-beta.0 scope intentionally excludes a native chart engine, renderer escape hatches, additional chart families, and per-mark spatial semantics. Those can be evaluated from concrete requirements without exposing the private backend now.

@leoafarias leoafarias changed the title feat(mix): add fl_chart styling adapters feat(mix_chart): add Mix-owned chart API Jul 23, 2026
@leoafarias
leoafarias marked this pull request as ready for review July 23, 2026 03:21
@leoafarias
leoafarias merged commit 56654fd into main Jul 23, 2026
6 checks passed
@leoafarias
leoafarias deleted the feat/mix_fl_charts branch July 23, 2026 19:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant