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 & {