@meduza/ui-kit-2 0.1.19 → 0.1.21

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 (87) hide show
  1. package/dist/Cover/Cover.types.d.ts +21 -1
  2. package/dist/DotsOnImage/DotsOnImage.types.d.ts +1 -1
  3. package/dist/Image/Image.types.d.ts +1 -6
  4. package/dist/ListBlock/ListBlock.stories.d.ts +2 -1
  5. package/dist/ListBlock/ListBlock.types.d.ts +7 -1
  6. package/dist/RelatedBlock/RelatedBlock.types.d.ts +14 -1
  7. package/dist/RelatedRichBlock/RelatedRichBlock.stories.d.ts +10 -0
  8. package/dist/RelatedRichBlock/RelatedRichBlock.types.d.ts +4 -0
  9. package/dist/RelatedRichBlock/index.d.ts +3 -0
  10. package/dist/RichTitle/RichTitle.types.d.ts +8 -1
  11. package/dist/SimpleTitle/SimpleTitle.types.d.ts +6 -1
  12. package/dist/SourceBlock/SourceBlock.types.d.ts +12 -1
  13. package/dist/index.d.ts +1 -0
  14. package/dist/types.d.ts +6 -0
  15. package/dist/ui-kit-2.cjs.development.js +147 -47
  16. package/dist/ui-kit-2.cjs.development.js.map +1 -1
  17. package/dist/ui-kit-2.cjs.production.min.js +1 -1
  18. package/dist/ui-kit-2.cjs.production.min.js.map +1 -1
  19. package/dist/ui-kit-2.esm.js +147 -48
  20. package/dist/ui-kit-2.esm.js.map +1 -1
  21. package/dist/ui-kit.css +1157 -961
  22. package/dist/utils/converCase.d.ts +2 -0
  23. package/dist/utils/generateGradient.d.ts +1 -1
  24. package/package.json +4 -1
  25. package/src/.DS_Store +0 -0
  26. package/src/BookmarkButton/BookmarkButton.test.tsx +17 -4
  27. package/src/CardTitle/CardTitle.test.tsx +4 -3
  28. package/src/ChapterBlock/ChapterBlock.test.tsx +4 -3
  29. package/src/Cover/Cover.test.tsx +3 -3
  30. package/src/Cover/Cover.types.ts +22 -1
  31. package/src/Cover/index.tsx +1 -1
  32. package/src/DocumentItemsCount/DocumentItemsCount.test.tsx +4 -3
  33. package/src/DotsOnImage/DotsOnImage.test.tsx +4 -2
  34. package/src/DotsOnImage/DotsOnImage.types.ts +1 -1
  35. package/src/EmbedBlock/EmbedBlock.test.tsx +16 -3
  36. package/src/EmbedBlock/index.tsx +1 -1
  37. package/src/GroupedBlock/GroupedBlock.test.tsx +5 -3
  38. package/src/HalfBlock/HalfBlock.test.tsx +4 -3
  39. package/src/Image/Image.test.tsx +3 -0
  40. package/src/Image/Image.types.ts +1 -6
  41. package/src/Image/RenderPicture.tsx +1 -1
  42. package/src/ImportantLead/ImportantLead.test.tsx +10 -8
  43. package/src/ImportantLead/mock.json +6 -0
  44. package/src/Lazy/Lazy.test.tsx +3 -0
  45. package/src/ListBlock/ListBlock.stories.tsx +2 -1
  46. package/src/ListBlock/ListBlock.test.tsx +8 -4
  47. package/src/ListBlock/ListBlock.types.ts +6 -1
  48. package/src/ListBlock/index.tsx +1 -1
  49. package/src/ListBlock/mock.json +1 -1
  50. package/src/MaterialNote/MaterialNote.test.tsx +4 -3
  51. package/src/Meta/Meta.module.css +1 -1
  52. package/src/QuoteBlock/QuoteBlock.test.tsx +4 -3
  53. package/src/RawHtmlBlock/RawHtmlBlock.test.tsx +18 -9
  54. package/src/RawHtmlBlock/mock.json +6 -0
  55. package/src/RelatedBlock/RelatedBlock.test.tsx +4 -3
  56. package/src/RelatedBlock/RelatedBlock.types.ts +14 -1
  57. package/src/RelatedRichBlock/RelatedRichBlock.module.css +165 -0
  58. package/src/RelatedRichBlock/RelatedRichBlock.stories.module.css +12 -0
  59. package/src/RelatedRichBlock/RelatedRichBlock.stories.tsx +55 -0
  60. package/src/RelatedRichBlock/RelatedRichBlock.test.tsx +20 -0
  61. package/src/RelatedRichBlock/RelatedRichBlock.types.ts +4 -0
  62. package/src/RelatedRichBlock/index.tsx +105 -0
  63. package/src/RelatedRichBlock/mock.json +354 -0
  64. package/src/RenderBlocks/RenderBlocks.stories.module.css +3 -0
  65. package/src/RenderBlocks/RenderBlocks.stories.tsx +4 -1
  66. package/src/RenderBlocks/RenderBlocks.test.tsx +15 -9
  67. package/src/RenderBlocks/index.tsx +5 -0
  68. package/src/RenderBlocks/mock.json +83 -0
  69. package/src/RichTitle/RichTitle.module.css +37 -7
  70. package/src/RichTitle/RichTitle.test.tsx +4 -3
  71. package/src/RichTitle/RichTitle.types.ts +8 -1
  72. package/src/SimpleBlock/SimpleBlock.test.tsx +16 -9
  73. package/src/SimpleBlock/mock.json +6 -0
  74. package/src/SimpleTitle/SimpleTitle.test.tsx +4 -3
  75. package/src/SimpleTitle/SimpleTitle.types.ts +6 -1
  76. package/src/SourceBlock/SourceBlock.test.tsx +4 -3
  77. package/src/SourceBlock/SourceBlock.types.ts +13 -1
  78. package/src/Spoiler/Spoiler.test.tsx +4 -3
  79. package/src/Table/Table.test.tsx +3 -3
  80. package/src/Timestamp/Timestamp.test.tsx +4 -3
  81. package/src/ToolbarButton/ToolbarButton.test.tsx +8 -3
  82. package/src/_storybook/PreviewWrapper/PreviewWrapper.module.css +3 -1
  83. package/src/index.tsx +1 -0
  84. package/src/types.ts +6 -0
  85. package/src/utils/{toCamel.ts → converCase.ts} +3 -0
  86. package/src/utils/generateGradient.ts +21 -15
  87. package/dist/utils/toCamel.d.ts +0 -1
