@c15t/react 2.2.1 → 3.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (704) hide show
  1. package/AGENTS.md +88 -141
  2. package/README.md +2 -2
  3. package/dist/aggregate-components.js +2 -0
  4. package/dist/chunk-warming.js +1 -0
  5. package/dist/component-hooks/use-headless-consent-ui.js +2 -0
  6. package/dist/component-hooks/use-headless-iab-consent-ui.js +2 -0
  7. package/dist/component-hooks/use-manager.js +2 -0
  8. package/dist/component-hooks/use-panel-trigger.js +2 -0
  9. package/dist/component-hooks/use-translations.js +2 -0
  10. package/dist/components/consent-preferences-link/consent-preferences-link.js +2 -1
  11. package/dist/components/consent-preferences-link/index.js +1 -0
  12. package/dist/components/frame/atoms.js +1 -1
  13. package/dist/components/frame/frame.js +2 -1
  14. package/dist/components/frame/index.js +2 -1
  15. package/dist/components/iab-panel/atoms/card.js +2 -0
  16. package/dist/components/iab-panel/atoms/content.js +2 -0
  17. package/dist/components/iab-panel/atoms/footer.js +2 -0
  18. package/dist/components/iab-panel/atoms/header.js +2 -0
  19. package/dist/components/iab-panel/atoms/overlay.js +2 -0
  20. package/dist/components/iab-panel/atoms/purpose-item.js +2 -0
  21. package/dist/components/iab-panel/atoms/root.js +2 -0
  22. package/dist/components/iab-panel/atoms/stack-item.js +2 -0
  23. package/dist/components/iab-panel/atoms/tabs.js +2 -0
  24. package/dist/components/iab-panel/atoms/vendor-list.js +2 -0
  25. package/dist/components/iab-panel/hooks/use-display-model.js +2 -0
  26. package/dist/components/iab-panel/hooks/use-gvl-data.js +2 -0
  27. package/dist/components/iab-panel/iab-panel.js +2 -0
  28. package/dist/components/iab-panel/index.js +2 -0
  29. package/dist/components/iab-panel/use-iab-translations.js +1 -0
  30. package/dist/components/iab-prompt/atoms/button-group.js +2 -0
  31. package/dist/components/iab-prompt/atoms/card.js +2 -0
  32. package/dist/components/iab-prompt/atoms/description.js +2 -0
  33. package/dist/components/iab-prompt/atoms/footer.js +2 -0
  34. package/dist/components/iab-prompt/atoms/header.js +2 -0
  35. package/dist/components/iab-prompt/atoms/overlay.js +2 -0
  36. package/dist/components/iab-prompt/atoms/root.js +2 -0
  37. package/dist/components/iab-prompt/atoms/title.js +2 -0
  38. package/dist/components/iab-prompt/iab-prompt.js +2 -0
  39. package/dist/components/iab-prompt/index.js +2 -0
  40. package/dist/components/panel/atoms/card.js +2 -0
  41. package/dist/components/panel/atoms/overlay.js +1 -0
  42. package/dist/components/panel/atoms/root.js +2 -0
  43. package/dist/components/panel/index.js +2 -0
  44. package/dist/components/panel/panel.js +2 -0
  45. package/dist/components/{consent-dialog-link → panel-link}/index.js +1 -0
  46. package/dist/components/panel-trigger/atoms/button.js +2 -0
  47. package/dist/components/panel-trigger/atoms/icon.js +2 -0
  48. package/dist/components/panel-trigger/atoms/root.js +2 -0
  49. package/dist/components/panel-trigger/atoms/text.js +2 -0
  50. package/dist/components/panel-trigger/atoms/toolbar.js +2 -0
  51. package/dist/components/panel-trigger/index.js +2 -0
  52. package/dist/components/panel-trigger/panel-trigger-toolbar.js +2 -0
  53. package/dist/components/panel-trigger/panel-trigger.js +2 -0
  54. package/dist/components/panel-trigger/use-draggable.js +2 -0
  55. package/dist/components/preferences/atoms/accordion.js +1 -0
  56. package/dist/components/preferences/atoms/button.js +1 -0
  57. package/dist/components/preferences/atoms/footer.js +1 -0
  58. package/dist/components/preferences/atoms/root.js +2 -0
  59. package/dist/components/preferences/index.js +2 -0
  60. package/dist/components/preferences/policy-actions.js +2 -0
  61. package/dist/components/preferences/preferences.js +2 -0
  62. package/dist/components/prompt/atoms/overlay.js +1 -0
  63. package/dist/components/prompt/atoms/root.js +2 -0
  64. package/dist/components/prompt/components.js +1 -0
  65. package/dist/components/prompt/error-boundary.js +2 -0
  66. package/dist/components/prompt/index.js +2 -0
  67. package/dist/components/prompt/policy-actions.js +2 -0
  68. package/dist/components/prompt/prompt.js +2 -0
  69. package/dist/components/prompt/resolve-banner-primary-actions.js +1 -0
  70. package/dist/components/prompt/surface-context.js +2 -0
  71. package/dist/components/prompt/use-banner-copy.js +2 -0
  72. package/dist/components/shared/libs/recursive-clone-children.js +1 -1
  73. package/dist/components/shared/libs/slot.js +1 -1
  74. package/dist/components/shared/libs/use-controllable-state.js +1 -1
  75. package/dist/components/shared/policy-actions.js +2 -1
  76. package/dist/components/shared/primitives/box.js +2 -1
  77. package/dist/components/shared/primitives/button.js +1 -1
  78. package/dist/components/shared/primitives/legal-links/index.js +1 -1
  79. package/dist/components/shared/ui/accordion/accordion.js +2 -1
  80. package/dist/components/shared/ui/animated-collapse/animated-collapse.js +2 -1
  81. package/dist/components/shared/ui/branding.js +1 -1
  82. package/dist/components/shared/ui/button/button.js +1 -1
  83. package/dist/components/shared/ui/collapsible/collapsible.js +2 -1
  84. package/dist/components/shared/ui/dialog/dialog.js +2 -1
  85. package/dist/components/shared/ui/icon.js +1 -1
  86. package/dist/components/shared/ui/logo.js +1 -1
  87. package/dist/components/shared/ui/preference-item/preference-item.js +2 -1
  88. package/dist/components/shared/ui/switch/switch.js +1 -1
  89. package/dist/components/shared/ui/tabs/tabs.js +2 -1
  90. package/dist/context/consent-tracking-context.js +1 -0
  91. package/dist/context/iab-context-value.js +1 -0
  92. package/dist/context/index.js +1 -0
  93. package/dist/context/theme-context.js +2 -1
  94. package/dist/context.js +1 -0
  95. package/dist/devtools.js +2 -0
  96. package/dist/draft.js +2 -0
  97. package/dist/external-iab-context.js +2 -0
  98. package/dist/frame.js +2 -0
  99. package/dist/headless.js +1 -1
  100. package/dist/hooks/use-color-scheme.js +2 -1
  101. package/dist/hooks/use-component-config.js +2 -1
  102. package/dist/hooks/use-focus-trap.js +2 -1
  103. package/dist/hooks/use-headless-iab-consent-ui.js +2 -1
  104. package/dist/hooks/use-iab-manager.js +2 -0
  105. package/dist/hooks/use-is-hydrated.js +2 -0
  106. package/dist/hooks/use-reduced-motion.js +2 -1
  107. package/dist/hooks/use-scroll-lock.js +2 -1
  108. package/dist/hooks/use-text-direction.js +2 -1
  109. package/dist/hooks/use-theme.js +2 -1
  110. package/dist/hooks.js +1 -0
  111. package/dist/iab/styles.css +1 -1
  112. package/dist/iab/styles.tw3.css +133 -19
  113. package/dist/iab-context.js +2 -0
  114. package/dist/iab.js +1 -1
  115. package/dist/index.js +1 -1
  116. package/dist/module-hooks/iframe-blocker.js +2 -0
  117. package/dist/module-hooks/network-blocker.js +2 -0
  118. package/dist/module-hooks/persistence.js +2 -0
  119. package/dist/module-hooks/script-loader.js +2 -0
  120. package/dist/module-hooks/shared.js +2 -0
  121. package/dist/module-hooks.js +2 -0
  122. package/dist/panel-link.js +2 -0
  123. package/dist/panel-trigger.js +2 -0
  124. package/dist/panel.js +2 -0
  125. package/dist/preferences.js +2 -0
  126. package/dist/primitives.js +1 -1
  127. package/dist/prompt.js +2 -0
  128. package/dist/provider.js +2 -0
  129. package/dist/server/fetch-ssr-data.js +1 -1
  130. package/dist/server/headers.js +1 -1
  131. package/dist/server/init-cache-key.js +1 -1
  132. package/dist/server/normalize-url.js +1 -1
  133. package/dist/styles.css +1 -1
  134. package/dist/styles.tw3.css +173 -29
  135. package/dist/theme-provider.js +2 -0
  136. package/dist/transports/offline.js +1 -0
  137. package/dist/types/index.js +1 -0
  138. package/dist/types/theme/index.js +1 -1
  139. package/dist/types/theme/style-types.js +1 -1
  140. package/dist/ui-config-context.js +2 -0
  141. package/dist/ui-save.js +1 -0
  142. package/dist/utils/cn.js +1 -1
  143. package/dist/utils/default-translation-config.js +1 -0
  144. package/dist/utils/index.js +1 -0
  145. package/dist/utils/merge-slot-props.js +1 -0
  146. package/dist/utils/merge-styles.js +1 -1
  147. package/dist/utils/theme-utils.js +1 -1
  148. package/dist/version.js +1 -1
  149. package/dist-types/aggregate-components.d.ts +4 -0
  150. package/dist-types/chunk-warming.d.ts +19 -0
  151. package/dist-types/component-hooks/use-headless-consent-ui.d.ts +68 -0
  152. package/dist-types/component-hooks/use-headless-iab-consent-ui.d.ts +22 -0
  153. package/dist-types/component-hooks/use-manager.d.ts +40 -0
  154. package/dist-types/component-hooks/use-panel-trigger.d.ts +20 -0
  155. package/dist-types/component-hooks/use-translations.d.ts +2 -0
  156. package/dist-types/components/consent-preferences-link/consent-preferences-link.d.ts +1 -1
  157. package/dist-types/components/frame/atoms.d.ts +5 -5
  158. package/dist-types/components/frame/types.d.ts +3 -2
  159. package/dist-types/components/{iab-consent-dialog → iab-panel}/atoms/card.d.ts +2 -1
  160. package/dist-types/components/{iab-consent-dialog → iab-panel}/atoms/content.d.ts +1 -1
  161. package/dist-types/components/{iab-consent-dialog → iab-panel}/atoms/footer.d.ts +1 -1
  162. package/dist-types/components/{iab-consent-dialog → iab-panel}/atoms/header.d.ts +1 -1
  163. package/dist-types/components/{iab-consent-dialog → iab-panel}/atoms/overlay.d.ts +1 -1
  164. package/dist-types/components/{iab-consent-dialog → iab-panel}/atoms/purpose-item.d.ts +7 -1
  165. package/dist-types/components/{iab-consent-dialog → iab-panel}/atoms/root.d.ts +3 -2
  166. package/dist-types/components/{iab-consent-dialog → iab-panel}/atoms/stack-item.d.ts +1 -1
  167. package/dist-types/components/{iab-consent-dialog → iab-panel}/atoms/tabs.d.ts +1 -1
  168. package/dist-types/components/{iab-consent-dialog → iab-panel}/atoms/vendor-list.d.ts +2 -3
  169. package/dist-types/components/iab-panel/hooks/use-display-model.d.ts +18 -0
  170. package/dist-types/components/iab-panel/hooks/use-gvl-data.d.ts +17 -0
  171. package/dist-types/components/{iab-consent-dialog/iab-consent-dialog.d.ts → iab-panel/iab-panel.d.ts} +10 -3
  172. package/dist-types/components/{iab-consent-dialog → iab-panel}/index.d.ts +3 -2
  173. package/dist-types/components/iab-panel/types.d.ts +1 -0
  174. package/dist-types/components/{iab-consent-dialog → iab-panel}/use-iab-translations.d.ts +3 -1
  175. package/dist-types/components/{iab-consent-banner → iab-prompt}/atoms/button-group.d.ts +1 -1
  176. package/dist-types/components/{iab-consent-banner → iab-prompt}/atoms/card.d.ts +2 -1
  177. package/dist-types/components/{iab-consent-banner → iab-prompt}/atoms/description.d.ts +1 -1
  178. package/dist-types/components/{iab-consent-banner → iab-prompt}/atoms/footer.d.ts +2 -1
  179. package/dist-types/components/{iab-consent-banner → iab-prompt}/atoms/header.d.ts +2 -1
  180. package/dist-types/components/{iab-consent-banner → iab-prompt}/atoms/overlay.d.ts +1 -1
  181. package/dist-types/components/{iab-consent-banner → iab-prompt}/atoms/root.d.ts +3 -2
  182. package/dist-types/components/{iab-consent-banner → iab-prompt}/atoms/title.d.ts +1 -1
  183. package/dist-types/components/{iab-consent-banner/iab-consent-banner.d.ts → iab-prompt/iab-prompt.d.ts} +10 -4
  184. package/dist-types/components/{iab-consent-banner → iab-prompt}/index.d.ts +1 -1
  185. package/dist-types/components/{consent-dialog → panel}/atoms/card.d.ts +15 -15
  186. package/dist-types/components/{consent-dialog → panel}/atoms/overlay.d.ts +24 -8
  187. package/dist-types/components/{consent-dialog → panel}/atoms/root.d.ts +4 -3
  188. package/dist-types/components/{consent-dialog → panel}/index.d.ts +13 -8
  189. package/dist-types/components/{consent-dialog/consent-dialog.d.ts → panel/panel.d.ts} +6 -5
  190. package/dist-types/components/{consent-dialog-trigger → panel-trigger}/atoms/button.d.ts +2 -1
  191. package/dist-types/components/{consent-dialog-trigger → panel-trigger}/atoms/icon.d.ts +1 -16
  192. package/dist-types/components/{consent-dialog-trigger → panel-trigger}/atoms/root.d.ts +11 -23
  193. package/dist-types/components/{consent-dialog-trigger → panel-trigger}/atoms/text.d.ts +0 -11
  194. package/dist-types/components/{consent-dialog-trigger → panel-trigger}/atoms/toolbar.d.ts +15 -4
  195. package/dist-types/components/{consent-dialog-trigger → panel-trigger}/index.d.ts +2 -2
  196. package/dist-types/components/{consent-dialog-trigger/consent-dialog-trigger-toolbar.d.ts → panel-trigger/panel-trigger-toolbar.d.ts} +0 -23
  197. package/dist-types/components/{consent-dialog-trigger/consent-dialog-trigger.d.ts → panel-trigger/panel-trigger.d.ts} +8 -4
  198. package/dist-types/components/{consent-dialog-trigger → panel-trigger}/types.d.ts +16 -7
  199. package/dist-types/components/{consent-dialog-trigger → panel-trigger}/use-draggable.d.ts +2 -9
  200. package/dist-types/components/{consent-widget → preferences}/atoms/accordion.d.ts +5 -5
  201. package/dist-types/components/{consent-widget → preferences}/atoms/footer.d.ts +3 -3
  202. package/dist-types/components/{consent-widget → preferences}/atoms/root.d.ts +1 -1
  203. package/dist-types/components/{consent-widget → preferences}/index.d.ts +11 -9
  204. package/dist-types/components/preferences/policy-actions.d.ts +10 -0
  205. package/dist-types/components/{consent-banner → prompt}/atoms/overlay.d.ts +1 -1
  206. package/dist-types/components/prompt/atoms/root.d.ts +78 -0
  207. package/dist-types/components/{consent-banner → prompt}/components.d.ts +99 -14
  208. package/dist-types/components/{consent-banner → prompt}/error-boundary.d.ts +3 -1
  209. package/dist-types/components/{consent-banner → prompt}/index.d.ts +18 -10
  210. package/dist-types/components/prompt/policy-actions.d.ts +12 -0
  211. package/dist-types/components/{consent-banner/consent-banner.d.ts → prompt/prompt.d.ts} +36 -10
  212. package/dist-types/components/prompt/resolve-banner-primary-actions.d.ts +14 -0
  213. package/dist-types/components/prompt/surface-context.d.ts +45 -0
  214. package/dist-types/components/prompt/use-banner-copy.d.ts +16 -0
  215. package/dist-types/components/shared/libs/polymorphic.d.ts +2 -2
  216. package/dist-types/components/shared/libs/recursive-clone-children.d.ts +2 -2
  217. package/dist-types/components/shared/libs/slot.d.ts +1 -1
  218. package/dist-types/components/shared/libs/use-controllable-state.d.ts +1 -1
  219. package/dist-types/components/shared/policy-actions.d.ts +8 -3
  220. package/dist-types/components/shared/primitives/box.d.ts +3 -1
  221. package/dist-types/components/shared/primitives/button.d.ts +4 -37
  222. package/dist-types/components/shared/primitives/button.types.d.ts +3 -1
  223. package/dist-types/components/shared/primitives/legal-links/index.d.ts +7 -11
  224. package/dist-types/components/shared/ui/accordion/accordion.d.ts +45 -12
  225. package/dist-types/components/shared/ui/accordion/accordion.types.d.ts +1 -1
  226. package/dist-types/components/shared/ui/animated-collapse/animated-collapse.d.ts +1 -1
  227. package/dist-types/components/shared/ui/branding.d.ts +12 -12
  228. package/dist-types/components/shared/ui/button/button.d.ts +19 -25
  229. package/dist-types/components/shared/ui/button/button.types.d.ts +2 -2
  230. package/dist-types/components/shared/ui/collapsible/collapsible.d.ts +18 -1
  231. package/dist-types/components/shared/ui/dialog/dialog.d.ts +6 -6
  232. package/dist-types/components/shared/ui/icon.d.ts +1 -1
  233. package/dist-types/components/shared/ui/logo.d.ts +0 -21
  234. package/dist-types/components/shared/ui/preference-item/preference-item.d.ts +46 -2
  235. package/dist-types/components/shared/ui/switch/switch.d.ts +19 -8
  236. package/dist-types/components/shared/ui/tabs/tabs.d.ts +19 -2
  237. package/dist-types/context/iab-context-value.d.ts +37 -0
  238. package/dist-types/context/index.d.ts +3 -0
  239. package/dist-types/context/theme-context.d.ts +2 -2
  240. package/dist-types/context.d.ts +17 -0
  241. package/dist-types/devtools.d.ts +54 -0
  242. package/dist-types/draft.d.ts +31 -0
  243. package/dist-types/external-iab-context.d.ts +29 -0
  244. package/dist-types/frame.d.ts +1 -0
  245. package/dist-types/headless.d.ts +12 -8
  246. package/dist-types/hooks/use-color-scheme.d.ts +1 -1
  247. package/dist-types/hooks/use-component-config.d.ts +2 -2
  248. package/dist-types/hooks/use-focus-trap.d.ts +2 -2
  249. package/dist-types/hooks/use-headless-iab-consent-ui.d.ts +7 -8
  250. package/dist-types/hooks/use-iab-manager.d.ts +52 -0
  251. package/dist-types/hooks/use-is-hydrated.d.ts +8 -0
  252. package/dist-types/hooks/use-reduced-motion.d.ts +1 -1
  253. package/dist-types/hooks/use-scroll-lock.d.ts +1 -1
  254. package/dist-types/hooks/use-text-direction.d.ts +1 -1
  255. package/dist-types/hooks/use-theme.d.ts +2 -1
  256. package/dist-types/hooks.d.ts +148 -0
  257. package/dist-types/iab-context.d.ts +28 -0
  258. package/dist-types/iab.d.ts +14 -8
  259. package/dist-types/index.d.ts +61 -22
  260. package/dist-types/module-hooks/iframe-blocker.d.ts +6 -0
  261. package/dist-types/module-hooks/network-blocker.d.ts +9 -0
  262. package/dist-types/module-hooks/persistence.d.ts +4 -0
  263. package/dist-types/module-hooks/script-loader.d.ts +6 -0
  264. package/dist-types/module-hooks/shared.d.ts +2 -0
  265. package/dist-types/module-hooks.d.ts +4 -0
  266. package/dist-types/panel-link.d.ts +1 -0
  267. package/dist-types/panel-trigger.d.ts +1 -0
  268. package/dist-types/panel.d.ts +1 -0
  269. package/dist-types/preferences.d.ts +1 -0
  270. package/dist-types/prompt.d.ts +1 -0
  271. package/dist-types/provider.d.ts +144 -0
  272. package/dist-types/server/fetch-ssr-data.d.ts +2 -2
  273. package/dist-types/server/headers.d.ts +3 -3
  274. package/dist-types/server/init-cache-key.d.ts +3 -3
  275. package/dist-types/server/normalize-url.d.ts +2 -2
  276. package/dist-types/server/types.d.ts +1 -1
  277. package/dist-types/theme-provider.d.ts +10 -0
  278. package/dist-types/transports/offline.d.ts +18 -0
  279. package/dist-types/types/index.d.ts +3 -0
  280. package/dist-types/types/manager.d.ts +15 -0
  281. package/dist-types/types/slots.d.ts +5 -0
  282. package/dist-types/types/theme/index.d.ts +0 -1
  283. package/dist-types/types/theme/style-types.d.ts +3 -9
  284. package/dist-types/ui-config-context.d.ts +9 -0
  285. package/dist-types/ui-save.d.ts +5 -0
  286. package/dist-types/utils/cn.d.ts +1 -1
  287. package/dist-types/utils/default-translation-config.d.ts +6 -0
  288. package/dist-types/utils/index.d.ts +4 -0
  289. package/dist-types/utils/merge-slot-props.d.ts +14 -0
  290. package/dist-types/utils/merge-styles.d.ts +1 -1
  291. package/dist-types/utils/theme-utils.d.ts +2 -2
  292. package/dist-types/version.d.ts +1 -1
  293. package/docs/README.md +88 -141
  294. package/docs/assets/v3/brand-bar.png +0 -0
  295. package/docs/assets/v3/brand-card.png +0 -0
  296. package/docs/assets/v3/choice-wall.png +0 -0
  297. package/docs/assets/v3/mobile-card.png +0 -0
  298. package/docs/assets/v3/preferences.png +0 -0
  299. package/docs/customization/overview.md +45 -0
  300. package/docs/customization/recipes.md +79 -0
  301. package/docs/customization/slots.md +55 -0
  302. package/docs/customization/tokens.md +76 -0
  303. package/docs/customization/translations.md +49 -0
  304. package/docs/frameworks/react/components/consent-banner.md +219 -202
  305. package/docs/frameworks/react/components/consent-dialog-link.md +88 -35
  306. package/docs/frameworks/react/components/consent-dialog-trigger.md +74 -134
  307. package/docs/frameworks/react/components/consent-dialog.md +170 -135
  308. package/docs/frameworks/react/components/consent-manager-provider.md +41 -249
  309. package/docs/frameworks/react/components/consent-widget.md +154 -118
  310. package/docs/frameworks/react/components/dev-tools.md +198 -33
  311. package/docs/frameworks/react/components/frame.md +120 -42
  312. package/docs/frameworks/react/concepts/consent-categories.md +24 -89
  313. package/docs/frameworks/react/concepts/policy-presets.md +123 -0
  314. package/docs/frameworks/react/headless.md +91 -185
  315. package/docs/frameworks/react/hooks/use-consent-manager/overview.md +39 -153
  316. package/docs/frameworks/react/iab/overview.md +33 -108
  317. package/docs/frameworks/react/quickstart.md +116 -112
  318. package/docs/frameworks/react/script-loader.md +35 -535
  319. package/docs/frameworks/react/styling/overview.md +160 -255
  320. package/docs/frameworks/react/troubleshooting.md +47 -119
  321. package/docs/guides/consent-state.md +60 -0
  322. package/docs/guides/data-fetching.md +163 -0
  323. package/docs/guides/deployment-modes.md +63 -0
  324. package/docs/guides/troubleshooting.md +68 -0
  325. package/docs/guides/verify-consent.md +62 -0
  326. package/docs/integrations/adobe-analytics.md +239 -105
  327. package/docs/integrations/ahrefs-analytics.md +238 -104
  328. package/docs/integrations/amplitude.md +219 -157
  329. package/docs/integrations/building-integrations.md +32 -224
  330. package/docs/integrations/clearbit.md +247 -86
  331. package/docs/integrations/cloudflare-web-analytics.md +250 -84
  332. package/docs/integrations/crisp.md +251 -97
  333. package/docs/integrations/databuddy.md +259 -153
  334. package/docs/integrations/fathom-analytics.md +239 -96
  335. package/docs/integrations/google-maps.md +328 -207
  336. package/docs/integrations/google-tag-manager.md +248 -96
  337. package/docs/integrations/google-tag.md +261 -90
  338. package/docs/integrations/heap.md +222 -149
  339. package/docs/integrations/hightouch.md +225 -131
  340. package/docs/integrations/hotjar.md +239 -90
  341. package/docs/integrations/intercom.md +239 -98
  342. package/docs/integrations/linkedin-insights.md +243 -113
  343. package/docs/integrations/logrocket.md +241 -123
  344. package/docs/integrations/matomo-analytics.md +256 -111
  345. package/docs/integrations/meta-pixel.md +197 -324
  346. package/docs/integrations/microsoft-clarity.md +233 -114
  347. package/docs/integrations/microsoft-uet.md +245 -110
  348. package/docs/integrations/mixpanel-analytics.md +252 -87
  349. package/docs/integrations/openai-pixel.md +441 -0
  350. package/docs/integrations/overview.md +95 -133
  351. package/docs/integrations/pirsch.md +249 -96
  352. package/docs/integrations/plausible-analytics.md +241 -100
  353. package/docs/integrations/posthog.md +353 -214
  354. package/docs/integrations/promptwatch.md +251 -81
  355. package/docs/integrations/reddit-pixel.md +226 -173
  356. package/docs/integrations/rudderstack.md +244 -187
  357. package/docs/integrations/rybbit-analytics.md +244 -91
  358. package/docs/integrations/segment.md +238 -92
  359. package/docs/integrations/snapchat-pixel.md +240 -110
  360. package/docs/integrations/tiktok-pixel.md +249 -81
  361. package/docs/integrations/umami-analytics.md +242 -95
  362. package/docs/integrations/vercel-analytics.md +242 -90
  363. package/docs/integrations/x-pixel.md +238 -104
  364. package/docs/integrations/youtube.md +354 -142
  365. package/docs/upgrade-v3.md +334 -0
  366. package/iab/styles.css +1 -1
  367. package/iab/styles.tw3.css +1 -1
  368. package/package.json +187 -102
  369. package/readme.json +1 -1
  370. package/src/iab/styles.css +1 -1
  371. package/src/iab/styles.tw3.css +1 -1
  372. package/src/styles.css +1 -1
  373. package/src/styles.tw3.css +1 -1
  374. package/styles.css +1 -1
  375. package/styles.tw3.css +1 -1
  376. package/client/components/consent-banner.js +0 -4
  377. package/client/components/consent-dialog-link.js +0 -3
  378. package/client/components/consent-dialog-trigger.js +0 -3
  379. package/client/components/consent-dialog.js +0 -4
  380. package/client/components/consent-widget.js +0 -4
  381. package/client/components/frame.js +0 -3
  382. package/client/components/integrations.js +0 -3
  383. package/dist/components/consent-banner/atoms/overlay.cjs +0 -1
  384. package/dist/components/consent-banner/atoms/overlay.js +0 -1
  385. package/dist/components/consent-banner/atoms/root.cjs +0 -1
  386. package/dist/components/consent-banner/atoms/root.js +0 -1
  387. package/dist/components/consent-banner/components.cjs +0 -1
  388. package/dist/components/consent-banner/components.js +0 -1
  389. package/dist/components/consent-banner/consent-banner.cjs +0 -1
  390. package/dist/components/consent-banner/consent-banner.js +0 -1
  391. package/dist/components/consent-banner/error-boundary.cjs +0 -1
  392. package/dist/components/consent-banner/error-boundary.js +0 -1
  393. package/dist/components/consent-banner/index.cjs +0 -1
  394. package/dist/components/consent-banner/index.js +0 -1
  395. package/dist/components/consent-banner/policy-actions.cjs +0 -1
  396. package/dist/components/consent-banner/policy-actions.js +0 -1
  397. package/dist/components/consent-dialog/atoms/card.cjs +0 -1
  398. package/dist/components/consent-dialog/atoms/card.js +0 -1
  399. package/dist/components/consent-dialog/atoms/overlay.cjs +0 -1
  400. package/dist/components/consent-dialog/atoms/overlay.js +0 -1
  401. package/dist/components/consent-dialog/atoms/root.cjs +0 -1
  402. package/dist/components/consent-dialog/atoms/root.js +0 -1
  403. package/dist/components/consent-dialog/consent-dialog.cjs +0 -1
  404. package/dist/components/consent-dialog/consent-dialog.js +0 -1
  405. package/dist/components/consent-dialog/index.cjs +0 -1
  406. package/dist/components/consent-dialog/index.js +0 -1
  407. package/dist/components/consent-dialog-link/index.cjs +0 -1
  408. package/dist/components/consent-dialog-trigger/atoms/button.cjs +0 -1
  409. package/dist/components/consent-dialog-trigger/atoms/button.js +0 -1
  410. package/dist/components/consent-dialog-trigger/atoms/icon.cjs +0 -1
  411. package/dist/components/consent-dialog-trigger/atoms/icon.js +0 -1
  412. package/dist/components/consent-dialog-trigger/atoms/root.cjs +0 -1
  413. package/dist/components/consent-dialog-trigger/atoms/root.js +0 -1
  414. package/dist/components/consent-dialog-trigger/atoms/text.cjs +0 -1
  415. package/dist/components/consent-dialog-trigger/atoms/text.js +0 -1
  416. package/dist/components/consent-dialog-trigger/atoms/toolbar.cjs +0 -1
  417. package/dist/components/consent-dialog-trigger/atoms/toolbar.js +0 -1
  418. package/dist/components/consent-dialog-trigger/consent-dialog-trigger-toolbar.cjs +0 -1
  419. package/dist/components/consent-dialog-trigger/consent-dialog-trigger-toolbar.js +0 -1
  420. package/dist/components/consent-dialog-trigger/consent-dialog-trigger.cjs +0 -1
  421. package/dist/components/consent-dialog-trigger/consent-dialog-trigger.js +0 -1
  422. package/dist/components/consent-dialog-trigger/index.cjs +0 -1
  423. package/dist/components/consent-dialog-trigger/index.js +0 -1
  424. package/dist/components/consent-dialog-trigger/types.cjs +0 -1
  425. package/dist/components/consent-dialog-trigger/use-draggable.cjs +0 -1
  426. package/dist/components/consent-dialog-trigger/use-draggable.js +0 -1
  427. package/dist/components/consent-preferences-link/consent-preferences-link.cjs +0 -1
  428. package/dist/components/consent-preferences-link/index.cjs +0 -1
  429. package/dist/components/consent-widget/atoms/accordion.cjs +0 -1
  430. package/dist/components/consent-widget/atoms/accordion.js +0 -1
  431. package/dist/components/consent-widget/atoms/button.cjs +0 -1
  432. package/dist/components/consent-widget/atoms/button.js +0 -1
  433. package/dist/components/consent-widget/atoms/footer.cjs +0 -1
  434. package/dist/components/consent-widget/atoms/footer.js +0 -1
  435. package/dist/components/consent-widget/atoms/root.cjs +0 -1
  436. package/dist/components/consent-widget/atoms/root.js +0 -1
  437. package/dist/components/consent-widget/consent-widget.cjs +0 -1
  438. package/dist/components/consent-widget/consent-widget.js +0 -1
  439. package/dist/components/consent-widget/index.cjs +0 -1
  440. package/dist/components/consent-widget/index.js +0 -1
  441. package/dist/components/consent-widget/policy-actions.cjs +0 -1
  442. package/dist/components/consent-widget/policy-actions.js +0 -1
  443. package/dist/components/consent-widget/types.cjs +0 -1
  444. package/dist/components/frame/atoms.cjs +0 -1
  445. package/dist/components/frame/frame.cjs +0 -1
  446. package/dist/components/frame/index.cjs +0 -1
  447. package/dist/components/frame/types.cjs +0 -1
  448. package/dist/components/iab-consent-banner/atoms/button-group.cjs +0 -1
  449. package/dist/components/iab-consent-banner/atoms/button-group.js +0 -1
  450. package/dist/components/iab-consent-banner/atoms/card.cjs +0 -1
  451. package/dist/components/iab-consent-banner/atoms/card.js +0 -1
  452. package/dist/components/iab-consent-banner/atoms/description.cjs +0 -1
  453. package/dist/components/iab-consent-banner/atoms/description.js +0 -1
  454. package/dist/components/iab-consent-banner/atoms/footer.cjs +0 -1
  455. package/dist/components/iab-consent-banner/atoms/footer.js +0 -1
  456. package/dist/components/iab-consent-banner/atoms/header.cjs +0 -1
  457. package/dist/components/iab-consent-banner/atoms/header.js +0 -1
  458. package/dist/components/iab-consent-banner/atoms/overlay.cjs +0 -1
  459. package/dist/components/iab-consent-banner/atoms/overlay.js +0 -1
  460. package/dist/components/iab-consent-banner/atoms/root.cjs +0 -1
  461. package/dist/components/iab-consent-banner/atoms/root.js +0 -1
  462. package/dist/components/iab-consent-banner/atoms/title.cjs +0 -1
  463. package/dist/components/iab-consent-banner/atoms/title.js +0 -1
  464. package/dist/components/iab-consent-banner/iab-consent-banner.cjs +0 -1
  465. package/dist/components/iab-consent-banner/iab-consent-banner.js +0 -1
  466. package/dist/components/iab-consent-banner/index.cjs +0 -1
  467. package/dist/components/iab-consent-banner/index.js +0 -1
  468. package/dist/components/iab-consent-dialog/atoms/card.cjs +0 -1
  469. package/dist/components/iab-consent-dialog/atoms/card.js +0 -1
  470. package/dist/components/iab-consent-dialog/atoms/content.cjs +0 -1
  471. package/dist/components/iab-consent-dialog/atoms/content.js +0 -1
  472. package/dist/components/iab-consent-dialog/atoms/footer.cjs +0 -1
  473. package/dist/components/iab-consent-dialog/atoms/footer.js +0 -1
  474. package/dist/components/iab-consent-dialog/atoms/header.cjs +0 -1
  475. package/dist/components/iab-consent-dialog/atoms/header.js +0 -1
  476. package/dist/components/iab-consent-dialog/atoms/overlay.cjs +0 -1
  477. package/dist/components/iab-consent-dialog/atoms/overlay.js +0 -1
  478. package/dist/components/iab-consent-dialog/atoms/purpose-item.cjs +0 -1
  479. package/dist/components/iab-consent-dialog/atoms/purpose-item.js +0 -1
  480. package/dist/components/iab-consent-dialog/atoms/root.cjs +0 -1
  481. package/dist/components/iab-consent-dialog/atoms/root.js +0 -1
  482. package/dist/components/iab-consent-dialog/atoms/stack-item.cjs +0 -1
  483. package/dist/components/iab-consent-dialog/atoms/stack-item.js +0 -1
  484. package/dist/components/iab-consent-dialog/atoms/tabs.cjs +0 -1
  485. package/dist/components/iab-consent-dialog/atoms/tabs.js +0 -1
  486. package/dist/components/iab-consent-dialog/atoms/vendor-list.cjs +0 -1
  487. package/dist/components/iab-consent-dialog/atoms/vendor-list.js +0 -1
  488. package/dist/components/iab-consent-dialog/hooks/use-gvl-data.cjs +0 -1
  489. package/dist/components/iab-consent-dialog/hooks/use-gvl-data.js +0 -1
  490. package/dist/components/iab-consent-dialog/iab-consent-dialog.cjs +0 -1
  491. package/dist/components/iab-consent-dialog/iab-consent-dialog.js +0 -1
  492. package/dist/components/iab-consent-dialog/index.cjs +0 -1
  493. package/dist/components/iab-consent-dialog/index.js +0 -1
  494. package/dist/components/iab-consent-dialog/types.cjs +0 -1
  495. package/dist/components/iab-consent-dialog/use-iab-translations.cjs +0 -1
  496. package/dist/components/iab-consent-dialog/use-iab-translations.js +0 -1
  497. package/dist/components/integrations/google-map.cjs +0 -1
  498. package/dist/components/integrations/google-map.js +0 -1
  499. package/dist/components/integrations/index.cjs +0 -1
  500. package/dist/components/integrations/index.js +0 -1
  501. package/dist/components/integrations/shared.cjs +0 -1
  502. package/dist/components/integrations/shared.js +0 -1
  503. package/dist/components/integrations/youtube-embed.cjs +0 -1
  504. package/dist/components/integrations/youtube-embed.js +0 -1
  505. package/dist/components/shared/libs/polymorphic.cjs +0 -1
  506. package/dist/components/shared/libs/recursive-clone-children.cjs +0 -1
  507. package/dist/components/shared/libs/slot.cjs +0 -1
  508. package/dist/components/shared/libs/use-controllable-state.cjs +0 -1
  509. package/dist/components/shared/policy-actions.cjs +0 -1
  510. package/dist/components/shared/primitives/box.cjs +0 -1
  511. package/dist/components/shared/primitives/button.cjs +0 -1
  512. package/dist/components/shared/primitives/button.types.cjs +0 -1
  513. package/dist/components/shared/primitives/legal-links/index.cjs +0 -1
  514. package/dist/components/shared/ui/accordion/accordion.cjs +0 -1
  515. package/dist/components/shared/ui/accordion/accordion.types.cjs +0 -1
  516. package/dist/components/shared/ui/accordion/index.cjs +0 -1
  517. package/dist/components/shared/ui/animated-collapse/animated-collapse.cjs +0 -1
  518. package/dist/components/shared/ui/animated-collapse/index.cjs +0 -1
  519. package/dist/components/shared/ui/branding.cjs +0 -1
  520. package/dist/components/shared/ui/button/button.cjs +0 -1
  521. package/dist/components/shared/ui/button/button.types.cjs +0 -1
  522. package/dist/components/shared/ui/button/index.cjs +0 -1
  523. package/dist/components/shared/ui/collapsible/collapsible.cjs +0 -1
  524. package/dist/components/shared/ui/collapsible/index.cjs +0 -1
  525. package/dist/components/shared/ui/dialog/dialog.cjs +0 -1
  526. package/dist/components/shared/ui/dialog/index.cjs +0 -1
  527. package/dist/components/shared/ui/icon.cjs +0 -1
  528. package/dist/components/shared/ui/logo.cjs +0 -1
  529. package/dist/components/shared/ui/preference-item/index.cjs +0 -1
  530. package/dist/components/shared/ui/preference-item/preference-item.cjs +0 -1
  531. package/dist/components/shared/ui/switch/index.cjs +0 -1
  532. package/dist/components/shared/ui/switch/switch.cjs +0 -1
  533. package/dist/components/shared/ui/switch/switch.types.cjs +0 -1
  534. package/dist/components/shared/ui/tabs/index.cjs +0 -1
  535. package/dist/components/shared/ui/tabs/tabs.cjs +0 -1
  536. package/dist/context/consent-manager-context.cjs +0 -1
  537. package/dist/context/consent-manager-context.js +0 -1
  538. package/dist/context/consent-tracking-context.cjs +0 -1
  539. package/dist/context/theme-context.cjs +0 -1
  540. package/dist/headless.cjs +0 -1
  541. package/dist/hooks/index.cjs +0 -1
  542. package/dist/hooks/index.js +0 -1
  543. package/dist/hooks/use-color-scheme.cjs +0 -1
  544. package/dist/hooks/use-component-config.cjs +0 -1
  545. package/dist/hooks/use-consent-dialog-trigger.cjs +0 -1
  546. package/dist/hooks/use-consent-dialog-trigger.js +0 -1
  547. package/dist/hooks/use-consent-manager.cjs +0 -1
  548. package/dist/hooks/use-consent-manager.js +0 -1
  549. package/dist/hooks/use-consent-script.cjs +0 -1
  550. package/dist/hooks/use-consent-script.js +0 -1
  551. package/dist/hooks/use-focus-trap.cjs +0 -1
  552. package/dist/hooks/use-headless-consent-ui.cjs +0 -1
  553. package/dist/hooks/use-headless-consent-ui.js +0 -1
  554. package/dist/hooks/use-headless-iab-consent-ui.cjs +0 -1
  555. package/dist/hooks/use-reduced-motion.cjs +0 -1
  556. package/dist/hooks/use-scroll-lock.cjs +0 -1
  557. package/dist/hooks/use-ssr-status.cjs +0 -1
  558. package/dist/hooks/use-ssr-status.js +0 -1
  559. package/dist/hooks/use-styles.cjs +0 -1
  560. package/dist/hooks/use-styles.js +0 -1
  561. package/dist/hooks/use-text-direction.cjs +0 -1
  562. package/dist/hooks/use-theme.cjs +0 -1
  563. package/dist/hooks/use-translations.cjs +0 -1
  564. package/dist/hooks/use-translations.js +0 -1
  565. package/dist/iab.cjs +0 -1
  566. package/dist/index.cjs +0 -1
  567. package/dist/primitives/accordion.cjs +0 -1
  568. package/dist/primitives/button.cjs +0 -1
  569. package/dist/primitives/collapsible.cjs +0 -1
  570. package/dist/primitives/dialog.cjs +0 -1
  571. package/dist/primitives/preference-item.cjs +0 -1
  572. package/dist/primitives/switch.cjs +0 -1
  573. package/dist/primitives/tabs.cjs +0 -1
  574. package/dist/primitives.cjs +0 -1
  575. package/dist/providers/consent-manager-provider.cjs +0 -1
  576. package/dist/providers/consent-manager-provider.js +0 -1
  577. package/dist/server/fetch-ssr-data.cjs +0 -1
  578. package/dist/server/headers.cjs +0 -1
  579. package/dist/server/index.cjs +0 -1
  580. package/dist/server/init-cache-key.cjs +0 -1
  581. package/dist/server/normalize-url.cjs +0 -1
  582. package/dist/server/types.cjs +0 -1
  583. package/dist/types/consent-manager.cjs +0 -1
  584. package/dist/types/theme/index.cjs +0 -1
  585. package/dist/types/theme/style-keys.cjs +0 -1
  586. package/dist/types/theme/style-types.cjs +0 -1
  587. package/dist/utils/cn.cjs +0 -1
  588. package/dist/utils/merge-styles.cjs +0 -1
  589. package/dist/utils/test-helpers.cjs +0 -1
  590. package/dist/utils/test-helpers.js +0 -1
  591. package/dist/utils/theme-utils.cjs +0 -1
  592. package/dist/version.cjs +0 -1
  593. package/dist-types/components/consent-banner/atoms/root.d.ts +0 -126
  594. package/dist-types/components/consent-banner/policy-actions.d.ts +0 -11
  595. package/dist-types/components/consent-widget/policy-actions.d.ts +0 -11
  596. package/dist-types/components/iab-consent-dialog/hooks/use-gvl-data.d.ts +0 -27
  597. package/dist-types/components/iab-consent-dialog/types.d.ts +0 -72
  598. package/dist-types/components/integrations/google-map.d.ts +0 -82
  599. package/dist-types/components/integrations/index.d.ts +0 -2
  600. package/dist-types/components/integrations/shared.d.ts +0 -12
  601. package/dist-types/components/integrations/youtube-embed.d.ts +0 -95
  602. package/dist-types/context/consent-manager-context.d.ts +0 -31
  603. package/dist-types/hooks/index.d.ts +0 -12
  604. package/dist-types/hooks/use-consent-dialog-trigger.d.ts +0 -10
  605. package/dist-types/hooks/use-consent-manager.d.ts +0 -27
  606. package/dist-types/hooks/use-consent-script.d.ts +0 -80
  607. package/dist-types/hooks/use-headless-consent-ui.d.ts +0 -46
  608. package/dist-types/hooks/use-ssr-status.d.ts +0 -57
  609. package/dist-types/hooks/use-styles.d.ts +0 -21
  610. package/dist-types/hooks/use-translations.d.ts +0 -28
  611. package/dist-types/providers/consent-manager-provider.d.ts +0 -40
  612. package/dist-types/types/consent-manager.d.ts +0 -39
  613. package/dist-types/types/theme/style-keys.d.ts +0 -1
  614. package/dist-types/utils/test-helpers.d.ts +0 -31
  615. package/docs/frameworks/react/building-headless-components.md +0 -370
  616. package/docs/frameworks/react/callbacks.md +0 -186
  617. package/docs/frameworks/react/concepts/client-modes.md +0 -177
  618. package/docs/frameworks/react/concepts/consent-models.md +0 -113
  619. package/docs/frameworks/react/concepts/cookie-management.md +0 -122
  620. package/docs/frameworks/react/concepts/glossary.md +0 -24
  621. package/docs/frameworks/react/concepts/initialization-flow.md +0 -149
  622. package/docs/frameworks/react/concepts/policy-packs.md +0 -228
  623. package/docs/frameworks/react/hooks/use-color-scheme.md +0 -41
  624. package/docs/frameworks/react/hooks/use-consent-manager/checking-consent.md +0 -96
  625. package/docs/frameworks/react/hooks/use-consent-manager/location-info.md +0 -97
  626. package/docs/frameworks/react/hooks/use-consent-manager/setting-consent.md +0 -94
  627. package/docs/frameworks/react/hooks/use-draggable.md +0 -59
  628. package/docs/frameworks/react/hooks/use-focus-trap.md +0 -42
  629. package/docs/frameworks/react/hooks/use-reduced-motion.md +0 -37
  630. package/docs/frameworks/react/hooks/use-ssr-status.md +0 -32
  631. package/docs/frameworks/react/hooks/use-text-direction.md +0 -50
  632. package/docs/frameworks/react/hooks/use-translations.md +0 -55
  633. package/docs/frameworks/react/iab/consent-banner.md +0 -91
  634. package/docs/frameworks/react/iab/consent-dialog.md +0 -129
  635. package/docs/frameworks/react/iab/use-gvl-data.md +0 -21
  636. package/docs/frameworks/react/iframe-blocking.md +0 -106
  637. package/docs/frameworks/react/internationalization.md +0 -207
  638. package/docs/frameworks/react/network-blocker.md +0 -140
  639. package/docs/frameworks/react/optimization.md +0 -148
  640. package/docs/frameworks/react/policy-packs.md +0 -242
  641. package/docs/frameworks/react/server-side.md +0 -158
  642. package/docs/frameworks/react/styling/classnames.md +0 -94
  643. package/docs/frameworks/react/styling/color-scheme.md +0 -84
  644. package/docs/frameworks/react/styling/css-variables.md +0 -53
  645. package/docs/frameworks/react/styling/slots.md +0 -94
  646. package/docs/frameworks/react/styling/tailwind.md +0 -119
  647. package/docs/frameworks/react/styling/tokens.md +0 -156
  648. package/docs/shared/concepts/client-modes.md +0 -103
  649. package/docs/shared/concepts/consent-categories.md +0 -41
  650. package/docs/shared/concepts/consent-models.md +0 -72
  651. package/docs/shared/concepts/cookie-management.md +0 -88
  652. package/docs/shared/concepts/glossary.md +0 -24
  653. package/docs/shared/concepts/initialization-flow.md +0 -105
  654. package/docs/shared/concepts/policy-packs.md +0 -225
  655. package/docs/shared/react/components/consent-banner.md +0 -242
  656. package/docs/shared/react/components/consent-dialog-link.md +0 -45
  657. package/docs/shared/react/components/consent-dialog-trigger.md +0 -185
  658. package/docs/shared/react/components/consent-dialog.md +0 -119
  659. package/docs/shared/react/components/consent-manager-provider.md +0 -225
  660. package/docs/shared/react/components/consent-widget.md +0 -121
  661. package/docs/shared/react/components/dev-tools.md +0 -81
  662. package/docs/shared/react/components/frame.md +0 -52
  663. package/docs/shared/react/guides/building-headless-components.md +0 -110
  664. package/docs/shared/react/guides/callbacks.md +0 -89
  665. package/docs/shared/react/guides/headless.md +0 -31
  666. package/docs/shared/react/guides/iframe-blocking.md +0 -65
  667. package/docs/shared/react/guides/internationalization.md +0 -123
  668. package/docs/shared/react/guides/network-blocker.md +0 -72
  669. package/docs/shared/react/guides/optimization.md +0 -44
  670. package/docs/shared/react/guides/policy-packs.md +0 -173
  671. package/docs/shared/react/guides/script-loader.md +0 -311
  672. package/docs/shared/react/hooks/use-color-scheme.md +0 -31
  673. package/docs/shared/react/hooks/use-consent-manager/checking-consent.md +0 -95
  674. package/docs/shared/react/hooks/use-consent-manager/location-info.md +0 -96
  675. package/docs/shared/react/hooks/use-consent-manager/overview.md +0 -74
  676. package/docs/shared/react/hooks/use-consent-manager/setting-consent.md +0 -93
  677. package/docs/shared/react/hooks/use-draggable.md +0 -30
  678. package/docs/shared/react/hooks/use-focus-trap.md +0 -20
  679. package/docs/shared/react/hooks/use-reduced-motion.md +0 -33
  680. package/docs/shared/react/hooks/use-ssr-status.md +0 -16
  681. package/docs/shared/react/hooks/use-text-direction.md +0 -38
  682. package/docs/shared/react/hooks/use-translations.md +0 -15
  683. package/docs/shared/react/iab/consent-banner.md +0 -60
  684. package/docs/shared/react/iab/consent-dialog.md +0 -76
  685. package/docs/shared/react/iab/overview.md +0 -80
  686. package/docs/shared/react/iab/use-gvl-data.md +0 -21
  687. package/docs/shared/react/styling/classnames.md +0 -93
  688. package/docs/shared/react/styling/color-scheme.md +0 -35
  689. package/docs/shared/react/styling/css-variables.md +0 -53
  690. package/docs/shared/react/styling/overview.md +0 -261
  691. package/docs/shared/react/styling/slots.md +0 -93
  692. package/docs/shared/react/styling/stylesheet-entrypoint.md +0 -8
  693. package/docs/shared/react/styling/tailwind.md +0 -88
  694. package/docs/shared/react/styling/tokens.md +0 -155
  695. package/docs/shared/troubleshooting.md +0 -82
  696. /package/dist/components/{consent-dialog-trigger → iab-panel}/types.js +0 -0
  697. /package/dist/components/{consent-widget → panel-trigger}/types.js +0 -0
  698. /package/dist/components/{iab-consent-dialog → preferences}/types.js +0 -0
  699. /package/dist/types/{consent-manager.js → manager.js} +0 -0
  700. /package/dist/types/{theme/style-keys.js → slots.js} +0 -0
  701. /package/dist-types/components/{consent-dialog-link → panel-link}/index.d.ts +0 -0
  702. /package/dist-types/components/{consent-widget → preferences}/atoms/button.d.ts +0 -0
  703. /package/dist-types/components/{consent-widget/consent-widget.d.ts → preferences/preferences.d.ts} +0 -0
  704. /package/dist-types/components/{consent-widget → preferences}/types.d.ts +0 -0
