@meduza/ui-kit-2 0.1.2 → 0.1.4

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 (76) hide show
  1. package/README.md +5 -0
  2. package/dist/Button/Button.types.d.ts +2 -2
  3. package/dist/CardTitle/CardTitle.types.d.ts +5 -3
  4. package/dist/DocumentItemsCount/DocumentItemsCount.types.d.ts +3 -3
  5. package/dist/DotsOnImage/DotsOnImage.types.d.ts +5 -5
  6. package/dist/EmbedBlock/EmbedBlock.types.d.ts +6 -0
  7. package/dist/EmbedBlock/EmbedGif.d.ts +3 -0
  8. package/dist/Image/Image.types.d.ts +10 -10
  9. package/dist/ImportantLead/ImportantLead.types.d.ts +1 -1
  10. package/dist/ListBlock/ListBlock.types.d.ts +1 -1
  11. package/dist/Meta/Meta.types.d.ts +3 -3
  12. package/dist/MetaItem/MetaItem.types.d.ts +1 -1
  13. package/dist/RawHtmlBlock/RawHtmlBlock.types.d.ts +11 -5
  14. package/dist/RenderBlocks/RenderBlocks.types.d.ts +7 -1
  15. package/dist/ToolbarButton/ToolbarButton.types.d.ts +1 -1
  16. package/dist/ui-kit-2.cjs.development.js +93 -82
  17. package/dist/ui-kit-2.cjs.development.js.map +1 -1
  18. package/dist/ui-kit-2.cjs.production.min.js +1 -1
  19. package/dist/ui-kit-2.cjs.production.min.js.map +1 -1
  20. package/dist/ui-kit-2.esm.js +93 -82
  21. package/dist/ui-kit-2.esm.js.map +1 -1
  22. package/dist/ui-kit.css +652 -551
  23. package/package.json +1 -1
  24. package/src/Button/Button.types.ts +3 -1
  25. package/src/CardTitle/CardTitle.types.ts +5 -3
  26. package/src/CardTitle/index.tsx +3 -1
  27. package/src/Cover/Cover.module.css +107 -1
  28. package/src/Cover/Cover.stories.module.css +2 -0
  29. package/src/Cover/Cover.stories.tsx +3 -1
  30. package/src/Cover/index.tsx +3 -3
  31. package/src/Cover/mock.json +68 -0
  32. package/src/DocumentItemsCount/DocumentItemsCount.stories.module.css +2 -0
  33. package/src/DocumentItemsCount/DocumentItemsCount.stories.tsx +6 -1
  34. package/src/DocumentItemsCount/DocumentItemsCount.types.ts +3 -3
  35. package/src/DotsOnImage/DotsOnImage.types.ts +5 -5
  36. package/src/DotsOnImage/index.tsx +4 -8
  37. package/src/EmbedBlock/EmbedBlock.stories.tsx +0 -1
  38. package/src/EmbedBlock/EmbedBlock.tsx +18 -86
  39. package/src/EmbedBlock/EmbedBlock.types.ts +7 -0
  40. package/src/EmbedBlock/EmbedGif.tsx +73 -0
  41. package/src/EmbedBlock/mock.json +75 -0
  42. package/src/GroupedBlock/GroupedBlock.stories.tsx +3 -1
  43. package/src/GroupedBlock/mock.json +110 -0
  44. package/src/HalfBlock/HalfBlock.stories.module.css +2 -1
  45. package/src/HalfBlock/HalfBlock.stories.tsx +3 -1
  46. package/src/HalfBlock/mock.json +81 -0
  47. package/src/Image/Image.types.ts +10 -10
  48. package/src/ImportantLead/ImportantLead.stories.tsx +3 -1
  49. package/src/ImportantLead/ImportantLead.types.ts +1 -1
  50. package/src/ImportantLead/mock.json +47 -0
  51. package/src/ListBlock/ListBlock.stories.module.css +4 -0
  52. package/src/ListBlock/ListBlock.stories.tsx +5 -1
  53. package/src/ListBlock/ListBlock.types.ts +2 -2
  54. package/src/ListBlock/mock.json +24 -0
  55. package/src/Meta/Meta.types.ts +3 -3
  56. package/src/MetaItem/MetaItem.types.ts +1 -1
  57. package/src/RawHtmlBlock/RawHtmlBlock.stories.tsx +1 -1
  58. package/src/RawHtmlBlock/RawHtmlBlock.types.ts +13 -5
  59. package/src/RelatedBlock/RelatedBlock.stories.tsx +3 -1
  60. package/src/RelatedBlock/RelatedBlock.types.ts +1 -1
  61. package/src/RelatedBlock/mock.json +21 -0
  62. package/src/RenderBlocks/RenderBlocks.stories.tsx +1 -1
  63. package/src/RenderBlocks/RenderBlocks.types.ts +8 -1
  64. package/src/RenderBlocks/index.tsx +1 -0
  65. package/src/RichTitle/RichTitle.stories.tsx +3 -1
  66. package/src/RichTitle/RichTitle.types.ts +1 -1
  67. package/src/RichTitle/mock.json +7 -0
  68. package/src/SimpleBlock/SimpleBlock.stories.tsx +9 -1
  69. package/src/SimpleBlock/SimpleBlock.types.ts +1 -1
  70. package/src/SimpleBlock/mock.json +68 -0
  71. package/src/SimpleTitle/SimpleTitle.stories.tsx +3 -1
  72. package/src/SimpleTitle/SimpleTitle.types.ts +1 -1
  73. package/src/SimpleTitle/mock.json +7 -0
  74. package/src/SourceBlock/SourceBlock.types.ts +1 -1
  75. package/src/Spoiler/Spoiler.types.ts +1 -1
  76. package/src/ToolbarButton/ToolbarButton.types.ts +1 -1
