@alfalab/core-components-typography 4.2.1 → 4.4.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 (114) hide show
  1. package/colors.css +20 -20
  2. package/colors.module-120e4dd7.js +6 -0
  3. package/common.module-4389487a.js +6 -0
  4. package/component.js +3 -3
  5. package/cssm/component.js +1 -1
  6. package/cssm/hooks/index.d.ts +1 -1
  7. package/cssm/hooks/index.js +2 -1
  8. package/cssm/hooks/{useSkeleton.js → use-skeleton.js} +3 -1
  9. package/cssm/hooks/use-skeleton.module.css +6 -0
  10. package/cssm/index.js +1 -1
  11. package/cssm/text/component.js +1 -1
  12. package/cssm/text/index.js +1 -1
  13. package/cssm/title/component.js +1 -1
  14. package/cssm/title/index.d.ts +16 -2
  15. package/cssm/title/index.js +2 -7
  16. package/cssm/title-mobile/component.d.ts +16 -2
  17. package/cssm/title-mobile/component.js +2 -7
  18. package/cssm/title-mobile/index.js +1 -1
  19. package/cssm/title-responsive/component.d.ts +16 -3
  20. package/cssm/title-responsive/component.js +2 -7
  21. package/cssm/title-responsive/index.js +1 -1
  22. package/cssm/types.d.ts +8 -0
  23. package/esm/colors.css +20 -20
  24. package/esm/colors.module-3119b191.js +4 -0
  25. package/esm/common.module-ec992380.js +4 -0
  26. package/esm/component.js +3 -3
  27. package/esm/hooks/index.d.ts +1 -1
  28. package/esm/hooks/index.js +2 -1
  29. package/esm/hooks/use-skeleton.css +8 -2
  30. package/esm/hooks/{useSkeleton.js → use-skeleton.js} +3 -2
  31. package/esm/index.js +3 -3
  32. package/esm/text/component.js +3 -3
  33. package/esm/text/index.css +20 -20
  34. package/esm/text/index.js +2 -2
  35. package/esm/title/common.css +5 -5
  36. package/esm/title/component.js +2 -2
  37. package/esm/title/index.css +19 -19
  38. package/esm/title/index.d.ts +16 -2
  39. package/esm/title/index.js +6 -11
  40. package/esm/title-mobile/component.d.ts +16 -2
  41. package/esm/title-mobile/component.js +6 -11
  42. package/esm/title-mobile/index.css +11 -11
  43. package/esm/title-mobile/index.js +3 -3
  44. package/esm/title-responsive/component.d.ts +16 -3
  45. package/esm/title-responsive/component.js +6 -11
  46. package/esm/title-responsive/index.css +31 -31
  47. package/esm/title-responsive/index.js +3 -3
  48. package/esm/types.d.ts +8 -0
  49. package/hooks/index.d.ts +1 -1
  50. package/hooks/index.js +2 -1
  51. package/hooks/use-skeleton.css +8 -2
  52. package/hooks/{useSkeleton.js → use-skeleton.js} +4 -2
  53. package/index.js +3 -3
  54. package/modern/colors.css +20 -20
  55. package/modern/colors.module-93e1488b.js +4 -0
  56. package/modern/common.module-0bb3a173.js +4 -0
  57. package/modern/component.js +3 -3
  58. package/modern/hooks/index.d.ts +1 -1
  59. package/modern/hooks/index.js +2 -1
  60. package/modern/hooks/use-skeleton.css +8 -2
  61. package/modern/hooks/{useSkeleton.js → use-skeleton.js} +3 -2
  62. package/modern/index.js +3 -3
  63. package/modern/text/component.js +3 -3
  64. package/modern/text/index.css +20 -20
  65. package/modern/text/index.js +2 -2
  66. package/modern/title/common.css +5 -5
  67. package/modern/title/component.js +2 -2
  68. package/modern/title/index.css +19 -19
  69. package/modern/title/index.d.ts +16 -2
  70. package/modern/title/index.js +6 -11
  71. package/modern/title-mobile/component.d.ts +16 -2
  72. package/modern/title-mobile/component.js +6 -11
  73. package/modern/title-mobile/index.css +11 -11
  74. package/modern/title-mobile/index.js +3 -3
  75. package/modern/title-responsive/component.d.ts +16 -3
  76. package/modern/title-responsive/component.js +6 -11
  77. package/modern/title-responsive/index.css +31 -31
  78. package/modern/title-responsive/index.js +3 -3
  79. package/modern/types.d.ts +8 -0
  80. package/package.json +1 -1
  81. package/src/hooks/index.ts +1 -1
  82. package/src/hooks/use-skeleton.module.css +12 -0
  83. package/src/hooks/{useSkeleton.tsx → use-skeleton.tsx} +9 -1
  84. package/src/title/index.tsx +4 -8
  85. package/src/title-mobile/component.tsx +3 -7
  86. package/src/title-responsive/component.tsx +3 -7
  87. package/src/types.ts +10 -0
  88. package/text/component.js +3 -3
  89. package/text/index.css +20 -20
  90. package/text/index.js +2 -2
  91. package/title/common.css +5 -5
  92. package/title/component.js +2 -2
  93. package/title/index.css +19 -19
  94. package/title/index.d.ts +16 -2
  95. package/title/index.js +5 -10
  96. package/title-mobile/component.d.ts +16 -2
  97. package/title-mobile/component.js +5 -10
  98. package/title-mobile/index.css +11 -11
  99. package/title-mobile/index.js +3 -3
  100. package/title-responsive/component.d.ts +16 -3
  101. package/title-responsive/component.js +5 -10
  102. package/title-responsive/index.css +31 -31
  103. package/title-responsive/index.js +3 -3
  104. package/types.d.ts +8 -0
  105. package/colors.module-4e4b7d12.js +0 -6
  106. package/common.module-b3f0cfca.js +0 -6
  107. package/esm/colors.module-ca4c7711.js +0 -4
  108. package/esm/common.module-936e59c9.js +0 -4
  109. package/modern/colors.module-62b0790b.js +0 -4
  110. package/modern/common.module-d91f4ff7.js +0 -4
  111. /package/cssm/hooks/{useSkeleton.d.ts → use-skeleton.d.ts} +0 -0
  112. /package/esm/hooks/{useSkeleton.d.ts → use-skeleton.d.ts} +0 -0
  113. /package/hooks/{useSkeleton.d.ts → use-skeleton.d.ts} +0 -0
  114. /package/modern/hooks/{useSkeleton.d.ts → use-skeleton.d.ts} +0 -0