@@ -0,0 +1,354 @@
1
+ {
2
+ "rich": {
3
+ "type": "related_rich",
4
+ "data": {
5
+ "url": "https://meduza.io/",
6
+ "fallback": {
7
+ "data": {
8
+ "title": "Не богато вышло",
9
+ "related": [
10
+ {
11
+ "title": "«Если кто-нибудь видит меня и слышит, пожалуйста, распространите это видео любым способом! Чтобы я существовал!»",
12
+ "second": "Автор фильма «Котлован» — о том, как сделал его из обращений россиян к Путину",
13
+ "layout": "rich",
14
+ "url": "feature/2018/09/18/na-rossiyskuyu-bolnitsu-pervye-podali-v-sud-za-otkaz-v-poseschenii-umirayuschego-v-reanimatsii-rodstvennika-sud-vstal-na-storonu-medikov",
15
+ "id": "0-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
16
+ }
17
+ ]
18
+ },
19
+ "only_on": "mobile"
20
+ },
21
+ "cover": {
22
+ "ratio": 1.4976958525,
23
+ "layout": "rich",
24
+ "urls": {
25
+ "w325": {
26
+ "1x": "http://meduza.io/image/attachments/images/006/087/556/elarge/E_3uGWnvssXzgtJ05-_Rfw.jpg",
27
+ "2x": "http://meduza.io/image/attachments/images/006/087/556/elarge/E_3uGWnvssXzgtJ05-_Rfw.jpg",
28
+ "1x_webp": "http://meduza.io/impro/MbBIK4vj9YMr8INLi6GMIYF4muqHFCWV0b1rxhhM6aI/fill/0/0/ce/1/aHR0cHM6Ly9tZWR1/emEuaW8vaW1hZ2Uv/YXR0YWNobWVudHMv/aW1hZ2VzLzAwNi8w/ODcvNTU2L2VsYXJn/ZS9FXzN1R1dudnNz/WHpndEowNS1fUmZ3/LmpwZw.webp",
29
+ "2x_webp": "http://meduza.io/impro/MbBIK4vj9YMr8INLi6GMIYF4muqHFCWV0b1rxhhM6aI/fill/0/0/ce/1/aHR0cHM6Ly9tZWR1/emEuaW8vaW1hZ2Uv/YXR0YWNobWVudHMv/aW1hZ2VzLzAwNi8w/ODcvNTU2L2VsYXJn/ZS9FXzN1R1dudnNz/WHpndEowNS1fUmZ3/LmpwZw.webp"
30
+ },
31
+ "w600": {
32
+ "1x": "http://meduza.io/image/attachments/images/006/087/556/elarge/E_3uGWnvssXzgtJ05-_Rfw.jpg",
33
+ "2x": "http://meduza.io/image/attachments/images/006/087/556/elarge/E_3uGWnvssXzgtJ05-_Rfw.jpg",
34
+ "1x_webp": "http://meduza.io/impro/MbBIK4vj9YMr8INLi6GMIYF4muqHFCWV0b1rxhhM6aI/fill/0/0/ce/1/aHR0cHM6Ly9tZWR1/emEuaW8vaW1hZ2Uv/YXR0YWNobWVudHMv/aW1hZ2VzLzAwNi8w/ODcvNTU2L2VsYXJn/ZS9FXzN1R1dudnNz/WHpndEowNS1fUmZ3/LmpwZw.webp",
35
+ "2x_webp": "http://meduza.io/impro/MbBIK4vj9YMr8INLi6GMIYF4muqHFCWV0b1rxhhM6aI/fill/0/0/ce/1/aHR0cHM6Ly9tZWR1/emEuaW8vaW1hZ2Uv/YXR0YWNobWVudHMv/aW1hZ2VzLzAwNi8w/ODcvNTU2L2VsYXJn/ZS9FXzN1R1dudnNz/WHpndEowNS1fUmZ3/LmpwZw.webp"
36
+ }
37
+ },
38
+ "tag": "Читайте также"
39
+ },
40
+ "blocks": [
41
+ {
42
+ "type": "rich_title",
43
+ "data": {
44
+ "first": "«Если кто-нибудь видит меня и слышит, пожалуйста, распространите это видео любым способом! Чтобы я существовал!»",
45
+ "second": "Автор фильма «Котлован» — о том, как сделал его из обращений россиян к Путину",
46
+ "as": "h3",
47
+ "featured": false
48
+ },
49
+ "id": "1-7b53ea24bd8ae1cfa59f45e4e4027bdabb5bf9667b97f0a6ed45d6b464c47356"
50
+ },
51
+ {
52
+ "type": "meta",
53
+ "data": {
54
+ "lang": "ru",
55
+ "components": [
56
+ {
57
+ "type": "datetime",
58
+ "datetime": 1600593764,
59
+ "id": "7639a7d1455a1ca907de0fc98a22b017e23f30e7df15b0739c78418848d674b5"
60
+ }
61
+ ],
62
+ "theme": "dark"
63
+ },
64
+ "id": "2-e09585bd2b15e886b22728975010295dae47dd7ace948bc8aa012080f713290d"
65
+ }
66
+ ]
67
+ },
68
+ "only_on": "mobile"
69
+ },
70
+
71
+ "rich_dark": {
72
+ "type": "related_rich",
73
+ "data": {
74
+ "url": "https://meduza.io/",
75
+ "fallback": {
76
+ "data": {
77
+ "title": "Не богато вышло",
78
+ "related": [
79
+ {
80
+ "title": "«Если кто-нибудь видит меня и слышит, пожалуйста, распространите это видео любым способом! Чтобы я существовал!»",
81
+ "second": "Автор фильма «Котлован» — о том, как сделал его из обращений россиян к Путину",
82
+ "layout": "rich",
83
+ "url": "feature/2018/09/18/na-rossiyskuyu-bolnitsu-pervye-podali-v-sud-za-otkaz-v-poseschenii-umirayuschego-v-reanimatsii-rodstvennika-sud-vstal-na-storonu-medikov",
84
+ "id": "0-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
85
+ }
86
+ ]
87
+ },
88
+ "only_on": "desktop"
89
+ },
90
+ "cover": {
91
+ "ratio": 1.4976958525,
92
+ "layout": "rich",
93
+ "urls": {
94
+ "w325": {
95
+ "1x": "http://meduza.io/image/attachments/images/006/087/556/elarge/E_3uGWnvssXzgtJ05-_Rfw.jpg",
96
+ "2x": "http://meduza.io/image/attachments/images/006/087/556/elarge/E_3uGWnvssXzgtJ05-_Rfw.jpg",
97
+ "1x_webp": "http://meduza.io/impro/MbBIK4vj9YMr8INLi6GMIYF4muqHFCWV0b1rxhhM6aI/fill/0/0/ce/1/aHR0cHM6Ly9tZWR1/emEuaW8vaW1hZ2Uv/YXR0YWNobWVudHMv/aW1hZ2VzLzAwNi8w/ODcvNTU2L2VsYXJn/ZS9FXzN1R1dudnNz/WHpndEowNS1fUmZ3/LmpwZw.webp",
98
+ "2x_webp": "http://meduza.io/impro/MbBIK4vj9YMr8INLi6GMIYF4muqHFCWV0b1rxhhM6aI/fill/0/0/ce/1/aHR0cHM6Ly9tZWR1/emEuaW8vaW1hZ2Uv/YXR0YWNobWVudHMv/aW1hZ2VzLzAwNi8w/ODcvNTU2L2VsYXJn/ZS9FXzN1R1dudnNz/WHpndEowNS1fUmZ3/LmpwZw.webp"
99
+ },
100
+ "w600": {
101
+ "1x": "http://meduza.io/image/attachments/images/006/087/556/elarge/E_3uGWnvssXzgtJ05-_Rfw.jpg",
102
+ "2x": "http://meduza.io/image/attachments/images/006/087/556/elarge/E_3uGWnvssXzgtJ05-_Rfw.jpg",
103
+ "1x_webp": "http://meduza.io/impro/MbBIK4vj9YMr8INLi6GMIYF4muqHFCWV0b1rxhhM6aI/fill/0/0/ce/1/aHR0cHM6Ly9tZWR1/emEuaW8vaW1hZ2Uv/YXR0YWNobWVudHMv/aW1hZ2VzLzAwNi8w/ODcvNTU2L2VsYXJn/ZS9FXzN1R1dudnNz/WHpndEowNS1fUmZ3/LmpwZw.webp",
104
+ "2x_webp": "http://meduza.io/impro/MbBIK4vj9YMr8INLi6GMIYF4muqHFCWV0b1rxhhM6aI/fill/0/0/ce/1/aHR0cHM6Ly9tZWR1/emEuaW8vaW1hZ2Uv/YXR0YWNobWVudHMv/aW1hZ2VzLzAwNi8w/ODcvNTU2L2VsYXJn/ZS9FXzN1R1dudnNz/WHpndEowNS1fUmZ3/LmpwZw.webp"
105
+ }
106
+ },
107
+ "tag": "Читайте также",
108
+ "gradients": {
109
+ "text_rgb": "255,255,255",
110
+ "bg_rgb": "0,0,0"
111
+ }
112
+ },
113
+ "blocks": [
114
+ {
115
+ "type": "rich_title",
116
+ "data": {
117
+ "first": "«Если кто-нибудь видит меня и слышит, пожалуйста, распространите это видео любым способом! Чтобы я существовал!»",
118
+ "second": "Автор фильма «Котлован» — о том, как сделал его из обращений россиян к Путину",
119
+ "as": "h3",
120
+ "featured": false
121
+ },
122
+ "id": "1-7b53ea24bd8ae1cfa59f45e4e4027bdabb5bf9667b97f0a6ed45d6b464c47356"
123
+ },
124
+ {
125
+ "type": "meta",
126
+ "data": {
127
+ "lang": "ru",
128
+ "components": [
129
+ {
130
+ "type": "datetime",
131
+ "datetime": 1600593764,
132
+ "id": "7639a7d1455a1ca907de0fc98a22b017e23f30e7df15b0739c78418848d674b5"
133
+ }
134
+ ],
135
+ "theme": "light"
136
+ },
137
+ "id": "2-e09585bd2b15e886b22728975010295dae47dd7ace948bc8aa012080f713290d"
138
+ }
139
+ ]
140
+ },
141
+ "only_on": "desktop"
142
+ },
143
+
144
+ "rich_and_featured_desktop": {
145
+ "type": "related_rich",
146
+ "data": {
147
+ "url": "https://meduza.io/",
148
+ "fallback": {
149
+ "data": {
150
+ "title": "Не богато вышло",
151
+ "related": [
152
+ {
153
+ "title": "«Если кто-нибудь видит меня и слышит, пожалуйста, распространите это видео любым способом! Чтобы я существовал!»",
154
+ "second": "Автор фильма «Котлован» — о том, как сделал его из обращений россиян к Путину",
155
+ "layout": "rich",
156
+ "url": "feature/2018/09/18/na-rossiyskuyu-bolnitsu-pervye-podali-v-sud-za-otkaz-v-poseschenii-umirayuschego-v-reanimatsii-rodstvennika-sud-vstal-na-storonu-medikov",
157
+ "id": "0-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
158
+ }
159
+ ]
160
+ },
161
+ "only_on": "desktop"
162
+ },
163
+ "cover": {
164
+ "ratio": 1.4976958525,
165
+ "layout": "rich",
166
+ "urls": {
167
+ "w325": {
168
+ "1x": "http://meduza.io/image/attachments/images/006/087/556/elarge/E_3uGWnvssXzgtJ05-_Rfw.jpg",
169
+ "2x": "http://meduza.io/image/attachments/images/006/087/556/elarge/E_3uGWnvssXzgtJ05-_Rfw.jpg",
170
+ "1x_webp": "http://meduza.io/impro/MbBIK4vj9YMr8INLi6GMIYF4muqHFCWV0b1rxhhM6aI/fill/0/0/ce/1/aHR0cHM6Ly9tZWR1/emEuaW8vaW1hZ2Uv/YXR0YWNobWVudHMv/aW1hZ2VzLzAwNi8w/ODcvNTU2L2VsYXJn/ZS9FXzN1R1dudnNz/WHpndEowNS1fUmZ3/LmpwZw.webp",
171
+ "2x_webp": "http://meduza.io/impro/MbBIK4vj9YMr8INLi6GMIYF4muqHFCWV0b1rxhhM6aI/fill/0/0/ce/1/aHR0cHM6Ly9tZWR1/emEuaW8vaW1hZ2Uv/YXR0YWNobWVudHMv/aW1hZ2VzLzAwNi8w/ODcvNTU2L2VsYXJn/ZS9FXzN1R1dudnNz/WHpndEowNS1fUmZ3/LmpwZw.webp"
172
+ },
173
+ "w600": {
174
+ "1x": "http://meduza.io/image/attachments/images/006/087/556/elarge/E_3uGWnvssXzgtJ05-_Rfw.jpg",
175
+ "2x": "http://meduza.io/image/attachments/images/006/087/556/elarge/E_3uGWnvssXzgtJ05-_Rfw.jpg",
176
+ "1x_webp": "http://meduza.io/impro/MbBIK4vj9YMr8INLi6GMIYF4muqHFCWV0b1rxhhM6aI/fill/0/0/ce/1/aHR0cHM6Ly9tZWR1/emEuaW8vaW1hZ2Uv/YXR0YWNobWVudHMv/aW1hZ2VzLzAwNi8w/ODcvNTU2L2VsYXJn/ZS9FXzN1R1dudnNz/WHpndEowNS1fUmZ3/LmpwZw.webp",
177
+ "2x_webp": "http://meduza.io/impro/MbBIK4vj9YMr8INLi6GMIYF4muqHFCWV0b1rxhhM6aI/fill/0/0/ce/1/aHR0cHM6Ly9tZWR1/emEuaW8vaW1hZ2Uv/YXR0YWNobWVudHMv/aW1hZ2VzLzAwNi8w/ODcvNTU2L2VsYXJn/ZS9FXzN1R1dudnNz/WHpndEowNS1fUmZ3/LmpwZw.webp"
178
+ }
179
+ },
180
+ "tag": "Читайте также",
181
+ "gradients": {
182
+ "text_rgb": "0,0,0",
183
+ "bg_rgb": "171,209,171"
184
+ }
185
+ },
186
+ "blocks": [
187
+ {
188
+ "type": "rich_title",
189
+ "data": {
190
+ "first": "«Если кто-нибудь видит меня и слышит, пожалуйста, распространите это видео любым способом! Чтобы я существовал!»",
191
+ "second": "Автор фильма «Котлован» — о том, как сделал его из обращений россиян к Путину",
192
+ "as": "h3",
193
+ "featured": false
194
+ },
195
+ "id": "1-7b53ea24bd8ae1cfa59f45e4e4027bdabb5bf9667b97f0a6ed45d6b464c47356"
196
+ },
197
+ {
198
+ "type": "meta",
199
+ "data": {
200
+ "lang": "ru",
201
+ "components": [
202
+ {
203
+ "type": "datetime",
204
+ "datetime": 1600593764,
205
+ "id": "7639a7d1455a1ca907de0fc98a22b017e23f30e7df15b0739c78418848d674b5"
206
+ }
207
+ ],
208
+ "theme": "dark"
209
+ },
210
+ "id": "2-e09585bd2b15e886b22728975010295dae47dd7ace948bc8aa012080f713290d"
211
+ }
212
+ ]
213
+ },
214
+ "only_on": "desktop"
215
+ },
216
+
217
+ "rich_and_featured_mobile": {
218
+ "type": "related_rich",
219
+ "data": {
220
+ "url": "https://meduza.io/",
221
+ "fallback": {
222
+ "data": {
223
+ "title": "Не богато вышло",
224
+ "related": [
225
+ {
226
+ "title": "«Если кто-нибудь видит меня и слышит, пожалуйста, распространите это видео любым способом! Чтобы я существовал!»",
227
+ "second": "Автор фильма «Котлован» — о том, как сделал его из обращений россиян к Путину",
228
+ "layout": "rich",
229
+ "url": "feature/2018/09/18/na-rossiyskuyu-bolnitsu-pervye-podali-v-sud-za-otkaz-v-poseschenii-umirayuschego-v-reanimatsii-rodstvennika-sud-vstal-na-storonu-medikov",
230
+ "id": "0-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
231
+ }
232
+ ]
233
+ },
234
+ "only_on": "mobile"
235
+ },
236
+ "cover": {
237
+ "ratio": 0.63,
238
+ "layout": "rich",
239
+ "urls": {
240
+ "w325": {
241
+ "1x": "http://meduza.io/impro/YW9jtqBkQc7dgyPKdgtvS8JlSvPyIgY7p-7-9C49csw/fill/325/0/ce/1/aHR0cHM6Ly9tZWR1/emEuaW8vaW1hZ2Uv/YXR0YWNobWVudHMv/aW1hZ2VzLzAwNC81/NDMvOTE4L29yaWdp/bmFsLzRDeHQwdFR5/YWhlUGhnZHd4YVBz/R1EuanBn.jpg",
242
+ "2x": "http://meduza.io/impro/jQf0sx4Df9y23YQ0HKyGauLGYB6kMxQ_jR2QExB4_Q0/fill/650/0/ce/1/aHR0cHM6Ly9tZWR1/emEuaW8vaW1hZ2Uv/YXR0YWNobWVudHMv/aW1hZ2VzLzAwNC81/NDMvOTE4L29yaWdp/bmFsLzRDeHQwdFR5/YWhlUGhnZHd4YVBz/R1EuanBn.jpg",
243
+ "1x_webp": "http://meduza.io/impro/dROSpimx8lYjBAbaWxhjPzPggOoz_RxV8useloSPgbQ/fill/325/0/ce/1/aHR0cHM6Ly9tZWR1/emEuaW8vaW1hZ2Uv/YXR0YWNobWVudHMv/aW1hZ2VzLzAwNC81/NDMvOTE4L29yaWdp/bmFsLzRDeHQwdFR5/YWhlUGhnZHd4YVBz/R1EuanBn.webp",
244
+ "2x_webp": "http://meduza.io/impro/dgkov3ooEbjTSe1sUvY-NLVUr6y56Dbmtpke_g-i65c/fill/650/0/ce/1/aHR0cHM6Ly9tZWR1/emEuaW8vaW1hZ2Uv/YXR0YWNobWVudHMv/aW1hZ2VzLzAwNC81/NDMvOTE4L29yaWdp/bmFsLzRDeHQwdFR5/YWhlUGhnZHd4YVBz/R1EuanBn.webp"
245
+ },
246
+ "w600": {
247
+ "1x": "http://meduza.io/impro/03bNGjN3Exb5vIT4jm4-VouBTahiFgH9gF8MhGd5hdw/fill/600/0/ce/1/aHR0cHM6Ly9tZWR1/emEuaW8vaW1hZ2Uv/YXR0YWNobWVudHMv/aW1hZ2VzLzAwNC81/NDMvOTE4L29yaWdp/bmFsLzRDeHQwdFR5/YWhlUGhnZHd4YVBz/R1EuanBn.jpg",
248
+ "2x": "http://meduza.io/impro/k7qCc2LDxE-qv6L2P5LBGo-Qmdlm68WxC2OIi6yg_SY/fill/1200/0/ce/1/aHR0cHM6Ly9tZWR1/emEuaW8vaW1hZ2Uv/YXR0YWNobWVudHMv/aW1hZ2VzLzAwNC81/NDMvOTE4L29yaWdp/bmFsLzRDeHQwdFR5/YWhlUGhnZHd4YVBz/R1EuanBn.jpg",
249
+ "1x_webp": "http://meduza.io/impro/4So4ZS9GWd3WTs4fUY7Lbk4CiKkoPhUQiigwXxZVGo0/fill/600/0/ce/1/aHR0cHM6Ly9tZWR1/emEuaW8vaW1hZ2Uv/YXR0YWNobWVudHMv/aW1hZ2VzLzAwNC81/NDMvOTE4L29yaWdp/bmFsLzRDeHQwdFR5/YWhlUGhnZHd4YVBz/R1EuanBn.webp",
250
+ "2x_webp": "http://meduza.io/impro/VZ5TtAH8GN9hENkyuoPhG7TvCLemOhHf1fgJKG9i5T4/fill/1200/0/ce/1/aHR0cHM6Ly9tZWR1/emEuaW8vaW1hZ2Uv/YXR0YWNobWVudHMv/aW1hZ2VzLzAwNC81/NDMvOTE4L29yaWdp/bmFsLzRDeHQwdFR5/YWhlUGhnZHd4YVBz/R1EuanBn.webp"
251
+ }
252
+ },
253
+ "tag": "Читайте также",
254
+ "gradients": {
255
+ "text_rgb": "255,255,255",
256
+ "bg_rgb": "0,0,0"
257
+ }
258
+ },
259
+ "blocks": [
260
+ {
261
+ "type": "rich_title",
262
+ "data": {
263
+ "first": "«В биеннале есть что-то очень садистское»",
264
+ "second": "Куратор Венецианской биеннале современного искусства Ральф Ругофф — как он добивался, чтобы выставка не была для зрителей мучением",
265
+ "as": "h3",
266
+ "featured": true
267
+ },
268
+ "id": "1-7b53ea24bd8ae1cfa59f45e4e4027bdabb5bf9667b97f0a6ed45d6b464c47356"
269
+ },
270
+ {
271
+ "type": "meta",
272
+ "data": {
273
+ "lang": "ru",
274
+ "components": [
275
+ {
276
+ "type": "datetime",
277
+ "datetime": 1600593764,
278
+ "id": "7639a7d1455a1ca907de0fc98a22b017e23f30e7df15b0739c78418848d674b5"
279
+ }
280
+ ],
281
+ "theme": "light"
282
+ },
283
+ "id": "2-e09585bd2b15e886b22728975010295dae47dd7ace948bc8aa012080f713290d"
284
+ }
285
+ ]
286
+ },
287
+ "only_on": "mobile"
288
+ },
289
+
290
+ "card": {
291
+ "type": "related_rich",
292
+ "data": {
293
+ "url": "https://meduza.io/",
294
+ "fallback": {
295
+ "data": {
296
+ "title": "Не богато вышло",
297
+ "related": [
298
+ {
299
+ "title": "До «обнуления» много говорили, что Путин в 2024 году может уйти в Госсовет. Теперь закон о нем внесли в Думу. Что там сказано?",
300
+ "layout": "rich",
301
+ "url": "feature/2018/09/18/na-rossiyskuyu-bolnitsu-pervye-podali-v-sud-za-otkaz-v-poseschenii-umirayuschego-v-reanimatsii-rodstvennika-sud-vstal-na-storonu-medikov",
302
+ "id": "0-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
303
+ }
304
+ ]
305
+ }
306
+ },
307
+ "cover": {
308
+ "ratio": 1,
309
+ "layout": "card",
310
+ "urls": {
311
+ "w325": {
312
+ "1x": "http://meduza.io/impro/xqOclGw-6OXsqpQ4P0hApkF9KXvd3KLnvJLT4xCvW8g/fill/360/0/ce/1/aHR0cHM6Ly9tZWR1/emEuaW8vaW1hZ2Uv/YXR0YWNobWVudHMv/aW1hZ2VzLzAwNi8w/NDgvMDk3L2xhcmdl/L2xaN3VUdklEUVFE/ekJUb1l3blpZeWcu/cG5n.png",
313
+ "2x": "http://meduza.io/impro/xqOclGw-6OXsqpQ4P0hApkF9KXvd3KLnvJLT4xCvW8g/fill/360/0/ce/1/aHR0cHM6Ly9tZWR1/emEuaW8vaW1hZ2Uv/YXR0YWNobWVudHMv/aW1hZ2VzLzAwNi8w/NDgvMDk3L2xhcmdl/L2xaN3VUdklEUVFE/ekJUb1l3blpZeWcu/cG5n.png",
314
+ "1x_webp": "http://meduza.io/impro/hQuT4tOA7mQ-GH959fn5zNu3T2f6Mem9XerH12N1JRc/resizing_type:fit/width:360/height:0/enlarge:1/quality:95/aHR0cHM6Ly9tZWR1/emEuaW8vaW1hZ2Uv/YXR0YWNobWVudHMv/aW1hZ2VzLzAwNi8w/ODAvNDAzL29yaWdp/bmFsL0k3UFBtSm02/XzkzSjJWWjBvTV93/cmcucG5n.webp",
315
+ "2x_webp": "http://meduza.io/impro/hQuT4tOA7mQ-GH959fn5zNu3T2f6Mem9XerH12N1JRc/resizing_type:fit/width:360/height:0/enlarge:1/quality:95/aHR0cHM6Ly9tZWR1/emEuaW8vaW1hZ2Uv/YXR0YWNobWVudHMv/aW1hZ2VzLzAwNi8w/ODAvNDAzL29yaWdp/bmFsL0k3UFBtSm02/XzkzSjJWWjBvTV93/cmcucG5n.webp"
316
+ },
317
+ "w600": {
318
+ "1x": "http://meduza.io/impro/xqOclGw-6OXsqpQ4P0hApkF9KXvd3KLnvJLT4xCvW8g/fill/360/0/ce/1/aHR0cHM6Ly9tZWR1/emEuaW8vaW1hZ2Uv/YXR0YWNobWVudHMv/aW1hZ2VzLzAwNi8w/NDgvMDk3L2xhcmdl/L2xaN3VUdklEUVFE/ekJUb1l3blpZeWcu/cG5n.png",
319
+ "2x": "http://meduza.io/impro/xqOclGw-6OXsqpQ4P0hApkF9KXvd3KLnvJLT4xCvW8g/fill/360/0/ce/1/aHR0cHM6Ly9tZWR1/emEuaW8vaW1hZ2Uv/YXR0YWNobWVudHMv/aW1hZ2VzLzAwNi8w/NDgvMDk3L2xhcmdl/L2xaN3VUdklEUVFE/ekJUb1l3blpZeWcu/cG5n.png",
320
+ "1x_webp": "http://meduza.io/impro/hQuT4tOA7mQ-GH959fn5zNu3T2f6Mem9XerH12N1JRc/resizing_type:fit/width:360/height:0/enlarge:1/quality:95/aHR0cHM6Ly9tZWR1/emEuaW8vaW1hZ2Uv/YXR0YWNobWVudHMv/aW1hZ2VzLzAwNi8w/ODAvNDAzL29yaWdp/bmFsL0k3UFBtSm02/XzkzSjJWWjBvTV93/cmcucG5n.webp",
321
+ "2x_webp": "http://meduza.io/impro/hQuT4tOA7mQ-GH959fn5zNu3T2f6Mem9XerH12N1JRc/resizing_type:fit/width:360/height:0/enlarge:1/quality:95/aHR0cHM6Ly9tZWR1/emEuaW8vaW1hZ2Uv/YXR0YWNobWVudHMv/aW1hZ2VzLzAwNi8w/ODAvNDAzL29yaWdp/bmFsL0k3UFBtSm02/XzkzSjJWWjBvTV93/cmcucG5n.webp"
322
+ }
323
+ },
324
+ "tag": "Читайте также"
325
+ },
326
+ "blocks": [
327
+ {
328
+ "type": "rich_title",
329
+ "data": {
330
+ "first": "До «обнуления» много говорили, что Путин в 2024 году может уйти в Госсовет. Теперь закон о нем внесли в Думу. Что там сказано?",
331
+ "as": "h3",
332
+ "featured": false
333
+ },
334
+ "id": "1-7b53ea24bd8ae1cfa59f45e4e4027bdabb5bf9667b97f0a6ed45d6b464c47356"
335
+ },
336
+ {
337
+ "type": "meta",
338
+ "data": {
339
+ "lang": "ru",
340
+ "components": [
341
+ {
342
+ "type": "datetime",
343
+ "datetime": 1600593764,
344
+ "id": "7639a7d1455a1ca907de0fc98a22b017e23f30e7df15b0739c78418848d674b5"
345
+ }
346
+ ],
347
+ "theme": "light"
348
+ },
349
+ "id": "2-e09585bd2b15e886b22728975010295dae47dd7ace948bc8aa012080f713290d"
350
+ }
351
+ ]
352
+ }
353
+ }
354
+ }
@@ -2,4 +2,7 @@
2
2
 
