- ♿ Reduce Motion: Panes change size at once, without animating, when
MediaQuery.disableAnimationsis set, as it is when the platform asks to reduce motion.
- ✨ Bottom Panel Layouts:
IdeController.bottomLayoutplaces the bottom panelcontained(default),fullWidth,extendLeft, orextendRight. It can be changed at runtime; sizes, visibility, and pane widget state are preserved.- New
IdeController.topControllerholds the row above the bottom panel when it extends under a side pane. - New
IdeController.controllerOf(pane)returns the controller currently holding a pane. - New layout-aware
maximize(pane),restore(),toggleMaximize(pane), andmaximizedPaneonIdeController. IdeControlleris now aChangeNotifier, andsave()includes thetopcontroller state.
- New
- ✨ Dynamic Pane Management: Added ability to add, remove, and update panes at runtime via
PaneController(@simonpham)- New methods:
addPane,addPanes,removePane,updatePane. - Automatic state cleanup when panes are removed.
- New methods:
- ✨ PaneSize Equality: Added
operator ==andhashCodetoPaneSizesubclasses for easier configuration comparisons.
-
✨ Implement zero-space resizer layout handling by @simonpham
-
✨ Add cascade resize support by @khoadng
-
💥 BREAKING: Add animationProgress to PaneBuilder & IdePaneBuilder by @simonpham
- 🐛 Fix various resize and auto hide issues (#1) – thanks to @khoadng
- Drag-to-Reveal - Continue dragging past the auto-hide threshold to reveal a hidden pane.
- Edge Drag Reveal - Drag from the edge of the screen to reveal a hidden pane (when auto-hide is enabled).
- Auto-Hide Size Restoration - When a pane is auto-hidden and then shown again (via toggle or code), it now restores to its pre-hide size instead of the minimum size.
- Real-time Size Updates -
IdeLayoutnow has anonSizeChangedcallback for tracking pane size changes in real-time.
- Resizer Visibility - Resizers remain interactive during drag operations even if adjacent panes are hidden, enabling smooth drag-to-reveal workflows.
- Resizer at Edge - Resizers now stay visible at the container edge when a pane is hidden (if auto-hide is enabled), providing a visual cue and grab target for revealing.
- Reliable State Serialization - Improved
save()andload()to ensure layout state is correctly preserved and restored without unintended mutations.
Initial release of the panes package.
- MultiPane - Flexible resizable split-view layouts (horizontal/vertical)
- IdeLayout - Pre-configured IDE-like layout with left, right, center, and bottom panels
- TabbedPane - Tabbed interface with icons and action buttons
- PaneTheme - Comprehensive theming via
ThemeExtensionor inherited widget - Serialization - Save and restore layout state with
save()/load() - Maximize/Restore - Expand any pane to full area
- Auto-hide - Panels collapse when resized below threshold
- Keyboard Accessibility - Tab to focus resizers, arrow keys to resize