Skip to content

chore(deps): upgrade react-aria (v1.14.0)#5996

Merged
wingkwong merged 4 commits into
canaryfrom
chore/HHT-391
Dec 18, 2025
Merged

chore(deps): upgrade react-aria (v1.14.0)#5996
wingkwong merged 4 commits into
canaryfrom
chore/HHT-391

Conversation

@wingkwong
Copy link
Copy Markdown
Member

@wingkwong wingkwong commented Dec 17, 2025

Closes #5653

📝 Description

https://react-aria.adobe.com/releases/v1-14-0

⛳️ Current behavior (updates)

🚀 New behavior

💣 Is this a breaking change (Yes/No):

📝 Additional Information

Summary by CodeRabbit

  • Refactor

    • Reorganized exports with a new client-focused entry point and adjusted public export surface; dropdown action handling updated (new onAction prop; per-item onPress removed).
  • Chores

    • Bumped many dependencies to newer patch/minor releases for stability and compatibility.
  • Documentation

    • Updated installation instructions and examples to reference latest date and i18n package versions.

✏️ Tip: You can customize this high-level summary in your review settings.

@notion-workspace
Copy link
Copy Markdown

@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented Dec 17, 2025

🦋 Changeset detected

Latest commit: 08ad2c3

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

This PR includes changesets to release 51 packages
Name Type
@heroui/use-aria-accordion-item Patch
@heroui/use-aria-modal-overlay Patch
@heroui/use-aria-multiselect Patch
@heroui/use-aria-accordion Patch
@heroui/autocomplete Patch
@heroui/number-input Patch
@heroui/breadcrumbs Patch
@heroui/date-picker Patch
@heroui/use-aria-overlay Patch
@heroui/date-input Patch
@heroui/pagination Patch
@heroui/use-aria-button Patch
@heroui/accordion Patch
@heroui/input-otp Patch
@heroui/use-disclosure Patch
@heroui/use-pagination Patch
@heroui/aria-utils Patch
@heroui/calendar Patch
@heroui/checkbox Patch
@heroui/dropdown Patch
@heroui/progress Patch
@heroui/use-aria-link Patch
@heroui/use-draggable Patch
@heroui/listbox Patch
@heroui/popover Patch
@heroui/snippet Patch
@heroui/tooltip Patch
@heroui/avatar Patch
@heroui/button Patch
@heroui/navbar Patch
@heroui/select Patch
@heroui/slider Patch
@heroui/switch Patch
@heroui/alert Patch
@heroui/input Patch
@heroui/modal Patch
@heroui/radio Patch
@heroui/table Patch
@heroui/toast Patch
@heroui/card Patch
@heroui/chip Patch
@heroui/link Patch
@heroui/menu Patch
@heroui/tabs Patch
@heroui/user Patch
@heroui/system Patch
@heroui/react Patch
@heroui/drawer Patch
@heroui/form Patch
@heroui/spinner Patch
@heroui/framer-utils 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
Copy link
Copy Markdown

vercel Bot commented Dec 17, 2025

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

Project Deployment Review Updated (UTC)
heroui Ready Ready Preview, Comment Dec 18, 2025 11:09am
heroui-sb Ready Ready Preview, Comment Dec 18, 2025 11:09am

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Dec 17, 2025

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

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

Walkthrough

Monorepo-wide patch/minor dependency version bumps, documentation updates, a new changeset, and a rework of the core React package exports by adding a client entry (client.ts) and narrowing server-side re-exports in packages/core/react/src/index.ts.

Changes

Cohort / File(s) Summary
Changeset metadata
.changeset/smart-swans-impress.md
New changeset listing many @heroui package patch/minor bumps and an upgrade note for react-aria v1.14.0
Docs content updates
apps/docs/content/docs/components/date-input.mdx, apps/docs/content/docs/components/date-picker.mdx, apps/docs/content/docs/components/date-range-picker.mdx
Updated install/PackageManager version strings for @internationalized/date (3.10.0 → 3.10.1) and @react-aria/i18n (3.12.13 → 3.12.14)
Docs app + parser
apps/docs/package.json, apps/docs/components/.../parse-dependencies.ts
Bumped docs app dependencies and adjusted parser fixedVersions for a few packages
Component package manifests
packages/components/.../package.json
Coordinated patch/minor upgrades across many component package.json files for @react-aria, @react-stately, @internationalized and related deps (multiple files updated)
Core packages manifests
packages/core/react/package.json, packages/core/system/package.json
System-level dependency bumps (e.g., @react-aria/visually-hidden, @react-aria/i18n, @react-aria/overlays, @react-aria/utils)
Core React exports (server → client split)
packages/core/react/src/index.ts
Removed many top-level re-exports and added export * from "./client"; server export surface narrowed to a small set of modules
New client entry
packages/core/react/src/client.ts
New client-oriented aggregator re-exporting a wide range of @heroui packages and named exports (VisuallyHidden, ResizablePanel)
Hook package manifests
packages/hooks/.../package.json
Patch/minor dependency bumps for various @react-aria / @react-stately packages across hooks
Utility packages
packages/utilities/aria-utils/package.json
Bumped @react-aria/utils from 3.31.0 → 3.32.0
Dropdown tests
packages/components/dropdown/__tests__/dropdown.test.tsx
Test refactor: Dropdown actions now asserted via onAction callback; DropdownItem.onPress removed and DropdownMenu.onAction added to API

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

  • Focus review on:
    • packages/core/react/src/index.ts — verify removed re-exports and client split won't break consumers.
    • packages/core/react/src/client.ts — confirm re-export list and named exports resolve correctly.
    • packages/components/.../package.json and packages/hooks/.../package.json — scan for inconsistent version mixes.
    • packages/components/dropdown/... — verify API change (added onAction, removed DropdownItem.onPress) and update consumer usages/tests.

Possibly related PRs

Suggested reviewers

  • jrgarciadev
  • winchesHe

Pre-merge checks and finishing touches

❌ Failed checks (2 warnings, 1 inconclusive)
Check name Status Explanation Resolution
Description check ⚠️ Warning The PR description is largely incomplete. While it closes issue #5653 and references the release notes URL, most required template sections (current behavior, new behavior, breaking change details) are unfilled. Complete the PR description by filling out: current behavior context, new behavior/improvements from v1.14.0, whether this is a breaking change, and any additional information relevant to the upgrade.
Out of Scope Changes check ⚠️ Warning Multiple out-of-scope changes detected: packages/core/react/src/index.ts removes numerous component exports and restructures public API into client/server components; packages/components/dropdown/tests/dropdown.test.tsx modifies component behavior (onAction callback); a new client.ts file is added. These changes are unrelated to a simple dependency upgrade. Separate the dependency upgrade from architectural changes. The core upgrade should only bump versions in package.json files and documentation; move client/server component restructuring and dropdown behavior changes to separate PRs.
Linked Issues check ❓ Inconclusive The linked issue #5653 describes a Textarea state bug that should be resolved by the react-aria v1.14.0 upgrade, but the PR lacks documentation confirming the fix addresses the reported issue. Verify that react-aria v1.14.0 resolves the Textarea state preservation bug reported in #5653 and document this verification in the PR description.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The PR title accurately describes the main change: upgrading react-aria to v1.14.0, which is the primary purpose of this dependency update PR.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@pkg-pr-new
Copy link
Copy Markdown

pkg-pr-new Bot commented Dec 17, 2025

Open in StackBlitz

