@rt-tools/ui-kit-v2 0.20.0 → 0.22.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.
Files changed (33) hide show
  1. package/fesm2022/rt-tools-ui-kit-v2-core.mjs +44 -1
  2. package/fesm2022/rt-tools-ui-kit-v2-core.mjs.map +1 -1
  3. package/fesm2022/rt-tools-ui-kit-v2-data-table.mjs +2 -2
  4. package/fesm2022/rt-tools-ui-kit-v2-data-table.mjs.map +1 -1
  5. package/fesm2022/rt-tools-ui-kit-v2-icon.mjs +14 -3
  6. package/fesm2022/rt-tools-ui-kit-v2-icon.mjs.map +1 -1
  7. package/fesm2022/rt-tools-ui-kit-v2-menu.mjs +6 -3
  8. package/fesm2022/rt-tools-ui-kit-v2-menu.mjs.map +1 -1
  9. package/fesm2022/rt-tools-ui-kit-v2-rich-editor.mjs +108 -20
  10. package/fesm2022/rt-tools-ui-kit-v2-rich-editor.mjs.map +1 -1
  11. package/fesm2022/rt-tools-ui-kit-v2-table.mjs +1 -1
  12. package/fesm2022/rt-tools-ui-kit-v2-table.mjs.map +1 -1
  13. package/fesm2022/rt-tools-ui-kit-v2-thread-list.mjs +2 -2
  14. package/fesm2022/rt-tools-ui-kit-v2-thread-list.mjs.map +1 -1
  15. package/package.json +1 -1
  16. package/rt-tools-ui-kit-v2-0.22.0.tgz +0 -0
  17. package/src/assets/icons-material/history.fill.svg +5 -0
  18. package/src/assets/icons-material/history.svg +5 -0
  19. package/src/assets/icons-material/window-minimize.fill.svg +5 -0
  20. package/src/assets/icons-material/window-minimize.svg +5 -0
  21. package/src/lib/components/icon/CONTEXT.md +7 -0
  22. package/src/lib/components/markdown-text/CONTEXT.md +3 -0
  23. package/src/lib/components/menu/CONTEXT.md +7 -6
  24. package/src/lib/components/thread-list/CONTEXT.md +2 -1
  25. package/src/lib/components/thread-list/rt-thread-list.component.scss +4 -1
  26. package/src/rich-editor/lib/components/ai-chat/CONTEXT.md +19 -0
  27. package/src/rich-editor/lib/components/ai-chat/copy/rt-ai-chat-copy.component.scss +5 -0
  28. package/src/rich-editor/lib/components/ai-chat/rt-ai-chat.component.scss +8 -1
  29. package/types/rt-tools-ui-kit-v2-core.d.ts +13 -1
  30. package/types/rt-tools-ui-kit-v2-icon.d.ts +11 -2
  31. package/types/rt-tools-ui-kit-v2-menu.d.ts +4 -1
  32. package/types/rt-tools-ui-kit-v2-rich-editor.d.ts +27 -6
  33. package/rt-tools-ui-kit-v2-0.20.0.tgz +0 -0
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { AfterViewInit, OnDestroy, Signal, ElementRef, WritableSignal, InputSignal, OutputEmitterRef, InputSignalWithTransform, ModelSignal, TemplateRef, PipeTransform } from '@angular/core';
3
- import { RtFormControlBase, IQuillDelta, TRtKitLabelMap, IRtAiRunStatus, IRtTimeline, IRtThreadList, IRtSideMenu, IRtIcon } from '@rt-tools/ui-kit-v2';
3
+ import { RtFormControlBase, IQuillDelta, TRtKitLabelMap, IRtAiRunStatus, IRtTimeline, IRtIcon, IRtThreadList, IRtSideMenu } from '@rt-tools/ui-kit-v2';
4
4
  import { BooleanInput, NumberInput } from '@angular/cdk/coercion';
5
5
  import { FormGroup, FormControl } from '@angular/forms';
6
6
 
