import React from 'react'; import { IconProps } from '../icon/interfaces'; import { BaseComponentProps } from '../types/base-component'; import { NonCancelableEventHandler } from '../types/events'; export interface DrawerProps extends BaseComponentProps { /** * Header of the drawer. * * It should contain the only `h2` used in the drawer. */ header?: React.ReactNode; /** * Main content of the drawer. */ children?: React.ReactNode; /** * Renders the drawer in a loading state. We recommend that you also set a `i18nStrings.loadingText`. */ loading?: boolean; /** * Determines whether the drawer content has padding. If `true`, removes the default padding from the content area. */ disableContentPaddings?: boolean; /** * An object containing all the necessary localized strings required by the component. * - `loadingText` - The text that's displayed when the drawer is in a loading state. * @i18n */ i18nStrings?: DrawerProps.I18nStrings; /** * Actions for the header. Available only if you specify the `header` property. */ headerActions?: React.ReactNode; /** * Sticky footer content that remains visible at the bottom during scroll. * * Automatically becomes non-sticky when scrollable content area is too small * to ensure content remains accessible (not covered by the footer). */ footer?: React.ReactNode; /** * Sets the ARIA role of the drawer. * - `"region"` (default for non-`static` positions) — exposes the drawer as a * landmark region. The drawer receives focus when opened. * - `"presentation"` (default for `position="static"`) — removes landmark semantics * from the drawer body. Use this when the containing element already provides the * appropriate semantic role (e.g. a wrapping `