@gravity-ui/page-constructor 1.5.0-alpha.0 → 1.6.0-alpha.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 (37) hide show
  1. package/CHANGELOG.md +13 -1
  2. package/build/cjs/blocks/ContentLayout/ContentLayout.css +2 -2
  3. package/build/cjs/blocks/ExtendedFeatures/ExtendedFeatures.css +1 -1
  4. package/build/cjs/blocks/ExtendedFeatures/ExtendedFeatures.js +26 -12
  5. package/build/cjs/blocks/PromoFeaturesBlock/PromoFeaturesBlock.css +1 -0
  6. package/build/cjs/components/Link/Link.js +1 -1
  7. package/build/cjs/models/constructor-items/blocks.d.ts +4 -2
  8. package/build/cjs/models/constructor-items/sub-blocks.d.ts +4 -1
  9. package/build/cjs/schema/validators/common.d.ts +6 -0
  10. package/build/cjs/schema/validators/common.js +7 -1
  11. package/build/cjs/schema/validators/sub-blocks.d.ts +0 -4
  12. package/build/cjs/schema/validators/sub-blocks.js +0 -4
  13. package/build/cjs/sub-blocks/BackgroundCard/schema.js +5 -6
  14. package/build/cjs/sub-blocks/BasicCard/schema.js +5 -6
  15. package/build/cjs/text-transform/blocks.js +11 -1
  16. package/build/esm/blocks/ContentLayout/ContentLayout.css +2 -2
  17. package/build/esm/blocks/ExtendedFeatures/ExtendedFeatures.css +1 -1
  18. package/build/esm/blocks/ExtendedFeatures/ExtendedFeatures.js +28 -14
  19. package/build/esm/blocks/PromoFeaturesBlock/PromoFeaturesBlock.css +1 -0
  20. package/build/esm/components/Link/Link.js +1 -1
  21. package/build/esm/models/constructor-items/blocks.d.ts +4 -2
  22. package/build/esm/models/constructor-items/sub-blocks.d.ts +4 -1
  23. package/build/esm/schema/validators/common.d.ts +6 -0
  24. package/build/esm/schema/validators/common.js +6 -0
  25. package/build/esm/schema/validators/sub-blocks.d.ts +0 -4
  26. package/build/esm/schema/validators/sub-blocks.js +0 -4
  27. package/build/esm/sub-blocks/BackgroundCard/schema.js +1 -2
  28. package/build/esm/sub-blocks/BasicCard/schema.js +1 -2
  29. package/build/esm/text-transform/blocks.js +11 -1
  30. package/package.json +1 -1
  31. package/server/models/constructor-items/blocks.d.ts +4 -2
  32. package/server/models/constructor-items/sub-blocks.d.ts +4 -1
  33. package/server/text-transform/blocks.js +11 -1
  34. package/build/cjs/components/CardBase/schema.d.ts +0 -6
  35. package/build/cjs/components/CardBase/schema.js +0 -9
  36. package/build/esm/components/CardBase/schema.d.ts +0 -6
  37. package/build/esm/components/CardBase/schema.js +0 -6
package/CHANGELOG.md CHANGED
@@ -1,11 +1,23 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.6.0](https://github.com/gravity-ui/page-constructor/pulls?q=is%3Apr+is%3Aclosed) (2022-11-09)
4
+
5
+ ### Features
6
+
7
+ * update storybook
8
+
3
9
  ## [1.5.0](https://github.com/gravity-ui/page-constructor/issues/44) (2022-11-03)
4
10
 
5
- ### Bug Fixes
11
+ ### Features
6
12
 
7
13
  * remove card validator and types
8
14
 
15
+ ## [1.4.2](https://github.com/gravity-ui/page-constructor/pull/46) (2022-11-07)
16
+
17
+ ### Bug Fixes
18
+
19
+ * change link text m arrow size
20
+
9
21
  ## [1.4.1](https://github.com/gravity-ui/page-constructor/pull/42) (2022-10-28)
10
22
 
11
23
  ### Bug Fixes
@@ -19,8 +19,8 @@ unpredictable css rules order in build */
19
19
  line-height: var(--yc-text-body-2-line-height);
20
20
  }
