Skip to content

Admin UI: Add visual prop to Page header component#76469

Merged
ciampo merged 15 commits into
WordPress:trunkfrom
CGastrell:add/page-header-logo
Apr 21, 2026
Merged

Admin UI: Add visual prop to Page header component#76469
ciampo merged 15 commits into
WordPress:trunkfrom
CGastrell:add/page-header-logo

Conversation

@CGastrell

@CGastrell CGastrell commented Mar 12, 2026

Copy link
Copy Markdown
Contributor

See design convo #76709

What?

Adds a visual prop to the Page component's header, allowing consumers to display a logo or symbol alongside the title or breadcrumbs.

See #76448

Note: This PR depends on #76467 (Storybook stories for admin-ui). The story files in this diff include both the base stories from that PR and the new logo stories. The implementation changes are in header.tsx, index.tsx, and style.scss.

image image

Why?

As described in #76448, consumers currently pass logos inside the title prop, which places them inside the h2 tag. This is fragile and creates accessibility issues — when the title contains non-text content, a separate ariaLabel must be passed to maintain good semantics (see #75898).

An officially supported visual prop renders the logo outside the h2 tag, ensuring:

  • Consistent logo placement across consumers
  • Proper semantic structure (visual is not part of the heading tag)
  • No need for a separate ariaLabel if the only difference is the visual between title and ariaLabel.

How?

  • Added visual?: React.ReactNode prop to Page (index.tsx) and Header (header.tsx)
  • Logo renders before the title/breadcrumbs in the header row, wrapped in a div.admin-ui-page__header-logo
  • Added CSS for the logo container: flex-centered, non-shrinking, with object-fit: contain for img/svg children
  • Added Storybook stories demonstrating the logo with title, with breadcrumbs, and with a Jetpack logo

Testing Instructions

  1. Run npm run storybook:dev
  2. Navigate to Admin UI > Page in the sidebar
  3. Check the following stories:
    • With Logo: globe icon + "Page title" heading
    • With Jetpack Logo: Jetpack icon + "Jetpack" heading
    • With Logo And Breadcrumbs: globe icon + breadcrumb navigation
    • With Jetpack Logo And Breadcrumbs: Jetpack icon + breadcrumb navigation
  4. Verify the logo appears to the left of the title/breadcrumbs
  5. Inspect the DOM — the logo should be outside the h2 element

Testing Instructions for Keyboard

  1. Tab through the stories — the logo container should not be focusable (it's decorative
  2. The heading and breadcrumb links should remain keyboard accessible
    EOF
    )

@github-actions

github-actions Bot commented Mar 12, 2026

Copy link
Copy Markdown

The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the props-bot label.

If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message.

Co-authored-by: CGastrell <[email protected]>
Co-authored-by: ciampo <[email protected]>
Co-authored-by: simison <[email protected]>
Co-authored-by: jameskoster <[email protected]>
Co-authored-by: mirka <[email protected]>
Co-authored-by: aduth <[email protected]>

To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.

@simison

simison commented Mar 13, 2026

Copy link
Copy Markdown
Member

Thinking if icon as prop name instead of logo would be more aligned with other components (e.g. button)

Comment thread packages/admin-ui/src/page/stories/index.story.tsx Outdated
@CGastrell CGastrell force-pushed the add/page-header-logo branch 4 times, most recently from afba908 to 09361c5 Compare March 16, 2026 17:53
@github-actions github-actions Bot added the [Package] Private APIs /packages/private-apis label Mar 16, 2026
@simison simison changed the title Admin UI: Add logo prop to Page header component Admin UI: Add icon prop to Page header component Mar 17, 2026
@simison

simison commented Mar 17, 2026

Copy link
Copy Markdown
Member

FYI I updated PR title+description to use icon instead of logo as done also in commit 09361c5

@CGastrell CGastrell force-pushed the add/page-header-logo branch 2 times, most recently from 1f04fb7 to 6a17159 Compare March 17, 2026 17:58
@github-actions github-actions Bot removed the [Package] Private APIs /packages/private-apis label Mar 17, 2026
@simison simison added [Type] Enhancement A suggestion for improvement. [Package] Admin UI /packages/admin-ui labels Mar 19, 2026
@ciampo

ciampo commented Mar 19, 2026

Copy link
Copy Markdown
Contributor

