Skip to content

Conversation

@anshumandev2025
Copy link
Contributor

@anshumandev2025 anshumandev2025 commented Aug 26, 2025

Closes #5620

📝 Description

The modals were not closing with animation because they were all closing simultaneously. I added a slight delay between each modal's closing to allow the animations to play smoothly.

Screen.Recording.2025-08-26.at.9.14.23.AM.mov

Summary by CodeRabbit

  • Bug Fixes
    • Closing all toasts now animates smoothly instead of disappearing instantly.
    • Toasts dismiss in a brief, staggered sequence, improving visual feedback and readability during bulk closures.
    • No changes to public APIs; existing integrations continue to work as before.

@vercel
Copy link

vercel bot commented Aug 26, 2025

@anshumandev2025 is attempting to deploy a commit to the HeroUI Inc Team on Vercel.

A member of the Team first needs to authorize it.

@changeset-bot
Copy link

changeset-bot bot commented Aug 26, 2025

🦋 Changeset detected

Latest commit: a255ed0

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

This PR includes changesets to release 2 packages
Name Type
@heroui/toast Patch
@heroui/react Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Aug 26, 2025

Walkthrough

Implements staggered asynchronous closing in toast closeAll by introducing per-toast timeouts; adds a changeset entry bumping @heroui/toast with a patch description.

Changes

Cohort / File(s) Summary
Toast closeAll timing change
packages/components/toast/src/toast-provider.tsx
Replaces synchronous iteration over visible toast keys with scheduled closes using setTimeout per key (delay = index × 100ms) calling globalToastQueue?.close(key).
Release metadata
.changeset/twelve-needles-bathe.md
Adds changeset for @heroui/toast patch: “show animation when closing all modals”.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  actor User
  participant App as App
  participant ToastProvider as ToastProvider
  participant Queue as globalToastQueue

  User->>App: Trigger closeAll()
  App->>ToastProvider: closeAll()
  ToastProvider->>Queue: Read visibleToasts (keys)
  loop For each key with index i
    Note over ToastProvider: schedule close with delay = i × 100ms
    ToastProvider-->>ToastProvider: setTimeout(i × 100ms)
    ToastProvider->>Queue: close(key) (after delay)
  end
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Assessment against linked issues

