@tantainnovative/ndpr-toolkit 2.4.1 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (182) hide show
  1. package/README.md +226 -246
  2. package/dist/BreachReportForm-DpRrBoxU.d.ts +158 -0
  3. package/dist/BreachReportForm-yJ2Zl6gz.d.mts +158 -0
  4. package/dist/ConsentBanner-CDRT0o2k.d.mts +146 -0
  5. package/dist/ConsentBanner-Vxyt8SCX.d.ts +146 -0
  6. package/dist/{cross-border-entry-BrWVPly6.d.ts → CrossBorderTransferManager-D5Lc0e46.d.ts} +4 -5
  7. package/dist/{cross-border-entry-cCTvpwnT.d.mts → CrossBorderTransferManager-DkZhv9vD.d.mts} +4 -5
  8. package/dist/DPIAQuestionnaire-BkejviPj.d.mts +123 -0
  9. package/dist/DPIAQuestionnaire-DdSqXG3x.d.ts +123 -0
  10. package/dist/DSRRequestForm-BY8PogCU.d.mts +146 -0
  11. package/dist/DSRRequestForm-CHUg9cZh.d.ts +146 -0
  12. package/dist/DSRTracker-C6u_jAaK.d.mts +163 -0
  13. package/dist/DSRTracker-Dr_aT0pg.d.ts +163 -0
  14. package/dist/{lawful-basis-entry-CxZrofwG.d.mts → LawfulBasisTracker-CBqOxX1D.d.mts} +3 -5
  15. package/dist/{lawful-basis-entry-15qjKcNO.d.ts → LawfulBasisTracker-Cg30NbDA.d.ts} +3 -5
  16. package/dist/NDPRDashboard-CLJpEg0X.d.mts +44 -0
  17. package/dist/NDPRDashboard-DDWNd2Ah.d.ts +44 -0
  18. package/dist/{policy-E0fXZkda.d.mts → PolicyExporter-BIqSVjfC.d.mts} +4 -98
  19. package/dist/{policy-D2_jh5-T.d.ts → PolicyExporter-BNWaPBGU.d.ts} +4 -98
  20. package/dist/PolicyGenerator-BvcWPbxp.d.mts +96 -0
  21. package/dist/PolicyGenerator-BzRwtlgn.d.ts +96 -0
  22. package/dist/{ropa-entry-B0D7X1GV.d.ts → ROPAManager-BS4eB8Hw.d.mts} +4 -5
  23. package/dist/{ropa-entry-DiOThOc2.d.mts → ROPAManager-qxTrXLkD.d.ts} +4 -5
  24. package/dist/RegulatoryReportGenerator-BUYgzTTT.d.ts +282 -0
  25. package/dist/RegulatoryReportGenerator-DwcHcEFp.d.mts +282 -0
  26. package/dist/StepIndicator-D-nwRTyo.d.mts +171 -0
  27. package/dist/StepIndicator-D9ZATz_O.d.ts +171 -0
  28. package/dist/adapters.d.mts +25 -0
  29. package/dist/adapters.d.ts +25 -0
  30. package/dist/adapters.js +2 -0
  31. package/dist/adapters.mjs +2 -0
  32. package/dist/breach.d.mts +36 -431
  33. package/dist/breach.d.ts +36 -431
  34. package/dist/breach.js +1 -1
  35. package/dist/breach.mjs +1 -1
  36. package/dist/chunk-27NYSWUG.mjs +2 -0
  37. package/dist/chunk-2ORDHJRD.js +2 -0
  38. package/dist/chunk-2W7ARAW2.js +2 -0
  39. package/dist/chunk-3F34NACG.js +2 -0
  40. package/dist/chunk-3RGJV3VF.js +7 -0
  41. package/dist/chunk-3UWT64FI.mjs +2 -0
  42. package/dist/chunk-3V23O4ZJ.js +2 -0
  43. package/dist/chunk-3XAUN5IM.mjs +3 -0
  44. package/dist/chunk-5VMHKNJY.js +2 -0
  45. package/dist/chunk-6D3ZUGBB.mjs +2 -0
  46. package/dist/chunk-6E54NSAO.mjs +2 -0
  47. package/dist/chunk-7F5F5YWI.mjs +2 -0
  48. package/dist/chunk-7FIUX3ZM.js +89 -0
  49. package/dist/chunk-FR7ZYZXB.js +2 -0
  50. package/dist/chunk-FY5G6DGZ.js +7 -0
  51. package/dist/chunk-G26I6MP5.mjs +2 -0
  52. package/dist/chunk-GPJVTGHR.mjs +2 -0
  53. package/dist/chunk-GVANK6PL.js +3 -0
  54. package/dist/chunk-HNZK7LY3.mjs +2 -0
  55. package/dist/chunk-IKEPXHCZ.js +2 -0
  56. package/dist/chunk-IQQW52EF.js +2 -0
  57. package/dist/chunk-ISSGO2YT.mjs +72 -0
  58. package/dist/chunk-J6IKAGUP.mjs +89 -0
  59. package/dist/chunk-KHRBU5K7.js +2 -0
  60. package/dist/chunk-KNE4NXCY.mjs +7 -0
  61. package/dist/chunk-LFNA6WYQ.mjs +2 -0
  62. package/dist/chunk-NPI5T6NH.mjs +7 -0
  63. package/dist/chunk-NPLXE43Q.mjs +2 -0
  64. package/dist/chunk-P7BSBCB3.js +2 -0
  65. package/dist/chunk-PEH5GIMN.js +2 -0
  66. package/dist/chunk-RSUDIFZV.mjs +2 -0
  67. package/dist/chunk-SBNAMPAP.mjs +2 -0
  68. package/dist/chunk-SVCRYM4I.mjs +2 -0
  69. package/dist/chunk-U6VWHC46.js +72 -0
  70. package/dist/chunk-UK656RCG.js +2 -0
  71. package/dist/chunk-UNKXYVXY.js +2 -0
  72. package/dist/chunk-UOSEH6DC.js +2 -0
  73. package/dist/chunk-V37BM2LF.js +2 -0
  74. package/dist/chunk-V3MXWGXU.mjs +2 -0
  75. package/dist/chunk-VDZKGCAF.js +2 -0
  76. package/dist/chunk-WLSW4Z4W.mjs +2 -0
  77. package/dist/chunk-XSK4BSZJ.mjs +2 -0
  78. package/dist/chunk-YJCGEOLO.mjs +2 -0
  79. package/dist/chunk-ZCZ5RRZO.js +2 -0
  80. package/dist/compliance-score-racQe_E_.d.mts +115 -0
  81. package/dist/compliance-score-racQe_E_.d.ts +115 -0
  82. package/dist/consent.d.mts +67 -295
  83. package/dist/consent.d.ts +67 -295
  84. package/dist/consent.js +1 -1
  85. package/dist/consent.mjs +1 -1
  86. package/dist/core.d.mts +8 -5
  87. package/dist/core.d.ts +8 -5
  88. package/dist/core.js +1 -1
  89. package/dist/core.mjs +1 -1
  90. package/dist/cross-border-BBi9rZyO.d.mts +54 -0
  91. package/dist/cross-border-Dy-U9Hu6.d.ts +54 -0
  92. package/dist/{cross-border-BMcqLvjC.d.mts → cross-border-UyT00llA.d.mts} +1 -52
  93. package/dist/{cross-border-BMcqLvjC.d.ts → cross-border-UyT00llA.d.ts} +1 -52
  94. package/dist/cross-border.d.mts +32 -4
  95. package/dist/cross-border.d.ts +32 -4
  96. package/dist/cross-border.js +1 -1
  97. package/dist/cross-border.mjs +1 -1
  98. package/dist/dpia.d.mts +28 -284
  99. package/dist/dpia.d.ts +28 -284
  100. package/dist/dpia.js +1 -1
  101. package/dist/dpia.mjs +1 -1
  102. package/dist/dsr.d.mts +29 -300
  103. package/dist/dsr.d.ts +29 -300
  104. package/dist/dsr.js +1 -1
  105. package/dist/dsr.mjs +1 -1
  106. package/dist/hooks.d.mts +21 -10
  107. package/dist/hooks.d.ts +21 -10
  108. package/dist/hooks.js +1 -1
  109. package/dist/hooks.mjs +1 -1
  110. package/dist/index.d.mts +28 -18
  111. package/dist/index.d.ts +28 -18
  112. package/dist/index.js +1 -1
  113. package/dist/index.mjs +1 -1
  114. package/dist/lawful-basis.d.mts +31 -4
  115. package/dist/lawful-basis.d.ts +31 -4
  116. package/dist/lawful-basis.js +1 -1
  117. package/dist/lawful-basis.mjs +1 -1
  118. package/dist/policy.d.mts +36 -4
  119. package/dist/policy.d.ts +36 -4
  120. package/dist/policy.js +1 -1
  121. package/dist/policy.mjs +1 -1
  122. package/dist/presets.d.mts +124 -0
  123. package/dist/presets.d.ts +124 -0
  124. package/dist/presets.js +2 -0
  125. package/dist/presets.mjs +2 -0
  126. package/dist/{ropa-Li6UlL5H.d.ts → ropa-BDTM06tr.d.ts} +1 -49
  127. package/dist/{ropa-DP7pPPql.d.mts → ropa-CFHuT7jE.d.mts} +1 -49
  128. package/dist/ropa-CyynscU6.d.ts +51 -0
  129. package/dist/ropa-NIgxd8uP.d.mts +51 -0
  130. package/dist/ropa.d.mts +30 -4
  131. package/dist/ropa.d.ts +30 -4
  132. package/dist/ropa.js +1 -1
  133. package/dist/ropa.mjs +1 -1
  134. package/dist/styling-B7CBzYG7.d.ts +165 -0
  135. package/dist/styling-uJLsBbER.d.mts +165 -0
  136. package/dist/types-DK2CoKOC.d.mts +10 -0
  137. package/dist/types-DK2CoKOC.d.ts +10 -0
  138. package/dist/unstyled.d.mts +4 -4
  139. package/dist/unstyled.d.ts +4 -4
  140. package/dist/{useBreach-BBSoIcZO.d.mts → useBreach-CPr86Yan.d.mts} +18 -2
  141. package/dist/{useBreach-lFLbSyAN.d.ts → useBreach-DkVXvtJK.d.ts} +18 -2
  142. package/dist/{useConsent-D0pAfTlb.d.ts → useConsent-DCNkIJHR.d.mts} +12 -2
  143. package/dist/{useConsent-DOt2Njst.d.mts → useConsent-dOcELSfX.d.ts} +12 -2
  144. package/dist/{useCrossBorderTransfer-DmtACeqW.d.ts → useCrossBorderTransfer-BGNZt2lk.d.mts} +15 -3
  145. package/dist/{useCrossBorderTransfer-BZVFCXfr.d.mts → useCrossBorderTransfer-COqjgjsu.d.ts} +15 -3
  146. package/dist/{useDPIA-DBsg2yZx.d.ts → useDPIA-Dl16Te3r.d.ts} +13 -2
  147. package/dist/{useDPIA-Da7-Q_yW.d.mts → useDPIA-DzWye8JB.d.mts} +13 -2
  148. package/dist/{useDSR-YYZ6FYFs.d.mts → useDSR-C1LksCfP.d.mts} +13 -2
  149. package/dist/{useDSR-CYI7WCXr.d.ts → useDSR-DZel52O1.d.ts} +13 -2
  150. package/dist/{useDefaultPrivacyPolicy-CUluF_ic.d.mts → useDefaultPrivacyPolicy-BsYttRey.d.mts} +13 -2
  151. package/dist/{useDefaultPrivacyPolicy-B7kTHbZh.d.ts → useDefaultPrivacyPolicy-C-mG-A5S.d.ts} +13 -2
  152. package/dist/{useLawfulBasis-CpWuHtyh.d.mts → useLawfulBasis-CKJ-kw84.d.mts} +13 -2
  153. package/dist/{useLawfulBasis-CCWF9waR.d.ts → useLawfulBasis-DFTmu1ca.d.ts} +13 -2
  154. package/dist/{useROPA-BhJ3kvHp.d.ts → useROPA-BSSU1rfx.d.ts} +14 -2
  155. package/dist/{useROPA-DLFdjkxP.d.mts → useROPA-C2hjaBTz.d.mts} +14 -2
  156. package/package.json +18 -2
  157. package/dist/chunk-2XFAV267.mjs +0 -2
  158. package/dist/chunk-32UIWTGD.js +0 -72
  159. package/dist/chunk-3YCV2BA6.js +0 -2
  160. package/dist/chunk-4A354HL3.js +0 -2
  161. package/dist/chunk-5ZBO2UPH.js +0 -2
  162. package/dist/chunk-6GGGTRDZ.mjs +0 -2
  163. package/dist/chunk-BGHQTZAC.js +0 -94
  164. package/dist/chunk-BZTTQS4A.mjs +0 -7
  165. package/dist/chunk-EKVTLHBQ.js +0 -2
  166. package/dist/chunk-GMLNWS2N.mjs +0 -2
  167. package/dist/chunk-IBEKLDBY.mjs +0 -2
  168. package/dist/chunk-K3GMTMQ6.js +0 -2
  169. package/dist/chunk-L52PDW6O.mjs +0 -2
  170. package/dist/chunk-LI6WJ3LZ.js +0 -2
  171. package/dist/chunk-LXRXDTPI.js +0 -2
  172. package/dist/chunk-NW4A3JW6.mjs +0 -2
  173. package/dist/chunk-OITITR6K.mjs +0 -2
  174. package/dist/chunk-PDJGTQMY.mjs +0 -2
  175. package/dist/chunk-SKJCQKFL.mjs +0 -94
  176. package/dist/chunk-T44JQT2O.mjs +0 -2
  177. package/dist/chunk-TCJCE6WN.js +0 -2
  178. package/dist/chunk-VMJBW3EF.mjs +0 -2
  179. package/dist/chunk-WW3X3ELF.js +0 -2
  180. package/dist/chunk-XMYUYQH7.mjs +0 -72
  181. package/dist/chunk-ZNTMZ6NM.js +0 -7
  182. package/dist/chunk-ZU73VG3X.js +0 -2
