skillgrid 0.0.45-dev-34237-snackbar.1313454 → 0.0.46-dev-45386-progress-bar.1324867

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 (23) hide show
  1. package/dist/components/Progress/Progress.d.ts +25 -0
  2. package/dist/components/Progress/Progress.type.d.ts +80 -0
  3. package/dist/components/Progress/index.d.ts +2 -0
  4. package/dist/components/Progress/lib/clamp-to-range.d.ts +5 -0
  5. package/dist/components/Progress/lib/clamp-to-range.test.d.ts +1 -0
  6. package/dist/components/Progress/lib/get-circle-indicator-typography-key.d.ts +6 -0
  7. package/dist/components/Progress/lib/get-circle-indicator-typography-key.test.d.ts +1 -0
  8. package/dist/components/Progress/lib/get-closest-circle-size.d.ts +6 -0
  9. package/dist/components/Progress/lib/get-closest-circle-size.test.d.ts +1 -0
  10. package/dist/components/Progress/lib/get-default-circle-stroke-width.d.ts +5 -0
  11. package/dist/components/Progress/lib/get-default-circle-stroke-width.test.d.ts +1 -0
  12. package/dist/components/Progress/lib/get-indicator-label.d.ts +9 -0
  13. package/dist/components/Progress/lib/get-indicator-label.test.d.ts +1 -0
  14. package/dist/components/Progress/lib/index.d.ts +8 -0
  15. package/dist/components/Progress/lib/resolve-active-progress-style-class.d.ts +14 -0
  16. package/dist/components/Progress/lib/resolve-active-progress-style-class.test.d.ts +1 -0
  17. package/dist/components/Progress/lib/resolve-circle-indicator-class-name.d.ts +5 -0
  18. package/dist/components/Progress/lib/resolve-circle-indicator-class-name.test.d.ts +1 -0
  19. package/dist/index.cjs.js +11 -11
  20. package/dist/index.css +1 -1
  21. package/dist/index.d.ts +1 -0
  22. package/dist/index.es.js +3227 -2953
  23. package/package.json +1 -1