package/README.md CHANGED
@@ -9,3 +9,8 @@
9
9
 
10
10
  `yarn generate` - генератор компонентов. Вводим название компонента, получаем все файлы и импорты
11
11
 
12
+ ## Использование
13
+
14
+ Необходимо глобально импортировать в проект файл ui-kit.css (туда собираются все модули)
15
+ Любые компоненты просто импортятся из кита
16
+
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
1
+ import React from 'react';
2
2
  export declare type ButtonThemes = 'sand' | 'gold' | 'light' | 'gray' | 'ghost' | 'dark' | 'black' | 'red';
3
3
  export declare type ButtonStates = 'isLoading' | 'isDefault';
4
4
  export declare type ButtonSizes = 'auto' | 'default';
@@ -10,5 +10,5 @@ export interface ButtonProps {
10
10
  styleContext?: ButtonStyleContexts;
11
11
  disabled?: boolean;
12
12
  onClick?: () => void;
13
- children: JSX.Element[] | JSX.Element;
13
+ children: React.ReactNode | JSX.Element[] | JSX.Element;
14
14
  }
@@ -1,8 +1,10 @@
1
1
  export interface CardTitleProps {
2
2
  block: {
3
- index: number;
4
- text: string;
5
- only_on?: string;
3
+ data: {
4
+ index: number;
5
+ text: string;
6
+ only_on?: string;
7
+ };
6
8
  };
7
9
  styleContext?: string;
8
10
  }
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  export interface DocumentItemsCountProps {
3
- type: string;
4
- lang?: string;
3
+ type: 'podcast' | 'card';
4
+ lang?: 'ru' | 'en';
5
5
  items: number;
6
- children: JSX.Element[] | JSX.Element;
6
+ children?: JSX.Element[] | JSX.Element;
7
7
  }
