@alfalab/core-components-circular-progress-bar 5.0.6 → 5.0.7-alfasans

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 (46) hide show
  1. package/Component.d.ts +4 -3
  2. package/Component.js.map +1 -1
  3. package/consts.d.ts +5 -0
  4. package/consts.js +5 -0
  5. package/consts.js.map +1 -1
  6. package/cssm/Component.d.ts +4 -3
  7. package/cssm/Component.js.map +1 -1
  8. package/cssm/consts.d.ts +5 -0
  9. package/cssm/consts.js +5 -0
  10. package/cssm/consts.js.map +1 -1
  11. package/cssm/index.module.css +7 -0
  12. package/cssm/types/component-size.d.ts +1 -1
  13. package/esm/Component.d.ts +4 -3
  14. package/esm/Component.js.map +1 -1
  15. package/esm/consts.d.ts +5 -0
  16. package/esm/consts.js +5 -0
  17. package/esm/consts.js.map +1 -1
  18. package/esm/index.css +58 -51
  19. package/esm/index.module.css.js +1 -1
  20. package/esm/index.module.css.js.map +1 -1
  21. package/esm/types/component-size.d.ts +1 -1
  22. package/index.css +58 -51
  23. package/index.module.css.js +1 -1
  24. package/index.module.css.js.map +1 -1
  25. package/modern/Component.d.ts +4 -3
  26. package/modern/Component.js.map +1 -1
  27. package/modern/consts.d.ts +5 -0
  28. package/modern/consts.js +5 -0
  29. package/modern/consts.js.map +1 -1
  30. package/modern/index.css +58 -51
  31. package/modern/index.module.css.js +1 -1
  32. package/modern/index.module.css.js.map +1 -1
  33. package/modern/types/component-size.d.ts +1 -1
  34. package/moderncssm/Component.d.ts +4 -3
  35. package/moderncssm/Component.js.map +1 -1
  36. package/moderncssm/consts.d.ts +5 -0
  37. package/moderncssm/consts.js +5 -0
  38. package/moderncssm/consts.js.map +1 -1
  39. package/moderncssm/index.module.css +9 -0
  40. package/moderncssm/types/component-size.d.ts +1 -1
  41. package/package.json +5 -5
  42. package/src/Component.tsx +4 -3
  43. package/src/consts.ts +5 -0
  44. package/src/index.module.css +9 -0
  45. package/src/types/component-size.ts +1 -1
  46. package/types/component-size.d.ts +1 -1
@@ -2,7 +2,7 @@
2
2
 
3
3
  require('./index.css');
4
4
 
5
- var styles = {"component":"circular-progress-bar__component_1sri8","bg-positive":"circular-progress-bar__bg-positive_1sri8","bg-negative":"circular-progress-bar__bg-negative_1sri8","svg":"circular-progress-bar__svg_1sri8","title":"circular-progress-bar__title_1sri8","subtitle":"circular-progress-bar__subtitle_1sri8","labelWrapper":"circular-progress-bar__labelWrapper_1sri8","label":"circular-progress-bar__label_1sri8","size-144":"circular-progress-bar__size-144_1sri8","size-128":"circular-progress-bar__size-128_1sri8","size-96":"circular-progress-bar__size-96_1sri8","size-80":"circular-progress-bar__size-80_1sri8","size-64":"circular-progress-bar__size-64_1sri8","size-48":"circular-progress-bar__size-48_1sri8","size-24":"circular-progress-bar__size-24_1sri8","backgroundCircle":"circular-progress-bar__backgroundCircle_1sri8","progressCircle":"circular-progress-bar__progressCircle_1sri8","positive":"circular-progress-bar__positive_1sri8","negative":"circular-progress-bar__negative_1sri8","stroke":"circular-progress-bar__stroke_1sri8","iconWrapper":"circular-progress-bar__iconWrapper_1sri8","icon-tertiary":"circular-progress-bar__icon-tertiary_1sri8","icon-positive":"circular-progress-bar__icon-positive_1sri8","icon-negative":"circular-progress-bar__icon-negative_1sri8","icon-primary-inverted":"circular-progress-bar__icon-primary-inverted_1sri8","icon-primary":"circular-progress-bar__icon-primary_1sri8","icon-secondary":"circular-progress-bar__icon-secondary_1sri8","icon":"circular-progress-bar__icon_1sri8"};
5
+ var styles = {"component":"circular-progress-bar__component_1l6t3","bg-positive":"circular-progress-bar__bg-positive_1l6t3","bg-negative":"circular-progress-bar__bg-negative_1l6t3","svg":"circular-progress-bar__svg_1l6t3","title":"circular-progress-bar__title_1l6t3","subtitle":"circular-progress-bar__subtitle_1l6t3","labelWrapper":"circular-progress-bar__labelWrapper_1l6t3","label":"circular-progress-bar__label_1l6t3","size-144":"circular-progress-bar__size-144_1l6t3","size-128":"circular-progress-bar__size-128_1l6t3","size-96":"circular-progress-bar__size-96_1l6t3","size-80":"circular-progress-bar__size-80_1l6t3","size-64":"circular-progress-bar__size-64_1l6t3","size-48":"circular-progress-bar__size-48_1l6t3","size-24":"circular-progress-bar__size-24_1l6t3","size-16":"circular-progress-bar__size-16_1l6t3","backgroundCircle":"circular-progress-bar__backgroundCircle_1l6t3","progressCircle":"circular-progress-bar__progressCircle_1l6t3","positive":"circular-progress-bar__positive_1l6t3","negative":"circular-progress-bar__negative_1l6t3","stroke":"circular-progress-bar__stroke_1l6t3","iconWrapper":"circular-progress-bar__iconWrapper_1l6t3","icon-tertiary":"circular-progress-bar__icon-tertiary_1l6t3","icon-positive":"circular-progress-bar__icon-positive_1l6t3","icon-negative":"circular-progress-bar__icon-negative_1l6t3","icon-primary-inverted":"circular-progress-bar__icon-primary-inverted_1l6t3","icon-primary":"circular-progress-bar__icon-primary_1l6t3","icon-secondary":"circular-progress-bar__icon-secondary_1l6t3","icon":"circular-progress-bar__icon_1l6t3"};
6
6
 
7
7
  module.exports = styles;
