@gravity-ui/page-constructor 4.24.0-alpha.0 → 4.24.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 (98) hide show
  1. package/build/cjs/blocks/ContentLayout/ContentLayout.css +0 -3
  2. package/build/cjs/blocks/ContentLayout/ContentLayout.js +1 -1
  3. package/build/cjs/blocks/Header/schema.d.ts +9 -0
  4. package/build/cjs/blocks/HeaderSlider/schema.d.ts +3 -0
  5. package/build/cjs/blocks/Icons/Icons.css +0 -10
  6. package/build/cjs/blocks/Media/schema.d.ts +6 -0
  7. package/build/cjs/blocks/PromoFeaturesBlock/schema.d.ts +3 -0
  8. package/build/cjs/blocks/Questions/QuestionBlockItem/QuestionBlockItem.css +0 -15
  9. package/build/cjs/blocks/Slider/Arrow/Arrow.css +0 -7
  10. package/build/cjs/blocks/Slider/Slider.js +6 -12
  11. package/build/cjs/blocks/Tabs/schema.d.ts +3 -0
  12. package/build/cjs/components/Button/Button.css +0 -6
  13. package/build/cjs/components/ButtonTabs/ButtonTabs.css +0 -3
  14. package/build/cjs/components/ButtonTabs/ButtonTabs.js +1 -1
  15. package/build/cjs/components/CardBase/CardBase.d.ts +2 -1
  16. package/build/cjs/components/CardBase/CardBase.js +3 -7
  17. package/build/cjs/components/Control/Control.css +0 -8
  18. package/build/cjs/components/FileLink/FileLink.css +0 -8
  19. package/build/cjs/components/FullscreenImage/FullscreenImage.css +0 -16
  20. package/build/cjs/components/FullscreenImage/FullscreenImage.js +2 -2
  21. package/build/cjs/components/FullscreenMedia/FullscreenMedia.css +1 -1
  22. package/build/cjs/components/FullscreenMedia/FullscreenMedia.js +3 -10
  23. package/build/cjs/components/Link/Link.css +0 -8
  24. package/build/cjs/components/Media/Image/Image.js +1 -1
  25. package/build/cjs/components/OverflowScroller/OverflowScroller.css +0 -19
  26. package/build/cjs/components/OverflowScroller/OverflowScroller.js +1 -2
  27. package/build/cjs/components/ReactPlayer/CustomBarControls.css +4 -6
  28. package/build/cjs/components/ReactPlayer/ReactPlayer.css +0 -7
  29. package/build/cjs/components/ReactPlayer/ReactPlayer.js +1 -1
  30. package/build/cjs/components/Title/TitleItem.css +0 -8
  31. package/build/cjs/components/VideoBlock/VideoBlock.css +0 -7
  32. package/build/cjs/containers/PageConstructor/PageConstructor.css +0 -9
  33. package/build/cjs/schema/constants.d.ts +3 -0
  34. package/build/cjs/schema/validators/common.d.ts +3 -0
  35. package/build/cjs/schema/validators/common.js +3 -0
  36. package/build/cjs/sub-blocks/BannerCard/BannerCard.css +0 -3
  37. package/build/cjs/sub-blocks/Content/Content.css +0 -3
  38. package/build/cjs/sub-blocks/HubspotForm/HubspotForm.css +0 -7
  39. package/build/cjs/sub-blocks/LayoutItem/schema.d.ts +3 -0
  40. package/build/cjs/sub-blocks/MediaCard/schema.d.ts +3 -0
  41. package/build/cjs/sub-blocks/PriceDetailed/PriceDetails/PriceDetails.css +2 -20
  42. package/build/cjs/sub-blocks/PriceDetailed/PriceDetails/PriceDetails.js +1 -1
  43. package/build/esm/blocks/ContentLayout/ContentLayout.css +0 -3
  44. package/build/esm/blocks/ContentLayout/ContentLayout.js +1 -1
  45. package/build/esm/blocks/Header/schema.d.ts +9 -0
  46. package/build/esm/blocks/HeaderSlider/schema.d.ts +3 -0
  47. package/build/esm/blocks/Icons/Icons.css +0 -10
  48. package/build/esm/blocks/Media/schema.d.ts +6 -0
  49. package/build/esm/blocks/PromoFeaturesBlock/schema.d.ts +3 -0
  50. package/build/esm/blocks/Questions/QuestionBlockItem/QuestionBlockItem.css +0 -15
  51. package/build/esm/blocks/Slider/Arrow/Arrow.css +0 -7
  52. package/build/esm/blocks/Slider/Slider.js +6 -12
  53. package/build/esm/blocks/Tabs/schema.d.ts +3 -0
  54. package/build/esm/components/Button/Button.css +0 -6
  55. package/build/esm/components/ButtonTabs/ButtonTabs.css +0 -3
  56. package/build/esm/components/ButtonTabs/ButtonTabs.js +1 -1
  57. package/build/esm/components/CardBase/CardBase.d.ts +2 -1
  58. package/build/esm/components/CardBase/CardBase.js +2 -6
  59. package/build/esm/components/Control/Control.css +0 -8
  60. package/build/esm/components/FileLink/FileLink.css +0 -8
  61. package/build/esm/components/FullscreenImage/FullscreenImage.css +0 -16
  62. package/build/esm/components/FullscreenImage/FullscreenImage.js +2 -2
  63. package/build/esm/components/FullscreenMedia/FullscreenMedia.css +1 -1
  64. package/build/esm/components/FullscreenMedia/FullscreenMedia.js +5 -12
  65. package/build/esm/components/Link/Link.css +0 -8
  66. package/build/esm/components/Media/Image/Image.js +2 -2
  67. package/build/esm/components/OverflowScroller/OverflowScroller.css +0 -19
  68. package/build/esm/components/OverflowScroller/OverflowScroller.js +1 -2
  69. package/build/esm/components/ReactPlayer/CustomBarControls.css +4 -6
  70. package/build/esm/components/ReactPlayer/ReactPlayer.css +0 -7
  71. package/build/esm/components/ReactPlayer/ReactPlayer.js +1 -1
  72. package/build/esm/components/Title/TitleItem.css +0 -8
  73. package/build/esm/components/VideoBlock/VideoBlock.css +0 -7
  74. package/build/esm/containers/PageConstructor/PageConstructor.css +0 -9
  75. package/build/esm/schema/constants.d.ts +3 -0
  76. package/build/esm/schema/validators/common.d.ts +3 -0
  77. package/build/esm/schema/validators/common.js +3 -0
  78. package/build/esm/sub-blocks/BannerCard/BannerCard.css +0 -3
  79. package/build/esm/sub-blocks/Content/Content.css +0 -3
  80. package/build/esm/sub-blocks/HubspotForm/HubspotForm.css +0 -7
  81. package/build/esm/sub-blocks/LayoutItem/schema.d.ts +3 -0
  82. package/build/esm/sub-blocks/MediaCard/schema.d.ts +3 -0
  83. package/build/esm/sub-blocks/PriceDetailed/PriceDetails/PriceDetails.css +2 -20
  84. package/build/esm/sub-blocks/PriceDetailed/PriceDetails/PriceDetails.js +1 -1
  85. package/package.json +1 -1
  86. package/styles/mixins.scss +0 -20
  87. package/styles/root.scss +0 -2
  88. package/styles/styles.css +0 -7
  89. package/styles/yfm.scss +0 -2
  90. package/widget/index.js +1 -1
  91. package/build/cjs/components/OverflowScroller/i18n/en.json +0 -4
  92. package/build/cjs/components/OverflowScroller/i18n/index.d.ts +0 -2
  93. package/build/cjs/components/OverflowScroller/i18n/index.js +0 -8
  94. package/build/cjs/components/OverflowScroller/i18n/ru.json +0 -4
  95. package/build/esm/components/OverflowScroller/i18n/en.json +0 -4
  96. package/build/esm/components/OverflowScroller/i18n/index.d.ts +0 -2
  97. package/build/esm/components/OverflowScroller/i18n/index.js +0 -5
  98. package/build/esm/components/OverflowScroller/i18n/ru.json +0 -4
