- Notes: Move the rich text control the note form renders from
@wordpress/dataviewsinto this package, where@wordpress/rich-textis the same copy the block editor uses (#81430). - Use the new
@wordpress/kebab-casepackage instead of unlocking thekebabCaseutility from the@wordpress/componentsprivate APIs (#81294). - Vendor a local copy of the
normalizeTextStringutility instead of unlocking it from the@wordpress/componentsprivate APIs (#81294).
- Add a read-only code diff to the revisions screen (#80314).
- Add a
blockStatesEditingEnablededitor setting, defaulting totrue, which hides state controls for blocks in the block inspector and Global Styles when set tofalse(#80956, #81058).
- Device Preview: Keep tablet and mobile iframe widths inside their responsive breakpoints so media queries remain accurate at browser zoom levels.
- Document tools: Fix icon button focus styles to use the design system
outset-ring__focusmixin (#81115). - Update the admin bar's site icon when the Site Icon is saved, instead of showing the previous icon until the page is reloaded. Saving the icon also refetches the site's base data, which holds the icon URL derived from it (#81483).
- Notes: Remove "Add note" from the rich-text formatting toolbar's "More" (inline styles) dropdown. Adding a note is not an inline style, the item duplicated the block options entry, and the dropdown's chevron rendered as pressed whenever the caret sat inside a note (#80531).
- The "Apply globally" control now opens a review modal so you can choose which of a block's modified styles are pushed to Global Styles, showing each style's current and new value (#79839).
- Add a
responsiveEditingEnablededitor setting, defaulting totrue, which hides the "Responsive styles" option in the View menu and the viewport state control in Global Styles when set tofalse(#80814).
mediaUpload: Add anisTransportOnlyparameter, set by the@wordpress/upload-mediaqueue, which owns progress tracking and save locking for its own items and uses this function only as its server transport. Fixes the progress snackbar showing "1 of 2" for a single HEIC upload in Safari (#80369).
- Update
date-fnsto 4.4.0 (#80763).
- Add an "Attachments" source to the block inserter's Media tab, listing images attached to the current post with the ability to attach and detach them (#79336).
- Use the emphasis font-weight token for UI emphasis (#80093).
- Notes: Remove the snackbar notice shown when a note is resolved or reopened, as the note's appearance already updates in place to reflect the change. The result is still announced to screen readers (#80017).
- The "View the autosave" notice now opens the autosave in the visual revisions view with its changes highlighted, instead of the classic revisions screen. It falls back to the classic screen when visual revisions are disabled (#79947).
- Render the "Preview in new tab" action with the shared menu item pattern so its typography matches sibling menu items (#80195).
- External images are now sideloaded on the server when uploaded to the media library, via a new
mediaSideloadFromUrlblock editor setting, so the upload works when the editor is cross-origin isolated (e.g. with client-side media processing enabled) (#79409).
- Widen React peer dependency ranges to
^18 || ^19to support both React 18 and React 19 environments (#80024).
- Added
UploadProgressSnackbarcomponent that shows a persistent snackbar with upload progress while media uploads are in progress. The snackbar shows a spinner during uploads and a checkmark briefly when all uploads complete.
- Add missing
@types/reactdependency. #78882.
- Fix documentation grammar (#78686).
- Dependency updates (#77954).
- Editor: Add padding around inline notices in the editor content area and distraction-free header.
- Editor: Pause the client-side media upload queue while the browser is offline and resume it automatically when connectivity returns (#76765).
- The Media Editor modal is now mounted unconditionally and the
openMediaEditorModalsetting is always provided to the block editor. Previously both were gated behind thegutenberg-media-editor-modalexperiment, which has been removed.
mediaFinalizenow returns the post-finalize attachment (transformed from the REST response), so the upload-media queue can refresh the in-flight attachment URL. Required for the front-endsrcsetto render on client-side-media uploads that exceeded the big-image threshold.- Template actions panel: Fix the keyboard activation of the "Change template" preview so it only opens the swap modal on Enter / Space (#78641).
- Updated
diffdependency from^4.0.2to^8.0.3(#77992).
- Update
date-fnsdependency tov4.1.0(#78057).
- Fixed avatar contrast ring not displaying over loaded images by using a
::afterpseudo-element instead of an insetbox-shadow.
- Applied the
welcome-guideclose-button hover color locally to maintain consistent styling after changes to the sharedGuidecomponent.
Post Featured Image: FixSet featured imagebutton'sbox-shadowtransition to prevent border from flashing when focused.
PostTaxonomiesFlatTermSelector: Deprecate bottom margin. Add a__nextHasNoMarginBottomprop to start opting into the margin-free styles that will become the default in a future version, currently scheduled to be WordPress 7.0 (#63491).
- Variables like
process.env.IS_GUTENBERG_PLUGINhave been replaced byglobalThis.IS_GUTENBERG_PLUGIN. Build systems usingprocess.envshould be updated (#61486). - Increase the minimum required Node.js version to v18.12.0 matching long-term support releases (#31270). Learn more about Node.js releases.
- Replaced
classnamespackage with the faster and smallerclsxpackage (#61138).
- Add the editor panels visibility state to the editor store in addition to the following actions and selectors:
toggleEditorPanelEnabled,toggleEditorPanelOpened,removeEditorPanel,isEditorPanelRemoved,isEditorPanelOpenedandisEditorPanelEnabled.
- Updated dependencies to require React 18 (45235)
- Add
isDeletingPostselector to thecore/editorstore (#44012).
- Deprecated
cleanForSlugthat is now part of@wordpress/url.
- Export
PostTaxonomiesFlatTermSelectorandPostTaxonomiesHierarchicalTermSelectorcomponents to allow using them to customize the default term selector for a taxonomy.
- Removed unused
@wordpress/autop,@wordpress/bloband@wordpress/is-shallow-equaldependencies (#38388).
- the
createUndoLevelandrefreshPostactions were marked as deprecated. They were already defunct and acting as noops.
- Removed the deprecated
resetAutosaveaction (#34537). - Removed the deprecated
getAutosave,hasAutosaveandgetBlockForSerializationselectors (#34537).
- Upgraded React components to work with v17.0 (#29118). There are no new features in React v17.0 as explained in the blog post.
- Drop support for Internet Explorer 11 (#31110). Learn more at https://make.wordpress.org/core/2021/04/22/ie-11-support-phase-out-plan/.
- Increase the minimum Node.js version to v12 matching Long Term Support releases (#31270). Learn more at https://nodejs.org/en/about/releases/.
- Added a store definition
storefor the editor namespace to use with@wordpress/dataAPI (#26655).
- The
UnsavedChangesWarningcomponent is now using__experimentalGetDirtyEntityRecordsto determine if there were changes.
- The following components are deprecated as moved to the
@wordpress/block-editorpackage:- Autocomplete,
- AlignmentToolbar,
- BlockAlignmentToolbar,
- BlockControls,
- BlockEdit,
- BlockEditorKeyboardShortcuts,
- BlockFormatControls,
- BlockIcon,
- BlockInspector,
- BlockList,
- BlockMover,
- BlockNavigationDropdown,
- BlockSelectionClearer,
- BlockSettingsMenu,
- BlockTitle,
- BlockToolbar,
- ColorPalette,
- ContrastChecker,
- CopyHandler,
- createCustomColorsHOC,
- DefaultBlockAppender,
- FontSizePicker,
- getColorClassName,
- getColorObjectByAttributeValues,
- getColorObjectByColorValue,
- getFontSize,
- getFontSizeClass,
- Inserter,
- InnerBlocks,
- InspectorAdvancedControls,
- InspectorControls,
- PanelColorSettings,
- PlainText,
- RichText,
- RichTextShortcut,
- RichTextToolbarButton,
- RichTextInserterItem,
- MediaPlaceholder,
- MediaUpload,
- MediaUploadCheck,
- MultiBlocksSwitcher,
- MultiSelectScrollIntoView,
- NavigableToolbar,
- ObserveTyping,
- PreserveScrollInReorder,
- SkipToSelectedBlock,
- URLInput,
- URLInputButton,
- URLPopover,
- Warning,
- WritingFlow,
- withColorContext,
- withColors,
- withFontSizes.
- The following actions are deprecated as moved to the
core/block-editorstore:- resetBlocks,
- receiveBlocks,
- updateBlock,
- updateBlockAttributes,
- selectBlock,
- startMultiSelect,
- stopMultiSelect,
- multiSelect,
- clearSelectedBlock,
- toggleSelection,
- replaceBlocks,
- replaceBlock,
- moveBlocksDown,
- moveBlocksUp,
- moveBlockToPosition,
- insertBlock,
- insertBlocks,
- showInsertionPoint,
- hideInsertionPoint,
- setTemplateValidity,
- synchronizeTemplate,
- mergeBlocks,
- removeBlocks,
- removeBlock,
- toggleBlockMode,
- startTyping,
- stopTyping,
- enterFormattedText,
- exitFormattedText,
- insertDefaultBlock,
- updateBlockListSettings.
- The following selectors are deprecated as moved to the
core/block-editorstore:- getBlockDependantsCacheBust,
- getBlockName,
- isBlockValid,
- getBlockAttributes,
- getBlock,
- getBlocks,
- getClientIdsOfDescendants,
- getClientIdsWithDescendants,
- getGlobalBlockCount,
- getBlocksByClientId,
- getBlockCount,
- getBlockSelectionStart,
- getBlockSelectionEnd,
- getSelectedBlockCount,
- hasSelectedBlock,
- getSelectedBlockClientId,
- getSelectedBlock,
- getBlockRootClientId,
- getBlockHierarchyRootClientId,
- getAdjacentBlockClientId,
- getPreviousBlockClientId,
- getNextBlockClientId,
- getSelectedBlocksInitialCaretPosition,
- getMultiSelectedBlockClientIds,
- getMultiSelectedBlocks,
- getFirstMultiSelectedBlockClientId,
- getLastMultiSelectedBlockClientId,
- isFirstMultiSelectedBlock,
- isBlockMultiSelected,
- isAncestorMultiSelected,
- getMultiSelectedBlocksStartClientId,
- getMultiSelectedBlocksEndClientId,
- getBlockOrder,
- getBlockIndex,
- isBlockSelected,
- hasSelectedInnerBlock,
- isBlockWithinSelection,
- hasMultiSelection,
- isMultiSelecting,
- isSelectionEnabled,
- getBlockMode =,
- isTyping,
- isCaretWithinFormattedText,
- getBlockInsertionPoint,
- isBlockInsertionPointVisible,
- isValidTemplate,
- getTemplate,
- getTemplateLock,
- canInsertBlockType,
- getInserterItems,
- hasInserterItems,
- getBlockListSettings.
- The
getAutosave,getAutosaveAttribute, andhasAutosaveselectors are deprecated. Please use thegetAutosaveselector in the@wordpress/core-datapackage. - The
resetAutosaveaction is deprecated. An equivalent actionreceiveAutosaveshas been added to the@wordpress/core-datapackage. ServerSideRendercomponent was deprecated. The component is now available in@wordpress/server-side-render.
- Refactor setupEditor effects to action-generator using controls (#14513)
- Remove redux-multi dependency (no longer needed/used with above refactor)
- Replace internal controls definitions with usage of new @wordpress/data-controls package (see #15435
- Added
createCustomColorsHOCfor creating a higher orderwithCustomColorscomponent. - Added a new
TextEditorGlobalKeyboardShortcutscomponent.
EditorGlobalKeyboardShortcutshas been deprecated in favor ofVisualEditorGlobalKeyboardShortcuts.
- BlockSwitcher will now consistently render an icon for block multi-selections.
- Removed
jQuerydependency. - Removed
TinyMCEdependency. - RichText: improve format boundaries.
- Refactor all post effects to action-generators using controls (#13716)
- Restore the
blockprop in theBlockListBlockfilter.
getEditedPostAttributenow correctly returns the merged result of edits as a partial change when given'meta'as theattributeName.- Fixes an error and unrecoverable state which occurs on autosave completion for a
'publicly_queryable' => falsepost type.
PostPublishPanelTogglehas been removed. UsePostPublishButtoninstead.
- The reusable blocks actions and selectors have been marked as experimental.
- Stop propagating to DOM elements the
focusOnMountprop fromNavigableToolbarcomponents
- Remove unnecessary
localeprop usage #11649
- Fix multi-selection triggering too often when using floated blocks.
- The
PanelColorcomponent has been removed.
- In
NavigableToolbar, a property focusOnMount was added, if true, the toolbar will get focus as soon as it mounted. Defaults to false.
- Avoid unnecessary re-renders when navigating between blocks.
- PostPublishPanel: return focus to element that opened the panel
- Capture focus on self in InsertionPoint inserter
- Correct insertion point opacity selector
- Set code editor as RTL
PostPublishPanelTogglehas been deprecated in favor ofPostPublishButton.
- Reactive block styles.
- Adjust a11y roles for menu items, and make sure screen readers can properly use BlockNavigationList (#11431).
- Remove
findDOMNodeusage from theInsertercomponent. - Remove
findDOMNodeusage from theBlockcomponent. - Remove
findDOMNodeusage from theNavigableToolbarcomponent.
- The Reusable blocks Data API is marked as experimental as it's subject to change in the future (#11230).
- Tweak the vanilla style sheet for consistency.
- Fix the "Copy Post Text" button not copying the post text.
- The
labels.nameproperty has been removed fromMediaPlaceholderin favor of the newlabels.instructionsprop. - The
UnsavedChangesWarningcomponent no longer accepts aforceIsDirtyprop. mediaDetailsin object passed toonFileChangecallback ofmediaUpload. Please usemedia_detailsproperty instead.
- In
MediaPlaceholder, provide default values for title and instructions labels when allowed type is one of image, audio or video. - New actions
lockPostSavingandunlockPostSavingwere introduced (#10649). - New selector
isPostSavingLockedwas introduced (#10649).
- Add animated logo to preview interstitial screen.
- Tweak the editor styles support.
- Made preview interstitial text translatable.
- The
checkTemplateValidityaction has been removed. Validity is verified automatically upon block reset.
PanelColorhas been deprecated in favor ofPanelColorSettings.
- Added
onCloseprop toURLPopovercomponent.
getColorNamehas been removed. UsegetColorObjectByColorValueinstead.getColorClasshas been renamed. UsegetColorClassNameinstead.- The
valueproperty in color objects passed bywithColorshas been removed. Usecolorproperty instead. RichTextgetSettingsprop has been removed. TheunstableGetSettingsprop is available if continued use is required. Unstable APIs are strongly discouraged to be used, and are subject to removal without notice, even as part of a minor release.RichTextonSetupprop has been removed. TheunstableOnSetupprop is available if continued use is required. Unstable APIs are strongly discouraged to be used, and are subject to removal without notice, even as part of a minor release.RichTextProviderhas been removed. Please usewp.data.select( 'core/editor' )methods instead.
- The
checkTemplateValidityaction has been deprecated. Validity is verified automatically upon block reset. - The
UnsavedChangesWarningcomponentforceIsDirtyprop has been deprecated.
- Add editor styles support.
- The
wideAlignblock supports hook has been removed. UsealignWideinstead. fetchSharedBlocksaction has been removed. UsefetchReusableBlocksinstead.receiveSharedBlocksaction has been removed. UsereceiveReusableBlocksinstead.saveSharedBlockaction has been removed. UsesaveReusableBlockinstead.deleteSharedBlockaction has been removed. UsedeleteReusableBlockinstead.updateSharedBlockTitleaction has been removed. UseupdateReusableBlockTitleinstead.convertBlockToSavedaction has been removed. UseconvertBlockToReusableinstead.getSharedBlockselector has been removed. UsegetReusableBlockinstead.isSavingSharedBlockselector has been removed. UseisSavingReusableBlockinstead.isFetchingSharedBlockselector has been removed. UseisFetchingReusableBlockinstead.getSharedBlocksselector has been removed. UsegetReusableBlocksinstead.editorMediaUploadhas been removed. UsemediaUploadinstead.- Change how required built-ins are polyfilled with Babel 7 (#9171). If you're using an environment that has limited or no support for ES2015+ such as lower versions of IE then using core-js or @babel/polyfill will add support for these methods.
DocumentTitlecomponent has been removed.getDocumentTitleselector (core/editor) has been removed.
RichTextProviderflagged for deprecation. Please usewp.data.select( 'core/editor' )methods instead.
- The
PostTextEditorcomponent will respect its in-progress state edited value, even if the assigned prop value changes.