dock_panel library

A dockable, splittable panel system for Flutter.

Provides IDE-like panel management with drag-and-drop docking, split views, theming, and persistent layout powered by Riverpod.

Classes

DockArea
The root widget that renders the entire dock layout tree.
DockDivider
A draggable divider between two split children.
DockDragData
Data carried during a panel drag operation.
DockDropIndicator
A purely visual indicator showing where a dragged panel will dock. Position is determined by the parent via position.
DockDropOverlay
Legacy overlay widget — kept for backward compat but deprecated. Use DockDropIndicator with position computed from DragTarget.onMove.
DockGroup
A leaf node holding a group of tabbed panels.
DockGroupView
Renders a DockGroup: tab bar + active panel content + drop targets.
DockLayout
The root layout state for the entire dock area.
DockManager
The central state manager for the dock layout. Use dockManagerProvider to access it in your widget tree.
DockNode
Base class for all nodes in the dock layout tree.
DockPanel
A single panel that lives inside a DockGroup.
DockSplit
A branch node that splits space between children along an axis.
DockStorage
Interface for persisting the dock layout.
DockTabBar
Tab bar for a DockGroup. Tabs are draggable and support intra-group reordering via DragTarget on each tab.
DockTheme
Provides DockThemeData to the dock widget tree.
DockThemeData
Theme data for the dock panel system.
MemoryDockStorage
In-memory implementation of DockStorage for testing.

Enums

DockAxis
Axis for a split node.
DockPosition
Drop position when dragging a panel onto a group.
DockTabShape
Tab shape style.

Properties

dockManagerProvider → NotifierProviderImpl<DockManager, DockLayout>
The main Riverpod provider for the dock layout manager.
final

Functions

generateNodeId() String
Generates a unique node ID.