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