diff --git a/docs/data/api/menu-trigger.json b/docs/data/api/menu-trigger.json index 5605811cd..05e73a2a8 100644 --- a/docs/data/api/menu-trigger.json +++ b/docs/data/api/menu-trigger.json @@ -2,6 +2,7 @@ "props": { "className": { "type": { "name": "union", "description": "func
| string" } }, "disabled": { "type": { "name": "bool" }, "default": "false" }, + "focusableWhenDisabled": { "type": { "name": "bool" }, "default": "false" }, "label": { "type": { "name": "string" } }, "render": { "type": { "name": "union", "description": "element
| func" } } }, diff --git a/docs/data/translations/api-docs/menu-trigger/menu-trigger.json b/docs/data/translations/api-docs/menu-trigger/menu-trigger.json index 226048246..814aa3e49 100644 --- a/docs/data/translations/api-docs/menu-trigger/menu-trigger.json +++ b/docs/data/translations/api-docs/menu-trigger/menu-trigger.json @@ -5,6 +5,9 @@ "description": "Class names applied to the element or a function that returns them based on the component's state." }, "disabled": { "description": "If true, the component is disabled." }, + "focusableWhenDisabled": { + "description": "If true, allows a disabled button to receive focus." + }, "label": { "description": "Label of the button" }, "render": { "description": "A function to customize rendering of the component." } }, diff --git a/packages/mui-base/src/Checkbox/Root/CheckboxRoot.tsx b/packages/mui-base/src/Checkbox/Root/CheckboxRoot.tsx index 15bbbfc0f..4e3dcf87b 100644 --- a/packages/mui-base/src/Checkbox/Root/CheckboxRoot.tsx +++ b/packages/mui-base/src/Checkbox/Root/CheckboxRoot.tsx @@ -98,7 +98,6 @@ const CheckboxRoot = React.forwardRef(function CheckboxRoot( extraProps: { ...otherProps, ...otherGroupProps, - disabled }, }); diff --git a/packages/mui-base/src/Menu/Trigger/MenuTrigger.tsx b/packages/mui-base/src/Menu/Trigger/MenuTrigger.tsx index b33b2edad..4e977f9f8 100644 --- a/packages/mui-base/src/Menu/Trigger/MenuTrigger.tsx +++ b/packages/mui-base/src/Menu/Trigger/MenuTrigger.tsx @@ -69,6 +69,11 @@ namespace MenuTrigger { * @default false */ disabled?: boolean; + /** + * If `true`, allows a disabled button to receive focus. + * @default false + */ + focusableWhenDisabled?: boolean; /** * Label of the button */ @@ -98,6 +103,11 @@ MenuTrigger.propTypes /* remove-proptypes */ = { * @default false */ disabled: PropTypes.bool, + /** + * If `true`, allows a disabled button to receive focus. + * @default false + */ + focusableWhenDisabled: PropTypes.bool, /** * Label of the button */ diff --git a/packages/mui-base/src/Menu/Trigger/useMenuTrigger.ts b/packages/mui-base/src/Menu/Trigger/useMenuTrigger.ts index e1da262aa..4a69d607f 100644 --- a/packages/mui-base/src/Menu/Trigger/useMenuTrigger.ts +++ b/packages/mui-base/src/Menu/Trigger/useMenuTrigger.ts @@ -23,6 +23,7 @@ export function useMenuTrigger(parameters: useMenuTrigger.Parameters): useMenuTr const { getButtonProps, buttonRef } = useButton({ disabled, + focusableWhenDisabled: false, buttonRef: mergedRef, }); diff --git a/packages/mui-base/src/Switch/Root/SwitchRoot.tsx b/packages/mui-base/src/Switch/Root/SwitchRoot.tsx index 3e15e7d1f..40831d0b5 100644 --- a/packages/mui-base/src/Switch/Root/SwitchRoot.tsx +++ b/packages/mui-base/src/Switch/Root/SwitchRoot.tsx @@ -59,7 +59,7 @@ const SwitchRoot = React.forwardRef(function SwitchRoot( className, propGetter: getButtonProps, ownerState, - extraProps: {...other, disabled}, + extraProps: other, customStyleHookMapping: styleHookMapping, ref: forwardedRef, });