@@ -1,4 +1,4 @@
1
- /* hash: 5mz29 */
1
+ /* hash: cenk1 */
2
2
  :root {
3
3
  } /* deprecated */ :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
4
4
  } :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
@@ -20,78 +20,78 @@
20
20
  --font-family-styrene: 'Styrene UI', system-ui, -apple-system, 'Segoe UI', Roboto,
21
21
  'Helvetica Neue', Helvetica, sans-serif;
22
22
  } :root {
23
- } .typography__styrene-xlarge_fy252 {
23
+ } .typography__styrene-xlarge_82mz7 {
24
24
  font-size: 48px;
25
25
  line-height: 64px;
26
26
  font-weight: 500;
27
27
  font-feature-settings: 'ss01';
28
28
  font-family: var(--font-family-styrene);
29
- } .typography__styrene-large_fy252 {
29
+ } .typography__styrene-large_82mz7 {
30
30
  font-size: 40px;
31
31
  line-height: 48px;
32
32
  font-weight: 500;
33
33
  font-feature-settings: 'ss01';
34
34
  font-family: var(--font-family-styrene);
35
- } .typography__styrene-medium_fy252 {
35
+ } .typography__styrene-medium_82mz7 {
36
36
  font-size: 32px;
37
37
  line-height: 40px;
38
38
  font-weight: 500;
39
39
  font-feature-settings: 'ss01';
40
40
  font-family: var(--font-family-styrene);
41
- } .typography__styrene-small_fy252 {
41
+ } .typography__styrene-small_82mz7 {
42
42
  font-size: 24px;
43
43
  line-height: 32px;
44
44
  font-weight: 500;
45
45
  font-feature-settings: 'ss01';
46
46
  font-family: var(--font-family-styrene);
47
- } .typography__styrene-xsmall_fy252 {
47
+ } .typography__styrene-xsmall_82mz7 {
48
48
  font-size: 20px;
49
49
  line-height: 24px;
50
50
  font-weight: 500;
51
51
  font-feature-settings: 'ss01';
52
52
  font-family: var(--font-family-styrene);
53
- } .typography__system-xlarge_fy252 {
53
+ } .typography__system-xlarge_82mz7 {
54
54
  font-size: 48px;
55
55
  line-height: 52px;
56
56
  font-weight: 700;
57
- } .typography__system-large_fy252 {
57
+ } .typography__system-large_82mz7 {
58
58
  font-size: 40px;
59
59
  line-height: 48px;
60
60
  font-weight: 700;
61
- } .typography__system-medium_fy252 {
61
+ } .typography__system-medium_82mz7 {
62
62
  font-size: 30px;
63
63
  line-height: 36px;
64
64
  font-weight: 700;
65
- } .typography__system-small_fy252 {
65
+ } .typography__system-small_82mz7 {
66
66
  font-size: 22px;
67
67
  line-height: 26px;
68
68
  font-weight: 700;
69
- } .typography__system-xsmall_fy252 {
69
+ } .typography__system-xsmall_82mz7 {
70
70
  font-size: 18px;
71
71
  line-height: 22px;
72
72
  font-weight: 700;
73
- } .typography__margins-xlarge_fy252 {
73
+ } .typography__margins-xlarge_82mz7 {
74
74
  margin: 0 0 var(--gap-xl);
75
- } .typography__margins-large_fy252 {
75
+ } .typography__margins-large_82mz7 {
76
76
  margin: var(--gap-4xl) 0 var(--gap-xl);
77
- } .typography__margins-medium_fy252 {
77
+ } .typography__margins-medium_82mz7 {
78
78
  margin: var(--gap-4xl) 0 var(--gap-xl);
79
- } .typography__margins-small_fy252 {
79
+ } .typography__margins-small_82mz7 {
80
80
  margin: var(--gap-3xl) 0 var(--gap-m);
81
- } .typography__margins-xsmall_fy252 {
81
+ } .typography__margins-xsmall_82mz7 {
82
82
  margin: var(--gap-3xl) 0 var(--gap-m);
83
- } .typography__rowLimit1_fy252 {
83
+ } .typography__rowLimit1_82mz7 {
84
84
  -webkit-line-clamp: 1;
85
85
  display: -webkit-box;
86
86
  -webkit-box-orient: vertical;
87
87
  overflow: hidden;
88
88
  word-break: break-all;
89
- } .typography__rowLimit2_fy252 {
89
+ } .typography__rowLimit2_82mz7 {
90
90
  -webkit-line-clamp: 2;
91
91
  display: -webkit-box;
92
92
  -webkit-box-orient: vertical;
93
93
  overflow: hidden;
94
- } .typography__rowLimit3_fy252 {
94
+ } .typography__rowLimit3_82mz7 {
95
95
  -webkit-line-clamp: 3;
96
96
  display: -webkit-box;
97
97
  -webkit-box-orient: vertical;
@@ -1,5 +1,19 @@
1
- import { FC } from 'react';
1
+ /// <reference types="react" />
2
+ import React from 'react';
2
3
  import { TitleProps } from "./component";
3
- declare const Title: FC<TitleProps>;
4
+ declare const Title: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<HTMLHeadingElement>, "color"> & {
5
+ tag: "div" | "h1" | "h2" | "h3" | "h4" | "h5" | "h6";
6
+ view?: "small" | "medium" | "xlarge" | "large" | "xsmall" | undefined;
7
+ color?: "tertiary" | "disabled" | "accent" | "primary" | "attention" | "positive" | "secondary" | "tertiary-inverted" | "primary-inverted" | "secondary-inverted" | "link" | "negative" | "static-primary-light" | "static-secondary-light" | "static-tertiary-light" | "static-primary-dark" | "static-secondary-dark" | "static-tertiary-dark" | "static-accent" | undefined;
8
+ weight?: "bold" | "regular" | "medium" | undefined;
9
+ font?: "styrene" | "system" | undefined;
10
+ defaultMargins?: boolean | undefined;
11
+ className?: string | undefined;
12
+ dataTestId?: string | undefined;
13
+ children?: React.ReactNode;
14
+ rowLimit?: 1 | 2 | 3 | undefined;
15
+ showSkeleton?: boolean | undefined;
16
+ skeletonProps?: import("../types").TextSkeletonProps | undefined;
17
+ } & React.RefAttributes<HTMLDivElement | HTMLHeadingElement>>;
4
18
  export { Title };
5
19
  export type { TitleProps };
@@ -1,21 +1,16 @@
1
- import React from 'react';
1
+ import React, { forwardRef } from 'react';
2
2
  import { Title as Title$1 } from './component.js';
3
- import { c as commonStyles } from '../common.module-d91f4ff7.js';
3
+ import { c as commonStyles } from '../common.module-0bb3a173.js';
4
4
  import 'react-merge-refs';
5
5
  import 'classnames';
6
- import '../hooks/useSkeleton.js';
6
+ import '../hooks/use-skeleton.js';
7
7
  import '@alfalab/core-components-skeleton/modern';
8
8
  import '@alfalab/hooks';
9
- import '../colors.module-62b0790b.js';
9
+ import '../colors.module-93e1488b.js';
10
10
 
11
- const styles = {"styrene-xlarge":"typography__styrene-xlarge_fy252","styrene-large":"typography__styrene-large_fy252","styrene-medium":"typography__styrene-medium_fy252","styrene-small":"typography__styrene-small_fy252","styrene-xsmall":"typography__styrene-xsmall_fy252","system-xlarge":"typography__system-xlarge_fy252","system-large":"typography__system-large_fy252","system-medium":"typography__system-medium_fy252","system-small":"typography__system-small_fy252","system-xsmall":"typography__system-xsmall_fy252","margins-xlarge":"typography__margins-xlarge_fy252","margins-large":"typography__margins-large_fy252","margins-medium":"typography__margins-medium_fy252","margins-small":"typography__margins-small_fy252","margins-xsmall":"typography__margins-xsmall_fy252","rowLimit1":"typography__rowLimit1_fy252","rowLimit2":"typography__rowLimit2_fy252","rowLimit3":"typography__rowLimit3_fy252"};
11
+ const styles = {"styrene-xlarge":"typography__styrene-xlarge_82mz7","styrene-large":"typography__styrene-large_82mz7","styrene-medium":"typography__styrene-medium_82mz7","styrene-small":"typography__styrene-small_82mz7","styrene-xsmall":"typography__styrene-xsmall_82mz7","system-xlarge":"typography__system-xlarge_82mz7","system-large":"typography__system-large_82mz7","system-medium":"typography__system-medium_82mz7","system-small":"typography__system-small_82mz7","system-xsmall":"typography__system-xsmall_82mz7","margins-xlarge":"typography__margins-xlarge_82mz7","margins-large":"typography__margins-large_82mz7","margins-medium":"typography__margins-medium_82mz7","margins-small":"typography__margins-small_82mz7","margins-xsmall":"typography__margins-xsmall_82mz7","rowLimit1":"typography__rowLimit1_82mz7","rowLimit2":"typography__rowLimit2_82mz7","rowLimit3":"typography__rowLimit3_82mz7"};
12
12
  require('./index.css')
13
13
 
14
- const Title = (props) => (
15
- /**
16
- * Если поменять Object.assign на деструктуризацию, то упадут тесты.
17
- * Видимо, это особенность работы jest и css-modules.
18
- */
19
- React.createElement(Title$1, { ...props, styles: Object.assign(commonStyles, styles) }));
14
+ const Title = forwardRef((props, ref) => (React.createElement(Title$1, { ...props, styles: Object.assign(commonStyles, styles), ref: ref })));
20
15
 
21
16
  export { Title };
@@ -1,5 +1,19 @@
1
- import { FC } from 'react';
1
+ /// <reference types="react" />
2
+ import React from 'react';
2
3
  import { TitleProps } from "../title/component";
3
4
  type TitleMobileProps = Omit<TitleProps, 'defaultMargins'>;
4
- declare const TitleMobile: FC<TitleMobileProps>;
5
+ declare const TitleMobile: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<HTMLHeadingElement>, "color"> & {
6
+ tag: "div" | "h1" | "h2" | "h3" | "h4" | "h5" | "h6";
7
+ view?: "small" | "medium" | "xlarge" | "large" | "xsmall" | undefined;
8
+ color?: "tertiary" | "disabled" | "accent" | "primary" | "attention" | "positive" | "secondary" | "tertiary-inverted" | "primary-inverted" | "secondary-inverted" | "link" | "negative" | "static-primary-light" | "static-secondary-light" | "static-tertiary-light" | "static-primary-dark" | "static-secondary-dark" | "static-tertiary-dark" | "static-accent" | undefined;
9
+ weight?: "bold" | "regular" | "medium" | undefined;
10
+ font?: "styrene" | "system" | undefined;
11
+ defaultMargins?: boolean | undefined;
12
+ className?: string | undefined;
13
+ dataTestId?: string | undefined;
14
+ children?: React.ReactNode;
15
+ rowLimit?: 1 | 2 | 3 | undefined;
16
+ showSkeleton?: boolean | undefined;
17
+ skeletonProps?: import("../types").TextSkeletonProps | undefined;
18
+ } & React.RefAttributes<HTMLDivElement | HTMLHeadingElement>>;
5
19
  export { TitleMobileProps, TitleMobile };
@@ -1,21 +1,16 @@
1
- import React from 'react';
1
+ import React, { forwardRef } from 'react';
2
2
  import { Title } from '../title/component.js';
3
- import { c as commonStyles } from '../common.module-d91f4ff7.js';
3
+ import { c as commonStyles } from '../common.module-0bb3a173.js';
4
4
  import 'react-merge-refs';
5
5
  import 'classnames';
6
- import '../hooks/useSkeleton.js';
6
+ import '../hooks/use-skeleton.js';
7
7
  import '@alfalab/core-components-skeleton/modern';
8
8
  import '@alfalab/hooks';
9
- import '../colors.module-62b0790b.js';
9
+ import '../colors.module-93e1488b.js';
10
10
 
11
- const styles = {"styrene-xlarge":"typography__styrene-xlarge_1oc5t","styrene-large":"typography__styrene-large_1oc5t","styrene-medium":"typography__styrene-medium_1oc5t","styrene-small":"typography__styrene-small_1oc5t","styrene-xsmall":"typography__styrene-xsmall_1oc5t","system-xlarge":"typography__system-xlarge_1oc5t","system-large":"typography__system-large_1oc5t","system-medium":"typography__system-medium_1oc5t","system-small":"typography__system-small_1oc5t","system-xsmall":"typography__system-xsmall_1oc5t"};
11
+ const styles = {"styrene-xlarge":"typography__styrene-xlarge_u50uq","styrene-large":"typography__styrene-large_u50uq","styrene-medium":"typography__styrene-medium_u50uq","styrene-small":"typography__styrene-small_u50uq","styrene-xsmall":"typography__styrene-xsmall_u50uq","system-xlarge":"typography__system-xlarge_u50uq","system-large":"typography__system-large_u50uq","system-medium":"typography__system-medium_u50uq","system-small":"typography__system-small_u50uq","system-xsmall":"typography__system-xsmall_u50uq"};
12
12
  require('./index.css')
13
13
 
14
- const TitleMobile = (props) => (
15
- /**
16
- * Если поменять Object.assign на деструктуризацию, то упадут тесты.
17
- * Видимо, это особенность работы jest и css-modules.
18
- */
19
- React.createElement(Title, { ...props, styles: Object.assign(commonStyles, styles) }));
14
+ const TitleMobile = forwardRef((props, ref) => React.createElement(Title, { ...props, styles: Object.assign(commonStyles, styles), ref: ref }));
20
15
 
21
16
  export { TitleMobile };
@@ -1,4 +1,4 @@
1
- /* hash: vsmj3 */
1
+ /* hash: p0y1b */
2
2
  :root {
3
3
  } /* deprecated */ :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
4
4
  } :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
