@alfalab/core-components-modal 4.1.0 → 5.0.1

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.
Files changed (180) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/dist/Component.desktop.d.ts +4 -2
  3. package/dist/Component.desktop.js +11 -10
  4. package/dist/Component.mobile.d.ts +1 -1
  5. package/dist/Component.mobile.js +8 -15
  6. package/dist/Component.responsive.d.ts +4 -4
  7. package/dist/Component.responsive.js +9 -7
  8. package/dist/components/closer/Component.d.ts +15 -3
  9. package/dist/components/closer/Component.js +13 -5
  10. package/dist/components/closer/index.css +24 -26
  11. package/dist/components/content/Component.d.ts +1 -3
  12. package/dist/components/content/Component.desktop.d.ts +2 -5
  13. package/dist/components/content/Component.desktop.js +4 -4
  14. package/dist/components/content/Component.js +4 -1
  15. package/dist/components/content/Component.mobile.js +8 -4
  16. package/dist/components/content/desktop.css +18 -597
  17. package/dist/components/content/index.css +28 -0
  18. package/dist/components/content/mobile.css +9 -584
  19. package/dist/components/footer/Component.d.ts +1 -3
  20. package/dist/components/footer/Component.desktop.d.ts +2 -5
  21. package/dist/components/footer/Component.desktop.js +7 -4
  22. package/dist/components/footer/Component.js +5 -2
  23. package/dist/components/footer/Component.mobile.js +11 -4
  24. package/dist/components/footer/desktop.css +18 -604
  25. package/dist/components/footer/index.css +41 -0
  26. package/dist/components/footer/layout.css +28 -28
  27. package/dist/components/footer/mobile.css +7 -593
  28. package/dist/components/header/Component.d.ts +23 -5
  29. package/dist/components/header/Component.desktop.d.ts +5 -4
  30. package/dist/components/header/Component.desktop.js +12 -6
  31. package/dist/components/header/Component.js +13 -9
  32. package/dist/components/header/Component.mobile.d.ts +6 -1
  33. package/dist/components/header/Component.mobile.js +16 -6
  34. package/dist/components/header/desktop.css +53 -624
  35. package/dist/components/header/index.css +85 -0
  36. package/dist/components/header/mobile.css +17 -607
  37. package/dist/cssm/Component.desktop.d.ts +4 -2
  38. package/dist/cssm/Component.desktop.js +11 -7
  39. package/dist/cssm/Component.mobile.d.ts +1 -1
  40. package/dist/cssm/Component.mobile.js +8 -12
  41. package/dist/cssm/Component.responsive.d.ts +4 -4
  42. package/dist/cssm/Component.responsive.js +10 -5
  43. package/dist/cssm/components/closer/Component.d.ts +15 -3
  44. package/dist/cssm/components/closer/Component.js +11 -3
  45. package/dist/cssm/components/closer/index.module.css +22 -24
  46. package/dist/cssm/components/content/Component.d.ts +1 -3
  47. package/dist/cssm/components/content/Component.desktop.d.ts +2 -5
  48. package/dist/cssm/components/content/Component.desktop.js +3 -2
  49. package/dist/cssm/components/content/Component.js +5 -3
  50. package/dist/cssm/components/content/Component.mobile.js +7 -2
  51. package/dist/cssm/components/content/desktop.module.css +14 -21
  52. package/dist/cssm/components/content/index.module.css +4 -16
  53. package/dist/cssm/components/content/mobile.module.css +7 -9
  54. package/dist/cssm/components/footer/Component.d.ts +1 -3
  55. package/dist/cssm/components/footer/Component.desktop.d.ts +2 -5
  56. package/dist/cssm/components/footer/Component.desktop.js +6 -2
  57. package/dist/cssm/components/footer/Component.js +6 -4
  58. package/dist/cssm/components/footer/Component.mobile.js +10 -2
  59. package/dist/cssm/components/footer/desktop.module.css +15 -25
  60. package/dist/cssm/components/footer/index.module.css +8 -12
  61. package/dist/cssm/components/footer/layout.module.css +3 -3
  62. package/dist/cssm/components/footer/mobile.module.css +4 -12
  63. package/dist/cssm/components/header/Component.d.ts +23 -5
  64. package/dist/cssm/components/header/Component.desktop.d.ts +5 -4
  65. package/dist/cssm/components/header/Component.desktop.js +12 -5
  66. package/dist/cssm/components/header/Component.js +15 -13
  67. package/dist/cssm/components/header/Component.mobile.d.ts +6 -1
  68. package/dist/cssm/components/header/Component.mobile.js +16 -5
  69. package/dist/cssm/components/header/desktop.module.css +51 -35
  70. package/dist/cssm/components/header/index.module.css +45 -24
  71. package/dist/cssm/components/header/mobile.module.css +21 -22
  72. package/dist/cssm/desktop.js +6 -2
  73. package/dist/cssm/desktop.module.css +10 -6
  74. package/dist/cssm/index.js +8 -3
  75. package/dist/cssm/mobile.js +7 -3
  76. package/dist/cssm/mobile.module.css +3 -3
  77. package/dist/cssm/responsive.js +8 -3
  78. package/dist/cssm/vars.css +3 -3
  79. package/dist/desktop.css +18 -14
  80. package/dist/desktop.js +5 -4
  81. package/dist/esm/Component.desktop.d.ts +4 -2
  82. package/dist/esm/Component.desktop.js +11 -10
  83. package/dist/esm/Component.mobile.d.ts +1 -1
  84. package/dist/esm/Component.mobile.js +9 -16
  85. package/dist/esm/Component.responsive.d.ts +4 -4
  86. package/dist/esm/Component.responsive.js +9 -7
  87. package/dist/esm/components/closer/Component.d.ts +15 -3
  88. package/dist/esm/components/closer/Component.js +13 -5
  89. package/dist/esm/components/closer/index.css +24 -26
  90. package/dist/esm/components/content/Component.d.ts +1 -3
  91. package/dist/esm/components/content/Component.desktop.d.ts +2 -5
  92. package/dist/esm/components/content/Component.desktop.js +4 -4
  93. package/dist/esm/components/content/Component.js +4 -1
  94. package/dist/esm/components/content/Component.mobile.js +7 -4
  95. package/dist/esm/components/content/desktop.css +18 -597
  96. package/dist/esm/components/content/index.css +28 -0
  97. package/dist/esm/components/content/mobile.css +9 -584
  98. package/dist/esm/components/footer/Component.d.ts +1 -3
  99. package/dist/esm/components/footer/Component.desktop.d.ts +2 -5
  100. package/dist/esm/components/footer/Component.desktop.js +7 -4
  101. package/dist/esm/components/footer/Component.js +5 -2
  102. package/dist/esm/components/footer/Component.mobile.js +10 -4
  103. package/dist/esm/components/footer/desktop.css +18 -604
  104. package/dist/esm/components/footer/index.css +41 -0
  105. package/dist/esm/components/footer/layout.css +28 -28
  106. package/dist/esm/components/footer/mobile.css +7 -593
  107. package/dist/esm/components/header/Component.d.ts +23 -5
  108. package/dist/esm/components/header/Component.desktop.d.ts +5 -4
  109. package/dist/esm/components/header/Component.desktop.js +12 -6
  110. package/dist/esm/components/header/Component.js +13 -9
  111. package/dist/esm/components/header/Component.mobile.d.ts +6 -1
  112. package/dist/esm/components/header/Component.mobile.js +14 -6
  113. package/dist/esm/components/header/desktop.css +53 -624
  114. package/dist/esm/components/header/index.css +85 -0
  115. package/dist/esm/components/header/mobile.css +17 -607
  116. package/dist/esm/desktop.css +18 -14
  117. package/dist/esm/desktop.js +5 -4
  118. package/dist/esm/index.js +7 -5
  119. package/dist/esm/mobile.css +5 -5
  120. package/dist/esm/mobile.js +6 -5
  121. package/dist/esm/responsive.js +7 -5
  122. package/dist/esm/transitions.css +8 -8
  123. package/dist/esm/transitions.module-386b448e.js +4 -0
  124. package/dist/esm/{tslib.es6-75e2f0f0.d.ts → tslib.es6-242320f2.d.ts} +0 -0
  125. package/dist/esm/{tslib.es6-75e2f0f0.js → tslib.es6-242320f2.js} +0 -0
  126. package/dist/index.js +7 -5
  127. package/dist/mobile.css +5 -5
  128. package/dist/mobile.js +6 -5
  129. package/dist/modern/Component.desktop.d.ts +4 -2
  130. package/dist/modern/Component.desktop.js +11 -10
  131. package/dist/modern/Component.mobile.d.ts +1 -1
  132. package/dist/modern/Component.mobile.js +8 -16
  133. package/dist/modern/Component.responsive.d.ts +4 -4
  134. package/dist/modern/Component.responsive.js +8 -6
  135. package/dist/modern/components/closer/Component.d.ts +15 -3
  136. package/dist/modern/components/closer/Component.js +11 -4
  137. package/dist/modern/components/closer/index.css +24 -26
  138. package/dist/modern/components/content/Component.d.ts +1 -3
  139. package/dist/modern/components/content/Component.desktop.d.ts +2 -5
  140. package/dist/modern/components/content/Component.desktop.js +2 -2
  141. package/dist/modern/components/content/Component.js +4 -1
  142. package/dist/modern/components/content/Component.mobile.js +3 -3
  143. package/dist/modern/components/content/desktop.css +18 -597
  144. package/dist/modern/components/content/index.css +28 -0
  145. package/dist/modern/components/content/mobile.css +9 -584
  146. package/dist/modern/components/footer/Component.d.ts +1 -3
  147. package/dist/modern/components/footer/Component.desktop.d.ts +2 -5
  148. package/dist/modern/components/footer/Component.desktop.js +4 -2
  149. package/dist/modern/components/footer/Component.js +5 -2
  150. package/dist/modern/components/footer/Component.mobile.js +5 -3
  151. package/dist/modern/components/footer/desktop.css +18 -604
  152. package/dist/modern/components/footer/index.css +41 -0
  153. package/dist/modern/components/footer/layout.css +28 -28
  154. package/dist/modern/components/footer/mobile.css +7 -593
  155. package/dist/modern/components/header/Component.d.ts +23 -5
  156. package/dist/modern/components/header/Component.desktop.d.ts +5 -4
  157. package/dist/modern/components/header/Component.desktop.js +11 -4
  158. package/dist/modern/components/header/Component.js +11 -6
  159. package/dist/modern/components/header/Component.mobile.d.ts +6 -1
  160. package/dist/modern/components/header/Component.mobile.js +9 -5
  161. package/dist/modern/components/header/desktop.css +53 -624
  162. package/dist/modern/components/header/index.css +85 -0
  163. package/dist/modern/components/header/mobile.css +17 -607
  164. package/dist/modern/desktop.css +18 -14
  165. package/dist/modern/desktop.js +4 -3
  166. package/dist/modern/index.js +6 -4
  167. package/dist/modern/mobile.css +5 -5
  168. package/dist/modern/mobile.js +5 -4
  169. package/dist/modern/responsive.js +6 -4
  170. package/dist/modern/transitions.css +8 -8
  171. package/dist/modern/transitions.module-386b448e.js +4 -0
  172. package/dist/responsive.js +7 -5
  173. package/dist/transitions.css +8 -8
  174. package/dist/transitions.module-27d19713.js +6 -0
  175. package/dist/{tslib.es6-ae9d9dce.d.ts → tslib.es6-4834d51a.d.ts} +0 -0
  176. package/dist/{tslib.es6-ae9d9dce.js → tslib.es6-4834d51a.js} +0 -0
  177. package/package.json +4 -3
  178. package/dist/esm/transitions.module-602ea4ef.js +0 -4
  179. package/dist/modern/transitions.module-602ea4ef.js +0 -4
  180. package/dist/transitions.module-336e79fe.js +0 -6