@@ -49,9 +49,6 @@ unpredictable css rules order in build */
49
49
  .pc-content-layout-block_background {
50
50
  padding: 64px;
51
51
  }
52
- .pc-content-layout-block_theme_dark {
53
- --g-color-line-focus: var(--g-color-text-light-primary);
54
- }
55
52
  @media (max-width: 577px) {
56
53
  .pc-content-layout-block_background {
57
54
  padding: 32px;
@@ -33,7 +33,7 @@ const ContentLayoutBlock = (props) => {
33
33
  const isMobile = (0, react_1.useContext)(mobileContext_1.MobileContext);
34
34
  const { textContent, fileContent, size = 'l', background, centered, theme = 'default', textWidth = 'm', } = props;
35
35
  const colSizes = (0, react_1.useMemo)(() => getTextWidth(textWidth), [textWidth]);
36
- return (react_1.default.createElement("div", { className: b({ size, theme, background: Boolean(background) }) },
36
+ return (react_1.default.createElement("div", { className: b({ size, background: Boolean(background) }) },
37
37
  react_1.default.createElement(sub_blocks_1.Content, Object.assign({ className: b('content') }, textContent, { size: size, centered: centered, colSizes: colSizes, theme: theme })),
38
38
  fileContent && (react_1.default.createElement(grid_1.Col, { className: b('files', { size, centered }), reset: true, sizes: colSizes }, fileContent.map((file) => (react_1.default.createElement(components_1.FileLink, Object.assign({ className: b('file') }, file, { key: file.href, type: "horizontal", textSize: getFileTextSize(size), theme: theme })))))),
39
39
  background && (react_1.default.createElement("div", { className: b('background') },
@@ -248,6 +248,9 @@ export declare const HeaderBackgroundProps: {
248
248
  };
249
249
  })[];
250
250
  };
251
+ ratio: {
252
+ type: string;
253
+ };
251
254
  };
252
255
  };
253
256
  export declare const HeaderProperties: {
@@ -676,6 +679,9 @@ export declare const HeaderProperties: {
676
679
  };
677
680
  })[];
678
681
  };
682
+ ratio: {
683
+ type: string;
684
+ };
679
685
  };
680
686
  } & {
681
687
  optionName: string;
@@ -1153,6 +1159,9 @@ export declare const HeaderBlock: {
1153
1159
  };
1154
1160
  })[];
1155
1161
  };
1162
+ ratio: {
1163
+ type: string;
1164
+ };
1156
1165
  };