@@ -633,6 +633,8 @@ declare class RtAiChatComponent {
633
633
  protected readonly emptyTitleText: Signal<string>;
634
634
  protected readonly emptyDescriptionText: Signal<string>;
635
635
  protected readonly disclaimerText: Signal<string>;
636
+ /** Значение признака одних значков на шапке: только материальный набор, свой — без признака. */
637
+ protected readonly headerIconSign: Signal<IRtIcon.Preset | null>;
636
638
  protected readonly hasThreads: Signal<boolean>;
637
639
  /** Список бесед стоит колонкой слева: на весь экран, когда беседы есть. */
638
640
  protected readonly isThreadColumn: Signal<boolean>;
@@ -674,6 +676,19 @@ declare class RtAiChatComponent {
674
676
  readonly fullScreenable: InputSignalWithTransform<boolean, BooleanInput>;
675
677
  /** Кнопка закрытия в шапке. */
676
678
  readonly closable: InputSignalWithTransform<boolean, BooleanInput>;
679
+ /**
680
+ * Действия строки беседы меню «More actions» вместо кнопки удаления: «Copy ID» кладёт id беседы
681
+ * в буфер, «Delete» отдаёт `deleteThread` без подтверждения — его показывает приложение.
682
+ */
683
+ readonly threadMenu: InputSignalWithTransform<boolean, BooleanInput>;
684
+ /** Кнопка копирования текста под вопросом и в строке действий ответа. */
685
+ readonly copyable: InputSignalWithTransform<boolean, BooleanInput>;
686
+ /**
687
+ * Набор рисунков значков шапки. `'material'` ставит на шапку признак одних значков
688
+ * `data-rt-icon-preset`: значки рисуются материальным набором, токены и остальной вид — свои.
689
+ * Признак значок читает после первой отрисовки, поэтому вход задаётся до неё. Дефолт `'base'`.
690
+ */
691
+ readonly headerIconPreset: InputSignal<IRtIcon.Preset>;
677
692
  /** Черновик в поле сообщения. */
678
693
  readonly draft: ModelSignal<string>;
679
694
  /** Список бесед открыт на месте ленты. */
@@ -704,26 +719,32 @@ declare class RtAiChatComponent {
704
719
  protected onToggleFullScreen(): void;
705
720
  protected onSearchThreads(query: string): void;
706
721
  protected onSelectThread(id: IRtThreadList.TRowId): void;
722
+ protected onCopyThreadId(id: string): void;
707
723
  static ɵfac: i0.ɵɵFactoryDeclaration<RtAiChatComponent, never>;
708
- static ɵcmp: i0.ɵɵComponentDeclaration<RtAiChatComponent, "rt-ai-chat", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "messages": { "alias": "messages"; "required": false; "isSignal": true; }; "suggestions": { "alias": "suggestions"; "required": false; "isSignal": true; }; "emptyTitle": { "alias": "emptyTitle"; "required": false; "isSignal": true; }; "emptyDescription": { "alias": "emptyDescription"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disclaimer": { "alias": "disclaimer"; "required": false; "isSignal": true; }; "sending": { "alias": "sending"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "threads": { "alias": "threads"; "required": false; "isSignal": true; }; "activeThreadId": { "alias": "activeThreadId"; "required": false; "isSignal": true; }; "threadsLoading": { "alias": "threadsLoading"; "required": false; "isSignal": true; }; "threadsFetching": { "alias": "threadsFetching"; "required": false; "isSignal": true; }; "threadsHasMore": { "alias": "threadsHasMore"; "required": false; "isSignal": true; }; "emptyPreviewIcons": { "alias": "emptyPreviewIcons"; "required": false; "isSignal": true; }; "fullScreenable": { "alias": "fullScreenable"; "required": false; "isSignal": true; }; "closable": { "alias": "closable"; "required": false; "isSignal": true; }; "draft": { "alias": "draft"; "required": false; "isSignal": true; }; "threadsOpen": { "alias": "threadsOpen"; "required": false; "isSignal": true; }; "fullScreen": { "alias": "fullScreen"; "required": false; "isSignal": true; }; }, { "draft": "draftChange"; "threadsOpen": "threadsOpenChange"; "fullScreen": "fullScreenChange"; "send": "send"; "stop": "stop"; "retry": "retry"; "newThread": "newThread"; "closed": "closed"; "selectThread": "selectThread"; "deleteThread": "deleteThread"; "searchThreads": "searchThreads"; "loadMoreThreads": "loadMoreThreads"; "feedbackChange": "feedbackChange"; }, ["extraTemplate"], never, true, never>;
724
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtAiChatComponent, "rt-ai-chat", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "messages": { "alias": "messages"; "required": false; "isSignal": true; }; "suggestions": { "alias": "suggestions"; "required": false; "isSignal": true; }; "emptyTitle": { "alias": "emptyTitle"; "required": false; "isSignal": true; }; "emptyDescription": { "alias": "emptyDescription"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disclaimer": { "alias": "disclaimer"; "required": false; "isSignal": true; }; "sending": { "alias": "sending"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "threads": { "alias": "threads"; "required": false; "isSignal": true; }; "activeThreadId": { "alias": "activeThreadId"; "required": false; "isSignal": true; }; "threadsLoading": { "alias": "threadsLoading"; "required": false; "isSignal": true; }; "threadsFetching": { "alias": "threadsFetching"; "required": false; "isSignal": true; }; "threadsHasMore": { "alias": "threadsHasMore"; "required": false; "isSignal": true; }; "emptyPreviewIcons": { "alias": "emptyPreviewIcons"; "required": false; "isSignal": true; }; "fullScreenable": { "alias": "fullScreenable"; "required": false; "isSignal": true; }; "closable": { "alias": "closable"; "required": false; "isSignal": true; }; "threadMenu": { "alias": "threadMenu"; "required": false; "isSignal": true; }; "copyable": { "alias": "copyable"; "required": false; "isSignal": true; }; "headerIconPreset": { "alias": "headerIconPreset"; "required": false; "isSignal": true; }; "draft": { "alias": "draft"; "required": false; "isSignal": true; }; "threadsOpen": { "alias": "threadsOpen"; "required": false; "isSignal": true; }; "fullScreen": { "alias": "fullScreen"; "required": false; "isSignal": true; }; }, { "draft": "draftChange"; "threadsOpen": "threadsOpenChange"; "fullScreen": "fullScreenChange"; "send": "send"; "stop": "stop"; "retry": "retry"; "newThread": "newThread"; "closed": "closed"; "selectThread": "selectThread"; "deleteThread": "deleteThread"; "searchThreads": "searchThreads"; "loadMoreThreads": "loadMoreThreads"; "feedbackChange": "feedbackChange"; }, ["extraTemplate"], never, true, never>;
709
725
  }
710
726
 
711
727
  /**
712
- * Ответ ассистента в ленте `rt-ai-chat`: ход работы, текст в markdown, вложения приложения и оценка.
713
- * Оценка появляется, когда текст дописан.
728
+ * Ответ ассистента в ленте `rt-ai-chat`: ход работы, текст в markdown, вложения приложения и строка
729
+ * действий — копирование и оценка. Строка появляется, когда текст дописан.
714
730
  */
715
731
  declare class RtAiChatAnswerComponent {
716
732
  protected readonly t: Signal<TRtKitLabelMap>;
717
- protected readonly isRated: Signal<boolean>;
733
+ /** Текст дописан: строка действий с копированием и оценкой. */
734
+ protected readonly isWritten: Signal<boolean>;
735
+ /** Что копирует кнопка: видимый текст ответа без знаков разметки — без хода работы и вложений. */
736
+ protected readonly plainText: Signal<string>;
718
737
  readonly message: InputSignal<IRtAiChat.Message>;
719
738
  /** Шаблон вложений ответа; `null` — вложений нет. */
720
739
  readonly extra: InputSignal<TemplateRef<IRtAiChat.ExtraContext> | null>;
740
+ /** Кнопка копирования текста первой в строке действий. */
741
+ readonly copyable: InputSignalWithTransform<boolean, BooleanInput>;
721
742
  /** Шаги хода работы раскрыты. */
722
743
  readonly expanded: ModelSignal<boolean>;
723
744
  /** Нажата оценка; повторное нажатие той же снимает её — решает родитель. */
724
745
  readonly feedbackChange: OutputEmitterRef<Exclude<IRtAiChat.Feedback, null>>;
725
746
  static ɵfac: i0.ɵɵFactoryDeclaration<RtAiChatAnswerComponent, never>;
726
- static ɵcmp: i0.ɵɵComponentDeclaration<RtAiChatAnswerComponent, "rt-ai-chat-answer", never, { "message": { "alias": "message"; "required": true; "isSignal": true; }; "extra": { "alias": "extra"; "required": false; "isSignal": true; }; "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; }, { "expanded": "expandedChange"; "feedbackChange": "feedbackChange"; }, never, never, true, never>;
747
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtAiChatAnswerComponent, "rt-ai-chat-answer", never, { "message": { "alias": "message"; "required": true; "isSignal": true; }; "extra": { "alias": "extra"; "required": false; "isSignal": true; }; "copyable": { "alias": "copyable"; "required": false; "isSignal": true; }; "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; }, { "expanded": "expandedChange"; "feedbackChange": "feedbackChange"; }, never, never, true, never>;
727
748
  }
728
749
 
729
750
  /** Ключ текстовой расшифровки иконки статуса сообщения. */
Binary file