import { type HTMLAttributes } from 'react'; import { type DataTestId, type StylingProps, type WithChildren } from '@dynatrace/strato-components/core'; import type { PanelSize } from './Panel/types/shared-panel-types.js'; import type { PagePanelProps, PagePanelSizes } from './types/shared-page-types.js'; /** * @public */ export interface DetailViewOwnProps extends WithChildren, Omit, 'onResize' | keyof StylingProps>, StylingProps, DataTestId { /** * The disired width of the detail view. * Depending on the available screen width and other panel configurations, * the size of the panel might not match the `preferredWidth` exactly. * @defaultValue 25% */ preferredWidth?: PanelSize; /** * The minimum width of the detail view in pixels. * @defaultValue 320 */ minWidth?: number; /** * Screen size below which the overlay Drawer will be shown. * @defaultValue 1280 */ breakpoint?: number; /** * If the detail views width can be resized (by drag and drop) * @defaultValue true */ resizable?: boolean; /** * Whether to keep the detail view content mounted even if the detail view * is dismissed. * @defaultValue false */ keepMounted?: boolean; /** * Callback triggered after resizing is finished with the new panel sizes of * all existing panels and the newly applied panel width (in px). */ onResize?: (sizes: PagePanelSizes, width: number) => void; /** * Notifies the user if an action happened that should change the dismissed state * like clicking on the backdrop on mobile. * The returned state is only a recommendation and might differ from what the actual * state of the panel should be. */ onDismissChange?: (state: boolean, reason: string) => void; } /** * @public */ export type DetailViewProps = DetailViewOwnProps & PagePanelProps; /** * The `DetailView` component is used inside the `Page` component for displaying content in the corresponding panel. * @public */ export declare const DetailView: (props: DetailViewProps & import("react").RefAttributes) => React.ReactElement | null;