@gravity-ui/page-constructor 5.31.2 → 6.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (206) hide show
  1. package/README.md +6 -0
  2. package/build/cjs/blocks/ExtendedFeatures/ExtendedFeatures.css +11 -6
  3. package/build/cjs/blocks/ExtendedFeatures/ExtendedFeatures.js +3 -6
  4. package/build/cjs/blocks/Header/Header.css +15 -10
  5. package/build/cjs/blocks/Header/Header.js +8 -4
  6. package/build/cjs/blocks/HeaderSlider/HeaderSlider.css +0 -10
  7. package/build/cjs/blocks/HeaderSlider/HeaderSlider.js +2 -2
  8. package/build/cjs/blocks/HeaderSlider/schema.d.ts +9 -1
  9. package/build/cjs/blocks/Questions/QuestionBlockItem/QuestionBlockItem.css +43 -21
  10. package/build/cjs/blocks/Questions/QuestionBlockItem/QuestionBlockItem.js +5 -3
  11. package/build/cjs/blocks/Slider/Arrow/Arrow.css +22 -21
  12. package/build/cjs/blocks/Slider/Arrow/Arrow.d.ts +5 -2
  13. package/build/cjs/blocks/Slider/Arrow/Arrow.js +5 -4
  14. package/build/cjs/blocks/Slider/Slider.css +549 -329
  15. package/build/cjs/blocks/Slider/Slider.d.ts +6 -6
  16. package/build/cjs/blocks/Slider/Slider.js +40 -282
  17. package/build/cjs/blocks/Slider/i18n/en.json +1 -1
  18. package/build/cjs/blocks/Slider/i18n/ru.json +1 -1
  19. package/build/cjs/blocks/Slider/models.d.ts +2 -2
  20. package/build/cjs/blocks/Slider/models.js +1 -1
  21. package/build/cjs/blocks/Slider/schema.d.ts +18 -1
  22. package/build/cjs/blocks/Slider/schema.js +9 -0
  23. package/build/cjs/blocks/{SliderNew → Slider}/useSlider.d.ts +1 -0
  24. package/build/cjs/blocks/{SliderNew → Slider}/useSlider.js +4 -0
  25. package/build/cjs/blocks/Slider/utils.d.ts +7 -27
  26. package/build/cjs/blocks/Slider/utils.js +26 -108
  27. package/build/cjs/blocks/{SliderNew → SliderOld}/Arrow/Arrow.css +15 -12
  28. package/build/cjs/blocks/SliderOld/Arrow/Arrow.d.ts +9 -0
  29. package/build/cjs/blocks/{SliderNew → SliderOld}/Arrow/Arrow.js +3 -3
  30. package/build/cjs/blocks/SliderOld/SliderOld.css +703 -0
  31. package/build/cjs/blocks/SliderOld/SliderOld.d.ts +17 -0
  32. package/build/cjs/blocks/SliderOld/SliderOld.js +301 -0
  33. package/build/cjs/blocks/{SliderNew → SliderOld}/i18n/en.json +1 -1
  34. package/build/cjs/blocks/{SliderNew → SliderOld}/i18n/index.js +1 -1
  35. package/build/cjs/blocks/{SliderNew → SliderOld}/i18n/ru.json +1 -1
  36. package/build/cjs/blocks/{SliderNew → SliderOld}/models.d.ts +2 -2
  37. package/build/cjs/blocks/{SliderNew → SliderOld}/models.js +1 -1
  38. package/build/cjs/blocks/{SliderNew → SliderOld}/schema.d.ts +5 -21
  39. package/build/cjs/blocks/{SliderNew → SliderOld}/schema.js +6 -14
  40. package/build/cjs/blocks/SliderOld/utils.d.ts +36 -0
  41. package/build/cjs/blocks/SliderOld/utils.js +125 -0
  42. package/build/cjs/blocks/index.d.ts +1 -0
  43. package/build/cjs/blocks/index.js +3 -1
  44. package/build/cjs/blocks/validators.d.ts +1 -0
  45. package/build/cjs/blocks/validators.js +1 -0
  46. package/build/cjs/components/ContentList/ContentList.css +5 -4
  47. package/build/cjs/components/ContentList/ContentList.js +1 -1
  48. package/build/cjs/components/FullscreenImage/FullscreenImage.css +96 -18
  49. package/build/cjs/components/FullscreenImage/FullscreenImage.d.ts +5 -0
  50. package/build/cjs/components/FullscreenImage/FullscreenImage.js +19 -5
  51. package/build/cjs/components/HTML/HTML.d.ts +16 -9
  52. package/build/cjs/components/HTML/HTML.js +16 -11
  53. package/build/cjs/components/Media/Image/Image.d.ts +1 -0
  54. package/build/cjs/components/Media/Image/Image.js +7 -5
  55. package/build/cjs/components/Media/Media.css +4 -0
  56. package/build/cjs/components/Media/Media.d.ts +1 -0
  57. package/build/cjs/components/Media/Media.js +3 -2
  58. package/build/cjs/components/MetaInfo/MetaInfo.css +1 -1
  59. package/build/cjs/components/MetaInfo/MetaInfo.js +1 -1
  60. package/build/cjs/components/Table/Table.css +2 -1
  61. package/build/cjs/components/Table/Table.js +4 -2
  62. package/build/cjs/components/Title/TitleItem.css +6 -4
  63. package/build/cjs/components/Title/TitleItem.js +3 -1
  64. package/build/cjs/components/YFMWrapper/YFMWrapper.d.ts +4 -2
  65. package/build/cjs/components/YFMWrapper/YFMWrapper.js +4 -1
  66. package/build/cjs/constructor-items.d.ts +2 -2
  67. package/build/cjs/constructor-items.js +2 -4
  68. package/build/cjs/editor/data/templates/{slider-new-block.json → slider-old-block.json} +2 -2
  69. package/build/cjs/models/common.d.ts +1 -0
  70. package/build/cjs/models/constructor-items/blocks.d.ts +17 -15
  71. package/build/cjs/models/constructor-items/blocks.js +3 -2
  72. package/build/cjs/schema/constants.d.ts +0 -1
  73. package/build/cjs/schema/constants.js +3 -1
  74. package/build/cjs/schema/validators/blocks.d.ts +2 -2
  75. package/build/cjs/schema/validators/blocks.js +2 -2
  76. package/build/cjs/sub-blocks/BannerCard/BannerCard.css +10 -8
  77. package/build/cjs/sub-blocks/BannerCard/BannerCard.js +4 -3
  78. package/build/cjs/sub-blocks/Content/Content.js +1 -1
  79. package/build/cjs/sub-blocks/PriceCard/PriceCard.css +2 -1
  80. package/build/cjs/sub-blocks/PriceCard/PriceCard.js +1 -1
  81. package/build/cjs/sub-blocks/Quote/Quote.css +8 -4
  82. package/build/cjs/sub-blocks/Quote/Quote.js +2 -4
  83. package/build/cjs/text-transform/config.js +1 -1
  84. package/build/cjs/utils/blocks.d.ts +10 -2
  85. package/build/cjs/utils/blocks.js +10 -4
  86. package/build/esm/blocks/ExtendedFeatures/ExtendedFeatures.css +11 -6
  87. package/build/esm/blocks/ExtendedFeatures/ExtendedFeatures.js +4 -7
  88. package/build/esm/blocks/Header/Header.css +15 -10
  89. package/build/esm/blocks/Header/Header.js +9 -5
  90. package/build/esm/blocks/HeaderSlider/HeaderSlider.css +0 -10
  91. package/build/esm/blocks/HeaderSlider/HeaderSlider.js +1 -1
  92. package/build/esm/blocks/HeaderSlider/schema.d.ts +9 -1
  93. package/build/esm/blocks/Questions/QuestionBlockItem/QuestionBlockItem.css +43 -21
  94. package/build/esm/blocks/Questions/QuestionBlockItem/QuestionBlockItem.js +6 -4
  95. package/build/esm/blocks/Slider/Arrow/Arrow.css +22 -21
  96. package/build/esm/blocks/Slider/Arrow/Arrow.d.ts +5 -2
  97. package/build/esm/blocks/Slider/Arrow/Arrow.js +5 -4
  98. package/build/esm/blocks/Slider/Slider.css +549 -329
  99. package/build/esm/blocks/Slider/Slider.d.ts +6 -6
  100. package/build/esm/blocks/Slider/Slider.js +42 -284
  101. package/build/esm/blocks/Slider/i18n/en.json +1 -1
  102. package/build/esm/blocks/Slider/i18n/ru.json +1 -1
  103. package/build/esm/blocks/Slider/models.d.ts +2 -2
  104. package/build/esm/blocks/Slider/models.js +1 -1
  105. package/build/esm/blocks/Slider/schema.d.ts +18 -1
  106. package/build/esm/blocks/Slider/schema.js +9 -0
  107. package/build/esm/blocks/{SliderNew → Slider}/useSlider.d.ts +1 -0
  108. package/build/esm/blocks/{SliderNew → Slider}/useSlider.js +5 -1
  109. package/build/esm/blocks/Slider/utils.d.ts +7 -27
  110. package/build/esm/blocks/Slider/utils.js +24 -103
  111. package/build/esm/blocks/{SliderNew → SliderOld}/Arrow/Arrow.css +15 -12
  112. package/build/esm/blocks/SliderOld/Arrow/Arrow.d.ts +10 -0
  113. package/build/esm/blocks/{SliderNew → SliderOld}/Arrow/Arrow.js +3 -3
  114. package/build/esm/blocks/SliderOld/SliderOld.css +703 -0
  115. package/build/esm/blocks/SliderOld/SliderOld.d.ts +18 -0
  116. package/build/esm/blocks/SliderOld/SliderOld.js +297 -0
  117. package/build/esm/blocks/{SliderNew → SliderOld}/i18n/en.json +1 -1
  118. package/build/esm/blocks/{SliderNew → SliderOld}/i18n/index.js +1 -1
  119. package/build/esm/blocks/{SliderNew → SliderOld}/i18n/ru.json +1 -1
  120. package/build/esm/blocks/{SliderNew → SliderOld}/models.d.ts +2 -2
  121. package/build/esm/blocks/{SliderNew → SliderOld}/models.js +1 -1
  122. package/build/esm/blocks/{SliderNew → SliderOld}/schema.d.ts +5 -21
  123. package/build/esm/blocks/{SliderNew → SliderOld}/schema.js +5 -13
  124. package/build/esm/blocks/SliderOld/utils.d.ts +36 -0
  125. package/build/esm/blocks/SliderOld/utils.js +115 -0
  126. package/build/esm/blocks/index.d.ts +1 -0
  127. package/build/esm/blocks/index.js +1 -0
  128. package/build/esm/blocks/validators.d.ts +1 -0
  129. package/build/esm/blocks/validators.js +1 -0
  130. package/build/esm/components/ContentList/ContentList.css +5 -4
  131. package/build/esm/components/ContentList/ContentList.js +1 -1
  132. package/build/esm/components/FullscreenImage/FullscreenImage.css +96 -18
  133. package/build/esm/components/FullscreenImage/FullscreenImage.d.ts +5 -0
  134. package/build/esm/components/FullscreenImage/FullscreenImage.js +20 -6
  135. package/build/esm/components/HTML/HTML.d.ts +16 -9
  136. package/build/esm/components/HTML/HTML.js +18 -12
  137. package/build/esm/components/Media/Image/Image.d.ts +1 -0
  138. package/build/esm/components/Media/Image/Image.js +7 -5
  139. package/build/esm/components/Media/Media.css +4 -0
  140. package/build/esm/components/Media/Media.d.ts +1 -0
  141. package/build/esm/components/Media/Media.js +3 -2
  142. package/build/esm/components/MetaInfo/MetaInfo.css +1 -1
  143. package/build/esm/components/MetaInfo/MetaInfo.js +1 -1
  144. package/build/esm/components/Table/Table.css +2 -1
  145. package/build/esm/components/Table/Table.js +5 -3
  146. package/build/esm/components/Title/TitleItem.css +6 -4
  147. package/build/esm/components/Title/TitleItem.js +4 -2
  148. package/build/esm/components/YFMWrapper/YFMWrapper.d.ts +4 -2
  149. package/build/esm/components/YFMWrapper/YFMWrapper.js +5 -1
  150. package/build/esm/constructor-items.d.ts +2 -2
  151. package/build/esm/constructor-items.js +3 -5
  152. package/build/esm/editor/data/templates/{slider-new-block.json → slider-old-block.json} +2 -2
  153. package/build/esm/models/common.d.ts +1 -0
  154. package/build/esm/models/constructor-items/blocks.d.ts +17 -15
  155. package/build/esm/models/constructor-items/blocks.js +3 -2
  156. package/build/esm/schema/constants.d.ts +0 -1
  157. package/build/esm/schema/constants.js +4 -2
  158. package/build/esm/schema/validators/blocks.d.ts +2 -2
  159. package/build/esm/schema/validators/blocks.js +2 -2
  160. package/build/esm/sub-blocks/BannerCard/BannerCard.css +10 -8
  161. package/build/esm/sub-blocks/BannerCard/BannerCard.js +5 -4
  162. package/build/esm/sub-blocks/Content/Content.js +1 -1
  163. package/build/esm/sub-blocks/PriceCard/PriceCard.css +2 -1
  164. package/build/esm/sub-blocks/PriceCard/PriceCard.js +2 -2
  165. package/build/esm/sub-blocks/Quote/Quote.css +8 -4
  166. package/build/esm/sub-blocks/Quote/Quote.js +3 -5
  167. package/build/esm/text-transform/config.js +1 -1
  168. package/build/esm/utils/blocks.d.ts +10 -2
  169. package/build/esm/utils/blocks.js +8 -2
  170. package/package.json +2 -2
  171. package/schema/index.js +1 -1
  172. package/server/models/common.d.ts +1 -0
  173. package/server/models/constructor-items/blocks.d.ts +17 -15
  174. package/server/models/constructor-items/blocks.js +3 -2
  175. package/server/text-transform/config.js +1 -1
  176. package/server/utils/blocks.d.ts +10 -2
  177. package/server/utils/blocks.js +10 -4
  178. package/styles/fonts.scss +1 -0
  179. package/styles/styles.css +0 -1
  180. package/styles/styles.scss +0 -1
  181. package/styles/variables.scss +1 -0
  182. package/widget/index.js +1 -1
  183. package/build/cjs/blocks/SliderNew/Arrow/Arrow.d.ts +0 -11
  184. package/build/cjs/blocks/SliderNew/Slider.css +0 -834
  185. package/build/cjs/blocks/SliderNew/Slider.d.ts +0 -13
  186. package/build/cjs/blocks/SliderNew/Slider.js +0 -56
  187. package/build/cjs/blocks/SliderNew/utils.d.ts +0 -16
  188. package/build/cjs/blocks/SliderNew/utils.js +0 -43
  189. package/build/cjs/blocks/unstable.d.ts +0 -1
  190. package/build/cjs/blocks/unstable.js +0 -8
  191. package/build/esm/blocks/SliderNew/Arrow/Arrow.d.ts +0 -12
  192. package/build/esm/blocks/SliderNew/Slider.css +0 -834
  193. package/build/esm/blocks/SliderNew/Slider.d.ts +0 -14
  194. package/build/esm/blocks/SliderNew/Slider.js +0 -52
  195. package/build/esm/blocks/SliderNew/utils.d.ts +0 -16
  196. package/build/esm/blocks/SliderNew/utils.js +0 -36
  197. package/build/esm/blocks/unstable.d.ts +0 -1
  198. package/build/esm/blocks/unstable.js +0 -1
  199. /package/build/cjs/blocks/{SliderNew → Slider}/useSliderPagination.d.ts +0 -0
  200. /package/build/cjs/blocks/{SliderNew → Slider}/useSliderPagination.js +0 -0
  201. /package/build/cjs/blocks/{SliderNew → SliderOld}/i18n/index.d.ts +0 -0
  202. /package/build/cjs/blocks/{Slider → SliderOld}/slick.css +0 -0
  203. /package/build/esm/blocks/{SliderNew → Slider}/useSliderPagination.d.ts +0 -0
  204. /package/build/esm/blocks/{SliderNew → Slider}/useSliderPagination.js +0 -0
  205. /package/build/esm/blocks/{SliderNew → SliderOld}/i18n/index.d.ts +0 -0
  206. /package/build/esm/blocks/{Slider → SliderOld}/slick.css +0 -0
