@vkontakte/vkui 5.8.1 → 5.8.2

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 (121) hide show
  1. package/dist/cjs/components/ActionSheet/ActionSheet.js +6 -2
  2. package/dist/cjs/components/ActionSheet/ActionSheet.js.map +1 -1
  3. package/dist/cjs/components/AspectRatio/AspectRatio.d.ts +3 -4
  4. package/dist/cjs/components/AspectRatio/AspectRatio.js +1 -2
  5. package/dist/cjs/components/AspectRatio/AspectRatio.js.map +1 -1
  6. package/dist/cjs/components/Banner/Banner.js +1 -5
  7. package/dist/cjs/components/Banner/Banner.js.map +1 -1
  8. package/dist/cjs/components/Group/Group.js +3 -1
  9. package/dist/cjs/components/Group/Group.js.map +1 -1
  10. package/dist/cjs/components/ImageBase/ImageBase.js +1 -16
  11. package/dist/cjs/components/ImageBase/ImageBase.js.map +1 -1
  12. package/dist/cjs/components/ModalRoot/ModalRoot.js +2 -0
  13. package/dist/cjs/components/ModalRoot/ModalRoot.js.map +1 -1
  14. package/dist/cjs/components/ModalRoot/ModalRootDesktop.js +11 -5
  15. package/dist/cjs/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  16. package/dist/cjs/components/PanelHeaderBack/PanelHeaderBack.d.ts +1 -1
  17. package/dist/cjs/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  18. package/dist/cjs/components/PanelHeaderClose/PanelHeaderClose.d.ts +1 -1
  19. package/dist/cjs/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
  20. package/dist/cjs/components/PanelHeaderEdit/PanelHeaderEdit.d.ts +1 -1
  21. package/dist/cjs/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
  22. package/dist/cjs/components/PanelHeaderSubmit/PanelHeaderSubmit.d.ts +1 -1
  23. package/dist/cjs/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
  24. package/dist/cjs/components/Popper/Popper.js +3 -2
  25. package/dist/cjs/components/Popper/Popper.js.map +1 -1
  26. package/dist/cjs/components/ScrollArrow/ScrollArrow.js +1 -0
  27. package/dist/cjs/components/ScrollArrow/ScrollArrow.js.map +1 -1
  28. package/dist/cjs/components/SimpleCell/SimpleCell.js +8 -12
  29. package/dist/cjs/components/SimpleCell/SimpleCell.js.map +1 -1
  30. package/dist/components/ActionSheet/ActionSheet.js +6 -2
  31. package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
  32. package/dist/components/AspectRatio/AspectRatio.d.ts +3 -4
  33. package/dist/components/AspectRatio/AspectRatio.js +2 -3
  34. package/dist/components/AspectRatio/AspectRatio.js.map +1 -1
  35. package/dist/components/Banner/Banner.js +1 -5
  36. package/dist/components/Banner/Banner.js.map +1 -1
  37. package/dist/components/Group/Group.js +3 -1
  38. package/dist/components/Group/Group.js.map +1 -1
  39. package/dist/components/ImageBase/ImageBase.js +1 -16
  40. package/dist/components/ImageBase/ImageBase.js.map +1 -1
  41. package/dist/components/ModalRoot/ModalRoot.js +2 -0
  42. package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
  43. package/dist/components/ModalRoot/ModalRootDesktop.js +11 -5
  44. package/dist/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  45. package/dist/components/PanelHeaderBack/PanelHeaderBack.d.ts +1 -1
  46. package/dist/components/PanelHeaderBack/PanelHeaderBack.js +1 -1
  47. package/dist/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  48. package/dist/components/PanelHeaderClose/PanelHeaderClose.d.ts +1 -1
  49. package/dist/components/PanelHeaderClose/PanelHeaderClose.js +1 -1
  50. package/dist/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
  51. package/dist/components/PanelHeaderEdit/PanelHeaderEdit.d.ts +1 -1
  52. package/dist/components/PanelHeaderEdit/PanelHeaderEdit.js +1 -1
  53. package/dist/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
  54. package/dist/components/PanelHeaderSubmit/PanelHeaderSubmit.d.ts +1 -1
  55. package/dist/components/PanelHeaderSubmit/PanelHeaderSubmit.js +1 -1
  56. package/dist/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
  57. package/dist/components/Popper/Popper.js +3 -2
  58. package/dist/components/Popper/Popper.js.map +1 -1
  59. package/dist/components/ScrollArrow/ScrollArrow.js +1 -0
  60. package/dist/components/ScrollArrow/ScrollArrow.js.map +1 -1
  61. package/dist/components/SimpleCell/SimpleCell.js +8 -12
  62. package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
  63. package/dist/components.css +10 -10
  64. package/dist/components.css.map +1 -1
  65. package/dist/components.js.tmp +49 -56
  66. package/dist/cssm/components/ActionSheet/ActionSheet.js +5 -1
  67. package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
  68. package/dist/cssm/components/ActionSheet/ActionSheet.module.css +24 -14
  69. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.module.css +0 -16
  70. package/dist/cssm/components/AspectRatio/AspectRatio.d.ts +3 -4
  71. package/dist/cssm/components/AspectRatio/AspectRatio.js +2 -2
  72. package/dist/cssm/components/AspectRatio/AspectRatio.js.map +1 -1
  73. package/dist/cssm/components/Banner/Banner.js +1 -5
  74. package/dist/cssm/components/Banner/Banner.js.map +1 -1
  75. package/dist/cssm/components/Banner/Banner.module.css +1 -9
  76. package/dist/cssm/components/CellButton/CellButton.module.css +6 -4
  77. package/dist/cssm/components/Group/Group.js +3 -1
  78. package/dist/cssm/components/Group/Group.js.map +1 -1
  79. package/dist/cssm/components/Group/Group.module.css +24 -0
  80. package/dist/cssm/components/IconButton/IconButton.module.css +1 -3
  81. package/dist/cssm/components/ImageBase/ImageBase.js +1 -16
  82. package/dist/cssm/components/ImageBase/ImageBase.js.map +1 -1
  83. package/dist/cssm/components/ImageBase/ImageBase.module.css +0 -65
  84. package/dist/cssm/components/ModalRoot/ModalRoot.js +2 -0
  85. package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
  86. package/dist/cssm/components/ModalRoot/ModalRootDesktop.js +10 -4
  87. package/dist/cssm/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  88. package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.d.ts +1 -1
  89. package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js +1 -1
  90. package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  91. package/dist/cssm/components/PanelHeaderClose/PanelHeaderClose.d.ts +1 -1
  92. package/dist/cssm/components/PanelHeaderClose/PanelHeaderClose.js +1 -1
  93. package/dist/cssm/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
  94. package/dist/cssm/components/PanelHeaderEdit/PanelHeaderEdit.d.ts +1 -1
  95. package/dist/cssm/components/PanelHeaderEdit/PanelHeaderEdit.js +1 -1
  96. package/dist/cssm/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
  97. package/dist/cssm/components/PanelHeaderSubmit/PanelHeaderSubmit.d.ts +1 -1
  98. package/dist/cssm/components/PanelHeaderSubmit/PanelHeaderSubmit.js +1 -1
  99. package/dist/cssm/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
  100. package/dist/cssm/components/Popper/Popper.js +3 -2
  101. package/dist/cssm/components/Popper/Popper.js.map +1 -1
  102. package/dist/cssm/components/ScrollArrow/ScrollArrow.js +1 -0
  103. package/dist/cssm/components/ScrollArrow/ScrollArrow.js.map +1 -1
  104. package/dist/cssm/components/SimpleCell/SimpleCell.js +7 -11
  105. package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
  106. package/dist/cssm/components/SimpleCell/SimpleCell.module.css +37 -91
  107. package/dist/cssm/components/Switch/Switch.module.css +0 -4
  108. package/dist/cssm/components/WriteBarIcon/WriteBarIcon.module.css +11 -2
  109. package/dist/vkui.css +10 -10
  110. package/dist/vkui.css.map +1 -1
  111. package/dist/vkui.js.tmp +49 -56
  112. package/package.json +1 -1
  113. package/dist/cjs/lib/is.d.ts +0 -1
  114. package/dist/cjs/lib/is.js +0 -18
  115. package/dist/cjs/lib/is.js.map +0 -1
  116. package/dist/cssm/lib/is.d.ts +0 -1
  117. package/dist/cssm/lib/is.js +0 -8
  118. package/dist/cssm/lib/is.js.map +0 -1
  119. package/dist/lib/is.d.ts +0 -1
  120. package/dist/lib/is.js +0 -8
  121. package/dist/lib/is.js.map +0 -1
@@ -12150,21 +12150,6 @@ function _unsupported_iterable_to_array(o, minLen) {
12150
12150
  imgRef,
12151
12151
  loaded
12152
12152
  ]);