1157
1166
  } & {
1158
1167
  optionName: string;
@@ -435,6 +435,9 @@ export declare const HeaderSliderBlock: {
435
435
  };
436
436
  })[];
437
437
  };
438
+ ratio: {
439
+ type: string;
440
+ };
438
441
  };
439
442
  } & {
440
443
  optionName: string;
@@ -30,16 +30,6 @@ unpredictable css rules order in build */
30
30
  text-decoration: none;
31
31
  margin: 0 8px 24px;
32
32
  }
33
- .pc-icons-block a.pc-icons-block__item {
34
- border-radius: var(--g-focus-border-radius);
35
- }
36
- .pc-icons-block a.pc-icons-block__item:focus {
37
- outline: 2px solid var(--g-color-line-focus);
38
- outline-offset: 0;
39
- }
40
- .pc-icons-block a.pc-icons-block__item:focus:not(:focus-visible) {
41
- outline: 0;
42
- }
43
33
  .pc-icons-block__image {
44
34
  max-width: 100%;
45
35
  margin: 0 auto;
@@ -242,6 +242,9 @@ export declare const Media: {
242
242
  };
243
243
  })[];
244
244
  };
245
+ ratio: {
246
+ type: string;
247
+ };
245
248
  };
246
249
  };
247
250
  export declare const MediaBlockBaseProps: {
@@ -855,6 +858,9 @@ export declare const MediaBlock: {
855
858
  };
856
859
  })[];
857
860
  };
861
+ ratio: {
862
+ type: string;
863
+ };
858
864
  };
859
865
  } & {
860
866
  optionName: string;
@@ -258,6 +258,9 @@ export declare const PromoFeaturesItem: {
258
258
  };
259
259
  })[];
260
260
  };
261
+ ratio: {
262
+ type: string;
263
+ };
261
264
  };
262
265
  };
263
266
  };
@@ -19,14 +19,6 @@ unpredictable css rules order in build */
19
19
  position: relative;
20
20
  padding-right: 24px;
21
21
  cursor: pointer;
22
- border-radius: var(--g-focus-border-radius);
23
- }
24
- .pc-QuestionsBlockItem__title:focus {
25
- outline: 2px solid var(--g-color-line-focus);
26
- outline-offset: 0;
27
- }
28
- .pc-QuestionsBlockItem__title:focus:not(:focus-visible) {
29
- outline: 0;
30
22
  }
31
23
  .pc-QuestionsBlockItem__title a {
32
24
  outline: none;
@@ -45,19 +37,12 @@ unpredictable css rules order in build */
45
37
  position: absolute;
46
38
  right: 0;
47
39
  top: 0;
48
- bottom: 0;
49
- margin: auto;
50
40
  color: var(--g-color-text-primary);
51
41
  }
52
42
  .pc-QuestionsBlockItem__link {
53
43
  font-size: var(--g-text-body-2-font-size);
54
44
  line-height: var(--g-text-body-2-line-height);
55
45
  }
56
- .pc-QuestionsBlockItem__link.pc-QuestionsBlockItem__link a {
57
- outline-offset: -2px;
58
- border-radius: calc(var(--g-focus-border-radius) + 2px);
59
- }
60
-
61
46
  .pc-QuestionsBlockItem__text {
62
47
  font-size: var(--g-text-body-2-font-size);
63
48
  line-height: var(--g-text-body-2-line-height);
@@ -49,13 +49,6 @@ unpredictable css rules order in build */
49
49
  box-shadow: 0 4px 24px var(--pc-color-sfx-shadow), 0 2px 8px var(--pc-color-sfx-shadow);
50
50
  transition: box-shadow 0.3s cubic-bezier(0.22, 0.61, 0.36, 1), color 0.3s cubic-bezier(0.22, 0.61, 0.36, 1);
51
51
  }
