@gravity-ui/page-constructor 2.21.0 → 2.22.0-alpha

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 (233) hide show
  1. package/CHANGELOG.md +0 -53
  2. package/README.md +1 -1
  3. package/build/cjs/blocks/Header/schema.d.ts +18 -0
  4. package/build/cjs/blocks/HeaderSlider/schema.d.ts +6 -0
  5. package/build/cjs/blocks/Media/schema.d.ts +12 -0
  6. package/build/cjs/blocks/PromoFeaturesBlock/schema.d.ts +6 -0
  7. package/build/cjs/blocks/Security/schema.d.ts +6 -0
  8. package/build/cjs/blocks/Tabs/schema.d.ts +6 -0
  9. package/build/cjs/components/Anchor/Anchor.d.ts +2 -2
  10. package/build/cjs/components/Anchor/Anchor.js +1 -1
  11. package/build/cjs/components/Anchor/__tests__/Anchor.test.js +21 -0
  12. package/build/cjs/components/AnimateBlock/__tests__/AnimateBlock.test.js +36 -0
  13. package/build/cjs/components/Author/__tests__/Author.test.d.ts +1 -0
  14. package/build/cjs/components/Author/__tests__/Author.test.js +49 -0
  15. package/build/cjs/components/BackLink/__tests__/BackLink.test.d.ts +1 -0
  16. package/build/cjs/components/BackLink/__tests__/BackLink.test.js +63 -0
  17. package/build/cjs/components/BackgroundImage/BackgroundImage.js +2 -2
  18. package/build/cjs/components/BlockBase/BlockBase.d.ts +2 -3
  19. package/build/cjs/components/BlockBase/BlockBase.js +2 -4
  20. package/build/cjs/components/BlockBase/__tests__/BlockBase.test.d.ts +1 -0
  21. package/build/cjs/components/BlockBase/__tests__/BlockBase.test.js +44 -0
  22. package/build/cjs/components/Button/Button.css +0 -3
  23. package/build/cjs/components/Button/Button.js +4 -5
  24. package/build/cjs/components/Button/__tests__/Button.test.d.ts +1 -0
  25. package/build/cjs/components/Button/__tests__/Button.test.js +91 -0
  26. package/build/cjs/components/ButtonTabs/__tests__/ButtonTabs.test.d.ts +1 -0
  27. package/build/cjs/components/ButtonTabs/__tests__/ButtonTabs.test.js +58 -0
  28. package/build/cjs/components/FullscreenImage/FullscreenImage.d.ts +2 -2
  29. package/build/cjs/components/FullscreenImage/FullscreenImage.js +5 -5
  30. package/build/cjs/components/FullscreenMedia/FullscreenMedia.d.ts +13 -0
  31. package/build/cjs/components/FullscreenMedia/{FullScreenMedia.js → FullscreenMedia.js} +3 -3
  32. package/build/cjs/components/Image/Image.d.ts +0 -1
  33. package/build/cjs/components/Image/Image.js +2 -2
  34. package/build/cjs/components/Media/FullscreenVideo/FullscreenVideo.d.ts +4 -0
  35. package/build/cjs/components/Media/FullscreenVideo/FullscreenVideo.js +10 -0
  36. package/build/cjs/components/Media/Image/Image.d.ts +1 -0
  37. package/build/cjs/components/Media/Image/Image.js +10 -3
  38. package/build/cjs/components/Media/Media.js +25 -4
  39. package/build/cjs/components/Media/Video/Video.d.ts +1 -1
  40. package/build/cjs/components/VideoBlock/VideoBlock.d.ts +4 -0
  41. package/build/cjs/components/VideoBlock/VideoBlock.js +3 -3
  42. package/build/cjs/components/index.d.ts +1 -1
  43. package/build/cjs/components/index.js +2 -2
  44. package/build/cjs/constructor-items.d.ts +1 -1
  45. package/build/cjs/containers/Loadable/Loadable.d.ts +2 -2
  46. package/build/cjs/containers/PageConstructor/PageConstructor.js +3 -5
  47. package/build/cjs/containers/PageConstructor/components/ConstructorBlocks/ConstructorBlocks.js +2 -3
  48. package/build/cjs/containers/PageConstructor/components/ConstructorItem/ConstructorItem.d.ts +1 -1
  49. package/build/cjs/containers/PageConstructor/components/ConstructorItem/ConstructorItem.js +5 -5
  50. package/build/cjs/context/innerContext/InnerContext.d.ts +1 -2
  51. package/build/cjs/grid/Col/Col.d.ts +1 -1
  52. package/build/cjs/hooks/useMetrika.js +7 -0
  53. package/build/cjs/internal-typings/global.d.ts +16 -18
  54. package/build/cjs/models/constructor-items/blocks.d.ts +11 -1
  55. package/build/cjs/models/constructor-items/blocks.js +2 -0
  56. package/build/cjs/models/constructor-items/common.d.ts +7 -3
  57. package/build/cjs/models/constructor-items/sub-blocks.d.ts +4 -0
  58. package/build/cjs/models/constructor.d.ts +1 -4
  59. package/build/cjs/models/index.d.ts +0 -1
  60. package/build/cjs/models/index.js +0 -1
  61. package/build/cjs/schema/validators/common.d.ts +6 -0
  62. package/build/cjs/schema/validators/common.js +6 -0
  63. package/build/cjs/sub-blocks/HubspotForm/HubspotFormContainer.d.ts +1 -2
  64. package/build/cjs/sub-blocks/HubspotForm/HubspotFormContainer.js +2 -5
  65. package/build/cjs/sub-blocks/HubspotForm/index.d.ts +1 -1
  66. package/build/cjs/sub-blocks/HubspotForm/index.js +5 -6
  67. package/build/cjs/sub-blocks/LayoutItem/LayoutItem.d.ts +1 -1
  68. package/build/cjs/sub-blocks/LayoutItem/LayoutItem.js +4 -4
  69. package/build/cjs/sub-blocks/LayoutItem/schema.d.ts +9 -0
  70. package/build/cjs/sub-blocks/LayoutItem/schema.js +2 -0
  71. package/build/cjs/sub-blocks/LayoutItem/utils.d.ts +2 -2
  72. package/build/cjs/sub-blocks/LayoutItem/utils.js +5 -5
  73. package/build/cjs/sub-blocks/MediaCard/schema.d.ts +6 -0
  74. package/build/cjs/utils/blocks.d.ts +1 -4
  75. package/build/cjs/utils/blocks.js +1 -11
  76. package/build/esm/blocks/Header/schema.d.ts +18 -0
  77. package/build/esm/blocks/HeaderSlider/schema.d.ts +6 -0
  78. package/build/esm/blocks/Media/schema.d.ts +12 -0
  79. package/build/esm/blocks/PromoFeaturesBlock/schema.d.ts +6 -0
  80. package/build/esm/blocks/Security/schema.d.ts +6 -0
  81. package/build/esm/blocks/Tabs/Tabs.js +2 -2
  82. package/build/esm/blocks/Tabs/schema.d.ts +6 -0
  83. package/build/esm/components/Anchor/Anchor.d.ts +2 -2
  84. package/build/esm/components/Anchor/Anchor.js +1 -1
  85. package/build/esm/components/Anchor/__tests__/Anchor.test.d.ts +1 -0
  86. package/build/esm/components/Anchor/__tests__/Anchor.test.js +18 -0
  87. package/build/esm/components/AnimateBlock/__tests__/AnimateBlock.test.d.ts +1 -0
  88. package/build/esm/components/AnimateBlock/__tests__/AnimateBlock.test.js +33 -0
  89. package/build/esm/components/Author/__tests__/Author.test.d.ts +1 -0
  90. package/build/esm/components/Author/__tests__/Author.test.js +46 -0
  91. package/build/esm/components/BackLink/__tests__/BackLink.test.d.ts +1 -0
  92. package/build/esm/components/BackLink/__tests__/BackLink.test.js +60 -0
  93. package/build/esm/components/BackgroundImage/BackgroundImage.js +2 -2
  94. package/build/esm/components/BlockBase/BlockBase.d.ts +2 -3
  95. package/build/esm/components/BlockBase/BlockBase.js +2 -4
  96. package/build/esm/components/BlockBase/__tests__/BlockBase.test.d.ts +1 -0
  97. package/build/esm/components/BlockBase/__tests__/BlockBase.test.js +41 -0
  98. package/build/esm/components/Button/Button.css +0 -3
  99. package/build/esm/components/Button/Button.js +4 -5
  100. package/build/esm/components/Button/__tests__/Button.test.d.ts +1 -0
  101. package/build/esm/components/Button/__tests__/Button.test.js +88 -0
  102. package/build/esm/components/ButtonTabs/__tests__/ButtonTabs.test.d.ts +1 -0
  103. package/build/esm/components/ButtonTabs/__tests__/ButtonTabs.test.js +55 -0
  104. package/build/esm/components/FullscreenImage/FullscreenImage.d.ts +3 -3
  105. package/build/esm/components/FullscreenImage/FullscreenImage.js +6 -6
  106. package/build/esm/components/FullscreenMedia/FullscreenMedia.d.ts +14 -0
  107. package/build/esm/components/FullscreenMedia/{FullScreenMedia.js → FullscreenMedia.js} +4 -4
  108. package/build/esm/components/Image/Image.d.ts +0 -1
  109. package/build/esm/components/Image/Image.js +2 -2
  110. package/build/esm/components/Media/FullscreenVideo/FullscreenVideo.d.ts +4 -0
  111. package/build/esm/components/Media/FullscreenVideo/FullscreenVideo.js +7 -0
  112. package/build/esm/components/Media/Image/Image.d.ts +1 -0
  113. package/build/esm/components/Media/Image/Image.js +12 -5
  114. package/build/esm/components/Media/Media.js +25 -4
  115. package/build/esm/components/Media/Video/Video.d.ts +1 -1
  116. package/build/esm/components/VideoBlock/VideoBlock.d.ts +4 -0
  117. package/build/esm/components/VideoBlock/VideoBlock.js +3 -3
  118. package/build/esm/components/index.d.ts +1 -1
  119. package/build/esm/components/index.js +1 -1
  120. package/build/esm/constructor-items.d.ts +1 -1
  121. package/build/esm/containers/Loadable/Loadable.d.ts +2 -2
  122. package/build/esm/containers/PageConstructor/PageConstructor.js +4 -6
  123. package/build/esm/containers/PageConstructor/components/ConstructorBlocks/ConstructorBlocks.js +2 -3
  124. package/build/esm/containers/PageConstructor/components/ConstructorItem/ConstructorItem.d.ts +1 -1
  125. package/build/esm/containers/PageConstructor/components/ConstructorItem/ConstructorItem.js +5 -5
  126. package/build/esm/context/innerContext/InnerContext.d.ts +1 -2
  127. package/build/esm/grid/Col/Col.d.ts +1 -1
  128. package/build/esm/hooks/useMetrika.js +7 -0
  129. package/build/esm/internal-typings/global.d.ts +16 -18
  130. package/build/esm/models/constructor-items/blocks.d.ts +11 -1
  131. package/build/esm/models/constructor-items/blocks.js +2 -0
  132. package/build/esm/models/constructor-items/common.d.ts +7 -3
  133. package/build/esm/models/constructor-items/sub-blocks.d.ts +4 -0
  134. package/build/esm/models/constructor.d.ts +1 -4
  135. package/build/esm/models/index.d.ts +0 -1
  136. package/build/esm/models/index.js +0 -1
  137. package/build/esm/schema/validators/common.d.ts +6 -0
  138. package/build/esm/schema/validators/common.js +6 -0
  139. package/build/esm/sub-blocks/HubspotForm/HubspotFormContainer.d.ts +1 -2
  140. package/build/esm/sub-blocks/HubspotForm/HubspotFormContainer.js +3 -6
  141. package/build/esm/sub-blocks/HubspotForm/index.d.ts +1 -1
  142. package/build/esm/sub-blocks/HubspotForm/index.js +6 -7
  143. package/build/esm/sub-blocks/LayoutItem/LayoutItem.d.ts +1 -1
  144. package/build/esm/sub-blocks/LayoutItem/LayoutItem.js +5 -5
  145. package/build/esm/sub-blocks/LayoutItem/schema.d.ts +9 -0
  146. package/build/esm/sub-blocks/LayoutItem/schema.js +2 -0
  147. package/build/esm/sub-blocks/LayoutItem/utils.d.ts +2 -2
  148. package/build/esm/sub-blocks/LayoutItem/utils.js +2 -2
  149. package/build/esm/sub-blocks/MediaCard/schema.d.ts +6 -0
  150. package/build/esm/utils/blocks.d.ts +1 -4
  151. package/build/esm/utils/blocks.js +0 -7
  152. package/package.json +6 -4
  153. package/server/models/constructor-items/blocks.d.ts +11 -1
  154. package/server/models/constructor-items/blocks.js +2 -0
  155. package/server/models/constructor-items/common.d.ts +7 -3
  156. package/server/models/constructor-items/sub-blocks.d.ts +4 -0
  157. package/server/models/constructor.d.ts +1 -4
  158. package/server/models/index.d.ts +0 -1
  159. package/server/models/index.js +0 -1
  160. package/server/utils/blocks.d.ts +1 -4
  161. package/server/utils/blocks.js +1 -11
  162. package/build/cjs/components/FullscreenMedia/FullScreenMedia.d.ts +0 -9
  163. package/build/cjs/customization/BlockDecoration.d.ts +0 -3
  164. package/build/cjs/customization/BlockDecoration.js +0 -22
  165. package/build/cjs/editor/Components/AddBlock/AddBlock.css +0 -82
  166. package/build/cjs/editor/Components/AddBlock/AddBlock.d.ts +0 -7
  167. package/build/cjs/editor/Components/AddBlock/AddBlock.js +0 -43
  168. package/build/cjs/editor/Components/EditBlock/EditBlock.css +0 -47
  169. package/build/cjs/editor/Components/EditBlock/EditBlock.d.ts +0 -4
  170. package/build/cjs/editor/Components/EditBlock/EditBlock.js +0 -32
  171. package/build/cjs/editor/Containers/Editor.d.ts +0 -2
  172. package/build/cjs/editor/Containers/Editor.js +0 -24
  173. package/build/cjs/editor/data/index.d.ts +0 -13
  174. package/build/cjs/editor/data/index.js +0 -27
  175. package/build/cjs/editor/data/previews/default-preview.d.ts +0 -3
  176. package/build/cjs/editor/data/previews/default-preview.js +0 -18
  177. package/build/cjs/editor/data/previews/header-block.d.ts +0 -3
  178. package/build/cjs/editor/data/previews/header-block.js +0 -19
  179. package/build/cjs/editor/index.d.ts +0 -2
  180. package/build/cjs/editor/index.js +0 -7
  181. package/build/cjs/editor/store/index.d.ts +0 -15
  182. package/build/cjs/editor/store/index.js +0 -32
  183. package/build/cjs/editor/store/reducer.d.ts +0 -41
  184. package/build/cjs/editor/store/reducer.js +0 -59
  185. package/build/cjs/editor/store/utils.d.ts +0 -13
  186. package/build/cjs/editor/store/utils.js +0 -34
  187. package/build/cjs/editor/styles/mixins.css +0 -0
  188. package/build/cjs/editor/styles/variables.css +0 -0
  189. package/build/cjs/editor/types/index.d.ts +0 -17
  190. package/build/cjs/editor/types/index.js +0 -2
  191. package/build/cjs/editor/utils/index.d.ts +0 -11
  192. package/build/cjs/editor/utils/index.js +0 -12
  193. package/build/cjs/models/customization.d.ts +0 -9
  194. package/build/cjs/models/customization.js +0 -2
  195. package/build/esm/components/FullscreenMedia/FullScreenMedia.d.ts +0 -10
  196. package/build/esm/customization/BlockDecoration.d.ts +0 -3
  197. package/build/esm/customization/BlockDecoration.js +0 -17
  198. package/build/esm/editor/Components/AddBlock/AddBlock.css +0 -82
  199. package/build/esm/editor/Components/AddBlock/AddBlock.d.ts +0 -8
  200. package/build/esm/editor/Components/AddBlock/AddBlock.js +0 -41
  201. package/build/esm/editor/Components/EditBlock/EditBlock.css +0 -47
  202. package/build/esm/editor/Components/EditBlock/EditBlock.d.ts +0 -5
  203. package/build/esm/editor/Components/EditBlock/EditBlock.js +0 -30
  204. package/build/esm/editor/Containers/Editor.d.ts +0 -2
  205. package/build/esm/editor/Containers/Editor.js +0 -20
  206. package/build/esm/editor/data/index.d.ts +0 -13
  207. package/build/esm/editor/data/index.js +0 -24
  208. package/build/esm/editor/data/previews/default-preview.d.ts +0 -3
  209. package/build/esm/editor/data/previews/default-preview.js +0 -15
  210. package/build/esm/editor/data/previews/header-block.d.ts +0 -3
  211. package/build/esm/editor/data/previews/header-block.js +0 -16
  212. package/build/esm/editor/index.d.ts +0 -2
  213. package/build/esm/editor/index.js +0 -2
  214. package/build/esm/editor/store/index.d.ts +0 -15
  215. package/build/esm/editor/store/index.js +0 -28
  216. package/build/esm/editor/store/reducer.d.ts +0 -41
  217. package/build/esm/editor/store/reducer.js +0 -55
  218. package/build/esm/editor/store/utils.d.ts +0 -13
  219. package/build/esm/editor/store/utils.js +0 -26
  220. package/build/esm/editor/styles/mixins.css +0 -0
  221. package/build/esm/editor/styles/variables.css +0 -0
  222. package/build/esm/editor/types/index.d.ts +0 -17
  223. package/build/esm/editor/utils/index.d.ts +0 -11
  224. package/build/esm/editor/utils/index.js +0 -6
  225. package/build/esm/models/customization.d.ts +0 -9
  226. package/server/models/customization.d.ts +0 -9
  227. package/server/models/customization.js +0 -2
  228. /package/build/{esm/editor/types/index.js → cjs/components/Anchor/__tests__/Anchor.test.d.ts} +0 -0
  229. /package/build/{esm/models/customization.js → cjs/components/AnimateBlock/__tests__/AnimateBlock.test.d.ts} +0 -0
  230. /package/build/cjs/components/FullscreenImage/{FullScreenImage.css → FullscreenImage.css} +0 -0
  231. /package/build/cjs/components/FullscreenMedia/{FullScreenMedia.css → FullscreenMedia.css} +0 -0
  232. /package/build/esm/components/FullscreenImage/{FullScreenImage.css → FullscreenImage.css} +0 -0
  233. /package/build/esm/components/FullscreenMedia/{FullScreenMedia.css → FullscreenMedia.css} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,58 +1,5 @@
