@alfalab/core-components-navigation-bar-private 1.0.0 → 1.1.0-snapshot-92b8690

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 (85) hide show
  1. package/components/back-arrow-addon/index.css +11 -11
  2. package/components/back-arrow-addon/index.module.css.js +1 -1
  3. package/components/back-arrow-addon/index.module.css.js.map +1 -1
  4. package/components/closer/default.css +2 -2
  5. package/components/closer/default.module.css.js +1 -1
  6. package/components/closer/index.css +4 -4
  7. package/components/closer/index.module.css.js +1 -1
  8. package/components/closer/index.module.css.js.map +1 -1
  9. package/components/closer/inverted.css +2 -2
  10. package/components/closer/inverted.module.css.js +1 -1
  11. package/dynamic-mixins/Component.d.ts +3 -0
  12. package/dynamic-mixins/Component.js +165 -0
  13. package/dynamic-mixins/Component.js.map +1 -0
  14. package/dynamic-mixins/components/back-arrow-addon/Component.d.ts +24 -0
  15. package/dynamic-mixins/components/back-arrow-addon/Component.js +34 -0
  16. package/dynamic-mixins/components/back-arrow-addon/Component.js.map +1 -0
  17. package/dynamic-mixins/components/back-arrow-addon/index.css +64 -0
  18. package/dynamic-mixins/components/back-arrow-addon/index.d.ts +1 -0
  19. package/dynamic-mixins/components/back-arrow-addon/index.js +10 -0
  20. package/dynamic-mixins/components/back-arrow-addon/index.js.map +1 -0
  21. package/dynamic-mixins/components/back-arrow-addon/index.module.css.js +8 -0
  22. package/dynamic-mixins/components/back-arrow-addon/index.module.css.js.map +1 -0
  23. package/dynamic-mixins/components/closer/Component.d.ts +37 -0
  24. package/dynamic-mixins/components/closer/Component.js +39 -0
  25. package/dynamic-mixins/components/closer/Component.js.map +1 -0
  26. package/dynamic-mixins/components/closer/default.css +19 -0
  27. package/dynamic-mixins/components/closer/default.module.css.js +8 -0
  28. package/dynamic-mixins/components/closer/default.module.css.js.map +1 -0
  29. package/dynamic-mixins/components/closer/index.css +21 -0
  30. package/dynamic-mixins/components/closer/index.d.ts +1 -0
  31. package/dynamic-mixins/components/closer/index.js +10 -0
  32. package/dynamic-mixins/components/closer/index.js.map +1 -0
  33. package/dynamic-mixins/components/closer/index.module.css.js +8 -0
  34. package/dynamic-mixins/components/closer/index.module.css.js.map +1 -0
  35. package/dynamic-mixins/components/closer/inverted.css +20 -0
  36. package/dynamic-mixins/components/closer/inverted.module.css.js +8 -0
  37. package/dynamic-mixins/components/closer/inverted.module.css.js.map +1 -0
  38. package/dynamic-mixins/index.css +94 -0
  39. package/dynamic-mixins/index.d.ts +2 -0
  40. package/dynamic-mixins/index.js +10 -0
  41. package/dynamic-mixins/index.js.map +1 -0
  42. package/dynamic-mixins/index.module.css.js +8 -0
  43. package/dynamic-mixins/index.module.css.js.map +1 -0
  44. package/dynamic-mixins/shared/index.d.ts +2 -0
  45. package/dynamic-mixins/shared/index.js +12 -0
  46. package/dynamic-mixins/shared/index.js.map +1 -0
  47. package/dynamic-mixins/types.d.ts +131 -0
  48. package/dynamic-mixins/types.js +3 -0
  49. package/dynamic-mixins/types.js.map +1 -0
  50. package/esm/components/back-arrow-addon/index.css +11 -11
  51. package/esm/components/back-arrow-addon/index.module.css.js +1 -1
  52. package/esm/components/back-arrow-addon/index.module.css.js.map +1 -1
  53. package/esm/components/closer/default.css +2 -2
  54. package/esm/components/closer/default.module.css.js +1 -1
  55. package/esm/components/closer/index.css +4 -4
  56. package/esm/components/closer/index.module.css.js +1 -1
  57. package/esm/components/closer/index.module.css.js.map +1 -1
  58. package/esm/components/closer/inverted.css +2 -2
  59. package/esm/components/closer/inverted.module.css.js +1 -1
  60. package/esm/index.css +26 -26
  61. package/esm/index.module.css.js +1 -1
  62. package/esm/index.module.css.js.map +1 -1
  63. package/index.css +26 -26
  64. package/index.module.css.js +1 -1
  65. package/index.module.css.js.map +1 -1
  66. package/modern/components/back-arrow-addon/index.css +11 -11
  67. package/modern/components/back-arrow-addon/index.module.css.js +1 -1
  68. package/modern/components/back-arrow-addon/index.module.css.js.map +1 -1
  69. package/modern/components/closer/default.css +2 -2
  70. package/modern/components/closer/default.module.css.js +1 -1
  71. package/modern/components/closer/index.css +4 -4
  72. package/modern/components/closer/index.module.css.js +1 -1
  73. package/modern/components/closer/index.module.css.js.map +1 -1
  74. package/modern/components/closer/inverted.css +2 -2
  75. package/modern/components/closer/inverted.module.css.js +1 -1
  76. package/modern/index.css +26 -26
  77. package/modern/index.module.css.js +1 -1
  78. package/modern/index.module.css.js.map +1 -1
  79. package/moderncssm/components/closer/index.module.css +2 -0
  80. package/moderncssm/index.module.css +2 -0
  81. package/package.json +7 -7
  82. package/src/components/back-arrow-addon/index.module.css +1 -1
  83. package/src/components/closer/index.module.css +1 -1
  84. package/src/index.module.css +1 -1
  85. package/src/vars.css +1 -1
@@ -17,48 +17,48 @@
17
17
  --color-static-monochrome-white-4: rgba(255, 255, 255, 0.04);
