@c15t/react 2.2.0 → 3.0.0-alpha.0

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 (704) hide show
  1. package/AGENTS.md +88 -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 +133 -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 +173 -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 +144 -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 +88 -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 +41 -249
  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 +35 -535
  319. package/docs/frameworks/react/styling/overview.md +160 -255
  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/clearbit.md +247 -86
  331. package/docs/integrations/cloudflare-web-analytics.md +250 -84
  332. package/docs/integrations/crisp.md +251 -97
  333. package/docs/integrations/databuddy.md +259 -153
  334. package/docs/integrations/fathom-analytics.md +239 -96
  335. package/docs/integrations/google-maps.md +328 -207
  336. package/docs/integrations/google-tag-manager.md +248 -96
  337. package/docs/integrations/google-tag.md +261 -90
  338. package/docs/integrations/heap.md +222 -149
  339. package/docs/integrations/hightouch.md +225 -131
  340. package/docs/integrations/hotjar.md +239 -90
  341. package/docs/integrations/intercom.md +239 -98
  342. package/docs/integrations/linkedin-insights.md +243 -113
  343. package/docs/integrations/logrocket.md +241 -123
  344. package/docs/integrations/matomo-analytics.md +256 -111
  345. package/docs/integrations/meta-pixel.md +197 -324
  346. package/docs/integrations/microsoft-clarity.md +233 -114
  347. package/docs/integrations/microsoft-uet.md +245 -110
  348. package/docs/integrations/mixpanel-analytics.md +252 -87
  349. package/docs/integrations/openai-pixel.md +441 -0
  350. package/docs/integrations/overview.md +95 -133
  351. package/docs/integrations/pirsch.md +249 -96
  352. package/docs/integrations/plausible-analytics.md +241 -100
  353. package/docs/integrations/posthog.md +353 -214
  354. package/docs/integrations/promptwatch.md +251 -81
  355. package/docs/integrations/reddit-pixel.md +226 -173
  356. package/docs/integrations/rudderstack.md +244 -187
  357. package/docs/integrations/rybbit-analytics.md +244 -91
  358. package/docs/integrations/segment.md +238 -92
  359. package/docs/integrations/snapchat-pixel.md +240 -110
  360. package/docs/integrations/tiktok-pixel.md +249 -81
  361. package/docs/integrations/umami-analytics.md +242 -95
  362. package/docs/integrations/vercel-analytics.md +242 -90
  363. package/docs/integrations/x-pixel.md +238 -104
  364. package/docs/integrations/youtube.md +354 -142
  365. package/docs/upgrade-v3.md +334 -0
  366. package/iab/styles.css +1 -1
  367. package/iab/styles.tw3.css +1 -1
  368. package/package.json +187 -102
  369. package/readme.json +1 -1
  370. package/src/iab/styles.css +1 -1
  371. package/src/iab/styles.tw3.css +1 -1
  372. package/src/styles.css +1 -1
  373. package/src/styles.tw3.css +1 -1
  374. package/styles.css +1 -1
  375. package/styles.tw3.css +1 -1
  376. package/client/components/consent-banner.js +0 -4
  377. package/client/components/consent-dialog-link.js +0 -3
  378. package/client/components/consent-dialog-trigger.js +0 -3
  379. package/client/components/consent-dialog.js +0 -4
  380. package/client/components/consent-widget.js +0 -4
  381. package/client/components/frame.js +0 -3
  382. package/client/components/integrations.js +0 -3
  383. package/dist/components/consent-banner/atoms/overlay.cjs +0 -1
  384. package/dist/components/consent-banner/atoms/overlay.js +0 -1
  385. package/dist/components/consent-banner/atoms/root.cjs +0 -1
  386. package/dist/components/consent-banner/atoms/root.js +0 -1
  387. package/dist/components/consent-banner/components.cjs +0 -1
  388. package/dist/components/consent-banner/components.js +0 -1
  389. package/dist/components/consent-banner/consent-banner.cjs +0 -1
  390. package/dist/components/consent-banner/consent-banner.js +0 -1
  391. package/dist/components/consent-banner/error-boundary.cjs +0 -1
  392. package/dist/components/consent-banner/error-boundary.js +0 -1
  393. package/dist/components/consent-banner/index.cjs +0 -1
  394. package/dist/components/consent-banner/index.js +0 -1
  395. package/dist/components/consent-banner/policy-actions.cjs +0 -1
  396. package/dist/components/consent-banner/policy-actions.js +0 -1
  397. package/dist/components/consent-dialog/atoms/card.cjs +0 -1
  398. package/dist/components/consent-dialog/atoms/card.js +0 -1
  399. package/dist/components/consent-dialog/atoms/overlay.cjs +0 -1
  400. package/dist/components/consent-dialog/atoms/overlay.js +0 -1
  401. package/dist/components/consent-dialog/atoms/root.cjs +0 -1
  402. package/dist/components/consent-dialog/atoms/root.js +0 -1
  403. package/dist/components/consent-dialog/consent-dialog.cjs +0 -1
  404. package/dist/components/consent-dialog/consent-dialog.js +0 -1
  405. package/dist/components/consent-dialog/index.cjs +0 -1
  406. package/dist/components/consent-dialog/index.js +0 -1
  407. package/dist/components/consent-dialog-link/index.cjs +0 -1
  408. package/dist/components/consent-dialog-trigger/atoms/button.cjs +0 -1
  409. package/dist/components/consent-dialog-trigger/atoms/button.js +0 -1
  410. package/dist/components/consent-dialog-trigger/atoms/icon.cjs +0 -1
  411. package/dist/components/consent-dialog-trigger/atoms/icon.js +0 -1
  412. package/dist/components/consent-dialog-trigger/atoms/root.cjs +0 -1
  413. package/dist/components/consent-dialog-trigger/atoms/root.js +0 -1
  414. package/dist/components/consent-dialog-trigger/atoms/text.cjs +0 -1
  415. package/dist/components/consent-dialog-trigger/atoms/text.js +0 -1
  416. package/dist/components/consent-dialog-trigger/atoms/toolbar.cjs +0 -1
  417. package/dist/components/consent-dialog-trigger/atoms/toolbar.js +0 -1
  418. package/dist/components/consent-dialog-trigger/consent-dialog-trigger-toolbar.cjs +0 -1
  419. package/dist/components/consent-dialog-trigger/consent-dialog-trigger-toolbar.js +0 -1
  420. package/dist/components/consent-dialog-trigger/consent-dialog-trigger.cjs +0 -1
  421. package/dist/components/consent-dialog-trigger/consent-dialog-trigger.js +0 -1
  422. package/dist/components/consent-dialog-trigger/index.cjs +0 -1
  423. package/dist/components/consent-dialog-trigger/index.js +0 -1
  424. package/dist/components/consent-dialog-trigger/types.cjs +0 -1
  425. package/dist/components/consent-dialog-trigger/use-draggable.cjs +0 -1
  426. package/dist/components/consent-dialog-trigger/use-draggable.js +0 -1
  427. package/dist/components/consent-preferences-link/consent-preferences-link.cjs +0 -1
  428. package/dist/components/consent-preferences-link/index.cjs +0 -1
  429. package/dist/components/consent-widget/atoms/accordion.cjs +0 -1
  430. package/dist/components/consent-widget/atoms/accordion.js +0 -1
  431. package/dist/components/consent-widget/atoms/button.cjs +0 -1
  432. package/dist/components/consent-widget/atoms/button.js +0 -1
  433. package/dist/components/consent-widget/atoms/footer.cjs +0 -1
  434. package/dist/components/consent-widget/atoms/footer.js +0 -1
  435. package/dist/components/consent-widget/atoms/root.cjs +0 -1
  436. package/dist/components/consent-widget/atoms/root.js +0 -1
  437. package/dist/components/consent-widget/consent-widget.cjs +0 -1
  438. package/dist/components/consent-widget/consent-widget.js +0 -1
  439. package/dist/components/consent-widget/index.cjs +0 -1
  440. package/dist/components/consent-widget/index.js +0 -1
  441. package/dist/components/consent-widget/policy-actions.cjs +0 -1
  442. package/dist/components/consent-widget/policy-actions.js +0 -1
  443. package/dist/components/consent-widget/types.cjs +0 -1
  444. package/dist/components/frame/atoms.cjs +0 -1
  445. package/dist/components/frame/frame.cjs +0 -1
  446. package/dist/components/frame/index.cjs +0 -1
  447. package/dist/components/frame/types.cjs +0 -1
  448. package/dist/components/iab-consent-banner/atoms/button-group.cjs +0 -1
  449. package/dist/components/iab-consent-banner/atoms/button-group.js +0 -1
  450. package/dist/components/iab-consent-banner/atoms/card.cjs +0 -1
  451. package/dist/components/iab-consent-banner/atoms/card.js +0 -1
  452. package/dist/components/iab-consent-banner/atoms/description.cjs +0 -1
  453. package/dist/components/iab-consent-banner/atoms/description.js +0 -1
  454. package/dist/components/iab-consent-banner/atoms/footer.cjs +0 -1
  455. package/dist/components/iab-consent-banner/atoms/footer.js +0 -1
  456. package/dist/components/iab-consent-banner/atoms/header.cjs +0 -1
  457. package/dist/components/iab-consent-banner/atoms/header.js +0 -1
  458. package/dist/components/iab-consent-banner/atoms/overlay.cjs +0 -1
  459. package/dist/components/iab-consent-banner/atoms/overlay.js +0 -1
  460. package/dist/components/iab-consent-banner/atoms/root.cjs +0 -1
  461. package/dist/components/iab-consent-banner/atoms/root.js +0 -1
  462. package/dist/components/iab-consent-banner/atoms/title.cjs +0 -1
  463. package/dist/components/iab-consent-banner/atoms/title.js +0 -1
  464. package/dist/components/iab-consent-banner/iab-consent-banner.cjs +0 -1
  465. package/dist/components/iab-consent-banner/iab-consent-banner.js +0 -1
  466. package/dist/components/iab-consent-banner/index.cjs +0 -1
  467. package/dist/components/iab-consent-banner/index.js +0 -1
  468. package/dist/components/iab-consent-dialog/atoms/card.cjs +0 -1
  469. package/dist/components/iab-consent-dialog/atoms/card.js +0 -1
  470. package/dist/components/iab-consent-dialog/atoms/content.cjs +0 -1
  471. package/dist/components/iab-consent-dialog/atoms/content.js +0 -1
  472. package/dist/components/iab-consent-dialog/atoms/footer.cjs +0 -1
  473. package/dist/components/iab-consent-dialog/atoms/footer.js +0 -1
  474. package/dist/components/iab-consent-dialog/atoms/header.cjs +0 -1
  475. package/dist/components/iab-consent-dialog/atoms/header.js +0 -1
  476. package/dist/components/iab-consent-dialog/atoms/overlay.cjs +0 -1
  477. package/dist/components/iab-consent-dialog/atoms/overlay.js +0 -1
  478. package/dist/components/iab-consent-dialog/atoms/purpose-item.cjs +0 -1
  479. package/dist/components/iab-consent-dialog/atoms/purpose-item.js +0 -1
  480. package/dist/components/iab-consent-dialog/atoms/root.cjs +0 -1
  481. package/dist/components/iab-consent-dialog/atoms/root.js +0 -1
  482. package/dist/components/iab-consent-dialog/atoms/stack-item.cjs +0 -1
  483. package/dist/components/iab-consent-dialog/atoms/stack-item.js +0 -1
  484. package/dist/components/iab-consent-dialog/atoms/tabs.cjs +0 -1
  485. package/dist/components/iab-consent-dialog/atoms/tabs.js +0 -1
  486. package/dist/components/iab-consent-dialog/atoms/vendor-list.cjs +0 -1
  487. package/dist/components/iab-consent-dialog/atoms/vendor-list.js +0 -1
  488. package/dist/components/iab-consent-dialog/hooks/use-gvl-data.cjs +0 -1
  489. package/dist/components/iab-consent-dialog/hooks/use-gvl-data.js +0 -1
  490. package/dist/components/iab-consent-dialog/iab-consent-dialog.cjs +0 -1
  491. package/dist/components/iab-consent-dialog/iab-consent-dialog.js +0 -1
  492. package/dist/components/iab-consent-dialog/index.cjs +0 -1
  493. package/dist/components/iab-consent-dialog/index.js +0 -1
  494. package/dist/components/iab-consent-dialog/types.cjs +0 -1
  495. package/dist/components/iab-consent-dialog/use-iab-translations.cjs +0 -1
  496. package/dist/components/iab-consent-dialog/use-iab-translations.js +0 -1
  497. package/dist/components/integrations/google-map.cjs +0 -1
  498. package/dist/components/integrations/google-map.js +0 -1
  499. package/dist/components/integrations/index.cjs +0 -1
  500. package/dist/components/integrations/index.js +0 -1
  501. package/dist/components/integrations/shared.cjs +0 -1
  502. package/dist/components/integrations/shared.js +0 -1
  503. package/dist/components/integrations/youtube-embed.cjs +0 -1
  504. package/dist/components/integrations/youtube-embed.js +0 -1
  505. package/dist/components/shared/libs/polymorphic.cjs +0 -1
  506. package/dist/components/shared/libs/recursive-clone-children.cjs +0 -1
  507. package/dist/components/shared/libs/slot.cjs +0 -1
  508. package/dist/components/shared/libs/use-controllable-state.cjs +0 -1
  509. package/dist/components/shared/policy-actions.cjs +0 -1
  510. package/dist/components/shared/primitives/box.cjs +0 -1
  511. package/dist/components/shared/primitives/button.cjs +0 -1
  512. package/dist/components/shared/primitives/button.types.cjs +0 -1
  513. package/dist/components/shared/primitives/legal-links/index.cjs +0 -1
  514. package/dist/components/shared/ui/accordion/accordion.cjs +0 -1
  515. package/dist/components/shared/ui/accordion/accordion.types.cjs +0 -1
  516. package/dist/components/shared/ui/accordion/index.cjs +0 -1
  517. package/dist/components/shared/ui/animated-collapse/animated-collapse.cjs +0 -1
  518. package/dist/components/shared/ui/animated-collapse/index.cjs +0 -1
  519. package/dist/components/shared/ui/branding.cjs +0 -1
  520. package/dist/components/shared/ui/button/button.cjs +0 -1
  521. package/dist/components/shared/ui/button/button.types.cjs +0 -1
  522. package/dist/components/shared/ui/button/index.cjs +0 -1
  523. package/dist/components/shared/ui/collapsible/collapsible.cjs +0 -1
  524. package/dist/components/shared/ui/collapsible/index.cjs +0 -1
  525. package/dist/components/shared/ui/dialog/dialog.cjs +0 -1
  526. package/dist/components/shared/ui/dialog/index.cjs +0 -1
  527. package/dist/components/shared/ui/icon.cjs +0 -1
  528. package/dist/components/shared/ui/logo.cjs +0 -1
  529. package/dist/components/shared/ui/preference-item/index.cjs +0 -1
  530. package/dist/components/shared/ui/preference-item/preference-item.cjs +0 -1
  531. package/dist/components/shared/ui/switch/index.cjs +0 -1
  532. package/dist/components/shared/ui/switch/switch.cjs +0 -1
  533. package/dist/components/shared/ui/switch/switch.types.cjs +0 -1
  534. package/dist/components/shared/ui/tabs/index.cjs +0 -1
  535. package/dist/components/shared/ui/tabs/tabs.cjs +0 -1
  536. package/dist/context/consent-manager-context.cjs +0 -1
  537. package/dist/context/consent-manager-context.js +0 -1
  538. package/dist/context/consent-tracking-context.cjs +0 -1
  539. package/dist/context/theme-context.cjs +0 -1
  540. package/dist/headless.cjs +0 -1
  541. package/dist/hooks/index.cjs +0 -1
  542. package/dist/hooks/index.js +0 -1
  543. package/dist/hooks/use-color-scheme.cjs +0 -1
  544. package/dist/hooks/use-component-config.cjs +0 -1
  545. package/dist/hooks/use-consent-dialog-trigger.cjs +0 -1
  546. package/dist/hooks/use-consent-dialog-trigger.js +0 -1
  547. package/dist/hooks/use-consent-manager.cjs +0 -1
  548. package/dist/hooks/use-consent-manager.js +0 -1
  549. package/dist/hooks/use-consent-script.cjs +0 -1
  550. package/dist/hooks/use-consent-script.js +0 -1
  551. package/dist/hooks/use-focus-trap.cjs +0 -1
  552. package/dist/hooks/use-headless-consent-ui.cjs +0 -1
  553. package/dist/hooks/use-headless-consent-ui.js +0 -1
  554. package/dist/hooks/use-headless-iab-consent-ui.cjs +0 -1
  555. package/dist/hooks/use-reduced-motion.cjs +0 -1
  556. package/dist/hooks/use-scroll-lock.cjs +0 -1
  557. package/dist/hooks/use-ssr-status.cjs +0 -1
  558. package/dist/hooks/use-ssr-status.js +0 -1
  559. package/dist/hooks/use-styles.cjs +0 -1
  560. package/dist/hooks/use-styles.js +0 -1
  561. package/dist/hooks/use-text-direction.cjs +0 -1
  562. package/dist/hooks/use-theme.cjs +0 -1
  563. package/dist/hooks/use-translations.cjs +0 -1
  564. package/dist/hooks/use-translations.js +0 -1
  565. package/dist/iab.cjs +0 -1
  566. package/dist/index.cjs +0 -1
  567. package/dist/primitives/accordion.cjs +0 -1
  568. package/dist/primitives/button.cjs +0 -1
  569. package/dist/primitives/collapsible.cjs +0 -1
  570. package/dist/primitives/dialog.cjs +0 -1
  571. package/dist/primitives/preference-item.cjs +0 -1
  572. package/dist/primitives/switch.cjs +0 -1
  573. package/dist/primitives/tabs.cjs +0 -1
  574. package/dist/primitives.cjs +0 -1
  575. package/dist/providers/consent-manager-provider.cjs +0 -1
  576. package/dist/providers/consent-manager-provider.js +0 -1
  577. package/dist/server/fetch-ssr-data.cjs +0 -1
  578. package/dist/server/headers.cjs +0 -1
  579. package/dist/server/index.cjs +0 -1
  580. package/dist/server/init-cache-key.cjs +0 -1
  581. package/dist/server/normalize-url.cjs +0 -1
  582. package/dist/server/types.cjs +0 -1
  583. package/dist/types/consent-manager.cjs +0 -1
  584. package/dist/types/theme/index.cjs +0 -1
  585. package/dist/types/theme/style-keys.cjs +0 -1
  586. package/dist/types/theme/style-types.cjs +0 -1
  587. package/dist/utils/cn.cjs +0 -1
  588. package/dist/utils/merge-styles.cjs +0 -1
  589. package/dist/utils/test-helpers.cjs +0 -1
  590. package/dist/utils/test-helpers.js +0 -1
  591. package/dist/utils/theme-utils.cjs +0 -1
  592. package/dist/version.cjs +0 -1
  593. package/dist-types/components/consent-banner/atoms/root.d.ts +0 -126
  594. package/dist-types/components/consent-banner/policy-actions.d.ts +0 -11
  595. package/dist-types/components/consent-widget/policy-actions.d.ts +0 -11
  596. package/dist-types/components/iab-consent-dialog/hooks/use-gvl-data.d.ts +0 -27
  597. package/dist-types/components/iab-consent-dialog/types.d.ts +0 -72
  598. package/dist-types/components/integrations/google-map.d.ts +0 -82
  599. package/dist-types/components/integrations/index.d.ts +0 -2
  600. package/dist-types/components/integrations/shared.d.ts +0 -12
  601. package/dist-types/components/integrations/youtube-embed.d.ts +0 -95
  602. package/dist-types/context/consent-manager-context.d.ts +0 -31
  603. package/dist-types/hooks/index.d.ts +0 -12
  604. package/dist-types/hooks/use-consent-dialog-trigger.d.ts +0 -10
  605. package/dist-types/hooks/use-consent-manager.d.ts +0 -27
  606. package/dist-types/hooks/use-consent-script.d.ts +0 -80
  607. package/dist-types/hooks/use-headless-consent-ui.d.ts +0 -46
  608. package/dist-types/hooks/use-ssr-status.d.ts +0 -57
  609. package/dist-types/hooks/use-styles.d.ts +0 -21
  610. package/dist-types/hooks/use-translations.d.ts +0 -28
  611. package/dist-types/providers/consent-manager-provider.d.ts +0 -40
  612. package/dist-types/types/consent-manager.d.ts +0 -39
  613. package/dist-types/types/theme/style-keys.d.ts +0 -1
  614. package/dist-types/utils/test-helpers.d.ts +0 -31
  615. package/docs/frameworks/react/building-headless-components.md +0 -370
  616. package/docs/frameworks/react/callbacks.md +0 -186
  617. package/docs/frameworks/react/concepts/client-modes.md +0 -177
  618. package/docs/frameworks/react/concepts/consent-models.md +0 -113
  619. package/docs/frameworks/react/concepts/cookie-management.md +0 -122
  620. package/docs/frameworks/react/concepts/glossary.md +0 -24
  621. package/docs/frameworks/react/concepts/initialization-flow.md +0 -149
  622. package/docs/frameworks/react/concepts/policy-packs.md +0 -228
  623. package/docs/frameworks/react/hooks/use-color-scheme.md +0 -41
  624. package/docs/frameworks/react/hooks/use-consent-manager/checking-consent.md +0 -96
  625. package/docs/frameworks/react/hooks/use-consent-manager/location-info.md +0 -97
  626. package/docs/frameworks/react/hooks/use-consent-manager/setting-consent.md +0 -94
  627. package/docs/frameworks/react/hooks/use-draggable.md +0 -59
  628. package/docs/frameworks/react/hooks/use-focus-trap.md +0 -42
  629. package/docs/frameworks/react/hooks/use-reduced-motion.md +0 -37
  630. package/docs/frameworks/react/hooks/use-ssr-status.md +0 -32
  631. package/docs/frameworks/react/hooks/use-text-direction.md +0 -50
  632. package/docs/frameworks/react/hooks/use-translations.md +0 -55
  633. package/docs/frameworks/react/iab/consent-banner.md +0 -91
  634. package/docs/frameworks/react/iab/consent-dialog.md +0 -129
  635. package/docs/frameworks/react/iab/use-gvl-data.md +0 -21
  636. package/docs/frameworks/react/iframe-blocking.md +0 -106
  637. package/docs/frameworks/react/internationalization.md +0 -207
  638. package/docs/frameworks/react/network-blocker.md +0 -140
  639. package/docs/frameworks/react/optimization.md +0 -148
  640. package/docs/frameworks/react/policy-packs.md +0 -242
  641. package/docs/frameworks/react/server-side.md +0 -158
  642. package/docs/frameworks/react/styling/classnames.md +0 -94
  643. package/docs/frameworks/react/styling/color-scheme.md +0 -84
  644. package/docs/frameworks/react/styling/css-variables.md +0 -53
  645. package/docs/frameworks/react/styling/slots.md +0 -94
  646. package/docs/frameworks/react/styling/tailwind.md +0 -119
  647. package/docs/frameworks/react/styling/tokens.md +0 -156
  648. package/docs/shared/concepts/client-modes.md +0 -103
  649. package/docs/shared/concepts/consent-categories.md +0 -41
  650. package/docs/shared/concepts/consent-models.md +0 -72
  651. package/docs/shared/concepts/cookie-management.md +0 -88
  652. package/docs/shared/concepts/glossary.md +0 -24
  653. package/docs/shared/concepts/initialization-flow.md +0 -105
  654. package/docs/shared/concepts/policy-packs.md +0 -225
  655. package/docs/shared/react/components/consent-banner.md +0 -242
  656. package/docs/shared/react/components/consent-dialog-link.md +0 -45
  657. package/docs/shared/react/components/consent-dialog-trigger.md +0 -185
  658. package/docs/shared/react/components/consent-dialog.md +0 -119
  659. package/docs/shared/react/components/consent-manager-provider.md +0 -225
  660. package/docs/shared/react/components/consent-widget.md +0 -121
  661. package/docs/shared/react/components/dev-tools.md +0 -81
  662. package/docs/shared/react/components/frame.md +0 -52
  663. package/docs/shared/react/guides/building-headless-components.md +0 -110
  664. package/docs/shared/react/guides/callbacks.md +0 -89
  665. package/docs/shared/react/guides/headless.md +0 -31
  666. package/docs/shared/react/guides/iframe-blocking.md +0 -65
  667. package/docs/shared/react/guides/internationalization.md +0 -123
  668. package/docs/shared/react/guides/network-blocker.md +0 -72
  669. package/docs/shared/react/guides/optimization.md +0 -44
  670. package/docs/shared/react/guides/policy-packs.md +0 -173
  671. package/docs/shared/react/guides/script-loader.md +0 -311
  672. package/docs/shared/react/hooks/use-color-scheme.md +0 -31
  673. package/docs/shared/react/hooks/use-consent-manager/checking-consent.md +0 -95
  674. package/docs/shared/react/hooks/use-consent-manager/location-info.md +0 -96
  675. package/docs/shared/react/hooks/use-consent-manager/overview.md +0 -74
  676. package/docs/shared/react/hooks/use-consent-manager/setting-consent.md +0 -93
  677. package/docs/shared/react/hooks/use-draggable.md +0 -30
  678. package/docs/shared/react/hooks/use-focus-trap.md +0 -20
  679. package/docs/shared/react/hooks/use-reduced-motion.md +0 -33
  680. package/docs/shared/react/hooks/use-ssr-status.md +0 -16
  681. package/docs/shared/react/hooks/use-text-direction.md +0 -38
  682. package/docs/shared/react/hooks/use-translations.md +0 -15
  683. package/docs/shared/react/iab/consent-banner.md +0 -60
  684. package/docs/shared/react/iab/consent-dialog.md +0 -76
  685. package/docs/shared/react/iab/overview.md +0 -80
  686. package/docs/shared/react/iab/use-gvl-data.md +0 -21
  687. package/docs/shared/react/styling/classnames.md +0 -93
  688. package/docs/shared/react/styling/color-scheme.md +0 -35
  689. package/docs/shared/react/styling/css-variables.md +0 -53
  690. package/docs/shared/react/styling/overview.md +0 -261
  691. package/docs/shared/react/styling/slots.md +0 -93
  692. package/docs/shared/react/styling/stylesheet-entrypoint.md +0 -8
  693. package/docs/shared/react/styling/tailwind.md +0 -88
  694. package/docs/shared/react/styling/tokens.md +0 -155
  695. package/docs/shared/troubleshooting.md +0 -82
  696. /package/dist/components/{consent-dialog-trigger → iab-panel}/types.js +0 -0
  697. /package/dist/components/{consent-widget → panel-trigger}/types.js +0 -0
  698. /package/dist/components/{iab-consent-dialog → preferences}/types.js +0 -0
  699. /package/dist/types/{consent-manager.js → manager.js} +0 -0
  700. /package/dist/types/{theme/style-keys.js → slots.js} +0 -0
  701. /package/dist-types/components/{consent-dialog-link → panel-link}/index.d.ts +0 -0
  702. /package/dist-types/components/{consent-widget → preferences}/atoms/button.d.ts +0 -0
  703. /package/dist-types/components/{consent-widget/consent-widget.d.ts → preferences/preferences.d.ts} +0 -0
  704. /package/dist-types/components/{consent-widget → preferences}/types.d.ts +0 -0