@@ -0,0 +1,25 @@
1
+ import { default as React } from 'react';
2
+ import { ProgressBarProps } from './Progress.type';
3
+ export declare const Progress: React.ForwardRefExoticComponent<ProgressBarProps & React.RefAttributes<HTMLDivElement>> & {
4
+ Bar: React.ForwardRefExoticComponent<ProgressBarProps & React.RefAttributes<HTMLDivElement>>;
5
+ Circle: React.ForwardRefExoticComponent<{
6
+ value: number;
7
+ max?: number;
8
+ size?: number;
9
+ strokeWidth?: number;
10
+ } & {
11
+ className?: string;
12
+ classNames?: {
13
+ indicator?: string;
14
+ };
15
+ style?: React.CSSProperties;
16
+ progressStyle?: import('./Progress.type').ProgressStyleValue;
17
+ finishColor?: import('./Progress.type').FinishColor;
18
+ trackColor?: string;
19
+ indicatorLabel?: React.ReactNode;
20
+ formatValue?: (value: number, max: number) => React.ReactNode;
21
+ 'data-testid'?: string;
22
+ 'aria-label'?: string;
23
+ 'aria-labelledby'?: string;
24
+ } & React.RefAttributes<HTMLDivElement>>;
25
+ };
@@ -0,0 +1,80 @@
1
+ import { default as React } from 'react';
2
+ /** Стили прогресс-бара */
3
+ export type ProgressStyle = 'accent' | 'blue' | 'positive' | 'special' | 'warning' | 'negative';
4
+ type CustomColor = string & {
5
+ __customColor?: never;
6
+ };
7
+ /** Стиль прогресс-бара. Может быть одним из предопределенных стилей или кастомным цветом. */
8
+ export type ProgressStyleValue = ProgressStyle | CustomColor;
9
+ /** Цвет для завершенного состояния прогресс-бара. Может быть одним из предопределенных стилей или кастомным цветом. */
10
+ export type FinishColor = ProgressStyle | CustomColor;
11
+ export declare const isProgressStyle: (value: unknown) => value is ProgressStyle;
12
+ /** Общие свойства для всех типов прогресс-баров */
13
+ type CommonProgressProps = {
14
+ /** Дополнительные CSS классы */
15
+ className?: string;
16
+ /** CSS классы для отдельных частей прогресс-бара */
17
+ classNames?: {
18
+ /** CSS класс для индикатора значения */
19
+ indicator?: string;
20
+ };
21
+ /** Inline-стили */
22
+ style?: React.CSSProperties;
23
+ /** Стиль прогресс-бара. Может быть одним из предопределенных стилей или кастомным цветом. */
24
+ progressStyle?: ProgressStyleValue;
25
+ /** Цвет для завершенного состояния (применяется когда прогресс достиг максимума). Может быть одним из предопределенных стилей или кастомным цветом. */
26
+ finishColor?: FinishColor;
27
+ /** Кастомный цвет трека (фона) прогресс-бара */
28
+ trackColor?: string;
29
+ /** Кастомный текст индикатора значения. Если передан, индикатор показывается автоматически. */
30
+ indicatorLabel?: React.ReactNode;
31
+ /** Функция для форматирования значения индикатора */
32
+ formatValue?: (value: number, max: number) => React.ReactNode;
33
+ /** Идентификатор для тестирования */
34
+ 'data-testid'?: string;
35
+ /** ARIA метка для доступности */
36
+ 'aria-label'?: string;
37
+ /** ARIA ID элемента, который описывает прогресс-бар */
38
+ 'aria-labelledby'?: string;
39
+ };
40
+ /** Пропсы для линейного (несегментированного) прогресс-бара */
41
+ export type ProgressBarLinearProps = {
42
+ /** Режим сегментирования (false для линейного режима) */
43
+ segmented?: false;
44
+ /** Текущее значение прогресса */
45
+ value: number;
46
+ /** Максимальное значение прогресса */
47
+ max?: number;
48
+ } & CommonProgressProps;
49
+ /** Пропсы для сегментированного прогресс-бара */
50
+ export type ProgressBarSegmentedProps = {
51
+ /** Режим сегментирования (true для сегментированного режима) */
52
+ segmented: true;
53
+ /** Текущее значение прогресса (количество заполненных сегментов) */
54
+ value: number;
55
+ /** Общее количество сегментов */
56
+ segments?: number;
57
+ } & CommonProgressProps;
58
+ /** Пропсы для прогресс-бара. Может быть либо линейным, либо сегментированным. */
59
+ export type ProgressBarProps = ProgressBarLinearProps | ProgressBarSegmentedProps;
60
+ /**
61
+ * Проверяет, является ли переданный объект пропсов сегментированным прогресс-баром
62
+ * @param props - Пропсы прогресс-бара
63
+ * @returns true, если прогресс-бар сегментированный
64
+ */
65
+ export declare const isSegmentedProps: (props: ProgressBarProps) => props is ProgressBarSegmentedProps;
66
+ export type ProgressCircleSize = 24 | 32 | 36 | 40 | 48 | 56 | 64 | 84 | 96 | 120;
67
+ export type ProgressCircleProps = {
68
+ /** Текущее значение прогресса */
69
+ value: number;
70
+ /** Максимальное значение прогресса */
71
+ max?: number;
72
+ /** Размер компонента в px */
73
+ size?: number;
74
+ /**
75
+ * Толщина обводки в px.
76
+ * Если не задано, берётся значение по умолчанию для ближайшего размера из гайдлайна.
77
+ */
78
+ strokeWidth?: number;
79
+ } & CommonProgressProps;
80
+ export {};
@@ -0,0 +1,2 @@
1
+ export { Progress } from './Progress';
2
+ export type { ProgressBarProps, ProgressBarLinearProps, ProgressBarSegmentedProps, ProgressCircleProps, ProgressCircleSize, ProgressStyle, ProgressStyleValue, FinishColor, } from './Progress.type';
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Ограничивает число диапазоном [min, max].
3
+ * Например: clampToRange(150, 0, 100) => 100
4
+ */
5
+ export declare const clampToRange: (value: number, min: number, max: number) => number;
@@ -0,0 +1,6 @@
1
+ export type CircleIndicatorTypographyKey = 'circleIndicator32' | 'circleIndicator36' | 'circleIndicator40' | 'typography-label-1-regular' | 'typography-label-2-regular' | 'typography-label-3-regular' | 'typography-label-5-regular';
2
+ /**
3
+ * Возвращает ключ типографики для центрального индикатора.
4
+ * Часть размеров использует токены типографики, а для 32/36/40 — кастом (по гайду).
5
+ */
6
+ export declare const getCircleIndicatorTypographyKey: (size: number) => CircleIndicatorTypographyKey;
@@ -0,0 +1,6 @@
1
+ import { ProgressCircleSize } from '../Progress.type';
2
+ /**
3
+ * Возвращает ближайший размер из гайда (используется для дефолтов, когда size кастомный).
4
+ * При равной дистанции выбирается меньший размер (потому что массив отсортирован по возрастанию).
5
+ */
6
+ export declare const getClosestCircleSize: (size: number) => ProgressCircleSize;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Толщины обводки.
3
+ * Если size кастомный — используем ближайший пресетный размер.
4
+ */
5
+ export declare const getDefaultCircleStrokeWidth: (size: number) => number;
@@ -0,0 +1,9 @@
1
+ import { default as React } from 'react';
2
+ type Params = {
3
+ indicatorLabel?: React.ReactNode;
4
+ formatValue?: (value: number, max: number) => React.ReactNode;
5
+ clampedValue: number;
6
+ total: number;
7
+ };
8
+ export declare const getIndicatorLabel: ({ indicatorLabel, formatValue, clampedValue, total, }: Params) => React.ReactNode;
9
+ export {};
@@ -0,0 +1,8 @@
1
+ export { clampToRange } from './clamp-to-range';
2
+ export { getIndicatorLabel } from './get-indicator-label';
3
+ export { getClosestCircleSize } from './get-closest-circle-size';
4
+ export { getDefaultCircleStrokeWidth } from './get-default-circle-stroke-width';
5
+ export { getCircleIndicatorTypographyKey } from './get-circle-indicator-typography-key';
6
+ export type { CircleIndicatorTypographyKey } from './get-circle-indicator-typography-key';
7
+ export { resolveActiveProgressStyleClass } from './resolve-active-progress-style-class';
8
+ export { resolveCircleIndicatorClassName } from './resolve-circle-indicator-class-name';
@@ -0,0 +1,14 @@
1
+ import { ProgressStyle } from '../Progress.type';
2
+ type Params = {
3
+ progressStyle?: unknown;
4
+ finishColor?: unknown;
5
+ isFinished: boolean;
6
+ };
7
+ /**
8
+ * Возвращает активный класс стиля прогресса:
9
+ * - при завершении (isFinished) и если finishColor — стандартный стиль, берём finishColor
10
+ * - иначе, если progressStyle — стандартный стиль, берём progressStyle
11
+ * - иначе 'accent'
12
+ */
13
+ export declare const resolveActiveProgressStyleClass: ({ progressStyle, finishColor, isFinished, }: Params) => ProgressStyle;
14
+ export {};
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Разрешает имя класса для индикатора кругового прогресса.
3
+ * Если key начинается с 'typography-', ищет в typographyCss, иначе в progressCss.
4
+ */
5
+ export declare const resolveCircleIndicatorClassName: (key: string | undefined, typographyCss: Record<string, string>, progressCss: Record<string, string>) => string | undefined;