diff --git a/packages/components/src/index.js b/packages/components/src/index.js
index cb12eeb436699..78a3891a6d569 100644
--- a/packages/components/src/index.js
+++ b/packages/components/src/index.js
@@ -73,6 +73,7 @@ export { default as ToggleControl } from './toggle-control';
export { default as Toolbar } from './toolbar';
export { default as ToolbarButton } from './toolbar-button';
export { default as ToolbarGroup } from './toolbar-group';
+export { default as __experimentalToolbarItem } from './toolbar-item';
export { default as Tooltip } from './tooltip';
export { default as TreeSelect } from './tree-select';
export { default as VisuallyHidden } from './visually-hidden';
diff --git a/packages/components/src/index.native.js b/packages/components/src/index.native.js
index 7663cf7f8a74e..087a7acd65831 100644
--- a/packages/components/src/index.native.js
+++ b/packages/components/src/index.native.js
@@ -7,6 +7,7 @@ export { default as Dropdown } from './dropdown';
export { default as Toolbar } from './toolbar';
export { default as ToolbarButton } from './toolbar-button';
export { default as ToolbarGroup } from './toolbar-group';
+export { default as __experimentalToolbarItem } from './toolbar-item';
export { default as Icon } from './icon';
export { default as IconButton } from './button/deprecated';
export { default as Spinner } from './spinner';
diff --git a/packages/components/src/toolbar-button/accessible-toolbar-button-container.js b/packages/components/src/toolbar-button/accessible-toolbar-button-container.js
deleted file mode 100644
index 5d026c4b83e8c..0000000000000
--- a/packages/components/src/toolbar-button/accessible-toolbar-button-container.js
+++ /dev/null
@@ -1,26 +0,0 @@
-/**
- * External dependencies
- */
-import { useToolbarItem } from 'reakit/Toolbar';
-
-/**
- * WordPress dependencies
- */
-import { Children, cloneElement, useContext } from '@wordpress/element';
-
-/**
- * Internal dependencies
- */
-import ToolbarContext from '../toolbar-context';
-
-function AccessibleToolbarButtonContainer( props ) {
- const accessibleToolbarState = useContext( ToolbarContext );
- const childButton = Children.only( props.children );
-
- // https://reakit.io/docs/composition/#props-hooks
- const itemHTMLProps = useToolbarItem( accessibleToolbarState, childButton.props );
-
- return
{ cloneElement( childButton, itemHTMLProps ) }
;
-}
-
-export default AccessibleToolbarButtonContainer;
diff --git a/packages/components/src/toolbar-button/accessible-toolbar-button-container.native.js b/packages/components/src/toolbar-button/accessible-toolbar-button-container.native.js
deleted file mode 100644
index 7fe5e6657bcd1..0000000000000
--- a/packages/components/src/toolbar-button/accessible-toolbar-button-container.native.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/**
- * Internal dependencies
- */
-import ToolbarButtonContainer from './toolbar-button-container';
-
-export default ToolbarButtonContainer;
diff --git a/packages/components/src/toolbar-button/index.js b/packages/components/src/toolbar-button/index.js
index 665e7bc49fd6c..5ffa9ad2f3953 100644
--- a/packages/components/src/toolbar-button/index.js
+++ b/packages/components/src/toolbar-button/index.js
@@ -12,63 +12,55 @@ import { useContext } from '@wordpress/element';
* Internal dependencies
*/
import Button from '../button';
+import ToolbarItem from '../toolbar-item';
import ToolbarContext from '../toolbar-context';
-import AccessibleToolbarButtonContainer from './accessible-toolbar-button-container';
import ToolbarButtonContainer from './toolbar-button-container';
function ToolbarButton( {
containerClassName,
- icon,
- title,
- shortcut,
- subscript,
- onClick,
className,
- isActive,
- isDisabled,
extraProps,
children,
+ ...props
} ) {
- // It'll contain state if `ToolbarButton` is being used within
- // ``
const accessibleToolbarState = useContext( ToolbarContext );
- const button = (
-