@tantainnovative/ndpr-toolkit 2.1.2 → 2.4.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 (152) hide show
  1. package/README.md +73 -2
  2. package/dist/{breach-6z0r-KuE.d.mts → breach-B_-6lDqS.d.mts} +1 -1
  3. package/dist/{breach-BFfnvtRk.d.ts → breach-CzXqSsaY.d.ts} +1 -1
  4. package/dist/{breach-BtFbDOmV.d.mts → breach-Eu9byel8.d.mts} +1 -1
  5. package/dist/{breach-BtFbDOmV.d.ts → breach-Eu9byel8.d.ts} +1 -1
  6. package/dist/breach-ouXoVTWs.d.ts +438 -0
  7. package/dist/breach-yRiyyc4n.d.mts +438 -0
  8. package/dist/breach.d.mts +5 -275
  9. package/dist/breach.d.ts +5 -275
  10. package/dist/breach.js +1 -1
  11. package/dist/breach.mjs +1 -1
  12. package/dist/chunk-2XFAV267.mjs +2 -0
  13. package/dist/chunk-32UIWTGD.js +72 -0
  14. package/dist/chunk-4JUDKBA2.mjs +7 -0
  15. package/dist/chunk-4VVARDN2.mjs +2 -0
  16. package/dist/chunk-5RSOLEEP.js +63 -0
  17. package/dist/chunk-AYKLAEOU.mjs +2 -0
  18. package/dist/chunk-BGHQTZAC.js +94 -0
  19. package/dist/chunk-BZTTQS4A.mjs +7 -0
  20. package/dist/chunk-CAB7O3GR.mjs +63 -0
  21. package/dist/chunk-CL53OI3I.js +7 -0
  22. package/dist/chunk-E64TU6IU.js +2 -0
  23. package/dist/chunk-EKVTLHBQ.js +2 -0
  24. package/dist/chunk-ELKEZEV5.mjs +2 -0
  25. package/dist/chunk-EPF7J2FK.js +3 -0
  26. package/dist/chunk-ER7X6E36.js +2 -0
  27. package/dist/chunk-FXTZDKDC.mjs +3 -0
  28. package/dist/chunk-IBEKLDBY.mjs +2 -0
  29. package/dist/chunk-ILCNDOBU.js +2 -0
  30. package/dist/chunk-K3GMTMQ6.js +2 -0
  31. package/dist/chunk-MJGOLP5M.js +2 -0
  32. package/dist/chunk-NW4A3JW6.mjs +2 -0
  33. package/dist/chunk-P3PULLYP.mjs +2 -0
  34. package/dist/chunk-SKJCQKFL.mjs +94 -0
  35. package/dist/chunk-TCJCE6WN.js +2 -0
  36. package/dist/chunk-UZ5EZOA7.js +2 -0
  37. package/dist/chunk-WSHSHIIM.mjs +2 -0
  38. package/dist/chunk-XMYUYQH7.mjs +72 -0
  39. package/dist/chunk-ZNTMZ6NM.js +7 -0
  40. package/dist/consent-audit-BdByjYlM.d.mts +65 -0
  41. package/dist/consent-audit-DhbfMR0n.d.ts +65 -0
  42. package/dist/consent.d.mts +120 -7
  43. package/dist/consent.d.ts +120 -7
  44. package/dist/consent.js +1 -1
  45. package/dist/consent.mjs +1 -1
  46. package/dist/core.d.mts +62 -12
  47. package/dist/core.d.ts +62 -12
  48. package/dist/core.js +1 -1
  49. package/dist/core.mjs +1 -1
  50. package/dist/{cross-border-BrIy1ieh.d.ts → cross-border-BMcqLvjC.d.mts} +1 -1
  51. package/dist/{cross-border-BrIy1ieh.d.mts → cross-border-BMcqLvjC.d.ts} +1 -1
  52. package/dist/cross-border-entry-BrWVPly6.d.ts +91 -0
  53. package/dist/cross-border-entry-cCTvpwnT.d.mts +91 -0
  54. package/dist/cross-border.d.mts +4 -58
  55. package/dist/cross-border.d.ts +4 -58
  56. package/dist/cross-border.js +1 -1
  57. package/dist/cross-border.mjs +1 -1
  58. package/dist/{dpia-vWfE_9bO.d.mts → dpia-5OQVA1R_.d.mts} +1 -1
  59. package/dist/{dpia-vWfE_9bO.d.ts → dpia-5OQVA1R_.d.ts} +1 -1
  60. package/dist/{dpia-fdtTd2DI.d.ts → dpia-B0Pok5us.d.ts} +1 -1
  61. package/dist/{dpia-B9ZZJG5a.d.mts → dpia-CUfOmzvX.d.mts} +1 -1
  62. package/dist/dpia.d.mts +119 -5
  63. package/dist/dpia.d.ts +119 -5
  64. package/dist/dpia.js +1 -1
  65. package/dist/dpia.mjs +1 -1
  66. package/dist/dsr-190YpijW.d.ts +307 -0
  67. package/dist/dsr-BTT-Xd7H.d.mts +307 -0
  68. package/dist/{dsr-pQzQ3H1O.d.mts → dsr-Cm9lzWG7.d.mts} +1 -1
  69. package/dist/{dsr-pQzQ3H1O.d.ts → dsr-Cm9lzWG7.d.ts} +1 -1
  70. package/dist/{dsr-whPkiI0_.d.mts → dsr-D_eTNc4S.d.mts} +1 -1
  71. package/dist/{dsr-jq5NUEdz.d.ts → dsr-pNtVb1BK.d.ts} +1 -1
  72. package/dist/dsr.d.mts +5 -192
  73. package/dist/dsr.d.ts +5 -192
  74. package/dist/dsr.js +1 -1
  75. package/dist/dsr.mjs +1 -1
  76. package/dist/hooks.d.mts +14 -14
  77. package/dist/hooks.d.ts +14 -14
  78. package/dist/hooks.js +1 -1
  79. package/dist/hooks.mjs +1 -1
  80. package/dist/index.d.mts +28 -27
  81. package/dist/index.d.ts +28 -27
  82. package/dist/index.js +1 -1
  83. package/dist/index.mjs +1 -1
  84. package/dist/{lawful-basis-v04AhbK2.d.ts → lawful-basis-BEyI0kGg.d.ts} +2 -2
  85. package/dist/{lawful-basis-D-oXFizg.d.mts → lawful-basis-C2eGaoHM.d.mts} +2 -2
  86. package/dist/{lawful-basis-CWtvDG1x.d.mts → lawful-basis-Cv1VmDLn.d.mts} +1 -1
  87. package/dist/{lawful-basis-CWtvDG1x.d.ts → lawful-basis-Cv1VmDLn.d.ts} +1 -1
  88. package/dist/lawful-basis-entry-15qjKcNO.d.ts +87 -0
  89. package/dist/lawful-basis-entry-CxZrofwG.d.mts +87 -0
  90. package/dist/lawful-basis.d.mts +5 -55
  91. package/dist/lawful-basis.d.ts +5 -55
  92. package/dist/lawful-basis.js +1 -1
  93. package/dist/lawful-basis.mjs +1 -1
  94. package/dist/policy-D2_jh5-T.d.ts +293 -0
  95. package/dist/policy-E0fXZkda.d.mts +293 -0
  96. package/dist/policy-templates-CIKcV0i1.d.ts +36 -0
  97. package/dist/policy-templates-DMsPwOSZ.d.mts +36 -0
  98. package/dist/policy.d.mts +5 -195
  99. package/dist/policy.d.ts +5 -195
  100. package/dist/policy.js +1 -1
  101. package/dist/policy.mjs +1 -1
  102. package/dist/{ropa-Rb4dsFSz.d.mts → ropa-DP7pPPql.d.mts} +2 -2
  103. package/dist/{ropa-BebGfqKQ.d.ts → ropa-Li6UlL5H.d.ts} +2 -2
  104. package/dist/ropa-entry-B0D7X1GV.d.ts +80 -0
  105. package/dist/ropa-entry-DiOThOc2.d.mts +80 -0
  106. package/dist/ropa.d.mts +5 -45
  107. package/dist/ropa.d.ts +5 -45
  108. package/dist/ropa.js +1 -1
  109. package/dist/ropa.mjs +1 -1
  110. package/dist/styles.css +40 -28
  111. package/dist/styles.d.ts +1 -0
  112. package/dist/unstyled.js +1 -1
  113. package/dist/unstyled.mjs +1 -1
  114. package/dist/{useBreach-WrZzJilM.d.mts → useBreach-BBSoIcZO.d.mts} +1 -1
  115. package/dist/{useBreach-vrh_XMpI.d.ts → useBreach-lFLbSyAN.d.ts} +1 -1
  116. package/dist/{useCrossBorderTransfer-TVnY8_UX.d.mts → useCrossBorderTransfer-BZVFCXfr.d.mts} +1 -1
  117. package/dist/{useCrossBorderTransfer-D4FQYfFt.d.ts → useCrossBorderTransfer-DmtACeqW.d.ts} +1 -1
  118. package/dist/{useDPIA-DFDHBLSa.d.ts → useDPIA-DBsg2yZx.d.ts} +1 -1
  119. package/dist/{useDPIA-FqPofFaV.d.mts → useDPIA-Da7-Q_yW.d.mts} +1 -1
  120. package/dist/{useDSR-DAqqOBXb.d.ts → useDSR-CYI7WCXr.d.ts} +1 -1
  121. package/dist/{useDSR-OXM5Q9rf.d.mts → useDSR-YYZ6FYFs.d.mts} +1 -1
  122. package/dist/{usePrivacyPolicy-CfySfBLS.d.ts → useDefaultPrivacyPolicy-B7kTHbZh.d.ts} +39 -2
  123. package/dist/{usePrivacyPolicy-Dit2sFuV.d.mts → useDefaultPrivacyPolicy-CUluF_ic.d.mts} +39 -2
  124. package/dist/{useLawfulBasis-RILM_xsx.d.ts → useLawfulBasis-CCWF9waR.d.ts} +2 -2
  125. package/dist/{useLawfulBasis-DNQ8YszQ.d.mts → useLawfulBasis-CpWuHtyh.d.mts} +2 -2
  126. package/dist/{useROPA-Bcs6cRdi.d.ts → useROPA-BhJ3kvHp.d.ts} +1 -1
  127. package/dist/{useROPA-nmcSiUYv.d.mts → useROPA-DLFdjkxP.d.mts} +1 -1
  128. package/package.json +30 -21
  129. package/dist/chunk-2XHD22J7.mjs +0 -7
  130. package/dist/chunk-4DKT6IB6.js +0 -94
  131. package/dist/chunk-6JFTAYXV.mjs +0 -2
  132. package/dist/chunk-6JVYYLS7.js +0 -2
  133. package/dist/chunk-6SGG6WPA.mjs +0 -2
  134. package/dist/chunk-AQEGDEQM.js +0 -7
  135. package/dist/chunk-C2IJWCZQ.mjs +0 -2
  136. package/dist/chunk-DB3JH4DS.mjs +0 -2
  137. package/dist/chunk-FFW7RUAG.mjs +0 -94
  138. package/dist/chunk-FK3CSFLJ.js +0 -2
  139. package/dist/chunk-IWUUVRLJ.js +0 -2
  140. package/dist/chunk-JUN6YPLL.mjs +0 -72
  141. package/dist/chunk-L3FKTBGV.js +0 -72
  142. package/dist/chunk-PM7CMTMB.js +0 -4
  143. package/dist/chunk-RB26MIRI.js +0 -2
  144. package/dist/chunk-RHWW5FDP.js +0 -16
  145. package/dist/chunk-SLNMKGQ2.mjs +0 -2
  146. package/dist/chunk-UUWVBENC.js +0 -2
  147. package/dist/chunk-UYP64PV7.mjs +0 -4
  148. package/dist/chunk-XMKA6GVK.mjs +0 -16
  149. package/dist/consent-DCc5zjXI.d.mts +0 -24
  150. package/dist/consent-DLWb5ota.d.ts +0 -24
  151. package/dist/privacy-9FcJceMr.d.mts +0 -15
  152. package/dist/privacy-BXz7O2ej.d.ts +0 -15
