Repository navigation
fix(app-shell): the Studio header's More trigger keeps its own name (objectui#11794) - #12040
Merged
Merged
Conversation
…objectui#11794) While an overflow pillar (Access) was open, the More trigger renamed itself to that pillar, hiding the word that says the control is the overflow menu. It now always reads More, the rule the Data pillar's Advanced trigger follows. The trigger keeps the active pillar styling while one of its pillars is open, and the open pillar's link inside the menu carries aria-current="page". Claude-Session: https://claude.ai/code/session_01MgfduSkFrfM3eorB3UGfAU Co-authored-by: Claude <noreply@anthropic.com>
Contributor
✅ Console Performance Budget
The eager closure is every chunk the entry reaches through static imports — what the browser fetches and parses before the app renders. The entry chunk on its own is a small fraction of it. 📦 Bundle Size Report
Size Limits
|
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Fixes #11794
Clause-②: no
The last slice of objectui#11794: item 1, which triage answered B (comment 6076172515). The maintainer's ruling on objectui#5813 item 3 stands, so More stays and Access stays inside it. What changes is the More trigger's label. It keeps the name More while one of its pillars is open, the same rule PR objectui#12028 applied to the Data pillar's Advanced trigger. Every other slice of the card has already landed or moved. Items 2, 3's search and 4 landed in PR objectui#12028, triage retired item 3's grouping, and item 5 moved to objectui#12035.
Implemented by the
os-devsessionhttps://claude.ai/code/session_01MgfduSkFrfM3eorB3UGfAU(claim comment 6076508917).What changed
packages/app-shell/src/views/studio-design/StudioDesignSurface.tsx, the Studio header's More popover (data-testid="studio-nav-more"):engine.studio.more). Onmain, while an overflow pillar was open, it read that pillar's own name (theengine.studio.pillar.key for the open tab, "Access"). That hid the word that says this control is the overflow menu.main, the trigger keeps the open-pillar classes while one of its pillars is open.aria-current="page". This mirrors what PR objectui#12028 did inside the Advanced menu, where the open panel became the checked radio item. Here the items are router links that carry the pillar dirty-guard, not menu items, andaria-currentis the semantic mark for a link to the open page. The visual mark, the active classes, was already there.Nothing else is mirrored. PR objectui#12028 did not add
aria-pressedto Advanced, which already had it, so none is added to More. This PR adds no i18n key, no published prop, and no file outside the claim's surface.Hypotheses, measured
git grepforstudio-nav-moreandengine.studio.morefinds one trigger and one call site. The file has three templatedengine.studio.pillar.lookups. Only the trigger's ternary named the trigger; the other two label the pillar links themselves (the primary row and the menu item).pillarNavGuardclicks it, andpackageLessFlows-11553asserts that it is absent. Both pass unchanged in the union below.engine.studio.moreexists in every table the Studio serves: holds. The enginet()(pickTableinmetadata-admin/i18n.ts) servesENGINE_STRINGS_ZHfor azhlocale andENGINE_STRINGS_ENfor every other locale. The key is in both ('More' and '更多'). It is not apackages/i18nkey, and this PR adds none.studioBuilderchunk (StudioRoute.tsx, objectui#11798), so the eager closure should not move. The budget bot's reading on this PR is the measurement.Docs
content/docs/guide/console.md: no change. No page undercontent/docsdescribes the More menu, its trigger or its label, and neither doespackages/app-shell/README.mdorapps/console/README.md(checked withgit grepfor More, overflow and the testid). So no statement in the docs becomes false. The guide's Object design section, which describes the Advanced trigger's own-name rule, is unchanged.Evidence
All at HEAD
095712408, with repo-rootpnpm exec vitest rununder the container's verify lock.StudioDesignSurface.moreKeepsName-11794.test.tsx, 3 tests, on the real surface and its real Radix popover.aria-current="page"and the active classes; from Interfaces, it has neither.main's blob of the surface (8a64971d) was checked out over it, under a trap.git checkout HEAD -- PATH. The blob is back to HEAD's6e61ec39, andgit diff HEADis empty.StudioDesignSurface*suite (73 files, enumerated withgit ls-tree HEAD, the new pin included), pluscolumn-identity.ratchetandone-authority-per-exported-name-6273.Test Files 37 passed (37), 175 tests.Test Files 38 passed (38), 329 tests.git grep) are in this set.pnpm --filter @object-ui/app-shell type-check, after building the dependency closure (turbo,Tasks 28 successful): exit 0.tsconfig.test.json --listFilesOnlylists the new pin.pnpm exec eslinton the two touched ts/tsx files: 2 files, 0 errors. There are 13 warnings, none in a changed hunk and none in the new pin.check-changeset-presence,check-changeset-no-major,check:new-line-citations(0 new),check:control-bytes,check:i18n-keys,check:i18n-dead-keys(no pillar or More key among the candidates),check:vi-mock-specifiers,check:vi-mock-inherit,check:vi-mock-override-shape,check:test-path-roots,check:changeset-claims,check:pending-changeset-literalsandcheck:unreferenced-sources.Acceptance notes
aria-current. Only the menu item carries it now. This is left alone because it is outside the claim and nothing is wrong when you use it. Carrier: none.aria-pressed, which predates PR objectui#12028. None is added here, per the mirror-only rule; a screen reader finds the open pillar inside the menu..changeset/11794-more-trigger-name.md,@object-ui/app-shell: patch.Generated by Claude Code