{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "id-token",
  "title": "Identifier token",
  "description": "Middle-truncated identifier with a keyboard-focusable full-value tooltip and the existing CopyButton confirmation and clipboard refusal announcement. No toast.",
  "registryDependencies": [
    "@waimakers/utils",
    "@waimakers/theme",
    "@waimakers/tooltip",
    "@waimakers/copy-button"
  ],
  "files": [
    {
      "path": "src/components/ui/id-token.tsx",
      "content": "import { useId, type ComponentProps } from \"react\";\nimport { cn, focusRing } from \"../../lib/utils\";\nimport { CopyButton } from \"./copy-button\";\nimport { Tooltip, TooltipContent, TooltipTrigger } from \"./tooltip\";\n\nfunction IdToken({\n  value,\n  label = \"Identifier\",\n  className,\n  interactive = true,\n  ...props\n}: Omit<ComponentProps<\"span\">, \"children\"> & {\n  value: string;\n  label?: string;\n  interactive?: boolean;\n}) {\n  const tooltipId = useId();\n  const display = value.length > 20 ? `${value.slice(0, 10)}…${value.slice(-6)}` : value;\n  if (!interactive) {\n    return (\n      <span\n        data-slot=\"id-token\"\n        className={cn(\"inline-block max-w-full truncate align-middle font-mono text-sm\", className)}\n        title={value}\n        {...props}\n      >\n        <span aria-hidden=\"true\">{display}</span>\n        <span className=\"sr-only\">\n          {label} {value}\n        </span>\n      </span>\n    );\n  }\n  return (\n    <span\n      data-slot=\"id-token\"\n      className={cn(\"inline-flex max-w-full min-w-0 items-center gap-1 align-middle\", className)}\n      {...props}\n    >\n      <Tooltip>\n        <TooltipTrigger\n          render={<button type=\"button\" />}\n          aria-label={`${label} ${value}`}\n          aria-describedby={tooltipId}\n          className={cn(\"min-w-0 truncate rounded-sm font-mono text-sm\", focusRing)}\n        >\n          {display}\n        </TooltipTrigger>\n        <TooltipContent\n          role=\"tooltip\"\n          id={tooltipId}\n          className=\"font-mono [overflow-wrap:anywhere]\"\n        >\n          {value.split(/(?<=[_:/.-])/u).map((part, index) => (\n            <span key={`${index}:${part}`}>\n              {part}\n              <wbr />\n            </span>\n          ))}\n        </TooltipContent>\n      </Tooltip>\n      <CopyButton\n        type=\"button\"\n        value={value}\n        label={label}\n        variant=\"ghost\"\n        size=\"sm\"\n        className=\"size-9 shrink-0 p-0\"\n      />\n    </span>\n  );\n}\nexport { IdToken };\n",
      "type": "registry:ui",
      "target": "components/ui/id-token.tsx"
    }
  ],
  "type": "registry:ui"
}