@@ -0,0 +1,17 @@
1
+ import type { AllConsentNames, ConsentKernel, ConsentPresentation } from '@c15t/core';
2
+ /**
3
+ * React context carrying the kernel instance.
4
+ *
5
+ * v3 Provider puts a kernel here; hooks pull it out and subscribe via
6
+ * useSyncExternalStore. No state snapshot lives in context — only the
7
+ * kernel reference. Consumers subscribe to the kernel directly at their
8
+ * render site, so each hook isolates re-renders to exactly its slice.
9
+ */
10
+ export declare const KernelContext: import("react").Context<ConsentKernel | null>;
11
+ /** Provider-owned services used by optional integrations. */
12
+ export interface ProviderServices {
13
+ clearRecords: () => void;
14
+ getPresentation: () => ConsentPresentation | undefined;
15
+ getConsentCategories: () => readonly AllConsentNames[];
16
+ }
17
+ export declare const ProviderServicesContext: import("react").Context<ProviderServices | null>;
@@ -0,0 +1,54 @@
1
+ import type { DevToolsInstance, DevToolsOptions, DevToolsPosition, DevToolsTab } from '@c15t/dev-tools';
2
+ import type { HTMLAttributes, ReactElement } from 'react';
3
+ /** Props for the kernel-bound React DevTools adapter. */
4
+ export interface ConsentDevToolsProps extends Omit<DevToolsOptions, 'container' | 'kernel'> {
5
+ /** Prevents the DevTools engine from mounting. @default false */
6
+ disabled?: boolean;
7
+ }
8
+ /** Backward-compatible props name for {@link ConsentDevTools}. */
9
+ export type C15TDevToolsProps = ConsentDevToolsProps;
10
+ /** Compatible props name for the {@link DevTools} alias. */
11
+ export type DevToolsProps = ConsentDevToolsProps;
12
+ /**
13
+ * Mounts the c15t DevTools engine for the nearest v3 consent provider.
14
+ *
15
+ * @param props - Presentation options passed to the DevTools engine.
16
+ * @returns `null`; the engine mounts its interface into `document.body`.
17
+ */
18
+ export declare const ConsentDevTools: ({ disabled, clearRecords, getPresentation, defaultOpen, defaultTab, getConsentCategories, maxEvents, position, }: ConsentDevToolsProps) => null;
19
+ /** Compatible short name for {@link ConsentDevTools}. */
20
+ export declare const DevTools: typeof ConsentDevTools;
21
+ /** Backward-compatible name for {@link ConsentDevTools}. */
22
+ export declare const C15TDevTools: typeof ConsentDevTools;
23
+ /** Props for the embedded c15t panel used by TanStack Devtools. */
24
+ export interface C15tTanStackDevtoolsPanelProps extends HTMLAttributes<HTMLDivElement>, Pick<DevToolsOptions, 'defaultTab' | 'maxEvents' | 'getConsentCategories' | 'getPresentation' | 'clearRecords'> {
25
+ /** Prevents the embedded DevTools engine from mounting. @default false */
26
+ disabled?: boolean;
27
+ }
28
+ /** Plugin configuration accepted by React TanStack Devtools. */
29
+ export interface TanStackDevtoolsPlugin {
30
+ id?: string;
31
+ name: string;
32
+ defaultOpen?: boolean;
33
+ render: ReactElement;
34
+ }
35
+ /** Options for {@link c15tDevtools}. */
36
+ export interface C15tDevtoolsPluginOptions extends C15tTanStackDevtoolsPanelProps {
37
+ /** Stable plugin identifier. @default 'c15t' */
38
+ id?: string;
39
+ /** Display name shown by TanStack Devtools. @default 'c15t' */
40
+ name?: string;
41
+ /** Whether TanStack Devtools opens this plugin initially. @default false */
42
+ defaultOpen?: boolean;
43
+ }
44
+ /** Embeds c15t DevTools inside a TanStack Devtools plugin panel. */
45
+ export declare const C15tTanStackDevtoolsPanel: import("react").ForwardRefExoticComponent<C15tTanStackDevtoolsPanelProps & import("react").RefAttributes<HTMLDivElement>>;
46
+ /**
47
+ * Create a c15t plugin configuration for React TanStack Devtools.
48
+ * @param options - Plugin identity, initial state, and embedded panel options.
49
+ * @returns Plugin configuration whose panel binds to the nearest provider.
50
+ */
51
+ export declare const c15tDevtools: (options?: C15tDevtoolsPluginOptions) => TanStackDevtoolsPlugin;
52
+ /** Backward-compatible alias for {@link c15tDevtools}. */
53
+ export declare const c15tDevtoolsPlugin: typeof c15tDevtools;
54
+ export type { DevToolsInstance, DevToolsOptions, DevToolsPosition, DevToolsTab, };
@@ -0,0 +1,31 @@
1
+ import type { AllConsentNames, ConsentState, SaveResult, SaveInput } from '@c15t/core';
2
+ import type { ReactNode } from 'react';
3
+ /** A local, unmasked selection, committed only by an explicit save. */
4
+ export interface ConsentDraftHandle {
5
+ values: Readonly<ConsentState>;
6
+ displayedCategories: readonly AllConsentNames[];
7
+ isDirty: boolean;
8
+ /** A material policy change requires reset and review before saving. */
9
+ isStale: boolean;
10
+ set: (category: AllConsentNames, value: boolean) => void;
11
+ update: (patch: Partial<ConsentState>) => void;
12
+ acceptAll: () => void;
13
+ rejectAll: () => void;
14
+ save: () => Promise<SaveResult>;
15
+ reset: () => void;
16
+ }
17
+ export interface ConsentDraftProviderProps {
18
+ children: ReactNode;
19
+ /** Defaults apply only to categories without an explicit receipt. */
20
+ initial?: Partial<ConsentState>;
21
+ }
22
+ export declare const ConsentDraftProvider: ({ children, initial, }: ConsentDraftProviderProps) => import("react").JSX.Element;
23
+ /** Internal UI save path shared by stock controls and headless actions. */
24
+ export declare const useConsentSaveAction: () => (input?: SaveInput) => Promise<SaveResult>;
25
+ /** Keep the compatibility manager selection and its save on the same draft. */
26
+ export declare const useConsentManagerDraft: () => {
27
+ draft: ConsentDraftHandle;
28
+ save: (input?: SaveInput) => Promise<SaveResult>;
29
+ };
30
+ /** Read and edit displayed choices without replacing masked effective permissions. */
31
+ export declare const useConsentDraft: () => ConsentDraftHandle;
@@ -0,0 +1,29 @@
1
+ /**
2
+ * The IAB bridge for an externally owned runtime.
3
+ *
4
+ * When a host creates the runtime itself — an Astro page, a SvelteKit
5
+ * layout — that runtime already mounted the CMP and owns its lifecycle.
6
+ * This provider republishes `runtime.iab` into React context instead of
7
+ * calling `createIAB()` a second time, which would install a second
8
+ * `__tcfapi` on the page.
9
+ *
10
+ * It deliberately imports nothing from `@c15t/iab`: the module is a peer of
11
+ * the runtime, not of the component tree, and a preference-centre chunk
12
+ * that pulled in the TCF encoder would cost every visitor bytes only an IAB
13
+ * site needs.
14
+ */
15
+ import type { ConsentRuntime } from '@c15t/core/runtime';
16
+ import type { ReactNode } from 'react';
17
+ /** Props for {@link ExternalIABProvider}. */
18
+ export interface ExternalIABProviderProps {
19
+ /** The runtime that owns the CMP. */
20
+ runtime: ConsentRuntime;
21
+ children: ReactNode;
22
+ }
23
+ /**
24
+ * Publish an externally owned runtime's CMP into React context.
25
+ *
26
+ * @param props - The owning runtime and the tree to render.
27
+ * @returns The children, wrapped in the IAB context.
28
+ */
29
+ export declare const ExternalIABProvider: ({ runtime, children, }: ExternalIABProviderProps) => import("react").JSX.Element;
@@ -0,0 +1 @@
1
+ export * from './components/frame';
@@ -1,10 +1,14 @@
1
- export { type ConsentManagerInterface, configureConsentManager, defaultTranslationConfig, detectBrowserLanguage, type EuropePolicyMode, mergeTranslationConfigs, type PolicyPackPresets, policyPackPresets, prepareTranslationConfig, } from 'c15t';
1
+ /**
2
+ * `@c15t/react/headless` — hooks for building your own consent UI on the
3
+ * kernel, without the prebuilt components or their CSS.
4
+ *
5
+ * Pair with `ConsentProvider` from `@c15t/react` (or `@c15t/react/provider`).
6
+ */
7
+ export { defaultTranslationConfig, detectBrowserLanguage, mergeTranslationConfigs, prepareTranslationConfig, } from '@c15t/core';
8
+ export { type ConsentDialogTriggerVisibility, type UseConsentDialogTriggerOptions, type UseConsentDialogTriggerResult, useConsentDialogTrigger, } from './component-hooks/use-panel-trigger';
9
+ export { useConsentManager } from './component-hooks/use-manager';
10
+ export { type HeadlessConsentBannerAction, type HeadlessConsentBannerState, type HeadlessConsentDialogAction, type HeadlessConsentDialogState, type HeadlessConsentSurface, type HeadlessConsentSurfaceAction, type HeadlessConsentSurfaceState, type HeadlessConsentWriteAction, useHeadlessConsentUI, } from './component-hooks/use-headless-consent-ui';
11
+ export { useTranslations } from './component-hooks/use-translations';
2
12
  export { useColorScheme } from './hooks/use-color-scheme';
