@c15t/react 2.2.1 → 3.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (705) hide show
  1. package/AGENTS.md +89 -141
  2. package/README.md +2 -2
  3. package/dist/aggregate-components.js +2 -0
  4. package/dist/chunk-warming.js +1 -0
  5. package/dist/component-hooks/use-headless-consent-ui.js +2 -0
  6. package/dist/component-hooks/use-headless-iab-consent-ui.js +2 -0
  7. package/dist/component-hooks/use-manager.js +2 -0
  8. package/dist/component-hooks/use-panel-trigger.js +2 -0
  9. package/dist/component-hooks/use-translations.js +2 -0
  10. package/dist/components/consent-preferences-link/consent-preferences-link.js +2 -1
  11. package/dist/components/consent-preferences-link/index.js +1 -0
  12. package/dist/components/frame/atoms.js +1 -1
  13. package/dist/components/frame/frame.js +2 -1
  14. package/dist/components/frame/index.js +2 -1
  15. package/dist/components/iab-panel/atoms/card.js +2 -0
  16. package/dist/components/iab-panel/atoms/content.js +2 -0
  17. package/dist/components/iab-panel/atoms/footer.js +2 -0
  18. package/dist/components/iab-panel/atoms/header.js +2 -0
  19. package/dist/components/iab-panel/atoms/overlay.js +2 -0
  20. package/dist/components/iab-panel/atoms/purpose-item.js +2 -0
  21. package/dist/components/iab-panel/atoms/root.js +2 -0
  22. package/dist/components/iab-panel/atoms/stack-item.js +2 -0
  23. package/dist/components/iab-panel/atoms/tabs.js +2 -0
  24. package/dist/components/iab-panel/atoms/vendor-list.js +2 -0
  25. package/dist/components/iab-panel/hooks/use-display-model.js +2 -0
  26. package/dist/components/iab-panel/hooks/use-gvl-data.js +2 -0
  27. package/dist/components/iab-panel/iab-panel.js +2 -0
  28. package/dist/components/iab-panel/index.js +2 -0
  29. package/dist/components/iab-panel/use-iab-translations.js +1 -0
  30. package/dist/components/iab-prompt/atoms/button-group.js +2 -0
  31. package/dist/components/iab-prompt/atoms/card.js +2 -0
  32. package/dist/components/iab-prompt/atoms/description.js +2 -0
  33. package/dist/components/iab-prompt/atoms/footer.js +2 -0
  34. package/dist/components/iab-prompt/atoms/header.js +2 -0
  35. package/dist/components/iab-prompt/atoms/overlay.js +2 -0
  36. package/dist/components/iab-prompt/atoms/root.js +2 -0
  37. package/dist/components/iab-prompt/atoms/title.js +2 -0
  38. package/dist/components/iab-prompt/iab-prompt.js +2 -0
  39. package/dist/components/iab-prompt/index.js +2 -0
  40. package/dist/components/panel/atoms/card.js +2 -0
  41. package/dist/components/panel/atoms/overlay.js +1 -0
  42. package/dist/components/panel/atoms/root.js +2 -0
  43. package/dist/components/panel/index.js +2 -0
  44. package/dist/components/panel/panel.js +2 -0
  45. package/dist/components/{consent-dialog-link → panel-link}/index.js +1 -0
  46. package/dist/components/panel-trigger/atoms/button.js +2 -0
  47. package/dist/components/panel-trigger/atoms/icon.js +2 -0
  48. package/dist/components/panel-trigger/atoms/root.js +2 -0
  49. package/dist/components/panel-trigger/atoms/text.js +2 -0
  50. package/dist/components/panel-trigger/atoms/toolbar.js +2 -0
  51. package/dist/components/panel-trigger/index.js +2 -0
  52. package/dist/components/panel-trigger/panel-trigger-toolbar.js +2 -0
  53. package/dist/components/panel-trigger/panel-trigger.js +2 -0
  54. package/dist/components/panel-trigger/use-draggable.js +2 -0
  55. package/dist/components/preferences/atoms/accordion.js +1 -0
  56. package/dist/components/preferences/atoms/button.js +1 -0
  57. package/dist/components/preferences/atoms/footer.js +1 -0
  58. package/dist/components/preferences/atoms/root.js +2 -0
  59. package/dist/components/preferences/index.js +2 -0
  60. package/dist/components/preferences/policy-actions.js +2 -0
  61. package/dist/components/preferences/preferences.js +2 -0
  62. package/dist/components/prompt/atoms/overlay.js +1 -0
  63. package/dist/components/prompt/atoms/root.js +2 -0
  64. package/dist/components/prompt/components.js +1 -0
  65. package/dist/components/prompt/error-boundary.js +2 -0
  66. package/dist/components/prompt/index.js +2 -0
  67. package/dist/components/prompt/policy-actions.js +2 -0
  68. package/dist/components/prompt/prompt.js +2 -0
  69. package/dist/components/prompt/resolve-banner-primary-actions.js +1 -0
  70. package/dist/components/prompt/surface-context.js +2 -0
  71. package/dist/components/prompt/use-banner-copy.js +2 -0
  72. package/dist/components/shared/libs/recursive-clone-children.js +1 -1
  73. package/dist/components/shared/libs/slot.js +1 -1
  74. package/dist/components/shared/libs/use-controllable-state.js +1 -1
  75. package/dist/components/shared/policy-actions.js +2 -1
  76. package/dist/components/shared/primitives/box.js +2 -1
  77. package/dist/components/shared/primitives/button.js +1 -1
  78. package/dist/components/shared/primitives/legal-links/index.js +1 -1
  79. package/dist/components/shared/ui/accordion/accordion.js +2 -1
  80. package/dist/components/shared/ui/animated-collapse/animated-collapse.js +2 -1
  81. package/dist/components/shared/ui/branding.js +1 -1
  82. package/dist/components/shared/ui/button/button.js +1 -1
  83. package/dist/components/shared/ui/collapsible/collapsible.js +2 -1
  84. package/dist/components/shared/ui/dialog/dialog.js +2 -1
  85. package/dist/components/shared/ui/icon.js +1 -1
  86. package/dist/components/shared/ui/logo.js +1 -1
  87. package/dist/components/shared/ui/preference-item/preference-item.js +2 -1
  88. package/dist/components/shared/ui/switch/switch.js +1 -1
  89. package/dist/components/shared/ui/tabs/tabs.js +2 -1
  90. package/dist/context/consent-tracking-context.js +1 -0
  91. package/dist/context/iab-context-value.js +1 -0
  92. package/dist/context/index.js +1 -0
  93. package/dist/context/theme-context.js +2 -1
  94. package/dist/context.js +1 -0
  95. package/dist/devtools.js +2 -0
  96. package/dist/draft.js +2 -0
  97. package/dist/external-iab-context.js +2 -0
  98. package/dist/frame.js +2 -0
  99. package/dist/headless.js +1 -1
  100. package/dist/hooks/use-color-scheme.js +2 -1
  101. package/dist/hooks/use-component-config.js +2 -1
  102. package/dist/hooks/use-focus-trap.js +2 -1
  103. package/dist/hooks/use-headless-iab-consent-ui.js +2 -1
  104. package/dist/hooks/use-iab-manager.js +2 -0
  105. package/dist/hooks/use-is-hydrated.js +2 -0
  106. package/dist/hooks/use-reduced-motion.js +2 -1
  107. package/dist/hooks/use-scroll-lock.js +2 -1
  108. package/dist/hooks/use-text-direction.js +2 -1
  109. package/dist/hooks/use-theme.js +2 -1
  110. package/dist/hooks.js +1 -0
  111. package/dist/iab/styles.css +1 -1
  112. package/dist/iab/styles.tw3.css +27 -19
  113. package/dist/iab-context.js +2 -0
  114. package/dist/iab.js +1 -1
  115. package/dist/index.js +1 -1
  116. package/dist/module-hooks/iframe-blocker.js +2 -0
  117. package/dist/module-hooks/network-blocker.js +2 -0
  118. package/dist/module-hooks/persistence.js +2 -0
  119. package/dist/module-hooks/script-loader.js +2 -0
  120. package/dist/module-hooks/shared.js +2 -0
  121. package/dist/module-hooks.js +2 -0
  122. package/dist/panel-link.js +2 -0
  123. package/dist/panel-trigger.js +2 -0
  124. package/dist/panel.js +2 -0
  125. package/dist/preferences.js +2 -0
  126. package/dist/primitives.js +1 -1
  127. package/dist/prompt.js +2 -0
  128. package/dist/provider.js +2 -0
  129. package/dist/server/fetch-ssr-data.js +1 -1
  130. package/dist/server/headers.js +1 -1
  131. package/dist/server/init-cache-key.js +1 -1
  132. package/dist/server/normalize-url.js +1 -1
  133. package/dist/styles.css +1 -1
  134. package/dist/styles.tw3.css +67 -29
  135. package/dist/theme-provider.js +2 -0
  136. package/dist/transports/offline.js +1 -0
  137. package/dist/types/index.js +1 -0
  138. package/dist/types/theme/index.js +1 -1
  139. package/dist/types/theme/style-types.js +1 -1
  140. package/dist/ui-config-context.js +2 -0
  141. package/dist/ui-save.js +1 -0
  142. package/dist/utils/cn.js +1 -1
  143. package/dist/utils/default-translation-config.js +1 -0
  144. package/dist/utils/index.js +1 -0
  145. package/dist/utils/merge-slot-props.js +1 -0
  146. package/dist/utils/merge-styles.js +1 -1
  147. package/dist/utils/theme-utils.js +1 -1
  148. package/dist/version.js +1 -1
  149. package/dist-types/aggregate-components.d.ts +4 -0
  150. package/dist-types/chunk-warming.d.ts +19 -0
  151. package/dist-types/component-hooks/use-headless-consent-ui.d.ts +68 -0
  152. package/dist-types/component-hooks/use-headless-iab-consent-ui.d.ts +22 -0
  153. package/dist-types/component-hooks/use-manager.d.ts +40 -0
  154. package/dist-types/component-hooks/use-panel-trigger.d.ts +20 -0
  155. package/dist-types/component-hooks/use-translations.d.ts +2 -0
  156. package/dist-types/components/consent-preferences-link/consent-preferences-link.d.ts +1 -1
  157. package/dist-types/components/frame/atoms.d.ts +5 -5
  158. package/dist-types/components/frame/types.d.ts +3 -2
  159. package/dist-types/components/{iab-consent-dialog → iab-panel}/atoms/card.d.ts +2 -1
  160. package/dist-types/components/{iab-consent-dialog → iab-panel}/atoms/content.d.ts +1 -1
  161. package/dist-types/components/{iab-consent-dialog → iab-panel}/atoms/footer.d.ts +1 -1
  162. package/dist-types/components/{iab-consent-dialog → iab-panel}/atoms/header.d.ts +1 -1
  163. package/dist-types/components/{iab-consent-dialog → iab-panel}/atoms/overlay.d.ts +1 -1
  164. package/dist-types/components/{iab-consent-dialog → iab-panel}/atoms/purpose-item.d.ts +7 -1
  165. package/dist-types/components/{iab-consent-dialog → iab-panel}/atoms/root.d.ts +3 -2
  166. package/dist-types/components/{iab-consent-dialog → iab-panel}/atoms/stack-item.d.ts +1 -1
  167. package/dist-types/components/{iab-consent-dialog → iab-panel}/atoms/tabs.d.ts +1 -1
  168. package/dist-types/components/{iab-consent-dialog → iab-panel}/atoms/vendor-list.d.ts +2 -3
  169. package/dist-types/components/iab-panel/hooks/use-display-model.d.ts +18 -0
  170. package/dist-types/components/iab-panel/hooks/use-gvl-data.d.ts +17 -0
  171. package/dist-types/components/{iab-consent-dialog/iab-consent-dialog.d.ts → iab-panel/iab-panel.d.ts} +10 -3
  172. package/dist-types/components/{iab-consent-dialog → iab-panel}/index.d.ts +3 -2
  173. package/dist-types/components/iab-panel/types.d.ts +1 -0
  174. package/dist-types/components/{iab-consent-dialog → iab-panel}/use-iab-translations.d.ts +3 -1
  175. package/dist-types/components/{iab-consent-banner → iab-prompt}/atoms/button-group.d.ts +1 -1
  176. package/dist-types/components/{iab-consent-banner → iab-prompt}/atoms/card.d.ts +2 -1
  177. package/dist-types/components/{iab-consent-banner → iab-prompt}/atoms/description.d.ts +1 -1
  178. package/dist-types/components/{iab-consent-banner → iab-prompt}/atoms/footer.d.ts +2 -1
  179. package/dist-types/components/{iab-consent-banner → iab-prompt}/atoms/header.d.ts +2 -1
  180. package/dist-types/components/{iab-consent-banner → iab-prompt}/atoms/overlay.d.ts +1 -1
  181. package/dist-types/components/{iab-consent-banner → iab-prompt}/atoms/root.d.ts +3 -2
  182. package/dist-types/components/{iab-consent-banner → iab-prompt}/atoms/title.d.ts +1 -1
  183. package/dist-types/components/{iab-consent-banner/iab-consent-banner.d.ts → iab-prompt/iab-prompt.d.ts} +10 -4
  184. package/dist-types/components/{iab-consent-banner → iab-prompt}/index.d.ts +1 -1
  185. package/dist-types/components/{consent-dialog → panel}/atoms/card.d.ts +15 -15
  186. package/dist-types/components/{consent-dialog → panel}/atoms/overlay.d.ts +24 -8
  187. package/dist-types/components/{consent-dialog → panel}/atoms/root.d.ts +4 -3
  188. package/dist-types/components/{consent-dialog → panel}/index.d.ts +13 -8
  189. package/dist-types/components/{consent-dialog/consent-dialog.d.ts → panel/panel.d.ts} +6 -5
  190. package/dist-types/components/{consent-dialog-trigger → panel-trigger}/atoms/button.d.ts +2 -1
  191. package/dist-types/components/{consent-dialog-trigger → panel-trigger}/atoms/icon.d.ts +1 -16
  192. package/dist-types/components/{consent-dialog-trigger → panel-trigger}/atoms/root.d.ts +11 -23
  193. package/dist-types/components/{consent-dialog-trigger → panel-trigger}/atoms/text.d.ts +0 -11
  194. package/dist-types/components/{consent-dialog-trigger → panel-trigger}/atoms/toolbar.d.ts +15 -4
  195. package/dist-types/components/{consent-dialog-trigger → panel-trigger}/index.d.ts +2 -2
  196. package/dist-types/components/{consent-dialog-trigger/consent-dialog-trigger-toolbar.d.ts → panel-trigger/panel-trigger-toolbar.d.ts} +0 -23
  197. package/dist-types/components/{consent-dialog-trigger/consent-dialog-trigger.d.ts → panel-trigger/panel-trigger.d.ts} +8 -4
  198. package/dist-types/components/{consent-dialog-trigger → panel-trigger}/types.d.ts +16 -7
  199. package/dist-types/components/{consent-dialog-trigger → panel-trigger}/use-draggable.d.ts +2 -9
  200. package/dist-types/components/{consent-widget → preferences}/atoms/accordion.d.ts +5 -5
  201. package/dist-types/components/{consent-widget → preferences}/atoms/footer.d.ts +3 -3
  202. package/dist-types/components/{consent-widget → preferences}/atoms/root.d.ts +1 -1
  203. package/dist-types/components/{consent-widget → preferences}/index.d.ts +11 -9
  204. package/dist-types/components/preferences/policy-actions.d.ts +10 -0
  205. package/dist-types/components/{consent-banner → prompt}/atoms/overlay.d.ts +1 -1
  206. package/dist-types/components/prompt/atoms/root.d.ts +78 -0
  207. package/dist-types/components/{consent-banner → prompt}/components.d.ts +99 -14
  208. package/dist-types/components/{consent-banner → prompt}/error-boundary.d.ts +3 -1
  209. package/dist-types/components/{consent-banner → prompt}/index.d.ts +18 -10
  210. package/dist-types/components/prompt/policy-actions.d.ts +12 -0
  211. package/dist-types/components/{consent-banner/consent-banner.d.ts → prompt/prompt.d.ts} +36 -10
  212. package/dist-types/components/prompt/resolve-banner-primary-actions.d.ts +14 -0
  213. package/dist-types/components/prompt/surface-context.d.ts +45 -0
  214. package/dist-types/components/prompt/use-banner-copy.d.ts +16 -0
  215. package/dist-types/components/shared/libs/polymorphic.d.ts +2 -2
  216. package/dist-types/components/shared/libs/recursive-clone-children.d.ts +2 -2
  217. package/dist-types/components/shared/libs/slot.d.ts +1 -1
  218. package/dist-types/components/shared/libs/use-controllable-state.d.ts +1 -1
  219. package/dist-types/components/shared/policy-actions.d.ts +8 -3
  220. package/dist-types/components/shared/primitives/box.d.ts +3 -1
  221. package/dist-types/components/shared/primitives/button.d.ts +4 -37
  222. package/dist-types/components/shared/primitives/button.types.d.ts +3 -1
  223. package/dist-types/components/shared/primitives/legal-links/index.d.ts +7 -11
  224. package/dist-types/components/shared/ui/accordion/accordion.d.ts +45 -12
  225. package/dist-types/components/shared/ui/accordion/accordion.types.d.ts +1 -1
  226. package/dist-types/components/shared/ui/animated-collapse/animated-collapse.d.ts +1 -1
  227. package/dist-types/components/shared/ui/branding.d.ts +12 -12
  228. package/dist-types/components/shared/ui/button/button.d.ts +19 -25
  229. package/dist-types/components/shared/ui/button/button.types.d.ts +2 -2
  230. package/dist-types/components/shared/ui/collapsible/collapsible.d.ts +18 -1
  231. package/dist-types/components/shared/ui/dialog/dialog.d.ts +6 -6
  232. package/dist-types/components/shared/ui/icon.d.ts +1 -1
  233. package/dist-types/components/shared/ui/logo.d.ts +0 -21
  234. package/dist-types/components/shared/ui/preference-item/preference-item.d.ts +46 -2
  235. package/dist-types/components/shared/ui/switch/switch.d.ts +19 -8
  236. package/dist-types/components/shared/ui/tabs/tabs.d.ts +19 -2
  237. package/dist-types/context/iab-context-value.d.ts +37 -0
  238. package/dist-types/context/index.d.ts +3 -0
  239. package/dist-types/context/theme-context.d.ts +2 -2
  240. package/dist-types/context.d.ts +17 -0
  241. package/dist-types/devtools.d.ts +54 -0
  242. package/dist-types/draft.d.ts +31 -0
  243. package/dist-types/external-iab-context.d.ts +29 -0
  244. package/dist-types/frame.d.ts +1 -0
  245. package/dist-types/headless.d.ts +12 -8
  246. package/dist-types/hooks/use-color-scheme.d.ts +1 -1
  247. package/dist-types/hooks/use-component-config.d.ts +2 -2
  248. package/dist-types/hooks/use-focus-trap.d.ts +2 -2
  249. package/dist-types/hooks/use-headless-iab-consent-ui.d.ts +7 -8
  250. package/dist-types/hooks/use-iab-manager.d.ts +52 -0
  251. package/dist-types/hooks/use-is-hydrated.d.ts +8 -0
  252. package/dist-types/hooks/use-reduced-motion.d.ts +1 -1
  253. package/dist-types/hooks/use-scroll-lock.d.ts +1 -1
  254. package/dist-types/hooks/use-text-direction.d.ts +1 -1
  255. package/dist-types/hooks/use-theme.d.ts +2 -1
  256. package/dist-types/hooks.d.ts +148 -0
  257. package/dist-types/iab-context.d.ts +28 -0
  258. package/dist-types/iab.d.ts +14 -8
  259. package/dist-types/index.d.ts +61 -22
  260. package/dist-types/module-hooks/iframe-blocker.d.ts +6 -0
  261. package/dist-types/module-hooks/network-blocker.d.ts +9 -0
  262. package/dist-types/module-hooks/persistence.d.ts +4 -0
  263. package/dist-types/module-hooks/script-loader.d.ts +6 -0
  264. package/dist-types/module-hooks/shared.d.ts +2 -0
  265. package/dist-types/module-hooks.d.ts +4 -0
  266. package/dist-types/panel-link.d.ts +1 -0
  267. package/dist-types/panel-trigger.d.ts +1 -0
  268. package/dist-types/panel.d.ts +1 -0
  269. package/dist-types/preferences.d.ts +1 -0
  270. package/dist-types/prompt.d.ts +1 -0
  271. package/dist-types/provider.d.ts +149 -0
  272. package/dist-types/server/fetch-ssr-data.d.ts +2 -2
  273. package/dist-types/server/headers.d.ts +3 -3
  274. package/dist-types/server/init-cache-key.d.ts +3 -3
  275. package/dist-types/server/normalize-url.d.ts +2 -2
  276. package/dist-types/server/types.d.ts +1 -1
  277. package/dist-types/theme-provider.d.ts +10 -0
  278. package/dist-types/transports/offline.d.ts +18 -0
  279. package/dist-types/types/index.d.ts +3 -0
  280. package/dist-types/types/manager.d.ts +15 -0
  281. package/dist-types/types/slots.d.ts +5 -0
  282. package/dist-types/types/theme/index.d.ts +0 -1
  283. package/dist-types/types/theme/style-types.d.ts +3 -9
  284. package/dist-types/ui-config-context.d.ts +9 -0
  285. package/dist-types/ui-save.d.ts +5 -0
  286. package/dist-types/utils/cn.d.ts +1 -1
  287. package/dist-types/utils/default-translation-config.d.ts +6 -0
  288. package/dist-types/utils/index.d.ts +4 -0
  289. package/dist-types/utils/merge-slot-props.d.ts +14 -0
  290. package/dist-types/utils/merge-styles.d.ts +1 -1
  291. package/dist-types/utils/theme-utils.d.ts +2 -2
  292. package/dist-types/version.d.ts +1 -1
  293. package/docs/README.md +89 -141
  294. package/docs/assets/v3/brand-bar.png +0 -0
  295. package/docs/assets/v3/brand-card.png +0 -0
  296. package/docs/assets/v3/choice-wall.png +0 -0
  297. package/docs/assets/v3/mobile-card.png +0 -0
  298. package/docs/assets/v3/preferences.png +0 -0
  299. package/docs/customization/overview.md +45 -0
  300. package/docs/customization/recipes.md +79 -0
  301. package/docs/customization/slots.md +55 -0
  302. package/docs/customization/tokens.md +76 -0
  303. package/docs/customization/translations.md +49 -0
  304. package/docs/frameworks/react/components/consent-banner.md +219 -202
  305. package/docs/frameworks/react/components/consent-dialog-link.md +88 -35
  306. package/docs/frameworks/react/components/consent-dialog-trigger.md +74 -134
  307. package/docs/frameworks/react/components/consent-dialog.md +170 -135
  308. package/docs/frameworks/react/components/consent-manager-provider.md +57 -256
  309. package/docs/frameworks/react/components/consent-widget.md +154 -118
  310. package/docs/frameworks/react/components/dev-tools.md +198 -33
  311. package/docs/frameworks/react/components/frame.md +120 -42
  312. package/docs/frameworks/react/concepts/consent-categories.md +24 -89
  313. package/docs/frameworks/react/concepts/policy-presets.md +123 -0
  314. package/docs/frameworks/react/headless.md +91 -185
  315. package/docs/frameworks/react/hooks/use-consent-manager/overview.md +39 -153
  316. package/docs/frameworks/react/iab/overview.md +33 -108
  317. package/docs/frameworks/react/quickstart.md +116 -112
  318. package/docs/frameworks/react/script-loader.md +41 -533
  319. package/docs/frameworks/react/styling/overview.md +168 -253
  320. package/docs/frameworks/react/troubleshooting.md +47 -119
  321. package/docs/guides/consent-state.md +60 -0
  322. package/docs/guides/data-fetching.md +163 -0
  323. package/docs/guides/deployment-modes.md +63 -0
  324. package/docs/guides/troubleshooting.md +68 -0
  325. package/docs/guides/verify-consent.md +62 -0
  326. package/docs/integrations/adobe-analytics.md +239 -105
  327. package/docs/integrations/ahrefs-analytics.md +238 -104
  328. package/docs/integrations/amplitude.md +219 -157
  329. package/docs/integrations/building-integrations.md +32 -224
  330. package/docs/integrations/clear-on-revocation.md +167 -0
  331. package/docs/integrations/clearbit.md +247 -86
  332. package/docs/integrations/cloudflare-web-analytics.md +250 -84
  333. package/docs/integrations/crisp.md +251 -97
  334. package/docs/integrations/databuddy.md +259 -153
  335. package/docs/integrations/fathom-analytics.md +239 -96
  336. package/docs/integrations/google-maps.md +328 -207
  337. package/docs/integrations/google-tag-manager.md +248 -96
  338. package/docs/integrations/google-tag.md +261 -90
  339. package/docs/integrations/heap.md +222 -149
  340. package/docs/integrations/hightouch.md +225 -131
  341. package/docs/integrations/hotjar.md +239 -90
  342. package/docs/integrations/intercom.md +239 -98
  343. package/docs/integrations/linkedin-insights.md +243 -113
  344. package/docs/integrations/logrocket.md +241 -123
  345. package/docs/integrations/matomo-analytics.md +256 -111
  346. package/docs/integrations/meta-pixel.md +197 -324
  347. package/docs/integrations/microsoft-clarity.md +233 -114
  348. package/docs/integrations/microsoft-uet.md +245 -110
  349. package/docs/integrations/mixpanel-analytics.md +252 -87
  350. package/docs/integrations/openai-pixel.md +441 -0
  351. package/docs/integrations/overview.md +95 -133
  352. package/docs/integrations/pirsch.md +249 -96
  353. package/docs/integrations/plausible-analytics.md +241 -100
  354. package/docs/integrations/posthog.md +353 -214
  355. package/docs/integrations/promptwatch.md +251 -81
  356. package/docs/integrations/reddit-pixel.md +226 -173
  357. package/docs/integrations/rudderstack.md +244 -187
  358. package/docs/integrations/rybbit-analytics.md +244 -91
  359. package/docs/integrations/segment.md +238 -92
  360. package/docs/integrations/snapchat-pixel.md +240 -110
  361. package/docs/integrations/tiktok-pixel.md +249 -81
  362. package/docs/integrations/umami-analytics.md +242 -95
  363. package/docs/integrations/vercel-analytics.md +242 -90
  364. package/docs/integrations/x-pixel.md +238 -104
  365. package/docs/integrations/youtube.md +354 -142
  366. package/docs/upgrade-v3.md +334 -0
  367. package/iab/styles.css +1 -1
  368. package/iab/styles.tw3.css +1 -1
  369. package/package.json +187 -102
  370. package/readme.json +1 -1
  371. package/src/iab/styles.css +1 -1
  372. package/src/iab/styles.tw3.css +1 -1
  373. package/src/styles.css +1 -1
  374. package/src/styles.tw3.css +1 -1
  375. package/styles.css +1 -1
  376. package/styles.tw3.css +1 -1
  377. package/client/components/consent-banner.js +0 -4
  378. package/client/components/consent-dialog-link.js +0 -3
  379. package/client/components/consent-dialog-trigger.js +0 -3
  380. package/client/components/consent-dialog.js +0 -4
  381. package/client/components/consent-widget.js +0 -4
  382. package/client/components/frame.js +0 -3
  383. package/client/components/integrations.js +0 -3
  384. package/dist/components/consent-banner/atoms/overlay.cjs +0 -1
  385. package/dist/components/consent-banner/atoms/overlay.js +0 -1
  386. package/dist/components/consent-banner/atoms/root.cjs +0 -1
  387. package/dist/components/consent-banner/atoms/root.js +0 -1
  388. package/dist/components/consent-banner/components.cjs +0 -1
  389. package/dist/components/consent-banner/components.js +0 -1
  390. package/dist/components/consent-banner/consent-banner.cjs +0 -1
  391. package/dist/components/consent-banner/consent-banner.js +0 -1
  392. package/dist/components/consent-banner/error-boundary.cjs +0 -1
  393. package/dist/components/consent-banner/error-boundary.js +0 -1
  394. package/dist/components/consent-banner/index.cjs +0 -1
  395. package/dist/components/consent-banner/index.js +0 -1
  396. package/dist/components/consent-banner/policy-actions.cjs +0 -1
  397. package/dist/components/consent-banner/policy-actions.js +0 -1
  398. package/dist/components/consent-dialog/atoms/card.cjs +0 -1
  399. package/dist/components/consent-dialog/atoms/card.js +0 -1
  400. package/dist/components/consent-dialog/atoms/overlay.cjs +0 -1
  401. package/dist/components/consent-dialog/atoms/overlay.js +0 -1
  402. package/dist/components/consent-dialog/atoms/root.cjs +0 -1
  403. package/dist/components/consent-dialog/atoms/root.js +0 -1
  404. package/dist/components/consent-dialog/consent-dialog.cjs +0 -1
  405. package/dist/components/consent-dialog/consent-dialog.js +0 -1
  406. package/dist/components/consent-dialog/index.cjs +0 -1
  407. package/dist/components/consent-dialog/index.js +0 -1
  408. package/dist/components/consent-dialog-link/index.cjs +0 -1
  409. package/dist/components/consent-dialog-trigger/atoms/button.cjs +0 -1
  410. package/dist/components/consent-dialog-trigger/atoms/button.js +0 -1
  411. package/dist/components/consent-dialog-trigger/atoms/icon.cjs +0 -1
  412. package/dist/components/consent-dialog-trigger/atoms/icon.js +0 -1
  413. package/dist/components/consent-dialog-trigger/atoms/root.cjs +0 -1
  414. package/dist/components/consent-dialog-trigger/atoms/root.js +0 -1
  415. package/dist/components/consent-dialog-trigger/atoms/text.cjs +0 -1
  416. package/dist/components/consent-dialog-trigger/atoms/text.js +0 -1
  417. package/dist/components/consent-dialog-trigger/atoms/toolbar.cjs +0 -1
  418. package/dist/components/consent-dialog-trigger/atoms/toolbar.js +0 -1
  419. package/dist/components/consent-dialog-trigger/consent-dialog-trigger-toolbar.cjs +0 -1
  420. package/dist/components/consent-dialog-trigger/consent-dialog-trigger-toolbar.js +0 -1
  421. package/dist/components/consent-dialog-trigger/consent-dialog-trigger.cjs +0 -1
  422. package/dist/components/consent-dialog-trigger/consent-dialog-trigger.js +0 -1
  423. package/dist/components/consent-dialog-trigger/index.cjs +0 -1
  424. package/dist/components/consent-dialog-trigger/index.js +0 -1
  425. package/dist/components/consent-dialog-trigger/types.cjs +0 -1
  426. package/dist/components/consent-dialog-trigger/use-draggable.cjs +0 -1
  427. package/dist/components/consent-dialog-trigger/use-draggable.js +0 -1
  428. package/dist/components/consent-preferences-link/consent-preferences-link.cjs +0 -1
  429. package/dist/components/consent-preferences-link/index.cjs +0 -1
  430. package/dist/components/consent-widget/atoms/accordion.cjs +0 -1
  431. package/dist/components/consent-widget/atoms/accordion.js +0 -1
  432. package/dist/components/consent-widget/atoms/button.cjs +0 -1
  433. package/dist/components/consent-widget/atoms/button.js +0 -1
  434. package/dist/components/consent-widget/atoms/footer.cjs +0 -1
  435. package/dist/components/consent-widget/atoms/footer.js +0 -1
  436. package/dist/components/consent-widget/atoms/root.cjs +0 -1
  437. package/dist/components/consent-widget/atoms/root.js +0 -1
  438. package/dist/components/consent-widget/consent-widget.cjs +0 -1
  439. package/dist/components/consent-widget/consent-widget.js +0 -1
  440. package/dist/components/consent-widget/index.cjs +0 -1
  441. package/dist/components/consent-widget/index.js +0 -1
  442. package/dist/components/consent-widget/policy-actions.cjs +0 -1
  443. package/dist/components/consent-widget/policy-actions.js +0 -1
  444. package/dist/components/consent-widget/types.cjs +0 -1
  445. package/dist/components/frame/atoms.cjs +0 -1
  446. package/dist/components/frame/frame.cjs +0 -1
  447. package/dist/components/frame/index.cjs +0 -1
  448. package/dist/components/frame/types.cjs +0 -1
  449. package/dist/components/iab-consent-banner/atoms/button-group.cjs +0 -1
  450. package/dist/components/iab-consent-banner/atoms/button-group.js +0 -1
  451. package/dist/components/iab-consent-banner/atoms/card.cjs +0 -1
  452. package/dist/components/iab-consent-banner/atoms/card.js +0 -1
  453. package/dist/components/iab-consent-banner/atoms/description.cjs +0 -1
  454. package/dist/components/iab-consent-banner/atoms/description.js +0 -1
  455. package/dist/components/iab-consent-banner/atoms/footer.cjs +0 -1
  456. package/dist/components/iab-consent-banner/atoms/footer.js +0 -1
  457. package/dist/components/iab-consent-banner/atoms/header.cjs +0 -1
  458. package/dist/components/iab-consent-banner/atoms/header.js +0 -1
  459. package/dist/components/iab-consent-banner/atoms/overlay.cjs +0 -1
  460. package/dist/components/iab-consent-banner/atoms/overlay.js +0 -1
  461. package/dist/components/iab-consent-banner/atoms/root.cjs +0 -1
  462. package/dist/components/iab-consent-banner/atoms/root.js +0 -1
  463. package/dist/components/iab-consent-banner/atoms/title.cjs +0 -1
  464. package/dist/components/iab-consent-banner/atoms/title.js +0 -1
  465. package/dist/components/iab-consent-banner/iab-consent-banner.cjs +0 -1
  466. package/dist/components/iab-consent-banner/iab-consent-banner.js +0 -1
  467. package/dist/components/iab-consent-banner/index.cjs +0 -1
  468. package/dist/components/iab-consent-banner/index.js +0 -1
  469. package/dist/components/iab-consent-dialog/atoms/card.cjs +0 -1
  470. package/dist/components/iab-consent-dialog/atoms/card.js +0 -1
  471. package/dist/components/iab-consent-dialog/atoms/content.cjs +0 -1
  472. package/dist/components/iab-consent-dialog/atoms/content.js +0 -1
  473. package/dist/components/iab-consent-dialog/atoms/footer.cjs +0 -1
  474. package/dist/components/iab-consent-dialog/atoms/footer.js +0 -1
  475. package/dist/components/iab-consent-dialog/atoms/header.cjs +0 -1
  476. package/dist/components/iab-consent-dialog/atoms/header.js +0 -1
  477. package/dist/components/iab-consent-dialog/atoms/overlay.cjs +0 -1
  478. package/dist/components/iab-consent-dialog/atoms/overlay.js +0 -1
  479. package/dist/components/iab-consent-dialog/atoms/purpose-item.cjs +0 -1
  480. package/dist/components/iab-consent-dialog/atoms/purpose-item.js +0 -1
  481. package/dist/components/iab-consent-dialog/atoms/root.cjs +0 -1
  482. package/dist/components/iab-consent-dialog/atoms/root.js +0 -1
  483. package/dist/components/iab-consent-dialog/atoms/stack-item.cjs +0 -1
  484. package/dist/components/iab-consent-dialog/atoms/stack-item.js +0 -1
  485. package/dist/components/iab-consent-dialog/atoms/tabs.cjs +0 -1
  486. package/dist/components/iab-consent-dialog/atoms/tabs.js +0 -1
  487. package/dist/components/iab-consent-dialog/atoms/vendor-list.cjs +0 -1
  488. package/dist/components/iab-consent-dialog/atoms/vendor-list.js +0 -1
  489. package/dist/components/iab-consent-dialog/hooks/use-gvl-data.cjs +0 -1
  490. package/dist/components/iab-consent-dialog/hooks/use-gvl-data.js +0 -1
  491. package/dist/components/iab-consent-dialog/iab-consent-dialog.cjs +0 -1
  492. package/dist/components/iab-consent-dialog/iab-consent-dialog.js +0 -1
  493. package/dist/components/iab-consent-dialog/index.cjs +0 -1
  494. package/dist/components/iab-consent-dialog/index.js +0 -1
  495. package/dist/components/iab-consent-dialog/types.cjs +0 -1
  496. package/dist/components/iab-consent-dialog/use-iab-translations.cjs +0 -1
  497. package/dist/components/iab-consent-dialog/use-iab-translations.js +0 -1
  498. package/dist/components/integrations/google-map.cjs +0 -1
  499. package/dist/components/integrations/google-map.js +0 -1
  500. package/dist/components/integrations/index.cjs +0 -1
  501. package/dist/components/integrations/index.js +0 -1
  502. package/dist/components/integrations/shared.cjs +0 -1
  503. package/dist/components/integrations/shared.js +0 -1
  504. package/dist/components/integrations/youtube-embed.cjs +0 -1
  505. package/dist/components/integrations/youtube-embed.js +0 -1
  506. package/dist/components/shared/libs/polymorphic.cjs +0 -1
  507. package/dist/components/shared/libs/recursive-clone-children.cjs +0 -1
  508. package/dist/components/shared/libs/slot.cjs +0 -1
  509. package/dist/components/shared/libs/use-controllable-state.cjs +0 -1
  510. package/dist/components/shared/policy-actions.cjs +0 -1
  511. package/dist/components/shared/primitives/box.cjs +0 -1
  512. package/dist/components/shared/primitives/button.cjs +0 -1
  513. package/dist/components/shared/primitives/button.types.cjs +0 -1
  514. package/dist/components/shared/primitives/legal-links/index.cjs +0 -1
  515. package/dist/components/shared/ui/accordion/accordion.cjs +0 -1
  516. package/dist/components/shared/ui/accordion/accordion.types.cjs +0 -1
  517. package/dist/components/shared/ui/accordion/index.cjs +0 -1
  518. package/dist/components/shared/ui/animated-collapse/animated-collapse.cjs +0 -1
  519. package/dist/components/shared/ui/animated-collapse/index.cjs +0 -1
  520. package/dist/components/shared/ui/branding.cjs +0 -1
  521. package/dist/components/shared/ui/button/button.cjs +0 -1
  522. package/dist/components/shared/ui/button/button.types.cjs +0 -1
  523. package/dist/components/shared/ui/button/index.cjs +0 -1
  524. package/dist/components/shared/ui/collapsible/collapsible.cjs +0 -1
  525. package/dist/components/shared/ui/collapsible/index.cjs +0 -1
  526. package/dist/components/shared/ui/dialog/dialog.cjs +0 -1
  527. package/dist/components/shared/ui/dialog/index.cjs +0 -1
  528. package/dist/components/shared/ui/icon.cjs +0 -1
  529. package/dist/components/shared/ui/logo.cjs +0 -1
  530. package/dist/components/shared/ui/preference-item/index.cjs +0 -1
  531. package/dist/components/shared/ui/preference-item/preference-item.cjs +0 -1
  532. package/dist/components/shared/ui/switch/index.cjs +0 -1
  533. package/dist/components/shared/ui/switch/switch.cjs +0 -1
  534. package/dist/components/shared/ui/switch/switch.types.cjs +0 -1
  535. package/dist/components/shared/ui/tabs/index.cjs +0 -1
  536. package/dist/components/shared/ui/tabs/tabs.cjs +0 -1
  537. package/dist/context/consent-manager-context.cjs +0 -1
  538. package/dist/context/consent-manager-context.js +0 -1
  539. package/dist/context/consent-tracking-context.cjs +0 -1
  540. package/dist/context/theme-context.cjs +0 -1
  541. package/dist/headless.cjs +0 -1
  542. package/dist/hooks/index.cjs +0 -1
  543. package/dist/hooks/index.js +0 -1
  544. package/dist/hooks/use-color-scheme.cjs +0 -1
  545. package/dist/hooks/use-component-config.cjs +0 -1
  546. package/dist/hooks/use-consent-dialog-trigger.cjs +0 -1
  547. package/dist/hooks/use-consent-dialog-trigger.js +0 -1
  548. package/dist/hooks/use-consent-manager.cjs +0 -1
  549. package/dist/hooks/use-consent-manager.js +0 -1
  550. package/dist/hooks/use-consent-script.cjs +0 -1
  551. package/dist/hooks/use-consent-script.js +0 -1
  552. package/dist/hooks/use-focus-trap.cjs +0 -1
  553. package/dist/hooks/use-headless-consent-ui.cjs +0 -1
  554. package/dist/hooks/use-headless-consent-ui.js +0 -1
  555. package/dist/hooks/use-headless-iab-consent-ui.cjs +0 -1
  556. package/dist/hooks/use-reduced-motion.cjs +0 -1
  557. package/dist/hooks/use-scroll-lock.cjs +0 -1
  558. package/dist/hooks/use-ssr-status.cjs +0 -1
  559. package/dist/hooks/use-ssr-status.js +0 -1
  560. package/dist/hooks/use-styles.cjs +0 -1
  561. package/dist/hooks/use-styles.js +0 -1
  562. package/dist/hooks/use-text-direction.cjs +0 -1
  563. package/dist/hooks/use-theme.cjs +0 -1
  564. package/dist/hooks/use-translations.cjs +0 -1
  565. package/dist/hooks/use-translations.js +0 -1
  566. package/dist/iab.cjs +0 -1
  567. package/dist/index.cjs +0 -1
  568. package/dist/primitives/accordion.cjs +0 -1
  569. package/dist/primitives/button.cjs +0 -1
  570. package/dist/primitives/collapsible.cjs +0 -1
  571. package/dist/primitives/dialog.cjs +0 -1
  572. package/dist/primitives/preference-item.cjs +0 -1
  573. package/dist/primitives/switch.cjs +0 -1
  574. package/dist/primitives/tabs.cjs +0 -1
  575. package/dist/primitives.cjs +0 -1
  576. package/dist/providers/consent-manager-provider.cjs +0 -1
  577. package/dist/providers/consent-manager-provider.js +0 -1
  578. package/dist/server/fetch-ssr-data.cjs +0 -1
  579. package/dist/server/headers.cjs +0 -1
  580. package/dist/server/index.cjs +0 -1
  581. package/dist/server/init-cache-key.cjs +0 -1
  582. package/dist/server/normalize-url.cjs +0 -1
  583. package/dist/server/types.cjs +0 -1
  584. package/dist/types/consent-manager.cjs +0 -1
  585. package/dist/types/theme/index.cjs +0 -1
  586. package/dist/types/theme/style-keys.cjs +0 -1
  587. package/dist/types/theme/style-types.cjs +0 -1
  588. package/dist/utils/cn.cjs +0 -1
  589. package/dist/utils/merge-styles.cjs +0 -1
  590. package/dist/utils/test-helpers.cjs +0 -1
  591. package/dist/utils/test-helpers.js +0 -1
  592. package/dist/utils/theme-utils.cjs +0 -1
  593. package/dist/version.cjs +0 -1
  594. package/dist-types/components/consent-banner/atoms/root.d.ts +0 -126
  595. package/dist-types/components/consent-banner/policy-actions.d.ts +0 -11
  596. package/dist-types/components/consent-widget/policy-actions.d.ts +0 -11
  597. package/dist-types/components/iab-consent-dialog/hooks/use-gvl-data.d.ts +0 -27
  598. package/dist-types/components/iab-consent-dialog/types.d.ts +0 -72
  599. package/dist-types/components/integrations/google-map.d.ts +0 -82
  600. package/dist-types/components/integrations/index.d.ts +0 -2
  601. package/dist-types/components/integrations/shared.d.ts +0 -12
  602. package/dist-types/components/integrations/youtube-embed.d.ts +0 -95
  603. package/dist-types/context/consent-manager-context.d.ts +0 -31
  604. package/dist-types/hooks/index.d.ts +0 -12
  605. package/dist-types/hooks/use-consent-dialog-trigger.d.ts +0 -10
  606. package/dist-types/hooks/use-consent-manager.d.ts +0 -27
  607. package/dist-types/hooks/use-consent-script.d.ts +0 -80
  608. package/dist-types/hooks/use-headless-consent-ui.d.ts +0 -46
  609. package/dist-types/hooks/use-ssr-status.d.ts +0 -57
  610. package/dist-types/hooks/use-styles.d.ts +0 -21
  611. package/dist-types/hooks/use-translations.d.ts +0 -28
  612. package/dist-types/providers/consent-manager-provider.d.ts +0 -40
  613. package/dist-types/types/consent-manager.d.ts +0 -39
  614. package/dist-types/types/theme/style-keys.d.ts +0 -1
  615. package/dist-types/utils/test-helpers.d.ts +0 -31
  616. package/docs/frameworks/react/building-headless-components.md +0 -370
  617. package/docs/frameworks/react/callbacks.md +0 -186
  618. package/docs/frameworks/react/concepts/client-modes.md +0 -177
  619. package/docs/frameworks/react/concepts/consent-models.md +0 -113
  620. package/docs/frameworks/react/concepts/cookie-management.md +0 -122
  621. package/docs/frameworks/react/concepts/glossary.md +0 -24
  622. package/docs/frameworks/react/concepts/initialization-flow.md +0 -149
  623. package/docs/frameworks/react/concepts/policy-packs.md +0 -228
  624. package/docs/frameworks/react/hooks/use-color-scheme.md +0 -41
  625. package/docs/frameworks/react/hooks/use-consent-manager/checking-consent.md +0 -96
  626. package/docs/frameworks/react/hooks/use-consent-manager/location-info.md +0 -97
  627. package/docs/frameworks/react/hooks/use-consent-manager/setting-consent.md +0 -94
  628. package/docs/frameworks/react/hooks/use-draggable.md +0 -59
  629. package/docs/frameworks/react/hooks/use-focus-trap.md +0 -42
  630. package/docs/frameworks/react/hooks/use-reduced-motion.md +0 -37
  631. package/docs/frameworks/react/hooks/use-ssr-status.md +0 -32
  632. package/docs/frameworks/react/hooks/use-text-direction.md +0 -50
  633. package/docs/frameworks/react/hooks/use-translations.md +0 -55
  634. package/docs/frameworks/react/iab/consent-banner.md +0 -91
  635. package/docs/frameworks/react/iab/consent-dialog.md +0 -129
  636. package/docs/frameworks/react/iab/use-gvl-data.md +0 -21
  637. package/docs/frameworks/react/iframe-blocking.md +0 -106
  638. package/docs/frameworks/react/internationalization.md +0 -207
  639. package/docs/frameworks/react/network-blocker.md +0 -140
  640. package/docs/frameworks/react/optimization.md +0 -148
  641. package/docs/frameworks/react/policy-packs.md +0 -242
  642. package/docs/frameworks/react/server-side.md +0 -158
  643. package/docs/frameworks/react/styling/classnames.md +0 -94
  644. package/docs/frameworks/react/styling/color-scheme.md +0 -84
  645. package/docs/frameworks/react/styling/css-variables.md +0 -53
  646. package/docs/frameworks/react/styling/slots.md +0 -94
  647. package/docs/frameworks/react/styling/tailwind.md +0 -119
  648. package/docs/frameworks/react/styling/tokens.md +0 -156
  649. package/docs/shared/concepts/client-modes.md +0 -103
  650. package/docs/shared/concepts/consent-categories.md +0 -41
  651. package/docs/shared/concepts/consent-models.md +0 -72
  652. package/docs/shared/concepts/cookie-management.md +0 -88
  653. package/docs/shared/concepts/glossary.md +0 -24
  654. package/docs/shared/concepts/initialization-flow.md +0 -105
  655. package/docs/shared/concepts/policy-packs.md +0 -225
  656. package/docs/shared/react/components/consent-banner.md +0 -242
  657. package/docs/shared/react/components/consent-dialog-link.md +0 -45
  658. package/docs/shared/react/components/consent-dialog-trigger.md +0 -185
  659. package/docs/shared/react/components/consent-dialog.md +0 -119
  660. package/docs/shared/react/components/consent-manager-provider.md +0 -225
  661. package/docs/shared/react/components/consent-widget.md +0 -121
  662. package/docs/shared/react/components/dev-tools.md +0 -81
  663. package/docs/shared/react/components/frame.md +0 -52
  664. package/docs/shared/react/guides/building-headless-components.md +0 -110
  665. package/docs/shared/react/guides/callbacks.md +0 -89
  666. package/docs/shared/react/guides/headless.md +0 -31
  667. package/docs/shared/react/guides/iframe-blocking.md +0 -65
  668. package/docs/shared/react/guides/internationalization.md +0 -123
  669. package/docs/shared/react/guides/network-blocker.md +0 -72
  670. package/docs/shared/react/guides/optimization.md +0 -44
  671. package/docs/shared/react/guides/policy-packs.md +0 -173
  672. package/docs/shared/react/guides/script-loader.md +0 -311
  673. package/docs/shared/react/hooks/use-color-scheme.md +0 -31
  674. package/docs/shared/react/hooks/use-consent-manager/checking-consent.md +0 -95
  675. package/docs/shared/react/hooks/use-consent-manager/location-info.md +0 -96
  676. package/docs/shared/react/hooks/use-consent-manager/overview.md +0 -74
  677. package/docs/shared/react/hooks/use-consent-manager/setting-consent.md +0 -93
  678. package/docs/shared/react/hooks/use-draggable.md +0 -30
  679. package/docs/shared/react/hooks/use-focus-trap.md +0 -20
  680. package/docs/shared/react/hooks/use-reduced-motion.md +0 -33
  681. package/docs/shared/react/hooks/use-ssr-status.md +0 -16
  682. package/docs/shared/react/hooks/use-text-direction.md +0 -38
  683. package/docs/shared/react/hooks/use-translations.md +0 -15
  684. package/docs/shared/react/iab/consent-banner.md +0 -60
  685. package/docs/shared/react/iab/consent-dialog.md +0 -76
  686. package/docs/shared/react/iab/overview.md +0 -80
  687. package/docs/shared/react/iab/use-gvl-data.md +0 -21
  688. package/docs/shared/react/styling/classnames.md +0 -93
  689. package/docs/shared/react/styling/color-scheme.md +0 -35
  690. package/docs/shared/react/styling/css-variables.md +0 -53
  691. package/docs/shared/react/styling/overview.md +0 -261
  692. package/docs/shared/react/styling/slots.md +0 -93
  693. package/docs/shared/react/styling/stylesheet-entrypoint.md +0 -8
  694. package/docs/shared/react/styling/tailwind.md +0 -88
  695. package/docs/shared/react/styling/tokens.md +0 -155
  696. package/docs/shared/troubleshooting.md +0 -82
  697. /package/dist/components/{consent-dialog-trigger → iab-panel}/types.js +0 -0
  698. /package/dist/components/{consent-widget → panel-trigger}/types.js +0 -0
  699. /package/dist/components/{iab-consent-dialog → preferences}/types.js +0 -0
  700. /package/dist/types/{consent-manager.js → manager.js} +0 -0
  701. /package/dist/types/{theme/style-keys.js → slots.js} +0 -0
  702. /package/dist-types/components/{consent-dialog-link → panel-link}/index.d.ts +0 -0
  703. /package/dist-types/components/{consent-widget → preferences}/atoms/button.d.ts +0 -0
  704. /package/dist-types/components/{consent-widget/consent-widget.d.ts → preferences/preferences.d.ts} +0 -0
  705. /package/dist-types/components/{consent-widget → preferences}/types.d.ts +0 -0