12153
- var sizeClassName = function() {
12154
- switch(size){
12155
- case 28:
12156
- return "vkuiImageBase--size-28";
12157
- case 32:
12158
- return "vkuiImageBase--size-32";
12159
- case 40:
12160
- return "vkuiImageBase--size-40";
12161
- case 48:
12162
- return "vkuiImageBase--size-48";
12163
- case 72:
12164
- return "vkuiImageBase--size-72";
12165
- }
12166
- return null;
12167
- }();
12168
12153
  return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_context__WEBPACK_IMPORTED_MODULE_4__.ImageBaseContext.Provider, {
12169
12154
  value: {
12170
12155
  size: size
@@ -12174,7 +12159,7 @@ function _unsupported_iterable_to_array(o, minLen) {
12174
12159
  width: size,
12175
12160
  height: size
12176
12161
  }),
12177
- baseClassName: (0,_vkontakte_vkjs__WEBPACK_IMPORTED_MODULE_1__.classNames)("vkuiImageBase", sizeClassName, loaded && "vkuiImageBase--loaded"),
12162
+ baseClassName: (0,_vkontakte_vkjs__WEBPACK_IMPORTED_MODULE_1__.classNames)("vkuiImageBase", loaded && "vkuiImageBase--loaded"),
12178
12163
  role: hasSrc ? "img" : "presentation",
12179
12164
  "aria-label": ariaLabel,
12180
12165
  onClick: onClick
@@ -45700,6 +45685,7 @@ var ArrowIcon = function(param) {
45700
45685
  ]);
45701
45686
  return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_RootComponent_RootComponent__WEBPACK_IMPORTED_MODULE_7__.RootComponent, _object_spread({
45702
45687
  Component: "button",
45688
+ type: "button",
45703
45689
  baseClassName: (0,_vkontakte_vkjs__WEBPACK_IMPORTED_MODULE_1__.classNames)("vkuiScrollArrow", stylesSize[size], stylesDirection[direction])
45704
45690
  }, restProps), /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("span", {
45705
45691
  className: "vkuiScrollArrow__icon",
@@ -46226,13 +46212,12 @@ function _object_without_properties_loose(source, excluded) {
46226
46212
  /**
46227
46213
  * `AspectRatio` позволяет поддерживать постоянное соотношение ширины и высоты.
46228
46214
  * Его можно использовать для отображения изображений, карт, видео и других медиафайлов.
46229
-
46215
+
46230
46216
  * @since 5.5.0
46231
46217
  * @see https://vkcom.github.io/VKUI/#/AspectRatio
46232
46218
  */ function AspectRatio(_param) {
46233
- var ratio = _param.ratio, children = _param.children, _param_mode = _param.mode, mode = _param_mode === void 0 ? "stretch" : _param_mode, styleProp = _param.style, props = _object_without_properties(_param, [
46219
+ var ratio = _param.ratio, _param_mode = _param.mode, mode = _param_mode === void 0 ? "stretch" : _param_mode, styleProp = _param.style, props = _object_without_properties(_param, [
46234
46220
  "ratio",
46235
- "children",
46236
46221
  "mode",
46237
46222
  "style"
46238
46223
  ]);
@@ -47928,14 +47913,18 @@ var warn = (0,_lib_warnOnce__WEBPACK_IMPORTED_MODULE_3__.warnOnce)("ActionSheet"
47928
47913
  onClose: onClose,
47929
47914
  className: isDesktop ? className : undefined,
47930
47915
  style: isDesktop ? style : undefined
47931
- }), (header || text) && /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("header", {
47916
+ }), /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", {
47917
+ className: "vkuiActionSheet__content-wrapper"
47918
+ }, (header || text) && /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("header", {
47932
47919
  className: "vkuiActionSheet__header"
47933
47920
  }, header && /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_Typography_Footnote_Footnote__WEBPACK_IMPORTED_MODULE_13__.Footnote, {
47934
47921
  weight: "2",
47935
47922
  className: "vkuiActionSheet__title"
47936
47923
  }, header), text && /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_Typography_Footnote_Footnote__WEBPACK_IMPORTED_MODULE_13__.Footnote, {
47937
47924
  className: "vkuiActionSheet__text"
47938
- }, text)), children, platform === _lib_platform__WEBPACK_IMPORTED_MODULE_7__.Platform.IOS && !isDesktop && (iosCloseItem !== null && iosCloseItem !== void 0 ? iosCloseItem : /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ActionSheetDefaultIosCloseItem__WEBPACK_IMPORTED_MODULE_14__.ActionSheetDefaultIosCloseItem, null))));
47925
+ }, text)), children), platform === _lib_platform__WEBPACK_IMPORTED_MODULE_7__.Platform.IOS && !isDesktop && /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", {
47926
+ className: "vkuiActionSheet__close-item-wrapper--ios"
47927
+ }, iosCloseItem !== null && iosCloseItem !== void 0 ? iosCloseItem : /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ActionSheetDefaultIosCloseItem__WEBPACK_IMPORTED_MODULE_14__.ActionSheetDefaultIosCloseItem, null))));
47939
47928
  if (isDesktop) {
47940
47929
  return actionSheet;
47941
47930
  }
@@ -48187,10 +48176,11 @@ __webpack_require__.r(__webpack_exports__);
48187
48176
  /* harmony import */ var _lib_floating__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(243);
48188
48177
  /* harmony import */ var _lib_floating__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(245);
48189
48178
  /* harmony import */ var _lib_floating__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(248);
48190
- /* harmony import */ var _AppRoot_AppRootPortal__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(185);
48179
+ /* harmony import */ var _lib_useIsomorphicLayoutEffect__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(64);
48180
+ /* harmony import */ var _AppRoot_AppRootPortal__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(185);
48191
48181
  /* harmony import */ var _PopperArrow_DefaultIcon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(241);
48192
- /* harmony import */ var _PopperArrow_PopperArrow__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(249);
48193
- /* harmony import */ var _RootComponent_RootComponent__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(81);
48182
+ /* harmony import */ var _PopperArrow_PopperArrow__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(249);
48183
+ /* harmony import */ var _RootComponent_RootComponent__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(81);
48194
48184
  /* harmony import */ var _Popper_module_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(240);
