@gravity-ui/page-constructor 4.3.0 → 4.3.12-alpha.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 (270) hide show
  1. package/README.md +4 -0
  2. package/build/cjs/blocks/CardLayout/CardLayout.d.ts +2 -2
  3. package/build/cjs/blocks/CardLayout/CardLayout.js +1 -1
  4. package/build/cjs/blocks/ContentLayout/schema.d.ts +38 -0
  5. package/build/cjs/blocks/Header/Header.css +0 -6
  6. package/build/cjs/blocks/Icons/Icons.js +7 -1
  7. package/build/cjs/blocks/Icons/schema.d.ts +162 -0
  8. package/build/cjs/blocks/Icons/schema.js +11 -0
  9. package/build/cjs/blocks/Slider/Arrow/Arrow.js +2 -1
  10. package/build/cjs/blocks/Slider/Slider.css +4 -1
  11. package/build/cjs/blocks/Slider/Slider.js +32 -6
  12. package/build/cjs/blocks/Slider/i18n/en.json +4 -0
  13. package/build/cjs/blocks/Slider/i18n/index.d.ts +2 -0
  14. package/build/cjs/blocks/Slider/i18n/index.js +8 -0
  15. package/build/cjs/blocks/Slider/i18n/ru.json +4 -0
  16. package/build/cjs/components/BackgroundImage/BackgroundImage.d.ts +1 -0
  17. package/build/cjs/components/BackgroundImage/BackgroundImage.js +5 -2
  18. package/build/cjs/components/BackgroundMedia/BackgroundMedia.d.ts +1 -1
  19. package/build/cjs/components/BackgroundMedia/BackgroundMedia.js +4 -3
  20. package/build/cjs/components/ButtonTabs/ButtonTabs.js +6 -1
  21. package/build/cjs/components/CardBase/CardBase.css +4 -4
  22. package/build/cjs/components/HTML/HTML.d.ts +5 -1
  23. package/build/cjs/components/HTML/HTML.js +3 -1
  24. package/build/cjs/components/Image/Image.js +7 -5
  25. package/build/cjs/components/Image/schema.d.ts +19 -0
  26. package/build/cjs/components/Image/schema.js +12 -1
  27. package/build/cjs/components/Link/Link.d.ts +2 -1
  28. package/build/cjs/components/Link/Link.js +4 -2
  29. package/build/cjs/components/Media/Image/Image.d.ts +3 -2
  30. package/build/cjs/components/Media/Image/Image.js +8 -5
  31. package/build/cjs/components/Media/Media.d.ts +2 -2
  32. package/build/cjs/components/Media/Media.js +9 -6
  33. package/build/cjs/components/Media/Video/Video.d.ts +2 -2
  34. package/build/cjs/components/Media/Video/Video.js +15 -6
  35. package/build/cjs/components/MetaInfo/MetaInfo.css +0 -2
  36. package/build/cjs/components/MetaInfo/MetaInfo.js +2 -1
  37. package/build/cjs/components/ReactPlayer/CustomBarControls.css +46 -14
  38. package/build/cjs/components/ReactPlayer/CustomBarControls.d.ts +4 -1
  39. package/build/cjs/components/ReactPlayer/CustomBarControls.js +33 -9
  40. package/build/cjs/components/ReactPlayer/ReactPlayer.css +12 -0
  41. package/build/cjs/components/ReactPlayer/ReactPlayer.js +49 -25
  42. package/build/cjs/components/ReactPlayer/i18n/en.json +4 -1
  43. package/build/cjs/components/ReactPlayer/i18n/ru.json +4 -1
  44. package/build/cjs/components/Table/Table.js +11 -5
  45. package/build/cjs/components/VideoBlock/VideoBlock.js +7 -6
  46. package/build/cjs/components/YFMWrapper/YFMWrapper.d.ts +4 -3
  47. package/build/cjs/components/YFMWrapper/YFMWrapper.js +3 -3
  48. package/build/cjs/constructor-items.d.ts +10 -3
  49. package/build/cjs/constructor-items.js +11 -1
  50. package/build/cjs/containers/Loadable/Loadable.js +2 -2
  51. package/build/cjs/containers/PageConstructor/PageConstructor.css +4 -0
  52. package/build/cjs/containers/PageConstructor/PageConstructor.d.ts +2 -1
  53. package/build/cjs/containers/PageConstructor/PageConstructor.js +10 -6
  54. package/build/cjs/containers/PageConstructor/components/ConstructorBlock/ConstructorBlock.css +38 -0
  55. package/build/cjs/containers/PageConstructor/components/ConstructorBlock/ConstructorBlock.js +3 -2
  56. package/build/cjs/context/innerContext/InnerContext.d.ts +3 -1
  57. package/build/cjs/context/innerContext/InnerContext.js +2 -0
  58. package/build/cjs/editor/components/AddBlock/AddBlock.css +1 -1
  59. package/build/cjs/editor/components/EditBlock/EditBlock.css +1 -0
  60. package/build/cjs/editor/components/Layout/Layout.css +2 -1
  61. package/build/cjs/editor/containers/Form/Form.css +14 -35
  62. package/build/cjs/editor/store/index.js +1 -1
  63. package/build/cjs/editor/styles/root.css +2 -1
  64. package/build/cjs/editor/utils/index.d.ts +1 -0
  65. package/build/cjs/grid/Col/Col.d.ts +2 -4
  66. package/build/cjs/icons/Mute.d.ts +2 -0
  67. package/build/cjs/icons/Mute.js +12 -0
  68. package/build/cjs/icons/MuteSmall.d.ts +2 -0
  69. package/build/cjs/icons/MuteSmall.js +15 -0
  70. package/build/cjs/icons/Unmute.d.ts +2 -0
  71. package/build/cjs/icons/Unmute.js +12 -0
  72. package/build/cjs/icons/UnmuteSmall.d.ts +2 -0
  73. package/build/cjs/icons/UnmuteSmall.js +17 -0
  74. package/build/cjs/icons/VideoControlPause.d.ts +2 -0
  75. package/build/cjs/icons/VideoControlPause.js +16 -0
  76. package/build/cjs/icons/VideoControlPlay.d.ts +2 -0
  77. package/build/cjs/icons/VideoControlPlay.js +12 -0
  78. package/build/cjs/models/constructor-items/blocks.d.ts +12 -5
  79. package/build/cjs/models/constructor-items/common.d.ts +16 -34
  80. package/build/cjs/models/constructor-items/common.js +6 -1
  81. package/build/cjs/models/constructor-items/sub-blocks.d.ts +4 -4
  82. package/build/cjs/models/constructor.d.ts +7 -1
  83. package/build/cjs/models/navigation.d.ts +1 -0
  84. package/build/cjs/models/navigation.js +2 -1
  85. package/build/cjs/navigation/components/MobileMenuButton/MobileMenuButton.js +1 -0
  86. package/build/cjs/navigation/components/NavigationItem/NavigationItem.css +1 -1
  87. package/build/cjs/navigation/components/NavigationItem/NavigationItem.js +4 -16
  88. package/build/cjs/navigation/components/NavigationItem/components/NavigationLink/NavigationLink.js +1 -1
  89. package/build/cjs/navigation/components/NavigationItem/index.d.ts +6 -0
  90. package/build/cjs/navigation/components/NavigationItem/index.js +14 -0
  91. package/build/cjs/navigation/components/NavigationListItem/NavigationListItem.js +1 -1
  92. package/build/cjs/navigation/components/NavigationPopup/NavigationPopup.js +1 -1
  93. package/build/cjs/navigation/components/SocialIcon/SocialIcon.js +2 -1
  94. package/build/cjs/schema/constants.d.ts +181 -78
  95. package/build/cjs/sub-blocks/BackgroundCard/BackgroundCard.js +2 -3
  96. package/build/cjs/sub-blocks/BackgroundCard/schema.d.ts +100 -0
  97. package/build/cjs/sub-blocks/BackgroundCard/schema.js +10 -0
  98. package/build/cjs/sub-blocks/Content/Content.d.ts +3 -1
  99. package/build/cjs/sub-blocks/Content/Content.js +7 -5
  100. package/build/cjs/sub-blocks/Content/ContentList/ContentList.d.ts +2 -1
  101. package/build/cjs/sub-blocks/Content/ContentList/ContentList.js +7 -5
  102. package/build/cjs/sub-blocks/HubspotForm/HubspotForm.css +2 -2
  103. package/build/cjs/sub-blocks/LayoutItem/LayoutItem.d.ts +1 -1
  104. package/build/cjs/sub-blocks/LayoutItem/LayoutItem.js +3 -3
  105. package/build/cjs/sub-blocks/LayoutItem/schema.d.ts +81 -0
  106. package/build/cjs/sub-blocks/LayoutItem/schema.js +10 -0
  107. package/build/cjs/sub-blocks/MediaCard/MediaCard.d.ts +1 -1
  108. package/build/cjs/sub-blocks/MediaCard/MediaCard.js +2 -2
  109. package/build/cjs/sub-blocks/MediaCard/schema.d.ts +81 -78
  110. package/build/cjs/sub-blocks/MediaCard/schema.js +11 -1
  111. package/build/cjs/sub-blocks/PriceDetailed/CombinedPriceDetailed/CombinedPriceDetailed.d.ts +2 -2
  112. package/build/cjs/sub-blocks/PriceDetailed/CombinedPriceDetailed/CombinedPriceDetailed.js +2 -2
  113. package/build/cjs/sub-blocks/PriceDetailed/SeparatePriceDetailed/SeparatePriceDetailed.js +7 -4
  114. package/build/cjs/sub-blocks/PriceDetailed/schema.js +11 -1
  115. package/build/cjs/sub-blocks/Quote/Quote.css +0 -3
  116. package/build/cjs/text-transform/common.d.ts +7 -2
  117. package/build/cjs/text-transform/common.js +8 -2
  118. package/build/cjs/text-transform/config.js +1 -1
  119. package/build/cjs/text-transform/transformers.d.ts +2 -0
  120. package/build/cjs/text-transform/transformers.js +11 -8
  121. package/build/cjs/utils/blocks.d.ts +3 -6
  122. package/build/cjs/utils/blocks.js +25 -16
  123. package/build/cjs/utils/cn.d.ts +3 -3
  124. package/build/cjs/utils/cn.js +4 -7
  125. package/build/esm/blocks/CardLayout/CardLayout.d.ts +2 -2
  126. package/build/esm/blocks/CardLayout/CardLayout.js +1 -1
  127. package/build/esm/blocks/ContentLayout/schema.d.ts +38 -0
  128. package/build/esm/blocks/Header/Header.css +0 -6
  129. package/build/esm/blocks/Icons/Icons.js +8 -2
  130. package/build/esm/blocks/Icons/schema.d.ts +162 -0
  131. package/build/esm/blocks/Icons/schema.js +11 -0
  132. package/build/esm/blocks/Slider/Arrow/Arrow.js +2 -1
  133. package/build/esm/blocks/Slider/Slider.css +4 -1
  134. package/build/esm/blocks/Slider/Slider.js +33 -7
  135. package/build/esm/blocks/Slider/i18n/en.json +4 -0
  136. package/build/esm/blocks/Slider/i18n/index.d.ts +2 -0
  137. package/build/esm/blocks/Slider/i18n/index.js +5 -0
  138. package/build/esm/blocks/Slider/i18n/ru.json +4 -0
  139. package/build/esm/components/BackgroundImage/BackgroundImage.d.ts +1 -0
  140. package/build/esm/components/BackgroundImage/BackgroundImage.js +5 -3
  141. package/build/esm/components/BackgroundMedia/BackgroundMedia.d.ts +1 -1
  142. package/build/esm/components/BackgroundMedia/BackgroundMedia.js +5 -4
  143. package/build/esm/components/ButtonTabs/ButtonTabs.js +6 -1
  144. package/build/esm/components/CardBase/CardBase.css +4 -4
  145. package/build/esm/components/HTML/HTML.d.ts +5 -1
  146. package/build/esm/components/HTML/HTML.js +3 -1
  147. package/build/esm/components/Image/Image.js +7 -5
  148. package/build/esm/components/Image/schema.d.ts +19 -0
  149. package/build/esm/components/Image/schema.js +12 -1
  150. package/build/esm/components/Link/Link.d.ts +2 -1
  151. package/build/esm/components/Link/Link.js +4 -2
  152. package/build/esm/components/Media/Image/Image.d.ts +3 -2
  153. package/build/esm/components/Media/Image/Image.js +8 -6
  154. package/build/esm/components/Media/Media.d.ts +2 -2
  155. package/build/esm/components/Media/Media.js +10 -7
  156. package/build/esm/components/Media/Video/Video.d.ts +2 -2
  157. package/build/esm/components/Media/Video/Video.js +16 -7
  158. package/build/esm/components/MetaInfo/MetaInfo.css +0 -2
  159. package/build/esm/components/MetaInfo/MetaInfo.js +2 -1
  160. package/build/esm/components/ReactPlayer/CustomBarControls.css +46 -14
  161. package/build/esm/components/ReactPlayer/CustomBarControls.d.ts +4 -1
  162. package/build/esm/components/ReactPlayer/CustomBarControls.js +34 -10
  163. package/build/esm/components/ReactPlayer/ReactPlayer.css +12 -0
  164. package/build/esm/components/ReactPlayer/ReactPlayer.js +52 -28
  165. package/build/esm/components/ReactPlayer/i18n/en.json +4 -1
  166. package/build/esm/components/ReactPlayer/i18n/ru.json +4 -1
  167. package/build/esm/components/Table/Table.js +11 -5
  168. package/build/esm/components/VideoBlock/VideoBlock.js +7 -6
  169. package/build/esm/components/YFMWrapper/YFMWrapper.d.ts +4 -3
  170. package/build/esm/components/YFMWrapper/YFMWrapper.js +3 -3
  171. package/build/esm/constructor-items.d.ts +10 -3
  172. package/build/esm/constructor-items.js +10 -1
  173. package/build/esm/containers/Loadable/Loadable.js +1 -1
  174. package/build/esm/containers/PageConstructor/PageConstructor.css +4 -0
  175. package/build/esm/containers/PageConstructor/PageConstructor.d.ts +2 -1
  176. package/build/esm/containers/PageConstructor/PageConstructor.js +12 -8
  177. package/build/esm/containers/PageConstructor/components/ConstructorBlock/ConstructorBlock.css +38 -0
  178. package/build/esm/containers/PageConstructor/components/ConstructorBlock/ConstructorBlock.d.ts +1 -0
  179. package/build/esm/containers/PageConstructor/components/ConstructorBlock/ConstructorBlock.js +4 -2
  180. package/build/esm/context/innerContext/InnerContext.d.ts +3 -1
  181. package/build/esm/context/innerContext/InnerContext.js +2 -0
  182. package/build/esm/editor/components/AddBlock/AddBlock.css +1 -1
  183. package/build/esm/editor/components/EditBlock/EditBlock.css +1 -0
  184. package/build/esm/editor/components/Layout/Layout.css +2 -1
  185. package/build/esm/editor/containers/Form/Form.css +14 -35
  186. package/build/esm/editor/store/index.js +2 -2
  187. package/build/esm/editor/styles/root.css +2 -1
  188. package/build/esm/editor/utils/index.d.ts +1 -0
  189. package/build/esm/grid/Col/Col.d.ts +2 -4
  190. package/build/esm/icons/Mute.d.ts +2 -0
  191. package/build/esm/icons/Mute.js +7 -0
  192. package/build/esm/icons/MuteSmall.d.ts +2 -0
  193. package/build/esm/icons/MuteSmall.js +10 -0
  194. package/build/esm/icons/Unmute.d.ts +2 -0
  195. package/build/esm/icons/Unmute.js +7 -0
  196. package/build/esm/icons/UnmuteSmall.d.ts +2 -0
  197. package/build/esm/icons/UnmuteSmall.js +12 -0
  198. package/build/esm/icons/VideoControlPause.d.ts +2 -0
  199. package/build/esm/icons/VideoControlPause.js +11 -0
  200. package/build/esm/icons/VideoControlPlay.d.ts +2 -0
  201. package/build/esm/icons/VideoControlPlay.js +7 -0
  202. package/build/esm/models/constructor-items/blocks.d.ts +12 -5
  203. package/build/esm/models/constructor-items/common.d.ts +16 -34
  204. package/build/esm/models/constructor-items/common.js +5 -0
  205. package/build/esm/models/constructor-items/sub-blocks.d.ts +4 -4
  206. package/build/esm/models/constructor.d.ts +7 -1
  207. package/build/esm/models/navigation.d.ts +1 -0
  208. package/build/esm/models/navigation.js +1 -0
  209. package/build/esm/navigation/components/MobileMenuButton/MobileMenuButton.js +1 -0
  210. package/build/esm/navigation/components/NavigationItem/NavigationItem.css +1 -1
  211. package/build/esm/navigation/components/NavigationItem/NavigationItem.js +5 -17
  212. package/build/esm/navigation/components/NavigationItem/components/NavigationLink/NavigationLink.js +1 -1
  213. package/build/esm/navigation/components/NavigationItem/index.d.ts +6 -0
  214. package/build/esm/navigation/components/NavigationItem/index.js +6 -0
  215. package/build/esm/navigation/components/NavigationListItem/NavigationListItem.js +1 -1
  216. package/build/esm/navigation/components/NavigationPopup/NavigationPopup.js +1 -1
  217. package/build/esm/navigation/components/SocialIcon/SocialIcon.js +2 -1
  218. package/build/esm/schema/constants.d.ts +181 -78
  219. package/build/esm/sub-blocks/BackgroundCard/BackgroundCard.js +2 -3
  220. package/build/esm/sub-blocks/BackgroundCard/schema.d.ts +100 -0
  221. package/build/esm/sub-blocks/BackgroundCard/schema.js +10 -0
  222. package/build/esm/sub-blocks/Content/Content.d.ts +3 -1
  223. package/build/esm/sub-blocks/Content/Content.js +7 -5
  224. package/build/esm/sub-blocks/Content/ContentList/ContentList.d.ts +2 -1
  225. package/build/esm/sub-blocks/Content/ContentList/ContentList.js +7 -5
  226. package/build/esm/sub-blocks/HubspotForm/HubspotForm.css +2 -2
  227. package/build/esm/sub-blocks/LayoutItem/LayoutItem.d.ts +1 -1
  228. package/build/esm/sub-blocks/LayoutItem/LayoutItem.js +3 -3
  229. package/build/esm/sub-blocks/LayoutItem/schema.d.ts +81 -0
  230. package/build/esm/sub-blocks/LayoutItem/schema.js +10 -0
  231. package/build/esm/sub-blocks/MediaCard/MediaCard.d.ts +1 -1
  232. package/build/esm/sub-blocks/MediaCard/MediaCard.js +2 -2
  233. package/build/esm/sub-blocks/MediaCard/schema.d.ts +81 -78
  234. package/build/esm/sub-blocks/MediaCard/schema.js +11 -1
  235. package/build/esm/sub-blocks/PriceDetailed/CombinedPriceDetailed/CombinedPriceDetailed.d.ts +2 -2
  236. package/build/esm/sub-blocks/PriceDetailed/CombinedPriceDetailed/CombinedPriceDetailed.js +2 -2
  237. package/build/esm/sub-blocks/PriceDetailed/SeparatePriceDetailed/SeparatePriceDetailed.js +8 -4
  238. package/build/esm/sub-blocks/PriceDetailed/schema.js +11 -1
  239. package/build/esm/sub-blocks/Quote/Quote.css +0 -3
  240. package/build/esm/text-transform/common.d.ts +7 -2
  241. package/build/esm/text-transform/common.js +7 -2
  242. package/build/esm/text-transform/config.js +1 -1
  243. package/build/esm/text-transform/transformers.d.ts +2 -0
  244. package/build/esm/text-transform/transformers.js +11 -8
  245. package/build/esm/utils/blocks.d.ts +3 -6
  246. package/build/esm/utils/blocks.js +21 -11
  247. package/build/esm/utils/cn.d.ts +3 -3
  248. package/build/esm/utils/cn.js +3 -4
  249. package/package.json +6 -6
  250. package/server/models/constructor-items/blocks.d.ts +12 -5
  251. package/server/models/constructor-items/common.d.ts +16 -34
  252. package/server/models/constructor-items/common.js +6 -1
  253. package/server/models/constructor-items/sub-blocks.d.ts +4 -4
  254. package/server/models/constructor.d.ts +7 -1
  255. package/server/models/navigation.d.ts +1 -0
  256. package/server/models/navigation.js +2 -1
  257. package/server/text-transform/common.d.ts +7 -2
  258. package/server/text-transform/common.js +10 -2
  259. package/server/text-transform/config.js +1 -1
  260. package/server/text-transform/transformers.d.ts +2 -0
  261. package/server/text-transform/transformers.js +11 -8
  262. package/server/utils/blocks.d.ts +3 -6
  263. package/server/utils/blocks.js +25 -16
  264. package/server/utils/cn.d.ts +3 -3
  265. package/server/utils/cn.js +4 -9
  266. package/styles/mixins.scss +4 -1
  267. package/styles/storybook/common.scss +2 -0
  268. package/styles/styles.css +4 -0
  269. package/styles/yfm.scss +7 -0
  270. package/widget/index.js +1 -1
