@gravity-ui/page-constructor 3.0.0-alpha.5 → 4.0.0-beta.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 (217) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/README.md +1 -1
  3. package/build/cjs/blocks/CardLayout/CardLayout.js +1 -1
  4. package/build/cjs/blocks/CardLayout/schema.d.ts +2 -2
  5. package/build/cjs/blocks/CardLayout/schema.js +1 -1
  6. package/build/cjs/blocks/FilterBlock/FilterBlock.js +9 -13
  7. package/build/cjs/blocks/Header/schema.d.ts +9 -0
  8. package/build/cjs/blocks/HeaderSlider/schema.d.ts +3 -0
  9. package/build/cjs/blocks/Media/schema.d.ts +6 -0
  10. package/build/cjs/blocks/PromoFeaturesBlock/schema.d.ts +3 -0
  11. package/build/cjs/blocks/Tabs/schema.d.ts +3 -0
  12. package/build/cjs/components/BackgroundImage/BackgroundImage.js +2 -2
  13. package/build/cjs/components/BlockBase/BlockBase.d.ts +3 -2
  14. package/build/cjs/components/BlockBase/BlockBase.js +4 -2
  15. package/build/cjs/components/FullscreenImage/{FullScreenImage.css → FullscreenImage.css} +13 -13
  16. package/build/cjs/components/FullscreenImage/FullscreenImage.d.ts +3 -3
  17. package/build/cjs/components/FullscreenImage/FullscreenImage.js +7 -7
  18. package/build/cjs/components/FullscreenImage/i18n/index.js +1 -1
  19. package/build/cjs/components/FullscreenMedia/FullscreenMedia.d.ts +9 -0
  20. package/build/cjs/components/FullscreenMedia/{FullScreenMedia.js → FullscreenMedia.js} +5 -5
  21. package/build/cjs/components/Image/Image.d.ts +1 -0
  22. package/build/cjs/components/Image/Image.js +2 -2
  23. package/build/cjs/components/Media/FullscreenVideo/FullscreenVideo.d.ts +4 -0
  24. package/build/cjs/components/Media/FullscreenVideo/FullscreenVideo.js +10 -0
  25. package/build/cjs/components/Media/Image/Image.d.ts +1 -0
  26. package/build/cjs/components/Media/Image/Image.js +10 -3
  27. package/build/cjs/components/Media/Media.js +25 -5
  28. package/build/cjs/components/Media/Video/Video.d.ts +1 -1
  29. package/build/cjs/components/VideoBlock/VideoBlock.d.ts +1 -1
  30. package/build/cjs/components/VideoBlock/VideoBlock.js +3 -3
  31. package/build/cjs/components/index.d.ts +1 -1
  32. package/build/cjs/components/index.js +3 -3
  33. package/build/cjs/constructor-items.d.ts +1 -1
  34. package/build/cjs/containers/Loadable/Loadable.d.ts +2 -2
  35. package/build/cjs/containers/PageConstructor/PageConstructor.js +5 -3
  36. package/build/cjs/containers/PageConstructor/components/ConstructorBlocks/ConstructorBlocks.js +3 -2
  37. package/build/cjs/containers/PageConstructor/components/ConstructorItem/ConstructorItem.d.ts +1 -1
  38. package/build/cjs/containers/PageConstructor/components/ConstructorItem/ConstructorItem.js +5 -5
  39. package/build/cjs/context/innerContext/InnerContext.d.ts +2 -1
  40. package/build/cjs/customization/BlockDecoration.d.ts +3 -0
  41. package/build/cjs/customization/BlockDecoration.js +22 -0
  42. package/build/cjs/editor/Components/AddBlock/AddBlock.css +82 -0
  43. package/build/cjs/editor/Components/AddBlock/AddBlock.d.ts +7 -0
  44. package/build/cjs/editor/Components/AddBlock/AddBlock.js +43 -0
  45. package/build/cjs/editor/Components/EditBlock/EditBlock.css +47 -0
  46. package/build/cjs/editor/Components/EditBlock/EditBlock.d.ts +4 -0
  47. package/build/cjs/editor/Components/EditBlock/EditBlock.js +32 -0
  48. package/build/cjs/editor/Containers/Editor.d.ts +2 -0
  49. package/build/cjs/editor/Containers/Editor.js +24 -0
  50. package/build/cjs/editor/data/index.d.ts +13 -0
  51. package/build/cjs/editor/data/index.js +27 -0
  52. package/build/cjs/editor/data/previews/default-preview.d.ts +3 -0
  53. package/build/cjs/editor/data/previews/default-preview.js +18 -0
  54. package/build/cjs/editor/data/previews/header-block.d.ts +3 -0
  55. package/build/cjs/editor/data/previews/header-block.js +19 -0
  56. package/build/cjs/editor/index.d.ts +2 -0
  57. package/build/cjs/editor/index.js +7 -0
  58. package/build/cjs/editor/store/index.d.ts +15 -0
  59. package/build/cjs/editor/store/index.js +32 -0
  60. package/build/cjs/editor/store/reducer.d.ts +41 -0
  61. package/build/cjs/editor/store/reducer.js +59 -0
  62. package/build/cjs/editor/store/utils.d.ts +12 -0
  63. package/build/cjs/editor/store/utils.js +34 -0
  64. package/build/cjs/editor/styles/mixins.css +0 -0
  65. package/build/cjs/editor/styles/variables.css +0 -0
  66. package/build/cjs/editor/types/index.d.ts +17 -0
  67. package/build/cjs/editor/types/index.js +2 -0
  68. package/build/cjs/editor/utils/index.d.ts +11 -0
  69. package/build/cjs/editor/utils/index.js +12 -0
  70. package/build/cjs/grid/Col/Col.d.ts +1 -1
  71. package/build/cjs/hooks/useMetrika.js +0 -7
  72. package/build/cjs/icons/Fullscreen.d.ts +2 -0
  73. package/build/cjs/icons/{FullScreen.js → Fullscreen.js} +3 -3
  74. package/build/cjs/icons/index.d.ts +1 -1
  75. package/build/cjs/icons/index.js +1 -1
  76. package/build/cjs/models/constructor-items/blocks.d.ts +2 -12
  77. package/build/cjs/models/constructor-items/blocks.js +0 -2
  78. package/build/cjs/models/constructor-items/common.d.ts +2 -1
  79. package/build/cjs/models/constructor-items/sub-blocks.d.ts +1 -1
  80. package/build/cjs/models/constructor.d.ts +4 -1
  81. package/build/cjs/models/customization.d.ts +9 -0
  82. package/build/cjs/models/customization.js +2 -0
  83. package/build/cjs/models/index.d.ts +1 -0
  84. package/build/cjs/models/index.js +1 -0
  85. package/build/cjs/schema/index.js +0 -1
  86. package/build/cjs/schema/validators/common.d.ts +3 -0
  87. package/build/cjs/schema/validators/common.js +3 -0
  88. package/build/cjs/sub-blocks/Content/Content.js +2 -2
  89. package/build/cjs/sub-blocks/LayoutItem/LayoutItem.d.ts +1 -1
  90. package/build/cjs/sub-blocks/LayoutItem/LayoutItem.js +4 -4
  91. package/build/cjs/sub-blocks/LayoutItem/schema.d.ts +4 -1
  92. package/build/cjs/sub-blocks/LayoutItem/schema.js +1 -1
  93. package/build/cjs/sub-blocks/LayoutItem/utils.d.ts +2 -2
  94. package/build/cjs/sub-blocks/LayoutItem/utils.js +6 -6
  95. package/build/cjs/sub-blocks/MediaCard/schema.d.ts +3 -0
  96. package/build/cjs/text-transform/transformers.js +2 -4
  97. package/build/cjs/utils/blocks.d.ts +4 -1
  98. package/build/cjs/utils/blocks.js +11 -1
  99. package/build/esm/blocks/CardLayout/CardLayout.js +1 -1
  100. package/build/esm/blocks/CardLayout/schema.d.ts +2 -2
  101. package/build/esm/blocks/CardLayout/schema.js +1 -1
  102. package/build/esm/blocks/FilterBlock/FilterBlock.js +10 -14
  103. package/build/esm/blocks/Header/schema.d.ts +9 -0
  104. package/build/esm/blocks/HeaderSlider/schema.d.ts +3 -0
  105. package/build/esm/blocks/Media/schema.d.ts +6 -0
  106. package/build/esm/blocks/PromoFeaturesBlock/schema.d.ts +3 -0
  107. package/build/esm/blocks/Tabs/Tabs.js +2 -2
  108. package/build/esm/blocks/Tabs/schema.d.ts +3 -0
  109. package/build/esm/components/BackgroundImage/BackgroundImage.js +2 -2
  110. package/build/esm/components/BlockBase/BlockBase.d.ts +3 -2
  111. package/build/esm/components/BlockBase/BlockBase.js +4 -2
  112. package/build/esm/components/FullscreenImage/{FullScreenImage.css → FullscreenImage.css} +13 -13
  113. package/build/esm/components/FullscreenImage/FullscreenImage.d.ts +4 -4
  114. package/build/esm/components/FullscreenImage/FullscreenImage.js +9 -9
  115. package/build/esm/components/FullscreenImage/i18n/index.js +1 -1
  116. package/build/esm/components/FullscreenMedia/FullscreenMedia.d.ts +10 -0
  117. package/build/esm/components/FullscreenMedia/{FullScreenMedia.js → FullscreenMedia.js} +7 -7
  118. package/build/esm/components/Image/Image.d.ts +1 -0
  119. package/build/esm/components/Image/Image.js +2 -2
  120. package/build/esm/components/Media/FullscreenVideo/FullscreenVideo.d.ts +4 -0
  121. package/build/esm/components/Media/FullscreenVideo/FullscreenVideo.js +7 -0
  122. package/build/esm/components/Media/Image/Image.d.ts +1 -0
  123. package/build/esm/components/Media/Image/Image.js +12 -5
  124. package/build/esm/components/Media/Media.js +25 -5
  125. package/build/esm/components/Media/Video/Video.d.ts +1 -1
  126. package/build/esm/components/VideoBlock/VideoBlock.d.ts +1 -1
  127. package/build/esm/components/VideoBlock/VideoBlock.js +3 -3
  128. package/build/esm/components/index.d.ts +1 -1
  129. package/build/esm/components/index.js +1 -1
  130. package/build/esm/constructor-items.d.ts +1 -1
  131. package/build/esm/containers/Loadable/Loadable.d.ts +2 -2
  132. package/build/esm/containers/PageConstructor/PageConstructor.js +6 -4
  133. package/build/esm/containers/PageConstructor/components/ConstructorBlocks/ConstructorBlocks.js +3 -2
  134. package/build/esm/containers/PageConstructor/components/ConstructorItem/ConstructorItem.d.ts +1 -1
  135. package/build/esm/containers/PageConstructor/components/ConstructorItem/ConstructorItem.js +5 -5
  136. package/build/esm/context/innerContext/InnerContext.d.ts +2 -1
  137. package/build/esm/customization/BlockDecoration.d.ts +3 -0
  138. package/build/esm/customization/BlockDecoration.js +17 -0
  139. package/build/esm/editor/Components/AddBlock/AddBlock.css +82 -0
  140. package/build/esm/editor/Components/AddBlock/AddBlock.d.ts +8 -0
  141. package/build/esm/editor/Components/AddBlock/AddBlock.js +41 -0
  142. package/build/esm/editor/Components/EditBlock/EditBlock.css +47 -0
  143. package/build/esm/editor/Components/EditBlock/EditBlock.d.ts +5 -0
  144. package/build/esm/editor/Components/EditBlock/EditBlock.js +30 -0
  145. package/build/esm/editor/Containers/Editor.d.ts +2 -0
  146. package/build/esm/editor/Containers/Editor.js +20 -0
  147. package/build/esm/editor/data/index.d.ts +13 -0
  148. package/build/esm/editor/data/index.js +24 -0
  149. package/build/esm/editor/data/previews/default-preview.d.ts +3 -0
  150. package/build/esm/editor/data/previews/default-preview.js +15 -0
  151. package/build/esm/editor/data/previews/header-block.d.ts +3 -0
  152. package/build/esm/editor/data/previews/header-block.js +16 -0
  153. package/build/esm/editor/index.d.ts +2 -0
  154. package/build/esm/editor/index.js +2 -0
  155. package/build/esm/editor/store/index.d.ts +15 -0
  156. package/build/esm/editor/store/index.js +28 -0
  157. package/build/esm/editor/store/reducer.d.ts +41 -0
  158. package/build/esm/editor/store/reducer.js +55 -0
  159. package/build/esm/editor/store/utils.d.ts +12 -0
  160. package/build/esm/editor/store/utils.js +26 -0
  161. package/build/esm/editor/styles/mixins.css +0 -0
  162. package/build/esm/editor/styles/variables.css +0 -0
  163. package/build/esm/editor/types/index.d.ts +17 -0
  164. package/build/esm/editor/types/index.js +1 -0
  165. package/build/esm/editor/utils/index.d.ts +11 -0
  166. package/build/esm/editor/utils/index.js +6 -0
  167. package/build/esm/grid/Col/Col.d.ts +1 -1
  168. package/build/esm/hooks/useMetrika.js +0 -7
  169. package/build/esm/icons/Fullscreen.d.ts +2 -0
  170. package/build/esm/icons/{FullScreen.js → Fullscreen.js} +1 -1
  171. package/build/esm/icons/index.d.ts +1 -1
  172. package/build/esm/icons/index.js +1 -1
  173. package/build/esm/models/constructor-items/blocks.d.ts +2 -12
  174. package/build/esm/models/constructor-items/blocks.js +0 -2
  175. package/build/esm/models/constructor-items/common.d.ts +2 -1
  176. package/build/esm/models/constructor-items/sub-blocks.d.ts +1 -1
  177. package/build/esm/models/constructor.d.ts +4 -1
  178. package/build/esm/models/customization.d.ts +9 -0
  179. package/build/esm/models/customization.js +1 -0
  180. package/build/esm/models/index.d.ts +1 -0
  181. package/build/esm/models/index.js +1 -0
  182. package/build/esm/schema/index.js +0 -1
  183. package/build/esm/schema/validators/common.d.ts +3 -0
  184. package/build/esm/schema/validators/common.js +3 -0
  185. package/build/esm/sub-blocks/Content/Content.js +2 -3
  186. package/build/esm/sub-blocks/LayoutItem/LayoutItem.d.ts +1 -1
  187. package/build/esm/sub-blocks/LayoutItem/LayoutItem.js +6 -6
  188. package/build/esm/sub-blocks/LayoutItem/schema.d.ts +4 -1
  189. package/build/esm/sub-blocks/LayoutItem/schema.js +1 -1
  190. package/build/esm/sub-blocks/LayoutItem/utils.d.ts +2 -2
  191. package/build/esm/sub-blocks/LayoutItem/utils.js +3 -3
  192. package/build/esm/sub-blocks/MediaCard/schema.d.ts +3 -0
  193. package/build/esm/text-transform/transformers.js +2 -4
  194. package/build/esm/utils/blocks.d.ts +4 -1
  195. package/build/esm/utils/blocks.js +7 -0
  196. package/package.json +4 -6
  197. package/server/models/constructor-items/blocks.d.ts +2 -12
  198. package/server/models/constructor-items/blocks.js +0 -2
  199. package/server/models/constructor-items/common.d.ts +2 -1
  200. package/server/models/constructor-items/sub-blocks.d.ts +1 -1
  201. package/server/models/constructor.d.ts +4 -1
  202. package/server/models/customization.d.ts +9 -0
  203. package/server/models/customization.js +2 -0
  204. package/server/models/index.d.ts +1 -0
  205. package/server/models/index.js +1 -0
  206. package/server/text-transform/transformers.js +2 -4
  207. package/server/utils/blocks.d.ts +4 -1
  208. package/server/utils/blocks.js +11 -1
  209. package/styles/styles.css +0 -196
  210. package/styles/styles.scss +0 -1
  211. package/build/cjs/components/FullscreenMedia/FullScreenMedia.d.ts +0 -9
  212. package/build/cjs/icons/FullScreen.d.ts +0 -2
  213. package/build/esm/components/FullscreenMedia/FullScreenMedia.d.ts +0 -10
  214. package/build/esm/icons/FullScreen.d.ts +0 -2
  215. package/styles/fonts.scss +0 -223
  216. /package/build/cjs/components/FullscreenMedia/{FullScreenMedia.css → FullscreenMedia.css} +0 -0
  217. /package/build/esm/components/FullscreenMedia/{FullScreenMedia.css → FullscreenMedia.css} +0 -0
