2 Commits

Author SHA1 Message Date
Diego Gonzalez e1a1196ca9 refactor(toggles): explicit composition for radio, checkbox & switch (#6614)
* refactor(toggles): explicit composition for radio, checkbox & switch

Migrate Radio, Checkbox and Switch from child-partitioning to an explicit,
React Server Components-safe compound composition.

- Add `<X.Button>` (React Aria *Button) as the clickable label wrapping the
  control + `Label`; remove the child-type inspection that broke under RSC.
- Drop `<X.Content>`; `Description`/`FieldError` become siblings of `X.Button`
  and are exposed via `aria-describedby` for a cleaner accessible name.
- Keep a context-based control-only fallback for Checkbox/Switch so label-less
  usages (e.g. table selection) are unchanged.
- Fix Label context bleed inside toggle buttons; retire
  partition-toggle-field-children.
- Update styles, stories, EN/CN demos, component docs and migration guides.

BREAKING CHANGE: Radio, Checkbox and Switch no longer expose `*.Content`.
Wrap the control and `Label` in `*.Button`, and place `Description`/`FieldError`
as siblings of `*.Button`. Control-only checkboxes and switches are unaffected.

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

* docs(releases): add v3.2.0 release notes

Calendar week/day views + multiple selection demos, React Aria 1.18 notes,
rolled-in v3.1.1 patch fixes, and the Radio/Checkbox/Switch *.Content -> *.Button
breaking-change migration guide (EN + CN). Updates releases index, meta, home
release badge, and dictionaries.

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

* feat(docs): rotating release badges on home hero

Replace the single hardcoded release badge with a curated, per-locale
releaseBadges list rendered by a Motion-powered carousel: popLayout spring
swap, auto-advancing accent progress segments (transform-only scaleX with a
soft gradient fade), pause on hover/focus, reduced-motion fallback, and a
plain-badge fallback for a single entry.

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

* docs(releases): point v3.2.0 contributors to PR #6616

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

* docs(releases): fix v3.2.0 release PR link to #6616

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

* fix(docs): remove release badge progress indicators

Drop the carousel segment bars under the home hero release badge.

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

* docs(releases): add tooltip delay CSS vars to v3.2.0 notes

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

* refactor(toggles): rename Button to Content and simplify label composition (#6618)

Rename Checkbox/Radio/Switch.Button to .Content, remove toggle-specific
Label auto-wiring, and update docs, demos, styles, and v3.2.0 release notes.

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

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Junior <jrgarciadev@gmail.com>
2026-06-06 09:49:28 -07:00
Junior Garcia ebb2517bf6 feat(docs): SEO improvements, blog content rebalancing, and AI discoverability (#6536)
* docs: add 12 copy-edited blog posts for SEO and AI discoverability

De-templated repetitive boilerplate across all posts, rewrote tutorial
openings with pain-point hooks, and made "Why HeroUI" closing sections
contextually unique per article. Removed 4 duplicate/unpolished posts
(two dashboard duplicates, e-commerce, landing page, SaaS app tutorials)
to keep the initial launch set focused and high-quality.

Made-with: Cursor

* feat(docs): add SEO, blog, JSON-LD, and AI discoverability improvements

Adds blog pages, JSON-LD structured data, enhanced metadata, sitemap
normalization, component/example counts, why-heroui page, AI prompts,
and SEO-optimized README.

Made-with: Cursor

* feat(docs): blog content rebalancing, SEO improvements, and blog UI polish

- Rebalance all 7 comparison/listicle blog posts: remove self-undermining
  trade-offs, star count comparisons, and competitor endorsements; replace
  with HeroUI-forward conclusions and brief "when X might work" sections
- Optimize blog post descriptions using Ahrefs keyword data
- Add BreadcrumbList JSON-LD to blog post pages
- Add OG images to Chakra and Mantine comparison posts
- Extract PostCard into shared component with image support and onError fallback
- Redesign blog post header: Linear-inspired layout with title, hero image,
  author name + date below image, avatar on hover
- Add DocsImage support to blog posts with light/dark mode switching
- Add darkImage frontmatter field to blog data layer
- Fix mobile overflow on blog post pages
- Add hero images to "Why Choose HeroUI" and "12 Best" posts
- Enhance "Why Choose HeroUI" post: add YC backing, community metrics,
  "Ready in Two Steps" section, AGENTS.md docs, theme builder link
- Remove "Updated April 2026" from all posts
- Sort related posts by newest first
- Truncate card titles to 2 lines
- Fix Draft badge visibility on light backgrounds

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

* fix(docs): wrap BlogContent in Suspense boundary for useSearchParams

Next.js requires useSearchParams (used by nuqs) to be wrapped in a
Suspense boundary during static generation.

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

* docs(blog): publish 12 best react UI component libraries post

Remove draft state so the post is publicly visible.

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

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-17 13:16:50 -07:00