48195
48185
  function _array_like_to_array(arr, len) {
48196
48186
  if (len == null || len > arr.length) len = arr.length;
@@ -48337,6 +48327,7 @@ function _unsupported_iterable_to_array(o, minLen) {
48337
48327
 
48338
48328
 
48339
48329
 
48330
+
48340
48331
  /**
48341
48332
  * @see https://vkcom.github.io/VKUI/#/Popper
48342
48333
  */ var Popper = function(_param) {
@@ -48436,13 +48427,13 @@ function _unsupported_iterable_to_array(o, minLen) {
48436
48427
  }), floatingDataX = _useFloating.x, floatingDataY = _useFloating.y, floatingPositionStrategy = _useFloating.strategy, resolvedPlacement = _useFloating.placement, refs = _useFloating.refs, _useFloating_middlewareData = _useFloating.middlewareData, arrowCoords = _useFloating_middlewareData.arrow, hide = _useFloating_middlewareData.hide;
48437
48428
  // TODO [>=6]: убрать getRef
48438
48429
  var handleRootRef = (0,_hooks_useExternRef__WEBPACK_IMPORTED_MODULE_7__.useExternRef)(refs.setFloating, getRef, getRootRef);
48439
- react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function() {
48430
+ (0,_lib_useIsomorphicLayoutEffect__WEBPACK_IMPORTED_MODULE_8__.useIsomorphicLayoutEffect)(function() {
48440
48431
  refs.setReference(targetRef.current);
48441
48432
  }, [
48442
48433
  refs,
48443
48434
  targetRef
48444
48435
  ]);
48445
- react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function() {
48436
+ (0,_lib_useIsomorphicLayoutEffect__WEBPACK_IMPORTED_MODULE_8__.useIsomorphicLayoutEffect)(function() {
48446
48437
  if (resolvedPlacement && onPlacementChange) {
48447
48438
  onPlacementChange({
48448
48439
  placement: resolvedPlacement
@@ -48452,13 +48443,13 @@ function _unsupported_iterable_to_array(o, minLen) {
48452
48443
  onPlacementChange,
48453
48444
  resolvedPlacement
48454
48445
  ]);
48455
- var dropdown = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_RootComponent_RootComponent__WEBPACK_IMPORTED_MODULE_8__.RootComponent, _object_spread_props(_object_spread({}, restProps), {
48446
+ var dropdown = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_RootComponent_RootComponent__WEBPACK_IMPORTED_MODULE_9__.RootComponent, _object_spread_props(_object_spread({}, restProps), {
48456
48447
  baseClassName: "vkuiPopper",
48457
48448
  getRootRef: handleRootRef,
48458
48449
  style: _object_spread({}, styleProp, (0,_lib_floating__WEBPACK_IMPORTED_MODULE_3__.convertFloatingDataToReactCSSProperties)(floatingPositionStrategy, floatingDataX, floatingDataY, sameWidth ? null : undefined), ((_hide = hide) === null || _hide === void 0 ? void 0 : _hide.referenceHidden) && {
48459
48450
  visibility: "hidden"
48460
48451
  })
48461
- }), arrow && /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_PopperArrow_PopperArrow__WEBPACK_IMPORTED_MODULE_9__.PopperArrow, {
48452
+ }), arrow && /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_PopperArrow_PopperArrow__WEBPACK_IMPORTED_MODULE_10__.PopperArrow, {
48462
48453
  coords: arrowCoords,
48463
48454
  placement: resolvedPlacement,
48464
48455
  arrowClassName: arrowClassName,
@@ -48467,7 +48458,7 @@ function _unsupported_iterable_to_array(o, minLen) {
48467
48458
  }), renderContent ? renderContent({
48468
48459
  className: ""
48469
48460
  }) : children);
48470
- return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_AppRoot_AppRootPortal__WEBPACK_IMPORTED_MODULE_10__.AppRootPortal, {
48461
+ return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_AppRoot_AppRootPortal__WEBPACK_IMPORTED_MODULE_11__.AppRootPortal, {
48471
48462
  forcePortal: forcePortal,
48472
48463
  portalRoot: portalRoot
48473
48464
  }, dropdown);
@@ -52280,7 +52271,6 @@ var ModalRootDesktop = function(param) {
52280
52271
  });
52281
52272
  };
52282
52273
  var openModal = function() {
52283
- var _enteringState;
52284
52274
  if (!enteringModal || !prevProps) {
52285
52275
  return;
52286
52276
  }
@@ -52295,15 +52285,22 @@ var ModalRootDesktop = function(param) {
52295
52285
  return onEntered(enteringModal);
52296
52286
  }, timeout);
52297
52287
  animateModalOpacity(enteringState, true);
52288
+ if (enteringState) {
52289
+ setMaskOpacity(enteringState, 1);
52290
+ }
52298
52291
  }
52299
52292
  });
52300
52293
  return;
52301
52294
  }
52302
52295
  // Переход между модальными окнами без анимации
52303
- if ((_enteringState = enteringState) === null || _enteringState === void 0 ? void 0 : _enteringState.innerElement) {
52304
- enteringState.innerElement.style.transition = "none";
52305
- enteringState.innerElement.style.opacity = "1";
52306
- }
52296
+ requestAnimationFrame(function() {
52297
+ var _enteringState;
52298
+ if ((_enteringState = enteringState) === null || _enteringState === void 0 ? void 0 : _enteringState.innerElement) {
52299
+ enteringState.innerElement.style.transition = "none";
52300
+ enteringState.innerElement.style.opacity = "1";
52301
+ setMaskOpacity(enteringState, 1);
52302
+ }
52303
+ });
52307
52304
  onEntered(enteringModal);
52308
52305
  };
52309
52306
  var closeModal = function(id) {
@@ -53135,6 +53132,7 @@ var ModalRootTouchComponent = /*#__PURE__*/ function(_React_Component) {
53135
53132
  if ((_enteringState = enteringState) === null || _enteringState === void 0 ? void 0 : _enteringState.innerElement) {
53136
53133
  enteringState.innerElement.style.transitionDelay = this.props.delayEnter ? "".concat(this.timeout, "ms") : "";
53137
53134
  this.animateTranslate(enteringState, enteringState.translateY);
53135
+ this.setMaskOpacity(enteringState, 1);
53138
53136
  }
53139
53137
  }
53140
53138
  // focus restoration
@@ -53463,6 +53461,7 @@ var ModalRootTouchComponent = /*#__PURE__*/ function(_React_Component) {
53463
53461
  var _modalState_translateY = modalState.translateY, translateY = _modalState_translateY === void 0 ? 0 : _modalState_translateY, _modalState_translateYCurrent = modalState.translateYCurrent, translateYCurrent = _modalState_translateYCurrent === void 0 ? 0 : _modalState_translateYCurrent;
53464
53462
  var opacity = forceOpacity === null ? 1 - (translateYCurrent - translateY) / (100 - translateY) || 0 : forceOpacity;
53465
53463
  _this.maskElementRef.current.style.opacity = (0,_helpers_math__WEBPACK_IMPORTED_MODULE_4__.clamp)(opacity, 0, 100).toString();
53464
+ _this.maskElementRef.current.style.transitionDelay = opacity && _this.props.delayEnter ? "".concat(_this.timeout, "ms") : "";
53466
53465
  }
53467
53466
  });
53468
53467
  }
