diff --git a/docs/pages/base/api/tabs-list.json b/docs/pages/base/api/tabs-list.json
index e888c35fb22d1b..44664ef547e1de 100644
--- a/docs/pages/base/api/tabs-list.json
+++ b/docs/pages/base/api/tabs-list.json
@@ -1,7 +1,6 @@
{
"props": {
"children": { "type": { "name": "node" } },
- "component": { "type": { "name": "elementType" } },
"slotProps": {
"type": { "name": "shape", "description": "{ root?: func
| object }" },
"default": "{}"
diff --git a/docs/translations/api-docs-base/tabs-list/tabs-list.json b/docs/translations/api-docs-base/tabs-list/tabs-list.json
index 0067df3d304aa5..9d459303149ef5 100644
--- a/docs/translations/api-docs-base/tabs-list/tabs-list.json
+++ b/docs/translations/api-docs-base/tabs-list/tabs-list.json
@@ -2,7 +2,6 @@
"componentDescription": "",
"propDescriptions": {
"children": "The content of the component.",
- "component": "The component used for the root node. Either a string to use a HTML element or a component.",
"slotProps": "The props used for each slot inside the TabsList.",
"slots": "The components used for each slot inside the TabsList. Either a string to use a HTML element or a component. See Slots API below for more details."
},
diff --git a/packages/mui-base/src/TabsList/TabsList.spec.tsx b/packages/mui-base/src/TabsList/TabsList.spec.tsx
index fed31f225b8814..665323c1571114 100644
--- a/packages/mui-base/src/TabsList/TabsList.spec.tsx
+++ b/packages/mui-base/src/TabsList/TabsList.spec.tsx
@@ -20,19 +20,23 @@ const polymorphicComponentTest = () => {
{/* @ts-expect-error */}
-
+ slots={{ root: 'a' }} href="#" />
-
+
+ slots={{ root: CustomComponent }}
+ stringProp="test"
+ numberProp={0}
+ />
{/* @ts-expect-error */}
-
+ slots={{ root: CustomComponent }} />
-
+ slots={{ root: 'button' }}
onClick={(e: React.MouseEvent) => e.currentTarget.checkValidity()}
/>
- component="button"
+ slots={{ root: 'button' }}
ref={(elem) => {
expectType(elem);
}}
diff --git a/packages/mui-base/src/TabsList/TabsList.test.tsx b/packages/mui-base/src/TabsList/TabsList.test.tsx
index d004e1b04601a3..858ac44140b579 100644
--- a/packages/mui-base/src/TabsList/TabsList.test.tsx
+++ b/packages/mui-base/src/TabsList/TabsList.test.tsx
@@ -52,6 +52,7 @@ describe('', () => {
},
skip: [
'reactTestRenderer', // Need to be wrapped with TabsContext
+ 'componentProp',
],
}));
});
diff --git a/packages/mui-base/src/TabsList/TabsList.tsx b/packages/mui-base/src/TabsList/TabsList.tsx
index b49e0b7eb63d41..2fc5a8fed7f8b9 100644
--- a/packages/mui-base/src/TabsList/TabsList.tsx
+++ b/packages/mui-base/src/TabsList/TabsList.tsx
@@ -1,8 +1,7 @@
import * as React from 'react';
import PropTypes from 'prop-types';
-import { OverridableComponent } from '@mui/types';
import composeClasses from '../composeClasses';
-import { useSlotProps, WithOptionalOwnerState } from '../utils';
+import { PolymorphicComponent, useSlotProps, WithOptionalOwnerState } from '../utils';
import { getTabsListUtilityClass } from './tabsListClasses';
import {
TabsListOwnerState,
@@ -38,7 +37,7 @@ const TabsList = React.forwardRef(function TabsList,
forwardedRef: React.ForwardedRef,
) {
- const { children, component, slotProps = {}, slots = {}, ...other } = props;
+ const { children, slotProps = {}, slots = {}, ...other } = props;
const { isRtl, orientation, getRootProps, contextValue } = useTabsList({
rootRef: forwardedRef,
@@ -52,7 +51,7 @@ const TabsList = React.forwardRef(function TabsList = useSlotProps({
elementType: TabsListRoot,
getSlotProps: getRootProps,
@@ -67,7 +66,7 @@ const TabsList = React.forwardRef(function TabsList{children}
);
-}) as OverridableComponent;
+}) as PolymorphicComponent;
TabsList.propTypes /* remove-proptypes */ = {
// ----------------------------- Warning --------------------------------
@@ -78,11 +77,6 @@ TabsList.propTypes /* remove-proptypes */ = {
* The content of the component.
*/
children: PropTypes.node,
- /**
- * The component used for the root node.
- * Either a string to use a HTML element or a component.
- */
- component: PropTypes.elementType,
/**
* The props used for each slot inside the TabsList.
* @default {}
diff --git a/packages/mui-base/src/TabsList/TabsList.types.ts b/packages/mui-base/src/TabsList/TabsList.types.ts
index 8b1e4a4475b67b..f96d9695ee312e 100644
--- a/packages/mui-base/src/TabsList/TabsList.types.ts
+++ b/packages/mui-base/src/TabsList/TabsList.types.ts
@@ -1,7 +1,7 @@
import * as React from 'react';
-import { OverrideProps, Simplify } from '@mui/types';
+import { Simplify } from '@mui/types';
import { UseTabsListRootSlotProps } from '../useTabsList';
-import { SlotComponentProps } from '../utils';
+import { PolymorphicProps, SlotComponentProps } from '../utils';
export interface TabsListRootSlotPropsOverrides {}
@@ -44,9 +44,7 @@ export interface TabsListTypeMap<
export type TabsListProps<
RootComponentType extends React.ElementType = TabsListTypeMap['defaultComponent'],
-> = OverrideProps, RootComponentType> & {
- component?: RootComponentType;
-};
+> = PolymorphicProps, RootComponentType>;
export type TabsListOwnerState = Simplify<
TabsListOwnProps & {