@tantainnovative/ndpr-toolkit 3.3.1 → 3.4.1

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