-
Notifications
You must be signed in to change notification settings - Fork 44
Adopt @microbit/ui #1248
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Adopt @microbit/ui #1248
Changes from all commits
Commits
Show all changes
140 commits
Select commit
Hold shift + click to select a range
e5fe0ae
Add RAC migration status doc
microbit-matt-hillsdon 8838d58
Add AI agent notes pointing at the migration doc
microbit-matt-hillsdon 976849c
Converge OSS theme onto shared structure + semantic tokens
microbit-matt-hillsdon 9428283
Update RAC migration doc: pre-work done, findings, verification
microbit-matt-hillsdon 69b9bd8
Update RAC migration doc: live fidelity confirmed
microbit-matt-hillsdon ef63df3
Add Panda + preset stack foundation (Chakra coexistence)
microbit-matt-hillsdon 85198b4
Update RAC migration doc: step 2 Panda foundation done
microbit-matt-hillsdon 5dd5f2a
Port ConfirmDialog to @microbit/ui (first coexistence port)
microbit-matt-hillsdon d4ae21c
Update RAC migration doc: step 3 started, ConfirmDialog pilot
microbit-matt-hillsdon 2a58f9c
Port GenericDialog shell + footer to @microbit/ui Modal
microbit-matt-hillsdon 9297b23
Update RAC migration doc: GenericDialog ported
microbit-matt-hillsdon 1354af9
Port common dialog contents to @microbit/ui + Panda
microbit-matt-hillsdon 4e9581c
Update RAC migration doc: common dialog contents ported
microbit-matt-hillsdon 4168bc5
Port connect-dialogs family to @microbit/ui + Panda
microbit-matt-hillsdon bf0cf05
Update RAC migration doc: connect-dialogs ported
microbit-matt-hillsdon 763e094
Port workbench dialogs to @microbit/ui; retire ModalCloseButton
microbit-matt-hillsdon 5840c59
Update RAC migration doc: workbench dialogs ported
microbit-matt-hillsdon 7724666
Port toast infra + remaining simple common/ components to @microbit/ui
microbit-matt-hillsdon 82c1d3d
Update RAC migration doc: toast infra + common/ leaves ported
microbit-matt-hillsdon 4c74923
Recompile message catalogs: @microbit/ui de/ga-ie/zh-cn close-action
microbit-matt-hillsdon 2623b01
Update RAC migration doc: ui catalogs for de/ga-ie/zh-cn
microbit-matt-hillsdon 0aa466b
Port CollapsibleButton/FileInputButton to @microbit/ui; add z-index t…
microbit-matt-hillsdon bc38b90
Update RAC migration doc: CollapsibleButton family + z-index tokens
microbit-matt-hillsdon 6c313d0
Port src/project to @microbit/ui; retire its Chakra menus and forms
microbit-matt-hillsdon d8ba8a5
Update RAC migration doc: src/project ported
microbit-matt-hillsdon 9d8164d
Port src/settings to @microbit/ui
microbit-matt-hillsdon 0934f57
Update RAC migration doc: src/settings ported
microbit-matt-hillsdon 83c27d7
Port src/serial to @microbit/ui
microbit-matt-hillsdon de85d26
Update RAC migration doc: src/serial ported
microbit-matt-hillsdon 510bbc6
Port SplitView to Panda (app-side)
microbit-matt-hillsdon 7369461
Update RAC migration doc: SplitView ported; Tabs/SplitView placement …
microbit-matt-hillsdon d7a4b5d
Doc typo
microbit-matt-hillsdon f4bea52
Port src/editor to @microbit/ui
microbit-matt-hillsdon 14a03f4
Update RAC migration doc: src/editor ported
microbit-matt-hillsdon 6a3b74d
Port src/workbench to @microbit/ui; sidebar Tabs onto react-aria
microbit-matt-hillsdon f5425a8
Update RAC migration doc: src/workbench ported
microbit-matt-hillsdon 2cfd667
Fix sidebar tab corners and focus underline (visual review)
microbit-matt-hillsdon fd921f6
Doc: lesson count
microbit-matt-hillsdon 3462fab
Restore focus-follows-navigation for keyboard tab selection
microbit-matt-hillsdon 18533ba
Keep focus on the tab for direct activation (owner decision)
microbit-matt-hillsdon 35ad461
Revert "Keep focus on the tab for direct activation (owner decision)"
microbit-matt-hillsdon 73d7bdd
Note: sidebar tab focus behaviour parked for discussion
microbit-matt-hillsdon bfe5f30
Port src/documentation to @microbit/ui
microbit-matt-hillsdon 96ec19c
Replicate the late-v3 density shrink in the Panda presets
microbit-matt-hillsdon ce0f049
Update RAC migration doc: documentation ported; density shrink found …
microbit-matt-hillsdon 90df183
Doc: density scale lives only in the app preset (private stacks on it)
microbit-matt-hillsdon 6ad0620
Port src/simulator to @microbit/ui
microbit-matt-hillsdon 1b4003c
Update RAC migration doc: src/simulator ported; app components Chakra…
microbit-matt-hillsdon 03148ba
Doc: thumb-tooltip arrow fix (gotcha #20)
microbit-matt-hillsdon b19ca40
Fix docs top-level item arrow button (owner review)
microbit-matt-hillsdon 63689f2
Fix More/Less font weight in docs entries (owner review)
microbit-matt-hillsdon b471070
Restore Chakra drag-handle glyph (owner review)
microbit-matt-hillsdon 37f03d5
Fix dialog footer gap and search auto-focus (owner review)
microbit-matt-hillsdon 724b60f
Require both focus-visible heuristics for the tab underline
microbit-matt-hillsdon 38c3d64
The kill-switch: remove Chakra
microbit-matt-hillsdon e8099a8
Update RAC migration doc: kill-switch done
microbit-matt-hillsdon d2f8a6d
Restore hover/active on split-view and search-clear buttons
microbit-matt-hillsdon 4569371
Move CodeMirror/xterm/svg styling onto Panda CSS variables
microbit-matt-hillsdon 0d7cde1
Restore autofocus in the name-entry dialogs (owner review)
microbit-matt-hillsdon 7ebfb2b
Switch to published @microbit/ui 0.1.0-alpha.5 for CI
microbit-matt-hillsdon bd08c6d
Add pre-merge TODO list to the migration doc
microbit-matt-hillsdon 690529f
Park density and sidebar-tabs-focus decisions until post-merge
microbit-matt-hillsdon 186326e
Add the visual fidelity harness (npm run fidelity)
microbit-matt-hillsdon e8283dd
Restore list-style-position: inside on docs content lists
microbit-matt-hillsdon bd25ca7
Doc: fidelity dual-run green on both sides (29 states)
microbit-matt-hillsdon 6381f80
Doc: brand ramp nits - casing fixed, 600/700 parked, 50/900 gap analysed
microbit-matt-hillsdon e6c543e
Doc: brand vs purple ramp analysis - grades not aligned
microbit-matt-hillsdon 6034243
Doc: private purple/teal ramps confirmed fully unused
microbit-matt-hillsdon e568229
Doc: unused purple/teal ramps dropped from private preset; values pre…
microbit-matt-hillsdon 0175c67
Doc: why blimpTeal stays a separate ramp (no action)
microbit-matt-hillsdon 8663ca3
Doc: sync TODO with today's ramp work
microbit-matt-hillsdon 255a830
Doc: ../ui follow-ups done on its python-editor-followups branch
microbit-matt-hillsdon 58e17cb
Upgrade @microbit/ui to 0.1.0-alpha.6; adopt LinkButton
microbit-matt-hillsdon 5d3f909
Doc: alpha.6 shipped and adopted in both apps
microbit-matt-hillsdon d7a7eda
Bump theme package
microbit-matt-hillsdon b271149
Remove dead returnFocus plumbing and unused MoreButton
microbit-matt-hillsdon 32ba5ac
Doc: small cleanups done; slider formatOptions awaits owner call
microbit-matt-hillsdon ead613b
Announce units on sensor sliders where Intl can express them
microbit-matt-hillsdon cf08b6b
Doc: slider SR units done (celsius + degree, gated)
microbit-matt-hillsdon 6f5a15d
Slider units in the accessible name, not per-value announcements
microbit-matt-hillsdon 919f938
Doc: slider units final approach (accessible name)
microbit-matt-hillsdon 45ce966
Repoint migration references ahead of retiring RAC-MIGRATION.md
microbit-matt-hillsdon d1e2d9a
Retire RAC-MIGRATION.md - the migration is complete
microbit-matt-hillsdon 7e02fff
Fix faint caret and washed-out CM borders in production builds
microbit-matt-hillsdon 5348115
Upgrade @microbit/ui to 0.1.0-alpha.7: the reset-layer fix
microbit-matt-hillsdon 49af1cd
Restore ShowMoreButton's link form (left-aligned, content height)
microbit-matt-hillsdon 69c5d55
Rename DocumentationContent's content prop to blocks
microbit-matt-hillsdon d31e985
Upgrade @microbit/ui to 0.1.0-alpha.8
microbit-matt-hillsdon e933d1a
Hide sidebar tab panels when collapsed
microbit-matt-hillsdon ac74e1b
Match sidebar search clear button hover to the search dialog's
microbit-matt-hillsdon 8f3bee8
Upgrade @microbit/ui to 0.1.0-alpha.9; restore reference select's sm …
microbit-matt-hillsdon d4517c1
Restore semibold on the pre-release notice More/Feedback links
microbit-matt-hillsdon 14cf4d7
Restore 2px top-level documentation dividers
microbit-matt-hillsdon 3b0339a
Default Text to size md, restoring the Chakra theme's body text size
microbit-matt-hillsdon 41185ef
Move select width constraints to NativeSelect's wrapperCss
microbit-matt-hillsdon d9093e2
Upgrade @microbit/ui to 0.1.0-alpha.10
microbit-matt-hillsdon bd2e790
Upgrade @microbit/ui to 0.1.0-alpha.11
microbit-matt-hillsdon 874a321
Restore 2px dividers under doc-tab headers and search results
microbit-matt-hillsdon 4bdce37
Restore 16px 'Don't show this again' dialog links
microbit-matt-hillsdon aced7a9
Don't render the flash-complete progress event as 0%
microbit-matt-hillsdon 794be00
Upgrade @microbit/ui to 0.1.0-alpha.12
microbit-matt-hillsdon 340c16e
Upgrade @microbit/ui to 0.1.0-alpha.13
microbit-matt-hillsdon 1b9d20b
Upgrade @microbit/ui to 0.1.0-alpha.14
microbit-matt-hillsdon 831b113
Remove timeout that matches the default
microbit-matt-hillsdon 5693984
Take the density scale from @microbit/ui/dense-preset
microbit-matt-hillsdon d6937d6
Note the @microbit/ui dev symlink in the agent notes
microbit-matt-hillsdon f322b68
Upgrade @microbit/ui to 0.1.0-alpha.15
microbit-matt-hillsdon 7dfc8b6
Remove the fidelity harness
microbit-matt-hillsdon 543367b
Align the browser-support floor with classroom and ml-trainer
microbit-matt-hillsdon a2a76d8
Update @microbit/ui to 0.1.0-alpha.16
microbit-matt-hillsdon 59d9d74
Upgrade to @microbit/ui@0.1.0-alpha.17; mount SharedUIProvider
microbit-matt-hillsdon 902bd27
Upgrade to @microbit/ui@0.1.0-alpha.18; adopt the settings-row surface
microbit-matt-hillsdon 930be7e
Re-point mid-grey call sites for the family ink grades (gray-ramp v2)
microbit-matt-hillsdon 5801a27
Review feedback: lighter gutter numbers (AA floor), press-weight zoom…
microbit-matt-hillsdon 1dd92ea
Park the gutter numbers on gray.350, the closest stop to the branded …
microbit-matt-hillsdon 742523a
Lighter serial scrollbar thumb: gray.350
microbit-matt-hillsdon 13393d5
Fix inverted Firefox terminal scrollbar
microbit-matt-hillsdon a256270
Use @microbit/ui 0.0.0-gray.ramp.v2.106 (gray-ramp v2 spike build)
microbit-matt-hillsdon 0ec4004
Private package
microbit-matt-hillsdon 5b8e337
This is lighter but better than darker here
microbit-matt-hillsdon d8a0263
gray.25 -> gray.75: the family rename of the misnamed stop
microbit-matt-hillsdon bdb8cf8
Center align language card text
microbit-grace b858506
Vertically align help translate external link icon to middle
microbit-grace 87f958d
Remove box shadow override so that HideSplitViewButton focus ring is …
microbit-grace ef835dc
Upgrade to @microbit/ui@0.1.0-alpha.19
microbit-matt-hillsdon 023114e
Merge branch 'experiment-rai' of github.com:microbit-foundation/pytho…
microbit-matt-hillsdon 1bc3c62
Private preset changes merged
microbit-matt-hillsdon 6fa95d2
Restore black compass cardinal points
microbit-matt-hillsdon 2966b85
Remove extra space below unexpanded API docs Show more
microbit-matt-hillsdon 07eb3dd
Use spacing from the UI library only
microbit-matt-hillsdon 8b52042
Upgrade to @microbit/ui@0.1.0-alpha.20
microbit-matt-hillsdon a532547
Upgrade to @microbit/ui@0.1.0-alpha.21
microbit-matt-hillsdon d7db7d7
Upgrade to @microbit/ui@0.1.0-alpha.22 (#1252)
microbit-matt-hillsdon 64ba956
Reinstate box shadow for HideSplitViewButton (#1253)
microbit-robert 71a9bac
RAC: swap custom outline variant for ui library secondary (#1254)
microbit-matt-hillsdon 35c0448
Reinstate numbers for ol elements (#1256)
microbit-robert ea390c5
Remove Chakra migration residue (#1257)
microbit-matt-hillsdon 312bf81
Upgrade to @microbit/ui@0.1.0-alpha.23
microbit-matt-hillsdon aee53c3
Upgrade to @microbit/ui@0.1.0-alpha.24
microbit-matt-hillsdon 68cb0cd
Bump to merged private preset package.
microbit-matt-hillsdon File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -11,6 +11,9 @@ | |
| # production | ||
| /build | ||
|
|
||
| # Panda CSS generated output | ||
| /styled-system | ||
|
|
||
| # misc | ||
| .DS_Store | ||
| .env.local | ||
|
|
||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1 +1,3 @@ | ||
| src/editor/codemirror/lint/lint.ts | ||
| styled-system | ||
| src/styled-system.css |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,28 @@ | ||
| # AI agent notes | ||
|
|
||
| ## Styling/theming | ||
|
|
||
| This app uses react-aria-components + Panda CSS via `@microbit/ui`. | ||
| Read `../ui/docs/hints.md` before styling/theming/UI work. | ||
| The private theme package is the sibling repo | ||
| `../python-editor-v3-microbit` (consumed via a manual `node_modules` | ||
| symlink locally — re-create it after `npm install`). | ||
|
|
||
| `@microbit/ui` is consumed as the **published package**, pinned in | ||
| `package.json`. To develop against a local `../ui` checkout instead — what you | ||
| want whenever a change spans the library and this app — symlink | ||
| `node_modules/@microbit/ui` to `../ui/packages/ui`, the same arrangement as the | ||
| theme package above. Re-create it after `npm install` (which restores the pinned | ||
| version), and regenerate clean afterwards (`rm -rf styled-system && npm run panda`) — incremental codegen does not detect external preset changes. | ||
| `resolve.dedupe` in `vite.config.ts` is what stops the symlinked package loading | ||
| its own copies of React and friends, so leave it in place either way. | ||
| After bumping the pinned `@microbit/ui` version, follow "Upgrading in an app" in | ||
| `../ui/packages/ui/README.md`. | ||
|
|
||
| ## Commands | ||
|
|
||
| - Unit tests: `npm test` (vitest). E2e: run headlessly via | ||
| `npm run test:e2e:headless`. | ||
| - `npm run typecheck`, `npm run lint`. | ||
| - Format with Prettier: `npx prettier --write` (no npm script). | ||
| - New source files need the licensing header — `npm run fix-licensing-headers` applies it. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,51 @@ | ||
| /** | ||
| * (c) 2026, Micro:bit Educational Foundation and contributors | ||
| * | ||
| * SPDX-License-Identifier: MIT | ||
| */ | ||
|
|
||
| /** | ||
| * Compiles lang/ui.<locale>.json into the formatjs AST catalogs in | ||
| * src/messages/, merging in the source catalogs shipped by packages | ||
| * (currently @microbit/ui) so their strings ride in the app's lazily | ||
| * loaded per-locale chunks rather than being bundled eagerly for every | ||
| * locale. Package message ids are namespaced (`ui.`), so a collision with | ||
| * an app id fails the compile. | ||
| */ | ||
| import { execFileSync } from "node:child_process"; | ||
| import fs from "node:fs"; | ||
| import { createRequire } from "node:module"; | ||
| import path from "node:path"; | ||
| import { fileURLToPath } from "node:url"; | ||
|
|
||
| const require = createRequire(import.meta.url); | ||
| const root = path.join(path.dirname(fileURLToPath(import.meta.url)), ".."); | ||
| const formatjs = require.resolve("@formatjs/cli/bin/formatjs"); | ||
| const packageLangDirs = ["@microbit/ui"].map((name) => ({ | ||
| name, | ||
| dir: path.dirname(require.resolve(`${name}/lang/ui.en.json`)), | ||
| })); | ||
|
|
||
| for (const file of fs.readdirSync(path.join(root, "lang")).sort()) { | ||
| const inputs = [path.join(root, "lang", file)]; | ||
| for (const { name, dir } of packageLangDirs) { | ||
| const packageFile = path.join(dir, file); | ||
| if (fs.existsSync(packageFile)) { | ||
| inputs.push(packageFile); | ||
| } else { | ||
| console.warn(`${name} has no ${file}; its English text will be used`); | ||
| } | ||
| } | ||
| execFileSync( | ||
| process.execPath, | ||
| [ | ||
| formatjs, | ||
| "compile", | ||
| ...inputs, | ||
| "--ast", | ||
| "--out-file", | ||
| path.join(root, "src", "messages", file), | ||
| ], | ||
| { stdio: "inherit" } | ||
| ); | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not an issue, but a reminder to add to Crowdin once merged.