@@ -16,53 +16,53 @@
16
16
  --font-family-styrene: 'Styrene UI', system-ui, -apple-system, 'Segoe UI', Roboto,
17
17
  'Helvetica Neue', Helvetica, sans-serif;
18
18
  } :root {
19
- } .typography__styrene-xlarge_1oc5t {
19
+ } .typography__styrene-xlarge_u50uq {
20
20
  font-size: 34px;
21
21
  line-height: 40px;
22
22
  font-weight: 500;
23
23
  font-feature-settings: 'ss01';
24
24
  font-family: var(--font-family-styrene);
25
- } .typography__styrene-large_1oc5t {
25
+ } .typography__styrene-large_u50uq {
26
26
  font-size: 30px;
27
27
  line-height: 36px;
28
28
  font-weight: 500;
29
29
  font-feature-settings: 'ss01';
30
30
  font-family: var(--font-family-styrene);
31
- } .typography__styrene-medium_1oc5t {
31
+ } .typography__styrene-medium_u50uq {
32
32
  font-size: 26px;
33
33
  line-height: 32px;
34
34
  font-weight: 500;
35
35
  font-feature-settings: 'ss01';
36
36
  font-family: var(--font-family-styrene);
37
- } .typography__styrene-small_1oc5t {
37
+ } .typography__styrene-small_u50uq {
38
38
  font-size: 20px;
39
39
  line-height: 28px;
40
40
  font-weight: 500;
41
41
  font-feature-settings: 'ss01';
42
42
  font-family: var(--font-family-styrene);
43
- } .typography__styrene-xsmall_1oc5t {
43
+ } .typography__styrene-xsmall_u50uq {
44
44
  font-size: 16px;
45
45
  line-height: 20px;
46
46
  font-weight: 500;
47
47
  font-feature-settings: 'ss01';
48
48
  font-family: var(--font-family-styrene);
49
- } .typography__system-xlarge_1oc5t {
49
+ } .typography__system-xlarge_u50uq {
50
50
  font-size: 34px;
51
51
  line-height: 40px;
52
52
  font-weight: 600;
53
- } .typography__system-large_1oc5t {
53
+ } .typography__system-large_u50uq {
54
54
  font-size: 30px;
55
55
  line-height: 36px;
56
56
  font-weight: 600;
57
- } .typography__system-medium_1oc5t {
57
+ } .typography__system-medium_u50uq {
58
58
  font-size: 26px;
59
59
  line-height: 32px;
60
60
  font-weight: 600;
61
- } .typography__system-small_1oc5t {
61
+ } .typography__system-small_u50uq {
62
62
  font-size: 20px;
63
63
  line-height: 28px;
64
64
  font-weight: 600;
65
- } .typography__system-xsmall_1oc5t {
65
+ } .typography__system-xsmall_u50uq {
66
66
  font-size: 16px;
67
67
  line-height: 20px;
68
68
  font-weight: 600;
@@ -3,8 +3,8 @@ import 'react';
3
3
  import '../title/component.js';
4
4
  import 'react-merge-refs';
5
5
  import 'classnames';
6
- import '../hooks/useSkeleton.js';
6
+ import '../hooks/use-skeleton.js';
7
7
  import '@alfalab/core-components-skeleton/modern';
8
8
  import '@alfalab/hooks';
9
- import '../colors.module-62b0790b.js';
10
- import '../common.module-d91f4ff7.js';
9
+ import '../colors.module-93e1488b.js';
10
+ import '../common.module-0bb3a173.js';
@@ -1,4 +1,17 @@
1
- import { FC } from 'react';
2
- import { TitleProps } from "../title/component";
3
- declare const TitleResponsive: FC<TitleProps>;
1
+ /// <reference types="react" />
2
+ import React from 'react';
3
+ declare const TitleResponsive: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<HTMLHeadingElement>, "color"> & {
4
+ tag: "div" | "h1" | "h2" | "h3" | "h4" | "h5" | "h6";
5
+ view?: "small" | "medium" | "xlarge" | "large" | "xsmall" | undefined;
6
+ color?: "tertiary" | "disabled" | "accent" | "primary" | "attention" | "positive" | "secondary" | "tertiary-inverted" | "primary-inverted" | "secondary-inverted" | "link" | "negative" | "static-primary-light" | "static-secondary-light" | "static-tertiary-light" | "static-primary-dark" | "static-secondary-dark" | "static-tertiary-dark" | "static-accent" | undefined;
7
+ weight?: "bold" | "regular" | "medium" | undefined;
8
+ font?: "styrene" | "system" | undefined;
9
+ defaultMargins?: boolean | undefined;
10
+ className?: string | undefined;
11
+ dataTestId?: string | undefined;
12
+ children?: React.ReactNode;
13
+ rowLimit?: 1 | 2 | 3 | undefined;
14
+ showSkeleton?: boolean | undefined;
15
+ skeletonProps?: import("../types").TextSkeletonProps | undefined;
16
+ } & React.RefAttributes<HTMLDivElement | HTMLHeadingElement>>;
4
17
  export { TitleResponsive };
@@ -1,21 +1,16 @@
1
- import React from 'react';
1
+ import React, { forwardRef } from 'react';
2
2
  import { Title } from '../title/component.js';
3
- import { c as commonStyles } from '../common.module-d91f4ff7.js';
3
+ import { c as commonStyles } from '../common.module-0bb3a173.js';
4
4
  import 'react-merge-refs';
5
5
  import 'classnames';
6
- import '../hooks/useSkeleton.js';
6
+ import '../hooks/use-skeleton.js';
7
7
  import '@alfalab/core-components-skeleton/modern';
8
8
  import '@alfalab/hooks';
9
- import '../colors.module-62b0790b.js';
9
+ import '../colors.module-93e1488b.js';
10
10
 
11
- const styles = {"styrene-xlarge":"typography__styrene-xlarge_lmdod","styrene-large":"typography__styrene-large_lmdod","styrene-medium":"typography__styrene-medium_lmdod","styrene-small":"typography__styrene-small_lmdod","styrene-xsmall":"typography__styrene-xsmall_lmdod","system-xlarge":"typography__system-xlarge_lmdod","system-large":"typography__system-large_lmdod","system-medium":"typography__system-medium_lmdod","system-small":"typography__system-small_lmdod","system-xsmall":"typography__system-xsmall_lmdod","margins-xlarge":"typography__margins-xlarge_lmdod","margins-large":"typography__margins-large_lmdod","margins-medium":"typography__margins-medium_lmdod","margins-small":"typography__margins-small_lmdod","margins-xsmall":"typography__margins-xsmall_lmdod"};
11
+ const styles = {"styrene-xlarge":"typography__styrene-xlarge_1vnps","styrene-large":"typography__styrene-large_1vnps","styrene-medium":"typography__styrene-medium_1vnps","styrene-small":"typography__styrene-small_1vnps","styrene-xsmall":"typography__styrene-xsmall_1vnps","system-xlarge":"typography__system-xlarge_1vnps","system-large":"typography__system-large_1vnps","system-medium":"typography__system-medium_1vnps","system-small":"typography__system-small_1vnps","system-xsmall":"typography__system-xsmall_1vnps","margins-xlarge":"typography__margins-xlarge_1vnps","margins-large":"typography__margins-large_1vnps","margins-medium":"typography__margins-medium_1vnps","margins-small":"typography__margins-small_1vnps","margins-xsmall":"typography__margins-xsmall_1vnps"};
12
12
  require('./index.css')
13
13
 
14
- const TitleResponsive = (props) => (
15
- /**
16
- * Если поменять Object.assign на деструктуризацию, то упадут тесты.
17
- * Видимо, это особенность работы jest и css-modules.
18
- */
19
- React.createElement(Title, { ...props, styles: Object.assign(commonStyles, styles) }));
14
+ const TitleResponsive = forwardRef((props, ref) => React.createElement(Title, { ...props, styles: Object.assign(commonStyles, styles), ref: ref }));
20
15
 
21
16
  export { TitleResponsive };
@@ -1,4 +1,4 @@
1
- /* hash: 1aaxb */
1
+ /* hash: d0kkb */
2
2
  :root {
3
3
  } /* deprecated */ :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
4
4
  } :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
