{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "tonal-button",
  "title": "Tonal button",
  "description": "A filled secondary button in two quiet fills: a tinted tonal fill and a neutral secondary one, as in Steeze's Earnings and Edit Profile pair.",
  "dependencies": [],
  "registryDependencies": [],
  "files": [
    {
      "path": "registry/items/tonal-button/tonal-button.tsx",
      "content": "\"use client\";\n\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nexport interface TonalButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n  /** The label. Defaults to \"Earnings\". */\n  label?: React.ReactNode;\n  /**\n   * Fill. `tonal` is the quiet tinted fill (Steeze's blue-slate Earnings\n   * button); `secondary` is the neutral one beside it (Edit Profile).\n   */\n  tone?: \"tonal\" | \"secondary\";\n}\n\nconst TONE = {\n  tonal: \"bg-tonal px-8 text-on-tonal\",\n  secondary: \"bg-secondary px-6 text-secondary-foreground\",\n} as const;\n\n/**\n * A filled secondary action: Steeze's profile pair, Earnings and Edit Profile,\n * that sits beside a primary action without competing with it. It dims while\n * pressed, as a native touchable does.\n */\nexport function TonalButton({\n  label = \"Earnings\",\n  tone = \"tonal\",\n  className,\n  type = \"button\",\n  ...props\n}: TonalButtonProps) {\n  return (\n    <button\n      type={type}\n      className={cn(\n        \"inline-flex cursor-pointer touch-manipulation items-center justify-center rounded-inset py-2 font-body text-base leading-6 font-semibold transition-opacity duration-150 select-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background focus-visible:outline-none active:opacity-20 motion-reduce:transition-none disabled:pointer-events-none disabled:opacity-50\",\n        TONE[tone],\n        className,\n      )}\n      {...props}\n    >\n      {label}\n    </button>\n  );\n}\n\nexport default TonalButton;\n",
      "type": "registry:ui"
    }
  ],
  "meta": {
    "kind": "primitive",
    "whenToUse": "Use for actions that sit beside or below a primary one and still need to read as buttons, such as profile shortcuts or a pair of settings. Not for the main call to action on a screen, and not for destructive actions.",
    "origin": {
      "project": "Steeze",
      "path": "app_steeze: app/(root)/(tabs)/profile.tsx (Earnings and Edit Profile buttons)"
    },
    "credits": []
  },
  "type": "registry:ui"
}