1
1
  # Changelog
2
2
 
3
- ## [2.21.0](https://github.com/gravity-ui/page-constructor/compare/v2.20.1...v2.21.0) (2023-05-29)
4
-
5
-
6
- ### Features
7
-
8
- * remove metrika goals from pixel events ([#355](https://github.com/gravity-ui/page-constructor/issues/355)) ([1a0ddae](https://github.com/gravity-ui/page-constructor/commit/1a0ddae92e4862665c64652c0da27cee9085d286))
9
-
10
- ## [2.20.1](https://github.com/gravity-ui/page-constructor/compare/v2.20.0...v2.20.1) (2023-05-29)
11
-
12
-
13
- ### Bug Fixes
14
-
15
- * editor scroll ([#352](https://github.com/gravity-ui/page-constructor/issues/352)) ([9fbbefe](https://github.com/gravity-ui/page-constructor/commit/9fbbefec311a0017eab7533b0b26bbddf97ff453))
16
-
17
- ## [2.20.0](https://github.com/gravity-ui/page-constructor/compare/v2.19.0...v2.20.0) (2023-05-25)
18
-
19
-
20
- ### Features
21
-
22
- * add page structure editor ([8d1dafe](https://github.com/gravity-ui/page-constructor/commit/8d1dafe964a9af3c7f5ad0e6039cccf2d24da64f))
23
- * Edit mode ([#347](https://github.com/gravity-ui/page-constructor/issues/347)) ([8d1dafe](https://github.com/gravity-ui/page-constructor/commit/8d1dafe964a9af3c7f5ad0e6039cccf2d24da64f))
24
-
25
-
26
- ### Bug Fixes
27
-
28
- * customization types import fix ([#350](https://github.com/gravity-ui/page-constructor/issues/350)) ([206306f](https://github.com/gravity-ui/page-constructor/commit/206306f95d87ae428538b27dca08f78cb4de9430))
29
-
30
- ## [2.19.0](https://github.com/gravity-ui/page-constructor/compare/v2.18.0...v2.19.0) (2023-05-23)
31
-
32
-
33
- ### Features
34
-
35
- * **Button:** add prop width ([#346](https://github.com/gravity-ui/page-constructor/issues/346)) ([f4b1ba8](https://github.com/gravity-ui/page-constructor/commit/f4b1ba85f56ef2de435bd91ae1fc35fbea0a177b))
36
-
37
- ## [2.18.0](https://github.com/gravity-ui/page-constructor/compare/v2.18.0...v2.18.0) (2023-05-15)
38
-
39
-
40
- ### Features
41
-
42
- * **HubspotForm:** add ref forwarding for HS form ([#332](https://github.com/gravity-ui/page-constructor/issues/332)) ([37b75d3](https://github.com/gravity-ui/page-constructor/commit/37b75d31c09e8dc061d718828bcccc72b037e106))
43
-
44
-
45
- ### Bug Fixes
46
-
47
- * config gulpfile for tests ([a5cb59d](https://github.com/gravity-ui/page-constructor/commit/a5cb59d0bc1e3a8c09babed0c5ace9a2253416c3))
48
-
49
- ## [2.17.0](https://github.com/gravity-ui/page-constructor/compare/v2.16.0...v2.17.0) (2023-05-12)
50
-
51
-
52
- ### Features
53
-
54
- * drop rules overriding ([#303](https://github.com/gravity-ui/page-constructor/issues/303)) ([0c13398](https://github.com/gravity-ui/page-constructor/commit/0c1339885ce3b930ab9428b585aa6dd020b0d298))
55
-
56
3
  ## [2.16.0](https://github.com/gravity-ui/page-constructor/compare/v2.15.0...v2.16.0) (2023-05-11)
57
4
 
58
5
 
package/README.md CHANGED
@@ -184,7 +184,7 @@ Sub-blocks are components that can be used in the block `children` property. In
184
184
  - Add it to `enum` or `selectCases` in the `schema/index.ts` file.
185
185
 
186
186
  6. In the block directory, add the `README.md` file with a description of input parameters.
187
- 7. In the block directory add storybook demo in `__stories__` folder. (All demo content for story should be placed in `data.json` at story dir)
187
+ 7. In the block directory add storybook demo in `__stories__` folder. All demo content for story should be placed in `data.json` at story dir. The generic `Story` must accept the type of block props, otherwise incorrect block props will be displayed in Storybook.
188
188
 
189
189
  ### Themes
190
190
 
@@ -137,6 +137,12 @@ export declare const HeaderBackgroundProps: {
137
137
  type: string;
138
138
  })[];
139
139
  };
140
+ fullScreen: {
141
+ type: string;
142
+ };
143
+ fullscreen: {
144
+ type: string;
145
+ };
140
146
  };
141
147
  };
142
148
  export declare const HeaderProperties: {
@@ -424,6 +430,12 @@ export declare const HeaderProperties: {
424
430
  type: string;
425
431
  })[];
426
432
  };
433
+ fullScreen: {
434
+ type: string;
435
+ };
436
+ fullscreen: {
437
+ type: string;
438
+ };
427
439
  };
428
440
  } | {
429
441
  type: string;
@@ -757,6 +769,12 @@ export declare const HeaderBlock: {
757
769
  type: string;
758
770
  })[];
759
771
  };
772
+ fullScreen: {
773
+ type: string;
774
+ };
775
+ fullscreen: {
776
+ type: string;
777
+ };
760
778
  };
761
779
  } | {
762
780
  type: string;
@@ -294,6 +294,12 @@ export declare const HeaderSliderBlock: {
294
294
  type: string;
295
295
  })[];
296
296
  };
297
+ fullScreen: {
298
+ type: string;
299
+ };
300
+ fullscreen: {
301
+ type: string;
302
+ };
297
303
  };
298
304
  } | {
299
305
  type: string;
@@ -131,6 +131,12 @@ export declare const Media: {
131
131
  type: string;
132
132
  })[];
133
133
  };
134
+ fullScreen: {
135
+ type: string;
136
+ };
137
+ fullscreen: {
138
+ type: string;
139
+ };
134
140
  };
135
141
  };
136
142
  export declare const MediaBlockBaseProps: {
@@ -608,6 +614,12 @@ export declare const MediaBlock: {
608
614
  type: string;
609
615
  })[];
610
616
  };
617
+ fullScreen: {
618
+ type: string;
619
+ };
620
+ fullscreen: {
621
+ type: string;
622
+ };
611
623
  };