8
8
  //# sourceMappingURL=index.module.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.module.css.js","sources":["src/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/index.css';\n\n:root {\n /* stroke */\n --circular-progress-bar-stroke-color: var(--color-light-neutral-translucent-300);\n\n /* positive */\n --circular-progress-bar-positive-color: var(--color-light-status-positive);\n\n /* negative */\n --circular-progress-bar-negative-color: var(--color-light-status-negative);\n}\n\n.component {\n position: relative;\n display: flex;\n justify-content: center;\n align-items: center;\n border-radius: var(--border-radius-pill);\n\n &.bg-positive {\n background: var(--circular-progress-bar-positive-color);\n }\n\n &.bg-negative {\n background: var(--circular-progress-bar-negative-color);\n }\n}\n\n.svg {\n display: block;\n width: 100%;\n}\n\n.title,\n.subtitle {\n overflow: hidden;\n word-break: break-word;\n white-space: nowrap;\n text-overflow: ellipsis;\n margin: var(--gap-0) var(--gap-6);\n}\n\n.subtitle {\n max-height: 40px;\n}\n\n.labelWrapper {\n text-align: center;\n position: absolute;\n top: 50%;\n left: 50%;\n width: 100%;\n transform: translate(-50%, -50%);\n\n &.label {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n}\n\n.size-144 {\n width: 144px;\n height: 144px;\n\n & .labelWrapper {\n max-width: 128px;\n }\n\n & .title {\n max-height: 32px;\n }\n}\n\n.size-128 {\n width: 128px;\n height: 128px;\n\n & .labelWrapper {\n max-width: 108px;\n }\n\n & .title {\n max-height: 32px;\n }\n}\n\n.size-96 {\n width: 96px;\n height: 96px;\n\n & .labelWrapper {\n max-width: 64px;\n }\n\n & .title {\n max-height: 20px;\n }\n}\n\n.size-80 {\n width: 80px;\n height: 80px;\n\n & .labelWrapper {\n max-width: 64px;\n }\n\n & .title {\n max-height: 24px;\n }\n}\n\n.size-64 {\n width: 64px;\n height: 64px;\n\n & .labelWrapper {\n max-width: 48px;\n }\n\n & .title {\n max-height: 16px;\n margin: var(--gap-0);\n }\n}\n\n.size-48 {\n width: 48px;\n height: 48px;\n\n & .labelWrapper {\n max-width: 40px;\n }\n\n & .title {\n max-height: 16px;\n margin: var(--gap-0);\n }\n}\n\n.size-24 {\n width: 24px;\n height: 24px;\n\n & .labelWrapper {\n max-width: 24px;\n }\n}\n\n.backgroundCircle,\n.progressCircle {\n width: 100%;\n height: 100%;\n fill: transparent;\n}\n\n.positive {\n stroke: var(--circular-progress-bar-positive-color);\n}\n\n.negative {\n stroke: var(--circular-progress-bar-negative-color);\n}\n\n.backgroundCircle {\n stroke: var(--circular-progress-bar-stroke-color);\n\n &.stroke {\n stroke: transparent;\n }\n}\n\n.progressCircle {\n stroke-linecap: round;\n}\n\n.iconWrapper {\n display: flex;\n align-items: center;\n justify-content: center;\n\n &.size-144 {\n max-width: 64px;\n max-height: 64px;\n }\n\n &.size-128 {\n max-width: 64px;\n max-height: 64px;\n }\n\n &.size-96 {\n max-width: 48px;\n max-height: 48px;\n }\n\n &.size-80 {\n max-width: 48px;\n max-height: 48px;\n }\n\n &.size-64 {\n max-width: 36px;\n max-height: 36px;\n }\n\n &.size-48 {\n max-width: 24px;\n max-height: 24px;\n }\n\n &.size-24 {\n max-width: 16px;\n max-height: 16px;\n }\n\n &.icon-tertiary {\n color: var(--color-light-neutral-500);\n }\n\n &.icon-positive {\n color: var(--color-light-status-positive);\n }\n\n &.icon-negative {\n color: var(--color-light-status-negative);\n }\n\n &.icon-primary-inverted {\n color: var(--color-light-neutral-translucent-1300-inverted);\n }\n\n &.icon-primary {\n color: var(--color-light-neutral-translucent-1300);\n }\n\n &.icon-secondary {\n color: var(--color-light-neutral-700);\n }\n}\n\n.icon {\n width: 100%;\n height: 100%;\n}\n"],"names":[],"mappings":";;;;AAEgB,aAAe,CAAC,WAAW,CAAC,wCAAwC,CAAC,aAAa,CAAC,0CAA0C,CAAC,aAAa,CAAC,0CAA0C,CAAC,KAAK,CAAC,kCAAkC,CAAC,OAAO,CAAC,oCAAoC,CAAC,UAAU,CAAC,uCAAuC,CAAC,cAAc,CAAC,2CAA2C,CAAC,OAAO,CAAC,oCAAoC,CAAC,UAAU,CAAC,uCAAuC,CAAC,UAAU,CAAC,uCAAuC,CAAC,SAAS,CAAC,sCAAsC,CAAC,SAAS,CAAC,sCAAsC,CAAC,SAAS,CAAC,sCAAsC,CAAC,SAAS,CAAC,sCAAsC,CAAC,SAAS,CAAC,sCAAsC,CAAC,kBAAkB,CAAC,+CAA+C,CAAC,gBAAgB,CAAC,6CAA6C,CAAC,UAAU,CAAC,uCAAuC,CAAC,UAAU,CAAC,uCAAuC,CAAC,QAAQ,CAAC,qCAAqC,CAAC,aAAa,CAAC,0CAA0C,CAAC,eAAe,CAAC,4CAA4C,CAAC,eAAe,CAAC,4CAA4C,CAAC,eAAe,CAAC,4CAA4C,CAAC,uBAAuB,CAAC,oDAAoD,CAAC,cAAc,CAAC,2CAA2C,CAAC,gBAAgB,CAAC,6CAA6C,CAAC,MAAM,CAAC,mCAAmC,CAAC;;;;"}
