diff --git a/packages/mui-base/src/TabsListUnstyled/TabsListUnstyled.spec.tsx b/packages/mui-base/src/TabsListUnstyled/TabsListUnstyled.spec.tsx new file mode 100644 index 00000000000000..3c4203efa90693 --- /dev/null +++ b/packages/mui-base/src/TabsListUnstyled/TabsListUnstyled.spec.tsx @@ -0,0 +1,9 @@ +import * as React from 'react'; +import TabsListUnstyled, { TabsListUnstyledRootSlotProps } from '@mui/base/TabsListUnstyled'; + +function Root(props: TabsListUnstyledRootSlotProps) { + const { ownerState, ...other } = props; + return
; +} + +const styledTabsList = ; diff --git a/packages/mui-base/src/TabsListUnstyled/TabsListUnstyled.tsx b/packages/mui-base/src/TabsListUnstyled/TabsListUnstyled.tsx index 258af707e03e9e..348ca8bd6a78a1 100644 --- a/packages/mui-base/src/TabsListUnstyled/TabsListUnstyled.tsx +++ b/packages/mui-base/src/TabsListUnstyled/TabsListUnstyled.tsx @@ -3,9 +3,13 @@ import PropTypes from 'prop-types'; import clsx from 'clsx'; import { OverridableComponent } from '@mui/types'; import composeClasses from '../composeClasses'; -import { appendOwnerState } from '../utils'; +import { appendOwnerState, WithOptionalOwnerState } from '../utils'; import { getTabsListUnstyledUtilityClass } from './tabsListUnstyledClasses'; -import TabsListUnstyledProps, { TabsListUnstyledTypeMap } from './TabsListUnstyledProps'; +import { + TabsListUnstyledProps, + TabsListUnstyledRootSlotProps, + TabsListUnstyledTypeMap, +} from './TabsListUnstyled.types'; import useTabsList from './useTabsList'; const useUtilityClasses = (ownerState: { orientation: 'horizontal' | 'vertical' }) => { @@ -42,23 +46,20 @@ const TabsListUnstyled = React.forwardRef((props const classes = useUtilityClasses(ownerState); const TabsListRoot: React.ElementType = component ?? components.Root ?? 'div'; - const tabsListRootProps = appendOwnerState( + const tabsListRootProps: WithOptionalOwnerState = appendOwnerState( TabsListRoot, - { ...other, ...componentsProps.root }, + { + ...getRootProps(), + ...other, + ...componentsProps.root, + className: clsx(className, componentsProps.root?.className, classes.root), + }, ownerState, ); const processedChildren = processChildren(); - return ( - - {processedChildren} - - ); + return {processedChildren}; }) as OverridableComponent; TabsListUnstyled.propTypes /* remove-proptypes */ = { diff --git a/packages/mui-base/src/TabsListUnstyled/TabsListUnstyledProps.ts b/packages/mui-base/src/TabsListUnstyled/TabsListUnstyled.types.ts similarity index 76% rename from packages/mui-base/src/TabsListUnstyled/TabsListUnstyledProps.ts rename to packages/mui-base/src/TabsListUnstyled/TabsListUnstyled.types.ts index ff3d9b3593ef49..5297240debc2a1 100644 --- a/packages/mui-base/src/TabsListUnstyled/TabsListUnstyledProps.ts +++ b/packages/mui-base/src/TabsListUnstyled/TabsListUnstyled.types.ts @@ -1,5 +1,6 @@ import React from 'react'; import { OverrideProps } from '@mui/types'; +import { UseTabsListRootSlotProps } from './useTabsList.types'; interface TabsListUnstyledComponentsPropsOverrides {} @@ -31,7 +32,7 @@ export interface TabsListUnstyledTypeMap

= OverrideProps, D> & { @@ -43,4 +44,12 @@ type TabsListUnstyledProps< component?: D; }; -export default TabsListUnstyledProps; +export type TabsListUnstyledOwnerState = TabsListUnstyledProps & { + isRtl: boolean; + orientation: 'horizontal' | 'vertical'; +}; + +export type TabsListUnstyledRootSlotProps = UseTabsListRootSlotProps & { + className?: string; + ownerState: TabsListUnstyledOwnerState; +}; diff --git a/packages/mui-base/src/TabsListUnstyled/index.ts b/packages/mui-base/src/TabsListUnstyled/index.ts index 0434d6079544fe..9f71aea7ef255d 100644 --- a/packages/mui-base/src/TabsListUnstyled/index.ts +++ b/packages/mui-base/src/TabsListUnstyled/index.ts @@ -1,5 +1,5 @@ export { default } from './TabsListUnstyled'; -export type { default as TabsListUnstyledProps } from './TabsListUnstyledProps'; +export * from './TabsListUnstyled.types'; export { default as tabsListUnstyledClasses } from './tabsListUnstyledClasses'; export * from './tabsListUnstyledClasses'; diff --git a/packages/mui-base/src/TabsListUnstyled/useTabsList.types.ts b/packages/mui-base/src/TabsListUnstyled/useTabsList.types.ts index 95377d4878706f..b4baa870e17b1c 100644 --- a/packages/mui-base/src/TabsListUnstyled/useTabsList.types.ts +++ b/packages/mui-base/src/TabsListUnstyled/useTabsList.types.ts @@ -15,6 +15,6 @@ export type UseTabsListRootSlotProps = TOther & { 'aria-labelledby'?: React.AriaAttributes['aria-labelledby']; 'aria-orientation'?: React.AriaAttributes['aria-orientation']; role: React.AriaRole; - ref: React.Ref; + ref: React.Ref; onKeyDown?: React.KeyboardEventHandler; };