@@ -10,6 +10,6 @@ const DEFAULT_SIZES = {
10
10
  };
11
11
  const b = block('card-layout-block');
12
12
  const CardLayout = ({ title, description, animated, colSizes = DEFAULT_SIZES, children, }) => (React.createElement(AnimateBlock, { className: b(), animate: animated },
13
- React.createElement(Title, { title: title, subtitle: description }),
13
+ (title || description) && React.createElement(Title, { title: title, subtitle: description }),
14
14
  React.createElement(Row, null, React.Children.map(children, (child, index) => (React.createElement(Col, { key: index, sizes: colSizes, className: b('item') }, child))))));
15
15
  export default CardLayout;
@@ -1,6 +1,6 @@
1
1
  export declare const CardLayoutProps: {
2
2
  additionalProperties: boolean;
3
- required: string[];
3
+ required: never[];
4
4
  properties: {
5
5
  colSizes: {
6
6
  type: string;
@@ -76,7 +76,7 @@ export declare const CardLayoutProps: {
76
76
  export declare const CardLayoutBlock: {
77
77
  'card-layout-block': {
78
78
  additionalProperties: boolean;
79
- required: string[];
79
+ required: never[];
80
80
  properties: {
81
81
  colSizes: {
82
82
  type: string;
@@ -1,7 +1,7 @@
1
1
  import { AnimatableProps, BlockBaseProps, BlockHeaderProps, ChildrenCardsProps, containerSizesObject, } from '../../schema/validators/common';
2
2
  export const CardLayoutProps = {
3
3
  additionalProperties: false,
4
- required: ['title'],
4
+ required: [],
5
5
  properties: Object.assign(Object.assign(Object.assign(Object.assign({}, BlockBaseProps), AnimatableProps), BlockHeaderProps), { colSizes: containerSizesObject, children: ChildrenCardsProps }),
6
6
  };
7
7
  export const CardLayoutBlock = {
@@ -1,10 +1,10 @@
1
1
  import React, { useMemo, useState } from 'react';
2
+ import { CardLayoutBlock } from '..';
2
3
  import { AnimateBlock, Title } from '../../components';
3
4
  import ButtonTabs from '../../components/ButtonTabs/ButtonTabs';
4
- import { ConstructorBlocks } from '../../containers/PageConstructor/components/ConstructorBlocks';
5
+ import { ConstructorItem } from '../../containers/PageConstructor/components/ConstructorItem';
5
6
  import { Col, Row } from '../../grid';
6
- import { BlockType } from '../../models';
7
- import { block } from '../../utils';
7
+ import { block, getBlockKey } from '../../utils';
8
8
  import i18n from './i18n';
9
9
  import './FilterBlock.css';
10
10
  const b = block('filter-block');
@@ -22,25 +22,21 @@ const FilterBlock = ({ title, description, tags, tagButtonSize, allTag, items, c
22
22
  ? tabButtons[0].id
23
23
  : selectedTag;
24
24
  }, [tabButtons, selectedTag]);
25
- const container = useMemo(() => {
25
+ const cards = useMemo(() => {
26
26
  const itemsToShow = actualTag
27
27
  ? items.filter((item) => item.tags.includes(actualTag))
28
28
  : items;
29
- return [
30
- {
31
- type: BlockType.CardLayoutBlock,
32
- title: '',
33
- colSizes: colSizes,
34
- children: itemsToShow.map((item) => item.card),
35
- },
36
- ];
37
- }, [actualTag, items, colSizes]);
29
+ return itemsToShow.map((item) => item.card);
30
+ }, [actualTag, items]);
38
31
  return (React.createElement(AnimateBlock, { className: b(), animate: animated },
39
32
  title && (React.createElement(Title, { className: b('title', { centered: centered }), title: title, subtitle: description })),
40
33
  tabButtons.length && (React.createElement(Row, null,
41
34
  React.createElement(Col, null,
42
35
  React.createElement(ButtonTabs, { className: b('tabs', { centered: centered }), items: tabButtons, activeTab: selectedTag, onSelectTab: setSelectedTag, tabSize: tagButtonSize })))),
43
36
  React.createElement(Row, { className: b('block-container') },
44
- React.createElement(ConstructorBlocks, { items: container }))));
37
+ React.createElement(CardLayoutBlock, { title: "", colSizes: colSizes }, cards.map((card, index) => {
38
+ const key = getBlockKey(card, index);
39
+ return React.createElement(ConstructorItem, { data: card, blockKey: key, key: key });
40
+ })))));
45
41
  };
46
42
  export default FilterBlock;
@@ -137,6 +137,9 @@ export declare const HeaderBackgroundProps: {
137
137
  type: string;
138
138
  })[];
139
139
  };
140
+ fullscreen: {
141
+ type: string;
142
+ };
140
143
  };
141
144
  };
142
145
  export declare const HeaderProperties: {
@@ -424,6 +427,9 @@ export declare const HeaderProperties: {
424
427
  type: string;
425
428
  })[];
426
429
  };
