@tantainnovative/ndpr-toolkit 3.3.1 → 3.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 (155) hide show
  1. package/CHANGELOG.md +529 -0
  2. package/dist/{ConsentBanner-CDRT0o2k.d.mts → ConsentBanner-F5ayys5K.d.mts} +10 -0
  3. package/dist/{ConsentBanner-Vxyt8SCX.d.ts → ConsentBanner-VqIPophc.d.ts} +10 -0
  4. package/dist/{styling-B7CBzYG7.d.ts → ConsentManager-C7I3PDe8.d.mts} +2 -62
  5. package/dist/{styling-uJLsBbER.d.mts → ConsentManager-CQ2IZtUU.d.ts} +2 -62
  6. package/dist/{sanitize-B0AzEm1D.d.mts → NDPRProvider-DYFb8xEl.d.ts} +2 -94
  7. package/dist/{sanitize-B0AzEm1D.d.ts → NDPRProvider-U3QNu6MA.d.mts} +2 -94
  8. package/dist/adapters.js +1 -1
  9. package/dist/adapters.mjs +1 -1
  10. package/dist/breach.js +1 -1
  11. package/dist/breach.mjs +1 -1
  12. package/dist/chunk-2WH4DLV5.js +3 -0
  13. package/dist/chunk-3NQQSU4P.js +2 -0
  14. package/dist/chunk-3VQAYQR7.js +7 -0
  15. package/dist/chunk-4R42ZNO7.mjs +318 -0
  16. package/dist/chunk-5HL4UBFV.js +2 -0
  17. package/dist/chunk-6HZL2WDU.mjs +2 -0
  18. package/dist/chunk-6QPRDQZF.js +2 -0
  19. package/dist/chunk-74Z23WUA.mjs +2 -0
  20. package/dist/chunk-AHSMDPG5.js +132 -0
  21. package/dist/chunk-BN77GP4W.mjs +2 -0
  22. package/dist/chunk-C5QO3SX4.js +2 -0
  23. package/dist/chunk-CISJAQ6W.mjs +2 -0
  24. package/dist/chunk-DUY6F3GT.mjs +94 -0
  25. package/dist/chunk-EHAZIKDX.js +81 -0
  26. package/dist/chunk-EPT2K355.mjs +2 -0
  27. package/dist/chunk-HGGLW5TE.js +2 -0
  28. package/dist/chunk-HQSU7LGM.js +94 -0
  29. package/dist/chunk-IZCWCE7W.mjs +2 -0
  30. package/dist/chunk-JBSCER34.js +2 -0
  31. package/dist/chunk-KF3EFJEF.mjs +3 -0
  32. package/dist/chunk-KSERBMXW.mjs +4 -0
  33. package/dist/chunk-LJNNPAFU.mjs +2 -0
  34. package/dist/{chunk-UXMGBIX6.js → chunk-LSCMXAPY.mjs} +4 -4
  35. package/dist/chunk-LSNL4XR5.js +2 -0
  36. package/dist/chunk-MG73MOZC.mjs +15 -0
  37. package/dist/chunk-NCOZB2WU.mjs +2 -0
  38. package/dist/chunk-NQNFS3QI.js +7 -0
  39. package/dist/{chunk-ZEOQYWOE.mjs → chunk-P2YV6DR3.js} +4 -4
  40. package/dist/chunk-P6QAFBCV.js +2 -0
  41. package/dist/chunk-QVULSG6J.mjs +3 -0
  42. package/dist/chunk-R5FW5XUQ.mjs +2 -0
  43. package/dist/chunk-RGNP45VR.js +2 -0
  44. package/dist/chunk-RLYTX3MM.js +2 -0
  45. package/dist/chunk-RNTNHVKZ.js +15 -0
  46. package/dist/chunk-RRVKUCFR.mjs +2 -0
  47. package/dist/chunk-RXL6CZAI.js +2 -0
  48. package/dist/chunk-RY3PGVLZ.mjs +2 -0
  49. package/dist/chunk-SUEGUY35.js +2 -0
  50. package/dist/chunk-SYMQJO2W.mjs +7 -0
  51. package/dist/chunk-TCN22KYP.mjs +7 -0
  52. package/dist/chunk-UFPSUO52.js +318 -0
  53. package/dist/chunk-VTITKWGX.mjs +2 -0
  54. package/dist/chunk-WH6ZMUOS.mjs +81 -0
  55. package/dist/chunk-WTJGLNTB.js +3 -0
  56. package/dist/chunk-XHROISIF.mjs +2 -0
  57. package/dist/chunk-XMBSJJ5U.js +4 -0
  58. package/dist/chunk-ZLSWOFAY.mjs +132 -0
  59. package/dist/chunk-ZPKVLTSX.js +2 -0
  60. package/dist/consent.d.mts +6 -4
  61. package/dist/consent.d.ts +6 -4
  62. package/dist/consent.js +1 -1
  63. package/dist/consent.mjs +1 -1
  64. package/dist/core.d.mts +6 -29
  65. package/dist/core.d.ts +6 -29
  66. package/dist/core.js +1 -1
  67. package/dist/core.mjs +1 -1
  68. package/dist/cross-border.js +1 -1
  69. package/dist/cross-border.mjs +1 -1
  70. package/dist/docx-BxKascXN.d.ts +64 -0
  71. package/dist/docx-CV7Vsry_.d.mts +64 -0
  72. package/dist/dpia.js +1 -1
  73. package/dist/dpia.mjs +1 -1
  74. package/dist/dsr.js +1 -1
  75. package/dist/dsr.mjs +1 -1
  76. package/dist/hooks.d.mts +3 -3
  77. package/dist/hooks.d.ts +3 -3
  78. package/dist/hooks.js +1 -1
  79. package/dist/hooks.mjs +1 -1
  80. package/dist/index.d.mts +7 -5
  81. package/dist/index.d.ts +7 -5
  82. package/dist/index.js +1 -1
  83. package/dist/index.mjs +1 -1
  84. package/dist/lawful-basis.js +1 -1
  85. package/dist/lawful-basis.mjs +1 -1
  86. package/dist/locale-CxJx2tzn.d.mts +25 -0
  87. package/dist/locale-DSkrtf-c.d.ts +25 -0
  88. package/dist/{policy-engine-C6nC2t3a.d.ts → policy-engine-CCUCud2T.d.ts} +1 -1
  89. package/dist/{policy-engine-DefZcX3R.d.mts → policy-engine-fYSqEqSW.d.mts} +1 -1
  90. package/dist/{policy-sections-DFDPVCCg.d.ts → policy-sections-BYx6fEFk.d.ts} +4 -2
  91. package/dist/{policy-sections-Bylm31kZ.d.mts → policy-sections-Dm97Nq8m.d.mts} +4 -2
  92. package/dist/{policy-templates-CIKcV0i1.d.ts → policy-templates-DhLwq4R-.d.ts} +8 -1
  93. package/dist/{policy-templates-DMsPwOSZ.d.mts → policy-templates-DwYl2329.d.mts} +8 -1
  94. package/dist/policy.d.mts +36 -71
  95. package/dist/policy.d.ts +36 -71
  96. package/dist/policy.js +1 -1
  97. package/dist/policy.mjs +1 -1
  98. package/dist/presets.d.mts +2 -2
  99. package/dist/presets.d.ts +2 -2
  100. package/dist/presets.js +1 -1
  101. package/dist/presets.mjs +1 -1
  102. package/dist/ropa.js +1 -1
  103. package/dist/ropa.mjs +1 -1
  104. package/dist/sanitize-CxxwKxAx.d.mts +94 -0
  105. package/dist/sanitize-CxxwKxAx.d.ts +94 -0
  106. package/dist/server.d.mts +24 -0
  107. package/dist/server.d.ts +24 -0
  108. package/dist/server.js +2 -0
  109. package/dist/server.mjs +2 -0
  110. package/dist/styles.css +1423 -31
  111. package/dist/styling-BMDGQDgS.d.mts +64 -0
  112. package/dist/styling-BaoQtV06.d.ts +64 -0
  113. package/dist/unstyled.d.mts +52 -19
  114. package/dist/unstyled.d.ts +52 -19
  115. package/dist/unstyled.js +1 -1
  116. package/dist/unstyled.mjs +1 -1
  117. package/dist/{useAdaptivePolicyWizard-A1PyOy6P.d.mts → useAdaptivePolicyWizard-BnjW4OR4.d.mts} +1 -1
  118. package/dist/{useAdaptivePolicyWizard-LVIKhAxw.d.ts → useAdaptivePolicyWizard-sb3m4-Zk.d.ts} +1 -1
  119. package/dist/{useDefaultPrivacyPolicy-ySWU7nc-.d.mts → useDefaultPrivacyPolicy-Cs2WQSYQ.d.mts} +30 -9
  120. package/dist/{useDefaultPrivacyPolicy-DvCbeEl1.d.ts → useDefaultPrivacyPolicy-DkOqMg2e.d.ts} +30 -9
  121. package/package.json +14 -2
  122. package/dist/chunk-25OOUES4.js +0 -2
  123. package/dist/chunk-4JKTIR33.mjs +0 -2
  124. package/dist/chunk-5BUS6AI7.js +0 -2
  125. package/dist/chunk-5ECDPRSZ.js +0 -7
  126. package/dist/chunk-6YN73KR7.mjs +0 -2
  127. package/dist/chunk-CDZDT2OS.mjs +0 -320
  128. package/dist/chunk-CWUPGY3M.mjs +0 -3
  129. package/dist/chunk-CYU6YUJQ.mjs +0 -81
  130. package/dist/chunk-EKHBORAH.js +0 -81
  131. package/dist/chunk-ENIMJ6SQ.js +0 -2
  132. package/dist/chunk-FLKJSGR7.mjs +0 -94
  133. package/dist/chunk-FWLPJ5YI.js +0 -94
  134. package/dist/chunk-GCQRHMTQ.mjs +0 -144
  135. package/dist/chunk-GMLCWGNJ.js +0 -7
  136. package/dist/chunk-GXLSOZCH.mjs +0 -2
  137. package/dist/chunk-LETEUS5X.mjs +0 -2
  138. package/dist/chunk-LU4PFST7.js +0 -144
  139. package/dist/chunk-NBSVFQ5G.js +0 -2
  140. package/dist/chunk-OYR3L4XS.mjs +0 -7
  141. package/dist/chunk-QF6XNKU6.mjs +0 -2
  142. package/dist/chunk-QJ3JNHO7.js +0 -2
  143. package/dist/chunk-QNCGRCAX.mjs +0 -2
  144. package/dist/chunk-SAA7UVI2.js +0 -3
  145. package/dist/chunk-TI2M7H6R.mjs +0 -7
  146. package/dist/chunk-TXXWCB5O.js +0 -320
  147. package/dist/chunk-UGY5ZYUG.js +0 -2
  148. package/dist/chunk-UO6QPJLH.js +0 -2
  149. package/dist/chunk-UX6ZZNEM.mjs +0 -3
  150. package/dist/chunk-XFUEZ3MP.mjs +0 -2
  151. package/dist/chunk-XHSHPB74.js +0 -2
  152. package/dist/chunk-YCX6BFOQ.js +0 -2
  153. package/dist/chunk-YURSF2YO.mjs +0 -2
  154. package/dist/chunk-YZXUAIYN.js +0 -3
  155. package/dist/chunk-ZT7KNFAU.mjs +0 -2
