Skip to content

Astryx v0.7.4

Latest

Choose a tag to compare

@cixzhang cixzhang released this 23 Oct 17:18
· 146 commits to main since this release
704757f

Astryx 0.7.4 — every published @astryxdesign/* package ships at this version.

OLD_VERSION=0.7.3  # replace with the Core version your project uses today
npm install @astryxdesign/core@0.7.4 @astryxdesign/cli@0.7.4  # plus every other published @astryxdesign/* package you use, at 0.7.4
npx @astryxdesign/cli upgrade --from "$OLD_VERSION" --apply --path .

@astryxdesign/core

New features

  • BottomSheetSwitcher now gives every step its own native <dialog> while preserving one scrim, focus containment, scroll locking, Escape handling, and focus return. The public props and defaults are unchanged. Its forwarded ref now follows the dialog that hosts the active step. (#7720)

Fixes

  • Busy controls now announce “Loading” once through the shared polite announcement channel instead of competing with a second live Spinner. This covers TextInput, TextArea, Selector, MultiSelector, CheckboxInput, CommandPalette, DateInput, DateRangeInput, DateTimeInput, TimeInput, FileInput, DropdownMenuSubMenu, Thumbnail, ChatMessageList, ComplexSelector, Typeahead, Tokenizer, and BaseTypeahead. Announcements made inside an open modal stay inside that modal. (#7920, #7930, #7939, #7942, #7948, #7950, #7954, #7956)

  • ChatComposerInput announces a trigger menu’s visible loading state once, while cached results that arrive before the loading row appears stay silent. (#7900)

  • When a focused Carousel arrow reaches the end and becomes unavailable, focus moves to the scroll area without undoing the scroll. (#7926)

  • CommandPaletteItem exposes highlighted, selected, and disabled states on its theme target:

    .astryx-command-palette-item[data-highlighted] { /* … */ }
    .astryx-command-palette-item[data-selected] { /* … */ }
    .astryx-command-palette-item[data-disabled] { /* … */ }

    Rendering, semantics, and props are unchanged. (#7967)

  • A busy DateInput keeps its ordinary appearance and shows its Spinner; only a disabled field is dimmed. (#7968)

  • Selector, DropdownMenu, and ContextMenu options inside open, closed, or nested shadow roots now commit when clicked. (#7914)

  • useTypeahead clears its pending type buffer when its component unmounts or becomes hidden, leaving no timer behind and restoring with an empty buffer. (#7938)

Documentation

  • BottomSheetSwitcher anatomy now describes the per-step dialog structure. (#7720)

@astryxdesign/cli

Experimental icon sets

Integrations can ship an icon set, projects can select one, agents can find icons by meaning, and copied templates can replace declared icons with the selected set. The feature is isolated under astryx experimental and does not change stable search results or template output unless a project opts in with experimental.iconSet. (#7759)

astryx experimental icon --list
astryx experimental icon "delete"
astryx experimental icon use <set>

New features

  • Docs, schema fields, and enum values can declare stability: 'experimental'. The CLI labels experimental commands, keeps experimental docs out of stable search, and tells integration authors when an older supported CLI would drop the descriptor. (#7759)
  • Docs can render commands for each reader’s package manager with {@command …}, {@pm …}, and {@pm-only …} tokens. integration check --next can validate them before their findings become warnings in the next minor release. (#7868)
  • An integration doc can replace or extend an existing guide by route and place a section before or after another section. Reads name the contributing package, and unresolved placement is reported as a non-failing note. (#7936)
  • astryx doctor --built <path> checks a finished project, output folder, or HTML file for Astryx use and reports source-level purity issues when source is available. It reads files only and does not execute them. (#7886)
  • astryx theme palette generate receipts now identify the generator and candidate format without changing existing receipt fields. (#7678)
  • Integration validation reports what examples need to run wherever they are shown, including package availability, exported subpaths, props, browser-only dependencies, assets, and runnable code. These are notes today and become strict warnings in the next minor. (#7891)
  • Project agent docs written by astryx init now tell agents to run astryx doctor --built before delivering a build when the installed CLI supports it. (#7944)

Fixes

  • astryx doctor --built no longer counts type-only imports as shipped Astryx use. (#7945)
  • astryx discover results name their source package, and typo-tolerant lookup now matches astryx search. (#7147)
  • astryx search finds family members by their spelled-out names, lists representative members for a family-name query, and orders tied results by fit instead of alphabetically. (#7927, #7955, #7959)
  • astryx integration verify now reads the tarball filename npm 8 actually writes for scoped packages. (#7933)

Documentation

  • Four block templates now say what they show and when to use them. (#7963)
  • BottomSheetSwitcher templates describe the new per-step native dialogs. (#7720)
  • The CommandPaletteItem showcase describes its rendered command and shortcut rows. (#7967)
  • Lab ListInput showcase blocks are discoverable as templates. (#7953)
  • Six guide titles now use plainer, consistent sentence case without changing their routes. (#7934)

Themes

Butter, Gothic, Matcha, Stone, and Y2K move their maintained light and dark themes to reviewed named palette stops. Public compatibility palette objects and metadata stay available, and apps can preserve the previous appearance by overriding the affected color, syntax, shadow, and component tokens. The CLI templates ship the same mappings. (#7669, #7670, #7671, #7672, #7675)

Contributors

Thanks to everyone who contributed to this release:

@cixzhang @ernestt @HelloOjasMutreja @imdreamrunner @josephfarina @rubyycheung @vjeux

Full Changelog: v0.7.3...v0.7.4