@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.
- package/CHANGELOG.md +529 -0
- package/dist/{ConsentBanner-CDRT0o2k.d.mts → ConsentBanner-F5ayys5K.d.mts} +10 -0
- package/dist/{ConsentBanner-Vxyt8SCX.d.ts → ConsentBanner-VqIPophc.d.ts} +10 -0
- package/dist/{styling-B7CBzYG7.d.ts → ConsentManager-C7I3PDe8.d.mts} +2 -62
- package/dist/{styling-uJLsBbER.d.mts → ConsentManager-CQ2IZtUU.d.ts} +2 -62
- package/dist/{sanitize-B0AzEm1D.d.mts → NDPRProvider-DYFb8xEl.d.ts} +2 -94
- package/dist/{sanitize-B0AzEm1D.d.ts → NDPRProvider-U3QNu6MA.d.mts} +2 -94
- package/dist/adapters.js +1 -1
- package/dist/adapters.mjs +1 -1
- package/dist/breach.js +1 -1
- package/dist/breach.mjs +1 -1
- package/dist/chunk-2WH4DLV5.js +3 -0
- package/dist/chunk-3NQQSU4P.js +2 -0
- package/dist/chunk-3VQAYQR7.js +7 -0
- package/dist/chunk-4R42ZNO7.mjs +318 -0
- package/dist/chunk-5HL4UBFV.js +2 -0
- package/dist/chunk-6HZL2WDU.mjs +2 -0
- package/dist/chunk-6QPRDQZF.js +2 -0
- package/dist/chunk-74Z23WUA.mjs +2 -0
- package/dist/chunk-AHSMDPG5.js +132 -0
- package/dist/chunk-BN77GP4W.mjs +2 -0
- package/dist/chunk-C5QO3SX4.js +2 -0
- package/dist/chunk-CISJAQ6W.mjs +2 -0
- package/dist/chunk-DUY6F3GT.mjs +94 -0
- package/dist/chunk-EHAZIKDX.js +81 -0
- package/dist/chunk-EPT2K355.mjs +2 -0
- package/dist/chunk-HGGLW5TE.js +2 -0
- package/dist/chunk-HQSU7LGM.js +94 -0
- package/dist/chunk-IZCWCE7W.mjs +2 -0
- package/dist/chunk-JBSCER34.js +2 -0
- package/dist/chunk-KF3EFJEF.mjs +3 -0
- package/dist/chunk-KSERBMXW.mjs +4 -0
- package/dist/chunk-LJNNPAFU.mjs +2 -0
- package/dist/{chunk-UXMGBIX6.js → chunk-LSCMXAPY.mjs} +4 -4
- package/dist/chunk-LSNL4XR5.js +2 -0
- package/dist/chunk-MG73MOZC.mjs +15 -0
- package/dist/chunk-NCOZB2WU.mjs +2 -0
- package/dist/chunk-NQNFS3QI.js +7 -0
- package/dist/{chunk-ZEOQYWOE.mjs → chunk-P2YV6DR3.js} +4 -4
- package/dist/chunk-P6QAFBCV.js +2 -0
- package/dist/chunk-QVULSG6J.mjs +3 -0
- package/dist/chunk-R5FW5XUQ.mjs +2 -0
- package/dist/chunk-RGNP45VR.js +2 -0
- package/dist/chunk-RLYTX3MM.js +2 -0
- package/dist/chunk-RNTNHVKZ.js +15 -0
- package/dist/chunk-RRVKUCFR.mjs +2 -0
- package/dist/chunk-RXL6CZAI.js +2 -0
- package/dist/chunk-RY3PGVLZ.mjs +2 -0
- package/dist/chunk-SUEGUY35.js +2 -0
- package/dist/chunk-SYMQJO2W.mjs +7 -0
- package/dist/chunk-TCN22KYP.mjs +7 -0
- package/dist/chunk-UFPSUO52.js +318 -0
- package/dist/chunk-VTITKWGX.mjs +2 -0
- package/dist/chunk-WH6ZMUOS.mjs +81 -0
- package/dist/chunk-WTJGLNTB.js +3 -0
- package/dist/chunk-XHROISIF.mjs +2 -0
- package/dist/chunk-XMBSJJ5U.js +4 -0
- package/dist/chunk-ZLSWOFAY.mjs +132 -0
- package/dist/chunk-ZPKVLTSX.js +2 -0
- package/dist/consent.d.mts +6 -4
- package/dist/consent.d.ts +6 -4
- package/dist/consent.js +1 -1
- package/dist/consent.mjs +1 -1
- package/dist/core.d.mts +6 -29
- package/dist/core.d.ts +6 -29
- package/dist/core.js +1 -1
- package/dist/core.mjs +1 -1
- package/dist/cross-border.js +1 -1
- package/dist/cross-border.mjs +1 -1
- package/dist/docx-BxKascXN.d.ts +64 -0
- package/dist/docx-CV7Vsry_.d.mts +64 -0
- package/dist/dpia.js +1 -1
- package/dist/dpia.mjs +1 -1
- package/dist/dsr.js +1 -1
- package/dist/dsr.mjs +1 -1
- package/dist/hooks.d.mts +3 -3
- package/dist/hooks.d.ts +3 -3
- package/dist/hooks.js +1 -1
- package/dist/hooks.mjs +1 -1
- package/dist/index.d.mts +7 -5
- package/dist/index.d.ts +7 -5
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/dist/lawful-basis.js +1 -1
- package/dist/lawful-basis.mjs +1 -1
- package/dist/locale-CxJx2tzn.d.mts +25 -0
- package/dist/locale-DSkrtf-c.d.ts +25 -0
- package/dist/{policy-engine-C6nC2t3a.d.ts → policy-engine-CCUCud2T.d.ts} +1 -1
- package/dist/{policy-engine-DefZcX3R.d.mts → policy-engine-fYSqEqSW.d.mts} +1 -1
- package/dist/{policy-sections-DFDPVCCg.d.ts → policy-sections-BYx6fEFk.d.ts} +4 -2
- package/dist/{policy-sections-Bylm31kZ.d.mts → policy-sections-Dm97Nq8m.d.mts} +4 -2
- package/dist/{policy-templates-CIKcV0i1.d.ts → policy-templates-DhLwq4R-.d.ts} +8 -1
- package/dist/{policy-templates-DMsPwOSZ.d.mts → policy-templates-DwYl2329.d.mts} +8 -1
- package/dist/policy.d.mts +36 -71
- package/dist/policy.d.ts +36 -71
- package/dist/policy.js +1 -1
- package/dist/policy.mjs +1 -1
- package/dist/presets.d.mts +2 -2
- package/dist/presets.d.ts +2 -2
- package/dist/presets.js +1 -1
- package/dist/presets.mjs +1 -1
- package/dist/ropa.js +1 -1
- package/dist/ropa.mjs +1 -1
- package/dist/sanitize-CxxwKxAx.d.mts +94 -0
- package/dist/sanitize-CxxwKxAx.d.ts +94 -0
- package/dist/server.d.mts +24 -0
- package/dist/server.d.ts +24 -0
- package/dist/server.js +2 -0
- package/dist/server.mjs +2 -0
- package/dist/styles.css +1423 -31
- package/dist/styling-BMDGQDgS.d.mts +64 -0
- package/dist/styling-BaoQtV06.d.ts +64 -0
- package/dist/unstyled.d.mts +52 -19
- package/dist/unstyled.d.ts +52 -19
- package/dist/unstyled.js +1 -1
- package/dist/unstyled.mjs +1 -1
- package/dist/{useAdaptivePolicyWizard-A1PyOy6P.d.mts → useAdaptivePolicyWizard-BnjW4OR4.d.mts} +1 -1
- package/dist/{useAdaptivePolicyWizard-LVIKhAxw.d.ts → useAdaptivePolicyWizard-sb3m4-Zk.d.ts} +1 -1
- package/dist/{useDefaultPrivacyPolicy-ySWU7nc-.d.mts → useDefaultPrivacyPolicy-Cs2WQSYQ.d.mts} +30 -9
- package/dist/{useDefaultPrivacyPolicy-DvCbeEl1.d.ts → useDefaultPrivacyPolicy-DkOqMg2e.d.ts} +30 -9
- package/package.json +14 -2
- package/dist/chunk-25OOUES4.js +0 -2
- package/dist/chunk-4JKTIR33.mjs +0 -2
- package/dist/chunk-5BUS6AI7.js +0 -2
- package/dist/chunk-5ECDPRSZ.js +0 -7
- package/dist/chunk-6YN73KR7.mjs +0 -2
- package/dist/chunk-CDZDT2OS.mjs +0 -320
- package/dist/chunk-CWUPGY3M.mjs +0 -3
- package/dist/chunk-CYU6YUJQ.mjs +0 -81
- package/dist/chunk-EKHBORAH.js +0 -81
- package/dist/chunk-ENIMJ6SQ.js +0 -2
- package/dist/chunk-FLKJSGR7.mjs +0 -94
- package/dist/chunk-FWLPJ5YI.js +0 -94
- package/dist/chunk-GCQRHMTQ.mjs +0 -144
- package/dist/chunk-GMLCWGNJ.js +0 -7
- package/dist/chunk-GXLSOZCH.mjs +0 -2
- package/dist/chunk-LETEUS5X.mjs +0 -2
- package/dist/chunk-LU4PFST7.js +0 -144
- package/dist/chunk-NBSVFQ5G.js +0 -2
- package/dist/chunk-OYR3L4XS.mjs +0 -7
- package/dist/chunk-QF6XNKU6.mjs +0 -2
- package/dist/chunk-QJ3JNHO7.js +0 -2
- package/dist/chunk-QNCGRCAX.mjs +0 -2
- package/dist/chunk-SAA7UVI2.js +0 -3
- package/dist/chunk-TI2M7H6R.mjs +0 -7
- package/dist/chunk-TXXWCB5O.js +0 -320
- package/dist/chunk-UGY5ZYUG.js +0 -2
- package/dist/chunk-UO6QPJLH.js +0 -2
- package/dist/chunk-UX6ZZNEM.mjs +0 -3
- package/dist/chunk-XFUEZ3MP.mjs +0 -2
- package/dist/chunk-XHSHPB74.js +0 -2
- package/dist/chunk-YCX6BFOQ.js +0 -2
- package/dist/chunk-YURSF2YO.mjs +0 -2
- package/dist/chunk-YZXUAIYN.js +0 -3
- 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'.
|