21
21
  .pc-content-layout-block__files_size_l {
22
- font-size: var(--yc-text-body3-font-size);
23
- line-height: var(--yc-text-body3-line-height);
22
+ font-size: var(--yc-text-body-3-font-size);
23
+ line-height: var(--yc-text-body-3-line-height);
24
24
  }
25
25
  .pc-content-layout-block__files_centered {
26
26
  margin-left: auto;
@@ -74,7 +74,7 @@ unpredictable css rules order in build */
74
74
  height: 32px;
75
75
  background-size: cover;
76
76
  display: block;
77
- margin-bottom: 8px;
77
+ margin-bottom: 12px;
78
78
  }
79
79
  @media (max-width: 577px) {
80
80
  .pc-ExtendedFeaturesBlock__item {
@@ -2,26 +2,40 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ExtendedFeaturesBlock = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const react_1 = (0, tslib_1.__importDefault)(require("react"));
5
+ const react_1 = (0, tslib_1.__importStar)(require("react"));
6
6
  const utils_1 = require("../../utils");
7
7
  const grid_1 = require("../../grid");
8
8
  const components_1 = require("../../components/");
9
+ const sub_blocks_1 = require("../../sub-blocks");
10
+ const Image_1 = (0, tslib_1.__importDefault)(require("../../components/Image/Image"));
11
+ const ThemeValueContext_1 = require("../../context/theme/ThemeValueContext");
12
+ const utils_2 = require("../../components/Media/Image/utils");
9
13
  const b = (0, utils_1.block)('ExtendedFeaturesBlock');
10
14
  const DEFAULT_SIZES = {
11
15
  all: 12,
12
16
  sm: 6,
13
17
  md: 4,
14
18
  };
15
- const ExtendedFeaturesBlock = ({ title, description, items, colSizes = DEFAULT_SIZES, animated, }) => (react_1.default.createElement(components_1.AnimateBlock, { className: b(), animate: animated },
16
- react_1.default.createElement(components_1.BlockHeader, { title: title, description: description, className: b('header') }),
17
- react_1.default.createElement("div", { className: b('items') },
18
- react_1.default.createElement(grid_1.Row, null, items.map(({ title: itemTitle, text, link, label, icon }) => (react_1.default.createElement(grid_1.Col, { className: b('item'), key: text || itemTitle, sizes: colSizes },
19
- icon && react_1.default.createElement("img", { src: icon, className: b('icon') }),
20
- itemTitle && (react_1.default.createElement("h5", { className: b('item-title', { 'has-label': Boolean(label) }) },
21
- react_1.default.createElement(components_1.HTML, null, itemTitle),
22
- label && react_1.default.createElement("div", { className: b('item-label') }, label))),
23
- text && (react_1.default.createElement("div", { className: b('item-text') },
24
- react_1.default.createElement(components_1.HTML, null, text))),
25
- link && react_1.default.createElement(components_1.Link, Object.assign({ className: b('item-link') }, link)))))))));
19
+ const ExtendedFeaturesBlock = ({ title, description, items, colSizes = DEFAULT_SIZES, animated, }) => {
20
+ const { themeValue: theme } = (0, react_1.useContext)(ThemeValueContext_1.ThemeValueContext);
21
+ return (react_1.default.createElement(components_1.AnimateBlock, { className: b(), animate: animated },
22
+ react_1.default.createElement(components_1.BlockHeader, { title: title, description: description, className: b('header') }),
23
+ react_1.default.createElement("div", { className: b('items') },
24
+ react_1.default.createElement(grid_1.Row, null, items.map(({ title: itemTitle, text, link, links, label, icon }) => {
25
+ const itemLinks = links || [];
26
+ const iconThemed = icon && (0, utils_1.getThemedValue)(icon, theme);
27
+ const iconData = iconThemed && (0, utils_2.getMediaImage)(iconThemed);
28
+ if (link) {
29
+ itemLinks.push(link);
30
+ }
31
+ return (react_1.default.createElement(grid_1.Col, { className: b('item'), key: text || itemTitle, sizes: colSizes },
32
+ iconData && react_1.default.createElement(Image_1.default, Object.assign({}, iconData, { className: b('icon') })),
33
+ react_1.default.createElement("div", { className: b('container') },
34
+ itemTitle && (react_1.default.createElement("h5", { className: b('item-title') },
35
+ react_1.default.createElement(components_1.HTML, null, itemTitle),
36
+ label && (react_1.default.createElement("div", { className: b('item-label') }, label)))),
37
+ react_1.default.createElement(sub_blocks_1.Content, { text: text, links: itemLinks, size: "s", colSizes: { all: 12, md: 12 } }))));
38
+ })))));
39
+ };
26
40
  exports.ExtendedFeaturesBlock = ExtendedFeaturesBlock;
27
41
  exports.default = exports.ExtendedFeaturesBlock;
@@ -35,6 +35,7 @@ unpredictable css rules order in build */
35
35
  flex-direction: column;
36
36
  justify-content: center;
37
37
  border-radius: var(--pc-border-radius);
38
+ overflow: hidden;
38
39
  }
39
40
  .pc-PromoFeaturesBlock__card-info {
40
41
  padding: 32px 32px 0 32px;
@@ -16,7 +16,7 @@ function getArrowSize(size) {
16
16
  case 'l':
17
17
  return 20;
18
18
  case 'm':
19
- return 12;
19
+ return 18;
20
20
  case 's':
21
21
  return 12;
22
22
  default:
@@ -118,8 +118,10 @@ export interface ExtendedFeaturesItem {
118
118
  title?: string;
119
119
  text?: string;
120
120
  label?: string;
121
- icon?: string;
121
+ icon?: ThemedImage;
122
+ /** @deprecated **/
122
123
  link?: LinkProps;
124
+ links?: LinkProps[];
123
125
  }
124
126
  export interface ExtendedFeaturesProps extends Animatable {
125
127
  items: ExtendedFeaturesItem[];
@@ -244,7 +246,7 @@ export interface CardLayoutBlockProps extends Childable, Animatable, LoadableChi
244
246
  }
245
247
  export interface IconsBlockProps {
246
248
  title?: string;
247
- size: 's' | 'm' | 'l';
249
+ size?: 's' | 'm' | 'l';
248
250
  items: {
249
251
  url: string;
250
252
  text: string;
@@ -158,5 +158,8 @@ export declare type HubspotFormModel = {
158
158
  export declare type BannerCardModel = {
159
159
  type: SubBlockType.BannerCard;
160
160
  } & BannerCardProps;
161
- export declare type SubBlockModels = DividerModel | QuoteModel | NewsCardModel | PartnerModel | PriceDetailedModel | MediaCardModel | TutorialCardModel | CardWithImageModel | BackgroundCardModel | HubspotFormModel | BannerCardModel;
161
+ export declare type BasicCardModel = {
162
+ type: SubBlockType.BasicCard;
163
+ } & BasicCardProps;
164
+ export declare type SubBlockModels = DividerModel | QuoteModel | NewsCardModel | PartnerModel | PriceDetailedModel | MediaCardModel | TutorialCardModel | CardWithImageModel | BackgroundCardModel | HubspotFormModel | BannerCardModel | BasicCardModel;
162
165
  export declare type SubBlock = SubBlockModels;
@@ -846,3 +846,9 @@ export declare const MediaProps: {
846
846
  })[];
847
847
  };
848
848
  };
849
+ export declare const CardBase: {
850
+ border: {
851
+ type: string;
852
+ enum: string[];
853
+ };
854
+ };
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MediaProps = exports.ButtonBlock = exports.TitleProps = exports.BlockBaseProps = exports.AnchorProps = exports.withTheme = exports.MenuProps = exports.ButtonProps = exports.authorItem = exports.FileLinkProps = exports.LinkProps = exports.BackgroundProps = exports.DataLensProps = exports.DataLensObjectProps = exports.JustifyProps = exports.ThemeProps = exports.VideoProps = exports.PlayIconProps = exports.LoopProps = exports.ChildrenCardsProps = exports.ChildrenProps = exports.AnimatableProps = exports.sliderSizesObject = exports.containerSizesObject = exports.BaseProps = exports.contentThemes = exports.sizeNumber = exports.dividerEnum = exports.fileLinkTypes = exports.videoControlsTypes = exports.playIconThemes = exports.playIconTypes = exports.videoTypes = exports.contentTextWidth = exports.contentSizes = exports.sliderSizesArray = exports.containerSizesArray = exports.textSize = exports.mediaDirection = void 0;
3
+ exports.CardBase = exports.MediaProps = exports.ButtonBlock = exports.TitleProps = exports.BlockBaseProps = exports.AnchorProps = exports.withTheme = exports.MenuProps = exports.ButtonProps = exports.authorItem = exports.FileLinkProps = exports.LinkProps = exports.BackgroundProps = exports.DataLensProps = exports.DataLensObjectProps = exports.JustifyProps = exports.ThemeProps = exports.VideoProps = exports.PlayIconProps = exports.LoopProps = exports.ChildrenCardsProps = exports.ChildrenProps = exports.AnimatableProps = exports.sliderSizesObject = exports.containerSizesObject = exports.BaseProps = exports.contentThemes = exports.sizeNumber = exports.dividerEnum = exports.fileLinkTypes = exports.videoControlsTypes = exports.playIconThemes = exports.playIconTypes = exports.videoTypes = exports.contentTextWidth = exports.contentSizes = exports.sliderSizesArray = exports.containerSizesArray = exports.textSize = exports.mediaDirection = void 0;
4
4
  const pixel_1 = require("./pixel");
5
5
  const models_1 = require("../../models");
6
6
  const schema_1 = require("../../components/Image/schema");
@@ -431,3 +431,9 @@ exports.MediaProps = {
431
431
  },
432
432
  dataLens: exports.DataLensProps,
433
433
  };
434
+ exports.CardBase = {
435
+ border: {
436
+ type: 'string',
437
+ enum: ['border', 'shadow', 'none'],
438
+ },
439
+ };
@@ -9,7 +9,3 @@ export * from '../../sub-blocks/CardWithImage/schema';
9
9
  export * from '../../sub-blocks/Quote/schema';
10
10
  export * from '../../sub-blocks/Divider/schema';
11
11
  export * from '../../sub-blocks/BasicCard/schema';
12
- /**
13
- * @deprecated Will be removed
14
- */
15
- export * from '../../components/CardBase/schema';
@@ -12,7 +12,3 @@ const tslib_1 = require("tslib");
12
12
  (0, tslib_1.__exportStar)(require("../../sub-blocks/Quote/schema"), exports);
13
13
  (0, tslib_1.__exportStar)(require("../../sub-blocks/Divider/schema"), exports);
14
14
  (0, tslib_1.__exportStar)(require("../../sub-blocks/BasicCard/schema"), exports);
15
- /**
16
- * @deprecated Will be removed
17
- */
18
- (0, tslib_1.__exportStar)(require("../../components/CardBase/schema"), exports);
@@ -3,18 +3,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BackgroundCard = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const common_1 = require("../../schema/validators/common");
6
- const schema_1 = require("../../components/CardBase/schema");
7
- const schema_2 = require("../Content/schema");
8
- const schema_3 = require("../../components/Image/schema");
6
+ const schema_1 = require("../Content/schema");
7
+ const schema_2 = require("../../components/Image/schema");
9
8
  const lodash_1 = (0, tslib_1.__importDefault)(require("lodash"));
10
- const BackgroundCardContentProps = lodash_1.default.omit(schema_2.ContentBase, ['size']);
9
+ const BackgroundCardContentProps = lodash_1.default.omit(schema_1.ContentBase, ['size']);
11
10
  exports.BackgroundCard = {
12
11
  'background-card': {
13
12
  additionalProperties: false,
14
13
  required: ['title', 'text'],
15
- properties: Object.assign(Object.assign(Object.assign(Object.assign({}, common_1.BaseProps), schema_1.CardBase), BackgroundCardContentProps), { url: {
14
+ properties: Object.assign(Object.assign(Object.assign(Object.assign({}, common_1.BaseProps), common_1.CardBase), BackgroundCardContentProps), { url: {
16
15
  type: 'string',
17
- }, background: (0, common_1.withTheme)(schema_3.ImageObjectProps), backgroundColor: {
16
+ }, background: (0, common_1.withTheme)(schema_2.ImageObjectProps), backgroundColor: {
18
17
  type: 'string',
19
18
  }, paddingBottom: {
20
19
  type: 'string',
@@ -4,16 +4,15 @@ exports.BasicCard = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const lodash_1 = (0, tslib_1.__importDefault)(require("lodash"));
6
6
  const common_1 = require("../../schema/validators/common");
7
- const schema_1 = require("../../components/CardBase/schema");
8
- const schema_2 = require("../Content/schema");
9
- const schema_3 = require("../../components/Image/schema");
10
- const BasicCardContentProps = lodash_1.default.omit(schema_2.ContentBase, ['size', 'theme']);
7
+ const schema_1 = require("../Content/schema");
8
+ const schema_2 = require("../../components/Image/schema");
9
+ const BasicCardContentProps = lodash_1.default.omit(schema_1.ContentBase, ['size', 'theme']);
11
10
  exports.BasicCard = {
12
11
  'basic-card': {
13
12
  additionalProperties: false,
14
13
  required: ['url'],
15
- properties: Object.assign(Object.assign(Object.assign(Object.assign({}, common_1.BaseProps), schema_1.CardBase), BasicCardContentProps), { url: {
14
+ properties: Object.assign(Object.assign(Object.assign(Object.assign({}, common_1.BaseProps), common_1.CardBase), BasicCardContentProps), { url: {
16
15
  type: 'string',
17
- }, icon: schema_3.ImageProps }),
16
+ }, icon: schema_2.ImageProps }),
18
17
  },
19
18
  };
@@ -152,10 +152,20 @@ const config = {
152
152
  fields: ['description'],
153
153
  transformer: yfmTransformer,
154
154
  },
155
+ // {
156
+ // fields: ['items'],
157
+ // transformer: typografTransformer,
158
+ // parser: parseFeatures,
159
+ // },
155
160
  {
156
161
  fields: ['items'],
157
162
  transformer: typografTransformer,
158
- parser: parseFeatures,
163
+ parser: (0, exports.createItemsParser)(['title']),
164
+ },
165
+ {
166
+ fields: ['items'],
167
+ transformer: yfmTransformer,
168
+ parser: (0, exports.createItemsParser)(['text', 'additionalInfo']),
159
169
  },
160
170
  ],
161
171
  [models_1.BlockType.PromoFeaturesBlock]: {
@@ -19,8 +19,8 @@ unpredictable css rules order in build */
19
19
  line-height: var(--yc-text-body-2-line-height);
20
20
  }
21
21
  .pc-content-layout-block__files_size_l {
22
- font-size: var(--yc-text-body3-font-size);
23
- line-height: var(--yc-text-body3-line-height);
22
+ font-size: var(--yc-text-body-3-font-size);
23
+ line-height: var(--yc-text-body-3-line-height);
24
24
  }
25
25
  .pc-content-layout-block__files_centered {
26
26
  margin-left: auto;
@@ -74,7 +74,7 @@ unpredictable css rules order in build */
74
74
  height: 32px;
75
75
  background-size: cover;
76
76
  display: block;
77
- margin-bottom: 8px;
77
+ margin-bottom: 12px;
78
78
  }
79
79
  @media (max-width: 577px) {
80
80
  .pc-ExtendedFeaturesBlock__item {
@@ -1,7 +1,11 @@
1
- import React from 'react';
2
- import { block } from '../../utils';
1
+ import React, { useContext } from 'react';
2
+ import { block, getThemedValue } from '../../utils';
3
3
  import { Row, Col } from '../../grid';
4
- import { Link, HTML, AnimateBlock, BlockHeader } from '../../components/';
4
+ import { AnimateBlock, BlockHeader, HTML } from '../../components/';
5
+ import { Content } from '../../sub-blocks';
6
+ import Image from '../../components/Image/Image';
7
+ import { ThemeValueContext } from '../../context/theme/ThemeValueContext';
8
+ import { getMediaImage } from '../../components/Media/Image/utils';
5
9
  import './ExtendedFeatures.css';
6
10
  const b = block('ExtendedFeaturesBlock');
7
11
  const DEFAULT_SIZES = {
@@ -9,15 +13,25 @@ const DEFAULT_SIZES = {
9
13
  sm: 6,
10
14
  md: 4,
11
15
  };
12
- export const ExtendedFeaturesBlock = ({ title, description, items, colSizes = DEFAULT_SIZES, animated, }) => (React.createElement(AnimateBlock, { className: b(), animate: animated },
13
- React.createElement(BlockHeader, { title: title, description: description, className: b('header') }),
14
- React.createElement("div", { className: b('items') },
15
- React.createElement(Row, null, items.map(({ title: itemTitle, text, link, label, icon }) => (React.createElement(Col, { className: b('item'), key: text || itemTitle, sizes: colSizes },
16
- icon && React.createElement("img", { src: icon, className: b('icon') }),
17
- itemTitle && (React.createElement("h5", { className: b('item-title', { 'has-label': Boolean(label) }) },
18
- React.createElement(HTML, null, itemTitle),
19
- label && React.createElement("div", { className: b('item-label') }, label))),
20
- text && (React.createElement("div", { className: b('item-text') },
21
- React.createElement(HTML, null, text))),
22
- link && React.createElement(Link, Object.assign({ className: b('item-link') }, link)))))))));
16
+ export const ExtendedFeaturesBlock = ({ title, description, items, colSizes = DEFAULT_SIZES, animated, }) => {
17
+ const { themeValue: theme } = useContext(ThemeValueContext);
18
+ return (React.createElement(AnimateBlock, { className: b(), animate: animated },
19
+ React.createElement(BlockHeader, { title: title, description: description, className: b('header') }),
20
+ React.createElement("div", { className: b('items') },
21
+ React.createElement(Row, null, items.map(({ title: itemTitle, text, link, links, label, icon }) => {
22
+ const itemLinks = links || [];
23
+ const iconThemed = icon && getThemedValue(icon, theme);
24
+ const iconData = iconThemed && getMediaImage(iconThemed);
25
+ if (link) {
26
+ itemLinks.push(link);
27
+ }
28
+ return (React.createElement(Col, { className: b('item'), key: text || itemTitle, sizes: colSizes },
29
+ iconData && React.createElement(Image, Object.assign({}, iconData, { className: b('icon') })),
30
+ React.createElement("div", { className: b('container') },
31
+ itemTitle && (React.createElement("h5", { className: b('item-title') },
32
+ React.createElement(HTML, null, itemTitle),
33
+ label && (React.createElement("div", { className: b('item-label') }, label)))),
34
+ React.createElement(Content, { text: text, links: itemLinks, size: "s", colSizes: { all: 12, md: 12 } }))));
35
+ })))));
36
+ };
23
37
  export default ExtendedFeaturesBlock;
@@ -35,6 +35,7 @@ unpredictable css rules order in build */
35
35
  flex-direction: column;
36
36
  justify-content: center;
37
37
  border-radius: var(--pc-border-radius);
38
+ overflow: hidden;
38
39
  }
39
40
  .pc-PromoFeaturesBlock__card-info {
40
41
  padding: 32px 32px 0 32px;
@@ -14,7 +14,7 @@ function getArrowSize(size) {
14
14
  case 'l':
15
15
  return 20;
16
16
  case 'm':
17
- return 12;
17
+ return 18;
18
18
  case 's':
19
19
  return 12;
20
20
  default:
@@ -118,8 +118,10 @@ export interface ExtendedFeaturesItem {
118
118
  title?: string;
119
119
  text?: string;
120
120
  label?: string;
121
- icon?: string;
121
+ icon?: ThemedImage;
122
+ /** @deprecated **/
122
123
  link?: LinkProps;
124
+ links?: LinkProps[];
123
125
  }
124
126
  export interface ExtendedFeaturesProps extends Animatable {
125
127
  items: ExtendedFeaturesItem[];
@@ -244,7 +246,7 @@ export interface CardLayoutBlockProps extends Childable, Animatable, LoadableChi
244
246
  }
245
247
  export interface IconsBlockProps {
246
248
  title?: string;
247
- size: 's' | 'm' | 'l';
249
+ size?: 's' | 'm' | 'l';
248
250
  items: {
249
251
  url: string;
250
252
  text: string;
@@ -158,5 +158,8 @@ export declare type HubspotFormModel = {
158
158
  export declare type BannerCardModel = {
159
159
  type: SubBlockType.BannerCard;
160
160
  } & BannerCardProps;
161
- export declare type SubBlockModels = DividerModel | QuoteModel | NewsCardModel | PartnerModel | PriceDetailedModel | MediaCardModel | TutorialCardModel | CardWithImageModel | BackgroundCardModel | HubspotFormModel | BannerCardModel;
161
+ export declare type BasicCardModel = {
162
+ type: SubBlockType.BasicCard;
163
+ } & BasicCardProps;
164
+ export declare type SubBlockModels = DividerModel | QuoteModel | NewsCardModel | PartnerModel | PriceDetailedModel | MediaCardModel | TutorialCardModel | CardWithImageModel | BackgroundCardModel | HubspotFormModel | BannerCardModel | BasicCardModel;
162
165
  export declare type SubBlock = SubBlockModels;
@@ -846,3 +846,9 @@ export declare const MediaProps: {
846
846
  })[];
847
847
  };
848
848
  };
849
+ export declare const CardBase: {
850
+ border: {
851
+ type: string;
852
+ enum: string[];
853
+ };
854
+ };
@@ -427,3 +427,9 @@ export const MediaProps = {
427
427
  },
428
428
  dataLens: DataLensProps,
429
429
  };
430
+ export const CardBase = {
431
+ border: {
432
+ type: 'string',
433
+ enum: ['border', 'shadow', 'none'],
434
+ },
435
+ };
@@ -9,7 +9,3 @@ export * from '../../sub-blocks/CardWithImage/schema';
9
9
  export * from '../../sub-blocks/Quote/schema';
10
10
  export * from '../../sub-blocks/Divider/schema';
11
11
  export * from '../../sub-blocks/BasicCard/schema';
12
- /**
13
- * @deprecated Will be removed
14
- */
15
- export * from '../../components/CardBase/schema';
@@ -9,7 +9,3 @@ export * from '../../sub-blocks/CardWithImage/schema';
9
9
  export * from '../../sub-blocks/Quote/schema';
10
10
  export * from '../../sub-blocks/Divider/schema';
11
11
  export * from '../../sub-blocks/BasicCard/schema';
12
- /**
13
- * @deprecated Will be removed
14
- */
15
- export * from '../../components/CardBase/schema';
@@ -1,5 +1,4 @@
1
- import { BaseProps, withTheme } from '../../schema/validators/common';
2
- import { CardBase } from '../../components/CardBase/schema';
1
+ import { BaseProps, CardBase, withTheme } from '../../schema/validators/common';
3
2
  import { ContentBase } from '../Content/schema';
4
3
  import { ImageObjectProps } from '../../components/Image/schema';
5
4
  import _ from 'lodash';
@@ -1,6 +1,5 @@
1
1
  import _ from 'lodash';
2
- import { BaseProps } from '../../schema/validators/common';
3
- import { CardBase } from '../../components/CardBase/schema';
2
+ import { BaseProps, CardBase } from '../../schema/validators/common';
4
3
  import { ContentBase } from '../Content/schema';
5
4
  import { ImageProps } from '../../components/Image/schema';
6
5
  const BasicCardContentProps = _.omit(ContentBase, ['size', 'theme']);
@@ -146,10 +146,20 @@ const config = {
146
146
  fields: ['description'],
147
147
  transformer: yfmTransformer,
148
148
  },
149
+ // {
150
+ // fields: ['items'],
151
+ // transformer: typografTransformer,
152
+ // parser: parseFeatures,
153
+ // },
149
154
  {
150
155
  fields: ['items'],
151
156
  transformer: typografTransformer,
152
- parser: parseFeatures,
157
+ parser: createItemsParser(['title']),
158
+ },
159
+ {
160
+ fields: ['items'],
161
+ transformer: yfmTransformer,
162
+ parser: createItemsParser(['text', 'additionalInfo']),
153
163
  },
154
164
  ],
155
165
  [BlockType.PromoFeaturesBlock]: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gravity-ui/page-constructor",
3
- "version": "1.5.0-alpha.0",
3
+ "version": "1.6.0-alpha.0",
4
4
  "description": "Gravity UI Page Constructor",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -118,8 +118,10 @@ export interface ExtendedFeaturesItem {
118
118
  title?: string;
119
119
  text?: string;
120
120
  label?: string;
121
- icon?: string;
121
+ icon?: ThemedImage;
122
+ /** @deprecated **/
122
123
  link?: LinkProps;
124
+ links?: LinkProps[];
123
125
  }
124
126
  export interface ExtendedFeaturesProps extends Animatable {
125
127
  items: ExtendedFeaturesItem[];
@@ -244,7 +246,7 @@ export interface CardLayoutBlockProps extends Childable, Animatable, LoadableChi
244
246
  }
245
247
  export interface IconsBlockProps {
246
248
  title?: string;
247
- size: 's' | 'm' | 'l';
249
+ size?: 's' | 'm' | 'l';
248
250
  items: {
249
251
  url: string;
250
252
  text: string;
@@ -158,5 +158,8 @@ export declare type HubspotFormModel = {
158
158
  export declare type BannerCardModel = {
159
159
  type: SubBlockType.BannerCard;
160
160
  } & BannerCardProps;
161
- export declare type SubBlockModels = DividerModel | QuoteModel | NewsCardModel | PartnerModel | PriceDetailedModel | MediaCardModel | TutorialCardModel | CardWithImageModel | BackgroundCardModel | HubspotFormModel | BannerCardModel;
161
+ export declare type BasicCardModel = {
162
+ type: SubBlockType.BasicCard;
163
+ } & BasicCardProps;
164
+ export declare type SubBlockModels = DividerModel | QuoteModel | NewsCardModel | PartnerModel | PriceDetailedModel | MediaCardModel | TutorialCardModel | CardWithImageModel | BackgroundCardModel | HubspotFormModel | BannerCardModel | BasicCardModel;
162
165
  export declare type SubBlock = SubBlockModels;
@@ -165,10 +165,20 @@ const config = {
165
165
  fields: ['description'],
166
166
  transformer: yfmTransformer,
167
167
  },
168
+ // {
169
+ // fields: ['items'],
170
+ // transformer: typografTransformer,
171
+ // parser: parseFeatures,
172
+ // },
168
173
  {
169
174
  fields: ['items'],
170
175
  transformer: typografTransformer,
171
- parser: parseFeatures,
176
+ parser: (0, exports.createItemsParser)(['title']),
177
+ },
178
+ {
179
+ fields: ['items'],
180
+ transformer: yfmTransformer,
181
+ parser: (0, exports.createItemsParser)(['text', 'additionalInfo']),
172
182
  },
173
183
  ],
174
184
  [models_1.BlockType.PromoFeaturesBlock]: {
@@ -1,6 +0,0 @@
1
- export declare const CardBase: {
2
- border: {
3
- type: string;
4
- enum: string[];
5
- };
6
- };
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CardBase = void 0;
4
- exports.CardBase = {
5
- border: {
6
- type: 'string',
7
- enum: ['border', 'shadow', 'none'],
8
- },
9
- };
@@ -1,6 +0,0 @@
1
- export declare const CardBase: {
2
- border: {
3
- type: string;
4
- enum: string[];
5
- };
6
- };
@@ -1,6 +0,0 @@
1
- export const CardBase = {
2
- border: {
3
- type: 'string',
4
- enum: ['border', 'shadow', 'none'],
5
- },
6
- };