@invoicebox/ui 0.1.0-alpha.326 → 0.1.0-alpha.327
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/common/AdaptiveModalDrawer/index.d.ts +11 -0
- package/dist/components/common/AdaptiveModalDrawer/index.js +31 -0
- package/dist/components/common/AdaptiveModalDrawer/index.stories.d.ts +5 -0
- package/dist/components/common/AdaptiveModalDrawer/index.stories.js +44 -0
- package/dist/components/common/Modal/assets/CollapseIcon.d.ts +1 -0
- package/dist/components/common/Modal/assets/CollapseIcon.js +42 -0
- package/dist/components/common/Modal/assets/ExpandIcon.d.ts +1 -0
- package/dist/components/common/Modal/assets/ExpandIcon.js +42 -0
- package/dist/components/common/Modal/context.d.ts +9 -0
- package/dist/components/common/Modal/context.js +14 -0
- package/dist/components/common/Modal/index.d.ts +15 -0
- package/dist/components/common/Modal/index.js +165 -0
- package/dist/components/common/Modal/index.stories.d.ts +6 -0
- package/dist/components/common/Modal/index.stories.js +76 -0
- package/dist/components/common/Modal/palette.d.ts +9 -0
- package/dist/components/common/Modal/palette.js +23 -0
- package/dist/components/common/Modal/styles.d.ts +25 -0
- package/dist/components/common/Modal/styles.js +69 -0
- package/dist/components/common/WentWrongModal/assets/icons.d.ts +3 -0
- package/dist/components/common/WentWrongModal/assets/icons.js +84 -0
- package/dist/components/common/WentWrongModal/assets/racoonImage.d.ts +1 -0
- package/dist/components/common/WentWrongModal/assets/racoonImage.js +9 -0
- package/dist/components/common/WentWrongModal/index.d.ts +23 -0
- package/dist/components/common/WentWrongModal/index.js +193 -0
- package/dist/components/common/WentWrongModal/index.stories.d.ts +6 -0
- package/dist/components/common/WentWrongModal/index.stories.js +60 -0
- package/dist/components/common/WentWrongModal/index.test.d.ts +1 -0
- package/dist/components/common/WentWrongModal/index.test.js +209 -0
- package/dist/components/common/WentWrongModal/palette.d.ts +11 -0
- package/dist/components/common/WentWrongModal/palette.js +22 -0
- package/dist/components/common/WentWrongModal/styles.d.ts +24 -0
- package/dist/components/common/WentWrongModal/styles.js +88 -0
- package/dist/esm/components/common/AdaptiveModalDrawer/index.js +24 -0
- package/dist/esm/components/common/AdaptiveModalDrawer/index.stories.js +37 -0
- package/dist/esm/components/common/Modal/assets/CollapseIcon.js +35 -0
- package/dist/esm/components/common/Modal/assets/ExpandIcon.js +35 -0
- package/dist/esm/components/common/Modal/context.js +8 -0
- package/dist/esm/components/common/Modal/index.js +147 -0
- package/dist/esm/components/common/Modal/index.stories.js +69 -0
- package/dist/esm/components/common/Modal/palette.js +16 -0
- package/dist/esm/components/common/Modal/styles.js +61 -0
- package/dist/esm/components/common/WentWrongModal/assets/icons.js +77 -0
- package/dist/esm/components/common/WentWrongModal/assets/racoonImage.js +3 -0
- package/dist/esm/components/common/WentWrongModal/index.js +186 -0
- package/dist/esm/components/common/WentWrongModal/index.stories.js +53 -0
- package/dist/esm/components/common/WentWrongModal/index.test.js +208 -0
- package/dist/esm/components/common/WentWrongModal/palette.js +15 -0
- package/dist/esm/components/common/WentWrongModal/styles.js +81 -0
- package/dist/esm/index.js +3 -1
- package/dist/esm/palette/context.js +5 -1
- package/dist/esm/palette/provider.js +5 -1
- package/dist/index.d.ts +6 -0
- package/dist/index.js +39 -0
- package/dist/palette/context.d.ts +4 -0
- package/dist/palette/context.js +5 -1
- package/dist/palette/provider.js +5 -1
- package/dist/palette/usePalette.d.ts +2 -0
- package/package.json +1 -1
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { FC, PropsWithChildren } from 'react';
|
|
2
|
+
import { TProps as TDrawerProps } from '../Drawer';
|
|
3
|
+
import { TProps as TModalProps } from '../Modal';
|
|
4
|
+
export type TProps = {
|
|
5
|
+
isOpen: boolean;
|
|
6
|
+
onClose: () => void;
|
|
7
|
+
drawerProps?: Omit<TDrawerProps, 'isOpen' | 'onClose' | 'children'>;
|
|
8
|
+
modalProps?: Omit<TModalProps, 'isOpen' | 'onClose' | 'children'>;
|
|
9
|
+
};
|
|
10
|
+
/** Модалка на десктопе и шторка (Drawer) на мобильных. Скролл фона блокируют сами Modal и Drawer. */
|
|
11
|
+
export declare const AdaptiveModalDrawer: FC<PropsWithChildren<TProps>>;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.AdaptiveModalDrawer = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _useMedia = require("../../../hooks/useMedia");
|
|
9
|
+
var _Drawer = require("../Drawer");
|
|
10
|
+
var _Modal = require("../Modal");
|
|
11
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
12
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
13
|
+
/** Модалка на десктопе и шторка (Drawer) на мобильных. Скролл фона блокируют сами Modal и Drawer. */
|
|
14
|
+
var AdaptiveModalDrawer = exports.AdaptiveModalDrawer = function AdaptiveModalDrawer(_ref) {
|
|
15
|
+
var children = _ref.children,
|
|
16
|
+
isOpen = _ref.isOpen,
|
|
17
|
+
onClose = _ref.onClose,
|
|
18
|
+
drawerProps = _ref.drawerProps,
|
|
19
|
+
modalProps = _ref.modalProps;
|
|
20
|
+
var isMobile = (0, _useMedia.useMobile)();
|
|
21
|
+
if (isMobile) {
|
|
22
|
+
return /*#__PURE__*/_react["default"].createElement(_Drawer.Drawer, _extends({
|
|
23
|
+
onClose: onClose,
|
|
24
|
+
isOpen: isOpen
|
|
25
|
+
}, drawerProps), children);
|
|
26
|
+
}
|
|
27
|
+
return /*#__PURE__*/_react["default"].createElement(_Modal.Modal, _extends({
|
|
28
|
+
onClose: onClose,
|
|
29
|
+
isOpen: isOpen
|
|
30
|
+
}, modalProps), children);
|
|
31
|
+
};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = exports.Default = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _useModal3 = require("../../../hooks/useModal");
|
|
9
|
+
var _ = require(".");
|
|
10
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
11
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
12
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
13
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
14
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
15
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
16
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
17
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
18
|
+
var meta = {
|
|
19
|
+
title: 'common/AdaptiveModalDrawer',
|
|
20
|
+
component: _.AdaptiveModalDrawer,
|
|
21
|
+
tags: ['autodocs']
|
|
22
|
+
};
|
|
23
|
+
var _default = exports["default"] = meta;
|
|
24
|
+
var Default = exports.Default = {
|
|
25
|
+
args: {},
|
|
26
|
+
render: function Render(args) {
|
|
27
|
+
var _useModal = (0, _useModal3.useModal)(false),
|
|
28
|
+
_useModal2 = _slicedToArray(_useModal, 3),
|
|
29
|
+
isOpen = _useModal2[0],
|
|
30
|
+
open = _useModal2[1],
|
|
31
|
+
close = _useModal2[2];
|
|
32
|
+
return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("button", {
|
|
33
|
+
type: "button",
|
|
34
|
+
onClick: open
|
|
35
|
+
}, "Open"), /*#__PURE__*/_react["default"].createElement(_.AdaptiveModalDrawer, _extends({}, args, {
|
|
36
|
+
onClose: close,
|
|
37
|
+
isOpen: isOpen
|
|
38
|
+
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
39
|
+
style: {
|
|
40
|
+
padding: 24
|
|
41
|
+
}
|
|
42
|
+
}, "\u041C\u043E\u0434\u0430\u043B\u043A\u0430 \u043D\u0430 \u0434\u0435\u0441\u043A\u0442\u043E\u043F\u0435, \u0448\u0442\u043E\u0440\u043A\u0430 \u043D\u0430 \u043C\u043E\u0431\u0438\u043B\u044C\u043D\u043E\u043C")));
|
|
43
|
+
}
|
|
44
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const CollapseIcon: () => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.CollapseIcon = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
9
|
+
var CollapseIcon = exports.CollapseIcon = function CollapseIcon() {
|
|
10
|
+
return /*#__PURE__*/_react["default"].createElement("svg", {
|
|
11
|
+
width: "20",
|
|
12
|
+
height: "20",
|
|
13
|
+
viewBox: "0 0 24 24",
|
|
14
|
+
fill: "none",
|
|
15
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
16
|
+
"aria-hidden": true
|
|
17
|
+
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
18
|
+
d: "M20 10H14V4",
|
|
19
|
+
stroke: "currentColor",
|
|
20
|
+
strokeWidth: "1.8",
|
|
21
|
+
strokeLinecap: "round",
|
|
22
|
+
strokeLinejoin: "round"
|
|
23
|
+
}), /*#__PURE__*/_react["default"].createElement("path", {
|
|
24
|
+
d: "M4 14H10V20",
|
|
25
|
+
stroke: "currentColor",
|
|
26
|
+
strokeWidth: "1.8",
|
|
27
|
+
strokeLinecap: "round",
|
|
28
|
+
strokeLinejoin: "round"
|
|
29
|
+
}), /*#__PURE__*/_react["default"].createElement("path", {
|
|
30
|
+
d: "M14 10L21 3",
|
|
31
|
+
stroke: "currentColor",
|
|
32
|
+
strokeWidth: "1.8",
|
|
33
|
+
strokeLinecap: "round",
|
|
34
|
+
strokeLinejoin: "round"
|
|
35
|
+
}), /*#__PURE__*/_react["default"].createElement("path", {
|
|
36
|
+
d: "M10 14L3 21",
|
|
37
|
+
stroke: "currentColor",
|
|
38
|
+
strokeWidth: "1.8",
|
|
39
|
+
strokeLinecap: "round",
|
|
40
|
+
strokeLinejoin: "round"
|
|
41
|
+
}));
|
|
42
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const ExpandIcon: () => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ExpandIcon = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
9
|
+
var ExpandIcon = exports.ExpandIcon = function ExpandIcon() {
|
|
10
|
+
return /*#__PURE__*/_react["default"].createElement("svg", {
|
|
11
|
+
width: "20",
|
|
12
|
+
height: "20",
|
|
13
|
+
viewBox: "0 0 24 24",
|
|
14
|
+
fill: "none",
|
|
15
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
16
|
+
"aria-hidden": true
|
|
17
|
+
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
18
|
+
d: "M15 3H21V9",
|
|
19
|
+
stroke: "currentColor",
|
|
20
|
+
strokeWidth: "1.8",
|
|
21
|
+
strokeLinecap: "round",
|
|
22
|
+
strokeLinejoin: "round"
|
|
23
|
+
}), /*#__PURE__*/_react["default"].createElement("path", {
|
|
24
|
+
d: "M9 21H3V15",
|
|
25
|
+
stroke: "currentColor",
|
|
26
|
+
strokeWidth: "1.8",
|
|
27
|
+
strokeLinecap: "round",
|
|
28
|
+
strokeLinejoin: "round"
|
|
29
|
+
}), /*#__PURE__*/_react["default"].createElement("path", {
|
|
30
|
+
d: "M21 3L14 10",
|
|
31
|
+
stroke: "currentColor",
|
|
32
|
+
strokeWidth: "1.8",
|
|
33
|
+
strokeLinecap: "round",
|
|
34
|
+
strokeLinejoin: "round"
|
|
35
|
+
}), /*#__PURE__*/_react["default"].createElement("path", {
|
|
36
|
+
d: "M3 21L10 14",
|
|
37
|
+
stroke: "currentColor",
|
|
38
|
+
strokeWidth: "1.8",
|
|
39
|
+
strokeLinecap: "round",
|
|
40
|
+
strokeLinejoin: "round"
|
|
41
|
+
}));
|
|
42
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export type TModalExpansion = {
|
|
3
|
+
/** модалка поддерживает разворот (см. проп isExpandable у Modal): высота окна ограничена экраном, скролл — внутри контента */
|
|
4
|
+
isExpandable: boolean;
|
|
5
|
+
/** модалка сейчас развёрнута на весь экран */
|
|
6
|
+
isExpanded: boolean;
|
|
7
|
+
};
|
|
8
|
+
export declare const ModalExpansionContext: import("react").Context<TModalExpansion>;
|
|
9
|
+
export declare const useModalExpansion: () => TModalExpansion;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useModalExpansion = exports.ModalExpansionContext = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var ModalExpansionContext = exports.ModalExpansionContext = /*#__PURE__*/(0, _react.createContext)({
|
|
9
|
+
isExpandable: false,
|
|
10
|
+
isExpanded: false
|
|
11
|
+
});
|
|
12
|
+
var useModalExpansion = exports.useModalExpansion = function useModalExpansion() {
|
|
13
|
+
return (0, _react.useContext)(ModalExpansionContext);
|
|
14
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { FC, ReactNode } from 'react';
|
|
2
|
+
export type TProps = {
|
|
3
|
+
onClose: () => void;
|
|
4
|
+
isOpen: boolean;
|
|
5
|
+
overflow?: string;
|
|
6
|
+
width?: number;
|
|
7
|
+
isDisabledOutsideClick?: boolean;
|
|
8
|
+
/** кнопка разворота окна на весь экран (только в десктопной версии) */
|
|
9
|
+
isExpandable?: boolean;
|
|
10
|
+
children?: ReactNode;
|
|
11
|
+
};
|
|
12
|
+
export declare const Modal: FC<TProps>;
|
|
13
|
+
export { useModalExpansion } from './context';
|
|
14
|
+
export type { TModalExpansion } from './context';
|
|
15
|
+
export { modalExpansionFlexItem } from './styles';
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.Modal = void 0;
|
|
8
|
+
Object.defineProperty(exports, "modalExpansionFlexItem", {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
get: function get() {
|
|
11
|
+
return S.modalExpansionFlexItem;
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
Object.defineProperty(exports, "useModalExpansion", {
|
|
15
|
+
enumerable: true,
|
|
16
|
+
get: function get() {
|
|
17
|
+
return _context.useModalExpansion;
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
21
|
+
var _reactDom = require("react-dom");
|
|
22
|
+
var _useOutsideClick = require("../../../hooks/useOutsideClick");
|
|
23
|
+
var _useLockBodyScroll = require("../../../hooks/useLockBodyScroll");
|
|
24
|
+
var _palette = require("../../../palette");
|
|
25
|
+
var _ErrorBoundary = require("../ErrorBoundary");
|
|
26
|
+
var _ExpandIcon = require("./assets/ExpandIcon");
|
|
27
|
+
var _CollapseIcon = require("./assets/CollapseIcon");
|
|
28
|
+
var _context = require("./context");
|
|
29
|
+
var S = _interopRequireWildcard(require("./styles"));
|
|
30
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
31
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
32
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
33
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
34
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
35
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
36
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
37
|
+
var FOCUSABLE_SELECTOR = 'a[href], button:not([disabled]), textarea:not([disabled]), input:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex="-1"])';
|
|
38
|
+
var Modal = exports.Modal = function Modal(_ref) {
|
|
39
|
+
var onClose = _ref.onClose,
|
|
40
|
+
isOpen = _ref.isOpen,
|
|
41
|
+
children = _ref.children,
|
|
42
|
+
_ref$overflow = _ref.overflow,
|
|
43
|
+
overflow = _ref$overflow === void 0 ? 'auto' : _ref$overflow,
|
|
44
|
+
width = _ref.width,
|
|
45
|
+
isDisabledOutsideClick = _ref.isDisabledOutsideClick,
|
|
46
|
+
isExpandable = _ref.isExpandable;
|
|
47
|
+
var palette = (0, _palette.useComponentPalette)('modal');
|
|
48
|
+
var contentRef = (0, _react.useRef)(null);
|
|
49
|
+
var previousFocusRef = (0, _react.useRef)(null);
|
|
50
|
+
var _useState = (0, _react.useState)(false),
|
|
51
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
52
|
+
isExpanded = _useState2[0],
|
|
53
|
+
setIsExpanded = _useState2[1];
|
|
54
|
+
var expansionContextValue = (0, _react.useMemo)(function () {
|
|
55
|
+
return {
|
|
56
|
+
isExpandable: Boolean(isExpandable),
|
|
57
|
+
isExpanded: isExpanded
|
|
58
|
+
};
|
|
59
|
+
}, [isExpandable, isExpanded]);
|
|
60
|
+
(0, _useLockBodyScroll.useLockBodyScroll)(isOpen);
|
|
61
|
+
(0, _react.useEffect)(function () {
|
|
62
|
+
if (!isOpen) {
|
|
63
|
+
setIsExpanded(false);
|
|
64
|
+
}
|
|
65
|
+
}, [isOpen]);
|
|
66
|
+
|
|
67
|
+
// Фокус переносим в окно при открытии и возвращаем на прежний элемент при закрытии
|
|
68
|
+
(0, _react.useEffect)(function () {
|
|
69
|
+
var _contentRef$current;
|
|
70
|
+
if (!isOpen) return undefined;
|
|
71
|
+
previousFocusRef.current = document.activeElement;
|
|
72
|
+
(_contentRef$current = contentRef.current) === null || _contentRef$current === void 0 || _contentRef$current.focus();
|
|
73
|
+
return function () {
|
|
74
|
+
var _previousFocusRef$cur;
|
|
75
|
+
(_previousFocusRef$cur = previousFocusRef.current) === null || _previousFocusRef$cur === void 0 || _previousFocusRef$cur.focus();
|
|
76
|
+
};
|
|
77
|
+
}, [isOpen]);
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Клик вне окна закрывает модалку. Не считаем «снаружи» клики по порталу Dropdown и по другим диалогам
|
|
81
|
+
* поверх неё (role="dialog"): например, Drawer с опциями Select на планшете рендерится порталом в body,
|
|
82
|
+
* и клик по его затемнению иначе закрывал бы и эту модалку.
|
|
83
|
+
*/
|
|
84
|
+
(0, _react.useEffect)(function () {
|
|
85
|
+
if (!isOpen || isDisabledOutsideClick) return undefined;
|
|
86
|
+
var handleMouseDown = function handleMouseDown(event) {
|
|
87
|
+
var content = contentRef.current;
|
|
88
|
+
var target = event.target;
|
|
89
|
+
if (!content || !(target instanceof Element) || content.contains(target)) return;
|
|
90
|
+
if ((0, _useOutsideClick.isDropdownPortalClick)(target)) return;
|
|
91
|
+
var dialog = target.closest('[role="dialog"]');
|
|
92
|
+
if (dialog && dialog !== content) return;
|
|
93
|
+
onClose();
|
|
94
|
+
};
|
|
95
|
+
document.addEventListener('mousedown', handleMouseDown);
|
|
96
|
+
return function () {
|
|
97
|
+
document.removeEventListener('mousedown', handleMouseDown);
|
|
98
|
+
};
|
|
99
|
+
}, [isOpen, isDisabledOutsideClick, onClose]);
|
|
100
|
+
|
|
101
|
+
// Escape закрывает окно, Tab/Shift+Tab не выпускают фокус за его пределы
|
|
102
|
+
(0, _react.useEffect)(function () {
|
|
103
|
+
if (!isOpen) return undefined;
|
|
104
|
+
var handleKeyDown = function handleKeyDown(e) {
|
|
105
|
+
var _document$activeEleme;
|
|
106
|
+
// Поверх открыта другая модалка и фокус в ней — Escape и Tab обрабатывает она, а не эта
|
|
107
|
+
var activeDialog = (_document$activeEleme = document.activeElement) === null || _document$activeEleme === void 0 ? void 0 : _document$activeEleme.closest('[role="dialog"]');
|
|
108
|
+
if (activeDialog && activeDialog !== contentRef.current) return;
|
|
109
|
+
if (e.key === 'Escape') {
|
|
110
|
+
onClose();
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
if (e.key !== 'Tab') return;
|
|
114
|
+
var content = contentRef.current;
|
|
115
|
+
if (!content) return;
|
|
116
|
+
var focusable = Array.from(content.querySelectorAll(FOCUSABLE_SELECTOR));
|
|
117
|
+
if (!focusable.length) {
|
|
118
|
+
e.preventDefault();
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
var first = focusable[0];
|
|
122
|
+
var last = focusable[focusable.length - 1];
|
|
123
|
+
var active = document.activeElement;
|
|
124
|
+
if (e.shiftKey && active === first) {
|
|
125
|
+
e.preventDefault();
|
|
126
|
+
last.focus();
|
|
127
|
+
} else if (!e.shiftKey && (active === last || !content.contains(active))) {
|
|
128
|
+
e.preventDefault();
|
|
129
|
+
first.focus();
|
|
130
|
+
}
|
|
131
|
+
};
|
|
132
|
+
document.addEventListener('keydown', handleKeyDown);
|
|
133
|
+
return function () {
|
|
134
|
+
document.removeEventListener('keydown', handleKeyDown);
|
|
135
|
+
};
|
|
136
|
+
}, [isOpen, onClose]);
|
|
137
|
+
if (!isOpen) return null;
|
|
138
|
+
return /*#__PURE__*/(0, _reactDom.createPortal)(/*#__PURE__*/_react["default"].createElement(S.Container, null, /*#__PURE__*/_react["default"].createElement(S.ContainerInner, {
|
|
139
|
+
$isExpanded: isExpanded
|
|
140
|
+
}, /*#__PURE__*/_react["default"].createElement(S.Backdrop, {
|
|
141
|
+
$palette: palette
|
|
142
|
+
}), /*#__PURE__*/_react["default"].createElement(S.Content, {
|
|
143
|
+
$palette: palette,
|
|
144
|
+
$overflow: overflow,
|
|
145
|
+
$width: width,
|
|
146
|
+
$isExpandable: isExpandable,
|
|
147
|
+
$isExpanded: isExpanded,
|
|
148
|
+
ref: contentRef,
|
|
149
|
+
role: "dialog",
|
|
150
|
+
"aria-modal": "true",
|
|
151
|
+
tabIndex: -1
|
|
152
|
+
}, isExpandable && /*#__PURE__*/_react["default"].createElement(S.ExpandButton, {
|
|
153
|
+
type: "button",
|
|
154
|
+
$palette: palette,
|
|
155
|
+
onClick: function onClick() {
|
|
156
|
+
return setIsExpanded(function (prev) {
|
|
157
|
+
return !prev;
|
|
158
|
+
});
|
|
159
|
+
},
|
|
160
|
+
"aria-label": isExpanded ? 'Свернуть окно' : 'Развернуть окно на весь экран',
|
|
161
|
+
title: isExpanded ? 'Свернуть' : 'Развернуть на весь экран'
|
|
162
|
+
}, isExpanded ? /*#__PURE__*/_react["default"].createElement(_CollapseIcon.CollapseIcon, null) : /*#__PURE__*/_react["default"].createElement(_ExpandIcon.ExpandIcon, null)), /*#__PURE__*/_react["default"].createElement(_context.ModalExpansionContext.Provider, {
|
|
163
|
+
value: expansionContextValue
|
|
164
|
+
}, /*#__PURE__*/_react["default"].createElement(_ErrorBoundary.ErrorBoundary, null, children))))), document.body);
|
|
165
|
+
};
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = exports.Expandable = exports.Default = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _useModal5 = require("../../../hooks/useModal");
|
|
9
|
+
var _ = require(".");
|
|
10
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
11
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
12
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
13
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
14
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
15
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
16
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
17
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
18
|
+
var meta = {
|
|
19
|
+
title: 'common/Modal',
|
|
20
|
+
component: _.Modal,
|
|
21
|
+
tags: ['autodocs']
|
|
22
|
+
};
|
|
23
|
+
var _default = exports["default"] = meta;
|
|
24
|
+
var Default = exports.Default = {
|
|
25
|
+
args: {},
|
|
26
|
+
render: function Render(args) {
|
|
27
|
+
var _useModal = (0, _useModal5.useModal)(false),
|
|
28
|
+
_useModal2 = _slicedToArray(_useModal, 3),
|
|
29
|
+
isOpen = _useModal2[0],
|
|
30
|
+
open = _useModal2[1],
|
|
31
|
+
close = _useModal2[2];
|
|
32
|
+
return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("button", {
|
|
33
|
+
type: "button",
|
|
34
|
+
onClick: open
|
|
35
|
+
}, "Open"), /*#__PURE__*/_react["default"].createElement(_.Modal, _extends({}, args, {
|
|
36
|
+
onClose: close,
|
|
37
|
+
isOpen: isOpen
|
|
38
|
+
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
39
|
+
style: {
|
|
40
|
+
padding: 24
|
|
41
|
+
}
|
|
42
|
+
}, "Content")));
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
var Expandable = exports.Expandable = {
|
|
46
|
+
args: {},
|
|
47
|
+
render: function Render(args) {
|
|
48
|
+
var _useModal3 = (0, _useModal5.useModal)(false),
|
|
49
|
+
_useModal4 = _slicedToArray(_useModal3, 3),
|
|
50
|
+
isOpen = _useModal4[0],
|
|
51
|
+
open = _useModal4[1],
|
|
52
|
+
close = _useModal4[2];
|
|
53
|
+
return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("button", {
|
|
54
|
+
type: "button",
|
|
55
|
+
onClick: open
|
|
56
|
+
}, "Open"), /*#__PURE__*/_react["default"].createElement(_.Modal, _extends({}, args, {
|
|
57
|
+
onClose: close,
|
|
58
|
+
isOpen: isOpen,
|
|
59
|
+
isExpandable: true,
|
|
60
|
+
width: 600,
|
|
61
|
+
overflow: "visible"
|
|
62
|
+
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
63
|
+
style: {
|
|
64
|
+
width: 600,
|
|
65
|
+
flex: 1,
|
|
66
|
+
background: '#f2f4f6',
|
|
67
|
+
borderRadius: 20
|
|
68
|
+
}
|
|
69
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
70
|
+
style: {
|
|
71
|
+
padding: 24,
|
|
72
|
+
height: 200
|
|
73
|
+
}
|
|
74
|
+
}, "Content"))));
|
|
75
|
+
}
|
|
76
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { TAbstractPalette } from '../../../palette';
|
|
2
|
+
export type TModalPalette = {
|
|
3
|
+
bg: string;
|
|
4
|
+
backdropBg: string;
|
|
5
|
+
shadow: string;
|
|
6
|
+
expandButton: string;
|
|
7
|
+
expandButtonHoverBg: string;
|
|
8
|
+
};
|
|
9
|
+
export declare const generateModalPalette: (abstractPalette: TAbstractPalette) => TModalPalette;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.generateModalPalette = void 0;
|
|
7
|
+
var _transformColorByHsl = require("../../../utils/transformColorByHsl");
|
|
8
|
+
var _hexToRgba = _interopRequireDefault(require("../../../utils/hexToRgba"));
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
10
|
+
var generateModalPalette = exports.generateModalPalette = function generateModalPalette(abstractPalette) {
|
|
11
|
+
return {
|
|
12
|
+
bg: abstractPalette.base,
|
|
13
|
+
// тот же затемнённый primary, что и у подложки Drawer
|
|
14
|
+
backdropBg: (0, _hexToRgba["default"])((0, _transformColorByHsl.transformColorByHsl)(abstractPalette.primary, {
|
|
15
|
+
hue: -3.3333333333333144,
|
|
16
|
+
saturation: -0.07435090479937062,
|
|
17
|
+
lightness: 0.08235294117647063
|
|
18
|
+
}), 0.5),
|
|
19
|
+
shadow: '0 10px 30px 0 rgba(53, 63, 71, 0.1)',
|
|
20
|
+
expandButton: (0, _hexToRgba["default"])(abstractPalette.primary, 0.7),
|
|
21
|
+
expandButtonHoverBg: (0, _hexToRgba["default"])(abstractPalette.primary, 0.06)
|
|
22
|
+
};
|
|
23
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { TModalPalette } from './palette';
|
|
3
|
+
/**
|
|
4
|
+
* Растяжение flex-элемента по высоте внутри expandable-модалки: занимает свободное
|
|
5
|
+
* место и умеет сжиматься, отдавая скролл вложенному контенту. Вешается на конкретные
|
|
6
|
+
* обёртки по пропу (см. useModalExpansion), а не через селекторы.
|
|
7
|
+
*/
|
|
8
|
+
export declare const modalExpansionFlexItem: import("styled-components").RuleSet<object>;
|
|
9
|
+
export declare const Container: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
10
|
+
export declare const ContainerInner: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
|
|
11
|
+
$isExpanded?: boolean | undefined;
|
|
12
|
+
}>> & string;
|
|
13
|
+
export declare const Backdrop: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
|
|
14
|
+
$palette: TModalPalette;
|
|
15
|
+
}>> & string;
|
|
16
|
+
export declare const Content: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
|
|
17
|
+
$palette: TModalPalette;
|
|
18
|
+
$overflow: string;
|
|
19
|
+
$width?: number | undefined;
|
|
20
|
+
$isExpandable?: boolean | undefined;
|
|
21
|
+
$isExpanded?: boolean | undefined;
|
|
22
|
+
}>> & string;
|
|
23
|
+
export declare const ExpandButton: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, {
|
|
24
|
+
$palette: TModalPalette;
|
|
25
|
+
}>> & string;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.modalExpansionFlexItem = exports.ExpandButton = exports.Content = exports.ContainerInner = exports.Container = exports.Backdrop = void 0;
|
|
8
|
+
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
9
|
+
var _breakpoints = require("../../../breakpoints");
|
|
10
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
11
|
+
/**
|
|
12
|
+
* Растяжение flex-элемента по высоте внутри expandable-модалки: занимает свободное
|
|
13
|
+
* место и умеет сжиматься, отдавая скролл вложенному контенту. Вешается на конкретные
|
|
14
|
+
* обёртки по пропу (см. useModalExpansion), а не через селекторы.
|
|
15
|
+
*/
|
|
16
|
+
var modalExpansionFlexItem = exports.modalExpansionFlexItem = (0, _styledComponents.css)(["flex:1 1 auto;min-height:0;"]);
|
|
17
|
+
var Container = exports.Container = _styledComponents["default"].div.withConfig({
|
|
18
|
+
displayName: "styles__Container",
|
|
19
|
+
componentId: "sc-1kjfcg5-0"
|
|
20
|
+
})(["position:fixed;top:0;left:0;right:0;bottom:0;z-index:100;"]);
|
|
21
|
+
var ContainerInner = exports.ContainerInner = _styledComponents["default"].div.withConfig({
|
|
22
|
+
displayName: "styles__ContainerInner",
|
|
23
|
+
componentId: "sc-1kjfcg5-1"
|
|
24
|
+
})(["box-sizing:border-box;width:100%;height:100%;position:relative;display:flex;justify-content:center;overflow:hidden auto;align-items:flex-start;padding:", ";@media ", "{padding:", ";}"], function (_ref) {
|
|
25
|
+
var $isExpanded = _ref.$isExpanded;
|
|
26
|
+
return $isExpanded ? '20px' : '55px 0';
|
|
27
|
+
}, _breakpoints.breakpoints.sm, function (_ref2) {
|
|
28
|
+
var $isExpanded = _ref2.$isExpanded;
|
|
29
|
+
return $isExpanded ? '20px' : '15px 0';
|
|
30
|
+
});
|
|
31
|
+
var Backdrop = exports.Backdrop = _styledComponents["default"].div.withConfig({
|
|
32
|
+
displayName: "styles__Backdrop",
|
|
33
|
+
componentId: "sc-1kjfcg5-2"
|
|
34
|
+
})(["position:fixed;top:0;left:0;right:0;bottom:0;z-index:-1;background-color:", ";"], function (_ref3) {
|
|
35
|
+
var $palette = _ref3.$palette;
|
|
36
|
+
return $palette.backdropBg;
|
|
37
|
+
});
|
|
38
|
+
var Content = exports.Content = _styledComponents["default"].div.withConfig({
|
|
39
|
+
displayName: "styles__Content",
|
|
40
|
+
componentId: "sc-1kjfcg5-3"
|
|
41
|
+
})(["margin:auto;max-width:calc(100vw - 10px);", " overflow:", ";position:relative;background-color:", ";border-radius:20px;box-shadow:", ";outline:none;", " ", " @media ", "{width:100%;}"], function (_ref4) {
|
|
42
|
+
var $width = _ref4.$width;
|
|
43
|
+
return $width && "width: ".concat($width, "px;");
|
|
44
|
+
}, function (_ref5) {
|
|
45
|
+
var $overflow = _ref5.$overflow;
|
|
46
|
+
return $overflow;
|
|
47
|
+
}, function (_ref6) {
|
|
48
|
+
var $palette = _ref6.$palette;
|
|
49
|
+
return $palette.bg;
|
|
50
|
+
}, function (_ref7) {
|
|
51
|
+
var $palette = _ref7.$palette;
|
|
52
|
+
return $palette.shadow;
|
|
53
|
+
}, function (_ref8) {
|
|
54
|
+
var $isExpandable = _ref8.$isExpandable;
|
|
55
|
+
return $isExpandable && (0, _styledComponents.css)(["display:flex;flex-direction:column;align-items:center;max-height:100%;overflow:auto;@media ", "{display:block;max-height:none;}"], _breakpoints.breakpoints.md);
|
|
56
|
+
}, function (_ref9) {
|
|
57
|
+
var $isExpanded = _ref9.$isExpanded;
|
|
58
|
+
return $isExpanded && (0, _styledComponents.css)(["width:100%;max-width:100%;height:100%;"]);
|
|
59
|
+
}, _breakpoints.breakpoints.md);
|
|
60
|
+
var ExpandButton = exports.ExpandButton = _styledComponents["default"].button.withConfig({
|
|
61
|
+
displayName: "styles__ExpandButton",
|
|
62
|
+
componentId: "sc-1kjfcg5-4"
|
|
63
|
+
})(["position:absolute;top:14px;right:14px;z-index:2;display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;border-radius:8px;background-color:transparent;cursor:pointer;color:", ";&:hover{background-color:", ";}@media ", "{display:none;}"], function (_ref0) {
|
|
64
|
+
var $palette = _ref0.$palette;
|
|
65
|
+
return $palette.expandButton;
|
|
66
|
+
}, function (_ref1) {
|
|
67
|
+
var $palette = _ref1.$palette;
|
|
68
|
+
return $palette.expandButtonHoverBg;
|
|
69
|
+
}, _breakpoints.breakpoints.md);
|