@gravity-ui/page-constructor 4.1.1 → 4.3.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.
- package/build/cjs/blocks/ExtendedFeatures/ExtendedFeatures.js +7 -3
- package/build/cjs/blocks/FilterBlock/schema.d.ts +6 -0
- package/build/cjs/blocks/FilterBlock/schema.js +2 -2
- package/build/cjs/blocks/PromoFeaturesBlock/PromoFeaturesBlock.js +1 -1
- package/build/cjs/blocks/Questions/QuestionBlockItem/QuestionBlockItem.css +50 -0
- package/build/cjs/blocks/Questions/QuestionBlockItem/QuestionBlockItem.d.ts +2 -0
- package/build/cjs/blocks/Questions/QuestionBlockItem/QuestionBlockItem.js +27 -0
- package/build/cjs/blocks/Questions/Questions.css +0 -48
- package/build/cjs/blocks/Questions/Questions.js +7 -27
- package/build/cjs/blocks/Questions/models.d.ts +10 -0
- package/build/cjs/blocks/Questions/models.js +13 -0
- package/build/cjs/components/BackLink/BackLink.d.ts +2 -1
- package/build/cjs/components/BackLink/BackLink.js +2 -2
- package/build/cjs/components/FileLink/FileLink.js +2 -2
- package/build/cjs/components/FullscreenImage/FullscreenImage.js +1 -1
- package/build/cjs/components/FullscreenImage/i18n/en.json +2 -1
- package/build/cjs/components/FullscreenImage/i18n/ru.json +2 -1
- package/build/cjs/components/Image/i18n/en.json +1 -1
- package/build/cjs/components/Image/i18n/ru.json +1 -1
- package/build/cjs/components/Link/Link.d.ts +2 -2
- package/build/cjs/components/Link/Link.js +6 -6
- package/build/cjs/components/Media/Media.js +1 -2
- package/build/cjs/components/Media/Video/Video.js +3 -3
- package/build/cjs/components/ReactPlayer/ReactPlayer.js +4 -3
- package/build/cjs/components/ReactPlayer/i18n/en.json +3 -0
- package/build/cjs/components/ReactPlayer/i18n/index.d.ts +2 -0
- package/build/cjs/components/ReactPlayer/i18n/index.js +8 -0
- package/build/cjs/components/ReactPlayer/i18n/ru.json +3 -0
- package/build/cjs/components/constants.d.ts +0 -4
- package/build/cjs/components/constants.js +1 -5
- package/build/cjs/grid/Col/Col.d.ts +2 -1
- package/build/cjs/grid/Col/Col.js +2 -2
- package/build/cjs/models/constructor-items/blocks.d.ts +4 -0
- package/build/cjs/models/constructor-items/common.d.ts +7 -3
- package/build/cjs/sub-blocks/Content/ContentList/ContentList.js +11 -1
- package/build/cjs/sub-blocks/LayoutItem/utils.d.ts +1 -0
- package/build/cjs/utils/blocks.d.ts +1 -1
- package/build/cjs/utils/blocks.js +2 -2
- package/build/esm/blocks/ExtendedFeatures/ExtendedFeatures.js +7 -3
- package/build/esm/blocks/FilterBlock/schema.d.ts +6 -0
- package/build/esm/blocks/FilterBlock/schema.js +2 -2
- package/build/esm/blocks/PromoFeaturesBlock/PromoFeaturesBlock.js +1 -1
- package/build/esm/blocks/Questions/QuestionBlockItem/QuestionBlockItem.css +50 -0
- package/build/esm/blocks/Questions/QuestionBlockItem/QuestionBlockItem.d.ts +3 -0
- package/build/esm/blocks/Questions/QuestionBlockItem/QuestionBlockItem.js +23 -0
- package/build/esm/blocks/Questions/Questions.css +0 -48
- package/build/esm/blocks/Questions/Questions.js +6 -26
- package/build/esm/blocks/Questions/models.d.ts +10 -0
- package/build/esm/blocks/Questions/models.js +10 -0
- package/build/esm/components/BackLink/BackLink.d.ts +2 -1
- package/build/esm/components/BackLink/BackLink.js +2 -2
- package/build/esm/components/FileLink/FileLink.js +2 -2
- package/build/esm/components/FullscreenImage/FullscreenImage.js +1 -1
- package/build/esm/components/FullscreenImage/i18n/en.json +2 -1
- package/build/esm/components/FullscreenImage/i18n/ru.json +2 -1
- package/build/esm/components/Image/i18n/en.json +1 -1
- package/build/esm/components/Image/i18n/ru.json +1 -1
- package/build/esm/components/Link/Link.d.ts +2 -2
- package/build/esm/components/Link/Link.js +7 -7
- package/build/esm/components/Media/Media.js +1 -2
- package/build/esm/components/Media/Video/Video.js +3 -3
- package/build/esm/components/ReactPlayer/ReactPlayer.js +4 -3
- package/build/esm/components/ReactPlayer/i18n/en.json +3 -0
- package/build/esm/components/ReactPlayer/i18n/index.d.ts +2 -0
- package/build/esm/components/ReactPlayer/i18n/index.js +5 -0
- package/build/esm/components/ReactPlayer/i18n/ru.json +3 -0
- package/build/esm/components/constants.d.ts +0 -4
- package/build/esm/components/constants.js +0 -4
- package/build/esm/grid/Col/Col.d.ts +2 -1
- package/build/esm/grid/Col/Col.js +2 -2
- package/build/esm/models/constructor-items/blocks.d.ts +4 -0
- package/build/esm/models/constructor-items/common.d.ts +7 -3
- package/build/esm/sub-blocks/Content/ContentList/ContentList.js +11 -1
- package/build/esm/sub-blocks/LayoutItem/utils.d.ts +1 -0
- package/build/esm/utils/blocks.d.ts +1 -1
- package/build/esm/utils/blocks.js +2 -2
- package/package.json +3 -3
- package/server/components/constants.d.ts +0 -4
- package/server/components/constants.js +1 -5
- package/server/models/constructor-items/blocks.d.ts +4 -0
- package/server/models/constructor-items/common.d.ts +7 -3
- package/server/utils/blocks.d.ts +1 -1
- package/server/utils/blocks.js +2 -2
- package/widget/index.js +1 -1
|
@@ -5,5 +5,6 @@ import { GridColumnClassParams } from '../types';
|
|
|
5
5
|
export interface GridColumnProps extends GridColumnClassParams, Refable<HTMLDivElement>, QAProps {
|
|
6
6
|
style?: CSSProperties;
|
|
7
7
|
children?: React.ReactNode;
|
|
8
|
+
role?: React.AriaRole;
|
|
8
9
|
}
|
|
9
|
-
export declare const Col: React.ForwardRefExoticComponent<Pick<WithChildren<GridColumnProps>, "style" | "children" | "sizes" | "className" | "hidden" | "qa" | "reset" | "visible" | "offsets" | "orders" | "alignSelf" | "justifyContent"> & React.RefAttributes<HTMLDivElement>>;
|
|
10
|
+
export declare const Col: React.ForwardRefExoticComponent<Pick<WithChildren<GridColumnProps>, "style" | "children" | "sizes" | "className" | "hidden" | "role" | "qa" | "reset" | "visible" | "offsets" | "orders" | "alignSelf" | "justifyContent"> & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -2,7 +2,7 @@ import { __rest } from "tslib";
|
|
|
2
2
|
import React, { forwardRef } from 'react';
|
|
3
3
|
import { getColClass } from '../utils';
|
|
4
4
|
export const Col = forwardRef((props, ref) => {
|
|
5
|
-
const { children, style, qa } = props, rest = __rest(props, ["children", "style", "qa"]);
|
|
6
|
-
return (React.createElement("div", { ref: ref, className: getColClass(rest), style: style, "data-qa": qa }, children));
|
|
5
|
+
const { children, style, qa, role } = props, rest = __rest(props, ["children", "style", "qa", "role"]);
|
|
6
|
+
return (React.createElement("div", { ref: ref, className: getColClass(rest), style: style, "data-qa": qa, role: role }, children));
|
|
7
7
|
});
|
|
8
8
|
Col.displayName = 'Col';
|
|
@@ -141,6 +141,10 @@ export interface QuestionItem {
|
|
|
141
141
|
export interface QuestionsProps extends Omit<ContentBlockProps, 'colSizes' | 'centered' | 'size' | 'theme'> {
|
|
142
142
|
items: QuestionItem[];
|
|
143
143
|
}
|
|
144
|
+
export interface QuestionBlockItemProps extends QuestionItem {
|
|
145
|
+
isOpened: boolean;
|
|
146
|
+
onClick: () => void;
|
|
147
|
+
}
|
|
144
148
|
export interface BannerBlockProps extends BannerCardProps, Animatable {
|
|
145
149
|
}
|
|
146
150
|
export interface CompaniesBlockProps extends Animatable {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CSSProperties, ReactNode } from 'react';
|
|
2
2
|
import { ButtonView, ButtonProps as UikitButtonProps } from '@gravity-ui/uikit';
|
|
3
|
-
import { ThemeSupporting } from '../../utils
|
|
3
|
+
import { ThemeSupporting } from '../../utils';
|
|
4
4
|
import { AnalyticsEventsBase, ClassNameProps, PixelEventType, QAProps } from '../common';
|
|
5
5
|
export declare enum AuthorType {
|
|
6
6
|
Column = "column",
|
|
@@ -61,6 +61,9 @@ export interface Stylable {
|
|
|
61
61
|
export interface Animatable {
|
|
62
62
|
animated?: boolean;
|
|
63
63
|
}
|
|
64
|
+
export interface Tabbable {
|
|
65
|
+
tabIndex?: number;
|
|
66
|
+
}
|
|
64
67
|
export interface Background {
|
|
65
68
|
image?: string;
|
|
66
69
|
color?: string;
|
|
@@ -106,7 +109,7 @@ export interface MediaVideoProps extends AnalyticsEventsBase {
|
|
|
106
109
|
controls?: MediaVideoControlsType;
|
|
107
110
|
metrika?: MetrikaVideo;
|
|
108
111
|
}
|
|
109
|
-
export interface LinkProps extends AnalyticsEventsBase, Stylable {
|
|
112
|
+
export interface LinkProps extends AnalyticsEventsBase, Stylable, Tabbable {
|
|
110
113
|
url: string;
|
|
111
114
|
text?: string;
|
|
112
115
|
textSize?: TextSize;
|
|
@@ -117,7 +120,7 @@ export interface LinkProps extends AnalyticsEventsBase, Stylable {
|
|
|
117
120
|
metrikaGoals?: MetrikaGoal;
|
|
118
121
|
pixelEvents?: ButtonPixel;
|
|
119
122
|
}
|
|
120
|
-
export interface FileLinkProps extends ClassNameProps {
|
|
123
|
+
export interface FileLinkProps extends ClassNameProps, Tabbable {
|
|
121
124
|
href: string;
|
|
122
125
|
text: ReactNode;
|
|
123
126
|
type?: FileLinkType;
|
|
@@ -157,6 +160,7 @@ export interface MediaVideoProps {
|
|
|
157
160
|
playButton?: PlayButtonProps;
|
|
158
161
|
controls?: MediaVideoControlsType;
|
|
159
162
|
metrika?: MetrikaVideo;
|
|
163
|
+
ariaLabel?: string;
|
|
160
164
|
}
|
|
161
165
|
export type ThemedMediaVideoProps = ThemeSupporting<MediaVideoProps>;
|
|
162
166
|
export interface MediaComponentVideoProps extends AnalyticsEventsBase {
|
|
@@ -7,6 +7,15 @@ import { useTheme } from '../../../context/theme';
|
|
|
7
7
|
import { block, getThemedValue } from '../../../utils';
|
|
8
8
|
import './ContentList.css';
|
|
9
9
|
const b = block('content-list');
|
|
10
|
+
function getHeadingLevel(size) {
|
|
11
|
+
switch (size) {
|
|
12
|
+
case 's':
|
|
13
|
+
return 'h4';
|
|
14
|
+
case 'l':
|
|
15
|
+
default:
|
|
16
|
+
return 'h3';
|
|
17
|
+
}
|
|
18
|
+
}
|
|
10
19
|
const ContentList = ({ list, size }) => {
|
|
11
20
|
const theme = useTheme();
|
|
12
21
|
return (React.createElement("div", { className: b({ size }) }, list === null || list === void 0 ? void 0 : list.map((item) => {
|
|
@@ -16,7 +25,8 @@ const ContentList = ({ list, size }) => {
|
|
|
16
25
|
return (React.createElement("div", { className: b('item'), key: uuidv4() },
|
|
17
26
|
React.createElement(Image, Object.assign({}, iconData, { className: b('icon') })),
|
|
18
27
|
React.createElement("div", null,
|
|
19
|
-
title &&
|
|
28
|
+
title &&
|
|
29
|
+
React.createElement(getHeadingLevel(size), { className: b('title') }, title),
|
|
20
30
|
text && (React.createElement(YFMWrapper, { className: b('text'), content: text, modifiers: { constructor: true } })))));
|
|
21
31
|
})));
|
|
22
32
|
};
|
|
@@ -23,6 +23,7 @@ export declare const getLayoutItemLinks: (links: LayoutItemProps['content']['lin
|
|
|
23
23
|
target?: string | undefined;
|
|
24
24
|
}[] | undefined;
|
|
25
25
|
className?: string | undefined;
|
|
26
|
+
tabIndex?: number | undefined;
|
|
26
27
|
}[] | undefined;
|
|
27
28
|
export declare const hasFullscreen: ({ dataLens, image }: MediaProps) => boolean;
|
|
28
29
|
export declare const showFullscreenIcon: ({ youtube }: MediaProps) => boolean;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ConstructorBlock, CustomConfig, PCShareSocialNetwork, TextSize } from '../models';
|
|
2
|
-
export declare function getHeaderTag(size: TextSize): "h1" | "h2" | "
|
|
2
|
+
export declare function getHeaderTag(size: TextSize): "h1" | "h2" | "h3" | "h4";
|
|
3
3
|
export declare function hasBlockTag(content: string): boolean;
|
|
4
4
|
export declare function getBlockKey(block: ConstructorBlock, index: number): string;
|
|
5
5
|
export declare const getCustomBlockTypes: ({ blocks, headers }?: CustomConfig) => string[];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gravity-ui/page-constructor",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.3.0",
|
|
4
4
|
"description": "Gravity UI Page Constructor",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -103,7 +103,7 @@
|
|
|
103
103
|
},
|
|
104
104
|
"peerDependencies": {
|
|
105
105
|
"@doc-tools/transform": "^3.3.2",
|
|
106
|
-
"@gravity-ui/uikit": "^5.1
|
|
106
|
+
"@gravity-ui/uikit": "^5.4.1",
|
|
107
107
|
"react": "^16.0.0 || ^17.0.0 || ^18.0.0"
|
|
108
108
|
},
|
|
109
109
|
"devDependencies": {
|
|
@@ -119,7 +119,7 @@
|
|
|
119
119
|
"@gravity-ui/prettier-config": "^1.0.1",
|
|
120
120
|
"@gravity-ui/stylelint-config": "^1.0.0",
|
|
121
121
|
"@gravity-ui/tsconfig": "^1.0.0",
|
|
122
|
-
"@gravity-ui/uikit": "^5.1
|
|
122
|
+
"@gravity-ui/uikit": "^5.4.1",
|
|
123
123
|
"@storybook/addon-actions": "^7.1.0",
|
|
124
124
|
"@storybook/addon-essentials": "^7.1.0",
|
|
125
125
|
"@storybook/addon-knobs": "^7.0.2",
|
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.HEADER_HEIGHT = exports.
|
|
3
|
+
exports.HEADER_HEIGHT = exports.UIKIT_ROOT_CLASS = exports.DEFAULT_THEME = void 0;
|
|
4
4
|
const models_1 = require("../models");
|
|
5
5
|
exports.DEFAULT_THEME = models_1.Theme.Light;
|
|
6
6
|
exports.UIKIT_ROOT_CLASS = 'g-root';
|
|
7
|
-
exports.KEY = {
|
|
8
|
-
ENTER: 'Enter',
|
|
9
|
-
TAB: 'Tab',
|
|
10
|
-
};
|
|
11
7
|
exports.HEADER_HEIGHT = 64;
|
|
@@ -141,6 +141,10 @@ export interface QuestionItem {
|
|
|
141
141
|
export interface QuestionsProps extends Omit<ContentBlockProps, 'colSizes' | 'centered' | 'size' | 'theme'> {
|
|
142
142
|
items: QuestionItem[];
|
|
143
143
|
}
|
|
144
|
+
export interface QuestionBlockItemProps extends QuestionItem {
|
|
145
|
+
isOpened: boolean;
|
|
146
|
+
onClick: () => void;
|
|
147
|
+
}
|
|
144
148
|
export interface BannerBlockProps extends BannerCardProps, Animatable {
|
|
145
149
|
}
|
|
146
150
|
export interface CompaniesBlockProps extends Animatable {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CSSProperties, ReactNode } from 'react';
|
|
2
2
|
import { ButtonView, ButtonProps as UikitButtonProps } from '@gravity-ui/uikit';
|
|
3
|
-
import { ThemeSupporting } from '../../utils
|
|
3
|
+
import { ThemeSupporting } from '../../utils';
|
|
4
4
|
import { AnalyticsEventsBase, ClassNameProps, PixelEventType, QAProps } from '../common';
|
|
5
5
|
export declare enum AuthorType {
|
|
6
6
|
Column = "column",
|
|
@@ -61,6 +61,9 @@ export interface Stylable {
|
|
|
61
61
|
export interface Animatable {
|
|
62
62
|
animated?: boolean;
|
|
63
63
|
}
|
|
64
|
+
export interface Tabbable {
|
|
65
|
+
tabIndex?: number;
|
|
66
|
+
}
|
|
64
67
|
export interface Background {
|
|
65
68
|
image?: string;
|
|
66
69
|
color?: string;
|
|
@@ -106,7 +109,7 @@ export interface MediaVideoProps extends AnalyticsEventsBase {
|
|
|
106
109
|
controls?: MediaVideoControlsType;
|
|
107
110
|
metrika?: MetrikaVideo;
|
|
108
111
|
}
|
|
109
|
-
export interface LinkProps extends AnalyticsEventsBase, Stylable {
|
|
112
|
+
export interface LinkProps extends AnalyticsEventsBase, Stylable, Tabbable {
|
|
110
113
|
url: string;
|
|
111
114
|
text?: string;
|
|
112
115
|
textSize?: TextSize;
|
|
@@ -117,7 +120,7 @@ export interface LinkProps extends AnalyticsEventsBase, Stylable {
|
|
|
117
120
|
metrikaGoals?: MetrikaGoal;
|
|
118
121
|
pixelEvents?: ButtonPixel;
|
|
119
122
|
}
|
|
120
|
-
export interface FileLinkProps extends ClassNameProps {
|
|
123
|
+
export interface FileLinkProps extends ClassNameProps, Tabbable {
|
|
121
124
|
href: string;
|
|
122
125
|
text: ReactNode;
|
|
123
126
|
type?: FileLinkType;
|
|
@@ -157,6 +160,7 @@ export interface MediaVideoProps {
|
|
|
157
160
|
playButton?: PlayButtonProps;
|
|
158
161
|
controls?: MediaVideoControlsType;
|
|
159
162
|
metrika?: MetrikaVideo;
|
|
163
|
+
ariaLabel?: string;
|
|
160
164
|
}
|
|
161
165
|
export type ThemedMediaVideoProps = ThemeSupporting<MediaVideoProps>;
|
|
162
166
|
export interface MediaComponentVideoProps extends AnalyticsEventsBase {
|
package/server/utils/blocks.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ConstructorBlock, CustomConfig, PCShareSocialNetwork, TextSize } from '../models';
|
|
2
|
-
export declare function getHeaderTag(size: TextSize): "h1" | "h2" | "
|
|
2
|
+
export declare function getHeaderTag(size: TextSize): "h1" | "h2" | "h3" | "h4";
|
|
3
3
|
export declare function hasBlockTag(content: string): boolean;
|
|
4
4
|
export declare function getBlockKey(block: ConstructorBlock, index: number): string;
|
|
5
5
|
export declare const getCustomBlockTypes: ({ blocks, headers }?: CustomConfig) => string[];
|