@@ -0,0 +1,123 @@
1
+ import React__default from 'react';
2
+ import { c as DPIASection } from './dpia-5OQVA1R_.mjs';
3
+
4
+ interface DPIAQuestionnaireClassNames {
5
+ /** Outermost wrapper */
6
+ root?: string;
7
+ /** Header area containing progress indicator */
8
+ header?: string;
9
+ /** Section title */
10
+ title?: string;
11
+ /** Section container */
12
+ section?: string;
13
+ /** Section title heading */
14
+ sectionTitle?: string;
15
+ /** Individual question wrapper */
16
+ question?: string;
17
+ /** Question label text */
18
+ questionText?: string;
19
+ /** Guidance / help text below a question */
20
+ guidance?: string;
21
+ /** Text / textarea / select inputs */
22
+ input?: string;
23
+ /** Radio option group container */
24
+ radioGroup?: string;
25
+ /** Individual radio option row */
26
+ radioOption?: string;
27
+ /** Navigation button container */
28
+ navigation?: string;
29
+ /** Next / submit button */
30
+ nextButton?: string;
31
+ /** Previous button */
32
+ prevButton?: string;
33
+ /** Alias for nextButton */
34
+ primaryButton?: string;
35
+ /** Alias for prevButton */
36
+ secondaryButton?: string;
37
+ /** Progress bar wrapper */
38
+ progressBar?: string;
39
+ }
40
+ interface DPIAQuestionnaireProps {
41
+ /**
42
+ * Sections of the DPIA questionnaire
43
+ */
44
+ sections: DPIASection[];
45
+ /**
46
+ * Current answers to the questionnaire
47
+ */
48
+ answers: Record<string, any>;
49
+ /**
50
+ * Callback function called when an answer is updated
51
+ */
52
+ onAnswerChange: (questionId: string, value: any) => void;
53
+ /**
54
+ * Current section index
55
+ */
56
+ currentSectionIndex: number;
57
+ /**
58
+ * Callback function called when user navigates to the next section
59
+ */
60
+ onNextSection?: () => void;
61
+ /**
62
+ * Callback function called when user navigates to the previous section
63
+ */
64
+ onPrevSection?: () => void;
65
+ /**
66
+ * Validation errors for the current section
67
+ */
68
+ validationErrors?: Record<string, string>;
69
+ /**
70
+ * Whether the questionnaire is in read-only mode
71
+ * @default false
72
+ */
73
+ readOnly?: boolean;
74
+ /**
75
+ * Custom CSS class for the questionnaire
76
+ */
77
+ className?: string;
78
+ /**
79
+ * Custom CSS class for the buttons
80
+ */
81
+ buttonClassName?: string;
82
+ /**
83
+ * Text for the next button
84
+ * @default "Next"
85
+ */
86
+ nextButtonText?: string;
87
+ /**
88
+ * Text for the previous button
89
+ * @default "Previous"
90
+ */
91
+ prevButtonText?: string;
92
+ /**
93
+ * Text for the submit button (shown on the last section)
94
+ * @default "Submit"
95
+ */
96
+ submitButtonText?: string;
97
+ /**
98
+ * Whether to show a progress indicator
99
+ * @default true
100
+ */
101
+ showProgress?: boolean;
102
+ /**
103
+ * Current progress percentage (0-100)
104
+ */
105
+ progress?: number;
106
+ /**
107
+ * Per-section class name overrides
108
+ */
109
+ classNames?: DPIAQuestionnaireClassNames;
110
+ /**
111
+ * When true, all default classes are stripped.
112
+ * Only explicit overrides from `classNames` are applied.
113
+ * @default false
114
+ */
115
+ unstyled?: boolean;
116
+ }
117
+ /**
118
+ * DPIA questionnaire component. Implements NDPA Section 38 requirements
119
+ * for conducting Data Protection Impact Assessments on high-risk processing activities.
120
+ */
121
+ declare const DPIAQuestionnaire: React__default.FC<DPIAQuestionnaireProps>;
122
+
123
+ export { DPIAQuestionnaire as D, type DPIAQuestionnaireClassNames as a, type DPIAQuestionnaireProps as b };
@@ -0,0 +1,123 @@
1
+ import React__default from 'react';
2
+ import { c as DPIASection } from './dpia-5OQVA1R_.js';
3
+
4
+ interface DPIAQuestionnaireClassNames {
5
+ /** Outermost wrapper */
6
+ root?: string;
7
+ /** Header area containing progress indicator */
8
+ header?: string;
9
+ /** Section title */
10
+ title?: string;
11
+ /** Section container */
12
+ section?: string;
13
+ /** Section title heading */
14
+ sectionTitle?: string;
15
+ /** Individual question wrapper */
16
+ question?: string;
17
+ /** Question label text */
18
+ questionText?: string;
19
+ /** Guidance / help text below a question */
20
+ guidance?: string;
21
+ /** Text / textarea / select inputs */
22
+ input?: string;
23
+ /** Radio option group container */
24
+ radioGroup?: string;
25
+ /** Individual radio option row */
26
+ radioOption?: string;
27
+ /** Navigation button container */
28
+ navigation?: string;
29
+ /** Next / submit button */
30
+ nextButton?: string;
31
+ /** Previous button */
32
+ prevButton?: string;
33
+ /** Alias for nextButton */
34
+ primaryButton?: string;
35
+ /** Alias for prevButton */
36
+ secondaryButton?: string;
37
+ /** Progress bar wrapper */
38
+ progressBar?: string;
39
+ }
40
+ interface DPIAQuestionnaireProps {
41
+ /**
42
+ * Sections of the DPIA questionnaire
43
+ */
44
+ sections: DPIASection[];
45
+ /**
46
+ * Current answers to the questionnaire
47
+ */
48
+ answers: Record<string, any>;
49
+ /**
50
+ * Callback function called when an answer is updated
51
+ */
52
+ onAnswerChange: (questionId: string, value: any) => void;
53
+ /**
54
+ * Current section index
55
+ */
56
+ currentSectionIndex: number;
57
+ /**
58
+ * Callback function called when user navigates to the next section
59
+ */
60
+ onNextSection?: () => void;
61
+ /**
62
+ * Callback function called when user navigates to the previous section
63
+ */
64
+ onPrevSection?: () => void;
65
+ /**
66
+ * Validation errors for the current section
67
+ */
68
+ validationErrors?: Record<string, string>;
69
+ /**
70
+ * Whether the questionnaire is in read-only mode
71
+ * @default false
72
+ */
73
+ readOnly?: boolean;
74
+ /**
75
+ * Custom CSS class for the questionnaire
76
+ */
77
+ className?: string;
78
+ /**
79
+ * Custom CSS class for the buttons
80
+ */
81
+ buttonClassName?: string;
82
+ /**
83
+ * Text for the next button
84
+ * @default "Next"
85
+ */
86
+ nextButtonText?: string;
87
+ /**
88
+ * Text for the previous button
89
+ * @default "Previous"
90
+ */
91
+ prevButtonText?: string;
92
+ /**
93
+ * Text for the submit button (shown on the last section)
94
+ * @default "Submit"
95
+ */
96
+ submitButtonText?: string;
97
+ /**
98
+ * Whether to show a progress indicator
99
+ * @default true
100
+ */
101
+ showProgress?: boolean;
102
+ /**
103
+ * Current progress percentage (0-100)
104
+ */
105
+ progress?: number;
106
+ /**
107
+ * Per-section class name overrides
108
+ */
109
+ classNames?: DPIAQuestionnaireClassNames;
110
+ /**
111
+ * When true, all default classes are stripped.
112
+ * Only explicit overrides from `classNames` are applied.
113
+ * @default false
114
+ */
115
+ unstyled?: boolean;
116
+ }
117
+ /**
118
+ * DPIA questionnaire component. Implements NDPA Section 38 requirements
119
+ * for conducting Data Protection Impact Assessments on high-risk processing activities.
120
+ */
121
+ declare const DPIAQuestionnaire: React__default.FC<DPIAQuestionnaireProps>;
122
+
123
+ export { DPIAQuestionnaire as D, type DPIAQuestionnaireClassNames as a, type DPIAQuestionnaireProps as b };
@@ -0,0 +1,146 @@
1
+ import React__default from 'react';
2
+ import { c as RequestType } from './dsr-Cm9lzWG7.mjs';
3
+
4
+ /**
5
+ * Represents the data submitted by the DSR request form.
6
+ */
7
+ interface DSRFormSubmission {
8
+ /** The selected request type identifier */
9
+ requestType: string;
10
+ /** Data subject personal information */
11
+ dataSubject: {
12
+ fullName: string;
13
+ email: string;
14
+ phone?: string;
15
+ identifierType: string;
16
+ identifierValue: string;
17
+ };
18
+ /** Additional information provided for the selected request type */
19
+ additionalInfo?: Record<string, any>;
20
+ /** Timestamp (ms) when the form was submitted */
21
+ submittedAt: number;
22
+ }
23
+ interface DSRRequestFormClassNames {
24
+ root?: string;
25
+ title?: string;
26
+ description?: string;
27
+ form?: string;
28
+ fieldGroup?: string;
29
+ label?: string;
30
+ input?: string;
31
+ select?: string;
32
+ textarea?: string;
33
+ submitButton?: string;
34
+ /** Alias for submitButton */
35
+ primaryButton?: string;
36
+ successMessage?: string;
37
+ /** Custom class applied when isSubmitting is true (e.g. a loading overlay) */
38
+ loadingOverlay?: string;
39
+ }
40
+ interface DSRRequestFormProps {
41
+ /**
42
+ * Array of request types that can be submitted
43
+ */
44
+ requestTypes: RequestType[];
45
+ /**
46
+ * Callback function called when form is submitted
47
+ */
48
+ onSubmit: (data: DSRFormSubmission) => void;
49
+ /**
50
+ * Callback function called when form validation fails
51
+ */
52
+ onValidationError?: (errors: Record<string, string>) => void;
53
+ /**
54
+ * Title displayed on the form
55
+ * @default "Submit a Data Subject Request"
56
+ */
57
+ title?: string;
58
+ /**
59
+ * Description text displayed on the form
60
+ * @default "Use this form to exercise your rights under the Nigeria Data Protection Act (NDPA), Part IV, Sections 29-36."
61
+ */
62
+ description?: string;
63
+ /**
64
+ * Text for the submit button
65
+ * @default "Submit Request"
66
+ */
67
+ submitButtonText?: string;
68
+ /**
69
+ * Custom CSS class for the form
70
+ */
71
+ className?: string;
72
+ /**
73
+ * Custom CSS class for the submit button
74
+ */
75
+ buttonClassName?: string;
76
+ /**
77
+ * Whether to show a confirmation message after submission
78
+ * @default true
79
+ */
80
+ showConfirmation?: boolean;
81
+ /**
82
+ * Confirmation message to display after submission
83
+ * @default "Your request has been submitted successfully. You will receive a confirmation email shortly."
84
+ */
85
+ confirmationMessage?: string;
86
+ /**
87
+ * Whether to require identity verification
88
+ * @default true
89
+ */
90
+ requireIdentityVerification?: boolean;
91
+ /**
92
+ * Types of identifiers accepted for verification
93
+ * @default ["email", "account", "customer_id"]
94
+ */
95
+ identifierTypes?: Array<{
96
+ id: string;
97
+ label: string;
98
+ }>;
99
+ /**
100
+ * Whether to collect additional contact information
101
+ * @default true
102
+ */
103
+ collectAdditionalContact?: boolean;
104
+ /**
105
+ * Custom labels for form fields
106
+ */
107
+ labels?: {
108
+ name?: string;
109
+ email?: string;
110
+ requestType?: string;
111
+ description?: string;
112
+ submit?: string;
113
+ };
114
+ /**
115
+ * Object of CSS class overrides keyed by semantic section name.
116
+ */
117
+ classNames?: DSRRequestFormClassNames;
118
+ /**
119
+ * When true, all default Tailwind classes are removed so consumers
120
+ * can style from scratch using classNames.
121
+ */
122
+ unstyled?: boolean;
123
+ /**
124
+ * Whether the form is currently submitting.
125
+ * When true, the submit button is disabled and shows "Submitting..." text.
126
+ */
127
+ isSubmitting?: boolean;
128
+ /**
129
+ * Default values to pre-fill form fields.
130
+ * Useful for editing existing requests or pre-populating known data.
131
+ */
132
+ defaultValues?: Partial<DSRFormSubmission>;
133
+ /**
134
+ * Callback fired when the form is reset via the Reset button.
135
+ * To fully remount the component (clearing all internal state),
136
+ * change the `key` prop from the parent.
137
+ */
138
+ onReset?: () => void;
139
+ }
140
+ /**
141
+ * Data Subject Request form component. Implements NDPA Part IV, Sections 29-36
142
+ * covering data subject rights including access, rectification, erasure, and portability.
143
+ */
144
+ declare const DSRRequestForm: React__default.FC<DSRRequestFormProps>;
145
+
146
+ export { type DSRFormSubmission as D, DSRRequestForm as a, type DSRRequestFormClassNames as b, type DSRRequestFormProps as c };
@@ -0,0 +1,146 @@
1
+ import React__default from 'react';
2
+ import { c as RequestType } from './dsr-Cm9lzWG7.js';
3
+
4
+ /**
5
+ * Represents the data submitted by the DSR request form.
6
+ */
7
+ interface DSRFormSubmission {
8
+ /** The selected request type identifier */
9
+ requestType: string;
10
+ /** Data subject personal information */
11
+ dataSubject: {
12
+ fullName: string;
13
+ email: string;
14
+ phone?: string;
15
+ identifierType: string;
16
+ identifierValue: string;
17
+ };
18
+ /** Additional information provided for the selected request type */
19
+ additionalInfo?: Record<string, any>;
20
+ /** Timestamp (ms) when the form was submitted */
21
+ submittedAt: number;
22
+ }
23
+ interface DSRRequestFormClassNames {
24
+ root?: string;
25
+ title?: string;
26
+ description?: string;
27
+ form?: string;
28
+ fieldGroup?: string;
29
+ label?: string;
30
+ input?: string;
31
+ select?: string;
32
+ textarea?: string;
33
+ submitButton?: string;
34
+ /** Alias for submitButton */
35
+ primaryButton?: string;
36
+ successMessage?: string;
37
+ /** Custom class applied when isSubmitting is true (e.g. a loading overlay) */
38
+ loadingOverlay?: string;
39
+ }
40
+ interface DSRRequestFormProps {
41
+ /**
42
+ * Array of request types that can be submitted
43
+ */
44
+ requestTypes: RequestType[];
45
+ /**
46
+ * Callback function called when form is submitted
47
+ */
48
+ onSubmit: (data: DSRFormSubmission) => void;
49
+ /**
50
+ * Callback function called when form validation fails
51
+ */
52
+ onValidationError?: (errors: Record<string, string>) => void;
53
+ /**
54
+ * Title displayed on the form
55
+ * @default "Submit a Data Subject Request"
56
+ */
57
+ title?: string;
58
+ /**
59
+ * Description text displayed on the form
60
+ * @default "Use this form to exercise your rights under the Nigeria Data Protection Act (NDPA), Part IV, Sections 29-36."
61
+ */
62
+ description?: string;
63
+ /**
64
+ * Text for the submit button
65
+ * @default "Submit Request"
66
+ */
67
+ submitButtonText?: string;
68
+ /**
69
+ * Custom CSS class for the form
70
+ */
71
+ className?: string;
72
+ /**
73
+ * Custom CSS class for the submit button
74
+ */
75
+ buttonClassName?: string;
76
+ /**
77
+ * Whether to show a confirmation message after submission
78
+ * @default true
79
+ */
80
+ showConfirmation?: boolean;
81
+ /**
82
+ * Confirmation message to display after submission
83
+ * @default "Your request has been submitted successfully. You will receive a confirmation email shortly."
84
+ */
85
+ confirmationMessage?: string;
86
+ /**
87
+ * Whether to require identity verification
88
+ * @default true
89
+ */
90
+ requireIdentityVerification?: boolean;
91
+ /**
92
+ * Types of identifiers accepted for verification
93
+ * @default ["email", "account", "customer_id"]
94
+ */
95
+ identifierTypes?: Array<{
96
+ id: string;
97
+ label: string;
98
+ }>;
99
+ /**
100
+ * Whether to collect additional contact information
101
+ * @default true
102
+ */
103
+ collectAdditionalContact?: boolean;
104
+ /**
105
+ * Custom labels for form fields
106
+ */
107
+ labels?: {
108
+ name?: string;
109
+ email?: string;
110
+ requestType?: string;
111
+ description?: string;
112
+ submit?: string;
113
+ };
114
+ /**
115
+ * Object of CSS class overrides keyed by semantic section name.
116
+ */
117
+ classNames?: DSRRequestFormClassNames;
118
+ /**
119
+ * When true, all default Tailwind classes are removed so consumers
120
+ * can style from scratch using classNames.
121
+ */
122
+ unstyled?: boolean;
123
+ /**
124
+ * Whether the form is currently submitting.
125
+ * When true, the submit button is disabled and shows "Submitting..." text.
126
+ */
127
+ isSubmitting?: boolean;
128
+ /**
129
+ * Default values to pre-fill form fields.
130
+ * Useful for editing existing requests or pre-populating known data.
131
+ */
132
+ defaultValues?: Partial<DSRFormSubmission>;
133
+ /**
134
+ * Callback fired when the form is reset via the Reset button.
135
+ * To fully remount the component (clearing all internal state),
136
+ * change the `key` prop from the parent.
137
+ */
138
+ onReset?: () => void;
139
+ }
140
+ /**
141
+ * Data Subject Request form component. Implements NDPA Part IV, Sections 29-36
142
+ * covering data subject rights including access, rectification, erasure, and portability.
143
+ */
144
+ declare const DSRRequestForm: React__default.FC<DSRRequestFormProps>;
145
+
146
+ export { type DSRFormSubmission as D, DSRRequestForm as a, type DSRRequestFormClassNames as b, type DSRRequestFormProps as c };
@@ -0,0 +1,163 @@
1
+ import React__default from 'react';
2
+ import { D as DSRRequest, a as DSRStatus } from './dsr-Cm9lzWG7.mjs';
3
+
4
+ interface DSRDashboardClassNames {
5
+ root?: string;
6
+ header?: string;
7
+ title?: string;
8
+ filters?: string;
9
+ requestList?: string;
10
+ requestItem?: string;
11
+ statusBadge?: string;
12
+ detailPanel?: string;
13
+ }
14
+ interface DSRDashboardProps {
15
+ /**
16
+ * List of DSR requests to display
17
+ */
18
+ requests: DSRRequest[];
19
+ /**
20
+ * Callback function called when a request is selected
21
+ */
22
+ onSelectRequest?: (requestId: string) => void;
23
+ /**
24
+ * Callback function called when a request status is updated
25
+ */
26
+ onUpdateStatus?: (requestId: string, status: DSRStatus) => void;
27
+ /**
28
+ * Callback function called when a request is assigned
29
+ */
30
+ onAssignRequest?: (requestId: string, assignee: string) => void;
31
+ /**
32
+ * Title displayed on the dashboard
33
+ * @default "Data Subject Request Dashboard"
34
+ */
35
+ title?: string;
36
+ /**
37
+ * Description text displayed on the dashboard
38
+ * @default "Track and manage data subject requests in compliance with NDPA Part IV requirements."
39
+ */
40
+ description?: string;
41
+ /**
42
+ * Custom CSS class for the dashboard
43
+ */
44
+ className?: string;
45
+ /**
46
+ * Custom CSS class for the buttons
47
+ */
48
+ buttonClassName?: string;
49
+ /**
50
+ * Whether to show the request details
51
+ * @default true
52
+ */
53
+ showRequestDetails?: boolean;
54
+ /**
55
+ * Whether to show the request timeline
56
+ * @default true
57
+ */
58
+ showRequestTimeline?: boolean;
59
+ /**
60
+ * Whether to show the deadline alerts
61
+ * @default true
62
+ */
63
+ showDeadlineAlerts?: boolean;
64
+ /**
65
+ * List of possible assignees
66
+ */
67
+ assignees?: string[];
68
+ /**
69
+ * Object of CSS class overrides keyed by semantic section name.
70
+ */
71
+ classNames?: DSRDashboardClassNames;
72
+ /**
73
+ * When true, all default Tailwind classes are removed so consumers
74
+ * can style from scratch using classNames.
75
+ */
76
+ unstyled?: boolean;
77
+ }
78
+ /**
79
+ * Data Subject Request dashboard component. Supports compliance with NDPA Part IV,
80
+ * providing tools to track, manage, and respond to data subject requests within required timeframes.
81
+ */
82
+ declare const DSRDashboard: React__default.FC<DSRDashboardProps>;
83
+
84
+ interface DSRTrackerClassNames {
85
+ root?: string;
86
+ header?: string;
87
+ title?: string;
88
+ stats?: string;
89
+ statCard?: string;
90
+ table?: string;
91
+ tableHeader?: string;
92
+ tableRow?: string;
93
+ statusBadge?: string;
94
+ }
95
+ interface DSRTrackerProps {
96
+ /**
97
+ * List of DSR requests to track
98
+ */
99
+ requests: DSRRequest[];
100
+ /**
101
+ * Callback function called when a request is selected
102
+ */
103
+ onSelectRequest?: (requestId: string) => void;
104
+ /**
105
+ * Title displayed on the tracker
106
+ * @default "DSR Request Tracker"
107
+ */
108
+ title?: string;
109
+ /**
110
+ * Description text displayed on the tracker
111
+ * @default "Track the status and progress of data subject requests as required by NDPA Part IV."
112
+ */
113
+ description?: string;
114
+ /**
115
+ * Custom CSS class for the tracker
116
+ */
117
+ className?: string;
118
+ /**
119
+ * Custom CSS class for the buttons
120
+ */
121
+ buttonClassName?: string;
122
+ /**
123
+ * Whether to show the summary statistics
124
+ * @default true
125
+ */
126
+ showSummaryStats?: boolean;
127
+ /**
128
+ * Whether to show the request type breakdown
129
+ * @default true
130
+ */
131
+ showTypeBreakdown?: boolean;
132
+ /**
133
+ * Whether to show the status breakdown
134
+ * @default true
135
+ */
136
+ showStatusBreakdown?: boolean;
137
+ /**
138
+ * Whether to show the timeline chart
139
+ * @default true
140
+ */
141
+ showTimelineChart?: boolean;
142
+ /**
143
+ * Whether to show the overdue requests
144
+ * @default true
145
+ */
146
+ showOverdueRequests?: boolean;
147
+ /**
148
+ * Object of CSS class overrides keyed by semantic section name.
149
+ */
150
+ classNames?: DSRTrackerClassNames;
151
+ /**
152
+ * When true, all default Tailwind classes are removed so consumers
153
+ * can style from scratch using classNames.
154
+ */
155
+ unstyled?: boolean;
156
+ }
157
+ /**
158
+ * DSR tracking and analytics component. Supports compliance with NDPA Part IV,
159
+ * providing summary statistics, deadline tracking, and compliance metrics for data subject requests.
160
+ */
161
+ declare const DSRTracker: React__default.FC<DSRTrackerProps>;
162
+
163
+ export { DSRDashboard as D, type DSRDashboardClassNames as a, DSRTracker as b, type DSRTrackerClassNames as c, type DSRDashboardProps as d, type DSRTrackerProps as e };