612
624
  };
613
625
  description: {
@@ -146,6 +146,12 @@ export declare const PromoFeaturesItem: {
146
146
  type: string;
147
147
  })[];
148
148
  };
149
+ fullScreen: {
150
+ type: string;
151
+ };
152
+ fullscreen: {
153
+ type: string;
154
+ };
149
155
  };
150
156
  };
151
157
  };
@@ -147,6 +147,12 @@ export declare const SecurityBlock: {
147
147
  type: string;
148
148
  })[];
149
149
  };
150
+ fullScreen: {
151
+ type: string;
152
+ };
153
+ fullscreen: {
154
+ type: string;
155
+ };
150
156
  };
151
157
  };
152
158
  points: {
@@ -142,6 +142,12 @@ export declare const tabsItem: {
142
142
  type: string;
143
143
  })[];
144
144
  };
145
+ fullScreen: {
146
+ type: string;
147
+ };
148
+ fullscreen: {
149
+ type: string;
150
+ };
145
151
  };
146
152
  } | {
147
153
  type: string;
@@ -2,7 +2,7 @@ import { ClassNameProps } from '../../models';
2
2
  export declare const qaIdByDefault = "qa-anchor";
3
3
  export interface AnchorProps extends ClassNameProps {
4
4
  id: string;
5
- qa?: string;
5
+ dataQa?: string;
6
6
  }
7
- declare const Anchor: ({ id, className, qa }: AnchorProps) => JSX.Element;
7
+ declare const Anchor: ({ id, className, dataQa }: AnchorProps) => JSX.Element;
8
8
  export default Anchor;
@@ -7,5 +7,5 @@ const react_1 = tslib_1.__importDefault(require("react"));
7
7
  const utils_1 = require("../../utils");
8
8
  const b = (0, utils_1.block)('Anchor');
9
9
  exports.qaIdByDefault = 'qa-anchor';
10
- const Anchor = ({ id, className, qa }) => (react_1.default.createElement("div", { id: id, className: b(null, className), "data-qa": qa || exports.qaIdByDefault }));
10
+ const Anchor = ({ id, className, dataQa }) => (react_1.default.createElement("div", { id: id, className: b(null, className), "data-qa": dataQa || exports.qaIdByDefault }));
11
11
  exports.default = Anchor;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const react_1 = tslib_1.__importDefault(require("react"));
5
+ const react_2 = require("@testing-library/react");
6
+ const Anchor_1 = tslib_1.__importDefault(require("../Anchor"));
7
+ const testId = 'anchor';
8
+ const anchorId = 'anchorId';
9
+ describe('Anchor', () => {
10
+ test('Has id', async () => {
11
+ (0, react_2.render)(react_1.default.createElement(Anchor_1.default, { id: anchorId, dataQa: testId }));
12
+ const anchor = react_2.screen.getByTestId(testId);
13
+ expect(anchor).toHaveAttribute('id', anchorId);
14
+ });
15
+ test('Has custom class', async () => {
16
+ const className = 'custom-anchor-class';
17
+ (0, react_2.render)(react_1.default.createElement(Anchor_1.default, { id: anchorId, className: className, dataQa: testId }));
18
+ const anchor = react_2.screen.getByTestId(testId);
19
+ expect(anchor).toHaveClass(className);
20
+ });
21
+ });
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const react_1 = tslib_1.__importDefault(require("react"));
5
+ const react_2 = require("@testing-library/react");
6
+ const user_event_1 = tslib_1.__importDefault(require("@testing-library/user-event"));
7
+ const AnimateBlock_1 = tslib_1.__importDefault(require("../AnimateBlock"));
8
+ const qaId = 'animate-block';
9
+ describe('AnimateBlock', () => {
10
+ test('render AnimateBlock by default', async () => {
11
+ (0, react_2.render)(react_1.default.createElement(AnimateBlock_1.default, { qa: qaId }));
12
+ const component = react_2.screen.getByTestId(qaId);
13
+ expect(component).toBeInTheDocument();
14
+ });
15
+ test('add className', () => {
16
+ const className = 'my-class';
17
+ (0, react_2.render)(react_1.default.createElement(AnimateBlock_1.default, { qa: qaId, className: className }));
18
+ const component = react_2.screen.getByTestId(qaId);
19
+ expect(component).toHaveClass(className);
20
+ });
21
+ test('use passed style', () => {
22
+ const style = { color: 'red' };
23
+ (0, react_2.render)(react_1.default.createElement(AnimateBlock_1.default, { style: style, qa: qaId }));
24
+ const component = react_2.screen.getByTestId(qaId);
25
+ expect(component).toHaveStyle(style);
26
+ });
27
+ test('call onScroll', async () => {
28
+ const onScroll = jest.fn();
29
+ const user = user_event_1.default.setup();
30
+ (0, react_2.render)(react_1.default.createElement("div", { style: { paddingTop: 100000 } },
31
+ react_1.default.createElement(AnimateBlock_1.default, { onScroll: onScroll, qa: qaId })));
32
+ const component = react_2.screen.getByTestId(qaId);
33
+ await user.hover(component);
34
+ expect(onScroll).toHaveBeenCalledTimes(1);
35
+ });
36
+ });
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const react_1 = tslib_1.__importDefault(require("react"));
5
+ const react_2 = require("@testing-library/react");
6
+ const models_1 = require("../../../models");
7
+ const Author_1 = tslib_1.__importDefault(require("../Author"));
8
+ const testId = 'author';
9
+ const author = {
10
+ firstName: 'John',
11
+ secondName: 'Doe',
12
+ description: 'Web designer',
13
+ avatar: 'https://storage.yandexcloud.net/cloud-www-assets/constructor/storybook/images/img-gray.png',
14
+ };
15
+ describe('Author', () => {
16
+ test('Render author by default', async () => {
17
+ (0, react_2.render)(react_1.default.createElement(Author_1.default, { author: author, dataQa: testId }));
18
+ const object = react_2.screen.getByTestId(testId);
19
+ expect(object).toBeInTheDocument();
20
+ });
21
+ test('Has full name', async () => {
22
+ const name = `${author.firstName} ${author.secondName}`;
23
+ (0, react_2.render)(react_1.default.createElement(Author_1.default, { author: author, dataQa: testId }));
24
+ const object = react_2.screen.getByText(name);
25
+ expect(object).toBeInTheDocument();
26
+ });
27
+ test('Has first name only', async () => {
28
+ const name = author.firstName;
29
+ (0, react_2.render)(react_1.default.createElement(Author_1.default, { author: Object.assign(Object.assign({}, author), { secondName: '' }), dataQa: testId }));
30
+ const object = react_2.screen.getByText(name);
31
+ expect(object).toBeInTheDocument();
32
+ });
33
+ test('Has avatar', async () => {
34
+ (0, react_2.render)(react_1.default.createElement(Author_1.default, { author: author, dataQa: testId }));
35
+ const avatar = react_2.screen.getByRole('img');
36
+ expect(avatar).toBeInTheDocument();
37
+ expect(avatar).toHaveAttribute('src', author.avatar);
38
+ });
39
+ test('Has description', async () => {
40
+ (0, react_2.render)(react_1.default.createElement(Author_1.default, { author: author, dataQa: testId }));
41
+ const object = react_2.screen.getByText(author.description);
42
+ expect(object).toBeInTheDocument();
43
+ });
44
+ test.each(new Array(models_1.AuthorType.Column, models_1.AuthorType.Line))('Render with given "%s" type', (type) => {
45
+ (0, react_2.render)(react_1.default.createElement(Author_1.default, { author: author, dataQa: testId, type: type }));
46
+ const object = react_2.screen.getByTestId(testId);
47
+ expect(object).toHaveClass(`pc-author_type_${type}`);
48
+ });
49
+ });
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const react_1 = tslib_1.__importDefault(require("react"));
5
+ const react_2 = require("@testing-library/react");
6
+ const user_event_1 = tslib_1.__importDefault(require("@testing-library/user-event"));
7
+ const locationContext_1 = require("../../../context/locationContext");
8
+ const BackLink_1 = tslib_1.__importDefault(require("../BackLink"));
9
+ const backLinkProps = {
10
+ url: '#',
11
+ title: 'Button Title',
12
+ theme: 'default',
13
+ size: 's',
14
+ className: 'customClassName',
15
+ shouldHandleBackAction: true,
16
+ onClick: () => { },
17
+ };
18
+ describe('BackLink', () => {
19
+ test('Default render', async () => {
20
+ (0, react_2.render)(react_1.default.createElement(BackLink_1.default, Object.assign({}, backLinkProps)));
21
+ const backLink = react_2.screen.getByRole('button');
22
+ expect(backLink).toBeInTheDocument();
23
+ });
24
+ test('Has custom class', async () => {
25
+ (0, react_2.render)(react_1.default.createElement(BackLink_1.default, Object.assign({}, backLinkProps)));
26
+ const backLink = react_2.screen.getByRole('button');
27
+ expect(backLink).toHaveClass(backLinkProps.className);
28
+ });
29
+ test('Should render <a /> tag', async () => {
30
+ (0, react_2.render)(react_1.default.createElement(BackLink_1.default, Object.assign({}, backLinkProps, { shouldHandleBackAction: false })));
31
+ const backLink = react_2.screen.getByRole('link');
32
+ expect(backLink).toBeVisible();
33
+ expect(backLink).toHaveAttribute('href', backLinkProps.url);
34
+ });
35
+ test('Should render title', async () => {
36
+ (0, react_2.render)(react_1.default.createElement(BackLink_1.default, Object.assign({}, backLinkProps)));
37
+ const backLink = react_2.screen.getByText(backLinkProps.title);
38
+ expect(backLink).toBeInTheDocument();
39
+ });
40
+ test('Call onClick', async () => {
41
+ const user = user_event_1.default.setup();
42
+ const handleClick = jest.fn();
43
+ (0, react_2.render)(react_1.default.createElement(locationContext_1.LocationContext.Provider, { value: { history: { push: jest.fn() } } },
44
+ react_1.default.createElement(BackLink_1.default, Object.assign({}, backLinkProps, { onClick: handleClick }))));
45
+ const backLink = react_2.screen.getByRole('button');
46
+ await user.click(backLink);
47
+ expect(handleClick).toHaveBeenCalledTimes(1);
48
+ });
49
+ test.each(new Array('s', 'm', 'l', 'xl'))('Render with given "%s" size', (size) => {
50
+ (0, react_2.render)(react_1.default.createElement(BackLink_1.default, Object.assign({}, backLinkProps, { size: size })));
51
+ const backLink = react_2.screen.getByRole('button');
52
+ expect(backLink).toHaveClass(`yc-button_size_${size}`);
53
+ });
54
+ test.each(new Array('default', 'special'))('Render with given "%s" theme', (theme) => {
55
+ const matchView = {
56
+ default: 'flat-secondary',
57
+ special: 'flat-contrast',
58
+ };
59
+ (0, react_2.render)(react_1.default.createElement(BackLink_1.default, Object.assign({}, backLinkProps, { theme: theme })));
60
+ const backLink = react_2.screen.getByRole('button');
61
+ expect(backLink).toHaveClass(`yc-button_view_${matchView[theme]}`);
62
+ });
63
+ });
@@ -6,8 +6,8 @@ const utils_1 = require("../../utils");
6
6
  const Image_1 = tslib_1.__importDefault(require("../Image/Image"));
7
7
  const b = (0, utils_1.block)('storage-background-image');
8
8
  const BackgroundImage = (props) => {
9
- const { children, src, desktop, className, imageClassName, style, hide, qa } = props;
10
- return (react_1.default.createElement("div", { className: b(null, className), style: style, "data-qa": qa },
9
+ const { children, src, desktop, className, imageClassName, style, hide } = props;
10
+ return (react_1.default.createElement("div", { className: b(null, className), style: style },
11
11
  (src || desktop) && !hide && react_1.default.createElement(Image_1.default, Object.assign({}, props, { className: b('img', imageClassName) })),
12
12
  children && react_1.default.createElement("div", { className: b('container') }, children)));
13
13
  };
@@ -1,4 +1,3 @@
1
- import { PropsWithChildren } from 'react';
2
- import { BlockBaseProps, ClassNameProps } from '../../models';
3
- declare const BlockBase: (props: PropsWithChildren<BlockBaseProps & ClassNameProps>) => JSX.Element;
1
+ import { BlockBaseProps, ClassNameProps, WithChildren } from '../../models';
2
+ declare const BlockBase: (props: WithChildren<BlockBaseProps & ClassNameProps>) => JSX.Element;
4
3
  export default BlockBase;
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  const react_1 = tslib_1.__importDefault(require("react"));
5
- const BlockDecoration_1 = require("../../customization/BlockDecoration");
6
5
  const grid_1 = require("../../grid");
7
6
  const utils_1 = require("../../utils");
8
7
  const Anchor_1 = tslib_1.__importDefault(require("../Anchor/Anchor"));
@@ -10,8 +9,7 @@ const b = (0, utils_1.block)('block-base');
10
9
  const BlockBase = (props) => {
11
10
  const { anchor, visible, children, className, resetPaddings, qa } = props;
12
11
  return (react_1.default.createElement(grid_1.Col, { className: b({ ['reset-paddings']: resetPaddings }, className), visible: visible, reset: true, dataQa: qa },
13
- react_1.default.createElement(BlockDecoration_1.BlockDecoration, null,
14
- anchor && react_1.default.createElement(Anchor_1.default, { id: anchor.url, className: b('anchor') }),
15
- children)));
12
+ anchor && react_1.default.createElement(Anchor_1.default, { id: anchor.url, className: b('anchor') }),
13
+ children));
16
14
  };
17
15
  exports.default = BlockBase;
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const react_1 = tslib_1.__importDefault(require("react"));
5
+ const react_2 = require("@testing-library/react");
6
+ const Anchor_1 = require("../../../components/Anchor/Anchor");
7
+ const grid_1 = require("../../../grid");
8
+ const BlockBase_1 = tslib_1.__importDefault(require("../BlockBase"));
9
+ const qaId = 'block-base-component';
10
+ describe('BlockBase', () => {
11
+ test('render component by default', async () => {
12
+ (0, react_2.render)(react_1.default.createElement(BlockBase_1.default, { qa: qaId }));
13
+ const component = react_2.screen.getByTestId(qaId);
14
+ expect(component).toBeInTheDocument();
15
+ expect(component).toBeVisible();
16
+ expect(component).not.toBeDisabled();
17
+ });
18
+ test('add className', () => {
19
+ const className = 'my-class';
20
+ (0, react_2.render)(react_1.default.createElement(BlockBase_1.default, { qa: qaId, className: className }));
21
+ const component = react_2.screen.getByTestId(qaId);
22
+ expect(component).toHaveClass(className);
23
+ });
24
+ test('should reset paddings', () => {
25
+ (0, react_2.render)(react_1.default.createElement(BlockBase_1.default, { qa: qaId, resetPaddings: true }));
26
+ const component = react_2.screen.getByTestId(qaId);
27
+ expect(component).toHaveClass('pc-block-base_reset-paddings');
28
+ });
29
+ test.each(new Array(...Object.values(grid_1.GridColumnSize)))('render with given "%s" size', (size) => {
30
+ (0, react_2.render)(react_1.default.createElement(BlockBase_1.default, { qa: qaId, visible: size }));
31
+ const component = react_2.screen.getByTestId(qaId);
32
+ expect(component).toHaveClass(`d-${size}-block`);
33
+ });
34
+ test('should have anchor', () => {
35
+ const anchor = {
36
+ text: 'anchor',
37
+ url: 'https://github.com/gravity-ui/',
38
+ };
39
+ (0, react_2.render)(react_1.default.createElement(BlockBase_1.default, { anchor: anchor }));
40
+ const component = react_2.screen.getByTestId(Anchor_1.qaIdByDefault);
41
+ expect(component).toBeInTheDocument();
42
+ expect(component).toHaveAttribute('id', anchor.url);
43
+ });
44
+ });
@@ -45,7 +45,4 @@ unpredictable css rules order in build */
45
45
  }
