@cloud-ru/uikit-product-site-section 0.25.5 → 0.27.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/CHANGELOG.md +22 -0
- package/dist/cjs/components/SectionAccordion/styles.module.css +1 -1
- package/dist/cjs/components/SectionBasic/styles.module.css +1 -3
- package/dist/cjs/components/SectionBenefits/SectionBenefits.js +1 -1
- package/dist/cjs/components/SectionCaseCarousel/SectionCaseCarousel.js +1 -1
- package/dist/cjs/components/SectionCatalog/SectionCatalog.js +1 -1
- package/dist/cjs/components/SectionClientsCarousel/SectionClientsCarousel.js +1 -1
- package/dist/cjs/components/SectionContent/styles.module.css +2 -0
- package/dist/cjs/components/SectionContentTabs/styles.module.css +3 -1
- package/dist/cjs/components/SectionExpertsCarousel/SectionExpertsCarousel.js +1 -1
- package/dist/cjs/components/SectionLeading/SectionLeading.js +1 -1
- package/dist/cjs/components/SectionMarketplaceCarousel/SectionMarketplaceCarousel.js +1 -1
- package/dist/cjs/components/SectionMedia/styles.module.css +2 -0
- package/dist/cjs/components/SectionPersonalManager/styles.module.css +4 -3
- package/dist/cjs/components/SectionPromoList/styles.module.css +6 -1
- package/dist/cjs/helperComponents/CardLeading/styles.module.css +1 -0
- package/dist/cjs/helperComponents/Expert/styles.module.css +1 -0
- package/dist/esm/components/SectionAccordion/styles.module.css +1 -1
- package/dist/esm/components/SectionBasic/styles.module.css +1 -3
- package/dist/esm/components/SectionBenefits/SectionBenefits.js +1 -1
- package/dist/esm/components/SectionCaseCarousel/SectionCaseCarousel.js +1 -1
- package/dist/esm/components/SectionCatalog/SectionCatalog.js +1 -1
- package/dist/esm/components/SectionClientsCarousel/SectionClientsCarousel.js +1 -1
- package/dist/esm/components/SectionContent/styles.module.css +2 -0
- package/dist/esm/components/SectionContentTabs/styles.module.css +3 -1
- package/dist/esm/components/SectionExpertsCarousel/SectionExpertsCarousel.js +1 -1
- package/dist/esm/components/SectionLeading/SectionLeading.js +1 -1
- package/dist/esm/components/SectionMarketplaceCarousel/SectionMarketplaceCarousel.js +1 -1
- package/dist/esm/components/SectionMedia/styles.module.css +2 -0
- package/dist/esm/components/SectionPersonalManager/styles.module.css +4 -3
- package/dist/esm/components/SectionPromoList/styles.module.css +6 -1
- package/dist/esm/helperComponents/CardLeading/styles.module.css +1 -0
- package/dist/esm/helperComponents/Expert/styles.module.css +1 -0
- package/package.json +4 -4
- package/src/components/SectionAccordion/styles.module.scss +2 -1
- package/src/components/SectionBasic/styles.module.scss +1 -3
- package/src/components/SectionBenefits/SectionBenefits.tsx +1 -1
- package/src/components/SectionCaseCarousel/SectionCaseCarousel.tsx +1 -1
- package/src/components/SectionCatalog/SectionCatalog.tsx +1 -1
- package/src/components/SectionClientsCarousel/SectionClientsCarousel.tsx +1 -1
- package/src/components/SectionContent/styles.module.scss +3 -1
- package/src/components/SectionContentTabs/styles.module.scss +3 -1
- package/src/components/SectionExpertsCarousel/SectionExpertsCarousel.tsx +1 -1
- package/src/components/SectionLeading/SectionLeading.tsx +1 -0
- package/src/components/SectionMarketplaceCarousel/SectionMarketplaceCarousel.tsx +1 -1
- package/src/components/SectionMedia/styles.module.scss +2 -0
- package/src/components/SectionPersonalManager/styles.module.scss +5 -4
- package/src/components/SectionPromoList/styles.module.scss +8 -2
- package/src/helperComponents/CardLeading/styles.module.scss +1 -0
- package/src/helperComponents/Expert/styles.module.scss +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,28 @@
|
|
|
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.27.0 (2025-12-24)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* **SITE-10441:** add border radius & fix padding bottom ([786639b](https://gitverse.ru/cloud-ru-tech/uikit-product/commits/786639b497ad7de71551f6dbbaab1b5b81facb85))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
# 0.26.0 (2025-12-18)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Features
|
|
21
|
+
|
|
22
|
+
* **SITE-10338:** update gap site components ([9afded2](https://gitverse.ru/cloud-ru-tech/uikit-product/commits/9afded24fb470672c8f92be51ecb3fa147ba7bf1))
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
6
28
|
## 0.25.5 (2025-12-17)
|
|
7
29
|
|
|
8
30
|
### Only dependencies have been changed
|
|
@@ -44,15 +44,13 @@
|
|
|
44
44
|
.sectionFilters{
|
|
45
45
|
display:grid;
|
|
46
46
|
grid-template-columns:repeat(3, 1fr);
|
|
47
|
-
gap:var(--dimension-
|
|
47
|
+
gap:var(--dimension-1m, 8px);
|
|
48
48
|
}
|
|
49
49
|
.sectionFilters[data-layout-type=tablet]{
|
|
50
50
|
grid-template-columns:repeat(2, 1fr);
|
|
51
|
-
gap:var(--dimension-2m, 16px);
|
|
52
51
|
}
|
|
53
52
|
.sectionFilters[data-layout-type=mobile]{
|
|
54
53
|
grid-template-columns:repeat(1, 1fr);
|
|
55
|
-
gap:var(--dimension-3m, 24px);
|
|
56
54
|
}
|
|
57
55
|
|
|
58
56
|
.footer{
|
|
@@ -34,7 +34,7 @@ function SectionBenefits(_a) {
|
|
|
34
34
|
(_a = tab.onClick) === null || _a === void 0 ? void 0 : _a.call(tab, e);
|
|
35
35
|
} }))), [tabBarItems]);
|
|
36
36
|
const outline = rest.outline;
|
|
37
|
-
const gap = type === 'basic' ? 'l' : '
|
|
37
|
+
const gap = type === 'basic' ? 'l' : 'xs';
|
|
38
38
|
const backgroundColorSection = type === 'basic' || outline ? 'neutral-background1-level' : 'neutral-background';
|
|
39
39
|
return ((0, jsx_runtime_1.jsxs)(SectionBasic_1.SectionBasic, Object.assign({ id: id, title: title, titleTag: titleTag, subtitle: subtitle, subtitleTag: subtitleTag, description: description, layoutType: layoutType, backgroundColor: backgroundColor || backgroundColorSection, tabBarItems: tabs }, (0, uikit_product_utils_1.extractSupportProps)(rest), { children: [!tabBarItems && ((0, jsx_runtime_1.jsxs)(uikit_product_site_grid_1.Grid, { layoutType: layoutType, columnsConfig: columnsConfig, gap: gap, children: [type === 'info' &&
|
|
40
40
|
content.map((item, index) => (0, jsx_runtime_1.jsx)(uikit_product_site_cards_1.CardInfo, Object.assign({}, item, { outline: outline, layoutType: layoutType }), index)), type === 'numeric' &&
|
|
@@ -20,5 +20,5 @@ const utils_1 = require("./utils");
|
|
|
20
20
|
function SectionCaseCarousel(_a) {
|
|
21
21
|
var { items, layoutType } = _a, props = __rest(_a, ["items", "layoutType"]);
|
|
22
22
|
const carouselProps = (0, react_1.useMemo)(() => (0, utils_1.getCarouselProps)(layoutType), [layoutType]);
|
|
23
|
-
return ((0, jsx_runtime_1.jsx)(helperComponents_1.SectionCarousel, Object.assign({}, props, carouselProps, { layoutType: layoutType, children: items.map(item => ((0, jsx_runtime_1.jsx)(uikit_product_site_case_card_1.CaseCard, Object.assign({}, item, { layoutType: layoutType }), item.description))) })));
|
|
23
|
+
return ((0, jsx_runtime_1.jsx)(helperComponents_1.SectionCarousel, Object.assign({}, props, carouselProps, { layoutType: layoutType, gap: '2px', children: items.map(item => ((0, jsx_runtime_1.jsx)(uikit_product_site_case_card_1.CaseCard, Object.assign({}, item, { layoutType: layoutType }), item.description))) })));
|
|
24
24
|
}
|
|
@@ -31,5 +31,5 @@ function SectionCatalog(_a) {
|
|
|
31
31
|
const [selectedCategory, setSelectedCategory] = (0, uncontrollable_1.useUncontrolledProp)(selectedCategoryProp, categories[0].id, onCategorySelect);
|
|
32
32
|
const isDesktop = ['desktop', 'desktopSmall'].includes(layoutType);
|
|
33
33
|
const isOutlineCard = backgroundColor === 'neutral-background1-level';
|
|
34
|
-
return ((0, jsx_runtime_1.jsx)(SectionBasic_1.SectionBasic, Object.assign({ id: id, title: title, backgroundColor: backgroundColor, layoutType: layoutType, className: (0, classnames_1.default)(className, styles_module_scss_1.default.sectionCatalog) }, (0, uikit_product_utils_1.extractSupportProps)(rest), { children: (0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.body, children: [(0, jsx_runtime_1.jsxs)(tabs_1.Tabs, { value: selectedCategory, onChange: setSelectedCategory, children: [(0, jsx_runtime_1.jsxs)("div", { className: (0, classnames_1.default)(styles_module_scss_1.default.categoryList, { [styles_module_scss_1.default.desktopCategoryList]: isDesktop }), children: [(0, jsx_runtime_1.jsx)(tabs_1.Tabs.TabBar, { type: 'primary', orientation: isDesktop ? 'vertical' : 'horizontal', markerPosition: isDesktop ? 'before' : 'after', className: (0, classnames_1.default)({ [styles_module_scss_1.default.desktopTabs]: isDesktop }), children: categories.map(({ id, label }) => ((0, jsx_runtime_1.jsx)(tabs_1.Tabs.Tab, { value: id, label: label }, id))) }), footer && isDesktop && (0, jsx_runtime_1.jsx)(helperComponents_1.SectionCatalogFooter, { items: footer, layoutType: layoutType })] }), categories.map(({ id, items }) => ((0, jsx_runtime_1.jsx)(tabs_1.Tabs.TabContent, { value: id, className: styles_module_scss_1.default.tabContent, children: (0, jsx_runtime_1.jsx)(uikit_product_site_grid_1.Grid, { columnsConfig: constants_1.GRID_CONFIG, gap: '
|
|
34
|
+
return ((0, jsx_runtime_1.jsx)(SectionBasic_1.SectionBasic, Object.assign({ id: id, title: title, backgroundColor: backgroundColor, layoutType: layoutType, className: (0, classnames_1.default)(className, styles_module_scss_1.default.sectionCatalog) }, (0, uikit_product_utils_1.extractSupportProps)(rest), { children: (0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.body, children: [(0, jsx_runtime_1.jsxs)(tabs_1.Tabs, { value: selectedCategory, onChange: setSelectedCategory, children: [(0, jsx_runtime_1.jsxs)("div", { className: (0, classnames_1.default)(styles_module_scss_1.default.categoryList, { [styles_module_scss_1.default.desktopCategoryList]: isDesktop }), children: [(0, jsx_runtime_1.jsx)(tabs_1.Tabs.TabBar, { type: 'primary', orientation: isDesktop ? 'vertical' : 'horizontal', markerPosition: isDesktop ? 'before' : 'after', className: (0, classnames_1.default)({ [styles_module_scss_1.default.desktopTabs]: isDesktop }), children: categories.map(({ id, label }) => ((0, jsx_runtime_1.jsx)(tabs_1.Tabs.Tab, { value: id, label: label }, id))) }), footer && isDesktop && (0, jsx_runtime_1.jsx)(helperComponents_1.SectionCatalogFooter, { items: footer, layoutType: layoutType })] }), categories.map(({ id, items }) => ((0, jsx_runtime_1.jsx)(tabs_1.Tabs.TabContent, { value: id, className: styles_module_scss_1.default.tabContent, children: (0, jsx_runtime_1.jsx)(uikit_product_site_grid_1.Grid, { columnsConfig: constants_1.GRID_CONFIG, gap: 'xs', layoutType: layoutType, children: items.map(item => ((0, jsx_runtime_1.jsx)(uikit_product_site_cards_1.CardProduct, Object.assign({ layoutType: layoutType, outline: isOutlineCard }, item), item.title))) }) }, id)))] }), footer && !isDesktop && (0, jsx_runtime_1.jsx)(helperComponents_1.SectionCatalogFooter, { items: footer, layoutType: layoutType })] }) })));
|
|
35
35
|
}
|
|
@@ -20,5 +20,5 @@ const utils_1 = require("./utils");
|
|
|
20
20
|
function SectionClientsCarousel(_a) {
|
|
21
21
|
var { items } = _a, props = __rest(_a, ["items"]);
|
|
22
22
|
const carouselProps = (0, react_1.useMemo)(() => (0, utils_1.getCarouselProps)(props.layoutType), [props.layoutType]);
|
|
23
|
-
return ((0, jsx_runtime_1.jsx)(helperComponents_1.SectionCarousel, Object.assign({ autoSwipe: 0 }, props, carouselProps, { gap: figma_tokens_1.themeVars.dimension['
|
|
23
|
+
return ((0, jsx_runtime_1.jsx)(helperComponents_1.SectionCarousel, Object.assign({ autoSwipe: 0 }, props, carouselProps, { gap: figma_tokens_1.themeVars.dimension['025m'], children: items.map(item => ((0, jsx_runtime_1.jsx)(helperComponents_1.CardClient, Object.assign({}, item), item.alt))) })));
|
|
24
24
|
}
|
|
@@ -17,5 +17,5 @@ const helperComponents_1 = require("../../helperComponents");
|
|
|
17
17
|
const constants_1 = require("./constants");
|
|
18
18
|
function SectionExpertsCarousel(_a) {
|
|
19
19
|
var { items } = _a, props = __rest(_a, ["items"]);
|
|
20
|
-
return ((0, jsx_runtime_1.jsx)(helperComponents_1.SectionCarousel, Object.assign({}, props, { itemMinWidth: constants_1.EXPERT_MINIMAL_WIDTH, maxItemsPerPage: constants_1.MAX_PER_PAGE, children: items.map(item => ((0, jsx_runtime_1.jsx)(helperComponents_1.Expert, Object.assign({}, item), item.name))) })));
|
|
20
|
+
return ((0, jsx_runtime_1.jsx)(helperComponents_1.SectionCarousel, Object.assign({}, props, { itemMinWidth: constants_1.EXPERT_MINIMAL_WIDTH, maxItemsPerPage: constants_1.MAX_PER_PAGE, gap: '2px', children: items.map(item => ((0, jsx_runtime_1.jsx)(helperComponents_1.Expert, Object.assign({}, item), item.name))) })));
|
|
21
21
|
}
|
|
@@ -53,5 +53,5 @@ function SectionLeading(_a) {
|
|
|
53
53
|
}
|
|
54
54
|
return items.length > itemsPerPageAmount;
|
|
55
55
|
}, [items.length, itemsPerPageAmount, layoutType]);
|
|
56
|
-
return ((0, jsx_runtime_1.jsx)(SectionBasic_1.SectionBasic, Object.assign({ id: id, layoutType: layoutType, className: className, backgroundColor: backgroundColor, title: title, description: description, titleSectionSize: titleSectionSize, titleTag: titleTag }, (0, uikit_product_utils_1.extractSupportProps)(rest), { children: (0, jsx_runtime_1.jsxs)("div", { ref: wrapperRef, className: styles_module_scss_1.default.leadingSection, "data-layout-type": layoutType, children: [itemsPerPageAmount > 0 && ((0, jsx_runtime_1.jsx)(carousel_1.Carousel, { state: { page: currentPage, onChange: setCurrentPage }, arrows: showArrows, controlsVisibility: 'always', showItems: itemsPerPageAmount, pagination: items.length > itemsPerPageAmount, swipe: items.length > itemsPerPageAmount, autoSwipe: autoSwipe, infiniteScroll: true, children: items.map(item => ((0, jsx_runtime_1.jsx)(helperComponents_1.CardLeading, Object.assign({}, item, { layoutType: layoutType, "data-test-id": item['data-test-id'] }), item.label))) })), footerDescription && ((0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.footerDescription, "data-layout-type": layoutType, children: (0, jsx_runtime_1.jsx)(typography_1.Typography.SansBodyL, { className: styles_module_scss_1.default.footerDescriptionText, children: footerDescription }) }))] }) })));
|
|
56
|
+
return ((0, jsx_runtime_1.jsx)(SectionBasic_1.SectionBasic, Object.assign({ id: id, layoutType: layoutType, className: className, backgroundColor: backgroundColor, title: title, description: description, titleSectionSize: titleSectionSize, titleTag: titleTag }, (0, uikit_product_utils_1.extractSupportProps)(rest), { children: (0, jsx_runtime_1.jsxs)("div", { ref: wrapperRef, className: styles_module_scss_1.default.leadingSection, "data-layout-type": layoutType, children: [itemsPerPageAmount > 0 && ((0, jsx_runtime_1.jsx)(carousel_1.Carousel, { state: { page: currentPage, onChange: setCurrentPage }, arrows: showArrows, controlsVisibility: 'always', showItems: itemsPerPageAmount, pagination: items.length > itemsPerPageAmount, swipe: items.length > itemsPerPageAmount, autoSwipe: autoSwipe, infiniteScroll: true, gap: '2px', children: items.map(item => ((0, jsx_runtime_1.jsx)(helperComponents_1.CardLeading, Object.assign({}, item, { layoutType: layoutType, "data-test-id": item['data-test-id'] }), item.label))) })), footerDescription && ((0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.footerDescription, "data-layout-type": layoutType, children: (0, jsx_runtime_1.jsx)(typography_1.Typography.SansBodyL, { className: styles_module_scss_1.default.footerDescriptionText, children: footerDescription }) }))] }) })));
|
|
57
57
|
}
|
|
@@ -20,5 +20,5 @@ const utils_1 = require("./utils");
|
|
|
20
20
|
function SectionMarketplaceCarousel(_a) {
|
|
21
21
|
var { items } = _a, props = __rest(_a, ["items"]);
|
|
22
22
|
const carouselProps = (0, react_1.useMemo)(() => (0, utils_1.getCarouselProps)(props.layoutType), [props]);
|
|
23
|
-
return ((0, jsx_runtime_1.jsx)(helperComponents_1.SectionCarousel, Object.assign({}, props, carouselProps, { children: items.map(item => ((0, jsx_runtime_1.jsx)(uikit_product_site_cards_1.CardMarketplace, Object.assign({}, item), item.title))) })));
|
|
23
|
+
return ((0, jsx_runtime_1.jsx)(helperComponents_1.SectionCarousel, Object.assign({}, props, carouselProps, { gap: '2px', children: items.map(item => ((0, jsx_runtime_1.jsx)(uikit_product_site_cards_1.CardMarketplace, Object.assign({}, item), item.title))) })));
|
|
24
24
|
}
|
|
@@ -7,21 +7,22 @@
|
|
|
7
7
|
display:flex;
|
|
8
8
|
box-sizing:border-box;
|
|
9
9
|
flex-direction:row;
|
|
10
|
-
gap:var(--dimension-
|
|
10
|
+
gap:var(--dimension-025m, 2px);
|
|
11
11
|
}
|
|
12
12
|
.content[data-layout-type=tablet]{
|
|
13
13
|
flex-direction:column;
|
|
14
|
-
gap:var(--dimension-
|
|
14
|
+
gap:var(--dimension-025m, 2px);
|
|
15
15
|
}
|
|
16
16
|
.content[data-layout-type=mobile]{
|
|
17
17
|
flex-direction:column;
|
|
18
|
-
gap:var(--dimension-
|
|
18
|
+
gap:var(--dimension-025m, 2px);
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
.card{
|
|
22
22
|
box-sizing:border-box;
|
|
23
23
|
background-color:var(--sys-neutral-background, #eeeff3);
|
|
24
24
|
padding:var(--dimension-4m, 32px);
|
|
25
|
+
border-radius:4px;
|
|
25
26
|
}
|
|
26
27
|
.card[data-layout-type=tablet], .card[data-layout-type=mobile]{
|
|
27
28
|
padding:var(--dimension-3m, 24px);
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
.cards{
|
|
7
7
|
display:flex;
|
|
8
|
-
gap:
|
|
8
|
+
gap:2px;
|
|
9
9
|
}
|
|
10
10
|
.cards[data-layout-type=tablet], .cards[data-layout-type=mobile]{
|
|
11
11
|
flex-direction:column;
|
|
@@ -40,4 +40,9 @@
|
|
|
40
40
|
|
|
41
41
|
.rightSectionText[data-layout-type=mobile]{
|
|
42
42
|
padding:32px 32px 0;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.left,
|
|
46
|
+
.right{
|
|
47
|
+
border-radius:4px;
|
|
43
48
|
}
|
|
@@ -44,15 +44,13 @@
|
|
|
44
44
|
.sectionFilters{
|
|
45
45
|
display:grid;
|
|
46
46
|
grid-template-columns:repeat(3, 1fr);
|
|
47
|
-
gap:var(--dimension-
|
|
47
|
+
gap:var(--dimension-1m, 8px);
|
|
48
48
|
}
|
|
49
49
|
.sectionFilters[data-layout-type=tablet]{
|
|
50
50
|
grid-template-columns:repeat(2, 1fr);
|
|
51
|
-
gap:var(--dimension-2m, 16px);
|
|
52
51
|
}
|
|
53
52
|
.sectionFilters[data-layout-type=mobile]{
|
|
54
53
|
grid-template-columns:repeat(1, 1fr);
|
|
55
|
-
gap:var(--dimension-3m, 24px);
|
|
56
54
|
}
|
|
57
55
|
|
|
58
56
|
.footer{
|
|
@@ -28,7 +28,7 @@ export function SectionBenefits(_a) {
|
|
|
28
28
|
(_a = tab.onClick) === null || _a === void 0 ? void 0 : _a.call(tab, e);
|
|
29
29
|
} }))), [tabBarItems]);
|
|
30
30
|
const outline = rest.outline;
|
|
31
|
-
const gap = type === 'basic' ? 'l' : '
|
|
31
|
+
const gap = type === 'basic' ? 'l' : 'xs';
|
|
32
32
|
const backgroundColorSection = type === 'basic' || outline ? 'neutral-background1-level' : 'neutral-background';
|
|
33
33
|
return (_jsxs(SectionBasic, Object.assign({ id: id, title: title, titleTag: titleTag, subtitle: subtitle, subtitleTag: subtitleTag, description: description, layoutType: layoutType, backgroundColor: backgroundColor || backgroundColorSection, tabBarItems: tabs }, extractSupportProps(rest), { children: [!tabBarItems && (_jsxs(Grid, { layoutType: layoutType, columnsConfig: columnsConfig, gap: gap, children: [type === 'info' &&
|
|
34
34
|
content.map((item, index) => _jsx(CardInfo, Object.assign({}, item, { outline: outline, layoutType: layoutType }), index)), type === 'numeric' &&
|
|
@@ -17,5 +17,5 @@ import { getCarouselProps } from './utils';
|
|
|
17
17
|
export function SectionCaseCarousel(_a) {
|
|
18
18
|
var { items, layoutType } = _a, props = __rest(_a, ["items", "layoutType"]);
|
|
19
19
|
const carouselProps = useMemo(() => getCarouselProps(layoutType), [layoutType]);
|
|
20
|
-
return (_jsx(SectionCarousel, Object.assign({}, props, carouselProps, { layoutType: layoutType, children: items.map(item => (_jsx(CaseCard, Object.assign({}, item, { layoutType: layoutType }), item.description))) })));
|
|
20
|
+
return (_jsx(SectionCarousel, Object.assign({}, props, carouselProps, { layoutType: layoutType, gap: '2px', children: items.map(item => (_jsx(CaseCard, Object.assign({}, item, { layoutType: layoutType }), item.description))) })));
|
|
21
21
|
}
|
|
@@ -25,5 +25,5 @@ export function SectionCatalog(_a) {
|
|
|
25
25
|
const [selectedCategory, setSelectedCategory] = useUncontrolledProp(selectedCategoryProp, categories[0].id, onCategorySelect);
|
|
26
26
|
const isDesktop = ['desktop', 'desktopSmall'].includes(layoutType);
|
|
27
27
|
const isOutlineCard = backgroundColor === 'neutral-background1-level';
|
|
28
|
-
return (_jsx(SectionBasic, Object.assign({ id: id, title: title, backgroundColor: backgroundColor, layoutType: layoutType, className: cn(className, styles.sectionCatalog) }, extractSupportProps(rest), { children: _jsxs("div", { className: styles.body, children: [_jsxs(Tabs, { value: selectedCategory, onChange: setSelectedCategory, children: [_jsxs("div", { className: cn(styles.categoryList, { [styles.desktopCategoryList]: isDesktop }), children: [_jsx(Tabs.TabBar, { type: 'primary', orientation: isDesktop ? 'vertical' : 'horizontal', markerPosition: isDesktop ? 'before' : 'after', className: cn({ [styles.desktopTabs]: isDesktop }), children: categories.map(({ id, label }) => (_jsx(Tabs.Tab, { value: id, label: label }, id))) }), footer && isDesktop && _jsx(SectionCatalogFooter, { items: footer, layoutType: layoutType })] }), categories.map(({ id, items }) => (_jsx(Tabs.TabContent, { value: id, className: styles.tabContent, children: _jsx(Grid, { columnsConfig: GRID_CONFIG, gap: '
|
|
28
|
+
return (_jsx(SectionBasic, Object.assign({ id: id, title: title, backgroundColor: backgroundColor, layoutType: layoutType, className: cn(className, styles.sectionCatalog) }, extractSupportProps(rest), { children: _jsxs("div", { className: styles.body, children: [_jsxs(Tabs, { value: selectedCategory, onChange: setSelectedCategory, children: [_jsxs("div", { className: cn(styles.categoryList, { [styles.desktopCategoryList]: isDesktop }), children: [_jsx(Tabs.TabBar, { type: 'primary', orientation: isDesktop ? 'vertical' : 'horizontal', markerPosition: isDesktop ? 'before' : 'after', className: cn({ [styles.desktopTabs]: isDesktop }), children: categories.map(({ id, label }) => (_jsx(Tabs.Tab, { value: id, label: label }, id))) }), footer && isDesktop && _jsx(SectionCatalogFooter, { items: footer, layoutType: layoutType })] }), categories.map(({ id, items }) => (_jsx(Tabs.TabContent, { value: id, className: styles.tabContent, children: _jsx(Grid, { columnsConfig: GRID_CONFIG, gap: 'xs', layoutType: layoutType, children: items.map(item => (_jsx(CardProduct, Object.assign({ layoutType: layoutType, outline: isOutlineCard }, item), item.title))) }) }, id)))] }), footer && !isDesktop && _jsx(SectionCatalogFooter, { items: footer, layoutType: layoutType })] }) })));
|
|
29
29
|
}
|
|
@@ -17,5 +17,5 @@ import { getCarouselProps } from './utils';
|
|
|
17
17
|
export function SectionClientsCarousel(_a) {
|
|
18
18
|
var { items } = _a, props = __rest(_a, ["items"]);
|
|
19
19
|
const carouselProps = useMemo(() => getCarouselProps(props.layoutType), [props.layoutType]);
|
|
20
|
-
return (_jsx(SectionCarousel, Object.assign({ autoSwipe: 0 }, props, carouselProps, { gap: themeVars.dimension['
|
|
20
|
+
return (_jsx(SectionCarousel, Object.assign({ autoSwipe: 0 }, props, carouselProps, { gap: themeVars.dimension['025m'], children: items.map(item => (_jsx(CardClient, Object.assign({}, item), item.alt))) })));
|
|
21
21
|
}
|
|
@@ -14,5 +14,5 @@ import { Expert, SectionCarousel } from '../../helperComponents';
|
|
|
14
14
|
import { EXPERT_MINIMAL_WIDTH, MAX_PER_PAGE } from './constants';
|
|
15
15
|
export function SectionExpertsCarousel(_a) {
|
|
16
16
|
var { items } = _a, props = __rest(_a, ["items"]);
|
|
17
|
-
return (_jsx(SectionCarousel, Object.assign({}, props, { itemMinWidth: EXPERT_MINIMAL_WIDTH, maxItemsPerPage: MAX_PER_PAGE, children: items.map(item => (_jsx(Expert, Object.assign({}, item), item.name))) })));
|
|
17
|
+
return (_jsx(SectionCarousel, Object.assign({}, props, { itemMinWidth: EXPERT_MINIMAL_WIDTH, maxItemsPerPage: MAX_PER_PAGE, gap: '2px', children: items.map(item => (_jsx(Expert, Object.assign({}, item), item.name))) })));
|
|
18
18
|
}
|
|
@@ -47,5 +47,5 @@ export function SectionLeading(_a) {
|
|
|
47
47
|
}
|
|
48
48
|
return items.length > itemsPerPageAmount;
|
|
49
49
|
}, [items.length, itemsPerPageAmount, layoutType]);
|
|
50
|
-
return (_jsx(SectionBasic, Object.assign({ id: id, layoutType: layoutType, className: className, backgroundColor: backgroundColor, title: title, description: description, titleSectionSize: titleSectionSize, titleTag: titleTag }, extractSupportProps(rest), { children: _jsxs("div", { ref: wrapperRef, className: styles.leadingSection, "data-layout-type": layoutType, children: [itemsPerPageAmount > 0 && (_jsx(Carousel, { state: { page: currentPage, onChange: setCurrentPage }, arrows: showArrows, controlsVisibility: 'always', showItems: itemsPerPageAmount, pagination: items.length > itemsPerPageAmount, swipe: items.length > itemsPerPageAmount, autoSwipe: autoSwipe, infiniteScroll: true, children: items.map(item => (_jsx(CardLeading, Object.assign({}, item, { layoutType: layoutType, "data-test-id": item['data-test-id'] }), item.label))) })), footerDescription && (_jsx("div", { className: styles.footerDescription, "data-layout-type": layoutType, children: _jsx(Typography.SansBodyL, { className: styles.footerDescriptionText, children: footerDescription }) }))] }) })));
|
|
50
|
+
return (_jsx(SectionBasic, Object.assign({ id: id, layoutType: layoutType, className: className, backgroundColor: backgroundColor, title: title, description: description, titleSectionSize: titleSectionSize, titleTag: titleTag }, extractSupportProps(rest), { children: _jsxs("div", { ref: wrapperRef, className: styles.leadingSection, "data-layout-type": layoutType, children: [itemsPerPageAmount > 0 && (_jsx(Carousel, { state: { page: currentPage, onChange: setCurrentPage }, arrows: showArrows, controlsVisibility: 'always', showItems: itemsPerPageAmount, pagination: items.length > itemsPerPageAmount, swipe: items.length > itemsPerPageAmount, autoSwipe: autoSwipe, infiniteScroll: true, gap: '2px', children: items.map(item => (_jsx(CardLeading, Object.assign({}, item, { layoutType: layoutType, "data-test-id": item['data-test-id'] }), item.label))) })), footerDescription && (_jsx("div", { className: styles.footerDescription, "data-layout-type": layoutType, children: _jsx(Typography.SansBodyL, { className: styles.footerDescriptionText, children: footerDescription }) }))] }) })));
|
|
51
51
|
}
|
|
@@ -17,5 +17,5 @@ import { getCarouselProps } from './utils';
|
|
|
17
17
|
export function SectionMarketplaceCarousel(_a) {
|
|
18
18
|
var { items } = _a, props = __rest(_a, ["items"]);
|
|
19
19
|
const carouselProps = useMemo(() => getCarouselProps(props.layoutType), [props]);
|
|
20
|
-
return (_jsx(SectionCarousel, Object.assign({}, props, carouselProps, { children: items.map(item => (_jsx(CardMarketplace, Object.assign({}, item), item.title))) })));
|
|
20
|
+
return (_jsx(SectionCarousel, Object.assign({}, props, carouselProps, { gap: '2px', children: items.map(item => (_jsx(CardMarketplace, Object.assign({}, item), item.title))) })));
|
|
21
21
|
}
|
|
@@ -7,21 +7,22 @@
|
|
|
7
7
|
display:flex;
|
|
8
8
|
box-sizing:border-box;
|
|
9
9
|
flex-direction:row;
|
|
10
|
-
gap:var(--dimension-
|
|
10
|
+
gap:var(--dimension-025m, 2px);
|
|
11
11
|
}
|
|
12
12
|
.content[data-layout-type=tablet]{
|
|
13
13
|
flex-direction:column;
|
|
14
|
-
gap:var(--dimension-
|
|
14
|
+
gap:var(--dimension-025m, 2px);
|
|
15
15
|
}
|
|
16
16
|
.content[data-layout-type=mobile]{
|
|
17
17
|
flex-direction:column;
|
|
18
|
-
gap:var(--dimension-
|
|
18
|
+
gap:var(--dimension-025m, 2px);
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
.card{
|
|
22
22
|
box-sizing:border-box;
|
|
23
23
|
background-color:var(--sys-neutral-background, #eeeff3);
|
|
24
24
|
padding:var(--dimension-4m, 32px);
|
|
25
|
+
border-radius:4px;
|
|
25
26
|
}
|
|
26
27
|
.card[data-layout-type=tablet], .card[data-layout-type=mobile]{
|
|
27
28
|
padding:var(--dimension-3m, 24px);
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
.cards{
|
|
7
7
|
display:flex;
|
|
8
|
-
gap:
|
|
8
|
+
gap:2px;
|
|
9
9
|
}
|
|
10
10
|
.cards[data-layout-type=tablet], .cards[data-layout-type=mobile]{
|
|
11
11
|
flex-direction:column;
|
|
@@ -40,4 +40,9 @@
|
|
|
40
40
|
|
|
41
41
|
.rightSectionText[data-layout-type=mobile]{
|
|
42
42
|
padding:32px 32px 0;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.left,
|
|
46
|
+
.right{
|
|
47
|
+
border-radius:4px;
|
|
43
48
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloud-ru/uikit-product-site-section",
|
|
3
3
|
"title": "Site Section",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.27.0",
|
|
5
5
|
"sideEffects": [
|
|
6
6
|
"*.css",
|
|
7
7
|
"*.woff",
|
|
@@ -38,11 +38,11 @@
|
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"@cloud-ru/uikit-product-icons": "16.1.1",
|
|
40
40
|
"@cloud-ru/uikit-product-mobile-fields": "0.12.3",
|
|
41
|
-
"@cloud-ru/uikit-product-site-cards": "0.
|
|
41
|
+
"@cloud-ru/uikit-product-site-cards": "0.13.0",
|
|
42
42
|
"@cloud-ru/uikit-product-site-case-card": "0.5.1",
|
|
43
43
|
"@cloud-ru/uikit-product-site-grid": "0.1.10",
|
|
44
44
|
"@cloud-ru/uikit-product-site-layout": "0.5.2",
|
|
45
|
-
"@cloud-ru/uikit-product-site-media": "0.
|
|
45
|
+
"@cloud-ru/uikit-product-site-media": "0.3.0",
|
|
46
46
|
"@cloud-ru/uikit-product-site-rich-text": "0.2.17",
|
|
47
47
|
"@cloud-ru/uikit-product-site-table": "0.2.18",
|
|
48
48
|
"@cloud-ru/uikit-product-utils": "8.1.0",
|
|
@@ -67,5 +67,5 @@
|
|
|
67
67
|
"@cloud-ru/uikit-product-locale": "*",
|
|
68
68
|
"@snack-uikit/figma-tokens": "*"
|
|
69
69
|
},
|
|
70
|
-
"gitHead": "
|
|
70
|
+
"gitHead": "5f09d9ce6c82845090013f9b4f00f46cb160e59c"
|
|
71
71
|
}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
@use '@sbercloud/figma-tokens-cloud-platform/build/scss/components/styles-tokens-element' as ste;
|
|
2
2
|
|
|
3
3
|
.accordion {
|
|
4
|
-
|
|
4
|
+
// Important нужен из-за перезаписи типа
|
|
5
|
+
gap: 2px !important; /* stylelint-disable-line declaration-no-important */
|
|
5
6
|
}
|
|
6
7
|
|
|
7
8
|
.description {
|
|
@@ -52,16 +52,14 @@
|
|
|
52
52
|
.sectionFilters {
|
|
53
53
|
display: grid;
|
|
54
54
|
grid-template-columns: repeat(3, 1fr);
|
|
55
|
-
gap: var.$dimension-
|
|
55
|
+
gap: var.$dimension-1m;
|
|
56
56
|
|
|
57
57
|
&[data-layout-type='tablet'] {
|
|
58
58
|
grid-template-columns: repeat(2, 1fr);
|
|
59
|
-
gap: var.$dimension-2m;
|
|
60
59
|
}
|
|
61
60
|
|
|
62
61
|
&[data-layout-type='mobile'] {
|
|
63
62
|
grid-template-columns: repeat(1, 1fr);
|
|
64
|
-
gap: var.$dimension-3m;
|
|
65
63
|
}
|
|
66
64
|
}
|
|
67
65
|
|
|
@@ -77,7 +77,7 @@ export function SectionBenefits({
|
|
|
77
77
|
);
|
|
78
78
|
|
|
79
79
|
const outline = (rest as ContentInfo).outline;
|
|
80
|
-
const gap = type === 'basic' ? 'l' : '
|
|
80
|
+
const gap = type === 'basic' ? 'l' : 'xs';
|
|
81
81
|
const backgroundColorSection = type === 'basic' || outline ? 'neutral-background1-level' : 'neutral-background';
|
|
82
82
|
|
|
83
83
|
return (
|
|
@@ -13,7 +13,7 @@ export function SectionCaseCarousel({ items, layoutType, ...props }: SectionCase
|
|
|
13
13
|
const carouselProps = useMemo(() => getCarouselProps(layoutType), [layoutType]);
|
|
14
14
|
|
|
15
15
|
return (
|
|
16
|
-
<SectionCarousel {...props} {...carouselProps} layoutType={layoutType}>
|
|
16
|
+
<SectionCarousel {...props} {...carouselProps} layoutType={layoutType} gap='2px'>
|
|
17
17
|
{items.map(item => (
|
|
18
18
|
<CaseCard key={item.description} {...item} layoutType={layoutType} />
|
|
19
19
|
))}
|
|
@@ -89,7 +89,7 @@ export function SectionCatalog({
|
|
|
89
89
|
|
|
90
90
|
{categories.map(({ id, items }) => (
|
|
91
91
|
<Tabs.TabContent key={id} value={id} className={styles.tabContent}>
|
|
92
|
-
<Grid columnsConfig={GRID_CONFIG} gap='
|
|
92
|
+
<Grid columnsConfig={GRID_CONFIG} gap='xs' layoutType={layoutType}>
|
|
93
93
|
{items.map(item => (
|
|
94
94
|
<CardProduct key={item.title} layoutType={layoutType} outline={isOutlineCard} {...item} />
|
|
95
95
|
))}
|
|
@@ -14,7 +14,7 @@ export function SectionClientsCarousel({ items, ...props }: SectionClientsCarous
|
|
|
14
14
|
const carouselProps = useMemo(() => getCarouselProps(props.layoutType), [props.layoutType]);
|
|
15
15
|
|
|
16
16
|
return (
|
|
17
|
-
<SectionCarousel autoSwipe={0} {...props} {...carouselProps} gap={themeVars.dimension['
|
|
17
|
+
<SectionCarousel autoSwipe={0} {...props} {...carouselProps} gap={themeVars.dimension['025m']}>
|
|
18
18
|
{items.map(item => (
|
|
19
19
|
<CardClient key={item.alt} {...item} />
|
|
20
20
|
))}
|
|
@@ -9,7 +9,7 @@ export type SectionExpertsCarouselProps = Omit<
|
|
|
9
9
|
|
|
10
10
|
export function SectionExpertsCarousel({ items, ...props }: SectionExpertsCarouselProps) {
|
|
11
11
|
return (
|
|
12
|
-
<SectionCarousel {...props} itemMinWidth={EXPERT_MINIMAL_WIDTH} maxItemsPerPage={MAX_PER_PAGE}>
|
|
12
|
+
<SectionCarousel {...props} itemMinWidth={EXPERT_MINIMAL_WIDTH} maxItemsPerPage={MAX_PER_PAGE} gap='2px'>
|
|
13
13
|
{items.map(item => (
|
|
14
14
|
<Expert key={item.name} {...item} />
|
|
15
15
|
))}
|
|
@@ -98,6 +98,7 @@ export function SectionLeading({
|
|
|
98
98
|
swipe={items.length > itemsPerPageAmount}
|
|
99
99
|
autoSwipe={autoSwipe}
|
|
100
100
|
infiniteScroll
|
|
101
|
+
gap='2px'
|
|
101
102
|
>
|
|
102
103
|
{items.map(item => (
|
|
103
104
|
<CardLeading key={item.label} {...item} layoutType={layoutType} data-test-id={item['data-test-id']} />
|
|
@@ -14,7 +14,7 @@ export function SectionMarketplaceCarousel({ items, ...props }: SectionMarketpla
|
|
|
14
14
|
const carouselProps = useMemo(() => getCarouselProps(props.layoutType), [props]);
|
|
15
15
|
|
|
16
16
|
return (
|
|
17
|
-
<SectionCarousel {...props} {...carouselProps}>
|
|
17
|
+
<SectionCarousel {...props} {...carouselProps} gap='2px'>
|
|
18
18
|
{items.map(item => (
|
|
19
19
|
<CardMarketplace key={item.title} {...item} />
|
|
20
20
|
))}
|
|
@@ -10,16 +10,16 @@
|
|
|
10
10
|
box-sizing: border-box;
|
|
11
11
|
|
|
12
12
|
flex-direction: row;
|
|
13
|
-
gap: var.$dimension-
|
|
13
|
+
gap: var.$dimension-025m;
|
|
14
14
|
|
|
15
15
|
&[data-layout-type='tablet'] {
|
|
16
16
|
flex-direction: column;
|
|
17
|
-
gap: var.$dimension-
|
|
17
|
+
gap: var.$dimension-025m;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
&[data-layout-type='mobile'] {
|
|
21
21
|
flex-direction: column;
|
|
22
|
-
gap: var.$dimension-
|
|
22
|
+
gap: var.$dimension-025m;
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
|
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
background-color: var.$sys-neutral-background;
|
|
29
29
|
|
|
30
30
|
padding: var.$dimension-4m;
|
|
31
|
+
border-radius: 4px;
|
|
31
32
|
|
|
32
33
|
&[data-layout-type='tablet'],
|
|
33
34
|
&[data-layout-type='mobile'] {
|
|
@@ -100,7 +101,7 @@
|
|
|
100
101
|
gap: var.$dimension-4m;
|
|
101
102
|
|
|
102
103
|
&[data-layout-type='tablet'],
|
|
103
|
-
&[data-layout-type='mobile']{
|
|
104
|
+
&[data-layout-type='mobile'] {
|
|
104
105
|
flex-direction: column;
|
|
105
106
|
gap: var.$dimension-2m;
|
|
106
107
|
}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
.cards {
|
|
9
9
|
display: flex;
|
|
10
|
-
gap:
|
|
10
|
+
gap: 2px;
|
|
11
11
|
|
|
12
12
|
&[data-layout-type='tablet'],
|
|
13
13
|
&[data-layout-type='mobile'] {
|
|
@@ -30,7 +30,8 @@
|
|
|
30
30
|
background-image: var(--image);
|
|
31
31
|
background-repeat: no-repeat;
|
|
32
32
|
background-size: var(--image-size);
|
|
33
|
-
background-position: calc(100% + var(--image-size) - var(--image-visible-size))
|
|
33
|
+
background-position: calc(100% + var(--image-size) - var(--image-visible-size))
|
|
34
|
+
calc(100% + var(--image-size) - var(--image-visible-size));
|
|
34
35
|
|
|
35
36
|
&[data-layout-type='tablet'] {
|
|
36
37
|
--image-visible-size: 300px;
|
|
@@ -50,3 +51,8 @@
|
|
|
50
51
|
padding: 32px 32px 0;
|
|
51
52
|
}
|
|
52
53
|
}
|
|
54
|
+
|
|
55
|
+
.left,
|
|
56
|
+
.right {
|
|
57
|
+
border-radius: 4px;
|
|
58
|
+
}
|