diff --git a/docs/designers-developers/developers/data/data-core-block-editor.md b/docs/designers-developers/developers/data/data-core-block-editor.md
index 3ab9d0bd1cd3ec..ded41c1a63dfc6 100644
--- a/docs/designers-developers/developers/data/data-core-block-editor.md
+++ b/docs/designers-developers/developers/data/data-core-block-editor.md
@@ -344,6 +344,40 @@ _Returns_
- `?string`: Client ID of block selection start.
+# **getBlockTransformItems**
+
+Determines the items that appear in the available block transforms list.
+
+Each item object contains what's necessary to display a menu item in the
+transform list and handle its selection.
+
+The 'frecency' property is a heuristic ()
+that combines block usage frequenty and recency.
+
+Items are returned ordered descendingly by their 'frecency'.
+
+_Parameters_
+
+- _state_ `Object`: Editor state.
+- _rootClientId_ `?string`: Optional root client ID of block list.
+
+_Returns_
+
+- `Array`: Items that appear in inserter.
+
+_Type Definition_
+
+- _WPEditorTransformItem_ `Object`
+
+_Properties_
+
+- _id_ `string`: Unique identifier for the item.
+- _name_ `string`: The type of block to create.
+- _title_ `string`: Title of the item, as it appears in the inserter.
+- _icon_ `string`: Dashicon for the item, as it appears in the inserter.
+- _isDisabled_ `boolean`: Whether or not the user should be prevented from inserting this item.
+- _frecency_ `number`: Heuristic that combines frequency and recency.
+
# **getClientIdsOfDescendants**
Returns an array containing the clientIds of all descendants
diff --git a/packages/block-editor/src/components/block-switcher/block-styles-menu.js b/packages/block-editor/src/components/block-switcher/block-styles-menu.js
new file mode 100644
index 00000000000000..e600f062423df0
--- /dev/null
+++ b/packages/block-editor/src/components/block-switcher/block-styles-menu.js
@@ -0,0 +1,35 @@
+/**
+ * WordPress dependencies
+ */
+import { __ } from '@wordpress/i18n';
+import { MenuGroup } from '@wordpress/components';
+import { useState } from '@wordpress/element';
+
+/**
+ * Internal dependencies
+ */
+import BlockStyles from '../block-styles';
+import PreviewBlockPopover from './preview-block-popover';
+
+export default function BlockStylesMenu( { hoveredBlock, onSwitch } ) {
+ const [ hoveredClassName, setHoveredClassName ] = useState();
+ return (
+
+ { hoveredClassName && (
+
+ ) }
+
+
+ );
+}
diff --git a/packages/block-editor/src/components/block-switcher/block-transformations-menu.js b/packages/block-editor/src/components/block-switcher/block-transformations-menu.js
index fb70c053dac781..e8e4566112b4a0 100644
--- a/packages/block-editor/src/components/block-switcher/block-transformations-menu.js
+++ b/packages/block-editor/src/components/block-switcher/block-transformations-menu.js
@@ -18,7 +18,7 @@ const BlockTransformationsMenu = ( {
return (
{ possibleBlockTransformations.map( ( item ) => {
- const { name, icon, title } = item;
+ const { name, icon, title, isDisabled } = item;
return (