mimir-ui-kit 1.36.9 → 1.36.11

Sign up to get free protection for your applications and to get access to all the features.
@@ -57,9 +57,17 @@ type TProps = {
57
57
  * Дополнительный класс для footer.
58
58
  */
59
59
  classNameFooter?: string;
60
+ /**
61
+ * Флаг, определяющий, закрывать ли Drawer при клике вне его области
62
+ */
63
+ closeOnClickOutside?: boolean;
64
+ /**
65
+ * Флаг, определяющий, показывать ли кнопку закрытия в заголовке
66
+ */
67
+ showCloseButton?: boolean;
60
68
  };
61
69
  /**
62
70
  * Компонент шторки, который может выезжать слева, справа или внизу.
63
71
  */
64
- export declare const Drawer: ({ isOpen, onClose, title, className, unmount, isLoading, stickyHeader, fullBottomHeight, position, paddingRight, footer, children, classNameInner, classNameFooter }: PropsWithChildren<TProps>) => import("react/jsx-runtime").JSX.Element | null;
72
+ export declare const Drawer: ({ isOpen, onClose, title, className, unmount, isLoading, stickyHeader, fullBottomHeight, position, paddingRight, footer, children, classNameInner, classNameFooter, closeOnClickOutside, showCloseButton }: PropsWithChildren<TProps>) => import("react/jsx-runtime").JSX.Element | null;
65
73
  export {};
@@ -1,93 +1,97 @@
1
- import { jsxs as m, jsx as t, Fragment as A } from "react/jsx-runtime";
1
+ import { jsxs as m, jsx as t, Fragment as X } from "react/jsx-runtime";
2
2
  import { c as s } from "../../index-DIxK0V-G.js";
