Skip to content

v0.40.0

Choose a tag to compare

@angel-ip angel-ip released this 11 Oct 15:24
· 204 commits to main since this release
d807f22

v0.40.0

One page selection across relations, and a cleaner set of controls. Breaking: see What to change.

Highlights

  • One selection per page (mosaic, ui, graph, ai): MosaicProvider joins={…} owns it. A filter set on one relation reaches every other by key; one a relation cannot answer keeps none of it. Same-relation charts keep Mosaic's pre-aggregation.
  • Timeline is ChartTimeline relation="vertices" field="…"; GraphTimeline is gone.
  • Timeline under load: Play reads the range when pressed, and a paused frame or a pending brush survives a chart rebuild.
  • Graph toolbar: one Frame (frames what the filters keep, everything when nothing is filtered); the selection's × is gone, a lasso is dropped at its chip or with Esc.
  • Alt-lasso with no canvas filter leaves out what it caught (chip Lasso · N left out).
  • Greyout opacity derived per theme, so kept marks stay 3 : 1 from greyed ones.
  • FilterBar is always one line; Add a filter and Clear every filter are icons on the right.
  • Findings: FindingsItem replaces FindingRow/FindingGroupRow; the header is parts (FindingsHeader, FindingsSource, FindingsActions, FindingsList).
  • Ask's answer card: Filter the page to these rows and Add to the dashboard are icons on the tile; Filter is disabled when it would keep everything; Open on the dashboard via onOpen.
  • Switch is announced as a switch (role="switch").

What to change

  • MosaicProvider crossfilter={…} → MosaicProvider joins={readJoinGraph(…)}; useCrossfilter() / useSelected() → useMosaic().selection.
  • table= → relation= on ChartRoot, ChartTimeline, ChartStat, inputs, FilterBar, Dashboard, ChartCard, DashboardStat, DetailTable; drop as / filterBy / paceBy on charts and publish on Dashboard.
  • bridgeSelection, semiJoinOf, clauseReadings are removed: publish with onRelation(clause, relation).
  • <GraphTimeline /> → <ChartTimeline relation="vertices" field={timeline} />.
  • Graph API fit() → frame().
  • FindingRow / FindingGroupRow → FindingsItem; FindingsContent header= empty= → FindingsHeader + FindingsList empty=; harnesses row() / groupRow() → item().
  • Ask: AnswerOutput.skipped → unanswered; translation filtered removed; pass onOpen to show Open on the dashboard.
  • Tests that find a Switch by role: "checkbox" use role: "switch"; tests that expected Clear to disappear expect it disabled.
  • graph/unfilterable is no longer raised.