{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "technical-details",
  "title": "Technical details",
  "description": "Closed-by-default Base UI disclosure for secondary facts or code, with a chevron and optional count. Remembers open state in sessionStorage per page or explicit key and still works when browser storage is refused.",
  "registryDependencies": [
    "@waimakers/utils",
    "@waimakers/theme",
    "@waimakers/collapsible"
  ],
  "files": [
    {
      "path": "src/components/ui/technical-details.tsx",
      "content": "import type { ComponentProps } from \"react\";\nimport { useCallback, useState, useSyncExternalStore } from \"react\";\nimport { cn } from \"../../lib/utils\";\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from \"./collapsible\";\n\nconst preferenceEvent = \"waimakers:technical-details\";\nfunction subscribePreference(notify: () => void) {\n  window.addEventListener(preferenceEvent, notify);\n  return () => window.removeEventListener(preferenceEvent, notify);\n}\nfunction serverPreference() {\n  return false;\n}\n\nfunction TechnicalDetails({\n  storageKey,\n  count,\n  label = \"Technical details\",\n  accessibleLabel,\n  children,\n  className,\n  ...props\n}: Omit<ComponentProps<\"div\">, \"onChange\"> & {\n  storageKey?: string;\n  count?: number;\n  label?: string;\n  accessibleLabel?: string;\n}) {\n  const key = `waimakers:technical-details:${storageKey ?? (typeof window === \"undefined\" ? \"\" : window.location.pathname)}`;\n  const read = useCallback(() => {\n    try {\n      return sessionStorage.getItem(key) === \"open\";\n    } catch {\n      return false;\n    }\n  }, [key]);\n  const remembered = useSyncExternalStore(subscribePreference, read, serverPreference);\n  const [override, setOverride] = useState<{ key: string; open: boolean } | null>(null);\n  const open = override?.key === key ? override.open : remembered;\n  return (\n    <Collapsible\n      open={open}\n      onOpenChange={(next) => {\n        setOverride({ key, open: next });\n        try {\n          sessionStorage.setItem(key, next ? \"open\" : \"closed\");\n          window.dispatchEvent(new Event(preferenceEvent));\n        } catch {\n          return;\n        }\n      }}\n      data-slot=\"technical-details\"\n      className={cn(\"min-w-0 border-t border-border pt-4\", className)}\n      {...props}\n    >\n      <CollapsibleTrigger\n        type=\"button\"\n        aria-label={accessibleLabel ?? `${label}${count === undefined ? \"\" : ` ${count}`}`}\n      >\n        <span className=\"min-w-0 [overflow-wrap:anywhere]\">{label}</span>\n        {count !== undefined && <span className=\"tabular-nums\"> {count}</span>}\n      </CollapsibleTrigger>\n      <CollapsibleContent className=\"min-w-0 pt-3\">{children}</CollapsibleContent>\n    </Collapsible>\n  );\n}\nexport { TechnicalDetails };\n",
      "type": "registry:ui",
      "target": "components/ui/technical-details.tsx"
    }
  ],
  "type": "registry:ui"
}