@@ -20,68 +20,68 @@
20
20
  --font-family-styrene: 'Styrene UI', system-ui, -apple-system, 'Segoe UI', Roboto,
21
21
  'Helvetica Neue', Helvetica, sans-serif;
22
22
  } :root {
23
- } /* TODO: поменять медиа-запросы на миксины */ .typography__styrene-xlarge_lmdod {
23
+ } /* TODO: поменять медиа-запросы на миксины */ .typography__styrene-xlarge_1vnps {
24
24
  font-size: 34px;
25
25
  line-height: 40px;
26
26
  font-weight: 500;
27
27
  font-feature-settings: 'ss01';
28
28
  font-family: var(--font-family-styrene);
29
- } .typography__styrene-large_lmdod {
29
+ } .typography__styrene-large_1vnps {
30
30
  font-size: 30px;
31
31
  line-height: 36px;
32
32
  font-weight: 500;
33
33
  font-feature-settings: 'ss01';
34
34
  font-family: var(--font-family-styrene);
35
- } .typography__styrene-medium_lmdod {
35
+ } .typography__styrene-medium_1vnps {
36
36
  font-size: 26px;
37
37
  line-height: 32px;
38
38
  font-weight: 500;
39
39
  font-feature-settings: 'ss01';
40
40
  font-family: var(--font-family-styrene);
41
- } .typography__styrene-small_lmdod {
41
+ } .typography__styrene-small_1vnps {
42
42
  font-size: 20px;
43
43
  line-height: 28px;
44
44
  font-weight: 500;
45
45
  font-feature-settings: 'ss01';
46
46
  font-family: var(--font-family-styrene);
47
- } .typography__styrene-xsmall_lmdod {
47
+ } .typography__styrene-xsmall_1vnps {
48
48
  font-size: 16px;
49
49
  line-height: 20px;
50
50
  font-weight: 500;
51
51
  font-feature-settings: 'ss01';
52
52
  font-family: var(--font-family-styrene);
53
- } .typography__system-xlarge_lmdod {
53
+ } .typography__system-xlarge_1vnps {
54
54
  font-size: 34px;
55
55
  line-height: 40px;
56
56
  font-weight: 600;
57
- } .typography__system-large_lmdod {
57
+ } .typography__system-large_1vnps {
58
58
  font-size: 30px;
59
59
  line-height: 36px;
60
60
  font-weight: 600;
61
- } .typography__system-medium_lmdod {
61
+ } .typography__system-medium_1vnps {
62
62
  font-size: 26px;
63
63
  line-height: 32px;
64
64
  font-weight: 600;
65
- } .typography__system-small_lmdod {
65
+ } .typography__system-small_1vnps {
66
66
  font-size: 20px;
67
67
  line-height: 28px;
68
68
  font-weight: 600;
69
- } .typography__system-xsmall_lmdod {
69
+ } .typography__system-xsmall_1vnps {
70
70
  font-size: 16px;
71
71
  line-height: 20px;
72
72
  font-weight: 600;
73
- } .typography__margins-xlarge_lmdod {
73
+ } .typography__margins-xlarge_1vnps {
74
74
  margin: 0 0 var(--gap-xl);
75
- } .typography__margins-large_lmdod {
75
+ } .typography__margins-large_1vnps {
76
76
  margin: var(--gap-3xl) 0 var(--gap-m);
77
- } .typography__margins-medium_lmdod {
77
+ } .typography__margins-medium_1vnps {
78
78
  margin: var(--gap-3xl) 0 var(--gap-m);
79
- } .typography__margins-small_lmdod {
79
+ } .typography__margins-small_1vnps {
80
80
  margin: var(--gap-3xl) 0 var(--gap-m);
81
- } .typography__margins-xsmall_lmdod {
81
+ } .typography__margins-xsmall_1vnps {
82
82
  margin: var(--gap-3xl) 0 var(--gap-m);
83
83
  } @media screen and (min-width: 1024px) {
84
- .typography__styrene-xlarge_lmdod {
84
+ .typography__styrene-xlarge_1vnps {
85
85
  font-size: 48px;
86
86
  line-height: 64px;
87
87
  font-weight: 500;
@@ -89,7 +89,7 @@
89
89
  font-family: var(--font-family-styrene);
90
90
  }
91
91
 
92
- .typography__styrene-large_lmdod {
92
+ .typography__styrene-large_1vnps {
93
93
  font-size: 40px;
94
94
  line-height: 48px;
95
95
  font-weight: 500;
@@ -97,7 +97,7 @@
97
97
  font-family: var(--font-family-styrene);
98
98
  }
99
99
 
100
- .typography__styrene-medium_lmdod {
100
+ .typography__styrene-medium_1vnps {
101
101
  font-size: 32px;
102
102
  line-height: 40px;
103
103
  font-weight: 500;
@@ -105,7 +105,7 @@
105
105
  font-family: var(--font-family-styrene);
106
106
  }
107
107
 
108
- .typography__styrene-small_lmdod {
108
+ .typography__styrene-small_1vnps {
109
109
  font-size: 24px;
110
110
  line-height: 32px;
111
111
  font-weight: 500;
@@ -113,7 +113,7 @@
113
113
  font-family: var(--font-family-styrene);
114
114
  }
115
115
 
116
- .typography__styrene-xsmall_lmdod {
116
+ .typography__styrene-xsmall_1vnps {
117
117
  font-size: 20px;
118
118
  line-height: 24px;
119
119
  font-weight: 500;
@@ -121,53 +121,53 @@
121
121
  font-family: var(--font-family-styrene);
122
122
  }
123
123
 
124
- .typography__system-xlarge_lmdod {
124
+ .typography__system-xlarge_1vnps {
125
125
  font-size: 48px;
126
126
  line-height: 52px;
127
127
  font-weight: 700;
128
128
  }
129
129
 
130
- .typography__system-large_lmdod {
130
+ .typography__system-large_1vnps {
131
131
  font-size: 40px;
132
132
  line-height: 48px;
133
133
  font-weight: 700;
134
134
  }
135
135
 
136
- .typography__system-medium_lmdod {
136
+ .typography__system-medium_1vnps {
137
137
  font-size: 30px;
138
138
  line-height: 36px;
139
139
  font-weight: 700;
140
140
  }
141
141
 
142
- .typography__system-small_lmdod {
142
+ .typography__system-small_1vnps {
143
143
  font-size: 22px;
144
144
  line-height: 26px;
145
145
  font-weight: 700;
146
146
  }
147
147
 
148
- .typography__system-xsmall_lmdod {
148
+ .typography__system-xsmall_1vnps {
149
149
  font-size: 18px;
150
150
  line-height: 22px;
151
151
  font-weight: 700;
152
152
  }
153
153
 
154
- .typography__margins-xlarge_lmdod {
154
+ .typography__margins-xlarge_1vnps {
155
155
  margin: 0 0 var(--gap-xl);
156
156
  }
157
157
 
158
- .typography__margins-large_lmdod {
158
+ .typography__margins-large_1vnps {
159
159
  margin: var(--gap-4xl) 0 var(--gap-xl);
160
160
  }
161
161
 
162
- .typography__margins-medium_lmdod {
162
+ .typography__margins-medium_1vnps {
163
163
  margin: var(--gap-4xl) 0 var(--gap-xl);
164
164
  }
165
165
 
166
- .typography__margins-small_lmdod {
166
+ .typography__margins-small_1vnps {
167
167
  margin: var(--gap-3xl) 0 var(--gap-m);
168
168
  }
169
169
 
170
- .typography__margins-xsmall_lmdod {
170
+ .typography__margins-xsmall_1vnps {
171
171
  margin: var(--gap-3xl) 0 var(--gap-m);
172
172
  }
173
173
  }
@@ -3,8 +3,8 @@ import 'react';
3
3
  import '../title/component.js';
4
4
  import 'react-merge-refs';
5
5
  import 'classnames';
6
- import '../hooks/useSkeleton.js';
6
+ import '../hooks/use-skeleton.js';
7
7
  import '@alfalab/core-components-skeleton/modern';
8
8
  import '@alfalab/hooks';
9
- import '../colors.module-62b0790b.js';
10
- import '../common.module-d91f4ff7.js';
9
+ import '../colors.module-93e1488b.js';
10
+ import '../common.module-0bb3a173.js';
package/modern/types.d.ts CHANGED
@@ -9,5 +9,13 @@ type TextSkeletonProps = {
9
9
  * Ширина строки
10
10
  */
11
11
  width?: WidthUnit | WidthUnit[];
12
+ /**
13
+ * Выравнивание элементов по горизонтали
14
+ */
15
+ align?: 'left' | 'center' | 'right';
16
+ /**
17
+ * Класс для обертки скелетона
18
+ */
19
+ wrapperClassName?: string;
12
20
  };
13
21
  export { TextElementType, TextSkeletonProps };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alfalab/core-components-typography",
3
- "version": "4.2.1",
3
+ "version": "4.4.0",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "license": "MIT",
@@ -1 +1 @@
1
- export * from './useSkeleton';
1
+ export * from './use-skeleton';
@@ -3,3 +3,15 @@
3
3
  .skeletonText.skeletonText {
4
4
  border-radius: var(--border-radius-pill);
5
5
  }
6
+
7
+ .left > div {
8
+ margin-right: auto;
9
+ }
10
+
11
+ .center > div {
12
+ margin: 0 auto;
13
+ }
14
+
15
+ .right > div {
16
+ margin-left: auto;
17
+ }
@@ -1,4 +1,5 @@
1
1
  import React, { useRef, useState } from 'react';
2
+ import cn from 'classnames';
2
3
 
3
4
  import { Skeleton } from '@alfalab/core-components-skeleton';
4
5
  import { useLayoutEffect_SAFE_FOR_SSR } from '@alfalab/hooks';
@@ -52,7 +53,14 @@ export function useSkeleton(showSkeleton?: boolean, skeletonProps?: TextSkeleton
52
53
  const renderSkeleton = (props: SkeletonProps) => {
53
54
  if (showSkeleton && skeletonParams) {
54
55
  return (
55
- <div className={props.wrapperClassName} data-test-id={props.dataTestId}>
56
+ <div
57
+ className={cn(
58
+ skeletonProps?.wrapperClassName,
59
+ props.wrapperClassName,
60
+ skeletonProps?.align && styles[skeletonProps.align],
61
+ )}
62
+ data-test-id={props.dataTestId}
63
+ >
56
64
  {[...Array(skeletonParams.rows)].map((_, idx) => {
57
65
  const width = Array.isArray(skeletonProps?.width)
58
66
  ? skeletonProps?.width[idx]
@@ -1,17 +1,13 @@
1
- import React, { FC } from 'react';
1
+ import React, { forwardRef } from 'react';
2
2
 
3
3
  import { Title as TitleBase, TitleProps } from './component';
4
4
 
5
5
  import commonStyles from './common.module.css';
6
6
  import styles from './index.module.css';
7
7
 
8
- const Title: FC<TitleProps> = (props) => (
9
- /**
10
- * Если поменять Object.assign на деструктуризацию, то упадут тесты.
11
- * Видимо, это особенность работы jest и css-modules.
12
- */
13
- <TitleBase {...props} styles={Object.assign(commonStyles, styles)} />
14
- );
8
+ const Title = forwardRef<HTMLHeadingElement | HTMLDivElement, TitleProps>((props, ref) => (
9
+ <TitleBase {...props} styles={Object.assign(commonStyles, styles)} ref={ref} />
10
+ ));
15
11
 
16
12
  export { Title };
17
13
  export type { TitleProps };