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.
Files changed (2) hide show
  1. package/README.md +59 -45
  2. package/package.json +6 -6
package/README.md CHANGED
@@ -1,72 +1,86 @@
1
- # @data-platform/ui-shell
1
+ # tot-ui-kit
2
2
 
3
- Общий пакет с `Layout`, `ScMainMenu`, `MainMenuFull` и вспомогательными компонентами (`UpperMenu`, `PageLabel`).
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
- Когда репозиторий используется как Yarn workspace:
7
+ ## Установка
8
8
 
9
9
  ```bash
10
- yarn workspace new-frontend add @data-platform/ui-shell
10
+ npm install tot-ui-kit
11
11
  ```
12
12
 
13
- Для внешних проектов пакет можно опубликовать в приватный npm-реестр и поставить через `yarn add @data-platform/ui-shell`.
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 "@data-platform/ui-shell";
19
- import { apiData } from "@/api/ApiData";
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: apiData.server,
25
- menuId: "VKIIw4zpK-wnEuFag4GXO",
26
- activeAppId: "sc",
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
- - `Layout`
38
- - `menuProps` — любые пропсы `ScMainMenu` кроме `theme`/`layout`. Достаточно передать `baseUrl` или `apps`.
39
- - `initialMenuLayout`, `initialTheme` стартовое состояние меню.
40
- - `headerTitle`, `headerSubtitle`, `upperMenuSlot`, `pageLabelSlot`, `footerLeft`, `footerRight` — кастомизация шапки/футера.
41
- - `ScMainMenu`
42
- - `baseUrl` + `menuId` (по умолчанию `VKIIw4zpK-wnEuFag4GXO`) или `dataUrl` — откуда забрать данные о приложениях.
43
- - `apps` можно передать готовый список вместо загрузки.
44
- - `iconResolver` функция, которая строит `AppDescriptor` из ответа бэка.
45
- - `onLayoutChange`, `onThemeChange` события переключения состояния меню.
46
-
47
- ## Дальше
48
-
49
- ## Публикация
50
-
51
- ### Локальная проверка пакета
52
- ```bash
53
- cd packages/main-menu
54
- yarn build # (если решим собирать dist)
55
- yarn pack # создаёт tgz
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
- ### Публикация в приватный npm/ghcr
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
- # tot-ui-kit
86
+ MIT
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tot-ui-kit",
3
- "version": "1.0.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.11.0",
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.11.0",
61
- "@sberbusiness/triplex-next": "^1.14.0",
62
- "react": "^18.3.1",
63
- "react-dom": "^18.3.1"
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
  }