@alfalab/core-components-side-panel 2.5.7 → 3.0.0

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 (167) hide show
  1. package/Component.desktop.d.ts +1 -1
  2. package/Component.desktop.js +12 -10
  3. package/Component.mobile.d.ts +1 -1
  4. package/Component.mobile.js +11 -9
  5. package/Component.responsive.d.ts +1 -2
  6. package/Component.responsive.js +9 -18
  7. package/ResponsiveContext.d.ts +5 -0
  8. package/ResponsiveContext.js +11 -0
  9. package/components/content/Component.desktop.js +1 -1
  10. package/components/content/Component.js +6 -3
  11. package/components/content/Component.mobile.js +1 -1
  12. package/components/content/desktop.css +7 -4
  13. package/components/content/index.css +8 -4
  14. package/components/content/mobile.css +6 -4
  15. package/components/footer/Component.desktop.js +1 -1
  16. package/components/footer/Component.js +2 -2
  17. package/components/footer/Component.mobile.js +1 -1
  18. package/components/footer/desktop.css +7 -5
  19. package/components/footer/index.css +8 -6
  20. package/components/footer/layout.css +27 -25
  21. package/components/footer/mobile.css +5 -3
  22. package/components/header/Component.d.ts +3 -51
  23. package/components/header/Component.js +22 -14
  24. package/components/header/desktop.css +11 -13
  25. package/components/header/index.css +18 -24
  26. package/components/header/mobile.css +10 -6
  27. package/cssm/Component.desktop.d.ts +1 -1
  28. package/cssm/Component.desktop.js +12 -10
  29. package/cssm/Component.mobile.d.ts +1 -1
  30. package/cssm/Component.mobile.js +10 -8
  31. package/cssm/Component.responsive.d.ts +1 -2
  32. package/cssm/Component.responsive.js +12 -22
  33. package/cssm/ResponsiveContext.d.ts +5 -0
  34. package/cssm/ResponsiveContext.js +11 -0
  35. package/cssm/components/content/Component.js +5 -2
  36. package/cssm/components/content/desktop.module.css +4 -1
  37. package/cssm/components/content/index.module.css +6 -2
  38. package/cssm/components/content/mobile.module.css +3 -1
  39. package/cssm/components/footer/desktop.module.css +4 -2
  40. package/cssm/components/footer/index.module.css +4 -2
  41. package/cssm/components/footer/layout.module.css +2 -0
  42. package/cssm/components/footer/mobile.module.css +2 -0
  43. package/cssm/components/header/Component.d.ts +3 -51
  44. package/cssm/components/header/Component.js +19 -13
  45. package/cssm/components/header/desktop.module.css +7 -9
  46. package/cssm/components/header/index.module.css +4 -10
  47. package/cssm/components/header/mobile.module.css +7 -3
  48. package/cssm/desktop.js +4 -6
  49. package/cssm/desktop.module.css +2 -0
  50. package/cssm/index.js +6 -11
  51. package/cssm/mobile.js +3 -5
  52. package/cssm/mobile.module.css +2 -0
  53. package/cssm/responsive.js +6 -11
  54. package/cssm/typings.d.ts +7 -0
  55. package/cssm/typings.js +2 -0
  56. package/cssm/vars.css +2 -0
  57. package/desktop.css +5 -3
  58. package/desktop.js +2 -4
  59. package/esm/Component.desktop.d.ts +1 -1
  60. package/esm/Component.desktop.js +13 -11
  61. package/esm/Component.mobile.d.ts +1 -1
  62. package/esm/Component.mobile.js +12 -10
  63. package/esm/Component.responsive.d.ts +1 -2
  64. package/esm/Component.responsive.js +8 -17
  65. package/esm/ResponsiveContext.d.ts +5 -0
  66. package/esm/ResponsiveContext.js +5 -0
  67. package/esm/components/content/Component.desktop.js +1 -1
  68. package/esm/components/content/Component.js +6 -3
  69. package/esm/components/content/Component.mobile.js +1 -1
  70. package/esm/components/content/desktop.css +7 -4
  71. package/esm/components/content/index.css +8 -4
  72. package/esm/components/content/mobile.css +6 -4
  73. package/esm/components/footer/Component.desktop.js +1 -1
  74. package/esm/components/footer/Component.js +2 -2
  75. package/esm/components/footer/Component.mobile.js +1 -1
  76. package/esm/components/footer/desktop.css +7 -5
  77. package/esm/components/footer/index.css +8 -6
  78. package/esm/components/footer/layout.css +27 -25
  79. package/esm/components/footer/mobile.css +5 -3
  80. package/esm/components/header/Component.d.ts +3 -51
  81. package/esm/components/header/Component.js +23 -15
  82. package/esm/components/header/desktop.css +11 -13
  83. package/esm/components/header/index.css +18 -24
  84. package/esm/components/header/mobile.css +10 -6
  85. package/esm/desktop.css +5 -3
  86. package/esm/desktop.js +2 -4
  87. package/esm/index.js +3 -7
  88. package/esm/mobile.css +4 -2
  89. package/esm/mobile.js +2 -4
  90. package/esm/responsive.js +3 -7
  91. package/esm/transitions.desktop.css +7 -7
  92. package/esm/transitions.mobile.css +8 -8
  93. package/esm/typings.d.ts +7 -0
  94. package/esm/typings.js +1 -0
  95. package/index.js +3 -7
  96. package/mobile.css +4 -2
  97. package/mobile.js +2 -4
  98. package/modern/Component.desktop.d.ts +1 -1
  99. package/modern/Component.desktop.js +12 -10
  100. package/modern/Component.mobile.d.ts +1 -1
  101. package/modern/Component.mobile.js +17 -13
  102. package/modern/Component.responsive.d.ts +1 -2
  103. package/modern/Component.responsive.js +8 -17
  104. package/modern/ResponsiveContext.d.ts +5 -0
  105. package/modern/ResponsiveContext.js +5 -0
  106. package/modern/components/content/Component.desktop.js +1 -1
  107. package/modern/components/content/Component.js +5 -3
  108. package/modern/components/content/Component.mobile.js +1 -1
  109. package/modern/components/content/desktop.css +7 -4
  110. package/modern/components/content/index.css +8 -4
  111. package/modern/components/content/mobile.css +6 -4
  112. package/modern/components/footer/Component.desktop.js +1 -1
  113. package/modern/components/footer/Component.js +2 -2
  114. package/modern/components/footer/Component.mobile.js +1 -1
  115. package/modern/components/footer/desktop.css +7 -5
  116. package/modern/components/footer/index.css +8 -6
  117. package/modern/components/footer/layout.css +27 -25
  118. package/modern/components/footer/mobile.css +5 -3
  119. package/modern/components/header/Component.d.ts +3 -51
  120. package/modern/components/header/Component.js +22 -16
  121. package/modern/components/header/desktop.css +11 -13
  122. package/modern/components/header/index.css +18 -24
  123. package/modern/components/header/mobile.css +10 -6
  124. package/modern/desktop.css +5 -3
  125. package/modern/desktop.js +2 -4
  126. package/modern/index.js +3 -7
  127. package/modern/mobile.css +4 -2
  128. package/modern/mobile.js +2 -4
  129. package/modern/responsive.js +3 -7
  130. package/modern/transitions.desktop.css +7 -7
  131. package/modern/transitions.mobile.css +8 -8
  132. package/modern/typings.d.ts +7 -0
  133. package/modern/typings.js +1 -0
  134. package/package.json +4 -3
  135. package/responsive.js +3 -7
  136. package/transitions.desktop.css +7 -7
  137. package/transitions.mobile.css +8 -8
  138. package/typings.d.ts +7 -0
  139. package/typings.js +2 -0
  140. package/components/closer/Component.d.ts +0 -29
  141. package/components/closer/Component.js +0 -34
  142. package/components/closer/index.css +0 -47
  143. package/components/header/Component.desktop.d.ts +0 -18
  144. package/components/header/Component.desktop.js +0 -31
  145. package/components/header/Component.mobile.d.ts +0 -14
  146. package/components/header/Component.mobile.js +0 -30
  147. package/cssm/components/closer/Component.d.ts +0 -29
  148. package/cssm/components/closer/Component.js +0 -33
  149. package/cssm/components/closer/index.module.css +0 -46
  150. package/cssm/components/header/Component.desktop.d.ts +0 -18
  151. package/cssm/components/header/Component.desktop.js +0 -32
  152. package/cssm/components/header/Component.mobile.d.ts +0 -14
  153. package/cssm/components/header/Component.mobile.js +0 -31
  154. package/esm/components/closer/Component.d.ts +0 -29
  155. package/esm/components/closer/Component.js +0 -27
  156. package/esm/components/closer/index.css +0 -47
  157. package/esm/components/header/Component.desktop.d.ts +0 -18
  158. package/esm/components/header/Component.desktop.js +0 -24
  159. package/esm/components/header/Component.mobile.d.ts +0 -14
  160. package/esm/components/header/Component.mobile.js +0 -22
  161. package/modern/components/closer/Component.d.ts +0 -29
  162. package/modern/components/closer/Component.js +0 -24
  163. package/modern/components/closer/index.css +0 -47
  164. package/modern/components/header/Component.desktop.d.ts +0 -18
  165. package/modern/components/header/Component.desktop.js +0 -21
  166. package/modern/components/header/Component.mobile.d.ts +0 -14
  167. package/modern/components/header/Component.mobile.js +0 -17