430
+ fullscreen: {
431
+ type: string;
432
+ };
427
433
  };
428
434
  } | {
429
435
  type: string;
@@ -757,6 +763,9 @@ export declare const HeaderBlock: {
757
763
  type: string;
758
764
  })[];
759
765
  };
766
+ fullscreen: {
767
+ type: string;
768
+ };
760
769
  };
761
770
  } | {
762
771
  type: string;
@@ -294,6 +294,9 @@ export declare const HeaderSliderBlock: {
294
294
  type: string;
295
295
  })[];
296
296
  };
297
+ fullscreen: {
298
+ type: string;
299
+ };
297
300
  };
298
301
  } | {
299
302
  type: string;
@@ -131,6 +131,9 @@ export declare const Media: {
131
131
  type: string;
132
132
  })[];
133
133
  };
134
+ fullscreen: {
135
+ type: string;
136
+ };
134
137
  };
135
138
  };
136
139
  export declare const MediaBlockBaseProps: {
@@ -608,6 +611,9 @@ export declare const MediaBlock: {
608
611
  type: string;
609
612
  })[];
610
613
  };
614
+ fullscreen: {
615
+ type: string;
616
+ };
611
617
  };
612
618
  };
613
619
  description: {
@@ -146,6 +146,9 @@ export declare const PromoFeaturesItem: {
146
146
  type: string;
147
147
  })[];
