@alfalab/core-components-typography 4.0.0 → 4.2.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/colors.css +33 -33
- package/colors.module-70706104.js +6 -0
- package/common.module-78c2a0fa.js +6 -0
- package/component.js +6 -2
- package/cssm/colors.module.css +13 -13
- package/cssm/component.js +5 -0
- package/cssm/hooks/index.d.ts +1 -0
- package/cssm/hooks/index.js +14 -0
- package/cssm/hooks/use-skeleton.module.css +19 -0
- package/cssm/hooks/useSkeleton.d.ts +12 -0
- package/cssm/hooks/useSkeleton.js +59 -0
- package/cssm/index.js +5 -0
- package/cssm/text/component.d.ts +10 -2
- package/cssm/text/component.js +39 -7
- package/cssm/text/index.js +5 -0
- package/cssm/text/index.module.css +8 -0
- package/cssm/title/component.d.ts +19 -2
- package/cssm/title/component.js +16 -2
- package/cssm/title/index.js +5 -0
- package/cssm/title-mobile/component.js +5 -0
- package/cssm/title-mobile/index.js +5 -0
- package/cssm/title-responsive/component.js +5 -0
- package/cssm/title-responsive/index.js +5 -0
- package/cssm/types.d.ts +12 -1
- package/esm/colors.css +33 -33
- package/esm/colors.module-ac92fbac.js +4 -0
- package/esm/common.module-95067533.js +4 -0
- package/esm/component.js +6 -2
- package/esm/hooks/index.d.ts +1 -0
- package/esm/hooks/index.js +5 -0
- package/esm/hooks/use-skeleton.css +20 -0
- package/esm/hooks/useSkeleton.d.ts +12 -0
- package/esm/hooks/useSkeleton.js +52 -0
- package/esm/index.js +6 -2
- package/esm/text/component.d.ts +10 -2
- package/esm/text/component.js +39 -9
- package/esm/text/index.css +26 -18
- package/esm/text/index.js +5 -1
- package/esm/title/common.css +5 -5
- package/esm/title/component.d.ts +19 -2
- package/esm/title/component.js +15 -3
- package/esm/title/index.css +19 -19
- package/esm/title/index.js +7 -3
- package/esm/title-mobile/component.js +7 -3
- package/esm/title-mobile/index.css +11 -11
- package/esm/title-mobile/index.js +6 -2
- package/esm/title-responsive/component.js +7 -3
- package/esm/title-responsive/index.css +31 -31
- package/esm/title-responsive/index.js +6 -2
- package/esm/types.d.ts +12 -1
- package/hooks/index.d.ts +1 -0
- package/hooks/index.js +13 -0
- package/hooks/use-skeleton.css +20 -0
- package/hooks/useSkeleton.d.ts +12 -0
- package/hooks/useSkeleton.js +60 -0
- package/index.js +6 -2
- package/modern/colors.css +33 -33
- package/modern/colors.module-1a9450b1.js +4 -0
- package/modern/common.module-151b3759.js +4 -0
- package/modern/component.js +6 -2
- package/modern/hooks/index.d.ts +1 -0
- package/modern/hooks/index.js +4 -0
- package/modern/hooks/use-skeleton.css +20 -0
- package/modern/hooks/useSkeleton.d.ts +12 -0
- package/modern/hooks/useSkeleton.js +51 -0
- package/modern/index.js +6 -2
- package/modern/text/component.d.ts +10 -2
- package/modern/text/component.js +40 -8
- package/modern/text/index.css +26 -18
- package/modern/text/index.js +5 -1
- package/modern/title/common.css +5 -5
- package/modern/title/component.d.ts +19 -2
- package/modern/title/component.js +16 -2
- package/modern/title/index.css +19 -19
- package/modern/title/index.js +7 -3
- package/modern/title-mobile/component.js +7 -3
- package/modern/title-mobile/index.css +11 -11
- package/modern/title-mobile/index.js +6 -2
- package/modern/title-responsive/component.js +7 -3
- package/modern/title-responsive/index.css +31 -31
- package/modern/title-responsive/index.js +6 -2
- package/modern/types.d.ts +12 -1
- package/package.json +4 -1
- package/src/hooks/index.ts +1 -0
- package/src/hooks/use-skeleton.module.css +5 -0
- package/src/hooks/useSkeleton.tsx +78 -0
- package/src/text/component.tsx +74 -22
- package/src/text/index.module.css +8 -0
- package/src/title/component.tsx +46 -18
- package/src/types.ts +14 -0
- package/text/component.d.ts +10 -2
- package/text/component.js +40 -9
- package/text/index.css +26 -18
- package/text/index.js +5 -1
- package/title/common.css +5 -5
- package/title/component.d.ts +19 -2
- package/title/component.js +16 -3
- package/title/index.css +19 -19
- package/title/index.js +7 -3
- package/title-mobile/component.js +7 -3
- package/title-mobile/index.css +11 -11
- package/title-mobile/index.js +6 -2
- package/title-responsive/component.js +7 -3
- package/title-responsive/index.css +31 -31
- package/title-responsive/index.js +6 -2
- package/types.d.ts +12 -1
- package/colors.module-1c06b16d.js +0 -6
- package/common.module-00fb3f71.js +0 -6
- package/esm/colors.module-d9f55bc3.js +0 -4
- package/esm/common.module-39c4c6a5.js +0 -4
- package/modern/colors.module-d0f9b310.js +0 -4
- package/modern/common.module-47d6bc91.js +0 -4
package/cssm/types.d.ts
CHANGED
|
@@ -1,2 +1,13 @@
|
|
|
1
1
|
type TextElementType = HTMLParagraphElement | HTMLSpanElement | HTMLDivElement;
|
|
2
|
-
|
|
2
|
+
type WidthUnit = number | string;
|
|
3
|
+
type TextSkeletonProps = {
|
|
4
|
+
/**
|
|
5
|
+
* Кол-во строк текста
|
|
6
|
+
*/
|
|
7
|
+
rows?: number;
|
|
8
|
+
/**
|
|
9
|
+
* Ширина строки
|
|
10
|
+
*/
|
|
11
|
+
width?: WidthUnit | WidthUnit[];
|
|
12
|
+
};
|
|
13
|
+
export { TextElementType, TextSkeletonProps };
|
package/esm/colors.css
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
/* hash:
|
|
1
|
+
/* hash: i9al3 */
|
|
2
2
|
:root {
|
|
3
3
|
} /* deprecated */ :root {
|
|
4
4
|
--color-light-text-accent: #ef3124;
|
|
5
|
-
--color-light-text-attention: #
|
|
6
|
-
--color-light-text-disabled: rgba(
|
|
7
|
-
--color-light-text-link: #
|
|
8
|
-
--color-light-text-negative: #
|
|
9
|
-
--color-light-text-positive: #
|
|
5
|
+
--color-light-text-attention: #ea8313;
|
|
6
|
+
--color-light-text-disabled: rgba(5, 11, 44, 0.18);
|
|
7
|
+
--color-light-text-link: #2a77ef;
|
|
8
|
+
--color-light-text-negative: #ec2e14;
|
|
9
|
+
--color-light-text-positive: #0d9336;
|
|
10
10
|
--color-light-text-primary: #0e0e0e;
|
|
11
11
|
--color-light-text-primary-inverted: #fff;
|
|
12
|
-
--color-light-text-secondary: rgba(
|
|
13
|
-
--color-light-text-secondary-inverted: rgba(
|
|
14
|
-
--color-light-text-tertiary: rgba(
|
|
15
|
-
--color-light-text-tertiary-inverted: rgba(
|
|
12
|
+
--color-light-text-secondary: rgba(4, 4, 19, 0.55);
|
|
13
|
+
--color-light-text-secondary-inverted: rgba(238, 238, 251, 0.55);
|
|
14
|
+
--color-light-text-tertiary: rgba(5, 8, 29, 0.38);
|
|
15
|
+
--color-light-text-tertiary-inverted: rgba(233, 233, 250, 0.37);
|
|
16
16
|
--color-static-text-accent: #ef3124;
|
|
17
17
|
--color-static-text-primary-dark: #0e0e0e;
|
|
18
18
|
--color-static-text-primary-light: #fff;
|
|
19
|
-
--color-static-text-secondary-dark: rgba(
|
|
20
|
-
--color-static-text-secondary-light: rgba(
|
|
21
|
-
--color-static-text-tertiary-dark: rgba(
|
|
22
|
-
--color-static-text-tertiary-light: rgba(
|
|
19
|
+
--color-static-text-secondary-dark: rgba(4, 4, 19, 0.55);
|
|
20
|
+
--color-static-text-secondary-light: rgba(238, 238, 251, 0.55);
|
|
21
|
+
--color-static-text-tertiary-dark: rgba(5, 8, 29, 0.38);
|
|
22
|
+
--color-static-text-tertiary-light: rgba(233, 233, 250, 0.37); /* 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 */
|
|
23
23
|
} :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 */
|
|
24
24
|
} :root {
|
|
25
25
|
} :root {
|
|
@@ -33,42 +33,42 @@
|
|
|
33
33
|
} :root {
|
|
34
34
|
} :root {
|
|
35
35
|
} :root {
|
|
36
|
-
} /* colors */ .
|
|
36
|
+
} /* colors */ .typography__tertiary_1t5nw {
|
|
37
37
|
color: var(--color-light-text-tertiary);
|
|
38
|
-
} .
|
|
38
|
+
} .typography__disabled_1t5nw {
|
|
39
39
|
color: var(--color-light-text-disabled);
|
|
40
|
-
} .
|
|
40
|
+
} .typography__accent_1t5nw {
|
|
41
41
|
color: var(--color-light-text-accent);
|
|
42
|
-
} .
|
|
42
|
+
} .typography__primary_1t5nw {
|
|
43
43
|
color: var(--color-light-text-primary);
|
|
44
|
-
} .
|
|
44
|
+
} .typography__attention_1t5nw {
|
|
45
45
|
color: var(--color-light-text-attention);
|
|
46
|
-
} .
|
|
46
|
+
} .typography__positive_1t5nw {
|
|
47
47
|
color: var(--color-light-text-positive);
|
|
48
|
-
} .
|
|
48
|
+
} .typography__secondary_1t5nw {
|
|
49
49
|
color: var(--color-light-text-secondary);
|
|
50
|
-
} .typography__tertiary-
|
|
50
|
+
} .typography__tertiary-inverted_1t5nw {
|
|
51
51
|
color: var(--color-light-text-tertiary-inverted);
|
|
52
|
-
} .typography__primary-
|
|
52
|
+
} .typography__primary-inverted_1t5nw {
|
|
53
53
|
color: var(--color-light-text-primary-inverted);
|
|
54
|
-
} .typography__secondary-
|
|
54
|
+
} .typography__secondary-inverted_1t5nw {
|
|
55
55
|
color: var(--color-light-text-secondary-inverted);
|
|
56
|
-
} .
|
|
56
|
+
} .typography__link_1t5nw {
|
|
57
57
|
color: var(--color-light-text-link);
|
|
58
|
-
} .
|
|
58
|
+
} .typography__negative_1t5nw {
|
|
59
59
|
color: var(--color-light-text-negative);
|
|
60
|
-
} .typography__static-primary-
|
|
60
|
+
} .typography__static-primary-light_1t5nw {
|
|
61
61
|
color: var(--color-static-text-primary-light);
|
|
62
|
-
} .typography__static-secondary-
|
|
62
|
+
} .typography__static-secondary-light_1t5nw {
|
|
63
63
|
color: var(--color-static-text-secondary-light);
|
|
64
|
-
} .typography__static-tertiary-
|
|
64
|
+
} .typography__static-tertiary-light_1t5nw {
|
|
65
65
|
color: var(--color-static-text-tertiary-light);
|
|
66
|
-
} .typography__static-primary-
|
|
66
|
+
} .typography__static-primary-dark_1t5nw {
|
|
67
67
|
color: var(--color-static-text-primary-dark);
|
|
68
|
-
} .typography__static-secondary-
|
|
68
|
+
} .typography__static-secondary-dark_1t5nw {
|
|
69
69
|
color: var(--color-static-text-secondary-dark);
|
|
70
|
-
} .typography__static-tertiary-
|
|
70
|
+
} .typography__static-tertiary-dark_1t5nw {
|
|
71
71
|
color: var(--color-static-text-tertiary-dark);
|
|
72
|
-
} .typography__static-
|
|
72
|
+
} .typography__static-accent_1t5nw {
|
|
73
73
|
color: var(--color-static-text-accent);
|
|
74
74
|
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
var colors = {"tertiary":"typography__tertiary_1t5nw","disabled":"typography__disabled_1t5nw","accent":"typography__accent_1t5nw","primary":"typography__primary_1t5nw","attention":"typography__attention_1t5nw","positive":"typography__positive_1t5nw","secondary":"typography__secondary_1t5nw","tertiary-inverted":"typography__tertiary-inverted_1t5nw","primary-inverted":"typography__primary-inverted_1t5nw","secondary-inverted":"typography__secondary-inverted_1t5nw","link":"typography__link_1t5nw","negative":"typography__negative_1t5nw","static-primary-light":"typography__static-primary-light_1t5nw","static-secondary-light":"typography__static-secondary-light_1t5nw","static-tertiary-light":"typography__static-tertiary-light_1t5nw","static-primary-dark":"typography__static-primary-dark_1t5nw","static-secondary-dark":"typography__static-secondary-dark_1t5nw","static-tertiary-dark":"typography__static-tertiary-dark_1t5nw","static-accent":"typography__static-accent_1t5nw"};
|
|
2
|
+
require('./colors.css')
|
|
3
|
+
|
|
4
|
+
export { colors as c };
|
package/esm/component.js
CHANGED
|
@@ -4,10 +4,14 @@ import { TitleMobile } from './title-mobile/component.js';
|
|
|
4
4
|
import { TitleResponsive } from './title-responsive/component.js';
|
|
5
5
|
import 'tslib';
|
|
6
6
|
import 'react';
|
|
7
|
+
import 'react-merge-refs';
|
|
7
8
|
import 'classnames';
|
|
8
|
-
import './
|
|
9
|
+
import './hooks/useSkeleton.js';
|
|
10
|
+
import '@alfalab/core-components-skeleton/esm';
|
|
11
|
+
import '@alfalab/hooks';
|
|
12
|
+
import './colors.module-ac92fbac.js';
|
|
9
13
|
import './title/component.js';
|
|
10
|
-
import './common.module-
|
|
14
|
+
import './common.module-95067533.js';
|
|
11
15
|
|
|
12
16
|
var Typography = {
|
|
13
17
|
Title: Title,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./useSkeleton";
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/* hash: m4447 */
|
|
2
|
+
:root {
|
|
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
|
+
} :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 */
|
|
5
|
+
} :root {
|
|
6
|
+
} :root {
|
|
7
|
+
|
|
8
|
+
/* Hard */
|
|
9
|
+
|
|
10
|
+
/* Up */
|
|
11
|
+
|
|
12
|
+
/* Hard up */
|
|
13
|
+
} :root {
|
|
14
|
+
--border-radius-pill: 99px;
|
|
15
|
+
} :root {
|
|
16
|
+
} :root {
|
|
17
|
+
} :root {
|
|
18
|
+
} .typography__skeletonText_zkwz6.typography__skeletonText_zkwz6 {
|
|
19
|
+
border-radius: var(--border-radius-pill);
|
|
20
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { TextSkeletonProps } from "../types";
|
|
4
|
+
type SkeletonProps = {
|
|
5
|
+
wrapperClassName?: string;
|
|
6
|
+
dataTestId?: string;
|
|
7
|
+
};
|
|
8
|
+
declare function useSkeleton(showSkeleton?: boolean, skeletonProps?: TextSkeletonProps): {
|
|
9
|
+
renderSkeleton: (props: SkeletonProps) => React.JSX.Element | null;
|
|
10
|
+
textRef: React.RefObject<HTMLElement>;
|
|
11
|
+
};
|
|
12
|
+
export { useSkeleton };
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { __spreadArray } from 'tslib';
|
|
2
|
+
import React, { useState, useRef } from 'react';
|
|
3
|
+
import { Skeleton } from '@alfalab/core-components-skeleton/esm';
|
|
4
|
+
import { useLayoutEffect_SAFE_FOR_SSR } from '@alfalab/hooks';
|
|
5
|
+
|
|
6
|
+
var styles = {"skeletonText":"typography__skeletonText_zkwz6"};
|
|
7
|
+
require('./use-skeleton.css')
|
|
8
|
+
|
|
9
|
+
function useSkeleton(showSkeleton, skeletonProps) {
|
|
10
|
+
var _a = useState(), skeletonParams = _a[0], setSkeletonParams = _a[1];
|
|
11
|
+
var textRef = useRef(null);
|
|
12
|
+
useLayoutEffect_SAFE_FOR_SSR(function () {
|
|
13
|
+
if (showSkeleton && textRef.current) {
|
|
14
|
+
var style = getComputedStyle(textRef.current);
|
|
15
|
+
var textHeight = textRef.current.offsetHeight;
|
|
16
|
+
var fontSize = parseInt(style.fontSize, 10);
|
|
17
|
+
var lineHeight = parseInt(style.lineHeight, 10);
|
|
18
|
+
var padding = (lineHeight - fontSize) % 2 === 0
|
|
19
|
+
? (lineHeight - fontSize) / 2
|
|
20
|
+
: (lineHeight - fontSize - 1) / 2;
|
|
21
|
+
var rows = (skeletonProps === null || skeletonProps === void 0 ? void 0 : skeletonProps.rows)
|
|
22
|
+
? skeletonProps === null || skeletonProps === void 0 ? void 0 : skeletonProps.rows
|
|
23
|
+
: Math.ceil(textHeight / lineHeight);
|
|
24
|
+
setSkeletonParams({
|
|
25
|
+
height: lineHeight - padding * 2,
|
|
26
|
+
padding: "".concat(padding, "px 0"),
|
|
27
|
+
rows: rows,
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
setSkeletonParams(undefined);
|
|
32
|
+
}
|
|
33
|
+
}, [showSkeleton, skeletonProps === null || skeletonProps === void 0 ? void 0 : skeletonProps.rows]);
|
|
34
|
+
var renderSkeleton = function (props) {
|
|
35
|
+
if (showSkeleton && skeletonParams) {
|
|
36
|
+
return (React.createElement("div", { className: props.wrapperClassName, "data-test-id": props.dataTestId }, __spreadArray([], Array(skeletonParams.rows), true).map(function (_, idx) {
|
|
37
|
+
var width = Array.isArray(skeletonProps === null || skeletonProps === void 0 ? void 0 : skeletonProps.width)
|
|
38
|
+
? skeletonProps === null || skeletonProps === void 0 ? void 0 : skeletonProps.width[idx]
|
|
39
|
+
: skeletonProps === null || skeletonProps === void 0 ? void 0 : skeletonProps.width;
|
|
40
|
+
return (
|
|
41
|
+
// eslint-disable-next-line react/no-array-index-key
|
|
42
|
+
React.createElement("div", { key: idx, style: { width: width, padding: skeletonParams.padding } },
|
|
43
|
+
React.createElement(Skeleton, { visible: true, className: styles.skeletonText },
|
|
44
|
+
React.createElement("div", { style: { height: skeletonParams.height } }))));
|
|
45
|
+
})));
|
|
46
|
+
}
|
|
47
|
+
return null;
|
|
48
|
+
};
|
|
49
|
+
return { renderSkeleton: renderSkeleton, textRef: textRef };
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export { useSkeleton };
|
package/esm/index.js
CHANGED
|
@@ -3,10 +3,14 @@ export { typographyPresets } from './presets.js';
|
|
|
3
3
|
import './text/component.js';
|
|
4
4
|
import 'tslib';
|
|
5
5
|
import 'react';
|
|
6
|
+
import 'react-merge-refs';
|
|
6
7
|
import 'classnames';
|
|
7
|
-
import './
|
|
8
|
+
import './hooks/useSkeleton.js';
|
|
9
|
+
import '@alfalab/core-components-skeleton/esm';
|
|
10
|
+
import '@alfalab/hooks';
|
|
11
|
+
import './colors.module-ac92fbac.js';
|
|
8
12
|
import './title/index.js';
|
|
9
13
|
import './title/component.js';
|
|
10
|
-
import './common.module-
|
|
14
|
+
import './common.module-95067533.js';
|
|
11
15
|
import './title-mobile/component.js';
|
|
12
16
|
import './title-responsive/component.js';
|
package/esm/text/component.d.ts
CHANGED
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { HTMLAttributes } from "react";
|
|
4
4
|
import { Color } from "../colors";
|
|
5
|
-
import { TextElementType } from "../types";
|
|
5
|
+
import { TextElementType, TextSkeletonProps } from "../types";
|
|
6
6
|
type NativeProps = HTMLAttributes<HTMLSpanElement>;
|
|
7
7
|
type TextBaseProps = {
|
|
8
8
|
/**
|
|
9
9
|
* [Вариант начертания](https://core-ds.github.io/core-components/master/?path=/docs/tokens-assets-типографика--docs)
|
|
10
10
|
*/
|
|
11
|
-
view?: 'primary-large' | 'primary-medium' | 'primary-small' | 'secondary-large' | 'secondary-medium' | 'secondary-small' | 'component' | 'caps';
|
|
11
|
+
view?: 'primary-large' | 'primary-medium' | 'primary-small' | 'secondary-large' | 'secondary-medium' | 'secondary-small' | 'component' | 'component-primary' | 'component-secondary' | 'caps';
|
|
12
12
|
/**
|
|
13
13
|
* Цвет текста
|
|
14
14
|
*/
|
|
@@ -45,6 +45,14 @@ type TextBaseProps = {
|
|
|
45
45
|
* Количество строк (не поддерживает IE)
|
|
46
46
|
*/
|
|
47
47
|
rowLimit?: 1 | 2 | 3;
|
|
48
|
+
/**
|
|
49
|
+
* Показать скелетон
|
|
50
|
+
*/
|
|
51
|
+
showSkeleton?: boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Пропы для скелетона
|
|
54
|
+
*/
|
|
55
|
+
skeletonProps?: TextSkeletonProps;
|
|
48
56
|
};
|
|
49
57
|
type TextPTagProps = Omit<TextBaseProps, 'tag' | 'defaultMargins'> & {
|
|
50
58
|
tag?: 'p';
|
package/esm/text/component.js
CHANGED
|
@@ -1,20 +1,50 @@
|
|
|
1
1
|
import { __rest, __assign } from 'tslib';
|
|
2
2
|
import React, { forwardRef } from 'react';
|
|
3
|
+
import mergeRefs from 'react-merge-refs';
|
|
3
4
|
import cn from 'classnames';
|
|
4
|
-
import {
|
|
5
|
+
import { useSkeleton } from '../hooks/useSkeleton.js';
|
|
6
|
+
import { c as colors } from '../colors.module-ac92fbac.js';
|
|
7
|
+
import '@alfalab/core-components-skeleton/esm';
|
|
8
|
+
import '@alfalab/hooks';
|
|
5
9
|
|
|
6
|
-
var styles = {"paragraph":"
|
|
10
|
+
var styles = {"paragraph":"typography__paragraph_nz4l3","paragraphWithMargins":"typography__paragraphWithMargins_nz4l3","primary-large":"typography__primary-large_nz4l3","primary-medium":"typography__primary-medium_nz4l3","primary-small":"typography__primary-small_nz4l3","secondary-large":"typography__secondary-large_nz4l3","secondary-medium":"typography__secondary-medium_nz4l3","secondary-small":"typography__secondary-small_nz4l3","component":"typography__component_nz4l3","component-primary":"typography__component-primary_nz4l3","component-secondary":"typography__component-secondary_nz4l3","caps":"typography__caps_nz4l3","bold":"typography__bold_nz4l3","medium":"typography__medium_nz4l3","regular":"typography__regular_nz4l3","monospace":"typography__monospace_nz4l3","rowLimit1":"typography__rowLimit1_nz4l3","rowLimit2":"typography__rowLimit2_nz4l3","rowLimit3":"typography__rowLimit3_nz4l3"};
|
|
7
11
|
require('./index.css')
|
|
8
12
|
|
|
13
|
+
var logWarning = function (view) {
|
|
14
|
+
if (process.env.NODE_ENV !== 'development') {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
var viewsMap = {
|
|
18
|
+
component: 'component-primary',
|
|
19
|
+
};
|
|
20
|
+
// eslint-disable-next-line no-console
|
|
21
|
+
console.warn(
|
|
22
|
+
// eslint-disable-next-line prefer-template
|
|
23
|
+
"@alfalab/core-components/typography: view='".concat(view, "' \u0431\u0443\u0434\u0435\u0442 \u0443\u0434\u0430\u043B\u0435\u043D \u0432 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0445 \u043C\u0430\u0436\u043E\u0440\u043D\u044B\u0445 \u0432\u0435\u0440\u0441\u0438\u044F\u0445. ") +
|
|
24
|
+
"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 view='".concat(viewsMap[view], "'."));
|
|
25
|
+
};
|
|
9
26
|
var Text = forwardRef(function (_a, ref) {
|
|
10
|
-
var _b;
|
|
11
|
-
var
|
|
12
|
-
|
|
13
|
-
|
|
27
|
+
var _b, _c;
|
|
28
|
+
var _d = _a.view, view = _d === void 0 ? 'primary-medium' : _d, _e = _a.tag, Component = _e === void 0 ? 'span' : _e, weight = _a.weight, _f = _a.monospaceNumbers, monospaceNumbers = _f === void 0 ? false : _f, _g = _a.defaultMargins, defaultMargins = _g === void 0 ? true : _g, color = _a.color, className = _a.className, dataTestId = _a.dataTestId, children = _a.children, rowLimit = _a.rowLimit, showSkeleton = _a.showSkeleton, skeletonProps = _a.skeletonProps, restProps = __rest(_a, ["view", "tag", "weight", "monospaceNumbers", "defaultMargins", "color", "className", "dataTestId", "children", "rowLimit", "showSkeleton", "skeletonProps"]);
|
|
29
|
+
if (view === 'component') {
|
|
30
|
+
logWarning(view);
|
|
31
|
+
}
|
|
32
|
+
var _h = useSkeleton(showSkeleton, skeletonProps), renderSkeleton = _h.renderSkeleton, textRef = _h.textRef;
|
|
33
|
+
var skeleton = renderSkeleton({
|
|
34
|
+
wrapperClassName: cn((_b = {},
|
|
14
35
|
_b[styles.paragraphWithMargins] = Component === 'p' && defaultMargins,
|
|
15
|
-
_b
|
|
16
|
-
|
|
17
|
-
|
|
36
|
+
_b)),
|
|
37
|
+
dataTestId: dataTestId,
|
|
38
|
+
});
|
|
39
|
+
if (skeleton) {
|
|
40
|
+
return skeleton;
|
|
41
|
+
}
|
|
42
|
+
return (React.createElement(Component, __assign({ className: cn((_c = {},
|
|
43
|
+
_c[styles.paragraph] = Component === 'p' && !defaultMargins,
|
|
44
|
+
_c[styles.paragraphWithMargins] = Component === 'p' && defaultMargins,
|
|
45
|
+
_c[styles.monospace] = monospaceNumbers,
|
|
46
|
+
_c[styles["rowLimit".concat(rowLimit)]] = rowLimit,
|
|
47
|
+
_c), className, color && colors[color], styles[view], weight && styles[weight]), "data-test-id": dataTestId, ref: mergeRefs([ref, textRef]) }, restProps), children));
|
|
18
48
|
});
|
|
19
49
|
|
|
20
50
|
export { Text };
|
package/esm/text/index.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* hash:
|
|
1
|
+
/* hash: r7j9w */
|
|
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 */
|
|
@@ -17,66 +17,74 @@
|
|
|
17
17
|
} :root {
|
|
18
18
|
} :root {
|
|
19
19
|
--text-paragraph-margin-bottom: 0 0 var(--gap-s);
|
|
20
|
-
} .
|
|
20
|
+
} .typography__paragraph_nz4l3 {
|
|
21
21
|
margin: 0;
|
|
22
22
|
padding: 0;
|
|
23
|
-
} .
|
|
23
|
+
} .typography__paragraphWithMargins_nz4l3 {
|
|
24
24
|
padding: 0;
|
|
25
25
|
margin: var(--text-paragraph-margin-bottom);
|
|
26
|
-
} .typography__primary-
|
|
26
|
+
} .typography__primary-large_nz4l3 {
|
|
27
27
|
font-size: 18px;
|
|
28
28
|
line-height: 24px;
|
|
29
29
|
font-weight: 400;
|
|
30
|
-
} .typography__primary-
|
|
30
|
+
} .typography__primary-medium_nz4l3 {
|
|
31
31
|
font-size: 16px;
|
|
32
32
|
line-height: 24px;
|
|
33
33
|
font-weight: 400;
|
|
34
|
-
} .typography__primary-
|
|
34
|
+
} .typography__primary-small_nz4l3 {
|
|
35
35
|
font-size: 14px;
|
|
36
36
|
line-height: 20px;
|
|
37
37
|
font-weight: 400;
|
|
38
|
-
} .typography__secondary-
|
|
38
|
+
} .typography__secondary-large_nz4l3 {
|
|
39
39
|
font-size: 13px;
|
|
40
40
|
line-height: 16px;
|
|
41
41
|
font-weight: 400;
|
|
42
|
-
} .typography__secondary-
|
|
42
|
+
} .typography__secondary-medium_nz4l3 {
|
|
43
43
|
font-size: 12px;
|
|
44
44
|
line-height: 16px;
|
|
45
45
|
font-weight: 400;
|
|
46
|
-
} .typography__secondary-
|
|
46
|
+
} .typography__secondary-small_nz4l3 {
|
|
47
47
|
font-size: 11px;
|
|
48
48
|
line-height: 16px;
|
|
49
49
|
font-weight: 400;
|
|
50
|
-
} .
|
|
50
|
+
} .typography__component_nz4l3 {
|
|
51
51
|
font-size: 16px;
|
|
52
52
|
line-height: 20px;
|
|
53
53
|
font-weight: 400;
|
|
54
|
-
} .
|
|
54
|
+
} .typography__component-primary_nz4l3 {
|
|
55
|
+
font-size: 16px;
|
|
56
|
+
line-height: 20px;
|
|
57
|
+
font-weight: 400;
|
|
58
|
+
} .typography__component-secondary_nz4l3 {
|
|
59
|
+
font-size: 14px;
|
|
60
|
+
line-height: 18px;
|
|
61
|
+
font-weight: 400;
|
|
62
|
+
} .typography__caps_nz4l3 {
|
|
55
63
|
font-size: 12px;
|
|
56
64
|
line-height: 16px;
|
|
57
65
|
font-weight: 500;
|
|
58
66
|
letter-spacing: 1.25px;
|
|
59
67
|
text-transform: uppercase;
|
|
60
|
-
} .
|
|
68
|
+
} .typography__bold_nz4l3 {
|
|
61
69
|
font-weight: bold;
|
|
62
|
-
} .
|
|
70
|
+
} .typography__medium_nz4l3 {
|
|
63
71
|
font-weight: 500;
|
|
64
|
-
} .
|
|
72
|
+
} .typography__regular_nz4l3 {
|
|
65
73
|
font-weight: normal;
|
|
66
|
-
} .
|
|
74
|
+
} .typography__monospace_nz4l3 {
|
|
67
75
|
font-variant-numeric: tabular-nums;
|
|
68
|
-
} .
|
|
76
|
+
} .typography__rowLimit1_nz4l3 {
|
|
69
77
|
-webkit-line-clamp: 1;
|
|
70
78
|
display: -webkit-box;
|
|
71
79
|
-webkit-box-orient: vertical;
|
|
72
80
|
overflow: hidden;
|
|
73
81
|
word-break: break-all;
|
|
74
|
-
} .
|
|
82
|
+
} .typography__rowLimit2_nz4l3 {
|
|
75
83
|
-webkit-line-clamp: 2;
|
|
76
84
|
display: -webkit-box;
|
|
77
85
|
-webkit-box-orient: vertical;
|
|
78
86
|
overflow: hidden;
|
|
79
|
-
} .
|
|
87
|
+
} .typography__rowLimit3_nz4l3 {
|
|
80
88
|
-webkit-line-clamp: 3;
|
|
81
89
|
display: -webkit-box;
|
|
82
90
|
-webkit-box-orient: vertical;
|
package/esm/text/index.js
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
export { Text } from './component.js';
|
|
2
2
|
import 'tslib';
|
|
3
3
|
import 'react';
|
|
4
|
+
import 'react-merge-refs';
|
|
4
5
|
import 'classnames';
|
|
5
|
-
import '../
|
|
6
|
+
import '../hooks/useSkeleton.js';
|
|
7
|
+
import '@alfalab/core-components-skeleton/esm';
|
|
8
|
+
import '@alfalab/hooks';
|
|
9
|
+
import '../colors.module-ac92fbac.js';
|
package/esm/title/common.css
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
/* hash:
|
|
2
|
-
.
|
|
1
|
+
/* hash: 1uj85 */
|
|
2
|
+
.typography__component_a4bxl {
|
|
3
3
|
margin: 0;
|
|
4
4
|
padding: 0
|
|
5
5
|
}
|
|
6
|
-
.
|
|
6
|
+
.typography__component_a4bxl.typography__bold_a4bxl {
|
|
7
7
|
font-weight: bold;
|
|
8
8
|
}
|
|
9
|
-
.
|
|
9
|
+
.typography__component_a4bxl.typography__medium_a4bxl {
|
|
10
10
|
font-weight: 500;
|
|
11
11
|
}
|
|
12
|
-
.
|
|
12
|
+
.typography__component_a4bxl.typography__regular_a4bxl {
|
|
13
13
|
font-weight: normal;
|
|
14
14
|
}
|
package/esm/title/component.d.ts
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { HTMLAttributes } from "react";
|
|
4
4
|
import { Color } from "../colors";
|
|
5
|
+
import { TextSkeletonProps } from "../types";
|
|
5
6
|
type NativeProps = HTMLAttributes<HTMLHeadingElement>;
|
|
6
7
|
type TitleProps = Omit<NativeProps, 'color'> & {
|
|
7
8
|
/**
|
|
@@ -44,6 +45,14 @@ type TitleProps = Omit<NativeProps, 'color'> & {
|
|
|
44
45
|
* Количество строк (не поддерживает IE)
|
|
45
46
|
*/
|
|
46
47
|
rowLimit?: 1 | 2 | 3;
|
|
48
|
+
/**
|
|
49
|
+
* Показать скелетон
|
|
50
|
+
*/
|
|
51
|
+
showSkeleton?: boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Пропы для скелетона
|
|
54
|
+
*/
|
|
55
|
+
skeletonProps?: TextSkeletonProps;
|
|
47
56
|
};
|
|
48
57
|
type Styles = {
|
|
49
58
|
styles: {
|
|
@@ -59,7 +68,7 @@ declare const Title: React.ForwardRefExoticComponent<Omit<NativeProps, "color">
|
|
|
59
68
|
/**
|
|
60
69
|
* [Вариант начертания](https://core-ds.github.io/core-components/master/?path=/docs/guidelines-typography--page)
|
|
61
70
|
*/
|
|
62
|
-
view?: "
|
|
71
|
+
view?: "small" | "medium" | "xlarge" | "large" | "xsmall" | undefined;
|
|
63
72
|
/**
|
|
64
73
|
* Цвет текста
|
|
65
74
|
*/
|
|
@@ -67,7 +76,7 @@ declare const Title: React.ForwardRefExoticComponent<Omit<NativeProps, "color">
|
|
|
67
76
|
/**
|
|
68
77
|
* Толщина шрифта
|
|
69
78
|
*/
|
|
70
|
-
weight?: "
|
|
79
|
+
weight?: "bold" | "regular" | "medium" | undefined;
|
|
71
80
|
/**
|
|
72
81
|
* Шрифт текста
|
|
73
82
|
*/
|
|
@@ -92,5 +101,13 @@ declare const Title: React.ForwardRefExoticComponent<Omit<NativeProps, "color">
|
|
|
92
101
|
* Количество строк (не поддерживает IE)
|
|
93
102
|
*/
|
|
94
103
|
rowLimit?: 1 | 2 | 3 | undefined;
|
|
104
|
+
/**
|
|
105
|
+
* Показать скелетон
|
|
106
|
+
*/
|
|
107
|
+
showSkeleton?: boolean | undefined;
|
|
108
|
+
/**
|
|
109
|
+
* Пропы для скелетона
|
|
110
|
+
*/
|
|
111
|
+
skeletonProps?: TextSkeletonProps | undefined;
|
|
95
112
|
} & Styles & React.RefAttributes<TitleElementType>>;
|
|
96
113
|
export { TitleProps, Title };
|
package/esm/title/component.js
CHANGED
|
@@ -1,12 +1,24 @@
|
|
|
1
1
|
import { __rest, __assign } from 'tslib';
|
|
2
2
|
import React, { forwardRef } from 'react';
|
|
3
|
+
import mergeRefs from 'react-merge-refs';
|
|
3
4
|
import cn from 'classnames';
|
|
4
|
-
import {
|
|
5
|
+
import { useSkeleton } from '../hooks/useSkeleton.js';
|
|
6
|
+
import { c as colors } from '../colors.module-ac92fbac.js';
|
|
7
|
+
import '@alfalab/core-components-skeleton/esm';
|
|
8
|
+
import '@alfalab/hooks';
|
|
5
9
|
|
|
6
10
|
var Title = forwardRef(function (_a, ref) {
|
|
7
11
|
var _b;
|
|
8
|
-
var _c = _a.tag, Component = _c === void 0 ? 'div' : _c, _d = _a.view, view = _d === void 0 ? 'medium' : _d, _e = _a.font, font = _e === void 0 ? 'styrene' : _e, _f = _a.weight, weight = _f === void 0 ? font === 'styrene' ? 'medium' : 'bold' : _f, _g = _a.defaultMargins, defaultMargins = _g === void 0 ? false : _g, color = _a.color, className = _a.className, dataTestId = _a.dataTestId, children = _a.children, rowLimit = _a.rowLimit, styles = _a.styles, restProps = __rest(_a, ["tag", "view", "font", "weight", "defaultMargins", "color", "className", "dataTestId", "children", "rowLimit", "styles"]);
|
|
9
|
-
|
|
12
|
+
var _c = _a.tag, Component = _c === void 0 ? 'div' : _c, _d = _a.view, view = _d === void 0 ? 'medium' : _d, _e = _a.font, font = _e === void 0 ? 'styrene' : _e, _f = _a.weight, weight = _f === void 0 ? font === 'styrene' ? 'medium' : 'bold' : _f, _g = _a.defaultMargins, defaultMargins = _g === void 0 ? false : _g, color = _a.color, className = _a.className, dataTestId = _a.dataTestId, children = _a.children, rowLimit = _a.rowLimit, styles = _a.styles, skeletonProps = _a.skeletonProps, showSkeleton = _a.showSkeleton, restProps = __rest(_a, ["tag", "view", "font", "weight", "defaultMargins", "color", "className", "dataTestId", "children", "rowLimit", "styles", "skeletonProps", "showSkeleton"]);
|
|
13
|
+
var _h = useSkeleton(showSkeleton, skeletonProps), renderSkeleton = _h.renderSkeleton, textRef = _h.textRef;
|
|
14
|
+
var skeleton = renderSkeleton({
|
|
15
|
+
wrapperClassName: cn(defaultMargins && styles["margins-".concat(view)]),
|
|
16
|
+
dataTestId: dataTestId,
|
|
17
|
+
});
|
|
18
|
+
if (skeleton) {
|
|
19
|
+
return skeleton;
|
|
20
|
+
}
|
|
21
|
+
return (React.createElement(Component, __assign({ className: cn(styles.component, className, styles["".concat(font, "-").concat(view)], defaultMargins && styles["margins-".concat(view)], styles[weight], color && colors[color], (_b = {}, _b[styles["rowLimit".concat(rowLimit)]] = rowLimit, _b)), "data-test-id": dataTestId, ref: mergeRefs([ref, textRef]) }, restProps), children));
|
|
10
22
|
});
|
|
11
23
|
|
|
12
24
|
export { Title };
|