ReadonlyonFires when any group is added; the service attaches a wrap controller.
ReadonlyonFires after updateOptions; the service re-applies wrap to every group
so a runtime overflow.mode change takes effect.
ReadonlyonReadonlyoptionsThe scrollable tab list element (.dv-tabs-container) for a group: the
element the wrap class is toggled on and whose child tab geometry the
row-count measurement reads. Undefined if the group has no tab header.
Re-run a group's layout with its current dimensions so a header-height
change (a new wrapped row) propagates to the content + active panel. Wraps
the free DockviewGroupPanel.relayout().
Force a set of the group's panels into the overflow dropdown regardless of
horizontal fit: the wrap controller's surplus set (the tabs on rows
beyond overflow.maxRows). In wrap mode nothing clips horizontally, so the
free OverflowObserver never surfaces these; this seam routes them to the
dropdown and re-evaluates it immediately. Passing () => false clears the
forcing.
The narrow surface the multi-row (wrapping) tabs service needs from the host (
DockviewComponent). The wrap layout itself is CSS; the service only toggles the wrap class on a group's tab list, measures the wrapped row count, and asks the host to relayout so the now-taller header shrinks the content area (the free header-aware content-sizing seam does the actual subtraction). It owns no tab model, overflow detection, or panel sizing math.