3
3
  .root {
4
4
  display: block;
5
+
6
+ max-width: 650px;
7
+ margin: 0 auto;
5
8
  }
@@ -3,6 +3,7 @@ import { RenderBlocks } from './'
3
3
  import { PreviewWrapper } from '../_storybook/PreviewWrapper'
4
4
 
5
5
  import styles from './RenderBlocks.stories.module.css'
6
+ import mock from './mock.json'
6
7
 
7
8
  export default {
8
9
  title: 'Main / RenderBlocks',
@@ -16,7 +17,9 @@ const Example: React.FC = () => {
16
17
  return (
17
18
  <>
18
19
  <div className={styles.root}>
19
- <RenderBlocks block={[]} />
20
+ {mock.blocks.map((block) => (
21
+ <RenderBlocks block={block} key={block.id} />
22
+ ))}
20
23
  </div>
21
24
  </>
22
25
  )
@@ -3,18 +3,24 @@ import { render } from '@testing-library/react'
3
3
  import { RenderBlocks } from './'
4
4
  import { RenderBlocksProps } from './RenderBlocks.types'
5
5
 
6
- import styles from './RenderBlocks.module.css'
6
+ import mock from './mock.json'
7
7
 
8
8
  describe('Render Blocks', () => {
9
- let props: RenderBlocksProps
9
+ const renderComponent = () =>
10
+ render(
11
+ <div>
12
+ {mock.blocks.map((block) => (
13
+ <RenderBlocks
14
+ block={block as RenderBlocksProps['block']}
15
+ key={block.id}
16
+ />
17
+ ))}
18
+ </div>
19
+ )
10
20
 
11
- const renderComponent = () => render(<RenderBlocks {...props} />)
21
+ it('should have some blocks', () => {
22
+ const { getByText } = renderComponent()
12
23
 
13
- it('should have root style', () => {
14
- const { getByTestId } = renderComponent()
15
-
16
- const renderBlocks = getByTestId('render-blocks')
17
-
18
- expect(renderBlocks).toHaveClass(styles.root)
24
+ getByText('Hello Component')
19
25
  })
20
26
  })
@@ -11,6 +11,7 @@ import { CardTitle } from '../CardTitle'
11
11
  import { RelatedBlock } from '../RelatedBlock'
12
12
  import { SourceBlock } from '../SourceBlock'
13
13
  import { EmbedBlockContainer } from '../EmbedBlock'
14
+ import { RelatedRichBlock } from '../RelatedRichBlock'
14
15
  import { GroupedBlock } from '../GroupedBlock'
15
16
  import { MetaContainer } from '../Meta/MetaContainer'
16
17
  import { Table } from '../Table'
@@ -81,6 +82,10 @@ export const RenderBlocks: React.FC<RenderBlocksProps> = ({
81
82
  return <ListBlock block={block} styleContext={styleContext} />
82
83
  }
83
84
 
85
+ case 'related_rich': {
86
+ return <RelatedRichBlock block={block} styleContext={styleContext} />
87
+ }
88
+
84
89
  case 'chapter-subtitle': {
85
90
  return <ChapterBlock block={block} styleContext={styleContext} />
86
91
  }
@@ -0,0 +1,83 @@
1
+ {
2
+ "blocks": [
3
+ {
4
+ "type": "p",
5
+ "data": "Hello Component",
6
+ "length": 9,
7
+ "id": "11-1ff7b114f405e532387ad41ebfc3c794c3baaa413180d495c00a60273f0d2eb400d"
8
+ },
9
+ {
10
+ "type": "related_rich",
11
+ "data": {
12
+ "url": "https://meduza.io/",
13
+ "fallback": {
14
+ "data": {
15
+ "title": "Не богато вышло",
16
+ "related": [
17
+ {
18
+ "title": "«Если кто-нибудь видит меня и слышит, пожалуйста, распространите это видео любым способом! Чтобы я существовал!»",
19
+ "second": "Автор фильма «Котлован» — о том, как сделал его из обращений россиян к Путину",
20
+ "layout": "rich",
21
+ "url": "feature/2018/09/18/na-rossiyskuyu-bolnitsu-pervye-podali-v-sud-za-otkaz-v-poseschenii-umirayuschego-v-reanimatsii-rodstvennika-sud-vstal-na-storonu-medikov",
22
+ "id": "0-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
23
+ }
24
+ ]
25
+ },
26
+ "only_on": "desktop"
27
+ },
28
+ "cover": {
29
+ "ratio": 1.4976958525,
30
+ "layout": "rich",
31
+ "urls": {
32
+ "w325": {
33
+ "1x": "http://meduza.io/image/attachments/images/006/087/556/elarge/E_3uGWnvssXzgtJ05-_Rfw.jpg",
34
+ "2x": "http://meduza.io/image/attachments/images/006/087/556/elarge/E_3uGWnvssXzgtJ05-_Rfw.jpg",
35
+ "1x_webp": "http://meduza.io/impro/MbBIK4vj9YMr8INLi6GMIYF4muqHFCWV0b1rxhhM6aI/fill/0/0/ce/1/aHR0cHM6Ly9tZWR1/emEuaW8vaW1hZ2Uv/YXR0YWNobWVudHMv/aW1hZ2VzLzAwNi8w/ODcvNTU2L2VsYXJn/ZS9FXzN1R1dudnNz/WHpndEowNS1fUmZ3/LmpwZw.webp",
36
+ "2x_webp": "http://meduza.io/impro/MbBIK4vj9YMr8INLi6GMIYF4muqHFCWV0b1rxhhM6aI/fill/0/0/ce/1/aHR0cHM6Ly9tZWR1/emEuaW8vaW1hZ2Uv/YXR0YWNobWVudHMv/aW1hZ2VzLzAwNi8w/ODcvNTU2L2VsYXJn/ZS9FXzN1R1dudnNz/WHpndEowNS1fUmZ3/LmpwZw.webp"
37
+ },
38
+ "w600": {
39
+ "1x": "http://meduza.io/image/attachments/images/006/087/556/elarge/E_3uGWnvssXzgtJ05-_Rfw.jpg",
40
+ "2x": "http://meduza.io/image/attachments/images/006/087/556/elarge/E_3uGWnvssXzgtJ05-_Rfw.jpg",
41
+ "1x_webp": "http://meduza.io/impro/MbBIK4vj9YMr8INLi6GMIYF4muqHFCWV0b1rxhhM6aI/fill/0/0/ce/1/aHR0cHM6Ly9tZWR1/emEuaW8vaW1hZ2Uv/YXR0YWNobWVudHMv/aW1hZ2VzLzAwNi8w/ODcvNTU2L2VsYXJn/ZS9FXzN1R1dudnNz/WHpndEowNS1fUmZ3/LmpwZw.webp",
42
+ "2x_webp": "http://meduza.io/impro/MbBIK4vj9YMr8INLi6GMIYF4muqHFCWV0b1rxhhM6aI/fill/0/0/ce/1/aHR0cHM6Ly9tZWR1/emEuaW8vaW1hZ2Uv/YXR0YWNobWVudHMv/aW1hZ2VzLzAwNi8w/ODcvNTU2L2VsYXJn/ZS9FXzN1R1dudnNz/WHpndEowNS1fUmZ3/LmpwZw.webp"
43
+ }
44
+ },
45
+ "tag": "Читайте также",
46
+ "gradients": {
47
+ "text_rgb": "255,255,255",
48
+ "bg_rgb": "0,0,0"
49
+ }
50
+ },
51
+ "blocks": [
52
+ {
53
+ "type": "rich_title",
54
+ "data": {
55
+ "first": "«Если кто-нибудь видит меня и слышит, пожалуйста, распространите это видео любым способом! Чтобы я существовал!»",
56
+ "second": "Автор фильма «Котлован» — о том, как сделал его из обращений россиян к Путину",
57
+ "as": "h3",
58
+ "featured": false
59
+ },
60
+ "id": "1-7b53ea24bd8ae1cfa59f45e4e4027bdabb5bf9667b97f0a6ed45d6b464c47356"
61
+ },
62
+ {
63
+ "type": "meta",
64
+ "data": {
65
+ "lang": "ru",
66
+ "components": [
67
+ {
68
+ "type": "datetime",
69
+ "datetime": 1600593764,
70
+ "id": "7639a7d1455a1ca907de0fc98a22b017e23f30e7df15b0739c78418848d674b5"
71
+ }
72
+ ],
73
+ "theme": "light"
74
+ },
75
+ "id": "2-e09585bd2b15e886b22728975010295dae47dd7ace948bc8aa012080f713290d"
76
+ }
77
+ ]
78
+ },
79
+ "only_on": "desktop",
80
+ "id": "11-1ff7b114f405e532387ad41ebfc3c7941313c3baaa413180d495c00a60273f0d2eb400d"
81
+ }
82
+ ]
83
+ }
@@ -55,19 +55,49 @@
55
55
  }
56
56
 
57
57
  .featured {
58
- letter-spacing: 0.3px;
58
+ @media $landscapeTabletMax {
59
+ letter-spacing: 0.3px;
59
60
 
60
- font-size: 28px;
61
- line-height: 30px;
61
+ font-size: 28px;
62
+ line-height: 30px;
63
+ }
62
64
  }
63
65
 
64
66
  .featured span {
65
- display: block;
67
+ @media $landscapeTabletMax {
68
+ display: block;
69
+
70
+ padding-top: 2px;
66
71
 
67
- padding-top: 2px;
72
+ font-size: 18px;
73
+ line-height: 24px;
74
+ }
75
+ }
68
76
 
69
- font-size: 18px;
70
- line-height: 24px;
77
+ .isInMediaBlock {
78
+ @media $landscapeTablet {
79
+ margin-bottom: 18px;
80
+ }
81
+ }
82
+
83
+ .isInMediaBlock:not(.featured) {
84
+ font-size: 19px;
85
+ line-height: 23px;
86
+
87
+ @media $landscapeTablet {
88
+ font-size: 26px;
89
+ line-height: 32px;
90
+ }
91
+ }
92
+
93
+ .isInMediaBlock:not(.featured) span {
94
+ font-size: 20px;
95
+ line-height: 23px;
96
+
97
+ @media $landscapeTablet {
98
+ font-size: 27px;
99
+ line-height: 32px;
100
+ }
71
101
  }
72
102
 
73
103
  .mobile {
@@ -5,10 +5,11 @@ import { RichTitleProps } from './RichTitle.types'
5
5
 
6
6
  import styles from './RichTitle.module.css'
7
7
 
8
- describe('Rich Title', () => {
9
- let props: RichTitleProps
8
+ import mock from './mock.json'
10
9
 
11
- const renderComponent = () => render(<RichTitle {...props} />)
10
+ describe('Rich Title', () => {
11
+ const renderComponent = () =>
12
+ render(<RichTitle block={mock as RichTitleProps['block']} />)
12
13
 
13
14
  it('should have root style', () => {
14
15
  const { getByTestId } = renderComponent()
@@ -1,4 +1,11 @@
1
1
  export interface RichTitleProps {
2
- block: any
2
+ block: {
3
+ only_on?: string
4
+ data: {
5
+ featured?: boolean
6
+ first: string
7
+ second?: string
8
+ }
9
+ }
3
10
  styleContext?: string[] | string
4
11
  }
@@ -3,18 +3,25 @@ import { render } from '@testing-library/react'
3
3
  import { SimpleBlock } from './'
4
4
  import { SimpleBlockProps } from './SimpleBlock.types'
5
5
 
6
- import styles from './SimpleBlock.module.css'
6
+ import mock from './mock.json'
7
7
 
8
8
  describe('Simple Block', () => {
9
- let props: SimpleBlockProps
9
+ const renderComponent = () =>
10
+ render(
11
+ <div>
12
+ {mock.blocks.map((item) => (
13
+ <SimpleBlock
14
+ block={item as SimpleBlockProps['block']}
15
+ styleContext={['no_mods', 'center', 'rich']}
16
+ key={item.id}
17
+ />
18
+ ))}
19
+ </div>
20
+ )
10
21
 
11
- const renderComponent = () => render(<SimpleBlock {...props} />)
22
+ it('should have some blocks', () => {
23
+ const { getByText } = renderComponent()
12
24
 
13
- it('should have root style', () => {
14
- const { getByTestId } = renderComponent()
15
-
16
- const simpleBlock = getByTestId('simple-block')
17
-
18
- expect(simpleBlock).toHaveClass(styles.root)
25
+ getByText('Hello Component')
19
26
  })
20
27
  })