@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
@@ -100,6 +100,7 @@ const RT_KIT_LABELS_EN = {
100
100
  aiBackToChat: 'Back to conversation',
101
101
  aiClose: 'Close assistant',
102
102
  aiCopyReference: 'Copy reference',
103
+ aiCopyThreadId: 'Copy ID',
103
104
  aiDeleteThread: 'Delete conversation',
104
105
  aiDisclaimer: 'AI can make mistakes. Check important information.',
105
106
  aiDislike: 'Bad answer',
@@ -2074,6 +2075,48 @@ function parseMarkdown(source) {
2074
2075
  return blocks;
2075
2076
  }
2076
2077
 
2078
+ /** Между блоками — пустая строка, как между абзацами на экране. */
2079
+ const BLOCK_SEPARATOR = '\n\n';
2080
+ /** Между ячейками строки таблицы — табуляция: так таблицу понимают редакторы и таблицы при вставке. */
2081
+ const CELL_SEPARATOR = '\t';
2082
+ function inlineText(nodes) {
2083
+ return nodes
2084
+ .map((node) => {
2085
+ if (node.kind === ERtMarkdownInline.Break) {
2086
+ return '\n';
2087
+ }
2088
+ return node.children.length > 0 ? inlineText(node.children) : node.text;
2089
+ })
2090
+ .join('');
2091
+ }
2092
+ function tableRow(cells) {
2093
+ return cells.map((cell) => inlineText(cell)).join(CELL_SEPARATOR);
2094
+ }
2095
+ function blockText(block) {
2096
+ switch (block.kind) {
2097
+ case ERtMarkdownBlock.List:
2098
+ return block.items.map((item) => inlineText(item.content)).join('\n');
2099
+ case ERtMarkdownBlock.Code:
2100
+ return block.code;
2101
+ case ERtMarkdownBlock.Table:
2102
+ return [block.head, ...block.rows].map(tableRow).join('\n');
2103
+ default:
2104
+ return inlineText(block.content);
2105
+ }
2106
+ }
2107
+ /**
2108
+ * Видимый текст разметки без её знаков: то, что `rt-markdown-text` показывает читателю.
2109
+ *
2110
+ * Строится по тому же дереву узлов, что рисует компонент, поэтому `##`, `**`, маркеры списков и
2111
+ * черта таблицы в вывод не попадают, а то, что разборщик оставил текстом, остаётся текстом.
2112
+ *
2113
+ * @param source Текст в разметке. Пустота и отсутствие значения дают пустую строку.
2114
+ * @returns Блоки через пустую строку, пункты списка и строки таблицы — построчно, ячейки — через табуляцию.
2115
+ */
2116
+ function markdownToPlainText(source) {
2117
+ return parseMarkdown(source).map(blockText).join(BLOCK_SEPARATOR);
2118
+ }
2119
+
2077
2120
  /** Значение — ровно `true` (флаговые атрибуты). */
2078
2121
  function isTrue(value) {
2079
2122
  return value === true;
@@ -2702,5 +2745,5 @@ const iconsName = [
2702
2745
  * Generated bundle index. Do not edit.
2703
2746
  */
2704
2747
 
2705
- export { BreakpointsService, ERtDataTableCellColor, ERtDataTableColumnType, ERtDataTableFilterType, ERtMarkdownBlock, ERtMarkdownInline, ERtStorageKeys, MessageBus, NotificationBus, RT_CONSUMER_HANDLE_NAMES, RT_DATA_TABLE_PRESET_FROM_HOST, RT_DESIGN_TOKEN_NAMES, RT_KIT_CONFIG, RT_KIT_LABELS, RT_KIT_LABELS_EN, RT_KIT_LOCALE, RT_KIT_TRANSLATOR, RT_MATERIAL_PRESET_CLASS, RT_MATERIAL_PRESET_SELECTOR, RT_PRESET_MATERIAL_CLASS, RT_RADIUS_DEFAULT, RT_RADIUS_STEPS, RT_THEME_SCOPE_ATTRIBUTE, RtDayStampPipe, RtInfiniteScrollDirective, RtKitLabelPipe, RtThemeScopeDirective, SEARCH_DEBOUNCE_MS, ThemeService, breakNode, carryThemeScope, carryThemeScopeOfFocus, coerceQuillDeltaOutput, fileNameFromUrl, formatFileSize, iconsName, materialPresetClassesOf, materialPresetClassesOfFocus, normalizeQuillDelta, parseInline, parseMarkdown, provideRtKit, provideRtKitLabels, rtKitDefault, rtKitLabel, searchDebounce, themeScopeOf, themeScopeOfFocus };
2748
+ export { BreakpointsService, ERtDataTableCellColor, ERtDataTableColumnType, ERtDataTableFilterType, ERtMarkdownBlock, ERtMarkdownInline, ERtStorageKeys, MessageBus, NotificationBus, RT_CONSUMER_HANDLE_NAMES, RT_DATA_TABLE_PRESET_FROM_HOST, RT_DESIGN_TOKEN_NAMES, RT_KIT_CONFIG, RT_KIT_LABELS, RT_KIT_LABELS_EN, RT_KIT_LOCALE, RT_KIT_TRANSLATOR, RT_MATERIAL_PRESET_CLASS, RT_MATERIAL_PRESET_SELECTOR, RT_PRESET_MATERIAL_CLASS, RT_RADIUS_DEFAULT, RT_RADIUS_STEPS, RT_THEME_SCOPE_ATTRIBUTE, RtDayStampPipe, RtInfiniteScrollDirective, RtKitLabelPipe, RtThemeScopeDirective, SEARCH_DEBOUNCE_MS, ThemeService, breakNode, carryThemeScope, carryThemeScopeOfFocus, coerceQuillDeltaOutput, fileNameFromUrl, formatFileSize, iconsName, markdownToPlainText, materialPresetClassesOf, materialPresetClassesOfFocus, normalizeQuillDelta, parseInline, parseMarkdown, provideRtKit, provideRtKitLabels, rtKitDefault, rtKitLabel, searchDebounce, themeScopeOf, themeScopeOfFocus };
2706
2749
  //# sourceMappingURL=rt-tools-ui-kit-v2-core.mjs.map