Skip to content

v3.0.0

Latest

Choose a tag to compare

@frankelavsky frankelavsky released this 03 Jun 21:30

[3.0.0] Released! 🎉📈

Migration guide

This release contains three categories of breaking change. Most users will only be affected by the nav rule ID renames.

1. Nav rule ID renames

Any code that references nav rule IDs by string — in commandLabels, navigationRules, custom filtering, or programmatic structure inspection — must be updated:

Old ID New ID
'child' 'drill-in'
'parent' 'drill-out'
'parent_<dimensionKey>' (auto-generated) 'drill-out_<dimensionKey>'

Example: parent_datedrill-out_date, parent_categorydrill-out_category.

2. <dn-commands-table> tag name

The commands-table custom element was previously registered as <commands-table>. It is now <dn-commands-table>. Update any HTML or markdown that uses the old tag — the old tag will render nothing without an error.

3. @data-navigator/inspector example pages

If you forked or copied the inspector example pages (tree-view, console-menu, stacked-bar), any startsWith('parent_') filter in your code must be updated to startsWith('drill-out_').


data-navigator

Breaking

  • Renamed built-in nav rule IDs: 'child''drill-in', 'parent''drill-out' throughout consts.ts and structure.ts. The dimensions API previously auto-generated rule IDs with a parent_<dimensionKey> prefix; these are now drill-out_<dimensionKey>.
  • GenericNavigationRuleCommands now uses the new IDs; any code that referenced the old keys directly will need updating.

New features

<dn-commands-table> custom element (contributed by @GuillaumeMMM)

A new web component that renders a keyboard/command reference table from a Data Navigator structure. Replaces the hardcoded HTML tables that previously appeared in docs and examples.

  • Automatically reads nav rule IDs and labels from a live structure object
  • Wraps command keys in <kbd> tags by default; falls back gracefully for non-key command labels (e.g. typed commands in text-chat mode)
  • Generates an accessible table name from the element's title attribute; falls back to a sensible default when title is omitted
  • Registered via the rendering module — no separate import needed
  • Source: packages/data-navigator/src/commands-table.ts

Geometry utilitiespackages/data-navigator/src/geometry.ts

A new pure-function module for computing SVG path strings that describe group focus-indication shapes. All functions are side-effect-free: inputs are arrays of Rect, Point, or Circle objects; output is an SVG <path d="..."> string.

Exported functions:

Function Description
grahamScan(points) Computes the convex hull of a point set (Graham scan)
convexHullPath(points) Returns an SVG path string for a convex hull
expandHull(hullPoints, padPx) Expands a hull outward by a pixel offset
convexHullOfRects(rects, padPx?) Convex hull wrapping a set of rectangles
unionOfRectPaths(rects, padPx?) Union-style path covering a set of rectangles
boundingRectPath(rects, padPx?) Simple bounding-box path for a set of rectangles
convexHullOfCircles(circles, padPx?) Convex hull wrapping a set of circles
offsetLinePath(points, offsetPx) Thickened line path offset from a point sequence

Exported types: Rect, Point, Circle.

These functions are used by the Skeleton scaffolding app for group focus indicators and are exported from the core index for downstream use.

Utilities now exported from core index

packages/data-navigator/src/utilities.ts is now re-exported from the main package entry point, making utility helpers available to consumers without a deep import path.

Docs

  • Keyboard/command tables in all main docs example pages migrated from hardcoded HTML to <dn-commands-table>.
  • getting-started/first-chart.md now includes a keyboard controls section.
  • Drill-in/drill-out labels updated throughout.

@data-navigator/inspector

Fixes

  • Breaking fix: Example pages (tree-view, console-menu, stacked-bar) contained startsWith('parent_') filters that silently returned empty results after the core rule ID rename. Updated to startsWith('drill-out_').

Docs

  • All three example pages migrated from hardcoded keyboard tables to <dn-commands-table>.

@data-navigator/bokeh-wrapper

No API changes. The wrapper explicitly overrides auto-generated rule IDs with bare 'drill-in'/'drill-out' and is unaffected by the dimensions API rename.

Docs

  • All example pages (bar-chart, line-chart, scatter, scatter-grouped, stacked-bar, crossline, interactive-elements) migrated from hardcoded keyboard tables to <dn-commands-table>.
  • VitePress config updated to resolve the data-navigator source alias needed for dn-commands-table to work in the wrapper docs dev environment.

Contributors

Thanks to @GuillaumeMMM for building the <dn-commands-table> custom element, the foundation for the commands-table feature throughout this release.

Auto-generated notes

Note, a new app called Skeleton 🩻 is currently under construction! Stay tuned for more:

Full Changelog: v2.4.1...v3.0.0