Skip to content

fix(mosaic): use focusable disabled behavior for pending submit buttons - #10220

Open
austincalvelage wants to merge 3 commits into
mainfrom
austin/mosaic-submit-button-disabled
Open

austincalvelage wants to merge 3 commits into
mainfrom
austin/mosaic-submit-button-disabled

Conversation

@austincalvelage

@austincalvelage austincalvelage commented Oct 13, 2026 •

Copy link
Copy Markdown
Member

Description

Replaces SubmitButton’s temporary pending click guard with Button’s existing disabled and focusableWhenDisabled behavior, resolving the TODO.
Pending buttons now use disabled styling and block activation while retaining focus. Spinner timing and explicit or inherited disabled settings are preserved.

Before:

CleanShot.2026-10-13.at.17.47.51.mp4

After:

CleanShot.2026-10-13.at.17.47.02.mp4

Type of change

  • 🐛 Bug fix
  • 🌟 New feature
  • 🔨 Breaking change
  • 📖 Refactoring / dependency upgrade / documentation
  • other:

@changeset-bot

changeset-bot Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 19a0584

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 0 packages

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@vercel

vercel Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
clerk-js-sandbox Ready Ready Preview Oct 14, 2026 12:00am UTC
swingset Ready Ready Preview Oct 14, 2026 12:00am UTC

Request Review

@coderabbitai

coderabbitai Bot commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository YAML (base), Organization UI (inherited)
  • Review profile: ASSERTIVE
  • Plan: Team
  • Run ID: 5fe96cd1-71aa-4396-b7b3-c5abfcba119e
📥 Commits

Reviewing files that changed from the base of the PR and between 5dbfec2 and 19a0584.

📒 Files selected for processing: 1
  • packages/mosaic/src/components/button/__tests__/submit-button.test.tsx
🔗 Linked repositories identified

CodeRabbit considers these linked repositories for cross-repo context during reviews:

💤 Files with no reviewable changes: 1
  • packages/mosaic/src/components/button/tests/submit-button.test.tsx

Included review availability: This review used your included allowance. 6 included reviews remain after this review. Your included PR review attempts over the past 7 days set your current allowance at 8 reviews per hour.

📝 Walkthrough

SubmitButton now combines inherited and explicit disabled states and passes disabled and pending-aware focus settings to Button. Tests cover disabled-state transitions and focus retention. The changeset file contains empty frontmatter delimiters.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~10 minutes

Merge Risk: ⚪ Minimal · up to 19a05

Pending buttons retain focus without activating, and no issue requiring a fix before merge was established.

Pre-merge checks: Passed 5
Passed Passed checks: 5 passed
Check name Status Explanation
Title check Passed The title clearly and concisely describes the main change: applying focusable disabled behavior to pending submit buttons.
Description check Passed The description directly explains the replacement of the pending click guard with disabled and focusableWhenDisabled behavior, including the preserved settings and focus behavior.
Docstring Coverage Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 2…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

@austincalvelage austincalvelage changed the title Austin/mosaic submit button disabled fix(mosaic): use focusable disabled behavior for pending submit buttons Oct 13, 2026
@pkg-pr-new

pkg-pr-new Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

Open in StackBlitz

@clerk/astro

npm i https://pkg.pr.new/@clerk/astro@10220

@clerk/backend

npm i https://pkg.pr.new/@clerk/backend@10220

@clerk/chrome-extension

npm i https://pkg.pr.new/@clerk/chrome-extension@10220

@clerk/clerk-js

npm i https://pkg.pr.new/@clerk/clerk-js@10220

@clerk/electron

npm i https://pkg.pr.new/@clerk/electron@10220

@clerk/electron-passkeys

npm i https://pkg.pr.new/@clerk/electron-passkeys@10220

@clerk/eslint-plugin

npm i https://pkg.pr.new/@clerk/eslint-plugin@10220

@clerk/expo

npm i https://pkg.pr.new/@clerk/expo@10220

@clerk/expo-biometrics

npm i https://pkg.pr.new/@clerk/expo-biometrics@10220

@clerk/expo-google-signin

npm i https://pkg.pr.new/@clerk/expo-google-signin@10220

@clerk/expo-native-components

npm i https://pkg.pr.new/@clerk/expo-native-components@10220

@clerk/expo-passkeys

npm i https://pkg.pr.new/@clerk/expo-passkeys@10220

@clerk/express

npm i https://pkg.pr.new/@clerk/express@10220

@clerk/fastify

npm i https://pkg.pr.new/@clerk/fastify@10220

@clerk/hono

npm i https://pkg.pr.new/@clerk/hono@10220

@clerk/localizations

npm i https://pkg.pr.new/@clerk/localizations@10220

@clerk/mosaic

npm i https://pkg.pr.new/@clerk/mosaic@10220

@clerk/nextjs

npm i https://pkg.pr.new/@clerk/nextjs@10220

@clerk/nuxt

npm i https://pkg.pr.new/@clerk/nuxt@10220

@clerk/react

npm i https://pkg.pr.new/@clerk/react@10220

@clerk/react-router

npm i https://pkg.pr.new/@clerk/react-router@10220

@clerk/shared

npm i https://pkg.pr.new/@clerk/shared@10220

@clerk/tanstack-react-start

npm i https://pkg.pr.new/@clerk/tanstack-react-start@10220

@clerk/testing

npm i https://pkg.pr.new/@clerk/testing@10220

@clerk/ui

npm i https://pkg.pr.new/@clerk/ui@10220

@clerk/upgrade

npm i https://pkg.pr.new/@clerk/upgrade@10220

@clerk/vue

npm i https://pkg.pr.new/@clerk/vue@10220

commit: 19a0584

@austincalvelage
austincalvelage marked this pull request as ready for review October 13, 2026 23:54

@alexcarpenter alexcarpenter left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hmm, do we want to have the disabled styles for pending? or keep them separate?

@austincalvelage

Copy link
Copy Markdown
Member Author

hmm, do we want to have the disabled styles for pending? or keep them separate?

Fair question. Looking at shadcn it looks like they disable:

https://ui.shadcn.com/docs/components/base/button#spinner

I'm fine with either way FWIW

@maxyinger

maxyinger commented Oct 14, 2026 •

Copy link
Copy Markdown
Collaborator

hmm, do we want to have the disabled styles for pending? or keep them separate?

Yea I'm kinda open to either

This branch was successfully deployed

2 active deployments
Preview – swingset — 19a0584b Deployed Oct 14, 2026 by vercel[bot]
Preview – clerk-js-sandbox — 19a0584b Deployed Oct 13, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants