@tantainnovative/ndpr-toolkit 1.0.3 → 1.0.4

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 (156) hide show
  1. package/next-env.d.ts +5 -0
  2. package/package.json +1 -1
  3. package/.claude/settings.local.json +0 -20
  4. package/.eslintrc.json +0 -10
  5. package/.github/workflows/ci.yml +0 -36
  6. package/.github/workflows/nextjs.yml +0 -104
  7. package/.husky/commit-msg +0 -4
  8. package/.husky/pre-commit +0 -4
  9. package/.lintstagedrc.js +0 -4
  10. package/.nvmrc +0 -1
  11. package/.versionrc +0 -17
  12. package/CLAUDE.md +0 -90
  13. package/commitlint.config.js +0 -36
  14. package/eslint.config.mjs +0 -16
  15. package/jest.config.js +0 -31
  16. package/jest.setup.js +0 -15
  17. package/next.config.js +0 -15
  18. package/next.config.ts +0 -62
  19. package/packages/ndpr-toolkit/README.md +0 -467
  20. package/packages/ndpr-toolkit/jest.config.js +0 -23
  21. package/packages/ndpr-toolkit/package-lock.json +0 -8197
  22. package/packages/ndpr-toolkit/package.json +0 -71
  23. package/packages/ndpr-toolkit/rollup.config.js +0 -34
  24. package/packages/ndpr-toolkit/src/__tests__/components/consent/ConsentBanner.test.tsx +0 -119
  25. package/packages/ndpr-toolkit/src/__tests__/components/consent/ConsentManager.test.tsx +0 -122
  26. package/packages/ndpr-toolkit/src/__tests__/components/consent/ConsentStorage.test.tsx +0 -270
  27. package/packages/ndpr-toolkit/src/__tests__/components/dsr/DSRDashboard.test.tsx +0 -199
  28. package/packages/ndpr-toolkit/src/__tests__/components/dsr/DSRRequestForm.test.tsx +0 -224
  29. package/packages/ndpr-toolkit/src/__tests__/components/dsr/DSRTracker.test.tsx +0 -104
  30. package/packages/ndpr-toolkit/src/__tests__/hooks/useConsent.test.tsx +0 -161
  31. package/packages/ndpr-toolkit/src/__tests__/hooks/useDSR.test.tsx +0 -330
  32. package/packages/ndpr-toolkit/src/__tests__/utils/breach.test.ts +0 -149
  33. package/packages/ndpr-toolkit/src/__tests__/utils/consent.test.ts +0 -88
  34. package/packages/ndpr-toolkit/src/__tests__/utils/dpia.test.ts +0 -160
  35. package/packages/ndpr-toolkit/src/__tests__/utils/dsr.test.ts +0 -110
  36. package/packages/ndpr-toolkit/src/__tests__/utils/privacy.test.ts +0 -97
  37. package/packages/ndpr-toolkit/src/components/breach/BreachNotificationManager.tsx +0 -701
  38. package/packages/ndpr-toolkit/src/components/breach/BreachReportForm.tsx +0 -631
  39. package/packages/ndpr-toolkit/src/components/breach/BreachRiskAssessment.tsx +0 -569
  40. package/packages/ndpr-toolkit/src/components/breach/RegulatoryReportGenerator.tsx +0 -496
  41. package/packages/ndpr-toolkit/src/components/consent/ConsentBanner.tsx +0 -270
  42. package/packages/ndpr-toolkit/src/components/consent/ConsentManager.tsx +0 -217
  43. package/packages/ndpr-toolkit/src/components/consent/ConsentStorage.tsx +0 -206
  44. package/packages/ndpr-toolkit/src/components/dpia/DPIAQuestionnaire.tsx +0 -342
  45. package/packages/ndpr-toolkit/src/components/dpia/DPIAReport.tsx +0 -373
  46. package/packages/ndpr-toolkit/src/components/dpia/StepIndicator.tsx +0 -174
  47. package/packages/ndpr-toolkit/src/components/dsr/DSRDashboard.tsx +0 -717
  48. package/packages/ndpr-toolkit/src/components/dsr/DSRRequestForm.tsx +0 -476
  49. package/packages/ndpr-toolkit/src/components/dsr/DSRTracker.tsx +0 -620
  50. package/packages/ndpr-toolkit/src/components/policy/PolicyExporter.tsx +0 -541
  51. package/packages/ndpr-toolkit/src/components/policy/PolicyGenerator.tsx +0 -454
  52. package/packages/ndpr-toolkit/src/components/policy/PolicyPreview.tsx +0 -333
  53. package/packages/ndpr-toolkit/src/hooks/useBreach.ts +0 -409
  54. package/packages/ndpr-toolkit/src/hooks/useConsent.ts +0 -263
  55. package/packages/ndpr-toolkit/src/hooks/useDPIA.ts +0 -457
  56. package/packages/ndpr-toolkit/src/hooks/useDSR.ts +0 -236
  57. package/packages/ndpr-toolkit/src/hooks/usePrivacyPolicy.ts +0 -428
  58. package/packages/ndpr-toolkit/src/index.ts +0 -44
  59. package/packages/ndpr-toolkit/src/setupTests.ts +0 -5
  60. package/packages/ndpr-toolkit/src/types/breach.ts +0 -283
  61. package/packages/ndpr-toolkit/src/types/consent.ts +0 -111
  62. package/packages/ndpr-toolkit/src/types/dpia.ts +0 -236
  63. package/packages/ndpr-toolkit/src/types/dsr.ts +0 -192
  64. package/packages/ndpr-toolkit/src/types/index.ts +0 -42
  65. package/packages/ndpr-toolkit/src/types/privacy.ts +0 -246
  66. package/packages/ndpr-toolkit/src/utils/breach.ts +0 -122
  67. package/packages/ndpr-toolkit/src/utils/consent.ts +0 -51
  68. package/packages/ndpr-toolkit/src/utils/dpia.ts +0 -104
  69. package/packages/ndpr-toolkit/src/utils/dsr.ts +0 -77
  70. package/packages/ndpr-toolkit/src/utils/privacy.ts +0 -100
  71. package/packages/ndpr-toolkit/tsconfig.json +0 -23
  72. package/postcss.config.mjs +0 -5
  73. package/src/__tests__/example.test.ts +0 -13
  74. package/src/__tests__/requestService.test.ts +0 -57
  75. package/src/app/accessibility.css +0 -70
  76. package/src/app/docs/components/DocLayout.tsx +0 -267
  77. package/src/app/docs/components/breach-notification/page.tsx +0 -797
  78. package/src/app/docs/components/consent-management/page.tsx +0 -576
  79. package/src/app/docs/components/data-subject-rights/page.tsx +0 -511
  80. package/src/app/docs/components/dpia-questionnaire/layout.tsx +0 -15
  81. package/src/app/docs/components/dpia-questionnaire/metadata.ts +0 -31
  82. package/src/app/docs/components/dpia-questionnaire/page.tsx +0 -666
  83. package/src/app/docs/components/hooks/page.tsx +0 -305
  84. package/src/app/docs/components/page.tsx +0 -84
  85. package/src/app/docs/components/privacy-policy-generator/page.tsx +0 -634
  86. package/src/app/docs/guides/breach-notification-process/components/BestPractices.tsx +0 -123
  87. package/src/app/docs/guides/breach-notification-process/components/ImplementationSteps.tsx +0 -328
  88. package/src/app/docs/guides/breach-notification-process/components/Introduction.tsx +0 -28
  89. package/src/app/docs/guides/breach-notification-process/components/NotificationTimeline.tsx +0 -91
  90. package/src/app/docs/guides/breach-notification-process/components/Resources.tsx +0 -118
  91. package/src/app/docs/guides/breach-notification-process/page.tsx +0 -39
  92. package/src/app/docs/guides/conducting-dpia/page.tsx +0 -593
  93. package/src/app/docs/guides/data-subject-requests/page.tsx +0 -666
  94. package/src/app/docs/guides/managing-consent/page.tsx +0 -738
  95. package/src/app/docs/guides/ndpr-compliance-checklist/components/ComplianceChecklist.tsx +0 -296
  96. package/src/app/docs/guides/ndpr-compliance-checklist/components/ImplementationTools.tsx +0 -145
  97. package/src/app/docs/guides/ndpr-compliance-checklist/components/Introduction.tsx +0 -33
  98. package/src/app/docs/guides/ndpr-compliance-checklist/components/KeyRequirements.tsx +0 -99
  99. package/src/app/docs/guides/ndpr-compliance-checklist/components/Resources.tsx +0 -159
  100. package/src/app/docs/guides/ndpr-compliance-checklist/page.tsx +0 -38
  101. package/src/app/docs/guides/page.tsx +0 -67
  102. package/src/app/docs/layout.tsx +0 -15
  103. package/src/app/docs/metadata.ts +0 -31
  104. package/src/app/docs/page.tsx +0 -572
  105. package/src/app/favicon.ico +0 -0
  106. package/src/app/globals.css +0 -123
  107. package/src/app/layout.tsx +0 -37
  108. package/src/app/ndpr-demos/breach/page.tsx +0 -354
  109. package/src/app/ndpr-demos/consent/page.tsx +0 -366
  110. package/src/app/ndpr-demos/dpia/page.tsx +0 -495
  111. package/src/app/ndpr-demos/dsr/page.tsx +0 -280
  112. package/src/app/ndpr-demos/page.tsx +0 -73
  113. package/src/app/ndpr-demos/policy/page.tsx +0 -771
  114. package/src/app/page.tsx +0 -452
  115. package/src/components/ErrorBoundary.tsx +0 -90
  116. package/src/components/breach-notification/BreachNotificationForm.tsx +0 -479
  117. package/src/components/consent/ConsentBanner.tsx +0 -159
  118. package/src/components/data-subject-rights/DataSubjectRequestForm.tsx +0 -419
  119. package/src/components/docs/DocLayout.tsx +0 -289
  120. package/src/components/docs/index.ts +0 -2
  121. package/src/components/dpia/DPIAQuestionnaire.tsx +0 -483
  122. package/src/components/privacy-policy/PolicyGenerator.tsx +0 -1062
  123. package/src/components/privacy-policy/data.ts +0 -98
  124. package/src/components/privacy-policy/shared/CheckboxField.tsx +0 -38
  125. package/src/components/privacy-policy/shared/CheckboxGroup.tsx +0 -85
  126. package/src/components/privacy-policy/shared/FormField.tsx +0 -79
  127. package/src/components/privacy-policy/shared/StepIndicator.tsx +0 -86
  128. package/src/components/privacy-policy/steps/CustomSectionsStep.tsx +0 -335
  129. package/src/components/privacy-policy/steps/DataCollectionStep.tsx +0 -231
  130. package/src/components/privacy-policy/steps/DataSharingStep.tsx +0 -418
  131. package/src/components/privacy-policy/steps/OrganizationInfoStep.tsx +0 -202
  132. package/src/components/privacy-policy/steps/PolicyPreviewStep.tsx +0 -172
  133. package/src/components/ui/Badge.tsx +0 -46
  134. package/src/components/ui/Button.tsx +0 -59
  135. package/src/components/ui/Card.tsx +0 -92
  136. package/src/components/ui/Checkbox.tsx +0 -57
  137. package/src/components/ui/FormField.tsx +0 -50
  138. package/src/components/ui/Input.tsx +0 -38
  139. package/src/components/ui/Loading.tsx +0 -201
  140. package/src/components/ui/Select.tsx +0 -42
  141. package/src/components/ui/TextArea.tsx +0 -38
  142. package/src/components/ui/label.tsx +0 -24
  143. package/src/components/ui/switch.tsx +0 -31
  144. package/src/components/ui/tabs.tsx +0 -66
  145. package/src/hooks/useConsent.ts +0 -64
  146. package/src/hooks/useLoadingState.ts +0 -85
  147. package/src/lib/consentService.ts +0 -137
  148. package/src/lib/dpiaQuestions.ts +0 -148
  149. package/src/lib/requestService.ts +0 -75
  150. package/src/lib/sanitize.ts +0 -108
  151. package/src/lib/storage.ts +0 -222
  152. package/src/lib/utils.ts +0 -6
  153. package/src/types/html-to-docx.d.ts +0 -30
  154. package/src/types/index.ts +0 -72
  155. package/tailwind.config.ts +0 -65
  156. package/tsconfig.json +0 -41
