@vkontakte/vkui 5.4.0 → 5.4.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 (134) hide show
  1. package/dist/cjs/components/ActionSheet/ActionSheetDefaultIosCloseItem.js +1 -1
  2. package/dist/cjs/components/ActionSheet/ActionSheetDefaultIosCloseItem.js.map +1 -1
  3. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js +7 -3
  4. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  5. package/dist/cjs/components/Banner/Banner.js +3 -3
  6. package/dist/cjs/components/Banner/Banner.js.map +1 -1
  7. package/dist/cjs/components/Cell/CellDragger/CellDragger.d.ts +2 -2
  8. package/dist/cjs/components/Cell/CellDragger/CellDragger.js +9 -5
  9. package/dist/cjs/components/Cell/CellDragger/CellDragger.js.map +1 -1
  10. package/dist/cjs/components/Cell/useDraggable.d.ts +3 -3
  11. package/dist/cjs/components/Cell/useDraggable.js +12 -7
  12. package/dist/cjs/components/Cell/useDraggable.js.map +1 -1
  13. package/dist/cjs/components/DateRangeInput/DateRangeInput.js +1 -1
  14. package/dist/cjs/components/DateRangeInput/DateRangeInput.js.map +1 -1
  15. package/dist/cjs/components/HorizontalCell/HorizontalCell.d.ts +11 -1
  16. package/dist/cjs/components/HorizontalCell/HorizontalCell.js +6 -3
  17. package/dist/cjs/components/HorizontalCell/HorizontalCell.js.map +1 -1
  18. package/dist/cjs/components/ImageBase/ImageBase.js +5 -2
  19. package/dist/cjs/components/ImageBase/ImageBase.js.map +1 -1
  20. package/dist/cjs/components/InfoRow/InfoRow.js +3 -2
  21. package/dist/cjs/components/InfoRow/InfoRow.js.map +1 -1
  22. package/dist/cjs/components/ModalPage/ModalPage.js +6 -1
  23. package/dist/cjs/components/ModalPage/ModalPage.js.map +1 -1
  24. package/dist/cjs/components/ModalPageHeader/ModalPageHeader.js +6 -5
  25. package/dist/cjs/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  26. package/dist/cjs/components/ModalRoot/ModalRoot.js +5 -11
  27. package/dist/cjs/components/ModalRoot/ModalRoot.js.map +1 -1
  28. package/dist/cjs/components/ModalRoot/types.d.ts +0 -1
  29. package/dist/cjs/components/ModalRoot/types.js.map +1 -1
  30. package/dist/cjs/components/ModalRoot/useModalManager.js +0 -1
  31. package/dist/cjs/components/ModalRoot/useModalManager.js.map +1 -1
  32. package/dist/cjs/components/PanelHeader/PanelHeader.d.ts +8 -4
  33. package/dist/cjs/components/PanelHeader/PanelHeader.js +47 -20
  34. package/dist/cjs/components/PanelHeader/PanelHeader.js.map +1 -1
  35. package/dist/cjs/components/TabsItem/TabsItem.js +3 -2
  36. package/dist/cjs/components/TabsItem/TabsItem.js.map +1 -1
  37. package/dist/cjs/components/VisuallyHidden/VisuallyHidden.d.ts +3 -4
  38. package/dist/cjs/components/VisuallyHidden/VisuallyHidden.js.map +1 -1
  39. package/dist/components/ActionSheet/ActionSheetDefaultIosCloseItem.js +1 -1
  40. package/dist/components/ActionSheet/ActionSheetDefaultIosCloseItem.js.map +1 -1
  41. package/dist/components/ActionSheetItem/ActionSheetItem.js +7 -3
  42. package/dist/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  43. package/dist/components/Banner/Banner.js +3 -3
  44. package/dist/components/Banner/Banner.js.map +1 -1
  45. package/dist/components/Cell/CellDragger/CellDragger.d.ts +2 -2
  46. package/dist/components/Cell/CellDragger/CellDragger.js +9 -5
  47. package/dist/components/Cell/CellDragger/CellDragger.js.map +1 -1
  48. package/dist/components/Cell/useDraggable.d.ts +3 -3
  49. package/dist/components/Cell/useDraggable.js +12 -7
  50. package/dist/components/Cell/useDraggable.js.map +1 -1
  51. package/dist/components/DateRangeInput/DateRangeInput.js +1 -1
  52. package/dist/components/DateRangeInput/DateRangeInput.js.map +1 -1
  53. package/dist/components/HorizontalCell/HorizontalCell.d.ts +11 -1
  54. package/dist/components/HorizontalCell/HorizontalCell.js +6 -3
  55. package/dist/components/HorizontalCell/HorizontalCell.js.map +1 -1
  56. package/dist/components/ImageBase/ImageBase.js +5 -2
  57. package/dist/components/ImageBase/ImageBase.js.map +1 -1
  58. package/dist/components/InfoRow/InfoRow.js +3 -2
  59. package/dist/components/InfoRow/InfoRow.js.map +1 -1
  60. package/dist/components/ModalPage/ModalPage.js +6 -1
  61. package/dist/components/ModalPage/ModalPage.js.map +1 -1
  62. package/dist/components/ModalPageHeader/ModalPageHeader.js +6 -5
  63. package/dist/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  64. package/dist/components/ModalRoot/ModalRoot.js +5 -11
  65. package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
  66. package/dist/components/ModalRoot/types.d.ts +0 -1
  67. package/dist/components/ModalRoot/types.js.map +1 -1
  68. package/dist/components/ModalRoot/useModalManager.js +0 -1
  69. package/dist/components/ModalRoot/useModalManager.js.map +1 -1
  70. package/dist/components/PanelHeader/PanelHeader.d.ts +8 -4
  71. package/dist/components/PanelHeader/PanelHeader.js +47 -20
  72. package/dist/components/PanelHeader/PanelHeader.js.map +1 -1
  73. package/dist/components/TabsItem/TabsItem.js +3 -2
  74. package/dist/components/TabsItem/TabsItem.js.map +1 -1
  75. package/dist/components/VisuallyHidden/VisuallyHidden.d.ts +3 -4
  76. package/dist/components/VisuallyHidden/VisuallyHidden.js +3 -4
  77. package/dist/components/VisuallyHidden/VisuallyHidden.js.map +1 -1
  78. package/dist/components.css +139 -139
  79. package/dist/components.css.map +1 -1
  80. package/dist/components.js.tmp +144 -94
  81. package/dist/cssm/components/ActionSheet/ActionSheet.module.css +1 -5
  82. package/dist/cssm/components/ActionSheet/ActionSheetDefaultIosCloseItem.js +1 -1
  83. package/dist/cssm/components/ActionSheet/ActionSheetDefaultIosCloseItem.js.map +1 -1
  84. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js +7 -3
  85. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  86. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.module.css +7 -6
  87. package/dist/cssm/components/Banner/Banner.js +3 -3
  88. package/dist/cssm/components/Banner/Banner.js.map +1 -1
  89. package/dist/cssm/components/Banner/Banner.module.css +1 -9
  90. package/dist/cssm/components/Cell/CellDragger/CellDragger.d.ts +2 -2
  91. package/dist/cssm/components/Cell/CellDragger/CellDragger.js +8 -5
  92. package/dist/cssm/components/Cell/CellDragger/CellDragger.js.map +1 -1
  93. package/dist/cssm/components/Cell/useDraggable.d.ts +3 -3
  94. package/dist/cssm/components/Cell/useDraggable.js +12 -7
  95. package/dist/cssm/components/Cell/useDraggable.js.map +1 -1
  96. package/dist/cssm/components/DateRangeInput/DateRangeInput.js +1 -1
  97. package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
  98. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.module.css +0 -1
  99. package/dist/cssm/components/HorizontalCell/HorizontalCell.d.ts +11 -1
  100. package/dist/cssm/components/HorizontalCell/HorizontalCell.js +4 -2
  101. package/dist/cssm/components/HorizontalCell/HorizontalCell.js.map +1 -1
  102. package/dist/cssm/components/HorizontalCell/HorizontalCell.module.css +23 -11
  103. package/dist/cssm/components/ImageBase/ImageBase.js +5 -2
  104. package/dist/cssm/components/ImageBase/ImageBase.js.map +1 -1
  105. package/dist/cssm/components/ImageBase/ImageBase.module.css +13 -2
  106. package/dist/cssm/components/InfoRow/InfoRow.js +3 -2
  107. package/dist/cssm/components/InfoRow/InfoRow.js.map +1 -1
  108. package/dist/cssm/components/MiniInfoCell/MiniInfoCell.module.css +1 -0
  109. package/dist/cssm/components/ModalPage/ModalPage.js +6 -1
  110. package/dist/cssm/components/ModalPage/ModalPage.js.map +1 -1
  111. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js +6 -5
  112. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  113. package/dist/cssm/components/ModalRoot/ModalRoot.js +4 -10
  114. package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
  115. package/dist/cssm/components/ModalRoot/types.d.ts +0 -1
  116. package/dist/cssm/components/ModalRoot/types.js.map +1 -1
  117. package/dist/cssm/components/ModalRoot/useModalManager.js +0 -1
  118. package/dist/cssm/components/ModalRoot/useModalManager.js.map +1 -1
  119. package/dist/cssm/components/PanelHeader/PanelHeader.d.ts +8 -4
  120. package/dist/cssm/components/PanelHeader/PanelHeader.js +44 -18
  121. package/dist/cssm/components/PanelHeader/PanelHeader.js.map +1 -1
  122. package/dist/cssm/components/PullToRefresh/PullToRefresh.module.css +3 -0
  123. package/dist/cssm/components/TabsItem/TabsItem.js +3 -2
  124. package/dist/cssm/components/TabsItem/TabsItem.js.map +1 -1
  125. package/dist/cssm/components/Typography/Typography.module.css +2 -1
  126. package/dist/cssm/components/VisuallyHidden/VisuallyHidden.d.ts +3 -4
  127. package/dist/cssm/components/VisuallyHidden/VisuallyHidden.js +3 -4
  128. package/dist/cssm/components/VisuallyHidden/VisuallyHidden.js.map +1 -1
  129. package/dist/cssm/components/VisuallyHidden/VisuallyHidden.module.css +9 -5
  130. package/dist/cssm/styles/constants.css +3 -2
  131. package/dist/vkui.css +139 -139
  132. package/dist/vkui.css.map +1 -1
  133. package/dist/vkui.js.tmp +144 -94
  134. package/package.json +1 -1