18
18
  } :root {
19
19
  --navigation-bar-back-arrow-mobile-fill: var(--color-light-neutral-translucent-700);
20
- } .navigation-bar-private__component_1phgq {
20
+ } .navigation-bar-private__component_1pf72 {
21
21
  height: 100%;
22
22
  background: var(--color-static-monochrome-white-4);
23
23
  -webkit-backdrop-filter: blur(10px);
24
24
  backdrop-filter: blur(10px);
25
25
  border-radius: var(--border-radius-pill);
26
26
  min-width: 48px
27
- } .navigation-bar-private__component_1phgq svg > path {
27
+ } .navigation-bar-private__component_1pf72 svg > path {
28
28
  transition: fill 0.2s ease;
29
29
  fill: var(--color-light-neutral-translucent-1300);
30
- } .navigation-bar-private__component_1phgq:hover svg > path {
30
+ } .navigation-bar-private__component_1pf72:hover svg > path {
31
31
  fill: var(--color-light-neutral-translucent-1300-hover);
32
- } .navigation-bar-private__component_1phgq:active svg > path {
32
+ } .navigation-bar-private__component_1pf72:active svg > path {
33
33
  fill: var(--color-light-neutral-translucent-1300-press);
34
- } .navigation-bar-private__mobileComponent_1phgq {
34
+ } .navigation-bar-private__mobileComponent_1pf72 {
35
35
  height: 32px;
36
36
  min-width: 32px;
37
37
  margin: var(--gap-0) var(--gap-8);
38
38
  -webkit-backdrop-filter: none;
39
39
  backdrop-filter: none;
40
40
  background: none;
41
- } .navigation-bar-private__flex_1phgq {
41
+ } .navigation-bar-private__flex_1pf72 {
42
42
  display: flex;
43
43
  align-items: center;
44
- } .navigation-bar-private__iconWrapper_1phgq {
44
+ } .navigation-bar-private__iconWrapper_1pf72 {
45
45
  display: inline-flex;
46
46
  align-items: center;
47
47
  justify-content: center;
48
48
  height: 48px;
49
49
  margin: var(--gap-0) var(--gap-8) var(--gap-0) var(--gap-12);
50
50
  border-radius: var(--border-radius-circle)
51
- } .navigation-bar-private__iconWrapper_1phgq + .navigation-bar-private__text_1phgq {
51
+ } .navigation-bar-private__iconWrapper_1pf72 + .navigation-bar-private__text_1pf72 {
52
52
  margin-right: var(--gap-12);
53
- } .navigation-bar-private__mobileWrapper_1phgq {
53
+ } .navigation-bar-private__mobileWrapper_1pf72 {
54
54
  width: 32px;
55
55
  height: 32px;
56
56
  background: var(--color-light-neutral-translucent-100);
57
57
  -webkit-backdrop-filter: blur(10px);
58
58
  backdrop-filter: blur(10px);
59
59
  margin: var(--gap-0)
60
- } .navigation-bar-private__mobileWrapper_1phgq + .navigation-bar-private__text_1phgq {
60
+ } .navigation-bar-private__mobileWrapper_1pf72 + .navigation-bar-private__text_1pf72 {
61
61
  margin: var(--gap-0) var(--gap-12) var(--gap-0) var(--gap-8);
62
- } .navigation-bar-private__mobileWrapper_1phgq svg > path {
62
+ } .navigation-bar-private__mobileWrapper_1pf72 svg > path {
63
63
  fill: var(--navigation-bar-back-arrow-mobile-fill);
64
64
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  require('./index.css');
4
4
 
5
- var styles = {"component":"navigation-bar-private__component_1phgq","mobileComponent":"navigation-bar-private__mobileComponent_1phgq","flex":"navigation-bar-private__flex_1phgq","iconWrapper":"navigation-bar-private__iconWrapper_1phgq","text":"navigation-bar-private__text_1phgq","mobileWrapper":"navigation-bar-private__mobileWrapper_1phgq"};
5
+ var styles = {"component":"navigation-bar-private__component_1pf72","mobileComponent":"navigation-bar-private__mobileComponent_1pf72","flex":"navigation-bar-private__flex_1pf72","iconWrapper":"navigation-bar-private__iconWrapper_1pf72","text":"navigation-bar-private__text_1pf72","mobileWrapper":"navigation-bar-private__mobileWrapper_1pf72"};
6
6
 
7
7
  module.exports = styles;
8
8
  //# sourceMappingURL=index.module.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.module.css.js","sources":["../../src/components/back-arrow-addon/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/index.css';\n@import '@alfalab/core-components-vars/src/colors-monochrome.css';\n@import '../../vars.css';\n\n.component {\n height: 100%;\n background: var(--color-static-monochrome-white-4);\n backdrop-filter: blur(10px);\n border-radius: var(--border-radius-pill);\n min-width: 48px;\n\n & svg > path {\n transition: fill 0.2s ease;\n fill: var(--color-light-neutral-translucent-1300);\n }\n\n &:hover {\n & svg > path {\n fill: var(--color-light-neutral-translucent-1300-hover);\n }\n }\n\n &:active {\n & svg > path {\n fill: var(--color-light-neutral-translucent-1300-press);\n }\n }\n}\n\n.mobileComponent {\n height: 32px;\n min-width: 32px;\n margin: var(--gap-0) var(--gap-8);\n backdrop-filter: none;\n background: none;\n}\n\n.flex {\n display: flex;\n align-items: center;\n}\n\n.iconWrapper {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n height: 48px;\n margin: var(--gap-0) var(--gap-8) var(--gap-0) var(--gap-12);\n border-radius: var(--border-radius-circle);\n\n & + .text {\n margin-right: var(--gap-12);\n }\n}\n\n.mobileWrapper {\n width: 32px;\n height: 32px;\n background: var(--color-light-neutral-translucent-100);\n backdrop-filter: blur(10px);\n margin: var(--gap-0);\n\n & + .text {\n margin: var(--gap-0) var(--gap-12) var(--gap-0) var(--gap-8);\n }\n\n & svg > path {\n fill: var(--navigation-bar-back-arrow-mobile-fill);\n }\n}\n"],"names":[],"mappings":";;;;AAEgB,aAAe,CAAC,WAAW,CAAC,yCAAyC,CAAC,iBAAiB,CAAC,+CAA+C,CAAC,MAAM,CAAC,oCAAoC,CAAC,aAAa,CAAC,2CAA2C,CAAC,MAAM,CAAC,oCAAoC,CAAC,eAAe,CAAC,6CAA6C,CAAC;;;;"}
1
+ {"version":3,"file":"index.module.css.js","sources":["../../src/components/back-arrow-addon/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/no-dynamic-mixins-index.css';\n@import '@alfalab/core-components-vars/src/colors-monochrome.css';\n@import '../../vars.css';\n\n.component {\n height: 100%;\n background: var(--color-static-monochrome-white-4);\n backdrop-filter: blur(10px);\n border-radius: var(--border-radius-pill);\n min-width: 48px;\n\n & svg > path {\n transition: fill 0.2s ease;\n fill: var(--color-light-neutral-translucent-1300);\n }\n\n &:hover {\n & svg > path {\n fill: var(--color-light-neutral-translucent-1300-hover);\n }\n }\n\n &:active {\n & svg > path {\n fill: var(--color-light-neutral-translucent-1300-press);\n }\n }\n}\n\n.mobileComponent {\n height: 32px;\n min-width: 32px;\n margin: var(--gap-0) var(--gap-8);\n backdrop-filter: none;\n background: none;\n}\n\n.flex {\n display: flex;\n align-items: center;\n}\n\n.iconWrapper {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n height: 48px;\n margin: var(--gap-0) var(--gap-8) var(--gap-0) var(--gap-12);\n border-radius: var(--border-radius-circle);\n\n & + .text {\n margin-right: var(--gap-12);\n }\n}\n\n.mobileWrapper {\n width: 32px;\n height: 32px;\n background: var(--color-light-neutral-translucent-100);\n backdrop-filter: blur(10px);\n margin: var(--gap-0);\n\n & + .text {\n margin: var(--gap-0) var(--gap-12) var(--gap-0) var(--gap-8);\n }\n\n & svg > path {\n fill: var(--navigation-bar-back-arrow-mobile-fill);\n }\n}\n"],"names":[],"mappings":";;;;AAEgB,aAAe,CAAC,WAAW,CAAC,yCAAyC,CAAC,iBAAiB,CAAC,+CAA+C,CAAC,MAAM,CAAC,oCAAoC,CAAC,aAAa,CAAC,2CAA2C,CAAC,MAAM,CAAC,oCAAoC,CAAC,eAAe,CAAC,6CAA6C,CAAC;;;;"}
@@ -9,11 +9,11 @@
9
9
  :root {
10
10
  --navigation-bar-closer-mobile-color: var(--color-light-neutral-translucent-700);
11
11
  }
12
- .navigation-bar-private__button_128e4 {
12
+ .navigation-bar-private__button_1e98c {
13
13
  background: var(--color-light-monochrome-white-4);
14
14
  color: var(--color-light-neutral-translucent-1300)
15
15
  }
16
- .navigation-bar-private__button_128e4.navigation-bar-private__mobile_128e4 {
16
+ .navigation-bar-private__button_1e98c.navigation-bar-private__mobile_1e98c {
17
17
  background: var(--color-light-neutral-translucent-100);
18
18
  color: var(--navigation-bar-closer-mobile-color);
19
19
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  require('./default.css');
4
4
 
5
- var defaultColors = {"button":"navigation-bar-private__button_128e4","mobile":"navigation-bar-private__mobile_128e4"};
5
+ var defaultColors = {"button":"navigation-bar-private__button_1e98c","mobile":"navigation-bar-private__mobile_1e98c"};
6
6
 
7
7
  module.exports = defaultColors;
8
8
  //# sourceMappingURL=default.module.css.js.map
@@ -2,7 +2,7 @@
2
2
  --border-radius-circle: 50%;
3
3
  } :root {
4
4
  --gap-0: 0px;
5
- } .navigation-bar-private__closer_1ndbv {
5
+ } .navigation-bar-private__closer_gtr9c {
6
6
  flex-shrink: 0;
7
7
  width: 48px;
8
8
  height: 48px;
@@ -10,12 +10,12 @@
10
10
  display: flex;
11
11
  align-items: center;
12
12
  justify-content: center;
13
- } .navigation-bar-private__button_1ndbv {
13
+ } .navigation-bar-private__button_gtr9c {
14
14
  -webkit-backdrop-filter: blur(10px);
15
15
  backdrop-filter: blur(10px);
16
- } .navigation-bar-private__button_1ndbv.navigation-bar-private__button_1ndbv {
16
+ } .navigation-bar-private__button_gtr9c.navigation-bar-private__button_gtr9c {
17
17
  border-radius: var(--border-radius-circle);
18
- } .navigation-bar-private__sticky_1ndbv {
18
+ } .navigation-bar-private__sticky_gtr9c {
19
19
  position: sticky;
20
20
  top: var(--gap-0);
21
21
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  require('./index.css');
4
4
 
5
- var styles = {"closer":"navigation-bar-private__closer_1ndbv","button":"navigation-bar-private__button_1ndbv","sticky":"navigation-bar-private__sticky_1ndbv"};
5
+ var styles = {"closer":"navigation-bar-private__closer_gtr9c","button":"navigation-bar-private__button_gtr9c","sticky":"navigation-bar-private__sticky_gtr9c"};
6
6
 
7
7
  module.exports = styles;
8
8
  //# sourceMappingURL=index.module.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.module.css.js","sources":["../../src/components/closer/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/index.css';\n\n.closer {\n flex-shrink: 0;\n width: 48px;\n height: 48px;\n margin-left: auto;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.button {\n backdrop-filter: blur(10px);\n}\n\n.button.button {\n border-radius: var(--border-radius-circle);\n}\n\n.sticky {\n position: sticky;\n top: var(--gap-0);\n}\n"],"names":[],"mappings":";;;;AAEgB,aAAe,CAAC,QAAQ,CAAC,sCAAsC,CAAC,QAAQ,CAAC,sCAAsC,CAAC,QAAQ,CAAC,sCAAsC,CAAC;;;;"}
1
+ {"version":3,"file":"index.module.css.js","sources":["../../src/components/closer/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/no-dynamic-mixins-index.css';\n\n.closer {\n flex-shrink: 0;\n width: 48px;\n height: 48px;\n margin-left: auto;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.button {\n backdrop-filter: blur(10px);\n}\n\n.button.button {\n border-radius: var(--border-radius-circle);\n}\n\n.sticky {\n position: sticky;\n top: var(--gap-0);\n}\n"],"names":[],"mappings":";;;;AAEgB,aAAe,CAAC,QAAQ,CAAC,sCAAsC,CAAC,QAAQ,CAAC,sCAAsC,CAAC,QAAQ,CAAC,sCAAsC,CAAC;;;;"}
@@ -10,11 +10,11 @@
10
10
  --color-light-neutral-translucent-700-inverted
11
11
  );
12
12
  }
13
- .navigation-bar-private__button_1p8zk {
13
+ .navigation-bar-private__button_1y94b {
14
14
  background: var(--color-light-monochrome-white-4-inverted);
15
15
  color: var(--color-light-neutral-translucent-1300-inverted)
16
16
  }
17
- .navigation-bar-private__button_1p8zk.navigation-bar-private__mobile_1p8zk {
17
+ .navigation-bar-private__button_1y94b.navigation-bar-private__mobile_1y94b {
18
18
  background: var(--color-light-neutral-translucent-100-inverted);
19
19
  color: var(--navigation-bar-closer-mobile-color-inverted);
20
20
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  require('./inverted.css');
4
4
 
5
- var invertedColors = {"button":"navigation-bar-private__button_1p8zk","mobile":"navigation-bar-private__mobile_1p8zk"};
5
+ var invertedColors = {"button":"navigation-bar-private__button_1y94b","mobile":"navigation-bar-private__mobile_1y94b"};
6
6
 
7
7
  module.exports = invertedColors;
8
8
  //# sourceMappingURL=inverted.module.css.js.map
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ import type { NavigationBarPrivateProps } from './types';
3
+ export declare const NavigationBarPrivate: React.ForwardRefExoticComponent<NavigationBarPrivateProps & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,165 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var tslib = require('tslib');
6
+ var React = require('react');
7
+ var mergeRefs = require('react-merge-refs');
8
+ var cn = require('classnames');
9
+ var dynamicMixins = require('@alfalab/core-components-shared/dynamic-mixins');
10
+ var hooks = require('@alfalab/hooks');
11
+ var Component = require('./components/back-arrow-addon/Component.js');
12
+ var Component$1 = require('./components/closer/Component.js');
13
+ var index_module = require('./index.module.css.js');
14
+
15
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
16
+
17
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
18
+ var mergeRefs__default = /*#__PURE__*/_interopDefaultCompat(mergeRefs);
19
+ var cn__default = /*#__PURE__*/_interopDefaultCompat(cn);
20
+
21
+ var ADDONS_HEIGHT = 48;
22
+ var NavigationBarPrivate = React.forwardRef(function (_a, ref) {
23
+ var _b, _c, _d;
24
+ var addonClassName = _a.addonClassName, className = _a.className, contentClassName = _a.contentClassName, closerClassName = _a.closerClassName, leftAddons = _a.leftAddons, rightAddons = _a.rightAddons, bottomAddons = _a.bottomAddons, bottomAddonsClassName = _a.bottomAddonsClassName, children = _a.children, _e = _a.align, align = _e === void 0 ? 'left' : _e, _f = _a.trim, trim = _f === void 0 ? true : _f, title = _a.title, _g = _a.titleSize, titleSize = _g === void 0 ? 'default' : _g, subtitle = _a.subtitle, hasCloser = _a.hasCloser, _h = _a.closerProps, closerProps = _h === void 0 ? {} : _h, hasBackButton = _a.hasBackButton, backButtonClassName = _a.backButtonClassName, backButtonProps = _a.backButtonProps, dataTestId = _a.dataTestId, imageUrl = _a.imageUrl, closerIcon = _a.closerIcon, onClose = _a.onClose, view = _a.view, scrollableParentRef = _a.scrollableParentRef, sticky = _a.sticky, onBack = _a.onBack, dataName = _a.dataName, titleClassName = _a.titleClassName, titleRef = _a.titleRef;
25
+ var _j = React.useState(0), scrollTop = _j[0], setScrollTop = _j[1];
26
+ var _k = React.useState({ left: 0, right: 0 }), titleMargin = _k[0], setTitleMargin = _k[1];
27
+ var bottomContentRef = React.useRef(null);
28
+ var headerRef = React.useRef(null);
29
+ var mainLinePaddingTopRef = React.useRef('0px');
30
+ var leftAddonsRef = React.useRef(null);
31
+ var rightAddonsRef = React.useRef(null);
32
+ var compactTitle = view === 'mobile' && titleSize === 'compact';
33
+ var hasLeftPart = Boolean(leftAddons || hasBackButton);
34
+ var hasRightPart = Boolean(rightAddons || hasCloser);
35
+ var hasContent = Boolean(title || children);
36
+ var withAnimation = Boolean(view === 'mobile' && hasLeftPart && sticky && !compactTitle);
37
+ var showContentOnTop = hasContent && (compactTitle || !hasLeftPart);
38
+ var showContentOnBot = hasContent && !compactTitle && hasLeftPart;
39
+ var showStaticContentOnTop = !withAnimation && showContentOnTop;
40
+ var showStaticContentOnBot = !withAnimation && showContentOnBot;
41
+ var showAnimatedContentOnTop = withAnimation && showContentOnBot && scrollTop > ADDONS_HEIGHT;
42
+ var showAnimatedContentOnBot = withAnimation && showContentOnBot;
43
+ var headerPaddingTop = mainLinePaddingTopRef.current;
44
+ hooks.useLayoutEffect_SAFE_FOR_SSR(function () {
45
+ var _a, _b;
46
+ if (align === 'center' && (showStaticContentOnTop || showAnimatedContentOnTop)) {
47
+ var leftAddonsWidth = ((_a = leftAddonsRef.current) === null || _a === void 0 ? void 0 : _a.offsetWidth) || 0;
48
+ var rightAddonsWidth = ((_b = rightAddonsRef.current) === null || _b === void 0 ? void 0 : _b.offsetWidth) || 0;
49
+ var marginSize_1 = Math.abs(rightAddonsWidth - leftAddonsWidth);
50
+ var shouldAddLeftMargin_1 = rightAddonsWidth - leftAddonsWidth > 0;
51
+ setTitleMargin(function (prev) {
52
+ var newState = shouldAddLeftMargin_1
53
+ ? { left: marginSize_1, right: 0 }
54
+ : { left: 0, right: marginSize_1 };
55
+ var isStateChanged = prev.left !== newState.left || prev.right !== newState.right;
56
+ return isStateChanged ? newState : prev;
57
+ });
58
+ }
59
+ }, [
60
+ align,
61
+ showStaticContentOnTop,
62
+ showAnimatedContentOnTop,
63
+ leftAddons,
64
+ rightAddons,
65
+ hasBackButton,
66
+ hasCloser,
67
+ ]);
68
+ React.useEffect(function () {
69
+ var parent = scrollableParentRef === null || scrollableParentRef === void 0 ? void 0 : scrollableParentRef.current;
70
+ var handleScroll = function (ev) {
71
+ var divElement = ev.target;
72
+ setScrollTop(divElement.scrollTop);
73
+ };
74
+ if (withAnimation && headerRef.current) {
75
+ mainLinePaddingTopRef.current = getComputedStyle(headerRef.current).paddingTop;
76
+ }
77
+ if (withAnimation && parent) {
78
+ parent.addEventListener('scroll', handleScroll);
79
+ }
80
+ return function () { return parent === null || parent === void 0 ? void 0 : parent.removeEventListener('scroll', handleScroll); };
81
+ }, [scrollableParentRef, withAnimation]);
82
+ var renderBackButton = function () {
83
+ var textOpacity = 1;
84
+ if (withAnimation) {
85
+ var height = hasContent ? ADDONS_HEIGHT : ADDONS_HEIGHT / 2;
86
+ textOpacity = Math.max(0, 1 - scrollTop / height);
87
+ }
88
+ else if (compactTitle) {
89
+ textOpacity = 0;
90
+ }
91
+ return (React__default.default.createElement("div", { className: cn__default.default(index_module.addon, backButtonClassName) },
92
+ React__default.default.createElement(Component.BackArrowAddon, tslib.__assign({ "data-test-id": dynamicMixins.getDataTestId(dataTestId, 'back-button') }, backButtonProps, { textOpacity: textOpacity, view: view, onClick: onBack }))));
93
+ };
94
+ var renderContent = function (args) {
95
+ var _a;
96
+ if (args === void 0) { args = {}; }
97
+ var extraClassName = args.extraClassName, wrapperRef = args.wrapperRef, style = args.style, hidden = args.hidden;
98
+ return (React__default.default.createElement("div", { style: tslib.__assign(tslib.__assign({}, style), { visibility: hidden ? 'hidden' : 'visible' }), ref: wrapperRef, className: cn__default.default(index_module.content, extraClassName, contentClassName, index_module[align], (_a = {},
99
+ _a[index_module.trim] = trim,
100
+ _a[index_module.withCompactTitle] = view === 'mobile' && compactTitle && hasContent,
101
+ _a)), "aria-hidden": hidden },
102
+ children && React__default.default.createElement("div", { className: index_module.children }, children),
103
+ title && (React__default.default.createElement("div", { className: cn__default.default(index_module.title, titleClassName), "data-test-id": hidden ? undefined : dynamicMixins.getDataTestId(dataTestId, 'title'), ref: titleRef }, title)),
104
+ compactTitle && subtitle && (React__default.default.createElement("div", { className: index_module.subtitle, "data-test-id": dynamicMixins.getDataTestId(dataTestId, 'subtitle') }, subtitle))));
105
+ };
106
+ var renderCloser = function () { return (React__default.default.createElement("div", { className: cn__default.default(index_module.addon, index_module.closer, closerClassName) },
107
+ React__default.default.createElement(Component$1.Closer, tslib.__assign({ view: view, icon: closerIcon, dataTestId: dynamicMixins.getDataTestId(dataTestId, 'closer'), onClose: onClose }, closerProps)))); };
108
+ return (React__default.default.createElement("div", { ref: mergeRefs__default.default([ref, headerRef]), className: cn__default.default(index_module.header, className, (_b = {}, _b[index_module.backgroundImage] = imageUrl, _b)), "data-test-id": dynamicMixins.getDataTestId(dataTestId), style: tslib.__assign(tslib.__assign({}, (imageUrl && { backgroundImage: "url(".concat(imageUrl, ")") })), (withAnimation &&
109
+ bottomContentRef.current && {
110
+ top: -bottomContentRef.current.scrollHeight,
111
+ })), "data-name": dataName },
112
+ React__default.default.createElement("div", { className: cn__default.default(index_module.mainLine, (_c = {},
113
+ _c[index_module.mainLineSticky] = withAnimation,
114
+ _c[index_module.mainLineWithImageBg] = imageUrl,
115
+ _c)), style: tslib.__assign({}, (withAnimation
116
+ ? {
117
+ marginTop: "-".concat(headerPaddingTop),
118
+ paddingTop: headerPaddingTop,
119
+ }
120
+ : null)) },
121
+ hasLeftPart && (React__default.default.createElement("div", { className: index_module.addonsWrapper, ref: leftAddonsRef },
122
+ hasBackButton && renderBackButton(),
123
+ leftAddons && (React__default.default.createElement("div", { className: cn__default.default(index_module.addon, addonClassName) }, leftAddons)))),
124
+ showStaticContentOnTop &&
125
+ renderContent(tslib.__assign({}, (align === 'center'
126
+ ? {
127
+ style: {
128
+ marginLeft: titleMargin.left,
129
+ marginRight: titleMargin.right,
130
+ },
131
+ }
132
+ : null))),
133
+ showAnimatedContentOnTop &&
134
+ renderContent({
135
+ extraClassName: index_module.withBothAddons,
136
+ style: tslib.__assign({ opacity: Math.min(1, (scrollTop - ADDONS_HEIGHT) / ADDONS_HEIGHT) }, (align === 'center'
137
+ ? {
138
+ marginLeft: titleMargin.left,
139
+ marginRight: titleMargin.right,
140
+ }
141
+ : null)),
142
+ }),
143
+ hasRightPart && (React__default.default.createElement("div", { className: cn__default.default(index_module.addonsWrapper, index_module.rightAddons), ref: rightAddonsRef },
144
+ rightAddons && (React__default.default.createElement("div", { className: cn__default.default(index_module.addon, addonClassName) }, rightAddons)),
145
+ hasCloser && renderCloser()))),
146
+ showAnimatedContentOnBot &&
147
+ renderContent({
148
+ wrapperRef: bottomContentRef,
149
+ extraClassName: index_module.underAddons,
150
+ style: { opacity: Math.max(0, 1 - scrollTop / ADDONS_HEIGHT) },
151
+ hidden: scrollTop / ADDONS_HEIGHT > 1,
152
+ }),
153
+ showStaticContentOnBot &&
154
+ renderContent({
155
+ extraClassName: cn__default.default((_d = {},
156
+ _d[index_module.contentOnBotDesktop] = view === 'desktop',
157
+ _d[index_module.contentOnBotMobile] = view === 'mobile',
158
+ _d)),
159
+ }),
160
+ bottomAddons && (React__default.default.createElement("div", { className: cn__default.default(index_module.bottomAddons, bottomAddonsClassName) }, bottomAddons))));
161
+ });
162
+ NavigationBarPrivate.displayName = 'NavigationBarPrivate';
163
+
164
+ exports.NavigationBarPrivate = NavigationBarPrivate;
165
+ //# sourceMappingURL=Component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Component.js","sources":["../src/Component.tsx"],"sourcesContent":["/* eslint-disable complexity */\nimport React, { forwardRef, useEffect, useRef, useState } from 'react';\nimport mergeRefs from 'react-merge-refs';\nimport cn from 'classnames';\n\nimport { getDataTestId } from '@alfalab/core-components-shared';\nimport { useLayoutEffect_SAFE_FOR_SSR } from '@alfalab/hooks';\n\nimport { BackArrowAddon } from './components/back-arrow-addon';\nimport { Closer } from './components/closer';\nimport type { ContentParams, NavigationBarPrivateProps } from './types';\n\nimport styles from './index.module.css';\n\nconst ADDONS_HEIGHT = 48;\n\nexport const NavigationBarPrivate = forwardRef<HTMLDivElement, NavigationBarPrivateProps>(\n (\n {\n addonClassName,\n className,\n contentClassName,\n closerClassName,\n leftAddons,\n rightAddons,\n bottomAddons,\n bottomAddonsClassName,\n children,\n align = 'left',\n trim = true,\n title,\n titleSize = 'default',\n subtitle,\n hasCloser,\n closerProps = {},\n hasBackButton,\n backButtonClassName,\n backButtonProps,\n dataTestId,\n imageUrl,\n closerIcon,\n onClose,\n view,\n scrollableParentRef,\n sticky,\n onBack,\n dataName,\n titleClassName,\n titleRef,\n },\n ref,\n ) => {\n const [scrollTop, setScrollTop] = useState(0);\n const [titleMargin, setTitleMargin] = useState({ left: 0, right: 0 });\n const bottomContentRef = useRef<HTMLDivElement>(null);\n const headerRef = useRef<HTMLDivElement>(null);\n const mainLinePaddingTopRef = useRef<string>('0px');\n const leftAddonsRef = useRef<HTMLDivElement>(null);\n const rightAddonsRef = useRef<HTMLDivElement>(null);\n\n const compactTitle = view === 'mobile' && titleSize === 'compact';\n const hasLeftPart = Boolean(leftAddons || hasBackButton);\n const hasRightPart = Boolean(rightAddons || hasCloser);\n const hasContent = Boolean(title || children);\n const withAnimation = Boolean(view === 'mobile' && hasLeftPart && sticky && !compactTitle);\n const showContentOnTop = hasContent && (compactTitle || !hasLeftPart);\n const showContentOnBot = hasContent && !compactTitle && hasLeftPart;\n const showStaticContentOnTop = !withAnimation && showContentOnTop;\n const showStaticContentOnBot = !withAnimation && showContentOnBot;\n const showAnimatedContentOnTop =\n withAnimation && showContentOnBot && scrollTop > ADDONS_HEIGHT;\n const showAnimatedContentOnBot = withAnimation && showContentOnBot;\n const headerPaddingTop = mainLinePaddingTopRef.current;\n\n useLayoutEffect_SAFE_FOR_SSR(() => {\n if (align === 'center' && (showStaticContentOnTop || showAnimatedContentOnTop)) {\n const leftAddonsWidth = leftAddonsRef.current?.offsetWidth || 0;\n const rightAddonsWidth = rightAddonsRef.current?.offsetWidth || 0;\n\n const marginSize = Math.abs(rightAddonsWidth - leftAddonsWidth);\n const shouldAddLeftMargin = rightAddonsWidth - leftAddonsWidth > 0;\n\n setTitleMargin((prev) => {\n const newState = shouldAddLeftMargin\n ? { left: marginSize, right: 0 }\n : { left: 0, right: marginSize };\n\n const isStateChanged =\n prev.left !== newState.left || prev.right !== newState.right;\n\n return isStateChanged ? newState : prev;\n });\n }\n }, [\n align,\n showStaticContentOnTop,\n showAnimatedContentOnTop,\n leftAddons,\n rightAddons,\n hasBackButton,\n hasCloser,\n ]);\n\n useEffect(() => {\n const parent = scrollableParentRef?.current;\n\n const handleScroll = (ev: Event) => {\n const divElement = ev.target as HTMLDivElement;\n\n setScrollTop(divElement.scrollTop);\n };\n\n if (withAnimation && headerRef.current) {\n mainLinePaddingTopRef.current = getComputedStyle(headerRef.current).paddingTop;\n }\n\n if (withAnimation && parent) {\n parent.addEventListener('scroll', handleScroll);\n }\n\n return () => parent?.removeEventListener('scroll', handleScroll);\n }, [scrollableParentRef, withAnimation]);\n\n const renderBackButton = () => {\n let textOpacity = 1;\n\n if (withAnimation) {\n const height = hasContent ? ADDONS_HEIGHT : ADDONS_HEIGHT / 2;\n\n textOpacity = Math.max(0, 1 - scrollTop / height);\n } else if (compactTitle) {\n textOpacity = 0;\n }\n\n return (\n <div className={cn(styles.addon, backButtonClassName)}>\n <BackArrowAddon\n data-test-id={getDataTestId(dataTestId, 'back-button')}\n {...backButtonProps}\n textOpacity={textOpacity}\n view={view}\n onClick={onBack}\n />\n </div>\n );\n };\n\n const renderContent = (args: ContentParams = {}) => {\n const { extraClassName, wrapperRef, style, hidden } = args;\n\n return (\n <div\n style={{ ...style, visibility: hidden ? 'hidden' : 'visible' }}\n ref={wrapperRef}\n className={cn(styles.content, extraClassName, contentClassName, styles[align], {\n [styles.trim]: trim,\n [styles.withCompactTitle]: view === 'mobile' && compactTitle && hasContent,\n })}\n aria-hidden={hidden}\n >\n {children && <div className={styles.children}>{children}</div>}\n {title && (\n <div\n className={cn(styles.title, titleClassName)}\n data-test-id={hidden ? undefined : getDataTestId(dataTestId, 'title')}\n ref={titleRef}\n >\n {title}\n </div>\n )}\n {compactTitle && subtitle && (\n <div\n className={styles.subtitle}\n data-test-id={getDataTestId(dataTestId, 'subtitle')}\n >\n {subtitle}\n </div>\n )}\n </div>\n );\n };\n\n const renderCloser = () => (\n <div className={cn(styles.addon, styles.closer, closerClassName)}>\n <Closer\n view={view}\n icon={closerIcon}\n dataTestId={getDataTestId(dataTestId, 'closer')}\n onClose={onClose}\n {...closerProps}\n />\n </div>\n );\n\n return (\n <div\n ref={mergeRefs([ref, headerRef])}\n className={cn(styles.header, className, { [styles.backgroundImage]: imageUrl })}\n data-test-id={getDataTestId(dataTestId)}\n style={{\n ...(imageUrl && { backgroundImage: `url(${imageUrl})` }),\n ...(withAnimation &&\n bottomContentRef.current && {\n top: -bottomContentRef.current.scrollHeight,\n }),\n }}\n data-name={dataName}\n >\n <div\n className={cn(styles.mainLine, {\n [styles.mainLineSticky]: withAnimation,\n [styles.mainLineWithImageBg]: imageUrl,\n })}\n style={{\n ...(withAnimation\n ? {\n marginTop: `-${headerPaddingTop}`,\n paddingTop: headerPaddingTop,\n }\n : null),\n }}\n >\n {hasLeftPart && (\n <div className={styles.addonsWrapper} ref={leftAddonsRef}>\n {hasBackButton && renderBackButton()}\n {leftAddons && (\n <div className={cn(styles.addon, addonClassName)}>{leftAddons}</div>\n )}\n </div>\n )}\n\n {showStaticContentOnTop &&\n renderContent({\n ...(align === 'center'\n ? {\n style: {\n marginLeft: titleMargin.left,\n marginRight: titleMargin.right,\n },\n }\n : null),\n })}\n\n {showAnimatedContentOnTop &&\n renderContent({\n extraClassName: styles.withBothAddons,\n style: {\n opacity: Math.min(1, (scrollTop - ADDONS_HEIGHT) / ADDONS_HEIGHT),\n ...(align === 'center'\n ? {\n marginLeft: titleMargin.left,\n marginRight: titleMargin.right,\n }\n : null),\n },\n })}\n\n {hasRightPart && (\n <div\n className={cn(styles.addonsWrapper, styles.rightAddons)}\n ref={rightAddonsRef}\n >\n {rightAddons && (\n <div className={cn(styles.addon, addonClassName)}>\n {rightAddons}\n </div>\n )}\n\n {hasCloser && renderCloser()}\n </div>\n )}\n </div>\n\n {showAnimatedContentOnBot &&\n renderContent({\n wrapperRef: bottomContentRef,\n extraClassName: styles.underAddons,\n style: { opacity: Math.max(0, 1 - scrollTop / ADDONS_HEIGHT) },\n hidden: scrollTop / ADDONS_HEIGHT > 1,\n })}\n\n {showStaticContentOnBot &&\n renderContent({\n extraClassName: cn({\n [styles.contentOnBotDesktop]: view === 'desktop',\n [styles.contentOnBotMobile]: view === 'mobile',\n }),\n })}\n\n {bottomAddons && (\n <div className={cn(styles.bottomAddons, bottomAddonsClassName)}>\n {bottomAddons}\n </div>\n )}\n </div>\n );\n },\n);\n\nNavigationBarPrivate.displayName = 'NavigationBarPrivate';\n"],"names":["forwardRef","useState","useRef","useLayoutEffect_SAFE_FOR_SSR","useEffect","React","cn","styles","BackArrowAddon","__assign","getDataTestId","Closer","mergeRefs"],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import React from 'react';
2
+ export interface BackArrowAddonProps extends React.HTMLAttributes<HTMLButtonElement> {
3
+ /**
4
+ * Текст после иконки
5
+ */
6
+ text?: string | null;
7
+ /**
8
+ * Дополнительный класс
9
+ */
10
+ className?: string;
11
+ /**
12
+ * Вид компонента
13
+ */
14
+ view: 'mobile' | 'desktop';
15
+ /**
16
+ * Прозрачность текста
17
+ */
18
+ textOpacity?: number;
19
+ /**
20
+ * Обработчик клика
21
+ */
22
+ onClick?: () => void;
23
+ }
24
+ export declare const BackArrowAddon: React.FC<BackArrowAddonProps>;
@@ -0,0 +1,34 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var tslib = require('tslib');
6
+ var React = require('react');
7
+ var cn = require('classnames');
8
+ var desktop = require('@alfalab/core-components-button/dynamic-mixins/desktop');
9
+ var dynamicMixins = require('@alfalab/core-components-typography/dynamic-mixins');
10
+ var ArrowLeftMediumMIcon = require('@alfalab/icons-glyph/ArrowLeftMediumMIcon');
11
+ var ArrowLeftMIcon = require('@alfalab/icons-glyph/ArrowLeftMIcon');
12
+ var index_module = require('./index.module.css.js');
13
+
14
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
15
+
16
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
17
+ var cn__default = /*#__PURE__*/_interopDefaultCompat(cn);
18
+
19
+ var BackArrowAddon = function (_a) {
20
+ var _b, _c;
21
+ var _d = _a.text, text = _d === void 0 ? 'Назад' : _d, onClick = _a.onClick, className = _a.className, _e = _a.textOpacity, textOpacity = _e === void 0 ? 1 : _e, view = _a.view, htmlAttributes = tslib.__rest(_a, ["text", "onClick", "className", "textOpacity", "view"]);
22
+ var Icon = view === 'desktop' ? ArrowLeftMediumMIcon.ArrowLeftMediumMIcon : ArrowLeftMIcon.ArrowLeftMIcon;
23
+ var isMobileView = view === 'mobile';
24
+ return (React__default.default.createElement(desktop.ButtonDesktop, tslib.__assign({ view: 'text', size: isMobileView ? 'xxs' : 's', onClick: onClick, "aria-label": '\u043D\u0430\u0437\u0430\u0434', className: cn__default.default(index_module.component, (_b = {}, _b[index_module.mobileComponent] = isMobileView, _b), className) }, htmlAttributes),
25
+ React__default.default.createElement("div", { className: index_module.flex },
26
+ React__default.default.createElement("div", { className: cn__default.default(index_module.iconWrapper, (_c = {},
27
+ _c[index_module.mobileWrapper] = isMobileView,
28
+ _c)) },
29
+ React__default.default.createElement(Icon, null)),
30
+ textOpacity > 0 && text && (React__default.default.createElement(dynamicMixins.Text, { className: index_module.text, view: view === 'desktop' ? 'primary-large' : 'component', weight: 'medium', style: { opacity: textOpacity } }, text)))));
31
+ };
32
+
33
+ exports.BackArrowAddon = BackArrowAddon;
34
+ //# sourceMappingURL=Component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Component.js","sources":["../../../src/components/back-arrow-addon/Component.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\n\nimport { ButtonDesktop } from '@alfalab/core-components-button/desktop';\nimport { Text } from '@alfalab/core-components-typography';\nimport { ArrowLeftMediumMIcon } from '@alfalab/icons-glyph/ArrowLeftMediumMIcon';\nimport { ArrowLeftMIcon } from '@alfalab/icons-glyph/ArrowLeftMIcon';\n\nimport styles from './index.module.css';\n\nexport interface BackArrowAddonProps extends React.HTMLAttributes<HTMLButtonElement> {\n /**\n * Текст после иконки\n */\n text?: string | null;\n\n /**\n * Дополнительный класс\n */\n className?: string;\n\n /**\n * Вид компонента\n */\n view: 'mobile' | 'desktop';\n\n /**\n * Прозрачность текста\n */\n textOpacity?: number;\n\n /**\n * Обработчик клика\n */\n onClick?: () => void;\n}\n\nexport const BackArrowAddon: React.FC<BackArrowAddonProps> = ({\n text = 'Назад',\n onClick,\n className,\n textOpacity = 1,\n view,\n ...htmlAttributes\n}) => {\n const Icon = view === 'desktop' ? ArrowLeftMediumMIcon : ArrowLeftMIcon;\n const isMobileView = view === 'mobile';\n\n return (\n <ButtonDesktop\n view='text'\n size={isMobileView ? 'xxs' : 's'}\n onClick={onClick}\n aria-label='назад'\n className={cn(styles.component, { [styles.mobileComponent]: isMobileView }, className)}\n {...htmlAttributes}\n >\n <div className={styles.flex}>\n <div\n className={cn(styles.iconWrapper, {\n [styles.mobileWrapper]: isMobileView,\n })}\n >\n <Icon />\n </div>\n {textOpacity > 0 && text && (\n <Text\n className={styles.text}\n view={view === 'desktop' ? 'primary-large' : 'component'}\n weight='medium'\n style={{ opacity: textOpacity }}\n >\n {text}\n </Text>\n )}\n </div>\n </ButtonDesktop>\n );\n};\n"],"names":["__rest","ArrowLeftMediumMIcon","ArrowLeftMIcon","React","ButtonDesktop","__assign","cn","styles","Text"],"mappings":";;;;;;;;;;;;;;;;;;AAqCO,IAAM,cAAc,GAAkC,UAAC,EAO7D,EAAA;;IANG,IAAA,EAAA,GAAA,EAAA,CAAA,IAAc,EAAd,IAAI,GAAG,EAAA,KAAA,MAAA,GAAA,OAAO,GAAA,EAAA,EACd,OAAO,GAAA,EAAA,CAAA,OAAA,EACP,SAAS,GAAA,EAAA,CAAA,SAAA,EACT,mBAAe,EAAf,WAAW,GAAG,EAAA,KAAA,MAAA,GAAA,CAAC,GAAA,EAAA,EACf,IAAI,GAAA,EAAA,CAAA,IAAA,EACD,cAAc,GANyCA,YAAA,CAAA,EAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,MAAA,CAO7D,CADoB;AAEjB,IAAA,IAAM,IAAI,GAAG,IAAI,KAAK,SAAS,GAAGC,yCAAoB,GAAGC,6BAAc;AACvE,IAAA,IAAM,YAAY,GAAG,IAAI,KAAK,QAAQ;IAEtC,QACIC,qCAACC,qBAAa,EAAAC,cAAA,CAAA,EACV,IAAI,EAAC,MAAM,EACX,IAAI,EAAE,YAAY,GAAG,KAAK,GAAG,GAAG,EAChC,OAAO,EAAE,OAAO,EACL,YAAA,EAAA,gCAAO,EAClB,SAAS,EAAEC,mBAAE,CAACC,YAAM,CAAC,SAAS,GAAA,EAAA,GAAA,EAAA,EAAI,GAACA,YAAM,CAAC,eAAe,CAAG,GAAA,YAAY,OAAI,SAAS,CAAC,IAClF,cAAc,CAAA;AAElB,QAAAJ,sBAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEI,YAAM,CAAC,IAAI,EAAA;AACvB,YAAAJ,sBAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EACI,SAAS,EAAEG,mBAAE,CAACC,YAAM,CAAC,WAAW,GAAA,EAAA,GAAA,EAAA;AAC5B,oBAAA,EAAA,CAACA,YAAM,CAAC,aAAa,CAAA,GAAG,YAAY;AACtC,oBAAA,EAAA,EAAA,EAAA;gBAEFJ,sBAAC,CAAA,aAAA,CAAA,IAAI,OAAG,CACN;YACL,WAAW,GAAG,CAAC,IAAI,IAAI,KACpBA,sBAAA,CAAA,aAAA,CAACK,kBAAI,EACD,EAAA,SAAS,EAAED,YAAM,CAAC,IAAI,EACtB,IAAI,EAAE,IAAI,KAAK,SAAS,GAAG,eAAe,GAAG,WAAW,EACxD,MAAM,EAAC,QAAQ,EACf,KAAK,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,EAE9B,EAAA,IAAI,CACF,CACV,CACC,CACM;AAExB;;;;"}
@@ -0,0 +1,64 @@
1
+ :root {
2
+ --color-light-neutral-translucent-100: rgba(38, 55, 88, 0.06);
3
+ --color-light-neutral-translucent-1300: rgba(3, 3, 6, 0.88);
4
+ --color-light-neutral-translucent-1300-hover: rgba(2, 2, 10, 0.76);
5
+ --color-light-neutral-translucent-1300-press: rgba(1, 1, 12, 0.63);
6
+ --color-light-neutral-translucent-700: rgba(4, 4, 21, 0.47);
7
+ } :root {
8
+ --border-radius-circle: 50%;
9
+ --border-radius-pill: 99px;
10
+ } :root {
11
+ --gap-xs: 8px;
12
+ --gap-s: 12px;
13
+ --gap-0: 0px;
14
+ --gap-8: var(--gap-xs);
15
+ --gap-12: var(--gap-s);
16
+ } :root {
17
+ --color-static-monochrome-white-4: rgba(255, 255, 255, 0.04);
18
+ } :root {
19
+ --navigation-bar-back-arrow-mobile-fill: var(--color-light-neutral-translucent-700);
20
+ } .navigation-bar-private__component_1pf72 {
21
+ height: 100%;
22
+ background: var(--color-static-monochrome-white-4);
23
+ -webkit-backdrop-filter: blur(10px);
24
+ backdrop-filter: blur(10px);
25
+ border-radius: var(--border-radius-pill);
26
+ min-width: 48px
27
+ } .navigation-bar-private__component_1pf72 svg > path {
28
+ transition: fill 0.2s ease;
29
+ fill: var(--color-light-neutral-translucent-1300);
30
+ } .navigation-bar-private__component_1pf72:hover svg > path {
31
+ fill: var(--color-light-neutral-translucent-1300-hover);
32
+ } .navigation-bar-private__component_1pf72:active svg > path {
33
+ fill: var(--color-light-neutral-translucent-1300-press);
34
+ } .navigation-bar-private__mobileComponent_1pf72 {
35
+ height: 32px;
36
+ min-width: 32px;
37
+ margin: var(--gap-0) var(--gap-8);
38
+ -webkit-backdrop-filter: none;
39
+ backdrop-filter: none;
40
+ background: none;
41
+ } .navigation-bar-private__flex_1pf72 {
42
+ display: flex;
43
+ align-items: center;
44
+ } .navigation-bar-private__iconWrapper_1pf72 {
45
+ display: inline-flex;
46
+ align-items: center;
47
+ justify-content: center;
48
+ height: 48px;
49
+ margin: var(--gap-0) var(--gap-8) var(--gap-0) var(--gap-12);
50
+ border-radius: var(--border-radius-circle)
51
+ } .navigation-bar-private__iconWrapper_1pf72 + .navigation-bar-private__text_1pf72 {
52
+ margin-right: var(--gap-12);
53
+ } .navigation-bar-private__mobileWrapper_1pf72 {
54
+ width: 32px;
55
+ height: 32px;
56
+ background: var(--color-light-neutral-translucent-100);
57
+ -webkit-backdrop-filter: blur(10px);
58
+ backdrop-filter: blur(10px);
59
+ margin: var(--gap-0)
60
+ } .navigation-bar-private__mobileWrapper_1pf72 + .navigation-bar-private__text_1pf72 {
61
+ margin: var(--gap-0) var(--gap-12) var(--gap-0) var(--gap-8);
62
+ } .navigation-bar-private__mobileWrapper_1pf72 svg > path {
63
+ fill: var(--navigation-bar-back-arrow-mobile-fill);
64
+ }
@@ -0,0 +1 @@
1
+ export * from './Component';
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var Component = require('./Component.js');
6
+
7
+
8
+
9
+ exports.BackArrowAddon = Component.BackArrowAddon;
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+
3
+ require('./index.css');
4
+
5
+ var styles = {"component":"navigation-bar-private__component_1pf72","mobileComponent":"navigation-bar-private__mobileComponent_1pf72","flex":"navigation-bar-private__flex_1pf72","iconWrapper":"navigation-bar-private__iconWrapper_1pf72","text":"navigation-bar-private__text_1pf72","mobileWrapper":"navigation-bar-private__mobileWrapper_1pf72"};
6
+
7
+ module.exports = styles;
8
+ //# sourceMappingURL=index.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.module.css.js","sources":["../../src/components/back-arrow-addon/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/no-dynamic-mixins-index.css';\n@import '@alfalab/core-components-vars/src/colors-monochrome.css';\n@import '../../vars.css';\n\n.component {\n height: 100%;\n background: var(--color-static-monochrome-white-4);\n backdrop-filter: blur(10px);\n border-radius: var(--border-radius-pill);\n min-width: 48px;\n\n & svg > path {\n transition: fill 0.2s ease;\n fill: var(--color-light-neutral-translucent-1300);\n }\n\n &:hover {\n & svg > path {\n fill: var(--color-light-neutral-translucent-1300-hover);\n }\n }\n\n &:active {\n & svg > path {\n fill: var(--color-light-neutral-translucent-1300-press);\n }\n }\n}\n\n.mobileComponent {\n height: 32px;\n min-width: 32px;\n margin: var(--gap-0) var(--gap-8);\n backdrop-filter: none;\n background: none;\n}\n\n.flex {\n display: flex;\n align-items: center;\n}\n\n.iconWrapper {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n height: 48px;\n margin: var(--gap-0) var(--gap-8) var(--gap-0) var(--gap-12);\n border-radius: var(--border-radius-circle);\n\n & + .text {\n margin-right: var(--gap-12);\n }\n}\n\n.mobileWrapper {\n width: 32px;\n height: 32px;\n background: var(--color-light-neutral-translucent-100);\n backdrop-filter: blur(10px);\n margin: var(--gap-0);\n\n & + .text {\n margin: var(--gap-0) var(--gap-12) var(--gap-0) var(--gap-8);\n }\n\n & svg > path {\n fill: var(--navigation-bar-back-arrow-mobile-fill);\n }\n}\n"],"names":[],"mappings":";;;;AAEgB,aAAe,CAAC,WAAW,CAAC,yCAAyC,CAAC,iBAAiB,CAAC,+CAA+C,CAAC,MAAM,CAAC,oCAAoC,CAAC,aAAa,CAAC,2CAA2C,CAAC,MAAM,CAAC,oCAAoC,CAAC,eAAe,CAAC,6CAA6C,CAAC;;;;"}
@@ -0,0 +1,37 @@
1
+ import React, { ButtonHTMLAttributes, ElementType, FC } from 'react';
2
+ import { IconButtonProps } from '@alfalab/core-components-icon-button';
3
+ export interface CloserProps extends ButtonHTMLAttributes<HTMLButtonElement> {
4
+ /**
5
+ * Вид компонента
6
+ */
7
+ view: 'desktop' | 'mobile';
8
+ /**
9
+ * Дополнительный класс
10
+ */
11
+ className?: string;
12
+ /**
13
+ * Позиция крестика
14
+ */
15
+ align?: 'left' | 'right';
16
+ /**
17
+ * Фиксирует крестик
18
+ */
19
+ sticky?: boolean;
20
+ /**
21
+ * Иконка
22
+ */
23
+ icon?: ElementType;
24
+ /**
25
+ * Набор цветов для компонента
26
+ */
27
+ colors?: IconButtonProps['colors'];
28
+ /**
29
+ * Идентификатор для систем автоматизированного тестирования
30
+ */
31
+ dataTestId?: string;
32
+ /**
33
+ * Коллбэк закрытия.
34
+ */
35
+ onClose?: (event: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement>, reason?: 'backdropClick' | 'escapeKeyDown' | 'closerClick') => void;
36
+ }
37
+ export declare const Closer: FC<CloserProps>;