@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
@@ -24,7 +24,7 @@ const ContentList = ({ list, size = 'l', qa, theme }) => {
24
24
  React.createElement("div", null,
25
25
  title &&
26
26
  React.createElement(getHeadingLevel(size), { className: b('title'), 'data-qa': qaAttributes.title }, React.createElement(YFMWrapper, { content: title, modifiers: { constructor: true } })),
27
- text && (React.createElement(YFMWrapper, { className: b('text'), content: text, modifiers: { constructor: true }, qa: qaAttributes.text })))));
27
+ text && (React.createElement(YFMWrapper, { contentClassName: b('text'), content: text, modifiers: { constructor: true }, qa: qaAttributes.text })))));
28
28
  })));
29
29
  };
30
30
  export default ContentList;
@@ -6,12 +6,31 @@ unpredictable css rules order in build */
6
6
  .pc-fullscreen-image__image-wrapper {
7
7
  position: relative;
8
8
  }
9
- .pc-fullscreen-image__image-wrapper:hover .pc-fullscreen-image__icon-wrapper {
9
+ .pc-fullscreen-image__image-wrapper:hover .pc-fullscreen-image__expand-icon-wrapper {
10
10
  opacity: 1;
11
11
  }
12
12
  .pc-fullscreen-image__modal-content {
13
13
  position: relative;
14
14
  border-radius: var(--pc-border-radius);
15
+ width: 100%;
16
+ }
17
+ .pc-fullscreen-image__modal-content-wrapper {
18
+ width: 100%;
19
+ }
20
+ .pc-fullscreen-image__modal-content_loaded {
21
+ max-width: fit-content;
22
+ }
23
+ .pc-fullscreen-image__modal_with-slider .g-modal__content-wrapper {
24
+ width: 100%;
25
+ height: 100vh;
26
+ margin: 0;
27
+ justify-content: center;
28
+ }
29
+ .pc-fullscreen-image__modal_with-slider .pc-fullscreen-image__modal-content {
30
+ background-color: transparent;
31
+ }
32
+ .pc-fullscreen-image__modal_with-slider .pc-fullscreen-image__modal-content:hover .pc-fullscreen-image__expand-icon-wrapper, .pc-fullscreen-image__modal_with-slider .pc-fullscreen-image__modal-content:hover .pc-fullscreen-image__close-icon-wrapper {
33
+ opacity: 1;
15
34
  }
16
35
  .pc-fullscreen-image__modal-image {
17
36
  display: block;
@@ -19,10 +38,32 @@ unpredictable css rules order in build */
19
38
  max-height: 70vh;
20
39
  overflow: hidden;
21
40
  }
41
+ .pc-fullscreen-image__modal-slider {
42
+ max-width: 100vw;
43
+ width: 100%;
44
+ height: 100vh;
45
+ }
46
+ .pc-fullscreen-image__modal-slider_item {
47
+ height: 100%;
48
+ display: flex;
49
+ justify-content: center;
50
+ align-items: center;
51
+ }
52
+ .pc-fullscreen-image__modal-slider_item-image {
53
+ display: block;
54
+ margin: auto;
55
+ border-radius: var(--pc-border-radius);
56
+ overflow: hidden;
57
+ margin-top: 40px;
58
+ max-height: calc(100vh - 120px);
59
+ max-width: 100%;
60
+ object-fit: contain;
61
+ object-position: center;
62
+ }
22
63
  .pc-fullscreen-image__modal .g-modal__content, .pc-fullscreen-image__modal-image {
23
64
  border-radius: var(--pc-border-radius);
24
65
  }
25
- .pc-fullscreen-image__icon-wrapper {
66
+ .pc-fullscreen-image__expand-icon-wrapper {
26
67
  display: inline-block;
27
68
  margin: 0;
28
69
  padding: 0;
@@ -35,9 +76,45 @@ unpredictable css rules order in build */
35
76
  display: flex;
36
77
  align-items: center;
37
78
  justify-content: center;
79
+ width: 36px;
80
+ height: 36px;
81
+ border-radius: 8px;
82
+ background-color: var(--g-color-base-simple-hover-solid);
83
+ cursor: pointer;
84
+ opacity: 0;
85
+ transition: 0.3s;
38
86
  position: absolute;
39
87
  right: 16px;
40
88
  top: 16px;
89
+ }
90
+ .pc-fullscreen-image__expand-icon-wrapper:focus {
91
+ outline: 2px solid var(--g-color-line-focus);
92
+ outline-offset: 0;
93
+ }
94
+ .pc-fullscreen-image__expand-icon-wrapper:focus:not(:focus-visible) {
95
+ outline: 0;
96
+ }
97
+ .pc-fullscreen-image__expand-icon-wrapper:focus {
98
+ opacity: 1;
99
+ }
100
+ @media (max-width: 769px) {
101
+ .pc-fullscreen-image__expand-icon-wrapper {
102
+ opacity: 1;
103
+ }
104
+ }
105
+ .pc-fullscreen-image__close-icon-wrapper {
106
+ display: inline-block;
107
+ margin: 0;
108
+ padding: 0;
109
+ font: inherit;
110
+ border: none;
111
+ outline: none;
112
+ color: inherit;
113
+ background: none;
114
+ cursor: pointer;
115
+ display: flex;
116
+ align-items: center;
117
+ justify-content: center;
41
118
  width: 36px;
42
119
  height: 36px;
43
120
  border-radius: 8px;
@@ -45,36 +122,37 @@ unpredictable css rules order in build */
45
122
  cursor: pointer;
46
123
  opacity: 0;
47
124
  transition: 0.3s;
125
+ z-index: 1001;
126
+ position: absolute;
127
+ right: 24px;
128
+ top: 24px;
48
129
  }
49
- .pc-fullscreen-image__icon-wrapper:focus {
130
+ .pc-fullscreen-image__close-icon-wrapper:focus {
50
131
  outline: 2px solid var(--g-color-line-focus);
51
132
  outline-offset: 0;
52
133
  }
53
- .pc-fullscreen-image__icon-wrapper:focus:not(:focus-visible) {
134
+ .pc-fullscreen-image__close-icon-wrapper:focus:not(:focus-visible) {
54
135
  outline: 0;
55
136
  }
56
- .pc-fullscreen-image__icon-wrapper:focus {
137
+ .pc-fullscreen-image__close-icon-wrapper:focus {
57
138
  opacity: 1;
58
139
  }
140
+ @media (max-width: 769px) {
141
+ .pc-fullscreen-image__close-icon-wrapper {
142
+ opacity: 1;
143
+ }
144
+ }
59
145
  .pc-fullscreen-image__icon {
60
146
  color: var(--g-color-text-hint);
61
147
  }
62
148
  .pc-fullscreen-image__icon_hover:hover {
63
149
  color: var(--g-color-text-secondary);
64
150
  }
65
- @media (max-width: 1185px) {
66
- .pc-fullscreen-image__modal-image {
67
- width: 100%;
68
- }
69
- }
70
- @media (max-width: 1081px) {
71
- .pc-fullscreen-image__image {
72
- pointer-events: none;
73
- }
74
- .pc-fullscreen-image__icon-wrapper {
75
- display: none;
151
+ @media (max-width: 769px) {
152
+ .pc-fullscreen-image__modal .g-modal__content-wrapper {
153
+ margin: 8px;
76
154
  }
77
- .pc-fullscreen-image__modal {
78
- display: none !important; /* stylelint-disable-line declaration-no-important */
155
+ .pc-fullscreen-image__modal_with-slider .g-modal__content-wrapper {
156
+ margin: 0;
79
157
  }
80
158
  }
@@ -1,4 +1,5 @@
1
1
  import { CSSProperties, HTMLProps } from 'react';
2
+ import { ImageProps as ModelImageProps } from '../../models';
2
3
  import { ImageProps } from '../Image/Image';
3
4
  import './FullscreenImage.css';
4
5
  export interface FullscreenImageProps extends ImageProps {
@@ -6,6 +7,10 @@ export interface FullscreenImageProps extends ImageProps {
6
7
  modalImageClass?: string;
7
8
  imageStyle?: CSSProperties;
8
9
  extraProps?: HTMLProps<HTMLDivElement>;
10
+ sliderData?: {
11
+ items: ModelImageProps[];
12
+ initialIndex: number;
13
+ };
9
14
  }
10
15
  declare const FullscreenImage: (props: FullscreenImageProps) => JSX.Element;
11
16
  export default FullscreenImage;
@@ -1,26 +1,40 @@
1
- import React, { useState } from 'react';
1
+ import React, { useEffect, useState } from 'react';
2
2
  import { ChevronsExpandUpRight, Xmark } from '@gravity-ui/icons';
3
3
  import { Icon, Modal } from '@gravity-ui/uikit';
4
+ import { SliderBlock } from '../../blocks';
5
+ import { SliderType } from '../../models';
4
6
  import { block } from '../../utils';
5
7
  import Image from '../Image/Image';
8
+ import { getMediaImage } from '../Media/Image/utils';
6
9
  import { i18n } from './i18n';
7
10
  import './FullscreenImage.css';
8
11
  const b = block('fullscreen-image');
9
12
  const FULL_SCREEN_ICON_SIZE = 18;
10
13
  const CLOSE_ICON_SIZE = 24;
11
14
  const FullscreenImage = (props) => {
12
- const { imageClassName, modalImageClass, imageStyle, alt = i18n('img-alt'), extraProps } = props;
15
+ const { imageClassName, sliderData, modalImageClass, imageStyle, alt = i18n('img-alt'), extraProps, } = props;
13
16
  const [isOpened, setIsOpened] = useState(false);
17
+ const [sliderLoaded, setSliderLoaded] = useState(false);
14
18
  const openModal = () => setIsOpened(true);
15
19
  const closeModal = () => setIsOpened(false);
20
+ useEffect(() => {
21
+ if (sliderData && !isOpened) {
22
+ setSliderLoaded(false);
23
+ }
24
+ }, [isOpened, sliderData]);
25
+ const handleSliderImageLoad = () => {
26
+ setSliderLoaded(true);
27
+ };
16
28
  return (React.createElement("div", Object.assign({ className: b() }, extraProps),
17
29
  React.createElement("div", { className: b('image-wrapper') },
18
30
  React.createElement(Image, Object.assign({}, props, { alt: alt, className: b('image', imageClassName), onClick: openModal, style: imageStyle })),
19
- React.createElement("button", { className: b('icon-wrapper'), onClick: openModal },
31
+ React.createElement("button", { className: b('expand-icon-wrapper'), onClick: openModal },
20
32
  React.createElement(Icon, { data: ChevronsExpandUpRight, width: FULL_SCREEN_ICON_SIZE, height: FULL_SCREEN_ICON_SIZE, className: b('icon') }))),
21
- isOpened && (React.createElement(Modal, { open: isOpened, onClose: closeModal, className: b('modal'), contentClassName: b('modal-content') },
22
- React.createElement("button", { className: b('icon-wrapper', { visible: true }), onClick: closeModal, "aria-label": i18n('close') },
33
+ isOpened && (React.createElement(Modal, { open: isOpened, onClose: closeModal, className: b('modal', { 'with-slider': Boolean(sliderData) }), contentClassName: b('modal-content', { loaded: sliderLoaded }) },
34
+ React.createElement("button", { className: b('close-icon-wrapper', { visible: true }), onClick: closeModal, "aria-label": i18n('close') },
23
35
  React.createElement(Icon, { data: Xmark, width: CLOSE_ICON_SIZE, height: CLOSE_ICON_SIZE, className: b('icon', { hover: true }) })),
24
- React.createElement(Image, Object.assign({}, props, { className: b('modal-image', modalImageClass) }))))));
36
+ sliderData ? (React.createElement("div", { className: b('modal-slider') },
37
+ React.createElement(SliderBlock, { initialSlide: sliderData.initialIndex, slidesToShow: 1, type: SliderType.FullscreenCard }, sliderData.items.map((item, index) => (React.createElement("div", { key: index, className: b('modal-slider_item') },
38
+ React.createElement(Image, Object.assign({ onLoad: handleSliderImageLoad, className: b('modal-slider_item-image', modalImageClass), containerClassName: b('modal-slider_item-image-wrapper') }, getMediaImage(item))))))))) : (React.createElement(Image, Object.assign({}, props, { className: b('modal-image', modalImageClass) })))))));
25
39
  };
26
40
  export default FullscreenImage;
@@ -1,19 +1,26 @@
1
- import React from 'react';
2
- import { QAProps } from '../../models/common';
3
- export interface HTMLProps {
4
- children?: string;
1
+ import React, { PropsWithChildren } from 'react';
2
+ import { ClassNameProps, QAProps, TagName } from '../../models/common';
3
+ export interface HTMLExtraProps {
4
+ tagName?: TagName;
5
+ contentPosition?: 'start' | 'end';
6
+ contentClassName?: string;
7
+ onlyContent?: boolean;
8
+ }
9
+ export interface HTMLProps extends HTMLExtraProps, PropsWithChildren, QAProps, ClassNameProps {
10
+ content?: string;
5
11
  block?: boolean;
6
- className?: string;
7
12
  itemProp?: string;
8
13
  id?: string;
9
14
  }
10
- declare const HTML: ({ children, block, className, itemProp, id, qa, }: React.PropsWithChildren<HTMLProps & QAProps>) => React.DetailedReactHTMLElement<{
15
+ declare const HTML: ({ content, children, block, className, contentClassName, qa, contentPosition, tagName, onlyContent, ...rest }: HTMLProps) => React.DOMElement<{
16
+ itemProp?: string | undefined;
17
+ id?: string | undefined;
11
18
  dangerouslySetInnerHTML: {
12
- __html: string | (string & React.ReactElement<any, string | React.JSXElementConstructor<any>>) | (string & React.ReactFragment) | (string & React.ReactPortal);
19
+ __html: string;
13
20
  };
14
21
  className: string | undefined;
15
- itemProp: string | undefined;
16
- id: string | undefined;
17
22
  'data-qa': string | undefined;
23
+ }, Element> | React.DetailedReactHTMLElement<{
24
+ className: string | undefined;
18
25
  }, HTMLElement> | null;
19
26
  export default HTML;
@@ -1,15 +1,21 @@
1
- import React from 'react';
2
- import { hasBlockTag } from '../../utils';
3
- const HTML = ({ children, block = false, className, itemProp, id, qa, }) => {
4
- if (!children) {
5
- return null;
1
+ import { __rest } from "tslib";
2
+ import React, { useMemo } from 'react';
3
+ import { selectTagName } from '../../utils';
4
+ const HTML = (_a) => {
5
+ var { content, children, block = false, className, contentClassName, qa, contentPosition = 'start', tagName = 'span', onlyContent = false } = _a, rest = __rest(_a, ["content", "children", "block", "className", "contentClassName", "qa", "contentPosition", "tagName", "onlyContent"]);
6
+ const renderedContent = useMemo(() => {
7
+ return content
8
+ ? React.createElement(selectTagName({ content, block, tagName, children }), Object.assign({ dangerouslySetInnerHTML: { __html: content }, className: contentClassName, 'data-qa': qa }, rest))
9
+ : null;
10
+ }, [block, children, content, contentClassName, qa, rest, tagName]);
11
+ if (onlyContent) {
12
+ return renderedContent;
6
13
  }
7
- return React.createElement(block || hasBlockTag(children) ? 'div' : 'span', {
8
- dangerouslySetInnerHTML: { __html: children },
9
- className,
10
- itemProp,
11
- id,
12
- 'data-qa': qa,
13
- });
14
+ if (children) {
15
+ return React.createElement(tagName, {
16
+ className,
17
+ }, contentPosition === 'start' ? renderedContent : null, children, contentPosition === 'end' ? renderedContent : null);
18
+ }
19
+ return renderedContent;
14
20
  };
15
21
  export default HTML;
@@ -4,6 +4,7 @@ export interface ImageAdditionProps {
4
4
  imageClassName?: string;
5
5
  isBackground?: boolean;
6
6
  fullscreen?: boolean;
7
+ fullscreenClassName?: string;
7
8
  onLoad?: () => void;
8
9
  }
9
10
  interface InnerImageProps {
@@ -1,7 +1,7 @@
1
1
  import React, { Fragment, useEffect, useState } from 'react';
2
2
  import { animated, config, useSpring } from '@react-spring/web';
3
3
  import debounce from 'lodash/debounce';
4
- import SliderBlock from '../../../blocks/Slider/Slider';
4
+ import { SliderBlock } from '../../../blocks';
5
5
  import { SliderType } from '../../../models';
6
6
  import { block, getQaAttrubutes } from '../../../utils';
7
7
  import BackgroundImage from '../../BackgroundImage/BackgroundImage';
@@ -12,7 +12,7 @@ import './Image.css';
12
12
  const b = block('media-component-image');
13
13
  export const defaultAnimatedDivQa = 'animated-div';
14
14
  const Image = (props) => {
15
- const { parallax, height, imageClassName, isBackground, hasVideoFallback, video, fullscreen, disableImageSliderForArrayInput, qa, onLoad, } = props;
15
+ const { parallax, height, imageClassName, fullscreenClassName, isBackground, hasVideoFallback, video, fullscreen, disableImageSliderForArrayInput, qa, onLoad, } = props;
16
16
  const image = Array.isArray(props.image) && disableImageSliderForArrayInput
17
17
  ? props.image[0]
18
18
  : props.image;
@@ -38,9 +38,9 @@ const Image = (props) => {
38
38
  parallaxInterpolate = springScrollY.to((value) => `translateY(-${Number(value) / parallaxLevel}px)`);
39
39
  }
40
40
  const imageClass = b('item', { withVideo: Boolean(video) && !hasVideoFallback }, imageClassName);
41
- const renderFullscreenImage = (item) => {
41
+ const renderFullscreenImage = (item, sliderData) => {
42
42
  const itemData = getMediaImage(item);
43
- return (React.createElement(FullscreenImage, Object.assign({ key: itemData.alt }, itemData, { imageClassName: imageClass, imageStyle: { height }, qa: qaAttributes.fullscreenImage })));
43
+ return (React.createElement(FullscreenImage, Object.assign({ key: itemData.alt }, itemData, { imageClassName: imageClass, modalImageClass: fullscreenClassName, imageStyle: { height }, qa: qaAttributes.fullscreenImage, sliderData: sliderData })));
44
44
  };
45
45
  const imageBackground = (oneImage) => {
46
46
  const imageData = getMediaImage(oneImage);
@@ -53,7 +53,9 @@ const Image = (props) => {
53
53
  };
54
54
  const imageSlider = (imageArray) => {
55
55
  const fullscreenItem = fullscreen === undefined || fullscreen;
56
- return (React.createElement(SliderBlock, { slidesToShow: 1, type: SliderType.MediaCard }, imageArray.map((item, index) => (React.createElement(Fragment, { key: index }, fullscreenItem ? renderFullscreenImage(item) : imageOnly(item))))));
56
+ return (React.createElement(SliderBlock, { slidesToShow: 1, type: SliderType.MediaCard }, imageArray.map((item, index) => (React.createElement(Fragment, { key: index }, fullscreenItem
57
+ ? renderFullscreenImage(item, { items: imageArray, initialIndex: index })
58
+ : imageOnly(item))))));
57
59
  };
58
60
  if (Array.isArray(image)) {
59
61
  return imageSlider(image);
@@ -8,4 +8,8 @@ unpredictable css rules order in build */
8
8
  overflow: hidden;
9
9
  display: flex;
10
10
  align-items: center;
11
+ }
12
+ .pc-Media__fullscreen-image-cover {
13
+ object-fit: cover;
14
+ object-position: top;
11
15
  }
@@ -4,6 +4,7 @@ import { VideoAdditionProps } from './Video/Video';
4
4
  import './Media.css';
5
5
  export interface MediaAllProps extends MediaProps, VideoAdditionProps, ImageAdditionProps, QAProps {
6
6
  className?: string;
7
+ isFullscreenImageCover?: boolean;
7
8
  youtubeClassName?: string;
8
9
  autoplay?: boolean;
9
10
  onImageLoad?: () => void;
@@ -11,14 +11,14 @@ import Video from './Video/Video';
11
11
  import './Media.css';
12
12
  const b = block('Media');
13
13
  export const Media = (props) => {
14
- const { image, video, youtube, videoIframe, dataLens, color, height, previewImg, parallax = false, fullscreen, analyticsEvents, className, imageClassName, videoClassName, youtubeClassName, disableImageSliderForArrayInput, playVideo = true, isBackground, playButton, customBarControlsClassName, qa, ratio, autoplay, onImageLoad, iframe, margins, videoMicrodata, } = props;
14
+ const { image, video, youtube, videoIframe, dataLens, color, height, previewImg, parallax = false, fullscreen, isFullscreenImageCover, analyticsEvents, className, imageClassName, videoClassName, youtubeClassName, disableImageSliderForArrayInput, playVideo = true, isBackground, playButton, customBarControlsClassName, qa, ratio, autoplay, onImageLoad, iframe, margins, videoMicrodata, } = props;
15
15
  const [hasVideoFallback, setHasVideoFallback] = useState(false);
16
16
  const { microdata } = useContext(InnerContext);
17
17
  const qaAttributes = getQaAttrubutes(qa, 'video');
18
18
  const content = useMemo(() => {
19
19
  let result = [];
20
20
  if (image) {
21
- result.push(React.createElement(Image, { key: "image", parallax: parallax, image: image, disableImageSliderForArrayInput: disableImageSliderForArrayInput, height: height, imageClassName: imageClassName, isBackground: isBackground, video: video, hasVideoFallback: hasVideoFallback, fullscreen: fullscreen, qa: qaAttributes.image, onLoad: onImageLoad }));
21
+ result.push(React.createElement(Image, { key: "image", parallax: parallax, image: image, disableImageSliderForArrayInput: disableImageSliderForArrayInput, height: height, imageClassName: imageClassName, fullscreenClassName: isFullscreenImageCover ? b('fullscreen-image-cover') : undefined, isBackground: isBackground, video: video, hasVideoFallback: hasVideoFallback, fullscreen: fullscreen, qa: qaAttributes.image, onLoad: onImageLoad }));
22
22
  }
23
23
  if (video) {
24
24
  const videoProps = {
@@ -66,6 +66,7 @@ export const Media = (props) => {
66
66
  isBackground,
67
67
  hasVideoFallback,
68
68
  fullscreen,
69
+ isFullscreenImageCover,
69
70
  qaAttributes.image,
70
71
  qaAttributes.video,
71
72
  onImageLoad,
@@ -6,6 +6,6 @@ unpredictable css rules order in build */
6
6
  display: flex;
7
7
  align-items: center;
8
8
  }
9
- .pc-meta-info__item:not(:first-child) {
9
+ .pc-meta-info__item.pc-meta-info__item:not(:first-child) {
10
10
  margin-left: 16px;
11
11
  }
@@ -3,5 +3,5 @@ import { block } from '../../utils';
3
3
  import { YFMWrapper } from '../index';
4
4
  import './MetaInfo.css';
5
5
  const b = block('meta-info');
6
- const MetaInfo = ({ items, className }) => (React.createElement("h4", { className: b(null, className) }, items.map((metaInfoItem) => (React.createElement(YFMWrapper, { content: metaInfoItem, key: metaInfoItem, className: b('item'), modifiers: { constructor: true, constructorMetaInfo: true } })))));
6
+ const MetaInfo = ({ items, className }) => (React.createElement("h4", { className: b(null, className) }, items.map((metaInfoItem) => (React.createElement(YFMWrapper, { content: metaInfoItem, key: metaInfoItem, contentClassName: b('item'), modifiers: { constructor: true, constructorMetaInfo: true } })))));
7
7
  export default MetaInfo;
@@ -74,9 +74,10 @@ unpredictable css rules order in build */
74
74
  .pc-table__legend-item + .pc-table__legend-item {
75
75
  margin-left: 32px;
76
76
  }
77
- .pc-table__legent-item-text {
77
+ .pc-table__legent-item-text.pc-table__legent-item-text {
78
78
  margin-left: 6px;
79
79
  }
80
+
80
81
  @media (max-width: 577px) {
81
82
  .pc-table__cell {
82
83
  min-width: 120px;
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { Check, Minus } from '@gravity-ui/icons';
3
3
  import { Icon } from '@gravity-ui/uikit';
4
- import { HTML, YFMWrapper } from '../';
4
+ import { YFMWrapper } from '../';
5
5
  import { block } from '../../utils';
6
6
  import './Table.css';
7
7
  function getMarkerId(index) {
@@ -23,7 +23,9 @@ export default class Table extends React.Component {
23
23
  }
24
24
  renderTable(content, marker, legend) {
25
25
  const justify = this.getDefaultJustify(content, this.props.justify);
26
- return (React.createElement("div", { className: b('table'), role: 'rowgroup' }, content.map((row, i) => (React.createElement("div", { key: i, className: b('row'), role: 'row' }, row.map((cell, j) => (React.createElement("div", { key: j, className: b('cell', { justify: justify[j] }), role: 'cell' }, legend && i && j ? (this.renderMarker(marker, cell)) : (React.createElement(HTML, null, cell))))))))));
26
+ return (React.createElement("div", { className: b('table'), role: 'rowgroup' }, content.map((row, i) => (React.createElement("div", { key: i, className: b('row'), role: 'row' }, row.map((cell, j) => (React.createElement("div", { key: j, className: b('cell', { justify: justify[j] }), role: 'cell' }, legend && i && j ? (this.renderMarker(marker, cell)) : (React.createElement(YFMWrapper, { tagName: "span", content: cell, modifiers: {
27
+ constructor: true,
28
+ } }))))))))));
27
29
  }
28
30
  renderMarker(type, cell) {
29
31
  return (React.createElement("div", { "aria-labelledby": getMarkerId(Number(cell)), className: b('marker', { type, index: String(cell) }) }, type === 'tick' ? (React.createElement(Icon, { size: 20, className: b('marker_tick', { check: Number(cell) === 1 }), data: Number(cell) === 1 ? Check : Minus })) : null));
@@ -31,7 +33,7 @@ export default class Table extends React.Component {
31
33
  renderLegend(legend, marker) {
32
34
  return (React.createElement("div", { className: b('legend') }, legend.map((item, index) => (React.createElement("div", { key: item, className: b('legend-item') },
33
35
  this.renderMarker(marker, String(index)),
34
- React.createElement(YFMWrapper, { className: b('legent-item-text'), content: item, modifiers: { constructor: true }, id: getMarkerId(index) }))))));
36
+ React.createElement(YFMWrapper, { contentClassName: b('legent-item-text'), content: item, modifiers: { constructor: true }, id: getMarkerId(index) }))))));
35
37
  }
36
38
  getDefaultJustify(content, justify) {
37
39
  return justify || new Array(content[0].length).fill('center');
@@ -96,22 +96,24 @@ unpredictable css rules order in build */
96
96
  .pc-title-item__link:hover .pc-title-item__arrow_size_s {
97
97
  margin-left: 8px;
98
98
  }
99
- .pc-title-item__text {
99
+ .pc-title-item__text.pc-title-item__text {
100
100
  white-space: normal;
101
+ font-size: inherit;
101
102
  }
102
- .pc-title-item__text a {
103
+ .pc-title-item__text.pc-title-item__text a {
103
104
  outline: none;
104
105
  color: var(--g-color-text-link);
105
106
  text-decoration: none;
106
107
  cursor: pointer;
107
108
  }
108
- .utilityfocus .pc-title-item__text a:focus {
109
+ .utilityfocus .pc-title-item__text.pc-title-item__text a:focus {
109
110
  outline: 2px solid #ffdb4d;
110
111
  }
111
- .pc-title-item__text a:hover, .pc-title-item__text a:active {
112
+ .pc-title-item__text.pc-title-item__text a:hover, .pc-title-item__text.pc-title-item__text a:active {
112
113
  --pc-text-header-color: var(--g-color-text-link-hover);
113
114
  color: var(--g-color-text-link-hover);
114
115
  }
116
+
115
117
  .pc-title-item__wrapper {
116
118
  white-space: nowrap;
117
119
  }
@@ -1,5 +1,5 @@
1
1
  import React, { Fragment, useContext } from 'react';
2
- import { HTML, ToggleArrow } from '../';
2
+ import { ToggleArrow, YFMWrapper } from '../';
3
3
  import { LocationContext } from '../../context/locationContext';
4
4
  import { MobileContext } from '../../context/mobileContext';
5
5
  import { block, getHeaderTag, getLinkProps } from '../../utils';
@@ -25,7 +25,9 @@ const TitleItem = (props) => {
25
25
  const { textSize = 'm', text, anchor, justify, url, onClick, custom, className, qa, resetMargin = true, urlTitle, } = props;
26
26
  const { hostname } = useContext(LocationContext);
27
27
  const textMarkup = (React.createElement(React.Fragment, null,
28
- React.createElement(HTML, { className: b('text') }, text),
28
+ React.createElement(YFMWrapper, { className: b('text'), contentClassName: b('text'), content: text, modifiers: {
29
+ constructor: true,
30
+ } }),
29
31
  custom && (React.createElement(React.Fragment, null,
30
32
  "\u00A0",
31
33
  React.createElement("span", { className: b('custom') }, custom)))));
@@ -1,10 +1,12 @@
1
+ import React, { PropsWithChildren } from 'react';
1
2
  import { ClassNameProps, Modifiers } from '../../models';
2
3
  import { QAProps } from '../../models/common';
3
- export interface YFMWrapperProps extends ClassNameProps, QAProps {
4
+ import { HTMLExtraProps } from '../HTML/HTML';
5
+ export interface YFMWrapperProps extends PropsWithChildren, ClassNameProps, QAProps, HTMLExtraProps, React.HTMLProps<{}> {
4
6
  content: string;
5
7
  modifiers?: Modifiers;
6
8
  itemProp?: string;
7
9
  id?: string;
8
10
  }
9
- declare const YFMWrapper: ({ content, modifiers, className, itemProp, id, qa }: YFMWrapperProps) => JSX.Element;
11
+ declare const YFMWrapper: ({ contentClassName, modifiers, children, ...rest }: YFMWrapperProps) => JSX.Element;
10
12
  export default YFMWrapper;
@@ -1,3 +1,4 @@
1
+ import { __rest } from "tslib";
1
2
  /* we won't use 'pc' class prefix here to let you opportunity to define yfm styles
2
3
  in your project via global 'yfm' class */
3
4
  import React from 'react';
@@ -5,5 +6,8 @@ import toSnakeCase from 'snakecase-keys';
5
6
  import { HTML } from '../../components';
6
7
  import { cn } from '../../utils';
7
8
  const yfm = cn('yfm');
8
- const YFMWrapper = ({ content, modifiers, className, itemProp, id, qa }) => (React.createElement(HTML, { className: yfm(modifiers ? toSnakeCase(modifiers) : {}, className), itemProp: itemProp, id: id, qa: qa }, content));
9
+ const YFMWrapper = (_a) => {
10
+ var { contentClassName, modifiers, children } = _a, rest = __rest(_a, ["contentClassName", "modifiers", "children"]);
11
+ return (React.createElement(HTML, Object.assign({ contentClassName: yfm(modifiers ? toSnakeCase(modifiers) : {}, contentClassName) }, rest), children));
12
+ };
9
13
  export default YFMWrapper;
@@ -1,5 +1,5 @@
1
1
  export declare const blockMap: {
2
- "slider-block": (props: import("react").PropsWithChildren<import("./blocks/Slider/Slider").SliderProps>) => JSX.Element;
2
+ "slider-old-block": (props: import("react").PropsWithChildren<import("./blocks/SliderOld/SliderOld").SliderOldProps>) => JSX.Element;
3
3
  "extended-features-block": ({ title, description, items, colSizes, animated, }: import("./models").ExtendedFeaturesProps) => JSX.Element;
4
4
  "promo-features-block": (props: import("./models").PromoFeaturesProps) => JSX.Element;
5
5
  "questions-block": (props: import("./models").QuestionsProps) => JSX.Element;
@@ -18,7 +18,7 @@ export declare const blockMap: {
18
18
  "map-block": ({ map, border, disableShadow, ...props }: import("./models").MapBlockProps) => JSX.Element;
19
19
  "filter-block": import("react").FC<import("./models").FilterBlockProps>;
20
20
  "form-block": import("react").FC<import("./models").FormBlockProps>;
21
- "slider-new-block": ({ animated, title, description, type, anchorId, arrows, adaptive, autoplay: autoplayMs, dots, className, dotsClassName, disclaimer, children, blockClassName, arrowSize, slidesToShow, onSlideChange, onSlideChangeTransitionStart, onSlideChangeTransitionEnd, onActiveIndexChange, onBreakpoint, }: import("react").PropsWithChildren<import("./blocks/SliderNew/Slider").SliderNewProps>) => JSX.Element;
21
+ "slider-block": ({ animated, title, description, type, anchorId, arrows, adaptive, autoplay: autoplayMs, dots, initialSlide, className, dotsClassName, disclaimer, children, blockClassName, arrowSize, slidesToShow, onSlideChange, onSlideChangeTransitionStart, onSlideChangeTransitionEnd, onActiveIndexChange, onBreakpoint, }: import("react").PropsWithChildren<import("./blocks/Slider/Slider").SliderProps>) => JSX.Element;
22
22
  };
23
23
  export declare const subBlockMap: {
24
24
  divider: ({ size, border }: import("./models").DividerProps) => JSX.Element;
@@ -1,11 +1,10 @@
1
- import { BannerBlock, CardLayoutBlock, CompaniesBlock, ContentLayoutBlock, ExtendedFeaturesBlock, FilterBlock, FormBlock, HeaderBlock, HeaderSliderBlock, IconsBlock, InfoBlock, MapBlock, MediaBlock, PromoFeaturesBlock, QuestionsBlock, ShareBlock, SliderBlock, TableBlock, TabsBlock, } from './blocks';
2
- import { SliderNewBlock } from './blocks/unstable';
1
+ import { BannerBlock, CardLayoutBlock, CompaniesBlock, ContentLayoutBlock, ExtendedFeaturesBlock, FilterBlock, FormBlock, HeaderBlock, HeaderSliderBlock, IconsBlock, InfoBlock, MapBlock, MediaBlock, PromoFeaturesBlock, QuestionsBlock, ShareBlock, SliderBlock, SliderOldBlock, TableBlock, TabsBlock, } from './blocks';
3
2
  import { BlockType, NavigationItemType, SubBlockType } from './models';
4
3
  import { GithubButton, NavigationButton, NavigationDropdown, NavigationLink, } from './navigation/components/NavigationItem';
5
4
  import SocialIcon from './navigation/components/SocialIcon/SocialIcon';
6
5
  import { BackgroundCard, BannerCard, BasicCard, Content, Divider, ImageCard, LayoutItem, MediaCard, PriceCard, PriceDetailed, Quote, } from './sub-blocks';
7
6
  export const blockMap = {
8
- [BlockType.SliderBlock]: SliderBlock,
7
+ [BlockType.SliderOldBlock]: SliderOldBlock,
9
8
  [BlockType.ExtendedFeaturesBlock]: ExtendedFeaturesBlock,
10
9
  [BlockType.PromoFeaturesBlock]: PromoFeaturesBlock,
11
10
  [BlockType.QuestionsBlock]: QuestionsBlock,
@@ -24,8 +23,7 @@ export const blockMap = {
24
23
  [BlockType.MapBlock]: MapBlock,
25
24
  [BlockType.FilterBlock]: FilterBlock,
26
25
  [BlockType.FormBlock]: FormBlock,
27
- // unstable
28
- [BlockType.SliderNewBlock]: SliderNewBlock,
26
+ [BlockType.SliderBlock]: SliderBlock,
29
27
  };
30
28
  export const subBlockMap = {
31
29
  [SubBlockType.Divider]: Divider,
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "template": {
3
- "type": "slider-new-block",
3
+ "type": "slider-old-block",
4
4
  "title": {
5
- "text": "Slider new",
5
+ "text": "Slider",
6
6
  "url": "https://example.com"
7
7
  },
8
8
  "children": [
@@ -50,3 +50,4 @@ export type AnalyticsEventsProp = AnalyticsEvent | AnalyticsEvent[];
50
50
  export interface AnalyticsEventsBase {
51
51
  analyticsEvents?: AnalyticsEventsProp;
52
52
  }
53
+ export type TagName = 'span' | 'div' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'section' | 'p';