@@ -19,6 +19,7 @@ var _useAdaptivityConditionalRender = require("../../hooks/useAdaptivityConditio
19
19
  var _usePlatform = require("../../hooks/usePlatform");
20
20
  var _adaptivity = require("../../lib/adaptivity");
21
21
  var _platform = require("../../lib/platform");
22
+ var _warnOnce = require("../../lib/warnOnce");
22
23
  var _configProviderContext = require("../ConfigProvider/ConfigProviderContext");
23
24
  var _fixedLayout = require("../FixedLayout/FixedLayout");
24
25
  var _modalRootContext = require("../ModalRoot/ModalRootContext");
@@ -35,24 +36,27 @@ var sizeXClassNames = {
35
36
  none: "vkuiPanelHeader--sizeX-none",
36
37
  regular: "vkuiPanelHeader--sizeX-regular"
37
38
  };
38
- var PanelHeaderContent = function(param) {
39
- var children = param.children, _param_Component = param.Component, Component = _param_Component === void 0 ? "span" : _param_Component, id = param.id;
40
- var platform = (0, _usePlatform.usePlatform)();
41
- return platform === _platform.Platform.VKCOM ? /*#__PURE__*/ _react.createElement(_text.Text, {
42
- weight: "2",
43
- Component: Component,
44
- id: id
45
- }, children) : /*#__PURE__*/ _react.createElement(Component, {
46
- className: "vkuiPanelHeader__content-in",
47
- id: id
48
- }, children);
49
- };
50
- PanelHeaderContent.displayName = "PanelHeaderContent";
51
39
  var PanelHeaderIn = function(param) {
52
- var before = param.before, after = param.after, separator = param.separator, children = param.children;
40
+ var before = param.before, after = param.after, separator = param.separator, children = param.children, _param_typographyProps = param.typographyProps, typographyProps = _param_typographyProps === void 0 ? {} : _param_typographyProps;
41
+ var _typographyProps_Component = typographyProps.Component, Component = _typographyProps_Component === void 0 ? "span" : _typographyProps_Component, restProps = _objectWithoutProperties(typographyProps, [
42
+ "Component"
43
+ ]);
53
44
  var webviewType = (0, _configProviderContext.useConfigProvider)().webviewType;
54
45
  var isInsideModal = _react.useContext(_modalRootContext.ModalRootContext).isInsideModal;
55
46
  var platform = (0, _usePlatform.usePlatform)();
47
+ var typographyNode;
48
+ // TODO [>=6]: Удалить условие
49
+ if (/*#__PURE__*/ _react.isValidElement(children) && // eslint-disable-next-line @typescript-eslint/no-use-before-define
50
+ children.type.displayName === LegacyPanelHeaderContent.displayName) {
51
+ typographyNode = children;
52
+ } else {
53
+ typographyNode = platform === _platform.Platform.VKCOM ? /*#__PURE__*/ _react.createElement(_text.Text, _objectSpread({
54
+ weight: "2",
55
+ Component: Component
56
+ }, restProps), children) : /*#__PURE__*/ _react.createElement(Component, _objectSpread({
57
+ className: "vkuiPanelHeader__content-in"
58
+ }, restProps), children);
59
+ }
56
60
  return /*#__PURE__*/ _react.createElement(_react.Fragment, null, /*#__PURE__*/ _react.createElement(_tooltipContainer.TooltipContainer, {
57
61
  fixed: true,
58
62
  className: "vkuiPanelHeader__in"
@@ -60,7 +64,7 @@ var PanelHeaderIn = function(param) {
60
64
  className: (0, _vkjs.classNames)("vkuiPanelHeader__before", "vkuiInternalPanelHeader__before")
61
65
  }, before), /*#__PURE__*/ _react.createElement("div", {
62
66
  className: "vkuiPanelHeader__content"
63
- }, /*#__PURE__*/ _react.isValidElement(children) && children.type.displayName === PanelHeaderContent.displayName ? children : /*#__PURE__*/ _react.createElement(PanelHeaderContent, null, children)), /*#__PURE__*/ _react.createElement("div", {
67
+ }, typographyNode), /*#__PURE__*/ _react.createElement("div", {
64
68
  className: (0, _vkjs.classNames)("vkuiPanelHeader__after", "vkuiInternalPanelHeader__after")
65
69
  }, (webviewType === _configProviderContext.WebviewType.INTERNAL || isInsideModal) && after)), separator && platform === _platform.Platform.VKCOM && /*#__PURE__*/ _react.createElement(_separator.Separator, {
66
70
  className: "vkuiPanelHeader__separator",
@@ -68,7 +72,7 @@ var PanelHeaderIn = function(param) {
68
72
  }));
69
73
  };
70
74
  var PanelHeader = function(_param) {
71
- var before = _param.before, children = _param.children, after = _param.after, _param_separator = _param.separator, separator = _param_separator === void 0 ? true : _param_separator, _param_visor = _param.visor, visor = _param_visor === void 0 ? true : _param_visor, _param_transparent = _param.transparent, transparent = _param_transparent === void 0 ? false : _param_transparent, shadow = _param.shadow, getRef = _param.getRef, getRootRef = _param.getRootRef, fixed = _param.fixed, className = _param.className, restProps = _objectWithoutProperties(_param, [
75
+ var before = _param.before, children = _param.children, after = _param.after, _param_separator = _param.separator, separator = _param_separator === void 0 ? true : _param_separator, _param_visor = _param.visor, visor = _param_visor === void 0 ? true : _param_visor, _param_transparent = _param.transparent, transparent = _param_transparent === void 0 ? false : _param_transparent, shadow = _param.shadow, getRef = _param.getRef, getRootRef = _param.getRootRef, fixed = _param.fixed, className = _param.className, typographyProps = _param.typographyProps, restProps = _objectWithoutProperties(_param, [
72
76
  "before",
73
77
  "children",
74
78
  "after",
@@ -79,7 +83,8 @@ var PanelHeader = function(_param) {
79
83
  "getRef",
80
84
  "getRootRef",
81
85
  "fixed",
82
- "className"
86
+ "className",
87
+ "typographyProps"
83
88
  ]);
84
89
  var platform = (0, _usePlatform.usePlatform)();
85
90
  var webviewType = (0, _configProviderContext.useConfigProvider)().webviewType;
@@ -97,11 +102,13 @@ var PanelHeader = function(_param) {
97
102
  }, /*#__PURE__*/ _react.createElement(PanelHeaderIn, {
98
103
  before: before,
99
104
  after: after,
100
- separator: separator
105
+ separator: separator,
106
+ typographyProps: typographyProps
101
107
  }, children)) : /*#__PURE__*/ _react.createElement(PanelHeaderIn, {
102
108
  before: before,
103
109
  after: after,
104
- separator: separator
110
+ separator: separator,
111
+ typographyProps: typographyProps
105
112
  }, children), separator && visor && platform !== _platform.Platform.VKCOM && /*#__PURE__*/ _react.createElement(_react.Fragment, null, adaptiveSizeX.compact && /*#__PURE__*/ _react.createElement(_separator.Separator, {
106
113
  className: adaptiveSizeX.compact.className
107
114
  }), adaptiveSizeX.regular && /*#__PURE__*/ _react.createElement(_spacing.Spacing, {
@@ -109,6 +116,26 @@ var PanelHeader = function(_param) {
109
116
  size: 16
110
117
  })));
111
118
  };
112
- PanelHeader.Content = PanelHeaderContent;
119
+ var warn = (0, _warnOnce.warnOnce)("PanelHeader");
120
+ /**
121
+ * TODO [>=6]: Удалить подкомпонент
122
+ * @deprecated
123
+ */ var LegacyPanelHeaderContent = function(param) {
124
+ var children = param.children, _param_Component = param.Component, Component = _param_Component === void 0 ? "span" : _param_Component, id = param.id;
125
+ if (process.env.NODE_ENV === "development") {
126
+ warn("Подкомпонент PanelHeader.Content устарел и будет удалён в v6. Используйте параметр typographyProps.");
127
+ }
128
+ var platform = (0, _usePlatform.usePlatform)();
129
+ return platform === _platform.Platform.VKCOM ? /*#__PURE__*/ _react.createElement(_text.Text, {
130
+ weight: "2",
131
+ Component: Component,
132
+ id: id
133
+ }, children) : /*#__PURE__*/ _react.createElement(Component, {
134
+ className: "vkuiPanelHeader__content-in",
135
+ id: id
136
+ }, children);
137
+ };
138
+ LegacyPanelHeaderContent.displayName = "LegacyPanelHeaderContent";
139
+ PanelHeader.Content = LegacyPanelHeaderContent;
113
140
 
114
141
  //# sourceMappingURL=PanelHeader.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/PanelHeader/PanelHeader.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useAdaptivityConditionalRender } from '../../hooks/useAdaptivityConditionalRender';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { SizeType } from '../../lib/adaptivity';\nimport { Platform } from '../../lib/platform';\nimport { HasComponent, HasRef, HasRootRef } from '../../types';\nimport { useConfigProvider, WebviewType } from '../ConfigProvider/ConfigProviderContext';\nimport { FixedLayout } from '../FixedLayout/FixedLayout';\nimport { ModalRootContext } from '../ModalRoot/ModalRootContext';\nimport { Separator } from '../Separator/Separator';\nimport { Spacing } from '../Spacing/Spacing';\nimport { TooltipContainer } from '../Tooltip/TooltipContainer';\nimport { Text } from '../Typography/Text/Text';\nimport styles from './PanelHeader.module.css';\n\nconst platformClassNames = {\n ios: classNames(styles['PanelHeader--ios'], 'vkuiInternalPanelHeader--ios'),\n android: classNames(styles['PanelHeader--android'], 'vkuiInternalPanelHeader--android'),\n vkcom: classNames(styles['PanelHeader--vkcom'], 'vkuiInternalPanelHeader--vkcom'),\n};\n\nconst sizeXClassNames = {\n none: styles['PanelHeader--sizeX-none'],\n regular: styles['PanelHeader--sizeX-regular'],\n};\n\nexport interface PanelHeaderProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRef<HTMLDivElement>,\n HasRootRef<HTMLDivElement> {\n before?: React.ReactNode;\n after?: React.ReactNode;\n separator?: boolean;\n transparent?: boolean;\n shadow?: boolean;\n /**\n * Если `false`, то шапка будет нулевой высоты и контент панели \"залезет\" под неё\n */\n visor?: boolean;\n /**\n * Если `false`, то шапка будет в потоке. По умолчанию `true`, но если платформа vkcom, то по умолчанию `false`.\n */\n fixed?: boolean;\n}\n\ninterface PanelHeaderContentProps extends React.HTMLAttributes<HTMLElement>, HasComponent {}\n\nconst PanelHeaderContent = ({ children, Component = 'span', id }: PanelHeaderContentProps) => {\n const platform = usePlatform();\n\n return platform === Platform.VKCOM ? (\n <Text weight=\"2\" Component={Component} id={id}>\n {children}\n </Text>\n ) : (\n <Component className={styles['PanelHeader__content-in']} id={id}>\n {children}\n </Component>\n );\n};\n\nPanelHeaderContent.displayName = 'PanelHeaderContent';\n\nconst PanelHeaderIn = ({ before, after, separator, children }: PanelHeaderProps) => {\n const { webviewType } = useConfigProvider();\n const { isInsideModal } = React.useContext(ModalRootContext);\n const platform = usePlatform();\n\n return (\n <React.Fragment>\n <TooltipContainer fixed className={styles['PanelHeader__in']}>\n <div\n className={classNames(styles['PanelHeader__before'], 'vkuiInternalPanelHeader__before')}\n >\n {before}\n </div>\n <div className={styles['PanelHeader__content']}>\n {/* Поддерживаем обратную совместимость для подкомпонентного подхода */}\n {React.isValidElement(children) &&\n (children as JSX.Element).type.displayName === PanelHeaderContent.displayName ? (\n children\n ) : (\n <PanelHeaderContent>{children}</PanelHeaderContent>\n )}\n </div>\n <div className={classNames(styles['PanelHeader__after'], 'vkuiInternalPanelHeader__after')}>\n {(webviewType === WebviewType.INTERNAL || isInsideModal) && after}\n </div>\n </TooltipContainer>\n {separator && platform === Platform.VKCOM && (\n <Separator className={styles['PanelHeader__separator']} wide />\n )}\n </React.Fragment>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PanelHeader\n */\nexport const PanelHeader = ({\n before,\n children,\n after,\n separator = true,\n visor = true,\n transparent = false,\n shadow,\n getRef,\n getRootRef,\n fixed,\n className,\n ...restProps\n}: PanelHeaderProps) => {\n const platform = usePlatform();\n const { webviewType } = useConfigProvider();\n const { isInsideModal } = React.useContext(ModalRootContext);\n const { sizeX = 'none' } = useAdaptivity();\n const { sizeX: adaptiveSizeX } = useAdaptivityConditionalRender();\n let isFixed = fixed !== undefined ? fixed : platform !== Platform.VKCOM;\n\n return (\n <div\n {...restProps}\n className={classNames(\n styles['PanelHeader'],\n 'vkuiInternalPanelHeader',\n platformClassNames.hasOwnProperty(platform)\n ? platformClassNames[platform]\n : platformClassNames.android,\n transparent && styles['PanelHeader--trnsp'],\n shadow && styles['PanelHeader--shadow'],\n visor && classNames(styles['PanelHeader--vis'], 'vkuiInternalPanelHeader--vis'),\n separator &&\n visor &&\n classNames(styles['PanelHeader--sep'], 'vkuiInternalPanelHeader--sep'),\n webviewType === WebviewType.VKAPPS && !isInsideModal && styles['PanelHeader--vkapps'],\n !before && styles['PanelHeader--no-before'],\n !after && styles['PanelHeader--no-after'],\n isFixed && styles['PanelHeader--fixed'],\n sizeX !== SizeType.COMPACT && sizeXClassNames[sizeX],\n className,\n )}\n ref={isFixed ? getRootRef : getRef}\n >\n {isFixed ? (\n <FixedLayout\n className={classNames(styles['PanelHeader__fixed'], 'vkuiInternalPanelHeader__fixed')}\n vertical=\"top\"\n getRootRef={getRef}\n >\n <PanelHeaderIn before={before} after={after} separator={separator}>\n {children}\n </PanelHeaderIn>\n </FixedLayout>\n ) : (\n <PanelHeaderIn before={before} after={after} separator={separator}>\n {children}\n </PanelHeaderIn>\n )}\n {separator && visor && platform !== Platform.VKCOM && (\n <React.Fragment>\n {adaptiveSizeX.compact && <Separator className={adaptiveSizeX.compact.className} />}\n {adaptiveSizeX.regular && (\n <Spacing className={adaptiveSizeX.regular.className} size={16} />\n )}\n </React.Fragment>\n )}\n </div>\n );\n};\n\nPanelHeader.Content = PanelHeaderContent;\n"],"names":["PanelHeader","platformClassNames","ios","classNames","android","vkcom","sizeXClassNames","none","regular","PanelHeaderContent","children","Component","id","platform","usePlatform","Platform","VKCOM","Text","weight","className","displayName","PanelHeaderIn","before","after","separator","webviewType","useConfigProvider","isInsideModal","React","useContext","ModalRootContext","Fragment","TooltipContainer","fixed","div","isValidElement","type","WebviewType","INTERNAL","Separator","wide","visor","transparent","shadow","getRef","getRootRef","restProps","useAdaptivity","sizeX","useAdaptivityConditionalRender","adaptiveSizeX","isFixed","undefined","hasOwnProperty","VKAPPS","SizeType","COMPACT","ref","FixedLayout","vertical","compact","Spacing","size","Content"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/components/PanelHeader/PanelHeader.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useAdaptivityConditionalRender } from '../../hooks/useAdaptivityConditionalRender';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { SizeType } from '../../lib/adaptivity';\nimport { Platform } from '../../lib/platform';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { HasComponent, HasRef, HasRootRef } from '../../types';\nimport { useConfigProvider, WebviewType } from '../ConfigProvider/ConfigProviderContext';\nimport { FixedLayout } from '../FixedLayout/FixedLayout';\nimport { ModalRootContext } from '../ModalRoot/ModalRootContext';\nimport { Separator } from '../Separator/Separator';\nimport { Spacing } from '../Spacing/Spacing';\nimport { TooltipContainer } from '../Tooltip/TooltipContainer';\nimport { Text } from '../Typography/Text/Text';\nimport styles from './PanelHeader.module.css';\n\nconst platformClassNames = {\n ios: classNames(styles['PanelHeader--ios'], 'vkuiInternalPanelHeader--ios'),\n android: classNames(styles['PanelHeader--android'], 'vkuiInternalPanelHeader--android'),\n vkcom: classNames(styles['PanelHeader--vkcom'], 'vkuiInternalPanelHeader--vkcom'),\n};\n\nconst sizeXClassNames = {\n none: styles['PanelHeader--sizeX-none'],\n regular: styles['PanelHeader--sizeX-regular'],\n};\n\nexport interface PanelHeaderProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRef<HTMLDivElement>,\n HasRootRef<HTMLDivElement> {\n before?: React.ReactNode;\n after?: React.ReactNode;\n separator?: boolean;\n transparent?: boolean;\n shadow?: boolean;\n /**\n * Если `false`, то шапка будет нулевой высоты и контент панели \"залезет\" под неё\n */\n visor?: boolean;\n /**\n * Если `false`, то шапка будет в потоке. По умолчанию `true`, но если платформа vkcom, то по умолчанию `false`.\n */\n fixed?: boolean;\n /**\n * По умолчанию как `Component` используется `span`.\n */\n typographyProps?: HasComponent & React.HTMLAttributes<HTMLElement>;\n}\n\nconst PanelHeaderIn = ({\n before,\n after,\n separator,\n children,\n typographyProps = {},\n}: PanelHeaderProps) => {\n const { Component = 'span', ...restProps } = typographyProps;\n const { webviewType } = useConfigProvider();\n const { isInsideModal } = React.useContext(ModalRootContext);\n const platform = usePlatform();\n\n let typographyNode: React.ReactNode;\n\n // TODO [>=6]: Удалить условие\n if (\n React.isValidElement(children) &&\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n (children as JSX.Element).type.displayName === LegacyPanelHeaderContent.displayName\n ) {\n typographyNode = children;\n } else {\n typographyNode =\n platform === Platform.VKCOM ? (\n <Text weight=\"2\" Component={Component} {...restProps}>\n {children}\n </Text>\n ) : (\n <Component className={styles['PanelHeader__content-in']} {...restProps}>\n {children}\n </Component>\n );\n }\n\n return (\n <React.Fragment>\n <TooltipContainer fixed className={styles['PanelHeader__in']}>\n <div\n className={classNames(styles['PanelHeader__before'], 'vkuiInternalPanelHeader__before')}\n >\n {before}\n </div>\n <div className={styles['PanelHeader__content']}>{typographyNode}</div>\n <div className={classNames(styles['PanelHeader__after'], 'vkuiInternalPanelHeader__after')}>\n {(webviewType === WebviewType.INTERNAL || isInsideModal) && after}\n </div>\n </TooltipContainer>\n {separator && platform === Platform.VKCOM && (\n <Separator className={styles['PanelHeader__separator']} wide />\n )}\n </React.Fragment>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PanelHeader\n */\nexport const PanelHeader = ({\n before,\n children,\n after,\n separator = true,\n visor = true,\n transparent = false,\n shadow,\n getRef,\n getRootRef,\n fixed,\n className,\n typographyProps,\n ...restProps\n}: PanelHeaderProps) => {\n const platform = usePlatform();\n const { webviewType } = useConfigProvider();\n const { isInsideModal } = React.useContext(ModalRootContext);\n const { sizeX = 'none' } = useAdaptivity();\n const { sizeX: adaptiveSizeX } = useAdaptivityConditionalRender();\n let isFixed = fixed !== undefined ? fixed : platform !== Platform.VKCOM;\n\n return (\n <div\n {...restProps}\n className={classNames(\n styles['PanelHeader'],\n 'vkuiInternalPanelHeader',\n platformClassNames.hasOwnProperty(platform)\n ? platformClassNames[platform]\n : platformClassNames.android,\n transparent && styles['PanelHeader--trnsp'],\n shadow && styles['PanelHeader--shadow'],\n visor && classNames(styles['PanelHeader--vis'], 'vkuiInternalPanelHeader--vis'),\n separator &&\n visor &&\n classNames(styles['PanelHeader--sep'], 'vkuiInternalPanelHeader--sep'),\n webviewType === WebviewType.VKAPPS && !isInsideModal && styles['PanelHeader--vkapps'],\n !before && styles['PanelHeader--no-before'],\n !after && styles['PanelHeader--no-after'],\n isFixed && styles['PanelHeader--fixed'],\n sizeX !== SizeType.COMPACT && sizeXClassNames[sizeX],\n className,\n )}\n ref={isFixed ? getRootRef : getRef}\n >\n {isFixed ? (\n <FixedLayout\n className={classNames(styles['PanelHeader__fixed'], 'vkuiInternalPanelHeader__fixed')}\n vertical=\"top\"\n getRootRef={getRef}\n >\n <PanelHeaderIn\n before={before}\n after={after}\n separator={separator}\n typographyProps={typographyProps}\n >\n {children}\n </PanelHeaderIn>\n </FixedLayout>\n ) : (\n <PanelHeaderIn\n before={before}\n after={after}\n separator={separator}\n typographyProps={typographyProps}\n >\n {children}\n </PanelHeaderIn>\n )}\n {separator && visor && platform !== Platform.VKCOM && (\n <React.Fragment>\n {adaptiveSizeX.compact && <Separator className={adaptiveSizeX.compact.className} />}\n {adaptiveSizeX.regular && (\n <Spacing className={adaptiveSizeX.regular.className} size={16} />\n )}\n </React.Fragment>\n )}\n </div>\n );\n};\n\ninterface LegacyPanelHeaderContentProps extends React.HTMLAttributes<HTMLElement>, HasComponent {}\n\nconst warn = warnOnce('PanelHeader');\n\n/**\n * TODO [>=6]: Удалить подкомпонент\n * @deprecated\n */\nconst LegacyPanelHeaderContent = ({\n children,\n Component = 'span',\n id,\n}: LegacyPanelHeaderContentProps) => {\n if (process.env.NODE_ENV === 'development') {\n warn(\n 'Подкомпонент PanelHeader.Content устарел и будет удалён в v6. Используйте параметр typographyProps.',\n );\n }\n\n const platform = usePlatform();\n\n return platform === Platform.VKCOM ? (\n <Text weight=\"2\" Component={Component} id={id}>\n {children}\n </Text>\n ) : (\n <Component className={styles['PanelHeader__content-in']} id={id}>\n {children}\n </Component>\n );\n};\n\nLegacyPanelHeaderContent.displayName = 'LegacyPanelHeaderContent';\n\nPanelHeader.Content = LegacyPanelHeaderContent;\n"],"names":["PanelHeader","platformClassNames","ios","classNames","android","vkcom","sizeXClassNames","none","regular","PanelHeaderIn","before","after","separator","children","typographyProps","Component","restProps","webviewType","useConfigProvider","isInsideModal","React","useContext","ModalRootContext","platform","usePlatform","typographyNode","isValidElement","type","displayName","LegacyPanelHeaderContent","Platform","VKCOM","Text","weight","className","Fragment","TooltipContainer","fixed","div","WebviewType","INTERNAL","Separator","wide","visor","transparent","shadow","getRef","getRootRef","useAdaptivity","sizeX","useAdaptivityConditionalRender","adaptiveSizeX","isFixed","undefined","hasOwnProperty","VKAPPS","SizeType","COMPACT","ref","FixedLayout","vertical","compact","Spacing","size","warn","warnOnce","id","process","env","NODE_ENV","Content"],"mappings":"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"}
@@ -22,6 +22,7 @@ var _tabs = require("../Tabs/Tabs");
22
22
  var _tappable = require("../Tappable/Tappable");
23
23
  var _headline = require("../Typography/Headline/Headline");
24
24
  var _subhead = require("../Typography/Subhead/Subhead");
25
+ var _visuallyHidden = require("../VisuallyHidden/VisuallyHidden");
25
26
  var sizeYClassNames = _defineProperty({
26
27
  none: "vkuiTabsItem--sizeY-none"
27
28
  }, _adaptivity.SizeType.COMPACT, "vkuiTabsItem--sizeY-compact");
@@ -46,9 +47,9 @@ var TabsItem = function(_param) {
46
47
  Component: "span",
47
48
  className: (0, _vkjs.classNames)("vkuiTabsItem__status", "vkuiTabsItem__status--count"),
48
49
  weight: "2"
49
- }, status) : /*#__PURE__*/ _react.createElement("span", {
50
+ }, /*#__PURE__*/ _react.createElement(_visuallyHidden.VisuallyHidden, null, "\xa0"), status) : /*#__PURE__*/ _react.createElement("span", {
50
51
  className: "vkuiTabsItem__status"
51
- }, status);
52
+ }, /*#__PURE__*/ _react.createElement(_visuallyHidden.VisuallyHidden, null, "\xa0"), status);
52
53
  }
