@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.
Files changed (50) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/cjs/components/SectionAccordion/styles.module.css +1 -1
  3. package/dist/cjs/components/SectionBasic/styles.module.css +1 -3
  4. package/dist/cjs/components/SectionBenefits/SectionBenefits.js +1 -1
  5. package/dist/cjs/components/SectionCaseCarousel/SectionCaseCarousel.js +1 -1
  6. package/dist/cjs/components/SectionCatalog/SectionCatalog.js +1 -1
  7. package/dist/cjs/components/SectionClientsCarousel/SectionClientsCarousel.js +1 -1
  8. package/dist/cjs/components/SectionContent/styles.module.css +2 -0
  9. package/dist/cjs/components/SectionContentTabs/styles.module.css +3 -1
  10. package/dist/cjs/components/SectionExpertsCarousel/SectionExpertsCarousel.js +1 -1
  11. package/dist/cjs/components/SectionLeading/SectionLeading.js +1 -1
  12. package/dist/cjs/components/SectionMarketplaceCarousel/SectionMarketplaceCarousel.js +1 -1
  13. package/dist/cjs/components/SectionMedia/styles.module.css +2 -0
  14. package/dist/cjs/components/SectionPersonalManager/styles.module.css +4 -3
  15. package/dist/cjs/components/SectionPromoList/styles.module.css +6 -1
  16. package/dist/cjs/helperComponents/CardLeading/styles.module.css +1 -0
  17. package/dist/cjs/helperComponents/Expert/styles.module.css +1 -0
  18. package/dist/esm/components/SectionAccordion/styles.module.css +1 -1
  19. package/dist/esm/components/SectionBasic/styles.module.css +1 -3
  20. package/dist/esm/components/SectionBenefits/SectionBenefits.js +1 -1
  21. package/dist/esm/components/SectionCaseCarousel/SectionCaseCarousel.js +1 -1
  22. package/dist/esm/components/SectionCatalog/SectionCatalog.js +1 -1
  23. package/dist/esm/components/SectionClientsCarousel/SectionClientsCarousel.js +1 -1
  24. package/dist/esm/components/SectionContent/styles.module.css +2 -0
  25. package/dist/esm/components/SectionContentTabs/styles.module.css +3 -1
  26. package/dist/esm/components/SectionExpertsCarousel/SectionExpertsCarousel.js +1 -1
  27. package/dist/esm/components/SectionLeading/SectionLeading.js +1 -1
  28. package/dist/esm/components/SectionMarketplaceCarousel/SectionMarketplaceCarousel.js +1 -1
  29. package/dist/esm/components/SectionMedia/styles.module.css +2 -0
  30. package/dist/esm/components/SectionPersonalManager/styles.module.css +4 -3
  31. package/dist/esm/components/SectionPromoList/styles.module.css +6 -1
  32. package/dist/esm/helperComponents/CardLeading/styles.module.css +1 -0
  33. package/dist/esm/helperComponents/Expert/styles.module.css +1 -0
  34. package/package.json +4 -4
  35. package/src/components/SectionAccordion/styles.module.scss +2 -1
  36. package/src/components/SectionBasic/styles.module.scss +1 -3
  37. package/src/components/SectionBenefits/SectionBenefits.tsx +1 -1
  38. package/src/components/SectionCaseCarousel/SectionCaseCarousel.tsx +1 -1
  39. package/src/components/SectionCatalog/SectionCatalog.tsx +1 -1
  40. package/src/components/SectionClientsCarousel/SectionClientsCarousel.tsx +1 -1
  41. package/src/components/SectionContent/styles.module.scss +3 -1
  42. package/src/components/SectionContentTabs/styles.module.scss +3 -1
  43. package/src/components/SectionExpertsCarousel/SectionExpertsCarousel.tsx +1 -1
  44. package/src/components/SectionLeading/SectionLeading.tsx +1 -0
  45. package/src/components/SectionMarketplaceCarousel/SectionMarketplaceCarousel.tsx +1 -1
  46. package/src/components/SectionMedia/styles.module.scss +2 -0
  47. package/src/components/SectionPersonalManager/styles.module.scss +5 -4
  48. package/src/components/SectionPromoList/styles.module.scss +8 -2
  49. package/src/helperComponents/CardLeading/styles.module.scss +1 -0
  50. 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