Have you considered rendering an Icon component directly in the Header? What if consumers have different icon positioning needs? How would this interact in pages with different combinations of title / breadcrumbs (including none of them?

What I'm worried about is that we're introducing an abstraction that may not be flexible enough for future needs.

I'm also lacking the overall vision for Page and admin UI — rather than adding a little piece at a time and risk building the wrong abstractions, I think it would be better to take a step back, understand all the requirements, and figure out the best abstractions / implementations to satisfy them (cc @WordPress/gutenberg-components )

@mirka

mirka commented Mar 19, 2026

Copy link
Copy Markdown
Member

Yes, seeing the aria-label issue (#75899) too, there are already warning signs in the API that I would recommend considering a less monolithic approach, namely with subcomponents like Page.Header.

Warning signs: There are three props on root-level Page that are for the same conceptual element (heading), which is itself a sign that this architecture may not be tenable, and also the prop naming (aria-label — for what?, title, headingLevel) is already kind of haphazard and doesn't make those relationships clear.

@simison

simison commented Mar 19, 2026

Copy link
Copy Markdown
Member

@mirka context for the recent ariaLabel and headingLevel additions:

Both are related to accessibility, but the flexibility of h1-h6 heading option seems kinda lot to me. I don't know enough about use-cases if heading ever needs to be anything else than h1; maybe?

@simison

simison commented Mar 19, 2026

Copy link
Copy Markdown
Member

Noting that while it's good we're lookinga at different prop-combos and how they should work together in different variations, I'm not sure to what extend we should codify constraints and things always necessarily end up looking good. Consumers should have some responsibility to make sure e.g. this case continues to look good even if actual header is super narrow on full desktop width:

image

@CGastrell

Copy link
Copy Markdown
Contributor Author

What if consumers have different icon positioning needs?

As far as I can tell, the structure of admin-ui's Page is to provide a consistent look throughout pages that will live on the site admin. This is where we're coming from, the multiplicity of pages and styles built on wp-admin.

Now, we want to be flexible, but we also want to set some sort of "standard". In that regard I don't see many abstractions, hence why Header is not (yet) exposed, it only exists through Page props. And it aims to always look the same.

Title, Breadcrumbs and Badges are all Page props that then get passed down (internally) to Header. If we want to add full flexibility, then this shouldn't happen and we'd need to expose/export Header, allowing consumers to:

<Page>
  <Header />
  <SomeOther />
</Page>

But that would still suffer the same consequences: consumer would need to compose Header in the same way it would need to compose Page.

Right now Header is the one sorting out how/when things are rendered and, in some cases, it even delegates or expects props to provide the right components (Breadcrumbs needs to be passed down, it's not constructed from an array).

So, with this same approach, the proposed icon prop is meant to receive a component and be placed consistently so that the page looks is retained.

Is this a constraint we want? I assumed yes. Otherwise the consumer can use its own component for the page they need. Page, from my PoV, exists to provide a unified way to build pages to integrate seamlessly into the admin. Whatever magic we put in there is only meant to keep design aligned, that means restrictions, yes, but also the benefit of having things work out of the box.

Now, back to the icon prop and other warning signs flagging this as a haphazard situation, that depends on the level of control Page should hold over its structural design. As @mirka points out, this turns to a monolithic approach, yet I can't be sure this is not what we want in this particular case. Composing Header through Page props seems as functional as exposing Header and allow this to be ruling its own props.

Shall a consumer want to fully customize its page they can, if Page doesn't receive any of the three props (title, breadcrumbs or badges, and now icon) the Header is not rendered and the consumer can enjoy a fully blank canvas to work on. This is the "off-road" option we can offer, but once a single of those props is provided, we want it to be consistent and Page uses Header to render it, keeping the flexbox behavior and alignment in this unified way.

That said, we might also be more worried about actions, that don't even get considered to render the Header, meaning <Page actions={ someActions } /> would never render those actions anywhere.

@mirka @ciampo I see the concern, and I agree this might be a completely different discussion on structural design of the component. I'm just saying that this decision will affect the current way we expose/render the Header and, once we come to that decision, it should be the same work to migrate any of those props as it would be to migrate icon.

@mirka

mirka commented Mar 19, 2026

Copy link
Copy Markdown
Member

Both are related to accessibility

Not questioning the necessity of the prop, but the naming (or API structure) here. A plain root-level aria-label prop on a Page component doesn't make clear what exactly the aria-label is applying to. I looked at the code and it's just for the wrapping region, which also was unexpected from the component name "Page" — it's actually a Region component? There will never be sibling regions on the "Page"?

Not just the unclarity, but it's problematic when you eventually need to accept custom aria-labels on other internal elements that are also covered by root-level props. How exhaustive are the props we have now (genuine question because I don't know)? There are root-level props applying to the region, to the header area, and to the content area, often without differentiators in the name. This will lead to prop bloat and strained APIs.

There's a balance to be found between ergonomics, consistency, and modularity, but we've found it easier to find that balance by starting from the fully modular, then at the end tweaking ergonomics and consistency in the monolithic component. Maybe that is what is happening here, because the code does show internal modularity, but the way props are all flatly exposed on the monolithic component gives me pause, if we're not close to exhausting our prop set yet.

And there are type-friendly, ergonomic ways to mitigate root-level prop bloat, for example <Page header={ <Page.Header /* pass all the header props here */ /> }>.

@CGastrell

Copy link
Copy Markdown
Contributor Author

Both are related to accessibility

Not questioning the necessity of the prop, but the naming (or API structure) here. A plain root-level aria-label prop on a Page component doesn't make clear what exactly the aria-label is applying to. I looked at the code and it's just for the wrapping region, which also was unexpected from the component name "Page" — it's actually a Region component? There will never be sibling regions on the "Page"?

Not just the unclarity, but it's problematic when you eventually need to accept custom aria-labels on other internal elements that are also covered by root-level props. How exhaustive are the props we have now (genuine question because I don't know)? There are root-level props applying to the region, to the header area, and to the content area, often without differentiators in the name. This will lead to prop bloat and strained APIs.

There's a balance to be found between ergonomics, consistency, and modularity, but we've found it easier to find that balance by starting from the fully modular, then at the end tweaking ergonomics and consistency in the monolithic component. Maybe that is what is happening here, because the code does show internal modularity, but the way props are all flatly exposed on the monolithic component gives me pause, if we're not close to exhausting our prop set yet.

And there are type-friendly, ergonomic ways to mitigate root-level prop bloat, for example <Page header={ <Page.Header /* pass all the header props here */ /> }>.

Completely agree from a component design PoV. Though, this would be a breaking change, not for the sake of blocking it, just to make sure we take the necessary precautions before such change. On top of it, I like the <Page.Header /* props */ /> syntax, makes it very self explanatory on usage and scope 👍

Out of the scope of this PR but, anyone up to prepare such change?

@CGastrell CGastrell force-pushed the add/page-header-logo branch from 6a17159 to 242ded6 Compare March 19, 2026 18:49
@CGastrell

Copy link
Copy Markdown
Contributor Author

BTW, fixing the actions bug: #76695

@jameskoster

Copy link
Copy Markdown
Contributor

Outside of the excellent discussion so far I'd like to point out that the dimensions of the icon should be restricted somehow, and ideally an aspect ratio of 1/1 forced. If a user supplied a 1280x1024px jpg we wouldn't want it to render at that size. Even if a consumer supplied an Icon instance the size should ideally be pre-determined if possible.

#76709 suggests 20x20, but that won't play nicely with Icon which defaults to 24x24, so I'd suggest using 24px for consistency.

@CGastrell CGastrell force-pushed the add/page-header-logo branch from 242ded6 to 633e2a1 Compare March 23, 2026 16:18
CGastrell and others added 11 commits April 17, 2026 15:43
Replace custom GlobeLogo SVG with the WordPress icon from @wordpress/icons
and remove the image-based logo story that didn't render well.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
Rename the Page header logo prop to icon for consistency. Remove the
JetpackLogo component and its stories as brand logos don't belong in
the component library. Rename CSS class accordingly.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Switch from flex with element-specific selectors to a 1x1 grid that
lets any direct child fill the box, removing assumptions about which
element type is passed. Mark the wrapper aria-hidden since the visual
is purely decorative.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>

@ciampo ciampo left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM 🚀

Comment thread packages/admin-ui/CHANGELOG.md Outdated
Comment thread packages/admin-ui/src/page/stories/index.story.tsx Outdated
Comment thread packages/admin-ui/src/page/stories/index.story.tsx
Comment thread packages/admin-ui/src/page/index.tsx
@ciampo ciampo enabled auto-merge (squash) April 21, 2026 14:46
@ciampo ciampo merged commit 87ffdd0 into WordPress:trunk Apr 21, 2026
39 checks passed
@github-actions github-actions Bot added this to the Gutenberg 23.1 milestone Apr 21, 2026
@Tropicalista

Copy link
Copy Markdown

To add custom image this need to be solved.

import type { Meta, StoryObj } from '@storybook/react-vite';
// eslint-disable-next-line @wordpress/use-recommended-components -- admin-ui is a bundled package that depends on @wordpress/ui
import { Badge, Button, Text } from '@wordpress/ui';
import { Icon, wordpress } from '@wordpress/icons';

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

@wordpress/icons is not listed as a dev dependency admin-ui.

It was caught in #75814 when the storybook build failed.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Shouldn't import/no-extraneous-dependencies be helping catch these issues? 🤔

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Is that enabled for TS files?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

It looks like it's disabled for "development files", including Storybook files. I'm not sure why. If I had to speculate before diving further, my guess is that we historically defined devDependencies in the root package.json, and that ESLint rule can be tricky to configure for complex rules like that. If we agree that a package should define all of its own dependencies, we should probably be able to turn it back on.

gutenberg/eslint.config.mjs

Lines 321 to 336 in 68fd59c

// Override: React Native and development files — disable certain import/data rules.
{
files: [
'**/*.@(android|ios|native).js',
'packages/react-native-*/**/*.js',
...developmentFiles,
],
rules: {
'import/default': 'off',
'import/no-extraneous-dependencies': 'off',
'import/no-unresolved': 'off',
'import/named': 'off',
'@wordpress/data-no-store-string-literals': 'off',
'react-compiler/react-compiler': 'off',
},
},

@manzoorwanijk manzoorwanijk Apr 22, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Yeah, may be we should do that.

Also, once we have the isolated dependencies via #75814, then we won't even need that rule anywhere.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Also, once we have the isolated dependencies via #75814, then we won't even need that rule anywhere.

Just to be clear before I go through the effort, will it be a necessary pre-step to resolve those existing issues where we rely on devDependencies in the root?

I just glanced at what happens when removing the import/no-extraneous-dependencies exception for these files, and it's 882 errors 🙈 We'll have to think of a way to break this down more incrementally, or maybe we can just rip off the bandaid and do it in one go.

I'll plan to create an issue unless it's not something that'll be beneficial for #75814.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Just to be clear before I go through the effort, will it be a necessary pre-step to resolve those existing issues where we rely on devDependencies in the root?

By “existing issues”, if you mean those 882 errors, then no, we don’t need to fix those.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Just to be clear before I go through the effort, will it be a necessary pre-step to resolve those existing issues where we rely on devDependencies in the root?

By “existing issues”, if you mean those 882 errors, then no, we don’t need to fix those.

I'll check again in the morning, but my assumption was that those 882 lint errors are pointing to legitimate issues that would start breaking with #76195: i.e. a package implicitly depending on something coming from the root package.json. Less about ESLint errors themselves.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

When we adopt the isolated dependencies strategy and then complete #75041, we will not need that ESLint rule at all, including for the non-dev files.

The reason for #75041 is, even with isolated dependencies, (even with pnpm), every workspace can access the dependencies of any parent worspace (e.g. a monorepo root), because of Node's upward traversal algorithm. So, it's important to combine isolated dependencies with a clean root package.json.

When we have that, no workspace can access dependencies of other workspaces or of the root, thus forcing us to declare every dependency a workspace needs, which removes the need for a linter doing that job.

pento pushed a commit to WordPress/wordpress-develop that referenced this pull request Jun 30, 2026
This updates the pinned commit hash of the Gutenberg repository from `7295bd91a3c2b64bb11dde0a12313210d9d16a12 ` (version `23.0.0`) to `585cf86bb6f408b1dc61175f75db016aa4760653` (version `23.1.0`).

A full list of changes included in this commit can be found on GitHub: https://github.com/WordPress/gutenberg/compare/v23.0.0..v23.1.0.

The following commits are included:
- Edit Site: Move show-icon-labels handling to specific edit-site call sites (WordPress/gutenberg#77287)
- Boot: Use `--wpds-cursor-control` design token (WordPress/gutenberg#77357)
- Image: Fix non-local image ID removal undo trap (WordPress/gutenberg#77367)
- Block Editor: Use `--wpds-cursor-control` design token (WordPress/gutenberg#77354)
- Test: Connectors Point to the righ page. (WordPress/gutenberg#77272)
- Commands: Use `--wpds-cursor-control` design token (WordPress/gutenberg#77358)
- UI: use Text in Notice.ActionLink typography (WordPress/gutenberg#77332)
- Jest setup: remove unneeded rAF polyfills (WordPress/gutenberg#77378)
- Fields: Use `--wpds-cursor-control` design token (WordPress/gutenberg#77373)
- Widgets: Use --wpds-cursor-control design token (WordPress/gutenberg#77368)
- EditPost: Use `--wpds-cursor-control` design token for interactive controls (WordPress/gutenberg#77360)
- Post Editor: Store metaboxes RTC-compatible flag on location entries (WordPress/gutenberg#77361)
- UI: Use shared style-imports types (WordPress/gutenberg#77388)
- Stop adding “noreferrer” to external links except File block. (WordPress/gutenberg#26968)
- Core Abilities: Export initialization promise as `ready` (WordPress/gutenberg#77254)
- Externalize react-dom/client (WordPress/gutenberg#77326)
- Data: Export and consolidate 'onSubKey' helper (WordPress/gutenberg#77364)
- Paragraph: Refactor replacement logic in 'useOnEnter' hook (WordPress/gutenberg#77383)
- Fix pseudo selector block style rendering in the editor (WordPress/gutenberg#76879)
- Tabs: Lock top-level structure and disable visibility controls (WordPress/gutenberg#77370)
- Share React CSS custom properties typing (WordPress/gutenberg#77394)
- Notes: Refactor and extract offset calculation logic (WordPress/gutenberg#77414)
- Tabs: Remove redundant version field from block.json (WordPress/gutenberg#77417)
- Latest Comments: Fix uneven padding issue causing mis-alignment (WordPress/gutenberg#77379)
- Workflow: Use --wpds-cursor-control design token (WordPress/gutenberg#77369)
- blocks: Port over some of the type information for @wordpress/blocks from DefinitelyTyped (WordPress/gutenberg#77393)
- Notes: Extract floating notes state into a dedicated store (WordPress/gutenberg#77424)
- Tabs: Handle duplicating tabs (WordPress/gutenberg#76449)
- Components: Refactor NavigableContainer from class to function component (WordPress/gutenberg#77171)
- UI: Fix focus-trap broken by ThemeProvider's display:contents (WordPress/gutenberg#77381)
- viewport visibility: use 'key' instead of 'value' for device type (WordPress/gutenberg#77410)
- Update changelog for blocks package (WordPress/gutenberg#77437)
- Tabs: Clean up Edit components (WordPress/gutenberg#77426)
- Media editor: remove unused dependency (WordPress/gutenberg#77438)
- Block Editor: Strip per-block custom CSS on save for users without edit_css (WordPress/gutenberg#76650)
- Ensure Post Template fallback styles don't apply when minimumColumnWidth is defined (WordPress/gutenberg#77411)
- UI: Upgrade title validation to cleanup-based re-validation (WordPress/gutenberg#77165)
- ui/Tabs: Fix `act()` warnings in tests (WordPress/gutenberg#77319)
- docs: Clarify UI package setup for different contexts (WordPress/gutenberg#77338)
- Fix: Preserve aspectRatio and scale when switching to wide/full align… (WordPress/gutenberg#76914)
- Link: Honor `openInNewTab` consistently (WordPress/gutenberg#77422)
- Block Supports: Add min width support to dimensions (WordPress/gutenberg#76949)
- Link: Remove underline from unstyled icon links (WordPress/gutenberg#77420)
- Theme: Update Terrazzo packages to 2.0 (WordPress/gutenberg#77432)
- Editor: Use `--wpds-cursor-control` design token (WordPress/gutenberg#77376)
- GlobalStylesUI: Use `--wpds-cursor-control` design token for interact… (WordPress/gutenberg#77335)
- Typescript: Migrate keyboard-shortcuts to TS (WordPress/gutenberg#76287)
- GlobalStylesUI: Remove unused CSS rule (WordPress/gutenberg#77456)
- Writing Flow: fix arrow keys skipping paragraph containing link (WordPress/gutenberg#77474)
- Ensure layout classnames are applied to the inner blocks wrapper and not to its siblings (WordPress/gutenberg#77408)
- Fix: Change Featured Image toggle label to 'Make image a link' (WordPress/gutenberg#71931)
- Autocomplete: Skip stale triggers from completed mentions (WordPress/gutenberg#77185)
- Fix: Add cursor pointer to the ariakit menu item component - Issue - WordPress/gutenberg#70411 (WordPress/gutenberg#70412)
- Guidelines CPT: Skip registration when post type already exists (WordPress/gutenberg#77486)
- ESLint: Introduce bulk suppressions workflow (WordPress/gutenberg#77392)
- Add heading level 1 for the fonts page (WordPress/gutenberg#77482)
- CollapsibleCard: Fix missing keyboard focus ring on the header chevron icon when rendered inside wp-admin (WordPress/gutenberg#77468)
- Docs: Add ESLint v10 migration guide and polish docs (WordPress/gutenberg#77217)
- Tabs: Fix missing keyboard focus ring on the panel in Windows High Contrast mode when rendered inside wp-admin (WordPress/gutenberg#77469)
- EditSite: Remove unused CSS rule (WordPress/gutenberg#77494)
- Card: Remove unused CardContext (WordPress/gutenberg#77463)
- design-system-mcp: Add new package for design system MCP tooling (WordPress/gutenberg#77159)
- Storybook: Fix component descriptions in manifest files (WordPress/gutenberg#77112)
- Notes: Reduce passes in useBlockComments memo and rename outputs (WordPress/gutenberg#77440)
- Upload Media: Enable concurrent sideload uploads (WordPress/gutenberg#75888)
- Deduplicate client-side image sizes with matching dimensions (WordPress/gutenberg#77036)
- Convert tests/unit to npm workspace (WordPress/gutenberg#77063)
- UI: Portal prop and Portal subcomponents for overlay Popups (WordPress/gutenberg#77452)
- Storybook: add global preview styles for @wordpress/ui overlays (WordPress/gutenberg#77451)
- Experiment: Add custom taxonomies (WordPress/gutenberg#77497)
- Storybook: Fix 'Open source file' links for storybook-local stories (WordPress/gutenberg#76758)
- UI Dialog: Add Description, modal context, and misc improvements (WordPress/gutenberg#77194)
- Docs: Update parameter type from `number` to `int` in CSS declaration methods (WordPress/gutenberg#77519)
- Fix: use node_modules/.bin/stylelint to avoid npm warnings on Node 24 (WordPress/gutenberg#77512)
- Text: Apply both heading and paragraph CSS defenses unconditionally (WordPress/gutenberg#77461)
- Notes: Compute note positions centrally in useFloatingBoard (WordPress/gutenberg#77433)
- Stylelint: Add cursor pointer rule and block-library override (WordPress/gutenberg#77501)
- Admin UI: Add visual prop to Page header component (WordPress/gutenberg#76469)
- Fix: post saving should be locked during media uploads (WordPress/gutenberg#76973)
- RTC: Fixed orphaned meta causing dirty editor state (WordPress/gutenberg#77529)
- Media Editor experiment: add experimental image editor and cropper (WordPress/gutenberg#77479)
- UI: Start recommending new Card components (WordPress/gutenberg#77423)
- Media Editor Modal: Add a media editor modal experiment (WordPress/gutenberg#77480)
- Expand support for `isElementVisible` (`VisuallyHidden`) (WordPress/gutenberg#77191)
- Experiments Page: Update labels for the media-related experiments to group them together and better clarify what the experiments do (WordPress/gutenberg#77536)
- Media Editor: render cropper in media editor modal for images (WordPress/gutenberg#77537)
- Tabs: Rename tabs blocks to follow WCAG Tabs pattern (WordPress/gutenberg#77418)
- [Video Block]: Update z-index for tracks popover to ensure proper stacking context (WordPress/gutenberg#77517)
- Guidelines: Make the CPT type-aware (WordPress/gutenberg#77491)
- Taxonomies: add spacing above Add Taxonomy modal actions (WordPress/gutenberg#77523)
- Taxonomies Route: Declare @wordpress/base-styles dependency (WordPress/gutenberg#77543)
- Taxonomies: warn when editing an existing taxonomy's slug (WordPress/gutenberg#77527)
- Site Logo Block: Enable the media editor modal experiment for the crop button (WordPress/gutenberg#77548)
- Menu: Fix flaky submenu focus test (WordPress/gutenberg#77430)
- Add no-unsafe-render-order ESLint rule (WordPress/gutenberg#77428)
- UI: Update `@base-ui/react` from `1.4.0` to `1.4.1` (WordPress/gutenberg#77520)
- components: Menu popover render + surface/motion split (WordPress/gutenberg#77460)
- Upload Media: Use .jpg extension for HEIC-to-JPEG client conversion (WordPress/gutenberg#77506)
- Consolidate ESLint config into tools/eslint/ workspace package (WordPress/gutenberg#77215)
- UI: Add Drawer primitive (WordPress/gutenberg#76690)
- Fix import order in block-editor `custom-css.js` (WordPress/gutenberg#77566)
- Experiment: Follow up improvements on taxonomies(77497) (WordPress/gutenberg#77567)
- Client-side media: declare convert_format as boolean arg on sideload route (WordPress/gutenberg#77565)
- Media Upload Modal: Enhance filtering logic to support "text/vtt" and "video/*" (WordPress/gutenberg#77550)
- Media Editor: add cropper controls to the media editor modal (WordPress/gutenberg#77540)
- Media Editor: add zoom control and hide fine rotation on narrow viewports (WordPress/gutenberg#77585)
- Remove ZebulanStanphill from CODEOWNERS (WordPress/gutenberg#77586)
- Image editor: reserve inner gutter so crop handles stay accessible (WordPress/gutenberg#77547)
- Docs: Auto-generate per-block API reference pages from block.json (WordPress/gutenberg#77350)
- Embed: Fix variation upgrade undo trap (WordPress/gutenberg#77546)
- fix: block-mover up/down button tooltip positions (WordPress/gutenberg#77588)
- fix: edit-post back button tooltip position (WordPress/gutenberg#77587)
- Revert "Docs: Auto-generate per-block API reference pages from block.json (https://github.com/WordPress/gutenberg/pull/7…" (WordPress/gutenberg#77590)
- Experiment: Add delete action to taxonomy management (WordPress/gutenberg#77524)
- Tests: Remove duplicate mentions spec (WordPress/gutenberg#77593)
- Notes: Refactor to use new '@wordpress/ui' components (WordPress/gutenberg#77589)
- wp-build: Widen optional peer dependency ranges (WordPress/gutenberg#77568)
- Eslint: Improve design token linting for CSS declaration strings (WordPress/gutenberg#77384)
- ESLint: Add `use-import-as` rule (WordPress/gutenberg#77389)
- Experiments: register `gutenberg-dashboard-widgets` flag (WordPress/gutenberg#77569)
- Media: Move image output format filtering to upload response (WordPress/gutenberg#75793)
- Dashboard: register admin page route + sidebar menu (shell) (WordPress/gutenberg#77573)
- Experiment: Fix console errors/warnings  for taxonomies (WordPress/gutenberg#77601)
- Experiment: Improve `taxonomies` DataViews height (WordPress/gutenberg#77603)
- Experimental Image Cropper: Ensure focus is on canvas when dragging (WordPress/gutenberg#77591)
- Template parts: make 'Detach' context menu item consistent across patterns and template parts (WordPress/gutenberg#77581)
- Experimental Image Cropper: Tweak the keyboard interactions with drag handles and canvas (WordPress/gutenberg#77639)
- Fix: block-mover horizontal tooltip position (WordPress/gutenberg#77597)
- Experiment: Render taxonomy status as a Badge (WordPress/gutenberg#77635)
- Guidelines: Drop default_term from wp_guideline_type taxonomy (WordPress/gutenberg#77592)
- Form blocks: Update block categories for form, form-input, form-submission-notification, and form-submit-button (WordPress/gutenberg#61916)
- Experiment: Split status action to two actions, make them bulk-capable (WordPress/gutenberg#77637)
- ButtonGroup: Inline z-index (WordPress/gutenberg#77621)
- VisuallyHidden: Recommend @wordpress/ui and migrate usages (WordPress/gutenberg#77575)
- Experiment: Improve taxonomy `edit` action (WordPress/gutenberg#77605)
- FormToggle: Inline z-index (WordPress/gutenberg#77619)
- ResizableBox: Inline handle z-index (WordPress/gutenberg#77620)
- Build: Skip sourcemaps for WASM-inlined script module workers (WordPress/gutenberg#75993)
- RTC: Fix "Connection Lost" dialog when too many entities are loaded (WordPress/gutenberg#77631)
- Experiments: Rebuild the wp-admin Experiments screen on the wp-build routes pattern (WordPress/gutenberg#77443)
- Connectors: Treat network-active plugins as active in plugin status check (WordPress/gutenberg#77661)
- Update TypeScript to tsgo (7.0) (WordPress/gutenberg#77177)
- Revert tsgo update as it breaks trunk (WordPress/gutenberg#77680)
- Image editor: fix locked-ratio resize driver-axis on non-square images (WordPress/gutenberg#77664)
- Image editor: hold Shift while resizing to lock current aspect ratio (WordPress/gutenberg#77663)
- [Admin UI]: Move to CSS modules and implement logical properties (WordPress/gutenberg#77088)
- ui: Forward style and className on *.Popup to inner Base UI Popup (WordPress/gutenberg#77693)
- ui: Align WithCustomZIndex Storybook examples across overlays (WordPress/gutenberg#77648)
- ui: Uniform title and description styles across overlays (WordPress/gutenberg#77692)
- UI: Add `Autocomplete` primitive (WordPress/gutenberg#77642)
- Admin UI: change default heading level from h2 to h1 (WordPress/gutenberg#77617)
- ui/Dialog, ui/AlertDialog, ui/Drawer: support sticky header and footer (WordPress/gutenberg#77559)
- e2e: shorten visit-site-editor canvas-loader visible wait (WordPress/gutenberg#77725)
- Gutenberg Experiments: Ensure the experiment is active before outputting flags (WordPress/gutenberg#77728)
- Image editor: formalize cropper contract (WordPress/gutenberg#77668)
- Image Editor experiment: Pass theme aspect ratios to media editor (WordPress/gutenberg#77665)
- Media Editor Modal: save via Core's /edit modifiers (WordPress/gutenberg#77641)
- Experiment: Taxonomies new package and `add/edit` screens (WordPress/gutenberg#77657)
- Media editor: confirm before discarding unsaved changes (WordPress/gutenberg#77730)
- `FormTokenField`: Add `help` prop to render additional help text below the field (WordPress/gutenberg#77552)
- Migrate `test/integration` into `@wordpress/integration-tests` workspace (WordPress/gutenberg#77556)
- Tabs: Add classic theme styles to reset button defaults (WordPress/gutenberg#77607)
- Media Editor Modal: surface save failures as scoped snackbar notices (WordPress/gutenberg#77733)
- DataForm: Render field `description` as help text in the `array` control (WordPress/gutenberg#77554)
- Revisions: Improve screen reader accessibility for diff markers region and slider (WordPress/gutenberg#77660)
- fix: disable custom css command for non block themes (WordPress/gutenberg#77685)
- Experiments: Declare `@wordpress/base-styles` dependency (WordPress/gutenberg#77684)
- Notes: Refactor internals into smaller components (WordPress/gutenberg#77614)
- Connectors: Add role="list" wrapper to connector cards for valid ARIA structure (WordPress/gutenberg#77689)
- Admin UI: use UI Text component in header (WordPress/gutenberg#77372)
- I18N: Polyfill script module translations for WordPress < 7.0 (WordPress/gutenberg#77214)
- Refactor Admin UI / Breadcrumbs to use DS components and design tokens (WordPress/gutenberg#77012)
- ui: Unify hairline border across overlay popups (WordPress/gutenberg#77691)
- Base Styles: Remove stale z-index entries (WordPress/gutenberg#77714)
- CircularOptionPicker: Inline z-index values (WordPress/gutenberg#77715)
- ComplementaryArea: Inline z-index values (WordPress/gutenberg#77717)
- Disable TinyMCE: Warning instead of direct redirect (WordPress/gutenberg#77747)
- Tooltip: Fix flaky unit test (WordPress/gutenberg#77751)
- Admin UI: ensure consistent header spacing with and without actions (WordPress/gutenberg#76683)
- RTC: fix connection lost error on large update cause by mismatch between update size bounds check and expanded base64 update size (WordPress/gutenberg#77669)
- Add `@wordpress/grid` package (WordPress/gutenberg#77562)
- Base styles: update changelog to be clearer (WordPress/gutenberg#77767)
- Media editor modal: add interactive grid (WordPress/gutenberg#77771)
- Media editor: avoid double-mount flicker on open (WordPress/gutenberg#77732)
- Command Palette: Fix macOs label for sites unable to determine UA via PHP (WordPress/gutenberg#77638)
- Accordion: Remove invalid `isBlock` prop from `ToggleControl` (WordPress/gutenberg#77776)
- Guidelines: Extract initial public API methods (WordPress/gutenberg#77643)
- Embed: Restore paragraph with URL when undoing paste-to-embed transform (WordPress/gutenberg#77551)
- Guidelines: Split singleton REST API into dedicated /content-guidelines route (WordPress/gutenberg#77734)
- Allow EmptyState from @wordpress/ui in recommended components (WordPress/gutenberg#77765)
- Block Editor: Fix blockGap fallback parsing for nested var() values (WordPress/gutenberg#77750)
- Core Data: Remove redundant memoization wrapper from 'getQueriedItems' (WordPress/gutenberg#77483)
- Enhancement: Add descriptive name for docker container images (WordPress/gutenberg#67827)
- Fix: Add Missing Dimension Controls & Limited Customization in Accordion Block (WordPress/gutenberg#77780)
- Connectors: keep focus on action Button during install (WordPress/gutenberg#77544)
- Widgets: add widget-types data layer (WordPress/gutenberg#77752)
- Grid: fix `width: 'fill'` when tiles span multiple rows (WordPress/gutenberg#77769)
- CollapsibleCard: Prevent focus ring clipping by content overflow (WordPress/gutenberg#77667)
- Block editor: Remove stale reusable block z-index styles (WordPress/gutenberg#77774)
- Grid: add @types/jest devDependency (WordPress/gutenberg#77801)
- Env: Minor refactoring of cacheDirectoryPath evaluation (WordPress/gutenberg#77799)
- User Taxonomies: show Public field in create/edit form (WordPress/gutenberg#77802)
- Experiment: Taxonomies REST controller (WordPress/gutenberg#77697)
- Experiment: Taxonomies implement `auto-fill labels` (WordPress/gutenberg#77786)
- UI: Recommend Link component for use (WordPress/gutenberg#77505)
- ExternalLink: Align appearance with Link from @wordpress/ui (WordPress/gutenberg#77790)
- Disable TinyMCE: Repurpose experiment as Classic block removal (WordPress/gutenberg#77838)
- Media Upload Modal: Fix pagination and search (WordPress/gutenberg#77872)
- Disable Classic block: Always register, hide from inserter conditionally (WordPress/gutenberg#77840)
- Disable Classic block: Control inserter support via filter (WordPress/gutenberg#77845)
- Classic Block: Unwrap experiment to hide it from inserter (WordPress/gutenberg#77911)
- RTC: Attach sync observers after hydrating persisted CRDT doc (WordPress/gutenberg#77966)
- RTC: Fix compaction unit test (WordPress/gutenberg#77986)
- RTC: Fix divergence when two offline users reconnect (WordPress/gutenberg#77980)
- Fix PHP multisite tests (WordPress/gutenberg#77825)
- Connectors: Stop e2e capability restriction from leaking across specs (WordPress/gutenberg#77857)

Props adamsilverstein, jorbin, westonruter, wildworks.
Fixes #65558.

git-svn-id: https://develop.svn.wordpress.org/trunk@62581 602fd350-edb4-49c9-b593-d223f7449a82
markjaquith pushed a commit to markjaquith/WordPress that referenced this pull request Jun 30, 2026
This updates the pinned commit hash of the Gutenberg repository from `7295bd91a3c2b64bb11dde0a12313210d9d16a12 ` (version `23.0.0`) to `585cf86bb6f408b1dc61175f75db016aa4760653` (version `23.1.0`).

A full list of changes included in this commit can be found on GitHub: https://github.com/WordPress/gutenberg/compare/v23.0.0..v23.1.0.

The following commits are included:
- Edit Site: Move show-icon-labels handling to specific edit-site call sites (WordPress/gutenberg#77287)
- Boot: Use `--wpds-cursor-control` design token (WordPress/gutenberg#77357)
- Image: Fix non-local image ID removal undo trap (WordPress/gutenberg#77367)
- Block Editor: Use `--wpds-cursor-control` design token (WordPress/gutenberg#77354)
- Test: Connectors Point to the righ page. (WordPress/gutenberg#77272)
- Commands: Use `--wpds-cursor-control` design token (WordPress/gutenberg#77358)
- UI: use Text in Notice.ActionLink typography (WordPress/gutenberg#77332)
- Jest setup: remove unneeded rAF polyfills (WordPress/gutenberg#77378)
- Fields: Use `--wpds-cursor-control` design token (WordPress/gutenberg#77373)
- Widgets: Use --wpds-cursor-control design token (WordPress/gutenberg#77368)
- EditPost: Use `--wpds-cursor-control` design token for interactive controls (WordPress/gutenberg#77360)
- Post Editor: Store metaboxes RTC-compatible flag on location entries (WordPress/gutenberg#77361)
- UI: Use shared style-imports types (WordPress/gutenberg#77388)
- Stop adding “noreferrer” to external links except File block. (WordPress/gutenberg#26968)
- Core Abilities: Export initialization promise as `ready` (WordPress/gutenberg#77254)
- Externalize react-dom/client (WordPress/gutenberg#77326)
- Data: Export and consolidate 'onSubKey' helper (WordPress/gutenberg#77364)
- Paragraph: Refactor replacement logic in 'useOnEnter' hook (WordPress/gutenberg#77383)
- Fix pseudo selector block style rendering in the editor (WordPress/gutenberg#76879)
- Tabs: Lock top-level structure and disable visibility controls (WordPress/gutenberg#77370)
- Share React CSS custom properties typing (WordPress/gutenberg#77394)
- Notes: Refactor and extract offset calculation logic (WordPress/gutenberg#77414)
- Tabs: Remove redundant version field from block.json (WordPress/gutenberg#77417)
- Latest Comments: Fix uneven padding issue causing mis-alignment (WordPress/gutenberg#77379)
- Workflow: Use --wpds-cursor-control design token (WordPress/gutenberg#77369)
- blocks: Port over some of the type information for @wordpress/blocks from DefinitelyTyped (WordPress/gutenberg#77393)
- Notes: Extract floating notes state into a dedicated store (WordPress/gutenberg#77424)
- Tabs: Handle duplicating tabs (WordPress/gutenberg#76449)
- Components: Refactor NavigableContainer from class to function component (WordPress/gutenberg#77171)
- UI: Fix focus-trap broken by ThemeProvider's display:contents (WordPress/gutenberg#77381)
- viewport visibility: use 'key' instead of 'value' for device type (WordPress/gutenberg#77410)
- Update changelog for blocks package (WordPress/gutenberg#77437)
- Tabs: Clean up Edit components (WordPress/gutenberg#77426)
- Media editor: remove unused dependency (WordPress/gutenberg#77438)
- Block Editor: Strip per-block custom CSS on save for users without edit_css (WordPress/gutenberg#76650)
- Ensure Post Template fallback styles don't apply when minimumColumnWidth is defined (WordPress/gutenberg#77411)
- UI: Upgrade title validation to cleanup-based re-validation (WordPress/gutenberg#77165)
- ui/Tabs: Fix `act()` warnings in tests (WordPress/gutenberg#77319)
- docs: Clarify UI package setup for different contexts (WordPress/gutenberg#77338)
- Fix: Preserve aspectRatio and scale when switching to wide/full align… (WordPress/gutenberg#76914)
- Link: Honor `openInNewTab` consistently (WordPress/gutenberg#77422)
- Block Supports: Add min width support to dimensions (WordPress/gutenberg#76949)
- Link: Remove underline from unstyled icon links (WordPress/gutenberg#77420)
- Theme: Update Terrazzo packages to 2.0 (WordPress/gutenberg#77432)
- Editor: Use `--wpds-cursor-control` design token (WordPress/gutenberg#77376)
- GlobalStylesUI: Use `--wpds-cursor-control` design token for interact… (WordPress/gutenberg#77335)
- Typescript: Migrate keyboard-shortcuts to TS (WordPress/gutenberg#76287)
- GlobalStylesUI: Remove unused CSS rule (WordPress/gutenberg#77456)
- Writing Flow: fix arrow keys skipping paragraph containing link (WordPress/gutenberg#77474)
- Ensure layout classnames are applied to the inner blocks wrapper and not to its siblings (WordPress/gutenberg#77408)
- Fix: Change Featured Image toggle label to 'Make image a link' (WordPress/gutenberg#71931)
- Autocomplete: Skip stale triggers from completed mentions (WordPress/gutenberg#77185)
- Fix: Add cursor pointer to the ariakit menu item component - Issue - WordPress/gutenberg#70411 (WordPress/gutenberg#70412)
- Guidelines CPT: Skip registration when post type already exists (WordPress/gutenberg#77486)
- ESLint: Introduce bulk suppressions workflow (WordPress/gutenberg#77392)
- Add heading level 1 for the fonts page (WordPress/gutenberg#77482)
- CollapsibleCard: Fix missing keyboard focus ring on the header chevron icon when rendered inside wp-admin (WordPress/gutenberg#77468)
- Docs: Add ESLint v10 migration guide and polish docs (WordPress/gutenberg#77217)
- Tabs: Fix missing keyboard focus ring on the panel in Windows High Contrast mode when rendered inside wp-admin (WordPress/gutenberg#77469)
- EditSite: Remove unused CSS rule (WordPress/gutenberg#77494)
- Card: Remove unused CardContext (WordPress/gutenberg#77463)
- design-system-mcp: Add new package for design system MCP tooling (WordPress/gutenberg#77159)
- Storybook: Fix component descriptions in manifest files (WordPress/gutenberg#77112)
- Notes: Reduce passes in useBlockComments memo and rename outputs (WordPress/gutenberg#77440)
- Upload Media: Enable concurrent sideload uploads (WordPress/gutenberg#75888)
- Deduplicate client-side image sizes with matching dimensions (WordPress/gutenberg#77036)
- Convert tests/unit to npm workspace (WordPress/gutenberg#77063)
- UI: Portal prop and Portal subcomponents for overlay Popups (WordPress/gutenberg#77452)
- Storybook: add global preview styles for @wordpress/ui overlays (WordPress/gutenberg#77451)
- Experiment: Add custom taxonomies (WordPress/gutenberg#77497)
- Storybook: Fix 'Open source file' links for storybook-local stories (WordPress/gutenberg#76758)
- UI Dialog: Add Description, modal context, and misc improvements (WordPress/gutenberg#77194)
- Docs: Update parameter type from `number` to `int` in CSS declaration methods (WordPress/gutenberg#77519)
- Fix: use node_modules/.bin/stylelint to avoid npm warnings on Node 24 (WordPress/gutenberg#77512)
- Text: Apply both heading and paragraph CSS defenses unconditionally (WordPress/gutenberg#77461)
- Notes: Compute note positions centrally in useFloatingBoard (WordPress/gutenberg#77433)
- Stylelint: Add cursor pointer rule and block-library override (WordPress/gutenberg#77501)
- Admin UI: Add visual prop to Page header component (WordPress/gutenberg#76469)
- Fix: post saving should be locked during media uploads (WordPress/gutenberg#76973)
- RTC: Fixed orphaned meta causing dirty editor state (WordPress/gutenberg#77529)
- Media Editor experiment: add experimental image editor and cropper (WordPress/gutenberg#77479)
- UI: Start recommending new Card components (WordPress/gutenberg#77423)
- Media Editor Modal: Add a media editor modal experiment (WordPress/gutenberg#77480)
- Expand support for `isElementVisible` (`VisuallyHidden`) (WordPress/gutenberg#77191)
- Experiments Page: Update labels for the media-related experiments to group them together and better clarify what the experiments do (WordPress/gutenberg#77536)
- Media Editor: render cropper in media editor modal for images (WordPress/gutenberg#77537)
- Tabs: Rename tabs blocks to follow WCAG Tabs pattern (WordPress/gutenberg#77418)
- [Video Block]: Update z-index for tracks popover to ensure proper stacking context (WordPress/gutenberg#77517)
- Guidelines: Make the CPT type-aware (WordPress/gutenberg#77491)
- Taxonomies: add spacing above Add Taxonomy modal actions (WordPress/gutenberg#77523)
- Taxonomies Route: Declare @wordpress/base-styles dependency (WordPress/gutenberg#77543)
- Taxonomies: warn when editing an existing taxonomy's slug (WordPress/gutenberg#77527)
- Site Logo Block: Enable the media editor modal experiment for the crop button (WordPress/gutenberg#77548)
- Menu: Fix flaky submenu focus test (WordPress/gutenberg#77430)
- Add no-unsafe-render-order ESLint rule (WordPress/gutenberg#77428)
- UI: Update `@base-ui/react` from `1.4.0` to `1.4.1` (WordPress/gutenberg#77520)
- components: Menu popover render + surface/motion split (WordPress/gutenberg#77460)
- Upload Media: Use .jpg extension for HEIC-to-JPEG client conversion (WordPress/gutenberg#77506)
- Consolidate ESLint config into tools/eslint/ workspace package (WordPress/gutenberg#77215)
- UI: Add Drawer primitive (WordPress/gutenberg#76690)
- Fix import order in block-editor `custom-css.js` (WordPress/gutenberg#77566)
- Experiment: Follow up improvements on taxonomies(77497) (WordPress/gutenberg#77567)
- Client-side media: declare convert_format as boolean arg on sideload route (WordPress/gutenberg#77565)
- Media Upload Modal: Enhance filtering logic to support "text/vtt" and "video/*" (WordPress/gutenberg#77550)
- Media Editor: add cropper controls to the media editor modal (WordPress/gutenberg#77540)
- Media Editor: add zoom control and hide fine rotation on narrow viewports (WordPress/gutenberg#77585)
- Remove ZebulanStanphill from CODEOWNERS (WordPress/gutenberg#77586)
- Image editor: reserve inner gutter so crop handles stay accessible (WordPress/gutenberg#77547)
- Docs: Auto-generate per-block API reference pages from block.json (WordPress/gutenberg#77350)
- Embed: Fix variation upgrade undo trap (WordPress/gutenberg#77546)
- fix: block-mover up/down button tooltip positions (WordPress/gutenberg#77588)
- fix: edit-post back button tooltip position (WordPress/gutenberg#77587)
- Revert "Docs: Auto-generate per-block API reference pages from block.json (https://github.com/WordPress/gutenberg/pull/7…" (WordPress/gutenberg#77590)
- Experiment: Add delete action to taxonomy management (WordPress/gutenberg#77524)
- Tests: Remove duplicate mentions spec (WordPress/gutenberg#77593)
- Notes: Refactor to use new '@wordpress/ui' components (WordPress/gutenberg#77589)
- wp-build: Widen optional peer dependency ranges (WordPress/gutenberg#77568)
- Eslint: Improve design token linting for CSS declaration strings (WordPress/gutenberg#77384)
- ESLint: Add `use-import-as` rule (WordPress/gutenberg#77389)
- Experiments: register `gutenberg-dashboard-widgets` flag (WordPress/gutenberg#77569)
- Media: Move image output format filtering to upload response (WordPress/gutenberg#75793)
- Dashboard: register admin page route + sidebar menu (shell) (WordPress/gutenberg#77573)
- Experiment: Fix console errors/warnings  for taxonomies (WordPress/gutenberg#77601)
- Experiment: Improve `taxonomies` DataViews height (WordPress/gutenberg#77603)
- Experimental Image Cropper: Ensure focus is on canvas when dragging (WordPress/gutenberg#77591)
- Template parts: make 'Detach' context menu item consistent across patterns and template parts (WordPress/gutenberg#77581)
- Experimental Image Cropper: Tweak the keyboard interactions with drag handles and canvas (WordPress/gutenberg#77639)
- Fix: block-mover horizontal tooltip position (WordPress/gutenberg#77597)
- Experiment: Render taxonomy status as a Badge (WordPress/gutenberg#77635)
- Guidelines: Drop default_term from wp_guideline_type taxonomy (WordPress/gutenberg#77592)
- Form blocks: Update block categories for form, form-input, form-submission-notification, and form-submit-button (WordPress/gutenberg#61916)
- Experiment: Split status action to two actions, make them bulk-capable (WordPress/gutenberg#77637)
- ButtonGroup: Inline z-index (WordPress/gutenberg#77621)
- VisuallyHidden: Recommend @wordpress/ui and migrate usages (WordPress/gutenberg#77575)
- Experiment: Improve taxonomy `edit` action (WordPress/gutenberg#77605)
- FormToggle: Inline z-index (WordPress/gutenberg#77619)
- ResizableBox: Inline handle z-index (WordPress/gutenberg#77620)
- Build: Skip sourcemaps for WASM-inlined script module workers (WordPress/gutenberg#75993)
- RTC: Fix "Connection Lost" dialog when too many entities are loaded (WordPress/gutenberg#77631)
- Experiments: Rebuild the wp-admin Experiments screen on the wp-build routes pattern (WordPress/gutenberg#77443)
- Connectors: Treat network-active plugins as active in plugin status check (WordPress/gutenberg#77661)
- Update TypeScript to tsgo (7.0) (WordPress/gutenberg#77177)
- Revert tsgo update as it breaks trunk (WordPress/gutenberg#77680)
- Image editor: fix locked-ratio resize driver-axis on non-square images (WordPress/gutenberg#77664)
- Image editor: hold Shift while resizing to lock current aspect ratio (WordPress/gutenberg#77663)
- [Admin UI]: Move to CSS modules and implement logical properties (WordPress/gutenberg#77088)
- ui: Forward style and className on *.Popup to inner Base UI Popup (WordPress/gutenberg#77693)
- ui: Align WithCustomZIndex Storybook examples across overlays (WordPress/gutenberg#77648)
- ui: Uniform title and description styles across overlays (WordPress/gutenberg#77692)
- UI: Add `Autocomplete` primitive (WordPress/gutenberg#77642)
- Admin UI: change default heading level from h2 to h1 (WordPress/gutenberg#77617)
- ui/Dialog, ui/AlertDialog, ui/Drawer: support sticky header and footer (WordPress/gutenberg#77559)
- e2e: shorten visit-site-editor canvas-loader visible wait (WordPress/gutenberg#77725)
- Gutenberg Experiments: Ensure the experiment is active before outputting flags (WordPress/gutenberg#77728)
- Image editor: formalize cropper contract (WordPress/gutenberg#77668)
- Image Editor experiment: Pass theme aspect ratios to media editor (WordPress/gutenberg#77665)
- Media Editor Modal: save via Core's /edit modifiers (WordPress/gutenberg#77641)
- Experiment: Taxonomies new package and `add/edit` screens (WordPress/gutenberg#77657)
- Media editor: confirm before discarding unsaved changes (WordPress/gutenberg#77730)
- `FormTokenField`: Add `help` prop to render additional help text below the field (WordPress/gutenberg#77552)
- Migrate `test/integration` into `@wordpress/integration-tests` workspace (WordPress/gutenberg#77556)
- Tabs: Add classic theme styles to reset button defaults (WordPress/gutenberg#77607)
- Media Editor Modal: surface save failures as scoped snackbar notices (WordPress/gutenberg#77733)
- DataForm: Render field `description` as help text in the `array` control (WordPress/gutenberg#77554)
- Revisions: Improve screen reader accessibility for diff markers region and slider (WordPress/gutenberg#77660)
- fix: disable custom css command for non block themes (WordPress/gutenberg#77685)
- Experiments: Declare `@wordpress/base-styles` dependency (WordPress/gutenberg#77684)
- Notes: Refactor internals into smaller components (WordPress/gutenberg#77614)
- Connectors: Add role="list" wrapper to connector cards for valid ARIA structure (WordPress/gutenberg#77689)
- Admin UI: use UI Text component in header (WordPress/gutenberg#77372)
- I18N: Polyfill script module translations for WordPress < 7.0 (WordPress/gutenberg#77214)
- Refactor Admin UI / Breadcrumbs to use DS components and design tokens (WordPress/gutenberg#77012)
- ui: Unify hairline border across overlay popups (WordPress/gutenberg#77691)
- Base Styles: Remove stale z-index entries (WordPress/gutenberg#77714)
- CircularOptionPicker: Inline z-index values (WordPress/gutenberg#77715)
- ComplementaryArea: Inline z-index values (WordPress/gutenberg#77717)
- Disable TinyMCE: Warning instead of direct redirect (WordPress/gutenberg#77747)
- Tooltip: Fix flaky unit test (WordPress/gutenberg#77751)
- Admin UI: ensure consistent header spacing with and without actions (WordPress/gutenberg#76683)
- RTC: fix connection lost error on large update cause by mismatch between update size bounds check and expanded base64 update size (WordPress/gutenberg#77669)
- Add `@wordpress/grid` package (WordPress/gutenberg#77562)
- Base styles: update changelog to be clearer (WordPress/gutenberg#77767)
- Media editor modal: add interactive grid (WordPress/gutenberg#77771)
- Media editor: avoid double-mount flicker on open (WordPress/gutenberg#77732)
- Command Palette: Fix macOs label for sites unable to determine UA via PHP (WordPress/gutenberg#77638)
- Accordion: Remove invalid `isBlock` prop from `ToggleControl` (WordPress/gutenberg#77776)
- Guidelines: Extract initial public API methods (WordPress/gutenberg#77643)
- Embed: Restore paragraph with URL when undoing paste-to-embed transform (WordPress/gutenberg#77551)
- Guidelines: Split singleton REST API into dedicated /content-guidelines route (WordPress/gutenberg#77734)
- Allow EmptyState from @wordpress/ui in recommended components (WordPress/gutenberg#77765)
- Block Editor: Fix blockGap fallback parsing for nested var() values (WordPress/gutenberg#77750)
- Core Data: Remove redundant memoization wrapper from 'getQueriedItems' (WordPress/gutenberg#77483)
- Enhancement: Add descriptive name for docker container images (WordPress/gutenberg#67827)
- Fix: Add Missing Dimension Controls & Limited Customization in Accordion Block (WordPress/gutenberg#77780)
- Connectors: keep focus on action Button during install (WordPress/gutenberg#77544)
- Widgets: add widget-types data layer (WordPress/gutenberg#77752)
- Grid: fix `width: 'fill'` when tiles span multiple rows (WordPress/gutenberg#77769)
- CollapsibleCard: Prevent focus ring clipping by content overflow (WordPress/gutenberg#77667)
- Block editor: Remove stale reusable block z-index styles (WordPress/gutenberg#77774)
- Grid: add @types/jest devDependency (WordPress/gutenberg#77801)
- Env: Minor refactoring of cacheDirectoryPath evaluation (WordPress/gutenberg#77799)
- User Taxonomies: show Public field in create/edit form (WordPress/gutenberg#77802)
- Experiment: Taxonomies REST controller (WordPress/gutenberg#77697)
- Experiment: Taxonomies implement `auto-fill labels` (WordPress/gutenberg#77786)
- UI: Recommend Link component for use (WordPress/gutenberg#77505)
- ExternalLink: Align appearance with Link from @wordpress/ui (WordPress/gutenberg#77790)
- Disable TinyMCE: Repurpose experiment as Classic block removal (WordPress/gutenberg#77838)
- Media Upload Modal: Fix pagination and search (WordPress/gutenberg#77872)
- Disable Classic block: Always register, hide from inserter conditionally (WordPress/gutenberg#77840)
- Disable Classic block: Control inserter support via filter (WordPress/gutenberg#77845)
- Classic Block: Unwrap experiment to hide it from inserter (WordPress/gutenberg#77911)
- RTC: Attach sync observers after hydrating persisted CRDT doc (WordPress/gutenberg#77966)
- RTC: Fix compaction unit test (WordPress/gutenberg#77986)
- RTC: Fix divergence when two offline users reconnect (WordPress/gutenberg#77980)
- Fix PHP multisite tests (WordPress/gutenberg#77825)
- Connectors: Stop e2e capability restriction from leaking across specs (WordPress/gutenberg#77857)

Props adamsilverstein, jorbin, westonruter, wildworks.
Fixes #65558.
Built from https://develop.svn.wordpress.org/trunk@62581


git-svn-id: http://core.svn.wordpress.org/trunk@61861 1a063a9b-81f0-0310-95a4-ce76da25c4cd
KhushalSainS pushed a commit to KhushalSainS/wordpress-develop that referenced this pull request Jul 1, 2026
This updates the pinned commit hash of the Gutenberg repository from `7295bd91a3c2b64bb11dde0a12313210d9d16a12 ` (version `23.0.0`) to `585cf86bb6f408b1dc61175f75db016aa4760653` (version `23.1.0`).

A full list of changes included in this commit can be found on GitHub: https://github.com/WordPress/gutenberg/compare/v23.0.0..v23.1.0.

The following commits are included:
- Edit Site: Move show-icon-labels handling to specific edit-site call sites (WordPress/gutenberg#77287)
- Boot: Use `--wpds-cursor-control` design token (WordPress/gutenberg#77357)
- Image: Fix non-local image ID removal undo trap (WordPress/gutenberg#77367)
- Block Editor: Use `--wpds-cursor-control` design token (WordPress/gutenberg#77354)
- Test: Connectors Point to the righ page. (WordPress/gutenberg#77272)
- Commands: Use `--wpds-cursor-control` design token (WordPress/gutenberg#77358)
- UI: use Text in Notice.ActionLink typography (WordPress/gutenberg#77332)
- Jest setup: remove unneeded rAF polyfills (WordPress/gutenberg#77378)
- Fields: Use `--wpds-cursor-control` design token (WordPress/gutenberg#77373)
- Widgets: Use --wpds-cursor-control design token (WordPress/gutenberg#77368)
- EditPost: Use `--wpds-cursor-control` design token for interactive controls (WordPress/gutenberg#77360)
- Post Editor: Store metaboxes RTC-compatible flag on location entries (WordPress/gutenberg#77361)
- UI: Use shared style-imports types (WordPress/gutenberg#77388)
- Stop adding “noreferrer” to external links except File block. (WordPress/gutenberg#26968)
- Core Abilities: Export initialization promise as `ready` (WordPress/gutenberg#77254)
- Externalize react-dom/client (WordPress/gutenberg#77326)
- Data: Export and consolidate 'onSubKey' helper (WordPress/gutenberg#77364)
- Paragraph: Refactor replacement logic in 'useOnEnter' hook (WordPress/gutenberg#77383)
- Fix pseudo selector block style rendering in the editor (WordPress/gutenberg#76879)
- Tabs: Lock top-level structure and disable visibility controls (WordPress/gutenberg#77370)
- Share React CSS custom properties typing (WordPress/gutenberg#77394)
- Notes: Refactor and extract offset calculation logic (WordPress/gutenberg#77414)
- Tabs: Remove redundant version field from block.json (WordPress/gutenberg#77417)
- Latest Comments: Fix uneven padding issue causing mis-alignment (WordPress/gutenberg#77379)
- Workflow: Use --wpds-cursor-control design token (WordPress/gutenberg#77369)
- blocks: Port over some of the type information for @wordpress/blocks from DefinitelyTyped (WordPress/gutenberg#77393)
- Notes: Extract floating notes state into a dedicated store (WordPress/gutenberg#77424)
- Tabs: Handle duplicating tabs (WordPress/gutenberg#76449)
- Components: Refactor NavigableContainer from class to function component (WordPress/gutenberg#77171)
- UI: Fix focus-trap broken by ThemeProvider's display:contents (WordPress/gutenberg#77381)
- viewport visibility: use 'key' instead of 'value' for device type (WordPress/gutenberg#77410)
- Update changelog for blocks package (WordPress/gutenberg#77437)
- Tabs: Clean up Edit components (WordPress/gutenberg#77426)
- Media editor: remove unused dependency (WordPress/gutenberg#77438)
- Block Editor: Strip per-block custom CSS on save for users without edit_css (WordPress/gutenberg#76650)
- Ensure Post Template fallback styles don't apply when minimumColumnWidth is defined (WordPress/gutenberg#77411)
- UI: Upgrade title validation to cleanup-based re-validation (WordPress/gutenberg#77165)
- ui/Tabs: Fix `act()` warnings in tests (WordPress/gutenberg#77319)
- docs: Clarify UI package setup for different contexts (WordPress/gutenberg#77338)
- Fix: Preserve aspectRatio and scale when switching to wide/full align… (WordPress/gutenberg#76914)
- Link: Honor `openInNewTab` consistently (WordPress/gutenberg#77422)
- Block Supports: Add min width support to dimensions (WordPress/gutenberg#76949)
- Link: Remove underline from unstyled icon links (WordPress/gutenberg#77420)
- Theme: Update Terrazzo packages to 2.0 (WordPress/gutenberg#77432)
- Editor: Use `--wpds-cursor-control` design token (WordPress/gutenberg#77376)
- GlobalStylesUI: Use `--wpds-cursor-control` design token for interact… (WordPress/gutenberg#77335)
- Typescript: Migrate keyboard-shortcuts to TS (WordPress/gutenberg#76287)
- GlobalStylesUI: Remove unused CSS rule (WordPress/gutenberg#77456)
- Writing Flow: fix arrow keys skipping paragraph containing link (WordPress/gutenberg#77474)
- Ensure layout classnames are applied to the inner blocks wrapper and not to its siblings (WordPress/gutenberg#77408)
- Fix: Change Featured Image toggle label to 'Make image a link' (WordPress/gutenberg#71931)
- Autocomplete: Skip stale triggers from completed mentions (WordPress/gutenberg#77185)
- Fix: Add cursor pointer to the ariakit menu item component - Issue - WordPress/gutenberg#70411 (WordPress/gutenberg#70412)
- Guidelines CPT: Skip registration when post type already exists (WordPress/gutenberg#77486)
- ESLint: Introduce bulk suppressions workflow (WordPress/gutenberg#77392)
- Add heading level 1 for the fonts page (WordPress/gutenberg#77482)
- CollapsibleCard: Fix missing keyboard focus ring on the header chevron icon when rendered inside wp-admin (WordPress/gutenberg#77468)
- Docs: Add ESLint v10 migration guide and polish docs (WordPress/gutenberg#77217)
- Tabs: Fix missing keyboard focus ring on the panel in Windows High Contrast mode when rendered inside wp-admin (WordPress/gutenberg#77469)
- EditSite: Remove unused CSS rule (WordPress/gutenberg#77494)
- Card: Remove unused CardContext (WordPress/gutenberg#77463)
- design-system-mcp: Add new package for design system MCP tooling (WordPress/gutenberg#77159)
- Storybook: Fix component descriptions in manifest files (WordPress/gutenberg#77112)
- Notes: Reduce passes in useBlockComments memo and rename outputs (WordPress/gutenberg#77440)
- Upload Media: Enable concurrent sideload uploads (WordPress/gutenberg#75888)
- Deduplicate client-side image sizes with matching dimensions (WordPress/gutenberg#77036)
- Convert tests/unit to npm workspace (WordPress/gutenberg#77063)
- UI: Portal prop and Portal subcomponents for overlay Popups (WordPress/gutenberg#77452)
- Storybook: add global preview styles for @wordpress/ui overlays (WordPress/gutenberg#77451)
- Experiment: Add custom taxonomies (WordPress/gutenberg#77497)
- Storybook: Fix 'Open source file' links for storybook-local stories (WordPress/gutenberg#76758)
- UI Dialog: Add Description, modal context, and misc improvements (WordPress/gutenberg#77194)
- Docs: Update parameter type from `number` to `int` in CSS declaration methods (WordPress/gutenberg#77519)
- Fix: use node_modules/.bin/stylelint to avoid npm warnings on Node 24 (WordPress/gutenberg#77512)
- Text: Apply both heading and paragraph CSS defenses unconditionally (WordPress/gutenberg#77461)
- Notes: Compute note positions centrally in useFloatingBoard (WordPress/gutenberg#77433)
- Stylelint: Add cursor pointer rule and block-library override (WordPress/gutenberg#77501)
- Admin UI: Add visual prop to Page header component (WordPress/gutenberg#76469)
- Fix: post saving should be locked during media uploads (WordPress/gutenberg#76973)
- RTC: Fixed orphaned meta causing dirty editor state (WordPress/gutenberg#77529)
- Media Editor experiment: add experimental image editor and cropper (WordPress/gutenberg#77479)
- UI: Start recommending new Card components (WordPress/gutenberg#77423)
- Media Editor Modal: Add a media editor modal experiment (WordPress/gutenberg#77480)
- Expand support for `isElementVisible` (`VisuallyHidden`) (WordPress/gutenberg#77191)
- Experiments Page: Update labels for the media-related experiments to group them together and better clarify what the experiments do (WordPress/gutenberg#77536)
- Media Editor: render cropper in media editor modal for images (WordPress/gutenberg#77537)
- Tabs: Rename tabs blocks to follow WCAG Tabs pattern (WordPress/gutenberg#77418)
- [Video Block]: Update z-index for tracks popover to ensure proper stacking context (WordPress/gutenberg#77517)
- Guidelines: Make the CPT type-aware (WordPress/gutenberg#77491)
- Taxonomies: add spacing above Add Taxonomy modal actions (WordPress/gutenberg#77523)
- Taxonomies Route: Declare @wordpress/base-styles dependency (WordPress/gutenberg#77543)
- Taxonomies: warn when editing an existing taxonomy's slug (WordPress/gutenberg#77527)
- Site Logo Block: Enable the media editor modal experiment for the crop button (WordPress/gutenberg#77548)
- Menu: Fix flaky submenu focus test (WordPress/gutenberg#77430)
- Add no-unsafe-render-order ESLint rule (WordPress/gutenberg#77428)
- UI: Update `@base-ui/react` from `1.4.0` to `1.4.1` (WordPress/gutenberg#77520)
- components: Menu popover render + surface/motion split (WordPress/gutenberg#77460)
- Upload Media: Use .jpg extension for HEIC-to-JPEG client conversion (WordPress/gutenberg#77506)
- Consolidate ESLint config into tools/eslint/ workspace package (WordPress/gutenberg#77215)
- UI: Add Drawer primitive (WordPress/gutenberg#76690)
- Fix import order in block-editor `custom-css.js` (WordPress/gutenberg#77566)
- Experiment: Follow up improvements on taxonomies(77497) (WordPress/gutenberg#77567)
- Client-side media: declare convert_format as boolean arg on sideload route (WordPress/gutenberg#77565)
- Media Upload Modal: Enhance filtering logic to support "text/vtt" and "video/*" (WordPress/gutenberg#77550)
- Media Editor: add cropper controls to the media editor modal (WordPress/gutenberg#77540)
- Media Editor: add zoom control and hide fine rotation on narrow viewports (WordPress/gutenberg#77585)
- Remove ZebulanStanphill from CODEOWNERS (WordPress/gutenberg#77586)
- Image editor: reserve inner gutter so crop handles stay accessible (WordPress/gutenberg#77547)
- Docs: Auto-generate per-block API reference pages from block.json (WordPress/gutenberg#77350)
- Embed: Fix variation upgrade undo trap (WordPress/gutenberg#77546)
- fix: block-mover up/down button tooltip positions (WordPress/gutenberg#77588)
- fix: edit-post back button tooltip position (WordPress/gutenberg#77587)
- Revert "Docs: Auto-generate per-block API reference pages from block.json (https://github.com/WordPress/gutenberg/pull/7…" (WordPress/gutenberg#77590)
- Experiment: Add delete action to taxonomy management (WordPress/gutenberg#77524)
- Tests: Remove duplicate mentions spec (WordPress/gutenberg#77593)
- Notes: Refactor to use new '@wordpress/ui' components (WordPress/gutenberg#77589)
- wp-build: Widen optional peer dependency ranges (WordPress/gutenberg#77568)
- Eslint: Improve design token linting for CSS declaration strings (WordPress/gutenberg#77384)
- ESLint: Add `use-import-as` rule (WordPress/gutenberg#77389)
- Experiments: register `gutenberg-dashboard-widgets` flag (WordPress/gutenberg#77569)
- Media: Move image output format filtering to upload response (WordPress/gutenberg#75793)
- Dashboard: register admin page route + sidebar menu (shell) (WordPress/gutenberg#77573)
- Experiment: Fix console errors/warnings  for taxonomies (WordPress/gutenberg#77601)
- Experiment: Improve `taxonomies` DataViews height (WordPress/gutenberg#77603)
- Experimental Image Cropper: Ensure focus is on canvas when dragging (WordPress/gutenberg#77591)
- Template parts: make 'Detach' context menu item consistent across patterns and template parts (WordPress/gutenberg#77581)
- Experimental Image Cropper: Tweak the keyboard interactions with drag handles and canvas (WordPress/gutenberg#77639)
- Fix: block-mover horizontal tooltip position (WordPress/gutenberg#77597)
- Experiment: Render taxonomy status as a Badge (WordPress/gutenberg#77635)
- Guidelines: Drop default_term from wp_guideline_type taxonomy (WordPress/gutenberg#77592)
- Form blocks: Update block categories for form, form-input, form-submission-notification, and form-submit-button (WordPress/gutenberg#61916)
- Experiment: Split status action to two actions, make them bulk-capable (WordPress/gutenberg#77637)
- ButtonGroup: Inline z-index (WordPress/gutenberg#77621)
- VisuallyHidden: Recommend @wordpress/ui and migrate usages (WordPress/gutenberg#77575)
- Experiment: Improve taxonomy `edit` action (WordPress/gutenberg#77605)
- FormToggle: Inline z-index (WordPress/gutenberg#77619)
- ResizableBox: Inline handle z-index (WordPress/gutenberg#77620)
- Build: Skip sourcemaps for WASM-inlined script module workers (WordPress/gutenberg#75993)
- RTC: Fix "Connection Lost" dialog when too many entities are loaded (WordPress/gutenberg#77631)
- Experiments: Rebuild the wp-admin Experiments screen on the wp-build routes pattern (WordPress/gutenberg#77443)
- Connectors: Treat network-active plugins as active in plugin status check (WordPress/gutenberg#77661)
- Update TypeScript to tsgo (7.0) (WordPress/gutenberg#77177)
- Revert tsgo update as it breaks trunk (WordPress/gutenberg#77680)
- Image editor: fix locked-ratio resize driver-axis on non-square images (WordPress/gutenberg#77664)
- Image editor: hold Shift while resizing to lock current aspect ratio (WordPress/gutenberg#77663)
- [Admin UI]: Move to CSS modules and implement logical properties (WordPress/gutenberg#77088)
- ui: Forward style and className on *.Popup to inner Base UI Popup (WordPress/gutenberg#77693)
- ui: Align WithCustomZIndex Storybook examples across overlays (WordPress/gutenberg#77648)
- ui: Uniform title and description styles across overlays (WordPress/gutenberg#77692)
- UI: Add `Autocomplete` primitive (WordPress/gutenberg#77642)
- Admin UI: change default heading level from h2 to h1 (WordPress/gutenberg#77617)
- ui/Dialog, ui/AlertDialog, ui/Drawer: support sticky header and footer (WordPress/gutenberg#77559)
- e2e: shorten visit-site-editor canvas-loader visible wait (WordPress/gutenberg#77725)
- Gutenberg Experiments: Ensure the experiment is active before outputting flags (WordPress/gutenberg#77728)
- Image editor: formalize cropper contract (WordPress/gutenberg#77668)
- Image Editor experiment: Pass theme aspect ratios to media editor (WordPress/gutenberg#77665)
- Media Editor Modal: save via Core's /edit modifiers (WordPress/gutenberg#77641)
- Experiment: Taxonomies new package and `add/edit` screens (WordPress/gutenberg#77657)
- Media editor: confirm before discarding unsaved changes (WordPress/gutenberg#77730)
- `FormTokenField`: Add `help` prop to render additional help text below the field (WordPress/gutenberg#77552)
- Migrate `test/integration` into `@wordpress/integration-tests` workspace (WordPress/gutenberg#77556)
- Tabs: Add classic theme styles to reset button defaults (WordPress/gutenberg#77607)
- Media Editor Modal: surface save failures as scoped snackbar notices (WordPress/gutenberg#77733)
- DataForm: Render field `description` as help text in the `array` control (WordPress/gutenberg#77554)
- Revisions: Improve screen reader accessibility for diff markers region and slider (WordPress/gutenberg#77660)
- fix: disable custom css command for non block themes (WordPress/gutenberg#77685)
- Experiments: Declare `@wordpress/base-styles` dependency (WordPress/gutenberg#77684)
- Notes: Refactor internals into smaller components (WordPress/gutenberg#77614)
- Connectors: Add role="list" wrapper to connector cards for valid ARIA structure (WordPress/gutenberg#77689)
- Admin UI: use UI Text component in header (WordPress/gutenberg#77372)
- I18N: Polyfill script module translations for WordPress < 7.0 (WordPress/gutenberg#77214)
- Refactor Admin UI / Breadcrumbs to use DS components and design tokens (WordPress/gutenberg#77012)
- ui: Unify hairline border across overlay popups (WordPress/gutenberg#77691)
- Base Styles: Remove stale z-index entries (WordPress/gutenberg#77714)
- CircularOptionPicker: Inline z-index values (WordPress/gutenberg#77715)
- ComplementaryArea: Inline z-index values (WordPress/gutenberg#77717)
- Disable TinyMCE: Warning instead of direct redirect (WordPress/gutenberg#77747)
- Tooltip: Fix flaky unit test (WordPress/gutenberg#77751)
- Admin UI: ensure consistent header spacing with and without actions (WordPress/gutenberg#76683)
- RTC: fix connection lost error on large update cause by mismatch between update size bounds check and expanded base64 update size (WordPress/gutenberg#77669)
- Add `@wordpress/grid` package (WordPress/gutenberg#77562)
- Base styles: update changelog to be clearer (WordPress/gutenberg#77767)
- Media editor modal: add interactive grid (WordPress/gutenberg#77771)
- Media editor: avoid double-mount flicker on open (WordPress/gutenberg#77732)
- Command Palette: Fix macOs label for sites unable to determine UA via PHP (WordPress/gutenberg#77638)
- Accordion: Remove invalid `isBlock` prop from `ToggleControl` (WordPress/gutenberg#77776)
- Guidelines: Extract initial public API methods (WordPress/gutenberg#77643)
- Embed: Restore paragraph with URL when undoing paste-to-embed transform (WordPress/gutenberg#77551)
- Guidelines: Split singleton REST API into dedicated /content-guidelines route (WordPress/gutenberg#77734)
- Allow EmptyState from @wordpress/ui in recommended components (WordPress/gutenberg#77765)
- Block Editor: Fix blockGap fallback parsing for nested var() values (WordPress/gutenberg#77750)
- Core Data: Remove redundant memoization wrapper from 'getQueriedItems' (WordPress/gutenberg#77483)
- Enhancement: Add descriptive name for docker container images (WordPress/gutenberg#67827)
- Fix: Add Missing Dimension Controls & Limited Customization in Accordion Block (WordPress/gutenberg#77780)
- Connectors: keep focus on action Button during install (WordPress/gutenberg#77544)
- Widgets: add widget-types data layer (WordPress/gutenberg#77752)
- Grid: fix `width: 'fill'` when tiles span multiple rows (WordPress/gutenberg#77769)
- CollapsibleCard: Prevent focus ring clipping by content overflow (WordPress/gutenberg#77667)
- Block editor: Remove stale reusable block z-index styles (WordPress/gutenberg#77774)
- Grid: add @types/jest devDependency (WordPress/gutenberg#77801)
- Env: Minor refactoring of cacheDirectoryPath evaluation (WordPress/gutenberg#77799)
- User Taxonomies: show Public field in create/edit form (WordPress/gutenberg#77802)
- Experiment: Taxonomies REST controller (WordPress/gutenberg#77697)
- Experiment: Taxonomies implement `auto-fill labels` (WordPress/gutenberg#77786)
- UI: Recommend Link component for use (WordPress/gutenberg#77505)
- ExternalLink: Align appearance with Link from @wordpress/ui (WordPress/gutenberg#77790)
- Disable TinyMCE: Repurpose experiment as Classic block removal (WordPress/gutenberg#77838)
- Media Upload Modal: Fix pagination and search (WordPress/gutenberg#77872)
- Disable Classic block: Always register, hide from inserter conditionally (WordPress/gutenberg#77840)
- Disable Classic block: Control inserter support via filter (WordPress/gutenberg#77845)
- Classic Block: Unwrap experiment to hide it from inserter (WordPress/gutenberg#77911)
- RTC: Attach sync observers after hydrating persisted CRDT doc (WordPress/gutenberg#77966)
- RTC: Fix compaction unit test (WordPress/gutenberg#77986)
- RTC: Fix divergence when two offline users reconnect (WordPress/gutenberg#77980)
- Fix PHP multisite tests (WordPress/gutenberg#77825)
- Connectors: Stop e2e capability restriction from leaking across specs (WordPress/gutenberg#77857)

Props adamsilverstein, jorbin, westonruter, wildworks.
Fixes #65558.

git-svn-id: https://develop.svn.wordpress.org/trunk@62581 602fd350-edb4-49c9-b593-d223f7449a82
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

[Package] Admin UI /packages/admin-ui [Type] Enhancement A suggestion for improvement.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants