Promise-based button with loading spinner and success/error state transitions
npx shadcn@latest add @shadcn-studio/button-26
button-26