Skip to content

refactor(mosaic): move @clerk/headless primitives into @clerk/mosaic - #9819

Open
alexcarpenter wants to merge 4 commits into
mainfrom
carp/mosaic-headless-move
Open

alexcarpenter wants to merge 4 commits into
mainfrom
carp/mosaic-headless-move

Conversation

@alexcarpenter

Copy link
Copy Markdown
Member

Description

@clerk/mosaic now ships as its own package, so there's no longer a reason to keep the unstyled primitives (Accordion, Dialog, Select, etc.) in a separate private @clerk/headless package — that split only existed while Mosaic lived inside clerk-js. This lifts and shifts packages/headless/src/primitives/** into packages/mosaic/src/primitives/** as internal building blocks, consumed via relative imports. Primitives were never exported externally, so there are no public API changes.

One behavioral fix was needed, not just a file move: primitives originally ran on happy-dom with a minimal test setup; folded into Mosaic's jsdom + shared clerk-js test setup, they picked up a requestAnimationFrame mock (built for clerk-js's auto-animate usage) that changed focus-on-open timing in floating-ui-driven components and broke two Select tests. Fixed by giving primitives their own vitest project that keeps the original happy-dom environment and setup, so their test conditions are unchanged from the old package.

Docs, skills, and the Swingset stories/docs referencing @clerk/headless are updated to reflect the new location.

Checklist

  • pnpm test runs as expected.
  • pnpm build runs as expected.
  • (If applicable) JSDoc comments have been added or updated for any package exports
  • (If applicable) Documentation has been updated

Type of change

  • 📖 Refactoring / dependency upgrade / documentation

The private @clerk/headless package is merged into @clerk/mosaic as an
internal primitives/ module now that Mosaic ships as its own package;
splitting them was only ever needed while Mosaic lived inside clerk-js.
No public API changes — primitives were never exported externally.

Primitive tests keep their original happy-dom environment and setup
(no clerk-js rAF mock) via a dedicated vitest project, since folding
them into mosaic's jsdom project changed focus-timing behavior in
floating-ui-driven components.
@changeset-bot

changeset-bot Bot commented Sep 18, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 1a00a66

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

This PR includes changesets to release 2 packages
Name Type
@clerk/mosaic Patch
@clerk/swingset 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

@vercel

vercel Bot commented Sep 18, 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 Sep 18, 2026 12:48pm UTC
swingset Ready Ready Preview Sep 18, 2026 12:48pm UTC

Request Review

@coderabbitai

coderabbitai Bot commented Sep 18, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Too many files!

This PR contains 312 files, which is 12 over the limit of 300.

To get a review, reduce the PR to 300 files or fewer by splitting it into smaller PRs or changing its base branch.

Usage-priced reviews support at most 300 files.

⚙️ Run configuration

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

Review profile: ASSERTIVE

Plan: Team

Run ID: 69806a9a-ccb0-4622-8ff2-995916ea3371

📥 Commits

