Skip to content

ci(changesets): 📦 version packages#5991

Merged
wingkwong merged 1 commit into
canaryfrom
changeset-release/canary
Dec 20, 2025
Merged

ci(changesets): 📦 version packages#5991
wingkwong merged 1 commit into
canaryfrom
changeset-release/canary

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot commented Dec 16, 2025

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to canary, this PR will be updated.

Releases

@heroui/accordion@2.2.26

Patch Changes

  • #5996 e07c969 Thanks @wingkwong! - upgrade react-aria (v1.14.0)

  • Updated dependencies [e07c969]:

    • @heroui/use-aria-accordion@2.2.19
    • @heroui/aria-utils@2.2.26
    • @heroui/divider@2.2.21
    • @heroui/framer-utils@2.1.25

@heroui/alert@2.2.29

Patch Changes

@heroui/autocomplete@2.3.31

Patch Changes

  • #5996 e07c969 Thanks @wingkwong! - upgrade react-aria (v1.14.0)

  • Updated dependencies [acc74d1, e07c969]:

    • @heroui/input@2.4.30
    • @heroui/aria-utils@2.2.26
    • @heroui/listbox@2.3.28
    • @heroui/popover@2.3.29
    • @heroui/button@2.2.29
    • @heroui/form@2.1.29
    • @heroui/scroll-shadow@2.3.19

@heroui/avatar@2.2.24

Patch Changes

@heroui/breadcrumbs@2.2.24

Patch Changes

@heroui/button@2.2.29

Patch Changes

  • #5996 e07c969 Thanks @wingkwong! - upgrade react-aria (v1.14.0)

  • Updated dependencies [e07c969]:

    • @heroui/use-aria-button@2.2.21
    • @heroui/ripple@2.2.21
    • @heroui/spinner@2.2.26

@heroui/calendar@2.2.29

Patch Changes

  • #5996 e07c969 Thanks @wingkwong! - upgrade react-aria (v1.14.0)

  • Updated dependencies [e07c969]:

    • @heroui/use-aria-button@2.2.21
    • @heroui/button@2.2.29
    • @heroui/framer-utils@2.1.25

@heroui/card@2.2.27

Patch Changes

  • #5996 e07c969 Thanks @wingkwong! - upgrade react-aria (v1.14.0)

  • Updated dependencies [e07c969]:

    • @heroui/use-aria-button@2.2.21
    • @heroui/ripple@2.2.21

@heroui/checkbox@2.3.29

Patch Changes

  • #5996 e07c969 Thanks @wingkwong! - upgrade react-aria (v1.14.0)

  • Updated dependencies []:

    • @heroui/form@2.1.29

@heroui/chip@2.2.24

Patch Changes

@heroui/date-input@2.3.29

Patch Changes

  • #5996 e07c969 Thanks @wingkwong! - upgrade react-aria (v1.14.0)

  • Updated dependencies []:

    • @heroui/form@2.1.29

@heroui/date-picker@2.3.30

Patch Changes

  • #5996 e07c969 Thanks @wingkwong! - upgrade react-aria (v1.14.0)

  • Updated dependencies [e07c969]:

    • @heroui/date-input@2.3.29
    • @heroui/aria-utils@2.2.26
    • @heroui/calendar@2.2.29
    • @heroui/popover@2.3.29
    • @heroui/button@2.2.29
    • @heroui/form@2.1.29

@heroui/drawer@2.2.26

Patch Changes

  • Updated dependencies [e07c969]:
    • @heroui/modal@2.2.26
    • @heroui/framer-utils@2.1.25

@heroui/dropdown@2.3.29

Patch Changes

  • #5996 e07c969 Thanks @wingkwong! - upgrade react-aria (v1.14.0)

  • Updated dependencies [e07c969]:

    • @heroui/aria-utils@2.2.26
    • @heroui/popover@2.3.29
    • @heroui/menu@2.2.28

@heroui/form@2.1.29

Patch Changes

@heroui/input@2.4.30

Patch Changes

@heroui/input-otp@2.1.29

