/** * @packageDocumentation * Default implementation of the Consent Dialog that ships with c15t. * * The new compound-component API exposes all primitives (Root, Card, etc.). * This default export simply composes those primitives so consumers that * prefer a one-line `` usage still have it. */ import type { FC } from 'react'; import { type ConsentDialogTriggerProps } from '../consent-dialog-trigger'; import type { InlineLegalLinksProps } from '../shared/primitives/legal-links'; /** * Props for the `` convenience component. */ export interface ConsentDialogProps { /** * Theme configuration override (deprecated) * @deprecated Theme should be set on the ConsentManagerProvider */ theme?: never; /** * Disables all animations when true */ disableAnimation?: boolean; /** * Removes default styles when true */ noStyle?: boolean; /** * Locks the scroll when true */ scrollLock?: boolean; /** * Traps keyboard focus within a dialog when true */ trapFocus?: boolean; /** * Control the open state. If omitted the dialog follows * `useConsentManager().activeUI === 'dialog'`. */ open?: boolean; /** * Controls which legal links to display. * * - `undefined` (default): Shows all available legal links * - `null`: Explicitly hides all legal links * - Array of keys: Shows only the specified legal links * * @defaultValue undefined * * @example * ```tsx * // Show all links * * * // Show no links * * * // Show only privacy policy * * ``` * * @remarks * You must set the legal links in the ConsentManagerProvider options. */ legalLinks?: InlineLegalLinksProps['links']; /** * Controls whether to hide the branding in the dialog footer. * * @defaultValue false */ hideBranding?: boolean; /** * Show a floating trigger button to resurface the consent dialog. * Useful for allowing users to re-open the dialog after dismissing. * * - `true` - Show trigger with default settings * - `false` - Hide trigger (default) * - `ConsentDialogTriggerProps` - Show trigger with custom props * * @default false */ showTrigger?: boolean | ConsentDialogTriggerProps; /** * Which consent models this dialog responds to. * @default ['opt-in', 'opt-out'] */ models?: import('c15t').Model[]; /** * Override the UI source identifier sent with consent API calls. * @default 'dialog' */ uiSource?: string; } export declare const ConsentDialog: FC;