@@ -8,54 +8,44 @@
8
8
  }
9
9
  :root {
10
10
  --gap-xl: 24px;
11
+ --gap-2xl: 32px;
11
12
  --gap-3xl: 40px;
12
- --gap-4xl: 48px;
13
13
  --gap-6xl: 72px;
14
14
  }
15
15
  :root {
16
- --border-radius-m: 8px;
16
+ --border-radius-l: 12px;
17
17
  }
18
18
  :root {
19
- --modal-border-radius: var(--border-radius-m);
19
+ --modal-border-radius: var(--border-radius-l);
20
20
  --modal-vertical-padding: var(--gap-3xl);
21
21
 
22
22
  /* sizes */
23
23
 
24
24
  /* paddings */
25
- --modal-s-footer-paddings: var(--gap-xl) var(--gap-4xl) var(--gap-4xl);
26
- --modal-m-footer-paddings: var(--gap-xl) var(--gap-4xl) var(--gap-4xl);
27
- --modal-l-footer-paddings: var(--gap-xl) var(--gap-6xl) var(--gap-6xl);
25
+ --modal-s-footer-paddings: var(--gap-xl) 56px 56px;
28
26
 
29
- /* closer */
27
+ /* scroll */
30
28
 
31
- /* sticky */
29
+ /* desktop */
32
30
 
33
- /* scroll */
31
+ /* mobile */
34
32
  }
