@c15t/react 2.2.1 → 3.0.0-alpha.1

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.
Files changed (705) hide show
  1. package/AGENTS.md +89 -141
  2. package/README.md +2 -2
  3. package/dist/aggregate-components.js +2 -0
  4. package/dist/chunk-warming.js +1 -0
  5. package/dist/component-hooks/use-headless-consent-ui.js +2 -0
  6. package/dist/component-hooks/use-headless-iab-consent-ui.js +2 -0
  7. package/dist/component-hooks/use-manager.js +2 -0
  8. package/dist/component-hooks/use-panel-trigger.js +2 -0
  9. package/dist/component-hooks/use-translations.js +2 -0
  10. package/dist/components/consent-preferences-link/consent-preferences-link.js +2 -1
  11. package/dist/components/consent-preferences-link/index.js +1 -0
  12. package/dist/components/frame/atoms.js +1 -1
  13. package/dist/components/frame/frame.js +2 -1
  14. package/dist/components/frame/index.js +2 -1
  15. package/dist/components/iab-panel/atoms/card.js +2 -0
  16. package/dist/components/iab-panel/atoms/content.js +2 -0
  17. package/dist/components/iab-panel/atoms/footer.js +2 -0
  18. package/dist/components/iab-panel/atoms/header.js +2 -0
  19. package/dist/components/iab-panel/atoms/overlay.js +2 -0
  20. package/dist/components/iab-panel/atoms/purpose-item.js +2 -0
  21. package/dist/components/iab-panel/atoms/root.js +2 -0
  22. package/dist/components/iab-panel/atoms/stack-item.js +2 -0
  23. package/dist/components/iab-panel/atoms/tabs.js +2 -0
  24. package/dist/components/iab-panel/atoms/vendor-list.js +2 -0
  25. package/dist/components/iab-panel/hooks/use-display-model.js +2 -0
  26. package/dist/components/iab-panel/hooks/use-gvl-data.js +2 -0
  27. package/dist/components/iab-panel/iab-panel.js +2 -0
  28. package/dist/components/iab-panel/index.js +2 -0
  29. package/dist/components/iab-panel/use-iab-translations.js +1 -0
  30. package/dist/components/iab-prompt/atoms/button-group.js +2 -0
  31. package/dist/components/iab-prompt/atoms/card.js +2 -0
  32. package/dist/components/iab-prompt/atoms/description.js +2 -0
  33. package/dist/components/iab-prompt/atoms/footer.js +2 -0
  34. package/dist/components/iab-prompt/atoms/header.js +2 -0
  35. package/dist/components/iab-prompt/atoms/overlay.js +2 -0
  36. package/dist/components/iab-prompt/atoms/root.js +2 -0
  37. package/dist/components/iab-prompt/atoms/title.js +2 -0
  38. package/dist/components/iab-prompt/iab-prompt.js +2 -0
  39. package/dist/components/iab-prompt/index.js +2 -0
  40. package/dist/components/panel/atoms/card.js +2 -0
  41. package/dist/components/panel/atoms/overlay.js +1 -0
  42. package/dist/components/panel/atoms/root.js +2 -0
  43. package/dist/components/panel/index.js +2 -0
  44. package/dist/components/panel/panel.js +2 -0
  45. package/dist/components/{consent-dialog-link → panel-link}/index.js +1 -0
  46. package/dist/components/panel-trigger/atoms/button.js +2 -0
  47. package/dist/components/panel-trigger/atoms/icon.js +2 -0
  48. package/dist/components/panel-trigger/atoms/root.js +2 -0
  49. package/dist/components/panel-trigger/atoms/text.js +2 -0
  50. package/dist/components/panel-trigger/atoms/toolbar.js +2 -0
  51. package/dist/components/panel-trigger/index.js +2 -0
  52. package/dist/components/panel-trigger/panel-trigger-toolbar.js +2 -0
  53. package/dist/components/panel-trigger/panel-trigger.js +2 -0
  54. package/dist/components/panel-trigger/use-draggable.js +2 -0
  55. package/dist/components/preferences/atoms/accordion.js +1 -0
  56. package/dist/components/preferences/atoms/button.js +1 -0
  57. package/dist/components/preferences/atoms/footer.js +1 -0
  58. package/dist/components/preferences/atoms/root.js +2 -0
  59. package/dist/components/preferences/index.js +2 -0
  60. package/dist/components/preferences/policy-actions.js +2 -0
  61. package/dist/components/preferences/preferences.js +2 -0
  62. package/dist/components/prompt/atoms/overlay.js +1 -0
  63. package/dist/components/prompt/atoms/root.js +2 -0
  64. package/dist/components/prompt/components.js +1 -0
  65. package/dist/components/prompt/error-boundary.js +2 -0
  66. package/dist/components/prompt/index.js +2 -0
  67. package/dist/components/prompt/policy-actions.js +2 -0
  68. package/dist/components/prompt/prompt.js +2 -0
  69. package/dist/components/prompt/resolve-banner-primary-actions.js +1 -0
  70. package/dist/components/prompt/surface-context.js +2 -0
  71. package/dist/components/prompt/use-banner-copy.js +2 -0
  72. package/dist/components/shared/libs/recursive-clone-children.js +1 -1
  73. package/dist/components/shared/libs/slot.js +1 -1
  74. package/dist/components/shared/libs/use-controllable-state.js +1 -1
  75. package/dist/components/shared/policy-actions.js +2 -1
  76. package/dist/components/shared/primitives/box.js +2 -1
  77. package/dist/components/shared/primitives/button.js +1 -1
  78. package/dist/components/shared/primitives/legal-links/index.js +1 -1
  79. package/dist/components/shared/ui/accordion/accordion.js +2 -1
  80. package/dist/components/shared/ui/animated-collapse/animated-collapse.js +2 -1
  81. package/dist/components/shared/ui/branding.js +1 -1
  82. package/dist/components/shared/ui/button/button.js +1 -1
  83. package/dist/components/shared/ui/collapsible/collapsible.js +2 -1
  84. package/dist/components/shared/ui/dialog/dialog.js +2 -1
  85. package/dist/components/shared/ui/icon.js +1 -1
  86. package/dist/components/shared/ui/logo.js +1 -1
  87. package/dist/components/shared/ui/preference-item/preference-item.js +2 -1
  88. package/dist/components/shared/ui/switch/switch.js +1 -1
  89. package/dist/components/shared/ui/tabs/tabs.js +2 -1
  90. package/dist/context/consent-tracking-context.js +1 -0
  91. package/dist/context/iab-context-value.js +1 -0
  92. package/dist/context/index.js +1 -0
  93. package/dist/context/theme-context.js +2 -1
  94. package/dist/context.js +1 -0
  95. package/dist/devtools.js +2 -0
  96. package/dist/draft.js +2 -0
  97. package/dist/external-iab-context.js +2 -0
  98. package/dist/frame.js +2 -0
  99. package/dist/headless.js +1 -1
  100. package/dist/hooks/use-color-scheme.js +2 -1
  101. package/dist/hooks/use-component-config.js +2 -1
  102. package/dist/hooks/use-focus-trap.js +2 -1
  103. package/dist/hooks/use-headless-iab-consent-ui.js +2 -1
  104. package/dist/hooks/use-iab-manager.js +2 -0
  105. package/dist/hooks/use-is-hydrated.js +2 -0
  106. package/dist/hooks/use-reduced-motion.js +2 -1
  107. package/dist/hooks/use-scroll-lock.js +2 -1
  108. package/dist/hooks/use-text-direction.js +2 -1
  109. package/dist/hooks/use-theme.js +2 -1
  110. package/dist/hooks.js +1 -0
  111. package/dist/iab/styles.css +1 -1
  112. package/dist/iab/styles.tw3.css +27 -19
  113. package/dist/iab-context.js +2 -0
  114. package/dist/iab.js +1 -1
  115. package/dist/index.js +1 -1
  116. package/dist/module-hooks/iframe-blocker.js +2 -0
  117. package/dist/module-hooks/network-blocker.js +2 -0
  118. package/dist/module-hooks/persistence.js +2 -0
  119. package/dist/module-hooks/script-loader.js +2 -0
  120. package/dist/module-hooks/shared.js +2 -0
  121. package/dist/module-hooks.js +2 -0
  122. package/dist/panel-link.js +2 -0
  123. package/dist/panel-trigger.js +2 -0
  124. package/dist/panel.js +2 -0
  125. package/dist/preferences.js +2 -0
  126. package/dist/primitives.js +1 -1
  127. package/dist/prompt.js +2 -0
  128. package/dist/provider.js +2 -0
  129. package/dist/server/fetch-ssr-data.js +1 -1
  130. package/dist/server/headers.js +1 -1
  131. package/dist/server/init-cache-key.js +1 -1
  132. package/dist/server/normalize-url.js +1 -1
  133. package/dist/styles.css +1 -1
  134. package/dist/styles.tw3.css +67 -29
  135. package/dist/theme-provider.js +2 -0
  136. package/dist/transports/offline.js +1 -0
  137. package/dist/types/index.js +1 -0
  138. package/dist/types/theme/index.js +1 -1
  139. package/dist/types/theme/style-types.js +1 -1
  140. package/dist/ui-config-context.js +2 -0
  141. package/dist/ui-save.js +1 -0
  142. package/dist/utils/cn.js +1 -1
  143. package/dist/utils/default-translation-config.js +1 -0
  144. package/dist/utils/index.js +1 -0
  145. package/dist/utils/merge-slot-props.js +1 -0
  146. package/dist/utils/merge-styles.js +1 -1
  147. package/dist/utils/theme-utils.js +1 -1
  148. package/dist/version.js +1 -1
  149. package/dist-types/aggregate-components.d.ts +4 -0
  150. package/dist-types/chunk-warming.d.ts +19 -0
  151. package/dist-types/component-hooks/use-headless-consent-ui.d.ts +68 -0
  152. package/dist-types/component-hooks/use-headless-iab-consent-ui.d.ts +22 -0
  153. package/dist-types/component-hooks/use-manager.d.ts +40 -0
  154. package/dist-types/component-hooks/use-panel-trigger.d.ts +20 -0
  155. package/dist-types/component-hooks/use-translations.d.ts +2 -0
  156. package/dist-types/components/consent-preferences-link/consent-preferences-link.d.ts +1 -1
  157. package/dist-types/components/frame/atoms.d.ts +5 -5
  158. package/dist-types/components/frame/types.d.ts +3 -2
  159. package/dist-types/components/{iab-consent-dialog → iab-panel}/atoms/card.d.ts +2 -1
  160. package/dist-types/components/{iab-consent-dialog → iab-panel}/atoms/content.d.ts +1 -1
  161. package/dist-types/components/{iab-consent-dialog → iab-panel}/atoms/footer.d.ts +1 -1
  162. package/dist-types/components/{iab-consent-dialog → iab-panel}/atoms/header.d.ts +1 -1
  163. package/dist-types/components/{iab-consent-dialog → iab-panel}/atoms/overlay.d.ts +1 -1
  164. package/dist-types/components/{iab-consent-dialog → iab-panel}/atoms/purpose-item.d.ts +7 -1
  165. package/dist-types/components/{iab-consent-dialog → iab-panel}/atoms/root.d.ts +3 -2
  166. package/dist-types/components/{iab-consent-dialog → iab-panel}/atoms/stack-item.d.ts +1 -1
  167. package/dist-types/components/{iab-consent-dialog → iab-panel}/atoms/tabs.d.ts +1 -1
  168. package/dist-types/components/{iab-consent-dialog → iab-panel}/atoms/vendor-list.d.ts +2 -3
  169. package/dist-types/components/iab-panel/hooks/use-display-model.d.ts +18 -0
  170. package/dist-types/components/iab-panel/hooks/use-gvl-data.d.ts +17 -0
  171. package/dist-types/components/{iab-consent-dialog/iab-consent-dialog.d.ts → iab-panel/iab-panel.d.ts} +10 -3
  172. package/dist-types/components/{iab-consent-dialog → iab-panel}/index.d.ts +3 -2
  173. package/dist-types/components/iab-panel/types.d.ts +1 -0
  174. package/dist-types/components/{iab-consent-dialog → iab-panel}/use-iab-translations.d.ts +3 -1
  175. package/dist-types/components/{iab-consent-banner → iab-prompt}/atoms/button-group.d.ts +1 -1
  176. package/dist-types/components/{iab-consent-banner → iab-prompt}/atoms/card.d.ts +2 -1
  177. package/dist-types/components/{iab-consent-banner → iab-prompt}/atoms/description.d.ts +1 -1
  178. package/dist-types/components/{iab-consent-banner → iab-prompt}/atoms/footer.d.ts +2 -1
  179. package/dist-types/components/{iab-consent-banner → iab-prompt}/atoms/header.d.ts +2 -1
  180. package/dist-types/components/{iab-consent-banner → iab-prompt}/atoms/overlay.d.ts +1 -1
  181. package/dist-types/components/{iab-consent-banner → iab-prompt}/atoms/root.d.ts +3 -2
  182. package/dist-types/components/{iab-consent-banner → iab-prompt}/atoms/title.d.ts +1 -1
  183. package/dist-types/components/{iab-consent-banner/iab-consent-banner.d.ts → iab-prompt/iab-prompt.d.ts} +10 -4
  184. package/dist-types/components/{iab-consent-banner → iab-prompt}/index.d.ts +1 -1
  185. package/dist-types/components/{consent-dialog → panel}/atoms/card.d.ts +15 -15
  186. package/dist-types/components/{consent-dialog → panel}/atoms/overlay.d.ts +24 -8
  187. package/dist-types/components/{consent-dialog → panel}/atoms/root.d.ts +4 -3
  188. package/dist-types/components/{consent-dialog → panel}/index.d.ts +13 -8
  189. package/dist-types/components/{consent-dialog/consent-dialog.d.ts → panel/panel.d.ts} +6 -5
  190. package/dist-types/components/{consent-dialog-trigger → panel-trigger}/atoms/button.d.ts +2 -1
  191. package/dist-types/components/{consent-dialog-trigger → panel-trigger}/atoms/icon.d.ts +1 -16
  192. package/dist-types/components/{consent-dialog-trigger → panel-trigger}/atoms/root.d.ts +11 -23
  193. package/dist-types/components/{consent-dialog-trigger → panel-trigger}/atoms/text.d.ts +0 -11
  194. package/dist-types/components/{consent-dialog-trigger → panel-trigger}/atoms/toolbar.d.ts +15 -4
  195. package/dist-types/components/{consent-dialog-trigger → panel-trigger}/index.d.ts +2 -2
  196. package/dist-types/components/{consent-dialog-trigger/consent-dialog-trigger-toolbar.d.ts → panel-trigger/panel-trigger-toolbar.d.ts} +0 -23
  197. package/dist-types/components/{consent-dialog-trigger/consent-dialog-trigger.d.ts → panel-trigger/panel-trigger.d.ts} +8 -4
  198. package/dist-types/components/{consent-dialog-trigger → panel-trigger}/types.d.ts +16 -7
  199. package/dist-types/components/{consent-dialog-trigger → panel-trigger}/use-draggable.d.ts +2 -9
  200. package/dist-types/components/{consent-widget → preferences}/atoms/accordion.d.ts +5 -5
  201. package/dist-types/components/{consent-widget → preferences}/atoms/footer.d.ts +3 -3
  202. package/dist-types/components/{consent-widget → preferences}/atoms/root.d.ts +1 -1
  203. package/dist-types/components/{consent-widget → preferences}/index.d.ts +11 -9
  204. package/dist-types/components/preferences/policy-actions.d.ts +10 -0
  205. package/dist-types/components/{consent-banner → prompt}/atoms/overlay.d.ts +1 -1
  206. package/dist-types/components/prompt/atoms/root.d.ts +78 -0
  207. package/dist-types/components/{consent-banner → prompt}/components.d.ts +99 -14
  208. package/dist-types/components/{consent-banner → prompt}/error-boundary.d.ts +3 -1
  209. package/dist-types/components/{consent-banner → prompt}/index.d.ts +18 -10
  210. package/dist-types/components/prompt/policy-actions.d.ts +12 -0
  211. package/dist-types/components/{consent-banner/consent-banner.d.ts → prompt/prompt.d.ts} +36 -10
  212. package/dist-types/components/prompt/resolve-banner-primary-actions.d.ts +14 -0
  213. package/dist-types/components/prompt/surface-context.d.ts +45 -0
  214. package/dist-types/components/prompt/use-banner-copy.d.ts +16 -0
  215. package/dist-types/components/shared/libs/polymorphic.d.ts +2 -2
  216. package/dist-types/components/shared/libs/recursive-clone-children.d.ts +2 -2
  217. package/dist-types/components/shared/libs/slot.d.ts +1 -1
  218. package/dist-types/components/shared/libs/use-controllable-state.d.ts +1 -1
  219. package/dist-types/components/shared/policy-actions.d.ts +8 -3
  220. package/dist-types/components/shared/primitives/box.d.ts +3 -1
  221. package/dist-types/components/shared/primitives/button.d.ts +4 -37
  222. package/dist-types/components/shared/primitives/button.types.d.ts +3 -1
  223. package/dist-types/components/shared/primitives/legal-links/index.d.ts +7 -11
  224. package/dist-types/components/shared/ui/accordion/accordion.d.ts +45 -12
  225. package/dist-types/components/shared/ui/accordion/accordion.types.d.ts +1 -1
  226. package/dist-types/components/shared/ui/animated-collapse/animated-collapse.d.ts +1 -1
  227. package/dist-types/components/shared/ui/branding.d.ts +12 -12
  228. package/dist-types/components/shared/ui/button/button.d.ts +19 -25
  229. package/dist-types/components/shared/ui/button/button.types.d.ts +2 -2
  230. package/dist-types/components/shared/ui/collapsible/collapsible.d.ts +18 -1
  231. package/dist-types/components/shared/ui/dialog/dialog.d.ts +6 -6
  232. package/dist-types/components/shared/ui/icon.d.ts +1 -1
  233. package/dist-types/components/shared/ui/logo.d.ts +0 -21
  234. package/dist-types/components/shared/ui/preference-item/preference-item.d.ts +46 -2
  235. package/dist-types/components/shared/ui/switch/switch.d.ts +19 -8
  236. package/dist-types/components/shared/ui/tabs/tabs.d.ts +19 -2
  237. package/dist-types/context/iab-context-value.d.ts +37 -0
  238. package/dist-types/context/index.d.ts +3 -0
  239. package/dist-types/context/theme-context.d.ts +2 -2
  240. package/dist-types/context.d.ts +17 -0
  241. package/dist-types/devtools.d.ts +54 -0
  242. package/dist-types/draft.d.ts +31 -0
  243. package/dist-types/external-iab-context.d.ts +29 -0
  244. package/dist-types/frame.d.ts +1 -0
  245. package/dist-types/headless.d.ts +12 -8
  246. package/dist-types/hooks/use-color-scheme.d.ts +1 -1
  247. package/dist-types/hooks/use-component-config.d.ts +2 -2
  248. package/dist-types/hooks/use-focus-trap.d.ts +2 -2
  249. package/dist-types/hooks/use-headless-iab-consent-ui.d.ts +7 -8
  250. package/dist-types/hooks/use-iab-manager.d.ts +52 -0
  251. package/dist-types/hooks/use-is-hydrated.d.ts +8 -0
  252. package/dist-types/hooks/use-reduced-motion.d.ts +1 -1
  253. package/dist-types/hooks/use-scroll-lock.d.ts +1 -1
  254. package/dist-types/hooks/use-text-direction.d.ts +1 -1
  255. package/dist-types/hooks/use-theme.d.ts +2 -1
  256. package/dist-types/hooks.d.ts +148 -0
  257. package/dist-types/iab-context.d.ts +28 -0
  258. package/dist-types/iab.d.ts +14 -8
  259. package/dist-types/index.d.ts +61 -22
  260. package/dist-types/module-hooks/iframe-blocker.d.ts +6 -0
  261. package/dist-types/module-hooks/network-blocker.d.ts +9 -0
  262. package/dist-types/module-hooks/persistence.d.ts +4 -0
  263. package/dist-types/module-hooks/script-loader.d.ts +6 -0
  264. package/dist-types/module-hooks/shared.d.ts +2 -0
  265. package/dist-types/module-hooks.d.ts +4 -0
  266. package/dist-types/panel-link.d.ts +1 -0
  267. package/dist-types/panel-trigger.d.ts +1 -0
  268. package/dist-types/panel.d.ts +1 -0
  269. package/dist-types/preferences.d.ts +1 -0
  270. package/dist-types/prompt.d.ts +1 -0
  271. package/dist-types/provider.d.ts +149 -0
  272. package/dist-types/server/fetch-ssr-data.d.ts +2 -2
  273. package/dist-types/server/headers.d.ts +3 -3
  274. package/dist-types/server/init-cache-key.d.ts +3 -3
  275. package/dist-types/server/normalize-url.d.ts +2 -2
  276. package/dist-types/server/types.d.ts +1 -1
  277. package/dist-types/theme-provider.d.ts +10 -0
  278. package/dist-types/transports/offline.d.ts +18 -0
  279. package/dist-types/types/index.d.ts +3 -0
  280. package/dist-types/types/manager.d.ts +15 -0
  281. package/dist-types/types/slots.d.ts +5 -0
  282. package/dist-types/types/theme/index.d.ts +0 -1
  283. package/dist-types/types/theme/style-types.d.ts +3 -9
  284. package/dist-types/ui-config-context.d.ts +9 -0
  285. package/dist-types/ui-save.d.ts +5 -0
  286. package/dist-types/utils/cn.d.ts +1 -1
  287. package/dist-types/utils/default-translation-config.d.ts +6 -0
  288. package/dist-types/utils/index.d.ts +4 -0
  289. package/dist-types/utils/merge-slot-props.d.ts +14 -0
  290. package/dist-types/utils/merge-styles.d.ts +1 -1
  291. package/dist-types/utils/theme-utils.d.ts +2 -2
  292. package/dist-types/version.d.ts +1 -1
  293. package/docs/README.md +89 -141
  294. package/docs/assets/v3/brand-bar.png +0 -0
  295. package/docs/assets/v3/brand-card.png +0 -0
  296. package/docs/assets/v3/choice-wall.png +0 -0
  297. package/docs/assets/v3/mobile-card.png +0 -0
  298. package/docs/assets/v3/preferences.png +0 -0
  299. package/docs/customization/overview.md +45 -0
  300. package/docs/customization/recipes.md +79 -0
  301. package/docs/customization/slots.md +55 -0
  302. package/docs/customization/tokens.md +76 -0
  303. package/docs/customization/translations.md +49 -0
  304. package/docs/frameworks/react/components/consent-banner.md +219 -202
  305. package/docs/frameworks/react/components/consent-dialog-link.md +88 -35
  306. package/docs/frameworks/react/components/consent-dialog-trigger.md +74 -134
  307. package/docs/frameworks/react/components/consent-dialog.md +170 -135
  308. package/docs/frameworks/react/components/consent-manager-provider.md +57 -256
  309. package/docs/frameworks/react/components/consent-widget.md +154 -118
  310. package/docs/frameworks/react/components/dev-tools.md +198 -33
  311. package/docs/frameworks/react/components/frame.md +120 -42
  312. package/docs/frameworks/react/concepts/consent-categories.md +24 -89
  313. package/docs/frameworks/react/concepts/policy-presets.md +123 -0
  314. package/docs/frameworks/react/headless.md +91 -185
  315. package/docs/frameworks/react/hooks/use-consent-manager/overview.md +39 -153
  316. package/docs/frameworks/react/iab/overview.md +33 -108
  317. package/docs/frameworks/react/quickstart.md +116 -112
  318. package/docs/frameworks/react/script-loader.md +41 -533
  319. package/docs/frameworks/react/styling/overview.md +168 -253
  320. package/docs/frameworks/react/troubleshooting.md +47 -119
  321. package/docs/guides/consent-state.md +60 -0
  322. package/docs/guides/data-fetching.md +163 -0
  323. package/docs/guides/deployment-modes.md +63 -0
  324. package/docs/guides/troubleshooting.md +68 -0
  325. package/docs/guides/verify-consent.md +62 -0
  326. package/docs/integrations/adobe-analytics.md +239 -105
  327. package/docs/integrations/ahrefs-analytics.md +238 -104
  328. package/docs/integrations/amplitude.md +219 -157
  329. package/docs/integrations/building-integrations.md +32 -224
  330. package/docs/integrations/clear-on-revocation.md +167 -0
  331. package/docs/integrations/clearbit.md +247 -86
  332. package/docs/integrations/cloudflare-web-analytics.md +250 -84
  333. package/docs/integrations/crisp.md +251 -97
  334. package/docs/integrations/databuddy.md +259 -153
  335. package/docs/integrations/fathom-analytics.md +239 -96
  336. package/docs/integrations/google-maps.md +328 -207
  337. package/docs/integrations/google-tag-manager.md +248 -96
  338. package/docs/integrations/google-tag.md +261 -90
  339. package/docs/integrations/heap.md +222 -149
  340. package/docs/integrations/hightouch.md +225 -131
  341. package/docs/integrations/hotjar.md +239 -90
  342. package/docs/integrations/intercom.md +239 -98
  343. package/docs/integrations/linkedin-insights.md +243 -113
  344. package/docs/integrations/logrocket.md +241 -123
  345. package/docs/integrations/matomo-analytics.md +256 -111
  346. package/docs/integrations/meta-pixel.md +197 -324
  347. package/docs/integrations/microsoft-clarity.md +233 -114
  348. package/docs/integrations/microsoft-uet.md +245 -110
  349. package/docs/integrations/mixpanel-analytics.md +252 -87
  350. package/docs/integrations/openai-pixel.md +441 -0
  351. package/docs/integrations/overview.md +95 -133
  352. package/docs/integrations/pirsch.md +249 -96
  353. package/docs/integrations/plausible-analytics.md +241 -100
  354. package/docs/integrations/posthog.md +353 -214
  355. package/docs/integrations/promptwatch.md +251 -81
  356. package/docs/integrations/reddit-pixel.md +226 -173
  357. package/docs/integrations/rudderstack.md +244 -187
  358. package/docs/integrations/rybbit-analytics.md +244 -91
  359. package/docs/integrations/segment.md +238 -92
  360. package/docs/integrations/snapchat-pixel.md +240 -110
  361. package/docs/integrations/tiktok-pixel.md +249 -81
  362. package/docs/integrations/umami-analytics.md +242 -95
  363. package/docs/integrations/vercel-analytics.md +242 -90
  364. package/docs/integrations/x-pixel.md +238 -104
  365. package/docs/integrations/youtube.md +354 -142
  366. package/docs/upgrade-v3.md +334 -0
  367. package/iab/styles.css +1 -1
  368. package/iab/styles.tw3.css +1 -1
  369. package/package.json +187 -102
  370. package/readme.json +1 -1
  371. package/src/iab/styles.css +1 -1
  372. package/src/iab/styles.tw3.css +1 -1
  373. package/src/styles.css +1 -1
  374. package/src/styles.tw3.css +1 -1
  375. package/styles.css +1 -1
  376. package/styles.tw3.css +1 -1
  377. package/client/components/consent-banner.js +0 -4
  378. package/client/components/consent-dialog-link.js +0 -3
  379. package/client/components/consent-dialog-trigger.js +0 -3
  380. package/client/components/consent-dialog.js +0 -4
  381. package/client/components/consent-widget.js +0 -4
  382. package/client/components/frame.js +0 -3
  383. package/client/components/integrations.js +0 -3
  384. package/dist/components/consent-banner/atoms/overlay.cjs +0 -1
  385. package/dist/components/consent-banner/atoms/overlay.js +0 -1
  386. package/dist/components/consent-banner/atoms/root.cjs +0 -1
  387. package/dist/components/consent-banner/atoms/root.js +0 -1
  388. package/dist/components/consent-banner/components.cjs +0 -1
  389. package/dist/components/consent-banner/components.js +0 -1
  390. package/dist/components/consent-banner/consent-banner.cjs +0 -1
  391. package/dist/components/consent-banner/consent-banner.js +0 -1
  392. package/dist/components/consent-banner/error-boundary.cjs +0 -1
  393. package/dist/components/consent-banner/error-boundary.js +0 -1
  394. package/dist/components/consent-banner/index.cjs +0 -1
  395. package/dist/components/consent-banner/index.js +0 -1
  396. package/dist/components/consent-banner/policy-actions.cjs +0 -1
  397. package/dist/components/consent-banner/policy-actions.js +0 -1
  398. package/dist/components/consent-dialog/atoms/card.cjs +0 -1
  399. package/dist/components/consent-dialog/atoms/card.js +0 -1
  400. package/dist/components/consent-dialog/atoms/overlay.cjs +0 -1
  401. package/dist/components/consent-dialog/atoms/overlay.js +0 -1
  402. package/dist/components/consent-dialog/atoms/root.cjs +0 -1
  403. package/dist/components/consent-dialog/atoms/root.js +0 -1
  404. package/dist/components/consent-dialog/consent-dialog.cjs +0 -1
  405. package/dist/components/consent-dialog/consent-dialog.js +0 -1
  406. package/dist/components/consent-dialog/index.cjs +0 -1
  407. package/dist/components/consent-dialog/index.js +0 -1
  408. package/dist/components/consent-dialog-link/index.cjs +0 -1
  409. package/dist/components/consent-dialog-trigger/atoms/button.cjs +0 -1
  410. package/dist/components/consent-dialog-trigger/atoms/button.js +0 -1
  411. package/dist/components/consent-dialog-trigger/atoms/icon.cjs +0 -1
  412. package/dist/components/consent-dialog-trigger/atoms/icon.js +0 -1
  413. package/dist/components/consent-dialog-trigger/atoms/root.cjs +0 -1
  414. package/dist/components/consent-dialog-trigger/atoms/root.js +0 -1
  415. package/dist/components/consent-dialog-trigger/atoms/text.cjs +0 -1
  416. package/dist/components/consent-dialog-trigger/atoms/text.js +0 -1
  417. package/dist/components/consent-dialog-trigger/atoms/toolbar.cjs +0 -1
  418. package/dist/components/consent-dialog-trigger/atoms/toolbar.js +0 -1
  419. package/dist/components/consent-dialog-trigger/consent-dialog-trigger-toolbar.cjs +0 -1
  420. package/dist/components/consent-dialog-trigger/consent-dialog-trigger-toolbar.js +0 -1
  421. package/dist/components/consent-dialog-trigger/consent-dialog-trigger.cjs +0 -1
  422. package/dist/components/consent-dialog-trigger/consent-dialog-trigger.js +0 -1
  423. package/dist/components/consent-dialog-trigger/index.cjs +0 -1
  424. package/dist/components/consent-dialog-trigger/index.js +0 -1
  425. package/dist/components/consent-dialog-trigger/types.cjs +0 -1
  426. package/dist/components/consent-dialog-trigger/use-draggable.cjs +0 -1
  427. package/dist/components/consent-dialog-trigger/use-draggable.js +0 -1
  428. package/dist/components/consent-preferences-link/consent-preferences-link.cjs +0 -1
  429. package/dist/components/consent-preferences-link/index.cjs +0 -1
  430. package/dist/components/consent-widget/atoms/accordion.cjs +0 -1
  431. package/dist/components/consent-widget/atoms/accordion.js +0 -1
  432. package/dist/components/consent-widget/atoms/button.cjs +0 -1
  433. package/dist/components/consent-widget/atoms/button.js +0 -1
  434. package/dist/components/consent-widget/atoms/footer.cjs +0 -1
  435. package/dist/components/consent-widget/atoms/footer.js +0 -1
  436. package/dist/components/consent-widget/atoms/root.cjs +0 -1
  437. package/dist/components/consent-widget/atoms/root.js +0 -1
  438. package/dist/components/consent-widget/consent-widget.cjs +0 -1
  439. package/dist/components/consent-widget/consent-widget.js +0 -1
  440. package/dist/components/consent-widget/index.cjs +0 -1
  441. package/dist/components/consent-widget/index.js +0 -1
  442. package/dist/components/consent-widget/policy-actions.cjs +0 -1
  443. package/dist/components/consent-widget/policy-actions.js +0 -1
  444. package/dist/components/consent-widget/types.cjs +0 -1
  445. package/dist/components/frame/atoms.cjs +0 -1
  446. package/dist/components/frame/frame.cjs +0 -1
  447. package/dist/components/frame/index.cjs +0 -1
  448. package/dist/components/frame/types.cjs +0 -1
  449. package/dist/components/iab-consent-banner/atoms/button-group.cjs +0 -1
  450. package/dist/components/iab-consent-banner/atoms/button-group.js +0 -1
  451. package/dist/components/iab-consent-banner/atoms/card.cjs +0 -1
  452. package/dist/components/iab-consent-banner/atoms/card.js +0 -1
  453. package/dist/components/iab-consent-banner/atoms/description.cjs +0 -1
  454. package/dist/components/iab-consent-banner/atoms/description.js +0 -1
  455. package/dist/components/iab-consent-banner/atoms/footer.cjs +0 -1
  456. package/dist/components/iab-consent-banner/atoms/footer.js +0 -1
  457. package/dist/components/iab-consent-banner/atoms/header.cjs +0 -1
  458. package/dist/components/iab-consent-banner/atoms/header.js +0 -1
  459. package/dist/components/iab-consent-banner/atoms/overlay.cjs +0 -1
  460. package/dist/components/iab-consent-banner/atoms/overlay.js +0 -1
  461. package/dist/components/iab-consent-banner/atoms/root.cjs +0 -1
  462. package/dist/components/iab-consent-banner/atoms/root.js +0 -1
  463. package/dist/components/iab-consent-banner/atoms/title.cjs +0 -1
  464. package/dist/components/iab-consent-banner/atoms/title.js +0 -1
  465. package/dist/components/iab-consent-banner/iab-consent-banner.cjs +0 -1
  466. package/dist/components/iab-consent-banner/iab-consent-banner.js +0 -1
  467. package/dist/components/iab-consent-banner/index.cjs +0 -1
  468. package/dist/components/iab-consent-banner/index.js +0 -1
  469. package/dist/components/iab-consent-dialog/atoms/card.cjs +0 -1
  470. package/dist/components/iab-consent-dialog/atoms/card.js +0 -1
  471. package/dist/components/iab-consent-dialog/atoms/content.cjs +0 -1
  472. package/dist/components/iab-consent-dialog/atoms/content.js +0 -1
  473. package/dist/components/iab-consent-dialog/atoms/footer.cjs +0 -1
  474. package/dist/components/iab-consent-dialog/atoms/footer.js +0 -1
  475. package/dist/components/iab-consent-dialog/atoms/header.cjs +0 -1
  476. package/dist/components/iab-consent-dialog/atoms/header.js +0 -1
  477. package/dist/components/iab-consent-dialog/atoms/overlay.cjs +0 -1
  478. package/dist/components/iab-consent-dialog/atoms/overlay.js +0 -1
  479. package/dist/components/iab-consent-dialog/atoms/purpose-item.cjs +0 -1
  480. package/dist/components/iab-consent-dialog/atoms/purpose-item.js +0 -1
  481. package/dist/components/iab-consent-dialog/atoms/root.cjs +0 -1
  482. package/dist/components/iab-consent-dialog/atoms/root.js +0 -1
  483. package/dist/components/iab-consent-dialog/atoms/stack-item.cjs +0 -1
  484. package/dist/components/iab-consent-dialog/atoms/stack-item.js +0 -1
  485. package/dist/components/iab-consent-dialog/atoms/tabs.cjs +0 -1
  486. package/dist/components/iab-consent-dialog/atoms/tabs.js +0 -1
  487. package/dist/components/iab-consent-dialog/atoms/vendor-list.cjs +0 -1
  488. package/dist/components/iab-consent-dialog/atoms/vendor-list.js +0 -1
  489. package/dist/components/iab-consent-dialog/hooks/use-gvl-data.cjs +0 -1
  490. package/dist/components/iab-consent-dialog/hooks/use-gvl-data.js +0 -1
  491. package/dist/components/iab-consent-dialog/iab-consent-dialog.cjs +0 -1
  492. package/dist/components/iab-consent-dialog/iab-consent-dialog.js +0 -1
  493. package/dist/components/iab-consent-dialog/index.cjs +0 -1
  494. package/dist/components/iab-consent-dialog/index.js +0 -1
  495. package/dist/components/iab-consent-dialog/types.cjs +0 -1
  496. package/dist/components/iab-consent-dialog/use-iab-translations.cjs +0 -1
  497. package/dist/components/iab-consent-dialog/use-iab-translations.js +0 -1
  498. package/dist/components/integrations/google-map.cjs +0 -1
  499. package/dist/components/integrations/google-map.js +0 -1
  500. package/dist/components/integrations/index.cjs +0 -1
  501. package/dist/components/integrations/index.js +0 -1
  502. package/dist/components/integrations/shared.cjs +0 -1
  503. package/dist/components/integrations/shared.js +0 -1
  504. package/dist/components/integrations/youtube-embed.cjs +0 -1
  505. package/dist/components/integrations/youtube-embed.js +0 -1
  506. package/dist/components/shared/libs/polymorphic.cjs +0 -1
  507. package/dist/components/shared/libs/recursive-clone-children.cjs +0 -1
  508. package/dist/components/shared/libs/slot.cjs +0 -1
  509. package/dist/components/shared/libs/use-controllable-state.cjs +0 -1
  510. package/dist/components/shared/policy-actions.cjs +0 -1
  511. package/dist/components/shared/primitives/box.cjs +0 -1
  512. package/dist/components/shared/primitives/button.cjs +0 -1
  513. package/dist/components/shared/primitives/button.types.cjs +0 -1
  514. package/dist/components/shared/primitives/legal-links/index.cjs +0 -1
  515. package/dist/components/shared/ui/accordion/accordion.cjs +0 -1
  516. package/dist/components/shared/ui/accordion/accordion.types.cjs +0 -1
  517. package/dist/components/shared/ui/accordion/index.cjs +0 -1
  518. package/dist/components/shared/ui/animated-collapse/animated-collapse.cjs +0 -1
  519. package/dist/components/shared/ui/animated-collapse/index.cjs +0 -1
  520. package/dist/components/shared/ui/branding.cjs +0 -1
  521. package/dist/components/shared/ui/button/button.cjs +0 -1
  522. package/dist/components/shared/ui/button/button.types.cjs +0 -1
  523. package/dist/components/shared/ui/button/index.cjs +0 -1
  524. package/dist/components/shared/ui/collapsible/collapsible.cjs +0 -1
  525. package/dist/components/shared/ui/collapsible/index.cjs +0 -1
  526. package/dist/components/shared/ui/dialog/dialog.cjs +0 -1
  527. package/dist/components/shared/ui/dialog/index.cjs +0 -1
  528. package/dist/components/shared/ui/icon.cjs +0 -1
  529. package/dist/components/shared/ui/logo.cjs +0 -1
  530. package/dist/components/shared/ui/preference-item/index.cjs +0 -1
  531. package/dist/components/shared/ui/preference-item/preference-item.cjs +0 -1
  532. package/dist/components/shared/ui/switch/index.cjs +0 -1
  533. package/dist/components/shared/ui/switch/switch.cjs +0 -1
  534. package/dist/components/shared/ui/switch/switch.types.cjs +0 -1
  535. package/dist/components/shared/ui/tabs/index.cjs +0 -1
  536. package/dist/components/shared/ui/tabs/tabs.cjs +0 -1
  537. package/dist/context/consent-manager-context.cjs +0 -1
  538. package/dist/context/consent-manager-context.js +0 -1
  539. package/dist/context/consent-tracking-context.cjs +0 -1
  540. package/dist/context/theme-context.cjs +0 -1
  541. package/dist/headless.cjs +0 -1
  542. package/dist/hooks/index.cjs +0 -1
  543. package/dist/hooks/index.js +0 -1
  544. package/dist/hooks/use-color-scheme.cjs +0 -1
  545. package/dist/hooks/use-component-config.cjs +0 -1
  546. package/dist/hooks/use-consent-dialog-trigger.cjs +0 -1
  547. package/dist/hooks/use-consent-dialog-trigger.js +0 -1
  548. package/dist/hooks/use-consent-manager.cjs +0 -1
  549. package/dist/hooks/use-consent-manager.js +0 -1
  550. package/dist/hooks/use-consent-script.cjs +0 -1
  551. package/dist/hooks/use-consent-script.js +0 -1
  552. package/dist/hooks/use-focus-trap.cjs +0 -1
  553. package/dist/hooks/use-headless-consent-ui.cjs +0 -1
  554. package/dist/hooks/use-headless-consent-ui.js +0 -1
  555. package/dist/hooks/use-headless-iab-consent-ui.cjs +0 -1
  556. package/dist/hooks/use-reduced-motion.cjs +0 -1
  557. package/dist/hooks/use-scroll-lock.cjs +0 -1
  558. package/dist/hooks/use-ssr-status.cjs +0 -1
  559. package/dist/hooks/use-ssr-status.js +0 -1
  560. package/dist/hooks/use-styles.cjs +0 -1
  561. package/dist/hooks/use-styles.js +0 -1
  562. package/dist/hooks/use-text-direction.cjs +0 -1
  563. package/dist/hooks/use-theme.cjs +0 -1
  564. package/dist/hooks/use-translations.cjs +0 -1
  565. package/dist/hooks/use-translations.js +0 -1
  566. package/dist/iab.cjs +0 -1
  567. package/dist/index.cjs +0 -1
  568. package/dist/primitives/accordion.cjs +0 -1
  569. package/dist/primitives/button.cjs +0 -1
  570. package/dist/primitives/collapsible.cjs +0 -1
  571. package/dist/primitives/dialog.cjs +0 -1
  572. package/dist/primitives/preference-item.cjs +0 -1
  573. package/dist/primitives/switch.cjs +0 -1
  574. package/dist/primitives/tabs.cjs +0 -1
  575. package/dist/primitives.cjs +0 -1
  576. package/dist/providers/consent-manager-provider.cjs +0 -1
  577. package/dist/providers/consent-manager-provider.js +0 -1
  578. package/dist/server/fetch-ssr-data.cjs +0 -1
  579. package/dist/server/headers.cjs +0 -1
  580. package/dist/server/index.cjs +0 -1
  581. package/dist/server/init-cache-key.cjs +0 -1
  582. package/dist/server/normalize-url.cjs +0 -1
  583. package/dist/server/types.cjs +0 -1
  584. package/dist/types/consent-manager.cjs +0 -1
  585. package/dist/types/theme/index.cjs +0 -1
  586. package/dist/types/theme/style-keys.cjs +0 -1
  587. package/dist/types/theme/style-types.cjs +0 -1
  588. package/dist/utils/cn.cjs +0 -1
  589. package/dist/utils/merge-styles.cjs +0 -1
  590. package/dist/utils/test-helpers.cjs +0 -1
  591. package/dist/utils/test-helpers.js +0 -1
  592. package/dist/utils/theme-utils.cjs +0 -1
  593. package/dist/version.cjs +0 -1
  594. package/dist-types/components/consent-banner/atoms/root.d.ts +0 -126
  595. package/dist-types/components/consent-banner/policy-actions.d.ts +0 -11
  596. package/dist-types/components/consent-widget/policy-actions.d.ts +0 -11
  597. package/dist-types/components/iab-consent-dialog/hooks/use-gvl-data.d.ts +0 -27
  598. package/dist-types/components/iab-consent-dialog/types.d.ts +0 -72
  599. package/dist-types/components/integrations/google-map.d.ts +0 -82
  600. package/dist-types/components/integrations/index.d.ts +0 -2
  601. package/dist-types/components/integrations/shared.d.ts +0 -12
  602. package/dist-types/components/integrations/youtube-embed.d.ts +0 -95
  603. package/dist-types/context/consent-manager-context.d.ts +0 -31
  604. package/dist-types/hooks/index.d.ts +0 -12
  605. package/dist-types/hooks/use-consent-dialog-trigger.d.ts +0 -10
  606. package/dist-types/hooks/use-consent-manager.d.ts +0 -27
  607. package/dist-types/hooks/use-consent-script.d.ts +0 -80
  608. package/dist-types/hooks/use-headless-consent-ui.d.ts +0 -46
  609. package/dist-types/hooks/use-ssr-status.d.ts +0 -57
  610. package/dist-types/hooks/use-styles.d.ts +0 -21
  611. package/dist-types/hooks/use-translations.d.ts +0 -28
  612. package/dist-types/providers/consent-manager-provider.d.ts +0 -40
  613. package/dist-types/types/consent-manager.d.ts +0 -39
  614. package/dist-types/types/theme/style-keys.d.ts +0 -1
  615. package/dist-types/utils/test-helpers.d.ts +0 -31
  616. package/docs/frameworks/react/building-headless-components.md +0 -370
  617. package/docs/frameworks/react/callbacks.md +0 -186
  618. package/docs/frameworks/react/concepts/client-modes.md +0 -177
  619. package/docs/frameworks/react/concepts/consent-models.md +0 -113
  620. package/docs/frameworks/react/concepts/cookie-management.md +0 -122
  621. package/docs/frameworks/react/concepts/glossary.md +0 -24
  622. package/docs/frameworks/react/concepts/initialization-flow.md +0 -149
  623. package/docs/frameworks/react/concepts/policy-packs.md +0 -228
  624. package/docs/frameworks/react/hooks/use-color-scheme.md +0 -41
  625. package/docs/frameworks/react/hooks/use-consent-manager/checking-consent.md +0 -96
  626. package/docs/frameworks/react/hooks/use-consent-manager/location-info.md +0 -97
  627. package/docs/frameworks/react/hooks/use-consent-manager/setting-consent.md +0 -94
  628. package/docs/frameworks/react/hooks/use-draggable.md +0 -59
  629. package/docs/frameworks/react/hooks/use-focus-trap.md +0 -42
  630. package/docs/frameworks/react/hooks/use-reduced-motion.md +0 -37
  631. package/docs/frameworks/react/hooks/use-ssr-status.md +0 -32
  632. package/docs/frameworks/react/hooks/use-text-direction.md +0 -50
  633. package/docs/frameworks/react/hooks/use-translations.md +0 -55
  634. package/docs/frameworks/react/iab/consent-banner.md +0 -91
  635. package/docs/frameworks/react/iab/consent-dialog.md +0 -129
  636. package/docs/frameworks/react/iab/use-gvl-data.md +0 -21
  637. package/docs/frameworks/react/iframe-blocking.md +0 -106
  638. package/docs/frameworks/react/internationalization.md +0 -207
  639. package/docs/frameworks/react/network-blocker.md +0 -140
  640. package/docs/frameworks/react/optimization.md +0 -148
  641. package/docs/frameworks/react/policy-packs.md +0 -242
  642. package/docs/frameworks/react/server-side.md +0 -158
  643. package/docs/frameworks/react/styling/classnames.md +0 -94
  644. package/docs/frameworks/react/styling/color-scheme.md +0 -84
  645. package/docs/frameworks/react/styling/css-variables.md +0 -53
  646. package/docs/frameworks/react/styling/slots.md +0 -94
  647. package/docs/frameworks/react/styling/tailwind.md +0 -119
  648. package/docs/frameworks/react/styling/tokens.md +0 -156
  649. package/docs/shared/concepts/client-modes.md +0 -103
  650. package/docs/shared/concepts/consent-categories.md +0 -41
  651. package/docs/shared/concepts/consent-models.md +0 -72
  652. package/docs/shared/concepts/cookie-management.md +0 -88
  653. package/docs/shared/concepts/glossary.md +0 -24
  654. package/docs/shared/concepts/initialization-flow.md +0 -105
  655. package/docs/shared/concepts/policy-packs.md +0 -225
  656. package/docs/shared/react/components/consent-banner.md +0 -242
  657. package/docs/shared/react/components/consent-dialog-link.md +0 -45
  658. package/docs/shared/react/components/consent-dialog-trigger.md +0 -185
  659. package/docs/shared/react/components/consent-dialog.md +0 -119
  660. package/docs/shared/react/components/consent-manager-provider.md +0 -225
  661. package/docs/shared/react/components/consent-widget.md +0 -121
  662. package/docs/shared/react/components/dev-tools.md +0 -81
  663. package/docs/shared/react/components/frame.md +0 -52
  664. package/docs/shared/react/guides/building-headless-components.md +0 -110
  665. package/docs/shared/react/guides/callbacks.md +0 -89
  666. package/docs/shared/react/guides/headless.md +0 -31
  667. package/docs/shared/react/guides/iframe-blocking.md +0 -65
  668. package/docs/shared/react/guides/internationalization.md +0 -123
  669. package/docs/shared/react/guides/network-blocker.md +0 -72
  670. package/docs/shared/react/guides/optimization.md +0 -44
  671. package/docs/shared/react/guides/policy-packs.md +0 -173
  672. package/docs/shared/react/guides/script-loader.md +0 -311
  673. package/docs/shared/react/hooks/use-color-scheme.md +0 -31
  674. package/docs/shared/react/hooks/use-consent-manager/checking-consent.md +0 -95
  675. package/docs/shared/react/hooks/use-consent-manager/location-info.md +0 -96
  676. package/docs/shared/react/hooks/use-consent-manager/overview.md +0 -74
  677. package/docs/shared/react/hooks/use-consent-manager/setting-consent.md +0 -93
  678. package/docs/shared/react/hooks/use-draggable.md +0 -30
  679. package/docs/shared/react/hooks/use-focus-trap.md +0 -20
  680. package/docs/shared/react/hooks/use-reduced-motion.md +0 -33
  681. package/docs/shared/react/hooks/use-ssr-status.md +0 -16
  682. package/docs/shared/react/hooks/use-text-direction.md +0 -38
  683. package/docs/shared/react/hooks/use-translations.md +0 -15
  684. package/docs/shared/react/iab/consent-banner.md +0 -60
  685. package/docs/shared/react/iab/consent-dialog.md +0 -76
  686. package/docs/shared/react/iab/overview.md +0 -80
  687. package/docs/shared/react/iab/use-gvl-data.md +0 -21
  688. package/docs/shared/react/styling/classnames.md +0 -93
  689. package/docs/shared/react/styling/color-scheme.md +0 -35
  690. package/docs/shared/react/styling/css-variables.md +0 -53
  691. package/docs/shared/react/styling/overview.md +0 -261
  692. package/docs/shared/react/styling/slots.md +0 -93
  693. package/docs/shared/react/styling/stylesheet-entrypoint.md +0 -8
  694. package/docs/shared/react/styling/tailwind.md +0 -88
  695. package/docs/shared/react/styling/tokens.md +0 -155
  696. package/docs/shared/troubleshooting.md +0 -82
  697. /package/dist/components/{consent-dialog-trigger → iab-panel}/types.js +0 -0
  698. /package/dist/components/{consent-widget → panel-trigger}/types.js +0 -0
  699. /package/dist/components/{iab-consent-dialog → preferences}/types.js +0 -0
  700. /package/dist/types/{consent-manager.js → manager.js} +0 -0
  701. /package/dist/types/{theme/style-keys.js → slots.js} +0 -0
  702. /package/dist-types/components/{consent-dialog-link → panel-link}/index.d.ts +0 -0
  703. /package/dist-types/components/{consent-widget → preferences}/atoms/button.d.ts +0 -0
  704. /package/dist-types/components/{consent-widget/consent-widget.d.ts → preferences/preferences.d.ts} +0 -0
  705. /package/dist-types/components/{consent-widget → preferences}/types.d.ts +0 -0