Patch Changes

  • #5996 e07c969 Thanks @wingkwong! - upgrade react-aria (v1.14.0)

  • Updated dependencies []:

    • @heroui/form@2.1.29

@heroui/link@2.2.25

Patch Changes

@heroui/listbox@2.3.28

Patch Changes

  • #5996 e07c969 Thanks @wingkwong! - upgrade react-aria (v1.14.0)

  • Updated dependencies [e07c969]:

    • @heroui/aria-utils@2.2.26
    • @heroui/divider@2.2.21

@heroui/menu@2.2.28

Patch Changes

  • #5996 e07c969 Thanks @wingkwong! - upgrade react-aria (v1.14.0)

  • Updated dependencies [e07c969]:

    • @heroui/aria-utils@2.2.26
    • @heroui/divider@2.2.21

@heroui/modal@2.2.26

Patch Changes

  • #5996 e07c969 Thanks @wingkwong! - upgrade react-aria (v1.14.0)

  • Updated dependencies [e07c969]:

    • @heroui/use-aria-modal-overlay@2.2.20
    • @heroui/use-aria-button@2.2.21
    • @heroui/use-disclosure@2.2.18
    • @heroui/use-draggable@2.1.19
    • @heroui/framer-utils@2.1.25

@heroui/navbar@2.2.27

Patch Changes

  • #5996 e07c969 Thanks @wingkwong! - upgrade react-aria (v1.14.0)

  • Updated dependencies []:

    • @heroui/framer-utils@2.1.25

@heroui/number-input@2.0.20

Patch Changes

@heroui/pagination@2.2.26

Patch Changes

@heroui/popover@2.3.29

Patch Changes

  • #5996 e07c969 Thanks @wingkwong! - upgrade react-aria (v1.14.0)

  • Updated dependencies [e07c969]:

    • @heroui/use-aria-overlay@2.0.5
    • @heroui/use-aria-button@2.2.21
    • @heroui/aria-utils@2.2.26
    • @heroui/button@2.2.29
    • @heroui/framer-utils@2.1.25

@heroui/progress@2.2.24

Patch Changes

@heroui/radio@2.3.29

Patch Changes

  • #5996 e07c969 Thanks @wingkwong! - upgrade react-aria (v1.14.0)

  • Updated dependencies []:

    • @heroui/form@2.1.29

@heroui/select@2.4.30

Patch Changes

  • #5996 e07c969 Thanks @wingkwong! - upgrade react-aria (v1.14.0)

  • Updated dependencies [e07c969]:

    • @heroui/use-aria-multiselect@2.4.20
    • @heroui/use-aria-button@2.2.21
    • @heroui/aria-utils@2.2.26
    • @heroui/listbox@2.3.28
    • @heroui/popover@2.3.29
    • @heroui/form@2.1.29
    • @heroui/scroll-shadow@2.3.19
    • @heroui/spinner@2.2.26

@heroui/slider@2.4.26

Patch Changes

@heroui/snippet@2.2.30

Patch Changes

@heroui/spinner@2.2.26

Patch Changes

  • Updated dependencies [e07c969]:
    • @heroui/system@2.4.25
    • @heroui/system-rsc@2.3.21

@heroui/switch@2.2.26

Patch Changes

@heroui/table@2.2.29

Patch Changes

@heroui/tabs@2.2.26

Patch Changes

@heroui/toast@2.0.19

Patch Changes

  • #5996 e07c969 Thanks @wingkwong! - upgrade react-aria (v1.14.0)

  • Updated dependencies []:

    • @heroui/spinner@2.2.26

@heroui/tooltip@2.2.26

Patch Changes

  • #5996 e07c969 Thanks @wingkwong! - upgrade react-aria (v1.14.0)

  • Updated dependencies [e07c969]:

    • @heroui/use-aria-overlay@2.0.5
    • @heroui/aria-utils@2.2.26
    • @heroui/framer-utils@2.1.25

@heroui/user@2.2.24

Patch Changes

@heroui/react@2.8.7

