@rt-tools/ui-kit-v2 0.34.5 → 0.35.1
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-ai-prompt-input.mjs +574 -0
- package/fesm2022/rt-tools-ui-kit-v2-ai-prompt-input.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-ai-run-status.mjs +2 -1
- package/fesm2022/rt-tools-ui-kit-v2-ai-run-status.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-breadcrumbs.mjs +2 -1
- package/fesm2022/rt-tools-ui-kit-v2-breadcrumbs.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-core.mjs +62 -3
- package/fesm2022/rt-tools-ui-kit-v2-core.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-data-table.mjs +4 -2
- package/fesm2022/rt-tools-ui-kit-v2-data-table.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-draggable-tree.mjs +2 -1
- package/fesm2022/rt-tools-ui-kit-v2-draggable-tree.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-dynamic-selector.mjs +4 -2
- package/fesm2022/rt-tools-ui-kit-v2-dynamic-selector.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-file-card.mjs +2 -1
- package/fesm2022/rt-tools-ui-kit-v2-file-card.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-hybrid-tree-selector.mjs +2 -1
- package/fesm2022/rt-tools-ui-kit-v2-hybrid-tree-selector.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-hybrid-tree.mjs +2 -1
- package/fesm2022/rt-tools-ui-kit-v2-hybrid-tree.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-icon-button.mjs +2 -1
- package/fesm2022/rt-tools-ui-kit-v2-icon-button.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-image-upload.mjs +2 -1
- package/fesm2022/rt-tools-ui-kit-v2-image-upload.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-inline-edit.mjs +2 -1
- package/fesm2022/rt-tools-ui-kit-v2-inline-edit.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-markdown-text.mjs +2 -2
- package/fesm2022/rt-tools-ui-kit-v2-markdown-text.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-page-header.mjs +4 -2
- package/fesm2022/rt-tools-ui-kit-v2-page-header.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-rich-editor.mjs +148 -24
- package/fesm2022/rt-tools-ui-kit-v2-rich-editor.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-scroll-area.mjs +2 -1
- package/fesm2022/rt-tools-ui-kit-v2-scroll-area.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-side-menu.mjs +4 -2
- package/fesm2022/rt-tools-ui-kit-v2-side-menu.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-speed-menu.mjs +2 -1
- package/fesm2022/rt-tools-ui-kit-v2-speed-menu.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-table.mjs +2 -1
- package/fesm2022/rt-tools-ui-kit-v2-table.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-tabs.mjs +2 -1
- package/fesm2022/rt-tools-ui-kit-v2-tabs.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-tag.mjs +2 -1
- package/fesm2022/rt-tools-ui-kit-v2-tag.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-thread-list.mjs +52 -5
- package/fesm2022/rt-tools-ui-kit-v2-thread-list.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-toggle-button-group.mjs +2 -1
- package/fesm2022/rt-tools-ui-kit-v2-toggle-button-group.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-tooltip.mjs +37 -0
- package/fesm2022/rt-tools-ui-kit-v2-tooltip.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-tree-selector.mjs +2 -1
- package/fesm2022/rt-tools-ui-kit-v2-tree-selector.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-tree.mjs +2 -1
- package/fesm2022/rt-tools-ui-kit-v2-tree.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-usage-ring.mjs +164 -0
- package/fesm2022/rt-tools-ui-kit-v2-usage-ring.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2.mjs +2 -0
- package/package.json +9 -1
- package/src/lib/components/ai-prompt-input/CONTEXT.md +60 -0
- package/src/lib/components/ai-prompt-input/rt-ai-prompt-input.component.scss +113 -0
- package/src/lib/components/markdown-text/rt-markdown-text.component.scss +3 -0
- package/src/lib/components/thread-list/rt-thread-list.component.scss +26 -11
- package/src/lib/components/tooltip/CONTEXT.md +4 -0
- package/src/lib/components/usage-ring/CONTEXT.md +33 -0
- package/src/lib/components/usage-ring/rt-usage-ring.component.scss +64 -0
- package/src/rich-editor/lib/components/ai-chat/CONTEXT.md +1 -1
- package/src/rich-editor/lib/components/ai-chat/answer/rt-ai-chat-answer.component.scss +1 -0
- package/src/rich-editor/lib/components/ai-chat/rt-ai-chat.component.scss +6 -0
- package/src/rich-editor/lib/components/chat/rt-chat.component.scss +25 -0
- package/types/rt-tools-ui-kit-v2-ai-prompt-input.d.ts +193 -0
- package/types/rt-tools-ui-kit-v2-core.d.ts +4 -0
- package/types/rt-tools-ui-kit-v2-rich-editor.d.ts +56 -3
- package/types/rt-tools-ui-kit-v2-thread-list.d.ts +7 -1
- package/types/rt-tools-ui-kit-v2-tooltip.d.ts +12 -0
- package/types/rt-tools-ui-kit-v2-usage-ring.d.ts +47 -0
- package/types/rt-tools-ui-kit-v2.d.ts +2 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
2
|
import { AfterViewInit, ElementRef, InputSignal, InputSignalWithTransform, ModelSignal, OnDestroy, OutputEmitterRef, PipeTransform, Signal, TemplateRef, WritableSignal } from "@angular/core";
|
|
3
|
-
import { IQuillDelta, IRtAiRunStatus, IRtIcon, IRtServiceLogo, IRtSideMenu, IRtThreadList, IRtTimeline, RtFormControlBase, TRtKitLabelMap } from "@rt-tools/ui-kit-v2";
|
|
3
|
+
import { IQuillDelta, IRtAiPromptInput, IRtAiRunStatus, IRtIcon, IRtServiceLogo, IRtSideMenu, IRtThreadList, IRtTimeline, RtAiPromptInputComponent, RtFormControlBase, TRtKitLabelMap } from "@rt-tools/ui-kit-v2";
|
|
4
4
|
import { BooleanInput, NumberInput } from "@angular/cdk/coercion";
|
|
5
5
|
import { FormControl, FormGroup } from "@angular/forms";
|
|
6
6
|
/**
|
|
@@ -450,6 +450,8 @@ export declare class RtChatComponent {
|
|
|
450
450
|
* размера `xs`. Шапку сам не создаёт — как и `title`, рисуется только в ней.
|
|
451
451
|
*/
|
|
452
452
|
readonly sign: InputSignal<IRtServiceLogo.Item | null>;
|
|
453
|
+
/** Строка под заголовком шапки: канал и контакт собеседника; пустая не показывается. */
|
|
454
|
+
readonly subtitle: InputSignal<string>;
|
|
453
455
|
/** Текст, когда треда ещё нет (заявка не создана). */
|
|
454
456
|
readonly emptyHint: InputSignal<string>;
|
|
455
457
|
/** Есть ли тред (иначе показываем `emptyHint`). */
|
|
@@ -570,6 +572,11 @@ export declare class RtChatComponent {
|
|
|
570
572
|
"required": false;
|
|
571
573
|
"isSignal": true;
|
|
572
574
|
};
|
|
575
|
+
"subtitle": {
|
|
576
|
+
"alias": "subtitle";
|
|
577
|
+
"required": false;
|
|
578
|
+
"isSignal": true;
|
|
579
|
+
};
|
|
573
580
|
"emptyHint": {
|
|
574
581
|
"alias": "emptyHint";
|
|
575
582
|
"required": false;
|
|
@@ -816,7 +823,7 @@ interface IThreadRow extends IRtThreadList.Row {
|
|
|
816
823
|
*/
|
|
817
824
|
export declare class RtAiChatComponent {
|
|
818
825
|
#private;
|
|
819
|
-
protected readonly composer: Signal<
|
|
826
|
+
protected readonly composer: Signal<RtAiPromptInputComponent | undefined>;
|
|
820
827
|
protected readonly backButton: Signal<ElementRef<HTMLElement> | undefined>;
|
|
821
828
|
protected readonly feed: Signal<ElementRef<HTMLElement> | undefined>;
|
|
822
829
|
protected readonly t: Signal<TRtKitLabelMap>;
|
|
@@ -827,6 +834,7 @@ export declare class RtAiChatComponent {
|
|
|
827
834
|
protected readonly emptyTitleText: Signal<string>;
|
|
828
835
|
protected readonly emptyDescriptionText: Signal<string>;
|
|
829
836
|
protected readonly disclaimerText: Signal<string>;
|
|
837
|
+
protected readonly disclaimerAbove: Signal<boolean>;
|
|
830
838
|
/** Значение признака одних значков на шапке: только материальный набор, свой — без признака. */
|
|
831
839
|
protected readonly headerIconSign: Signal<IRtIcon.Preset | null>;
|
|
832
840
|
protected readonly hasThreads: Signal<boolean>;
|
|
@@ -853,6 +861,18 @@ export declare class RtAiChatComponent {
|
|
|
853
861
|
readonly placeholder: InputSignal<string>;
|
|
854
862
|
/** Подпись под полем сообщения; `null` — подпись кита, пустая строка — без подписи. */
|
|
855
863
|
readonly disclaimer: InputSignal<string | null>;
|
|
864
|
+
/** Где стоит подпись: под полем, а где места под ним нет — над полем. */
|
|
865
|
+
readonly disclaimerPosition: InputSignal<IRtAiPromptInput.HintPosition>;
|
|
866
|
+
/** Подпись модели в ряду поля. Пусто — кнопки модели нет. */
|
|
867
|
+
readonly model: InputSignal<string>;
|
|
868
|
+
/** Подпись усилия в ряду поля. Пусто — кнопки усилия нет. */
|
|
869
|
+
readonly effort: InputSignal<string>;
|
|
870
|
+
/** Подпись режима в ряду поля. Пусто — кнопки режима нет. */
|
|
871
|
+
readonly mode: InputSignal<string>;
|
|
872
|
+
/** Потраченная доля лимита в процентах. `null` — кольца расхода нет. */
|
|
873
|
+
readonly usage: InputSignal<number | null>;
|
|
874
|
+
/** Подсказка кольца расхода: доля и дата сброса словами приложения. */
|
|
875
|
+
readonly usageHint: InputSignal<string>;
|
|
856
876
|
/** Ответ пишется: поле сообщения в режиме остановки, подсказки и новая беседа выключены. */
|
|
857
877
|
readonly sending: InputSignalWithTransform<boolean, BooleanInput>;
|
|
858
878
|
/** Беседа загружается: крутилка, пока сообщений нет. */
|
|
@@ -899,11 +919,13 @@ export declare class RtAiChatComponent {
|
|
|
899
919
|
readonly searchThreads: OutputEmitterRef<string>;
|
|
900
920
|
readonly loadMoreThreads: OutputEmitterRef<void>;
|
|
901
921
|
readonly feedbackChange: OutputEmitterRef<IRtAiChat.FeedbackChange>;
|
|
922
|
+
/** Нажата кнопка модели, усилия или режима в ряду поля: что она открывает, решает приложение. */
|
|
923
|
+
readonly controlPicked: OutputEmitterRef<IRtAiPromptInput.Control>;
|
|
902
924
|
constructor();
|
|
903
925
|
/** Фокус в поле сообщения после отрисовки: приложению — после своих действий вне панели. */
|
|
904
926
|
focusComposer(): void;
|
|
905
927
|
protected onFeedScroll(): void;
|
|
906
|
-
protected onSubmitted(value:
|
|
928
|
+
protected onSubmitted(value: IRtAiPromptInput.SubmitPayload): void;
|
|
907
929
|
protected onSuggestion(text: string): void;
|
|
908
930
|
protected onToggleRun(messageId: string, open: boolean): void;
|
|
909
931
|
protected onFeedback(message: IRtAiChat.Message, feedback: Exclude<IRtAiChat.Feedback, null>): void;
|
|
@@ -956,6 +978,36 @@ export declare class RtAiChatComponent {
|
|
|
956
978
|
"required": false;
|
|
957
979
|
"isSignal": true;
|
|
958
980
|
};
|
|
981
|
+
"disclaimerPosition": {
|
|
982
|
+
"alias": "disclaimerPosition";
|
|
983
|
+
"required": false;
|
|
984
|
+
"isSignal": true;
|
|
985
|
+
};
|
|
986
|
+
"model": {
|
|
987
|
+
"alias": "model";
|
|
988
|
+
"required": false;
|
|
989
|
+
"isSignal": true;
|
|
990
|
+
};
|
|
991
|
+
"effort": {
|
|
992
|
+
"alias": "effort";
|
|
993
|
+
"required": false;
|
|
994
|
+
"isSignal": true;
|
|
995
|
+
};
|
|
996
|
+
"mode": {
|
|
997
|
+
"alias": "mode";
|
|
998
|
+
"required": false;
|
|
999
|
+
"isSignal": true;
|
|
1000
|
+
};
|
|
1001
|
+
"usage": {
|
|
1002
|
+
"alias": "usage";
|
|
1003
|
+
"required": false;
|
|
1004
|
+
"isSignal": true;
|
|
1005
|
+
};
|
|
1006
|
+
"usageHint": {
|
|
1007
|
+
"alias": "usageHint";
|
|
1008
|
+
"required": false;
|
|
1009
|
+
"isSignal": true;
|
|
1010
|
+
};
|
|
959
1011
|
"sending": {
|
|
960
1012
|
"alias": "sending";
|
|
961
1013
|
"required": false;
|
|
@@ -1055,6 +1107,7 @@ export declare class RtAiChatComponent {
|
|
|
1055
1107
|
"searchThreads": "searchThreads";
|
|
1056
1108
|
"loadMoreThreads": "loadMoreThreads";
|
|
1057
1109
|
"feedbackChange": "feedbackChange";
|
|
1110
|
+
"controlPicked": "controlPicked";
|
|
1058
1111
|
}, ["extraTemplate"], never, true, never>;
|
|
1059
1112
|
}
|
|
1060
1113
|
/**
|
|
@@ -90,6 +90,11 @@ export declare class RtThreadListSearchDirective {
|
|
|
90
90
|
static ɵfac: i0.ɵɵFactoryDeclaration<RtThreadListSearchDirective, never>;
|
|
91
91
|
static ɵdir: i0.ɵɵDirectiveDeclaration<RtThreadListSearchDirective, "ng-template[rtThreadListSearch]", never, {}, {}, never, never, true, never>;
|
|
92
92
|
}
|
|
93
|
+
export declare class RtThreadListTabsDirective {
|
|
94
|
+
readonly templateRef: TemplateRef<unknown>;
|
|
95
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RtThreadListTabsDirective, never>;
|
|
96
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RtThreadListTabsDirective, "ng-template[rtThreadListTabs]", never, {}, {}, never, never, true, never>;
|
|
97
|
+
}
|
|
93
98
|
/**
|
|
94
99
|
* Презентационный список тредов для воркспейсов:
|
|
95
100
|
* поиск с дебаунсом, фильтр-поповер и бесконечная прокрутка. Данные и оркестрация
|
|
@@ -113,6 +118,7 @@ export declare class RtThreadListComponent<TRow extends IRtThreadList.Row> imple
|
|
|
113
118
|
protected readonly rowActionsTemplate: Signal<RtThreadListRowActionsDirective<TRow> | undefined>;
|
|
114
119
|
protected readonly filtersTemplate: Signal<RtThreadListFiltersDirective | undefined>;
|
|
115
120
|
protected readonly searchTemplate: Signal<RtThreadListSearchDirective | undefined>;
|
|
121
|
+
protected readonly tabsTemplate: Signal<RtThreadListTabsDirective | undefined>;
|
|
116
122
|
readonly rows: InputSignal<readonly TRow[]>;
|
|
117
123
|
readonly activeId: InputSignal<IRtThreadList.TRowId | null>;
|
|
118
124
|
/** Пусто — берётся переведённая подпись по умолчанию */
|
|
@@ -183,7 +189,7 @@ export declare class RtThreadListComponent<TRow extends IRtThreadList.Row> imple
|
|
|
183
189
|
"openInNewTab": "openInNewTab";
|
|
184
190
|
"searchChange": "searchChange";
|
|
185
191
|
"loadMore": "loadMore";
|
|
186
|
-
}, ["rowTemplate", "rowActionsTemplate", "filtersTemplate", "searchTemplate"], never, true, [{
|
|
192
|
+
}, ["rowTemplate", "rowActionsTemplate", "filtersTemplate", "searchTemplate", "tabsTemplate"], never, true, [{
|
|
187
193
|
directive: typeof i1.RtRadiusDirective;
|
|
188
194
|
inputs: {
|
|
189
195
|
"radius": "radius";
|
|
@@ -77,6 +77,13 @@ export declare class RtTooltipDirective implements OnDestroy {
|
|
|
77
77
|
* показывает.
|
|
78
78
|
*/
|
|
79
79
|
readonly hideOnClick: InputSignalWithTransform<boolean, unknown>;
|
|
80
|
+
/**
|
|
81
|
+
* Нажатие открывает подсказку сразу, повторное нажатие или нажатие вне хоста закрывает. Для
|
|
82
|
+
* хоста без своего действия — значка или кольца, подсказка которого и есть то, ради чего на него
|
|
83
|
+
* нажимают. У кнопки вход не ставят: её нажатие выполняет действие, и касание подсказку не
|
|
84
|
+
* показывает.
|
|
85
|
+
*/
|
|
86
|
+
readonly showOnTap: InputSignalWithTransform<boolean, unknown>;
|
|
80
87
|
constructor();
|
|
81
88
|
ngOnDestroy(): void;
|
|
82
89
|
protected show(): void;
|
|
@@ -114,5 +121,10 @@ export declare class RtTooltipDirective implements OnDestroy {
|
|
|
114
121
|
"required": false;
|
|
115
122
|
"isSignal": true;
|
|
116
123
|
};
|
|
124
|
+
"showOnTap": {
|
|
125
|
+
"alias": "rtTooltipShowOnTap";
|
|
126
|
+
"required": false;
|
|
127
|
+
"isSignal": true;
|
|
128
|
+
};
|
|
117
129
|
}, {}, never, never, true, never>;
|
|
118
130
|
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { NumberInput } from "@angular/cdk/coercion";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import { InputSignal, InputSignalWithTransform, Signal } from "@angular/core";
|
|
4
|
+
/** Длина окружности дуги: из неё складывается доля, закрашенная по `stroke-dasharray`. */
|
|
5
|
+
export declare const RT_USAGE_RING_CIRCUMFERENCE: number;
|
|
6
|
+
/** Доля от 0 до 100 в целых процентах; всё вне границ прижимается к краю. */
|
|
7
|
+
export declare function rtUsagePercent(value: number): number;
|
|
8
|
+
/**
|
|
9
|
+
* Кольцо расхода: доля потраченного лимита дугой по кругу, с порога предупреждения оранжевая.
|
|
10
|
+
*
|
|
11
|
+
* Кольцо рисует только долю. Что за лимит и когда он сбрасывается, говорит подсказка `hint`
|
|
12
|
+
* по наведению и фокусу: её текст собирает приложение, кит не знает ни лимита, ни дат.
|
|
13
|
+
*/
|
|
14
|
+
export declare class RtUsageRingComponent {
|
|
15
|
+
/** Доля в целых процентах, прижатая к 0…100. */
|
|
16
|
+
protected readonly percent: Signal<number>;
|
|
17
|
+
protected readonly radius: number;
|
|
18
|
+
protected readonly circumference: number;
|
|
19
|
+
/** Незакрашенная часть окружности: дуга рисуется штрихом этой длины со смещением. */
|
|
20
|
+
protected readonly dashOffset: Signal<number>;
|
|
21
|
+
protected readonly mods: Signal<Record<string, boolean>>;
|
|
22
|
+
protected readonly label: Signal<string>;
|
|
23
|
+
/** Потраченная доля лимита в процентах. */
|
|
24
|
+
readonly value: InputSignalWithTransform<number, NumberInput>;
|
|
25
|
+
/** С этой доли кольцо оранжевое. */
|
|
26
|
+
readonly warnAt: InputSignalWithTransform<number, NumberInput>;
|
|
27
|
+
/** Подсказка по наведению и фокусу: доля и дата сброса словами приложения. Пусто — подсказки нет. */
|
|
28
|
+
readonly hint: InputSignal<string>;
|
|
29
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RtUsageRingComponent, never>;
|
|
30
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RtUsageRingComponent, "rt-usage-ring", never, {
|
|
31
|
+
"value": {
|
|
32
|
+
"alias": "value";
|
|
33
|
+
"required": false;
|
|
34
|
+
"isSignal": true;
|
|
35
|
+
};
|
|
36
|
+
"warnAt": {
|
|
37
|
+
"alias": "warnAt";
|
|
38
|
+
"required": false;
|
|
39
|
+
"isSignal": true;
|
|
40
|
+
};
|
|
41
|
+
"hint": {
|
|
42
|
+
"alias": "hint";
|
|
43
|
+
"required": false;
|
|
44
|
+
"isSignal": true;
|
|
45
|
+
};
|
|
46
|
+
}, {}, never, never, true, never>;
|
|
47
|
+
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export * from "@rt-tools/ui-kit-v2/core";
|
|
2
2
|
export * from "@rt-tools/ui-kit-v2/accordion";
|
|
3
|
+
export * from "@rt-tools/ui-kit-v2/ai-prompt-input";
|
|
3
4
|
export * from "@rt-tools/ui-kit-v2/ai-run-status";
|
|
4
5
|
export * from "@rt-tools/ui-kit-v2/action-bar";
|
|
5
6
|
export * from "@rt-tools/ui-kit-v2/aside-section";
|
|
@@ -101,6 +102,7 @@ export * from "@rt-tools/ui-kit-v2/toolbar";
|
|
|
101
102
|
export * from "@rt-tools/ui-kit-v2/tooltip";
|
|
102
103
|
export * from "@rt-tools/ui-kit-v2/tree";
|
|
103
104
|
export * from "@rt-tools/ui-kit-v2/tree-selector";
|
|
105
|
+
export * from "@rt-tools/ui-kit-v2/usage-ring";
|
|
104
106
|
export * from "@rt-tools/ui-kit-v2/welcome-dialog";
|
|
105
107
|
export * from "@rt-tools/ui-kit-v2/workspace-details";
|
|
106
108
|
export * from "@rt-tools/ui-kit-v2/workspace";
|