148
148
  };
149
+ fullscreen: {
150
+ type: string;
151
+ };
149
152
  };
150
153
  };
151
154
  };
@@ -1,7 +1,7 @@
1
1
  import React, { Fragment, useContext, useRef, useState } from 'react';
2
2
  import AnimateBlock from '../../components/AnimateBlock/AnimateBlock';
3
3
  import ButtonTabs from '../../components/ButtonTabs/ButtonTabs';
4
- import FullScreenImage from '../../components/FullscreenImage/FullscreenImage';
4
+ import FullscreenImage from '../../components/FullscreenImage/FullscreenImage';
5
5
  import { getMediaImage } from '../../components/Media/Image/utils';
6
6
  import Media from '../../components/Media/Media';
7
7
  import Title from '../../components/Title/Title';
@@ -44,7 +44,7 @@ export const TabsBlock = ({ items, title, description, animated, tabsColSizes, c
44
44
  }, className: b('col', { centered: centered }) },
45
45
  React.createElement("div", { ref: ref }, (activeTabData === null || activeTabData === void 0 ? void 0 : activeTabData.media) && (React.createElement(Media, Object.assign({}, getThemedValue(activeTabData.media, theme), { key: activeTab, className: b('media'), playVideo: play, height: mediaHeight })))),
46
46
  imageProps && (React.createElement(Fragment, null,
47
- React.createElement(FullScreenImage, Object.assign({}, imageProps, { imageClassName: b('image') })))),
47
+ React.createElement(FullscreenImage, Object.assign({}, imageProps, { imageClassName: b('image') })))),
48
48
  (activeTabData === null || activeTabData === void 0 ? void 0 : activeTabData.caption) && React.createElement("p", { className: b('caption') }, activeTabData.caption)));
49
49
  const onSelectTab = (id, e) => {
50
50
  setActiveTab(id);
@@ -142,6 +142,9 @@ export declare const tabsItem: {
142
142
  type: string;
143
143
  })[];
144
144
  };
145
+ fullscreen: {
146
+ type: string;
147
+ };
145
148
  };