35
33
  .footer {
36
- composes: footer from 'index.module.css';
37
-
38
34
  border-bottom-left-radius: var(--modal-border-radius);
39
35
  border-bottom-right-radius: var(--modal-border-radius);
40
36
  }
41
- .highlighted {
42
- composes: highlighted from 'index.module.css';
43
- }
44
37
  .sticky {
45
- composes: sticky from 'index.module.css';
46
-
47
- bottom: calc(var(--modal-vertical-padding) * -1);
48
- }
49
- .fullscreen {
50
- bottom: 0;
51
- }
52
- .s {
53
- padding: var(--modal-s-footer-paddings);
38
+ bottom: calc(var(--modal-vertical-padding) * -1)
54
39
  }
40
+ .sticky.fullscreen {
41
+ bottom: 0;
42
+ }
43
+ .s,
55
44
  .m {
56
- padding: var(--modal-m-footer-paddings);
45
+ padding: var(--modal-s-footer-paddings);
57
46
  }
58
47
  .l,
48
+ .xl,
59
49
  .fullscreen {
60
- padding: var(--modal-l-footer-paddings);
50
+ padding: var(--gap-2xl) var(--gap-6xl) var(--gap-6xl);
61
51
  }
@@ -1,41 +1,37 @@
1
1
  :root {
2
2
  --color-light-bg-primary: #fff;
3
+ --color-light-border-primary: #dbdee1;
3
4
  }
