diff --git a/packages/block-editor/README.md b/packages/block-editor/README.md
index 2c42b42afc4424..937bfea2f49656 100644
--- a/packages/block-editor/README.md
+++ b/packages/block-editor/README.md
@@ -680,6 +680,10 @@ _Related_
Private @wordpress/block-editor APIs.
+### ReusableBlocksRenameHint
+
+Undocumented declaration.
+
### RichText
_Related_
diff --git a/packages/block-editor/src/components/index.js b/packages/block-editor/src/components/index.js
index e804771f9ce64a..a49fd623ac14a3 100644
--- a/packages/block-editor/src/components/index.js
+++ b/packages/block-editor/src/components/index.js
@@ -164,3 +164,8 @@ export { default as __experimentalInspectorPopoverHeader } from './inspector-pop
export { default as BlockEditorProvider } from './provider';
export { default as useSetting } from './use-setting';
+
+/*
+ * The following rename hint component can be removed in 6.4.
+ */
+export { default as ReusableBlocksRenameHint } from './inserter/reusable-block-rename-hint';
diff --git a/packages/block-editor/src/components/inserter/reusable-block-rename-hint.js b/packages/block-editor/src/components/inserter/reusable-block-rename-hint.js
new file mode 100644
index 00000000000000..09861d9b97f1c9
--- /dev/null
+++ b/packages/block-editor/src/components/inserter/reusable-block-rename-hint.js
@@ -0,0 +1,52 @@
+/**
+ * WordPress dependencies
+ */
+import { Button } from '@wordpress/components';
+import { useDispatch, useSelect } from '@wordpress/data';
+import { focus } from '@wordpress/dom';
+import { useRef } from '@wordpress/element';
+import { __ } from '@wordpress/i18n';
+import { close } from '@wordpress/icons';
+import { store as preferencesStore } from '@wordpress/preferences';
+
+const PREFERENCE_NAME = 'isResuableBlocksrRenameHintVisible';
+
+export default function ReusableBlocksRenameHint() {
+ const isReusableBlocksRenameHint = useSelect(
+ ( select ) =>
+ select( preferencesStore ).get( 'core', PREFERENCE_NAME ) ?? true,
+ []
+ );
+
+ const ref = useRef();
+
+ const { set: setPreference } = useDispatch( preferencesStore );
+ if ( ! isReusableBlocksRenameHint ) {
+ return null;
+ }
+
+ return (
+
+
+ { __(
+ 'Reusable blocks are now called patterns. A synced pattern will behave in exactly the same way as a reusable block.'
+ ) }
+
+
+ );
+}
diff --git a/packages/block-editor/src/components/inserter/reusable-blocks-tab.js b/packages/block-editor/src/components/inserter/reusable-blocks-tab.js
index c16d5f1a78e543..08cd8d57ba0d0e 100644
--- a/packages/block-editor/src/components/inserter/reusable-blocks-tab.js
+++ b/packages/block-editor/src/components/inserter/reusable-blocks-tab.js
@@ -13,6 +13,7 @@ import BlockTypesList from '../block-types-list';
import InserterPanel from './panel';
import InserterNoResults from './no-results';
import useBlockTypesState from './hooks/use-block-types-state';
+import ReusableBlocksRenameHint from './reusable-block-rename-hint';
function ReusableBlocksList( { onHover, onInsert, rootClientId } ) {
const [ items, , , onSelectItem ] = useBlockTypesState(
@@ -54,6 +55,9 @@ function ReusableBlocksList( { onHover, onInsert, rootClientId } ) {
export function ReusableBlocksTab( { rootClientId, onInsert, onHover } ) {
return (
<>
+
+
+
{
await page.keyboard.type( content );
await clickBlockToolbarButton( 'Options' );
- await clickMenuItem( 'Create pattern' );
+ await clickMenuItem( 'Create pattern/reusable block' );
const nameInput = await page.waitForSelector(
reusableBlockNameInputSelector
);
diff --git a/packages/e2e-tests/specs/editor/various/block-editor-keyboard-shortcuts.test.js b/packages/e2e-tests/specs/editor/various/block-editor-keyboard-shortcuts.test.js
index 24e8e3104aaaa2..3be73830a42991 100644
--- a/packages/e2e-tests/specs/editor/various/block-editor-keyboard-shortcuts.test.js
+++ b/packages/e2e-tests/specs/editor/various/block-editor-keyboard-shortcuts.test.js
@@ -90,7 +90,7 @@ describe( 'block editor keyboard shortcuts', () => {
} );
it( 'should prevent deleting multiple selected blocks from inputs', async () => {
await clickBlockToolbarButton( 'Options' );
- await clickMenuItem( 'Create pattern' );
+ await clickMenuItem( 'Create pattern/reusable block' );
const reusableBlockNameInputSelector =
'.reusable-blocks-menu-items__convert-modal .components-text-control__input';
const nameInput = await page.waitForSelector(
diff --git a/packages/e2e-tests/specs/editor/various/reusable-blocks.test.js b/packages/e2e-tests/specs/editor/various/reusable-blocks.test.js
index 10f9e9f24581ee..0a18c75528930c 100644
--- a/packages/e2e-tests/specs/editor/various/reusable-blocks.test.js
+++ b/packages/e2e-tests/specs/editor/various/reusable-blocks.test.js
@@ -197,7 +197,7 @@ describe( 'Reusable blocks', () => {
// Convert block to a reusable block.
await clickBlockToolbarButton( 'Options' );
- await clickMenuItem( 'Create pattern' );
+ await clickMenuItem( 'Create pattern/reusable block' );
// Set title.
const nameInput = await page.waitForSelector(
@@ -383,7 +383,7 @@ describe( 'Reusable blocks', () => {
// Convert to reusable.
await clickBlockToolbarButton( 'Options' );
- await clickMenuItem( 'Create pattern' );
+ await clickMenuItem( 'Create pattern/reusable block' );
const nameInput = await page.waitForSelector(
reusableBlockNameInputSelector
);
diff --git a/packages/edit-site/src/components/page-patterns/patterns-list.js b/packages/edit-site/src/components/page-patterns/patterns-list.js
index 8430b61a0772d3..545ffdb044275f 100644
--- a/packages/edit-site/src/components/page-patterns/patterns-list.js
+++ b/packages/edit-site/src/components/page-patterns/patterns-list.js
@@ -86,7 +86,7 @@ export default function PatternsList( { categoryId, type } ) {
>
diff --git a/packages/reusable-blocks/src/components/reusable-blocks-menu-items/reusable-block-convert-button.js b/packages/reusable-blocks/src/components/reusable-blocks-menu-items/reusable-block-convert-button.js
index 35769238fd506e..981776880a1374 100644
--- a/packages/reusable-blocks/src/components/reusable-blocks-menu-items/reusable-block-convert-button.js
+++ b/packages/reusable-blocks/src/components/reusable-blocks-menu-items/reusable-block-convert-button.js
@@ -5,6 +5,7 @@ import { hasBlockSupport, isReusableBlock } from '@wordpress/blocks';
import {
BlockSettingsMenuControls,
store as blockEditorStore,
+ ReusableBlocksRenameHint,
} from '@wordpress/block-editor';
import { useCallback, useState } from '@wordpress/element';
import {
@@ -140,7 +141,7 @@ export default function ReusableBlockConvertButton( {
icon={ symbol }
onClick={ () => setIsModalOpen( true ) }
>
- { __( 'Create pattern' ) }
+ { __( 'Create pattern/reusable block' ) }
{ isModalOpen && (
+
{