@heroui/accordion

npm i https://pkg.pr.new/@heroui/accordion@5996

@heroui/alert

npm i https://pkg.pr.new/@heroui/alert@5996

@heroui/autocomplete

npm i https://pkg.pr.new/@heroui/autocomplete@5996

@heroui/avatar

npm i https://pkg.pr.new/@heroui/avatar@5996

@heroui/badge

npm i https://pkg.pr.new/@heroui/badge@5996

@heroui/breadcrumbs

npm i https://pkg.pr.new/@heroui/breadcrumbs@5996

@heroui/button

npm i https://pkg.pr.new/@heroui/button@5996

@heroui/calendar

npm i https://pkg.pr.new/@heroui/calendar@5996

@heroui/card

npm i https://pkg.pr.new/@heroui/card@5996

@heroui/checkbox

npm i https://pkg.pr.new/@heroui/checkbox@5996

@heroui/chip

npm i https://pkg.pr.new/@heroui/chip@5996

@heroui/code

npm i https://pkg.pr.new/@heroui/code@5996

@heroui/date-input

npm i https://pkg.pr.new/@heroui/date-input@5996

@heroui/date-picker

npm i https://pkg.pr.new/@heroui/date-picker@5996

@heroui/divider

npm i https://pkg.pr.new/@heroui/divider@5996

@heroui/drawer

npm i https://pkg.pr.new/@heroui/drawer@5996

@heroui/dropdown

npm i https://pkg.pr.new/@heroui/dropdown@5996

@heroui/form

npm i https://pkg.pr.new/@heroui/form@5996

@heroui/image

npm i https://pkg.pr.new/@heroui/image@5996

@heroui/input

npm i https://pkg.pr.new/@heroui/input@5996

@heroui/input-otp

npm i https://pkg.pr.new/@heroui/input-otp@5996

@heroui/kbd

npm i https://pkg.pr.new/@heroui/kbd@5996

@heroui/link

npm i https://pkg.pr.new/@heroui/link@5996

@heroui/listbox

npm i https://pkg.pr.new/@heroui/listbox@5996

@heroui/menu

npm i https://pkg.pr.new/@heroui/menu@5996

@heroui/modal

npm i https://pkg.pr.new/@heroui/modal@5996

@heroui/navbar

npm i https://pkg.pr.new/@heroui/navbar@5996

@heroui/number-input

npm i https://pkg.pr.new/@heroui/number-input@5996

@heroui/pagination

npm i https://pkg.pr.new/@heroui/pagination@5996

@heroui/popover

npm i https://pkg.pr.new/@heroui/popover@5996

@heroui/progress

npm i https://pkg.pr.new/@heroui/progress@5996

@heroui/radio

npm i https://pkg.pr.new/@heroui/radio@5996

@heroui/ripple

npm i https://pkg.pr.new/@heroui/ripple@5996

@heroui/scroll-shadow

npm i https://pkg.pr.new/@heroui/scroll-shadow@5996

@heroui/select

npm i https://pkg.pr.new/@heroui/select@5996

@heroui/skeleton

npm i https://pkg.pr.new/@heroui/skeleton@5996

@heroui/slider

npm i https://pkg.pr.new/@heroui/slider@5996

@heroui/snippet

npm i https://pkg.pr.new/@heroui/snippet@5996

@heroui/spacer

npm i https://pkg.pr.new/@heroui/spacer@5996

@heroui/spinner

npm i https://pkg.pr.new/@heroui/spinner@5996

@heroui/switch

npm i https://pkg.pr.new/@heroui/switch@5996

@heroui/table

npm i https://pkg.pr.new/@heroui/table@5996

@heroui/tabs

npm i https://pkg.pr.new/@heroui/tabs@5996

@heroui/toast

npm i https://pkg.pr.new/@heroui/toast@5996

@heroui/tooltip

npm i https://pkg.pr.new/@heroui/tooltip@5996

@heroui/user

npm i https://pkg.pr.new/@heroui/user@5996

@heroui/react

npm i https://pkg.pr.new/@heroui/react@5996

@heroui/system

npm i https://pkg.pr.new/@heroui/system@5996

@heroui/system-rsc

npm i https://pkg.pr.new/@heroui/system-rsc@5996

@heroui/theme

npm i https://pkg.pr.new/@heroui/theme@5996

@heroui/use-aria-accordion

npm i https://pkg.pr.new/@heroui/use-aria-accordion@5996

@heroui/use-aria-accordion-item

npm i https://pkg.pr.new/@heroui/use-aria-accordion-item@5996

@heroui/use-aria-button

npm i https://pkg.pr.new/@heroui/use-aria-button@5996

@heroui/use-aria-link

npm i https://pkg.pr.new/@heroui/use-aria-link@5996

@heroui/use-aria-modal-overlay

npm i https://pkg.pr.new/@heroui/use-aria-modal-overlay@5996

@heroui/use-aria-multiselect

npm i https://pkg.pr.new/@heroui/use-aria-multiselect@5996

@heroui/use-aria-overlay

npm i https://pkg.pr.new/@heroui/use-aria-overlay@5996

@heroui/use-callback-ref

npm i https://pkg.pr.new/@heroui/use-callback-ref@5996

@heroui/use-clipboard

npm i https://pkg.pr.new/@heroui/use-clipboard@5996

@heroui/use-data-scroll-overflow

npm i https://pkg.pr.new/@heroui/use-data-scroll-overflow@5996

@heroui/use-disclosure

npm i https://pkg.pr.new/@heroui/use-disclosure@5996

@heroui/use-draggable

npm i https://pkg.pr.new/@heroui/use-draggable@5996

@heroui/use-form-reset

npm i https://pkg.pr.new/@heroui/use-form-reset@5996

@heroui/use-image

npm i https://pkg.pr.new/@heroui/use-image@5996

@heroui/use-infinite-scroll

npm i https://pkg.pr.new/@heroui/use-infinite-scroll@5996

@heroui/use-intersection-observer

npm i https://pkg.pr.new/@heroui/use-intersection-observer@5996

@heroui/use-is-mobile

npm i https://pkg.pr.new/@heroui/use-is-mobile@5996

@heroui/use-is-mounted

npm i https://pkg.pr.new/@heroui/use-is-mounted@5996

@heroui/use-measure

npm i https://pkg.pr.new/@heroui/use-measure@5996

@heroui/use-pagination

npm i https://pkg.pr.new/@heroui/use-pagination@5996

@heroui/use-real-shape

npm i https://pkg.pr.new/@heroui/use-real-shape@5996

@heroui/use-ref-state

npm i https://pkg.pr.new/@heroui/use-ref-state@5996

@heroui/use-resize

npm i https://pkg.pr.new/@heroui/use-resize@5996

@heroui/use-safe-layout-effect

npm i https://pkg.pr.new/@heroui/use-safe-layout-effect@5996

@heroui/use-scroll-position

npm i https://pkg.pr.new/@heroui/use-scroll-position@5996

@heroui/use-ssr

npm i https://pkg.pr.new/@heroui/use-ssr@5996

@heroui/use-theme

npm i https://pkg.pr.new/@heroui/use-theme@5996

@heroui/use-update-effect

npm i https://pkg.pr.new/@heroui/use-update-effect@5996

@heroui/use-viewport-size

npm i https://pkg.pr.new/@heroui/use-viewport-size@5996

@heroui/aria-utils

npm i https://pkg.pr.new/@heroui/aria-utils@5996

