UNPKG

@atlaskit/drawer

Version:

A drawer is a panel that slides in from the left side of the screen.

25 lines (24 loc) • 1.2 kB
/** * @jsxRuntime classic * @jsx jsx */ import { type ReactNode } from 'react'; import { type DrawerProps } from '../types'; /** * **DrawerTopLayer** * * Top-layer (`platform-dst-top-layer`) implementation of `Drawer`. Renders a * native `<dialog>` via `@atlaskit/top-layer`, replacing Portal, Blanket, * react-focus-lock, react-scrolllock and `@atlaskit/layering` with native * modality, `::backdrop`, focus trap and return, and `DialogScrollLock`. * * The `Dialog` primitive owns the entry and exit animation lifecycle (it keeps * the host element mounted through the exit transition, then fires * `onExitFinish`), so no `ExitingPersistence` wrapper is needed: the drawer * renders `<Dialog isOpen={isOpen}>` directly. `useDrawerStack` tracks stack * depth so only the foreground drawer shows a `::backdrop`. * * `isFocusLockEnabled` is intentionally unsupported: a native modal `<dialog>` * always traps focus, so `isFocusLockEnabled={false}` is a no-op under this gate. */ export declare function DrawerTopLayer({ width, isOpen, shouldReturnFocus, onKeyDown, testId, children, onClose, onCloseComplete, onOpenComplete, label, titleId, enterFrom, }: DrawerProps): ReactNode;