Skip to content

feat(ui): composed profile components (release)#9144

Open
alexcarpenter wants to merge 9 commits into
mainfrom
carp/profile-release
Open

feat(ui): composed profile components (release)#9144
alexcarpenter wants to merge 9 commits into
mainfrom
carp/profile-release

Conversation

@alexcarpenter

@alexcarpenter alexcarpenter commented Jul 13, 2026

Copy link
Copy Markdown
Member

Integration branch for the composed profile components feature.

The 7-PR review stack merges into this branch bottom-up; this PR merges the assembled feature into main as a single unit. Nothing lands in main until this merges.

Rebased onto latest main, so the final integration is conflict-free. The stack table (added to every PR below) tracks progress.


Stack

Reviewed as a stack. The 7 PRs merge bottom-up into release branch #9144, which integrates into main as a single unit.

# PR Layer
#9144 👈 release → main (integration)
1 #9130 moduleManager getter across build boundary
2 #9131 shared profile UI infra
3 #9132 extract Section components from profile pages
4 #9133 composed shell + providers infra
5 #9134 composed UserProfile
6 #9135 composed OrganizationProfile
7 #9136 expose @clerk/ui/experimental (public API)

@vercel

vercel Bot commented Jul 13, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
clerk-js-sandbox Ready Ready Preview, Comment Jul 16, 2026 1:38pm
swingset Ready Ready Preview, Comment Jul 16, 2026 1:38pm

Request Review

@changeset-bot

changeset-bot Bot commented Jul 13, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: a28f465

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

This PR includes changesets to release 23 packages
Name Type
@clerk/ui Minor
@clerk/clerk-js Patch
@clerk/shared Patch
@clerk/react Patch
@clerk/astro Patch
@clerk/chrome-extension Patch
@clerk/swingset Patch
@clerk/vue Patch
@clerk/electron Patch
@clerk/expo Patch
@clerk/backend Patch
@clerk/expo-passkeys Patch
@clerk/express Patch
@clerk/fastify Patch
@clerk/headless Patch
@clerk/hono Patch
@clerk/localizations Patch
@clerk/msw Patch
@clerk/nextjs Patch
@clerk/nuxt Patch
@clerk/react-router Patch
@clerk/tanstack-react-start Patch
@clerk/testing Patch

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

@coderabbitai

coderabbitai Bot commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

Note

Currently processing new changes in this PR. This may take a few minutes, please wait...

⚙️ Run configuration

Configuration used: Repository YAML (base), Repository UI (inherited)

Review profile: CHILL

Plan: Pro Plus

Run ID: cb009617-bee7-4d61-b6a8-855304465c8b

📥 Commits

Reviewing files that changed from the base of the PR and between bcbdda6 and a28f465.