@heroui/dom-animation

npm i https://pkg.pr.new/@heroui/dom-animation@5996

@heroui/framer-utils

npm i https://pkg.pr.new/@heroui/framer-utils@5996

@heroui/react-rsc-utils

npm i https://pkg.pr.new/@heroui/react-rsc-utils@5996

@heroui/react-utils

npm i https://pkg.pr.new/@heroui/react-utils@5996

@heroui/shared-icons

npm i https://pkg.pr.new/@heroui/shared-icons@5996

@heroui/shared-utils

npm i https://pkg.pr.new/@heroui/shared-utils@5996

@heroui/stories-utils

npm i https://pkg.pr.new/@heroui/stories-utils@5996

@heroui/test-utils

npm i https://pkg.pr.new/@heroui/test-utils@5996

commit: 08ad2c3

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 9

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between acc74d1 and ec0437e.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (54)
  • .changeset/smart-swans-impress.md (1 hunks)
  • apps/docs/components/docs/components/code-demo/parse-dependencies.ts (1 hunks)
  • apps/docs/content/docs/components/date-input.mdx (6 hunks)
  • apps/docs/content/docs/components/date-picker.mdx (6 hunks)
  • apps/docs/content/docs/components/date-range-picker.mdx (7 hunks)
  • apps/docs/package.json (2 hunks)
  • packages/components/accordion/package.json (1 hunks)
  • packages/components/alert/package.json (1 hunks)
  • packages/components/autocomplete/package.json (2 hunks)
  • packages/components/avatar/package.json (1 hunks)
  • packages/components/breadcrumbs/package.json (1 hunks)
  • packages/components/button/package.json (1 hunks)
  • packages/components/calendar/package.json (1 hunks)
  • packages/components/card/package.json (1 hunks)
  • packages/components/checkbox/package.json (1 hunks)
  • packages/components/chip/package.json (1 hunks)
  • packages/components/date-input/package.json (1 hunks)
  • packages/components/date-picker/package.json (2 hunks)
  • packages/components/dropdown/package.json (1 hunks)
  • packages/components/input-otp/package.json (1 hunks)
  • packages/components/input/package.json (1 hunks)
  • packages/components/link/package.json (1 hunks)
  • packages/components/listbox/package.json (1 hunks)
  • packages/components/menu/package.json (1 hunks)
  • packages/components/modal/package.json (1 hunks)
  • packages/components/navbar/package.json (1 hunks)
  • packages/components/number-input/package.json (1 hunks)
  • packages/components/pagination/package.json (1 hunks)
  • packages/components/popover/package.json (1 hunks)
  • packages/components/progress/package.json (1 hunks)
  • packages/components/radio/package.json (1 hunks)
  • packages/components/select/package.json (1 hunks)
  • packages/components/slider/package.json (1 hunks)
  • packages/components/snippet/package.json (1 hunks)
  • packages/components/switch/package.json (1 hunks)
  • packages/components/table/package.json (2 hunks)
  • packages/components/tabs/package.json (1 hunks)
  • packages/components/toast/package.json (1 hunks)
  • packages/components/tooltip/package.json (1 hunks)
  • packages/components/user/package.json (1 hunks)
  • packages/core/react/package.json (1 hunks)
  • packages/core/react/src/index.ts (0 hunks)
  • packages/core/system/package.json (1 hunks)
  • packages/hooks/use-aria-accordion-item/package.json (1 hunks)
  • packages/hooks/use-aria-accordion/package.json (1 hunks)
  • packages/hooks/use-aria-button/package.json (1 hunks)
  • packages/hooks/use-aria-link/package.json (1 hunks)
  • packages/hooks/use-aria-modal-overlay/package.json (1 hunks)
  • packages/hooks/use-aria-multiselect/package.json (1 hunks)
  • packages/hooks/use-aria-overlay/package.json (1 hunks)
  • packages/hooks/use-disclosure/package.json (1 hunks)
  • packages/hooks/use-draggable/package.json (1 hunks)
  • packages/hooks/use-pagination/package.json (1 hunks)
  • packages/utilities/aria-utils/package.json (1 hunks)
💤 Files with no reviewable changes (1)
  • packages/core/react/src/index.ts
🧰 Additional context used
🧠 Learnings (4)
📚 Learning: 2025-10-25T17:11:59.338Z
Learnt from: adbjo
Repo: heroui-inc/heroui PR: 5846
File: packages/components/tabs/src/tabs.tsx:155-155
Timestamp: 2025-10-25T17:11:59.338Z
Learning: In packages/components/tabs/src/tabs.tsx, the renderTabs useMemo dependency array intentionally includes both `domRef` and `cursorRef` to maintain consistency in how ref objects are handled in dependency arrays, even though ref objects have stable identity across renders.

Applied to files:

  • packages/hooks/use-disclosure/package.json
  • packages/components/tabs/package.json
  • packages/components/checkbox/package.json
📚 Learning: 2025-10-27T21:48:35.308Z
Learnt from: adbjo
Repo: heroui-inc/heroui PR: 5846
File: packages/components/tabs/src/tabs.tsx:76-101
Timestamp: 2025-10-27T21:48:35.308Z
Learning: In packages/components/tabs/src/tabs.tsx, the updateCursorPosition useCallback dependency array intentionally includes `cursorRef.current` to handle the case where the cursor span element is unmounted and remounted (e.g., when `disableAnimation` or `disableCursorAnimation` toggles). This ensures the callback is recreated when the ref points to a new element, triggering a dependency chain that re-establishes the ResizeObserver and initializes the new cursor element with the data-initialized attribute.
</learning]

Applied to files:

  • packages/hooks/use-disclosure/package.json
  • packages/components/tabs/package.json
📚 Learning: 2025-10-27T21:52:33.324Z
Learnt from: adbjo
Repo: heroui-inc/heroui PR: 5846
File: packages/components/tabs/src/tabs.tsx:115-125
Timestamp: 2025-10-27T21:52:33.324Z
Learning: In packages/components/tabs/src/tabs.tsx, the useEffect dependency array at line 125 intentionally uses `domRef.current` rather than `domRef` because domRef.current can change between renders (when React sets it during the commit phase), whereas domRef itself has stable identity and won't change.

Applied to files:

  • packages/hooks/use-disclosure/package.json
  • packages/components/tabs/package.json
📚 Learning: 2025-10-25T17:08:46.283Z
Learnt from: adbjo
Repo: heroui-inc/heroui PR: 5846
File: packages/components/tabs/src/tabs.tsx:156-157
Timestamp: 2025-10-25T17:08:46.283Z
Learning: In packages/components/tabs/src/tabs.tsx, the renderTabs useMemo dependency array intentionally includes `variant` and `isVertical` to prevent potential side-effects, even though they might appear redundant based on static analysis.

Applied to files:

  • packages/components/menu/package.json
  • packages/components/number-input/package.json
  • packages/components/slider/package.json
  • packages/components/table/package.json
  • packages/components/tabs/package.json
  • packages/components/input/package.json
  • packages/components/switch/package.json
  • packages/components/listbox/package.json
  • packages/components/navbar/package.json
  • packages/components/accordion/package.json
  • packages/components/checkbox/package.json
  • packages/hooks/use-aria-button/package.json
  • packages/components/select/package.json
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
  • GitHub Check: TypeScript
  • GitHub Check: Build
  • GitHub Check: Continuous Release
🔇 Additional comments (49)
packages/components/switch/package.json (1)

