@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.
- package/components/back-arrow-addon/index.css +11 -11
- package/components/back-arrow-addon/index.module.css.js +1 -1
- package/components/back-arrow-addon/index.module.css.js.map +1 -1
- package/components/closer/default.css +2 -2
- package/components/closer/default.module.css.js +1 -1
- package/components/closer/index.css +4 -4
- package/components/closer/index.module.css.js +1 -1
- package/components/closer/index.module.css.js.map +1 -1
- package/components/closer/inverted.css +2 -2
- package/components/closer/inverted.module.css.js +1 -1
- package/dynamic-mixins/Component.d.ts +3 -0
- package/dynamic-mixins/Component.js +165 -0
- package/dynamic-mixins/Component.js.map +1 -0
- package/dynamic-mixins/components/back-arrow-addon/Component.d.ts +24 -0
- package/dynamic-mixins/components/back-arrow-addon/Component.js +34 -0
- package/dynamic-mixins/components/back-arrow-addon/Component.js.map +1 -0
- package/dynamic-mixins/components/back-arrow-addon/index.css +64 -0
- package/dynamic-mixins/components/back-arrow-addon/index.d.ts +1 -0
- package/dynamic-mixins/components/back-arrow-addon/index.js +10 -0
- package/dynamic-mixins/components/back-arrow-addon/index.js.map +1 -0
- package/dynamic-mixins/components/back-arrow-addon/index.module.css.js +8 -0
- package/dynamic-mixins/components/back-arrow-addon/index.module.css.js.map +1 -0
- package/dynamic-mixins/components/closer/Component.d.ts +37 -0
- package/dynamic-mixins/components/closer/Component.js +39 -0
- package/dynamic-mixins/components/closer/Component.js.map +1 -0
- package/dynamic-mixins/components/closer/default.css +19 -0
- package/dynamic-mixins/components/closer/default.module.css.js +8 -0
- package/dynamic-mixins/components/closer/default.module.css.js.map +1 -0
- package/dynamic-mixins/components/closer/index.css +21 -0
- package/dynamic-mixins/components/closer/index.d.ts +1 -0
- package/dynamic-mixins/components/closer/index.js +10 -0
- package/dynamic-mixins/components/closer/index.js.map +1 -0
- package/dynamic-mixins/components/closer/index.module.css.js +8 -0
- package/dynamic-mixins/components/closer/index.module.css.js.map +1 -0
- package/dynamic-mixins/components/closer/inverted.css +20 -0
- package/dynamic-mixins/components/closer/inverted.module.css.js +8 -0
- package/dynamic-mixins/components/closer/inverted.module.css.js.map +1 -0
- package/dynamic-mixins/index.css +94 -0
- package/dynamic-mixins/index.d.ts +2 -0
- package/dynamic-mixins/index.js +10 -0
- package/dynamic-mixins/index.js.map +1 -0
- package/dynamic-mixins/index.module.css.js +8 -0
- package/dynamic-mixins/index.module.css.js.map +1 -0
- package/dynamic-mixins/shared/index.d.ts +2 -0
- package/dynamic-mixins/shared/index.js +12 -0
- package/dynamic-mixins/shared/index.js.map +1 -0
- package/dynamic-mixins/types.d.ts +131 -0
- package/dynamic-mixins/types.js +3 -0
- package/dynamic-mixins/types.js.map +1 -0
- package/esm/components/back-arrow-addon/index.css +11 -11
- package/esm/components/back-arrow-addon/index.module.css.js +1 -1
- package/esm/components/back-arrow-addon/index.module.css.js.map +1 -1
- package/esm/components/closer/default.css +2 -2
- package/esm/components/closer/default.module.css.js +1 -1
- package/esm/components/closer/index.css +4 -4
- package/esm/components/closer/index.module.css.js +1 -1
- package/esm/components/closer/index.module.css.js.map +1 -1
- package/esm/components/closer/inverted.css +2 -2
- package/esm/components/closer/inverted.module.css.js +1 -1
- package/esm/index.css +26 -26
- package/esm/index.module.css.js +1 -1
- package/esm/index.module.css.js.map +1 -1
- package/index.css +26 -26
- package/index.module.css.js +1 -1
- package/index.module.css.js.map +1 -1
- package/modern/components/back-arrow-addon/index.css +11 -11
- package/modern/components/back-arrow-addon/index.module.css.js +1 -1
- package/modern/components/back-arrow-addon/index.module.css.js.map +1 -1
- package/modern/components/closer/default.css +2 -2
- package/modern/components/closer/default.module.css.js +1 -1
- package/modern/components/closer/index.css +4 -4
- package/modern/components/closer/index.module.css.js +1 -1
- package/modern/components/closer/index.module.css.js.map +1 -1
- package/modern/components/closer/inverted.css +2 -2
- package/modern/components/closer/inverted.module.css.js +1 -1
- package/modern/index.css +26 -26
- package/modern/index.module.css.js +1 -1
- package/modern/index.module.css.js.map +1 -1
- package/moderncssm/components/closer/index.module.css +2 -0
- package/moderncssm/index.module.css +2 -0
- package/package.json +7 -7
- package/src/components/back-arrow-addon/index.module.css +1 -1
- package/src/components/closer/index.module.css +1 -1
- package/src/index.module.css +1 -1
- 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-
|
|
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-
|
|
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-
|
|
30
|
+
} .navigation-bar-private__component_1pf72:hover svg > path {
|
|
31
31
|
fill: var(--color-light-neutral-translucent-1300-hover);
|
|
32
|
-
} .navigation-bar-
|
|
32
|
+
} .navigation-bar-private__component_1pf72:active svg > path {
|
|
33
33
|
fill: var(--color-light-neutral-translucent-1300-press);
|
|
34
|
-
} .navigation-bar-
|
|
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-
|
|
41
|
+
} .navigation-bar-private__flex_1pf72 {
|
|
42
42
|
display: flex;
|
|
43
43
|
align-items: center;
|
|
44
|
-
} .navigation-bar-
|
|
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-
|
|
51
|
+
} .navigation-bar-private__iconWrapper_1pf72 + .navigation-bar-private__text_1pf72 {
|
|
52
52
|
margin-right: var(--gap-12);
|
|
53
|
-
} .navigation-bar-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
13
|
+
} .navigation-bar-private__button_gtr9c {
|
|
14
14
|
-webkit-backdrop-filter: blur(10px);
|
|
15
15
|
backdrop-filter: blur(10px);
|
|
16
|
-
} .navigation-bar-
|
|
16
|
+
} .navigation-bar-private__button_gtr9c.navigation-bar-private__button_gtr9c {
|
|
17
17
|
border-radius: var(--border-radius-circle);
|
|
18
|
-
} .navigation-bar-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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,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 @@
|
|
|
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>;
|