@@ -1,53 +1,5 @@
1
- import { FC, ReactNode } from 'react';
2
- type HeaderProps = {
3
- /**
4
- * Контент шапки
5
- */
6
- children?: ReactNode;
7
- /**
8
- * Слот слева
9
- */
10
- leftAddons?: ReactNode;
11
- /**
12
- * Компонент крестика
13
- */
14
- closer?: ReactNode;
15
- /**
16
- * Дополнительный класс
17
- */
18
- className?: string;
19
- /**
20
- * Дополнительный класс для аддонов
21
- */
22
- addonClassName?: string;
23
- /**
24
- * Дополнительный класс для контента
25
- */
26
- contentClassName?: string;
27
- /**
28
- * Заголовок шапки
29
- */
30
- title?: string;
31
- /**
32
- * Выравнивание заголовка
33
- */
34
- align?: 'left' | 'center';
35
- /**
36
- * Обрезать ли заголовок
37
- */
38
- trim?: boolean;
39
- /**
40
- * Фиксирует шапку
41
- */
42
- sticky?: boolean;
43
- /**
44
- * Фоновое изображение
45
- */
46
- imageUrl?: string;
47
- /**
48
- * Идентификатор для систем автоматизированного тестирования
49
- */
50
- dataTestId?: string;
51
- };
1
+ import { FC } from 'react';
2
+ import { NavigationBarProps } from "@alfalab/core-components-navigation-bar";
3
+ type HeaderProps = Omit<NavigationBarProps, 'size' | 'view' | 'parentRef'>;
52
4
  declare const Header: FC<HeaderProps>;