46-50: LGTM! Dependency versions updated correctly.

The React ARIA and React Stately package versions have been bumped appropriately as part of the coordinated upgrade to react-aria v1.14.0. The patch and minor version increments follow semantic versioning conventions.

Please review the react-aria v1.14.0 release notes to confirm there are no breaking changes or behavioral updates that might affect the switch component's functionality.

packages/components/modal/package.json (1)

54-57: Clarify dependency versions; three appear newer than currently published on npm.

The PR includes version specifications that exceed the latest published versions on npm: @react-aria/dialog 3.5.32 (latest: 3.5.31), @react-aria/focus 3.21.3 (latest: 3.21.1), and @react-stately/overlays 3.6.21 (latest: 3.6.18). @react-aria/overlays 3.31.0 is current. Verify whether these are pre-release versions, scheduled releases coordinated with the react-aria v1.14.0 upgrade, or version pinning errors.

packages/components/toast/package.json (1)

49-50: LGTM! Dependency versions updated consistently with PR objective.

The version bumps for @react-aria/toast (patch) and @react-aria/interactions (minor) align with the PR's goal to upgrade react-aria to v1.14.0. The semantic versioning increments suggest backward compatibility.

Since these versions are beyond my knowledge cutoff, please verify there are no breaking changes or security issues:

What are the changes and breaking changes in @react-aria/toast version 3.0.9 and @react-aria/interactions version 3.26.0?
packages/components/pagination/package.json (1)

48-51: Incorrect version reference – verify package versions exist on npm.

The comment references a "react-aria v1.14.0 upgrade" but the specified packages are v3.x (e.g., @react-aria/utils@3.32.0, @react-aria/interactions@3.26.0). Additionally, some versions may not yet be published to npm. Verify the actual version numbers before merging, particularly checking if @react-aria/utils@3.32.0 is available on the npm registry.

Likely an incorrect or invalid review comment.

packages/components/avatar/package.json (1)

46-47: The specified package versions do not exist on npm.

The latest version of @react-aria/interactions on npm is 3.25.3, not 3.26.0. The latest version of @react-aria/focus is 3.21.1, not 3.21.3. These versions should not be used as they are not available on npm and cannot be installed. Verify the correct version numbers for these dependencies before merging.

Likely an incorrect or invalid review comment.

packages/components/input-otp/package.json (1)

47-52: Correct version numbers: the claimed versions do not exist in npm registries.

The versions mentioned in this review are inaccurate:

  • @react-aria/form latest is 3.1.2, not 3.1.3
  • @react-stately/utils latest is 3.10.8, not 3.11.0
  • @react-aria/focus latest is 3.21.1, not 3.21.3

Additionally, the reference to "upgrade react-aria to v1.14.0" is misleading—all these packages operate in the 3.x version range. Verify the actual version numbers in the package.json file and ensure they correspond to available npm releases before merging.

Likely an incorrect or invalid review comment.

packages/components/autocomplete/package.json (1)

68-68: DevDependency minor version update looks good.

The minor version bump for @react-stately/data (3.14.1 → 3.15.0) in devDependencies should be safe, as it's only used during development/testing.

packages/components/tooltip/package.json (1)

51-55: Unable to verify react-aria v1.14.0 release exists.

Based on public npm and GitHub sources, the latest published version of react-aria-components is 1.13.0. The referenced react-aria v1.14.0 release cannot be found in public repositories. Please verify:

  1. Whether v1.14.0 is an unreleased/upcoming version from an internal branch
  2. The exact package versions and their alignment with the actual release being deployed
  3. Any breaking changes in the actual packages being used (particularly @react-aria/tooltip and @react-stately/tooltip minor version bumps)

If this is a pre-release, provide the release notes or internal documentation for verification.

packages/components/breadcrumbs/package.json (1)

46-47: Verify the react-aria v1.14.0 release reference.

The patch-level dependency bumps to @react-aria/focus (3.21.3) and @react-aria/breadcrumbs (3.5.30) appear safe and follow normal release progression. No security advisories were found for these packages. However, confirm whether the PR's mention of "upgrading to react-aria v1.14.0" refers to the monorepo version, react-aria-components, or a specific package version—these are scoped packages within the react-spectrum monorepo and do not have a unified v1.14.0 label in official release notes.

packages/components/dropdown/package.json (1)

49-51: Correct the package version numbers.

The latest version of @react-aria/focus is 3.21.1, not 3.21.3. The latest version of @react-aria/menu is 3.19.2, not 3.19.4. The latest version of @react-stately/menu is 3.9.7, not 3.9.9. Verify the intended versions before merging—these specified versions do not exist in the npm registry.

Additionally, be aware that between version 3.20.5 and 3.21.0 of @react-aria/focus, focus behavior changed regarding visibility:hidden elements, with focus now potentially getting locked instead of skipping over hidden inputs. Since the dropdown component relies on focus management, test focus interactions thoroughly after the upgrade.

Likely an incorrect or invalid review comment.

packages/hooks/use-aria-multiselect/package.json (1)

37-46: Clarify PR objectives regarding version numbering.

The dependency updates are appropriate (patch and minor bumps only), but note that react-aria-components latest version is 1.13.0, not 1.14.0 as stated in the PR description. Confirm whether this is targeting a future unreleased version or if the version reference in the PR objectives needs adjustment.

packages/hooks/use-aria-accordion-item/package.json (1)

37-39: Packages verified: all versions exist with no known security vulnerabilities.

The three dependency updates (@react-aria/button@3.14.3, @react-aria/focus@3.21.3, @react-stately/tree@3.9.4) are confirmed to exist in the npm registry. These are legitimate patch-level updates from the React Spectrum project with no known security advisories.

packages/components/card/package.json (1)

48-49: LGTM! Note the minor version bump in @react-aria/interactions.

The dependency updates align with the React ARIA v1.14.0 upgrade. The minor version bump in @react-aria/interactions (3.25.6 → 3.26.0) suggests new features or enhancements, while @react-aria/focus receives a patch update.

packages/utilities/aria-utils/package.json (1)

42-42: LGTM!

The minor version bump to @react-aria/utils aligns with the monorepo-wide React ARIA upgrade.

packages/hooks/use-aria-button/package.json (1)

40-42: LGTM!

All three dependency updates are consistent with the React ARIA v1.14.0 upgrade applied across the monorepo.

packages/hooks/use-aria-modal-overlay/package.json (1)

38-40: LGTM!

The dependency updates to @react-aria/overlays, @react-aria/utils, and @react-stately/overlays are consistent with the coordinated React ARIA v1.14.0 upgrade.

packages/hooks/use-pagination/package.json (1)

38-38: LGTM!

The patch update to @react-aria/i18n aligns with the React ARIA v1.14.0 upgrade.

packages/components/chip/package.json (1)

46-47: LGTM!

The dependency updates match the pattern applied consistently across the monorepo for the React ARIA v1.14.0 upgrade.

packages/hooks/use-aria-link/package.json (1)

40-42: LGTM!

The dependency updates are consistent with the React ARIA v1.14.0 upgrade applied throughout the monorepo.

packages/components/user/package.json (1)

46-46: LGTM! Patch version bump is safe.

The version bump from @react-aria/focus 3.21.2 to 3.21.3 is a patch-level change and safe to merge. No code changes are required on this file. No breaking changes are expected in patch releases per semantic versioning.

packages/core/react/package.json (1)