@@ -1,296 +0,0 @@
1
- 'use client';
2
-
3
- export default function ComplianceChecklist() {
4
- return (
5
- <section id="compliance-checklist" className="mb-8">
6
- <h2 className="text-2xl font-bold mb-4">NDPR Compliance Checklist</h2>
7
- <p className="mb-4">
8
- Use this comprehensive checklist to assess your organization&apos;s compliance with the NDPR and identify areas that need attention.
9
- The checklist is organized by key compliance areas, with specific action items for each area.
10
- </p>
11
-
12
- <div className="space-y-8">
13
- <div>
14
- <h3 className="text-xl font-bold mb-3 flex items-center">
15
- <span className="inline-flex items-center justify-center w-8 h-8 rounded-full bg-blue-100 text-blue-800 dark:bg-blue-900 dark:text-blue-200 mr-2">1</span>
16
- Data Governance and Accountability
17
- </h3>
18
- <div className="bg-white dark:bg-gray-800 p-6 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700">
19
- <ul className="space-y-2">
20
- <li className="flex items-start">
21
- <span className="inline-flex items-center justify-center w-6 h-6 rounded border border-gray-300 dark:border-gray-600 mr-2 flex-shrink-0 mt-0.5">□</span>
22
- <span>Appoint a Data Protection Officer (DPO) or designate someone responsible for data protection</span>
23
- </li>
24
- <li className="flex items-start">
25
- <span className="inline-flex items-center justify-center w-6 h-6 rounded border border-gray-300 dark:border-gray-600 mr-2 flex-shrink-0 mt-0.5">□</span>
26
- <span>Develop and implement a data protection policy</span>
27
- </li>
28
- <li className="flex items-start">
29
- <span className="inline-flex items-center justify-center w-6 h-6 rounded border border-gray-300 dark:border-gray-600 mr-2 flex-shrink-0 mt-0.5">□</span>
30
- <span>Create and maintain records of processing activities</span>
31
- </li>
32
- <li className="flex items-start">
33
- <span className="inline-flex items-center justify-center w-6 h-6 rounded border border-gray-300 dark:border-gray-600 mr-2 flex-shrink-0 mt-0.5">□</span>
34
- <span>Conduct regular data protection training for staff</span>
35
- </li>
36
- <li className="flex items-start">
37
- <span className="inline-flex items-center justify-center w-6 h-6 rounded border border-gray-300 dark:border-gray-600 mr-2 flex-shrink-0 mt-0.5">□</span>
38
- <span>Implement a data protection by design and by default approach</span>
39
- </li>
40
- <li className="flex items-start">
41
- <span className="inline-flex items-center justify-center w-6 h-6 rounded border border-gray-300 dark:border-gray-600 mr-2 flex-shrink-0 mt-0.5">□</span>
42
- <span>Establish a process for conducting Data Protection Impact Assessments (DPIAs)</span>
43
- </li>
44
- </ul>
45
- </div>
46
- </div>
47
-
48
- <div>
49
- <h3 className="text-xl font-bold mb-3 flex items-center">
50
- <span className="inline-flex items-center justify-center w-8 h-8 rounded-full bg-blue-100 text-blue-800 dark:bg-blue-900 dark:text-blue-200 mr-2">2</span>
51
- Lawful Basis for Processing
52
- </h3>
53
- <div className="bg-white dark:bg-gray-800 p-6 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700">
54
- <ul className="space-y-2">
55
- <li className="flex items-start">
56
- <span className="inline-flex items-center justify-center w-6 h-6 rounded border border-gray-300 dark:border-gray-600 mr-2 flex-shrink-0 mt-0.5">□</span>
57
- <span>Identify and document the lawful basis for each processing activity</span>
58
- </li>
59
- <li className="flex items-start">
60
- <span className="inline-flex items-center justify-center w-6 h-6 rounded border border-gray-300 dark:border-gray-600 mr-2 flex-shrink-0 mt-0.5">□</span>
61
- <span>Implement a consent management system for processing based on consent</span>
62
- </li>
63
- <li className="flex items-start">
64
- <span className="inline-flex items-center justify-center w-6 h-6 rounded border border-gray-300 dark:border-gray-600 mr-2 flex-shrink-0 mt-0.5">□</span>
65
- <span>Ensure consent is freely given, specific, informed, and unambiguous</span>
66
- </li>
67
- <li className="flex items-start">
68
- <span className="inline-flex items-center justify-center w-6 h-6 rounded border border-gray-300 dark:border-gray-600 mr-2 flex-shrink-0 mt-0.5">□</span>
69
- <span>Maintain records of consent, including when and how it was obtained</span>
70
- </li>
71
- <li className="flex items-start">
72
- <span className="inline-flex items-center justify-center w-6 h-6 rounded border border-gray-300 dark:border-gray-600 mr-2 flex-shrink-0 mt-0.5">□</span>
73
- <span>Implement a process for handling consent withdrawal</span>
74
- </li>
75
- </ul>
76
- </div>
77
- </div>
78
-
79
- <div>
80
- <h3 className="text-xl font-bold mb-3 flex items-center">
81
- <span className="inline-flex items-center justify-center w-8 h-8 rounded-full bg-blue-100 text-blue-800 dark:bg-blue-900 dark:text-blue-200 mr-2">3</span>
82
- Privacy Notices and Transparency
83
- </h3>
84
- <div className="bg-white dark:bg-gray-800 p-6 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700">
85
- <ul className="space-y-2">
86
- <li className="flex items-start">
87
- <span className="inline-flex items-center justify-center w-6 h-6 rounded border border-gray-300 dark:border-gray-600 mr-2 flex-shrink-0 mt-0.5">□</span>
88
- <span>Develop a clear and comprehensive privacy policy</span>
89
- </li>
90
- <li className="flex items-start">
91
- <span className="inline-flex items-center justify-center w-6 h-6 rounded border border-gray-300 dark:border-gray-600 mr-2 flex-shrink-0 mt-0.5">□</span>
92
- <span>Ensure the privacy policy is easily accessible on your website</span>
93
- </li>
94
- <li className="flex items-start">
95
- <span className="inline-flex items-center justify-center w-6 h-6 rounded border border-gray-300 dark:border-gray-600 mr-2 flex-shrink-0 mt-0.5">□</span>
96
- <span>Include all required information in the privacy policy (purposes of processing, categories of data, recipients, retention periods, data subject rights, etc.)</span>
97
- </li>
98
- <li className="flex items-start">
99
- <span className="inline-flex items-center justify-center w-6 h-6 rounded border border-gray-300 dark:border-gray-600 mr-2 flex-shrink-0 mt-0.5">□</span>
100
- <span>Provide privacy notices at the point of data collection</span>
101
- </li>
102
- <li className="flex items-start">
103
- <span className="inline-flex items-center justify-center w-6 h-6 rounded border border-gray-300 dark:border-gray-600 mr-2 flex-shrink-0 mt-0.5">□</span>
104
- <span>Use clear, plain language that is easy for data subjects to understand</span>
105
- </li>
106
- <li className="flex items-start">
107
- <span className="inline-flex items-center justify-center w-6 h-6 rounded border border-gray-300 dark:border-gray-600 mr-2 flex-shrink-0 mt-0.5">□</span>
108
- <span>Regularly review and update privacy notices</span>
109
- </li>
110
- </ul>
111
- </div>
112
- </div>
113
-
114
- <div>
115
- <h3 className="text-xl font-bold mb-3 flex items-center">
116
- <span className="inline-flex items-center justify-center w-8 h-8 rounded-full bg-blue-100 text-blue-800 dark:bg-blue-900 dark:text-blue-200 mr-2">4</span>
117
- Data Subject Rights
118
- </h3>
119
- <div className="bg-white dark:bg-gray-800 p-6 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700">
120
- <ul className="space-y-2">
121
- <li className="flex items-start">
122
- <span className="inline-flex items-center justify-center w-6 h-6 rounded border border-gray-300 dark:border-gray-600 mr-2 flex-shrink-0 mt-0.5">□</span>
123
- <span>Implement a process for handling data subject access requests</span>
124
- </li>
125
- <li className="flex items-start">
126
- <span className="inline-flex items-center justify-center w-6 h-6 rounded border border-gray-300 dark:border-gray-600 mr-2 flex-shrink-0 mt-0.5">□</span>
127
- <span>Establish procedures for rectifying inaccurate personal data</span>
128
- </li>
129
- <li className="flex items-start">
130
- <span className="inline-flex items-center justify-center w-6 h-6 rounded border border-gray-300 dark:border-gray-600 mr-2 flex-shrink-0 mt-0.5">□</span>
131
- <span>Develop a process for erasing personal data when requested</span>
132
- </li>
133
- <li className="flex items-start">
134
- <span className="inline-flex items-center justify-center w-6 h-6 rounded border border-gray-300 dark:border-gray-600 mr-2 flex-shrink-0 mt-0.5">□</span>
135
- <span>Implement mechanisms for restricting processing when requested</span>
136
- </li>
137
- <li className="flex items-start">
138
- <span className="inline-flex items-center justify-center w-6 h-6 rounded border border-gray-300 dark:border-gray-600 mr-2 flex-shrink-0 mt-0.5">□</span>
139
- <span>Enable data portability for personal data provided by the data subject</span>
140
- </li>
141
- <li className="flex items-start">
142
- <span className="inline-flex items-center justify-center w-6 h-6 rounded border border-gray-300 dark:border-gray-600 mr-2 flex-shrink-0 mt-0.5">□</span>
143
- <span>Establish a process for handling objections to processing</span>
144
- </li>
145
- <li className="flex items-start">
146
- <span className="inline-flex items-center justify-center w-6 h-6 rounded border border-gray-300 dark:border-gray-600 mr-2 flex-shrink-0 mt-0.5">□</span>
147
- <span>Train staff on how to recognize and handle data subject requests</span>
148
- </li>
149
- </ul>
150
- </div>
151
- </div>
152
-
153
- <div>
154
- <h3 className="text-xl font-bold mb-3 flex items-center">
155
- <span className="inline-flex items-center justify-center w-8 h-8 rounded-full bg-blue-100 text-blue-800 dark:bg-blue-900 dark:text-blue-200 mr-2">5</span>
156
- Data Security
157
- </h3>
158
- <div className="bg-white dark:bg-gray-800 p-6 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700">
159
- <ul className="space-y-2">
160
- <li className="flex items-start">
161
- <span className="inline-flex items-center justify-center w-6 h-6 rounded border border-gray-300 dark:border-gray-600 mr-2 flex-shrink-0 mt-0.5">□</span>
162
- <span>Implement appropriate technical measures to protect personal data (encryption, access controls, etc.)</span>
163
- </li>
164
- <li className="flex items-start">
165
- <span className="inline-flex items-center justify-center w-6 h-6 rounded border border-gray-300 dark:border-gray-600 mr-2 flex-shrink-0 mt-0.5">□</span>
166
- <span>Implement appropriate organizational measures (policies, procedures, training)</span>
167
- </li>
168
- <li className="flex items-start">
169
- <span className="inline-flex items-center justify-center w-6 h-6 rounded border border-gray-300 dark:border-gray-600 mr-2 flex-shrink-0 mt-0.5">□</span>
170
- <span>Regularly test, assess, and evaluate the effectiveness of security measures</span>
171
- </li>
172
- <li className="flex items-start">
173
- <span className="inline-flex items-center justify-center w-6 h-6 rounded border border-gray-300 dark:border-gray-600 mr-2 flex-shrink-0 mt-0.5">□</span>
174
- <span>Implement a process for regularly backing up personal data</span>
175
- </li>
176
- <li className="flex items-start">
177
- <span className="inline-flex items-center justify-center w-6 h-6 rounded border border-gray-300 dark:border-gray-600 mr-2 flex-shrink-0 mt-0.5">□</span>
178
- <span>Establish procedures for restoring personal data in the event of a physical or technical incident</span>
179
- </li>
180
- </ul>
181
- </div>
182
- </div>
183
-
184
- <div>
185
- <h3 className="text-xl font-bold mb-3 flex items-center">
186
- <span className="inline-flex items-center justify-center w-8 h-8 rounded-full bg-blue-100 text-blue-800 dark:bg-blue-900 dark:text-blue-200 mr-2">6</span>
187
- Breach Notification
188
- </h3>
189
- <div className="bg-white dark:bg-gray-800 p-6 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700">
190
- <ul className="space-y-2">
191
- <li className="flex items-start">
192
- <span className="inline-flex items-center justify-center w-6 h-6 rounded border border-gray-300 dark:border-gray-600 mr-2 flex-shrink-0 mt-0.5">□</span>
193
- <span>Develop a data breach response plan</span>
194
- </li>
195
- <li className="flex items-start">
196
- <span className="inline-flex items-center justify-center w-6 h-6 rounded border border-gray-300 dark:border-gray-600 mr-2 flex-shrink-0 mt-0.5">□</span>
197
- <span>Implement procedures for detecting, reporting, and investigating data breaches</span>
198
- </li>
199
- <li className="flex items-start">
200
- <span className="inline-flex items-center justify-center w-6 h-6 rounded border border-gray-300 dark:border-gray-600 mr-2 flex-shrink-0 mt-0.5">□</span>
201
- <span>Establish a process for notifying NITDA within 72 hours of becoming aware of a breach</span>
202
- </li>
203
- <li className="flex items-start">
204
- <span className="inline-flex items-center justify-center w-6 h-6 rounded border border-gray-300 dark:border-gray-600 mr-2 flex-shrink-0 mt-0.5">□</span>
205
- <span>Develop templates for breach notifications to NITDA and affected data subjects</span>
206
- </li>
207
- <li className="flex items-start">
208
- <span className="inline-flex items-center justify-center w-6 h-6 rounded border border-gray-300 dark:border-gray-600 mr-2 flex-shrink-0 mt-0.5">□</span>
209
- <span>Maintain a record of all data breaches, including the facts of the breach, its effects, and remedial actions taken</span>
210
- </li>
211
- <li className="flex items-start">
212
- <span className="inline-flex items-center justify-center w-6 h-6 rounded border border-gray-300 dark:border-gray-600 mr-2 flex-shrink-0 mt-0.5">□</span>
213
- <span>Regularly test and update the breach response plan</span>
214
- </li>
215
- </ul>
216
- </div>
217
- </div>
218
-
219
- <div>
220
- <h3 className="text-xl font-bold mb-3 flex items-center">
221
- <span className="inline-flex items-center justify-center w-8 h-8 rounded-full bg-blue-100 text-blue-800 dark:bg-blue-900 dark:text-blue-200 mr-2">7</span>
222
- International Transfers
223
- </h3>
224
- <div className="bg-white dark:bg-gray-800 p-6 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700">
225
- <ul className="space-y-2">
226
- <li className="flex items-start">
227
- <span className="inline-flex items-center justify-center w-6 h-6 rounded border border-gray-300 dark:border-gray-600 mr-2 flex-shrink-0 mt-0.5">□</span>
228
- <span>Identify all transfers of personal data outside Nigeria</span>
229
- </li>
230
- <li className="flex items-start">
231
- <span className="inline-flex items-center justify-center w-6 h-6 rounded border border-gray-300 dark:border-gray-600 mr-2 flex-shrink-0 mt-0.5">□</span>
232
- <span>Assess whether recipient countries provide adequate protection for personal data</span>
233
- </li>
234
- <li className="flex items-start">
235
- <span className="inline-flex items-center justify-center w-6 h-6 rounded border border-gray-300 dark:border-gray-600 mr-2 flex-shrink-0 mt-0.5">□</span>
236
- <span>Implement appropriate safeguards for international transfers (standard contractual clauses, binding corporate rules, etc.)</span>
237
- </li>
238
- <li className="flex items-start">
239
- <span className="inline-flex items-center justify-center w-6 h-6 rounded border border-gray-300 dark:border-gray-600 mr-2 flex-shrink-0 mt-0.5">□</span>
240
- <span>Obtain NITDA approval for international transfers where required</span>
241
- </li>
242
- <li className="flex items-start">
243
- <span className="inline-flex items-center justify-center w-6 h-6 rounded border border-gray-300 dark:border-gray-600 mr-2 flex-shrink-0 mt-0.5">□</span>
244
- <span>Maintain records of all international transfers</span>
245
- </li>
246
- </ul>
247
- </div>
248
- </div>
249
-
250
- <div>
251
- <h3 className="text-xl font-bold mb-3 flex items-center">
252
- <span className="inline-flex items-center justify-center w-8 h-8 rounded-full bg-blue-100 text-blue-800 dark:bg-blue-900 dark:text-blue-200 mr-2">8</span>
253
- Data Protection Impact Assessment
254
- </h3>
255
- <div className="bg-white dark:bg-gray-800 p-6 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700">
256
- <ul className="space-y-2">
257
- <li className="flex items-start">
258
- <span className="inline-flex items-center justify-center w-6 h-6 rounded border border-gray-300 dark:border-gray-600 mr-2 flex-shrink-0 mt-0.5">□</span>
259
- <span>Develop criteria for determining when a DPIA is required</span>
260
- </li>
261
- <li className="flex items-start">
262
- <span className="inline-flex items-center justify-center w-6 h-6 rounded border border-gray-300 dark:border-gray-600 mr-2 flex-shrink-0 mt-0.5">□</span>
263
- <span>Establish a process for conducting DPIAs</span>
264
- </li>
265
- <li className="flex items-start">
266
- <span className="inline-flex items-center justify-center w-6 h-6 rounded border border-gray-300 dark:border-gray-600 mr-2 flex-shrink-0 mt-0.5">□</span>
267
- <span>Create templates and guidance for conducting DPIAs</span>
268
- </li>
269
- <li className="flex items-start">
270
- <span className="inline-flex items-center justify-center w-6 h-6 rounded border border-gray-300 dark:border-gray-600 mr-2 flex-shrink-0 mt-0.5">□</span>
271
- <span>Ensure DPIAs are conducted before beginning new high-risk processing activities</span>
272
- </li>
273
- <li className="flex items-start">
274
- <span className="inline-flex items-center justify-center w-6 h-6 rounded border border-gray-300 dark:border-gray-600 mr-2 flex-shrink-0 mt-0.5">□</span>
275
- <span>Maintain records of all DPIAs conducted</span>
276
- </li>
277
- <li className="flex items-start">
278
- <span className="inline-flex items-center justify-center w-6 h-6 rounded border border-gray-300 dark:border-gray-600 mr-2 flex-shrink-0 mt-0.5">□</span>
279
- <span>Implement measures to address risks identified in DPIAs</span>
280
- </li>
281
- </ul>
282
- </div>
283
- </div>
284
- </div>
285
-
286
- <div className="mt-8 bg-yellow-50 dark:bg-yellow-900/20 p-4 rounded-md">
287
- <h4 className="text-yellow-800 dark:text-yellow-200 font-medium mb-2">Compliance is an Ongoing Process</h4>
288
- <p className="text-yellow-700 dark:text-yellow-300 text-sm">
289
- Remember that compliance with the NDPR is not a one-time exercise but an ongoing process. Regularly review and update
290
- your data protection practices to ensure continued compliance, especially when introducing new processing activities
291
- or technologies. The NDPR Toolkit provides components and utilities to help you maintain compliance over time.
292
- </p>
293
- </div>
294
- </section>
295
- );
296
- }
@@ -1,145 +0,0 @@
1
- 'use client';
2
-
3
- import Link from 'next/link';
4
- import { Card, CardContent } from '@/components/ui/Card';
5
-
6
- export default function ImplementationTools() {
7
- return (
8
- <section id="implementation-tools" className="mb-8">
9
- <h2 className="text-2xl font-bold mb-4">Implementation Tools in the NDPR Toolkit</h2>
10
- <p className="mb-4">
11
- The NDPR Toolkit provides a comprehensive set of components and utilities to help you implement
12
- NDPR-compliant features in your web applications. Here&apos;s how the toolkit can help you address
13
- key compliance requirements:
14
- </p>
15
-
16
- <div className="grid grid-cols-1 md:grid-cols-2 gap-6">
17
- <Card>
18
- <CardContent className="p-6">
19
- <h3 className="font-bold text-lg mb-2">Consent Management</h3>
20
- <p className="text-gray-600 dark:text-gray-300 text-sm mb-3">
21
- The Consent Management components help you collect, store, and manage valid consent from users.
22
- </p>
23
- <ul className="list-disc pl-6 text-gray-600 dark:text-gray-300 text-sm">
24
- <li>ConsentBanner for collecting consent when users first visit your site</li>
25
- <li>ConsentManager for allowing users to update their preferences</li>
26
- <li>ConsentStorage for securely storing consent records</li>
27
- </ul>
28
- <div className="mt-4">
29
- <Link href="/docs/components/consent-management" className="text-blue-600 dark:text-blue-400 hover:underline text-sm">
30
- View Consent Management Documentation →
31
- </Link>
32
- </div>
33
- </CardContent>
34
- </Card>
35
-
36
- <Card>
37
- <CardContent className="p-6">
38
- <h3 className="font-bold text-lg mb-2">Data Subject Rights Portal</h3>
39
- <p className="text-gray-600 dark:text-gray-300 text-sm mb-3">
40
- The Data Subject Rights components help you implement a complete system for handling data subject requests.
41
- </p>
42
- <ul className="list-disc pl-6 text-gray-600 dark:text-gray-300 text-sm">
43
- <li>DSRRequestForm for collecting requests from data subjects</li>
44
- <li>DSRDashboard for managing and responding to requests</li>
45
- <li>DSRTracker for allowing data subjects to track their requests</li>
46
- </ul>
47
- <div className="mt-4">
48
- <Link href="/docs/components/data-subject-rights" className="text-blue-600 dark:text-blue-400 hover:underline text-sm">
49
- View Data Subject Rights Documentation →
50
- </Link>
51
- </div>
52
- </CardContent>
53
- </Card>
54
-
55
- <Card>
56
- <CardContent className="p-6">
57
- <h3 className="font-bold text-lg mb-2">DPIA Questionnaire</h3>
58
- <p className="text-gray-600 dark:text-gray-300 text-sm mb-3">
59
- The DPIA Questionnaire components help you conduct and document Data Protection Impact Assessments.
60
- </p>
61
- <ul className="list-disc pl-6 text-gray-600 dark:text-gray-300 text-sm">
62
- <li>DPIAQuestionnaire for guiding users through the assessment process</li>
63
- <li>DPIAReport for generating comprehensive DPIA reports</li>
64
- <li>Risk assessment tools for identifying and evaluating data protection risks</li>
65
- </ul>
66
- <div className="mt-4">
67
- <Link href="/docs/components/dpia-questionnaire" className="text-blue-600 dark:text-blue-400 hover:underline text-sm">
68
- View DPIA Questionnaire Documentation →
69
- </Link>
70
- </div>
71
- </CardContent>
72
- </Card>
73
-
74
- <Card>
75
- <CardContent className="p-6">
76
- <h3 className="font-bold text-lg mb-2">Breach Notification System</h3>
77
- <p className="text-gray-600 dark:text-gray-300 text-sm mb-3">
78
- The Breach Notification components help you implement a 72-hour breach notification process.
79
- </p>
80
- <ul className="list-disc pl-6 text-gray-600 dark:text-gray-300 text-sm">
81
- <li>BreachReportForm for internal breach reporting</li>
82
- <li>BreachRiskAssessment for evaluating breach severity</li>
83
- <li>RegulatoryReportGenerator for creating NITDA notifications</li>
84
- <li>BreachNotificationManager for tracking the notification process</li>
85
- </ul>
86
- <div className="mt-4">
87
- <Link href="/docs/components/breach-notification" className="text-blue-600 dark:text-blue-400 hover:underline text-sm">
88
- View Breach Notification Documentation →
89
- </Link>
90
- </div>
91
- </CardContent>
92
- </Card>
93
-
94
- <Card>
95
- <CardContent className="p-6">
96
- <h3 className="font-bold text-lg mb-2">Privacy Policy Generator</h3>
97
- <p className="text-gray-600 dark:text-gray-300 text-sm mb-3">
98
- The Privacy Policy Generator helps you create a comprehensive, NDPR-compliant privacy policy.
99
- </p>
100
- <ul className="list-disc pl-6 text-gray-600 dark:text-gray-300 text-sm">
101
- <li>PolicyGenerator for creating customized privacy policies</li>
102
- <li>PolicyPreview for reviewing and editing policies</li>
103
- <li>PolicyExporter for exporting policies in various formats</li>
104
- </ul>
105
- <div className="mt-4">
106
- <Link href="/docs/components/privacy-policy-generator" className="text-blue-600 dark:text-blue-400 hover:underline text-sm">
107
- View Privacy Policy Generator Documentation →
108
- </Link>
109
- </div>
110
- </CardContent>
111
- </Card>
112
-
113
- <Card>
114
- <CardContent className="p-6">
115
- <h3 className="font-bold text-lg mb-2">Implementation Guides</h3>
116
- <p className="text-gray-600 dark:text-gray-300 text-sm mb-3">
117
- The NDPR Toolkit includes comprehensive guides for implementing key compliance features.
118
- </p>
119
- <ul className="list-disc pl-6 text-gray-600 dark:text-gray-300 text-sm">
120
- <li>Guide for conducting DPIAs</li>
121
- <li>Guide for managing consent</li>
122
- <li>Guide for handling data subject requests</li>
123
- <li>Guide for implementing a breach notification process</li>
124
- </ul>
125
- <div className="mt-4">
126
- <Link href="/docs/guides" className="text-blue-600 dark:text-blue-400 hover:underline text-sm">
127
- View Implementation Guides →
128
- </Link>
129
- </div>
130
- </CardContent>
131
- </Card>
132
- </div>
133
-
134
- <div className="mt-8 bg-green-50 dark:bg-green-900/20 p-4 rounded-md">
135
- <h4 className="text-green-800 dark:text-green-200 font-medium mb-2">Integrated Compliance Approach</h4>
136
- <p className="text-green-700 dark:text-green-300 text-sm">
137
- The NDPR Toolkit is designed to provide an integrated approach to NDPR compliance. The components work together
138
- to create a comprehensive compliance system, with shared utilities and data structures that ensure consistency
139
- across different compliance areas. This integrated approach helps you implement NDPR-compliant features more
140
- efficiently and maintain compliance over time.
141
- </p>
142
- </div>
143
- </section>
144
- );
145
- }
@@ -1,33 +0,0 @@
1
- 'use client';
2
-
3
- export default function Introduction() {
4
- return (
5
- <section id="introduction" className="mb-8">
6
- <h2 className="text-2xl font-bold mb-4">Introduction</h2>
7
- <p className="mb-4">
8
- The Nigeria Data Protection Regulation (NDPR) is Nigeria&apos;s principal data protection legislation, issued by the
9
- National Information Technology Development Agency (NITDA) in January 2019. The NDPR aims to safeguard the rights
10
- of natural persons to data privacy and establishes a framework for ensuring that organizations process personal
11
- data in a fair, lawful, and transparent manner.
12
- </p>
13
- <p className="mb-4">
14
- Compliance with the NDPR is not just a legal obligation but also a business imperative. Organizations that fail to
15
- comply with the NDPR may face significant penalties, including fines of up to 2% of annual gross revenue or
16
- ₦10 million, whichever is greater. Beyond the financial penalties, non-compliance can lead to reputational damage,
17
- loss of customer trust, and business disruption.
18
- </p>
19
- <div className="bg-blue-50 dark:bg-blue-900/20 p-4 rounded-md">
20
- <h4 className="text-blue-800 dark:text-blue-200 font-medium mb-2">Who Must Comply with the NDPR?</h4>
21
- <p className="text-blue-700 dark:text-blue-300 text-sm mb-2">
22
- The NDPR applies to:
23
- </p>
24
- <ul className="list-disc pl-6 text-blue-700 dark:text-blue-300 text-sm">
25
- <li>All organizations that process the personal data of Nigerian residents</li>
26
- <li>Organizations that process personal data in Nigeria, regardless of the nationality of the data subjects</li>
27
- <li>Public and private sector organizations of all sizes</li>
28
- <li>Organizations based outside Nigeria that process the personal data of Nigerian residents</li>
29
- </ul>
30
- </div>
31
- </section>
32
- );
33
- }
@@ -1,99 +0,0 @@
1
- 'use client';
2
-
3
- export default function KeyRequirements() {
4
- return (
5
- <section id="key-requirements" className="mb-8">
6
- <h2 className="text-2xl font-bold mb-4">Key NDPR Requirements</h2>
7
- <p className="mb-4">
8
- The NDPR establishes several key requirements that organizations must meet to ensure compliance.
9
- Understanding these requirements is the first step toward developing a comprehensive compliance program.
10
- </p>
11
-
12
- <div className="space-y-6">
13
- <div className="bg-white dark:bg-gray-800 p-6 rounded-lg shadow-sm border-l-4 border-blue-500">
14
- <h3 className="text-xl font-bold mb-2">Lawful Processing</h3>
15
- <p className="text-gray-600 dark:text-gray-300">
16
- Organizations must process personal data lawfully, fairly, and transparently. This means having a valid legal
17
- basis for processing, such as consent, contract, legal obligation, vital interests, public interest, or
18
- legitimate interests.
19
- </p>
20
- </div>
21
-
22
- <div className="bg-white dark:bg-gray-800 p-6 rounded-lg shadow-sm border-l-4 border-blue-500">
23
- <h3 className="text-xl font-bold mb-2">Consent</h3>
24
- <p className="text-gray-600 dark:text-gray-300">
25
- When relying on consent as the legal basis for processing, organizations must ensure that consent is freely given,
26
- specific, informed, and unambiguous. Consent must be obtained through a clear affirmative action and must be as
27
- easy to withdraw as it is to give.
28
- </p>
29
- </div>
30
-
31
- <div className="bg-white dark:bg-gray-800 p-6 rounded-lg shadow-sm border-l-4 border-blue-500">
32
- <h3 className="text-xl font-bold mb-2">Data Subject Rights</h3>
33
- <p className="text-gray-600 dark:text-gray-300">
34
- Organizations must respect and facilitate the rights of data subjects, including the right of access, right to
35
- rectification, right to erasure, right to restrict processing, right to data portability, and right to object
36
- to processing.
37
- </p>
38
- </div>
39
-
40
- <div className="bg-white dark:bg-gray-800 p-6 rounded-lg shadow-sm border-l-4 border-blue-500">
41
- <h3 className="text-xl font-bold mb-2">Data Protection Impact Assessment</h3>
42
- <p className="text-gray-600 dark:text-gray-300">
43
- Organizations must conduct Data Protection Impact Assessments (DPIAs) for processing activities that are likely
44
- to result in a high risk to the rights and freedoms of individuals, particularly when using new technologies.
45
- </p>
46
- </div>
47
-
48
- <div className="bg-white dark:bg-gray-800 p-6 rounded-lg shadow-sm border-l-4 border-blue-500">
49
- <h3 className="text-xl font-bold mb-2">Data Protection Officer</h3>
50
- <p className="text-gray-600 dark:text-gray-300">
51
- Organizations that process large volumes of personal data must appoint a Data Protection Officer (DPO) to oversee
52
- data protection strategy and implementation. The DPO must have expert knowledge of data protection law and practices.
53
- </p>
54
- </div>
55
-
56
- <div className="bg-white dark:bg-gray-800 p-6 rounded-lg shadow-sm border-l-4 border-blue-500">
57
- <h3 className="text-xl font-bold mb-2">Breach Notification</h3>
58
- <p className="text-gray-600 dark:text-gray-300">
59
- Organizations must report data breaches to NITDA within 72 hours of becoming aware of the breach and must notify
60
- affected data subjects without undue delay. Organizations must also maintain a record of all data breaches.
61
- </p>
62
- </div>
63
-
64
- <div className="bg-white dark:bg-gray-800 p-6 rounded-lg shadow-sm border-l-4 border-blue-500">
65
- <h3 className="text-xl font-bold mb-2">Privacy Policy</h3>
66
- <p className="text-gray-600 dark:text-gray-300">
67
- Organizations must maintain a clear and accessible privacy policy that informs data subjects about how their
68
- personal data is collected, processed, stored, and protected. The policy must be written in clear, plain language.
69
- </p>
70
- </div>
71
-
72
- <div className="bg-white dark:bg-gray-800 p-6 rounded-lg shadow-sm border-l-4 border-blue-500">
73
- <h3 className="text-xl font-bold mb-2">International Transfers</h3>
74
- <p className="text-gray-600 dark:text-gray-300">
75
- Organizations must ensure that personal data is not transferred to a country outside Nigeria unless that country
76
- ensures an adequate level of protection for the rights and freedoms of data subjects in relation to the processing
77
- of personal data.
78
- </p>
79
- </div>
80
-
81
- <div className="bg-white dark:bg-gray-800 p-6 rounded-lg shadow-sm border-l-4 border-blue-500">
82
- <h3 className="text-xl font-bold mb-2">Data Security</h3>
83
- <p className="text-gray-600 dark:text-gray-300">
84
- Organizations must implement appropriate technical and organizational measures to ensure a level of security
85
- appropriate to the risk, including encryption, pseudonymization, and regular testing of security measures.
86
- </p>
87
- </div>
88
-
89
- <div className="bg-white dark:bg-gray-800 p-6 rounded-lg shadow-sm border-l-4 border-blue-500">
90
- <h3 className="text-xl font-bold mb-2">Record Keeping</h3>
91
- <p className="text-gray-600 dark:text-gray-300">
92
- Organizations must maintain records of processing activities, including the purposes of processing, categories
93
- of data subjects and personal data, recipients of personal data, and time limits for erasure.
94
- </p>
95
- </div>
96
- </div>
97
- </section>
98
- );
99
- }