@c15t/react 0.0.1-rc.10

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 (265) hide show
  1. package/LICENSE.md +595 -0
  2. package/README.md +55 -0
  3. package/dist/components/consent-manager-dialog/__tests__/styles.spec.cjs +223 -0
  4. package/dist/components/consent-manager-dialog/__tests__/styles.spec.d.ts +2 -0
  5. package/dist/components/consent-manager-dialog/__tests__/styles.spec.d.ts.map +1 -0
  6. package/dist/components/consent-manager-dialog/__tests__/styles.spec.js +188 -0
  7. package/dist/components/consent-manager-dialog/__tests__/utils.cjs +68 -0
  8. package/dist/components/consent-manager-dialog/__tests__/utils.d.ts +13 -0
  9. package/dist/components/consent-manager-dialog/__tests__/utils.d.ts.map +1 -0
  10. package/dist/components/consent-manager-dialog/__tests__/utils.js +34 -0
  11. package/dist/components/consent-manager-dialog/atoms/dialog-card.cjs +154 -0
  12. package/dist/components/consent-manager-dialog/atoms/dialog-card.d.ts +90 -0
  13. package/dist/components/consent-manager-dialog/atoms/dialog-card.d.ts.map +1 -0
  14. package/dist/components/consent-manager-dialog/atoms/dialog-card.js +95 -0
  15. package/dist/components/consent-manager-dialog/atoms/overlay.cjs +86 -0
  16. package/dist/components/consent-manager-dialog/atoms/overlay.d.ts +71 -0
  17. package/dist/components/consent-manager-dialog/atoms/overlay.d.ts.map +1 -0
  18. package/dist/components/consent-manager-dialog/atoms/overlay.js +37 -0
  19. package/dist/components/consent-manager-dialog/consent-manager-dialog.cjs +148 -0
  20. package/dist/components/consent-manager-dialog/consent-manager-dialog.d.ts +40 -0
  21. package/dist/components/consent-manager-dialog/consent-manager-dialog.d.ts.map +1 -0
  22. package/dist/components/consent-manager-dialog/consent-manager-dialog.js +100 -0
  23. package/dist/components/consent-manager-dialog/consent-manager-dialog.module.cjs +50 -0
  24. package/dist/components/consent-manager-dialog/consent-manager-dialog.module.js +16 -0
  25. package/dist/components/consent-manager-dialog/consent-manager-dialog_module.css +202 -0
  26. package/dist/components/consent-manager-dialog/index.cjs +51 -0
  27. package/dist/components/consent-manager-dialog/index.d.ts +4 -0
  28. package/dist/components/consent-manager-dialog/index.d.ts.map +1 -0
  29. package/dist/components/consent-manager-dialog/index.js +18 -0
  30. package/dist/components/consent-manager-dialog/theme.cjs +19 -0
  31. package/dist/components/consent-manager-dialog/theme.d.ts +19 -0
  32. package/dist/components/consent-manager-dialog/theme.d.ts.map +1 -0
  33. package/dist/components/consent-manager-dialog/theme.js +0 -0
  34. package/dist/components/consent-manager-widget/__tests__/styles.spec.cjs +228 -0
  35. package/dist/components/consent-manager-widget/__tests__/styles.spec.d.ts +2 -0
  36. package/dist/components/consent-manager-widget/__tests__/styles.spec.d.ts.map +1 -0
  37. package/dist/components/consent-manager-widget/__tests__/styles.spec.js +193 -0
  38. package/dist/components/consent-manager-widget/__tests__/utils.cjs +68 -0
  39. package/dist/components/consent-manager-widget/__tests__/utils.d.ts +13 -0
  40. package/dist/components/consent-manager-widget/__tests__/utils.d.ts.map +1 -0
  41. package/dist/components/consent-manager-widget/__tests__/utils.js +34 -0
  42. package/dist/components/consent-manager-widget/atoms/accordion.cjs +169 -0
  43. package/dist/components/consent-manager-widget/atoms/accordion.d.ts +57 -0
  44. package/dist/components/consent-manager-widget/atoms/accordion.d.ts.map +1 -0
  45. package/dist/components/consent-manager-widget/atoms/accordion.js +106 -0
  46. package/dist/components/consent-manager-widget/atoms/button.cjs +93 -0
  47. package/dist/components/consent-manager-widget/atoms/button.d.ts +27 -0
  48. package/dist/components/consent-manager-widget/atoms/button.d.ts.map +1 -0
  49. package/dist/components/consent-manager-widget/atoms/button.js +52 -0
  50. package/dist/components/consent-manager-widget/atoms/footer.cjs +74 -0
  51. package/dist/components/consent-manager-widget/atoms/footer.d.ts +15 -0
  52. package/dist/components/consent-manager-widget/atoms/footer.d.ts.map +1 -0
  53. package/dist/components/consent-manager-widget/atoms/footer.js +23 -0
  54. package/dist/components/consent-manager-widget/atoms/logo.cjs +101 -0
  55. package/dist/components/consent-manager-widget/atoms/logo.d.ts +8 -0
  56. package/dist/components/consent-manager-widget/atoms/logo.d.ts.map +1 -0
  57. package/dist/components/consent-manager-widget/atoms/logo.js +67 -0
  58. package/dist/components/consent-manager-widget/atoms/root.cjs +60 -0
  59. package/dist/components/consent-manager-widget/atoms/root.d.ts +82 -0
  60. package/dist/components/consent-manager-widget/atoms/root.d.ts.map +1 -0
  61. package/dist/components/consent-manager-widget/atoms/root.js +25 -0
  62. package/dist/components/consent-manager-widget/consent-manager-widget.cjs +96 -0
  63. package/dist/components/consent-manager-widget/consent-manager-widget.d.ts +44 -0
  64. package/dist/components/consent-manager-widget/consent-manager-widget.d.ts.map +1 -0
  65. package/dist/components/consent-manager-widget/consent-manager-widget.js +62 -0
  66. package/dist/components/consent-manager-widget/consent-manager-widget.module.cjs +61 -0
  67. package/dist/components/consent-manager-widget/consent-manager-widget.module.js +27 -0
  68. package/dist/components/consent-manager-widget/consent-manager-widget_module.css +337 -0
  69. package/dist/components/consent-manager-widget/index.cjs +69 -0
  70. package/dist/components/consent-manager-widget/index.d.ts +11 -0
  71. package/dist/components/consent-manager-widget/index.d.ts.map +1 -0
  72. package/dist/components/consent-manager-widget/index.js +36 -0
  73. package/dist/components/consent-manager-widget/theme.cjs +19 -0
  74. package/dist/components/consent-manager-widget/theme.d.ts +50 -0
  75. package/dist/components/consent-manager-widget/theme.d.ts.map +1 -0
  76. package/dist/components/consent-manager-widget/theme.js +0 -0
  77. package/dist/components/consent-manager-widget/types.cjs +19 -0
  78. package/dist/components/consent-manager-widget/types.d.ts +18 -0
  79. package/dist/components/consent-manager-widget/types.d.ts.map +1 -0
  80. package/dist/components/consent-manager-widget/types.js +0 -0
  81. package/dist/components/cookie-banner/__tests__/styles.spec.cjs +241 -0
  82. package/dist/components/cookie-banner/__tests__/styles.spec.d.ts +2 -0
  83. package/dist/components/cookie-banner/__tests__/styles.spec.d.ts.map +1 -0
  84. package/dist/components/cookie-banner/__tests__/styles.spec.js +206 -0
  85. package/dist/components/cookie-banner/__tests__/utils.cjs +67 -0
  86. package/dist/components/cookie-banner/__tests__/utils.d.ts +13 -0
  87. package/dist/components/cookie-banner/__tests__/utils.d.ts.map +1 -0
  88. package/dist/components/cookie-banner/__tests__/utils.js +33 -0
  89. package/dist/components/cookie-banner/atoms/overlay.cjs +89 -0
  90. package/dist/components/cookie-banner/atoms/overlay.d.ts +46 -0
  91. package/dist/components/cookie-banner/atoms/overlay.d.ts.map +1 -0
  92. package/dist/components/cookie-banner/atoms/overlay.js +40 -0
  93. package/dist/components/cookie-banner/atoms/root.cjs +132 -0
  94. package/dist/components/cookie-banner/atoms/root.d.ts +93 -0
  95. package/dist/components/cookie-banner/atoms/root.d.ts.map +1 -0
  96. package/dist/components/cookie-banner/atoms/root.js +83 -0
  97. package/dist/components/cookie-banner/components.cjs +186 -0
  98. package/dist/components/cookie-banner/components.d.ts +136 -0
  99. package/dist/components/cookie-banner/components.d.ts.map +1 -0
  100. package/dist/components/cookie-banner/components.js +121 -0
  101. package/dist/components/cookie-banner/cookie-banner.cjs +100 -0
  102. package/dist/components/cookie-banner/cookie-banner.d.ts +144 -0
  103. package/dist/components/cookie-banner/cookie-banner.d.ts.map +1 -0
  104. package/dist/components/cookie-banner/cookie-banner.js +66 -0
  105. package/dist/components/cookie-banner/cookie-banner.module.cjs +55 -0
  106. package/dist/components/cookie-banner/cookie-banner.module.js +21 -0
  107. package/dist/components/cookie-banner/cookie-banner_module.css +224 -0
  108. package/dist/components/cookie-banner/error-boundary.cjs +68 -0
  109. package/dist/components/cookie-banner/error-boundary.d.ts +56 -0
  110. package/dist/components/cookie-banner/error-boundary.d.ts.map +1 -0
  111. package/dist/components/cookie-banner/error-boundary.js +34 -0
  112. package/dist/components/cookie-banner/index.cjs +59 -0
  113. package/dist/components/cookie-banner/index.d.ts +52 -0
  114. package/dist/components/cookie-banner/index.d.ts.map +1 -0
  115. package/dist/components/cookie-banner/index.js +26 -0
  116. package/dist/components/cookie-banner/theme.cjs +19 -0
  117. package/dist/components/cookie-banner/theme.d.ts +71 -0
  118. package/dist/components/cookie-banner/theme.d.ts.map +1 -0
  119. package/dist/components/cookie-banner/theme.js +0 -0
  120. package/dist/components/shared/libs/polymorphic.cjs +19 -0
  121. package/dist/components/shared/libs/polymorphic.d.ts +15 -0
  122. package/dist/components/shared/libs/polymorphic.d.ts.map +1 -0
  123. package/dist/components/shared/libs/polymorphic.js +0 -0
  124. package/dist/components/shared/libs/recursive-clone-children.cjs +49 -0
  125. package/dist/components/shared/libs/recursive-clone-children.d.ts +14 -0
  126. package/dist/components/shared/libs/recursive-clone-children.d.ts.map +1 -0
  127. package/dist/components/shared/libs/recursive-clone-children.js +15 -0
  128. package/dist/components/shared/primitives/box.cjs +54 -0
  129. package/dist/components/shared/primitives/box.d.ts +47 -0
  130. package/dist/components/shared/primitives/box.d.ts.map +1 -0
  131. package/dist/components/shared/primitives/box.js +20 -0
  132. package/dist/components/shared/primitives/button.cjs +96 -0
  133. package/dist/components/shared/primitives/button.d.ts +207 -0
  134. package/dist/components/shared/primitives/button.d.ts.map +1 -0
  135. package/dist/components/shared/primitives/button.js +62 -0
  136. package/dist/components/shared/primitives/button.types.cjs +19 -0
  137. package/dist/components/shared/primitives/button.types.d.ts +35 -0
  138. package/dist/components/shared/primitives/button.types.d.ts.map +1 -0
  139. package/dist/components/shared/primitives/button.types.js +0 -0
  140. package/dist/components/shared/ui/accordion/accordion.cjs +219 -0
  141. package/dist/components/shared/ui/accordion/accordion.d.ts +44 -0
  142. package/dist/components/shared/ui/accordion/accordion.d.ts.map +1 -0
  143. package/dist/components/shared/ui/accordion/accordion.js +165 -0
  144. package/dist/components/shared/ui/accordion/accordion.module.cjs +49 -0
  145. package/dist/components/shared/ui/accordion/accordion.module.js +15 -0
  146. package/dist/components/shared/ui/accordion/accordion.types.cjs +19 -0
  147. package/dist/components/shared/ui/accordion/accordion.types.d.ts +74 -0
  148. package/dist/components/shared/ui/accordion/accordion.types.d.ts.map +1 -0
  149. package/dist/components/shared/ui/accordion/accordion.types.js +0 -0
  150. package/dist/components/shared/ui/accordion/accordion_module.css +197 -0
  151. package/dist/components/shared/ui/accordion/index.cjs +76 -0
  152. package/dist/components/shared/ui/accordion/index.d.ts +3 -0
  153. package/dist/components/shared/ui/accordion/index.d.ts.map +1 -0
  154. package/dist/components/shared/ui/accordion/index.js +2 -0
  155. package/dist/components/shared/ui/button/button.cjs +199 -0
  156. package/dist/components/shared/ui/button/button.d.ts +444 -0
  157. package/dist/components/shared/ui/button/button.d.ts.map +1 -0
  158. package/dist/components/shared/ui/button/button.js +149 -0
  159. package/dist/components/shared/ui/button/button.module.cjs +65 -0
  160. package/dist/components/shared/ui/button/button.module.js +31 -0
  161. package/dist/components/shared/ui/button/button.types.cjs +19 -0
  162. package/dist/components/shared/ui/button/button.types.d.ts +45 -0
  163. package/dist/components/shared/ui/button/button.types.d.ts.map +1 -0
  164. package/dist/components/shared/ui/button/button.types.js +0 -0
  165. package/dist/components/shared/ui/button/button_module.css +247 -0
  166. package/dist/components/shared/ui/button/index.cjs +76 -0
  167. package/dist/components/shared/ui/button/index.d.ts +3 -0
  168. package/dist/components/shared/ui/button/index.d.ts.map +1 -0
  169. package/dist/components/shared/ui/button/index.js +2 -0
  170. package/dist/components/shared/ui/icon.cjs +57 -0
  171. package/dist/components/shared/ui/icon.d.ts +8 -0
  172. package/dist/components/shared/ui/icon.d.ts.map +1 -0
  173. package/dist/components/shared/ui/icon.js +23 -0
  174. package/dist/components/shared/ui/logo.cjs +101 -0
  175. package/dist/components/shared/ui/logo.d.ts +8 -0
  176. package/dist/components/shared/ui/logo.d.ts.map +1 -0
  177. package/dist/components/shared/ui/logo.js +67 -0
  178. package/dist/components/shared/ui/switch/index.cjs +76 -0
  179. package/dist/components/shared/ui/switch/index.d.ts +3 -0
  180. package/dist/components/shared/ui/switch/index.d.ts.map +1 -0
  181. package/dist/components/shared/ui/switch/index.js +2 -0
  182. package/dist/components/shared/ui/switch/switch.cjs +95 -0
  183. package/dist/components/shared/ui/switch/switch.d.ts +24 -0
  184. package/dist/components/shared/ui/switch/switch.d.ts.map +1 -0
  185. package/dist/components/shared/ui/switch/switch.js +47 -0
  186. package/dist/components/shared/ui/switch/switch.module.cjs +45 -0
  187. package/dist/components/shared/ui/switch/switch.module.js +11 -0
  188. package/dist/components/shared/ui/switch/switch.types.cjs +19 -0
  189. package/dist/components/shared/ui/switch/switch.types.d.ts +34 -0
  190. package/dist/components/shared/ui/switch/switch.types.d.ts.map +1 -0
  191. package/dist/components/shared/ui/switch/switch.types.js +0 -0
  192. package/dist/components/shared/ui/switch/switch_module.css +183 -0
  193. package/dist/context/consent-manager-context.cjs +38 -0
  194. package/dist/context/consent-manager-context.d.ts +13 -0
  195. package/dist/context/consent-manager-context.d.ts.map +1 -0
  196. package/dist/context/consent-manager-context.js +4 -0
  197. package/dist/context/theme-context.cjs +40 -0
  198. package/dist/context/theme-context.d.ts +102 -0
  199. package/dist/context/theme-context.d.ts.map +1 -0
  200. package/dist/context/theme-context.js +5 -0
  201. package/dist/hooks/index.cjs +94 -0
  202. package/dist/hooks/index.d.ts +5 -0
  203. package/dist/hooks/index.d.ts.map +1 -0
  204. package/dist/hooks/index.js +4 -0
  205. package/dist/hooks/use-consent-manager.cjs +45 -0
  206. package/dist/hooks/use-consent-manager.d.ts +61 -0
  207. package/dist/hooks/use-consent-manager.d.ts.map +1 -0
  208. package/dist/hooks/use-consent-manager.js +11 -0
  209. package/dist/hooks/use-focus-trap.cjs +76 -0
  210. package/dist/hooks/use-focus-trap.d.ts +15 -0
  211. package/dist/hooks/use-focus-trap.d.ts.map +1 -0
  212. package/dist/hooks/use-focus-trap.js +42 -0
  213. package/dist/hooks/use-scroll-lock.cjs +55 -0
  214. package/dist/hooks/use-scroll-lock.d.ts +26 -0
  215. package/dist/hooks/use-scroll-lock.d.ts.map +1 -0
  216. package/dist/hooks/use-scroll-lock.js +21 -0
  217. package/dist/hooks/use-theme.cjs +56 -0
  218. package/dist/hooks/use-theme.d.ts +2 -0
  219. package/dist/hooks/use-theme.d.ts.map +1 -0
  220. package/dist/hooks/use-theme.js +22 -0
  221. package/dist/hooks/use-translations.cjs +58 -0
  222. package/dist/hooks/use-translations.d.ts +29 -0
  223. package/dist/hooks/use-translations.d.ts.map +1 -0
  224. package/dist/hooks/use-translations.js +24 -0
  225. package/dist/index.cjs +101 -0
  226. package/dist/index.d.ts +16 -0
  227. package/dist/index.d.ts.map +1 -0
  228. package/dist/index.js +12 -0
  229. package/dist/providers/consent-manager-provider.cjs +110 -0
  230. package/dist/providers/consent-manager-provider.d.ts +16 -0
  231. package/dist/providers/consent-manager-provider.d.ts.map +1 -0
  232. package/dist/providers/consent-manager-provider.js +76 -0
  233. package/dist/types/consent-manager.cjs +19 -0
  234. package/dist/types/consent-manager.d.ts +120 -0
  235. package/dist/types/consent-manager.d.ts.map +1 -0
  236. package/dist/types/consent-manager.js +0 -0
  237. package/dist/types/theme/index.cjs +76 -0
  238. package/dist/types/theme/index.d.ts +3 -0
  239. package/dist/types/theme/index.d.ts.map +1 -0
  240. package/dist/types/theme/index.js +2 -0
  241. package/dist/types/theme/style-keys.cjs +19 -0
  242. package/dist/types/theme/style-keys.d.ts +14 -0
  243. package/dist/types/theme/style-keys.d.ts.map +1 -0
  244. package/dist/types/theme/style-keys.js +0 -0
  245. package/dist/types/theme/style-types.cjs +19 -0
  246. package/dist/types/theme/style-types.d.ts +34 -0
  247. package/dist/types/theme/style-types.d.ts.map +1 -0
  248. package/dist/types/theme/style-types.js +0 -0
  249. package/dist/utils/cn.cjs +55 -0
  250. package/dist/utils/cn.d.ts +11 -0
  251. package/dist/utils/cn.d.ts.map +1 -0
  252. package/dist/utils/cn.js +6 -0
  253. package/dist/utils/merge-styles.cjs +62 -0
  254. package/dist/utils/merge-styles.d.ts +11 -0
  255. package/dist/utils/merge-styles.d.ts.map +1 -0
  256. package/dist/utils/merge-styles.js +28 -0
  257. package/dist/utils/translations.cjs +86 -0
  258. package/dist/utils/translations.d.ts +14 -0
  259. package/dist/utils/translations.d.ts.map +1 -0
  260. package/dist/utils/translations.js +50 -0
  261. package/dist/utils/use-styles.cjs +95 -0
  262. package/dist/utils/use-styles.d.ts +32 -0
  263. package/dist/utils/use-styles.d.ts.map +1 -0
  264. package/dist/utils/use-styles.js +61 -0
  265. package/package.json +90 -0