53
5
  export { HeaderProps, Header };
@@ -3,37 +3,43 @@
3
3
  var tslib = require('tslib');
4
4
  var React = require('react');
5
5
  var cn = require('classnames');
6
+ var coreComponentsNavigationBar = require('@alfalab/core-components-navigation-bar/cssm');
6
7
  var Context = require('../../Context.js');
8
+ var ResponsiveContext = require('../../ResponsiveContext.js');
9
+ var desktopStyles = require('./desktop.module.css');
7
10
  var styles = require('./index.module.css');
11
+ var mobileStyles = require('./mobile.module.css');
8
12
  require('@alfalab/core-components-base-modal/cssm');
9
13
 
10
14
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
11
15
 
12
16
  var React__default = /*#__PURE__*/_interopDefaultCompat(React);
13
17
  var cn__default = /*#__PURE__*/_interopDefaultCompat(cn);
18
+ var desktopStyles__default = /*#__PURE__*/_interopDefaultCompat(desktopStyles);
14
19
  var styles__default = /*#__PURE__*/_interopDefaultCompat(styles);
20
+ var mobileStyles__default = /*#__PURE__*/_interopDefaultCompat(mobileStyles);
15
21
 
16
22
  var Header = function (_a) {
17
23
  var _b, _c;
18
- 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, imageUrl = _a.imageUrl, dataTestId = _a.dataTestId;
19
- var _f = React.useContext(Context.ModalContext), headerHighlighted = _f.headerHighlighted, setHasHeader = _f.setHasHeader;
20
- var hasContent = Boolean(title || children);
24
+ var className = _a.className, children = _a.children, contentClassName = _a.contentClassName, title = _a.title, sticky = _a.sticky, _d = _a.hasCloser, hasCloser = _d === void 0 ? true : _d, restProps = tslib.__rest(_a, ["className", "children", "contentClassName", "title", "sticky", "hasCloser"]);
25
+ var _e = React.useContext(Context.ModalContext), setHasHeader = _e.setHasHeader, headerHighlighted = _e.headerHighlighted, parentRef = _e.parentRef, onClose = _e.onClose;
26
+ var _f = React.useContext(ResponsiveContext.ResponsiveContext) || {}, _g = _f.size, size = _g === void 0 ? 's' : _g, _h = _f.view, view = _h === void 0 ? 'desktop' : _h;
21
27
  React.useEffect(function () {
22
28
  setHasHeader(true);
23
29
  }, [setHasHeader]);
24
- return (React__default.default.createElement("div", { className: cn__default.default(styles__default.default.header, className, (_b = {},
25
- _b[styles__default.default.backgroundImage] = imageUrl,
30
+ var hasContent = Boolean(title || children);
31
+ return (React__default.default.createElement(coreComponentsNavigationBar.NavigationBar, tslib.__assign({}, restProps, { parentRef: parentRef, view: view, sticky: sticky, title: title, hasCloser: hasCloser, onClose: onClose, className: cn__default.default(styles__default.default.header, className, (_b = {},
26
32
  _b[styles__default.default.highlighted] = hasContent && sticky && headerHighlighted,
27
33
  _b[styles__default.default.sticky] = sticky,
28
34
  _b[styles__default.default.hasContent] = hasContent,
29
- _b)), "data-test-id": dataTestId, style: tslib.__assign({}, (imageUrl && { backgroundImage: "url(".concat(imageUrl, ")") })) },
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)) },
34
- children,
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
+ _b[desktopStyles__default.default.sticky] = view === 'desktop' && sticky,
36
+ _b[desktopStyles__default.default[size]] = view === 'desktop',
37
+ _b[mobileStyles__default.default.sticky] = view === 'mobile' && sticky,
38
+ _b[mobileStyles__default.default.header] = view === 'mobile',
39
+ _b)), contentClassName: cn__default.default(contentClassName, (_c = {},
40
+ _c[desktopStyles__default.default.content] = view === 'desktop',
41
+ _c[mobileStyles__default.default.content] = view === 'mobile',
42
+ _c)) }), children));
37
43
  };
38
44
 
39
45
  exports.Header = Header;
@@ -11,9 +11,7 @@
11
11
  /* Hard up */
12
12
  } :root {
13
13
  } :root {
14
- --gap-xs: 8px;
15
14
  --gap-s: 12px;
16
- --gap-m: 16px;
17
15
  } :root {
18
16
  --font-family-system: system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Helvetica,
19
17
  sans-serif;
@@ -23,18 +21,20 @@
23
21
  /* sizes */
24
22
 
25
23
  /* paddings */
26
- --side-panel-s-header-paddings: var(--gap-xs) var(--gap-xs) var(--gap-m);
24
+ --side-panel-s-header-paddings: 28px 28px 0;
27
25
 
28
26
  /* scroll */
29
27
 
30
28
  /* desktop */
31
- --side-panel-s-header-desktop-content-paddings: var(--gap-s) var(--gap-m) 0 0;
32
- --side-panel-s-header-desktop-font-size: 22px;
29
+ --side-panel-s-header-desktop-content-paddings: var(--gap-s);
30
+ --side-panel-s-header-desktop-font-size: 20px;
33
31
  --side-panel-s-header-desktop-line-height: 26px;
34
32
  --side-panel-header-desktop-font-weight: bold;
35
33
  --side-panel-header-desktop-font-family: var(--font-family-system);
36
34
 
37
35
  /* mobile */
36
+
37
+ /* paddings */
38
38
  } .content {
39
39
  font-weight: var(--side-panel-header-desktop-font-weight);
40
40
  font-family: var(--side-panel-header-desktop-font-family);
@@ -43,9 +43,7 @@
43
43
  font-size: var(--side-panel-s-header-desktop-font-size);
44
44
  line-height: var(--side-panel-s-header-desktop-line-height);
45
45
  } .s {
46
- padding: var(--side-panel-s-header-paddings)
47
- } .s:not(.hasContent) {
48
- padding-bottom: 0;
49
- } .sticky {
46
+ padding: var(--side-panel-s-header-paddings);
47
+ } .sticky {
50
48
  top: 0;
51
49
  }