Objective Addressed Explanation
Ensure closeAll closes toasts with animation [#5620]
Ensure closeToast closes a single toast with animation [#5620] closeToast implementation not modified in this PR.

Assessment against linked issues: Out-of-scope changes

Code Change Explanation
Changeset text mentions “modals” (.changeset/twelve-needles-bathe.md) Wording references "modals" rather than "toasts", which is inconsistent with the issue objective.

Suggested labels

👀 Status: To Review

Suggested reviewers

  • jrgarciadev

Tip

🔌 Remote MCP (Model Context Protocol) integration is now available!

Pro plan users can now connect to remote MCP servers from the Integrations page. Connect with popular remote MCPs such as Notion and Linear to add more context to your reviews and chats.


📜 Recent review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between afa1641 and a255ed0.

📒 Files selected for processing (1)
  • .changeset/twelve-needles-bathe.md (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • .changeset/twelve-needles-bathe.md
✨ Finishing Touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment

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
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR/Issue comments)

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

Other keywords and placeholders

  • Add @coderabbitai ignore or @coderabbit ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

Status, Documentation and Community

  • Visit our Status Page to check the current availability of CodeRabbit.
  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
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: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
packages/components/toast/src/toast-provider.tsx (1)

71-76: Ensure exit animations for single-toast close path

The current implementation in toast-provider.tsx only renders <ToastRegion> when toastQueue.visibleToasts.length > 0, so closing the last toast unmounts the region immediately and skips its exit animation.

• File: packages/components/toast/src/toast-provider.tsx, lines 48–51

return (
  <LazyMotion features={loadFeatures}>
-     {toastQueue.visibleToasts.length > 0 && (
-       <ToastRegion
-         …props
-       />
-     )}
+     <AnimatePresence>
+       {toastQueue.visibleToasts.length > 0 && (
+         <ToastRegion
+           …props
+         />
+       )}
+     </AnimatePresence>
  </LazyMotion>
);

Wrap the region in <AnimatePresence> (or introduce a keepMounted flag) so it isn’t removed before its exit animation runs.

• File: packages/components/toast/src/toast-region.tsx
Ensure the region uses exit variants and calls an onExitComplete (or similar) callback to delay unmount until the animation finishes.

Add a Jest test with fake timers to confirm exit behavior:

  • Render a single toast, call closeToast(key), advance timers past the animation duration, and assert the <ToastRegion> (and underlying DOM) remains until exit completes.
  • (Optional) Render multiple toasts, call closeAll(), advance timers, and assert staggered close timings.
🧹 Nitpick comments (1)
packages/components/toast/src/toast-provider.tsx (1)

85-89: Avoid magic number, allow cancellation, and short-circuit when staggering isn’t needed.

  • The hardcoded 100ms should be a named constant (and ideally configurable).
  • Repeated calls to closeAll can stack timeouts; clear pending ones first.
  • Short-circuit when keys.length <= 1—no need to stagger.

Apply this diff within closeAll:

@@
-  keys.forEach((key, index) => {
-    setTimeout(() => {
-      globalToastQueue?.close(key);
-    }, index * 100);
-  });
+  // Fast path: nothing (or only one) to close; avoids unnecessary timers
+  if (keys.length <= 1) {
+    keys.forEach((k) => globalToastQueue?.close(k));
+    return;
+  }
+
+  // Cancel any previously scheduled closeAll timers
+  pendingCloseAllTimers.forEach(clearTimeout);
+  pendingCloseAllTimers = [];
+
+  keys.forEach((key, index) => {
+    const timerId = window.setTimeout(() => {
+      globalToastQueue?.close(key);
+    }, index * CLOSE_ALL_STAGGER_MS);
+    pendingCloseAllTimers.push(timerId);
+  });

And add these module-level declarations (near the other module-level vars):

// module-level
let pendingCloseAllTimers: number[] = [];
const CLOSE_ALL_STAGGER_MS = 100; // consider reading from a motion token/theme

Optional: Skip staggering entirely when animations are disabled (e.g., via Provider/global setting) to keep behavior snappy in non-animated environments. If you want, I can wire a shared “animationsEnabled” flag that ToastProvider sets and helpers read.

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 7eea729 and afa1641.

📒 Files selected for processing (2)
  • .changeset/twelve-needles-bathe.md (1 hunks)
  • packages/components/toast/src/toast-provider.tsx (1 hunks)
🔇 Additional comments (1)
packages/components/toast/src/toast-provider.tsx (1)

85-89: Keep ToastRegion Mounted to Preserve Exit Animations

The <ToastRegion> component already wraps its children in Framer Motion’s AnimatePresence, and when visibleToasts is empty it simply renders no <Toast> instances—so keeping the region mounted incurs no visible “shell” when there are no toasts. However, because we currently unmount <ToastRegion> as soon as the last toast closes, the exit animation never has a chance to play.

Apply the following change in packages/components/toast/src/toast-provider.tsx to always render <ToastRegion> and let AnimatePresence handle mounting/unmounting of individual toasts:

@@ packages/components/toast/src/toast-provider.tsx
-      {toastQueue.visibleToasts.length > 0 && (
-        <ToastRegion
-          disableAnimation={disableAnimation}
-          maxVisibleToasts={maxVisibleToasts}
-          placement={placement}
-          toastOffset={toastOffset}
-          toastProps={toastProps}
-          toastQueue={toastQueue}
-          {...regionProps}
-        />
-      )}
+      {/* Always keep the region mounted so exit animations can run */}
+      <ToastRegion
+        disableAnimation={disableAnimation}
+        maxVisibleToasts={maxVisibleToasts}
+        placement={placement}
+        toastOffset={toastOffset}
+        toastProps={toastProps}
+        toastQueue={toastQueue}
+        {...regionProps}
+      />
  • Why this matters: Unmounting the region on the last toast prevents Framer Motion from animating the toast’s exit. Keeping it mounted allows AnimatePresence in toast-region.tsx to detect and animate the final unmount of the last toast.
  • Verified:
    • ToastRegion imports and uses AnimatePresence around the list of visibleToasts (so empty arrays render nothing but keep the wrapper)
    • With the conditional removed, the region persists in the DOM, ensuring exit animations play even when closing the sole toast

Please integrate this change to fully resolve Issue #5620.

Likely an incorrect or invalid review comment.

@vercel
Copy link

vercel bot commented Aug 26, 2025

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

Project Deployment Preview Comments Updated (UTC)
heroui Ready Ready Preview Comment Aug 30, 2025 3:13am
heroui-sb Ready Ready Preview Comment Aug 30, 2025 3:13am

@pkg-pr-new
Copy link

pkg-pr-new bot commented Aug 26, 2025

Open in StackBlitz

@heroui/accordion

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

@heroui/alert

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

@heroui/autocomplete

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

@heroui/avatar

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

@heroui/badge

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

@heroui/breadcrumbs

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

@heroui/button

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

@heroui/calendar

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

@heroui/card

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

@heroui/checkbox

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

@heroui/chip

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

@heroui/code

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

@heroui/date-input

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

@heroui/date-picker

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

@heroui/divider

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

@heroui/drawer

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

@heroui/dropdown

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

@heroui/form

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

@heroui/image

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

@heroui/input

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

@heroui/input-otp

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

@heroui/kbd

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

@heroui/link

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

@heroui/listbox

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

@heroui/menu

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

@heroui/modal

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

@heroui/navbar

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

@heroui/number-input

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

@heroui/pagination

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

@heroui/popover

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

@heroui/progress

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

@heroui/radio

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

@heroui/ripple

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

@heroui/scroll-shadow

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

@heroui/select

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

@heroui/skeleton

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

@heroui/slider

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

@heroui/snippet

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

@heroui/spacer

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

@heroui/spinner

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

@heroui/switch

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

@heroui/table

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

@heroui/tabs

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

@heroui/toast

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

@heroui/tooltip

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

@heroui/user

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

@heroui/react

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

@heroui/system

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

@heroui/system-rsc

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

@heroui/theme

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

@heroui/use-aria-accordion

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

@heroui/use-aria-accordion-item

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

@heroui/use-aria-button

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

@heroui/use-aria-link

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

@heroui/use-aria-modal-overlay

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

@heroui/use-aria-multiselect

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

@heroui/use-aria-overlay

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

@heroui/use-callback-ref

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

@heroui/use-clipboard

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

@heroui/use-data-scroll-overflow

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

@heroui/use-disclosure

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

@heroui/use-draggable

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

@heroui/use-form-reset

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

@heroui/use-image

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

@heroui/use-infinite-scroll

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

@heroui/use-intersection-observer

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

@heroui/use-is-mobile

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

@heroui/use-is-mounted

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

@heroui/use-measure

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

@heroui/use-pagination

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

@heroui/use-real-shape

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

@heroui/use-ref-state

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

@heroui/use-resize

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

@heroui/use-safe-layout-effect

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

@heroui/use-scroll-position

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

@heroui/use-ssr

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

@heroui/use-theme

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

@heroui/use-update-effect

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

@heroui/use-viewport-size

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

@heroui/aria-utils

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

@heroui/dom-animation

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

@heroui/framer-utils

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

@heroui/react-rsc-utils

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

@heroui/react-utils

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

@heroui/shared-icons

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

@heroui/shared-utils

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

@heroui/stories-utils

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

@heroui/test-utils

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

commit: a255ed0

Copy link
Member

@wingkwong wingkwong left a comment

Choose a reason for hiding this comment

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

closing a single toast does't have animation

@ChaserZ98
Copy link
Contributor

ChaserZ98 commented Aug 26, 2025

I noticed this issue a few days ago. This is because there is no way to control the internal state of toast component due to the current design of toast component.

The addToast, closeToast and closeAll work by directly calling the ToastQueue APIs from react-aria (i.e. the add and close methods). The ToastQueue has an attribute visibleToasts and the toast region uses it to render all the toast components including animations of adding them and closing them. This means toasts that are playing the close animation are still in the queue and they are removed from the queue until the animation is over.

However, closeToast and closeAll will directly remove toasts from the queue without modifying the internal state of each toast to trigger their close animation. This is why there is no close animation when calling these two methods.

So a good solution would be providing a way to control the internal state of toast component, specifically isToastExiting, and then update closeToast and closeAll to modify that state of each toast.

@wingkwong wingkwong added this to the v2.8.3 milestone Aug 30, 2025
@wingkwong wingkwong merged commit afe2f97 into heroui-inc:canary Aug 30, 2025
10 checks passed
@ChaserZ98
Copy link
Contributor

ChaserZ98 commented Aug 30, 2025

@wingkwong I don't see the point of merging this PR.

  1. A correct close animation should include a slide-out transition as the following video shows. Currently, only the close button of the toast could trigger this, which is one of the reasons I request feat(toast): provide a way to close the toast itself within the endContent #5605.

    Components._.Toast.-.Close.Toast.Storybook.-.Personal.-.Microsoft.Edge.2025-08-30.11-47-17.mp4

    The videos below are the current UI effects of using closeToast and closeAll after merging this PR.

    Components._.Toast.-.Close.Toast.Storybook.-.Personal.-.Microsoft.Edge.2025-08-30.11-48-06.mp4
    Components._.Toast.-.Close.Toast.Storybook.-.Personal.-.Microsoft.Edge.2025-08-30.11-48-29.mp4

    None of them shows the expected slide-out transition.

  2. If this PR aims to add some sort of UI effect of closing each toast one by one to closeAll, it is easy to do the same by directly using the global toast queue (see code example below) and plus, you can customize the gap time of closing each toast or even add a start delay to the whole action or whatever you want. So this is completely doable with the current API. There is no need to change the current closeAll behavior without really solving the close animation issue.

    import { getToastQueue } from "@heroui/react";
    
    export function customCloseAll(){
        const globalToastQueue = getToastQueue();
        const keys = globalToastQueue.visibleToasts.map((toast) => toast.key);
        const startDelay = 300;
        const gap = 100;
        keys.forEach((key, index) => setTimeout(globalToastQueue?.close(key), startDelay + index * gap));
    }

Therefore, my point is this PR should be reverted and the original issue #5620 should be reopen until the closeToast and closeAll API can correctly trigger the close animation of the toast component.

@wingkwong
Copy link
Member

@ChaserZ98 thanks for pointing out. I missed slide-out transition as I was using Close the last one as a reference. I've created another PR for that.

jrgarciadev added a commit that referenced this pull request Aug 31, 2025
* fix(date-picker): error state (#5317)

* fix(date-range-picker): fixed the error state in preset

* Update giant-sloths-shop.md

* Removed if statement

* chore(date-picker): prettier

---------

Co-authored-by: WK Wong <[email protected]>

* fix(theme): clear button in mobile (#5252)

* fix(toast): fixed close button hover position

* fix(input): fixed the clear button rendering on smaller devices

* Delete .changeset/soft-spoons-march.md

* Update input.ts

* Undo unrelated toast changes

* fix(toast): icons (#5246)

* feat(shared-icons): add loading icon

* fix(toast): icons

* chore(toast): revise types for icons

* chore(changeset): add changeset

* refactor: migrate eslint to v9 (#5267)

* refactor: migrate eslint to v9

* chore: lint

* chore: update eslint command

* chore: fix lint warnings

* chore: separate lint and lint:fix

* chore: exclude contentlayer generated code

* fix(scripts): add missing await

* fix(autocomplete): persist last selected item position (#5286)

* refactor(select): remove unnecessary code

* fix(autocomplete): persist last selected item position

* chore(changeset): add changeset

* chore(deps): bump framer-motion version (#5287)

* chore(deps): bump framer-motion version

* fix: typing issues

* chore(changeset): add changeset

---------

Co-authored-by: Junior Garcia <[email protected]>

* chore(docs): supplement onAction & selectionBehavior (#5289)

* fix(autocomplete): ensure focused item matches selected item after filter, selection (#5290)

* fix(autocomplete): ensure focused item matches selected item after filter, selection

* chore: apply type and default value

* chore: add perpose coment in updated code

* test: add focuskey management testcode

* docs: add changeset

* docs: update changeset

* chore: remove comment

* fix: broken components in stories (#5291)

* chore(switch): remove xl size

* chore(docs): remove xl size

* chore(system-rsc): remove xl size

* chore(circular-progress): remove xl size

* chore: undo

* chore(deps): bump RA versions (#5310)

* chore(deps): ra version bump

* chore(changeset): add changeset

* fix(scripts): incorrect docs path

---------

Co-authored-by: Junior Garcia <[email protected]>

* chore(docs): update meta data (#5311)

* docs(layout.tsx): added text-foreground (#5316)

* feat(tabs): add click handling for tab items in tests and implementation (#3917)

Co-authored-by: WK Wong <[email protected]>

* fix issues in tabs examples (#2405)

Co-authored-by: WK Wong <[email protected]>

* chore(docs): add missing onValueChange in CheckboxGroup (#5332)

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

Co-authored-by: Junior Garcia <[email protected]>

* chore(deps): bump RA versions (#5361)

* chore(deps): bump RA versions

* chore(deps): bump RA versions

* chore(deps): bump RA versions

* chore: changeset

* refactor(listbox): already extends in AriaListBoxProps

* chore(docs): remove herohack announcement (#5363)

* chore: remove herohack announcement

* Update carbon-ad.tsx

* chore(docs): fixed lint errors

* chore(docs): requested changes

* Update carbon-ad.tsx

* Update carbon-ad.tsx

* fix(theme): consistent faded styling for isInvalid in InputOtp and DateInput (#5349)

* fix(input-otp): remove bg and border styles from faded variant when isInvalid

* fix(date-input): remove bg styles from faded variant when isInvalid

* chore(changeset): add changeset

* chore: bump theme peerDependencies

* chore: bump theme peerDependencies

* fix: wrong version

* chore: extra line

---------

Co-authored-by: WK Wong <[email protected]>

* fix(theme): helperWrapper padding (#5350)

* fix(number-input): decreased helperWrapper padding to maintain consistency

* Update beige-laws-heal.md

* chore(theme): change to p-1

* chore(deps): bump peerDependencies for theme pkg

* fix(number-input): incorrect versions

* chore(changeset): include number input

---------

Co-authored-by: WK Wong <[email protected]>

* fix(autocomplete): onClear (#5365)

* fix(autocomplete): add onClear

* feat(autocomplete): add test case for onClear

* chore(changeset): add changeset

* fix(number-input): only allow number type (#5368)

* refactor(number-input): avoid non number type passing to number input

* chore(changeset): add changeset

* refactor: optimization (#5362)

* chore(deps): bump RA versions

* chore(deps): bump RA versions

* chore(deps): bump RA versions

* chore: changeset

* chore(deps): remove unnecessary dependencies

* fix(calendar): typing issue

* refactor(system): remove unused SupportedCalendars

* refactor(system): move I18nProviderProps to type

* refactor: use `spectrumCalendarProps<DateValue>["createCalendar"]`

* feat: add consistent-type-imports

* fix: eslint

* chore: add changeset

* refactor: remove unused deps

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

Co-authored-by: Junior Garcia <[email protected]>

* chore(deps): bump RA versions (#5382)

* fix(tabs): onClick (#5378)

* fix(tabs): handleClick

* chore(changeset): add changeset

* refactor: remove `@interationalized/date` from system (#5374)

* refactor(calendar): createCalendar typing

* refactor(system): ditch `@react-types/calendar`

* feat(system): include the required types or interfaces

* chore(deps): pnpm-lock.yaml

* fix: cast DateValue

* fix: minValue & maxValue typing

* chore(changeset): add changeset

* refactor(system): abstract class

* chore(deps): bump system peer dependency

* chore(changeset): add changeset

* fix(docs): correct display of the "Toast" component in the Safari browser (#5400)

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

Co-authored-by: Junior Garcia <[email protected]>

* docs: replace invalid yarn command (#5422)

* chore: remove ph banner (#5437)

* feat: 2.8.0 beta changes (#5473)

* ci(changesets): 📦 version packages (beta) (#5254)

* chore(pre-release): enter pre-release mode

* feat: support tailwindcss v4 (#4656)

* feat: upgrade tailwindcssv4

* feat: upgrade tailwindcssv4

* feat: update config

* feat: first init tailwindcss v4

* fix: update shadow xs to sm

* fix: update rounded xs to sm

* fix: variant issues

* fix: variant shadow etc issues

* fix: variant shadow issues

* fix: redundant shadow issues

* fix: redundant blur-sm issues

* fix: redundant blur-sm issues

* fix: redundant blur-sm shadow issues

* fix: remove redundant rename

* fix: role button issues

* fix: role button issues

* fix: font size

* fix: alpha color value

* fix: support text utilities in plugin

* feat: upgrade tailwind-merge

* fix: pkg package scope

(cherry picked from commit 6e82323)

* fix: button base ui add cursor pointer

* fix: tailwindcss experimental

* feat: upgrade tailwindcss version

* fix: input step 1

* fix: input transition issue

* fix: theme to var function

* ci: run QA in beta branch

* fix: var to the theme and incorrect var usage MER-3261

* feat: upgrade tailwind-variants

---------

Co-authored-by: WK Wong <[email protected]>
Co-authored-by: Junior Garcia <[email protected]>

* feat: changeset for tailwindcss v4

* fix: changeset

* fix: changeset

* ci(changesets): version packages (beta) (#5008)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* chore: tw 4 docs

* fix: select tests

* chore: timeout

* ci(changesets): version packages (beta)

* ci(changesets): version packages (beta)

* fix: deployment

* ci(changesets): version packages (beta) (#5009)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* chore: add the cli to upgrade the packages to beta

* fix: cli command

* fix: revert to use previous version (#5012)

* fix: revert to use previous version

* fix: revert to use previous version

* fix: revert

* fix: revert to use previous tailwind-merge version

* ci(changesets): version packages (beta) (#5015)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* fix: adapt tailwind merger config (#5016)

* Revert "fix: revert to use previous version (#5012)"

This reverts commit 1d01df2.

* fix: adapt tailwind merge config

* fix: adapt tailwind merge config

* fix: adapt tailwind merge config

* fix: changeset

* ci(changesets): version packages (beta)

* fix(tailwind): add missing values config for bg-grid plugin

* fix: remove useless tw config

* fix: add default styles

* docs: changeset

* docs: typo

* chore: merge origin canary to beta

* ci(changesets): version packages (beta)

* chore: remove changeset & pre.json

* chore: change to minor

* chore(pre-release): enter pre-release mode

* chore(deps): fix versions

* chore(deps): revise changed packages

* chore(deps): update tailwindcss version

* ci(changesets): 📦 version packages (beta) (#5166)

* ci(changesets): version packages (beta)

* fix: add missing delimiter

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: winches <[email protected]>

* fix(docs): add missing semicolon

* fix: animate about skeleton (#5198)

* chore: pre release

* ci(changesets): version packages (beta) (#5199)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* docs: blurred hover button style

* fix: language selector blur (#5208)

* fix: skeleton animate translate value (#5207)

* fix: open in remote repo (#5214)

* chore: upgrade tw version

* fix: open in remote repo

* fix: update lock

* fix: select translate styles (#5219)

* chore: pre release

* ci(changesets): version packages (beta) (#5222)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* chore: remove changeset

* chore(pre-release): enter pre-release mode

* chore(react): continue from 2.8.0-beta.2

* chore(changeset): add changeset

* fix(changeset): use patch

* ci(changesets): version packages (beta)

* fix(docs): beta docs

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: winches <[email protected]>
Co-authored-by: WK Wong <[email protected]>
Co-authored-by: Junior Garcia <[email protected]>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Charlotte21110 <[email protected]>

* fix(workflow): check_if_pre_json_exists order

* chore(changeset): redeploy

* chore(changeset): changeset (#5263)

* ci(changesets): version packages (beta) (#5264)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* fix(docs): mdx in beta (#5261)

* chore(docs): add lint:fix

* fix(docs): slug requires promise in next 15

* fix(docs): useMDXComponent

* fix(docs): typing issue

* docs: typography style error (#5274)

* chore(pre-release): enter pre-release mode

* feat: support tailwindcss v4 (#4656)

* feat: upgrade tailwindcssv4

* feat: upgrade tailwindcssv4

* feat: update config

* feat: first init tailwindcss v4

* fix: update shadow xs to sm

* fix: update rounded xs to sm

* fix: variant issues

* fix: variant shadow etc issues

* fix: variant shadow issues

* fix: redundant shadow issues

* fix: redundant blur-sm issues

* fix: redundant blur-sm issues

* fix: redundant blur-sm shadow issues

* fix: remove redundant rename

* fix: role button issues

* fix: role button issues

* fix: font size

* fix: alpha color value

* fix: support text utilities in plugin

* feat: upgrade tailwind-merge

* fix: pkg package scope

(cherry picked from commit 6e82323)

* fix: button base ui add cursor pointer

* fix: tailwindcss experimental

* feat: upgrade tailwindcss version

* fix: input step 1

* fix: input transition issue

* fix: theme to var function

* ci: run QA in beta branch

* fix: var to the theme and incorrect var usage MER-3261

* feat: upgrade tailwind-variants

---------

Co-authored-by: WK Wong <[email protected]>
Co-authored-by: Junior Garcia <[email protected]>

* feat: changeset for tailwindcss v4

* fix: changeset

* fix: changeset

* ci(changesets): version packages (beta) (#5008)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* chore: tw 4 docs

* fix: select tests

* chore: timeout

* ci(changesets): version packages (beta)

* ci(changesets): version packages (beta)

* fix: deployment

* ci(changesets): version packages (beta) (#5009)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* chore: add the cli to upgrade the packages to beta

* fix: cli command

* fix: revert to use previous version (#5012)

* fix: revert to use previous version

* fix: revert to use previous version

* fix: revert

* fix: revert to use previous tailwind-merge version

* ci(changesets): version packages (beta) (#5015)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* fix: adapt tailwind merger config (#5016)

* Revert "fix: revert to use previous version (#5012)"

This reverts commit 1d01df2.

* fix: adapt tailwind merge config

* fix: adapt tailwind merge config

* fix: adapt tailwind merge config

* fix: changeset

* ci(changesets): version packages (beta)

* fix(tailwind): add missing values config for bg-grid plugin

* fix: remove useless tw config

* fix: add default styles

* docs: changeset

* docs: typo

* chore: merge origin canary to beta

* ci(changesets): version packages (beta)

* chore: remove changeset & pre.json

* chore: change to minor

* chore(pre-release): enter pre-release mode

* chore(deps): fix versions

* chore(deps): revise changed packages

* chore(deps): update tailwindcss version

* ci(changesets): 📦 version packages (beta) (#5166)

* ci(changesets): version packages (beta)

* fix: add missing delimiter

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: winches <[email protected]>

* fix(docs): add missing semicolon

* fix: animate about skeleton (#5198)

* chore: pre release

* ci(changesets): version packages (beta) (#5199)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* docs: blurred hover button style

* fix: language selector blur (#5208)

* fix: skeleton animate translate value (#5207)

* fix: open in remote repo (#5214)

* chore: upgrade tw version

* fix: open in remote repo

* fix: update lock

* fix: select translate styles

* Merge branch beta/release-next of github.com:heroui-inc/heroui into beta/release-next-original

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: WK Wong <[email protected]>
Co-authored-by: Junior Garcia <[email protected]>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Charlotte21110 <[email protected]>

* fix: transition scale (#5284)

* feat(toast): enable programatically closing a toast with a specific key (#5125)

* feat(toast): add closeToast method

* docs(toast): add example for programmatically closing toast

* refactor: change button title in doc

* refactor: add type for key

* test: sync storybook example with the one in docs

* chore: add changeset

* refactor: fix grammar

* chore: update toast package version change to patch

* Merge branch 'canary' into pr/5125

* chore(changeset): add ref number

* refactor(toast): export hooks

* chore(docs): use flat buttons

---------

Co-authored-by: WK Wong <[email protected]>

* ci(changesets): version packages (beta) (#5285)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* fix(input): prevent accessibility label duplication (#5161)

* fix(input): prevent accessibility label duplication

* chore(chageset): add changeset

* chore(changeset): include issue number

---------

Co-authored-by: WK <[email protected]>

* refactor: overlay & interactOutside (#5100)

* fix: remove ariaShouldCloseOnInteractOutside usage

* feat: add `@heroui/use-aria-overlay`

* chore(popover): remove ariaHideOutside

* fix(use-aria-modal-overlay): use useAriaOverlay instead

* fix(use-aira-overlay): revise onInteractOutside

* chore(deps): pnpm-lock.yaml

* feat(modal): add ModalWithAutocompleteTemplate

* chore(modal): remove state.close as handled by useInteractOutside

* fix(use-aria-multiselect): add menuTriggerProps.onPressStart and change domProps to triggerProps

* chore(use-aria-button): support onPressUp

* chore(deps): pnpm-lock.yaml

* chore(use-aria-multiselect): join by commas

* fix(tooltip): use useAriaOverlay instead

* fix(autocomplete): jest timeout issue

* chore(deps): pnpm-lock.yaml

* chore(changset): add changeset

* chore(deps): bump versions

* refactor(tooltip): move to type

* chore(deps): bump RA versions (#5315)

* chore(deps): bump RA versions

* fix(scripts): incorrect docs path

* chore(changeset): add changeset for bumping RA versions

* fix(docs): incorrect import path

* refactor(modal): use a simple example

* ci(changesets): version packages (beta) (#5303)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* feat(input): adding outside-top prop (#4775)

* feat(input): adding outside-top prop

* chore(input): add outside-top to use-label-placement hook

* refactor(input): use old method for computing labelPlacement in 'use-input'

* fix(input): fix focus behaviouir and alignment for 'outside-top'

* Merge branch 'canary' into pr/4775

* chore(changeset): include issue number

* feat(system): useInputLabelPlacement

* refactor(input): use useInputLabelPlacement

* chore(changeset): add changeset

---------

Co-authored-by: WK Wong <[email protected]>

* chore: sync latest changes to beta (#5347)

* chore: add herohack announcement

* fix(date-picker): error state (#5317)

* fix(date-range-picker): fixed the error state in preset

* Update giant-sloths-shop.md

* Removed if statement

* chore(date-picker): prettier

---------

Co-authored-by: WK Wong <[email protected]>

* chore: banner replacement

* fix(theme): clear button in mobile (#5252)

* fix(toast): fixed close button hover position

* fix(input): fixed the clear button rendering on smaller devices

* Delete .changeset/soft-spoons-march.md

* Update input.ts

* Undo unrelated toast changes

* fix(toast): icons (#5246)

* feat(shared-icons): add loading icon

* fix(toast): icons

* chore(toast): revise types for icons

* chore(changeset): add changeset

* refactor: migrate eslint to v9 (#5267)

* refactor: migrate eslint to v9

* chore: lint

* chore: update eslint command

* chore: fix lint warnings

* chore: separate lint and lint:fix

* chore: exclude contentlayer generated code

* fix(scripts): add missing await

* fix(autocomplete): persist last selected item position (#5286)

* refactor(select): remove unnecessary code

* fix(autocomplete): persist last selected item position

* chore(changeset): add changeset

* chore(deps): bump framer-motion version (#5287)

* chore(deps): bump framer-motion version

* fix: typing issues

* chore(changeset): add changeset

---------

Co-authored-by: Junior Garcia <[email protected]>

* chore(docs): supplement onAction & selectionBehavior (#5289)

* fix(autocomplete): ensure focused item matches selected item after filter, selection (#5290)

* fix(autocomplete): ensure focused item matches selected item after filter, selection

* chore: apply type and default value

* chore: add perpose coment in updated code

* test: add focuskey management testcode

* docs: add changeset

* docs: update changeset

* chore: remove comment

* fix: broken components in stories (#5291)

* chore(switch): remove xl size

* chore(docs): remove xl size

* chore(system-rsc): remove xl size

* chore(circular-progress): remove xl size

* chore: undo

* chore(deps): bump RA versions (#5310)

* chore(deps): ra version bump

* chore(changeset): add changeset

* fix(scripts): incorrect docs path

---------

Co-authored-by: Junior Garcia <[email protected]>

* chore(docs): update meta data (#5311)

* docs(layout.tsx): added text-foreground (#5316)

* feat(tabs): add click handling for tab items in tests and implementation (#3917)

Co-authored-by: WK Wong <[email protected]>

* fix issues in tabs examples (#2405)

Co-authored-by: WK Wong <[email protected]>

* chore(docs): add missing onValueChange in CheckboxGroup (#5332)

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

Co-authored-by: Junior Garcia <[email protected]>

* chore: remove pre.json

---------

Co-authored-by: Junior Garcia <[email protected]>
Co-authored-by: Vishv Salvi <[email protected]>
Co-authored-by: KumJungMin <[email protected]>
Co-authored-by: liaoyinglong <[email protected]>
Co-authored-by: zhengjitf <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* chore(pre-release): enter pre-release mode

* chore: update changesets

* chore: remove changesets

* chore: add changeset

* chore: update `@heroui/react` pre version

* fix(deps): add missing `@heroui/use-aria-overlay` import

* fix: lock file (#5351)

* ci(changesets): 📦 version packages (beta) (#5348)

* ci(changesets): version packages (beta)

* Merge branch 'beta/release-next' into changeset-release/beta/release-next

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: WK Wong <[email protected]>

* chore: sync 2.8.0 to beta (#5388)

* chore: remove outdated changeset

* chore(pre-release): enter pre-release mode

* chore(deps): bump RA versions (beta) (#5392)

* chore(deps): bump RA versions

* chore: add changeset

* ci(changesets): version packages (beta) (#5393)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* refactor: remove RA dependencies (overaly & utils) (#5398)

* refactor(system): remove `@react-aria/utils` package

* refactor(system): remove `@react-aria/overlays` package

* ci(changesets): version packages (beta) (#5399)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* refactor: RA optimization (#5401)

* refactor(shared-utils): add common functions from `@react-aria/utils`

* feat(system): add shouldClientNavigate & useRouter

* refactor(deps): remove `@react-aria/utils`

* feat(shared-utils): include common functions from RA

* refactor: import functions from `@heroui/shared-utils` instead

* chore(deps): pnpm-lock.yaml

* chore: add changeset

* chore(shared-utils): update directory

* fix(shared-utils): add use client directive

* feat: add `@heroui/use-viewport-size`

* feat: add `@heroui/use-form-reset`

* feat(use-resize): add hasResizeObserver & RefObject

* feat(form): add useObjectRef

* chore: update import

* chore(deps): update dependencies

* refactor(shared-utils): only keep utils

* chore(deps): pnpm-lock.yaml

* chore(changeset): add changeset

* ci(changesets): version packages (beta) (#5406)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* fix: transitions (#5409)

* chore(changeset): add changeset

* fix: outline style (#5421)

* fix: outline style

* chore(changeset): add changeset

---------

Co-authored-by: WK Wong <[email protected]>

* fix(toast): Renaming the loadingIcon to loadingComponent (#4919)

* fix: toast should be above the modal

* fix: renaming the loadingIcon to loadingComponent

* chore: adding changeset

* chore: fixing conflicts

* chore: adding the region props

* fix: adding Marcus' suggestions

* fix: marcus' suggestions

* Revert all commits except 4c6bf32

* chore(toast): bump `@heroui/theme` in peerDependencies

* chore: nits

* chore: applying marcus' suggestions

* chore(toast): update story

---------

Co-authored-by: WK Wong <[email protected]>

* chore: use beta version

* chore: delete pre.json

* chore(pre-release): enter pre-release mode

* chore(changeset): trigger release

* chore(changeset): trigger release

* chore: keep previous changesets

* ci(changesets): version packages (beta) (#5429)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* fix(table): header and isStriped missing radius (#5062)

* fix(table): tableheader and isStriped missing radius

* chore: add changeset

* fix: fix missing radius styles

* chore(changeset): update message

* fix(theme): reorder radius

---------

Co-authored-by: WK Wong <[email protected]>

* fix(slider): prevent NaN error for equal min / max values (#5044)

* fix(slider): prevent NaN error for equal min/max values

* fix: restore isdisabled code

* fix(slider): perf prevent NaN error for equal min max values

* refactor: slider code

* fix(slider): prevent NaN error for equal min max values & add test

* fix(slider): perf prevent NaN error for equal min max values

* fix: remove redundant code

* chore: add changeset

* Revert "chore: add changeset"

This reverts commit f31de4a.

* chore(slider): add missing warn

* refactor(slider): remove unnecessary line

---------

Co-authored-by: WK Wong <[email protected]>

* fix: double fetch img src (#5417)

* fix(image): double fetch when using custom image component

* fix(avatar): avoid passing disableAnimation to dom & double fetch source

* chore(changeset): include avatar

* fix(autocomplete): empty button when selectorIcon is null (#5427)

* fix(toast): Toast items close in reverse order (#5405)

* fix(toast): correct closing order to implement proper FIFO behavior

* chore(changeset): add changeset

* fix(changeset): update issue number

* chore(toast): use `!==` instead

* feat(toast): apply exit animation to auto-close timeout

---------

Co-authored-by: WK Wong <[email protected]>

* fix(table): remove removeWrapper on virtualized table (#5428)

* fix(table): remove `removeWrapper` for virtualized table

* chore(docs): update description for removeWrapper

* chore(changeset): add changeset

* fix(toast): fixed close button hover position (#5245)

* fix(toast): fixed close button hover position

* Update soft-spoons-march.md

* Update toast.ts

* chore(theme): prettier

* Using "placement" to apply the top and bottom extension

* fix(toast): modified hover for expanded region

* update dependancy array

* lint fix

* Merge branch 'canary' into pr/5245

* chore(theme): remove line breaks

* chore(changeset): add missing package

* static extension size

* fix(toast): static extension fix

---------

Co-authored-by: WK Wong <[email protected]>

* feat(table): support custom sort icon (#5243)

* feat(shared-icons): add SortIcon

* feat(table): add CustomSortIcon story

* feat(table): support custom sort icon

* fix(table): handle functional sortIcon

* chore(changeset): add changeset

* chore(table): update type

* feat(docs): add sortIcon to table

* fix(docs): broken object

* chore(shared-icons): lint

* feat(docs): add example for sort icon

* chore: bump pnpm & node version (#5442)

* refactor: bump pnpm & node version

* chore(deps): bump `@types/node`

* fix(calendar): improve month and year picker selection for different zoom levels (#5151)

* fix(calendar): improve month and year picker selection for different zoom levels

* fix(calendar): improve month and year picker selection for different zoom levels

* fix(calendar): prevent stale values while scrolling both year and month pickers simultaneously

* docs: replace invalid yarn command (#5422)

* chore: remove ph banner (#5437)

* chore(changeset): update changeset message

* chore: add line breaks

---------

Co-authored-by: Nicolas Cappabianca <[email protected]>
Co-authored-by: WK <[email protected]>

* feat(select): adding isClearable to select (#4785)

* feat(select): adding isClearable to select

* chore(select): add changeset

* test(select): add tests for isClearable

* chore(select): add theme package patch, improve the testcase, rename nextui package to heroui

* fix(select): fixing alignment for clear button for different cases

* Merge branch 'canary' into pr/4785

* Merge branch 'canary' into pr/4785

* fix(select): remove component level styling

* fix(select): fix the alignment and focus behaviour

* fix(select): shift clear buttojn close to trigger

* fix(select): fix alignment for different variants

* feat(select): add data-has-end-content

* fix(theme): revise select styles with clear button and end content

* feat(docs): add end content

---------

Co-authored-by: WK Wong <[email protected]>

* fix(select): use span instead as trigger is button

* fix(docs): add ToastProvider for blog post

* ci(changesets): version packages (beta) (#5430)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* fix(select): clear button test cases

* fix(modal): draggable modal, scrollable on mobile (#5444)

Co-authored-by: Vishv Salvi <[email protected]>

* chore: trigger release

* ci(changesets): version packages (beta) (#5445)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* fix(theme): table header sorting icon transition (#5449)

* fix: table header sorcting icon transition

* chore(changeset): add changeset

---------

Co-authored-by: WK Wong <[email protected]>

* fix(table): allow text selection with cursor in table cells (#5454)

* fix(table): allow text selection with cursor in table cells

* chore(changeset): add changeset

---------

Co-authored-by: WK Wong <[email protected]>

* ci(changesets): version packages (beta) (#5450)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* chore: add back RA deps (#5466)

* chore(deps): bump testing-library & jest versions (#5468)

* refactor: revise test cases

* chore(deps): bump testing-library & jest versions

* ci(changesets): version packages (beta) (#5467)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* refactor(autocomplete): test cases

* fix(use-theme): incorrect target theme

* ci(changesets): version packages (beta) (#5470)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* fix(use-theme): remove all theme values and add the new one

* ci(changesets): version packages (beta) (#5472)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* docs: 2.8.0 (#5443)

* chore(docs): update routes.json

* chore(docs): bump versions

* chore(docs): initial draft

* chore(docs): add examples

* chore(Docs): update credits and community

* chore(docs): update date & what's next

* chore(docs): update meta data

* chore(docs): add update tags

* chore(docs): add tableSortIcon example

* chore(docs): revise sidebar width

* chore(docs): remove package size optimization

* chore(docs): update meta

* ci(changesets): exit pre-release mode

* chore: update package versions

* chore(changeset): remove unrelated changeset

* chore(deps): remove unused autoprefixer

* chore(docs): update tailwind v4 content

* chore(docs): update template doc content

* chore(docs): update formatting

* chore(toast): export getToastQueue (#5476)

* chore(docs): add hydration issue handling to page router example (#5474)

* docs(dark-mode): add hydration handling to page router example

* chore(docs): format

---------

Co-authored-by: WK Wong <[email protected]>

* chore(deps): bump tw4 versions

* fix: handle files with paths containing empty space (#5478)

* chore(docs): revise wordings in 2.8.0 blog

* feat(slider): add getTooltipValue prop for custom tooltip value (#5384)

* feat(slider): add getTooltipValue prop for custom tooltip value

* feat(slider): fix coderabbit highlights

* feat(slider): fixed wingkwong highlights

* feat(slider): added custom-tooltip.raw.tsx?raw

* feat(slider): improved custom-tooltip.raw.tsx

* chore: undo README.md

* chore(slider): use normal $ sign

* chore(changeset): add changeset

* chore(docs): formatting

---------

Co-authored-by: andartadev1 <[email protected]>
Co-authored-by: WK Wong <[email protected]>

* chore(docs): revise custom tooltip example

* chore(docs): add custom tooltip example for slider

* chore(deps): bump contentlayer2 & next-contentlayer2

* chore(docs): fix formatting

* chore(docs): update metadata

* chore: add v2.8.0 image

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: winches <[email protected]>
Co-authored-by: Junior Garcia <[email protected]>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Charlotte21110 <[email protected]>
Co-authored-by: Feiyu Zheng <[email protected]>
Co-authored-by: Dmytro Klymenko <[email protected]>
Co-authored-by: Abhinav Agarwal <[email protected]>
Co-authored-by: Vishv Salvi <[email protected]>
Co-authored-by: KumJungMin <[email protected]>
Co-authored-by: liaoyinglong <[email protected]>
Co-authored-by: zhengjitf <[email protected]>
Co-authored-by: Maharshi Alpesh <[email protected]>
Co-authored-by: Yohan <[email protected]>
Co-authored-by: Aditya Ray <[email protected]>
Co-authored-by: Aakash Patel <[email protected]>
Co-authored-by: Nicolas Cappabianca <[email protected]>
Co-authored-by: Vishv Salvi <[email protected]>
Co-authored-by: Priyadharshini S <[email protected]>
Co-authored-by: arar <[email protected]>
Co-authored-by: andartadev1 <[email protected]>

* chore: consolidated version part 2

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

Co-authored-by: Junior Garcia <[email protected]>

* fix(theme): use `outline-hidden` which is equivalent to `outline-none`  (#5486)

* fix: use `outline-hidden` which is equivalent to `outline-none` in v3

* chore: add changeset

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

Co-authored-by: Junior Garcia <[email protected]>

* fix(number-input): label class being incorrectly mixed into the description (#5484)

* fix(number-input): label class being incorrectly mixed into the description

* chore: add issue number

---------

Co-authored-by: wulimaomao <[email protected]>
Co-authored-by: WK Wong <[email protected]>

* fix(docs): broken link in custom variants page (#5522)

* refactor(alert): vertically center alert icon / endContent (#5512)

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

* chore(deps): sync with RA release

* fix(tabs): duplicate onClick

* chore(docs): update tanstack content

* chore(docs): set updated flag

* chore(docs): update meta

* fix(use-aria-overlay): sync with RA's overlay logic (#5529)

* fix(use-aria-overlay): sync with RA logic

* fix(use-aria-overlay): add onHide on onInteractOutsideStart

* chore(changeset): add changeset

* fix(popover): arrow glitch in popover content (#5504)

* fix(popover): make PopoverContent children prop optional to fix TS error

* chore(changeset): created changeset

* fix(popover): do not show content when children is null / undefined

* fix(popover): add test case

* chore(changeset): update changeset message

---------

Co-authored-by: i_nicck <[email protected]>
Co-authored-by: WK Wong <[email protected]>

* fix(avatar): broken fallbacks (#5519)

* fix(toast): toastRegion leftover in DOM (#5508)

* fix(theme): focus ring styles (#5531)

* chore(deps): bump tailwind-variants version (#5538)

* chore(deps): bump tailwind-variants version

* chore(deps): add tailwind-merge

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

Co-authored-by: Junior Garcia <[email protected]>

* chore(docs): remove unused or deprecated info in autocomplete (#5581)

* fix(docs): default value of radius in image (#5580)

* fix(theme): clear button disabled inputs (#5607)

* fix(input): disable pointer events on clear button when inactive

* chore(changeset): add changeset

* chore(docs): update TanStack routing (#5629)

* fix(theme): stepperButton when labelPlacement is outside in NumberInput (#5628)

* fix(theme): set stepperButton height when labelPlacement=outside in NumberInput component

* chore(changeset): add issue number

---------

Co-authored-by: WK <[email protected]>

* refactor: use handleLinkClick from RA's utils (#5632)

* chore(deps): bump tailwindcss version (#5636)

* chore(deps): bump tailwind-variants version (#5635)

* chore: bump tailwind-variants version

* chore(deps): bump tailwind-variants to 3.1.0

* chore(deps): rollback TW to 4.1.11 (#5644)

* chore: rollback tailwindcss to 4.1.11

* chore(deps): bump RA versions (aug 2025) (#5640)

* chore(deps): bump RA versions (aug 2025)

* chore: add changeset

* chore(deps): update versions

* chore(deps): bump @internationalized/date

* chore(deps): bump @react-types

* fix(popover): missing triggerAnchorPoint return

* fix: triggerAnchorPoint

* chore: sync with canary

* fix(theme): dropdown-item has no ellipsis when it has a width and desc  (#5638)

* fix(theme): dropdown-item where the text was too long without an ellipsis when there was a desc

* chore(changeset): update message

---------

Co-authored-by: WK <[email protected]>

* fix(toast): show animation when closing all modals (#5637)

* fix(toast): show animation when closing all modals

* chore(changeset): add issue number

---------

Co-authored-by: WK <[email protected]>

* refactor(toast): animation & toast region (#5647)

* fix(toast): unexpected gap after closing a toast

* refactor(toast): animation

* fix(toast): close toast when disableAnimation is set to true

* refactor: coderabbit comment

* fix(use-aria-overlay): prevent modal/drawer from closing on press instead (#5624)

* fix(modal/drawer): prevent modal/drawer from closing on press instead

* refactor(useAriaOverlay): improve getOverlayTypeFromRef with ARIA checks and hoist

* refactor(useAriaOverlay): add alertdialog & fallback to modal when aria-modal is missing

* Merge branch 'canary' into pr/5624

* chore(changeset): add issue number

* refactor(use-aria-overlay): getOverlayInteractionType

---------

Co-authored-by: WK Wong <[email protected]>

* refactor(ui): standardize copy code feedback across all tabs (#5584)

* fix(select): use space as aria-labelledby separator (#5587)

* fix(select): use space as aria-labelledby separator

* chore(chageset): add changeset (#5586)

* chore(changeset): add issue number and remove select

---------

Co-authored-by: WK Wong <[email protected]>

* fix(tabs): unresponsive modal after switching tabs inside (#5582)

* fix(tabs): unresponsive modal after switching tabs inside

* chore(deps): remove self

* refactor: improve type safety (#5539)

* refactor(popover): consolidate imports from aria-utils module

* refactor(popover): remove unnecessary type assertion for child ref

* refactor: remove unnecessary type assertions and improve type safety

* chore(changeset): add changeset

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

Co-authored-by: Junior Garcia <[email protected]>

---------

Co-authored-by: Vishv Salvi <[email protected]>
Co-authored-by: Junior Garcia <[email protected]>
Co-authored-by: KumJungMin <[email protected]>
Co-authored-by: liaoyinglong <[email protected]>
Co-authored-by: zhengjitf <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Anuj Kuralkar <[email protected]>
Co-authored-by: Poli Sour <[email protected]>
Co-authored-by: Nicolas Cappabianca <[email protected]>
Co-authored-by: winches <[email protected]>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Charlotte21110 <[email protected]>
Co-authored-by: Feiyu Zheng <[email protected]>
Co-authored-by: Dmytro Klymenko <[email protected]>
Co-authored-by: Abhinav Agarwal <[email protected]>
Co-authored-by: Maharshi Alpesh <[email protected]>
Co-authored-by: Yohan <[email protected]>
Co-authored-by: Aditya Ray <[email protected]>
Co-authored-by: Aakash Patel <[email protected]>
Co-authored-by: Vishv Salvi <[email protected]>
Co-authored-by: Priyadharshini S <[email protected]>
Co-authored-by: arar <[email protected]>
Co-authored-by: andartadev1 <[email protected]>
Co-authored-by: wulimao49 <[email protected]>
Co-authored-by: wulimaomao <[email protected]>
Co-authored-by: Shagun Sharma <[email protected]>
Co-authored-by: i_nicck <[email protected]>
Co-authored-by: luis angel lopez huari <[email protected]>
Co-authored-by: doki- <[email protected]>
Co-authored-by: Anshuman Singh Rathore <[email protected]>
Co-authored-by: Igor Moraes <[email protected]>
Co-authored-by: Dmytro Klymenko <[email protected]>
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] - Toast closeToast and closeAll closes toast without animation

3 participants