@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.
- package/LICENSE.md +595 -0
- package/README.md +55 -0
- package/dist/components/consent-manager-dialog/__tests__/styles.spec.cjs +223 -0
- package/dist/components/consent-manager-dialog/__tests__/styles.spec.d.ts +2 -0
- package/dist/components/consent-manager-dialog/__tests__/styles.spec.d.ts.map +1 -0
- package/dist/components/consent-manager-dialog/__tests__/styles.spec.js +188 -0
- package/dist/components/consent-manager-dialog/__tests__/utils.cjs +68 -0
- package/dist/components/consent-manager-dialog/__tests__/utils.d.ts +13 -0
- package/dist/components/consent-manager-dialog/__tests__/utils.d.ts.map +1 -0
- package/dist/components/consent-manager-dialog/__tests__/utils.js +34 -0
- package/dist/components/consent-manager-dialog/atoms/dialog-card.cjs +154 -0
- package/dist/components/consent-manager-dialog/atoms/dialog-card.d.ts +90 -0
- package/dist/components/consent-manager-dialog/atoms/dialog-card.d.ts.map +1 -0
- package/dist/components/consent-manager-dialog/atoms/dialog-card.js +95 -0
- package/dist/components/consent-manager-dialog/atoms/overlay.cjs +86 -0
- package/dist/components/consent-manager-dialog/atoms/overlay.d.ts +71 -0
- package/dist/components/consent-manager-dialog/atoms/overlay.d.ts.map +1 -0
- package/dist/components/consent-manager-dialog/atoms/overlay.js +37 -0
- package/dist/components/consent-manager-dialog/consent-manager-dialog.cjs +148 -0
- package/dist/components/consent-manager-dialog/consent-manager-dialog.d.ts +40 -0
- package/dist/components/consent-manager-dialog/consent-manager-dialog.d.ts.map +1 -0
- package/dist/components/consent-manager-dialog/consent-manager-dialog.js +100 -0
- package/dist/components/consent-manager-dialog/consent-manager-dialog.module.cjs +50 -0
- package/dist/components/consent-manager-dialog/consent-manager-dialog.module.js +16 -0
- package/dist/components/consent-manager-dialog/consent-manager-dialog_module.css +202 -0
- package/dist/components/consent-manager-dialog/index.cjs +51 -0
- package/dist/components/consent-manager-dialog/index.d.ts +4 -0
- package/dist/components/consent-manager-dialog/index.d.ts.map +1 -0
- package/dist/components/consent-manager-dialog/index.js +18 -0
- package/dist/components/consent-manager-dialog/theme.cjs +19 -0
- package/dist/components/consent-manager-dialog/theme.d.ts +19 -0
- package/dist/components/consent-manager-dialog/theme.d.ts.map +1 -0
- package/dist/components/consent-manager-dialog/theme.js +0 -0
- package/dist/components/consent-manager-widget/__tests__/styles.spec.cjs +228 -0
- package/dist/components/consent-manager-widget/__tests__/styles.spec.d.ts +2 -0
- package/dist/components/consent-manager-widget/__tests__/styles.spec.d.ts.map +1 -0
- package/dist/components/consent-manager-widget/__tests__/styles.spec.js +193 -0
- package/dist/components/consent-manager-widget/__tests__/utils.cjs +68 -0
- package/dist/components/consent-manager-widget/__tests__/utils.d.ts +13 -0
- package/dist/components/consent-manager-widget/__tests__/utils.d.ts.map +1 -0
- package/dist/components/consent-manager-widget/__tests__/utils.js +34 -0
- package/dist/components/consent-manager-widget/atoms/accordion.cjs +169 -0
- package/dist/components/consent-manager-widget/atoms/accordion.d.ts +57 -0
- package/dist/components/consent-manager-widget/atoms/accordion.d.ts.map +1 -0
- package/dist/components/consent-manager-widget/atoms/accordion.js +106 -0
- package/dist/components/consent-manager-widget/atoms/button.cjs +93 -0
- package/dist/components/consent-manager-widget/atoms/button.d.ts +27 -0
- package/dist/components/consent-manager-widget/atoms/button.d.ts.map +1 -0
- package/dist/components/consent-manager-widget/atoms/button.js +52 -0
- package/dist/components/consent-manager-widget/atoms/footer.cjs +74 -0
- package/dist/components/consent-manager-widget/atoms/footer.d.ts +15 -0
- package/dist/components/consent-manager-widget/atoms/footer.d.ts.map +1 -0
- package/dist/components/consent-manager-widget/atoms/footer.js +23 -0
- package/dist/components/consent-manager-widget/atoms/logo.cjs +101 -0
- package/dist/components/consent-manager-widget/atoms/logo.d.ts +8 -0
- package/dist/components/consent-manager-widget/atoms/logo.d.ts.map +1 -0
- package/dist/components/consent-manager-widget/atoms/logo.js +67 -0
- package/dist/components/consent-manager-widget/atoms/root.cjs +60 -0
- package/dist/components/consent-manager-widget/atoms/root.d.ts +82 -0
- package/dist/components/consent-manager-widget/atoms/root.d.ts.map +1 -0
- package/dist/components/consent-manager-widget/atoms/root.js +25 -0
- package/dist/components/consent-manager-widget/consent-manager-widget.cjs +96 -0
- package/dist/components/consent-manager-widget/consent-manager-widget.d.ts +44 -0
- package/dist/components/consent-manager-widget/consent-manager-widget.d.ts.map +1 -0
- package/dist/components/consent-manager-widget/consent-manager-widget.js +62 -0
- package/dist/components/consent-manager-widget/consent-manager-widget.module.cjs +61 -0
- package/dist/components/consent-manager-widget/consent-manager-widget.module.js +27 -0
- package/dist/components/consent-manager-widget/consent-manager-widget_module.css +337 -0
- package/dist/components/consent-manager-widget/index.cjs +69 -0
- package/dist/components/consent-manager-widget/index.d.ts +11 -0
- package/dist/components/consent-manager-widget/index.d.ts.map +1 -0
- package/dist/components/consent-manager-widget/index.js +36 -0
- package/dist/components/consent-manager-widget/theme.cjs +19 -0
- package/dist/components/consent-manager-widget/theme.d.ts +50 -0
- package/dist/components/consent-manager-widget/theme.d.ts.map +1 -0
- package/dist/components/consent-manager-widget/theme.js +0 -0
- package/dist/components/consent-manager-widget/types.cjs +19 -0
- package/dist/components/consent-manager-widget/types.d.ts +18 -0
- package/dist/components/consent-manager-widget/types.d.ts.map +1 -0
- package/dist/components/consent-manager-widget/types.js +0 -0
- package/dist/components/cookie-banner/__tests__/styles.spec.cjs +241 -0
- package/dist/components/cookie-banner/__tests__/styles.spec.d.ts +2 -0
- package/dist/components/cookie-banner/__tests__/styles.spec.d.ts.map +1 -0
- package/dist/components/cookie-banner/__tests__/styles.spec.js +206 -0
- package/dist/components/cookie-banner/__tests__/utils.cjs +67 -0
- package/dist/components/cookie-banner/__tests__/utils.d.ts +13 -0
- package/dist/components/cookie-banner/__tests__/utils.d.ts.map +1 -0
- package/dist/components/cookie-banner/__tests__/utils.js +33 -0
- package/dist/components/cookie-banner/atoms/overlay.cjs +89 -0
- package/dist/components/cookie-banner/atoms/overlay.d.ts +46 -0
- package/dist/components/cookie-banner/atoms/overlay.d.ts.map +1 -0
- package/dist/components/cookie-banner/atoms/overlay.js +40 -0
- package/dist/components/cookie-banner/atoms/root.cjs +132 -0
- package/dist/components/cookie-banner/atoms/root.d.ts +93 -0
- package/dist/components/cookie-banner/atoms/root.d.ts.map +1 -0
- package/dist/components/cookie-banner/atoms/root.js +83 -0
- package/dist/components/cookie-banner/components.cjs +186 -0
- package/dist/components/cookie-banner/components.d.ts +136 -0
- package/dist/components/cookie-banner/components.d.ts.map +1 -0
- package/dist/components/cookie-banner/components.js +121 -0
- package/dist/components/cookie-banner/cookie-banner.cjs +100 -0
- package/dist/components/cookie-banner/cookie-banner.d.ts +144 -0
- package/dist/components/cookie-banner/cookie-banner.d.ts.map +1 -0
- package/dist/components/cookie-banner/cookie-banner.js +66 -0
- package/dist/components/cookie-banner/cookie-banner.module.cjs +55 -0
- package/dist/components/cookie-banner/cookie-banner.module.js +21 -0
- package/dist/components/cookie-banner/cookie-banner_module.css +224 -0
- package/dist/components/cookie-banner/error-boundary.cjs +68 -0
- package/dist/components/cookie-banner/error-boundary.d.ts +56 -0
- package/dist/components/cookie-banner/error-boundary.d.ts.map +1 -0
- package/dist/components/cookie-banner/error-boundary.js +34 -0
- package/dist/components/cookie-banner/index.cjs +59 -0
- package/dist/components/cookie-banner/index.d.ts +52 -0
- package/dist/components/cookie-banner/index.d.ts.map +1 -0
- package/dist/components/cookie-banner/index.js +26 -0
- package/dist/components/cookie-banner/theme.cjs +19 -0
- package/dist/components/cookie-banner/theme.d.ts +71 -0
- package/dist/components/cookie-banner/theme.d.ts.map +1 -0
- package/dist/components/cookie-banner/theme.js +0 -0
- package/dist/components/shared/libs/polymorphic.cjs +19 -0
- package/dist/components/shared/libs/polymorphic.d.ts +15 -0
- package/dist/components/shared/libs/polymorphic.d.ts.map +1 -0
- package/dist/components/shared/libs/polymorphic.js +0 -0
- package/dist/components/shared/libs/recursive-clone-children.cjs +49 -0
- package/dist/components/shared/libs/recursive-clone-children.d.ts +14 -0
- package/dist/components/shared/libs/recursive-clone-children.d.ts.map +1 -0
- package/dist/components/shared/libs/recursive-clone-children.js +15 -0
- package/dist/components/shared/primitives/box.cjs +54 -0
- package/dist/components/shared/primitives/box.d.ts +47 -0
- package/dist/components/shared/primitives/box.d.ts.map +1 -0
- package/dist/components/shared/primitives/box.js +20 -0
- package/dist/components/shared/primitives/button.cjs +96 -0
- package/dist/components/shared/primitives/button.d.ts +207 -0
- package/dist/components/shared/primitives/button.d.ts.map +1 -0
- package/dist/components/shared/primitives/button.js +62 -0
- package/dist/components/shared/primitives/button.types.cjs +19 -0
- package/dist/components/shared/primitives/button.types.d.ts +35 -0
- package/dist/components/shared/primitives/button.types.d.ts.map +1 -0
- package/dist/components/shared/primitives/button.types.js +0 -0
- package/dist/components/shared/ui/accordion/accordion.cjs +219 -0
- package/dist/components/shared/ui/accordion/accordion.d.ts +44 -0
- package/dist/components/shared/ui/accordion/accordion.d.ts.map +1 -0
- package/dist/components/shared/ui/accordion/accordion.js +165 -0
- package/dist/components/shared/ui/accordion/accordion.module.cjs +49 -0
- package/dist/components/shared/ui/accordion/accordion.module.js +15 -0
- package/dist/components/shared/ui/accordion/accordion.types.cjs +19 -0
- package/dist/components/shared/ui/accordion/accordion.types.d.ts +74 -0
- package/dist/components/shared/ui/accordion/accordion.types.d.ts.map +1 -0
- package/dist/components/shared/ui/accordion/accordion.types.js +0 -0
- package/dist/components/shared/ui/accordion/accordion_module.css +197 -0
- package/dist/components/shared/ui/accordion/index.cjs +76 -0
- package/dist/components/shared/ui/accordion/index.d.ts +3 -0
- package/dist/components/shared/ui/accordion/index.d.ts.map +1 -0
- package/dist/components/shared/ui/accordion/index.js +2 -0
- package/dist/components/shared/ui/button/button.cjs +199 -0
- package/dist/components/shared/ui/button/button.d.ts +444 -0
- package/dist/components/shared/ui/button/button.d.ts.map +1 -0
- package/dist/components/shared/ui/button/button.js +149 -0
- package/dist/components/shared/ui/button/button.module.cjs +65 -0
- package/dist/components/shared/ui/button/button.module.js +31 -0
- package/dist/components/shared/ui/button/button.types.cjs +19 -0
- package/dist/components/shared/ui/button/button.types.d.ts +45 -0
- package/dist/components/shared/ui/button/button.types.d.ts.map +1 -0
- package/dist/components/shared/ui/button/button.types.js +0 -0
- package/dist/components/shared/ui/button/button_module.css +247 -0
- package/dist/components/shared/ui/button/index.cjs +76 -0
- package/dist/components/shared/ui/button/index.d.ts +3 -0
- package/dist/components/shared/ui/button/index.d.ts.map +1 -0
- package/dist/components/shared/ui/button/index.js +2 -0
- package/dist/components/shared/ui/icon.cjs +57 -0
- package/dist/components/shared/ui/icon.d.ts +8 -0
- package/dist/components/shared/ui/icon.d.ts.map +1 -0
- package/dist/components/shared/ui/icon.js +23 -0
- package/dist/components/shared/ui/logo.cjs +101 -0
- package/dist/components/shared/ui/logo.d.ts +8 -0
- package/dist/components/shared/ui/logo.d.ts.map +1 -0
- package/dist/components/shared/ui/logo.js +67 -0
- package/dist/components/shared/ui/switch/index.cjs +76 -0
- package/dist/components/shared/ui/switch/index.d.ts +3 -0
- package/dist/components/shared/ui/switch/index.d.ts.map +1 -0
- package/dist/components/shared/ui/switch/index.js +2 -0
- package/dist/components/shared/ui/switch/switch.cjs +95 -0
- package/dist/components/shared/ui/switch/switch.d.ts +24 -0
- package/dist/components/shared/ui/switch/switch.d.ts.map +1 -0
- package/dist/components/shared/ui/switch/switch.js +47 -0
- package/dist/components/shared/ui/switch/switch.module.cjs +45 -0
- package/dist/components/shared/ui/switch/switch.module.js +11 -0
- package/dist/components/shared/ui/switch/switch.types.cjs +19 -0
- package/dist/components/shared/ui/switch/switch.types.d.ts +34 -0
- package/dist/components/shared/ui/switch/switch.types.d.ts.map +1 -0
- package/dist/components/shared/ui/switch/switch.types.js +0 -0
- package/dist/components/shared/ui/switch/switch_module.css +183 -0
- package/dist/context/consent-manager-context.cjs +38 -0
- package/dist/context/consent-manager-context.d.ts +13 -0
- package/dist/context/consent-manager-context.d.ts.map +1 -0
- package/dist/context/consent-manager-context.js +4 -0
- package/dist/context/theme-context.cjs +40 -0
- package/dist/context/theme-context.d.ts +102 -0
- package/dist/context/theme-context.d.ts.map +1 -0
- package/dist/context/theme-context.js +5 -0
- package/dist/hooks/index.cjs +94 -0
- package/dist/hooks/index.d.ts +5 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +4 -0
- package/dist/hooks/use-consent-manager.cjs +45 -0
- package/dist/hooks/use-consent-manager.d.ts +61 -0
- package/dist/hooks/use-consent-manager.d.ts.map +1 -0
- package/dist/hooks/use-consent-manager.js +11 -0
- package/dist/hooks/use-focus-trap.cjs +76 -0
- package/dist/hooks/use-focus-trap.d.ts +15 -0
- package/dist/hooks/use-focus-trap.d.ts.map +1 -0
- package/dist/hooks/use-focus-trap.js +42 -0
- package/dist/hooks/use-scroll-lock.cjs +55 -0
- package/dist/hooks/use-scroll-lock.d.ts +26 -0
- package/dist/hooks/use-scroll-lock.d.ts.map +1 -0
- package/dist/hooks/use-scroll-lock.js +21 -0
- package/dist/hooks/use-theme.cjs +56 -0
- package/dist/hooks/use-theme.d.ts +2 -0
- package/dist/hooks/use-theme.d.ts.map +1 -0
- package/dist/hooks/use-theme.js +22 -0
- package/dist/hooks/use-translations.cjs +58 -0
- package/dist/hooks/use-translations.d.ts +29 -0
- package/dist/hooks/use-translations.d.ts.map +1 -0
- package/dist/hooks/use-translations.js +24 -0
- package/dist/index.cjs +101 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -0
- package/dist/providers/consent-manager-provider.cjs +110 -0
- package/dist/providers/consent-manager-provider.d.ts +16 -0
- package/dist/providers/consent-manager-provider.d.ts.map +1 -0
- package/dist/providers/consent-manager-provider.js +76 -0
- package/dist/types/consent-manager.cjs +19 -0
- package/dist/types/consent-manager.d.ts +120 -0
- package/dist/types/consent-manager.d.ts.map +1 -0
- package/dist/types/consent-manager.js +0 -0
- package/dist/types/theme/index.cjs +76 -0
- package/dist/types/theme/index.d.ts +3 -0
- package/dist/types/theme/index.d.ts.map +1 -0
- package/dist/types/theme/index.js +2 -0
- package/dist/types/theme/style-keys.cjs +19 -0
- package/dist/types/theme/style-keys.d.ts +14 -0
- package/dist/types/theme/style-keys.d.ts.map +1 -0
- package/dist/types/theme/style-keys.js +0 -0
- package/dist/types/theme/style-types.cjs +19 -0
- package/dist/types/theme/style-types.d.ts +34 -0
- package/dist/types/theme/style-types.d.ts.map +1 -0
- package/dist/types/theme/style-types.js +0 -0
- package/dist/utils/cn.cjs +55 -0
- package/dist/utils/cn.d.ts +11 -0
- package/dist/utils/cn.d.ts.map +1 -0
- package/dist/utils/cn.js +6 -0
- package/dist/utils/merge-styles.cjs +62 -0
- package/dist/utils/merge-styles.d.ts +11 -0
- package/dist/utils/merge-styles.d.ts.map +1 -0
- package/dist/utils/merge-styles.js +28 -0
- package/dist/utils/translations.cjs +86 -0
- package/dist/utils/translations.d.ts +14 -0
- package/dist/utils/translations.d.ts.map +1 -0
- package/dist/utils/translations.js +50 -0
- package/dist/utils/use-styles.cjs +95 -0
- package/dist/utils/use-styles.d.ts +32 -0
- package/dist/utils/use-styles.d.ts.map +1 -0
- package/dist/utils/use-styles.js +61 -0
- 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 };
|