@cloud-ru/uikit-product-site-banner 0.3.23 → 0.4.1

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 CHANGED
@@ -3,6 +3,29 @@
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.4.1 (2025-12-17)
7
+
8
+ ### Only dependencies have been changed
9
+ * [@cloud-ru/uikit-product-button-predefined@0.7.15](https://gitverse.ru/cloud-ru-tech/uikit-product/-/blob/master/packages/button-predefined/CHANGELOG.md)
10
+ * [@cloud-ru/uikit-product-site-rich-text@0.2.17](https://gitverse.ru/cloud-ru-tech/uikit-product/-/blob/master/packages/site-rich-text/CHANGELOG.md)
11
+ * [@cloud-ru/uikit-product-site-tag@0.4.1](https://gitverse.ru/cloud-ru-tech/uikit-product/-/blob/master/packages/site-tag/CHANGELOG.md)
12
+ * [@cloud-ru/uikit-product-utils@8.1.0](https://gitverse.ru/cloud-ru-tech/uikit-product/-/blob/master/packages/utils/CHANGELOG.md)
13
+
14
+
15
+
16
+
17
+
18
+ # 0.4.0 (2025-12-15)
19
+
20
+
21
+ ### Features
22
+
23
+ * **SITE-10394:** add border radius ([5e950bc](https://gitverse.ru/cloud-ru-tech/uikit-product/commits/5e950bce806fab0a3213eef811a7ebcb411f1860))
24
+
25
+
26
+
27
+
28
+
6
29
  ## 0.3.23 (2025-12-12)
7
30
 
8
31
  ### Only dependencies have been changed
@@ -29,5 +29,5 @@ const IMAGE_SIZE = {
29
29
  };
30
30
  function BannerPrimary(_a) {
31
31
  var { tags, imgType, layoutType, expirationDate } = _a, props = __rest(_a, ["tags", "imgType", "layoutType", "expirationDate"]);
32
- return ((0, jsx_runtime_1.jsx)(BannerCommon_1.BannerCommon, Object.assign({ sizes: { image: IMAGE_SIZE[layoutType][imgType], mainGap: layoutType === 'mobile' ? 24 : 32 }, layoutType: layoutType, topSlot: (tags || expirationDate) && ((0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.tags, children: [expirationDate && ((0, jsx_runtime_1.jsx)(promo_tag_1.PromoTag, { size: 'xs', text: `Действует до ${expirationDate}`, appearance: 'neutral', color: 'decor' })), tags === null || tags === void 0 ? void 0 : tags.map((props, index) => ((0, jsx_runtime_1.jsx)(uikit_product_site_tag_1.TagSpecial, Object.assign({}, props), index)))] })) }, props)));
32
+ return ((0, jsx_runtime_1.jsx)(BannerCommon_1.BannerCommon, Object.assign({ sizes: { image: IMAGE_SIZE[layoutType][imgType], mainGap: layoutType === 'mobile' ? 24 : 32 }, layoutType: layoutType, topSlot: (tags || expirationDate) && ((0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.tags, children: [expirationDate && ((0, jsx_runtime_1.jsx)(promo_tag_1.PromoTag, { size: 'xs', text: `Действует до ${expirationDate}`, appearance: 'neutral', color: 'decor', className: styles_module_scss_1.default.promoTag })), tags === null || tags === void 0 ? void 0 : tags.map((props, index) => ((0, jsx_runtime_1.jsx)(uikit_product_site_tag_1.TagSpecial, Object.assign({}, props), index)))] })) }, props)));
33
33
  }
@@ -2,4 +2,7 @@
2
2
  display:flex;
3
3
  flex-wrap:wrap;
4
4
  gap:4px;
5
+ }
6
+ .tags .promoTag{
7
+ border-radius:2px;
5
8
  }
@@ -33,5 +33,5 @@ const MAP_LAYOUT_TO_TEXT_SIZE = {
33
33
  function BannerTertiary(_a) {
34
34
  var { layoutType, title, description, img, button, erid, className, topRightCornerSlot } = _a, rest = __rest(_a, ["layoutType", "title", "description", "img", "button", "erid", "className", "topRightCornerSlot"]);
35
35
  const isMobile = layoutType === 'mobile';
36
- return ((0, jsx_runtime_1.jsxs)(ColorWrapper_1.ColorWrapper, Object.assign({}, rest, { className: (0, classnames_1.default)(className, styles_module_scss_1.default.root), "data-layout-type": layoutType, children: [(topRightCornerSlot || erid) && ((0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.topRightCorner, children: [erid && ((0, jsx_runtime_1.jsx)(uikit_product_site_tag_1.Erid, { className: styles_module_scss_1.default.erid, tip: erid.tip, appearance: ColorWrapper_1.ColorWrapper.getEridAppearance(rest.appearance) })), topRightCornerSlot] })), (0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.content, children: [(0, jsx_runtime_1.jsx)("img", { className: styles_module_scss_1.default.image, src: img, alt: title }), (0, jsx_runtime_1.jsxs)("div", { "data-color-wrapper-role": 'text', className: styles_module_scss_1.default.texts, children: [(0, jsx_runtime_1.jsx)(typography_1.Typography, { size: MAP_LAYOUT_TO_TEXT_SIZE[layoutType], className: styles_module_scss_1.default.title, purpose: 'title', family: 'sans', children: (0, jsx_runtime_1.jsx)(uikit_product_site_rich_text_1.RichText, { richText: title }) }), (0, jsx_runtime_1.jsx)(typography_1.Typography, { size: MAP_LAYOUT_TO_TEXT_SIZE[layoutType], className: styles_module_scss_1.default.description, purpose: 'body', family: 'sans', children: (0, jsx_runtime_1.jsx)(uikit_product_site_rich_text_1.RichText, { richText: description }) })] }), (0, jsx_runtime_1.jsx)(uikit_product_button_predefined_1.ButtonPromo, Object.assign({ target: '_self' }, button, { size: 'l', appearance: ColorWrapper_1.ColorWrapper.getButtonAppearance(rest.appearance), fullWidth: isMobile }))] })] })));
36
+ return ((0, jsx_runtime_1.jsxs)(ColorWrapper_1.ColorWrapper, Object.assign({}, rest, { className: (0, classnames_1.default)(className, styles_module_scss_1.default.root), "data-layout-type": layoutType, children: [(topRightCornerSlot || erid) && ((0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.topRightCorner, children: [erid && ((0, jsx_runtime_1.jsx)(uikit_product_site_tag_1.Erid, { className: styles_module_scss_1.default.erid, tip: erid.tip, appearance: ColorWrapper_1.ColorWrapper.getEridAppearance(rest.appearance) })), topRightCornerSlot] })), (0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.content, children: [(0, jsx_runtime_1.jsx)("img", { className: styles_module_scss_1.default.image, src: img, alt: title }), (0, jsx_runtime_1.jsxs)("div", { "data-color-wrapper-role": 'text', className: styles_module_scss_1.default.texts, children: [(0, jsx_runtime_1.jsx)(typography_1.Typography, { size: MAP_LAYOUT_TO_TEXT_SIZE[layoutType], className: styles_module_scss_1.default.title, purpose: 'title', family: 'sans', children: (0, jsx_runtime_1.jsx)(uikit_product_site_rich_text_1.RichText, { richText: title }) }), (0, jsx_runtime_1.jsx)(typography_1.Typography, { size: MAP_LAYOUT_TO_TEXT_SIZE[layoutType], className: styles_module_scss_1.default.description, purpose: 'body', family: 'sans', children: (0, jsx_runtime_1.jsx)(uikit_product_site_rich_text_1.RichText, { richText: description }) })] }), (0, jsx_runtime_1.jsx)(uikit_product_button_predefined_1.ButtonPromo, Object.assign({ target: '_self' }, button, { size: 'l', appearance: ColorWrapper_1.ColorWrapper.getButtonAppearance(rest.appearance), fullWidth: isMobile, className: styles_module_scss_1.default.button }))] })] })));
37
37
  }
