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/README.md +2 -2
- package/dist/index.cjs +5 -5
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +93 -8
- package/dist/index.d.ts +93 -8
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/dist/styles.css +9 -0
- package/package.json +1 -1
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(
|
|
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
|
|
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
|
-
*
|
|
2226
|
-
*
|
|
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(
|
|
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
|
|
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
|
-
*
|
|
2226
|
-
*
|
|
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 };
|