94-94: Dependency version bump looks good.

The patch upgrade of @react-aria/visually-hidden from 3.8.28 to 3.8.29 is consistent with the overall react-aria v1.14.0 upgrade.

packages/core/system/package.json (1)

59-61: Dependency version bumps look good.

The upgrades include:

  • @react-aria/i18n: patch bump (3.12.13 → 3.12.14)
  • @react-aria/overlays: minor bump (3.30.0 → 3.31.0)
  • @react-aria/utils: minor bump (3.31.0 → 3.32.0)

The minor version bumps may include new features but should remain backward compatible per semver.

packages/hooks/use-aria-overlay/package.json (1)

37-39: Dependency version bumps look good.

The upgrades are consistent with other packages in the monorepo and align with the react-aria v1.14.0 upgrade.

packages/components/menu/package.json (1)

48-51: Dependency version bumps look good.

The upgrades include menu-specific packages (@react-aria/menu, @react-stately/tree) along with common dependencies, all aligned with the react-aria v1.14.0 upgrade.

packages/components/snippet/package.json (1)

50-50: Dependency version bump looks good.

The patch upgrade of @react-aria/focus is consistent with other packages in the monorepo.

.changeset/smart-swans-impress.md (1)

1-51: Changeset file looks good.

The changeset properly documents 47 packages receiving patch version bumps for the react-aria v1.14.0 upgrade. The format is correct for a monorepo using changesets.

packages/components/checkbox/package.json (1)

48-52: Dependency version bumps look good.

The upgrades include checkbox-specific packages along with common dependencies, all properly aligned with the react-aria v1.14.0 upgrade. The version bumps are conservative (mostly patch, one minor) and follow semantic versioning.

packages/components/link/package.json (1)

47-47: Verify the actual target version and check for known focus regressions.

Version 3.21.3 does not exist on npm; the latest available version is 3.21.1. Confirm the package.json specifies a valid version. Additionally, be aware of a known focus regression introduced in the 3.21.0 line where focus gets trapped on visibility:hidden elements.

packages/components/date-input/package.json (1)

46-50: LGTM!

Date-related dependency upgrades are consistent and appropriate for the date-input component.

packages/components/date-picker/package.json (1)

44-58: LGTM!

Date picker dependency upgrades align with the monorepo-wide react-aria v1.14.0 update. The version bumps are consistent across date-related packages.

packages/components/listbox/package.json (1)

49-52: LGTM!

Listbox dependencies updated consistently with the react-aria upgrade across the monorepo.

packages/components/input/package.json (1)

48-51: LGTM!

Input component dependencies updated appropriately with textfield and common ARIA packages.

packages/components/table/package.json (2)

47-51: LGTM!

Table component dependencies updated consistently with the monorepo-wide react-aria upgrade.


67-67: LGTM!

Dev dependency update for @react-stately/data aligns with the overall upgrade.

packages/components/slider/package.json (1)

46-51: LGTM!

Slider component dependencies comprehensively updated with both slider-specific and common ARIA packages.

packages/components/calendar/package.json (1)

51-60: LGTM!

Calendar component has the most comprehensive dependency updates in this changeset, covering date internationalization, calendar-specific ARIA packages, and common utilities. All version bumps are consistent with the monorepo-wide react-aria v1.14.0 upgrade.

packages/components/button/package.json (1)

49-50: The React ARIA dependency versions specified do not appear to exist on npm. The latest version of @react-aria/interactions is 3.25.3, and the latest version of @react-aria/focus is 3.21.1. The PR references versions 3.26.0 and 3.21.3, which are higher than currently available releases. Verify that these version numbers are correct or that they correspond to unreleased future versions before merging.

packages/components/accordion/package.json (1)

58-60: LGTM!

The dependency version updates align with the react-aria v1.14.0 upgrade. Patch and minor version bumps should maintain backward compatibility.

packages/components/radio/package.json (1)

46-50: LGTM!

All dependency updates are patch/minor version bumps and align with the monorepo-wide react-aria upgrade.

packages/components/select/package.json (1)

57-61: LGTM!

The react-aria dependency updates are consistent with the ecosystem upgrade and follow semantic versioning for backward compatibility.

packages/components/navbar/package.json (1)

50-55: LGTM!

All dependency versions are consistent with the broader monorepo upgrade and use safe semantic version bumps.

apps/docs/content/docs/components/date-picker.mdx (1)

122-124: Documentation version strings updated correctly.

All package version references have been consistently updated throughout the documentation to reflect the new dependency versions.

Also applies to: 147-149, 171-173, 195-197, 217-219, 255-257

apps/docs/components/docs/components/code-demo/parse-dependencies.ts (1)

55-56: LGTM!

The hardcoded version strings are consistent with the documentation updates and reflect the correct dependency versions for the code examples.

apps/docs/content/docs/components/date-range-picker.mdx (1)

145-147: Documentation version strings updated correctly.

All package version references are consistent throughout the file and match the versions used in other documentation files and the utility module.

Also applies to: 170-172, 194-196, 218-220, 240-242, 265-267, 285-287

apps/docs/content/docs/components/date-input.mdx (3)

107-110: LGTM! Documentation version update is consistent.

The package version update for @internationalized/date is correctly reflected across all package manager commands.


132-135: LGTM! Multiple package version updates are consistent.

Both package version updates are correctly reflected across all package manager commands and align with the dependency changes.


156-159: LGTM! All remaining documentation version updates are consistent.

All package version references throughout the documentation have been correctly updated to match the dependency changes.

Also applies to: 180-183, 203-206, 226-229

apps/docs/package.json (2)

93-94: LGTM! Type definition updates are straightforward.

The patch version bumps to @react-types/calendar and @react-types/datepicker are TypeScript type definitions that typically don't introduce breaking changes.


32-42: Verify actual package versions before updating dependencies.

The review comment references incorrect package versions. @react-aria/interactions latest version is 3.25.3, last published 22 days ago, but the comment claims version 3.26.0 exists. Confirm that all versions specified in the dependency updates are valid on npm before installing. Additionally, review the release notes for these packages to check for any behavioral changes or breaking changes that could affect the application.

Likely an incorrect or invalid review comment.

Comment thread packages/components/alert/package.json
Comment thread packages/components/autocomplete/package.json
Comment thread packages/components/number-input/package.json
Comment thread packages/components/popover/package.json
Comment thread packages/components/progress/package.json
Comment thread packages/components/tabs/package.json
Comment thread packages/hooks/use-aria-accordion/package.json
Comment thread packages/hooks/use-disclosure/package.json
Comment thread packages/hooks/use-draggable/package.json
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (1)
packages/core/react/src/client.ts (1)

3-45: Large barrel export file - consider alphabetical ordering for maintainability.

With 43 package re-exports, locating specific packages or verifying completeness becomes harder. Alphabetical ordering (after @heroui/system) would improve maintainability.

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between ec0437e and 2c20302.