@@ -1,5 +1,5 @@
1
1
  .accordion{
2
- gap:1px;
2
+ gap:2px !important;
3
3
  }
4
4
 
5
5
  .description{
@@ -44,15 +44,13 @@
44
44
  .sectionFilters{
45
45
  display:grid;
46
46
  grid-template-columns:repeat(3, 1fr);
47
- gap:var(--dimension-4m, 32px);
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' : 's';
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: 's', 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 })] }) })));
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['1m'], children: items.map(item => ((0, jsx_runtime_1.jsx)(helperComponents_1.CardClient, Object.assign({}, item), item.alt))) })));
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
  }
@@ -40,6 +40,8 @@
40
40
 
41
41
  .mediaWrapper{
42
42
  flex-grow:1;
43
+ border-radius:4px;
44
+ overflow:hidden;
43
45
  }
44
46
  [data-layout-type=tablet] .mediaWrapper{
45
47
  width:100%;
@@ -54,8 +54,10 @@
54
54
  width:100%;
55
55
  height:100%;
56
56
  display:flex;
57
- padding-bottom:56.5%;
57
+ padding-bottom:56.25%;
58
58
  border:0;
59
+ border-radius:4px;
60
+ overflow:hidden;
59
61
  }
60
62
 
61
63
  .image{
@@ -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
  }
@@ -1,5 +1,7 @@
1
1
  .content{
2
2
  display:flex;
3
+ border-radius:4px;
4
+ overflow:hidden;
3
5
  }
4
6
 
5
7
  .image{
@@ -7,21 +7,22 @@
7
7
  display:flex;
8
8
  box-sizing:border-box;
9
9
  flex-direction:row;
10
- gap:var(--dimension-4m, 32px);
10
+ gap:var(--dimension-025m, 2px);
11
11
  }
12
12
  .content[data-layout-type=tablet]{
13
13
  flex-direction:column;
14
- gap:var(--dimension-2m, 16px);
14
+ gap:var(--dimension-025m, 2px);
15
15
  }
16
16
  .content[data-layout-type=mobile]{
17
17
  flex-direction:column;
18
- gap:var(--dimension-2m, 16px);
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:8px;
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
  }
@@ -1,5 +1,6 @@
1
1
  .cardLeading{
2
2
  overflow:hidden;
3
+ border-radius:4px;
3
4
  }
4
5
 
5
6
  .wrapper{
@@ -3,6 +3,7 @@
3
3
  flex-direction:column;
4
4
  gap:var(--dimension-1m, 8px);
5
5
  overflow:hidden;
6
+ border-radius:4px;
6
7
  }
7
8
 
8
9
  .imageWrapper{
@@ -1,5 +1,5 @@
1
1
  .accordion{
2
- gap:1px;
2
+ gap:2px !important;
3
3
  }
4
4
 
5
5
  .description{
@@ -44,15 +44,13 @@
44
44
  .sectionFilters{
45
45
  display:grid;
46
46
  grid-template-columns:repeat(3, 1fr);
47
- gap:var(--dimension-4m, 32px);
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' : 's';
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: 's', 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 })] }) })));
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['1m'], children: items.map(item => (_jsx(CardClient, Object.assign({}, item), item.alt))) })));
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
  }
@@ -40,6 +40,8 @@
40
40
 
41
41
  .mediaWrapper{
42
42
  flex-grow:1;
43
+ border-radius:4px;
44
+ overflow:hidden;
43
45
  }
44
46
  [data-layout-type=tablet] .mediaWrapper{
45
47
  width:100%;
@@ -54,8 +54,10 @@
54
54
  width:100%;
55
55
  height:100%;
56
56
  display:flex;
57
- padding-bottom:56.5%;
57
+ padding-bottom:56.25%;
58
58
  border:0;
59
+ border-radius:4px;
60
+ overflow:hidden;
59
61
  }
60
62
 
