@vkontakte/vkui 5.9.2 → 5.9.3

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 (143) hide show
  1. package/dist/cjs/components/ActionSheet/ActionSheet.js +1 -1
  2. package/dist/cjs/components/ActionSheet/ActionSheet.js.map +1 -1
  3. package/dist/cjs/components/CustomSelect/CustomSelect.d.ts +1 -1
  4. package/dist/cjs/components/CustomSelect/CustomSelect.d.ts.map +1 -1
  5. package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
  6. package/dist/cjs/components/Header/Header.d.ts +3 -3
  7. package/dist/cjs/components/Header/Header.d.ts.map +1 -1
  8. package/dist/cjs/components/Header/Header.js +4 -5
  9. package/dist/cjs/components/Header/Header.js.map +1 -1
  10. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.d.ts.map +1 -1
  11. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js +4 -0
  12. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  13. package/dist/cjs/components/PullToRefresh/PullToRefresh.d.ts.map +1 -1
  14. package/dist/cjs/components/PullToRefresh/PullToRefresh.js +22 -7
  15. package/dist/cjs/components/PullToRefresh/PullToRefresh.js.map +1 -1
  16. package/dist/cjs/components/Typography/Caption/Caption.d.ts +2 -0
  17. package/dist/cjs/components/Typography/Caption/Caption.d.ts.map +1 -1
  18. package/dist/cjs/components/Typography/Caption/Caption.js.map +1 -1
  19. package/dist/cjs/components/Typography/Footnote/Footnote.d.ts +2 -0
  20. package/dist/cjs/components/Typography/Footnote/Footnote.d.ts.map +1 -1
  21. package/dist/cjs/components/Typography/Footnote/Footnote.js.map +1 -1
  22. package/dist/cjs/components/Typography/Headline/Headline.d.ts +2 -0
  23. package/dist/cjs/components/Typography/Headline/Headline.d.ts.map +1 -1
  24. package/dist/cjs/components/Typography/Headline/Headline.js.map +1 -1
  25. package/dist/cjs/components/Typography/Paragraph/Paragraph.d.ts +2 -0
  26. package/dist/cjs/components/Typography/Paragraph/Paragraph.d.ts.map +1 -1
  27. package/dist/cjs/components/Typography/Paragraph/Paragraph.js.map +1 -1
  28. package/dist/cjs/components/Typography/Subhead/Subhead.d.ts +2 -0
  29. package/dist/cjs/components/Typography/Subhead/Subhead.d.ts.map +1 -1
  30. package/dist/cjs/components/Typography/Subhead/Subhead.js.map +1 -1
  31. package/dist/cjs/components/Typography/Text/Text.d.ts +2 -0
  32. package/dist/cjs/components/Typography/Text/Text.d.ts.map +1 -1
  33. package/dist/cjs/components/Typography/Text/Text.js.map +1 -1
  34. package/dist/cjs/components/Typography/Title/Title.d.ts +2 -0
  35. package/dist/cjs/components/Typography/Title/Title.d.ts.map +1 -1
  36. package/dist/cjs/components/Typography/Title/Title.js.map +1 -1
  37. package/dist/components/ActionSheet/ActionSheet.js +1 -1
  38. package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
  39. package/dist/components/CustomSelect/CustomSelect.d.ts +1 -1
  40. package/dist/components/CustomSelect/CustomSelect.d.ts.map +1 -1
  41. package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
  42. package/dist/components/Header/Header.d.ts +3 -3
  43. package/dist/components/Header/Header.d.ts.map +1 -1
  44. package/dist/components/Header/Header.js +4 -5
  45. package/dist/components/Header/Header.js.map +1 -1
  46. package/dist/components/HorizontalScroll/HorizontalScroll.d.ts.map +1 -1
  47. package/dist/components/HorizontalScroll/HorizontalScroll.js +4 -0
  48. package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  49. package/dist/components/PullToRefresh/PullToRefresh.d.ts.map +1 -1
  50. package/dist/components/PullToRefresh/PullToRefresh.js +22 -7
  51. package/dist/components/PullToRefresh/PullToRefresh.js.map +1 -1
  52. package/dist/components/Typography/Caption/Caption.d.ts +2 -0
  53. package/dist/components/Typography/Caption/Caption.d.ts.map +1 -1
  54. package/dist/components/Typography/Caption/Caption.js +2 -0
  55. package/dist/components/Typography/Caption/Caption.js.map +1 -1
  56. package/dist/components/Typography/Footnote/Footnote.d.ts +2 -0
  57. package/dist/components/Typography/Footnote/Footnote.d.ts.map +1 -1
  58. package/dist/components/Typography/Footnote/Footnote.js +2 -0
  59. package/dist/components/Typography/Footnote/Footnote.js.map +1 -1
  60. package/dist/components/Typography/Headline/Headline.d.ts +2 -0
  61. package/dist/components/Typography/Headline/Headline.d.ts.map +1 -1
  62. package/dist/components/Typography/Headline/Headline.js +2 -0
  63. package/dist/components/Typography/Headline/Headline.js.map +1 -1
  64. package/dist/components/Typography/Paragraph/Paragraph.d.ts +2 -0
  65. package/dist/components/Typography/Paragraph/Paragraph.d.ts.map +1 -1
  66. package/dist/components/Typography/Paragraph/Paragraph.js +2 -0
  67. package/dist/components/Typography/Paragraph/Paragraph.js.map +1 -1
  68. package/dist/components/Typography/Subhead/Subhead.d.ts +2 -0
  69. package/dist/components/Typography/Subhead/Subhead.d.ts.map +1 -1
  70. package/dist/components/Typography/Subhead/Subhead.js +2 -0
  71. package/dist/components/Typography/Subhead/Subhead.js.map +1 -1
  72. package/dist/components/Typography/Text/Text.d.ts +2 -0
  73. package/dist/components/Typography/Text/Text.d.ts.map +1 -1
  74. package/dist/components/Typography/Text/Text.js +2 -0
  75. package/dist/components/Typography/Text/Text.js.map +1 -1
  76. package/dist/components/Typography/Title/Title.d.ts +2 -0
  77. package/dist/components/Typography/Title/Title.d.ts.map +1 -1
  78. package/dist/components/Typography/Title/Title.js +2 -0
  79. package/dist/components/Typography/Title/Title.js.map +1 -1
  80. package/dist/components.css +1 -1
  81. package/dist/components.css.map +1 -1
  82. package/dist/components.js.tmp +66 -33
  83. package/dist/cssm/components/ActionSheet/ActionSheet.js +1 -1
  84. package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
  85. package/dist/cssm/components/Alert/Alert.module.css +5 -0
  86. package/dist/cssm/components/CustomSelect/CustomSelect.d.ts +1 -1
  87. package/dist/cssm/components/CustomSelect/CustomSelect.d.ts.map +1 -1
  88. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  89. package/dist/cssm/components/Header/Header.d.ts +3 -3
  90. package/dist/cssm/components/Header/Header.d.ts.map +1 -1
  91. package/dist/cssm/components/Header/Header.js +2 -3
  92. package/dist/cssm/components/Header/Header.js.map +1 -1
  93. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.d.ts.map +1 -1
  94. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +4 -0
  95. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  96. package/dist/cssm/components/PullToRefresh/PullToRefresh.d.ts.map +1 -1
  97. package/dist/cssm/components/PullToRefresh/PullToRefresh.js +22 -7
  98. package/dist/cssm/components/PullToRefresh/PullToRefresh.js.map +1 -1
  99. package/dist/cssm/components/Typography/Caption/Caption.d.ts +2 -0
  100. package/dist/cssm/components/Typography/Caption/Caption.d.ts.map +1 -1
  101. package/dist/cssm/components/Typography/Caption/Caption.js +2 -0
  102. package/dist/cssm/components/Typography/Caption/Caption.js.map +1 -1
  103. package/dist/cssm/components/Typography/Footnote/Footnote.d.ts +2 -0
  104. package/dist/cssm/components/Typography/Footnote/Footnote.d.ts.map +1 -1
  105. package/dist/cssm/components/Typography/Footnote/Footnote.js +2 -0
  106. package/dist/cssm/components/Typography/Footnote/Footnote.js.map +1 -1
  107. package/dist/cssm/components/Typography/Headline/Headline.d.ts +2 -0
  108. package/dist/cssm/components/Typography/Headline/Headline.d.ts.map +1 -1
  109. package/dist/cssm/components/Typography/Headline/Headline.js +2 -0
  110. package/dist/cssm/components/Typography/Headline/Headline.js.map +1 -1
  111. package/dist/cssm/components/Typography/Paragraph/Paragraph.d.ts +2 -0
  112. package/dist/cssm/components/Typography/Paragraph/Paragraph.d.ts.map +1 -1
  113. package/dist/cssm/components/Typography/Paragraph/Paragraph.js +2 -0
  114. package/dist/cssm/components/Typography/Paragraph/Paragraph.js.map +1 -1
  115. package/dist/cssm/components/Typography/Subhead/Subhead.d.ts +2 -0
  116. package/dist/cssm/components/Typography/Subhead/Subhead.d.ts.map +1 -1
  117. package/dist/cssm/components/Typography/Subhead/Subhead.js +2 -0
  118. package/dist/cssm/components/Typography/Subhead/Subhead.js.map +1 -1
  119. package/dist/cssm/components/Typography/Text/Text.d.ts +2 -0
  120. package/dist/cssm/components/Typography/Text/Text.d.ts.map +1 -1
  121. package/dist/cssm/components/Typography/Text/Text.js +2 -0
  122. package/dist/cssm/components/Typography/Text/Text.js.map +1 -1
  123. package/dist/cssm/components/Typography/Title/Title.d.ts +2 -0
  124. package/dist/cssm/components/Typography/Title/Title.d.ts.map +1 -1
  125. package/dist/cssm/components/Typography/Title/Title.js +2 -0
  126. package/dist/cssm/components/Typography/Title/Title.js.map +1 -1
  127. package/dist/vkui.css +1 -1
  128. package/dist/vkui.css.map +1 -1
  129. package/dist/vkui.js.tmp +66 -33
  130. package/package.json +1 -1
  131. package/src/components/ActionSheet/ActionSheet.tsx +2 -2
  132. package/src/components/Alert/Alert.module.css +5 -0
  133. package/src/components/CustomSelect/CustomSelect.tsx +1 -1
  134. package/src/components/Header/Header.tsx +3 -3
  135. package/src/components/HorizontalScroll/HorizontalScroll.tsx +4 -0
  136. package/src/components/PullToRefresh/PullToRefresh.tsx +28 -9
  137. package/src/components/Typography/Caption/Caption.tsx +2 -0
  138. package/src/components/Typography/Footnote/Footnote.tsx +2 -0
  139. package/src/components/Typography/Headline/Headline.tsx +2 -0
  140. package/src/components/Typography/Paragraph/Paragraph.tsx +2 -0
  141. package/src/components/Typography/Subhead/Subhead.tsx +2 -0
  142. package/src/components/Typography/Text/Text.tsx +2 -0
  143. package/src/components/Typography/Title/Title.tsx +2 -0
