{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "cookie-consent",
  "type": "registry:ui",
  "title": "Cookie consent (MIAN)",
  "description": "A consent notice with equal-weight Accept and Reject, and per-purpose switches, honest by default, dismissible.",
  "categories": [
    "feedback",
    "cookie consent",
    "cookie banner",
    "gdpr",
    "privacy"
  ],
  "registryDependencies": [
    "https://mian.ro/r/mian-base.json"
  ],
  "files": [
    {
      "path": "mian/components/cookie-consent.css",
      "type": "registry:file",
      "target": "mian/components/cookie-consent.css",
      "content": ".mn-consent { display: grid; gap: .9rem; max-width: 34rem; padding: 1.1rem 1.25rem; border: var(--mn-border-w) solid var(--mn-border); border-radius: var(--mn-radius-box); background: var(--mn-surface); color: var(--mn-fg); box-shadow: var(--mn-shadow-lg); font-size: var(--mn-text-sm); line-height: 1.55; }\n.mn-consent > p { margin: 0; }\n.mn-consent-fixed { position: fixed; z-index: 60; inset: auto 1rem calc(1rem + env(safe-area-inset-bottom, 0px)) auto; width: min(34rem, calc(100vw - 2rem)); }\n.mn-consent-actions { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }\n.mn-consent-options > summary { width: fit-content; cursor: pointer; color: var(--mn-fg); font-weight: 500; text-decoration: underline; text-underline-offset: 3px; }\n.mn-consent-options[open] { display: grid; gap: .55rem; }\n.mn-consent-options[open] > summary { margin-bottom: .2rem; }"
    },
    {
      "path": "mian/examples/cookie-consent.html",
      "type": "registry:file",
      "target": "mian/examples/cookie-consent.html",
      "content": "<!-- Consent -->\n<section class=\"mn-consent\" role=\"region\" aria-label=\"Cookie choices\">\n  <p><strong>Cookies on this site.</strong> We use necessary storage to keep you signed in. With your permission we also measure visits to improve pages. <a class=\"mn-link\" href=\"#\">Privacy notice</a></p>\n  <details class=\"mn-consent-options\"><summary>Customise</summary>\n    <label class=\"mn-row\"><input class=\"mn-switch\" type=\"checkbox\" role=\"switch\" checked disabled> Necessary: always on</label>\n    <label class=\"mn-row\"><input class=\"mn-switch\" type=\"checkbox\" role=\"switch\"> Measurement</label>\n    <label class=\"mn-row\"><input class=\"mn-switch\" type=\"checkbox\" role=\"switch\"> Marketing</label>\n  </details>\n  <div class=\"mn-consent-actions\"><button class=\"mn-btn mn-btn-outline\" type=\"button\" data-mn-dismiss=\".mn-consent\">Reject all</button><button class=\"mn-btn\" type=\"button\" data-mn-dismiss=\".mn-consent\">Accept all</button></div>\n</section>"
    }
  ],
  "docs": "MIAN components are HTML + CSS classes, not React components. The styles are already included in mian-base; this item adds the component's CSS section and example markup for reference. Docs: https://mian.ro/components/cookie-consent",
  "meta": {
    "mian": {
      "license": "LicenseRef-MIAN-1.0",
      "requiresJs": false,
      "classes": [
        "mn-consent",
        "mn-consent-actions",
        "mn-consent-options"
      ],
      "accessibility": [
        "It is a labelled region (role=\"region\" with aria-label), not a modal: the page stays usable.",
        "Reject and Accept have the same size and weight; nothing is pre-ticked except strictly necessary storage.",
        "Buttons with data-mn-dismiss close it; store the choice and do not show it again."
      ],
      "intents": [
        "cookie banner",
        "cookie consent",
        "gdpr consent",
        "privacy choices",
        "tracking consent"
      ]
    }
  }
}
