"use strict"; 'use client'; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = useButtonBase; var React = _interopRequireWildcard(require("react")); var _useFocusableWhenDisabled = _interopRequireDefault(require("../utils/useFocusableWhenDisabled")); const EMPTY = {}; function useButtonBase(parameters) { const { nativeButton, nativeButtonProp, internalNativeButton = nativeButton, allowInferredHostMismatch = false, disabled, type, hasFormAction = false, tabIndex = 0, focusableWhenDisabled: focusableWhenDisabledParam, stopEventPropagation = false, onBeforeKeyDown, onBeforeKeyUp } = parameters; const rootRef = React.useRef(null); const focusableWhenDisabled = focusableWhenDisabledParam === true; const focusableWhenDisabledProps = (0, _useFocusableWhenDisabled.default)({ focusableWhenDisabled, disabled, isNativeButton: nativeButton, tabIndex }); if (process.env.NODE_ENV !== 'production') { // eslint-disable-next-line react-hooks/rules-of-hooks React.useEffect(() => { const root = rootRef.current; if (root == null) { return; } const isButtonTag = root.tagName === 'BUTTON'; if (nativeButtonProp !== undefined) { if (nativeButtonProp && !isButtonTag) { const message = 'MUI: A component that acts as a button expected a native