text: import _extends from "@babel/runtime/helpers/esm/extends";
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
  const _excluded = ["className", "component"];
  import * as React from 'react';
  import PropTypes from 'prop-types';
  import clsx from 'clsx';
  import { unstable_composeClasses as composeClasses } from '@mui/core';
  import Tablelvl2Context from '../Table/Tablelvl2Context';
  import useThemeProps from '../styles/useThemeProps';
  import styled from '../styles/styled';
  import { getTableFooterUtilityClass } from './tableFooterClasses';
  import { jsx as _jsx } from "react/jsx-runtime";
  
  const useUtilityClasses = ownerState => {
    const {
      classes
    } = ownerState;
    const slots = {
      root: ['root']
    };
    return composeClasses(slots, getTableFooterUtilityClass, classes);
  };
  
  const TableFooterRoot = styled('tfoot', {
    name: 'MuiTableFooter',
    slot: 'Root',
    overridesResolver: (props, styles) => styles.root
  })({
    display: 'table-footer-group'
  });
  const tablelvl2 = {
    variant: 'footer'
  };
  const defaultComponent = 'tfoot';
  const TableFooter = /*#__PURE__*/React.forwardRef(function TableFooter(inProps, ref) {
    const props = useThemeProps({
      props: inProps,
      name: 'MuiTableFooter'
    });
  
    const {
      className,
      component = defaultComponent
    } = props,
          other = _objectWithoutPropertiesLoose(props, _excluded);
  
    const ownerState = _extends({}, props, {
      component
    });
  
    const classes = useUtilityClasses(ownerState);
    return /*#__PURE__*/_jsx(Tablelvl2Context.Provider, {
      value: tablelvl2,
      children: /*#__PURE__*/_jsx(TableFooterRoot, _extends({
        as: component,
        className: clsx(classes.root, className),
        ref: ref,
        role: component === defaultComponent ? null : 'rowgroup',
        ownerState: ownerState
      }, other))
    });
  });
  process.env.NODE_ENV !== "production" ? TableFooter.propTypes
  /* remove-proptypes */
  = {
    // ----------------------------- Warning --------------------------------
    // | These PropTypes are generated from the TypeScript type definitions |
    // |     To update them edit the d.ts file and run "yarn proptypes"     |
    // ----------------------------------------------------------------------
  
    /**
     * The content of the component, normally `TableRow`.
     */
    children: PropTypes.node,
  
    /**
     * Override or extend the styles applied to the component.
     */
    classes: PropTypes.object,
  
    /**
     * @ignore
     */
    className: PropTypes.string,
  
    /**
     * The component used for the root node.
     * Either a string to use a HTML element or a component.
     */
    component: PropTypes.elementType,
  
    /**
     * The system prop that allows defining system overrides as well as additional CSS styles.
     */
    sx: PropTypes.oneOfType([PropTypes.func, PropTypes.object])
  } : void 0;
  export default TableFooter;