package/docs/README.md CHANGED
@@ -1,155 +1,103 @@
1
1
  # @c15t/react
2
2
 
3
- > React consent management docs for c15t, including consent UI, hooks, styling, script loading, and integrations.
3
+ > React v3 consent components, hooks, Inth setup and customization.
4
4
 
5
5
  These docs ship inside the package so coding agents can read them offline. Open the topic file you need from the list below — paths are relative to this file.
6
6
 
7
- ## Frameworks
7
+ ## Using these docs
8
+
9
+ These docs describe v3. Start with Inth hosted setup, identify the framework, router and deployment, then read its quickstart. Static sites can use Inth directly. Use page Markdown and package-bundled docs for targeted context. Verify scripts, rejection, reload and preferences; banner visibility alone is insufficient.
10
+
11
+ ## Start here
8
12
 
9
- Install and configure c15t in JavaScript, React, and Next.js applications.
13
+ - [React quickstart](./frameworks/react/quickstart.md)
14
+ - [Customize your consent interface](./customization/overview.md): Choose presentation, theme tokens, slots or custom markup for the change you need.
15
+ - [Verify consent before shipping](./guides/verify-consent.md): Test requests, policy resolution, persistence, navigation and preference changes in a production build.
16
+ - [Upgrade to v3 policies](./upgrade-v3.md): Migrate policy configuration, consent records, callbacks, and custom transports to the v3 policy system.
10
17
 
