chore(deps): upgrade react-aria (v1.14.0)#5996
Conversation
🦋 Changeset detectedLatest commit: 08ad2c3 The changes in this PR will be included in the next version bump. This PR includes changesets to release 51 packages
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 |
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the WalkthroughMonorepo-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 ( Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes
Possibly related PRs
Suggested reviewers
Pre-merge checks and finishing touches❌ Failed checks (2 warnings, 1 inconclusive)
✅ Passed checks (2 passed)
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. Comment |
19d5fa4 to
ec0437e
Compare
@heroui/accordion
@heroui/alert
@heroui/autocomplete
@heroui/avatar
@heroui/badge
@heroui/breadcrumbs
@heroui/button
@heroui/calendar
@heroui/card
@heroui/checkbox
@heroui/chip
@heroui/code
@heroui/date-input
@heroui/date-picker
@heroui/divider
@heroui/drawer
@heroui/dropdown
@heroui/form
@heroui/image
@heroui/input
@heroui/input-otp
@heroui/kbd
@heroui/link
@heroui/listbox
@heroui/menu
@heroui/modal
@heroui/navbar
@heroui/number-input
@heroui/pagination
@heroui/popover
@heroui/progress
@heroui/radio
@heroui/ripple
@heroui/scroll-shadow
@heroui/select
@heroui/skeleton
@heroui/slider
@heroui/snippet
@heroui/spacer
@heroui/spinner
@heroui/switch
@heroui/table
@heroui/tabs
@heroui/toast
@heroui/tooltip
@heroui/user
@heroui/react
@heroui/system
@heroui/system-rsc
@heroui/theme
@heroui/use-aria-accordion
@heroui/use-aria-accordion-item
@heroui/use-aria-button
@heroui/use-aria-link
@heroui/use-aria-modal-overlay
@heroui/use-aria-multiselect
@heroui/use-aria-overlay
@heroui/use-callback-ref
@heroui/use-clipboard
@heroui/use-data-scroll-overflow
@heroui/use-disclosure
@heroui/use-draggable
@heroui/use-form-reset
@heroui/use-image
@heroui/use-infinite-scroll
@heroui/use-intersection-observer
@heroui/use-is-mobile
@heroui/use-is-mounted
@heroui/use-measure
@heroui/use-pagination
@heroui/use-real-shape
@heroui/use-ref-state
@heroui/use-resize
@heroui/use-safe-layout-effect
@heroui/use-scroll-position
@heroui/use-ssr
@heroui/use-theme
@heroui/use-update-effect
@heroui/use-viewport-size
@heroui/aria-utils
@heroui/dom-animation
@heroui/framer-utils
@heroui/react-rsc-utils
@heroui/react-utils
@heroui/shared-icons
@heroui/shared-utils
@heroui/stories-utils
@heroui/test-utils
commit: |
There was a problem hiding this comment.
Actionable comments posted: 9
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis 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.jsonpackages/components/tabs/package.jsonpackages/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.jsonpackages/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.jsonpackages/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.jsonpackages/components/number-input/package.jsonpackages/components/slider/package.jsonpackages/components/table/package.jsonpackages/components/tabs/package.jsonpackages/components/input/package.jsonpackages/components/switch/package.jsonpackages/components/listbox/package.jsonpackages/components/navbar/package.jsonpackages/components/accordion/package.jsonpackages/components/checkbox/package.jsonpackages/hooks/use-aria-button/package.jsonpackages/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:
- Whether v1.14.0 is an unreleased/upcoming version from an internal branch
- The exact package versions and their alignment with the actual release being deployed
- 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/focusreceives a patch update.packages/utilities/aria-utils/package.json (1)
42-42: LGTM!The minor version bump to
@react-aria/utilsaligns 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/overlaysare 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/i18naligns 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-hiddenfrom 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/focusis 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/dateis 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/calendarand@react-types/datepickerare 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.
There was a problem hiding this comment.
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
📒 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
./clientproperly 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.
* 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>
* 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>
* 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>
* 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>
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
Chores
Documentation
✏️ Tip: You can customize this high-level summary in your review settings.