@cloud-ru/uikit-product-site-article 0.2.2 → 0.2.3
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/CHANGELOG.md +11 -0
- package/dist/cjs/components/ArticleLinks/ArticleLinks.d.ts +11 -0
- package/dist/cjs/components/ArticleLinks/ArticleLinks.js +28 -0
- package/dist/cjs/components/ArticleLinks/index.d.ts +1 -0
- package/dist/cjs/components/ArticleLinks/index.js +17 -0
- package/dist/cjs/components/ArticleLinks/styles.module.css +32 -0
- package/dist/cjs/components/ArticleRichText/ArticleRichText.d.ts +5 -0
- package/dist/cjs/components/ArticleRichText/ArticleRichText.js +13 -0
- package/dist/cjs/components/ArticleRichText/index.d.ts +1 -0
- package/dist/cjs/components/ArticleRichText/index.js +17 -0
- package/dist/cjs/components/ArticleRichText/styles.module.css +36 -0
- package/dist/cjs/components/ArticleTypography/ArticleTypography.d.ts +13 -0
- package/dist/cjs/components/ArticleTypography/ArticleTypography.js +17 -0
- package/dist/cjs/components/ArticleTypography/index.d.ts +1 -0
- package/dist/cjs/components/ArticleTypography/index.js +17 -0
- package/dist/cjs/components/ArticleTypography/styles.module.css +32 -0
- package/dist/cjs/components/DropdownShare/DropdownShare.d.ts +16 -0
- package/dist/cjs/components/DropdownShare/DropdownShare.js +43 -0
- package/dist/cjs/components/DropdownShare/index.d.ts +1 -0
- package/dist/cjs/components/DropdownShare/index.js +17 -0
- package/dist/cjs/components/FooterArticle/FooterArticle.d.ts +7 -0
- package/dist/cjs/components/FooterArticle/FooterArticle.js +15 -0
- package/dist/cjs/components/FooterArticle/index.d.ts +1 -0
- package/dist/cjs/components/FooterArticle/index.js +17 -0
- package/dist/cjs/components/FooterArticle/styles.module.css +10 -0
- package/dist/cjs/components/Highlight/Highlight.d.ts +5 -0
- package/dist/cjs/components/Highlight/Highlight.js +13 -0
- package/dist/cjs/components/Highlight/index.d.ts +1 -0
- package/dist/cjs/components/Highlight/index.js +17 -0
- package/dist/cjs/components/Highlight/styles.module.css +6 -0
- package/dist/cjs/components/ImageArticle/ImageArticle.d.ts +8 -0
- package/dist/cjs/components/ImageArticle/ImageArticle.js +14 -0
- package/dist/cjs/components/ImageArticle/index.d.ts +1 -0
- package/dist/cjs/components/ImageArticle/index.js +17 -0
- package/dist/cjs/components/ImageArticle/styles.module.css +10 -0
- package/dist/cjs/components/Products/Products.d.ts +13 -0
- package/dist/cjs/components/Products/Products.js +14 -0
- package/dist/cjs/components/Products/helperComponents/ServiceLight/ServiceLight.d.ts +4 -0
- package/dist/cjs/components/Products/helperComponents/ServiceLight/ServiceLight.js +13 -0
- package/dist/cjs/components/Products/helperComponents/ServiceLight/index.d.ts +1 -0
- package/dist/cjs/components/Products/helperComponents/ServiceLight/index.js +17 -0
- package/dist/cjs/components/Products/helperComponents/ServiceLight/styles.module.css +9 -0
- package/dist/cjs/components/Products/helperComponents/index.d.ts +1 -0
- package/dist/cjs/components/Products/helperComponents/index.js +17 -0
- package/dist/cjs/components/Products/index.d.ts +1 -0
- package/dist/cjs/components/Products/index.js +17 -0
- package/dist/cjs/components/Products/styles.module.css +29 -0
- package/dist/cjs/components/Quote/Quote.d.ts +8 -0
- package/dist/cjs/components/Quote/Quote.js +30 -0
- package/dist/cjs/components/Quote/QuotesSVG.d.ts +3 -0
- package/dist/cjs/components/Quote/QuotesSVG.js +7 -0
- package/dist/cjs/components/Quote/index.d.ts +1 -0
- package/dist/cjs/components/Quote/index.js +17 -0
- package/dist/cjs/components/Quote/styles.module.css +51 -0
- package/dist/cjs/components/index.d.ts +9 -0
- package/dist/cjs/components/index.js +25 -0
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.js +17 -0
- package/dist/esm/components/ArticleLinks/ArticleLinks.d.ts +11 -0
- package/dist/esm/components/ArticleLinks/ArticleLinks.js +22 -0
- package/dist/esm/components/ArticleLinks/index.d.ts +1 -0
- package/dist/esm/components/ArticleLinks/index.js +1 -0
- package/dist/esm/components/ArticleLinks/styles.module.css +32 -0
- package/dist/esm/components/ArticleRichText/ArticleRichText.d.ts +5 -0
- package/dist/esm/components/ArticleRichText/ArticleRichText.js +7 -0
- package/dist/esm/components/ArticleRichText/index.d.ts +1 -0
- package/dist/esm/components/ArticleRichText/index.js +1 -0
- package/dist/esm/components/ArticleRichText/styles.module.css +36 -0
- package/dist/esm/components/ArticleTypography/ArticleTypography.d.ts +13 -0
- package/dist/esm/components/ArticleTypography/ArticleTypography.js +11 -0
- package/dist/esm/components/ArticleTypography/index.d.ts +1 -0
- package/dist/esm/components/ArticleTypography/index.js +1 -0
- package/dist/esm/components/ArticleTypography/styles.module.css +32 -0
- package/dist/esm/components/DropdownShare/DropdownShare.d.ts +16 -0
- package/dist/esm/components/DropdownShare/DropdownShare.js +40 -0
- package/dist/esm/components/DropdownShare/index.d.ts +1 -0
- package/dist/esm/components/DropdownShare/index.js +1 -0
- package/dist/esm/components/FooterArticle/FooterArticle.d.ts +7 -0
- package/dist/esm/components/FooterArticle/FooterArticle.js +9 -0
- package/dist/esm/components/FooterArticle/index.d.ts +1 -0
- package/dist/esm/components/FooterArticle/index.js +1 -0
- package/dist/esm/components/FooterArticle/styles.module.css +10 -0
- package/dist/esm/components/Highlight/Highlight.d.ts +5 -0
- package/dist/esm/components/Highlight/Highlight.js +7 -0
- package/dist/esm/components/Highlight/index.d.ts +1 -0
- package/dist/esm/components/Highlight/index.js +1 -0
- package/dist/esm/components/Highlight/styles.module.css +6 -0
- package/dist/esm/components/ImageArticle/ImageArticle.d.ts +8 -0
- package/dist/esm/components/ImageArticle/ImageArticle.js +8 -0
- package/dist/esm/components/ImageArticle/index.d.ts +1 -0
- package/dist/esm/components/ImageArticle/index.js +1 -0
- package/dist/esm/components/ImageArticle/styles.module.css +10 -0
- package/dist/esm/components/Products/Products.d.ts +13 -0
- package/dist/esm/components/Products/Products.js +8 -0
- package/dist/esm/components/Products/helperComponents/ServiceLight/ServiceLight.d.ts +4 -0
- package/dist/esm/components/Products/helperComponents/ServiceLight/ServiceLight.js +7 -0
- package/dist/esm/components/Products/helperComponents/ServiceLight/index.d.ts +1 -0
- package/dist/esm/components/Products/helperComponents/ServiceLight/index.js +1 -0
- package/dist/esm/components/Products/helperComponents/ServiceLight/styles.module.css +9 -0
- package/dist/esm/components/Products/helperComponents/index.d.ts +1 -0
- package/dist/esm/components/Products/helperComponents/index.js +1 -0
- package/dist/esm/components/Products/index.d.ts +1 -0
- package/dist/esm/components/Products/index.js +1 -0
- package/dist/esm/components/Products/styles.module.css +29 -0
- package/dist/esm/components/Quote/Quote.d.ts +8 -0
- package/dist/esm/components/Quote/Quote.js +24 -0
- package/dist/esm/components/Quote/QuotesSVG.d.ts +3 -0
- package/dist/esm/components/Quote/QuotesSVG.js +4 -0
- package/dist/esm/components/Quote/index.d.ts +1 -0
- package/dist/esm/components/Quote/index.js +1 -0
- package/dist/esm/components/Quote/styles.module.css +51 -0
- package/dist/esm/components/index.d.ts +9 -0
- package/dist/esm/components/index.js +9 -0
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js +1 -0
- package/package.json +3 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## 0.2.3 (2025-11-12)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **PD-3377:** contributors update to publish all packages ([719fd3e](https://gitverse.ru/cloud-ru-tech/uikit-product/commits/719fd3e1249e247443b125c47ea408d92c8395c3))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
## 0.2.2 (2025-11-12)
|
|
7
18
|
|
|
8
19
|
### Only dependencies have been changed
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { MouseEvent } from 'react';
|
|
2
|
+
import { WithLayoutType } from '@sbercloud/uikit-product-utils';
|
|
3
|
+
export type ArticleLink = {
|
|
4
|
+
id: string;
|
|
5
|
+
text: string;
|
|
6
|
+
onClick?: (e: MouseEvent<HTMLAnchorElement>) => void;
|
|
7
|
+
};
|
|
8
|
+
export type ArticleLinksProps = WithLayoutType<{
|
|
9
|
+
links: ArticleLink[];
|
|
10
|
+
}>;
|
|
11
|
+
export declare function ArticleLinks(props: ArticleLinksProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ArticleLinks = ArticleLinks;
|
|
7
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
+
const react_1 = require("react");
|
|
9
|
+
const typography_1 = require("@snack-uikit/typography");
|
|
10
|
+
const styles_module_scss_1 = __importDefault(require('./styles.module.css'));
|
|
11
|
+
function ArticleLinks(props) {
|
|
12
|
+
const { layoutType, links } = props;
|
|
13
|
+
const typographyProps = (0, react_1.useMemo)(() => {
|
|
14
|
+
if (layoutType === 'mobile') {
|
|
15
|
+
return {
|
|
16
|
+
family: 'sans',
|
|
17
|
+
purpose: 'title',
|
|
18
|
+
size: 'm',
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
return {
|
|
22
|
+
family: 'sans',
|
|
23
|
+
purpose: 'title',
|
|
24
|
+
size: 'l',
|
|
25
|
+
};
|
|
26
|
+
}, [layoutType]);
|
|
27
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.articleLinks, children: [(0, jsx_runtime_1.jsx)(typography_1.Typography, Object.assign({ className: styles_module_scss_1.default.title }, typographyProps, { tag: 'div', children: "\u0421\u043E\u0434\u0435\u0440\u0436\u0430\u043D\u0438\u0435" })), (0, jsx_runtime_1.jsx)("ul", { className: styles_module_scss_1.default.list, "data-test-id": 'article-links', children: links.map(link => ((0, jsx_runtime_1.jsx)("li", { className: styles_module_scss_1.default.listItem, children: (0, jsx_runtime_1.jsx)("a", { className: styles_module_scss_1.default.link, href: `#${link.id}`, onClick: e => { var _a; return (_a = link.onClick) === null || _a === void 0 ? void 0 : _a.call(link, e); }, children: (0, jsx_runtime_1.jsx)(typography_1.Typography.SansBodyL, { children: link.text }) }) }, link.id))) })] }));
|
|
28
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './ArticleLinks';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./ArticleLinks"), exports);
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
.articleLinks{
|
|
2
|
+
box-sizing:border-box;
|
|
3
|
+
padding:24px;
|
|
4
|
+
border:var(--border-width-general-xs, 1px) var(--border-styles-solid, solid) var(--sys-neutral-decor-default, #dde0ea);
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.title{
|
|
8
|
+
color:var(--sys-neutral-text-main, #41424e);
|
|
9
|
+
margin-bottom:16px;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.list{
|
|
13
|
+
margin:0;
|
|
14
|
+
padding:0 0 0 20px;
|
|
15
|
+
display:flex;
|
|
16
|
+
flex-direction:column;
|
|
17
|
+
gap:16px;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.link{
|
|
21
|
+
color:var(--sys-primary-text-light, #0ea55b);
|
|
22
|
+
text-decoration:none;
|
|
23
|
+
}
|
|
24
|
+
.link:hover{
|
|
25
|
+
text-decoration-line:underline;
|
|
26
|
+
text-decoration-style:solid;
|
|
27
|
+
-webkit-text-decoration-skip:ink;
|
|
28
|
+
text-decoration-skip-ink:auto;
|
|
29
|
+
text-decoration-thickness:auto;
|
|
30
|
+
text-underline-offset:auto;
|
|
31
|
+
text-underline-position:from-font;
|
|
32
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ArticleRichText = ArticleRichText;
|
|
7
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
+
const ArticleTypography_1 = require("../ArticleTypography");
|
|
9
|
+
const styles_module_scss_1 = __importDefault(require('./styles.module.css'));
|
|
10
|
+
function ArticleRichText(props) {
|
|
11
|
+
const { layoutType, richText } = props;
|
|
12
|
+
return ((0, jsx_runtime_1.jsx)(ArticleTypography_1.ArticleTypography, { layoutType: layoutType, tag: 'div', type: 'body', children: (0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.richText, dangerouslySetInnerHTML: { __html: richText } }) }));
|
|
13
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './ArticleRichText';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./ArticleRichText"), exports);
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
.richText{
|
|
2
|
+
display:flex;
|
|
3
|
+
flex-direction:column;
|
|
4
|
+
gap:24px;
|
|
5
|
+
}
|
|
6
|
+
.richText *{
|
|
7
|
+
color:var(--sys-neutral-text-main, #41424e);
|
|
8
|
+
}
|
|
9
|
+
.richText p{
|
|
10
|
+
margin:0;
|
|
11
|
+
}
|
|
12
|
+
.richText p:has(br){
|
|
13
|
+
line-height:24px;
|
|
14
|
+
}
|
|
15
|
+
.richText b,
|
|
16
|
+
.richText strong{
|
|
17
|
+
font-weight:600;
|
|
18
|
+
}
|
|
19
|
+
.richText a{
|
|
20
|
+
color:var(--sys-primary-text-light, #0ea55b);
|
|
21
|
+
text-decoration:none;
|
|
22
|
+
}
|
|
23
|
+
.richText a:hover{
|
|
24
|
+
text-decoration-line:underline;
|
|
25
|
+
text-decoration-style:solid;
|
|
26
|
+
-webkit-text-decoration-skip:ink;
|
|
27
|
+
text-decoration-skip-ink:auto;
|
|
28
|
+
text-decoration-thickness:auto;
|
|
29
|
+
text-underline-offset:auto;
|
|
30
|
+
text-underline-position:from-font;
|
|
31
|
+
}
|
|
32
|
+
.richText ul,
|
|
33
|
+
.richText ol{
|
|
34
|
+
margin:0;
|
|
35
|
+
padding:0 0 0 20px;
|
|
36
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { WithLayoutType } from '@sbercloud/uikit-product-utils';
|
|
3
|
+
export type ArticleTypographyProps = WithLayoutType<{
|
|
4
|
+
className?: string;
|
|
5
|
+
tag: 'span' | 'div' | 'p';
|
|
6
|
+
type: 'body' | 'bodyBold' | 'bodyLink';
|
|
7
|
+
children: ReactNode;
|
|
8
|
+
}>;
|
|
9
|
+
export declare function ArticleTypography(props: ArticleTypographyProps): import("react").DetailedReactHTMLElement<{
|
|
10
|
+
className: string;
|
|
11
|
+
'data-layout-type': import("@sbercloud/uikit-product-utils").LayoutType;
|
|
12
|
+
'data-type': "body" | "bodyBold" | "bodyLink";
|
|
13
|
+
}, HTMLElement>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ArticleTypography = ArticleTypography;
|
|
7
|
+
const classnames_1 = __importDefault(require("classnames"));
|
|
8
|
+
const react_1 = require("react");
|
|
9
|
+
const styles_module_scss_1 = __importDefault(require('./styles.module.css'));
|
|
10
|
+
function ArticleTypography(props) {
|
|
11
|
+
const { tag, className, layoutType, type, children } = props;
|
|
12
|
+
return (0, react_1.createElement)(tag, {
|
|
13
|
+
className: (0, classnames_1.default)(styles_module_scss_1.default.typography, className),
|
|
14
|
+
'data-layout-type': layoutType,
|
|
15
|
+
'data-type': type,
|
|
16
|
+
}, children);
|
|
17
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './ArticleTypography';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./ArticleTypography"), exports);
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
.typography{
|
|
2
|
+
box-sizing:border-box;
|
|
3
|
+
max-width:100%;
|
|
4
|
+
margin:0;
|
|
5
|
+
padding:0;
|
|
6
|
+
overflow-wrap:break-word;
|
|
7
|
+
font-family:"SB Sans Text";
|
|
8
|
+
font-size:18px;
|
|
9
|
+
font-style:normal;
|
|
10
|
+
font-weight:400;
|
|
11
|
+
line-height:26px;
|
|
12
|
+
}
|
|
13
|
+
.typography[data-type=bodyBold]{
|
|
14
|
+
font-weight:600;
|
|
15
|
+
}
|
|
16
|
+
.typography[data-type=bodyLink]{
|
|
17
|
+
color:var(--sys-primary-text-light, #0ea55b);
|
|
18
|
+
text-decoration:none;
|
|
19
|
+
}
|
|
20
|
+
.typography[data-type=bodyLink]:hover{
|
|
21
|
+
text-decoration-line:underline;
|
|
22
|
+
text-decoration-style:solid;
|
|
23
|
+
-webkit-text-decoration-skip:ink;
|
|
24
|
+
text-decoration-skip-ink:auto;
|
|
25
|
+
text-decoration-thickness:auto;
|
|
26
|
+
text-underline-offset:auto;
|
|
27
|
+
text-underline-position:from-font;
|
|
28
|
+
}
|
|
29
|
+
.typography[data-layout-type=mobile]{
|
|
30
|
+
font-size:16px;
|
|
31
|
+
line-height:24px;
|
|
32
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ValueOf } from '@snack-uikit/utils';
|
|
2
|
+
declare const SHARE_OPTIONS_TYPE: {
|
|
3
|
+
Telegram: string;
|
|
4
|
+
VK: string;
|
|
5
|
+
Copy: string;
|
|
6
|
+
};
|
|
7
|
+
export type DropdownShareOption = {
|
|
8
|
+
type: ValueOf<typeof SHARE_OPTIONS_TYPE>;
|
|
9
|
+
onClick: () => void;
|
|
10
|
+
};
|
|
11
|
+
export type DropdownShareProps = {
|
|
12
|
+
hideLabel?: boolean;
|
|
13
|
+
options: DropdownShareOption[];
|
|
14
|
+
};
|
|
15
|
+
export declare function DropdownShare(props: DropdownShareProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DropdownShare = DropdownShare;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const uikit_product_icons_1 = require("@sbercloud/uikit-product-icons");
|
|
6
|
+
const button_1 = require("@snack-uikit/button");
|
|
7
|
+
const list_1 = require("@snack-uikit/list");
|
|
8
|
+
const SHARE_OPTIONS_TYPE = {
|
|
9
|
+
Telegram: 'telegram',
|
|
10
|
+
VK: 'vk',
|
|
11
|
+
Copy: 'copy',
|
|
12
|
+
};
|
|
13
|
+
function DropdownShare(props) {
|
|
14
|
+
const { hideLabel, options } = props;
|
|
15
|
+
const items = options.map(({ type, onClick }) => {
|
|
16
|
+
switch (type) {
|
|
17
|
+
case SHARE_OPTIONS_TYPE.Telegram:
|
|
18
|
+
return {
|
|
19
|
+
id: 'telegram',
|
|
20
|
+
content: { option: 'Telegram' },
|
|
21
|
+
beforeContent: (0, jsx_runtime_1.jsx)(uikit_product_icons_1.TelegramSVG, {}),
|
|
22
|
+
onClick,
|
|
23
|
+
};
|
|
24
|
+
case SHARE_OPTIONS_TYPE.VK:
|
|
25
|
+
return {
|
|
26
|
+
id: 'vk',
|
|
27
|
+
content: { option: 'VK' },
|
|
28
|
+
beforeContent: (0, jsx_runtime_1.jsx)(uikit_product_icons_1.VkSVG, {}),
|
|
29
|
+
onClick,
|
|
30
|
+
};
|
|
31
|
+
case SHARE_OPTIONS_TYPE.Copy:
|
|
32
|
+
return {
|
|
33
|
+
id: 'copy',
|
|
34
|
+
content: { option: 'Копировать ссылку' },
|
|
35
|
+
beforeContent: (0, jsx_runtime_1.jsx)(uikit_product_icons_1.LinkSVG, {}),
|
|
36
|
+
onClick,
|
|
37
|
+
};
|
|
38
|
+
default:
|
|
39
|
+
return {};
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
return ((0, jsx_runtime_1.jsx)(list_1.Droplist, { items: items, size: 'l', closeDroplistOnItemClick: true, children: (0, jsx_runtime_1.jsx)(button_1.ButtonFunction, { size: 'm', label: !hideLabel ? 'Поделиться' : undefined, icon: (0, jsx_runtime_1.jsx)(uikit_product_icons_1.ShareSVG, {}), "data-test-id": 'dropdown-share-button' }) }));
|
|
43
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './DropdownShare';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./DropdownShare"), exports);
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { WithLayoutType } from '@sbercloud/uikit-product-utils';
|
|
2
|
+
import { DropdownShareOption } from '../DropdownShare';
|
|
3
|
+
export type FooterArticleProps = WithLayoutType<{
|
|
4
|
+
releaseDate: string;
|
|
5
|
+
dropdownOptions: DropdownShareOption[];
|
|
6
|
+
}>;
|
|
7
|
+
export declare function FooterArticle(props: FooterArticleProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.FooterArticle = FooterArticle;
|
|
7
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
+
const typography_1 = require("@snack-uikit/typography");
|
|
9
|
+
const DropdownShare_1 = require("../DropdownShare");
|
|
10
|
+
const styles_module_scss_1 = __importDefault(require('./styles.module.css'));
|
|
11
|
+
function FooterArticle(props) {
|
|
12
|
+
const { layoutType, releaseDate, dropdownOptions } = props;
|
|
13
|
+
const isMobile = layoutType === 'mobile';
|
|
14
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.footerArticle, "data-test-id": 'footer-article', children: [(0, jsx_runtime_1.jsx)(typography_1.Typography.SansBodyL, { className: styles_module_scss_1.default.releaseDate, children: releaseDate }), (0, jsx_runtime_1.jsx)(DropdownShare_1.DropdownShare, { hideLabel: isMobile, options: dropdownOptions })] }));
|
|
15
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './FooterArticle';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./FooterArticle"), exports);
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Highlight = Highlight;
|
|
7
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
+
const ArticleRichText_1 = require("../ArticleRichText");
|
|
9
|
+
const styles_module_scss_1 = __importDefault(require('./styles.module.css'));
|
|
10
|
+
function Highlight(props) {
|
|
11
|
+
const { layoutType, richText } = props;
|
|
12
|
+
return ((0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.highlight, "data-test-id": 'highlight', children: (0, jsx_runtime_1.jsx)(ArticleRichText_1.ArticleRichText, { layoutType: layoutType, richText: richText }) }));
|
|
13
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './Highlight';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./Highlight"), exports);
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ImageArticle = ImageArticle;
|
|
7
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
+
const typography_1 = require("@snack-uikit/typography");
|
|
9
|
+
const styles_module_scss_1 = __importDefault(require('./styles.module.css'));
|
|
10
|
+
const IMG_ALT = 'Blog image';
|
|
11
|
+
function ImageArticle(props) {
|
|
12
|
+
const { image, description } = props;
|
|
13
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.imageArticle, "data-test-id": 'image-article', children: [(0, jsx_runtime_1.jsx)("img", { src: image.src, alt: image.alt || IMG_ALT }), (0, jsx_runtime_1.jsx)(typography_1.Typography.SansBodyL, { className: styles_module_scss_1.default.description, children: description })] }));
|
|
14
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './ImageArticle';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./ImageArticle"), exports);
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { MouseEvent } from 'react';
|
|
2
|
+
import { WithLayoutType } from '@sbercloud/uikit-product-utils';
|
|
3
|
+
export type ArticleProduct = {
|
|
4
|
+
name: string;
|
|
5
|
+
icon: string;
|
|
6
|
+
href: string;
|
|
7
|
+
onClick?: (e: MouseEvent<HTMLAnchorElement>) => void;
|
|
8
|
+
};
|
|
9
|
+
export type ProductsProps = WithLayoutType<{
|
|
10
|
+
products?: ArticleProduct[];
|
|
11
|
+
solutions?: ArticleProduct[];
|
|
12
|
+
}>;
|
|
13
|
+
export declare function Products(props: ProductsProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Products = Products;
|
|
7
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
+
const typography_1 = require("@snack-uikit/typography");
|
|
9
|
+
const helperComponents_1 = require("./helperComponents");
|
|
10
|
+
const styles_module_scss_1 = __importDefault(require('./styles.module.css'));
|
|
11
|
+
function Products(props) {
|
|
12
|
+
const { layoutType, products, solutions } = props;
|
|
13
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.products, "data-layout-type": layoutType, children: [(products === null || products === void 0 ? void 0 : products.length) && products.length > 0 && ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(typography_1.Typography.SansTitleM, { className: styles_module_scss_1.default.label, tag: 'span', children: "\u041F\u043E\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u043D\u044B\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044B:" }), (0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.tags, "data-layout-type": layoutType, "data-test-id": 'article-products', children: products.map(item => ((0, jsx_runtime_1.jsx)(helperComponents_1.ServiceLight, Object.assign({}, item), item.name))) })] })), (solutions === null || solutions === void 0 ? void 0 : solutions.length) && solutions.length > 0 && ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(typography_1.Typography.SansTitleM, { className: styles_module_scss_1.default.label, tag: 'span', children: "\u0420\u0435\u0448\u0435\u043D\u0438\u044F:" }), (0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.tags, "data-layout-type": layoutType, "data-test-id": 'article-solutions', children: solutions.map(item => ((0, jsx_runtime_1.jsx)(helperComponents_1.ServiceLight, Object.assign({}, item), item.name))) })] }))] }));
|
|
14
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ServiceLight = ServiceLight;
|
|
7
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
+
const typography_1 = require("@snack-uikit/typography");
|
|
9
|
+
const styles_module_scss_1 = __importDefault(require('./styles.module.css'));
|
|
10
|
+
function ServiceLight(props) {
|
|
11
|
+
const { icon, name, href, onClick } = props;
|
|
12
|
+
return ((0, jsx_runtime_1.jsxs)("a", { className: styles_module_scss_1.default.serviceLight, href: href, onClick: onClick, children: [(0, jsx_runtime_1.jsx)("img", { src: icon, alt: `Иконка-${name}`, width: 24, height: 24 }), (0, jsx_runtime_1.jsx)(typography_1.Typography.SansBodyM, { children: name })] }));
|
|
13
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './ServiceLight';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./ServiceLight"), exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './ServiceLight';
|