11
- - [Building Headless Components](./frameworks/react/building-headless-components.md): Build policy-aware custom consent components in React using the headless hooks and policy-pack tooling.
12
- - [Callbacks](./frameworks/react/callbacks.md): React to consent lifecycle events - initialization, consent changes, errors, and revocation reloads.
13
- - [ConsentBanner](./frameworks/react/components/consent-banner.md): A pre-built consent banner that appears when user consent is needed. Supports policy-aware layout, theming, and advanced composition when markup must change.
14
- - [ConsentDialog](./frameworks/react/components/consent-dialog.md): A modal dialog where users can toggle individual consent categories.
15
- - [ConsentDialogLink](./frameworks/react/components/consent-dialog-link.md): An inline trigger for opening the consent dialog from footers, legal pages, and account settings.
16
- - [ConsentDialogTrigger](./frameworks/react/components/consent-dialog-trigger.md): A floating, draggable button that lets users re-open the consent dialog at any time.
17
- - [ConsentManagerProvider](./frameworks/react/components/consent-manager-provider.md): The root provider component that initializes the consent system and makes consent state available to all child components.
18
- - [ConsentWidget](./frameworks/react/components/consent-widget.md): An inline consent management widget for embedding in settings or privacy pages. Shows category toggles with accordion layout.
18
+ ## More documentation
19
+
20
+ [Documentation index](https://c15t.com/docs/llms.txt) · [Full Markdown context](https://c15t.com/llms-full.txt). Prefer the index and individual pages for focused tasks.
21
+
22
+ ## Frameworks
23
+
24
+ - [ConsentBanner](./frameworks/react/components/consent-banner.md): Pre-built consent banner shown when consent is required.
25
+ - [ConsentDialog](./frameworks/react/components/consent-dialog.md): Open the c15t preference center as a modal ConsentDialog in a React app, wire its triggers and control blocking, focus and policy gating.
26
+ - [ConsentDialogLink](./frameworks/react/components/consent-dialog-link.md): Add a ConsentDialogLink to a React footer so visitors reopen the c15t preference center from your own text link, with asChild and rights data.
27
+ - [ConsentDialogTrigger](./frameworks/react/components/consent-dialog-trigger.md): Floating button and toolbar that reopen the preference center after the first prompt.
28
+ - [ConsentProvider](./frameworks/react/components/consent-manager-provider.md): Configure the v3 consent runtime and share its state with child components.
29
+ - [ConsentWidget](./frameworks/react/components/consent-widget.md): Embed the c15t preference center inline with ConsentWidget on a React privacy page, with draft toggles that record a choice only on Save.
19
30
  - [DevTools](./frameworks/react/components/dev-tools.md): A development tool for inspecting consent state, geolocation, loaded scripts, and consent events in real time.
20
- - [Frame](./frameworks/react/components/frame.md): A consent-gated content wrapper - children only mount when the required consent category is granted.
21
- - [Client Modes](./frameworks/react/concepts/client-modes.md): Choose how c15t connects to its backend - full hosted integration, offline-only, or bring your own backend.
22
- - [Consent Categories](./frameworks/react/concepts/consent-categories.md): How c15t organizes tracking technologies into five consent categories.
23
- - [Consent Models](./frameworks/react/concepts/consent-models.md): How c15t determines consent behavior based on legal jurisdiction.
24
- - [Cookie Management](./frameworks/react/concepts/cookie-management.md): How c15t manages cookies through script, iframe, and network gating
25
- - [Glossary](./frameworks/react/concepts/glossary.md): Key terms used throughout the c15t documentation.
26
- - [Initialization Flow](./frameworks/react/concepts/initialization-flow.md): What happens from provider mount to first render — the full consent lifecycle.
27
- - [Policy Packs](./frameworks/react/concepts/policy-packs.md): How c15t resolves regional consent policies and what a policy pack controls.
28
- - [Headless Mode](./frameworks/react/headless.md): Build fully custom consent UI using only hooks - no pre-built components required.
29
- - [useColorScheme](./frameworks/react/hooks/use-color-scheme.md): Manage light/dark mode preferences for consent components.
30
- - [Checking Consent](./frameworks/react/hooks/use-consent-manager/checking-consent.md): Use has() for flexible consent checks with AND, OR, and NOT logic. Check if any consent exists with hasConsented().
31
- - [Location Info](./frameworks/react/hooks/use-consent-manager/location-info.md): Access detected jurisdiction, country, and region. Override geolocation for testing.
32
- - [useConsentManager](./frameworks/react/hooks/use-consent-manager/overview.md): The primary hook for accessing consent state and actions. Returns the full consent store including all state properties and action methods.
33
- - [Setting Consent](./frameworks/react/hooks/use-consent-manager/setting-consent.md): Save, update, and reset consent preferences with setConsent(), setSelectedConsent(), and saveConsents().
34
- - [useDraggable](./frameworks/react/hooks/use-draggable.md): Make an element draggable between viewport corners with snapping, persistence, and animation support.
35
- - [useFocusTrap](./frameworks/react/hooks/use-focus-trap.md): Trap keyboard focus within a container for accessible modal dialogs.
36
- - [useReducedMotion](./frameworks/react/hooks/use-reduced-motion.md): Detect the user's prefers-reduced-motion OS setting and reactively disable animations.
37
- - [useSSRStatus](./frameworks/react/hooks/use-ssr-status.md): Check whether server-side rendered consent data was used during initialization.
38
- - [useTextDirection](./frameworks/react/hooks/use-text-direction.md): Manage RTL/LTR text direction based on the active language for consent UI.
39
- - [useTranslations](./frameworks/react/hooks/use-translations.md): Access the current language's translations for building custom consent UI.
40
- - [IABConsentBanner](./frameworks/react/iab/consent-banner.md): An IAB TCF 2.3 compliant consent banner that displays partner count, purpose summaries, and legitimate interest notices.
41
- - [IABConsentDialog](./frameworks/react/iab/consent-dialog.md): An IAB TCF 2.3 compliant preference center with tabbed purpose and vendor management.
42
- - [IAB TCF 2.3](./frameworks/react/iab/overview.md): Implement IAB Transparency & Consent Framework 2.3 compliance for programmatic advertising in EU/EEA jurisdictions.
43
- - [useGVLData (Internal)](./frameworks/react/iab/use-gvl-data.md): Status note for the internal GVL hook used by the built-in IAB dialog.
44
- - [Iframe Blocking](./frameworks/react/iframe-blocking.md): Block embedded content (YouTube, social widgets, maps) until users grant consent for the appropriate category.
45
- - [Internationalization](./frameworks/react/internationalization.md): Translate consent UI into 30+ languages with built-in translations, custom overrides, and automatic browser language detection.
46
- - [Network Blocker](./frameworks/react/network-blocker.md): Block outgoing network requests to third-party domains until the user grants consent for the appropriate category.
47
- - [Optimization](./frameworks/react/optimization.md): Improve c15t startup performance in React with prefetching, proxy rewrites, and rendering tradeoffs.
48
- - [Policy Packs](./frameworks/react/policy-packs.md): Configure regional consent policies in React — hosted mode, presets, and offline fallback.
49
- - [Quickstart](./frameworks/react/quickstart.md): Add consent management to your React app in under 5 minutes.
50
- - [Script Loader](./frameworks/react/script-loader.md): Gate third-party scripts behind consent in React — load Google Analytics, Meta Pixel, and other tracking scripts only when users grant permission.
51
- - [Server-Side Utilities](./frameworks/react/server-side.md): Fetch consent data on the server for SSR hydration — eliminate the loading flash and improve performance.
52
- - [Class Names](./frameworks/react/styling/classnames.md): Style consent components using className props and per-slot className targeting via the theme.
53
- - [Color Scheme](./frameworks/react/styling/color-scheme.md): Support light mode, dark mode, and system preference detection in consent components.
54
- - [CSS Variables](./frameworks/react/styling/css-variables.md): Reference for all --c15t-* CSS custom properties generated by the theme system.
55
- - [Styling Overview](./frameworks/react/styling/overview.md): Customize every aspect of c15t's consent components using design tokens, component slots, and CSS variables.
56
- - [Component Slots](./frameworks/react/styling/slots.md): Target individual component parts with styles using the slot system - className strings or inline style objects.
57
- - [Tailwind CSS](./frameworks/react/styling/tailwind.md): Use Tailwind CSS utility classes to style consent components via the slot system.
58
- - [Design Tokens](./frameworks/react/styling/tokens.md): The six base token categories that control colors, typography, spacing, radius, shadows, and motion, plus optional dark-mode overrides.
59
- - [Troubleshooting](./frameworks/react/troubleshooting.md): Solutions for common issues with @c15t/react — provider errors, missing banners, consent persistence, and more.
31
+ - [Frame](./frameworks/react/components/frame.md): Gate a YouTube or map iframe behind consent with Frame in React, showing a placeholder that opens the preference center until the category is allowed.
32
+ - [Consent categories](./frameworks/react/concepts/consent-categories.md): Assign optional features to categories and understand how policy scope affects permission.
33
+ - [Policy presets](./frameworks/react/concepts/policy-presets.md): Understand how policy rules affect React prompts, permissions and persistent privacy controls.
34
+ - [Headless](./frameworks/react/headless.md): Build a custom consent banner in React with the c15t/react/headless hooks inside your ConsentProvider.
35
+ - [Hooks](./frameworks/react/hooks/use-consent-manager/overview.md): Gate features and save consent choices in React components with the focused hooks exported from c15t/react.
36
+ - [IAB TCF](./frameworks/react/iab/overview.md): Mount the IAB TCF banner and dialog inside a React ConsentProvider and configure the CMP ID, policy and vendor data.
37
+ - [Quickstart](./frameworks/react/quickstart.md): Connect a React application to Inth and add consent UI, persistence and a preferences link.
38
+ - [Load scripts with consent](./frameworks/react/script-loader.md): Register vendor scripts once and let effective permissions control loading.
39
+ - [Styling](./frameworks/react/styling/overview.md): Import the React stylesheet and theme c15t components with tokens, slots, and class names on ConsentProvider.
40
+ - [Troubleshoot React consent](./frameworks/react/troubleshooting.md): Diagnose policy resolution, early scripts, storage and rendering problems.
41
+
42
+ ## Guides
43
+
44
+ - [Understand consent state](./guides/consent-state.md): Distinguish policy resolution, effective permissions, explicit choices, notices and privacy signals.
45
+ - [Data fetching and transports](./guides/data-fetching.md): Choose cached manifests, backend init or offline policy resolution, and understand where consent records are saved.
46
+ - [Choose a deployment mode](./guides/deployment-modes.md): Choose who runs your consent backend, then select manifest, init or offline resolution for your deployment.
47
+ - [Troubleshoot consent](./guides/troubleshooting.md): Diagnose missing banners, early vendor requests, lost choices and hydration differences.
48
+ - [Verify consent before shipping](./guides/verify-consent.md): Test requests, policy resolution, persistence, navigation and preference changes in a production build.
49
+
50
+ ## Customization
51
+
52
+ - [Customize your consent interface](./customization/overview.md): Choose presentation, theme tokens, slots or custom markup for the change you need.
53
+ - [Banner styling recipes](./customization/recipes.md): See real v3 components and reuse the exact theme configuration behind the examples.
54
+ - [Style component slots](./customization/slots.md): Target a specific c15t component part without replacing its markup or behavior.
55
+ - [Theme tokens and CSS](./customization/tokens.md): Style c15t with semantic tokens and use the stylesheet that matches your CSS tooling.
56
+ - [Copy and translations](./customization/translations.md): Change consent wording through i18n and test the complete prompt and preferences flow.
60
57
 
61
58
  ## Integrations
62
59
 
63
- Connect analytics, advertising, maps, media, and other third-party tools behind consent.
64
-
65
- - [Adobe Analytics](./integrations/adobe-analytics.md): Adobe Analytics loaded through an Adobe Experience Platform Data Collection Tags embed URL.
66
- - [Ahrefs Analytics](./integrations/ahrefs-analytics.md): Cookieless web analytics from Ahrefs with a prebuilt helper that wires the project key into a c15t-managed script.
67
- - [Amplitude](./integrations/amplitude.md): Load Amplitude Browser SDK 2 with c15t and gate product analytics behind measurement consent.
68
- - [Build a Custom Script Integration](./integrations/building-integrations.md): Learn when to use a raw Script, when to build a reusable manifest-backed integration, and how to debug and test custom consent-aware scripts in c15t.
69
- - [Clearbit](./integrations/clearbit.md): Visitor and company enrichment loaded with Clearbit's account-keyed tags.js snippet.
70
- - [Cloudflare Web Analytics](./integrations/cloudflare-web-analytics.md): Cookieless analytics from Cloudflare with a prebuilt helper that serializes the beacon config into the `data-cf-beacon` attribute.
71
- - [Crisp](./integrations/crisp.md): Load Crisp live chat with website ID, runtime, cookie, and session options.
72
- - [Databuddy](./integrations/databuddy.md): Databuddy is a privacy-focused analytics platform that helps you understand user behavior and track events. It supports cookieless tracking and manages consent automatically through c15t's consent state synchronization.
73
- - [Fathom Analytics](./integrations/fathom-analytics.md): Privacy-friendly cookieless analytics with a prebuilt helper that maps Fathom's data attributes into a c15t-managed script.
74
- - [Google Maps](./integrations/google-maps.md): Render Google Maps only after consent with one shared Maps JavaScript API loader and independently managed map instances.
75
- - [GA4 + Google Ads (gtag.js)](./integrations/google-tag.md): Send data to Google Analytics 4 and Google Ads with automatic Consent Mode v2 support.
76
- - [Google Tag Manager](./integrations/google-tag-manager.md): Deploy and manage marketing tags centrally with automatic consent state synchronization.
77
- - [Heap](./integrations/heap.md): Load Heap with c15t and gate autocapture product analytics behind measurement consent.
78
- - [Hightouch](./integrations/hightouch.md): Load Hightouch Events with c15t and gate the browser SDK behind measurement consent.
79
- - [Hotjar](./integrations/hotjar.md): Product analytics and behavior insights with a prebuilt helper that seeds Hotjar globals before loading the vendor bundle.
80
- - [Intercom](./integrations/intercom.md): Bootstrap Intercom settings and load the messenger widget bundle.
81
- - [LinkedIn Insights](./integrations/linkedin-insights.md): Track conversions and build matched audiences for LinkedIn advertising campaigns.
82
- - [LogRocket](./integrations/logrocket.md): Session replay and monitoring loaded after measurement consent with LogRocket's browser SDK.
83
- - [Matomo Analytics](./integrations/matomo-analytics.md): Load Matomo with c15t and keep Matomo's queue aligned with measurement consent.
84
- - [Meta Pixel](./integrations/meta-pixel.md): Track conversions and build audiences for Facebook and Instagram advertising campaigns.
85
- - [Microsoft Clarity](./integrations/microsoft-clarity.md): Session replay and behavior analytics with a prebuilt helper that keeps Clarity consent synchronized with c15t measurement state.
86
- - [Microsoft UET](./integrations/microsoft-uet.md): Track conversions and measure performance for Microsoft Advertising and Bing Ads.
87
- - [Mixpanel Analytics](./integrations/mixpanel-analytics.md): Load Mixpanel with c15t and let Mixpanel's own opt-in and opt-out APIs follow measurement consent.
88
- - [Integrations](./integrations/overview.md): Load analytics, pixels, tag managers, and widgets through c15t so consent state controls when they run, update, and appear in your consent UI.
89
- - [Pirsch](./integrations/pirsch.md): Privacy-friendly, cookieless analytics loaded with Pirsch's fixed script id and identification-code attributes.
90
- - [Plausible Analytics](./integrations/plausible-analytics.md): Privacy-friendly cookieless analytics with a prebuilt helper that preserves Plausible's queue bootstrap and loader attributes.
91
- - [PostHog](./integrations/posthog.md): PostHog is an open-source product analytics platform for tracking user behavior, session replays, feature flags, and A/B testing. It supports cookieless tracking, allowing analytics to continue even without cookie consent.
92
- - [Promptwatch](./integrations/promptwatch.md): Promptwatch analyzes traffic on your site for Artificial Intelligence (AI) traffic and usage insights. Data is stored in the EU without user-identifiable information.
93
- - [Reddit Pixel](./integrations/reddit-pixel.md): Track conversions and build retargeting audiences for Reddit advertising campaigns.
94
- - [RudderStack](./integrations/rudderstack.md): Load RudderStack's JavaScript SDK with c15t and gate the browser SDK behind measurement consent.
95
- - [Rybbit Analytics](./integrations/rybbit-analytics.md): Privacy-friendly analytics with script-tag configuration via Rybbit's data attributes.
96
- - [Segment](./integrations/segment.md): Load Segment Analytics.js with c15t and gate it behind measurement consent.
97
- - [Snapchat Pixel](./integrations/snapchat-pixel.md): Measure Snapchat ad performance and build remarketing audiences with a prebuilt pixel helper.
98
- - [TikTok Pixel](./integrations/tiktok-pixel.md): Measure ad performance and build audiences for TikTok advertising campaigns.
99
- - [Umami Analytics](./integrations/umami-analytics.md): Open-source, cookieless analytics with a prebuilt helper that maps Umami's data attributes into a c15t-managed script.
100
- - [Vercel Analytics](./integrations/vercel-analytics.md): Bootstrap Vercel Analytics with a declarative queue and script attributes.
101
- - [X Pixel (Twitter Pixel)](./integrations/x-pixel.md): Track conversions and build audiences for advertising campaigns on X (formerly Twitter).
102
- - [YouTube](./integrations/youtube.md): Keep YouTube iframes unmounted until consent with a privacy-enhanced, lazy-loaded React or Next.js embed.
60
+ - [Adobe Analytics](./integrations/adobe-analytics.md): Configure Adobe Analytics with c15t v3, understand measurement permission and verify loading and revocation.
61
+ - [Ahrefs Analytics](./integrations/ahrefs-analytics.md): Configure Ahrefs Analytics with c15t v3, understand measurement permission and verify loading and revocation.
62
+ - [Amplitude](./integrations/amplitude.md): Configure Amplitude with c15t v3, understand measurement permission and verify loading and revocation.
63
+ - [Custom integrations](./integrations/building-integrations.md): Define loading, initialization and consent-change behavior for a vendor without a helper.
64
+ - [Clear on revocation](./integrations/clear-on-revocation.md): Remove configured first-party cookies and Web Storage keys when their consent category is denied.
65
+ - [Clearbit](./integrations/clearbit.md): Configure Clearbit with c15t v3, understand marketing permission and verify loading and revocation.
66
+ - [Cloudflare Web Analytics](./integrations/cloudflare-web-analytics.md): Configure Cloudflare Web Analytics with c15t v3, understand measurement permission and verify loading and revocation.
67
+ - [Crisp](./integrations/crisp.md): Configure Crisp with c15t v3, understand functionality permission and verify loading and revocation.
68
+ - [Databuddy](./integrations/databuddy.md): Configure Databuddy's initial and updated consent state with c15t v3.
69
+ - [Fathom Analytics](./integrations/fathom-analytics.md): Configure Fathom Analytics with c15t v3, understand measurement permission and verify loading and revocation.
70
+ - [Google Maps](./integrations/google-maps.md): Prevent a map iframe from mounting before the required permission.
71
+ - [Google Tag](./integrations/google-tag.md): Configure gtag with c15t Consent Mode signals and understand its loading behavior.
72
+ - [Google Tag Manager](./integrations/google-tag-manager.md): Load GTM with c15t consent signals and verify the tags inside your container.
73
+ - [Heap](./integrations/heap.md): Configure Heap with c15t v3, understand measurement permission and verify loading and revocation.
74
+ - [Hightouch](./integrations/hightouch.md): Configure Hightouch with c15t v3, understand measurement permission and verify loading and revocation.
75
+ - [Hotjar](./integrations/hotjar.md): Configure Hotjar with c15t v3, understand measurement permission and verify loading and revocation.
76
+ - [Intercom](./integrations/intercom.md): Load the Intercom messenger with functionality permission and configure its region.
77
+ - [LinkedIn Insight Tag](./integrations/linkedin-insights.md): Configure LinkedIn Insight Tag with c15t v3, understand marketing permission and verify loading and revocation.
78
+ - [LogRocket](./integrations/logrocket.md): Configure LogRocket with c15t v3, understand measurement permission and verify loading and revocation.
79
+ - [Matomo Analytics](./integrations/matomo-analytics.md): Choose gated loading or Matomo consent signaling and configure the correct tracker endpoints.
80
+ - [Meta Pixel](./integrations/meta-pixel.md): Register the Meta Pixel under marketing permission and verify event calls after revocation.
81
+ - [Microsoft Clarity](./integrations/microsoft-clarity.md): Configure Microsoft Clarity with c15t v3, understand measurement permission and verify loading and revocation.
82
+ - [Microsoft UET](./integrations/microsoft-uet.md): Configure Microsoft UET with c15t v3, understand marketing permission and verify loading and revocation.
83
+ - [Mixpanel](./integrations/mixpanel-analytics.md): Configure Mixpanel with c15t v3, understand measurement permission and verify loading and revocation.
84
+ - [OpenAI Pixel](./integrations/openai-pixel.md): Configure the OpenAI Measurement Pixel for ChatGPT Ads with c15t v3, manage marketing permission and verify conversion delivery.
85
+ - [Overview](./integrations/overview.md): Find all c15t integrations for analytics, tag managers, advertising, chat and embedded content.
86
+ - [Pirsch](./integrations/pirsch.md): Configure Pirsch with c15t v3, understand measurement permission and verify loading and revocation.
87
+ - [Plausible Analytics](./integrations/plausible-analytics.md): Configure Plausible Analytics with c15t v3, understand measurement permission and verify loading and revocation.
88
+ - [PostHog](./integrations/posthog.md): Choose PostHog loading and cookieless behavior, configure the region, and synchronize v3 permissions.
89
+ - [Promptwatch](./integrations/promptwatch.md): Configure Promptwatch with c15t v3, understand measurement permission and verify loading and revocation.
90
+ - [Reddit Pixel](./integrations/reddit-pixel.md): Configure Reddit Pixel with c15t v3, understand marketing permission and verify loading and revocation.
91
+ - [RudderStack](./integrations/rudderstack.md): Gate the RudderStack browser SDK or map c15t categories to destination consent IDs.
92
+ - [Rybbit Analytics](./integrations/rybbit-analytics.md): Configure Rybbit Analytics with c15t v3, understand measurement permission and verify loading and revocation.
93
+ - [Segment](./integrations/segment.md): Configure Segment with c15t v3, understand measurement permission and verify loading and revocation.
94
+ - [Snapchat Pixel](./integrations/snapchat-pixel.md): Configure Snapchat Pixel with c15t v3, understand marketing permission and verify loading and revocation.
95
+ - [TikTok Pixel](./integrations/tiktok-pixel.md): Configure TikTok Pixel with c15t v3, understand marketing permission and verify loading and revocation.
96
+ - [Umami Analytics](./integrations/umami-analytics.md): Configure Umami Analytics with c15t v3, understand measurement permission and verify loading and revocation.
97
+ - [Vercel Analytics](./integrations/vercel-analytics.md): Configure Vercel Analytics with c15t v3, understand measurement permission and verify loading and revocation.
98
+ - [X Pixel](./integrations/x-pixel.md): Configure X Pixel with c15t v3, understand marketing permission and verify loading and revocation.
99
+ - [YouTube](./integrations/youtube.md): Gate YouTube embeds with c15t v3 in Next.js, TanStack Start, React, Nuxt, Vue, Astro, Svelte, SvelteKit or JavaScript.
103
100
 
104
101
  ## Reference
105
102
 
106
- Concepts, legal templates, open-source policies, and contributor documentation.
107
-
108
- - [Client Modes](./shared/concepts/client-modes.md): Reference page for client modes.
109
- - [Consent Categories](./shared/concepts/consent-categories.md): Reference page for consent categories.
110
- - [Consent Models](./shared/concepts/consent-models.md): Reference page for consent models.
111
- - [Cookie Management](./shared/concepts/cookie-management.md): Reference page for cookie management.
112
- - [Glossary](./shared/concepts/glossary.md): Reference page for glossary.
113
- - [Initialization Flow](./shared/concepts/initialization-flow.md): Reference page for initialization flow.
114
- - [Policy Packs](./shared/concepts/policy-packs.md): Reference page for policy packs.
115
- - [Consent Banner](./shared/react/components/consent-banner.md): Reference page for consent banner.
116
- - [Consent Dialog](./shared/react/components/consent-dialog.md): Reference page for consent dialog.
117
- - [Consent Dialog Link](./shared/react/components/consent-dialog-link.md): Reference page for consent dialog link.
118
- - [Consent Dialog Trigger](./shared/react/components/consent-dialog-trigger.md): Reference page for consent dialog trigger.
119
- - [Consent Manager Provider](./shared/react/components/consent-manager-provider.md): Reference page for consent manager provider.
120
- - [Consent Widget](./shared/react/components/consent-widget.md): Reference page for consent widget.
121
- - [Dev Tools](./shared/react/components/dev-tools.md): Reference page for dev tools.
122
- - [Frame](./shared/react/components/frame.md): Reference page for frame.
123
- - [Building Headless Components](./shared/react/guides/building-headless-components.md): Reference page for building headless components.
124
- - [Callbacks](./shared/react/guides/callbacks.md): Reference page for callbacks.
125
- - [Headless](./shared/react/guides/headless.md): Reference page for headless.
126
- - [Iframe Blocking](./shared/react/guides/iframe-blocking.md): Reference page for iframe blocking.
127
- - [Internationalization](./shared/react/guides/internationalization.md): Reference page for internationalization.
128
- - [Network Blocker](./shared/react/guides/network-blocker.md): Reference page for network blocker.
129
- - [Optimization](./shared/react/guides/optimization.md): Reference page for optimization.
130
- - [Policy Packs](./shared/react/guides/policy-packs.md): Reference page for policy packs.
131
- - [Script Loader](./shared/react/guides/script-loader.md): Reference page for script loader.
132
- - [Use Color Scheme](./shared/react/hooks/use-color-scheme.md): Reference page for use color scheme.
133
- - [Checking Consent](./shared/react/hooks/use-consent-manager/checking-consent.md): Reference page for checking consent.
134
- - [Location Info](./shared/react/hooks/use-consent-manager/location-info.md): Reference page for location info.
135
- - [Overview](./shared/react/hooks/use-consent-manager/overview.md): Reference page for overview.
136
- - [Setting Consent](./shared/react/hooks/use-consent-manager/setting-consent.md): Reference page for setting consent.
137
- - [Use Draggable](./shared/react/hooks/use-draggable.md): Reference page for use draggable.
138
- - [Use Focus Trap](./shared/react/hooks/use-focus-trap.md): Reference page for use focus trap.
139
- - [Use Reduced Motion](./shared/react/hooks/use-reduced-motion.md): Reference page for use reduced motion.
140
- - [Use SSR Status](./shared/react/hooks/use-ssr-status.md): Reference page for use ssr status.
141
- - [Use Text Direction](./shared/react/hooks/use-text-direction.md): Reference page for use text direction.
142
- - [Use Translations](./shared/react/hooks/use-translations.md): Reference page for use translations.
143
- - [Consent Banner](./shared/react/iab/consent-banner.md): Reference page for consent banner.
144
- - [Consent Dialog](./shared/react/iab/consent-dialog.md): Reference page for consent dialog.
145
- - [Overview](./shared/react/iab/overview.md): Reference page for overview.
146
- - [Use GVL Data](./shared/react/iab/use-gvl-data.md): Reference page for use gvl data.
147
- - [Classnames](./shared/react/styling/classnames.md): Reference page for classnames.
148
- - [Color Scheme](./shared/react/styling/color-scheme.md): Reference page for color scheme.
149
- - [CSS Variables](./shared/react/styling/css-variables.md): Reference page for css variables.
150
- - [Overview](./shared/react/styling/overview.md): Reference page for overview.
151
- - [Slots](./shared/react/styling/slots.md): Reference page for slots.
152
- - [Stylesheet Entrypoint](./shared/react/styling/stylesheet-entrypoint.md): Reference page for stylesheet entrypoint.
153
- - [Tailwind](./shared/react/styling/tailwind.md): Reference page for tailwind.
154
- - [Tokens](./shared/react/styling/tokens.md): Reference page for tokens.
155
- - [Troubleshooting](./shared/troubleshooting.md): Reference page for troubleshooting.
103
+ - [Upgrade to v3 policies](./upgrade-v3.md): Migrate policy configuration, consent records, callbacks, and custom transports to the v3 policy system.
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,45 @@
1
+ ---
2
+ title: Customize your consent interface
3
+ description: Choose presentation, theme tokens, slots or custom markup for the
4
+ change you need.
5
+ group: customization
6
+ ---
7
+
8
+ ## Start with the change you want
9
+
10
+ | Change | Use | Why |
11
+ | ----------------------------------------- | ----------------------------------- | ------------------------------------------------------------ |
12
+ | Banner shape or location | Presentation or banner props | Keeps policy actions and built-in layout behavior |
13
+ | Brand colors, radius, typography, spacing | Theme tokens | Changes related component parts together |
14
+ | One card, footer, title or button group | Component slots | Targets existing markup |
15
+ | Labels, descriptions or language | i18n configuration | Keeps banner and preferences copy consistent |
16
+ | A different component structure | Compound components where available | Retains the component behavior while changing markup |
17
+ | Your own interaction and markup | Headless APIs | You own rendering, focus behavior and policy action coverage |
18
+
19
+ Most brand changes need tokens and a few slots. Start there before opting out
20
+ of the stock styles. The [recipes](./recipes.md) show how each
21
+ choice affects a real banner.
22
+
23
+ ## Keep behavior and appearance separate
24
+
25
+ Presentation controls the prompt's shape, position and blocking behavior.
26
+ Policy controls which actions and rights are required. Changing colors or button
27
+ order does not change a saved choice or policy scope.
28
+
29
+ A choice wall always blocks. Notices never block and cannot become a wall merely
30
+ because `variant: 'wall'` was requested. Preference dialogs remain centered;
31
+ prompt positioning does not move them. Required actions omitted from a custom
32
+ layout can be restored by the policy renderer.
33
+
34
+ ## Use the adapter's configuration shape
35
+
36
+ React and Next.js accept provider `theme`, `presentation` and `components`
37
+ options. Vue and Nuxt expose their own shared configuration, including CSS
38
+ `tokens` and component slots. Svelte accepts its provider options and theme
39
+ contract. Astro serializes integration options and uses the selected adapter for
40
+ dialogs. Do not move a configuration object between frameworks without checking
41
+ the target types.
42
+
43
+ Read [tokens and CSS](./tokens.md),
44
+ [slots](./slots.md) or
45
+ [copy and translations](./translations.md) for the next step.
@@ -0,0 +1,79 @@
1
+ ---
2
+ title: Banner styling recipes
3
+ description: See real v3 components and reuse the exact theme configuration
4
+ behind the examples.
5
+ group: customization
6
+ ---
7
+
8
+ ## A branded floating card
9
+
10
+ This theme uses a green primary action and a four-pixel large radius. Accept and
11
+ Reject keep matching treatment. The component's required action behavior stays
12
+ intact.
13
+
14
+ ![A v3 floating consent card with green Customize action, matching Accept and Reject buttons, and compact corners](../assets/v3/brand-card.png)
15
+
16
+ ```ts
17
+ import { defineTheme } from '@c15t/ui/theme';
18
+
19
+ export const brandTheme = defineTheme({
20
+ colors: { primary: '#2f6f4e' },
21
+ consentActions: {
22
+ primary: { mode: 'filled', variant: 'primary' },
23
+ },
24
+ radius: { lg: '4px' },
25
+ });
26
+
27
+ ```
28
+
29
+ Install `@c15t/ui` to use `defineTheme` directly. Pass `brandTheme` as `theme` in
30
+ your existing React or Next.js provider options. Keep your Inth mode and script
31
+ configuration. The theme source above is also imported by the runnable example,
32
+ so the rendered result and the documentation use the same values.
33
+
34
+ ## Change the shape without rebuilding the banner
35
+
36
+ ```tsx
37
+ <ConsentBanner variant="bar" />
38
+ ```
39
+
40
+ ![The same green theme on a full-width v3 consent bar with the actions arranged across its footer](../assets/v3/brand-bar.png)
41
+
42
+ A bar changes the prompt's footprint. It does not change policy, grant categories
43
+ or require a headless implementation.
44
+
45
+ ```tsx
46
+ <ConsentBanner variant="wall" />
47
+ ```
48
+
49
+ ![A centered v3 choice wall with a backdrop, using the same green action theme](../assets/v3/choice-wall.png)
50
+
51
+ A choice wall blocks interaction with the page. A notice never blocks; requesting
52
+ a wall for a notice falls back to a non-blocking presentation.
53
+
54
+ ## Carry the theme into preferences
55
+
56
+ ![The v3 preferences dialog with optional category toggles and a green Save Settings action](../assets/v3/preferences.png)
57
+
58
+ Keep a preferences link after the banner closes. Test a reject action, reopen
59
+ the dialog, change one category and save. A branded prompt is only part of the
60
+ consent flow.
61
+
62
+ ## Check narrow screens
63
+
64
+ ![The branded v3 floating card at a 375-pixel viewport, with Accept and Reject sharing a row and Customize below](../assets/v3/mobile-card.png)
65
+
66
+ This example fits a 375-pixel viewport without horizontal overflow. Test your
67
+ own longest translations and font settings before adopting the same sizing.
68
+
69
+ ## Run the examples
70
+
71
+ The source repository contains resettable Storybook examples under
72
+ `Docs / Customization`: Brand Card, Brand Bar and Choice Wall. Each demo uses
73
+ in-memory consent and no analytics; Reset example returns it to a fresh choice.
74
+ The screenshots above come from these v3 examples.
75
+
76
+ The stories are suitable for isolated iframe previews on a version-matched
77
+ Storybook deployment. Keep source code and the explanation on this page when
78
+ embedding them, so the recipe remains usable in Markdown and offline package
79
+ docs. A live preview must use the same v3 revision as the documentation.
@@ -0,0 +1,55 @@
1
+ ---
2
+ title: Style component slots
3
+ description: Target a specific c15t component part without replacing its markup or behavior.
4
+ group: customization
5
+ ---
6
+
7
+ ## Use slots for local changes
8
+
9
+ In React and Next.js, put per-part attributes in `options.components`. This
10
+ fragment belongs in an existing provider's options:
11
+
12
+ ```tsx
13
+ components: {
14
+ banner: {
15
+ card: { className: 'rounded-none shadow-none' },
16
+ title: { className: 'font-semibold' },
17
+ footer: { className: 'border-t' },
18
+ },
19
+ }
20
+ ```
21
+
22
+ The class names above assume Tailwind. A slot can also receive `style` and other
23
+ supported element attributes. Keep shared colors and radius scales in tokens;
24
+ use slots when only one component part should change.
25
+
26
+ ## Read attributes on the right element
27
+
28
+ The banner root carries `data-prompt`, `data-model`, `data-variant`,
29
+ `data-position` and `data-blocking`. Its child card does not inherit those HTML
30
+ attributes. In Tailwind, give the root `className: 'group'` and use
31
+ `group-data-[variant=bar]:...` on a child slot.
32
+
33
+ | React banner slot | Use |
34
+ | ---------------------------------- | ------------------------------------- |
35
+ | `root` | Position wrapper and state attributes |
36
+ | `cardShell` | Card sizing and branding container |
37
+ | `card` | Visible card |
38
+ | `header`, `title`, `description` | Heading and explanatory copy |
39
+ | `footer`, `actions`, `actionGroup` | Action layout |
40
+ | `rights`, `rightLink` | Preferences access controls |
41
+ | `overlay` | Backdrop for blocking presentation |
42
+
43
+ Buttons expose `data-action` for action-specific CSS. Test notices as well as
44
+ choice prompts; a notice uses acknowledgement rather than accept/reject.
45
+
46
+ ## When to remove styles
47
+
48
+ `noStyle` removes the built-in component styling. It does not supply replacement
49
+ layout, spacing, focus indicators or responsive behavior. Use it when you intend
50
+ to own all of that work, not as the first response to a token that appears to do
51
+ nothing.
52
+
53
+ If the markup itself must change, use the adapter's compound components or
54
+ headless API. The slot objects above are the React contract; check Vue and Svelte
55
+ slot types before reusing them.
@@ -0,0 +1,76 @@
1
+ ---
2
+ title: Theme tokens and CSS
3
+ description: Style c15t with semantic tokens and use the stylesheet that matches
4
+ your CSS tooling.
5
+ group: customization
6
+ ---
7
+
8
+ ## Load the stock stylesheet once
9
+
10
+ React, Next.js and Svelte provide `styles.css`. Import the adapter's stylesheet
11
+ at the app's global entry point. Vue includes styles in its components; Astro
12
+ adds styles through its integration.
13
+
14
+ ```tsx
15
+ import 'c15t/react/styles.css';
16
+ ```
17
+
18
+ The standard stylesheet places rules in `@layer components`. For Tailwind 3,
19
+ use the `styles.tw3.css` entry instead of the standard stylesheet, between the
20
+ components and utilities directives in your Tailwind entry:
21
+
22
+ ```css
23
+ @tailwind base;
24
+ @tailwind components;
25
+ @import 'c15t/react/styles.tw3.css';
26
+ @tailwind utilities;
27
+ ```
28
+
29
+ Do not load both c15t stylesheet variants. For Tailwind 4 or unlayered CSS,
30
+ inspect layer order before reaching for `!important`.
31
+
32
+ ## Set semantic values together
33
+
34
+ This React theme changes the brand color and large corner radius. Include
35
+ hover and foreground colors when overriding raw variables so the button remains
36
+ readable in each state.
37
+
38
+ ```ts
39
+ import { defineTheme } from '@c15t/ui/theme';
40
+
41
+ export const theme = defineTheme({
42
+ colors: { primary: '#2f6f4e' },
43
+ radius: { lg: '4px' },
44
+ consentActions: {
45
+ primary: { variant: 'primary', mode: 'filled' },
46
+ dismiss: { variant: 'neutral', mode: 'stroke' },
47
+ },
48
+ });
49
+ ```
50
+
51
+ Install `@c15t/ui` if importing its theme helper directly. Pass `theme` in your
52
+ provider options. `consentActions` selects styling by action role. A per-action
53
+ entry overrides `primary`, which overrides `default`.
54
+
55
+ ## Target a prompt with CSS
56
+
57
+ ```css
58
+ [data-prompt][data-model='opt-in'] {
59
+ --c15t-primary: #2f6f4e;
60
+ --c15t-primary-hover: #24563c;
61
+ --c15t-text-on-primary: #fff;
62
+ }
63
+ ```
64
+
65
+ Use attributes exposed by the rendered component, not guessed class names.
66
+ Test the prompt and the preferences dialog separately because tokens scoped to
67
+ one prompt do not automatically reach a portaled dialog.
68
+
69
+ | Size variable | Default | Target |
70
+ | ----------------------------------- | ------- | ------------- |
71
+ | `--consent-banner-max-width` | `440px` | Floating card |
72
+ | `--consent-banner-widget-max-width` | `20rem` | Widget |
73
+ | `--consent-banner-wall-max-width` | `30rem` | Choice wall |
74
+
75
+ Test long translations and small screens after changing width or typography.
76
+ A compact banner must still fit the required actions.
@@ -0,0 +1,49 @@
1
+ ---
2
+ title: Copy and translations
3
+ description: Change consent wording through i18n and test the complete prompt
4
+ and preferences flow.
5
+ group: customization
6
+ ---
7
+
8
+ ## Configure shared messages
9
+
10
+ Use provider `i18n` for wording that should stay consistent across components.
11
+ For React, this fragment belongs in `ConsentProvider` options:
12
+
13
+ ```tsx
14
+ i18n: {
15
+ messages: {
16
+ en: {
17
+ common: {
18
+ acceptAll: 'Accept all',
19
+ rejectAll: 'Reject optional',
20
+ customize: 'Choose cookies',
21
+ acknowledge: 'Got it',
22
+ },
23
+ },
24
+ },
25
+ }
26
+ ```
27
+
28
+ Supply the same message keys in each supported locale. A one-off component prop
29
+ such as `dismissButtonText` is useful for one banner; use translations for a
30
+ site-wide change. Astro's serializable integration options and Vue's module
31
+ configuration have their own types, so verify those shapes before copying a
32
+ React object.
33
+
34
+ ## Write labels that describe the action
35
+
36
+ Accept and Reject record a choice. Customize opens preferences. Acknowledge
37
+ dismisses a notice and does not record a grant. Do not label a notice dismissal
38
+ "Accept all" or make a preferences link sound like it submits an opt-out.
39
+
40
+ The notice acknowledgement uses `common.acknowledge`, with `common.dismiss` as
41
+ a fallback for older translation bundles. Keep the displayed label and the
42
+ command's effect aligned.
43
+
44
+ ## Test more than English
45
+
46
+ Try the longest labels you support at a narrow width, with browser zoom and
47
+ right-to-left text where relevant. Check banner actions, category descriptions,
48
+ legal links and the preferences save action. Translate explanations as well as
49
+ buttons so a visitor can make an informed choice.