What's New
Release notes and changelog for all packages.0.0.15
Breaking Changes
- New
xds upgradecodemods — This release ships codemods for the DatePicker→Input rename (rename-date-picker-to-input), Stackelement→as(rename-stack-element-to-as), ChatisStreaming→isStopShown(rename-isStreaming-to-isStopShown), imperativeref→handleRef(rename-imperative-ref-to-handleRef), the menu/selectorchildren→endContentmove (migrate-item-children-to-endcontent), and the selector function-children→renderOptionmove (migrate-selector-children-to-render-option). The bare-name migration (drop-xds-prefix-imports,drop-xds-meta-prefix) and the thememigrate-theme-selectors-to-data-attrscodemod ship as optional, run them explicitly. (#2879, #2957)
Upgrade
bashnpx xds upgrade --apply
New Features
astryxbinary — The CLI is now also available asastryx(same launcher asxds), part of the un-prefix migration. Component discovery, the doc gate, and CI checks are prefix-agnostic — bothXDS{Name}.tsxand bare{Name}.tsxsource files are recognized. (#2867, #2878)xds doctor— New health-check command for diagnosing project/setup issues. (#2565)- Unified search —
xds searchsearches across components, hooks, docs, and templates in one query. (#2564) - Capability manifest — Full machine-readable capability manifest for agent discovery, plus stable machine-readable error codes on every error. (#2562, #2563)
@xds/cli/apihook export — Thehookis exposed via@xds/cli/apiwith types and parity coverage. (#2558)- CLI exit-code policy — Every user-visible error now exits with code 1 in both human and
--jsonmodes (previously several command-layer errors printed a message but exited 0, invisible to CI scripts and AI agents).xds bogus-cmd,xds theme bogus-subcommand, the barethemegroup with an unknown subcommand, and "command not found"/"did you mean…" paths all exit 1. Help, version, and bare-list invocations still exit 0. Introduceslib/cli-error.mjsas the canonical exit-code helper. - Migration guide — Added an explicit guide for moving existing Tailwind, shadcn, and Radix applications to XDS incrementally.
- Data-attribute selector docs — Documented the data-attribute selector surface in CLI docs alongside the core dual-emit change.
Fixes
--jsonon Commander short-circuits —--jsonnow honored on parse errors and--help. A new shim wiresexitOverride()and a JSON-awareconfigureOutputonto every command and patchesoutputHelpto emit a{apiVersion, type:'help', data}envelope under--json. Parse errors produce{apiVersion, error}on stdout with exit 1; unknown subcommands now error instead of silently emitting help with exit 0;--detailis choice-validated. Non---jsoninvocations are unchanged.--jsoncontract enforcement — Commands that don't support--jsonreject the flag in apreActionhook before running side effects, soxds init --jsonno longer creates files and then errors, leaving partial state behind.--jsonenvelope documented — Success responses are{ type, data }; error responses are{ error, suggestions? }. The--jsonhelp text describes both.xds --version --json— Emits{ type: 'version', data: { version } }instead of plain text.xds --json(no subcommand) — Emits{ type: 'help', data: { commands, jsonSupported, ... } }instead of human help text.xds upgrade --json— "Already up to date" and "no codemods in version range" paths emit structured{ type: 'upgrade.status', ... }envelopes. The codemod runner is silent under--jsonso prompts and progress lines no longer corrupt stdout.xds discover --json— Includesmeta: { configured: false }when no packages are configured, distinguishing "configured but empty" from "not configured".xds gap-report --json— Returns a structured error instead of starting an interactive prompt when required flags are missing; the "gh CLI missing" path also emits a JSON error.xds theme --json— Thethemeparent command (without a subcommand) rejects--jsoncleanly;theme build --jsoncontinues to work.- Theme CSS prose regression —
xds theme buildnow uses a single CSS generation path (@xds/core's generator) and treats a failed@xds/core/themeimport as a hard build error instead of a silent fallback, fixing the docsite Markdown typography regression after the XDS-prefix migration. (#2964)
Contributors
Thanks to everyone who contributed to this release:
- @cixzhang
- @czarandy
- @ejhammond
- @ernestt
- @imdreamrunner
- @josephfarina
- @kentonquatman
- @rubyycheung
- @thedjpetersen
0.0.14
Codemods
New Features
- New component showcases — XDSAvatarGroup, XDSInputGroup, XDSStepper, XDSButtonGroup, XDSContextMenu, XDSFileInput, XDSDateRangePicker, XDSDateTimePicker, XDSBlockquote
- Hook documentation system —
xds hooksCLI command for hook docs (#1849) - Playground defaults — Added to 19 more components (#2047)
- Theme/MediaTheme/SyntaxTheme showcases — Utility showcase support (#2040, #2028)
- Slot elements — Wired through playground UI for ReactNode props (#2012, #2005)
exampleForfield — Added to all block templates (#1966)scaffoldflag — Template metadata scaffold support (#1939)- Table page templates — Heatmap Status, Matcha Store, Chart Shoe Store (#2172, #2149, #2154)
Fixes
- Group useXDSToast and useXDSCollapsible with their parent components in docs (#2049)
- DropdownMenu inline data types — Inline into items prop docs (#2027)
- Parent hook docs to their component in docsite (#2022)
0.0.13
Codemods
New Features
--skip-installand--force-installflags forxds upgrade(#1547)npx xds docs iconsreference + updated icon prop descriptions (#1500)- Theme nudge in generated agent docs (#1456)
- Theme
expandColorScale— derive color tokens from accent hex inxds theme build(#1452) - Component groups read from doc files instead of hardcoded map (#1650)
- Page and block template system (#1393)
Fixes
- Handle prerelease suffixes in
semverCompare(#1512) - Handle ternary/logical expressions in
icon-name-deprecationscodemod (#1513) - Don't inject XDS block into files without markers during upgrade (#1495)
findShowcasematches by directory name andcomponentsUsed(#1728)- Include
onMediaCSS in built theme output (#1450) - Register codemods for v0.0.13 (moved from v0.0.14) (#1508)
Upgrade
shnpx xds upgrade --apply --to 0.0.13
0.0.12
Codemods
add-is-icon-only— AddisIconOnlyto icon-only Button and ToggleButton usages (#1257)
Upgrade
shnpx xds upgrade --apply --to 0.0.12
0.0.10
Codemods
remove-size-props— Removesizeprop from StatusDot and ProgressBar (#966)
Upgrade
shnpx xds upgrade --apply --to 0.0.10
0.0.8
New Features
- CLI: tsx parser for .ts files
- Update hints in postAction hook
Codemods
Upgrade
shnpx xds upgrade --apply --to 0.0.8
0.0.7
Codemods
Upgrade
shnpx xds upgrade --apply --to 0.0.7
0.0.6
Codemods
migrate-token-names— Design token renames per naming auditmigrate-shadow-tokens— Elevation → shadow semantic namingmigrate-collapse-to-collapsible— XDSCollapse → XDSCollapsiblemigrate-radius-tokens— Semantic radius → numeric scalemigrate-skeleton-radius— Skeleton radius prop → numeric scalemigrate-badge-children-to-label— Badge children → label prop
Upgrade
shnpx xds upgrade --apply --to 0.0.6
0.0.5
New Features
Note: Codemods for v0.0.5 breaking changes are registered under v0.0.6. Use
--to 0.0.6.
0.0.4
Features
Refactors
- Split
component.mjsintolib/modules with lazy command registry (#613)
0.0.3
Patch Changes
- Sync package.json exports map
- Add verify-exports CI check (#537)
0.0.2
New Features
xds upgradecommand with codemod supportxds theme build(formerlybuild-theme)
Codemods
12 codemods for the v0.0.2 breaking changes:
rename-selector-items-to-options— Selectoritems→optionsunify-visibility-to-onOpenChange— Visibility callbacks →onOpenChangeunify-uncontrolled-to-defaultX— Uncontrolled state → defaultX patternrename-banner-endButton-to-endContent— BannerendButton→endContentrename-form-tooltip-startIcon— Formtooltip→labelTooltip,startIcon→labelIconrename-isShown-to-isOpen— Dialog/PopoverisShown→isOpenrename-topnav-title-to-heading— TopNav title → headingrename-sidenav-header-to-heading— SideNav header → headingmigrate-useXDSIcon-to-getIcon—useXDSIcon()→getIcon()migrate-gap-to-numeric— String gap tokens → numericmigrate-isFullBleed-to-padding—isFullBleed→padding={0}migrate-badge-dot-to-statusdot— Badge dot → StatusDot
Upgrade
shnpx xds upgrade --apply --to 0.0.2
0.0.1
- Initial release