@@ -0,0 +1,438 @@
1
+ import React from 'react';
2
+ import { B as BreachCategory, a as BreachReport, b as RiskAssessment, R as RegulatoryNotification } from './breach-Eu9byel8.mjs';
3
+ import './useBreach-BBSoIcZO.mjs';
4
+ import './breach-B_-6lDqS.mjs';
5
+
6
+ /**
7
+ * Represents the data submitted by the breach report form.
8
+ */
9
+ interface BreachFormSubmission {
10
+ /** Title/summary of the breach */
11
+ title: string;
12
+ /** Detailed description of the breach */
13
+ description: string;
14
+ /** Breach category identifier */
15
+ category: string;
16
+ /** Timestamp (ms) when the breach was discovered */
17
+ discoveredAt: number;
18
+ /** Timestamp (ms) when the breach occurred (if known) */
19
+ occurredAt?: number;
20
+ /** Timestamp (ms) when the form was submitted */
21
+ reportedAt: number;
22
+ /** Person reporting the breach */
23
+ reporter: {
24
+ name: string;
25
+ email: string;
26
+ department: string;
27
+ phone?: string;
28
+ };
29
+ /** Systems or applications affected by the breach */
30
+ affectedSystems: string[];
31
+ /** Types of data involved in the breach */
32
+ dataTypes: string[];
33
+ /** Estimated number of affected data subjects */
34
+ estimatedAffectedSubjects?: number;
35
+ /** Current status of the breach */
36
+ status: 'ongoing' | 'contained' | 'resolved';
37
+ /** Initial actions taken to address the breach */
38
+ initialActions?: string;
39
+ /** File attachments included with the report */
40
+ attachments: Array<{
41
+ name: string;
42
+ type: string;
43
+ size: number;
44
+ file: File;
45
+ }>;
46
+ }
47
+ interface BreachReportFormClassNames {
48
+ root?: string;
49
+ title?: string;
50
+ form?: string;
51
+ fieldGroup?: string;
52
+ label?: string;
53
+ input?: string;
54
+ select?: string;
55
+ textarea?: string;
56
+ submitButton?: string;
57
+ /** Alias for submitButton */
58
+ primaryButton?: string;
59
+ notice?: string;
60
+ /** Custom class applied when isSubmitting is true (e.g. a loading overlay) */
61
+ loadingOverlay?: string;
62
+ }
63
+ interface BreachReportFormProps {
64
+ /**
65
+ * Available breach categories
66
+ */
67
+ categories: BreachCategory[];
68
+ /**
69
+ * Callback function called when form is submitted
70
+ */
71
+ onSubmit: (data: BreachFormSubmission) => void;
72
+ /**
73
+ * Callback function called when form validation fails
74
+ */
75
+ onValidationError?: (errors: Record<string, string>) => void;
76
+ /**
77
+ * Title displayed on the form
78
+ * @default "Report a Data Breach"
79
+ */
80
+ title?: string;
81
+ /**
82
+ * Description text displayed on the form
83
+ * @default "Use this form to report a suspected or confirmed data breach in accordance with NDPA Section 40. All fields marked with * are required."
84
+ */
85
+ formDescription?: string;
86
+ /**
87
+ * Text for the submit button
88
+ * @default "Submit Report"
89
+ */
90
+ submitButtonText?: string;
91
+ /**
92
+ * Custom CSS class for the form
93
+ */
94
+ className?: string;
95
+ /**
96
+ * Custom CSS class for the submit button
97
+ */
98
+ buttonClassName?: string;
99
+ /**
100
+ * Override class names for individual elements
101
+ */
102
+ classNames?: BreachReportFormClassNames;
103
+ /**
104
+ * Remove all default styles, only applying classNames overrides
105
+ */
106
+ unstyled?: boolean;
107
+ /**
108
+ * Whether the form is currently submitting.
109
+ * When true, the submit button is disabled and shows "Submitting..." text.
110
+ */
111
+ isSubmitting?: boolean;
112
+ /**
113
+ * Whether to show a confirmation message after submission
114
+ * @default true
115
+ */
116
+ showConfirmation?: boolean;
117
+ /**
118
+ * Confirmation message to display after submission
119
+ * @default "Your breach report has been submitted successfully. The data protection team has been notified."
120
+ */
121
+ confirmationMessage?: string;
122
+ /**
123
+ * Whether to allow file attachments
124
+ * @default true
125
+ */
126
+ allowAttachments?: boolean;
127
+ /**
128
+ * Maximum number of attachments allowed
129
+ * @default 5
130
+ */
131
+ maxAttachments?: number;
132
+ /**
133
+ * Maximum file size for attachments (in bytes)
134
+ * @default 5242880 (5MB)
135
+ */
136
+ maxFileSize?: number;
137
+ /**
138
+ * Allowed file types for attachments
139
+ * @default ['.pdf', '.jpg', '.jpeg', '.png', '.doc', '.docx', '.xls', '.xlsx', '.txt']
140
+ */
141
+ allowedFileTypes?: string[];
142
+ /**
143
+ * Default values to pre-fill form fields.
144
+ * Useful for editing existing breach reports or pre-populating known data.
145
+ */
146
+ defaultValues?: Partial<BreachFormSubmission>;
147
+ /**
148
+ * Callback fired when the form is reset via the Reset button.
149
+ * To fully remount the component (clearing all internal state),
150
+ * change the `key` prop from the parent.
151
+ */
152
+ onReset?: () => void;
153
+ }
154
+ /**
155
+ * Breach report form component. Implements NDPA Section 40 breach notification requirements,
156
+ * enabling organizations to document and report data breaches within the mandated 72-hour window.
157
+ */
158
+ declare const BreachReportForm: React.FC<BreachReportFormProps>;
159
+
160
+ interface BreachRiskAssessmentClassNames {
161
+ root?: string;
162
+ header?: string;
163
+ title?: string;
164
+ slider?: string;
165
+ riskBadge?: string;
166
+ riskScore?: string;
167
+ notificationStatus?: string;
168
+ submitButton?: string;
169
+ /** Alias for submitButton */
170
+ primaryButton?: string;
171
+ }
172
+ interface BreachRiskAssessmentProps {
173
+ /**
174
+ * The breach data to assess
175
+ */
176
+ breachData: BreachReport;
177
+ /**
178
+ * Initial assessment data (if editing an existing assessment)
179
+ */
180
+ initialAssessment?: Partial<RiskAssessment>;
181
+ /**
182
+ * Callback function called when assessment is completed
183
+ */
184
+ onComplete: (assessment: RiskAssessment) => void;
185
+ /**
186
+ * Title displayed on the assessment form
187
+ * @default "Breach Risk Assessment"
188
+ */
189
+ title?: string;
190
+ /**
191
+ * Description text displayed on the assessment form
192
+ * @default "Assess the risk level of this data breach to determine notification requirements under NDPA Section 40."
193
+ */
194
+ description?: string;
195
+ /**
196
+ * Text for the submit button
197
+ * @default "Complete Assessment"
198
+ */
199
+ submitButtonText?: string;
200
+ /**
201
+ * Custom CSS class for the form
202
+ */
203
+ className?: string;
204
+ /**
205
+ * Custom CSS class for the submit button
206
+ */
207
+ buttonClassName?: string;
208
+ /**
209
+ * Override class names for individual elements
210
+ */
211
+ classNames?: BreachRiskAssessmentClassNames;
212
+ /**
213
+ * Remove all default styles, only applying classNames overrides
214
+ */
215
+ unstyled?: boolean;
216
+ /**
217
+ * Whether to show the breach summary
218
+ * @default true
219
+ */
220
+ showBreachSummary?: boolean;
221
+ /**
222
+ * Whether to show notification requirements after assessment
223
+ * @default true
224
+ */
225
+ showNotificationRequirements?: boolean;
226
+ }
227
+ /**
228
+ * Breach risk assessment component. Implements NDPA Section 40 requirements for assessing
229
+ * breach severity and determining whether NDPC notification is required within 72 hours.
230
+ */
231
+ declare const BreachRiskAssessment: React.FC<BreachRiskAssessmentProps>;
232
+
233
+ interface BreachNotificationManagerClassNames {
234
+ root?: string;
235
+ header?: string;
236
+ title?: string;
237
+ breachList?: string;
238
+ breachItem?: string;
239
+ statusBadge?: string;
240
+ timeline?: string;
241
+ timelineStep?: string;
242
+ detailPanel?: string;
243
+ }
244
+ interface BreachNotificationManagerProps {
245
+ /**
246
+ * List of breach reports to manage
247
+ */
248
+ breachReports: BreachReport[];
249
+ /**
250
+ * List of risk assessments
251
+ */
252
+ riskAssessments: RiskAssessment[];
253
+ /**
254
+ * List of regulatory notifications
255
+ */
256
+ regulatoryNotifications: RegulatoryNotification[];
257
+ /**
258
+ * Callback function called when a breach is selected
259
+ */
260
+ onSelectBreach?: (breachId: string) => void;
261
+ /**
262
+ * Callback function called when a risk assessment is requested
263
+ */
264
+ onRequestAssessment?: (breachId: string) => void;
265
+ /**
266
+ * Callback function called when a notification is requested
267
+ */
268
+ onRequestNotification?: (breachId: string) => void;
269
+ /**
270
+ * Title displayed on the manager
271
+ * @default "Breach Notification Manager"
272
+ */
273
+ title?: string;
274
+ /**
275
+ * Description text displayed on the manager
276
+ * @default "Manage data breach notifications and track compliance with NDPA Section 40 requirements."
277
+ */
278
+ description?: string;
279
+ /**
280
+ * Custom CSS class for the manager
281
+ */
282
+ className?: string;
283
+ /**
284
+ * Custom CSS class for the buttons
285
+ */
286
+ buttonClassName?: string;
287
+ /**
288
+ * Override class names for individual elements
289
+ */
290
+ classNames?: BreachNotificationManagerClassNames;
291
+ /**
292
+ * Remove all default styles, only applying classNames overrides
293
+ */
294
+ unstyled?: boolean;
295
+ /**
296
+ * Whether to show the breach details
297
+ * @default true
298
+ */
299
+ showBreachDetails?: boolean;
300
+ /**
301
+ * Whether to show the notification timeline
302
+ * @default true
303
+ */
304
+ showNotificationTimeline?: boolean;
305
+ /**
306
+ * Whether to show the deadline alerts
307
+ * @default true
308
+ */
309
+ showDeadlineAlerts?: boolean;
310
+ }
311
+ /**
312
+ * Breach notification management component. Implements NDPA Section 40 requirements for
313
+ * managing breach notifications, tracking 72-hour NDPC reporting deadlines, and coordinating
314
+ * data subject notifications.
315
+ */
316
+ declare const BreachNotificationManager: React.FC<BreachNotificationManagerProps>;
317
+
318
+ interface RegulatoryReportGeneratorClassNames {
319
+ root?: string;
320
+ header?: string;
321
+ title?: string;
322
+ reportPreview?: string;
323
+ field?: string;
324
+ fieldLabel?: string;
325
+ fieldValue?: string;
326
+ generateButton?: string;
327
+ /** Alias for generateButton */
328
+ primaryButton?: string;
329
+ downloadButton?: string;
330
+ /** Alias for downloadButton */
331
+ secondaryButton?: string;
332
+ }
333
+ interface OrganizationInfo {
334
+ /**
335
+ * Name of the organization
336
+ */
337
+ name: string;
338
+ /**
339
+ * Registration number or business ID
340
+ */
341
+ registrationNumber?: string;
342
+ /**
343
+ * Physical address of the organization
344
+ */
345
+ address: string;
346
+ /**
347
+ * Website URL
348
+ */
349
+ website?: string;
350
+ /**
351
+ * Name of the Data Protection Officer
352
+ */
353
+ dpoName: string;
354
+ /**
355
+ * Email of the Data Protection Officer
356
+ */
357
+ dpoEmail: string;
358
+ /**
359
+ * Phone number of the Data Protection Officer
360
+ */
361
+ dpoPhone?: string;
362
+ }
363
+ interface RegulatoryReportGeneratorProps {
364
+ /**
365
+ * The breach data to include in the report
366
+ */
367
+ breachData: BreachReport;
368
+ /**
369
+ * The risk assessment data
370
+ */
371
+ assessmentData?: RiskAssessment;
372
+ /**
373
+ * Organization information to include in the report
374
+ */
375
+ organizationInfo: OrganizationInfo;
376
+ /**
377
+ * Callback function called when the report is generated
378
+ */
379
+ onGenerate: (report: RegulatoryNotification) => void;
380
+ /**
381
+ * Title displayed on the generator form
382
+ * @default "Generate NDPC Notification Report"
383
+ */
384
+ title?: string;
385
+ /**
386
+ * Description text displayed on the generator form
387
+ * @default "Generate a report for submission to the NDPC in compliance with NDPA Section 40 breach notification requirements."
388
+ */
389
+ description?: string;
390
+ /**
391
+ * Text for the generate button
392
+ * @default "Generate Report"
393
+ */
394
+ generateButtonText?: string;
395
+ /**
396
+ * Custom CSS class for the form
397
+ */
398
+ className?: string;
399
+ /**
400
+ * Custom CSS class for the buttons
401
+ */
402
+ buttonClassName?: string;
403
+ /**
404
+ * Override class names for individual elements
405
+ */
406
+ classNames?: RegulatoryReportGeneratorClassNames;
407
+ /**
408
+ * Remove all default styles, only applying classNames overrides
409
+ */
410
+ unstyled?: boolean;
411
+ /**
412
+ * Whether to show a preview of the generated report
413
+ * @default true
414
+ */
415
+ showPreview?: boolean;
416
+ /**
417
+ * Whether to allow editing the report content
418
+ * @default true
419
+ */
420
+ allowEditing?: boolean;
421
+ /**
422
+ * Whether to allow downloading the report
423
+ * @default true
424
+ */
425
+ allowDownload?: boolean;
426
+ /**
427
+ * Format for downloading the report
428
+ * @default "pdf"
429
+ */
430
+ downloadFormat?: 'pdf' | 'docx' | 'html';
431
+ }
432
+ /**
433
+ * Regulatory report generator component. Implements NDPA Section 40 requirements for
434
+ * generating formal breach notification reports for submission to the NDPC.
435
+ */
436
+ declare const RegulatoryReportGenerator: React.FC<RegulatoryReportGeneratorProps>;
437
+
438
+ export { type BreachFormSubmission as B, RegulatoryReportGenerator as R, BreachNotificationManager as a, type BreachNotificationManagerClassNames as b, BreachReportForm as c, type BreachReportFormClassNames as d, BreachRiskAssessment as e, type BreachRiskAssessmentClassNames as f, type RegulatoryReportGeneratorClassNames as g };
package/dist/breach.d.mts CHANGED
@@ -1,275 +1,5 @@
1
- import React from 'react';
2
- import { a as BreachCategory, B as BreachReport, R as RiskAssessment, b as RegulatoryNotification } from './breach-BtFbDOmV.mjs';
3
- export { N as NotificationRequirement } from './breach-BtFbDOmV.mjs';
4
- export { u as useBreach } from './useBreach-WrZzJilM.mjs';
5
- export { c as calculateBreachSeverity } from './breach-6z0r-KuE.mjs';
6
-
7
- interface BreachReportFormProps {
8
- /**
9
- * Available breach categories
10
- */
11
- categories: BreachCategory[];
12
- /**
13
- * Callback function called when form is submitted
14
- */
15
- onSubmit: (formData: any) => void;
16
- /**
17
- * Title displayed on the form
18
- * @default "Report a Data Breach"
19
- */
20
- title?: string;
21
- /**
22
- * Description text displayed on the form
23
- * @default "Use this form to report a suspected or confirmed data breach. All fields marked with * are required."
24
- */
25
- formDescription?: string;
26
- /**
27
- * Text for the submit button
28
- * @default "Submit Report"
29
- */
30
- submitButtonText?: string;
31
- /**
32
- * Custom CSS class for the form
33
- */
34
- className?: string;
35
- /**
36
- * Custom CSS class for the submit button
37
- */
38
- buttonClassName?: string;
39
- /**
40
- * Whether to show a confirmation message after submission
41
- * @default true
42
- */
43
- showConfirmation?: boolean;
44
- /**
45
- * Confirmation message to display after submission
46
- * @default "Your breach report has been submitted successfully. The data protection team has been notified."
47
- */
48
- confirmationMessage?: string;
49
- /**
50
- * Whether to allow file attachments
51
- * @default true
52
- */
53
- allowAttachments?: boolean;
54
- /**
55
- * Maximum number of attachments allowed
56
- * @default 5
57
- */
58
- maxAttachments?: number;
59
- /**
60
- * Maximum file size for attachments (in bytes)
61
- * @default 5242880 (5MB)
62
- */
63
- maxFileSize?: number;
64
- /**
65
- * Allowed file types for attachments
66
- * @default ['.pdf', '.jpg', '.jpeg', '.png', '.doc', '.docx', '.xls', '.xlsx', '.txt']
67
- */
68
- allowedFileTypes?: string[];
69
- }
70
- declare const BreachReportForm: React.FC<BreachReportFormProps>;
71
-
72
- interface BreachRiskAssessmentProps {
73
- /**
74
- * The breach data to assess
75
- */
76
- breachData: BreachReport;
77
- /**
78
- * Initial assessment data (if editing an existing assessment)
79
- */
80
- initialAssessment?: Partial<RiskAssessment>;
81
- /**
82
- * Callback function called when assessment is completed
83
- */
84
- onComplete: (assessment: RiskAssessment) => void;
85
- /**
86
- * Title displayed on the assessment form
87
- * @default "Breach Risk Assessment"
88
- */
89
- title?: string;
90
- /**
91
- * Description text displayed on the assessment form
92
- * @default "Assess the risk level of this data breach to determine notification requirements."
93
- */
94
- description?: string;
95
- /**
96
- * Text for the submit button
97
- * @default "Complete Assessment"
98
- */
99
- submitButtonText?: string;
100
- /**
101
- * Custom CSS class for the form
102
- */
103
- className?: string;
104
- /**
105
- * Custom CSS class for the submit button
106
- */
107
- buttonClassName?: string;
108
- /**
109
- * Whether to show the breach summary
110
- * @default true
111
- */
112
- showBreachSummary?: boolean;
113
- /**
114
- * Whether to show notification requirements after assessment
115
- * @default true
116
- */
117
- showNotificationRequirements?: boolean;
118
- }
119
- declare const BreachRiskAssessment: React.FC<BreachRiskAssessmentProps>;
120
-
121
- interface BreachNotificationManagerProps {
122
- /**
123
- * List of breach reports to manage
124
- */
125
- breachReports: BreachReport[];
126
- /**
127
- * List of risk assessments
128
- */
129
- riskAssessments: RiskAssessment[];
130
- /**
131
- * List of regulatory notifications
132
- */
133
- regulatoryNotifications: RegulatoryNotification[];
134
- /**
135
- * Callback function called when a breach is selected
136
- */
137
- onSelectBreach?: (breachId: string) => void;
138
- /**
139
- * Callback function called when a risk assessment is requested
140
- */
141
- onRequestAssessment?: (breachId: string) => void;
142
- /**
143
- * Callback function called when a notification is requested
144
- */
145
- onRequestNotification?: (breachId: string) => void;
146
- /**
147
- * Title displayed on the manager
148
- * @default "Breach Notification Manager"
149
- */
150
- title?: string;
151
- /**
152
- * Description text displayed on the manager
153
- * @default "Manage data breach notifications and track compliance with NDPA requirements."
154
- */
155
- description?: string;
156
- /**
157
- * Custom CSS class for the manager
158
- */
159
- className?: string;
160
- /**
161
- * Custom CSS class for the buttons
162
- */
163
- buttonClassName?: string;
164
- /**
165
- * Whether to show the breach details
166
- * @default true
167
- */
168
- showBreachDetails?: boolean;
169
- /**
170
- * Whether to show the notification timeline
171
- * @default true
172
- */
173
- showNotificationTimeline?: boolean;
174
- /**
175
- * Whether to show the deadline alerts
176
- * @default true
177
- */
178
- showDeadlineAlerts?: boolean;
179
- }
180
- declare const BreachNotificationManager: React.FC<BreachNotificationManagerProps>;
181
-
182
- interface OrganizationInfo {
183
- /**
184
- * Name of the organization
185
- */
186
- name: string;
187
- /**
188
- * Registration number or business ID
189
- */
190
- registrationNumber?: string;
191
- /**
192
- * Physical address of the organization
193
- */
194
- address: string;
195
- /**
196
- * Website URL
197
- */
198
- website?: string;
199
- /**
200
- * Name of the Data Protection Officer
201
- */
202
- dpoName: string;
203
- /**
204
- * Email of the Data Protection Officer
205
- */
206
- dpoEmail: string;
207
- /**
208
- * Phone number of the Data Protection Officer
209
- */
210
- dpoPhone?: string;
211
- }
212
- interface RegulatoryReportGeneratorProps {
213
- /**
214
- * The breach data to include in the report
215
- */
216
- breachData: BreachReport;
217
- /**
218
- * The risk assessment data
219
- */
220
- assessmentData?: RiskAssessment;
221
- /**
222
- * Organization information to include in the report
223
- */
224
- organizationInfo: OrganizationInfo;
225
- /**
226
- * Callback function called when the report is generated
227
- */
228
- onGenerate: (report: RegulatoryNotification) => void;
229
- /**
230
- * Title displayed on the generator form
231
- * @default "Generate NDPC Notification Report"
232
- */
233
- title?: string;
234
- /**
235
- * Description text displayed on the generator form
236
- * @default "Generate a report for submission to the NDPC in compliance with the NDPA breach notification requirements."
237
- */
238
- description?: string;
239
- /**
240
- * Text for the generate button
241
- * @default "Generate Report"
242
- */
243
- generateButtonText?: string;
244
- /**
245
- * Custom CSS class for the form
246
- */
247
- className?: string;
248
- /**
249
- * Custom CSS class for the buttons
250
- */
251
- buttonClassName?: string;
252
- /**
253
- * Whether to show a preview of the generated report
254
- * @default true
255
- */
256
- showPreview?: boolean;
257
- /**
258
- * Whether to allow editing the report content
259
- * @default true
260
- */
261
- allowEditing?: boolean;
262
- /**
263
- * Whether to allow downloading the report
264
- * @default true
265
- */
266
- allowDownload?: boolean;
267
- /**
268
- * Format for downloading the report
269
- * @default "pdf"
270
- */
271
- downloadFormat?: 'pdf' | 'docx' | 'html';
272
- }
273
- declare const RegulatoryReportGenerator: React.FC<RegulatoryReportGeneratorProps>;
274
-
275
- export { BreachCategory, BreachNotificationManager, BreachReport, BreachReportForm, BreachRiskAssessment, RegulatoryNotification, RegulatoryReportGenerator, RiskAssessment };
1
+ export { a as BreachNotificationManager, b as BreachNotificationManagerClassNames, c as BreachReportForm, d as BreachReportFormClassNames, e as BreachRiskAssessment, f as BreachRiskAssessmentClassNames, R as RegulatoryReportGenerator, g as RegulatoryReportGeneratorClassNames } from './breach-yRiyyc4n.mjs';
2
+ export { u as useBreach } from './useBreach-BBSoIcZO.mjs';
3
+ export { c as calculateBreachSeverity } from './breach-B_-6lDqS.mjs';
4
+ export { B as BreachCategory, a as BreachReport, N as NotificationRequirement, R as RegulatoryNotification, b as RiskAssessment } from './breach-Eu9byel8.mjs';
5
+ import 'react';