diff --git a/.gitignore b/.gitignore
index 4cd1d9706b7370..1d75f9f429d869 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,6 +3,7 @@ build
build-module
build-style
build-types
+build-wp
node_modules
gutenberg.zip
coverage
diff --git a/backport-changelog/6.8/7895.md b/backport-changelog/6.8/7895.md
new file mode 100644
index 00000000000000..4750ab545ada3b
--- /dev/null
+++ b/backport-changelog/6.8/7895.md
@@ -0,0 +1,3 @@
+https://github.com/WordPress/wordpress-develop/pull/7895
+
+* https://github.com/WordPress/gutenberg/pull/66459
diff --git a/backport-changelog/6.8/7903.md b/backport-changelog/6.8/7903.md
new file mode 100644
index 00000000000000..cb20d8d2dd2b1b
--- /dev/null
+++ b/backport-changelog/6.8/7903.md
@@ -0,0 +1,3 @@
+https://github.com/WordPress/wordpress-develop/pull/7903
+
+* https://github.com/WordPress/gutenberg/pull/67199
diff --git a/backport-changelog/6.8/7909.md b/backport-changelog/6.8/7909.md
new file mode 100644
index 00000000000000..32a441ef296a2d
--- /dev/null
+++ b/backport-changelog/6.8/7909.md
@@ -0,0 +1,3 @@
+https://github.com/WordPress/wordpress-develop/pull/7909
+
+* https://github.com/WordPress/gutenberg/pull/67330
diff --git a/changelog.txt b/changelog.txt
index 1a6b45a37fc7cf..9e07615adf43f6 100644
--- a/changelog.txt
+++ b/changelog.txt
@@ -291,6 +291,545 @@ The following contributors merged PRs in this release:
+= 19.8.0-rc.1 =
+
+
+## Changelog
+
+### Enhancements
+
+#### Block Library
+- Details block: Use summary content as default label. ([67217](https://github.com/WordPress/gutenberg/pull/67217))
+- Make social icon navigation one arrow keypress. ([64883](https://github.com/WordPress/gutenberg/pull/64883))
+- Page List : Add border and spacing support. ([66385](https://github.com/WordPress/gutenberg/pull/66385))
+- Query Loop block: Remove 'add new post' prompt in the sidebar. ([67189](https://github.com/WordPress/gutenberg/pull/67189))
+- Query block: Update Enhanced Pagination help text. ([67173](https://github.com/WordPress/gutenberg/pull/67173))
+- Social Link: Add contentOnly editing support. ([66622](https://github.com/WordPress/gutenberg/pull/66622))
+
+#### Components
+- Autocomplete: Increase option height. ([67214](https://github.com/WordPress/gutenberg/pull/67214))
+- CircularOptionPicker: Update Button sizes. ([67285](https://github.com/WordPress/gutenberg/pull/67285))
+- ColorPalette: Disable `Clear` button if there's no color value. ([67108](https://github.com/WordPress/gutenberg/pull/67108))
+- ColorPicker: Update sizes of format select and copy button. ([67093](https://github.com/WordPress/gutenberg/pull/67093))
+- ComboboxControl: Update reset button size. ([67215](https://github.com/WordPress/gutenberg/pull/67215))
+
+#### DataViews
+- Add density option to `table` layout. ([67170](https://github.com/WordPress/gutenberg/pull/67170))
+- DataForm: Enable fields to declare a different layout. ([66531](https://github.com/WordPress/gutenberg/pull/66531))
+- DataViews list layout: Hide actions menu when there is only one action and is primary. ([67015](https://github.com/WordPress/gutenberg/pull/67015))
+- DataViews table layout: Hide actions menu when there is only one action and is primary. ([67020](https://github.com/WordPress/gutenberg/pull/67020))
+- Reduce the size of action button in Grid layout. ([67032](https://github.com/WordPress/gutenberg/pull/67032))
+- DataViews: Allow register/unregister fields. ([67175](https://github.com/WordPress/gutenberg/pull/67175))
+
+#### Global Styles
+- Block Supports: Extend stabilization to common experimental block support flags. ([67018](https://github.com/WordPress/gutenberg/pull/67018))
+- Borders: Stabilize border block supports within block processing. ([66918](https://github.com/WordPress/gutenberg/pull/66918))
+- Site Editor > Styles: Open styles inspector when clicking preview canvas. ([66996](https://github.com/WordPress/gutenberg/pull/66996))
+
+#### Media
+- Block Editor: Add notice action to revert image to original after cropping. ([67314](https://github.com/WordPress/gutenberg/pull/67314))
+- Block Editor: Add success notices for image editing. ([67312](https://github.com/WordPress/gutenberg/pull/67312))
+
+#### REST API
+- Feature: Set editor rendering mode by post type. ([62304](https://github.com/WordPress/gutenberg/pull/62304))
+- Terms: Respect order specified by register_taxonomy(). ([67154](https://github.com/WordPress/gutenberg/pull/67154))
+
+#### Zoom Out
+- Leave help text regardless of zoom state. ([67132](https://github.com/WordPress/gutenberg/pull/67132))
+- Preserve footer template bar in zoom out. ([67135](https://github.com/WordPress/gutenberg/pull/67135))
+- Add section styles switch button in block toolbar in zoom out mode. ([67140](https://github.com/WordPress/gutenberg/pull/67140))
+
+#### Post Editor
+- Move default template types and template part areas to REST API. ([66459](https://github.com/WordPress/gutenberg/pull/66459))
+- Move `usePostFields` to `wordpress/editor` package. ([67024](https://github.com/WordPress/gutenberg/pull/67024))
+
+#### Site Editor
+- Blocks: Adds check for parent before showing convert to pattern button. ([66158](https://github.com/WordPress/gutenberg/pull/66158))
+- Try dark toolbar for the write mode. ([66116](https://github.com/WordPress/gutenberg/pull/66116))
+
+#### Design Tools
+- Heading: Hide border controls by default. ([67105](https://github.com/WordPress/gutenberg/pull/67105))
+- Font family preview in the font family picker. ([67118](https://github.com/WordPress/gutenberg/pull/67118))
+
+### Bug Fixes
+
+
+
+
+#### Block Library
+- Fix block mover clickable area. ([67261](https://github.com/WordPress/gutenberg/pull/67261))
+- Fix dropping media from inserter into Cover block. ([67056](https://github.com/WordPress/gutenberg/pull/67056))
+- Fix: Preserve Display Preview State in File Block. ([67263](https://github.com/WordPress/gutenberg/pull/67263))
+- Paragraph: Update condition for rendering Drop Cap for a selected block. ([67111](https://github.com/WordPress/gutenberg/pull/67111))
+- RSS block: Check for description field before rendering excerpt. ([66985](https://github.com/WordPress/gutenberg/pull/66985))
+- Resolve search block button text overlapping issue. ([66868](https://github.com/WordPress/gutenberg/pull/66868))
+- Social Links: Fix font family and weight inconsistency in editor. ([67204](https://github.com/WordPress/gutenberg/pull/67204))
+
+#### Components
+- Composite: Restore `Hover` and `Typeahead` functionality. ([67212](https://github.com/WordPress/gutenberg/pull/67212))
+- Menu.ItemHelpText: Better line breaking. ([67011](https://github.com/WordPress/gutenberg/pull/67011))
+- SlotFill: Fix a bug with storing stale fillProps. ([67000](https://github.com/WordPress/gutenberg/pull/67000))
+- Storybook: Fix DataViews layout. ([66999](https://github.com/WordPress/gutenberg/pull/66999))
+- `FormFileUpload`: Prevent HEIC and HEIF files from always being uploaded on Safari. ([67139](https://github.com/WordPress/gutenberg/pull/67139))
+
+#### Block Editor
+- Add all color palettes to select from editor panel. ([65148](https://github.com/WordPress/gutenberg/pull/65148))
+- Correctly mark Block Comment SlotFills private. ([67271](https://github.com/WordPress/gutenberg/pull/67271))
+- Fix media placeholder to only activate for media objects. ([66986](https://github.com/WordPress/gutenberg/pull/66986))
+- Rich text: Preserve comments. ([62128](https://github.com/WordPress/gutenberg/pull/62128))
+- Fix TS types for the editor package. ([67196](https://github.com/WordPress/gutenberg/pull/67196))
+- PostTitle: Exit early when post type doesn't support titles. ([67086](https://github.com/WordPress/gutenberg/pull/67086))
+
+#### Global Styles
+- Avoid zooming out when browsing styles if the preview mode is active. ([67190](https://github.com/WordPress/gutenberg/pull/67190))
+- Remove styles from blocks' previews. ([67144](https://github.com/WordPress/gutenberg/pull/67144))
+- Style panel: Use correct revisions count. ([67180](https://github.com/WordPress/gutenberg/pull/67180))
+- Theme JSON: Include block style variations in path only output of get_block_nodes. ([66948](https://github.com/WordPress/gutenberg/pull/66948))
+- Fix: Logic for Highlight/text-color format availability. ([65530](https://github.com/WordPress/gutenberg/pull/65530))
+- Fix complex variation selectors when using selectors API. ([67061](https://github.com/WordPress/gutenberg/pull/67061))
+#### Site Editor
+- Prevent Pre-Publish Panel from Displaying Incorrect Information After Navigating away. ([67010](https://github.com/WordPress/gutenberg/pull/67010))
+- Site Editor Sidebar: Fixed focus/hover style for navigation item buttons. ([67251](https://github.com/WordPress/gutenberg/pull/67251))
+- Site Hub: Fix height in mobile layout. ([67110](https://github.com/WordPress/gutenberg/pull/67110))
+- Site Editor: Styles: Fix inspector opening. ([67004](https://github.com/WordPress/gutenberg/pull/67004))
+- Improve accessibility and consistency of the 'Last modified' Revisions button. ([66606](https://github.com/WordPress/gutenberg/pull/66606))
+- Remove styles from examples. ([67098](https://github.com/WordPress/gutenberg/pull/67098))
+- Editor: Correctly select post title support in 'DocumentOutline'. ([67109](https://github.com/WordPress/gutenberg/pull/67109))
+
+
+#### DataViews
+- Fix action visibility logic. ([67197](https://github.com/WordPress/gutenberg/pull/67197))
+- Fix primary field misalignment in grid layout. ([66995](https://github.com/WordPress/gutenberg/pull/66995))
+- Fix spacing when combining combined fields. ([67226](https://github.com/WordPress/gutenberg/pull/67226))
+
+#### Zoom Out
+- Zoom In/Out to correct canvas location. ([66917](https://github.com/WordPress/gutenberg/pull/66917))
+- Zoom in/out to correct location. ([67126](https://github.com/WordPress/gutenberg/pull/67126))
+- Zoom Out: Disable zooming out when Distraction Free mode is activated. ([67028](https://github.com/WordPress/gutenberg/pull/67028))
+
+#### Layout
+- Allow flex justification controls to be disabled at the block level. ([67059](https://github.com/WordPress/gutenberg/pull/67059))
+- Show vertical alignment toolbar with allowSwitching enabled. ([67022](https://github.com/WordPress/gutenberg/pull/67022))
+
+#### Patterns
+- Fix: JavaScript error when pattern category is unregistered. ([67063](https://github.com/WordPress/gutenberg/pull/67063))
+- Block Locking: Remove edit locking for Synced Patterns. ([67021](https://github.com/WordPress/gutenberg/pull/67021))
+
+### Accessibility
+
+#### Components
+- ColorPicker: Add accessible label for copy button. ([67094](https://github.com/WordPress/gutenberg/pull/67094))
+- Modal: Increase size of the Close button. ([66792](https://github.com/WordPress/gutenberg/pull/66792))
+- DataViews: Fix focus loss when removing all filters or resetting. ([67003](https://github.com/WordPress/gutenberg/pull/67003))
+
+#### Block Library
+- Improve accessibility of the video track editor. ([66832](https://github.com/WordPress/gutenberg/pull/66832))
+- Navigation: Fix 'ariaLabel' block support. ([66943](https://github.com/WordPress/gutenberg/pull/66943))
+
+#### Post Editor
+- Improve the featured image UI when it cannot retrieve the image file and data. ([66936](https://github.com/WordPress/gutenberg/pull/66936))
+
+### Experiments
+
+- Inline Commenting: Update placement of reply input and add author info header. ([66580](https://github.com/WordPress/gutenberg/pull/66580))
+- Place "Write mode" functionality behind a Gutenberg experiment. ([67008](https://github.com/WordPress/gutenberg/pull/67008))
+
+### Documentation
+
+- Add documentation about required Core changes when updating minimum WordPress version. ([67167](https://github.com/WordPress/gutenberg/pull/67167))
+- BoxControl: Auto-generate readme. ([67284](https://github.com/WordPress/gutenberg/pull/67284))
+- Components contributing guide: Fix relative links. ([67323](https://github.com/WordPress/gutenberg/pull/67323))
+- DataViews: Reorganize documentation for actions. ([67159](https://github.com/WordPress/gutenberg/pull/67159))
+- Docs: Correct `@return` type in `block_core_query_disable_enhanced_pagination()`. ([67128](https://github.com/WordPress/gutenberg/pull/67128))
+- Feat: Storybook: Improve component organisation - Layout Category - Issue #66275. ([66659](https://github.com/WordPress/gutenberg/pull/66659))
+- Feat: Storybook: Improve component organisation - Selection & Input Category - Issue #66275. ([66635](https://github.com/WordPress/gutenberg/pull/66635))
+- GradientPicker: Auto-generate readme. ([67250](https://github.com/WordPress/gutenberg/pull/67250))
+- Icon: Auto-generate readme. ([67282](https://github.com/WordPress/gutenberg/pull/67282))
+- Icon: Improve `icon` prop usage documentation in Storybook. ([67280](https://github.com/WordPress/gutenberg/pull/67280))
+- Storybook: Restore stable components back into categories. ([67216](https://github.com/WordPress/gutenberg/pull/67216))
+- Update BlockMover Stories and README. ([66519](https://github.com/WordPress/gutenberg/pull/66519))
+- Update custom store readme to use thunks instead of controls. ([67006](https://github.com/WordPress/gutenberg/pull/67006))
+- Update versions-in-wordpress.md. ([67298](https://github.com/WordPress/gutenberg/pull/67298))
+
+### Code Quality
+
+- ESLint: Enable `eslint-plugin-react-compiler`. ([61788](https://github.com/WordPress/gutenberg/pull/61788))
+- Extract selectors from useResolveEditedEntity hook. ([67031](https://github.com/WordPress/gutenberg/pull/67031))
+- Pattern: Remove backward compatibility code for WordPress < 6.4. ([67131](https://github.com/WordPress/gutenberg/pull/67131))
+- Post fields: Move `author` from `edit-site` to `fields` package. ([66939](https://github.com/WordPress/gutenberg/pull/66939))
+- Posts DataViews: Refactor the router to use route registration. ([67160](https://github.com/WordPress/gutenberg/pull/67160))
+- Comments controller: Fix issue where comments are allowed when closed. ([66976](https://github.com/WordPress/gutenberg/pull/66976))
+- Fix fatal error in in_array call in post_type_default_rendering_mode. ([67225](https://github.com/WordPress/gutenberg/pull/67225))
+- Data: Add changelog for Redux update. ([66968](https://github.com/WordPress/gutenberg/pull/66968))
+
+#### Components
+- BorderBoxControl: Suppress redundant warnings for deprecated 36px size. ([67213](https://github.com/WordPress/gutenberg/pull/67213))
+- ComboboxControl : Deprecate 36px default size. ([66900](https://github.com/WordPress/gutenberg/pull/66900))
+- CustomGradientPicker: Prepare `Button`s for 40px default size. ([67286](https://github.com/WordPress/gutenberg/pull/67286))
+- Dashicons: Remove non-existent icons from type. ([67235](https://github.com/WordPress/gutenberg/pull/67235))
+- DimensionControl: Deprecate 36px default size. ([66705](https://github.com/WordPress/gutenberg/pull/66705))
+- Feat: Adds the deprecation warning for 36px default size in range control. ([66721](https://github.com/WordPress/gutenberg/pull/66721))
+- FontSizePicker : Deprecate 36px default size. ([66920](https://github.com/WordPress/gutenberg/pull/66920))
+- Remove createPrivateSlotFill function. ([67238](https://github.com/WordPress/gutenberg/pull/67238))
+- SlotFill: Fix dependencies of registration effects, deduplicate code. ([67071](https://github.com/WordPress/gutenberg/pull/67071))
+- SlotFill: Remove registration API from useSlot result. ([67070](https://github.com/WordPress/gutenberg/pull/67070))
+- SlotFill: Rewrite base Slot to functional, unify rerenderable refs. ([67153](https://github.com/WordPress/gutenberg/pull/67153))
+- TextControl: Deprecate 36px default size. ([66745](https://github.com/WordPress/gutenberg/pull/66745))
+- ToggleGroupControl : Deprecate 36px default size. ([66747](https://github.com/WordPress/gutenberg/pull/66747))
+
+#### Post Editor
+- ESLint: Bump `eslint-plugin-react-compiler` to latest beta. ([67106](https://github.com/WordPress/gutenberg/pull/67106))
+- Edit Post: Refactor 'MetaBoxVisibility' component. ([67265](https://github.com/WordPress/gutenberg/pull/67265))
+- Edit Post: Remove unused 'hasHistory' flag. ([67293](https://github.com/WordPress/gutenberg/pull/67293))
+- Editor: Update focus return handler for the Featured Image. ([67236](https://github.com/WordPress/gutenberg/pull/67236))
+- Make `BlockManager` component reusable. ([67052](https://github.com/WordPress/gutenberg/pull/67052))
+- Preferences: Use hooks instead of HoC in 'EnableCustomFieldsOption'. ([67023](https://github.com/WordPress/gutenberg/pull/67023))
+- Preferences: Use hooks instead of HoC in 'EnablePanelOption'. ([66994](https://github.com/WordPress/gutenberg/pull/66994))
+- Preferences: Use hooks instead of HoC in 'EnablePublishSidebarOption'. ([67002](https://github.com/WordPress/gutenberg/pull/67002))
+
+#### Block Library
+- Fix React Compiler error for shortcuts. ([67019](https://github.com/WordPress/gutenberg/pull/67019))
+- Home Link: Remove label attribute synchronization. ([67151](https://github.com/WordPress/gutenberg/pull/67151))
+- Use rems for Nav overlay left padding. ([67168](https://github.com/WordPress/gutenberg/pull/67168))
+- useBlockNameForPatterns: Refactor as a single useSelect call. ([67171](https://github.com/WordPress/gutenberg/pull/67171))
+- Navigation Block: Remove obsolete Block Hooks filters. ([64676](https://github.com/WordPress/gutenberg/pull/64676))
+- [mini] 🧹 remove obsolete rich text css. ([67264](https://github.com/WordPress/gutenberg/pull/67264))
+
+#### Global Styles
+- Don't call store actions during the render. ([67146](https://github.com/WordPress/gutenberg/pull/67146))
+- Edit Site: Fix settings mutation in `ScreenBlock`. ([67085](https://github.com/WordPress/gutenberg/pull/67085))
+- Remove unused 'Fragment' import. ([67104](https://github.com/WordPress/gutenberg/pull/67104))
+
+#### Block Editor
+- Block Manager: Make it a private component in the block editor package. ([67255](https://github.com/WordPress/gutenberg/pull/67255))
+- Inserter: Set initial active tab ID during render. ([67103](https://github.com/WordPress/gutenberg/pull/67103))
+
+#### Site Editor
+- Deprecate edited entity state. ([66965](https://github.com/WordPress/gutenberg/pull/66965))
+- Remove redundant style-edit route. ([67057](https://github.com/WordPress/gutenberg/pull/67057))
+
+### Tools
+
+#### Testing
+- Fix ESLint Jest reporting entire body of the test function rather than the identifier. ([67222](https://github.com/WordPress/gutenberg/pull/67222))
+- Fix typo in use-block-sync tests. ([67145](https://github.com/WordPress/gutenberg/pull/67145))
+- Migrate Gradle wrapper validation action. ([66602](https://github.com/WordPress/gutenberg/pull/66602))
+
+#### Plugin
+- Bump minimum required WordPress version to 6.6. ([67117](https://github.com/WordPress/gutenberg/pull/67117))
+- Add #7895 Core Backport PR to the changelog. ([67319](https://github.com/WordPress/gutenberg/pull/67319))
+- WP Scripts: Revert changes that inline CSS imports early in the build process. ([66975](https://github.com/WordPress/gutenberg/pull/66975))
+
+## First-time contributors
+
+The following PRs were merged by first-time contributors:
+
+- @AKSHAT2802: Add all color palettes to select from editor panel. ([65148](https://github.com/WordPress/gutenberg/pull/65148))
+- @benazeer-ben: Page List : Add border and spacing support. ([66385](https://github.com/WordPress/gutenberg/pull/66385))
+- @himanshupathak95: Menu.ItemHelpText: Better line breaking. ([67011](https://github.com/WordPress/gutenberg/pull/67011))
+- @SainathPoojary: Social Links: Fix font family and weight inconsistency in editor. ([67204](https://github.com/WordPress/gutenberg/pull/67204))
+- @sarthaknagoshe2002: Prevent Pre-Publish Panel from Displaying Incorrect Information After Navigating away. ([67010](https://github.com/WordPress/gutenberg/pull/67010))
+- @Sukhendu2002: Fix: Preserve Display Preview State in File Block. ([67263](https://github.com/WordPress/gutenberg/pull/67263))
+
+
+## Contributors
+
+The following contributors merged PRs in this release:
+
+@aaronrobertshaw @afercia @ajlende @akasunil @AKSHAT2802 @benazeer-ben @benniledl @carolinan @cbravobernal @desrosj @dhruvang21 @dougwollison @ellatrix @getdave @gigitux @gziolo @hbhalodia @himanshupathak95 @Infinite-Null @jeryj @jsnajdr @juanfra @louwie17 @Mamaduka @manzoorwanijk @matiasbenedetto @mcsf @michalczaplinski @miminari @mirka @ndiego @ntsekouras @oandregal @ockham @PARTHVATALIYA @ramonjd @SainathPoojary @SantosGuillamot @sarthaknagoshe2002 @snehapatil2001 @Soean @Sukhendu2002 @t-hamano @talldan @tellthemachines @TylerB24890 @tyxla @up1512001 @vipul0425 @yogeshbhutkar @youknowriad
+
+
+= 19.7.0 =
+
+## Changelog
+
+### Enhancements
+
+- Add "show template" to preview dropdown. ([66514](https://github.com/WordPress/gutenberg/pull/66514))
+- Iframe: Always enable for block themes, in core too. ([66800](https://github.com/WordPress/gutenberg/pull/66800))
+- Media Utils: Add experimental `sideloadMedia`. ([66378](https://github.com/WordPress/gutenberg/pull/66378))
+- Post fields: Clean up. ([66941](https://github.com/WordPress/gutenberg/pull/66941))
+- Post fields: Extract `title` from `edit-site` to `fields` package. ([66940](https://github.com/WordPress/gutenberg/pull/66940))
+- Post fields: Move `comment_status` from edit-site to fields package. ([66934](https://github.com/WordPress/gutenberg/pull/66934))
+- Post fields: Move `date` fields from `edit-site` to `fields` package. ([66938](https://github.com/WordPress/gutenberg/pull/66938))
+- Post fields: Move `status` from `edit-site` to `fields`. ([66937](https://github.com/WordPress/gutenberg/pull/66937))
+- Relocate “View” external link to end of editor header controls. ([66785](https://github.com/WordPress/gutenberg/pull/66785))
+
+#### Block Library
+- Added toggle control to set any image as feature image if no feature image is set for post. ([65896](https://github.com/WordPress/gutenberg/pull/65896))
+- Improve cover z-index solution. ([66249](https://github.com/WordPress/gutenberg/pull/66249))
+- Post Content: Add border and spacing support. ([66366](https://github.com/WordPress/gutenberg/pull/66366))
+- Query Loop: Use templateSlug and postType for more context. ([65820](https://github.com/WordPress/gutenberg/pull/65820))
+- Update text case of "Starter Content". ([66954](https://github.com/WordPress/gutenberg/pull/66954))
+- [Details Block]: Adds anchor support in details block. ([66734](https://github.com/WordPress/gutenberg/pull/66734))
+
+#### Components
+- Guide: Use small size button for page controls. ([66607](https://github.com/WordPress/gutenberg/pull/66607))
+- MenuItem: Add 40px size prop on Button. ([66596](https://github.com/WordPress/gutenberg/pull/66596))
+- Notice: Add appropriate size props to Buttons. ([66593](https://github.com/WordPress/gutenberg/pull/66593))
+- PaletteEdit: Add appropriate size props to Buttons. ([66590](https://github.com/WordPress/gutenberg/pull/66590))
+- Popover: Add small size prop to close button. ([66587](https://github.com/WordPress/gutenberg/pull/66587))
+
+#### Global Styles
+- Global styles revisions: Move focus and active state to list item. ([66780](https://github.com/WordPress/gutenberg/pull/66780))
+- Site editor: Integrate global styles controls and style book preview into the styles panel. ([65619](https://github.com/WordPress/gutenberg/pull/65619))
+
+#### DataViews
+- DataViews Fields API: Default getValueFromId supports nested objects. ([66890](https://github.com/WordPress/gutenberg/pull/66890))
+
+#### Block Editor
+- Inserter: Add 'Starter Content' category to the inserter. ([66819](https://github.com/WordPress/gutenberg/pull/66819))
+
+#### Zoom Out
+- Enable zoom out mode for non-iframe editor. ([66789](https://github.com/WordPress/gutenberg/pull/66789))
+
+#### Themes
+- Theme JSON Resolver: Remove theme json merge in resolve_theme_file_uris. ([66662](https://github.com/WordPress/gutenberg/pull/66662))
+
+#### Edit Mode
+- Image block: Add support for "more" dropdown for additional tools in Write mode. ([66605](https://github.com/WordPress/gutenberg/pull/66605))
+
+#### Style Book
+- Add a landing section to stylebook tabs. ([66545](https://github.com/WordPress/gutenberg/pull/66545))
+
+#### Media
+- Media Library: Expose filters dropdown for individual images, such as with the Image block. ([65965](https://github.com/WordPress/gutenberg/pull/65965))
+
+
+### Bug Fixes
+
+- Block toolbar: Restrict visible child calculation to known blocks. ([66702](https://github.com/WordPress/gutenberg/pull/66702))
+- ComplementaryArea: Fix button position. ([66677](https://github.com/WordPress/gutenberg/pull/66677))
+- Fix Paragraph appender layout shift (building on 66061). ([66779](https://github.com/WordPress/gutenberg/pull/66779))
+- Fix: Set the `fit-content` width for images that are not `.svg`. ([66643](https://github.com/WordPress/gutenberg/pull/66643))
+- Preference modal: Avoid fetching all reusable blocks when the site editor loads. ([66621](https://github.com/WordPress/gutenberg/pull/66621))
+- Revert "Set image width to `fit-content` to solve aspect ratio problems in Firefox. (#66217)". ([66804](https://github.com/WordPress/gutenberg/pull/66804))
+- Safari: Fix site editor template error. ([66647](https://github.com/WordPress/gutenberg/pull/66647))
+- Safari: Prevent focus capturing caused by flex display. ([66402](https://github.com/WordPress/gutenberg/pull/66402))
+- Select Mode: Hide tool selector in the post editor and force design mode. ([66784](https://github.com/WordPress/gutenberg/pull/66784))
+- Shadow panel: Make the delete modal text translatable. ([66712](https://github.com/WordPress/gutenberg/pull/66712))
+- Site Editor: Fix template for page-on-front option. ([66739](https://github.com/WordPress/gutenberg/pull/66739))
+- WP Scripts: Make watch mode more resilient for developer errors. ([66752](https://github.com/WordPress/gutenberg/pull/66752))
+- getDefaultTemplateId: Ensure entity configuration is loaded. ([66650](https://github.com/WordPress/gutenberg/pull/66650))
+- Comments controller: fix issue where comments are allowed when closed (https://github.com/WordPress/gutenberg/pull/66976)
+
+#### Block Library
+- Cover: Fix media library image selection. ([66782](https://github.com/WordPress/gutenberg/pull/66782))
+- Cover: Show DropZone only when dragging withing the block. ([66912](https://github.com/WordPress/gutenberg/pull/66912))
+- Media & Text: Set `.wp-block-media-text__media a` display to block. ([66915](https://github.com/WordPress/gutenberg/pull/66915))
+- Prevent duplicate post format taxonomy queries. ([66627](https://github.com/WordPress/gutenberg/pull/66627))
+- Query Loop: Check for postTypeFromContext before using it. ([66655](https://github.com/WordPress/gutenberg/pull/66655))
+- Query Loop: Remove postTypeFromContext. ([66681](https://github.com/WordPress/gutenberg/pull/66681))
+
+#### Block Editor
+- Appender: Fix initial position. ([66711](https://github.com/WordPress/gutenberg/pull/66711))
+- Appender: Fix outside canvas styles. ([66630](https://github.com/WordPress/gutenberg/pull/66630))
+- Block Inspector: Restore bottom margin for RadioControl. ([66688](https://github.com/WordPress/gutenberg/pull/66688))
+- Iframed editor: Fix relative wp-content URLs. ([66751](https://github.com/WordPress/gutenberg/pull/66751))
+
+#### Global Styles
+- Section Styles: Fix insecure properties removal for inner block types and elements. ([66896](https://github.com/WordPress/gutenberg/pull/66896))
+- Style book: Reduce margin selector specificity so that it doesn't override global block styles. ([66895](https://github.com/WordPress/gutenberg/pull/66895))
+- Theme JSON: Replace top-level background style objects on merge. ([66656](https://github.com/WordPress/gutenberg/pull/66656))
+
+#### Components
+- FormTokenField: Fix token styles. ([66640](https://github.com/WordPress/gutenberg/pull/66640))
+- Storybook: Fix DataViews action modals. ([66727](https://github.com/WordPress/gutenberg/pull/66727))
+- ToggleGroupControl: Fix active background for `zero` value. ([66855](https://github.com/WordPress/gutenberg/pull/66855))
+
+#### Post Editor
+- Disable device preview button in pattern/template part/navitation editor. ([65970](https://github.com/WordPress/gutenberg/pull/65970))
+- PostTaxonomiesFlatTermSelector: Abstract wrapper component. ([66625](https://github.com/WordPress/gutenberg/pull/66625))
+- VisualEditor: Always output has-global-padding classname when in post only mode. ([66626](https://github.com/WordPress/gutenberg/pull/66626))
+
+#### DataViews
+- Fix TypeError when duplicating uncategorized theme patterns. ([66889](https://github.com/WordPress/gutenberg/pull/66889))
+- Tweak primary field in patterns grid layout. ([66733](https://github.com/WordPress/gutenberg/pull/66733))
+
+#### Meta Boxes
+- Fix: Show Meta Boxes at the bottom of the screen regardless of the current rendering mode. ([66508](https://github.com/WordPress/gutenberg/pull/66508))
+- Hide metaboxes in Zoom Out. ([66886](https://github.com/WordPress/gutenberg/pull/66886))
+
+#### Site Editor
+- DataViews: Fix 'aria-label' for pattern preview element. ([66601](https://github.com/WordPress/gutenberg/pull/66601))
+- Site Hub: Fixed navigation redirect on mobile devices for classic themes. ([66867](https://github.com/WordPress/gutenberg/pull/66867))
+
+#### Media
+- Add `x-wav` mime type for wav files in Firefox. ([66850](https://github.com/WordPress/gutenberg/pull/66850))
+- Ensure HEIC files selectable from “Upload” button. ([66292](https://github.com/WordPress/gutenberg/pull/66292))
+
+#### Patterns
+- Fix uncategorized pattern browsing when pattern has no categories. ([66945](https://github.com/WordPress/gutenberg/pull/66945))
+
+#### Interactivity API
+- Fix property modification from inherited context two or more levels above. ([66872](https://github.com/WordPress/gutenberg/pull/66872))
+
+#### Block API
+- Process Block Type: Copy deprecation to a new object instead of mutating when stabilizing supports. ([66849](https://github.com/WordPress/gutenberg/pull/66849))
+
+#### Design Tools
+- Block Gap: Fix block spacing control for axial gap supported blocks. ([66783](https://github.com/WordPress/gutenberg/pull/66783))
+
+#### Document Settings
+- Editor: Restore the 'PluginPostStatusInfo' slot position. ([66665](https://github.com/WordPress/gutenberg/pull/66665))
+
+#### Templates API
+- Fix flash when clicking template name in the editor when a plugin registered template matches a default WP theme template. ([66359](https://github.com/WordPress/gutenberg/pull/66359))
+
+#### Block bindings
+- Fix unset array key warning in block-bindings.php. ([66337](https://github.com/WordPress/gutenberg/pull/66337))
+
+
+### Accessibility
+
+- Fix : Snackbar Notice Inconsistency. ([66405](https://github.com/WordPress/gutenberg/pull/66405))
+- Image: Add `aria-haspopup` prop write mode `more` tools menu items. ([66815](https://github.com/WordPress/gutenberg/pull/66815))
+- Site Icon Focus fix. ([66952](https://github.com/WordPress/gutenberg/pull/66952))
+
+#### Components
+- Popover: Fix missing label of the headerTitle Close button. ([66813](https://github.com/WordPress/gutenberg/pull/66813))
+
+#### Post Editor
+- Fix inconsistent sidebars close buttons sizes. ([66756](https://github.com/WordPress/gutenberg/pull/66756))
+
+#### Block Library
+- Remove unnecessary tooltip from Video block Text tracks button. ([66716](https://github.com/WordPress/gutenberg/pull/66716))
+
+#### Block Editor
+- Speak 'Block moved up/down' after using keyboard actions to move up/down. ([64966](https://github.com/WordPress/gutenberg/pull/64966))
+
+#### Patterns
+- Block Patterns List: Fix visual title and tooltip inconsistencies. ([64815](https://github.com/WordPress/gutenberg/pull/64815))
+
+
+### Performance
+
+- Inline Commenting: Avoid querying comments on editor load. ([66670](https://github.com/WordPress/gutenberg/pull/66670))
+- Patterns: Receive intermediate responses while unbound request is resolving. ([66713](https://github.com/WordPress/gutenberg/pull/66713))
+- Perf metrics: Update select and other metrics to use non-empty paragraphs. ([66762](https://github.com/WordPress/gutenberg/pull/66762))
+- Site Editor: Preload settings requests. ([66488](https://github.com/WordPress/gutenberg/pull/66488))
+- Site Editor: Speed up load by preloading home and front-page templates. ([66579](https://github.com/WordPress/gutenberg/pull/66579))
+- Site editor: Preload post if needed. ([66631](https://github.com/WordPress/gutenberg/pull/66631))
+
+#### Global Styles
+- Preload user global styles based on user caps. ([66541](https://github.com/WordPress/gutenberg/pull/66541))
+
+
+### Experiments
+
+- Add `isVisible` option to fields within DataForm. ([65826](https://github.com/WordPress/gutenberg/pull/65826))
+- DataViews: Implement `isItemClickable` and `onClickItem` props. ([66365](https://github.com/WordPress/gutenberg/pull/66365))
+
+#### DataViews
+- Quick Edit - Slug Field: Improve slug preview. ([66559](https://github.com/WordPress/gutenberg/pull/66559))
+- QuickEdit: Add password field data to the pages quick edit. ([66567](https://github.com/WordPress/gutenberg/pull/66567))
+
+
+### Documentation
+
+- Add 6.6.2 to Version in WordPress. ([66870](https://github.com/WordPress/gutenberg/pull/66870))
+- Add missing properties for DataViews/DataForm components. ([66749](https://github.com/WordPress/gutenberg/pull/66749))
+- Add section about the Fields API. ([66761](https://github.com/WordPress/gutenberg/pull/66761))
+- Block Bindings: Documentation API reference. ([66251](https://github.com/WordPress/gutenberg/pull/66251))
+- Docs: Include a note about supported licenses in WordPress packages. ([66562](https://github.com/WordPress/gutenberg/pull/66562))
+- Document `filterSortAndPaginate` & `isItemValid` utilities. ([66738](https://github.com/WordPress/gutenberg/pull/66738))
+- Feat: Storybook: Improve component organisation - Navigation Category - Issue #66275. ([66658](https://github.com/WordPress/gutenberg/pull/66658))
+- Feat: Storybook: Improve component organisation - Overlays Category - Issue #66275. ([66657](https://github.com/WordPress/gutenberg/pull/66657))
+- Feat: Storybook: Improve component organisation - Selection & Input Category - Issue #66275. ([66660](https://github.com/WordPress/gutenberg/pull/66660))
+- Feat: Storybook: Improve component organisation - Typography - Issue #66275. ([66633](https://github.com/WordPress/gutenberg/pull/66633))
+- Improve readability of DataViews documentation. ([66766](https://github.com/WordPress/gutenberg/pull/66766))
+- Move documentation for filter operators to proper place. ([66743](https://github.com/WordPress/gutenberg/pull/66743))
+- Reorganize to bootstrap DataForm API section. ([66729](https://github.com/WordPress/gutenberg/pull/66729))
+- Storybook: Improve component organisation - Actions. ([66680](https://github.com/WordPress/gutenberg/pull/66680))
+- Storybook: Log `warning()` when in dev mode. ([66568](https://github.com/WordPress/gutenberg/pull/66568))
+- Update Commands documentation with the existing contexts. ([66860](https://github.com/WordPress/gutenberg/pull/66860))
+
+
+### Code Quality
+
+- BlockPatternsList: Use the Async component. ([66744](https://github.com/WordPress/gutenberg/pull/66744))
+- Core Commands: Fix add new post URL assignment. ([66830](https://github.com/WordPress/gutenberg/pull/66830))
+- Inline Commenting: Optimize store selector and misc changes. ([66592](https://github.com/WordPress/gutenberg/pull/66592))
+- Remove unnecessary boolean assignments. ([66857](https://github.com/WordPress/gutenberg/pull/66857))
+- TypeScript: Fix and improve types for private-apis. ([66667](https://github.com/WordPress/gutenberg/pull/66667))
+
+#### Block Editor
+- Fix 'useSelect' dependencies for the 'RichText' component. ([66964](https://github.com/WordPress/gutenberg/pull/66964))
+- Fix ESLint warning for 'useBlockTypesState' hook. ([66757](https://github.com/WordPress/gutenberg/pull/66757))
+- Fix React Compiler error for 'BlockProps' util component. ([66809](https://github.com/WordPress/gutenberg/pull/66809))
+- Optimize `getVisibleElementBounds` in scrollable cases. ([66546](https://github.com/WordPress/gutenberg/pull/66546))
+- Revert: Fix unable to remove empty blocks on merge (#65262) + alternative. ([66564](https://github.com/WordPress/gutenberg/pull/66564))
+- URLInput: Fix incorrect classname for suggestions. ([66714](https://github.com/WordPress/gutenberg/pull/66714))
+
+#### Site Editor
+- Avoid using edited entity state in site editor loading hook. ([66924](https://github.com/WordPress/gutenberg/pull/66924))
+- Avoid using edited post selectors in welcome guide. ([66926](https://github.com/WordPress/gutenberg/pull/66926))
+- Edit Site: Refactor to remove usage of edited entity state. ([66922](https://github.com/WordPress/gutenberg/pull/66922))
+- Edit Site: Remove leftover 'priority-queue' dependency. ([66773](https://github.com/WordPress/gutenberg/pull/66773))
+- Remove useEditedEntityRecord hook. ([66955](https://github.com/WordPress/gutenberg/pull/66955))
+
+#### Components
+- Fix React Compiler error for 'useScrollRectIntoView'. ([66498](https://github.com/WordPress/gutenberg/pull/66498))
+- Panel: Add 40px size prop to Button. ([66589](https://github.com/WordPress/gutenberg/pull/66589))
+- Radio: Deprecate 36px default size. ([66572](https://github.com/WordPress/gutenberg/pull/66572))
+- Snackbar: Use `link` variant for action Button. ([66560](https://github.com/WordPress/gutenberg/pull/66560))
+
+#### Data Layer
+- Convert the emitter module in data package to TS. ([66669](https://github.com/WordPress/gutenberg/pull/66669))
+- Data: Rename useSelect internals to fix React Compiler violations. ([66807](https://github.com/WordPress/gutenberg/pull/66807))
+- Data: Upgrade Redux to v5.0.1. ([66966](https://github.com/WordPress/gutenberg/pull/66966))
+
+#### Post Editor
+- ESLint: Fix React Compiler violations in various commands. ([66787](https://github.com/WordPress/gutenberg/pull/66787))
+- Fix TS types for editor package. ([66754](https://github.com/WordPress/gutenberg/pull/66754))
+
+#### Zoom Out
+- Zoom-out: Move default background to the iframe component. ([66284](https://github.com/WordPress/gutenberg/pull/66284))
+
+#### Design Tools
+- Typography: Stabilize typography block supports within block processing. ([63401](https://github.com/WordPress/gutenberg/pull/63401))
+
+
+### Tools
+
+#### Testing
+- Media: Check for `wav` mime type using isset. ([66947](https://github.com/WordPress/gutenberg/pull/66947))
+
+#### Build Tooling
+- Enforce the same order of fields in `package.json` files. ([66239](https://github.com/WordPress/gutenberg/pull/66239))
+- Introduce React Scanner for component usage stats. ([65463](https://github.com/WordPress/gutenberg/pull/65463))
+
+
+### Various
+
+- Style engine: Wrap array_merge in conditionals to prevent unnecessary merging. ([66661](https://github.com/WordPress/gutenberg/pull/66661))
+
+#### Block Library
+- Update placeholder text for blocks that support drag and drop. ([66842](https://github.com/WordPress/gutenberg/pull/66842))
+- update: Add Media to Add media in cover block. ([66835](https://github.com/WordPress/gutenberg/pull/66835))
+
+
+## First-time contributors
+
+The following PRs were merged by first-time contributors:
+
+- @benharri: Fix unset array key warning in block-bindings.php. ([66337](https://github.com/WordPress/gutenberg/pull/66337))
+- @benniledl: Add 6.6.2 to Version in WordPress. ([66870](https://github.com/WordPress/gutenberg/pull/66870))
+- @Infinite-Null: Media & Text: Set `.wp-block-media-text__media a` display to block. ([66915](https://github.com/WordPress/gutenberg/pull/66915))
+- @karthick-murugan: Site Icon Focus fix. ([66952](https://github.com/WordPress/gutenberg/pull/66952))
+- @rinkalpagdar: Post Content: Add border and spacing support. ([66366](https://github.com/WordPress/gutenberg/pull/66366))
+- @yogeshbhutkar: Site Hub: Fixed navigation redirect on mobile devices for classic themes. ([66867](https://github.com/WordPress/gutenberg/pull/66867))
+
+
+## Contributors
+
+The following contributors merged PRs in this release:
+
+@aaronrobertshaw @adamsilverstein @afercia @Aljullu @amitraj2203 @andrewserong @benharri @benniledl @carolinan @cbravobernal @DAreRodz @dcalhoun @ellatrix @fabiankaegy @gigitux @gziolo @hbhalodia @Infinite-Null @jasmussen @jorgefilipecosta @jsnajdr @juanfra @karthick-murugan @kevin940726 @louwie17 @Mamaduka @manzoorwanijk @matiasbenedetto @mikachan @mirka @n2erjo00 @ntsekouras @oandregal @ramonjd @renatho @rinkalpagdar @Soean @stokesman @swissspidy @t-hamano @tellthemachines @tyxla @up1512001 @Vrishabhsk @yogeshbhutkar @youknowriad
+
+
+
+
= 19.6.4 =
- PostTaxonomiesFlatTermSelector: abstract wrapper component (#66625)
diff --git a/docs/reference-guides/data/data-core.md b/docs/reference-guides/data/data-core.md
index 474207aa20460f..199c29cd67dd2e 100644
--- a/docs/reference-guides/data/data-core.md
+++ b/docs/reference-guides/data/data-core.md
@@ -359,7 +359,7 @@ _Parameters_
- _state_ `State`: State tree
- _kind_ `string`: Entity kind.
- _name_ `string`: Entity name.
-- _key_ `EntityRecordKey`: Record's key
+- _key_ `EntityRecordKey`: Optional record's key. If requesting a global record (e.g. site settings), the key can be omitted. If requesting a specific item, the key must always be included.
- _query_ `GetRecordsHttpQuery`: Optional query. If requesting specific fields, fields must always include the ID. For valid query parameters see the [Reference](https://developer.wordpress.org/rest-api/reference/) in the REST API Handbook and select the entity kind. Then see the arguments available "Retrieve a [Entity kind]".
_Returns_
diff --git a/gutenberg.php b/gutenberg.php
index 3e4d6941b5a0f3..40c4e86fbb1bf5 100644
--- a/gutenberg.php
+++ b/gutenberg.php
@@ -5,7 +5,7 @@
* Description: Printing since 1440. This is the development plugin for the block editor, site editor, and other future WordPress core functionality.
* Requires at least: 6.6
* Requires PHP: 7.2
- * Version: 19.7.0
+ * Version: 19.8.0-rc.1
* Author: Gutenberg Team
* Text Domain: gutenberg
*
diff --git a/lib/compat/wordpress-6.8/class-gutenberg-rest-user-controller.php b/lib/compat/wordpress-6.8/class-gutenberg-rest-user-controller.php
new file mode 100644
index 00000000000000..c1ecb8c86660cd
--- /dev/null
+++ b/lib/compat/wordpress-6.8/class-gutenberg-rest-user-controller.php
@@ -0,0 +1,62 @@
+ array(),
+ 'description' => __( 'Array of column names to be searched.' ),
+ 'type' => 'array',
+ 'items' => array(
+ 'enum' => array( 'email', 'name', 'id', 'username', 'slug' ),
+ 'type' => 'string',
+ ),
+ );
+
+ return $query_params;
+}
+
+add_filter( 'rest_user_collection_params', 'gutenberg_add_search_columns_param', 10, 1 );
+
+/**
+ * Modify user query based on search_columns parameter
+ *
+ * @param array $prepared_args Array of arguments for WP_User_Query.
+ * @param WP_REST_Request $request The REST API request.
+ * @return array Modified arguments
+ */
+function gutenberg_modify_user_query_args( $prepared_args, $request ) {
+ if ( $request->get_param( 'search' ) && $request->get_param( 'search_columns' ) ) {
+ $search_columns = $request->get_param( 'search_columns' );
+
+ // Validate search columns
+ $valid_columns = isset( $prepared_args['search_columns'] )
+ ? $prepared_args['search_columns']
+ : array( 'ID', 'user_login', 'user_nicename', 'user_email', 'user_url', 'display_name' );
+ $search_columns_mapping = array(
+ 'id' => 'ID',
+ 'username' => 'user_login',
+ 'slug' => 'user_nicename',
+ 'email' => 'user_email',
+ 'name' => 'display_name',
+ );
+ $search_columns = array_map(
+ static function ( $column ) use ( $search_columns_mapping ) {
+ return $search_columns_mapping[ $column ];
+ },
+ $search_columns
+ );
+ $search_columns = array_intersect( $search_columns, $valid_columns );
+
+ if ( ! empty( $search_columns ) ) {
+ $prepared_args['search_columns'] = $search_columns;
+ }
+ }
+
+ return $prepared_args;
+}
+add_filter( 'rest_user_query', 'gutenberg_modify_user_query_args', 10, 2 );
diff --git a/lib/compat/wordpress-6.8/site-editor.php b/lib/compat/wordpress-6.8/site-editor.php
new file mode 100644
index 00000000000000..cde108830b1d2c
--- /dev/null
+++ b/lib/compat/wordpress-6.8/site-editor.php
@@ -0,0 +1,124 @@
+ '/wp_navigation/' . $_REQUEST['postId'] ), remove_query_arg( array( 'postType', 'postId' ) ) );
+ }
+
+ if ( isset( $_REQUEST['postType'] ) && 'wp_navigation' === $_REQUEST['postType'] && empty( $_REQUEST['postId'] ) ) {
+ return add_query_arg( array( 'p' => '/navigation' ), remove_query_arg( 'postType' ) );
+ }
+
+ if ( isset( $_REQUEST['path'] ) && '/wp_global_styles' === $_REQUEST['path'] ) {
+ return add_query_arg( array( 'p' => '/styles' ), remove_query_arg( 'path' ) );
+ }
+
+ if ( isset( $_REQUEST['postType'] ) && 'page' === $_REQUEST['postType'] && ( empty( $_REQUEST['canvas'] ) || empty( $_REQUEST['postId'] ) ) ) {
+ return add_query_arg( array( 'p' => '/page' ), remove_query_arg( 'postType' ) );
+ }
+
+ if ( isset( $_REQUEST['postType'] ) && 'page' === $_REQUEST['postType'] && ! empty( $_REQUEST['postId'] ) ) {
+ return add_query_arg( array( 'p' => '/page/' . $_REQUEST['postId'] ), remove_query_arg( array( 'postType', 'postId' ) ) );
+ }
+
+ if ( isset( $_REQUEST['postType'] ) && 'wp_template' === $_REQUEST['postType'] && ( empty( $_REQUEST['canvas'] ) || empty( $_REQUEST['postId'] ) ) ) {
+ return add_query_arg( array( 'p' => '/template' ), remove_query_arg( 'postType' ) );
+ }
+
+ if ( isset( $_REQUEST['postType'] ) && 'wp_template' === $_REQUEST['postType'] && ! empty( $_REQUEST['postId'] ) ) {
+ return add_query_arg( array( 'p' => '/wp_template/' . $_REQUEST['postId'] ), remove_query_arg( array( 'postType', 'postId' ) ) );
+ }
+
+ if ( isset( $_REQUEST['postType'] ) && 'wp_block' === $_REQUEST['postType'] && ( empty( $_REQUEST['canvas'] ) || empty( $_REQUEST['postId'] ) ) ) {
+ return add_query_arg( array( 'p' => '/pattern' ), remove_query_arg( 'postType' ) );
+ }
+
+ if ( isset( $_REQUEST['postType'] ) && 'wp_block' === $_REQUEST['postType'] && ! empty( $_REQUEST['postId'] ) ) {
+ return add_query_arg( array( 'p' => '/wp_block/' . $_REQUEST['postId'] ), remove_query_arg( array( 'postType', 'postId' ) ) );
+ }
+
+ if ( isset( $_REQUEST['postType'] ) && 'wp_template_part' === $_REQUEST['postType'] && ( empty( $_REQUEST['canvas'] ) || empty( $_REQUEST['postId'] ) ) ) {
+ return add_query_arg( array( 'p' => '/pattern' ) );
+ }
+
+ if ( isset( $_REQUEST['postType'] ) && 'wp_template_part' === $_REQUEST['postType'] && ! empty( $_REQUEST['postId'] ) ) {
+ return add_query_arg( array( 'p' => '/wp_template_part/' . $_REQUEST['postId'] ), remove_query_arg( array( 'postType', 'postId' ) ) );
+ }
+
+ // The following redirects are for backward compatibility with the old site editor URLs.
+ if ( isset( $_REQUEST['path'] ) && '/wp_template_part/all' === $_REQUEST['path'] ) {
+ return add_query_arg(
+ array(
+ 'p' => '/pattern',
+ 'postType' => 'wp_template_part',
+ ),
+ remove_query_arg( 'path' )
+ );
+ }
+
+ if ( isset( $_REQUEST['path'] ) && '/page' === $_REQUEST['path'] ) {
+ return add_query_arg( array( 'p' => '/page' ), remove_query_arg( 'path' ) );
+ }
+
+ if ( isset( $_REQUEST['path'] ) && '/wp_template' === $_REQUEST['path'] ) {
+ return add_query_arg( array( 'p' => '/template' ), remove_query_arg( 'path' ) );
+ }
+
+ if ( isset( $_REQUEST['path'] ) && '/patterns' === $_REQUEST['path'] ) {
+ return add_query_arg( array( 'p' => '/pattern' ), remove_query_arg( 'path' ) );
+ }
+
+ if ( isset( $_REQUEST['path'] ) && '/navigation' === $_REQUEST['path'] ) {
+ return add_query_arg( array( 'p' => '/navigation' ), remove_query_arg( 'path' ) );
+ }
+
+ return add_query_arg( array( 'p' => '/' ) );
+}
+
+function gutenberg_redirect_site_editor_deprecated_urls() {
+ $redirection = gutenberg_get_site_editor_redirection();
+ if ( false !== $redirection ) {
+ wp_redirect( $redirection, 301 );
+ exit;
+ }
+}
+add_action( 'admin_init', 'gutenberg_redirect_site_editor_deprecated_urls' );
+
+/**
+ * Filter the `wp_die_handler` to allow access to the Site Editor's new pages page
+ * for Classic themes.
+ *
+ * site-editor.php's access is forbidden for hybrid/classic themes and only allowed with some very special query args (some very special pages like template parts...).
+ * The only way to disable this protection since we're changing the urls in Gutenberg is to override the wp_die_handler.
+ *
+ * @param callable $default_handler The default handler.
+ * @return callable The default handler or a custom handler.
+ */
+function gutenberg_styles_wp_die_handler( $default_handler ) {
+ if ( ! wp_is_block_theme() && str_contains( $_SERVER['REQUEST_URI'], 'site-editor.php' ) && isset( $_GET['p'] ) ) {
+ return '__return_false';
+ }
+ return $default_handler;
+}
+add_filter( 'wp_die_handler', 'gutenberg_styles_wp_die_handler' );
diff --git a/lib/experimental/posts/load.php b/lib/experimental/posts/load.php
index 7321392b11a25d..699534f1886f52 100644
--- a/lib/experimental/posts/load.php
+++ b/lib/experimental/posts/load.php
@@ -69,18 +69,6 @@ function gutenberg_posts_dashboard() {
echo '
';
}
-/**
- * Redirects to the new posts dashboard page and adds the postType query arg.
- */
-function gutenberg_add_post_type_arg() {
- global $pagenow;
- if ( 'admin.php' === $pagenow && isset( $_GET['page'] ) && 'gutenberg-posts-dashboard' === $_GET['page'] && empty( $_GET['postType'] ) ) {
- wp_redirect( admin_url( '/admin.php?page=gutenberg-posts-dashboard&postType=post' ) );
- exit;
- }
-}
-add_action( 'admin_init', 'gutenberg_add_post_type_arg' );
-
/**
* Replaces the default posts menu item with the new posts dashboard.
*/
diff --git a/lib/load.php b/lib/load.php
index 85d1c7e3292b50..26af78f3173c53 100644
--- a/lib/load.php
+++ b/lib/load.php
@@ -98,6 +98,8 @@ function gutenberg_is_experiment_enabled( $name ) {
require __DIR__ . '/compat/wordpress-6.8/blocks.php';
require __DIR__ . '/compat/wordpress-6.8/functions.php';
require __DIR__ . '/compat/wordpress-6.8/post.php';
+require __DIR__ . '/compat/wordpress-6.8/site-editor.php';
+require __DIR__ . '/compat/wordpress-6.8/class-gutenberg-rest-user-controller.php';
// Experimental features.
require __DIR__ . '/experimental/block-editor-settings-mobile.php';
diff --git a/package-lock.json b/package-lock.json
index 1fc9131a33c8c3..58479ecfa2ed99 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "gutenberg",
- "version": "19.7.0",
+ "version": "19.8.0-rc.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "gutenberg",
- "version": "19.7.0",
+ "version": "19.8.0-rc.1",
"hasInstallScript": true,
"license": "GPL-2.0-or-later",
"workspaces": [
@@ -16,7 +16,7 @@
"@actions/core": "1.9.1",
"@actions/github": "5.0.0",
"@apidevtools/json-schema-ref-parser": "11.6.4",
- "@ariakit/test": "^0.4.2",
+ "@ariakit/test": "^0.4.5",
"@babel/core": "7.25.7",
"@babel/plugin-syntax-jsx": "7.25.7",
"@babel/runtime-corejs3": "7.25.7",
@@ -84,6 +84,7 @@
"cssnano": "6.0.1",
"deep-freeze": "0.0.1",
"equivalent-key-map": "0.2.2",
+ "esbuild": "0.18.20",
"escape-html": "1.0.3",
"eslint-import-resolver-node": "0.3.4",
"eslint-plugin-eslint-comments": "3.1.2",
@@ -1431,18 +1432,14 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/@ariakit/core": {
- "version": "0.4.9",
- "resolved": "https://registry.npmjs.org/@ariakit/core/-/core-0.4.9.tgz",
- "integrity": "sha512-nV0B/OTK/0iB+P9RC7fudznYZ8eR6rR1F912Zc54e3+wSW5RrRvNOiRxyMrgENidd4R7cCMDw77XJLSBLKgEPQ=="
- },
"node_modules/@ariakit/test": {
- "version": "0.4.2",
- "resolved": "https://registry.npmjs.org/@ariakit/test/-/test-0.4.2.tgz",
- "integrity": "sha512-WXAAiAyTaHV9klntOB81Y+YHyA5iGxy9wXCmjQOfYK5InsuIour+7TVXICUxn2NF0XD6j6OoEJbCVDJ2Y46xEA==",
+ "version": "0.4.5",
+ "resolved": "https://registry.npmjs.org/@ariakit/test/-/test-0.4.5.tgz",
+ "integrity": "sha512-dK9OtI8MeKfdtOiW1auDITnyaelq0O0aUTnolIqJj+RJd8LFai0gi7fQUgrun9CZHJ2wWsEad4vlviGfhfIIhQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@ariakit/core": "0.4.9",
+ "@ariakit/core": "0.4.12",
"@testing-library/dom": "^8.0.0 || ^9.0.0 || ^10.0.0"
},
"peerDependencies": {
@@ -1462,6 +1459,13 @@
}
}
},
+ "node_modules/@ariakit/test/node_modules/@ariakit/core": {
+ "version": "0.4.12",
+ "resolved": "https://registry.npmjs.org/@ariakit/core/-/core-0.4.12.tgz",
+ "integrity": "sha512-+NNpy88tdP/w9mOBPuDrMTbtapPbo/8yVIzpQB7TAmN0sPh/Cq3nU1f2KCTCIujPmwRvAcMSW9UHOlFmbKEPOA==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/@aw-web-design/x-default-browser": {
"version": "1.4.126",
"resolved": "https://registry.npmjs.org/@aw-web-design/x-default-browser/-/x-default-browser-1.4.126.tgz",
@@ -44491,6 +44495,12 @@
"node": ">=10.0.0"
}
},
+ "node_modules/route-recognizer": {
+ "version": "0.3.4",
+ "resolved": "https://registry.npmjs.org/route-recognizer/-/route-recognizer-0.3.4.tgz",
+ "integrity": "sha512-2+MhsfPhvauN1O8KaXpXAOfR/fwe8dnUXVM+xw7yt40lJRfPVQxV6yryZm0cgRvAj5fMF/mdRZbL2ptwbs5i2g==",
+ "license": "MIT"
+ },
"node_modules/rrweb-cssom": {
"version": "0.7.1",
"resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.7.1.tgz",
@@ -49333,9 +49343,10 @@
}
},
"node_modules/use-sync-external-store": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz",
- "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==",
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz",
+ "integrity": "sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==",
+ "license": "MIT",
"peerDependencies": {
"react": "^16.8.0 || ^17.0.0 || ^18.0.0"
}
@@ -51889,7 +51900,7 @@
},
"packages/a11y": {
"name": "@wordpress/a11y",
- "version": "4.12.0",
+ "version": "4.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
@@ -51903,7 +51914,7 @@
},
"packages/annotations": {
"name": "@wordpress/annotations",
- "version": "3.12.0",
+ "version": "3.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
@@ -51931,7 +51942,7 @@
},
"packages/api-fetch": {
"name": "@wordpress/api-fetch",
- "version": "7.12.0",
+ "version": "7.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
@@ -51945,7 +51956,7 @@
},
"packages/autop": {
"name": "@wordpress/autop",
- "version": "4.12.0",
+ "version": "4.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7"
@@ -51957,7 +51968,7 @@
},
"packages/babel-plugin-import-jsx-pragma": {
"name": "@wordpress/babel-plugin-import-jsx-pragma",
- "version": "5.12.0",
+ "version": "5.13.0",
"license": "GPL-2.0-or-later",
"engines": {
"node": ">=18.12.0",
@@ -51969,7 +51980,7 @@
},
"packages/babel-plugin-makepot": {
"name": "@wordpress/babel-plugin-makepot",
- "version": "6.12.0",
+ "version": "6.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"deepmerge": "^4.3.0",
@@ -51986,7 +51997,7 @@
},
"packages/babel-preset-default": {
"name": "@wordpress/babel-preset-default",
- "version": "8.12.0",
+ "version": "8.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/core": "7.25.7",
@@ -53117,7 +53128,7 @@
},
"packages/base-styles": {
"name": "@wordpress/base-styles",
- "version": "5.12.0",
+ "version": "5.13.0",
"license": "GPL-2.0-or-later",
"engines": {
"node": ">=18.12.0",
@@ -53126,7 +53137,7 @@
},
"packages/blob": {
"name": "@wordpress/blob",
- "version": "4.12.0",
+ "version": "4.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7"
@@ -53138,7 +53149,7 @@
},
"packages/block-directory": {
"name": "@wordpress/block-directory",
- "version": "5.12.0",
+ "version": "5.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
@@ -53174,7 +53185,7 @@
},
"packages/block-editor": {
"name": "@wordpress/block-editor",
- "version": "14.7.0",
+ "version": "14.8.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
@@ -53274,7 +53285,7 @@
},
"packages/block-library": {
"name": "@wordpress/block-library",
- "version": "9.12.0",
+ "version": "9.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
@@ -53340,7 +53351,7 @@
},
"packages/block-serialization-default-parser": {
"name": "@wordpress/block-serialization-default-parser",
- "version": "5.12.0",
+ "version": "5.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7"
@@ -53352,7 +53363,7 @@
},
"packages/block-serialization-spec-parser": {
"name": "@wordpress/block-serialization-spec-parser",
- "version": "5.12.0",
+ "version": "5.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"pegjs": "^0.10.0",
@@ -53365,7 +53376,7 @@
},
"packages/blocks": {
"name": "@wordpress/blocks",
- "version": "14.1.0",
+ "version": "14.2.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
@@ -53419,7 +53430,7 @@
},
"packages/browserslist-config": {
"name": "@wordpress/browserslist-config",
- "version": "6.12.0",
+ "version": "6.13.0",
"license": "GPL-2.0-or-later",
"engines": {
"node": ">=18.12.0",
@@ -53428,7 +53439,7 @@
},
"packages/commands": {
"name": "@wordpress/commands",
- "version": "1.12.0",
+ "version": "1.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
@@ -53667,10 +53678,10 @@
},
"packages/components": {
"name": "@wordpress/components",
- "version": "28.12.0",
+ "version": "28.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
- "@ariakit/react": "^0.4.10",
+ "@ariakit/react": "^0.4.13",
"@babel/runtime": "7.25.7",
"@emotion/cache": "^11.7.1",
"@emotion/css": "^11.7.1",
@@ -53725,12 +53736,19 @@
"react-dom": "^18.0.0"
}
},
+ "packages/components/node_modules/@ariakit/core": {
+ "version": "0.4.12",
+ "resolved": "https://registry.npmjs.org/@ariakit/core/-/core-0.4.12.tgz",
+ "integrity": "sha512-+NNpy88tdP/w9mOBPuDrMTbtapPbo/8yVIzpQB7TAmN0sPh/Cq3nU1f2KCTCIujPmwRvAcMSW9UHOlFmbKEPOA==",
+ "license": "MIT"
+ },
"packages/components/node_modules/@ariakit/react": {
- "version": "0.4.10",
- "resolved": "https://registry.npmjs.org/@ariakit/react/-/react-0.4.10.tgz",
- "integrity": "sha512-c1+6sNLj57aAXrBZMCVGG+OXeFrPAG0TV1jT7oPJcN/KLRs3aCuO3CCJVep/eKepFzzK01kNRGYX3wPT1TXPNw==",
+ "version": "0.4.13",
+ "resolved": "https://registry.npmjs.org/@ariakit/react/-/react-0.4.13.tgz",
+ "integrity": "sha512-pTGYgoqCojfyt2xNJ5VQhejxXwwtcP7VDDqcnnVChv7TA2TWWyYerJ5m4oxViI1pgeNqnHZwKlQ79ZipF7W2kQ==",
+ "license": "MIT",
"dependencies": {
- "@ariakit/react-core": "0.4.10"
+ "@ariakit/react-core": "0.4.13"
},
"funding": {
"type": "opencollective",
@@ -53742,11 +53760,12 @@
}
},
"packages/components/node_modules/@ariakit/react-core": {
- "version": "0.4.10",
- "resolved": "https://registry.npmjs.org/@ariakit/react-core/-/react-core-0.4.10.tgz",
- "integrity": "sha512-r6DZmtHBmSoOj848+RpBwdZy/55YxPhMhfH14JIO2OLn1F6iSFkQwR7AAGpIrlYycWJFSF7KrQu50O+SSfFJdQ==",
+ "version": "0.4.13",
+ "resolved": "https://registry.npmjs.org/@ariakit/react-core/-/react-core-0.4.13.tgz",
+ "integrity": "sha512-iIjQeupP9d0pOubOzX4a0UPXbhXbp0ZCduDpkv7+u/pYP/utk/YRECD0M/QpZr6YSeltmDiNxKjdyK8r9Yhv4Q==",
+ "license": "MIT",
"dependencies": {
- "@ariakit/core": "0.4.9",
+ "@ariakit/core": "0.4.12",
"@floating-ui/dom": "^1.0.0",
"use-sync-external-store": "^1.2.0"
},
@@ -53788,7 +53807,7 @@
},
"packages/compose": {
"name": "@wordpress/compose",
- "version": "7.12.0",
+ "version": "7.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
@@ -53825,7 +53844,7 @@
},
"packages/core-commands": {
"name": "@wordpress/core-commands",
- "version": "1.12.0",
+ "version": "1.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
@@ -53854,7 +53873,7 @@
},
"packages/core-data": {
"name": "@wordpress/core-data",
- "version": "7.12.0",
+ "version": "7.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
@@ -53899,7 +53918,7 @@
},
"packages/create-block": {
"name": "@wordpress/create-block",
- "version": "4.55.0",
+ "version": "4.56.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@wordpress/lazy-import": "*",
@@ -53926,7 +53945,7 @@
},
"packages/create-block-interactive-template": {
"name": "@wordpress/create-block-interactive-template",
- "version": "2.12.0",
+ "version": "2.13.0",
"license": "GPL-2.0-or-later",
"engines": {
"node": ">=18.12.0",
@@ -53935,7 +53954,7 @@
},
"packages/create-block-tutorial-template": {
"name": "@wordpress/create-block-tutorial-template",
- "version": "4.12.0",
+ "version": "4.13.0",
"license": "GPL-2.0-or-later",
"engines": {
"node": ">=18.12.0",
@@ -53944,7 +53963,7 @@
},
"packages/customize-widgets": {
"name": "@wordpress/customize-widgets",
- "version": "5.12.0",
+ "version": "5.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
@@ -53956,7 +53975,6 @@
"@wordpress/core-data": "*",
"@wordpress/data": "*",
"@wordpress/dom": "*",
- "@wordpress/editor": "*",
"@wordpress/element": "*",
"@wordpress/hooks": "*",
"@wordpress/i18n": "*",
@@ -53983,7 +54001,7 @@
},
"packages/data": {
"name": "@wordpress/data",
- "version": "10.12.0",
+ "version": "10.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
@@ -54012,7 +54030,7 @@
},
"packages/data-controls": {
"name": "@wordpress/data-controls",
- "version": "4.12.0",
+ "version": "4.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
@@ -54030,10 +54048,10 @@
},
"packages/dataviews": {
"name": "@wordpress/dataviews",
- "version": "4.8.0",
+ "version": "4.9.0",
"license": "GPL-2.0-or-later",
"dependencies": {
- "@ariakit/react": "^0.4.10",
+ "@ariakit/react": "^0.4.13",
"@babel/runtime": "7.25.7",
"@wordpress/components": "*",
"@wordpress/compose": "*",
@@ -54055,12 +54073,19 @@
"react": "^18.0.0"
}
},
+ "packages/dataviews/node_modules/@ariakit/core": {
+ "version": "0.4.12",
+ "resolved": "https://registry.npmjs.org/@ariakit/core/-/core-0.4.12.tgz",
+ "integrity": "sha512-+NNpy88tdP/w9mOBPuDrMTbtapPbo/8yVIzpQB7TAmN0sPh/Cq3nU1f2KCTCIujPmwRvAcMSW9UHOlFmbKEPOA==",
+ "license": "MIT"
+ },
"packages/dataviews/node_modules/@ariakit/react": {
- "version": "0.4.10",
- "resolved": "https://registry.npmjs.org/@ariakit/react/-/react-0.4.10.tgz",
- "integrity": "sha512-c1+6sNLj57aAXrBZMCVGG+OXeFrPAG0TV1jT7oPJcN/KLRs3aCuO3CCJVep/eKepFzzK01kNRGYX3wPT1TXPNw==",
+ "version": "0.4.13",
+ "resolved": "https://registry.npmjs.org/@ariakit/react/-/react-0.4.13.tgz",
+ "integrity": "sha512-pTGYgoqCojfyt2xNJ5VQhejxXwwtcP7VDDqcnnVChv7TA2TWWyYerJ5m4oxViI1pgeNqnHZwKlQ79ZipF7W2kQ==",
+ "license": "MIT",
"dependencies": {
- "@ariakit/react-core": "0.4.10"
+ "@ariakit/react-core": "0.4.13"
},
"funding": {
"type": "opencollective",
@@ -54072,11 +54097,12 @@
}
},
"packages/dataviews/node_modules/@ariakit/react-core": {
- "version": "0.4.10",
- "resolved": "https://registry.npmjs.org/@ariakit/react-core/-/react-core-0.4.10.tgz",
- "integrity": "sha512-r6DZmtHBmSoOj848+RpBwdZy/55YxPhMhfH14JIO2OLn1F6iSFkQwR7AAGpIrlYycWJFSF7KrQu50O+SSfFJdQ==",
+ "version": "0.4.13",
+ "resolved": "https://registry.npmjs.org/@ariakit/react-core/-/react-core-0.4.13.tgz",
+ "integrity": "sha512-iIjQeupP9d0pOubOzX4a0UPXbhXbp0ZCduDpkv7+u/pYP/utk/YRECD0M/QpZr6YSeltmDiNxKjdyK8r9Yhv4Q==",
+ "license": "MIT",
"dependencies": {
- "@ariakit/core": "0.4.9",
+ "@ariakit/core": "0.4.12",
"@floating-ui/dom": "^1.0.0",
"use-sync-external-store": "^1.2.0"
},
@@ -54087,7 +54113,7 @@
},
"packages/date": {
"name": "@wordpress/date",
- "version": "5.12.0",
+ "version": "5.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
@@ -54102,7 +54128,7 @@
},
"packages/dependency-extraction-webpack-plugin": {
"name": "@wordpress/dependency-extraction-webpack-plugin",
- "version": "6.12.0",
+ "version": "6.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"json2php": "^0.0.7"
@@ -54117,7 +54143,7 @@
},
"packages/deprecated": {
"name": "@wordpress/deprecated",
- "version": "4.12.0",
+ "version": "4.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
@@ -54130,7 +54156,7 @@
},
"packages/docgen": {
"name": "@wordpress/docgen",
- "version": "2.12.0",
+ "version": "2.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/core": "7.25.7",
@@ -54151,7 +54177,7 @@
},
"packages/dom": {
"name": "@wordpress/dom",
- "version": "4.12.0",
+ "version": "4.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
@@ -54164,7 +54190,7 @@
},
"packages/dom-ready": {
"name": "@wordpress/dom-ready",
- "version": "4.12.0",
+ "version": "4.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7"
@@ -54176,7 +54202,7 @@
},
"packages/e2e-test-utils": {
"name": "@wordpress/e2e-test-utils",
- "version": "11.12.0",
+ "version": "11.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
@@ -54198,7 +54224,7 @@
},
"packages/e2e-test-utils-playwright": {
"name": "@wordpress/e2e-test-utils-playwright",
- "version": "1.12.0",
+ "version": "1.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"change-case": "^4.1.2",
@@ -54224,7 +54250,7 @@
},
"packages/e2e-tests": {
"name": "@wordpress/e2e-tests",
- "version": "8.12.0",
+ "version": "8.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@wordpress/e2e-test-utils": "*",
@@ -54262,7 +54288,7 @@
},
"packages/edit-post": {
"name": "@wordpress/edit-post",
- "version": "8.12.0",
+ "version": "8.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
@@ -54309,7 +54335,7 @@
},
"packages/edit-site": {
"name": "@wordpress/edit-site",
- "version": "6.12.0",
+ "version": "6.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
@@ -54371,7 +54397,7 @@
},
"packages/edit-widgets": {
"name": "@wordpress/edit-widgets",
- "version": "6.12.0",
+ "version": "6.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
@@ -54385,7 +54411,6 @@
"@wordpress/data": "*",
"@wordpress/deprecated": "*",
"@wordpress/dom": "*",
- "@wordpress/editor": "*",
"@wordpress/element": "*",
"@wordpress/hooks": "*",
"@wordpress/i18n": "*",
@@ -54415,7 +54440,7 @@
},
"packages/editor": {
"name": "@wordpress/editor",
- "version": "14.12.0",
+ "version": "14.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
@@ -54477,7 +54502,7 @@
},
"packages/element": {
"name": "@wordpress/element",
- "version": "6.12.0",
+ "version": "6.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
@@ -54496,7 +54521,7 @@
},
"packages/env": {
"name": "@wordpress/env",
- "version": "10.12.0",
+ "version": "10.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"chalk": "^4.0.0",
@@ -54627,7 +54652,7 @@
},
"packages/escape-html": {
"name": "@wordpress/escape-html",
- "version": "3.12.0",
+ "version": "3.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7"
@@ -54639,7 +54664,7 @@
},
"packages/eslint-plugin": {
"name": "@wordpress/eslint-plugin",
- "version": "21.5.0",
+ "version": "21.6.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/eslint-parser": "7.25.7",
@@ -54708,7 +54733,7 @@
},
"packages/fields": {
"name": "@wordpress/fields",
- "version": "0.4.0",
+ "version": "0.5.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
@@ -54749,7 +54774,7 @@
},
"packages/format-library": {
"name": "@wordpress/format-library",
- "version": "5.12.0",
+ "version": "5.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
@@ -54777,7 +54802,7 @@
},
"packages/hooks": {
"name": "@wordpress/hooks",
- "version": "4.12.0",
+ "version": "4.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7"
@@ -54789,7 +54814,7 @@
},
"packages/html-entities": {
"name": "@wordpress/html-entities",
- "version": "4.12.0",
+ "version": "4.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7"
@@ -54801,7 +54826,7 @@
},
"packages/i18n": {
"name": "@wordpress/i18n",
- "version": "5.12.0",
+ "version": "5.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
@@ -54821,7 +54846,7 @@
},
"packages/icons": {
"name": "@wordpress/icons",
- "version": "10.12.0",
+ "version": "10.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
@@ -54835,7 +54860,7 @@
},
"packages/interactivity": {
"name": "@wordpress/interactivity",
- "version": "6.12.0",
+ "version": "6.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@preact/signals": "^1.3.0",
@@ -54848,7 +54873,7 @@
},
"packages/interactivity-router": {
"name": "@wordpress/interactivity-router",
- "version": "2.12.0",
+ "version": "2.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@wordpress/a11y": "*",
@@ -54861,7 +54886,7 @@
},
"packages/interface": {
"name": "@wordpress/interface",
- "version": "8.1.0",
+ "version": "8.2.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
@@ -54889,7 +54914,7 @@
},
"packages/is-shallow-equal": {
"name": "@wordpress/is-shallow-equal",
- "version": "5.12.0",
+ "version": "5.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7"
@@ -54901,7 +54926,7 @@
},
"packages/jest-console": {
"name": "@wordpress/jest-console",
- "version": "8.12.0",
+ "version": "8.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
@@ -54917,7 +54942,7 @@
},
"packages/jest-preset-default": {
"name": "@wordpress/jest-preset-default",
- "version": "12.12.0",
+ "version": "12.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@wordpress/jest-console": "*",
@@ -54934,7 +54959,7 @@
},
"packages/jest-puppeteer-axe": {
"name": "@wordpress/jest-puppeteer-axe",
- "version": "7.12.0",
+ "version": "7.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@axe-core/puppeteer": "^4.0.0",
@@ -54956,7 +54981,7 @@
},
"packages/keyboard-shortcuts": {
"name": "@wordpress/keyboard-shortcuts",
- "version": "5.12.0",
+ "version": "5.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
@@ -54974,7 +54999,7 @@
},
"packages/keycodes": {
"name": "@wordpress/keycodes",
- "version": "4.12.0",
+ "version": "4.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
@@ -54987,7 +55012,7 @@
},
"packages/lazy-import": {
"name": "@wordpress/lazy-import",
- "version": "2.12.0",
+ "version": "2.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"execa": "^4.0.2",
@@ -55001,7 +55026,7 @@
},
"packages/list-reusable-blocks": {
"name": "@wordpress/list-reusable-blocks",
- "version": "5.12.0",
+ "version": "5.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
@@ -55024,7 +55049,7 @@
},
"packages/media-utils": {
"name": "@wordpress/media-utils",
- "version": "5.12.0",
+ "version": "5.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
@@ -55041,7 +55066,7 @@
},
"packages/notices": {
"name": "@wordpress/notices",
- "version": "5.12.0",
+ "version": "5.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
@@ -55058,7 +55083,7 @@
},
"packages/npm-package-json-lint-config": {
"name": "@wordpress/npm-package-json-lint-config",
- "version": "5.12.0",
+ "version": "5.13.0",
"license": "GPL-2.0-or-later",
"engines": {
"node": ">=18.12.0",
@@ -55070,7 +55095,7 @@
},
"packages/nux": {
"name": "@wordpress/nux",
- "version": "9.12.0",
+ "version": "9.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
@@ -55093,7 +55118,7 @@
},
"packages/patterns": {
"name": "@wordpress/patterns",
- "version": "2.12.0",
+ "version": "2.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
@@ -55123,7 +55148,7 @@
},
"packages/plugins": {
"name": "@wordpress/plugins",
- "version": "7.12.0",
+ "version": "7.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
@@ -55147,7 +55172,7 @@
},
"packages/postcss-plugins-preset": {
"name": "@wordpress/postcss-plugins-preset",
- "version": "5.12.0",
+ "version": "5.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@wordpress/base-styles": "*",
@@ -55163,7 +55188,7 @@
},
"packages/postcss-themes": {
"name": "@wordpress/postcss-themes",
- "version": "6.12.0",
+ "version": "6.13.0",
"license": "GPL-2.0-or-later",
"engines": {
"node": ">=18.12.0",
@@ -55175,7 +55200,7 @@
},
"packages/preferences": {
"name": "@wordpress/preferences",
- "version": "4.12.0",
+ "version": "4.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
@@ -55201,7 +55226,7 @@
},
"packages/preferences-persistence": {
"name": "@wordpress/preferences-persistence",
- "version": "2.12.0",
+ "version": "2.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
@@ -55214,7 +55239,7 @@
},
"packages/prettier-config": {
"name": "@wordpress/prettier-config",
- "version": "4.12.0",
+ "version": "4.13.0",
"license": "GPL-2.0-or-later",
"engines": {
"node": ">=18.12.0",
@@ -55226,7 +55251,7 @@
},
"packages/primitives": {
"name": "@wordpress/primitives",
- "version": "4.12.0",
+ "version": "4.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
@@ -55243,7 +55268,7 @@
},
"packages/priority-queue": {
"name": "@wordpress/priority-queue",
- "version": "3.12.0",
+ "version": "3.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
@@ -55256,7 +55281,7 @@
},
"packages/private-apis": {
"name": "@wordpress/private-apis",
- "version": "1.12.0",
+ "version": "1.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7"
@@ -55268,7 +55293,7 @@
},
"packages/project-management-automation": {
"name": "@wordpress/project-management-automation",
- "version": "2.12.0",
+ "version": "2.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@actions/core": "1.9.1",
@@ -55296,7 +55321,7 @@
},
"packages/react-i18n": {
"name": "@wordpress/react-i18n",
- "version": "4.12.0",
+ "version": "4.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
@@ -55452,7 +55477,7 @@
},
"packages/readable-js-assets-webpack-plugin": {
"name": "@wordpress/readable-js-assets-webpack-plugin",
- "version": "3.12.0",
+ "version": "3.13.0",
"license": "GPL-2.0-or-later",
"engines": {
"node": ">=18.12.0",
@@ -55464,7 +55489,7 @@
},
"packages/redux-routine": {
"name": "@wordpress/redux-routine",
- "version": "5.12.0",
+ "version": "5.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
@@ -55507,7 +55532,7 @@
},
"packages/reusable-blocks": {
"name": "@wordpress/reusable-blocks",
- "version": "5.12.0",
+ "version": "5.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
@@ -55534,7 +55559,7 @@
},
"packages/rich-text": {
"name": "@wordpress/rich-text",
- "version": "7.12.0",
+ "version": "7.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
@@ -55558,14 +55583,16 @@
},
"packages/router": {
"name": "@wordpress/router",
- "version": "1.12.0",
+ "version": "1.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
+ "@wordpress/compose": "*",
"@wordpress/element": "*",
"@wordpress/private-apis": "*",
"@wordpress/url": "*",
- "history": "^5.3.0"
+ "history": "^5.3.0",
+ "route-recognizer": "^0.3.4"
},
"engines": {
"node": ">=18.12.0",
@@ -55577,7 +55604,7 @@
},
"packages/scripts": {
"name": "@wordpress/scripts",
- "version": "30.5.1",
+ "version": "30.6.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/core": "7.25.7",
@@ -56010,7 +56037,7 @@
},
"packages/server-side-render": {
"name": "@wordpress/server-side-render",
- "version": "5.12.0",
+ "version": "5.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
@@ -56036,7 +56063,7 @@
},
"packages/shortcode": {
"name": "@wordpress/shortcode",
- "version": "4.12.0",
+ "version": "4.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
@@ -56049,7 +56076,7 @@
},
"packages/style-engine": {
"name": "@wordpress/style-engine",
- "version": "2.12.0",
+ "version": "2.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
@@ -56062,7 +56089,7 @@
},
"packages/stylelint-config": {
"name": "@wordpress/stylelint-config",
- "version": "23.4.0",
+ "version": "23.5.0",
"license": "MIT",
"dependencies": {
"@stylistic/stylelint-plugin": "^3.0.1",
@@ -56173,7 +56200,7 @@
},
"packages/sync": {
"name": "@wordpress/sync",
- "version": "1.12.0",
+ "version": "1.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
@@ -56194,7 +56221,7 @@
},
"packages/token-list": {
"name": "@wordpress/token-list",
- "version": "3.12.0",
+ "version": "3.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7"
@@ -56206,7 +56233,7 @@
},
"packages/undo-manager": {
"name": "@wordpress/undo-manager",
- "version": "1.12.0",
+ "version": "1.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
@@ -56219,7 +56246,7 @@
},
"packages/url": {
"name": "@wordpress/url",
- "version": "4.12.0",
+ "version": "4.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
@@ -56232,7 +56259,7 @@
},
"packages/viewport": {
"name": "@wordpress/viewport",
- "version": "6.12.0",
+ "version": "6.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
@@ -56262,7 +56289,7 @@
},
"packages/warning": {
"name": "@wordpress/warning",
- "version": "3.12.0",
+ "version": "3.13.0",
"license": "GPL-2.0-or-later",
"engines": {
"node": ">=18.12.0",
@@ -56271,7 +56298,7 @@
},
"packages/widgets": {
"name": "@wordpress/widgets",
- "version": "4.12.0",
+ "version": "4.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7",
@@ -56299,7 +56326,7 @@
},
"packages/wordcount": {
"name": "@wordpress/wordcount",
- "version": "4.12.0",
+ "version": "4.13.0",
"license": "GPL-2.0-or-later",
"dependencies": {
"@babel/runtime": "7.25.7"
diff --git a/package.json b/package.json
index 41102f867f0e22..84425dbd1cff21 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "gutenberg",
- "version": "19.7.0",
+ "version": "19.8.0-rc.1",
"private": true,
"description": "A new WordPress editor experience.",
"author": "The WordPress Contributors",
@@ -25,7 +25,7 @@
"@actions/core": "1.9.1",
"@actions/github": "5.0.0",
"@apidevtools/json-schema-ref-parser": "11.6.4",
- "@ariakit/test": "^0.4.2",
+ "@ariakit/test": "^0.4.5",
"@babel/core": "7.25.7",
"@babel/plugin-syntax-jsx": "7.25.7",
"@babel/runtime-corejs3": "7.25.7",
@@ -93,6 +93,7 @@
"cssnano": "6.0.1",
"deep-freeze": "0.0.1",
"equivalent-key-map": "0.2.2",
+ "esbuild": "0.18.20",
"escape-html": "1.0.3",
"eslint-import-resolver-node": "0.3.4",
"eslint-plugin-eslint-comments": "3.1.2",
@@ -177,9 +178,10 @@
"build:package-types": "node ./bin/packages/validate-typescript-version.js && ( tsc --build || ( echo 'tsc failed. Try cleaning up first: `npm run clean:package-types`'; exit 1 ) ) && node ./bin/packages/check-build-type-declaration-files.js",
"prebuild:packages": "npm run clean:packages && npm run --if-present --workspaces build",
"build:packages": "npm run --silent build:package-types && node ./bin/packages/build.js",
+ "postbuild:packages": " npm run --if-present --workspaces build:wp",
"build:plugin-zip": "bash ./bin/build-plugin-zip.sh",
"clean:package-types": "tsc --build --clean && rimraf \"./packages/*/build-types\"",
- "clean:packages": "rimraf \"./packages/*/@(build|build-module|build-style)\"",
+ "clean:packages": "rimraf \"./packages/*/@(build|build-module|build-wp|build-style)\"",
"component-usage-stats": "node ./node_modules/react-scanner/bin/react-scanner -c ./react-scanner.config.js",
"dev": "cross-env NODE_ENV=development npm run build:packages && concurrently \"wp-scripts start\" \"npm run dev:packages\"",
"dev:packages": "cross-env NODE_ENV=development concurrently \"node ./bin/packages/watch.js\" \"tsc --build --watch\"",
diff --git a/packages/a11y/CHANGELOG.md b/packages/a11y/CHANGELOG.md
index dfd1e62906f9f4..57b52651acc787 100644
--- a/packages/a11y/CHANGELOG.md
+++ b/packages/a11y/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 4.13.0 (2024-11-27)
+
## 4.12.0 (2024-11-16)
## 4.11.0 (2024-10-30)
diff --git a/packages/a11y/package.json b/packages/a11y/package.json
index 1fcffd9cdfe69f..5eefe05954c797 100644
--- a/packages/a11y/package.json
+++ b/packages/a11y/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/a11y",
- "version": "4.12.0",
+ "version": "4.13.0",
"description": "Accessibility (a11y) utilities for WordPress.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
diff --git a/packages/annotations/CHANGELOG.md b/packages/annotations/CHANGELOG.md
index 07e9267e5b04c5..64bf565f8dd52b 100644
--- a/packages/annotations/CHANGELOG.md
+++ b/packages/annotations/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 3.13.0 (2024-11-27)
+
## 3.12.0 (2024-11-16)
## 3.11.0 (2024-10-30)
diff --git a/packages/annotations/package.json b/packages/annotations/package.json
index 269c16d159e9f6..47d39c978fccd1 100644
--- a/packages/annotations/package.json
+++ b/packages/annotations/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/annotations",
- "version": "3.12.0",
+ "version": "3.13.0",
"description": "Annotate content in the Gutenberg editor.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
diff --git a/packages/api-fetch/CHANGELOG.md b/packages/api-fetch/CHANGELOG.md
index e2ba79548592ec..da4df186a8cd2f 100644
--- a/packages/api-fetch/CHANGELOG.md
+++ b/packages/api-fetch/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 7.13.0 (2024-11-27)
+
## 7.12.0 (2024-11-16)
## 7.11.0 (2024-10-30)
diff --git a/packages/api-fetch/package.json b/packages/api-fetch/package.json
index 07d90568dc9413..432eabf6ec5a12 100644
--- a/packages/api-fetch/package.json
+++ b/packages/api-fetch/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/api-fetch",
- "version": "7.12.0",
+ "version": "7.13.0",
"description": "Utility to make WordPress REST API requests.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
diff --git a/packages/autop/CHANGELOG.md b/packages/autop/CHANGELOG.md
index dd9879ca23b746..caec56341262a1 100644
--- a/packages/autop/CHANGELOG.md
+++ b/packages/autop/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 4.13.0 (2024-11-27)
+
## 4.12.0 (2024-11-16)
## 4.11.0 (2024-10-30)
diff --git a/packages/autop/package.json b/packages/autop/package.json
index 60b7102850020a..bd48c84775d9ef 100644
--- a/packages/autop/package.json
+++ b/packages/autop/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/autop",
- "version": "4.12.0",
+ "version": "4.13.0",
"description": "WordPress's automatic paragraph functions `autop` and `removep`.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
diff --git a/packages/babel-plugin-import-jsx-pragma/CHANGELOG.md b/packages/babel-plugin-import-jsx-pragma/CHANGELOG.md
index 38a36491fe9a81..b7030c3e4140a7 100644
--- a/packages/babel-plugin-import-jsx-pragma/CHANGELOG.md
+++ b/packages/babel-plugin-import-jsx-pragma/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 5.13.0 (2024-11-27)
+
## 5.12.0 (2024-11-16)
## 5.11.0 (2024-10-30)
diff --git a/packages/babel-plugin-import-jsx-pragma/package.json b/packages/babel-plugin-import-jsx-pragma/package.json
index 231886784bd3f0..33244b4e7efb30 100644
--- a/packages/babel-plugin-import-jsx-pragma/package.json
+++ b/packages/babel-plugin-import-jsx-pragma/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/babel-plugin-import-jsx-pragma",
- "version": "5.12.0",
+ "version": "5.13.0",
"description": "Babel transform plugin for automatically injecting an import to be used as the pragma for the React JSX Transform plugin.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
diff --git a/packages/babel-plugin-makepot/CHANGELOG.md b/packages/babel-plugin-makepot/CHANGELOG.md
index 1e22ee8b4eabb4..00efceb28c075d 100644
--- a/packages/babel-plugin-makepot/CHANGELOG.md
+++ b/packages/babel-plugin-makepot/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 6.13.0 (2024-11-27)
+
## 6.12.0 (2024-11-16)
## 6.11.0 (2024-10-30)
diff --git a/packages/babel-plugin-makepot/package.json b/packages/babel-plugin-makepot/package.json
index 4f18f8556d68dd..33d301545c4685 100644
--- a/packages/babel-plugin-makepot/package.json
+++ b/packages/babel-plugin-makepot/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/babel-plugin-makepot",
- "version": "6.12.0",
+ "version": "6.13.0",
"description": "WordPress Babel internationalization (i18n) plugin.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
diff --git a/packages/babel-preset-default/CHANGELOG.md b/packages/babel-preset-default/CHANGELOG.md
index 8cce12417d2e26..4f5ef33b51298b 100644
--- a/packages/babel-preset-default/CHANGELOG.md
+++ b/packages/babel-preset-default/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 8.13.0 (2024-11-27)
+
## 8.12.0 (2024-11-16)
## 8.11.0 (2024-10-30)
diff --git a/packages/babel-preset-default/package.json b/packages/babel-preset-default/package.json
index b305500dc20795..afe1025d604a86 100644
--- a/packages/babel-preset-default/package.json
+++ b/packages/babel-preset-default/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/babel-preset-default",
- "version": "8.12.0",
+ "version": "8.13.0",
"description": "Default Babel preset for WordPress development.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
diff --git a/packages/base-styles/CHANGELOG.md b/packages/base-styles/CHANGELOG.md
index 67fdcfa2424530..196c6573d7b872 100644
--- a/packages/base-styles/CHANGELOG.md
+++ b/packages/base-styles/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 5.13.0 (2024-11-27)
+
## 5.12.0 (2024-11-16)
## 5.11.0 (2024-10-30)
diff --git a/packages/base-styles/_animations.scss b/packages/base-styles/_animations.scss
index ae5de9a803008c..e5bbf863757356 100644
--- a/packages/base-styles/_animations.scss
+++ b/packages/base-styles/_animations.scss
@@ -41,8 +41,3 @@
@warn "The `edit-post__fade-in-animation` mixin is deprecated. Use `animation__fade-in` instead.";
@include animation__fade-in($speed, $delay);
}
-
-@mixin editor-canvas-resize-animation($additional-transition-rules...) {
- transition: all 400ms cubic-bezier(0.46, 0.03, 0.52, 0.96), $additional-transition-rules;
- @include reduce-motion("transition");
-}
diff --git a/packages/base-styles/package.json b/packages/base-styles/package.json
index bcdb19206b39e9..2fc026a9ee72ab 100644
--- a/packages/base-styles/package.json
+++ b/packages/base-styles/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/base-styles",
- "version": "5.12.0",
+ "version": "5.13.0",
"description": "Base SCSS utilities and variables for WordPress.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
diff --git a/packages/blob/CHANGELOG.md b/packages/blob/CHANGELOG.md
index 2edfa51064106f..2d518db27bb40a 100644
--- a/packages/blob/CHANGELOG.md
+++ b/packages/blob/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 4.13.0 (2024-11-27)
+
## 4.12.0 (2024-11-16)
## 4.11.0 (2024-10-30)
diff --git a/packages/blob/package.json b/packages/blob/package.json
index 2134bcd21e9346..4ecf6602400496 100644
--- a/packages/blob/package.json
+++ b/packages/blob/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/blob",
- "version": "4.12.0",
+ "version": "4.13.0",
"description": "Blob utilities for WordPress.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
diff --git a/packages/block-directory/CHANGELOG.md b/packages/block-directory/CHANGELOG.md
index 37b6b6b3ece40a..ff4fac035eaa06 100644
--- a/packages/block-directory/CHANGELOG.md
+++ b/packages/block-directory/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 5.13.0 (2024-11-27)
+
## 5.12.0 (2024-11-16)
## 5.11.0 (2024-10-30)
diff --git a/packages/block-directory/package.json b/packages/block-directory/package.json
index a005e5be7cd60b..2fa0bf52ea126f 100644
--- a/packages/block-directory/package.json
+++ b/packages/block-directory/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/block-directory",
- "version": "5.12.0",
+ "version": "5.13.0",
"description": "Extend editor with block directory features to search, download and install blocks.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
diff --git a/packages/block-editor/CHANGELOG.md b/packages/block-editor/CHANGELOG.md
index 3c1e63c75c75ff..87dc0459bfb715 100644
--- a/packages/block-editor/CHANGELOG.md
+++ b/packages/block-editor/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 14.8.0 (2024-11-27)
+
## 14.7.0 (2024-11-16)
## 14.6.0 (2024-10-30)
diff --git a/packages/block-editor/package.json b/packages/block-editor/package.json
index 031b34933691a3..008e02355ac703 100644
--- a/packages/block-editor/package.json
+++ b/packages/block-editor/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/block-editor",
- "version": "14.7.0",
+ "version": "14.8.0",
"description": "Generic block editor.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
diff --git a/packages/block-editor/src/components/alignment-control/stories/aliginment-toolbar.story.js b/packages/block-editor/src/components/alignment-control/stories/aliginment-toolbar.story.js
new file mode 100644
index 00000000000000..f2191220d6bb4c
--- /dev/null
+++ b/packages/block-editor/src/components/alignment-control/stories/aliginment-toolbar.story.js
@@ -0,0 +1,47 @@
+/**
+ * WordPress dependencies
+ */
+import { useState } from '@wordpress/element';
+
+/**
+ * Internal dependencies
+ */
+import { AlignmentToolbar } from '..';
+
+/**
+ * The `AlignmentToolbar` component renders a dropdown menu that displays alignment options for the selected block in `Toolbar`.
+ */
+const meta = {
+ title: 'BlockEditor/AlignmentToolbar',
+ component: AlignmentToolbar,
+ argTypes: {
+ value: {
+ control: { type: null },
+ defaultValue: 'undefined',
+ description: 'The current value of the alignment setting.',
+ },
+ onChange: {
+ action: 'onChange',
+ control: { type: null },
+ description:
+ "A callback function invoked when the toolbar's alignment value is changed via an interaction with any of the toolbar's buttons. Called with the new alignment value (ie: `left`, `center`, `right`, `undefined`) as the only argument.",
+ },
+ },
+};
+export default meta;
+
+export const Default = {
+ render: function Template( { onChange, ...args } ) {
+ const [ value, setValue ] = useState();
+ return (
+ {
+ onChange( ...changeArgs );
+ setValue( ...changeArgs );
+ } }
+ value={ value }
+ />
+ );
+ },
+};
diff --git a/packages/block-editor/src/components/alignment-control/stories/index.story.js b/packages/block-editor/src/components/alignment-control/stories/index.story.js
new file mode 100644
index 00000000000000..85c92f7e0665a4
--- /dev/null
+++ b/packages/block-editor/src/components/alignment-control/stories/index.story.js
@@ -0,0 +1,51 @@
+/**
+ * WordPress dependencies
+ */
+import { useState } from '@wordpress/element';
+
+/**
+ * Internal dependencies
+ */
+import { AlignmentControl } from '../';
+
+/**
+ * The `AlignmentControl` component renders a dropdown menu that displays alignment options for the selected block.
+ *
+ * This component is mostly used for blocks that display text, such as Heading, Paragraph, Post Author, Post Comments, Verse, Quote, Post Title, etc... And the available alignment options are `left`, `center` or `right` alignment.
+ *
+ * If you want to use the alignment control in a toolbar, you should use the `AlignmentToolbar` component instead.
+ */
+const meta = {
+ title: 'BlockEditor/AlignmentControl',
+ component: AlignmentControl,
+ argTypes: {
+ value: {
+ control: { type: null },
+ defaultValue: 'undefined',
+ description: 'The current value of the alignment setting.',
+ },
+ onChange: {
+ action: 'onChange',
+ control: { type: null },
+ description:
+ "A callback function invoked when the toolbar's alignment value is changed via an interaction with any of the toolbar's buttons. Called with the new alignment value (ie: `left`, `center`, `right`, `undefined`) as the only argument.",
+ },
+ },
+};
+export default meta;
+
+export const Default = {
+ render: function Template( { onChange, ...args } ) {
+ const [ value, setValue ] = useState();
+ return (
+ {
+ onChange( ...changeArgs );
+ setValue( ...changeArgs );
+ } }
+ value={ value }
+ />
+ );
+ },
+};
diff --git a/packages/block-editor/src/components/block-canvas/style.scss b/packages/block-editor/src/components/block-canvas/style.scss
index 8f6064de0b615c..ea54646e64a59a 100644
--- a/packages/block-editor/src/components/block-canvas/style.scss
+++ b/packages/block-editor/src/components/block-canvas/style.scss
@@ -4,6 +4,7 @@ iframe[name="editor-canvas"] {
height: 100%;
display: block;
// Handles transitions between device previews
- @include editor-canvas-resize-animation;
+ transition: all 400ms cubic-bezier(0.46, 0.03, 0.52, 0.96);
+ @include reduce-motion("transition");
background-color: $gray-300;
}
diff --git a/packages/block-editor/src/components/block-patterns-list/index.js b/packages/block-editor/src/components/block-patterns-list/index.js
index 8128e89418f45a..0c7e54c3c62b24 100644
--- a/packages/block-editor/src/components/block-patterns-list/index.js
+++ b/packages/block-editor/src/components/block-patterns-list/index.js
@@ -41,6 +41,7 @@ function BlockPattern( {
onHover,
showTitlesAsTooltip,
category,
+ isSelected,
} ) {
const [ isDragging, setIsDragging ] = useState( false );
const { blocks, viewportWidth } = pattern;
@@ -114,6 +115,7 @@ function BlockPattern( {
pattern.type ===
INSERTER_PATTERN_TYPES.user &&
! pattern.syncStatus,
+ 'is-selected': isSelected,
}
) }
/>
@@ -192,6 +194,7 @@ function BlockPatternsList(
ref
) {
const [ activeCompositeId, setActiveCompositeId ] = useState( undefined );
+ const [ activePattern, setActivePattern ] = useState( null ); // State to track active pattern
useEffect( () => {
// Reset the active composite item whenever the available patterns change,
@@ -201,6 +204,11 @@ function BlockPatternsList(
setActiveCompositeId( firstCompositeItemId );
}, [ blockPatterns ] );
+ const handleClickPattern = ( pattern, blocks ) => {
+ setActivePattern( pattern.name );
+ onClickPattern( pattern, blocks );
+ };
+
return (
) ) }
{ pagingProps && }
diff --git a/packages/block-editor/src/components/block-patterns-list/style.scss b/packages/block-editor/src/components/block-patterns-list/style.scss
index c46bb49b9a9016..8b1b0b54c9b1a0 100644
--- a/packages/block-editor/src/components/block-patterns-list/style.scss
+++ b/packages/block-editor/src/components/block-patterns-list/style.scss
@@ -44,19 +44,29 @@
outline: $border-width solid rgba($black, 0.1);
outline-offset: -$border-width;
border-radius: $radius-medium;
+
+ transition: outline 0.1s linear;
+ @include reduce-motion("transition");
}
}
- &:hover:not(:focus) .block-editor-block-preview__container::after {
+ // Selected
+ &.is-selected .block-editor-block-preview__container::after {
+ outline-color: $gray-900;
+ outline-width: var(--wp-admin-border-width-focus);
+ outline-offset: calc(-1 * var(--wp-admin-border-width-focus));
+ }
+
+ // Hover state
+ &:hover .block-editor-block-preview__container::after {
outline-color: rgba($black, 0.3);
}
- &:focus .block-editor-block-preview__container::after {
+ // Focused state
+ &[data-focus-visible] .block-editor-block-preview__container::after {
outline-color: var(--wp-admin-theme-color);
outline-width: var(--wp-admin-border-width-focus);
- outline-offset: calc((-1 * var(--wp-admin-border-width-focus)));
- transition: outline 0.1s linear;
- @include reduce-motion("transition");
+ outline-offset: calc(-1 * var(--wp-admin-border-width-focus));
}
.block-editor-patterns__pattern-details:not(:empty) {
@@ -68,6 +78,7 @@
.block-editor-patterns__pattern-icon-wrapper {
min-width: 24px;
height: 24px;
+
.block-editor-patterns__pattern-icon {
fill: var(--wp-block-synced-color);
}
diff --git a/packages/block-editor/src/components/block-settings-menu-controls/index.js b/packages/block-editor/src/components/block-settings-menu-controls/index.js
index 4ebce4172e9b37..b0755be4c26297 100644
--- a/packages/block-editor/src/components/block-settings-menu-controls/index.js
+++ b/packages/block-editor/src/components/block-settings-menu-controls/index.js
@@ -55,7 +55,8 @@ const BlockSettingsMenuControlsSlot = ( { fillProps, clientIds = null } ) => {
const convertToGroupButtonProps =
useConvertToGroupButtonProps( selectedClientIds );
const { isGroupable, isUngroupable } = convertToGroupButtonProps;
- const showConvertToGroupButton = isGroupable || isUngroupable;
+ const showConvertToGroupButton =
+ ( isGroupable || isUngroupable ) && ! isContentOnly;
return (
{
const {
@@ -74,6 +76,7 @@ export function BlockSettingsDropdown( {
getBlockAttributes,
getOpenedBlockSettingsMenu,
getBlockEditingMode,
+ isZoomOut: _isZoomOut,
} = unlock( select( blockEditorStore ) );
const { getActiveBlockVariation } = select( blocksStore );
@@ -98,10 +101,12 @@ export function BlockSettingsDropdown( {
openedBlockSettingsMenu: getOpenedBlockSettingsMenu(),
isContentOnly:
getBlockEditingMode( firstBlockClientId ) === 'contentOnly',
+ isZoomOut: _isZoomOut(),
};
},
[ firstBlockClientId ]
);
+
const { getBlockOrder, getSelectedBlockClientIds } =
useSelect( blockEditorStore );
@@ -248,7 +253,7 @@ export function BlockSettingsDropdown( {
clientId={ firstBlockClientId }
/>
) }
- { ! isContentOnly && (
+ { ( ! isContentOnly || isZoomOut ) && (
{
+ const actualImplementation = jest.requireActual( '@wordpress/blocks' );
return {
+ ...actualImplementation,
isReusableBlock( { title } ) {
return title === 'Reusable Block';
},
diff --git a/packages/block-editor/src/components/block-toolbar/index.js b/packages/block-editor/src/components/block-toolbar/index.js
index ea068d8126526c..63b2f6ad7f9a03 100644
--- a/packages/block-editor/src/components/block-toolbar/index.js
+++ b/packages/block-editor/src/components/block-toolbar/index.js
@@ -74,6 +74,8 @@ export function PrivateBlockToolbar( {
showGroupButtons,
showLockButtons,
showSwitchSectionStyleButton,
+ hasFixedToolbar,
+ isNavigationMode,
} = useSelect( ( select ) => {
const {
getBlockName,
@@ -85,8 +87,10 @@ export function PrivateBlockToolbar( {
getBlockAttributes,
getBlockParentsByBlockName,
getTemplateLock,
+ getSettings,
getParentSectionBlock,
isZoomOut,
+ isNavigationMode: _isNavigationMode,
} = unlock( select( blockEditorStore ) );
const selectedBlockClientIds = getSelectedBlockClientIds();
const selectedBlockClientId = selectedBlockClientIds[ 0 ];
@@ -119,6 +123,7 @@ export function PrivateBlockToolbar( {
const _hasTemplateLock = selectedBlockClientIds.some(
( id ) => getTemplateLock( id ) === 'contentOnly'
);
+
return {
blockClientId: selectedBlockClientId,
blockClientIds: selectedBlockClientIds,
@@ -144,6 +149,8 @@ export function PrivateBlockToolbar( {
showGroupButtons: ! isZoomOut(),
showLockButtons: ! isZoomOut(),
showSwitchSectionStyleButton: isZoomOut(),
+ hasFixedToolbar: getSettings().hasFixedToolbar,
+ isNavigationMode: _isNavigationMode(),
};
}, [] );
@@ -170,6 +177,7 @@ export function PrivateBlockToolbar( {
// Shifts the toolbar to make room for the parent block selector.
const classes = clsx( 'block-editor-block-contextual-toolbar', {
'has-parent': showParentSelector,
+ 'is-inverted-toolbar': isNavigationMode && ! hasFixedToolbar,
} );
const innerClasses = clsx( 'block-editor-block-toolbar', {
diff --git a/packages/block-editor/src/components/block-tools/style.scss b/packages/block-editor/src/components/block-tools/style.scss
index b553d42668cf38..0ed9c138519d29 100644
--- a/packages/block-editor/src/components/block-tools/style.scss
+++ b/packages/block-editor/src/components/block-tools/style.scss
@@ -139,6 +139,45 @@
border-right-color: $gray-900;
}
+ .is-inverted-toolbar {
+ background-color: $gray-900;
+ color: $gray-100;
+
+ &.block-editor-block-contextual-toolbar {
+ border-color: $gray-800;
+ }
+
+ button {
+ color: $gray-300;
+
+ &:hover {
+ color: $white;
+ }
+
+ &:focus::before {
+ box-shadow: inset 0 0 0 1px $gray-900, 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);
+ }
+ }
+
+ .block-editor-block-parent-selector .block-editor-block-parent-selector__button {
+ border-color: $gray-800;
+ background-color: $gray-900;
+ }
+
+ .block-editor-block-switcher__toggle {
+ color: $gray-100;
+ }
+
+ .components-toolbar-group,
+ .components-toolbar {
+ border-right-color: $gray-800 !important;
+ }
+
+ .is-pressed {
+ color: var(--wp-admin-theme-color);
+ }
+ }
+
// Hide the block toolbar if the insertion point is shown.
&.is-insertion-point-visible {
visibility: hidden;
diff --git a/packages/block-editor/src/components/color-palette/test/__snapshots__/control.js.snap b/packages/block-editor/src/components/color-palette/test/__snapshots__/control.js.snap
index 3c4cef664a3103..14196a221304bc 100644
--- a/packages/block-editor/src/components/color-palette/test/__snapshots__/control.js.snap
+++ b/packages/block-editor/src/components/color-palette/test/__snapshots__/control.js.snap
@@ -219,7 +219,7 @@ exports[`ColorPaletteControl matches the snapshot 1`] = `