53
54
  if (process.env.NODE_ENV === "development" && isTabFlow) {
54
55
  if (!restProps["aria-controls"]) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/TabsItem/TabsItem.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { SizeType } from '../../lib/adaptivity';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { TabsContextProps, TabsModeContext } from '../Tabs/Tabs';\nimport { Tappable } from '../Tappable/Tappable';\nimport { Headline } from '../Typography/Headline/Headline';\nimport { Subhead } from '../Typography/Subhead/Subhead';\nimport styles from './TabsItem.module.css';\n\nconst sizeYClassNames = {\n none: styles['TabsItem--sizeY-none'],\n [SizeType.COMPACT]: styles['TabsItem--sizeY-compact'],\n};\n\nexport interface TabsItemProps extends React.HTMLAttributes<HTMLElement> {\n /**\n * Добавляет иконку слева.\n *\n * - Для `mode=\"default\"` используйте иконки размером 24.\n * - Для всех остальных `mode` используйте иконки размером 20.\n */\n before?: React.ReactNode;\n /**\n * Добавляет элемент слева от `after`.\n *\n * - `React.ReactElement` – либо [`Badge`](https://vkcom.github.io/VKUI/#/Badge) с параметром `mode=\"prominent\"`.\n * либо [`Counter`](https://vkcom.github.io/VKUI/#/Counter) с параметрами `mode=\"prominent\" size=\"s\"`.\n * - `number` – для показа текстового блока с переданным числом.\n */\n status?: React.ReactElement | number;\n /**\n * Добавляет иконку справа.\n *\n * Например, `<Icon16Dropdown />`\n */\n after?: React.ReactNode;\n selected?: boolean;\n disabled?: boolean;\n}\n\nconst warn = warnOnce('TabsItem');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/TabsItem\n */\nexport const TabsItem = ({\n before,\n children,\n status,\n after,\n selected = false,\n className,\n role = 'tab',\n tabIndex: tabIndexProp,\n ...restProps\n}: TabsItemProps) => {\n const { sizeY = 'none' } = useAdaptivity();\n const { mode, withGaps }: TabsContextProps = React.useContext(TabsModeContext);\n let statusComponent = null;\n\n const isTabFlow = role === 'tab';\n\n if (status) {\n statusComponent =\n typeof status === 'number' ? (\n <Subhead\n Component=\"span\"\n className={classNames(styles['TabsItem__status'], styles['TabsItem__status--count'])}\n weight=\"2\"\n >\n {status}\n </Subhead>\n ) : (\n <span className={styles['TabsItem__status']}>{status}</span>\n );\n }\n\n if (process.env.NODE_ENV === 'development' && isTabFlow) {\n if (!restProps['aria-controls']) {\n warn(`Передайте в \"aria-controls\" id контролируемого блока`, 'warn');\n } else if (!restProps['id']) {\n warn(\n `Передайте \"id\" компоненту для использования в \"aria-labelledby\" контролируемого блока`,\n 'warn',\n );\n }\n }\n\n let tabIndex = tabIndexProp;\n if (isTabFlow && tabIndex === undefined) {\n tabIndex = selected ? 0 : -1;\n }\n\n return (\n <Tappable\n {...restProps}\n className={classNames(\n styles['TabsItem'],\n mode &&\n {\n default: styles['TabsItem--mode-default'],\n accent: styles['TabsItem--mode-accent'],\n secondary: styles['TabsItem--mode-secondary'],\n }[mode],\n selected && styles['TabsItem--selected'],\n sizeY !== SizeType.REGULAR && sizeYClassNames[sizeY],\n withGaps && styles['TabsItem--withGaps'],\n className,\n )}\n hoverMode={styles['TabsItem--hover']}\n activeMode=\"\"\n focusVisibleMode=\"inside\"\n hasActive={false}\n role={role}\n aria-selected={selected}\n tabIndex={tabIndex}\n >\n {before && <div className={styles['TabsItem__before']}>{before}</div>}\n <Headline\n Component=\"span\"\n className={styles['TabsItem__label']}\n level={mode === 'default' ? '1' : '2'}\n weight=\"2\"\n >\n {children}\n </Headline>\n {statusComponent}\n {after && <div className={styles['TabsItem__after']}>{after}</div>}\n {mode === 'default' && (\n <div className={styles['TabsItem__underline']} aria-hidden data-selected={selected} />\n )}\n </Tappable>\n );\n};\n"],"names":["TabsItem","sizeYClassNames","none","SizeType","COMPACT","warn","warnOnce","before","children","status","after","selected","className","role","tabIndex","tabIndexProp","restProps","useAdaptivity","sizeY","React","useContext","TabsModeContext","mode","withGaps","statusComponent","isTabFlow","Subhead","Component","classNames","weight","span","process","env","NODE_ENV","undefined","Tappable","default","accent","secondary","REGULAR","hoverMode","activeMode","focusVisibleMode","hasActive","aria-selected","div","Headline","level","aria-hidden","data-selected"],"mappings":";;;;+BA+CaA;;;eAAAA;;;;;;;;2DA/CU;oBACI;6BACG;0BACL;wBACA;oBACyB;wBACzB;wBACA;uBACD;AAGxB,IAAMC;IACJC,IAAI;GACHC,oBAAQ,CAACC,OAAO;AA6BnB,IAAMC,OAAOC,IAAAA,kBAAQ,EAAC;AAKf,IAAMN,WAAW,iBAUH;QATnBO,gBAAAA,QACAC,kBAAAA,UACAC,gBAAAA,QACAC,eAAAA,gCACAC,UAAAA,wCAAW,KAAK,oBAChBC,mBAAAA,gCACAC,MAAAA,gCAAO,qBACPC,AAAUC,sBAAVD,UACGE;QARHT;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,IAA2BG,kBAAAA,IAAAA,4BAAa,4BAAbA,gBAAnBC,OAAAA,0CAAQ;IAChB,IAA6CC,oBAAAA,OAAMC,UAAU,CAACC,qBAAe,GAArEC,OAAqCH,kBAArCG,MAAMC,WAA+BJ,kBAA/BI;IACd,IAAIC,kBAAkB,IAAI;IAE1B,IAAMC,YAAYZ,SAAS;IAE3B,IAAIJ,QAAQ;QACVe,kBACE,OAAOf,WAAW,yBAChB,qBAACiB,gBAAO;YACNC,WAAU;YACVf,WAAWgB,IAAAA,gBAAU;YACrBC,QAAO;WAENpB,wBAGH,qBAACqB;YAAKlB,SAAS;WAA+BH,OAC/C;IACL,CAAC;IAED,IAAIsB,QAAQC,GAAG,CAACC,QAAQ,KAAK,iBAAiBR,WAAW;QACvD,IAAI,CAACT,SAAS,CAAC,gBAAgB,EAAE;YAC/BX,KAAM,wDAAuD;QAC/D,OAAO,IAAI,CAACW,SAAS,CAAC,KAAK,EAAE;YAC3BX,KACG,yFACD;QAEJ,CAAC;IACH,CAAC;IAED,IAAIS,WAAWC;IACf,IAAIU,aAAaX,aAAaoB,WAAW;QACvCpB,WAAWH,WAAW,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,qBACE,qBAACwB,kBAAQ,uCACHnB;QACJJ,WAAWgB,IAAAA,gBAAU,kBAEnBN,QACE,CAAA;YACEc,OAAO;YACPC,MAAM;YACNC,SAAS;QACX,CAAA,CAAC,CAAChB,KAAK,EACTX,sCACAO,UAAUf,oBAAQ,CAACoC,OAAO,IAAItC,eAAe,CAACiB,MAAM,EACpDK,sCACAX;QAEF4B,SAAS;QACTC,YAAW;QACXC,kBAAiB;QACjBC,WAAW,KAAK;QAChB9B,MAAMA;QACN+B,iBAAejC;QACfG,UAAUA;QAETP,wBAAU,qBAACsC;QAAIjC,SAAS;OAA+BL,uBACxD,qBAACuC,kBAAQ;QACPnB,WAAU;QACVf,SAAS;QACTmC,OAAOzB,SAAS,YAAY,MAAM,GAAG;QACrCO,QAAO;OAENrB,WAEFgB,iBACAd,uBAAS,qBAACmC;QAAIjC,SAAS;OAA8BF,QACrDY,SAAS,2BACR,qBAACuB;QAAIjC,SAAS;QAAiCoC,eAAAA,IAAW;QAACC,iBAAetC;;AAIlF"}
1
+ {"version":3,"sources":["../../../../src/components/TabsItem/TabsItem.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { SizeType } from '../../lib/adaptivity';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { TabsContextProps, TabsModeContext } from '../Tabs/Tabs';\nimport { Tappable } from '../Tappable/Tappable';\nimport { Headline } from '../Typography/Headline/Headline';\nimport { Subhead } from '../Typography/Subhead/Subhead';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport styles from './TabsItem.module.css';\n\nconst sizeYClassNames = {\n none: styles['TabsItem--sizeY-none'],\n [SizeType.COMPACT]: styles['TabsItem--sizeY-compact'],\n};\n\nexport interface TabsItemProps extends React.HTMLAttributes<HTMLElement> {\n /**\n * Добавляет иконку слева.\n *\n * - Для `mode=\"default\"` используйте иконки размером 24.\n * - Для всех остальных `mode` используйте иконки размером 20.\n */\n before?: React.ReactNode;\n /**\n * Добавляет элемент слева от `after`.\n *\n * - `React.ReactElement` – либо [`Badge`](https://vkcom.github.io/VKUI/#/Badge) с параметром `mode=\"prominent\"`.\n * либо [`Counter`](https://vkcom.github.io/VKUI/#/Counter) с параметрами `mode=\"prominent\" size=\"s\"`.\n * - `number` – для показа текстового блока с переданным числом.\n */\n status?: React.ReactElement | number;\n /**\n * Добавляет иконку справа.\n *\n * Например, `<Icon16Dropdown />`\n */\n after?: React.ReactNode;\n selected?: boolean;\n disabled?: boolean;\n}\n\nconst warn = warnOnce('TabsItem');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/TabsItem\n */\nexport const TabsItem = ({\n before,\n children,\n status,\n after,\n selected = false,\n className,\n role = 'tab',\n tabIndex: tabIndexProp,\n ...restProps\n}: TabsItemProps) => {\n const { sizeY = 'none' } = useAdaptivity();\n const { mode, withGaps }: TabsContextProps = React.useContext(TabsModeContext);\n let statusComponent = null;\n\n const isTabFlow = role === 'tab';\n\n if (status) {\n statusComponent =\n typeof status === 'number' ? (\n <Subhead\n Component=\"span\"\n className={classNames(styles['TabsItem__status'], styles['TabsItem__status--count'])}\n weight=\"2\"\n >\n <VisuallyHidden>&nbsp;</VisuallyHidden>\n {status}\n </Subhead>\n ) : (\n <span className={styles['TabsItem__status']}>\n <VisuallyHidden>&nbsp;</VisuallyHidden>\n {status}\n </span>\n );\n }\n\n if (process.env.NODE_ENV === 'development' && isTabFlow) {\n if (!restProps['aria-controls']) {\n warn(`Передайте в \"aria-controls\" id контролируемого блока`, 'warn');\n } else if (!restProps['id']) {\n warn(\n `Передайте \"id\" компоненту для использования в \"aria-labelledby\" контролируемого блока`,\n 'warn',\n );\n }\n }\n\n let tabIndex = tabIndexProp;\n if (isTabFlow && tabIndex === undefined) {\n tabIndex = selected ? 0 : -1;\n }\n\n return (\n <Tappable\n {...restProps}\n className={classNames(\n styles['TabsItem'],\n mode &&\n {\n default: styles['TabsItem--mode-default'],\n accent: styles['TabsItem--mode-accent'],\n secondary: styles['TabsItem--mode-secondary'],\n }[mode],\n selected && styles['TabsItem--selected'],\n sizeY !== SizeType.REGULAR && sizeYClassNames[sizeY],\n withGaps && styles['TabsItem--withGaps'],\n className,\n )}\n hoverMode={styles['TabsItem--hover']}\n activeMode=\"\"\n focusVisibleMode=\"inside\"\n hasActive={false}\n role={role}\n aria-selected={selected}\n tabIndex={tabIndex}\n >\n {before && <div className={styles['TabsItem__before']}>{before}</div>}\n <Headline\n Component=\"span\"\n className={styles['TabsItem__label']}\n level={mode === 'default' ? '1' : '2'}\n weight=\"2\"\n >\n {children}\n </Headline>\n {statusComponent}\n {after && <div className={styles['TabsItem__after']}>{after}</div>}\n {mode === 'default' && (\n <div className={styles['TabsItem__underline']} aria-hidden data-selected={selected} />\n )}\n </Tappable>\n );\n};\n"],"names":["TabsItem","sizeYClassNames","none","SizeType","COMPACT","warn","warnOnce","before","children","status","after","selected","className","role","tabIndex","tabIndexProp","restProps","useAdaptivity","sizeY","React","useContext","TabsModeContext","mode","withGaps","statusComponent","isTabFlow","Subhead","Component","classNames","weight","VisuallyHidden","span","process","env","NODE_ENV","undefined","Tappable","default","accent","secondary","REGULAR","hoverMode","activeMode","focusVisibleMode","hasActive","aria-selected","div","Headline","level","aria-hidden","data-selected"],"mappings":";;;;+BAgDaA;;;eAAAA;;;;;;;;2DAhDU;oBACI;6BACG;0BACL;wBACA;oBACyB;wBACzB;wBACA;uBACD;8BACO;AAG/B,IAAMC;IACJC,IAAI;GACHC,oBAAQ,CAACC,OAAO;AA6BnB,IAAMC,OAAOC,IAAAA,kBAAQ,EAAC;AAKf,IAAMN,WAAW,iBAUH;QATnBO,gBAAAA,QACAC,kBAAAA,UACAC,gBAAAA,QACAC,eAAAA,gCACAC,UAAAA,wCAAW,KAAK,oBAChBC,mBAAAA,gCACAC,MAAAA,gCAAO,qBACPC,AAAUC,sBAAVD,UACGE;QARHT;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,IAA2BG,kBAAAA,IAAAA,4BAAa,4BAAbA,gBAAnBC,OAAAA,0CAAQ;IAChB,IAA6CC,oBAAAA,OAAMC,UAAU,CAACC,qBAAe,GAArEC,OAAqCH,kBAArCG,MAAMC,WAA+BJ,kBAA/BI;IACd,IAAIC,kBAAkB,IAAI;IAE1B,IAAMC,YAAYZ,SAAS;IAE3B,IAAIJ,QAAQ;QACVe,kBACE,OAAOf,WAAW,yBAChB,qBAACiB,gBAAO;YACNC,WAAU;YACVf,WAAWgB,IAAAA,gBAAU;YACrBC,QAAO;yBAEP,qBAACC,8BAAc,QAAC,SACfrB,wBAGH,qBAACsB;YAAKnB,SAAS;yBACb,qBAACkB,8BAAc,QAAC,SACfrB,OAEJ;IACL,CAAC;IAED,IAAIuB,QAAQC,GAAG,CAACC,QAAQ,KAAK,iBAAiBT,WAAW;QACvD,IAAI,CAACT,SAAS,CAAC,gBAAgB,EAAE;YAC/BX,KAAM,wDAAuD;QAC/D,OAAO,IAAI,CAACW,SAAS,CAAC,KAAK,EAAE;YAC3BX,KACG,yFACD;QAEJ,CAAC;IACH,CAAC;IAED,IAAIS,WAAWC;IACf,IAAIU,aAAaX,aAAaqB,WAAW;QACvCrB,WAAWH,WAAW,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,qBACE,qBAACyB,kBAAQ,uCACHpB;QACJJ,WAAWgB,IAAAA,gBAAU,kBAEnBN,QACE,CAAA;YACEe,OAAO;YACPC,MAAM;YACNC,SAAS;QACX,CAAA,CAAC,CAACjB,KAAK,EACTX,sCACAO,UAAUf,oBAAQ,CAACqC,OAAO,IAAIvC,eAAe,CAACiB,MAAM,EACpDK,sCACAX;QAEF6B,SAAS;QACTC,YAAW;QACXC,kBAAiB;QACjBC,WAAW,KAAK;QAChB/B,MAAMA;QACNgC,iBAAelC;QACfG,UAAUA;QAETP,wBAAU,qBAACuC;QAAIlC,SAAS;OAA+BL,uBACxD,qBAACwC,kBAAQ;QACPpB,WAAU;QACVf,SAAS;QACToC,OAAO1B,SAAS,YAAY,MAAM,GAAG;QACrCO,QAAO;OAENrB,WAEFgB,iBACAd,uBAAS,qBAACoC;QAAIlC,SAAS;OAA8BF,QACrDY,SAAS,2BACR,qBAACwB;QAAIlC,SAAS;QAAiCqC,eAAAA,IAAW;QAACC,iBAAevC;;AAIlF"}
@@ -3,12 +3,11 @@ import { HasComponent, HasRootRef } from '../../types';
3
3
  interface VisuallyHiddenProps extends React.AllHTMLAttributes<HTMLElement>, HasRootRef<HTMLElement>, HasComponent {
4
4
  }
5
5
  /**
6
- * @since v5.4.0
7
- * @see https://vkcom.github.io/VKUI/#/VisuallyHidden
8
- * @description
9
- *
10
6
  * Компонент-обертка. Позволяет скрыть контент визуально, но оставить его
11
7
  * доступным для ассистивных технологий. По умолчанию — `span`.
8
+ *
9
+ * @since v5.4.0
10
+ * @see https://vkcom.github.io/VKUI/#/VisuallyHidden
12
11
  */
13
12
  export declare const VisuallyHidden: ({ Component, getRootRef, className, ...restProps }: VisuallyHiddenProps) => JSX.Element;
14
13
  export {};
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/VisuallyHidden/VisuallyHidden.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { HasComponent, HasRootRef } from '../../types';\nimport styles from './VisuallyHidden.module.css';\n\ninterface VisuallyHiddenProps\n extends React.AllHTMLAttributes<HTMLElement>,\n HasRootRef<HTMLElement>,\n HasComponent {}\n\n/**\n * @since v5.4.0\n * @see https://vkcom.github.io/VKUI/#/VisuallyHidden\n * @description\n *\n * Компонент-обертка. Позволяет скрыть контент визуально, но оставить его\n * доступным для ассистивных технологий. По умолчанию — `span`.\n */\nexport const VisuallyHidden = ({\n Component = 'span',\n getRootRef,\n className,\n ...restProps\n}: VisuallyHiddenProps) => {\n return (\n <Component\n {...restProps}\n className={classNames(styles['VisuallyHidden'], className)}\n ref={getRootRef}\n />\n );\n};\n"],"names":["VisuallyHidden","Component","getRootRef","className","restProps","classNames","ref"],"mappings":";;;;+BAkBaA;;;eAAAA;;;;;;;2DAlBU;oBACI;AAiBpB,IAAMA,iBAAiB,iBAKH;kCAJzBC,WAAAA,0CAAY,2BACZC,oBAAAA,YACAC,mBAAAA,WACGC;QAHHH;QACAC;QACAC;;IAGA,qBACE,qBAACF,gDACKG;QACJD,WAAWE,IAAAA,gBAAU,wBAA2BF;QAChDG,KAAKJ;;AAGX"}
1
+ {"version":3,"sources":["../../../../src/components/VisuallyHidden/VisuallyHidden.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { HasComponent, HasRootRef } from '../../types';\nimport styles from './VisuallyHidden.module.css';\n\ninterface VisuallyHiddenProps\n extends React.AllHTMLAttributes<HTMLElement>,\n HasRootRef<HTMLElement>,\n HasComponent {}\n\n/**\n * Компонент-обертка. Позволяет скрыть контент визуально, но оставить его\n * доступным для ассистивных технологий. По умолчанию — `span`.\n *\n * @since v5.4.0\n * @see https://vkcom.github.io/VKUI/#/VisuallyHidden\n */\nexport const VisuallyHidden = ({\n Component = 'span',\n getRootRef,\n className,\n ...restProps\n}: VisuallyHiddenProps) => {\n return (\n <Component\n {...restProps}\n className={classNames(styles['VisuallyHidden'], className)}\n ref={getRootRef}\n />\n );\n};\n"],"names":["VisuallyHidden","Component","getRootRef","className","restProps","classNames","ref"],"mappings":";;;;+BAiBaA;;;eAAAA;;;;;;;2DAjBU;oBACI;AAgBpB,IAAMA,iBAAiB,iBAKH;kCAJzBC,WAAAA,0CAAY,2BACZC,oBAAAA,YACAC,mBAAAA,WACGC;QAHHH;QACAC;QACAC;;IAGA,qBACE,qBAACF,gDACKG;QACJD,WAAWE,IAAAA,gBAAU,wBAA2BF;QAChDG,KAAKJ;;AAGX"}
@@ -5,7 +5,7 @@ export var ActionSheetDefaultIosCloseItem = function(props) {
5
5
  return /*#__PURE__*/ React.createElement(ActionSheetItem, _object_spread({
6
6
  autoClose: true,
7
7
  mode: "cancel"
8
- }, props), "Отменить");
8
+ }, props), "Отмена");
9
9
  };