3
- import { useState as u, useRef as X, useCallback as g, useEffect as j } from "react";
4
- import { EDrawerPosition as v } from "./constants.js";
5
- import { useMediaQuery as P } from "../../hooks/useMediaQuery/useMediaQuery.js";
6
- import { EMediaQuery as Q } from "../../hooks/useMediaQuery/constants.js";
7
- import { useLockBodyScroll as F } from "../../hooks/useLockBodyScroll/useLockBodyScroll.js";
8
- import { useResizeObserver as G } from "../../hooks/useResizeObserver/useResizeObserver.js";
9
- import { Button as w } from "../Button/Button.js";
10
- import { EButtonVariantDefault as H, EButtonSize as n } from "../Button/constants.js";
11
- import { Loader as K } from "../Loader/Loader.js";
12
- import { Portal as O } from "../Portal/Portal.js";
13
- import '../../assets/Drawer.css';const V = "_drawer_1xs4d_3", W = "_content_1xs4d_27", Y = "_header_1xs4d_45", q = "_title_1xs4d_59", J = "_space_1xs4d_73", U = "_inner_1xs4d_84", Z = "_button_1xs4d_87", $ = "_footer_1xs4d_92", ee = "_left_1xs4d_105", te = "_right_1xs4d_109", oe = "_full_1xs4d_113", se = "_bottom_1xs4d_123", re = "_opened_1xs4d_140", ne = "_overlay_1xs4d_196", le = "_unmount_1xs4d_212", e = {
14
- drawer: V,
15
- content: W,
3
+ import { useState as N, useRef as j, useCallback as u, useEffect as P } from "react";
4
+ import { EDrawerPosition as w } from "./constants.js";
5
+ import { useMediaQuery as Q } from "../../hooks/useMediaQuery/useMediaQuery.js";
6
+ import { EMediaQuery as F } from "../../hooks/useMediaQuery/constants.js";
7
+ import { useLockBodyScroll as G } from "../../hooks/useLockBodyScroll/useLockBodyScroll.js";
8
+ import { useResizeObserver as H } from "../../hooks/useResizeObserver/useResizeObserver.js";
9
+ import { Button as k } from "../Button/Button.js";
10
+ import { EButtonVariantDefault as K, EButtonSize as n } from "../Button/constants.js";
11
+ import { Loader as V } from "../Loader/Loader.js";
12
+ import { Portal as W } from "../Portal/Portal.js";
13
+ import '../../assets/Drawer.css';const Y = "_drawer_1xs4d_3", q = "_content_1xs4d_27", J = "_header_1xs4d_45", U = "_title_1xs4d_59", Z = "_space_1xs4d_73", $ = "_inner_1xs4d_84", O = "_button_1xs4d_87", ee = "_footer_1xs4d_92", te = "_left_1xs4d_105", oe = "_right_1xs4d_109", se = "_full_1xs4d_113", re = "_bottom_1xs4d_123", ne = "_opened_1xs4d_140", ae = "_overlay_1xs4d_196", ie = "_unmount_1xs4d_212", e = {
14
+ drawer: Y,
15
+ content: q,
16
16
  "is-loading": "_is-loading_1xs4d_41",
17
- header: Y,
17
+ header: J,
18
18
  "sticky-header": "_sticky-header_1xs4d_53",
19
- title: q,
20
- space: J,
21
- inner: U,
22
- button: Z,
23
- footer: $,
19
+ title: U,
20
+ space: Z,
21
+ inner: $,
22
+ button: O,
23
+ footer: ee,
24
24
  "footer-button": "_footer-button_1xs4d_101",
25
- left: ee,
26
- right: te,
27
- full: oe,
28
- bottom: se,
25
+ left: te,
26
+ right: oe,
27
+ full: se,
28
+ bottom: re,
29
29
  "full-bottom-height": "_full-bottom-height_1xs4d_134",
30
- opened: re,
30
+ opened: ne,
31
31
  "is-closing": "_is-closing_1xs4d_159",
32
- overlay: ne,
33
- unmount: le
34
- }, ie = 300, ge = ({
32
+ overlay: ae,
33
+ unmount: ie
34
+ }, le = 300, ve = ({
35
35
  isOpen: r,
36
- onClose: l,
37
- title: N,
38
- className: k,
36
+ onClose: a,
37
+ title: E,
38
+ className: M,
39
39
  unmount: f = !0,
40
40
  isLoading: i = !1,
41
41
  stickyHeader: B,
42
- fullBottomHeight: E = !1,
43
- position: a = v.RIGHT,
44
- paddingRight: M = 8,
42
+ fullBottomHeight: I = !1,
43
+ position: l = w.RIGHT,
44
+ paddingRight: S = 8,
45
45
  footer: c,
46
- children: S,
47
- classNameInner: I,
48
- classNameFooter: C
46
+ children: T,
47
+ classNameInner: C,
48
+ classNameFooter: D,
49
+ closeOnClickOutside: h = !0,
50
+ showCloseButton: x = !0
49
51
  }) => {
50
- const [L, h] = u(!1), [T, x] = u(!1), [D, p] = u(!1), y = X(), d = P(Q.XS1), { ref: z } = G({
51
- enabled: a === v.BOTTOM
52
+ const [p, y] = N(!1), [z, b] = N(!1), g = j(), d = Q(F.XS1), { ref: L } = H({
53
+ enabled: l === w.BOTTOM
52
54
  });
53
- F({
54
- on: D,
55
- paddingRight: M
55
+ G({
56
+ on: r && !p,
57
+ paddingRight: S
56
58
  });
57
- const o = g(() => {
58
- l && (h(!0), p(!1), y.current = setTimeout(() => {
59
- l(), h(!1);
60
- }, ie));
61
- }, [l]), _ = g(
62
- (R) => {
63
- R.key === "Escape" && o();
59
+ const o = u(() => {
60
+ a && (y(!0), g.current = setTimeout(() => {
61
+ a(), y(!1);
62
+ }, le));
63
+ }, [a]), R = u(() => {
64
+ h && o();
65
+ }, [h, o]), _ = u(
66
+ (A) => {
67
+ A.key === "Escape" && o();
64
68
  },
65
69
  [o]
66
70
  );
67
- j(() => (r && (p(!0), x(!0), window.addEventListener("keydown", _)), () => {
68
- x(!1), clearTimeout(y.current), window.removeEventListener("keydown", _);
71
+ P(() => (r && (b(!0), window.addEventListener("keydown", _)), () => {
72
+ b(!1), clearTimeout(g.current), window.removeEventListener("keydown", _);
69
73
  }), [r, _]);
70
- const b = {
71
- [e.opened]: T,
72
- [e["is-closing"]]: L,
73
- [e["full-bottom-height"]]: E,
74
+ const v = {
75
+ [e.opened]: z,
76
+ [e["is-closing"]]: p,
77
+ [e["full-bottom-height"]]: I,
74
78
  [e["is-loading"]]: i
75
79
  };
76
- return !r && f ? null : /* @__PURE__ */ m(O, { children: [
80
+ return !r && f ? null : /* @__PURE__ */ m(W, { children: [
77
81
  /* @__PURE__ */ t(
78
82
  "div",
79
83
  {
80
84
  "aria-hidden": !r,
81
85
  role: "dialog",
82
- className: s(e.drawer, e[a], b, k),
86
+ className: s(e.drawer, e[l], v, M),
83
87
  children: /* @__PURE__ */ t(
84
88
  "section",
85
89
  {
86
- ref: z,
87
- className: s(e.content, e[a], {
90
+ ref: L,
91
+ className: s(e.content, e[l], {
88
92
  [e["is-loading"]]: !!i
89
93
  }),
90
- children: i ? /* @__PURE__ */ t(K, {}) : /* @__PURE__ */ m(A, { children: [
94
+ children: i ? /* @__PURE__ */ t(V, {}) : /* @__PURE__ */ m(X, { children: [
91
95
  /* @__PURE__ */ m(
92
96
  "header",
93
97
  {
@@ -95,11 +99,11 @@ import '../../assets/Drawer.css';const V = "_drawer_1xs4d_3", W = "_content_1xs4
95
99
  [e["sticky-header"]]: B
96
100
  }),
97
101
  children: [
98
- /* @__PURE__ */ t("h2", { className: e.title, children: N }),
99
- /* @__PURE__ */ t("div", { className: e.space, children: /* @__PURE__ */ t(
100
- w,
102
+ /* @__PURE__ */ t("h2", { className: e.title, children: E }),
103
+ /* @__PURE__ */ t("div", { className: e.space, children: x && /* @__PURE__ */ t(
104
+ k,
101
105
  {
102
- variant: H.SecondaryWhite,
106
+ variant: K.SecondaryWhite,
103
107
  isIconButton: !0,
104
108
  size: d ? n.S : n.M,
105
109
  iconName: "Close16px",
@@ -110,9 +114,9 @@ import '../../assets/Drawer.css';const V = "_drawer_1xs4d_3", W = "_content_1xs4
110
114
  ]
111
115
  }
112
116
  ),
113
- /* @__PURE__ */ t("div", { className: s(e.inner, I), children: S }),
114
- /* @__PURE__ */ t("footer", { className: s(e.footer, C), children: typeof c == "function" ? c({ handleClose: o }) : c || /* @__PURE__ */ t(
115
- w,
117
+ /* @__PURE__ */ t("div", { className: s(e.inner, C), children: T }),
118
+ /* @__PURE__ */ t("footer", { className: s(e.footer, D), children: typeof c == "function" ? c({ handleClose: o }) : c || x && /* @__PURE__ */ t(
119
+ k,
116
120
  {
117
121
  size: d ? n.M : n.XXL,
118
122
  full: d,
@@ -134,15 +138,15 @@ import '../../assets/Drawer.css';const V = "_drawer_1xs4d_3", W = "_content_1xs4
134
138
  {
135
139
  [e.unmount]: !f
136
140
  },
137
- b
141
+ v
138
142
  ),
139
143
  "data-testid": "drawer-overlay",
140
- onClick: o
144
+ onClick: R
141
145
  }
142
146
  )
143
147
  ] });
144
148
  };
145
149
  export {
146
- ie as ANIMATION_DELAY,
147
- ge as Drawer
150
+ le as ANIMATION_DELAY,
151
+ ve as Drawer
148
152
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "mimir-ui-kit",
3
3
  "private": false,
4
- "version": "1.36.9",
4
+ "version": "1.36.11",
5
5
  "type": "module",
6
6
  "exports": {
7
7
  ".": {