@cloud-ru/ds-uikit-product-layout 1.0.3 → 1.0.5-preview-a2208aeb.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloud-ru/ds-uikit-product-layout",
3
- "version": "1.0.3",
3
+ "version": "1.0.5-preview-a2208aeb.0",
4
4
  "description": "Блоки-состояния продуктового экрана — заглушка пустого состояния EmptyBlock и экран ограниченного доступа NoAccess.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -40,13 +40,13 @@
40
40
  ],
41
41
  "dependencies": {
42
42
  "classnames": "^2.5.1",
43
- "@cloud-ru/ds-block": "^1.0.1",
44
- "@cloud-ru/ds-adaptive": "^1.0.1",
45
- "@cloud-ru/ds-info-block": "^1.0.1",
46
- "@cloud-ru/ds-icons": "^1.1.0",
47
- "@cloud-ru/ds-locale": "^1.0.0",
48
- "@cloud-ru/ds-utils": "^1.1.0",
49
- "@cloud-ru/ds-icon-predefined": "^1.0.1"
43
+ "@cloud-ru/ds-icon-predefined": "1.0.2-preview-a2208aeb.0",
44
+ "@cloud-ru/ds-adaptive": "1.0.1",
45
+ "@cloud-ru/ds-block": "1.0.2-preview-a2208aeb.0",
46
+ "@cloud-ru/ds-icons": "1.2.1-preview-a2208aeb.0",
47
+ "@cloud-ru/ds-locale": "1.0.0",
48
+ "@cloud-ru/ds-utils": "1.1.0",
49
+ "@cloud-ru/ds-info-block": "1.0.2-preview-a2208aeb.0"
50
50
  },
51
51
  "publishConfig": {
52
52
  "access": "public"
@@ -65,14 +65,20 @@ export function EmptyBlock({
65
65
  const isMobile = isMobileLayout(layoutType);
66
66
 
67
67
  return (
68
- <Block size={BLOCK_SIZE.L} className={cn(styles.emptyBlock, className)} {...extractSupportProps(rest)}>
68
+ <Block
69
+ size={BLOCK_SIZE.L}
70
+ className={cn(styles.emptyBlock, className)}
71
+ contentClassName={styles.content}
72
+ data-mobile={isMobile || undefined}
73
+ {...extractSupportProps(rest)}
74
+ >
69
75
  <div className={styles.inner}>
70
76
  <InfoBlock
71
77
  className={styles.infoBlock}
72
78
  title={title}
73
79
  content={content}
74
80
  icon={icon}
75
- size={isMobile ? INFO_SIZE.M : INFO_SIZE.L}
81
+ size={INFO_SIZE.L}
76
82
  align={resolvedAlign}
77
83
  footer={footer}
78
84
  />
@@ -6,13 +6,13 @@
6
6
  flex-grow: 1;
7
7
  box-sizing: border-box;
8
8
  width: 100%;
9
+ }
9
10
 
10
- > :last-child {
11
- display: flex;
12
- flex: 1 1 auto;
13
- width: 100%;
14
- min-width: 0;
15
- }
11
+ .content {
12
+ display: flex;
13
+ flex: 1 1 auto;
14
+ width: 100%;
15
+ min-width: 0;
16
16
  }
17
17
 
18
18
  .inner {
@@ -21,7 +21,14 @@
21
21
  align-items: center;
22
22
  justify-content: center;
23
23
 
24
+ box-sizing: border-box;
24
25
  width: 100%;
26
+ padding: base.$sn-primitive-dimension-40;
27
+
28
+ // В mobile-мастере Figma у `composition` нет паддинга.
29
+ .emptyBlock[data-mobile='true'] & {
30
+ padding: 0;
31
+ }
25
32
  }
26
33
 
27
34
  .infoBlock {
@@ -36,17 +36,12 @@ export function NoAccess({ serviceName, className, ...rest }: NoAccessProps) {
36
36
  </div>
37
37
  )}
38
38
 
39
- <Block size={BLOCK_SIZE.L} className={styles.block}>
39
+ <Block size={BLOCK_SIZE.L} className={styles.block} contentClassName={styles.blockContent}>
40
40
  <InfoBlock
41
41
  size={INFO_SIZE.M}
42
42
  icon={{ icon: LockSVG }}
43
43
  title={t('noAccessTitle')}
44
- content={
45
- <div className={styles.description}>
46
- <div className={styles.text}>{t('noAccessSubtitle')}</div>
47
- <div className={styles.text}>{t('noAccessText')}</div>
48
- </div>
49
- }
44
+ content={t('noAccessDescription')}
50
45
  />
51
46
  </Block>
52
47
  </div>
@@ -9,14 +9,14 @@
9
9
 
10
10
  box-sizing: border-box;
11
11
  width: 100%;
12
- // Предельная ширина контентной области экрана — layout-константа без DS-токена.
13
- max-width: 1200px;
12
+ // Предельная ширина контентной области экрана (1200); отдельного токена нет.
13
+ max-width: calc(25 * #{base.$sn-primitive-dimension-48});
14
14
  min-height: 100%;
15
15
  }
16
16
 
17
17
  .wrapper[data-mobile='true'] {
18
- // Узкая мобильная раскладка — layout-константа без DS-токена.
19
- max-width: 360px;
18
+ // Узкая мобильная раскладка (360); отдельного токена нет.
19
+ max-width: calc(3 * #{base.$sn-primitive-dimension-120});
20
20
  }
21
21
 
22
22
  .block {
@@ -34,14 +34,16 @@
34
34
  color: base.$sn-theme-color-available-version-textMain;
35
35
  }
36
36
 
37
- .description {
38
- // Предельная ширина текстового блока для читаемости — layout-константа без DS-токена.
39
- max-width: 500px;
40
- margin-top: base.$sn-primitive-dimension-8;
41
- }
37
+ .blockContent {
38
+ display: flex;
39
+ justify-content: center;
40
+ padding: base.$sn-primitive-dimension-40;
42
41
 
43
- .text {
44
- display: block;
45
- text-align: center;
46
- white-space: break-spaces;
42
+ // Описание в мастере — один текст с переносом после первого предложения (`{{newline}}`).
43
+ white-space: pre-line;
44
+
45
+ // В mobile-мастере Figma у `composition` нет паддинга.
46
+ .wrapper[data-mobile='true'] & {
47
+ padding: 0;
48
+ }
47
49
  }
@@ -3,13 +3,13 @@ import { defineLocale, defineMessages } from '@cloud-ru/ds-locale';
3
3
  const LAYOUT_MESSAGES = defineMessages({
4
4
  'en-GB': {
5
5
  noAccessTitle: 'Access restricted',
6
- noAccessSubtitle: 'You do not have permission to view this content.',
7
- noAccessText: 'To get access, contact your organization or project administrator.',
6
+ noAccessDescription:
7
+ 'You do not have permission to view this content.{{newline}}To get access, contact your organization or project administrator.',
8
8
  },
9
9
  'ru-RU': {
10
10
  noAccessTitle: 'Доступ ограничен',
11
- noAccessSubtitle: 'У вас нет прав для просмотра этого контента.',
12
- noAccessText: 'Для получения доступа обратитесь к администратору организации или проекта.',
11
+ noAccessDescription:
12
+ 'У вас нет прав для просмотра этого контента.{{newline}}Для получения доступа обратитесь к администратору организации или проекта.',
13
13
  },
14
14
  });
15
15