Skip to content

feat!: move to Astryx 0.7.0; prepare 0.2.0-alpha.19 - #66

Merged
yomybaby merged 3 commits into
mainfrom
chore/astryx-0.7.0
Oct 13, 2026
Merged

yomybaby merged 3 commits into
mainfrom
chore/astryx-0.7.0

Conversation

@yomybaby

Copy link
Copy Markdown
Member

Summary

Astryx 0.6.5 → 0.7.0 (@astryxdesign/core, theme-neutral, cli) and @astryxdesign/lab → 0.7.0-canary.97a0d31 (the canary of the commit the v0.7.0 release was cut from), done with ui-common sync-astryx, released as 0.2.0-alpha.19. Upstream notes: https://github.com/facebook/astryx/releases/tag/v0.7.0

What the bump dragged in:

  • New mirrored subpaths: theme/dataTokens.stylex (data-color defaults moved to StyleX), theme/neutral/fonts.css, Markdown/plugin-renderer, and the StyleX helper modules core now exports (Layout/padding.stylex, Layer/layerAnimations.stylex, utils/interactionOverlay.stylex, …). New root names include the *MenuGroup components. No subpath removed.
  • Forks re-taken from 0.7.0 (3-way merge of upstream 0.6.5 → 0.7.0 onto each fork, then sync-forks.mjs --accept):
    • ComplexSelector: takes upstream's renderTrigger (+ exported ComplexSelectorRenderTriggerProps) and the Field-composed styling contract (container* / control* instead of root xstyle / className / style). useFieldInputStyling is inlined, as useResolvedRequired already was, since core does not export it. hasClear / onClear kept (feat(ComplexSelector): add hasClear/onClear next to the loading spinner facebook/astryx#6362 still open).
    • Drawer: takes lab's padding prop and container inset; the z-index host, aria-modal passthrough and Modal portal host are kept. The new upstream "container padding" tests read the StyleX stylesheet, so they are skipped like the two existing stylesheet-dependent tests.
    • Tour: upstream changes merged cleanly.
  • PagedSelector: xstyle / className / style → the container* / control* props it forwards to ComplexSelector (breaking, CHANGELOG).
  • NotificationStack: Astryx #6630 stopped deriving Banner's live role from status, so notices would have gone silent. The stack now sets the role explicitly (alert for error/warning, status otherwise), with a test.
  • Consumer upgrade path: packages/cli/codemods/0.2.0-alpha.19/upstream.json records Astryx's 0.6.7 and 0.7.0 codemods (migrate-field-input-styling, rename-empty-search-results-text, preserve-bottom-sheet-content-padding, migrate-deprecated-theme-surface, validate-data-token-ownership, migrate-copied-themes-to-descriptors — the last is a project codemod and is noted, not run), so ui-common upgrade --from 0.2.0-alpha.18 runs them and moves the lab canary / core override. Upgrade fixtures regenerated; registry test extended.
  • pnpm-workspace.yaml: Astryx 0.7.0 was published today, so cli / core / theme-neutral 0.7.0 join the release-age exclusions next to the lab canary.
  • The [Unreleased] Form.Item labelExtra entry ships in this release.

Verification

pnpm run verify — typecheck, lint, format, boundary, theme:check, 1547 tests (7 skipped: the stylesheet-dependent Drawer/ComplexSelector upstream tests), build, check:pack (988 files), astryx integration validate — all pass.

Release

After merge: create the GitHub release v0.2.0-alpha.19; the publish workflow publishes both packages under next. backend.ai-webui moves onto it in a follow-up PR.

