@alfalab/core-components-navigation-bar-private 1.1.5 → 2.0.0-8406faee42e08c133fbcbb0de3e6eb2df6766dd2
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/Component.js +2 -2
- package/components/back-arrow-addon/Component.js.map +1 -1
- package/components/back-arrow-addon/default.css +7 -7
- package/components/back-arrow-addon/default.module.css.js +1 -1
- package/components/back-arrow-addon/index.css +18 -9
- package/components/back-arrow-addon/index.module.css.js +1 -1
- package/components/back-arrow-addon/inverted.css +7 -7
- package/components/back-arrow-addon/inverted.module.css.js +1 -1
- package/components/closer/Component.js +1 -1
- package/components/closer/Component.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 +10 -5
- package/components/closer/index.module.css.js +1 -1
- package/components/closer/inverted.css +2 -2
- package/components/closer/inverted.module.css.js +1 -1
- package/cssm/components/back-arrow-addon/Component.js +2 -2
- package/cssm/components/back-arrow-addon/Component.js.map +1 -1
- package/cssm/components/back-arrow-addon/index.module.css +18 -9
- package/cssm/components/closer/Component.js +1 -1
- package/cssm/components/closer/Component.js.map +1 -1
- package/cssm/components/closer/index.module.css +10 -5
- package/cssm/index.module.css +50 -22
- package/esm/components/back-arrow-addon/Component.js +3 -3
- package/esm/components/back-arrow-addon/Component.js.map +1 -1
- package/esm/components/back-arrow-addon/default.css +7 -7
- package/esm/components/back-arrow-addon/default.module.css.js +1 -1
- package/esm/components/back-arrow-addon/index.css +18 -9
- package/esm/components/back-arrow-addon/index.module.css.js +1 -1
- package/esm/components/back-arrow-addon/inverted.css +7 -7
- package/esm/components/back-arrow-addon/inverted.module.css.js +1 -1
- package/esm/components/closer/Component.js +1 -1
- package/esm/components/closer/Component.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 +10 -5
- package/esm/components/closer/index.module.css.js +1 -1
- package/esm/components/closer/inverted.css +2 -2
- package/esm/components/closer/inverted.module.css.js +1 -1
- package/esm/index.css +55 -27
- package/esm/index.module.css.js +1 -1
- package/index.css +55 -27
- package/index.module.css.js +1 -1
- package/modern/components/back-arrow-addon/Component.js +3 -3
- package/modern/components/back-arrow-addon/Component.js.map +1 -1
- package/modern/components/back-arrow-addon/default.css +7 -7
- package/modern/components/back-arrow-addon/default.module.css.js +1 -1
- package/modern/components/back-arrow-addon/index.css +18 -9
- package/modern/components/back-arrow-addon/index.module.css.js +1 -1
- package/modern/components/back-arrow-addon/inverted.css +7 -7
- package/modern/components/back-arrow-addon/inverted.module.css.js +1 -1
- package/modern/components/closer/Component.js +1 -1
- package/modern/components/closer/Component.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 +10 -5
- package/modern/components/closer/index.module.css.js +1 -1
- package/modern/components/closer/inverted.css +2 -2
- package/modern/components/closer/inverted.module.css.js +1 -1
- package/modern/index.css +55 -27
- package/modern/index.module.css.js +1 -1
- package/moderncssm/components/back-arrow-addon/Component.js +3 -3
- package/moderncssm/components/back-arrow-addon/Component.js.map +1 -1
- package/moderncssm/components/closer/Component.js +1 -1
- package/moderncssm/components/closer/Component.js.map +1 -1
- package/moderncssm/index.module.css +2 -0
- package/package.json +10 -10
- package/src/components/back-arrow-addon/Component.tsx +5 -5
- package/src/components/closer/Component.tsx +1 -1
|
@@ -27,14 +27,14 @@ var BackArrowAddon = function (_a) {
|
|
|
27
27
|
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, _f = _a.colors, colors = _f === void 0 ? 'default' : _f, htmlAttributes = tslib.__rest(_a, ["text", "onClick", "className", "textOpacity", "view", "colors"]);
|
|
28
28
|
var Icon = view === 'desktop' ? ArrowLeftMediumMIcon.ArrowLeftMediumMIcon : ArrowLeftMIcon.ArrowLeftMIcon;
|
|
29
29
|
var isMobileView = view === 'mobile';
|
|
30
|
-
return (React__default.default.createElement(desktop.ButtonDesktop, tslib.__assign({ view: 'text', size: isMobileView ?
|
|
30
|
+
return (React__default.default.createElement(desktop.ButtonDesktop, tslib.__assign({ view: 'text', size: isMobileView ? 32 : 48, onClick: onClick, "aria-label": '\u043D\u0430\u0437\u0430\u0434', className: cn__default.default(index_module.component, colorStyles[colors].component, (_b = {}, _b[index_module.mobileComponent] = isMobileView, _b), className) }, htmlAttributes),
|
|
31
31
|
React__default.default.createElement("div", { className: index_module.flex },
|
|
32
32
|
React__default.default.createElement("div", { className: cn__default.default(index_module.iconWrapper, (_c = {},
|
|
33
33
|
_c[index_module.mobileWrapper] = isMobileView,
|
|
34
34
|
_c[colorStyles[colors].mobileWrapper] = isMobileView,
|
|
35
35
|
_c)) },
|
|
36
36
|
React__default.default.createElement(Icon, null)),
|
|
37
|
-
textOpacity > 0 && text && (React__default.default.createElement(coreComponentsTypography.
|
|
37
|
+
textOpacity > 0 && text && (React__default.default.createElement(coreComponentsTypography.TypographyText, { className: cn__default.default(index_module.text, colorStyles[colors].text), view: view === 'desktop' ? 'primary-large' : 'component-primary', weight: 'medium', style: { opacity: textOpacity } }, text)))));
|
|
38
38
|
};
|
|
39
39
|
|
|
40
40
|
exports.BackArrowAddon = BackArrowAddon;
|
|
@@ -1 +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 {
|
|
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 { TypographyText } from '@alfalab/core-components-typography';\nimport { ArrowLeftMediumMIcon } from '@alfalab/icons-glyph/ArrowLeftMediumMIcon';\nimport { ArrowLeftMIcon } from '@alfalab/icons-glyph/ArrowLeftMIcon';\n\nimport defaultColors from './default.module.css';\nimport styles from './index.module.css';\nimport invertedColors from './inverted.module.css';\n\nconst colorStyles = {\n default: defaultColors,\n inverted: invertedColors,\n};\n\ntype ColorType = 'default' | 'inverted';\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 /**\n * Набор цветов для компонента\n */\n colors?: ColorType;\n}\n\nexport const BackArrowAddon: React.FC<BackArrowAddonProps> = ({\n text = 'Назад',\n onClick,\n className,\n textOpacity = 1,\n view,\n colors = 'default',\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 ? 32 : 48}\n onClick={onClick}\n aria-label='назад'\n className={cn(\n styles.component,\n colorStyles[colors].component,\n { [styles.mobileComponent]: isMobileView },\n className,\n )}\n {...htmlAttributes}\n >\n <div className={styles.flex}>\n <div\n className={cn(styles.iconWrapper, {\n [styles.mobileWrapper]: isMobileView,\n [colorStyles[colors].mobileWrapper]: isMobileView,\n })}\n >\n <Icon />\n </div>\n {textOpacity > 0 && text && (\n <TypographyText\n className={cn(styles.text, colorStyles[colors].text)}\n view={view === 'desktop' ? 'primary-large' : 'component-primary'}\n weight='medium'\n style={{ opacity: textOpacity }}\n >\n {text}\n </TypographyText>\n )}\n </div>\n </ButtonDesktop>\n );\n};\n"],"names":["defaultColors","invertedColors","__rest","ArrowLeftMediumMIcon","ArrowLeftMIcon","React","ButtonDesktop","__assign","cn","styles","TypographyText"],"mappings":";;;;;;;;;;;;;;;;;;;;AAYA,IAAM,WAAW,GAAG;AAChB,IAAA,OAAO,EAAEA,cAAa;AACtB,IAAA,QAAQ,EAAEC,eAAc;CAC3B;AAoCM,IAAM,cAAc,GAAkC,UAAC,EAQ7D,EAAA;;AAPG,IAAA,IAAA,EAAc,GAAA,EAAA,CAAA,IAAA,EAAd,IAAI,GAAA,EAAA,KAAA,MAAA,GAAG,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,EACJ,EAAkB,GAAA,EAAA,CAAA,MAAA,EAAlB,MAAM,GAAA,EAAA,KAAA,MAAA,GAAG,SAAS,GAAA,EAAA,EACf,cAAc,GAAAC,YAAA,CAAA,EAAA,EAPyC,iEAQ7D,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,EAAE,GAAG,EAAE,EAC5B,OAAO,EAAE,OAAO,EACL,YAAA,EAAA,gCAAO,EAClB,SAAS,EAAEC,mBAAE,CACTC,YAAM,CAAC,SAAS,EAChB,WAAW,CAAC,MAAM,CAAC,CAAC,SAAS,GAC3B,EAAA,GAAA,EAAA,EAAA,EAAA,CAACA,YAAM,CAAC,eAAe,CAAA,GAAG,YAAY,EACxC,EAAA,GAAA,SAAS,CACZ,EAAA,EACG,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;AACpC,oBAAA,EAAA,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,aAAa,IAAG,YAAY;AACnD,oBAAA,EAAA,EAAA,EAAA;gBAEFJ,sBAAC,CAAA,aAAA,CAAA,IAAI,OAAG,CACN;YACL,WAAW,GAAG,CAAC,IAAI,IAAI,KACpBA,sBAAA,CAAA,aAAA,CAACK,uCAAc,EAAA,EACX,SAAS,EAAEF,mBAAE,CAACC,YAAM,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EACpD,IAAI,EAAE,IAAI,KAAK,SAAS,GAAG,eAAe,GAAG,mBAAmB,EAChE,MAAM,EAAC,QAAQ,EACf,KAAK,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,EAAA,EAE9B,IAAI,CACQ,CACpB,CACC,CACM;AAExB;;;;"}
|
|
@@ -13,25 +13,25 @@
|
|
|
13
13
|
--navigation-bar-back-arrow-mobile-fill: var(--color-light-neutral-translucent-700);
|
|
14
14
|
--button-text-base-color: var(--color-light-text-primary);
|
|
15
15
|
}
|
|
16
|
-
.navigation-bar-
|
|
16
|
+
.navigation-bar-private__component_1aafv {
|
|
17
17
|
background: var(--color-light-monochrome-white-4);
|
|
18
18
|
}
|
|
19
|
-
.navigation-bar-
|
|
19
|
+
.navigation-bar-private__component_1aafv svg > path {
|
|
20
20
|
fill: var(--color-light-neutral-translucent-1300);
|
|
21
21
|
}
|
|
22
|
-
.navigation-bar-
|
|
22
|
+
.navigation-bar-private__component_1aafv:hover svg > path {
|
|
23
23
|
fill: var(--color-light-neutral-translucent-1300-hover);
|
|
24
24
|
}
|
|
25
|
-
.navigation-bar-
|
|
25
|
+
.navigation-bar-private__component_1aafv:active svg > path {
|
|
26
26
|
fill: var(--color-light-neutral-translucent-1300-press);
|
|
27
27
|
}
|
|
28
|
-
.navigation-bar-
|
|
28
|
+
.navigation-bar-private__text_1aafv {
|
|
29
29
|
color: var(--button-text-base-color);
|
|
30
30
|
}
|
|
31
|
-
.navigation-bar-
|
|
31
|
+
.navigation-bar-private__mobileWrapper_1aafv {
|
|
32
32
|
background: var(--color-light-neutral-translucent-100);
|
|
33
33
|
color: var(--color-light-neutral-translucent-100);
|
|
34
34
|
}
|
|
35
|
-
.navigation-bar-
|
|
35
|
+
.navigation-bar-private__mobileWrapper_1aafv svg > path {
|
|
36
36
|
fill: var(--navigation-bar-back-arrow-mobile-fill);
|
|
37
37
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
require('./default.css');
|
|
4
4
|
|
|
5
|
-
var defaultColors = {"component":"navigation-bar-
|
|
5
|
+
var defaultColors = {"component":"navigation-bar-private__component_1aafv","text":"navigation-bar-private__text_1aafv","mobileWrapper":"navigation-bar-private__mobileWrapper_1aafv"};
|
|
6
6
|
|
|
7
7
|
module.exports = defaultColors;
|
|
8
8
|
//# sourceMappingURL=default.module.css.js.map
|
|
@@ -1,45 +1,54 @@
|
|
|
1
1
|
:root {
|
|
2
2
|
--border-radius-circle: 50%;
|
|
3
3
|
--border-radius-pill: 99px;
|
|
4
|
-
}
|
|
4
|
+
}
|
|
5
|
+
:root {
|
|
5
6
|
--gap-xs: 8px;
|
|
6
7
|
--gap-s: 12px;
|
|
7
8
|
--gap-0: 0px;
|
|
8
9
|
--gap-8: var(--gap-xs);
|
|
9
10
|
--gap-12: var(--gap-s);
|
|
10
|
-
}
|
|
11
|
+
}
|
|
12
|
+
.navigation-bar-private__component_1u5nh {
|
|
11
13
|
height: 100%;
|
|
12
14
|
-webkit-backdrop-filter: blur(10px);
|
|
13
15
|
backdrop-filter: blur(10px);
|
|
14
16
|
border-radius: var(--border-radius-pill);
|
|
15
17
|
min-width: 48px;
|
|
16
|
-
}
|
|
18
|
+
}
|
|
19
|
+
.navigation-bar-private__component_1u5nh svg > path {
|
|
17
20
|
transition: fill 0.2s ease;
|
|
18
|
-
}
|
|
21
|
+
}
|
|
22
|
+
.navigation-bar-private__mobileComponent_1u5nh {
|
|
19
23
|
height: 32px;
|
|
20
24
|
min-width: 32px;
|
|
21
25
|
margin: var(--gap-0) var(--gap-8);
|
|
22
26
|
-webkit-backdrop-filter: none;
|
|
23
27
|
backdrop-filter: none;
|
|
24
28
|
background: none;
|
|
25
|
-
}
|
|
29
|
+
}
|
|
30
|
+
.navigation-bar-private__flex_1u5nh {
|
|
26
31
|
display: flex;
|
|
27
32
|
align-items: center;
|
|
28
|
-
}
|
|
33
|
+
}
|
|
34
|
+
.navigation-bar-private__iconWrapper_1u5nh {
|
|
29
35
|
display: inline-flex;
|
|
30
36
|
align-items: center;
|
|
31
37
|
justify-content: center;
|
|
32
38
|
height: 48px;
|
|
33
39
|
margin: var(--gap-0) var(--gap-8) var(--gap-0) var(--gap-12);
|
|
34
40
|
border-radius: var(--border-radius-circle);
|
|
35
|
-
}
|
|
41
|
+
}
|
|
42
|
+
.navigation-bar-private__iconWrapper_1u5nh + .navigation-bar-private__text_1u5nh {
|
|
36
43
|
margin-right: var(--gap-12);
|
|
37
|
-
}
|
|
44
|
+
}
|
|
45
|
+
.navigation-bar-private__mobileWrapper_1u5nh {
|
|
38
46
|
width: 32px;
|
|
39
47
|
height: 32px;
|
|
40
48
|
-webkit-backdrop-filter: blur(10px);
|
|
41
49
|
backdrop-filter: blur(10px);
|
|
42
50
|
margin: var(--gap-0);
|
|
43
|
-
}
|
|
51
|
+
}
|
|
52
|
+
.navigation-bar-private__mobileWrapper_1u5nh + .navigation-bar-private__text_1u5nh {
|
|
44
53
|
margin: var(--gap-0) var(--gap-12) var(--gap-0) var(--gap-8);
|
|
45
54
|
}
|
|
@@ -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_1u5nh","mobileComponent":"navigation-bar-private__mobileComponent_1u5nh","flex":"navigation-bar-private__flex_1u5nh","iconWrapper":"navigation-bar-private__iconWrapper_1u5nh","text":"navigation-bar-private__text_1u5nh","mobileWrapper":"navigation-bar-private__mobileWrapper_1u5nh"};
|
|
6
6
|
|
|
7
7
|
module.exports = styles;
|
|
8
8
|
//# sourceMappingURL=index.module.css.js.map
|
|
@@ -15,25 +15,25 @@
|
|
|
15
15
|
);
|
|
16
16
|
--button-inverted-text-base-color: var(--color-light-text-primary-inverted);
|
|
17
17
|
}
|
|
18
|
-
.navigation-bar-
|
|
18
|
+
.navigation-bar-private__component_67egm {
|
|
19
19
|
background: var(--color-light-monochrome-white-4-inverted);
|
|
20
20
|
}
|
|
21
|
-
.navigation-bar-
|
|
21
|
+
.navigation-bar-private__component_67egm svg > path {
|
|
22
22
|
fill: var(--color-light-neutral-translucent-1300-inverted);
|
|
23
23
|
}
|
|
24
|
-
.navigation-bar-
|
|
24
|
+
.navigation-bar-private__component_67egm:hover svg > path {
|
|
25
25
|
fill: var(--color-light-neutral-translucent-1300-inverted-hover);
|
|
26
26
|
}
|
|
27
|
-
.navigation-bar-
|
|
27
|
+
.navigation-bar-private__component_67egm:active svg > path {
|
|
28
28
|
fill: var(--color-light-neutral-translucent-1300-inverted-press);
|
|
29
29
|
}
|
|
30
|
-
.navigation-bar-
|
|
30
|
+
.navigation-bar-private__text_67egm {
|
|
31
31
|
color: var(--button-inverted-text-base-color);
|
|
32
32
|
}
|
|
33
|
-
.navigation-bar-
|
|
33
|
+
.navigation-bar-private__mobileWrapper_67egm {
|
|
34
34
|
background: var(--color-light-neutral-translucent-100-inverted);
|
|
35
35
|
color: var(--color-light-neutral-translucent-700-inverted);
|
|
36
36
|
}
|
|
37
|
-
.navigation-bar-
|
|
37
|
+
.navigation-bar-private__mobileWrapper_67egm svg > path {
|
|
38
38
|
fill: var(--navigation-bar-back-arrow-mobile-fill-inverted);
|
|
39
39
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
require('./inverted.css');
|
|
4
4
|
|
|
5
|
-
var invertedColors = {"component":"navigation-bar-
|
|
5
|
+
var invertedColors = {"component":"navigation-bar-private__component_67egm","text":"navigation-bar-private__text_67egm","mobileWrapper":"navigation-bar-private__mobileWrapper_67egm"};
|
|
6
6
|
|
|
7
7
|
module.exports = invertedColors;
|
|
8
8
|
//# sourceMappingURL=inverted.module.css.js.map
|
|
@@ -30,7 +30,7 @@ var Closer = function (_a) {
|
|
|
30
30
|
return (React__default.default.createElement("div", { className: cn__default.default(index_module.closer, className, (_b = {},
|
|
31
31
|
_b[index_module.sticky] = sticky,
|
|
32
32
|
_b)) },
|
|
33
|
-
React__default.default.createElement(coreComponentsIconButton.IconButton, tslib.__assign({ size: view === 'desktop' ?
|
|
33
|
+
React__default.default.createElement(coreComponentsIconButton.IconButton, tslib.__assign({ size: view === 'desktop' ? 48 : 32, className: cn__default.default(index_module.button, colorStyles[colors].button, (_c = {},
|
|
34
34
|
_c[colorStyles[colors].mobile] = view === 'mobile',
|
|
35
35
|
_c)), "aria-label": '\u0437\u0430\u043A\u0440\u044B\u0442\u044C', onClick: handleClick, icon: icon, colors: colors, dataTestId: dataTestId }, restProps))));
|
|
36
36
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Component.js","sources":["../../src/components/closer/Component.tsx"],"sourcesContent":["import React, { type ButtonHTMLAttributes, type ElementType, type FC } from 'react';\nimport cn from 'classnames';\n\nimport { IconButton, type IconButtonProps } from '@alfalab/core-components-icon-button';\nimport { CrossHeavyMIcon } from '@alfalab/icons-glyph/CrossHeavyMIcon';\nimport { CrossMIcon } from '@alfalab/icons-glyph/CrossMIcon';\n\nimport defaultColors from './default.module.css';\nimport styles from './index.module.css';\nimport invertedColors from './inverted.module.css';\n\nconst colorStyles = {\n default: defaultColors,\n inverted: invertedColors,\n} as const;\n\nexport interface CloserProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n /**\n * Вид компонента\n */\n view: 'desktop' | 'mobile';\n\n /**\n * Дополнительный класс\n */\n className?: string;\n\n /**\n * Позиция крестика\n */\n align?: 'left' | 'right';\n\n /**\n * Фиксирует крестик\n */\n sticky?: boolean;\n\n /**\n * Иконка\n */\n icon?: ElementType;\n\n /**\n * Набор цветов для компонента\n */\n colors?: IconButtonProps['colors'];\n\n /**\n * Идентификатор для систем автоматизированного тестирования\n */\n dataTestId?: string;\n\n /**\n * Коллбэк закрытия.\n */\n onClose?: (\n event: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement>,\n reason?: 'backdropClick' | 'escapeKeyDown' | 'closerClick',\n ) => void;\n}\n\nexport const Closer: FC<CloserProps> = ({\n view,\n className,\n sticky,\n icon = view === 'desktop' ? CrossHeavyMIcon : CrossMIcon,\n colors = 'default',\n dataTestId,\n onClose,\n ...restProps\n}) => {\n const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n onClose?.(event, 'closerClick');\n };\n\n return (\n <div\n className={cn(styles.closer, className, {\n [styles.sticky]: sticky,\n })}\n >\n <IconButton\n size={view === 'desktop' ?
|
|
1
|
+
{"version":3,"file":"Component.js","sources":["../../src/components/closer/Component.tsx"],"sourcesContent":["import React, { type ButtonHTMLAttributes, type ElementType, type FC } from 'react';\nimport cn from 'classnames';\n\nimport { IconButton, type IconButtonProps } from '@alfalab/core-components-icon-button';\nimport { CrossHeavyMIcon } from '@alfalab/icons-glyph/CrossHeavyMIcon';\nimport { CrossMIcon } from '@alfalab/icons-glyph/CrossMIcon';\n\nimport defaultColors from './default.module.css';\nimport styles from './index.module.css';\nimport invertedColors from './inverted.module.css';\n\nconst colorStyles = {\n default: defaultColors,\n inverted: invertedColors,\n} as const;\n\nexport interface CloserProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n /**\n * Вид компонента\n */\n view: 'desktop' | 'mobile';\n\n /**\n * Дополнительный класс\n */\n className?: string;\n\n /**\n * Позиция крестика\n */\n align?: 'left' | 'right';\n\n /**\n * Фиксирует крестик\n */\n sticky?: boolean;\n\n /**\n * Иконка\n */\n icon?: ElementType;\n\n /**\n * Набор цветов для компонента\n */\n colors?: IconButtonProps['colors'];\n\n /**\n * Идентификатор для систем автоматизированного тестирования\n */\n dataTestId?: string;\n\n /**\n * Коллбэк закрытия.\n */\n onClose?: (\n event: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement>,\n reason?: 'backdropClick' | 'escapeKeyDown' | 'closerClick',\n ) => void;\n}\n\nexport const Closer: FC<CloserProps> = ({\n view,\n className,\n sticky,\n icon = view === 'desktop' ? CrossHeavyMIcon : CrossMIcon,\n colors = 'default',\n dataTestId,\n onClose,\n ...restProps\n}) => {\n const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n onClose?.(event, 'closerClick');\n };\n\n return (\n <div\n className={cn(styles.closer, className, {\n [styles.sticky]: sticky,\n })}\n >\n <IconButton\n size={view === 'desktop' ? 48 : 32}\n className={cn(styles.button, colorStyles[colors].button, {\n [colorStyles[colors].mobile]: view === 'mobile',\n })}\n aria-label='закрыть'\n onClick={handleClick}\n icon={icon}\n colors={colors}\n dataTestId={dataTestId}\n {...restProps}\n />\n </div>\n );\n};\n"],"names":["defaultColors","invertedColors","CrossHeavyMIcon","CrossMIcon","__rest","React","cn","styles","IconButton","__assign"],"mappings":";;;;;;;;;;;;;;;;;;;AAWA,IAAM,WAAW,GAAG;AAChB,IAAA,OAAO,EAAEA,cAAa;AACtB,IAAA,QAAQ,EAAEC,eAAc;CAClB;AA+CH,IAAM,MAAM,GAAoB,UAAC,EASvC,EAAA;;AARG,IAAA,IAAA,IAAI,GAAA,EAAA,CAAA,IAAA,EACJ,SAAS,GAAA,EAAA,CAAA,SAAA,EACT,MAAM,GAAA,EAAA,CAAA,MAAA,EACN,YAAwD,EAAxD,IAAI,mBAAG,IAAI,KAAK,SAAS,GAAGC,+BAAe,GAAGC,qBAAU,GAAA,EAAA,EACxD,cAAkB,EAAlB,MAAM,mBAAG,SAAS,GAAA,EAAA,EAClB,UAAU,GAAA,EAAA,CAAA,UAAA,EACV,OAAO,GAAA,EAAA,CAAA,OAAA,EACJ,SAAS,GAAAC,YAAA,CAAA,EAAA,EARwB,0EASvC,CADe;IAEZ,IAAM,WAAW,GAAG,UAAC,KAA0C,EAAA;QAC3D,OAAO,KAAA,IAAA,IAAP,OAAO,KAAP,MAAA,GAAA,MAAA,GAAA,OAAO,CAAG,KAAK,EAAE,aAAa,CAAC;AACnC,KAAC;IAED,QACIC,sBACI,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAEC,mBAAE,CAACC,YAAM,CAAC,MAAM,EAAE,SAAS,GAAA,EAAA,GAAA,EAAA;AAClC,YAAA,EAAA,CAACA,YAAM,CAAC,MAAM,CAAA,GAAG,MAAM;AACzB,YAAA,EAAA,EAAA,EAAA;AAEF,QAAAF,sBAAA,CAAA,aAAA,CAACG,mCAAU,EAAAC,cAAA,CAAA,EACP,IAAI,EAAE,IAAI,KAAK,SAAS,GAAG,EAAE,GAAG,EAAE,EAClC,SAAS,EAAEH,mBAAE,CAACC,YAAM,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,MAAM,GAAA,EAAA,GAAA,EAAA;gBACnD,EAAC,CAAA,WAAW,CAAC,MAAM,CAAC,CAAC,MAAM,CAAA,GAAG,IAAI,KAAK,QAAQ;oBACjD,EACS,YAAA,EAAA,4CAAS,EACpB,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,IAClB,SAAS,CAAA,CACf,CACA;AAEd;;;;"}
|
|
@@ -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_xrumq.navigation-bar-private__button_xrumq {
|
|
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_xrumq.navigation-bar-private__button_xrumq.navigation-bar-private__mobile_xrumq {
|
|
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_xrumq","mobile":"navigation-bar-private__mobile_xrumq"};
|
|
6
6
|
|
|
7
7
|
module.exports = defaultColors;
|
|
8
8
|
//# sourceMappingURL=default.module.css.js.map
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
:root {
|
|
2
2
|
--border-radius-circle: 50%;
|
|
3
|
-
}
|
|
3
|
+
}
|
|
4
|
+
:root {
|
|
4
5
|
--gap-0: 0px;
|
|
5
|
-
}
|
|
6
|
+
}
|
|
7
|
+
.navigation-bar-private__closer_3w7t4 {
|
|
6
8
|
flex-shrink: 0;
|
|
7
9
|
width: 48px;
|
|
8
10
|
height: 48px;
|
|
@@ -10,12 +12,15 @@
|
|
|
10
12
|
display: flex;
|
|
11
13
|
align-items: center;
|
|
12
14
|
justify-content: center;
|
|
13
|
-
}
|
|
15
|
+
}
|
|
16
|
+
.navigation-bar-private__button_3w7t4 {
|
|
14
17
|
-webkit-backdrop-filter: blur(10px);
|
|
15
18
|
backdrop-filter: blur(10px);
|
|
16
|
-
}
|
|
19
|
+
}
|
|
20
|
+
.navigation-bar-private__button_3w7t4.navigation-bar-private__button_3w7t4 {
|
|
17
21
|
border-radius: var(--border-radius-circle);
|
|
18
|
-
}
|
|
22
|
+
}
|
|
23
|
+
.navigation-bar-private__sticky_3w7t4 {
|
|
19
24
|
position: sticky;
|
|
20
25
|
top: var(--gap-0);
|
|
21
26
|
}
|
|
@@ -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_3w7t4","button":"navigation-bar-private__button_3w7t4","sticky":"navigation-bar-private__sticky_3w7t4"};
|
|
6
6
|
|
|
7
7
|
module.exports = styles;
|
|
8
8
|
//# sourceMappingURL=index.module.css.js.map
|
|
@@ -10,11 +10,11 @@
|
|
|
10
10
|
--color-light-neutral-translucent-700-inverted
|
|
11
11
|
);
|
|
12
12
|
}
|
|
13
|
-
.navigation-bar-
|
|
13
|
+
.navigation-bar-private__button_12z9i.navigation-bar-private__button_12z9i {
|
|
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_12z9i.navigation-bar-private__button_12z9i.navigation-bar-private__mobile_12z9i {
|
|
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_12z9i","mobile":"navigation-bar-private__mobile_12z9i"};
|
|
6
6
|
|
|
7
7
|
module.exports = invertedColors;
|
|
8
8
|
//# sourceMappingURL=inverted.module.css.js.map
|
|
@@ -30,14 +30,14 @@ var BackArrowAddon = function (_a) {
|
|
|
30
30
|
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, _f = _a.colors, colors = _f === void 0 ? 'default' : _f, htmlAttributes = tslib.__rest(_a, ["text", "onClick", "className", "textOpacity", "view", "colors"]);
|
|
31
31
|
var Icon = view === 'desktop' ? ArrowLeftMediumMIcon.ArrowLeftMediumMIcon : ArrowLeftMIcon.ArrowLeftMIcon;
|
|
32
32
|
var isMobileView = view === 'mobile';
|
|
33
|
-
return (React__default.default.createElement(desktop.ButtonDesktop, tslib.__assign({ view: 'text', size: isMobileView ?
|
|
33
|
+
return (React__default.default.createElement(desktop.ButtonDesktop, tslib.__assign({ view: 'text', size: isMobileView ? 32 : 48, onClick: onClick, "aria-label": '\u043D\u0430\u0437\u0430\u0434', className: cn__default.default(styles__default.default.component, colorStyles[colors].component, (_b = {}, _b[styles__default.default.mobileComponent] = isMobileView, _b), className) }, htmlAttributes),
|
|
34
34
|
React__default.default.createElement("div", { className: styles__default.default.flex },
|
|
35
35
|
React__default.default.createElement("div", { className: cn__default.default(styles__default.default.iconWrapper, (_c = {},
|
|
36
36
|
_c[styles__default.default.mobileWrapper] = isMobileView,
|
|
37
37
|
_c[colorStyles[colors].mobileWrapper] = isMobileView,
|
|
38
38
|
_c)) },
|
|
39
39
|
React__default.default.createElement(Icon, null)),
|
|
40
|
-
textOpacity > 0 && text && (React__default.default.createElement(cssm.
|
|
40
|
+
textOpacity > 0 && text && (React__default.default.createElement(cssm.TypographyText, { className: cn__default.default(styles__default.default.text, colorStyles[colors].text), view: view === 'desktop' ? 'primary-large' : 'component-primary', weight: 'medium', style: { opacity: textOpacity } }, text)))));
|
|
41
41
|
};
|
|
42
42
|
|
|
43
43
|
exports.BackArrowAddon = BackArrowAddon;
|
|
@@ -1 +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 {
|
|
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 { TypographyText } from '@alfalab/core-components-typography';\nimport { ArrowLeftMediumMIcon } from '@alfalab/icons-glyph/ArrowLeftMediumMIcon';\nimport { ArrowLeftMIcon } from '@alfalab/icons-glyph/ArrowLeftMIcon';\n\nimport defaultColors from './default.module.css';\nimport styles from './index.module.css';\nimport invertedColors from './inverted.module.css';\n\nconst colorStyles = {\n default: defaultColors,\n inverted: invertedColors,\n};\n\ntype ColorType = 'default' | 'inverted';\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 /**\n * Набор цветов для компонента\n */\n colors?: ColorType;\n}\n\nexport const BackArrowAddon: React.FC<BackArrowAddonProps> = ({\n text = 'Назад',\n onClick,\n className,\n textOpacity = 1,\n view,\n colors = 'default',\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 ? 32 : 48}\n onClick={onClick}\n aria-label='назад'\n className={cn(\n styles.component,\n colorStyles[colors].component,\n { [styles.mobileComponent]: isMobileView },\n className,\n )}\n {...htmlAttributes}\n >\n <div className={styles.flex}>\n <div\n className={cn(styles.iconWrapper, {\n [styles.mobileWrapper]: isMobileView,\n [colorStyles[colors].mobileWrapper]: isMobileView,\n })}\n >\n <Icon />\n </div>\n {textOpacity > 0 && text && (\n <TypographyText\n className={cn(styles.text, colorStyles[colors].text)}\n view={view === 'desktop' ? 'primary-large' : 'component-primary'}\n weight='medium'\n style={{ opacity: textOpacity }}\n >\n {text}\n </TypographyText>\n )}\n </div>\n </ButtonDesktop>\n );\n};\n"],"names":["defaultColors","invertedColors","__rest","ArrowLeftMediumMIcon","ArrowLeftMIcon","React","ButtonDesktop","__assign","cn","styles","TypographyText"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAYA,IAAM,WAAW,GAAG;AAChB,IAAA,OAAO,EAAEA,8BAAa;AACtB,IAAA,QAAQ,EAAEC,+BAAc;CAC3B;AAoCM,IAAM,cAAc,GAAkC,UAAC,EAQ7D,EAAA;;AAPG,IAAA,IAAA,EAAc,GAAA,EAAA,CAAA,IAAA,EAAd,IAAI,GAAA,EAAA,KAAA,MAAA,GAAG,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,EACJ,EAAkB,GAAA,EAAA,CAAA,MAAA,EAAlB,MAAM,GAAA,EAAA,KAAA,MAAA,GAAG,SAAS,GAAA,EAAA,EACf,cAAc,GAAAC,YAAA,CAAA,EAAA,EAPyC,iEAQ7D,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,EAAE,GAAG,EAAE,EAC5B,OAAO,EAAE,OAAO,EACL,YAAA,EAAA,gCAAO,EAClB,SAAS,EAAEC,mBAAE,CACTC,uBAAM,CAAC,SAAS,EAChB,WAAW,CAAC,MAAM,CAAC,CAAC,SAAS,GAC3B,EAAA,GAAA,EAAA,EAAA,EAAA,CAACA,uBAAM,CAAC,eAAe,CAAA,GAAG,YAAY,EACxC,EAAA,GAAA,SAAS,CACZ,EAAA,EACG,cAAc,CAAA;AAElB,QAAAJ,sBAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEI,uBAAM,CAAC,IAAI,EAAA;AACvB,YAAAJ,sBAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EACI,SAAS,EAAEG,mBAAE,CAACC,uBAAM,CAAC,WAAW,GAAA,EAAA,GAAA,EAAA;AAC5B,oBAAA,EAAA,CAACA,uBAAM,CAAC,aAAa,CAAA,GAAG,YAAY;AACpC,oBAAA,EAAA,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,aAAa,IAAG,YAAY;AACnD,oBAAA,EAAA,EAAA,EAAA;gBAEFJ,sBAAC,CAAA,aAAA,CAAA,IAAI,OAAG,CACN;YACL,WAAW,GAAG,CAAC,IAAI,IAAI,KACpBA,sBAAA,CAAA,aAAA,CAACK,mBAAc,EAAA,EACX,SAAS,EAAEF,mBAAE,CAACC,uBAAM,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EACpD,IAAI,EAAE,IAAI,KAAK,SAAS,GAAG,eAAe,GAAG,mBAAmB,EAChE,MAAM,EAAC,QAAQ,EACf,KAAK,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,EAAA,EAE9B,IAAI,CACQ,CACpB,CACC,CACM;AAExB;;;;"}
|
|
@@ -1,45 +1,54 @@
|
|
|
1
1
|
:root {
|
|
2
2
|
--border-radius-circle: 50%;
|
|
3
3
|
--border-radius-pill: 99px;
|
|
4
|
-
}
|
|
4
|
+
}
|
|
5
|
+
:root {
|
|
5
6
|
--gap-xs: 8px;
|
|
6
7
|
--gap-s: 12px;
|
|
7
8
|
--gap-0: 0px;
|
|
8
9
|
--gap-8: var(--gap-xs);
|
|
9
10
|
--gap-12: var(--gap-s);
|
|
10
|
-
}
|
|
11
|
+
}
|
|
12
|
+
.component {
|
|
11
13
|
height: 100%;
|
|
12
14
|
-webkit-backdrop-filter: blur(10px);
|
|
13
15
|
backdrop-filter: blur(10px);
|
|
14
16
|
border-radius: var(--border-radius-pill);
|
|
15
17
|
min-width: 48px;
|
|
16
|
-
}
|
|
18
|
+
}
|
|
19
|
+
.component svg > path {
|
|
17
20
|
transition: fill 0.2s ease;
|
|
18
|
-
}
|
|
21
|
+
}
|
|
22
|
+
.mobileComponent {
|
|
19
23
|
height: 32px;
|
|
20
24
|
min-width: 32px;
|
|
21
25
|
margin: var(--gap-0) var(--gap-8);
|
|
22
26
|
-webkit-backdrop-filter: none;
|
|
23
27
|
backdrop-filter: none;
|
|
24
28
|
background: none;
|
|
25
|
-
}
|
|
29
|
+
}
|
|
30
|
+
.flex {
|
|
26
31
|
display: flex;
|
|
27
32
|
align-items: center;
|
|
28
|
-
}
|
|
33
|
+
}
|
|
34
|
+
.iconWrapper {
|
|
29
35
|
display: inline-flex;
|
|
30
36
|
align-items: center;
|
|
31
37
|
justify-content: center;
|
|
32
38
|
height: 48px;
|
|
33
39
|
margin: var(--gap-0) var(--gap-8) var(--gap-0) var(--gap-12);
|
|
34
40
|
border-radius: var(--border-radius-circle);
|
|
35
|
-
}
|
|
41
|
+
}
|
|
42
|
+
.iconWrapper + .text {
|
|
36
43
|
margin-right: var(--gap-12);
|
|
37
|
-
}
|
|
44
|
+
}
|
|
45
|
+
.mobileWrapper {
|
|
38
46
|
width: 32px;
|
|
39
47
|
height: 32px;
|
|
40
48
|
-webkit-backdrop-filter: blur(10px);
|
|
41
49
|
backdrop-filter: blur(10px);
|
|
42
50
|
margin: var(--gap-0);
|
|
43
|
-
}
|
|
51
|
+
}
|
|
52
|
+
.mobileWrapper + .text {
|
|
44
53
|
margin: var(--gap-0) var(--gap-12) var(--gap-0) var(--gap-8);
|
|
45
54
|
}
|
|
@@ -33,7 +33,7 @@ var Closer = function (_a) {
|
|
|
33
33
|
return (React__default.default.createElement("div", { className: cn__default.default(styles__default.default.closer, className, (_b = {},
|
|
34
34
|
_b[styles__default.default.sticky] = sticky,
|
|
35
35
|
_b)) },
|
|
36
|
-
React__default.default.createElement(cssm.IconButton, tslib.__assign({ size: view === 'desktop' ?
|
|
36
|
+
React__default.default.createElement(cssm.IconButton, tslib.__assign({ size: view === 'desktop' ? 48 : 32, className: cn__default.default(styles__default.default.button, colorStyles[colors].button, (_c = {},
|
|
37
37
|
_c[colorStyles[colors].mobile] = view === 'mobile',
|
|
38
38
|
_c)), "aria-label": '\u0437\u0430\u043A\u0440\u044B\u0442\u044C', onClick: handleClick, icon: icon, colors: colors, dataTestId: dataTestId }, restProps))));
|
|
39
39
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Component.js","sources":["../../../src/components/closer/Component.tsx"],"sourcesContent":["import React, { type ButtonHTMLAttributes, type ElementType, type FC } from 'react';\nimport cn from 'classnames';\n\nimport { IconButton, type IconButtonProps } from '@alfalab/core-components-icon-button';\nimport { CrossHeavyMIcon } from '@alfalab/icons-glyph/CrossHeavyMIcon';\nimport { CrossMIcon } from '@alfalab/icons-glyph/CrossMIcon';\n\nimport defaultColors from './default.module.css';\nimport styles from './index.module.css';\nimport invertedColors from './inverted.module.css';\n\nconst colorStyles = {\n default: defaultColors,\n inverted: invertedColors,\n} as const;\n\nexport interface CloserProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n /**\n * Вид компонента\n */\n view: 'desktop' | 'mobile';\n\n /**\n * Дополнительный класс\n */\n className?: string;\n\n /**\n * Позиция крестика\n */\n align?: 'left' | 'right';\n\n /**\n * Фиксирует крестик\n */\n sticky?: boolean;\n\n /**\n * Иконка\n */\n icon?: ElementType;\n\n /**\n * Набор цветов для компонента\n */\n colors?: IconButtonProps['colors'];\n\n /**\n * Идентификатор для систем автоматизированного тестирования\n */\n dataTestId?: string;\n\n /**\n * Коллбэк закрытия.\n */\n onClose?: (\n event: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement>,\n reason?: 'backdropClick' | 'escapeKeyDown' | 'closerClick',\n ) => void;\n}\n\nexport const Closer: FC<CloserProps> = ({\n view,\n className,\n sticky,\n icon = view === 'desktop' ? CrossHeavyMIcon : CrossMIcon,\n colors = 'default',\n dataTestId,\n onClose,\n ...restProps\n}) => {\n const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n onClose?.(event, 'closerClick');\n };\n\n return (\n <div\n className={cn(styles.closer, className, {\n [styles.sticky]: sticky,\n })}\n >\n <IconButton\n size={view === 'desktop' ?
|
|
1
|
+
{"version":3,"file":"Component.js","sources":["../../../src/components/closer/Component.tsx"],"sourcesContent":["import React, { type ButtonHTMLAttributes, type ElementType, type FC } from 'react';\nimport cn from 'classnames';\n\nimport { IconButton, type IconButtonProps } from '@alfalab/core-components-icon-button';\nimport { CrossHeavyMIcon } from '@alfalab/icons-glyph/CrossHeavyMIcon';\nimport { CrossMIcon } from '@alfalab/icons-glyph/CrossMIcon';\n\nimport defaultColors from './default.module.css';\nimport styles from './index.module.css';\nimport invertedColors from './inverted.module.css';\n\nconst colorStyles = {\n default: defaultColors,\n inverted: invertedColors,\n} as const;\n\nexport interface CloserProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n /**\n * Вид компонента\n */\n view: 'desktop' | 'mobile';\n\n /**\n * Дополнительный класс\n */\n className?: string;\n\n /**\n * Позиция крестика\n */\n align?: 'left' | 'right';\n\n /**\n * Фиксирует крестик\n */\n sticky?: boolean;\n\n /**\n * Иконка\n */\n icon?: ElementType;\n\n /**\n * Набор цветов для компонента\n */\n colors?: IconButtonProps['colors'];\n\n /**\n * Идентификатор для систем автоматизированного тестирования\n */\n dataTestId?: string;\n\n /**\n * Коллбэк закрытия.\n */\n onClose?: (\n event: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement>,\n reason?: 'backdropClick' | 'escapeKeyDown' | 'closerClick',\n ) => void;\n}\n\nexport const Closer: FC<CloserProps> = ({\n view,\n className,\n sticky,\n icon = view === 'desktop' ? CrossHeavyMIcon : CrossMIcon,\n colors = 'default',\n dataTestId,\n onClose,\n ...restProps\n}) => {\n const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n onClose?.(event, 'closerClick');\n };\n\n return (\n <div\n className={cn(styles.closer, className, {\n [styles.sticky]: sticky,\n })}\n >\n <IconButton\n size={view === 'desktop' ? 48 : 32}\n className={cn(styles.button, colorStyles[colors].button, {\n [colorStyles[colors].mobile]: view === 'mobile',\n })}\n aria-label='закрыть'\n onClick={handleClick}\n icon={icon}\n colors={colors}\n dataTestId={dataTestId}\n {...restProps}\n />\n </div>\n );\n};\n"],"names":["defaultColors","invertedColors","CrossHeavyMIcon","CrossMIcon","__rest","React","cn","styles","IconButton","__assign"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAWA,IAAM,WAAW,GAAG;AAChB,IAAA,OAAO,EAAEA,8BAAa;AACtB,IAAA,QAAQ,EAAEC,+BAAc;CAClB;AA+CH,IAAM,MAAM,GAAoB,UAAC,EASvC,EAAA;;AARG,IAAA,IAAA,IAAI,GAAA,EAAA,CAAA,IAAA,EACJ,SAAS,GAAA,EAAA,CAAA,SAAA,EACT,MAAM,GAAA,EAAA,CAAA,MAAA,EACN,YAAwD,EAAxD,IAAI,mBAAG,IAAI,KAAK,SAAS,GAAGC,+BAAe,GAAGC,qBAAU,GAAA,EAAA,EACxD,cAAkB,EAAlB,MAAM,mBAAG,SAAS,GAAA,EAAA,EAClB,UAAU,GAAA,EAAA,CAAA,UAAA,EACV,OAAO,GAAA,EAAA,CAAA,OAAA,EACJ,SAAS,GAAAC,YAAA,CAAA,EAAA,EARwB,0EASvC,CADe;IAEZ,IAAM,WAAW,GAAG,UAAC,KAA0C,EAAA;QAC3D,OAAO,KAAA,IAAA,IAAP,OAAO,KAAP,MAAA,GAAA,MAAA,GAAA,OAAO,CAAG,KAAK,EAAE,aAAa,CAAC;AACnC,KAAC;IAED,QACIC,sBACI,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAEC,mBAAE,CAACC,uBAAM,CAAC,MAAM,EAAE,SAAS,GAAA,EAAA,GAAA,EAAA;AAClC,YAAA,EAAA,CAACA,uBAAM,CAAC,MAAM,CAAA,GAAG,MAAM;AACzB,YAAA,EAAA,EAAA,EAAA;AAEF,QAAAF,sBAAA,CAAA,aAAA,CAACG,eAAU,EAAAC,cAAA,CAAA,EACP,IAAI,EAAE,IAAI,KAAK,SAAS,GAAG,EAAE,GAAG,EAAE,EAClC,SAAS,EAAEH,mBAAE,CAACC,uBAAM,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,MAAM,GAAA,EAAA,GAAA,EAAA;gBACnD,EAAC,CAAA,WAAW,CAAC,MAAM,CAAC,CAAC,MAAM,CAAA,GAAG,IAAI,KAAK,QAAQ;oBACjD,EACS,YAAA,EAAA,4CAAS,EACpB,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,IAClB,SAAS,CAAA,CACf,CACA;AAEd;;;;"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
:root {
|
|
2
2
|
--border-radius-circle: 50%;
|
|
3
|
-
}
|
|
3
|
+
}
|
|
4
|
+
:root {
|
|
4
5
|
--gap-0: 0px;
|
|
5
|
-
}
|
|
6
|
+
}
|
|
7
|
+
.closer {
|
|
6
8
|
flex-shrink: 0;
|
|
7
9
|
width: 48px;
|
|
8
10
|
height: 48px;
|
|
@@ -10,12 +12,15 @@
|
|
|
10
12
|
display: flex;
|
|
11
13
|
align-items: center;
|
|
12
14
|
justify-content: center;
|
|
13
|
-
}
|
|
15
|
+
}
|
|
16
|
+
.button {
|
|
14
17
|
-webkit-backdrop-filter: blur(10px);
|
|
15
18
|
backdrop-filter: blur(10px);
|
|
16
|
-
}
|
|
19
|
+
}
|
|
20
|
+
.button.button {
|
|
17
21
|
border-radius: var(--border-radius-circle);
|
|
18
|
-
}
|
|
22
|
+
}
|
|
23
|
+
.sticky {
|
|
19
24
|
position: sticky;
|
|
20
25
|
top: var(--gap-0);
|
|
21
26
|
}
|