@@ -27,12 +27,12 @@ export interface DotsOnImageProps {
27
27
  cc?: string;
28
28
  display?: string;
29
29
  optimized?: {
30
- original: string;
30
+ original?: string;
31
31
  w325: OptimizedImageItem;
32
- w520: OptimizedImageItem;
33
- w650: OptimizedImageItem;
34
- w980: OptimizedImageItem;
35
- w1335: OptimizedImageItem;
32
+ w520?: OptimizedImageItem;
33
+ w650?: OptimizedImageItem;
34
+ w980?: OptimizedImageItem;
35
+ w1335?: OptimizedImageItem;
36
36
  };
37
37
  width?: number;
38
38
  height?: number;
@@ -1,3 +1,9 @@
1
+ import React from 'react';
2
+ export interface EmbedGifProps {
3
+ gif: string;
4
+ mp4Url: string;
5
+ style: React.CSSProperties;
6
+ }
1
7
  export interface EmbedBlockProps {
2
8
  block: any;
3
9
  styleContext?: string[] | string;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ import { EmbedGifProps } from './EmbedBlock.types';
3
+ export declare const EmbedGif: React.FC<EmbedGifProps>;
@@ -8,12 +8,12 @@ export interface ImageProps {
8
8
  alt?: string;
9
9
  display?: string;
10
10
  optimized?: {
11
- original: string;
11
+ original?: string;
12
12
  w325: OptimizedImageItem;
13
- w520: OptimizedImageItem;
14
- w650: OptimizedImageItem;
15
- w980: OptimizedImageItem;
16
- w1335: OptimizedImageItem;
13
+ w520?: OptimizedImageItem;
14
+ w650?: OptimizedImageItem;
15
+ w980?: OptimizedImageItem;
16
+ w1335?: OptimizedImageItem;
17
17
  };
18
18
  width?: number;
19
19
  height?: number;
@@ -25,12 +25,12 @@ export interface ImageProps {
25
25
  export interface PictureProps {
26
26
  source?: object;
27
27
  optimized?: {
28
- original: string;
28
+ original?: string;
29
29
  w325: OptimizedImageItem;
30
- w520: OptimizedImageItem;
31
- w650: OptimizedImageItem;
32
- w980: OptimizedImageItem;
33
- w1335: OptimizedImageItem;
30
+ w520?: OptimizedImageItem;
31
+ w650?: OptimizedImageItem;
32
+ w980?: OptimizedImageItem;
33
+ w1335?: OptimizedImageItem;
34
34
  };
35
35
  alt?: string;
36
36
  fallbackSource: string;
@@ -1,4 +1,4 @@
1
1
  export interface ImportantLeadProps {
2
2
  block: any;
3
- styleContext: string[] | string;
3
+ styleContext?: string[] | string;
4
4
  }
@@ -1,4 +1,4 @@
1
1
  export interface ListBlockProps {
2
2
  block: any;
3
- styleContext: string[] | string;
3
+ styleContext?: string[] | string;
4
4
  }
@@ -2,9 +2,9 @@ import React from 'react';
2
2
  export interface MetaContainerProps {
3
3
  block: any;
4
4
  styleContext: string[] | string;
5
- isRead: boolean;
6
- isListened: boolean;
7
- isInBookmarks: boolean;
5
+ isRead: boolean | undefined;
6
+ isListened: boolean | undefined;
7
+ isInBookmarks: boolean | undefined;
8
8
  bookmarkAction?: (service: string, place: string) => void;
9
9
  lightBox?: () => void;
10
10
  lang: 'ru' | 'en';
@@ -3,5 +3,5 @@ export interface MetaItemProps {
3
3
  bullets?: boolean;
4
4
  hasSource?: boolean;
5
5
  type?: string;
6
- children: JSX.Element[] | JSX.Element;
6
+ children: React.ReactNode | JSX.Element[] | JSX.Element;
7
7
  }
@@ -1,9 +1,15 @@
1
+ import { ImageProps } from '../Image/Image.types';
2
+ export declare type lightBox = {
3
+ show: (image?: ImageProps['optimized'], alt?: ImageProps['alt']) => void;
4
+ hide: () => void;
5
+ visible: boolean;
6
+ };
1
7
  export interface RawHtmlBlockProps {
2
8
  block: any;
3
- styleContext: string[] | string;
4
- isRead: boolean;
5
- isListened: boolean;
6
- isInBookmarks: boolean;
9
+ styleContext?: string[] | string;
10
+ isRead?: boolean | undefined;
11
+ isListened?: boolean | undefined;
12
+ isInBookmarks?: boolean | undefined;
7
13
  bookmarkAction?: (service: string, place: string) => void;
8
- lightBox?: () => void;
14
+ lightBox?: lightBox | null;
9
15
  }
@@ -1,3 +1,9 @@
1
+ import { ImageProps } from '../Image/Image.types';
2
+ export declare type lightBox = {
3
+ show: (image?: ImageProps['optimized'], alt?: ImageProps['alt']) => void;
4
+ hide: () => void;
5
+ visible: boolean;
6
+ };
1
7
  export interface RenderBlocksProps {
2
8
  block: any;
3
9
  styleContext?: any;
@@ -5,6 +11,6 @@ export interface RenderBlocksProps {
5
11
  isListened?: boolean;
6
12
  isInBookmarks?: boolean;
7
13
  bookmarkAction?: (service: string, place: string) => void;
8
- lightBox?: () => void;
14
+ lightBox?: lightBox | null;
9
15
  lang?: 'ru' | 'en';
10
16
  }
@@ -5,5 +5,5 @@ export interface ToolbarButtonProps {
5
5
  theme?: string;
6
6
  isActive?: boolean;
7
7
  onClick: (type: string) => void;
8
- children: React.ReactNode;
8
+ children?: React.ReactNode | JSX.Element[] | JSX.Element;
9
9
  }
@@ -484,13 +484,13 @@ var Image = function Image(_ref) {
484
484
  var styles$5 = {"root":"DotsOnImage-module_root__2XP3Q","dot":"DotsOnImage-module_dot__H1wua","popover":"DotsOnImage-module_popover__35Cpj","popoverTitle":"DotsOnImage-module_popoverTitle__343d8"};
485
485
 
486
486
  var DotsOnImage = function DotsOnImage(_ref) {
487
- var block = _ref.block;
488
- var optimized = block.optimized,
489
- width = block.width,
490
- height = block.height,
491
- credit = block.credit,
492
- display = block.display,
493
- dots = block.dots;
487
+ var _ref$block = _ref.block,
488
+ optimized = _ref$block.optimized,
489
+ width = _ref$block.width,
490
+ height = _ref$block.height,
491
+ credit = _ref$block.credit,
492
+ display = _ref$block.display,
493
+ dots = _ref$block.dots;
494
494
 
495
495
  var _useState = React.useState({
496
496
  title: null,
@@ -513,7 +513,7 @@ var DotsOnImage = function DotsOnImage(_ref) {
513
513
 
514
514
  return React__default.createElement("div", {
515
515
  "data-testid": "dots-on-image",
516
- className: makeClassName([[styles$5.root, true]])
516
+ className: styles$5.root
517
517
  }, React__default.createElement("div", {
518
518
  className: styles$5.dots
519
519
  }, dots.map(function (dot) {
@@ -997,31 +997,16 @@ var DangerousHTML = function DangerousHTML(_ref) {
997
997
 
998
998
  var styles$h = {"root":"EmbedBlock-module_root__28k9U","object":"EmbedBlock-module_object__2_UZ7","objectWrap":"EmbedBlock-module_objectWrap__1aDVd","proportional":"EmbedBlock-module_proportional__3lAv4","attachment":"EmbedBlock-module_attachment__2pE0t","default":"EmbedBlock-module_default__LSDny","xs":"EmbedBlock-module_xs__1hFgW","full":"EmbedBlock-module_full__1TEjx","super_full":"EmbedBlock-module_super_full__1Fn9A","figure":"EmbedBlock-module_figure__vAvcN","dark":"EmbedBlock-module_dark__1be2G","isInGroupedBlock":"EmbedBlock-module_isInGroupedBlock__3r_i-","gameEmbed":"EmbedBlock-module_gameEmbed__AZQSo","mobile":"EmbedBlock-module_mobile__1P-eo","desktop":"EmbedBlock-module_desktop__SF5a_","control":"EmbedBlock-module_control__xr8dZ","raw_html":"EmbedBlock-module_raw_html__MQoAA","youtube":"EmbedBlock-module_youtube__3gGQ5","vimeo":"EmbedBlock-module_vimeo__kpH1s","onetv":"EmbedBlock-module_onetv__3o33d","coub":"EmbedBlock-module_coub__38Mva","facebook_video":"EmbedBlock-module_facebook_video__1_M05","card":"EmbedBlock-module_card__KTbvp","slide":"EmbedBlock-module_slide__3cL3M","cc":"EmbedBlock-module_cc__1BQ5g","isInAnswer":"EmbedBlock-module_isInAnswer__tLlgs","picture":"EmbedBlock-module_picture__186q0","wrapper":"EmbedBlock-module_wrapper__33XvX"};
999
999
 
1000
- var EmbedBlock = function EmbedBlock(_ref) {
1001
- var block = _ref.block,
1002
- _ref$block = _ref.block,
1003
- data = _ref$block.data,
1004
- _ref$block$data = _ref$block.data,
1005
- display = _ref$block$data.display,
1006
- onlyOn = _ref$block$data.only_on,
1007
- provider = _ref$block$data.provider,
1008
- cc = _ref$block$data.cc,
1009
- optimized = _ref$block$data.optimized,
1010
- small = _ref$block$data.small_url,
1011
- large = _ref$block$data.large_url,
1012
- styleContext = _ref.styleContext,
1013
- children = _ref.children;
1000
+ var EmbedGif = function EmbedGif(_ref) {
1001
+ var gif = _ref.gif,
1002
+ mp4Url = _ref.mp4Url,
1003
+ style = _ref.style;
1014
1004
 
1015
1005
  var _useState = React.useState(false),
1016
- isPopoverShown = _useState[0],
1017
- setIsPopoverShown = _useState[1];
1018
-
1019
- var _useState2 = React.useState(false),
1020
- videoFrozen = _useState2[0],
1021
- setVideoFrozen = _useState2[1];
1006
+ videoFrozen = _useState[0],
1007
+ setVideoFrozen = _useState[1];
1022
1008
 
1023
1009
  var videoElem = React.useRef(null);
1024
- var wrapperElem = React.useRef(null);
1025
1010
 
1026
1011
  var handleVideoTouch = function handleVideoTouch() {
1027
1012
  videoElem.current.play();
@@ -1037,31 +1022,67 @@ var EmbedBlock = function EmbedBlock(_ref) {
1037
1022
  React.useEffect(function () {
1038
1023
  var video = videoElem.current;
1039
1024
 
1040
- if (block.type === 'gif' && video) {
1041
- var _viewportSize = viewportSize(),
1042
- viewportWidth = _viewportSize.width;
1043
-
1044
- enableInlineVideo(video);
1025
+ var _viewportSize = viewportSize(),
1026
+ viewportWidth = _viewportSize.width;
1045
1027
 
1046
- if (viewportWidth >= MediaQuerySizes.MOBILE) {
1047
- video.setAttribute('autoplay', true);
1048
- video.play();
1049
- } else {
1050
- setVideoFrozen(true);
1051
- video.pause();
1052
- video.addEventListener('touchstart', handleVideoTouch);
1053
- }
1028
+ enableInlineVideo(video);
1054
1029
 
1055
- video.addEventListener('error', handleVideoError);
1030
+ if (viewportWidth >= MediaQuerySizes.MOBILE) {
1031
+ video.setAttribute('autoplay', true);
1032
+ video.play();
1033
+ } else {
1034
+ setVideoFrozen(true);
1035
+ video.pause();
1036
+ video.addEventListener('touchstart', handleVideoTouch);
1056
1037
  }
1057
1038
 
1039
+ video.addEventListener('error', handleVideoError);
1058
1040
  return function () {
1059
- if (video) {
1060
- video.removeEventListener('touchstart', handleVideoTouch);
1061
- video.removeEventListener('error', handleVideoError);
1062
- }
1041
+ video.removeEventListener('touchstart', handleVideoTouch);
1042
+ video.removeEventListener('error', handleVideoError);
1063
1043
  };
1064
1044
  }, []);
1045
+ return React__default.createElement("div", {
1046
+ className: styles$h.figure
1047
+ }, React__default.createElement("div", {
1048
+ className: styles$h.objectWrap,
1049
+ style: style,
1050
+ "data-frozen": videoFrozen
1051
+ }, React__default.createElement("video", {
1052
+ playsInline: true,
1053
+ muted: true,
1054
+ loop: true,
1055
+ autoPlay: true,
1056
+ preload: "metadata",
1057
+ "data-gif": gif,
1058
+ ref: videoElem
1059
+ }, React__default.createElement("source", {
1060
+ src: "https://meduza.io" + mp4Url,
1061
+ type: "video/mp4"
1062
+ }))));
1063
+ };
1064
+
1065
+ var EmbedBlock = function EmbedBlock(_ref) {
1066
+ var block = _ref.block,
1067
+ _ref$block = _ref.block,
1068
+ data = _ref$block.data,
1069
+ _ref$block$data = _ref$block.data,
1070
+ html = _ref$block$data.html,
1071
+ display = _ref$block$data.display,
1072
+ onlyOn = _ref$block$data.only_on,
1073
+ provider = _ref$block$data.provider,
1074
+ cc = _ref$block$data.cc,
1075
+ optimized = _ref$block$data.optimized,
1076
+ small = _ref$block$data.small_url,
1077
+ large = _ref$block$data.large_url,
1078
+ gifUrl = _ref$block$data.gif_url,
1079
+ mp4Url = _ref$block$data.mp4_url,
1080
+ styleContext = _ref.styleContext,
1081
+ children = _ref.children;
1082
+
1083
+ var _useState = React.useState(false),
1084
+ isPopoverShown = _useState[0],
1085
+ setIsPopoverShown = _useState[1];
1065
1086
 
1066
1087
  var renderCC = function renderCC(context) {
1067
1088
  return React__default.createElement(MediaCaption, {
@@ -1072,30 +1093,14 @@ var EmbedBlock = function EmbedBlock(_ref) {
1072
1093
  };
1073
1094
 
1074
1095
  var renderEmbed = function renderEmbed(style) {
1075
- var html = block.data.html;
1076
-
1077
1096
  switch (block.type) {
1078
1097
  case 'gif':
1079
1098
  {
1080
- return React__default.createElement("div", {
1081
- className: styles$h.figure
1082
- }, React__default.createElement("div", {
1083
- className: styles$h.objectWrap,
1084
- style: style,
1085
- ref: wrapperElem,
1086
- "data-frozen": videoFrozen
1087
- }, React__default.createElement("video", {
1088
- playsInline: true,
1089
- muted: true,
1090
- loop: true,
1091
- autoPlay: true,
1092
- preload: "metadata",
1093
- "data-gif": block.data.gif_url,
1094
- ref: videoElem
1095
- }, React__default.createElement("source", {
1096
- src: "https://meduza.io" + block.data.mp4_url,
1097
- type: "video/mp4"
1098
- }))));
1099
+ return React__default.createElement(EmbedGif, {
1100
+ gif: gifUrl,
1101
+ mp4Url: mp4Url,
1102
+ style: style
1103
+ });
1099
1104
  }
1100
1105
 
1101
1106
  case 'image':
@@ -1125,6 +1130,13 @@ var EmbedBlock = function EmbedBlock(_ref) {
1125
1130
  }));
1126
1131
  }
1127
1132
 
1133
+ case 'dots_on_image':
1134
+ {
1135
+ return React__default.createElement(DotsOnImage, {
1136
+ block: data
1137
+ });
1138
+ }
1139
+
1128
1140
  default:
1129
1141
  {
1130
1142
  return React__default.createElement("div", {
@@ -1140,8 +1152,7 @@ var EmbedBlock = function EmbedBlock(_ref) {
1140
1152
  }
1141
1153
  };
1142
1154
 
1143
- var style = {};
1144
- var isProportional; // @TODO: Разобраться зачем это было нужно
1155
+ var style = {}; // @TODO: Разобраться зачем это было нужно
1145
1156
  // const className = Object.keys(styleContext)
1146
1157
  // .filter(key => key.startsWith('isIn') && styles[key])
1147
1158
  // .reduce((acc, key) => {
@@ -1149,15 +1160,14 @@ var EmbedBlock = function EmbedBlock(_ref) {
1149
1160
  // return acc
1150
1161
  // }, [])
1151
1162
 
1152
- /* eslint-disable react/no-array-index-key, no-mixed-operators */
1163
+ var isProportional = block.data.height && block.data.width;
1153
1164
 
1154
- if (block.data.height && block.data.width) {
1165
+ if (isProportional) {
1155
1166
  style.paddingBottom = block.data.height / block.data.width * 100 + "%";
1156
1167
  style.height = 0;
1157
- isProportional = true;
1158
1168
  }
1159
1169
 
1160
- var classNames = [[styles$h.root, true], [styles$h.cc, cc], [styles$h[display], !!display && styles$h[display]], [styles$h[provider], !!provider && !!styles$h[provider]], [styles$h[onlyOn], !!onlyOn && styles$h[onlyOn]], [styles$h.proportional, !!styles$h.proportional && isProportional]];
1170
+ var classNames = [[styles$h.root, true], [styles$h.cc, cc], [styles$h[display], !!display && styles$h[display]], [styles$h[provider], !!provider && !!styles$h[provider]], [styles$h[onlyOn], !!onlyOn && styles$h[onlyOn]], [styles$h.proportional, isProportional && !!styles$h.proportional]];
1161
1171
 
1162
1172
  if (styleContext) {
1163
1173
  classNames = makeStyleContext(classNames, styleContext, styles$h);
@@ -1273,10 +1283,10 @@ var QuoteBlock = function QuoteBlock(_ref) {
1273
1283
  var styles$j = {"root":"CardTitle-module_root__1uqqF","index":"CardTitle-module_index__4FsTf","title":"CardTitle-module_title__2iTI6","mobile":"CardTitle-module_mobile__1_kij","desktop":"CardTitle-module_desktop__1l3_n"};
1274
1284
 
1275
1285
  var CardTitle = function CardTitle(_ref) {
1276
- var _ref$block = _ref.block,
1277
- onlyOn = _ref$block.only_on,
1278
- index = _ref$block.index,
1279
- text = _ref$block.text,
1286
+ var _ref$block$data = _ref.block.data,
1287
+ onlyOn = _ref$block$data.only_on,
1288
+ index = _ref$block$data.index,
1289
+ text = _ref$block$data.text,
1280
1290
  styleContext = _ref.styleContext;
1281
1291
  return React__default.createElement("div", {
1282
1292
  "data-testid": "card-title",
@@ -1311,7 +1321,7 @@ var generateGradient = function generateGradient(color) {
1311
1321
  return "linear-gradient(-180deg, " + gradient + ")";
1312
1322
  };
1313
1323
 
1314
- var styles$l = {"root":"Cover-module_root__18Z8J"};
1324
+ var styles$l = {"root":"Cover-module_root__18Z8J","body":"Cover-module_body__1xs8e","image":"Cover-module_image__2f3Qc","rich":"Cover-module_rich__1fAGA","dark":"Cover-module_dark__2Ac-w","light":"Cover-module_light__FUp5X","control":"Cover-module_control__VXbhi","isInDynamicBlock":"Cover-module_isInDynamicBlock__3eghb","mobile":"Cover-module_mobile__5DKa1","desktop":"Cover-module_desktop__2mrOc"};
1315
1325
 
1316
1326
  var styles$m = {"root":"SimpleTitle-module_root__2jVQN","mobile":"SimpleTitle-module_mobile__11gBz","desktop":"SimpleTitle-module_desktop__3yXgy"};
1317
1327
 
@@ -1872,6 +1882,7 @@ var RenderBlocks = function RenderBlocks(_ref) {
1872
1882
  case 'embed_code':
1873
1883
  case 'game_embed':
1874
1884
  case 'image':
1885
+ case 'dots_on_image':
1875
1886
  case 'gif':
1876
1887
  return React__default.createElement(EmbedBlockContainer, {
1877
1888
  block: block,
@@ -1917,15 +1928,15 @@ var Cover = function Cover(_ref) {
1917
1928
  setIsPopoverShown = _useState[1];
1918
1929
 
1919
1930
  var style = {};
1920
- var theme;
1921
- var classNames = [[styles$l.root, true], [styles$l[theme], true], [styles$l[onlyOn], !!onlyOn && !!styles$l[onlyOn]]];
1931
+ var classNames = [[styles$l.root, true], [styles$l[onlyOn], !!onlyOn && !!styles$l[onlyOn]]];
1922
1932
 
1923
1933
  if (styleContext) {
1924
1934
  classNames = makeStyleContext(classNames, styleContext, styles$l);
1925
1935
  }
1926
1936
 
1927
1937
  if (gradients) {
1928
- theme = gradients.text_rgb === '0,0,0' ? 'dark' : 'light';
1938
+ var theme = [gradients.text_rgb === '0,0,0' ? 'dark' : 'light'];
1939
+ classNames = makeStyleContext(classNames, theme, styles$l);
1929
1940
  style.backgroundImage = generateGradient(gradients.bg_rgb);
1930
1941
  }
1931
1942