All notable changes for each version of this project will be documented in this file.
- Added
paneFlyoutToggleevent that fires when an unpinned pane's flyout opens or closes (distinct from pin/unpin operations). - Added
minResizeWidthandminResizeHeightproperties toIgcContentPane,IgcSplitPane, andIgcTabGroupPaneto constrain resizing behavior during resize operations. These properties set minimum size constraints (in pixels, default: 42) that are enforced when a user interacts with splitters or resizes floating panes. Note: These constraints only apply during active resize operations and do not prevent docking into smaller containers or affect container sizing during docking operations. - The
layoutChangeevent now includes the updated layout in itsdetail.layoutproperty.
- The hover area for showing pane headers when
showPaneHeadersis set toonHoverOnlynow correctly accounts for the actual pane header height, including custom heights set via::part(pane-header)styles. Note that when customizing the header height, themin-heightproperty should also be overridden, as it defaults to 40px to ensure header elements are properly displayed.
-
Localization resources are no longer bundled directly with this package. The previously exported resource string objects:
IgcDockManagerResourceStringsENIgcDockManagerResourceStringsESIgcDockManagerResourceStringsJPIgcDockManagerResourceStringsKO
have been removed from this package and moved into dedicated localization packages (see the README "Localization" section for details). The corresponding resource string objects in the new localization packages no longer use the
Igcprefix. -
Applications that relied on these exports must now:
- Install the new localization package(s), and
- Update imports to use the resource strings from the new packages.
- Migrated the dock manager component from Stencil to Lit framework. This is an internal architectural change that maintains full API compatibility with previous versions.
- Refactored TypeScript enums to string union types for better type safety and simpler codebase structure. Const objects are provided for backward compatibility.
For example, the following:
Can now also be written as:
const layout1: IgcDockManagerLayout = { rootPane: { type: IgcDockManagerPaneType.splitPane, orientation: IgcSplitPaneOrientation.horizontal, panes: [ // ... ] } };
const layout1: IgcDockManagerLayout = { rootPane: { type: 'splitPane', orientation: 'horizontal', panes: [ // ... ] } };
- Added
paneFlyoutToggleevent that fires when an unpinned pane's flyout opens or closes, allowing developers to track when unpinned pane content becomes visible or hidden. - Added
minResizeWidthandminResizeHeightproperties toIgcContentPane,IgcSplitPane, andIgcTabGroupPaneto constrain resizing behavior during resize operations. These properties set minimum size constraints (in pixels, default: 42) that are enforced when a user interacts with splitters or resizes floating panes. Note: These constraints only apply during active resize operations and do not prevent docking into smaller containers or affect container sizing during docking operations. - The
layoutChangeevent now includes the updated layout in itsdetail.layoutproperty.
- The hover area for showing pane headers when
showPaneHeadersis set toonHoverOnlynow correctly accounts for the actual pane header height, including custom heights set via::part(pane-header)styles. Note that when customizing the header height, themin-heightproperty should also be overridden, as it defaults to 40px to ensure header elements are properly displayed.
- Introduced a new docking behavior that allows docking directly in a split pane by dragging a pane over one of its splitters. It can be switched on via the new
allowSplitterDockproperty of theIgcDockManagerComponent. - Added edge docking functionality for docking panes to the edges of the dock manager. This docking mode is enabled when root docking is disabled via
allowRootDock= false. - Added automatic scrolling when resizing panes with
useFixedSizeenabled, allowing resizing beyond viewport bounds. - Added visual feedback with a thin border highlighting the pane being resized. This can be customized via new CSS variables:
--igc-resize-target-border-color,--igc-resize-target-border-width, and--igc-resize-target-border-style. - Added
enableDragCursorproperty to provide cursor feedback on hover for interactive panes and tabs - when enabled, the cursor changes to pointer when panes/tabs can be dragged. - Exposed new CSS variables for splitter and resize handle customization:
--igc-splitter-thickness(replaces--igc-splitter-width)--igc-resize-handle-size(replaces--igc-resize-handle-height)--igc-resize-handle-thickness(replaces--igc-resize-handle-width)
- Improved joystick indicators to display on the visible portion of target panes.
- Resize handle CSS variables renamed to be orientation-agnostic with backward compatibility maintained for old variable names.
- Auto-scroll behavior now triggers when dragging panes near the edges of the root container.
- Improved drop shadow positioning when docking in split panes with
useFixedSizeenabled.
- Removed obsolete start placeholder and splitter implementation.
- Fixed auto-scroll triggering incorrectly when dragging mouse upward at the top of the container.
- Fixed flyout behavior when clicking on splitters.
- Fixed splitter resizing to work without requiring mouse movement.
- Fixed splitter dragging preventing default browser behavior to avoid unwanted text selection and auto-scroll.
- Fixed dock indicators and preview incorrectly showing when context menu is displayed.
- Removed resize border from unpinned panes.
- Fixed bottom dock preview positioning.
- Fixed pane size calculation when
floatingWidthorfloatingHeightare undefined. - Fixed root dock preview display for edge indicators.
- Fixed null reference errors during splitter docking.
- Adding two new Dock Manager properties:
useFixedSizeOnDock, which specifies which docking orientations should apply theFixedSizesizing mode when split panes are dynamically created via docking.allowRootDock, which defaults to true, and enables or disables docking into the root-level container.
- Adding automatic scrolling of the root container during drag-and-drop operations.
- Introduced a new
autoScrollConfigproperty for finer control over scroll behavior.
- Introduced a new
- Placeholder panes are no longer present in Pane Navigator
- Dark theme is now properly applied to scrollbars
- Dock manager is not loading if layout has no floating panes collection
- Introduced a new docking behavior that allows docking directly in a split pane by dragging a pane over one of its splitters. It can be switched on via the new
allowSplitterDockproperty of theIgcDockManagerComponent. - Introduced the
useFixedSizeproperty of Split Panes - a new resizing behavior where child panes are sized in pixels and can be resized beyond the viewport, allowing scrollable overflow within the container.
- The
showHeaderIconOnHoverproperty now defaults to'none'instead ofundefinedand has correct type
- Added custom elements manifest file
- Added
closeBehaviorandunpinBehaviorproperties controlling whether the selected pane or all panes are closed/unpinned when clicking the respective button of a pane within a dockable TabGroup #94
- Added new CSS variables for styling the scrollbars
- TabGroupPane disappears when an unpinned pane is pinned #84
- Unpinned panes on the right and bottom edges cannot be resized via the splitter after being sized to minimum width/height #90
- Splitter cursor should be correct while resizing #93
- Uncaught TypeError: Cannot read properties of undefined (reading 'focus') #96
- Layout has more nesting levels then should #97
- Reopening a pane in IgcDockManager after closing a tab group pane does not show content of pane #103
- DockManager's maximized pane is not cleared when closing a maximized tabgroup pane
- Applying isMaximized on split pane breaks maximizing #95
- Dock manager throws errors with Vite-based builds #88
- Docking to edge in an empty root split pane throws errors #89
- Constraining panels inside the dock manager boundaries with quick drags #83
- Proximity dock rtl check
- Add
showPaneHeadersproperty #65 - Add
proximityDockproperty #66 - Add
containedInBoundariesproperty #68
- Add
contentIdof elements as CSS parts #32
- Maximizing and unpinning panes leads to unclickable panes #72
- Center dock is possible in a pane that has
acceptsInnerDockto true if theallowInnerDockofIgcDockManagerComponentis set to false
- Save pane maximized state in layout #60
- Tab selection order is not preserved #31
- Add
paneScrollevent #51
- ТabGroupPane: Pinning one of several unpinned panes results in all the panes getting pinned #62
- Context menu not positioning correctly in RTL mode
- Active pane is not retained when docking with keyboard
- Active pane incorrectly set when more than one Tab Group Pane is within a Floating Pane #61
- Error is thrown when dropping pane in a separate window
- Docking indicator left/right arrows positions are reversed in RTL mode #54
- Context menu not positioning correctly
- Missing overloads for
addEventListenerandremoveEventListener
- Add
tabs-more-menu-contentandtabs-more-menu-itemCSS parts
- Include pane information in
splitterResizeStartandsplitterResizeEndevents IgcDockManagerComponentis now exported as class
- Contents in slots with
unpinnedHeaderIdare not updated correctly #53
- Docking not working with allowFloating: false #40
- Flyout pane closing while active #41
- Focusable elements does not receive focus #42
- Navigating with pane navigator does not bring selected floating window on top #48
- Event
splitterResizeStartcan't be cancelled - Tabs context menu not positioning correctly
- Add
contextMenuPositionproperty - Add
selectedoption fortab-header-close-buttonCSS part
- Add
hoveredoption fortab-header-close-buttonCSS part
- CSS part fixes for
tab-header
- Add options for
showHeaderIconOnHoverproperty for different buttons - Add
horizontalandverticaloptions forsplitter-handleCSS part - Add
header-titleCSS part - Add
hoveroption fortab-header-close-buttonCSS part in active/inactive states - Add
paneHeaderCloseButtonandtabHeaderCloseButtonslots
- Add
showHeaderIconOnHoverproperty
- Active pane is not retained on float/dock
- Splitter styles are not applied #36
clickevent on customized header buttons is not working #37- Removed erroneous dock indicators while dragging over splitter
- Customize dock manager buttons
layoutChangeevent which fires when the layout updates #17
- Customizable floating pane header
disabledproperty per pane #23documentOnlyproperty which allows content pane to be docked only inside a document hostallowEmptyproperty for split and tab group panes which allows displaying empty areas #18disableKeyboardNavigationproperty on the dock manager #22
- Docking indicators appear over the currently dragged floating pane
- Customize dock manager panes and tabs #3
- A floating pane is draggable outside of the page #14
allowMaximizeproperty per pane #10
- Unpinned pane is closing automatically upon clicking on its content #11
- Panes selected from the overflow menu are not activated if there is an unpinned pane from the same tab group
- Pane with allowPinning=false placed inside tab group can be unpinned #9
- Normalize a maximized pane when navigating away from it via the keyboard
- Reorder tabs without creating floating pane
- Keyboard navigation
- Pane navigator
- Enable/disable floating pane resizing #4
- Events for floating pane resizing
- Select pane when activated
- Flyout unpinned pane when activated
- Error thrown when hosting external popup inside pane #5
- Tab selection is lost with nested Dock Manager components #6
- Floating pane containing panes with disabled floating and docking cannot be moved
- Exception thrown when docking floating pane inside empty dock manager #7
- More tabs menu appears when there is not enough space to display all tab headers
- Hide pane without removing it from the layout using its
hiddenproperty #1 - Header slot properties for tab and unpinned pane -
tabHeaderIdandunpinnedHeaderId#2
- Active pane
- Localization support
- Errors thrown when dragging the last document host tab and there is unpinned pane
- Tabs content disappears after docking a pane with allowFloating=false
- Exception thrown when quickly switching between docking indicators
- Maximizing panes
- Docking preview shadow
- ARIA support
- API for external drag/drop support
- Properties and events for user interactions such as closing, pinning, dragging
- Support for
ng updatefor Angular projects
- Resize splitter using the keyboard
- Pane goes out of view when resized to its minimum size
- Add active color css variable
- Add keyboard support for context menu
- Selection is not working on first click when context menu is opened
- Single tab is not rendered correctly after pinning/unpinning its sibling
Initial release of Ignite UI Dock Manager