package/dist/vkui.js.tmp CHANGED
@@ -9695,6 +9695,8 @@ var stylesLevel = {
9695
9695
  "3": "vkuiTitle--level-3"
9696
9696
  };
9697
9697
  /**
9698
+ * Используется для заголовков.
9699
+ *
9698
9700
  * @see https://vkcom.github.io/VKUI/#/Title
9699
9701
  */ var Title = function(_param) {
9700
9702
  var className = _param.className, _param_level = _param.level, level = _param_level === void 0 ? "1" : _param_level, Component = _param.Component, _param_normalize = _param.normalize, normalize = _param_normalize === void 0 ? true : _param_normalize, restProps = _object_without_properties(_param, [
@@ -9990,6 +9992,8 @@ var sizeYClassNames = _define_property({
9990
9992
  none: "vkuiHeadline--sizeY-none"
9991
9993
  }, _lib_adaptivity__WEBPACK_IMPORTED_MODULE_3__.SizeType.COMPACT, "vkuiHeadline--sizeY-compact");
9992
9994
  /**
9995
+ * Используется для подзаголовков.
9996
+ *
9993
9997
  * @see https://vkcom.github.io/VKUI/#/Headline
9994
9998
  */ var Headline = function(_param) {
9995
9999
  var className = _param.className, _param_weight = _param.weight, weight = _param_weight === void 0 ? "3" : _param_weight, _param_level = _param.level, level = _param_level === void 0 ? "1" : _param_level, _param_Component = _param.Component, Component = _param_Component === void 0 ? "h4" : _param_Component, _param_normalize = _param.normalize, normalize = _param_normalize === void 0 ? true : _param_normalize, restProps = _object_without_properties(_param, [
@@ -10098,6 +10102,8 @@ var sizeYClassNames = _define_property({
10098
10102
  none: "vkuiText--sizeY-none"
10099
10103
  }, _lib_adaptivity__WEBPACK_IMPORTED_MODULE_3__.SizeType.COMPACT, "vkuiText--sizeY-compact");
10100
10104
  /**
10105
+ * Основной наборный текст.
10106
+ *
10101
10107
  * @see https://vkcom.github.io/VKUI/#/Text
10102
10108
  */ var Text = function(_param) {
10103
10109
  var className = _param.className, _param_Component = _param.Component, Component = _param_Component === void 0 ? "span" : _param_Component, _param_normalize = _param.normalize, normalize = _param_normalize === void 0 ? true : _param_normalize, restProps = _object_without_properties(_param, [
@@ -10196,6 +10202,8 @@ function _object_without_properties_loose(source, excluded) {
10196
10202
 
10197
10203
 
10198
10204
  /**
10205
+ * Используется для основного текста.
10206
+ *
10199
10207
  * @see https://vkcom.github.io/VKUI/#/Paragraph
10200
10208
  */ var Paragraph = function(_param) {
10201
10209
  var className = _param.className, _param_Component = _param.Component, Component = _param_Component === void 0 ? "span" : _param_Component, _param_normalize = _param.normalize, normalize = _param_normalize === void 0 ? false : _param_normalize, restProps = _object_without_properties(_param, [
@@ -10300,6 +10308,8 @@ var sizeYClassNames = _define_property({
10300
10308
  none: "vkuiSubhead--sizeY-none"
10301
10309
  }, _lib_adaptivity__WEBPACK_IMPORTED_MODULE_3__.SizeType.COMPACT, "vkuiSubhead--sizeY-compact");
10302
10310
  /**
10311
+ * Используется для подзаголовков 2 уровня.
10312
+ *
10303
10313
  * @see https://vkcom.github.io/VKUI/#/Subhead
10304
10314
  */ var Subhead = function(_param) {
10305
10315
  var className = _param.className, _param_Component = _param.Component, Component = _param_Component === void 0 ? "h5" : _param_Component, _param_normalize = _param.normalize, normalize = _param_normalize === void 0 ? true : _param_normalize, restProps = _object_without_properties(_param, [
@@ -10398,6 +10408,8 @@ function _object_without_properties_loose(source, excluded) {
10398
10408
 
10399
10409
 
10400
10410
  /**
10411
+ * Используется для основных подписей.
10412
+ *
10401
10413
  * @see https://vkcom.github.io/VKUI/#/Footnote
10402
10414
  */ var Footnote = function(_param) /*#__PURE__*/ {
10403
10415
  var className = _param.className, caps = _param.caps, _param_Component = _param.Component, Component = _param_Component === void 0 ? "span" : _param_Component, _param_normalize = _param.normalize, normalize = _param_normalize === void 0 ? true : _param_normalize, restProps = _object_without_properties(_param, [
@@ -10501,6 +10513,8 @@ var stylesLevel = {
10501
10513
  "3": "vkuiCaption--level-3"
10502
10514
  };
10503
10515
  /**
10516
+ * Используется для мелких подписей.
10517
+ *
10504
10518
  * @see https://vkcom.github.io/VKUI/#/Caption
10505
10519
  */ var Caption = function(_param) {
10506
10520
  var className = _param.className, _param_level = _param.level, level = _param_level === void 0 ? "1" : _param_level, caps = _param.caps, _param_Component = _param.Component, Component = _param_Component === void 0 ? "span" : _param_Component, _param_normalize = _param.normalize, normalize = _param_normalize === void 0 ? true : _param_normalize, restProps = _object_without_properties(_param, [
@@ -47149,15 +47163,19 @@ function doScroll(param) {
47149
47163
  baseClassName: (0,_vkontakte_vkjs__WEBPACK_IMPORTED_MODULE_1__.classNames)("vkuiHorizontalScroll", "vkuiInternalHorizontalScroll", showArrows === "always" && "vkuiHorizontalScroll--withConstArrows"),
47150
47164
  onMouseEnter: calculateArrowsVisibility
47151
47165
  }), showArrows && (hasPointer || hasPointer === undefined) && canScrollLeft && /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ScrollArrow_ScrollArrow__WEBPACK_IMPORTED_MODULE_9__.ScrollArrow, {
47166
+ "data-testid": process.env.NODE_ENV === "test" ? "ScrollArrow" : undefined,
47152
47167
  size: arrowSize,
47153
47168
  offsetY: arrowOffsetY,
47154
47169
  direction: "left",
47170
+ "aria-hidden": true,
47155
47171
  className: (0,_vkontakte_vkjs__WEBPACK_IMPORTED_MODULE_1__.classNames)("vkuiHorizontalScroll__arrow", "vkuiHorizontalScroll__arrowLeft"),
47156
47172
  onClick: scrollToLeft
47157
47173
  }), showArrows && (hasPointer || hasPointer === undefined) && canScrollRight && /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ScrollArrow_ScrollArrow__WEBPACK_IMPORTED_MODULE_9__.ScrollArrow, {
47174
+ "data-testid": process.env.NODE_ENV === "test" ? "ScrollArrow" : undefined,
47158
47175
  size: arrowSize,
47159
47176
  offsetY: arrowOffsetY,
47160
47177
  direction: "right",
47178
+ "aria-hidden": true,
47161
47179
  className: (0,_vkontakte_vkjs__WEBPACK_IMPORTED_MODULE_1__.classNames)("vkuiHorizontalScroll__arrow", "vkuiHorizontalScroll__arrowRight"),
47162
47180
  onClick: scrollToRight
47163
47181
  }), /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", {
@@ -49256,7 +49274,7 @@ var warn = (0,_lib_warnOnce__WEBPACK_IMPORTED_MODULE_3__.warnOnce)("ActionSheet"
49256
49274
  style: mode === "menu" ? style : undefined
49257
49275
  }), /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", {
49258
49276
  className: "vkuiActionSheet__content-wrapper"
49259
- }, (header || text) && /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("header", {
49277
+ }, (header || text) && /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", {
49260
49278
  className: "vkuiActionSheet__header"
49261
49279
  }, header && /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_Typography_Footnote_Footnote__WEBPACK_IMPORTED_MODULE_13__.Footnote, {
49262
49280
  weight: "2",
@@ -58130,24 +58148,23 @@ var stylesMode = {
58130
58148
  /**
58131
58149
  * @see https://vkcom.github.io/VKUI/#/Header
58132
58150
  */ var Header = function(_param) {
58133
- var _param_mode = _param.mode, mode = _param_mode === void 0 ? "primary" : _param_mode, _param_size = _param.size, size = _param_size === void 0 ? "regular" : _param_size, children = _param.children, subtitle = _param.subtitle, indicator = _param.indicator, aside = _param.aside, multiline = _param.multiline, restProps = _object_without_properties(_param, [
58151
+ var _param_mode = _param.mode, mode = _param_mode === void 0 ? "primary" : _param_mode, _param_size = _param.size, size = _param_size === void 0 ? "regular" : _param_size, _param_Component = _param.Component, Component = _param_Component === void 0 ? "h2" : _param_Component, children = _param.children, subtitle = _param.subtitle, indicator = _param.indicator, aside = _param.aside, multiline = _param.multiline, restProps = _object_without_properties(_param, [
58134
58152
  "mode",
58135
58153
  "size",
58154
+ "Component",
58136
58155
  "children",
58137
58156
  "subtitle",
58138
58157
  "indicator",
58139
58158
  "aside",
58140
58159
  "multiline"
58141
58160
  ]);
58142
- return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_RootComponent_RootComponent__WEBPACK_IMPORTED_MODULE_8__.RootComponent, _object_spread_props(_object_spread({
58143
- Component: "header"
58144
- }, restProps), {
58161
+ return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_RootComponent_RootComponent__WEBPACK_IMPORTED_MODULE_8__.RootComponent, _object_spread_props(_object_spread({}, restProps), {
58145
58162
  baseClassName: (0,_vkontakte_vkjs__WEBPACK_IMPORTED_MODULE_1__.classNames)("vkuiHeader", stylesMode[mode], size === "large" && "vkuiHeader--large", (0,_vkontakte_vkjs__WEBPACK_IMPORTED_MODULE_1__.isPrimitiveReactNode)(indicator) && "vkuiHeader--pi", (0,_vkontakte_vkjs__WEBPACK_IMPORTED_MODULE_1__.hasReactNode)(subtitle) && "vkuiHeader--with-subtitle")
58146
58163
  }), /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", {
58147
58164
  className: "vkuiHeader__main"
58148
58165
  }, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(HeaderContent, {
58149
58166
  className: "vkuiHeader__content",
58150
- Component: "span",
58167
+ Component: Component,
58151
58168
  mode: mode,
58152
58169
  size: size
58153
58170
  }, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement("span", {
@@ -64358,20 +64375,21 @@ __webpack_require__.r(__webpack_exports__);
64358
64375
  /* harmony export */ });
64359
64376
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6);
64360
64377
  /* harmony import */ var _vkontakte_vkjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(10);
64361
- /* harmony import */ var _helpers_math__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(76);
64362
- /* harmony import */ var _hooks_useGlobalEventListener__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(63);
64378
+ /* harmony import */ var _helpers_math__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(76);
64379
+ /* harmony import */ var _hooks_useGlobalEventListener__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(63);
64363
64380
  /* harmony import */ var _hooks_usePlatform__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(102);
64364
64381
  /* harmony import */ var _hooks_usePrevious__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(163);
64365
- /* harmony import */ var _hooks_useTimeout__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(98);
64382
+ /* harmony import */ var _hooks_useTimeout__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(98);
64366
64383
  /* harmony import */ var _lib_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(61);
64367
64384
  /* harmony import */ var _lib_platform__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(70);
64368
- /* harmony import */ var _lib_taptic__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(410);
64369
- /* harmony import */ var _lib_useIsomorphicLayoutEffect__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(65);
64385
+ /* harmony import */ var _lib_taptic__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(410);
64386
+ /* harmony import */ var _lib_touch__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(100);
64387
+ /* harmony import */ var _lib_useIsomorphicLayoutEffect__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(65);
64370
64388
  /* harmony import */ var _AppRoot_ScrollContext__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(75);
64371
- /* harmony import */ var _FixedLayout_FixedLayout__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(114);
64372
- /* harmony import */ var _Touch_Touch__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(111);
64373
- /* harmony import */ var _Touch_TouchContext__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(101);
64374
- /* harmony import */ var _PullToRefreshSpinner__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(411);
64389
+ /* harmony import */ var _FixedLayout_FixedLayout__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(114);
64390
+ /* harmony import */ var _Touch_Touch__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(111);
64391
+ /* harmony import */ var _Touch_TouchContext__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(101);
64392
+ /* harmony import */ var _PullToRefreshSpinner__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(411);
64375
64393
  /* harmony import */ var _PullToRefresh_module_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(409);
64376
64394
  function _array_like_to_array(arr, len) {
64377
64395
  if (len == null || len > arr.length) len = arr.length;
@@ -64515,6 +64533,7 @@ function _unsupported_iterable_to_array(o, minLen) {
64515
64533
 
64516
64534
 
64517
64535
 
64536
+
64518
64537
  function cancelEvent(event) {
64519
64538
  if (!event) {
64520
64539
  return false;
@@ -64567,13 +64586,6 @@ var TOUCH_MOVE_EVENT_PARAMS = {
64567
64586
  var touchY = react__WEBPACK_IMPORTED_MODULE_0__.useRef(0);
64568
64587
  var _React_useState5 = _sliced_to_array(react__WEBPACK_IMPORTED_MODULE_0__.useState(0), 2), contentShift = _React_useState5[0], setContentShift = _React_useState5[1];
64569
64588
  var _React_useState6 = _sliced_to_array(react__WEBPACK_IMPORTED_MODULE_0__.useState(0), 2), spinnerProgress = _React_useState6[0], setSpinnerProgress = _React_useState6[1];
64570
- var onWindowTouchMove = function(event) {
64571
- if (refreshing) {
64572
- event.preventDefault();
64573
- event.stopPropagation();
64574
- }
64575
- };
64576
- (0,_hooks_useGlobalEventListener__WEBPACK_IMPORTED_MODULE_8__.useGlobalEventListener)(document, "touchmove", onWindowTouchMove, TOUCH_MOVE_EVENT_PARAMS);
64577
64589
  var resetRefreshingState = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function() {
64578
64590
  setWatching(false);
64579
64591
  setCanRefresh(false);
@@ -64592,8 +64604,8 @@ var TOUCH_MOVE_EVENT_PARAMS = {
64592
64604
  touchDown,
64593
64605
  resetRefreshingState
64594
64606
  ]);
64595
- var _useTimeout = (0,_hooks_useTimeout__WEBPACK_IMPORTED_MODULE_9__.useTimeout)(onRefreshingFinish, 1000), setWaitFetchingTimeout = _useTimeout.set, clearWaitFetchingTimeout = _useTimeout.clear;
64596
- (0,_lib_useIsomorphicLayoutEffect__WEBPACK_IMPORTED_MODULE_10__.useIsomorphicLayoutEffect)(function() {
64607
+ var _useTimeout = (0,_hooks_useTimeout__WEBPACK_IMPORTED_MODULE_8__.useTimeout)(onRefreshingFinish, 1000), setWaitFetchingTimeout = _useTimeout.set, clearWaitFetchingTimeout = _useTimeout.clear;
64608
+ (0,_lib_useIsomorphicLayoutEffect__WEBPACK_IMPORTED_MODULE_9__.useIsomorphicLayoutEffect)(function() {
64597
64609
  if (prevIsFetching !== undefined && prevIsFetching && !isFetching) {
64598
64610
  onRefreshingFinish();
64599
64611
  }
@@ -64602,7 +64614,7 @@ var TOUCH_MOVE_EVENT_PARAMS = {
64602
64614
  isFetching,
64603
64615
  onRefreshingFinish
64604
64616
  ]);
64605
- (0,_lib_useIsomorphicLayoutEffect__WEBPACK_IMPORTED_MODULE_10__.useIsomorphicLayoutEffect)(function() {
64617
+ (0,_lib_useIsomorphicLayoutEffect__WEBPACK_IMPORTED_MODULE_9__.useIsomorphicLayoutEffect)(function() {
64606
64618
  if (prevIsFetching !== undefined && !prevIsFetching && isFetching) {
64607
64619
  clearWaitFetchingTimeout();
64608
64620
  }
@@ -64622,7 +64634,7 @@ var TOUCH_MOVE_EVENT_PARAMS = {
64622
64634
  var runTapticImpactOccurredCalled = onRefresh();
64623
64635
  // TODO [>=6]: удалить блок кода (#5049)
64624
64636
  if (!runTapticImpactOccurredCalled) {
64625
- (0,_lib_taptic__WEBPACK_IMPORTED_MODULE_11__.runTapticImpactOccurred)("light");
64637
+ (0,_lib_taptic__WEBPACK_IMPORTED_MODULE_10__.runTapticImpactOccurred)("light");
64626
64638
  }
64627
64639
  }
64628
64640
  }, [
@@ -64632,7 +64644,7 @@ var TOUCH_MOVE_EVENT_PARAMS = {
64632
64644
  platform,
64633
64645
  initParams.refreshing
64634
64646
  ]);
64635
- (0,_lib_useIsomorphicLayoutEffect__WEBPACK_IMPORTED_MODULE_10__.useIsomorphicLayoutEffect)(function() {
64647
+ (0,_lib_useIsomorphicLayoutEffect__WEBPACK_IMPORTED_MODULE_9__.useIsomorphicLayoutEffect)(function() {
64636
64648
  if (prevTouchDown !== undefined && prevTouchDown && !touchDown) {
64637
64649
  if (!refreshing && canRefresh) {
64638
64650
  runRefreshing();
@@ -64658,12 +64670,33 @@ var TOUCH_MOVE_EVENT_PARAMS = {
64658
64670
  canRefresh,
64659
64671
  runRefreshing
64660
64672
  ]);
64673
+ var startYRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(0);
64661
64674
  var onTouchStart = function(e) {
64662
64675
  if (refreshing) {
64663
64676
  cancelEvent(e);
64664
64677
  }
64665
64678
  setTouchDown(true);
64679
+ startYRef.current = e.startY;
64680
+ };
64681
+ var shouldPreventTouchMove = function(event) {
64682
+ if (watching || refreshing) {
64683
+ return true;
64684
+ }
64685
+ /* Нам нужно запретить touchmove у документа как только стало понятно, что
64686
+ * начинается pull.
64687
+ * состояния watching и refreshing устанавливаются слишком поздно и браузер
64688
+ * может успеть начать нативный pull to refresh. */ var shiftY = (0,_lib_touch__WEBPACK_IMPORTED_MODULE_11__.coordY)(event) - startYRef.current;
64689
+ var pageYOffset = scroll === null || scroll === void 0 ? void 0 : scroll.getScroll().y;
64690
+ var isRefreshGestureStarted = pageYOffset === 0 && shiftY > 0 && touchDown;
64691
+ return isRefreshGestureStarted;
64692
+ };
64693
+ var onWindowTouchMove = function(event) {
64694
+ if (shouldPreventTouchMove(event)) {
64695
+ event.preventDefault();
64696
+ event.stopPropagation();
64697
+ }
64666
64698
  };
64699
+ (0,_hooks_useGlobalEventListener__WEBPACK_IMPORTED_MODULE_12__.useGlobalEventListener)(document, "touchmove", onWindowTouchMove, TOUCH_MOVE_EVENT_PARAMS);
64667
64700
  var onTouchMove = function(e) {
64668
64701
  var isY = e.isY, shiftY = e.shiftY;
64669
64702
  var start = initParams.start, max = initParams.max;
@@ -64672,10 +64705,10 @@ var TOUCH_MOVE_EVENT_PARAMS = {
64672
64705
  cancelEvent(e);
64673
64706
  var positionMultiplier = initParams.positionMultiplier, maxY = initParams.maxY;
64674
64707
  var shift = Math.max(0, shiftY - touchY.current);
64675
- var currentY = (0,_helpers_math__WEBPACK_IMPORTED_MODULE_12__.clamp)(start + shift * positionMultiplier, start, maxY);
64708
+ var currentY = (0,_helpers_math__WEBPACK_IMPORTED_MODULE_13__.clamp)(start + shift * positionMultiplier, start, maxY);
64676
64709
  var progress = currentY > -10 ? Math.abs((currentY + 10) / max) * 80 : 0;
64677
64710
  setSpinnerY(currentY);
64678
- setSpinnerProgress((0,_helpers_math__WEBPACK_IMPORTED_MODULE_12__.clamp)(progress, 0, 80));
64711
+ setSpinnerProgress((0,_helpers_math__WEBPACK_IMPORTED_MODULE_13__.clamp)(progress, 0, 80));
64679
64712
  setCanRefresh(progress > 80);
64680
64713
  setContentShift((currentY + 10) * 2.3);
64681
64714
  if (progress > 85 && !refreshing && platform === _lib_platform__WEBPACK_IMPORTED_MODULE_7__.Platform.IOS) {
@@ -64700,17 +64733,17 @@ var TOUCH_MOVE_EVENT_PARAMS = {
64700
64733
  } else if (platform === _lib_platform__WEBPACK_IMPORTED_MODULE_7__.Platform.IOS && (contentShift || refreshing)) {
64701
64734
  contentTransform = "translate3d(0, ".concat(contentShift, "px, 0)");
64702
64735
  }
64703
- return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_Touch_TouchContext__WEBPACK_IMPORTED_MODULE_13__["default"].Provider, {
64736
+ return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_Touch_TouchContext__WEBPACK_IMPORTED_MODULE_14__["default"].Provider, {
64704
64737
  value: true
64705
- }, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_Touch_Touch__WEBPACK_IMPORTED_MODULE_14__.Touch, _object_spread_props(_object_spread({}, restProps), {
64738
+ }, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_Touch_Touch__WEBPACK_IMPORTED_MODULE_15__.Touch, _object_spread_props(_object_spread({}, restProps), {
64706
64739
  onStart: onTouchStart,
64707
64740
  onMove: onTouchMove,
64708
64741
  onEnd: onTouchEnd,
64709
64742
  className: (0,_vkontakte_vkjs__WEBPACK_IMPORTED_MODULE_1__.classNames)("vkuiPullToRefresh", platform === _lib_platform__WEBPACK_IMPORTED_MODULE_7__.Platform.IOS && "vkuiPullToRefresh--ios", watching && "vkuiPullToRefresh--watching", refreshing && "vkuiPullToRefresh--refreshing", className)
64710
- }), /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_FixedLayout_FixedLayout__WEBPACK_IMPORTED_MODULE_15__.FixedLayout, {
64743
+ }), /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_FixedLayout_FixedLayout__WEBPACK_IMPORTED_MODULE_16__.FixedLayout, {
64711
64744
  className: "vkuiPullToRefresh__controls",
64712
64745
  useParentWidth: true
64713
- }, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_PullToRefreshSpinner__WEBPACK_IMPORTED_MODULE_16__.PullToRefreshSpinner, {
64746
+ }, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_PullToRefreshSpinner__WEBPACK_IMPORTED_MODULE_17__.PullToRefreshSpinner, {
64714
64747
  style: {
64715
64748
  transform: spinnerTransform,
64716
64749
  WebkitTransform: spinnerTransform,
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "5.9.2",
2
+ "version": "5.9.3",
3
3
  "name": "@vkontakte/vkui",
4
4
  "description": "VKUI library",
5
5
  "main": "dist/cjs/index.js",
@@ -130,14 +130,14 @@ export const ActionSheet = ({
130
130
  >
131
131
  <div className={styles['ActionSheet__content-wrapper']}>
132
132
  {(header || text) && (
133
- <header className={styles['ActionSheet__header']}>
133
+ <div className={styles['ActionSheet__header']}>
134
134
  {header && (
135
135
  <Footnote weight="2" className={styles['ActionSheet__title']}>
136
136
  {header}
137
137
  </Footnote>
138
138
  )}
139
139
  {text && <Footnote className={styles['ActionSheet__text']}>{text}</Footnote>}
140
- </header>
140
+ </div>
141
141
  )}
142
142
  {children}
143
143
  </div>
@@ -61,6 +61,11 @@
61
61
  color: var(--vkui--color_text_secondary);
62
62
  }
63
63
 
64
+ .Alert__header,
65
+ .Alert__text {
66
+ word-break: break-word;
67
+ }
68
+
64
69
  .Alert__actions--direction-horizontal {
65
70
  justify-content: flex-end;
66
71
  }
@@ -112,7 +112,7 @@ export interface CustomSelectOptionInterface {
112
112
  }
113
113
 
114
114
  interface CustomSelectRenderOption extends CustomSelectOptionProps {
115
- option?: CustomSelectOptionInterface;
115
+ option: CustomSelectOptionInterface;
116
116
  }
117
117
 
118
118
  export interface SelectProps extends NativeSelectProps, FormFieldProps, TrackerOptionsProps {
@@ -11,7 +11,7 @@ import { Subhead } from '../Typography/Subhead/Subhead';
11
11
  import { Title } from '../Typography/Title/Title';
12
12
  import styles from './Header.module.css';
13
13
 
14
- export interface HeaderProps extends HTMLAttributesWithRootRef<HTMLElement> {
14
+ export interface HeaderProps extends HTMLAttributesWithRootRef<HTMLElement>, HasComponent {
15
15
  mode?: 'primary' | 'secondary' | 'tertiary';
16
16
  size?: 'regular' | 'large';
17
17
  subtitle?: React.ReactNode;
@@ -75,6 +75,7 @@ const stylesMode = {
75
75
  export const Header = ({
76
76
  mode = 'primary',
77
77
  size = 'regular',
78
+ Component = 'h2',
78
79
  children,
79
80
  subtitle,
80
81
  indicator,
@@ -84,7 +85,6 @@ export const Header = ({
84
85
  }: HeaderProps) => {
85
86
  return (
86
87
  <RootComponent
87
- Component="header"
88
88
  {...restProps}
89
89
  baseClassName={classNames(
90
90
  styles['Header'],
@@ -97,7 +97,7 @@ export const Header = ({
97
97
  <div className={styles['Header__main']}>
98
98
  <HeaderContent
99
99
  className={styles['Header__content']}
100
- Component="span"
100
+ Component={Component}
101
101
  mode={mode}
102
102
  size={size}
103
103
  >
@@ -288,9 +288,11 @@ export const HorizontalScroll = ({
288
288
  >
289
289
  {showArrows && (hasPointer || hasPointer === undefined) && canScrollLeft && (
290
290
  <ScrollArrow
291
+ data-testid={process.env.NODE_ENV === 'test' ? 'ScrollArrow' : undefined}
291
292
  size={arrowSize}
292
293
  offsetY={arrowOffsetY}
293
294
  direction="left"
295
+ aria-hidden
294
296
  className={classNames(
295
297
  styles['HorizontalScroll__arrow'],
296
298
  styles['HorizontalScroll__arrowLeft'],
@@ -300,9 +302,11 @@ export const HorizontalScroll = ({
300
302
  )}
301
303
  {showArrows && (hasPointer || hasPointer === undefined) && canScrollRight && (
302
304
  <ScrollArrow
305
+ data-testid={process.env.NODE_ENV === 'test' ? 'ScrollArrow' : undefined}
303
306
  size={arrowSize}
304
307
  offsetY={arrowOffsetY}
305
308
  direction="right"
309
+ aria-hidden
306
310
  className={classNames(
307
311
  styles['HorizontalScroll__arrow'],
308
312
  styles['HorizontalScroll__arrowRight'],
@@ -8,6 +8,7 @@ import { useTimeout } from '../../hooks/useTimeout';
8
8
  import { DOMProps, useDOM } from '../../lib/dom';
9
9
  import { Platform } from '../../lib/platform';
10
10
  import { runTapticImpactOccurred } from '../../lib/taptic';
11
+ import { coordY, VKUITouchEvent } from '../../lib/touch';
11
12
  import { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';
12
13
  import { AnyFunction, HasChildren } from '../../types';
13
14
  import { ScrollContextInterface, useScroll } from '../AppRoot/ScrollContext';
@@ -113,15 +114,6 @@ export const PullToRefresh = ({
113
114
  const [contentShift, setContentShift] = React.useState(0);
114
115
  const [spinnerProgress, setSpinnerProgress] = React.useState(0);
115
116
 
116
- const onWindowTouchMove = (event: Event) => {
117
- if (refreshing) {
118
- event.preventDefault();
119
- event.stopPropagation();
120
- }
121
- };
122
-
123
- useGlobalEventListener(document, 'touchmove', onWindowTouchMove, TOUCH_MOVE_EVENT_PARAMS);
124
-
125
117
  const resetRefreshingState = React.useCallback(() => {
126
118
  setWatching(false);
127
119
  setCanRefresh(false);
@@ -199,13 +191,40 @@ export const PullToRefresh = ({
199
191
  runRefreshing,
200
192
  ]);
201
193
 
194
+ const startYRef = React.useRef(0);
195
+
202
196
  const onTouchStart = (e: TouchEvent) => {
203
197
  if (refreshing) {
204
198
  cancelEvent(e);
205
199
  }
206
200
  setTouchDown(true);
201
+ startYRef.current = e.startY;
207
202
  };
208
203
 
204
+ const shouldPreventTouchMove = (event: VKUITouchEvent) => {
205
+ if (watching || refreshing) {
206
+ return true;
207
+ }
208
+
209
+ /* Нам нужно запретить touchmove у документа как только стало понятно, что
210
+ * начинается pull.
211
+ * состояния watching и refreshing устанавливаются слишком поздно и браузер
212
+ * может успеть начать нативный pull to refresh. */
213
+ const shiftY = coordY(event) - startYRef.current;
214
+ const pageYOffset = scroll?.getScroll().y;
215
+ const isRefreshGestureStarted = pageYOffset === 0 && shiftY > 0 && touchDown;
216
+ return isRefreshGestureStarted;
217
+ };
218
+
219
+ const onWindowTouchMove = (event: VKUITouchEvent) => {
220
+ if (shouldPreventTouchMove(event)) {
221
+ event.preventDefault();
222
+ event.stopPropagation();
223
+ }
224
+ };
225
+
226
+ useGlobalEventListener(document, 'touchmove', onWindowTouchMove, TOUCH_MOVE_EVENT_PARAMS);
227
+
209
228
  const onTouchMove = (e: TouchEvent) => {
210
229
  const { isY, shiftY } = e;
211
230
  const { start, max } = initParams;
@@ -14,6 +14,8 @@ export interface CaptionProps extends TypographyProps, HasCaps {
14
14
  }
15
15
 
16
16
  /**
17
+ * Используется для мелких подписей.
18
+ *
17
19
  * @see https://vkcom.github.io/VKUI/#/Caption
18
20
  */
19
21
  export const Caption = ({
@@ -6,6 +6,8 @@ import styles from './Footnote.module.css';
6
6
  export interface FootnoteProps extends TypographyProps, HasCaps {}
7
7
 
8
8
  /**
9
+ * Используется для основных подписей.
10
+ *
9
11
  * @see https://vkcom.github.io/VKUI/#/Footnote
10
12
  */
11
13
  export const Footnote = ({
@@ -20,6 +20,8 @@ export interface HeadlineProps extends TypographyProps {
20
20
  }
21
21
 
22
22
  /**
23
+ * Используется для подзаголовков.
24
+ *
23
25
  * @see https://vkcom.github.io/VKUI/#/Headline
24
26
  */
25
27
  export const Headline = ({
@@ -6,6 +6,8 @@ import styles from './Paragraph.module.css';
6
6
  export type ParagraphProps = TypographyProps;
7
7
 
8
8
  /**
9
+ * Используется для основного текста.
10
+ *
9
11
  * @see https://vkcom.github.io/VKUI/#/Paragraph
10
12
  */
11
13
  export const Paragraph = ({
@@ -13,6 +13,8 @@ const sizeYClassNames = {
13
13
  export type SubheadProps = TypographyProps;
14
14
 
15
15
  /**
16
+ * Используется для подзаголовков 2 уровня.
17
+ *
16
18
  * @see https://vkcom.github.io/VKUI/#/Subhead
17
19
  */
18
20
  export const Subhead = ({
@@ -13,6 +13,8 @@ const sizeYClassNames = {
13
13
  export type TextProps = TypographyProps;
14
14
 
15
15
  /**
16
+ * Основной наборный текст.
17
+ *
16
18
  * @see https://vkcom.github.io/VKUI/#/Text
17
19
  */
18
20
  export const Text = ({
@@ -14,6 +14,8 @@ export interface TitleProps extends TypographyProps {
14
14
  }
15
15
 
16
16
  /**
17
+ * Используется для заголовков.
18
+ *
17
19
  * @see https://vkcom.github.io/VKUI/#/Title
18
20
  */
19
21
  export const Title = ({