Reviewing files that changed from the base of the PR and between 1b73117 and 1a00a66.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (312)
  • .changeset/mosaic-headless-primitives-move.md
  • .changeset/mosaic-jsx-a11y-test-lint.md
  • .claude/skills/clerk-monorepo/SKILL.md
  • .claude/skills/clerk-monorepo/references/changesets.md
  • .claude/skills/clerk-monorepo/references/package-map.md
  • .claude/skills/mosaic/SKILL.md
  • .claude/skills/mosaic/references/headless.md
  • .claude/skills/mosaic/references/motion.md
  • eslint.config.mjs
  • packages/headless/CHANGELOG.md
  • packages/headless/package.json
  • packages/headless/tsconfig.json
  • packages/headless/vite.config.ts
  • packages/headless/vitest.config.ts
  • packages/headless/vitest.setup.ts
  • packages/mosaic/package.json
  • packages/mosaic/scripts/check-bundle.mjs
  • packages/mosaic/src/components/avatar/avatar.tsx
  • packages/mosaic/src/components/badge/badge.tsx
  • packages/mosaic/src/components/banner/banner.tsx
  • packages/mosaic/src/components/branding/branding.tsx
  • packages/mosaic/src/components/button/button.tsx
  • packages/mosaic/src/components/card/card.tsx
  • packages/mosaic/src/components/combobox/combobox.tsx
  • packages/mosaic/src/components/data-list/data-list.tsx
  • packages/mosaic/src/components/dialog/dialog.tsx
  • packages/mosaic/src/components/dialog/index.ts
  • packages/mosaic/src/components/drawer/drawer.tsx
  • packages/mosaic/src/components/drawer/index.ts
  • packages/mosaic/src/components/empty-state/empty-state.tsx
  • packages/mosaic/src/components/field/field.tsx
  • packages/mosaic/src/components/flow/flow.tsx
  • packages/mosaic/src/components/flow/index.ts
  • packages/mosaic/src/components/heading/heading.tsx
  • packages/mosaic/src/components/icon/icon-frame.tsx
  • packages/mosaic/src/components/input-group/input-group.tsx
  • packages/mosaic/src/components/input/input.tsx
  • packages/mosaic/src/components/item/item.tsx
  • packages/mosaic/src/components/menu/menu.tsx
  • packages/mosaic/src/components/otp/otp.tsx
  • packages/mosaic/src/components/popover/popover.tsx
  • packages/mosaic/src/components/profile/profile.tsx
  • packages/mosaic/src/components/section/section.tsx
  • packages/mosaic/src/components/select/select.tsx
  • packages/mosaic/src/components/table/table.tsx
  • packages/mosaic/src/components/text/text.tsx
  • packages/mosaic/src/components/tooltip/tooltip.tsx
  • packages/mosaic/src/components/visually-hidden/visually-hidden.tsx
  • packages/mosaic/src/features/user-button/user-button.view.tsx
  • packages/mosaic/src/features/user-profile/user-profile-account-section/user-profile-account-section.view.tsx
  • packages/mosaic/src/features/user-profile/user-profile-account-section/user-profile-picture-row.view.tsx
  • packages/mosaic/src/primitives/README.md
  • packages/mosaic/src/primitives/__tests__/floating-tree.test.tsx
  • packages/mosaic/src/primitives/accordion/README.md
  • packages/mosaic/src/primitives/accordion/accordion-context.ts
  • packages/mosaic/src/primitives/accordion/accordion-header.tsx
  • packages/mosaic/src/primitives/accordion/accordion-item.tsx
  • packages/mosaic/src/primitives/accordion/accordion-panel.tsx
  • packages/mosaic/src/primitives/accordion/accordion-root.tsx
  • packages/mosaic/src/primitives/accordion/accordion-trigger.tsx
  • packages/mosaic/src/primitives/accordion/accordion.test.tsx
  • packages/mosaic/src/primitives/accordion/index.ts
  • packages/mosaic/src/primitives/accordion/parts.ts
  • packages/mosaic/src/primitives/autocomplete/README.md
  • packages/mosaic/src/primitives/autocomplete/autocomplete-arrow.tsx
  • packages/mosaic/src/primitives/autocomplete/autocomplete-context.ts
  • packages/mosaic/src/primitives/autocomplete/autocomplete-input.tsx
  • packages/mosaic/src/primitives/autocomplete/autocomplete-list.tsx
  • packages/mosaic/src/primitives/autocomplete/autocomplete-option.tsx
  • packages/mosaic/src/primitives/autocomplete/autocomplete-popup.tsx
  • packages/mosaic/src/primitives/autocomplete/autocomplete-portal.tsx
  • packages/mosaic/src/primitives/autocomplete/autocomplete-positioner.tsx
  • packages/mosaic/src/primitives/autocomplete/autocomplete-root.tsx
  • packages/mosaic/src/primitives/autocomplete/autocomplete.test.tsx
  • packages/mosaic/src/primitives/autocomplete/index.ts
  • packages/mosaic/src/primitives/autocomplete/parts.ts
  • packages/mosaic/src/primitives/button/README.md
  • packages/mosaic/src/primitives/button/button.test.tsx
  • packages/mosaic/src/primitives/button/button.tsx
  • packages/mosaic/src/primitives/button/index.ts
  • packages/mosaic/src/primitives/collapsible/README.md
  • packages/mosaic/src/primitives/collapsible/collapsible-context.ts
  • packages/mosaic/src/primitives/collapsible/collapsible-panel.tsx
  • packages/mosaic/src/primitives/collapsible/collapsible-root.tsx
  • packages/mosaic/src/primitives/collapsible/collapsible-trigger.tsx
  • packages/mosaic/src/primitives/collapsible/collapsible.test.tsx
  • packages/mosaic/src/primitives/collapsible/index.ts
  • packages/mosaic/src/primitives/collapsible/parts.ts
  • packages/mosaic/src/primitives/combobox/README.md
  • packages/mosaic/src/primitives/combobox/combobox-arrow.tsx
  • packages/mosaic/src/primitives/combobox/combobox-collection.tsx
  • packages/mosaic/src/primitives/combobox/combobox-context.ts
  • packages/mosaic/src/primitives/combobox/combobox-input.tsx
  • packages/mosaic/src/primitives/combobox/combobox-list.tsx
  • packages/mosaic/src/primitives/combobox/combobox-option-context.ts
  • packages/mosaic/src/primitives/combobox/combobox-option-indicator.tsx
  • packages/mosaic/src/primitives/combobox/combobox-option.tsx
  • packages/mosaic/src/primitives/combobox/combobox-popup.tsx
  • packages/mosaic/src/primitives/combobox/combobox-portal.tsx
  • packages/mosaic/src/primitives/combobox/combobox-positioner.tsx
  • packages/mosaic/src/primitives/combobox/combobox-root.tsx
  • packages/mosaic/src/primitives/combobox/combobox-trigger.tsx
  • packages/mosaic/src/primitives/combobox/combobox.test.tsx
  • packages/mosaic/src/primitives/combobox/index.ts
  • packages/mosaic/src/primitives/combobox/parts.ts
  • packages/mosaic/src/primitives/dialog/README.md
  • packages/mosaic/src/primitives/dialog/dialog-backdrop.tsx
  • packages/mosaic/src/primitives/dialog/dialog-close.tsx
  • packages/mosaic/src/primitives/dialog/dialog-context.ts
  • packages/mosaic/src/primitives/dialog/dialog-description.tsx
  • packages/mosaic/src/primitives/dialog/dialog-handle.ts
  • packages/mosaic/src/primitives/dialog/dialog-nesting.ts
  • packages/mosaic/src/primitives/dialog/dialog-popup.tsx
  • packages/mosaic/src/primitives/dialog/dialog-portal.tsx
  • packages/mosaic/src/primitives/dialog/dialog-root.tsx
  • packages/mosaic/src/primitives/dialog/dialog-title.tsx
  • packages/mosaic/src/primitives/dialog/dialog-trigger.tsx
  • packages/mosaic/src/primitives/dialog/dialog-viewport.tsx
  • packages/mosaic/src/primitives/dialog/dialog.test.tsx
  • packages/mosaic/src/primitives/dialog/index.ts
  • packages/mosaic/src/primitives/dialog/parts.ts
  • packages/mosaic/src/primitives/drawer/README.md
  • packages/mosaic/src/primitives/drawer/constants.ts
  • packages/mosaic/src/primitives/drawer/css-vars.ts
  • packages/mosaic/src/primitives/drawer/drawer-backdrop.tsx
  • packages/mosaic/src/primitives/drawer/drawer-close.tsx
  • packages/mosaic/src/primitives/drawer/drawer-context.ts
  • packages/mosaic/src/primitives/drawer/drawer-description.tsx
  • packages/mosaic/src/primitives/drawer/drawer-handle-grip.tsx
  • packages/mosaic/src/primitives/drawer/drawer-handle.ts
  • packages/mosaic/src/primitives/drawer/drawer-popup.tsx
  • packages/mosaic/src/primitives/drawer/drawer-portal.tsx
  • packages/mosaic/src/primitives/drawer/drawer-root.tsx
  • packages/mosaic/src/primitives/drawer/drawer-title.tsx
  • packages/mosaic/src/primitives/drawer/drawer-trigger.tsx
  • packages/mosaic/src/primitives/drawer/drawer-viewport.tsx
  • packages/mosaic/src/primitives/drawer/drawer.ssr.test.tsx
  • packages/mosaic/src/primitives/drawer/drawer.test.tsx
  • packages/mosaic/src/primitives/drawer/helpers.ts
  • packages/mosaic/src/primitives/drawer/index.ts
  • packages/mosaic/src/primitives/drawer/parts.ts
  • packages/mosaic/src/primitives/drawer/use-drawer-drag.ts
  • packages/mosaic/src/primitives/drawer/use-reposition-inputs.ts
  • packages/mosaic/src/primitives/drawer/use-snap-points.ts
  • packages/mosaic/src/primitives/file-upload/README.md
  • packages/mosaic/src/primitives/file-upload/accept.ts
  • packages/mosaic/src/primitives/file-upload/file-upload-context.ts
  • packages/mosaic/src/primitives/file-upload/file-upload-dropzone.tsx
  • packages/mosaic/src/primitives/file-upload/file-upload-item-delete.tsx
  • packages/mosaic/src/primitives/file-upload/file-upload-item-preview.tsx
  • packages/mosaic/src/primitives/file-upload/file-upload-item.tsx
  • packages/mosaic/src/primitives/file-upload/file-upload-root.tsx
  • packages/mosaic/src/primitives/file-upload/file-upload-trigger.tsx
  • packages/mosaic/src/primitives/file-upload/file-upload.test.tsx
  • packages/mosaic/src/primitives/file-upload/index.ts
  • packages/mosaic/src/primitives/file-upload/parts.ts
  • packages/mosaic/src/primitives/flow/README.md
  • packages/mosaic/src/primitives/flow/flow-context.ts
  • packages/mosaic/src/primitives/flow/flow-root.tsx
  • packages/mosaic/src/primitives/flow/flow-step-context.ts
  • packages/mosaic/src/primitives/flow/flow-step.tsx
  • packages/mosaic/src/primitives/flow/flow.test.tsx
  • packages/mosaic/src/primitives/flow/index.ts
  • packages/mosaic/src/primitives/flow/parts.ts
  • packages/mosaic/src/primitives/hooks/index.ts
  • packages/mosaic/src/primitives/hooks/use-animations-finished.test.ts
  • packages/mosaic/src/primitives/hooks/use-animations-finished.ts
  • packages/mosaic/src/primitives/hooks/use-controllable-state.test.ts
  • packages/mosaic/src/primitives/hooks/use-controllable-state.ts
  • packages/mosaic/src/primitives/hooks/use-data-table.test.ts
  • packages/mosaic/src/primitives/hooks/use-data-table.ts
  • packages/mosaic/src/primitives/hooks/use-focus-target.ts
  • packages/mosaic/src/primitives/hooks/use-return-focus.test.ts
  • packages/mosaic/src/primitives/hooks/use-return-focus.ts
  • packages/mosaic/src/primitives/hooks/use-transition-status.test.ts
  • packages/mosaic/src/primitives/hooks/use-transition-status.ts
  • packages/mosaic/src/primitives/hooks/use-transition.test.ts
  • packages/mosaic/src/primitives/hooks/use-transition.ts
  • packages/mosaic/src/primitives/menu/README.md
  • packages/mosaic/src/primitives/menu/index.ts
  • packages/mosaic/src/primitives/menu/menu-arrow.tsx
  • packages/mosaic/src/primitives/menu/menu-context.ts
  • packages/mosaic/src/primitives/menu/menu-item.tsx
  • packages/mosaic/src/primitives/menu/menu-popup.tsx
  • packages/mosaic/src/primitives/menu/menu-portal.tsx
  • packages/mosaic/src/primitives/menu/menu-positioner.tsx
  • packages/mosaic/src/primitives/menu/menu-root.tsx
  • packages/mosaic/src/primitives/menu/menu-separator.tsx
  • packages/mosaic/src/primitives/menu/menu-trigger.tsx
  • packages/mosaic/src/primitives/menu/menu.test.tsx
  • packages/mosaic/src/primitives/menu/parts.ts
  • packages/mosaic/src/primitives/otp/README.md
  • packages/mosaic/src/primitives/otp/index.ts
  • packages/mosaic/src/primitives/otp/otp-context.ts
  • packages/mosaic/src/primitives/otp/otp-input.tsx
  • packages/mosaic/src/primitives/otp/otp-root.tsx
  • packages/mosaic/src/primitives/otp/otp-utils.ts
  • packages/mosaic/src/primitives/otp/otp.test.tsx
  • packages/mosaic/src/primitives/otp/parts.ts
  • packages/mosaic/src/primitives/popover/README.md
  • packages/mosaic/src/primitives/popover/index.ts
  • packages/mosaic/src/primitives/popover/parts.ts
  • packages/mosaic/src/primitives/popover/popover-arrow.tsx
  • packages/mosaic/src/primitives/popover/popover-close.tsx
  • packages/mosaic/src/primitives/popover/popover-context.ts
  • packages/mosaic/src/primitives/popover/popover-description.tsx
  • packages/mosaic/src/primitives/popover/popover-popup.tsx
  • packages/mosaic/src/primitives/popover/popover-portal.tsx
  • packages/mosaic/src/primitives/popover/popover-positioner.tsx
  • packages/mosaic/src/primitives/popover/popover-root.tsx
  • packages/mosaic/src/primitives/popover/popover-title.tsx
  • packages/mosaic/src/primitives/popover/popover-trigger.tsx
  • packages/mosaic/src/primitives/popover/popover.test.tsx
  • packages/mosaic/src/primitives/select/README.md
  • packages/mosaic/src/primitives/select/align-selected-item.test.ts
  • packages/mosaic/src/primitives/select/align-selected-item.ts
  • packages/mosaic/src/primitives/select/index.ts
  • packages/mosaic/src/primitives/select/parts.ts
  • packages/mosaic/src/primitives/select/select-arrow.tsx
  • packages/mosaic/src/primitives/select/select-context.ts
  • packages/mosaic/src/primitives/select/select-option.tsx
  • packages/mosaic/src/primitives/select/select-popup.tsx
  • packages/mosaic/src/primitives/select/select-portal.tsx
  • packages/mosaic/src/primitives/select/select-positioner.tsx
  • packages/mosaic/src/primitives/select/select-root.tsx
  • packages/mosaic/src/primitives/select/select-trigger.tsx
  • packages/mosaic/src/primitives/select/select-value.tsx
  • packages/mosaic/src/primitives/select/select.test.tsx
  • packages/mosaic/src/primitives/tabs/README.md
  • packages/mosaic/src/primitives/tabs/index.ts
  • packages/mosaic/src/primitives/tabs/parts.ts
  • packages/mosaic/src/primitives/tabs/tabs-context.ts
  • packages/mosaic/src/primitives/tabs/tabs-indicator.tsx
  • packages/mosaic/src/primitives/tabs/tabs-list.tsx
  • packages/mosaic/src/primitives/tabs/tabs-panel.tsx
  • packages/mosaic/src/primitives/tabs/tabs-root.tsx
  • packages/mosaic/src/primitives/tabs/tabs-tab.tsx
  • packages/mosaic/src/primitives/tabs/tabs-trigger.tsx
  • packages/mosaic/src/primitives/tabs/tabs.test.tsx
  • packages/mosaic/src/primitives/test-utils/axe.ts
  • packages/mosaic/src/primitives/test-utils/jest-dom.d.ts
  • packages/mosaic/src/primitives/test-utils/vitest-axe.d.ts
  • packages/mosaic/src/primitives/test-utils/vitest.setup.ts
  • packages/mosaic/src/primitives/tooltip/README.md
  • packages/mosaic/src/primitives/tooltip/index.ts
  • packages/mosaic/src/primitives/tooltip/parts.ts
  • packages/mosaic/src/primitives/tooltip/tooltip-arrow.tsx
  • packages/mosaic/src/primitives/tooltip/tooltip-context.ts
  • packages/mosaic/src/primitives/tooltip/tooltip-group.tsx
  • packages/mosaic/src/primitives/tooltip/tooltip-popup.tsx
  • packages/mosaic/src/primitives/tooltip/tooltip-portal.tsx
  • packages/mosaic/src/primitives/tooltip/tooltip-positioner.tsx
  • packages/mosaic/src/primitives/tooltip/tooltip-root.tsx
  • packages/mosaic/src/primitives/tooltip/tooltip-trigger.tsx
  • packages/mosaic/src/primitives/tooltip/tooltip.test.tsx
  • packages/mosaic/src/primitives/utils/css-vars.test.ts
  • packages/mosaic/src/primitives/utils/css-vars.ts
  • packages/mosaic/src/primitives/utils/freeze.test.tsx
  • packages/mosaic/src/primitives/utils/freeze.tsx
  • packages/mosaic/src/primitives/utils/index.ts
  • packages/mosaic/src/primitives/utils/interaction-modality.test.ts
  • packages/mosaic/src/primitives/utils/interaction-modality.ts
  • packages/mosaic/src/primitives/utils/interaction-origin.test.ts
  • packages/mosaic/src/primitives/utils/interaction-origin.ts
  • packages/mosaic/src/primitives/utils/reset-layout-styles.ts
  • packages/mosaic/src/primitives/utils/side-offset.test.ts
  • packages/mosaic/src/primitives/utils/side-offset.ts
  • packages/mosaic/src/primitives/utils/use-render.test-d.ts
  • packages/mosaic/src/primitives/utils/use-render.test.tsx
  • packages/mosaic/src/primitives/utils/use-render.tsx
  • packages/mosaic/src/props.ts
  • packages/mosaic/tsconfig.build.json
  • packages/mosaic/tsconfig.test.json
  • packages/mosaic/tsdown.config.mts
  • packages/mosaic/turbo.json
  • packages/mosaic/vitest.config.mts
  • packages/swingset/CLAUDE.md
  • packages/swingset/next.config.mjs
  • packages/swingset/package.json
  • packages/swingset/src/stories/accordion.mdx
  • packages/swingset/src/stories/accordion.stories.tsx
  • packages/swingset/src/stories/autocomplete.mdx
  • packages/swingset/src/stories/autocomplete.stories.tsx
  • packages/swingset/src/stories/collapsible.mdx
  • packages/swingset/src/stories/collapsible.stories.tsx
  • packages/swingset/src/stories/combobox.primitive.mdx
  • packages/swingset/src/stories/combobox.primitive.stories.tsx
  • packages/swingset/src/stories/dialog.component.stories.tsx
  • packages/swingset/src/stories/dialog.mdx
  • packages/swingset/src/stories/dialog.stories.tsx
  • packages/swingset/src/stories/drawer.mdx
  • packages/swingset/src/stories/drawer.stories.tsx
  • packages/swingset/src/stories/file-upload.mdx
  • packages/swingset/src/stories/file-upload.stories.tsx
  • packages/swingset/src/stories/flow.mdx
  • packages/swingset/src/stories/flow.stories.tsx
  • packages/swingset/src/stories/menu.mdx
  • packages/swingset/src/stories/menu.stories.tsx
  • packages/swingset/src/stories/otp.mdx
  • packages/swingset/src/stories/otp.stories.tsx
  • packages/swingset/src/stories/popover.mdx
  • packages/swingset/src/stories/popover.stories.tsx
  • packages/swingset/src/stories/select.mdx
  • packages/swingset/src/stories/select.stories.tsx
  • packages/swingset/src/stories/table.stories.tsx
  • packages/swingset/src/stories/tabs.mdx
  • packages/swingset/src/stories/tabs.stories.tsx
  • packages/swingset/src/stories/tooltip.mdx
  • packages/swingset/src/stories/tooltip.stories.tsx
  • packages/swingset/src/stories/use-data-table.mdx
  • packages/swingset/src/stories/use-data-table.stories.tsx
  • packages/swingset/tsconfig.json

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


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