@@ -1,6 +1,7 @@
1
1
  :root {
2
2
  } /* deprecated */ :root {
3
3
  --color-light-bg-primary: #fff;
4
+ --color-light-border-secondary: #e7e9eb;
4
5
  } :root {
5
6
  } :root {
6
7
  } :root {
@@ -23,17 +24,16 @@
23
24
 
24
25
  /* scroll */
25
26
  --side-panel-header-highlight-background: var(--color-light-bg-primary);
26
- --side-panel-header-highlight-box-shadow: none;
27
+ --side-panel-header-highlight-box-shadow: 0 1px 0 0 var(--color-light-border-secondary);
27
28
 
28
29
  /* desktop */
29
30
 
30
31
  /* mobile */
32
+
33
+ /* paddings */
31
34
  } .header {
32
35
  width: 100%;
33
36
  box-sizing: border-box;
34
- display: flex;
35
- align-items: stretch;
36
- justify-content: space-between;
37
37
  transition: box-shadow 0.2s ease, background 0.2s ease
38
38
  } .header:not(.hasContent) {
39
39
  pointer-events: none;
@@ -61,12 +61,6 @@
61
61
  pointer-events: all;
62
62
  } .closer {
63
63
  margin-left: auto;
64
- } .left {
65
- justify-content: flex-start;
66
- text-align: left;
67
- } .center {
68
- justify-content: center;
69
- text-align: center;
70
64
  } .right {
71
65
  justify-content: flex-end;
72
66
  text-align: right;
@@ -11,9 +11,9 @@
11
11
  /* Hard up */
12
12
  } :root {
13
13
  } :root {
14
+ --gap-2xs: 4px;
14
15
  --gap-xs: 8px;
15
16
  --gap-s: 12px;
16
- --gap-m: 16px;
17
17
  } :root {
18
18
  --font-family-system: system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Helvetica,
19
19
  sans-serif;
@@ -29,12 +29,16 @@
29
29
  /* desktop */
30
30
 
31
31
  /* mobile */
32
- --side-panel-header-mobile-content-paddings: var(--gap-s) var(--gap-xs) var(--gap-s)
33
- var(--gap-m);
32
+ --side-panel-header-mobile-content-paddings: var(--gap-s) var(--gap-xs);
34
33
  --side-panel-header-mobile-font-size: 18px;
35
34
  --side-panel-header-mobile-line-height: 24px;
36
35
  --side-panel-header-mobile-font-family: var(--font-family-system);
37
36
  --side-panel-header-mobile-font-weight: bold;
37
+
38
+ /* paddings */
39
+ --side-panel-header-mobile-paddings: var(--gap-2xs) var(--gap-xs);
40
+ } .header {
41
+ padding: var(--side-panel-header-mobile-paddings);
38
42
  } .sticky {
39
43
  top: 0;
40
44
  } .content {
package/cssm/desktop.js CHANGED
@@ -17,14 +17,12 @@ require('./components/footer/Component.js');
17
17
  require('./components/footer/index.module.css');
18
18
  require('./components/footer/layout.module.css');
19
19
  require('./components/footer/desktop.module.css');
20
- require('./components/header/Component.desktop.js');
21
- require('@alfalab/icons-glyph/CrossHeavyMIcon');
22
- require('./components/closer/Component.js');
23
- require('@alfalab/core-components-icon-button/cssm');
24
- require('./components/closer/index.module.css');
25
20
  require('./components/header/Component.js');
26
- require('./components/header/index.module.css');
21
+ require('@alfalab/core-components-navigation-bar/cssm');
22
+ require('./ResponsiveContext.js');
27
23
  require('./components/header/desktop.module.css');
24
+ require('./components/header/index.module.css');
25
+ require('./components/header/mobile.module.css');
28
26
  require('./desktop.module.css');
29
27
  require('./transitions.desktop.module.css');
30
28
 
@@ -25,6 +25,8 @@
25
25
  /* desktop */
26
26
 
27
27
  /* mobile */
28
+
29
+ /* paddings */
28
30
  } .s {
29
31
  width: var(--side-panel-s-width);
30
32
  } .hidden {
package/cssm/index.js CHANGED
@@ -5,10 +5,13 @@ var Context = require('./Context.js');
5
5
  require('tslib');
6
6
  require('react');
7
7
  require('@alfalab/core-components-mq/cssm');
8
- require('./components/closer/Component.js');
8
+ require('./components/header/Component.js');
9
9
  require('classnames');
10
- require('@alfalab/core-components-icon-button/cssm');
11
- require('./components/closer/index.module.css');
10
+ require('@alfalab/core-components-navigation-bar/cssm');
11
+ require('./ResponsiveContext.js');
12
+ require('./components/header/desktop.module.css');
13
+ require('./components/header/index.module.css');
14
+ require('./components/header/mobile.module.css');
12
15
  require('@alfalab/core-components-base-modal/cssm');
13
16
  require('./Component.desktop.js');
14
17
  require('react-merge-refs');
@@ -22,11 +25,6 @@ require('./components/footer/Component.js');
22
25
  require('./components/footer/index.module.css');
23
26
  require('./components/footer/layout.module.css');
24
27
  require('./components/footer/desktop.module.css');
25
- require('./components/header/Component.desktop.js');
26
- require('@alfalab/icons-glyph/CrossHeavyMIcon');
27
- require('./components/header/Component.js');
28
- require('./components/header/index.module.css');
29
- require('./components/header/desktop.module.css');
30
28
  require('./desktop.module.css');
31
29
  require('./transitions.desktop.module.css');
32
30
  require('./Component.mobile.js');
@@ -34,9 +32,6 @@ require('./components/content/Component.mobile.js');
34
32
  require('./components/content/mobile.module.css');
35
33
  require('./components/footer/Component.mobile.js');
36
34
  require('./components/footer/mobile.module.css');
37
- require('./components/header/Component.mobile.js');
38
- require('@alfalab/icons-glyph/CrossMIcon');
39
- require('./components/header/mobile.module.css');
40
35
  require('./mobile.module.css');
41
36
  require('./transitions.mobile.module.css');
42
37
 
package/cssm/mobile.js CHANGED
@@ -15,12 +15,10 @@ require('./components/footer/Component.js');
15
15
  require('./components/footer/index.module.css');
16
16
  require('./components/footer/layout.module.css');
17
17
  require('./components/footer/mobile.module.css');
18
- require('./components/header/Component.mobile.js');
19
- require('@alfalab/icons-glyph/CrossMIcon');
20
- require('./components/closer/Component.js');
21
- require('@alfalab/core-components-icon-button/cssm');
22
- require('./components/closer/index.module.css');
23
18
  require('./components/header/Component.js');
19
+ require('@alfalab/core-components-navigation-bar/cssm');
20
+ require('./ResponsiveContext.js');
21
+ require('./components/header/desktop.module.css');
24
22
  require('./components/header/index.module.css');
25
23
  require('./components/header/mobile.module.css');
26
24
  require('./mobile.module.css');
@@ -24,6 +24,8 @@
24
24
  /* desktop */
25
25
 
26
26
  /* mobile */
27
+
28
+ /* paddings */
27
29
  } .component {
28
30
  flex: 1;
29
31
  width: 100%;
@@ -4,12 +4,15 @@ var Component_responsive = require('./Component.responsive.js');
4
4
  require('tslib');
5
5
  require('react');
6
6
  require('@alfalab/core-components-mq/cssm');
7
- require('./components/closer/Component.js');
7
+ require('./components/header/Component.js');
8
8
  require('classnames');
9
- require('@alfalab/core-components-icon-button/cssm');
9
+ require('@alfalab/core-components-navigation-bar/cssm');
10
10
  require('./Context.js');
11
11
  require('@alfalab/core-components-base-modal/cssm');
12
- require('./components/closer/index.module.css');
12
+ require('./ResponsiveContext.js');
13
+ require('./components/header/desktop.module.css');
14
+ require('./components/header/index.module.css');
15
+ require('./components/header/mobile.module.css');
13
16
  require('./Component.desktop.js');
14
17
  require('react-merge-refs');
15
18
  require('@alfalab/core-components-drawer/cssm');
@@ -22,11 +25,6 @@ require('./components/footer/Component.js');
22
25
  require('./components/footer/index.module.css');
23
26
  require('./components/footer/layout.module.css');
24
27
  require('./components/footer/desktop.module.css');
25
- require('./components/header/Component.desktop.js');
26
- require('@alfalab/icons-glyph/CrossHeavyMIcon');
27
- require('./components/header/Component.js');
28
- require('./components/header/index.module.css');
29
- require('./components/header/desktop.module.css');
30
28
  require('./desktop.module.css');
31
29
  require('./transitions.desktop.module.css');
32
30
  require('./Component.mobile.js');
@@ -34,9 +32,6 @@ require('./components/content/Component.mobile.js');
34
32
  require('./components/content/mobile.module.css');
35
33
  require('./components/footer/Component.mobile.js');
36
34
  require('./components/footer/mobile.module.css');
37
- require('./components/header/Component.mobile.js');
38
- require('@alfalab/icons-glyph/CrossMIcon');
39
- require('./components/header/mobile.module.css');
40
35
  require('./mobile.module.css');
41
36
  require('./transitions.mobile.module.css');
42
37
 
@@ -0,0 +1,7 @@
1
+ import { SidePanelResponsiveProps } from "./index";
2
+ type View = 'desktop' | 'mobile';
3
+ type TResponsiveModalContext = {
4
+ view: View;
5
+ size: NonNullable<SidePanelResponsiveProps['size']>;
6
+ } | null;
7
+ export { View, TResponsiveModalContext };
@@ -0,0 +1,2 @@
1
+ 'use strict';
2
+
package/cssm/vars.css CHANGED
@@ -24,4 +24,6 @@
24
24
  /* desktop */
25
25
 
26
26
  /* mobile */
27
+
28
+ /* paddings */
27
29
  }
