@tantainnovative/ndpr-toolkit 1.0.5 → 1.0.7

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 (263) hide show
  1. package/README.md +88 -14
  2. package/dist/components/breach-notification/BreachNotificationForm.d.ts +18 -0
  3. package/dist/components/breach-notification/BreachNotificationForm.d.ts.map +1 -0
  4. package/dist/components/consent/ConsentBanner.d.ts +30 -0
  5. package/dist/components/consent/ConsentBanner.d.ts.map +1 -0
  6. package/dist/components/consent/ConsentManager.d.ts +51 -0
  7. package/dist/components/consent/ConsentManager.d.ts.map +1 -0
  8. package/dist/components/consent/ConsentSettings.d.ts +15 -0
  9. package/dist/components/consent/ConsentSettings.d.ts.map +1 -0
  10. package/dist/components/consent/unstyled/UnstyledConsentBanner.d.ts +7 -0
  11. package/dist/components/consent/unstyled/UnstyledConsentBanner.d.ts.map +1 -0
  12. package/dist/components/consent/unstyled/UnstyledConsentSettings.d.ts +7 -0
  13. package/dist/components/consent/unstyled/UnstyledConsentSettings.d.ts.map +1 -0
  14. package/dist/components/consent/unstyled/UnstyledConsentToggle.d.ts +8 -0
  15. package/dist/components/consent/unstyled/UnstyledConsentToggle.d.ts.map +1 -0
  16. package/dist/components/consent/unstyled/index.d.ts +4 -0
  17. package/dist/components/consent/unstyled/index.d.ts.map +1 -0
  18. package/dist/components/data-subject-rights/DataSubjectRequestForm.d.ts +14 -0
  19. package/dist/components/data-subject-rights/DataSubjectRequestForm.d.ts.map +1 -0
  20. package/dist/components/docs/DocLayout.d.ts +9 -0
  21. package/dist/components/docs/DocLayout.d.ts.map +1 -0
  22. package/dist/components/docs/index.d.ts +2 -0
  23. package/dist/components/docs/index.d.ts.map +1 -0
  24. package/dist/components/dpia/DPIAQuestionnaire.d.ts +9 -0
  25. package/dist/components/dpia/DPIAQuestionnaire.d.ts.map +1 -0
  26. package/dist/components/privacy-policy/PolicyGenerator.d.ts +12 -0
  27. package/dist/components/privacy-policy/PolicyGenerator.d.ts.map +1 -0
  28. package/dist/components/privacy-policy/data.d.ts +8 -0
  29. package/dist/components/privacy-policy/data.d.ts.map +1 -0
  30. package/dist/components/privacy-policy/shared/CheckboxField.d.ts +13 -0
  31. package/dist/components/privacy-policy/shared/CheckboxField.d.ts.map +1 -0
  32. package/dist/components/privacy-policy/shared/CheckboxGroup.d.ts +13 -0
  33. package/dist/components/privacy-policy/shared/CheckboxGroup.d.ts.map +1 -0
  34. package/dist/components/privacy-policy/shared/FormField.d.ts +13 -0
  35. package/dist/components/privacy-policy/shared/FormField.d.ts.map +1 -0
  36. package/dist/components/privacy-policy/shared/StepIndicator.d.ts +8 -0
  37. package/dist/components/privacy-policy/shared/StepIndicator.d.ts.map +1 -0
  38. package/dist/components/privacy-policy/steps/CustomSectionsStep.d.ts +15 -0
  39. package/dist/components/privacy-policy/steps/CustomSectionsStep.d.ts.map +1 -0
  40. package/dist/components/privacy-policy/steps/DataCollectionStep.d.ts +20 -0
  41. package/dist/components/privacy-policy/steps/DataCollectionStep.d.ts.map +1 -0
  42. package/dist/components/privacy-policy/steps/DataSharingStep.d.ts +34 -0
  43. package/dist/components/privacy-policy/steps/DataSharingStep.d.ts.map +1 -0
  44. package/dist/components/privacy-policy/steps/OrganizationInfoStep.d.ts +17 -0
  45. package/dist/components/privacy-policy/steps/OrganizationInfoStep.d.ts.map +1 -0
  46. package/dist/components/privacy-policy/steps/PolicyPreviewStep.d.ts +30 -0
  47. package/dist/components/privacy-policy/steps/PolicyPreviewStep.d.ts.map +1 -0
  48. package/dist/components/ui/Badge.d.ts +10 -0
  49. package/dist/components/ui/Badge.d.ts.map +1 -0
  50. package/dist/components/ui/Button.d.ts +11 -0
  51. package/dist/components/ui/Button.d.ts.map +1 -0
  52. package/dist/components/ui/Card.d.ts +10 -0
  53. package/dist/components/ui/Card.d.ts.map +1 -0
  54. package/dist/components/ui/Checkbox.d.ts +8 -0
  55. package/dist/components/ui/Checkbox.d.ts.map +1 -0
  56. package/dist/components/ui/FormField.d.ts +11 -0
  57. package/dist/components/ui/FormField.d.ts.map +1 -0
  58. package/dist/components/ui/Input.d.ts +6 -0
  59. package/dist/components/ui/Input.d.ts.map +1 -0
  60. package/dist/components/ui/Select.d.ts +6 -0
  61. package/dist/components/ui/Select.d.ts.map +1 -0
  62. package/dist/components/ui/TextArea.d.ts +6 -0
  63. package/dist/components/ui/TextArea.d.ts.map +1 -0
  64. package/dist/components/ui/dialog.d.ts +18 -0
  65. package/dist/components/ui/dialog.d.ts.map +1 -0
  66. package/dist/components/ui/label.d.ts +5 -0
  67. package/dist/components/ui/label.d.ts.map +1 -0
  68. package/dist/components/ui/switch.d.ts +5 -0
  69. package/dist/components/ui/switch.d.ts.map +1 -0
  70. package/dist/components/ui/tabs.d.ts +8 -0
  71. package/dist/components/ui/tabs.d.ts.map +1 -0
  72. package/dist/contexts/ConsentContext.d.ts +35 -0
  73. package/dist/contexts/ConsentContext.d.ts.map +1 -0
  74. package/dist/contexts/GenericConsentContext.d.ts +11 -0
  75. package/dist/contexts/GenericConsentContext.d.ts.map +1 -0
  76. package/dist/hooks/useConsent.d.ts +12 -0
  77. package/dist/hooks/useConsent.d.ts.map +1 -0
  78. package/dist/hooks/useConsentActions.d.ts +12 -0
  79. package/dist/hooks/useConsentActions.d.ts.map +1 -0
  80. package/dist/hooks/useConsentManager.d.ts +14 -0
  81. package/dist/hooks/useConsentManager.d.ts.map +1 -0
  82. package/dist/hooks/useConsentState.d.ts +10 -0
  83. package/dist/hooks/useConsentState.d.ts.map +1 -0
  84. package/dist/index.d.mts +256 -0
  85. package/dist/index.d.ts +24 -0
  86. package/dist/index.d.ts.map +1 -0
  87. package/dist/index.js +2 -0
  88. package/dist/index.js.map +1 -0
  89. package/dist/index.mjs +2 -0
  90. package/dist/index.mjs.map +1 -0
  91. package/dist/lib/consentService.d.ts +11 -0
  92. package/dist/lib/consentService.d.ts.map +1 -0
  93. package/dist/lib/dpiaQuestions.d.ts +3 -0
  94. package/dist/lib/dpiaQuestions.d.ts.map +1 -0
  95. package/dist/lib/requestService.d.ts +10 -0
  96. package/dist/lib/requestService.d.ts.map +1 -0
  97. package/dist/lib/utils.d.ts +3 -0
  98. package/dist/lib/utils.d.ts.map +1 -0
  99. package/dist/styles.css +38 -0
  100. package/dist/types/consent.d.ts +57 -0
  101. package/dist/types/consent.d.ts.map +1 -0
  102. package/dist/types/index.d.ts +91 -0
  103. package/dist/types/index.d.ts.map +1 -0
  104. package/dist/unstyled.d.mts +22 -0
  105. package/dist/unstyled.d.ts +2 -0
  106. package/dist/unstyled.d.ts.map +1 -0
  107. package/dist/unstyled.js +2 -0
  108. package/dist/unstyled.js.map +1 -0
  109. package/dist/unstyled.mjs +2 -0
  110. package/dist/unstyled.mjs.map +1 -0
  111. package/package.json +33 -5
  112. package/CHANGELOG.md +0 -16
  113. package/CNAME +0 -1
  114. package/CONTRIBUTING.md +0 -87
  115. package/RELEASE-NOTES-v1.0.0.md +0 -140
  116. package/RELEASE-NOTES-v1.0.1.md +0 -69
  117. package/SECURITY.md +0 -21
  118. package/components.json +0 -21
  119. package/eslint.config.mjs +0 -16
  120. package/next-env.d.ts +0 -5
  121. package/next.config.js +0 -15
  122. package/next.config.ts +0 -62
  123. package/packages/ndpr-toolkit/README.md +0 -467
  124. package/packages/ndpr-toolkit/dist/components/breach/BreachNotificationManager.d.ts +0 -62
  125. package/packages/ndpr-toolkit/dist/components/breach/BreachReportForm.d.ts +0 -66
  126. package/packages/ndpr-toolkit/dist/components/breach/BreachRiskAssessment.d.ts +0 -50
  127. package/packages/ndpr-toolkit/dist/components/breach/RegulatoryReportGenerator.d.ts +0 -94
  128. package/packages/ndpr-toolkit/dist/components/consent/ConsentBanner.d.ts +0 -79
  129. package/packages/ndpr-toolkit/dist/components/consent/ConsentManager.d.ts +0 -73
  130. package/packages/ndpr-toolkit/dist/components/consent/ConsentStorage.d.ts +0 -41
  131. package/packages/ndpr-toolkit/dist/components/dpia/DPIAQuestionnaire.d.ts +0 -70
  132. package/packages/ndpr-toolkit/dist/components/dpia/DPIAReport.d.ts +0 -40
  133. package/packages/ndpr-toolkit/dist/components/dpia/StepIndicator.d.ts +0 -64
  134. package/packages/ndpr-toolkit/dist/components/dsr/DSRDashboard.d.ts +0 -58
  135. package/packages/ndpr-toolkit/dist/components/dsr/DSRRequestForm.d.ts +0 -74
  136. package/packages/ndpr-toolkit/dist/components/dsr/DSRTracker.d.ts +0 -56
  137. package/packages/ndpr-toolkit/dist/components/policy/PolicyExporter.d.ts +0 -65
  138. package/packages/ndpr-toolkit/dist/components/policy/PolicyGenerator.d.ts +0 -54
  139. package/packages/ndpr-toolkit/dist/components/policy/PolicyPreview.d.ts +0 -71
  140. package/packages/ndpr-toolkit/dist/hooks/useBreach.d.ts +0 -97
  141. package/packages/ndpr-toolkit/dist/hooks/useConsent.d.ts +0 -63
  142. package/packages/ndpr-toolkit/dist/hooks/useDPIA.d.ts +0 -92
  143. package/packages/ndpr-toolkit/dist/hooks/useDSR.d.ts +0 -72
  144. package/packages/ndpr-toolkit/dist/hooks/usePrivacyPolicy.d.ts +0 -87
  145. package/packages/ndpr-toolkit/dist/index.d.ts +0 -31
  146. package/packages/ndpr-toolkit/dist/index.esm.js +0 -2
  147. package/packages/ndpr-toolkit/dist/index.esm.js.map +0 -1
  148. package/packages/ndpr-toolkit/dist/index.js +0 -2
  149. package/packages/ndpr-toolkit/dist/index.js.map +0 -1
  150. package/packages/ndpr-toolkit/dist/setupTests.d.ts +0 -2
  151. package/packages/ndpr-toolkit/dist/types/breach.d.ts +0 -239
  152. package/packages/ndpr-toolkit/dist/types/consent.d.ts +0 -95
  153. package/packages/ndpr-toolkit/dist/types/dpia.d.ts +0 -196
  154. package/packages/ndpr-toolkit/dist/types/dsr.d.ts +0 -162
  155. package/packages/ndpr-toolkit/dist/types/privacy.d.ts +0 -204
  156. package/packages/ndpr-toolkit/dist/utils/breach.d.ts +0 -14
  157. package/packages/ndpr-toolkit/dist/utils/consent.d.ts +0 -10
  158. package/packages/ndpr-toolkit/dist/utils/dpia.d.ts +0 -12
  159. package/packages/ndpr-toolkit/dist/utils/dsr.d.ts +0 -11
  160. package/packages/ndpr-toolkit/dist/utils/privacy.d.ts +0 -12
  161. package/packages/ndpr-toolkit/package-lock.json +0 -8197
  162. package/packages/ndpr-toolkit/package.json +0 -71
  163. package/packages/ndpr-toolkit/rollup.config.js +0 -34
  164. package/packages/ndpr-toolkit/src/components/breach/BreachNotificationManager.tsx +0 -701
  165. package/packages/ndpr-toolkit/src/components/breach/BreachReportForm.tsx +0 -631
  166. package/packages/ndpr-toolkit/src/components/breach/BreachRiskAssessment.tsx +0 -569
  167. package/packages/ndpr-toolkit/src/components/breach/RegulatoryReportGenerator.tsx +0 -496
  168. package/packages/ndpr-toolkit/src/components/consent/ConsentBanner.tsx +0 -270
  169. package/packages/ndpr-toolkit/src/components/consent/ConsentManager.tsx +0 -217
  170. package/packages/ndpr-toolkit/src/components/consent/ConsentStorage.tsx +0 -206
  171. package/packages/ndpr-toolkit/src/components/dpia/DPIAQuestionnaire.tsx +0 -342
  172. package/packages/ndpr-toolkit/src/components/dpia/DPIAReport.tsx +0 -373
  173. package/packages/ndpr-toolkit/src/components/dpia/StepIndicator.tsx +0 -174
  174. package/packages/ndpr-toolkit/src/components/dsr/DSRDashboard.tsx +0 -717
  175. package/packages/ndpr-toolkit/src/components/dsr/DSRRequestForm.tsx +0 -476
  176. package/packages/ndpr-toolkit/src/components/dsr/DSRTracker.tsx +0 -620
  177. package/packages/ndpr-toolkit/src/components/policy/PolicyExporter.tsx +0 -541
  178. package/packages/ndpr-toolkit/src/components/policy/PolicyGenerator.tsx +0 -454
  179. package/packages/ndpr-toolkit/src/components/policy/PolicyPreview.tsx +0 -333
  180. package/packages/ndpr-toolkit/src/hooks/useBreach.ts +0 -409
  181. package/packages/ndpr-toolkit/src/hooks/useConsent.ts +0 -263
  182. package/packages/ndpr-toolkit/src/hooks/useDPIA.ts +0 -457
  183. package/packages/ndpr-toolkit/src/hooks/useDSR.ts +0 -236
  184. package/packages/ndpr-toolkit/src/hooks/usePrivacyPolicy.ts +0 -428
  185. package/packages/ndpr-toolkit/src/index.ts +0 -44
  186. package/packages/ndpr-toolkit/src/setupTests.ts +0 -5
  187. package/packages/ndpr-toolkit/src/types/breach.ts +0 -283
  188. package/packages/ndpr-toolkit/src/types/consent.ts +0 -111
  189. package/packages/ndpr-toolkit/src/types/dpia.ts +0 -236
  190. package/packages/ndpr-toolkit/src/types/dsr.ts +0 -192
  191. package/packages/ndpr-toolkit/src/types/index.ts +0 -42
  192. package/packages/ndpr-toolkit/src/types/privacy.ts +0 -246
  193. package/packages/ndpr-toolkit/src/utils/breach.ts +0 -122
  194. package/packages/ndpr-toolkit/src/utils/consent.ts +0 -51
  195. package/packages/ndpr-toolkit/src/utils/dpia.ts +0 -104
  196. package/packages/ndpr-toolkit/src/utils/dsr.ts +0 -77
  197. package/packages/ndpr-toolkit/src/utils/privacy.ts +0 -100
  198. package/packages/ndpr-toolkit/tsconfig.json +0 -23
  199. package/postcss.config.mjs +0 -5
  200. package/public/NDPR TOOLKIT.svg +0 -1
  201. package/public/favicon/android-chrome-192x192.png +0 -0
  202. package/public/favicon/android-chrome-512x512.png +0 -0
  203. package/public/favicon/apple-touch-icon.png +0 -0
  204. package/public/favicon/favicon-16x16.png +0 -0
  205. package/public/favicon/favicon-32x32.png +0 -0
  206. package/public/favicon/site.webmanifest +0 -1
  207. package/public/file.svg +0 -1
  208. package/public/globe.svg +0 -1
  209. package/public/ndpr-toolkit-logo.svg +0 -108
  210. package/public/next.svg +0 -1
  211. package/public/vercel.svg +0 -1
  212. package/public/window.svg +0 -1
  213. package/src/app/accessibility.css +0 -70
  214. package/src/app/favicon.ico +0 -0
  215. package/src/app/globals.css +0 -123
  216. package/src/app/layout.tsx +0 -37
  217. package/src/app/ndpr-demos/breach/page.tsx +0 -354
  218. package/src/app/ndpr-demos/consent/page.tsx +0 -366
  219. package/src/app/ndpr-demos/dpia/page.tsx +0 -495
  220. package/src/app/ndpr-demos/dsr/page.tsx +0 -280
  221. package/src/app/ndpr-demos/page.tsx +0 -73
  222. package/src/app/ndpr-demos/policy/page.tsx +0 -771
  223. package/src/app/page.tsx +0 -452
  224. package/src/components/ErrorBoundary.tsx +0 -90
  225. package/src/components/breach-notification/BreachNotificationForm.tsx +0 -479
  226. package/src/components/consent/ConsentBanner.tsx +0 -193
  227. package/src/components/data-subject-rights/DataSubjectRequestForm.tsx +0 -530
  228. package/src/components/dpia/DPIAQuestionnaire.tsx +0 -523
  229. package/src/components/privacy-policy/PolicyGenerator.tsx +0 -1062
  230. package/src/components/privacy-policy/data.ts +0 -98
  231. package/src/components/privacy-policy/shared/CheckboxField.tsx +0 -38
  232. package/src/components/privacy-policy/shared/CheckboxGroup.tsx +0 -85
  233. package/src/components/privacy-policy/shared/FormField.tsx +0 -79
  234. package/src/components/privacy-policy/shared/StepIndicator.tsx +0 -86
  235. package/src/components/privacy-policy/steps/CustomSectionsStep.tsx +0 -361
  236. package/src/components/privacy-policy/steps/DataCollectionStep.tsx +0 -231
  237. package/src/components/privacy-policy/steps/DataSharingStep.tsx +0 -418
  238. package/src/components/privacy-policy/steps/OrganizationInfoStep.tsx +0 -202
  239. package/src/components/privacy-policy/steps/PolicyPreviewStep.tsx +0 -226
  240. package/src/components/ui/Badge.tsx +0 -46
  241. package/src/components/ui/Button.tsx +0 -59
  242. package/src/components/ui/Card.tsx +0 -92
  243. package/src/components/ui/Checkbox.tsx +0 -57
  244. package/src/components/ui/FormField.tsx +0 -50
  245. package/src/components/ui/Input.tsx +0 -38
  246. package/src/components/ui/Loading.tsx +0 -201
  247. package/src/components/ui/Select.tsx +0 -42
  248. package/src/components/ui/TextArea.tsx +0 -38
  249. package/src/components/ui/label.tsx +0 -24
  250. package/src/components/ui/switch.tsx +0 -31
  251. package/src/components/ui/tabs.tsx +0 -66
  252. package/src/hooks/useConsent.ts +0 -70
  253. package/src/hooks/useLoadingState.ts +0 -85
  254. package/src/lib/consentService.ts +0 -144
  255. package/src/lib/dpiaQuestions.ts +0 -188
  256. package/src/lib/requestService.ts +0 -79
  257. package/src/lib/sanitize.ts +0 -108
  258. package/src/lib/storage.ts +0 -222
  259. package/src/lib/utils.ts +0 -6
  260. package/src/types/html-to-docx.d.ts +0 -30
  261. package/src/types/index.ts +0 -77
  262. package/tailwind.config.ts +0 -65
  263. package/tsconfig.json +0 -41