@@ -1,7 +1,7 @@
1
- import { type ReactNode } from 'react';
2
- import { type BoxProps } from '../../shared/primitives/box';
1
+ import type { ReactNode } from 'react';
2
+ import type { BoxProps } from '../../shared/primitives/box';
3
3
  import type { InlineLegalLinksProps } from '../../shared/primitives/legal-links';
4
- import { type BrandingVariant } from '../../shared/ui/branding';
4
+ import type { BrandingSlotContext, BrandingVariant } from '../../shared/ui/branding';
5
5
  import type { ClassNameStyle } from '../../../types/theme';
6
6
  declare const ConsentDialogCard: import("react").ForwardRefExoticComponent<{
7
7
  /** The content to be rendered inside the consent dialog card */
@@ -16,7 +16,7 @@ declare const ConsentDialogCard: import("react").ForwardRefExoticComponent<{
16
16
  * - Should be the first child of ConsentDialogCard
17
17
  * - Styled according to the theme configuration
18
18
  */
19
- declare const ConsentDialogHeader: import("react").ForwardRefExoticComponent<Omit<BoxProps, "themeKey"> & import("react").RefAttributes<HTMLDivElement>>;
19
+ declare const ConsentDialogHeader: import("react").ForwardRefExoticComponent<Omit<BoxProps, "slotKey"> & import("react").RefAttributes<HTMLDivElement>>;
20
20
  /**
21
21
  * The title component for the consent dialog header.
22
22
  * Displays the main heading of the consent management interface.
@@ -26,7 +26,7 @@ declare const ConsentDialogHeader: import("react").ForwardRefExoticComponent<Omi
26
26
  * - Should be used within ConsentDialogHeader
27
27
  * - Supports theme customization
28
28
  */
29
- declare const ConsentDialogHeaderTitle: import("react").ForwardRefExoticComponent<Omit<BoxProps, "themeKey"> & import("react").RefAttributes<HTMLDivElement>>;
29
+ declare const ConsentDialogHeaderTitle: import("react").ForwardRefExoticComponent<Omit<BoxProps, "slotKey"> & import("react").RefAttributes<HTMLDivElement>>;
30
30
  /**
31
31
  * The description component for the consent dialog header.
32
32
  * Provides additional context about privacy settings and consent choices.
@@ -37,7 +37,7 @@ declare const ConsentDialogHeaderTitle: import("react").ForwardRefExoticComponen
37
37
  * - Important for explaining privacy choices to users
38
38
  * - Can include legal links inline with the description
39
39
  */
40
- declare const ConsentDialogHeaderDescription: import("react").ForwardRefExoticComponent<Omit<BoxProps, "themeKey"> & {
40
+ declare const ConsentDialogHeaderDescription: import("react").ForwardRefExoticComponent<Omit<BoxProps, "slotKey"> & {
41
41
  legalLinks?: InlineLegalLinksProps['links'];
42
42
  } & import("react").RefAttributes<HTMLDivElement>>;
43
43
  /**
@@ -49,23 +49,23 @@ declare const ConsentDialogHeaderDescription: import("react").ForwardRefExoticCo
49
49
  * - Supports custom content and styling
50
50
  * - Handles user interactions with privacy settings
51
51
  */
52
- declare const ConsentDialogContent: import("react").ForwardRefExoticComponent<Omit<BoxProps, "themeKey"> & import("react").RefAttributes<HTMLDivElement>>;
52
+ declare const ConsentDialogContent: import("react").ForwardRefExoticComponent<Omit<BoxProps, "slotKey"> & import("react").RefAttributes<HTMLDivElement>>;
53
53
  /**
54
54
  * The footer section of the consent dialog.
55
55
  * This contains the branding but can be overidden with a custom footer.
56
56
  */
57
+ export declare const Branding: (props: BrandingProps) => import("react").JSX.Element;
57
58
  declare const ConsentDialogFooter: import("react").ForwardRefExoticComponent<BoxProps & {
58
59
  hideBranding?: boolean;
59
60
  'data-testid'?: string;
60
61
  } & import("react").RefAttributes<HTMLDivElement>>;
61
- type BrandingProps = {
62
+ interface BrandingProps {
62
63
  hideBranding: boolean;
63
64
  variant?: BrandingVariant;
64
- themeKey?: import('../../shared/ui/branding').BrandingThemeKey;
65
+ slotContext?: BrandingSlotContext;
65
66
  className?: string;
66
67
  'data-testid'?: string;
67
- };
68
- export declare function Branding(props: BrandingProps): import("react").JSX.Element;
68
+ }
69
69
  /**
70
70
  * A pre-configured privacy settings card.
71
71
  * Combines all consent dialog components with default content for privacy customization.
@@ -98,12 +98,12 @@ declare const Card: import("react").ForwardRefExoticComponent<{
98
98
  /** The content to be rendered inside the consent dialog card */
99
99
  children?: ReactNode;
100
100
  } & ClassNameStyle<Record<string, string | number>> & import("react").RefAttributes<HTMLDivElement>>;
101
- declare const Header: import("react").ForwardRefExoticComponent<Omit<BoxProps, "themeKey"> & import("react").RefAttributes<HTMLDivElement>>;
102
- declare const HeaderTitle: import("react").ForwardRefExoticComponent<Omit<BoxProps, "themeKey"> & import("react").RefAttributes<HTMLDivElement>>;
103
- declare const HeaderDescription: import("react").ForwardRefExoticComponent<Omit<BoxProps, "themeKey"> & {
101
+ declare const Header: import("react").ForwardRefExoticComponent<Omit<BoxProps, "slotKey"> & import("react").RefAttributes<HTMLDivElement>>;
102
+ declare const HeaderTitle: import("react").ForwardRefExoticComponent<Omit<BoxProps, "slotKey"> & import("react").RefAttributes<HTMLDivElement>>;
103
+ declare const HeaderDescription: import("react").ForwardRefExoticComponent<Omit<BoxProps, "slotKey"> & {
104
104
  legalLinks?: InlineLegalLinksProps['links'];
105
105
  } & import("react").RefAttributes<HTMLDivElement>>;
106
- declare const Content: import("react").ForwardRefExoticComponent<Omit<BoxProps, "themeKey"> & import("react").RefAttributes<HTMLDivElement>>;
106
+ declare const Content: import("react").ForwardRefExoticComponent<Omit<BoxProps, "slotKey"> & import("react").RefAttributes<HTMLDivElement>>;
107
107
  declare const Footer: import("react").ForwardRefExoticComponent<BoxProps & {
108
108
  hideBranding?: boolean;
109
109
  'data-testid'?: string;
@@ -3,7 +3,7 @@
3
3
  * Provides the overlay backdrop component for the consent management interface.
4
4
  * Implements accessible modal behavior with animation support.
5
5
  */
6
- import { type CSSProperties, type HTMLAttributes } from 'react';
6
+ import type { FC, PropsWithChildren } from 'react';
7
7
  import type { ThemeValue } from '../../../types/theme';
8
8
  /**
9
9
  * Props for the Overlay component.
@@ -15,17 +15,25 @@ import type { ThemeValue } from '../../../types/theme';
15
15
  *
16
16
  * @public
17
17
  */
18
- export interface OverlayProps extends Omit<HTMLAttributes<HTMLDivElement>, 'style'> {
18
+ /**
19
+ * Props for the Overlay component.
20
+ *
21
+ * @remarks
22
+ * Extends {@link PropsWithChildren} so that the overlay can optionally wrap
23
+ * its compound components (e.g. `ConsentDialog.Card`). This resolves
24
+ * TypeScript errors when consumers nest elements inside
25
+ * `<ConsentDialog.Root>`.
26
+ */
27
+ export type OverlayProps = PropsWithChildren<{
19
28
  /**
20
29
  * Custom styles to override default overlay styling.
21
30
  *
22
31
  * @remarks
23
- * - Accepts normal React inline styles
24
- * - Also accepts the legacy string class name or object with className and style properties
32
+ * - Can be a string class name or an object with className and style properties
25
33
  * - Styles are merged with theme styles and default styles
26
34
  * - Useful for customizing overlay appearance while maintaining functionality
27
35
  */
28
- style?: CSSProperties | ThemeValue;
36
+ style?: ThemeValue;
29
37
  /**
30
38
  * Disables default styling when true.
31
39
  *
@@ -35,7 +43,15 @@ export interface OverlayProps extends Omit<HTMLAttributes<HTMLDivElement>, 'styl
35
43
  * - Maintains functionality without visual opinions
36
44
  */
37
45
  noStyle?: boolean;
38
- }
39
- declare const ConsentDialogOverlay: import("react").ForwardRefExoticComponent<OverlayProps & import("react").RefAttributes<HTMLDivElement>>;
40
- declare const Overlay: import("react").ForwardRefExoticComponent<OverlayProps & import("react").RefAttributes<HTMLDivElement>>;
46
+ /**
47
+ * Whether the dialog the overlay backs is open.
48
+ *
49
+ * `ConsentDialog.Root` passes its own open state, so a dialog opened
50
+ * through the `open` prop rather than the consent manager still fades
51
+ * its backdrop in. Falls back to the manager's active surface.
52
+ */
53
+ open?: boolean;
54
+ }>;
55
+ declare const ConsentDialogOverlay: FC<OverlayProps>;
56
+ declare const Overlay: FC<OverlayProps>;
41
57
  export { ConsentDialogOverlay, Overlay };
@@ -1,10 +1,11 @@
1
+ import type * as C15tCoreTypes from '@c15t/core';
1
2
  import type { FC, HTMLAttributes, ReactNode } from 'react';
2
3
  /**
3
4
  * Props for the root component of the ConsentDialog.
4
5
  *
5
6
  * @public
6
7
  */
7
- export interface ConsentDialogRootProps extends HTMLAttributes<HTMLDialogElement> {
8
+ export interface ConsentDialogRootProps extends HTMLAttributes<HTMLDivElement> {
8
9
  /**
9
10
  * React children that will be rendered inside the dialog container.
10
11
  * Typically this includes `ConsentDialog.Card` and its sub-components.
@@ -17,9 +18,9 @@ export interface ConsentDialogRootProps extends HTMLAttributes<HTMLDialogElement
17
18
  open?: boolean;
18
19
  /**
19
20
  * Which consent models this dialog responds to.
20
- * @default ['opt-in', 'opt-out']
21
+ * @default ['opt-in', 'opt-out', 'none']
21
22
  */
22
- models?: import('c15t').Model[];
23
+ models?: C15tCoreTypes.Model[];
23
24
  /**
24
25
  * When true, the component will not apply any internal styles.
25
26
  */
@@ -10,7 +10,7 @@ import type { FC } from 'react';
10
10
  import { Card, ConsentCustomizationCard, ConsentDialogContent, ConsentDialogFooter, ConsentDialogHeader, ConsentDialogHeaderDescription, ConsentDialogHeaderTitle, Content, Footer, Header, HeaderDescription, HeaderTitle } from './atoms/card';
11
11
  import { Overlay } from './atoms/overlay';
12
12
  import { Root } from './atoms/root';
13
- import { type ConsentDialogProps } from './consent-dialog';
13
+ import type { ConsentDialogProps } from './panel';
14
14
  export type { ConsentDialogProps };
15
15
  /**
16
16
  * This interface extends the base ConsentDialog component with additional sub-components
@@ -55,19 +55,24 @@ export interface ConsentDialogCompoundComponent extends FC<ConsentDialogProps> {
55
55
  * @example
56
56
  * Preferred customization with stock structure:
57
57
  * ```tsx
58
- * <ConsentManagerProvider
58
+ * <ConsentProvider
59
59
  * options={{
60
- * theme: {
61
- * slots: {
62
- * consentDialogCard: 'rounded-3xl shadow-xl',
63
- * consentWidgetFooter: 'gap-3 pt-6',
64
- * consentDialogTag: 'shadow-none',
60
+ * mode: hosted({ url: '/api/c15t' }),
61
+ * components: {
62
+ * dialog: {
63
+ * card: { className: 'rounded-3xl shadow-xl' },
64
+ * },
65
+ * manager: {
66
+ * footer: { className: 'gap-3 pt-6' },
67
+ * },
68
+ * tag: {
69
+ * dialog: { className: 'shadow-none' },
65
70
  * },
66
71
  * },
67
72
  * }}
68
73
  * >
69
74
  * <ConsentDialog hideBranding showTrigger />
70
- * </ConsentManagerProvider>
75
+ * </ConsentProvider>
71
76
  * ```
72
77
  *
73
78
  * @example
@@ -1,3 +1,4 @@
1
+ import type * as C15tCoreTypes from '@c15t/core';
1
2
  /**
2
3
  * @packageDocumentation
3
4
  * Default implementation of the Consent Dialog that ships with c15t.
@@ -7,7 +8,7 @@
7
8
  * prefer a one-line `<ConsentDialog />` usage still have it.
8
9
  */
9
10
  import type { FC } from 'react';
10
- import { type ConsentDialogTriggerProps } from '../consent-dialog-trigger';
11
+ import type { ConsentDialogTriggerProps } from '../panel-trigger';
11
12
  import type { InlineLegalLinksProps } from '../shared/primitives/legal-links';
12
13
  /**
13
14
  * Props for the `<ConsentDialog />` convenience component.
@@ -15,7 +16,7 @@ import type { InlineLegalLinksProps } from '../shared/primitives/legal-links';
15
16
  export interface ConsentDialogProps {
16
17
  /**
17
18
  * Theme configuration override (deprecated)
18
- * @deprecated Theme should be set on the ConsentManagerProvider
19
+ * @deprecated Theme should be set on the ConsentProvider
19
20
  */
20
21
  theme?: never;
21
22
  /**
@@ -61,7 +62,7 @@ export interface ConsentDialogProps {
61
62
  * ```
62
63
  *
63
64
  * @remarks
64
- * You must set the legal links in the ConsentManagerProvider options.
65
+ * You must set the legal links in the ConsentProvider options.
65
66
  */
66
67
  legalLinks?: InlineLegalLinksProps['links'];
67
68
  /**
@@ -83,9 +84,9 @@ export interface ConsentDialogProps {
83
84
  showTrigger?: boolean | ConsentDialogTriggerProps;
84
85
  /**
85
86
  * Which consent models this dialog responds to.
86
- * @default ['opt-in', 'opt-out']
87
+ * @default ['opt-in', 'opt-out', 'none']
87
88
  */
88
- models?: import('c15t').Model[];
89
+ models?: C15tCoreTypes.Model[];
89
90
  /**
90
91
  * Override the UI source identifier sent with consent API calls.
91
92
  * @default 'dialog'
@@ -1,4 +1,4 @@
1
- import { type ReactNode } from 'react';
1
+ import type { ReactNode } from 'react';
2
2
  import type { TriggerSize } from '../types';
3
3
  /**
4
4
  * Props for the Button component.
@@ -24,6 +24,7 @@ export interface TriggerButtonProps {
24
24
  * @default false
25
25
  */
26
26
  noStyle?: boolean;
27
+ 'data-testid'?: string;
27
28
  }
28
29
  /**
29
30
  * The clickable button element for the trigger.
@@ -1,4 +1,4 @@
1
- import { type ReactNode } from 'react';
1
+ import type { ReactNode } from 'react';
2
2
  import type { TriggerIcon as TriggerIconType } from '../types';
3
3
  /**
4
4
  * Props for the Icon component.
@@ -24,21 +24,6 @@ export interface TriggerIconProps {
24
24
  */
25
25
  noStyle?: boolean;
26
26
  }
27
- /**
28
- * Icon component that renders the appropriate icon based on branding.
29
- *
30
- * @example
31
- * ```tsx
32
- * // Default branding icon
33
- * <ConsentDialogTrigger.Icon />
34
- *
35
- * // Fingerprint icon
36
- * <ConsentDialogTrigger.Icon icon="fingerprint" />
37
- *
38
- * // Custom icon
39
- * <ConsentDialogTrigger.Icon icon={<MyCustomIcon />} />
40
- * ```
41
- */
42
27
  export declare function TriggerIcon({ icon, className, noStyle, }: TriggerIconProps): ReactNode;
43
28
  export declare namespace TriggerIcon {
44
29
  var displayName: string;
@@ -1,12 +1,6 @@
1
- /**
2
- * Root component for the ConsentDialogTrigger compound component.
3
- * Provides context and handles portal rendering.
4
- *
5
- * @packageDocumentation
6
- */
7
- import { type ReactNode } from 'react';
1
+ import type { ReactNode } from 'react';
8
2
  import type { CornerPosition, TriggerVisibility } from '../types';
9
- import { type UseDraggableReturn } from '../use-draggable';
3
+ import type { UseDraggableReturn } from '../use-draggable';
10
4
  /**
11
5
  * Context value for the ConsentDialogTrigger compound component.
12
6
  */
@@ -35,7 +29,7 @@ declare const TriggerContext: import("react").Context<TriggerContextValue | null
35
29
  * Hook to access the trigger context.
36
30
  * Must be used within a ConsentDialogTrigger.Root component.
37
31
  */
38
- export declare function useTriggerContext(): TriggerContextValue;
32
+ export declare const useTriggerContext: () => TriggerContextValue;
39
33
  /**
40
34
  * Props for the Root component.
41
35
  */
@@ -53,9 +47,15 @@ export interface TriggerRootProps {
53
47
  persistPosition?: boolean;
54
48
  /**
55
49
  * Controls when the trigger is visible.
56
- * @default 'after-consent'
50
+ * @default 'always'
57
51
  */
58
52
  showWhen?: TriggerVisibility;
53
+ /**
54
+ * Replaces the `showWhen` calculation with a host-computed value. The
55
+ * toolbar uses it so app-owned actions stay mounted while only the
56
+ * built-in preferences action follows the prompt state.
57
+ */
58
+ visible?: boolean;
59
59
  /**
60
60
  * Callback when position changes.
61
61
  */
@@ -65,19 +65,7 @@ export interface TriggerRootProps {
65
65
  */
66
66
  onClick?: () => void;
67
67
  }
68
- /**
69
- * Root component that provides context and handles positioning.
70
- *
71
- * @example
72
- * ```tsx
73
- * <ConsentDialogTrigger.Root>
74
- * <ConsentDialogTrigger.Button>
75
- * <ConsentDialogTrigger.Icon />
76
- * </ConsentDialogTrigger.Button>
77
- * </ConsentDialogTrigger.Root>
78
- * ```
79
- */
80
- export declare function TriggerRoot({ children, defaultPosition, persistPosition: shouldPersist, showWhen, onPositionChange, onClick, }: TriggerRootProps): ReactNode;
68
+ export declare function TriggerRoot({ children, defaultPosition, persistPosition: shouldPersist, showWhen, visible, onPositionChange, onClick, }: TriggerRootProps): ReactNode;
81
69
  export declare namespace TriggerRoot {
82
70
  var displayName: string;
83
71
  }
@@ -14,17 +14,6 @@ export interface TriggerTextProps {
14
14
  */
15
15
  noStyle?: boolean;
16
16
  }
17
- /**
18
- * Text component for adding labels to the trigger button.
19
- *
20
- * @example
21
- * ```tsx
22
- * <ConsentDialogTrigger.Button>
23
- * <ConsentDialogTrigger.Icon />
24
- * <ConsentDialogTrigger.Text>Privacy Settings</ConsentDialogTrigger.Text>
25
- * </ConsentDialogTrigger.Button>
26
- * ```
27
- */
28
17
  export declare function TriggerText({ children, className, noStyle, }: TriggerTextProps): ReactNode;
29
18
  export declare namespace TriggerText {
30
19
  var displayName: string;
@@ -1,6 +1,14 @@
1
+ /**
2
+ * Internal toolbar view for ConsentDialogTriggerToolbar.
3
+ *
4
+ * @packageDocumentation
5
+ */
6
+ import type { PolicyRight } from '@c15t/schema/types';
1
7
  import type { ReactNode } from 'react';
2
8
  import type { ClassNameStyle } from '../../../types/theme';
3
9
  import type { ConsentDialogTriggerToolbarAction, ConsentDialogTriggerToolbarPreferences, TriggerOrientation, TriggerSize } from '../types';
10
+ /** Right the built-in action stands for; opt-out wins when the rule carries it. */
11
+ export type ToolbarPreferencesRight = Extract<PolicyRight, 'opt-out' | 'preferences'>;
4
12
  export interface TriggerToolbarProps extends Omit<ClassNameStyle, 'baseClassName'> {
5
13
  /** App-owned actions rendered alongside the preferences action. */
6
14
  actions: readonly ConsentDialogTriggerToolbarAction[];
@@ -12,11 +20,14 @@ export interface TriggerToolbarProps extends Omit<ClassNameStyle, 'baseClassName
12
20
  orientation?: TriggerOrientation;
13
21
  /** Accessible name for the toolbar group. @default 'Privacy controls' */
14
22
  ariaLabel?: string;
23
+ /**
24
+ * Whether the built-in preferences action is rendered. App-owned
25
+ * actions render regardless.
26
+ * @default true
27
+ */
28
+ showPreferences?: boolean;
15
29
  }
16
- /**
17
- * A draggable group of app-owned actions and one built-in preferences action.
18
- */
19
- export declare function TriggerToolbar({ actions, preferences, size, orientation, ariaLabel, className, style, noStyle, }: TriggerToolbarProps): ReactNode;
30
+ export declare function TriggerToolbar({ actions, preferences, size, orientation, ariaLabel, showPreferences, className, style, noStyle, }: TriggerToolbarProps): ReactNode;
20
31
  export declare namespace TriggerToolbar {
21
32
  var displayName: string;
22
33
  }
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * @packageDocumentation
5
5
  */
6
- export { ConsentDialogTrigger, type ConsentDialogTriggerCompound, TriggerButton, type TriggerButtonProps, TriggerIcon, type TriggerIconProps, TriggerRoot, type TriggerRootProps, TriggerText, type TriggerTextProps, useTriggerContext, } from './consent-dialog-trigger';
7
- export { ConsentDialogTriggerToolbar } from './consent-dialog-trigger-toolbar';
6
+ export { ConsentDialogTrigger, type ConsentDialogTriggerCompound, TriggerButton, type TriggerButtonProps, TriggerIcon, type TriggerIconProps, TriggerRoot, type TriggerRootProps, TriggerText, type TriggerTextProps, useTriggerContext, } from './panel-trigger';
7
+ export { ConsentDialogTriggerToolbar } from './panel-trigger-toolbar';
8
8
  export type { ConsentDialogTriggerProps, ConsentDialogTriggerToolbarAction, ConsentDialogTriggerToolbarPreferences, ConsentDialogTriggerToolbarProps, CornerPosition, TriggerIcon as TriggerIconType, TriggerOrientation, TriggerSize, TriggerVisibility, } from './types';
9
9
  export { type UseDraggableOptions, type UseDraggableReturn, useDraggable, } from './use-draggable';
@@ -6,29 +6,6 @@
6
6
  */
7
7
  import type { ReactNode } from 'react';
8
8
  import type { ConsentDialogTriggerToolbarProps } from './types';
9
- /**
10
- * A draggable toolbar that always includes one action for opening consent
11
- * preferences and can include app-owned actions such as theme or support
12
- * controls.
13
- *
14
- * @example
15
- * ```tsx
16
- * <ConsentDialogTriggerToolbar
17
- * ariaLabel="Website controls"
18
- * actions={[
19
- * {
20
- * id: 'theme',
21
- * label: 'Switch to dark theme',
22
- * icon: <MoonIcon />,
23
- * pressed: isDark,
24
- * onSelect: toggleTheme,
25
- * },
26
- * ]}
27
- * />
28
- * ```
29
- *
30
- * @returns The toolbar portal, or `null` while hidden or server-rendered.
31
- */
32
9
  export declare function ConsentDialogTriggerToolbar({ actions, preferences, orientation, defaultPosition, persistPosition, ariaLabel, showWhen, size, className, style, noStyle, onPositionChange, }: ConsentDialogTriggerToolbarProps): ReactNode;
33
10
  export declare namespace ConsentDialogTriggerToolbar {
34
11
  var displayName: string;
@@ -7,10 +7,14 @@
7
7
  * @packageDocumentation
8
8
  */
9
9
  import type { FC } from 'react';
10
- import { TriggerButton, type TriggerButtonProps } from './atoms/button';
11
- import { TriggerIcon, type TriggerIconProps } from './atoms/icon';
12
- import { TriggerRoot, type TriggerRootProps, useTriggerContext } from './atoms/root';
13
- import { TriggerText, type TriggerTextProps } from './atoms/text';
10
+ import { TriggerButton } from './atoms/button';
11
+ import type { TriggerButtonProps } from './atoms/button';
12
+ import { TriggerIcon } from './atoms/icon';
13
+ import type { TriggerIconProps } from './atoms/icon';
14
+ import { TriggerRoot, useTriggerContext } from './atoms/root';
15
+ import type { TriggerRootProps } from './atoms/root';
16
+ import { TriggerText } from './atoms/text';
17
+ import type { TriggerTextProps } from './atoms/text';
14
18
  import type { ConsentDialogTriggerProps } from './types';
15
19
  /**
16
20
  * Compound component interface for ConsentDialogTrigger.
@@ -18,11 +18,13 @@ export type TriggerIcon = 'branding' | 'fingerprint' | 'settings' | ReactNode;
18
18
  /**
19
19
  * Visibility options for when to show a trigger.
20
20
  *
21
- * - `'always'` - Always visible
22
- * - `'after-consent'` - Only visible after user has made a consent choice
21
+ * - `'always'` - Visible whenever the preference center is closed
22
+ * - `'after-prompt'` - Visible only once no prompt is owed: after a choice
23
+ * is saved or a notice is dismissed, and hidden again while a policy
24
+ * change asks for a new answer
23
25
  * - `'never'` - Never visible (useful for programmatic control)
24
26
  */
25
- export type TriggerVisibility = 'always' | 'after-consent' | 'never';
27
+ export type TriggerVisibility = 'always' | 'after-prompt' | 'never';
26
28
  /**
27
29
  * Size options for trigger controls.
28
30
  */
@@ -119,7 +121,10 @@ export interface ConsentDialogTriggerToolbarPreferences {
119
121
  /**
120
122
  * Accessible name announced for the preferences button.
121
123
  *
122
- * @default 'Open privacy settings'
124
+ * Defaults to the active rule's rights: the translated opt-out label
125
+ * ("Do not sell or share my data") when the rule
126
+ * carries the `opt-out` right, otherwise the translated preferences
127
+ * label ("Manage preferences").
123
128
  */
124
129
  label?: string;
125
130
  /**
@@ -146,8 +151,8 @@ export interface ConsentDialogTriggerToolbarProps extends Omit<ClassNameStyle, '
146
151
  */
147
152
  actions?: readonly ConsentDialogTriggerToolbarAction[];
148
153
  /**
149
- * Customization for the built-in preferences action. The toolbar always
150
- * renders exactly one preferences action.
154
+ * Customization for the built-in preferences action. The toolbar renders
155
+ * at most one preferences action; `showWhen` decides whether it is shown.
151
156
  */
152
157
  preferences?: ConsentDialogTriggerToolbarPreferences;
153
158
  /**
@@ -175,7 +180,11 @@ export interface ConsentDialogTriggerToolbarProps extends Omit<ClassNameStyle, '
175
180
  */
176
181
  ariaLabel?: string;
177
182
  /**
178
- * Controls when the toolbar is visible.
183
+ * Controls when the built-in preferences action is visible. App-owned
184
+ * `actions` always render, so a theme toggle stays available while a
185
+ * prompt is owed; `after-prompt` hides only the preferences action until
186
+ * the visitor has answered, and `never` omits it. The toolbar renders
187
+ * nothing only when it has no visible item.
179
188
  *
180
189
  * @default 'always'
181
190
  */
@@ -1,11 +1,4 @@
1
- /**
2
- * React hook for drag-to-corner functionality.
3
- *
4
- * Wraps the framework-agnostic utilities from @c15t/ui with React state management.
5
- *
6
- * @packageDocumentation
7
- */
8
- import { type CornerPosition } from '@c15t/ui/utils/trigger-utils';
1
+ import type { CornerPosition } from '@c15t/ui/utils/trigger-utils';
9
2
  /**
10
3
  * Options for the useDraggable hook.
11
4
  */
@@ -73,4 +66,4 @@ export interface UseDraggableReturn {
73
66
  * }
74
67
  * ```
75
68
  */
76
- export declare function useDraggable(options?: UseDraggableOptions): UseDraggableReturn;
69
+ export declare const useDraggable: (options?: UseDraggableOptions) => UseDraggableReturn;
@@ -1,5 +1,5 @@
1
- import { type ReactNode } from 'react';
2
- import { type BoxProps } from '../../shared/primitives/box';
1
+ import type { ReactNode } from 'react';
2
+ import type { BoxProps } from '../../shared/primitives/box';
3
3
  import * as PreferenceItem from '../../shared/ui/preference-item';
4
4
  import * as RadixSwitch from '../../shared/ui/switch';
5
5
  declare const ConsentWidgetAccordionTrigger: import("react").ForwardRefExoticComponent<BoxProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -7,7 +7,7 @@ declare const ConsentWidgetAccordionTriggerInner: import("react").ForwardRefExot
7
7
  declare const ConsentWidgetAccordionContent: import("react").ForwardRefExoticComponent<PreferenceItem.PreferenceItemContentProps & import("react").RefAttributes<HTMLDivElement>>;
8
8
  declare const ConsentWidgetAccordionArrow: import("react").ForwardRefExoticComponent<PreferenceItem.PreferenceItemSlotProps & import("react").RefAttributes<HTMLDivElement>>;
9
9
  declare const ConsentWidgetSwitch: import("react").ForwardRefExoticComponent<RadixSwitch.SwitchProps & import("react").RefAttributes<HTMLButtonElement>>;
10
- type ConsentWidgetAccordionProps = Omit<BoxProps, 'themeKey'> & {
10
+ type ConsentWidgetAccordionProps = Omit<BoxProps, 'slotKey'> & {
11
11
  'data-testid'?: string;
12
12
  children: ReactNode;
13
13
  onValueChange?: (value: string | string[]) => void;
@@ -21,8 +21,8 @@ declare const AccordionTriggerInner: import("react").ForwardRefExoticComponent<P
21
21
  declare const AccordionTrigger: import("react").ForwardRefExoticComponent<BoxProps & import("react").RefAttributes<HTMLDivElement>>;
22
22
  declare const AccordionContent: import("react").ForwardRefExoticComponent<PreferenceItem.PreferenceItemContentProps & import("react").RefAttributes<HTMLDivElement>>;
23
23
  declare const AccordionArrow: import("react").ForwardRefExoticComponent<PreferenceItem.PreferenceItemSlotProps & import("react").RefAttributes<HTMLDivElement>>;
24
- declare const Accordion: ({ 'data-testid': dataTestId, children, className, noStyle, onValueChange, style, type, value, ...props }: ConsentWidgetAccordionProps) => import("react").JSX.Element;
24
+ declare const Accordion: typeof ConsentWidgetAccordion;
25
25
  declare const Switch: import("react").ForwardRefExoticComponent<RadixSwitch.SwitchProps & import("react").RefAttributes<HTMLButtonElement>>;
26
- declare const AccordionItems: () => import("react").JSX.Element[];
26
+ declare const AccordionItems: typeof ConsentWidgetAccordionItems;
27
27
  declare const AccordionItem: import("react").ForwardRefExoticComponent<Omit<PreferenceItem.PreferenceItemRootProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
28
28
  export { Accordion, AccordionArrow, AccordionContent, AccordionItem, AccordionItems, AccordionTrigger, AccordionTriggerInner, ConsentWidgetAccordion, ConsentWidgetAccordionArrow, ConsentWidgetAccordionContent, ConsentWidgetAccordionItem, ConsentWidgetAccordionItems, ConsentWidgetAccordionTrigger, ConsentWidgetAccordionTriggerInner, ConsentWidgetSwitch, Switch, };
@@ -1,4 +1,4 @@
1
- import { type BoxProps } from '../../shared/primitives/box';
1
+ import type { BoxProps } from '../../shared/primitives/box';
2
2
  /**
3
3
  * Footer component for consent management actions.
4
4
  *
@@ -7,8 +7,8 @@ import { type BoxProps } from '../../shared/primitives/box';
7
7
  * - Supports customization through theme
8
8
  * - Maintains consistent layout
9
9
  */
10
- export declare const ConsentWidgetFooter: import("react").ForwardRefExoticComponent<Omit<BoxProps, "themeKey"> & import("react").RefAttributes<HTMLDivElement>>;
10
+ export declare const ConsentWidgetFooter: import("react").ForwardRefExoticComponent<Omit<BoxProps, "slotKey"> & import("react").RefAttributes<HTMLDivElement>>;
11
11
  export declare const ConsentWidgetFooterSubGroup: import("react").ForwardRefExoticComponent<BoxProps & import("react").RefAttributes<HTMLDivElement>>;
12
- declare const Footer: import("react").ForwardRefExoticComponent<Omit<BoxProps, "themeKey"> & import("react").RefAttributes<HTMLDivElement>>;
12
+ declare const Footer: import("react").ForwardRefExoticComponent<Omit<BoxProps, "slotKey"> & import("react").RefAttributes<HTMLDivElement>>;
13
13
  declare const FooterSubGroup: import("react").ForwardRefExoticComponent<BoxProps & import("react").RefAttributes<HTMLDivElement>>;
14
14
  export { Footer, FooterSubGroup };
@@ -1,5 +1,5 @@
1
1
  import type { FC, ReactNode } from 'react';
2
- import { type ThemeContextValue } from '../../../context/theme-context';
2
+ import type { ThemeContextValue } from '../../../context/theme-context';
3
3
  /**
4
4
  * Props for the ConsentWidgetRoot component.
5
5
  *
@@ -61,21 +61,23 @@ export interface ConsentWidgetCompoundComponent extends FC<ConsentWidgetProps> {
61
61
  * ```
62
62
  *
63
63
  * @example
64
- * Preferred stock customization with theme slots:
64
+ * Preferred stock customization with component slots:
65
65
  * ```tsx
66
- * <ConsentManagerProvider
66
+ * <ConsentProvider
67
67
  * options={{
68
- * theme: {
69
- * slots: {
70
- * consentWidgetAccordion: 'rounded-3xl border border-black/10',
71
- * consentWidgetFooter: 'border-t border-black/10',
72
- * consentWidgetFooterSubGroup: 'gap-3',
68
+ * mode: hosted({ url: '/api/c15t' }),
69
+ * components: {
70
+ * accordion: {
71
+ * root: { className: 'rounded-3xl border border-black/10' },
72
+ * },
73
+ * manager: {
74
+ * footer: { className: 'border-t border-black/10' },
73
75
  * },
74
76
  * },
75
77
  * }}
76
78
  * >
77
79
  * <ConsentWidget hideBranding />
78
- * </ConsentManagerProvider>
80
+ * </ConsentProvider>
79
81
  * ```
80
82
  *
81
83
  * @example
@@ -95,6 +97,6 @@ export default ConsentWidget;
95
97
  export { Accordion, AccordionArrow, AccordionContent, AccordionItem, AccordionItems, AccordionTrigger, AccordionTriggerInner, ConsentWidgetAccordion, ConsentWidgetAccordionArrow, ConsentWidgetAccordionContent, ConsentWidgetAccordionItem, ConsentWidgetAccordionItems, ConsentWidgetAccordionTrigger, ConsentWidgetAccordionTriggerInner, ConsentWidgetSwitch, Switch, } from './atoms/accordion';
96
98
  export { AcceptAllButton, ConsentWidgetAcceptAllButton, ConsentWidgetCustomizeButton, ConsentWidgetRejectButton, ConsentWidgetSaveButton, CustomizeButton, RejectButton, SaveButton, } from './atoms/button';
97
99
  export { ConsentWidgetFooter, ConsentWidgetFooterSubGroup, Footer, FooterSubGroup, } from './atoms/footer';
98
- export { ConsentWidgetRoot, Root, } from './atoms/root';
100
+ export { ConsentWidgetRoot, Root } from './atoms/root';
99
101
  export { type ConsentWidgetPolicyActionRenderProps, ConsentWidgetPolicyActions, type ConsentWidgetPolicyActionsProps, PolicyActions, } from './policy-actions';
100
102
  export { ConsentWidget };