1
+ {"version":3,"file":"index.module.css.js","sources":["src/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/index.css';\n\n:root {\n /* stroke */\n --circular-progress-bar-stroke-color: var(--color-light-neutral-translucent-300);\n\n /* positive */\n --circular-progress-bar-positive-color: var(--color-light-status-positive);\n\n /* negative */\n --circular-progress-bar-negative-color: var(--color-light-status-negative);\n}\n\n.component {\n position: relative;\n display: flex;\n justify-content: center;\n align-items: center;\n border-radius: var(--border-radius-pill);\n\n &.bg-positive {\n background: var(--circular-progress-bar-positive-color);\n }\n\n &.bg-negative {\n background: var(--circular-progress-bar-negative-color);\n }\n}\n\n.svg {\n display: block;\n width: 100%;\n}\n\n.title,\n.subtitle {\n overflow: hidden;\n word-break: break-word;\n white-space: nowrap;\n text-overflow: ellipsis;\n margin: var(--gap-0) var(--gap-6);\n}\n\n.subtitle {\n max-height: 40px;\n}\n\n.labelWrapper {\n text-align: center;\n position: absolute;\n top: 50%;\n left: 50%;\n width: 100%;\n transform: translate(-50%, -50%);\n\n &.label {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n}\n\n.size-144 {\n width: 144px;\n height: 144px;\n\n & .labelWrapper {\n max-width: 128px;\n }\n\n & .title {\n max-height: 32px;\n }\n}\n\n.size-128 {\n width: 128px;\n height: 128px;\n\n & .labelWrapper {\n max-width: 108px;\n }\n\n & .title {\n max-height: 32px;\n }\n}\n\n.size-96 {\n width: 96px;\n height: 96px;\n\n & .labelWrapper {\n max-width: 64px;\n }\n\n & .title {\n max-height: 20px;\n }\n}\n\n.size-80 {\n width: 80px;\n height: 80px;\n\n & .labelWrapper {\n max-width: 64px;\n }\n\n & .title {\n max-height: 24px;\n }\n}\n\n.size-64 {\n width: 64px;\n height: 64px;\n\n & .labelWrapper {\n max-width: 48px;\n }\n\n & .title {\n max-height: 16px;\n margin: var(--gap-0);\n }\n}\n\n.size-48 {\n width: 48px;\n height: 48px;\n\n & .labelWrapper {\n max-width: 40px;\n }\n\n & .title {\n max-height: 16px;\n margin: var(--gap-0);\n }\n}\n\n.size-24 {\n width: 24px;\n height: 24px;\n\n & .labelWrapper {\n max-width: 24px;\n }\n}\n\n.size-16 {\n width: 16px;\n height: 16px;\n\n & .labelWrapper {\n max-width: 16px;\n }\n}\n\n.backgroundCircle,\n.progressCircle {\n width: 100%;\n height: 100%;\n fill: transparent;\n}\n\n.positive {\n stroke: var(--circular-progress-bar-positive-color);\n}\n\n.negative {\n stroke: var(--circular-progress-bar-negative-color);\n}\n\n.backgroundCircle {\n stroke: var(--circular-progress-bar-stroke-color);\n\n &.stroke {\n stroke: transparent;\n }\n}\n\n.progressCircle {\n stroke-linecap: round;\n}\n\n.iconWrapper {\n display: flex;\n align-items: center;\n justify-content: center;\n\n &.size-144 {\n max-width: 64px;\n max-height: 64px;\n }\n\n &.size-128 {\n max-width: 64px;\n max-height: 64px;\n }\n\n &.size-96 {\n max-width: 48px;\n max-height: 48px;\n }\n\n &.size-80 {\n max-width: 48px;\n max-height: 48px;\n }\n\n &.size-64 {\n max-width: 36px;\n max-height: 36px;\n }\n\n &.size-48 {\n max-width: 24px;\n max-height: 24px;\n }\n\n &.size-24 {\n max-width: 16px;\n max-height: 16px;\n }\n\n &.icon-tertiary {\n color: var(--color-light-neutral-500);\n }\n\n &.icon-positive {\n color: var(--color-light-status-positive);\n }\n\n &.icon-negative {\n color: var(--color-light-status-negative);\n }\n\n &.icon-primary-inverted {\n color: var(--color-light-neutral-translucent-1300-inverted);\n }\n\n &.icon-primary {\n color: var(--color-light-neutral-translucent-1300);\n }\n\n &.icon-secondary {\n color: var(--color-light-neutral-700);\n }\n}\n\n.icon {\n width: 100%;\n height: 100%;\n}\n"],"names":[],"mappings":";;;;AAEgB,aAAe,CAAC,WAAW,CAAC,wCAAwC,CAAC,aAAa,CAAC,0CAA0C,CAAC,aAAa,CAAC,0CAA0C,CAAC,KAAK,CAAC,kCAAkC,CAAC,OAAO,CAAC,oCAAoC,CAAC,UAAU,CAAC,uCAAuC,CAAC,cAAc,CAAC,2CAA2C,CAAC,OAAO,CAAC,oCAAoC,CAAC,UAAU,CAAC,uCAAuC,CAAC,UAAU,CAAC,uCAAuC,CAAC,SAAS,CAAC,sCAAsC,CAAC,SAAS,CAAC,sCAAsC,CAAC,SAAS,CAAC,sCAAsC,CAAC,SAAS,CAAC,sCAAsC,CAAC,SAAS,CAAC,sCAAsC,CAAC,SAAS,CAAC,sCAAsC,CAAC,kBAAkB,CAAC,+CAA+C,CAAC,gBAAgB,CAAC,6CAA6C,CAAC,UAAU,CAAC,uCAAuC,CAAC,UAAU,CAAC,uCAAuC,CAAC,QAAQ,CAAC,qCAAqC,CAAC,aAAa,CAAC,0CAA0C,CAAC,eAAe,CAAC,4CAA4C,CAAC,eAAe,CAAC,4CAA4C,CAAC,eAAe,CAAC,4CAA4C,CAAC,uBAAuB,CAAC,oDAAoD,CAAC,cAAc,CAAC,2CAA2C,CAAC,gBAAgB,CAAC,6CAA6C,CAAC,MAAM,CAAC,mCAAmC,CAAC;;;;"}
@@ -63,7 +63,7 @@ export type CircularProgressBarProps = {
63
63
  */
64
64
  view?: 'positive' | 'negative';
65
65
  /**
66
- * Размер (144 — 144×144px, 128 — 128×128px, 80 — 80×80px, 64 — 64×64px, 48 — 48×48px, 24 — 24×24px)
66
+ * Размер (144 — 144×144px, 128 — 128×128px, 80 — 80×80px, 64 — 64×64px, 48 — 48×48px, 24 — 24×24px, 16 — 16×16px)
67
67
  * @default 64
68
68
  */
69
69
  size?: ComponentSize;
@@ -100,14 +100,15 @@ export type CircularProgressBarProps = {
100
100
  */
101
101
  direction?: 'clockwise' | 'counter-clockwise';
102
102
  /**
103
- * Высота компонента, min = 24; max = 144
104
- * использовать совместно с size :
103
+ * Высота компонента, min = 16; max = 144
104
+ * использовать совместно с size:
105
105
  * 144 от 144
106
106
  * 128 от 128 до 143
107
107
  * 80 от 80 до 127
108
108
  * 64 от 64 до 79
109
109
  * 48 от 48 до 63
110
110
  * 24 от 24 до 47
111
+ * 16 от 16 до 23
111
112
  */
112
113
  height?: number;
113
114
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Component.js","sources":["../src/Component.tsx"],"sourcesContent":["/* eslint-disable complexity */\nimport React, { type ElementType, type ReactNode, useMemo } from 'react';\nimport cn from 'classnames';\n\nimport { getDataTestId, isObject, noop } from '@alfalab/core-components-shared';\nimport { TypographyText, TypographyTitleMobile } from '@alfalab/core-components-typography';\n\nimport { type ComponentSize } from './types/component-size';\nimport { type 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 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 * Размер (144 — 144×144px, 128 — 128×128px, 80 — 80×80px, 64 — 64×64px, 48 — 48×48px, 24 — 24×24px)\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 * 144 от 144\n * 128 от 128 до 143\n * 80 от 80 до 127\n * 64 от 64 до 79\n * 48 от 48 до 63\n * 24 от 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 <TypographyTitleMobile\n className={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 </TypographyTitleMobile>\n ) : (\n <TypographyText\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 </TypographyText>\n );\n\n const renderTitle = () => (typeof title === 'string' ? renderTitleString() : titleContent);\n\n const renderSubTitle = () =>\n typeof subtitle === 'string' ? (\n <TypographyText\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 </TypographyText>\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":[],"mappings":";;;;;;;;;AAAA;AAuLA;;AAEG;MACU,mBAAmB,GAAuC,CAAC,EACpE,KAAK,EAAE,cAAc,EACrB,IAAI,GAAG,UAAU,EACjB,IAAI,GAAG,EAAE,EACT,SAAS,EACT,UAAU,EACV,KAAK,EAAE,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC,GAAG,IAAI,GAAG,GAAG,cAAc,CAAA,CAAE,EAC7E,aAAa,EACb,QAAQ,EACR,YAAY,GAAG,WAAW,EAC1B,gBAAgB,EAChB,MAAM,GAAG,IAAI,EACb,YAAY,EACZ,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,YAAY,EAC1B,iBAAiB,EACjB,iBAAiB,GAAG,UAAU,EAC9B,SAAS,GAAG,WAAW,EACvB,MAAM,EACN,QAAQ,EACR,mBAAmB,EACnB,WAAW,EACX,WAAW,EACX,aAAa,GAAG,KAAK,EACrB,UAAU,EACV,aAAa,GAChB,KAAI;AACD,IAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC;AACxC,IAAA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,QAAQ,CACrC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,EAAE,eAAe,CAAC,EAAE,eAAe,CAAC,GAAG,EAAE,EACzF,OAAO,EACP,OAAO,IAAI,cAAc,CAAC,QAAQ,IAAI,UAAU,IAAI,UAAU,EAC9D,OAAO,IAAI,cAAc,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CACrD;AACD,IAAA,IAAI,KAAa;AACjB,IAAA,IAAI,KAAsB;IAE1B,IAAI,OAAO,EAAE;QACT,KAAK,GAAG,UAAU;QAClB,KAAK,GAAG,UAAU;;SACf;QACH,KAAK,GAAG,cAAc;QACtB,KAAK,GAAG,cAAc;;AAG1B,IAAA,KAAK,GAAG,aAAa,KAAK,MAAM,GAAG,kBAAkB,GAAG,KAAK,GAAG,KAAK;AAErE,IAAA,MAAM,SAAS,GAAG,OAAO,CAAC,MAAK;AAC3B,QAAA,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC;QAChC,MAAM,WAAW,GAAG,GAAG;QACvB,MAAM,WAAW,GAAG,CAAC;AACrB,QAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC;AAC5B,QAAA,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC;AAC7B,QAAA,MAAM,MAAM,GAAG,QAAQ,GAAG,CAAC;AAC3B,QAAA,MAAM,MAAM,GAAG,MAAM,GAAG,WAAW,GAAG,CAAC;QACvC,MAAM,aAAa,GAAG,IAAI,CAAC,EAAE,GAAG,MAAM,GAAG,CAAC;AAC1C,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC;QACpE,MAAM,eAAe,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;QAChD,MAAM,gBAAgB,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,QAAQ,IAAI,GAAG,IAAI,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC;QAE9E,OAAO;YACH,QAAQ;YACR,SAAS;YACT,MAAM;YACN,MAAM;YACN,eAAe;YACf,gBAAgB;SACnB;AACL,KAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAEjB,IAAA,MAAM,UAAU,GAAG,KAAK,KAAK,GAAG;AAChC,IAAA,MAAM,mBAAmB,GAAG,UAAU,IAAI,iBAAiB;AAC3D,IAAA,MAAM,YAAY,GAAG,aAAa,IAAI,UAAU,GAAG,aAAa,GAAG,KAAK;AACxE,IAAA,MAAM,eAAe,GAAG,gBAAgB,IAAI,UAAU,GAAG,gBAAgB,GAAG,QAAQ;AACpF,IAAA,MAAM,aAAa,GAAG,YAAY,IAAI,UAAU,GAAG,YAAY,GAAG,IAAI;AAEtE,IAAA,MAAM,sBAAsB,GAAG,gBAAgB,CAAC,QAAQ,CAAC,YAAY;AACjE,UAAG;UACD,SAAS;AAEf,IAAA,MAAM,YAAY,GAAG,CAAC,KAAgC,KAAI;QACtD,IAAI,mBAAmB,EAAE;AACrB,YAAA,OAAO,iBAAiB;;QAG5B,IAAI,KAAK,EAAE;AACP,YAAA,OAAO,iBAAiB,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,SAAS;;AAGvD,QAAA,OAAO,sBAAsB;AACjC,KAAC;AAED,IAAA,MAAM,iBAAiB,GAAG,CAAC,KAAgC,KAAI;QAC3D,IAAI,KAAK,EAAE;AACP,YAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE;gBAC3B,OAAO,EAAE,KAAK,EAAE;;AAGpB,YAAA,OAAO,EAAE;;QAGb,OAAO;YACH,IAAI,CAAC,sBAAsB,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;SAC1D;AACL,KAAC;IAED,MAAM,iBAAiB,GAAG,MACtB,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IACZ,KAAA,CAAA,aAAA,CAAC,qBAAqB,EAClB,EAAA,SAAS,EAAE,MAAM,CAAC,KAAK,EACvB,KAAK,EAAE,YAAY,CAAC,UAAU,CAAC,EAC/B,GAAG,EAAC,KAAK,EACT,IAAI,EAAC,QAAQ,EACb,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,EACtB,KAAK,EAAE;YACH,GAAG,iBAAiB,CAAC,UAAU,CAAC;SACnC,EACD,UAAU,EAAE,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,EAAA,EAE7C,YAAY,CACO,KAExB,KAAA,CAAA,aAAA,CAAC,cAAc,EACX,EAAA,SAAS,EAAE,MAAM,CAAC,KAAK,EACvB,KAAK,EAAE,YAAY,CAAC,UAAU,CAAC,EAC/B,GAAG,EAAC,KAAK,EACT,MAAM,EAAC,MAAM,EACb,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EACrB,KAAK,EAAE;YACH,GAAG,iBAAiB,CAAC,UAAU,CAAC;AACnC,SAAA,EACD,UAAU,EAAE,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,EAE7C,EAAA,YAAY,CACA,CACpB;IAEL,MAAM,WAAW,GAAG,OAAO,OAAO,KAAK,KAAK,QAAQ,GAAG,iBAAiB,EAAE,GAAG,YAAY,CAAC;IAE1F,MAAM,cAAc,GAAG,MACnB,OAAO,QAAQ,KAAK,QAAQ,IACxB,oBAAC,cAAc,EAAA,EACX,GAAG,EAAC,KAAK,EACT,SAAS,EAAE,MAAM,CAAC,QAAQ,EAC1B,KAAK,EAAE,YAAY,CAAC,aAAa,CAAC,EAClC,IAAI,EAAC,eAAe,EACpB,UAAU,EAAE,aAAa,CAAC,UAAU,EAAE,UAAU,CAAC,EACjD,KAAK,EAAE;YACH,GAAG,iBAAiB,CAAC,aAAa,CAAC;SACtC,EAEA,EAAA,eAAe,CACH,KAEjB,eAAe,CAClB;AAEL,IAAA,MAAM,UAAU,GAAG,OACf,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EACI,SAAS,EAAE,EAAE,CACT,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,EACnC,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,CAAA,KAAA,EAAQ,YAAY,CAAA,CAAE,CAAC,EAC9B;YACI,CAAC,MAAM,CAAC,CAAQ,KAAA,EAAA,iBAAiB,EAAE,CAAC,GAAG,iBAAiB;AAC3D,SAAA,CACJ,EAEA,EAAA,aAAa,IAAI,KAAA,CAAA,aAAA,CAAC,aAAa,EAAC,EAAA,SAAS,EAAE,MAAM,CAAC,IAAI,EAAI,CAAA,CACxD,CACV;IAED,MAAM,aAAa,GAAG,MAClB,IAAI,KAAK,YAAY,IAAI,UAAU,CAAC,IAChC,UAAU,EAAE,KAEZ,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,QAAQ,EAAA,IAAA;AACV,QAAA,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,WAAW,EAAE;QACjC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,cAAc,EAAE,CACxB,CACpB;AAEL,IAAA,QACI,KACI,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,EAAE;YAC5E,CAAC,MAAM,CAAC,CAAA,GAAA,EAAM,IAAI,CAAA,CAAE,CAAC,GAAG,YAAY,IAAI,UAAU;SACrD,CAAC,EACF,KAAK,EAAE;YACH,IAAI,MAAM,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;YACxC,IAAI,WAAW,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC;AACvD,SAAA,EAAA,cAAA,EACa,UAAU,EAAA;QAExB,KACI,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,OAAO,EAAE,CAAO,IAAA,EAAA,SAAS,CAAC,QAAQ,CAAA,CAAA,EAAI,SAAS,CAAC,SAAS,EAAE,EAC3D,SAAS,EAAE,MAAM,CAAC,GAAG,EACrB,KAAK,EAAC,4BAA4B,EAAA;AAElC,YAAA,KAAA,CAAA,aAAA,CAAA,QAAA,EAAA,EACI,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,EAAE;AACxE,oBAAA,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,MAAM;iBAC3B,CAAC,EACF,KAAK,EAAE;oBACH,IAAI,WAAW,IAAI,MAAM,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AACxD,iBAAA,EACD,EAAE,EAAE,SAAS,CAAC,MAAM,EACpB,EAAE,EAAE,SAAS,CAAC,MAAM,EACpB,CAAC,EAAE,SAAS,CAAC,MAAM,EACnB,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,EACX,cAAA,EAAA,aAAa,CAAC,UAAU,EAAE,qBAAqB,CAAC,EAChE,CAAA;YACF,KACI,CAAA,aAAA,CAAA,QAAA,EAAA,EAAA,SAAS,EAAE,EAAE,CACT,MAAM,CAAC,cAAc,EACrB,MAAM,CAAC,IAAI,CAAC,EACZ,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CACtC,EACD,KAAK,EAAE;oBACH,IAAI,mBAAmB,IAAI,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;AAC9D,iBAAA,EACD,EAAE,EAAE,SAAS,CAAC,MAAM,EACpB,EAAE,EAAE,SAAS,CAAC,MAAM,EACpB,CAAC,EAAE,SAAS,CAAC,MAAM,EACnB,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,EACzB,eAAe,EAAE,SAAS,CAAC,eAAe,EAC1C,gBAAgB,EACZ,SAAS,KAAK;AACV,sBAAE,CAAC,SAAS,CAAC;sBACX,SAAS,CAAC,gBAAgB,EAEpC,SAAS,EAAE,CAAU,OAAA,EAAA,IAAG,CAAA,CAAA,EAAI,SAAS,CAAC,MAAM,CAAA,CAAA,EAAI,SAAS,CAAC,MAAM,CAAA,CAAA,CAAG,EACrD,cAAA,EAAA,aAAa,CAAC,UAAU,EAAE,uBAAuB,CAAC,EAAA,CAClE,CACA;AACN,QAAA,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EACI,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE;AAC/B,gBAAA,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,IAAI,YAAY;aACvC,CAAC,EAAA,EAED,QAAQ,IAAI,aAAa,EAAE,CAC1B,CACJ;AAEd;;;;"}
1
+ {"version":3,"file":"Component.js","sources":["../src/Component.tsx"],"sourcesContent":["/* eslint-disable complexity */\nimport React, { type ElementType, type ReactNode, useMemo } from 'react';\nimport cn from 'classnames';\n\nimport { getDataTestId, isObject, noop } from '@alfalab/core-components-shared';\nimport { TypographyText, TypographyTitleMobile } from '@alfalab/core-components-typography';\n\nimport { type ComponentSize } from './types/component-size';\nimport { type 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 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 * Размер (144 — 144×144px, 128 — 128×128px, 80 — 80×80px, 64 — 64×64px, 48 — 48×48px, 24 — 24×24px, 16 — 16×16px)\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 = 16; max = 144\n * использовать совместно с size:\n * 144 от 144\n * 128 от 128 до 143\n * 80 от 80 до 127\n * 64 от 64 до 79\n * 48 от 48 до 63\n * 24 от 24 до 47\n * 16 от 16 до 23\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 <TypographyTitleMobile\n className={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 </TypographyTitleMobile>\n ) : (\n <TypographyText\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 </TypographyText>\n );\n\n const renderTitle = () => (typeof title === 'string' ? renderTitleString() : titleContent);\n\n const renderSubTitle = () =>\n typeof subtitle === 'string' ? (\n <TypographyText\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 </TypographyText>\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":[],"mappings":"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"}
@@ -5,6 +5,7 @@ export declare const SIZES: {
5
5
  l: number;
6
6
  xl: number;
7
7
  xxl: number;
8
+ 16: number;
8
9
  24: number;
9
10
  48: number;
10
11
  64: number;
@@ -20,6 +21,7 @@ export declare const STROKE: {
20
21
  l: number;
21
22
  xl: number;
22
23
  xxl: number;
24
+ 16: number;
23
25
  24: number;
24
26
  48: number;
25
27
  64: number;
@@ -35,6 +37,7 @@ export declare const VIEW_TITLE: {
35
37
  readonly l: "xsmall";
36
38
  readonly xl: "medium";
37
39
  readonly xxl: "medium";
40
+ readonly 16: "small";
38
41
  readonly 24: "small";
39
42
  readonly 48: "small";
40
43
  readonly 64: "small";
@@ -50,6 +53,7 @@ export declare const VIEW_TEXT: {
50
53
  readonly l: "secondary-large";
51
54
  readonly xl: "secondary-large";
52
55
  readonly xxl: "secondary-large";
56
+ readonly 16: "secondary-small";
53
57
  readonly 24: "secondary-small";
54
58
  readonly 48: "secondary-small";
55
59
  readonly 64: "secondary-large";
@@ -66,6 +70,7 @@ export declare const SIZE_TO_CLASSNAME_MAP: {
66
70
  l: string;
67
71
  xl: string;
68
72
  xxl: string;
73
+ 16: string;
69
74
  24: string;
70
75
  48: string;
71
76
  64: string;
package/modern/consts.js CHANGED
@@ -5,6 +5,7 @@ const SIZES = {
5
5
  l: 80,
6
6
  xl: 128,
7
7
  xxl: 144,
8
+ 16: 16,
8
9
  24: 24,
9
10
  48: 48,
10
11
  64: 64,
@@ -20,6 +21,7 @@ const STROKE = {
20
21
  l: 8,
21
22
  xl: 10,
22
23
  xxl: 12,
24
+ 16: 2,
23
25
  24: 4,
24
26
  48: 4,
25
27
  64: 6,
@@ -35,6 +37,7 @@ const VIEW_TITLE = {
35
37
  l: 'xsmall',
36
38
  xl: 'medium',
37
39
  xxl: 'medium',
40
+ 16: 'small',
38
41
  24: 'small',
39
42
  48: 'small',
40
43
  64: 'small',
@@ -50,6 +53,7 @@ const VIEW_TEXT = {
50
53
  l: 'secondary-large',
51
54
  xl: 'secondary-large',
52
55
  xxl: 'secondary-large',
56
+ 16: 'secondary-small',
53
57
  24: 'secondary-small',
54
58
  48: 'secondary-small',
55
59
  64: 'secondary-large',
@@ -66,6 +70,7 @@ const SIZE_TO_CLASSNAME_MAP = {
66
70
  l: 'size-80',
67
71
  xl: 'size-128',
68
72
  xxl: 'size-144',
73
+ 16: 'size-16',
69
74
  24: 'size-24',
70
75
  48: 'size-48',
71
76
  64: 'size-64',
@@ -1 +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,MAAA,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,MAAA,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,MAAA,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,MAAA,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,MAAM,gBAAgB,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAE9E,MAAA,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,MAAM,kBAAkB,GAAG;AAE3B,MAAM,eAAe,GAAG;AACxB,MAAM,eAAe,GAAG;;;;"}
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 16: 16,\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 16: 2,\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 16: 'small',\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 16: 'secondary-small',\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 16: 'size-16',\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":"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"}
package/modern/index.css CHANGED
@@ -19,35 +19,35 @@
19
19
  --circular-progress-bar-positive-color: var(--color-light-status-positive);
20
20
  --circular-progress-bar-negative-color: var(--color-light-status-negative);
21
21
  }
22
- .circular-progress-bar__component_1sri8 {
22
+ .circular-progress-bar__component_1l6t3 {
23
23
  position: relative;
24
24
  display: flex;
25
25
  justify-content: center;
26
26
  align-items: center;
27
27
  border-radius: var(--border-radius-pill);
28
28
  }
29
- .circular-progress-bar__component_1sri8.circular-progress-bar__bg-positive_1sri8 {
29
+ .circular-progress-bar__component_1l6t3.circular-progress-bar__bg-positive_1l6t3 {
30
30
  background: var(--circular-progress-bar-positive-color);
31
31
  }
32
- .circular-progress-bar__component_1sri8.circular-progress-bar__bg-negative_1sri8 {
32
+ .circular-progress-bar__component_1l6t3.circular-progress-bar__bg-negative_1l6t3 {
33
33
  background: var(--circular-progress-bar-negative-color);
34
34
  }
35
- .circular-progress-bar__svg_1sri8 {
35
+ .circular-progress-bar__svg_1l6t3 {
36
36
  display: block;
37
37
  width: 100%;
38
38
  }
39
- .circular-progress-bar__title_1sri8,
40
- .circular-progress-bar__subtitle_1sri8 {
39
+ .circular-progress-bar__title_1l6t3,
40
+ .circular-progress-bar__subtitle_1l6t3 {
41
41
  overflow: hidden;
42
42
  word-break: break-word;
43
43
  white-space: nowrap;
44
44
  text-overflow: ellipsis;
45
45
  margin: var(--gap-0) var(--gap-6);
46
46
  }
47
- .circular-progress-bar__subtitle_1sri8 {
47
+ .circular-progress-bar__subtitle_1l6t3 {
48
48
  max-height: 40px;
49
49
  }
50
- .circular-progress-bar__labelWrapper_1sri8 {
50
+ .circular-progress-bar__labelWrapper_1l6t3 {
51
51
  text-align: center;
52
52
  position: absolute;
53
53
  top: 50%;
@@ -55,153 +55,160 @@
55
55
  width: 100%;
56
56
  transform: translate(-50%, -50%);
57
57
  }
58
- .circular-progress-bar__labelWrapper_1sri8.circular-progress-bar__label_1sri8 {
58
+ .circular-progress-bar__labelWrapper_1l6t3.circular-progress-bar__label_1l6t3 {
59
59
  display: flex;
60
60
  align-items: center;
61
61
  justify-content: center;
62
62
  }
63
- .circular-progress-bar__size-144_1sri8 {
63
+ .circular-progress-bar__size-144_1l6t3 {
64
64
  width: 144px;
65
65
  height: 144px;
66
66
  }
67
- .circular-progress-bar__size-144_1sri8 .circular-progress-bar__labelWrapper_1sri8 {
67
+ .circular-progress-bar__size-144_1l6t3 .circular-progress-bar__labelWrapper_1l6t3 {
68
68
  max-width: 128px;
69
69
  }
70
- .circular-progress-bar__size-144_1sri8 .circular-progress-bar__title_1sri8 {
70
+ .circular-progress-bar__size-144_1l6t3 .circular-progress-bar__title_1l6t3 {
71
71
  max-height: 32px;
72
72
  }
73
- .circular-progress-bar__size-128_1sri8 {
73
+ .circular-progress-bar__size-128_1l6t3 {
74
74
  width: 128px;
75
75
  height: 128px;
76
76
  }
77
- .circular-progress-bar__size-128_1sri8 .circular-progress-bar__labelWrapper_1sri8 {
77
+ .circular-progress-bar__size-128_1l6t3 .circular-progress-bar__labelWrapper_1l6t3 {
78
78
  max-width: 108px;
79
79
  }
80
- .circular-progress-bar__size-128_1sri8 .circular-progress-bar__title_1sri8 {
80
+ .circular-progress-bar__size-128_1l6t3 .circular-progress-bar__title_1l6t3 {
81
81
  max-height: 32px;
82
82
  }
83
- .circular-progress-bar__size-96_1sri8 {
83
+ .circular-progress-bar__size-96_1l6t3 {
84
84
  width: 96px;
85
85
  height: 96px;
86
86
  }
87
- .circular-progress-bar__size-96_1sri8 .circular-progress-bar__labelWrapper_1sri8 {
87
+ .circular-progress-bar__size-96_1l6t3 .circular-progress-bar__labelWrapper_1l6t3 {
88
88
  max-width: 64px;
89
89
  }
90
- .circular-progress-bar__size-96_1sri8 .circular-progress-bar__title_1sri8 {
90
+ .circular-progress-bar__size-96_1l6t3 .circular-progress-bar__title_1l6t3 {
91
91
  max-height: 20px;
92
92
  }
93
- .circular-progress-bar__size-80_1sri8 {
93
+ .circular-progress-bar__size-80_1l6t3 {
94
94
  width: 80px;
95
95
  height: 80px;
96
96
  }
97
- .circular-progress-bar__size-80_1sri8 .circular-progress-bar__labelWrapper_1sri8 {
97
+ .circular-progress-bar__size-80_1l6t3 .circular-progress-bar__labelWrapper_1l6t3 {
98
98
  max-width: 64px;
99
99
  }
100
- .circular-progress-bar__size-80_1sri8 .circular-progress-bar__title_1sri8 {
100
+ .circular-progress-bar__size-80_1l6t3 .circular-progress-bar__title_1l6t3 {
101
101
  max-height: 24px;
102
102
  }
103
- .circular-progress-bar__size-64_1sri8 {
103
+ .circular-progress-bar__size-64_1l6t3 {
104
104
  width: 64px;
105
105
  height: 64px;
106
106
  }
107
- .circular-progress-bar__size-64_1sri8 .circular-progress-bar__labelWrapper_1sri8 {
107
+ .circular-progress-bar__size-64_1l6t3 .circular-progress-bar__labelWrapper_1l6t3 {
108
108
  max-width: 48px;
109
109
  }
110
- .circular-progress-bar__size-64_1sri8 .circular-progress-bar__title_1sri8 {
110
+ .circular-progress-bar__size-64_1l6t3 .circular-progress-bar__title_1l6t3 {
111
111
  max-height: 16px;
112
112
  margin: var(--gap-0);
113
113
  }
114
- .circular-progress-bar__size-48_1sri8 {
114
+ .circular-progress-bar__size-48_1l6t3 {
115
115
  width: 48px;
116
116
  height: 48px;
117
117
  }
118
- .circular-progress-bar__size-48_1sri8 .circular-progress-bar__labelWrapper_1sri8 {
118
+ .circular-progress-bar__size-48_1l6t3 .circular-progress-bar__labelWrapper_1l6t3 {
119
119
  max-width: 40px;
120
120
  }
121
- .circular-progress-bar__size-48_1sri8 .circular-progress-bar__title_1sri8 {
121
+ .circular-progress-bar__size-48_1l6t3 .circular-progress-bar__title_1l6t3 {
122
122
  max-height: 16px;
123
123
  margin: var(--gap-0);
124
124
  }
125
- .circular-progress-bar__size-24_1sri8 {
125
+ .circular-progress-bar__size-24_1l6t3 {
126
126
  width: 24px;
127
127
  height: 24px;
128
128
  }
129
- .circular-progress-bar__size-24_1sri8 .circular-progress-bar__labelWrapper_1sri8 {
129
+ .circular-progress-bar__size-24_1l6t3 .circular-progress-bar__labelWrapper_1l6t3 {
130
130
  max-width: 24px;
131
131
  }
132
- .circular-progress-bar__backgroundCircle_1sri8,
133
- .circular-progress-bar__progressCircle_1sri8 {
132
+ .circular-progress-bar__size-16_1l6t3 {
133
+ width: 16px;
134
+ height: 16px;
135
+ }
136
+ .circular-progress-bar__size-16_1l6t3 .circular-progress-bar__labelWrapper_1l6t3 {
137
+ max-width: 16px;
138
+ }
139
+ .circular-progress-bar__backgroundCircle_1l6t3,
140
+ .circular-progress-bar__progressCircle_1l6t3 {
134
141
  width: 100%;
135
142
  height: 100%;
136
143
  fill: transparent;
137
144
  }
138
- .circular-progress-bar__positive_1sri8 {
145
+ .circular-progress-bar__positive_1l6t3 {
139
146
  stroke: var(--circular-progress-bar-positive-color);
140
147
  }
141
- .circular-progress-bar__negative_1sri8 {
148
+ .circular-progress-bar__negative_1l6t3 {
142
149
  stroke: var(--circular-progress-bar-negative-color);
143
150
  }
144
- .circular-progress-bar__backgroundCircle_1sri8 {
151
+ .circular-progress-bar__backgroundCircle_1l6t3 {
145
152
  stroke: var(--circular-progress-bar-stroke-color);
146
153
  }
147
- .circular-progress-bar__backgroundCircle_1sri8.circular-progress-bar__stroke_1sri8 {
154
+ .circular-progress-bar__backgroundCircle_1l6t3.circular-progress-bar__stroke_1l6t3 {
148
155
  stroke: transparent;
149
156
  }
150
- .circular-progress-bar__progressCircle_1sri8 {
157
+ .circular-progress-bar__progressCircle_1l6t3 {
151
158
  stroke-linecap: round;
152
159
  }
153
- .circular-progress-bar__iconWrapper_1sri8 {
160
+ .circular-progress-bar__iconWrapper_1l6t3 {
154
161
  display: flex;
155
162
  align-items: center;
156
163
  justify-content: center;
157
164
  }
158
- .circular-progress-bar__iconWrapper_1sri8.circular-progress-bar__size-144_1sri8 {
165
+ .circular-progress-bar__iconWrapper_1l6t3.circular-progress-bar__size-144_1l6t3 {
159
166
  max-width: 64px;
160
167
  max-height: 64px;
161
168
  }
162
- .circular-progress-bar__iconWrapper_1sri8.circular-progress-bar__size-128_1sri8 {
169
+ .circular-progress-bar__iconWrapper_1l6t3.circular-progress-bar__size-128_1l6t3 {
163
170
  max-width: 64px;
164
171
  max-height: 64px;
165
172
  }
166
- .circular-progress-bar__iconWrapper_1sri8.circular-progress-bar__size-96_1sri8 {
173
+ .circular-progress-bar__iconWrapper_1l6t3.circular-progress-bar__size-96_1l6t3 {
167
174
  max-width: 48px;
168
175
  max-height: 48px;
169
176
  }
170
- .circular-progress-bar__iconWrapper_1sri8.circular-progress-bar__size-80_1sri8 {
177
+ .circular-progress-bar__iconWrapper_1l6t3.circular-progress-bar__size-80_1l6t3 {
171
178
  max-width: 48px;
172
179
  max-height: 48px;
173
180
  }
174
- .circular-progress-bar__iconWrapper_1sri8.circular-progress-bar__size-64_1sri8 {
181
+ .circular-progress-bar__iconWrapper_1l6t3.circular-progress-bar__size-64_1l6t3 {
175
182
  max-width: 36px;
176
183
  max-height: 36px;
177
184
  }
178
- .circular-progress-bar__iconWrapper_1sri8.circular-progress-bar__size-48_1sri8 {
185
+ .circular-progress-bar__iconWrapper_1l6t3.circular-progress-bar__size-48_1l6t3 {
179
186
  max-width: 24px;
180
187
  max-height: 24px;
181
188
  }
182
- .circular-progress-bar__iconWrapper_1sri8.circular-progress-bar__size-24_1sri8 {
189
+ .circular-progress-bar__iconWrapper_1l6t3.circular-progress-bar__size-24_1l6t3 {
183
190
  max-width: 16px;
184
191
  max-height: 16px;
185
192
  }
186
- .circular-progress-bar__iconWrapper_1sri8.circular-progress-bar__icon-tertiary_1sri8 {
193
+ .circular-progress-bar__iconWrapper_1l6t3.circular-progress-bar__icon-tertiary_1l6t3 {
187
194
  color: var(--color-light-neutral-500);
188
195
  }
189
- .circular-progress-bar__iconWrapper_1sri8.circular-progress-bar__icon-positive_1sri8 {
196
+ .circular-progress-bar__iconWrapper_1l6t3.circular-progress-bar__icon-positive_1l6t3 {
190
197
  color: var(--color-light-status-positive);
191
198
  }
192
- .circular-progress-bar__iconWrapper_1sri8.circular-progress-bar__icon-negative_1sri8 {
199
+ .circular-progress-bar__iconWrapper_1l6t3.circular-progress-bar__icon-negative_1l6t3 {
193
200
  color: var(--color-light-status-negative);
194
201
  }
195
- .circular-progress-bar__iconWrapper_1sri8.circular-progress-bar__icon-primary-inverted_1sri8 {
202
+ .circular-progress-bar__iconWrapper_1l6t3.circular-progress-bar__icon-primary-inverted_1l6t3 {
196
203
  color: var(--color-light-neutral-translucent-1300-inverted);
197
204
  }
198
- .circular-progress-bar__iconWrapper_1sri8.circular-progress-bar__icon-primary_1sri8 {
205
+ .circular-progress-bar__iconWrapper_1l6t3.circular-progress-bar__icon-primary_1l6t3 {
199
206
  color: var(--color-light-neutral-translucent-1300);
200
207
  }
201
- .circular-progress-bar__iconWrapper_1sri8.circular-progress-bar__icon-secondary_1sri8 {
208
+ .circular-progress-bar__iconWrapper_1l6t3.circular-progress-bar__icon-secondary_1l6t3 {
202
209
  color: var(--color-light-neutral-700);
203
210
  }
204
- .circular-progress-bar__icon_1sri8 {
211
+ .circular-progress-bar__icon_1l6t3 {
205
212
  width: 100%;
206
213
  height: 100%;
207
214
  }
@@ -1,6 +1,6 @@
1
1
  import './index.css';
2
2
 
3
- const styles = {"component":"circular-progress-bar__component_1sri8","bg-positive":"circular-progress-bar__bg-positive_1sri8","bg-negative":"circular-progress-bar__bg-negative_1sri8","svg":"circular-progress-bar__svg_1sri8","title":"circular-progress-bar__title_1sri8","subtitle":"circular-progress-bar__subtitle_1sri8","labelWrapper":"circular-progress-bar__labelWrapper_1sri8","label":"circular-progress-bar__label_1sri8","size-144":"circular-progress-bar__size-144_1sri8","size-128":"circular-progress-bar__size-128_1sri8","size-96":"circular-progress-bar__size-96_1sri8","size-80":"circular-progress-bar__size-80_1sri8","size-64":"circular-progress-bar__size-64_1sri8","size-48":"circular-progress-bar__size-48_1sri8","size-24":"circular-progress-bar__size-24_1sri8","backgroundCircle":"circular-progress-bar__backgroundCircle_1sri8","progressCircle":"circular-progress-bar__progressCircle_1sri8","positive":"circular-progress-bar__positive_1sri8","negative":"circular-progress-bar__negative_1sri8","stroke":"circular-progress-bar__stroke_1sri8","iconWrapper":"circular-progress-bar__iconWrapper_1sri8","icon-tertiary":"circular-progress-bar__icon-tertiary_1sri8","icon-positive":"circular-progress-bar__icon-positive_1sri8","icon-negative":"circular-progress-bar__icon-negative_1sri8","icon-primary-inverted":"circular-progress-bar__icon-primary-inverted_1sri8","icon-primary":"circular-progress-bar__icon-primary_1sri8","icon-secondary":"circular-progress-bar__icon-secondary_1sri8","icon":"circular-progress-bar__icon_1sri8"};
3
+ const styles = {"component":"circular-progress-bar__component_1l6t3","bg-positive":"circular-progress-bar__bg-positive_1l6t3","bg-negative":"circular-progress-bar__bg-negative_1l6t3","svg":"circular-progress-bar__svg_1l6t3","title":"circular-progress-bar__title_1l6t3","subtitle":"circular-progress-bar__subtitle_1l6t3","labelWrapper":"circular-progress-bar__labelWrapper_1l6t3","label":"circular-progress-bar__label_1l6t3","size-144":"circular-progress-bar__size-144_1l6t3","size-128":"circular-progress-bar__size-128_1l6t3","size-96":"circular-progress-bar__size-96_1l6t3","size-80":"circular-progress-bar__size-80_1l6t3","size-64":"circular-progress-bar__size-64_1l6t3","size-48":"circular-progress-bar__size-48_1l6t3","size-24":"circular-progress-bar__size-24_1l6t3","size-16":"circular-progress-bar__size-16_1l6t3","backgroundCircle":"circular-progress-bar__backgroundCircle_1l6t3","progressCircle":"circular-progress-bar__progressCircle_1l6t3","positive":"circular-progress-bar__positive_1l6t3","negative":"circular-progress-bar__negative_1l6t3","stroke":"circular-progress-bar__stroke_1l6t3","iconWrapper":"circular-progress-bar__iconWrapper_1l6t3","icon-tertiary":"circular-progress-bar__icon-tertiary_1l6t3","icon-positive":"circular-progress-bar__icon-positive_1l6t3","icon-negative":"circular-progress-bar__icon-negative_1l6t3","icon-primary-inverted":"circular-progress-bar__icon-primary-inverted_1l6t3","icon-primary":"circular-progress-bar__icon-primary_1l6t3","icon-secondary":"circular-progress-bar__icon-secondary_1l6t3","icon":"circular-progress-bar__icon_1l6t3"};
4
4
 
5
5
  export { styles as default };
6
6
  //# sourceMappingURL=index.module.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.module.css.js","sources":["src/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/index.css';\n\n:root {\n /* stroke */\n --circular-progress-bar-stroke-color: var(--color-light-neutral-translucent-300);\n\n /* positive */\n --circular-progress-bar-positive-color: var(--color-light-status-positive);\n\n /* negative */\n --circular-progress-bar-negative-color: var(--color-light-status-negative);\n}\n\n.component {\n position: relative;\n display: flex;\n justify-content: center;\n align-items: center;\n border-radius: var(--border-radius-pill);\n\n &.bg-positive {\n background: var(--circular-progress-bar-positive-color);\n }\n\n &.bg-negative {\n background: var(--circular-progress-bar-negative-color);\n }\n}\n\n.svg {\n display: block;\n width: 100%;\n}\n\n.title,\n.subtitle {\n overflow: hidden;\n word-break: break-word;\n white-space: nowrap;\n text-overflow: ellipsis;\n margin: var(--gap-0) var(--gap-6);\n}\n\n.subtitle {\n max-height: 40px;\n}\n\n.labelWrapper {\n text-align: center;\n position: absolute;\n top: 50%;\n left: 50%;\n width: 100%;\n transform: translate(-50%, -50%);\n\n &.label {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n}\n\n.size-144 {\n width: 144px;\n height: 144px;\n\n & .labelWrapper {\n max-width: 128px;\n }\n\n & .title {\n max-height: 32px;\n }\n}\n\n.size-128 {\n width: 128px;\n height: 128px;\n\n & .labelWrapper {\n max-width: 108px;\n }\n\n & .title {\n max-height: 32px;\n }\n}\n\n.size-96 {\n width: 96px;\n height: 96px;\n\n & .labelWrapper {\n max-width: 64px;\n }\n\n & .title {\n max-height: 20px;\n }\n}\n\n.size-80 {\n width: 80px;\n height: 80px;\n\n & .labelWrapper {\n max-width: 64px;\n }\n\n & .title {\n max-height: 24px;\n }\n}\n\n.size-64 {\n width: 64px;\n height: 64px;\n\n & .labelWrapper {\n max-width: 48px;\n }\n\n & .title {\n max-height: 16px;\n margin: var(--gap-0);\n }\n}\n\n.size-48 {\n width: 48px;\n height: 48px;\n\n & .labelWrapper {\n max-width: 40px;\n }\n\n & .title {\n max-height: 16px;\n margin: var(--gap-0);\n }\n}\n\n.size-24 {\n width: 24px;\n height: 24px;\n\n & .labelWrapper {\n max-width: 24px;\n }\n}\n\n.backgroundCircle,\n.progressCircle {\n width: 100%;\n height: 100%;\n fill: transparent;\n}\n\n.positive {\n stroke: var(--circular-progress-bar-positive-color);\n}\n\n.negative {\n stroke: var(--circular-progress-bar-negative-color);\n}\n\n.backgroundCircle {\n stroke: var(--circular-progress-bar-stroke-color);\n\n &.stroke {\n stroke: transparent;\n }\n}\n\n.progressCircle {\n stroke-linecap: round;\n}\n\n.iconWrapper {\n display: flex;\n align-items: center;\n justify-content: center;\n\n &.size-144 {\n max-width: 64px;\n max-height: 64px;\n }\n\n &.size-128 {\n max-width: 64px;\n max-height: 64px;\n }\n\n &.size-96 {\n max-width: 48px;\n max-height: 48px;\n }\n\n &.size-80 {\n max-width: 48px;\n max-height: 48px;\n }\n\n &.size-64 {\n max-width: 36px;\n max-height: 36px;\n }\n\n &.size-48 {\n max-width: 24px;\n max-height: 24px;\n }\n\n &.size-24 {\n max-width: 16px;\n max-height: 16px;\n }\n\n &.icon-tertiary {\n color: var(--color-light-neutral-500);\n }\n\n &.icon-positive {\n color: var(--color-light-status-positive);\n }\n\n &.icon-negative {\n color: var(--color-light-status-negative);\n }\n\n &.icon-primary-inverted {\n color: var(--color-light-neutral-translucent-1300-inverted);\n }\n\n &.icon-primary {\n color: var(--color-light-neutral-translucent-1300);\n }\n\n &.icon-secondary {\n color: var(--color-light-neutral-700);\n }\n}\n\n.icon {\n width: 100%;\n height: 100%;\n}\n"],"names":[],"mappings":";;AAEgB,eAAe,CAAC,WAAW,CAAC,wCAAwC,CAAC,aAAa,CAAC,0CAA0C,CAAC,aAAa,CAAC,0CAA0C,CAAC,KAAK,CAAC,kCAAkC,CAAC,OAAO,CAAC,oCAAoC,CAAC,UAAU,CAAC,uCAAuC,CAAC,cAAc,CAAC,2CAA2C,CAAC,OAAO,CAAC,oCAAoC,CAAC,UAAU,CAAC,uCAAuC,CAAC,UAAU,CAAC,uCAAuC,CAAC,SAAS,CAAC,sCAAsC,CAAC,SAAS,CAAC,sCAAsC,CAAC,SAAS,CAAC,sCAAsC,CAAC,SAAS,CAAC,sCAAsC,CAAC,SAAS,CAAC,sCAAsC,CAAC,kBAAkB,CAAC,+CAA+C,CAAC,gBAAgB,CAAC,6CAA6C,CAAC,UAAU,CAAC,uCAAuC,CAAC,UAAU,CAAC,uCAAuC,CAAC,QAAQ,CAAC,qCAAqC,CAAC,aAAa,CAAC,0CAA0C,CAAC,eAAe,CAAC,4CAA4C,CAAC,eAAe,CAAC,4CAA4C,CAAC,eAAe,CAAC,4CAA4C,CAAC,uBAAuB,CAAC,oDAAoD,CAAC,cAAc,CAAC,2CAA2C,CAAC,gBAAgB,CAAC,6CAA6C,CAAC,MAAM,CAAC,mCAAmC,CAAC;;;;"}
1
+ {"version":3,"file":"index.module.css.js","sources":["src/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/index.css';\n\n:root {\n /* stroke */\n --circular-progress-bar-stroke-color: var(--color-light-neutral-translucent-300);\n\n /* positive */\n --circular-progress-bar-positive-color: var(--color-light-status-positive);\n\n /* negative */\n --circular-progress-bar-negative-color: var(--color-light-status-negative);\n}\n\n.component {\n position: relative;\n display: flex;\n justify-content: center;\n align-items: center;\n border-radius: var(--border-radius-pill);\n\n &.bg-positive {\n background: var(--circular-progress-bar-positive-color);\n }\n\n &.bg-negative {\n background: var(--circular-progress-bar-negative-color);\n }\n}\n\n.svg {\n display: block;\n width: 100%;\n}\n\n.title,\n.subtitle {\n overflow: hidden;\n word-break: break-word;\n white-space: nowrap;\n text-overflow: ellipsis;\n margin: var(--gap-0) var(--gap-6);\n}\n\n.subtitle {\n max-height: 40px;\n}\n\n.labelWrapper {\n text-align: center;\n position: absolute;\n top: 50%;\n left: 50%;\n width: 100%;\n transform: translate(-50%, -50%);\n\n &.label {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n}\n\n.size-144 {\n width: 144px;\n height: 144px;\n\n & .labelWrapper {\n max-width: 128px;\n }\n\n & .title {\n max-height: 32px;\n }\n}\n\n.size-128 {\n width: 128px;\n height: 128px;\n\n & .labelWrapper {\n max-width: 108px;\n }\n\n & .title {\n max-height: 32px;\n }\n}\n\n.size-96 {\n width: 96px;\n height: 96px;\n\n & .labelWrapper {\n max-width: 64px;\n }\n\n & .title {\n max-height: 20px;\n }\n}\n\n.size-80 {\n width: 80px;\n height: 80px;\n\n & .labelWrapper {\n max-width: 64px;\n }\n\n & .title {\n max-height: 24px;\n }\n}\n\n.size-64 {\n width: 64px;\n height: 64px;\n\n & .labelWrapper {\n max-width: 48px;\n }\n\n & .title {\n max-height: 16px;\n margin: var(--gap-0);\n }\n}\n\n.size-48 {\n width: 48px;\n height: 48px;\n\n & .labelWrapper {\n max-width: 40px;\n }\n\n & .title {\n max-height: 16px;\n margin: var(--gap-0);\n }\n}\n\n.size-24 {\n width: 24px;\n height: 24px;\n\n & .labelWrapper {\n max-width: 24px;\n }\n}\n\n.size-16 {\n width: 16px;\n height: 16px;\n\n & .labelWrapper {\n max-width: 16px;\n }\n}\n\n.backgroundCircle,\n.progressCircle {\n width: 100%;\n height: 100%;\n fill: transparent;\n}\n\n.positive {\n stroke: var(--circular-progress-bar-positive-color);\n}\n\n.negative {\n stroke: var(--circular-progress-bar-negative-color);\n}\n\n.backgroundCircle {\n stroke: var(--circular-progress-bar-stroke-color);\n\n &.stroke {\n stroke: transparent;\n }\n}\n\n.progressCircle {\n stroke-linecap: round;\n}\n\n.iconWrapper {\n display: flex;\n align-items: center;\n justify-content: center;\n\n &.size-144 {\n max-width: 64px;\n max-height: 64px;\n }\n\n &.size-128 {\n max-width: 64px;\n max-height: 64px;\n }\n\n &.size-96 {\n max-width: 48px;\n max-height: 48px;\n }\n\n &.size-80 {\n max-width: 48px;\n max-height: 48px;\n }\n\n &.size-64 {\n max-width: 36px;\n max-height: 36px;\n }\n\n &.size-48 {\n max-width: 24px;\n max-height: 24px;\n }\n\n &.size-24 {\n max-width: 16px;\n max-height: 16px;\n }\n\n &.icon-tertiary {\n color: var(--color-light-neutral-500);\n }\n\n &.icon-positive {\n color: var(--color-light-status-positive);\n }\n\n &.icon-negative {\n color: var(--color-light-status-negative);\n }\n\n &.icon-primary-inverted {\n color: var(--color-light-neutral-translucent-1300-inverted);\n }\n\n &.icon-primary {\n color: var(--color-light-neutral-translucent-1300);\n }\n\n &.icon-secondary {\n color: var(--color-light-neutral-700);\n }\n}\n\n.icon {\n width: 100%;\n height: 100%;\n}\n"],"names":[],"mappings":";;AAEgB,eAAe,CAAC,WAAW,CAAC,wCAAwC,CAAC,aAAa,CAAC,0CAA0C,CAAC,aAAa,CAAC,0CAA0C,CAAC,KAAK,CAAC,kCAAkC,CAAC,OAAO,CAAC,oCAAoC,CAAC,UAAU,CAAC,uCAAuC,CAAC,cAAc,CAAC,2CAA2C,CAAC,OAAO,CAAC,oCAAoC,CAAC,UAAU,CAAC,uCAAuC,CAAC,UAAU,CAAC,uCAAuC,CAAC,SAAS,CAAC,sCAAsC,CAAC,SAAS,CAAC,sCAAsC,CAAC,SAAS,CAAC,sCAAsC,CAAC,SAAS,CAAC,sCAAsC,CAAC,SAAS,CAAC,sCAAsC,CAAC,SAAS,CAAC,sCAAsC,CAAC,kBAAkB,CAAC,+CAA+C,CAAC,gBAAgB,CAAC,6CAA6C,CAAC,UAAU,CAAC,uCAAuC,CAAC,UAAU,CAAC,uCAAuC,CAAC,QAAQ,CAAC,qCAAqC,CAAC,aAAa,CAAC,0CAA0C,CAAC,eAAe,CAAC,4CAA4C,CAAC,eAAe,CAAC,4CAA4C,CAAC,eAAe,CAAC,4CAA4C,CAAC,uBAAuB,CAAC,oDAAoD,CAAC,cAAc,CAAC,2CAA2C,CAAC,gBAAgB,CAAC,6CAA6C,CAAC,MAAM,CAAC,mCAAmC,CAAC;;;;"}
@@ -1 +1 @@
1
- export type ComponentSize = 24 | 48 | 64 | 80 | 128 | 144;
1
+ export type ComponentSize = 16 | 24 | 48 | 64 | 80 | 128 | 144;
@@ -63,7 +63,7 @@ export type CircularProgressBarProps = {
63
63
  */
64
64
  view?: 'positive' | 'negative';
65
65
  /**
66
- * Размер (144 — 144×144px, 128 — 128×128px, 80 — 80×80px, 64 — 64×64px, 48 — 48×48px, 24 — 24×24px)
66
+ * Размер (144 — 144×144px, 128 — 128×128px, 80 — 80×80px, 64 — 64×64px, 48 — 48×48px, 24 — 24×24px, 16 — 16×16px)
67
67
  * @default 64
68
68
  */
69
69
  size?: ComponentSize;
@@ -100,14 +100,15 @@ export type CircularProgressBarProps = {
100
100
  */
101
101
  direction?: 'clockwise' | 'counter-clockwise';
102
102
  /**
103
- * Высота компонента, min = 24; max = 144
104
- * использовать совместно с size :
103
+ * Высота компонента, min = 16; max = 144
104
+ * использовать совместно с size:
105
105
  * 144 от 144
106
106
  * 128 от 128 до 143
107
107
  * 80 от 80 до 127
108
108
  * 64 от 64 до 79
109
109
  * 48 от 48 до 63
110
110
  * 24 от 24 до 47
111
+ * 16 от 16 до 23
111
112
  */
112
113
  height?: number;
113
114
  /**