4
5
  :root {
5
6
 
6
7
  /* Hard */
7
8
 
8
9
  /* Up */
9
- --shadow-s-up: 0 0 8px rgba(11, 31, 53, 0.04), 0 -4px 8px rgba(11, 31, 53, 0.08);
10
10
 
11
11
  /* Hard up */
12
12
  }
13
13
  :root {
14
- --modal-header-background: var(--color-light-bg-primary);
14
+ --modal-footer-background: var(--color-light-bg-primary);
15
15
 
16
16
  /* sizes */
17
17
 
18
18
  /* paddings */
19
19
 
20
- /* closer */
21
-
22
- /* sticky */
23
- --modal-footer-sticky-box-shadow: none;
24
- --modal-footer-sticky-background: var(--modal-header-background);
25
-
26
20
  /* scroll */
27
- --modal-footer-highlight-box-shadow: var(--shadow-s-up);
28
21
  --modal-footer-highlight-background: var(--color-light-bg-primary);
22
+ --modal-footer-highlight-box-shadow: 0 -1px 0 0 var(--color-light-border-primary);
23
+
24
+ /* desktop */
25
+
26
+ /* mobile */
29
27
  }
30
28
  .footer {
31
29
  width: 100%;
32
30
  box-sizing: border-box;
33
31
  transition: box-shadow 0.2s ease, background 0.2s ease;
34
- background: var(--modal-header-background);
35
32
  }
36
33
  .sticky {
37
- background: var(--modal-footer-sticky-background);
38
- box-shadow: var(--modal-footer-sticky-box-shadow);
34
+ background: var(--modal-footer-background);
39
35
  position: sticky;
40
36
  }
41
37
  .highlighted {
@@ -18,11 +18,11 @@
18
18
 
19
19
  /* paddings */
20
20
 
21
- /* closer */
21
+ /* scroll */
22
22
 
23
- /* sticky */
23
+ /* desktop */
24
24
 
25
- /* scroll */
25
+ /* mobile */
26
26
  }
27
27
  .column {
28
28
  display: flex;
@@ -8,7 +8,6 @@
8
8
  }
9
9
  :root {
10
10
  --gap-m: 16px;
11
- --gap-xl: 24px;
12
11
  }
13
12
  :root {
14
13
 
@@ -16,22 +15,15 @@
16
15
 
17
16
  /* paddings */
18
17
 
19
- /* closer */
18
+ /* scroll */
20
19
 
21
- /* sticky */
20
+ /* desktop */
22
21
 
23
- /* scroll */
22
+ /* mobile */
24
23
  }
25
24
  .footer {
26
- composes: footer from 'index.module.css';
27
-
28
- padding: var(--gap-xl) var(--gap-m);
29
- }
30
- .highlighted {
31
- composes: highlighted from 'index.module.css';
25
+ padding: var(--gap-m);
32
26
  }
33
27
  .sticky {
34
- composes: sticky from 'index.module.css';
35
-
36
28
  bottom: 0;
37
29
  }
@@ -5,23 +5,41 @@ type HeaderProps = {
5
5
  */
6
6
  children?: ReactNode;
7
7
  /**
8
- * Наличие крестика
8
+ * Слот слева
9
9
  */
10
- hasCloser?: boolean;
10
+ leftAddons?: ReactNode;
11
+ /**
12
+ * Компонент крестика
13
+ */
14
+ closer?: ReactNode;
11
15
  /**
12
16
  * Дополнительный класс
13
17
  */
14
18
  className?: string;
19
+ /**
20
+ * Дополнительный класс для аддонов
21
+ */
22
+ addonClassName?: string;
23
+ /**
24
+ * Дополнительный класс для контента
25
+ */
26
+ contentClassName?: string;
15
27
  /**
16
28
  * Заголовок шапки
17
29
  */
18
30
  title?: string;
31
+ /**
32
+ * Выравнивание заголовка
33
+ */
34
+ align?: 'left' | 'center';
35
+ /**
36
+ * Обрезать ли заголовок
37
+ */
38
+ trim?: boolean;
19
39
  /**
20
40
  * Фиксирует шапку
21
41
  */
22
42
  sticky?: boolean;
23
43
  };
24
- declare const Header: FC<HeaderProps & {
25
- styles: Record<string, string>;
26
- }>;
44
+ declare const Header: FC<HeaderProps>;
27
45
  export { HeaderProps, Header };
@@ -1,14 +1,15 @@
1
1
  import { FC } from 'react';
2
2
  import { HeaderProps } from "./Component";
