From 5151454783db26ae3611ffbde39b9775435ee35b Mon Sep 17 00:00:00 2001 From: Danijel Martinek Date: Tue, 19 May 2026 23:38:46 +0200 Subject: [PATCH] chore(work): finish 09-cookie-consent-banner --- docs/work/_system/_state.json | 11 +++-------- .../09-cookie-consent-banner/_story.md | 6 +++--- .../work/epics/dsr-consent-and-cookie-banner/_epic.md | 4 ++-- 3 files changed, 8 insertions(+), 13 deletions(-) diff --git a/docs/work/_system/_state.json b/docs/work/_system/_state.json index 09c8afb..c299efa 100644 --- a/docs/work/_system/_state.json +++ b/docs/work/_system/_state.json @@ -1,5 +1,5 @@ { - "updated_at": "2026-05-19T21:03:59.518Z", + "updated_at": "2026-05-19T21:38:49.057Z", "epics": { "binder-wrap-helper": { "status": "done", @@ -331,10 +331,10 @@ ] }, "09-cookie-consent-banner": { - "status": "todo", + "status": "done", "title": "CookieConsentBanner component in core-ui", "ac_total": 1, - "ac_completed": 0, + "ac_completed": 1, "depends_on": [ "05-core-consent-react", "08-core-ui-scaffold" @@ -569,11 +569,6 @@ } }, "ready": [ - { - "epic": "dsr-consent-and-cookie-banner", - "story": "09-cookie-consent-banner", - "title": "CookieConsentBanner component in core-ui" - }, { "epic": "dsr-consent-and-cookie-banner", "story": "10-auth-signup-migration", diff --git a/docs/work/epics/dsr-consent-and-cookie-banner/09-cookie-consent-banner/_story.md b/docs/work/epics/dsr-consent-and-cookie-banner/09-cookie-consent-banner/_story.md index c4306eb..65d29db 100644 --- a/docs/work/epics/dsr-consent-and-cookie-banner/09-cookie-consent-banner/_story.md +++ b/docs/work/epics/dsr-consent-and-cookie-banner/09-cookie-consent-banner/_story.md @@ -3,12 +3,12 @@ id: 09-cookie-consent-banner epic: dsr-consent-and-cookie-banner title: CookieConsentBanner component in core-ui type: user-story -status: todo +status: done feature: core-ui depends-on: [05-core-consent-react, 08-core-ui-scaffold] blocks: [11-documentation] created: 2026-05-19T12:00:00Z -updated: 2026-05-19T09:55:07.020Z +updated: 2026-05-19T21:38:48.887Z --- ## Goal @@ -51,4 +51,4 @@ Downstream consumers need a drop-in cookie consent banner that satisfies CNIL gu ## Tasks -- [ ] Add `` headless component in `packages/core-ui/src/cookie-consent-banner/` with `variant: "modal" | "banner"` prop, granular category toggles (essential non-toggleable), equal-prominence Reject All / Accept All buttons (CNIL compliance baked into default visual treatment), render-prop overrides (`renderHeader`, `renderCategoryRow`, `renderActions`), `__consent_state` cookie management (SameSite=Lax, Secure, 1-year, versioned `_v: 1`), `onConsentChange` callback, `useConsent()` integration for authenticated context, `` SSR-safe wrapper; Storybook story covering both variants + render-prop example; axe-core a11y pass; RTL behavioral tests (Reject All, Save Selected with toggle, ESC = Reject All, tab order, modal focus-trap); export from `core-ui` index; all gates pass. +- [x] Add `` headless component in `packages/core-ui/src/cookie-consent-banner/` with `variant: "modal" | "banner"` prop, granular category toggles (essential non-toggleable), equal-prominence Reject All / Accept All buttons (CNIL compliance baked into default visual treatment), render-prop overrides (`renderHeader`, `renderCategoryRow`, `renderActions`), `__consent_state` cookie management (SameSite=Lax, Secure, 1-year, versioned `_v: 1`), `onConsentChange` callback, `useConsent()` integration for authenticated context, `` SSR-safe wrapper; Storybook story covering both variants + render-prop example; axe-core a11y pass; RTL behavioral tests (Reject All, Save Selected with toggle, ESC = Reject All, tab order, modal focus-trap); export from `core-ui` index; all gates pass. diff --git a/docs/work/epics/dsr-consent-and-cookie-banner/_epic.md b/docs/work/epics/dsr-consent-and-cookie-banner/_epic.md index 349fe3c..6e01466 100644 --- a/docs/work/epics/dsr-consent-and-cookie-banner/_epic.md +++ b/docs/work/epics/dsr-consent-and-cookie-banner/_epic.md @@ -16,7 +16,7 @@ features: auth, ] created: 2026-05-19T12:00:00Z -updated: 2026-05-19T21:03:59.344Z +updated: 2026-05-19T21:38:48.887Z --- ## Goal @@ -37,6 +37,6 @@ Epic A delivered declarative PII inventory + retention + sub-processors. Epic B - [x] [06 — core-dsr: scaffold + interfaces + Payload impls + handlers + dsrRouter](06-core-dsr/_story.md) - [x] [07 — core-api router composition: dsrRouter + consentRouter into appRouter](07-core-api-router-composition/_story.md) - [x] [08 — core-ui scaffold](08-core-ui-scaffold/_story.md) -- [ ] [09 — CookieConsentBanner component in core-ui](09-cookie-consent-banner/_story.md) +- [x] [09 — CookieConsentBanner component in core-ui](09-cookie-consent-banner/_story.md) - [ ] [10 — auth signUp anonymous consent migration](10-auth-signup-migration/_story.md) - [ ] [11 — Documentation: DSR guide + consent guide + glossary + CLAUDE.md](11-documentation/_story.md)