react-dockable-desktop 6.0.1 → 6.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -242,7 +242,7 @@ declare class WorkspaceClient<TUserEvents extends Record<string, unknown> = Reco
242
242
  openPanel(...args: Parameters<WindowActions['openPanel']>): void;
243
243
  closePanel(id: string): void;
244
244
  minimizePanel(id: string): void;
245
- restorePanel(id: string): void;
245
+ restorePanel(...args: Parameters<WindowActions['restorePanel']>): void;
246
246
  floatPanel(...args: Parameters<WindowActions['floatPanel']>): void;
247
247
  dockPanel(...args: Parameters<WindowActions['dockPanel']>): void;
248
248
  maximizePanel(id: string): void;
@@ -724,8 +724,11 @@ interface WindowActions {
724
724
  /**
725
725
  * Restores a minimized panel back to its last docked or floating position.
726
726
  * @param id - Panel instance ID.
727
+ * @param options.focus - Set `state.activePanelId` to the restored panel. @default true
727
728
  */
728
- restorePanel: (id: string) => void;
729
+ restorePanel: (id: string, options?: {
730
+ focus?: boolean;
731
+ }) => void;
729
732
  /**
730
733
  * Detaches a docked panel, converting it to a resizable floating window.
731
734
  * @param id - Panel instance ID.
@@ -2053,6 +2056,28 @@ declare function ToastContainer({ position, maxVisible, defaultDuration, default
2053
2056
 
2054
2057
  /** Edge of a panel to which a `PanelToolbar` attaches. */
2055
2058
  type ToolbarPosition = 'top' | 'bottom' | 'left' | 'right';
2059
+ /**
2060
+ * Which of a docked widget's axes span the host panel instead of carrying a fixed size.
2061
+ *
2062
+ * A docked widget normally pins one end of each axis and carries an explicit size. A stretched
2063
+ * axis pins **both** ends and carries no size at all, so the widget tracks the panel as it
2064
+ * resizes — with no `ResizeObserver` and no JS, because CSS already does exactly this.
2065
+ *
2066
+ * - `'width'` — spans the panel's inline axis; height still fixed. A status or timeline strip.
2067
+ * - `'height'` — spans the block axis; width still fixed. A full-height side column.
2068
+ * - `'both'` — fills the panel, the inner-widget equivalent of maximizing a floating window.
2069
+ */
2070
+ type Stretch = 'width' | 'height' | 'both';
2071
+ /**
2072
+ * Where a docked widget sits: which corner it is anchored to, plus which axes (if any) span the
2073
+ * panel. Reported as a unit because a single gesture can change both at once — dropping a
2074
+ * full-width bottom strip onto the left edge flips the anchor *and* the stretched axis together,
2075
+ * and reporting those separately would expose a state that is never actually valid.
2076
+ */
2077
+ interface PanelFloatPlacement {
2078
+ anchor: FloatAnchor;
2079
+ stretch: Stretch | null;
2080
+ }
2056
2081
  /**
2057
2082
  * Configuration for a window spawned imperatively via `usePanelFloatingWindowManager().open()`.
2058
2083
  * @see usePanelFloatingWindowManager
@@ -2070,6 +2095,12 @@ interface ManagedWindowConfig {
2070
2095
  width?: number;
2071
2096
  /** Initial height in pixels. */
2072
2097
  height?: number;
2098
+ /**
2099
+ * Which axes span the panel instead of carrying a fixed size. `width`/`height` above still apply
2100
+ * to any axis that isn't spanning, and are what a spanning axis returns to when released.
2101
+ * @see Stretch
2102
+ */
2103
+ stretch?: Stretch;
2073
2104
  }
2074
2105
  /** Props for `<PanelOverlayRoot>`. */
