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.