Brian Vaughn's react-resizable-panels added a Workspace component in 4.16 for VS Code-style layouts, with tabs you drag between groups, reorder, or drop on an edge to split.
A workspace is a set of tabsets that users rearrange by dragging tabs between tabsets, within a tab list, or onto an edge of a tabset to split it. Tabsets can also be resized and maximized. The layout is a serializable model, so it can be saved and restored, and moving a tab doesn't remount its content.
Like Group, it's uncontrolled: useWorkspaceRef gives you the imperative API, and content inside can read its tab and tabset state with hooks such as useParentTab. Tabs that aren't selected can stay mounted, be unmounted, or render inside a hidden React <Activity> (hiddenTabBehavior). Customize it with renderTab, renderTabsetToolbar and renderEmptyTabset. Works with mouse, touch and keyboard. MIT.