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

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 +3 -3
  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
@@ -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":"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"}
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;
@@ -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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"}
@@ -144,6 +144,15 @@
144
144
  max-width: 24px;
145
145
  }
146
146
 
147
+ .size-16 {
148
+ width: 16px;
149
+ height: 16px;
150
+ }
151
+
152
+ .size-16 .labelWrapper {
153
+ max-width: 16px;
154
+ }
155
+
147
156
  .backgroundCircle,
148
157
  .progressCircle {
149
158
  width: 100%;
@@ -1 +1 @@
1
- export type ComponentSize = 24 | 48 | 64 | 80 | 128 | 144;
1
+ export type ComponentSize = 16 | 24 | 48 | 64 | 80 | 128 | 144;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alfalab/core-components-circular-progress-bar",
3
- "version": "5.0.6",
3
+ "version": "5.0.7",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "license": "MIT",
@@ -13,8 +13,8 @@
13
13
  "build": "rollup -c ../../tools/rollup/rollup.config.mjs --silent"
14
14
  },
15
15
  "dependencies": {
16
- "@alfalab/core-components-shared": "^2.2.0",
17
- "@alfalab/core-components-typography": "^6.0.6",
16
+ "@alfalab/core-components-shared": "^2.2.1",
17
+ "@alfalab/core-components-typography": "^6.0.7",
18
18
  "classnames": "^2.5.1",
19
19
  "tslib": "^2.4.0"
20
20
  },
package/src/Component.tsx CHANGED
@@ -97,7 +97,7 @@ export type CircularProgressBarProps = {
97
97
  view?: 'positive' | 'negative';
98
98
 
99
99
  /**
100
- * Размер (144 — 144×144px, 128 — 128×128px, 80 — 80×80px, 64 — 64×64px, 48 — 48×48px, 24 — 24×24px)
100
+ * Размер (144 — 144×144px, 128 — 128×128px, 80 — 80×80px, 64 — 64×64px, 48 — 48×48px, 24 — 24×24px, 16 — 16×16px)
101
101
  * @default 64
102
102
  */
103
103
  size?: ComponentSize;
@@ -138,14 +138,15 @@ export type CircularProgressBarProps = {
138
138
  direction?: 'clockwise' | 'counter-clockwise';
139
139
 
140
140
  /**
141
- * Высота компонента, min = 24; max = 144
142
- * использовать совместно с size :
141
+ * Высота компонента, min = 16; max = 144
142
+ * использовать совместно с size:
143
143
  * 144 от 144
144
144
  * 128 от 128 до 143
145
145
  * 80 от 80 до 127
146
146
  * 64 от 64 до 79
147
147
  * 48 от 48 до 63
148
148
  * 24 от 24 до 47
149
+ * 16 от 16 до 23
149
150
  */
150
151
  height?: number;
151
152
 
package/src/consts.ts CHANGED
@@ -5,6 +5,7 @@ export 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,
@@ -21,6 +22,7 @@ export const STROKE = {
21
22
  l: 8,
22
23
  xl: 10,
23
24
  xxl: 12,
25
+ 16: 2,
24
26
  24: 4,
25
27
  48: 4,
26
28
  64: 6,
@@ -37,6 +39,7 @@ export const VIEW_TITLE = {
37
39
  l: 'xsmall',
38
40
  xl: 'medium',
39
41
  xxl: 'medium',
42
+ 16: 'small',
40
43
  24: 'small',
41
44
  48: 'small',
42
45
  64: 'small',
@@ -53,6 +56,7 @@ export const VIEW_TEXT = {
53
56
  l: 'secondary-large',
54
57
  xl: 'secondary-large',
55
58
  xxl: 'secondary-large',
59
+ 16: 'secondary-small',
56
60
  24: 'secondary-small',
57
61
  48: 'secondary-small',
58
62
  64: 'secondary-large',
@@ -71,6 +75,7 @@ export const SIZE_TO_CLASSNAME_MAP = {
71
75
  l: 'size-80',
72
76
  xl: 'size-128',
73
77
  xxl: 'size-144',
78
+ 16: 'size-16',
74
79
  24: 'size-24',
75
80
  48: 'size-48',
76
81
  64: 'size-64',
@@ -149,6 +149,15 @@
149
149
  }
150
150
  }
151
151
 
152
+ .size-16 {
153
+ width: 16px;
154
+ height: 16px;
155
+
156
+ & .labelWrapper {
157
+ max-width: 16px;
158
+ }
159
+ }
160
+
152
161
  .backgroundCircle,
153
162
  .progressCircle {
154
163
  width: 100%;
@@ -1 +1 @@
1
- export type ComponentSize = 24 | 48 | 64 | 80 | 128 | 144;
1
+ export type ComponentSize = 16 | 24 | 48 | 64 | 80 | 128 | 144;
@@ -1 +1 @@
1
- export type ComponentSize = 24 | 48 | 64 | 80 | 128 | 144;
1
+ export type ComponentSize = 16 | 24 | 48 | 64 | 80 | 128 | 144;