@cloud-ru/ds-ai-code-diff 0.0.1-preview-cbb08c35.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,3 +2,10 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
+
6
+ # 1.1.0 (2026-11-02)
7
+
8
+ ### Features
9
+
10
+ - **AIX-487:** ai-code-diff component ([6ae7bb7](https://github.com/cloud-ru-tech/snack-v2/commit/6ae7bb74a9c2b4166b2d96c444d9d065749fb360))
11
+ - **AIX-487:** ai-history-line component ([8f9d550](https://github.com/cloud-ru-tech/snack-v2/commit/8f9d550beb53b91d945816e48b6a280c3ad677b8))
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  `@cloud-ru/ds-ai-code-diff` — Количество добавленных и удаленных строк кода
4
4
 
5
- `AiCodeDiff` показывает сводку изменений: число добавленных и удалённых строк. Компонент не считает diff и не открывает просмотр кода — строки передаёт потребитель.
5
+ `AiCodeDiff` показывает сводку изменений: число добавленных и удалённых строк. Компонент не считает diff и не открывает просмотр кода — целые количества передаёт потребитель, знаки `+` и `-` ставит компонент.
6
6
 
7
7
  ## Когда использовать
8
8
 
@@ -13,8 +13,8 @@
13
13
 
14
14
  - Нужно показать сами строки кода:
15
15
  - соберите просмотр отдельно, `AiCodeDiff` остаётся подписью.
16
- - Нужно сократить большие числа или дописать знаки `+` / `-`:
17
- - отформатируйте строку до передачи в `added` и `removed`.
16
+ - Нужно сократить большие числа (`1.2k`) или показать дробное значение:
17
+ - `added` и `removed` — целые неотрицательные числа, компонент показывает их как есть.
18
18
 
19
19
  ## Анатомия
20
20
 
@@ -34,7 +34,7 @@ pnpm add @cloud-ru/ds-ai-code-diff
34
34
  ```
35
35
 
36
36
  ```ts
37
- import { AiCodeDiff } from '@cloud-ru/ds-ai-code-diff'
37
+ import { AiCodeDiff } from '@cloud-ru/ds-ai-code-diff';
38
38
  ```
39
39
 
40
40
  ## Примеры использования
@@ -44,27 +44,27 @@ import { AiCodeDiff } from '@cloud-ru/ds-ai-code-diff'
44
44
  m и s на одних и тех же строках
45
45
 
46
46
  ```tsx
47
- import { AiCodeDiff, SIZE } from '@cloud-ru/ds-ai-code-diff'
47
+ import { AiCodeDiff, SIZE } from '@cloud-ru/ds-ai-code-diff';
48
48
 
49
49
  export function Sizes() {
50
50
  return (
51
51
  <div style={{ display: 'flex', gap: 12, flexWrap: 'wrap', alignItems: 'center' }}>
52
- <AiCodeDiff added='+83' removed='-26' size={SIZE.M} />
53
- <AiCodeDiff added='+83' removed='-26' size={SIZE.S} />
52
+ <AiCodeDiff added={83} removed={26} size={SIZE.M} />
53
+ <AiCodeDiff added={83} removed={26} size={SIZE.S} />
54
54
  </div>
55
- )
55
+ );
56
56
  }
57
57
  ```
58
58
 
59
59
  ### Длинные значения
60
60
 
61
- Строки уже отформатированы потребителем
61
+ Крупные целые числа
62
62
 
63
63
  ```tsx
64
- import { AiCodeDiff } from '@cloud-ru/ds-ai-code-diff'
64
+ import { AiCodeDiff } from '@cloud-ru/ds-ai-code-diff';
65
65
 
66
66
  export function LongCounts() {
67
- return <AiCodeDiff added='+1200' removed='-48' />
67
+ return <AiCodeDiff added={1200} removed={48} />;
68
68
  }
69
69
  ```
70
70
 
@@ -73,10 +73,10 @@ export function LongCounts() {
73
73
  По умолчанию «/», его можно заменить
74
74
 
75
75
  ```tsx
76
- import { AiCodeDiff } from '@cloud-ru/ds-ai-code-diff'
76
+ import { AiCodeDiff } from '@cloud-ru/ds-ai-code-diff';
77
77
 
78
78
  export function CustomSeparator() {
79
- return <AiCodeDiff added='+83' removed='-26' separator='·' />
79
+ return <AiCodeDiff added={83} removed={26} separator='·' />;
80
80
  }
81
81
  ```
82
82
 
@@ -86,12 +86,12 @@ export function CustomSeparator() {
86
86
 
87
87
  | Prop | Type | Default | Description |
88
88
  |------|------|---------|-------------|
89
- | `added` | `string` | — | Уже отформатированный текст добавленных строк, например "+83". |
89
+ | `added` | `number` | — | Количество добавленных строк. Целое неотрицательное число, знак `+` ставит компонент. |
90
90
  | `className` | `string` | — | |
91
91
  | `data-test-id` | `string` | — | |
92
- | `removed` | `string` | — | Уже отформатированный текст удалённых строк, например "-26". |
93
- | `separator` | `string` | `/` | Разделитель между added и removed. По умолчанию "/". |
94
- | `size` | `"m"` \| `"s"` | `m` | Типографика. По умолчанию `m`. |
92
+ | `removed` | `number` | — | Количество удалённых строк. Целое неотрицательное число, знак `-` ставит компонент. |
93
+ | `separator` | `string` | `/` | Разделитель между added и removed. |
94
+ | `size` | `"m"` \| `"s"` | `m` | Типографика. |
95
95
 
96
96
  #### Related types
97
97
 
@@ -1,2 +1,22 @@
1
- import { AiCodeDiffProps } from './types';
1
+ import { ValueOf } from '@cloud-ru/ds-utils';
2
+ import { SIZE } from './constants';
3
+ export type Size = ValueOf<typeof SIZE>;
4
+ export type AiCodeDiffProps = {
5
+ /** Количество добавленных строк. Целое неотрицательное число, знак `+` ставит компонент. */
6
+ added: number;
7
+ /** Количество удалённых строк. Целое неотрицательное число, знак `-` ставит компонент. */
8
+ removed: number;
9
+ /**
10
+ * Типографика.
11
+ * @default m
12
+ */
13
+ size?: Size;
14
+ /**
15
+ * Разделитель между added и removed.
16
+ * @default /
17
+ */
18
+ separator?: string;
19
+ className?: string;
20
+ 'data-test-id'?: string;
21
+ };
2
22
  export declare function AiCodeDiff({ added, removed, size, separator, className, 'data-test-id': dataTestId, }: AiCodeDiffProps): import("react/jsx-runtime").JSX.Element;
@@ -9,5 +9,5 @@ const classnames_1 = __importDefault(require("classnames"));
9
9
  const constants_1 = require("./constants");
10
10
  const styles_module_scss_1 = __importDefault(require('./styles.module.css'));
11
11
  function AiCodeDiff({ added, removed, size = constants_1.SIZE.M, separator = '/', className, 'data-test-id': dataTestId, }) {
12
- return ((0, jsx_runtime_1.jsxs)("span", { className: (0, classnames_1.default)(styles_module_scss_1.default.root, className), "data-size": size, "data-test-id": dataTestId, children: [(0, jsx_runtime_1.jsx)("span", { className: styles_module_scss_1.default.added, "data-test-id": constants_1.TEST_IDS.added, children: added }), (0, jsx_runtime_1.jsx)("span", { className: styles_module_scss_1.default.separator, "data-test-id": constants_1.TEST_IDS.separator, children: separator }), (0, jsx_runtime_1.jsx)("span", { className: styles_module_scss_1.default.removed, "data-test-id": constants_1.TEST_IDS.removed, children: removed })] }));
12
+ return ((0, jsx_runtime_1.jsxs)("span", { className: (0, classnames_1.default)(styles_module_scss_1.default.root, className), "data-size": size, "data-test-id": dataTestId, children: [(0, jsx_runtime_1.jsxs)("span", { className: styles_module_scss_1.default.added, "data-test-id": constants_1.TEST_IDS.added, children: ["+", added] }), (0, jsx_runtime_1.jsx)("span", { className: styles_module_scss_1.default.separator, "data-test-id": constants_1.TEST_IDS.separator, children: separator }), (0, jsx_runtime_1.jsxs)("span", { className: styles_module_scss_1.default.removed, "data-test-id": constants_1.TEST_IDS.removed, children: ["-", removed] })] }));
13
13
  }
@@ -1,3 +1,2 @@
1
1
  export * from './AiCodeDiff';
2
2
  export * from './constants';
3
- export * from './types';
package/dist/cjs/index.js CHANGED
@@ -16,4 +16,3 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./AiCodeDiff"), exports);
18
18
  __exportStar(require("./constants"), exports);
19
- __exportStar(require("./types"), exports);
@@ -1,2 +1,22 @@
1
- import { AiCodeDiffProps } from './types.js';
1
+ import { ValueOf } from '@cloud-ru/ds-utils';
2
+ import { SIZE } from './constants.js';
3
+ export type Size = ValueOf<typeof SIZE>;
4
+ export type AiCodeDiffProps = {
5
+ /** Количество добавленных строк. Целое неотрицательное число, знак `+` ставит компонент. */
6
+ added: number;
7
+ /** Количество удалённых строк. Целое неотрицательное число, знак `-` ставит компонент. */
8
+ removed: number;
9
+ /**
10
+ * Типографика.
11
+ * @default m
12
+ */
13
+ size?: Size;
14
+ /**
15
+ * Разделитель между added и removed.
16
+ * @default /
17
+ */
18
+ separator?: string;
19
+ className?: string;
20
+ 'data-test-id'?: string;
21
+ };
2
22
  export declare function AiCodeDiff({ added, removed, size, separator, className, 'data-test-id': dataTestId, }: AiCodeDiffProps): import("react/jsx-runtime").JSX.Element;
@@ -1,7 +1,7 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
2
  import cn from 'classnames';
3
3
  import { SIZE, TEST_IDS } from './constants.js';
4
4
  import styles from './styles.module.css';
5
5
  export function AiCodeDiff({ added, removed, size = SIZE.M, separator = '/', className, 'data-test-id': dataTestId, }) {
6
- return (_jsxs("span", { className: cn(styles.root, className), "data-size": size, "data-test-id": dataTestId, children: [_jsx("span", { className: styles.added, "data-test-id": TEST_IDS.added, children: added }), _jsx("span", { className: styles.separator, "data-test-id": TEST_IDS.separator, children: separator }), _jsx("span", { className: styles.removed, "data-test-id": TEST_IDS.removed, children: removed })] }));
6
+ return (_jsxs("span", { className: cn(styles.root, className), "data-size": size, "data-test-id": dataTestId, children: [_jsxs("span", { className: styles.added, "data-test-id": TEST_IDS.added, children: ["+", added] }), _jsx("span", { className: styles.separator, "data-test-id": TEST_IDS.separator, children: separator }), _jsxs("span", { className: styles.removed, "data-test-id": TEST_IDS.removed, children: ["-", removed] })] }));
7
7
  }
@@ -1,3 +1,2 @@
1
1
  export * from './AiCodeDiff.js';
2
2
  export * from './constants.js';
3
- export * from './types.js';
package/dist/esm/index.js CHANGED
@@ -1,3 +1,2 @@
1
1
  export * from './AiCodeDiff.js';
2
2
  export * from './constants.js';
3
- export * from './types.js';