@@ -0,0 +1,136 @@
1
+ /**
2
+ * @packageDocumentation
3
+ * Provides the core components for building cookie consent banners.
4
+ * Implements accessible, customizable components following GDPR and CCPA requirements.
5
+ */
6
+ import { type BoxProps } from '../shared/primitives/box';
7
+ import type { ConsentButtonProps } from '../shared/primitives/button.types';
8
+ /**
9
+ * Title component for the cookie banner.
10
+ *
11
+ * @remarks
12
+ * Provides the main heading for the cookie consent notice.
13
+ * Implements proper heading semantics and supports theming.
14
+ *
15
+ * @example
16
+ * ```tsx
17
+ * <CookieBannerTitle>
18
+ * Cookie Preferences
19
+ * </CookieBannerTitle>
20
+ * ```
21
+ */
22
+ declare const CookieBannerTitle: import("react").ForwardRefExoticComponent<Omit<BoxProps, "themeKey"> & import("react").RefAttributes<HTMLDivElement>>;
23
+ /**
24
+ * Description component for the cookie banner.
25
+ *
26
+ * @remarks
27
+ * Provides explanatory text about cookie usage and privacy policies.
28
+ * Supports rich text content and proper accessibility attributes.
29
+ *
30
+ * @example
31
+ * ```tsx
32
+ * <CookieBannerDescription>
33
+ * We use cookies to enhance your browsing experience and analyze our traffic.
34
+ * </CookieBannerDescription>
35
+ * ```
36
+ */
37
+ declare const CookieBannerDescription: import("react").ForwardRefExoticComponent<Omit<BoxProps, "themeKey"> & import("react").RefAttributes<HTMLDivElement>>;
38
+ /**
39
+ * Footer component for the cookie banner.
40
+ *
41
+ * @remarks
42
+ * Contains action buttons and additional information.
43
+ * Implements proper layout and spacing for action items.
44
+ *
45
+ * @example
46
+ * ```tsx
47
+ * <CookieBannerFooter>
48
+ * <CookieBannerRejectButton>Reject All</CookieBannerRejectButton>
49
+ * <CookieBannerAcceptButton>Accept All</CookieBannerAcceptButton>
50
+ * </CookieBannerFooter>
51
+ * ```
52
+ */
53
+ declare const CookieBannerFooter: import("react").ForwardRefExoticComponent<Omit<BoxProps, "themeKey"> & import("react").RefAttributes<HTMLDivElement>>;
54
+ /**
55
+ * Card component for the cookie banner.
56
+ *
57
+ * @remarks
58
+ * Provides the main container for the cookie notice.
59
+ * Implements proper elevation and layout structure.
60
+ *
61
+ * @example
62
+ * ```tsx
63
+ * <CookieBannerCard>
64
+ * <CookieBannerHeader>
65
+ * <CookieBannerTitle>Cookie Notice</CookieBannerTitle>
66
+ * </CookieBannerHeader>
67
+ * </CookieBannerCard>
68
+ * ```
69
+ */
70
+ declare const CookieBannerCard: import("react").ForwardRefExoticComponent<Omit<BoxProps, "themeKey"> & import("react").RefAttributes<HTMLDivElement>>;
71
+ /**
72
+ * Header component for the cookie banner.
73
+ *
74
+ * @remarks
75
+ * Contains the title and description sections.
76
+ * Implements proper spacing and layout for header content.
77
+ */
78
+ declare const CookieBannerHeader: import("react").ForwardRefExoticComponent<Omit<BoxProps, "themeKey"> & import("react").RefAttributes<HTMLDivElement>>;
79
+ /**
80
+ * Footer sub-group component for organizing related actions.
81
+ *
82
+ * @remarks
83
+ * Groups related buttons or controls in the footer.
84
+ * Implements proper spacing and alignment for button groups.
85
+ */
86
+ declare const CookieBannerFooterSubGroup: import("react").ForwardRefExoticComponent<Omit<BoxProps, "themeKey"> & import("react").RefAttributes<HTMLDivElement>>;
87
+ /**
88
+ * Button to reject all non-essential cookies.
89
+ *
90
+ * @remarks
91
+ * Implements the reject action for cookie preferences.
92
+ * Provides proper accessibility attributes and keyboard interaction.
93
+ *
94
+ * @example
95
+ * ```tsx
96
+ * <CookieBannerRejectButton>
97
+ * Reject All Cookies
98
+ * </CookieBannerRejectButton>
99
+ * ```
100
+ */
101
+ declare const CookieBannerRejectButton: import("react").ForwardRefExoticComponent<ConsentButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
102
+ /**
103
+ * Button to open detailed cookie preferences.
104
+ *
105
+ * @remarks
106
+ * Opens the detailed consent management interface.
107
+ * Implements proper focus management and keyboard interaction.
108
+ */
109
+ declare const CookieBannerCustomizeButton: import("react").ForwardRefExoticComponent<ConsentButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
110
+ /**
111
+ * Button to accept all cookies.
112
+ *
113
+ * @remarks
114
+ * Implements the accept action for cookie preferences.
115
+ * Provides proper accessibility attributes and keyboard interaction.
116
+ * Supports theming and style customization.
117
+ *
118
+ * @example
119
+ * ```tsx
120
+ * <CookieBannerAcceptButton>
121
+ * Accept All Cookies
122
+ * </CookieBannerAcceptButton>
123
+ * ```
124
+ */
125
+ declare const CookieBannerAcceptButton: import("react").ForwardRefExoticComponent<ConsentButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
126
+ declare const Title: import("react").ForwardRefExoticComponent<Omit<BoxProps, "themeKey"> & import("react").RefAttributes<HTMLDivElement>>;
127
+ declare const Description: import("react").ForwardRefExoticComponent<Omit<BoxProps, "themeKey"> & import("react").RefAttributes<HTMLDivElement>>;
128
+ declare const Footer: import("react").ForwardRefExoticComponent<Omit<BoxProps, "themeKey"> & import("react").RefAttributes<HTMLDivElement>>;
129
+ declare const FooterSubGroup: import("react").ForwardRefExoticComponent<Omit<BoxProps, "themeKey"> & import("react").RefAttributes<HTMLDivElement>>;
130
+ declare const Card: import("react").ForwardRefExoticComponent<Omit<BoxProps, "themeKey"> & import("react").RefAttributes<HTMLDivElement>>;
131
+ declare const Header: import("react").ForwardRefExoticComponent<Omit<BoxProps, "themeKey"> & import("react").RefAttributes<HTMLDivElement>>;
132
+ declare const RejectButton: import("react").ForwardRefExoticComponent<ConsentButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
133
+ declare const CustomizeButton: import("react").ForwardRefExoticComponent<ConsentButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
134
+ declare const AcceptButton: import("react").ForwardRefExoticComponent<ConsentButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
135
+ export { CookieBannerTitle, CookieBannerDescription, CookieBannerFooter, CookieBannerFooterSubGroup, CookieBannerCard, CookieBannerHeader, CookieBannerRejectButton, CookieBannerCustomizeButton, CookieBannerAcceptButton, Title, Description, Footer, FooterSubGroup, Card, Header, RejectButton, CustomizeButton, AcceptButton, };
136
+ //# sourceMappingURL=components.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../../src/components/cookie-banner/components.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAO,KAAK,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAa5E;;;;;;;;;;;;;GAaG;AACH,QAAA,MAAM,iBAAiB,uHAerB,CAAC;AAIH;;;;;;;;;;;;;GAaG;AACH,QAAA,MAAM,uBAAuB,uHAe3B,CAAC;AAIH;;;;;;;;;;;;;;GAcG;AACH,QAAA,MAAM,kBAAkB,uHAetB,CAAC;AAIH;;;;;;;;;;;;;;;GAeG;AACH,QAAA,MAAM,gBAAgB,uHAyBrB,CAAC;AAIF;;;;;;GAMG;AACH,QAAA,MAAM,kBAAkB,uHAetB,CAAC;AAIH;;;;;;GAMG;AACH,QAAA,MAAM,0BAA0B,uHAe9B,CAAC;AAIH;;;;;;;;;;;;;GAaG;AACH,QAAA,MAAM,wBAAwB,kHAe5B,CAAC;AAIH;;;;;;GAMG;AACH,QAAA,MAAM,2BAA2B,kHAc/B,CAAC;AAIH;;;;;;;;;;;;;;GAcG;AACH,QAAA,MAAM,wBAAwB,kHAkB5B,CAAC;AAIH,QAAA,MAAM,KAAK,uHAAoB,CAAC;AAChC,QAAA,MAAM,WAAW,uHAA0B,CAAC;AAC5C,QAAA,MAAM,MAAM,uHAAqB,CAAC;AAClC,QAAA,MAAM,cAAc,uHAA6B,CAAC;AAClD,QAAA,MAAM,IAAI,uHAAmB,CAAC;AAC9B,QAAA,MAAM,MAAM,uHAAqB,CAAC;AAClC,QAAA,MAAM,YAAY,kHAA2B,CAAC;AAC9C,QAAA,MAAM,eAAe,kHAA8B,CAAC;AACpD,QAAA,MAAM,YAAY,kHAA2B,CAAC;AAE9C,OAAO,EACN,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EAClB,0BAA0B,EAC1B,gBAAgB,EAChB,kBAAkB,EAClB,wBAAwB,EACxB,2BAA2B,EAC3B,wBAAwB,EACxB,KAAK,EACL,WAAW,EACX,MAAM,EACN,cAAc,EACd,IAAI,EACJ,MAAM,EACN,YAAY,EACZ,eAAe,EACf,YAAY,GACZ,CAAC"}
@@ -0,0 +1,121 @@
1
+ import * as __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__ from "react/jsx-runtime";
2
+ import * as __WEBPACK_EXTERNAL_MODULE_react__ from "react";
3
+ import * as __WEBPACK_EXTERNAL_MODULE__hooks_use_focus_trap_js_1fb469b9__ from "../../hooks/use-focus-trap.js";
4
+ import * as __WEBPACK_EXTERNAL_MODULE__hooks_use_theme_js_cde33a62__ from "../../hooks/use-theme.js";
5
+ import * as __WEBPACK_EXTERNAL_MODULE__shared_primitives_box_js_82ada135__ from "../shared/primitives/box.js";
6
+ import * as __WEBPACK_EXTERNAL_MODULE__shared_primitives_button_js_952f908a__ from "../shared/primitives/button.js";
7
+ import * as __WEBPACK_EXTERNAL_MODULE__cookie_banner_module_js_8fbf05d9__ from "./cookie-banner.module.js";
8
+ const COOKIE_BANNER_TITLE_NAME = 'CookieBannerTitle';
9
+ const COOKIE_BANNER_DESCRIPTION_NAME = "CookieBannerDescription";
10
+ const COOKIE_BANNER_FOOTER_NAME = 'CookieBannerFooter';
11
+ const COOKIE_BANNER_CARD_NAME = 'CookieBannerCard';
12
+ const COOKIE_BANNER_HEADER_NAME = 'CookieBannerHeader';
13
+ const COOKIE_BANNER_FOOTER_SUB_GROUP_NAME = 'CookieBannerFooterSubGroup';
14
+ const COOKIE_BANNER_REJECT_BUTTON_NAME = 'CookieBannerRejectButton';
15
+ const COOKIE_BANNER_CUSTOMIZE_BUTTON_NAME = 'CookieBannerCustomizeButton';
16
+ const COOKIE_BANNER_ACCEPT_BUTTON_NAME = 'CookieBannerAcceptButton';
17
+ const CookieBannerTitle = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react__.forwardRef)(({ children, ...props }, ref)=>/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__shared_primitives_box_js_82ada135__.Box, {
18
+ ref: ref,
19
+ baseClassName: __WEBPACK_EXTERNAL_MODULE__cookie_banner_module_js_8fbf05d9__["default"].title,
20
+ "data-testid": "cookie-banner-title",
21
+ themeKey: "banner.header.title",
22
+ ...props,
23
+ children: children
24
+ }));
25
+ CookieBannerTitle.displayName = COOKIE_BANNER_TITLE_NAME;
26
+ const CookieBannerDescription = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react__.forwardRef)(({ children, ...props }, ref)=>/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__shared_primitives_box_js_82ada135__.Box, {
27
+ ref: ref,
28
+ baseClassName: __WEBPACK_EXTERNAL_MODULE__cookie_banner_module_js_8fbf05d9__["default"].description,
29
+ "data-testid": "cookie-banner-description",
30
+ themeKey: "banner.header.description",
31
+ ...props,
32
+ children: children
33
+ }));
34
+ CookieBannerDescription.displayName = COOKIE_BANNER_DESCRIPTION_NAME;
35
+ const CookieBannerFooter = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react__.forwardRef)(({ children, ...props }, ref)=>/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__shared_primitives_box_js_82ada135__.Box, {
36
+ ref: ref,
37
+ baseClassName: __WEBPACK_EXTERNAL_MODULE__cookie_banner_module_js_8fbf05d9__["default"].footer,
38
+ "data-testid": "cookie-banner-footer",
39
+ themeKey: "banner.footer",
40
+ ...props,
41
+ children: children
42
+ }));
43
+ CookieBannerFooter.displayName = COOKIE_BANNER_FOOTER_NAME;
44
+ const CookieBannerCard = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react__.forwardRef)(({ children, ...props }, ref)=>{
45
+ const { trapFocus } = (0, __WEBPACK_EXTERNAL_MODULE__hooks_use_theme_js_cde33a62__.useTheme)();
46
+ const localRef = (0, __WEBPACK_EXTERNAL_MODULE_react__.useRef)(null);
47
+ const cardRef = ref || localRef;
48
+ const shouldTrapFocus = Boolean(trapFocus);
49
+ (0, __WEBPACK_EXTERNAL_MODULE__hooks_use_focus_trap_js_1fb469b9__.useFocusTrap)(shouldTrapFocus, cardRef);
50
+ return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__shared_primitives_box_js_82ada135__.Box, {
51
+ ref: cardRef,
52
+ tabIndex: 0,
53
+ baseClassName: __WEBPACK_EXTERNAL_MODULE__cookie_banner_module_js_8fbf05d9__["default"].card,
54
+ "data-testid": "cookie-banner-card",
55
+ themeKey: "banner.card",
56
+ "aria-modal": shouldTrapFocus ? 'true' : void 0,
57
+ role: shouldTrapFocus ? 'dialog' : void 0,
58
+ ...props,
59
+ children: children
60
+ });
61
+ });
62
+ CookieBannerCard.displayName = COOKIE_BANNER_CARD_NAME;
63
+ const CookieBannerHeader = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react__.forwardRef)(({ children, ...props }, ref)=>/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__shared_primitives_box_js_82ada135__.Box, {
64
+ ref: ref,
65
+ baseClassName: __WEBPACK_EXTERNAL_MODULE__cookie_banner_module_js_8fbf05d9__["default"].header,
66
+ "data-testid": "cookie-banner-header",
67
+ themeKey: "banner.header.root",
68
+ ...props,
69
+ children: children
70
+ }));
71
+ CookieBannerHeader.displayName = COOKIE_BANNER_HEADER_NAME;
72
+ const CookieBannerFooterSubGroup = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react__.forwardRef)(({ children, ...props }, ref)=>/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__shared_primitives_box_js_82ada135__.Box, {
73
+ ref: ref,
74
+ baseClassName: __WEBPACK_EXTERNAL_MODULE__cookie_banner_module_js_8fbf05d9__["default"].footerSubGroup,
75
+ "data-testid": "cookie-banner-footer-sub-group",
76
+ themeKey: "banner.footer.sub-group",
77
+ ...props,
78
+ children: children
79
+ }));
80
+ CookieBannerFooterSubGroup.displayName = COOKIE_BANNER_FOOTER_SUB_GROUP_NAME;
81
+ const CookieBannerRejectButton = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react__.forwardRef)(({ children, ...props }, ref)=>/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__shared_primitives_button_js_952f908a__.ConsentButton, {
82
+ ref: ref,
83
+ action: "reject-consent",
84
+ "data-testid": "cookie-banner-reject-button",
85
+ closeCookieBanner: true,
86
+ ...props,
87
+ children: children
88
+ }));
89
+ CookieBannerRejectButton.displayName = COOKIE_BANNER_REJECT_BUTTON_NAME;
90
+ const CookieBannerCustomizeButton = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react__.forwardRef)(({ children, ...props }, ref)=>/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__shared_primitives_button_js_952f908a__.ConsentButton, {
91
+ ref: ref,
92
+ action: "open-consent-dialog",
93
+ "data-testid": "cookie-banner-customize-button",
94
+ ...props,
95
+ children: children
96
+ }));
97
+ CookieBannerCustomizeButton.displayName = COOKIE_BANNER_CUSTOMIZE_BUTTON_NAME;
98
+ const CookieBannerAcceptButton = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react__.forwardRef)(({ children, ...props }, ref)=>{
99
+ const { noStyle } = (0, __WEBPACK_EXTERNAL_MODULE__hooks_use_theme_js_cde33a62__.useTheme)();
100
+ return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__shared_primitives_button_js_952f908a__.ConsentButton, {
101
+ ref: ref,
102
+ action: "accept-consent",
103
+ variant: "primary",
104
+ "data-testid": "cookie-banner-accept-button",
105
+ closeCookieBanner: true,
106
+ noStyle: noStyle,
107
+ ...props,
108
+ children: children
109
+ });
110
+ });
111
+ CookieBannerAcceptButton.displayName = COOKIE_BANNER_ACCEPT_BUTTON_NAME;
112
+ const Title = CookieBannerTitle;
113
+ const Description = CookieBannerDescription;
114
+ const Footer = CookieBannerFooter;
115
+ const FooterSubGroup = CookieBannerFooterSubGroup;
116
+ const Card = CookieBannerCard;
117
+ const Header = CookieBannerHeader;
118
+ const RejectButton = CookieBannerRejectButton;
119
+ const CustomizeButton = CookieBannerCustomizeButton;
120
+ const AcceptButton = CookieBannerAcceptButton;
121
+ export { AcceptButton, Card, CookieBannerAcceptButton, CookieBannerCard, CookieBannerCustomizeButton, CookieBannerDescription, CookieBannerFooter, CookieBannerFooterSubGroup, CookieBannerHeader, CookieBannerRejectButton, CookieBannerTitle, CustomizeButton, Description, Footer, FooterSubGroup, Header, RejectButton, Title };
@@ -0,0 +1,100 @@
1
+ 'use client';
2
+ "use strict";
3
+ var __webpack_require__ = {};
4
+ (()=>{
5
+ __webpack_require__.d = function(exports1, definition) {
6
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
+ enumerable: true,
8
+ get: definition[key]
9
+ });
10
+ };
11
+ })();
12
+ (()=>{
13
+ __webpack_require__.o = function(obj, prop) {
14
+ return Object.prototype.hasOwnProperty.call(obj, prop);
15
+ };
16
+ })();
17
+ (()=>{
18
+ __webpack_require__.r = function(exports1) {
19
+ if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
20
+ value: 'Module'
21
+ });
22
+ Object.defineProperty(exports1, '__esModule', {
23
+ value: true
24
+ });
25
+ };
26
+ })();
27
+ var __webpack_exports__ = {};
28
+ __webpack_require__.r(__webpack_exports__);
29
+ __webpack_require__.d(__webpack_exports__, {
30
+ CookieBanner: ()=>CookieBanner
31
+ });
32
+ const jsx_runtime_namespaceObject = require("react/jsx-runtime");
33
+ const external_error_boundary_cjs_namespaceObject = require("./error-boundary.cjs");
34
+ const button_cjs_namespaceObject = require("../shared/primitives/button.cjs");
35
+ const root_cjs_namespaceObject = require("./atoms/root.cjs");
36
+ const external_components_cjs_namespaceObject = require("./components.cjs");
37
+ const use_translations_cjs_namespaceObject = require("../../hooks/use-translations.cjs");
38
+ const CookieBanner = ({ theme, noStyle, title, description, rejectButtonText, customizeButtonText, acceptButtonText, scrollLock, trapFocus = true })=>{
39
+ const { cookieBanner } = (0, use_translations_cjs_namespaceObject.useTranslations)();
40
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_error_boundary_cjs_namespaceObject.ErrorBoundary, {
41
+ fallback: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
42
+ children: "Something went wrong with the Cookie Banner."
43
+ }),
44
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(root_cjs_namespaceObject.CookieBannerRoot, {
45
+ theme: theme,
46
+ noStyle: noStyle,
47
+ scrollLock: scrollLock,
48
+ trapFocus: trapFocus,
49
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(external_components_cjs_namespaceObject.CookieBannerCard, {
50
+ children: [
51
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(external_components_cjs_namespaceObject.CookieBannerHeader, {
52
+ children: [
53
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_components_cjs_namespaceObject.CookieBannerTitle, {
54
+ children: title || cookieBanner.title
55
+ }),
56
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_components_cjs_namespaceObject.CookieBannerDescription, {
57
+ children: description || cookieBanner.description
58
+ })
59
+ ]
60
+ }),
61
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(external_components_cjs_namespaceObject.CookieBannerFooter, {
62
+ children: [
63
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(external_components_cjs_namespaceObject.CookieBannerFooterSubGroup, {
64
+ children: [
65
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(button_cjs_namespaceObject.ConsentButton, {
66
+ action: "reject-consent",
67
+ closeCookieBanner: true,
68
+ themeKey: "banner.footer.reject-button",
69
+ "data-testid": "cookie-banner-reject-button",
70
+ children: rejectButtonText || cookieBanner.rejectAll
71
+ }),
72
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(button_cjs_namespaceObject.ConsentButton, {
73
+ action: "open-consent-dialog",
74
+ closeCookieBanner: true,
75
+ themeKey: "banner.footer.customize-button",
76
+ "data-testid": "cookie-banner-customize-button",
77
+ children: customizeButtonText || cookieBanner.customize
78
+ })
79
+ ]
80
+ }),
81
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(button_cjs_namespaceObject.ConsentButton, {
82
+ action: "accept-consent",
83
+ variant: "primary",
84
+ closeCookieBanner: true,
85
+ themeKey: "banner.footer.accept-button",
86
+ "data-testid": "cookie-banner-accept-button",
87
+ children: acceptButtonText || cookieBanner.acceptAll
88
+ })
89
+ ]
90
+ })
91
+ ]
92
+ })
93
+ })
94
+ });
95
+ };
96
+ var __webpack_export_target__ = exports;
97
+ for(var __webpack_i__ in __webpack_exports__)__webpack_export_target__[__webpack_i__] = __webpack_exports__[__webpack_i__];
98
+ if (__webpack_exports__.__esModule) Object.defineProperty(__webpack_export_target__, '__esModule', {
99
+ value: true
100
+ });
@@ -0,0 +1,144 @@
1
+ /**
2
+ * @packageDocumentation
3
+ * Provides the main cookie banner component for privacy consent management.
4
+ * Implements an accessible, customizable banner following GDPR and CCPA requirements.
5
+ */
6
+ import type { FC, ReactNode } from 'react';
7
+ import type { CookieBannerTheme } from './theme';
8
+ /**
9
+ * Props for configuring and customizing the CookieBanner component.
10
+ *f
11
+ * @remarks
12
+ * Provides comprehensive customization options for the cookie banner's appearance
13
+ * and behavior while maintaining compliance with privacy regulations.
14
+ *
15
+ * @public
16
+ */
17
+ export interface CookieBannerProps {
18
+ /**
19
+ * Custom styles to apply to the banner and its child components
20
+ * @remarks Allows for deep customization of the banner's appearance while maintaining accessibility
21
+ * @default undefined
22
+ */
23
+ theme?: CookieBannerTheme;
24
+ /**
25
+ * When true, removes all default styling from the component
26
+ * @remarks Useful for implementing completely custom designs
27
+ * @default false
28
+ */
29
+ noStyle?: boolean;
30
+ /**
31
+ * Content to display as the banner's title
32
+ * @remarks Supports string or ReactNode for rich content
33
+ * @default undefined
34
+ */
35
+ title?: ReactNode;
36
+ /**
37
+ * Content to display as the banner's description
38
+ * @remarks Supports string or ReactNode for rich content
39
+ * @default undefined
40
+ */
41
+ description?: ReactNode;
42
+ /**
43
+ * Content to display on the reject button
44
+ * @remarks Required by GDPR for explicit consent rejection
45
+ * @default undefined
46
+ */
47
+ rejectButtonText?: ReactNode;
48
+ /**
49
+ * Content to display on the customize button
50
+ * @remarks Opens detailed consent preferences
51
+ * @default undefined
52
+ */
53
+ customizeButtonText?: ReactNode;
54
+ /**
55
+ * Content to display on the accept button
56
+ * @remarks Primary action for accepting cookie preferences
57
+ * @default undefined
58
+ */
59
+ acceptButtonText?: ReactNode;
60
+ /**
61
+ * When true, the cookie banner will lock the scroll of the page
62
+ * @remarks Useful for implementing a cookie banner that locks the scroll of the page
63
+ * @default false
64
+ */
65
+ scrollLock?: boolean;
66
+ /**
67
+ * When true, the cookie banner will trap focus
68
+ * @remarks Useful for implementing a cookie banner that traps focus
69
+ * @default true
70
+ */
71
+ trapFocus?: true;
72
+ }
73
+ /**
74
+ * A customizable cookie consent banner component.
75
+ *
76
+ * @remarks
77
+ * This component serves as the main entry point for rendering a cookie consent banner.
78
+ * It provides a structured layout with customizable title, description, and action buttons
79
+ * for accepting, rejecting, or customizing cookie preferences.
80
+ *
81
+ * Key features:
82
+ * - Fully accessible by default
83
+ * - GDPR and CCPA compliant
84
+ * - Customizable appearance
85
+ * - Responsive design
86
+ * - Error boundary protection
87
+ * - Compound component pattern support
88
+ *
89
+ * @example
90
+ * Simple usage with default settings:
91
+ * ```tsx
92
+ * <CookieBanner />
93
+ * ```
94
+ *
95
+ * @example
96
+ * Customized usage with all props:
97
+ * ```tsx
98
+ * <CookieBanner
99
+ * theme={{
100
+ * root: "bg-white p-4",
101
+ * title: "text-xl font-bold",
102
+ * description: "text-gray-600",
103
+ * actions: "mt-4 flex gap-2"
104
+ * }}
105
+ * title="Cookie Settings"
106
+ * description="We use cookies to enhance your browsing experience"
107
+ * rejectButtonText="Decline"
108
+ * customizeButtonText="Preferences"
109
+ * acceptButtonText="Allow All"
110
+ * />
111
+ * ```
112
+ *
113
+ * @example
114
+ * Using compound components for custom layout:
115
+ * ```tsx
116
+ * <CookieBanner.Root>
117
+ * <CookieBanner.Content>
118
+ * <CookieBanner.Title>Cookie Settings</CookieBanner.Title>
119
+ * <CookieBanner.Description>
120
+ * Choose your cookie preferences
121
+ * </CookieBanner.Description>
122
+ * <CookieBanner.Actions>
123
+ * <CookieBanner.RejectButton>Decline</CookieBanner.RejectButton>
124
+ * <CookieBanner.CustomizeButton>Customize</CookieBanner.CustomizeButton>
125
+ * <CookieBanner.AcceptButton>Accept</CookieBanner.AcceptButton>
126
+ * </CookieBanner.Actions>
127
+ * </CookieBanner.Content>
128
+ * </CookieBanner.Root>
129
+ * ```
130
+ *
131
+ * @public
132
+ */
133
+ export declare const CookieBanner: FC<CookieBannerProps>;
134
+ /**
135
+ * Component type definition for the CookieBanner with its compound components.
136
+ *
137
+ * @remarks
138
+ * This interface extends the base CookieBanner component with additional sub-components
139
+ * that can be used to compose the banner's structure. Each component is designed to be
140
+ * fully accessible and customizable while maintaining compliance with privacy regulations.
141
+ *
142
+ * @public
143
+ */
144
+ //# sourceMappingURL=cookie-banner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cookie-banner.d.ts","sourceRoot":"","sources":["../../../src/components/cookie-banner/cookie-banner.tsx"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAG3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAejD;;;;;;;;GAQG;AACH,MAAM,WAAW,iBAAiB;IACjC;;;;OAIG;IACH,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAE1B;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;OAIG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB;;;;OAIG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC;IAExB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAE7B;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,SAAS,CAAC;IAEhC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAE7B;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;;OAIG;IACH,SAAS,CAAC,EAAE,IAAI,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AACH,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,CA+D9C,CAAC;AAEF;;;;;;;;;GASG"}
@@ -0,0 +1,66 @@
1
+ 'use client';
2
+ import * as __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__ from "react/jsx-runtime";
3
+ import * as __WEBPACK_EXTERNAL_MODULE__error_boundary_js_9edd64b3__ from "./error-boundary.js";
4
+ import * as __WEBPACK_EXTERNAL_MODULE__shared_primitives_button_js_952f908a__ from "../shared/primitives/button.js";
5
+ import * as __WEBPACK_EXTERNAL_MODULE__atoms_root_js_8443a91f__ from "./atoms/root.js";
6
+ import * as __WEBPACK_EXTERNAL_MODULE__components_js_29fc1aed__ from "./components.js";
7
+ import * as __WEBPACK_EXTERNAL_MODULE__hooks_use_translations_js_036cca3c__ from "../../hooks/use-translations.js";
8
+ const CookieBanner = ({ theme, noStyle, title, description, rejectButtonText, customizeButtonText, acceptButtonText, scrollLock, trapFocus = true })=>{
9
+ const { cookieBanner } = (0, __WEBPACK_EXTERNAL_MODULE__hooks_use_translations_js_036cca3c__.useTranslations)();
10
+ return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__error_boundary_js_9edd64b3__.ErrorBoundary, {
11
+ fallback: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
12
+ children: "Something went wrong with the Cookie Banner."
13
+ }),
14
+ children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__atoms_root_js_8443a91f__.CookieBannerRoot, {
15
+ theme: theme,
16
+ noStyle: noStyle,
17
+ scrollLock: scrollLock,
18
+ trapFocus: trapFocus,
19
+ children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)(__WEBPACK_EXTERNAL_MODULE__components_js_29fc1aed__.CookieBannerCard, {
20
+ children: [
21
+ /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)(__WEBPACK_EXTERNAL_MODULE__components_js_29fc1aed__.CookieBannerHeader, {
22
+ children: [
23
+ /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__components_js_29fc1aed__.CookieBannerTitle, {
24
+ children: title || cookieBanner.title
25
+ }),
26
+ /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__components_js_29fc1aed__.CookieBannerDescription, {
27
+ children: description || cookieBanner.description
28
+ })
29
+ ]
30
+ }),
31
+ /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)(__WEBPACK_EXTERNAL_MODULE__components_js_29fc1aed__.CookieBannerFooter, {
32
+ children: [
33
+ /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)(__WEBPACK_EXTERNAL_MODULE__components_js_29fc1aed__.CookieBannerFooterSubGroup, {
34
+ children: [
35
+ /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__shared_primitives_button_js_952f908a__.ConsentButton, {
36
+ action: "reject-consent",
37
+ closeCookieBanner: true,
38
+ themeKey: "banner.footer.reject-button",
39
+ "data-testid": "cookie-banner-reject-button",
40
+ children: rejectButtonText || cookieBanner.rejectAll
41
+ }),
42
+ /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__shared_primitives_button_js_952f908a__.ConsentButton, {
43
+ action: "open-consent-dialog",
44
+ closeCookieBanner: true,
45
+ themeKey: "banner.footer.customize-button",
46
+ "data-testid": "cookie-banner-customize-button",
47
+ children: customizeButtonText || cookieBanner.customize
48
+ })
49
+ ]
50
+ }),
51
+ /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__shared_primitives_button_js_952f908a__.ConsentButton, {
52
+ action: "accept-consent",
53
+ variant: "primary",
54
+ closeCookieBanner: true,
55
+ themeKey: "banner.footer.accept-button",
56
+ "data-testid": "cookie-banner-accept-button",
57
+ children: acceptButtonText || cookieBanner.acceptAll
58
+ })
59
+ ]
60
+ })
61
+ ]
62
+ })
63
+ })
64
+ });
65
+ };
66
+ export { CookieBanner };
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = function(exports1, definition) {
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = function(obj, prop) {
13
+ return Object.prototype.hasOwnProperty.call(obj, prop);
14
+ };
15
+ })();
16
+ (()=>{
17
+ __webpack_require__.r = function(exports1) {
18
+ if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
19
+ value: 'Module'
20
+ });
21
+ Object.defineProperty(exports1, '__esModule', {
22
+ value: true
23
+ });
24
+ };
25
+ })();
26
+ var __webpack_exports__ = {};
27
+ __webpack_require__.r(__webpack_exports__);
28
+ __webpack_require__.d(__webpack_exports__, {
29
+ default: ()=>cookie_banner_module_rslib_entry_
30
+ });
31
+ require("./cookie-banner_module.css");
32
+ const cookie_banner_module_rslib_entry_ = {
33
+ enter: "c15t-enter-OSOPL",
34
+ exit: "c15t-exit-PbMtf",
35
+ root: "c15t-root-tnx7V",
36
+ bottomLeft: "c15t-bottomLeft-wv7ez",
37
+ bottomRight: "c15t-bottomRight-Oibp8",
38
+ topLeft: "c15t-topLeft-JJ9D6",
39
+ topRight: "c15t-topRight-A6dOV",
40
+ card: "c15t-card-MOqQY",
41
+ rejectButton: "c15t-rejectButton-qP3hZ",
42
+ acceptButton: "c15t-acceptButton-zReyG",
43
+ customizeButton: "c15t-customizeButton-ZjdG0",
44
+ header: "c15t-header-X6bpE",
45
+ footer: "c15t-footer-wS150",
46
+ footerSubGroup: "c15t-footerSubGroup-HbTp3",
47
+ description: "c15t-description-jP5LU",
48
+ title: "c15t-title-qr_tp",
49
+ overlay: "c15t-overlay-Y8QYV"
50
+ };
51
+ var __webpack_export_target__ = exports;
52
+ for(var __webpack_i__ in __webpack_exports__)__webpack_export_target__[__webpack_i__] = __webpack_exports__[__webpack_i__];
53
+ if (__webpack_exports__.__esModule) Object.defineProperty(__webpack_export_target__, '__esModule', {
54
+ value: true
55
+ });
@@ -0,0 +1,21 @@
1
+ import "./cookie-banner_module.css";
2
+ const cookie_banner_module_rslib_entry_ = {
3
+ enter: "c15t-enter-OSOPL",
4
+ exit: "c15t-exit-PbMtf",
5
+ root: "c15t-root-tnx7V",
6
+ bottomLeft: "c15t-bottomLeft-wv7ez",
7
+ bottomRight: "c15t-bottomRight-Oibp8",
8
+ topLeft: "c15t-topLeft-JJ9D6",
9
+ topRight: "c15t-topRight-A6dOV",
10
+ card: "c15t-card-MOqQY",
11
+ rejectButton: "c15t-rejectButton-qP3hZ",
12
+ acceptButton: "c15t-acceptButton-zReyG",
13
+ customizeButton: "c15t-customizeButton-ZjdG0",
14
+ header: "c15t-header-X6bpE",
15
+ footer: "c15t-footer-wS150",
16
+ footerSubGroup: "c15t-footerSubGroup-HbTp3",
17
+ description: "c15t-description-jP5LU",
18
+ title: "c15t-title-qr_tp",
19
+ overlay: "c15t-overlay-Y8QYV"
20
+ };
21
+ export { cookie_banner_module_rslib_entry_ as default };