UNPKG

@c15t/react

Version:

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

1 lines 2.71 kB
import*as e from"react/jsx-runtime";import*as t from"react";import*as n from"../../shared/primitives/box.js";import*as o from"../../shared/ui/accordion/index.js";import*as r from"../../shared/ui/switch/index.js";import*as a from"../../../hooks/use-consent-manager.js";import*as i from"../../../hooks/use-translations.js";import*as c from"../consent-manager-widget.module.js";let s=(0,t.forwardRef)(({children:t,themeKey:o,...r},a)=>(0,e.jsx)(n.Box,{ref:a,baseClassName:c.default.accordionTrigger,themeKey:o,...r,children:t})),d=o.Trigger,m=o.Content,g=o.Arrow,h=o.Root,l=r.Root,w=()=>{let{selectedConsents:n,setSelectedConsent:o,getDisplayedConsents:r}=(0,a.useConsentManager)(),h=(0,t.useCallback)((e,t)=>{o(e,t)},[o]),{consentTypes:w}=(0,i.useTranslations)();return r().map(t=>(0,e.jsxs)(p,{value:t.name,themeKey:"widget.accordion.item",className:c.default.accordionItem,children:[(0,e.jsxs)(s,{themeKey:"widget.accordion.trigger","data-testid":`consent-manager-widget-accordion-trigger-${t.name}`,children:[(0,e.jsxs)(d,{themeKey:"widget.accordion.trigger-inner",className:c.default.accordionTriggerInner,"data-testid":`consent-manager-widget-accordion-trigger-inner-${t.name}`,children:[(0,e.jsx)(g,{"data-testid":`consent-manager-widget-accordion-arrow-${t.name}`,className:c.default.accordionArrow}),w[t.name]?.title??t.name.replace(/_/g," ").replace(/\b\w/g,e=>e.toUpperCase())]}),(0,e.jsx)(l,{checked:n[t.name],onClick:e=>e.stopPropagation(),onKeyUp:e=>e.stopPropagation(),onKeyDown:e=>e.stopPropagation(),onCheckedChange:e=>h(t.name,e),disabled:t.disabled,theme:{root:{themeKey:"widget.switch",className:c.default.switch},thumb:{themeKey:"widget.switch.thumb",className:c.default.switchThumb},track:{themeKey:"widget.switch.track"}},"data-testid":`consent-manager-widget-switch-${t.name}`})]}),(0,e.jsx)(m,{theme:{content:{themeKey:"widget.accordion.content",className:c.default.accordionContent},contentInner:{themeKey:"widget.accordion.content-inner"}},"data-testid":`consent-manager-widget-accordion-content-${t.name}`,children:w[t.name]?.description??t.description})]},t.name))},p=(0,t.forwardRef)(({className:t,...n},r)=>(0,e.jsx)(o.Item,{ref:r,className:c.default.accordionItem,...n})),f=d,u=s,C=m,A=g,j=h,x=l,y=w,I=p;export{j as Accordion,A as AccordionArrow,C as AccordionContent,I as AccordionItem,y as AccordionItems,u as AccordionTrigger,f as AccordionTriggerInner,h as ConsentManagerWidgetAccordion,g as ConsentManagerWidgetAccordionArrow,m as ConsentManagerWidgetAccordionContent,p as ConsentManagerWidgetAccordionItem,w as ConsentManagerWidgetAccordionItems,s as ConsentManagerWidgetAccordionTrigger,d as ConsentManagerWidgetAccordionTriggerInner,l as ConsentManagerWidgetSwitch,x as Switch};