package/CHANGELOG.md ADDED
@@ -0,0 +1,529 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
4
+
5
+ ## [3.4.0](https://github.com/mr-tanta/ndpr-toolkit/compare/v3.3.1...v3.4.0) (2026-05-03)
6
+
7
+
8
+ ### Features
9
+
10
+ * **ndpr-toolkit:** complete BEM migration for all remaining components (3.5.x) ([052827a](https://github.com/mr-tanta/ndpr-toolkit/commit/052827a1c10390998c681d222070e797aa75acde))
11
+ * **ndpr-toolkit:** ship /server subpath for RSC-safe pure-logic imports ([5dbb24d](https://github.com/mr-tanta/ndpr-toolkit/commit/5dbb24dcd88235a4e184ef8cca7fdf105c35934d))
12
+ * **ndpr-toolkit:** styled-defaults UI strategy (B4 + S1) ([b875d3b](https://github.com/mr-tanta/ndpr-toolkit/commit/b875d3b66ad36a9df8b12431e1d95f9257537db1))
13
+
14
+
15
+ ### Bug Fixes
16
+
17
+ * **ndpr-toolkit:** auto-init useDefaultPrivacyPolicy + isolate PolicyPage CSS ([550e015](https://github.com/mr-tanta/ndpr-toolkit/commit/550e015f1011d975dea90e417cd699ee2fb9187d))
18
+ * **ndpr-toolkit:** packaging — style export, CHANGELOG, RSC directives ([d0bf85b](https://github.com/mr-tanta/ndpr-toolkit/commit/d0bf85b6990f02cb4aeb3dbaa448e5d5643cde29))
19
+ * **ndpr-toolkit:** policy templates no longer ship literal placeholders to production ([6c373a8](https://github.com/mr-tanta/ndpr-toolkit/commit/6c373a8dadf21a565539888042e2be36a1ba9510))
20
+ * **ndpr-toolkit:** unblock pnpm build, document core entry honestly ([ab2f5d7](https://github.com/mr-tanta/ndpr-toolkit/commit/ab2f5d7a031300e11180e093e9b3c14b793f957a))
21
+ * **ndpr-toolkit:** use direct localStorage check to detect rehydration race ([df81d9b](https://github.com/mr-tanta/ndpr-toolkit/commit/df81d9b42720b9265964a6f6405f767cf2c152c7))
22
+
23
+
24
+ ### Documentation
25
+
26
+ * **phase1:** add v3.3.1 integration feedback triage ([37b4a92](https://github.com/mr-tanta/ndpr-toolkit/commit/37b4a922f5364da8da595ca971785ddabf1a9074))
27
+ * rename external-feedback references for public release ([afb7fa0](https://github.com/mr-tanta/ndpr-toolkit/commit/afb7fa000c2c9d575bf46c26b0271896b49db04e))
28
+
29
+ ## [3.3.1](https://github.com/tantainnovative/ndpr-toolkit/compare/v3.3.0...v3.3.1) (2026-04-23)
30
+
31
+
32
+ ### Features
33
+
34
+ * add Next.js App Router example project ([8772478](https://github.com/tantainnovative/ndpr-toolkit/commit/8772478e6cf642bc5da278ca771824f0a1d44825)), closes [#13](https://github.com/mr-tanta/ndpr-toolkit/issues/13)
35
+ * add Nigerian Pidgin (pcm) locale support ([dc31a10](https://github.com/tantainnovative/ndpr-toolkit/commit/dc31a102853c6206f86d990663ea1318e41f0297)), closes [#12](https://github.com/mr-tanta/ndpr-toolkit/issues/12)
36
+
37
+
38
+ ### Bug Fixes
39
+
40
+ * patch 6 Dependabot vulnerabilities via pnpm overrides ([51695a6](https://github.com/tantainnovative/ndpr-toolkit/commit/51695a6dbe257826f5ff6c45a68d76920c9987b2))
41
+ * resolve all audit findings — docs, hydration, hooks, DX, and tests ([a0fa3a5](https://github.com/tantainnovative/ndpr-toolkit/commit/a0fa3a50a78b249e64d4e604890b4ca7c0da48e0))
42
+ * resolve type errors in DSR test files after any-to-unknown migration ([6412195](https://github.com/tantainnovative/ndpr-toolkit/commit/64121956635c65e588351b8249497a4b8aa2f56e))
43
+ * update outdated test counts and stats across docs and marketing ([b8d3845](https://github.com/tantainnovative/ndpr-toolkit/commit/b8d38453a0347d01fa79cbe4a83d87c05a98a4f2))
44
+
45
+ ## [3.3.0](https://github.com/tantainnovative/ndpr-toolkit/compare/v3.2.1...v3.3.0) (2026-04-23)
46
+
47
+
48
+ ### Features
49
+
50
+ * i18n, accessibility, type safety, backend completion, and DX improvements ([8fa6d83](https://github.com/tantainnovative/ndpr-toolkit/commit/8fa6d830eeeec50d53b8e28076a790c31e423852))
51
+
52
+
53
+ ### Bug Fixes
54
+
55
+ * resolve type errors in adapter test files for CI ([7c4b5b9](https://github.com/tantainnovative/ndpr-toolkit/commit/7c4b5b9194776f6d92b347064f447d6f681f6f7d))
56
+
57
+
58
+ ### Documentation
59
+
60
+ * add comprehensive NDPA compliance guide for React/Next.js ([9be4502](https://github.com/tantainnovative/ndpr-toolkit/commit/9be450253fed53efcfe095cabe161b97a8834e05))
61
+ * add screenshots and visual badges to README ([4aff0df](https://github.com/tantainnovative/ndpr-toolkit/commit/4aff0dfb5d8d1ffb07a388ccee445aec5bdcaa54)), closes [#11](https://github.com/mr-tanta/ndpr-toolkit/issues/11)
62
+ * add v3.2.1 release blog post covering all 42 fixes ([1dd9310](https://github.com/tantainnovative/ndpr-toolkit/commit/1dd93105b6f4444cf9a6287ae6f21845c0d998d9))
63
+
64
+ ## [3.2.1](https://github.com/tantainnovative/ndpr-toolkit/compare/v1.0.11...v3.2.1) (2026-04-15)
65
+
66
+
67
+ ### Features
68
+
69
+ * add adapter support and compound components to Breach module ([27bc8c4](https://github.com/tantainnovative/ndpr-toolkit/commit/27bc8c4e9aec0f665e8cd2854c4a4febaf411596))
70
+ * add adapter support and compound components to CrossBorder module ([810d04f](https://github.com/tantainnovative/ndpr-toolkit/commit/810d04ff17cdf452942ba1ef1b3908efe73f3cfe))
71
+ * add adapter support and compound components to DPIA module ([87f15fb](https://github.com/tantainnovative/ndpr-toolkit/commit/87f15fb465af118e15b1ba06a92275283872984a))
72
+ * add adapter support and compound components to DSR module ([0099a4f](https://github.com/tantainnovative/ndpr-toolkit/commit/0099a4f61eb7a3a99892e2101eed151bf772829c))
73
+ * add adapter support and compound components to LawfulBasis module ([a973de4](https://github.com/tantainnovative/ndpr-toolkit/commit/a973de407b721fc20f37b2f2c1ecbee3e78bb3e8))
74
+ * add adapter support and compound components to Policy module ([4b58327](https://github.com/tantainnovative/ndpr-toolkit/commit/4b5832757249824f9b3c20cf8c375a4f80d1ab25))
75
+ * add adapter support and compound components to ROPA module ([22ee47c](https://github.com/tantainnovative/ndpr-toolkit/commit/22ee47c284e7523453d2f36719708cabdae38544))
76
+ * add adapter support to useConsent hook ([3aee8fe](https://github.com/tantainnovative/ndpr-toolkit/commit/3aee8fede3a29d5b4f94f99b0894abc5177a017e))
77
+ * add adapters entry point ([13971d1](https://github.com/tantainnovative/ndpr-toolkit/commit/13971d15abbbe25e6cb8ea677d4a9c60a5b84d2b))
78
+ * add adaptive policy section generators ([7bb28a6](https://github.com/tantainnovative/ndpr-toolkit/commit/7bb28a6b1c0d724036fe15b354c635eeece2cbc5))
79
+ * add blog system with MDX posts and SEO ([8388e0f](https://github.com/tantainnovative/ndpr-toolkit/commit/8388e0fd3fce4904bcfa98b6325743e84f22250c))
80
+ * add classNames + unstyled props to all 19 components ([c1731ff](https://github.com/tantainnovative/ndpr-toolkit/commit/c1731ff8a15fc51c88f33888703fac468be8311b))
81
+ * add compliance checker sidebar and draft save indicator ([aaa34df](https://github.com/tantainnovative/ndpr-toolkit/commit/aaa34df035d71bfcf2cabf1ef120ac0a45928c0c))
82
+ * add compliance score engine ([fc6d92a](https://github.com/tantainnovative/ndpr-toolkit/commit/fc6d92ab10814571605882cf85ddf045b5bcddd6))
83
+ * add composeAdapters for multi-target persistence ([b92f072](https://github.com/tantainnovative/ndpr-toolkit/commit/b92f07251c33b53e05df50d54e2b6daf697272f7))
84
+ * add comprehensive design system and site components ([28fc38f](https://github.com/tantainnovative/ndpr-toolkit/commit/28fc38ff2880171774761931192728c8e89425f4))
85
+ * add Consent compound sub-components ([598ea5a](https://github.com/tantainnovative/ndpr-toolkit/commit/598ea5a152b6223cb3f68056eb01ece6209285e1))
86
+ * add Consent.Provider compound component ([8b1c622](https://github.com/tantainnovative/ndpr-toolkit/commit/8b1c6225e6b5695be1d0e6bcb11009ffedfd592b))
87
+ * add create-ndpr CLI scaffolder ([60ae4dd](https://github.com/tantainnovative/ndpr-toolkit/commit/60ae4dd0b9048f9f7163509307b5e7293b8dc1f6))
88
+ * add cross-border transfer assessment module (NDPA Part VI) ([36e8160](https://github.com/tantainnovative/ndpr-toolkit/commit/36e8160f31c8103c611cc9249f9862fc9e7183ec))
89
+ * add DOCX policy export with optional dependency ([2ead6a3](https://github.com/tantainnovative/ndpr-toolkit/commit/2ead6a3152491928716ef2f2d6928a947f0c60e7))
90
+ * add Drizzle ORM schema and adapters ([dab8a2e](https://github.com/tantainnovative/ndpr-toolkit/commit/dab8a2e5680ac6339bc510090aa2864df5e5981c))
91
+ * add Drizzle schema, integration example, and documentation ([fe95508](https://github.com/tantainnovative/ndpr-toolkit/commit/fe95508528db5e57cdaba1af94031523b76af5cd))
92
+ * add Express routes and middleware ([35fcf69](https://github.com/tantainnovative/ndpr-toolkit/commit/35fcf69bf74176f25226d56ca23f7d9102b04eff))
93
+ * add HTML and Markdown policy export ([f30ea3d](https://github.com/tantainnovative/ndpr-toolkit/commit/f30ea3d72b80b2fd90e937d66abb8d820c0d279e))
94
+ * add i18n locale support with default English strings ([a0aa702](https://github.com/tantainnovative/ndpr-toolkit/commit/a0aa70221396bef638d7ddbae4f23052d7878074))
95
+ * add JSON-LD structured data to key pages for Google rich results ([ebf9298](https://github.com/tantainnovative/ndpr-toolkit/commit/ebf929887da8c0e215d334758101e7b6d23d0842))
96
+ * add lawful basis tracker module (NDPA Section 25) ([cdd39e3](https://github.com/tantainnovative/ndpr-toolkit/commit/cdd39e3e997cf81277dd0fbac1dfc571c1bd6729))
97
+ * add localStorage adapter ([a49e565](https://github.com/tantainnovative/ndpr-toolkit/commit/a49e565081b5d73f2e9806ad1e326ad689af90f5))
98
+ * add NDPA policy compliance checker with 15 requirements ([596fb27](https://github.com/tantainnovative/ndpr-toolkit/commit/596fb27c75c8588cc367f10d344dcaf21cbd67e4))
99
+ * add NDPRConsent zero-config preset ([1720afa](https://github.com/tantainnovative/ndpr-toolkit/commit/1720afad2d734ec210f6dafe5249689ac2d77100))
100
+ * add NDPRDashboard compliance dashboard component ([8579c5d](https://github.com/tantainnovative/ndpr-toolkit/commit/8579c5d41c36f74d21626406eea3013a1c4fb34b))
101
+ * add Next.js App Router API routes ([0053bdc](https://github.com/tantainnovative/ndpr-toolkit/commit/0053bdc3b7e598535fd8ae757fde432ac1b3c46e))
102
+ * add PDF policy export with cover page and TOC ([6aa2515](https://github.com/tantainnovative/ndpr-toolkit/commit/6aa251575a440936b0b120db161baf6dc75adfec))
103
+ * add policy engine types and template context ([b5fea8c](https://github.com/tantainnovative/ndpr-toolkit/commit/b5fea8c29b8ffe2edf77e785b9c9da9f276e0999))
104
+ * add policy review step with section cards and export panel ([c00e697](https://github.com/tantainnovative/ndpr-toolkit/commit/c00e697ef22b02e7afc4c472139ae408b7fe1ca1))
105
+ * add policy wizard step components (about, data, processing) ([3be7142](https://github.com/tantainnovative/ndpr-toolkit/commit/3be7142869ac3a94298425b630538bc500a4559b))
106
+ * add PolicyPage, update preset and entry points for adaptive wizard ([b2da198](https://github.com/tantainnovative/ndpr-toolkit/commit/b2da1988c19f872b658431e9ed8a5b4549705abf))
107
+ * add PostHog analytics integration ([f154d41](https://github.com/tantainnovative/ndpr-toolkit/commit/f154d41e10379fde1fd52a7dd3dda92d04c8b5ef))
108
+ * add Prisma ORM adapters for all modules ([8200979](https://github.com/tantainnovative/ndpr-toolkit/commit/820097903e3ab5eb43bf980dee7eb93d7499769d))
109
+ * add record of processing activities (ROPA) module ([54ab04e](https://github.com/tantainnovative/ndpr-toolkit/commit/54ab04ec27b1c35f80d4276f6be8313486ad5ebb))
110
+ * add REST API adapter ([42207bc](https://github.com/tantainnovative/ndpr-toolkit/commit/42207bcbe09ebccd9c924ce44790b652c44d0221))
111
+ * add sessionStorage, cookie, and memory adapters ([cc419e5](https://github.com/tantainnovative/ndpr-toolkit/commit/cc419e5ef7ad35dd3613de0b931e384337fa141d))
112
+ * add site header/footer, 5 SEO blog posts, updated sitemap ([5278c18](https://github.com/tantainnovative/ndpr-toolkit/commit/5278c1878052f32aa93f51d5d98b09d470c670ca))
113
+ * add StorageAdapter interface ([98eec0a](https://github.com/tantainnovative/ndpr-toolkit/commit/98eec0a454fd96406fc1057c8d548bde51b0bfe1))
114
+ * add useAdaptivePolicyWizard hook ([f6abf13](https://github.com/tantainnovative/ndpr-toolkit/commit/f6abf13f5bb907d435734545533478b80e01ba62))
115
+ * add zero-config presets for all remaining modules ([9ecc714](https://github.com/tantainnovative/ndpr-toolkit/commit/9ecc714d631554e384a1b64dc5a8700cde898a17))
116
+ * auto-update version and stats across the site ([cfe468f](https://github.com/tantainnovative/ndpr-toolkit/commit/cfe468f299f28b7840603ab579fc23db9be83f93))
117
+ * complete site redesign with blue primary palette ([410fac6](https://github.com/tantainnovative/ndpr-toolkit/commit/410fac688cd6ae9e860e8e36dfb3074af5f52201)), closes [#2563](https://github.com/mr-tanta/ndpr-toolkit/issues/2563)
118
+ * comprehensive SEO overhaul for organic discovery ([97d3b79](https://github.com/tantainnovative/ndpr-toolkit/commit/97d3b799b106a31b06b753fce131f79689f5ba28))
119
+ * export compliance score from core and hooks entry points ([3310797](https://github.com/tantainnovative/ndpr-toolkit/commit/3310797f2d9cadbb1a66b6234a28a4f1bce03ee7))
120
+ * export Consent compound components from consent entry point ([be2ea70](https://github.com/tantainnovative/ndpr-toolkit/commit/be2ea70dba820502732f94fbad81ae69afc261f3))
121
+ * improve internal linking and update sitemap ([2b50f33](https://github.com/tantainnovative/ndpr-toolkit/commit/2b50f33defa03cde2eef3c6ac963930ea5ed16c2))
122
+ * modular imports and lightweight core — v2.1.0 ([3cbb5a6](https://github.com/tantainnovative/ndpr-toolkit/commit/3cbb5a6ad1f4d5417d400ed43d8331b3c84739cd))
123
+ * privacy policy upgrade — adaptive wizard, compliance checker, professional exports ([a84e4f9](https://github.com/tantainnovative/ndpr-toolkit/commit/a84e4f9ca061a911a562b04022b3459e0b1a61bb))
124
+ * redesign 7 implementation guide pages ([19711fa](https://github.com/tantainnovative/ndpr-toolkit/commit/19711fad8d0e7aed22b9c1444511f3c2969a8e0f))
125
+ * redesign consent, dsr, dpia, breach demo pages ([5373a2f](https://github.com/tantainnovative/ndpr-toolkit/commit/5373a2ffffb2f100c498239d3da183e6dc803933))
126
+ * redesign consent, dsr, dpia, breach, policy component doc pages ([248ee0f](https://github.com/tantainnovative/ndpr-toolkit/commit/248ee0fb71b6c2cce36bc4f31e7116ac13c4e93c))
127
+ * redesign demo site with interactive playgrounds ([1cedd1b](https://github.com/tantainnovative/ndpr-toolkit/commit/1cedd1ba4e6b9b3a0fedd5cd9b2bfc80396945c6))
128
+ * redesign docs landing and demos landing pages ([27de488](https://github.com/tantainnovative/ndpr-toolkit/commit/27de488cbf71b7218293920b28f3bfcf3f11ac84))
129
+ * redesign homepage with new design system ([31a74ee](https://github.com/tantainnovative/ndpr-toolkit/commit/31a74ee185e7ccf681999fe970a0de16fc437e3a))
130
+ * redesign lawful-basis, cross-border, ropa, hooks doc pages ([c2455cb](https://github.com/tantainnovative/ndpr-toolkit/commit/c2455cb5c2e7821264a40453efc07a7d94c9283c))
131
+ * redesign policy, lawful-basis, cross-border, ropa demo pages ([9e00802](https://github.com/tantainnovative/ndpr-toolkit/commit/9e008025e35c51747eff2c5fb09876972e6f45ab))
132
+ * redesign v3 guide pages (adapters, compounds, presets, score, backend, styling) ([5bbc7e3](https://github.com/tantainnovative/ndpr-toolkit/commit/5bbc7e3366c98ffebb759333c772496c5dea842c))
133
+ * scaffold ndpr-recipes package with Prisma schema ([20b6943](https://github.com/tantainnovative/ndpr-toolkit/commit/20b69435f6b0f56bc057b42bd2c0577b744e50e2))
134
+ * update policy demo page with AdaptivePolicyWizard ([428176b](https://github.com/tantainnovative/ndpr-toolkit/commit/428176bb763a5a6baa0ab60de373f900d381c6d3))
135
+ * update SEO metadata, sitemap, and structured data for v3 ([aea1a06](https://github.com/tantainnovative/ndpr-toolkit/commit/aea1a060e1ec7dd8e104e3fa5ad9e4fec6cc0a32))
136
+ * use published AdaptivePolicyWizard in policy demo ([0b2d7fc](https://github.com/tantainnovative/ndpr-toolkit/commit/0b2d7fc6d4afe3fe25a7a2400cdce22b12b41990))
137
+ * use published toolkit imports in consent and DSR demos ([8d86102](https://github.com/tantainnovative/ndpr-toolkit/commit/8d86102a41b02ee7d775eaf6d1e2501cd647b562))
138
+ * use published toolkit imports in lawful-basis, cross-border, ropa demos ([bac2b3a](https://github.com/tantainnovative/ndpr-toolkit/commit/bac2b3a894009a2bd1df37b966202f152741fb0f))
139
+ * v2.2.0 — fully customizable styling with classNames + unstyled ([3558c27](https://github.com/tantainnovative/ndpr-toolkit/commit/3558c275a0d9d3dd286f8f8e242ab35f7e7bc4ae))
140
+ * v2.3.0 — theming, portal, typed callbacks, templates, provider ([9743c44](https://github.com/tantainnovative/ndpr-toolkit/commit/9743c4445d7882659bb5c45afcbea22bf580639f))
141
+ * v2.4.0 — resolve 30 developer feedback items ([01a9930](https://github.com/tantainnovative/ndpr-toolkit/commit/01a99301d4c655b8f34536284adbe8557866d022))
142
+ * v3.0.0 — layered architecture, adapters, compound components, presets, compliance score, backend recipes, CLI scaffolder, dashboard ([d46b641](https://github.com/tantainnovative/ndpr-toolkit/commit/d46b641086d10ea061191289bcaf96fe5674e0e3))
143
+
144
+
145
+ ### Bug Fixes
146
+
147
+ * add @testing-library/dom peer dependency for CI compatibility ([626b517](https://github.com/tantainnovative/ndpr-toolkit/commit/626b5172e0a6c8960bcdba50b5bb298a504f8075))
148
+ * add adapters and presets to root package.json exports, exclude template packages from tsc ([178bf7f](https://github.com/tantainnovative/ndpr-toolkit/commit/178bf7fc612dd4824f9ee3a57afd15b6007a6f5b))
149
+ * add dark-mode overrides for Related Guides links and Tailwind theme classes in docs ([e26aef6](https://github.com/tantainnovative/ndpr-toolkit/commit/e26aef6d939b21650b5b1b3c480822f4cc5c3c07))
150
+ * add force-static export to robots and sitemap for static build ([b1a5791](https://github.com/tantainnovative/ndpr-toolkit/commit/b1a5791d3ccaba85a847796664a3f848d4039bdd))
151
+ * add PostHog env variables to build:lib step ([5401268](https://github.com/tantainnovative/ndpr-toolkit/commit/54012681b0fb103293675e3ee865443cadc74c26))
152
+ * add presets entry to tsup config and fix types paths ([d3805da](https://github.com/tantainnovative/ndpr-toolkit/commit/d3805da3555055bd3ddbc903f2966972be1574b6))
153
+ * consent demo toggles now update state correctly ([fc710d2](https://github.com/tantainnovative/ndpr-toolkit/commit/fc710d2841088ef936f0aeccb932748dd367807f))
154
+ * correct all ComplianceInput and ComplianceReport field names in docs ([2e64943](https://github.com/tantainnovative/ndpr-toolkit/commit/2e64943cc7ffe8b5d899e7deda4067b102db336f))
155
+ * correct code snippets in consent demo ([b6c3edf](https://github.com/tantainnovative/ndpr-toolkit/commit/b6c3edfab78df5ac1eadc4fc9aa396e06541c307))
156
+ * correct consent component and hook API references in docs ([c5b6b84](https://github.com/tantainnovative/ndpr-toolkit/commit/c5b6b8473cc0099ec8ae2980fa884fbcd86836da))
157
+ * correct consent demo code examples to match actual API ([5040aad](https://github.com/tantainnovative/ndpr-toolkit/commit/5040aadb3cd32b6b8e16bdc0159dd70d760064d0))
158
+ * correct documentation URLs to ndprtoolkit.com.ng ([7be38fe](https://github.com/tantainnovative/ndpr-toolkit/commit/7be38fecaa5b67b680ddd5a6cb52ab0018e7850c))
159
+ * correct StorageAdapter interface in docs, expand compound components guide ([92fd16e](https://github.com/tantainnovative/ndpr-toolkit/commit/92fd16e72d1aa9247811fffc9ba483f5202be080))
160
+ * deep QA audit — 50+ fixes across entire project ([adbd94c](https://github.com/tantainnovative/ndpr-toolkit/commit/adbd94cdfc74636ab02fe4910bbc68837c81c0fb))
161
+ * eliminate all 404s, broken links, and misinformation ([8d1bdb7](https://github.com/tantainnovative/ndpr-toolkit/commit/8d1bdb7725e1255025b4b2063b6e764a07d46621))
162
+ * eliminate all vulnerabilities (52 → 0) ([e6dc1b7](https://github.com/tantainnovative/ndpr-toolkit/commit/e6dc1b7455471fef453082a56ef659f16bab82cc))
163
+ * explicitly add PostHog env variables to Next.js config ([5ba341d](https://github.com/tantainnovative/ndpr-toolkit/commit/5ba341dcc20fd8968dedf842b39468b191fc86e0))
164
+ * export DSRFormSubmission and BreachFormSubmission from per-module entry points ([ae5cf79](https://github.com/tantainnovative/ndpr-toolkit/commit/ae5cf79c8301d83b910dcca2e4d8479f384ed69c)), closes [#14](https://github.com/mr-tanta/ndpr-toolkit/issues/14)
165
+ * handle missing PostHog env variables gracefully ([6851e24](https://github.com/tantainnovative/ndpr-toolkit/commit/6851e2445fb43bcc14faa424c28c8e38e26a0b8f))
166
+ * improve mobile responsiveness across all demo pages and homepage ([1027de7](https://github.com/tantainnovative/ndpr-toolkit/commit/1027de731b0b1bd8c34c5497c9439f7cec6a2f46))
167
+ * improve privacy policy demo UI with comprehensive dark-mode overrides ([ce7f3ea](https://github.com/tantainnovative/ndpr-toolkit/commit/ce7f3ea08fcdaef625d3c1a604e8726fb7dbff2a)), closes [#2563](https://github.com/mr-tanta/ndpr-toolkit/issues/2563)
168
+ * move force-static export before function declaration in sitemap ([36ee87a](https://github.com/tantainnovative/ndpr-toolkit/commit/36ee87a95594a6accecd131e010bf0c5130ab941))
169
+ * pass onGenerate prop to PolicyGenerator in demo ([dff0c05](https://github.com/tantainnovative/ndpr-toolkit/commit/dff0c059a1f55fdb2843331c56ab2b915dcc3c3c))
170
+ * preserve code block indentation and add language labels ([4cb8fca](https://github.com/tantainnovative/ndpr-toolkit/commit/4cb8fca1fca96241b4959b3ceaa6c62835f673de))
171
+ * QA audit — resolve bugs, type conflicts, and stale references ([4884735](https://github.com/tantainnovative/ndpr-toolkit/commit/48847354b7e6a187544e783a49b6f2f92942c2a2))
172
+ * redesign footer with proper attribution ([d8c9bac](https://github.com/tantainnovative/ndpr-toolkit/commit/d8c9bac0fa69f28fc5612fb8a22584df3be7a688))
173
+ * redesign navbar with better contrast and SVG logo ([4946b10](https://github.com/tantainnovative/ndpr-toolkit/commit/4946b105785882439d72a6222030fd1590ef8d33))
174
+ * reduce vulnerabilities from 60 to 14 ([9dd5614](https://github.com/tantainnovative/ndpr-toolkit/commit/9dd5614d3fade0768c1fd99d8093920931a52816))
175
+ * remove blue left border from demo cards ([a112678](https://github.com/tantainnovative/ndpr-toolkit/commit/a11267886ba00e83f37bd6f72c6a686b74f13d3c))
176
+ * reorganize static HTML for proper GitHub Pages routing ([256b31f](https://github.com/tantainnovative/ndpr-toolkit/commit/256b31f5e4efcc99c7b0cb9c7794b3a9ae303436))
177
+ * replace rainbow color palette with unified blue brand identity ([c140ff0](https://github.com/tantainnovative/ndpr-toolkit/commit/c140ff078165263a19cc36bcbe25a50ea02a992b))
178
+ * resolve 42 bugs across security, hooks, adapters, components, and utils ([d5f160f](https://github.com/tantainnovative/ndpr-toolkit/commit/d5f160f4bdbae6601b5c683c2a3c6245e2fd2727))
179
+ * resolve picomatch and flatted security vulnerabilities ([82cb446](https://github.com/tantainnovative/ndpr-toolkit/commit/82cb4463fc6a3bd8699c9a3d51e426ae3c701437))
180
+ * resolve strict TypeScript errors in test files ([085ca52](https://github.com/tantainnovative/ndpr-toolkit/commit/085ca52db4c9732c9436bf53ca2a8d3c904c411b))
181
+ * resolve type mismatches in cross-border, ropa, lawful-basis demos ([1269e6e](https://github.com/tantainnovative/ndpr-toolkit/commit/1269e6e9931eceb3c01ea0d1efa9806b3e2285fa))
182
+ * standardize docs to use pnpm and per-module imports ([fbdbf16](https://github.com/tantainnovative/ndpr-toolkit/commit/fbdbf16647d31afc28caf3347818ece2018a8b6d))
183
+ * transparent nav background, explicit gradient on CTA button ([45bd144](https://github.com/tantainnovative/ndpr-toolkit/commit/45bd144393640c1e7e8634505c8037b50bc74c94))
184
+ * unify color scheme, fix links, remove legacy-peer-deps ([e35d4c1](https://github.com/tantainnovative/ndpr-toolkit/commit/e35d4c1737f76206bc75c1a824033f8d1f570c7e))
185
+ * update demo imports to use local source and fix React bundling ([831a501](https://github.com/tantainnovative/ndpr-toolkit/commit/831a501b5b9c909e535e2f020484cab22970fedd))
186
+ * update homepage hero with accurate data ([b931230](https://github.com/tantainnovative/ndpr-toolkit/commit/b931230d8dcc1c772cee019c33870ad9d6a6c924))
187
+ * update nav colors and design tokens ([b9fb7c2](https://github.com/tantainnovative/ndpr-toolkit/commit/b9fb7c2ad45742cfcf0afc09153eee79e3de4173))
188
+ * use async useEffect for adapter load in NDPRROPA preset ([a1b3820](https://github.com/tantainnovative/ndpr-toolkit/commit/a1b38207ac488c7a400e272157894ec62afb26a1))
189
+ * use constants for PostHog env variables to ensure build-time inlining ([4ed9c1c](https://github.com/tantainnovative/ndpr-toolkit/commit/4ed9c1ca65eba51cc51c638f7c16eaed7ea93f5e))
190
+ * use existing PolicyGenerator in demo until adaptive wizard is published ([d5f195f](https://github.com/tantainnovative/ndpr-toolkit/commit/d5f195f55fa1977e3a910a6824a38f327ec45176))
191
+ * useDPIA isComplete() no longer mutates state during render ([fd7ea9d](https://github.com/tantainnovative/ndpr-toolkit/commit/fd7ea9d5f22a9987fa7e62f54704b3ed28a5fd9f))
192
+ * wrap consent demo page in ConsentProvider to fix loading issue ([8ba7cf0](https://github.com/tantainnovative/ndpr-toolkit/commit/8ba7cf09112f3a74a0187100c2291b8bd7b0fd7c))
193
+
194
+
195
+ ### Documentation
196
+
197
+ * add import paths guide to docs site ([6d7e19a](https://github.com/tantainnovative/ndpr-toolkit/commit/6d7e19a6584bdc0f22e8947b1fa51375ee2f51e8))
198
+ * add internationalization and CLI scaffolder guide pages ([2dab79a](https://github.com/tantainnovative/ndpr-toolkit/commit/2dab79a46728c88a218cec32a0c9af7584d1b6f9))
199
+ * add privacy and analytics disclosure to README ([aac2c69](https://github.com/tantainnovative/ndpr-toolkit/commit/aac2c69593265d59e6cd5552a9f5b1802cdb384a))
200
+ * add v3 guides for adapters, compounds, presets, compliance score, and backend integration ([47503e2](https://github.com/tantainnovative/ndpr-toolkit/commit/47503e2a3738e951d6103205ecbc31579cd9ab9a))
201
+ * add v3 quick start sections to consent, dsr, breach component docs ([1519501](https://github.com/tantainnovative/ndpr-toolkit/commit/1519501041885c2608b3044f06f9da4aa3f2d4a6))
202
+ * expand backend integration guide and add NDPRDashboard docs ([592d63d](https://github.com/tantainnovative/ndpr-toolkit/commit/592d63d5b85f8a07d50562fef73b17403cd33141))
203
+ * overhaul documentation and demo site for NDPA 2023 ([cde6517](https://github.com/tantainnovative/ndpr-toolkit/commit/cde651729bc40436ec2b5bf062151fa1bb8eb5c6))
204
+ * rewrite README for v3.0.0 ([97fca14](https://github.com/tantainnovative/ndpr-toolkit/commit/97fca1462f813ecfbfdda9cfbc94a0d7eec493c9))
205
+ * update site homepage and docs landing for v3.0.0 ([9f6c37c](https://github.com/tantainnovative/ndpr-toolkit/commit/9f6c37c3e74c30b142de6c89bd8fd04067b02b77))
206
+
207
+
208
+ ### Code Refactoring
209
+
210
+ * migrate existing modules from NDPR to NDPA 2023 ([abbec76](https://github.com/tantainnovative/ndpr-toolkit/commit/abbec7640a816c7c64a1b249581aa57e162cfe56))
211
+ * update type definitions for NDPA 2023 ([db6e5e3](https://github.com/tantainnovative/ndpr-toolkit/commit/db6e5e305f47bb729587a2cf49ef5f992d81d761))
212
+
213
+ ## [3.2.0] — 2026-04-14
214
+
215
+ ### Added
216
+ - **Adaptive Policy Wizard** (`AdaptivePolicyWizard`) — 4-step question-driven privacy policy generator
217
+ - Step 1: Organization details + industry + size
218
+ - Step 2: Data category selection (16 categories across 5 groups)
219
+ - Step 3: Processing purposes, third-party processors, cross-border/automated toggles
220
+ - Step 4: Review, edit, reorder sections, add custom sections, export
221
+ - **Policy section engine** (`assemblePolicy()`) — context-aware section generator producing 13 possible sections based on user answers, with industry-adapted language
222
+ - **NDPA compliance checker** (`evaluatePolicyCompliance()`) — real-time 15-requirement checklist (115 points max) with auto-fix suggestions
223
+ - **Professional PDF export** (`exportPDF()`) — cover page, table of contents, page numbers, headers/footers, NDPA compliance badge
224
+ - **DOCX export** (`exportDOCX()`) — Word document with heading styles, headers, footers (optional `docx` peer dependency)
225
+ - **HTML export** (`exportHTML()`) — self-contained responsive HTML with embedded styles, print CSS, semantic markup
226
+ - **Markdown export** (`exportMarkdown()`) — clean markdown with TOC and metadata
227
+ - **PolicyPage component** — embeddable React component for rendering policies at `/privacy-policy`
228
+ - **Draft auto-save** — adapter-backed persistence with debounced save and restore-on-reload
229
+ - **Custom sections** — UI to add, edit, reorder, and delete custom policy sections (max 10)
230
+ - **Compliance checker sidebar** — collapsible panel with score ring, requirement checklist, and "Fix it" buttons
231
+ - `useAdaptivePolicyWizard` hook with full state management, compliance tracking, and export functions
232
+ - `docx` added as optional peer dependency for Word export
233
+
234
+ ### Changed
235
+ - `NDPRPrivacyPolicy` preset now renders the AdaptivePolicyWizard instead of the basic PolicyGenerator
236
+
237
+ ## [3.1.0] — 2026-04-14
238
+
239
+ ### Added
240
+ - Complete site redesign with new design system (dark theme, blue primary palette)
241
+ - Shared UI component library (Button, Card, Badge, Section, CodeBlock, FeatureCard, Grid, Tabs, CTASection)
242
+ - DemoLayout component for consistent demo page presentation
243
+ - Redesigned SiteHeader with sticky blur, gradient logo, and responsive mobile menu
244
+ - Redesigned SiteFooter with multi-column layout
245
+ - Redesigned DocLayout with collapsible sidebar navigation
246
+ - i18n locale support — `NDPRLocale` type, `defaultLocale` (English), `mergeLocale()` utility
247
+ - `locale` prop on NDPRProvider for global text customization
248
+ - Comprehensive SEO updates (sitemap, robots.txt, structured data)
249
+ - Prepared `@tantainnovative/create-ndpr` and `@tantainnovative/ndpr-recipes` for npm publishing
250
+
251
+ ### Changed
252
+ - All documentation pages restyled with dark theme and consistent design system
253
+ - All 8 demo pages wrapped in shared DemoLayout
254
+ - Homepage hero with animated code example and 3-file quickstart tabs
255
+ - Blog listing and post pages redesigned
256
+
257
+ ## [3.0.0] — 2026-04-14
258
+
259
+ ### Architecture
260
+
261
+ v3 introduces a layered architecture that separates UI, state, and storage concerns. Every module now supports pluggable persistence, composable sub-components, and zero-config presets.
262
+
263
+ ### Added
264
+
265
+ - **StorageAdapter pattern** — all 8 hooks accept an optional `adapter` prop for pluggable persistence
266
+ - Built-in adapters: `localStorageAdapter`, `sessionStorageAdapter`, `cookieAdapter`, `apiAdapter`, `memoryAdapter`, `composeAdapters`
267
+ - New `./adapters` entry point: `import { apiAdapter } from '@tantainnovative/ndpr-toolkit/adapters'`
268
+ - `composeAdapters()` writes to multiple targets simultaneously (e.g. localStorage + API)
269
+ - `isLoading` state on all hooks for async adapter support
270
+
271
+ - **Compound components** — all 8 modules decomposed into composable sub-components
272
+ - `Consent.Provider`, `Consent.Banner`, `Consent.AcceptButton`, `Consent.RejectButton`, `Consent.OptionList`, `Consent.SaveButton`, `Consent.Settings`, `Consent.Storage`
273
+ - `DSR.Provider`, `DSR.Form`, `DSR.Dashboard`, `DSR.Tracker`
274
+ - `DPIA.Provider`, `DPIA.Questionnaire`, `DPIA.Report`, `DPIA.StepIndicator`
275
+ - `Breach.Provider`, `Breach.ReportForm`, `Breach.RiskAssessment`, `Breach.NotificationManager`, `Breach.ReportGenerator`
276
+ - `Policy.Provider`, `Policy.Generator`, `Policy.Preview`, `Policy.Exporter`
277
+ - `LawfulBasis.Provider`, `LawfulBasis.Tracker`
278
+ - `CrossBorder.Provider`, `CrossBorder.Manager`
279
+ - `ROPA.Provider`, `ROPA.Manager`
280
+
281
+ - **Zero-config presets** — 8 components that work with zero required props
282
+ - `NDPRConsent`, `NDPRSubjectRights`, `NDPRBreachReport`, `NDPRPrivacyPolicy`, `NDPRDPIA`, `NDPRLawfulBasis`, `NDPRCrossBorder`, `NDPRROPA`
283
+ - New `./presets` entry point: `import { NDPRConsent } from '@tantainnovative/ndpr-toolkit/presets'`
284
+ - Each preset includes NDPA-compliant defaults and accepts optional overrides
285
+
286
+ - **Compliance score engine** — `getComplianceScore()` and `useComplianceScore()`
287
+ - Scores 0–100 across all 8 modules with NDPA section references
288
+ - Weighted scoring (consent 20%, DSR 15%, breach 15%, policy 12%, DPIA 12%, lawful basis 10%, ROPA 8%, cross-border 8%)
289
+ - Prioritised recommendations with effort estimates
290
+ - Available from `/core` (no React) and `/hooks`
291
+
292
+ - **@tantainnovative/ndpr-recipes** — backend integration package (separate)
293
+ - Prisma schema (5 NDPA compliance tables)
294
+ - Drizzle ORM schema
295
+ - Next.js App Router API routes (consent, DSR, breach, ROPA, compliance)
296
+ - Express routes and middleware
297
+ - Prisma and Drizzle ORM adapters implementing `StorageAdapter`
298
+ - Consent verification middleware
299
+ - Integration examples
300
+
301
+ ### Changed
302
+
303
+ - All hooks now use `useCallback` and `useRef` for stable references
304
+ - `storageOptions` prop on `useConsent` deprecated in favor of `adapter` prop
305
+ - `storageKey`/`useLocalStorage` props on other hooks deprecated in favor of `adapter`
306
+
307
+ ### Migration from v2
308
+
309
+ All v2 APIs continue to work unchanged. The deprecated `storageOptions`/`storageKey`/`useLocalStorage` props are mapped to built-in adapters internally. To adopt v3 features:
310
+
311
+ 1. **Adapters**: Replace `storageOptions` with `adapter` prop on any hook
312
+ 2. **Compound components**: Use `<Consent.Provider>` + sub-components for custom layouts
313
+ 3. **Presets**: Replace boilerplate with zero-config components like `<NDPRConsent />`
314
+ 4. **Compliance score**: Add `getComplianceScore()` calls to assess compliance posture
315
+
316
+ ## [2.4.0] — 2026-04-07
317
+
318
+ ### Added
319
+ - CSS custom properties applied to ALL 19 components (was only consent)
320
+ - Consent analytics callback (`onAnalytics` prop with ConsentAnalyticsEvent)
321
+ - Consent version enforcement — auto-shows banner when policy version changes
322
+ - Consent audit trail utility (createAuditEntry, getAuditLog, appendAuditEntry)
323
+ - `manageStorage` prop on ConsentBanner to prevent storage race conditions
324
+ - `isSubmitting` prop on DSRRequestForm and BreachReportForm with loading state
325
+ - `defaultValues` and `onReset` props on DSRRequestForm and BreachReportForm
326
+ - `useDefaultPrivacyPolicy` convenience hook (zero-config privacy policy)
327
+ - `primaryButton`/`secondaryButton` classNames aliases across 13 components
328
+ - Select All / Deselect All toggle on ConsentBanner customize panel
329
+ - Smooth transition animation on ConsentBanner customize panel
330
+ - `sanitizeInput` utility for XSS prevention on form submissions
331
+ - `data-ndpr-component` attribute with baseline focus-visible styles
332
+ - Migration guide blog post (v1.x → v2.x)
333
+ - Full classNames reference table in styling documentation (169 keys)
334
+
335
+ ### Fixed
336
+ - `show` prop changes after mount now properly sync ConsentBanner visibility
337
+ - Email validation regex strengthened (was accepting "a@b.c")
338
+ - Color contrast: text-gray-500 → text-gray-600 across 14 components (WCAG AA)
339
+ - ARIA: aria-invalid, aria-describedby, role="alert" on form validation errors
340
+ - ARIA: focus management on ConsentBanner open
341
+ - Responsive: buttons stack vertically on mobile
342
+ - Input sanitization prevents XSS in form submissions
343
+
344
+ ### Changed
345
+ - Zero runtime dependencies (uuid replaced with crypto.randomUUID)
346
+ - lucide-react peer dep widened from ^0.507.0 to >=0.400.0
347
+ - TypeScript module declaration added for ./styles import
348
+ - All 15 components have NDPA section reference JSDoc comments
349
+ - NDPA section references added to default component descriptions
350
+
351
+ ## [2.3.0] — 2026-04-07
352
+
353
+ ### Added
354
+ - CSS custom properties (design tokens) for framework-agnostic theming
355
+ - `--ndpr-primary`, `--ndpr-primary-hover`, `--ndpr-background`, etc.
356
+ - Dark mode tokens via `.dark` and `[data-theme="dark"]` selectors
357
+ - Consumers can theme all components by overriding CSS variables once
358
+ - `NDPRProvider` context for shared configuration across components
359
+ - Provides organizationName, dpoEmail, theme, unstyled globally
360
+ - `useNDPRConfig()` hook to access config from any component
361
+ - Default policy templates — `PolicyGenerator` now works without props
362
+ - `DEFAULT_POLICY_SECTIONS` (8 NDPA-compliant sections)
363
+ - `DEFAULT_POLICY_VARIABLES` (8 common variables)
364
+ - `createBusinessPolicyTemplate()` factory function
365
+ - `onValidationError` callback on DSRRequestForm and BreachReportForm
366
+ - ConsentBanner `inline` position option for embedding without portal
367
+ - ConsentBanner `zIndex` prop (default: 9999)
368
+ - Escape key dismisses ConsentBanner
369
+
370
+ ### Fixed
371
+ - ConsentBanner now renders via `createPortal` to `document.body` — properly overlays page content instead of rendering inline
372
+ - ConsentBanner center position now shows with backdrop overlay
373
+ - `onSubmit` callbacks typed — `DSRFormSubmission` and `BreachFormSubmission` replace `any`
374
+ - Consent components use CSS variables instead of hardcoded `blue-600`
375
+
376
+ ### Changed
377
+ - `PolicyGenerator` sections and variables props are now optional
378
+ - `./styles` CSS export now includes design tokens (was animation-only)
379
+
380
+ ## [2.2.0] — 2026-04-07
381
+
382
+ ### Added
383
+ - `classNames` prop on all 19 components for granular CSS class overrides
384
+ - `unstyled` prop to strip all default Tailwind classes (BYO CSS)
385
+ - `resolveClass` utility exported from `/core` and all module paths
386
+ - 194 customizable class sections across all components
387
+ - Styling & Customization guide in documentation
388
+ - Blog post: "Fully Customizable Styling"
389
+
390
+ ### Changed
391
+ - Components now work with any CSS framework (Bootstrap, CSS Modules, vanilla CSS)
392
+ - Default Tailwind styling preserved — zero breaking changes
393
+ - All ClassNames type interfaces exported from barrel files
394
+
395
+ ### Fixed
396
+ - Eliminated all npm audit vulnerabilities (52 → 0)
397
+ - Reduced package size 67% (512 KB → 170 KB) by excluding source maps
398
+ - Upgraded jspdf 3.x → 4.x, replaced abandoned standard-version
399
+
400
+ ## [2.1.2] — 2026-04-06
401
+
402
+ ### Changed
403
+ - Exclude source maps from published package (512 KB → 168 KB, 67% reduction)
404
+ - Use granular `files` globs instead of blanket `dist/` include
405
+
406
+ ## [2.1.1] — 2026-04-04
407
+
408
+ ### Fixed
409
+ - `useDPIA` hook: `isComplete()` no longer mutates state during render (caused infinite re-renders)
410
+ - 15 incorrect NDPA section references in PolicyGenerator and ComplianceChecklist
411
+ - NDPC naming consistency ("Nigerian" → "Nigeria" Data Protection Commission)
412
+ - Breach demo reference number flickering
413
+ - DSR demo rejected request timeline, sample due date, and scroll behavior
414
+ - DPIA demo step indicator now clickable, critical risk level reachable
415
+ - CSV export double-quote escaping per RFC 4180
416
+ - 32 form label associations for accessibility
417
+ - ARIA attributes on risk sliders and file inputs
418
+ - 22 GitHub links corrected to mr-tanta/ndpr-toolkit
419
+ - 11 incorrect API examples in READMEs
420
+ - 12 fabricated component names removed from docs
421
+ - Added MIT LICENSE file
422
+ - Removed dead tslib dependency
423
+ - Added sideEffects field for tree-shaking
424
+ - Added metadataBase for social sharing
425
+
426
+ ## [2.1.0] — 2026-04-04
427
+
428
+ ### Added
429
+ - Modular import paths: `/core`, `/hooks`, `/consent`, `/dsr`, `/dpia`, `/breach`, `/policy`, `/lawful-basis`, `/cross-border`, `/ropa`
430
+ - Zero-dependency `/core` entry point with all types and utility functions
431
+ - React-only `/hooks` entry point for hook consumers
432
+ - Per-module entry points for granular tree-shaking
433
+ - TypeScript `typesVersions` for IDE auto-completion on all subpaths
434
+ - Code splitting via tsup for optimal bundle size
435
+
436
+ ### Changed
437
+ - UI dependencies (Radix UI, lucide-react, jspdf, class-variance-authority, clsx, tailwind-merge) moved from `dependencies` to optional `peerDependencies`
438
+ - Consumers using only `/core` or `/hooks` no longer install any UI dependencies
439
+ - Bundle is now split into shared chunks for better tree-shaking
440
+
441
+ ## [2.0.0] — 2026-04-04
442
+
443
+ ### Breaking Changes
444
+ - Rebranded from NDPR focus to NDPA 2023 (Nigeria Data Protection Act)
445
+ - `NotificationRequirement.nitdaNotificationRequired` → `ndpcNotificationRequired` (old field deprecated)
446
+ - `NotificationRequirement.nitdaNotificationDeadline` → `ndpcNotificationDeadline` (old field deprecated)
447
+ - `RegulatoryNotification.nitdaContact` → `ndpcContact` (old field deprecated)
448
+
449
+ ### Added
450
+ - Lawful Basis Tracker module (NDPA Section 25)
451
+ - Cross-Border Transfer Assessment module (NDPA Part VI)
452
+ - Record of Processing Activities (ROPA) module
453
+ - New DSR types: 'information' (Section 29) and 'automated_decision_making' (Section 36)
454
+ - NDPC consultation fields in DPIA results
455
+ - Lawful basis field in consent settings
456
+ - NDPC registration number in organization info
457
+ - Transfer Impact Assessment types
458
+
459
+ ### Changed
460
+ - All legal references updated from NDPR to NDPA 2023
461
+ - Regulatory body references updated from NITDA to NDPC
462
+ - Section references updated to NDPA sections
463
+ - Privacy policy templates updated for NDPA compliance
464
+ - Breach notification workflow targets NDPC instead of NITDA
465
+ - PostHog moved from dependencies to devDependencies
466
+
467
+ ### [1.0.12](https://github.com/tantainnovative/ndpr-toolkit/compare/v1.0.11...v1.0.12) (2025-09-30)
468
+
469
+
470
+ ### Bug Fixes
471
+
472
+ * reorganize static HTML for proper GitHub Pages routing ([256b31f](https://github.com/tantainnovative/ndpr-toolkit/commit/256b31f5e4efcc99c7b0cb9c7794b3a9ae303436))
473
+
474
+ ### [1.0.11](https://github.com/tantainnovative/ndpr-toolkit/compare/v1.0.10...v1.0.11) (2025-09-29)
475
+
476
+
477
+ ### Bug Fixes
478
+
479
+ * support custom domain and update author contact info ([cc30680](https://github.com/tantainnovative/ndpr-toolkit/commit/cc306808b63a672ae4867cfbe8ced51da11a87ec))
480
+
481
+ ### [1.0.10](https://github.com/tantainnovative/ndpr-toolkit/compare/v1.0.9...v1.0.10) (2025-09-29)
482
+
483
+
484
+ ### Documentation
485
+
486
+ * update author information ([8f866ef](https://github.com/tantainnovative/ndpr-toolkit/commit/8f866ef59246676a0936c43777cc9ec951d19810))
487
+
488
+ ### [1.0.9](https://github.com/tantainnovative/ndpr-toolkit/compare/v1.0.8...v1.0.9) (2025-09-29)
489
+
490
+
491
+ ### Bug Fixes
492
+
493
+ * correct ConsentManager usage in demo page and add gh-pages ([c742a9d](https://github.com/tantainnovative/ndpr-toolkit/commit/c742a9dca89ef3de6b82ea74ea6c1f694a50c503))
494
+ * migrate ESLint to v9 flat config and configure lint-staged ([dd6d5ad](https://github.com/tantainnovative/ndpr-toolkit/commit/dd6d5ad91245ce97bf610a3168bc7ddaf32963c7))
495
+ * resolve GitHub Actions failures - remove husky prepare script and fix pnpm lockfile compatibility ([c787ba8](https://github.com/tantainnovative/ndpr-toolkit/commit/c787ba81260a20fed999b2dc795fd21cc91f514e))
496
+
497
+ ## [1.0.7] - 2025-01-10
498
+
499
+ ### Added
500
+ - **Headless Mode**: Complete separation of state management from UI components
501
+ - **Enhanced useConsent Hook**: Added all requested methods (hasUserConsented, showBanner, showSettings, etc.)
502
+ - **Unstyled Components**: New unstyled component variants for complete design freedom
503
+ - **Render Props Pattern**: Support for maximum flexibility in custom implementations
504
+ - **Component Composition**: Mix and match components as needed
505
+ - **Event System**: Comprehensive event-driven consent management with `useConsentManager`
506
+ - **Position & Animation Controls**: Full control over banner positioning and animations
507
+ - **TypeScript Generics**: Support for custom consent categories with full type safety
508
+ - **Exported Utilities**: All core utilities and contexts are now accessible
509
+ - **Cookie Utils**: Helper functions for cookie management
510
+ - **Consent Storage**: Utilities for persisting consent data
511
+
512
+ ### Changed
513
+ - Moved React and React DOM to peerDependencies for better compatibility
514
+ - Improved package structure with proper exports for different module systems
515
+ - Enhanced documentation with comprehensive examples
516
+
517
+ ### Fixed
518
+ - Removed circular dependency (package depending on itself)
519
+ - Fixed TypeScript declarations generation
520
+ - Improved build configuration for library mode
521
+
522
+ ## [1.0.6] - Previous Releases
523
+
524
+ - Initial public release with core NDPR compliance features
525
+ - Consent management system
526
+ - Data subject rights portal
527
+ - Privacy policy generator
528
+ - DPIA assessment tool
529
+ - Breach notification module
@@ -76,6 +76,16 @@ interface ConsentBannerProps {
76
76
  * @default "bottom"
77
77
  */
78
78
  position?: 'top' | 'bottom' | 'center' | 'inline';
79
+ /**
80
+ * Visual treatment.
81
+ * - 'bar' (default): full-width strip pinned to the edge.
82
+ * - 'card' : bounded floating card with rounded corners and a margin
83
+ * from the screen edges. Pairs well with `position="bottom"`.
84
+ * - 'modal' : centered card with a backdrop overlay. Forces center
85
+ * placement regardless of `position`.
86
+ * @default "bar"
87
+ */
88
+ variant?: 'bar' | 'card' | 'modal';
79
89
  /**
80
90
  * z-index applied to the fixed-position banner.
81
91
  * Ignored when position is 'inline'.
@@ -76,6 +76,16 @@ interface ConsentBannerProps {
76
76
  * @default "bottom"
77
77
  */
78
78
  position?: 'top' | 'bottom' | 'center' | 'inline';
79
+ /**
80
+ * Visual treatment.
81
+ * - 'bar' (default): full-width strip pinned to the edge.
82
+ * - 'card' : bounded floating card with rounded corners and a margin
83
+ * from the screen edges. Pairs well with `position="bottom"`.
84
+ * - 'modal' : centered card with a backdrop overlay. Forces center
85
+ * placement regardless of `position`.
86
+ * @default "bar"
87
+ */
88
+ variant?: 'bar' | 'card' | 'modal';
79
89
  /**
80
90
  * z-index applied to the fixed-position banner.
81
91
  * Ignored when position is 'inline'.