diff --git a/packages/block-editor/src/components/inserter/library.js b/packages/block-editor/src/components/inserter/library.js
index 6be31f49b5fbe1..4e10a051996a9f 100644
--- a/packages/block-editor/src/components/inserter/library.js
+++ b/packages/block-editor/src/components/inserter/library.js
@@ -7,7 +7,7 @@ import { forwardRef } from '@wordpress/element';
/**
* Internal dependencies
*/
-import InserterMenu from './menu';
+import { PrivateInserterMenu } from './menu';
import { store as blockEditorStore } from '../../store';
const noop = () => {};
@@ -23,7 +23,7 @@ function InserterLibrary(
__experimentalInitialTab,
__experimentalInitialCategory,
__experimentalFilterValue,
- __experimentalOnPatternCategorySelection,
+ onPatternCategorySelection,
onSelect = noop,
shouldFocusBlock = false,
onClose,
@@ -43,7 +43,7 @@ function InserterLibrary(
);
return (
-
+ );
+}
+
+export default forwardRef( PublicInserterLibrary );
diff --git a/packages/block-editor/src/components/inserter/menu.js b/packages/block-editor/src/components/inserter/menu.js
index bda1584c22149f..3abaee330ed22b 100644
--- a/packages/block-editor/src/components/inserter/menu.js
+++ b/packages/block-editor/src/components/inserter/menu.js
@@ -45,7 +45,7 @@ function InserterMenu(
showMostUsedBlocks,
__experimentalFilterValue = '',
shouldFocusBlock = true,
- __experimentalOnPatternCategorySelection = NOOP,
+ onPatternCategorySelection,
onClose,
__experimentalInitialTab,
__experimentalInitialCategory,
@@ -128,9 +128,9 @@ function InserterMenu(
( patternCategory, filter ) => {
setSelectedPatternCategory( patternCategory );
setPatternFilter( filter );
- __experimentalOnPatternCategorySelection();
+ onPatternCategorySelection?.();
},
- [ setSelectedPatternCategory, __experimentalOnPatternCategorySelection ]
+ [ setSelectedPatternCategory, onPatternCategorySelection ]
);
const showPatternPanel =
@@ -341,4 +341,16 @@ function InserterMenu(
);
}
-export default forwardRef( InserterMenu );
+export const PrivateInserterMenu = forwardRef( InserterMenu );
+
+function PublicInserterMenu( props, ref ) {
+ return (
+
+ );
+}
+
+export default forwardRef( PublicInserterMenu );
diff --git a/packages/block-editor/src/private-apis.js b/packages/block-editor/src/private-apis.js
index a064d7a389ecf8..d55139c8bcdc54 100644
--- a/packages/block-editor/src/private-apis.js
+++ b/packages/block-editor/src/private-apis.js
@@ -40,6 +40,7 @@ import {
import { requiresWrapperOnCopy } from './components/writing-flow/utils';
import { PrivateRichText } from './components/rich-text/';
import { PrivateBlockPopover } from './components/block-popover';
+import { PrivateInserterLibrary } from './components/inserter/library';
/**
* Private @wordpress/block-editor APIs.
@@ -78,6 +79,7 @@ lock( privateApis, {
selectBlockPatternsKey,
requiresWrapperOnCopy,
PrivateRichText,
+ PrivateInserterLibrary,
reusableBlocksSelectKey,
PrivateBlockPopover,
} );
diff --git a/packages/editor/src/components/inserter-sidebar/index.js b/packages/editor/src/components/inserter-sidebar/index.js
index 25927c57650f41..93e0f34c7d7049 100644
--- a/packages/editor/src/components/inserter-sidebar/index.js
+++ b/packages/editor/src/components/inserter-sidebar/index.js
@@ -3,8 +3,8 @@
*/
import { useDispatch, useSelect } from '@wordpress/data';
import {
- __experimentalLibrary as Library,
store as blockEditorStore,
+ privateApis as blockEditorPrivateApis,
} from '@wordpress/block-editor';
import {
useViewportMatch,
@@ -20,6 +20,8 @@ import { ESCAPE } from '@wordpress/keycodes';
import { unlock } from '../../lock-unlock';
import { store as editorStore } from '../../store';
+const { PrivateInserterLibrary } = unlock( blockEditorPrivateApis );
+
export default function InserterSidebar( {
closeGeneralSidebar,
isRightSidebarOpen,
@@ -79,7 +81,7 @@ export default function InserterSidebar( {
const inserterContents = (
-