@@ -1,7 +1,3 @@
1
- .root{
2
- position:relative;
3
- }
4
-
5
1
  .topRightCorner{
6
2
  position:absolute;
7
3
  top:0;
@@ -25,6 +21,7 @@
25
21
  .image{
26
22
  max-width:105px;
27
23
  max-height:72px;
24
+ border-radius:4px;
28
25
  }
29
26
 
30
27
  .texts{
@@ -33,4 +30,12 @@
33
30
  flex-direction:column;
34
31
  align-self:stretch;
35
32
  gap:4px;
33
+ }
34
+
35
+ .root{
36
+ position:relative;
37
+ border-radius:4px;
38
+ }
39
+ .root .content .button{
40
+ border-radius:2px;
36
41
  }
@@ -1,10 +1,3 @@
1
- .content{
2
- display:flex;
3
- flex-direction:column;
4
- gap:var(--site-banner-main-gap);
5
- padding:32px;
6
- }
7
-
8
1
  .title,
9
2
  .description{
10
3
  word-break:break-word;
@@ -27,6 +20,7 @@
27
20
  max-width:var(--site-banner-image-max-width);
28
21
  max-height:var(--site-banner-image-max-height);
29
22
  flex-shrink:0;
23
+ border-radius:4px;
30
24
  }
31
25
  .imgWrapper{
32
26
  width:100%;
@@ -41,6 +35,16 @@
41
35
  top:2px;
42
36
  }
43
37
 
38
+ .content{
39
+ display:flex;
40
+ flex-direction:column;
41
+ gap:var(--site-banner-main-gap);
42
+ padding:32px;
43
+ }
44
+ .content .buttons .button{
45
+ border-radius:2px;
46
+ }
47
+
44
48
  .root{
45
49
  position:relative;
46
50
  display:grid;
@@ -23,5 +23,5 @@ const IMAGE_SIZE = {
23
23
  };
24
24
  export function BannerPrimary(_a) {
25
25
  var { tags, imgType, layoutType, expirationDate } = _a, props = __rest(_a, ["tags", "imgType", "layoutType", "expirationDate"]);
26
- return (_jsx(BannerCommon, Object.assign({ sizes: { image: IMAGE_SIZE[layoutType][imgType], mainGap: layoutType === 'mobile' ? 24 : 32 }, layoutType: layoutType, topSlot: (tags || expirationDate) && (_jsxs("div", { className: styles.tags, children: [expirationDate && (_jsx(PromoTag, { size: 'xs', text: `Действует до ${expirationDate}`, appearance: 'neutral', color: 'decor' })), tags === null || tags === void 0 ? void 0 : tags.map((props, index) => (_jsx(TagSpecial, Object.assign({}, props), index)))] })) }, props)));
26
+ return (_jsx(BannerCommon, Object.assign({ sizes: { image: IMAGE_SIZE[layoutType][imgType], mainGap: layoutType === 'mobile' ? 24 : 32 }, layoutType: layoutType, topSlot: (tags || expirationDate) && (_jsxs("div", { className: styles.tags, children: [expirationDate && (_jsx(PromoTag, { size: 'xs', text: `Действует до ${expirationDate}`, appearance: 'neutral', color: 'decor', className: styles.promoTag })), tags === null || tags === void 0 ? void 0 : tags.map((props, index) => (_jsx(TagSpecial, Object.assign({}, props), index)))] })) }, props)));
27
27
  }
@@ -2,4 +2,7 @@
2
2
  display:flex;
3
3
  flex-wrap:wrap;
4
4
  gap:4px;
5
+ }
6
+ .tags .promoTag{
7
+ border-radius:2px;
5
8
  }
@@ -27,5 +27,5 @@ const MAP_LAYOUT_TO_TEXT_SIZE = {
27
27
  export function BannerTertiary(_a) {
28
28
  var { layoutType, title, description, img, button, erid, className, topRightCornerSlot } = _a, rest = __rest(_a, ["layoutType", "title", "description", "img", "button", "erid", "className", "topRightCornerSlot"]);
29
29
  const isMobile = layoutType === 'mobile';
30
- return (_jsxs(ColorWrapper, Object.assign({}, rest, { className: cn(className, styles.root), "data-layout-type": layoutType, children: [(topRightCornerSlot || erid) && (_jsxs("div", { className: styles.topRightCorner, children: [erid && (_jsx(Erid, { className: styles.erid, tip: erid.tip, appearance: ColorWrapper.getEridAppearance(rest.appearance) })), topRightCornerSlot] })), _jsxs("div", { className: styles.content, children: [_jsx("img", { className: styles.image, src: img, alt: title }), _jsxs("div", { "data-color-wrapper-role": 'text', className: styles.texts, children: [_jsx(Typography, { size: MAP_LAYOUT_TO_TEXT_SIZE[layoutType], className: styles.title, purpose: 'title', family: 'sans', children: _jsx(RichText, { richText: title }) }), _jsx(Typography, { size: MAP_LAYOUT_TO_TEXT_SIZE[layoutType], className: styles.description, purpose: 'body', family: 'sans', children: _jsx(RichText, { richText: description }) })] }), _jsx(ButtonPromo, Object.assign({ target: '_self' }, button, { size: 'l', appearance: ColorWrapper.getButtonAppearance(rest.appearance), fullWidth: isMobile }))] })] })));
30
+ return (_jsxs(ColorWrapper, Object.assign({}, rest, { className: cn(className, styles.root), "data-layout-type": layoutType, children: [(topRightCornerSlot || erid) && (_jsxs("div", { className: styles.topRightCorner, children: [erid && (_jsx(Erid, { className: styles.erid, tip: erid.tip, appearance: ColorWrapper.getEridAppearance(rest.appearance) })), topRightCornerSlot] })), _jsxs("div", { className: styles.content, children: [_jsx("img", { className: styles.image, src: img, alt: title }), _jsxs("div", { "data-color-wrapper-role": 'text', className: styles.texts, children: [_jsx(Typography, { size: MAP_LAYOUT_TO_TEXT_SIZE[layoutType], className: styles.title, purpose: 'title', family: 'sans', children: _jsx(RichText, { richText: title }) }), _jsx(Typography, { size: MAP_LAYOUT_TO_TEXT_SIZE[layoutType], className: styles.description, purpose: 'body', family: 'sans', children: _jsx(RichText, { richText: description }) })] }), _jsx(ButtonPromo, Object.assign({ target: '_self' }, button, { size: 'l', appearance: ColorWrapper.getButtonAppearance(rest.appearance), fullWidth: isMobile, className: styles.button }))] })] })));
31
31
  }
@@ -1,7 +1,3 @@
1
- .root{
2
- position:relative;
3
- }
4
-
5
1
  .topRightCorner{
6
2
  position:absolute;
7
3
  top:0;
@@ -25,6 +21,7 @@
25
21
  .image{
26
22
  max-width:105px;
27
23
  max-height:72px;
24
+ border-radius:4px;
28
25
  }
29
26
 
30
27
  .texts{
@@ -33,4 +30,12 @@
33
30
  flex-direction:column;
34
31
  align-self:stretch;
35
32
  gap:4px;
33
+ }
34
+
35
+ .root{
36
+ position:relative;
37
+ border-radius:4px;
38
+ }
39
+ .root .content .button{
40
+ border-radius:2px;
36
41
  }
@@ -1,10 +1,3 @@
1
- .content{
2
- display:flex;
3
- flex-direction:column;
4
- gap:var(--site-banner-main-gap);
5
- padding:32px;
6
- }
7
-
8
1
  .title,
9
2
  .description{
10
3
  word-break:break-word;
@@ -27,6 +20,7 @@
27
20
  max-width:var(--site-banner-image-max-width);
28
21
  max-height:var(--site-banner-image-max-height);
29
22
  flex-shrink:0;
23
+ border-radius:4px;
30
24
  }
31
25
  .imgWrapper{
32
26
  width:100%;
@@ -41,6 +35,16 @@
41
35
  top:2px;
42
36
  }
43
37
 
38
+ .content{
39
+ display:flex;
40
+ flex-direction:column;
41
+ gap:var(--site-banner-main-gap);
42
+ padding:32px;
43
+ }
44
+ .content .buttons .button{
45
+ border-radius:2px;
46
+ }
47
+
44
48
  .root{
45
49
  position:relative;
46
50
  display:grid;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloud-ru/uikit-product-site-banner",
3
3
  "title": "Site Banner",
4
- "version": "0.3.23",
4
+ "version": "0.4.1",
5
5
  "sideEffects": [
6
6
  "*.css",
7
7
  "*.woff",
@@ -36,14 +36,14 @@
36
36
  },
37
37
  "scripts": {},
38
38
  "dependencies": {
39
- "@cloud-ru/uikit-product-button-predefined": "0.7.14",
40
- "@cloud-ru/uikit-product-site-rich-text": "0.2.16",
41
- "@cloud-ru/uikit-product-site-tag": "0.3.16",
42
- "@cloud-ru/uikit-product-utils": "8.0.2",
39
+ "@cloud-ru/uikit-product-button-predefined": "0.7.15",
40
+ "@cloud-ru/uikit-product-site-rich-text": "0.2.17",
41
+ "@cloud-ru/uikit-product-site-tag": "0.4.1",
42
+ "@cloud-ru/uikit-product-utils": "8.1.0",
43
43
  "@snack-uikit/promo-tag": "0.7.1",
44
44
  "@snack-uikit/typography": "0.8.4",
45
45
  "@snack-uikit/utils": "3.7.0",
46
46
  "classnames": "2.5.1"
47
47
  },
48
- "gitHead": "7303f734eef30f1ac7ac3a279bcf324dcd549059"
48
+ "gitHead": "1a98d6d9bff32edcbb3f9b0be0a14dce3f2abe5d"
49
49
  }
@@ -30,7 +30,13 @@ export function BannerPrimary({ tags, imgType, layoutType, expirationDate, ...pr
30
30
  (tags || expirationDate) && (
31
31
  <div className={styles.tags}>
32
32
  {expirationDate && (
33
- <PromoTag size='xs' text={`Действует до ${expirationDate}`} appearance='neutral' color='decor' />
33
+ <PromoTag
34
+ size='xs'
35
+ text={`Действует до ${expirationDate}`}
36
+ appearance='neutral'
37
+ color='decor'
38
+ className={styles.promoTag}
39
+ />
34
40
  )}
35
41
 
36
42
  {tags?.map((props, index) => (
@@ -2,4 +2,8 @@
2
2
  display: flex;
3
3
  flex-wrap: wrap;
4
4
  gap: 4px;
5
+
6
+ .promoTag {
7
+ border-radius: 2px;
8
+ }
5
9
  }
@@ -84,6 +84,7 @@ export function BannerTertiary({
84
84
  size='l'
85
85
  appearance={ColorWrapper.getButtonAppearance(rest.appearance)}
86
86
  fullWidth={isMobile}
87
+ className={styles.button}
87
88
  />
88
89
  </div>
89
90
  </ColorWrapper>
@@ -1,7 +1,3 @@
1
- .root {
2
- position: relative;
3
- }
4
-
5
1
  .topRightCorner {
6
2
  position: absolute;
7
3
  top: 0;
@@ -26,6 +22,7 @@
26
22
  .image {
27
23
  max-width: 105px;
28
24
  max-height: 72px;
25
+ border-radius: 4px;
29
26
  }
30
27
 
31
28
  .texts {
@@ -34,4 +31,15 @@
34
31
  flex-direction: column;
35
32
  align-self: stretch;
36
33
  gap: 4px;
37
- }
34
+ }
35
+
36
+ .root {
37
+ position: relative;
38
+ border-radius: 4px;
39
+
40
+ .content {
41
+ .button {
42
+ border-radius: 2px;
43
+ }
44
+ }
45
+ }
@@ -1,11 +1,3 @@
1
- .content {
2
- display: flex;
3
- flex-direction: column;
4
- gap: var(--site-banner-main-gap);
5
-
6
- padding: 32px;
7
- }
8
-
9
1
  .title,
10
2
  .description {
11
3
  word-break: break-word;
@@ -30,6 +22,8 @@
30
22
 
31
23
  flex-shrink: 0;
32
24
 
25
+ border-radius: 4px;
26
+
33
27
  &Wrapper {
34
28
  width: 100%;
35
29
  display: flex;
@@ -44,6 +38,20 @@
44
38
  top: 2px;
45
39
  }
46
40
 
41
+ .content {
42
+ display: flex;
43
+ flex-direction: column;
44
+ gap: var(--site-banner-main-gap);
45
+
46
+ padding: 32px;
47
+
48
+ .buttons {
49
+ .button {
50
+ border-radius: 2px;
51
+ }
52
+ }
53
+ }
54
+
47
55
  .root {
48
56
  position: relative;
49
57