3
- type HeaderDesktopProps = HeaderProps & {
3
+ import { ModalDesktopProps } from "../../Component.desktop";
4
+ type HeaderDesktopProps = Omit<HeaderProps, 'closer'> & {
4
5
  /**
5
6
  * Размер
6
7
  */
7
- size?: 's' | 'm' | 'l';
8
+ size?: ModalDesktopProps['size'];
8
9
  /**
9
- * Флаг, что модальное окно открыто на весь экран
10
+ * Наличие крестика
10
11
  */
11
- fullscreen?: boolean;
12
+ hasCloser?: boolean;
12
13
  };
13
14
  declare const HeaderDesktop: FC<HeaderDesktopProps>;
14
15
  export { HeaderDesktopProps, HeaderDesktop };
@@ -7,10 +7,12 @@ var React = require('react');
7
7
  var cn = require('classnames');
8
8
  require('@alfalab/core-components-base-modal/dist/cssm');
9
9
  require('../../Context.js');
10
- require('@alfalab/core-components-button/dist/cssm');
11
- require('../closer/index.module.css');
12
- require('../closer/Component.js');
10
+ require('./index.module.css');
13
11
  var components_header_Component = require('./Component.js');
12
+ require('@alfalab/core-components-icon-button/dist/cssm');
13
+ require('@alfalab/icons-glyph/CrossHeavyMIcon');
14
+ require('../closer/index.module.css');
15
+ var components_closer_Component = require('../closer/Component.js');
14
16
  var styles = require('./desktop.module.css');
15
17
 
16
18
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -20,8 +22,13 @@ var cn__default = /*#__PURE__*/_interopDefaultLegacy(cn);
20
22
  var styles__default = /*#__PURE__*/_interopDefaultLegacy(styles);
21
23
 
22
24
  var HeaderDesktop = function (_a) {
23
- var size = _a.size, className = _a.className, fullscreen = _a.fullscreen, restProps = tslib_es6.__rest(_a, ["size", "className", "fullscreen"]);
24
- return (React__default['default'].createElement(components_header_Component.Header, tslib_es6.__assign({ className: cn__default['default'](className, size && styles__default['default'][size], fullscreen && styles__default['default'].fullscreen), styles: styles__default['default'] }, restProps)));
25
+ var _b;
26
+ var size = _a.size, className = _a.className, contentClassName = _a.contentClassName, _c = _a.hasCloser, hasCloser = _c === void 0 ? true : _c, sticky = _a.sticky, _d = _a.leftAddons, leftAddons = _d === void 0 ? React__default['default'].createElement("span", null) : _d, title = _a.title, children = _a.children, restProps = tslib_es6.__rest(_a, ["size", "className", "contentClassName", "hasCloser", "sticky", "leftAddons", "title", "children"]);
27
+ var hasContent = title || Boolean(children);
28
+ return (React__default['default'].createElement(components_header_Component.Header, tslib_es6.__assign({ className: cn__default['default'](className, styles__default['default'].header, size && styles__default['default'][size], (_b = {},
29
+ _b[styles__default['default'].sticky] = sticky,
30
+ _b[styles__default['default'].hasContent] = hasContent,
31
+ _b)), contentClassName: cn__default['default'](styles__default['default'].content, contentClassName), closer: hasCloser ? React__default['default'].createElement(components_closer_Component.Closer, null) : null, leftAddons: leftAddons, sticky: sticky, title: title }, restProps), children));
25
32
  };
26
33
 
27
34
  exports.HeaderDesktop = HeaderDesktop;
@@ -2,36 +2,38 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- require('../../tslib.es6-ce870b46.js');
6
5
  var React = require('react');
7
6
  var cn = require('classnames');
8
7
  require('@alfalab/core-components-base-modal/dist/cssm');
9
8
  var Context = require('../../Context.js');
10
- require('@alfalab/core-components-button/dist/cssm');
11
- require('../closer/index.module.css');
12
- var components_closer_Component = require('../closer/Component.js');
9
+ var styles = require('./index.module.css');
13
10
 
14
11
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
15
12
 
16
13
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
17
14
  var cn__default = /*#__PURE__*/_interopDefaultLegacy(cn);
15
+ var styles__default = /*#__PURE__*/_interopDefaultLegacy(styles);
18
16
 
19
17
  var Header = function (_a) {
20
- var _b;
21
- var className = _a.className, children = _a.children, title = _a.title, _c = _a.hasCloser, hasCloser = _c === void 0 ? true : _c, sticky = _a.sticky, styles = _a.styles;
22
- var _d = React.useContext(Context.ModalContext), headerHighlighted = _d.headerHighlighted, setHasHeader = _d.setHasHeader;
18
+ var _b, _c;
19
+ var className = _a.className, addonClassName = _a.addonClassName, contentClassName = _a.contentClassName, leftAddons = _a.leftAddons, children = _a.children, _d = _a.align, align = _d === void 0 ? 'left' : _d, _e = _a.trim, trim = _e === void 0 ? true : _e, title = _a.title, closer = _a.closer, sticky = _a.sticky;
20
+ var _f = React.useContext(Context.ModalContext), headerHighlighted = _f.headerHighlighted, setHasHeader = _f.setHasHeader;
23
21
  var hasContent = title || Boolean(children);
24
22
  React.useEffect(function () {
25
23
  setHasHeader(true);
26
24
  }, [setHasHeader]);
27
- return (React__default['default'].createElement("div", { className: cn__default['default'](styles.header, className, (_b = {},
28
- _b[styles.highlighted] = sticky && headerHighlighted,
29
- _b[styles.sticky] = sticky,
25
+ return (React__default['default'].createElement("div", { className: cn__default['default'](styles__default['default'].header, className, (_b = {},
26
+ _b[styles__default['default'].highlighted] = hasContent && sticky && headerHighlighted,
27
+ _b[styles__default['default'].sticky] = sticky,
28
+ _b[styles__default['default'].hasContent] = hasContent,
30
29
  _b)) },
31
- hasContent && (React__default['default'].createElement("div", { className: styles.content },
30
+ leftAddons && React__default['default'].createElement("div", { className: cn__default['default'](styles__default['default'].addon, addonClassName) }, leftAddons),
31
+ hasContent && (React__default['default'].createElement("div", { className: cn__default['default'](styles__default['default'].content, contentClassName, styles__default['default'][align], (_c = {},
32
+ _c[styles__default['default'].trim] = trim,
33
+ _c)) },
32
34
  children,
33
- title && React__default['default'].createElement("div", { className: styles.title }, title))),
34
- hasCloser && React__default['default'].createElement(components_closer_Component.Closer, null)));
35
+ title && React__default['default'].createElement("div", { className: styles__default['default'].title }, title))),
36
+ closer && (React__default['default'].createElement("div", { className: cn__default['default'](styles__default['default'].addon, styles__default['default'].closer, addonClassName) }, closer))));
35
37
  };
36
38
 
37
39
  exports.Header = Header;
@@ -1,5 +1,10 @@
1
1
  import { FC } from 'react';
2
2
  import { HeaderProps } from "./Component";
3
- type HeaderMobileProps = HeaderProps;
3
+ type HeaderMobileProps = Omit<HeaderProps, 'closer'> & {
4
+ /**
5
+ * Наличие крестика
6
+ */
7
+ hasCloser?: boolean;
8
+ };
4
9
  declare const HeaderMobile: FC<HeaderMobileProps>;
5
10
  export { HeaderMobileProps, HeaderMobile };
@@ -4,20 +4,31 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var tslib_es6 = require('../../tslib.es6-ce870b46.js');
6
6
  var React = require('react');
7
- require('classnames');
7
+ var cn = require('classnames');
8
8
  require('@alfalab/core-components-base-modal/dist/cssm');
9
9
  require('../../Context.js');
10
- require('@alfalab/core-components-button/dist/cssm');
11
- require('../closer/index.module.css');
12
- require('../closer/Component.js');
10
+ require('./index.module.css');
13
11
  var components_header_Component = require('./Component.js');
12
+ require('@alfalab/core-components-icon-button/dist/cssm');
13
+ require('@alfalab/icons-glyph/CrossHeavyMIcon');
14
+ require('../closer/index.module.css');
15
+ var components_closer_Component = require('../closer/Component.js');
16
+ var CrossMIcon = require('@alfalab/icons-glyph/CrossMIcon');
14
17
  var styles = require('./mobile.module.css');
15
18
 
16
19
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
17
20
 
18
21
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
22
+ var cn__default = /*#__PURE__*/_interopDefaultLegacy(cn);
23
+ var CrossMIcon__default = /*#__PURE__*/_interopDefaultLegacy(CrossMIcon);
19
24
  var styles__default = /*#__PURE__*/_interopDefaultLegacy(styles);
20
25
 
21
- var HeaderMobile = function (props) { return React__default['default'].createElement(components_header_Component.Header, tslib_es6.__assign({ styles: styles__default['default'] }, props)); };
26
+ var HeaderMobile = function (_a) {
27
+ var _b;
28
+ var className = _a.className, contentClassName = _a.contentClassName, _c = _a.hasCloser, hasCloser = _c === void 0 ? true : _c, sticky = _a.sticky, restProps = tslib_es6.__rest(_a, ["className", "contentClassName", "hasCloser", "sticky"]);
29
+ return (React__default['default'].createElement(components_header_Component.Header, tslib_es6.__assign({ className: cn__default['default'](className, (_b = {},
30
+ _b[styles__default['default'].sticky] = sticky,
31
+ _b)), contentClassName: cn__default['default'](styles__default['default'].content, contentClassName), closer: hasCloser ? React__default['default'].createElement(components_closer_Component.Closer, { icon: CrossMIcon__default['default'], size: 'xs' }) : null, sticky: sticky }, restProps)));
32
+ };
22
33
 
23
34
  exports.HeaderMobile = HeaderMobile;
@@ -7,64 +7,80 @@
7
7
  /* Hard up */
8
8
  }
9
9
  :root {
10
+ --gap-xs: 8px;
11
+ --gap-m: 16px;
12
+ --gap-xl: 24px;
10
13
  --gap-3xl: 40px;
11
- --gap-4xl: 48px;
12
- --gap-6xl: 72px;
13
14
  }
14
15
  :root {
15
- --border-radius-m: 8px;
16
+ --font-family-system: system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Helvetica,
17
+ sans-serif;
16
18
  }
17
19
  :root {
18
- --modal-border-radius: var(--border-radius-m);
20
+ --border-radius-l: 12px;
21
+ }
22
+ :root {
23
+ --modal-border-radius: var(--border-radius-l);
19
24
  --modal-vertical-padding: var(--gap-3xl);
20
25
 
21
26
  /* sizes */
22
- --modal-header-min-height: 48px;
23
- --modal-header-l-min-height: 72px;
24
27
 
25
28
  /* paddings */
26
- --modal-s-header-paddings: 0 0 0 var(--gap-4xl);
27
- --modal-m-header-paddings: 0 0 0 var(--gap-4xl);
28
- --modal-l-header-paddings: 0 0 0 var(--gap-6xl);
29
+ --modal-s-header-paddings: var(--gap-xs) var(--gap-xs) var(--gap-m);
29
30
 
30
- /* closer */
31
+ /* scroll */
31
32
 
32
- /* sticky */
33
+ /* desktop */
34
+ --modal-s-header-desktop-content-paddings: var(--gap-3xl) var(--gap-m) 0 0;
35
+ --modal-s-header-desktop-font-size: 22px;
36
+ --modal-s-header-desktop-line-height: 26px;
37
+ --modal-l-header-desktop-content-paddings: var(--gap-3xl) var(--gap-m) 0 0;
38
+ --modal-l-header-desktop-font-size: 30px;
39
+ --modal-l-header-desktop-line-height: 36px;
40
+ --modal-header-desktop-font-weight: bold;
41
+ --modal-header-desktop-font-family: var(--font-family-system);
33
42
 
34
- /* scroll */
43
+ /* mobile */
35
44
  }
36
45
  .header {
37
- composes: header from 'index.module.css';
38
-
39
- min-height: var(--modal-header-min-height);
40
46
  border-top-left-radius: var(--modal-border-radius);
41
47
  border-top-right-radius: var(--modal-border-radius);
42
48
  }
43
- .s {
44
- padding: var(--modal-s-header-paddings);
49
+ .content {
50
+ font-weight: var(--modal-header-desktop-font-weight);
51
+ font-family: var(--modal-header-desktop-font-family);
52
+ }
53
+ .s .content,
54
+ .m .content {
55
+ padding: var(--modal-s-header-desktop-content-paddings);
56
+ font-size: var(--modal-s-header-desktop-font-size);
57
+ line-height: var(--modal-s-header-desktop-line-height);
58
+ }
59
+ .l .content,
60
+ .xl .content,
61
+ .fullscreen .content {
62
+ padding: var(--modal-l-header-desktop-content-paddings);
63
+ font-size: var(--modal-l-header-desktop-font-size);
64
+ line-height: var(--modal-l-header-desktop-line-height);
45
65
  }
66
+ .s,
46
67
  .m {
47
- padding: var(--modal-m-header-paddings);
68
+ padding: var(--modal-s-header-paddings)
48
69
  }
70
+ .s:not(.hasContent), .m:not(.hasContent) {
71
+ padding-bottom: 0;
72
+ }
49
73
  .l,
74
+ .xl,
50
75
  .fullscreen {
51
- min-height: var(--modal-header-l-min-height);
52
- padding: var(--modal-l-header-paddings);
76
+ padding: var(--gap-xl) var(--gap-xl) var(--gap-m)
53
77
  }
78
+ .l:not(.hasContent), .xl:not(.hasContent), .fullscreen:not(.hasContent) {
79
+ padding-bottom: var(--gap-m);
80
+ }
54
81
  .sticky {
55
- composes: sticky from 'index.module.css';
56
-
57
- top: calc(var(--modal-vertical-padding) * -1);
58
- }
59
- .fullscreen {
60
- top: 0;
61
- }
62
- .highlighted {
63
- composes: highlighted from 'index.module.css';
64
- }
65
- .content {
66
- composes: content from 'index.module.css';
67
- }
68
- .title {
69
- composes: title from 'index.module.css';
82
+ top: calc(var(--modal-vertical-padding) * -1)
70
83
  }
84
+ .sticky.fullscreen {
85
+ top: 0;
86
+ }
@@ -2,7 +2,6 @@
2
2
  --color-light-bg-primary: #fff;
3
3
  }
4
4
  :root {
5
- --shadow-s: 0 0 8px rgba(11, 31, 53, 0.04), 0 4px 8px rgba(11, 31, 53, 0.08);
6
5
 
7
6
  /* Hard */
8
7
 
@@ -10,14 +9,6 @@
10
9
 
11
10
  /* Hard up */
12
11
  }
13
- :root {
14
- --gap-xs: 8px;
15
- --gap-m: 16px;
16
- }
17
- :root {
18
- --font-family-styrene: 'Styrene UI', system-ui, -apple-system, 'Segoe UI', Roboto,
19
- 'Helvetica Neue', Helvetica, sans-serif;
20
- }
21
12
  :root {
22
13
  --modal-header-background: var(--color-light-bg-primary);
23
14
 
@@ -25,39 +16,69 @@
25
16
 
26
17
  /* paddings */
27
18
 
28
- /* closer */
29
-
30
- /* sticky */
31
-
32
19
  /* scroll */
33
- --modal-header-highlight-box-shadow: var(--shadow-s);
34
20
  --modal-header-highlight-background: var(--color-light-bg-primary);
21
+ --modal-header-highlight-box-shadow: none;
22
+
23
+ /* desktop */
24
+
25
+ /* mobile */
35
26
  }
36
27
  .header {
37
28
  width: 100%;
38
29
  box-sizing: border-box;
39
30
  display: flex;
40
31
  align-items: stretch;
41
- justify-content: flex-end;
42
- transition: box-shadow 0.2s ease, background 0.2s ease;
43
- background: var(--modal-header-background);
32
+ justify-content: space-between;
33
+ transition: box-shadow 0.2s ease, background 0.2s ease
44
34
  }
35
+ .header:not(.hasContent) {
36
+ pointer-events: none;
37
+ }
45
38
  .highlighted {
46
39
  background: var(--modal-header-highlight-background);
47
40
  box-shadow: var(--modal-header-highlight-box-shadow);
48
41
  }
49
42
  .sticky {
50
- position: sticky;
43
+ position: sticky
51
44
  }
45
+ .sticky.hasContent {
46
+ background: var(--modal-header-background);
47
+ }
52
48
  .content {
53
- font-size: 24px;
54
- line-height: 32px;
55
- font-weight: 500;
56
- font-feature-settings: 'ss01';
57
- font-family: var(--font-family-styrene);
58
49
  flex-grow: 1;
59
- margin: var(--gap-xs) var(--gap-m) var(--gap-xs) 0;
60
50
  }
61
51
  .title {
62
52
  word-break: break-word;
63
53
  }
54
+ .addon {
55
+ min-width: 48px;
56
+ height: 48px;
57
+ display: flex;
58
+ justify-content: center;
59
+ align-items: center;
60
+ pointer-events: all;
61
+ }
62
+ .closer {
63
+ margin-left: auto;
64
+ }
65
+ .left {
66
+ justify-content: flex-start;
67
+ text-align: left;
68
+ }
69
+ .center {
70
+ justify-content: center;
71
+ text-align: center;
72
+ }
73
+ .right {
74
+ justify-content: flex-end;
75
+ text-align: right;
76
+ }
77
+ .trim {
78
+ overflow: hidden
79
+ }
80
+ .trim .title {
81
+ overflow: hidden;
82
+ white-space: nowrap;
83
+ text-overflow: ellipsis;
84
+ }
@@ -7,7 +7,13 @@
7
7
  /* Hard up */
8
8
  }
9
9
  :root {
10
- --gap-4xl: 48px;
10
+ --gap-xs: 8px;
11
+ --gap-s: 12px;
12
+ --gap-m: 16px;
13
+ }
14
+ :root {
15
+ --font-family-system: system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Helvetica,
16
+ sans-serif;
11
17
  }
12
18
  :root {
13
19
 
@@ -15,32 +21,25 @@
15
21
 
16
22
  /* paddings */
17
23
 
18
- /* closer */
24
+ /* scroll */
19
25
 
20
- /* sticky */
26
+ /* desktop */
21
27
 
22
- /* scroll */
23
- }
24
- .header {
25
- composes: header from 'index.module.css';
26
-
27
- text-align: center;
28
- flex-direction: row-reverse;
29
- justify-content: flex-end;
30
- padding-right: var(--gap-4xl);
31
- padding-left: 0;
28
+ /* mobile */
29
+ --modal-header-mobile-content-paddings: var(--gap-s) var(--gap-xs) var(--gap-s) var(--gap-m);
30
+ --modal-header-mobile-font-size: 18px;
31
+ --modal-header-mobile-line-height: 24px;
32
+ --modal-header-mobile-font-family: var(--font-family-system);
33
+ --modal-header-mobile-font-weight: bold;
32
34
  }
33
35
  .sticky {
34
- composes: sticky from 'index.module.css';
35
-
36
36
  top: 0;
37
37
  }
38
- .highlighted {
39
- composes: highlighted from 'index.module.css';
40
- }
41
38
  .content {
42
- composes: content from 'index.module.css';
43
- }
44
- .title {
45
- composes: title from 'index.module.css';
39
+ font-size: var(--modal-header-mobile-font-size);
40
+ line-height: var(--modal-header-mobile-line-height);
41
+ font-family: var(--modal-header-mobile-font-family);
42
+ font-weight: var(--modal-header-mobile-font-weight);
43
+
44
+ padding: var(--modal-header-mobile-content-paddings);
46
45
  }