UNPKG

goobs-frontend

Version:

A comprehensive React-based libary for building modern web applications

90 lines 3.92 kB
import { default as React } from 'react'; export interface DialogProps { open: boolean; onClose: () => void; children: React.ReactNode; /** Styling options: theme plus sizing/surface overrides forwarded as CSS custom properties. */ styles?: { /** Theme variant: only 'sacred' selects the sacred palette; any other value (or unset) renders light. */ theme?: string; /** Dialog max-width on desktop (default 600px); mobile/tablet clamp to 95vw/80vw. Ignored with fullWidth. */ maxWidth?: string; /** Dialog width (default 100%). Ignored with fullWidth. */ width?: string; /** Dialog height (default auto). */ height?: string; /** Dialog min-height. */ minHeight?: string; /** Dialog max-height on desktop (default 80vh); mobile clamps to 90vh. */ maxHeight?: string; /** Content-area padding. */ padding?: string; /** Dialog border radius. */ borderRadius?: string; /** Dialog background color. */ backgroundColor?: string; /** Full border shorthand; wins over borderColor. */ border?: string; /** Border color; composes a `2px solid <borderColor>` border when `border` is not set. */ borderColor?: string; /** Anchors the dialog to the top of the backdrop with this padding instead of vertical centering. */ topOffset?: string; /** Stretches the dialog to 100% width/max-width. */ fullWidth?: boolean; /** Backdrop background color. */ backdropBackgroundColor?: string; /** Backdrop backdrop-filter (e.g. a blur). */ backdropFilter?: string; /** Dialog box shadow. */ boxShadow?: string; }; customDialogStyles?: React.CSSProperties; /** * Legacy boolean — when true, renders `data-dialog-paper="true"` on the * dialog root. Preserved for back-compat with existing call sites; new * code should use `dataDialog` and `dataSubject` instead. */ dataDialogPaper?: boolean; /** * Stable test selector emitted as `data-dialog="<value>"` on the dialog * root. Convention is a verb-noun like `"confirm-delete"`, * `"create-contract"`, `"manage-category"` so Playwright tests can * locate the dialog without depending on visible title text: * `await expect(page.locator('[data-dialog="confirm-delete"]')).toBeVisible()` */ dataDialog?: string; /** * Singular entity noun (e.g. `"contract"`, `"category"`, `"employee"`) * emitted as `data-subject="<value>"` on the dialog root. Pairs with * `dataDialog` so multiple confirm dialogs on the same page disambiguate * by entity: * `[data-dialog="confirm-delete"][data-subject="category"]` */ dataSubject?: string; /** * `aria-labelledby` for the dialog. Should be the id of the heading * inside `children` (typically a `<Typography text="..." id="...">`). * Required for proper screenreader announcement of the dialog purpose. */ ariaLabelledBy?: string; /** * `aria-describedby` for the dialog. Optional — point at a paragraph * id inside `children` for screenreader description below the heading. */ ariaDescribedBy?: string; /** * `aria-label` fallback when there is no visible heading id to point * `ariaLabelledBy` at (rare — prefer `ariaLabelledBy` so the heading * is the source of truth). */ ariaLabel?: string; } /** * Modal dialog rendered over a backdrop with Escape-key and backdrop-click * dismissal, body scroll-lock, responsive sizing, and sacred/light theming. * Provides ARIA modal wiring and emits open/close diagnostics, plus stable * `data-dialog`/`data-subject` test selectors. */ declare const Dialog: React.FC<DialogProps>; export default Dialog; //# sourceMappingURL=index.d.ts.map