Repository navigation
v0.31.1
v0.31.1
One crossfilter across the page. Every place that filters or picks publishes its own clause on the page's crossfilter. The clauses intersect, and everything else on the page reads them.
@kanzo-tech/ui
FilterBaris the page's one row of filters. Put<FilterBar table={…} rowNoun="…" />under the page's header. It shows:- every clause on the page as a removable chip; a dashboard's bridged clause appears as one chip per tile filter, such as Dashboard country Spain;
- the dashboard's filter chips and + Filter;
- the "12 of 40" readout and Clear.
- A
Dashboarddraws its filters in the page'sFilterBar. They stay in its saved spec and keep filtering the whole page through itspublishclause. MosaicClients enabled={false}keeps a hidden view's filters. Hide the view instead of unmounting it. Its charts, inputs anduseChartQuerystop querying but keep their brushes and clauses, and they catch up when enabled again. A dashboard's filters in the bar keep working while the dashboard is hidden.
Breaking:
FilterChipsandFilterChipsPropsare removed. Render<FilterBar />;useClausesis unchanged.DashboardFiltersandDashboardFiltersPropsare no longer exported. A page without aFilterBarshows no dashboard filters.Dashboard'srowNounis removed. Pass it, withtable, toFilterBar.- Add tile and the dashboard's options menu sit in a row of their own above the tiles.
@kanzo-tech/graph
- Picks intersect. Each place that picks vertices beside the canvas (a search, a rule, an answer) publishes its own clause through
usePick(id). The graph greys out what the clauses together leave out. usePick(id).predicate()returns every clause on the crossfilter except that place's own, so a panel can read the subset without being narrowed by its own pick.- The search palette searches the subset. Its footer says how many matches lie outside it ("12 matches · 40 more outside the subset"). Add N to the subset adds the N inside.
GraphLegendreads "1,204 of 1,528" per category while the page filters, andDrawngainsplaced.- Links come from a corpus's edge tables only. A table for a multi-valued property no longer breaks the layout or the neighbour counts.
Breaking:
GraphSelectandGraphSelectPropsare removed. CallusePick(id)and render your own toggle:pick(ids, label)publishes the clause;pick(null, label)withdraws it;pickedis the clause's label while it holds, ornull.
GraphApi.selectis removed, andSelectionSourceno longer has"external". Replaceselect(ids, "external", label)withusePick(id).pick(ids, label).- ⌘Enter in the search and its footer button publish the search's own clause, not the canvas's selection.
- The vertex key is read from the column that the corpus's
fossil_columnsgives theaddressrole. A corpus that gives none is refused withgraph/nothing-to-draw. GraphStore.source(id)returns aPickSource, aMosaicClientthat is never connected.- A
GraphRootwith nofilterBykeeps a crossfilter of its own, sousePickworks without a page selection.
@kanzo-tech/ai
Chattakescontext, drawn read-only in the composer beside Send. It is a pill such as "Subset · 40 nodes" that says what the next question is asked over.dataAgentanswers every question overscopeand joins the tables to it. It reads the tables alone only when the reader asks about the whole data.
@kanzo-tech/mosaic
bridged(clause)returns the inner clauses a bridge mapped, and retracts one of them.- mosaic-sql's
and,notandsumare re-exported.