package/desktop.css CHANGED
@@ -1,4 +1,4 @@
1
- /* hash: 17eix */
1
+ /* hash: fb8hr */
2
2
  :root {
3
3
  } /* deprecated */ :root {
4
4
  } :root {
@@ -26,8 +26,10 @@
26
26
  /* desktop */
27
27
 
28
28
  /* mobile */
29
- } .side-panel__s_f9xj0 {
29
+
30
+ /* paddings */
31
+ } .side-panel__s_1r2o9 {
30
32
  width: var(--side-panel-s-width);
31
- } .side-panel__hidden_f9xj0 {
33
+ } .side-panel__hidden_1r2o9 {
32
34
  overflow-x: hidden;
33
35
  }
package/desktop.js CHANGED
@@ -12,11 +12,9 @@ require('./Context.js');
12
12
  require('@alfalab/core-components-base-modal');
13
13
  require('./components/footer/Component.desktop.js');
14
14
  require('./components/footer/Component.js');
15
- require('./components/header/Component.desktop.js');
16
- require('@alfalab/icons-glyph/CrossHeavyMIcon');
17
- require('./components/closer/Component.js');
18
- require('@alfalab/core-components-icon-button');
19
15
  require('./components/header/Component.js');
16
+ require('@alfalab/core-components-navigation-bar');
17
+ require('./ResponsiveContext.js');
20
18
 
