{
  "example": "import { AuthIdentity } from \"@godxjp/ui/layout\";\nimport { Logo } from \"@godxjp/ui/general\";\n\n<AuthIdentity title=\"Sign in\" requester=\"Acme Portal is requesting access\" />\n\n// The product's own lockup, with no artwork in the consumer's repo:\n<AuthIdentity title=\"GoDX ID\" brand={<Logo mark=\"godx-lockup\" productSuffix=\"ID\" />} />",
  "group": "layout",
  "importPath": "@godxjp/ui/layout",
  "name": "AuthIdentity",
  "props": [
    {
      "description": "Primary auth heading.",
      "name": "title",
      "required": true,
      "type": "ReactNode"
    },
    {
      "description": "Brand artwork in the MARK's place, for a service whose design ships a real lockup (mark + wordmark, sometimes a product suffix). Omitted → the active preset's `brandMark` (`<AppProvider preset={godxPreset}>` supplies the GoDX mark), otherwise NO mark: a neutral package draws no product's logo. `null` → no mark, preset or not. data-slot, .ui-auth-identity spacing and the h1 are untouched, so swapping artwork never forks the block.",
      "name": "brand",
      "type": "ReactNode"
    },
    {
      "description": "Optional real requesting-client context.",
      "name": "requester",
      "type": "ReactNode"
    },
    {
      "description": "Optional structural class override merged onto the identity root.",
      "name": "className",
      "type": "string"
    }
  ],
  "rules": [
    45
  ],
  "storyPath": "layout/auth-identity.tsx",
  "tagline": "Hosted-auth identity heading with the shared mark (or the product's own lockup) and optional requesting-client context.",
  "usage": [
    "Only show `requester` when the consumer has authoritative client context.",
    "It renders the page h1 plus a mark: the `brand` you pass, else the active preset's `brandMark`, else none (v32: the neutral default draws no product logo). Under `<AppProvider preset={godxPreset}>` (from `@godxjp/ui/themes/godx`, with `@godxjp/ui/themes/godx.css`) that is the brand-green GoDX mark — don't add a second Logo or heading above it.",
    "To show YOUR OWN lockup instead, pass it as `brand` — never wrap or rebuild the block. `brand` replaces the mark only, so the h1 stays; if your lockup already spells the product name, make `title` the SCREEN'S PURPOSE (\"Sign in\") rather than repeating the brand.",
    "DO keep `brand` non-interactive. The slot is DECORATIVE at every fill: the mark it replaces was always aria-hidden, and a real lockup is not a mark — `Logo mark=\"godx-lockup\" productSuffix=\"ID\"` exposes \"GoDX ID\" as real text, so left in the tree beside the h1 the block announces the product twice (measured: \"GoDXIDGoDX ID\"). aria-hidden is merged onto your element, and aria-hidden over a focusable child is a WCAG failure.",
    "Centring and rhythm are token-owned (`--auth-identity-gap` / `--auth-requester-*`); no page CSS (rule #45).",
    "Public type: `AuthIdentityProp` (alias `AuthIdentityProps`) from `@godxjp/ui/layout` — registered in the prop registry, not a local interface."
  ]
}