3
- export { type ConsentDialogTriggerVisibility, type UseConsentDialogTriggerOptions, type UseConsentDialogTriggerResult, useConsentDialogTrigger, } from './hooks/use-consent-dialog-trigger';
4
- export { useConsentManager } from './hooks/use-consent-manager';
5
- export { ConsentScriptConflictError, type ConsentScriptReadyControls, type ConsentScriptStatus, type ConsentScriptUnmountBehavior, type UseConsentScriptOptions, type UseConsentScriptResult, useConsentScript, } from './hooks/use-consent-script';
6
13
  export { useFocusTrap } from './hooks/use-focus-trap';
7
- export { type HeadlessConsentBannerAction, type HeadlessConsentBannerState, type HeadlessConsentDialogAction, type HeadlessConsentDialogState, type HeadlessConsentSurface, type HeadlessConsentSurfaceAction, type HeadlessConsentSurfaceState, type HeadlessConsentWriteAction, type UseHeadlessConsentUIResult, useHeadlessConsentUI, } from './hooks/use-headless-consent-ui';
8
- export { useTranslations } from './hooks/use-translations';
9
- export { ConsentManagerProvider } from './providers/consent-manager-provider';
10
- export type { ConsentManagerOptions, ConsentManagerProviderProps, } from './types/consent-manager';
14
+ export type { ReactUIOptions } from './types/manager';
@@ -3,4 +3,4 @@ export type ColorScheme = 'light' | 'dark' | 'system' | null;
3
3
  * Manage color scheme preferences for components.