21
19
 
22
20
 
@@ -27,7 +27,7 @@ declare const SidePanelDesktop: React.ForwardRefExoticComponent<BaseModalProps &
27
27
  hasCloser?: boolean | undefined;
28
28
  } & React.RefAttributes<HTMLDivElement>> & {
29
29
  Content: React.FC<import("./components/content/Component.desktop").ContentDesktopProps>;
30
- Header: React.FC<import("./components/header/Component.desktop").HeaderDesktopProps>;
30
+ Header: React.FC<import("./components/header/Component").HeaderProps>;
31
31
  Footer: React.FC<import("./components/footer/Component.desktop").FooterDesktopProps>;
32
32
  };
33
33
  export { SidePanelDesktopProps, SidePanelDesktop };
@@ -1,29 +1,28 @@
1
1
  import { __rest, __assign } from 'tslib';
2
- import React, { forwardRef, useRef, isValidElement, cloneElement } from 'react';
2
+ import React, { forwardRef, useContext, useRef, isValidElement, cloneElement } from 'react';
3
3
  import mergeRefs from 'react-merge-refs';
4
4
  import cn from 'classnames';
5
5
  import { Drawer } from '@alfalab/core-components-drawer/esm';
6
6
  import { ContentDesktop } from './components/content/Component.desktop.js';
7
7
  import { FooterDesktop } from './components/footer/Component.desktop.js';
8
- import { HeaderDesktop } from './components/header/Component.desktop.js';
8
+ import { Header } from './components/header/Component.js';
9
+ import { ResponsiveContext } from './ResponsiveContext.js';
9
10
  import './components/content/Component.js';
10
11
  import './Context.js';
11
12
  import '@alfalab/core-components-base-modal/esm';
12
13
  import './components/footer/Component.js';
13
- import '@alfalab/icons-glyph/CrossHeavyMIcon';
14
- import './components/closer/Component.js';
15
- import '@alfalab/core-components-icon-button/esm';
16
- import './components/header/Component.js';
14
+ import '@alfalab/core-components-navigation-bar/esm';
17
15
 
18
- var styles = {"s":"side-panel__s_f9xj0","hidden":"side-panel__hidden_f9xj0"};
16
+ var styles = {"s":"side-panel__s_1r2o9","hidden":"side-panel__hidden_1r2o9"};
19
17
  require('./desktop.css')
20
18
 
21
- var transitions = {"enterRight":"side-panel__enterRight_1k9je","enterLeft":"side-panel__enterLeft_1k9je","enterActive":"side-panel__enterActive_1k9je","exit":"side-panel__exit_1k9je","exitActiveRight":"side-panel__exitActiveRight_1k9je","exitActiveLeft":"side-panel__exitActiveLeft_1k9je"};
19
+ var transitions = {"enterRight":"side-panel__enterRight_bau9w","enterLeft":"side-panel__enterLeft_bau9w","enterActive":"side-panel__enterActive_bau9w","exit":"side-panel__exit_bau9w","exitActiveRight":"side-panel__exitActiveRight_bau9w","exitActiveLeft":"side-panel__exitActiveLeft_bau9w"};
22
20
  require('./transitions.desktop.css')
23
21
 