52
- .pc-slider-block-arrow__button:focus {
53
- outline: 2px solid var(--g-color-line-focus);
54
- outline-offset: 0;
55
- }
56
- .pc-slider-block-arrow__button:focus:not(:focus-visible) {
57
- outline: 0;
58
- }
59
52
  .pc-slider-block-arrow:hover .pc-slider-block-arrow__button {
60
53
  color: var(--g-color-text-primary);
61
54
  box-shadow: 0 2px 12px var(--pc-color-sfx-shadow), 0 4px 24px var(--pc-color-sfx-shadow);
@@ -136,12 +136,12 @@ const SliderBlock = (props) => {
136
136
  const renderAccessibleBar = (index) => {
137
137
  return (
138
138
  // To have this key differ from keys used in renderDot function, added `-accessible-bar` part
139
- react_1.default.createElement(react_1.Fragment, { key: `${index}-accessible-bar` }, slidesCountByBreakpoint > 0 && (react_1.default.createElement("li", { className: b('accessible-bar'), "aria-current": true, "aria-label": `Slide ${currentIndex + 1} of ${barSlidesCount}`, style: {
139
+ react_1.default.createElement(react_1.Fragment, { key: `${index}-accessible-bar` }, slidesCountByBreakpoint > 1 && (react_1.default.createElement("li", { className: b('accessible-bar'), "aria-current": true, "aria-label": `Slide ${currentIndex + 1} of ${barSlidesCount}`, style: {
140
140
  left: barPosition,
141
141
  width: barWidth,
142
142
  } }))));
143
143
  };
144
- const getCurrentSlideNumber = (index) => {
144
+ const renderDot = (index) => {
145
145
  const currentIndexDiff = index - currentIndex;
146
146
  let currentSlideNumber;
147
147
  if (0 <= currentIndexDiff && currentIndexDiff < slidesToShowCount) {
@@ -153,16 +153,10 @@ const SliderBlock = (props) => {
153
153
  else {
154
154
  currentSlideNumber = index + 1;
155
155
  }
156
- return currentSlideNumber;
157
- };
158
- const isVisibleSlide = (index) => {
159
- const currentIndexDiff = index - currentIndex;
160
- return (slidesCountByBreakpoint > 0 &&
161
- 0 <= currentIndexDiff &&
162
- currentIndexDiff < slidesToShowCount);
163
- };
164
- const renderDot = (index) => {
165
- return (react_1.default.createElement("li", { key: index, className: b('dot', { active: index === currentIndex }), onClick: () => handleDotClick(index), "aria-hidden": isVisibleSlide(index) ? true : undefined, "aria-label": `Slide ${getCurrentSlideNumber(index)} of ${barSlidesCount}` }));
156
+ return (react_1.default.createElement("li", { key: index, className: b('dot', { active: index === currentIndex }), onClick: () => handleDotClick(index), "aria-hidden": (slidesCountByBreakpoint > 1 &&
157
+ 0 <= currentIndexDiff &&
158
+ currentIndexDiff < slidesToShowCount) ||
159
+ undefined, "aria-label": `Slide ${currentSlideNumber} of ${barSlidesCount}` }));
166
160
  };
167
161
  const renderNavigation = () => {
168
162
  if (childrenCount <= slidesCountByBreakpoint || !dots || childrenCount === 1) {
@@ -253,6 +253,9 @@ export declare const tabsItem: {
253
253
  };
254
254
  })[];
255
255
  };
256
+ ratio: {
257
+ type: string;
258
+ };
256
259
  };
257
260
  } & {
258
261
  optionName: string;
@@ -1,8 +1,5 @@
1
1
  /* use this for style redefinitions to awoid problems with
2
2
  unpredictable css rules order in build */
3
- .pc-button-block {
4
- --yc-button-outline-color: var(--g-color-line-focus);
5
- }
6
3
  .pc-button-block__content {
7
4
  display: flex;
8
5
  align-items: center;
@@ -43,9 +40,6 @@ unpredictable css rules order in build */
43
40
  color: var(--pc-monochrome-button-color);
44
41
  }
45
42
 
46
- .pc-button-block_theme_normal-contrast:focus::before, .pc-button-block_theme_raised:focus::before {
47
- outline-offset: 1px;
48
- }
49
43
  .pc-button-block_size_s {
50
44
  --btn-image-margin: 10px;
51
45
  }
@@ -26,7 +26,4 @@ unpredictable css rules order in build */
26
26
  }
27
27
  .pc-button-tabs__item.pc-button-tabs__item_active:hover {
28
28
  color: var(--pc-selected-tab-item-color);
29
- }
30
- .pc-button-tabs__item.pc-button-tabs__item_active:focus::before {
31
- outline-offset: 1px;
32
29
  }
@@ -20,7 +20,7 @@ const ButtonTabs = ({ className, items, activeTab, onSelectTab, tabSize = 'l', q
20
20
  return (react_1.default.createElement("div", { className: b(null, className), "data-qa": qa }, items.map(({ id, title }) => {
21
21
  const isActive = id === activeTabId;
22
22
  return (react_1.default.createElement(index_1.Button, { text: title, className: b('item', { active: isActive }), key: title, size: tabSize, onClick: handleClick(id), extraProps: {
23
- 'aria-current': isActive || undefined,
23
+ 'aria-current': isActive,
24
24
  } }));
25
25
  })));
26
26
  };
@@ -1,5 +1,6 @@
1
1
  import React, { HTMLAttributeAnchorTarget, ReactElement } from 'react';
2
- import { AnalyticsEventsBase, ButtonPixel, CardBaseProps as CardBaseParams, ImageProps, MetrikaGoal, WithChildren } from '../../models';
2
+ import { ButtonPixel, CardBaseProps as CardBaseParams, ImageProps, MetrikaGoal, WithChildren } from '../../models';
3
+ import { AnalyticsEventsBase } from '../../models/common';
3
4
  export interface CardBaseProps extends AnalyticsEventsBase, CardBaseParams {
4
5
  className?: string;
5
6
  bodyClassName?: string;
@@ -3,10 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Layout = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importStar(require("react"));
6
- const uikit_1 = require("@gravity-ui/uikit");
7
6
  const hooks_1 = require("../../hooks");
8
7
  const useMetrika_1 = require("../../hooks/useMetrika");
9
- const models_1 = require("../../models");
8
+ const common_1 = require("../../models/common");
10
9
  const utils_1 = require("../../utils");
11
10
  const BackgroundImage_1 = tslib_1.__importDefault(require("../BackgroundImage/BackgroundImage"));
12
11
  const RouterLink_1 = tslib_1.__importDefault(require("../RouterLink/RouterLink"));
@@ -17,7 +16,7 @@ const Footer = () => null;
17
16
  const Layout = (props) => {
18
17
  const { className, bodyClassName, metrikaGoals, pixelEvents, analyticsEvents, contentClassName, children, url, target, border = 'shadow', urlTitle, qa, } = props;
19
18
  const handleMetrika = (0, useMetrika_1.useMetrika)();
20
- const handleAnalytics = (0, hooks_1.useAnalytics)(models_1.DefaultEventNames.CardBase, url);
19
+ const handleAnalytics = (0, hooks_1.useAnalytics)(common_1.DefaultEventNames.CardBase, url);
21
20
  let header, content, footer, image, headerClass, footerClass;
22
21
  const qaAttributes = (0, utils_1.getQaAttrubutes)(qa, 'header', 'footer', 'body', 'content');
23
22
  function handleChild(child) {
@@ -54,10 +53,7 @@ const Layout = (props) => {
54
53
  handleAnalytics(analyticsEvents);
55
54
  };
56
55
  return url ? (react_1.default.createElement(RouterLink_1.default, { href: url },
57
- react_1.default.createElement(uikit_1.Link, { href: url, target: target, rel: target === '_blank' ? 'noopener noreferrer' : undefined, className: fullClassName, onClick: onClick, title: urlTitle, extraProps: {
58
- draggable: false,
59
- onDragStart: (e) => e.preventDefault(),
60
- }, qa: qa }, cardContent))) : (react_1.default.createElement("div", { className: fullClassName, "data-qa": qa }, cardContent));
56
+ react_1.default.createElement("a", { href: url, target: target, rel: target === '_blank' ? 'noopener noreferrer' : undefined, className: fullClassName, draggable: false, onDragStart: (e) => e.preventDefault(), onClick: onClick, title: urlTitle, "data-qa": qa }, cardContent))) : (react_1.default.createElement("div", { className: fullClassName, "data-qa": qa }, cardContent));
61
57
  };
62
58
  exports.Layout = Layout;
63
59
  exports.Layout.Header = Header;
@@ -4,7 +4,6 @@ unpredictable css rules order in build */
4
4
  display: flex;
5
5
  justify-content: center;
6
6
  align-items: center;
7
- border-radius: var(--g-focus-border-radius);
8
7
  transition: color 0.2s;
9
8
  display: inline-block;
10
9
  margin: 0;
@@ -26,13 +25,6 @@ unpredictable css rules order in build */
26
25
  .utilityfocus .pc-control:focus {
27
26
  outline: 2px solid #ffdb4d;
28
27
  }
29
- .pc-control:focus {
30
- outline: 2px solid var(--g-color-line-focus);
31
- outline-offset: 0;
32
- }
33
- .pc-control:focus:not(:focus-visible) {
34
- outline: 0;
35
- }
36
28
  .pc-control_size_xs {
37
29
  width: 24px;
38
30
  height: 24px;
@@ -19,14 +19,6 @@ unpredictable css rules order in build */
19
19
  }
20
20
  .pc-file-link__link > a {
21
21
  color: var(--g-color-text-primary);
22
- border-radius: var(--g-focus-border-radius);
23
- }
24
- .pc-file-link__link > a:focus {
25
- outline: 2px solid var(--g-color-line-focus);
26
- outline-offset: 0;
27
- }
28
- .pc-file-link__link > a:focus:not(:focus-visible) {
29
- outline: 0;
30
22
  }
31
23
  .pc-file-link__link > a:hover {
32
24
  color: var(--g-color-text-secondary);
@@ -19,15 +19,6 @@ unpredictable css rules order in build */
19
19
  border-radius: var(--pc-border-radius);
20
20
  }
21
21
  .pc-fullscreen-image__icon-wrapper {
22
- display: inline-block;
23
- margin: 0;
24
- padding: 0;
25
- font: inherit;
26
- border: none;
27
- outline: none;
28
- color: inherit;
29
- background: none;
30
- cursor: pointer;
31
22
  display: flex;
32
23
  align-items: center;
33
24
  justify-content: center;
@@ -42,13 +33,6 @@ unpredictable css rules order in build */
42
33
  opacity: 0;
43
34
  transition: 0.3s;
44
35
  }
45
- .pc-fullscreen-image__icon-wrapper:focus {
46
- outline: 2px solid var(--g-color-line-focus);
47
- outline-offset: 0;
48
- }
49
- .pc-fullscreen-image__icon-wrapper:focus:not(:focus-visible) {
50
- outline: 0;
51
- }
52
36
  .pc-fullscreen-image__icon-wrapper_visible {
53
37
  opacity: 1;
54
38
  }
@@ -21,11 +21,11 @@ const FullscreenImage = (props) => {
21
21
  return (react_1.default.createElement("div", { className: b() },
22
22
  react_1.default.createElement("div", { className: b('image-wrapper'), onMouseEnter: showFullscreenIcon, onMouseLeave: hideFullscreenIcon },
23
23
  react_1.default.createElement(Image_1.default, Object.assign({}, props, { alt: alt, className: b('image', imageClassName), onClick: openModal, style: imageStyle })),
24
- react_1.default.createElement("button", { className: b('icon-wrapper', { visible: isMouseEnter }), onClick: openModal, onFocus: showFullscreenIcon, onBlur: hideFullscreenIcon },
24
+ react_1.default.createElement("div", { className: b('icon-wrapper', { visible: isMouseEnter }), onClick: openModal },
25
25
  react_1.default.createElement(uikit_1.Icon, { data: icons_1.Fullscreen, width: FULL_SCREEN_ICON_SIZE, height: FULL_SCREEN_ICON_SIZE, className: b('icon') }))),
26
26
  isOpened && (react_1.default.createElement(uikit_1.Modal, { open: isOpened, onClose: closeModal, className: b('modal') },
27
27
  react_1.default.createElement("div", { className: b('modal-content') },
28
- react_1.default.createElement("button", { className: b('icon-wrapper', { visible: true }), onClick: closeModal, "aria-label": (0, i18n_1.default)('close') },
28
+ react_1.default.createElement("div", { className: b('icon-wrapper', { visible: true }), onClick: closeModal, "aria-label": (0, i18n_1.default)('close') },
29
29
  react_1.default.createElement(uikit_1.Icon, { data: icons_1.PreviewClose, width: CLOSE_ICON_SIZE, height: CLOSE_ICON_SIZE, className: b('icon', { hover: true }) })),
30
30
  react_1.default.createElement(Image_1.default, Object.assign({}, props, { className: b('modal-image', modalImageClass) })))))));
31
31
  };
@@ -50,7 +50,7 @@ unpredictable css rules order in build */
50
50
  transition: opacity 0.3s;
51
51
  pointer-events: none;
52
52
  }
53
- .pc-full-screen-media__modal-content .pc-full-screen-media__icon-wrapper_visible, .pc-full-screen-media__media-wrapper .pc-full-screen-media__icon-wrapper_visible {
53
+ .pc-full-screen-media__modal-content:hover .pc-full-screen-media__icon-wrapper, .pc-full-screen-media__media-wrapper:hover .pc-full-screen-media__icon-wrapper {
54
54
  opacity: 1;
55
55
  pointer-events: inherit;
56
56
  }
@@ -13,29 +13,22 @@ const getMediaClass = (type) => b('modal-media', { type });
13
13
  const FullscreenMedia = ({ children, showFullscreenIcon = true }) => {
14
14
  const [isOpened, setIsOpened] = (0, react_1.useState)(false);
15
15
  const isMobile = (0, react_1.useContext)(mobileContext_1.MobileContext);
16
- const [isFullscreenButtonFocused, setIsFullscreenButtonFocused] = (0, react_1.useState)(false);
17
16
  const openModal = (e) => {
18
17
  e.stopPropagation();
19
18
  setIsOpened(true);
20
19
  };
21
20
  const closeModal = () => setIsOpened(false);
22
- const onShowFullScreenButton = (0, react_1.useCallback)(() => {
23
- setIsFullscreenButtonFocused(true);
24
- }, []);
25
- const onHideFullScreenButton = (0, react_1.useCallback)(() => {
26
- setIsFullscreenButtonFocused(false);
27
- }, []);
28
21
  if (isMobile) {
29
22
  return children();
30
23
  }
31
24
  return (react_1.default.createElement("div", { className: b() },
32
- react_1.default.createElement("div", { className: b('media-wrapper'), onClickCapture: openModal, onMouseOver: onShowFullScreenButton, onMouseOut: onHideFullScreenButton },
25
+ react_1.default.createElement("div", { className: b('media-wrapper'), onClickCapture: openModal },
33
26
  children({ className: b('inline-media') }),
34
- showFullscreenIcon && (react_1.default.createElement(uikit_1.Button, { className: b('icon-wrapper', { visible: isFullscreenButtonFocused }), extraProps: { onClickCapture: openModal }, size: 'l', onFocus: onShowFullScreenButton, onBlur: onHideFullScreenButton },
27
+ showFullscreenIcon && (react_1.default.createElement("div", { className: b('icon-wrapper'), onClickCapture: openModal },
35
28
  react_1.default.createElement(uikit_1.Icon, { data: icons_1.Fullscreen, width: FULL_SCREEN_ICON_SIZE, height: FULL_SCREEN_ICON_SIZE, className: b('icon') })))),
36
29
  isOpened && (react_1.default.createElement(uikit_1.Modal, { open: isOpened, onClose: closeModal, className: b('modal') },
37
30
  react_1.default.createElement("div", { className: b('modal-content') },
38
- react_1.default.createElement(uikit_1.Button, { className: b('icon-wrapper', { visible: true }), onClick: closeModal, size: 'l' },
31
+ react_1.default.createElement("div", { className: b('icon-wrapper', { visible: true }), onClick: closeModal },
39
32
  react_1.default.createElement(uikit_1.Icon, { data: icons_1.PreviewClose, width: CLOSE_ICON_SIZE, height: CLOSE_ICON_SIZE, className: b('icon', { hover: true }) })),
40
33
  children({
41
34
  imageClassName: getMediaClass('image'),
@@ -10,7 +10,6 @@ unpredictable css rules order in build */
10
10
  cursor: pointer;
11
11
  display: flex;
12
12
  align-items: center;
13
- border-radius: var(--g-focus-border-radius);
14
13
  }
15
14
  .utilityfocus .pc-link-block__link:focus {
16
15
  outline: 2px solid #ffdb4d;
@@ -19,13 +18,6 @@ unpredictable css rules order in build */
19
18
  --pc-text-header-color: var(--g-color-text-link-hover);
20
19
  color: var(--g-color-text-link-hover);
21
20
  }
22
- .pc-link-block__link:focus {
23
- outline: 2px solid var(--g-color-line-focus);
24
- outline-offset: 0;
25
- }
26
- .pc-link-block__link:focus:not(:focus-visible) {
27
- outline: 0;
28
- }
29
21
  .pc-link-block__link_theme_dark {
30
22
  color: var(--g-color-text-light-primary);
31
23
  }
@@ -53,7 +53,7 @@ const Image = (props) => {
53
53
  };
54
54
  const imageSlider = (imageArray) => {
55
55
  const fullscreenItem = fullscreen === undefined || fullscreen;
56
- return (react_1.default.createElement(Slider_1.default, { slidesToShow: 1, type: models_1.SliderType.MediaCard }, imageArray.map((item, index) => (react_1.default.createElement(react_1.Fragment, { key: index }, fullscreenItem ? renderFullscreenImage(item) : imageOnly(item))))));
56
+ return (react_1.default.createElement(Slider_1.default, { slidesToShow: 1, type: models_1.SliderType.MediaCard }, imageArray.map((item) => fullscreenItem ? renderFullscreenImage(item) : imageOnly(item))));
57
57
  };
58
58
  if (Array.isArray(image)) {
59
59
  return imageSlider(image);
@@ -1,5 +1,3 @@
1
- /* use this for style redefinitions to awoid problems with
2
- unpredictable css rules order in build */
3
1
  .pc-overflow-scroller {
4
2
  display: flex;
5
3
  align-items: center;
@@ -21,15 +19,6 @@ unpredictable css rules order in build */
21
19
  transition: left 0.6s;
22
20
  }
23
21
  .pc-overflow-scroller__arrow {
24
- display: inline-block;
25
- margin: 0;
26
- padding: 0;
27
- font: inherit;
28
- border: none;
29
- outline: none;
30
- color: inherit;
31
- background: none;
32
- cursor: pointer;
33
22
  position: absolute;
34
23
  z-index: 10;
35
24
  top: 0;
@@ -40,14 +29,6 @@ unpredictable css rules order in build */
40
29
  height: calc(100% - 1px);
41
30
  cursor: pointer;
42
31
  color: var(--g-color-text-secondary);
43
- border-radius: var(--g-focus-border-radius);
44
- }
45
- .pc-overflow-scroller__arrow:focus {
46
- outline: 2px solid var(--g-color-line-focus);
47
- outline-offset: 0;
48
- }
49
- .pc-overflow-scroller__arrow:focus:not(:focus-visible) {
50
- outline: 0;
51
32
  }
52
33
  .pc-overflow-scroller__arrow_type_left {
53
34
  left: 0;
@@ -5,7 +5,6 @@ const react_1 = tslib_1.__importStar(require("react"));
5
5
  const debounce_1 = tslib_1.__importDefault(require("lodash/debounce"));
6
6
  const __1 = require("..");
7
7
  const utils_1 = require("../../utils");
8
- const i18n_1 = tslib_1.__importDefault(require("./i18n"));
9
8
  const b = (0, utils_1.block)('overflow-scroller');
10
9
  const TRANSITION_TIME = 300;
11
10
  const PADDING_SIZE = 24;
@@ -85,7 +84,7 @@ class OverflowScroller extends react_1.default.Component {
85
84
  }) },
86
85
  react_1.default.createElement("div", { className: b(null, className), ref: this.containerRef },
87
86
  react_1.default.createElement("div", { className: b('wrapper'), style: wrapperStyle, ref: this.wrapperRef }, children)),
88
- arrows.map((direction) => (react_1.default.createElement("button", { key: direction, className: b('arrow', { type: direction }, arrowClassName), onClick: (e) => this.handleScrollClick(e, direction), "aria-label": (0, i18n_1.default)(direction) },
87
+ arrows.map((direction) => (react_1.default.createElement("div", { key: direction, className: b('arrow', { type: direction }, arrowClassName), onClick: (e) => this.handleScrollClick(e, direction) },
89
88
  react_1.default.createElement(__1.ToggleArrow, { size: arrowSize, type: 'horizontal', iconType: "navigation" }))))));
90
89
  }
91
90
  }
@@ -55,11 +55,10 @@ unpredictable css rules order in build */
55
55
  background: #eff2f8;
56
56
  }
57
57
  .pc-CustomBarControls__button_type_with-mute-button:focus {
58
- outline: 2px solid var(--g-color-line-focus);
59
- outline-offset: 0;
58
+ outline: 2px solid var(--g-color-line-misc);
60
59
  }
61
60
  .pc-CustomBarControls__button_type_with-mute-button:focus:not(:focus-visible) {
62
- outline: 0;
61
+ outline: none;
63
62
  }
64
63
  .pc-CustomBarControls__button_type_with-play-pause-button {
65
64
  width: 42px;
@@ -68,11 +67,10 @@ unpredictable css rules order in build */
68
67
  background: var(--g-color-base-background);
69
68
  }
70
69
  .pc-CustomBarControls__button_type_with-play-pause-button:focus {
71
- outline: 2px solid var(--g-color-line-focus);
72
- outline-offset: 0;
70
+ outline: 2px solid var(--g-color-line-misc);
73
71
  }
74
72
  .pc-CustomBarControls__button_type_with-play-pause-button:focus:not(:focus-visible) {
75
- outline: 0;
73
+ outline: none;
76
74
  }
77
75
  .pc-CustomBarControls__play-icon_type_with-play-pause-button {
78
76
  height: 16px;
@@ -27,13 +27,6 @@ unpredictable css rules order in build */
27
27
  height: 64px;
28
28
  border-radius: 166px;
29
29
  }
30
- .pc-ReactPlayer__button:focus {
31
- outline: 2px solid var(--g-color-line-focus);
32
- outline-offset: 0;
33
- }
34
- .pc-ReactPlayer__button:focus:not(:focus-visible) {
35
- outline: 0;
36
- }
37
30
  .pc-ReactPlayer__button_theme_blue {
38
31
  color: var(--g-color-base-background);
39
32
  background-color: var(--g-color-base-brand);
@@ -219,7 +219,7 @@ exports.ReactPlayerBlock = react_1.default.forwardRef((props, originRef) => {
219
219
  }, className), ref: ref, onClick: handleClick, onMouseEnter: onFocusIn, onMouseLeave: onFocusOut, onFocus: onFocusIn, onBlur: onFocusOut }, isMounted ? (react_1.default.createElement(react_1.Fragment, null,
220
220
  react_1.default.createElement(react_player_1.default, { className: b('player'), url: videoSrc, muted: muted, controls: controls === models_1.MediaVideoControlsType.Default, height: currentHeight || '100%', width: width || '100%', light: previewImgUrl, playing: isPlaying, playIcon: playIcon, progressInterval: FPS, onClickPreview: handleClickPreview, onStart: onStart, onReady: setPlayerRef, onPlay: onPlay, onPause: autoPlay && customControlsType !== models_1.CustomControlsType.WithMuteButton
221
221
  ? undefined
222
- : onPause, onProgress: onProgress, onEnded: onEnded, "aria-label": ariaLabel, previewTabIndex: -1 }),
222
+ : onPause, onProgress: onProgress, onEnded: onEnded, "aria-label": ariaLabel }),
223
223
  controls === models_1.MediaVideoControlsType.Custom && (react_1.default.createElement(CustomBarControls_1.default, { className: customBarControlsClassName, mute: {
224
224
  isMuted: muted,
225
225
  changeMute: (event) => {
@@ -62,19 +62,11 @@ unpredictable css rules order in build */
62
62
  color: inherit;
63
63
  text-decoration: none;
64
64
  padding-right: 8px;
65
- border-radius: var(--g-focus-border-radius);
66
65
  }
67
66
  .pc-title-item__link:hover, .pc-title-item__link:active {
68
67
  --pc-text-header-color: inherit;
69
68
  color: inherit;
70
69
  }
71
- .pc-title-item__link:focus {
72
- outline: 2px solid var(--g-color-line-focus);
73
- outline-offset: 0;
74
- }
75
- .pc-title-item__link:focus:not(:focus-visible) {
76
- outline: 0;
77
- }
78
70
  .pc-title-item__link:hover {
79
71
  cursor: pointer;
80
72
  }
@@ -43,13 +43,6 @@ unpredictable css rules order in build */
43
43
  background-color: var(--g-color-base-brand);
44
44
  border-radius: 50%;
45
45
  }
46
- .pc-VideoBlock__button:focus {
47
- outline: 2px solid var(--g-color-line-focus);
48
- outline-offset: 0;
49
- }
50
- .pc-VideoBlock__button:focus:not(:focus-visible) {
51
- outline: 0;
52
- }
53
46
  .pc-VideoBlock__icon {
54
47
  margin-left: 6px;
55
48
  }
@@ -41,14 +41,12 @@ unpredictable css rules order in build */
41
41
  --pc-color-base-gold: #ffdb4d;
42
42
  --pc-color-base-asphalt: #313538;
43
43
  --pc-color-base-copper: #ffe6c4;
44
- --g-color-line-focus: var(--g-color-text-brand);
45
44
  }
46
45
  .g-root_theme_dark {
47
46
  --pc-color-base-silver: #bcc0c4;
48
47
  --pc-color-base-gold: #ffde5d;
49
48
  --pc-color-base-asphalt: #474d52;
50
49
  --pc-color-base-copper: #7f7262;
51
- --g-color-line-focus: var(--g-color-text-light-primary);
52
50
  }
53
51
  .g-root.g-root_theme_dark {
54
52
  --pc-color-sfx-shadow: var(--g-color-sfx-shadow);
@@ -126,7 +124,6 @@ unpredictable css rules order in build */
126
124
  color: var(--g-color-text-link);
127
125
  text-decoration: none;
128
126
  cursor: pointer;
129
- border-radius: var(--g-focus-border-radius);
130
127
  }
131
128
  .utilityfocus .yfm_constructor a:focus {
132
129
  outline: 2px solid #ffdb4d;
@@ -135,12 +132,6 @@ unpredictable css rules order in build */
135
132
  --pc-text-header-color: var(--g-color-text-link-hover);
136
133
  color: var(--g-color-text-link-hover);
137
134
  }
138
- .yfm_constructor a:focus {
139
- box-shadow: 0 0 0 2px var(--g-color-line-focus);
140
- }
141
- .yfm_constructor a:focus:not(:focus-visible) {
142
- box-shadow: none;
143
- }
144
135
  .yfm_constructor table {
145
136
  color: var(--g-color-text-primary);
146
137
  border: 1px solid var(--g-color-line-generic);
@@ -1053,6 +1053,9 @@ export declare const cardSchemas: {
1053
1053
  fullscreen: {
1054
1054
  type: string;
1055
1055
  };
1056
+ ratio: {
1057
+ type: string;
1058
+ };
1056
1059
  border: {
1057
1060
  type: string;
1058
1061
  enum: string[];