UNPKG

@c15t/react

Version:

Developer-first CMP for React: cookie banner, consent manager, preferences centre. GDPR ready with minimal setup and rich customization

85 lines 3.84 kB
/** * Enhanced ConsentManagerWidget component with compound components attached. * * @remarks * This is the main export that provides access to all ConsentManagerWidget components. * It follows the compound components pattern, allowing for flexible composition * of the widget's parts. * */ import type { FC } from 'react'; import { Accordion, AccordionArrow, AccordionContent, AccordionItem, AccordionItems, AccordionTrigger, AccordionTriggerInner, Switch } from './atoms/accordion'; import { AcceptAllButton, CustomizeButton, RejectButton, SaveButton } from './atoms/button'; import { Footer, FooterSubGroup } from './atoms/footer'; import { Root } from './atoms/root'; import type { ConsentManagerWidgetProps } from './types'; /** * This interface extends the base ConsentManagerWidget component with additional sub-components * that can be used to compose the widget's structure. Each component is designed to be * fully accessible and customizable while maintaining compliance with privacy regulations. * * @public */ export interface ConsentManagerWidgetCompoundComponent extends FC<ConsentManagerWidgetProps> { AccordionTrigger: typeof AccordionTrigger; AccordionTriggerInner: typeof AccordionTriggerInner; AccordionContent: typeof AccordionContent; AccordionArrow: typeof AccordionArrow; Accordion: typeof Accordion; Switch: typeof Switch; AccordionItems: typeof AccordionItems; AccordionItem: typeof AccordionItem; Root: typeof Root; AcceptAllButton: typeof AcceptAllButton; CustomizeButton: typeof CustomizeButton; SaveButton: typeof SaveButton; RejectButton: typeof RejectButton; Footer: typeof Footer; FooterSubGroup: typeof FooterSubGroup; } /** * The main consent management widget component. * Provides a pre-configured interface for managing privacy consents. * * @remarks * Key features: * - Implements compound component pattern for flexible composition * - Manages consent state and user interactions * - Provides accessible controls for consent management * - Supports comprehensive theming * - Handles accordion state management * * @example * Basic usage: * ```tsx * <ConsentManagerWidget * theme={{ * root: "custom-root-class", * accordion: "custom-accordion-class", * footer: "custom-footer-class" * }} * hideBrading={true} * /> * ``` * * @example * Compound components: * ```tsx * <ConsentManagerWidget.Root> * <ConsentManagerWidget.Accordion> * <ConsentManagerWidget.AccordionItems /> * </ConsentManagerWidget.Accordion> * </ConsentManagerWidget.Root> * ``` * Note: Next.js Server Components do not support compound components. Ensure you add 'use client' to the file. * */ declare const ConsentManagerWidget: ConsentManagerWidgetCompoundComponent; export default ConsentManagerWidget; export { ConsentManagerWidget }; export { Accordion, AccordionArrow, AccordionContent, AccordionItem, AccordionItems, AccordionTrigger, AccordionTriggerInner, ConsentManagerWidgetAccordion, ConsentManagerWidgetAccordionArrow, ConsentManagerWidgetAccordionContent, ConsentManagerWidgetAccordionItem, ConsentManagerWidgetAccordionItems, ConsentManagerWidgetAccordionTrigger, ConsentManagerWidgetAccordionTriggerInner, ConsentManagerWidgetSwitch, Switch, } from './atoms/accordion'; export { AcceptAllButton, ConsentManagerWidgetAcceptAllButton, ConsentManagerWidgetCustomizeButton, ConsentManagerWidgetRejectButton, ConsentManagerWidgetSaveButton, CustomizeButton, RejectButton, SaveButton, } from './atoms/button'; export { ConsentManagerWidgetFooter, ConsentManagerWidgetFooterSubGroup, Footer, FooterSubGroup, } from './atoms/footer'; export { ConsentManagerWidgetRoot, Root, } from './atoms/root'; export type { ConsentManagerWidgetTheme } from './theme'; //# sourceMappingURL=index.d.ts.map