import { Provider } from '@angular/core'; import { VudDialogRole } from '../dialog'; export type VudModalSize = 'sm' | 'md' | 'lg' | 'xl' | 'full' | 'dynamic'; export type VudDialogType = 'info' | 'error' | 'warning' | 'help' | 'success' | 'none'; export declare class VudModalOptions { /** * Defines the predefined size of the modal: * - `sm` for fixed width of 420px. * - `md` for fixed width of 600px. * - `lg` for fixed width of 720px. * - `xl` for fixed width of 1200px. * - `full` for fullscreen (100vw width & 100% height). * - `dynamic` for dynamic size (grows with the content), can be further customized with `width`, `height`, `maxWidth` and `maxWidth` properties. * * @default `md` */ size?: VudModalSize; /** * Defines the type of the modal (with an icon): * - `none` for no icon. * - `info` for info dialog. * - `error` for error dialog. * - `warning` for warning dialog. * - `help` for help dialog. * - `success` for success dialog. */ type?: VudDialogType; /** * Defines if the modal should be centered. Used together with `type` property. * * @default `false` */ centered?: boolean; /** * The ARIA role of the dialog element. * * @default `dialog` */ role?: VudDialogRole; /** * The ID of the element that labels the dialog. * * @deprecated Use `vudModalTitle` directive instead. Will be removed in v15. */ labelledBy?: string; /** * The ID of the element that describes the dialog. * * @deprecated Use `vudModalDescription` directive instead. Will be removed in v15. */ describedBy?: string; /** * Defines if the modal should be closed when the escape key is pressed. * * @default `true` */ closeOnEscape?: boolean; /** * Defines if the modal should be closed when the backdrop is clicked. * * @default `true` */ closeOnOutsideClick?: boolean; /** * Defines if the modal should be closed when the route changes. * * @default `true` */ closeOnNavigation?: boolean; /** * Defines the width of the modal. Only applicable together with `dynamic` size. */ width?: string; /** * Defines the height of the modal. Only applicable together with `dynamic` size. */ height?: string; /** * Defines the maximum width of the modal. This property is ignored when size is `full`. * * If you want to make this value different depending on the screen size, you can achieve that through CSS variables, e.g.: * * ```css * @media (max-width: 768px) { * :root { --vud-modal-margin: 3rem; } * } * ``` * * @default `calc(100vw - var(--vud-modal-margin, 6rem))` */ maxWidth?: string; /** * Defines the maximum height of the modal. This property is ignored when size is `full`. * Try to avoid using `vh` unit as it does not properly work on WebKit (mobile). * [Read the discussion](https://github.com/tailwindlabs/tailwindcss/discussions/4515). * * If you want to make this value different depending on the screen size, you can achieve that through CSS variables, e.g.: * * ```css * @media (max-width: 768px) { * :root { --vud-modal-margin: 3rem; } * } * ``` * * @default `calc(100% - var(--vud-modal-margin, 6rem))` */ maxHeight?: string; } export declare const DEFAULT_MODAL_OPTIONS: VudModalOptions; export declare function provideVudModalOptions(options: VudModalOptions): Provider;