@rt-tools/ui-kit-v2 0.23.4 → 0.25.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/fesm2022/rt-tools-ui-kit-v2-bottom-sheet.mjs +2 -2
- package/fesm2022/rt-tools-ui-kit-v2-bottom-sheet.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-core.mjs +12 -0
- package/fesm2022/rt-tools-ui-kit-v2-core.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-profile-menu.mjs +295 -0
- package/fesm2022/rt-tools-ui-kit-v2-profile-menu.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-rich-editor.mjs +2 -2
- package/fesm2022/rt-tools-ui-kit-v2-rich-editor.mjs.map +1 -1
- package/package.json +5 -1
- package/src/lib/components/bottom-sheet/rt-bottom-sheet.component.scss +2 -1
- package/src/lib/components/profile-menu/CONTEXT.md +32 -0
- package/src/lib/components/profile-menu/rt-profile-menu.component.scss +104 -0
- package/src/rich-editor/lib/components/ai-chat/CONTEXT.md +3 -0
- package/src/rich-editor/lib/components/ai-chat/rt-ai-chat.component.scss +7 -3
- package/src/styles/_semantic.scss +5 -0
- package/styles/tokens.css +40 -0
- package/types/rt-tools-ui-kit-v2-core.d.ts +8 -2
- package/types/rt-tools-ui-kit-v2-profile-menu.d.ts +103 -0
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { BooleanInput } from "@angular/cdk/coercion";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import { InputSignal, InputSignalWithTransform, OutputEmitterRef, Signal } from "@angular/core";
|
|
4
|
+
import { IRtIcon, TRtKitLabelMap } from "@rt-tools/ui-kit-v2/core";
|
|
5
|
+
/**
|
|
6
|
+
* Модель `<rt-profile-menu>`: один корневой неймспейс с префиксом `I`.
|
|
7
|
+
*/
|
|
8
|
+
export declare namespace IRtProfileMenu {
|
|
9
|
+
/**
|
|
10
|
+
* Пункт смены организации:
|
|
11
|
+
* - `hidden` — пункта нет: организация приходит человеку из принадлежности;
|
|
12
|
+
* - `denied` — пункт стоит недоступным, подсказка объясняет почему;
|
|
13
|
+
* - `allowed` — пункт доступен и шлёт `changeOrganization`.
|
|
14
|
+
*
|
|
15
|
+
* Одно значение вместо двух флагов: сочетание «скрыт, но доступен» ничего не значит.
|
|
16
|
+
*/
|
|
17
|
+
type OrganizationChange = 'hidden' | 'denied' | 'allowed';
|
|
18
|
+
/** Язык в переключателе: код уходит наружу, подпись видна человеку. */
|
|
19
|
+
interface Locale {
|
|
20
|
+
readonly value: string;
|
|
21
|
+
readonly label: string;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Содержимое попапа профиля в шапке `rt-page-header`: кто вошёл и в какой организации, действия с
|
|
26
|
+
* учётной записью, язык и тема.
|
|
27
|
+
*
|
|
28
|
+
* Свою панель меню рисует само — фон, рамку, скругление и тень: поповер кита оформления не даёт,
|
|
29
|
+
* и голые пункты в нём легли бы прямо поверх страницы.
|
|
30
|
+
*
|
|
31
|
+
* Тему переключает `ThemeService`, как у `rt-theme-toggle`: служба одна на страницу, и вход
|
|
32
|
+
* только повторял бы её. Куда ведут остальные действия, решает приложение — они уходят выходами.
|
|
33
|
+
*
|
|
34
|
+
* Стили без инкапсуляции: попап рисуется в перекрытии, у конца `<body>`, и правило по классу блока
|
|
35
|
+
* достаёт до него, а до разметки `rt-menu-item` — тоже.
|
|
36
|
+
*/
|
|
37
|
+
export declare class RtProfileMenuComponent {
|
|
38
|
+
#private;
|
|
39
|
+
/** Подписи кита: сигнал, потому что язык может смениться без перезагрузки. */
|
|
40
|
+
protected readonly t: Signal<TRtKitLabelMap>;
|
|
41
|
+
/** Показан значок противоположной темы: нажатие переводит к ней. */
|
|
42
|
+
protected readonly themeIcon: Signal<IRtIcon.Name>;
|
|
43
|
+
/** Круг над именем несёт его первую букву: картинки профиля у кита нет. */
|
|
44
|
+
protected readonly avatar: Signal<string>;
|
|
45
|
+
readonly userName: InputSignal<string>;
|
|
46
|
+
/** Пустое название — строки организации нет. */
|
|
47
|
+
readonly organizationName: InputSignal<string>;
|
|
48
|
+
readonly organizationChange: InputSignal<IRtProfileMenu.OrganizationChange>;
|
|
49
|
+
readonly passwordChange: InputSignalWithTransform<boolean, BooleanInput>;
|
|
50
|
+
/** Пустой список — переключателя языка нет. */
|
|
51
|
+
readonly locales: InputSignal<ReadonlyArray<IRtProfileMenu.Locale>>;
|
|
52
|
+
readonly locale: InputSignal<string>;
|
|
53
|
+
/** Выход недоступен, пока приложение его уже ведёт. */
|
|
54
|
+
readonly signOutDisabled: InputSignalWithTransform<boolean, BooleanInput>;
|
|
55
|
+
readonly changeOrganization: OutputEmitterRef<void>;
|
|
56
|
+
readonly changePassword: OutputEmitterRef<void>;
|
|
57
|
+
readonly localeChange: OutputEmitterRef<string>;
|
|
58
|
+
readonly signOut: OutputEmitterRef<void>;
|
|
59
|
+
onToggleTheme(): void;
|
|
60
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RtProfileMenuComponent, never>;
|
|
61
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RtProfileMenuComponent, "rt-profile-menu", never, {
|
|
62
|
+
"userName": {
|
|
63
|
+
"alias": "userName";
|
|
64
|
+
"required": false;
|
|
65
|
+
"isSignal": true;
|
|
66
|
+
};
|
|
67
|
+
"organizationName": {
|
|
68
|
+
"alias": "organizationName";
|
|
69
|
+
"required": false;
|
|
70
|
+
"isSignal": true;
|
|
71
|
+
};
|
|
72
|
+
"organizationChange": {
|
|
73
|
+
"alias": "organizationChange";
|
|
74
|
+
"required": false;
|
|
75
|
+
"isSignal": true;
|
|
76
|
+
};
|
|
77
|
+
"passwordChange": {
|
|
78
|
+
"alias": "passwordChange";
|
|
79
|
+
"required": false;
|
|
80
|
+
"isSignal": true;
|
|
81
|
+
};
|
|
82
|
+
"locales": {
|
|
83
|
+
"alias": "locales";
|
|
84
|
+
"required": false;
|
|
85
|
+
"isSignal": true;
|
|
86
|
+
};
|
|
87
|
+
"locale": {
|
|
88
|
+
"alias": "locale";
|
|
89
|
+
"required": false;
|
|
90
|
+
"isSignal": true;
|
|
91
|
+
};
|
|
92
|
+
"signOutDisabled": {
|
|
93
|
+
"alias": "signOutDisabled";
|
|
94
|
+
"required": false;
|
|
95
|
+
"isSignal": true;
|
|
96
|
+
};
|
|
97
|
+
}, {
|
|
98
|
+
"changeOrganization": "changeOrganization";
|
|
99
|
+
"changePassword": "changePassword";
|
|
100
|
+
"localeChange": "localeChange";
|
|
101
|
+
"signOut": "signOut";
|
|
102
|
+
}, never, never, true, never>;
|
|
103
|
+
}
|