@c15t/react 3.0.0-alpha.10 → 3.0.0-alpha.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +1 -0
- package/dist/aggregate-components.js +1 -1
- package/dist/chunk-warming.js +1 -1
- package/dist/components/consent-gate/atoms.js +1 -1
- package/dist/components/iab-panel/atoms/root.js +1 -1
- package/dist/components/iab-panel/iab-panel.js +1 -1
- package/dist/components/iab-prompt/atoms/root.js +1 -1
- package/dist/components/iab-prompt/iab-prompt.js +1 -1
- package/dist/components/panel/atoms/root.js +1 -1
- package/dist/components/panel-trigger/atoms/root.js +1 -1
- package/dist/components/panel-trigger/panel-trigger.js +1 -1
- package/dist/components/panel-trigger/toolbar-loader.js +2 -0
- package/dist/components/preferences/atoms/root.js +1 -1
- package/dist/components/prompt/atoms/root.js +1 -1
- package/dist/components/shared/surface-styles.js +1 -1
- package/dist/devtools.js +1 -1
- package/dist/iab/styles.tw3.css +2 -2
- package/dist/iab-dialog-deferred.js +2 -0
- package/dist/iab.js +1 -1
- package/dist/styles.tw3.css +2 -2
- package/dist/utils/deferred-module.js +1 -1
- package/dist/version.js +1 -1
- package/dist-types/chunk-warming.d.ts +8 -11
- package/dist-types/components/panel-trigger/toolbar-loader.d.ts +34 -0
- package/dist-types/components/shared/surface-styles.d.ts +26 -2
- package/dist-types/iab-dialog-deferred.d.ts +36 -0
- package/dist-types/iab.d.ts +2 -1
- package/dist-types/version.d.ts +1 -1
- package/docs/README.md +1 -0
- package/docs/concepts/choose-your-setup.md +5 -2
- package/docs/concepts/data-fetching.md +24 -10
- package/docs/concepts/modes.md +9 -6
- package/docs/customization/slots.md +16 -16
- package/docs/customization/tokens.md +29 -0
- package/docs/frameworks/react/components/consent-banner.md +3 -3
- package/docs/frameworks/react/components/consent-dialog.md +3 -3
- package/docs/frameworks/react/components/consent-provider.md +12 -9
- package/docs/frameworks/react/components.md +3 -3
- package/docs/frameworks/react/content-security-policy.md +8 -2
- package/docs/frameworks/react/iab.md +19 -0
- package/docs/frameworks/react/quickstart.md +25 -79
- package/docs/frameworks/react/rendering.md +161 -139
- package/docs/frameworks/react/scripts.md +3 -3
- package/docs/frameworks/react/troubleshooting.md +17 -16
- package/docs/frameworks/react/upgrade-v3.md +5 -4
- package/docs/guides/banner-experiments.md +16 -0
- package/docs/integrations/overview.md +1 -0
- package/docs/integrations/vercel-speed-insights.md +306 -0
- package/package.json +7 -7
package/AGENTS.md
CHANGED
|
@@ -125,5 +125,6 @@ These docs describe c15t v3. Find your app's row in Choose your setup, then foll
|
|
|
125
125
|
- [TikTok Pixel](./docs/integrations/tiktok-pixel.md): Load the TikTok Pixel only after marketing consent with the c15t tiktokPixel helper, guard ttq event calls, and check it in DevTools.
|
|
126
126
|
- [Umami Analytics](./docs/integrations/umami-analytics.md): Load the Umami Analytics tracker only after measurement consent with the c15t umamiAnalytics helper, point it at a self-hosted instance, and check it in DevTools.
|
|
127
127
|
- [Vercel Analytics](./docs/integrations/vercel-analytics.md): Load the Vercel Web Analytics script only after measurement consent with the c15t vercelAnalytics helper, choose the debug script, and check it in DevTools.
|
|
128
|
+
- [Vercel Speed Insights](./docs/integrations/vercel-speed-insights.md): Load the Vercel Speed Insights collector only after measurement consent with the c15t vercelSpeedInsights helper, drop Web Vitals reports on revocation, and check it in DevTools.
|
|
128
129
|
- [X Pixel](./docs/integrations/x-pixel.md): Load the X Pixel only after marketing consent with the c15t xPixel helper, guard twq conversion events, and check it in DevTools.
|
|
129
130
|
- [YouTube](./docs/integrations/youtube.md): Gate YouTube embeds with c15t v3 in Next.js, TanStack Start, React, Nuxt, Vue, Astro, Svelte, SvelteKit or JavaScript.
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{jsx as o}from"react/jsx-runtime";import{registerDialogChunkWarmer as e,useIdleDialogWarming as
|
|
2
|
+
import{jsx as o}from"react/jsx-runtime";import{registerDialogChunkWarmer as e,useIdleDialogWarming as t}from"./chunk-warming.js";import{FIRST_PAINT_SHEETS as n}from"./components/shared/first-paint-sheets.js";import{preloadSurfaceSheets as r}from"./components/shared/surface-styles.js";import{useActiveUI as i}from"./hooks.js";import{createDeferredModule as s}from"./utils/deferred-module.js";let c=s(()=>(r(n),import("./components/panel/index.js"))),a=s(()=>import("./components/preferences/index.js"));e(()=>{c.preload()});let m=c.component(o=>o.ConsentDialog),d=a.component(o=>o.ConsentWidget),l=function(o,e,t){let n={};for(let r of e)Object.defineProperty(o,r,{configurable:!0,enumerable:!0,get:()=>(n[r]??=t(r),n[r])});return o},p=l(e=>{let n=i();return(t("banner"===n),!0===e.open||"dialog"===n||e.showTrigger)?o(m,{...e}):null},["Card","Header","HeaderTitle","HeaderDescription","Content","Footer","ConsentCustomizationCard","ConsentDialogFooter","ConsentDialogHeader","ConsentDialogHeaderTitle","ConsentDialogHeaderDescription","ConsentDialogContent","Overlay","Root"],o=>c.component(e=>e[o])),g=l(e=>o(d,{...e}),["AccordionTrigger","AccordionTriggerInner","AccordionContent","AccordionArrow","Accordion","Switch","AccordionItems","AccordionItem","VendorList","Root","AcceptAllButton","CustomizeButton","SaveButton","RejectButton","PolicyActions","Footer","FooterSubGroup"],o=>a.component(e=>e[o]));export{p as ConsentDialog,g as ConsentWidget};
|
package/dist/chunk-warming.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
import{useEffect as e}from"react";import{useUIConfig as n}from"./ui-config-context.js";let t=new Set,i=!1,r=function(e){return t.add(e),i&&e(),()=>{t.delete(e)}},a=function(){for(let e of(i=!0,t))e()},o=new Set(["slow-2g","2g"]),u=function(){if("u"<typeof navigator||!1===navigator.onLine)return!1;let{connection:e}=navigator;return e?.saveData!==!0&&!o.has(e?.effectiveType??"")},l=0,g=!1,s=function(){g=!1,l>0&&u()&&a()},c=function(){if(g||i||!u())return;g=!0;let e=()=>{"function"==typeof window.requestIdleCallback?window.requestIdleCallback(s):window.setTimeout(s,200)};"complete"===document.readyState?e():window.addEventListener("load",e,{once:!0})},f=function(t){let{preloadDialog:i="idle"}=n(),r=t&&"idle"===i;e(()=>{if(r)return l+=1,c(),()=>{l-=1}},[r])},m=function(){i=!1,l=0,g=!1};export{r as registerDialogChunkWarmer,m as resetDialogChunkWarmingForTests,f as useIdleDialogWarming,a as warmDialogChunk};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Fragment as t,jsx as e,jsxs as o}from"react/jsx-runtime";import s from"@c15t/ui/styles/components/consent-gate";import{forwardRef as
|
|
1
|
+
import{Fragment as t,jsx as e,jsxs as o}from"react/jsx-runtime";import s from"@c15t/ui/styles/components/consent-gate";import{forwardRef as n}from"react";import{useTranslations as r}from"../../component-hooks/use-translations.js";import{useUIConfig as a}from"../../ui-config-context.js";import{getSlotProps as i,mergeSlotProps as l}from"../../utils/merge-slot-props.js";import{FIRST_PAINT_SHEETS as m}from"../shared/first-paint-sheets.js";import{Box as c}from"../shared/primitives/box.js";import{ConsentButton as p}from"../shared/primitives/button.js";import{SurfaceStyles as d,useSurfaceSheetsReady as f}from"../shared/surface-styles.js";let u=n(({children:n,...r},a)=>f(m,r.noStyle)?o(t,{children:[e(d,{sheets:m,noStyle:r.noStyle}),e(c,{ref:a,baseClassName:s.placeholder,"data-testid":"consent-gate-placeholder",slotKey:"consent-gate.root",...r,children:n})]}):null),y=n(({children:t,category:o,...n},a)=>{let{consentGate:i,consentTypes:l}=r(),m=o&&i?.title?i.title.replace("{category}",l?.[o]?.title??o):void 0;return e(c,{ref:a,baseClassName:s.title,"data-testid":"consent-gate-title",slotKey:"consent-gate.title",...n,children:t??m})}),g=n(({children:t,category:o,className:s,style:n,...m},c)=>{let{consentGate:d,consentTypes:f}=r(),{components:u}=a(),y=l(i(u,"consent-gate.button"),{className:s,style:n}),g=f?.[o]?.title??o,h=d?.actionButton?.replace("{category}",g);return e(p,{mode:"stroke",size:"small",variant:"primary",...y,...m,ref:c,action:"open-consent-dialog",category:o,"data-testid":"consent-gate-button",children:t??h})});u.displayName="ConsentGateRoot",y.displayName="ConsentGateTitle",g.displayName="ConsentGateButton";export{g as ConsentGateButton,u as ConsentGateRoot,y as ConsentGateTitle};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{jsx as o,jsxs as e}from"react/jsx-runtime";import{isDialogDismissKey as t}from"@c15t/ui/primitives/dialog";import r from"@c15t/ui/styles/components/iab-consent-dialog";import{useEffect as i,useMemo as n,useState as s}from"react";import{createPortal as m}from"react-dom";import{ConsentTrackingContext as a}from"../../../context/consent-tracking-context.js";import{LocalThemeContext as l}from"../../../context/theme-context.js";import{useSetActiveUI as c}from"../../../hooks.js";import{useIABConsentManager as d}from"../../../hooks/use-iab-manager.js";import{useIsHydrated as u}from"../../../hooks/use-is-hydrated.js";import{useScrollLock as p}from"../../../hooks/use-scroll-lock.js";import{useTextDirection as f}from"../../../hooks/use-text-direction.js";import{useUIConfig as g}from"../../../ui-config-context.js";import{cnExt as h}from"../../../utils/cn.js";import{mergeSlotProps as j}from"../../../utils/merge-slot-props.js";import{IAB_DIALOG_SHEETS as b}from"../../shared/iab-dialog-sheets.js";import{SurfaceStyles as k}from"../../shared/surface-styles.js";import{IABConsentDialogOverlay as
|
|
2
|
+
import{jsx as o,jsxs as e}from"react/jsx-runtime";import{isDialogDismissKey as t}from"@c15t/ui/primitives/dialog";import r from"@c15t/ui/styles/components/iab-consent-dialog";import{useEffect as i,useMemo as n,useState as s}from"react";import{createPortal as m}from"react-dom";import{ConsentTrackingContext as a}from"../../../context/consent-tracking-context.js";import{LocalThemeContext as l}from"../../../context/theme-context.js";import{useSetActiveUI as c}from"../../../hooks.js";import{useIABConsentManager as d}from"../../../hooks/use-iab-manager.js";import{useIsHydrated as u}from"../../../hooks/use-is-hydrated.js";import{useScrollLock as p}from"../../../hooks/use-scroll-lock.js";import{useTextDirection as f}from"../../../hooks/use-text-direction.js";import{useUIConfig as g}from"../../../ui-config-context.js";import{cnExt as h}from"../../../utils/cn.js";import{mergeSlotProps as j}from"../../../utils/merge-slot-props.js";import{IAB_DIALOG_SHEETS as b}from"../../shared/iab-dialog-sheets.js";import{SurfaceStyles as k,useSurfaceSheetsReady as v}from"../../shared/surface-styles.js";import{IABConsentDialogOverlay as y}from"./overlay.js";let x=["iab"],A=({children:A,open:F,models:L=x,noStyle:C,disableAnimation:D,scrollLock:q,trapFocus:w,uiSource:B})=>{let{activeUI:E,translationConfig:I,iab:N,policyDialog:P,model:R}=d({preferences:{scrollLock:q,trapFocus:w}}),S=c(),{components:T}=g(),H=f(I.defaultLanguage),O=u(),[V,_]=s(!1),z=v(b,C)&&null!==R&&L.includes(R)&&(F??"dialog"===E),G=P.blocking,J=n(()=>({disableAnimation:D,noStyle:C,scrollLock:G,trapFocus:G}),[D,C,G]);p(!!(z&&G)),i(()=>{if(!z)return;let o=o=>{t(o.key)&&(o.preventDefault(),S("none"))};return document.addEventListener("keydown",o),()=>document.removeEventListener("keydown",o)},[z,S]),i(()=>{if(z){let o=requestAnimationFrame(()=>_(!0));return()=>cancelAnimationFrame(o)}if(D){let o=requestAnimationFrame(()=>_(!1));return()=>cancelAnimationFrame(o)}let o=setTimeout(()=>{_(!1)},150);return()=>clearTimeout(o)},[z,D]);let K=j(T?.["iab-dialog"]?.root,{baseClassName:h(r.root,D?void 0:V?r.dialogVisible:r.dialogHidden)}),M=n(()=>({uiSource:B??"iab_dialog"}),[B]);return O&&N?.config.enabled&&(z||V)?m(o(a.Provider,{value:M,children:e(l.Provider,{value:J,children:[o(k,{sheets:b,noStyle:C}),o(y,{isOpen:z}),o("div",{...K,"data-testid":"iab-consent-dialog-root",dir:H,children:A})]})}),document.body):null};A.displayName="IABConsentDialogRoot";export{A as IABConsentDialogRoot};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{Fragment as e,jsx as t,jsxs as o}from"react/jsx-runtime";import{applyPublisherRestrictionsToGVL as n}from"@c15t/iab/headless";import{isDialogDismissKey as i}from"@c15t/ui/primitives/dialog";import r from"@c15t/ui/styles/components/consent-actions";import a from"@c15t/ui/styles/components/iab-consent-dialog";import{useCallback as s,useEffect as l,useLayoutEffect as d,useMemo as c,useRef as m,useState as p}from"react";import{createPortal as u}from"react-dom";import{useHeadlessIABConsentUI as g}from"../../component-hooks/use-headless-iab-consent-ui.js";import{useTranslations as h}from"../../component-hooks/use-translations.js";import{ConsentDialogTrigger as b}from"../panel-trigger/index.js";import{Branding as y}from"../panel/atoms/card.js";import{ConsentTrackingContext as f}from"../../context/consent-tracking-context.js";import{LocalThemeContext as v}from"../../context/theme-context.js";import{useComponentConfig as C}from"../../hooks/use-component-config.js";import{useFocusTrap as S}from"../../hooks/use-focus-trap.js";import{useIABConsentManager as k}from"../../hooks/use-iab-manager.js";import{useScrollLock as N}from"../../hooks/use-scroll-lock.js";import{useTextDirection as I}from"../../hooks/use-text-direction.js";import{useUIConfig as x}from"../../ui-config-context.js";import{mergeSlotProps as L}from"../../utils/merge-slot-props.js";import{IAB_DIALOG_SHEETS as j}from"../shared/iab-dialog-sheets.js";import{SurfaceStyles as T}from"../shared/surface-styles.js";import{FeatureItem as A}from"./atoms/feature-item.js";import{IABConsentDialogOverlay as F}from"./atoms/overlay.js";import{PurposeItem as V}from"./atoms/purpose-item.js";import{StackItem as w}from"./atoms/stack-item.js";import{VendorList as P}from"./atoms/vendor-list.js";import{useIABDisplayModel as B}from"./hooks/use-display-model.js";import{useIABTranslations as R}from"./use-iab-translations.js";import*as $ from"../shared/ui/button/index.js";import*as M from"../shared/ui/tabs/index.js";let q=["iab"],z={tabIndex:-1},E=({open:E,noStyle:H,disableAnimation:D,scrollLock:W,trapFocus:G,hideBranding:O,initialTab:_,showTrigger:J=!1,models:K=q,uiSource:Q})=>{let U=R(),{common:X}=h(),{components:Y}=x(),{iab:Z,activeUI:ee,policyDialog:et,translationConfig:eo,model:en}=k({preferences:{scrollLock:W,trapFocus:G}}),{banner:ei,closeUI:er,openDialog:ea,performDialogAction:es}=g(),el=et.blocking,ed=I(eo.defaultLanguage),ec=m(null),em=m(null),ep=m(null),[eu,eg]=p(_??Z?.preferenceCenterTab??"purposes"),[eh,eb]=p(null),[ey,ef]=p(!1),[ev,eC]=p(!1),[eS,ek]=p(!1),eN=null!==en&&K.includes(en)&&(E??"dialog"===ee),eI=C({disableAnimation:D,noStyle:H,scrollLock:el,trapFocus:et.blocking}),{consentRows:ex,essentialRows:eL,essentialPartnerCount:ej,featureRows:eT,featuresStandardText:eA,purposeTabCount:eF,vendorTabCount:eV,data:{purposes:ew}}=B(),eP=Z?.gvl??null,eB=Z?.publisherRestrictions,eR=c(()=>eP?n(eP,eB):null,[eP,eB]),e$=s((e,t)=>{Z?.setPurposeConsent(e,t)},[Z]),eM=s((e,t)=>{Z?.setSpecialFeatureOptIn(e,t)},[Z]),eq=s((e,t)=>{Z?.setVendorConsent(e,t)},[Z]),ez=s((e,t)=>{Z?.setVendorLegitimateInterest(e,t)},[Z]),eE=s((e,t)=>{Z?.setPurposeLegitimateInterest(e,t)},[Z]),eH=async()=>{try{await es("accept")}catch{}},eD=async()=>{try{await es("reject")}catch{}},eW=async()=>{try{await es("customize")}catch{}},eG=s(()=>{er()},[er]),eO=e=>{eb(e),eg("vendors"),ea({tab:"vendors"})};S(!!(ev&&eN&&eI.trapFocus),ec,{initialFocus:"first-tabbable"}),N(!!(eN&&eI.scrollLock)),l(()=>{if(!eN)return;let e=e=>{i(e.key)&&(e.preventDefault(),eG())};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[eG,eN]),l(()=>{let e=requestAnimationFrame(()=>eC(!0));return()=>cancelAnimationFrame(e)},[]),l(()=>{if(eN){let e=requestAnimationFrame(()=>ek(!0));return()=>cancelAnimationFrame(e)}if(eI.disableAnimation){let e=requestAnimationFrame(()=>ek(!1));return()=>cancelAnimationFrame(e)}let e=setTimeout(()=>{ek(!1)},150);return()=>clearTimeout(e)},[eN,eI.disableAnimation]);let e_=m(!!_);l(()=>{let e=Z?.preferenceCenterTab;if(!(eN&&e))return;if(e_.current){e_.current=!1;return}let t=requestAnimationFrame(()=>{eg(e)});return()=>cancelAnimationFrame(t)},[eN,Z?.preferenceCenterTab]),d(()=>{let e,t;if("purposes"!==eu&&"vendors"!==eu)return;let o=em.current;if(!o||null===ep.current)return;let n=ep.current;if(ep.current=null,!window.matchMedia("(prefers-reduced-motion: reduce)").matches)return o.style.height=`${n}px`,o.style.overflow="hidden",o.style.transition="none",e=requestAnimationFrame(()=>{t=requestAnimationFrame(()=>{if(!o)return;o.style.height="auto";let e=o.getBoundingClientRect().height;if(o.style.height=`${n}px`,1>Math.abs(n-e)){o.style.height="",o.style.overflow="",o.style.transition="";return}o.getBoundingClientRect(),o.style.transition="height 180ms cubic-bezier(0.33, 1, 0.68, 1)",o.style.height=`${e}px`,o.addEventListener("transitionend",e=>{"height"===e.propertyName&&(o.style.height="",o.style.overflow="",o.style.transition="")},{once:!0})})}),()=>{cancelAnimationFrame(e),cancelAnimationFrame(t)}},[eu]);let eJ=s(e=>{em.current&&(ep.current=em.current.offsetHeight),eg(e),ea({tab:e})},[ea]),eK=c(()=>({uiSource:Q??"iab_dialog"}),[Q]);if(!ev||!Z?.config.enabled)return null;let eQ=Z.isLoadingGVL||!Z.gvl,eU=L(Y?.["iab-dialog"]?.root,{baseClassName:`${a.root} ${eS?a.dialogVisible:a.dialogHidden}`,noStyle:eI.noStyle}),eX=L(Y?.["iab-dialog"]?.card,{baseClassName:`${a.card} ${eS?a.contentVisible:a.contentHidden}`,noStyle:eI.noStyle}),eY=L(Y?.["iab-dialog"]?.header,{baseClassName:a.header,noStyle:eI.noStyle}),eZ=L(Y?.["iab-dialog"]?.headerContent,{baseClassName:a.headerContent,noStyle:eI.noStyle}),e1=L(Y?.["iab-dialog"]?.title,{baseClassName:a.title,noStyle:eI.noStyle}),e0=L(Y?.["iab-dialog"]?.description,{baseClassName:a.description,noStyle:eI.noStyle}),e2=L(Y?.["iab-dialog"]?.closeButton,{baseClassName:a.closeButton,noStyle:eI.noStyle}),e7=L(Y?.["iab-dialog"]?.body,{baseClassName:a.body,noStyle:eI.noStyle}),e4=L(Y?.["iab-dialog"]?.tabs,{baseClassName:a.tabsContainer,noStyle:eI.noStyle}),e5=L(Y?.["iab-dialog"]?.tabsList,{baseClassName:a.tabsList,noStyle:eI.noStyle}),e8=L(Y?.["iab-dialog"]?.tabTrigger,{baseClassName:a.tabButton,noStyle:eI.noStyle}),e6=L(Y?.["iab-dialog"]?.tabIndicator,{baseClassName:a.tabIndicator,noStyle:eI.noStyle}),e3=L(Y?.["iab-dialog"]?.content,{baseClassName:a.content,noStyle:eI.noStyle}),e9=L(Y?.["iab-dialog"]?.loading,{baseClassName:a.loadingContainer,noStyle:eI.noStyle}),te=L(Y?.["iab-dialog"]?.tabPanel,{baseClassName:a.tabPanel,noStyle:eI.noStyle}),tt=L(Y?.["iab-dialog"]?.specialPurposes,{baseClassName:a.specialPurposesSection,noStyle:eI.noStyle}),to=L(Y?.["iab-dialog"]?.consentNotice,{baseClassName:a.consentNotice,noStyle:eI.noStyle}),tn=L(Y?.["iab-dialog"]?.actions,{baseClassName:r.actionRoot,noStyle:eI.noStyle}),ti=L(Y?.["iab-dialog"]?.footer,{baseClassName:a.footer,noStyle:eI.noStyle,...tn}),tr=L(Y?.["iab-dialog"]?.actionGroup,{baseClassName:r.actionGroup,"data-direction":"row",noStyle:eI.noStyle}),ta=t(f.Provider,{value:eK,children:o(v.Provider,{value:eI,children:[t(T,{sheets:j,noStyle:eI.noStyle}),t(F,{isOpen:eN}),t("div",{...eU,"data-testid":"iab-consent-dialog-root",dir:ed,children:o("div",{"aria-describedby":"iab-consent-dialog-description",...eX,ref:ec,"aria-label":U.preferenceCenter.title,"aria-modal":eI.trapFocus?"true":void 0,role:"dialog",...z,"data-testid":"iab-consent-dialog-card",children:[o("div",{...eY,children:[o("div",{...eZ,children:[t("h2",{...e1,children:U.preferenceCenter.title}),t("p",{...e0,id:"iab-consent-dialog-description",children:U.preferenceCenter.description})]}),t("button",{...e2,type:"button","data-testid":"iab-consent-dialog-close",onClick:eG,"aria-label":X.close,children:o("svg",{"aria-hidden":"true",style:{height:"1rem",width:"1rem"},viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[t("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),t("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]}),o(M.Root,{...e7,noStyle:!0,onValueChange:e=>eJ(e),value:eu,children:[t("div",{...e4,children:o(M.List,{...e5,noStyle:!0,children:[o(M.Trigger,{...e8,noStyle:!0,value:"purposes",children:[U.preferenceCenter.tabs.purposes,!eQ&&` (${eF})`]}),o(M.Trigger,{...e8,noStyle:!0,value:"vendors",children:[U.preferenceCenter.tabs.vendors,!eQ&&` (${eV})`]}),t("div",{...e6,"aria-hidden":"true","data-active-tab":eu})]})}),t("div",{...e3,ref:em,children:eQ?o("div",{...e9,children:[t("div",{className:a.loadingSpinner}),t("p",{className:a.loadingText,children:U.common.loading})]}):o(e,{children:[o(M.Content,{...te,forceMount:!0,noStyle:!0,value:"purposes",children:[ex.map(e=>"stack"===e.kind?t(w,{stack:e,consents:Z.purposeConsents,onToggle:e$,vendorConsents:Z.vendorConsents,onVendorToggle:eq,onVendorClick:eO,vendorLegitimateInterests:Z.vendorLegitimateInterests,onVendorLegitimateInterestToggle:ez,purposeLegitimateInterests:Z.purposeLegitimateInterests,onPurposeLegitimateInterestToggle:eE},e.testId):t(V,{purpose:e,testId:e.testId,isEnabled:"special-feature"===e.toggle?Z.specialFeatureOptIns[e.id]??!1:Z.purposeConsents[e.id]??!1,onToggle:t=>{"special-feature"===e.toggle?eM(e.id,t):e$(e.id,t)},vendorConsents:Z.vendorConsents,onVendorToggle:eq,onVendorClick:eO,vendorLegitimateInterests:Z.vendorLegitimateInterests,onVendorLegitimateInterestToggle:ez,purposeLegitimateInterests:"purpose"===e.kind?Z.purposeLegitimateInterests:void 0,onPurposeLegitimateInterestToggle:"purpose"===e.kind?eE:void 0},e.testId)),eL.length>0&&o("div",{...tt,children:[o("div",{className:a.specialPurposesHeader,children:[o("button",{type:"button","aria-expanded":ey,onClick:()=>ef(!ey),className:a.purposeTrigger,children:[t("svg",{"aria-hidden":"true",className:a.purposeArrow,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:ey?t("path",{d:"M19 9l-7 7-7-7"}):t("path",{d:"M9 5l7 7-7 7"})}),o("div",{className:a.purposeInfo,children:[o("h3",{className:a.specialPurposesTitle,children:[U.preferenceCenter.specialPurposes.title,o("svg",{"aria-hidden":"true",className:a.lockIcon,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[t("rect",{x:"3",y:"11",width:"18",height:"11",rx:"2",ry:"2"}),t("path",{d:"M7 11V7a5 5 0 0 1 10 0v4"})]})]}),o("p",{className:a.purposeMeta,children:[ej," ",1===ej?U.preferenceCenter.vendorList.partnerSingular:U.preferenceCenter.vendorList.partnerPlural]})]})]}),t("div",{style:{position:"relative"},children:o("svg",{className:a.infoIcon,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2","aria-label":U.preferenceCenter.specialPurposes.tooltip,children:[t("circle",{cx:"12",cy:"12",r:"10"}),t("line",{x1:"12",y1:"16",x2:"12",y2:"12"}),t("line",{x1:"12",y1:"8",x2:"12.01",y2:"8"})]})})]}),ey&&t("div",{style:{padding:"0.75rem"},children:eL.map(e=>t(V,{purpose:e,testId:e.testId,isEnabled:!0,onToggle:()=>{},vendorConsents:Z.vendorConsents,onVendorToggle:eq,onVendorClick:eO,isLocked:!0},e.testId))})]}),eT.length>0&&o("section",{"aria-label":U.preferenceCenter.features.title,className:eI.noStyle?void 0:a.featuresSection,"data-testid":"iab-consent-dialog-features",children:[o("div",{className:eI.noStyle?void 0:a.featuresHeader,children:[t("h3",{className:eI.noStyle?void 0:a.featuresTitle,children:U.preferenceCenter.features.title}),t("p",{className:eI.noStyle?void 0:a.featuresDescription,children:eA??U.preferenceCenter.features.description})]}),t("div",{className:eI.noStyle?void 0:a.featuresList,children:eT.map(e=>t(A,{feature:e,testId:e.testId},e.testId))})]}),t("div",{...to,children:t("p",{className:a.consentNoticeText,children:U.preferenceCenter.footer.consentStorage})})]}),t(M.Content,{...te,forceMount:!0,noStyle:!0,value:"vendors",children:t(P,{vendorData:eR,purposes:ew,vendorConsents:Z.vendorConsents,onVendorToggle:eq,selectedVendorId:eh,onClearSelection:()=>eb(null),customVendors:Z.nonIABVendors,vendorLegitimateInterests:Z.vendorLegitimateInterests,onVendorLegitimateInterestToggle:ez})})]})})]}),o("div",{...ti,children:[o("div",{...tr,children:[t($.Root,{variant:"neutral",mode:"stroke",size:"small",onClick:eD,disabled:!ei.isReady,"data-action":"reject",children:U.common.rejectAll}),t($.Root,{variant:"neutral",mode:"stroke",size:"small",onClick:eH,disabled:!ei.isReady,"data-action":"accept",children:U.common.acceptAll})]}),t("div",{...tr,children:t($.Root,{variant:"primary",mode:"filled",size:"small",onClick:eW,disabled:eQ,"data-action":"customize",children:U.common.saveSettings})})]}),t(y,{hideBranding:O??!1,variant:"dialog-tag",slotContext:"iab-dialog","data-testid":"iab-consent-dialog-branding"})]})})]})}),ts=!0===J?{}:!1===J?null:J,tl=ts?t(b,{...ts}):null;return eN||eS?o(e,{children:[tl,u(ta,document.body)]}):tl};export{E as IABConsentDialog};
|
|
2
|
+
import{Fragment as e,jsx as t,jsxs as o}from"react/jsx-runtime";import{applyPublisherRestrictionsToGVL as n}from"@c15t/iab/headless";import{isDialogDismissKey as i}from"@c15t/ui/primitives/dialog";import r from"@c15t/ui/styles/components/consent-actions";import a from"@c15t/ui/styles/components/iab-consent-dialog";import{useCallback as s,useEffect as l,useLayoutEffect as d,useMemo as c,useRef as m,useState as p}from"react";import{createPortal as u}from"react-dom";import{useHeadlessIABConsentUI as g}from"../../component-hooks/use-headless-iab-consent-ui.js";import{useTranslations as h}from"../../component-hooks/use-translations.js";import{ConsentDialogTrigger as b}from"../panel-trigger/index.js";import{Branding as y}from"../panel/atoms/card.js";import{ConsentTrackingContext as f}from"../../context/consent-tracking-context.js";import{LocalThemeContext as v}from"../../context/theme-context.js";import{useComponentConfig as C}from"../../hooks/use-component-config.js";import{useFocusTrap as S}from"../../hooks/use-focus-trap.js";import{useIABConsentManager as k}from"../../hooks/use-iab-manager.js";import{useScrollLock as N}from"../../hooks/use-scroll-lock.js";import{useTextDirection as I}from"../../hooks/use-text-direction.js";import{useUIConfig as x}from"../../ui-config-context.js";import{mergeSlotProps as L}from"../../utils/merge-slot-props.js";import{IAB_DIALOG_SHEETS as j}from"../shared/iab-dialog-sheets.js";import{SurfaceStyles as T,useSurfaceSheetsReady as A}from"../shared/surface-styles.js";import{FeatureItem as F}from"./atoms/feature-item.js";import{IABConsentDialogOverlay as V}from"./atoms/overlay.js";import{PurposeItem as w}from"./atoms/purpose-item.js";import{StackItem as P}from"./atoms/stack-item.js";import{VendorList as B}from"./atoms/vendor-list.js";import{useIABDisplayModel as R}from"./hooks/use-display-model.js";import{useIABTranslations as $}from"./use-iab-translations.js";import*as M from"../shared/ui/button/index.js";import*as q from"../shared/ui/tabs/index.js";let z=["iab"],E={tabIndex:-1},H=({open:H,noStyle:D,disableAnimation:W,scrollLock:G,trapFocus:O,hideBranding:_,initialTab:J,showTrigger:K=!1,models:Q=z,uiSource:U})=>{let X=$(),{common:Y}=h(),{components:Z}=x(),{iab:ee,activeUI:et,policyDialog:eo,translationConfig:en,model:ei}=k({preferences:{scrollLock:G,trapFocus:O}}),{banner:er,closeUI:ea,openDialog:es,performDialogAction:el}=g(),ed=eo.blocking,ec=I(en.defaultLanguage),em=m(null),ep=m(null),eu=m(null),[eg,eh]=p(J??ee?.preferenceCenterTab??"purposes"),[eb,ey]=p(null),[ef,ev]=p(!1),[eC,eS]=p(!1),[ek,eN]=p(!1),eI=A(j,D)&&null!==ei&&Q.includes(ei)&&(H??"dialog"===et),ex=C({disableAnimation:W,noStyle:D,scrollLock:ed,trapFocus:eo.blocking}),{consentRows:eL,essentialRows:ej,essentialPartnerCount:eT,featureRows:eA,featuresStandardText:eF,purposeTabCount:eV,vendorTabCount:ew,data:{purposes:eP}}=R(),eB=ee?.gvl??null,eR=ee?.publisherRestrictions,e$=c(()=>eB?n(eB,eR):null,[eB,eR]),eM=s((e,t)=>{ee?.setPurposeConsent(e,t)},[ee]),eq=s((e,t)=>{ee?.setSpecialFeatureOptIn(e,t)},[ee]),ez=s((e,t)=>{ee?.setVendorConsent(e,t)},[ee]),eE=s((e,t)=>{ee?.setVendorLegitimateInterest(e,t)},[ee]),eH=s((e,t)=>{ee?.setPurposeLegitimateInterest(e,t)},[ee]),eD=async()=>{try{await el("accept")}catch{}},eW=async()=>{try{await el("reject")}catch{}},eG=async()=>{try{await el("customize")}catch{}},eO=s(()=>{ea()},[ea]),e_=e=>{ey(e),eh("vendors"),es({tab:"vendors"})};S(!!(eC&&eI&&ex.trapFocus),em,{initialFocus:"first-tabbable"}),N(!!(eI&&ex.scrollLock)),l(()=>{if(!eI)return;let e=e=>{i(e.key)&&(e.preventDefault(),eO())};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[eO,eI]),l(()=>{let e=requestAnimationFrame(()=>eS(!0));return()=>cancelAnimationFrame(e)},[]),l(()=>{if(eI){let e=requestAnimationFrame(()=>eN(!0));return()=>cancelAnimationFrame(e)}if(ex.disableAnimation){let e=requestAnimationFrame(()=>eN(!1));return()=>cancelAnimationFrame(e)}let e=setTimeout(()=>{eN(!1)},150);return()=>clearTimeout(e)},[eI,ex.disableAnimation]);let eJ=m(!!J);l(()=>{let e=ee?.preferenceCenterTab;if(!(eI&&e))return;if(eJ.current){eJ.current=!1;return}let t=requestAnimationFrame(()=>{eh(e)});return()=>cancelAnimationFrame(t)},[eI,ee?.preferenceCenterTab]),d(()=>{let e,t;if("purposes"!==eg&&"vendors"!==eg)return;let o=ep.current;if(!o||null===eu.current)return;let n=eu.current;if(eu.current=null,!window.matchMedia("(prefers-reduced-motion: reduce)").matches)return o.style.height=`${n}px`,o.style.overflow="hidden",o.style.transition="none",e=requestAnimationFrame(()=>{t=requestAnimationFrame(()=>{if(!o)return;o.style.height="auto";let e=o.getBoundingClientRect().height;if(o.style.height=`${n}px`,1>Math.abs(n-e)){o.style.height="",o.style.overflow="",o.style.transition="";return}o.getBoundingClientRect(),o.style.transition="height 180ms cubic-bezier(0.33, 1, 0.68, 1)",o.style.height=`${e}px`,o.addEventListener("transitionend",e=>{"height"===e.propertyName&&(o.style.height="",o.style.overflow="",o.style.transition="")},{once:!0})})}),()=>{cancelAnimationFrame(e),cancelAnimationFrame(t)}},[eg]);let eK=s(e=>{ep.current&&(eu.current=ep.current.offsetHeight),eh(e),es({tab:e})},[es]),eQ=c(()=>({uiSource:U??"iab_dialog"}),[U]);if(!eC||!ee?.config.enabled)return null;let eU=ee.isLoadingGVL||!ee.gvl,eX=L(Z?.["iab-dialog"]?.root,{baseClassName:`${a.root} ${ek?a.dialogVisible:a.dialogHidden}`,noStyle:ex.noStyle}),eY=L(Z?.["iab-dialog"]?.card,{baseClassName:`${a.card} ${ek?a.contentVisible:a.contentHidden}`,noStyle:ex.noStyle}),eZ=L(Z?.["iab-dialog"]?.header,{baseClassName:a.header,noStyle:ex.noStyle}),e1=L(Z?.["iab-dialog"]?.headerContent,{baseClassName:a.headerContent,noStyle:ex.noStyle}),e0=L(Z?.["iab-dialog"]?.title,{baseClassName:a.title,noStyle:ex.noStyle}),e2=L(Z?.["iab-dialog"]?.description,{baseClassName:a.description,noStyle:ex.noStyle}),e7=L(Z?.["iab-dialog"]?.closeButton,{baseClassName:a.closeButton,noStyle:ex.noStyle}),e4=L(Z?.["iab-dialog"]?.body,{baseClassName:a.body,noStyle:ex.noStyle}),e5=L(Z?.["iab-dialog"]?.tabs,{baseClassName:a.tabsContainer,noStyle:ex.noStyle}),e8=L(Z?.["iab-dialog"]?.tabsList,{baseClassName:a.tabsList,noStyle:ex.noStyle}),e6=L(Z?.["iab-dialog"]?.tabTrigger,{baseClassName:a.tabButton,noStyle:ex.noStyle}),e3=L(Z?.["iab-dialog"]?.tabIndicator,{baseClassName:a.tabIndicator,noStyle:ex.noStyle}),e9=L(Z?.["iab-dialog"]?.content,{baseClassName:a.content,noStyle:ex.noStyle}),te=L(Z?.["iab-dialog"]?.loading,{baseClassName:a.loadingContainer,noStyle:ex.noStyle}),tt=L(Z?.["iab-dialog"]?.tabPanel,{baseClassName:a.tabPanel,noStyle:ex.noStyle}),to=L(Z?.["iab-dialog"]?.specialPurposes,{baseClassName:a.specialPurposesSection,noStyle:ex.noStyle}),tn=L(Z?.["iab-dialog"]?.consentNotice,{baseClassName:a.consentNotice,noStyle:ex.noStyle}),ti=L(Z?.["iab-dialog"]?.actions,{baseClassName:r.actionRoot,noStyle:ex.noStyle}),tr=L(Z?.["iab-dialog"]?.footer,{baseClassName:a.footer,noStyle:ex.noStyle,...ti}),ta=L(Z?.["iab-dialog"]?.actionGroup,{baseClassName:r.actionGroup,"data-direction":"row",noStyle:ex.noStyle}),ts=t(f.Provider,{value:eQ,children:o(v.Provider,{value:ex,children:[t(T,{sheets:j,noStyle:ex.noStyle}),t(V,{isOpen:eI}),t("div",{...eX,"data-testid":"iab-consent-dialog-root",dir:ec,children:o("div",{"aria-describedby":"iab-consent-dialog-description",...eY,ref:em,"aria-label":X.preferenceCenter.title,"aria-modal":ex.trapFocus?"true":void 0,role:"dialog",...E,"data-testid":"iab-consent-dialog-card",children:[o("div",{...eZ,children:[o("div",{...e1,children:[t("h2",{...e0,children:X.preferenceCenter.title}),t("p",{...e2,id:"iab-consent-dialog-description",children:X.preferenceCenter.description})]}),t("button",{...e7,type:"button","data-testid":"iab-consent-dialog-close",onClick:eO,"aria-label":Y.close,children:o("svg",{"aria-hidden":"true",style:{height:"1rem",width:"1rem"},viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[t("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),t("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]}),o(q.Root,{...e4,noStyle:!0,onValueChange:e=>eK(e),value:eg,children:[t("div",{...e5,children:o(q.List,{...e8,noStyle:!0,children:[o(q.Trigger,{...e6,noStyle:!0,value:"purposes",children:[X.preferenceCenter.tabs.purposes,!eU&&` (${eV})`]}),o(q.Trigger,{...e6,noStyle:!0,value:"vendors",children:[X.preferenceCenter.tabs.vendors,!eU&&` (${ew})`]}),t("div",{...e3,"aria-hidden":"true","data-active-tab":eg})]})}),t("div",{...e9,ref:ep,children:eU?o("div",{...te,children:[t("div",{className:a.loadingSpinner}),t("p",{className:a.loadingText,children:X.common.loading})]}):o(e,{children:[o(q.Content,{...tt,forceMount:!0,noStyle:!0,value:"purposes",children:[eL.map(e=>"stack"===e.kind?t(P,{stack:e,consents:ee.purposeConsents,onToggle:eM,vendorConsents:ee.vendorConsents,onVendorToggle:ez,onVendorClick:e_,vendorLegitimateInterests:ee.vendorLegitimateInterests,onVendorLegitimateInterestToggle:eE,purposeLegitimateInterests:ee.purposeLegitimateInterests,onPurposeLegitimateInterestToggle:eH},e.testId):t(w,{purpose:e,testId:e.testId,isEnabled:"special-feature"===e.toggle?ee.specialFeatureOptIns[e.id]??!1:ee.purposeConsents[e.id]??!1,onToggle:t=>{"special-feature"===e.toggle?eq(e.id,t):eM(e.id,t)},vendorConsents:ee.vendorConsents,onVendorToggle:ez,onVendorClick:e_,vendorLegitimateInterests:ee.vendorLegitimateInterests,onVendorLegitimateInterestToggle:eE,purposeLegitimateInterests:"purpose"===e.kind?ee.purposeLegitimateInterests:void 0,onPurposeLegitimateInterestToggle:"purpose"===e.kind?eH:void 0},e.testId)),ej.length>0&&o("div",{...to,children:[o("div",{className:a.specialPurposesHeader,children:[o("button",{type:"button","aria-expanded":ef,onClick:()=>ev(!ef),className:a.purposeTrigger,children:[t("svg",{"aria-hidden":"true",className:a.purposeArrow,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:ef?t("path",{d:"M19 9l-7 7-7-7"}):t("path",{d:"M9 5l7 7-7 7"})}),o("div",{className:a.purposeInfo,children:[o("h3",{className:a.specialPurposesTitle,children:[X.preferenceCenter.specialPurposes.title,o("svg",{"aria-hidden":"true",className:a.lockIcon,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[t("rect",{x:"3",y:"11",width:"18",height:"11",rx:"2",ry:"2"}),t("path",{d:"M7 11V7a5 5 0 0 1 10 0v4"})]})]}),o("p",{className:a.purposeMeta,children:[eT," ",1===eT?X.preferenceCenter.vendorList.partnerSingular:X.preferenceCenter.vendorList.partnerPlural]})]})]}),t("div",{style:{position:"relative"},children:o("svg",{className:a.infoIcon,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2","aria-label":X.preferenceCenter.specialPurposes.tooltip,children:[t("circle",{cx:"12",cy:"12",r:"10"}),t("line",{x1:"12",y1:"16",x2:"12",y2:"12"}),t("line",{x1:"12",y1:"8",x2:"12.01",y2:"8"})]})})]}),ef&&t("div",{style:{padding:"0.75rem"},children:ej.map(e=>t(w,{purpose:e,testId:e.testId,isEnabled:!0,onToggle:()=>{},vendorConsents:ee.vendorConsents,onVendorToggle:ez,onVendorClick:e_,isLocked:!0},e.testId))})]}),eA.length>0&&o("section",{"aria-label":X.preferenceCenter.features.title,className:ex.noStyle?void 0:a.featuresSection,"data-testid":"iab-consent-dialog-features",children:[o("div",{className:ex.noStyle?void 0:a.featuresHeader,children:[t("h3",{className:ex.noStyle?void 0:a.featuresTitle,children:X.preferenceCenter.features.title}),t("p",{className:ex.noStyle?void 0:a.featuresDescription,children:eF??X.preferenceCenter.features.description})]}),t("div",{className:ex.noStyle?void 0:a.featuresList,children:eA.map(e=>t(F,{feature:e,testId:e.testId},e.testId))})]}),t("div",{...tn,children:t("p",{className:a.consentNoticeText,children:X.preferenceCenter.footer.consentStorage})})]}),t(q.Content,{...tt,forceMount:!0,noStyle:!0,value:"vendors",children:t(B,{vendorData:e$,purposes:eP,vendorConsents:ee.vendorConsents,onVendorToggle:ez,selectedVendorId:eb,onClearSelection:()=>ey(null),customVendors:ee.nonIABVendors,vendorLegitimateInterests:ee.vendorLegitimateInterests,onVendorLegitimateInterestToggle:eE})})]})})]}),o("div",{...tr,children:[o("div",{...ta,children:[t(M.Root,{variant:"neutral",mode:"stroke",size:"small",onClick:eW,disabled:!er.isReady,"data-action":"reject",children:X.common.rejectAll}),t(M.Root,{variant:"neutral",mode:"stroke",size:"small",onClick:eD,disabled:!er.isReady,"data-action":"accept",children:X.common.acceptAll})]}),t("div",{...ta,children:t(M.Root,{variant:"primary",mode:"filled",size:"small",onClick:eG,disabled:eU,"data-action":"customize",children:X.common.saveSettings})})]}),t(y,{hideBranding:_??!1,variant:"dialog-tag",slotContext:"iab-dialog","data-testid":"iab-consent-dialog-branding"})]})})]})}),tl=!0===K?{}:!1===K?null:K,td=tl?t(b,{...tl}):null;return eI||ek?o(e,{children:[td,u(ts,document.body)]}):td};export{H as IABConsentDialog};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{Fragment as e,jsx as t,jsxs as o}from"react/jsx-runtime";import r from"@c15t/ui/styles/components/iab-consent-banner";import{forwardRef as n,useMemo as s}from"react";import{ConsentTrackingContext as a}from"../../../context/consent-tracking-context.js";import{LocalThemeContext as i}from"../../../context/theme-context.js";import{useActiveUI as m,useModel as l,useTranslations as c}from"../../../hooks.js";import{useIABConsentManager as d}from"../../../hooks/use-iab-manager.js";import{useLateEntry as p}from"../../../hooks/use-late-entry.js";import{useTextDirection as b}from"../../../hooks/use-text-direction.js";import{useUIConfig as f}from"../../../ui-config-context.js";import{mergeSlotProps as u}from"../../../utils/merge-slot-props.js";import{IAB_FIRST_PAINT_SHEETS as h}from"../../shared/iab-first-paint-sheets.js";import{SurfaceStyles as j}from"../../shared/surface-styles.js";import{IABConsentBannerOverlay as
|
|
2
|
+
import{Fragment as e,jsx as t,jsxs as o}from"react/jsx-runtime";import r from"@c15t/ui/styles/components/iab-consent-banner";import{forwardRef as n,useMemo as s}from"react";import{ConsentTrackingContext as a}from"../../../context/consent-tracking-context.js";import{LocalThemeContext as i}from"../../../context/theme-context.js";import{useActiveUI as m,useModel as l,useTranslations as c}from"../../../hooks.js";import{useIABConsentManager as d}from"../../../hooks/use-iab-manager.js";import{useLateEntry as p}from"../../../hooks/use-late-entry.js";import{useTextDirection as b}from"../../../hooks/use-text-direction.js";import{useUIConfig as f}from"../../../ui-config-context.js";import{mergeSlotProps as u}from"../../../utils/merge-slot-props.js";import{IAB_FIRST_PAINT_SHEETS as h}from"../../shared/iab-first-paint-sheets.js";import{SurfaceStyles as j,useSurfaceSheetsReady as g}from"../../shared/surface-styles.js";import{IABConsentBannerOverlay as x}from"./overlay.js";let y=["iab"],N=n(({children:n,className:s,style:a,className:i,disableAnimation:d,noStyle:N,models:k=y,...v},B)=>{let C=m(),{components:$}=f(),A=l(),I=c(),S=b(I?.language??"en"),P=g(h,N)&&null!==A&&"banner"===C&&k.includes(A),R=p(P)&&!d,E=u($?.["iab-banner"]?.root,{baseClassName:[r.root],className:s||i,noStyle:N,style:a,...v}),F=N?E.className||"":`${E.className||""} ${r.bannerVisible}${d?"":` ${r.bannerEntering}`}`;return P?o(e,{children:[t(j,{sheets:h,noStyle:N}),t(x,{}),o("div",{ref:B,...E,className:F,"data-position":"ltr"===S?"bottom-left":"bottom-right","data-entry":R?"late":void 0,"data-testid":"iab-consent-banner-root","data-c15t-streamed":"",dir:S,tabIndex:-1,children:[n,t("span",{"data-c15t-stream-end":"",hidden:!0})]})]}):null}),k=({children:e,className:o,noStyle:r,disableAnimation:n,scrollLock:m,trapFocus:l,models:c,uiSource:p,...b})=>{let{policyBanner:f}=d({prompt:{scrollLock:m,trapFocus:l}}),u=f.blocking,h=s(()=>({disableAnimation:n,noStyle:r,scrollLock:u,trapFocus:u}),[n,r,u]),j=s(()=>({uiSource:p??"iab_banner"}),[p]);return t(a.Provider,{value:j,children:t(i.Provider,{value:h,children:t(N,{disableAnimation:n,className:o,noStyle:r,models:c,...b,children:e})})})};N.displayName="IABConsentBannerRootChildren";export{k as IABConsentBannerRoot};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{jsx as e,jsxs as
|
|
2
|
+
import{jsx as e,jsxs as n}from"react/jsx-runtime";import t from"@c15t/ui/styles/components/consent-actions";import a from"@c15t/ui/styles/components/iab-consent-banner";import{warmDialogChunk as o}from"../../chunk-warming.js";import{useHeadlessIABConsentUI as r}from"../../component-hooks/use-headless-iab-consent-ui.js";import{Box as i}from"../shared/primitives/box.js";import{BrandingLink as s}from"../shared/ui/branding.js";import{useComponentConfig as c}from"../../hooks/use-component-config.js";import{useIABConsentManager as l}from"../../hooks/use-iab-manager.js";import{useUIConfig as m}from"../../ui-config-context.js";import{mergeSlotProps as b}from"../../utils/merge-slot-props.js";import{useIABTranslations as d}from"../iab-panel/use-iab-translations.js";import{IABConsentBannerCard as p}from"./atoms/card.js";import{IABConsentBannerRoot as u}from"./atoms/root.js";import*as h from"../shared/ui/button/index.js";let y=({noStyle:y,disableAnimation:S,scrollLock:f,trapFocus:C,primaryButton:g="customize",models:k,uiSource:j})=>{let N=d(),{iab:v,banner:z,openVendorsDialog:L,performBannerAction:x}=r(),{policyBanner:F}=l({prompt:{scrollLock:f,trapFocus:C}}),{components:w}=m(),A=c({disableAnimation:S,noStyle:y,scrollLock:F.blocking,trapFocus:F.blocking}),I=async()=>{try{await x("accept")}catch{}},R=async()=>{try{await x("reject")}catch{}};if(!v?.config.enabled||!z.isReady)return null;let B=N.banner.description.replace("{partnerCount}",String(z.vendorCount)),E=N.banner.partnersLink.replace("{count}",String(z.vendorCount)),K=N.banner.scopeServiceSpecific,M=b(w?.["iab-banner"]?.title,{baseClassName:a.title,noStyle:A.noStyle}),P=b(w?.["iab-banner"]?.description,{baseClassName:a.description,noStyle:A.noStyle}),G=b(w?.["iab-banner"]?.partnersLink,{baseClassName:a.partnersLink,noStyle:A.noStyle}),$=b(w?.["iab-banner"]?.purposeList,{baseClassName:a.purposeList,noStyle:A.noStyle}),q=b(w?.["iab-banner"]?.purposeMore,{baseClassName:a.purposeMore,noStyle:A.noStyle}),D=b(w?.["iab-banner"]?.legitimateInterestNotice,{baseClassName:a.legitimateInterestNotice,noStyle:A.noStyle}),H=b(w?.["iab-banner"]?.actions,{baseClassName:t.actionRoot,"data-direction":"row","data-split":!0,noStyle:A.noStyle}),J=b(w?.["iab-banner"]?.actionGroup,{baseClassName:t.actionGroup,"data-direction":"row",noStyle:A.noStyle});return e(u,{...A,models:k,uiSource:j,children:n(i,{baseClassName:a.cardShell,slotKey:"iab-banner.cardShell",children:[e(s,{hideBranding:!1,variant:"banner-tag",slotContext:"iab-banner","data-testid":"iab-consent-banner-branding"}),n(p,{"aria-label":N.banner.title,children:[n(i,{baseClassName:a.header,slotKey:"iab-banner.header","data-testid":"iab-consent-banner-header",children:[e("h2",{...M,children:N.banner.title}),n("p",{...P,children:[B.split(E)[0],e("button",{...G,type:"button","data-testid":"iab-consent-banner-partners-link",onClick:()=>{L()},onFocus:e=>{G.onFocus?.(e),o()},onPointerEnter:e=>{G.onPointerEnter?.(e),o()},children:E}),B.split(E)[1]]}),n("ul",{...$,children:[z.displayItems.map((n,t)=>e("li",{children:n},t)),z.remainingCount>0&&e("li",{...q,children:N.banner.andMore.replace("{count}",String(z.remainingCount))})]}),e("p",{...D,children:`${N.banner.legitimateInterestNotice} ${K}`})]}),n(i,{baseClassName:a.footer,slotKey:"iab-banner.footer","data-testid":"iab-consent-banner-footer",...H,children:[n("div",{...J,children:[e(h.Root,{variant:"reject"===g?"primary":"neutral",mode:"stroke",size:"small",onClick:R,"data-action":"reject","data-testid":"iab-consent-banner-reject-button",children:N.common.rejectAll}),e(h.Root,{variant:"accept"===g?"primary":"neutral",mode:"accept"===g?"filled":"stroke",size:"small",onClick:I,"data-action":"accept","data-testid":"iab-consent-banner-accept-button",children:N.common.acceptAll})]}),e("div",{...J,children:e(h.Root,{variant:"customize"===g?"primary":"neutral",mode:"customize"===g?"filled":"stroke",size:"small",onClick:()=>{x("customize")},onFocus:o,onPointerEnter:o,"data-action":"customize","data-testid":"iab-consent-banner-customize-button",children:N.common.customize})})]})]})]})})};export{y as IABConsentBanner};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{Fragment as o,jsx as e,jsxs as t}from"react/jsx-runtime";import{isDialogDismissKey as r}from"@c15t/ui/primitives/dialog";import i from"@c15t/ui/styles/components/consent-dialog";import{useEffect as n,useMemo as s,useRef as l,useState as a}from"react";import{createPortal as m}from"react-dom";import{useHeadlessConsentUI as c}from"../../../component-hooks/use-headless-consent-ui.js";import{ConsentTrackingContext as d}from"../../../context/consent-tracking-context.js";import{LocalThemeContext as u}from"../../../context/theme-context.js";import{useActiveUI as p,useHasConsentUI as f,useModel as h}from"../../../hooks.js";import{useFocusTrap as g}from"../../../hooks/use-focus-trap.js";import{useIABPolicyGuard as b}from"../../../hooks/use-iab-policy-guard.js";import{useIsHydrated as k}from"../../../hooks/use-is-hydrated.js";import{useScrollLock as j}from"../../../hooks/use-scroll-lock.js";import{useTextDirection as y}from"../../../hooks/use-text-direction.js";import{useTheme as v}from"../../../hooks/use-theme.js";import{useTranslationLanguage as x}from"../../../kernel-selector.js";import{useUIConfig as F}from"../../../ui-config-context.js";import{cnExt as A}from"../../../utils/cn.js";import{mergeSlotProps as L}from"../../../utils/merge-slot-props.js";import{DIALOG_SHEETS as N}from"../../shared/dialog-sheets.js";import{SurfaceStyles as S}from"../../shared/surface-styles.js";import{Overlay as
|
|
2
|
+
import{Fragment as o,jsx as e,jsxs as t}from"react/jsx-runtime";import{isDialogDismissKey as r}from"@c15t/ui/primitives/dialog";import i from"@c15t/ui/styles/components/consent-dialog";import{useEffect as n,useMemo as s,useRef as l,useState as a}from"react";import{createPortal as m}from"react-dom";import{useHeadlessConsentUI as c}from"../../../component-hooks/use-headless-consent-ui.js";import{ConsentTrackingContext as d}from"../../../context/consent-tracking-context.js";import{LocalThemeContext as u}from"../../../context/theme-context.js";import{useActiveUI as p,useHasConsentUI as f,useModel as h}from"../../../hooks.js";import{useFocusTrap as g}from"../../../hooks/use-focus-trap.js";import{useIABPolicyGuard as b}from"../../../hooks/use-iab-policy-guard.js";import{useIsHydrated as k}from"../../../hooks/use-is-hydrated.js";import{useScrollLock as j}from"../../../hooks/use-scroll-lock.js";import{useTextDirection as y}from"../../../hooks/use-text-direction.js";import{useTheme as v}from"../../../hooks/use-theme.js";import{useTranslationLanguage as x}from"../../../kernel-selector.js";import{useUIConfig as F}from"../../../ui-config-context.js";import{cnExt as A}from"../../../utils/cn.js";import{mergeSlotProps as L}from"../../../utils/merge-slot-props.js";import{DIALOG_SHEETS as N}from"../../shared/dialog-sheets.js";import{SurfaceStyles as S,useSurfaceSheetsReady as C}from"../../shared/surface-styles.js";import{Overlay as q}from"./overlay.js";let w=["opt-in","opt-out","none"],D=({children:D,open:E,models:H=w,noStyle:I,disableAnimation:P,scrollLock:R,trapFocus:T,overlay:V,uiSource:z,className:B,style:G,...J})=>{var K;let M,O,Q;b();let U=v(),{components:W}=F(),X=p(),Y=h(),Z=x(),{closeUI:$,dialog:_}=c({preferences:{scrollLock:R,trapFocus:T}}),{disableAnimation:oo,noStyle:oe,scrollLock:ot,trapFocus:or}=(M=U.disableAnimation,O=U.noStyle,{disableAnimation:P??M??!1,noStyle:I??O??!1,scrollLock:Q=_.blocking,trapFocus:Q}),oi=y(Z),on=f(),os=(K=C(N,oe),!!on&&!!H.includes(Y??"opt-in")&&K&&(E??"dialog"===X)),[ol,oa]=a(!1),om=l(null),oc=l(null),od=k(),ou=U.theme?.motion?.duration?.normal;n(()=>{if(os){let o=requestAnimationFrame(()=>oa(!0));return()=>cancelAnimationFrame(o)}if(oo){let o=requestAnimationFrame(()=>oa(!1));return()=>cancelAnimationFrame(o)}let o=setTimeout(()=>oa(!1),Number.parseInt((ou||"200ms").replace("ms",""),10));return()=>clearTimeout(o)},[os,oo,ou]),g(os&&or,oc,{initialFocus:"first-tabbable"}),n(()=>{if(!os)return;let o=o=>{r(o.key)&&(o.preventDefault(),$())};return document.addEventListener("keydown",o),()=>document.removeEventListener("keydown",o)},[$,os]),j(os&&ot);let op=oo?i.root:A(i.root,ol?i.dialogVisible:i.dialogHidden),of=L(W?.dialog?.root,{baseClassName:op,className:B,noStyle:oe,style:G,...J}),oh=L(W?.dialog?.container,{baseClassName:A(i.container,!oo&&(ol?i.contentVisible:i.contentHidden)),noStyle:oe}),og=s(()=>({disableAnimation:oo,noStyle:oe,scrollLock:ot,theme:U.theme,trapFocus:or}),[oo,U.theme,oe,ot,or]),ob=s(()=>({uiSource:z??"dialog"}),[z]),ok=_.blocking?"true":void 0,oj=e(d.Provider,{value:ob,children:e(u.Provider,{value:og,children:os&&t(o,{children:[e(S,{sheets:N,noStyle:oe}),_.blocking&&!1!==V?V??e(q,{open:os}):null,e("div",{ref:om,"data-slot":"dialog-positioner","data-blocking":ok,...of,className:of.className,children:e("div",{ref:oc,...oh,"aria-describedby":"consent-dialog-description","aria-labelledby":"consent-dialog-title","aria-modal":or?"true":void 0,"data-blocking":ok,"data-testid":"consent-dialog-root",dir:oi,role:"dialog",tabIndex:-1,children:D})})]})})});return od?m(oj,document.body):null},E=D;export{D as ConsentDialogRoot,E as Root};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{jsx as r,jsxs as o}from"react/jsx-runtime";import{createContext as t,useContext as e,useMemo as s}from"react";import{createPortal as i}from"react-dom";import{useConsentDialogTrigger as n}from"../../../component-hooks/use-panel-trigger.js";import{useBranding as m}from"../../../hooks.js";import{useIsHydrated as g}from"../../../hooks/use-is-hydrated.js";import{FIRST_PAINT_SHEETS as a}from"../../shared/first-paint-sheets.js";import{SurfaceStyles as l}from"../../shared/surface-styles.js";import{useDraggable as
|
|
2
|
+
import{jsx as r,jsxs as o}from"react/jsx-runtime";import{createContext as t,useContext as e,useMemo as s}from"react";import{createPortal as i}from"react-dom";import{useConsentDialogTrigger as n}from"../../../component-hooks/use-panel-trigger.js";import{useBranding as m}from"../../../hooks.js";import{useIsHydrated as g}from"../../../hooks/use-is-hydrated.js";import{FIRST_PAINT_SHEETS as a}from"../../shared/first-paint-sheets.js";import{SurfaceStyles as l,useSurfaceSheetsReady as p}from"../../shared/surface-styles.js";import{useDraggable as u}from"../use-draggable.js";let f=t(null),d=function(){let r=e(f);if(!r)throw Error("ConsentDialogTrigger components must be used within a ConsentDialogTrigger.Root");return r},h=({children:t,defaultPosition:e="bottom-right",persistPosition:d=!0,showWhen:h="always",visible:c,onPositionChange:j,onClick:T})=>{let C=m()??"c15t",{isVisible:b,openDialog:x}=n({onClick:T,showWhen:h}),y=c??b,{corner:k,isDragging:w,isSnapping:D,wasDragged:P,handlers:R,dragStyle:v}=u({defaultPosition:e,onPositionChange:j,persistPosition:d}),E=g(),N=p(a),V=s(()=>({branding:C,corner:k,dragStyle:v,handlers:R,isDragging:w,isSnapping:D,isVisible:y,openDialog:x,wasDragged:P}),[C,k,v,R,w,D,y,x,P]);return E&&y&&N?i(o(f.Provider,{value:V,children:[r(l,{sheets:a}),t]}),document.body):null};h.displayName="ConsentDialogTrigger.Root";export{f as TriggerContext,h as TriggerRoot,d as useTriggerContext};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{jsx as
|
|
2
|
+
import{jsx as t}from"react/jsx-runtime";import{createElement as o,useEffect as r,useMemo as e,useState as i}from"react";import{useDevToolsLauncherAvailable as n}from"../../devtools-launcher.js";import{TriggerButton as s}from"./atoms/button.js";import{TriggerIcon as a}from"./atoms/icon.js";import{TriggerRoot as l,useTriggerContext as m}from"./atoms/root.js";import{TriggerText as g}from"./atoms/text.js";import{getTriggerToolbar as c,loadTriggerToolbar as p}from"./toolbar-loader.js";let f=[],u=({fallback:t,...e})=>{let[n,s]=i(void 0),a=n??c();return r(()=>{if(a)return;let t=!0;return(async()=>{try{let o=await p();t&&s(()=>o)}catch{}})(),()=>{t=!1}},[a]),a?o(a,e):t},d=({icon:o="branding",defaultPosition:r="bottom-right",persistPosition:i=!0,ariaLabel:m="Open privacy settings",showWhen:g="always",size:c="md",className:p,noStyle:d,onClick:T,onPositionChange:b})=>{let h=n(),j=e(()=>({className:p,icon:o,label:m}),[m,p,o]),y=t(s,{size:c,ariaLabel:m,className:p,noStyle:d,children:t(a,{icon:o,noStyle:d})});return t(l,{defaultPosition:r,persistPosition:i,showWhen:g,onClick:T,onPositionChange:b,children:h?t(u,{actions:f,fallback:y,noStyle:d,preferences:j,size:c}):y})};d.displayName="ConsentDialogTrigger";let T=Object.assign(d,{Button:s,Icon:a,Root:l,Text:g});export{T as ConsentDialogTrigger,s as TriggerButton,a as TriggerIcon,l as TriggerRoot,g as TriggerText,m as useTriggerContext};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
let r,o;let e=function(o){r=o},a=function(){return r},t=function(){return r?Promise.resolve(r):o??=(async()=>{try{let o=await import("./atoms/toolbar.js");return r??=o.TriggerToolbar}catch(r){throw o=void 0,r}})()};export{a as getTriggerToolbar,t as loadTriggerToolbar,e as registerTriggerToolbar};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{Fragment as e,jsx as r,jsxs as t}from"react/jsx-runtime";import o from"@c15t/ui/styles/components/consent-manager";import{useMemo as i}from"react";import{DIALOG_SHEETS as s}from"../../shared/dialog-sheets.js";import{Box as m}from"../../shared/primitives/box.js";import{SurfaceStyles as n}from"../../shared/surface-styles.js";import{ConsentTrackingContext as
|
|
2
|
+
import{Fragment as e,jsx as r,jsxs as t}from"react/jsx-runtime";import o from"@c15t/ui/styles/components/consent-manager";import{useMemo as i}from"react";import{DIALOG_SHEETS as s}from"../../shared/dialog-sheets.js";import{Box as m}from"../../shared/primitives/box.js";import{SurfaceStyles as n,useSurfaceSheetsReady as c}from"../../shared/surface-styles.js";import{ConsentTrackingContext as a,useConsentTracking as l}from"../../../context/consent-tracking-context.js";import{LocalThemeContext as d}from"../../../context/theme-context.js";import{ConsentDraftProvider as f}from"../../../draft.js";import{useHasConsentUI as h}from"../../../hooks.js";import{useTextDirection as p}from"../../../hooks/use-text-direction.js";import{useTranslationLanguage as u}from"../../../kernel-selector.js";let j=({children:j,noStyle:g=!1,disableAnimation:x=!1,useProvider:v=!0,uiSource:k})=>{let y=p(u()),P=l(),S=i(()=>({disableAnimation:x,noStyle:g}),[x,g]),b=k??P.uiSource??"widget",w=i(()=>({uiSource:b}),[b]),C=h(),R=c(s,g);if(!(C&&R))return null;let K=t(e,{children:[r(n,{sheets:s,noStyle:g}),r(m,{baseClassName:o.manager,"data-testid":"consent-widget-root",slotKey:"manager.root",dir:y,children:j})]});return v?r(a.Provider,{value:w,children:r(d.Provider,{value:S,children:r(f,{children:K})})}):r(a.Provider,{value:w,children:r(f,{children:K})})},g=j;export{j as ConsentWidgetRoot,g as Root};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{Fragment as o,jsx as t,jsxs as r}from"react/jsx-runtime";import e from"@c15t/ui/styles/components/consent-banner";import{forwardRef as i,useMemo as s}from"react";import{useHeadlessConsentUI as n}from"../../../component-hooks/use-headless-consent-ui.js";import{ConsentTrackingContext as a}from"../../../context/consent-tracking-context.js";import{LocalThemeContext as l}from"../../../context/theme-context.js";import{useActiveUI as m,useHasConsentUI as c,useModel as p,usePolicyRule as d,useTranslations as u}from"../../../hooks.js";import{useIABPolicyGuard as f}from"../../../hooks/use-iab-policy-guard.js";import{useLateEntry as h}from"../../../hooks/use-late-entry.js";import{useTextDirection as j}from"../../../hooks/use-text-direction.js";import{useUIConfig as b}from"../../../ui-config-context.js";import{defaultTranslationConfig as v}from"../../../utils/default-translation-config.js";import{mergeSlotProps as g}from"../../../utils/merge-slot-props.js";import{FIRST_PAINT_SHEETS as k}from"../../shared/first-paint-sheets.js";import{StreamedSurface as y}from"../../shared/streamed-surface.js";import{SurfaceStyles as x}from"../../shared/surface-styles.js";import{ConsentBannerSurfaceContext as
|
|
2
|
+
import{Fragment as o,jsx as t,jsxs as r}from"react/jsx-runtime";import e from"@c15t/ui/styles/components/consent-banner";import{forwardRef as i,useMemo as s}from"react";import{useHeadlessConsentUI as n}from"../../../component-hooks/use-headless-consent-ui.js";import{ConsentTrackingContext as a}from"../../../context/consent-tracking-context.js";import{LocalThemeContext as l}from"../../../context/theme-context.js";import{useActiveUI as m,useHasConsentUI as c,useModel as p,usePolicyRule as d,useTranslations as u}from"../../../hooks.js";import{useIABPolicyGuard as f}from"../../../hooks/use-iab-policy-guard.js";import{useLateEntry as h}from"../../../hooks/use-late-entry.js";import{useTextDirection as j}from"../../../hooks/use-text-direction.js";import{useUIConfig as b}from"../../../ui-config-context.js";import{defaultTranslationConfig as v}from"../../../utils/default-translation-config.js";import{mergeSlotProps as g}from"../../../utils/merge-slot-props.js";import{FIRST_PAINT_SHEETS as k}from"../../shared/first-paint-sheets.js";import{StreamedSurface as y}from"../../shared/streamed-surface.js";import{SurfaceStyles as x,useSurfaceSheetsReady as N}from"../../shared/surface-styles.js";import{ConsentBannerSurfaceContext as S,mirrorDefaultPosition as C,useConsentBannerSurface as $}from"../surface-context.js";import{EarlyTapScript as L}from"./early-tap-script.js";import{Overlay as P}from"./overlay.js";let R=["opt-in","opt-out"],B=i(({asChild:i,children:s,className:n,style:a,className:l,disableAnimation:y,noStyle:S,models:B=R,...F},A)=>{f();let E=m(),{components:V}=b(),q=c(),w=p()??"opt-in",z=d(),D=$(),G=u(),H=j(G?.language??v.defaultLanguage),I=C(D.position,D.positionSource,D.variant,H),J=N(k,S)&&q&&"banner"===E&&B.includes(w),K=h(J)&&!y,M=g(V?.banner?.root,{baseClassName:e.root,className:n||l,noStyle:S,style:a,...F}),O=S?M.className||"":`${M.className||""} ${y?"":`${e.bannerVisible} ${e.bannerEntering}`}`;return J?r(o,{children:[t(L,{}),t(x,{sheets:k,noStyle:S}),t(P,{}),t("div",{ref:A,...M,className:O,"data-variant":D.variant,"data-position":I,"data-blocking":D.blocking?"true":void 0,"data-prompt":z.prompt,"data-model":z.model,"data-entry":K?"late":void 0,"data-testid":"consent-banner-root",dir:H,children:s})]}):null}),F=({children:o,className:r,noStyle:e,disableAnimation:i,scrollLock:m,trapFocus:c,models:p,uiSource:d,variant:u,position:f,blocking:h,...j})=>{let{banner:b}=n({prompt:{blocking:h,position:f,scrollLock:m,trapFocus:c,variant:u}}),v=b.scrollLock,g=b.trapFocus,k=s(()=>({disableAnimation:i,noStyle:e,scrollLock:v,trapFocus:g}),[i,e,v,g]),y=s(()=>({blocking:b.blocking,position:b.position,positionSource:b.positionSource,variant:b.variant}),[b.blocking,b.position,b.positionSource,b.variant]),x=s(()=>({uiSource:d??"banner"}),[d]);return t(a.Provider,{value:x,children:t(l.Provider,{value:k,children:t(S.Provider,{value:y,children:t(B,{disableAnimation:i,className:r,noStyle:e,models:p,...j,children:o})})})})};B.displayName="ConsentBannerRootChildren";let A=o=>t(y,{children:t(F,{...o})}),E=A;export{A as ConsentBannerRoot,E as Root};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{jsx as e}from"react/jsx-runtime";import{useContext as t,version as
|
|
2
|
+
import{jsx as e}from"react/jsx-runtime";import{useContext as t,useEffect as r,useSyncExternalStore as n,version as a}from"react";import{GlobalThemeContext as o}from"../../context/theme-context.js";import{useUIConfig as l}from"../../ui-config-context.js";let u=new Map,c=new Set,s=new Map,i=new Set,f=new Set,d=0,y=()=>d,m=()=>0,S=function(){for(let e of(d+=1,f))e()},h=function(e){return f.add(e),()=>{f.delete(e)}},p=function(e){if(c.has(e)||u.has(e))return!0;if("u"<typeof document)return!1;if(document.querySelector(`style[data-href~="${e}"]`))return c.add(e),!0;let t=document.querySelector(`style[data-c15t-styles="${e}"]`);return!!t?.textContent&&(u.set(e,t.textContent),!0)},w=e=>!e.load||i.has(e.id)||p(e.id),x=async function(e,t){try{u.set(e,await t()),i.delete(e)}catch(t){throw s.delete(e),i.add(e),t}finally{S()}},_=async function(e){let t=[];for(let r of e){let{id:e,load:n}=r;if(!n||p(e))continue;let a=s.get(e);a||(a=x(e,n),s.set(e,a)),t.push(a)}try{await Promise.all(t)}catch{}},g=Number.parseInt(a,10)>=19,j=function(e){let{styles:r}=l(),n=t(o);return!1===r||!!e||!!n.noStyle},M=function(e,t){let a=j(t),o=n(h,()=>a||e.every(w),()=>!0);return r(()=>{a||_(e)},[a,e]),o},q=({sheets:t,noStyle:r})=>{let{nonce:a}=l();if(n(h,y,m),j(r))return null;let o=g&&!a;return t.map(t=>{let{css:r}=t;if(t.load){if(!p(t.id))return null;r=u.get(t.id)??""}return o?e("style",{href:t.id,precedence:"c15t",children:r},t.id):e("style",{"data-c15t-styles":t.id,nonce:a,dangerouslySetInnerHTML:{__html:r}},t.id)})};export{q as SurfaceStyles,_ as preloadSurfaceSheets,M as useSurfaceSheetsReady};
|
package/dist/devtools.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{jsx as e}from"react/jsx-runtime";import{createDevTools as t}from"@c15t/dev-tools";import{createElement as r,forwardRef as o,useCallback as n,useContext as s,useEffect as l,useLayoutEffect as i,useMemo as c,useRef as u}from"react";import{KernelContext as
|
|
2
|
+
import{jsx as e}from"react/jsx-runtime";import{createDevTools as t}from"@c15t/dev-tools";import{createElement as r,forwardRef as o,useCallback as n,useContext as s,useEffect as l,useLayoutEffect as i,useMemo as c,useRef as u}from"react";import{TriggerToolbar as a}from"./components/panel-trigger/atoms/toolbar.js";import{registerTriggerToolbar as d}from"./components/panel-trigger/toolbar-loader.js";import{KernelContext as m,ProviderServicesContext as f}from"./context.js";import{publishDevToolsLauncher as g}from"./devtools-launcher.js";import{useIsHydrated as v}from"./hooks/use-is-hydrated.js";let p=e=>{if(!e)throw Error("c15t: DevTools must be rendered inside <ConsentProvider> from @c15t/react.");return e},C=(e,t)=>{let r=v(),o=u(e);i(()=>{o.current=e},[e]);let n=r&&!t&&e?JSON.stringify([...new Set(e())].sort()):void 0;return c(()=>{if(void 0===n)return;let e=JSON.parse(n);return()=>o.current?.()??e},[n])},h=(e,t)=>{let r=u({clearRecords:e,getPresentation:t});i(()=>{r.current={clearRecords:e,getPresentation:t}},[e,t]);let o=void 0!==e,n=void 0!==t;return c(()=>({clearRecords:o?()=>r.current.clearRecords?.():void 0,getPresentation:n?()=>r.current.getPresentation?.():void 0}),[o,n])},y=({disabled:e=!1,clearRecords:r,getPresentation:o,defaultOpen:n,defaultTab:i,getConsentCategories:c,maxEvents:u,position:v,shadow:y})=>{let D=s(f),P=h(r??D?.clearRecords,o??D?.getPresentation),T=s(m),j=e?null:p(T),S=C(c??D?.getConsentCategories,e);return l(()=>{d(a)},[]),l(()=>{if(!j)return;let e=t({...P,defaultOpen:n,defaultTab:i,getConsentCategories:S,kernel:j,maxEvents:u,position:v,shadow:y}),r=g(j,e);return()=>{r(),e.destroy()}},[n,i,S,P,j,u,v,y]),null},D=y,P=y,T={height:"100%",minHeight:0,width:"100%"},j=o(function({disabled:r=!1,clearRecords:o,getPresentation:l,defaultTab:c,getConsentCategories:a,maxEvents:d,style:g,theme:v,...y},D){let P=s(f),j=h(o??P?.clearRecords,l??P?.getPresentation),S=s(m),b=r?null:p(S),R=C(a??P?.getConsentCategories,r),k=u(null),w=n(e=>{k.current=e;let t=((e,t)=>{if("function"==typeof e)return e(t);e&&(e.current=t)})(D,e);if("function"==typeof t)return()=>{k.current=null,t()}},[D]);return i(()=>{let e=k.current;if(!b||!e)return;let r=t({...j,container:e,defaultTab:c,embedded:!0,getConsentCategories:R,kernel:b,maxEvents:d});return()=>r.destroy()},[c,R,j,b,d]),e("div",{...y,ref:w,style:{...T,...v?{"--c15t-dev-tools-color-scheme":v}:void 0,...g}})}),S=(e={})=>{let{id:t="c15t",name:o="c15t",defaultOpen:n=!1,...s}=e;return{defaultOpen:n,id:t,name:o,render:(e,t)=>r(j,{...s,theme:("string"==typeof t?t:t?.theme)??s.theme})}},b=S;export{P as C15TDevTools,y as ConsentDevTools,D as DevTools,S as c15tDevtools,b as c15tDevtoolsPlugin,j as C15tTanStackDevtoolsPanel};
|
package/dist/iab/styles.tw3.css
CHANGED
|
@@ -15,11 +15,11 @@
|
|
|
15
15
|
@keyframes iabConsentBannerEnter{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}
|
|
16
16
|
@keyframes iabConsentBannerExit{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}
|
|
17
17
|
:root, :host{--c15t-iab-consent-banner-enter-animation:iabConsentBannerEnter var(--c15t-duration-fast) var(--c15t-easing);--c15t-iab-consent-banner-exit-animation:iabConsentBannerExit var(--c15t-duration-fast) var(--c15t-easing)}
|
|
18
|
-
:root, :host{--iab-consent-banner-font-family:var(--c15t-font-family);--iab-consent-banner-line-height:var(--c15t-line-height-normal);--iab-consent-banner-text-size-adjust:100%;--iab-consent-banner-tab-size:4;--iab-consent-banner-border-radius-sm:var(--c15t-radius-sm);--iab-consent-banner-border-radius:var(--c15t-radius-lg);--iab-consent-banner-max-width:560px;--iab-consent-banner-entry-duration:var(--c15t-duration-normal);--iab-consent-banner-entry-timing:var(--c15t-easing-out);--iab-consent-banner-animation-duration:var(--c15t-duration-fast);--iab-consent-banner-animation-timing:var(--c15t-easing-in);--iab-consent-banner-border-width:1px;--iab-consent-banner-border-width-hairline:1px;--iab-consent-banner-shadow:var(--c15t-shadow-lg);--iab-consent-banner-shadow-dark:var(--c15t-shadow-lg);--iab-consent-banner-background-color:var(--c15t-surface);--iab-consent-banner-background-color-dark:var(--c15t-surface);--iab-consent-banner-footer-background-color:var(--c15t-surface-hover);--iab-consent-banner-footer-background-color-dark:var(--c15t-surface-hover);--iab-consent-banner-text-color:var(--c15t-text);--iab-consent-banner-text-color-dark:var(--c15t-text);--iab-consent-banner-border-color:var(--c15t-border);--iab-consent-banner-border-color-dark:var(--c15t-border);--iab-consent-banner-title-color:var(--c15t-text);--iab-consent-banner-title-color-dark:var(--c15t-text);--iab-consent-banner-description-color:var(--c15t-text-muted);--iab-consent-banner-description-color-dark:var(--c15t-text-muted);--iab-consent-banner-overlay-background-color:var(--c15t-overlay);--iab-consent-banner-overlay-background-color-dark:var(--c15t-overlay);--iab-consent-banner-link-color:var(--c15t-primary);--iab-consent-banner-link-color-dark:var(--c15t-primary)}
|
|
18
|
+
:root, :host{--iab-consent-banner-font-family:var(--c15t-font-family);--iab-consent-banner-line-height:var(--c15t-line-height-normal);--iab-consent-banner-text-size-adjust:100%;--iab-consent-banner-tab-size:4;--iab-consent-banner-border-radius-sm:var(--c15t-radius-sm);--iab-consent-banner-border-radius:var(--c15t-radius-lg);--iab-consent-banner-max-width:560px;--iab-consent-banner-entry-duration:var(--c15t-duration-normal);--iab-consent-banner-entry-timing:var(--c15t-easing-out);--iab-consent-banner-animation-duration:var(--c15t-duration-fast);--iab-consent-banner-animation-timing:var(--c15t-easing-in);--iab-consent-banner-border-width:1px;--iab-consent-banner-border-width-hairline:1px;--iab-consent-banner-shadow:var(--c15t-shadow-lg);--iab-consent-banner-shadow-dark:var(--c15t-shadow-lg);--iab-consent-banner-background-color:var(--c15t-surface);--iab-consent-banner-background-color-dark:var(--c15t-surface);--iab-consent-banner-footer-background-color:var(--c15t-surface-hover);--iab-consent-banner-footer-background-color-dark:var(--c15t-surface-hover);--iab-consent-banner-text-color:var(--c15t-text);--iab-consent-banner-text-color-dark:var(--c15t-text);--iab-consent-banner-border-color:var(--c15t-border);--iab-consent-banner-border-color-dark:var(--c15t-border);--iab-consent-banner-title-color:var(--c15t-text);--iab-consent-banner-title-color-dark:var(--c15t-text);--iab-consent-banner-description-color:var(--c15t-text-muted);--iab-consent-banner-description-color-dark:var(--c15t-text-muted);--iab-consent-banner-overlay-background-color:var(--c15t-overlay);--iab-consent-banner-overlay-background-color-dark:var(--c15t-overlay);--iab-consent-banner-link-color:var(--c15t-primary);--iab-consent-banner-link-color-dark:var(--c15t-primary);--iab-consent-banner-z-index:999998;--iab-consent-banner-overlay-z-index:999997}
|
|
19
19
|
@media only screen and (resolution>=192dpi){:root, :host{--iab-consent-banner-border-width-hairline:.5px}}
|
|
20
20
|
|
|
21
21
|
/* components/iab-panel */
|
|
22
22
|
.c15t-ui-root-pWvoN{box-sizing:border-box;isolation:isolate;font-family:var(--iab-cd-font-family);line-height:var(--iab-cd-line-height);-webkit-text-size-adjust:100%;tab-size:4;padding:var(--iab-cd-padding);z-index:var(--iab-cd-z-index);background:0 0;border:0;justify-content:center;align-items:center;margin:0;display:flex;position:fixed;inset:0}.c15t-ui-dialogVisible-ZcQux{opacity:1;transition:opacity var(--iab-cd-animation-duration) var(--iab-cd-animation-timing)}.c15t-ui-dialogHidden-QOLab{opacity:0;transition:opacity var(--iab-cd-animation-duration) var(--iab-cd-animation-timing)}.c15t-ui-contentVisible-oIYEE{opacity:1;transition:opacity var(--iab-cd-animation-duration) var(--iab-cd-animation-timing), transform var(--iab-cd-animation-duration) var(--c15t-easing-spring);transform:scale(1)}.c15t-ui-contentHidden-dppgu{opacity:0;transition:opacity var(--iab-cd-animation-duration) var(--iab-cd-animation-timing), transform var(--iab-cd-animation-duration) var(--iab-cd-animation-timing);transform:scale(.95)}.c15t-ui-overlay-LyBwJ{background-color:var(--iab-cd-overlay-background);z-index:var(--iab-cd-overlay-z-index);position:fixed;inset:0}.c15t-ui-overlayVisible-HyYf_{opacity:1;transition:opacity var(--iab-cd-animation-duration) var(--iab-cd-animation-timing)}.c15t-ui-overlayHidden-G8kpl{opacity:0;transition:opacity var(--iab-cd-animation-duration) var(--iab-cd-animation-timing)}@starting-style{.c15t-ui-overlayEntering-hcqOQ{opacity:0}}.c15t-dark .c15t-ui-overlay-LyBwJ{background-color:var(--iab-cd-overlay-background-dark)}.c15t-ui-card-DTFr5{width:min(100%, var(--iab-cd-max-width));max-height:var(--iab-cd-max-height);border-radius:var(--iab-cd-border-radius);border:1px solid var(--iab-cd-border-color);background-color:var(--iab-cd-background-color);min-height:0;box-shadow:var(--iab-cd-shadow);flex-direction:column;display:flex;position:relative;overflow:visible}.c15t-dark .c15t-ui-card-DTFr5{background-color:var(--iab-cd-background-color-dark);border-color:var(--iab-cd-border-color-dark)}.c15t-ui-header-wVNlq{border-bottom:1px solid var(--iab-cd-border-color);flex-shrink:0;justify-content:space-between;align-items:center;padding:.75rem 1rem;display:flex}.c15t-dark .c15t-ui-header-wVNlq{border-color:var(--iab-cd-border-color-dark)}@media (width>=768px){.c15t-ui-header-wVNlq{padding:1rem}}.c15t-ui-headerContent-djclo{flex:1}.c15t-ui-title-PNS3O{font-size:var(--iab-cd-title-font-size);font-weight:var(--iab-cd-title-font-weight);color:var(--iab-cd-text-color);margin:0;line-height:1.25}.c15t-dark .c15t-ui-title-PNS3O{color:var(--iab-cd-text-color-dark)}.c15t-ui-description-kGL5G{font-size:var(--iab-cd-description-font-size);color:var(--iab-cd-text-muted-color);line-height:var(--iab-cd-description-line-height);margin:.25rem 0 0}.c15t-dark .c15t-ui-description-kGL5G{color:var(--iab-cd-text-muted-color-dark)}.c15t-ui-closeButton-LDT86{border-radius:var(--c15t-radius-md);cursor:pointer;color:var(--iab-cd-text-muted-color);background:0 0;border:none;justify-content:center;align-items:center;padding:.375rem;transition:background-color .15s;display:flex}.c15t-ui-closeButton-LDT86:hover{background-color:var(--iab-cd-surface-hover)}.c15t-dark .c15t-ui-closeButton-LDT86{color:var(--iab-cd-text-muted-color-dark)}.c15t-dark .c15t-ui-closeButton-LDT86:hover{background-color:var(--iab-cd-surface-hover-dark)}.c15t-ui-body-IFzVC{flex-direction:column;flex:auto;min-height:0;display:flex;overflow:hidden}.c15t-ui-tabsContainer-CGMHA{flex-shrink:0;padding:.75rem .75rem 0}@media (width>=768px){.c15t-ui-tabsContainer-CGMHA{padding:1rem 1rem 0}}.c15t-ui-tabsList-w5OMX{isolation:isolate;border-radius:var(--c15t-radius-lg,.625rem);background-color:var(--iab-cd-surface-hover);grid-auto-columns:1fr;grid-auto-flow:column;gap:.25rem;padding:.25rem;display:grid;position:relative}.c15t-dark .c15t-ui-tabsList-w5OMX{background-color:var(--iab-cd-surface-hover-dark)}.c15t-ui-tabButton-TaxQK{z-index:10;white-space:nowrap;border-radius:var(--c15t-radius-md,.375rem);height:2rem;color:var(--iab-cd-text-muted-color);cursor:pointer;background:0 0;border:none;outline:none;justify-content:center;align-items:center;gap:.375rem;padding:0 .75rem;font-size:.8125rem;font-weight:500;transition:color .15s cubic-bezier(.33,1,.68,1),background-color .15s cubic-bezier(.33,1,.68,1);display:flex;position:relative}.c15t-ui-tabButton-TaxQK:hover{color:var(--iab-cd-text-color)}.c15t-ui-tabButton-TaxQK:focus-visible{outline:2px solid var(--iab-cd-primary-color);outline-offset:2px}.c15t-ui-tabButton-TaxQK[data-state=active]{color:var(--iab-cd-text-color)}.c15t-dark .c15t-ui-tabButton-TaxQK{color:var(--iab-cd-text-muted-color-dark)}.c15t-dark .c15t-ui-tabButton-TaxQK:hover,.c15t-dark .c15t-ui-tabButton-TaxQK[data-state=active]{color:var(--iab-cd-text-color-dark)}.c15t-ui-tabIndicator-ipeu4{z-index:0;border-radius:var(--c15t-radius-md,.375rem);background-color:var(--iab-cd-background-color);transition:transform var(--c15t-duration-slow) cubic-bezier(.33, 1, .68, 1), width var(--c15t-duration-slow) cubic-bezier(.33, 1, .68, 1);position:absolute;inset-block:.25rem;box-shadow:0 1px 2px #0000000f,0 1px 3px #0000001a}.c15t-dark .c15t-ui-tabIndicator-ipeu4{background-color:var(--iab-cd-background-color-dark);box-shadow:0 1px 2px #0003,0 1px 3px #0000004d}.c15t-ui-tabIndicator-ipeu4[data-active-tab=purposes]{width:calc(50% - .125rem);left:.25rem;transform:translate(0)}.c15t-ui-tabIndicator-ipeu4[data-active-tab=vendors]{width:calc(50% - .125rem);left:.125rem;transform:translate(100%)}.c15t-ui-content-tpKyG{flex:auto;min-height:0;padding:.75rem;overflow:hidden auto}@media (width>=768px){.c15t-ui-content-tpKyG{padding:1rem}}.c15t-ui-purposeItem-ycHg8{border-radius:var(--c15t-radius-md);border:1px solid var(--iab-cd-border-color);background-color:var(--iab-cd-background-color);margin-bottom:.5rem}.c15t-dark .c15t-ui-purposeItem-ycHg8{border-color:var(--iab-cd-border-color-dark);background-color:var(--iab-cd-background-color-dark)}.c15t-ui-purposeHeader-dtjf3{justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.75rem;display:flex}.c15t-ui-purposeTrigger-RYEFG{text-align:left;cursor:pointer;background:0 0;border:none;flex:1;align-items:center;gap:.5rem;min-width:0;padding:0;display:flex}.c15t-ui-purposeArrow-O8n8H{width:1rem;height:1rem;color:var(--iab-cd-text-muted-color);flex-shrink:0}.c15t-dark .c15t-ui-purposeArrow-O8n8H{color:var(--iab-cd-text-muted-color-dark)}.c15t-ui-purposeInfo-wahTP{flex:1;min-width:0}.c15t-ui-purposeName-QJMF_{color:var(--iab-cd-text-color);align-items:center;gap:.5rem;margin:0;font-size:.875rem;font-weight:500;display:flex}.c15t-dark .c15t-ui-purposeName-QJMF_{color:var(--iab-cd-text-color-dark)}.c15t-ui-lockIcon-i8SD3{width:.75rem;height:.75rem;color:var(--iab-cd-text-muted-color)}.c15t-dark .c15t-ui-lockIcon-i8SD3{color:var(--iab-cd-text-muted-color-dark)}.c15t-ui-purposeMeta-OC9IY{color:var(--iab-cd-text-muted-color);margin:.125rem 0 0;font-size:.75rem}.c15t-dark .c15t-ui-purposeMeta-OC9IY{color:var(--iab-cd-text-muted-color-dark)}.c15t-ui-legitimateInterestBadge-t0cqx{color:var(--iab-cd-text-muted-color);align-items:center;gap:.25rem;margin-top:.25rem;font-size:.625rem;font-weight:500;display:inline-flex}.c15t-ui-legitimateInterestIcon-Pvt34{width:.75rem;height:.75rem}.c15t-ui-srOnly-n1PBG{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.c15t-ui-purposeContent-teoEc{border-top:1px solid var(--iab-cd-border-color);margin-top:.75rem;padding:.75rem}.c15t-dark .c15t-ui-purposeContent-teoEc{border-color:var(--iab-cd-border-color-dark)}.c15t-ui-purposeDescription-eLaj6{color:var(--iab-cd-text-muted-color);margin:0;font-size:.75rem;line-height:1.5}.c15t-dark .c15t-ui-purposeDescription-eLaj6{color:var(--iab-cd-text-muted-color-dark)}.c15t-ui-examplesToggle-UKJ4l{color:var(--iab-cd-text-color);cursor:pointer;background:0 0;border:none;align-items:center;gap:.25rem;margin-top:.75rem;padding:0;font-size:.75rem;font-weight:500;display:flex}.c15t-ui-examplesToggle-UKJ4l:hover{color:var(--iab-cd-primary-color)}.c15t-dark .c15t-ui-examplesToggle-UKJ4l{color:var(--iab-cd-text-color-dark)}.c15t-dark .c15t-ui-examplesToggle-UKJ4l:hover{color:var(--iab-cd-primary-color-dark)}.c15t-ui-examplesList-Jgu0V{margin:.375rem 0 0;padding-left:1rem;list-style-type:disc}.c15t-ui-examplesList-Jgu0V li{color:var(--iab-cd-text-muted-color);font-size:.75rem;line-height:1.5}.c15t-dark .c15t-ui-examplesList-Jgu0V li{color:var(--iab-cd-text-muted-color-dark)}.c15t-ui-vendorsToggle-iiROe{color:var(--iab-cd-text-color);cursor:pointer;background:0 0;border:none;align-items:center;gap:.25rem;margin-top:.75rem;padding:0;font-size:.75rem;font-weight:500;display:flex}.c15t-ui-vendorsToggle-iiROe:hover{color:var(--iab-cd-primary-color)}.c15t-dark .c15t-ui-vendorsToggle-iiROe{color:var(--iab-cd-text-color-dark)}.c15t-ui-vendorSection-Xotxt{z-index:1;margin-top:.375rem;position:relative}.c15t-ui-vendorSectionTitle-fDzFC{color:var(--iab-cd-text-muted-color);text-transform:uppercase;letter-spacing:.05em;margin:.5rem 0 .375rem;font-size:.625rem;font-weight:500}.c15t-dark .c15t-ui-vendorSectionTitle-fDzFC{color:var(--iab-cd-text-muted-color-dark)}.c15t-ui-vendorSectionTitleLi-_EU2B{color:var(--iab-cd-text-muted-color);align-items:center;gap:.25rem;display:flex}.c15t-ui-vendorRow-MdJwv{border-radius:var(--c15t-radius-sm);background-color:var(--iab-cd-surface-hover);justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.375rem;padding:.5rem;display:flex}.c15t-dark .c15t-ui-vendorRow-MdJwv{background-color:var(--iab-cd-surface-hover-dark)}.c15t-ui-vendorRowLi-TR3to{background-color:var(--iab-cd-surface-hover);border:1px solid var(--iab-cd-border-color)}.c15t-ui-vendorInfo-cLXjo{flex:1;min-width:0}.c15t-ui-vendorName-U5tbA{color:var(--iab-cd-text-color);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:.375rem;padding:0;font-size:.75rem;font-weight:500;display:flex}.c15t-ui-vendorName-U5tbA:hover{color:var(--iab-cd-primary-color)}.c15t-dark .c15t-ui-vendorName-U5tbA{color:var(--iab-cd-text-color-dark)}.c15t-ui-customVendorIcon-xE8uf{width:.75rem;height:.75rem;color:var(--iab-cd-primary-color)}.c15t-dark .c15t-ui-customVendorIcon-xE8uf{color:var(--iab-cd-primary-color-dark)}.c15t-ui-vendorDetails-nJLMH{flex-wrap:wrap;gap:.5rem;margin-top:.125rem;display:flex}.c15t-ui-vendorDetail-qWyPR{color:var(--iab-cd-text-muted-color);font-size:.625rem}.c15t-dark .c15t-ui-vendorDetail-qWyPR{color:var(--iab-cd-text-muted-color-dark)}.c15t-ui-vendorDetailLi-HiywZ{color:var(--iab-cd-text-muted-color);font-weight:500}.c15t-ui-stackItem-Z6dCC{border-radius:var(--c15t-radius-md);border:1px solid var(--iab-cd-border-color);background-color:var(--iab-cd-background-color);margin-bottom:.5rem}.c15t-dark .c15t-ui-stackItem-Z6dCC{border-color:var(--iab-cd-border-color-dark);background-color:var(--iab-cd-background-color-dark)}.c15t-ui-stackHeader-TkNdL{justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.75rem;display:flex}.c15t-ui-stackTrigger-Kqeyy{text-align:left;cursor:pointer;background:0 0;border:none;flex:1;align-items:center;gap:.5rem;min-width:0;padding:0;display:flex}.c15t-ui-stackInfo-JH0ue{flex:1;min-width:0}.c15t-ui-stackName-yNHhd{color:var(--iab-cd-text-color);margin:0;font-size:.875rem;font-weight:500;line-height:1.25}.c15t-dark .c15t-ui-stackName-yNHhd{color:var(--iab-cd-text-color-dark)}.c15t-ui-stackMeta-Il_rX{color:var(--iab-cd-text-muted-color);margin:.25rem 0 0;font-size:.75rem}.c15t-dark .c15t-ui-stackMeta-Il_rX{color:var(--iab-cd-text-muted-color-dark)}.c15t-ui-stackControls-kBZON{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.c15t-ui-partialIndicator-U9dt6{background-color:var(--iab-cd-primary-color);border-radius:50%;width:.375rem;height:.375rem}.c15t-ui-stackDescription-occgV{color:var(--iab-cd-text-muted-color);margin:0 0 0 1.5rem;padding-bottom:.75rem;font-size:.75rem}.c15t-ui-stackDescription-occgV p{margin:0}.c15t-ui-stackDescription-occgV p+p{margin-top:.25rem}.c15t-dark .c15t-ui-stackDescription-occgV{color:var(--iab-cd-text-muted-color-dark)}.c15t-ui-stackContent-wu6FF{border-top:1px solid var(--iab-cd-border-color);background-color:var(--iab-cd-surface-hover);padding:.5rem}.c15t-dark .c15t-ui-stackContent-wu6FF{border-color:var(--iab-cd-border-color-dark);background-color:var(--iab-cd-surface-hover-dark)}.c15t-ui-specialPurposesSection-y9Pqu{border-radius:var(--c15t-radius-md);border:1px solid var(--iab-cd-border-color);background-color:var(--iab-cd-background-color);margin-bottom:.5rem}.c15t-dark .c15t-ui-specialPurposesSection-y9Pqu{border-color:var(--iab-cd-border-color-dark);background-color:var(--iab-cd-background-color-dark)}.c15t-ui-specialPurposesHeader-Rq1Tg{justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.75rem;display:flex}.c15t-ui-specialPurposesTitle-tcftu{color:var(--iab-cd-text-color);align-items:center;gap:.5rem;margin:0;font-size:.875rem;font-weight:500;display:flex}.c15t-dark .c15t-ui-specialPurposesTitle-tcftu{color:var(--iab-cd-text-color-dark)}.c15t-ui-featuresSection-TmXU3{border-radius:var(--c15t-radius-md);border:1px solid var(--iab-cd-border-color);background-color:var(--iab-cd-background-color);margin-bottom:var(--c15t-space-sm)}.c15t-dark .c15t-ui-featuresSection-TmXU3{border-color:var(--iab-cd-border-color-dark);background-color:var(--iab-cd-background-color-dark)}.c15t-ui-featuresHeader-VSBo2{padding:calc(var(--c15t-space-md) * .75)}.c15t-ui-featuresTitle-BpbiP{font-size:var(--c15t-font-size-sm);font-weight:var(--c15t-font-weight-medium);color:var(--iab-cd-text-color);margin:0}.c15t-dark .c15t-ui-featuresTitle-BpbiP{color:var(--iab-cd-text-color-dark)}.c15t-ui-featuresDescription-QfBHO{font-size:calc(var(--c15t-font-size-base) * .75);line-height:var(--c15t-line-height-normal);color:var(--iab-cd-text-muted-color);margin:var(--c15t-space-xs) 0 0}.c15t-dark .c15t-ui-featuresDescription-QfBHO{color:var(--iab-cd-text-muted-color-dark)}.c15t-ui-featuresList-Y5lNt{padding:0 calc(var(--c15t-space-md) * .75) calc(var(--c15t-space-md) * .75)}.c15t-ui-infoIcon-Egw87{width:.875rem;height:.875rem;color:var(--iab-cd-text-muted-color);cursor:help}.c15t-dark .c15t-ui-infoIcon-Egw87{color:var(--iab-cd-text-muted-color-dark)}.c15t-ui-tooltip-XjaZq{background-color:var(--iab-cd-background-color);border:1px solid var(--iab-cd-border-color);border-radius:var(--c15t-radius-md);width:16rem;box-shadow:var(--c15t-shadow-lg);color:var(--iab-cd-text-color);z-index:10;opacity:0;visibility:hidden;padding:.5rem;font-size:.75rem;transition:opacity .15s,visibility .15s;position:absolute;top:1.5rem;right:0}.c15t-ui-tooltipVisible-saaoQ{opacity:1;visibility:visible}.c15t-dark .c15t-ui-tooltip-XjaZq{background-color:var(--iab-cd-background-color-dark);border-color:var(--iab-cd-border-color-dark);color:var(--iab-cd-text-color-dark)}.c15t-ui-vendorListHeader-Hfxxu{background-color:var(--iab-cd-background-color);z-index:10;margin-top:0;padding-top:0;padding-bottom:.375rem;position:sticky;top:0}@media (width>=768px){.c15t-ui-vendorListHeader-Hfxxu{margin-top:0;padding-top:0;top:0}}.c15t-dark .c15t-ui-vendorListHeader-Hfxxu{background-color:var(--iab-cd-background-color-dark)}.c15t-ui-searchContainer-uyKJB{position:relative}.c15t-ui-searchIcon-NhyW4{width:.875rem;height:.875rem;color:var(--iab-cd-text-muted-color);position:absolute;top:50%;left:.625rem;transform:translateY(-50%)}.c15t-dark .c15t-ui-searchIcon-NhyW4{color:var(--iab-cd-text-muted-color-dark)}.c15t-ui-searchInput-cLLuO{border-radius:var(--c15t-radius-md);border:1px solid var(--iab-cd-border-color);background-color:var(--iab-cd-background-color);width:100%;color:var(--iab-cd-text-color);padding:.5rem .75rem .5rem 2rem;font-size:.875rem}.c15t-ui-searchInput-cLLuO:focus{border-color:var(--iab-cd-primary-color);box-shadow:0 0 0 2px color-mix(in srgb, var(--iab-cd-primary-color) 20%, transparent);outline:none}.c15t-dark .c15t-ui-searchInput-cLLuO{background-color:var(--iab-cd-background-color-dark);border-color:var(--iab-cd-border-color-dark);color:var(--iab-cd-text-color-dark)}.c15t-ui-vendorCount-s4d6i{color:var(--iab-cd-text-muted-color);margin-top:.25rem;font-size:.75rem}.c15t-dark .c15t-ui-vendorCount-s4d6i{color:var(--iab-cd-text-muted-color-dark)}.c15t-ui-selectedVendorBanner-S6KCv{background-color:color-mix(in srgb, var(--iab-cd-primary-color) 14%, var(--c15t-surface));border:1px solid color-mix(in srgb, var(--iab-cd-primary-color) 30%, transparent);border-radius:var(--c15t-radius-md);z-index:100;isolation:isolate;box-shadow:var(--c15t-shadow-sm);align-items:center;gap:.5rem;margin-bottom:.5rem;padding:.5rem .625rem;display:flex;position:sticky;top:0}.c15t-ui-selectedVendorText-jjIQi{color:var(--iab-cd-primary-color);flex:1;font-size:.75rem}.c15t-ui-clearSelectionButton-yz3Zx{color:var(--iab-cd-primary-color);cursor:pointer;background:0 0;border:none;align-items:center;gap:.25rem;padding:0;font-size:.75rem;display:flex}.c15t-ui-clearSelectionButton-yz3Zx:hover{opacity:.8}.c15t-ui-clearIcon-sTZC2{width:.75rem;height:.75rem}.c15t-ui-vendorListItem-NwBiX{z-index:1;border:1px solid var(--iab-cd-border-color);border-radius:var(--c15t-radius-md);margin-bottom:.375rem;scroll-margin-top:6rem;position:relative;overflow:hidden}.c15t-dark .c15t-ui-vendorListItem-NwBiX{border-color:var(--iab-cd-border-color-dark)}.c15t-ui-vendorListItemHeader-fBe_O{align-items:center;gap:.5rem;padding:.625rem;display:flex}.c15t-ui-vendorConsentControl-VC70A{border-radius:var(--c15t-radius-sm);flex-shrink:0;justify-content:center;align-items:center;min-width:2.25rem;min-height:2.25rem;padding:.375rem;display:inline-flex}.c15t-ui-vendorConsentControl-VC70A:hover{background-color:var(--iab-cd-surface-hover)}.c15t-dark .c15t-ui-vendorConsentControl-VC70A:hover{background-color:var(--iab-cd-surface-hover-dark)}.c15t-ui-vendorConsentSwitch-wEFf8{flex-shrink:0;display:block}.c15t-ui-vendorListTrigger-TG_0F{text-align:left;cursor:pointer;background:0 0;border:none;flex:1;justify-content:space-between;align-items:center;min-width:0;padding:0;display:flex}.c15t-ui-vendorListTrigger-TG_0F:hover{color:var(--iab-cd-primary-color)}.c15t-ui-vendorListInfo-BSgBB{flex:1;min-width:0}.c15t-ui-vendorListName-II_BV{color:var(--iab-cd-text-color);align-items:center;gap:.5rem;margin:0;font-size:.875rem;font-weight:500;display:flex}.c15t-dark .c15t-ui-vendorListName-II_BV{color:var(--iab-cd-text-color-dark)}.c15t-ui-vendorListMeta-wa6UC{flex-wrap:wrap;align-items:center;gap:.375rem;margin-top:.125rem;display:flex}.c15t-ui-vendorListMetaText-MS_cF{color:var(--iab-cd-text-muted-color);font-size:.75rem}.c15t-dark .c15t-ui-vendorListMetaText-MS_cF{color:var(--iab-cd-text-muted-color-dark)}.c15t-ui-vendorListLiBadge-_Uq0L{color:var(--iab-cd-text-muted-color);align-items:center;gap:.125rem;font-size:.625rem;font-weight:500;display:inline-flex}.c15t-ui-vendorListContent-CtRTw{border-top:1px solid var(--iab-cd-border-color);background-color:var(--iab-cd-surface-hover);padding:0 .625rem .625rem}.c15t-dark .c15t-ui-vendorListContent-CtRTw{border-color:var(--iab-cd-border-color-dark);background-color:var(--iab-cd-surface-hover-dark)}.c15t-ui-vendorLinks-pxq9Z{padding-top:.5rem}.c15t-ui-tabPanel-PJKhk{min-width:0;overflow-x:hidden}.c15t-ui-vendorLink-htHQn{color:var(--iab-cd-primary-color);align-items:center;gap:.25rem;margin-right:.75rem;font-size:.75rem;text-decoration:none;display:inline-flex}.c15t-ui-vendorLink-htHQn:hover{text-decoration:underline}.c15t-ui-vendorLinkIcon-UjIy5{width:.75rem;height:.75rem}.c15t-ui-vendorBadges-SED5E{flex-wrap:wrap;gap:.5rem;margin-top:.375rem;display:flex}.c15t-ui-vendorBadge-Pu0Hs{border-radius:var(--c15t-radius-sm);background-color:var(--iab-cd-surface-hover);color:var(--iab-cd-text-muted-color);padding:.125rem .375rem;font-size:.625rem}.c15t-dark .c15t-ui-vendorBadge-Pu0Hs{background-color:var(--iab-cd-surface-hover-dark);color:var(--iab-cd-text-muted-color-dark)}.c15t-ui-vendorPurposesList-CtEFC{margin-top:.5rem}.c15t-ui-vendorPurposesTitle-2hGY4{color:var(--iab-cd-text-color);align-items:center;gap:.5rem;margin:0 0 .25rem;font-size:.75rem;font-weight:500;display:flex}.c15t-dark .c15t-ui-vendorPurposesTitle-2hGY4{color:var(--iab-cd-text-color-dark)}.c15t-ui-vendorPurposesItems-VKo31{margin:0;padding:0;list-style:none}.c15t-ui-vendorPurposeItem-TmnWw{color:var(--iab-cd-text-muted-color);border-left:2px solid var(--iab-cd-border-color);justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.125rem;padding-left:.5rem;font-size:.75rem;display:flex}.c15t-dark .c15t-ui-vendorPurposeItem-TmnWw{color:var(--iab-cd-text-muted-color-dark);border-color:var(--iab-cd-border-color-dark)}.c15t-ui-vendorPurposeItemLi-rO_6B{border-color:var(--iab-cd-text-muted-color);color:var(--iab-cd-text-muted-color)}.c15t-ui-vendorRetention-TTJ2U{opacity:.7;font-size:.625rem}.c15t-ui-footer-YF32K{border-top:1px solid var(--iab-cd-border-color);background-color:var(--iab-cd-surface-hover);flex-shrink:0;justify-content:space-between;align-items:center;padding:.75rem 1rem;display:flex}.c15t-dark .c15t-ui-footer-YF32K{border-color:var(--iab-cd-border-color-dark);background-color:var(--iab-cd-surface-hover-dark)}.c15t-ui-consentNotice-PEEG3{text-align:center;padding-top:1.5rem}.c15t-dark .c15t-ui-consentNotice-PEEG3{border-color:var(--iab-cd-border-color-dark)}.c15t-ui-consentNoticeText-MhMCM{color:var(--iab-cd-text-muted-color);margin-block:0;font-size:.625rem}.c15t-dark .c15t-ui-consentNoticeText-MhMCM{color:var(--iab-cd-text-muted-color-dark)}.c15t-ui-loadingContainer-iW124{flex-direction:column;justify-content:center;align-items:center;gap:.75rem;height:100%;display:flex}.c15t-ui-loadingSpinner-W8iiY{border:2px solid var(--iab-cd-border-color);border-top-color:var(--iab-cd-primary-color);width:1.75rem;height:1.75rem;animation:var(--c15t-spin-animation);border-radius:50%}.c15t-ui-loadingText-o2XqJ{color:var(--iab-cd-text-muted-color);font-size:.875rem}.c15t-dark .c15t-ui-loadingText-o2XqJ{color:var(--iab-cd-text-muted-color-dark)}.c15t-ui-emptyState-nmTzy{text-align:center;padding:var(--c15t-space-xl)}.c15t-ui-emptyStateText-HuJtF{color:var(--iab-cd-text-muted-color);margin:0;font-size:.875rem}.c15t-dark .c15t-ui-emptyStateText-HuJtF{color:var(--iab-cd-text-muted-color-dark)}.c15t-ui-vendorSection-Xotxt{z-index:1;margin-top:.25rem;margin-bottom:1rem;position:relative}.c15t-ui-vendorSectionHeading-s4i73{text-transform:uppercase;letter-spacing:.05em;color:var(--iab-cd-text-muted-color);background:var(--iab-cd-surface-hover-color);border-bottom:1px solid var(--iab-cd-border-color);align-items:center;gap:.5rem;margin:0;padding:.375rem 0 .25rem;font-size:.75rem;font-weight:600;display:flex}.c15t-dark .c15t-ui-vendorSectionHeading-s4i73{color:var(--iab-cd-text-muted-color-dark);background:var(--iab-cd-surface-hover-color-dark);border-color:var(--iab-cd-border-color-dark)}.c15t-ui-vendorSectionIcon-Cc99v{flex-shrink:0;width:1rem;height:1rem}.c15t-ui-iabVendorSectionHeader-YsNA5{background-color:var(--iab-cd-background-color);border-bottom:1px solid var(--iab-cd-border-color);z-index:10;padding:.25rem 0;position:relative}.c15t-dark .c15t-ui-iabVendorSectionHeader-YsNA5{border-color:var(--iab-cd-border-color-dark);background-color:var(--iab-cd-background-color-dark)}.c15t-ui-iabVendorSectionHeader-YsNA5 .c15t-ui-vendorSectionHeading-s4i73{border-bottom:none;padding-bottom:.25rem}.c15t-ui-iabVendorNotice-WnMMx{color:var(--iab-cd-text-muted-color);margin:0;font-size:.6875rem}.c15t-dark .c15t-ui-iabVendorNotice-WnMMx{color:var(--iab-cd-text-muted-color-dark)}.c15t-ui-customVendorSectionHeader-Sy8yM{background-color:var(--iab-cd-background-color);border-bottom:1px solid var(--iab-cd-border-color);z-index:10;padding:.5rem 0;position:relative}.c15t-dark .c15t-ui-customVendorSectionHeader-Sy8yM{border-color:var(--iab-cd-border-color-dark);background-color:var(--iab-cd-background-color-dark)}.c15t-ui-customVendorSectionHeader-Sy8yM .c15t-ui-vendorSectionHeading-s4i73{background:0 0;border-bottom:none;padding-bottom:.25rem}.c15t-ui-customVendorNotice-NgBsE{color:var(--iab-cd-text-muted-color);margin:0;padding:.25rem 0 1rem;font-size:.6875rem}.c15t-dark .c15t-ui-customVendorNotice-NgBsE{color:var(--iab-cd-text-muted-color-dark)}.c15t-ui-customVendorItem-QF5C7{border-left:3px solid var(--iab-cd-primary-color)}.c15t-dark .c15t-ui-customVendorItem-QF5C7{border-left-color:var(--iab-cd-primary-color-dark)}.c15t-ui-customVendorPurposeSection-zFEUM{border-top:1px solid var(--iab-cd-border-color);margin-top:.75rem;padding-top:.75rem}.c15t-dark .c15t-ui-customVendorPurposeSection-zFEUM{border-color:var(--iab-cd-border-color-dark)}.c15t-ui-vendorSectionTitleCustom-JjHzO{text-transform:uppercase;letter-spacing:.05em;color:var(--iab-cd-primary-color);align-items:center;gap:.375rem;margin:0 0 .5rem;font-size:.625rem;font-weight:600;display:flex}.c15t-dark .c15t-ui-vendorSectionTitleCustom-JjHzO{color:var(--iab-cd-primary-color-dark)}.c15t-ui-objectButton-S0x1H{border-radius:var(--c15t-radius-sm);border:1px solid var(--iab-cd-border-color);color:var(--iab-cd-text-muted-color);cursor:pointer;white-space:nowrap;background-color:#0000;padding:.25rem .5rem;font-size:.6875rem;font-weight:500;transition:background-color .15s,border-color .15s,color .15s}.c15t-ui-objectButton-S0x1H:hover{border-color:var(--iab-cd-text-muted-color);color:var(--iab-cd-text-color)}.c15t-ui-objectButton-S0x1H[data-active],.c15t-ui-objectButtonActive-AlNLv{background-color:var(--iab-cd-text-muted-color);border-color:var(--iab-cd-text-muted-color);color:var(--iab-cd-background-color)}.c15t-ui-objectButton-S0x1H[data-active]:hover,.c15t-ui-objectButtonActive-AlNLv:hover{opacity:.9}.c15t-dark .c15t-ui-objectButton-S0x1H{border-color:var(--iab-cd-border-color-dark);color:var(--iab-cd-text-muted-color-dark)}.c15t-dark .c15t-ui-objectButton-S0x1H:hover{border-color:var(--iab-cd-text-muted-color-dark);color:var(--iab-cd-text-color-dark)}.c15t-dark .c15t-ui-objectButton-S0x1H[data-active],.c15t-dark .c15t-ui-objectButtonActive-AlNLv{background-color:var(--iab-cd-text-muted-color-dark);border-color:var(--iab-cd-text-muted-color-dark);color:var(--iab-cd-background-color-dark)}.c15t-ui-liExplanation-_r6Zx{color:var(--iab-cd-text-muted-color);background-color:var(--iab-cd-surface-hover);font-size:.6875rem;font-style:italic}.c15t-dark .c15t-ui-liExplanation-_r6Zx{color:var(--iab-cd-text-muted-color-dark);background-color:var(--iab-cd-surface-hover-dark);border-color:var(--iab-cd-text-muted-color-dark)}.c15t-ui-vendorLiSection-sqzvi{border-top:1px solid var(--iab-cd-border-color);margin-top:.75rem;padding-top:.75rem}.c15t-dark .c15t-ui-vendorLiSection-sqzvi{border-color:var(--iab-cd-border-color-dark)}.c15t-ui-vendorLiSectionHeader-fsKUh{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.375rem;display:flex}.c15t-ui-vendorLiSectionHeader-fsKUh .c15t-ui-vendorPurposesTitle-2hGY4{align-items:center;margin:0;display:flex}.c15t-ui-purposeLiSection-YbwuC{background-color:var(--iab-cd-surface-hover);border-radius:var(--c15t-radius-sm);border:1px solid var(--iab-cd-border-color);margin:.75rem 0;padding:.75rem}.c15t-dark .c15t-ui-purposeLiSection-YbwuC{background-color:var(--iab-cd-surface-hover-dark);border-color:var(--iab-cd-border-color-dark)}.c15t-ui-purposeLiSectionHeader-cSbP3{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.5rem;display:flex}.c15t-ui-purposeLiInfo-Rpryr{color:var(--iab-cd-text-color);align-items:center;gap:.375rem;font-size:.75rem;font-weight:500;display:flex}.c15t-dark .c15t-ui-purposeLiInfo-Rpryr{color:var(--iab-cd-text-color-dark)}.c15t-ui-purposeLiInfo-Rpryr .c15t-ui-legitimateInterestIcon-Pvt34{flex-shrink:0}@media (prefers-reduced-motion:reduce){.c15t-ui-dialogVisible-ZcQux,.c15t-ui-dialogHidden-QOLab,.c15t-ui-contentVisible-oIYEE,.c15t-ui-contentHidden-dppgu,.c15t-ui-overlayVisible-HyYf_,.c15t-ui-overlayHidden-G8kpl,.c15t-ui-closeButton-LDT86,.c15t-ui-tabButton-TaxQK,.c15t-ui-tooltip-XjaZq,.c15t-ui-objectButton-S0x1H,.c15t-ui-tabIndicator-ipeu4{transition:none}.c15t-ui-loadingSpinner-W8iiY{animation:none}}@media (hover:none){.c15t-ui-closeButton-LDT86:hover{background-color:#0000}.c15t-ui-tabButton-TaxQK:hover{color:var(--iab-cd-text-muted-color)}.c15t-ui-objectButton-S0x1H:hover{border-color:var(--iab-cd-border-color);color:var(--iab-cd-text-muted-color)}}
|
|
23
23
|
|
|
24
24
|
/* components/iab-prompt */
|
|
25
|
-
.c15t-ui-root-wCtZ2{box-sizing:border-box;z-index:
|
|
25
|
+
.c15t-ui-root-wCtZ2{box-sizing:border-box;z-index:var(--iab-consent-banner-z-index);font-family:var(--iab-consent-banner-font-family);line-height:var(--iab-consent-banner-line-height);-webkit-text-size-adjust:var(--iab-consent-banner-text-size-adjust);-webkit-font-smoothing:antialiased;tab-size:var(--iab-consent-banner-tab-size);justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.c15t-ui-root-wCtZ2[data-c15t-streamed]:not(:has(>[data-c15t-stream-end])){visibility:hidden}.c15t-ui-bannerEntering-Rn_SM,.c15t-ui-bannerVisible-uqQdb{opacity:1}.c15t-ui-bannerEntering-Rn_SM[data-entry=late]:not(.c15t-ui-bannerHidden-KVkXf){transition:opacity var(--iab-consent-banner-entry-duration) var(--iab-consent-banner-entry-timing)}@starting-style{.c15t-ui-bannerEntering-Rn_SM[data-entry=late]{opacity:0}}.c15t-ui-bannerHidden-KVkXf{opacity:0;transition:opacity var(--iab-consent-banner-animation-duration) var(--iab-consent-banner-animation-timing)}@media (width>=640px){.c15t-ui-root-wCtZ2{padding:1.5rem}}.c15t-ui-cardShell-pmM71{width:min(100%, var(--iab-consent-banner-max-width));flex-direction:column;display:flex}.c15t-ui-card-lJZdN{border-radius:var(--iab-consent-banner-border-radius);border-width:var(--iab-consent-banner-border-width);border-style:solid;border-color:var(--iab-consent-banner-border-color);background-color:var(--iab-consent-banner-background-color);width:100%;box-shadow:var(--iab-consent-banner-shadow);position:relative;overflow:hidden}.c15t-dark .c15t-ui-card-lJZdN{background-color:var(--iab-consent-banner-background-color-dark);border-color:var(--iab-consent-banner-border-color-dark);box-shadow:var(--iab-consent-banner-shadow-dark)}.c15t-ui-card-lJZdN>:not([hidden])~:not([hidden]){border-top-width:var(--iab-consent-banner-border-width);border-top-style:solid;border-color:var(--iab-consent-banner-border-color)}.c15t-dark .c15t-ui-card-lJZdN>:not([hidden])~:not([hidden]){border-color:var(--iab-consent-banner-border-color-dark)}.c15t-ui-card-lJZdN:not(.headless):focus{outline:none}.c15t-ui-header-WMRYy{color:var(--iab-consent-banner-text-color);flex-direction:column;gap:.5rem;padding:1.25rem;display:flex}.c15t-dark .c15t-ui-header-WMRYy{color:var(--iab-consent-banner-text-color-dark)}@media (width>=640px){.c15t-ui-header-WMRYy{padding:1.5rem}}.c15t-ui-title-iMdl2{font-size:var(--c15t-font-size-lg);letter-spacing:-.011em;color:var(--iab-consent-banner-title-color);margin:0;font-weight:600;line-height:1.5rem}.c15t-dark .c15t-ui-title-iMdl2{color:var(--iab-consent-banner-title-color-dark)}.c15t-ui-description-_ZLiC{letter-spacing:-.006em;color:var(--iab-consent-banner-description-color);margin:0;font-size:.875rem;font-weight:400;line-height:1.5}.c15t-dark .c15t-ui-description-_ZLiC{color:var(--iab-consent-banner-description-color-dark)}.c15t-ui-partnersLink-yKsgB{color:var(--iab-consent-banner-link-color);cursor:pointer;font-weight:500;font-size:inherit;background:0 0;border:none;padding:0;text-decoration:none}.c15t-ui-partnersLink-yKsgB:hover{text-decoration:underline}.c15t-dark .c15t-ui-partnersLink-yKsgB{color:var(--iab-consent-banner-link-color-dark)}.c15t-ui-purposeList-Qz2Eo{color:var(--iab-consent-banner-description-color);margin:.5rem 0 0;padding-left:1.25rem;font-size:.875rem;line-height:1.5;list-style-type:disc}.c15t-ui-purposeList-Qz2Eo li{margin-bottom:.25rem}.c15t-ui-purposeMore-aANSf{opacity:.8;font-style:italic;list-style-type:none}.c15t-dark .c15t-ui-purposeList-Qz2Eo{color:var(--iab-consent-banner-description-color-dark)}.c15t-ui-legitimateInterestNotice-QtcwV{color:var(--iab-consent-banner-description-color);margin-top:.25rem;font-size:.8125rem;line-height:1.5}.c15t-dark .c15t-ui-legitimateInterestNotice-QtcwV{color:var(--iab-consent-banner-description-color-dark)}.c15t-ui-privacyLink-RYh_l{color:var(--iab-consent-banner-link-color);cursor:pointer;font-size:inherit;background:0 0;border:none;padding:0;text-decoration:none}.c15t-ui-privacyLink-RYh_l:hover{text-decoration:underline}.c15t-dark .c15t-ui-privacyLink-RYh_l{color:var(--iab-consent-banner-link-color-dark)}.c15t-ui-footer-danOO{background-color:var(--iab-consent-banner-footer-background-color);flex-direction:column;justify-content:space-between;gap:.5rem;padding:.75rem 1rem;display:flex}.c15t-dark .c15t-ui-footer-danOO{background-color:var(--iab-consent-banner-footer-background-color-dark)}@media (width>=640px){.c15t-ui-footer-danOO{flex-direction:row;padding:1rem}}.c15t-ui-overlay-OPamO{background-color:var(--iab-consent-banner-overlay-background-color);z-index:var(--iab-consent-banner-overlay-z-index);position:fixed;inset:0}.c15t-ui-overlayEntering-MQWHm,.c15t-ui-overlayVisible-JAO1l{opacity:1}.c15t-ui-overlayEntering-MQWHm[data-entry=late]:not(.c15t-ui-overlayHidden-zfbJA){transition:opacity var(--iab-consent-banner-entry-duration) var(--iab-consent-banner-entry-timing)}@starting-style{.c15t-ui-overlayEntering-MQWHm[data-entry=late]{opacity:0}}.c15t-ui-overlayHidden-zfbJA{opacity:0;transition:opacity var(--iab-consent-banner-animation-duration) var(--iab-consent-banner-animation-timing)}.c15t-dark .c15t-ui-overlay-OPamO{background-color:var(--iab-consent-banner-overlay-background-color-dark)}@media (prefers-reduced-motion:reduce){.c15t-ui-bannerEntering-Rn_SM[data-entry=late]:not(.c15t-ui-bannerHidden-KVkXf),.c15t-ui-overlayEntering-MQWHm[data-entry=late]:not(.c15t-ui-overlayHidden-zfbJA),.c15t-ui-bannerHidden-KVkXf,.c15t-ui-overlayHidden-zfbJA{transition:none}}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import{jsx as e}from"react/jsx-runtime";import{useEffect as o,useState as r}from"react";import{registerDialogChunkWarmer as t,useIdleDialogWarming as n}from"./chunk-warming.js";import{useActiveUI as i,useModel as a}from"./hooks.js";import{useIsHydrated as l}from"./hooks/use-is-hydrated.js";import{useIAB as s}from"./iab-context.js";import{createDeferredModule as m}from"./utils/deferred-module.js";let g=["iab"],p=m(()=>import("./components/iab-panel/index.js")),d=0,f=!1;t(()=>{f=!0,d>0&&p.preload()});let u=p.component(e=>e.IABConsentDialog),c=m(()=>import("./components/panel-trigger/index.js")).component(e=>e.ConsentDialogTrigger),b=t=>{let m=i(),b=a(),j=s(),I=l(),T=t.models??g,h=null!==b&&T.includes(b)&&!!j?.config.enabled;o(()=>{if(h)return d+=1,f&&p.preload(),()=>{d-=1}},[h]),n(h&&"banner"===m);let B=h&&((t.open??"dialog"===m)||!!t.showTrigger),[C,D]=r(B);if(B&&!C&&D(!0),!(B||C)){var x;let o=!0===(x=t.showTrigger)?{}:x||null;return o&&I&&j?.config.enabled?e(c,{...o}):null}return e(u,{...t})},j={};for(let e of["Root","Card","Header","Tabs","TabButton","Content","Footer","Overlay","FeatureItem","PurposeItem","StackItem","VendorList"])Object.defineProperty(b,e,{configurable:!0,enumerable:!0,get:()=>(j[e]??=p.component(o=>o.IABConsentDialog[e]),j[e])});let I=b,T=function(){d=0,f=!1};export{I as IABConsentDialog,T as resetIABDialogWarmingForTests};
|
package/dist/iab.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{IABConsentBanner}from"./components/iab-prompt/index.js";export{IABConsentDialog}from"./
|
|
1
|
+
export{IABConsentBanner}from"./components/iab-prompt/index.js";export{IABConsentDialog}from"./iab-dialog-deferred.js";export{useHeadlessIABConsentUI}from"./hooks/use-headless-iab-consent-ui.js";export{IABProvider}from"./iab-context.js";
|