24
22
  var SidePanelDesktopComponent = forwardRef(function (_a, ref) {
25
23
  var _b, _c;
26
24
  var _d = _a.size, size = _d === void 0 ? 's' : _d, children = _a.children, className = _a.className, wrapperClassName = _a.wrapperClassName, _e = _a.contentTransitionProps, contentTransitionProps = _e === void 0 ? {} : _e, backdropProps = _a.backdropProps, _f = _a.placement, placement = _f === void 0 ? 'right' : _f, restProps = __rest(_a, ["size", "children", "className", "wrapperClassName", "contentTransitionProps", "backdropProps", "placement"]);
25
+ var responsiveContext = useContext(ResponsiveContext);
27
26
  var modalRef = useRef(null);
28
27
  var enterCn = cn((_b = {},
29
28
  _b[transitions.appearRight] = placement === 'right',
@@ -33,7 +32,8 @@ var SidePanelDesktopComponent = forwardRef(function (_a, ref) {
33
32
  _c[transitions.exitActiveRight] = placement === 'right',
34
33
  _c[transitions.exitActiveLeft] = placement === 'left',
35
34
  _c));
36
- return (React.createElement(Drawer, __assign({}, restProps, { ref: mergeRefs([ref, modalRef]), placement: placement, wrapperClassName: wrapperClassName, className: cn(className, styles[size], styles.hidden), backdropProps: backdropProps, contentTransitionProps: __assign({ classNames: {
35
+ var contextValue = React.useMemo(function () { return ({ size: size, view: 'desktop' }); }, [size]);
36
+ var renderContent = function () { return (React.createElement(Drawer, __assign({}, restProps, { ref: mergeRefs([ref, modalRef]), placement: placement, wrapperClassName: wrapperClassName, className: cn(className, styles[size], styles.hidden), backdropProps: backdropProps, contentTransitionProps: __assign({ classNames: {
37
37
  appear: enterCn,
38
38
  enter: enterCn,
39
39
  appearActive: transitions.enterActive,
@@ -43,11 +43,13 @@ var SidePanelDesktopComponent = forwardRef(function (_a, ref) {
43
43
  exitDone: exitCn,
44
44
  } }, contentTransitionProps) }), React.Children.map(children, function (child) {
45
45
  return isValidElement(child) ? cloneElement(child, { size: size }) : child;
46
- })));
46
+ }))); };
47
+ var renderWithContext = function () { return (React.createElement(ResponsiveContext.Provider, { value: contextValue }, renderContent())); };
48
+ return responsiveContext ? renderContent() : renderWithContext();
47
49
  });
48
50
  var SidePanelDesktop = Object.assign(SidePanelDesktopComponent, {
49
51
  Content: ContentDesktop,
50
- Header: HeaderDesktop,
52
+ Header: Header,
51
53
  Footer: FooterDesktop,
52
54
  });
53
55
 
@@ -16,7 +16,7 @@ declare const SidePanelMobile: React.ForwardRefExoticComponent<BaseModalProps &
16
16
  hasCloser?: boolean | undefined;
17
17
  } & React.RefAttributes<HTMLDivElement>> & {
18
18
  Content: React.FC<import("./components/content/Component").ContentProps>;
19
- Header: React.FC<import("./components/header/Component.mobile").HeaderMobileProps>;
19
+ Header: React.FC<import("./components/header/Component").HeaderProps>;
20
20
  Footer: React.FC<import("./components/footer/Component").FooterProps>;
21
21
  };
22
22
  export { SidePanelMobileProps, SidePanelMobile };
@@ -1,31 +1,33 @@
1
1
  import { __rest, __assign } from 'tslib';
2
- import React, { forwardRef } from 'react';
2
+ import React, { forwardRef, useContext } from 'react';
3
3
  import cn from 'classnames';
4
4
  import { BaseModal } from '@alfalab/core-components-base-modal/esm';
5
5
  import { ContentMobile } from './components/content/Component.mobile.js';
6
6
  import { FooterMobile } from './components/footer/Component.mobile.js';
7
- import { HeaderMobile } from './components/header/Component.mobile.js';
7
+ import { Header } from './components/header/Component.js';
8
+ import { ResponsiveContext } from './ResponsiveContext.js';
8
9
  import './components/content/Component.js';
9
10
  import './Context.js';
10
11
  import './components/footer/Component.js';
11
- import '@alfalab/icons-glyph/CrossMIcon';
12
- import './components/closer/Component.js';
13
- import '@alfalab/core-components-icon-button/esm';
14
- import './components/header/Component.js';
12
+ import '@alfalab/core-components-navigation-bar/esm';
15
13
 
16
- var styles = {"component":"side-panel__component_1sokx"};
14
+ var styles = {"component":"side-panel__component_1xf0f"};
17
15
  require('./mobile.css')
18
16
 
19
- var transitions = {"appear":"side-panel__appear_zjefa","enter":"side-panel__enter_zjefa","appearActive":"side-panel__appearActive_zjefa","enterActive":"side-panel__enterActive_zjefa","exit":"side-panel__exit_zjefa","exitActive":"side-panel__exitActive_zjefa","exitDone":"side-panel__exitDone_zjefa"};
17
+ var transitions = {"appear":"side-panel__appear_1334h","enter":"side-panel__enter_1334h","appearActive":"side-panel__appearActive_1334h","enterActive":"side-panel__enterActive_1334h","exit":"side-panel__exit_1334h","exitActive":"side-panel__exitActive_1334h","exitDone":"side-panel__exitDone_1334h"};
20
18
  require('./transitions.mobile.css')
21
19
 
20
+ var contextValue = { size: 's', view: 'mobile' };
22
21
  var SidePanelMobileComponent = forwardRef(function (_a, ref) {
23
22
  var children = _a.children, className = _a.className, transitionProps = _a.transitionProps, restProps = __rest(_a, ["children", "className", "transitionProps"]);
24
- return (React.createElement(BaseModal, __assign({}, restProps, { ref: ref, transitionProps: __assign({ classNames: transitions }, transitionProps), className: cn(className, styles.component) }), children));
23
+ var responsiveContext = useContext(ResponsiveContext);
24
+ var renderContent = function () { return (React.createElement(BaseModal, __assign({}, restProps, { ref: ref, transitionProps: __assign({ classNames: transitions }, transitionProps), className: cn(className, styles.component) }), children)); };
25
+ var renderWithContext = function () { return (React.createElement(ResponsiveContext.Provider, { value: contextValue }, renderContent())); };
26
+ return responsiveContext ? renderContent() : renderWithContext();
25
27
  });
26
28
  var SidePanelMobile = Object.assign(SidePanelMobileComponent, {
27
29
  Content: ContentMobile,
28
- Header: HeaderMobile,
30
+ Header: Header,
29
31
  Footer: FooterMobile,
30
32
  });
31
33
 
@@ -44,9 +44,8 @@ declare const SidePanelResponsive: React.ForwardRefExoticComponent<BaseModalProp
44
44
  */
45
45
  defaultMatchMediaValue?: boolean | (() => boolean) | undefined;
46
46
  } & React.RefAttributes<HTMLDivElement>> & {
47
- Header: React.FC<import("./components/header/Component.desktop").HeaderDesktopProps> | React.FC<import("./components/header/Component.mobile").HeaderMobileProps>;
47
+ Header: React.FC<import("./components/header/Component").HeaderProps>;
48
48
  Content: React.FC<import("./components/content/Component").ContentProps> | React.FC<import("./components/content/Component.desktop").ContentDesktopProps>;
49
49
  Footer: React.FC<import("./components/footer/Component").FooterProps> | React.FC<import("./components/footer/Component.desktop").FooterDesktopProps>;
50
- Closer: React.FC<import("./components/closer/Component").CloserProps>;
51
50
  };
52
51
  export { SidePanelResponsiveProps, SidePanelResponsive };
@@ -1,11 +1,12 @@
1
1
  import { __rest, __assign } from 'tslib';
2
2
  import React, { forwardRef, useMemo, useContext } from 'react';
3
3
  import { useMatchMedia } from '@alfalab/core-components-mq/esm';
4
- import { Closer } from './components/closer/Component.js';
4
+ import { Header } from './components/header/Component.js';
5
5
  import { SidePanelDesktop } from './Component.desktop.js';
6
6
  import { SidePanelMobile } from './Component.mobile.js';
7
+ import { ResponsiveContext } from './ResponsiveContext.js';
7
8
  import 'classnames';
8
- import '@alfalab/core-components-icon-button/esm';
9
+ import '@alfalab/core-components-navigation-bar/esm';
9
10
  import './Context.js';
10
11
  import '@alfalab/core-components-base-modal/esm';
11
12
  import 'react-merge-refs';
@@ -14,44 +15,34 @@ import './components/content/Component.desktop.js';
14
15
  import './components/content/Component.js';
15
16
  import './components/footer/Component.desktop.js';
16
17
  import './components/footer/Component.js';
17
- import './components/header/Component.desktop.js';
18
- import '@alfalab/icons-glyph/CrossHeavyMIcon';
19
- import './components/header/Component.js';
20
18
  import './components/content/Component.mobile.js';
21
19
  import './components/footer/Component.mobile.js';
22
- import './components/header/Component.mobile.js';
23
- import '@alfalab/icons-glyph/CrossMIcon';
24
20
 
25
21
  var isClient = function () { return typeof window !== 'undefined'; };
26
22
 
27
- // eslint-disable-next-line @typescript-eslint/no-redeclare
28
- var ResponsiveContext = React.createContext({
29
- view: 'desktop',
30
- });
31
23
  function createResponsive(desktop, mobile) {
32
24
  function ResponsiveChild(props) {
33
- var view = useContext(ResponsiveContext).view;
25
+ var _a = (useContext(ResponsiveContext) || {}).view, view = _a === void 0 ? 'desktop' : _a;
34
26
  var Child = view === 'desktop' ? desktop : mobile;
35
27
  return React.createElement(Child, __assign({}, props));
36
28
  }
37
29
  return ResponsiveChild;
38
30
  }
39
31
  var SidePanelResponsiveComponent = forwardRef(function (_a, ref) {
40
- var children = _a.children, _b = _a.breakpoint, breakpoint = _b === void 0 ? 1024 : _b, defaultMatchMediaValue = _a.defaultMatchMediaValue, restProps = __rest(_a, ["children", "breakpoint", "defaultMatchMediaValue"]);
32
+ var children = _a.children, _b = _a.breakpoint, breakpoint = _b === void 0 ? 1024 : _b, _c = _a.size, size = _c === void 0 ? 's' : _c, defaultMatchMediaValue = _a.defaultMatchMediaValue, restProps = __rest(_a, ["children", "breakpoint", "size", "defaultMatchMediaValue"]);
41
33
  var query = "(min-width: ".concat(breakpoint, "px)");
42
34
  var getDefaultValue = function () { return (isClient() ? window.matchMedia(query).matches : false); };
43
35
  var isDesktop = useMatchMedia(query, defaultMatchMediaValue !== null && defaultMatchMediaValue !== void 0 ? defaultMatchMediaValue : getDefaultValue)[0];
44
36
  var view = isDesktop ? 'desktop' : 'mobile';
45
- var contextValue = useMemo(function () { return ({ view: view }); }, [view]);
37
+ var contextValue = useMemo(function () { return ({ view: view, size: size }); }, [view, size]);
46
38
  var Component = isDesktop ? SidePanelDesktop : SidePanelMobile;
47
39
  return (React.createElement(ResponsiveContext.Provider, { value: contextValue },
48
- React.createElement(Component, __assign({ ref: ref }, restProps), children)));
40
+ React.createElement(Component, __assign({ ref: ref, size: size }, restProps), children)));
49
41
  });
50
42
  var SidePanelResponsive = Object.assign(SidePanelResponsiveComponent, {
51
- Header: createResponsive(SidePanelDesktop.Header, SidePanelMobile.Header),
43
+ Header: Header,
52
44
  Content: createResponsive(SidePanelDesktop.Content, SidePanelMobile.Content),
53
45
  Footer: createResponsive(SidePanelDesktop.Footer, SidePanelMobile.Footer),
54
- Closer: Closer,
55
46
  });
56
47
 
57
48
  export { SidePanelResponsive };