@@ -8,6 +8,8 @@ import { BannerCardProps, HubspotFormProps, SubBlock, SubBlockModels } from './s
8
8
  export declare enum BlockType {
9
9
  PromoFeaturesBlock = "promo-features-block",
10
10
  ExtendedFeaturesBlock = "extended-features-block",
11
+ /** @deprecated */
12
+ SliderOldBlock = "slider-old-block",
11
13
  SliderBlock = "slider-block",
12
14
  QuestionsBlock = "questions-block",
13
15
  BannerBlock = "banner-block",
@@ -24,8 +26,7 @@ export declare enum BlockType {
24
26
  ShareBlock = "share-block",
25
27
  MapBlock = "map-block",
26
28
  FilterBlock = "filter-block",
27
- FormBlock = "form-block",
28
- SliderNewBlock = "slider-new-block"
29
+ FormBlock = "form-block"
29
30
  }
30
31
  export declare const BlockTypes: BlockType[];
31
32
  export declare const HeaderBlockTypes: BlockType[];
@@ -62,11 +63,12 @@ export declare enum SliderBreakpointNames {
62
63
  }
63
64
  export declare enum SliderType {
64
65
  MediaCard = "media-card",
65
- HeaderCard = "header-card"
66
+ HeaderCard = "header-card",
67
+ FullscreenCard = "fullscreen-card"
66
68
  }
67
69
  export type SliderBreakpointParams = Record<SliderBreakpointNames, number>;
68
70
  export type SlidesToShow = Partial<SliderBreakpointParams> | number;
69
- export interface SliderProps extends Childable, Animatable, LoadableChildren {
71
+ export interface SliderOldProps extends Childable, Animatable, LoadableChildren {
70
72
  dots?: boolean;
71
73
  arrows?: boolean;
72
74
  slidesToShow?: SlidesToShow;
@@ -80,7 +82,7 @@ export interface SliderProps extends Childable, Animatable, LoadableChildren {
80
82
  randomOrder?: boolean;
81
83
  adaptive?: boolean;
82
84
  }
83
- export interface SliderNewProps extends Childable, Animatable, LoadableChildren {
85
+ export interface SliderProps extends Childable, Animatable, LoadableChildren {
84
86
  dots?: boolean;
85
87
  arrows?: boolean;
86
88
  slidesToShow?: SlidesToShow;
@@ -92,8 +94,9 @@ export interface SliderNewProps extends Childable, Animatable, LoadableChildren
92
94
  description?: string;
93
95
  autoplay?: number;
94
96
  randomOrder?: boolean;
97
+ adaptive?: boolean;
95
98
  }
96
- export interface HeaderSliderBlockProps extends Omit<SliderProps, 'title' | 'description'> {
99
+ export interface HeaderSliderBlockProps extends Omit<SliderOldProps, 'title' | 'description'> {
97
100
  items: HeaderBlockProps[];
98
101
  }
99
102
  interface HeaderBackgroundProps {
@@ -355,9 +358,9 @@ export interface FormBlockProps {
355
358
  export type HeaderBlockModel = {
356
359
  type: BlockType.HeaderBlock;
357
360
  } & HeaderBlockProps;
358
- export type SliderBlockModel = {
359
- type: BlockType.SliderBlock;
360
- } & SliderProps;
361
+ export type SliderOldBlockModel = {
362
+ type: BlockType.SliderOldBlock;
363
+ } & SliderOldProps;
361
364
  export type ExtendedFeaturesBlockModel = {
362
365
  type: BlockType.ExtendedFeaturesBlock;
363
366
  } & ExtendedFeaturesProps;
@@ -409,10 +412,9 @@ export type ShareBLockModel = {
409
412
  export type FormBlockModel = {
410
413
  type: BlockType.FormBlock;
411
414
  } & FormBlockProps;
412
- export type SliderNewBlockModel = {
413
- type: BlockType.SliderNewBlock;
414
- } & SliderNewProps;
415
- type BlockModels = SliderBlockModel | ExtendedFeaturesBlockModel | PromoFeaturesBlockModel | QuestionsBlockModel | BannerBlockModel | CompaniesBlockModel | MediaBlockModel | MapBlockModel | InfoBlockModel | TableBlockModel | TabsBlockModel | HeaderBlockModel | IconsBlockModel | HeaderSliderBlockModel | CardLayoutBlockModel | ContentLayoutBlockModel | ShareBLockModel | FilterBlockModel | FormBlockModel;
416
- type UnstableBlockModels = SliderNewBlockModel;
417
- export type Block = (BlockModels | UnstableBlockModels) & BlockBaseProps;
415
+ export type SliderBlockModel = {
416
+ type: BlockType.SliderBlock;
417
+ } & SliderProps;
418
+ type BlockModels = SliderOldBlockModel | SliderBlockModel | ExtendedFeaturesBlockModel | PromoFeaturesBlockModel | QuestionsBlockModel | BannerBlockModel | CompaniesBlockModel | MediaBlockModel | MapBlockModel | InfoBlockModel | TableBlockModel | TabsBlockModel | HeaderBlockModel | IconsBlockModel | HeaderSliderBlockModel | CardLayoutBlockModel | ContentLayoutBlockModel | ShareBLockModel | FilterBlockModel | FormBlockModel;
419
+ export type Block = BlockModels & BlockBaseProps;
418
420
  export {};
@@ -2,6 +2,8 @@ export var BlockType;
2
2
  (function (BlockType) {
3
3
  BlockType["PromoFeaturesBlock"] = "promo-features-block";
4
4
  BlockType["ExtendedFeaturesBlock"] = "extended-features-block";
5
+ /** @deprecated */
6
+ BlockType["SliderOldBlock"] = "slider-old-block";
5
7
  BlockType["SliderBlock"] = "slider-block";
6
8
  BlockType["QuestionsBlock"] = "questions-block";
7
9
  BlockType["BannerBlock"] = "banner-block";
@@ -19,8 +21,6 @@ export var BlockType;
19
21
  BlockType["MapBlock"] = "map-block";
20
22
  BlockType["FilterBlock"] = "filter-block";
21
23
  BlockType["FormBlock"] = "form-block";
22
- // unstable
23
- BlockType["SliderNewBlock"] = "slider-new-block";
24
24
  })(BlockType || (BlockType = {}));
25
25
  export const BlockTypes = Object.values(BlockType);
26
26
  export const HeaderBlockTypes = [BlockType.HeaderBlock, BlockType.HeaderSliderBlock];
@@ -35,6 +35,7 @@ export var SliderType;
35
35
  (function (SliderType) {
36
36
  SliderType["MediaCard"] = "media-card";
37
37
  SliderType["HeaderCard"] = "header-card";
38
+ SliderType["FullscreenCard"] = "fullscreen-card";
38
39
  })(SliderType || (SliderType = {}));
39
40
  export var PCShareSocialNetwork;
40
41
  (function (PCShareSocialNetwork) {
@@ -1020,7 +1020,6 @@ export declare const cardSchemas: {
1020
1020
  };
1021
1021
  descriptionSize: {
1022
1022
  type: string;
1023
- /** @deprecated */
1024
1023
  enum: string[];
1025
1024
  };
1026
1025
  titleColor: {
@@ -1,6 +1,6 @@
1
- import { BannerBlock, BannerCard, CardLayoutBlock, CompaniesBlock, ContentLayoutBlock, ExtendedFeaturesBlock, FilterBlock, FormBlock, HeaderBlock, HeaderSliderBlock, IconsBlock, InfoBlock, MapBlock, MediaBlock, PromoFeaturesBlock, QuestionsBlock, ShareBlock, SliderBlock, SliderNewBlock, TableBlock, TabsBlock, } from './validators/blocks';
1
+ import { BannerBlock, BannerCard, CardLayoutBlock, CompaniesBlock, ContentLayoutBlock, ExtendedFeaturesBlock, FilterBlock, FormBlock, HeaderBlock, HeaderSliderBlock, IconsBlock, InfoBlock, MapBlock, MediaBlock, PromoFeaturesBlock, QuestionsBlock, ShareBlock, SliderBlock, SliderOldBlock, TableBlock, TabsBlock, } from './validators/blocks';
2
2
  import { BackgroundCard, BasicCard, Divider, ImageCard, MediaCardBlock, PriceCardBlock, PriceDetailedBlock, Quote, } from './validators/sub-blocks';
3
- export const blockSchemas = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, Divider), ExtendedFeaturesBlock), PromoFeaturesBlock), SliderBlock), QuestionsBlock), HeaderBlock), BannerBlock), CompaniesBlock), MediaBlock), MapBlock), InfoBlock), TableBlock), TabsBlock), HeaderSliderBlock), IconsBlock), CardLayoutBlock), ContentLayoutBlock), ShareBlock), FilterBlock), FormBlock), SliderNewBlock);
3
+ export const blockSchemas = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, Divider), ExtendedFeaturesBlock), PromoFeaturesBlock), SliderOldBlock), QuestionsBlock), HeaderBlock), BannerBlock), CompaniesBlock), MediaBlock), MapBlock), InfoBlock), TableBlock), TabsBlock), HeaderSliderBlock), IconsBlock), CardLayoutBlock), ContentLayoutBlock), ShareBlock), FilterBlock), FormBlock), SliderBlock);
4
4
  export const cardSchemas = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, MediaCardBlock), BannerCard), PriceDetailedBlock), BackgroundCard), Quote), BasicCard), PriceCardBlock), ImageCard);