10
10
 
11
11
  //# sourceMappingURL=ActionSheetDefaultIosCloseItem.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ActionSheet/ActionSheetDefaultIosCloseItem.tsx"],"sourcesContent":["import * as React from 'react';\nimport { ActionSheetItem, ActionSheetItemProps } from '../ActionSheetItem/ActionSheetItem';\n\nexport const ActionSheetDefaultIosCloseItem = (props: ActionSheetItemProps) => {\n return (\n <ActionSheetItem autoClose mode=\"cancel\" {...props}>\n Отменить\n </ActionSheetItem>\n );\n};\n"],"names":["React","ActionSheetItem","ActionSheetDefaultIosCloseItem","props","autoClose","mode"],"mappings":";AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,eAAe,QAA8B,qCAAqC;AAE3F,OAAO,IAAMC,iCAAiC,SAACC,OAAgC;IAC7E,qBACE,oBAACF;QAAgBG,WAAAA,IAAS;QAACC,MAAK;OAAaF,QAAO;AAIxD,EAAE"}
1
+ {"version":3,"sources":["../../../src/components/ActionSheet/ActionSheetDefaultIosCloseItem.tsx"],"sourcesContent":["import * as React from 'react';\nimport { ActionSheetItem, ActionSheetItemProps } from '../ActionSheetItem/ActionSheetItem';\n\nexport const ActionSheetDefaultIosCloseItem = (props: ActionSheetItemProps) => {\n return (\n <ActionSheetItem autoClose mode=\"cancel\" {...props}>\n Отмена\n </ActionSheetItem>\n );\n};\n"],"names":["React","ActionSheetItem","ActionSheetDefaultIosCloseItem","props","autoClose","mode"],"mappings":";AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,eAAe,QAA8B,qCAAqC;AAE3F,OAAO,IAAMC,iCAAiC,SAACC,OAAgC;IAC7E,qBACE,oBAACF;QAAgBG,WAAAA,IAAS;QAACC,MAAK;OAAaF,QAAO;AAIxD,EAAE"}
@@ -12,6 +12,7 @@ import { ActionSheetContext } from "../ActionSheet/ActionSheetContext";
12
12
  import { Tappable } from "../Tappable/Tappable";
