@c15t/react 2.2.1 → 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,2 @@
1
+ "use client";
2
+ import{jsx as e}from"react/jsx-runtime";import{GlobalThemeContext as r}from"./context/theme-context.js";import{V3UIConfigContext as o}from"./ui-config-context.js";let t=({themeConfig:t,uiConfig:i,children:m})=>e(o.Provider,{value:i,children:e(r.Provider,{value:t,children:m})});export{t as V3ThemeProvider};
@@ -0,0 +1 @@
1
+ import{recommendedPolicyRules as n,resolvePolicyRules as e,writePolicyResolutionWire as i}from"@c15t/schema/types";let o=function(o={}){return Object.assign(l=>({init:({overrides:t})=>Promise.resolve({policyResolution:i(e({countryCode:t.country??null,iabEnabled:l.iabEnabled,regionCode:t.region??null,rules:o.policyRules??n({iab:l.iabEnabled})})),translations:l.translations})}),{kind:"offline"})};export{o as offline};
@@ -0,0 +1 @@
1
+ export*from"./manager.js";export*from"./slots.js";export*from"./theme/index.js";
@@ -1 +1 @@
1
- export*from"./style-keys.js";export*from"./style-types.js";
1
+ export*from"./style-types.js";
@@ -1 +1 @@
1
- function e(e){return e}export{e as defineTheme};
1
+ let e=function(e){return e};export{e as defineTheme};
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ import{createContext as t,useContext as o}from"react";let e=t({});e.displayName="C15tV3UIConfigContext";let n=function(){return o(e)};export{e as V3UIConfigContext,n as useUIConfig};
@@ -0,0 +1 @@
1
+ let e=new WeakMap,t=t=>{e.set(t,{})},n=async(n,a,i)=>{let o={};e.set(n,o);let l="dialog"===n.getSnapshot().activeUI,s=a();l&&e.get(n)===o&&n.set.activeUI("dialog");let g=n.subscribe(a=>{l&&"dialog"!==a.activeUI&&e.get(n)===o&&t(n)});try{let t=await s;if(t.ok&&i()&&l&&e.get(n)===o){let e=n.getSnapshot();n.set.activeUI(e.policyPending||"failed"===e.resolution.status||"none"===e.promptRequirement.kind?"none":"banner")}return t}finally{g()}};export{t as invalidateConsentUIAction,n as saveConsentUI};
package/dist/utils/cn.js CHANGED
@@ -1 +1 @@
1
- import{cn as t}from"@c15t/ui/utils";function r(...i){return t(...i)}export{r as cnExt};
1
+ import{cn as t}from"@c15t/ui/utils";let n=function(...n){return t(...n)};export{n as cnExt};
@@ -0,0 +1 @@
1
+ import{translations as n}from"@c15t/translations/en";let t={defaultLanguage:"en",translations:{en:n}};export{t as defaultTranslationConfig};
@@ -0,0 +1 @@
1
+ export*from"./cn.js";export*from"./default-translation-config.js";export*from"./merge-styles.js";export*from"./theme-utils.js";
@@ -0,0 +1 @@
1
+ import{cnExt as e}from"./cn.js";let t=function(e,t){if(!t)return;let[o,r]=t.split(".");return e?.[o]?.[r]},o=function(t,{baseClassName:o,className:r,noStyle:s,style:l,...p}){let i=t?.style||l?{...t?.style,...l}:void 0,m=e(s?void 0:o,t?.className,r);return{...t,...p,className:m||void 0,style:i}};export{t as getSlotProps,o as mergeSlotProps};
@@ -1 +1 @@
1
- import{mergeStyles as e}from"@c15t/ui/utils";function t(t,r){return e(t,r)}export{t as mergeStyles};
1
+ import{mergeStyles as e}from"@c15t/ui/utils";let t=function(t,r){return e(t,r)};export{t as mergeStyles};
@@ -1 +1 @@
1
- import{defaultTheme as e,generateThemeCSS as t,themeToVars as m}from"@c15t/ui/theme";let r=e;function h(e,t=!1){return m(e,t)}function u(e){return t(e)}export{r as defaultTheme,u as generateThemeCSS,h as themeToVars};
1
+ import{defaultTheme as e,generateThemeCSS as t,themeToVars as m}from"@c15t/ui/theme";let a=e,r=function(e,t=!1){return m(e,t)},h=function(e){return t(e)};export{a as defaultTheme,h as generateThemeCSS,r as themeToVars};
package/dist/version.js CHANGED
@@ -1 +1 @@
1
- let e="2.2.1";export{e as version};
1
+ let e="3.0.0-alpha.0";export{e as version};
@@ -0,0 +1,4 @@
1
+ import type { ConsentDialogCompoundComponent } from './components/panel';
2
+ import type { ConsentWidgetCompoundComponent } from './components/preferences';
3
+ export declare const ConsentDialog: ConsentDialogCompoundComponent;
4
+ export declare const ConsentWidget: ConsentWidgetCompoundComponent;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Chunk-warming registry (Vue-parity perf work, item #2).
3
+ *
4
+ * The aggregate `ConsentDialog` is lazy-loaded and — since the interaction
5
+ * fix — deferred until it can actually render. That leaves one cold path:
6
+ * the user's *first* "customize" click pays the chunk network+parse cost
7
+ * under throttle. Surfaces register their lazy import here, and intent
8
+ * signals (pointerenter/focus on the customize button) warm the chunk
9
+ * before the click.
10
+ *
11
+ * Module-level registry keeps banner components decoupled from the
12
+ * aggregate exports (no context change, tree-shakes with the aggregate).
13
+ */
14
+ type Warmer = () => void;
15
+ /** Register a lazy chunk's import trigger. Returns an unregister fn. */
16
+ export declare const registerDialogChunkWarmer: (warmer: Warmer) => () => void;
17
+ /** Fire all registered warmers once (idempotent). */
18
+ export declare const warmDialogChunk: () => void;
19
+ export {};
@@ -0,0 +1,68 @@
1
+ import type { ConsentPresentation, PresentationAction, ResolvedConsentPresentation } from '@c15t/core';
2
+ export type HeadlessConsentSurface = 'banner' | 'dialog';
3
+ export type HeadlessConsentSurfaceAction = PresentationAction;
4
+ export type HeadlessConsentWriteAction = 'accept' | 'reject' | 'save';
5
+ export type HeadlessConsentBannerAction = PresentationAction;
6
+ export type HeadlessConsentDialogAction = PresentationAction;
7
+ export interface HeadlessConsentSurfaceState<Action extends string = PresentationAction> extends Omit<ResolvedConsentPresentation, 'allowedActions' | 'orderedActions' | 'actionGroups' | 'primaryActions'> {
8
+ allowedActions: Action[];
9
+ orderedActions: Action[];
10
+ actionGroups: Action[][];
11
+ primaryActions: Action[];
12
+ isVisible: boolean;
13
+ }
14
+ export type HeadlessConsentBannerState = HeadlessConsentSurfaceState;
15
+ export type HeadlessConsentDialogState = HeadlessConsentSurfaceState;
16
+ /** Resolve required controls with optional component-level presentation. */
17
+ export declare const useHeadlessConsentUI: (overrides?: ConsentPresentation) => {
18
+ activeUI: import("@c15t/core").KernelActiveUI;
19
+ banner: {
20
+ allowedActions: PresentationAction[];
21
+ requiredActions: PresentationAction[];
22
+ equivalentActions: PresentationAction[][];
23
+ orderedActions: PresentationAction[];
24
+ actionGroups: PresentationAction[][];
25
+ primaryActions: PresentationAction[];
26
+ diagnostics: import("@c15t/core").PresentationDiagnostic[];
27
+ rights: readonly import("@c15t/schema/types").PolicyRight[];
28
+ preferenceControls: Exclude<import("@c15t/schema/types").PolicyRight, 'disclosure'>[];
29
+ direction: 'row' | 'column';
30
+ uiProfile: 'balanced' | 'compact' | 'strict';
31
+ scrollLock: boolean;
32
+ trapFocus: boolean;
33
+ shouldFillActions: boolean;
34
+ variant: import("@c15t/core").PromptVariant;
35
+ position: import("@c15t/core").PromptPosition;
36
+ positionSource: 'host' | 'default';
37
+ blocking: boolean;
38
+ isVisible: boolean;
39
+ };
40
+ closeUI: () => void;
41
+ dialog: {
42
+ allowedActions: PresentationAction[];
43
+ requiredActions: PresentationAction[];
44
+ equivalentActions: PresentationAction[][];
45
+ orderedActions: PresentationAction[];
46
+ actionGroups: PresentationAction[][];
47
+ primaryActions: PresentationAction[];
48
+ diagnostics: import("@c15t/core").PresentationDiagnostic[];
49
+ rights: readonly import("@c15t/schema/types").PolicyRight[];
50
+ preferenceControls: Exclude<import("@c15t/schema/types").PolicyRight, 'disclosure'>[];
51
+ direction: 'row' | 'column';
52
+ uiProfile: 'balanced' | 'compact' | 'strict';
53
+ scrollLock: boolean;
54
+ trapFocus: boolean;
55
+ shouldFillActions: boolean;
56
+ variant: import("@c15t/core").PromptVariant;
57
+ position: import("@c15t/core").PromptPosition;
58
+ positionSource: 'host' | 'default';
59
+ blocking: boolean;
60
+ isVisible: boolean;
61
+ };
62
+ openBanner: () => void;
63
+ openDialog: () => void;
64
+ performAction: (action: PresentationAction) => void | Promise<import("@c15t/core").SaveResult> | Promise<import("@c15t/core").NoticeDismissResult>;
65
+ performBannerAction: (action: PresentationAction) => void | Promise<import("@c15t/core").SaveResult> | Promise<import("@c15t/core").NoticeDismissResult>;
66
+ performDialogAction: (action: PresentationAction) => void | Promise<import("@c15t/core").SaveResult> | Promise<import("@c15t/core").NoticeDismissResult>;
67
+ saveCustomPreferences: (input?: import("@c15t/core").SaveInput) => Promise<import("@c15t/core").SaveResult>;
68
+ };
@@ -0,0 +1,22 @@
1
+ export declare const useHeadlessIABConsentUI: () => {
2
+ activeUI: import("@c15t/core").ActiveUI;
3
+ banner: {
4
+ isReady: boolean;
5
+ vendorCount: number;
6
+ displayItems: string[];
7
+ remainingCount: number;
8
+ scrollLock: boolean | undefined;
9
+ };
10
+ closeUI: () => void;
11
+ dialog: {
12
+ isReady: boolean;
13
+ scrollLock: boolean | undefined;
14
+ };
15
+ iab: import("../iab-context").ReactIABState | null;
16
+ openDialog: (options?: {
17
+ tab?: 'purposes' | 'vendors';
18
+ }) => void;
19
+ openVendorsDialog: () => void;
20
+ performBannerAction: (action: 'accept' | 'reject' | 'customize') => Promise<void>;
21
+ performDialogAction: (action: 'accept' | 'reject' | 'customize') => Promise<void>;
22
+ };
@@ -0,0 +1,40 @@
1
+ import type { ActiveUI, AllConsentNames, ConsentState, ConsentType, HasCondition, Model, PromptPresentation, TranslationConfig } from '@c15t/core';
2
+ type SaveType = 'all' | 'custom' | 'necessary';
3
+ export declare const useConsentManager: () => {
4
+ activeUI: ActiveUI;
5
+ branding: import("@c15t/core").KernelBranding;
6
+ consentCategories: AllConsentNames[];
7
+ consentTypes: ConsentType[];
8
+ consents: ConsentState;
9
+ draftIsStale: boolean;
10
+ effectivePermissions: Readonly<ConsentState>;
11
+ explicitChoice: Readonly<import("@c15t/core").ExplicitChoice> | null;
12
+ getDisplayedConsents: () => ConsentType[];
13
+ has: (condition: HasCondition<AllConsentNames>) => boolean;
14
+ iab: Readonly<import("@c15t/core").KernelIABState> | null;
15
+ manager: null;
16
+ model: Model;
17
+ noticeDismissal: Readonly<import("@c15t/core").NoticeDismissal> | null;
18
+ optOutDirectives: readonly import("@c15t/core").PrivacyOptOut[];
19
+ policyBanner: PromptPresentation;
20
+ policyCategories: AllConsentNames[];
21
+ policyDialog: import("@c15t/core").PreferencesPresentation;
22
+ policyRule: Readonly<import("@c15t/core").ResolvedPolicyRule>;
23
+ policyScopeMode: import("@c15t/core").PolicyScopeMode;
24
+ privacySignals: import("@c15t/core").KernelPrivacySignals;
25
+ promptRequirement: Readonly<import("@c15t/core").PromptRequirement>;
26
+ resetDraft: () => void;
27
+ resolution: Readonly<import("@c15t/core").PolicyResolution>;
28
+ restrictions: Readonly<Partial<Record<import("@c15t/core").OptionalConsentCategory, readonly import("@c15t/core").RestrictionReason[]>>>;
29
+ saveConsents: (type: SaveType, _options?: {
30
+ uiSource?: string;
31
+ }) => Promise<void>;
32
+ selectedConsentTypes: Readonly<ConsentState>;
33
+ selectedConsents: Readonly<ConsentState>;
34
+ setActiveUI: (ui: ActiveUI) => void;
35
+ setSelectedConsent: (name: AllConsentNames, value: boolean) => void;
36
+ subscribeToConsentChanges: (listener: (state: ConsentState) => void) => () => void;
37
+ translationConfig: TranslationConfig;
38
+ updateConsentCategories: (_names: AllConsentNames[]) => void;
39
+ };
40
+ export {};
@@ -0,0 +1,20 @@
1
+ /**
2
+ * When a trigger surface is visible.
3
+ *
4
+ * - `always` renders whenever the preference center is closed.
5
+ * - `after-prompt` renders only once no prompt is owed: after a choice is
6
+ * saved or a notice is dismissed, and again when a policy change asks
7
+ * for a new prompt is answered.
8
+ * - `never` hides the surface so the host can open the dialog itself.
9
+ */
10
+ export type ConsentDialogTriggerVisibility = 'always' | 'after-prompt' | 'never';
11
+ export interface UseConsentDialogTriggerOptions {
12
+ showWhen?: ConsentDialogTriggerVisibility;
13
+ onClick?: () => void;
14
+ }
15
+ export interface UseConsentDialogTriggerResult {
16
+ isVisible: boolean;
17
+ openDialog: () => void;
18
+ }
19
+ /** Persistent preferences access does not depend on a choice or prompt. */
20
+ export declare const useConsentDialogTrigger: (options?: UseConsentDialogTriggerOptions) => UseConsentDialogTriggerResult;
@@ -0,0 +1,2 @@
1
+ import type { Translations } from '@c15t/core';
2
+ export declare const useTranslations: () => Translations;
@@ -1,4 +1,4 @@
1
- import { type ReactNode } from 'react';
1
+ import type { ReactNode } from 'react';
2
2
  import type { ConsentButtonProps } from '../shared/primitives/button.types';
3
3
  /**
4
4
  * Inline trigger for opening the consent dialog from places like site footers.
@@ -1,11 +1,11 @@
1
- import type { AllConsentNames } from 'c15t';
2
- import { type BoxProps } from '../shared/primitives/box';
1
+ import type { AllConsentNames } from '@c15t/core';
2
+ import type { BoxProps } from '../shared/primitives/box';
3
3
  import type { ConsentButtonProps } from '../shared/primitives/button.types';
4
- declare const FrameRoot: import("react").ForwardRefExoticComponent<Omit<BoxProps, "themeKey"> & import("react").RefAttributes<HTMLDivElement>>;
5
- declare const FrameTitle: import("react").ForwardRefExoticComponent<Omit<BoxProps, "themeKey"> & {
4
+ declare const FrameRoot: import("react").ForwardRefExoticComponent<Omit<BoxProps, "slotKey"> & import("react").RefAttributes<HTMLDivElement>>;
5
+ declare const FrameTitle: import("react").ForwardRefExoticComponent<Omit<BoxProps, "slotKey"> & {
6
6
  category?: AllConsentNames;
7
7
  } & import("react").RefAttributes<HTMLDivElement>>;
8
- declare const FrameButton: import("react").ForwardRefExoticComponent<Omit<ConsentButtonProps, "themeKey"> & {
8
+ declare const FrameButton: import("react").ForwardRefExoticComponent<Omit<ConsentButtonProps, "slotKey"> & {
9
9
  category: AllConsentNames;
10
10
  } & import("react").RefAttributes<HTMLButtonElement>>;
11
11
  export { FrameButton, FrameRoot, FrameTitle };
@@ -1,5 +1,6 @@
1
- import type { AllConsentNames } from 'c15t';
1
+ import type { AllConsentNames } from '@c15t/core';
2
2
  import type { ComponentPropsWithRef, FC, ReactNode } from 'react';
3
+ import type { Theme } from '../../types/theme';
3
4
  import type * as Atom from './atoms';
4
5
  export interface FrameProps extends ComponentPropsWithRef<'div'> {
5
6
  /**
@@ -27,7 +28,7 @@ export interface FrameProps extends ComponentPropsWithRef<'div'> {
27
28
  *
28
29
  * @default undefined
29
30
  */
30
- theme?: any;
31
+ theme?: Theme;
31
32
  }