46
46
  .pc-button-block_size_xl {
47
47
  --btn-image-margin: 25px;
48
- }
49
- .pc-button-block_width_max .pc-button-block__text {
50
- width: 100%;
51
48
  }
@@ -15,7 +15,7 @@ const b = (0, utils_1.block)('button-block');
15
15
  const Button = (props) => {
16
16
  const handleMetrika = (0, useMetrika_1.useMetrika)();
17
17
  const { lang, tld } = (0, react_1.useContext)(localeContext_1.LocaleContext);
18
- const { className, metrikaGoals, pixelEvents, analyticsEvents, size = 'l', theme = 'normal', url, img, onClick: onClickOrigin, text, width } = props, rest = tslib_1.__rest(props, ["className", "metrikaGoals", "pixelEvents", "analyticsEvents", "size", "theme", "url", "img", "onClick", "text", "width"]);
18
+ const { className, metrikaGoals, pixelEvents, analyticsEvents, size = 'l', theme = 'normal', url, img, onClick: onClickOrigin, text } = props, rest = tslib_1.__rest(props, ["className", "metrikaGoals", "pixelEvents", "analyticsEvents", "size", "theme", "url", "img", "onClick", "text"]);
19
19
  const defaultImgPosition = 'left';
20
20
  const handleAnalytics = (0, hooks_1.useAnalytics)(models_1.DefaultEventNames.Button, url);
21
21
  const onClick = (0, react_1.useCallback)((e) => {
@@ -25,13 +25,12 @@ const Button = (props) => {
25
25
  onClickOrigin(e);
26
26
  }
27
27
  }, [handleMetrika, metrikaGoals, pixelEvents, handleAnalytics, analyticsEvents, onClickOrigin]);
28
- const buttonModifiers = { size, theme, width };
29
28
  const buttonImg = img instanceof Object
30
29
  ? { url: img.url, position: img.position || defaultImgPosition, alt: img.alt }
31
30
  : { url: img, position: defaultImgPosition };
32
31
  const buttonClass = img
33
- ? b(Object.assign({ position: buttonImg.position }, buttonModifiers), className)
34
- : b(Object.assign({}, buttonModifiers), className);
32
+ ? b({ position: buttonImg.position, size, theme }, className)
33
+ : b({ size, theme }, className);
35
34
  const buttonProps = Object.assign(Object.assign({}, rest), { onClick });
36
35
  if (theme === 'app-store' || theme === 'google-play') {
37
36
  const platform = theme === 'app-store' ? uikit_1.Platform.IOS : uikit_1.Platform.ANDROID;
@@ -44,7 +43,7 @@ const Button = (props) => {
44
43
  image = undefined;
45
44
  }
46
45
  const buttonTheme = theme === 'scale' ? 'accent' : theme;
47
- return (react_1.default.createElement(uikit_1.Button, Object.assign({ className: buttonClass, view: (0, utils_2.toCommonView)(buttonTheme), size: (0, utils_2.toCommonSize)(size), href: url ? (0, utils_1.setUrlTld)(url, tld) : undefined, width: width }, buttonProps),
46
+ return (react_1.default.createElement(uikit_1.Button, Object.assign({ className: buttonClass, view: (0, utils_2.toCommonView)(buttonTheme), size: (0, utils_2.toCommonSize)(size), href: url ? (0, utils_1.setUrlTld)(url, tld) : undefined }, buttonProps),
48
47
  icon && buttonImg.position === 'left' ? icon : null,
49
48
  react_1.default.createElement("span", { className: b('content') },
50
49
  image && buttonImg.position === 'left' ? image : null,
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const react_1 = tslib_1.__importDefault(require("react"));
5
+ const react_2 = require("@testing-library/react");
6
+ const user_event_1 = tslib_1.__importDefault(require("@testing-library/user-event"));
7
+ const Button_1 = tslib_1.__importDefault(require("../Button"));
8
+ const utils_1 = require("../utils");
9
+ const qaId = 'button-component';
10
+ const buttonProps = {
11
+ text: 'Button Text',
12
+ url: 'https://github.com/gravity-ui/',
13
+ target: '_blank',
14
+ img: {
15
+ url: 'https://storage.yandexcloud.net/cloud-www-assets/constructor/storybook/images/icon_1_light.svg',
16
+ position: 'left',
17
+ alt: 'alt-text',
18
+ },
19
+ };
20
+ const buttonViews = [
21
+ 'normal',
22
+ 'action',
23
+ 'outlined',
24
+ 'outlined-info',
25
+ 'outlined-danger',
26
+ 'raised',
27
+ 'flat',
28
+ 'flat-info',
29
+ 'flat-danger',
30
+ 'flat-secondary',
31
+ 'normal-contrast',
32
+ 'outlined-contrast',
33
+ 'flat-contrast',
34
+ 'github',
35
+ 'scale',
36
+ 'monochrome',
37
+ ];
38
+ describe('Button', () => {
39
+ test('render button by default', async () => {
40
+ (0, react_2.render)(react_1.default.createElement(Button_1.default, { text: buttonProps.text }));
41
+ const button = react_2.screen.getByRole('button');
42
+ expect(button).toBeInTheDocument();
43
+ expect(button).toBeVisible();
44
+ expect(button).not.toBeDisabled();
45
+ });
46
+ test('should render <a /> tag', async () => {
47
+ (0, react_2.render)(react_1.default.createElement(Button_1.default, { text: buttonProps.text, url: buttonProps.url, target: buttonProps.target }));
48
+ const button = react_2.screen.getByRole('link');
49
+ expect(button).toBeVisible();
50
+ expect(button).toHaveAttribute('href', buttonProps.url);
51
+ expect(button).toHaveAttribute('target', buttonProps.target);
52
+ });
53
+ test('call onClick', async () => {
54
+ const user = user_event_1.default.setup();
55
+ const handleOnClick = jest.fn();
56
+ (0, react_2.render)(react_1.default.createElement(Button_1.default, { text: buttonProps.text, onClick: handleOnClick }));
57
+ const button = react_2.screen.getByRole('button');
58
+ await user.click(button);
59
+ expect(handleOnClick).toHaveBeenCalledTimes(1);
60
+ });
61
+ test.each(new Array('s', 'm', 'l', 'xl'))('render with given "%s" size', (size) => {
62
+ (0, react_2.render)(react_1.default.createElement(Button_1.default, { text: buttonProps.text, size: size, qa: qaId }));
63
+ const button = react_2.screen.getByTestId(qaId);
64
+ expect(button).toHaveClass(`pc-button-block_size_${size}`);
65
+ });
66
+ test.each(new Array(...buttonViews))('render with given "%s" view', (theme) => {
67
+ (0, react_2.render)(react_1.default.createElement(Button_1.default, { text: buttonProps.text, theme: theme, qa: qaId }));
68
+ const button = react_2.screen.getByTestId(qaId);
69
+ expect(button).toHaveClass(`pc-button-block_theme_${theme}`);
70
+ });
71
+ test('add className', () => {
72
+ const className = 'my-class';
73
+ (0, react_2.render)(react_1.default.createElement(Button_1.default, { text: buttonProps.text, className: className, qa: qaId }));
74
+ const button = react_2.screen.getByTestId(qaId);
75
+ expect(button).toHaveClass(className);
76
+ });
77
+ test('should render icon', () => {
78
+ (0, react_2.render)(react_1.default.createElement(Button_1.default, { text: buttonProps.text, img: buttonProps.img }));
79
+ const button = react_2.screen.getByRole('button');
80
+ const iconComponent = react_2.screen.getByRole('img');
81
+ expect(iconComponent).toBeVisible();
82
+ expect(button).toContainElement(iconComponent);
83
+ });
84
+ test('should render github icon', () => {
85
+ (0, react_2.render)(react_1.default.createElement(Button_1.default, { text: buttonProps.text, img: buttonProps.img, theme: "github" }));
86
+ const button = react_2.screen.getByRole('button');
87
+ const iconComponent = react_2.screen.getByTestId(utils_1.ICON_QA);
88
+ expect(iconComponent).toBeVisible();
89
+ expect(button).toContainElement(iconComponent);
90
+ });
91
+ });