@c15t/react 2.0.0 → 2.0.3
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/README.md +23 -18
- package/dist/components/consent-dialog/atoms/overlay.cjs +1 -1
- package/dist/components/consent-dialog/atoms/overlay.js +1 -1
- package/dist/components/consent-widget/atoms/footer.cjs +1 -1
- package/dist/components/consent-widget/atoms/footer.js +1 -1
- package/dist/iab/styles.tw3.css +54 -11
- package/dist/styles.tw3.css +70 -10
- package/dist/version.cjs +1 -1
- package/dist/version.js +1 -1
- package/dist-types/components/consent-dialog/atoms/overlay.d.ts +8 -16
- package/dist-types/components/consent-widget/index.d.ts +1 -0
- package/dist-types/components/shared/ui/logo.d.ts +10 -0
- package/dist-types/version.d.ts +1 -1
- package/docs/ai-agents.md +111 -0
- package/docs/components/consent-manager-provider.md +2 -2
- package/docs/components/consent-widget.md +4 -1
- package/docs/components/dev-tools.md +33 -0
- package/docs/iab/consent-banner.md +3 -3
- package/docs/iab/consent-dialog.md +3 -3
- package/docs/iab/overview.md +4 -4
- package/docs/iab/use-gvl-data.md +2 -2
- package/docs/quickstart.md +1 -1
- package/docs/styling/overview.md +1 -0
- package/docs/styling/slots.md +1 -0
- package/docs/styling/tailwind.md +5 -1
- package/iab/styles.tw3.css +1 -0
- package/package.json +27 -38
- package/readme.json +4 -4
- package/styles.tw3.css +1 -0
package/README.md
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
<p align="center">
|
|
2
|
-
<a href="https://c15t.com?utm_source=
|
|
2
|
+
<a href="https://c15t.com?utm_source=npm&utm_medium=readme&utm_campaign=oss_readme&utm_content=%40c15t%2Freact" target="_blank" rel="noopener noreferrer">
|
|
3
3
|
<picture>
|
|
4
4
|
<source media="(prefers-color-scheme: dark)" srcset="../../docs/assets/c15t-banner-readme-dark.svg" type="image/svg+xml">
|
|
5
5
|
<img src="../../docs/assets/c15t-banner-readme-light.svg" alt="c15t Banner" type="image/svg+xml">
|
|
6
6
|
</picture>
|
|
7
7
|
</a>
|
|
8
|
-
<br />
|
|
9
|
-
<h1 align="center">@c15t/react: React Consent Components</h1>
|
|
10
8
|
</p>
|
|
11
9
|
|
|
10
|
+
# @c15t/react: React Consent Components
|
|
11
|
+
|
|
12
12
|
[](https://github.com/c15t/c15t)
|
|
13
13
|
[](https://github.com/c15t/c15t/actions/workflows/ci.yml)
|
|
14
14
|
[](https://github.com/c15t/c15t/blob/main/LICENSE.md)
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
[](https://github.com/c15t/c15t/commits/main)
|
|
19
19
|
[](https://github.com/c15t/c15t/issues)
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
Headless cookie banner, consent manager & preference center for React. RSC-compatible, GDPR/CCPA/LGPD/TCF, TypeScript-first.
|
|
22
22
|
|
|
23
23
|
## Key Features
|
|
24
24
|
|
|
@@ -36,18 +36,18 @@ Developer-first CMP for React: cookie banner, consent manager, preferences centr
|
|
|
36
36
|
|
|
37
37
|
- React 16.8 or later
|
|
38
38
|
- Node.js 18.17.0 or later
|
|
39
|
-
- A hosted [c15t instance](https://
|
|
39
|
+
- A hosted [c15t instance](https://inth.com) (free sign-up) or [self-hosted deployment](https://c15t.com/docs/self-host/v2)
|
|
40
40
|
|
|
41
41
|
## Quick Start
|
|
42
42
|
|
|
43
43
|
Easiest setup with @c15t/cli:
|
|
44
44
|
|
|
45
45
|
```bash
|
|
46
|
-
#
|
|
47
|
-
pnpm dlx @c15t/cli
|
|
46
|
+
# Set up c15t in your project
|
|
47
|
+
pnpm dlx @c15t/cli setup
|
|
48
48
|
# Alternatives:
|
|
49
|
-
# npx @c15t/cli
|
|
50
|
-
# bunx --bun @c15t/cli
|
|
49
|
+
# npx @c15t/cli setup
|
|
50
|
+
# bunx --bun @c15t/cli setup
|
|
51
51
|
```
|
|
52
52
|
|
|
53
53
|
The CLI will:
|
|
@@ -77,19 +77,24 @@ To manually install, follow the guide in our [docs – manual setup](https://c15
|
|
|
77
77
|
## Usage
|
|
78
78
|
|
|
79
79
|
1. Import `ConsentManagerProvider` in your app's root component
|
|
80
|
-
2. Add `
|
|
80
|
+
2. Add `ConsentBanner` and `ConsentDialog` components
|
|
81
81
|
3. Customise styling and behaviour to fit your app
|
|
82
82
|
4. For full implementation details, see the [React quickstart docs](https://c15t.com/docs/frameworks/react/quickstart)
|
|
83
83
|
|
|
84
84
|
```tsx
|
|
85
85
|
// App.tsx
|
|
86
|
-
import {
|
|
86
|
+
import {
|
|
87
|
+
ConsentManagerProvider,
|
|
88
|
+
ConsentBanner,
|
|
89
|
+
ConsentDialog,
|
|
90
|
+
} from '@c15t/react'
|
|
87
91
|
|
|
88
92
|
function App() {
|
|
89
93
|
return (
|
|
90
94
|
<ConsentManagerProvider>
|
|
91
95
|
<YourApp />
|
|
92
|
-
<
|
|
96
|
+
<ConsentBanner />
|
|
97
|
+
<ConsentDialog />
|
|
93
98
|
</ConsentManagerProvider>
|
|
94
99
|
)
|
|
95
100
|
}
|
|
@@ -103,24 +108,24 @@ For further information, guides, and examples visit the [reference documentation
|
|
|
103
108
|
|
|
104
109
|
- Join our [Discord community](https://c15t.link/discord)
|
|
105
110
|
- Open an issue on our [GitHub repository](https://github.com/c15t/c15t/issues)
|
|
106
|
-
- Visit [
|
|
107
|
-
- Contact our support team via email [support@
|
|
111
|
+
- Visit [inth.com](https://inth.com) and use the chat widget
|
|
112
|
+
- Contact our support team via email [support@inth.com](mailto:support@inth.com)
|
|
108
113
|
|
|
109
114
|
## Contributing
|
|
110
115
|
|
|
111
|
-
- We're open to all community contributions
|
|
116
|
+
- We're open to all community contributions.
|
|
112
117
|
- Read our [Contribution Guidelines](https://c15t.com/docs/oss/contributing)
|
|
113
118
|
- Review our [Code of Conduct](https://c15t.com/docs/oss/code-of-conduct)
|
|
114
119
|
- Fork the repository
|
|
115
120
|
- Create a new branch for your feature
|
|
116
121
|
- Submit a pull request
|
|
117
|
-
- **All contributions, big or small, are welcome and appreciated
|
|
122
|
+
- **All contributions, big or small, are welcome and appreciated.**
|
|
118
123
|
|
|
119
124
|
## Security
|
|
120
125
|
|
|
121
126
|
If you believe you have found a security vulnerability in c15t, we encourage you to **_responsibly disclose this and NOT open a public issue_**. We will investigate all legitimate reports.
|
|
122
127
|
|
|
123
|
-
Our preference is that you make use of GitHub's private vulnerability reporting feature to disclose potential security vulnerabilities in our
|
|
128
|
+
Our preference is that you make use of GitHub's private vulnerability reporting feature to disclose potential security vulnerabilities in our open-source software. To do this, please visit [https://github.com/c15t/c15t/security](https://github.com/c15t/c15t/security) and click the "Report a vulnerability" button.
|
|
124
129
|
|
|
125
130
|
### Security Policy
|
|
126
131
|
|
|
@@ -135,4 +140,4 @@ Our preference is that you make use of GitHub's private vulnerability reporting
|
|
|
135
140
|
|
|
136
141
|
---
|
|
137
142
|
|
|
138
|
-
**Built by [Inth](https://inth.com?utm_source=
|
|
143
|
+
**Built by [Inth](https://inth.com?utm_source=npm&utm_medium=readme&utm_campaign=oss_readme&utm_content=%40c15t%2Freact)**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const __rslib_import_meta_url__="u"<typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_require__={};__webpack_require__.n=e=>{var _=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(_,{a:_}),_},__webpack_require__.d=(e,_)=>{for(var a in _)__webpack_require__.o(_,a)&&!__webpack_require__.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:_[a]})},__webpack_require__.o=(e,_)=>Object.prototype.hasOwnProperty.call(e,_),__webpack_require__.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{ConsentDialogOverlay:()=>ConsentDialogOverlay,Overlay:()=>Overlay});const jsx_runtime_namespaceObject=require("react/jsx-runtime"),consent_dialog_module_js_namespaceObject=require("@c15t/ui/styles/components/consent-dialog.module.js");var consent_dialog_module_js_default=__webpack_require__.n(consent_dialog_module_js_namespaceObject);const external_react_namespaceObject=require("react"),use_consent_manager_cjs_namespaceObject=require("../../../hooks/use-consent-manager.cjs"),use_styles_cjs_namespaceObject=require("../../../hooks/use-styles.cjs"),use_theme_cjs_namespaceObject=require("../../../hooks/use-theme.cjs"),cn_cjs_namespaceObject=require("../../../utils/cn.cjs"),ConsentDialogOverlay=({
|
|
1
|
+
"use strict";const __rslib_import_meta_url__="u"<typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_require__={};__webpack_require__.n=e=>{var _=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(_,{a:_}),_},__webpack_require__.d=(e,_)=>{for(var a in _)__webpack_require__.o(_,a)&&!__webpack_require__.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:_[a]})},__webpack_require__.o=(e,_)=>Object.prototype.hasOwnProperty.call(e,_),__webpack_require__.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{ConsentDialogOverlay:()=>ConsentDialogOverlay,Overlay:()=>Overlay});const jsx_runtime_namespaceObject=require("react/jsx-runtime"),consent_dialog_module_js_namespaceObject=require("@c15t/ui/styles/components/consent-dialog.module.js");var consent_dialog_module_js_default=__webpack_require__.n(consent_dialog_module_js_namespaceObject);const external_react_namespaceObject=require("react"),use_consent_manager_cjs_namespaceObject=require("../../../hooks/use-consent-manager.cjs"),use_styles_cjs_namespaceObject=require("../../../hooks/use-styles.cjs"),use_theme_cjs_namespaceObject=require("../../../hooks/use-theme.cjs"),cn_cjs_namespaceObject=require("../../../utils/cn.cjs"),ConsentDialogOverlay=(0,external_react_namespaceObject.forwardRef)(({className:e,noStyle:_,style:a,...t},r)=>{let s,n,c,{activeUI:o}=(0,use_consent_manager_cjs_namespaceObject.useConsentManager)(),{disableAnimation:l,noStyle:i}=(0,use_theme_cjs_namespaceObject.useTheme)(),u="dialog"===o,[p,m]=(0,external_react_namespaceObject.useState)(!1);(0,external_react_namespaceObject.useEffect)(()=>{if(u)m(!0);else if(l)m(!1);else{let e=setTimeout(()=>{m(!1)},Number.parseInt(getComputedStyle(document.documentElement).getPropertyValue("--consent-dialog-animation-duration")||"200",10));return()=>clearTimeout(e)}},[u,l]),"string"==typeof a?s=a:a&&"className"in a&&(s=a.className);let d=(0,cn_cjs_namespaceObject.cnExt)(s,e);"object"==typeof a&&null!==a&&(n="style"in a||"className"in a?a.style:a);let b=(0,use_styles_cjs_namespaceObject.useStyles)("consentDialogOverlay",{baseClassName:!(i||_)&&consent_dialog_module_js_default().overlay,className:d,noStyle:i||_});c=i||_||l?void 0:p?consent_dialog_module_js_default().overlayVisible:consent_dialog_module_js_default().overlayHidden;let j=(0,cn_cjs_namespaceObject.cnExt)(b.className,c);return(0,jsx_runtime_namespaceObject.jsx)("div",{ref:r,...t,role:"presentation","aria-hidden":"true",style:{...b.style,...n},className:j,"data-testid":"consent-dialog-overlay"})});ConsentDialogOverlay.displayName="ConsentDialogOverlay";const Overlay=ConsentDialogOverlay;for(var __rspack_i in exports.ConsentDialogOverlay=__webpack_exports__.ConsentDialogOverlay,exports.Overlay=__webpack_exports__.Overlay,__webpack_exports__)-1===["ConsentDialogOverlay","Overlay"].indexOf(__rspack_i)&&(exports[__rspack_i]=__webpack_exports__[__rspack_i]);Object.defineProperty(exports,"__esModule",{value:!0});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e}from"react/jsx-runtime";import t from"@c15t/ui/styles/components/consent-dialog.module.js";import{
|
|
1
|
+
import{jsx as e}from"react/jsx-runtime";import t from"@c15t/ui/styles/components/consent-dialog.module.js";import{forwardRef as o,useEffect as s,useState as l}from"react";import{useConsentManager as a}from"../../../hooks/use-consent-manager.js";import{useStyles as r}from"../../../hooks/use-styles.js";import{useTheme as n}from"../../../hooks/use-theme.js";import{cnExt as i}from"../../../utils/cn.js";let m=o(({className:o,noStyle:m,style:y,...c},u)=>{let d,p,f,{activeUI:g}=a(),{disableAnimation:v,noStyle:N}=n(),j="dialog"===g,[h,b]=l(!1);s(()=>{if(j)b(!0);else if(v)b(!1);else{let e=setTimeout(()=>{b(!1)},Number.parseInt(getComputedStyle(document.documentElement).getPropertyValue("--consent-dialog-animation-duration")||"200",10));return()=>clearTimeout(e)}},[j,v]),"string"==typeof y?d=y:y&&"className"in y&&(d=y.className);let C=i(d,o);"object"==typeof y&&null!==y&&(p="style"in y||"className"in y?y.style:y);let O=r("consentDialogOverlay",{baseClassName:!(N||m)&&t.overlay,className:C,noStyle:N||m});f=N||m||v?void 0:h?t.overlayVisible:t.overlayHidden;let k=i(O.className,f);return e("div",{ref:u,...c,role:"presentation","aria-hidden":"true",style:{...O.style,...p},className:k,"data-testid":"consent-dialog-overlay"})});m.displayName="ConsentDialogOverlay";let y=m;export{m as ConsentDialogOverlay,y as Overlay};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const __rslib_import_meta_url__="u"<typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_require__={};__webpack_require__.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(t,{a:t}),t},__webpack_require__.d=(e,t)=>{for(var o in t)__webpack_require__.o(t,o)&&!__webpack_require__.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Footer:()=>Footer,ConsentWidgetFooter:()=>ConsentWidgetFooter,ConsentWidgetFooterSubGroup:()=>ConsentWidgetFooterSubGroup,FooterSubGroup:()=>FooterSubGroup});const jsx_runtime_namespaceObject=require("react/jsx-runtime"),consent_widget_module_js_namespaceObject=require("@c15t/ui/styles/components/consent-widget.module.js");var consent_widget_module_js_default=__webpack_require__.n(consent_widget_module_js_namespaceObject);const external_react_namespaceObject=require("react"),box_cjs_namespaceObject=require("../../shared/primitives/box.cjs"),ConsentWidgetFooter=(0,external_react_namespaceObject.forwardRef)(({children:e,...t},o)=>(0,jsx_runtime_namespaceObject.jsx)(box_cjs_namespaceObject.Box,{ref:o,baseClassName:consent_widget_module_js_default().footer,"data-testid":"consent-widget-footer",...t,themeKey:"consentWidgetFooter",children:e})),ConsentWidgetFooterSubGroup=(0,external_react_namespaceObject.forwardRef)(({children:e,...t},o)=>(0,jsx_runtime_namespaceObject.jsx)(box_cjs_namespaceObject.Box,{ref:o,baseClassName:consent_widget_module_js_default().footerSubGroup,"data-testid":"consent-widget-footer-sub-group",...t,themeKey:"
|
|
1
|
+
"use strict";const __rslib_import_meta_url__="u"<typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_require__={};__webpack_require__.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(t,{a:t}),t},__webpack_require__.d=(e,t)=>{for(var o in t)__webpack_require__.o(t,o)&&!__webpack_require__.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Footer:()=>Footer,ConsentWidgetFooter:()=>ConsentWidgetFooter,ConsentWidgetFooterSubGroup:()=>ConsentWidgetFooterSubGroup,FooterSubGroup:()=>FooterSubGroup});const jsx_runtime_namespaceObject=require("react/jsx-runtime"),consent_widget_module_js_namespaceObject=require("@c15t/ui/styles/components/consent-widget.module.js");var consent_widget_module_js_default=__webpack_require__.n(consent_widget_module_js_namespaceObject);const external_react_namespaceObject=require("react"),box_cjs_namespaceObject=require("../../shared/primitives/box.cjs"),ConsentWidgetFooter=(0,external_react_namespaceObject.forwardRef)(({children:e,...t},o)=>(0,jsx_runtime_namespaceObject.jsx)(box_cjs_namespaceObject.Box,{ref:o,baseClassName:consent_widget_module_js_default().footer,"data-testid":"consent-widget-footer",...t,themeKey:"consentWidgetFooter",children:e})),ConsentWidgetFooterSubGroup=(0,external_react_namespaceObject.forwardRef)(({children:e,...t},o)=>(0,jsx_runtime_namespaceObject.jsx)(box_cjs_namespaceObject.Box,{ref:o,baseClassName:consent_widget_module_js_default().footerSubGroup,"data-testid":"consent-widget-footer-sub-group",...t,themeKey:"consentWidgetFooterSubGroup",children:e})),Footer=ConsentWidgetFooter,FooterSubGroup=ConsentWidgetFooterSubGroup;for(var __rspack_i in exports.ConsentWidgetFooter=__webpack_exports__.ConsentWidgetFooter,exports.ConsentWidgetFooterSubGroup=__webpack_exports__.ConsentWidgetFooterSubGroup,exports.Footer=__webpack_exports__.Footer,exports.FooterSubGroup=__webpack_exports__.FooterSubGroup,__webpack_exports__)-1===["ConsentWidgetFooter","ConsentWidgetFooterSubGroup","Footer","FooterSubGroup"].indexOf(__rspack_i)&&(exports[__rspack_i]=__webpack_exports__[__rspack_i]);Object.defineProperty(exports,"__esModule",{value:!0});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e}from"react/jsx-runtime";import
|
|
1
|
+
import{jsx as e}from"react/jsx-runtime";import o from"@c15t/ui/styles/components/consent-widget.module.js";import{forwardRef as t}from"react";import{Box as r}from"../../shared/primitives/box.js";let s=t(({children:t,...s},i)=>e(r,{ref:i,baseClassName:o.footer,"data-testid":"consent-widget-footer",...s,themeKey:"consentWidgetFooter",children:t})),i=t(({children:t,...s},i)=>e(r,{ref:i,baseClassName:o.footerSubGroup,"data-testid":"consent-widget-footer-sub-group",...s,themeKey:"consentWidgetFooterSubGroup",children:t})),n=s,m=i;export{s as ConsentWidgetFooter,i as ConsentWidgetFooterSubGroup,n as Footer,m as FooterSubGroup};
|
package/dist/iab/styles.tw3.css
CHANGED
|
@@ -1,14 +1,57 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @c15t/react
|
|
2
|
+
* @c15t/react - Tailwind 3-compatible prebuilt component styles.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* Usage (src/index.css):
|
|
8
|
-
* @tailwind base;
|
|
9
|
-
* @tailwind components;
|
|
10
|
-
* @import "@c15t/react/styles.tw3.css";
|
|
11
|
-
* @import "@c15t/react/iab/styles.tw3.css";
|
|
12
|
-
* @tailwind utilities;
|
|
4
|
+
* This file inlines @c15t/ui CSS so bundlers that do not follow
|
|
5
|
+
* nested package CSS imports still include the complete stylesheet.
|
|
13
6
|
*/
|
|
14
|
-
|
|
7
|
+
/* primitives/accordion vars */
|
|
8
|
+
:root{--accordion-padding:var(--c15t-space-md);--accordion-radius:var(--c15t-radius-md);--accordion-duration:var(--c15t-duration-normal);--accordion-ease:var(--c15t-easing);--accordion-icon-size:1.25rem;--accordion-background-color:var(--c15t-surface);--accordion-background-color-dark:var(--c15t-surface);--accordion-background-hover:var(--c15t-surface-hover);--accordion-background-hover-dark:var(--c15t-surface-hover);--accordion-border-color:var(--c15t-border);--accordion-border-color-dark:var(--c15t-border);--accordion-text-color:var(--c15t-text);--accordion-text-color-dark:var(--c15t-text);--accordion-icon-color:var(--c15t-text-muted);--accordion-icon-color-dark:var(--c15t-text-muted);--accordion-arrow-color:var(--c15t-text-muted);--accordion-arrow-color-dark:var(--c15t-text-muted);--accordion-content-color:var(--c15t-text-muted);--accordion-content-color-dark:var(--c15t-text-muted);--accordion-focus-ring:var(--c15t-primary);--accordion-focus-ring-dark:var(--c15t-primary);--accordion-focus-shadow:0 0 0 2px var(--accordion-focus-ring);--accordion-focus-shadow-dark:0 0 0 2px var(--accordion-focus-ring-dark)}
|
|
9
|
+
|
|
10
|
+
/* primitives/button vars */
|
|
11
|
+
:root{--button-primary:var(--c15t-primary);--button-primary-dark:var(--c15t-primary);--button-primary-hover:var(--c15t-primary-hover);--button-primary-hover-dark:var(--c15t-primary-hover);--button-neutral:var(--c15t-text-muted);--button-neutral-dark:var(--c15t-text-muted);--button-neutral-hover:var(--c15t-text);--button-neutral-hover-dark:var(--c15t-text);--button-neutral-soft:var(--c15t-surface-hover);--button-neutral-soft-dark:var(--c15t-surface-hover);--button-focus-ring:var(--c15t-primary);--button-focus-ring-dark:var(--c15t-primary);--button-text:var(--c15t-text);--button-text-dark:var(--c15t-text);--button-text-hover:var(--c15t-text);--button-text-hover-dark:var(--c15t-text);--button-background-color:var(--c15t-surface);--button-background-color-dark:var(--c15t-surface);--button-border:var(--c15t-border);--button-border-dark:var(--c15t-border);--button-hover-overlay:var(--c15t-surface-hover);--button-hover-overlay-dark:var(--c15t-surface-hover);--button-primary-hover-tint:color-mix(in srgb, var(--c15t-primary) 10%, transparent);--button-neutral-hover-tint:color-mix(in srgb, var(--c15t-text) 10%, transparent);--button-font:var(--c15t-font-family);--button-border-width:1px;--button-border-style:solid;--button-border-color:var(--c15t-border);--button-border-radius:var(--c15t-radius-md);--button-font-weight:var(--c15t-font-weight-medium);--button-font-size:var(--c15t-font-size-sm);--button-line-height:var(--c15t-line-height-tight);--button-transition:opacity var(--c15t-duration-fast) var(--c15t-easing), transform var(--c15t-duration-fast) var(--c15t-easing);--button-hover-transition-color:background-color var(--c15t-duration-fast) var(--c15t-easing);--button-hover-transition-full:background-color var(--c15t-duration-fast) var(--c15t-easing), box-shadow var(--c15t-duration-fast) var(--c15t-easing), color var(--c15t-duration-fast) var(--c15t-easing);--button-cursor:pointer;--button-shadow:var(--c15t-shadow-sm);--button-shadow-dark:var(--c15t-shadow-sm);--button-shadow-primary-focus:0 0 0 2px var(--button-focus-ring);--button-shadow-neutral-focus:0 0 0 2px var(--button-focus-ring);--button-shadow-primary-focus-dark:0 0 0 2px var(--button-focus-ring-dark);--button-shadow-neutral-focus-dark:0 0 0 2px var(--button-focus-ring-dark);--button-shadow-primary:var(--button-shadow), inset 0 0 0 1px var(--button-primary);--button-shadow-primary-dark:var(--button-shadow-dark), inset 0 0 0 1px var(--button-primary-dark);--button-shadow-primary-hover:none;--button-shadow-primary-hover-dark:none;--button-shadow-neutral:var(--button-shadow), inset 0 0 0 1px var(--button-neutral-soft);--button-shadow-neutral-dark:var(--button-shadow-dark), inset 0 0 0 1px var(--button-neutral-soft-dark);--button-shadow-neutral-hover:none;--button-shadow-neutral-hover-dark:none}
|
|
12
|
+
|
|
13
|
+
/* primitives/collapsible vars */
|
|
14
|
+
:root{--collapsible-duration:var(--c15t-duration-normal);--collapsible-ease:var(--c15t-easing);--collapsible-content-color:var(--c15t-text-muted);--collapsible-gap:0}
|
|
15
|
+
|
|
16
|
+
/* primitives/legal-links vars */
|
|
17
|
+
:root{--legal-links-gap:.75rem;--legal-links-font-size:.875rem;--legal-links-transition:text-decoration .2s ease;--legal-links-text-decoration:none;--legal-links-text-decoration-hover:underline;--legal-links-outline:2px solid currentColor;--legal-links-outline-offset:2px;--legal-links-color:#476cff;--legal-links-focus-color:#476cff;--legal-links-focus-color-dark:#2547d0}
|
|
18
|
+
|
|
19
|
+
/* primitives/preference-item vars */
|
|
20
|
+
:root{--preference-item-gap:.75rem;--preference-item-leading-gap:.5rem;--preference-item-content-color:var(--c15t-text-muted);--preference-item-duration:var(--c15t-duration-normal);--preference-item-ease:var(--c15t-easing);--preference-item-focus-ring:var(--c15t-primary)}
|
|
21
|
+
|
|
22
|
+
/* primitives/tabs vars */
|
|
23
|
+
:root{--tabs-list-background:var(--c15t-surface);--tabs-list-border:var(--c15t-border);--tabs-trigger-color:var(--c15t-text-muted);--tabs-trigger-active-color:var(--c15t-text);--tabs-trigger-active-background:var(--c15t-surface-hover);--tabs-focus-ring:var(--c15t-primary)}
|
|
24
|
+
|
|
25
|
+
/* components/iab-consent-banner vars */
|
|
26
|
+
:root{--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-animation-duration:var(--c15t-duration-fast);--iab-consent-banner-animation-timing:var(--c15t-easing);--iab-consent-banner-entry-animation:c15t-ui-iabConsentBannerEnter-Pe3nZ var(--c15t-duration-fast) var(--c15t-easing);--iab-consent-banner-exit-animation:c15t-ui-iabConsentBannerExit-saqVJ var(--c15t-duration-fast) var(--c15t-easing);--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)}
|
|
27
|
+
:root{--iab-consent-banner-border-width-hairline:.5px}
|
|
28
|
+
|
|
29
|
+
/* components/iab-consent-dialog vars */
|
|
30
|
+
:root{--iab-cd-font-family:var(--c15t-font-family);--iab-cd-line-height:var(--c15t-line-height-tight);--iab-cd-title-font-size:1.125rem;--iab-cd-title-font-weight:var(--c15t-font-weight-semibold);--iab-cd-description-font-size:.75rem;--iab-cd-description-line-height:var(--c15t-line-height-normal);--iab-cd-background-color:var(--c15t-surface);--iab-cd-background-color-dark:var(--c15t-surface);--iab-cd-text-color:var(--c15t-text);--iab-cd-text-color-dark:var(--c15t-text);--iab-cd-text-muted-color:var(--c15t-text-muted);--iab-cd-text-muted-color-dark:var(--c15t-text-muted);--iab-cd-border-color:var(--c15t-border);--iab-cd-border-color-dark:var(--c15t-border);--iab-cd-overlay-background:var(--c15t-overlay);--iab-cd-overlay-background-dark:var(--c15t-overlay);--iab-cd-primary-color:var(--c15t-primary);--iab-cd-primary-color-dark:var(--c15t-primary);--iab-cd-surface-hover:var(--c15t-surface-hover);--iab-cd-surface-hover-dark:var(--c15t-surface-hover);--iab-cd-max-width:48rem;--iab-cd-max-height:85vh;--iab-cd-border-radius:var(--c15t-radius-lg);--iab-cd-z-index:1000000000;--iab-cd-overlay-z-index:1000000000;--iab-cd-padding:var(--c15t-space-md);--iab-cd-padding-sm:var(--c15t-space-sm);--iab-cd-gap:var(--c15t-space-sm);--iab-cd-animation-duration:var(--c15t-duration-normal);--iab-cd-animation-timing:ease-out;--iab-cd-shadow:var(--c15t-shadow-xl)}
|
|
31
|
+
|
|
32
|
+
/* primitives/accordion */
|
|
33
|
+
.c15t-ui-root-RhSvQ{&>:not([hidden])~:not([hidden]){--space-y-reverse:0;margin-top:calc(1rem * calc(1 - var(--space-y-reverse)));margin-bottom:calc(1rem * var(--space-y-reverse))}}.c15t-ui-item-v83OH{padding:var(--accordion-padding);background-color:var(--accordion-background-color);box-shadow:inset 0 0 0 1px var(--accordion-border-color);transition:background-color var(--accordion-duration) var(--accordion-ease), box-shadow var(--accordion-duration) var(--accordion-ease);border-radius:var(--accordion-radius);position:relative;overflow:visible}.c15t-dark .c15t-ui-item-v83OH{background-color:var(--accordion-background-color-dark);box-shadow:inset 0 0 0 1px var(--accordion-border-color-dark)}.c15t-ui-item-v83OH:is(:hover,[data-state=open]){background-color:var(--accordion-background-hover);box-shadow:inset 0 0 0 1px var(--accordion-border-color)}.c15t-dark .c15t-ui-item-v83OH:is(:hover,[data-state=open]){background-color:var(--accordion-background-hover-dark);box-shadow:inset 0 0 0 1px var(--accordion-border-color-dark)}.c15t-ui-item-v83OH:focus-within:not(:has(.c15t-ui-triggerInner-lwGP6:focus-visible)){background-color:var(--accordion-background-hover);box-shadow:inset 0 0 0 1px var(--accordion-border-color)}.c15t-dark .c15t-ui-item-v83OH:focus-within:not(:has(.c15t-ui-triggerInner-lwGP6:focus-visible)){background-color:var(--accordion-background-hover-dark);box-shadow:inset 0 0 0 1px var(--accordion-border-color-dark)}.c15t-ui-item-v83OH:has(.c15t-ui-triggerInner-lwGP6:focus-visible){box-shadow:var(--accordion-focus-shadow)}.c15t-dark .c15t-ui-item-v83OH:has(.c15t-ui-triggerInner-lwGP6:focus-visible){box-shadow:var(--accordion-focus-shadow-dark)}.c15t-ui-trigger-uhpMT{justify-content:space-between;align-items:center;width:100%;display:flex;position:relative;overflow:visible}.c15t-ui-triggerInner-lwGP6{letter-spacing:-.006em;text-align:left;width:100%;color:var(--accordion-text-color);cursor:pointer;border-radius:var(--accordion-radius);z-index:1;touch-action:manipulation;background:0 0;border:0;justify-content:flex-start;align-items:center;gap:.625rem;margin:0;padding:0;font-size:.875rem;font-weight:500;line-height:1.25rem;display:flex;position:relative}.c15t-ui-triggerInner-lwGP6 [data-slot=accordion-arrow]{margin-inline-start:auto}.c15t-dark .c15t-ui-triggerInner-lwGP6{color:var(--accordion-text-color-dark)}.c15t-ui-triggerInner-lwGP6:focus-visible{outline:none}.c15t-ui-icon-X1brh{width:var(--accordion-icon-size);height:var(--accordion-icon-size);color:var(--accordion-icon-color);flex-shrink:0}.c15t-dark .c15t-ui-icon-X1brh{color:var(--accordion-icon-color-dark)}.c15t-ui-arrowOpen-yE84x,.c15t-ui-arrowClose-QjqQt{width:var(--accordion-icon-size);height:var(--accordion-icon-size);transition:color var(--accordion-duration) var(--accordion-ease);flex-shrink:0;display:block}.c15t-ui-arrowOpen-yE84x{color:var(--accordion-arrow-color)}.c15t-dark .c15t-ui-arrowOpen-yE84x{color:var(--accordion-arrow-color-dark)}.c15t-ui-item-v83OH:hover .c15t-ui-arrowOpen-yE84x{color:var(--accordion-icon-color)}.c15t-dark .c15t-ui-item-v83OH:hover .c15t-ui-arrowOpen-yE84x{color:var(--accordion-icon-color-dark)}.c15t-ui-arrowClose-QjqQt{color:var(--accordion-icon-color);display:none}.c15t-dark .c15t-ui-arrowClose-QjqQt{color:var(--accordion-icon-color-dark)}.c15t-ui-item-v83OH[data-state=open] .c15t-ui-arrowOpen-yE84x{display:none}.c15t-ui-item-v83OH[data-state=open] .c15t-ui-arrowClose-QjqQt{display:block}.c15t-ui-content-YJGot{transition:grid-template-rows var(--accordion-duration) var(--accordion-ease);grid-template-rows:0fr;display:grid;overflow:hidden}.c15t-ui-content-YJGot[data-state=open]{grid-template-rows:1fr}.c15t-ui-content-YJGot[data-state=closed]{pointer-events:none}.c15t-ui-content-YJGot>[data-slot=accordion-content-viewport]{min-height:0;overflow:hidden}.c15t-ui-contentInner-lPIUe{letter-spacing:-.006em;color:var(--accordion-content-color);opacity:1;transition:opacity calc(var(--accordion-duration) * .35) ease-out, transform calc(var(--accordion-duration) * .35) ease-out;will-change:opacity, transform;padding-top:.75rem;font-size:.875rem;line-height:1.25rem;transform:translateY(0)}.c15t-ui-content-YJGot[data-state=closed] .c15t-ui-contentInner-lPIUe{opacity:0;transform:translateY(-.125rem)}.c15t-dark .c15t-ui-contentInner-lPIUe{color:var(--accordion-content-color-dark)}@media (prefers-reduced-motion:reduce){.c15t-ui-item-v83OH,.c15t-ui-content-YJGot,.c15t-ui-arrowOpen-yE84x,.c15t-ui-arrowClose-QjqQt{transition:none}}@media (hover:none){.c15t-ui-item-v83OH:hover{background-color:var(--accordion-background-color)}.c15t-ui-item-v83OH:hover .c15t-ui-arrowOpen-yE84x{color:var(--accordion-arrow-color)}}
|
|
34
|
+
|
|
35
|
+
/* primitives/button */
|
|
36
|
+
.c15t-ui-button-Lo5cc{border-radius:var(--button-border-radius);font-weight:var(--button-font-weight);transition:var(--button-transition);cursor:var(--button-cursor);border:var(--button-border-width) var(--button-border-style) var(--button-border-color);font-size:var(--button-font-size);line-height:var(--button-line-height);color:var(--button-text);font-family:var(--button-font);touch-action:manipulation;justify-content:center;align-items:center;gap:.5rem;display:inline-flex}.c15t-ui-button-Lo5cc:focus-visible{box-shadow:var(--button-shadow-primary-focus);outline:none}.c15t-dark .c15t-ui-button-Lo5cc:focus-visible{box-shadow:var(--button-shadow-primary-focus-dark)}.c15t-dark .c15t-ui-button-Lo5cc{color:var(--button-text-dark)}.c15t-ui-button-Lo5cc:disabled{opacity:.5;cursor:not-allowed}.c15t-ui-button-Lo5cc:active:not(:disabled){transform:scale(.97)}.c15t-ui-button-medium-zdZk5{font-size:var(--button-font-size);line-height:var(--button-line-height);padding:.625rem 1rem}.c15t-ui-button-small-nclev{font-size:var(--button-font-size);line-height:var(--button-line-height);padding:.5rem .75rem}.c15t-ui-button-xsmall-xj0Fq{font-size:var(--button-font-size);line-height:var(--button-line-height);padding:.375rem .625rem}.c15t-ui-button-xxsmall-qDcpO{font-size:var(--button-font-size);line-height:var(--button-line-height);padding:.25rem .5rem}.c15t-ui-button-primary-filled-u895k{background-color:var(--button-primary);color:var(--button-background-color)}.c15t-ui-button-primary-filled-u895k:focus-visible{box-shadow:var(--button-shadow-primary-focus)}.c15t-dark .c15t-ui-button-primary-filled-u895k{background-color:var(--button-primary-dark);color:var(--button-background-color-dark)}.c15t-ui-button-primary-filled-u895k:hover:not(:disabled){background-color:var(--button-primary-hover);transition:var(--button-hover-transition-color)}.c15t-dark .c15t-ui-button-primary-filled-u895k:hover:not(:disabled){background-color:var(--button-primary-hover-dark);transition:var(--button-hover-transition-color)}.c15t-ui-button-primary-stroke-rMkBn{background-color:var(--button-background-color);color:var(--button-primary);box-shadow:var(--button-shadow-primary)}.c15t-dark .c15t-ui-button-primary-stroke-rMkBn{background-color:var(--button-background-color-dark);color:var(--button-primary-dark);box-shadow:var(--button-shadow-primary-dark)}.c15t-ui-button-primary-stroke-rMkBn:hover:not(:disabled){background-color:var(--button-primary-hover-tint);box-shadow:var(--button-shadow-primary-hover);transition:var(--button-hover-transition-full)}.c15t-dark .c15t-ui-button-primary-stroke-rMkBn:hover:not(:disabled){background-color:var(--button-primary-hover-tint);box-shadow:var(--button-shadow-primary-hover-dark);transition:var(--button-hover-transition-full)}.c15t-ui-button-primary-lighter-pa1_G{background-color:color-mix(in srgb, var(--button-primary) 10%, transparent);color:color-mix(in srgb, var(--button-primary) 85%, black)}.c15t-dark .c15t-ui-button-primary-lighter-pa1_G{background-color:color-mix(in srgb, var(--button-primary-dark) 10%, transparent);color:var(--button-primary-dark)}.c15t-ui-button-primary-lighter-pa1_G:hover:not(:disabled){background-color:color-mix(in srgb, var(--button-primary) 20%, transparent);transition:var(--button-hover-transition-color)}.c15t-dark .c15t-ui-button-primary-lighter-pa1_G:hover:not(:disabled){background-color:color-mix(in srgb, var(--button-primary-dark) 20%, transparent);transition:var(--button-hover-transition-color)}.c15t-ui-button-primary-ghost-gUXbr{color:var(--button-primary)}.c15t-dark .c15t-ui-button-primary-ghost-gUXbr{color:var(--button-primary-dark)}.c15t-ui-button-primary-ghost-gUXbr:hover:not(:disabled),.c15t-dark .c15t-ui-button-primary-ghost-gUXbr:hover:not(:disabled){background-color:var(--button-primary-hover-tint);transition:var(--button-hover-transition-color)}.c15t-ui-button-neutral-filled-iBUdt{background-color:var(--button-neutral);color:var(--button-background-color)}.c15t-ui-button-neutral-filled-iBUdt:focus-visible{box-shadow:var(--button-shadow-neutral-focus)}.c15t-dark .c15t-ui-button-neutral-filled-iBUdt{background-color:var(--button-neutral-dark);color:var(--button-background-color-dark)}.c15t-ui-button-neutral-filled-iBUdt:hover:not(:disabled){background-color:var(--button-neutral-hover);box-shadow:none;transition:var(--button-hover-transition-color)}.c15t-dark .c15t-ui-button-neutral-filled-iBUdt:hover:not(:disabled){background-color:var(--button-neutral-hover-dark);box-shadow:none;transition:var(--button-hover-transition-color)}.c15t-ui-button-neutral-stroke-FNAAx{background-color:var(--button-background-color);box-shadow:var(--button-shadow-neutral)}.c15t-dark .c15t-ui-button-neutral-stroke-FNAAx{background-color:var(--button-background-color-dark);box-shadow:var(--button-shadow-neutral-dark)}.c15t-ui-button-neutral-stroke-FNAAx:hover:not(:disabled){background-color:var(--button-neutral-hover-tint);box-shadow:none;color:var(--button-text-hover);transition:var(--button-hover-transition-full)}.c15t-dark .c15t-ui-button-neutral-stroke-FNAAx:hover:not(:disabled){background-color:var(--button-neutral-hover-tint);box-shadow:none;color:var(--button-text-hover-dark);transition:var(--button-hover-transition-full)}.c15t-ui-button-neutral-lighter-CHsDA{background-color:color-mix(in srgb, var(--button-neutral) 10%, transparent);color:var(--button-neutral)}.c15t-dark .c15t-ui-button-neutral-lighter-CHsDA{background-color:color-mix(in srgb, var(--button-neutral-dark) 10%, transparent);color:var(--button-neutral-dark)}.c15t-ui-button-neutral-lighter-CHsDA:hover:not(:disabled){background-color:color-mix(in srgb, var(--button-neutral) 20%, transparent);transition:var(--button-hover-transition-color)}.c15t-dark .c15t-ui-button-neutral-lighter-CHsDA:hover:not(:disabled){background-color:color-mix(in srgb, var(--button-neutral-dark) 20%, transparent);transition:var(--button-hover-transition-color)}.c15t-ui-button-neutral-ghost-a6Cdw{color:var(--button-neutral)}.c15t-dark .c15t-ui-button-neutral-ghost-a6Cdw{color:var(--button-neutral-dark)}.c15t-ui-button-neutral-ghost-a6Cdw:hover:not(:disabled),.c15t-dark .c15t-ui-button-neutral-ghost-a6Cdw:hover:not(:disabled){background-color:var(--button-neutral-hover-tint);box-shadow:none;transition:var(--button-hover-transition-color)}.c15t-ui-button-icon-JD5sB{justify-content:center;align-items:center;display:inline-flex}@media (prefers-reduced-motion:reduce){.c15t-ui-button-Lo5cc,.c15t-ui-button-primary-filled-u895k:hover:not(:disabled),.c15t-ui-button-primary-stroke-rMkBn:hover:not(:disabled),.c15t-ui-button-primary-lighter-pa1_G:hover:not(:disabled),.c15t-ui-button-primary-ghost-gUXbr:hover:not(:disabled),.c15t-ui-button-neutral-filled-iBUdt:hover:not(:disabled),.c15t-ui-button-neutral-stroke-FNAAx:hover:not(:disabled),.c15t-ui-button-neutral-lighter-CHsDA:hover:not(:disabled),.c15t-ui-button-neutral-ghost-a6Cdw:hover:not(:disabled){transition:none}}@media (hover:none){.c15t-ui-button-primary-filled-u895k:hover:not(:disabled){background-color:var(--button-primary)}.c15t-ui-button-primary-stroke-rMkBn:hover:not(:disabled){background-color:var(--button-background-color);box-shadow:var(--button-shadow-primary)}.c15t-ui-button-primary-lighter-pa1_G:hover:not(:disabled){background-color:color-mix(in srgb, var(--button-primary) 10%, transparent)}.c15t-ui-button-primary-ghost-gUXbr:hover:not(:disabled){background-color:#0000}.c15t-ui-button-neutral-filled-iBUdt:hover:not(:disabled){background-color:var(--button-neutral)}.c15t-ui-button-neutral-stroke-FNAAx:hover:not(:disabled){background-color:var(--button-background-color);box-shadow:var(--button-shadow-neutral)}.c15t-ui-button-neutral-lighter-CHsDA:hover:not(:disabled){background-color:color-mix(in srgb, var(--button-neutral) 10%, transparent)}.c15t-ui-button-neutral-ghost-a6Cdw:hover:not(:disabled){background-color:#0000}}
|
|
37
|
+
|
|
38
|
+
/* primitives/collapsible */
|
|
39
|
+
.c15t-ui-root-l7ccU{row-gap:var(--collapsible-gap);transition:row-gap var(--collapsible-duration) var(--collapsible-ease);width:100%;display:grid}.c15t-ui-root-l7ccU[data-state=closed]{row-gap:0}.c15t-ui-trigger-YLS2g{color:var(--c15t-text);cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:.5rem;padding:0;display:inline-flex}.c15t-ui-trigger-YLS2g:focus-visible{outline:2px solid var(--c15t-primary);outline-offset:2px}.c15t-ui-content-Yjdia{transition:grid-template-rows var(--collapsible-duration) var(--collapsible-ease);grid-template-rows:0fr;display:grid;overflow:hidden}.c15t-ui-content-Yjdia[data-state=open]{grid-template-rows:1fr}.c15t-ui-content-Yjdia[data-state=closed]{pointer-events:none}.c15t-ui-contentViewport-L7bt7{min-height:0;overflow:hidden}.c15t-ui-contentInner-zoLX2{color:var(--collapsible-content-color);opacity:1;transition:opacity calc(var(--collapsible-duration) * .35) ease-out, transform calc(var(--collapsible-duration) * .35) ease-out;will-change:opacity, transform;transform:translateY(0)}.c15t-ui-content-Yjdia[data-state=closed] .c15t-ui-contentInner-zoLX2{opacity:0;transform:translateY(-.125rem)}@media (prefers-reduced-motion:reduce){.c15t-ui-root-l7ccU,.c15t-ui-content-Yjdia,.c15t-ui-contentInner-zoLX2{transition:none}}
|
|
40
|
+
|
|
41
|
+
/* primitives/legal-links */
|
|
42
|
+
.c15t-ui-legalLinks-xVTMr{gap:var(--legal-links-gap);flex-wrap:wrap;align-items:center;display:flex}.c15t-ui-legalLink-YVZqO{color:var(--legal-links-color);-webkit-text-decoration:var(--legal-links-text-decoration);-webkit-text-decoration:var(--legal-links-text-decoration);text-decoration:var(--legal-links-text-decoration);font-size:var(--legal-links-font-size);transition:var(--legal-links-transition)}.c15t-dark .c15t-ui-legalLink-YVZqO{color:var(--legal-links-focus-color-dark)}.c15t-ui-legalLink-YVZqO:hover{-webkit-text-decoration:var(--legal-links-text-decoration-hover);-webkit-text-decoration:var(--legal-links-text-decoration-hover);text-decoration:var(--legal-links-text-decoration-hover)}.c15t-ui-legalLink-YVZqO:focus{outline:none;text-decoration:underline}@media (prefers-reduced-motion:reduce){.c15t-ui-legalLink-YVZqO{transition:none}}
|
|
43
|
+
|
|
44
|
+
/* primitives/preference-item */
|
|
45
|
+
.c15t-ui-root-uVKV9{align-items:start;column-gap:var(--preference-item-gap);grid-template-columns:minmax(0,1fr) auto;row-gap:0;width:100%;display:grid}.c15t-ui-trigger-KE13P{align-items:flex-start;gap:var(--preference-item-leading-gap);text-align:left;width:100%;min-width:0;color:var(--c15t-text);cursor:pointer;background:0 0;border:0;padding:0;display:flex}.c15t-ui-trigger-KE13P:focus-visible{outline:2px solid var(--preference-item-focus-ring);outline-offset:2px}.c15t-ui-leading-R7F08{flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.c15t-ui-header-OUsAl{flex-direction:column;flex:1;min-width:0;display:flex}.c15t-ui-title-D6JTo{color:var(--c15t-text);font:inherit;min-width:0;margin:0}.c15t-ui-meta-G2S5Z{color:var(--c15t-text-muted);font:inherit;margin:0}.c15t-ui-auxiliary-jJSI7{flex-wrap:wrap;align-items:center;gap:.375rem;min-width:0;display:flex}.c15t-ui-control-Dg8Bo{flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.c15t-ui-content-VkWDD{transition:grid-template-rows var(--preference-item-duration) var(--preference-item-ease);grid-column:1/-1;grid-template-rows:0fr;display:grid;overflow:hidden}.c15t-ui-content-VkWDD[data-state=open]{grid-template-rows:1fr}.c15t-ui-content-VkWDD[data-state=closed]{pointer-events:none}.c15t-ui-contentViewport-BOKhf{min-height:0;overflow:hidden}.c15t-ui-contentInner-m2ifM{color:var(--preference-item-content-color)}@media (prefers-reduced-motion:reduce){.c15t-ui-content-VkWDD{transition:none}}
|
|
46
|
+
|
|
47
|
+
/* primitives/switch */
|
|
48
|
+
.c15t-ui-root-Pd0rf{--switch-height:1.25rem;--switch-width:2rem;--switch-padding:.125rem;--switch-duration:var(--c15t-duration-normal);--switch-ease:var(--c15t-easing);--switch-thumb-size:.75rem;--switch-thumb-size-disabled:.625rem;--switch-thumb-translate:calc(var(--switch-width) - var(--switch-thumb-size) - 2 * var(--switch-padding));--switch-background-color:var(--c15t-switch-track);--switch-background-color-dark:var(--c15t-switch-track);--switch-background-color-hover:var(--c15t-surface-hover);--switch-background-color-hover-dark:var(--c15t-surface-hover);--switch-background-color-checked:var(--c15t-switch-track-active);--switch-background-color-checked-dark:var(--c15t-switch-track-active);--switch-background-color-disabled:var(--c15t-border);--switch-background-color-disabled-dark:var(--c15t-border);--switch-thumb-background-color:var(--c15t-switch-thumb);--switch-thumb-background-color-dark:var(--c15t-switch-thumb);--switch-thumb-background-color-disabled:var(--c15t-surface-hover);--switch-thumb-background-color-disabled-dark:var(--c15t-surface-hover);--switch-shadow-thumb:0 0 0 1px var(--c15t-border);--switch-shadow-thumb-dark:0 0 0 1px var(--c15t-border);--switch-focus-ring:var(--c15t-primary);--switch-focus-ring-dark:var(--c15t-primary);--switch-focus-shadow:0 0 0 2px var(--switch-focus-ring);--switch-focus-shadow-dark:0 0 0 2px var(--switch-focus-ring-dark);height:var(--switch-height);width:var(--switch-width);box-sizing:border-box;white-space:nowrap;touch-action:manipulation;background:0 0;border:0;border-radius:9999px;outline:none;flex-shrink:0;margin:0;padding:0;font-family:inherit;font-size:100%;line-height:1.15;display:block}.c15t-ui-track-kWz9_{box-sizing:border-box;width:100%;height:100%;padding:var(--switch-padding);background-color:var(--switch-background-color);transition:background-color var(--switch-duration) var(--switch-ease);border-radius:9999px;outline:none;align-items:center;display:flex;position:relative;overflow:hidden}.c15t-dark .c15t-ui-track-kWz9_{background-color:var(--switch-background-color-dark)}.c15t-ui-track-kWz9_:hover{background-color:var(--switch-background-color-hover)}.c15t-dark .c15t-ui-track-kWz9_:hover{background-color:var(--switch-background-color-hover-dark)}.c15t-ui-track-kWz9_:focus-visible{background-color:var(--switch-background-color-hover)}.c15t-dark .c15t-ui-track-kWz9_:focus-visible{background-color:var(--switch-background-color-hover-dark)}.c15t-ui-track-kWz9_:active{background-color:var(--switch-background-color)}.c15t-dark .c15t-ui-track-kWz9_:active{background-color:var(--switch-background-color-dark)}.c15t-ui-root-Pd0rf[data-state=checked] .c15t-ui-track-kWz9_{background-color:var(--switch-background-color-checked)}.c15t-dark .c15t-ui-root-Pd0rf[data-state=checked] .c15t-ui-track-kWz9_{background-color:var(--switch-background-color-checked-dark)}.c15t-ui-root-Pd0rf[data-state=checked]:hover .c15t-ui-track-kWz9_{background-color:var(--switch-background-color-checked)}.c15t-dark .c15t-ui-root-Pd0rf[data-state=checked]:hover .c15t-ui-track-kWz9_{background-color:var(--switch-background-color-checked-dark)}.c15t-ui-root-Pd0rf[data-disabled]{cursor:not-allowed}.c15t-ui-root-Pd0rf:focus,.c15t-dark .c15t-ui-root-Pd0rf:focus{outline:none}.c15t-ui-track-disabled-VxwND{background-color:var(--switch-background-color-disabled);opacity:.4;box-shadow:inset 0 0 0 1px #ebebeb}.c15t-dark .c15t-ui-track-disabled-VxwND{background-color:var(--switch-background-color-disabled-dark)}.c15t-ui-root-Pd0rf[data-state=checked] .c15t-ui-track-disabled-VxwND{background-color:var(--switch-background-color-checked);opacity:.4;box-shadow:none}.c15t-dark .c15t-ui-root-Pd0rf[data-state=checked] .c15t-ui-track-disabled-VxwND{background-color:var(--switch-background-color-checked-dark)}.c15t-ui-thumb-mP7_o{box-sizing:border-box;pointer-events:none;width:var(--switch-thumb-size);height:var(--switch-thumb-size);transition:transform var(--switch-duration) var(--switch-ease);display:block;position:relative;transform:translate(0)}.c15t-ui-thumb-mP7_o:before{content:"";box-sizing:border-box;background-color:var(--switch-thumb-background-color);inset-block:0;border-radius:9999px;width:100%;position:absolute;left:0;mask:radial-gradient(circle farthest-side,#0000 1.95px,#000 2.05px 100%) 50%/100% 100% no-repeat}.c15t-dark .c15t-ui-thumb-mP7_o:before{background-color:var(--switch-thumb-background-color-dark)}.c15t-ui-thumb-mP7_o:after{content:"";box-sizing:border-box;width:100%;box-shadow:var(--switch-shadow-thumb);inset-block:0;border-radius:9999px;position:absolute;left:0}.c15t-dark .c15t-ui-thumb-mP7_o:after{box-shadow:var(--switch-shadow-thumb-dark)}.c15t-ui-root-Pd0rf[data-state=checked] .c15t-ui-thumb-mP7_o{transform:translateX(var(--switch-thumb-translate))}.c15t-ui-root-Pd0rf[dir=rtl][data-state=checked] .c15t-ui-thumb-mP7_o{transform:translateX(calc(-1 * var(--switch-thumb-translate)))}.c15t-ui-track-kWz9_:active .c15t-ui-thumb-mP7_o{transform:scale(.833)}.c15t-ui-thumb-disabled-fwQIy{box-shadow:none}.c15t-ui-root-Pd0rf[data-state=checked] .c15t-ui-thumb-disabled-fwQIy{transform:translateX(var(--switch-thumb-translate))}.c15t-ui-root-small-n0CMO{--switch-height:1rem;--switch-width:1.75rem;--switch-padding:.125rem;--switch-thumb-size:.625rem;--switch-thumb-size-disabled:.5rem;--switch-thumb-translate:calc(var(--switch-width) - var(--switch-thumb-size) - 2 * var(--switch-padding))}.c15t-ui-track-small-Ie8K6{width:100%;height:100%}.c15t-ui-thumb-small-uBOCk{width:var(--switch-thumb-size);height:var(--switch-thumb-size)}.c15t-ui-root-Pd0rf:focus-visible{outline:none}.c15t-ui-root-Pd0rf:focus-visible .c15t-ui-track-kWz9_{outline:2px solid var(--switch-focus-ring);outline-offset:2px}.c15t-dark .c15t-ui-root-Pd0rf:focus-visible .c15t-ui-track-kWz9_{outline-color:var(--switch-focus-ring-dark)}@media (prefers-reduced-motion:reduce){.c15t-ui-track-kWz9_,.c15t-ui-thumb-mP7_o{transition:none}}@media (hover:none){.c15t-ui-track-kWz9_:hover{background-color:var(--switch-background-color)}.c15t-ui-root-Pd0rf[data-state=checked] .c15t-ui-track-kWz9_:hover{background-color:var(--switch-background-color-checked)}}
|
|
49
|
+
|
|
50
|
+
/* primitives/tabs */
|
|
51
|
+
.c15t-ui-root-S5pMJ{gap:1rem;width:100%;display:grid}.c15t-ui-list-BZaPj{background:var(--tabs-list-background);border:1px solid var(--tabs-list-border);border-radius:var(--c15t-radius-md);grid-auto-flow:column;align-items:center;gap:.25rem;width:fit-content;padding:.25rem;display:inline-grid}.c15t-ui-list-vertical-cP2o0{grid-auto-flow:row}.c15t-ui-trigger-U8k4E{border-radius:calc(var(--c15t-radius-md) - .25rem);color:var(--tabs-trigger-color);cursor:pointer;font:inherit;transition:background-color var(--c15t-duration-fast) ease, color var(--c15t-duration-fast) ease;background:0 0;border:0;padding:.625rem .875rem;font-weight:500}.c15t-ui-trigger-U8k4E[data-state=active]{background:var(--tabs-trigger-active-background);color:var(--tabs-trigger-active-color)}.c15t-ui-trigger-U8k4E:focus-visible{outline:2px solid var(--tabs-focus-ring);outline-offset:2px}.c15t-ui-content-Iyncb{color:var(--c15t-text)}
|
|
52
|
+
|
|
53
|
+
/* components/iab-consent-banner */
|
|
54
|
+
.c15t-ui-root-ohkUO{box-sizing:border-box;z-index:999999998;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-bannerVisible-mCqjY{opacity:1;transition:opacity var(--iab-consent-banner-animation-duration) var(--iab-consent-banner-animation-timing), transform var(--iab-consent-banner-animation-duration) cubic-bezier(.34, 1.56, .64, 1);transform:scale(1)}.c15t-ui-bannerHidden-gf6eK{opacity:0;transition:opacity var(--iab-consent-banner-animation-duration) var(--iab-consent-banner-animation-timing), transform var(--iab-consent-banner-animation-duration) var(--iab-consent-banner-animation-timing);transform:scale(.95)}@media (width>=640px){.c15t-ui-root-ohkUO{padding:1.5rem}}.c15t-ui-cardShell-Tur19{width:min(100%, var(--iab-consent-banner-max-width));flex-direction:column;display:flex}.c15t-ui-card-UZXwa{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-UZXwa{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-UZXwa[data-state=open]{animation:var(--iab-consent-banner-entry-animation)}.c15t-ui-card-UZXwa[data-state=closed]{animation:var(--iab-consent-banner-exit-animation)}.c15t-ui-card-UZXwa>: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-UZXwa>:not([hidden])~:not([hidden]){border-color:var(--iab-consent-banner-border-color-dark)}.c15t-ui-card-UZXwa:focus{outline-offset:2px;outline:none}@keyframes c15t-ui-iabConsentBannerEnter-Pe3nZ{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes c15t-ui-iabConsentBannerExit-saqVJ{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}.c15t-ui-header-vZPUf{color:var(--iab-consent-banner-text-color);flex-direction:column;gap:.5rem;padding:1.25rem;display:flex}.c15t-dark .c15t-ui-header-vZPUf{color:var(--iab-consent-banner-text-color-dark)}@media (width>=640px){.c15t-ui-header-vZPUf{padding:1.5rem}}.c15t-ui-title-jG39K{letter-spacing:-.011em;color:var(--iab-consent-banner-title-color);margin:0;font-size:1.125rem;font-weight:600;line-height:1.5rem}.c15t-dark .c15t-ui-title-jG39K{color:var(--iab-consent-banner-title-color-dark)}.c15t-ui-description-zvYpT{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-zvYpT{color:var(--iab-consent-banner-description-color-dark)}.c15t-ui-partnersLink-Adxgr{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-Adxgr:hover{text-decoration:underline}.c15t-dark .c15t-ui-partnersLink-Adxgr{color:var(--iab-consent-banner-link-color-dark)}.c15t-ui-purposeList-uJSoO{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-uJSoO li{margin-bottom:.25rem}.c15t-dark .c15t-ui-purposeList-uJSoO{color:var(--iab-consent-banner-description-color-dark)}.c15t-ui-legitimateInterestNotice-yZmKl{color:var(--iab-consent-banner-description-color);margin-top:.25rem;font-size:.8125rem;line-height:1.5}.c15t-dark .c15t-ui-legitimateInterestNotice-yZmKl{color:var(--iab-consent-banner-description-color-dark)}.c15t-ui-privacyLink-sIqYI{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-sIqYI:hover{text-decoration:underline}.c15t-dark .c15t-ui-privacyLink-sIqYI{color:var(--iab-consent-banner-link-color-dark)}.c15t-ui-footer-YMUGl{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-YMUGl{background-color:var(--iab-consent-banner-footer-background-color-dark)}@media (width>=640px){.c15t-ui-footer-YMUGl{flex-direction:row;padding:1rem}}.c15t-ui-footerButtonGroup-WiFbg{flex-direction:row;gap:.5rem;display:flex}.c15t-ui-footerSpacer-lniRb,.c15t-ui-rejectButton-UHGRK,.c15t-ui-acceptButton-_VyN6,.c15t-ui-customizeButton-TV7Im{flex:1}@media (width>=640px){.c15t-ui-rejectButton-UHGRK,.c15t-ui-acceptButton-_VyN6,.c15t-ui-customizeButton-TV7Im{flex:none}}.c15t-ui-overlay-l1gsp{background-color:var(--iab-consent-banner-overlay-background-color);z-index:999999997;position:fixed;inset:0}.c15t-ui-overlayVisible-A4Wuk{opacity:1;transition:opacity var(--iab-consent-banner-animation-duration) var(--iab-consent-banner-animation-timing)}.c15t-ui-overlayHidden-Fawca{opacity:0;transition:opacity var(--iab-consent-banner-animation-duration) var(--iab-consent-banner-animation-timing)}.c15t-dark .c15t-ui-overlay-l1gsp{background-color:var(--iab-consent-banner-overlay-background-color-dark)}@media (prefers-reduced-motion:reduce){.c15t-ui-bannerVisible-mCqjY,.c15t-ui-bannerHidden-gf6eK,.c15t-ui-overlayVisible-A4Wuk,.c15t-ui-overlayHidden-Fawca{transition:none}.c15t-ui-card-UZXwa[data-state=open],.c15t-ui-card-UZXwa[data-state=closed]{animation:none}}
|
|
55
|
+
|
|
56
|
+
/* components/iab-consent-dialog */
|
|
57
|
+
.c15t-ui-root-oQ3Q4{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-PUG1v{opacity:1;transition:opacity var(--iab-cd-animation-duration) var(--iab-cd-animation-timing)}.c15t-ui-dialogHidden-FoTkw{opacity:0;transition:opacity var(--iab-cd-animation-duration) var(--iab-cd-animation-timing)}.c15t-ui-contentVisible-G8YSA{opacity:1;transition:opacity var(--iab-cd-animation-duration) var(--iab-cd-animation-timing), transform var(--iab-cd-animation-duration) cubic-bezier(.34, 1.56, .64, 1);transform:scale(1)}.c15t-ui-contentHidden-iYnZI{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-h1Tzu{background-color:var(--iab-cd-overlay-background);z-index:var(--iab-cd-overlay-z-index);position:fixed;inset:0}.c15t-ui-overlayVisible-HizR9{opacity:1;transition:opacity var(--iab-cd-animation-duration) var(--iab-cd-animation-timing)}.c15t-ui-overlayHidden-IFPwA{opacity:0;transition:opacity var(--iab-cd-animation-duration) var(--iab-cd-animation-timing)}.c15t-dark .c15t-ui-overlay-h1Tzu{background-color:var(--iab-cd-overlay-background-dark)}.c15t-ui-card-iVcxY{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-iVcxY{background-color:var(--iab-cd-background-color-dark);border-color:var(--iab-cd-border-color-dark)}.c15t-ui-header-q_v_l{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-q_v_l{border-color:var(--iab-cd-border-color-dark)}@media (width>=768px){.c15t-ui-header-q_v_l{padding:1rem}}.c15t-ui-headerContent-BVSE_{flex:1}.c15t-ui-title-Rrshj{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-Rrshj{color:var(--iab-cd-text-color-dark)}.c15t-ui-description-wjYno{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-wjYno{color:var(--iab-cd-text-muted-color-dark)}.c15t-ui-closeButton-wGCHD{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-wGCHD:hover{background-color:var(--iab-cd-surface-hover)}.c15t-dark .c15t-ui-closeButton-wGCHD{color:var(--iab-cd-text-muted-color-dark)}.c15t-dark .c15t-ui-closeButton-wGCHD:hover{background-color:var(--iab-cd-surface-hover-dark)}.c15t-ui-body-p4KhY{flex-direction:column;flex:auto;min-height:0;display:flex;overflow:hidden}.c15t-ui-tabsContainer-aTkFk{flex-shrink:0;padding:.75rem .75rem 0}@media (width>=768px){.c15t-ui-tabsContainer-aTkFk{padding:1rem 1rem 0}}.c15t-ui-tabsList-BI6D3{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-BI6D3{background-color:var(--iab-cd-surface-hover-dark)}.c15t-ui-tabButton-xZKks{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-xZKks:hover{color:var(--iab-cd-text-color)}.c15t-ui-tabButton-xZKks:focus-visible{outline:2px solid var(--iab-cd-primary-color);outline-offset:2px}.c15t-ui-tabButton-xZKks[data-state=active]{color:var(--iab-cd-text-color)}.c15t-dark .c15t-ui-tabButton-xZKks{color:var(--iab-cd-text-muted-color-dark)}.c15t-dark .c15t-ui-tabButton-xZKks:hover,.c15t-dark .c15t-ui-tabButton-xZKks[data-state=active]{color:var(--iab-cd-text-color-dark)}.c15t-ui-tabIndicator-bGaYj{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-bGaYj{background-color:var(--iab-cd-background-color-dark);box-shadow:0 1px 2px #0003,0 1px 3px #0000004d}.c15t-ui-tabIndicator-bGaYj[data-active-tab=purposes]{width:calc(50% - .125rem);left:.25rem;transform:translate(0)}.c15t-ui-tabIndicator-bGaYj[data-active-tab=vendors]{width:calc(50% - .125rem);left:.125rem;transform:translate(100%)}.c15t-ui-content-HHYIK{flex:auto;min-height:0;padding:.75rem;overflow:hidden auto}@media (width>=768px){.c15t-ui-content-HHYIK{padding:1rem}}.c15t-ui-purposeItem-bTIsY{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-bTIsY{border-color:var(--iab-cd-border-color-dark);background-color:var(--iab-cd-background-color-dark)}.c15t-ui-purposeHeader-foPCp{justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.75rem;display:flex}.c15t-ui-purposeTrigger-cB3th{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-oJXon{width:1rem;height:1rem;color:var(--iab-cd-text-muted-color);flex-shrink:0}.c15t-dark .c15t-ui-purposeArrow-oJXon{color:var(--iab-cd-text-muted-color-dark)}.c15t-ui-purposeInfo-liE3b{flex:1;min-width:0}.c15t-ui-purposeName-zDAD_{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-zDAD_{color:var(--iab-cd-text-color-dark)}.c15t-ui-lockIcon-G9Bb9{width:.75rem;height:.75rem;color:var(--iab-cd-text-muted-color)}.c15t-dark .c15t-ui-lockIcon-G9Bb9{color:var(--iab-cd-text-muted-color-dark)}.c15t-ui-purposeMeta-jIesh{color:var(--iab-cd-text-muted-color);margin:.125rem 0 0;font-size:.75rem}.c15t-dark .c15t-ui-purposeMeta-jIesh{color:var(--iab-cd-text-muted-color-dark)}.c15t-ui-legitimateInterestBadge-eFgxM{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-MdoA6{width:.75rem;height:.75rem}.c15t-ui-purposeContent-ufSwo{border-top:1px solid var(--iab-cd-border-color);margin-top:.75rem;padding:.75rem}.c15t-dark .c15t-ui-purposeContent-ufSwo{border-color:var(--iab-cd-border-color-dark)}.c15t-ui-purposeDescription-TlhAc{color:var(--iab-cd-text-muted-color);margin:0;font-size:.75rem;line-height:1.5}.c15t-dark .c15t-ui-purposeDescription-TlhAc{color:var(--iab-cd-text-muted-color-dark)}.c15t-ui-examplesToggle-sX0IF{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-sX0IF:hover{color:var(--iab-cd-primary-color)}.c15t-dark .c15t-ui-examplesToggle-sX0IF{color:var(--iab-cd-text-color-dark)}.c15t-dark .c15t-ui-examplesToggle-sX0IF:hover{color:var(--iab-cd-primary-color-dark)}.c15t-ui-examplesList-zB8Gu{margin:.375rem 0 0;padding-left:1rem;list-style-type:disc}.c15t-ui-examplesList-zB8Gu li{color:var(--iab-cd-text-muted-color);font-size:.75rem;line-height:1.5}.c15t-dark .c15t-ui-examplesList-zB8Gu li{color:var(--iab-cd-text-muted-color-dark)}.c15t-ui-vendorsToggle-uCSbo{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-uCSbo:hover{color:var(--iab-cd-primary-color)}.c15t-dark .c15t-ui-vendorsToggle-uCSbo{color:var(--iab-cd-text-color-dark)}.c15t-ui-vendorSection-jLX4W{z-index:1;margin-top:.375rem;position:relative}.c15t-ui-vendorSectionTitle-ucQyu{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-ucQyu{color:var(--iab-cd-text-muted-color-dark)}.c15t-ui-vendorSectionTitleLI-D_m3R{color:var(--iab-cd-text-muted-color);align-items:center;gap:.25rem;display:flex}.c15t-ui-vendorRow-ynEOC{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-ynEOC{background-color:var(--iab-cd-surface-hover-dark)}.c15t-ui-vendorRowLI-j9Z37{background-color:var(--iab-cd-surface-hover);border:1px solid var(--iab-cd-border-color)}.c15t-ui-vendorInfo-SzGWD{flex:1;min-width:0}.c15t-ui-vendorName-PyL1i{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-PyL1i:hover{color:var(--iab-cd-primary-color)}.c15t-dark .c15t-ui-vendorName-PyL1i{color:var(--iab-cd-text-color-dark)}.c15t-ui-customVendorIcon-W8oJg{width:.75rem;height:.75rem;color:var(--iab-cd-primary-color)}.c15t-dark .c15t-ui-customVendorIcon-W8oJg{color:var(--iab-cd-primary-color-dark)}.c15t-ui-vendorDetails-Ou6m6{flex-wrap:wrap;gap:.5rem;margin-top:.125rem;display:flex}.c15t-ui-vendorDetail-lOMDC{color:var(--iab-cd-text-muted-color);font-size:.625rem}.c15t-dark .c15t-ui-vendorDetail-lOMDC{color:var(--iab-cd-text-muted-color-dark)}.c15t-ui-vendorDetailLI-NNcid{color:var(--iab-cd-text-muted-color);font-weight:500}.c15t-ui-stackItem-VcXtI{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-VcXtI{border-color:var(--iab-cd-border-color-dark);background-color:var(--iab-cd-background-color-dark)}.c15t-ui-stackHeader-RZahv{justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.75rem;display:flex}.c15t-ui-stackTrigger-JqLyX{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-s7JaD{flex:1;min-width:0}.c15t-ui-stackName-cYp1z{color:var(--iab-cd-text-color);margin:0;font-size:.875rem;font-weight:500;line-height:1.25}.c15t-dark .c15t-ui-stackName-cYp1z{color:var(--iab-cd-text-color-dark)}.c15t-ui-stackMeta-OnclK{color:var(--iab-cd-text-muted-color);margin:.25rem 0 0;font-size:.75rem}.c15t-dark .c15t-ui-stackMeta-OnclK{color:var(--iab-cd-text-muted-color-dark)}.c15t-ui-stackControls-uhDRo{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.c15t-ui-partialIndicator-SvNip{background-color:var(--iab-cd-primary-color);border-radius:50%;width:.375rem;height:.375rem}.c15t-ui-stackDescription-yd0M5{color:var(--iab-cd-text-muted-color);margin:0 0 0 1.5rem;padding-bottom:.75rem;font-size:.75rem}.c15t-ui-stackDescription-yd0M5 p{margin:0}.c15t-ui-stackDescription-yd0M5 p+p{margin-top:.25rem}.c15t-dark .c15t-ui-stackDescription-yd0M5{color:var(--iab-cd-text-muted-color-dark)}.c15t-ui-stackContent-TId3a{border-top:1px solid var(--iab-cd-border-color);background-color:var(--iab-cd-surface-hover);padding:.5rem}.c15t-dark .c15t-ui-stackContent-TId3a{border-color:var(--iab-cd-border-color-dark);background-color:var(--iab-cd-surface-hover-dark)}.c15t-ui-specialPurposesSection-pRrtz{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-pRrtz{border-color:var(--iab-cd-border-color-dark);background-color:var(--iab-cd-background-color-dark)}.c15t-ui-specialPurposesHeader-HiKU4{justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.75rem;display:flex}.c15t-ui-specialPurposesTitle-ZZIyy{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-ZZIyy{color:var(--iab-cd-text-color-dark)}.c15t-ui-infoIcon-yoBJo{width:.875rem;height:.875rem;color:var(--iab-cd-text-muted-color);cursor:help}.c15t-dark .c15t-ui-infoIcon-yoBJo{color:var(--iab-cd-text-muted-color-dark)}.c15t-ui-tooltip-klAzU{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-PE80C{opacity:1;visibility:visible}.c15t-dark .c15t-ui-tooltip-klAzU{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-wt620{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-wt620{margin-top:0;padding-top:0;top:0}}.c15t-dark .c15t-ui-vendorListHeader-wt620{background-color:var(--iab-cd-background-color-dark)}.c15t-ui-searchContainer-GGLB3{position:relative}.c15t-ui-searchIcon-Vfyaq{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-Vfyaq{color:var(--iab-cd-text-muted-color-dark)}.c15t-ui-searchInput-Q33NC{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-Q33NC:focus{border-color:var(--iab-cd-primary-color);outline:none;box-shadow:0 0 0 2px #3b82f633}.c15t-dark .c15t-ui-searchInput-Q33NC{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-LTBE9{color:var(--iab-cd-text-muted-color);margin-top:.25rem;font-size:.75rem}.c15t-dark .c15t-ui-vendorCount-LTBE9{color:var(--iab-cd-text-muted-color-dark)}.c15t-ui-selectedVendorBanner-a9iA2{border-radius:var(--c15t-radius-md);z-index:100;isolation:isolate;background-color:#dbeafe;border:1px solid #3b82f64d;align-items:center;gap:.5rem;margin-bottom:.5rem;padding:.5rem .625rem;display:flex;position:sticky;top:0;box-shadow:0 2px 4px #0000000d}.c15t-dark .c15t-ui-selectedVendorBanner-a9iA2{background-color:#1e3a8a;border-color:#3b82f666}.c15t-ui-selectedVendorText-Pudgx{color:var(--iab-cd-primary-color);flex:1;font-size:.75rem}.c15t-ui-clearSelectionButton-OXp7e{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-OXp7e:hover{opacity:.8}.c15t-ui-clearIcon-nhj3A{width:.75rem;height:.75rem}.c15t-ui-vendorListItem-yS2cU{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-yS2cU{border-color:var(--iab-cd-border-color-dark)}.c15t-ui-vendorListItemHeader-v7x4k{align-items:center;gap:.5rem;padding:.625rem;display:flex}.c15t-ui-vendorConsentControl-FDGds{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-FDGds:hover{background-color:var(--iab-cd-surface-hover)}.c15t-dark .c15t-ui-vendorConsentControl-FDGds:hover{background-color:var(--iab-cd-surface-hover-dark)}.c15t-ui-vendorConsentSwitch-sANqn{flex-shrink:0;display:block}.c15t-ui-vendorListTrigger-H5lqi{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-H5lqi:hover{color:var(--iab-cd-primary-color)}.c15t-ui-vendorListInfo-QYJou{flex:1;min-width:0}.c15t-ui-vendorListName-dlnJx{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-dlnJx{color:var(--iab-cd-text-color-dark)}.c15t-ui-vendorListMeta-ULPAo{flex-wrap:wrap;align-items:center;gap:.375rem;margin-top:.125rem;display:flex}.c15t-ui-vendorListMetaText-bruFU{color:var(--iab-cd-text-muted-color);font-size:.75rem}.c15t-dark .c15t-ui-vendorListMetaText-bruFU{color:var(--iab-cd-text-muted-color-dark)}.c15t-ui-vendorListLIBadge-cnZi7{color:var(--iab-cd-text-muted-color);align-items:center;gap:.125rem;font-size:.625rem;font-weight:500;display:inline-flex}.c15t-ui-vendorListContent-Jo1kN{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-Jo1kN{border-color:var(--iab-cd-border-color-dark);background-color:var(--iab-cd-surface-hover-dark)}.c15t-ui-vendorLinks-MqbfV{padding-top:.5rem}.c15t-ui-tabPanel-QsMyB{min-width:0;overflow-x:hidden}.c15t-ui-vendorLink-sfRW9{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-sfRW9:hover{text-decoration:underline}.c15t-ui-vendorLinkIcon-XFOjn{width:.75rem;height:.75rem}.c15t-ui-vendorBadges-mpcxI{flex-wrap:wrap;gap:.5rem;margin-top:.375rem;display:flex}.c15t-ui-vendorBadge-pvgVW{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-pvgVW{background-color:var(--iab-cd-surface-hover-dark);color:var(--iab-cd-text-muted-color-dark)}.c15t-ui-vendorPurposesList-LjkUB{margin-top:.5rem}.c15t-ui-vendorPurposesTitle-goJri{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-goJri{color:var(--iab-cd-text-color-dark)}.c15t-ui-vendorPurposesItems-lRTbJ{margin:0;padding:0;list-style:none}.c15t-ui-vendorPurposeItem-dsY4R{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-dsY4R{color:var(--iab-cd-text-muted-color-dark);border-color:var(--iab-cd-border-color-dark)}.c15t-ui-vendorPurposeItemLI-Iv4NY{border-color:var(--iab-cd-text-muted-color);color:var(--iab-cd-text-muted-color)}.c15t-ui-vendorRetention-YFyBS{opacity:.7;font-size:.625rem}.c15t-ui-footer-luLru{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-luLru{border-color:var(--iab-cd-border-color-dark);background-color:var(--iab-cd-surface-hover-dark)}.c15t-ui-footerButtons-kcS68{gap:.5rem;display:flex}.c15t-ui-footerSpacer-pcXLL{flex:1}.c15t-ui-consentNotice-v9BBK{text-align:center;padding-top:1.5rem}.c15t-dark .c15t-ui-consentNotice-v9BBK{border-color:var(--iab-cd-border-color-dark)}.c15t-ui-consentNoticeText-x_Wq_{color:var(--iab-cd-text-muted-color);margin-block:0;font-size:.625rem}.c15t-dark .c15t-ui-consentNoticeText-x_Wq_{color:var(--iab-cd-text-muted-color-dark)}.c15t-ui-loadingContainer-_P6Gs{flex-direction:column;justify-content:center;align-items:center;gap:.75rem;height:100%;display:flex}.c15t-ui-loadingSpinner-xnPfZ{border:2px solid var(--iab-cd-border-color);border-top-color:var(--iab-cd-primary-color);border-radius:50%;width:1.75rem;height:1.75rem;animation:1s linear infinite c15t-ui-spin-AtPOH}@keyframes c15t-ui-spin-AtPOH{to{transform:rotate(360deg)}}.c15t-ui-loadingText-MM9pG{color:var(--iab-cd-text-muted-color);font-size:.875rem}.c15t-dark .c15t-ui-loadingText-MM9pG{color:var(--iab-cd-text-muted-color-dark)}.c15t-ui-emptyState-kXcux{text-align:center;padding:2rem}.c15t-ui-emptyStateText-bmfpF{color:var(--iab-cd-text-muted-color);margin:0;font-size:.875rem}.c15t-dark .c15t-ui-emptyStateText-bmfpF{color:var(--iab-cd-text-muted-color-dark)}.c15t-ui-vendorSection-jLX4W{z-index:1;margin-top:.25rem;margin-bottom:1rem;position:relative}.c15t-ui-vendorSectionHeading-VcNql{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-VcNql{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-WYSlx{flex-shrink:0;width:1rem;height:1rem}.c15t-ui-iabVendorSectionHeader-XoOsW{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-XoOsW{border-color:var(--iab-cd-border-color-dark);background-color:var(--iab-cd-background-color-dark)}.c15t-ui-iabVendorSectionHeader-XoOsW .c15t-ui-vendorSectionHeading-VcNql{border-bottom:none;padding-bottom:.25rem}.c15t-ui-iabVendorNotice-kcdl1{color:var(--iab-cd-text-muted-color);margin:0;font-size:.6875rem}.c15t-dark .c15t-ui-iabVendorNotice-kcdl1{color:var(--iab-cd-text-muted-color-dark)}.c15t-ui-customVendorSectionHeader-pvTOf{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-pvTOf{border-color:var(--iab-cd-border-color-dark);background-color:var(--iab-cd-background-color-dark)}.c15t-ui-customVendorSectionHeader-pvTOf .c15t-ui-vendorSectionHeading-VcNql{background:0 0;border-bottom:none;padding-bottom:.25rem}.c15t-ui-customVendorNotice-qL5iK{color:var(--iab-cd-text-muted-color);margin:0;padding:.25rem 0 1rem;font-size:.6875rem}.c15t-dark .c15t-ui-customVendorNotice-qL5iK{color:var(--iab-cd-text-muted-color-dark)}.c15t-ui-customVendorItem-GSwuY{border-left:3px solid var(--iab-cd-primary-color)}.c15t-dark .c15t-ui-customVendorItem-GSwuY{border-left-color:var(--iab-cd-primary-color-dark)}.c15t-ui-customVendorPurposeSection-CHCdx{border-top:1px solid var(--iab-cd-border-color);margin-top:.75rem;padding-top:.75rem}.c15t-dark .c15t-ui-customVendorPurposeSection-CHCdx{border-color:var(--iab-cd-border-color-dark)}.c15t-ui-vendorSectionTitleCustom-T5bOQ{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-T5bOQ{color:var(--iab-cd-primary-color-dark)}.c15t-ui-objectButton-TXelw{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-TXelw:hover{border-color:var(--iab-cd-text-muted-color);color:var(--iab-cd-text-color)}.c15t-ui-objectButtonActive-HK4NE{background-color:var(--iab-cd-text-muted-color);border-color:var(--iab-cd-text-muted-color);color:var(--iab-cd-background-color)}.c15t-ui-objectButtonActive-HK4NE:hover{opacity:.9}.c15t-dark .c15t-ui-objectButton-TXelw{border-color:var(--iab-cd-border-color-dark);color:var(--iab-cd-text-muted-color-dark)}.c15t-dark .c15t-ui-objectButton-TXelw:hover{border-color:var(--iab-cd-text-muted-color-dark);color:var(--iab-cd-text-color-dark)}.c15t-dark .c15t-ui-objectButtonActive-HK4NE{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-qSK2Z{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-qSK2Z{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-mrh74{border-top:1px solid var(--iab-cd-border-color);margin-top:.75rem;padding-top:.75rem}.c15t-dark .c15t-ui-vendorLISection-mrh74{border-color:var(--iab-cd-border-color-dark)}.c15t-ui-vendorLISectionHeader-pWhrl{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.375rem;display:flex}.c15t-ui-vendorLISectionHeader-pWhrl .c15t-ui-vendorPurposesTitle-goJri{align-items:center;margin:0;display:flex}.c15t-ui-purposeLISection-nKeYo{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-nKeYo{background-color:var(--iab-cd-surface-hover-dark);border-color:var(--iab-cd-border-color-dark)}.c15t-ui-purposeLISectionHeader-o_SvL{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.5rem;display:flex}.c15t-ui-purposeLIInfo-jokDR{color:var(--iab-cd-text-color);align-items:center;gap:.375rem;font-size:.75rem;font-weight:500;display:flex}.c15t-dark .c15t-ui-purposeLIInfo-jokDR{color:var(--iab-cd-text-color-dark)}.c15t-ui-purposeLIInfo-jokDR .c15t-ui-legitimateInterestIcon-MdoA6{flex-shrink:0}@media (prefers-reduced-motion:reduce){.c15t-ui-dialogVisible-PUG1v,.c15t-ui-dialogHidden-FoTkw,.c15t-ui-contentVisible-G8YSA,.c15t-ui-contentHidden-iYnZI,.c15t-ui-overlayVisible-HizR9,.c15t-ui-overlayHidden-IFPwA,.c15t-ui-closeButton-wGCHD,.c15t-ui-tabButton-xZKks,.c15t-ui-tooltip-klAzU,.c15t-ui-objectButton-TXelw{transition:none}.c15t-ui-loadingSpinner-xnPfZ{animation:none}}@media (hover:none){.c15t-ui-closeButton-wGCHD:hover{background-color:#0000}.c15t-ui-tabButton-xZKks:hover{color:var(--iab-cd-text-muted-color)}.c15t-ui-objectButton-TXelw:hover{border-color:var(--iab-cd-border-color);color:var(--iab-cd-text-muted-color)}}
|
package/dist/styles.tw3.css
CHANGED
|
@@ -1,13 +1,73 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @c15t/react
|
|
2
|
+
* @c15t/react - Tailwind 3-compatible prebuilt component styles.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* Usage (src/index.css):
|
|
8
|
-
* @tailwind base;
|
|
9
|
-
* @tailwind components;
|
|
10
|
-
* @import "@c15t/react/styles.tw3.css";
|
|
11
|
-
* @tailwind utilities;
|
|
4
|
+
* This file inlines @c15t/ui CSS so bundlers that do not follow
|
|
5
|
+
* nested package CSS imports still include the complete stylesheet.
|
|
12
6
|
*/
|
|
13
|
-
|
|
7
|
+
/* primitives/accordion vars */
|
|
8
|
+
:root{--accordion-padding:var(--c15t-space-md);--accordion-radius:var(--c15t-radius-md);--accordion-duration:var(--c15t-duration-normal);--accordion-ease:var(--c15t-easing);--accordion-icon-size:1.25rem;--accordion-background-color:var(--c15t-surface);--accordion-background-color-dark:var(--c15t-surface);--accordion-background-hover:var(--c15t-surface-hover);--accordion-background-hover-dark:var(--c15t-surface-hover);--accordion-border-color:var(--c15t-border);--accordion-border-color-dark:var(--c15t-border);--accordion-text-color:var(--c15t-text);--accordion-text-color-dark:var(--c15t-text);--accordion-icon-color:var(--c15t-text-muted);--accordion-icon-color-dark:var(--c15t-text-muted);--accordion-arrow-color:var(--c15t-text-muted);--accordion-arrow-color-dark:var(--c15t-text-muted);--accordion-content-color:var(--c15t-text-muted);--accordion-content-color-dark:var(--c15t-text-muted);--accordion-focus-ring:var(--c15t-primary);--accordion-focus-ring-dark:var(--c15t-primary);--accordion-focus-shadow:0 0 0 2px var(--accordion-focus-ring);--accordion-focus-shadow-dark:0 0 0 2px var(--accordion-focus-ring-dark)}
|
|
9
|
+
|
|
10
|
+
/* primitives/button vars */
|
|
11
|
+
:root{--button-primary:var(--c15t-primary);--button-primary-dark:var(--c15t-primary);--button-primary-hover:var(--c15t-primary-hover);--button-primary-hover-dark:var(--c15t-primary-hover);--button-neutral:var(--c15t-text-muted);--button-neutral-dark:var(--c15t-text-muted);--button-neutral-hover:var(--c15t-text);--button-neutral-hover-dark:var(--c15t-text);--button-neutral-soft:var(--c15t-surface-hover);--button-neutral-soft-dark:var(--c15t-surface-hover);--button-focus-ring:var(--c15t-primary);--button-focus-ring-dark:var(--c15t-primary);--button-text:var(--c15t-text);--button-text-dark:var(--c15t-text);--button-text-hover:var(--c15t-text);--button-text-hover-dark:var(--c15t-text);--button-background-color:var(--c15t-surface);--button-background-color-dark:var(--c15t-surface);--button-border:var(--c15t-border);--button-border-dark:var(--c15t-border);--button-hover-overlay:var(--c15t-surface-hover);--button-hover-overlay-dark:var(--c15t-surface-hover);--button-primary-hover-tint:color-mix(in srgb, var(--c15t-primary) 10%, transparent);--button-neutral-hover-tint:color-mix(in srgb, var(--c15t-text) 10%, transparent);--button-font:var(--c15t-font-family);--button-border-width:1px;--button-border-style:solid;--button-border-color:var(--c15t-border);--button-border-radius:var(--c15t-radius-md);--button-font-weight:var(--c15t-font-weight-medium);--button-font-size:var(--c15t-font-size-sm);--button-line-height:var(--c15t-line-height-tight);--button-transition:opacity var(--c15t-duration-fast) var(--c15t-easing), transform var(--c15t-duration-fast) var(--c15t-easing);--button-hover-transition-color:background-color var(--c15t-duration-fast) var(--c15t-easing);--button-hover-transition-full:background-color var(--c15t-duration-fast) var(--c15t-easing), box-shadow var(--c15t-duration-fast) var(--c15t-easing), color var(--c15t-duration-fast) var(--c15t-easing);--button-cursor:pointer;--button-shadow:var(--c15t-shadow-sm);--button-shadow-dark:var(--c15t-shadow-sm);--button-shadow-primary-focus:0 0 0 2px var(--button-focus-ring);--button-shadow-neutral-focus:0 0 0 2px var(--button-focus-ring);--button-shadow-primary-focus-dark:0 0 0 2px var(--button-focus-ring-dark);--button-shadow-neutral-focus-dark:0 0 0 2px var(--button-focus-ring-dark);--button-shadow-primary:var(--button-shadow), inset 0 0 0 1px var(--button-primary);--button-shadow-primary-dark:var(--button-shadow-dark), inset 0 0 0 1px var(--button-primary-dark);--button-shadow-primary-hover:none;--button-shadow-primary-hover-dark:none;--button-shadow-neutral:var(--button-shadow), inset 0 0 0 1px var(--button-neutral-soft);--button-shadow-neutral-dark:var(--button-shadow-dark), inset 0 0 0 1px var(--button-neutral-soft-dark);--button-shadow-neutral-hover:none;--button-shadow-neutral-hover-dark:none}
|
|
12
|
+
|
|
13
|
+
/* primitives/collapsible vars */
|
|
14
|
+
:root{--collapsible-duration:var(--c15t-duration-normal);--collapsible-ease:var(--c15t-easing);--collapsible-content-color:var(--c15t-text-muted);--collapsible-gap:0}
|
|
15
|
+
|
|
16
|
+
/* primitives/legal-links vars */
|
|
17
|
+
:root{--legal-links-gap:.75rem;--legal-links-font-size:.875rem;--legal-links-transition:text-decoration .2s ease;--legal-links-text-decoration:none;--legal-links-text-decoration-hover:underline;--legal-links-outline:2px solid currentColor;--legal-links-outline-offset:2px;--legal-links-color:#476cff;--legal-links-focus-color:#476cff;--legal-links-focus-color-dark:#2547d0}
|
|
18
|
+
|
|
19
|
+
/* primitives/preference-item vars */
|
|
20
|
+
:root{--preference-item-gap:.75rem;--preference-item-leading-gap:.5rem;--preference-item-content-color:var(--c15t-text-muted);--preference-item-duration:var(--c15t-duration-normal);--preference-item-ease:var(--c15t-easing);--preference-item-focus-ring:var(--c15t-primary)}
|
|
21
|
+
|
|
22
|
+
/* primitives/tabs vars */
|
|
23
|
+
:root{--tabs-list-background:var(--c15t-surface);--tabs-list-border:var(--c15t-border);--tabs-trigger-color:var(--c15t-text-muted);--tabs-trigger-active-color:var(--c15t-text);--tabs-trigger-active-background:var(--c15t-surface-hover);--tabs-focus-ring:var(--c15t-primary)}
|
|
24
|
+
|
|
25
|
+
/* components/consent-banner vars */
|
|
26
|
+
:root{--consent-banner-font-family:var(--c15t-font-family);--consent-banner-line-height:var(--c15t-line-height-normal);--consent-banner-text-size-adjust:100%;--consent-banner-tab-size:4;--consent-banner-border-radius-sm:var(--c15t-radius-sm);--consent-banner-border-radius:var(--c15t-radius-lg);--consent-banner-max-width:440px;--consent-banner-branding-tag-offset:2rem;--consent-banner-animation-duration:var(--c15t-duration-fast);--consent-banner-animation-timing:var(--c15t-easing);--consent-banner-entry-animation:c15t-ui-enter-EoZFn var(--c15t-duration-fast) var(--c15t-easing);--consent-banner-exit-animation:c15t-ui-exit-Z4gI_ var(--c15t-duration-fast) var(--c15t-easing);--consent-banner-border-width:1px;--consent-banner-border-width-hairline:1px;--consent-banner-shadow:var(--c15t-shadow-lg);--consent-banner-shadow-dark:var(--c15t-shadow-lg);--consent-banner-background-color:var(--c15t-surface);--consent-banner-background-color-dark:var(--c15t-surface);--consent-banner-footer-background-color:var(--c15t-surface-hover);--consent-banner-footer-background-color-dark:var(--c15t-surface-hover);--consent-banner-text-color:var(--c15t-text);--consent-banner-text-color-dark:var(--c15t-text);--consent-banner-border-color:var(--c15t-border);--consent-banner-border-color-dark:var(--c15t-border);--consent-banner-title-color:var(--c15t-text);--consent-banner-title-color-dark:var(--c15t-text);--consent-banner-description-color:var(--c15t-text-muted);--consent-banner-description-color-dark:var(--c15t-text-muted);--consent-banner-overlay-background-color:var(--c15t-overlay);--consent-banner-overlay-background-color-dark:var(--c15t-overlay)}
|
|
27
|
+
:root{--consent-banner-border-width-hairline:.5px}
|
|
28
|
+
|
|
29
|
+
/* components/consent-dialog vars */
|
|
30
|
+
:root{--consent-dialog-font-family:var(--c15t-font-family);--consent-dialog-line-height:var(--c15t-line-height-tight);--consent-dialog-title-font-size:var(--c15t-font-size-sm);--consent-dialog-title-font-weight:var(--c15t-font-weight-semibold);--consent-dialog-title-letter-spacing:-.025em;--consent-dialog-description-font-size:var(--c15t-font-size-base);--consent-dialog-description-font-weight:var(--c15t-font-weight-normal);--consent-dialog-description-line-height:var(--c15t-line-height-normal);--consent-dialog-footer-gap:var(--c15t-space-sm);--consent-dialog-footer-font-size:14px;--consent-dialog-branding-font-size:var(--c15t-font-size-base);--consent-dialog-branding-font-weight:var(--c15t-font-weight-medium);--consent-dialog-branding-line-height:var(--c15t-line-height-relaxed);--consent-dialog-branding-letter-spacing:-.01em;--consent-dialog-stroke-color:var(--c15t-border);--consent-dialog-stroke-color-dark:var(--c15t-border);--consent-dialog-branding-focus-color:var(--c15t-primary);--consent-dialog-branding-focus-color-dark:var(--c15t-primary);--consent-dialog-link-text-color:var(--c15t-text);--consent-dialog-link-text-color-dark:var(--c15t-text);--consent-dialog-border-color:var(--c15t-border);--consent-dialog-border-color-dark:var(--c15t-border);--consent-dialog-background-color:var(--c15t-surface);--consent-dialog-background-color-dark:var(--c15t-surface);--consent-dialog-foreground-color:var(--c15t-text);--consent-dialog-foreground-color-dark:var(--c15t-text);--consent-dialog-muted-color:var(--c15t-text-muted);--consent-dialog-muted-color-dark:var(--c15t-text-muted);--consent-dialog-overlay-background-color:var(--c15t-overlay);--consent-dialog-overlay-background-color-dark:var(--c15t-overlay);--consent-dialog-card-padding:var(--c15t-space-lg);--consent-dialog-card-padding-mobile:var(--c15t-space-md);--consent-dialog-card-gap:var(--c15t-space-xs);--consent-dialog-header-gap:var(--c15t-space-xs);--consent-dialog-content-gap:var(--c15t-space-md);--consent-dialog-footer-padding-y:var(--c15t-space-md);--consent-dialog-card-radius:var(--c15t-radius-lg);--consent-dialog-max-width:28rem;--consent-dialog-height:100%;--consent-dialog-z-index:1000000000;--consent-dialog-overlay-z-index:1000000000;--consent-dialog-card-shadow:0 1px 2px 0 #0000000d;--consent-dialog-border-width:1px;--consent-dialog-border-width-hairline:1px;--consent-dialog-border-style:solid;--consent-dialog-animation-duration:var(--c15t-duration-normal);--consent-dialog-animation-timing:ease-out;--consent-dialog-branding-gap:.5rem;--consent-dialog-branding-icon-height:1.25rem;--consent-dialog-branding-icon-width:auto;--consent-dialog-branding-label-size:.6875rem}
|
|
31
|
+
:root{--consent-dialog-border-width-hairline:.5px}
|
|
32
|
+
|
|
33
|
+
/* components/consent-widget vars */
|
|
34
|
+
:root{--consent-widget-background-color:var(--c15t-surface);--consent-widget-background-color-dark:var(--c15t-surface);--consent-widget-border-color:var(--c15t-border);--consent-widget-border-color-dark:var(--c15t-border);--consent-widget-text-color:var(--c15t-text);--consent-widget-text-color-dark:var(--c15t-text);--consent-widget-text-muted-color:var(--c15t-text-muted);--consent-widget-text-muted-color-dark:var(--c15t-text-muted);--consent-widget-footer-background-color:transparent;--consent-widget-footer-background-color-dark:transparent;--consent-widget-link-text-color:var(--c15t-text);--consent-widget-link-text-color-dark:var(--c15t-text);--consent-widget-branding-link-color:var(--c15t-primary);--consent-widget-padding:0;--consent-widget-radius:0;--consent-widget-gap:var(--c15t-space-xs);--consent-widget-border-width:0;--consent-widget-max-width:32rem;--consent-widget-z-index:50;--consent-widget-footer-padding:var(--c15t-space-lg) 0 0 0;--consent-widget-title-size:var(--c15t-font-size-sm);--consent-widget-title-line-height:var(--c15t-line-height-tight);--consent-widget-title-tracking:-.006em;--consent-widget-title-weight:var(--c15t-font-weight-semibold);--consent-widget-entry-animation:c15t-ui-enter-oqaf_ var(--c15t-duration-fast) var(--c15t-easing);--consent-widget-exit-animation:c15t-ui-exit-Yh5ig var(--c15t-duration-fast) var(--c15t-easing);--consent-widget-accordion-padding:var(--c15t-space-sm);--consent-widget-accordion-stack-gap:.75rem;--consent-widget-accordion-radius:var(--c15t-radius-md);--consent-widget-accordion-duration:var(--c15t-duration-normal);--consent-widget-accordion-ease:var(--c15t-easing);--consent-widget-accordion-icon-size:1.25rem;--consent-widget-accordion-background-color:var(--c15t-surface);--consent-widget-accordion-background-color-dark:var(--c15t-surface);--consent-widget-accordion-background-hover:var(--c15t-surface-hover);--consent-widget-accordion-background-hover-dark:var(--c15t-surface-hover);--consent-widget-accordion-border-color:var(--c15t-border);--consent-widget-accordion-border-color-dark:var(--c15t-border);--consent-widget-accordion-text-color:var(--c15t-text);--consent-widget-accordion-text-color-dark:var(--c15t-text);--consent-widget-accordion-icon-color:var(--c15t-text-muted);--consent-widget-accordion-icon-color-dark:var(--c15t-text-muted);--consent-widget-accordion-arrow-color:#a3a3a3;--consent-widget-accordion-arrow-color-dark:#ccc;--consent-widget-accordion-content-color:#5c5c5c;--consent-widget-accordion-content-color-dark:#999;--consent-widget-accordion-focus-ring:#476cff;--consent-widget-accordion-focus-ring-dark:#2547d0;--consent-widget-accordion-focus-shadow:0 0 0 2px #476cff;--consent-widget-accordion-focus-shadow-dark:0 0 0 2px #2547d0;--consent-widget-font-family:system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";--consent-widget-line-height:1.15}
|
|
35
|
+
|
|
36
|
+
/* components/frame vars */
|
|
37
|
+
:root{--frame-font-family:system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";--frame-line-height:1.5;--frame-placeholder-gap:1rem;--frame-placeholder-border-radius:1.25rem;--frame-placeholder-border-width:1px;--frame-placeholder-border-color:#ebebeb;--frame-placeholder-border-color-dark:#333;--frame-placeholder-background-color:#fff;--frame-placeholder-background-color-dark:#171717;--frame-placeholder-text-color:#171717;--frame-placeholder-text-color-dark:#e6e6e6;--frame-placeholder-title-color:#171717;--frame-placeholder-title-color-dark:#e6e6e6;--frame-placeholder-shadow:0 16px 32px -12px #0e121b1a;--frame-placeholder-shadow-dark:0 16px 32px -12px #0e121b1a;--frame-placeholder-opacity:0;--frame-placeholder-animation:c15t-ui-fadeIn-moBzd .15s cubic-bezier(.165, .84, .44, 1) forwards}
|
|
38
|
+
|
|
39
|
+
/* primitives/accordion */
|
|
40
|
+
.c15t-ui-root-RhSvQ{&>:not([hidden])~:not([hidden]){--space-y-reverse:0;margin-top:calc(1rem * calc(1 - var(--space-y-reverse)));margin-bottom:calc(1rem * var(--space-y-reverse))}}.c15t-ui-item-v83OH{padding:var(--accordion-padding);background-color:var(--accordion-background-color);box-shadow:inset 0 0 0 1px var(--accordion-border-color);transition:background-color var(--accordion-duration) var(--accordion-ease), box-shadow var(--accordion-duration) var(--accordion-ease);border-radius:var(--accordion-radius);position:relative;overflow:visible}.c15t-dark .c15t-ui-item-v83OH{background-color:var(--accordion-background-color-dark);box-shadow:inset 0 0 0 1px var(--accordion-border-color-dark)}.c15t-ui-item-v83OH:is(:hover,[data-state=open]){background-color:var(--accordion-background-hover);box-shadow:inset 0 0 0 1px var(--accordion-border-color)}.c15t-dark .c15t-ui-item-v83OH:is(:hover,[data-state=open]){background-color:var(--accordion-background-hover-dark);box-shadow:inset 0 0 0 1px var(--accordion-border-color-dark)}.c15t-ui-item-v83OH:focus-within:not(:has(.c15t-ui-triggerInner-lwGP6:focus-visible)){background-color:var(--accordion-background-hover);box-shadow:inset 0 0 0 1px var(--accordion-border-color)}.c15t-dark .c15t-ui-item-v83OH:focus-within:not(:has(.c15t-ui-triggerInner-lwGP6:focus-visible)){background-color:var(--accordion-background-hover-dark);box-shadow:inset 0 0 0 1px var(--accordion-border-color-dark)}.c15t-ui-item-v83OH:has(.c15t-ui-triggerInner-lwGP6:focus-visible){box-shadow:var(--accordion-focus-shadow)}.c15t-dark .c15t-ui-item-v83OH:has(.c15t-ui-triggerInner-lwGP6:focus-visible){box-shadow:var(--accordion-focus-shadow-dark)}.c15t-ui-trigger-uhpMT{justify-content:space-between;align-items:center;width:100%;display:flex;position:relative;overflow:visible}.c15t-ui-triggerInner-lwGP6{letter-spacing:-.006em;text-align:left;width:100%;color:var(--accordion-text-color);cursor:pointer;border-radius:var(--accordion-radius);z-index:1;touch-action:manipulation;background:0 0;border:0;justify-content:flex-start;align-items:center;gap:.625rem;margin:0;padding:0;font-size:.875rem;font-weight:500;line-height:1.25rem;display:flex;position:relative}.c15t-ui-triggerInner-lwGP6 [data-slot=accordion-arrow]{margin-inline-start:auto}.c15t-dark .c15t-ui-triggerInner-lwGP6{color:var(--accordion-text-color-dark)}.c15t-ui-triggerInner-lwGP6:focus-visible{outline:none}.c15t-ui-icon-X1brh{width:var(--accordion-icon-size);height:var(--accordion-icon-size);color:var(--accordion-icon-color);flex-shrink:0}.c15t-dark .c15t-ui-icon-X1brh{color:var(--accordion-icon-color-dark)}.c15t-ui-arrowOpen-yE84x,.c15t-ui-arrowClose-QjqQt{width:var(--accordion-icon-size);height:var(--accordion-icon-size);transition:color var(--accordion-duration) var(--accordion-ease);flex-shrink:0;display:block}.c15t-ui-arrowOpen-yE84x{color:var(--accordion-arrow-color)}.c15t-dark .c15t-ui-arrowOpen-yE84x{color:var(--accordion-arrow-color-dark)}.c15t-ui-item-v83OH:hover .c15t-ui-arrowOpen-yE84x{color:var(--accordion-icon-color)}.c15t-dark .c15t-ui-item-v83OH:hover .c15t-ui-arrowOpen-yE84x{color:var(--accordion-icon-color-dark)}.c15t-ui-arrowClose-QjqQt{color:var(--accordion-icon-color);display:none}.c15t-dark .c15t-ui-arrowClose-QjqQt{color:var(--accordion-icon-color-dark)}.c15t-ui-item-v83OH[data-state=open] .c15t-ui-arrowOpen-yE84x{display:none}.c15t-ui-item-v83OH[data-state=open] .c15t-ui-arrowClose-QjqQt{display:block}.c15t-ui-content-YJGot{transition:grid-template-rows var(--accordion-duration) var(--accordion-ease);grid-template-rows:0fr;display:grid;overflow:hidden}.c15t-ui-content-YJGot[data-state=open]{grid-template-rows:1fr}.c15t-ui-content-YJGot[data-state=closed]{pointer-events:none}.c15t-ui-content-YJGot>[data-slot=accordion-content-viewport]{min-height:0;overflow:hidden}.c15t-ui-contentInner-lPIUe{letter-spacing:-.006em;color:var(--accordion-content-color);opacity:1;transition:opacity calc(var(--accordion-duration) * .35) ease-out, transform calc(var(--accordion-duration) * .35) ease-out;will-change:opacity, transform;padding-top:.75rem;font-size:.875rem;line-height:1.25rem;transform:translateY(0)}.c15t-ui-content-YJGot[data-state=closed] .c15t-ui-contentInner-lPIUe{opacity:0;transform:translateY(-.125rem)}.c15t-dark .c15t-ui-contentInner-lPIUe{color:var(--accordion-content-color-dark)}@media (prefers-reduced-motion:reduce){.c15t-ui-item-v83OH,.c15t-ui-content-YJGot,.c15t-ui-arrowOpen-yE84x,.c15t-ui-arrowClose-QjqQt{transition:none}}@media (hover:none){.c15t-ui-item-v83OH:hover{background-color:var(--accordion-background-color)}.c15t-ui-item-v83OH:hover .c15t-ui-arrowOpen-yE84x{color:var(--accordion-arrow-color)}}
|
|
41
|
+
|
|
42
|
+
/* primitives/button */
|
|
43
|
+
.c15t-ui-button-Lo5cc{border-radius:var(--button-border-radius);font-weight:var(--button-font-weight);transition:var(--button-transition);cursor:var(--button-cursor);border:var(--button-border-width) var(--button-border-style) var(--button-border-color);font-size:var(--button-font-size);line-height:var(--button-line-height);color:var(--button-text);font-family:var(--button-font);touch-action:manipulation;justify-content:center;align-items:center;gap:.5rem;display:inline-flex}.c15t-ui-button-Lo5cc:focus-visible{box-shadow:var(--button-shadow-primary-focus);outline:none}.c15t-dark .c15t-ui-button-Lo5cc:focus-visible{box-shadow:var(--button-shadow-primary-focus-dark)}.c15t-dark .c15t-ui-button-Lo5cc{color:var(--button-text-dark)}.c15t-ui-button-Lo5cc:disabled{opacity:.5;cursor:not-allowed}.c15t-ui-button-Lo5cc:active:not(:disabled){transform:scale(.97)}.c15t-ui-button-medium-zdZk5{font-size:var(--button-font-size);line-height:var(--button-line-height);padding:.625rem 1rem}.c15t-ui-button-small-nclev{font-size:var(--button-font-size);line-height:var(--button-line-height);padding:.5rem .75rem}.c15t-ui-button-xsmall-xj0Fq{font-size:var(--button-font-size);line-height:var(--button-line-height);padding:.375rem .625rem}.c15t-ui-button-xxsmall-qDcpO{font-size:var(--button-font-size);line-height:var(--button-line-height);padding:.25rem .5rem}.c15t-ui-button-primary-filled-u895k{background-color:var(--button-primary);color:var(--button-background-color)}.c15t-ui-button-primary-filled-u895k:focus-visible{box-shadow:var(--button-shadow-primary-focus)}.c15t-dark .c15t-ui-button-primary-filled-u895k{background-color:var(--button-primary-dark);color:var(--button-background-color-dark)}.c15t-ui-button-primary-filled-u895k:hover:not(:disabled){background-color:var(--button-primary-hover);transition:var(--button-hover-transition-color)}.c15t-dark .c15t-ui-button-primary-filled-u895k:hover:not(:disabled){background-color:var(--button-primary-hover-dark);transition:var(--button-hover-transition-color)}.c15t-ui-button-primary-stroke-rMkBn{background-color:var(--button-background-color);color:var(--button-primary);box-shadow:var(--button-shadow-primary)}.c15t-dark .c15t-ui-button-primary-stroke-rMkBn{background-color:var(--button-background-color-dark);color:var(--button-primary-dark);box-shadow:var(--button-shadow-primary-dark)}.c15t-ui-button-primary-stroke-rMkBn:hover:not(:disabled){background-color:var(--button-primary-hover-tint);box-shadow:var(--button-shadow-primary-hover);transition:var(--button-hover-transition-full)}.c15t-dark .c15t-ui-button-primary-stroke-rMkBn:hover:not(:disabled){background-color:var(--button-primary-hover-tint);box-shadow:var(--button-shadow-primary-hover-dark);transition:var(--button-hover-transition-full)}.c15t-ui-button-primary-lighter-pa1_G{background-color:color-mix(in srgb, var(--button-primary) 10%, transparent);color:color-mix(in srgb, var(--button-primary) 85%, black)}.c15t-dark .c15t-ui-button-primary-lighter-pa1_G{background-color:color-mix(in srgb, var(--button-primary-dark) 10%, transparent);color:var(--button-primary-dark)}.c15t-ui-button-primary-lighter-pa1_G:hover:not(:disabled){background-color:color-mix(in srgb, var(--button-primary) 20%, transparent);transition:var(--button-hover-transition-color)}.c15t-dark .c15t-ui-button-primary-lighter-pa1_G:hover:not(:disabled){background-color:color-mix(in srgb, var(--button-primary-dark) 20%, transparent);transition:var(--button-hover-transition-color)}.c15t-ui-button-primary-ghost-gUXbr{color:var(--button-primary)}.c15t-dark .c15t-ui-button-primary-ghost-gUXbr{color:var(--button-primary-dark)}.c15t-ui-button-primary-ghost-gUXbr:hover:not(:disabled),.c15t-dark .c15t-ui-button-primary-ghost-gUXbr:hover:not(:disabled){background-color:var(--button-primary-hover-tint);transition:var(--button-hover-transition-color)}.c15t-ui-button-neutral-filled-iBUdt{background-color:var(--button-neutral);color:var(--button-background-color)}.c15t-ui-button-neutral-filled-iBUdt:focus-visible{box-shadow:var(--button-shadow-neutral-focus)}.c15t-dark .c15t-ui-button-neutral-filled-iBUdt{background-color:var(--button-neutral-dark);color:var(--button-background-color-dark)}.c15t-ui-button-neutral-filled-iBUdt:hover:not(:disabled){background-color:var(--button-neutral-hover);box-shadow:none;transition:var(--button-hover-transition-color)}.c15t-dark .c15t-ui-button-neutral-filled-iBUdt:hover:not(:disabled){background-color:var(--button-neutral-hover-dark);box-shadow:none;transition:var(--button-hover-transition-color)}.c15t-ui-button-neutral-stroke-FNAAx{background-color:var(--button-background-color);box-shadow:var(--button-shadow-neutral)}.c15t-dark .c15t-ui-button-neutral-stroke-FNAAx{background-color:var(--button-background-color-dark);box-shadow:var(--button-shadow-neutral-dark)}.c15t-ui-button-neutral-stroke-FNAAx:hover:not(:disabled){background-color:var(--button-neutral-hover-tint);box-shadow:none;color:var(--button-text-hover);transition:var(--button-hover-transition-full)}.c15t-dark .c15t-ui-button-neutral-stroke-FNAAx:hover:not(:disabled){background-color:var(--button-neutral-hover-tint);box-shadow:none;color:var(--button-text-hover-dark);transition:var(--button-hover-transition-full)}.c15t-ui-button-neutral-lighter-CHsDA{background-color:color-mix(in srgb, var(--button-neutral) 10%, transparent);color:var(--button-neutral)}.c15t-dark .c15t-ui-button-neutral-lighter-CHsDA{background-color:color-mix(in srgb, var(--button-neutral-dark) 10%, transparent);color:var(--button-neutral-dark)}.c15t-ui-button-neutral-lighter-CHsDA:hover:not(:disabled){background-color:color-mix(in srgb, var(--button-neutral) 20%, transparent);transition:var(--button-hover-transition-color)}.c15t-dark .c15t-ui-button-neutral-lighter-CHsDA:hover:not(:disabled){background-color:color-mix(in srgb, var(--button-neutral-dark) 20%, transparent);transition:var(--button-hover-transition-color)}.c15t-ui-button-neutral-ghost-a6Cdw{color:var(--button-neutral)}.c15t-dark .c15t-ui-button-neutral-ghost-a6Cdw{color:var(--button-neutral-dark)}.c15t-ui-button-neutral-ghost-a6Cdw:hover:not(:disabled),.c15t-dark .c15t-ui-button-neutral-ghost-a6Cdw:hover:not(:disabled){background-color:var(--button-neutral-hover-tint);box-shadow:none;transition:var(--button-hover-transition-color)}.c15t-ui-button-icon-JD5sB{justify-content:center;align-items:center;display:inline-flex}@media (prefers-reduced-motion:reduce){.c15t-ui-button-Lo5cc,.c15t-ui-button-primary-filled-u895k:hover:not(:disabled),.c15t-ui-button-primary-stroke-rMkBn:hover:not(:disabled),.c15t-ui-button-primary-lighter-pa1_G:hover:not(:disabled),.c15t-ui-button-primary-ghost-gUXbr:hover:not(:disabled),.c15t-ui-button-neutral-filled-iBUdt:hover:not(:disabled),.c15t-ui-button-neutral-stroke-FNAAx:hover:not(:disabled),.c15t-ui-button-neutral-lighter-CHsDA:hover:not(:disabled),.c15t-ui-button-neutral-ghost-a6Cdw:hover:not(:disabled){transition:none}}@media (hover:none){.c15t-ui-button-primary-filled-u895k:hover:not(:disabled){background-color:var(--button-primary)}.c15t-ui-button-primary-stroke-rMkBn:hover:not(:disabled){background-color:var(--button-background-color);box-shadow:var(--button-shadow-primary)}.c15t-ui-button-primary-lighter-pa1_G:hover:not(:disabled){background-color:color-mix(in srgb, var(--button-primary) 10%, transparent)}.c15t-ui-button-primary-ghost-gUXbr:hover:not(:disabled){background-color:#0000}.c15t-ui-button-neutral-filled-iBUdt:hover:not(:disabled){background-color:var(--button-neutral)}.c15t-ui-button-neutral-stroke-FNAAx:hover:not(:disabled){background-color:var(--button-background-color);box-shadow:var(--button-shadow-neutral)}.c15t-ui-button-neutral-lighter-CHsDA:hover:not(:disabled){background-color:color-mix(in srgb, var(--button-neutral) 10%, transparent)}.c15t-ui-button-neutral-ghost-a6Cdw:hover:not(:disabled){background-color:#0000}}
|
|
44
|
+
|
|
45
|
+
/* primitives/collapsible */
|
|
46
|
+
.c15t-ui-root-l7ccU{row-gap:var(--collapsible-gap);transition:row-gap var(--collapsible-duration) var(--collapsible-ease);width:100%;display:grid}.c15t-ui-root-l7ccU[data-state=closed]{row-gap:0}.c15t-ui-trigger-YLS2g{color:var(--c15t-text);cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:.5rem;padding:0;display:inline-flex}.c15t-ui-trigger-YLS2g:focus-visible{outline:2px solid var(--c15t-primary);outline-offset:2px}.c15t-ui-content-Yjdia{transition:grid-template-rows var(--collapsible-duration) var(--collapsible-ease);grid-template-rows:0fr;display:grid;overflow:hidden}.c15t-ui-content-Yjdia[data-state=open]{grid-template-rows:1fr}.c15t-ui-content-Yjdia[data-state=closed]{pointer-events:none}.c15t-ui-contentViewport-L7bt7{min-height:0;overflow:hidden}.c15t-ui-contentInner-zoLX2{color:var(--collapsible-content-color);opacity:1;transition:opacity calc(var(--collapsible-duration) * .35) ease-out, transform calc(var(--collapsible-duration) * .35) ease-out;will-change:opacity, transform;transform:translateY(0)}.c15t-ui-content-Yjdia[data-state=closed] .c15t-ui-contentInner-zoLX2{opacity:0;transform:translateY(-.125rem)}@media (prefers-reduced-motion:reduce){.c15t-ui-root-l7ccU,.c15t-ui-content-Yjdia,.c15t-ui-contentInner-zoLX2{transition:none}}
|
|
47
|
+
|
|
48
|
+
/* primitives/legal-links */
|
|
49
|
+
.c15t-ui-legalLinks-xVTMr{gap:var(--legal-links-gap);flex-wrap:wrap;align-items:center;display:flex}.c15t-ui-legalLink-YVZqO{color:var(--legal-links-color);-webkit-text-decoration:var(--legal-links-text-decoration);-webkit-text-decoration:var(--legal-links-text-decoration);text-decoration:var(--legal-links-text-decoration);font-size:var(--legal-links-font-size);transition:var(--legal-links-transition)}.c15t-dark .c15t-ui-legalLink-YVZqO{color:var(--legal-links-focus-color-dark)}.c15t-ui-legalLink-YVZqO:hover{-webkit-text-decoration:var(--legal-links-text-decoration-hover);-webkit-text-decoration:var(--legal-links-text-decoration-hover);text-decoration:var(--legal-links-text-decoration-hover)}.c15t-ui-legalLink-YVZqO:focus{outline:none;text-decoration:underline}@media (prefers-reduced-motion:reduce){.c15t-ui-legalLink-YVZqO{transition:none}}
|
|
50
|
+
|
|
51
|
+
/* primitives/preference-item */
|
|
52
|
+
.c15t-ui-root-uVKV9{align-items:start;column-gap:var(--preference-item-gap);grid-template-columns:minmax(0,1fr) auto;row-gap:0;width:100%;display:grid}.c15t-ui-trigger-KE13P{align-items:flex-start;gap:var(--preference-item-leading-gap);text-align:left;width:100%;min-width:0;color:var(--c15t-text);cursor:pointer;background:0 0;border:0;padding:0;display:flex}.c15t-ui-trigger-KE13P:focus-visible{outline:2px solid var(--preference-item-focus-ring);outline-offset:2px}.c15t-ui-leading-R7F08{flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.c15t-ui-header-OUsAl{flex-direction:column;flex:1;min-width:0;display:flex}.c15t-ui-title-D6JTo{color:var(--c15t-text);font:inherit;min-width:0;margin:0}.c15t-ui-meta-G2S5Z{color:var(--c15t-text-muted);font:inherit;margin:0}.c15t-ui-auxiliary-jJSI7{flex-wrap:wrap;align-items:center;gap:.375rem;min-width:0;display:flex}.c15t-ui-control-Dg8Bo{flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.c15t-ui-content-VkWDD{transition:grid-template-rows var(--preference-item-duration) var(--preference-item-ease);grid-column:1/-1;grid-template-rows:0fr;display:grid;overflow:hidden}.c15t-ui-content-VkWDD[data-state=open]{grid-template-rows:1fr}.c15t-ui-content-VkWDD[data-state=closed]{pointer-events:none}.c15t-ui-contentViewport-BOKhf{min-height:0;overflow:hidden}.c15t-ui-contentInner-m2ifM{color:var(--preference-item-content-color)}@media (prefers-reduced-motion:reduce){.c15t-ui-content-VkWDD{transition:none}}
|
|
53
|
+
|
|
54
|
+
/* primitives/switch */
|
|
55
|
+
.c15t-ui-root-Pd0rf{--switch-height:1.25rem;--switch-width:2rem;--switch-padding:.125rem;--switch-duration:var(--c15t-duration-normal);--switch-ease:var(--c15t-easing);--switch-thumb-size:.75rem;--switch-thumb-size-disabled:.625rem;--switch-thumb-translate:calc(var(--switch-width) - var(--switch-thumb-size) - 2 * var(--switch-padding));--switch-background-color:var(--c15t-switch-track);--switch-background-color-dark:var(--c15t-switch-track);--switch-background-color-hover:var(--c15t-surface-hover);--switch-background-color-hover-dark:var(--c15t-surface-hover);--switch-background-color-checked:var(--c15t-switch-track-active);--switch-background-color-checked-dark:var(--c15t-switch-track-active);--switch-background-color-disabled:var(--c15t-border);--switch-background-color-disabled-dark:var(--c15t-border);--switch-thumb-background-color:var(--c15t-switch-thumb);--switch-thumb-background-color-dark:var(--c15t-switch-thumb);--switch-thumb-background-color-disabled:var(--c15t-surface-hover);--switch-thumb-background-color-disabled-dark:var(--c15t-surface-hover);--switch-shadow-thumb:0 0 0 1px var(--c15t-border);--switch-shadow-thumb-dark:0 0 0 1px var(--c15t-border);--switch-focus-ring:var(--c15t-primary);--switch-focus-ring-dark:var(--c15t-primary);--switch-focus-shadow:0 0 0 2px var(--switch-focus-ring);--switch-focus-shadow-dark:0 0 0 2px var(--switch-focus-ring-dark);height:var(--switch-height);width:var(--switch-width);box-sizing:border-box;white-space:nowrap;touch-action:manipulation;background:0 0;border:0;border-radius:9999px;outline:none;flex-shrink:0;margin:0;padding:0;font-family:inherit;font-size:100%;line-height:1.15;display:block}.c15t-ui-track-kWz9_{box-sizing:border-box;width:100%;height:100%;padding:var(--switch-padding);background-color:var(--switch-background-color);transition:background-color var(--switch-duration) var(--switch-ease);border-radius:9999px;outline:none;align-items:center;display:flex;position:relative;overflow:hidden}.c15t-dark .c15t-ui-track-kWz9_{background-color:var(--switch-background-color-dark)}.c15t-ui-track-kWz9_:hover{background-color:var(--switch-background-color-hover)}.c15t-dark .c15t-ui-track-kWz9_:hover{background-color:var(--switch-background-color-hover-dark)}.c15t-ui-track-kWz9_:focus-visible{background-color:var(--switch-background-color-hover)}.c15t-dark .c15t-ui-track-kWz9_:focus-visible{background-color:var(--switch-background-color-hover-dark)}.c15t-ui-track-kWz9_:active{background-color:var(--switch-background-color)}.c15t-dark .c15t-ui-track-kWz9_:active{background-color:var(--switch-background-color-dark)}.c15t-ui-root-Pd0rf[data-state=checked] .c15t-ui-track-kWz9_{background-color:var(--switch-background-color-checked)}.c15t-dark .c15t-ui-root-Pd0rf[data-state=checked] .c15t-ui-track-kWz9_{background-color:var(--switch-background-color-checked-dark)}.c15t-ui-root-Pd0rf[data-state=checked]:hover .c15t-ui-track-kWz9_{background-color:var(--switch-background-color-checked)}.c15t-dark .c15t-ui-root-Pd0rf[data-state=checked]:hover .c15t-ui-track-kWz9_{background-color:var(--switch-background-color-checked-dark)}.c15t-ui-root-Pd0rf[data-disabled]{cursor:not-allowed}.c15t-ui-root-Pd0rf:focus,.c15t-dark .c15t-ui-root-Pd0rf:focus{outline:none}.c15t-ui-track-disabled-VxwND{background-color:var(--switch-background-color-disabled);opacity:.4;box-shadow:inset 0 0 0 1px #ebebeb}.c15t-dark .c15t-ui-track-disabled-VxwND{background-color:var(--switch-background-color-disabled-dark)}.c15t-ui-root-Pd0rf[data-state=checked] .c15t-ui-track-disabled-VxwND{background-color:var(--switch-background-color-checked);opacity:.4;box-shadow:none}.c15t-dark .c15t-ui-root-Pd0rf[data-state=checked] .c15t-ui-track-disabled-VxwND{background-color:var(--switch-background-color-checked-dark)}.c15t-ui-thumb-mP7_o{box-sizing:border-box;pointer-events:none;width:var(--switch-thumb-size);height:var(--switch-thumb-size);transition:transform var(--switch-duration) var(--switch-ease);display:block;position:relative;transform:translate(0)}.c15t-ui-thumb-mP7_o:before{content:"";box-sizing:border-box;background-color:var(--switch-thumb-background-color);inset-block:0;border-radius:9999px;width:100%;position:absolute;left:0;mask:radial-gradient(circle farthest-side,#0000 1.95px,#000 2.05px 100%) 50%/100% 100% no-repeat}.c15t-dark .c15t-ui-thumb-mP7_o:before{background-color:var(--switch-thumb-background-color-dark)}.c15t-ui-thumb-mP7_o:after{content:"";box-sizing:border-box;width:100%;box-shadow:var(--switch-shadow-thumb);inset-block:0;border-radius:9999px;position:absolute;left:0}.c15t-dark .c15t-ui-thumb-mP7_o:after{box-shadow:var(--switch-shadow-thumb-dark)}.c15t-ui-root-Pd0rf[data-state=checked] .c15t-ui-thumb-mP7_o{transform:translateX(var(--switch-thumb-translate))}.c15t-ui-root-Pd0rf[dir=rtl][data-state=checked] .c15t-ui-thumb-mP7_o{transform:translateX(calc(-1 * var(--switch-thumb-translate)))}.c15t-ui-track-kWz9_:active .c15t-ui-thumb-mP7_o{transform:scale(.833)}.c15t-ui-thumb-disabled-fwQIy{box-shadow:none}.c15t-ui-root-Pd0rf[data-state=checked] .c15t-ui-thumb-disabled-fwQIy{transform:translateX(var(--switch-thumb-translate))}.c15t-ui-root-small-n0CMO{--switch-height:1rem;--switch-width:1.75rem;--switch-padding:.125rem;--switch-thumb-size:.625rem;--switch-thumb-size-disabled:.5rem;--switch-thumb-translate:calc(var(--switch-width) - var(--switch-thumb-size) - 2 * var(--switch-padding))}.c15t-ui-track-small-Ie8K6{width:100%;height:100%}.c15t-ui-thumb-small-uBOCk{width:var(--switch-thumb-size);height:var(--switch-thumb-size)}.c15t-ui-root-Pd0rf:focus-visible{outline:none}.c15t-ui-root-Pd0rf:focus-visible .c15t-ui-track-kWz9_{outline:2px solid var(--switch-focus-ring);outline-offset:2px}.c15t-dark .c15t-ui-root-Pd0rf:focus-visible .c15t-ui-track-kWz9_{outline-color:var(--switch-focus-ring-dark)}@media (prefers-reduced-motion:reduce){.c15t-ui-track-kWz9_,.c15t-ui-thumb-mP7_o{transition:none}}@media (hover:none){.c15t-ui-track-kWz9_:hover{background-color:var(--switch-background-color)}.c15t-ui-root-Pd0rf[data-state=checked] .c15t-ui-track-kWz9_:hover{background-color:var(--switch-background-color-checked)}}
|
|
56
|
+
|
|
57
|
+
/* primitives/tabs */
|
|
58
|
+
.c15t-ui-root-S5pMJ{gap:1rem;width:100%;display:grid}.c15t-ui-list-BZaPj{background:var(--tabs-list-background);border:1px solid var(--tabs-list-border);border-radius:var(--c15t-radius-md);grid-auto-flow:column;align-items:center;gap:.25rem;width:fit-content;padding:.25rem;display:inline-grid}.c15t-ui-list-vertical-cP2o0{grid-auto-flow:row}.c15t-ui-trigger-U8k4E{border-radius:calc(var(--c15t-radius-md) - .25rem);color:var(--tabs-trigger-color);cursor:pointer;font:inherit;transition:background-color var(--c15t-duration-fast) ease, color var(--c15t-duration-fast) ease;background:0 0;border:0;padding:.625rem .875rem;font-weight:500}.c15t-ui-trigger-U8k4E[data-state=active]{background:var(--tabs-trigger-active-background);color:var(--tabs-trigger-active-color)}.c15t-ui-trigger-U8k4E:focus-visible{outline:2px solid var(--tabs-focus-ring);outline-offset:2px}.c15t-ui-content-Iyncb{color:var(--c15t-text)}
|
|
59
|
+
|
|
60
|
+
/* components/consent-banner */
|
|
61
|
+
.c15t-ui-root-hE9Kz{box-sizing:border-box;z-index:999999998;width:100%;font-family:var(--consent-banner-font-family);line-height:var(--consent-banner-line-height);-webkit-text-size-adjust:var(--consent-banner-text-size-adjust);-webkit-font-smoothing:antialiased;tab-size:var(--consent-banner-tab-size);flex-direction:column;padding:1rem;display:flex;position:fixed}.c15t-ui-bannerVisible-pYYY9{opacity:1;transition:opacity var(--consent-banner-animation-duration) var(--consent-banner-animation-timing), transform var(--consent-banner-animation-duration) cubic-bezier(.34, 1.56, .64, 1);transform:translateY(0)}.c15t-ui-bannerHidden-J4VZ3{opacity:0;transition:opacity var(--consent-banner-animation-duration) var(--consent-banner-animation-timing), transform var(--consent-banner-animation-duration) var(--consent-banner-animation-timing);transform:translateY(50px)}@media (width>=640px){.c15t-ui-root-hE9Kz{width:auto;padding:1.5rem}}.c15t-ui-bottomLeft-CbyqH{bottom:0;left:0}.c15t-ui-bottomRight-iIIdC{bottom:0;right:0}.c15t-ui-topLeft-GzbNM{top:0;left:0}.c15t-ui-topRight-siV7C{top:0;right:0}.c15t-ui-card-AUyl8{border-radius:var(--consent-banner-border-radius);border-width:var(--consent-banner-border-width);border-color:var(--consent-banner-border-color);background-color:var(--consent-banner-background-color);width:100%;box-shadow:var(--consent-banner-shadow);position:relative;overflow:hidden}.c15t-ui-cardShell-HgKnk{width:min(100%, var(--consent-banner-max-width));flex-direction:column;display:flex}.c15t-dark .c15t-ui-card-AUyl8{background-color:var(--consent-banner-background-color-dark);border-color:var(--consent-banner-border-color-dark);box-shadow:var(--consent-banner-shadow-dark)}.c15t-ui-card-AUyl8[data-state=open]{animation:var(--consent-banner-entry-animation)}.c15t-ui-card-AUyl8[data-state=closed]{animation:var(--consent-banner-exit-animation)}.c15t-ui-card-AUyl8>:not([hidden])~:not([hidden]){border-top-width:var(--consent-banner-border-width);border-color:var(--consent-banner-border-color)}.c15t-dark .c15t-ui-card-AUyl8>:not([hidden])~:not([hidden]){border-color:var(--consent-banner-border-color-dark)}.c15t-ui-card-AUyl8:focus{outline-offset:2px;outline:none}@keyframes c15t-ui-enter-EoZFn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes c15t-ui-exit-Z4gI_{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}.c15t-ui-rejectButton-RvYLm,.c15t-ui-acceptButton-jdwM4,.c15t-ui-customizeButton-mj4u4{width:100%}@media (width>=640px){.c15t-ui-rejectButton-RvYLm,.c15t-ui-acceptButton-jdwM4,.c15t-ui-customizeButton-mj4u4{width:auto}}.c15t-ui-header-pel5O{color:var(--consent-banner-text-color);flex-direction:column;padding:1rem;display:flex}.c15t-dark .c15t-ui-header-pel5O{color:var(--consent-banner-text-color-dark)}@media (width>=640px){.c15t-ui-header-pel5O{padding:1.5rem}}.c15t-ui-header-pel5O>:not([hidden])~:not([hidden]){--consent-banner-space-y-reverse:0;margin-top:calc(.5rem * calc(1 - var(--consent-banner-space-y-reverse)));margin-bottom:calc(.5rem * var(--consent-banner-space-y-reverse))}.c15t-ui-footer-MwauQ{background-color:var(--consent-banner-footer-background-color);flex-direction:column;justify-content:space-between;gap:.75rem;padding:1rem 1.25rem;display:flex}.c15t-dark .c15t-ui-footer-MwauQ{background-color:var(--consent-banner-footer-background-color-dark)}@media (width>=640px){.c15t-ui-footer-MwauQ{flex-direction:row}}.c15t-ui-footerSubGroup-YlOOW{flex-direction:row;justify-content:space-between;gap:1rem;display:flex}.c15t-ui-footerSubGroup-YlOOW button{flex-grow:1}.c15t-ui-footerFill-fYXhD,.c15t-ui-footerColumn-TBxCf{flex-direction:column}.c15t-ui-footerSubGroupFill-HE0u1,.c15t-ui-footerSubGroupColumn-Iz6is,.c15t-ui-actionButtonFill-DOOO_{width:100%}.c15t-ui-description-ZuHLA{letter-spacing:-.006em;color:var(--consent-banner-description-color);font-size:.875rem;font-weight:400;line-height:1.25rem}.c15t-dark .c15t-ui-description-ZuHLA{color:var(--consent-banner-description-color-dark)}.c15t-ui-title-FWOWe{letter-spacing:-.011em;color:var(--consent-banner-title-color);font-size:1rem;font-weight:500;line-height:1.5rem}.c15t-dark .c15t-ui-title-FWOWe{color:var(--consent-banner-title-color-dark)}.c15t-ui-overlay-r7ckD{background-color:var(--consent-banner-overlay-background-color);z-index:999999997;position:fixed;inset:0}.c15t-ui-overlayVisible-uk8zb{opacity:1;transition:opacity var(--consent-banner-animation-duration) var(--consent-banner-animation-timing)}.c15t-ui-overlayHidden-pbl9E{opacity:0;transition:opacity var(--consent-banner-animation-duration) var(--consent-banner-animation-timing)}.c15t-dark .c15t-ui-overlay-r7ckD{background-color:var(--consent-banner-overlay-background-color-dark)}@media (prefers-reduced-motion:reduce){.c15t-ui-bannerVisible-pYYY9,.c15t-ui-bannerHidden-J4VZ3,.c15t-ui-overlayVisible-uk8zb,.c15t-ui-overlayHidden-pbl9E{transition:none}.c15t-ui-card-AUyl8[data-state=open],.c15t-ui-card-AUyl8[data-state=closed]{animation:none}}
|
|
62
|
+
|
|
63
|
+
/* components/consent-dialog */
|
|
64
|
+
.c15t-ui-root-SIREQ{box-sizing:border-box;isolation:isolate;font-family:var(--consent-dialog-font-family);line-height:var(--consent-dialog-line-height);-webkit-text-size-adjust:100%;tab-size:4;padding:var(--consent-dialog-card-padding-mobile);z-index:var(--consent-dialog-z-index);border-radius:var(--consent-dialog-card-radius);width:100%;height:var(--consent-dialog-height);background:0 0;border:0;justify-content:center;align-items:center;margin:0;display:flex;position:fixed;inset:0}.c15t-ui-root-SIREQ[dir=rtl]{direction:rtl}.c15t-ui-dialogVisible-kshSO{opacity:1;transition:opacity var(--consent-dialog-animation-duration) var(--consent-dialog-animation-timing)}.c15t-ui-dialogHidden-Nkf8B{opacity:0;transition:opacity var(--consent-dialog-animation-duration) var(--consent-dialog-animation-timing)}.c15t-ui-contentVisible-JdLax{opacity:1;transition:opacity var(--consent-dialog-animation-duration) var(--consent-dialog-animation-timing), transform var(--consent-dialog-animation-duration) cubic-bezier(.34, 1.56, .64, 1);transform:scale(1)}.c15t-ui-contentHidden-b7Eem{opacity:0;transition:opacity var(--consent-dialog-animation-duration) var(--consent-dialog-animation-timing), transform var(--consent-dialog-animation-duration) var(--consent-dialog-animation-timing);transform:scale(.95)}@media (width>=640px){.c15t-ui-root-SIREQ{padding:var(--consent-dialog-card-padding);width:auto}}.c15t-ui-container-kzMoS{flex-direction:column;width:100%;max-height:100%;display:flex}.c15t-ui-branding-cFvDg{justify-content:center;align-items:center;gap:var(--consent-dialog-branding-gap);font-size:var(--consent-dialog-branding-font-size);font-weight:var(--consent-dialog-branding-font-weight);line-height:var(--consent-dialog-branding-line-height);letter-spacing:var(--consent-dialog-branding-letter-spacing);color:var(--consent-dialog-foreground-color);border-radius:.25rem;margin:auto 0;padding:0 .5rem;text-decoration:none;display:flex}.c15t-ui-brandingCopy-VUhih{white-space:nowrap;align-items:baseline;gap:.25rem;min-width:0;display:inline-flex}.c15t-ui-brandingText-UTU4l{font-weight:var(--c15t-font-weight-medium)}.c15t-ui-brandingBy-wyO_G{font-weight:var(--c15t-font-weight-normal)}.c15t-ui-brandingWordmarkLabel-HiffM{white-space:nowrap;letter-spacing:-.03em}.c15t-ui-branding-cFvDg:focus-visible{box-shadow:0 0 0 2px var(--consent-dialog-branding-focus-color);outline:none}.c15t-dark .c15t-ui-branding-cFvDg:focus-visible{box-shadow:0 0 0 2px var(--consent-dialog-branding-focus-color-dark)}.c15t-dark .c15t-ui-branding-cFvDg{color:var(--consent-dialog-foreground-color-dark)}.c15t-ui-brandingC15T-zxnCt{flex:none;align-items:center;width:auto;max-width:100%;height:auto;display:inline-flex}.c15t-ui-brandingWordmark-Oke49{white-space:nowrap;flex:none;align-items:center;gap:.25rem;min-width:0;max-width:100%;display:inline-flex}.c15t-ui-brandingC15TMark-gG3qF{width:auto;max-width:100%;height:var(--consent-dialog-branding-icon-height);flex:none;align-items:center;display:inline-flex}.c15t-ui-brandingC15TMark-gG3qF>svg{aspect-ratio:446/445;flex:none;width:auto;max-width:100%;height:100%;display:block}.c15t-ui-brandingInth-HH4jL{max-width:100%;width:var(--consent-dialog-branding-icon-width);height:var(--consent-dialog-branding-icon-height);flex:none;align-items:center;display:inline-flex}.c15t-ui-brandingInth-HH4jL>svg{aspect-ratio:88/90;flex:none;width:auto;max-width:100%;height:100%;display:block}.c15t-ui-brandingTag-xHTlt{border:1px solid color-mix(in srgb, var(--c15t-primary), black 14%);max-width:calc(100% - 1.5rem);min-height:1.75rem;color:var(--c15t-text-on-primary,#fff);background-color:var(--c15t-primary);z-index:2;border-radius:.75rem .75rem .1875rem .1875rem;align-items:center;gap:.375rem;padding:.28125rem .625rem;display:inline-flex;position:absolute;box-shadow:inset 0 1px #ffffff29,0 1px 2px #0f172a1f}.c15t-ui-brandingTag-xHTlt .c15t-ui-brandingCopy-VUhih{font-size:var(--consent-dialog-branding-label-size);letter-spacing:.01em;color:var(--c15t-text-on-primary,#fff)}.c15t-ui-brandingTag-xHTlt .c15t-ui-brandingText-UTU4l,.c15t-ui-brandingTag-xHTlt .c15t-ui-brandingBy-wyO_G{line-height:1}.c15t-ui-brandingTag-xHTlt .c15t-ui-brandingWordmarkLabel-HiffM{font-size:var(--consent-dialog-branding-label-size);line-height:1}.c15t-ui-brandingTag-xHTlt .c15t-ui-brandingWordmark-Oke49{color:var(--c15t-text-on-primary,#fff);gap:.3125rem}.c15t-ui-brandingTag-xHTlt .c15t-ui-brandingC15TMark-gG3qF,.c15t-ui-brandingTag-xHTlt .c15t-ui-brandingInth-HH4jL{height:.9375rem;color:var(--c15t-text-on-primary,#fff)}.c15t-ui-brandingTagBanner-ruu5B{border-bottom-width:0;border-radius:.75rem .75rem 0 0;align-self:flex-end;margin-block-end:-1px;margin-inline-end:.75rem;position:relative;top:auto;right:auto;transform:none}.c15t-ui-brandingTagDialog-VHYim{right:var(--consent-dialog-card-padding-mobile);border-top-width:0;border-radius:0 0 .75rem .75rem;bottom:0;transform:translateY(calc(100% + 1px))}@media (width>=640px){.c15t-ui-brandingTagDialog-VHYim{right:var(--consent-dialog-card-padding)}}@media (width<=480px){.c15t-ui-brandingTag-xHTlt{gap:.375rem;max-width:calc(100% - 1rem);padding:.3125rem .625rem}.c15t-ui-brandingTag-xHTlt .c15t-ui-brandingCopy-VUhih,.c15t-ui-brandingTag-xHTlt .c15t-ui-brandingWordmarkLabel-HiffM{font-size:.625rem}.c15t-ui-brandingTag-xHTlt .c15t-ui-brandingC15TMark-gG3qF,.c15t-ui-brandingTag-xHTlt .c15t-ui-brandingInth-HH4jL{height:.8125rem}}.c15t-ui-headerWrapper-unPKA{position:relative}.c15t-ui-closeButton-xUsO9{position:absolute;top:22px;right:22px}.c15t-ui-footer-wtxGp{border-top:solid 1px var(--consent-dialog-stroke-color);justify-content:center;padding-top:1rem;padding-bottom:1rem;font-size:14px}.c15t-ui-overlay-zmCXe{color:var(--consent-dialog-link-text-color);background-color:var(--consent-dialog-overlay-background-color);z-index:var(--consent-dialog-overlay-z-index);position:fixed;inset:0}.c15t-ui-overlayVisible-csRAE{opacity:1;transition:opacity var(--consent-dialog-animation-duration) var(--consent-dialog-animation-timing)}.c15t-ui-overlayHidden-zcSPn{opacity:0;transition:opacity var(--consent-dialog-animation-duration) var(--consent-dialog-animation-timing)}.c15t-dark .c15t-ui-overlay-zmCXe{background-color:var(--consent-dialog-overlay-background-color-dark);color:var(--consent-dialog-link-text-color-dark)}.c15t-ui-card-OCFER{box-sizing:border-box;width:min(100%, var(--consent-dialog-max-width));border-radius:var(--consent-dialog-card-radius);border:var(--consent-dialog-border-width) var(--consent-dialog-border-style) var(--consent-dialog-border-color);background-color:var(--consent-dialog-background-color);max-height:100%;color:var(--consent-dialog-foreground-color);box-shadow:var(--consent-dialog-card-shadow);flex-direction:column;margin:0 auto;display:flex;position:relative;overflow:visible}.c15t-dark .c15t-ui-card-OCFER{background-color:var(--consent-dialog-background-color-dark);color:var(--consent-dialog-foreground-color-dark);border-color:var(--consent-dialog-border-color-dark)}.c15t-ui-header-BhjKW{padding:var(--consent-dialog-card-padding);gap:var(--consent-dialog-header-gap);flex-direction:column;flex-shrink:0;display:flex}.c15t-ui-header-BhjKW>*+*{margin-top:var(--consent-dialog-card-gap)}.c15t-ui-title-nqdol{font-weight:var(--consent-dialog-title-font-weight);font-size:var(--consent-dialog-title-font-size);letter-spacing:var(--consent-dialog-title-letter-spacing);line-height:1}.c15t-ui-description-qNkW1{color:var(--consent-dialog-muted-color);font-size:var(--consent-dialog-description-font-size);font-weight:var(--consent-dialog-description-font-weight);line-height:var(--consent-dialog-description-line-height)}.c15t-dark .c15t-ui-description-qNkW1{color:var(--consent-dialog-muted-color-dark)}.c15t-ui-content-lXTS6{padding:var(--consent-dialog-card-padding);gap:var(--consent-dialog-content-gap);flex:auto;min-height:0;padding-top:0;overflow-y:auto}.c15t-ui-footer-wtxGp{justify-content:center;align-items:center;gap:var(--consent-dialog-footer-gap);font-size:var(--consent-dialog-footer-font-size);padding-top:var(--consent-dialog-footer-padding-y);padding-bottom:var(--consent-dialog-footer-padding-y);border-top:var(--consent-dialog-border-width) var(--consent-dialog-border-style) var(--consent-dialog-stroke-color);flex-direction:column;flex-shrink:0;display:flex}.c15t-ui-footer-wtxGp:empty{border-top:none;display:none}.c15t-dark .c15t-ui-footer-wtxGp{border-color:var(--consent-dialog-stroke-color-dark)}.c15t-ui-footer-wtxGp.c15t-ui-brandingFooter-HAeuI{border-top:0;height:0;min-height:0;padding:0;position:relative;overflow:visible}.c15t-ui-footer-wtxGp.c15t-ui-brandingFooter-HAeuI:empty{display:none}@media (prefers-reduced-motion:reduce){.c15t-ui-dialogVisible-kshSO,.c15t-ui-dialogHidden-Nkf8B,.c15t-ui-contentVisible-JdLax,.c15t-ui-contentHidden-b7Eem,.c15t-ui-overlayVisible-csRAE,.c15t-ui-overlayHidden-zcSPn{transition:none}}
|
|
65
|
+
|
|
66
|
+
/* components/consent-dialog-trigger */
|
|
67
|
+
.c15t-ui-trigger-BryZ5{--cdt-size-sm:32px;--cdt-size-md:40px;--cdt-size-lg:48px;--cdt-bg:var(--c15t-surface,#fff);--cdt-bg-hover:var(--c15t-surface-hover,var(--cdt-bg));--cdt-border:var(--c15t-border,#e5e5e5);--cdt-shadow:var(--c15t-shadow-lg,0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a);--cdt-shadow-hover:var(--c15t-shadow-xl,0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a);--cdt-radius:var(--c15t-radius-full,9999px);--cdt-offset:var(--c15t-space-md,20px);--cdt-transition-duration:var(--c15t-motion-duration,.2s);--cdt-transition-easing:var(--c15t-motion-easing,ease-out);--cdt-snap-duration:var(--c15t-motion-duration-slow,.2s);--cdt-snap-easing:var(--c15t-motion-easing-smooth,cubic-bezier(.77, 0, .175, 1));--cdt-icon-color:var(--c15t-text,#171717);--cdt-focus-ring:var(--c15t-primary,#3b82f6);z-index:9999;width:var(--cdt-size-md);height:var(--cdt-size-md);border:1px solid var(--cdt-border);border-radius:var(--cdt-radius);background:var(--cdt-bg);box-shadow:var(--cdt-shadow);cursor:grab;transition:transform var(--cdt-transition-duration) var(--cdt-transition-easing), box-shadow var(--cdt-transition-duration) var(--cdt-transition-easing), background var(--cdt-transition-duration) var(--cdt-transition-easing);touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;will-change:transform;justify-content:center;align-items:center;margin:0;padding:0;display:flex;position:fixed}@media (hover:hover) and (pointer:fine){.c15t-ui-trigger-BryZ5:hover{background:var(--cdt-bg-hover);box-shadow:var(--cdt-shadow-hover)}}.c15t-ui-trigger-BryZ5:active,.c15t-ui-trigger-BryZ5.c15t-ui-dragging-HLEr2{cursor:grabbing;transform:scale(1.02)}.c15t-ui-trigger-BryZ5:focus{outline:none}.c15t-ui-trigger-BryZ5:focus-visible{outline:2px solid var(--cdt-focus-ring);outline-offset:2px}.c15t-ui-sm-meEur{width:var(--cdt-size-sm);height:var(--cdt-size-sm)}.c15t-ui-md-lnKl5{width:var(--cdt-size-md);height:var(--cdt-size-md)}.c15t-ui-lg-vVljq{width:var(--cdt-size-lg);height:var(--cdt-size-lg)}.c15t-ui-icon-QeBf0{width:50%;height:50%;color:var(--cdt-icon-color);pointer-events:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.c15t-ui-icon-QeBf0 svg{width:100%;height:100%}.c15t-ui-text-Q2Rdp{margin-left:var(--c15t-space-xs,6px);font-family:var(--c15t-font-family,system-ui, sans-serif);font-size:var(--c15t-font-size-sm,14px);font-weight:var(--c15t-font-weight-medium,500);color:var(--cdt-icon-color);white-space:nowrap;pointer-events:none;line-height:1}.c15t-ui-trigger-BryZ5:has(.c15t-ui-text-Q2Rdp){width:auto;height:auto;padding:var(--c15t-space-sm,8px) var(--c15t-space-md,16px);border-radius:var(--c15t-radius-lg,12px);gap:var(--c15t-space-xs,6px)}.c15t-ui-trigger-BryZ5:has(.c15t-ui-text-Q2Rdp) .c15t-ui-icon-QeBf0{width:16px;height:16px}.c15t-ui-trigger-BryZ5:has(.c15t-ui-text-Q2Rdp).c15t-ui-sm-meEur{padding:var(--c15t-space-xs,6px) var(--c15t-space-sm,10px)}.c15t-ui-trigger-BryZ5:has(.c15t-ui-text-Q2Rdp).c15t-ui-sm-meEur .c15t-ui-icon-QeBf0{width:14px;height:14px}.c15t-ui-trigger-BryZ5:has(.c15t-ui-text-Q2Rdp).c15t-ui-sm-meEur .c15t-ui-text-Q2Rdp{font-size:var(--c15t-font-size-xs,12px)}.c15t-ui-trigger-BryZ5:has(.c15t-ui-text-Q2Rdp).c15t-ui-lg-vVljq{padding:var(--c15t-space-md,12px) var(--c15t-space-lg,20px)}.c15t-ui-trigger-BryZ5:has(.c15t-ui-text-Q2Rdp).c15t-ui-lg-vVljq .c15t-ui-icon-QeBf0{width:20px;height:20px}.c15t-ui-trigger-BryZ5:has(.c15t-ui-text-Q2Rdp).c15t-ui-lg-vVljq .c15t-ui-text-Q2Rdp{font-size:var(--c15t-font-size-md,16px)}.c15t-ui-bottomRight-uY0Me{right:var(--cdt-offset);bottom:var(--cdt-offset)}.c15t-ui-bottomLeft-w0x9m{bottom:var(--cdt-offset);left:var(--cdt-offset)}.c15t-ui-topRight-yHVfA{top:var(--cdt-offset);right:var(--cdt-offset)}.c15t-ui-topLeft-wGrIZ{top:var(--cdt-offset);left:var(--cdt-offset)}.c15t-ui-snapping-dPWx_{transition:top var(--cdt-snap-duration) var(--cdt-snap-easing), right var(--cdt-snap-duration) var(--cdt-snap-easing), bottom var(--cdt-snap-duration) var(--cdt-snap-easing), left var(--cdt-snap-duration) var(--cdt-snap-easing), transform var(--cdt-snap-duration) var(--cdt-snap-easing)}.c15t-ui-hidden-QnkHi{display:none}.c15t-dark .c15t-ui-trigger-BryZ5{--cdt-bg:var(--c15t-surface,#262626);--cdt-bg-hover:var(--c15t-surface-hover,#404040);--cdt-border:var(--c15t-border,#404040);--cdt-icon-color:var(--c15t-text,#fafafa);--cdt-shadow:0 10px 15px -3px #0000004d, 0 4px 6px -4px #0000004d;--cdt-shadow-hover:0 20px 25px -5px #0006, 0 8px 10px -6px #0006}@media (prefers-reduced-motion:reduce){.c15t-ui-trigger-BryZ5,.c15t-ui-snapping-dPWx_{transition:none}}
|
|
68
|
+
|
|
69
|
+
/* components/consent-widget */
|
|
70
|
+
.c15t-ui-widget-tTKyY{width:100%;font-family:var(--consent-widget-font-family);line-height:var(--consent-widget-line-height);-webkit-font-smoothing:antialiased;position:relative}.c15t-ui-widget-tTKyY>:not([hidden])~:not([hidden]){--space-y-reverse:0;margin-top:calc(1.5rem * calc(1 - var(--space-y-reverse)));margin-bottom:calc(1.5rem * var(--space-y-reverse))}.c15t-ui-card-UpkfF{width:min(100%, var(--consent-widget-max-width));border-radius:var(--consent-widget-radius);border:var(--consent-widget-border-width) solid var(--consent-widget-border-color);background-color:var(--consent-widget-background-color);position:relative}.c15t-dark .c15t-ui-card-UpkfF{background-color:var(--consent-widget-background-color-dark);border-color:var(--consent-widget-border-color-dark)}.c15t-ui-card-UpkfF[data-state=open]{animation:var(--consent-widget-entry-animation)}.c15t-ui-card-UpkfF[data-state=closed]{animation:var(--consent-widget-exit-animation)}.c15t-ui-header-UNVT2{gap:var(--consent-widget-gap);padding:var(--consent-widget-padding);flex-direction:column;display:flex}.c15t-ui-title-VZSLD{font-size:var(--consent-widget-title-size);line-height:var(--consent-widget-title-line-height);letter-spacing:var(--consent-widget-title-tracking);font-weight:var(--consent-widget-title-weight);color:var(--consent-widget-text-color)}.c15t-dark .c15t-ui-title-VZSLD{color:var(--consent-widget-text-color-dark)}.c15t-ui-description-wIwCB{color:var(--consent-widget-text-muted-color)}.c15t-dark .c15t-ui-description-wIwCB{color:var(--consent-widget-text-muted-color-dark)}.c15t-ui-content-vvxqv{padding:0 var(--consent-widget-padding);padding-bottom:var(--consent-widget-padding)}.c15t-ui-footer-vPM5F{border-top:1px solid var(--consent-widget-border-color);padding:var(--consent-widget-footer-padding);background-color:var(--consent-widget-footer-background-color);justify-content:space-between;gap:1rem;display:flex}.c15t-dark .c15t-ui-footer-vPM5F{border-color:var(--consent-widget-border-color-dark);background-color:var(--consent-widget-footer-background-color-dark)}@media (width<=640px){.c15t-ui-footer-vPM5F{flex-direction:column}}@media (width>=640px){.c15t-ui-footer-vPM5F{flex-direction:row}}.c15t-ui-footerSubGroup-DllFT{flex-direction:row;justify-content:space-between;gap:1rem;display:flex}.c15t-ui-footerFill-P_kQs,.c15t-ui-footerColumn-ezdXA{flex-direction:column}.c15t-ui-footerSubGroupFill-vHGHl,.c15t-ui-footerSubGroupColumn-HCrX0{width:100%}.c15t-ui-actionButtonFill-Ane9w{flex:1;width:100%}@media (width<=640px){.c15t-ui-footerSubGroup-DllFT,.c15t-ui-footerSubGroup-DllFT button{width:100%}}.c15t-ui-branding-OBSbe{border-top:var(--consent-widget-border-width) solid var(--consent-widget-border-color);justify-content:center;width:100%;padding-top:1rem;display:flex}.c15t-dark .c15t-ui-branding-OBSbe{border-color:var(--consent-widget-border-color-dark)}.c15t-ui-brandingLink-RAOti{color:var(--consent-widget-link-text-color);text-align:center;flex-direction:row;flex:1;justify-content:center;align-items:center;gap:.5rem;text-decoration:none;display:flex}.c15t-dark .c15t-ui-brandingLink-RAOti{color:var(--consent-widget-link-text-color-dark)}.c15t-ui-brandingLink-RAOti svg{height:1.2rem}@keyframes c15t-ui-enter-oqaf_{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes c15t-ui-exit-Yh5ig{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}.c15t-ui-bottomLeft-MFOD6{bottom:0;left:0}.c15t-ui-bottomRight-PBeso{bottom:0;right:0}.c15t-ui-topLeft-uEV5R{top:0;left:0}.c15t-ui-topRight-jj0Fj{top:0;right:0}.c15t-ui-accordionItem-phxAm{border-radius:var(--consent-widget-accordion-radius);border:1px solid var(--consent-widget-accordion-border-color);background-color:var(--consent-widget-accordion-background-color);padding:0;position:relative;overflow:visible}.c15t-ui-accordionTriggerInner-OxxsR:focus-visible{outline:none}.c15t-ui-accordionItem-phxAm:has(.c15t-ui-accordionTriggerInner-OxxsR:focus-visible){outline:2px solid var(--consent-widget-accordion-focus-ring);outline-offset:-1px}.c15t-dark .c15t-ui-accordionItem-phxAm:has(.c15t-ui-accordionTriggerInner-OxxsR:focus-visible){outline-color:var(--consent-widget-accordion-focus-ring-dark)}.c15t-dark .c15t-ui-accordionItem-phxAm{border-color:var(--consent-widget-accordion-border-color-dark);background-color:var(--consent-widget-accordion-background-color-dark)}.c15t-ui-accordionList-Ojp24{gap:var(--consent-widget-accordion-stack-gap);display:grid}.c15t-ui-accordionTrigger-hVnri{align-items:center;gap:var(--consent-widget-gap);box-sizing:border-box;width:100%;padding:var(--consent-widget-accordion-padding);border-radius:var(--consent-widget-accordion-radius);color:var(--consent-widget-accordion-text-color);transition:background-color var(--consent-widget-accordion-duration) var(--consent-widget-accordion-ease);background-color:#0000;grid-template-columns:minmax(0,1fr) auto;display:grid}.c15t-ui-accordionTrigger-hVnri:hover{background-color:var(--consent-widget-accordion-background-hover)}.c15t-dark .c15t-ui-accordionTrigger-hVnri{color:var(--consent-widget-accordion-text-color-dark)}.c15t-dark .c15t-ui-accordionTrigger-hVnri:hover{background-color:var(--consent-widget-accordion-background-hover-dark)}.c15t-ui-accordionTriggerInner-OxxsR{appearance:none;align-items:center;gap:var(--consent-widget-gap);min-width:0;min-height:calc(var(--consent-widget-accordion-icon-size) + .25rem);font-size:var(--consent-widget-title-size);line-height:var(--c15t-line-height-tight);font-weight:var(--c15t-font-weight-regular);border-radius:var(--consent-widget-accordion-radius);text-align:left;width:100%;color:inherit;cursor:pointer;background:0 0;border:0;flex:auto;align-self:stretch;padding:0;display:flex;position:relative}.c15t-ui-accordionTriggerInner-OxxsR [data-slot=preference-item-leading]{margin-inline:0}.c15t-ui-accordionTitle-oVDJ5{font:inherit;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0}.c15t-ui-accordionContent-S6PcX{color:var(--consent-widget-accordion-content-color);padding:0;font-size:.875rem;line-height:1.5}.c15t-ui-accordionContent-S6PcX>[data-slot=preference-item-content-viewport]{padding-top:0;padding-inline-start:calc(var(--consent-widget-accordion-icon-size) + var(--consent-widget-gap));padding-inline-end:var(--consent-widget-accordion-padding)}.c15t-ui-accordionContent-S6PcX[data-state=open]>[data-slot=preference-item-content-viewport]{padding-top:0;padding-bottom:var(--consent-widget-accordion-padding)}.c15t-ui-accordionContent-S6PcX[data-state=closed]>[data-slot=preference-item-content-viewport]{padding-bottom:0}.c15t-ui-accordionContent-S6PcX>[data-slot=preference-item-content-viewport]>div{padding-top:0}.c15t-dark .c15t-ui-accordionContent-S6PcX{color:var(--consent-widget-accordion-content-color-dark)}.c15t-ui-accordionArrow-yFH7h{color:var(--consent-widget-accordion-arrow-color);width:var(--consent-widget-accordion-icon-size);height:var(--consent-widget-accordion-icon-size);transition:transform var(--consent-widget-accordion-duration) var(--consent-widget-accordion-ease)}.c15t-dark .c15t-ui-accordionArrow-yFH7h{color:var(--consent-widget-accordion-arrow-color-dark)}.c15t-ui-accordionItem-phxAm[data-state=open] .c15t-ui-accordionArrow-yFH7h{transform:rotate(180deg)}.c15t-ui-switch-YnFJT{cursor:pointer;flex-shrink:0;align-self:center;position:relative;top:-1px}@media (prefers-reduced-motion:reduce){.c15t-ui-card-UpkfF[data-state=open],.c15t-ui-card-UpkfF[data-state=closed]{animation:none}.c15t-ui-accordionTrigger-hVnri,.c15t-ui-accordionArrow-yFH7h{transition:none}}
|
|
71
|
+
|
|
72
|
+
/* components/frame */
|
|
73
|
+
.c15t-ui-placeholder-eDKsb{font-family:var(--frame-font-family);line-height:var(--frame-line-height);-webkit-font-smoothing:antialiased;text-align:center;border-radius:var(--frame-placeholder-border-radius);border-width:var(--frame-placeholder-border-width);border-color:var(--frame-placeholder-border-color);background-color:var(--frame-placeholder-background-color);width:100%;height:100%;opacity:var(--frame-placeholder-opacity);pointer-events:auto;justify-content:center;align-items:center;gap:var(--frame-placeholder-gap);animation:var(--frame-placeholder-animation);flex-direction:column;padding:1rem;display:flex;transform:scale(1)}@keyframes c15t-ui-fadeIn-moBzd{to{opacity:1}}.c15t-dark .c15t-ui-placeholder-eDKsb{background-color:var(--frame-placeholder-background-color-dark);border-color:var(--frame-placeholder-border-color-dark);box-shadow:var(--frame-placeholder-shadow-dark)}.c15t-ui-title-Z2LtT{letter-spacing:-.011em;color:var(--frame-placeholder-title-color);font-size:1rem;font-weight:500;line-height:1.5rem}.c15t-dark .c15t-ui-title-Z2LtT{color:var(--frame-placeholder-title-color-dark)}@media (prefers-reduced-motion:reduce){.c15t-ui-placeholder-eDKsb{opacity:1;animation:none}}
|
package/dist/version.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const __rslib_import_meta_url__="u"<typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_require__={};__webpack_require__.d=(e,_)=>{for(var r in _)__webpack_require__.o(_,r)&&!__webpack_require__.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:_[r]})},__webpack_require__.o=(e,_)=>Object.prototype.hasOwnProperty.call(e,_),__webpack_require__.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{version:()=>version});const version="2.0.
|
|
1
|
+
"use strict";const __rslib_import_meta_url__="u"<typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_require__={};__webpack_require__.d=(e,_)=>{for(var r in _)__webpack_require__.o(_,r)&&!__webpack_require__.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:_[r]})},__webpack_require__.o=(e,_)=>Object.prototype.hasOwnProperty.call(e,_),__webpack_require__.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{version:()=>version});const version="2.0.3";for(var __rspack_i in exports.version=__webpack_exports__.version,__webpack_exports__)-1===["version"].indexOf(__rspack_i)&&(exports[__rspack_i]=__webpack_exports__[__rspack_i]);Object.defineProperty(exports,"__esModule",{value:!0});
|
package/dist/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
let e="2.0.
|
|
1
|
+
let e="2.0.3";export{e as version};
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Provides the overlay backdrop component for the consent management interface.
|
|
4
4
|
* Implements accessible modal behavior with animation support.
|
|
5
5
|
*/
|
|
6
|
-
import { type
|
|
6
|
+
import { type CSSProperties, type HTMLAttributes } from 'react';
|
|
7
7
|
import type { ThemeValue } from '../../../types/theme';
|
|
8
8
|
/**
|
|
9
9
|
* Props for the Overlay component.
|
|
@@ -15,25 +15,17 @@ import type { ThemeValue } from '../../../types/theme';
|
|
|
15
15
|
*
|
|
16
16
|
* @public
|
|
17
17
|
*/
|
|
18
|
-
|
|
19
|
-
* Props for the Overlay component.
|
|
20
|
-
*
|
|
21
|
-
* @remarks
|
|
22
|
-
* Extends {@link PropsWithChildren} so that the overlay can optionally wrap
|
|
23
|
-
* its compound components (e.g. `ConsentDialog.Card`). This resolves
|
|
24
|
-
* TypeScript errors when consumers nest elements inside
|
|
25
|
-
* `<ConsentDialog.Root>`.
|
|
26
|
-
*/
|
|
27
|
-
export type OverlayProps = PropsWithChildren<{
|
|
18
|
+
export interface OverlayProps extends Omit<HTMLAttributes<HTMLDivElement>, 'style'> {
|
|
28
19
|
/**
|
|
29
20
|
* Custom styles to override default overlay styling.
|
|
30
21
|
*
|
|
31
22
|
* @remarks
|
|
32
|
-
* -
|
|
23
|
+
* - Accepts normal React inline styles
|
|
24
|
+
* - Also accepts the legacy string class name or object with className and style properties
|
|
33
25
|
* - Styles are merged with theme styles and default styles
|
|
34
26
|
* - Useful for customizing overlay appearance while maintaining functionality
|
|
35
27
|
*/
|
|
36
|
-
style?: ThemeValue;
|
|
28
|
+
style?: CSSProperties | ThemeValue;
|
|
37
29
|
/**
|
|
38
30
|
* Disables default styling when true.
|
|
39
31
|
*
|
|
@@ -43,7 +35,7 @@ export type OverlayProps = PropsWithChildren<{
|
|
|
43
35
|
* - Maintains functionality without visual opinions
|
|
44
36
|
*/
|
|
45
37
|
noStyle?: boolean;
|
|
46
|
-
}
|
|
47
|
-
declare const ConsentDialogOverlay:
|
|
48
|
-
declare const Overlay:
|
|
38
|
+
}
|
|
39
|
+
declare const ConsentDialogOverlay: import("react").ForwardRefExoticComponent<OverlayProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
40
|
+
declare const Overlay: import("react").ForwardRefExoticComponent<OverlayProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
49
41
|
export { ConsentDialogOverlay, Overlay };
|
|
@@ -69,6 +69,7 @@ export interface ConsentWidgetCompoundComponent extends FC<ConsentWidgetProps> {
|
|
|
69
69
|
* slots: {
|
|
70
70
|
* consentWidgetAccordion: 'rounded-3xl border border-black/10',
|
|
71
71
|
* consentWidgetFooter: 'border-t border-black/10',
|
|
72
|
+
* consentWidgetFooterSubGroup: 'gap-3',
|
|
72
73
|
* },
|
|
73
74
|
* },
|
|
74
75
|
* }}
|
|
@@ -21,6 +21,16 @@ export declare const InthLogo: (props: SVGProps<SVGSVGElement> & IconProps) => i
|
|
|
21
21
|
* INTH icon-only mark for compact placements like floating triggers.
|
|
22
22
|
*/
|
|
23
23
|
export declare const InthIconOnly: (props: SVGProps<SVGSVGElement> & IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
24
|
+
/**
|
|
25
|
+
* Wordmark logo for the hosted consent product (inth.com).
|
|
26
|
+
*
|
|
27
|
+
* Used in marketing surfaces such as the optional banner attribution and
|
|
28
|
+
* the consent dialog footer. Render inside a flow where its native
|
|
29
|
+
* 595x97 viewBox can scale freely (e.g. an `inline-block` parent).
|
|
30
|
+
*
|
|
31
|
+
* @param title - Accessible title announced to screen readers. Defaults to "Consent".
|
|
32
|
+
* @param titleId - DOM id for the SVG `<title>` element. Must be unique on the page when rendered more than once.
|
|
33
|
+
*/
|
|
24
34
|
export declare const ConsentLogo: ({ title, titleId, ...props }: SVGProps<SVGSVGElement> & IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
25
35
|
/**
|
|
26
36
|
* Consent icon only (without text).
|
package/dist-types/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const version = "2.0.
|
|
1
|
+
export declare const version = "2.0.3";
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: AI Agents
|
|
3
|
+
description: Integrate c15t with AI coding assistants using the docs bundled in each package and c15t agent skills. Give agents version-matched local docs for consent management, banners, script loading, callbacks, and integrations.
|
|
4
|
+
lastModified: 2026-03-24
|
|
5
|
+
---
|
|
6
|
+
## Bundled Docs
|
|
7
|
+
|
|
8
|
+
Every supported c15t package now ships docs inside the installed package itself.
|
|
9
|
+
|
|
10
|
+
### Where to find them
|
|
11
|
+
|
|
12
|
+
* `node_modules/c15t/docs/README.md`
|
|
13
|
+
* `node_modules/@c15t/react/docs/README.md`
|
|
14
|
+
* `node_modules/@c15t/nextjs/docs/README.md`
|
|
15
|
+
* `node_modules/@c15t/backend/docs/README.md`
|
|
16
|
+
|
|
17
|
+
Start with the package `README.md`, then follow its linked pages for the relevant workflow.
|
|
18
|
+
|
|
19
|
+
These docs are version-matched to the exact c15t package version in your project, including generated reference content like prop and type tables.
|
|
20
|
+
|
|
21
|
+
### Why use them
|
|
22
|
+
|
|
23
|
+
If your app uses multiple c15t packages, use the docs from each relevant installed package instead of relying on stale model knowledge.
|
|
24
|
+
|
|
25
|
+
### Agent philosophy
|
|
26
|
+
|
|
27
|
+
When an AI tool is helping with c15t behavior, it should read the installed c15t docs first and use model knowledge second. That keeps consent flows, script gating, banner behavior, and integrations aligned with the exact version you have installed.
|
|
28
|
+
|
|
29
|
+
### Customization ladder for agents
|
|
30
|
+
|
|
31
|
+
When an agent is working on consent UI, it should choose the lowest-power tool that solves the task:
|
|
32
|
+
|
|
33
|
+
1. Start with the pre-built component and its existing props or provider options
|
|
34
|
+
2. Use `theme` tokens for semantic visual changes
|
|
35
|
+
3. Use `theme.slots` for targeted styling of specific parts
|
|
36
|
+
4. Use CSS variables or className-level overrides only when integrating with external styles
|
|
37
|
+
5. Use compound components only when the markup order must change
|
|
38
|
+
6. Use `noStyle` only when c15t structure is still correct but all styling must be replaced
|
|
39
|
+
7. Use headless hooks only when markup and behavior both need to be rebuilt
|
|
40
|
+
|
|
41
|
+
For common tasks:
|
|
42
|
+
|
|
43
|
+
* Banner footer background -> `theme.colors.surfaceHover`
|
|
44
|
+
* Banner card background -> `theme.colors.surface`
|
|
45
|
+
* Banner card/footer/title tweaks -> banner slots
|
|
46
|
+
* Stock action styling -> `theme.consentActions`
|
|
47
|
+
* Copy changes -> `ConsentManagerProvider.options.i18n`
|
|
48
|
+
|
|
49
|
+
If a token appears not to work, the agent should verify the token-to-component mapping before suggesting CSS overrides, `!important`, `noStyle`, or headless mode.
|
|
50
|
+
|
|
51
|
+
***
|
|
52
|
+
|
|
53
|
+
## Agent Skills
|
|
54
|
+
|
|
55
|
+
c15t publishes agent skills that give AI coding assistants deep knowledge of c15t's APIs, components, and configuration. Skills are reusable workflows and tool-specific guidance, not version-matched local docs.
|
|
56
|
+
|
|
57
|
+
### Installation
|
|
58
|
+
|
|
59
|
+
Via the c15t CLI:
|
|
60
|
+
|
|
61
|
+
|Package manager|Command|
|
|
62
|
+
|:--|:--|
|
|
63
|
+
|npm|`npx @c15t/cli install-skills`|
|
|
64
|
+
|pnpm|`pnpm dlx @c15t/cli install-skills`|
|
|
65
|
+
|yarn|`yarn dlx @c15t/cli install-skills`|
|
|
66
|
+
|bun|`bunx @c15t/cli install-skills`|
|
|
67
|
+
|
|
68
|
+
Or directly:
|
|
69
|
+
|
|
70
|
+
|Package manager|Command|
|
|
71
|
+
|:--|:--|
|
|
72
|
+
|npm|`npx skills add c15t/skills`|
|
|
73
|
+
|pnpm|`pnpm dlx skills add c15t/skills`|
|
|
74
|
+
|yarn|`yarn dlx skills add c15t/skills`|
|
|
75
|
+
|bun|`bunx skills add c15t/skills`|
|
|
76
|
+
|
|
77
|
+
### What skills provide
|
|
78
|
+
|
|
79
|
+
* **Styling customization** — strict escalation guidance across props, tokens, slots, CSS variables, compound components, `noStyle`, and headless
|
|
80
|
+
* **Internationalization** — translation setup, locale routing integration
|
|
81
|
+
* **Script management** — configuring third-party scripts with consent categories
|
|
82
|
+
* **Component setup** — ConsentBanner, ConsentDialog, provider configuration
|
|
83
|
+
|
|
84
|
+
### Supported tools
|
|
85
|
+
|
|
86
|
+
* Claude Code
|
|
87
|
+
* Cursor
|
|
88
|
+
* GitHub Copilot (via `.github/skills`)
|
|
89
|
+
* Any agent that supports the skills format
|
|
90
|
+
|
|
91
|
+
***
|
|
92
|
+
|
|
93
|
+
## When to use which
|
|
94
|
+
|
|
95
|
+
Use bundled docs when:
|
|
96
|
+
|
|
97
|
+
* Your agent can read files in the local project
|
|
98
|
+
* You want version-matched docs from the installed c15t packages
|
|
99
|
+
* You want a package-local README that tells the agent which detailed docs to read first
|
|
100
|
+
* You want concrete guidance for consent management, cookie banners, consent dialogs, preference centers, script loading, callbacks, and integrations
|
|
101
|
+
|
|
102
|
+
Use agent skills when:
|
|
103
|
+
|
|
104
|
+
* Your tool supports the skills ecosystem
|
|
105
|
+
* You want reusable workflows and tool-specific guidance that can point back to the installed package README files
|
|
106
|
+
|
|
107
|
+
Use both when:
|
|
108
|
+
|
|
109
|
+
* Your tool supports both local file context and skills
|
|
110
|
+
* You want local package docs plus reusable setup and configuration help
|
|
111
|
+
* You want the bundled package docs as the source of truth plus a reusable decision tree for customization
|
|
@@ -146,9 +146,9 @@ IAB TCF 2.3 configuration.
|
|
|
146
146
|
|
|
147
147
|
|Property|Type|Description|Default|Required|
|
|
148
148
|
|:--|:--|:--|:--|:--:|
|
|
149
|
-
|enabled|boolean|Enable IAB TCF 2.3 mode. Note: Only works in 'hosted' client mode (legacy alias: 'c15t') because it requires a backend. Options: Fetch GVL from gvl.
|
|
149
|
+
|enabled|boolean|Enable IAB TCF 2.3 mode. Note: Only works in 'hosted' client mode (legacy alias: 'c15t') because it requires a backend. Options: Fetch GVL from gvl.inth.app; Initialize \_\_tcfapi CMP API; Generate TC Strings for IAB compliance|-|✅ Required|
|
|
150
150
|
|\_module|IABModule \|undefined|IAB runtime module injected by \`@c15t/iab\`.|-|Optional|
|
|
151
|
-
|cmpId|number \|undefined|CMP ID registered with IAB Europe. When using
|
|
151
|
+
|cmpId|number \|undefined|CMP ID registered with IAB Europe. When using inth.com as the backend, this is automatically provided via the \`/init\` endpoint — no client-side configuration needed. Only set this if you self-host and have your own CMP registration. A valid (non-zero) CMP ID is required for IAB TCF compliance.|-|Optional|
|
|
152
152
|
|cmpVersion|string \|number \|undefined|CMP version. When omitted, defaults to package version from \`\~/cmp-defaults\` (which uses \~/version).|-|Optional|
|
|
153
153
|
|vendors|number\[] \|undefined|IAB-registered vendor IDs to include (optional). Used to scope the vendor list when fetching GVL or when hosted fallback paths are used (e.g. if GVL fetch fails).|-|Optional|
|
|
154
154
|
|customVendors|NonIABVendor \|undefined|Custom vendors not registered with IAB. These are displayed separately in the consent UI with a note that they have different privacy practices than IAB vendors.|-|Optional|
|
|
@@ -38,7 +38,7 @@ Each consent category is rendered as an expandable accordion item. Clicking the
|
|
|
38
38
|
## Styling First
|
|
39
39
|
|
|
40
40
|
> ℹ️ **Info:**
|
|
41
|
-
> Most widget customization should stay in the stock component. Use theme tokens and slots such as consentWidgetAccordion, consentWidgetFooter, and toggle before reaching for compound components. See Styling Overview.
|
|
41
|
+
> Most widget customization should stay in the stock component. Use theme tokens and slots such as consentWidgetAccordion, consentWidgetFooter, consentWidgetFooterSubGroup, and toggle before reaching for compound components. See Styling Overview.
|
|
42
42
|
|
|
43
43
|
```tsx
|
|
44
44
|
<ConsentManagerProvider
|
|
@@ -51,6 +51,7 @@ Each consent category is rendered as an expandable accordion item. Clicking the
|
|
|
51
51
|
slots: {
|
|
52
52
|
consentWidgetAccordion: 'rounded-3xl border border-black/10',
|
|
53
53
|
consentWidgetFooter: 'border-t border-black/10 px-6',
|
|
54
|
+
consentWidgetFooterSubGroup: 'gap-3',
|
|
54
55
|
toggle: 'shadow-sm',
|
|
55
56
|
},
|
|
56
57
|
},
|
|
@@ -60,6 +61,8 @@ Each consent category is rendered as an expandable accordion item. Clicking the
|
|
|
60
61
|
</ConsentManagerProvider>
|
|
61
62
|
```
|
|
62
63
|
|
|
64
|
+
Use `consentWidgetFooter` for styling the whole action area, such as border and padding. Use `consentWidgetFooterSubGroup` for spacing or alignment inside nested button groups.
|
|
65
|
+
|
|
63
66
|
Widget copy should be changed through `ConsentManagerProvider.options.i18n` so the inline UI stays aligned with the rest of the consent experience.
|
|
64
67
|
|
|
65
68
|
## Advanced: Compound Components
|
|
@@ -54,6 +54,39 @@ export function ConsentManager({ children }: { children: ReactNode }) {
|
|
|
54
54
|
|**Events**|Timeline of consent events and state changes|
|
|
55
55
|
|**Actions**|Buttons to trigger consent actions (accept all, reject all, reset)|
|
|
56
56
|
|
|
57
|
+
## TanStack Devtools
|
|
58
|
+
|
|
59
|
+
`@c15t/dev-tools/tanstack` exposes a panel component and plugin factory that match TanStack Devtools' plugin API, so c15t can sit beside Query and Router without a custom mount adapter:
|
|
60
|
+
|
|
61
|
+
```tsx
|
|
62
|
+
import * as React from 'react';
|
|
63
|
+
import { useRouter } from '@tanstack/react-router';
|
|
64
|
+
import { TanStackDevtools } from '@tanstack/react-devtools';
|
|
65
|
+
import { ReactQueryDevtoolsPanel } from '@tanstack/react-query-devtools';
|
|
66
|
+
import { TanStackRouterDevtoolsPanel } from '@tanstack/react-router-devtools';
|
|
67
|
+
import { c15tDevtools } from '@c15t/dev-tools/tanstack';
|
|
68
|
+
|
|
69
|
+
export function AppDevtools() {
|
|
70
|
+
const router = useRouter();
|
|
71
|
+
|
|
72
|
+
return (
|
|
73
|
+
<TanStackDevtools
|
|
74
|
+
plugins={[
|
|
75
|
+
{
|
|
76
|
+
name: 'TanStack Query',
|
|
77
|
+
render: <ReactQueryDevtoolsPanel />,
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
name: 'TanStack Router',
|
|
81
|
+
render: <TanStackRouterDevtoolsPanel router={router} />,
|
|
82
|
+
},
|
|
83
|
+
c15tDevtools(),
|
|
84
|
+
]}
|
|
85
|
+
/>
|
|
86
|
+
);
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
57
90
|
## Props
|
|
58
91
|
|
|
59
92
|
### C15TDevToolsProps
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
title: IABConsentBanner
|
|
3
3
|
description: An IAB TCF 2.3 compliant consent banner that displays partner count, purpose summaries, and legitimate interest notices.
|
|
4
4
|
---
|
|
5
|
-
>
|
|
6
|
-
> c15t
|
|
5
|
+
> ℹ️ **Info:**
|
|
6
|
+
> c15t's IAB TCF support can be used in production. Use Inth for a hosted, IAB TCF-certified CMP setup with a managed CMP ID, or register your own CMP with IAB Europe and configure your own CMP ID.
|
|
7
7
|
|
|
8
8
|
`IABConsentBanner` is a pre-built consent banner that follows the [IAB Transparency & Consent Framework (TCF) 2.3](https://iabeurope.eu/tcf-2-0/) specification. It renders when the consent model is set to `'iab'` and includes required disclosures like partner count, purpose summaries, and legitimate interest notices.
|
|
9
9
|
|
|
@@ -31,7 +31,7 @@ export default function ConsentManager({ children }: { children: ReactNode }) {
|
|
|
31
31
|
backendURL: 'https://your-instance.c15t.dev',
|
|
32
32
|
iab: iab({
|
|
33
33
|
vendors: [1, 2, 10, 25],
|
|
34
|
-
// cmpId is automatically provided by the backend when using
|
|
34
|
+
// cmpId is automatically provided by the backend when using Inth.
|
|
35
35
|
// Only set this if you have your own CMP registration.
|
|
36
36
|
// cmpId: 123,
|
|
37
37
|
}),
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
title: IABConsentDialog
|
|
3
3
|
description: An IAB TCF 2.3 compliant preference center with tabbed purpose and vendor management.
|
|
4
4
|
---
|
|
5
|
-
>
|
|
6
|
-
> c15t
|
|
5
|
+
> ℹ️ **Info:**
|
|
6
|
+
> c15t's IAB TCF support can be used in production. Use Inth for a hosted, IAB TCF-certified CMP setup with a managed CMP ID, or register your own CMP with IAB Europe and configure your own CMP ID.
|
|
7
7
|
|
|
8
8
|
`IABConsentDialog` is an IAB TCF 2.3 compliant consent dialog that provides a tabbed interface for managing purpose consent and vendor preferences. It includes purpose grouping via stacks, individual purpose/vendor toggles, special purpose and feature disclosures, and legitimate interest handling.
|
|
9
9
|
|
|
@@ -25,7 +25,7 @@ export default function ConsentManager({ children }: { children: ReactNode }) {
|
|
|
25
25
|
backendURL: 'https://your-instance.c15t.dev',
|
|
26
26
|
iab: iab({
|
|
27
27
|
vendors: [1, 2, 10, 25],
|
|
28
|
-
// cmpId is automatically provided by the backend when using
|
|
28
|
+
// cmpId is automatically provided by the backend when using Inth.
|
|
29
29
|
// Only set this if you have your own CMP registration.
|
|
30
30
|
// cmpId: 123,
|
|
31
31
|
}),
|
package/docs/iab/overview.md
CHANGED
|
@@ -15,12 +15,12 @@ When your site participates in the IAB ecosystem (ad exchanges, SSPs, DSPs, DMPs
|
|
|
15
15
|
|
|
16
16
|
## CMP Registration
|
|
17
17
|
|
|
18
|
-
[
|
|
18
|
+
[Inth](https://inth.com), c15t's hosted platform, is IAB TCF certified. When you use Inth as your backend with c15t's prebuilt IAB UI, the correct CMP ID is automatically provided to your client via the `/init` endpoint — no client-side configuration needed.
|
|
19
19
|
|
|
20
|
-
If you self-host the c15t backend
|
|
20
|
+
If you self-host the c15t backend or want to operate as your own CMP, register your own CMP with IAB Europe and configure your CMP ID on the backend via `advanced.iab.cmpId` or on the client via the `iab.cmpId` option. Registering your own CMP may also involve IAB Europe fees, so check IAB Europe's current CMP registration terms and pricing before choosing this route. A valid (non-zero) CMP ID is required for IAB TCF compliance.
|
|
21
21
|
|
|
22
22
|
> ℹ️ **Info:**
|
|
23
|
-
> If you heavily customize or build your own IAB banner or dialog
|
|
23
|
+
> If you heavily customize or build your own IAB banner or dialog instead of using the default IABConsentBanner and IABConsentDialog components, you cannot use Inth's CMP ID. You must register your own CMP with IAB Europe and use your own CMP ID.
|
|
24
24
|
|
|
25
25
|
## How c15t Implements TCF
|
|
26
26
|
|
|
@@ -77,7 +77,7 @@ Configure IAB mode with `iab({ ... })` from `@c15t/iab`. The factory enables the
|
|
|
77
77
|
|
|
78
78
|
|Option|Type|Description|
|
|
79
79
|
|--|--|--|
|
|
80
|
-
|`cmpId`|`number`|CMP ID registered with IAB Europe. Automatically provided by the backend when using
|
|
80
|
+
|`cmpId`|`number`|CMP ID registered with IAB Europe. Automatically provided by the backend when using Inth with the prebuilt IAB UI. Only set this if you have your own CMP registration.|
|
|
81
81
|
|`vendors`|`number[]`|IAB vendor IDs that your site works with|
|
|
82
82
|
|`customVendors`|`NonIABVendor[]`|Custom vendors not in the IAB registry|
|
|
83
83
|
|
package/docs/iab/use-gvl-data.md
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
title: useGVLData (Internal)
|
|
3
3
|
description: Status note for the internal GVL hook used by the built-in IAB dialog.
|
|
4
4
|
---
|
|
5
|
-
>
|
|
6
|
-
> c15t
|
|
5
|
+
> ℹ️ **Info:**
|
|
6
|
+
> c15t's IAB TCF support can be used in production through Inth or with your own registered CMP ID. useGVLData() is different: it remains an internal hook and is not part of the supported public API.
|
|
7
7
|
|
|
8
8
|
`useGVLData()` currently powers the built-in `IABConsentDialog`, but it is **not part of the public package surface**.
|
|
9
9
|
|
package/docs/quickstart.md
CHANGED
|
@@ -39,7 +39,7 @@ availableIn:
|
|
|
39
39
|
@import "@c15t/react/styles.css";
|
|
40
40
|
```
|
|
41
41
|
|
|
42
|
-
Keeping the c15t stylesheet in your global CSS entrypoint makes layer and cascade order explicit. JS/TSX side-effect imports can load in a different order across framework and Tailwind tooling, which makes style regressions harder to debug.
|
|
42
|
+
Keeping the c15t stylesheet in your global CSS entrypoint makes layer and cascade order explicit. JS/TSX side-effect imports can load in a different order across framework and Tailwind tooling, which makes style regressions harder to debug.With Tailwind v4, keep c15t at the end of the top-level @import block so Fumadocs, tw-animate-css, and other preset imports do not override c15t theme tokens.
|
|
43
43
|
|
|
44
44
|
> ℹ️ Info:
|
|
45
45
|
>
|
package/docs/styling/overview.md
CHANGED
|
@@ -440,6 +440,7 @@ Component-specific style overrides.
|
|
|
440
440
|
|consentWidget|SlotStyle \|undefined|Root wrapper for the consent widget/preferences panel.|-|Optional|
|
|
441
441
|
|consentWidgetAccordion|SlotStyle \|undefined|Accordion region listing consent categories.|-|Optional|
|
|
442
442
|
|consentWidgetFooter|SlotStyle \|undefined|Footer area for widget actions and links.|-|Optional|
|
|
443
|
+
|consentWidgetFooterSubGroup|SlotStyle \|undefined|Nested button group inside the widget footer.|-|Optional|
|
|
443
444
|
|consentWidgetTag|SlotStyle \|undefined|Branding tag rendered below the standalone consent widget.|-|Optional|
|
|
444
445
|
|frame|SlotStyle \|undefined|Frame wrapper used by blocking placeholders (e.g., iframe blocking).|-|Optional|
|
|
445
446
|
|iabConsentBanner|SlotStyle \|undefined|Root wrapper for the IAB consent banner.|-|Optional|
|
package/docs/styling/slots.md
CHANGED
|
@@ -102,6 +102,7 @@ Use the typed API reference below for the full slot list and descriptions. It st
|
|
|
102
102
|
|consentWidget|SlotStyle \|undefined|Root wrapper for the consent widget/preferences panel.|-|Optional|
|
|
103
103
|
|consentWidgetAccordion|SlotStyle \|undefined|Accordion region listing consent categories.|-|Optional|
|
|
104
104
|
|consentWidgetFooter|SlotStyle \|undefined|Footer area for widget actions and links.|-|Optional|
|
|
105
|
+
|consentWidgetFooterSubGroup|SlotStyle \|undefined|Nested button group inside the widget footer.|-|Optional|
|
|
105
106
|
|consentWidgetTag|SlotStyle \|undefined|Branding tag rendered below the standalone consent widget.|-|Optional|
|
|
106
107
|
|frame|SlotStyle \|undefined|Frame wrapper used by blocking placeholders (e.g., iframe blocking).|-|Optional|
|
|
107
108
|
|iabConsentBanner|SlotStyle \|undefined|Root wrapper for the IAB consent banner.|-|Optional|
|
package/docs/styling/tailwind.md
CHANGED
|
@@ -18,17 +18,21 @@ Import the standard c15t stylesheet once in your app-level CSS entrypoint:
|
|
|
18
18
|
|
|
19
19
|
Keeping the c15t stylesheet in your global CSS entrypoint makes layer and cascade order explicit. JS/TSX side-effect imports can load in a different order across framework and Tailwind tooling, which makes style regressions harder to debug.
|
|
20
20
|
|
|
21
|
+
With Tailwind v4, keep c15t at the end of the top-level `@import` block so Fumadocs, `tw-animate-css`, and other preset imports do not override c15t theme tokens.
|
|
22
|
+
|
|
21
23
|
### Tailwind v4
|
|
22
24
|
|
|
23
|
-
Tailwind v4 automatically scans your source files. Import Tailwind normally, then
|
|
25
|
+
Tailwind v4 automatically scans your source files. Import Tailwind normally, then keep the c15t stylesheet last in the top-level `@import` block so Fumadocs, `tw-animate-css`, or other preset styles load first. c15t component styles join Tailwind's `components` layer automatically, so no extra c15t-specific layer declaration is needed:
|
|
24
26
|
|
|
25
27
|
```css title="src/index.css"
|
|
26
28
|
@import "tailwindcss";
|
|
29
|
+
@import "tw-animate-css";
|
|
27
30
|
@import "@c15t/react/styles.css";
|
|
28
31
|
```
|
|
29
32
|
|
|
30
33
|
```css title="app/globals.css"
|
|
31
34
|
@import "tailwindcss";
|
|
35
|
+
@import "tw-animate-css";
|
|
32
36
|
@import "@c15t/nextjs/styles.css";
|
|
33
37
|
```
|
|
34
38
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import "../dist/iab/styles.tw3.css";
|
package/package.json
CHANGED
|
@@ -1,25 +1,38 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@c15t/react",
|
|
3
|
-
"version": "2.0.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "2.0.3",
|
|
4
|
+
"description": "Headless cookie banner, consent manager & preference center for React. RSC-compatible, GDPR/CCPA/LGPD/TCF, TypeScript-first.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react",
|
|
7
|
+
"react-consent",
|
|
8
|
+
"react-cookie-banner",
|
|
9
|
+
"react-cookie-consent",
|
|
7
10
|
"consent",
|
|
8
11
|
"privacy",
|
|
9
12
|
"gdpr",
|
|
10
13
|
"ccpa",
|
|
11
14
|
"lgpd",
|
|
15
|
+
"tcf",
|
|
16
|
+
"iab",
|
|
17
|
+
"cmp",
|
|
12
18
|
"headless",
|
|
13
19
|
"typescript",
|
|
14
20
|
"cookie-banner",
|
|
21
|
+
"cookie-consent",
|
|
15
22
|
"consent-management-platform",
|
|
16
|
-
"
|
|
23
|
+
"consent-management",
|
|
17
24
|
"consent-banner",
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
"
|
|
25
|
+
"consent-manager-react",
|
|
26
|
+
"preference-center",
|
|
27
|
+
"react-server-components",
|
|
28
|
+
"rsc",
|
|
29
|
+
"use-client",
|
|
30
|
+
"tracking-consent"
|
|
21
31
|
],
|
|
22
32
|
"homepage": "https://c15t.com/docs/frameworks/react/quickstart",
|
|
33
|
+
"bugs": {
|
|
34
|
+
"url": "https://github.com/c15t/c15t/issues"
|
|
35
|
+
},
|
|
23
36
|
"repository": {
|
|
24
37
|
"type": "git",
|
|
25
38
|
"url": "https://github.com/c15t/c15t.git",
|
|
@@ -55,20 +68,10 @@
|
|
|
55
68
|
"import": "./dist/headless.js",
|
|
56
69
|
"require": "./dist/headless.cjs"
|
|
57
70
|
},
|
|
58
|
-
"./preference-center": {
|
|
59
|
-
"types": "./dist-types/components/preference-center/index.d.ts",
|
|
60
|
-
"import": "./dist/components/preference-center/index.js",
|
|
61
|
-
"require": "./dist/components/preference-center/index.cjs"
|
|
62
|
-
},
|
|
63
|
-
"./preference-center-widget": {
|
|
64
|
-
"types": "./dist-types/components/preference-center-widget/index.d.ts",
|
|
65
|
-
"import": "./dist/components/preference-center-widget/index.js",
|
|
66
|
-
"require": "./dist/components/preference-center-widget/index.cjs"
|
|
67
|
-
},
|
|
68
71
|
"./cookie-banner": {
|
|
69
|
-
"types": "./dist-types/components/
|
|
70
|
-
"import": "./
|
|
71
|
-
"require": "./dist/components/
|
|
72
|
+
"types": "./dist-types/components/consent-banner/index.d.ts",
|
|
73
|
+
"import": "./client/components/consent-banner.js",
|
|
74
|
+
"require": "./dist/components/consent-banner/index.cjs"
|
|
72
75
|
},
|
|
73
76
|
"./components/consent-banner": {
|
|
74
77
|
"types": "./dist-types/components/consent-banner/index.d.ts",
|
|
@@ -110,21 +113,6 @@
|
|
|
110
113
|
"import": "./dist/hooks/index.js",
|
|
111
114
|
"require": "./dist/hooks/index.cjs"
|
|
112
115
|
},
|
|
113
|
-
"./context": {
|
|
114
|
-
"types": "./dist-types/context/index.d.ts",
|
|
115
|
-
"import": "./dist/context/index.js",
|
|
116
|
-
"require": "./dist/context/index.cjs"
|
|
117
|
-
},
|
|
118
|
-
"./types": {
|
|
119
|
-
"types": "./dist-types/types/index.d.ts",
|
|
120
|
-
"import": "./dist/types/index.js",
|
|
121
|
-
"require": "./dist/types/index.cjs"
|
|
122
|
-
},
|
|
123
|
-
"./utils": {
|
|
124
|
-
"types": "./dist-types/utils/index.d.ts",
|
|
125
|
-
"import": "./dist/utils/index.js",
|
|
126
|
-
"require": "./dist/utils/index.cjs"
|
|
127
|
-
},
|
|
128
116
|
".": {
|
|
129
117
|
"types": "./dist-types/index.d.ts",
|
|
130
118
|
"import": "./dist/index.js",
|
|
@@ -140,6 +128,7 @@
|
|
|
140
128
|
"dist-types",
|
|
141
129
|
"client",
|
|
142
130
|
"styles.css",
|
|
131
|
+
"styles.tw3.css",
|
|
143
132
|
"iab",
|
|
144
133
|
"src/styles.tw3.css",
|
|
145
134
|
"src/iab/styles.tw3.css",
|
|
@@ -151,10 +140,10 @@
|
|
|
151
140
|
"build:agent-docs": "bun ../../scripts/agent-docs/generate-package-docs.ts @c15t/react",
|
|
152
141
|
"check-types": "bun prebuild && tsc --noEmit",
|
|
153
142
|
"clean:dist:test-artifacts": "bun --eval \"import { rmSync } from 'node:fs'; rmSync('dist/mockServiceWorker.js', { force: true });\"",
|
|
154
|
-
"dev": "bun prebuild && rslib build
|
|
143
|
+
"dev": "sh -c 'bun prebuild && rslib build --no-dts --no-clean && bun scripts/generate-distribution-css.ts && rslib build --watch --no-dts --no-clean'",
|
|
155
144
|
"fmt": "bun biome format --write . && bun biome check --formatter-enabled=false --linter-enabled=false --write",
|
|
156
145
|
"lint": "bun biome lint ./src",
|
|
157
|
-
"prepack": "
|
|
146
|
+
"prepack": "bun ../../scripts/verify-package-artifacts.ts",
|
|
158
147
|
"test": "bun prebuild && vitest run",
|
|
159
148
|
"test:watch": "bun prebuild && vitest"
|
|
160
149
|
},
|
|
@@ -164,11 +153,11 @@
|
|
|
164
153
|
"not op_mini all"
|
|
165
154
|
],
|
|
166
155
|
"dependencies": {
|
|
167
|
-
"@c15t/ui": "2.0.
|
|
156
|
+
"@c15t/ui": "2.0.2",
|
|
168
157
|
"c15t": "2.0.0"
|
|
169
158
|
},
|
|
170
159
|
"devDependencies": {
|
|
171
|
-
"@c15t/backend": "2.0.
|
|
160
|
+
"@c15t/backend": "2.0.2",
|
|
172
161
|
"@c15t/iab": "2.0.0",
|
|
173
162
|
"@c15t/typescript-config": "0.0.1",
|
|
174
163
|
"@c15t/vitest-config": "1.0.0",
|
package/readme.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"title": "@c15t/react: React Consent Components",
|
|
3
|
-
"description": "
|
|
3
|
+
"description": "Headless cookie banner, consent manager & preference center for React. RSC-compatible, GDPR/CCPA/LGPD/TCF, TypeScript-first.",
|
|
4
4
|
"features": [
|
|
5
5
|
"Works with React 19, 18, 17, and 16.8",
|
|
6
6
|
"Full 'use client' support for React Server Components",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"prerequisites": [
|
|
16
16
|
"React 16.8 or later",
|
|
17
17
|
"Node.js 18.17.0 or later",
|
|
18
|
-
"A hosted [c15t instance](https://
|
|
18
|
+
"A hosted [c15t instance](https://inth.com) (free sign-up) or [self-hosted deployment](https://c15t.com/docs/self-host/v2)"
|
|
19
19
|
],
|
|
20
20
|
"manualInstallation": [
|
|
21
21
|
"",
|
|
@@ -31,11 +31,11 @@
|
|
|
31
31
|
],
|
|
32
32
|
"usage": [
|
|
33
33
|
"Import `ConsentManagerProvider` in your app's root component",
|
|
34
|
-
"Add `
|
|
34
|
+
"Add `ConsentBanner` and `ConsentDialog` components",
|
|
35
35
|
"Customise styling and behaviour to fit your app",
|
|
36
36
|
"For full implementation details, see the [React quickstart docs](https://c15t.com/docs/frameworks/react/quickstart)",
|
|
37
37
|
|
|
38
|
-
"```tsx\n// App.tsx\nimport {
|
|
38
|
+
"```tsx\n// App.tsx\nimport {\n ConsentManagerProvider,\n ConsentBanner,\n ConsentDialog,\n} from '@c15t/react'\n\nfunction App() {\n return (\n <ConsentManagerProvider>\n <YourApp />\n <ConsentBanner />\n <ConsentDialog />\n </ConsentManagerProvider>\n )\n}\n```"
|
|
39
39
|
],
|
|
40
40
|
"docsLink": "https://c15t.com/docs/frameworks/react/quickstart",
|
|
41
41
|
"quickStartLink": "https://c15t.com/docs/frameworks/react/quickstart",
|
package/styles.tw3.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import "./dist/styles.tw3.css";
|