@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
TypeScript
/**
* @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;