@@ -1 +1,2 @@
1
- import{jsx as t}from"react/jsx-runtime";import{getDataDisabled as e}from"@c15t/ui/primitives/data-state";import{getDialogState as o,isDialogDismissKey as a}from"@c15t/ui/primitives/dialog";import{createContext as l,forwardRef as r,useContext as i,useEffect as n,useId as s,useMemo as d,useRef as u}from"react";import{createPortal as c}from"react-dom";import{Slot as g}from"../../libs/slot.js";import{useControllableState as p}from"../../libs/use-controllable-state.js";import{useFocusTrap as m}from"../../../../hooks/use-focus-trap.js";import{useScrollLock as f}from"../../../../hooks/use-scroll-lock.js";let D=l(null);function y(){let t=i(D);if(!t)throw Error("Dialog components must be used within DialogRoot");return t}function b({children:e,defaultOpen:o=!1,onOpenChange:a,open:l}){let r=s().replace(/:/g,""),i=u(null),[c,g]=p({defaultValue:o,onChange:a,value:l});n(()=>{if("u">typeof document){if(c){i.current=document.activeElement;return}i.current?.focus()}},[c]);let m=d(()=>({contentId:`c15t-dialog-content-${r}`,descriptionId:`c15t-dialog-description-${r}`,open:c,restoreFocusRef:i,setOpen:g,titleId:`c15t-dialog-title-${r}`}),[c,r,i,g]);return t(D.Provider,{value:m,children:e})}let v=r(({asChild:e,children:a,onClick:l,...r},i)=>{let{open:n,setOpen:s}=y();return t(e?g:"button",{"aria-expanded":n,"data-slot":"dialog-trigger","data-state":o(n),onClick:t=>{s(!0),l?.(t)},ref:i,...e?r:{type:"button",...r},children:a})});function h({children:t}){return"u"<typeof document?null:c(t,document.body)}v.displayName="DialogTrigger";let C=r(({children:e,onClick:a,...l},r)=>{let{open:i,setOpen:n}=y();return i?t("button",{"aria-label":"Dismiss dialog","data-slot":"dialog-overlay","data-state":o(i),onClick:t=>{n(!1),a?.(t)},ref:r,tabIndex:-1,type:"button",...l,children:e}):null});C.displayName="DialogOverlay";let k=r(({children:e,closeOnOutsideClick:l=!0,initialFocusRef:r,onKeyDown:i,onMouseDown:s,...d},c)=>{let{contentId:g,descriptionId:p,open:D,setOpen:b,titleId:v}=y(),h=u(null);return(m(D,h),f(D),n(()=>{D&&(r?.current?.focus(),r?.current||h.current?.focus())},[r,D]),D)?t("div",{"aria-describedby":p,"aria-labelledby":v,"aria-modal":"true","data-slot":"dialog-content","data-state":o(D),id:g,onKeyDown:t=>{a(t.key)&&(t.preventDefault(),b(!1)),i?.(t)},onMouseDown:t=>{l&&t.target===t.currentTarget&&b(!1),s?.(t)},ref:t=>{h.current=t,"function"==typeof c?c(t):c&&(c.current=t)},role:"dialog",tabIndex:-1,...d,children:e}):null});k.displayName="DialogContent";let T=r((e,o)=>{let{titleId:a}=y();return t("h2",{ref:o,id:a,"data-slot":"dialog-title",...e})});T.displayName="DialogTitle";let N=r((e,o)=>{let{descriptionId:a}=y();return t("p",{ref:o,id:a,"data-slot":"dialog-description",...e})});N.displayName="DialogDescription";let j=r(({asChild:a,children:l,disabled:r,onClick:i,...n},s)=>{let{open:d,setOpen:u}=y();return t(a?g:"button",{"data-disabled":e(r),"data-slot":"dialog-close","data-state":o(d),disabled:r,onClick:t=>{r||u(!1),i?.(t)},ref:s,...a?n:{type:"button",...n},children:l})});j.displayName="DialogClose";export{j as Close,k as Content,N as Description,C as Overlay,h as Portal,b as Root,T as Title,v as Trigger};
1
+ "use client";
2
+ import{jsx as t}from"react/jsx-runtime";import{getDataDisabled as e}from"@c15t/ui/primitives/data-state";import{getDialogState as o,isDialogDismissKey as a}from"@c15t/ui/primitives/dialog";import{createContext as l,forwardRef as r,useContext as i,useEffect as n,useId as s,useMemo as d,useRef as u}from"react";import{createPortal as c}from"react-dom";import{Slot as g}from"../../libs/slot.js";import{useControllableState as p}from"../../libs/use-controllable-state.js";import{useFocusTrap as m}from"../../../../hooks/use-focus-trap.js";import{useScrollLock as f}from"../../../../hooks/use-scroll-lock.js";let D=l(null),y=function(){let t=i(D);if(!t)throw Error("Dialog components must be used within DialogRoot");return t},b=({children:e,defaultOpen:o=!1,onOpenChange:a,open:l})=>{let r=s().replace(/:/gu,""),i=u(null),[c,g]=p({defaultValue:o,onChange:a,value:l});n(()=>{if("u">typeof document){if(c){i.current=document.activeElement;return}i.current?.focus()}},[c]);let m=d(()=>({contentId:`c15t-dialog-content-${r}`,descriptionId:`c15t-dialog-description-${r}`,open:c,restoreFocusRef:i,setOpen:g,titleId:`c15t-dialog-title-${r}`}),[c,r,i,g]);return t(D.Provider,{value:m,children:e})},h=r(({asChild:e,children:a,onClick:l,...r},i)=>{let{open:n,setOpen:s}=y();return t(e?g:"button",{"aria-expanded":n,"data-slot":"dialog-trigger","data-state":o(n),onClick:t=>{s(!0),l?.(t)},ref:i,...e?r:{type:"button",...r},children:a})});h.displayName="DialogTrigger";let v=({children:t})=>"u"<typeof document?null:c(t,document.body),C=r(({children:e,onClick:a,...l},r)=>{let{open:i,setOpen:n}=y();return i?t("button",{"aria-label":"Dismiss dialog","data-slot":"dialog-overlay","data-state":o(i),onClick:t=>{n(!1),a?.(t)},ref:r,tabIndex:-1,type:"button",...l,children:e}):null});C.displayName="DialogOverlay";let k=r(({children:e,closeOnOutsideClick:l=!0,initialFocusRef:r,onKeyDown:i,onMouseDown:s,...d},c)=>{let{contentId:g,descriptionId:p,open:D,setOpen:b,titleId:h}=y(),v=u(null);return(m(D,v),f(D),n(()=>{D&&(r?.current?.focus(),r?.current||v.current?.focus())},[r,D]),D)?t("dialog",{"aria-describedby":p,"aria-labelledby":h,"aria-modal":"true","data-slot":"dialog-content","data-state":o(D),id:g,...{onKeyDown:t=>{a(t.key)&&(t.preventDefault(),b(!1)),i?.(t)},onMouseDown:t=>{l&&t.target===t.currentTarget&&b(!1),s?.(t)}},ref:t=>{v.current=t,"function"==typeof c?c(t):c&&(c.current=t)},open:D,tabIndex:-1,...d,children:e}):null});k.displayName="DialogContent";let T=r(({children:e,...o},a)=>{let{titleId:l}=y();return t("h2",{ref:a,id:l,"data-slot":"dialog-title",...o,children:e})});T.displayName="DialogTitle";let N=r((e,o)=>{let{descriptionId:a}=y();return t("p",{ref:o,id:a,"data-slot":"dialog-description",...e})});N.displayName="DialogDescription";let j=r(({asChild:a,children:l,disabled:r,onClick:i,...n},s)=>{let{open:d,setOpen:u}=y();return t(a?g:"button",{"data-disabled":e(r),"data-slot":"dialog-close","data-state":o(d),disabled:r,onClick:t=>{r||u(!1),i?.(t)},ref:s,...a?n:{type:"button",...n},children:l})});j.displayName="DialogClose";export{j as Close,k as Content,N as Description,C as Overlay,v as Portal,b as Root,T as Title,h as Trigger};
@@ -1 +1 @@
1
- import{jsx as r,jsxs as e}from"react/jsx-runtime";import{forwardRef as o}from"react";let t=({title:t,iconPath:i})=>o((o,n)=>e("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,ref:n,...o,children:[r("title",{children:t}),i]}));export{t as LucideIcon};
1
+ import{jsx as r,jsxs as e}from"react/jsx-runtime";import{forwardRef as o}from"react";let t=({title:t,iconPath:n})=>{let i=o((o,i)=>e("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,ref:i,...o,children:[r("title",{children:t}),n]}));return i.displayName=`${t}Icon`,i};export{t as LucideIcon};
@@ -1 +1 @@
1
- import{jsx as l,jsxs as e}from"react/jsx-runtime";let c=({title:c="c15t",titleId:n="c15t-icon",...t})=>e("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 446 445","aria-labelledby":n,...t,children:[l("title",{id:n,children:c}),l("path",{fill:"currentColor",d:"M223.178.313c39.064 0 70.732 31.668 70.732 70.732-.001 39.064-31.668 70.731-70.732 70.731-12.181 0-23.642-3.079-33.649-8.502l-55.689 55.689a70.267 70.267 0 0 1 5.574 13.441h167.531c8.695-29.217 35.762-50.523 67.804-50.523 39.064 0 70.731 31.668 70.731 70.732s-31.668 70.732-70.731 70.732c-32.042 0-59.108-21.306-67.803-50.523H139.413a70.417 70.417 0 0 1-7.888 17.396l54.046 54.046c10.893-6.851 23.786-10.815 37.605-10.815 39.064 0 70.732 31.669 70.732 70.733 0 39.064-31.668 70.731-70.732 70.731s-70.732-31.667-70.732-70.731c0-10.518 2.296-20.499 6.414-29.471l-57.78-57.78c-8.972 4.117-18.952 6.414-29.47 6.414-39.063 0-70.731-31.668-70.732-70.732 0-39.064 31.669-70.732 70.733-70.732 12.18 0 23.642 3.079 33.649 8.502l55.688-55.688c-5.423-10.007-8.502-21.469-8.502-33.65 0-39.064 31.668-70.733 70.732-70.733Zm0 343.555c-16.742 0-30.314 13.572-30.314 30.314 0 16.741 13.572 30.313 30.314 30.313s30.314-13.572 30.314-30.313c0-16.742-13.572-30.314-30.314-30.314ZM71.611 192.299c-16.742 0-30.315 13.572-30.315 30.314s13.573 30.314 30.315 30.314c16.741 0 30.313-13.572 30.313-30.314 0-16.741-13.572-30.314-30.313-30.314Zm303.138 0c-16.729 0-30.294 13.551-30.315 30.275l.001.039-.001.038c.021 16.725 13.586 30.276 30.315 30.276 16.741 0 30.313-13.572 30.313-30.314 0-16.741-13.572-30.314-30.313-30.314ZM223.178 40.73c-16.742 0-30.314 13.573-30.314 30.315s13.573 30.313 30.314 30.313c16.742 0 30.313-13.572 30.314-30.313 0-16.742-13.572-30.314-30.314-30.315Z"})]}),n=({title:c="c15t",titleId:n="c15t",...t})=>e("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 408 149","aria-labelledby":n,...t,children:[l("title",{id:n,children:c}),l("path",{fill:"currentColor",fillRule:"evenodd",d:"M74.133 14.042c-5.58 0-10.105 4.524-10.105 10.104 0 5.581 4.524 10.105 10.105 10.105 5.58 0 10.105-4.524 10.105-10.105 0-5.58-4.524-10.104-10.105-10.104ZM50.556 24.146C50.556 11.125 61.112.57 74.133.57 87.154.57 97.71 11.125 97.71 24.146c0 13.022-10.556 23.578-23.577 23.578-4.06 0-7.88-1.027-11.216-2.834L44.354 63.453a23.424 23.424 0 0 1 1.858 4.48h55.843c2.899-9.74 11.921-16.841 22.601-16.841 13.022 0 23.578 10.556 23.578 23.577 0 13.022-10.556 23.578-23.578 23.578-10.68 0-19.702-7.102-22.601-16.841H46.211a23.455 23.455 0 0 1-2.628 5.798l18.015 18.015a23.473 23.473 0 0 1 12.535-3.604c13.021 0 23.577 10.556 23.577 23.577 0 13.022-10.556 23.577-23.577 23.577-13.021 0-23.577-10.555-23.577-23.577 0-3.506.765-6.833 2.138-9.824l-19.26-19.26a23.49 23.49 0 0 1-9.823 2.139C10.588 98.247.032 87.69.032 74.669c0-13.021 10.556-23.577 23.577-23.577 4.061 0 7.882 1.026 11.217 2.834L53.39 35.364a23.473 23.473 0 0 1-2.834-11.218Zm63.996 50.523v.023c.012 5.57 4.531 10.082 10.104 10.082 5.581 0 10.105-4.524 10.105-10.105 0-5.58-4.524-10.104-10.105-10.104-5.573 0-10.092 4.511-10.104 10.082v.022ZM23.61 64.565c-5.58 0-10.104 4.524-10.104 10.104 0 5.58 4.524 10.105 10.104 10.105 5.581 0 10.105-4.524 10.105-10.105 0-5.58-4.524-10.104-10.105-10.104Zm40.418 60.627c0-5.581 4.524-10.104 10.105-10.104 5.58 0 10.105 4.523 10.105 10.104 0 5.581-4.524 10.105-10.105 10.105-5.58 0-10.105-4.524-10.105-10.105Z",clipRule:"evenodd"}),l("path",{fill:"currentColor",d:"M213.869 86.31c0-18.48 14.64-32.04 32.88-32.04 9 0 17.28 3 24.24 10.44l-8.88 9.24c-4.08-4.2-8.88-6.6-15.36-6.6-10.56 0-18.6 8.04-18.6 18.96 0 10.92 8.04 18.959 18.6 18.959 6.48 0 11.28-2.4 15.36-6.6l8.88 9.24c-6.96 7.44-15.24 10.44-24.24 10.44-18.24 0-32.88-13.56-32.88-32.04Zm70.372-39.72h-11.88V33.03h26.88v83.639h-15v-70.08Zm23.468 54.599 12.24-6.96c2.88 6.12 9.24 10.2 16.44 10.2 10.2 0 17.04-6.36 17.04-15.84s-6.48-15.84-16.2-15.84c-4.68 0-9.48 1.44-12.48 4.32l-10.8-2.88 7.8-41.16h40.56v13.56h-29.28l-3 15.12c2.52-1.08 5.52-1.56 8.76-1.56 17.76 0 29.52 11.28 29.52 28.32 0 17.76-12.72 29.64-31.92 29.64-12.6 0-23.52-6.84-28.68-16.92Zm72.386-31.92h-7.8V56.19h7.8V33.03h14.4v23.16h13.08v13.08h-13.08v47.4h-14.4v-47.4Z"})]}),t=({title:c="INTH",titleId:n="inth-logo",...t})=>e("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 88 90",fill:"none","aria-labelledby":n,...t,children:[l("title",{id:n,children:c}),l("path",{fill:"currentColor",d:"M40.9164 0V8.26444H27.6933V26.7966H40.9164V35.0608H6.15594V26.7966H19.3788V8.26444H6.15594V0H40.9164Z"}),l("path",{fill:"currentColor",d:"M72.1149 20.1264V0H80.0343V35.0608H74.2747L54.9798 14.8193V35.0608H47.0604V0H52.964L72.1149 20.1264Z"}),l("path",{fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd",d:"M71.36 41.6H88V89.6H0V41.6H61.12V31.04L71.36 41.6ZM6.15594 48.0891V56.4034H19.1784V83.2H27.4428V56.4034H40.5656V48.0891H6.15594ZM47.0603 48.1391V83.2H55.3247V70.2441H71.7531V83.2H80.0675V48.1391H71.7531V61.9797H55.3247V48.1391H47.0603Z"})]}),o=e=>l(t,{titleId:"inth-full-logo",...e}),i=e=>l(t,{titleId:"inth-icon",...e}),r=({title:c="Consent",titleId:n="consent-logo",...t})=>e("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 595 97","aria-labelledby":n,className:"consent-logo",...t,children:[l("title",{id:n,children:c}),l("path",{fill:"currentColor",fillRule:"evenodd",d:"M53.679 70.787c6.17 0 11.172-5.002 11.172-11.172 0-4.009-2.111-7.524-5.283-9.495a23.868 23.868 0 0 1 8.817-1.677c13.217 0 23.93 10.714 23.93 23.93s-10.713 23.93-23.93 23.93c-13.216 0-23.93-10.714-23.93-23.93 0-1.924.227-3.795.656-5.588a11.148 11.148 0 0 0 8.568 4.002Z",clipRule:"evenodd"}),l("path",{fill:"currentColor",fillRule:"evenodd",d:"M1.118 74.716a68.462 68.462 0 0 1-.098-3.654c0-37.205 30.16-67.365 67.365-67.365s67.365 30.16 67.365 67.365c0 1.226-.032 2.444-.097 3.654h-21.927c.041-.776.061-1.557.061-2.343 0-24.531-19.887-44.418-44.418-44.418-24.532 0-44.418 19.887-44.418 44.418 0 .786.02 1.567.06 2.343H1.118Z",clipRule:"evenodd"}),l("path",{fill:"currentColor",d:"M566.424 36.6h-7.8V23.52h7.8V.36h14.4v23.16h13.08V36.6h-13.08V84h-14.4V36.6ZM497.535 23.52h14.28v8.64c2.76-5.76 9.6-9.84 18.36-9.84 14.52 0 22.92 9.36 22.92 24.24V84h-14.4V48.6c0-8.16-4.68-13.44-12.84-13.44s-14.04 5.76-14.04 14.04V84h-14.28V23.52ZM429.265 53.76c0-19.44 13.56-31.92 31.68-31.92 18 0 29.88 13.56 29.88 30.48 0 0 0 2.64-.24 5.04h-47.04c.48 9.6 7.56 15.84 18.24 15.84 7.32 0 11.76-2.4 16.32-6.96l8.64 8.4c-7.8 8.28-16.32 10.8-25.44 10.8-18.96 0-32.04-12.24-32.04-31.2v-.48Zm46.92-6.48c0-7.2-6.84-13.2-15.24-13.2-9 0-16.44 5.88-17.04 13.2h32.28ZM385.367 65.52c2.52 4.08 8.159 7.56 15.959 7.56 8.28 0 10.8-3.48 10.8-6.6 0-5.04-7.2-6.24-16.56-9.6-8.88-3.24-14.88-7.8-14.88-17.04 0-11.64 9.84-18.12 21.36-18.12 10.08 0 16.8 3.84 21 9.12l-8.039 8.52c-2.521-3-6.6-5.28-13.2-5.28-4.56 0-7.321 2.16-7.321 5.4 0 4.56 5.041 5.16 15.241 8.88 11.16 3.96 16.199 9.24 16.199 18 0 10.44-7.559 19.2-24.839 19.2-12.6 0-21.241-5.04-24.961-12.24l9.241-7.8ZM315.997 23.52h14.28v8.64c2.76-5.76 9.6-9.84 18.36-9.84 14.52 0 22.92 9.36 22.92 24.24V84h-14.4V48.6c0-8.16-4.68-13.44-12.84-13.44s-14.04 5.76-14.04 14.04V84h-14.28V23.52ZM242.806 53.76c0-18.12 14.64-32.04 33-32.04 18.24 0 33 13.92 33 32.04 0 18.12-14.76 32.04-33 32.04-18.36 0-33-13.92-33-32.04Zm14.28 0c0 10.68 8.04 18.96 18.72 18.96 10.56 0 18.72-8.28 18.72-18.96 0-10.68-8.16-18.96-18.72-18.96-10.68 0-18.72 8.28-18.72 18.96ZM183.387 53.64c0-18.48 14.64-32.04 32.88-32.04 9 0 17.28 3 24.24 10.44l-8.88 9.24c-4.08-4.2-8.88-6.6-15.36-6.6-10.56 0-18.6 8.04-18.6 18.96 0 10.92 8.04 18.96 18.6 18.96 6.48 0 11.28-2.4 15.36-6.6l8.88 9.24c-6.96 7.44-15.24 10.44-24.24 10.44-18.24 0-32.88-13.56-32.88-32.04Z"})]}),a=({title:c="Consent",titleId:n="consent-icon",...t})=>e("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 140 97",fill:"none","aria-labelledby":n,...t,children:[l("title",{id:n,children:c}),l("path",{fill:"currentColor",fillRule:"evenodd",d:"M53.179 70.787c6.17 0 11.172-5.002 11.172-11.172 0-4.009-2.111-7.524-5.283-9.495a23.87 23.87 0 0 1 8.817-1.677c13.217 0 23.93 10.714 23.93 23.93s-10.713 23.93-23.93 23.93c-13.216 0-23.93-10.714-23.93-23.93 0-1.924.227-3.795.656-5.588a11.148 11.148 0 0 0 8.568 4.002Z",clipRule:"evenodd"}),l("path",{fill:"currentColor",fillRule:"evenodd",d:"M.618 74.716a68.453 68.453 0 0 1-.098-3.654c0-37.205 30.16-67.365 67.365-67.365s67.365 30.16 67.365 67.365c0 1.226-.032 2.444-.097 3.654h-21.927c.041-.776.061-1.557.061-2.343 0-24.531-19.887-44.418-44.418-44.418-24.532 0-44.418 19.887-44.418 44.418 0 .786.02 1.567.06 2.343H.618Z",clipRule:"evenodd"})]}),d=({title:c="Privacy",titleId:n="fingerprint-icon",...t})=>e("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-labelledby":n,...t,children:[l("title",{id:n,children:c}),l("path",{d:"M12 10a2 2 0 0 0-2 2c0 1.02-.1 2.51-.26 4"}),l("path",{d:"M14 13.12c0 2.38 0 6.38-1 8.88"}),l("path",{d:"M17.29 21.02c.12-.6.43-2.3.5-3.02"}),l("path",{d:"M2 12a10 10 0 0 1 18-6"}),l("path",{d:"M2 16h.01"}),l("path",{d:"M21.8 16c.2-2 .131-5.354 0-6"}),l("path",{d:"M5 19.5C5.5 18 6 15 6 12a6 6 0 0 1 .34-2"}),l("path",{d:"M8.65 22c.21-.66.45-1.32.57-2"}),l("path",{d:"M9 6.8a6 6 0 0 1 9 5.2v2"})]}),h=({title:c="Settings",titleId:n="settings-icon",...t})=>e("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-labelledby":n,...t,children:[l("title",{id:n,children:c}),l("path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"}),l("circle",{cx:"12",cy:"12",r:"3"})]});export{n as C15TIcon,c as C15TIconOnly,a as ConsentIconOnly,r as ConsentLogo,d as FingerprintIcon,i as InthIconOnly,o as InthLogo,h as SettingsIcon};
1
+ import{jsx as l,jsxs as t}from"react/jsx-runtime";let e=({title:e="c15t",titleId:i="c15t-icon",...a})=>t("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 446 445","aria-labelledby":i,...a,children:[l("title",{id:i,children:e}),l("path",{fill:"currentColor",d:"M223.178.313c39.064 0 70.732 31.668 70.732 70.732-.001 39.064-31.668 70.731-70.732 70.731-12.181 0-23.642-3.079-33.649-8.502l-55.689 55.689a70.267 70.267 0 0 1 5.574 13.441h167.531c8.695-29.217 35.762-50.523 67.804-50.523 39.064 0 70.731 31.668 70.731 70.732s-31.668 70.732-70.731 70.732c-32.042 0-59.108-21.306-67.803-50.523H139.413a70.417 70.417 0 0 1-7.888 17.396l54.046 54.046c10.893-6.851 23.786-10.815 37.605-10.815 39.064 0 70.732 31.669 70.732 70.733 0 39.064-31.668 70.731-70.732 70.731s-70.732-31.667-70.732-70.731c0-10.518 2.296-20.499 6.414-29.471l-57.78-57.78c-8.972 4.117-18.952 6.414-29.47 6.414-39.063 0-70.731-31.668-70.732-70.732 0-39.064 31.669-70.732 70.733-70.732 12.18 0 23.642 3.079 33.649 8.502l55.688-55.688c-5.423-10.007-8.502-21.469-8.502-33.65 0-39.064 31.668-70.733 70.732-70.733Zm0 343.555c-16.742 0-30.314 13.572-30.314 30.314 0 16.741 13.572 30.313 30.314 30.313s30.314-13.572 30.314-30.313c0-16.742-13.572-30.314-30.314-30.314ZM71.611 192.299c-16.742 0-30.315 13.572-30.315 30.314s13.573 30.314 30.315 30.314c16.741 0 30.313-13.572 30.313-30.314 0-16.741-13.572-30.314-30.313-30.314Zm303.138 0c-16.729 0-30.294 13.551-30.315 30.275l.001.039-.001.038c.021 16.725 13.586 30.276 30.315 30.276 16.741 0 30.313-13.572 30.313-30.314 0-16.741-13.572-30.314-30.313-30.314ZM223.178 40.73c-16.742 0-30.314 13.573-30.314 30.315s13.573 30.313 30.314 30.313c16.742 0 30.313-13.572 30.314-30.313 0-16.742-13.572-30.314-30.314-30.315Z"})]}),i=({title:e="INTH",titleId:i="inth-logo",...a})=>t("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 88 90",fill:"none","aria-labelledby":i,...a,children:[l("title",{id:i,children:e}),l("path",{fill:"currentColor",d:"M40.9164 0V8.26444H27.6933V26.7966H40.9164V35.0608H6.15594V26.7966H19.3788V8.26444H6.15594V0H40.9164Z"}),l("path",{fill:"currentColor",d:"M72.1149 20.1264V0H80.0343V35.0608H74.2747L54.9798 14.8193V35.0608H47.0604V0H52.964L72.1149 20.1264Z"}),l("path",{fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd",d:"M71.36 41.6H88V89.6H0V41.6H61.12V31.04L71.36 41.6ZM6.15594 48.0891V56.4034H19.1784V83.2H27.4428V56.4034H40.5656V48.0891H6.15594ZM47.0603 48.1391V83.2H55.3247V70.2441H71.7531V83.2H80.0675V48.1391H71.7531V61.9797H55.3247V48.1391H47.0603Z"})]}),a=t=>l(i,{titleId:"inth-full-logo",...t}),n=t=>l(i,{titleId:"inth-icon",...t}),r=({title:e="Privacy",titleId:i="fingerprint-icon",...a})=>t("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-labelledby":i,...a,children:[l("title",{id:i,children:e}),l("path",{d:"M12 10a2 2 0 0 0-2 2c0 1.02-.1 2.51-.26 4"}),l("path",{d:"M14 13.12c0 2.38 0 6.38-1 8.88"}),l("path",{d:"M17.29 21.02c.12-.6.43-2.3.5-3.02"}),l("path",{d:"M2 12a10 10 0 0 1 18-6"}),l("path",{d:"M2 16h.01"}),l("path",{d:"M21.8 16c.2-2 .131-5.354 0-6"}),l("path",{d:"M5 19.5C5.5 18 6 15 6 12a6 6 0 0 1 .34-2"}),l("path",{d:"M8.65 22c.21-.66.45-1.32.57-2"}),l("path",{d:"M9 6.8a6 6 0 0 1 9 5.2v2"})]}),o=({title:e="Settings",titleId:i="settings-icon",...a})=>t("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-labelledby":i,...a,children:[l("title",{id:i,children:e}),l("path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"}),l("circle",{cx:"12",cy:"12",r:"3"})]});export{e as C15TIconOnly,r as FingerprintIcon,n as InthIconOnly,a as InthLogo,o as SettingsIcon};
@@ -1 +1,2 @@
1
- import{jsx as e}from"react/jsx-runtime";import{getDataDisabled as t}from"@c15t/ui/primitives/data-state";import{PREFERENCE_ITEM_INTERNAL_SLOTS as r,PREFERENCE_ITEM_SLOTS as a,getPreferenceItemState as n,togglePreferenceItemValue as i}from"@c15t/ui/primitives/preference-item";import{preferenceItemVariants as l}from"@c15t/ui/styles/primitives/preference-item";import{createContext as o,forwardRef as s,useContext as c,useId as d}from"react";import{useControllableState as m}from"../../libs/use-controllable-state.js";import{useTheme as f}from"../../../../hooks/use-theme.js";let u=o(null);function p(){let e=c(u);if(!e)throw Error("PreferenceItem components must be used within PreferenceItemRoot");return e}let I=s(({children:r,className:i,defaultOpen:o=!1,disabled:s,noStyle:c,onOpenChange:p,open:I,...y},g)=>{let{noStyle:P}=f(),h=l(),[v,N]=m({defaultValue:o,onChange:p,value:I}),b=d().replace(/:/g,""),S=P||c;return e(u.Provider,{value:{contentId:`c15t-preference-item-content-${b}`,disabled:s,noStyle:S,open:v,setOpen:N,triggerId:`c15t-preference-item-trigger-${b}`},children:e("div",{ref:g,className:S?i:h.root({class:i}),"data-disabled":t(s),"data-slot":a.root,"data-state":n(v),...y,children:r})})});I.displayName="PreferenceItemRoot";let y=s(({children:r,className:o,noStyle:s,onClick:c,...d},m)=>{let{noStyle:u}=f(),I=l(),{contentId:y,disabled:g,noStyle:P,open:h,setOpen:v,triggerId:N}=p();return e("button",{ref:m,"aria-controls":y,"aria-disabled":g||void 0,"aria-expanded":h,className:P||u||s?o:I.trigger({class:o}),"data-disabled":t(g),"data-slot":a.trigger,"data-state":n(h),disabled:g,id:N,onClick:e=>{g||v(i(h)),c?.(e)},type:"button",...d,children:r})});function g(t,r,a){let n=s(({className:t,noStyle:n,...i},o)=>{let{noStyle:s}=f(),{noStyle:c}=p(),d=l();return e("div",{ref:o,className:c||s||n?t:d[a]({class:t}),"data-slot":r,...i})});return n.displayName=t,n}y.displayName="PreferenceItemTrigger";let P=g("PreferenceItemLeading",a.leading,"leading"),h=g("PreferenceItemHeader",a.header,"header"),v=g("PreferenceItemMeta",a.meta,"meta"),N=g("PreferenceItemAuxiliary",a.auxiliary,"auxiliary"),b=g("PreferenceItemControl",a.control,"control"),S=s(({className:t,noStyle:r,...n},i)=>{let{noStyle:o}=f(),{noStyle:s}=p(),c=l();return e("h3",{ref:i,className:s||o||r?t:c.title({class:t}),"data-slot":a.title,...n})});S.displayName="PreferenceItemTitle";let x=s(({children:t,className:i,innerClassName:o,noStyle:s,...c},d)=>{let{noStyle:m}=f(),u=l(),{contentId:I,noStyle:y,open:g,triggerId:P}=p();return e("div",{ref:d,"aria-hidden":!g,"aria-labelledby":P,className:u.content({class:(y,i)}),"data-slot":a.content,"data-state":n(g),id:I,inert:!g,...c,children:e("div",{className:u.contentViewport(),"data-slot":r.contentViewport,children:e("div",{className:u.contentInner({class:o}),"data-slot":r.contentInner,children:t})})})});x.displayName="PreferenceItemContent";export{N as Auxiliary,x as Content,b as Control,h as Header,P as Leading,v as Meta,I as Root,S as Title,y as Trigger};
1
+ "use client";
2
+ import{jsx as e}from"react/jsx-runtime";import{getDataDisabled as t}from"@c15t/ui/primitives/data-state";import{PREFERENCE_ITEM_INTERNAL_SLOTS as r,PREFERENCE_ITEM_SLOTS as n,getPreferenceItemState as a,togglePreferenceItemValue as o}from"@c15t/ui/primitives/preference-item";import l from"@c15t/ui/styles/components/preference-item";import{createContext as i,forwardRef as s,useContext as c,useId as m,useMemo as d}from"react";import{useControllableState as f}from"../../libs/use-controllable-state.js";import{useTheme as p}from"../../../../hooks/use-theme.js";import{useUIConfig as u}from"../../../../ui-config-context.js";import{getSlotProps as y,mergeSlotProps as g}from"../../../../utils/merge-slot-props.js";let I=()=>({auxiliary:e=>[l.auxiliary,e?.class].filter(Boolean).join(" "),content:e=>[l.content,e?.class].filter(Boolean).join(" "),contentInner:e=>[l.contentInner,e?.class].filter(Boolean).join(" "),contentViewport:e=>[l.contentViewport,e?.class].filter(Boolean).join(" "),control:e=>[l.control,e?.class].filter(Boolean).join(" "),header:e=>[l.header,e?.class].filter(Boolean).join(" "),leading:e=>[l.leading,e?.class].filter(Boolean).join(" "),meta:e=>[l.meta,e?.class].filter(Boolean).join(" "),root:e=>[l.root,e?.class].filter(Boolean).join(" "),title:e=>[l.title,e?.class].filter(Boolean).join(" "),trigger:e=>[l.trigger,e?.class].filter(Boolean).join(" ")}),P=i(null),b=function(){let e=c(P);if(!e)throw Error("PreferenceItem components must be used within PreferenceItemRoot");return e},h=s(({children:r,className:o,defaultOpen:l=!1,disabled:i,noStyle:s,onOpenChange:c,open:b,slotKey:h,...S},j)=>{let{components:C}=u(),{noStyle:N}=p(),v=I(),[x,B]=f({defaultValue:l,onChange:c,value:b}),w=m().replace(/:/gu,""),T=s??N,V=g(y(C,h),{baseClassName:v.root(),className:o,noStyle:T,...S}),R=d(()=>({contentId:`c15t-preference-item-content-${w}`,disabled:i,noStyle:T,open:x,setOpen:B,triggerId:`c15t-preference-item-trigger-${w}`}),[i,T,x,w,B]);return e(P.Provider,{value:R,children:e("div",{...V,ref:j,"data-disabled":t(i),"data-slot":n.root,"data-state":a(x),children:r})})});h.displayName="PreferenceItemRoot";let S=s(({children:r,className:l,noStyle:i,onClick:s,slotKey:c,...m},d)=>{let{components:f}=u(),{noStyle:P}=p(),h=I(),{contentId:S,disabled:j,noStyle:C,open:N,setOpen:v,triggerId:x}=b();return e("button",{...g(y(f,c),{baseClassName:h.trigger(),className:l,noStyle:i??C??P,...m}),ref:d,"aria-controls":S,"aria-disabled":j||void 0,"aria-expanded":N,"data-disabled":t(j),"data-slot":n.trigger,"data-state":a(N),disabled:j,id:x,onClick:e=>{j||v(o(N)),s?.(e)},type:"button",children:r})});S.displayName="PreferenceItemTrigger";let j=function(t,r,n){let a=s(({className:t,noStyle:a,slotKey:o,...l},i)=>{let{components:s}=u(),{noStyle:c}=p(),{noStyle:m}=b(),d=I();return e("div",{...g(y(s,o),{baseClassName:d[n](),className:t,noStyle:a??m??c,...l}),ref:i,"data-slot":r})});return a.displayName=t,a},C=j("PreferenceItemLeading",n.leading,"leading"),N=j("PreferenceItemHeader",n.header,"header"),v=j("PreferenceItemMeta",n.meta,"meta"),x=j("PreferenceItemAuxiliary",n.auxiliary,"auxiliary"),B=j("PreferenceItemControl",n.control,"control"),w=s(({children:t,className:r,noStyle:a,...o},l)=>{let{components:i}=u(),{noStyle:s}=p(),{noStyle:c}=b(),m=I(),{slotKey:d,...f}=o;return e("h3",{...g(y(i,d),{baseClassName:m.title(),className:r,noStyle:a??c??s,...f}),ref:l,"data-slot":n.title,children:t})});w.displayName="PreferenceItemTitle";let T=s(({children:t,className:o,innerClassName:l,innerSlotKey:i,noStyle:s,slotKey:c,viewportClassName:m,viewportSlotKey:d,...f},P)=>{let{components:h}=u(),{noStyle:S}=p(),j=I(),{contentId:C,noStyle:N,open:v,triggerId:x}=b(),B=s??N??S,w=g(y(h,c),{baseClassName:j.content(),className:o,noStyle:B,...f}),T=g(y(h,d),{baseClassName:j.contentViewport(),className:m,noStyle:B}),V=g(y(h,i),{baseClassName:j.contentInner(),className:l,noStyle:B});return e("div",{...w,ref:P,"aria-hidden":!v,"aria-labelledby":x,"data-slot":n.content,"data-state":a(v),id:C,inert:!v,children:e("div",{...T,"data-slot":r.contentViewport,children:e("div",{...V,"data-slot":r.contentInner,children:t})})})});T.displayName="PreferenceItemContent";export{x as Auxiliary,T as Content,B as Control,N as Header,C as Leading,v as Meta,h as Root,w as Title,S as Trigger,I as preferenceItemVariants};
@@ -1 +1 @@
1
- import{jsx as t}from"react/jsx-runtime";import{getDataDisabled as a}from"@c15t/ui/primitives/data-state";import{getSwitchState as e,toggleSwitchValue as i}from"@c15t/ui/primitives/switch";import{switchVariants as s}from"@c15t/ui/styles/primitives/switch";import{forwardRef as o}from"react";import{useControllableState as r}from"../../libs/use-controllable-state.js";let c=o(({checked:o,className:c,defaultChecked:l=!1,disabled:m,noStyle:d,onCheckedChange:n,onClick:h,onKeyDown:p,size:u="medium",type:w="button",...f},b)=>{let v=s({size:u}),[k,y]=r({defaultValue:l,onChange:n,value:o}),N=d?c:v.root({class:c,disabled:m}),j=d?void 0:v.thumb({disabled:m}),x=d?void 0:v.track({disabled:m}),C=e(k),D=a(m),R=()=>{m||y(i(k))};return t("button",{ref:b,"aria-checked":k,className:N,"data-disabled":D,"data-slot":"switch","data-state":C,disabled:m,onClick:t=>{R(),h?.(t)},onKeyDown:t=>{"Enter"===t.key&&(t.preventDefault(),R()),p?.(t)},role:"switch",type:w,...f,children:t("span",{className:x,"data-slot":"switch-track",children:t("span",{className:j,"data-slot":"switch-thumb"})})})});c.displayName="SwitchRoot";export{c as Root,s as switchVariants};
1
+ import{jsx as t}from"react/jsx-runtime";import{getDataDisabled as o}from"@c15t/ui/primitives/data-state";import{getSwitchState as e,toggleSwitchValue as a}from"@c15t/ui/primitives/switch";import s from"@c15t/ui/styles/components/switch";import{forwardRef as i}from"react";import{useControllableState as r}from"../../libs/use-controllable-state.js";import{useTheme as l}from"../../../../hooks/use-theme.js";import{useUIConfig as m}from"../../../../ui-config-context.js";import{mergeSlotProps as c}from"../../../../utils/merge-slot-props.js";let n=()=>({root:t=>[s.root,t?.class].filter(Boolean).join(" "),thumb:t=>[s.thumb,t?.class].filter(Boolean).join(" "),track:t=>[s.track,t?.class].filter(Boolean).join(" ")}),h=i(({checked:s,className:i,defaultChecked:h=!1,disabled:u,noStyle:p,onCheckedChange:d,onClick:f,onKeyDown:b,size:w="medium",type:y="button",...k},j)=>{let{components:S}=m(),{noStyle:v}=l(),C=n(),[N,g]=r({defaultValue:h,onChange:d,value:s}),x=p??v,B=c(S?.switch?.root,{baseClassName:C.root(),className:i,noStyle:x,...k}),D=c(S?.switch?.track,{baseClassName:C.track(),noStyle:x}),R=c(S?.switch?.thumb,{baseClassName:C.thumb(),noStyle:x}),V=e(N),z=o(u),E=()=>{u||g(a(N))};return t("button",{...B,ref:j,"aria-checked":N,"data-disabled":z,"data-size":x?void 0:w,"data-slot":"switch","data-state":V,disabled:u,onClick:t=>{E(),f?.(t)},onKeyDown:t=>{"Enter"===t.key&&(t.preventDefault(),E()),b?.(t)},role:"switch",type:"button",children:t("span",{...D,"data-slot":"switch-track",children:t("span",{...R,"data-slot":"switch-thumb"})})})});h.displayName="SwitchRoot";export{h as Root,n as switchVariants};
@@ -1 +1,2 @@
1
- import{jsx as t}from"react/jsx-runtime";import{getDataDisabled as e}from"@c15t/ui/primitives/data-state";import{getNextTabValue as a,getTabPanelState as r,getTabState as o}from"@c15t/ui/primitives/tabs";import{tabsVariants as l}from"@c15t/ui/styles/primitives/tabs";import{createContext as i,forwardRef as s,useContext as n,useId as d,useMemo as c,useRef as u}from"react";import{useControllableState as m}from"../../libs/use-controllable-state.js";import{useTheme as b}from"../../../../hooks/use-theme.js";let g=i(null);function p(){let t=n(g);if(!t)throw Error("Tabs components must be used within TabsRoot");return t}let y=s(({children:a,className:r,defaultValue:o,disabled:i,loop:s=!0,noStyle:n,onValueChange:p,orientation:y="horizontal",value:f,...T},$)=>{let h=d().replace(/:/g,""),{noStyle:v}=b(),S=l({orientation:y}),[N,k]=m({defaultValue:o??"",onChange:p,value:f}),C=u(new Map),w=v||n,x=c(()=>({baseId:`c15t-tabs-${h}`,disabled:i,loop:s,noStyle:w,onValueChange:k,orientation:y,registerTrigger:(t,e)=>{C.current.set(t,e)},value:N}),[N,i,w,s,y,h,k]);return t(g.Provider,{value:x,children:t("div",{ref:$,className:w?r:S.root({class:r}),"data-disabled":e(i),"data-orientation":y,"data-slot":"tabs-root",...T,children:a})})});y.displayName="TabsRoot";let f=s(({className:a,noStyle:r,orientation:o,...i},s)=>{let{noStyle:n}=b(),{disabled:d,noStyle:c,orientation:u}=p(),m=o??u,g=l({orientation:m});return t("div",{ref:s,"aria-orientation":m,className:c||n||r?a:g.list({class:a}),"data-disabled":e(d),"data-orientation":m,"data-slot":"tabs-list",role:"tablist",...i})});f.displayName="TabsList";let T=s(({children:r,className:i,noStyle:s,onClick:n,onKeyDown:d,value:c,...m},g)=>{let{noStyle:y}=b(),f=l(),{baseId:T,disabled:$,loop:h,noStyle:v,onValueChange:S,orientation:N,registerTrigger:k,value:C}=p(),w=C===c,x=u(null);return t("button",{ref:t=>{x.current=t,k(c,t),"function"==typeof g?g(t):g&&(g.current=t)},"aria-controls":`${T}-content-${c}`,"aria-selected":w,className:v||y||s?i:f.trigger({class:i}),"data-disabled":e($),"data-slot":"tabs-trigger","data-state":o(w),disabled:$,id:`${T}-trigger-${c}`,onClick:t=>{S(c),n?.(t)},onKeyDown:t=>{let e=a({currentValue:c,key:t.key,loop:h,orientation:N,triggerValues:Array.from(document.querySelectorAll(`[data-slot="tabs-trigger"][id^="${T}-trigger-"]`)).map(t=>t.id.replace(`${T}-trigger-`,""))});if(e!==c||"Home"===t.key||"End"===t.key){let a;t.preventDefault(),S(e),(a=document.getElementById(`${T}-trigger-${e}`)??null)instanceof HTMLButtonElement&&a.focus()}d?.(t)},role:"tab",tabIndex:w?0:-1,type:"button",...m,children:r})});T.displayName="TabsTrigger";let $=s(({children:e,className:a,forceMount:o=!1,noStyle:i,value:s,...n},d)=>{let{noStyle:c}=b(),u=l(),{baseId:m,noStyle:g,value:y}=p(),f=y===s;return o||f?t("div",{ref:d,"aria-labelledby":`${m}-trigger-${s}`,className:g||c||i?a:u.content({class:a}),"data-slot":"tabs-content","data-state":r(f),hidden:!f,id:`${m}-content-${s}`,role:"tabpanel",tabIndex:0,...n,children:e}):null});$.displayName="TabsContent";export{$ as Content,f as List,y as Root,T as Trigger};
1
+ "use client";
2
+ import{jsx as t}from"react/jsx-runtime";import{getDataDisabled as e}from"@c15t/ui/primitives/data-state";import{getNextTabValue as a,getTabPanelState as r,getTabState as o}from"@c15t/ui/primitives/tabs";import l from"@c15t/ui/styles/components/tabs";import{createContext as n,forwardRef as s,useContext as i,useId as d,useMemo as c,useRef as u}from"react";import{useControllableState as b}from"../../libs/use-controllable-state.js";import{useTheme as m}from"../../../../hooks/use-theme.js";let g=()=>({content:t=>[l.content,t?.class].filter(Boolean).join(" "),list:t=>[l.list,t?.class].filter(Boolean).join(" "),root:t=>[l.root,t?.class].filter(Boolean).join(" "),trigger:t=>[l.trigger,t?.class].filter(Boolean).join(" ")}),f=n(null),p=function(){let t=i(f);if(!t)throw Error("Tabs components must be used within TabsRoot");return t},y=s(({children:a,className:r,defaultValue:o,disabled:l,loop:n=!0,noStyle:s,onValueChange:i,orientation:p="horizontal",value:y,...T},$)=>{let h=d().replace(/:/gu,""),{noStyle:v}=m(),S=g(),[N,j]=b({defaultValue:o??"",onChange:i,value:y}),k=u(new Map),B=v||s,C=c(()=>({baseId:`c15t-tabs-${h}`,disabled:l,loop:n,noStyle:B,onValueChange:j,orientation:p,registerTrigger:(t,e)=>{k.current.set(t,e)},value:N}),[N,l,B,n,p,h,j]);return t(f.Provider,{value:C,children:t("div",{ref:$,className:B?r:S.root({class:r}),"data-disabled":e(l),"data-orientation":p,"data-slot":"tabs-root",...T,children:a})})});y.displayName="TabsRoot";let T=s(({className:a,noStyle:r,orientation:o,...l},n)=>{let{noStyle:s}=m(),{disabled:i,noStyle:d,orientation:c}=p(),u=o??c,b=g();return t("div",{ref:n,"aria-orientation":u,className:d||s||r?a:b.list({class:a}),"data-disabled":e(i),"data-orientation":u,"data-slot":"tabs-list",role:"tablist",...l})});T.displayName="TabsList";let $=s(({children:r,className:l,noStyle:n,onClick:s,onKeyDown:i,value:d,...c},b)=>{let{noStyle:f}=m(),y=g(),{baseId:T,disabled:$,loop:h,noStyle:v,onValueChange:S,orientation:N,registerTrigger:j,value:k}=p(),B=k===d,C=u(null);return t("button",{ref:t=>{C.current=t,j(d,t),"function"==typeof b?b(t):b&&(b.current=t)},"aria-controls":`${T}-content-${d}`,"aria-selected":B,className:v||f||n?l:y.trigger({class:l}),"data-disabled":e($),"data-slot":"tabs-trigger","data-state":o(B),disabled:$,id:`${T}-trigger-${d}`,onClick:t=>{S(d),s?.(t)},onKeyDown:t=>{let e=a({currentValue:d,key:t.key,loop:h,orientation:N,triggerValues:Array.from(document.querySelectorAll(`[data-slot="tabs-trigger"][id^="${T}-trigger-"]`)).map(t=>t.id.replace(`${T}-trigger-`,""))});if(e!==d||"Home"===t.key||"End"===t.key){let a;t.preventDefault(),S(e),(a=document.getElementById(`${T}-trigger-${e}`)??null)instanceof HTMLButtonElement&&a.focus()}i?.(t)},role:"tab",tabIndex:B?0:-1,type:"button",...c,children:r})});$.displayName="TabsTrigger";let h=s(({children:e,className:a,forceMount:o=!1,noStyle:l,value:n,...s},i)=>{let{noStyle:d}=m(),c=g(),{baseId:u,noStyle:b,value:f}=p(),y=f===n;return o||y?t("div",{ref:i,"aria-labelledby":`${u}-trigger-${n}`,className:b||d||l?a:c.content({class:a}),"data-slot":"tabs-content","data-state":r(y),hidden:!y,id:`${u}-content-${n}`,role:"tabpanel",tabIndex:0,...s,children:e}):null});h.displayName="TabsContent";export{h as Content,T as List,y as Root,$ as Trigger,g as tabsVariants};
@@ -1 +1,2 @@
1
+ "use client";
1
2
  import{createContext as t,useContext as e}from"react";let n=t({}),o=()=>e(n);export{n as ConsentTrackingContext,o as useConsentTracking};
@@ -0,0 +1 @@
1
+ import{createContext as t}from"react";let e=t(null);e.displayName="C15tIABContext";export{e as IABContext};
@@ -0,0 +1 @@
1
+ export*from"../context.js";export*from"./consent-tracking-context.js";export*from"./theme-context.js";
@@ -1 +1,2 @@
1
- import{createContext as e}from"react";let o=e({theme:void 0,noStyle:!1,disableAnimation:!1,scrollLock:!1,trapFocus:!0,colorScheme:"system"}),t=e(null);export{o as GlobalThemeContext,t as LocalThemeContext};
1
+ "use client";
2
+ import{createContext as o}from"react";let e=o({colorScheme:"system",disableAnimation:!1,noStyle:!1,scrollLock:void 0,theme:void 0,trapFocus:void 0}),t=o(null);export{e as GlobalThemeContext,t as LocalThemeContext};
@@ -0,0 +1 @@
1
+ import{createContext as e}from"react";let t=e(null);t.displayName="C15tKernelContext";let l=e(null);export{t as KernelContext,l as ProviderServicesContext};
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ import{jsx as e}from"react/jsx-runtime";import{createDevTools as t}from"@c15t/dev-tools";import{createElement as r,forwardRef as o,useCallback as n,useContext as s,useEffect as l,useLayoutEffect as i,useMemo as u,useRef as c}from"react";import{KernelContext as d,ProviderServicesContext as a}from"./context.js";import{useIsHydrated as f}from"./hooks/use-is-hydrated.js";let v=e=>{if(!e)throw Error("c15t: DevTools must be rendered inside <ConsentProvider> from @c15t/react.");return e},g=(e,t)=>{let r=f(),o=c(e);i(()=>{o.current=e},[e]);let n=r&&!t&&e?JSON.stringify([...new Set(e())].sort()):void 0;return u(()=>{if(void 0===n)return;let e=JSON.parse(n);return()=>o.current?.()??e},[n])},m=(e,t)=>{let r=c({clearRecords:e,getPresentation:t});i(()=>{r.current={clearRecords:e,getPresentation:t}},[e,t]);let o=void 0!==e,n=void 0!==t;return u(()=>({clearRecords:o?()=>r.current.clearRecords?.():void 0,getPresentation:n?()=>r.current.getPresentation?.():void 0}),[o,n])},C=({disabled:e=!1,clearRecords:r,getPresentation:o,defaultOpen:n,defaultTab:i,getConsentCategories:u,maxEvents:c,position:f})=>{let C=s(a),p=m(r??C?.clearRecords,o??C?.getPresentation),D=s(d),P=e?null:v(D),h=g(u??C?.getConsentCategories,e);return l(()=>{if(!P)return;let e=t({...p,defaultOpen:n,defaultTab:i,getConsentCategories:h,kernel:P,maxEvents:c,position:f});return()=>e.destroy()},[n,i,h,p,P,c,f]),null},p=C,D=C,P={height:"100%",minHeight:0,width:"100%"},h=o(function({disabled:r=!1,clearRecords:o,getPresentation:l,defaultTab:u,getConsentCategories:f,maxEvents:C,style:p,...D},h){let y=s(a),T=m(o??y?.clearRecords,l??y?.getPresentation),S=s(d),R=r?null:v(S),j=g(f??y?.getConsentCategories,r),k=c(null),w=n(e=>{k.current=e;let t=((e,t)=>{if("function"==typeof e)return e(t);e&&(e.current=t)})(h,e);if("function"==typeof t)return()=>{k.current=null,t()}},[h]);return i(()=>{let e=k.current;if(!R||!e)return;let r=t({...T,container:e,defaultOpen:!0,defaultTab:u,getConsentCategories:j,kernel:R,maxEvents:C});return r.element?.classList.add("c15t-dev-tools--embedded"),()=>r.destroy()},[u,j,T,R,C]),e("div",{...D,ref:w,style:{...P,...p}})}),y=(e={})=>{let{id:t="c15t",name:o="c15t",defaultOpen:n=!1,...s}=e;return{defaultOpen:n,id:t,name:o,render:r(h,s)}},T=y;export{D as C15TDevTools,C as ConsentDevTools,p as DevTools,y as c15tDevtools,T as c15tDevtoolsPlugin,h as C15tTanStackDevtoolsPanel};
package/dist/draft.js ADDED
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ import{jsx as e}from"react/jsx-runtime";import{createContext as t,useCallback as r,useContext as o,useEffect as i,useMemo as s,useState as n,useSyncExternalStore as a}from"react";import{KernelContext as l,ProviderServicesContext as c}from"./context.js";import{useUIConfig as u}from"./ui-config-context.js";import{saveConsentUI as p}from"./ui-save.js";let f=function(e,t){let r={experience:!1,functionality:!1,marketing:!1,measurement:!1,necessary:!0};for(let o of e.policyRule.scope)r[o]=e.explicitChoice?.categories[o]?.value??t?.[o]??("opt-out"===e.policyRule.model||e.policyRule.preselectedCategories.includes(o));return r},d=function(e,t){let r=0,o=0,i=e.getSnapshot(),s=f(i,t),{fingerprint:n}=i.evaluationPolicy.choice,a={displayedCategories:["necessary",...i.policyRule.scope],isDirty:!1,isStale:!1,values:s},l=new Set,c=e=>{for(let t of(a=e,l))t()},u=()=>{r+=1,s=f(i=e.getSnapshot(),t),({fingerprint:n}=i.evaluationPolicy.choice),c({displayedCategories:["necessary",...i.policyRule.scope],isDirty:!1,isStale:!1,values:s})},p=e=>{let t={...a.values},o=!1;for(let r of a.displayedCategories)"necessary"!==r&&"boolean"==typeof e[r]&&t[r]!==e[r]&&(t[r]=e[r],o=!0);o&&(r+=1,c({...a,isDirty:a.displayedCategories.some(e=>t[e]!==s[e]),values:t}))},d=()=>{let t=e.getSnapshot();if(i.explicitChoice===t.explicitChoice&&i.policyRule===t.policyRule&&i.evaluationPolicy===t.evaluationPolicy)return;let r=n!==t.evaluationPolicy.choice.fingerprint;i=t,a.isDirty?r&&!a.isStale&&c({...a,isStale:!0}):u()};return{acceptAll(){p(Object.fromEntries(a.displayedCategories.map(e=>[e,!0])))},connect:()=>(d(),e.subscribe(d)),getSnapshot:()=>a,rejectAll(){p(Object.fromEntries(a.displayedCategories.map(e=>[e,!1])))},reset:u,async save(t,i,s){if(n!==e.getSnapshot().evaluationPolicy.choice.fingerprint||a.isStale)return c({...a,isStale:!0}),{ok:!1};let l={},p=new Set(i??a.displayedCategories);for(let e of a.displayedCategories)"necessary"!==e&&p.has(e)&&(l[e]=a.values[e]);let f=o+=1,d=e.commands.save(t??l,{categories:i}),y=r,g=await d;return g.ok&&f===o&&r===y&&!a.isStale&&n===e.getSnapshot().evaluationPolicy.choice.fingerprint&&(u(),s?.()),g},set(e,t){p({[e]:t})},subscribe:e=>(l.add(e),()=>{l.delete(e)}),update:p}},y=t(null),g=function(){let e=o(l);if(!e)throw Error("Consent drafts require a ConsentProvider.");return e},v=({children:t,initial:r})=>{let s=g(),a=o(y),{presentation:l}=u(),[c,p]=n(()=>d(s,r??l?.preferences?.defaults)),f=a&&!r?a:c;return i(()=>f.connect(),[f]),e(y.Provider,{value:f,children:t})},C=function(){let e=g(),t=o(y),{presentation:r}=u(),[s,a]=n(()=>d(e,r?.preferences?.defaults)),l=t??s;return i(()=>t?void 0:l.connect(),[t,l]),l},m=function(e){let t=g(),i=o(c);return r(r=>{let o=!1;return p(t,()=>e.save(r,i?.getConsentCategories(),()=>{o=!0}),()=>o)},[t,e,i])},h=function(e){let t=a(e.subscribe,e.getSnapshot,e.getSnapshot);return s(()=>({...t,acceptAll:e.acceptAll,rejectAll:e.rejectAll,reset:e.reset,save:e.save,set:e.set,update:e.update}),[t,e])},S=function(){return m(C())},P=function(){let e=C();return{draft:h(e),save:m(e)}},b=function(){return h(C())};export{v as ConsentDraftProvider,b as useConsentDraft,P as useConsentManagerDraft,S as useConsentSaveAction};
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ import{jsx as r}from"react/jsx-runtime";import{useMemo as e,useState as t,useSyncExternalStore as o}from"react";import{IABContext as n}from"./context/iab-context-value.js";let i=function(){return null},a=({runtime:a,children:l})=>{let[u,m]=t("purposes"),c=o(r=>a.onIABChange(r),()=>a.iab,i),p=e(()=>({handle:c,setTab:m,tab:u}),[c,u]);return r(n.Provider,{value:p,children:l})};export{a as ExternalIABProvider};
package/dist/frame.js ADDED
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ export*from"./components/frame/index.js";
package/dist/headless.js CHANGED
@@ -1 +1 @@
1
- export{configureConsentManager,defaultTranslationConfig,detectBrowserLanguage,mergeTranslationConfigs,policyPackPresets,prepareTranslationConfig}from"c15t";export{useColorScheme}from"./hooks/use-color-scheme.js";export{useConsentDialogTrigger}from"./hooks/use-consent-dialog-trigger.js";export{useConsentManager}from"./hooks/use-consent-manager.js";export{ConsentScriptConflictError,useConsentScript}from"./hooks/use-consent-script.js";export{useFocusTrap}from"./hooks/use-focus-trap.js";export{useHeadlessConsentUI}from"./hooks/use-headless-consent-ui.js";export{useTranslations}from"./hooks/use-translations.js";export{ConsentManagerProvider}from"./providers/consent-manager-provider.js";
1
+ export{defaultTranslationConfig,detectBrowserLanguage,mergeTranslationConfigs,prepareTranslationConfig}from"@c15t/core";export{useConsentDialogTrigger}from"./component-hooks/use-panel-trigger.js";export{useConsentManager}from"./component-hooks/use-manager.js";export{useHeadlessConsentUI}from"./component-hooks/use-headless-consent-ui.js";export{useTranslations}from"./component-hooks/use-translations.js";export{useColorScheme}from"./hooks/use-color-scheme.js";export{useFocusTrap}from"./hooks/use-focus-trap.js";
@@ -1 +1,2 @@
1
- import{setupColorScheme as r}from"@c15t/ui/utils";import{useEffect as o}from"react";function t(t){o(()=>{if(null!==t)return r(t)},[t])}export{t as useColorScheme};
1
+ "use client";
2
+ import{setupColorScheme as e}from"@c15t/ui/utils";import{useEffect as o}from"react";let r=function(r){o(()=>{if(null!==r)return e(r)},[r])};export{r as useColorScheme};
@@ -1 +1,2 @@
1
- import{useReducedMotion as o}from"./use-reduced-motion.js";import{useTheme as t}from"./use-theme.js";function e(e){let n=t(),i=o();return{noStyle:e?.noStyle??n.noStyle??!1,disableAnimation:e?.disableAnimation??n.disableAnimation??i,scrollLock:e?.scrollLock??n.scrollLock??!1,trapFocus:e?.trapFocus??n.trapFocus??!0}}export{e as useComponentConfig};
1
+ "use client";
2
+ import{useReducedMotion as o}from"./use-reduced-motion.js";import{useTheme as e}from"./use-theme.js";let n=function(n){let t=e(),s=o();return{disableAnimation:n?.disableAnimation??t.disableAnimation??s,noStyle:n?.noStyle??t.noStyle??!1,scrollLock:n?.scrollLock??t.scrollLock??!1,trapFocus:n?.trapFocus??t.trapFocus??!0}};export{n as useComponentConfig};
@@ -1 +1,2 @@
1
- import{setupFocusTrap as r}from"@c15t/ui/utils/dom";import{useEffect as t}from"react";function o(o,u){t(()=>{if(o&&u&&u.current)return r(u.current)},[o,u])}export{o as useFocusTrap};
1
+ "use client";
2
+ import{setupFocusTrap as r}from"@c15t/ui/utils/dom";import{useEffect as t}from"react";let u=function(u,o){t(()=>{if(u&&o&&o.current)return r(o.current)},[u,o])};export{u as useFocusTrap};
@@ -1 +1,2 @@
1
- import{useCallback as e,useMemo as r}from"react";import{useConsentManager as t}from"./use-consent-manager.js";function n(){let{activeUI:n,model:s,iab:a,policyBanner:{scrollLock:o},policyDialog:{scrollLock:l},setActiveUI:i}=t(),c=!!a?.config.enabled,u=r(()=>(function(e){if(!e?.gvl)return{isReady:!1,vendorCount:0,displayItems:[],remainingCount:0};let r=e.gvl,t=Object.keys(r.vendors).length+(e.nonIABVendors?.length??0),n=Object.entries(r.purposes).filter(([e])=>Object.values(r.vendors).some(r=>r.purposes?.includes(Number(e))||r.legIntPurposes?.includes(Number(e)))).map(([e,r])=>({id:Number(e),name:r.name})),s=n.find(e=>1===e.id),a=n.filter(e=>1!==e.id),o=new Set(a.map(e=>e.id)),l=[];for(let e of Object.values(r.stacks||{})){let r=e.purposes.filter(e=>o.has(e));r.length>=2&&l.push({name:e.name,coveredPurposeIds:r,score:r.length})}l.sort((e,r)=>r.score-e.score);let i=[],c=new Set;for(let{name:e,coveredPurposeIds:r}of l){let t=r.filter(e=>!c.has(e));if(t.length>=2)for(let r of(i.push(e),t))c.add(r)}let u=a.filter(e=>!c.has(e.id)),p=Object.entries(r.specialFeatures||{}).filter(([e])=>Object.values(r.vendors).some(r=>r.specialFeatures?.includes(Number(e)))).map(([,e])=>e.name),f=[];for(let e of(s&&f.push(s.name),i))f.push(e);for(let e of u)f.push(e.name);for(let e of p)f.push(e);return{isReady:!0,vendorCount:t,displayItems:f.slice(0,5),remainingCount:Math.max(0,f.length-5)}})(a),[a]),p=e(e=>{i("banner",e)},[i]),f=e(e=>{e?.tab&&a?.setPreferenceCenterTab(e.tab),i("dialog")},[a,i]),d=e(()=>{f({tab:"purposes"})},[f]),m=e(()=>{f({tab:"vendors"})},[f]),b=e(()=>{i("none")},[i]),g=e(()=>{if(!a)return;a.acceptAll();let e=a.save();return i("none"),e},[a,i]),h=e(()=>{if(!a)return;a.rejectAll();let e=a.save();return i("none"),e},[a,i]),v=e(()=>{if(!a)return;let e=a.save();return i("none"),e},[a,i]),j=e(e=>{switch(e){case"accept":return g();case"reject":return h();case"customize":return d()}},[g,d,h]),y=e(e=>{switch(e){case"accept":return g();case"reject":return h();case"customize":return v()}},[g,h,v]);return{activeUI:n,model:s,iab:a,isIABEnabled:c,banner:{...u,isVisible:"banner"===n&&"iab"===s&&c,scrollLock:o},dialog:{isVisible:"dialog"===n&&"iab"===s&&c,isLoading:!!(a?.isLoadingGVL||!a?.gvl),activeTab:a?.preferenceCenterTab??"purposes",scrollLock:l},openBanner:p,openDialog:f,openPurposesDialog:d,openVendorsDialog:m,closeUI:b,acceptAll:g,rejectAll:h,savePreferences:v,performBannerAction:j,performDialogAction:y}}export{n as useHeadlessIABConsentUI};
1
+ "use client";
2
+ import{resolveIABBannerSummary as e}from"@c15t/iab/headless";import{useCallback as r,useMemo as t}from"react";import{useIABConsentManager as n}from"./use-iab-manager.js";let a=function(){let{activeUI:a,model:s,iab:c,policyBanner:{scrollLock:o},policyDialog:{scrollLock:i},setActiveUI:l}=n(),u=!!c?.config.enabled,b=t(()=>e(c),[c]),p=r(e=>{l("banner",e)},[l]),d=r(e=>{e?.tab&&c?.setPreferenceCenterTab(e.tab),l("dialog")},[c,l]),f=r(()=>{d({tab:"purposes"})},[d]),g=r(()=>{d({tab:"vendors"})},[d]),m=r(()=>{l("none")},[l]),L=r(()=>{if(!c)return;c.acceptAll();let e=c.save();return l("none"),e},[c,l]),v=r(()=>{if(!c)return;c.rejectAll();let e=c.save();return l("none"),e},[c,l]),_=r(()=>{if(!c)return;let e=c.save();return l("none"),e},[c,l]),h=r(e=>{switch(e){case"accept":return L();case"reject":return v();case"customize":return f();default:return}},[L,f,v]),j=r(e=>{switch(e){case"accept":return L();case"reject":return v();case"customize":return _();default:return}},[L,v,_]);return{acceptAll:L,activeUI:a,banner:{...b,isVisible:"banner"===a&&"iab"===s&&u,scrollLock:o},closeUI:m,dialog:{activeTab:c?.preferenceCenterTab??"purposes",isLoading:!!(c?.isLoadingGVL||!c?.gvl),isVisible:"dialog"===a&&"iab"===s&&u,scrollLock:i},iab:c,isIABEnabled:u,model:s,openBanner:p,openDialog:d,openPurposesDialog:f,openVendorsDialog:g,performBannerAction:h,performDialogAction:j,rejectAll:v,savePreferences:_}};export{a as useHeadlessIABConsentUI};
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ import{useCallback as n,useMemo as t}from"react";import{useHeadlessConsentUI as a}from"../component-hooks/use-headless-consent-ui.js";import{useActiveUI as e,useModel as o,useSetActiveUI as s,useTranslations as r}from"../hooks.js";import{useIAB as i}from"../iab-context.js";import{defaultTranslationConfig as l}from"../utils/default-translation-config.js";let u=function(u){let m=e(),g=o(),{banner:f,dialog:c}=a(u),p=s(),d=r(),j=i(),I=t(()=>d?{...l,defaultLanguage:d.language,translations:{...l.translations,[d.language]:d.translations}}:l,[d]);return{activeUI:m??"none",iab:j,model:g,policyBanner:f,policyDialog:c,setActiveUI:n((n,t)=>{p(n)},[p]),translationConfig:I}};export{u as useIABConsentManager};
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ import{useSyncExternalStore as e}from"react";let r=e=>(e(),()=>void 0),t=()=>!0,d=()=>!1,s=function(){return e(r,t,d)};export{s as useIsHydrated};
@@ -1 +1,2 @@
1
- import{useEffect as e,useState as t}from"react";function r(){let[r,n]=t(!1);return e(()=>{if("u"<typeof window)return;let e=window.matchMedia("(prefers-reduced-motion: reduce)");n(e.matches);let t=e=>{n(e.matches)};return e.addEventListener("change",t),()=>e.removeEventListener("change",t)},[]),r}export{r as useReducedMotion};
1
+ "use client";
2
+ import{useSyncExternalStore as e}from"react";let t="(prefers-reduced-motion: reduce)",o=e=>{if("u"<typeof window)return()=>void 0;let o=window.matchMedia(t);return o.addEventListener("change",e),()=>o.removeEventListener("change",e)},n=()=>"u">typeof window&&window.matchMedia(t).matches,d=()=>!1,r=function(){return e(o,n,d)};export{r as useReducedMotion};
@@ -1 +1,2 @@
1
- import{setupScrollLock as o}from"@c15t/ui/utils/dom";import{useEffect as r}from"react";function t(t){r(()=>{if(t)return o()},[t])}export{t as useScrollLock};
1
+ "use client";
2
+ import{setupScrollLock as o}from"@c15t/ui/utils/dom";import{useEffect as r}from"react";let c=function(c){r(()=>{if(c)return o()},[c])};export{c as useScrollLock};
@@ -1 +1,2 @@
1
- import{getTextDirection as t,setupTextDirection as r}from"@c15t/ui/utils";import{useEffect as e,useMemo as i}from"react";function o(o){let u=i(()=>t(o),[o]);return e(()=>r(o),[o]),u}export{o as useTextDirection};
1
+ "use client";
2
+ import{getTextDirection as t,setupTextDirection as e}from"@c15t/ui/utils";import{useEffect as i,useMemo as r}from"react";let o=function(o){let u=r(()=>t(o),[o]);return i(()=>e(o),[o]),u};export{o as useTextDirection};
@@ -1 +1,2 @@
1
- import{useContext as e,useMemo as t}from"react";import{GlobalThemeContext as r,LocalThemeContext as o}from"../context/theme-context.js";let n=()=>{let n=e(r),i=e(o);if(!n)throw Error("Theme components must be used within Theme.Root");return t(()=>(function e(t,r){if(!r)return t;let o={...t};for(let n in r)void 0!==r[n]&&(r[n]&&"object"==typeof r[n]&&!Array.isArray(r[n])&&t[n]&&"object"==typeof t[n]?o[n]=e(t[n],r[n]):o[n]=r[n]);return o})(n,i||null),[n,i])};export{n as useTheme};
1
+ "use client";
2
+ import{useContext as e,useMemo as t}from"react";import{GlobalThemeContext as r,LocalThemeContext as o}from"../context/theme-context.js";let n=function(e){return null!==e&&"object"==typeof e},i=function e(t,r){if(!r)return t;let o={...t};for(let i of Object.keys(r)){let u=r[i];if(void 0!==u){let r=t[i];n(u)&&!Array.isArray(u)&&n(r)&&!Array.isArray(r)?o[i]=e(r,u):o[i]=u}}return o},u=()=>{let n=e(r),u=e(o);if(!n)throw Error("Theme components must be used within Theme.Root");return t(()=>i(n,u||null),[n,u])};export{u as useTheme};
package/dist/hooks.js ADDED
@@ -0,0 +1 @@
1
+ import{useCallback as e,useContext as s,useSyncExternalStore as n}from"react";import{KernelContext as o}from"./context.js";import{useUIConfig as t}from"./ui-config-context.js";import{invalidateConsentUIAction as u}from"./ui-save.js";let i=function(){let e=s(o);if(!e)throw Error("c15t: no kernel in context. Wrap your app with <ConsentProvider options={...}> from @c15t/react.");return e},r=function(e,s){return e.subscribe(s)},a=function(e){let s=i();return n(e=>r(s,e),()=>e(s.getSnapshot()),()=>e(s.getServerSnapshot()))},c=function(){let e=i();return n(s=>r(e,s),()=>e.getSnapshot(),()=>e.getServerSnapshot())},f=function(e){return a(s=>s.effectivePermissions[e])},l=function(){return a(e=>e.effectivePermissions)},h=function(){return a(e=>e.overrides)},p=function(){return a(e=>e.user)},m=function(){return a(e=>e.location)},k=function(){return a(e=>e.translations)},_=function(){return a(e=>e.branding)},d=function(){return a(e=>"matched"===e.resolution.status)},v=function(){return a(e=>"matched"===e.resolution.status&&("none"!==e.policyRule.prompt||e.policyRule.rights.length>0))},P=function(){return a(e=>"matched"===e.resolution.status?e.model:null)},S=function(){return a(e=>e.activeUI)},g=function(){return a(e=>e.policyRule.scope)},C=function(){return a(e=>e.policyRule.scopeMode)},y=function(){return a(e=>e.iab)},I=function(){return a(e=>e.iab?.enabled??!1)},b=function(e){let s=String(e);return a(e=>e.iab?.vendorConsents[s]??!1)},R=function(e){return a(s=>s.iab?.purposeConsents[e]??!1)},O=function(e){return a(s=>s.iab?.specialFeatureOptIns[e]??!1)},U=function(){return a(e=>e.iab?.tcString??null)},A=function(){return i().set.overrides},D=function(){return i().set.language},x=function(){let s=i();return e(e=>{u(s),s.set.activeUI(e)},[s])},E=function(){return i().commands.save},B=function(){let s=i();return e(e=>s.events.on("permissions:changed",({snapshot:s})=>e(s.effectivePermissions)),[s])},T=function(){return i().commands.identify},M=function(){return i().commands.init},N=function(){return a(e=>e.explicitChoice)},H=function(){return a(e=>e.effectivePermissions)},L=function(){return a(e=>e.promptRequirement)},j=function(){return a(e=>e.noticeDismissal)},q=function(){return a(e=>e.privacySignals)},F=function(){return a(e=>e.optOutDirectives)},w=function(){return a(e=>e.resolution)},V=function(){return a(e=>e.policyRule)},W=function(){return a(e=>e.restrictions)},z=function(){return i().commands.dismissNotice},G={},J={},K=function(){return t().presentation?.prompt??G},Q=function(){return t().presentation?.preferences??J};export{S as useActiveUI,_ as useBranding,f as useConsent,l as useConsents,z as useDismissNotice,H as useEffectivePermissions,N as useExplicitChoice,d as useHasConsentPolicy,v as useHasConsentUI,I as useIABEnabled,y as useIABSnapshot,T as useIdentify,M as useInit,m as useLocation,P as useModel,j as useNoticeDismissal,F as useOptOutDirectives,h as useOverrides,g as usePolicyCategories,w as usePolicyResolution,V as usePolicyRule,C as usePolicyScopeMode,Q as usePreferencesPresentation,q as usePrivacySignals,K as usePromptPresentation,L as usePromptRequirement,R as usePurposeConsent,W as useRestrictions,E as useSaveConsents,x as useSetActiveUI,D as useSetLanguage,A as useSetOverrides,c as useSnapshot,O as useSpecialFeatureOptIn,B as useSubscribeToConsentChanges,U as useTCString,k as useTranslations,p as useUser,b as useVendorConsent};
@@ -8,4 +8,4 @@
8
8
  * @import "@c15t/react/styles.css";
9
9
  * @import "@c15t/react/iab/styles.css";
10
10
  */
11
- @import "@c15t/ui/iab/styles.css";
11
+ @import '@c15t/ui/iab/styles.css';