4
4
  * React wrapper for `@c15t/ui` setupColorScheme.
5
5
  */
6
- export declare function useColorScheme(colorScheme?: ColorScheme): void;
6
+ export declare const useColorScheme: (colorScheme?: ColorScheme) => void;
@@ -20,7 +20,7 @@ export type ResolvedComponentConfig = Required<ComponentConfig>;
20
20
  *
21
21
  * @remarks
22
22
  * Provides a consistent way to handle configuration props that can be set
23
- * globally via the ConsentManagerProvider or overridden locally on individual
23
+ * globally via the ConsentProvider or overridden locally on individual
24
24
  * components. Local values take precedence over global values.
25
25
  *
26
26
  * The configuration props are defined in UIOptions from @c15t/ui/theme,
@@ -51,4 +51,4 @@ export type ResolvedComponentConfig = Required<ComponentConfig>;
51
51
  *
52
52
  * @public
53
53
  */
54
- export declare function useComponentConfig(localOverrides?: ComponentConfig): ResolvedComponentConfig;
54
+ export declare const useComponentConfig: (localOverrides?: ComponentConfig) => ResolvedComponentConfig;
@@ -1,4 +1,4 @@
1
- import { type RefObject } from 'react';
1
+ import type { RefObject } from 'react';
2
2
  /**
3
3
  * Hook that manages focus trapping within a container.
4
4
  *
@@ -11,4 +11,4 @@ import { type RefObject } from 'react';
11
11
  *
12
12
  * @public
13
13
  */