package/README.md CHANGED
@@ -1,7 +1,20 @@
1
1
  # Nigerian Data Protection Compliance Toolkit (NDPR-Toolkit)
2
2
 
3
+ [![npm version](https://img.shields.io/npm/v/@tantainnovative/ndpr-toolkit.svg)](https://www.npmjs.com/package/@tantainnovative/ndpr-toolkit)
4
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
+
3
6
  An open-source toolkit that helps Nigerian developers implement Nigeria Data Protection Regulation (NDPR) and Data Protection Act (DPA) compliant features in their web applications.
4
7
 
8
+ ## Installation
9
+
10
+ ```bash
11
+ npm install @tantainnovative/ndpr-toolkit
12
+ # or
13
+ yarn add @tantainnovative/ndpr-toolkit
14
+ # or
15
+ pnpm add @tantainnovative/ndpr-toolkit
16
+ ```
17
+
5
18
  ## Project Vision
6
19
 
7
20
  This toolkit simplifies regulatory compliance for startups and businesses operating in Nigeria by providing ready-to-use components and tools for implementing data protection requirements.
@@ -9,11 +22,43 @@ This toolkit simplifies regulatory compliance for startups and businesses operat
9
22
  ## Key Components
10
23
 
11
24
  ### 1. Consent Management System
12
- - User-friendly consent banners and modals with customizable styling
13
- - Granular consent options (necessary, functional, analytics, marketing)
14
- - Consent storage and retrieval mechanisms
15
- - Consent change history tracking
16
- - Time-stamped audit trails
25
+
26
+ **New in v1.0.7:** Complete flexibility with headless mode, custom UI support, and event-driven architecture.
27
+
28
+ #### Features:
29
+ - **Flexible Implementation**: Use pre-built UI, headless mode, or hybrid approach
30
+ - **Full Customization**: Override any component or behavior
31
+ - **Event-Driven**: Subscribe to consent changes with event listeners
32
+ - **TypeScript Support**: Fully typed with generic support for custom categories
33
+ - **Granular Consent**: Analytics, marketing, functional, and custom categories
34
+ - **Audit Trail**: Time-stamped consent history tracking
35
+
36
+ #### Quick Start:
37
+
38
+ ```tsx
39
+ import { ConsentManager } from '@tantainnovative/ndpr-toolkit';
40
+
41
+ // Basic usage with pre-built UI
42
+ function App() {
43
+ return (
44
+ <ConsentManager>
45
+ {/* Your app content */}
46
+ </ConsentManager>
47
+ );
48
+ }
49
+
50
+ // Headless mode with custom UI
51
+ function HeadlessApp() {
52
+ return (
53
+ <ConsentManager headless>
54
+ <YourCustomBanner />
55
+ <YourCustomSettings />
56
+ </ConsentManager>
57
+ );
58
+ }
59
+ ```
60
+
61
+ [See full consent management documentation](./docs/CONSENT_MANAGEMENT.md)
17
62
 
18
63
  ### 2. Data Subject Rights Portal
19
64
  - Pre-built UI components for handling:
@@ -46,21 +91,50 @@ This toolkit simplifies regulatory compliance for startups and businesses operat
46
91
  - Lightweight requestService storing requests in browser localStorage for demos
47
92
  - Helper methods to update request status and retrieve history
48
93
 
49
- ## Getting Started
94
+ ## Quick Start
95
+
96
+ ### Using the Toolkit in Your Project
97
+
98
+ ```tsx
99
+ import { ConsentManager, useConsent } from '@tantainnovative/ndpr-toolkit';
100
+
101
+ function App() {
102
+ return (
103
+ <ConsentManager onConsentChange={(consent) => console.log('Consent updated:', consent)}>
104
+ <YourApp />
105
+ </ConsentManager>
106
+ );
107
+ }
108
+
109
+ function YourApp() {
110
+ const { consentState, openSettings } = useConsent();
111
+
112
+ return (
113
+ <div>
114
+ {consentState.analytics && <AnalyticsScript />}
115
+ <button onClick={openSettings}>Manage Cookies</button>
116
+ </div>
117
+ );
118
+ }
119
+ ```
120
+
121
+ ### Development
50
122
 
51
- First, run the development server:
123
+ To contribute or run the demo locally:
52
124
 
53
125
  ```bash
54
- npm run dev
55
- # or
56
- yarn dev
57
- # or
126
+ # Clone the repository
127
+ git clone https://github.com/tantainnovative/ndpr-toolkit.git
128
+ cd ndpr-toolkit
129
+
130
+ # Install dependencies
131
+ pnpm install
132
+
133
+ # Run development server
58
134
  pnpm dev
59
- # or
60
- bun dev
61
135
  ```
62
136
 
63
- Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
137
+ Open [http://localhost:3000](http://localhost:3000) to see the demo.
64
138
 
65
139
  ## Deployment
66
140
 
@@ -0,0 +1,18 @@
1
+ import { BreachSeverity } from '@/types';
2
+ interface BreachNotificationFormProps {
3
+ onSubmit: (data: {
4
+ title: string;
5
+ description: string;
6
+ discoveryDate: string;
7
+ affectedDataSubjects: number;
8
+ dataCategories: string[];
9
+ severity: BreachSeverity;
10
+ mitigationSteps: string[];
11
+ reportedToAuthorities: boolean;
12
+ reportedToDataSubjects: boolean;
13
+ }) => void;
14
+ className?: string;
15
+ }
16
+ export default function BreachNotificationForm({ onSubmit, className, }: BreachNotificationFormProps): import("react/jsx-runtime").JSX.Element;
17
+ export {};
18
+ //# sourceMappingURL=BreachNotificationForm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BreachNotificationForm.d.ts","sourceRoot":"","sources":["../../../src/components/breach-notification/BreachNotificationForm.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAOzC,UAAU,2BAA2B;IACnC,QAAQ,EAAE,CAAC,IAAI,EAAE;QACf,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,aAAa,EAAE,MAAM,CAAC;QACtB,oBAAoB,EAAE,MAAM,CAAC;QAC7B,cAAc,EAAE,MAAM,EAAE,CAAC;QACzB,QAAQ,EAAE,cAAc,CAAC;QACzB,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,qBAAqB,EAAE,OAAO,CAAC;QAC/B,sBAAsB,EAAE,OAAO,CAAC;KACjC,KAAK,IAAI,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,EAC7C,QAAQ,EACR,SAAc,GACf,EAAE,2BAA2B,2CAkc7B"}
@@ -0,0 +1,30 @@
1
+ import React, { ReactNode } from 'react';
2
+ import { BannerProps } from './ConsentManager';
3
+ export interface ConsentBannerProps {
4
+ renderBanner?: (props: BannerProps) => ReactNode;
5
+ theme?: {
6
+ primaryColor?: string;
7
+ textColor?: string;
8
+ backgroundColor?: string;
9
+ };
10
+ position?: 'top' | 'bottom' | 'center';
11
+ animation?: 'slide' | 'fade' | 'none';
12
+ fullWidth?: boolean;
13
+ maxWidth?: string;
14
+ unstyled?: boolean;
15
+ className?: string;
16
+ children?: ReactNode;
17
+ }
18
+ interface ConsentBannerComponent extends React.FC<ConsentBannerProps> {
19
+ Message: React.FC<{
20
+ children: ReactNode;
21
+ className?: string;
22
+ }>;
23
+ Actions: React.FC<{
24
+ children: ReactNode;
25
+ className?: string;
26
+ }>;
27
+ }
28
+ declare const ConsentBanner: ConsentBannerComponent;
29
+ export { ConsentBanner };
30
+ //# sourceMappingURL=ConsentBanner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConsentBanner.d.ts","sourceRoot":"","sources":["../../../src/components/consent/ConsentBanner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIzC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,WAAW,kBAAkB;IACjC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,SAAS,CAAC;IACjD,KAAK,CAAC,EAAE;QACN,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACvC,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IACtC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,UAAU,sBAAuB,SAAQ,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC;IACnE,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;QAAE,QAAQ,EAAE,SAAS,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/D,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;QAAE,QAAQ,EAAE,SAAS,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChE;AAED,QAAA,MAAM,aAAa,EAAE,sBAmGpB,CAAC;AAWF,OAAO,EAAE,aAAa,EAAE,CAAC"}
@@ -0,0 +1,51 @@
1
+ import React, { ReactNode } from 'react';
2
+ import { ConsentProviderProps, ConsentCategories, ConsentActions } from '@/contexts/ConsentContext';
3
+ import { ConsentBanner } from './ConsentBanner';
4
+ import { ConsentSettings } from './ConsentSettings';
5
+ export interface BannerProps {
6
+ onAcceptAll: () => void;
7
+ onRejectAll: () => void;
8
+ onOpenSettings: () => void;
9
+ }
10
+ export interface SettingsProps {
11
+ consentState: ConsentCategories;
12
+ onUpdateConsent: (category: keyof ConsentCategories, value: boolean) => void;
13
+ onSave: () => void;
14
+ onClose: () => void;
15
+ }
16
+ export interface RenderProps {
17
+ consents: ConsentCategories;
18
+ actions: ConsentActions;
19
+ ui: {
20
+ showBanner: boolean;
21
+ showSettings: boolean;
22
+ openSettings: () => void;
23
+ closeSettings: () => void;
24
+ };
25
+ }
26
+ export interface ConsentManagerProps extends Omit<ConsentProviderProps, 'children'> {
27
+ children?: ReactNode | ((props: RenderProps) => ReactNode);
28
+ headless?: boolean;
29
+ renderBanner?: (props: BannerProps) => ReactNode;
30
+ renderSettings?: (props: SettingsProps) => ReactNode;
31
+ components?: {
32
+ Banner?: React.ComponentType<any>;
33
+ Settings?: React.ComponentType<any>;
34
+ };
35
+ theme?: {
36
+ primaryColor?: string;
37
+ textColor?: string;
38
+ backgroundColor?: string;
39
+ };
40
+ position?: 'top' | 'bottom' | 'center';
41
+ animation?: 'slide' | 'fade' | 'none';
42
+ fullWidth?: boolean;
43
+ maxWidth?: string;
44
+ }
45
+ interface ConsentManagerComponent extends React.FC<ConsentManagerProps> {
46
+ Banner: typeof ConsentBanner;
47
+ Settings: typeof ConsentSettings;
48
+ }
49
+ declare const ConsentManager: ConsentManagerComponent;
50
+ export { ConsentManager };
51
+ //# sourceMappingURL=ConsentManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConsentManager.d.ts","sourceRoot":"","sources":["../../../src/components/consent/ConsentManager.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAmB,oBAAoB,EAAE,iBAAiB,EAAE,cAAc,EAAc,MAAM,2BAA2B,CAAC;AACjI,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,cAAc,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,iBAAiB,CAAC;IAChC,eAAe,EAAE,CAAC,QAAQ,EAAE,MAAM,iBAAiB,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7E,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,OAAO,EAAE,cAAc,CAAC;IACxB,EAAE,EAAE;QACF,UAAU,EAAE,OAAO,CAAC;QACpB,YAAY,EAAE,OAAO,CAAC;QACtB,YAAY,EAAE,MAAM,IAAI,CAAC;QACzB,aAAa,EAAE,MAAM,IAAI,CAAC;KAC3B,CAAC;CACH;AAED,MAAM,WAAW,mBAAoB,SAAQ,IAAI,CAAC,oBAAoB,EAAE,UAAU,CAAC;IACjF,QAAQ,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,KAAK,EAAE,WAAW,KAAK,SAAS,CAAC,CAAC;IAC3D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,SAAS,CAAC;IACjD,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,SAAS,CAAC;IACrD,UAAU,CAAC,EAAE;QACX,MAAM,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAClC,QAAQ,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;KACrC,CAAC;IACF,KAAK,CAAC,EAAE;QACN,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACvC,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IACtC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,uBAAwB,SAAQ,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAAC;IACrE,MAAM,EAAE,OAAO,aAAa,CAAC;IAC7B,QAAQ,EAAE,OAAO,eAAe,CAAC;CAClC;AAsED,QAAA,MAAM,cAAc,EAAE,uBAkBrB,CAAC;AAMF,OAAO,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,15 @@
1
+ import React, { ReactNode } from 'react';
2
+ import { SettingsProps } from './ConsentManager';
3
+ export interface ConsentSettingsProps {
4
+ renderSettings?: (props: SettingsProps) => ReactNode;
5
+ theme?: {
6
+ primaryColor?: string;
7
+ textColor?: string;
8
+ backgroundColor?: string;
9
+ };
10
+ unstyled?: boolean;
11
+ className?: string;
12
+ children?: ReactNode;
13
+ }
14
+ export declare const ConsentSettings: React.FC<ConsentSettingsProps>;
15
+ //# sourceMappingURL=ConsentSettings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConsentSettings.d.ts","sourceRoot":"","sources":["../../../src/components/consent/ConsentSettings.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKzC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,WAAW,oBAAoB;IACnC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,SAAS,CAAC;IACrD,KAAK,CAAC,EAAE;QACN,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AA6BD,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAiF1D,CAAC"}
@@ -0,0 +1,7 @@
1
+ import React, { ReactNode } from 'react';
2
+ export interface UnstyledConsentBannerProps {
3
+ className?: string;
4
+ children?: ReactNode;
5
+ }
6
+ export declare const UnstyledConsentBanner: React.FC<UnstyledConsentBannerProps>;
7
+ //# sourceMappingURL=UnstyledConsentBanner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnstyledConsentBanner.d.ts","sourceRoot":"","sources":["../../../../src/components/consent/unstyled/UnstyledConsentBanner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGzC,MAAM,WAAW,0BAA0B;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CA+BtE,CAAC"}
@@ -0,0 +1,7 @@
1
+ import React, { ReactNode } from 'react';
2
+ export interface UnstyledConsentSettingsProps {
3
+ className?: string;
4
+ children?: ReactNode;
5
+ }
6
+ export declare const UnstyledConsentSettings: React.FC<UnstyledConsentSettingsProps>;
7
+ //# sourceMappingURL=UnstyledConsentSettings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnstyledConsentSettings.d.ts","sourceRoot":"","sources":["../../../../src/components/consent/unstyled/UnstyledConsentSettings.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGzC,MAAM,WAAW,4BAA4B;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AA6BD,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,4BAA4B,CAmD1E,CAAC"}
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ export interface UnstyledConsentToggleProps {
3
+ category: 'analytics' | 'marketing' | 'functional';
4
+ className?: string;
5
+ label?: string;
6
+ }
7
+ export declare const UnstyledConsentToggle: React.FC<UnstyledConsentToggleProps>;
8
+ //# sourceMappingURL=UnstyledConsentToggle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnstyledConsentToggle.d.ts","sourceRoot":"","sources":["../../../../src/components/consent/unstyled/UnstyledConsentToggle.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,WAAW,GAAG,WAAW,GAAG,YAAY,CAAC;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CAkBtE,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { UnstyledConsentBanner } from './UnstyledConsentBanner';
2
+ export { UnstyledConsentSettings } from './UnstyledConsentSettings';
3
+ export { UnstyledConsentToggle } from './UnstyledConsentToggle';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/consent/unstyled/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { RequestType } from '@/types';
2
+ interface DataSubjectRequestFormProps {
3
+ onSubmit: (data: {
4
+ requestType: RequestType;
5
+ name: string;
6
+ email: string;
7
+ details: string;
8
+ consent: boolean;
9
+ }) => void;
10
+ className?: string;
11
+ }
12
+ export default function DataSubjectRequestForm({ onSubmit, className, }: DataSubjectRequestFormProps): import("react/jsx-runtime").JSX.Element;
13
+ export {};
14
+ //# sourceMappingURL=DataSubjectRequestForm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataSubjectRequestForm.d.ts","sourceRoot":"","sources":["../../../src/components/data-subject-rights/DataSubjectRequestForm.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AA0DtC,UAAU,2BAA2B;IACnC,QAAQ,EAAE,CAAC,IAAI,EAAE;QACf,WAAW,EAAE,WAAW,CAAC;QACzB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,OAAO,CAAC;KAClB,KAAK,IAAI,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,EAC7C,QAAQ,EACR,SAAc,GACf,EAAE,2BAA2B,2CA+V7B"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ type DocLayoutProps = {
3
+ children: React.ReactNode;
4
+ title: string;
5
+ description?: string;
6
+ };
7
+ export declare function DocLayout({ children, title, description }: DocLayoutProps): import("react/jsx-runtime").JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=DocLayout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DocLayout.d.ts","sourceRoot":"","sources":["../../../src/components/docs/DocLayout.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAYxC,KAAK,cAAc,GAAG;IACpB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAuDF,wBAAgB,SAAS,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,cAAc,2CAuNzE"}
@@ -0,0 +1,2 @@
1
+ export * from './DocLayout';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/docs/index.ts"],"names":[],"mappings":"AACA,cAAc,aAAa,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { RiskAssessmentQuestion } from '@/types';
2
+ interface DPIAQuestionnaireProps {
3
+ questions: RiskAssessmentQuestion[];
4
+ onSubmit: (answers: Record<string, number>, projectName: string) => void;
5
+ className?: string;
6
+ }
7
+ export default function DPIAQuestionnaire({ questions, onSubmit, className, }: DPIAQuestionnaireProps): import("react/jsx-runtime").JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=DPIAQuestionnaire.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DPIAQuestionnaire.d.ts","sourceRoot":"","sources":["../../../src/components/dpia/DPIAQuestionnaire.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAQjD,UAAU,sBAAsB;IAC9B,SAAS,EAAE,sBAAsB,EAAE,CAAC;IACpC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EACxC,SAAS,EACT,QAAQ,EACR,SAAc,GACf,EAAE,sBAAsB,2CAyWxB"}
@@ -0,0 +1,12 @@
1
+ import { PolicySection } from '@/types';
2
+ interface PolicyGeneratorProps {
3
+ onGenerate: (policy: {
4
+ organizationName: string;
5
+ organizationContact: string;
6
+ sections: PolicySection[];
7
+ }) => void;
8
+ className?: string;
9
+ }
10
+ export default function PolicyGenerator({ onGenerate, className, }: PolicyGeneratorProps): import("react/jsx-runtime").JSX.Element;
11
+ export {};
12
+ //# sourceMappingURL=PolicyGenerator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PolicyGenerator.d.ts","sourceRoot":"","sources":["../../../src/components/privacy-policy/PolicyGenerator.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAgBxC,UAAU,oBAAoB;IAC5B,UAAU,EAAE,CAAC,MAAM,EAAE;QACnB,gBAAgB,EAAE,MAAM,CAAC;QACzB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,QAAQ,EAAE,aAAa,EAAE,CAAC;KAC3B,KAAK,IAAI,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EACtC,UAAU,EACV,SAAc,GACf,EAAE,oBAAoB,2CA0vBtB"}
@@ -0,0 +1,8 @@
1
+ export declare const defaultDataPurposes: string[];
2
+ export declare const defaultSecurityMeasures: string[];
3
+ export declare const dataSubjectCategories: string[];
4
+ export declare const trackingTechnologies: string[];
5
+ export declare const transferSafeguards: string[];
6
+ export declare const defaultCookieTypes: string[];
7
+ export declare const commonTransferCountries: string[];
8
+ //# sourceMappingURL=data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../src/components/privacy-policy/data.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,UAW/B,CAAC;AAEF,eAAO,MAAM,uBAAuB,UAmBnC,CAAC;AAEF,eAAO,MAAM,qBAAqB,UAejC,CAAC;AAEF,eAAO,MAAM,oBAAoB,UAchC,CAAC;AAEF,eAAO,MAAM,kBAAkB,UAW9B,CAAC;AAEF,eAAO,MAAM,kBAAkB,UAM9B,CAAC;AAEF,eAAO,MAAM,uBAAuB,UASnC,CAAC"}
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ interface CheckboxFieldProps {
3
+ id: string;
4
+ name: string;
5
+ label: string;
6
+ checked: boolean;
7
+ onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;
8
+ className?: string;
9
+ description?: string;
10
+ }
11
+ export default function CheckboxField({ id, name, label, checked, onChange, className, description, }: CheckboxFieldProps): import("react/jsx-runtime").JSX.Element;
12
+ export {};
13
+ //# sourceMappingURL=CheckboxField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckboxField.d.ts","sourceRoot":"","sources":["../../../../src/components/privacy-policy/shared/CheckboxField.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,UAAU,kBAAkB;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,EAAE,EACF,IAAI,EACJ,KAAK,EACL,OAAO,EACP,QAAQ,EACR,SAAc,EACd,WAAW,GACZ,EAAE,kBAAkB,2CAapB"}
@@ -0,0 +1,13 @@
1
+ interface CheckboxGroupProps {
2
+ title: string;
3
+ items: string[];
4
+ selectedItems: string[];
5
+ onToggleItem: (item: string) => void;
6
+ required?: boolean;
7
+ error?: string;
8
+ columns?: 1 | 2 | 3;
9
+ className?: string;
10
+ }
11
+ export default function CheckboxGroup({ title, items, selectedItems, onToggleItem, required, error, columns, className, }: CheckboxGroupProps): import("react/jsx-runtime").JSX.Element;
12
+ export {};
13
+ //# sourceMappingURL=CheckboxGroup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckboxGroup.d.ts","sourceRoot":"","sources":["../../../../src/components/privacy-policy/shared/CheckboxGroup.tsx"],"names":[],"mappings":"AAKA,UAAU,kBAAkB;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,KAAK,EACL,KAAK,EACL,aAAa,EACb,YAAY,EACZ,QAAgB,EAChB,KAAK,EACL,OAAW,EACX,SAAc,GACf,EAAE,kBAAkB,2CA2DpB"}
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ interface FormFieldProps {
3
+ id: string;
4
+ label: string;
5
+ required?: boolean;
6
+ error?: string;
7
+ children: React.ReactNode;
8
+ className?: string;
9
+ description?: string;
10
+ }
11
+ export default function FormField({ id, label, required, error, children, className, description, }: FormFieldProps): import("react/jsx-runtime").JSX.Element;
12
+ export {};
13
+ //# sourceMappingURL=FormField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormField.d.ts","sourceRoot":"","sources":["../../../../src/components/privacy-policy/shared/FormField.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,cAAc;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,EAAE,EACF,KAAK,EACL,QAAgB,EAChB,KAAK,EACL,QAAQ,EACR,SAAc,EACd,WAAW,GACZ,EAAE,cAAc,2CAuDhB"}
@@ -0,0 +1,8 @@
1
+ interface StepIndicatorProps {
2
+ currentStep: number;
3
+ totalSteps: number;
4
+ stepLabels: string[];
5
+ }
6
+ export default function StepIndicator({ currentStep, totalSteps, stepLabels }: StepIndicatorProps): import("react/jsx-runtime").JSX.Element;
7
+ export {};
8
+ //# sourceMappingURL=StepIndicator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StepIndicator.d.ts","sourceRoot":"","sources":["../../../../src/components/privacy-policy/shared/StepIndicator.tsx"],"names":[],"mappings":"AAIA,UAAU,kBAAkB;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,WAAW,EACX,UAAU,EACV,UAAU,EACX,EAAE,kBAAkB,2CAuEpB"}
@@ -0,0 +1,15 @@
1
+ interface CustomSectionsStepProps {
2
+ formData: {
3
+ customSections: {
4
+ title: string;
5
+ content: string;
6
+ }[];
7
+ industryCategory: string;
8
+ includeNDPRCompliance: boolean;
9
+ };
10
+ onAddCustomSection: (title: string, content: string) => void;
11
+ onRemoveCustomSection: (index: number) => void;
12
+ }
13
+ export default function CustomSectionsStep({ formData, onAddCustomSection, onRemoveCustomSection, }: CustomSectionsStepProps): import("react/jsx-runtime").JSX.Element;
14
+ export {};
15
+ //# sourceMappingURL=CustomSectionsStep.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CustomSectionsStep.d.ts","sourceRoot":"","sources":["../../../../src/components/privacy-policy/steps/CustomSectionsStep.tsx"],"names":[],"mappings":"AAUA,UAAU,uBAAuB;IAC/B,QAAQ,EAAE;QACR,cAAc,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QACrD,gBAAgB,EAAE,MAAM,CAAC;QACzB,qBAAqB,EAAE,OAAO,CAAC;KAChC,CAAC;IACF,kBAAkB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7D,qBAAqB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAChD;AAUD,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EACzC,QAAQ,EACR,kBAAkB,EAClB,qBAAqB,GACtB,EAAE,uBAAuB,2CA8SzB"}
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ interface DataCollectionStepProps {
3
+ formData: {
4
+ dataCollectionPurposes: string[];
5
+ dataRetentionPeriod: string;
6
+ securityMeasures: string[];
7
+ dataSubjects: string[];
8
+ dataCategories: string[];
9
+ legalBasisForProcessing: string[];
10
+ };
11
+ errors: Record<string, string>;
12
+ onChange: (e: React.ChangeEvent<HTMLSelectElement>) => void;
13
+ onToggleItem: (category: 'dataCollectionPurposes' | 'securityMeasures' | 'dataSubjects' | 'dataCategories' | 'legalBasisForProcessing', item: string) => void;
14
+ defaultDataPurposes: string[];
15
+ defaultSecurityMeasures: string[];
16
+ dataSubjectCategories: string[];
17
+ }
18
+ export default function DataCollectionStep({ formData, errors, onChange, onToggleItem, defaultDataPurposes, defaultSecurityMeasures, dataSubjectCategories, }: DataCollectionStepProps): import("react/jsx-runtime").JSX.Element;
19
+ export {};
20
+ //# sourceMappingURL=DataCollectionStep.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataCollectionStep.d.ts","sourceRoot":"","sources":["../../../../src/components/privacy-policy/steps/DataCollectionStep.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,UAAU,uBAAuB;IAC/B,QAAQ,EAAE;QACR,sBAAsB,EAAE,MAAM,EAAE,CAAC;QACjC,mBAAmB,EAAE,MAAM,CAAC;QAC5B,gBAAgB,EAAE,MAAM,EAAE,CAAC;QAC3B,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,cAAc,EAAE,MAAM,EAAE,CAAC;QACzB,uBAAuB,EAAE,MAAM,EAAE,CAAC;KACnC,CAAC;IACF,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAC5D,YAAY,EAAE,CACZ,QAAQ,EACN,wBAAwB,GACxB,kBAAkB,GAClB,cAAc,GACd,gBAAgB,GAChB,yBAAyB,EAC3B,IAAI,EAAE,MAAM,KACT,IAAI,CAAC;IACV,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC,qBAAqB,EAAE,MAAM,EAAE,CAAC;CACjC;AAED,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EACzC,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,YAAY,EACZ,mBAAmB,EACnB,uBAAuB,EACvB,qBAAqB,GACtB,EAAE,uBAAuB,2CA2LzB"}
@@ -0,0 +1,34 @@
1
+ import React from 'react';
2
+ interface DataSharingStepProps {
3
+ formData: {
4
+ thirdPartySharing: boolean;
5
+ thirdParties: string[];
6
+ thirdPartyCategories: string[];
7
+ thirdPartyPurposes: string[];
8
+ cookiesUsed: boolean;
9
+ cookieTypes: string[];
10
+ cookieLifespan: string;
11
+ trackingTechnologies: string[];
12
+ internationalTransfers: boolean;
13
+ transferCountries: string[];
14
+ transferSafeguards: string[];
15
+ processesChildrenData: boolean;
16
+ childrenDataDetails: string;
17
+ processesSpecialCategories: boolean;
18
+ specialCategoriesDetails: string;
19
+ dataBreachProcedures: string;
20
+ regulatoryCompliance: string[];
21
+ };
22
+ errors: Record<string, string>;
23
+ onChange: (e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement>) => void;
24
+ onToggleItem: (category: 'cookieTypes' | 'transferCountries' | 'trackingTechnologies' | 'transferSafeguards' | 'thirdPartyCategories' | 'thirdPartyPurposes' | 'regulatoryCompliance', item: string) => void;
25
+ onAddThirdParty: () => void;
26
+ onRemoveThirdParty: (index: number) => void;
27
+ defaultCookieTypes: string[];
28
+ commonTransferCountries: string[];
29
+ trackingTechnologies: string[];
30
+ transferSafeguards: string[];
31
+ }
32
+ export default function DataSharingStep({ formData, errors, onChange, onToggleItem, onAddThirdParty, onRemoveThirdParty, defaultCookieTypes, commonTransferCountries, trackingTechnologies, transferSafeguards, }: DataSharingStepProps): import("react/jsx-runtime").JSX.Element;
33
+ export {};
34
+ //# sourceMappingURL=DataSharingStep.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataSharingStep.d.ts","sourceRoot":"","sources":["../../../../src/components/privacy-policy/steps/DataSharingStep.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAiB,MAAM,OAAO,CAAC;AAStC,UAAU,oBAAoB;IAC5B,QAAQ,EAAE;QACR,iBAAiB,EAAE,OAAO,CAAC;QAC3B,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,oBAAoB,EAAE,MAAM,EAAE,CAAC;QAC/B,kBAAkB,EAAE,MAAM,EAAE,CAAC;QAC7B,WAAW,EAAE,OAAO,CAAC;QACrB,WAAW,EAAE,MAAM,EAAE,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC;QACvB,oBAAoB,EAAE,MAAM,EAAE,CAAC;QAC/B,sBAAsB,EAAE,OAAO,CAAC;QAChC,iBAAiB,EAAE,MAAM,EAAE,CAAC;QAC5B,kBAAkB,EAAE,MAAM,EAAE,CAAC;QAC7B,qBAAqB,EAAE,OAAO,CAAC;QAC/B,mBAAmB,EAAE,MAAM,CAAC;QAC5B,0BAA0B,EAAE,OAAO,CAAC;QACpC,wBAAwB,EAAE,MAAM,CAAC;QACjC,oBAAoB,EAAE,MAAM,CAAC;QAC7B,oBAAoB,EAAE,MAAM,EAAE,CAAC;KAChC,CAAC;IACF,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,gBAAgB,GAAG,mBAAmB,GAAG,iBAAiB,CAAC,KAAK,IAAI,CAAC;IACrG,YAAY,EAAE,CACZ,QAAQ,EACN,aAAa,GACb,mBAAmB,GACnB,sBAAsB,GACtB,oBAAoB,GACpB,sBAAsB,GACtB,oBAAoB,GACpB,sBAAsB,EACxB,IAAI,EAAE,MAAM,KACT,IAAI,CAAC;IACV,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,kBAAkB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,kBAAkB,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EACtC,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,EACpB,kBAAkB,GACnB,EAAE,oBAAoB,2CAkWtB"}
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ interface OrganizationInfoStepProps {
3
+ formData: {
4
+ organizationName: string;
5
+ organizationContact: string;
6
+ organizationWebsite: string;
7
+ organizationAddress: string;
8
+ hasDPO: boolean;
9
+ dpoContact: string;
10
+ includeNDPRCompliance: boolean;
11
+ };
12
+ errors: Record<string, string>;
13
+ onChange: (e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => void;
14
+ }
15
+ export default function OrganizationInfoStep({ formData, errors, onChange, }: OrganizationInfoStepProps): import("react/jsx-runtime").JSX.Element;
16
+ export {};
17
+ //# sourceMappingURL=OrganizationInfoStep.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OrganizationInfoStep.d.ts","sourceRoot":"","sources":["../../../../src/components/privacy-policy/steps/OrganizationInfoStep.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAS1B,UAAU,yBAAyB;IACjC,QAAQ,EAAE;QACR,gBAAgB,EAAE,MAAM,CAAC;QACzB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,mBAAmB,EAAE,MAAM,CAAC;QAC5B,mBAAmB,EAAE,MAAM,CAAC;QAC5B,MAAM,EAAE,OAAO,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,qBAAqB,EAAE,OAAO,CAAC;KAChC,CAAC;IACF,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,gBAAgB,GAAG,mBAAmB,CAAC,KAAK,IAAI,CAAC;CAClF;AAED,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAC3C,QAAQ,EACR,MAAM,EACN,QAAQ,GACT,EAAE,yBAAyB,2CA4K3B"}
@@ -0,0 +1,30 @@
1
+ import React from 'react';
2
+ interface PolicyPreviewStepProps {
3
+ formData: {
4
+ organizationName: string;
5
+ organizationContact: string;
6
+ organizationWebsite: string;
7
+ organizationAddress: string;
8
+ dataCollectionPurposes: string[];
9
+ dataRetentionPeriod: string;
10
+ thirdPartySharing: boolean;
11
+ thirdParties: string[];
12
+ securityMeasures: string[];
13
+ cookiesUsed: boolean;
14
+ cookieTypes: string[];
15
+ internationalTransfers: boolean;
16
+ transferCountries: string[];
17
+ customSections: {
18
+ title: string;
19
+ content: string;
20
+ }[];
21
+ hasDPO: boolean;
22
+ dpoContact: string;
23
+ includeNDPRCompliance: boolean;
24
+ policyEffectiveDate: string;
25
+ };
26
+ previewRef: React.RefObject<HTMLDivElement | null>;
27
+ }
28
+ export default function PolicyPreviewStep({ formData, previewRef, }: PolicyPreviewStepProps): import("react/jsx-runtime").JSX.Element;
29
+ export {};
30
+ //# sourceMappingURL=PolicyPreviewStep.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PolicyPreviewStep.d.ts","sourceRoot":"","sources":["../../../../src/components/privacy-policy/steps/PolicyPreviewStep.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,sBAAsB;IAC9B,QAAQ,EAAE;QACR,gBAAgB,EAAE,MAAM,CAAC;QACzB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,mBAAmB,EAAE,MAAM,CAAC;QAC5B,mBAAmB,EAAE,MAAM,CAAC;QAC5B,sBAAsB,EAAE,MAAM,EAAE,CAAC;QACjC,mBAAmB,EAAE,MAAM,CAAC;QAC5B,iBAAiB,EAAE,OAAO,CAAC;QAC3B,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,gBAAgB,EAAE,MAAM,EAAE,CAAC;QAC3B,WAAW,EAAE,OAAO,CAAC;QACrB,WAAW,EAAE,MAAM,EAAE,CAAC;QACtB,sBAAsB,EAAE,OAAO,CAAC;QAChC,iBAAiB,EAAE,MAAM,EAAE,CAAC;QAC5B,cAAc,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QACrD,MAAM,EAAE,OAAO,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,qBAAqB,EAAE,OAAO,CAAC;QAC/B,mBAAmB,EAAE,MAAM,CAAC;KAC7B,CAAC;IACF,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;CACpD;AAED,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EACxC,QAAQ,EACR,UAAU,GACX,EAAE,sBAAsB,2CA2IxB"}