main added DataList after the headless->mosaic primitives move landed,
so it still imported from the now-removed private package. Also
dedupes the lockfile to satisfy CI's dedupe --check.
@pkg-pr-new

pkg-pr-new Bot commented Sep 18, 2026

Copy link
Copy Markdown

Open in StackBlitz

@clerk/astro

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

@clerk/backend

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

@clerk/chrome-extension

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

@clerk/clerk-js

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

@clerk/electron

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

@clerk/electron-passkeys

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

@clerk/eslint-plugin

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

@clerk/expo

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

@clerk/expo-google-signin

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

@clerk/expo-passkeys

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

@clerk/express

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

@clerk/fastify

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

@clerk/hono

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

@clerk/localizations

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

@clerk/mosaic

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

@clerk/nextjs

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

@clerk/nuxt

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

@clerk/react

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

@clerk/react-router

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

@clerk/shared

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

@clerk/tanstack-react-start

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

@clerk/testing

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

@clerk/ui

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

@clerk/upgrade

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

@clerk/vue

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

commit: 1a00a66

…s too

The packages/mosaic override block that disables jsx-a11y/heading-has-content
and jsx-a11y/label-has-associated-control lived inside a block whose `ignores`
excludes *.test.tsx (written for the unrelated StyleX rules). That left the
jsx-a11y rules active on test files, where Mosaic's render-prop pattern
triggers them just as much as on the components themselves. Split them into
their own override with no test-file exclusion.
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.

1 participant