61
63
  .image{
@@ -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
  }
@@ -1,5 +1,7 @@
1
1
  .content{
2
2
  display:flex;
3
+ border-radius:4px;
4
+ overflow:hidden;
3
5
  }
4
6
 
5
7
  .image{
@@ -7,21 +7,22 @@
7
7
  display:flex;
8
8
  box-sizing:border-box;
9
9
  flex-direction:row;
10
- gap:var(--dimension-4m, 32px);
10
+ gap:var(--dimension-025m, 2px);
11
11
  }
12
12
  .content[data-layout-type=tablet]{
13
13
  flex-direction:column;
14
- gap:var(--dimension-2m, 16px);
14
+ gap:var(--dimension-025m, 2px);
15
15
  }
16
16
  .content[data-layout-type=mobile]{
17
17
  flex-direction:column;
18
- gap:var(--dimension-2m, 16px);
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:8px;
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
  }
@@ -1,5 +1,6 @@
1
1
  .cardLeading{
2
2
  overflow:hidden;
3
+ border-radius:4px;
3
4
  }
4
5
 
5
6
  .wrapper{
@@ -3,6 +3,7 @@
3
3
  flex-direction:column;
4
4
  gap:var(--dimension-1m, 8px);
5
5
  overflow:hidden;
6
+ border-radius:4px;
6
7
  }
7
8
 
8
9
  .imageWrapper{
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.25.5",
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.12.1",
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.2.1",
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": "1a98d6d9bff32edcbb3f9b0be0a14dce3f2abe5d"
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
- gap: 1px;
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-4m;
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' : 's';
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='s' layoutType={layoutType}>
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['1m']}>
17
+ <SectionCarousel autoSwipe={0} {...props} {...carouselProps} gap={themeVars.dimension['025m']}>
18
18
  {items.map(item => (
19
19
  <CardClient key={item.alt} {...item} />
20
20
  ))}
@@ -51,6 +51,8 @@
51
51
 
52
52
  .mediaWrapper {
53
53
  flex-grow: 1;
54
+ border-radius: 4px;
55
+ overflow: hidden;
54
56
 
55
57
  [data-layout-type='tablet'] & {
56
58
  width: 100%;
@@ -67,4 +69,4 @@
67
69
  height: 100%;
68
70
  object-fit: contain;
69
71
  object-position: top left;
70
- }
72
+ }
@@ -64,8 +64,10 @@ $tabs-width: 280px;
64
64
  width: 100%;
65
65
  height: 100%;
66
66
  display: flex;
67
- padding-bottom: 56.5%;
67
+ padding-bottom: 56.25%;
68
68
  border: 0;
69
+ border-radius: 4px;
70
+ overflow: hidden;
69
71
  }
70
72
 
71
73
  .image {
@@ -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
  ))}
@@ -1,5 +1,7 @@
1
1
  .content {
2
2
  display: flex;
3
+ border-radius: 4px;
4
+ overflow: hidden;
3
5
  }
4
6
 
5
7
  .image {
@@ -10,16 +10,16 @@
10
10
  box-sizing: border-box;
11
11
 
12
12
  flex-direction: row;
13
- gap: var.$dimension-4m;
13
+ gap: var.$dimension-025m;
14
14
 
15
15
  &[data-layout-type='tablet'] {
16
16
  flex-direction: column;
17
- gap: var.$dimension-2m;
17
+ gap: var.$dimension-025m;
18
18
  }
19
19
 
20
20
  &[data-layout-type='mobile'] {
21
21
  flex-direction: column;
22
- gap: var.$dimension-2m;
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: 8px;
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)) 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
+ }
@@ -2,6 +2,7 @@
2
2
 
3
3
  .cardLeading {
4
4
  overflow: hidden;
5
+ border-radius: 4px;
5
6
  }
6
7
 
7
8
  .wrapper {
@@ -5,6 +5,7 @@
5
5
  flex-direction: column;
6
6
  gap: var.$dimension-1m;
7
7
  overflow: hidden;
8
+ border-radius: 4px;
8
9
  }
9
10
 
10
11
  .imageWrapper {