13
13
  import { Subhead } from "../Typography/Subhead/Subhead";
14
14
  import { Text } from "../Typography/Text/Text";
15
+ import { Title } from "../Typography/Title/Title";
15
16
  /**
16
17
  * @see https://vkcom.github.io/VKUI/#/ActionSheetItem
17
18
  */ var ActionSheetItem = function(_param) {
@@ -51,15 +52,18 @@ import { Text } from "../Typography/Text/Text";
51
52
  }, restProps), {
52
53
  onClick: selectable ? onClick : onItemClick(onClick, onImmediateClick, Boolean(autoClose)),
53
54
  activeMode: platform === Platform.IOS ? "vkuiActionSheetItem--active" : undefined,
54
- className: classNames("vkuiActionSheetItem", platform === Platform.IOS && "vkuiActionSheetItem--ios", mode === "cancel" && "vkuiActionSheetItem--mode-cancel", mode === "destructive" && "vkuiActionSheetItem--mode-destructive", sizeY === SizeType.COMPACT && "vkuiActionSheetItem--sizeY-compact", isRich && "vkuiActionSheetItem--rich", isDesktop && "vkuiActionSheetItem--desktop", className)
55
+ className: classNames("vkuiActionSheetItem", platform === Platform.IOS && "vkuiActionSheetItem--ios", mode === "cancel" && "vkuiActionSheetItem--mode-cancel", mode === "destructive" && "vkuiActionSheetItem--mode-destructive", sizeY === SizeType.COMPACT && "vkuiActionSheetItem--sizeY-compact", isRich && "vkuiActionSheetItem--rich", isDesktop && "vkuiActionSheetItem--desktop", selectable && "vkuiActionSheetItem--selectable", className)
55
56
  }), before && /*#__PURE__*/ React.createElement("div", {
56
57
  className: "vkuiActionSheetItem__before"
57
58
  }, before), /*#__PURE__*/ React.createElement("div", {
58
59
  className: classNames("vkuiActionSheetItem__container", !multiline && "vkuiActionSheetItem--ellipsis")
59
60
  }, /*#__PURE__*/ React.createElement("div", {
60
61
  className: classNames("vkuiActionSheetItem__content", isCentered && "vkuiActionSheetItem--centered")
61
- }, /*#__PURE__*/ React.createElement(Text, {
62
- weight: mode === "cancel" ? "2" : undefined,
62
+ }, platform === Platform.IOS ? /*#__PURE__*/ React.createElement(Title, {
63
+ className: "vkuiActionSheetItem__children",
64
+ weight: mode === "cancel" ? "2" : "3",
65
+ level: isCentered ? "2" : "3"
66
+ }, children) : /*#__PURE__*/ React.createElement(Text, {
63
67
  className: "vkuiActionSheetItem__children"
64
68
  }, children), meta && /*#__PURE__*/ React.createElement(Text, {
65
69
  className: "vkuiActionSheetItem__meta"
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ActionSheetItem/ActionSheetItem.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Icon20CheckCircleOn, Icon24CheckCircleOn } from '@vkontakte/icons';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { useAdaptivityWithJSMediaQueries } from '../../hooks/useAdaptivityWithJSMediaQueries';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { SizeType } from '../../lib/adaptivity';\nimport { Platform } from '../../lib/platform';\nimport { ActionSheetContext, type ActionSheetContextType } from '../ActionSheet/ActionSheetContext';\nimport { Tappable } from '../Tappable/Tappable';\nimport { Subhead } from '../Typography/Subhead/Subhead';\nimport { Text } from '../Typography/Text/Text';\nimport styles from './ActionSheetItem.module.css';\n\nexport interface ActionSheetItemProps\n extends React.HTMLAttributes<HTMLElement>,\n React.AnchorHTMLAttributes<HTMLElement>,\n Pick<React.InputHTMLAttributes<HTMLInputElement>, 'name' | 'checked' | 'value'> {\n mode?: 'default' | 'destructive' | 'cancel';\n before?: React.ReactNode;\n meta?: React.ReactNode;\n subtitle?: React.ReactNode;\n autoClose?: boolean;\n selectable?: boolean;\n disabled?: boolean;\n /**\n * Все текстовые элементы при необходимости занимают несколько строк\n */\n multiline?: boolean;\n /**\n * Если autoClose === true, onClick будет вызван после завершения анимации скрытия и после вызова onClose.\n * Из этого следует, что в объекте события значения полей типа `currentTarget` будут не определены.\n * Если вам нужен объект события именно на момент клика, используйте `onImmediateClick`.\n */\n onClick?: React.MouseEventHandler<HTMLElement>;\n onImmediateClick?: React.MouseEventHandler<HTMLElement>;\n /**\n * Иконка для `checked` режима.\n */\n iconChecked?: React.ReactNode;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ActionSheetItem\n */\nconst ActionSheetItem = ({\n children,\n autoClose,\n mode = 'default',\n meta,\n subtitle,\n before,\n selectable,\n value,\n name,\n checked,\n defaultChecked,\n onChange,\n onClick,\n onImmediateClick,\n multiline = false,\n iconChecked: iconCheckedProp,\n className,\n ...restProps\n}: ActionSheetItemProps) => {\n const platform = usePlatform();\n const { onItemClick = () => noop, isDesktop } =\n React.useContext<ActionSheetContextType<HTMLElement>>(ActionSheetContext);\n const { sizeY } = useAdaptivityWithJSMediaQueries();\n\n const iconChecked =\n iconCheckedProp ||\n (sizeY === SizeType.COMPACT ? <Icon20CheckCircleOn /> : <Icon24CheckCircleOn />);\n\n let Component: React.ElementType = restProps.href ? 'a' : 'div';\n\n if (selectable) {\n Component = 'label';\n }\n\n const isRich = subtitle || meta || selectable;\n const isCentered = !isRich && !before && platform === Platform.IOS;\n\n return (\n <Tappable\n Component={Component}\n {...restProps}\n onClick={selectable ? onClick : onItemClick(onClick, onImmediateClick, Boolean(autoClose))}\n activeMode={platform === Platform.IOS ? styles['ActionSheetItem--active'] : undefined}\n className={classNames(\n styles['ActionSheetItem'],\n platform === Platform.IOS && styles['ActionSheetItem--ios'],\n mode === 'cancel' && styles['ActionSheetItem--mode-cancel'],\n mode === 'destructive' && styles['ActionSheetItem--mode-destructive'],\n sizeY === SizeType.COMPACT && styles['ActionSheetItem--sizeY-compact'],\n isRich && styles['ActionSheetItem--rich'],\n isDesktop && styles['ActionSheetItem--desktop'],\n className,\n )}\n >\n {before && <div className={styles['ActionSheetItem__before']}>{before}</div>}\n <div\n className={classNames(\n styles['ActionSheetItem__container'],\n !multiline && styles['ActionSheetItem--ellipsis'],\n )}\n >\n <div\n className={classNames(\n styles['ActionSheetItem__content'],\n isCentered && styles['ActionSheetItem--centered'],\n )}\n >\n <Text\n weight={mode === 'cancel' ? '2' : undefined}\n className={styles['ActionSheetItem__children']}\n >\n {children}\n </Text>\n {meta && <Text className={styles['ActionSheetItem__meta']}>{meta}</Text>}\n </div>\n {subtitle && <Subhead className={styles['ActionSheetItem__subtitle']}>{subtitle}</Subhead>}\n </div>\n {selectable && (\n <div className={styles['ActionSheetItem__after']}>\n <input\n type=\"radio\"\n className={styles['ActionSheetItem__radio']}\n name={name}\n value={value}\n onChange={onChange}\n onClick={onItemClick(noop, noop, Boolean(autoClose))}\n defaultChecked={defaultChecked}\n checked={checked}\n disabled={restProps.disabled}\n />\n <div className={styles['ActionSheetItem__marker']}>{iconChecked}</div>\n </div>\n )}\n </Tappable>\n );\n};\n\nexport { ActionSheetItem };\n"],"names":["React","Icon20CheckCircleOn","Icon24CheckCircleOn","classNames","noop","useAdaptivityWithJSMediaQueries","usePlatform","SizeType","Platform","ActionSheetContext","Tappable","Subhead","Text","ActionSheetItem","children","autoClose","mode","meta","subtitle","before","selectable","value","name","checked","defaultChecked","onChange","onClick","onImmediateClick","multiline","iconChecked","iconCheckedProp","className","restProps","platform","useContext","onItemClick","isDesktop","sizeY","COMPACT","Component","href","isRich","isCentered","IOS","Boolean","activeMode","undefined","div","weight","input","type","disabled"],"mappings":";;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,mBAAmB,EAAEC,mBAAmB,QAAQ,mBAAmB;AAC5E,SAASC,UAAU,EAAEC,IAAI,QAAQ,kBAAkB;AACnD,SAASC,+BAA+B,QAAQ,8CAA8C;AAC9F,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,QAAQ,QAAQ,qBAAqB;AAC9C,SAASC,kBAAkB,QAAqC,oCAAoC;AACpG,SAASC,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,OAAO,QAAQ,gCAAgC;AACxD,SAASC,IAAI,QAAQ,0BAA0B;AA+B/C;;CAEC,GACD,IAAMC,kBAAkB,iBAmBI;QAlB1BC,kBAAAA,UACAC,mBAAAA,gCACAC,MAAAA,gCAAO,yBACPC,cAAAA,MACAC,kBAAAA,UACAC,gBAAAA,QACAC,oBAAAA,YACAC,eAAAA,OACAC,cAAAA,MACAC,iBAAAA,SACAC,wBAAAA,gBACAC,kBAAAA,UACAC,iBAAAA,SACAC,0BAAAA,4CACAC,WAAAA,0CAAY,KAAK,qBACjBC,AAAaC,yBAAbD,aACAE,mBAAAA,WACGC;QAjBHlB;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAE;;IAGA,IAAME,WAAW3B;IACjB,IACEN,oBAAAA,MAAMkC,UAAU,CAAsCzB,qDAAtDT,kBADMmC,aAAAA,yDAAc;eAAM/B;uCAAMgC,YAChCpC,kBADgCoC;IAElC,IAAM,AAAEC,QAAUhC,kCAAVgC;IAER,IAAMR,cACJC,mBACCO,CAAAA,UAAU9B,SAAS+B,OAAO,iBAAG,oBAACrC,2CAAyB,oBAACC,0BAAsB,AAAD;IAEhF,IAAIqC,YAA+BP,UAAUQ,IAAI,GAAG,MAAM,KAAK;IAE/D,IAAIpB,YAAY;QACdmB,YAAY;IACd,CAAC;IAED,IAAME,SAASvB,YAAYD,QAAQG;IACnC,IAAMsB,aAAa,CAACD,UAAU,CAACtB,UAAUc,aAAazB,SAASmC,GAAG;IAElE,qBACE,oBAACjC;QACC6B,WAAWA;OACPP;QACJN,SAASN,aAAaM,UAAUS,YAAYT,SAASC,kBAAkBiB,QAAQ7B,WAAW;QAC1F8B,YAAYZ,aAAazB,SAASmC,GAAG,mCAAuCG,SAAS;QACrFf,WAAW5B,kCAET8B,aAAazB,SAASmC,GAAG,gCACzB3B,SAAS,gDACTA,SAAS,0DACTqB,UAAU9B,SAAS+B,OAAO,0CAC1BG,uCACAL,6CACAL;QAGDZ,wBAAU,oBAAC4B;QAAIhB,SAAS;OAAsCZ,uBAC/D,oBAAC4B;QACChB,WAAW5B,6CAET,CAACyB;qBAGH,oBAACmB;QACChB,WAAW5B,2CAETuC;qBAGF,oBAAC9B;QACCoC,QAAQhC,SAAS,WAAW,MAAM8B,SAAS;QAC3Cf,SAAS;OAERjB,WAEFG,sBAAQ,oBAACL;QAAKmB,SAAS;OAAoCd,QAE7DC,0BAAY,oBAACP;QAAQoB,SAAS;OAAwCb,YAExEE,4BACC,oBAAC2B;QAAIhB,SAAS;qBACZ,oBAACkB;QACCC,MAAK;QACLnB,SAAS;QACTT,MAAMA;QACND,OAAOA;QACPI,UAAUA;QACVC,SAASS,YAAY/B,MAAMA,MAAMwC,QAAQ7B;QACzCS,gBAAgBA;QAChBD,SAASA;QACT4B,UAAUnB,UAAUmB,QAAQ;sBAE9B,oBAACJ;QAAIhB,SAAS;OAAsCF;AAK9D;AAEA,SAAShB,eAAe,GAAG"}
1
+ {"version":3,"sources":["../../../src/components/ActionSheetItem/ActionSheetItem.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Icon20CheckCircleOn, Icon24CheckCircleOn } from '@vkontakte/icons';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { useAdaptivityWithJSMediaQueries } from '../../hooks/useAdaptivityWithJSMediaQueries';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { SizeType } from '../../lib/adaptivity';\nimport { Platform } from '../../lib/platform';\nimport { ActionSheetContext, type ActionSheetContextType } from '../ActionSheet/ActionSheetContext';\nimport { Tappable } from '../Tappable/Tappable';\nimport { Subhead } from '../Typography/Subhead/Subhead';\nimport { Text } from '../Typography/Text/Text';\nimport { Title } from '../Typography/Title/Title';\nimport styles from './ActionSheetItem.module.css';\n\nexport interface ActionSheetItemProps\n extends React.HTMLAttributes<HTMLElement>,\n React.AnchorHTMLAttributes<HTMLElement>,\n Pick<React.InputHTMLAttributes<HTMLInputElement>, 'name' | 'checked' | 'value'> {\n mode?: 'default' | 'destructive' | 'cancel';\n before?: React.ReactNode;\n meta?: React.ReactNode;\n subtitle?: React.ReactNode;\n autoClose?: boolean;\n selectable?: boolean;\n disabled?: boolean;\n /**\n * Все текстовые элементы при необходимости занимают несколько строк\n */\n multiline?: boolean;\n /**\n * Если autoClose === true, onClick будет вызван после завершения анимации скрытия и после вызова onClose.\n * Из этого следует, что в объекте события значения полей типа `currentTarget` будут не определены.\n * Если вам нужен объект события именно на момент клика, используйте `onImmediateClick`.\n */\n onClick?: React.MouseEventHandler<HTMLElement>;\n onImmediateClick?: React.MouseEventHandler<HTMLElement>;\n /**\n * Иконка для `checked` режима.\n */\n iconChecked?: React.ReactNode;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ActionSheetItem\n */\nconst ActionSheetItem = ({\n children,\n autoClose,\n mode = 'default',\n meta,\n subtitle,\n before,\n selectable,\n value,\n name,\n checked,\n defaultChecked,\n onChange,\n onClick,\n onImmediateClick,\n multiline = false,\n iconChecked: iconCheckedProp,\n className,\n ...restProps\n}: ActionSheetItemProps) => {\n const platform = usePlatform();\n const { onItemClick = () => noop, isDesktop } =\n React.useContext<ActionSheetContextType<HTMLElement>>(ActionSheetContext);\n const { sizeY } = useAdaptivityWithJSMediaQueries();\n\n const iconChecked =\n iconCheckedProp ||\n (sizeY === SizeType.COMPACT ? <Icon20CheckCircleOn /> : <Icon24CheckCircleOn />);\n\n let Component: React.ElementType = restProps.href ? 'a' : 'div';\n\n if (selectable) {\n Component = 'label';\n }\n\n const isRich = subtitle || meta || selectable;\n const isCentered = !isRich && !before && platform === Platform.IOS;\n\n return (\n <Tappable\n Component={Component}\n {...restProps}\n onClick={selectable ? onClick : onItemClick(onClick, onImmediateClick, Boolean(autoClose))}\n activeMode={platform === Platform.IOS ? styles['ActionSheetItem--active'] : undefined}\n className={classNames(\n styles['ActionSheetItem'],\n platform === Platform.IOS && styles['ActionSheetItem--ios'],\n mode === 'cancel' && styles['ActionSheetItem--mode-cancel'],\n mode === 'destructive' && styles['ActionSheetItem--mode-destructive'],\n sizeY === SizeType.COMPACT && styles['ActionSheetItem--sizeY-compact'],\n isRich && styles['ActionSheetItem--rich'],\n isDesktop && styles['ActionSheetItem--desktop'],\n selectable && styles['ActionSheetItem--selectable'],\n className,\n )}\n >\n {before && <div className={styles['ActionSheetItem__before']}>{before}</div>}\n <div\n className={classNames(\n styles['ActionSheetItem__container'],\n !multiline && styles['ActionSheetItem--ellipsis'],\n )}\n >\n <div\n className={classNames(\n styles['ActionSheetItem__content'],\n isCentered && styles['ActionSheetItem--centered'],\n )}\n >\n {platform === Platform.IOS ? (\n <Title\n className={styles['ActionSheetItem__children']}\n weight={mode === 'cancel' ? '2' : '3'}\n level={isCentered ? '2' : '3'}\n >\n {children}\n </Title>\n ) : (\n <Text className={styles['ActionSheetItem__children']}>{children}</Text>\n )}\n {meta && <Text className={styles['ActionSheetItem__meta']}>{meta}</Text>}\n </div>\n {subtitle && <Subhead className={styles['ActionSheetItem__subtitle']}>{subtitle}</Subhead>}\n </div>\n {selectable && (\n <div className={styles['ActionSheetItem__after']}>\n <input\n type=\"radio\"\n className={styles['ActionSheetItem__radio']}\n name={name}\n value={value}\n onChange={onChange}\n onClick={onItemClick(noop, noop, Boolean(autoClose))}\n defaultChecked={defaultChecked}\n checked={checked}\n disabled={restProps.disabled}\n />\n <div className={styles['ActionSheetItem__marker']}>{iconChecked}</div>\n </div>\n )}\n </Tappable>\n );\n};\n\nexport { ActionSheetItem };\n"],"names":["React","Icon20CheckCircleOn","Icon24CheckCircleOn","classNames","noop","useAdaptivityWithJSMediaQueries","usePlatform","SizeType","Platform","ActionSheetContext","Tappable","Subhead","Text","Title","ActionSheetItem","children","autoClose","mode","meta","subtitle","before","selectable","value","name","checked","defaultChecked","onChange","onClick","onImmediateClick","multiline","iconChecked","iconCheckedProp","className","restProps","platform","useContext","onItemClick","isDesktop","sizeY","COMPACT","Component","href","isRich","isCentered","IOS","Boolean","activeMode","undefined","div","weight","level","input","type","disabled"],"mappings":"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"}
@@ -44,14 +44,14 @@ import { Title } from "../Typography/Title/Title";
44
44
  }, before), /*#__PURE__*/ React.createElement("div", {
45
45
  className: "vkuiBanner__content"
46
46
  }, hasReactNode(header) && /*#__PURE__*/ React.createElement(HeaderTypography, {
47
- Component: "span",
48
- className: "vkuiBanner__header",
47
+ Component: "p",
49
48
  weight: "2",
50
49
  level: size === "m" ? "2" : "1"
51
50
  }, header), hasReactNode(subheader) && /*#__PURE__*/ React.createElement(SubheaderTypography, {
52
- Component: "span",
51
+ Component: "p",
53
52
  className: "vkuiBanner__subheader"
54
53
  }, subheader), hasReactNode(text) && /*#__PURE__*/ React.createElement(Text, {
54
+ Component: "p",
55
55
  className: "vkuiBanner__text"
56
56
  }, text), hasReactNode(actions) && React.Children.count(actions) > 0 && /*#__PURE__*/ React.createElement("div", {
57
57
  className: "vkuiBanner__actions"
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Banner/Banner.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n Icon24Cancel,\n Icon24Chevron,\n Icon24DismissDark,\n Icon24DismissSubstract,\n} from '@vkontakte/icons';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { Platform } from '../../lib/platform';\nimport { HasRootRef } from '../../types';\nimport { IconButton } from '../IconButton/IconButton';\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 React.HTMLAttributes<HTMLDivElement>, HasRootRef<HTMLElement> {\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 * Заголовок. <br />\n * При использовании этого свойства рекомендуется не указывать `text`.\n */\n header?: React.ReactNode;\n /**\n * Подзаголовок. <br />\n * При использовании этого свойства рекомендуется не указывать `text`.\n */\n subheader?: React.ReactNode;\n /**\n * Текст баннера. <br />\n * Это свойство следует использовать без указания `header` и `subheader`.\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 * @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 className,\n getRootRef,\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 : Icon24DismissSubstract;\n\n const content = (\n <React.Fragment>\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\n Component=\"span\"\n className={styles['Banner__header']}\n weight=\"2\"\n level={size === 'm' ? '2' : '1'}\n >\n {header}\n </HeaderTypography>\n )}\n {hasReactNode(subheader) && (\n <SubheaderTypography Component=\"span\" className={styles['Banner__subheader']}>\n {subheader}\n </SubheaderTypography>\n )}\n {hasReactNode(text) && <Text className={styles['Banner__text']}>{text}</Text>}\n {hasReactNode(actions) && React.Children.count(actions) > 0 && (\n <div className={styles['Banner__actions']}>{actions}</div>\n )}\n </div>\n </React.Fragment>\n );\n\n return (\n <section\n {...restProps}\n className={classNames(\n styles['Banner'],\n platform === Platform.IOS && styles['Banner--ios'],\n mode === 'image' && styles['Banner--mode-image'],\n {\n s: styles['Banner--size-s'],\n m: styles['Banner--size-m'],\n }[size],\n mode === 'image' && imageTheme === 'dark' && styles['Banner--inverted'],\n className,\n )}\n ref={getRootRef}\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 />\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 </section>\n );\n};\n"],"names":["React","Icon24Cancel","Icon24Chevron","Icon24DismissDark","Icon24DismissSubstract","classNames","hasReactNode","usePlatform","Platform","IconButton","Tappable","Headline","Subhead","Text","Title","Banner","mode","imageTheme","size","before","asideMode","header","subheader","text","children","background","actions","onDismiss","dismissLabel","className","getRootRef","restProps","platform","HeaderTypography","SubheaderTypography","IconDismissIOS","content","Fragment","div","aria-hidden","Component","weight","level","Children","count","section","IOS","s","m","ref","activeMode","role","aria-label","onClick","hoverMode","hasActive"],"mappings":";;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SACEC,YAAY,EACZC,aAAa,EACbC,iBAAiB,EACjBC,sBAAsB,QACjB,mBAAmB;AAC1B,SAASC,UAAU,EAAEC,YAAY,QAAQ,kBAAkB;AAC3D,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,QAAQ,QAAQ,qBAAqB;AAE9C,SAASC,UAAU,QAAQ,2BAA2B;AACtD,SAASC,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,QAAQ,QAAQ,kCAAkC;AAC3D,SAASC,OAAO,QAAQ,gCAAgC;AACxD,SAASC,IAAI,QAAQ,0BAA0B;AAC/C,SAASC,KAAK,QAAQ,4BAA4B;AAyElD;;CAEC,GACD,OAAO,IAAMC,SAAS,iBAiBH;6BAhBjBC,MAAAA,gCAAO,iDACPC,YAAAA,4CAAa,iDACbC,MAAAA,gCAAO,mBACPC,gBAAAA,QACAC,mBAAAA,WACAC,gBAAAA,QACAC,mBAAAA,WACAC,cAAAA,MACAC,kBAAAA,UACAC,oBAAAA,YACAC,iBAAAA,SACAC,mBAAAA,wCACAC,cAAAA,gDAAe,gCACfC,mBAAAA,WACAC,oBAAAA,YACGC;QAfHf;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,IAAME,WAAWzB;IAEjB,IAAM0B,mBAAmBf,SAAS,MAAMJ,QAAQH,QAAQ;IACxD,IAAMuB,sBAAsBhB,SAAS,MAAML,OAAOD,OAAO;IAEzD,IAAMuB,iBAAiBnB,SAAS,UAAUb,oBAAoBC,sBAAsB;IAEpF,IAAMgC,wBACJ,oBAACpC,MAAMqC,QAAQ,QACZrB,SAAS,WAAWS,4BACnB,oBAACa;QAAIC,eAAAA,IAAW;QAACV,SAAS;OACvBJ,aAIJN,wBAAU,oBAACmB;QAAIT,SAAS;OAA6BV,uBAEtD,oBAACmB;QAAIT,SAAS;OACXvB,aAAae,yBACZ,oBAACY;QACCO,WAAU;QACVX,SAAS;QACTY,QAAO;QACPC,OAAOxB,SAAS,MAAM,MAAM,GAAG;OAE9BG,SAGJf,aAAagB,4BACZ,oBAACY;QAAoBM,WAAU;QAAOX,SAAS;OAC5CP,YAGJhB,aAAaiB,uBAAS,oBAACV;QAAKgB,SAAS;OAA2BN,OAChEjB,aAAaoB,YAAY1B,MAAM2C,QAAQ,CAACC,KAAK,CAAClB,WAAW,mBACxD,oBAACY;QAAIT,SAAS;OAA8BH;IAMpD,qBACE,oBAACmB,mDACKd;QACJF,WAAWxB,yBAET2B,aAAaxB,SAASsC,GAAG,uBACzB9B,SAAS,qCACT;YACE+B,CAAC;YACDC,CAAC;QACH,CAAC,CAAC9B,KAAK,EACPF,SAAS,WAAWC,eAAe,kCACnCY;QAEFoB,KAAKnB;QAEJV,cAAc,yBACb,oBAACV;QACCmB,SAAS;QACTqB,YAAYlB,aAAaxB,SAASsC,GAAG,GAAG,YAAY,YAAY;QAChEK,MAAK;OAEJf,uBAED,oBAACE;QAAIT,SAAS;qBACZ,oBAAC3B,uCAIL,oBAACoC;QAAIT,SAAS;OACXO,SAEAhB,cAAc,2BACb,oBAACkB;QAAIT,SAAS;qBACZ,oBAACpB;QACC2C,cAAYxB;QACZC,SAAS;QACTwB,SAAS1B;QACT2B,WAAU;QACVC,WAAW,KAAK;OAEfvB,aAAaxB,SAASsC,GAAG,iBAAG,oBAACX,sCAAoB,oBAAClC,mBAAe,GAK3E;AAGP,EAAE"}
1
+ {"version":3,"sources":["../../../src/components/Banner/Banner.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n Icon24Cancel,\n Icon24Chevron,\n Icon24DismissDark,\n Icon24DismissSubstract,\n} from '@vkontakte/icons';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { Platform } from '../../lib/platform';\nimport { HasRootRef } from '../../types';\nimport { IconButton } from '../IconButton/IconButton';\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 React.HTMLAttributes<HTMLDivElement>, HasRootRef<HTMLElement> {\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 * Заголовок. <br />\n * При использовании этого свойства рекомендуется не указывать `text`.\n */\n header?: React.ReactNode;\n /**\n * Подзаголовок. <br />\n * При использовании этого свойства рекомендуется не указывать `text`.\n */\n subheader?: React.ReactNode;\n /**\n * Текст баннера. <br />\n * Это свойство следует использовать без указания `header` и `subheader`.\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 * @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 className,\n getRootRef,\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 : Icon24DismissSubstract;\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 <section\n {...restProps}\n className={classNames(\n styles['Banner'],\n platform === Platform.IOS && styles['Banner--ios'],\n mode === 'image' && styles['Banner--mode-image'],\n {\n s: styles['Banner--size-s'],\n m: styles['Banner--size-m'],\n }[size],\n mode === 'image' && imageTheme === 'dark' && styles['Banner--inverted'],\n className,\n )}\n ref={getRootRef}\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 />\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 </section>\n );\n};\n"],"names":["React","Icon24Cancel","Icon24Chevron","Icon24DismissDark","Icon24DismissSubstract","classNames","hasReactNode","usePlatform","Platform","IconButton","Tappable","Headline","Subhead","Text","Title","Banner","mode","imageTheme","size","before","asideMode","header","subheader","text","children","background","actions","onDismiss","dismissLabel","className","getRootRef","restProps","platform","HeaderTypography","SubheaderTypography","IconDismissIOS","content","div","aria-hidden","Component","weight","level","Children","count","section","IOS","s","m","ref","activeMode","role","aria-label","onClick","hoverMode","hasActive"],"mappings":";;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SACEC,YAAY,EACZC,aAAa,EACbC,iBAAiB,EACjBC,sBAAsB,QACjB,mBAAmB;AAC1B,SAASC,UAAU,EAAEC,YAAY,QAAQ,kBAAkB;AAC3D,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,QAAQ,QAAQ,qBAAqB;AAE9C,SAASC,UAAU,QAAQ,2BAA2B;AACtD,SAASC,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,QAAQ,QAAQ,kCAAkC;AAC3D,SAASC,OAAO,QAAQ,gCAAgC;AACxD,SAASC,IAAI,QAAQ,0BAA0B;AAC/C,SAASC,KAAK,QAAQ,4BAA4B;AAyElD;;CAEC,GACD,OAAO,IAAMC,SAAS,iBAiBH;6BAhBjBC,MAAAA,gCAAO,iDACPC,YAAAA,4CAAa,iDACbC,MAAAA,gCAAO,mBACPC,gBAAAA,QACAC,mBAAAA,WACAC,gBAAAA,QACAC,mBAAAA,WACAC,cAAAA,MACAC,kBAAAA,UACAC,oBAAAA,YACAC,iBAAAA,SACAC,mBAAAA,wCACAC,cAAAA,gDAAe,gCACfC,mBAAAA,WACAC,oBAAAA,YACGC;QAfHf;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,IAAME,WAAWzB;IAEjB,IAAM0B,mBAAmBf,SAAS,MAAMJ,QAAQH,QAAQ;IACxD,IAAMuB,sBAAsBhB,SAAS,MAAML,OAAOD,OAAO;IAEzD,IAAMuB,iBAAiBnB,SAAS,UAAUb,oBAAoBC,sBAAsB;IAEpF,IAAMgC,wBACJ,0CACGpB,SAAS,WAAWS,4BACnB,oBAACY;QAAIC,eAAAA,IAAW;QAACT,SAAS;OACvBJ,aAIJN,wBAAU,oBAACkB;QAAIR,SAAS;OAA6BV,uBAEtD,oBAACkB;QAAIR,SAAS;OACXvB,aAAae,yBACZ,oBAACY;QAAiBM,WAAU;QAAIC,QAAO;QAAIC,OAAOvB,SAAS,MAAM,MAAM,GAAG;OACvEG,SAGJf,aAAagB,4BACZ,oBAACY;QAAoBK,WAAU;QAAIV,SAAS;OACzCP,YAGJhB,aAAaiB,uBACZ,oBAACV;QAAK0B,WAAU;QAAIV,SAAS;OAC1BN,OAGJjB,aAAaoB,YAAY1B,MAAM0C,QAAQ,CAACC,KAAK,CAACjB,WAAW,mBACxD,oBAACW;QAAIR,SAAS;OAA8BH;IAMpD,qBACE,oBAACkB,mDACKb;QACJF,WAAWxB,yBAET2B,aAAaxB,SAASqC,GAAG,uBACzB7B,SAAS,qCACT;YACE8B,CAAC;YACDC,CAAC;QACH,CAAC,CAAC7B,KAAK,EACPF,SAAS,WAAWC,eAAe,kCACnCY;QAEFmB,KAAKlB;QAEJV,cAAc,yBACb,oBAACV;QACCmB,SAAS;QACToB,YAAYjB,aAAaxB,SAASqC,GAAG,GAAG,YAAY,YAAY;QAChEK,MAAK;OAEJd,uBAED,oBAACC;QAAIR,SAAS;qBACZ,oBAAC3B,uCAIL,oBAACmC;QAAIR,SAAS;OACXO,SAEAhB,cAAc,2BACb,oBAACiB;QAAIR,SAAS;qBACZ,oBAACpB;QACC0C,cAAYvB;QACZC,SAAS;QACTuB,SAASzB;QACT0B,WAAU;QACVC,WAAW,KAAK;OAEftB,aAAaxB,SAASqC,GAAG,iBAAG,oBAACV,sCAAoB,oBAAClC,mBAAe,GAK3E;AAGP,EAAE"}
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
2
  import { DraggableProps } from '../useDraggable';
3
- type CellDraggerProps = DraggableProps & React.HTMLAttributes<HTMLElement>;
4
- export declare const CellDragger: ({ onDragStart, onDragMove, onDragEnd, className, ...restProps }: CellDraggerProps) => JSX.Element;
3
+ type CellDraggerProps = DraggableProps & Omit<React.HTMLAttributes<HTMLElement>, keyof DraggableProps>;
4
+ export declare const CellDragger: ({ onDragStart, onDragMove, onDragEnd, onClick, className, ...restProps }: CellDraggerProps) => JSX.Element;
5
5
  export {};
@@ -7,22 +7,26 @@ import { usePlatform } from "../../../hooks/usePlatform";
7
7
  import { Platform } from "../../../lib/platform";
8
8
  import { Touch } from "../../Touch/Touch";
9
9
  export var CellDragger = function(_param) {
10
- var onDragStart = _param.onDragStart, onDragMove = _param.onDragMove, onDragEnd = _param.onDragEnd, className = _param.className, restProps = _object_without_properties(_param, [
10
+ var onDragStart = _param.onDragStart, onDragMove = _param.onDragMove, onDragEnd = _param.onDragEnd, onClick = _param.onClick, className = _param.className, restProps = _object_without_properties(_param, [
11
11
  "onDragStart",
12
12
  "onDragMove",
13
13
  "onDragEnd",
14
+ "onClick",
14
15
  "className"
15
16
  ]);
16
17
  var platform = usePlatform();
17
- var onClick = React.useCallback(function(e) {
18
- e.preventDefault();
19
- }, []);
18
+ var handleClick = function(event) {
19
+ event.preventDefault();
20
+ if (onClick) {
21
+ onClick(event);
22
+ }
23
+ };
20
24
  return /*#__PURE__*/ React.createElement(Touch, _object_spread({
21
25
  className: classNames("vkuiCellDragger", className),
22
26
  onStart: onDragStart,
23
27
  onMoveY: onDragMove,
24
28
  onEnd: onDragEnd,
25
- onClick: onClick
29
+ onClick: handleClick
26
30
  }, restProps), platform === Platform.IOS ? /*#__PURE__*/ React.createElement(Icon24ReorderIos, null) : /*#__PURE__*/ React.createElement(Icon24Reorder, null));
27
31
  };
28
32
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Cell/CellDragger/CellDragger.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Icon24Reorder, Icon24ReorderIos } from '@vkontakte/icons';\nimport { classNames } from '@vkontakte/vkjs';\nimport { usePlatform } from '../../../hooks/usePlatform';\nimport { Platform } from '../../../lib/platform';\nimport { Touch } from '../../Touch/Touch';\nimport { DraggableProps } from '../useDraggable';\nimport styles from './CellDragger.module.css';\n\ntype CellDraggerProps = DraggableProps & React.HTMLAttributes<HTMLElement>;\n\nexport const CellDragger = ({\n onDragStart,\n onDragMove,\n onDragEnd,\n className,\n ...restProps\n}: CellDraggerProps) => {\n const platform = usePlatform();\n\n const onClick = React.useCallback((e: React.MouseEvent) => {\n e.preventDefault();\n }, []);\n\n return (\n <Touch\n className={classNames(styles['CellDragger'], className)}\n onStart={onDragStart}\n onMoveY={onDragMove}\n onEnd={onDragEnd}\n onClick={onClick}\n {...restProps}\n >\n {platform === Platform.IOS ? <Icon24ReorderIos /> : <Icon24Reorder />}\n </Touch>\n );\n};\n"],"names":["React","Icon24Reorder","Icon24ReorderIos","classNames","usePlatform","Platform","Touch","CellDragger","onDragStart","onDragMove","onDragEnd","className","restProps","platform","onClick","useCallback","e","preventDefault","onStart","onMoveY","onEnd","IOS"],"mappings":";;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,aAAa,EAAEC,gBAAgB,QAAQ,mBAAmB;AACnE,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,WAAW,QAAQ,6BAA6B;AACzD,SAASC,QAAQ,QAAQ,wBAAwB;AACjD,SAASC,KAAK,QAAQ,oBAAoB;AAM1C,OAAO,IAAMC,cAAc,iBAMH;QALtBC,qBAAAA,aACAC,oBAAAA,YACAC,mBAAAA,WACAC,mBAAAA,WACGC;QAJHJ;QACAC;QACAC;QACAC;;IAGA,IAAME,WAAWT;IAEjB,IAAMU,UAAUd,MAAMe,WAAW,CAAC,SAACC,GAAwB;QACzDA,EAAEC,cAAc;IAClB,GAAG,EAAE;IAEL,qBACE,oBAACX;QACCK,WAAWR,8BAAkCQ;QAC7CO,SAASV;QACTW,SAASV;QACTW,OAAOV;QACPI,SAASA;OACLF,YAEHC,aAAaR,SAASgB,GAAG,iBAAG,oBAACnB,wCAAsB,oBAACD,oBAAgB;AAG3E,EAAE"}
1
+ {"version":3,"sources":["../../../../src/components/Cell/CellDragger/CellDragger.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Icon24Reorder, Icon24ReorderIos } from '@vkontakte/icons';\nimport { classNames } from '@vkontakte/vkjs';\nimport { usePlatform } from '../../../hooks/usePlatform';\nimport { Platform } from '../../../lib/platform';\nimport { Touch } from '../../Touch/Touch';\nimport { DraggableProps } from '../useDraggable';\nimport styles from './CellDragger.module.css';\n\ntype CellDraggerProps = DraggableProps &\n Omit<React.HTMLAttributes<HTMLElement>, keyof DraggableProps>;\n\nexport const CellDragger = ({\n onDragStart,\n onDragMove,\n onDragEnd,\n onClick,\n className,\n ...restProps\n}: CellDraggerProps) => {\n const platform = usePlatform();\n\n const handleClick = (event: React.MouseEvent<HTMLElement>) => {\n event.preventDefault();\n if (onClick) {\n onClick(event);\n }\n };\n\n return (\n <Touch\n className={classNames(styles['CellDragger'], className)}\n onStart={onDragStart}\n onMoveY={onDragMove}\n onEnd={onDragEnd}\n onClick={handleClick}\n {...restProps}\n >\n {platform === Platform.IOS ? <Icon24ReorderIos /> : <Icon24Reorder />}\n </Touch>\n );\n};\n"],"names":["React","Icon24Reorder","Icon24ReorderIos","classNames","usePlatform","Platform","Touch","CellDragger","onDragStart","onDragMove","onDragEnd","onClick","className","restProps","platform","handleClick","event","preventDefault","onStart","onMoveY","onEnd","IOS"],"mappings":";;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,aAAa,EAAEC,gBAAgB,QAAQ,mBAAmB;AACnE,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,WAAW,QAAQ,6BAA6B;AACzD,SAASC,QAAQ,QAAQ,wBAAwB;AACjD,SAASC,KAAK,QAAQ,oBAAoB;AAO1C,OAAO,IAAMC,cAAc,iBAOH;QANtBC,qBAAAA,aACAC,oBAAAA,YACAC,mBAAAA,WACAC,iBAAAA,SACAC,mBAAAA,WACGC;QALHL;QACAC;QACAC;QACAC;QACAC;;IAGA,IAAME,WAAWV;IAEjB,IAAMW,cAAc,SAACC,OAAyC;QAC5DA,MAAMC,cAAc;QACpB,IAAIN,SAAS;YACXA,QAAQK;QACV,CAAC;IACH;IAEA,qBACE,oBAACV;QACCM,WAAWT,8BAAkCS;QAC7CM,SAASV;QACTW,SAASV;QACTW,OAAOV;QACPC,SAASI;OACLF,YAEHC,aAAaT,SAASgB,GAAG,iBAAG,oBAACnB,wCAAsB,oBAACD,oBAAgB;AAG3E,EAAE"}
@@ -2,9 +2,9 @@ import * as React from 'react';
2
2
  import { TouchEvent } from '../Touch/Touch';
3
3
  import { CellProps } from './Cell';
4
4
  export interface DraggableProps {
5
- onDragStart: () => void;
6
- onDragEnd: () => void;
7
- onDragMove: (e: TouchEvent) => void;
5
+ onDragStart(event: TouchEvent): void;
6
+ onDragEnd(event: TouchEvent): void;
7
+ onDragMove(event: TouchEvent): void;
8
8
  }
9
9
  interface UseDraggableProps extends DraggableProps {
10
10
  dragging: boolean;
@@ -8,12 +8,14 @@ export var useDraggable = function(param) {
8
8
  var _React_useState3 = _sliced_to_array(React.useState(0), 2), dragEndIndex = _React_useState3[0], setDragEndIndex = _React_useState3[1];
9
9
  var _React_useState4 = _sliced_to_array(React.useState(0), 2), dragShift = _React_useState4[0], setDragShift = _React_useState4[1];
10
10
  var _React_useState5 = _sliced_to_array(React.useState(undefined), 2), dragDirection = _React_useState5[0], setDragDirection = _React_useState5[1];
11
- var onDragStart = function() {
11
+ var onDragStart = function(event) {
12
12
  var _rootEl_parentElement;
13
13
  var rootEl = rootElRef.current;
14
14
  if (!rootEl) {
15
15
  return;
16
16
  }
17
+ event.originalEvent.stopPropagation();
18
+ event.originalEvent.preventDefault();
17
19
  setDragging(true);
18
20
  var _siblings = [];
19
21
  if ((_rootEl_parentElement = rootEl.parentElement) === null || _rootEl_parentElement === void 0 ? void 0 : _rootEl_parentElement.childNodes) {
@@ -25,14 +27,15 @@ export var useDraggable = function(param) {
25
27
  setSiblings(_siblings);
26
28
  setDragShift(0);
27
29
  };
28
- var onDragMove = function(e) {
29
- e.originalEvent.preventDefault();
30
+ var onDragMove = function(event) {
31
+ event.originalEvent.stopPropagation();
32
+ event.originalEvent.preventDefault();
30
33
  var rootEl = rootElRef.current;
31
34
  if (rootEl) {
32
- rootEl.style.transform = "translateY(".concat(e.shiftY, "px)");
35
+ rootEl.style.transform = "translateY(".concat(event.shiftY, "px)");
33
36
  var rootGesture = rootEl.getBoundingClientRect();
34
- setDragDirection(dragShift - e.shiftY < 0 ? "down" : "up");
35
- setDragShift(e.shiftY);
37
+ setDragDirection(dragShift - event.shiftY < 0 ? "down" : "up");
38
+ setDragShift(event.shiftY);
36
39
  setDragEndIndex(dragStartIndex);
37
40
  siblings.forEach(function(sibling, siblingIndex) {
38
41
  var siblingGesture = sibling.getBoundingClientRect();
@@ -67,7 +70,9 @@ export var useDraggable = function(param) {
67
70
  });
68
71
  }
69
72
  };
70
- var onDragEnd = function() {
73
+ var onDragEnd = function(event) {
74
+ event.originalEvent.stopPropagation();
75
+ event.originalEvent.preventDefault();
71
76
  var _ref = [
72
77
  dragStartIndex,
73
78
  dragEndIndex