⛔ Files ignored due to path filters (1)
  • packages/ui/src/experimental/__tests__/__snapshots__/flat-exports.test.ts.snap is excluded by !**/*.snap
📒 Files selected for processing (86)
  • .changeset/profile-section-components.md
  • .changeset/shared-moduleManager-registry.md
  • integration/tests/composed-components.test.ts
  • packages/clerk-js/src/core/clerk.ts
  • packages/react/src/__tests__/isomorphicClerk.test.ts
  • packages/react/src/isomorphicClerk.ts
  • packages/shared/src/types/clerk.ts
  • packages/ui/bundlewatch.config.json
  • packages/ui/package.json
  • packages/ui/src/components/ConfigureSSO/ConfigureSSO.tsx
  • packages/ui/src/components/OrganizationProfile/OrganizationBillingPage.tsx
  • packages/ui/src/components/OrganizationProfile/OrganizationGeneralPage.tsx
  • packages/ui/src/components/OrganizationProfile/OrganizationMembers.tsx
  • packages/ui/src/components/UserProfile/APIKeysPage.tsx
  • packages/ui/src/components/UserProfile/AccountPage.tsx
  • packages/ui/src/components/UserProfile/AccountSections.tsx
  • packages/ui/src/components/UserProfile/BillingPage.tsx
  • packages/ui/src/components/UserProfile/SecurityPage.tsx
  • packages/ui/src/components/UserProfile/SecuritySections.tsx
  • packages/ui/src/components/UserProfile/Web3Form.tsx
  • packages/ui/src/components/UserProfile/__tests__/AccountSections.test.tsx
  • packages/ui/src/components/UserProfile/__tests__/SecuritySections.test.tsx
  • packages/ui/src/components/UserProfile/__tests__/Web3Section.test.tsx
  • packages/ui/src/composed/APIKeysSection.tsx
  • packages/ui/src/composed/BillingSection.tsx
  • packages/ui/src/composed/OrganizationProfile/APIKeys.tsx
  • packages/ui/src/composed/OrganizationProfile/Billing.tsx
  • packages/ui/src/composed/OrganizationProfile/General.tsx
  • packages/ui/src/composed/OrganizationProfile/GeneralDeleteOrganization.tsx
  • packages/ui/src/composed/OrganizationProfile/GeneralLeaveOrganization.tsx
  • packages/ui/src/composed/OrganizationProfile/GeneralOrganizationProfile.tsx
  • packages/ui/src/composed/OrganizationProfile/GeneralVerifiedDomains.tsx
  • packages/ui/src/composed/OrganizationProfile/Members.tsx
  • packages/ui/src/composed/OrganizationProfile/OrganizationProfileProvider.tsx
  • packages/ui/src/composed/OrganizationProfile/Security.tsx
  • packages/ui/src/composed/OrganizationProfile/index.tsx
  • packages/ui/src/composed/PageContext.tsx
  • packages/ui/src/composed/ProfileProviderShell.tsx
  • packages/ui/src/composed/UserProfile/APIKeys.tsx
  • packages/ui/src/composed/UserProfile/Account.tsx
  • packages/ui/src/composed/UserProfile/AccountConnectedAccounts.tsx
  • packages/ui/src/composed/UserProfile/AccountEmails.tsx
  • packages/ui/src/composed/UserProfile/AccountEnterpriseAccounts.tsx
  • packages/ui/src/composed/UserProfile/AccountPhone.tsx
  • packages/ui/src/composed/UserProfile/AccountProfile.tsx
  • packages/ui/src/composed/UserProfile/AccountUsername.tsx
  • packages/ui/src/composed/UserProfile/AccountWeb3.tsx
  • packages/ui/src/composed/UserProfile/Billing.tsx
  • packages/ui/src/composed/UserProfile/Security.tsx
  • packages/ui/src/composed/UserProfile/SecurityActiveDevices.tsx
  • packages/ui/src/composed/UserProfile/SecurityDelete.tsx
  • packages/ui/src/composed/UserProfile/SecurityMfa.tsx
  • packages/ui/src/composed/UserProfile/SecurityPasskeys.tsx
  • packages/ui/src/composed/UserProfile/SecurityPassword.tsx
  • packages/ui/src/composed/UserProfile/UserProfileProvider.tsx
  • packages/ui/src/composed/UserProfile/index.tsx
  • packages/ui/src/composed/__tests__/OrganizationProfile.test.tsx
  • packages/ui/src/composed/__tests__/OrganizationProfileSections.test.tsx
  • packages/ui/src/composed/__tests__/UserProfile.test.tsx
  • packages/ui/src/composed/__tests__/UserProfileSections.test.tsx
  • packages/ui/src/composed/__tests__/action-animation.test.tsx
  • packages/ui/src/composed/__tests__/auto-animate-strictmode.test.tsx
  • packages/ui/src/composed/__tests__/composed-provider-wiring.test.tsx
  • packages/ui/src/composed/__tests__/hotload-vs-bundle-risks.test.tsx
  • packages/ui/src/composed/__tests__/stub-limitations.test.ts
  • packages/ui/src/composed/__tests__/style-cache-sharing.test.tsx
  • packages/ui/src/composed/createSection.tsx
  • packages/ui/src/composed/index.ts
  • packages/ui/src/composed/stubRouter.ts
  • packages/ui/src/composed/useBillingRouter.ts
  • packages/ui/src/composed/useRequirePage.ts
  • packages/ui/src/customizables/elementDescriptors.ts
  • packages/ui/src/elements/Animated.tsx
  • packages/ui/src/elements/AppearanceOverrides.tsx
  • packages/ui/src/elements/ProfileCard/ProfileCardPage.tsx
  • packages/ui/src/elements/ProfileCard/ProfilePagePanel.tsx
  • packages/ui/src/elements/ProfileCard/__tests__/ProfilePagePanel.test.tsx
  • packages/ui/src/elements/ProfileCard/index.ts
  • packages/ui/src/experimental/__tests__/flat-exports.test.ts
  • packages/ui/src/experimental/index.ts
  • packages/ui/src/hooks/useSafeState.ts
  • packages/ui/src/internal/appearance.ts
  • packages/ui/src/internal/styleCacheStore.ts
  • packages/ui/src/styledSystem/StyleCacheProvider.tsx
  • packages/ui/src/styledSystem/createEmotionCache.ts
  • packages/ui/tsdown.config.mts
 ____________________________________________________________________
< Love the minimalism. Unfortunately the feature was also minimized. >
 --------------------------------------------------------------------
  \
   \   (\__/)
       (•ㅅ•)
       /   づ
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch

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

@pkg-pr-new

pkg-pr-new Bot commented Jul 13, 2026

Copy link
Copy Markdown

Open in StackBlitz

@clerk/astro

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

@clerk/backend

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

@clerk/chrome-extension

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

@clerk/clerk-js

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

@clerk/electron

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

@clerk/electron-passkeys

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

@clerk/eslint-plugin

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

@clerk/expo

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

@clerk/expo-passkeys

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

@clerk/express

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

@clerk/fastify

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

@clerk/hono

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

@clerk/localizations

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

@clerk/nextjs

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

@clerk/nuxt

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

@clerk/react

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

@clerk/react-router

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

@clerk/shared

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

@clerk/tanstack-react-start

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

@clerk/testing

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

@clerk/ui

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

@clerk/upgrade

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

@clerk/vue

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

commit: a28f465

@github-actions

Copy link
Copy Markdown
Contributor

API Changes Report

Generated by Break Check on 2026-07-16T13:49:34.614Z

Summary

Metric Count
Packages analyzed 19
Packages with changes 1
🔴 Breaking changes 0
🟡 Non-breaking changes 1
🟢 Additions 1

🤖 This report was reviewed by claude-sonnet-4-6.


@clerk/ui

Current version: 1.25.4
Recommended bump: MINOR → 1.26.0

Subpath ./experimental

🟢 Additions (1)

Added: ./experimental

New subpath export ./experimental (27 exported members)

Subpath ./internal

🟡 Non-breaking Changes (1)

Modified: ElementsConfig
// ... 391 unchanged lines elided ...
    profileSectionPrimaryButton: WithOptions<ProfileSectionId>;
    profileSectionButtonGroup: WithOptions<ProfileSectionId>;
    profilePage: WithOptions<ProfilePageId>;
+   profilePageContent: WithOptions;
    formattedPhoneNumber: WithOptions;
    formattedPhoneNumberFlag: WithOptions;
    formattedPhoneNumberText: WithOptions;
// ... 158 unchanged lines elided ...

Static analyzer: Breaking change in type alias ElementsConfig: Type changed: {button:import("@clerk/ui").~WithOptions<string>;input:import("@clerk/ui").~WithOptions;checkbox:import("@clerk/ui").~W…{button:import("@clerk/ui").~WithOptions<string>;input:import("@clerk/ui").~WithOptions;checkbox:import("@clerk/ui").~W…

🤖 AI review (reclassified as non-breaking) (82%): The diff shows 475 vs 476 elided lines, indicating one new property was added to ElementsConfig. ElementsConfig is used only as the key source for the Elements mapped type (output/read direction), so adding a new property to it does not break any existing consumer code — consumers only read Elements values, they do not construct ElementsConfig objects.


Report generated by Break Check

Last ran on a28f465.

@alexcarpenter

Copy link
Copy Markdown
Member Author

!snapshot

@github-actions

Copy link
Copy Markdown
Contributor

Hey @alexcarpenter - the snapshot version command generated the following package versions:

Package Version
@clerk/astro 3.4.19-snapshot.v20260716135136
@clerk/backend 3.11.7-snapshot.v20260716135136
@clerk/chrome-extension 3.1.54-snapshot.v20260716135136
@clerk/clerk-js 6.25.5-snapshot.v20260716135136
@clerk/electron 0.0.15-snapshot.v20260716135136
@clerk/electron-passkeys 0.0.4-snapshot.v20260716135136
@clerk/eslint-plugin 0.2.1-snapshot.v20260716135136
@clerk/expo 3.7.7-snapshot.v20260716135136
@clerk/expo-passkeys 1.2.6-snapshot.v20260716135136
@clerk/express 2.1.43-snapshot.v20260716135136
@clerk/fastify 3.1.53-snapshot.v20260716135136
@clerk/headless 0.0.13-snapshot.v20260716135136
@clerk/hono 0.1.53-snapshot.v20260716135136
@clerk/localizations 4.13.5-snapshot.v20260716135136
@clerk/msw 0.0.49-snapshot.v20260716135136
@clerk/nextjs 7.5.20-snapshot.v20260716135136
@clerk/nuxt 2.6.19-snapshot.v20260716135136
@clerk/react 6.12.5-snapshot.v20260716135136
@clerk/react-router 3.5.12-snapshot.v20260716135136
@clerk/shared 4.25.5-snapshot.v20260716135136
@clerk/swingset 0.0.20-snapshot.v20260716135136
@clerk/tanstack-react-start 1.4.20-snapshot.v20260716135136
@clerk/testing 2.2.10-snapshot.v20260716135136
@clerk/ui 1.26.0-snapshot.v20260716135136
@clerk/upgrade 2.0.5-snapshot.v20260716135136
@clerk/vue 2.4.17-snapshot.v20260716135136

Tip: Use the snippet copy button below to quickly install the required packages.
@clerk/astro

npm i @clerk/astro@3.4.19-snapshot.v20260716135136 --save-exact

@clerk/backend

npm i @clerk/backend@3.11.7-snapshot.v20260716135136 --save-exact

@clerk/chrome-extension

npm i @clerk/chrome-extension@3.1.54-snapshot.v20260716135136 --save-exact

@clerk/clerk-js

npm i @clerk/clerk-js@6.25.5-snapshot.v20260716135136 --save-exact

@clerk/electron

npm i @clerk/electron@0.0.15-snapshot.v20260716135136 --save-exact

@clerk/electron-passkeys

npm i @clerk/electron-passkeys@0.0.4-snapshot.v20260716135136 --save-exact

@clerk/eslint-plugin

npm i @clerk/eslint-plugin@0.2.1-snapshot.v20260716135136 --save-exact

@clerk/expo

npm i @clerk/expo@3.7.7-snapshot.v20260716135136 --save-exact

@clerk/expo-passkeys

npm i @clerk/expo-passkeys@1.2.6-snapshot.v20260716135136 --save-exact

@clerk/express

npm i @clerk/express@2.1.43-snapshot.v20260716135136 --save-exact

@clerk/fastify

npm i @clerk/fastify@3.1.53-snapshot.v20260716135136 --save-exact

@clerk/headless

npm i @clerk/headless@0.0.13-snapshot.v20260716135136 --save-exact

@clerk/hono

npm i @clerk/hono@0.1.53-snapshot.v20260716135136 --save-exact

@clerk/localizations

npm i @clerk/localizations@4.13.5-snapshot.v20260716135136 --save-exact

@clerk/msw

npm i @clerk/msw@0.0.49-snapshot.v20260716135136 --save-exact

@clerk/nextjs

npm i @clerk/nextjs@7.5.20-snapshot.v20260716135136 --save-exact

@clerk/nuxt

npm i @clerk/nuxt@2.6.19-snapshot.v20260716135136 --save-exact

@clerk/react

npm i @clerk/react@6.12.5-snapshot.v20260716135136 --save-exact

@clerk/react-router

npm i @clerk/react-router@3.5.12-snapshot.v20260716135136 --save-exact

@clerk/shared

npm i @clerk/shared@4.25.5-snapshot.v20260716135136 --save-exact

@clerk/swingset

npm i @clerk/swingset@0.0.20-snapshot.v20260716135136 --save-exact

@clerk/tanstack-react-start

npm i @clerk/tanstack-react-start@1.4.20-snapshot.v20260716135136 --save-exact

@clerk/testing

npm i @clerk/testing@2.2.10-snapshot.v20260716135136 --save-exact

@clerk/ui

npm i @clerk/ui@1.26.0-snapshot.v20260716135136 --save-exact

@clerk/upgrade

npm i @clerk/upgrade@2.0.5-snapshot.v20260716135136 --save-exact

@clerk/vue

npm i @clerk/vue@2.4.17-snapshot.v20260716135136 --save-exact

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant