@alfalab/core-components-bottom-sheet 4.0.0 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/{component-0665a3d7.d.ts → component-8680d27f.d.ts} +9 -6
  3. package/dist/{component-0665a3d7.js → component-8680d27f.js} +15 -15
  4. package/dist/component.js +2 -2
  5. package/dist/components/backer/Component.js +2 -2
  6. package/dist/components/backer/index.css +9 -4
  7. package/dist/components/closer/Component.js +2 -2
  8. package/dist/components/closer/index.css +9 -4
  9. package/dist/components/footer/Component.js +1 -1
  10. package/dist/components/footer/index.css +4 -4
  11. package/dist/components/header/Component.js +2 -2
  12. package/dist/components/header/index.css +17 -30
  13. package/dist/components/swipeable-backdrop/Component.js +1 -1
  14. package/dist/{esm/component-2501d7d0.d.ts → cssm/component-d1b19e73.d.ts} +9 -6
  15. package/dist/cssm/{component-4b59a168.js → component-d1b19e73.js} +12 -12
  16. package/dist/cssm/component.js +1 -1
  17. package/dist/cssm/components/backer/index.module.css +6 -1
  18. package/dist/cssm/components/closer/index.module.css +6 -1
  19. package/dist/cssm/components/header/Component.js +1 -1
  20. package/dist/cssm/components/header/index.module.css +1 -14
  21. package/dist/cssm/index.d.ts +1 -1
  22. package/dist/cssm/index.js +1 -1
  23. package/dist/cssm/index.module.css +1 -1
  24. package/dist/{cssm/component-4b59a168.d.ts → esm/component-7d960f38.d.ts} +9 -6
  25. package/dist/esm/{component-2501d7d0.js → component-7d960f38.js} +15 -15
  26. package/dist/esm/component.js +2 -2
  27. package/dist/esm/components/backer/Component.js +2 -2
  28. package/dist/esm/components/backer/index.css +9 -4
  29. package/dist/esm/components/closer/Component.js +2 -2
  30. package/dist/esm/components/closer/index.css +9 -4
  31. package/dist/esm/components/footer/Component.js +1 -1
  32. package/dist/esm/components/footer/index.css +4 -4
  33. package/dist/esm/components/header/Component.js +2 -2
  34. package/dist/esm/components/header/index.css +17 -30
  35. package/dist/esm/components/swipeable-backdrop/Component.js +1 -1
  36. package/dist/esm/index.css +16 -16
  37. package/dist/esm/index.d.ts +1 -1
  38. package/dist/esm/index.js +2 -2
  39. package/dist/esm/{tslib.es6-97cd96ee.d.ts → tslib.es6-7f629856.d.ts} +0 -0
  40. package/dist/esm/{tslib.es6-97cd96ee.js → tslib.es6-7f629856.js} +0 -0
  41. package/dist/index.css +16 -16
  42. package/dist/index.d.ts +1 -1
  43. package/dist/index.js +2 -2
  44. package/dist/modern/{component-6718dad9.d.ts → component-7a1c353b.d.ts} +9 -6
  45. package/dist/modern/{component-6718dad9.js → component-7a1c353b.js} +12 -12
  46. package/dist/modern/component.js +1 -1
  47. package/dist/modern/components/backer/Component.js +1 -1
  48. package/dist/modern/components/backer/index.css +9 -4
  49. package/dist/modern/components/closer/Component.js +1 -1
  50. package/dist/modern/components/closer/index.css +9 -4
  51. package/dist/modern/components/footer/Component.js +1 -1
  52. package/dist/modern/components/footer/index.css +4 -4
  53. package/dist/modern/components/header/Component.js +1 -1
  54. package/dist/modern/components/header/index.css +17 -30
  55. package/dist/modern/index.css +16 -16
  56. package/dist/modern/index.d.ts +1 -1
  57. package/dist/modern/index.js +1 -1
  58. package/dist/{tslib.es6-4d9b8d1d.d.ts → tslib.es6-c74c8bbc.d.ts} +0 -0
  59. package/dist/{tslib.es6-4d9b8d1d.js → tslib.es6-c74c8bbc.js} +0 -0
  60. package/package.json +10 -10
package/CHANGELOG.md CHANGED
@@ -3,6 +3,26 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [4.0.2](https://github.com/alfa-laboratory/core-components/compare/@alfalab/core-components-bottom-sheet@4.0.1...@alfalab/core-components-bottom-sheet@4.0.2) (2022-03-30)
7
+
8
+ **Note:** Version bump only for package @alfalab/core-components-bottom-sheet
9
+
10
+
11
+
12
+
13
+
14
+ ## [4.0.1](https://github.com/alfa-laboratory/core-components/compare/@alfalab/core-components-bottom-sheet@4.0.0...@alfalab/core-components-bottom-sheet@4.0.1) (2022-03-28)
15
+
16
+
17
+ ### Bug Fixes
18
+
19
+ * fix modal and bottom-sheet dark mode ([#1043](https://github.com/alfa-laboratory/core-components/issues/1043)) ([cad36a2](https://github.com/alfa-laboratory/core-components/commit/cad36a25b28bfa71296c3dd9dc325eec28b5c241))
20
+ * **bottom-sheet:** fix bottom-sheet swipeable marker ([#1044](https://github.com/alfa-laboratory/core-components/issues/1044)) ([0734e55](https://github.com/alfa-laboratory/core-components/commit/0734e55cc0e394fb33452f875ffcf47819277aee))
21
+
22
+
23
+
24
+
25
+
6
26
  # [4.0.0](https://github.com/alfa-laboratory/core-components/compare/@alfalab/core-components-bottom-sheet@3.1.1...@alfalab/core-components-bottom-sheet@4.0.0) (2022-03-24)
7
27
 
8
28
 
@@ -12,7 +12,7 @@ type HeaderProps = {
12
12
  /**
13
13
  * Дополнительный класс
14
14
  */
15
- className?: string;
15
+ headerClassName?: string;
16
16
  /**
17
17
  * Дополнительный класс для аддонов
18
18
  */
@@ -25,11 +25,6 @@ type HeaderProps = {
25
25
  * Дополнительный класс для компонента стрелки назад
26
26
  */
27
27
  backerClassName?: string;
28
- /**
29
- * Будет ли свайпаться шторка
30
- * @default true
31
- */
32
- swipeable?: boolean;
33
28
  /**
34
29
  * Слот слева
35
30
  */
@@ -90,10 +85,18 @@ type BottomSheetProps = {
90
85
  * Дополнительный класс
91
86
  */
92
87
  contentClassName?: string;
88
+ /**
89
+ * Дополнительный класс
90
+ */
91
+ containerClassName?: string;
93
92
  /**
94
93
  * Дополнительный класс шапки
95
94
  */
96
95
  headerClassName?: string;
96
+ /**
97
+ * Дополнительный класс футера
98
+ */
99
+ footerClassName?: string;
97
100
  /**
98
101
  * Дополнительный класс для аддонов
99
102
  */
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var tslib_es6 = require('./tslib.es6-4d9b8d1d.js');
3
+ var tslib_es6 = require('./tslib.es6-c74c8bbc.js');
4
4
  var React = require('react');
5
5
  var cn = require('classnames');
6
6
  var reactDiv100vh = require('react-div-100vh');
@@ -17,12 +17,12 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
17
17
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
18
18
  var cn__default = /*#__PURE__*/_interopDefaultLegacy(cn);
19
19
 
20
- var styles = {"header":"bottom-sheet__header_6oyfh","sticky":"bottom-sheet__sticky_6oyfh","highlighted":"bottom-sheet__highlighted_6oyfh","justifyEnd":"bottom-sheet__justifyEnd_6oyfh","marker":"bottom-sheet__marker_6oyfh","addon":"bottom-sheet__addon_6oyfh","addonFixed":"bottom-sheet__addonFixed_6oyfh","addonLeft":"bottom-sheet__addonLeft_6oyfh","addonRight":"bottom-sheet__addonRight_6oyfh","title":"bottom-sheet__title_6oyfh","titleCenter":"bottom-sheet__titleCenter_6oyfh","titleLeft":"bottom-sheet__titleLeft_6oyfh","trimTitle":"bottom-sheet__trimTitle_6oyfh","titleBigIndentHorizontal":"bottom-sheet__titleBigIndentHorizontal_6oyfh","titleIndentRight":"bottom-sheet__titleIndentRight_6oyfh","titleIndentLeft":"bottom-sheet__titleIndentLeft_6oyfh"};
20
+ var styles = {"header":"bottom-sheet__header_1ezhe","sticky":"bottom-sheet__sticky_1ezhe","highlighted":"bottom-sheet__highlighted_1ezhe","justifyEnd":"bottom-sheet__justifyEnd_1ezhe","addon":"bottom-sheet__addon_1ezhe","addonFixed":"bottom-sheet__addonFixed_1ezhe","addonLeft":"bottom-sheet__addonLeft_1ezhe","addonRight":"bottom-sheet__addonRight_1ezhe","title":"bottom-sheet__title_1ezhe","titleCenter":"bottom-sheet__titleCenter_1ezhe","titleLeft":"bottom-sheet__titleLeft_1ezhe","trimTitle":"bottom-sheet__trimTitle_1ezhe","titleBigIndentHorizontal":"bottom-sheet__titleBigIndentHorizontal_1ezhe","titleIndentRight":"bottom-sheet__titleIndentRight_1ezhe","titleIndentLeft":"bottom-sheet__titleIndentLeft_1ezhe"};
21
21
  require('./components/header/index.css')
22
22
 
23
23
  var Header = function (_a) {
24
24
  var _b, _c, _d, _e;
25
- var title = _a.title, className = _a.className, addonClassName = _a.addonClassName, closerClassName = _a.closerClassName, backerClassName = _a.backerClassName, swipeable = _a.swipeable, leftAddons = _a.leftAddons, rightAddons = _a.rightAddons, hasCloser = _a.hasCloser, hasBacker = _a.hasBacker, titleAlign = _a.titleAlign, trimTitle = _a.trimTitle, sticky = _a.sticky, onBack = _a.onBack;
25
+ var title = _a.title, headerClassName = _a.headerClassName, addonClassName = _a.addonClassName, closerClassName = _a.closerClassName, backerClassName = _a.backerClassName, leftAddons = _a.leftAddons, rightAddons = _a.rightAddons, hasCloser = _a.hasCloser, hasBacker = _a.hasBacker, titleAlign = _a.titleAlign, trimTitle = _a.trimTitle, sticky = _a.sticky, onBack = _a.onBack;
26
26
  var _f = React.useContext(coreComponentsBaseModal.BaseModalContext), headerHighlighted = _f.headerHighlighted, setHasHeader = _f.setHasHeader, setHeaderOffset = _f.setHeaderOffset;
27
27
  var hasLeftPart = hasBacker || leftAddons || titleAlign === 'center';
28
28
  var hasRightPart = hasCloser || rightAddons || titleAlign === 'center';
@@ -44,12 +44,11 @@ var Header = function (_a) {
44
44
  _a[styles.titleIndentRight] = !sticky && !titleAlignedCenter && hasRightPart,
45
45
  _a));
46
46
  };
47
- return (React__default['default'].createElement("div", { className: cn__default['default'](styles.header, className, (_b = {},
47
+ return (React__default['default'].createElement("div", { className: cn__default['default'](styles.header, headerClassName, (_b = {},
48
48
  _b[styles.justifyEnd] = !title,
49
49
  _b[styles.highlighted] = headerHighlighted && sticky,
50
50
  _b[styles.sticky] = sticky,
51
51
  _b)) },
52
- swipeable && React__default['default'].createElement("div", { className: cn__default['default'](styles.marker) }),
53
52
  hasLeftPart && (React__default['default'].createElement("div", { className: cn__default['default'](styles.addon, addonClassName, (_c = {},
54
53
  _c[styles.addonFixed] = !sticky,
55
54
  _c[styles.addonLeft] = !sticky,
@@ -65,22 +64,23 @@ var Header = function (_a) {
65
64
  _e)) }, hasCloser ? React__default['default'].createElement(components_closer_Component.Closer, { className: closerClassName }) : rightAddons))));
66
65
  };
67
66
 
68
- var styles$1 = {"modal":"bottom-sheet__modal_2931u","component":"bottom-sheet__component_2931u","withTransition":"bottom-sheet__withTransition_2931u","scrollableContainer":"bottom-sheet__scrollableContainer_2931u","marker":"bottom-sheet__marker_2931u","content":"bottom-sheet__content_2931u","noHeader":"bottom-sheet__noHeader_2931u","noFooter":"bottom-sheet__noFooter_2931u","scrollLocked":"bottom-sheet__scrollLocked_2931u","appear":"bottom-sheet__appear_2931u","enter":"bottom-sheet__enter_2931u","appearActive":"bottom-sheet__appearActive_2931u","enterActive":"bottom-sheet__enterActive_2931u","enterDone":"bottom-sheet__enterDone_2931u","appearDone":"bottom-sheet__appearDone_2931u","exit":"bottom-sheet__exit_2931u","exitActive":"bottom-sheet__exitActive_2931u"};
67
+ var styles$1 = {"modal":"bottom-sheet__modal_1nq3o","component":"bottom-sheet__component_1nq3o","withTransition":"bottom-sheet__withTransition_1nq3o","scrollableContainer":"bottom-sheet__scrollableContainer_1nq3o","marker":"bottom-sheet__marker_1nq3o","content":"bottom-sheet__content_1nq3o","noHeader":"bottom-sheet__noHeader_1nq3o","noFooter":"bottom-sheet__noFooter_1nq3o","scrollLocked":"bottom-sheet__scrollLocked_1nq3o","appear":"bottom-sheet__appear_1nq3o","enter":"bottom-sheet__enter_1nq3o","appearActive":"bottom-sheet__appearActive_1nq3o","enterActive":"bottom-sheet__enterActive_1nq3o","enterDone":"bottom-sheet__enterDone_1nq3o","appearDone":"bottom-sheet__appearDone_1nq3o","exit":"bottom-sheet__exit_1nq3o","exitActive":"bottom-sheet__exitActive_1nq3o"};
69
68
  require('./index.css')
70
69
 
71
70
  var TIMEOUT = 300;
72
71
  var SWIPE_CLOSE_VELOCITY = 0.4;
73
72
  var MIN_BACKDROP_OPACITY = 0.2;
74
73
  var HEADER_HEIGHT = 56;
74
+ var MARKET_HEIGHT = 24;
75
75
  /* Верхний отступ шторки, если она открыта на максимальную высоту */
76
76
  var HEADER_OFFSET = 24;
77
77
  var CLOSE_OFFSET = 0.2;
78
78
  var BottomSheet = React.forwardRef(function (_a, ref) {
79
79
  var _b, _c, _d;
80
- var open = _a.open, title = _a.title, actionButton = _a.actionButton, contentClassName = _a.contentClassName, headerClassName = _a.headerClassName, addonClassName = _a.addonClassName, closerClassName = _a.closerClassName, backerClassName = _a.backerClassName, className = _a.className, leftAddons = _a.leftAddons, rightAddons = _a.rightAddons, hasCloser = _a.hasCloser, hasBacker = _a.hasBacker, _e = _a.titleAlign, titleAlign = _e === void 0 ? 'left' : _e, trimTitle = _a.trimTitle, stickyHeader = _a.stickyHeader, stickyFooter = _a.stickyFooter, _f = _a.initialHeight, initialHeight = _f === void 0 ? 'default' : _f, hideOverlay = _a.hideOverlay, hideHeader = _a.hideHeader, disableOverlayClick = _a.disableOverlayClick, children = _a.children, zIndex = _a.zIndex, _g = _a.transitionProps, transitionProps = _g === void 0 ? {} : _g, dataTestId = _a.dataTestId, _h = _a.swipeable, swipeable = _h === void 0 ? true : _h, onClose = _a.onClose, onBack = _a.onBack;
81
- var _j = React.useState(0), sheetOffset = _j[0], setSheetOffset = _j[1];
82
- var _k = React.useState(1), backdropOpacity = _k[0], setBackdropOpacity = _k[1];
83
- var _l = React.useState(false), scrollLocked = _l[0], setScrollLocked = _l[1];
80
+ var open = _a.open, title = _a.title, actionButton = _a.actionButton, contentClassName = _a.contentClassName, containerClassName = _a.containerClassName, headerClassName = _a.headerClassName, footerClassName = _a.footerClassName, addonClassName = _a.addonClassName, closerClassName = _a.closerClassName, backerClassName = _a.backerClassName, className = _a.className, leftAddons = _a.leftAddons, rightAddons = _a.rightAddons, hasCloser = _a.hasCloser, hasBacker = _a.hasBacker, _e = _a.titleAlign, titleAlign = _e === void 0 ? 'left' : _e, trimTitle = _a.trimTitle, stickyHeader = _a.stickyHeader, _f = _a.stickyFooter, stickyFooter = _f === void 0 ? true : _f, _g = _a.initialHeight, initialHeight = _g === void 0 ? 'default' : _g, hideOverlay = _a.hideOverlay, hideHeader = _a.hideHeader, disableOverlayClick = _a.disableOverlayClick, children = _a.children, zIndex = _a.zIndex, _h = _a.transitionProps, transitionProps = _h === void 0 ? {} : _h, dataTestId = _a.dataTestId, _j = _a.swipeable, swipeable = _j === void 0 ? true : _j, onClose = _a.onClose, onBack = _a.onBack;
81
+ var _k = React.useState(0), sheetOffset = _k[0], setSheetOffset = _k[1];
82
+ var _l = React.useState(1), backdropOpacity = _l[0], setBackdropOpacity = _l[1];
83
+ var _m = React.useState(false), scrollLocked = _m[0], setScrollLocked = _m[1];
84
84
  var sheetHeight = React.useRef(0);
85
85
  var scrollableContainer = React.useRef(null);
86
86
  var scrollableContainerScrollValue = React.useRef(0);
@@ -94,7 +94,6 @@ var BottomSheet = React.forwardRef(function (_a, ref) {
94
94
  addonClassName: addonClassName,
95
95
  closerClassName: closerClassName,
96
96
  backerClassName: backerClassName,
97
- swipeable: swipeable,
98
97
  leftAddons: leftAddons,
99
98
  rightAddons: rightAddons,
100
99
  hasCloser: hasCloser,
@@ -123,7 +122,8 @@ var BottomSheet = React.forwardRef(function (_a, ref) {
123
122
  if (!swipeable)
124
123
  return true;
125
124
  if (!scrollableContainer.current ||
126
- (stickyHeader && offsetY <= HEADER_HEIGHT + HEADER_OFFSET)) {
125
+ (stickyHeader && offsetY <= HEADER_HEIGHT + HEADER_OFFSET) ||
126
+ (!stickyHeader && offsetY <= MARKET_HEIGHT + HEADER_OFFSET)) {
127
127
  return false;
128
128
  }
129
129
  if (!scrollableContainerScrollValue.current) {
@@ -221,16 +221,16 @@ var BottomSheet = React.forwardRef(function (_a, ref) {
221
221
  React__default['default'].createElement("div", tslib_es6.__assign({ className: cn__default['default'](styles$1.component, className, (_b = {},
222
222
  _b[styles$1.withTransition] = !sheetOffset,
223
223
  _b)), style: tslib_es6.__assign(tslib_es6.__assign({}, getSwipeStyles()), getHeightStyles()) }, sheetSwipeablehandlers),
224
- React__default['default'].createElement("div", { className: cn__default['default'](styles$1.scrollableContainer, (_c = {},
224
+ React__default['default'].createElement("div", { className: cn__default['default'](styles$1.scrollableContainer, containerClassName, (_c = {},
225
225
  _c[styles$1.scrollLocked] = scrollLocked,
226
226
  _c)), ref: scrollableContainer },
227
- swipeable && (hideHeader || emptyHeader) && (React__default['default'].createElement("div", { className: cn__default['default'](styles$1.marker) })),
227
+ swipeable && React__default['default'].createElement("div", { className: cn__default['default'](styles$1.marker) }),
228
228
  !hideHeader && !emptyHeader && React__default['default'].createElement(Header, tslib_es6.__assign({}, headerProps)),
229
229
  React__default['default'].createElement("div", { className: cn__default['default'](styles$1.content, contentClassName, (_d = {},
230
230
  _d[styles$1.noHeader] = hideHeader || emptyHeader,
231
231
  _d[styles$1.noFooter] = !actionButton,
232
232
  _d)) }, children),
233
- actionButton && React__default['default'].createElement(components_footer_Component.Footer, { sticky: stickyFooter }, actionButton)))));
233
+ actionButton && (React__default['default'].createElement(components_footer_Component.Footer, { sticky: stickyFooter, className: footerClassName }, actionButton))))));
234
234
  });
235
235
 
236
236
  exports.BottomSheet = BottomSheet;
package/dist/component.js CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- require('./tslib.es6-4d9b8d1d.js');
5
+ require('./tslib.es6-c74c8bbc.js');
6
6
  require('react');
7
7
  require('classnames');
8
8
  require('react-div-100vh');
@@ -14,7 +14,7 @@ require('@alfalab/icons-glyph/CrossMIcon');
14
14
  require('./components/closer/Component.js');
15
15
  require('@alfalab/icons-glyph/ArrowBackMIcon');
16
16
  require('./components/backer/Component.js');
17
- var components_header_Component = require('./component-0665a3d7.js');
17
+ var components_header_Component = require('./component-8680d27f.js');
18
18
  require('./components/footer/Component.js');
19
19
  require('@alfalab/core-components-backdrop');
20
20
  require('./components/swipeable-backdrop/Component.js');
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var tslib_es6 = require('../../tslib.es6-4d9b8d1d.js');
5
+ var tslib_es6 = require('../../tslib.es6-c74c8bbc.js');
6
6
  var React = require('react');
7
7
  var cn = require('classnames');
8
8
  var coreComponentsIconButton = require('@alfalab/core-components-icon-button');
@@ -13,7 +13,7 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
13
13
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
14
14
  var cn__default = /*#__PURE__*/_interopDefaultLegacy(cn);
15
15
 
16
- var styles = {"backer":"bottom-sheet__backer_1svh2","button":"bottom-sheet__button_1svh2"};
16
+ var styles = {"backer":"bottom-sheet__backer_kyu8g","button":"bottom-sheet__button_kyu8g"};
17
17
  require('./index.css')
18
18
 
19
19
  var Backer = function (_a) {
@@ -1,15 +1,20 @@
1
- /* hash: k9who */
2
- .bottom-sheet__backer_1svh2 {
1
+ /* hash: 11qdr */
2
+ :root {
3
+ --bottom-sheet-backer-bg-color: var(--color-light-bg-primary-inverted-alpha-3);
4
+ }
5
+
6
+ .bottom-sheet__backer_kyu8g {
3
7
  width: 32px;
4
8
  height: 32px;
5
9
  display: flex;
6
10
  justify-content: center;
7
11
  align-items: center;
8
12
  cursor: pointer;
13
+ color: var(--color-light-graphic-primary);
9
14
  }
10
15
 
11
- .bottom-sheet__button_1svh2 {
12
- background: rgba(0, 0, 0, 0.04);
16
+ .bottom-sheet__button_kyu8g {
17
+ background: var(--bottom-sheet-backer-bg-color);
13
18
  -webkit-backdrop-filter: blur(10px);
14
19
  backdrop-filter: blur(10px);
15
20
  border-radius: 50px;
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var tslib_es6 = require('../../tslib.es6-4d9b8d1d.js');
5
+ var tslib_es6 = require('../../tslib.es6-c74c8bbc.js');
6
6
  var React = require('react');
7
7
  var cn = require('classnames');
8
8
  var coreComponentsBaseModal = require('@alfalab/core-components-base-modal');
@@ -14,7 +14,7 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
14
14
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
15
15
  var cn__default = /*#__PURE__*/_interopDefaultLegacy(cn);
16
16
 
17
- var styles = {"closer":"bottom-sheet__closer_3tn3y","button":"bottom-sheet__button_3tn3y"};
17
+ var styles = {"closer":"bottom-sheet__closer_2ue0t","button":"bottom-sheet__button_2ue0t"};
18
18
  require('./index.css')
19
19
 
20
20
  var Closer = function (_a) {
@@ -1,15 +1,20 @@
1
- /* hash: ycx49 */
2
- .bottom-sheet__closer_3tn3y {
1
+ /* hash: 1lw2h */
2
+ :root {
3
+ --bottom-sheet-closer-bg-color: var(--color-light-bg-primary-inverted-alpha-3);
4
+ }
5
+
6
+ .bottom-sheet__closer_2ue0t {
3
7
  width: 32px;
4
8
  height: 32px;
5
9
  display: flex;
6
10
  justify-content: center;
7
11
  align-items: center;
8
12
  cursor: pointer;
13
+ color: var(--color-light-graphic-primary);
9
14
  }
10
15
 
11
- .bottom-sheet__button_3tn3y {
12
- background: rgba(0, 0, 0, 0.04);
16
+ .bottom-sheet__button_2ue0t {
17
+ background: var(--bottom-sheet-closer-bg-color);
13
18
  -webkit-backdrop-filter: blur(10px);
14
19
  backdrop-filter: blur(10px);
15
20
  border-radius: 50px;
@@ -11,7 +11,7 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
11
11
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
12
12
  var cn__default = /*#__PURE__*/_interopDefaultLegacy(cn);
13
13
 
14
- var styles = {"footer":"bottom-sheet__footer_1jt1d","sticky":"bottom-sheet__sticky_1jt1d","highlighted":"bottom-sheet__highlighted_1jt1d"};
14
+ var styles = {"footer":"bottom-sheet__footer_1fb6t","sticky":"bottom-sheet__sticky_1fb6t","highlighted":"bottom-sheet__highlighted_1fb6t"};
15
15
  require('./index.css')
16
16
 
17
17
  var Footer = function (_a) {
@@ -1,4 +1,4 @@
1
- /* hash: 1585q */
1
+ /* hash: 12ev6 */
2
2
  :root {
3
3
  --color-light-bg-primary: #fff;
4
4
  --color-light-border-primary: #dbdee1;
@@ -18,15 +18,15 @@
18
18
  --bottom-sheet-footer-border-top: 1px solid var(--color-light-border-primary);
19
19
  --bottom-sheet-footer-background-color: var(--color-light-bg-primary);
20
20
  }
21
- .bottom-sheet__footer_1jt1d {
21
+ .bottom-sheet__footer_1fb6t {
22
22
  padding: var(--gap-m) var(--gap-m);
23
23
  background-color: var(--color-light-bg-primary);
24
24
  }
25
- .bottom-sheet__sticky_1jt1d {
25
+ .bottom-sheet__sticky_1fb6t {
26
26
  position: sticky;
27
27
  bottom: 0;
28
28
  }
29
- .bottom-sheet__highlighted_1jt1d {
29
+ .bottom-sheet__highlighted_1fb6t {
30
30
  border-top: var(--bottom-sheet-footer-border-top);
31
31
  background-color: var(--bottom-sheet-footer-background-color);
32
32
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- require('../../tslib.es6-4d9b8d1d.js');
5
+ require('../../tslib.es6-c74c8bbc.js');
6
6
  require('react');
7
7
  require('classnames');
8
8
  require('react-div-100vh');
@@ -14,7 +14,7 @@ require('@alfalab/icons-glyph/CrossMIcon');
14
14
  require('../closer/Component.js');
15
15
  require('@alfalab/icons-glyph/ArrowBackMIcon');
16
16
  require('../backer/Component.js');
17
- var components_header_Component = require('../../component-0665a3d7.js');
17
+ var components_header_Component = require('../../component-8680d27f.js');
18
18
  require('../footer/Component.js');
19
19
  require('@alfalab/core-components-backdrop');
20
20
  require('../swipeable-backdrop/Component.js');
@@ -1,7 +1,6 @@
1
- /* hash: nztoa */
1
+ /* hash: c5fqk */
2
2
  :root {
3
3
  --color-light-bg-primary: #fff;
4
- --color-light-graphic-neutral: #dbdee1;
5
4
  }
6
5
  :root {
7
6
 
@@ -31,56 +30,44 @@
31
30
  --bottom-sheet-title-font-family: var(--font-family-system);
32
31
  --bottom-sheet-title-margin-vertical: var(--gap-2xs);
33
32
  }
34
- .bottom-sheet__header_6oyfh {
33
+ .bottom-sheet__header_1ezhe {
35
34
  display: flex;
36
- align-items: center;
37
35
  padding: var(--gap-xs);
38
36
  padding-bottom: 0;
39
37
  background-color: var(--color-light-bg-primary);
40
38
  border-top-right-radius: var(--border-radius-xl);
41
39
  border-top-left-radius: var(--border-radius-xl);
40
+ z-index: 1;
42
41
  }
43
- .bottom-sheet__sticky_6oyfh {
42
+ .bottom-sheet__sticky_1ezhe {
44
43
  position: sticky;
45
44
  top: 0;
46
45
  }
47
- .bottom-sheet__highlighted_6oyfh {
46
+ .bottom-sheet__highlighted_1ezhe {
48
47
  border-bottom: var(--bottom-sheet-header-border-bottom);
49
48
  }
50
- .bottom-sheet__justifyEnd_6oyfh {
49
+ .bottom-sheet__justifyEnd_1ezhe {
51
50
  justify-content: flex-end;
52
51
  }
53
- .bottom-sheet__marker_6oyfh {
54
- position: absolute;
55
- top: var(--gap-2xs);
56
- left: 50%;
57
- width: 36px;
58
- height: 4px;
59
- border-radius: 20px;
60
- transform: translateX(-50%);
61
- background-color: var(--color-light-graphic-neutral);
62
- z-index: 1000;
63
- }
64
- .bottom-sheet__addon_6oyfh {
52
+ .bottom-sheet__addon_1ezhe {
65
53
  display: flex;
66
54
  justify-content: center;
67
55
  align-items: center;
68
56
  min-width: 48px;
69
57
  height: 48px;
70
58
  }
71
- .bottom-sheet__addonFixed_6oyfh {
59
+ .bottom-sheet__addonFixed_1ezhe {
72
60
  position: fixed;
73
61
  }
74
- .bottom-sheet__addonLeft_6oyfh {
62
+ .bottom-sheet__addonLeft_1ezhe {
75
63
  left: 0;
76
64
  margin-left: var(--gap-xs);
77
65
  }
78
- .bottom-sheet__addonRight_6oyfh {
66
+ .bottom-sheet__addonRight_1ezhe {
79
67
  right: 0;
80
68
  margin-right: var(--gap-xs);
81
69
  }
82
- .bottom-sheet__title_6oyfh {
83
- height: 24px;
70
+ .bottom-sheet__title_1ezhe {
84
71
  padding: var(--gap-xs) var(--gap-xs);
85
72
  margin: var(--bottom-sheet-title-margin-vertical) 0;
86
73
  width: 100%;
@@ -89,23 +76,23 @@
89
76
  line-height: var(--bottom-sheet-title-line-height);
90
77
  font-family: var(--bottom-sheet-title-font-family);
91
78
  }
92
- .bottom-sheet__titleCenter_6oyfh {
79
+ .bottom-sheet__titleCenter_1ezhe {
93
80
  text-align: center;
94
81
  }
95
- .bottom-sheet__titleLeft_6oyfh {
82
+ .bottom-sheet__titleLeft_1ezhe {
96
83
  text-align: left;
97
84
  }
98
- .bottom-sheet__trimTitle_6oyfh {
85
+ .bottom-sheet__trimTitle_1ezhe {
99
86
  white-space: nowrap;
100
87
  overflow: hidden;
101
88
  text-overflow: ellipsis;
102
89
  }
103
- .bottom-sheet__titleBigIndentHorizontal_6oyfh {
90
+ .bottom-sheet__titleBigIndentHorizontal_1ezhe {
104
91
  margin: var(--bottom-sheet-title-margin-vertical) var(--gap-4xl);
105
92
  }
106
- .bottom-sheet__titleIndentRight_6oyfh {
93
+ .bottom-sheet__titleIndentRight_1ezhe {
107
94
  margin-right: var(--gap-4xl);
108
95
  }
109
- .bottom-sheet__titleIndentLeft_6oyfh {
96
+ .bottom-sheet__titleIndentLeft_1ezhe {
110
97
  margin-left: var(--gap-4xl);
111
98
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var tslib_es6 = require('../../tslib.es6-4d9b8d1d.js');
5
+ var tslib_es6 = require('../../tslib.es6-c74c8bbc.js');
6
6
  var React = require('react');
7
7
  var coreComponentsBackdrop = require('@alfalab/core-components-backdrop');
8
8
 
@@ -12,7 +12,7 @@ type HeaderProps = {
12
12
  /**
13
13
  * Дополнительный класс
14
14
  */
15
- className?: string;
15
+ headerClassName?: string;
16
16
  /**
17
17
  * Дополнительный класс для аддонов
18
18
  */
@@ -25,11 +25,6 @@ type HeaderProps = {
25
25
  * Дополнительный класс для компонента стрелки назад
26
26
  */
27
27
  backerClassName?: string;
28
- /**
29
- * Будет ли свайпаться шторка
30
- * @default true
31
- */
32
- swipeable?: boolean;
33
28
  /**
34
29
  * Слот слева
35
30
  */
@@ -90,10 +85,18 @@ type BottomSheetProps = {
90
85
  * Дополнительный класс
91
86
  */
92
87
  contentClassName?: string;
88
+ /**
89
+ * Дополнительный класс
90
+ */
91
+ containerClassName?: string;
93
92
  /**
94
93
  * Дополнительный класс шапки
95
94
  */
96
95
  headerClassName?: string;
96
+ /**
97
+ * Дополнительный класс футера
98
+ */
99
+ footerClassName?: string;
97
100
  /**
98
101
  * Дополнительный класс для аддонов
99
102
  */
@@ -23,7 +23,7 @@ var styles__default$1 = /*#__PURE__*/_interopDefaultLegacy(styles$1);
23
23
 
24
24
  var Header = function (_a) {
25
25
  var _b, _c, _d, _e;
26
- var title = _a.title, className = _a.className, addonClassName = _a.addonClassName, closerClassName = _a.closerClassName, backerClassName = _a.backerClassName, swipeable = _a.swipeable, leftAddons = _a.leftAddons, rightAddons = _a.rightAddons, hasCloser = _a.hasCloser, hasBacker = _a.hasBacker, titleAlign = _a.titleAlign, trimTitle = _a.trimTitle, sticky = _a.sticky, onBack = _a.onBack;
26
+ var title = _a.title, headerClassName = _a.headerClassName, addonClassName = _a.addonClassName, closerClassName = _a.closerClassName, backerClassName = _a.backerClassName, leftAddons = _a.leftAddons, rightAddons = _a.rightAddons, hasCloser = _a.hasCloser, hasBacker = _a.hasBacker, titleAlign = _a.titleAlign, trimTitle = _a.trimTitle, sticky = _a.sticky, onBack = _a.onBack;
27
27
  var _f = React.useContext(coreComponentsBaseModal.BaseModalContext), headerHighlighted = _f.headerHighlighted, setHasHeader = _f.setHasHeader, setHeaderOffset = _f.setHeaderOffset;
28
28
  var hasLeftPart = hasBacker || leftAddons || titleAlign === 'center';
29
29
  var hasRightPart = hasCloser || rightAddons || titleAlign === 'center';
@@ -45,12 +45,11 @@ var Header = function (_a) {
45
45
  _a[styles__default['default'].titleIndentRight] = !sticky && !titleAlignedCenter && hasRightPart,
46
46
  _a));
47
47
  };
48
- return (React__default['default'].createElement("div", { className: cn__default['default'](styles__default['default'].header, className, (_b = {},
48
+ return (React__default['default'].createElement("div", { className: cn__default['default'](styles__default['default'].header, headerClassName, (_b = {},
49
49
  _b[styles__default['default'].justifyEnd] = !title,
50
50
  _b[styles__default['default'].highlighted] = headerHighlighted && sticky,
51
51
  _b[styles__default['default'].sticky] = sticky,
52
52
  _b)) },
53
- swipeable && React__default['default'].createElement("div", { className: cn__default['default'](styles__default['default'].marker) }),
54
53
  hasLeftPart && (React__default['default'].createElement("div", { className: cn__default['default'](styles__default['default'].addon, addonClassName, (_c = {},
55
54
  _c[styles__default['default'].addonFixed] = !sticky,
56
55
  _c[styles__default['default'].addonLeft] = !sticky,
@@ -70,15 +69,16 @@ var TIMEOUT = 300;
70
69
  var SWIPE_CLOSE_VELOCITY = 0.4;
71
70
  var MIN_BACKDROP_OPACITY = 0.2;
72
71
  var HEADER_HEIGHT = 56;
72
+ var MARKET_HEIGHT = 24;
73
73
  /* Верхний отступ шторки, если она открыта на максимальную высоту */
74
74
  var HEADER_OFFSET = 24;
75
75
  var CLOSE_OFFSET = 0.2;
76
76
  var BottomSheet = React.forwardRef(function (_a, ref) {
77
77
  var _b, _c, _d;
78
- var open = _a.open, title = _a.title, actionButton = _a.actionButton, contentClassName = _a.contentClassName, headerClassName = _a.headerClassName, addonClassName = _a.addonClassName, closerClassName = _a.closerClassName, backerClassName = _a.backerClassName, className = _a.className, leftAddons = _a.leftAddons, rightAddons = _a.rightAddons, hasCloser = _a.hasCloser, hasBacker = _a.hasBacker, _e = _a.titleAlign, titleAlign = _e === void 0 ? 'left' : _e, trimTitle = _a.trimTitle, stickyHeader = _a.stickyHeader, stickyFooter = _a.stickyFooter, _f = _a.initialHeight, initialHeight = _f === void 0 ? 'default' : _f, hideOverlay = _a.hideOverlay, hideHeader = _a.hideHeader, disableOverlayClick = _a.disableOverlayClick, children = _a.children, zIndex = _a.zIndex, _g = _a.transitionProps, transitionProps = _g === void 0 ? {} : _g, dataTestId = _a.dataTestId, _h = _a.swipeable, swipeable = _h === void 0 ? true : _h, onClose = _a.onClose, onBack = _a.onBack;
79
- var _j = React.useState(0), sheetOffset = _j[0], setSheetOffset = _j[1];
80
- var _k = React.useState(1), backdropOpacity = _k[0], setBackdropOpacity = _k[1];
81
- var _l = React.useState(false), scrollLocked = _l[0], setScrollLocked = _l[1];
78
+ var open = _a.open, title = _a.title, actionButton = _a.actionButton, contentClassName = _a.contentClassName, containerClassName = _a.containerClassName, headerClassName = _a.headerClassName, footerClassName = _a.footerClassName, addonClassName = _a.addonClassName, closerClassName = _a.closerClassName, backerClassName = _a.backerClassName, className = _a.className, leftAddons = _a.leftAddons, rightAddons = _a.rightAddons, hasCloser = _a.hasCloser, hasBacker = _a.hasBacker, _e = _a.titleAlign, titleAlign = _e === void 0 ? 'left' : _e, trimTitle = _a.trimTitle, stickyHeader = _a.stickyHeader, _f = _a.stickyFooter, stickyFooter = _f === void 0 ? true : _f, _g = _a.initialHeight, initialHeight = _g === void 0 ? 'default' : _g, hideOverlay = _a.hideOverlay, hideHeader = _a.hideHeader, disableOverlayClick = _a.disableOverlayClick, children = _a.children, zIndex = _a.zIndex, _h = _a.transitionProps, transitionProps = _h === void 0 ? {} : _h, dataTestId = _a.dataTestId, _j = _a.swipeable, swipeable = _j === void 0 ? true : _j, onClose = _a.onClose, onBack = _a.onBack;
79
+ var _k = React.useState(0), sheetOffset = _k[0], setSheetOffset = _k[1];
80
+ var _l = React.useState(1), backdropOpacity = _l[0], setBackdropOpacity = _l[1];
81
+ var _m = React.useState(false), scrollLocked = _m[0], setScrollLocked = _m[1];
82
82
  var sheetHeight = React.useRef(0);
83
83
  var scrollableContainer = React.useRef(null);
84
84
  var scrollableContainerScrollValue = React.useRef(0);
@@ -92,7 +92,6 @@ var BottomSheet = React.forwardRef(function (_a, ref) {
92
92
  addonClassName: addonClassName,
93
93
  closerClassName: closerClassName,
94
94
  backerClassName: backerClassName,
95
- swipeable: swipeable,
96
95
  leftAddons: leftAddons,
97
96
  rightAddons: rightAddons,
98
97
  hasCloser: hasCloser,
@@ -121,7 +120,8 @@ var BottomSheet = React.forwardRef(function (_a, ref) {
121
120
  if (!swipeable)
122
121
  return true;
123
122
  if (!scrollableContainer.current ||
124
- (stickyHeader && offsetY <= HEADER_HEIGHT + HEADER_OFFSET)) {
123
+ (stickyHeader && offsetY <= HEADER_HEIGHT + HEADER_OFFSET) ||
124
+ (!stickyHeader && offsetY <= MARKET_HEIGHT + HEADER_OFFSET)) {
125
125
  return false;
126
126
  }
127
127
  if (!scrollableContainerScrollValue.current) {
@@ -219,16 +219,16 @@ var BottomSheet = React.forwardRef(function (_a, ref) {
219
219
  React__default['default'].createElement("div", tslib_es6.__assign({ className: cn__default['default'](styles__default$1['default'].component, className, (_b = {},
220
220
  _b[styles__default$1['default'].withTransition] = !sheetOffset,
221
221
  _b)), style: tslib_es6.__assign(tslib_es6.__assign({}, getSwipeStyles()), getHeightStyles()) }, sheetSwipeablehandlers),
222
- React__default['default'].createElement("div", { className: cn__default['default'](styles__default$1['default'].scrollableContainer, (_c = {},
222
+ React__default['default'].createElement("div", { className: cn__default['default'](styles__default$1['default'].scrollableContainer, containerClassName, (_c = {},
223
223
  _c[styles__default$1['default'].scrollLocked] = scrollLocked,
224
224
  _c)), ref: scrollableContainer },
225
- swipeable && (hideHeader || emptyHeader) && (React__default['default'].createElement("div", { className: cn__default['default'](styles__default$1['default'].marker) })),
225
+ swipeable && React__default['default'].createElement("div", { className: cn__default['default'](styles__default$1['default'].marker) }),
226
226
  !hideHeader && !emptyHeader && React__default['default'].createElement(Header, tslib_es6.__assign({}, headerProps)),
227
227
  React__default['default'].createElement("div", { className: cn__default['default'](styles__default$1['default'].content, contentClassName, (_d = {},
228
228
  _d[styles__default$1['default'].noHeader] = hideHeader || emptyHeader,
229
229
  _d[styles__default$1['default'].noFooter] = !actionButton,
230
230
  _d)) }, children),
231
- actionButton && React__default['default'].createElement(components_footer_Component.Footer, { sticky: stickyFooter }, actionButton)))));
231
+ actionButton && (React__default['default'].createElement(components_footer_Component.Footer, { sticky: stickyFooter, className: footerClassName }, actionButton))))));
232
232
  });
233
233
 
234
234
  exports.BottomSheet = BottomSheet;
@@ -17,7 +17,7 @@ require('@alfalab/icons-glyph/ArrowBackMIcon');
17
17
  require('./components/backer/index.module.css');
18
18
  require('./components/backer/Component.js');
19
19
  require('./components/header/index.module.css');
20
- var components_header_Component = require('./component-4b59a168.js');
20
+ var components_header_Component = require('./component-d1b19e73.js');
21
21
  require('./components/footer/index.module.css');
22
22
  require('./components/footer/Component.js');
23
23
  require('@alfalab/core-components-backdrop/dist/cssm');
@@ -1,3 +1,7 @@
1
+ :root {
2
+ --bottom-sheet-backer-bg-color: var(--color-light-bg-primary-inverted-alpha-3);
3
+ }
4
+
1
5
  .backer {
2
6
  width: 32px;
3
7
  height: 32px;
@@ -5,10 +9,11 @@
5
9
  justify-content: center;
6
10
  align-items: center;
7
11
  cursor: pointer;
12
+ color: var(--color-light-graphic-primary);
8
13
  }
9
14
 
10
15
  .button {
11
- background: rgba(0, 0, 0, 0.04);
16
+ background: var(--bottom-sheet-backer-bg-color);
12
17
  -webkit-backdrop-filter: blur(10px);
13
18
  backdrop-filter: blur(10px);
14
19
  border-radius: 50px;
@@ -1,3 +1,7 @@
1
+ :root {
2
+ --bottom-sheet-closer-bg-color: var(--color-light-bg-primary-inverted-alpha-3);
3
+ }
4
+
1
5
  .closer {
2
6
  width: 32px;
3
7
  height: 32px;
@@ -5,10 +9,11 @@
5
9
  justify-content: center;
6
10
  align-items: center;
7
11
  cursor: pointer;
12
+ color: var(--color-light-graphic-primary);
8
13
  }
9
14
 
10
15
  .button {
11
- background: rgba(0, 0, 0, 0.04);
16
+ background: var(--bottom-sheet-closer-bg-color);
12
17
  -webkit-backdrop-filter: blur(10px);
13
18
  backdrop-filter: blur(10px);
14
19
  border-radius: 50px;