@@ -56179,7 +56178,9 @@ var warn = (0,_lib_warnOnce__WEBPACK_IMPORTED_MODULE_5__.warnOnce)("Group");
56179
56178
  }, restProps), {
56180
56179
  tabIndex: tabIndex,
56181
56180
  baseClassName: (0,_vkontakte_vkjs__WEBPACK_IMPORTED_MODULE_1__.classNames)("vkuiInternalGroup", "vkuiGroup", isInsideModal && "vkuiGroup--inside-modal", platform === _lib_platform__WEBPACK_IMPORTED_MODULE_10__.Platform.IOS && "vkuiGroup--ios", sizeX !== _lib_adaptivity__WEBPACK_IMPORTED_MODULE_3__.SizeType.REGULAR && sizeXClassNames[sizeX], mode && stylesMode[mode], stylesPadding[padding])
56182
- }), header, children, (0,_vkontakte_vkjs__WEBPACK_IMPORTED_MODULE_1__.hasReactNode)(description) && /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_Typography_Footnote_Footnote__WEBPACK_IMPORTED_MODULE_11__.Footnote, {
56181
+ }), (0,_vkontakte_vkjs__WEBPACK_IMPORTED_MODULE_1__.hasReactNode)(header) && /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", {
56182
+ className: "vkuiGroup__header"
56183
+ }, header), children, (0,_vkontakte_vkjs__WEBPACK_IMPORTED_MODULE_1__.hasReactNode)(description) && /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_Typography_Footnote_Footnote__WEBPACK_IMPORTED_MODULE_11__.Footnote, {
56183
56184
  className: "vkuiGroup__description"
56184
56185
  }, description)), separator !== "hide" && /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_Spacing_Spacing__WEBPACK_IMPORTED_MODULE_12__.Spacing, {
56185
56186
  className: (0,_vkontakte_vkjs__WEBPACK_IMPORTED_MODULE_1__.classNames)("vkuiGroup__separator", "vkuiGroup__separator--spacing"),
@@ -57430,15 +57431,9 @@ function _object_without_properties_loose(source, excluded) {
57430
57431
 
57431
57432
 
57432
57433
  var warn = (0,_lib_warnOnce__WEBPACK_IMPORTED_MODULE_3__.warnOnce)("SimpleCell");
57433
- var platformClassNames = {
57434
- ios: (0,_vkontakte_vkjs__WEBPACK_IMPORTED_MODULE_1__.classNames)("vkuiSimpleCell--ios", "vkuiInternalSimpleCell--ios"),
57435
- android: "vkuiSimpleCell--android",
57436
- vkcom: "vkuiSimpleCell--vkcom"
57437
- };
57438
- var _obj;
57439
- var sizeYClassNames = (_obj = {
57440
- none: (0,_vkontakte_vkjs__WEBPACK_IMPORTED_MODULE_1__.classNames)("vkuiSimpleCell--sizeY-none", "vkuiInternalSimpleCell--sizeY-none")
57441
- }, _define_property(_obj, _lib_adaptivity__WEBPACK_IMPORTED_MODULE_4__.SizeType.COMPACT, (0,_vkontakte_vkjs__WEBPACK_IMPORTED_MODULE_1__.classNames)("vkuiSimpleCell--sizeY-compact", "vkuiInternalSimpleCell--sizeY-compact")), _define_property(_obj, _lib_adaptivity__WEBPACK_IMPORTED_MODULE_4__.SizeType.REGULAR, "vkuiSimpleCell--sizeY-regular"), _obj);
57434
+ var sizeYClassNames = _define_property({
57435
+ none: "vkuiSimpleCell--sizeY-none"
57436
+ }, _lib_adaptivity__WEBPACK_IMPORTED_MODULE_4__.SizeType.COMPACT, "vkuiSimpleCell--sizeY-compact");
57442
57437
  /**
57443
57438
  * @see https://vkcom.github.io/VKUI/#/SimpleCell
57444
57439
  */ var SimpleCell = function(_param) {
@@ -57468,9 +57463,11 @@ var sizeYClassNames = (_obj = {
57468
57463
  var hasAfter = (0,_vkontakte_vkjs__WEBPACK_IMPORTED_MODULE_1__.hasReactNode)(after) || hasChevron;
57469
57464
  var _useAdaptivity = (0,_hooks_useAdaptivity__WEBPACK_IMPORTED_MODULE_7__.useAdaptivity)(), _useAdaptivity_sizeY = _useAdaptivity.sizeY, sizeY = _useAdaptivity_sizeY === void 0 ? "none" : _useAdaptivity_sizeY;
57470
57465
  return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_Tappable_Tappable__WEBPACK_IMPORTED_MODULE_8__.Tappable, _object_spread_props(_object_spread({}, restProps), {
57471
- className: (0,_vkontakte_vkjs__WEBPACK_IMPORTED_MODULE_1__.classNames)("vkuiSimpleCell", "vkuiInternalSimpleCell", platformClassNames.hasOwnProperty(platform) ? platformClassNames[platform] : platformClassNames.android, sizeYClassNames[sizeY], multiline && "vkuiSimpleCell--mult", className)
57472
- }), before, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", {
57473
- className: (0,_vkontakte_vkjs__WEBPACK_IMPORTED_MODULE_1__.classNames)("vkuiSimpleCell__main", "vkuiInternalSimpleCell__main")
57466
+ className: (0,_vkontakte_vkjs__WEBPACK_IMPORTED_MODULE_1__.classNames)("vkuiSimpleCell", sizeY !== _lib_adaptivity__WEBPACK_IMPORTED_MODULE_4__.SizeType.REGULAR && sizeYClassNames[sizeY], multiline && "vkuiSimpleCell--mult", className)
57467
+ }), /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", {
57468
+ className: "vkuiSimpleCell__before"
57469
+ }, before), /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", {
57470
+ className: "vkuiSimpleCell__middle"
57474
57471
  }, subhead && /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_Typography_Subhead_Subhead__WEBPACK_IMPORTED_MODULE_9__.Subhead, {
57475
57472
  Component: "span",
57476
57473
  className: (0,_vkontakte_vkjs__WEBPACK_IMPORTED_MODULE_1__.classNames)("vkuiSimpleCell__text", "vkuiSimpleCell__subhead")
@@ -63249,10 +63246,6 @@ function _object_without_properties_loose(source, excluded) {
63249
63246
 
63250
63247
 
63251
63248
 
63252
- var stylesSize = {
63253
- s: "vkuiBanner--size-s",
63254
- m: "vkuiBanner--size-m"
63255
- };
63256
63249
  /**
63257
63250
  * @see https://vkcom.github.io/VKUI/#/Banner
63258
63251
  */ var Banner = function(_param) {
@@ -63299,7 +63292,7 @@ var stylesSize = {
63299
63292
  return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_RootComponent_RootComponent__WEBPACK_IMPORTED_MODULE_10__.RootComponent, _object_spread_props(_object_spread({
63300
63293
  Component: "section"
63301
63294
  }, restProps), {
63302
- baseClassName: (0,_vkontakte_vkjs__WEBPACK_IMPORTED_MODULE_1__.classNames)("vkuiBanner", !noPadding && "vkuiBanner--withPadding", platform === _lib_platform__WEBPACK_IMPORTED_MODULE_11__.Platform.IOS && "vkuiBanner--ios", mode === "image" && "vkuiBanner--mode-image", stylesSize[size], mode === "image" && imageTheme === "dark" && "vkuiBanner--inverted")
63295
+ baseClassName: (0,_vkontakte_vkjs__WEBPACK_IMPORTED_MODULE_1__.classNames)("vkuiBanner", !noPadding && "vkuiBanner--withPadding", platform === _lib_platform__WEBPACK_IMPORTED_MODULE_11__.Platform.IOS && "vkuiBanner--ios", mode === "image" && "vkuiBanner--mode-image", size === "m" && "vkuiBanner--size-m", mode === "image" && imageTheme === "dark" && "vkuiBanner--inverted")
63303
63296
  }), asideMode === "expand" ? /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_Tappable_Tappable__WEBPACK_IMPORTED_MODULE_12__.Tappable, {
63304
63297
  className: "vkuiBanner__in",
63305
63298
  activeMode: platform === _lib_platform__WEBPACK_IMPORTED_MODULE_11__.Platform.IOS ? "opacity" : "background",
@@ -75652,7 +75645,7 @@ function _object_without_properties_loose(source, excluded) {
75652
75645
 
75653
75646
 
75654
75647
  /**
75655
- * @see https://vkcom.github.io/VKUI/#/PanelHeaderClose
75648
+ * @see https://vkcom.github.io/VKUI/#/PanelHeaderButton
75656
75649
  */ var PanelHeaderClose = function(_param) {
75657
75650
  var _param_children = _param.children, children = _param_children === void 0 ? "Отмена" : _param_children, restProps = _object_without_properties(_param, [
75658
75651
  "children"
@@ -75788,7 +75781,7 @@ function _object_without_properties_loose(source, excluded) {
75788
75781
 
75789
75782
 
75790
75783
  /**
75791
- * @see https://vkcom.github.io/VKUI/#/PanelHeaderBack
75784
+ * @see https://vkcom.github.io/VKUI/#/PanelHeaderButton
75792
75785
  */ var PanelHeaderBack = function(_param) {
75793
75786
  var label = _param.label, tmp = _param["aria-label"], ariaLabel = tmp === void 0 ? "Назад" : tmp, className = _param.className, restProps = _object_without_properties(_param, [
75794
75787
  "label",
@@ -75939,7 +75932,7 @@ function _object_without_properties_loose(source, excluded) {
75939
75932
 
75940
75933
 
75941
75934
  /**
75942
- * @see https://vkcom.github.io/VKUI/#/PanelHeaderSubmit
75935
+ * @see https://vkcom.github.io/VKUI/#/PanelHeaderButton
75943
75936
  */ var PanelHeaderSubmit = function(_param) {
75944
75937
  var _param_children = _param.children, children = _param_children === void 0 ? "Готово" : _param_children, restProps = _object_without_properties(_param, [
75945
75938
  "children"
@@ -76043,7 +76036,7 @@ function _object_without_properties_loose(source, excluded) {
76043
76036
 
76044
76037
 
76045
76038
  /**
76046
- * @see https://vkcom.github.io/VKUI/#/PanelHeaderEdit
76039
+ * @see https://vkcom.github.io/VKUI/#/PanelHeaderButton
76047
76040
  */ var PanelHeaderEdit = function(_param) {
76048
76041
  var _param_isActive = _param.isActive, isActive = _param_isActive === void 0 ? false : _param_isActive, _param_editLabel = _param.editLabel, editLabel = _param_editLabel === void 0 ? "Редактировать" : _param_editLabel, _param_doneLabel = _param.doneLabel, doneLabel = _param_doneLabel === void 0 ? "Готово" : _param_doneLabel, restProps = _object_without_properties(_param, [
76049
76042
  "isActive",
@@ -80,6 +80,8 @@ const warn = warnOnce('ActionSheet');
80
80
  onClose: onClose,
81
81
  className: isDesktop ? className : undefined,
82
82
  style: isDesktop ? style : undefined
83
+ }, /*#__PURE__*/ React.createElement("div", {
84
+ className: styles['ActionSheet__content-wrapper']
83
85
  }, (header || text) && /*#__PURE__*/ React.createElement("header", {
84
86
  className: styles['ActionSheet__header']
85
87
  }, header && /*#__PURE__*/ React.createElement(Footnote, {
@@ -87,7 +89,9 @@ const warn = warnOnce('ActionSheet');
87
89
  className: styles['ActionSheet__title']
88
90
  }, header), text && /*#__PURE__*/ React.createElement(Footnote, {
89
91
  className: styles['ActionSheet__text']
90
- }, text)), children, platform === Platform.IOS && !isDesktop && (iosCloseItem ?? /*#__PURE__*/ React.createElement(ActionSheetDefaultIosCloseItem, null))));
92
+ }, text)), children), platform === Platform.IOS && !isDesktop && /*#__PURE__*/ React.createElement("div", {
93
+ className: styles['ActionSheet__close-item-wrapper--ios']
94
+ }, iosCloseItem ?? /*#__PURE__*/ React.createElement(ActionSheetDefaultIosCloseItem, null))));
91
95
  if (isDesktop) {
92
96
  return actionSheet;
93
97
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ActionSheet/ActionSheet.tsx"],"sourcesContent":["import * as React from 'react';\nimport { noop } from '@vkontakte/vkjs';\nimport { useAdaptivityWithJSMediaQueries } from '../../hooks/useAdaptivityWithJSMediaQueries';\nimport { useObjectMemo } from '../../hooks/useObjectMemo';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useTimeout } from '../../hooks/useTimeout';\nimport { Platform } from '../../lib/platform';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { useScrollLock } from '../AppRoot/ScrollContext';\nimport { PopoutWrapper } from '../PopoutWrapper/PopoutWrapper';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { ActionSheetContext, ItemClickHandler } from './ActionSheetContext';\nimport { ActionSheetDefaultIosCloseItem } from './ActionSheetDefaultIosCloseItem';\nimport { ActionSheetDropdown } from './ActionSheetDropdown';\nimport { ActionSheetDropdownDesktop } from './ActionSheetDropdownDesktop';\nimport { SharedDropdownProps } from './types';\nimport styles from './ActionSheet.module.css';\n\nconst warn = warnOnce('ActionSheet');\ntype CloseInitiators = 'action-item' | 'cancel-item' | 'other';\nexport interface ActionSheetOnCloseOptions {\n closedBy: CloseInitiators;\n}\n\nexport interface ActionSheetProps\n extends Pick<\n SharedDropdownProps,\n 'toggleRef' | 'popupDirection' | 'popupOffsetDistance' | 'placement'\n >,\n React.HTMLAttributes<HTMLDivElement> {\n header?: React.ReactNode;\n text?: React.ReactNode;\n /**\n * Закрыть попап по клику снаружи.\n */\n onClose(options: ActionSheetOnCloseOptions): void;\n /**\n * Только мобильный iOS.\n */\n iosCloseItem?: React.ReactNode;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ActionSheet\n */\nexport const ActionSheet = ({\n children,\n className,\n header,\n text,\n style,\n iosCloseItem,\n popupDirection,\n popupOffsetDistance,\n placement,\n ...restProps\n}: ActionSheetProps) => {\n const platform = usePlatform();\n const [closingBy, setClosingBy] = React.useState<undefined | CloseInitiators>(undefined);\n const onClose = () => setClosingBy('other');\n const _action = React.useRef(noop);\n\n const afterClose = () => {\n restProps.onClose({ closedBy: closingBy || 'other' });\n _action.current();\n _action.current = noop;\n };\n\n const { isDesktop } = useAdaptivityWithJSMediaQueries();\n\n useScrollLock(!isDesktop);\n\n let timeout = platform === Platform.IOS ? 300 : 200;\n\n if (isDesktop) {\n timeout = 0;\n }\n\n const fallbackTransitionFinish = useTimeout(afterClose, timeout);\n React.useEffect(() => {\n if (closingBy) {\n fallbackTransitionFinish.set();\n } else {\n fallbackTransitionFinish.clear();\n }\n }, [closingBy, fallbackTransitionFinish]);\n\n const onItemClick = React.useCallback<ItemClickHandler>(\n ({ action, immediateAction, autoClose, isCancelItem }) =>\n (event) => {\n event.persist();\n immediateAction && immediateAction(event);\n if (autoClose) {\n _action.current = () => action && action(event);\n setClosingBy(isCancelItem ? 'cancel-item' : 'action-item');\n } else {\n action && action(event);\n }\n },\n [],\n );\n const contextValue = useObjectMemo({ onItemClick, isDesktop });\n\n const DropdownComponent = isDesktop ? ActionSheetDropdownDesktop : ActionSheetDropdown;\n\n if (process.env.NODE_ENV === 'development' && popupDirection) {\n // TODO [>=6]: popupDirection\n warn('Свойство \"popupDirection\" будет удалено в v6. Используйте свойство \"placement\"');\n }\n\n popupDirection = popupDirection !== undefined ? popupDirection : 'bottom';\n\n const dropdownProps = isDesktop\n ? Object.assign(restProps, { popupOffsetDistance, popupDirection, placement })\n : restProps;\n\n const actionSheet = (\n <ActionSheetContext.Provider value={contextValue}>\n <DropdownComponent\n closing={Boolean(closingBy)}\n timeout={timeout}\n {...dropdownProps}\n onClose={onClose}\n className={isDesktop ? className : undefined}\n style={isDesktop ? style : undefined}\n >\n {(header || text) && (\n <header className={styles['ActionSheet__header']}>\n {header && (\n <Footnote weight=\"2\" className={styles['ActionSheet__title']}>\n {header}\n </Footnote>\n )}\n {text && <Footnote className={styles['ActionSheet__text']}>{text}</Footnote>}\n </header>\n )}\n {children}\n {platform === Platform.IOS &&\n !isDesktop &&\n (iosCloseItem ?? <ActionSheetDefaultIosCloseItem />)}\n </DropdownComponent>\n </ActionSheetContext.Provider>\n );\n\n if (isDesktop) {\n return actionSheet;\n }\n\n return (\n <PopoutWrapper\n closing={Boolean(closingBy)}\n alignY=\"bottom\"\n className={className}\n style={style}\n onClick={onClose}\n hasMask\n fixed\n >\n {actionSheet}\n </PopoutWrapper>\n );\n};\n"],"names":["React","noop","useAdaptivityWithJSMediaQueries","useObjectMemo","usePlatform","useTimeout","Platform","warnOnce","useScrollLock","PopoutWrapper","Footnote","ActionSheetContext","ActionSheetDefaultIosCloseItem","ActionSheetDropdown","ActionSheetDropdownDesktop","styles","warn","ActionSheet","children","className","header","text","style","iosCloseItem","popupDirection","popupOffsetDistance","placement","restProps","platform","closingBy","setClosingBy","useState","undefined","onClose","_action","useRef","afterClose","closedBy","current","isDesktop","timeout","IOS","fallbackTransitionFinish","useEffect","set","clear","onItemClick","useCallback","action","immediateAction","autoClose","isCancelItem","event","persist","contextValue","DropdownComponent","process","env","NODE_ENV","dropdownProps","Object","assign","actionSheet","Provider","value","closing","Boolean","weight","alignY","onClick","hasMask","fixed"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/components/ActionSheet/ActionSheet.tsx"],"sourcesContent":["import * as React from 'react';\nimport { noop } from '@vkontakte/vkjs';\nimport { useAdaptivityWithJSMediaQueries } from '../../hooks/useAdaptivityWithJSMediaQueries';\nimport { useObjectMemo } from '../../hooks/useObjectMemo';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useTimeout } from '../../hooks/useTimeout';\nimport { Platform } from '../../lib/platform';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { useScrollLock } from '../AppRoot/ScrollContext';\nimport { PopoutWrapper } from '../PopoutWrapper/PopoutWrapper';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { ActionSheetContext, ItemClickHandler } from './ActionSheetContext';\nimport { ActionSheetDefaultIosCloseItem } from './ActionSheetDefaultIosCloseItem';\nimport { ActionSheetDropdown } from './ActionSheetDropdown';\nimport { ActionSheetDropdownDesktop } from './ActionSheetDropdownDesktop';\nimport { SharedDropdownProps } from './types';\nimport styles from './ActionSheet.module.css';\n\nconst warn = warnOnce('ActionSheet');\ntype CloseInitiators = 'action-item' | 'cancel-item' | 'other';\nexport interface ActionSheetOnCloseOptions {\n closedBy: CloseInitiators;\n}\n\nexport interface ActionSheetProps\n extends Pick<\n SharedDropdownProps,\n 'toggleRef' | 'popupDirection' | 'popupOffsetDistance' | 'placement'\n >,\n React.HTMLAttributes<HTMLDivElement> {\n header?: React.ReactNode;\n text?: React.ReactNode;\n /**\n * Закрыть попап по клику снаружи.\n */\n onClose(options: ActionSheetOnCloseOptions): void;\n /**\n * Только мобильный iOS.\n */\n iosCloseItem?: React.ReactNode;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ActionSheet\n */\nexport const ActionSheet = ({\n children,\n className,\n header,\n text,\n style,\n iosCloseItem,\n popupDirection,\n popupOffsetDistance,\n placement,\n ...restProps\n}: ActionSheetProps) => {\n const platform = usePlatform();\n const [closingBy, setClosingBy] = React.useState<undefined | CloseInitiators>(undefined);\n const onClose = () => setClosingBy('other');\n const _action = React.useRef(noop);\n\n const afterClose = () => {\n restProps.onClose({ closedBy: closingBy || 'other' });\n _action.current();\n _action.current = noop;\n };\n\n const { isDesktop } = useAdaptivityWithJSMediaQueries();\n\n useScrollLock(!isDesktop);\n\n let timeout = platform === Platform.IOS ? 300 : 200;\n\n if (isDesktop) {\n timeout = 0;\n }\n\n const fallbackTransitionFinish = useTimeout(afterClose, timeout);\n React.useEffect(() => {\n if (closingBy) {\n fallbackTransitionFinish.set();\n } else {\n fallbackTransitionFinish.clear();\n }\n }, [closingBy, fallbackTransitionFinish]);\n\n const onItemClick = React.useCallback<ItemClickHandler>(\n ({ action, immediateAction, autoClose, isCancelItem }) =>\n (event) => {\n event.persist();\n immediateAction && immediateAction(event);\n if (autoClose) {\n _action.current = () => action && action(event);\n setClosingBy(isCancelItem ? 'cancel-item' : 'action-item');\n } else {\n action && action(event);\n }\n },\n [],\n );\n const contextValue = useObjectMemo({ onItemClick, isDesktop });\n\n const DropdownComponent = isDesktop ? ActionSheetDropdownDesktop : ActionSheetDropdown;\n\n if (process.env.NODE_ENV === 'development' && popupDirection) {\n // TODO [>=6]: popupDirection\n warn('Свойство \"popupDirection\" будет удалено в v6. Используйте свойство \"placement\"');\n }\n\n popupDirection = popupDirection !== undefined ? popupDirection : 'bottom';\n\n const dropdownProps = isDesktop\n ? Object.assign(restProps, { popupOffsetDistance, popupDirection, placement })\n : restProps;\n\n const actionSheet = (\n <ActionSheetContext.Provider value={contextValue}>\n <DropdownComponent\n closing={Boolean(closingBy)}\n timeout={timeout}\n {...dropdownProps}\n onClose={onClose}\n className={isDesktop ? className : undefined}\n style={isDesktop ? style : undefined}\n >\n <div className={styles['ActionSheet__content-wrapper']}>\n {(header || text) && (\n <header className={styles['ActionSheet__header']}>\n {header && (\n <Footnote weight=\"2\" className={styles['ActionSheet__title']}>\n {header}\n </Footnote>\n )}\n {text && <Footnote className={styles['ActionSheet__text']}>{text}</Footnote>}\n </header>\n )}\n {children}\n </div>\n {platform === Platform.IOS && !isDesktop && (\n <div className={styles['ActionSheet__close-item-wrapper--ios']}>\n {iosCloseItem ?? <ActionSheetDefaultIosCloseItem />}\n </div>\n )}\n </DropdownComponent>\n </ActionSheetContext.Provider>\n );\n\n if (isDesktop) {\n return actionSheet;\n }\n\n return (\n <PopoutWrapper\n closing={Boolean(closingBy)}\n alignY=\"bottom\"\n className={className}\n style={style}\n onClick={onClose}\n hasMask\n fixed\n >\n {actionSheet}\n </PopoutWrapper>\n );\n};\n"],"names":["React","noop","useAdaptivityWithJSMediaQueries","useObjectMemo","usePlatform","useTimeout","Platform","warnOnce","useScrollLock","PopoutWrapper","Footnote","ActionSheetContext","ActionSheetDefaultIosCloseItem","ActionSheetDropdown","ActionSheetDropdownDesktop","styles","warn","ActionSheet","children","className","header","text","style","iosCloseItem","popupDirection","popupOffsetDistance","placement","restProps","platform","closingBy","setClosingBy","useState","undefined","onClose","_action","useRef","afterClose","closedBy","current","isDesktop","timeout","IOS","fallbackTransitionFinish","useEffect","set","clear","onItemClick","useCallback","action","immediateAction","autoClose","isCancelItem","event","persist","contextValue","DropdownComponent","process","env","NODE_ENV","dropdownProps","Object","assign","actionSheet","Provider","value","closing","Boolean","div","weight","alignY","onClick","hasMask","fixed"],"mappings":"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"}
@@ -1,16 +1,16 @@
1
1
  .ActionSheet {
2
- overflow: hidden;
3
- box-shadow: var(--vkui--elevation3);
4
- width: calc(100% - 20px);
2
+ width: 100%;
5
3
  max-width: var(--vkui--size_popup_small--regular);
6
- align-items: stretch;
7
- display: flex;
8
- flex-direction: column;
4
+ padding: 10px;
9
5
  box-sizing: border-box;
10
6
  animation: animation-actionsheet-intro 0.2s var(--vkui--animation_easing_platform);
7
+ }
8
+
9
+ .ActionSheet__content-wrapper {
11
10
  padding: 8px 0;
12
- margin: 10px;
11
+ overflow: hidden;
13
12
  border-radius: 12px;
13
+ box-shadow: var(--vkui--elevation3);
14
14
  background: var(--vkui--color_background_modal);
15
15
  }
16
16
 
@@ -33,13 +33,25 @@
33
33
  */
34
34
 
35
35
  .ActionSheet--ios {
36
- width: 100%;
37
- animation: animation-actionsheet-intro 0.3s var(--vkui--animation_easing_platform);
38
36
  padding: 8px;
39
- margin: unset;
37
+ animation: animation-actionsheet-intro 0.3s var(--vkui--animation_easing_platform);
40
38
  background: transparent;
41
39
  }
42
40
 
41
+ .ActionSheet--ios .ActionSheet__content-wrapper {
42
+ border-radius: 14px;
43
+ padding: 0;
44
+ }
45
+
46
+ .ActionSheet__close-item-wrapper--ios {
47
+ margin-top: 8px;
48
+ margin-bottom: var(--vkui_internal--safe_area_inset_bottom);
49
+ overflow: hidden;
50
+ border-radius: 14px;
51
+ box-shadow: var(--vkui--elevation3);
52
+ background: var(--vkui--color_background_modal);
53
+ }
54
+
43
55
  .ActionSheet--ios.ActionSheet--closing {
44
56
  transform: translateY(100%);
45
57
  transition: transform 0.3s var(--vkui--animation_easing_platform);
@@ -47,8 +59,6 @@
47
59
 
48
60
  .ActionSheet--ios .ActionSheet__header {
49
61
  position: relative;
50
- overflow: hidden;
51
- border-radius: 14px 14px 0 0;
52
62
  text-align: center;
53
63
  }
54
64
 
@@ -86,11 +96,11 @@
86
96
  width: auto;
87
97
  height: auto;
88
98
  animation: none;
89
- margin: 0;
99
+ padding: 0;
90
100
  max-width: 100%;
91
101
  }
92
102
 
93
- .ActionSheet--desktop.ActionSheet--ios {
103
+ .ActionSheet--desktop.ActionSheet--ios .ActionSheet__content-wrapper {
94
104
  border-radius: 14px;
95
105
  padding: 0;
96
106
  }
@@ -7,7 +7,6 @@
7
7
  color: var(--vkui--color_text_primary);
8
8
  padding: 0 20px;
9
9
  min-height: 48px;
10
- border-radius: 0;
11
10
  box-sizing: border-box;
12
11
  }
13
12
 
@@ -109,7 +108,6 @@
109
108
  .ActionSheetItem--ios {
110
109
  padding: 14px 18px;
111
110
  min-height: 56px;
112
- border-radius: 0;
113
111
  color: var(--vkui--color_text_accent_themed);
114
112
  background: var(--vkui--color_background_modal);
115
113
  }
@@ -126,17 +124,6 @@
126
124
  color: var(--vkui--color_text_negative);
127
125
  }
128
126
 
129
- .ActionSheetItem--ios:first-child {
130
- border-top-left-radius: 14px;
131
- border-top-right-radius: 14px;
132
- }
133
-
134
- .ActionSheetItem--ios:not(.ActionSheetItem--desktop):nth-last-child(2),
135
- .ActionSheetItem--ios:last-child {
136
- border-bottom-left-radius: 14px;
137
- border-bottom-right-radius: 14px;
138
- }
139
-
140
127
  .ActionSheetItem--ios::before {
141
128
  position: absolute;
142
129
  left: 0;
@@ -193,9 +180,6 @@
193
180
  }
194
181
 
195
182
  .ActionSheetItem--mode-cancel {
196
- margin-top: 8px;
197
- margin-bottom: var(--vkui_internal--safe_area_inset_bottom);
198
- border-radius: 14px;
199
183
  min-height: 52px;
200
184
  }
201
185
 
@@ -1,4 +1,4 @@
1
- import * as React from 'react';
1
+ /// <reference types="react" />
2
2
  import { HTMLAttributesWithRootRef } from '../../types';
3
3
  export interface AspectRatioProps extends HTMLAttributesWithRootRef<HTMLDivElement> {
4
4
  className?: string;
@@ -6,7 +6,6 @@ export interface AspectRatioProps extends HTMLAttributesWithRootRef<HTMLDivEleme
6
6
  * По умолчанию, вложенный контент будет растягиваться и заполнять весь блок.
7
7
  */
8
8
  mode?: 'stretch' | 'none';
9
- children: React.ReactNode;
10
9
  /**
11
10
  * Например 16 / 9, 4 / 3, 1920 / 1080
12
11
  */
@@ -15,8 +14,8 @@ export interface AspectRatioProps extends HTMLAttributesWithRootRef<HTMLDivEleme
15
14
  /**
16
15
  * `AspectRatio` позволяет поддерживать постоянное соотношение ширины и высоты.
17
16
  * Его можно использовать для отображения изображений, карт, видео и других медиафайлов.
18
-
17
+
19
18
  * @since 5.5.0
20
19
  * @see https://vkcom.github.io/VKUI/#/AspectRatio
21
20
  */
22
- export declare function AspectRatio({ ratio, children, mode, style: styleProp, ...props }: AspectRatioProps): JSX.Element;
21
+ export declare function AspectRatio({ ratio, mode, style: styleProp, ...props }: AspectRatioProps): JSX.Element;
@@ -5,10 +5,10 @@ import styles from './AspectRatio.module.css';
5
5
  /**
6
6
  * `AspectRatio` позволяет поддерживать постоянное соотношение ширины и высоты.
7
7
  * Его можно использовать для отображения изображений, карт, видео и других медиафайлов.
8
-
8
+
9
9
  * @since 5.5.0
10
10
  * @see https://vkcom.github.io/VKUI/#/AspectRatio
11
- */ export function AspectRatio({ ratio, children, mode = 'stretch', style: styleProp, ...props }) {
11
+ */ export function AspectRatio({ ratio, mode = 'stretch', style: styleProp, ...props }) {
12
12
  const style = {
13
13
  ['--vkui_internal--aspect_ratio']: String(ratio)
14
14
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/AspectRatio/AspectRatio.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { CSSCustomProperties, HTMLAttributesWithRootRef } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport styles from './AspectRatio.module.css';\n\nexport interface AspectRatioProps extends HTMLAttributesWithRootRef<HTMLDivElement> {\n className?: string;\n /**\n * По умолчанию, вложенный контент будет растягиваться и заполнять весь блок.\n */\n mode?: 'stretch' | 'none';\n children: React.ReactNode;\n /**\n * Например 16 / 9, 4 / 3, 1920 / 1080\n */\n ratio: number;\n}\n\n/**\n * `AspectRatio` позволяет поддерживать постоянное соотношение ширины и высоты.\n * Его можно использовать для отображения изображений, карт, видео и других медиафайлов.\n \n * @since 5.5.0\n * @see https://vkcom.github.io/VKUI/#/AspectRatio\n */\nexport function AspectRatio({\n ratio,\n children,\n mode = 'stretch',\n style: styleProp,\n ...props\n}: AspectRatioProps): JSX.Element {\n const style: React.CSSProperties & CSSCustomProperties = {\n ['--vkui_internal--aspect_ratio']: String(ratio),\n };\n\n return (\n <RootComponent\n baseClassName={classNames(\n styles.AspectRatio,\n mode === 'stretch' && styles['AspectRatio--mode-stretch'],\n )}\n style={{ ...styleProp, ...style }}\n {...props}\n />\n );\n}\n"],"names":["React","classNames","RootComponent","styles","AspectRatio","ratio","children","mode","style","styleProp","props","String","baseClassName"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAE7C,SAASC,aAAa,QAAQ,iCAAiC;AAC/D,OAAOC,YAAY,2BAA2B;AAe9C;;;;;;CAMC,GACD,OAAO,SAASC,YAAY,EAC1BC,KAAK,EACLC,QAAQ,EACRC,OAAO,SAAS,EAChBC,OAAOC,SAAS,EAChB,GAAGC,OACc;IACjB,MAAMF,QAAmD;QACvD,CAAC,gCAAgC,EAAEG,OAAON;IAC5C;IAEA,qBACE,oBAACH;QACCU,eAAeX,WACbE,OAAOC,WAAW,EAClBG,SAAS,aAAaJ,MAAM,CAAC,4BAA4B;QAE3DK,OAAO;YAAE,GAAGC,SAAS;YAAE,GAAGD,KAAK;QAAC;QAC/B,GAAGE,KAAK;;AAGf"}
1
+ {"version":3,"sources":["../../../../src/components/AspectRatio/AspectRatio.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { CSSCustomProperties, HTMLAttributesWithRootRef } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport styles from './AspectRatio.module.css';\n\nexport interface AspectRatioProps extends HTMLAttributesWithRootRef<HTMLDivElement> {\n className?: string;\n /**\n * По умолчанию, вложенный контент будет растягиваться и заполнять весь блок.\n */\n mode?: 'stretch' | 'none';\n /**\n * Например 16 / 9, 4 / 3, 1920 / 1080\n */\n ratio: number;\n}\n\n/**\n * `AspectRatio` позволяет поддерживать постоянное соотношение ширины и высоты.\n * Его можно использовать для отображения изображений, карт, видео и других медиафайлов.\n\n * @since 5.5.0\n * @see https://vkcom.github.io/VKUI/#/AspectRatio\n */\nexport function AspectRatio({\n ratio,\n mode = 'stretch',\n style: styleProp,\n ...props\n}: AspectRatioProps): JSX.Element {\n const style: React.CSSProperties & CSSCustomProperties = {\n ['--vkui_internal--aspect_ratio']: String(ratio),\n };\n\n return (\n <RootComponent\n baseClassName={classNames(\n styles.AspectRatio,\n mode === 'stretch' && styles['AspectRatio--mode-stretch'],\n )}\n style={{ ...styleProp, ...style }}\n {...props}\n />\n );\n}\n"],"names":["React","classNames","RootComponent","styles","AspectRatio","ratio","mode","style","styleProp","props","String","baseClassName"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAE7C,SAASC,aAAa,QAAQ,iCAAiC;AAC/D,OAAOC,YAAY,2BAA2B;AAc9C;;;;;;CAMC,GACD,OAAO,SAASC,YAAY,EAC1BC,KAAK,EACLC,OAAO,SAAS,EAChBC,OAAOC,SAAS,EAChB,GAAGC,OACc;IACjB,MAAMF,QAAmD;QACvD,CAAC,gCAAgC,EAAEG,OAAOL;IAC5C;IAEA,qBACE,oBAACH;QACCS,eAAeV,WACbE,OAAOC,WAAW,EAClBE,SAAS,aAAaH,MAAM,CAAC,4BAA4B;QAE3DI,OAAO;YAAE,GAAGC,SAAS;YAAE,GAAGD,KAAK;QAAC;QAC/B,GAAGE,KAAK;;AAGf"}
@@ -11,10 +11,6 @@ import { Subhead } from '../Typography/Subhead/Subhead';
11
11
  import { Text } from '../Typography/Text/Text';
12
12
  import { Title } from '../Typography/Title/Title';
13
13
  import styles from './Banner.module.css';
14
- const stylesSize = {
15
- s: styles['Banner--size-s'],
16
- m: styles['Banner--size-m']
17
- };
18
14
  /**
19
15
  * @see https://vkcom.github.io/VKUI/#/Banner
20
16
  */ export const Banner = ({ mode = 'tint', imageTheme = 'dark', size = 's', before, asideMode, header, subheader, text, children, background, actions, onDismiss, dismissLabel = 'Скрыть', noPadding, ...restProps })=>{
@@ -45,7 +41,7 @@ const stylesSize = {
45
41
  return /*#__PURE__*/ React.createElement(RootComponent, {
46
42
  Component: "section",
47
43
  ...restProps,
48
- baseClassName: classNames(styles['Banner'], !noPadding && styles['Banner--withPadding'], platform === Platform.IOS && styles['Banner--ios'], mode === 'image' && styles['Banner--mode-image'], stylesSize[size], mode === 'image' && imageTheme === 'dark' && styles['Banner--inverted'])
44
+ baseClassName: classNames(styles['Banner'], !noPadding && styles['Banner--withPadding'], platform === Platform.IOS && styles['Banner--ios'], mode === 'image' && styles['Banner--mode-image'], size === 'm' && styles['Banner--size-m'], mode === 'image' && imageTheme === 'dark' && styles['Banner--inverted'])
49
45
  }, asideMode === 'expand' ? /*#__PURE__*/ React.createElement(Tappable, {
50
46
  className: styles['Banner__in'],
51
47
  activeMode: platform === Platform.IOS ? 'opacity' : 'background',
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Banner/Banner.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Icon24Cancel, Icon24Chevron, Icon24Dismiss, Icon24DismissDark } from '@vkontakte/icons';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { Platform } from '../../lib/platform';\nimport { HTMLAttributesWithRootRef } from '../../types';\nimport { IconButton } from '../IconButton/IconButton';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { Tappable } from '../Tappable/Tappable';\nimport { Headline } from '../Typography/Headline/Headline';\nimport { Subhead } from '../Typography/Subhead/Subhead';\nimport { Text } from '../Typography/Text/Text';\nimport { Title } from '../Typography/Title/Title';\nimport styles from './Banner.module.css';\n\nconst stylesSize = {\n s: styles['Banner--size-s'],\n m: styles['Banner--size-m'],\n};\n\nexport interface BannerProps extends HTMLAttributesWithRootRef<HTMLDivElement> {\n /**\n * Тип баннера.\n */\n mode?: 'tint' | 'image';\n size?: 's' | 'm';\n /**\n * Тип действия в правой части баннера.\n *\n * - `dismiss` – отображается иконка крестика, при клике на неё сработает свойство `onDismiss`.\n * - `expand` – отображается иконка шеврона, которая подразумевает, что при клике на баннер можно куда-то перейти.\n */\n asideMode?: 'dismiss' | 'expand';\n /**\n * Срабатывает при клике на иконку крестика при `asideMode=\"dismiss\"`.\n */\n onDismiss?: React.MouseEventHandler<HTMLButtonElement>;\n /**\n * `aria-label` для кнопки при `asideMode=\"dismiss\". Необходим, чтобы кнопка была доступной.\n */\n dismissLabel?: string;\n /**\n * Содержимое, отображаемое в левой части баннера.\n */\n before?: React.ReactNode;\n /**\n * Заголовок.\n */\n header?: React.ReactNode;\n /**\n * Подзаголовок.\n */\n subheader?: React.ReactNode;\n /**\n * Текст баннера.\n */\n text?: React.ReactNode;\n /**\n * При использовании `mode=\"image\"`.\n *\n * - `light` – в качестве фона используется светлое изображение, цвет текста в баннере будет тёмным.\n * - `dark` – в качестве фона используется тёмное изображение, цвет текста будет светлым.\n */\n imageTheme?: 'light' | 'dark';\n /**\n * При использовании `mode=\"image\"`.\n *\n * Элемент, который нужно стилизовать цветом и/или фоном. Этот элемент будет растянут на 100% ширины и высоты баннера.\n */\n background?: React.ReactNode;\n /**\n * Кнопки-действия. Принимает [`Button`](https://vkcom.github.io/VKUI/#/Button).\n *\n * - В режиме `tint` или `image` со светлым фоном используйте только с параметрами:\n * - `mode=\"primary\"`\n * - `mode=\"secondary\"`\n * - В режиме `image` с тёмным фоном используйте с параметрами:\n * - `appearance=\"overlay\"`.\n *\n * Для набора кнопок используйте [`ButtonGroup`](https://vkcom.github.io/VKUI/#/ButtonGroup) с параметрами:\n *\n * - `gap=\"m\" mode=\"horizontal\" stretched`\n * - `gap=\"m\" mode=\"vertical\" stretched`\n */\n actions?: React.ReactNode;\n /**\n * Удаляет отступы у компонента\n */\n noPadding?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Banner\n */\nexport const Banner = ({\n mode = 'tint',\n imageTheme = 'dark',\n size = 's',\n before,\n asideMode,\n header,\n subheader,\n text,\n children,\n background,\n actions,\n onDismiss,\n dismissLabel = 'Скрыть',\n noPadding,\n ...restProps\n}: BannerProps) => {\n const platform = usePlatform();\n\n const HeaderTypography = size === 'm' ? Title : Headline;\n const SubheaderTypography = size === 'm' ? Text : Subhead;\n\n const IconDismissIOS = mode === 'image' ? Icon24DismissDark : Icon24Dismiss;\n\n const content = (\n <>\n {mode === 'image' && background && (\n <div aria-hidden className={styles['Banner__bg']}>\n {background}\n </div>\n )}\n\n {before && <div className={styles['Banner__before']}>{before}</div>}\n\n <div className={styles['Banner__content']}>\n {hasReactNode(header) && (\n <HeaderTypography Component=\"p\" weight=\"2\" level={size === 'm' ? '2' : '1'}>\n {header}\n </HeaderTypography>\n )}\n {hasReactNode(subheader) && (\n <SubheaderTypography Component=\"p\" className={styles['Banner__subheader']}>\n {subheader}\n </SubheaderTypography>\n )}\n {hasReactNode(text) && (\n <Text Component=\"p\" className={styles['Banner__text']}>\n {text}\n </Text>\n )}\n {hasReactNode(actions) && React.Children.count(actions) > 0 && (\n <div className={styles['Banner__actions']}>{actions}</div>\n )}\n </div>\n </>\n );\n\n return (\n <RootComponent\n Component=\"section\"\n {...restProps}\n baseClassName={classNames(\n styles['Banner'],\n !noPadding && styles['Banner--withPadding'],\n platform === Platform.IOS && styles['Banner--ios'],\n mode === 'image' && styles['Banner--mode-image'],\n stylesSize[size],\n mode === 'image' && imageTheme === 'dark' && styles['Banner--inverted'],\n )}\n >\n {asideMode === 'expand' ? (\n <Tappable\n className={styles['Banner__in']}\n activeMode={platform === Platform.IOS ? 'opacity' : 'background'}\n role=\"button\"\n >\n {content}\n\n <div className={styles['Banner__aside']}>\n <Icon24Chevron className={styles['Banner__expand']} />\n </div>\n </Tappable>\n ) : (\n <div className={styles['Banner__in']}>\n {content}\n\n {asideMode === 'dismiss' && (\n <div className={styles['Banner__aside']}>\n <IconButton\n aria-label={dismissLabel}\n className={styles['Banner__dismiss']}\n onClick={onDismiss}\n hoverMode=\"opacity\"\n hasActive={false}\n >\n {platform === Platform.IOS ? <IconDismissIOS /> : <Icon24Cancel />}\n </IconButton>\n </div>\n )}\n </div>\n )}\n </RootComponent>\n );\n};\n"],"names":["React","Icon24Cancel","Icon24Chevron","Icon24Dismiss","Icon24DismissDark","classNames","hasReactNode","usePlatform","Platform","IconButton","RootComponent","Tappable","Headline","Subhead","Text","Title","styles","stylesSize","s","m","Banner","mode","imageTheme","size","before","asideMode","header","subheader","text","children","background","actions","onDismiss","dismissLabel","noPadding","restProps","platform","HeaderTypography","SubheaderTypography","IconDismissIOS","content","div","aria-hidden","className","Component","weight","level","Children","count","baseClassName","IOS","activeMode","role","aria-label","onClick","hoverMode","hasActive"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/components/Banner/Banner.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Icon24Cancel, Icon24Chevron, Icon24Dismiss, Icon24DismissDark } from '@vkontakte/icons';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { Platform } from '../../lib/platform';\nimport { HTMLAttributesWithRootRef } from '../../types';\nimport { IconButton } from '../IconButton/IconButton';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { Tappable } from '../Tappable/Tappable';\nimport { Headline } from '../Typography/Headline/Headline';\nimport { Subhead } from '../Typography/Subhead/Subhead';\nimport { Text } from '../Typography/Text/Text';\nimport { Title } from '../Typography/Title/Title';\nimport styles from './Banner.module.css';\n\nexport interface BannerProps extends HTMLAttributesWithRootRef<HTMLDivElement> {\n /**\n * Тип баннера.\n */\n mode?: 'tint' | 'image';\n size?: 's' | 'm';\n /**\n * Тип действия в правой части баннера.\n *\n * - `dismiss` – отображается иконка крестика, при клике на неё сработает свойство `onDismiss`.\n * - `expand` – отображается иконка шеврона, которая подразумевает, что при клике на баннер можно куда-то перейти.\n */\n asideMode?: 'dismiss' | 'expand';\n /**\n * Срабатывает при клике на иконку крестика при `asideMode=\"dismiss\"`.\n */\n onDismiss?: React.MouseEventHandler<HTMLButtonElement>;\n /**\n * `aria-label` для кнопки при `asideMode=\"dismiss\". Необходим, чтобы кнопка была доступной.\n */\n dismissLabel?: string;\n /**\n * Содержимое, отображаемое в левой части баннера.\n */\n before?: React.ReactNode;\n /**\n * Заголовок.\n */\n header?: React.ReactNode;\n /**\n * Подзаголовок.\n */\n subheader?: React.ReactNode;\n /**\n * Текст баннера.\n */\n text?: React.ReactNode;\n /**\n * При использовании `mode=\"image\"`.\n *\n * - `light` – в качестве фона используется светлое изображение, цвет текста в баннере будет тёмным.\n * - `dark` – в качестве фона используется тёмное изображение, цвет текста будет светлым.\n */\n imageTheme?: 'light' | 'dark';\n /**\n * При использовании `mode=\"image\"`.\n *\n * Элемент, который нужно стилизовать цветом и/или фоном. Этот элемент будет растянут на 100% ширины и высоты баннера.\n */\n background?: React.ReactNode;\n /**\n * Кнопки-действия. Принимает [`Button`](https://vkcom.github.io/VKUI/#/Button).\n *\n * - В режиме `tint` или `image` со светлым фоном используйте только с параметрами:\n * - `mode=\"primary\"`\n * - `mode=\"secondary\"`\n * - В режиме `image` с тёмным фоном используйте с параметрами:\n * - `appearance=\"overlay\"`.\n *\n * Для набора кнопок используйте [`ButtonGroup`](https://vkcom.github.io/VKUI/#/ButtonGroup) с параметрами:\n *\n * - `gap=\"m\" mode=\"horizontal\" stretched`\n * - `gap=\"m\" mode=\"vertical\" stretched`\n */\n actions?: React.ReactNode;\n /**\n * Удаляет отступы у компонента\n */\n noPadding?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Banner\n */\nexport const Banner = ({\n mode = 'tint',\n imageTheme = 'dark',\n size = 's',\n before,\n asideMode,\n header,\n subheader,\n text,\n children,\n background,\n actions,\n onDismiss,\n dismissLabel = 'Скрыть',\n noPadding,\n ...restProps\n}: BannerProps) => {\n const platform = usePlatform();\n\n const HeaderTypography = size === 'm' ? Title : Headline;\n const SubheaderTypography = size === 'm' ? Text : Subhead;\n\n const IconDismissIOS = mode === 'image' ? Icon24DismissDark : Icon24Dismiss;\n\n const content = (\n <>\n {mode === 'image' && background && (\n <div aria-hidden className={styles['Banner__bg']}>\n {background}\n </div>\n )}\n\n {before && <div className={styles['Banner__before']}>{before}</div>}\n\n <div className={styles['Banner__content']}>\n {hasReactNode(header) && (\n <HeaderTypography Component=\"p\" weight=\"2\" level={size === 'm' ? '2' : '1'}>\n {header}\n </HeaderTypography>\n )}\n {hasReactNode(subheader) && (\n <SubheaderTypography Component=\"p\" className={styles['Banner__subheader']}>\n {subheader}\n </SubheaderTypography>\n )}\n {hasReactNode(text) && (\n <Text Component=\"p\" className={styles['Banner__text']}>\n {text}\n </Text>\n )}\n {hasReactNode(actions) && React.Children.count(actions) > 0 && (\n <div className={styles['Banner__actions']}>{actions}</div>\n )}\n </div>\n </>\n );\n\n return (\n <RootComponent\n Component=\"section\"\n {...restProps}\n baseClassName={classNames(\n styles['Banner'],\n !noPadding && styles['Banner--withPadding'],\n platform === Platform.IOS && styles['Banner--ios'],\n mode === 'image' && styles['Banner--mode-image'],\n size === 'm' && styles['Banner--size-m'],\n mode === 'image' && imageTheme === 'dark' && styles['Banner--inverted'],\n )}\n >\n {asideMode === 'expand' ? (\n <Tappable\n className={styles['Banner__in']}\n activeMode={platform === Platform.IOS ? 'opacity' : 'background'}\n role=\"button\"\n >\n {content}\n\n <div className={styles['Banner__aside']}>\n <Icon24Chevron className={styles['Banner__expand']} />\n </div>\n </Tappable>\n ) : (\n <div className={styles['Banner__in']}>\n {content}\n\n {asideMode === 'dismiss' && (\n <div className={styles['Banner__aside']}>\n <IconButton\n aria-label={dismissLabel}\n className={styles['Banner__dismiss']}\n onClick={onDismiss}\n hoverMode=\"opacity\"\n hasActive={false}\n >\n {platform === Platform.IOS ? <IconDismissIOS /> : <Icon24Cancel />}\n </IconButton>\n </div>\n )}\n </div>\n )}\n </RootComponent>\n );\n};\n"],"names":["React","Icon24Cancel","Icon24Chevron","Icon24Dismiss","Icon24DismissDark","classNames","hasReactNode","usePlatform","Platform","IconButton","RootComponent","Tappable","Headline","Subhead","Text","Title","styles","Banner","mode","imageTheme","size","before","asideMode","header","subheader","text","children","background","actions","onDismiss","dismissLabel","noPadding","restProps","platform","HeaderTypography","SubheaderTypography","IconDismissIOS","content","div","aria-hidden","className","Component","weight","level","Children","count","baseClassName","IOS","activeMode","role","aria-label","onClick","hoverMode","hasActive"],"mappings":"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"}