import _extends from "@babel/runtime/helpers/esm/extends";
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
var _excluded = ["children", "theme", "mobileAppearance"];
import React, { useContext } from 'react';
import { Modal } from "../../Modal";
import { ThemeContext } from "../../../lib/theming/ThemeContext";
import { forwardRefAndName } from "../../../lib/forwardRefAndName";
import { getMiniModalTheme } from "../getMiniModalTheme";
import { MiniModalFooter } from "../MiniModalFooter";
import { MiniModalHeader } from "../MiniModalHeader";
import { MiniModalBody } from "../MiniModalBody";
import { MiniModalIndent } from "../MiniModalIndent";
export var MiniModalDataTids = {
  icon: 'MiniModal__icon',
  title: 'MiniModal__title',
  description: 'MiniModal__description',
  actions: 'MiniModal__actions',
  indent: 'MiniModal__indent'
};

/**
 * `MiniModal` — модальное диалоговое окно, которое предполагает обязательный отклик пользователя по одному из доступных действий. Обёртка над Modal.
 * Закрытие окна по клику на фон или "крестик" не рекомендуется, т.к. у этих действий нет однозначного описания в отличие от кнопок с названиями, наподобие "Сохранить", "Подтвердить" и т.п.
 *
 * По макету предполагается, что все кнопки должны быть среднего размера `size = medium`.
 */
export var MiniModal = forwardRefAndName('MiniModal', function (_ref, ref) {
  var children = _ref.children,
    propsTheme = _ref.theme,
    mobileAppearance = _ref.mobileAppearance,
    rest = _objectWithoutPropertiesLoose(_ref, _excluded);
  var contextTheme = useContext(ThemeContext);
  return /*#__PURE__*/(
    React.createElement(ThemeContext.Provider, {
      value: getMiniModalTheme(contextTheme, propsTheme)
    }, /*#__PURE__*/
    React.createElement(Modal, _extends({
      width: 400,
      mobileAppearance: mobileAppearance != null ? mobileAppearance : 'center',
      noClose: true,
      ref: ref
    }, rest), children))
  );
});
MiniModal.Header = MiniModalHeader;
MiniModal.Footer = MiniModalFooter;
MiniModal.Indent = MiniModalIndent;
MiniModal.Body = MiniModalBody;