📒 Files selected for processing (2)
  • packages/core/react/src/client.ts (1 hunks)
  • packages/core/react/src/index.ts (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
  • GitHub Check: Tests
  • GitHub Check: Build
  • GitHub Check: TypeScript
  • GitHub Check: Continuous Release
  • GitHub Check: Prettier
🔇 Additional comments (4)
packages/core/react/src/client.ts (2)

1-1: Correct placement of the "use client" directive.

The directive is properly positioned at the very first line, which is required for Next.js App Router client component boundaries.


47-51: Explicit named exports are appropriately isolated.

Good separation of external (@react-aria/visually-hidden) and internal (@heroui/framer-utils) named exports from the wildcard re-exports. This makes the non-standard exports clearly visible.

packages/core/react/src/index.ts (2)

3-4: Clean client/server component separation for RSC compatibility.

The re-export from ./client properly delegates all client components while keeping the main entry point clean. This pattern works well with Next.js App Router.


6-11: Server component classification is accurate and complete. The five components exported as server components (theme, code, spacer, divider, kbd) are confirmed stateless and appropriately split from client components. This intentional architecture aligns with official HeroUI documentation for React Server Components support and introduces no breaking changes for existing consumers.

@wingkwong wingkwong marked this pull request as ready for review December 18, 2025 11:48
@wingkwong wingkwong merged commit e07c969 into canary Dec 18, 2025
10 checks passed
@wingkwong wingkwong deleted the chore/HHT-391 branch December 18, 2025 11:52
@coderabbitai coderabbitai Bot mentioned this pull request Dec 20, 2025
jrgarciadev added a commit that referenced this pull request Dec 25, 2025
* fix(theme): hide password reveal button (#5990)

* fix(link): link overriding role (#5999)

* fix(link): allow overriding role

* chore(link): changeset

* chore(deps): upgrade react-aria (v1.14.0) (#5996)

* chore(deps): upgrade react-aria (v1.14.0)

* refactor(react): group client components

* fix(dropdown): keyDown test cases

* chore(react): rollback

* fix(theme): default transition-duration (#6011)

* fix(theme): default transitionDuration

* chore(deps): bump @heroui/theme peer dep

* ci(changesets): version packages (#5991)

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

---------

Co-authored-by: Hayato Hasegawa <hase1225hayato@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>
wingkwong added a commit that referenced this pull request Jan 29, 2026
* fix(theme): hide password reveal button (#5990)

* fix(link): link overriding role (#5999)

* fix(link): allow overriding role

* chore(link): changeset

* chore(deps): upgrade react-aria (v1.14.0) (#5996)

* chore(deps): upgrade react-aria (v1.14.0)

* refactor(react): group client components

* fix(dropdown): keyDown test cases

* chore(react): rollback

* fix(theme): default transition-duration (#6011)

* fix(theme): default transitionDuration

* chore(deps): bump @heroui/theme peer dep

* ci(changesets): version packages (#5991)

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix(use-image): resolve race condition with cached images on Firefox/Safari (#6041)

* fix(use-image): resolve race condition with cached images on Firefox/Safari

The bug occurred because event handlers (onload/onerror) were attached
AFTER setting the image src. For cached images, browsers fire onload
synchronously when src is set, causing the event to be missed and
images to remain stuck at opacity-0.

Changes:
- Attach handlers BEFORE setting src to catch synchronous callbacks
- Check both naturalWidth AND naturalHeight (per CodeRabbit review on #4523)
- Handle synchronous error callbacks for failed cached images
- Add comprehensive test coverage (15 tests) including:
  - Synchronous cached image success (Firefox/Safari race condition)
  - Synchronous cached image error
  - Dynamic src changes
  - All props (crossOrigin, srcSet, sizes, loading)
  - Callback invocation verification

Reproduction and investigation performed using Claude Opus 4.5.

Fixes #4534, #2259

* fix(use-image): add ignoreFallback to useCallback dependencies

Address CodeRabbit review feedback: the `ignoreFallback` prop was used
inside the `load` callback (line 104) but was missing from the dependency
array, creating a stale closure bug.

Without this fix, if `ignoreFallback` changes from `true` to `false`
dynamically, the `load` callback would retain the stale `true` value,
preventing the image from ever loading.

Changes:
- Add `ignoreFallback` to useCallback dependency array
- Add tests for dynamic `ignoreFallback` changes (both directions)
- Update changeset to document this fix

Verification performed using Claude Opus 4.5.

---------

Co-authored-by: Brian Meek <brian@current.space>

* fix(docs): broken links in Form page (#6077)

* fix(pagination): improve layout for large page counts (#6034)

* fix(pagination): improve layout for large page counts/style of paagination compnents

* fix(pagination): refine item sizing to balance small and large page numbers

* ci(changesets): add pagination sizing changeset

* fix(pagination): ensure cursor fully covers button without changing radius

* chore(changeset): revise message and add issue numbers

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(date-picker): open date-picker when clicking border (#6084)

* fix(date-picker): add pointer interaction to open date picker on wrapper click

* chore: add changeset

* chore(changeset): add issue number

---------

Co-authored-by: WK <wingkwong.code@gmail.com>

* fix(accordion): click behaviour for dynamically generated accordion items (#6133)

* fix(accordion): add collection state

* chore: add changeset

* fix: update change set

* refactor(theme): remove flat dependency (#6157)

* chore(deps): remove flat library

* refactor(theme): replace flatten from flat

* chore: add changeset

* fix(listbox): prevent option focus from start/end content slots (#6060)

* fix(listbox): prevent option focus from start/end content slots

* test: add test code about when clicking
non-interactive slot content, and prevented focus leakage from interactive
start/end content such as buttons.

* docs: add changeset

* chore(changeset): add issue number

---------

Co-authored-by: WK <wingkwong.code@gmail.com>

* fix(system-rsc): extendVariants & compound variants types (#5847)

* fix(extendVariants): return component type error

* fix(CompoundVariants): correct type inference for extended/compound variants and composition

* test: cover compound/extend inference; enforce CP required props

* fix(types): correct CompoundVariants class value inference

Replaces the conditional ClassProp logic with a simpler,
consistent form to fix incorrect slot value inference.

Before:
  ClassProp<S extends undefined ? ClassValue : ClassValue | SlotsClassValue<S>>

After:
  ClassProp<ClassValue | GetSuggestedValues<S>>

This ensures GetSuggestedValues<S> is used for slot-aware variants
and avoids duplicated conditional branches for undefined slots.

* fix(system-rsc): correct slot detection in getSlots()

* fix(types): make ExtendVariants props optional and guard V[key] with NonNullable

Simplifies the return type of ExtendVariants to ensure no required props
are enforced at the HOC level. This aligns with the intended API contract
where extended components expose all props as optional.

- All keys (CP ∪ V) are optional
- Preserve CP type hints and booleanized V values
- Added NonNullable<V[key]> guard to prevent undefined indexing

* test(extendVariants): add compoundVariants integration test

* fix(system-rsc): getSlots() brief JSDoc comment added

* test(extendVariants):  new styles - extended & fixed styles - original tests for slots component

* test(extendVariants): fixed slot component variant styles extended test

* fix(types): avoid leaking React internals by removing PropsWithoutRef

Replace PropsWithoutRef with explicit Exclude<'ref'> in mapped keys and
intersect with RefAttributes<InferRef<C>>. This prevents @types/react’s
internal UNDEFINED_VOID_ONLY from leaking into the public .d.ts and fixes
declaration emit for components like extended Autocomplete.

* chore(changeset): add patch for extendVariants and CompoundVariants type fix

* chore(system-rsc): add changeset for getSlots() slot detection fix

* refactor(types): unify slot value inference via GetSuggestedValues<S> for consistent variant typing

* fix(extendVariants): improved as-prop handling and exclude classNames from SuggestedVariants

* fix(system-rsc): add polymorphic 'as' prop support to extendVariants

* chore(system-rsc): add missing tests

---------

Co-authored-by: doki- <1335902682@qq.com>
Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* chore(docs): update meta (#6168)

* ci(changesets): version packages (#6059)

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

---------

Co-authored-by: Hayato Hasegawa <hase1225hayato@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>
Co-authored-by: brianatdetections <brian@detections.ai>
Co-authored-by: Brian Meek <brian@current.space>
Co-authored-by: Dominik Hryshaiev <domhryshaiev@gmail.com>
Co-authored-by: creative-atish <149860680+atishkr25@users.noreply.github.com>
Co-authored-by: KyZy7 <29321162+KyZy7@users.noreply.github.com>
Co-authored-by: Deepansh Bhargava <deepansh940@gmail.com>
Co-authored-by: KumJungMin <37934668+KumJungMin@users.noreply.github.com>
Co-authored-by: Bohdan Kulinchenko <35272606+ITBoomBKStudio@users.noreply.github.com>
Co-authored-by: doki- <1335902682@qq.com>
jrgarciadev added a commit that referenced this pull request Feb 10, 2026
* fix(theme): hide password reveal button (#5990)

* fix(link): link overriding role (#5999)

* fix(link): allow overriding role

* chore(link): changeset

* chore(deps): upgrade react-aria (v1.14.0) (#5996)

* chore(deps): upgrade react-aria (v1.14.0)

* refactor(react): group client components

* fix(dropdown): keyDown test cases

* chore(react): rollback

* fix(theme): default transition-duration (#6011)

* fix(theme): default transitionDuration

* chore(deps): bump @heroui/theme peer dep

* ci(changesets): version packages (#5991)

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix(use-image): resolve race condition with cached images on Firefox/Safari (#6041)

* fix(use-image): resolve race condition with cached images on Firefox/Safari

The bug occurred because event handlers (onload/onerror) were attached
AFTER setting the image src. For cached images, browsers fire onload
synchronously when src is set, causing the event to be missed and
images to remain stuck at opacity-0.

Changes:
- Attach handlers BEFORE setting src to catch synchronous callbacks
- Check both naturalWidth AND naturalHeight (per CodeRabbit review on #4523)
- Handle synchronous error callbacks for failed cached images
- Add comprehensive test coverage (15 tests) including:
  - Synchronous cached image success (Firefox/Safari race condition)
  - Synchronous cached image error
  - Dynamic src changes
  - All props (crossOrigin, srcSet, sizes, loading)
  - Callback invocation verification

Reproduction and investigation performed using Claude Opus 4.5.

Fixes #4534, #2259

* fix(use-image): add ignoreFallback to useCallback dependencies

Address CodeRabbit review feedback: the `ignoreFallback` prop was used
inside the `load` callback (line 104) but was missing from the dependency
array, creating a stale closure bug.

Without this fix, if `ignoreFallback` changes from `true` to `false`
dynamically, the `load` callback would retain the stale `true` value,
preventing the image from ever loading.

Changes:
- Add `ignoreFallback` to useCallback dependency array
- Add tests for dynamic `ignoreFallback` changes (both directions)
- Update changeset to document this fix

Verification performed using Claude Opus 4.5.

---------

Co-authored-by: Brian Meek <brian@current.space>

* fix(docs): broken links in Form page (#6077)

* fix(pagination): improve layout for large page counts (#6034)

* fix(pagination): improve layout for large page counts/style of paagination compnents

* fix(pagination): refine item sizing to balance small and large page numbers

* ci(changesets): add pagination sizing changeset

* fix(pagination): ensure cursor fully covers button without changing radius

* chore(changeset): revise message and add issue numbers

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(date-picker): open date-picker when clicking border (#6084)

* fix(date-picker): add pointer interaction to open date picker on wrapper click

* chore: add changeset

* chore(changeset): add issue number

---------

Co-authored-by: WK <wingkwong.code@gmail.com>

* fix(accordion): click behaviour for dynamically generated accordion items (#6133)

* fix(accordion): add collection state

* chore: add changeset

* fix: update change set

* refactor(theme): remove flat dependency (#6157)

* chore(deps): remove flat library

* refactor(theme): replace flatten from flat

* chore: add changeset

* fix(listbox): prevent option focus from start/end content slots (#6060)

* fix(listbox): prevent option focus from start/end content slots

* test: add test code about when clicking
non-interactive slot content, and prevented focus leakage from interactive
start/end content such as buttons.

* docs: add changeset

* chore(changeset): add issue number

---------

Co-authored-by: WK <wingkwong.code@gmail.com>

* fix(system-rsc): extendVariants & compound variants types (#5847)

* fix(extendVariants): return component type error

* fix(CompoundVariants): correct type inference for extended/compound variants and composition

* test: cover compound/extend inference; enforce CP required props

* fix(types): correct CompoundVariants class value inference

Replaces the conditional ClassProp logic with a simpler,
consistent form to fix incorrect slot value inference.

Before:
  ClassProp<S extends undefined ? ClassValue : ClassValue | SlotsClassValue<S>>

After:
  ClassProp<ClassValue | GetSuggestedValues<S>>

This ensures GetSuggestedValues<S> is used for slot-aware variants
and avoids duplicated conditional branches for undefined slots.

* fix(system-rsc): correct slot detection in getSlots()

* fix(types): make ExtendVariants props optional and guard V[key] with NonNullable

Simplifies the return type of ExtendVariants to ensure no required props
are enforced at the HOC level. This aligns with the intended API contract
where extended components expose all props as optional.

- All keys (CP ∪ V) are optional
- Preserve CP type hints and booleanized V values
- Added NonNullable<V[key]> guard to prevent undefined indexing

* test(extendVariants): add compoundVariants integration test

* fix(system-rsc): getSlots() brief JSDoc comment added

* test(extendVariants):  new styles - extended & fixed styles - original tests for slots component

* test(extendVariants): fixed slot component variant styles extended test

* fix(types): avoid leaking React internals by removing PropsWithoutRef

Replace PropsWithoutRef with explicit Exclude<'ref'> in mapped keys and
intersect with RefAttributes<InferRef<C>>. This prevents @types/react’s
internal UNDEFINED_VOID_ONLY from leaking into the public .d.ts and fixes
declaration emit for components like extended Autocomplete.

* chore(changeset): add patch for extendVariants and CompoundVariants type fix

* chore(system-rsc): add changeset for getSlots() slot detection fix

* refactor(types): unify slot value inference via GetSuggestedValues<S> for consistent variant typing

* fix(extendVariants): improved as-prop handling and exclude classNames from SuggestedVariants

* fix(system-rsc): add polymorphic 'as' prop support to extendVariants

* chore(system-rsc): add missing tests

---------

Co-authored-by: doki- <1335902682@qq.com>
Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* chore(docs): update meta (#6168)

* ci(changesets): version packages (#6059)

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

---------

Co-authored-by: Hayato Hasegawa <hase1225hayato@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>
Co-authored-by: brianatdetections <brian@detections.ai>
Co-authored-by: Brian Meek <brian@current.space>
Co-authored-by: Dominik Hryshaiev <domhryshaiev@gmail.com>
Co-authored-by: creative-atish <149860680+atishkr25@users.noreply.github.com>
Co-authored-by: KyZy7 <29321162+KyZy7@users.noreply.github.com>
Co-authored-by: Deepansh Bhargava <deepansh940@gmail.com>
Co-authored-by: KumJungMin <37934668+KumJungMin@users.noreply.github.com>
Co-authored-by: Bohdan Kulinchenko <35272606+ITBoomBKStudio@users.noreply.github.com>
Co-authored-by: doki- <1335902682@qq.com>
jrgarciadev added a commit that referenced this pull request Feb 18, 2026
* fix(theme): hide password reveal button (#5990)

* fix(link): link overriding role (#5999)

* fix(link): allow overriding role

* chore(link): changeset

* chore(deps): upgrade react-aria (v1.14.0) (#5996)

* chore(deps): upgrade react-aria (v1.14.0)

* refactor(react): group client components

* fix(dropdown): keyDown test cases

* chore(react): rollback

* fix(theme): default transition-duration (#6011)

* fix(theme): default transitionDuration

* chore(deps): bump @heroui/theme peer dep

* ci(changesets): version packages (#5991)

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix(use-image): resolve race condition with cached images on Firefox/Safari (#6041)

* fix(use-image): resolve race condition with cached images on Firefox/Safari

The bug occurred because event handlers (onload/onerror) were attached
AFTER setting the image src. For cached images, browsers fire onload
synchronously when src is set, causing the event to be missed and
images to remain stuck at opacity-0.

Changes:
- Attach handlers BEFORE setting src to catch synchronous callbacks
- Check both naturalWidth AND naturalHeight (per CodeRabbit review on #4523)
- Handle synchronous error callbacks for failed cached images
- Add comprehensive test coverage (15 tests) including:
  - Synchronous cached image success (Firefox/Safari race condition)
  - Synchronous cached image error
  - Dynamic src changes
  - All props (crossOrigin, srcSet, sizes, loading)
  - Callback invocation verification

Reproduction and investigation performed using Claude Opus 4.5.

Fixes #4534, #2259

* fix(use-image): add ignoreFallback to useCallback dependencies

Address CodeRabbit review feedback: the `ignoreFallback` prop was used
inside the `load` callback (line 104) but was missing from the dependency
array, creating a stale closure bug.

Without this fix, if `ignoreFallback` changes from `true` to `false`
dynamically, the `load` callback would retain the stale `true` value,
preventing the image from ever loading.

Changes:
- Add `ignoreFallback` to useCallback dependency array
- Add tests for dynamic `ignoreFallback` changes (both directions)
- Update changeset to document this fix

Verification performed using Claude Opus 4.5.

---------

Co-authored-by: Brian Meek <brian@current.space>

* fix(docs): broken links in Form page (#6077)

* fix(pagination): improve layout for large page counts (#6034)

* fix(pagination): improve layout for large page counts/style of paagination compnents

* fix(pagination): refine item sizing to balance small and large page numbers

* ci(changesets): add pagination sizing changeset

* fix(pagination): ensure cursor fully covers button without changing radius

* chore(changeset): revise message and add issue numbers

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(date-picker): open date-picker when clicking border (#6084)

* fix(date-picker): add pointer interaction to open date picker on wrapper click

* chore: add changeset

* chore(changeset): add issue number

---------

Co-authored-by: WK <wingkwong.code@gmail.com>

* fix(accordion): click behaviour for dynamically generated accordion items (#6133)

* fix(accordion): add collection state

* chore: add changeset

* fix: update change set

* refactor(theme): remove flat dependency (#6157)

* chore(deps): remove flat library

* refactor(theme): replace flatten from flat

* chore: add changeset

* fix(listbox): prevent option focus from start/end content slots (#6060)

* fix(listbox): prevent option focus from start/end content slots

* test: add test code about when clicking
non-interactive slot content, and prevented focus leakage from interactive
start/end content such as buttons.

* docs: add changeset

* chore(changeset): add issue number

---------

Co-authored-by: WK <wingkwong.code@gmail.com>

* fix(system-rsc): extendVariants & compound variants types (#5847)

* fix(extendVariants): return component type error

* fix(CompoundVariants): correct type inference for extended/compound variants and composition

* test: cover compound/extend inference; enforce CP required props

* fix(types): correct CompoundVariants class value inference

Replaces the conditional ClassProp logic with a simpler,
consistent form to fix incorrect slot value inference.

Before:
  ClassProp<S extends undefined ? ClassValue : ClassValue | SlotsClassValue<S>>

After:
  ClassProp<ClassValue | GetSuggestedValues<S>>

This ensures GetSuggestedValues<S> is used for slot-aware variants
and avoids duplicated conditional branches for undefined slots.

* fix(system-rsc): correct slot detection in getSlots()

* fix(types): make ExtendVariants props optional and guard V[key] with NonNullable

Simplifies the return type of ExtendVariants to ensure no required props
are enforced at the HOC level. This aligns with the intended API contract
where extended components expose all props as optional.

- All keys (CP ∪ V) are optional
- Preserve CP type hints and booleanized V values
- Added NonNullable<V[key]> guard to prevent undefined indexing

* test(extendVariants): add compoundVariants integration test

* fix(system-rsc): getSlots() brief JSDoc comment added

* test(extendVariants):  new styles - extended & fixed styles - original tests for slots component

* test(extendVariants): fixed slot component variant styles extended test

* fix(types): avoid leaking React internals by removing PropsWithoutRef

Replace PropsWithoutRef with explicit Exclude<'ref'> in mapped keys and
intersect with RefAttributes<InferRef<C>>. This prevents @types/react’s
internal UNDEFINED_VOID_ONLY from leaking into the public .d.ts and fixes
declaration emit for components like extended Autocomplete.

* chore(changeset): add patch for extendVariants and CompoundVariants type fix

* chore(system-rsc): add changeset for getSlots() slot detection fix

* refactor(types): unify slot value inference via GetSuggestedValues<S> for consistent variant typing

* fix(extendVariants): improved as-prop handling and exclude classNames from SuggestedVariants

* fix(system-rsc): add polymorphic 'as' prop support to extendVariants

* chore(system-rsc): add missing tests

---------

Co-authored-by: doki- <1335902682@qq.com>
Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* chore(docs): update meta (#6168)

* ci(changesets): version packages (#6059)

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix(system-rsc): extendVariants rendering behavior with as (#6215)

* fix(system-rsc): fix components rendering with 'as' prop

* fix(system-rsc): fix compoundVariants and slots inheritance in extendVariants

* fix(system-rsc): extendVariants test file cleaned

* chore(deps): bump RA dependencies (#6221)

* chore(deps): bump RA dependencies

* chore(date-picker): revise test cases

* fix(button): correct disableRipple prop precedence (#6199)

* ci(changesets): version packages (#6227)

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

---------

Co-authored-by: Hayato Hasegawa <hase1225hayato@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>
Co-authored-by: brianatdetections <brian@detections.ai>
Co-authored-by: Brian Meek <brian@current.space>
Co-authored-by: Dominik Hryshaiev <domhryshaiev@gmail.com>
Co-authored-by: creative-atish <149860680+atishkr25@users.noreply.github.com>
Co-authored-by: KyZy7 <29321162+KyZy7@users.noreply.github.com>
Co-authored-by: Deepansh Bhargava <deepansh940@gmail.com>
Co-authored-by: KumJungMin <37934668+KumJungMin@users.noreply.github.com>
Co-authored-by: Bohdan Kulinchenko <35272606+ITBoomBKStudio@users.noreply.github.com>
Co-authored-by: doki- <1335902682@qq.com>
Co-authored-by: Chris Nowak <krzysztofmareknowak@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] - Textarea forgets its default state

1 participant