@c15t/react 2.0.0-rc.1 → 2.0.0-rc.12

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 (715) hide show
  1. package/README.md +12 -3
  2. package/client/components/consent-banner.js +4 -0
  3. package/client/components/consent-dialog-link.js +3 -0
  4. package/client/components/consent-dialog-trigger.js +3 -0
  5. package/client/components/consent-dialog.js +4 -0
  6. package/client/components/consent-widget.js +4 -0
  7. package/client/components/frame.js +3 -0
  8. package/dist/components/consent-banner/atoms/overlay.cjs +1 -1
  9. package/dist/components/consent-banner/atoms/overlay.js +1 -1
  10. package/dist/components/consent-banner/atoms/root.cjs +1 -1
  11. package/dist/components/consent-banner/atoms/root.js +1 -1
  12. package/dist/components/consent-banner/components.cjs +1 -1
  13. package/dist/components/consent-banner/components.js +1 -1
  14. package/dist/components/consent-banner/consent-banner.cjs +1 -1
  15. package/dist/components/consent-banner/consent-banner.js +1 -1
  16. package/dist/components/consent-banner/error-boundary.cjs +1 -1
  17. package/dist/components/consent-banner/index.cjs +1 -1
  18. package/dist/components/consent-banner/index.js +1 -1
  19. package/dist/components/consent-banner/policy-actions.cjs +1 -0
  20. package/dist/components/consent-banner/policy-actions.js +1 -0
  21. package/dist/components/consent-dialog/atoms/card.cjs +1 -1
  22. package/dist/components/consent-dialog/atoms/card.js +1 -1
  23. package/dist/components/consent-dialog/atoms/overlay.cjs +1 -1
  24. package/dist/components/consent-dialog/atoms/overlay.js +1 -1
  25. package/dist/components/consent-dialog/atoms/root.cjs +1 -1
  26. package/dist/components/consent-dialog/atoms/root.js +1 -1
  27. package/dist/components/consent-dialog/consent-dialog.cjs +1 -1
  28. package/dist/components/consent-dialog/consent-dialog.js +1 -1
  29. package/dist/components/consent-dialog/index.cjs +1 -1
  30. package/dist/components/consent-dialog/index.js +1 -1
  31. package/dist/components/consent-dialog-link/index.cjs +1 -0
  32. package/dist/components/consent-dialog-link/index.js +1 -0
  33. package/dist/components/consent-dialog-trigger/atoms/button.cjs +1 -1
  34. package/dist/components/consent-dialog-trigger/atoms/button.js +1 -1
  35. package/dist/components/consent-dialog-trigger/atoms/icon.cjs +1 -1
  36. package/dist/components/consent-dialog-trigger/atoms/icon.js +1 -1
  37. package/dist/components/consent-dialog-trigger/atoms/root.cjs +1 -1
  38. package/dist/components/consent-dialog-trigger/atoms/root.js +1 -1
  39. package/dist/components/consent-dialog-trigger/atoms/text.cjs +1 -1
  40. package/dist/components/consent-dialog-trigger/atoms/text.js +1 -1
  41. package/dist/components/consent-dialog-trigger/consent-dialog-trigger.cjs +1 -1
  42. package/dist/components/consent-dialog-trigger/consent-dialog-trigger.js +1 -1
  43. package/dist/components/consent-dialog-trigger/index.cjs +1 -1
  44. package/dist/components/consent-dialog-trigger/index.js +1 -1
  45. package/dist/components/consent-dialog-trigger/types.cjs +1 -1
  46. package/dist/components/consent-dialog-trigger/use-draggable.cjs +1 -1
  47. package/dist/components/consent-dialog-trigger/use-draggable.js +1 -1
  48. package/dist/components/consent-preferences-link/consent-preferences-link.cjs +1 -0
  49. package/dist/components/consent-preferences-link/consent-preferences-link.js +1 -0
  50. package/dist/components/consent-preferences-link/index.cjs +1 -0
  51. package/dist/components/consent-preferences-link/index.js +1 -0
  52. package/dist/components/consent-widget/atoms/accordion.cjs +1 -1
  53. package/dist/components/consent-widget/atoms/accordion.js +1 -1
  54. package/dist/components/consent-widget/atoms/button.cjs +1 -1
  55. package/dist/components/consent-widget/atoms/button.js +1 -1
  56. package/dist/components/consent-widget/atoms/footer.cjs +1 -1
  57. package/dist/components/consent-widget/atoms/footer.js +1 -1
  58. package/dist/components/consent-widget/atoms/root.cjs +1 -1
  59. package/dist/components/consent-widget/atoms/root.js +1 -1
  60. package/dist/components/consent-widget/consent-widget.cjs +1 -1
  61. package/dist/components/consent-widget/consent-widget.js +1 -1
  62. package/dist/components/consent-widget/index.cjs +1 -1
  63. package/dist/components/consent-widget/index.js +1 -1
  64. package/dist/components/consent-widget/policy-actions.cjs +1 -0
  65. package/dist/components/consent-widget/policy-actions.js +1 -0
  66. package/dist/components/consent-widget/types.cjs +1 -1
  67. package/dist/components/frame/atoms.cjs +1 -1
  68. package/dist/components/frame/atoms.js +1 -1
  69. package/dist/components/frame/frame.cjs +1 -1
  70. package/dist/components/frame/frame.js +1 -1
  71. package/dist/components/frame/index.cjs +1 -1
  72. package/dist/components/frame/index.js +1 -1
  73. package/dist/components/frame/types.cjs +1 -1
  74. package/dist/components/iab-consent-banner/atoms/button-group.cjs +1 -1
  75. package/dist/components/iab-consent-banner/atoms/button-group.js +1 -1
  76. package/dist/components/iab-consent-banner/atoms/card.cjs +1 -1
  77. package/dist/components/iab-consent-banner/atoms/card.js +1 -1
  78. package/dist/components/iab-consent-banner/atoms/description.cjs +1 -1
  79. package/dist/components/iab-consent-banner/atoms/description.js +1 -1
  80. package/dist/components/iab-consent-banner/atoms/footer.cjs +1 -1
  81. package/dist/components/iab-consent-banner/atoms/footer.js +1 -1
  82. package/dist/components/iab-consent-banner/atoms/header.cjs +1 -1
  83. package/dist/components/iab-consent-banner/atoms/header.js +1 -1
  84. package/dist/components/iab-consent-banner/atoms/overlay.cjs +1 -1
  85. package/dist/components/iab-consent-banner/atoms/overlay.js +1 -1
  86. package/dist/components/iab-consent-banner/atoms/root.cjs +1 -1
  87. package/dist/components/iab-consent-banner/atoms/root.js +1 -1
  88. package/dist/components/iab-consent-banner/atoms/title.cjs +1 -1
  89. package/dist/components/iab-consent-banner/atoms/title.js +1 -1
  90. package/dist/components/iab-consent-banner/iab-consent-banner.cjs +1 -1
  91. package/dist/components/iab-consent-banner/iab-consent-banner.js +1 -1
  92. package/dist/components/iab-consent-banner/index.cjs +1 -1
  93. package/dist/components/iab-consent-banner/index.js +1 -1
  94. package/dist/components/iab-consent-dialog/atoms/card.cjs +1 -1
  95. package/dist/components/iab-consent-dialog/atoms/card.js +1 -1
  96. package/dist/components/iab-consent-dialog/atoms/content.cjs +1 -1
  97. package/dist/components/iab-consent-dialog/atoms/content.js +1 -1
  98. package/dist/components/iab-consent-dialog/atoms/footer.cjs +1 -1
  99. package/dist/components/iab-consent-dialog/atoms/footer.js +1 -1
  100. package/dist/components/iab-consent-dialog/atoms/header.cjs +1 -1
  101. package/dist/components/iab-consent-dialog/atoms/header.js +1 -1
  102. package/dist/components/iab-consent-dialog/atoms/overlay.cjs +1 -1
  103. package/dist/components/iab-consent-dialog/atoms/overlay.js +1 -1
  104. package/dist/components/iab-consent-dialog/atoms/purpose-item.cjs +1 -1
  105. package/dist/components/iab-consent-dialog/atoms/purpose-item.js +1 -1
  106. package/dist/components/iab-consent-dialog/atoms/root.cjs +1 -1
  107. package/dist/components/iab-consent-dialog/atoms/root.js +1 -1
  108. package/dist/components/iab-consent-dialog/atoms/stack-item.cjs +1 -1
  109. package/dist/components/iab-consent-dialog/atoms/stack-item.js +1 -1
  110. package/dist/components/iab-consent-dialog/atoms/tabs.cjs +1 -1
  111. package/dist/components/iab-consent-dialog/atoms/tabs.js +1 -1
  112. package/dist/components/iab-consent-dialog/atoms/vendor-list.cjs +1 -1
  113. package/dist/components/iab-consent-dialog/atoms/vendor-list.js +1 -1
  114. package/dist/components/iab-consent-dialog/hooks/use-gvl-data.cjs +1 -1
  115. package/dist/components/iab-consent-dialog/iab-consent-dialog.cjs +1 -1
  116. package/dist/components/iab-consent-dialog/iab-consent-dialog.js +1 -1
  117. package/dist/components/iab-consent-dialog/index.cjs +1 -1
  118. package/dist/components/iab-consent-dialog/index.js +1 -1
  119. package/dist/components/iab-consent-dialog/types.cjs +1 -1
  120. package/dist/components/iab-consent-dialog/use-iab-translations.cjs +1 -1
  121. package/dist/components/shared/libs/polymorphic.cjs +1 -1
  122. package/dist/components/shared/libs/recursive-clone-children.cjs +1 -1
  123. package/dist/components/shared/libs/slot.cjs +1 -0
  124. package/dist/components/shared/libs/slot.js +1 -0
  125. package/dist/components/shared/libs/use-controllable-state.cjs +1 -0
  126. package/dist/components/shared/libs/use-controllable-state.js +1 -0
  127. package/dist/components/shared/policy-actions.cjs +1 -0
  128. package/dist/components/shared/policy-actions.js +1 -0
  129. package/dist/components/shared/primitives/box.cjs +1 -1
  130. package/dist/components/shared/primitives/box.js +1 -1
  131. package/dist/components/shared/primitives/button.cjs +1 -1
  132. package/dist/components/shared/primitives/button.js +1 -1
  133. package/dist/components/shared/primitives/button.types.cjs +1 -1
  134. package/dist/components/shared/primitives/legal-links/index.cjs +1 -1
  135. package/dist/components/shared/primitives/legal-links/index.js +1 -1
  136. package/dist/components/shared/ui/accordion/accordion.cjs +1 -1
  137. package/dist/components/shared/ui/accordion/accordion.js +1 -1
  138. package/dist/components/shared/ui/accordion/accordion.types.cjs +1 -1
  139. package/dist/components/shared/ui/accordion/index.cjs +1 -1
  140. package/dist/components/shared/ui/animated-collapse/animated-collapse.cjs +1 -1
  141. package/dist/components/shared/ui/animated-collapse/index.cjs +1 -1
  142. package/dist/components/shared/ui/animated-collapse/index.js +1 -1
  143. package/dist/components/shared/ui/branding.cjs +1 -0
  144. package/dist/components/shared/ui/branding.js +1 -0
  145. package/dist/components/shared/ui/button/button.cjs +1 -1
  146. package/dist/components/shared/ui/button/button.js +1 -1
  147. package/dist/components/shared/ui/button/button.types.cjs +1 -1
  148. package/dist/components/shared/ui/button/index.cjs +1 -1
  149. package/dist/components/shared/ui/collapsible/collapsible.cjs +1 -0
  150. package/dist/components/shared/ui/collapsible/collapsible.js +1 -0
  151. package/dist/components/shared/ui/collapsible/index.cjs +1 -0
  152. package/dist/components/shared/ui/collapsible/index.js +1 -0
  153. package/dist/components/shared/ui/dialog/dialog.cjs +1 -0
  154. package/dist/components/shared/ui/dialog/dialog.js +1 -0
  155. package/dist/components/shared/ui/dialog/index.cjs +1 -0
  156. package/dist/components/shared/ui/dialog/index.js +1 -0
  157. package/dist/components/shared/ui/icon.cjs +1 -1
  158. package/dist/components/shared/ui/logo.cjs +1 -1
  159. package/dist/components/shared/ui/logo.js +1 -1
  160. package/dist/components/shared/ui/preference-item/index.cjs +1 -0
  161. package/dist/components/shared/ui/preference-item/index.js +1 -0
  162. package/dist/components/shared/ui/preference-item/preference-item.cjs +1 -0
  163. package/dist/components/shared/ui/preference-item/preference-item.js +1 -0
  164. package/dist/components/shared/ui/switch/index.cjs +1 -1
  165. package/dist/components/shared/ui/switch/index.js +1 -1
  166. package/dist/components/shared/ui/switch/switch.cjs +1 -1
  167. package/dist/components/shared/ui/switch/switch.js +1 -1
  168. package/dist/components/shared/ui/switch/switch.types.cjs +1 -1
  169. package/dist/components/shared/ui/tabs/index.cjs +1 -0
  170. package/dist/components/shared/ui/tabs/index.js +1 -0
  171. package/dist/components/shared/ui/tabs/tabs.cjs +1 -0
  172. package/dist/components/shared/ui/tabs/tabs.js +1 -0
  173. package/dist/context/consent-manager-context.cjs +1 -1
  174. package/dist/context/consent-tracking-context.cjs +1 -1
  175. package/dist/context/theme-context.cjs +1 -1
  176. package/dist/headless.cjs +1 -1
  177. package/dist/headless.js +1 -1
  178. package/dist/hooks/index.cjs +1 -1
  179. package/dist/hooks/index.js +1 -1
  180. package/dist/hooks/use-color-scheme.cjs +1 -1
  181. package/dist/hooks/use-component-config.cjs +1 -1
  182. package/dist/hooks/use-consent-dialog-trigger.cjs +1 -0
  183. package/dist/hooks/use-consent-dialog-trigger.js +1 -0
  184. package/dist/hooks/use-consent-manager.cjs +1 -1
  185. package/dist/hooks/use-consent-manager.js +1 -1
  186. package/dist/hooks/use-focus-trap.cjs +1 -1
  187. package/dist/hooks/use-focus-trap.js +1 -1
  188. package/dist/hooks/use-headless-consent-ui.cjs +1 -0
  189. package/dist/hooks/use-headless-consent-ui.js +1 -0
  190. package/dist/hooks/use-headless-iab-consent-ui.cjs +1 -0
  191. package/dist/hooks/use-headless-iab-consent-ui.js +1 -0
  192. package/dist/hooks/use-reduced-motion.cjs +1 -1
  193. package/dist/hooks/use-reduced-motion.js +1 -1
  194. package/dist/hooks/use-scroll-lock.cjs +1 -1
  195. package/dist/hooks/use-scroll-lock.js +1 -1
  196. package/dist/hooks/use-ssr-status.cjs +1 -1
  197. package/dist/hooks/use-styles.cjs +1 -1
  198. package/dist/hooks/use-text-direction.cjs +1 -1
  199. package/dist/hooks/use-theme.cjs +1 -1
  200. package/dist/hooks/use-theme.js +1 -1
  201. package/dist/hooks/use-translations.cjs +1 -1
  202. package/dist/iab/styles.css +11 -0
  203. package/dist/iab/styles.tw3.css +14 -0
  204. package/dist/iab.cjs +1 -0
  205. package/dist/iab.js +1 -0
  206. package/dist/index.cjs +1 -1
  207. package/dist/index.js +1 -1
  208. package/dist/primitives/accordion.cjs +1 -0
  209. package/dist/primitives/accordion.js +1 -0
  210. package/dist/primitives/button.cjs +1 -0
  211. package/dist/primitives/button.js +1 -0
  212. package/dist/primitives/collapsible.cjs +1 -0
  213. package/dist/primitives/collapsible.js +1 -0
  214. package/dist/primitives/dialog.cjs +1 -0
  215. package/dist/primitives/dialog.js +1 -0
  216. package/dist/primitives/preference-item.cjs +1 -0
  217. package/dist/primitives/preference-item.js +1 -0
  218. package/dist/primitives/switch.cjs +1 -0
  219. package/dist/primitives/switch.js +1 -0
  220. package/dist/primitives/tabs.cjs +1 -0
  221. package/dist/primitives/tabs.js +1 -0
  222. package/dist/primitives.cjs +1 -0
  223. package/dist/primitives.js +1 -0
  224. package/dist/providers/consent-manager-provider.cjs +1 -1
  225. package/dist/providers/consent-manager-provider.js +1 -1
  226. package/dist/server/fetch-ssr-data.cjs +1 -1
  227. package/dist/server/fetch-ssr-data.js +1 -1
  228. package/dist/server/headers.cjs +1 -1
  229. package/dist/server/headers.js +1 -1
  230. package/dist/server/index.cjs +1 -1
  231. package/dist/server/index.js +1 -1
  232. package/dist/server/init-cache-key.cjs +1 -0
  233. package/dist/server/init-cache-key.js +1 -0
  234. package/dist/server/normalize-url.cjs +1 -1
  235. package/dist/server/types.cjs +1 -1
  236. package/dist/styles.css +10 -0
  237. package/dist/styles.tw3.css +13 -0
  238. package/dist/types/consent-manager.cjs +1 -1
  239. package/dist/types/theme/index.cjs +1 -1
  240. package/dist/types/theme/style-keys.cjs +1 -1
  241. package/dist/types/theme/style-types.cjs +1 -1
  242. package/dist/utils/cn.cjs +1 -1
  243. package/dist/utils/merge-styles.cjs +1 -1
  244. package/dist/utils/test-helpers.cjs +1 -1
  245. package/dist/utils/test-helpers.js +1 -1
  246. package/dist/utils/theme-utils.cjs +1 -1
  247. package/dist/version.cjs +1 -1
  248. package/dist/version.js +1 -1
  249. package/{dist → dist-types}/components/consent-banner/atoms/overlay.d.ts +1 -2
  250. package/{dist → dist-types}/components/consent-banner/atoms/root.d.ts +44 -14
  251. package/{dist → dist-types}/components/consent-banner/components.d.ts +4 -5
  252. package/{dist → dist-types}/components/consent-banner/consent-banner.d.ts +14 -8
  253. package/{dist → dist-types}/components/consent-banner/error-boundary.d.ts +0 -1
  254. package/{dist → dist-types}/components/consent-banner/index.d.ts +48 -26
  255. package/dist-types/components/consent-banner/policy-actions.d.ts +11 -0
  256. package/{dist → dist-types}/components/consent-dialog/atoms/card.d.ts +13 -8
  257. package/{dist → dist-types}/components/consent-dialog/atoms/overlay.d.ts +1 -2
  258. package/{dist → dist-types}/components/consent-dialog/atoms/root.d.ts +1 -2
  259. package/{dist → dist-types}/components/consent-dialog/consent-dialog.d.ts +2 -3
  260. package/{dist → dist-types}/components/consent-dialog/index.d.ts +31 -10
  261. package/dist-types/components/consent-dialog-link/index.d.ts +1 -0
  262. package/{dist → dist-types}/components/consent-dialog-trigger/atoms/button.d.ts +0 -1
  263. package/{dist → dist-types}/components/consent-dialog-trigger/atoms/icon.d.ts +1 -2
  264. package/{dist → dist-types}/components/consent-dialog-trigger/atoms/root.d.ts +0 -1
  265. package/{dist → dist-types}/components/consent-dialog-trigger/atoms/text.d.ts +0 -1
  266. package/{dist → dist-types}/components/consent-dialog-trigger/consent-dialog-trigger.d.ts +2 -3
  267. package/{dist → dist-types}/components/consent-dialog-trigger/index.d.ts +0 -1
  268. package/{dist → dist-types}/components/consent-dialog-trigger/types.d.ts +2 -3
  269. package/{dist → dist-types}/components/consent-dialog-trigger/use-draggable.d.ts +1 -2
  270. package/dist-types/components/consent-preferences-link/consent-preferences-link.d.ts +15 -0
  271. package/dist-types/components/consent-preferences-link/index.d.ts +1 -0
  272. package/dist-types/components/consent-widget/atoms/accordion.d.ts +28 -0
  273. package/{dist → dist-types}/components/consent-widget/atoms/button.d.ts +1 -2
  274. package/{dist → dist-types}/components/consent-widget/atoms/footer.d.ts +0 -1
  275. package/{dist → dist-types}/components/consent-widget/atoms/root.d.ts +1 -7
  276. package/{dist → dist-types}/components/consent-widget/consent-widget.d.ts +0 -1
  277. package/{dist → dist-types}/components/consent-widget/index.d.ts +27 -8
  278. package/dist-types/components/consent-widget/policy-actions.d.ts +11 -0
  279. package/{dist → dist-types}/components/consent-widget/types.d.ts +2 -3
  280. package/{dist → dist-types}/components/frame/atoms.d.ts +1 -2
  281. package/{dist → dist-types}/components/frame/frame.d.ts +0 -1
  282. package/{dist → dist-types}/components/frame/index.d.ts +1 -2
  283. package/{dist → dist-types}/components/frame/types.d.ts +0 -1
  284. package/{dist → dist-types}/components/iab-consent-banner/atoms/button-group.d.ts +0 -1
  285. package/{dist → dist-types}/components/iab-consent-banner/atoms/card.d.ts +0 -1
  286. package/{dist → dist-types}/components/iab-consent-banner/atoms/description.d.ts +0 -1
  287. package/{dist → dist-types}/components/iab-consent-banner/atoms/footer.d.ts +0 -1
  288. package/{dist → dist-types}/components/iab-consent-banner/atoms/header.d.ts +0 -1
  289. package/{dist → dist-types}/components/iab-consent-banner/atoms/overlay.d.ts +0 -1
  290. package/{dist → dist-types}/components/iab-consent-banner/atoms/root.d.ts +0 -1
  291. package/{dist → dist-types}/components/iab-consent-banner/atoms/title.d.ts +0 -1
  292. package/{dist → dist-types}/components/iab-consent-banner/iab-consent-banner.d.ts +0 -1
  293. package/{dist → dist-types}/components/iab-consent-banner/index.d.ts +1 -2
  294. package/{dist → dist-types}/components/iab-consent-dialog/atoms/card.d.ts +0 -1
  295. package/{dist → dist-types}/components/iab-consent-dialog/atoms/content.d.ts +0 -1
  296. package/{dist → dist-types}/components/iab-consent-dialog/atoms/footer.d.ts +0 -1
  297. package/{dist → dist-types}/components/iab-consent-dialog/atoms/header.d.ts +0 -1
  298. package/{dist → dist-types}/components/iab-consent-dialog/atoms/overlay.d.ts +0 -1
  299. package/{dist → dist-types}/components/iab-consent-dialog/atoms/purpose-item.d.ts +0 -1
  300. package/{dist → dist-types}/components/iab-consent-dialog/atoms/root.d.ts +0 -1
  301. package/{dist → dist-types}/components/iab-consent-dialog/atoms/stack-item.d.ts +0 -1
  302. package/dist-types/components/iab-consent-dialog/atoms/tabs.d.ts +12 -0
  303. package/{dist → dist-types}/components/iab-consent-dialog/atoms/vendor-list.d.ts +0 -1
  304. package/{dist → dist-types}/components/iab-consent-dialog/hooks/use-gvl-data.d.ts +0 -1
  305. package/{dist → dist-types}/components/iab-consent-dialog/iab-consent-dialog.d.ts +0 -1
  306. package/{dist → dist-types}/components/iab-consent-dialog/index.d.ts +1 -2
  307. package/{dist → dist-types}/components/iab-consent-dialog/types.d.ts +0 -1
  308. package/{dist → dist-types}/components/iab-consent-dialog/use-iab-translations.d.ts +0 -1
  309. package/{dist → dist-types}/components/shared/libs/polymorphic.d.ts +0 -1
  310. package/{dist → dist-types}/components/shared/libs/recursive-clone-children.d.ts +0 -1
  311. package/dist-types/components/shared/libs/slot.d.ts +6 -0
  312. package/dist-types/components/shared/libs/use-controllable-state.d.ts +7 -0
  313. package/dist-types/components/shared/policy-actions.d.ts +29 -0
  314. package/{dist → dist-types}/components/shared/primitives/box.d.ts +0 -1
  315. package/{dist → dist-types}/components/shared/primitives/button.d.ts +4 -1
  316. package/{dist → dist-types}/components/shared/primitives/button.types.d.ts +17 -1
  317. package/{dist → dist-types}/components/shared/primitives/legal-links/index.d.ts +0 -45
  318. package/{dist → dist-types}/components/shared/ui/accordion/accordion.d.ts +32 -68
  319. package/{dist → dist-types}/components/shared/ui/accordion/accordion.types.d.ts +0 -1
  320. package/{dist → dist-types}/components/shared/ui/accordion/index.d.ts +0 -1
  321. package/{dist → dist-types}/components/shared/ui/animated-collapse/animated-collapse.d.ts +0 -1
  322. package/{dist → dist-types}/components/shared/ui/animated-collapse/index.d.ts +0 -1
  323. package/dist-types/components/shared/ui/branding.d.ts +27 -0
  324. package/{dist → dist-types}/components/shared/ui/button/button.d.ts +2 -3
  325. package/{dist → dist-types}/components/shared/ui/button/button.types.d.ts +0 -1
  326. package/{dist → dist-types}/components/shared/ui/button/index.d.ts +0 -1
  327. package/dist-types/components/shared/ui/collapsible/collapsible.d.ts +20 -0
  328. package/dist-types/components/shared/ui/collapsible/index.d.ts +1 -0
  329. package/dist-types/components/shared/ui/dialog/dialog.d.ts +29 -0
  330. package/dist-types/components/shared/ui/dialog/index.d.ts +1 -0
  331. package/{dist → dist-types}/components/shared/ui/icon.d.ts +0 -1
  332. package/{dist → dist-types}/components/shared/ui/logo.d.ts +8 -1
  333. package/dist-types/components/shared/ui/preference-item/index.d.ts +1 -0
  334. package/dist-types/components/shared/ui/preference-item/preference-item.d.ts +33 -0
  335. package/dist-types/components/shared/ui/switch/index.d.ts +2 -0
  336. package/dist-types/components/shared/ui/switch/switch.d.ts +20 -0
  337. package/{dist → dist-types}/components/shared/ui/switch/switch.types.d.ts +0 -1
  338. package/dist-types/components/shared/ui/tabs/index.d.ts +1 -0
  339. package/dist-types/components/shared/ui/tabs/tabs.d.ts +28 -0
  340. package/{dist → dist-types}/context/consent-manager-context.d.ts +0 -1
  341. package/{dist → dist-types}/context/consent-tracking-context.d.ts +0 -1
  342. package/{dist → dist-types}/context/theme-context.d.ts +0 -1
  343. package/dist-types/headless.d.ts +9 -0
  344. package/{dist → dist-types}/hooks/index.d.ts +3 -1
  345. package/{dist → dist-types}/hooks/use-color-scheme.d.ts +0 -1
  346. package/{dist → dist-types}/hooks/use-component-config.d.ts +0 -1
  347. package/dist-types/hooks/use-consent-dialog-trigger.d.ts +10 -0
  348. package/{dist → dist-types}/hooks/use-consent-manager.d.ts +0 -1
  349. package/{dist → dist-types}/hooks/use-focus-trap.d.ts +0 -1
  350. package/dist-types/hooks/use-headless-consent-ui.d.ts +46 -0
  351. package/dist-types/hooks/use-headless-iab-consent-ui.d.ts +41 -0
  352. package/{dist → dist-types}/hooks/use-reduced-motion.d.ts +0 -1
  353. package/{dist → dist-types}/hooks/use-scroll-lock.d.ts +0 -1
  354. package/{dist → dist-types}/hooks/use-ssr-status.d.ts +2 -2
  355. package/{dist → dist-types}/hooks/use-styles.d.ts +0 -1
  356. package/{dist → dist-types}/hooks/use-text-direction.d.ts +0 -1
  357. package/{dist → dist-types}/hooks/use-theme.d.ts +0 -1
  358. package/{dist → dist-types}/hooks/use-translations.d.ts +0 -1
  359. package/dist-types/iab.d.ts +24 -0
  360. package/{dist → dist-types}/index.d.ts +5 -6
  361. package/dist-types/primitives/accordion.d.ts +1 -0
  362. package/dist-types/primitives/button.d.ts +1 -0
  363. package/dist-types/primitives/collapsible.d.ts +1 -0
  364. package/dist-types/primitives/dialog.d.ts +1 -0
  365. package/dist-types/primitives/preference-item.d.ts +1 -0
  366. package/dist-types/primitives/switch.d.ts +1 -0
  367. package/dist-types/primitives/tabs.d.ts +1 -0
  368. package/dist-types/primitives.d.ts +7 -0
  369. package/{dist → dist-types}/providers/consent-manager-provider.d.ts +0 -1
  370. package/{dist → dist-types}/server/fetch-ssr-data.d.ts +0 -1
  371. package/{dist → dist-types}/server/headers.d.ts +2 -2
  372. package/{dist → dist-types}/server/index.d.ts +1 -1
  373. package/dist-types/server/init-cache-key.d.ts +21 -0
  374. package/{dist → dist-types}/server/normalize-url.d.ts +0 -1
  375. package/{dist → dist-types}/server/types.d.ts +0 -1
  376. package/{dist → dist-types}/types/consent-manager.d.ts +7 -1
  377. package/{dist → dist-types}/types/theme/index.d.ts +0 -1
  378. package/{dist → dist-types}/types/theme/style-keys.d.ts +0 -1
  379. package/{dist → dist-types}/types/theme/style-types.d.ts +2 -1
  380. package/{dist → dist-types}/utils/cn.d.ts +0 -1
  381. package/{dist → dist-types}/utils/merge-styles.d.ts +0 -1
  382. package/{dist → dist-types}/utils/test-helpers.d.ts +0 -1
  383. package/{dist → dist-types}/utils/theme-utils.d.ts +1 -2
  384. package/dist-types/version.d.ts +1 -0
  385. package/docs/README.md +76 -0
  386. package/docs/building-headless-components.md +368 -0
  387. package/docs/callbacks.md +184 -0
  388. package/docs/components/consent-banner.md +269 -0
  389. package/docs/components/consent-dialog-link.md +59 -0
  390. package/docs/components/consent-dialog-trigger.md +103 -0
  391. package/docs/components/consent-dialog.md +177 -0
  392. package/docs/components/consent-manager-provider.md +425 -0
  393. package/docs/components/consent-widget.md +133 -0
  394. package/docs/components/dev-tools.md +63 -0
  395. package/docs/components/frame.md +73 -0
  396. package/docs/concepts/client-modes.md +175 -0
  397. package/docs/concepts/consent-categories.md +97 -0
  398. package/docs/concepts/consent-models.md +112 -0
  399. package/docs/concepts/cookie-management.md +122 -0
  400. package/docs/concepts/glossary.md +23 -0
  401. package/docs/concepts/initialization-flow.md +148 -0
  402. package/docs/concepts/policy-packs.md +227 -0
  403. package/docs/headless.md +190 -0
  404. package/docs/hooks/use-color-scheme.md +40 -0
  405. package/docs/hooks/use-consent-manager/checking-consent.md +94 -0
  406. package/docs/hooks/use-consent-manager/location-info.md +95 -0
  407. package/docs/hooks/use-consent-manager/overview.md +420 -0
  408. package/docs/hooks/use-consent-manager/setting-consent.md +92 -0
  409. package/docs/hooks/use-draggable.md +57 -0
  410. package/docs/hooks/use-focus-trap.md +41 -0
  411. package/docs/hooks/use-reduced-motion.md +35 -0
  412. package/docs/hooks/use-ssr-status.md +31 -0
  413. package/docs/hooks/use-text-direction.md +49 -0
  414. package/docs/hooks/use-translations.md +118 -0
  415. package/docs/iab/consent-banner.md +94 -0
  416. package/docs/iab/consent-dialog.md +134 -0
  417. package/docs/iab/overview.md +126 -0
  418. package/docs/iab/use-gvl-data.md +20 -0
  419. package/docs/iframe-blocking.md +107 -0
  420. package/docs/integrations/building-integrations.md +405 -0
  421. package/docs/integrations/databuddy.md +203 -0
  422. package/docs/integrations/google-tag-manager.md +153 -0
  423. package/docs/integrations/google-tag.md +122 -0
  424. package/docs/integrations/linkedin-insights.md +109 -0
  425. package/docs/integrations/meta-pixel.md +342 -0
  426. package/docs/integrations/microsoft-uet.md +112 -0
  427. package/docs/integrations/overview.md +105 -0
  428. package/docs/integrations/posthog.md +199 -0
  429. package/docs/integrations/tiktok-pixel.md +113 -0
  430. package/docs/integrations/x-pixel.md +143 -0
  431. package/docs/internationalization.md +197 -0
  432. package/docs/network-blocker.md +178 -0
  433. package/docs/optimization.md +147 -0
  434. package/docs/policy-packs.md +240 -0
  435. package/docs/quickstart.md +155 -0
  436. package/docs/script-loader.md +321 -0
  437. package/docs/server-side.md +153 -0
  438. package/docs/styling/classnames.md +92 -0
  439. package/docs/styling/color-scheme.md +82 -0
  440. package/docs/styling/css-variables.md +92 -0
  441. package/docs/styling/overview.md +459 -0
  442. package/docs/styling/slots.md +127 -0
  443. package/docs/styling/tailwind.md +113 -0
  444. package/docs/styling/tokens.md +216 -0
  445. package/docs/troubleshooting.md +137 -0
  446. package/iab/styles.css +1 -0
  447. package/package.json +85 -25
  448. package/readme.json +6 -0
  449. package/src/iab/styles.css +11 -0
  450. package/src/iab/styles.tw3.css +14 -0
  451. package/src/styles.css +10 -0
  452. package/src/styles.tw3.css +13 -0
  453. package/styles.css +1 -0
  454. package/dist/components/__tests__/active-ui-transitions.e2e.test.cjs +0 -1
  455. package/dist/components/__tests__/active-ui-transitions.e2e.test.js +0 -1
  456. package/dist/components/__tests__/consent-flow.e2e.test.cjs +0 -1
  457. package/dist/components/__tests__/consent-flow.e2e.test.js +0 -1
  458. package/dist/components/__tests__/models-prop.e2e.test.cjs +0 -1
  459. package/dist/components/__tests__/models-prop.e2e.test.js +0 -1
  460. package/dist/components/__tests__/ui-source-tracking.e2e.test.cjs +0 -1
  461. package/dist/components/__tests__/ui-source-tracking.e2e.test.js +0 -1
  462. package/dist/components/consent-banner/atoms/overlay.d.ts.map +0 -1
  463. package/dist/components/consent-banner/atoms/root.d.ts.map +0 -1
  464. package/dist/components/consent-banner/components.d.ts.map +0 -1
  465. package/dist/components/consent-banner/consent-banner.d.ts.map +0 -1
  466. package/dist/components/consent-banner/error-boundary.d.ts.map +0 -1
  467. package/dist/components/consent-banner/index.d.ts.map +0 -1
  468. package/dist/components/consent-dialog/atoms/card.d.ts.map +0 -1
  469. package/dist/components/consent-dialog/atoms/overlay.d.ts.map +0 -1
  470. package/dist/components/consent-dialog/atoms/root.d.ts.map +0 -1
  471. package/dist/components/consent-dialog/consent-dialog.d.ts.map +0 -1
  472. package/dist/components/consent-dialog/index.d.ts.map +0 -1
  473. package/dist/components/consent-dialog-trigger/atoms/button.d.ts.map +0 -1
  474. package/dist/components/consent-dialog-trigger/atoms/icon.d.ts.map +0 -1
  475. package/dist/components/consent-dialog-trigger/atoms/root.d.ts.map +0 -1
  476. package/dist/components/consent-dialog-trigger/atoms/text.d.ts.map +0 -1
  477. package/dist/components/consent-dialog-trigger/consent-dialog-trigger.d.ts.map +0 -1
  478. package/dist/components/consent-dialog-trigger/index.d.ts.map +0 -1
  479. package/dist/components/consent-dialog-trigger/types.d.ts.map +0 -1
  480. package/dist/components/consent-dialog-trigger/use-draggable.d.ts.map +0 -1
  481. package/dist/components/consent-widget/atoms/accordion.d.ts +0 -46
  482. package/dist/components/consent-widget/atoms/accordion.d.ts.map +0 -1
  483. package/dist/components/consent-widget/atoms/button.d.ts.map +0 -1
  484. package/dist/components/consent-widget/atoms/footer.d.ts.map +0 -1
  485. package/dist/components/consent-widget/atoms/root.d.ts.map +0 -1
  486. package/dist/components/consent-widget/consent-widget.d.ts.map +0 -1
  487. package/dist/components/consent-widget/index.d.ts.map +0 -1
  488. package/dist/components/consent-widget/types.d.ts.map +0 -1
  489. package/dist/components/frame/atoms.d.ts.map +0 -1
  490. package/dist/components/frame/frame.d.ts.map +0 -1
  491. package/dist/components/frame/index.d.ts.map +0 -1
  492. package/dist/components/frame/types.d.ts.map +0 -1
  493. package/dist/components/iab/__tests__/e2e-setup.cjs +0 -1
  494. package/dist/components/iab/__tests__/e2e-setup.js +0 -1
  495. package/dist/components/iab/__tests__/fixtures/mock-consent-state.cjs +0 -1
  496. package/dist/components/iab/__tests__/fixtures/mock-consent-state.d.ts +0 -212
  497. package/dist/components/iab/__tests__/fixtures/mock-consent-state.d.ts.map +0 -1
  498. package/dist/components/iab/__tests__/fixtures/mock-consent-state.js +0 -1
  499. package/dist/components/iab/__tests__/iab-banner.e2e.test.cjs +0 -1
  500. package/dist/components/iab/__tests__/iab-banner.e2e.test.js +0 -1
  501. package/dist/components/iab/__tests__/iab-consent-flow.e2e.test.cjs +0 -1
  502. package/dist/components/iab/__tests__/iab-consent-flow.e2e.test.js +0 -1
  503. package/dist/components/iab/__tests__/iab-events.e2e.test.cjs +0 -1
  504. package/dist/components/iab/__tests__/iab-events.e2e.test.js +0 -1
  505. package/dist/components/iab/__tests__/iab-gvl.e2e.test.cjs +0 -1
  506. package/dist/components/iab/__tests__/iab-gvl.e2e.test.js +0 -1
  507. package/dist/components/iab/__tests__/iab-preference-center.e2e.test.cjs +0 -1
  508. package/dist/components/iab/__tests__/iab-preference-center.e2e.test.js +0 -1
  509. package/dist/components/iab/__tests__/iab-storage.e2e.test.cjs +0 -1
  510. package/dist/components/iab/__tests__/iab-storage.e2e.test.js +0 -1
  511. package/dist/components/iab/__tests__/iab-stub.e2e.test.cjs +0 -1
  512. package/dist/components/iab/__tests__/iab-stub.e2e.test.js +0 -1
  513. package/dist/components/iab/__tests__/iab-tcfapi.e2e.test.cjs +0 -1
  514. package/dist/components/iab/__tests__/iab-tcfapi.e2e.test.js +0 -1
  515. package/dist/components/iab/__tests__/msw-handlers.cjs +0 -1
  516. package/dist/components/iab/__tests__/msw-handlers.js +0 -1
  517. package/dist/components/iab-consent-banner/__tests__/iab-consent-banner.test.cjs +0 -1
  518. package/dist/components/iab-consent-banner/__tests__/iab-consent-banner.test.js +0 -1
  519. package/dist/components/iab-consent-banner/atoms/button-group.d.ts.map +0 -1
  520. package/dist/components/iab-consent-banner/atoms/card.d.ts.map +0 -1
  521. package/dist/components/iab-consent-banner/atoms/description.d.ts.map +0 -1
  522. package/dist/components/iab-consent-banner/atoms/footer.d.ts.map +0 -1
  523. package/dist/components/iab-consent-banner/atoms/header.d.ts.map +0 -1
  524. package/dist/components/iab-consent-banner/atoms/overlay.d.ts.map +0 -1
  525. package/dist/components/iab-consent-banner/atoms/root.d.ts.map +0 -1
  526. package/dist/components/iab-consent-banner/atoms/title.d.ts.map +0 -1
  527. package/dist/components/iab-consent-banner/iab-consent-banner.d.ts.map +0 -1
  528. package/dist/components/iab-consent-banner/index.d.ts.map +0 -1
  529. package/dist/components/iab-consent-dialog/__tests__/legitimate-interest-ui.test.cjs +0 -1
  530. package/dist/components/iab-consent-dialog/__tests__/legitimate-interest-ui.test.js +0 -1
  531. package/dist/components/iab-consent-dialog/__tests__/preference-center.test.cjs +0 -1
  532. package/dist/components/iab-consent-dialog/__tests__/preference-center.test.js +0 -1
  533. package/dist/components/iab-consent-dialog/__tests__/purposes-tab.test.cjs +0 -1
  534. package/dist/components/iab-consent-dialog/__tests__/purposes-tab.test.js +0 -1
  535. package/dist/components/iab-consent-dialog/__tests__/vendors-tab.test.cjs +0 -1
  536. package/dist/components/iab-consent-dialog/__tests__/vendors-tab.test.js +0 -1
  537. package/dist/components/iab-consent-dialog/atoms/card.d.ts.map +0 -1
  538. package/dist/components/iab-consent-dialog/atoms/content.d.ts.map +0 -1
  539. package/dist/components/iab-consent-dialog/atoms/footer.d.ts.map +0 -1
  540. package/dist/components/iab-consent-dialog/atoms/header.d.ts.map +0 -1
  541. package/dist/components/iab-consent-dialog/atoms/overlay.d.ts.map +0 -1
  542. package/dist/components/iab-consent-dialog/atoms/purpose-item.d.ts.map +0 -1
  543. package/dist/components/iab-consent-dialog/atoms/root.d.ts.map +0 -1
  544. package/dist/components/iab-consent-dialog/atoms/stack-item.d.ts.map +0 -1
  545. package/dist/components/iab-consent-dialog/atoms/tabs.d.ts +0 -40
  546. package/dist/components/iab-consent-dialog/atoms/tabs.d.ts.map +0 -1
  547. package/dist/components/iab-consent-dialog/atoms/vendor-list.d.ts.map +0 -1
  548. package/dist/components/iab-consent-dialog/hooks/use-gvl-data.d.ts.map +0 -1
  549. package/dist/components/iab-consent-dialog/iab-consent-dialog.d.ts.map +0 -1
  550. package/dist/components/iab-consent-dialog/index.d.ts.map +0 -1
  551. package/dist/components/iab-consent-dialog/types.d.ts.map +0 -1
  552. package/dist/components/iab-consent-dialog/use-iab-translations.d.ts.map +0 -1
  553. package/dist/components/shared/libs/polymorphic.d.ts.map +0 -1
  554. package/dist/components/shared/libs/recursive-clone-children.d.ts.map +0 -1
  555. package/dist/components/shared/primitives/box.d.ts.map +0 -1
  556. package/dist/components/shared/primitives/button.d.ts.map +0 -1
  557. package/dist/components/shared/primitives/button.types.d.ts.map +0 -1
  558. package/dist/components/shared/primitives/legal-links/index.d.ts.map +0 -1
  559. package/dist/components/shared/ui/__tests__/primitives.test.cjs +0 -1
  560. package/dist/components/shared/ui/__tests__/primitives.test.js +0 -1
  561. package/dist/components/shared/ui/accordion/accordion.d.ts.map +0 -1
  562. package/dist/components/shared/ui/accordion/accordion.types.d.ts.map +0 -1
  563. package/dist/components/shared/ui/accordion/index.d.ts.map +0 -1
  564. package/dist/components/shared/ui/animated-collapse/animated-collapse.d.ts.map +0 -1
  565. package/dist/components/shared/ui/animated-collapse/index.d.ts.map +0 -1
  566. package/dist/components/shared/ui/button/button.d.ts.map +0 -1
  567. package/dist/components/shared/ui/button/button.types.d.ts.map +0 -1
  568. package/dist/components/shared/ui/button/index.d.ts.map +0 -1
  569. package/dist/components/shared/ui/icon.d.ts.map +0 -1
  570. package/dist/components/shared/ui/logo.d.ts.map +0 -1
  571. package/dist/components/shared/ui/switch/index.d.ts +0 -3
  572. package/dist/components/shared/ui/switch/index.d.ts.map +0 -1
  573. package/dist/components/shared/ui/switch/switch.d.ts +0 -45
  574. package/dist/components/shared/ui/switch/switch.d.ts.map +0 -1
  575. package/dist/components/shared/ui/switch/switch.types.d.ts.map +0 -1
  576. package/dist/context/consent-manager-context.d.ts.map +0 -1
  577. package/dist/context/consent-tracking-context.d.ts.map +0 -1
  578. package/dist/context/theme-context.d.ts.map +0 -1
  579. package/dist/headless.d.ts +0 -8
  580. package/dist/headless.d.ts.map +0 -1
  581. package/dist/hooks/__tests__/__screenshots__/use-color-scheme.test.tsx/useColorScheme-cleans-up-system-preference-listener-on-unmount-1.cjs +0 -1
  582. package/dist/hooks/__tests__/__screenshots__/use-color-scheme.test.tsx/useColorScheme-cleans-up-system-preference-listener-on-unmount-1.js +0 -1
  583. package/dist/hooks/__tests__/__screenshots__/use-color-scheme.test.tsx/useColorScheme-handles-default-theme-based-on-document-class-1.cjs +0 -1
  584. package/dist/hooks/__tests__/__screenshots__/use-color-scheme.test.tsx/useColorScheme-handles-default-theme-based-on-document-class-1.js +0 -1
  585. package/dist/hooks/__tests__/__screenshots__/use-color-scheme.test.tsx/useColorScheme-responds-to-system-preference-1.cjs +0 -1
  586. package/dist/hooks/__tests__/__screenshots__/use-color-scheme.test.tsx/useColorScheme-responds-to-system-preference-1.js +0 -1
  587. package/dist/hooks/__tests__/__screenshots__/use-color-scheme.test.tsx/useColorScheme-sets-dark-theme-correctly-1.cjs +0 -1
  588. package/dist/hooks/__tests__/__screenshots__/use-color-scheme.test.tsx/useColorScheme-sets-dark-theme-correctly-1.js +0 -1
  589. package/dist/hooks/__tests__/__screenshots__/use-color-scheme.test.tsx/useColorScheme-updates-theme-when-default-theme-changes-1.cjs +0 -1
  590. package/dist/hooks/__tests__/__screenshots__/use-color-scheme.test.tsx/useColorScheme-updates-theme-when-default-theme-changes-1.js +0 -1
  591. package/dist/hooks/__tests__/__screenshots__/use-color-scheme.test.tsx/useColorScheme-updates-theme-when-system-preference-changes-1.cjs +0 -1
  592. package/dist/hooks/__tests__/__screenshots__/use-color-scheme.test.tsx/useColorScheme-updates-theme-when-system-preference-changes-1.js +0 -1
  593. package/dist/hooks/__tests__/__screenshots__/use-consent-manager.test.tsx/useConsentManager-provides-manager-object-when-configured-1.cjs +0 -1
  594. package/dist/hooks/__tests__/__screenshots__/use-consent-manager.test.tsx/useConsentManager-provides-manager-object-when-configured-1.js +0 -1
  595. package/dist/hooks/__tests__/__screenshots__/use-styles.test.tsx/useStyles-handles-string-className-correctly-1.cjs +0 -1
  596. package/dist/hooks/__tests__/__screenshots__/use-styles.test.tsx/useStyles-handles-string-className-correctly-1.js +0 -1
  597. package/dist/hooks/__tests__/__screenshots__/use-styles.test.tsx/useStyles-merges-theme-and-component-styles-correctly-1.cjs +0 -1
  598. package/dist/hooks/__tests__/__screenshots__/use-styles.test.tsx/useStyles-merges-theme-and-component-styles-correctly-1.js +0 -1
  599. package/dist/hooks/__tests__/__screenshots__/use-styles.test.tsx/useStyles-should-remove-base-default-styles-but-keep-theme-and-component-classNames-when-noStyle--true-1.cjs +0 -1
  600. package/dist/hooks/__tests__/__screenshots__/use-styles.test.tsx/useStyles-should-remove-base-default-styles-but-keep-theme-and-component-classNames-when-noStyle--true-1.js +0 -1
  601. package/dist/hooks/__tests__/__screenshots__/use-styles.test.tsx/useStyles-should-remove-default-styles-but-keep-custom-classNames-when-theme-object-provides-noStyle--true-1.cjs +0 -1
  602. package/dist/hooks/__tests__/__screenshots__/use-styles.test.tsx/useStyles-should-remove-default-styles-but-keep-custom-classNames-when-theme-object-provides-noStyle--true-1.js +0 -1
  603. package/dist/hooks/__tests__/__screenshots__/use-theme.test.tsx/useTheme-local-theme-takes-precedence-over-global-theme-1.cjs +0 -1
  604. package/dist/hooks/__tests__/__screenshots__/use-theme.test.tsx/useTheme-local-theme-takes-precedence-over-global-theme-1.js +0 -1
  605. package/dist/hooks/__tests__/__screenshots__/use-translations.test.tsx/useTranslations-Custom-English-instead-of-English-when-German-is-selected-1.cjs +0 -1
  606. package/dist/hooks/__tests__/__screenshots__/use-translations.test.tsx/useTranslations-Custom-English-instead-of-English-when-German-is-selected-1.js +0 -1
  607. package/dist/hooks/__tests__/__screenshots__/use-translations.test.tsx/useTranslations-falls-back-to-English-when-selected-language-is-not-available-1.cjs +0 -1
  608. package/dist/hooks/__tests__/__screenshots__/use-translations.test.tsx/useTranslations-falls-back-to-English-when-selected-language-is-not-available-1.js +0 -1
  609. package/dist/hooks/__tests__/__screenshots__/use-translations.test.tsx/useTranslations-merges-custom-translations-with-defaults-1.cjs +0 -1
  610. package/dist/hooks/__tests__/__screenshots__/use-translations.test.tsx/useTranslations-merges-custom-translations-with-defaults-1.js +0 -1
  611. package/dist/hooks/__tests__/__screenshots__/use-translations.test.tsx/useTranslations-returns-English-translations-by-default-1.cjs +0 -1
  612. package/dist/hooks/__tests__/__screenshots__/use-translations.test.tsx/useTranslations-returns-English-translations-by-default-1.js +0 -1
  613. package/dist/hooks/__tests__/use-color-scheme.test.cjs +0 -1
  614. package/dist/hooks/__tests__/use-color-scheme.test.js +0 -1
  615. package/dist/hooks/__tests__/use-consent-manager.test.cjs +0 -1
  616. package/dist/hooks/__tests__/use-consent-manager.test.js +0 -1
  617. package/dist/hooks/__tests__/use-focus-trap.test.cjs +0 -1
  618. package/dist/hooks/__tests__/use-focus-trap.test.js +0 -1
  619. package/dist/hooks/__tests__/use-scroll-lock.test.cjs +0 -1
  620. package/dist/hooks/__tests__/use-scroll-lock.test.js +0 -1
  621. package/dist/hooks/__tests__/use-styles.test.cjs +0 -1
  622. package/dist/hooks/__tests__/use-styles.test.js +0 -1
  623. package/dist/hooks/__tests__/use-theme.test.cjs +0 -1
  624. package/dist/hooks/__tests__/use-theme.test.js +0 -1
  625. package/dist/hooks/__tests__/use-translations.test.cjs +0 -1
  626. package/dist/hooks/__tests__/use-translations.test.js +0 -1
  627. package/dist/hooks/index.d.ts.map +0 -1
  628. package/dist/hooks/use-color-scheme.d.ts.map +0 -1
  629. package/dist/hooks/use-component-config.d.ts.map +0 -1
  630. package/dist/hooks/use-consent-manager.d.ts.map +0 -1
  631. package/dist/hooks/use-focus-trap.d.ts.map +0 -1
  632. package/dist/hooks/use-reduced-motion.d.ts.map +0 -1
  633. package/dist/hooks/use-scroll-lock.d.ts.map +0 -1
  634. package/dist/hooks/use-ssr-status.d.ts.map +0 -1
  635. package/dist/hooks/use-styles.d.ts.map +0 -1
  636. package/dist/hooks/use-text-direction.d.ts.map +0 -1
  637. package/dist/hooks/use-theme.d.ts.map +0 -1
  638. package/dist/hooks/use-translations.d.ts.map +0 -1
  639. package/dist/index.d.ts.map +0 -1
  640. package/dist/mockServiceWorker.js +0 -349
  641. package/dist/providers/__tests__/__screenshots__/provider-basic.test.tsx/ConsentManagerProvider-Basic-Request-Behavior-should-make-a-new-request-when-core-options-change-1.cjs +0 -1
  642. package/dist/providers/__tests__/__screenshots__/provider-basic.test.tsx/ConsentManagerProvider-Basic-Request-Behavior-should-make-a-new-request-when-core-options-change-1.js +0 -1
  643. package/dist/providers/__tests__/__screenshots__/provider-basic.test.tsx/ConsentManagerProvider-Basic-Request-Behavior-should-not-make-additional-requests-when-props-change-but-core-options-remain-same-1.cjs +0 -1
  644. package/dist/providers/__tests__/__screenshots__/provider-basic.test.tsx/ConsentManagerProvider-Basic-Request-Behavior-should-not-make-additional-requests-when-props-change-but-core-options-remain-same-1.js +0 -1
  645. package/dist/providers/__tests__/__screenshots__/provider-basic.test.tsx/ConsentManagerProvider-Basic-Request-Behavior-should-only-make-one-initial-request-for-consent-banner-status-1.cjs +0 -1
  646. package/dist/providers/__tests__/__screenshots__/provider-basic.test.tsx/ConsentManagerProvider-Basic-Request-Behavior-should-only-make-one-initial-request-for-consent-banner-status-1.js +0 -1
  647. package/dist/providers/__tests__/__screenshots__/provider-hydration.test.tsx/ConsentManagerProvider-Hydration-Behavior-should-handle-rapid-re-renders-without-blocking-children-1.cjs +0 -1
  648. package/dist/providers/__tests__/__screenshots__/provider-hydration.test.tsx/ConsentManagerProvider-Hydration-Behavior-should-handle-rapid-re-renders-without-blocking-children-1.js +0 -1
  649. package/dist/providers/__tests__/__screenshots__/provider-hydration.test.tsx/ConsentManagerProvider-Hydration-Behavior-should-not-block-SSR-provider-content-when-SSR-provider-wraps-ConsentManager-1.cjs +0 -1
  650. package/dist/providers/__tests__/__screenshots__/provider-hydration.test.tsx/ConsentManagerProvider-Hydration-Behavior-should-not-block-SSR-provider-content-when-SSR-provider-wraps-ConsentManager-1.js +0 -1
  651. package/dist/providers/__tests__/__screenshots__/provider-hydration.test.tsx/ConsentManagerProvider-Hydration-Behavior-should-render-children-immediately-without-blocking-during-hydration-1.cjs +0 -1
  652. package/dist/providers/__tests__/__screenshots__/provider-hydration.test.tsx/ConsentManagerProvider-Hydration-Behavior-should-render-children-immediately-without-blocking-during-hydration-1.js +0 -1
  653. package/dist/providers/__tests__/__screenshots__/provider-hydration.test.tsx/ConsentManagerProvider-Hydration-Behavior-should-use-startTransition-for-non-blocking-state-updates-during-hydration-1.cjs +0 -1
  654. package/dist/providers/__tests__/__screenshots__/provider-hydration.test.tsx/ConsentManagerProvider-Hydration-Behavior-should-use-startTransition-for-non-blocking-state-updates-during-hydration-1.js +0 -1
  655. package/dist/providers/__tests__/provider-basic.test.cjs +0 -1
  656. package/dist/providers/__tests__/provider-basic.test.js +0 -1
  657. package/dist/providers/__tests__/provider-context.test.cjs +0 -1
  658. package/dist/providers/__tests__/provider-context.test.js +0 -1
  659. package/dist/providers/__tests__/provider-errors.test.cjs +0 -1
  660. package/dist/providers/__tests__/provider-errors.test.js +0 -1
  661. package/dist/providers/__tests__/provider-hydration.test.cjs +0 -1
  662. package/dist/providers/__tests__/provider-hydration.test.js +0 -1
  663. package/dist/providers/__tests__/test-helpers.cjs +0 -1
  664. package/dist/providers/__tests__/test-helpers.js +0 -1
  665. package/dist/providers/consent-manager-provider.d.ts.map +0 -1
  666. package/dist/server/fetch-ssr-data.d.ts.map +0 -1
  667. package/dist/server/headers.d.ts.map +0 -1
  668. package/dist/server/headers.test.cjs +0 -1
  669. package/dist/server/headers.test.d.ts +0 -2
  670. package/dist/server/headers.test.d.ts.map +0 -1
  671. package/dist/server/headers.test.js +0 -1
  672. package/dist/server/index.d.ts.map +0 -1
  673. package/dist/server/normalize-url.d.ts.map +0 -1
  674. package/dist/server/normalize-url.test.cjs +0 -1
  675. package/dist/server/normalize-url.test.d.ts +0 -2
  676. package/dist/server/normalize-url.test.d.ts.map +0 -1
  677. package/dist/server/normalize-url.test.js +0 -1
  678. package/dist/server/types.d.ts.map +0 -1
  679. package/dist/static/image/ConsentManagerProvider-Basic-Request-Behavior-should-make-a-new-request-when-core-options-change-1.png +0 -0
  680. package/dist/static/image/ConsentManagerProvider-Basic-Request-Behavior-should-not-make-additional-requests-when-props-change-but-core-options-remain-same-1.png +0 -0
  681. package/dist/static/image/ConsentManagerProvider-Basic-Request-Behavior-should-only-make-one-initial-request-for-consent-banner-status-1.png +0 -0
  682. package/dist/static/image/ConsentManagerProvider-Hydration-Behavior-should-handle-rapid-re-renders-without-blocking-children-1.png +0 -0
  683. package/dist/static/image/ConsentManagerProvider-Hydration-Behavior-should-not-block-SSR-provider-content-when-SSR-provider-wraps-ConsentManager-1.png +0 -0
  684. package/dist/static/image/ConsentManagerProvider-Hydration-Behavior-should-render-children-immediately-without-blocking-during-hydration-1.png +0 -0
  685. package/dist/static/image/ConsentManagerProvider-Hydration-Behavior-should-use-startTransition-for-non-blocking-state-updates-during-hydration-1.png +0 -0
  686. package/dist/static/image/useColorScheme-cleans-up-system-preference-listener-on-unmount-1.png +0 -0
  687. package/dist/static/image/useColorScheme-handles-default-theme-based-on-document-class-1.png +0 -0
  688. package/dist/static/image/useColorScheme-responds-to-system-preference-1.png +0 -0
  689. package/dist/static/image/useColorScheme-sets-dark-theme-correctly-1.png +0 -0
  690. package/dist/static/image/useColorScheme-updates-theme-when-default-theme-changes-1.png +0 -0
  691. package/dist/static/image/useColorScheme-updates-theme-when-system-preference-changes-1.png +0 -0
  692. package/dist/static/image/useConsentManager-provides-manager-object-when-configured-1.png +0 -0
  693. package/dist/static/image/useStyles-handles-string-className-correctly-1.png +0 -0
  694. package/dist/static/image/useStyles-merges-theme-and-component-styles-correctly-1.png +0 -0
  695. package/dist/static/image/useStyles-should-remove-base-default-styles-but-keep-theme-and-component-classNames-when-noStyle--true-1.png +0 -0
  696. package/dist/static/image/useStyles-should-remove-default-styles-but-keep-custom-classNames-when-theme-object-provides-noStyle--true-1.png +0 -0
  697. package/dist/static/image/useTheme-local-theme-takes-precedence-over-global-theme-1.png +0 -0
  698. package/dist/static/image/useTranslations-Custom-English-instead-of-English-when-German-is-selected-1.png +0 -0
  699. package/dist/static/image/useTranslations-falls-back-to-English-when-selected-language-is-not-available-1.png +0 -0
  700. package/dist/static/image/useTranslations-merges-custom-translations-with-defaults-1.png +0 -0
  701. package/dist/static/image/useTranslations-returns-English-translations-by-default-1.png +0 -0
  702. package/dist/test-setup.browser.cjs +0 -1
  703. package/dist/test-setup.browser.d.ts +0 -8
  704. package/dist/test-setup.browser.d.ts.map +0 -1
  705. package/dist/test-setup.browser.js +0 -1
  706. package/dist/types/consent-manager.d.ts.map +0 -1
  707. package/dist/types/theme/index.d.ts.map +0 -1
  708. package/dist/types/theme/style-keys.d.ts.map +0 -1
  709. package/dist/types/theme/style-types.d.ts.map +0 -1
  710. package/dist/utils/cn.d.ts.map +0 -1
  711. package/dist/utils/merge-styles.d.ts.map +0 -1
  712. package/dist/utils/test-helpers.d.ts.map +0 -1
  713. package/dist/utils/theme-utils.d.ts.map +0 -1
  714. package/dist/version.d.ts +0 -2
  715. package/dist/version.d.ts.map +0 -1
