Skip to main content

What's new in v7

Dockview 7.0 realigns the package names so the ecosystem is consistent (dockview for JavaScript, dockview-<framework> for each framework) and ships a new accessibility pack covering keyboard navigation and screen-reader announcements.

This page covers the headline additions. For the upgrade steps and the breaking changes, see Migrating to v7.

Highlights​

Package realignment​

dockview is now the framework-agnostic JavaScript package (a re-export of dockview-core), and the React bindings moved to dockview-react. Every framework package (dockview-react / -vue / -angular) consumes dockview. React users must switch their imports. See Migrating to v7.

Keyboard navigation & announcements​

A new keyboardNavigation option enables a rebindable keymap for moving around the layout (tab switching, F6 group cycling, and jumping to the tab strip) alongside focus management (focus restore on close, floating-group focus containment). Layout changes can also be narrated to screen readers via a built-in live region, with hooks (announcements, getAnnouncement, announcer) and an i18n messages catalog.

Per-target drop overlays​

The new dropOverlayModel callback shapes the drag-and-drop overlay per target (size, activation threshold, small-element boundaries), replacing the removed static rootOverlayModel.

Popout lifecycle events​

onDidAddPopoutGroup and onDidRemovePopoutGroup fire as popout windows open and close (or dock back), and getPopouts() enumerates the open popout windows. See Events and Popout Groups.

Floating groups & popout windows as nested layouts​

Floating groups and popout windows now host their own nested grid, so a single floating window or popout can hold a full splitview layout of groups rather than a single group. See Floating Groups and Popout Groups.

Layout-mutation transaction events​

onWillMutateLayout / onDidMutateLayout bracket structural changes (add / remove / move / float / popout / maximize / load / clear) as a single transaction, each tagged with a 'user' or 'api' origin. See Events.

Active-panel origin​

onDidActivePanelChange now reports whether the active panel changed from a user gesture or an API call via event.origin. This is a breaking payload change.

Breaking changes​

v7's breaking changes are covered in full, with codemods, in Migrating to v7:

  • Package realignment: React bindings moved from dockview to dockview-react; dockview is now JavaScript core.
  • rootOverlayModel removed: use dropOverlayModel / dndEdges instead.
  • onDidActivePanelChange payload: now emits { panel, origin } instead of the panel directly.
  • dockview-core no longer bundles every feature: use dockview (or a framework package).
  • API naming cleanups: a few public types/events were renamed for consistency (e.g. onUnhandledDragOverEvent → onUnhandledDragOver, PaneviewDropEvent → PaneviewDidDropEvent) and some dead/deprecated members were removed. See Migrating to v7 for the full table.