@chrome-consulting/krit-ui 0.0.49 → 0.0.52

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/README.md CHANGED
@@ -2,18 +2,6 @@
2
2
 
3
3
  Библиотека UI компонентов для [KRIT](https://krit.global/)
4
4
 
5
- ## Установка
6
-
7
- ```bash
8
- npm install @chrome-consulting/krit-ui
9
- ```
10
-
11
- Подключите стили библиотеки в точке входа приложения:
12
-
13
- ```ts
14
- import '@chrome-consulting/krit-ui/style.css';
15
- ```
16
-
17
5
  ## Использование библиотеки
18
6
 
19
7
  `<ThemeProvider>` обязательна для корректного отображения компонентов UI.
@@ -21,10 +9,7 @@ import '@chrome-consulting/krit-ui/style.css';
21
9
  `<ThemeProvider>` принимает свойство `translations` через которое можно передать переводы.
22
10
 
23
11
  ### Пример
24
-
25
12
  ```jsx
26
- import { ThemeProvider } from '@chrome-consulting/krit-ui';
27
-
28
13
  <ThemeProvider translations={
29
14
  {
30
15
  confirmAction: 'Подтвердите действие',
@@ -36,16 +21,88 @@ import { ThemeProvider } from '@chrome-consulting/krit-ui';
36
21
  </ThemeProvider>
37
22
  ```
38
23
 
39
- ## Публикация
24
+ ## Публикация пакета
40
25
 
41
- Перед публикацией обновите версию и проверьте содержимое пакета:
26
+ Пакет публикуется в npm как `@chrome-consulting/krit-ui`.
27
+
28
+ Перед публикацией убедитесь, что в `package.json` и `package-lock.json` указаны:
29
+
30
+ ```json
31
+ {
32
+ "name": "@chrome-consulting/krit-ui",
33
+ "version": "x.y.z"
34
+ }
35
+ ```
36
+
37
+ В `package.json` не должно быть `"private": true`.
38
+
39
+ ### Подготовка PR
40
+
41
+ 1. Создайте ветку от актуального `main`.
42
+ 2. Внесите изменения в исходники `lib/`.
43
+ 3. Поднимите версию пакета.
44
+ 4. Проверьте пакет локально:
42
45
 
43
46
  ```bash
44
- npm version patch
47
+ npm ci
48
+ npm run build
49
+ npm run lint
45
50
  npm pack --dry-run
46
- npm publish
47
51
  ```
48
52
 
53
+ 5. Откройте PR в `krit-ui`.
54
+
55
+ ### Публикация после merge
56
+
57
+ Публиковать нужно из актуального `main`, после merge PR:
58
+
59
+ ```bash
60
+ git checkout main
61
+ git pull
62
+ npm ci
63
+ npm run build
64
+ npm pack --dry-run
65
+ npm publish --access public
66
+ ```
67
+
68
+ Проверьте опубликованную версию:
69
+
70
+ ```bash
71
+ npm view @chrome-consulting/krit-ui version
72
+ ```
73
+
74
+ Если `npm whoami` возвращает `ENEEDAUTH`, выполните логин:
75
+
76
+ ```bash
77
+ npm login --scope=@chrome-consulting --registry=https://registry.npmjs.org/
78
+ ```
79
+
80
+ Если браузерный логин не работает:
81
+
82
+ ```bash
83
+ npm login --auth-type=legacy --scope=@chrome-consulting --registry=https://registry.npmjs.org/
84
+ ```
85
+
86
+ Если `npm publish` возвращает `403`, у аккаунта нет прав на пакет или scope `@chrome-consulting`.
87
+
88
+ ### Обновление TORO web
89
+
90
+ После публикации новой версии обновите зависимость в TORO `web`:
91
+
92
+ ```bash
93
+ cd ../web
94
+ npm install @chrome-consulting/krit-ui@x.y.z
95
+ npm run typecheck
96
+ ```
97
+
98
+ Если до публикации использовался временный `patch-package`, удалите patch после установки опубликованной версии:
99
+
100
+ ```bash
101
+ rm patches/@chrome-consulting+krit-ui+*.patch
102
+ ```
103
+
104
+ Если patch был единственным, также можно убрать `postinstall: patch-package` из `web/package.json`.
105
+
49
106
  ## Expanding the ESLint configuration
50
107
 
51
108
  If you are developing a production application, we recommend updating the configuration to enable type aware lint rules:
@@ -1,4 +1,4 @@
1
- import { MouseEvent, ReactNode } from 'react';
1
+ import { ReactNode } from 'react';
2
2
  import { Column, RowData } from '@tanstack/react-table';
3
3
  interface SortableHeaderProps<TData extends RowData, TValue = unknown> {
4
4
  className?: string;
@@ -6,7 +6,11 @@ interface SortableHeaderProps<TData extends RowData, TValue = unknown> {
6
6
  column: Column<TData, TValue>;
7
7
  enableMultiSort?: boolean;
8
8
  maxMultiSortColumns?: number;
9
- isMultiSortEvent?: (e: MouseEvent) => boolean;
9
+ /**
10
+ * Количество активных сортировок. Передайте table.getState().sorting.length,
11
+ * чтобы показывать badge 1/2/3 только когда сортировок больше одной.
12
+ */
13
+ sortingCount?: number;
10
14
  }
11
- export declare const SortableHeader: <TData extends RowData, TValue = unknown>({ className, children, column, enableMultiSort, maxMultiSortColumns, isMultiSortEvent, }: SortableHeaderProps<TData, TValue>) => import("react/jsx-runtime").JSX.Element;
15
+ export declare const SortableHeader: <TData extends RowData, TValue = unknown>({ className, children, column, enableMultiSort, maxMultiSortColumns, sortingCount, }: SortableHeaderProps<TData, TValue>) => import("react/jsx-runtime").JSX.Element;
12
16
  export {};
@@ -3,6 +3,8 @@ import * as React from 'react';
3
3
  export interface TimePickerProps extends Omit<InputProps, 'onChange' | 'value' | 'type'> {
4
4
  value: string;
5
5
  onChange: (value: string) => void;
6
+ /** Показывать маску времени в пустом поле. */
7
+ showMask?: boolean;
6
8
  }
7
9
  /**
8
10
  * Компонент выбора времени с маской ввода и выпадающим списком для удобного выбора.