import { ComponentType, ReactNode } from 'react'; import { SvgIconProps, SxProps, Theme } from '@mui/material'; import { ToolboxLabels } from './labels'; export interface ToolboxProps { /** * Maximum number of (non-`data-toolbar-hidden`) children rendered inline * when collapsed. Excess children are revealed via the overflow trigger * inside a floating Paper. When omitted, all children render inline. */ visibleCount?: number; labels?: Partial; /** * Glyph used for the closed-state trigger. Defaults to the meridian-ds * `WidgetOptions` icon (matches v1's `ToolbarActions`). */ icon?: ComponentType; iconProps?: SvgIconProps; /** * Side the overflow Paper opens toward. `'right'` (default) places the * trigger on the left and the Paper covers the row to the right; * `'left'` is the mirror. */ direction?: 'left' | 'right'; sx?: SxProps; children: ReactNode; } /** * Smart overflow toolbar with **single-mount** items. Children mount once * into a stable, hidden host element and are *physically reparented* via * `appendChild` between the inline preview area and the overflow `` * as the popper opens / closes — same pattern as `Widget.FullScreen.Slot`. * Items with no inline space when closed are kept mounted but visually * hidden via `display: none`. * * Why this matters: every toggle's `useTransform` registers a config / * data transform on mount and removes it on unmount. If items remounted * on each open / close, the brief setup → cleanup window would re-emit * the pipeline (transform missing → transform present), causing a visible * flicker on state-bearing transforms (Stack, Zoom, RelativeData). With * stable mounts the transform stays registered across the whole popover * lifecycle. * * Children flagged with `data-toolbar-hidden` (e.g. dividers) skip the * visibility budget but still render in their natural position. Trailing * hidden items past the budget are excluded from the inline preview so * they don't appear as orphan separators in the inline row; they're still * there in the popover. */ export declare function Toolbox({ visibleCount, labels, icon: Icon, iconProps, direction, sx, children, }: ToolboxProps): import("react/jsx-runtime").JSX.Element | null;