Patch Changes

  • #5996 e07c969 Thanks @wingkwong! - upgrade react-aria (v1.14.0)

  • Updated dependencies [086f6a1, acc74d1, 090b151, e07c969]:

    • @heroui/theme@2.4.25
    • @heroui/input@2.4.30
    • @heroui/link@2.2.25
    • @heroui/autocomplete@2.3.31
    • @heroui/number-input@2.0.20
    • @heroui/breadcrumbs@2.2.24
    • @heroui/date-picker@2.3.30
    • @heroui/date-input@2.3.29
    • @heroui/pagination@2.2.26
    • @heroui/accordion@2.2.26
    • @heroui/input-otp@2.1.29
    • @heroui/calendar@2.2.29
    • @heroui/checkbox@2.3.29
    • @heroui/dropdown@2.3.29
    • @heroui/progress@2.2.24
    • @heroui/listbox@2.3.28
    • @heroui/popover@2.3.29
    • @heroui/snippet@2.2.30
    • @heroui/tooltip@2.2.26
    • @heroui/avatar@2.2.24
    • @heroui/button@2.2.29
    • @heroui/navbar@2.2.27
    • @heroui/select@2.4.30
    • @heroui/slider@2.4.26
    • @heroui/switch@2.2.26
    • @heroui/alert@2.2.29
    • @heroui/modal@2.2.26
    • @heroui/radio@2.3.29
    • @heroui/table@2.2.29
    • @heroui/toast@2.0.19
    • @heroui/card@2.2.27
    • @heroui/chip@2.2.24
    • @heroui/menu@2.2.28
    • @heroui/tabs@2.2.26
    • @heroui/user@2.2.24
    • @heroui/system@2.4.25
    • @heroui/badge@2.2.18
    • @heroui/code@2.2.22
    • @heroui/divider@2.2.21
    • @heroui/drawer@2.2.26
    • @heroui/form@2.1.29
    • @heroui/image@2.2.18
    • @heroui/kbd@2.2.23
    • @heroui/ripple@2.2.21
    • @heroui/scroll-shadow@2.3.19
    • @heroui/skeleton@2.2.18
    • @heroui/spacer@2.2.22
    • @heroui/spinner@2.2.26
    • @heroui/framer-utils@2.1.25

@heroui/system@2.4.25

Patch Changes

  • #5996 e07c969 Thanks @wingkwong! - upgrade react-aria (v1.14.0)

  • Updated dependencies []:

    • @heroui/system-rsc@2.3.21

@heroui/theme@2.4.25

Patch Changes

@heroui/use-aria-accordion@2.2.19

Patch Changes

@heroui/use-aria-accordion-item@2.2.19

Patch Changes

@heroui/use-aria-button@2.2.21

Patch Changes

@heroui/use-aria-link@2.2.22

Patch Changes

@heroui/use-aria-modal-overlay@2.2.20

Patch Changes

@heroui/use-aria-multiselect@2.4.20

Patch Changes

@heroui/use-aria-overlay@2.0.5

Patch Changes

@heroui/use-disclosure@2.2.18

Patch Changes

@heroui/use-draggable@2.1.19

Patch Changes

@heroui/use-pagination@2.2.19

Patch Changes

@heroui/aria-utils@2.2.26

Patch Changes

@heroui/framer-utils@2.1.25

Patch Changes

  • Updated dependencies [e07c969]:
    • @heroui/system@2.4.25

@vercel
Copy link
Copy Markdown

vercel Bot commented Dec 16, 2025

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

Project Deployment Review Updated (UTC)
heroui Ready Ready Preview, Comment Dec 20, 2025 2:07pm
heroui-sb Ready Ready Preview, Comment Dec 20, 2025 2:07pm

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Dec 16, 2025

Important

Review skipped

Ignore keyword(s) in the title.

⛔ Ignored keywords (3)
  • WIP
  • DO NOT MERGE
  • ci(changesets)

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.


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

@wingkwong wingkwong merged commit d5131d7 into canary Dec 20, 2025
3 checks passed
@wingkwong wingkwong deleted the changeset-release/canary branch December 20, 2025 14:17
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.

2 participants