146
149
  } | {
147
150
  type: string;
@@ -4,8 +4,8 @@ import Image from '../Image/Image';
4
4
  import './BackgroundImage.css';
5
5
  const b = block('storage-background-image');
6
6
  const BackgroundImage = (props) => {
7
- const { children, src, desktop, className, imageClassName, style, hide } = props;
8
- return (React.createElement("div", { className: b(null, className), style: style },
7
+ const { children, src, desktop, className, imageClassName, style, hide, qa } = props;
8
+ return (React.createElement("div", { className: b(null, className), style: style, "data-qa": qa },
9
9
  (src || desktop) && !hide && React.createElement(Image, Object.assign({}, props, { className: b('img', imageClassName) })),
10
10
  children && React.createElement("div", { className: b('container') }, children)));
11
11
  };
@@ -1,4 +1,5 @@
1
- import { BlockBaseProps, ClassNameProps, WithChildren } from '../../models';
1
+ import { PropsWithChildren } from 'react';
2
+ import { BlockBaseProps, ClassNameProps } from '../../models';
2
3
  import './BlockBase.css';
3
- declare const BlockBase: (props: WithChildren<BlockBaseProps & ClassNameProps>) => JSX.Element;
4
+ declare const BlockBase: (props: PropsWithChildren<BlockBaseProps & ClassNameProps>) => JSX.Element;
4
5
  export default BlockBase;
@@ -1,4 +1,5 @@
1
1
  import React from 'react';
2
+ import { BlockDecoration } from '../../customization/BlockDecoration';
2
3
  import { Col } from '../../grid';
3
4
  import { block } from '../../utils';
4
5
  import Anchor from '../Anchor/Anchor';
@@ -7,7 +8,8 @@ const b = block('block-base');
7
8
  const BlockBase = (props) => {
8
9
  const { anchor, visible, children, className, resetPaddings, qa } = props;
9
10
  return (React.createElement(Col, { className: b({ ['reset-paddings']: resetPaddings }, className), visible: visible, reset: true, dataQa: qa },
10
- anchor && React.createElement(Anchor, { id: anchor.url, className: b('anchor') }),
11
- children));
11
+ React.createElement(BlockDecoration, null,
12
+ anchor && React.createElement(Anchor, { id: anchor.url, className: b('anchor') }),
13
+ children)));
12
14
  };
13
15
  export default BlockBase;
@@ -1,24 +1,24 @@
1
1
  /* use this for style redefinitions to awoid problems with
2
2
  unpredictable css rules order in build */
3
- .pc-FullScreenImage__image {
3
+ .pc-fullscreen-image__image {
4
4
  cursor: pointer;
5
5
  }
6
- .pc-FullScreenImage__image-wrapper {
6
+ .pc-fullscreen-image__image-wrapper {
7
7
  position: relative;
8
8
  }
9
- .pc-FullScreenImage__modal-content {
9
+ .pc-fullscreen-image__modal-content {
10
10
  position: relative;
11
11
  }
12
- .pc-FullScreenImage__modal-image {
12
+ .pc-fullscreen-image__modal-image {
13
13
  display: block;
14
14
  max-width: 1232px;
15
15
  max-height: 70vh;
16
16
  overflow: hidden;
17
17
  }
18
- .pc-FullScreenImage__modal .yc-modal__content, .pc-FullScreenImage__modal-image {
18
+ .pc-fullscreen-image__modal .yc-modal__content, .pc-fullscreen-image__modal-image {
19
19
  border-radius: var(--pc-border-radius);
20
20
  }
21
- .pc-FullScreenImage__icon-wrapper {
21
+ .pc-fullscreen-image__icon-wrapper {
22
22
  display: flex;
23
23
  align-items: center;
24
24
  justify-content: center;
@@ -33,28 +33,28 @@ unpredictable css rules order in build */
33
33
  opacity: 0;
34
34
  transition: 0.3s;
35
35
  }
36
- .pc-FullScreenImage__icon-wrapper_visible {
36
+ .pc-fullscreen-image__icon-wrapper_visible {
37
37
  opacity: 1;
38
38
  }
39
- .pc-FullScreenImage__icon {
39
+ .pc-fullscreen-image__icon {
40
40
  color: var(--yc-color-text-hint);
41
41
  }
42
- .pc-FullScreenImage__icon_hover:hover {
42
+ .pc-fullscreen-image__icon_hover:hover {
43
43
  color: var(--yc-color-text-secondary);
44
44
  }
45
45
  @media (max-width: 1185px) {
46
- .pc-FullScreenImage__modal-image {
46
+ .pc-fullscreen-image__modal-image {
47
47
  width: 100%;
48
48
  }
49
49
  }
50
50
  @media (max-width: 1081px) {
51
- .pc-FullScreenImage__image {
51
+ .pc-fullscreen-image__image {
52
52
  pointer-events: none;
53
53
  }
54
- .pc-FullScreenImage__icon-wrapper {
54
+ .pc-fullscreen-image__icon-wrapper {
55
55
  display: none;
56
56
  }
57
- .pc-FullScreenImage__modal {
57
+ .pc-fullscreen-image__modal {
58
58
  display: none !important; /* stylelint-disable-line declaration-no-important */
59
59
  }
60
60
  }
@@ -1,10 +1,10 @@
1
1
  import { CSSProperties } from 'react';
2
2
  import { ImageProps } from '../Image/Image';
3
- import './FullScreenImage.css';
4
- export interface FullScreenImageProps extends ImageProps {
3
+ import './FullscreenImage.css';
4
+ export interface FullscreenImageProps extends ImageProps {
5
5
  imageClassName?: string;
6
6
  modalImageClass?: string;
7
7
  imageStyle?: CSSProperties;
8
8
  }
9
- declare const FullScreenImage: (props: FullScreenImageProps) => JSX.Element;
10
- export default FullScreenImage;
9
+ declare const FullscreenImage: (props: FullscreenImageProps) => JSX.Element;
10
+ export default FullscreenImage;
@@ -1,30 +1,30 @@
1
1
  import React, { useState } from 'react';
2
2
  import { Icon, Modal } from '@gravity-ui/uikit';
3
- import { FullScreen, PreviewClose } from '../../icons';
3
+ import { Fullscreen, PreviewClose } from '../../icons';
4
4
  import { block } from '../../utils';
5
5
  import Image from '../Image/Image';
6
6
  import i18n from './i18n';
7
- import './FullScreenImage.css';
8
- const b = block('FullScreenImage');
7
+ import './FullscreenImage.css';
8
+ const b = block('fullscreen-image');
9
9
  const FULL_SCREEN_ICON_SIZE = 18;
10
10
  const CLOSE_ICON_SIZE = 30;
11
- const FullScreenImage = (props) => {
11
+ const FullscreenImage = (props) => {
12
12
  const { imageClassName, modalImageClass, imageStyle, alt = i18n('img-alt') } = props;
13
13
  const [isOpened, setIsOpened] = useState(false);
14
14
  const [isMouseEnter, setIsMouseEnter] = useState(false);
15
15
  const openModal = () => setIsOpened(true);
16
16
  const closeModal = () => setIsOpened(false);
17
- const showFullScreenIcon = () => setIsMouseEnter(true);
18
- const hideFullScreenIcon = () => setIsMouseEnter(false);
17
+ const showFullscreenIcon = () => setIsMouseEnter(true);
18
+ const hideFullscreenIcon = () => setIsMouseEnter(false);
19
19
  return (React.createElement("div", { className: b() },
20
- React.createElement("div", { className: b('image-wrapper'), onMouseEnter: showFullScreenIcon, onMouseLeave: hideFullScreenIcon },
20
+ React.createElement("div", { className: b('image-wrapper'), onMouseEnter: showFullscreenIcon, onMouseLeave: hideFullscreenIcon },
21
21
  React.createElement(Image, Object.assign({}, props, { alt: alt, className: b('image', imageClassName), onClick: openModal, style: imageStyle })),
22
22
  React.createElement("div", { className: b('icon-wrapper', { visible: isMouseEnter }), onClick: openModal },
23
- React.createElement(Icon, { data: FullScreen, width: FULL_SCREEN_ICON_SIZE, height: FULL_SCREEN_ICON_SIZE, className: b('icon') }))),
23
+ React.createElement(Icon, { data: Fullscreen, width: FULL_SCREEN_ICON_SIZE, height: FULL_SCREEN_ICON_SIZE, className: b('icon') }))),
24
24
  isOpened && (React.createElement(Modal, { open: isOpened, onClose: closeModal, className: b('modal') },
25
25
  React.createElement("div", { className: b('modal-content') },
26
26
  React.createElement("div", { className: b('icon-wrapper', { visible: true }), onClick: closeModal },
27
27
  React.createElement(Icon, { data: PreviewClose, width: CLOSE_ICON_SIZE, height: CLOSE_ICON_SIZE, className: b('icon', { hover: true }) })),
28
28
  React.createElement(Image, Object.assign({}, props, { className: b('modal-image', modalImageClass) })))))));
29
29
  };
30
- export default FullScreenImage;
30
+ export default FullscreenImage;
@@ -1,5 +1,5 @@
1
1
  import { registerKeyset } from '../../../utils/registerKeyset';
2
2
  import en from './en.json';
3
3
  import ru from './ru.json';
4
- const COMPONENT = 'FullScreenImage';
4
+ const COMPONENT = 'FullscreenImage';
5
5
  export default registerKeyset({ en, ru }, COMPONENT);
@@ -0,0 +1,10 @@
1
+ /// <reference types="react" />
2
+ import { MediaAllProps } from '../Media/Media';
3
+ import './FullscreenMedia.css';
4
+ export type ChildMediaRenderProps = Pick<MediaAllProps, 'fullscreen' | 'imageClassName' | 'videoClassName' | 'youtubeClassName' | 'className'>;
5
+ export interface FullscreenMediaProps {
6
+ showFullscreenIcon?: boolean;
7
+ children: (props?: ChildMediaRenderProps) => JSX.Element;
8
+ }
9
+ declare const FullscreenMedia: ({ children, showFullscreenIcon }: FullscreenMediaProps) => JSX.Element;
10
+ export default FullscreenMedia;
@@ -1,14 +1,14 @@
1
1
  import React, { useContext, useState } from 'react';
2
2
  import { Icon, Modal } from '@gravity-ui/uikit';
3
3
  import { MobileContext } from '../../context/mobileContext';
4
- import { FullScreen, PreviewClose } from '../../icons';
4
+ import { Fullscreen, PreviewClose } from '../../icons';
5
5
  import { block } from '../../utils';
6
- import './FullScreenMedia.css';
6
+ import './FullscreenMedia.css';
7
7
  const b = block('full-screen-media');
8
8
  const FULL_SCREEN_ICON_SIZE = 18;
9
9
  const CLOSE_ICON_SIZE = 30;
10
10
  const getMediaClass = (type) => b('modal-media', { type });
11
- const FullScreenMedia = ({ children, showFullScreenIcon = true }) => {
11
+ const FullscreenMedia = ({ children, showFullscreenIcon = true }) => {
12
12
  const [isOpened, setIsOpened] = useState(false);
13
13
  const isMobile = useContext(MobileContext);
14
14
  const openModal = (e) => {
@@ -22,8 +22,8 @@ const FullScreenMedia = ({ children, showFullScreenIcon = true }) => {
22
22
  return (React.createElement("div", { className: b() },
23
23
  React.createElement("div", { className: b('media-wrapper'), onClickCapture: openModal },
24
24
  children({ className: b('inline-media') }),
25
- showFullScreenIcon && (React.createElement("div", { className: b('icon-wrapper'), onClickCapture: openModal },
26
- React.createElement(Icon, { data: FullScreen, width: FULL_SCREEN_ICON_SIZE, height: FULL_SCREEN_ICON_SIZE, className: b('icon') })))),
25
+ showFullscreenIcon && (React.createElement("div", { className: b('icon-wrapper'), onClickCapture: openModal },
26
+ React.createElement(Icon, { data: Fullscreen, width: FULL_SCREEN_ICON_SIZE, height: FULL_SCREEN_ICON_SIZE, className: b('icon') })))),
27
27
  isOpened && (React.createElement(Modal, { open: isOpened, onClose: closeModal, className: b('modal') },
28
28
  React.createElement("div", { className: b('modal-content') },
29
29
  React.createElement("div", { className: b('icon-wrapper', { visible: true }), onClick: closeModal },
@@ -32,7 +32,7 @@ const FullScreenMedia = ({ children, showFullScreenIcon = true }) => {
32
32
  imageClassName: getMediaClass('image'),
33
33
  videoClassName: getMediaClass('video'),
34
34
  youtubeClassName: getMediaClass('youtube'),
35
- fullScreen: true,
35
+ fullscreen: true,
36
36
  }))))));
37
37
  };
38
- export default FullScreenMedia;
38
+ export default FullscreenMedia;
@@ -5,6 +5,7 @@ export interface ImageProps extends Partial<ImageObjectProps>, Partial<ImageDevi
5
5
  className?: string;
6
6
  onClick?: MouseEventHandler;
7
7
  containerClassName?: string;
8
+ qa?: string;
8
9
  }
9
10
  declare const Image: (props: ImageProps) => JSX.Element | null;
10
11
  export default Image;
@@ -9,7 +9,7 @@ const checkWebP = (src) => {
9
9
  };
10
10
  const Image = (props) => {
11
11
  const projectSettings = useContext(ProjectSettingsContext);
12
- const { src: imageSrc, alt = i18n('img-alt'), disableCompress, tablet, desktop, mobile, style, className, onClick, containerClassName, } = props;
12
+ const { src: imageSrc, alt = i18n('img-alt'), disableCompress, tablet, desktop, mobile, style, className, onClick, containerClassName, qa, } = props;
13
13
  const [imgLoadingError, setImgLoadingError] = useState(false);
14
14
  const src = imageSrc || desktop;
15
15
  if (!src) {
@@ -19,7 +19,7 @@ const Image = (props) => {
19
19
  disableCompress ||
20
20
  !isCompressible(src) ||
21
21
  imgLoadingError;
22
- return (React.createElement("picture", { className: containerClassName },
22
+ return (React.createElement("picture", { className: containerClassName, "data-qa": qa },
23
23
  mobile && (React.createElement(Fragment, null,
24
24
  !disableWebp && (React.createElement("source", { srcSet: checkWebP(mobile), type: "image/webp", media: `(max-width: ${BREAKPOINTS.sm}px)` })),
25
25
  React.createElement("source", { srcSet: mobile, media: `(max-width: ${BREAKPOINTS.sm}px)` }))),
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { VideoAllProps } from '../Video/Video';
3
+ declare const FullscreenVideo: React.FC<VideoAllProps>;
4
+ export default FullscreenVideo;
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import FullscreenMedia from '../../FullscreenMedia/FullscreenMedia';
3
+ import Video from '../Video/Video';
4
+ const FullscreenVideo = (props) => {
5
+ return (React.createElement(FullscreenMedia, null, (classNames) => React.createElement(Video, Object.assign({}, props, classNames))));
6
+ };
7
+ export default FullscreenVideo;
@@ -3,6 +3,7 @@ import './Image.css';
3
3
  export interface ImageAdditionProps {
4
4
  imageClassName?: string;
5
5
  isBackground?: boolean;
6
+ fullscreen?: boolean;
6
7
  }
7
8
  interface InnerImageProps {
8
9
  hasVideoFallback: boolean;
@@ -5,13 +5,13 @@ import SliderBlock from '../../../blocks/Slider/Slider';
5
5
  import { SliderType } from '../../../models';
6
6
  import { block } from '../../../utils';
7
7
  import BackgroundImage from '../../BackgroundImage/BackgroundImage';
8
- import FullScreenImage from '../../FullscreenImage/FullscreenImage';
8
+ import FullscreenImage from '../../FullscreenImage/FullscreenImage';
9
9
  import ImageView from '../../Image/Image';
10
10
  import { getMediaImage } from './utils';
11
11
  import './Image.css';
12
12
  const b = block('media-component-image');
13
13
  const Image = (props) => {
14
- const { parallax, image, height, imageClassName, isBackground, hasVideoFallback, video } = props;
14
+ const { parallax, image, height, imageClassName, isBackground, hasVideoFallback, video, fullscreen, } = props;
15
15
  const [scrollY, setScrollY] = useState(0);
16
16
  const [{ springScrollY }, springSetScrollY] = useSpring(() => ({
17
17
  springScrollY: 0,
@@ -32,10 +32,10 @@ const Image = (props) => {
32
32
  parallaxInterpolate = springScrollY.interpolate((value) => `translateY(-${Number(value) / parallaxLevel}px)`);
33
33
  }
34
34
  const imageClass = b('item', { withVideo: Boolean(video) && !hasVideoFallback }, imageClassName);
35
- const imageSlider = (imageArray) => (React.createElement(SliderBlock, { slidesToShow: 1, type: SliderType.MediaCard }, imageArray.map((item) => {
35
+ const renderFullscreenImage = (item) => {
36
36
  const itemData = getMediaImage(item);
37
- return (React.createElement(FullScreenImage, Object.assign({ key: itemData.alt }, itemData, { imageClassName: imageClass, imageStyle: { height } })));
38
- })));
37
+ return (React.createElement(FullscreenImage, Object.assign({ key: itemData.alt }, itemData, { imageClassName: imageClass, imageStyle: { height } })));
38
+ };
39
39
  const imageBackground = (oneImage) => {
40
40
  const imageData = getMediaImage(oneImage);
41
41
  return (React.createElement(animated.div, { style: { transform: parallaxInterpolate } },
@@ -45,9 +45,16 @@ const Image = (props) => {
45
45
  const imageData = getMediaImage(oneImage);
46
46
  return React.createElement(ImageView, Object.assign({}, imageData, { className: imageClass, style: { height } }));
47
47
  };
48
+ const imageSlider = (imageArray) => {
49
+ const fullscreenItem = fullscreen === undefined || fullscreen;
50
+ return (React.createElement(SliderBlock, { slidesToShow: 1, type: SliderType.MediaCard }, imageArray.map((item) => fullscreenItem ? renderFullscreenImage(item) : imageOnly(item))));
51
+ };
48
52
  if (Array.isArray(image)) {
49
53
  return imageSlider(image);
50
54
  }
55
+ if (fullscreen) {
56
+ return renderFullscreenImage(image);
57
+ }
51
58
  return isBackground ? imageBackground(image) : imageOnly(image);
52
59
  };
53
60
  export default Image;
@@ -2,24 +2,44 @@ import React, { useMemo, useState } from 'react';
2
2
  import { block } from '../../utils';
3
3
  import YoutubeBlock from '../VideoBlock/VideoBlock';
4
4
  import DataLens from './DataLens/DataLens';
5
+ import FullscreenVideo from './FullscreenVideo/FullscreenVideo';
5
6
  import Image from './Image/Image';
6
7
  import Video from './Video/Video';
7
8
  import './Media.css';
8
9
  const b = block('Media');
9
10
  export const Media = (props) => {
10
- const { image, video, youtube, dataLens, color, height, previewImg, parallax = false, metrika, fullScreen, analyticsEvents, } = props;
11
+ const { image, video, youtube, dataLens, color, height, previewImg, parallax = false, metrika, fullscreen, analyticsEvents, } = props;
11
12
  const { className, imageClassName, videoClassName, youtubeClassName, playVideo = true, isBackground, playButton, customBarControlsClassName, } = props;
12
13
  const [hasVideoFallback, setHasVideoFallback] = useState(false);
13
14
  const content = useMemo(() => {
14
15
  let result = [];
15
16
  if (image) {
16
- result.push(React.createElement(Image, { key: "image", parallax: parallax, image: image, height: height, imageClassName: imageClassName, isBackground: isBackground, video: video, hasVideoFallback: hasVideoFallback }));
17
+ result.push(React.createElement(Image, { key: "image", parallax: parallax, image: image, height: height, imageClassName: imageClassName, isBackground: isBackground, video: video, hasVideoFallback: hasVideoFallback, fullscreen: fullscreen }));
17
18
  }
18
19
  if (video) {
19
- result.push(React.createElement(Video, { key: "video", video: video, videoClassName: videoClassName, height: height, metrika: metrika, analyticsEvents: analyticsEvents, playVideo: playVideo, previewImg: previewImg, playButton: playButton, customBarControlsClassName: customBarControlsClassName, hasVideoFallback: hasVideoFallback, setHasVideoFallback: setHasVideoFallback }));
20
+ const videoProps = {
21
+ key: 'video',
22
+ video,
23
+ videoClassName,
24
+ height,
25
+ metrika,
26
+ analyticsEvents,
27
+ playVideo,
28
+ previewImg,
29
+ playButton,
30
+ customBarControlsClassName,
31
+ hasVideoFallback,
32
+ setHasVideoFallback,
33
+ };
34
+ if (fullscreen) {
35
+ result.push(React.createElement(FullscreenVideo, Object.assign({}, videoProps)));
36
+ }
37
+ else {
38
+ result.push(React.createElement(Video, Object.assign({}, videoProps)));
39
+ }
20
40
  }
21
41
  if (youtube) {
22
- result = (React.createElement(YoutubeBlock, { className: b('youtube', youtubeClassName), record: youtube, attributes: { color: 'white', rel: '0' }, previewImg: previewImg, height: height, fullScreen: fullScreen }));
42
+ result = (React.createElement(YoutubeBlock, { className: b('youtube', youtubeClassName), record: youtube, attributes: { color: 'white', rel: '0' }, previewImg: previewImg, height: height, fullscreen: fullscreen }));
23
43
  }
24
44
  if (dataLens) {
25
45
  result = React.createElement(DataLens, { dataLens: dataLens });
@@ -43,7 +63,7 @@ export const Media = (props) => {
43
63
  playButton,
44
64
  customBarControlsClassName,
45
65
  youtubeClassName,
46
- fullScreen,
66
+ fullscreen,
47
67
  ]);
48
68
  return (React.createElement("div", { className: b(null, className), style: { backgroundColor: color } }, content));
49
69
  };
@@ -11,6 +11,6 @@ interface InnerVideoProps {
11
11
  setHasVideoFallback: React.Dispatch<boolean>;
12
12
  hasVideoFallback: boolean;
13
13
  }
14
- type VideoAllProps = VideoAdditionProps & MediaComponentVideoProps & InnerVideoProps;
14
+ export type VideoAllProps = VideoAdditionProps & MediaComponentVideoProps & InnerVideoProps;
15
15
  declare const Video: (props: VideoAllProps) => JSX.Element | null;
16
16
  export default Video;
@@ -14,7 +14,7 @@ export interface VideoBlockProps {
14
14
  previewImg?: string;
15
15
  playButton?: React.ReactNode;
16
16
  height?: number;
17
- fullScreen?: boolean;
17
+ fullscreen?: boolean;
18
18
  }
19
19
  declare const VideoBlock: (props: VideoBlockProps) => JSX.Element | null;
20
20
  export default VideoBlock;
@@ -35,7 +35,7 @@ export function getHeight(width) {
35
35
  return (width / 16) * 9;
36
36
  }
37
37
  const VideoBlock = (props) => {
38
- const { stream, record, attributes, className, id, previewImg, playButton, height, fullScreen } = props;
38
+ const { stream, record, attributes, className, id, previewImg, playButton, height, fullscreen } = props;
39
39
  const src = getVideoSrc(stream, record);
40
40
  const ref = useRef(null);
41
41
  const iframeRef = useRef();
@@ -78,14 +78,14 @@ const VideoBlock = (props) => {
78
78
  ref.current.appendChild(iframe);
79
79
  iframeRef.current = iframe;
80
80
  }
81
- }, [stream, record, norender, src, fullId, attributes, iframeRef, fullScreen]);
81
+ }, [stream, record, norender, src, fullId, attributes, iframeRef, fullscreen]);
82
82
  useEffect(() => {
83
83
  setHidePreview(false);
84
84
  }, [src, setHidePreview]);
85
85
  if (norender) {
86
86
  return null;
87
87
  }
88
- return (React.createElement("div", { className: b(null, className), ref: ref, style: { height: currentHeight } }, previewImg && !hidePreview && !fullScreen && (React.createElement("div", { className: b('preview'), onClick: onPreviewClick },
88
+ return (React.createElement("div", { className: b(null, className), ref: ref, style: { height: currentHeight } }, previewImg && !hidePreview && !fullscreen && (React.createElement("div", { className: b('preview'), onClick: onPreviewClick },
89
89
  React.createElement(Image, { src: previewImg, className: b('image'), containerClassName: b('image-wrapper') }),
90
90
  playButton || (React.createElement("button", { className: b('button') },
91
91
  React.createElement(Icon, { className: b('icon'), data: PlayVideo, size: 24 })))))));
@@ -33,6 +33,6 @@ export { default as Author } from './Author/Author';
33
33
  export { default as RouterLink } from './RouterLink/RouterLink';
34
34
  export { default as HTML } from './HTML/HTML';
35
35
  export { default as MetaInfo } from './MetaInfo/MetaInfo';
36
- export { default as FullScreenMedia } from './FullscreenMedia/FullScreenMedia';
36
+ export { default as FullscreenMedia } from './FullscreenMedia/FullscreenMedia';
37
37
  export type { RouterLinkProps } from './RouterLink/RouterLink';
38
38
  export type { ImageBaseProps } from './ImageBase/ImageBase';
@@ -33,4 +33,4 @@ export { default as Author } from './Author/Author';
33
33
  export { default as RouterLink } from './RouterLink/RouterLink';
34
34
  export { default as HTML } from './HTML/HTML';
35
35
  export { default as MetaInfo } from './MetaInfo/MetaInfo';
36
- export { default as FullScreenMedia } from './FullscreenMedia/FullScreenMedia';
36
+ export { default as FullscreenMedia } from './FullscreenMedia/FullscreenMedia';