tot-ui-kit 1.0.0 → 1.0.2
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 +59 -45
- package/package.json +6 -6
package/README.md
CHANGED
|
@@ -1,72 +1,86 @@
|
|
|
1
|
-
#
|
|
1
|
+
# tot-ui-kit
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
UI-библиотека с `Layout`, `ScMainMenu` и поддержкой тем для React-приложений.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
> **Важно**: Библиотека использует обычный CSS (без CSS Modules). В проектах на webpack убедитесь, что подключены `css-loader` и `style-loader` (или `mini-css-extract-plugin` для продакшена). В Vite всё работает из коробки.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
## Установка
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
|
-
|
|
10
|
+
npm install tot-ui-kit
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
### Подключение глобальных стилей
|
|
14
|
+
|
|
15
|
+
В входном файле приложения (например, `src/main.tsx`):
|
|
16
|
+
|
|
17
|
+
```ts
|
|
18
|
+
import 'tot-ui-kit/global.css'
|
|
19
|
+
import '@sberbusiness/triplex-next/styles/triplex-next.css'
|
|
20
|
+
import '@sberbusiness/icons-next/styles/icons.css'
|
|
21
|
+
```
|
|
14
22
|
|
|
15
23
|
## Быстрый старт
|
|
16
24
|
|
|
17
25
|
```tsx
|
|
18
|
-
import { Layout } from
|
|
19
|
-
|
|
26
|
+
import { Layout } from 'tot-ui-kit'
|
|
27
|
+
|
|
28
|
+
const API_BASE = import.meta.env.VITE_API_BASE ?? 'http://localhost:4000'
|
|
20
29
|
|
|
21
30
|
export const App = () => (
|
|
22
31
|
<Layout
|
|
23
32
|
menuProps={{
|
|
24
|
-
baseUrl:
|
|
25
|
-
menuId:
|
|
26
|
-
activeAppId:
|
|
27
|
-
systemTitle:
|
|
33
|
+
baseUrl: API_BASE,
|
|
34
|
+
menuId: '<your-menu-id>',
|
|
35
|
+
activeAppId: 'my-app',
|
|
36
|
+
systemTitle: 'Моё приложение',
|
|
28
37
|
}}
|
|
29
38
|
>
|
|
30
39
|
{/* контент страниц */}
|
|
31
40
|
</Layout>
|
|
32
|
-
)
|
|
41
|
+
)
|
|
33
42
|
```
|
|
34
43
|
|
|
35
44
|
## Основные пропсы
|
|
36
45
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
46
|
+
### Layout
|
|
47
|
+
|
|
48
|
+
| Проп | Описание |
|
|
49
|
+
|------|----------|
|
|
50
|
+
| `menuProps` | Пропсы для `ScMainMenu` (кроме `theme`/`layout`) |
|
|
51
|
+
| `initialMenuLayout` | Начальное состояние меню: `'full'` или `'compact'` |
|
|
52
|
+
| `initialTheme` | Начальная тема: `'light'` или `'dark'` |
|
|
53
|
+
| `headerTitle`, `headerSubtitle` | Заголовок и подзаголовок в шапке |
|
|
54
|
+
| `upperMenuSlot`, `pageLabelSlot` | Кастомные слоты для шапки |
|
|
55
|
+
| `footerLeft`, `footerRight` | Контент футера |
|
|
56
|
+
|
|
57
|
+
### ScMainMenu
|
|
58
|
+
|
|
59
|
+
| Проп | Описание |
|
|
60
|
+
|------|----------|
|
|
61
|
+
| `baseUrl` | Базовый URL API (формирует `${baseUrl}/idp/single-menu-data/${menuId}`) |
|
|
62
|
+
| `menuId` | ID меню для загрузки данных |
|
|
63
|
+
| `dataUrl` | Полный URL для загрузки (альтернатива `baseUrl` + `menuId`) |
|
|
64
|
+
| `apps` | Готовый список приложений (вместо загрузки) |
|
|
65
|
+
| `activeAppId` | ID активного приложения |
|
|
66
|
+
| `useMockData` | Использовать встроенные mock-данные |
|
|
67
|
+
| `iconResolver` | Кастомная функция для построения `AppDescriptor` |
|
|
68
|
+
| `onLayoutChange` | Callback при переключении layout |
|
|
69
|
+
| `onThemeChange` | Callback при переключении темы |
|
|
70
|
+
|
|
71
|
+
## Peer Dependencies
|
|
72
|
+
|
|
73
|
+
```json
|
|
74
|
+
{
|
|
75
|
+
"@sberbusiness/triplex-next": "^1.0.0",
|
|
76
|
+
"@sberbusiness/icons-next": "^1.0.0",
|
|
77
|
+
"react": "^18.0.0",
|
|
78
|
+
"react-dom": "^18.0.0"
|
|
79
|
+
}
|
|
56
80
|
```
|
|
57
81
|
|
|
58
|
-
|
|
59
|
-
```bash
|
|
60
|
-
cd packages/main-menu
|
|
61
|
-
yarn publish --tag next --access restricted
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
> Перед публикацией обнови `version` и пропиши `npmrc` с токеном к реестру.
|
|
82
|
+
> Рекомендуемые версии: `@sberbusiness/triplex-next@^1.14.0`, `@sberbusiness/icons-next@^1.12.0`
|
|
65
83
|
|
|
66
|
-
##
|
|
67
|
-
- `yarn workspace @data-platform/ui-shell run typecheck`
|
|
68
|
-
- `yarn workspace new-frontend run dev` — меню публичной версии подхватывается из пакета
|
|
69
|
-
- Проверить навигацию между пунктами, переключение темы/раскладки, кастомные слоты
|
|
70
|
-
- Проверить загрузку данных: `baseUrl` (mock-backend) и вариант с заранее переданным `apps`
|
|
84
|
+
## Лицензия
|
|
71
85
|
|
|
72
|
-
|
|
86
|
+
MIT
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tot-ui-kit",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "UI Kit with Layout, MainMenu, and theme support for React applications",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.cjs",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
43
|
"@eslint/js": "^9.18.0",
|
|
44
|
-
"@sberbusiness/icons-next": "^1.
|
|
44
|
+
"@sberbusiness/icons-next": "^1.12.0",
|
|
45
45
|
"@sberbusiness/triplex-next": "^1.14.0",
|
|
46
46
|
"@types/react": "^18.3.26",
|
|
47
47
|
"@types/react-dom": "^18.3.7",
|
|
@@ -57,9 +57,9 @@
|
|
|
57
57
|
"typescript-eslint": "^8.22.0"
|
|
58
58
|
},
|
|
59
59
|
"peerDependencies": {
|
|
60
|
-
"@sberbusiness/icons-next": "^1.
|
|
61
|
-
"@sberbusiness/triplex-next": "^1.
|
|
62
|
-
"react": "^18.
|
|
63
|
-
"react-dom": "^18.
|
|
60
|
+
"@sberbusiness/icons-next": "^1.0.0",
|
|
61
|
+
"@sberbusiness/triplex-next": "^1.0.0",
|
|
62
|
+
"react": "^18.0.0",
|
|
63
|
+
"react-dom": "^18.0.0"
|
|
64
64
|
}
|
|
65
65
|
}
|