{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "gallery-disc-button",
  "type": "registry:ui",
  "title": "Ivory disc key",
  "description": "Portable controlled disc console artwork.",
  "dependencies": [],
  "registryDependencies": [
    "https://pluginui.com/r/gallery-disc-control-styles.json"
  ],
  "files": [
    {
      "path": "components/ui/disc-button.tsx",
      "content": "/**\n * Source: https://maru.audio/ui-kit/disc-button\n * Copyright © [Maru](https://maru.audio)\n *\n * Maru UI Kit — https://maru.audio/ui-kit\n *\n * Installed from the Maru UI registry. This file is yours now: edit it\n * freely, it will not be overwritten unless you re-run the add command.\n *\n * Keep this item’s companion files and CSS imports together. Dependencies\n * declared by the registry are installed with the source.\n */\nimport type { ButtonHTMLAttributes } from \"react\"\nimport \"@/components/ui/disc-controls.css\"\nexport interface DiscButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n  label?: string\n  pressed?: boolean\n  onPressedChange?: (pressed: boolean) => void\n  appearance?: \"key\" | \"solo\" | \"pill\"\n}\nexport function DiscButton({\n  label,\n  pressed,\n  onPressedChange,\n  appearance = \"key\",\n  children,\n  className = \"\",\n  ...props\n}: DiscButtonProps) {\n  return (\n    <button\n      {...props}\n      type={props.type ?? \"button\"}\n      aria-label={label ?? props[\"aria-label\"]}\n      aria-pressed={pressed}\n      onClick={(event) => {\n        onPressedChange?.(!pressed)\n        props.onClick?.(event)\n      }}\n      className={`disc-button disc-button--${appearance} ${className}`}\n    >\n      {children ??\n        (appearance === \"solo\" ? (\n          <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n            <path d=\"M4 14v-3a8 8 0 0 1 16 0v3M4 12h3v8H4zm13 0h3v8h-3\" />\n          </svg>\n        ) : null)}\n    </button>\n  )\n}\n",
      "type": "registry:component",
      "target": "@ui/disc-button.tsx"
    }
  ]
}
