@alfalab/core-components-circular-progress-bar 4.0.0 → 4.1.0-snapshot-92b8690

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 (42) hide show
  1. package/dynamic-mixins/Component.d.ts +143 -0
  2. package/dynamic-mixins/Component.js +121 -0
  3. package/dynamic-mixins/Component.js.map +1 -0
  4. package/dynamic-mixins/consts.d.ts +79 -0
  5. package/dynamic-mixins/consts.js +94 -0
  6. package/dynamic-mixins/consts.js.map +1 -0
  7. package/dynamic-mixins/index.css +163 -0
  8. package/dynamic-mixins/index.d.ts +2 -0
  9. package/dynamic-mixins/index.js +10 -0
  10. package/dynamic-mixins/index.js.map +1 -0
  11. package/dynamic-mixins/index.module.css.js +8 -0
  12. package/dynamic-mixins/index.module.css.js.map +1 -0
  13. package/dynamic-mixins/shared/index.d.ts +1 -0
  14. package/dynamic-mixins/shared/index.js +10 -0
  15. package/dynamic-mixins/shared/index.js.map +1 -0
  16. package/dynamic-mixins/types/component-size.d.ts +1 -0
  17. package/dynamic-mixins/types/component-size.js +3 -0
  18. package/dynamic-mixins/types/component-size.js.map +1 -0
  19. package/dynamic-mixins/types/typography-color.d.ts +1 -0
  20. package/dynamic-mixins/types/typography-color.js +3 -0
  21. package/dynamic-mixins/types/typography-color.js.map +1 -0
  22. package/dynamic-mixins/use-timer.d.ts +1 -0
  23. package/dynamic-mixins/use-timer.js +35 -0
  24. package/dynamic-mixins/use-timer.js.map +1 -0
  25. package/dynamic-mixins/utils/get-circular-progress-bar-test-ids.d.ts +7 -0
  26. package/dynamic-mixins/utils/get-circular-progress-bar-test-ids.js +18 -0
  27. package/dynamic-mixins/utils/get-circular-progress-bar-test-ids.js.map +1 -0
  28. package/dynamic-mixins/utils/is-typography-color.d.ts +2 -0
  29. package/dynamic-mixins/utils/is-typography-color.js +12 -0
  30. package/dynamic-mixins/utils/is-typography-color.js.map +1 -0
  31. package/esm/index.css +52 -52
  32. package/esm/index.module.css.js +1 -1
  33. package/esm/index.module.css.js.map +1 -1
  34. package/index.css +52 -52
  35. package/index.module.css.js +1 -1
  36. package/index.module.css.js.map +1 -1
  37. package/modern/index.css +52 -52
  38. package/modern/index.module.css.js +1 -1
  39. package/modern/index.module.css.js.map +1 -1
  40. package/moderncssm/index.module.css +2 -0
  41. package/package.json +5 -5
  42. package/src/index.module.css +1 -1