2075
2106
  interface PanelOverlayRootProps {
@@ -2214,16 +2245,53 @@ interface PanelFloatingWindowProps {
2214
2245
  onClose(): void;
2215
2246
  /** Corner of the panel to dock to on first render. @see FloatAnchor */
2216
2247
  defaultAnchor: FloatAnchor;
2217
- /** Initial width in pixels. */
2248
+ /** Initial width in pixels. Ignored on an axis that starts stretched, and restored to when that
2249
+ * axis is later released. */
2218
2250
  defaultWidth: number;
2219
- /** Initial height in pixels. */
2251
+ /** Initial height in pixels. Ignored on an axis that starts stretched, and restored to when that
2252
+ * axis is later released. */
2220
2253
  defaultHeight: number;
2254
+ /**
2255
+ * Which axes span the panel on first render. Uncontrolled: gestures update it from here.
2256
+ * @see Stretch
2257
+ */
2258
+ defaultStretch?: Stretch;
2259
+ /**
2260
+ * Controlled stretch state. When provided — **including as `null`** — the caller is the single
2261
+ * source of truth: gestures report through {@link PanelFloatingWindowProps.onPlacementChange}
2262
+ * instead of updating internally, and the caller must echo the new value back. Omit entirely
2263
+ * (`undefined`) for uncontrolled behaviour, matching `ToolbarToggleItem.active` and
2264
+ * `Sidebar.activeTabId`.
2265
+ */
2266
+ stretch?: Stretch | null;
2267
+ /**
2268
+ * Called whenever a gesture changes where the widget sits — a stretched axis released, a
2269
+ * re-dock, or a detach. Reports anchor and stretch **together**, because one gesture can change
2270
+ * both at once and reporting them separately would surface a state that is never valid.
2271
+ *
2272
+ * This is also the only way to persist placement: the library serialises nothing about inner
2273
+ * widgets, so store what you receive here and feed it back via `defaultAnchor`/`stretch`.
2274
+ */
2275
+ onPlacementChange?: (placement: PanelFloatPlacement) => void;
2276
+ /**
2277
+ * Whether this widget may span the panel at all. `false` disables resize-to-stretch snapping,
2278
+ * for content that only makes sense at a bounded size. Default `true`.
2279
+ */
2280
+ stretchable?: boolean;
2221
2281
  children?: React$1.ReactNode;
2222
2282
  }
2223
2283
  /**
2224
2284
  * Declarative floating window anchored inside a `PanelOverlayRoot`.
2225
- * Supports 8-direction resize, drag-to-free, and drag-to-dock at any corner.
2226
- * Multiple windows docked to the same corner stack vertically with animated offsets.
2285
+ *
2286
+ * Docks to any corner, drags free of it, and drops back onto one. Windows sharing a corner stack
2287
+ * along the block axis with animated offsets. An axis can also **span the panel** instead of
2288
+ * carrying a fixed size, so the window tracks the panel as it resizes — see
2289
+ * {@link PanelFloatingWindowProps.defaultStretch} and {@link Stretch}.
2290
+ *
2291
+ * Resize handles follow what is actually movable: a free-floating window is pinned by nothing and
2292
+ * offers all eight, while a docked one offers only its free edges — plus both ends of any spanning
2293
+ * axis, either of which releases it.
2294
+ *
2227
2295
  * @example
2228
2296
  * const info = usePanelFloatingWindow();
2229
2297
  * <PanelFloatingWindow
@@ -2233,6 +2301,18 @@ interface PanelFloatingWindowProps {
2233
2301
  * >
2234
2302
  * <LayerInfoContent />
2235
2303
  * </PanelFloatingWindow>
2304
+ *
2305
+ * @example
2306
+ * // A full-width status strip along the bottom, tracking the panel's width.
2307
+ * // defaultHeight still applies; defaultWidth is what the inline axis returns to if released.
2308
+ * <PanelFloatingWindow
2309
+ * id="timeline" title="Timeline"
2310
+ * open onClose={close}
2311
+ * defaultAnchor="bottom-left" defaultStretch="width"
2312
+ * defaultWidth={240} defaultHeight={120}
2313
+ * >
2314
+ * <TimelineContent />
2315
+ * </PanelFloatingWindow>
2236
2316
  */
2237
2317
  declare function PanelFloatingWindow(props: PanelFloatingWindowProps): React$1.ReactElement | null;
2238
2318
  /** Return type of `usePanelFloatingWindow`. @see usePanelFloatingWindow */
@@ -2271,13 +2351,18 @@ interface PanelFloatingWindowManagerHandle {
2271
2351
  }
2272
2352
  /**
2273
2353
  * Imperative hook for spawning N named floating windows at runtime from data or event handlers.
2274
- * All windows share z-ordering, drag, and corner-docking infrastructure of the `PanelOverlayRoot`.
2354
+ * All windows share z-ordering, drag, and corner-docking infrastructure of the `PanelOverlayRoot`,
2355
+ * and accept the same placement options — including {@link ManagedWindowConfig.stretch} to span an
2356
+ * axis of the panel.
2275
2357
  *
2276
2358
  * Must be called inside a **descendant** of `PanelOverlayRoot`, not in the component that renders the root.
2277
2359
  * @returns A stable `PanelFloatingWindowManagerHandle`.
2278
2360
  * @example
2279
2361
  * const manager = usePanelFloatingWindowManager();
2280
2362
  * manager.open('feature-42', { title: 'Feature 42', content: <FeatureDetail id={42} />, anchor: 'top-right' });
2363
+ *
2364
+ * // A full-width strip along the bottom edge:
2365
+ * manager.open('timeline', { title: 'Timeline', content: <Timeline />, anchor: 'bottom-left', stretch: 'width', height: 120 });
2281
2366
  */
2282
2367
  declare function usePanelFloatingWindowManager(): PanelFloatingWindowManagerHandle;
2283
2368
 
@@ -2451,4 +2536,4 @@ declare function computeResizedRect(dir: ResizeDir, dx: number, dy: number, star
2451
2536
  */
2452
2537
  declare function useColorScheme(): 'dark' | 'light';
2453
2538
 
2454
- export { type BuiltInPanelEvents, type ButtonVariant, type CloseOptions, ConfirmationForm, type ConfirmationFormProps, ContextMenu, type ContextMenuAdapter, type ContextMenuCheckbox, type ContextMenuHandle, type ContextMenuItem, type ContextMenuLabel, type ContextMenuPredefinedMessage, type ContextMenuProps, ContextMenuProvider, type ContextMenuSeparator, type ContextMenuSimpleItem, type ContextMenuSubMenu, DefaultContextMenuAdapter, DockableDesktopProvider, type DockableDesktopProviderProps, type DropPosition, type DropTarget, type FloatAnchor, type FloatingWindow, FormContainerContext, type FormContainerContract, FormContainerProvider, type LayoutGridNode, type LayoutLeafNode, type LayoutNode, LeftPanelRenderer, type ManagedWindowConfig, type MenuItemAction, type MessageFormatter, type ModalOptions, ModalStackRenderer, type OpenPanelOptions, type PanelActions, type PanelContribution, PanelContributionProvider, type PanelDefinition, PanelFloatingWindow, type PanelFloatingWindowManagerHandle, type PanelFloatingWindowProps, type PanelInfo, type PanelInstance, type PanelInstanceId, PanelOverlayRoot, type PanelOverlayRootProps, PanelProvider, PanelRegistry, PanelRegistryClass, type PanelRegistryEntry, type PanelSidebarSection, type PanelState, type PanelTitle, PanelToolbar, ToolbarItem as PanelToolbarItem, type PanelToolbarProps, ToolbarSeparator as PanelToolbarSeparator, type PointerDragConfig, type PredefinedMessageKey, type ResizeConstraints, type ResizeDir, type ResizeRect, type ResolvedToastOptions, RightPanelRenderer, type SearchResult, SecondarySidebar, type SecondarySidebarProps, type SerializedLayout, type ShowContextMenuOptions, type SidePanelOptions, SidePanelRenderer, type SidePanelRendererProps, Sidebar, type SidebarContextValue, type SidebarHandle, type SidebarHeaderAction, type SidebarHeaderActionButton, type SidebarHeaderActionCustom, type SidebarProps, type SidebarTab, type SidebarTabContextValue, type SplitDirection, type SplitOrientation, type StyleClasses, type TaskbarVisibility, type ToastAdapter, ToastContainer, type ToastContainerProps, type ToastFunction, type ToastOptions, type ToastPosition, type ToastPromiseMessages, type ToastType, Toolbar, type ToolbarActionItem, ToolbarButton, type ToolbarButtonProps, ToolbarCenter, type ToolbarContextValue, type ToolbarGroupEntry, type ToolbarGroupItem, type ToolbarGroupSubItem, type ToolbarHandle, type ToolbarItem$1 as ToolbarItem, type ToolbarPosition, type ToolbarProps, ToolbarProvider, type ToolbarRadioItem, ToolbarSearchInput, type ToolbarSearchInputProps, type ToolbarSeparator$1 as ToolbarSeparator, ToolbarSpacer, ToolbarToggle, type ToolbarToggleItem, type ToolbarToggleProps, type ToolbarVariant, type UsePanelFloatingWindowReturn, type WindowActions, WindowManager, type WindowManagerProps, WindowManagerProvider, type WindowManagerProviderProps, type WindowState, WorkspaceClient, type WorkspaceClientConfig, computeResizedRect, defaultPredefinedMessages, formatLabel, isSerializable, sidebarSectionToTab, startPointerDrag, toast, useActivePanelContribution, useColorScheme, useFormContainer, useFormatMessage, useMergedSidebarTabs, useMergedToolbarItems, usePanelActions, usePanelContext, usePanelContextMenu, usePanelContribution, usePanelFloatingWindow, usePanelFloatingWindowManager, usePanelId, usePanelSize, usePanelState, usePredefinedMessages, useRegistry, useShowContextMenu, useSidebar, useSidebarTab, useStyleClasses, useToolbar, useWindowManagerActions, useWindowManagerState };
2539
+ export { type BuiltInPanelEvents, type ButtonVariant, type CloseOptions, ConfirmationForm, type ConfirmationFormProps, ContextMenu, type ContextMenuAdapter, type ContextMenuCheckbox, type ContextMenuHandle, type ContextMenuItem, type ContextMenuLabel, type ContextMenuPredefinedMessage, type ContextMenuProps, ContextMenuProvider, type ContextMenuSeparator, type ContextMenuSimpleItem, type ContextMenuSubMenu, DefaultContextMenuAdapter, DockableDesktopProvider, type DockableDesktopProviderProps, type DropPosition, type DropTarget, type FloatAnchor, type FloatingWindow, FormContainerContext, type FormContainerContract, FormContainerProvider, type LayoutGridNode, type LayoutLeafNode, type LayoutNode, LeftPanelRenderer, type ManagedWindowConfig, type MenuItemAction, type MessageFormatter, type ModalOptions, ModalStackRenderer, type OpenPanelOptions, type PanelActions, type PanelContribution, PanelContributionProvider, type PanelDefinition, type PanelFloatPlacement, PanelFloatingWindow, type PanelFloatingWindowManagerHandle, type PanelFloatingWindowProps, type PanelInfo, type PanelInstance, type PanelInstanceId, PanelOverlayRoot, type PanelOverlayRootProps, PanelProvider, PanelRegistry, PanelRegistryClass, type PanelRegistryEntry, type PanelSidebarSection, type PanelState, type PanelTitle, PanelToolbar, ToolbarItem as PanelToolbarItem, type PanelToolbarProps, ToolbarSeparator as PanelToolbarSeparator, type PointerDragConfig, type PredefinedMessageKey, type ResizeConstraints, type ResizeDir, type ResizeRect, type ResolvedToastOptions, RightPanelRenderer, type SearchResult, SecondarySidebar, type SecondarySidebarProps, type SerializedLayout, type ShowContextMenuOptions, type SidePanelOptions, SidePanelRenderer, type SidePanelRendererProps, Sidebar, type SidebarContextValue, type SidebarHandle, type SidebarHeaderAction, type SidebarHeaderActionButton, type SidebarHeaderActionCustom, type SidebarProps, type SidebarTab, type SidebarTabContextValue, type SplitDirection, type SplitOrientation, type Stretch, type StyleClasses, type TaskbarVisibility, type ToastAdapter, ToastContainer, type ToastContainerProps, type ToastFunction, type ToastOptions, type ToastPosition, type ToastPromiseMessages, type ToastType, Toolbar, type ToolbarActionItem, ToolbarButton, type ToolbarButtonProps, ToolbarCenter, type ToolbarContextValue, type ToolbarGroupEntry, type ToolbarGroupItem, type ToolbarGroupSubItem, type ToolbarHandle, type ToolbarItem$1 as ToolbarItem, type ToolbarPosition, type ToolbarProps, ToolbarProvider, type ToolbarRadioItem, ToolbarSearchInput, type ToolbarSearchInputProps, type ToolbarSeparator$1 as ToolbarSeparator, ToolbarSpacer, ToolbarToggle, type ToolbarToggleItem, type ToolbarToggleProps, type ToolbarVariant, type UsePanelFloatingWindowReturn, type WindowActions, WindowManager, type WindowManagerProps, WindowManagerProvider, type WindowManagerProviderProps, type WindowState, WorkspaceClient, type WorkspaceClientConfig, computeResizedRect, defaultPredefinedMessages, formatLabel, isSerializable, sidebarSectionToTab, startPointerDrag, toast, useActivePanelContribution, useColorScheme, useFormContainer, useFormatMessage, useMergedSidebarTabs, useMergedToolbarItems, usePanelActions, usePanelContext, usePanelContextMenu, usePanelContribution, usePanelFloatingWindow, usePanelFloatingWindowManager, usePanelId, usePanelSize, usePanelState, usePredefinedMessages, useRegistry, useShowContextMenu, useSidebar, useSidebarTab, useStyleClasses, useToolbar, useWindowManagerActions, useWindowManagerState };
package/dist/index.d.ts CHANGED
@@ -242,7 +242,7 @@ declare class WorkspaceClient<TUserEvents extends Record<string, unknown> = Reco
242
242
  openPanel(...args: Parameters<WindowActions['openPanel']>): void;
243
243
  closePanel(id: string): void;
244
244
  minimizePanel(id: string): void;
245
- restorePanel(id: string): void;
245
+ restorePanel(...args: Parameters<WindowActions['restorePanel']>): void;
246
246
  floatPanel(...args: Parameters<WindowActions['floatPanel']>): void;
247
247
  dockPanel(...args: Parameters<WindowActions['dockPanel']>): void;
248
248
  maximizePanel(id: string): void;
@@ -724,8 +724,11 @@ interface WindowActions {
724
724
  /**
725
725
  * Restores a minimized panel back to its last docked or floating position.
726
726
  * @param id - Panel instance ID.
727
+ * @param options.focus - Set `state.activePanelId` to the restored panel. @default true
727
728
  */
728
- restorePanel: (id: string) => void;
729
+ restorePanel: (id: string, options?: {
730
+ focus?: boolean;
731
+ }) => void;
729
732
  /**
730
733
  * Detaches a docked panel, converting it to a resizable floating window.
731
734
  * @param id - Panel instance ID.
@@ -2053,6 +2056,28 @@ declare function ToastContainer({ position, maxVisible, defaultDuration, default
2053
2056
 
2054
2057
  /** Edge of a panel to which a `PanelToolbar` attaches. */
2055
2058
  type ToolbarPosition = 'top' | 'bottom' | 'left' | 'right';
2059
+ /**
2060
+ * Which of a docked widget's axes span the host panel instead of carrying a fixed size.
2061
+ *
2062
+ * A docked widget normally pins one end of each axis and carries an explicit size. A stretched
2063
+ * axis pins **both** ends and carries no size at all, so the widget tracks the panel as it
2064
+ * resizes — with no `ResizeObserver` and no JS, because CSS already does exactly this.
2065
+ *
2066
+ * - `'width'` — spans the panel's inline axis; height still fixed. A status or timeline strip.
2067
+ * - `'height'` — spans the block axis; width still fixed. A full-height side column.
2068
+ * - `'both'` — fills the panel, the inner-widget equivalent of maximizing a floating window.
2069
+ */
2070
+ type Stretch = 'width' | 'height' | 'both';
2071
+ /**
2072
+ * Where a docked widget sits: which corner it is anchored to, plus which axes (if any) span the
2073
+ * panel. Reported as a unit because a single gesture can change both at once — dropping a
2074
+ * full-width bottom strip onto the left edge flips the anchor *and* the stretched axis together,
2075
+ * and reporting those separately would expose a state that is never actually valid.
2076
+ */
2077
+ interface PanelFloatPlacement {
2078
+ anchor: FloatAnchor;
2079
+ stretch: Stretch | null;
2080
+ }
2056
2081
  /**
2057
2082
  * Configuration for a window spawned imperatively via `usePanelFloatingWindowManager().open()`.
2058
2083
  * @see usePanelFloatingWindowManager
@@ -2070,6 +2095,12 @@ interface ManagedWindowConfig {
2070
2095
  width?: number;
2071
2096
  /** Initial height in pixels. */
2072
2097
  height?: number;
2098
+ /**
2099
+ * Which axes span the panel instead of carrying a fixed size. `width`/`height` above still apply
2100
+ * to any axis that isn't spanning, and are what a spanning axis returns to when released.
2101
+ * @see Stretch
2102
+ */
2103
+ stretch?: Stretch;
2073
2104
  }
2074
2105
  /** Props for `<PanelOverlayRoot>`. */
2075
2106
  interface PanelOverlayRootProps {
@@ -2214,16 +2245,53 @@ interface PanelFloatingWindowProps {
2214
2245
  onClose(): void;
2215
2246
  /** Corner of the panel to dock to on first render. @see FloatAnchor */
2216
2247
  defaultAnchor: FloatAnchor;
2217
- /** Initial width in pixels. */
2248
+ /** Initial width in pixels. Ignored on an axis that starts stretched, and restored to when that
2249
+ * axis is later released. */
2218
2250
  defaultWidth: number;
2219
- /** Initial height in pixels. */
2251
+ /** Initial height in pixels. Ignored on an axis that starts stretched, and restored to when that
2252
+ * axis is later released. */
2220
2253
  defaultHeight: number;
2254
+ /**
2255
+ * Which axes span the panel on first render. Uncontrolled: gestures update it from here.
2256
+ * @see Stretch
2257
+ */
2258
+ defaultStretch?: Stretch;
2259
+ /**
2260
+ * Controlled stretch state. When provided — **including as `null`** — the caller is the single
2261
+ * source of truth: gestures report through {@link PanelFloatingWindowProps.onPlacementChange}
2262
+ * instead of updating internally, and the caller must echo the new value back. Omit entirely
2263
+ * (`undefined`) for uncontrolled behaviour, matching `ToolbarToggleItem.active` and
2264
+ * `Sidebar.activeTabId`.
2265
+ */
2266
+ stretch?: Stretch | null;
2267
+ /**
2268
+ * Called whenever a gesture changes where the widget sits — a stretched axis released, a
2269
+ * re-dock, or a detach. Reports anchor and stretch **together**, because one gesture can change
2270
+ * both at once and reporting them separately would surface a state that is never valid.
2271
+ *
2272
+ * This is also the only way to persist placement: the library serialises nothing about inner
2273
+ * widgets, so store what you receive here and feed it back via `defaultAnchor`/`stretch`.
2274
+ */
2275
+ onPlacementChange?: (placement: PanelFloatPlacement) => void;
2276
+ /**
2277
+ * Whether this widget may span the panel at all. `false` disables resize-to-stretch snapping,
2278
+ * for content that only makes sense at a bounded size. Default `true`.
2279
+ */
2280
+ stretchable?: boolean;
2221
2281
  children?: React$1.ReactNode;
2222
2282
  }
2223
2283
  /**
2224
2284
  * Declarative floating window anchored inside a `PanelOverlayRoot`.
2225
- * Supports 8-direction resize, drag-to-free, and drag-to-dock at any corner.
2226
- * Multiple windows docked to the same corner stack vertically with animated offsets.
2285
+ *
2286
+ * Docks to any corner, drags free of it, and drops back onto one. Windows sharing a corner stack
2287
+ * along the block axis with animated offsets. An axis can also **span the panel** instead of
2288
+ * carrying a fixed size, so the window tracks the panel as it resizes — see
2289
+ * {@link PanelFloatingWindowProps.defaultStretch} and {@link Stretch}.
2290
+ *
2291
+ * Resize handles follow what is actually movable: a free-floating window is pinned by nothing and
2292
+ * offers all eight, while a docked one offers only its free edges — plus both ends of any spanning
2293
+ * axis, either of which releases it.
2294
+ *
2227
2295
  * @example
2228
2296
  * const info = usePanelFloatingWindow();
2229
2297
  * <PanelFloatingWindow
@@ -2233,6 +2301,18 @@ interface PanelFloatingWindowProps {
2233
2301
  * >
2234
2302
  * <LayerInfoContent />
2235
2303
  * </PanelFloatingWindow>
2304
+ *
2305
+ * @example
2306
+ * // A full-width status strip along the bottom, tracking the panel's width.
2307
+ * // defaultHeight still applies; defaultWidth is what the inline axis returns to if released.
2308
+ * <PanelFloatingWindow
2309
+ * id="timeline" title="Timeline"
2310
+ * open onClose={close}
2311
+ * defaultAnchor="bottom-left" defaultStretch="width"
2312
+ * defaultWidth={240} defaultHeight={120}
2313
+ * >
2314
+ * <TimelineContent />
2315
+ * </PanelFloatingWindow>
2236
2316
  */
2237
2317
  declare function PanelFloatingWindow(props: PanelFloatingWindowProps): React$1.ReactElement | null;
2238
2318
  /** Return type of `usePanelFloatingWindow`. @see usePanelFloatingWindow */
@@ -2271,13 +2351,18 @@ interface PanelFloatingWindowManagerHandle {
2271
2351
  }
2272
2352
  /**
2273
2353
  * Imperative hook for spawning N named floating windows at runtime from data or event handlers.
2274
- * All windows share z-ordering, drag, and corner-docking infrastructure of the `PanelOverlayRoot`.
2354
+ * All windows share z-ordering, drag, and corner-docking infrastructure of the `PanelOverlayRoot`,
2355
+ * and accept the same placement options — including {@link ManagedWindowConfig.stretch} to span an
2356
+ * axis of the panel.
2275
2357
  *
2276
2358
  * Must be called inside a **descendant** of `PanelOverlayRoot`, not in the component that renders the root.
2277
2359
  * @returns A stable `PanelFloatingWindowManagerHandle`.
2278
2360
  * @example
2279
2361
  * const manager = usePanelFloatingWindowManager();
2280
2362
  * manager.open('feature-42', { title: 'Feature 42', content: <FeatureDetail id={42} />, anchor: 'top-right' });
2363
+ *
2364
+ * // A full-width strip along the bottom edge:
2365
+ * manager.open('timeline', { title: 'Timeline', content: <Timeline />, anchor: 'bottom-left', stretch: 'width', height: 120 });
2281
2366
  */
2282
2367
  declare function usePanelFloatingWindowManager(): PanelFloatingWindowManagerHandle;
2283
2368
 
@@ -2451,4 +2536,4 @@ declare function computeResizedRect(dir: ResizeDir, dx: number, dy: number, star
2451
2536
  */
2452
2537
  declare function useColorScheme(): 'dark' | 'light';
2453
2538
 
2454
- export { type BuiltInPanelEvents, type ButtonVariant, type CloseOptions, ConfirmationForm, type ConfirmationFormProps, ContextMenu, type ContextMenuAdapter, type ContextMenuCheckbox, type ContextMenuHandle, type ContextMenuItem, type ContextMenuLabel, type ContextMenuPredefinedMessage, type ContextMenuProps, ContextMenuProvider, type ContextMenuSeparator, type ContextMenuSimpleItem, type ContextMenuSubMenu, DefaultContextMenuAdapter, DockableDesktopProvider, type DockableDesktopProviderProps, type DropPosition, type DropTarget, type FloatAnchor, type FloatingWindow, FormContainerContext, type FormContainerContract, FormContainerProvider, type LayoutGridNode, type LayoutLeafNode, type LayoutNode, LeftPanelRenderer, type ManagedWindowConfig, type MenuItemAction, type MessageFormatter, type ModalOptions, ModalStackRenderer, type OpenPanelOptions, type PanelActions, type PanelContribution, PanelContributionProvider, type PanelDefinition, PanelFloatingWindow, type PanelFloatingWindowManagerHandle, type PanelFloatingWindowProps, type PanelInfo, type PanelInstance, type PanelInstanceId, PanelOverlayRoot, type PanelOverlayRootProps, PanelProvider, PanelRegistry, PanelRegistryClass, type PanelRegistryEntry, type PanelSidebarSection, type PanelState, type PanelTitle, PanelToolbar, ToolbarItem as PanelToolbarItem, type PanelToolbarProps, ToolbarSeparator as PanelToolbarSeparator, type PointerDragConfig, type PredefinedMessageKey, type ResizeConstraints, type ResizeDir, type ResizeRect, type ResolvedToastOptions, RightPanelRenderer, type SearchResult, SecondarySidebar, type SecondarySidebarProps, type SerializedLayout, type ShowContextMenuOptions, type SidePanelOptions, SidePanelRenderer, type SidePanelRendererProps, Sidebar, type SidebarContextValue, type SidebarHandle, type SidebarHeaderAction, type SidebarHeaderActionButton, type SidebarHeaderActionCustom, type SidebarProps, type SidebarTab, type SidebarTabContextValue, type SplitDirection, type SplitOrientation, type StyleClasses, type TaskbarVisibility, type ToastAdapter, ToastContainer, type ToastContainerProps, type ToastFunction, type ToastOptions, type ToastPosition, type ToastPromiseMessages, type ToastType, Toolbar, type ToolbarActionItem, ToolbarButton, type ToolbarButtonProps, ToolbarCenter, type ToolbarContextValue, type ToolbarGroupEntry, type ToolbarGroupItem, type ToolbarGroupSubItem, type ToolbarHandle, type ToolbarItem$1 as ToolbarItem, type ToolbarPosition, type ToolbarProps, ToolbarProvider, type ToolbarRadioItem, ToolbarSearchInput, type ToolbarSearchInputProps, type ToolbarSeparator$1 as ToolbarSeparator, ToolbarSpacer, ToolbarToggle, type ToolbarToggleItem, type ToolbarToggleProps, type ToolbarVariant, type UsePanelFloatingWindowReturn, type WindowActions, WindowManager, type WindowManagerProps, WindowManagerProvider, type WindowManagerProviderProps, type WindowState, WorkspaceClient, type WorkspaceClientConfig, computeResizedRect, defaultPredefinedMessages, formatLabel, isSerializable, sidebarSectionToTab, startPointerDrag, toast, useActivePanelContribution, useColorScheme, useFormContainer, useFormatMessage, useMergedSidebarTabs, useMergedToolbarItems, usePanelActions, usePanelContext, usePanelContextMenu, usePanelContribution, usePanelFloatingWindow, usePanelFloatingWindowManager, usePanelId, usePanelSize, usePanelState, usePredefinedMessages, useRegistry, useShowContextMenu, useSidebar, useSidebarTab, useStyleClasses, useToolbar, useWindowManagerActions, useWindowManagerState };
2539
+ export { type BuiltInPanelEvents, type ButtonVariant, type CloseOptions, ConfirmationForm, type ConfirmationFormProps, ContextMenu, type ContextMenuAdapter, type ContextMenuCheckbox, type ContextMenuHandle, type ContextMenuItem, type ContextMenuLabel, type ContextMenuPredefinedMessage, type ContextMenuProps, ContextMenuProvider, type ContextMenuSeparator, type ContextMenuSimpleItem, type ContextMenuSubMenu, DefaultContextMenuAdapter, DockableDesktopProvider, type DockableDesktopProviderProps, type DropPosition, type DropTarget, type FloatAnchor, type FloatingWindow, FormContainerContext, type FormContainerContract, FormContainerProvider, type LayoutGridNode, type LayoutLeafNode, type LayoutNode, LeftPanelRenderer, type ManagedWindowConfig, type MenuItemAction, type MessageFormatter, type ModalOptions, ModalStackRenderer, type OpenPanelOptions, type PanelActions, type PanelContribution, PanelContributionProvider, type PanelDefinition, type PanelFloatPlacement, PanelFloatingWindow, type PanelFloatingWindowManagerHandle, type PanelFloatingWindowProps, type PanelInfo, type PanelInstance, type PanelInstanceId, PanelOverlayRoot, type PanelOverlayRootProps, PanelProvider, PanelRegistry, PanelRegistryClass, type PanelRegistryEntry, type PanelSidebarSection, type PanelState, type PanelTitle, PanelToolbar, ToolbarItem as PanelToolbarItem, type PanelToolbarProps, ToolbarSeparator as PanelToolbarSeparator, type PointerDragConfig, type PredefinedMessageKey, type ResizeConstraints, type ResizeDir, type ResizeRect, type ResolvedToastOptions, RightPanelRenderer, type SearchResult, SecondarySidebar, type SecondarySidebarProps, type SerializedLayout, type ShowContextMenuOptions, type SidePanelOptions, SidePanelRenderer, type SidePanelRendererProps, Sidebar, type SidebarContextValue, type SidebarHandle, type SidebarHeaderAction, type SidebarHeaderActionButton, type SidebarHeaderActionCustom, type SidebarProps, type SidebarTab, type SidebarTabContextValue, type SplitDirection, type SplitOrientation, type Stretch, type StyleClasses, type TaskbarVisibility, type ToastAdapter, ToastContainer, type ToastContainerProps, type ToastFunction, type ToastOptions, type ToastPosition, type ToastPromiseMessages, type ToastType, Toolbar, type ToolbarActionItem, ToolbarButton, type ToolbarButtonProps, ToolbarCenter, type ToolbarContextValue, type ToolbarGroupEntry, type ToolbarGroupItem, type ToolbarGroupSubItem, type ToolbarHandle, type ToolbarItem$1 as ToolbarItem, type ToolbarPosition, type ToolbarProps, ToolbarProvider, type ToolbarRadioItem, ToolbarSearchInput, type ToolbarSearchInputProps, type ToolbarSeparator$1 as ToolbarSeparator, ToolbarSpacer, ToolbarToggle, type ToolbarToggleItem, type ToolbarToggleProps, type ToolbarVariant, type UsePanelFloatingWindowReturn, type WindowActions, WindowManager, type WindowManagerProps, WindowManagerProvider, type WindowManagerProviderProps, type WindowState, WorkspaceClient, type WorkspaceClientConfig, computeResizedRect, defaultPredefinedMessages, formatLabel, isSerializable, sidebarSectionToTab, startPointerDrag, toast, useActivePanelContribution, useColorScheme, useFormContainer, useFormatMessage, useMergedSidebarTabs, useMergedToolbarItems, usePanelActions, usePanelContext, usePanelContextMenu, usePanelContribution, usePanelFloatingWindow, usePanelFloatingWindowManager, usePanelId, usePanelSize, usePanelState, usePredefinedMessages, useRegistry, useShowContextMenu, useSidebar, useSidebarTab, useStyleClasses, useToolbar, useWindowManagerActions, useWindowManagerState };