4384 Commits

Author SHA1 Message Date
WK 1d2164e7b9 fix(docs): add accessible names to icon-only buttons in examples (#6806) 2026-08-22 14:38:23 +08:00
Junior Garcia 7b33a66ab6 fix(docs): redirect /agents paths to heroui.pro/agents (#6802)
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-08-19 11:57:29 -07:00
Wonseok Chang fafd6c069b docs(autocomplete): document Autocomplete.Value rendering in multiple mode (#6729)
* docs(autocomplete): document Autocomplete.Value rendering in multiple mode

In multiple selection mode a bare Autocomplete.Value clones each selected
item's ListBox.Item children into the trigger, joined with locale-aware
separators, and calls render function children with isSelected: false.
This was undocumented, so decorative item content (checkboxes, avatars,
indicators) unexpectedly duplicates into the trigger.

Add a warning callout with the recommended selectedText pattern to the
Multiple Select section, and document the previously missing selectedText
render prop in the RenderProps table (en + cn).

* docs(autocomplete): refine multiple-mode Value caveat and render props table

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>
2026-08-19 21:07:05 +08:00
WK Wong cabf40b30c fix(deps): parcel has an Origin Validation Error vulnerability
ref: https://github.com/heroui-inc/heroui/security/dependabot/32
2026-08-14 17:52:19 +08:00
dependabot[bot] 3a125b5eba build(deps-dev): bump storybook from 10.1.10 to 10.2.10 (#6789)
* build(deps-dev): bump storybook from 10.1.10 to 10.2.10

Bumps [storybook](https://github.com/storybookjs/storybook/tree/HEAD/code/core) from 10.1.10 to 10.2.10.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v10.2.10/code/core)

---
updated-dependencies:
- dependency-name: storybook
  dependency-version: 10.2.10
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>

* build(storybook): align packages on 10.2.10

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-08-13 19:16:52 -07:00
dependabot[bot] ff86f96fae build(deps-dev): bump rollup from 4.54.0 to 4.59.0 (#6791)
Bumps [rollup](https://github.com/rollup/rollup) from 4.54.0 to 4.59.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.54.0...v4.59.0)

---
updated-dependencies:
- dependency-name: rollup
  dependency-version: 4.59.0
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-13 19:16:25 -07:00
dependabot[bot] c86ddf34be build(deps-dev): bump turbo from 2.7.2 to 2.9.14 (#6790)
Bumps [turbo](https://github.com/vercel/turborepo) from 2.7.2 to 2.9.14.
- [Release notes](https://github.com/vercel/turborepo/releases)
- [Changelog](https://github.com/vercel/turborepo/blob/main/RELEASE.md)
- [Commits](https://github.com/vercel/turborepo/compare/v2.7.2...v2.9.14)

---
updated-dependencies:
- dependency-name: turbo
  dependency-version: 2.9.14
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-13 19:05:22 -07:00
dependabot[bot] 6e938038bc build(deps-dev): bump @babel/core from 7.28.5 to 7.29.6 (#6788)
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.28.5 to 7.29.6.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.29.6/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-version: 7.29.6
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-13 18:47:28 -07:00
dependabot[bot] 3748fe0e3e build(deps-dev): bump postcss from 8.5.6 to 8.5.23 (#6783) 2026-08-13 18:41:16 -07:00
dependabot[bot] 3e0c33e403 build(deps-dev): bump tar from 7.5.7 to 7.5.21
Bumps [tar](https://github.com/isaacs/node-tar) from 7.5.7 to 7.5.21.
- [Release notes](https://github.com/isaacs/node-tar/releases)
- [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/isaacs/node-tar/compare/v7.5.7...v7.5.21)

---
updated-dependencies:
- dependency-name: tar
  dependency-version: 7.5.21
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-08-13 18:40:36 -07:00
dependabot[bot] af778ad59d build(deps-dev): bump vite from 7.3.0 to 7.3.5 (#6784) 2026-08-13 18:33:01 -07:00
Cursor Agent 1535d54c08 chore(docs): remove runtime tracing
Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>
2026-08-13 15:32:36 -07:00
Cursor Agent ed0f3a63c5 test(docs): trace production runtime verification
Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>
2026-08-13 15:32:36 -07:00
Cursor Agent 8bc427b7db fix(docs): allow optional API integrations at runtime
Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>
2026-08-13 15:32:36 -07:00
Cursor Agent 59e853d1e0 Revert "chore(docs): trace runtime environment failure"
This reverts commit 8392298fc861dc5944c80aabdf3d0cb40a64b8ba.
2026-08-13 15:32:36 -07:00
Cursor Agent f5f6c61766 Revert "chore(docs): keep runtime tracing server-safe"
This reverts commit 223f874e56ed29c76216ab503c637cb47a57eeaa.
2026-08-13 15:32:36 -07:00
Cursor Agent 5408417db5 chore(docs): keep runtime tracing server-safe
Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>
2026-08-13 15:32:36 -07:00
Cursor Agent 735c6c5bad chore(docs): trace runtime environment failure
Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>
2026-08-13 15:32:36 -07:00
Cursor Agent 2e65a8b5a9 fix(docs): align SEO metadata with page content
Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>
2026-08-13 15:32:36 -07:00
Cursor Agent 56f2278c25 Revert "chore(docs): instrument production mdx routing"
This reverts commit d13013e2c3c82ada5c9b0c022faa9034392953c1.
2026-08-13 15:32:36 -07:00
Cursor Agent 5acc980426 chore(docs): instrument production mdx routing
Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>
2026-08-13 15:32:36 -07:00
Cursor Agent 4938d39932 fix(docs): address GSC crawl and metadata issues
Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>
2026-08-13 15:32:36 -07:00
Cursor Agent d97c3978f5 fix(docs): resolve live SEO issues
Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>
2026-08-13 15:32:36 -07:00
Junior Garcia 766149284e fix(number-field): don't reserve stepper columns when buttons are absent (#6778) 2026-08-13 13:12:04 -07:00
Aman 683c8666bb docs(spinner): add animation speed demos (#6776)
* docs(spinner): demonstrate animation speed override in Global CSS example

* docs(spinner): document how to control animation speed with demos

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>
2026-08-12 16:40:00 +08:00
WK Wong 6dd2e1ded5 ci(release): fix previous tag detection 2026-08-07 23:53:41 +08:00
Junior 21b1e8e53f chore: release v3.2.4 v3.2.4 2026-08-07 10:20:04 -03:00
WK bb9c4b5582 V3.2.4 (#6758)
* fix(tabs): clamp ListContainer chevron scrolling to the scrollable range (#6749)

* chore(deps): bump react-aria dependencies (#6752)

* chore(deps): bump tailwind-variants to v3.3.1 (#6760)

* chore(docs): release note for 3.2.4

* test(react): behavioral testing infra (#6754)

* fix(link): expose data-slot on link root

* fix(react): put style export condition before default

* test(react): behavioral testing infra and suites

* chore(testing): own vitest-browser-react and clarify coverage gates

* chore: remove pinned version

* fix(autocomplete): prevent popover from clipping the last options (#6766)

* chore(docs): update release note

* fix(styles): prevent subpixel border overflow on badge (#6768)

* chore(docs): update release note

* fix(styles): allow backdrop click to dismiss modal with scroll outside (#6770)

* chore(docs): update release note

* fix(tooltip): restore exit animation when swapping between tooltips (#6772)

* chore(docs): update release note

---------

Co-authored-by: Tyler <56234978+runnerboy22@users.noreply.github.com>
Co-authored-by: Tianen Pang <32772271+tianenpang@users.noreply.github.com>
2026-08-07 06:19:12 -07:00
WK 82e8db281f chore(deps): bump next to v16.3.0 (#6765) 2026-08-04 13:29:27 +08:00
WK ce973fe7fc fix(docs): avoid copy button overflow on mobile (#6755) 2026-08-02 13:51:33 +08:00
WK 5983d7a6f0 chore(docs): add native release note 1.0.8 (#6751)
* chore(docs): add native release note 1.0.8 (cn version)

* chore(docs): sync with english version
2026-08-01 13:26:35 +08:00
Volodymyr Serbulenko a3f8cd310e docs(native): add styling and theming blog post (#6745)
* docs(native): add styling blogpost

* docs(native): add styling blogpost image
2026-07-31 10:31:21 -07:00
Volodymyr Serbulenko 5aab402a6e docs(native): add 1.0.8 release note (#6747) 2026-07-31 10:31:04 -07:00
Junior b5f7ab7281 chore: release v3.2.3 v3.2.3 2026-07-31 10:47:18 -03:00
WK 014eeba28d V3.2.3 (#6708)
* fix(styles): center table sortable column indicator icon (#6705)

* docs(web): polish component docs (#6690)

* docs(web): polish english component docs

* docs(web): polish custom style demos

* docs(web): polish chinese component docs

* docs(web): update release demos

* docs(web): polish tabs component docs

* docs(web): polish chinese component docs

* docs(web): polish chinese component docs

* docs(web): prevent href scroll jumps in card and link demos

* docs(web): sync status icons

* fix(docs): preserve locale in showcase and component doc links

* docs(web): align showcase terminology of chinese version

* fix(styles): prevent InputOTP slots from overflowing narrow containers (#6706)

* fix(docs): use theme tokens in styling examples

* fix(spinner): move accessible name from hidden svg to root status role (#6721)

The inner svg carried aria-hidden, aria-label, and role="presentation"
together: the label was dead code on a hidden element (and
aria-prohibited-attr per axe), and the spinner as a whole was absent
from the accessibility tree. Name the root span as a status live region
instead, keeping both attributes overridable via props.

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

* fix(styles): restore focus outline gap for accent buttons (#6724)

* fix(styles): adopt logical CSS properties for RTL support (#6699)

* fix(styles): adopt logical CSS properties for RTL support

* fix(docs): adopt logical CSS properties for RTL support

* fix(react): adopt logical CSS properties for RTL support

* fix(storybook): adopt logical CSS properties for RTL support

* fix(docs): handle rtl for icons

* fix(storybook): handle rtl for icons

* fix(styles): handle rtl for icons

* fix(pagination): add dir="auto"

* fix(scroll-shadow): handle RTL

* fix(tabs): handle RTL

* fix(styles): handle RTL

* fix(styles): handle search icon in RTL

* chore(styles): avoid mirroring search icon

* fix(styles): handle year picker trigger indicator in RTL

* refactor(scroll-shadow): avoid getComputedStyle on every scroll

* feat(combo-box): support multiple selection (#6714)

* feat(combo-box): support multiple selection

* feat(combo-box): export ComboBoxValueRenderProps and thread selection mode generic

* chore(docs): update combo-box anatomy

* chore(docs): mark new in combo-box docs

* chore(react): move calendar and range calendar to completed

* chore(deps): update node to >= 22.x

* Merge branch 'v3' into v3.2.3

* chore(deps): bump tailwind-variants to v3.3.0 (#6733)

* fix(scroll-shadow): tolerate fractional scroll position in end detection (#6710)

* fix: react scan (#6727)

* fix: tabs list collection compatibility

* fix(react): ts expect error

* fix(tag-group): rac collection builder compatibility

* fix(select): rac collection builder compatibility

* fix(text): rac collection builder compatibility

* fix(combo-box): rac collection builder compatibility

* fix(autocomplete): rac collection builder compatibility

* fix(autocomplete): tab sequence

* feat(storybook): support react-scan in preview canvas

* chore(root): remove base-url from ts config

* fix(root): typecheck

* fix(storybook): react scan in production

* fix(autocomplete): indicator focus state

* fix(storybook): react scan in preview canvas

* chore: clean up lockfile

* docs(release): v3.2.3 release note (#6739)

* fix(icons): remove aria-label from aria-hidden decorative icons (#6741)

Every icon in the shared set carries `aria-hidden="true"` and
`role="presentation"` together with an `aria-label="... icon"`.

Because `aria-hidden="true"` removes the element from the accessibility
tree, that `aria-label` can never be announced. It is dead weight that
trips accessibility linters and audits.

Drop the `aria-label` from all 15 decorative icons and keep them hidden.
Consumers that need a name still get one from the wrapping control (e.g.
`<Button isIconOnly aria-label="...">`), and `{...props}` is still spread
last so an explicit label can be supplied per usage.

Refs #6718

* chore(docs): update release note

* fix(react): move react-aria packages to peerDependencies (#6744)

* chore(docs): update release note

---------

Co-authored-by: Stybo <84643947+Stybo@users.noreply.github.com>
Co-authored-by: Tianen Pang <32772271+tianenpang@users.noreply.github.com>
Co-authored-by: daveycodez <daveycodez@gmail.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Ted Kim <k_2684@naver.com>
Co-authored-by: Saidheerajgollu <158853598+Saidheerajgollu@users.noreply.github.com>
2026-07-31 06:39:59 -07:00
Junior Garcia 6146a08a58 fix(docs): repair canonical URLs, sitemap coverage and robots.txt (#6735)
* fix(docs): canonicalize pages to the URLs that are actually served

Every docs page declared `https://www.heroui.com/docs/<slug>` as its
canonical, but that URL answers with two permanent redirects: `www` ->
apex, then `/docs/...` -> `/<lang>/docs/...`. Google therefore dropped
the crawled page in favour of a redirect, and both `/en` and `/cn`
variants pointed at the same English URL.

The root layout also declared the home page as canonical, which every
page without its own `alternates` inherited, self-excluding `/cn`,
`/<lang>/themes` and `/<lang>/showcase` from the index.

Canonicals now use the served locale-prefixed URL on the apex domain and
carry an hreflang cluster (en / zh-Hans / x-default). Untranslated blog
posts point at the default locale instead of self-canonicalizing a
duplicate.

* fix(docs): build the sitemap from the docs source instead of the prerender manifest

`next-sitemap` derives its URL list from Next's prerender manifest, and
every docs, blog and themes route is server-rendered on demand. The
published sitemap therefore listed 19 URLs — no documentation pages at
all — while advertising `llms-*.txt`, `manifest.webmanifest` and
`rss.xml` as indexable pages.

The App Router `sitemap.ts` enumerates the Fumadocs loader, the blog
collection and the showcase registry instead, producing 501 canonical
URLs with hreflang alternates, all of which answer 200 without a
redirect.

* fix(docs): serve robots.txt from the app and keep non-production hosts out of the index

The committed `public/robots.txt` was the artefact of an earlier
`next-sitemap` run, so its `Sitemap` and `Host` lines were pinned to
whichever host generated them — canary still advertised
`www.heroui.com`. Serving it from the app derives the sitemap URL from
the deployed host and keeps the Content Signals directive that
`MetadataRoute.Robots` cannot express.

Every route stays allowed for every crawler; nothing indexable is
blocked. Preview and development deployments opt out through
`X-Robots-Tag` instead, which is host-scoped and cannot de-index
production the way a stray `Disallow` would.

* fix(docs): exclude untranslated blog fallbacks from sitemap

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: WK Wong <wingkwong.code@gmail.com>
2026-07-29 18:10:37 +08:00
Volodymyr Serbulenko f341db2766 docs(native): add v1.0.7 release notes and background layer API docs (#6737)
* docs(native): add 1.0.7 release note

* chore(docs): add cn version for v1.0.7 release

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>
2026-07-29 15:48:20 +08:00
WK bad5a1a40e feat(docs): copy prompt (#6736)
* feat(docs): copy prompt

* refactor(docs): consolidate copy-prompt setup into a shared builder

* feat(docs): add icons to copy prompt button

* chore(docs): update copyPrompt.copy
2026-07-29 14:24:38 +08:00
WK 270a475bf0 refactor(docs): add cursor to theme toggle (#6734) 2026-07-28 14:04:11 +08:00
WK e14820abaf chore(docs): refresh agent guidance files (#6731)
* docs(agents): update AGENTS.md component list & postinstall note

* docs(agents): update CLAUDE.md tech stack versions, structure, and component list
2026-07-26 17:02:12 +08:00
Volodymyr Serbulenko 618ee98ae7 docs(native): add v1.0.6 release notes (#6726)
* docs(native): add 1.0.6 release note

* docs(native): fix video card layout issue

* chore(docs): add cn version

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>
2026-07-22 20:01:51 +08:00
WK 6fa6b81f76 fix(combo-box): custom indicator demo (#6728) 2026-07-22 10:57:58 +08:00
WK 4af1230b97 docs(avatar): document custom image composition with asChild (#6725) 2026-07-21 00:02:33 +08:00
daveycodez 79f2e89bea fix(docs): correct typos in accordion demo/docs and bgsurface class name (#6722)
Uncovered while porting the Accordion component:

- `bgsurface` → `bg-surface` (invalid class, renders as a no-op): the
  accordion custom-styles demo trigger (en + cn) and the text-field
  "custom styles" docs example (en + cn).
- "Connect you browser" → "Connect your browser" in the accordion
  custom-styles subtitle (en demo + en/cn docs).
- Trailing space before the closing quote in the first accordion
  custom-styles `content` string (en demo + en/cn docs).

Docs/content only — no runtime or API changes.
2026-07-19 00:09:32 +08:00
WK 0eea82f4b6 fix(docs): use theme tokens in styling examples (#6720)
* fix(docs): use theme tokens in styling examples

* fix(docs): use theme tokens in styling examples
2026-07-18 11:37:33 +08:00
WK 4b01ddd0a3 docs(spinner): correct default color to "accent" in API reference (#6717) 2026-07-17 17:30:58 +08:00
WK 60edd8ed75 docs(combo-box): remove unsupported props from API reference (#6712) 2026-07-15 21:37:18 +08:00
WK f4be5bf3db fix(docs): frameworks tabs (#6703) 2026-07-10 23:37:34 +08:00
Junior 79539b7bfc chore: release v3.2.2
Release / release (push) Has been cancelled
v3.2.2
2026-07-06 17:17:27 -03:00
WK be65af7396 V3.2.2 (#6660)
* chore(deps): react aria upgrade (v1.19.0) (#6658)

* fix(styles): prevent visually hidden inputs from causing overflow scroll (#6657)

* fix(react): set type="button" on clear/close buttons to avoid form submission (#6656)

* fix(autocomplete): prevent clear button from submitting parent form

* fix(close-button): prevent clear button from submitting parent form

* chore(docs): 3.2.2 release note

* fix(styles): prevent icon or text shift (#6661)

* chore(docs): update release note

* fix(styles): set chip width to w-fit

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix(styles): prevent excess width in date-range-picker popover (#6665)

* fix(styles): prevent excess width in date-range-picker popover

* fix(styles): prevent excess width in date-picker popover

* chore(docs): update release notes

* fix(styles): correct right padding of virtualized list items (#6672)

* chore(docs): update release note

* fix(toast): catch ViewTransition `ready` rejection in toast queue (#6674)

* chore(docs): update release note

* refactor(react): migrate to React 19 APIs and fix array-index keys (#6688)

* refactor(react): replace useContext import & calls with use()

* refactor(react): ref as a normal prop

* refactor(react): stable key swaps

* fix(deps): declare react-aria & react-aria-components to caret ranges to dedupe with Pro (#6689)

* chore(docs): update release note

* feat(tabs): add tabs scroller to handle overflow (#6633) (#6696)

* feat(tabs): add tabs scroller to handle overflow

* feat(docs): add overflow with example

* feat(tabs): add overflow story

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

* chore(docs): document tabs overflow in v3.2.2 release notes

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix(docs): register tabs-overflow demo with loader pattern

Co-authored-by: Cursor <cursoragent@cursor.com>

* chore(docs): promote v3.2.2 on home release banner

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Junior <jrgarciadev@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-06 13:15:50 -07:00