@@ -0,0 +1,143 @@
1
+ import React, { ElementType, ReactNode } from 'react';
2
+ import { ComponentSize } from './types/component-size';
3
+ import { TypographyColor } from './types/typography-color';
4
+ export declare type CircularProgressBarProps = {
5
+ /**
6
+ * Уровень прогресса, %
7
+ */
8
+ value: number | {
9
+ /**
10
+ * Время таймера в секундах
11
+ * Минимальное значение 0
12
+ * Максимальное значение 3600
13
+ */
14
+ timer: number;
15
+ /**
16
+ * Направлние отсчета таймера
17
+ * forward: считаем от 0 до указанного значения
18
+ * backward: считаем от указанного значения до 0
19
+ * @default backward
20
+ */
21
+ counting?: 'forward' | 'backward';
22
+ /**
23
+ * Обработчик завершения таймера
24
+ */
25
+ onFinish?: () => void;
26
+ };
27
+ /**
28
+ * Дополнительный класс
29
+ */
30
+ className?: string;
31
+ /**
32
+ * Основной текст
33
+ */
34
+ title?: ReactNode;
35
+ /**
36
+ * Цвет контента
37
+ */
38
+ contentColor?: TypographyColor | string;
39
+ /**
40
+ * Цвет заголовка
41
+ * Приоритет выше чем у `contentColor`
42
+ */
43
+ titleColor?: TypographyColor | string;
44
+ /**
45
+ * Цвет подзаголовка
46
+ * Приоритет выше чем у `contentColor`
47
+ */
48
+ subtitleColor?: TypographyColor | string;
49
+ /**
50
+ * Дополнительный текст
51
+ */
52
+ subtitle?: ReactNode;
53
+ /**
54
+ * Основной текст при 100%
55
+ */
56
+ titleComplete?: ReactNode;
57
+ /**
58
+ * Дополнительный текст при 100%
59
+ */
60
+ subtitleComplete?: ReactNode;
61
+ /**
62
+ * Цвет заполнения
63
+ */
64
+ view?: 'positive' | 'negative';
65
+ /**
66
+ * Размер (xxl — 144×144px, xl — 128×128px, l — 80×80px, m — 64×64px, s — 48×48px, xs — 24×24px)
67
+ * @description xs, s, m, l, xl, xxl deprecated, используйте вместо них 24, 48, 64, 80, 128, 144 соответственно
68
+ * @default 64
69
+ */
70
+ size?: ComponentSize;
71
+ /**
72
+ * Наличие желоба
73
+ */
74
+ stroke?: boolean;
75
+ /**
76
+ * Заливка при 100%
77
+ */
78
+ fillComplete?: boolean;
79
+ /**
80
+ * Цвет текста при 100%
81
+ */
82
+ completeTextColor?: 'primary' | 'primary-inverted' | 'positive' | 'negative';
83
+ /**
84
+ * Цвет иконки при 100%
85
+ */
86
+ completeIconColor?: 'primary-inverted' | 'positive' | 'negative' | 'tertiary';
87
+ /**
88
+ * Компонент иконки
89
+ */
90
+ icon?: ElementType<{
91
+ className?: string;
92
+ }>;
93
+ /**
94
+ * Компонент иконки при 100%
95
+ */
96
+ iconComplete?: ElementType<{
97
+ className?: string;
98
+ }>;
99
+ /**
100
+ * Направление прогресса (clockwise - по часовой стрелке, counter-clockwise - против часовой стрелки)
101
+ */
102
+ direction?: 'clockwise' | 'counter-clockwise';
103
+ /**
104
+ * Высота компонента, min = 24; max = 144
105
+ * использовать совместно с size :
106
+ * xxl от 144
107
+ * xl от 128 до 143
108
+ * l от 80 до 127
109
+ * m от 64 до 79
110
+ * s от 48 до 63
111
+ * xs от 24 до 47
112
+ */
113
+ height?: number;
114
+ /**
115
+ * Id компонента для тестов
116
+ */
117
+ dataTestId?: string;
118
+ /**
119
+ * Дочерние элементы
120
+ */
121
+ children?: ReactNode;
122
+ /**
123
+ * Цвет прогресса
124
+ */
125
+ progressStrokeColor?: string;
126
+ /**
127
+ * Цвет заливки внутри круга
128
+ */
129
+ circleColor?: string;
130
+ /**
131
+ * Цвет желоба
132
+ */
133
+ strokeColor?: string;
134
+ /**
135
+ * Направление заполнения круга
136
+ * @default desc
137
+ */
138
+ directionType?: 'asc' | 'desc';
139
+ };
140
+ /**
141
+ * Компонент круглого прогресс бара.
142
+ */
143
+ export declare const CircularProgressBar: React.FC<CircularProgressBarProps>;
@@ -0,0 +1,121 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var tslib = require('tslib');
6
+ var React = require('react');
7
+ var cn = require('classnames');
8
+ var dynamicMixins = require('@alfalab/core-components-shared/dynamic-mixins');
9
+ var dynamicMixins$1 = require('@alfalab/core-components-typography/dynamic-mixins');
10
+ var isTypographyColor = require('./utils/is-typography-color.js');
11
+ var consts = require('./consts.js');
12
+ var useTimer = require('./use-timer.js');
13
+ var index_module = require('./index.module.css.js');
14
+
15
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
16
+
17
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
18
+ var cn__default = /*#__PURE__*/_interopDefaultCompat(cn);
19
+
20
+ /**
21
+ * Компонент круглого прогресс бара.
22
+ */
23
+ var CircularProgressBar = function (_a) {
24
+ var _b, _c, _d;
25
+ var _e, _f;
26
+ var valueFromProps = _a.value, _g = _a.view, view = _g === void 0 ? 'positive' : _g, _h = _a.size, size = _h === void 0 ? 64 : _h, className = _a.className, dataTestId = _a.dataTestId, _j = _a.title, titleFromProps = _j === void 0 ? dynamicMixins.isObject(valueFromProps) ? null : "".concat(valueFromProps) : _j, titleComplete = _a.titleComplete, subtitle = _a.subtitle, _k = _a.contentColor, contentColor = _k === void 0 ? 'secondary' : _k, subtitleComplete = _a.subtitleComplete, _l = _a.stroke, stroke = _l === void 0 ? true : _l, fillComplete = _a.fillComplete, Icon = _a.icon, IconComplete = _a.iconComplete, completeTextColor = _a.completeTextColor, _m = _a.completeIconColor, completeIconColor = _m === void 0 ? 'tertiary' : _m, _o = _a.direction, direction = _o === void 0 ? 'clockwise' : _o, height = _a.height, children = _a.children, progressStrokeColor = _a.progressStrokeColor, circleColor = _a.circleColor, strokeColor = _a.strokeColor, _p = _a.directionType, directionType = _p === void 0 ? 'asc' : _p, titleColor = _a.titleColor, subtitleColor = _a.subtitleColor;
27
+ var isTimer = dynamicMixins.isObject(valueFromProps);
28
+ var _q = useTimer.useTimer(isTimer ? Math.min(Math.max(valueFromProps.timer, consts.MIN_TIMER_VALUE), consts.MAX_TIMER_VALUE) : -1, isTimer, isTimer ? (_e = valueFromProps.counting) !== null && _e !== void 0 ? _e : 'backward' : 'backward', isTimer ? (_f = valueFromProps.onFinish) !== null && _f !== void 0 ? _f : dynamicMixins.noop : dynamicMixins.noop), timerValue = _q[0], timerTitle = _q[1];
29
+ var value;
30
+ var title;
31
+ if (isTimer) {
32
+ value = timerValue;
33
+ title = timerTitle;
34
+ }
35
+ else {
36
+ value = valueFromProps;
37
+ title = titleFromProps;
38
+ }
39
+ value = directionType === 'desc' ? consts.MAX_PROGRESS_VALUE - value : value;
40
+ var memorized = React.useMemo(function () {
41
+ var strokeWidth = consts.STROKE[size];
42
+ var maxProgress = 100;
43
+ var minProgress = 0;
44
+ var widthSVG = consts.SIZES[size];
45
+ var heightSVG = consts.SIZES[size];
46
+ var center = widthSVG / 2;
47
+ var radius = center - strokeWidth / 2;
48
+ var circumference = Math.PI * radius * 2;
49
+ var progress = Math.min(Math.max(value, minProgress), maxProgress);
50
+ var strokeDasharray = circumference.toFixed(3);
51
+ var strokeDashoffset = (((100 - progress) / 100) * circumference).toFixed(3);
52
+ return {
53
+ widthSVG: widthSVG,
54
+ heightSVG: heightSVG,
55
+ center: center,
56
+ radius: radius,
57
+ strokeDasharray: strokeDasharray,
58
+ strokeDashoffset: strokeDashoffset,
59
+ };
60
+ }, [size, value]);
61
+ var isComplete = value === 100;
62
+ var isCompleteTextColor = isComplete && completeTextColor;
63
+ var titleContent = titleComplete && isComplete ? titleComplete : title;
64
+ var subtitleContent = subtitleComplete && isComplete ? subtitleComplete : subtitle;
65
+ var IconComponent = IconComplete && isComplete ? IconComplete : Icon;
66
+ var typographyContentColor = consts.TYPOGRAPHY_COLOR.includes(contentColor)
67
+ ? contentColor
68
+ : undefined;
69
+ var getTextColor = function (color) {
70
+ if (isCompleteTextColor) {
71
+ return completeTextColor;
72
+ }
73
+ if (color) {
74
+ return isTypographyColor.isTypographyColor(color) ? color : undefined;
75
+ }
76
+ return typographyContentColor;
77
+ };
78
+ var getTextStyleColor = function (color) {
79
+ if (color) {
80
+ if (!isTypographyColor.isTypographyColor(color)) {
81
+ return { color: color };
82
+ }
83
+ return {};
84
+ }
85
+ return tslib.__assign({}, (!typographyContentColor && { color: contentColor }));
86
+ };
87
+ var renderTitleString = function () {
88
+ return consts.SIZES[size] > 64 ? (React__default.default.createElement(dynamicMixins$1.TitleMobile, { className: cn__default.default(index_module.typography, index_module.title), color: getTextColor(titleColor), tag: 'div', font: 'system', view: consts.VIEW_TITLE[size], style: tslib.__assign({}, getTextStyleColor(titleColor)), dataTestId: dynamicMixins.getDataTestId(dataTestId, 'title') }, titleContent)) : (React__default.default.createElement(dynamicMixins$1.Text, { className: index_module.title, color: getTextColor(titleColor), tag: 'div', weight: 'bold', view: consts.VIEW_TEXT[size], style: tslib.__assign({}, getTextStyleColor(titleColor)), dataTestId: dynamicMixins.getDataTestId(dataTestId, 'title') }, titleContent));
89
+ };
90
+ var renderTitle = function () { return (typeof title === 'string' ? renderTitleString() : titleContent); };
91
+ var renderSubTitle = function () {
92
+ return typeof subtitle === 'string' ? (React__default.default.createElement(dynamicMixins$1.Text, { tag: 'div', className: index_module.subtitle, color: getTextColor(subtitleColor), view: 'primary-small', dataTestId: dynamicMixins.getDataTestId(dataTestId, 'subtitle'), style: tslib.__assign({}, getTextStyleColor(subtitleColor)) }, subtitleContent)) : (subtitleContent);
93
+ };
94
+ var renderIcon = function () {
95
+ var _a;
96
+ return (React__default.default.createElement("span", { className: cn__default.default(index_module.iconWrapper, index_module[consts.SIZE_TO_CLASSNAME_MAP[size]], index_module.tertiary, index_module["icon-".concat(contentColor)], (_a = {},
97
+ _a[index_module["icon-".concat(completeIconColor)]] = completeIconColor,
98
+ _a)) }, IconComponent && React__default.default.createElement(IconComponent, { className: index_module.icon })));
99
+ };
100
+ var renderContent = function () {
101
+ return Icon || (IconComplete && isComplete) ? (renderIcon()) : (React__default.default.createElement(React__default.default.Fragment, null,
102
+ consts.SIZES[size] > 24 && renderTitle(),
103
+ consts.SIZES[size] > 64 && renderSubTitle()));
104
+ };
105
+ return (React__default.default.createElement("div", { className: cn__default.default(index_module.component, index_module[consts.SIZE_TO_CLASSNAME_MAP[size]], className, (_b = {},
106
+ _b[index_module["bg-".concat(view)]] = fillComplete && isComplete,
107
+ _b)), style: tslib.__assign(tslib.__assign({}, (height && { height: height, width: height })), (circleColor && { backgroundColor: circleColor })), "data-test-id": dataTestId },
108
+ React__default.default.createElement("svg", { viewBox: "0 0 ".concat(memorized.widthSVG, " ").concat(memorized.heightSVG), className: index_module.svg, xmlns: 'http://www.w3.org/2000/svg' },
109
+ React__default.default.createElement("circle", { className: cn__default.default(index_module.backgroundCircle, index_module[consts.SIZE_TO_CLASSNAME_MAP[size]], (_c = {},
110
+ _c[index_module.stroke] = !stroke,
111
+ _c)), style: tslib.__assign({}, (strokeColor && stroke && { stroke: strokeColor })), cx: memorized.center, cy: memorized.center, r: memorized.radius, strokeWidth: consts.STROKE[size], "data-test-id": dynamicMixins.getDataTestId(dataTestId, 'circle-progress-bar') }),
112
+ React__default.default.createElement("circle", { className: cn__default.default(index_module.progressCircle, index_module[view], index_module[consts.SIZE_TO_CLASSNAME_MAP[size]]), style: tslib.__assign({}, (progressStrokeColor && { stroke: progressStrokeColor })), cx: memorized.center, cy: memorized.center, r: memorized.radius, strokeWidth: consts.STROKE[size], strokeDasharray: memorized.strokeDasharray, strokeDashoffset: direction === 'counter-clockwise'
113
+ ? -memorized.strokeDashoffset
114
+ : memorized.strokeDashoffset, transform: "rotate(".concat(-90, " ").concat(memorized.center, " ").concat(memorized.center, ")"), "data-test-id": dynamicMixins.getDataTestId(dataTestId, 'circle-progress-value') })),
115
+ React__default.default.createElement("div", { className: cn__default.default(index_module.labelWrapper, (_d = {},
116
+ _d[index_module.label] = Icon || IconComplete,
117
+ _d)) }, children || renderContent())));
118
+ };
119
+
120
+ exports.CircularProgressBar = CircularProgressBar;
121
+ //# sourceMappingURL=Component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Component.js","sources":["../src/Component.tsx"],"sourcesContent":["/* eslint-disable complexity */\nimport React, { ElementType, ReactNode, useMemo } from 'react';\nimport cn from 'classnames';\n\nimport { getDataTestId, isObject, noop } from '@alfalab/core-components-shared';\nimport { Text, TitleMobile } from '@alfalab/core-components-typography';\n\nimport { ComponentSize } from './types/component-size';\nimport { TypographyColor } from './types/typography-color';\nimport { isTypographyColor } from './utils/is-typography-color';\nimport {\n MAX_PROGRESS_VALUE,\n MAX_TIMER_VALUE,\n MIN_TIMER_VALUE,\n SIZE_TO_CLASSNAME_MAP,\n SIZES,\n STROKE,\n TYPOGRAPHY_COLOR,\n VIEW_TEXT,\n VIEW_TITLE,\n} from './consts';\nimport { useTimer } from './use-timer';\n\nimport styles from './index.module.css';\n\nexport type CircularProgressBarProps = {\n /**\n * Уровень прогресса, %\n */\n\n value:\n | number\n | {\n /**\n * Время таймера в секундах\n * Минимальное значение 0\n * Максимальное значение 3600\n */\n timer: number;\n /**\n * Направлние отсчета таймера\n * forward: считаем от 0 до указанного значения\n * backward: считаем от указанного значения до 0\n * @default backward\n */\n counting?: 'forward' | 'backward';\n /**\n * Обработчик завершения таймера\n */\n onFinish?: () => void;\n };\n\n /**\n * Дополнительный класс\n */\n className?: string;\n\n /**\n * Основной текст\n */\n title?: ReactNode;\n\n /**\n * Цвет контента\n */\n contentColor?: TypographyColor | string;\n\n /**\n * Цвет заголовка\n * Приоритет выше чем у `contentColor`\n */\n titleColor?: TypographyColor | string;\n\n /**\n * Цвет подзаголовка\n * Приоритет выше чем у `contentColor`\n */\n subtitleColor?: TypographyColor | string;\n\n /**\n * Дополнительный текст\n */\n subtitle?: ReactNode;\n\n /**\n * Основной текст при 100%\n */\n titleComplete?: ReactNode;\n\n /**\n * Дополнительный текст при 100%\n */\n subtitleComplete?: ReactNode;\n\n /**\n * Цвет заполнения\n */\n view?: 'positive' | 'negative';\n\n /**\n * Размер (xxl — 144×144px, xl — 128×128px, l — 80×80px, m — 64×64px, s — 48×48px, xs — 24×24px)\n * @description xs, s, m, l, xl, xxl deprecated, используйте вместо них 24, 48, 64, 80, 128, 144 соответственно\n * @default 64\n */\n size?: ComponentSize;\n\n /**\n * Наличие желоба\n */\n stroke?: boolean;\n\n /**\n * Заливка при 100%\n */\n fillComplete?: boolean;\n\n /**\n * Цвет текста при 100%\n */\n completeTextColor?: 'primary' | 'primary-inverted' | 'positive' | 'negative';\n\n /**\n * Цвет иконки при 100%\n */\n completeIconColor?: 'primary-inverted' | 'positive' | 'negative' | 'tertiary';\n\n /**\n * Компонент иконки\n */\n icon?: ElementType<{ className?: string }>;\n\n /**\n * Компонент иконки при 100%\n */\n iconComplete?: ElementType<{ className?: string }>;\n\n /**\n * Направление прогресса (clockwise - по часовой стрелке, counter-clockwise - против часовой стрелки)\n */\n direction?: 'clockwise' | 'counter-clockwise';\n\n /**\n * Высота компонента, min = 24; max = 144\n * использовать совместно с size :\n * xxl от 144\n * xl от 128 до 143\n * l от 80 до 127\n * m от 64 до 79\n * s от 48 до 63\n * xs от 24 до 47\n */\n height?: number;\n\n /**\n * Id компонента для тестов\n */\n dataTestId?: string;\n\n /**\n * Дочерние элементы\n */\n children?: ReactNode;\n\n /**\n * Цвет прогресса\n */\n progressStrokeColor?: string;\n\n /**\n * Цвет заливки внутри круга\n */\n circleColor?: string;\n\n /**\n * Цвет желоба\n */\n strokeColor?: string;\n\n /**\n * Направление заполнения круга\n * @default desc\n */\n directionType?: 'asc' | 'desc';\n};\n\n/**\n * Компонент круглого прогресс бара.\n */\nexport const CircularProgressBar: React.FC<CircularProgressBarProps> = ({\n value: valueFromProps,\n view = 'positive',\n size = 64,\n className,\n dataTestId,\n title: titleFromProps = isObject(valueFromProps) ? null : `${valueFromProps}`,\n titleComplete,\n subtitle,\n contentColor = 'secondary',\n subtitleComplete,\n stroke = true,\n fillComplete,\n icon: Icon,\n iconComplete: IconComplete,\n completeTextColor,\n completeIconColor = 'tertiary',\n direction = 'clockwise',\n height,\n children,\n progressStrokeColor,\n circleColor,\n strokeColor,\n directionType = 'asc',\n titleColor,\n subtitleColor,\n}) => {\n const isTimer = isObject(valueFromProps);\n const [timerValue, timerTitle] = useTimer(\n isTimer ? Math.min(Math.max(valueFromProps.timer, MIN_TIMER_VALUE), MAX_TIMER_VALUE) : -1,\n isTimer,\n isTimer ? valueFromProps.counting ?? 'backward' : 'backward',\n isTimer ? valueFromProps.onFinish ?? noop : noop,\n );\n let value: number;\n let title: React.ReactNode;\n\n if (isTimer) {\n value = timerValue;\n title = timerTitle;\n } else {\n value = valueFromProps;\n title = titleFromProps;\n }\n\n value = directionType === 'desc' ? MAX_PROGRESS_VALUE - value : value;\n\n const memorized = useMemo(() => {\n const strokeWidth = STROKE[size];\n const maxProgress = 100;\n const minProgress = 0;\n const widthSVG = SIZES[size];\n const heightSVG = SIZES[size];\n const center = widthSVG / 2;\n const radius = center - strokeWidth / 2;\n const circumference = Math.PI * radius * 2;\n const progress = Math.min(Math.max(value, minProgress), maxProgress);\n const strokeDasharray = circumference.toFixed(3);\n const strokeDashoffset = (((100 - progress) / 100) * circumference).toFixed(3);\n\n return {\n widthSVG,\n heightSVG,\n center,\n radius,\n strokeDasharray,\n strokeDashoffset,\n };\n }, [size, value]);\n\n const isComplete = value === 100;\n const isCompleteTextColor = isComplete && completeTextColor;\n const titleContent = titleComplete && isComplete ? titleComplete : title;\n const subtitleContent = subtitleComplete && isComplete ? subtitleComplete : subtitle;\n const IconComponent = IconComplete && isComplete ? IconComplete : Icon;\n\n const typographyContentColor = TYPOGRAPHY_COLOR.includes(contentColor)\n ? (contentColor as TypographyColor)\n : undefined;\n\n const getTextColor = (color?: TypographyColor | string) => {\n if (isCompleteTextColor) {\n return completeTextColor;\n }\n\n if (color) {\n return isTypographyColor(color) ? color : undefined;\n }\n\n return typographyContentColor;\n };\n\n const getTextStyleColor = (color?: TypographyColor | string) => {\n if (color) {\n if (!isTypographyColor(color)) {\n return { color };\n }\n\n return {};\n }\n\n return {\n ...(!typographyContentColor && { color: contentColor }),\n };\n };\n\n const renderTitleString = () =>\n SIZES[size] > 64 ? (\n <TitleMobile\n className={cn(styles.typography, styles.title)}\n color={getTextColor(titleColor)}\n tag='div'\n font='system'\n view={VIEW_TITLE[size]}\n style={{\n ...getTextStyleColor(titleColor),\n }}\n dataTestId={getDataTestId(dataTestId, 'title')}\n >\n {titleContent}\n </TitleMobile>\n ) : (\n <Text\n className={styles.title}\n color={getTextColor(titleColor)}\n tag='div'\n weight='bold'\n view={VIEW_TEXT[size]}\n style={{\n ...getTextStyleColor(titleColor),\n }}\n dataTestId={getDataTestId(dataTestId, 'title')}\n >\n {titleContent}\n </Text>\n );\n\n const renderTitle = () => (typeof title === 'string' ? renderTitleString() : titleContent);\n\n const renderSubTitle = () =>\n typeof subtitle === 'string' ? (\n <Text\n tag='div'\n className={styles.subtitle}\n color={getTextColor(subtitleColor)}\n view='primary-small'\n dataTestId={getDataTestId(dataTestId, 'subtitle')}\n style={{\n ...getTextStyleColor(subtitleColor),\n }}\n >\n {subtitleContent}\n </Text>\n ) : (\n subtitleContent\n );\n\n const renderIcon = () => (\n <span\n className={cn(\n styles.iconWrapper,\n styles[SIZE_TO_CLASSNAME_MAP[size]],\n styles.tertiary,\n styles[`icon-${contentColor}`],\n {\n [styles[`icon-${completeIconColor}`]]: completeIconColor,\n },\n )}\n >\n {IconComponent && <IconComponent className={styles.icon} />}\n </span>\n );\n\n const renderContent = () =>\n Icon || (IconComplete && isComplete) ? (\n renderIcon()\n ) : (\n <React.Fragment>\n {SIZES[size] > 24 && renderTitle()}\n {SIZES[size] > 64 && renderSubTitle()}\n </React.Fragment>\n );\n\n return (\n <div\n className={cn(styles.component, styles[SIZE_TO_CLASSNAME_MAP[size]], className, {\n [styles[`bg-${view}`]]: fillComplete && isComplete,\n })}\n style={{\n ...(height && { height, width: height }),\n ...(circleColor && { backgroundColor: circleColor }),\n }}\n data-test-id={dataTestId}\n >\n <svg\n viewBox={`0 0 ${memorized.widthSVG} ${memorized.heightSVG}`}\n className={styles.svg}\n xmlns='http://www.w3.org/2000/svg'\n >\n <circle\n className={cn(styles.backgroundCircle, styles[SIZE_TO_CLASSNAME_MAP[size]], {\n [styles.stroke]: !stroke,\n })}\n style={{\n ...(strokeColor && stroke && { stroke: strokeColor }),\n }}\n cx={memorized.center}\n cy={memorized.center}\n r={memorized.radius}\n strokeWidth={STROKE[size]}\n data-test-id={getDataTestId(dataTestId, 'circle-progress-bar')}\n />\n <circle\n className={cn(\n styles.progressCircle,\n styles[view],\n styles[SIZE_TO_CLASSNAME_MAP[size]],\n )}\n style={{\n ...(progressStrokeColor && { stroke: progressStrokeColor }),\n }}\n cx={memorized.center}\n cy={memorized.center}\n r={memorized.radius}\n strokeWidth={STROKE[size]}\n strokeDasharray={memorized.strokeDasharray}\n strokeDashoffset={\n direction === 'counter-clockwise'\n ? -memorized.strokeDashoffset\n : memorized.strokeDashoffset\n }\n transform={`rotate(${-90} ${memorized.center} ${memorized.center})`}\n data-test-id={getDataTestId(dataTestId, 'circle-progress-value')}\n />\n </svg>\n <div\n className={cn(styles.labelWrapper, {\n [styles.label]: Icon || IconComplete,\n })}\n >\n {children || renderContent()}\n </div>\n </div>\n );\n};\n"],"names":["isObject","useTimer","MIN_TIMER_VALUE","MAX_TIMER_VALUE","noop","MAX_PROGRESS_VALUE","useMemo","STROKE","SIZES","TYPOGRAPHY_COLOR","isTypographyColor","__assign","React","TitleMobile","cn","styles","VIEW_TITLE","getDataTestId","Text","VIEW_TEXT","SIZE_TO_CLASSNAME_MAP"],"mappings":"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"}
@@ -0,0 +1,79 @@
1
+ export declare const SIZES: {
2
+ xs: number;
3
+ s: number;
4
+ m: number;
5
+ l: number;
6
+ xl: number;
7
+ xxl: number;
8
+ 24: number;
9
+ 48: number;
10
+ 64: number;
11
+ 80: number;
12
+ 96: number;
13
+ 128: number;
14
+ 144: number;
15
+ };
16
+ export declare const STROKE: {
17
+ xs: number;
18
+ s: number;
19
+ m: number;
20
+ l: number;
21
+ xl: number;
22
+ xxl: number;
23
+ 24: number;
24
+ 48: number;
25
+ 64: number;
26
+ 80: number;
27
+ 96: number;
28
+ 128: number;
29
+ 144: number;
30
+ };
31
+ export declare const VIEW_TITLE: {
32
+ readonly xs: "small";
33
+ readonly s: "small";
34
+ readonly m: "small";
35
+ readonly l: "xsmall";
36
+ readonly xl: "medium";
37
+ readonly xxl: "medium";
38
+ readonly 24: "small";
39
+ readonly 48: "small";
40
+ readonly 64: "small";
41
+ readonly 80: "xsmall";
42
+ readonly 96: "xsmall";
43
+ readonly 128: "medium";
44
+ readonly 144: "medium";
45
+ };
46
+ export declare const VIEW_TEXT: {
47
+ readonly xs: "secondary-small";
48
+ readonly s: "secondary-small";
49
+ readonly m: "secondary-large";
50
+ readonly l: "secondary-large";
51
+ readonly xl: "secondary-large";
52
+ readonly xxl: "secondary-large";
53
+ readonly 24: "secondary-small";
54
+ readonly 48: "secondary-small";
55
+ readonly 64: "secondary-large";
56
+ readonly 80: "secondary-large";
57
+ readonly 96: "secondary-large";
58
+ readonly 128: "secondary-large";
59
+ readonly 144: "secondary-large";
60
+ };
61
+ export declare const TYPOGRAPHY_COLOR: string[];
62
+ export declare const SIZE_TO_CLASSNAME_MAP: {
63
+ xs: string;
64
+ s: string;
65
+ m: string;
66
+ l: string;
67
+ xl: string;
68
+ xxl: string;
69
+ 24: string;
70
+ 48: string;
71
+ 64: string;
72
+ 80: string;
73
+ 96: string;
74
+ 128: string;
75
+ 144: string;
76
+ };
77
+ export declare const MAX_PROGRESS_VALUE = 100;
78
+ export declare const MIN_TIMER_VALUE = 0;
79
+ export declare const MAX_TIMER_VALUE = 3599;
@@ -0,0 +1,94 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var SIZES = {
6
+ xs: 24,
7
+ s: 48,
8
+ m: 64,
9
+ l: 80,
10
+ xl: 128,
11
+ xxl: 144,
12
+ 24: 24,
13
+ 48: 48,
14
+ 64: 64,
15
+ 80: 80,
16
+ 96: 96,
17
+ 128: 128,
18
+ 144: 144,
19
+ };
20
+ var STROKE = {
21
+ xs: 4,
22
+ s: 4,
23
+ m: 6,
24
+ l: 8,
25
+ xl: 10,
26
+ xxl: 12,
27
+ 24: 4,
28
+ 48: 4,
29
+ 64: 6,
30
+ 80: 8,
31
+ 96: 8,
32
+ 128: 10,
33
+ 144: 12,
34
+ };
35
+ var VIEW_TITLE = {
36
+ xs: 'small',
37
+ s: 'small',
38
+ m: 'small',
39
+ l: 'xsmall',
40
+ xl: 'medium',
41
+ xxl: 'medium',
42
+ 24: 'small',
43
+ 48: 'small',
44
+ 64: 'small',
45
+ 80: 'xsmall',
46
+ 96: 'xsmall',
47
+ 128: 'medium',
48
+ 144: 'medium',
49
+ };
50
+ var VIEW_TEXT = {
51
+ xs: 'secondary-small',
52
+ s: 'secondary-small',
53
+ m: 'secondary-large',
54
+ l: 'secondary-large',
55
+ xl: 'secondary-large',
56
+ xxl: 'secondary-large',
57
+ 24: 'secondary-small',
58
+ 48: 'secondary-small',
59
+ 64: 'secondary-large',
60
+ 80: 'secondary-large',
61
+ 96: 'secondary-large',
62
+ 128: 'secondary-large',
63
+ 144: 'secondary-large',
64
+ };
65
+ var TYPOGRAPHY_COLOR = ['primary', 'secondary', 'tertiary', 'positive', 'negative'];
66
+ var SIZE_TO_CLASSNAME_MAP = {
67
+ xs: 'size-24',
68
+ s: 'size-48',
69
+ m: 'size-64',
70
+ l: 'size-80',
71
+ xl: 'size-128',
72
+ xxl: 'size-144',
73
+ 24: 'size-24',
74
+ 48: 'size-48',
75
+ 64: 'size-64',
76
+ 80: 'size-80',
77
+ 96: 'size-96',
78
+ 128: 'size-128',
79
+ 144: 'size-144',
80
+ };
81
+ var MAX_PROGRESS_VALUE = 100;
82
+ var MIN_TIMER_VALUE = 0;
83
+ var MAX_TIMER_VALUE = 3599;
84
+
85
+ exports.MAX_PROGRESS_VALUE = MAX_PROGRESS_VALUE;
86
+ exports.MAX_TIMER_VALUE = MAX_TIMER_VALUE;
87
+ exports.MIN_TIMER_VALUE = MIN_TIMER_VALUE;
88
+ exports.SIZES = SIZES;
89
+ exports.SIZE_TO_CLASSNAME_MAP = SIZE_TO_CLASSNAME_MAP;
90
+ exports.STROKE = STROKE;
91
+ exports.TYPOGRAPHY_COLOR = TYPOGRAPHY_COLOR;
92
+ exports.VIEW_TEXT = VIEW_TEXT;
93
+ exports.VIEW_TITLE = VIEW_TITLE;
94
+ //# sourceMappingURL=consts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consts.js","sources":["../src/consts.ts"],"sourcesContent":["export const SIZES = {\n xs: 24,\n s: 48,\n m: 64,\n l: 80,\n xl: 128,\n xxl: 144,\n 24: 24,\n 48: 48,\n 64: 64,\n 80: 80,\n 96: 96,\n 128: 128,\n 144: 144,\n};\n\nexport const STROKE = {\n xs: 4,\n s: 4,\n m: 6,\n l: 8,\n xl: 10,\n xxl: 12,\n 24: 4,\n 48: 4,\n 64: 6,\n 80: 8,\n 96: 8,\n 128: 10,\n 144: 12,\n};\n\nexport const VIEW_TITLE = {\n xs: 'small',\n s: 'small',\n m: 'small',\n l: 'xsmall',\n xl: 'medium',\n xxl: 'medium',\n 24: 'small',\n 48: 'small',\n 64: 'small',\n 80: 'xsmall',\n 96: 'xsmall',\n 128: 'medium',\n 144: 'medium',\n} as const;\n\nexport const VIEW_TEXT = {\n xs: 'secondary-small',\n s: 'secondary-small',\n m: 'secondary-large',\n l: 'secondary-large',\n xl: 'secondary-large',\n xxl: 'secondary-large',\n 24: 'secondary-small',\n 48: 'secondary-small',\n 64: 'secondary-large',\n 80: 'secondary-large',\n 96: 'secondary-large',\n 128: 'secondary-large',\n 144: 'secondary-large',\n} as const;\n\nexport const TYPOGRAPHY_COLOR = ['primary', 'secondary', 'tertiary', 'positive', 'negative'];\n\nexport const SIZE_TO_CLASSNAME_MAP = {\n xs: 'size-24',\n s: 'size-48',\n m: 'size-64',\n l: 'size-80',\n xl: 'size-128',\n xxl: 'size-144',\n 24: 'size-24',\n 48: 'size-48',\n 64: 'size-64',\n 80: 'size-80',\n 96: 'size-96',\n 128: 'size-128',\n 144: 'size-144',\n};\n\nexport const MAX_PROGRESS_VALUE = 100;\n\nexport const MIN_TIMER_VALUE = 0;\nexport const MAX_TIMER_VALUE = 3599;\n"],"names":[],"mappings":";;;;AAAa,IAAA,KAAK,GAAG;AACjB,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,CAAC,EAAE,EAAE;AACL,IAAA,CAAC,EAAE,EAAE;AACL,IAAA,CAAC,EAAE,EAAE;AACL,IAAA,EAAE,EAAE,GAAG;AACP,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;;AAGC,IAAA,MAAM,GAAG;AAClB,IAAA,EAAE,EAAE,CAAC;AACL,IAAA,CAAC,EAAE,CAAC;AACJ,IAAA,CAAC,EAAE,CAAC;AACJ,IAAA,CAAC,EAAE,CAAC;AACJ,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,GAAG,EAAE,EAAE;AACP,IAAA,EAAE,EAAE,CAAC;AACL,IAAA,EAAE,EAAE,CAAC;AACL,IAAA,EAAE,EAAE,CAAC;AACL,IAAA,EAAE,EAAE,CAAC;AACL,IAAA,EAAE,EAAE,CAAC;AACL,IAAA,GAAG,EAAE,EAAE;AACP,IAAA,GAAG,EAAE,EAAE;;AAGE,IAAA,UAAU,GAAG;AACtB,IAAA,EAAE,EAAE,OAAO;AACX,IAAA,CAAC,EAAE,OAAO;AACV,IAAA,CAAC,EAAE,OAAO;AACV,IAAA,CAAC,EAAE,QAAQ;AACX,IAAA,EAAE,EAAE,QAAQ;AACZ,IAAA,GAAG,EAAE,QAAQ;AACb,IAAA,EAAE,EAAE,OAAO;AACX,IAAA,EAAE,EAAE,OAAO;AACX,IAAA,EAAE,EAAE,OAAO;AACX,IAAA,EAAE,EAAE,QAAQ;AACZ,IAAA,EAAE,EAAE,QAAQ;AACZ,IAAA,GAAG,EAAE,QAAQ;AACb,IAAA,GAAG,EAAE,QAAQ;;AAGJ,IAAA,SAAS,GAAG;AACrB,IAAA,EAAE,EAAE,iBAAiB;AACrB,IAAA,CAAC,EAAE,iBAAiB;AACpB,IAAA,CAAC,EAAE,iBAAiB;AACpB,IAAA,CAAC,EAAE,iBAAiB;AACpB,IAAA,EAAE,EAAE,iBAAiB;AACrB,IAAA,GAAG,EAAE,iBAAiB;AACtB,IAAA,EAAE,EAAE,iBAAiB;AACrB,IAAA,EAAE,EAAE,iBAAiB;AACrB,IAAA,EAAE,EAAE,iBAAiB;AACrB,IAAA,EAAE,EAAE,iBAAiB;AACrB,IAAA,EAAE,EAAE,iBAAiB;AACrB,IAAA,GAAG,EAAE,iBAAiB;AACtB,IAAA,GAAG,EAAE,iBAAiB;;AAGnB,IAAM,gBAAgB,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAE9E,IAAA,qBAAqB,GAAG;AACjC,IAAA,EAAE,EAAE,SAAS;AACb,IAAA,CAAC,EAAE,SAAS;AACZ,IAAA,CAAC,EAAE,SAAS;AACZ,IAAA,CAAC,EAAE,SAAS;AACZ,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,GAAG,EAAE,UAAU;AACf,IAAA,EAAE,EAAE,SAAS;AACb,IAAA,EAAE,EAAE,SAAS;AACb,IAAA,EAAE,EAAE,SAAS;AACb,IAAA,EAAE,EAAE,SAAS;AACb,IAAA,EAAE,EAAE,SAAS;AACb,IAAA,GAAG,EAAE,UAAU;AACf,IAAA,GAAG,EAAE,UAAU;;AAGZ,IAAM,kBAAkB,GAAG;AAE3B,IAAM,eAAe,GAAG;AACxB,IAAM,eAAe,GAAG;;;;;;;;;;;;"}
@@ -0,0 +1,163 @@
1
+ :root {
2
+ --color-light-neutral-500: #babbc2;
3
+ --color-light-neutral-700: #898991;
4
+ --color-light-neutral-translucent-1300: rgba(3, 3, 6, 0.88);
5
+ --color-light-neutral-translucent-1300-inverted: rgba(255, 255, 255, 0.94);
6
+ --color-light-neutral-translucent-300: rgba(15, 25, 55, 0.1);
7
+ --color-light-status-negative: #ff4837;
8
+ --color-light-status-positive: #0cc44d;
9
+ } :root {
10
+ --border-radius-pill: 99px;
11
+ } :root {
12
+ --gap-0: 0px;
13
+ } :root {
14
+ --font-family-system: system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Helvetica,
15
+ sans-serif;
16
+ } :root {
17
+ --circular-progress-bar-stroke-color: var(--color-light-neutral-translucent-300);
18
+ --circular-progress-bar-positive-color: var(--color-light-status-positive);
19
+ --circular-progress-bar-negative-color: var(--color-light-status-negative);
20
+ --circular-progress-bar-font-family: var(--font-family-system);
21
+ --circular-progress-bar-font-weight: 600;
22
+ } .circular-progress-bar__component_1fmyz {
23
+ position: relative;
24
+ display: flex;
25
+ justify-content: center;
26
+ align-items: center;
27
+ border-radius: var(--border-radius-pill)
28
+ } .circular-progress-bar__component_1fmyz.circular-progress-bar__bg-positive_1fmyz {
29
+ background: var(--circular-progress-bar-positive-color);
30
+ } .circular-progress-bar__component_1fmyz.circular-progress-bar__bg-negative_1fmyz {
31
+ background: var(--circular-progress-bar-negative-color);
32
+ } .circular-progress-bar__svg_1fmyz {
33
+ display: block;
34
+ width: 100%;
35
+ } .circular-progress-bar__title_1fmyz,
36
+ .circular-progress-bar__subtitle_1fmyz {
37
+ overflow: hidden;
38
+ word-break: break-word;
39
+ white-space: nowrap;
40
+ text-overflow: ellipsis;
41
+ margin: var(--gap-0) 6px;
42
+ } .circular-progress-bar__subtitle_1fmyz {
43
+ max-height: 40px;
44
+ } .circular-progress-bar__labelWrapper_1fmyz {
45
+ text-align: center;
46
+ position: absolute;
47
+ top: 50%;
48
+ left: 50%;
49
+ width: 100%;
50
+ transform: translate(-50%, -50%)
51
+ } .circular-progress-bar__labelWrapper_1fmyz.circular-progress-bar__label_1fmyz {
52
+ display: flex;
53
+ align-items: center;
54
+ justify-content: center;
55
+ } .circular-progress-bar__typography_1fmyz {
56
+ font-feature-settings: 'ss01';
57
+ font-weight: var(--circular-progress-bar-font-weight);
58
+ font-family: var(--circular-progress-bar-font-family);
59
+ } .circular-progress-bar__size-144_1fmyz {
60
+ width: 144px;
61
+ height: 144px
62
+ } .circular-progress-bar__size-144_1fmyz .circular-progress-bar__labelWrapper_1fmyz {
63
+ max-width: 128px;
64
+ } .circular-progress-bar__size-144_1fmyz .circular-progress-bar__title_1fmyz {
65
+ max-height: 32px;
66
+ } .circular-progress-bar__size-128_1fmyz {
67
+ width: 128px;
68
+ height: 128px
69
+ } .circular-progress-bar__size-128_1fmyz .circular-progress-bar__labelWrapper_1fmyz {
70
+ max-width: 108px;
71
+ } .circular-progress-bar__size-128_1fmyz .circular-progress-bar__title_1fmyz {
72
+ max-height: 32px;
73
+ } .circular-progress-bar__size-96_1fmyz {
74
+ width: 96px;
75
+ height: 96px
76
+ } .circular-progress-bar__size-96_1fmyz .circular-progress-bar__labelWrapper_1fmyz {
77
+ max-width: 64px;
78
+ } .circular-progress-bar__size-96_1fmyz .circular-progress-bar__title_1fmyz {
79
+ max-height: 20px;
80
+ } .circular-progress-bar__size-80_1fmyz {
81
+ width: 80px;
82
+ height: 80px
83
+ } .circular-progress-bar__size-80_1fmyz .circular-progress-bar__labelWrapper_1fmyz {
84
+ max-width: 64px;
85
+ } .circular-progress-bar__size-80_1fmyz .circular-progress-bar__title_1fmyz {
86
+ max-height: 24px;
87
+ } .circular-progress-bar__size-64_1fmyz {
88
+ width: 64px;
89
+ height: 64px
90
+ } .circular-progress-bar__size-64_1fmyz .circular-progress-bar__labelWrapper_1fmyz {
91
+ max-width: 48px;
92
+ } .circular-progress-bar__size-64_1fmyz .circular-progress-bar__title_1fmyz {
93
+ max-height: 16px;
94
+ margin: var(--gap-0);
95
+ } .circular-progress-bar__size-48_1fmyz {
96
+ width: 48px;
97
+ height: 48px
98
+ } .circular-progress-bar__size-48_1fmyz .circular-progress-bar__labelWrapper_1fmyz {
99
+ max-width: 40px;
100
+ } .circular-progress-bar__size-48_1fmyz .circular-progress-bar__title_1fmyz {
101
+ max-height: 16px;
102
+ margin: var(--gap-0);
103
+ } .circular-progress-bar__size-24_1fmyz {
104
+ width: 24px;
105
+ height: 24px
106
+ } .circular-progress-bar__size-24_1fmyz .circular-progress-bar__labelWrapper_1fmyz {
107
+ max-width: 24px;
108
+ } .circular-progress-bar__backgroundCircle_1fmyz,
109
+ .circular-progress-bar__progressCircle_1fmyz {
110
+ width: 100%;
111
+ height: 100%;
112
+ fill: transparent;
113
+ } .circular-progress-bar__positive_1fmyz {
114
+ stroke: var(--circular-progress-bar-positive-color);
115
+ } .circular-progress-bar__negative_1fmyz {
116
+ stroke: var(--circular-progress-bar-negative-color);
117
+ } .circular-progress-bar__backgroundCircle_1fmyz {
118
+ stroke: var(--circular-progress-bar-stroke-color)
119
+ } .circular-progress-bar__backgroundCircle_1fmyz.circular-progress-bar__stroke_1fmyz {
120
+ stroke: transparent;
121
+ } .circular-progress-bar__progressCircle_1fmyz {
122
+ stroke-linecap: round;
123
+ } .circular-progress-bar__iconWrapper_1fmyz {
124
+ display: flex;
125
+ align-items: center;
126
+ justify-content: center
127
+ } .circular-progress-bar__iconWrapper_1fmyz.circular-progress-bar__size-144_1fmyz {
128
+ max-width: 64px;
129
+ max-height: 64px;
130
+ } .circular-progress-bar__iconWrapper_1fmyz.circular-progress-bar__size-128_1fmyz {
131
+ max-width: 64px;
132
+ max-height: 64px;
133
+ } .circular-progress-bar__iconWrapper_1fmyz.circular-progress-bar__size-96_1fmyz {
134
+ max-width: 48px;
135
+ max-height: 48px;
136
+ } .circular-progress-bar__iconWrapper_1fmyz.circular-progress-bar__size-80_1fmyz {
137
+ max-width: 48px;
138
+ max-height: 48px;
139
+ } .circular-progress-bar__iconWrapper_1fmyz.circular-progress-bar__size-64_1fmyz {
140
+ max-width: 36px;
141
+ max-height: 36px;
142
+ } .circular-progress-bar__iconWrapper_1fmyz.circular-progress-bar__size-48_1fmyz {
143
+ max-width: 24px;
144
+ max-height: 24px;
145
+ } .circular-progress-bar__iconWrapper_1fmyz.circular-progress-bar__size-24_1fmyz {
146
+ max-width: 16px;
147
+ max-height: 16px;
148
+ } .circular-progress-bar__iconWrapper_1fmyz.circular-progress-bar__icon-tertiary_1fmyz {
149
+ color: var(--color-light-neutral-500);
150
+ } .circular-progress-bar__iconWrapper_1fmyz.circular-progress-bar__icon-positive_1fmyz {
151
+ color: var(--color-light-status-positive);
152
+ } .circular-progress-bar__iconWrapper_1fmyz.circular-progress-bar__icon-negative_1fmyz {
153
+ color: var(--color-light-status-negative);
154
+ } .circular-progress-bar__iconWrapper_1fmyz.circular-progress-bar__icon-primary-inverted_1fmyz {
155
+ color: var(--color-light-neutral-translucent-1300-inverted);
156
+ } .circular-progress-bar__iconWrapper_1fmyz.circular-progress-bar__icon-primary_1fmyz {
157
+ color: var(--color-light-neutral-translucent-1300);
158
+ } .circular-progress-bar__iconWrapper_1fmyz.circular-progress-bar__icon-secondary_1fmyz {
159
+ color: var(--color-light-neutral-700);
160
+ } .circular-progress-bar__icon_1fmyz {
161
+ width: 100%;
162
+ height: 100%;
163
+ }
@@ -0,0 +1,2 @@
1
+ export * from './Component';
2
+ export * from './types/typography-color';