14
- export declare function useFocusTrap(shouldTrap: boolean, containerRef: RefObject<HTMLElement | null> | null): void;
14
+ export declare const useFocusTrap: (shouldTrap: boolean, containerRef: RefObject<HTMLElement | null> | null) => void;
@@ -1,7 +1,6 @@
1
- import { useConsentManager } from './use-consent-manager';
2
- export type HeadlessIABPreferenceTab = 'purposes' | 'vendors';
3
- export type HeadlessIABBannerAction = 'accept' | 'reject' | 'customize';
4
- export type HeadlessIABDialogAction = 'accept' | 'reject' | 'customize';
1
+ import type { HeadlessIABBannerAction, HeadlessIABDialogAction, HeadlessIABPreferenceTab } from '@c15t/iab/headless';
2
+ import { useIABConsentManager } from './use-iab-manager';
3
+ export type { HeadlessIABBannerAction, HeadlessIABDialogAction, HeadlessIABPreferenceTab, };
5
4
  export interface HeadlessIABBannerState {
6
5
  isVisible: boolean;
7
6
  isReady: boolean;
@@ -17,9 +16,9 @@ export interface HeadlessIABDialogState {
17
16
  scrollLock?: boolean;
18
17
  }
19
18
  export interface UseHeadlessIABConsentUIResult {
20
- activeUI: ReturnType<typeof useConsentManager>['activeUI'];
21
- model: ReturnType<typeof useConsentManager>['model'];
22
- iab: ReturnType<typeof useConsentManager>['iab'];
19
+ activeUI: ReturnType<typeof useIABConsentManager>['activeUI'];
20
+ model: ReturnType<typeof useIABConsentManager>['model'];
21
+ iab: ReturnType<typeof useIABConsentManager>['iab'];
23
22
  isIABEnabled: boolean;
24
23
  banner: HeadlessIABBannerState;
25
24
  dialog: HeadlessIABDialogState;
@@ -38,4 +37,4 @@ export interface UseHeadlessIABConsentUIResult {
38
37
  performBannerAction: (action: HeadlessIABBannerAction) => Promise<void> | void;
39
38
  performDialogAction: (action: HeadlessIABDialogAction) => Promise<void> | void;
40
39
  }
41
- export declare function useHeadlessIABConsentUI(): UseHeadlessIABConsentUIResult;
40
+ export declare const useHeadlessIABConsentUI: () => UseHeadlessIABConsentUIResult;
@@ -0,0 +1,52 @@
1
+ import type { ActiveUI, ConsentPresentation, TranslationConfig } from '@c15t/core';
2
+ export declare const useIABConsentManager: (overrides?: ConsentPresentation) => {
3
+ activeUI: ActiveUI;
4
+ iab: import("../iab-context").ReactIABState | null;
5
+ model: import("@c15t/core").KernelModel | null;
6
+ policyBanner: {
7
+ allowedActions: import("@c15t/core").PresentationAction[];
8
+ requiredActions: import("@c15t/core").PresentationAction[];
9
+ equivalentActions: import("@c15t/core").PresentationAction[][];
10
+ orderedActions: import("@c15t/core").PresentationAction[];
11
+ actionGroups: import("@c15t/core").PresentationAction[][];
12
+ primaryActions: import("@c15t/core").PresentationAction[];
13
+ diagnostics: import("@c15t/core").PresentationDiagnostic[];
14
+ rights: readonly import("@c15t/schema/types").PolicyRight[];
15
+ preferenceControls: Exclude<import("@c15t/schema/types").PolicyRight, 'disclosure'>[];
16
+ direction: 'row' | 'column';
17
+ uiProfile: 'balanced' | 'compact' | 'strict';
18
+ scrollLock: boolean;
19
+ trapFocus: boolean;
20
+ shouldFillActions: boolean;
21
+ variant: import("@c15t/core").PromptVariant;
22
+ position: import("@c15t/core").PromptPosition;
23
+ positionSource: 'host' | 'default';
24
+ blocking: boolean;
25
+ isVisible: boolean;
26
+ };
27
+ policyDialog: {
28
+ allowedActions: import("@c15t/core").PresentationAction[];
29
+ requiredActions: import("@c15t/core").PresentationAction[];
30
+ equivalentActions: import("@c15t/core").PresentationAction[][];
31
+ orderedActions: import("@c15t/core").PresentationAction[];
32
+ actionGroups: import("@c15t/core").PresentationAction[][];
33
+ primaryActions: import("@c15t/core").PresentationAction[];
34
+ diagnostics: import("@c15t/core").PresentationDiagnostic[];
35
+ rights: readonly import("@c15t/schema/types").PolicyRight[];
36
+ preferenceControls: Exclude<import("@c15t/schema/types").PolicyRight, 'disclosure'>[];
37
+ direction: 'row' | 'column';
38
+ uiProfile: 'balanced' | 'compact' | 'strict';
39
+ scrollLock: boolean;
40
+ trapFocus: boolean;
41
+ shouldFillActions: boolean;
42
+ variant: import("@c15t/core").PromptVariant;
43
+ position: import("@c15t/core").PromptPosition;
44
+ positionSource: 'host' | 'default';
45
+ blocking: boolean;
46
+ isVisible: boolean;
47
+ };
48
+ setActiveUI: (ui: ActiveUI, _options?: {
49
+ force?: boolean;
50
+ }) => void;
51
+ translationConfig: TranslationConfig;
52
+ };
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Returns true after the component has hydrated on the client.
3
+ *
4
+ * @returns Whether the current render is client-hydrated.
5
+ *
6
+ * @internal
7
+ */
8
+ export declare const useIsHydrated: () => boolean;
@@ -27,4 +27,4 @@
27
27
  *
28
28
  * @public
29
29
  */
30
- export declare function useReducedMotion(): boolean;
30
+ export declare const useReducedMotion: () => boolean;
@@ -2,4 +2,4 @@
2
2
  * Hook to manage document scroll locking.
3
3
  * React wrapper for `@c15t/ui` setupScrollLock.
4
4
  */
5
- export declare function useScrollLock(shouldLock: boolean): void;
5
+ export declare const useScrollLock: (shouldLock: boolean) => void;
@@ -2,4 +2,4 @@
2
2
  * Manage text direction based on the language.
3
3
  * React wrapper for `@c15t/ui` text direction utilities.
4
4
  */
5
- export declare function useTextDirection(language?: string): "ltr" | "rtl";
5
+ export declare const useTextDirection: (language?: string) => "ltr" | "rtl";
@@ -1 +1,2 @@
1
- export declare const useTheme: () => import("../context/theme-context").ThemeContextValue;
1
+ import type { ThemeContextValue } from '../context/theme-context';
2
+ export declare const useTheme: () => ThemeContextValue;
@@ -0,0 +1,148 @@
1
+ /**
2
+ * v3 React hooks.
3
+ *
4
+ * Every selector hook uses `useSyncExternalStore` to subscribe to the
5
+ * kernel. Hydration reads the immutable server snapshot. After hydration,
6
+ * consumers read live state, including browser-only privacy signals.
7
+ *
8
+ * The selectors follow the "useSyncExternalStore with selector" pattern:
9
+ * subscribe to all kernel changes, but narrow the returned value to the
10
+ * slice we care about. React only schedules a re-render if the slice
11
+ * `Object.is`-differs. A child reading `useConsent('marketing')` does
12
+ * not re-render when `useConsent('measurement')` flips elsewhere.
13
+ *
14
+ * Action hooks return stable references (the kernel's own methods).
15
+ * Consumers do not need `useCallback`. Under React Compiler this is
16
+ * safe because actions don't produce values — they cause state changes
17
+ * observed through the selector hooks, whose subscription model handles
18
+ * invalidation correctly.
19
+ */
20
+ import type { AllConsentNames, ConsentKernel, PromptPresentation, PreferencesPresentation, ConsentSnapshot, ConsentState, KernelActiveUI, KernelBranding, KernelIABState, KernelModel, KernelOverrides, KernelTranslations, KernelUser, LocationResponse, PolicyScopeMode } from '@c15t/core';
21
+ /**
22
+ * Full snapshot accessor. Escape hatch for consumers that genuinely need
23
+ * multiple slices. Prefer narrow hooks for re-render isolation.
24
+ */
25
+ export declare const useSnapshot: () => ConsentSnapshot;
26
+ /**
27
+ * Effective permission for one category. This can be true under an opt-out
28
+ * policy without an explicit grant. Re-renders only when that permission changes.
29
+ */
30
+ export declare const useConsent: (category: AllConsentNames) => boolean;
31
+ /**
32
+ * Effective permissions for all categories. Use `useExplicitChoice` for recorded
33
+ * choices. Re-renders when permissions change.
34
+ */
35
+ export declare const useConsents: () => Readonly<ConsentState>;
36
+ /**
37
+ * Current overrides (country, region, language, GPC).
38
+ */
39
+ export declare const useOverrides: () => Readonly<KernelOverrides>;
40
+ /**
41
+ * Identified user or null.
42
+ */
43
+ export declare const useUser: () => Readonly<KernelUser> | null;
44
+ /** Geographic context reported by the backend. */
45
+ export declare const useLocation: () => Readonly<LocationResponse> | null;
46
+ /** Active translation bundle. */
47
+ export declare const useTranslations: () => Readonly<KernelTranslations> | null;
48
+ /** Active branding identifier. */
49
+ export declare const useBranding: () => KernelBranding | null;
50
+ /**
51
+ * Whether the kernel holds a resolved policy rule.
52
+ *
53
+ * `false` while resolution is unconfigured, failed, or matched nothing, and
54
+ * while a pending init has not answered yet. Without a policy there is
55
+ * nothing to consent to, so every prebuilt consent surface renders nothing;
56
+ * headless hosts should do the same.
57
+ */
58
+ export declare const useHasConsentPolicy: () => boolean;
59
+ /**
60
+ * Whether any prebuilt consent surface has something to show: a policy rule
61
+ * is resolved and it either owes a first-layer prompt or keeps a right
62
+ * reachable. A `none` rule without rights owes nothing, so every surface
63
+ * renders nothing; give it `rights: ['preferences']` to keep a settings
64
+ * route. Every other model always carries rights, so for them this equals
65
+ * {@link useHasConsentPolicy}.
66
+ */
67
+ export declare const useHasConsentUI: () => boolean;
68
+ /**
69
+ * Derived consent model (opt-in / opt-out / iab), or `null` while no policy
70
+ * rule is resolved. The kernel keeps a safe fallback rule internally; this
71
+ * hook hides it so hosts can key "no consent UI" on `null`.
72
+ */
73
+ export declare const useModel: () => KernelModel | null;
74
+ /** Which UI surface to render (none / banner / dialog). */
75
+ export declare const useActiveUI: () => KernelActiveUI;
76
+ /** Category allowlist from `policy.consent.categories`. */
77
+ export declare const usePolicyCategories: () => readonly AllConsentNames[];
78
+ /** `strict` or `permissive` — from `policy.consent.scopeMode`. */
79
+ export declare const usePolicyScopeMode: () => PolicyScopeMode;
80
+ /** Full IAB state slice (null when IAB is not enabled). */
81
+ export declare const useIABSnapshot: () => Readonly<KernelIABState> | null;
82
+ /** Is IAB active? */
83
+ export declare const useIABEnabled: () => boolean;
84
+ /** Consent for a specific IAB vendor. Accepts numeric or string IDs; IAB
85
+ * vendors are numeric but the kernel stores them as strings for
86
+ * uniformity with custom vendors. */
87
+ export declare const useVendorConsent: (vendorId: string | number) => boolean;
88
+ /** Consent for a specific IAB purpose (1–11). */
89
+ export declare const usePurposeConsent: (purposeId: number) => boolean;
90
+ /** Opt-in for a special feature (1 = geolocation, 2 = device ID). */
91
+ export declare const useSpecialFeatureOptIn: (featureId: number) => boolean;
92
+ /** Latest TCF string. `null` until the IAB module encodes one. */
93
+ export declare const useTCString: () => string | null;
94
+ /**
95
+ * Sync mutation: apply overrides (country, region, language, GPC).
96
+ */
97
+ export declare const useSetOverrides: () => (input: KernelOverrides) => void;
98
+ /**
99
+ * Sync mutation: switch active language.
100
+ */
101
+ export declare const useSetLanguage: () => (code: string) => void;
102
+ /**
103
+ * Sync mutation: set the active UI surface (banner/dialog/none).
104
+ */
105
+ export declare const useSetActiveUI: () => (ui: KernelActiveUI) => void;
106
+ /**
107
+ * Async command: persist current or given consents. Returns the kernel's
108
+ * own save() method so identity is stable across renders.
109
+ */
110
+ export declare const useSaveConsents: () => ConsentKernel['commands']['save'];
111
+ /**
112
+ * Subscribe to consent changes. The callback receives the full consent record
113
+ * whenever the kernel emits a snapshot.
114
+ */
115
+ export declare const useSubscribeToConsentChanges: () => (listener: (state: ConsentState) => void) => () => void;
116
+ /**
117
+ * Async command: identify a user.
118
+ */
119
+ export declare const useIdentify: () => ConsentKernel['commands']['identify'];
120
+ /**
121
+ * Async command: run the init transport (currently a no-op in the kernel;
122
+ * boot modules wire in SSR hydration, prefetch, banner fetch).
123
+ */
124
+ export declare const useInit: () => ConsentKernel['commands']['init'];
125
+ /** Read explicitChoice from the kernel without a competing projection. */
126
+ export declare const useExplicitChoice: () => ConsentSnapshot['explicitChoice'];
127
+ /** Read effectivePermissions from the kernel without a competing projection. */
128
+ export declare const useEffectivePermissions: () => ConsentSnapshot['effectivePermissions'];
129
+ /** Read promptRequirement from the kernel without a competing projection. */
130
+ export declare const usePromptRequirement: () => ConsentSnapshot['promptRequirement'];
131
+ /** Read noticeDismissal from the kernel without a competing projection. */
132
+ export declare const useNoticeDismissal: () => ConsentSnapshot['noticeDismissal'];
133
+ /** Read privacySignals from the kernel without a competing projection. */
134
+ export declare const usePrivacySignals: () => ConsentSnapshot['privacySignals'];
135
+ /** Read optOutDirectives from the kernel without a competing projection. */
136
+ export declare const useOptOutDirectives: () => ConsentSnapshot['optOutDirectives'];
137
+ /** Read resolution from the kernel without a competing projection. */
138
+ export declare const usePolicyResolution: () => ConsentSnapshot['resolution'];
139
+ /** Read policyRule from the kernel without a competing projection. */
140
+ export declare const usePolicyRule: () => ConsentSnapshot['policyRule'];
141
+ /** Read restrictions from the kernel without a competing projection. */
142
+ export declare const useRestrictions: () => ConsentSnapshot['restrictions'];
143
+ /** Dismiss the current local notice without recording a category choice. */
144
+ export declare const useDismissNotice: () => ConsentKernel['commands']['dismissNotice'];
145
+ /** Host first-layer presentation. */
146
+ export declare const usePromptPresentation: () => PromptPresentation;
147
+ /** Host persistent preferences presentation. */
148
+ export declare const usePreferencesPresentation: () => PreferencesPresentation;
@@ -0,0 +1,28 @@
1
+ import type { GlobalVendorList, KernelIABState, NonIABVendor } from '@c15t/core';
2
+ import type { CreateIABOptions, IABHandle } from '@c15t/iab';
3
+ import type { ReactNode } from 'react';
4
+ export interface ReactIABState extends KernelIABState {
5
+ config: {
6
+ enabled: boolean;
7
+ cmpId: number | null;
8
+ };
9
+ isLoadingGVL: boolean;
10
+ nonIABVendors: NonIABVendor[];
11
+ preferenceCenterTab: 'purposes' | 'vendors';
12
+ setPreferenceCenterTab: (tab: 'purposes' | 'vendors') => void;
13
+ setVendorConsent: (vendorId: string | number, value: boolean) => void;
14
+ setVendorLegitimateInterest: (vendorId: string | number, value: boolean) => void;
15
+ setPurposeConsent: (purposeId: number, value: boolean) => void;
16
+ setPurposeLegitimateInterest: (purposeId: number, value: boolean) => void;
17
+ setSpecialFeatureOptIn: (featureId: number, value: boolean) => void;
18
+ acceptAll: () => void;
19
+ rejectAll: () => void;
20
+ save: () => Promise<void>;
21
+ }
22
+ export interface IABProviderProps extends Omit<CreateIABOptions, 'kernel' | 'gvl'> {
23
+ children: ReactNode;
24
+ gvl?: GlobalVendorList | null;
25
+ }
26
+ export declare const IABProvider: ({ children, ...options }: IABProviderProps) => import("react").JSX.Element;
27
+ export declare const useIAB: () => ReactIABState | null;
28
+ export type { CreateIABOptions, IABHandle };
@@ -8,17 +8,23 @@
8
8
  *
9
9
  * @example
10
10
  * ```tsx
11
- * import { iab } from '@c15t/iab';
12
- * import { IABConsentBanner, IABConsentDialog } from '@c15t/react/iab';
11
+ * import { ConsentProvider, hosted } from '@c15t/react';
12
+ * import { IABProvider, IABConsentBanner, IABConsentDialog } from '@c15t/react/iab';
13
13
  *
14
- * <ConsentManagerProvider options={{ mode: 'hosted', iab: iab({ cmpId: 28 }) }}>
15
- * <IABConsentBanner />
16
- * <IABConsentDialog />
17
- * </ConsentManagerProvider>
14
+ * <ConsentProvider
15
+ * options={{ mode: hosted({ url: '/api/c15t' }) }}
16
+ * >
17
+ * <IABProvider cmpId={28}>
18
+ * <IABConsentBanner />
19
+ * <IABConsentDialog />
20
+ * </IABProvider>
21
+ * </ConsentProvider>
18
22
  * ```
19
23
  *
20
24
  * @packageDocumentation
21
25
  */
22
- export { IABConsentBanner, type IABConsentBannerProps, } from './components/iab-consent-banner';
23
- export { IABConsentDialog, type IABConsentDialogProps, } from './components/iab-consent-dialog';
26
+ export { IABConsentBanner, type IABConsentBannerProps, } from './components/iab-prompt';
27
+ export { IABConsentDialog, type IABConsentDialogProps, } from './components/iab-panel';
24
28
  export { type HeadlessIABBannerAction, type HeadlessIABBannerState, type HeadlessIABDialogAction, type HeadlessIABDialogState, type HeadlessIABPreferenceTab, type UseHeadlessIABConsentUIResult, useHeadlessIABConsentUI, } from './hooks/use-headless-iab-consent-ui';
29
+ export { IABProvider } from './iab-context';
30
+ export type { IABProviderProps } from './iab-context';
@@ -1,22 +1,61 @@
1
- export type { AllConsentNames, ConsentManagerInterface, ConsentStoreState, ConsentType, EuropePolicyMode, Overrides, PolicyPackPresets, Translations, } from 'c15t';
2
- export { configureConsentManager, defaultTranslationConfig, detectBrowserLanguage, mergeTranslationConfigs, policyPackPresets, prepareTranslationConfig, } from 'c15t';
3
- export { ConsentBanner, type ConsentBannerProps, } from './components/consent-banner';
4
- export * from './components/consent-banner/components';
5
- export { ConsentDialog, type ConsentDialogProps, } from './components/consent-dialog';
6
- export { ConsentDialogLink, type ConsentDialogLinkProps, } from './components/consent-dialog-link';
7
- export { ConsentDialogTrigger, type ConsentDialogTriggerCompound, type ConsentDialogTriggerProps, ConsentDialogTriggerToolbar, type ConsentDialogTriggerToolbarAction, type ConsentDialogTriggerToolbarPreferences, type ConsentDialogTriggerToolbarProps, TriggerButton, type TriggerButtonProps, TriggerIcon, type TriggerIconProps, type TriggerIconType, type TriggerOrientation, TriggerRoot, type TriggerRootProps, type TriggerSize, TriggerText, type TriggerTextProps, type TriggerVisibility, type UseDraggableOptions, type UseDraggableReturn, useDraggable, useTriggerContext, } from './components/consent-dialog-trigger';
8
- export { ConsentWidget, type ConsentWidgetProps, } from './components/consent-widget';
9
- export { Frame, type FrameProps } from './components/frame';
10
- export { GoogleMap, type GoogleMapCoordinates, type GoogleMapInstance, type GoogleMapOptions, type GoogleMapProps, type GoogleMapsApi, type GoogleMapsLibrary, YouTubeEmbed, type YouTubeEmbedParams, type YouTubeEmbedProps, type YouTubeSrcSource, type YouTubeVideoIdSource, } from './components/integrations';
11
- export { ConsentButton } from './components/shared/primitives/button';
12
- export { useColorScheme } from './hooks/use-color-scheme';
13
- export { type ConsentDialogTriggerVisibility, type UseConsentDialogTriggerOptions, type UseConsentDialogTriggerResult, useConsentDialogTrigger, } from './hooks/use-consent-dialog-trigger';
14
- export { useConsentManager } from './hooks/use-consent-manager';
15
- export { ConsentScriptConflictError, type ConsentScriptReadyControls, type ConsentScriptStatus, type ConsentScriptUnmountBehavior, type UseConsentScriptOptions, type UseConsentScriptResult, useConsentScript, } from './hooks/use-consent-script';
16
- export { useFocusTrap } from './hooks/use-focus-trap';
17
- export { type HeadlessConsentBannerAction, type HeadlessConsentBannerState, type HeadlessConsentDialogAction, type HeadlessConsentDialogState, type HeadlessConsentSurface, type HeadlessConsentSurfaceAction, type HeadlessConsentSurfaceState, type HeadlessConsentWriteAction, type UseHeadlessConsentUIResult, useHeadlessConsentUI, } from './hooks/use-headless-consent-ui';
18
- export { useSSRStatus } from './hooks/use-ssr-status';
19
- export { useTranslations } from './hooks/use-translations';
20
- export { ConsentManagerProvider } from './providers/consent-manager-provider';
21
- export type { ConsentManagerOptions, ConsentManagerProviderProps, } from './types/consent-manager';
22
- export type { ColorTokens, ComponentSlots, MotionTokens, RadiusTokens, ShadowTokens, SlotStyle, SpacingTokens, Theme, TypographyTokens, } from './types/theme';
1
+ /**
2
+ * `@c15t/react` — React adapter for the c15t consent kernel.
3
+ *
4
+ * Pattern:
5
+ * import {
6
+ * ConsentProvider,
7
+ * hosted,
8
+ * useConsent,
9
+ * useSaveConsents,
10
+ * } from '@c15t/react';
11
+ *
12
+ * function App({ children }) {
13
+ * return (
14
+ * <ConsentProvider options={{ mode: hosted({ url: '/api/c15t' }) }}>
15
+ * {children}
16
+ * </ConsentProvider>
17
+ * );
18
+ * }
19
+ *
20
+ * function MarketingScripts() {
21
+ * const allowed = useConsent('marketing');
22
+ * return allowed ? <GoogleTagManager /> : null;
23
+ * }
24
+ *
25
+ * Design notes:
26
+ * - Selector hooks subscribe via `useSyncExternalStore` so re-renders
27
+ * stay scoped to the exact slice each hook reads.
28
+ * - Action hooks return stable kernel methods — no `useCallback` dance
29
+ * required at the consumer site.
30
+ * - No provider-level useEffect syncing state into React state. No
31
+ * cache patching. No method rewriting. Provider boot work is explicit
32
+ * module wiring around a single per-mount kernel.
33
+ */
34
+ export type { ConsentKernel, ConsentSnapshot, ConsentState, HostedTransportOptions, InitContext, InitResponse, InitResult, KernelConfig, KernelEvent, KernelOverrides, KernelTransport, KernelUser, Listener, HostedModeOptions, ProviderTransportContext, ProviderTransportFactory, ProviderTransportKind, SavePayload, SaveResult, Unsubscribe, } from '@c15t/core';
35
+ export { createConsentKernel, custom, hosted } from '@c15t/core';
36
+ export type { OfflineModeOptions } from './transports/offline';
37
+ export { offline } from './transports/offline';
38
+ export { ConsentDialog, ConsentWidget } from './aggregate-components';
39
+ export type { ConsentBannerButton, ConsentBannerLayout, ConsentBannerProps, ConsentBannerRight, ConsentBannerRightLinkProps, ConsentBannerRightsProps, ConsentBannerSurface, } from './components/prompt';
40
+ export { ConsentBanner, type ConsentBannerCompoundComponent, useConsentBannerSurface, } from './components/prompt';
41
+ export type { ConsentDialogCompoundComponent, ConsentDialogProps, } from './components/panel';
42
+ export type { ConsentDialogLinkProps } from './components/panel-link';
43
+ export { ConsentDialogLink } from './components/panel-link';
44
+ export type { ConsentDialogTriggerProps, ConsentDialogTriggerToolbarAction, ConsentDialogTriggerToolbarPreferences, ConsentDialogTriggerToolbarProps, TriggerOrientation, } from './components/panel-trigger';
45
+ export { ConsentDialogTrigger, ConsentDialogTriggerToolbar, } from './components/panel-trigger';
46
+ export type { ConsentWidgetCompoundComponent, ConsentWidgetProps, } from './components/preferences';
47
+ export type { FrameProps } from './components/frame';
48
+ export { Frame } from './components/frame';
49
+ export type { ConsentDraftHandle, ConsentDraftProviderProps } from './draft';
50
+ export { ConsentDraftProvider, useConsentDraft } from './draft';
51
+ export { useConsentManager } from './component-hooks/use-manager';
52
+ export { useTranslations } from './component-hooks/use-translations';
53
+ export { useActiveUI, useBranding, useConsent, useConsents, useHasConsentPolicy, useHasConsentUI, useIABEnabled, useIABSnapshot, useIdentify, useInit, useLocation, useModel, useOverrides, usePromptPresentation, usePolicyCategories, usePreferencesPresentation, usePolicyScopeMode, usePurposeConsent, useSaveConsents, useSetActiveUI, useSetLanguage, useSetOverrides, useSnapshot, useSpecialFeatureOptIn, useTCString, useUser, useVendorConsent, } from './hooks';
54
+ export type { UseIframeBlockerOptions, UseNetworkBlockerOptions, UsePersistenceOptions, UseScriptLoaderOptions, } from './module-hooks';
55
+ export { useIframeBlocker, useNetworkBlocker, usePersistence, useScriptLoader, } from './module-hooks';
56
+ export type { ConsentProviderOptions, ConsentProviderCallbacks, ConsentProviderPrefetch, ConsentProviderProps, ExternalRuntimeProviderOptions, ExternalRuntimeProviderProps, OwnedRuntimeProviderProps, } from './provider';
57
+ export { ConsentProvider } from './provider';
58
+ export type { ReactUIOptions } from './types/manager';
59
+ export { defineTheme, type Theme } from './types/theme';
60
+ export { useExplicitChoice, useEffectivePermissions, usePromptRequirement, useNoticeDismissal, usePrivacySignals, useOptOutDirectives, usePolicyResolution, usePolicyRule, useRestrictions, useDismissNotice, } from './hooks';
61
+ export type { ConsentPresentation, PromptPresentation, PreferencesPresentation, PresentationAction, PromptPosition, PromptVariant, ResolvedConsentPresentation, } from '@c15t/core';
@@ -0,0 +1,6 @@
1
+ import type { IframeBlockerHandle } from '@c15t/core/modules/iframe-blocker';
2
+ export interface UseIframeBlockerOptions {
3
+ disableAutomaticBlocking?: boolean;
4
+ }
5
+ export declare const useIframeBlocker: (options?: UseIframeBlockerOptions) => IframeBlockerHandle;
6
+ export type { IframeBlockerHandle };