5
5
  export const constructorBlockSchemaNames = [
6
6
  'divider',
@@ -9,6 +9,8 @@ export const constructorBlockSchemaNames = [
9
9
  'post',
10
10
  'extended-features-block',
11
11
  'promo-features-block',
12
+ /** @deprecated */
13
+ 'slider-old-block',
12
14
  'slider-block',
13
15
  'questions-block',
14
16
  'header-block',
@@ -7,7 +7,7 @@ export * from '../../blocks/Info/schema';
7
7
  export * from '../../blocks/Media/schema';
8
8
  export * from '../../blocks/Map/schema';
9
9
  export * from '../../blocks/Questions/schema';
10
- export * from '../../blocks/Slider/schema';
10
+ export * from '../../blocks/SliderOld/schema';
11
11
  export * from '../../blocks/Table/schema';
12
12
  export * from '../../blocks/Tabs/schema';
13
13
  export * from '../../blocks/HeaderSlider/schema';
@@ -17,4 +17,4 @@ export * from '../../blocks/ContentLayout/schema';
17
17
  export * from '../../blocks/Share/schema';
18
18
  export * from '../../blocks/FilterBlock/schema';
19
19
  export * from '../../blocks/Form/schema';
20
- export * from '../../blocks/SliderNew/schema';
20
+ export * from '../../blocks/Slider/schema';
@@ -7,7 +7,7 @@ export * from '../../blocks/Info/schema';
7
7
  export * from '../../blocks/Media/schema';
8
8
  export * from '../../blocks/Map/schema';
9
9
  export * from '../../blocks/Questions/schema';
10
- export * from '../../blocks/Slider/schema';
10
+ export * from '../../blocks/SliderOld/schema';
11
11
  export * from '../../blocks/Table/schema';
12
12
  export * from '../../blocks/Tabs/schema';
13
13
  export * from '../../blocks/HeaderSlider/schema';
@@ -17,4 +17,4 @@ export * from '../../blocks/ContentLayout/schema';
17
17
  export * from '../../blocks/Share/schema';
18
18
  export * from '../../blocks/FilterBlock/schema';
19
19
  export * from '../../blocks/Form/schema';
20
- export * from '../../blocks/SliderNew/schema';
20
+ export * from '../../blocks/Slider/schema';
@@ -1,4 +1,4 @@
1
- .pc-banner-card__subtitle p, .pc-banner-card__subtitle, .pc-banner-card__title {
1
+ .pc-banner-card__subtitle.pc-banner-card__subtitle p, .pc-banner-card__subtitle.pc-banner-card__subtitle, .pc-banner-card__title.pc-banner-card__title {
2
2
  margin: 0;
3
3
  }
4
4
 
@@ -16,31 +16,32 @@ unpredictable css rules order in build */
16
16
  color: var(--g-color-text-light-primary);
17
17
  }
18
18
 
19
- .pc-banner-card__title {
19
+ .pc-banner-card__title.pc-banner-card__title {
20
20
  font-size: var(--g-text-display-2-font-size);
21
21
  line-height: var(--g-text-display-2-line-height);
22
22
  color: var(--pc-text-header-color);
23
23
  font-weight: var(--g-text-accent-font-weight);
24
24
  }
25
25
  @media (max-width: 576px) {
26
- .pc-banner-card__title {
26
+ .pc-banner-card__title.pc-banner-card__title {
27
27
  font-size: var(--g-text-display-1-font-size);
28
28
  line-height: var(--g-text-display-1-line-height);
29
29
  }
30
30
  }
31
- .pc-banner-card__title a {
31
+ .pc-banner-card__title.pc-banner-card__title a {
32
32
  outline: none;
33
33
  color: var(--g-color-text-link);
34
34
  text-decoration: none;
35
35
  cursor: pointer;
36
36
  }
37
- .utilityfocus .pc-banner-card__title a:focus {
37
+ .utilityfocus .pc-banner-card__title.pc-banner-card__title a:focus {
38
38
  outline: 2px solid #ffdb4d;
39
39
  }
40
- .pc-banner-card__title a:hover, .pc-banner-card__title a:active {
40
+ .pc-banner-card__title.pc-banner-card__title a:hover, .pc-banner-card__title.pc-banner-card__title a:active {
41
41
  --pc-text-header-color: var(--g-color-text-link-hover);
42
42
  color: var(--g-color-text-link-hover);
43
43
  }
44
+
44
45
  .pc-banner-card__content {
45
46
  width: 100%;
46
47
  border-radius: var(--pc-border-radius);
@@ -57,7 +58,7 @@ unpredictable css rules order in build */
57
58
  flex-direction: column;
58
59
  align-items: baseline;
59
60
  }
60
- .pc-banner-card__subtitle {
61
+ .pc-banner-card__subtitle.pc-banner-card__subtitle {
61
62
  display: inline-block;
62
63
  margin-top: 8px;
63
64
  font-size: var(--g-text-body-3-font-size);
@@ -66,13 +67,14 @@ unpredictable css rules order in build */
66
67
  font-weight: var(--g-text-accent-font-weight);
67
68
  font-weight: normal;
68
69
  }
69
- .pc-banner-card__subtitle p {
70
+ .pc-banner-card__subtitle.pc-banner-card__subtitle p {
70
71
  font-size: var(--g-text-body-3-font-size);
71
72
  line-height: var(--g-text-body-3-line-height);
72
73
  color: var(--pc-text-header-color);
73
74
  font-weight: var(--g-text-accent-font-weight);
74
75
  font-weight: normal;
75
76
  }
77
+
76
78
  .pc-banner-card__button.pc-banner-card__button {
77
79
  margin-top: 28px;
78
80
  }
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { BackgroundImage, Button, HTML, RouterLink, YFMWrapper } from '../../components';
2
+ import { BackgroundImage, Button, RouterLink, YFMWrapper } from '../../components';
3
3
  import { useTheme } from '../../context/theme';
4
4
  import { block, getThemedValue } from '../../utils';
5
5
  import './BannerCard.css';
@@ -15,9 +15,10 @@ export const BannerCard = (props) => {
15
15
  React.createElement("div", { className: b('content'), style: contentStyle },
16
16
  React.createElement("div", { className: b('info') },
17
17
  React.createElement("div", { className: b('text') },
18
- React.createElement("h2", { className: b('title') },
19
- React.createElement(HTML, null, title)),
20
- subtitle && (React.createElement(YFMWrapper, { className: b('subtitle'), content: subtitle, modifiers: { constructor: true } }))),
18
+ React.createElement(YFMWrapper, { tagName: "h2", contentClassName: b('title'), content: title, modifiers: {
19
+ constructor: true,
20
+ } }),
21
+ subtitle && (React.createElement(YFMWrapper, { contentClassName: b('subtitle'), content: subtitle, modifiers: { constructor: true } }))),
21
22
  url && (React.createElement(RouterLink, { href: url },
22
23
  React.createElement(Button, { className: b('button'), theme: buttonTheme, size: "xl", text: text !== null && text !== void 0 ? text : '', url: url, target: target })))),
23
24
  React.createElement(BackgroundImage, { className: b('image'), src: getThemedValue(image, theme), disableCompress: disableCompress }))));
@@ -27,7 +27,7 @@ const Content = (props) => {
27
27
  return (React.createElement(Col, { className: b({ size, centered, theme, 'control-position': controlPosition }, className), reset: true, sizes: colSizes, qa: qaAttributes.container },
28
28
  title && (React.createElement(Title, { className: b('title'), title: titleProps, colSizes: { all: 12 }, id: titleId })),
29
29
  text && (React.createElement("div", { className: b('text', { ['without-title']: !hasTitle }) },
30
- React.createElement(YFMWrapper, { content: text, modifiers: { constructor: true, [`constructor-size-${size}`]: true }, id: textId }))),
30
+ React.createElement(YFMWrapper, { content: text, modifiers: { constructor: true, [`constructor-size-${size}`]: true }, id: textId, qa: qaAttributes.list }))),
31
31
  (list === null || list === void 0 ? void 0 : list.length) ? (React.createElement("div", { className: b('list') },
32
32
  React.createElement(ContentList, { list: list, size: size, qa: qaAttributes.list, theme: theme }))) : null,
33
33
  additionalInfo && (React.createElement("div", { className: b('notice') },
@@ -47,11 +47,12 @@ unpredictable css rules order in build */
47
47
  .pc-price-card__content_theme_light .pc-price-card__info a:hover {
48
48
  color: var(--g-color-text-dark-secondary);
49
49
  }
50
- .pc-price-card__title {
50
+ .pc-price-card__title.pc-price-card__title {
51
51
  font-size: var(--g-text-subheader-3-font-size);
52
52
  line-height: var(--g-text-subheader-3-line-height);
53
53
  margin-bottom: 24px;
54
54
  }
55
+
55
56
  .pc-price-card__price {
56
57
  margin-bottom: 24px;
57
58
  }
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import Check from '@gravity-ui/icons/Check';
3
- import { BackgroundImage, Buttons, CardBase, ContentList, HTML, Links } from '../../components';
3
+ import { BackgroundImage, Buttons, CardBase, ContentList, Links, YFMWrapper } from '../../components';
4
4
  import { block } from '../../utils';
5
5
  import './PriceCard.css';
6
6
  const b = block('price-card');
@@ -11,7 +11,7 @@ const PriceCard = (props) => {
11
11
  React.createElement(BackgroundImage, { className: b('background'), style: { backgroundColor } }),
12
12
  React.createElement("div", { className: b('content', { theme }) },
13
13
  React.createElement("div", { className: b('info') },
14
- React.createElement(HTML, { className: b('title') }, title),
14
+ React.createElement(YFMWrapper, { content: title, contentClassName: b('title'), onlyContent: true, modifiers: { constructor: true } }),
15
15
  React.createElement("div", { className: b('price') },
16
16
  React.createElement("div", null,
17
17
  React.createElement("span", { className: b('price-value') }, price),
@@ -63,22 +63,26 @@ unpredictable css rules order in build */
63
63
  font-size: var(--g-text-body-3-font-size);
64
64
  line-height: var(--g-text-body-3-line-height);
65
65
  }
66
- .pc-quote__content_quote-type_chevron::before {
66
+ .pc-quote__content_quote-type_chevron.pc-quote__content_quote-type_chevron::before {
67
67
  position: absolute;
68
68
  left: -10px;
69
69
  content: "«";
70
70
  }
71
- .pc-quote__content_quote-type_chevron .pc-quote__text::after {
71
+ .pc-quote__content_quote-type_chevron.pc-quote__content_quote-type_chevron .pc-quote__text::after {
72
72
  content: "»";
73
+ left: auto;
73
74
  }
74
- .pc-quote__content_quote-type_english-double::before {
75
+
76
+ .pc-quote__content_quote-type_english-double.pc-quote__content_quote-type_english-double::before {
75
77
  position: absolute;
76
78
  left: -8px;
77
79
  content: "“";
78
80
  }
79
- .pc-quote__content_quote-type_english-double .pc-quote__text::after {
81
+ .pc-quote__content_quote-type_english-double.pc-quote__content_quote-type_english-double .pc-quote__text::after {
80
82
  content: "”";
83
+ left: auto;
81
84
  }
85
+
82
86
  .pc-quote__content .yfm {
83
87
  font-size: var(--g-text-body-3-font-size);
84
88
  line-height: var(--g-text-body-3-line-height);
@@ -1,5 +1,5 @@
1
1
  import React, { useCallback } from 'react';
2
- import { Author, Button, HTML, Image, YFMWrapper } from '../../components';
2
+ import { Author, Button, Image, YFMWrapper } from '../../components';
3
3
  import { getMediaImage } from '../../components/Media/Image/utils';
4
4
  import { useTheme } from '../../context/theme';
5
5
  import { useAnalytics } from '../../hooks';
@@ -23,14 +23,12 @@ const Quote = (props) => {
23
23
  button && React.createElement(Button, Object.assign({ size: "xl" }, button))));
24
24
  const themedLogoProps = getThemedValue(logo, theme);
25
25
  const logoProps = getMediaImage(themedLogoProps);
26
+ const textLocal = yfmText || text;
26
27
  return (React.createElement("div", { className: b({ theme: textTheme, border }), style: color ? { backgroundColor: color } : {} },
27
28
  React.createElement("div", { key: text, className: b('content-wrapper') },
28
29
  React.createElement("div", null,
29
30
  React.createElement(Image, Object.assign({ className: b('logo') }, logoProps)),
30
- React.createElement("div", { className: b('content', { 'quote-type': quoteType }) },
31
- text && (React.createElement("span", { className: b('text') },
32
- React.createElement(HTML, null, text))),
33
- yfmText && (React.createElement(YFMWrapper, { className: b('text'), content: yfmText, modifiers: { constructor: true } })))),
31
+ React.createElement("div", { className: b('content', { 'quote-type': quoteType }) }, textLocal && (React.createElement(YFMWrapper, { tagName: "span", contentClassName: b('text'), content: textLocal, modifiers: { constructor: true } })))),
34
32
  renderFooter),
35
33
  React.createElement("div", { className: b('image-wrapper') },
36
34
  React.createElement(Image, Object.assign({}, imageData, { className: b('image') })))));
@@ -168,7 +168,7 @@ export const config = {
168
168
  parser: parsePromoFeatures,
169
169
  },
170
170
  ],
171
- [BlockType.SliderBlock]: blockHeaderTransformer,
171
+ [BlockType.SliderOldBlock]: blockHeaderTransformer,
172
172
  [BlockType.CompaniesBlock]: blockHeaderTransformer,
173
173
  [BlockType.QuestionsBlock]: [
174
174
  {
@@ -1,6 +1,13 @@
1
- import { ConstructorBlock, CustomConfig, PCShareSocialNetwork, TextSize } from '../models';
1
+ import { ReactNode } from 'react';
2
+ import { ConstructorBlock, CustomConfig, PCShareSocialNetwork, TagName, TextSize } from '../models';
2
3
  export declare function getHeaderTag(size: TextSize): "h1" | "h2" | "h3" | "h4";
3
- export declare function hasBlockTag(content: string): boolean;
4
+ type SelectVariantArgs = {
5
+ block?: boolean;
6
+ content?: string;
7
+ children?: ReactNode;
8
+ tagName?: TagName;
9
+ };
10
+ export declare function selectTagName({ content, children, tagName }: SelectVariantArgs): string;
4
11
  export declare function getBlockKey(block: ConstructorBlock, index: number): string;
5
12
  export declare const getCustomItems: (types: (keyof CustomConfig)[], customBlocks?: CustomConfig) => {};
6
13
  export declare const getCustomTypes: (types: (keyof CustomConfig)[], customBlocks?: CustomConfig) => string[];
@@ -8,3 +15,4 @@ export declare const getOrderedBlocks: (blocks: ConstructorBlock[], headerBlockT
8
15
  export declare const getHeaderBlock: (blocks: ConstructorBlock[], headerBlockTypes?: string[]) => ConstructorBlock | undefined;
9
16
  export declare const getShareLink: (url: string, type: PCShareSocialNetwork, title?: string, text?: string) => string | undefined;
10
17
  export declare const getQaAttrubutes: (qa?: string, ...customKeys: (string | Array<string>)[]) => Record<string, string>;
18
+ export {};
@@ -52,9 +52,15 @@ export function getHeaderTag(size) {
52
52
  return 'h2';
53
53
  }
54
54
  }
55
- export function hasBlockTag(content) {
55
+ export function selectTagName({ content, children, tagName }) {
56
+ if (!children && tagName) {
57
+ return tagName;
58
+ }
59
+ if (!content) {
60
+ return 'span';
61
+ }
56
62
  const regex = new RegExp(BLOCK_ELEMENTS_REGEX, 'g');
57
- return regex.test(content);
63
+ return regex.test(content) ? 'div' : 'span';
58
64
  }
59
65
  export function getBlockKey(block, index) {
60
66
  return `${block.type}-${index}`;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gravity-ui/page-constructor",
3
- "version": "5.31.2",
3
+ "version": "6.0.0-alpha.0",
4
4
  "description": "Gravity UI Page Constructor",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -116,7 +116,7 @@
116
116
  "uuid": "^9.0.0"
117
117
  },
118
118
  "peerDependencies": {
119
- "@diplodoc/transform": "^4.10.4",
119
+ "@diplodoc/transform": "^4.28.2",
120
120
  "@gravity-ui/uikit": "^6.0.0",
121
121
  "react": "^16.0.0 || ^17.0.0 || ^18.0.0"
122
122
  },