Bump @astryxdesign/core, theme-neutral and cli from 0.6.5 to 0.7.0 and
@astryxdesign/lab to 0.7.0-canary.97a0d31 (the release commit's parent).

- Mirror the new core subpaths: theme/dataTokens.stylex, the StyleX helper
  modules core now exports, Markdown/plugin-renderer, neutral fonts.css.
  No subpath was removed.
- Re-take the ComplexSelector, Drawer and Tour forks from 0.7.0 and keep
  their fixes. ComplexSelector gains renderTrigger and the container/control
  styling parts; useFieldInputStyling is inlined since core does not export
  it. Drawer takes lab's padding prop and container inset; the upstream
  tests that read the StyleX stylesheet are skipped like the existing ones.
- PagedSelector replaces xstyle/className/style with the container* and
  control* props, following Field-composed inputs.
- NotificationStack sets the live role Banner used to derive from status
  (alert for error/warning, status otherwise), since 0.7.0 stopped deriving
  it.
- Record Astryx's 0.6.7 and 0.7.0 codemods for consumers under
  0.2.0-alpha.19; regenerate upgrade fixtures and the Lablup theme.
@github-actions

github-actions Bot commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

PR Analysis Report

📚 Storybook Preview

View Storybook for this PR

GitHub Pages may take up to a minute to hydrate after the deploy.

🧩 Changed Components

Component Changed Stories Open
ComplexSelector source 8 Storybook ↗
Drawer source 5 Storybook ↗
NotificationStack source 8 Storybook ↗
PagedSelector source 7 Storybook ↗
Tour source 3 Storybook ↗
26 other changed file(s) in src/
  • src/astryx/DateInput/tokens.stylex.ts
  • src/astryx/Icon/IconSize.stylex.ts
  • src/astryx/Indicator/indicator.markers.stylex.ts
  • src/astryx/Layer/layerAnimations.stylex.ts
  • src/astryx/Layer/layerTextReset.stylex.ts
  • src/astryx/Layer/layerViewportInset.stylex.ts
  • src/astryx/Layout/container.stylex.ts
  • src/astryx/Layout/edgeCompensation.stylex.ts
  • src/astryx/Layout/padding.stylex.ts
  • src/astryx/Markdown/plugin-renderer.ts
  • …and 16 more

📦 Bundle Size

Total gzip (JS + CSS): 168.5 kB

No base measurement — the merge-base build was skipped (a build input outside src/ changed, or the base build failed).


Generated by the PR Preview workflow for a46e132 · Storybook · CI run

github-actions Bot added a commit that referenced this pull request Oct 13, 2026
@yomybaby
yomybaby requested a balanced review from Copilot October 13, 2026 14:47

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟡 Changes recommended

The custom ComplexSelector trigger does not receive or expose its disabled state.

1 open finding
What changed in this PR

Upgrades ui-common to Astryx 0.7.0 and prepares the 0.2.0-alpha.19 release.

Changes:

  • Updates Astryx dependencies, exports, generated theme assets, and upgrade codemods.
  • Rebases ComplexSelector, Drawer, and Tour forks.
  • Preserves NotificationStack live-region behavior.
File Description
CHANGELOG.md Documents the release.
README.md Updates core override guidance.
package.json Bumps versions and exports.
pnpm-lock.yaml Locks Astryx 0.7 dependencies.
pnpm-workspace.yaml Updates peer and age rules.
src/​index.ts Mirrors new root exports.
src/​exports.test.ts Updates fork export expectations.
src/​components/​PagedSelector/​PagedSelector.tsx Adopts styling-part props.
src/​components/​NotificationStack/​NotificationStack.tsx Restores explicit live roles.
src/​components/​NotificationStack/​NotificationStack.test.tsx Tests notification roles.
src/​forks/​ComplexSelector/​index.ts Exports trigger props.
src/​forks/​ComplexSelector/​ComplexSelector.tsx Rebases selector behavior and API.
src/​forks/​ComplexSelector/​ComplexSelector.test.tsx Updates selector tests.
src/​forks/​ComplexSelector/​ComplexSelector.styles.ts Refreshes compiled styles.
src/​forks/​Drawer/​useDrawerDialogPresence.ts Updates fork provenance.
src/​forks/​Drawer/​Drawer.tsx Adds container padding support.
src/​forks/​Drawer/​Drawer.test.tsx Adds padding tests.
src/​forks/​Drawer/​Drawer.styles.ts Refreshes compiled styles.
src/​forks/​Tour/​useTour.ts Updates fork provenance.
src/​forks/​Tour/​TourStep.tsx Updates fork provenance.
src/​forks/​Tour/​TourStep.styles.ts Refreshes style provenance.
src/​forks/​Tour/​TourContext.ts Updates fork provenance.
src/​forks/​Tour/​Tour.tsx Resets steps during deactivation render.
src/​forks/​Tour/​Tour.test.tsx Tests reset timing.
src/​forks/​provenance.json Updates upstream hashes and versions.
src/​theme/​lablup/​built/​theme.css.d.ts Adds generated CSS declaration.
src/​theme/​lablup/​built/​theme.css Rebuilds theme CSS.
src/​theme/​lablup/​built/​lablup.variants.d.ts Updates generated metadata.
src/​theme/​lablup/​built/​lablup.js Rebuilds theme module.
src/​theme/​lablup/​built/​lablup.d.ts Updates generated declarations.
src/​astryx/​utils/​interactionOverlay.stylex.ts Mirrors StyleX helper.
src/​astryx/​utils/​focusOutline.stylex.ts Mirrors StyleX helper.
src/​astryx/​theme/​neutral/​fonts.css Mirrors neutral fonts.
src/​astryx/​theme/​dataTokens.stylex.ts Mirrors data tokens.
src/​astryx/​Text/​text.stylex.ts Mirrors text styles.
src/​astryx/​Stack/​stackItem.stylex.ts Mirrors stack-item styles.
src/​astryx/​Stack/​stack.stylex.ts Mirrors stack styles.
src/​astryx/​Selector/​selectorPresentation.stylex.ts Mirrors selector styles.
src/​astryx/​NavItem/​navItemStyles.stylex.ts Mirrors navigation styles.
src/​astryx/​Markdown/​plugin-renderer.ts Mirrors Markdown renderer.
src/​astryx/​Layout/​padding.stylex.ts Mirrors padding styles.
src/​astryx/​Layout/​edgeCompensation.stylex.ts Mirrors edge compensation.
src/​astryx/​Layout/​container.stylex.ts Mirrors container styles.
src/​astryx/​Layer/​layerViewportInset.stylex.ts Mirrors viewport inset styles.
src/​astryx/​Layer/​layerTextReset.stylex.ts Mirrors text reset styles.
src/​astryx/​Layer/​layerAnimations.stylex.ts Mirrors layer animations.
src/​astryx/​Indicator/​indicator.markers.stylex.ts Mirrors indicator markers.
src/​astryx/​Icon/​IconSize.stylex.ts Mirrors icon sizing.
src/​astryx/​DateInput/​tokens.stylex.ts Mirrors date-input tokens.
packages/​cli/​package.json Bumps CLI and Astryx dependency.
packages/​cli/​migration/​0.1-to-0.2.json Updates required lab canary.
packages/​cli/​codemods/​0.2.0-alpha.19/​upstream.json Registers upstream migrations.
packages/​cli/​test/​cli/​cli.test.ts Tests registry entry.
packages/​cli/​test/​upgrade/​fixtures/​subpath-barrel/​expected/​ui-common-upgrade-report.md Updates fixture report.
packages/​cli/​test/​upgrade/​fixtures/​subpath-barrel/​expected/​package.json Updates fixture lab pin.
packages/​cli/​test/​upgrade/​fixtures/​adapter/​expected/​ui-common-upgrade-report.md Updates fixture report.
packages/​cli/​test/​upgrade/​fixtures/​adapter/​expected/​package.json Updates fixture lab pin.
Files not reviewed (1)
  • pnpm-lock.yaml: Generated file

🧠 Review effort: Balanced


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread src/forks/ComplexSelector/ComplexSelector.tsx
@yomybaby

yomybaby commented Oct 13, 2026 •

Copy link
Copy Markdown
Member Author

Ready-gate agent review (Opus) — blocking issues only

NO BLOCKING ISSUES.

Copilot: 1 thread (render-prop trigger lacks a disabled signal) — won't apply, verbatim upstream 0.7.0 code; replied and resolved.

Consumer check: backend.ai-webui was built, verified (scripts/verify.sh ALL PASS) and smoke-tested after login on 19 pages against a packed tarball of this head.

After both reviews (not re-reviewed): a46e132 skips the upstream render-prop focus-return test, which never passes under CI's Node 26 runner (passes on Node 24; the code path is upstream's line for line). CI verify + external-install are green on that head.

github-actions Bot added a commit that referenced this pull request Oct 13, 2026
github-actions Bot added a commit that referenced this pull request Oct 13, 2026
@yomybaby
yomybaby marked this pull request as ready for review October 13, 2026 15:11
@yomybaby
yomybaby merged commit 68cba85 into main Oct 13, 2026
6 checks passed
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.

2 participants