32
33
  export interface FrameCompoundComponent extends FC<FrameProps> {
33
34
  Root: typeof Atom.FrameRoot;
@@ -1,6 +1,7 @@
1
- import { type HTMLAttributes, type ReactNode } from 'react';
1
+ import type { HTMLAttributes, ReactNode } from 'react';
2
2
  interface IABConsentDialogCardProps extends HTMLAttributes<HTMLDivElement> {
3
3
  children: ReactNode;
4
+ 'data-testid'?: string;
4
5
  }
5
6
  /**
6
7
  * Card component for the IAB Consent Dialog.
@@ -1,4 +1,4 @@
1
- import { type HTMLAttributes, type ReactNode } from 'react';
1
+ import type { HTMLAttributes, ReactNode } from 'react';
2
2
  interface IABConsentDialogContentProps extends HTMLAttributes<HTMLDivElement> {
3
3
  children: ReactNode;
4
4
  }
@@ -1,4 +1,4 @@
1
- import { type HTMLAttributes, type ReactNode } from 'react';
1
+ import type { HTMLAttributes, ReactNode } from 'react';
2
2
  interface IABConsentDialogFooterProps extends HTMLAttributes<HTMLDivElement> {
3
3
  children?: ReactNode;
4
4
  }
@@ -1,4 +1,4 @@
1
- import { type ReactNode } from 'react';
1
+ import type { ReactNode } from 'react';
2
2
  interface IABConsentDialogHeaderProps {
3
3
  children?: ReactNode;
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { type HTMLAttributes } from 'react';
1
+ import type { HTMLAttributes } from 'react';
2
2
  interface OverlayProps extends HTMLAttributes<HTMLDivElement> {
3
3
  noStyle?: boolean;
4
4
  isOpen: boolean;
@@ -1,7 +1,13 @@
1
- import { type FC } from 'react';
1
+ import type { FC } from 'react';
2
2
  import type { ProcessedPurpose, VendorId } from '../types';
3
3
  interface PurposeItemProps {
4
4
  purpose: ProcessedPurpose;
5
+ /**
6
+ * The row's `data-testid`. Comes from the shared display model, which
7
+ * namespaces it by row kind — a purpose, a special purpose and a
8
+ * special feature can all be numbered `1`.
9
+ */
10
+ testId?: string;
5
11
  isEnabled: boolean;
6
12
  onToggle: (value: boolean) => void;
7
13
  vendorConsents: Record<string, boolean>;
@@ -1,4 +1,5 @@
1
- import { type FC, type ReactNode } from 'react';
1
+ import type * as C15tCoreTypes from '@c15t/core';
2
+ import type { FC, ReactNode } from 'react';
2
3
  interface IABConsentDialogRootProps {
3
4
  children: ReactNode;
4
5
  /**
@@ -13,7 +14,7 @@ interface IABConsentDialogRootProps {
13
14
  * Which consent models this dialog responds to.
14
15
  * @default ['iab']
15
16
  */
16
- models?: import('c15t').Model[];
17
+ models?: C15tCoreTypes.Model[];
17
18
  /**
18
19
  * Override the UI source identifier sent with consent API calls.
19
20
  * @default 'iab_dialog'
@@ -1,4 +1,4 @@
1
- import { type FC } from 'react';
1
+ import type { FC } from 'react';
2
2
  import type { ProcessedStack, VendorId } from '../types';
3
3
  interface StackItemProps {
4
4
  stack: ProcessedStack;
@@ -1,4 +1,4 @@
1
- import { type HTMLAttributes, type ReactNode } from 'react';
1
+ import type { HTMLAttributes, ReactNode } from 'react';
2
2
  interface IABConsentDialogTabsProps extends Omit<HTMLAttributes<HTMLDivElement>, 'defaultValue' | 'onChange'> {
3
3
  children?: ReactNode;
4
4
  defaultTab?: 'purposes' | 'vendors';
@@ -1,7 +1,6 @@
1
- import type { GlobalVendorList } from 'c15t';
2
- import { type FC } from 'react';
1
+ import type { GlobalVendorList } from '@c15t/core';
2
+ import type { FC } from 'react';
3
3
  import type { ProcessedPurpose, VendorId } from '../types';
4
- /** Custom vendor not registered with IAB */
5
4
  interface CustomVendor {
6
5
  id: string | number;
7
6
  name: string;
@@ -0,0 +1,18 @@
1
+ import type { HeadlessIABDialogDisplayModel } from '@c15t/iab/headless';
2
+ /**
3
+ * The rows the IAB preference centre renders.
4
+ * @public
5
+ */
6
+ export type IABDisplayModel = HeadlessIABDialogDisplayModel;
7
+ /**
8
+ * Hook over the shared IAB display model.
9
+ *
10
+ * @remarks
11
+ * React wrapper around `resolveIABDialogDisplayModel` from
12
+ * `@c15t/iab/headless`, so React, Svelte, Vue and the Astro server render
13
+ * agree on which rows a preference centre shows and in what order.
14
+ *
15
+ * @returns The ordered rows plus the tab counts.
16
+ * @public
17
+ */
18
+ export declare const useIABDisplayModel: () => IABDisplayModel;
@@ -0,0 +1,17 @@
1
+ import type { HeadlessIABDialogData } from '@c15t/iab/headless';
2
+ /**
3
+ * Processed GVL data for the IAB Consent Dialog.
4
+ * @public
5
+ */
6
+ export type GVLData = HeadlessIABDialogData;
7
+ /**
8
+ * Hook to process GVL (Global Vendor List) data into UI-friendly format.
9
+ *
10
+ * @remarks
11
+ * React wrapper around the framework-agnostic headless processor from
12
+ * `@c15t/iab/headless`.
13
+ *
14
+ * @returns Processed GVL data ready for UI rendering
15
+ * @public
16
+ */
17
+ export declare const useGVLData: () => GVLData;
@@ -1,5 +1,6 @@
1
- import { type FC } from 'react';
2
- import { type ConsentDialogTriggerProps } from '../consent-dialog-trigger';
1
+ import type * as C15tCoreTypes from '@c15t/core';
2
+ import type { FC } from 'react';
3
+ import type { ConsentDialogTriggerProps } from '../panel-trigger';
3
4
  /**
4
5
  * Props for the IABConsentDialog component.
5
6
  * @public
@@ -45,11 +46,17 @@ export interface IABConsentDialogProps {
45
46
  * @default false
46
47
  */
47
48
  showTrigger?: boolean | ConsentDialogTriggerProps;
49
+ /**
50
+ * Which tab the preference centre opens on. Lets a "N partners" link
51
+ * land on the vendor list instead of purposes.
52
+ * @default 'purposes'
53
+ */
54
+ initialTab?: 'purposes' | 'vendors';
48
55
  /**
49
56
  * Which consent models this dialog responds to.
50
57
  * @default ['iab']
51
58
  */
52
- models?: import('c15t').Model[];
59
+ models?: C15tCoreTypes.Model[];
53
60
  /**
54
61
  * Override the UI source identifier sent with consent API calls.
55
62
  * @default 'iab_dialog'
@@ -17,7 +17,7 @@ import { IABConsentDialogRoot } from './atoms/root';
17
17
  import { StackItem } from './atoms/stack-item';
18
18
  import { IABConsentDialogTabButton, IABConsentDialogTabs } from './atoms/tabs';
19
19
  import { VendorList } from './atoms/vendor-list';
20
- import { type IABConsentDialogProps } from './iab-consent-dialog';
20
+ import type { IABConsentDialogProps } from './iab-panel';
21
21
  /**
22
22
  * This interface extends the base IABConsentDialog component with additional sub-components
23
23
  * that can be used to compose the consent dialog's structure.
@@ -84,8 +84,9 @@ export { IABConsentDialogOverlay } from './atoms/overlay';
84
84
  export { PurposeItem } from './atoms/purpose-item';
85
85
  export { IABConsentDialogRoot } from './atoms/root';
86
86
  export { StackItem } from './atoms/stack-item';
87
- export { IABConsentDialogTabButton, IABConsentDialogTabs, } from './atoms/tabs';
87
+ export { IABConsentDialogTabButton, IABConsentDialogTabs } from './atoms/tabs';
88
88
  export { VendorList } from './atoms/vendor-list';
89
+ export { type IABDisplayModel, useIABDisplayModel, } from './hooks/use-display-model';
89
90
  export { type GVLData, useGVLData } from './hooks/use-gvl-data';
90
91
  export type { ProcessedPurpose, ProcessedSpecialFeature, ProcessedStack, ProcessedVendor, } from './types';
91
92
  export { IABConsentDialog, type IABConsentDialogProps };
@@ -0,0 +1 @@
1
+ export type { HeadlessIABProcessedFeature as ProcessedFeature, HeadlessIABProcessedPurpose as ProcessedPurpose, HeadlessIABProcessedSpecialFeature as ProcessedSpecialFeature, HeadlessIABProcessedStack as ProcessedStack, HeadlessIABProcessedVendor as ProcessedVendor, HeadlessIABVendorId as VendorId, } from '@c15t/iab/headless';
@@ -65,6 +65,8 @@ interface IABTranslations {
65
65
  privacyPolicy: string;
66
66
  storageDisclosure: string;
67
67
  requiredNotice: string;
68
+ partnerSingular: string;
69
+ partnerPlural: string;
68
70
  };
69
71
  footer: {
70
72
  consentStorage: string;
@@ -79,5 +81,5 @@ interface IABTranslations {
79
81
  *
80
82
  * @returns Complete IAB translations object
81
83
  */
82
- export declare function useIABTranslations(): IABTranslations;
84
+ export declare const useIABTranslations: () => IABTranslations;
83
85
  export {};
@@ -1,4 +1,4 @@
1
- import { type HTMLAttributes, type ReactNode } from 'react';
1
+ import type { HTMLAttributes, ReactNode } from 'react';
2
2
  interface IABConsentBannerButtonGroupProps extends HTMLAttributes<HTMLDivElement> {
3
3
  children: ReactNode;
4
4
  }
@@ -1,6 +1,7 @@
1
- import { type HTMLAttributes, type ReactNode } from 'react';
1
+ import type { HTMLAttributes, ReactNode } from 'react';
2
2
  interface IABConsentBannerCardProps extends HTMLAttributes<HTMLDivElement> {
3
3
  children: ReactNode;
4
+ 'data-testid'?: string;
4
5
  }
5
6
  /**
6
7
  * Card component for the IAB Consent Banner.
@@ -1,4 +1,4 @@
1
- import { type HTMLAttributes, type ReactNode } from 'react';
1
+ import type { HTMLAttributes, ReactNode } from 'react';
2
2
  interface IABConsentBannerDescriptionProps extends HTMLAttributes<HTMLParagraphElement> {
3
3
  children: ReactNode;
4
4
  }
@@ -1,6 +1,7 @@
1
- import { type HTMLAttributes, type ReactNode } from 'react';
1
+ import type { HTMLAttributes, ReactNode } from 'react';
2
2
  interface IABConsentBannerFooterProps extends HTMLAttributes<HTMLDivElement> {
3
3
  children: ReactNode;
4
+ 'data-testid'?: string;
4
5
  }
5
6
  /**
6
7
  * Footer component for the IAB Consent Banner.
@@ -1,6 +1,7 @@
1
- import { type HTMLAttributes, type ReactNode } from 'react';
1
+ import type { HTMLAttributes, ReactNode } from 'react';
2
2
  interface IABConsentBannerHeaderProps extends HTMLAttributes<HTMLDivElement> {
3
3
  children: ReactNode;
4
+ 'data-testid'?: string;
4
5
  }
5
6
  /**
6
7
  * Header component for the IAB Consent Banner.
@@ -1,4 +1,4 @@
1
- import { type HTMLAttributes } from 'react';
1
+ import type { HTMLAttributes } from 'react';
2
2
  interface OverlayProps extends HTMLAttributes<HTMLDivElement> {
3
3
  noStyle?: boolean;
4
4
  }
@@ -1,4 +1,5 @@
1
- import { type FC, type HTMLAttributes, type ReactNode } from 'react';
1
+ import type * as C15tCoreTypes from '@c15t/core';
2
+ import type { FC, HTMLAttributes, ReactNode } from 'react';
2
3
  interface IABConsentBannerRootProps extends HTMLAttributes<HTMLDivElement> {
3
4
  children: ReactNode;
4
5
  noStyle?: boolean;
@@ -9,7 +10,7 @@ interface IABConsentBannerRootProps extends HTMLAttributes<HTMLDivElement> {
9
10
  * Which consent models this banner responds to.
10
11
  * @default ['iab']
11
12
  */
12
- models?: import('c15t').Model[];
13
+ models?: C15tCoreTypes.Model[];
13
14
  /**
14
15
  * Override the UI source identifier sent with consent API calls.
15
16
  * @default 'iab_banner'
@@ -1,4 +1,4 @@
1
- import { type HTMLAttributes, type ReactNode } from 'react';
1
+ import type { HTMLAttributes, ReactNode } from 'react';
2
2
  interface IABConsentBannerTitleProps extends HTMLAttributes<HTMLHeadingElement> {
3
3
  children: ReactNode;
4
4
  }
@@ -1,4 +1,5 @@
1
- import { type FC } from 'react';
1
+ import type * as C15tCoreTypes from '@c15t/core';
2
+ import type { FC } from 'react';
2
3
  /**
3
4
  * Props for the IABConsentBanner component.
4
5
  * @public
@@ -33,7 +34,7 @@ export interface IABConsentBannerProps {
33
34
  * Which consent models this banner responds to.
34
35
  * @default ['iab']
35
36
  */
36
- models?: import('c15t').Model[];
37
+ models?: C15tCoreTypes.Model[];
37
38
  /**
38
39
  * Override the UI source identifier sent with consent API calls.
39
40
  * @default 'iab_banner'
@@ -54,9 +55,14 @@ export interface IABConsentBannerProps {
54
55
  *
55
56
  * @example
56
57
  * ```tsx
57
- * <ConsentManagerProvider options={{ iab: { enabled: true, cmpId: 000, vendors: [1, 2, 10] } }}>
58
+ * <ConsentProvider
59
+ * options={{
60
+ * mode: hosted({ url: '/api/c15t' }),
61
+ * iab: { cmpId: 123, vendors: [1, 2, 10] },
62
+ * }}
63
+ * >
58
64
  * <IABConsentBanner />
59
- * </ConsentManagerProvider>
65
+ * </ConsentProvider>
60
66
  * ```
61
67
  *
62
68
  * @public
@@ -15,7 +15,7 @@ import { IABConsentBannerHeader } from './atoms/header';
15
15
  import { IABConsentBannerOverlay } from './atoms/overlay';
16
16
  import { IABConsentBannerRoot } from './atoms/root';
17
17
  import { IABConsentBannerTitle } from './atoms/title';
18
- import { type IABConsentBannerProps } from './iab-consent-banner';
18
+ import type { IABConsentBannerProps } from './iab-prompt';
19
19
  /**
20
20
  * This interface extends the base IABConsentBanner component with additional sub-components
21
21
  * that can be used to compose the banner's structure.