@@ -2,6 +2,7 @@
2
2
  import { ButtonSize } from '@gravity-ui/uikit';
3
3
  import { GridColumnSize, GridColumnSizesType } from '../../grid/types';
4
4
  import { ThemeSupporting } from '../../utils';
5
+ import { AnalyticsEventsBase } from '../common';
5
6
  import { AnchorProps, Animatable, BackgroundImageProps, ButtonProps, ContentSize, ContentTextSize, ContentTheme, FileLinkProps, HeaderBreadCrumbsProps, HeaderImageSize, HeaderOffset, HeaderWidth, ImageDeviceProps, Justify, LegendTableMarkerType, LinkProps, MapProps, MediaDirection, MediaProps, TextSize, TextTheme, ThemedImage, ThemedMediaProps, ThemedMediaVideoProps, TitleItemBaseProps, TitleItemProps } from './common';
6
7
  import { BannerCardProps, SubBlock, SubBlockModels } from './sub-blocks';
7
8
  export declare enum BlockType {
@@ -32,6 +33,7 @@ export interface Childable {
32
33
  export interface BlockBaseProps {
33
34
  anchor?: AnchorProps;
34
35
  visible?: GridColumnSize;
36
+ /** @deprecated */
35
37
  resetPaddings?: boolean;
36
38
  qa?: string;
37
39
  }
@@ -189,6 +191,10 @@ export interface TableProps {
189
191
  legend?: string[];
190
192
  justify?: Justify[];
191
193
  marker?: LegendTableMarkerType;
194
+ /**
195
+ * Only as accessible name, not displayed explicitly
196
+ */
197
+ caption?: string;
192
198
  }
193
199
  export interface TableBlockProps {
194
200
  title: string;
@@ -236,14 +242,15 @@ export interface FilterBlockProps extends Animatable, LoadableChildren {
236
242
  colSizes?: GridColumnSizesType;
237
243
  centered?: boolean;
238
244
  }
245
+ export interface IconsBlockItemProps extends AnalyticsEventsBase {
246
+ url: string;
247
+ text: string;
248
+ src: string;
249
+ }
239
250
  export interface IconsBlockProps {
240
251
  title?: string;
241
252
  size?: 's' | 'm' | 'l';
242
- items: {
243
- url: string;
244
- text: string;
245
- src: string;
246
- }[];
253
+ items: IconsBlockItemProps[];
247
254
  }
248
255
  interface ContentLayoutBlockParams {
249
256
  size?: ContentSize;
@@ -1,4 +1,4 @@
1
- import { CSSProperties, ReactNode } from 'react';
1
+ import React, { CSSProperties, ReactNode } from 'react';
2
2
  import { ButtonView, ButtonProps as UikitButtonProps } from '@gravity-ui/uikit';
3
3
  import { ThemeSupporting } from '../../utils';
4
4
  import { AnalyticsEventsBase, ClassNameProps, PixelEventType, QAProps } from '../common';
@@ -25,6 +25,10 @@ export declare enum PlayButtonThemes {
25
25
  Blue = "blue",
26
26
  Grey = "grey"
27
27
  }
28
+ export declare enum CustomControlsType {
29
+ WithMuteButton = "with-mute-button",
30
+ WithPlayPauseButton = "with-play-pause-button"
31
+ }
28
32
  export declare enum MediaVideoType {
29
33
  Default = "default",
30
34
  Player = "player"
@@ -64,6 +68,9 @@ export interface Animatable {
64
68
  export interface Tabbable {
65
69
  tabIndex?: number;
66
70
  }
71
+ export interface Roleable {
72
+ role?: React.AriaRole;
73
+ }
67
74
  export interface Background {
68
75
  image?: string;
69
76
  color?: string;
@@ -107,7 +114,9 @@ export interface MediaVideoProps extends AnalyticsEventsBase {
107
114
  elapsedTime?: number;
108
115
  playButton?: PlayButtonProps;
109
116
  controls?: MediaVideoControlsType;
117
+ customControlsOptions?: CustomControlsOptions;
110
118
  metrika?: MetrikaVideo;
119
+ ariaLabel?: string;
111
120
  }
112
121
  export interface LinkProps extends AnalyticsEventsBase, Stylable, Tabbable {
113
122
  url: string;
@@ -129,7 +138,7 @@ export interface FileLinkProps extends ClassNameProps, Tabbable {
129
138
  onClick?: () => void;
130
139
  }
131
140
  export type ButtonTheme = ButtonView | 'github' | 'app-store' | 'google-play' | 'scale' | 'monochrome';
132
- export interface ButtonProps extends AnalyticsEventsBase, Pick<UikitButtonProps, 'size' | 'width'> {
141
+ export interface ButtonProps extends AnalyticsEventsBase, Pick<UikitButtonProps, 'size' | 'width' | 'extraProps'> {
133
142
  text: string;
134
143
  url: string;
135
144
  primary?: boolean;
@@ -145,23 +154,14 @@ export interface ButtonImageProps {
145
154
  position?: ButtonImagePosition;
146
155
  alt?: string;
147
156
  }
157
+ export interface CustomControlsOptions {
158
+ type?: CustomControlsType;
159
+ }
148
160
  export interface PlayButtonProps extends ClassNameProps {
149
161
  type?: PlayButtonType;
150
162
  theme?: PlayButtonThemes;
151
163
  text?: string;
152
164
  }
153
- export interface MediaVideoProps {
154
- src: string[];
155
- type?: MediaVideoType;
156
- loop?: LoopProps | boolean;
157
- muted?: boolean;
158
- autoplay?: boolean;
159
- elapsedTime?: number;
160
- playButton?: PlayButtonProps;
161
- controls?: MediaVideoControlsType;
162
- metrika?: MetrikaVideo;
163
- ariaLabel?: string;
164
- }
165
165
  export type ThemedMediaVideoProps = ThemeSupporting<MediaVideoProps>;
166
166
  export interface MediaComponentVideoProps extends AnalyticsEventsBase {
167
167
  video: MediaVideoProps;
@@ -186,7 +186,7 @@ export interface MediaComponentDataLensProps {
186
186
  export interface MediaProps extends Animatable, Partial<MediaComponentDataLensProps>, Partial<MediaComponentYoutubeProps>, Partial<MediaComponentImageProps>, Partial<MediaComponentVideoProps> {
187
187
  color?: string;
188
188
  }
189
- export interface BackgroundMediaProps extends MediaProps, Animatable {
189
+ export interface BackgroundMediaProps extends MediaProps, Animatable, QAProps {
190
190
  fullWidthMedia?: boolean;
191
191
  className?: string;
192
192
  mediaClassName?: string;
@@ -287,7 +287,7 @@ export interface PriceDetailsListProps {
287
287
  export interface PriceDetailsProps {
288
288
  items?: PriceDetailsSettingsProps[] | PriceDetailsListProps[];
289
289
  }
290
- export interface PriceItemProps extends PriceDetailsProps, PriceDescriptionProps {
290
+ export interface PriceItemProps extends PriceDetailsProps, PriceDescriptionProps, AnalyticsEventsBase {
291
291
  }
292
292
  export interface PriceFoldableDetailsProps {
293
293
  title: string;
@@ -312,24 +312,6 @@ export interface PriceDetailedProps extends CardBaseProps {
312
312
  foldable?: PriceFoldableDetailsProps;
313
313
  labelsDefaultText?: Record<PriceLabelColor, string>;
314
314
  }
315
- export interface PriceDetailedProps extends CardBaseProps {
316
- items: PriceItemProps[];
317
- description?: {
318
- titleSize?: TextSize;
319
- descriptionSize?: TextSize;
320
- titleColor?: PriceDescriptionColor;
321
- };
322
- details?: {
323
- titleSize?: TextSize;
324
- descriptionSize?: TextSize;
325
- };
326
- priceType?: PriceDetailsType;
327
- numberGroupItems?: 3 | 4 | 5;
328
- isCombined?: boolean;
329
- useMixedView?: boolean;
330
- foldable?: PriceFoldableDetailsProps;
331
- labelsDefaultText?: Record<PriceLabelColor, string>;
332
- }
333
315
  export interface AuthorProps extends QAProps {
334
316
  author: AuthorItem;
335
317
  className?: string;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MediaVideoControlsType = exports.MediaVideoType = exports.PlayButtonThemes = exports.PlayButtonType = exports.PriceLabelColor = exports.PriceDetailsType = exports.AuthorType = void 0;
3
+ exports.MediaVideoControlsType = exports.MediaVideoType = exports.CustomControlsType = exports.PlayButtonThemes = exports.PlayButtonType = exports.PriceLabelColor = exports.PriceDetailsType = exports.AuthorType = void 0;
4
4
  // enums
5
5
  var AuthorType;
6
6
  (function (AuthorType) {
@@ -30,6 +30,11 @@ var PlayButtonThemes;
30
30
  PlayButtonThemes["Blue"] = "blue";
31
31
  PlayButtonThemes["Grey"] = "grey";
32
32
  })(PlayButtonThemes = exports.PlayButtonThemes || (exports.PlayButtonThemes = {}));
33
+ var CustomControlsType;
34
+ (function (CustomControlsType) {
35
+ CustomControlsType["WithMuteButton"] = "with-mute-button";
36
+ CustomControlsType["WithPlayPauseButton"] = "with-play-pause-button";
37
+ })(CustomControlsType = exports.CustomControlsType || (exports.CustomControlsType = {}));
33
38
  var MediaVideoType;
34
39
  (function (MediaVideoType) {
35
40
  MediaVideoType["Default"] = "default";
@@ -71,13 +71,13 @@ export interface QuoteProps extends Themable, CardBaseProps {
71
71
  buttonText?: string;
72
72
  theme?: TextTheme;
73
73
  }
74
- export interface BackgroundCardProps extends CardBaseProps, Omit<ContentBlockProps, 'colSizes' | 'centered'> {
74
+ export interface BackgroundCardProps extends CardBaseProps, AnalyticsEventsBase, Omit<ContentBlockProps, 'colSizes' | 'centered'> {
75
75
  url?: string;
76
76
  background?: ThemeSupporting<ImageObjectProps>;
77
77
  paddingBottom?: 's' | 'm' | 'l' | 'xl';
78
78
  backgroundColor?: string;
79
79
  }
80
- export interface BasicCardProps extends CardBaseProps, Omit<ContentBlockProps, 'colSizes' | 'centered' | 'size' | 'theme'> {
80
+ export interface BasicCardProps extends CardBaseProps, AnalyticsEventsBase, Omit<ContentBlockProps, 'colSizes' | 'centered' | 'size' | 'theme'> {
81
81
  url: string;
82
82
  icon?: ImageProps;
83
83
  target?: string;
@@ -92,9 +92,9 @@ export interface BannerCardProps {
92
92
  theme?: TextTheme;
93
93
  button: Pick<ButtonProps, 'text' | 'url' | 'target'>;
94
94
  }
95
- export interface MediaCardProps extends MediaProps, CardBaseProps {
95
+ export interface MediaCardProps extends MediaProps, AnalyticsEventsBase, CardBaseProps {
96
96
  }
97
- export interface LayoutItemProps extends ClassNameProps {
97
+ export interface LayoutItemProps extends ClassNameProps, AnalyticsEventsBase {
98
98
  content: Omit<ContentBlockProps, 'colSizes' | 'centered' | 'size'>;
99
99
  media: MediaProps;
100
100
  metaInfo?: string[];
@@ -6,7 +6,12 @@ export interface PageData {
6
6
  export interface Menu {
7
7
  title: string;
8
8
  }
9
- export type ConstructorBlock = ConstructorItem | CustomBlock;
9
+ export type ConstructorBlock = (ConstructorItem | CustomBlock) & {
10
+ indent?: {
11
+ top?: string;
12
+ bottom?: string;
13
+ };
14
+ };
10
15
  export interface PageContent extends Animatable {
11
16
  blocks: ConstructorBlock[];
12
17
  menu?: Menu;
@@ -39,6 +44,7 @@ export interface CustomConfig {
39
44
  blocks?: CustomItems;
40
45
  subBlocks?: CustomItems;
41
46
  headers?: CustomItems;
47
+ navigation?: CustomItems;
42
48
  loadable?: LoadableConfig;
43
49
  decorators?: {
44
50
  block?: ((props: BlockDecorationProps) => React.ReactElement)[];
@@ -7,6 +7,7 @@ export declare enum NavigationItemType {
7
7
  Social = "social",
8
8
  GithubButton = "github-button"
9
9
  }
10
+ export declare const NavigationItemTypes: NavigationItemType[];
10
11
  export interface NavigationItemBase {
11
12
  text: string;
12
13
  icon?: ImageProps;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.NavigationGithubButtonIcon = exports.NavigationItemType = void 0;
3
+ exports.NavigationGithubButtonIcon = exports.NavigationItemTypes = exports.NavigationItemType = void 0;
4
4
  var NavigationItemType;
5
5
  (function (NavigationItemType) {
6
6
  NavigationItemType["Link"] = "link";
@@ -9,6 +9,7 @@ var NavigationItemType;
9
9
  NavigationItemType["Social"] = "social";
10
10
  NavigationItemType["GithubButton"] = "github-button";
11
11
  })(NavigationItemType = exports.NavigationItemType || (exports.NavigationItemType = {}));
12
+ exports.NavigationItemTypes = Object.values(NavigationItemType);
12
13
  var NavigationGithubButtonIcon;
13
14
  (function (NavigationGithubButtonIcon) {
14
15
  NavigationGithubButtonIcon["heart"] = "octicon-heart";
@@ -10,6 +10,7 @@ const b = (0, utils_1.block)('mobile-menu-button');
10
10
  const ICON_SIZE = 36;
11
11
  const MobileMenuButton = ({ isSidebarOpened, onSidebarOpenedChange, }) => (react_1.default.createElement(components_1.Control, { className: b(), onClick: (e) => {
12
12
  e.stopPropagation();
13
+ e.nativeEvent.stopImmediatePropagation();
13
14
  onSidebarOpenedChange(!isSidebarOpened);
14
15
  }, size: "l", icon: isSidebarOpened ? icons_1.NavigationClose : icons_1.NavigationOpen, iconSize: ICON_SIZE }));
15
16
  exports.MobileMenuButton = MobileMenuButton;
@@ -12,7 +12,7 @@ unpredictable css rules order in build */
12
12
  .utilityfocus .pc-navigation-item:focus {
13
13
  outline: 2px solid #ffdb4d;
14
14
  }
15
- .pc-navigation-item__content:hover, .pc-navigation-item__content:active {
15
+ .pc-navigation-item__content:not(.pc-navigation-item__content_type_button):hover, .pc-navigation-item__content:not(.pc-navigation-item__content_type_button):active {
16
16
  color: var(--g-color-text-link);
17
17
  }
18
18
  .pc-navigation-item_menu-layout_desktop {
@@ -4,28 +4,16 @@ const tslib_1 = require("tslib");
4
4
  const react_1 = tslib_1.__importStar(require("react"));
5
5
  const lodash_1 = require("lodash");
6
6
  const blockIdContext_1 = require("../../../context/blockIdContext");
7
+ const innerContext_1 = require("../../../context/innerContext");
7
8
  const models_1 = require("../../../models");
8
9
  const utils_1 = require("../../../utils");
9
- const SocialIcon_1 = tslib_1.__importDefault(require("../SocialIcon/SocialIcon"));
10
- const GithubButton_1 = require("./components/GithubButton/GithubButton");
11
- const NavigationButton_1 = require("./components/NavigationButton/NavigationButton");
12
- const NavigationDropdown_1 = require("./components/NavigationDropdown/NavigationDropdown");
13
- const NavigationLink_1 = require("./components/NavigationLink/NavigationLink");
14
10
  const b = (0, utils_1.block)('navigation-item');
15
11
  const ANALYTICS_ID = 'navigation';
16
- //todo: add types support form component in map
17
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
18
- const NavigationItemsMap = {
19
- [models_1.NavigationItemType.Button]: NavigationButton_1.NavigationButton,
20
- [models_1.NavigationItemType.Social]: SocialIcon_1.default,
21
- [models_1.NavigationItemType.Dropdown]: NavigationDropdown_1.NavigationDropdown,
22
- [models_1.NavigationItemType.Link]: NavigationLink_1.NavigationLink,
23
- [models_1.NavigationItemType.GithubButton]: GithubButton_1.GithubButton,
24
- };
25
12
  const NavigationItem = (_a) => {
26
13
  var { data, className, menuLayout } = _a, props = tslib_1.__rest(_a, ["data", "className", "menuLayout"]);
27
14
  const { type = models_1.NavigationItemType.Link } = data;
28
- const Component = NavigationItemsMap[type];
15
+ const { navItemMap } = (0, react_1.useContext)(innerContext_1.InnerContext);
16
+ const Component = navItemMap[type];
29
17
  const componentProps = (0, react_1.useMemo)(() => {
30
18
  const componentProperties = Object.assign(Object.assign({}, data), props);
31
19
  if (type !== models_1.NavigationItemType.Dropdown) {
@@ -35,6 +23,6 @@ const NavigationItem = (_a) => {
35
23
  }, [data, props, type]);
36
24
  return (react_1.default.createElement(blockIdContext_1.BlockIdContext.Provider, { value: ANALYTICS_ID },
37
25
  react_1.default.createElement("li", { className: b({ 'menu-layout': menuLayout }, className) },
38
- react_1.default.createElement(Component, Object.assign({}, componentProps, { className: b('content') })))));
26
+ react_1.default.createElement(Component, Object.assign({}, componentProps, { className: b('content', { type }) })))));
39
27
  };
40
28
  exports.default = NavigationItem;
@@ -24,7 +24,7 @@ const NavigationLink = (props) => {
24
24
  }
25
25
  else {
26
26
  return (react_1.default.createElement(components_1.RouterLink, { href: url, passHref: true },
27
- react_1.default.createElement("a", Object.assign({}, rest, { className: classes }), content)));
27
+ react_1.default.createElement("a", Object.assign({ title: text }, rest, { className: classes }), content)));
28
28
  }
29
29
  };
30
30
  exports.NavigationLink = NavigationLink;
@@ -0,0 +1,6 @@
1
+ export { GithubButton } from './components/GithubButton/GithubButton';
2
+ export { NavigationButton } from './components/NavigationButton/NavigationButton';
3
+ export { NavigationDropdown } from './components/NavigationDropdown/NavigationDropdown';
4
+ export { NavigationLink } from './components/NavigationLink/NavigationLink';
5
+ import NavigationItem from './NavigationItem';
6
+ export default NavigationItem;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NavigationLink = exports.NavigationDropdown = exports.NavigationButton = exports.GithubButton = void 0;
4
+ const tslib_1 = require("tslib");
5
+ var GithubButton_1 = require("./components/GithubButton/GithubButton");
6
+ Object.defineProperty(exports, "GithubButton", { enumerable: true, get: function () { return GithubButton_1.GithubButton; } });
7
+ var NavigationButton_1 = require("./components/NavigationButton/NavigationButton");
8
+ Object.defineProperty(exports, "NavigationButton", { enumerable: true, get: function () { return NavigationButton_1.NavigationButton; } });
9
+ var NavigationDropdown_1 = require("./components/NavigationDropdown/NavigationDropdown");
10
+ Object.defineProperty(exports, "NavigationDropdown", { enumerable: true, get: function () { return NavigationDropdown_1.NavigationDropdown; } });
11
+ var NavigationLink_1 = require("./components/NavigationLink/NavigationLink");
12
+ Object.defineProperty(exports, "NavigationLink", { enumerable: true, get: function () { return NavigationLink_1.NavigationLink; } });
13
+ const NavigationItem_1 = tslib_1.__importDefault(require("./NavigationItem"));
14
+ exports.default = NavigationItem_1.default;
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  const react_1 = tslib_1.__importDefault(require("react"));
5
5
  const utils_1 = require("../../utils");
6
- const NavigationItem_1 = tslib_1.__importDefault(require("../NavigationItem/NavigationItem"));
6
+ const NavigationItem_1 = tslib_1.__importDefault(require("../NavigationItem"));
7
7
  const NavigationListItem = (_a) => {
8
8
  var { column, index, activeItemId, onActiveItemChange } = _a, props = tslib_1.__rest(_a, ["column", "index", "activeItemId", "onActiveItemChange"]);
9
9
  const id = `${column}-${index}`;
@@ -6,7 +6,7 @@ const react_1 = tslib_1.__importDefault(require("react"));
6
6
  const uikit_1 = require("@gravity-ui/uikit");
7
7
  const utils_1 = require("../../../utils");
8
8
  const models_1 = require("../../models");
9
- const NavigationItem_1 = tslib_1.__importDefault(require("../NavigationItem/NavigationItem"));
9
+ const NavigationItem_1 = tslib_1.__importDefault(require("../NavigationItem"));
10
10
  const b = (0, utils_1.block)('navigation-popup');
11
11
  const OFFSET_RESET = [0, 0];
12
12
  const NavigationPopup = ({ anchorRef, items, onClose, className, open, }) => (react_1.default.createElement(uikit_1.Popup
@@ -8,7 +8,8 @@ const utils_2 = require("../../../utils");
8
8
  const b = (0, utils_2.block)('social-icon');
9
9
  const SocialIcon = ({ icon, url, className }) => {
10
10
  const iconData = (0, utils_1.getMediaImage)(icon);
11
- return (react_1.default.createElement("a", { href: url, target: "_blank", rel: "noopener noreferrer", className: b(null, className) },
11
+ const { alt } = iconData;
12
+ return (react_1.default.createElement("a", { href: url, "aria-label": alt, title: alt, target: "_blank", rel: "noopener noreferrer", className: b(null, className) },
12
13
  react_1.default.createElement(components_1.Image, Object.assign({ className: b('icon') }, iconData))));
13
14
  };
14
15
  exports.default = SocialIcon;
@@ -205,6 +205,25 @@ export declare const cardSchemas: {
205
205
  type: string;
206
206
  pattern: string;
207
207
  };
208
+ style: {
209
+ type: string;
210
+ additionalProperties: boolean;
211
+ required: never[];
212
+ properties: {
213
+ backgroundColor: {
214
+ type: string;
215
+ };
216
+ height: {
217
+ type: string[];
218
+ };
219
+ width: {
220
+ type: string[];
221
+ };
222
+ color: {
223
+ type: string;
224
+ };
225
+ };
226
+ };
208
227
  alt: {
209
228
  type: string;
210
229
  contentType: string;
@@ -230,6 +249,87 @@ export declare const cardSchemas: {
230
249
  type: string;
231
250
  enum: string[];
232
251
  };
252
+ analyticsEvents: {
253
+ oneOf: ({
254
+ optionName: string;
255
+ type: string;
256
+ additionalProperties: {
257
+ type: string;
258
+ };
259
+ required: string[];
260
+ properties: {
261
+ name: {
262
+ type: string;
263
+ };
264
+ type: {
265
+ type: string;
266
+ };
267
+ counters: {
268
+ type: string;
269
+ additionalProperties: boolean;
270
+ required: never[];
271
+ properties: {
272
+ include: {
273
+ type: string;
274
+ items: {
275
+ type: string;
276
+ };
277
+ };
278
+ exclude: {
279
+ type: string;
280
+ items: {
281
+ type: string;
282
+ };
283
+ };
284
+ };
285
+ };
286
+ context: {
287
+ type: string;
288
+ };
289
+ };
290
+ items?: undefined;
291
+ } | {
292
+ type: string;
293
+ items: {
294
+ type: string;
295
+ additionalProperties: {
296
+ type: string;
297
+ };
298
+ required: string[];
299
+ properties: {
300
+ name: {
301
+ type: string;
302
+ };
303
+ type: {
304
+ type: string;
305
+ };
306
+ counters: {
307
+ type: string;
308
+ additionalProperties: boolean;
309
+ required: never[];
310
+ properties: {
311
+ include: {
312
+ type: string;
313
+ items: {
314
+ type: string;
315
+ };
316
+ };
317
+ exclude: {
318
+ type: string;
319
+ items: {
320
+ type: string;
321
+ };
322
+ };
323
+ };
324
+ };
325
+ context: {
326
+ type: string;
327
+ };
328
+ };
329
+ };
330
+ optionName: string;
331
+ })[];
332
+ };
233
333
  title: {
234
334
  oneOf: ({
235
335
  type: string;
@@ -708,6 +808,87 @@ export declare const cardSchemas: {
708
808
  additionalProperties: boolean;
709
809
  required: never[];
710
810
  properties: {
811
+ analyticsEvents: {
812
+ oneOf: ({
813
+ optionName: string;
814
+ type: string;
815
+ additionalProperties: {
816
+ type: string;
817
+ };
818
+ required: string[];
819
+ properties: {
820
+ name: {
821
+ type: string;
822
+ };
823
+ type: {
824
+ type: string;
825
+ };
826
+ counters: {
827
+ type: string;
828
+ additionalProperties: boolean;
829
+ required: never[];
830
+ properties: {
831
+ include: {
832
+ type: string;
833
+ items: {
834
+ type: string;
835
+ };
836
+ };
837
+ exclude: {
838
+ type: string;
839
+ items: {
840
+ type: string;
841
+ };
842
+ };
843
+ };
844
+ };
845
+ context: {
846
+ type: string;
847
+ };
848
+ };
849
+ items?: undefined;
850
+ } | {
851
+ type: string;
852
+ items: {
853
+ type: string;
854
+ additionalProperties: {
855
+ type: string;
856
+ };
857
+ required: string[];
858
+ properties: {
859
+ name: {
860
+ type: string;
861
+ };
862
+ type: {
863
+ type: string;
864
+ };
865
+ counters: {
866
+ type: string;
867
+ additionalProperties: boolean;
868
+ required: never[];
869
+ properties: {
870
+ include: {
871
+ type: string;
872
+ items: {
873
+ type: string;
874
+ };
875
+ };
876
+ exclude: {
877
+ type: string;
878
+ items: {
879
+ type: string;
880
+ };
881
+ };
882
+ };
883
+ };
884
+ context: {
885
+ type: string;
886
+ };
887
+ };
888
+ };
889
+ optionName: string;
890
+ })[];
891
+ };
711
892
  animated: {
712
893
  type: string;
713
894
  };
@@ -852,84 +1033,6 @@ export declare const cardSchemas: {
852
1033
  fullscreen: {
853
1034
  type: string;
854
1035
  };
855
- analyticsEvents: {
856
- anyOf: ({
857
- type: string;
858
- additionalProperties: {
859
- type: string;
860
- };
861
- required: string[];
862
- properties: {
863
- name: {
864
- type: string;
865
- };
866
- type: {
867
- type: string;
868
- };
869
- counters: {
870
- type: string;
871
- additionalProperties: boolean;
872
- required: never[];
873
- properties: {
874
- include: {
875
- type: string;
876
- items: {
877
- type: string;
878
- };
879
- };
880
- exclude: {
881
- type: string;
882
- items: {
883
- type: string;
884
- };
885
- };
886
- };
887
- };
888
- context: {
889
- type: string;
890
- };
891
- };
892
- } | {
893
- type: string;
894
- items: {
895
- type: string;
896
- additionalProperties: {
897
- type: string;
898
- };
899
- required: string[];
900
- properties: {
901
- name: {
902
- type: string;
903
- };
904
- type: {
905
- type: string;
906
- };
907
- counters: {
908
- type: string;
909
- additionalProperties: boolean;
910
- required: never[];
911
- properties: {
912
- include: {
913
- type: string;
914
- items: {
915
- type: string;
916
- };
917
- };
918
- exclude: {
919
- type: string;
920
- items: {
921
- type: string;
922
- };
923
- };
924
- };
925
- };
926
- context: {
927
- type: string;
928
- };
929
- };
930
- };
931
- })[];
932
- };
933
1036
  border: {
934
1037
  type: string;
935
1038
  enum: string[];