@@ -0,0 +1,113 @@
1
+ ---
2
+ title: Tailwind CSS
3
+ description: Use Tailwind CSS utility classes to style consent components via the slot system.
4
+ ---
5
+ c15t works with Tailwind CSS out of the box. Use the `slots` theme option to apply Tailwind utility classes to any component part.
6
+
7
+ ## Setup
8
+
9
+ Import the standard c15t stylesheet once in your app-level CSS entrypoint:
10
+
11
+ ```css
12
+ /* React: src/index.css */
13
+ @import "@c15t/react/styles.css";
14
+
15
+ /* Next.js: app/globals.css */
16
+ @import "@c15t/nextjs/styles.css";
17
+ ```
18
+
19
+ Keeping the c15t stylesheet in your global CSS entrypoint makes layer and cascade order explicit. JS/TSX side-effect imports can load in a different order across framework and Tailwind tooling, which makes style regressions harder to debug.
20
+
21
+ ### Tailwind v4
22
+
23
+ Tailwind v4 automatically scans your source files. Import Tailwind normally, then place the c15t stylesheet immediately after it. c15t component styles join Tailwind's `components` layer automatically, so no extra c15t-specific layer declaration is needed:
24
+
25
+ ```css title="src/index.css"
26
+ @import "tailwindcss";
27
+ @import "@c15t/react/styles.css";
28
+ ```
29
+
30
+ ```css title="app/globals.css"
31
+ @import "tailwindcss";
32
+ @import "@c15t/nextjs/styles.css";
33
+ ```
34
+
35
+ ### Tailwind v3
36
+
37
+ Import the Tailwind 3-compatible c15t stylesheet after `@tailwind components;` and before `@tailwind utilities;`:
38
+
39
+ ```css title="src/index.css"
40
+ @tailwind base;
41
+ @tailwind components;
42
+ @import "@c15t/react/styles.tw3.css";
43
+ @tailwind utilities;
44
+ ```
45
+
46
+ ```css title="app/globals.css"
47
+ @tailwind base;
48
+ @tailwind components;
49
+ @import "@c15t/nextjs/styles.tw3.css";
50
+ @tailwind utilities;
51
+ ```
52
+
53
+ ## Using Tailwind with Slots
54
+
55
+ Apply Tailwind classes via the theme's `slots` object:
56
+
57
+ ```tsx
58
+ import { type ReactNode } from 'react';
59
+ import { type Theme, ConsentManagerProvider } from '@c15t/react';
60
+
61
+ const theme = {
62
+ slots: {
63
+ consentBanner: 'fixed bottom-0 inset-x-0 z-50',
64
+ consentBannerCard: 'mx-auto max-w-2xl rounded-t-2xl bg-white p-6 shadow-2xl',
65
+ consentBannerTitle: 'text-lg font-semibold text-gray-900',
66
+ consentBannerDescription: 'mt-2 text-sm text-gray-600',
67
+ consentBannerFooter: 'mt-4 flex flex-wrap gap-3',
68
+ buttonPrimary: 'rounded-full bg-indigo-600 px-6 py-2.5 text-sm font-medium text-white hover:bg-indigo-700',
69
+ buttonSecondary: 'rounded-full border border-gray-300 px-6 py-2.5 text-sm font-medium text-gray-700 hover:bg-gray-50',
70
+ toggle: 'data-[state=checked]:bg-indigo-600',
71
+ },
72
+ } satisfies Theme;
73
+
74
+ export function ConsentManager({ children }: { children: ReactNode }) {
75
+ return (
76
+ <ConsentManagerProvider options={{ theme, mode: 'hosted', backendURL: 'https://your-instance.c15t.dev' }}>
77
+ {children}
78
+ </ConsentManagerProvider>
79
+ );
80
+ }
81
+ ```
82
+
83
+ ## Dark Mode with Tailwind
84
+
85
+ Combine Tailwind's dark mode with c15t's `dark` tokens:
86
+
87
+ ```tsx
88
+ const theme = {
89
+ colors: {
90
+ primary: '#6366f1',
91
+ surface: '#ffffff',
92
+ text: '#1f2937',
93
+ },
94
+ dark: {
95
+ primary: '#818cf8',
96
+ surface: '#1f2937',
97
+ text: '#f9fafb',
98
+ },
99
+ slots: {
100
+ consentBannerCard: 'bg-white dark:bg-gray-900 shadow-lg dark:shadow-gray-900/30',
101
+ consentBannerTitle: 'text-gray-900 dark:text-gray-100',
102
+ },
103
+ } satisfies Theme;
104
+ ```
105
+
106
+ ## Optional: noStyle Mode
107
+
108
+ If you want Tailwind to own all layout and visual styling, use `noStyle: true`.
109
+
110
+ > ℹ️ **Info:**
111
+ > When using noStyle: true with Tailwind, you're responsible for all layout and visual styling. Start with slots first, then switch to noStyle only when you need full control.
112
+
113
+ For full custom markup (not just styles), see [Headless Mode](../headless).
@@ -0,0 +1,216 @@
1
+ ---
2
+ title: Design Tokens
3
+ description: The six base token categories that control colors, typography, spacing, radius, shadows, and motion, plus optional dark-mode overrides.
4
+ ---
5
+ ## Color Tokens
6
+
7
+ Color tokens define the palette for all consent components. Set `colors` for light mode and `dark` for dark mode overrides.
8
+
9
+ When `textOnPrimary` is omitted, c15t derives it automatically from `primary` to keep text readable on primary-filled surfaces such as stock branding tags and buttons. Set `textOnPrimary` explicitly when you need a specific foreground color.
10
+
11
+ ```tsx
12
+ const theme = {
13
+ colors: {
14
+ primary: '#6366f1',
15
+ primaryHover: '#4f46e5',
16
+ surface: '#ffffff',
17
+ surfaceHover: '#f9fafb',
18
+ border: '#e5e7eb',
19
+ borderHover: '#d1d5db',
20
+ text: '#1f2937',
21
+ textMuted: '#6b7280',
22
+ textOnPrimary: '#ffffff',
23
+ overlay: 'rgba(0, 0, 0, 0.5)',
24
+ switchTrack: '#d1d5db',
25
+ switchTrackActive: '#6366f1',
26
+ switchThumb: '#ffffff',
27
+ },
28
+ dark: {
29
+ primary: '#818cf8',
30
+ surface: '#1f2937',
31
+ text: '#f9fafb',
32
+ textMuted: '#9ca3af',
33
+ border: '#374151',
34
+ },
35
+ } satisfies Theme;
36
+ ```
37
+
38
+ ### ColorTokens
39
+
40
+ |Property|Type|Description|Default|Required|
41
+ |:--|:--|:--|:--|:--:|
42
+ |primary|string \|undefined|Primary brand/accent color for interactive elements.|-|Optional|
43
+ |primaryHover|string \|undefined|Hover/active state for primary elements.|-|Optional|
44
+ |surface|string \|undefined|Main background color for panels and containers.|-|Optional|
45
+ |surfaceHover|string \|undefined|Hover state for surface elements.|-|Optional|
46
+ |border|string \|undefined|Border color for containers and inputs.|-|Optional|
47
+ |borderHover|string \|undefined|Hover state for bordered elements.|-|Optional|
48
+ |text|string \|undefined|Primary text color for headings and body.|-|Optional|
49
+ |textMuted|string \|undefined|Muted text color for secondary content.|-|Optional|
50
+ |textOnPrimary|string \|undefined|Text color for content on primary background. Auto-derived from \`primary\` when omitted.|-|Optional|
51
+ |overlay|string \|undefined|Overlay color for modal backdrops.|-|Optional|
52
+ |switchTrack|string \|undefined|Toggle track color (off state).|-|Optional|
53
+ |switchTrackActive|string \|undefined|Toggle track color (on state).|-|Optional|
54
+ |switchThumb|string \|undefined|Toggle thumb color.|-|Optional|
55
+
56
+ ## Typography Tokens
57
+
58
+ Control font family, sizes, weights, and line heights.
59
+
60
+ ```tsx
61
+ const theme = {
62
+ typography: {
63
+ fontFamily: 'Inter, system-ui, sans-serif',
64
+ fontSize: { sm: '0.875rem', base: '1rem', lg: '1.125rem' },
65
+ fontWeight: { normal: 400, medium: 500, semibold: 600 },
66
+ lineHeight: { tight: '1.25', normal: '1.5', relaxed: '1.75' },
67
+ },
68
+ } satisfies Theme;
69
+ ```
70
+
71
+ ### TypographyTokens
72
+
73
+ |Property|Type|Description|Default|Required|
74
+ |:--|:--|:--|:--|:--:|
75
+ |fontFamily|string \|undefined|Font family for all components.|-|Optional|
76
+ |fontSize|Object \|undefined|Font sizes for text hierarchy.|-|Optional|
77
+ |fontWeight|Object \|undefined|Font weights for emphasis.|-|Optional|
78
+ |lineHeight|Object \|undefined|Line heights for readability.|-|Optional|
79
+
80
+ #### `fontSize`
81
+
82
+ Font sizes for text hierarchy.
83
+
84
+ |Property|Type|Description|Default|Required|
85
+ |:--|:--|:--|:--|:--:|
86
+ |sm|string \|undefined|@default '0.875rem'|-|Optional|
87
+ |base|string \|undefined|@default '1rem'|-|Optional|
88
+ |lg|string \|undefined|@default '1.125rem'|-|Optional|
89
+
90
+ #### `fontWeight`
91
+
92
+ Font weights for emphasis.
93
+
94
+ |Property|Type|Description|Default|Required|
95
+ |:--|:--|:--|:--|:--:|
96
+ |normal|number \|undefined|@default 400|-|Optional|
97
+ |medium|number \|undefined|@default 500|-|Optional|
98
+ |semibold|number \|undefined|@default 600|-|Optional|
99
+
100
+ #### `lineHeight`
101
+
102
+ Line heights for readability.
103
+
104
+ |Property|Type|Description|Default|Required|
105
+ |:--|:--|:--|:--|:--:|
106
+ |tight|string \|undefined|@default '1.25'|-|Optional|
107
+ |normal|string \|undefined|@default '1.5'|-|Optional|
108
+ |relaxed|string \|undefined|@default '1.75'|-|Optional|
109
+
110
+ ## Spacing Tokens
111
+
112
+ Five-step scale for internal padding, margins, and gaps.
113
+
114
+ ```tsx
115
+ const theme = {
116
+ spacing: {
117
+ xs: '0.25rem', // 4px
118
+ sm: '0.5rem', // 8px
119
+ md: '1rem', // 16px
120
+ lg: '1.5rem', // 24px
121
+ xl: '2rem', // 32px
122
+ },
123
+ } satisfies Theme;
124
+ ```
125
+
126
+ ### SpacingTokens
127
+
128
+ |Property|Type|Description|Default|Required|
129
+ |:--|:--|:--|:--|:--:|
130
+ |xs|string \|undefined|@default '0.25rem' (4px)|'0.25rem' (4px)|Optional|
131
+ |sm|string \|undefined|@default '0.5rem' (8px)|'0.5rem' (8px)|Optional|
132
+ |md|string \|undefined|@default '1rem' (16px)|'1rem' (16px)|Optional|
133
+ |lg|string \|undefined|@default '1.5rem' (24px)|'1.5rem' (24px)|Optional|
134
+ |xl|string \|undefined|@default '2rem' (32px)|'2rem' (32px)|Optional|
135
+
136
+ ## Radius Tokens
137
+
138
+ Border radius scale for rounded corners.
139
+
140
+ ```tsx
141
+ const theme = {
142
+ radius: {
143
+ sm: '0.25rem', // 4px
144
+ md: '0.5rem', // 8px
145
+ lg: '0.75rem', // 12px
146
+ full: '9999px', // Pill shape
147
+ },
148
+ } satisfies Theme;
149
+ ```
150
+
151
+ ### RadiusTokens
152
+
153
+ |Property|Type|Description|Default|Required|
154
+ |:--|:--|:--|:--|:--:|
155
+ |sm|string \|undefined|@default '0.25rem' (4px)|'0.25rem' (4px)|Optional|
156
+ |md|string \|undefined|@default '0.5rem' (8px)|'0.5rem' (8px)|Optional|
157
+ |lg|string \|undefined|@default '0.75rem' (12px)|'0.75rem' (12px)|Optional|
158
+ |full|string \|undefined|@default '9999px'|'9999px'|Optional|
159
+
160
+ ## Shadow Tokens
161
+
162
+ Box shadow scale for depth and elevation.
163
+
164
+ ```tsx
165
+ const theme = {
166
+ shadows: {
167
+ sm: '0 1px 2px hsla(0, 0%, 0%, 0.05)',
168
+ md: '0 4px 12px hsla(0, 0%, 0%, 0.08)',
169
+ lg: '0 8px 24px hsla(0, 0%, 0%, 0.12)',
170
+ },
171
+ } satisfies Theme;
172
+ ```
173
+
174
+ ### ShadowTokens
175
+
176
+ |Property|Type|Description|Default|Required|
177
+ |:--|:--|:--|:--|:--:|
178
+ |sm|string \|undefined|@default '0 1px 2px hsla(0, 0%, 0%, 0.05)'|'0 1px 2px hsla(0, 0%, 0%, 0.05)'|Optional|
179
+ |md|string \|undefined|@default '0 4px 12px hsla(0, 0%, 0%, 0.08)'|'0 4px 12px hsla(0, 0%, 0%, 0.08)'|Optional|
180
+ |lg|string \|undefined|@default '0 8px 24px hsla(0, 0%, 0%, 0.12)'|'0 8px 24px hsla(0, 0%, 0%, 0.12)'|Optional|
181
+
182
+ ## Motion Tokens
183
+
184
+ Animation duration and easing presets.
185
+
186
+ ```tsx
187
+ const theme = {
188
+ motion: {
189
+ duration: { fast: '100ms', normal: '200ms', slow: '300ms' },
190
+ easing: 'cubic-bezier(0.4, 0, 0.2, 1)',
191
+ easingOut: 'cubic-bezier(0.215, 0.61, 0.355, 1)',
192
+ easingInOut: 'cubic-bezier(0.645, 0.045, 0.355, 1)',
193
+ easingSpring: 'cubic-bezier(0.34, 1.56, 0.64, 1)',
194
+ },
195
+ } satisfies Theme;
196
+ ```
197
+
198
+ ### MotionTokens
199
+
200
+ |Property|Type|Description|Default|Required|
201
+ |:--|:--|:--|:--|:--:|
202
+ |duration|Object \|undefined|Duration presets for transitions.|-|Optional|
203
+ |easing|string \|undefined|Default CSS easing function for general animation curves.|'cubic-bezier(0.4, 0, 0.2, 1)'|Optional|
204
+ |easingOut|string \|undefined|CSS easing function for enter/exit animations. Use for modals, tooltips, dropdowns, and any element entering or exiting.|'cubic-bezier(0.215, 0.61, 0.355, 1)'|Optional|
205
+ |easingInOut|string \|undefined|CSS easing function for on-screen movement. Use when elements already on screen need to move or morph.|'cubic-bezier(0.645, 0.045, 0.355, 1)'|Optional|
206
+ |easingSpring|string \|undefined|CSS easing function with spring-like overshoot. Use for playful, bouncy animations.|'cubic-bezier(0.34, 1.56, 0.64, 1)'|Optional|
207
+
208
+ #### `duration`
209
+
210
+ Duration presets for transitions.
211
+
212
+ |Property|Type|Description|Default|Required|
213
+ |:--|:--|:--|:--|:--:|
214
+ |fast|string \|undefined|@default '100ms'|-|Optional|
215
+ |normal|string \|undefined|@default '200ms'|-|Optional|
216
+ |slow|string \|undefined|@default '300ms'|-|Optional|
@@ -0,0 +1,137 @@
1
+ ---
2
+ title: Troubleshooting
3
+ description: Solutions for common issues with @c15t/react — provider errors, missing banners, consent persistence, and more.
4
+ ---
5
+ ## "Provider not found" Error
6
+
7
+ **Symptom:** `useConsentManager must be used within a ConsentManagerProvider` error.
8
+
9
+ **Fix:** Ensure the component calling `useConsentManager()` (or any c15t hook) is rendered inside a `ConsentManagerProvider`:
10
+
11
+ ```tsx
12
+ // Wrong — hook is outside the provider
13
+ function App() {
14
+ const { consents } = useConsentManager(); // throws
15
+ return <ConsentManagerProvider options={...}>...</ConsentManagerProvider>;
16
+ }
17
+
18
+ // Correct — hook is inside the provider
19
+ function App() {
20
+ return (
21
+ <ConsentManagerProvider options={...}>
22
+ <MyComponent /> {/* useConsentManager works here */}
23
+ </ConsentManagerProvider>
24
+ );
25
+ }
26
+ ```
27
+
28
+ ## Banner Doesn't Show
29
+
30
+ **Possible causes:**
31
+
32
+ 1. **Opt-out jurisdiction** — In CCPA/opt-out regions, the banner is not shown because tracking is allowed by default. Check `model` from `useConsentManager()` — if it's `'opt-out'`, the banner is intentionally hidden.
33
+
34
+ 2. **Consent already given** — If the user has already made a consent choice, the banner won't reappear. Clear cookies or use `resetConsents()` to test again.
35
+
36
+ 3. **`activeUI` is `'none'`** — Something is explicitly setting `activeUI` to `'none'`. Check the DevTools panel for the current consent state.
37
+
38
+ 4. **Backend not responding** — In `'c15t'` mode, the banner waits for the backend `/init` response. Check the Network tab for failed requests to your `backendURL`.
39
+
40
+ ```tsx
41
+ // Debug: check what the consent manager sees
42
+ const { activeUI, model, isLoadingConsentInfo } = useConsentManager();
43
+ console.log({ activeUI, model, isLoadingConsentInfo });
44
+ ```
45
+
46
+ ## Consent Not Persisting
47
+
48
+ **Symptom:** Consent is lost after page reload.
49
+
50
+ **Possible causes:**
51
+
52
+ 1. **Incognito/private mode** — Some browsers restrict cookie storage in private browsing.
53
+
54
+ 2. **Cookie settings** — In `'offline'` mode, consent is stored in cookies. Ensure cookies are not being blocked by browser settings or extensions.
55
+
56
+ 3. **Different domains** — Cookies are domain-scoped. If your dev server uses a different domain than production, consent won't carry over.
57
+
58
+ 4. **Backend errors** — In `'c15t'` mode, check that the backend is saving consent successfully. Enable `debug: true` in provider options to see detailed logs.
59
+
60
+ ## Scripts Not Loading
61
+
62
+ **Symptom:** Third-party scripts configured in the `scripts` option don't load after consent is granted.
63
+
64
+ **Checklist:**
65
+
66
+ 1. **Wrong category name** — The `category` on the script must match one of the `consentCategories` names. For example, `'measurement'` not `'analytics'`.
67
+
68
+ 2. **Consent condition not met** — Use `has('measurement')` to verify the category is actually consented.
69
+
70
+ 3. **Script error** — Check the browser DevTools Console for script loading errors. The `onError` callback can help debug:
71
+
72
+ ```tsx
73
+ {
74
+ id: 'analytics',
75
+ src: 'https://...',
76
+ category: 'measurement',
77
+ onError: ({ error }) => console.error('Script failed:', error),
78
+ }
79
+ ```
80
+
81
+ 4. **Ad blocker** — Browser extensions may block the script regardless of consent. The `anonymizeId` option (default: `true`) helps avoid pattern-based blocking.
82
+
83
+ ## SSR Hydration Mismatch
84
+
85
+ **Symptom:** React hydration warnings, consent banner flashes briefly, or consent state differs between server and client.
86
+
87
+ **Fixes:**
88
+
89
+ 1. **Missing `ssrData`** — Ensure you're passing the SSR data Promise to the provider:
90
+
91
+ ```tsx
92
+ <ConsentManagerProvider
93
+ options={{
94
+ mode: 'hosted',
95
+ backendURL: '...',
96
+ ssrData: fetchSSRData({ backendURL: '...', headers }),
97
+ }}
98
+ >
99
+ ```
100
+
101
+ 2. **Stale cache** — If using a CDN or caching layer, ensure the SSR data is fresh per-request and not shared across users.
102
+
103
+ 3. **Debug with `useSSRStatus`** — Check if SSR data was actually consumed:
104
+
105
+ ```tsx
106
+ const { ssrDataUsed, ssrSkippedReason } = useSSRStatus();
107
+ ```
108
+
109
+ See [Server-Side Utilities](/docs/frameworks/react/server-side) for full SSR setup.
110
+
111
+ ## TypeScript Errors
112
+
113
+ **Common import issues:**
114
+
115
+ ```tsx
116
+ // Components and hooks — main entry point
117
+ import { ConsentManagerProvider, useConsentManager } from '@c15t/react';
118
+
119
+ // Server utilities — separate entry point
120
+ import { fetchSSRData } from '@c15t/react/server';
121
+
122
+ // Headless (hooks only, no components)
123
+ import { useConsentManager } from '@c15t/react/headless';
124
+ ```
125
+
126
+ If you see type errors after updating, try:
127
+
128
+ ```sh
129
+ rm -rf node_modules/.cache
130
+ bun install
131
+ ```
132
+
133
+ ## Still Stuck?
134
+
135
+ * Enable `debug: true` in provider options for verbose console logging
136
+ * Use the [DevTools](/docs/frameworks/react/components/dev-tools) panel to inspect live consent state
137
+ * Check the [GitHub issues](https://github.com/c15t/c15t/issues) for known bugs
package/iab/styles.css ADDED
@@ -0,0 +1 @@
1
+ @import "../dist/iab/styles.css";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@c15t/react",
3
- "version": "2.0.0-rc.1",
3
+ "version": "2.0.0-rc.12",
4
4
  "description": "Developer-first CMP for React: cookie banner, consent manager, preferences centre. GDPR ready with minimal setup and rich customization",
5
5
  "keywords": [
6
6
  "react",
@@ -25,74 +25,136 @@
25
25
  "url": "https://github.com/c15t/c15t.git",
26
26
  "directory": "packages/react"
27
27
  },
28
- "license": "GPL-3.0-only",
29
- "sideEffects": false,
28
+ "license": "Apache-2.0",
29
+ "sideEffects": [
30
+ "**/*.css"
31
+ ],
30
32
  "type": "module",
31
33
  "exports": {
34
+ "./styles.css": "./dist/styles.css",
35
+ "./styles.tw3.css": "./dist/styles.tw3.css",
36
+ "./iab/styles.css": "./dist/iab/styles.css",
37
+ "./iab/styles.tw3.css": "./dist/iab/styles.tw3.css",
38
+ "./primitives": {
39
+ "types": "./dist-types/primitives.d.ts",
40
+ "import": "./dist/primitives.js",
41
+ "require": "./dist/primitives.cjs"
42
+ },
43
+ "./primitives/*": {
44
+ "types": "./dist-types/primitives/*.d.ts",
45
+ "import": "./dist/primitives/*.js",
46
+ "require": "./dist/primitives/*.cjs"
47
+ },
32
48
  "./server": {
33
- "types": "./dist/server/index.d.ts",
49
+ "types": "./dist-types/server/index.d.ts",
34
50
  "import": "./dist/server/index.js",
35
51
  "require": "./dist/server/index.cjs"
36
52
  },
37
53
  "./headless": {
38
- "types": "./dist/headless.d.ts",
54
+ "types": "./dist-types/headless.d.ts",
39
55
  "import": "./dist/headless.js",
40
56
  "require": "./dist/headless.cjs"
41
57
  },
42
58
  "./preference-center": {
43
- "types": "./dist/components/preference-center/index.d.ts",
59
+ "types": "./dist-types/components/preference-center/index.d.ts",
44
60
  "import": "./dist/components/preference-center/index.js",
45
61
  "require": "./dist/components/preference-center/index.cjs"
46
62
  },
47
63
  "./preference-center-widget": {
48
- "types": "./dist/components/preference-center-widget/index.d.ts",
64
+ "types": "./dist-types/components/preference-center-widget/index.d.ts",
49
65
  "import": "./dist/components/preference-center-widget/index.js",
50
66
  "require": "./dist/components/preference-center-widget/index.cjs"
51
67
  },
52
68
  "./cookie-banner": {
53
- "types": "./dist/components/cookie-banner/index.d.ts",
69
+ "types": "./dist-types/components/cookie-banner/index.d.ts",
54
70
  "import": "./dist/components/cookie-banner/index.js",
55
71
  "require": "./dist/components/cookie-banner/index.cjs"
56
72
  },
73
+ "./components/consent-banner": {
74
+ "types": "./dist-types/components/consent-banner/index.d.ts",
75
+ "import": "./client/components/consent-banner.js",
76
+ "require": "./dist/components/consent-banner/index.cjs"
77
+ },
78
+ "./components/consent-dialog": {
79
+ "types": "./dist-types/components/consent-dialog/index.d.ts",
80
+ "import": "./client/components/consent-dialog.js",
81
+ "require": "./dist/components/consent-dialog/index.cjs"
82
+ },
83
+ "./components/consent-dialog-trigger": {
84
+ "types": "./dist-types/components/consent-dialog-trigger/index.d.ts",
85
+ "import": "./client/components/consent-dialog-trigger.js",
86
+ "require": "./dist/components/consent-dialog-trigger/index.cjs"
87
+ },
88
+ "./components/consent-dialog-link": {
89
+ "types": "./dist-types/components/consent-dialog-link/index.d.ts",
90
+ "import": "./client/components/consent-dialog-link.js",
91
+ "require": "./dist/components/consent-dialog-link/index.cjs"
92
+ },
93
+ "./components/consent-widget": {
94
+ "types": "./dist-types/components/consent-widget/index.d.ts",
95
+ "import": "./client/components/consent-widget.js",
96
+ "require": "./dist/components/consent-widget/index.cjs"
97
+ },
98
+ "./components/frame": {
99
+ "types": "./dist-types/components/frame/index.d.ts",
100
+ "import": "./client/components/frame.js",
101
+ "require": "./dist/components/frame/index.cjs"
102
+ },
103
+ "./iab": {
104
+ "types": "./dist-types/iab.d.ts",
105
+ "import": "./dist/iab.js",
106
+ "require": "./dist/iab.cjs"
107
+ },
57
108
  "./hooks": {
58
- "types": "./dist/hooks/index.d.ts",
109
+ "types": "./dist-types/hooks/index.d.ts",
59
110
  "import": "./dist/hooks/index.js",
60
111
  "require": "./dist/hooks/index.cjs"
61
112
  },
62
113
  "./context": {
63
- "types": "./dist/context/index.d.ts",
114
+ "types": "./dist-types/context/index.d.ts",
64
115
  "import": "./dist/context/index.js",
65
116
  "require": "./dist/context/index.cjs"
66
117
  },
67
118
  "./types": {
68
- "types": "./dist/types/index.d.ts",
119
+ "types": "./dist-types/types/index.d.ts",
69
120
  "import": "./dist/types/index.js",
70
121
  "require": "./dist/types/index.cjs"
71
122
  },
72
123
  "./utils": {
73
- "types": "./dist/utils/index.d.ts",
124
+ "types": "./dist-types/utils/index.d.ts",
74
125
  "import": "./dist/utils/index.js",
75
126
  "require": "./dist/utils/index.cjs"
76
127
  },
77
128
  ".": {
78
- "types": "./dist/index.d.ts",
129
+ "types": "./dist-types/index.d.ts",
79
130
  "import": "./dist/index.js",
80
131
  "require": "./dist/index.cjs"
81
132
  }
82
133
  },
83
134
  "main": "./dist/index.cjs",
84
135
  "module": "./dist/index.js",
85
- "types": "./dist/index.d.ts",
136
+ "types": "./dist-types/index.d.ts",
86
137
  "files": [
87
- "dist"
138
+ "dist",
139
+ "docs",
140
+ "dist-types",
141
+ "client",
142
+ "styles.css",
143
+ "iab",
144
+ "src/styles.tw3.css",
145
+ "src/iab/styles.tw3.css",
146
+ "!dist/mockServiceWorker.js"
88
147
  ],
89
148
  "scripts": {
90
149
  "prebuild": "genversion --esm --semi src/version.ts",
91
- "build": "bun prebuild && rslib build",
150
+ "build": "bun prebuild && rslib build && bun ../../scripts/normalize-dist-types.mjs && bun scripts/generate-distribution-css.ts && bun run clean:dist:test-artifacts && bun ../../scripts/agent-docs/generate-package-docs.ts @c15t/react",
151
+ "build:agent-docs": "bun ../../scripts/agent-docs/generate-package-docs.ts @c15t/react",
92
152
  "check-types": "bun prebuild && tsc --noEmit",
93
- "dev": "bun prebuild && rslib build",
153
+ "clean:dist:test-artifacts": "bun --eval \"import { rmSync } from 'node:fs'; rmSync('dist/mockServiceWorker.js', { force: true });\"",
154
+ "dev": "bun prebuild && rslib build && bun ../../scripts/normalize-dist-types.mjs && bun scripts/generate-distribution-css.ts",
94
155
  "fmt": "bun biome format --write . && bun biome check --formatter-enabled=false --linter-enabled=false --write",
95
156
  "lint": "bun biome lint ./src",
157
+ "prepack": "cd ../.. && bunx turbo run build --filter=@c15t/react",
96
158
  "test": "bun prebuild && vitest run",
97
159
  "test:watch": "bun prebuild && vitest"
98
160
  },
@@ -102,19 +164,17 @@
102
164
  "not op_mini all"
103
165
  ],
104
166
  "dependencies": {
105
- "@c15t/ui": "2.0.0-rc.1",
106
- "@radix-ui/react-accordion": "1.2.12",
107
- "@radix-ui/react-slot": "1.2.4",
108
- "@radix-ui/react-switch": "1.2.6",
109
- "c15t": "2.0.0-rc.1",
110
- "clsx": "2.1.1"
167
+ "@c15t/ui": "2.0.0-rc.11",
168
+ "c15t": "2.0.0-rc.10"
111
169
  },
112
170
  "devDependencies": {
113
- "@c15t/backend": "2.0.0-rc.1",
171
+ "@c15t/backend": "2.0.0-rc.10",
172
+ "@c15t/iab": "2.0.0-rc.10",
114
173
  "@c15t/typescript-config": "0.0.1-beta.1",
115
174
  "@c15t/vitest-config": "1.0.0",
175
+ "@iabtechlabtcf/core": "^1.5.20",
116
176
  "genversion": "3.2.0",
117
- "msw": "^2.12.7"
177
+ "msw": "^2.12.14"
118
178
  },
119
179
  "peerDependencies": {
120
180
  "react": "^19.0.0 || ^19.0.0-rc || ^18.0.0 || ^17.0.0 || ^16.8.0",
package/readme.json CHANGED
@@ -21,6 +21,12 @@
21
21
  "",
22
22
  "```bash\npnpm add @c15t/react\n```",
23
23
  "",
24
+ "Then add the prebuilt stylesheet to your app-level CSS entrypoint:",
25
+ "",
26
+ "```css\n/* src/index.css */\n@import \"@c15t/react/styles.css\";\n```",
27
+ "",
28
+ "If you use the prebuilt IAB TCF UI, also import `@c15t/react/iab/styles.css`. It is published separately so non-IAB apps do not ship those component rules.",
29
+ "",
24
30
  "To manually install, follow the guide in our [docs – manual setup](https://c15t.com/docs/frameworks/react/quickstart#manual-setup)."
25
31
  ],
26
32
  "usage": [
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @c15t/react — IAB TCF component styles.
3
+ *
4
+ * Add this stylesheet to the same global CSS entrypoint as your base c15t styles
5
+ * when using IAB consent components. Do not import either stylesheet from JS/TSX.
6
+ *
7
+ * Usage (src/index.css):
8
+ * @import "@c15t/react/styles.css";
9
+ * @import "@c15t/react/iab/styles.css";
10
+ */
11
+ @import "@c15t/ui/iab/styles.css";