@uzum-tech/ui 2.3.5 → 2.3.7

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 (108) hide show
  1. package/dist/index.js +5997 -65
  2. package/dist/index.mjs +5997 -65
  3. package/dist/index.prod.js +4 -2
  4. package/dist/index.prod.mjs +4 -2
  5. package/es/_utils/markdown/constants.d.ts +27 -0
  6. package/es/_utils/markdown/constants.mjs +26 -0
  7. package/es/_utils/markdown/create-markdown-renderer.d.ts +3 -0
  8. package/es/_utils/markdown/create-markdown-renderer.mjs +65 -0
  9. package/es/_utils/markdown/index.d.ts +2 -0
  10. package/es/_utils/markdown/index.mjs +1 -0
  11. package/es/_utils/markdown/interface.d.ts +14 -0
  12. package/es/_utils/markdown/interface.mjs +7 -0
  13. package/es/_utils/markdown/render-markdown.d.ts +3 -0
  14. package/es/_utils/markdown/render-markdown.mjs +31 -0
  15. package/es/_utils/markdown/rulers/clamp-heading.d.ts +2 -0
  16. package/es/_utils/markdown/rulers/clamp-heading.mjs +25 -0
  17. package/es/_utils/markdown/rulers/equals-divider.d.ts +2 -0
  18. package/es/_utils/markdown/rulers/equals-divider.mjs +19 -0
  19. package/es/_utils/markdown/rulers/prune-empty-blocks.d.ts +2 -0
  20. package/es/_utils/markdown/rulers/prune-empty-blocks.mjs +31 -0
  21. package/es/_utils/markdown/rulers/strikethrough.d.ts +3 -0
  22. package/es/_utils/markdown/rulers/strikethrough.mjs +38 -0
  23. package/es/_utils/markdown/rulers/strip-html.d.ts +2 -0
  24. package/es/_utils/markdown/rulers/strip-html.mjs +7 -0
  25. package/es/chat/src/Chat.d.ts +639 -23
  26. package/es/chat/src/Chat.mjs +2 -0
  27. package/es/chat/src/ChatListItems.d.ts +220 -4
  28. package/es/chat/src/ChatListItems.mjs +3 -2
  29. package/es/chat/src/ChatMainArea.d.ts +248 -5
  30. package/es/chat/src/ChatMainArea.mjs +27 -13
  31. package/es/chat/src/ChatMessages.d.ts +246 -3
  32. package/es/chat/src/ChatMessages.mjs +22 -2
  33. package/es/chat/src/ChatParts/Sidebar.d.ts +36 -0
  34. package/es/chat/src/interface.d.ts +68 -0
  35. package/es/chat/src/interface.mjs +8 -0
  36. package/es/chat/styles/dark.d.ts +18 -0
  37. package/es/chat/styles/light.d.ts +25 -0
  38. package/es/chat/styles/light.mjs +9 -1
  39. package/es/components.d.ts +1640 -418
  40. package/es/data-table/src/HeaderButton/FilterButton.d.ts +1 -1
  41. package/es/data-table/src/TableParts/Header.mjs +1 -1
  42. package/es/data-table/src/use-sorter.d.ts +2 -5
  43. package/es/data-table/src/use-table-data.d.ts +1 -4
  44. package/es/layout/src/LayoutSider.d.ts +1 -1
  45. package/es/message-bubble/index.d.ts +1 -0
  46. package/es/message-bubble/src/MessageBubble.d.ts +90 -6
  47. package/es/message-bubble/src/MessageBubble.mjs +53 -7
  48. package/es/message-bubble/src/interface.d.ts +42 -0
  49. package/es/message-bubble/src/interface.mjs +8 -0
  50. package/es/message-bubble/src/styles/index.cssr.mjs +35 -1
  51. package/es/message-bubble/styles/dark.d.ts +11 -0
  52. package/es/message-bubble/styles/light.d.ts +22 -0
  53. package/es/message-bubble/styles/light.mjs +14 -1
  54. package/es/version.d.ts +1 -1
  55. package/es/version.mjs +1 -1
  56. package/lib/_utils/markdown/constants.d.ts +27 -0
  57. package/lib/_utils/markdown/constants.js +55 -0
  58. package/lib/_utils/markdown/create-markdown-renderer.d.ts +3 -0
  59. package/lib/_utils/markdown/create-markdown-renderer.js +84 -0
  60. package/lib/_utils/markdown/index.d.ts +2 -0
  61. package/lib/_utils/markdown/index.js +6 -0
  62. package/lib/_utils/markdown/interface.d.ts +14 -0
  63. package/lib/_utils/markdown/interface.js +10 -0
  64. package/lib/_utils/markdown/render-markdown.d.ts +3 -0
  65. package/lib/_utils/markdown/render-markdown.js +38 -0
  66. package/lib/_utils/markdown/rulers/clamp-heading.d.ts +2 -0
  67. package/lib/_utils/markdown/rulers/clamp-heading.js +30 -0
  68. package/lib/_utils/markdown/rulers/equals-divider.d.ts +2 -0
  69. package/lib/_utils/markdown/rulers/equals-divider.js +28 -0
  70. package/lib/_utils/markdown/rulers/prune-empty-blocks.d.ts +2 -0
  71. package/lib/_utils/markdown/rulers/prune-empty-blocks.js +40 -0
  72. package/lib/_utils/markdown/rulers/strikethrough.d.ts +3 -0
  73. package/lib/_utils/markdown/rulers/strikethrough.js +43 -0
  74. package/lib/_utils/markdown/rulers/strip-html.d.ts +2 -0
  75. package/lib/_utils/markdown/rulers/strip-html.js +15 -0
  76. package/lib/chat/src/Chat.d.ts +639 -23
  77. package/lib/chat/src/Chat.js +2 -0
  78. package/lib/chat/src/ChatListItems.d.ts +220 -4
  79. package/lib/chat/src/ChatListItems.js +7 -2
  80. package/lib/chat/src/ChatMainArea.d.ts +248 -5
  81. package/lib/chat/src/ChatMainArea.js +26 -14
  82. package/lib/chat/src/ChatMessages.d.ts +246 -3
  83. package/lib/chat/src/ChatMessages.js +11 -4
  84. package/lib/chat/src/ChatParts/Sidebar.d.ts +36 -0
  85. package/lib/chat/src/interface.d.ts +68 -0
  86. package/lib/chat/src/interface.js +6 -0
  87. package/lib/chat/styles/dark.d.ts +18 -0
  88. package/lib/chat/styles/light.d.ts +25 -0
  89. package/lib/chat/styles/light.js +8 -1
  90. package/lib/components.d.ts +1258 -36
  91. package/lib/data-table/src/HeaderButton/FilterButton.d.ts +1 -1
  92. package/lib/data-table/src/TableParts/Header.js +1 -1
  93. package/lib/data-table/src/use-sorter.d.ts +2 -5
  94. package/lib/data-table/src/use-table-data.d.ts +1 -4
  95. package/lib/layout/src/LayoutSider.d.ts +1 -1
  96. package/lib/message-bubble/index.d.ts +1 -0
  97. package/lib/message-bubble/src/MessageBubble.d.ts +90 -6
  98. package/lib/message-bubble/src/MessageBubble.js +41 -7
  99. package/lib/message-bubble/src/interface.d.ts +42 -0
  100. package/lib/message-bubble/src/interface.js +6 -0
  101. package/lib/message-bubble/src/styles/index.cssr.js +35 -1
  102. package/lib/message-bubble/styles/dark.d.ts +11 -0
  103. package/lib/message-bubble/styles/light.d.ts +22 -0
  104. package/lib/message-bubble/styles/light.js +13 -2
  105. package/lib/version.d.ts +1 -1
  106. package/lib/version.js +1 -1
  107. package/package.json +2 -1
  108. package/web-types.json +29 -1
@@ -3794,7 +3794,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
3794
3794
  showPopover: import("vue").Ref<boolean, boolean>;
3795
3795
  mergedRenderFilter: import("vue").ComputedRef<import("../interface").RenderFilter | undefined>;
3796
3796
  filterMultiple: import("vue").ComputedRef<boolean>;
3797
- mergedFilterValue: import("vue").ComputedRef<FilterOptionValue | FilterOptionValue[] | null>;
3797
+ mergedFilterValue: import("vue").ComputedRef<FilterOptionValue[] | FilterOptionValue | null>;
3798
3798
  filterMenuCssVars: import("vue").Ref<import("vue").CSSProperties, import("vue").CSSProperties>;
3799
3799
  handleFilterChange: (mergedFilterValue: FilterOptionValue | FilterOptionValue[] | null) => void;
3800
3800
  handleFilterMenuConfirm: () => void;
@@ -287,7 +287,7 @@ export default defineComponent({
287
287
  ref: "body",
288
288
  class: `${mergedClsPrefix}-data-table-table`,
289
289
  style: {
290
- minWidth: formatLength(scrollX),
290
+ minWidth: fixedResizableTableWidth || formatLength(scrollX),
291
291
  width: fixedResizableTableWidth,
292
292
  tableLayout: mergedTableLayout
293
293
  }
@@ -1,4 +1,4 @@
1
- import type { ColumnKey, CompareFn, DataTableSetupProps, InternalRowData, SortOrder, SortState, TmNode, UseSorterDeps } from './interface';
1
+ import type { ColumnKey, DataTableSetupProps, InternalRowData, SortOrder, SortState, TmNode, UseSorterDeps } from './interface';
2
2
  export declare function useSorter(props: DataTableSetupProps, { dataRelatedColsRef, filteredDataRef }: UseSorterDeps): {
3
3
  clearSorter: () => void;
4
4
  sort: (columnKey: ColumnKey, order?: SortOrder) => void;
@@ -6,10 +6,7 @@ export declare function useSorter(props: DataTableSetupProps, { dataRelatedColsR
6
6
  mergedSortStateRef: import("vue").ComputedRef<{
7
7
  columnKey: ColumnKey;
8
8
  order: SortOrder;
9
- sorter: boolean | "default" | CompareFn<InternalRowData> | {
10
- multiple: number;
11
- compare?: "default" | CompareFn<InternalRowData> | undefined;
12
- };
9
+ sorter: boolean | "default" | import("./interface").Sorter<InternalRowData>;
13
10
  }[]>;
14
11
  deriveNextSorter: (sortState: SortState | null) => void;
15
12
  doUpdateSorter: (sortState: SortState | SortState[] | null) => void;
@@ -10,10 +10,7 @@ export declare function useTableData(props: DataTableSetupProps, { dataRelatedCo
10
10
  mergedSortStateRef: import("vue").ComputedRef<{
11
11
  columnKey: ColumnKey;
12
12
  order: import("./interface").SortOrder;
13
- sorter: boolean | "default" | import("./interface").CompareFn<InternalRowData> | {
14
- multiple: number;
15
- compare?: "default" | import("./interface").CompareFn<InternalRowData> | undefined;
16
- };
13
+ sorter: boolean | "default" | import("./interface").Sorter<InternalRowData>;
17
14
  }[]>;
18
15
  hoverKeyRef: import("vue").Ref<RowKey | null, RowKey | null>;
19
16
  selectionColumnRef: import("vue").ComputedRef<TableSelectionColumn | null>;
@@ -506,7 +506,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
506
506
  nativeScrollbar: boolean;
507
507
  inverted: boolean;
508
508
  collapsedWidth: number;
509
- showTrigger: boolean | "bar" | "sidebar" | "arrow-circle";
509
+ showTrigger: boolean | "bar" | "arrow-circle" | "sidebar";
510
510
  collapseMode: "width" | "transform";
511
511
  defaultCollapsed: boolean;
512
512
  showCollapsedContent: boolean;
@@ -1,3 +1,4 @@
1
+ export type { MarkdownFeature, MarkdownOptions } from '../_utils/markdown';
1
2
  export type { MessageBubbleAction, MessageBubbleAttachment, MessageBubbleId, MessageBubbleMessagePayload, MessageBubbleProps, MessageBubbleRenderContent, MessageBubbleSlots } from './src/interface';
2
3
  export { MessageBubbleAttachmentStatus, messageBubbleProps, MessageBubbleServiceVariant, MessageBubbleStatus, MessageBubbleType } from './src/interface';
3
4
  export { default as UMessageBubble } from './src/MessageBubble';
@@ -1,14 +1,14 @@
1
1
  import type { SlotsType, VNodeChild } from 'vue';
2
2
  import type { MessageBubbleAttachment, MessageBubbleMessagePayload, MessageBubbleRenderContent, MessageBubbleSlots } from './interface';
3
- import { MessageBubbleStatus, MessageBubbleType } from './interface';
3
+ import { MessageBubbleServiceVariant, MessageBubbleStatus, MessageBubbleType } from './interface';
4
4
  declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
5
5
  readonly type: {
6
6
  readonly type: import("vue").PropType<MessageBubbleType>;
7
7
  readonly default: MessageBubbleType.MESSAGE;
8
8
  };
9
9
  readonly serviceVariant: {
10
- readonly type: import("vue").PropType<import("./interface").MessageBubbleServiceVariant>;
11
- readonly default: import("./interface").MessageBubbleServiceVariant.SYSTEM;
10
+ readonly type: import("vue").PropType<MessageBubbleServiceVariant>;
11
+ readonly default: MessageBubbleServiceVariant.SYSTEM;
12
12
  };
13
13
  readonly id: {
14
14
  readonly type: import("vue").PropType<import("./interface").MessageBubbleId>;
@@ -26,6 +26,14 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
26
26
  readonly type: import("vue").PropType<MessageBubbleRenderContent>;
27
27
  readonly default: undefined;
28
28
  };
29
+ readonly markdown: {
30
+ readonly type: BooleanConstructor;
31
+ readonly default: false;
32
+ };
33
+ readonly markdownOptions: {
34
+ readonly type: import("vue").PropType<import("..").MarkdownOptions>;
35
+ readonly default: undefined;
36
+ };
29
37
  readonly timestamp: {
30
38
  readonly type: import("vue").PropType<string | number | Date | (() => VNodeChild)>;
31
39
  readonly default: undefined;
@@ -75,6 +83,17 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
75
83
  serviceMessageTextColor: string;
76
84
  serviceMessageBackgroundColor: string;
77
85
  messageTitleColor: string;
86
+ markdownQuoteBorderColorOwn: string;
87
+ markdownQuoteBorderColorOther: string;
88
+ markdownQuoteTextColor: string;
89
+ markdownQuoteBackgroundColor: string;
90
+ markdownQuoteMarkerColor: string;
91
+ markdownDividerColorOwn: string;
92
+ markdownDividerColorOther: string;
93
+ markdownH1FontSize: string;
94
+ markdownH2FontSize: string;
95
+ markdownH3FontSize: string;
96
+ markdownTextFontSize: string;
78
97
  }, {
79
98
  StatusIcon: import("../../_mixins").Theme<"Icon", {
80
99
  color: string;
@@ -102,6 +121,17 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
102
121
  serviceMessageTextColor: string;
103
122
  serviceMessageBackgroundColor: string;
104
123
  messageTitleColor: string;
124
+ markdownQuoteBorderColorOwn: string;
125
+ markdownQuoteBorderColorOther: string;
126
+ markdownQuoteTextColor: string;
127
+ markdownQuoteBackgroundColor: string;
128
+ markdownQuoteMarkerColor: string;
129
+ markdownDividerColorOwn: string;
130
+ markdownDividerColorOther: string;
131
+ markdownH1FontSize: string;
132
+ markdownH2FontSize: string;
133
+ markdownH3FontSize: string;
134
+ markdownTextFontSize: string;
105
135
  }, {
106
136
  StatusIcon: import("../../_mixins").Theme<"Icon", {
107
137
  color: string;
@@ -129,6 +159,17 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
129
159
  serviceMessageTextColor: string;
130
160
  serviceMessageBackgroundColor: string;
131
161
  messageTitleColor: string;
162
+ markdownQuoteBorderColorOwn: string;
163
+ markdownQuoteBorderColorOther: string;
164
+ markdownQuoteTextColor: string;
165
+ markdownQuoteBackgroundColor: string;
166
+ markdownQuoteMarkerColor: string;
167
+ markdownDividerColorOwn: string;
168
+ markdownDividerColorOther: string;
169
+ markdownH1FontSize: string;
170
+ markdownH2FontSize: string;
171
+ markdownH3FontSize: string;
172
+ markdownTextFontSize: string;
132
173
  }, {
133
174
  StatusIcon: import("../../_mixins").Theme<"Icon", {
134
175
  color: string;
@@ -153,8 +194,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
153
194
  readonly default: MessageBubbleType.MESSAGE;
154
195
  };
155
196
  readonly serviceVariant: {
156
- readonly type: import("vue").PropType<import("./interface").MessageBubbleServiceVariant>;
157
- readonly default: import("./interface").MessageBubbleServiceVariant.SYSTEM;
197
+ readonly type: import("vue").PropType<MessageBubbleServiceVariant>;
198
+ readonly default: MessageBubbleServiceVariant.SYSTEM;
158
199
  };
159
200
  readonly id: {
160
201
  readonly type: import("vue").PropType<import("./interface").MessageBubbleId>;
@@ -172,6 +213,14 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
172
213
  readonly type: import("vue").PropType<MessageBubbleRenderContent>;
173
214
  readonly default: undefined;
174
215
  };
216
+ readonly markdown: {
217
+ readonly type: BooleanConstructor;
218
+ readonly default: false;
219
+ };
220
+ readonly markdownOptions: {
221
+ readonly type: import("vue").PropType<import("..").MarkdownOptions>;
222
+ readonly default: undefined;
223
+ };
175
224
  readonly timestamp: {
176
225
  readonly type: import("vue").PropType<string | number | Date | (() => VNodeChild)>;
177
226
  readonly default: undefined;
@@ -221,6 +270,17 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
221
270
  serviceMessageTextColor: string;
222
271
  serviceMessageBackgroundColor: string;
223
272
  messageTitleColor: string;
273
+ markdownQuoteBorderColorOwn: string;
274
+ markdownQuoteBorderColorOther: string;
275
+ markdownQuoteTextColor: string;
276
+ markdownQuoteBackgroundColor: string;
277
+ markdownQuoteMarkerColor: string;
278
+ markdownDividerColorOwn: string;
279
+ markdownDividerColorOther: string;
280
+ markdownH1FontSize: string;
281
+ markdownH2FontSize: string;
282
+ markdownH3FontSize: string;
283
+ markdownTextFontSize: string;
224
284
  }, {
225
285
  StatusIcon: import("../../_mixins").Theme<"Icon", {
226
286
  color: string;
@@ -248,6 +308,17 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
248
308
  serviceMessageTextColor: string;
249
309
  serviceMessageBackgroundColor: string;
250
310
  messageTitleColor: string;
311
+ markdownQuoteBorderColorOwn: string;
312
+ markdownQuoteBorderColorOther: string;
313
+ markdownQuoteTextColor: string;
314
+ markdownQuoteBackgroundColor: string;
315
+ markdownQuoteMarkerColor: string;
316
+ markdownDividerColorOwn: string;
317
+ markdownDividerColorOther: string;
318
+ markdownH1FontSize: string;
319
+ markdownH2FontSize: string;
320
+ markdownH3FontSize: string;
321
+ markdownTextFontSize: string;
251
322
  }, {
252
323
  StatusIcon: import("../../_mixins").Theme<"Icon", {
253
324
  color: string;
@@ -275,6 +346,17 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
275
346
  serviceMessageTextColor: string;
276
347
  serviceMessageBackgroundColor: string;
277
348
  messageTitleColor: string;
349
+ markdownQuoteBorderColorOwn: string;
350
+ markdownQuoteBorderColorOther: string;
351
+ markdownQuoteTextColor: string;
352
+ markdownQuoteBackgroundColor: string;
353
+ markdownQuoteMarkerColor: string;
354
+ markdownDividerColorOwn: string;
355
+ markdownDividerColorOther: string;
356
+ markdownH1FontSize: string;
357
+ markdownH2FontSize: string;
358
+ markdownH3FontSize: string;
359
+ markdownTextFontSize: string;
278
360
  }, {
279
361
  StatusIcon: import("../../_mixins").Theme<"Icon", {
280
362
  color: string;
@@ -293,9 +375,11 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
293
375
  readonly status: MessageBubbleStatus;
294
376
  readonly actions: import("./interface").MessageBubbleAction[];
295
377
  readonly onRetry: (message: MessageBubbleMessagePayload) => void;
296
- readonly serviceVariant: import("./interface").MessageBubbleServiceVariant;
378
+ readonly serviceVariant: MessageBubbleServiceVariant;
297
379
  readonly id: import("./interface").MessageBubbleId;
298
380
  readonly isOwn: boolean;
381
+ readonly markdown: boolean;
382
+ readonly markdownOptions: import("..").MarkdownOptions;
299
383
  readonly timestamp: string | number | Date | (() => VNodeChild);
300
384
  readonly attachments: MessageBubbleAttachment | MessageBubbleAttachment[];
301
385
  readonly uploadProps: Partial<import("../..").UploadProps>;
@@ -27,12 +27,13 @@ var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, gene
27
27
  };
28
28
  import { computed, defineComponent, Fragment, h, nextTick, ref } from 'vue';
29
29
  import { useConfig, useTheme, useThemeClass } from "../../_mixins/index.mjs";
30
+ import { renderMarkdown } from "../../_utils/markdown/index.mjs";
30
31
  import { UDropdown } from "../../dropdown/index.mjs";
31
32
  import { UIcon } from "../../icon/index.mjs";
32
33
  import { UText } from "../../typography/index.mjs";
33
34
  import { UUpload, UUploadFileList } from "../../upload/index.mjs";
34
35
  import { messageBubbleLight } from "../styles/index.mjs";
35
- import { MessageBubbleAttachmentStatus, messageBubbleProps, MessageBubbleStatus, MessageBubbleType, statusIconMapper } from "./interface.mjs";
36
+ import { MessageBubbleAttachmentStatus, messageBubbleProps, MessageBubbleServiceVariant, MessageBubbleStatus, MessageBubbleType, statusIconMapper } from "./interface.mjs";
36
37
  import style from "./styles/index.cssr.mjs";
37
38
  export default defineComponent({
38
39
  name: 'MessageBubble',
@@ -64,6 +65,18 @@ export default defineComponent({
64
65
  status: props.status,
65
66
  attachments: normalizedAttachmentsRef.value
66
67
  }));
68
+ const markdownContent = computed(() => {
69
+ const content = props.content;
70
+ return props.markdown && typeof content === 'string' ? content : null;
71
+ });
72
+ const markdownActive = computed(() => markdownContent.value !== null);
73
+ const markdownHtmlRef = computed(() => {
74
+ if (!markdownContent.value) {
75
+ return null;
76
+ }
77
+ const html = renderMarkdown(markdownContent.value, props.markdownOptions);
78
+ return html.length > 0 ? html : null;
79
+ });
67
80
  const cssVarsRef = computed(() => {
68
81
  const {
69
82
  common: {
@@ -85,7 +98,18 @@ export default defineComponent({
85
98
  unreadNotificationTextColor,
86
99
  serviceMessageTextColor,
87
100
  serviceMessageBackgroundColor,
88
- messageTitleColor
101
+ messageTitleColor,
102
+ markdownQuoteBorderColorOwn,
103
+ markdownQuoteBorderColorOther,
104
+ markdownQuoteTextColor,
105
+ markdownQuoteBackgroundColor,
106
+ markdownQuoteMarkerColor,
107
+ markdownDividerColorOwn,
108
+ markdownDividerColorOther,
109
+ markdownH1FontSize,
110
+ markdownH2FontSize,
111
+ markdownH3FontSize,
112
+ markdownTextFontSize
89
113
  }
90
114
  } = themeRef.value;
91
115
  return {
@@ -105,7 +129,18 @@ export default defineComponent({
105
129
  '--u-message-bubble-unread-text-color': unreadNotificationTextColor,
106
130
  '--u-message-bubble-service-text-color': serviceMessageTextColor,
107
131
  '--u-message-bubble-service-background-color': serviceMessageBackgroundColor,
108
- '--u-message-bubble-title-color': messageTitleColor
132
+ '--u-message-bubble-title-color': messageTitleColor,
133
+ '--u-message-bubble-markdown-quote-border-color-own': markdownQuoteBorderColorOwn,
134
+ '--u-message-bubble-markdown-quote-border-color-other': markdownQuoteBorderColorOther,
135
+ '--u-message-bubble-markdown-quote-text-color': markdownQuoteTextColor,
136
+ '--u-message-bubble-markdown-quote-background-color': markdownQuoteBackgroundColor,
137
+ '--u-message-bubble-markdown-quote-marker-color': markdownQuoteMarkerColor,
138
+ '--u-message-bubble-markdown-divider-color-own': markdownDividerColorOwn,
139
+ '--u-message-bubble-markdown-divider-color-other': markdownDividerColorOther,
140
+ '--u-message-bubble-markdown-h1-font-size': markdownH1FontSize,
141
+ '--u-message-bubble-markdown-h2-font-size': markdownH2FontSize,
142
+ '--u-message-bubble-markdown-h3-font-size': markdownH3FontSize,
143
+ '--u-message-bubble-markdown-text-font-size': markdownTextFontSize
109
144
  };
110
145
  });
111
146
  const themeClassHandle = inlineThemeDisabled ? useThemeClass('message-bubble', undefined, cssVarsRef, props) : undefined;
@@ -248,15 +283,21 @@ export default defineComponent({
248
283
  const hasTitle = Boolean(props.title || slots.title);
249
284
  const afterContentSlot = slots.afterContent || slots['after-content'];
250
285
  const hasAfterContent = Boolean(afterContentSlot);
251
- const hasContentInsideBubble = Boolean(props.content || slots.default || hasAfterContent || hasTitle || normalizedAttachmentsRef.value.length > 1);
286
+ const hasVisibleTextContent = markdownActive.value ? markdownHtmlRef.value !== null : Boolean(props.content);
287
+ const hasContentInsideBubble = Boolean(hasVisibleTextContent || slots.default || hasAfterContent || hasTitle || normalizedAttachmentsRef.value.length > 1);
252
288
  const messageBubbleContent = hasContentInsideBubble ? h("div", {
253
289
  class: [`${mergedClsPrefixRef.value}-message-bubble__bubble`, props.isOwn ? `${mergedClsPrefixRef.value}-message-bubble__bubble--own` : `${mergedClsPrefixRef.value}-message-bubble__bubble--other`]
254
290
  }, hasTitle && h(UText, {
255
291
  class: `${mergedClsPrefixRef.value}-message-bubble__title`,
256
292
  variant: "body-l-semi-bold"
257
- }, slots.title ? slots.title(messagePayloadRef.value) : resolveRenderContent(props.title)), normalizedAttachmentsRef.value.length > 0 && renderAttachment(true), (props.content || slots.default) && h("div", {
293
+ }, slots.title ? slots.title(messagePayloadRef.value) : resolveRenderContent(props.title)), normalizedAttachmentsRef.value.length > 0 && renderAttachment(true), (hasVisibleTextContent || slots.default) && (slots.default ? h("div", {
294
+ class: `${mergedClsPrefixRef.value}-message-bubble__text`
295
+ }, slots.default(messagePayloadRef.value)) : markdownHtmlRef.value !== null ? h("div", {
296
+ class: [`${mergedClsPrefixRef.value}-message-bubble__text`, `${mergedClsPrefixRef.value}-message-bubble__markdown`],
297
+ innerHTML: markdownHtmlRef.value
298
+ }) : h("div", {
258
299
  class: `${mergedClsPrefixRef.value}-message-bubble__text`
259
- }, slots.default ? slots.default(messagePayloadRef.value) : resolveRenderContent(props.content)), hasAfterContent && h("div", {
300
+ }, resolveRenderContent(props.content))), hasAfterContent && h("div", {
260
301
  class: `${mergedClsPrefixRef.value}-message-bubble__after-content`
261
302
  }, afterContentSlot === null || afterContentSlot === void 0 ? void 0 : afterContentSlot(messagePayloadRef.value))) : normalizedAttachmentsRef.value.length === 1 ? renderAttachment() : null;
262
303
  return h("div", {
@@ -322,9 +363,14 @@ export default defineComponent({
322
363
  if (slots.service) {
323
364
  return slots.service(props.serviceVariant);
324
365
  }
366
+ const isMarkdownEligibleVariant = props.serviceVariant === MessageBubbleServiceVariant.SYSTEM || props.serviceVariant === MessageBubbleServiceVariant.EVENT;
367
+ const displayMarkdown = markdownActive.value && isMarkdownEligibleVariant;
325
368
  return h("div", {
326
369
  class: [`${mergedClsPrefixRef.value}-message-bubble__service`, `${mergedClsPrefixRef.value}-message-bubble__service--${props.serviceVariant}`]
327
- }, props.content && h("span", null, resolveRenderContent(props.content)));
370
+ }, displayMarkdown ? markdownHtmlRef.value && h("span", {
371
+ class: `${mergedClsPrefixRef.value}-message-bubble__markdown`,
372
+ innerHTML: markdownHtmlRef.value
373
+ }) : props.content && h("span", null, resolveRenderContent(props.content)));
328
374
  };
329
375
  return {
330
376
  mergedClsPrefixRef,
@@ -1,5 +1,6 @@
1
1
  import type { Component, PropType, VNodeChild } from 'vue';
2
2
  import type { ExtractPublicPropTypes } from '../../_utils';
3
+ import type { MarkdownOptions } from '../../_utils/markdown';
3
4
  import type { UploadFileInfo, UploadProps } from '../../upload';
4
5
  export declare enum MessageBubbleType {
5
6
  MESSAGE = "message",
@@ -90,6 +91,14 @@ export declare const messageBubbleProps: {
90
91
  readonly type: PropType<MessageBubbleRenderContent>;
91
92
  readonly default: undefined;
92
93
  };
94
+ readonly markdown: {
95
+ readonly type: BooleanConstructor;
96
+ readonly default: false;
97
+ };
98
+ readonly markdownOptions: {
99
+ readonly type: PropType<MarkdownOptions>;
100
+ readonly default: undefined;
101
+ };
93
102
  readonly timestamp: {
94
103
  readonly type: PropType<string | number | Date | (() => VNodeChild)>;
95
104
  readonly default: undefined;
@@ -139,6 +148,17 @@ export declare const messageBubbleProps: {
139
148
  serviceMessageTextColor: string;
140
149
  serviceMessageBackgroundColor: string;
141
150
  messageTitleColor: string;
151
+ markdownQuoteBorderColorOwn: string;
152
+ markdownQuoteBorderColorOther: string;
153
+ markdownQuoteTextColor: string;
154
+ markdownQuoteBackgroundColor: string;
155
+ markdownQuoteMarkerColor: string;
156
+ markdownDividerColorOwn: string;
157
+ markdownDividerColorOther: string;
158
+ markdownH1FontSize: string;
159
+ markdownH2FontSize: string;
160
+ markdownH3FontSize: string;
161
+ markdownTextFontSize: string;
142
162
  }, {
143
163
  StatusIcon: import("../../_mixins").Theme<"Icon", {
144
164
  color: string;
@@ -166,6 +186,17 @@ export declare const messageBubbleProps: {
166
186
  serviceMessageTextColor: string;
167
187
  serviceMessageBackgroundColor: string;
168
188
  messageTitleColor: string;
189
+ markdownQuoteBorderColorOwn: string;
190
+ markdownQuoteBorderColorOther: string;
191
+ markdownQuoteTextColor: string;
192
+ markdownQuoteBackgroundColor: string;
193
+ markdownQuoteMarkerColor: string;
194
+ markdownDividerColorOwn: string;
195
+ markdownDividerColorOther: string;
196
+ markdownH1FontSize: string;
197
+ markdownH2FontSize: string;
198
+ markdownH3FontSize: string;
199
+ markdownTextFontSize: string;
169
200
  }, {
170
201
  StatusIcon: import("../../_mixins").Theme<"Icon", {
171
202
  color: string;
@@ -193,6 +224,17 @@ export declare const messageBubbleProps: {
193
224
  serviceMessageTextColor: string;
194
225
  serviceMessageBackgroundColor: string;
195
226
  messageTitleColor: string;
227
+ markdownQuoteBorderColorOwn: string;
228
+ markdownQuoteBorderColorOther: string;
229
+ markdownQuoteTextColor: string;
230
+ markdownQuoteBackgroundColor: string;
231
+ markdownQuoteMarkerColor: string;
232
+ markdownDividerColorOwn: string;
233
+ markdownDividerColorOther: string;
234
+ markdownH1FontSize: string;
235
+ markdownH2FontSize: string;
236
+ markdownH3FontSize: string;
237
+ markdownTextFontSize: string;
196
238
  }, {
197
239
  StatusIcon: import("../../_mixins").Theme<"Icon", {
198
240
  color: string;
@@ -57,6 +57,14 @@ export const messageBubbleProps = Object.assign(Object.assign({}, useTheme.props
57
57
  type: [String, Function],
58
58
  default: undefined
59
59
  },
60
+ markdown: {
61
+ type: Boolean,
62
+ default: false
63
+ },
64
+ markdownOptions: {
65
+ type: Object,
66
+ default: undefined
67
+ },
60
68
  timestamp: {
61
69
  type: [String, Number, Date, Function],
62
70
  default: undefined
@@ -17,6 +17,17 @@ import { c, cB, cE, cM } from "../../../_utils/cssr/index.mjs";
17
17
  // --u-message-bubble-service-text-color
18
18
  // --u-message-bubble-service-background-color
19
19
  // --u-message-bubble-title-color
20
+ // --u-message-bubble-markdown-quote-border-color-own
21
+ // --u-message-bubble-markdown-quote-border-color-other
22
+ // --u-message-bubble-markdown-quote-text-color
23
+ // --u-message-bubble-markdown-quote-background-color
24
+ // --u-message-bubble-markdown-quote-marker-color
25
+ // --u-message-bubble-markdown-divider-color-own
26
+ // --u-message-bubble-markdown-divider-color-other
27
+ // --u-message-bubble-markdown-h1-font-size
28
+ // --u-message-bubble-markdown-h2-font-size
29
+ // --u-message-bubble-markdown-h3-font-size
30
+ // --u-message-bubble-markdown-text-font-size
20
31
  export default cB('message-bubble', `
21
32
  box-sizing: border-box;
22
33
  width: 100%;
@@ -52,17 +63,40 @@ export default cB('message-bubble', `
52
63
  flex-direction: column;
53
64
  padding: 12px;
54
65
  gap: 12px;
66
+ --u-message-bubble-markdown-quote-border-color: var(--u-message-bubble-markdown-quote-border-color-other);
67
+ --u-message-bubble-markdown-divider-color: var(--u-message-bubble-markdown-divider-color-other);
55
68
  `, [cM('own', `
56
69
  background-color: var(--u-message-bubble-background-color-own);
57
70
  color: var(--u-message-bubble-text-color-own);
58
71
  border-bottom-left-radius: var(--u-message-bubble-border-radius);
59
72
  border-bottom-right-radius: 6px;
73
+ --u-message-bubble-markdown-quote-border-color: var(--u-message-bubble-markdown-quote-border-color-own);
74
+ --u-message-bubble-markdown-divider-color: var(--u-message-bubble-markdown-divider-color-own);
60
75
  `)]), cE('title', `
61
76
  color: var(--u-message-bubble-title-color);
62
77
  white-space: pre-wrap;
63
78
  `), cE('text', `
64
79
  white-space: pre-wrap;
65
- `), cE('after-content', `
80
+ `), cE('markdown', `
81
+ white-space: normal;
82
+ font-size: var(--u-message-bubble-markdown-text-font-size);
83
+ `, [c('h1', 'font-size: var(--u-message-bubble-markdown-h1-font-size);'), c('h2', 'font-size: var(--u-message-bubble-markdown-h2-font-size);'), c('h3', 'font-size: var(--u-message-bubble-markdown-h3-font-size);'), c('ul, ol', 'list-style-position: inside;'), c('blockquote', `
84
+ position: relative;
85
+ border-radius: 4px;
86
+ padding: 0 8px;
87
+ margin: 0;
88
+ background-color: var(--u-message-bubble-markdown-quote-background-color);
89
+ color: var(--u-message-bubble-markdown-quote-text-color);
90
+ `, [c('&::before', `
91
+ content: "";
92
+ width: 2px;
93
+ position: absolute;
94
+ left: 2px;
95
+ top: 2px;
96
+ bottom: 2px;
97
+ border-radius: 30px;
98
+ background-color: var(--u-message-bubble-markdown-quote-marker-color);
99
+ `)]), c('& > *:first-child', 'margin-top: 0;'), c('& > *:last-child', 'margin-bottom: 0;')]), cE('after-content', `
66
100
  white-space: normal;
67
101
  `), cE('meta', `
68
102
  display: flex;
@@ -15,6 +15,17 @@ declare const messageBubbleDark: import("../../_mixins").Theme<"MessageBubble",
15
15
  serviceMessageTextColor: string;
16
16
  serviceMessageBackgroundColor: string;
17
17
  messageTitleColor: string;
18
+ markdownQuoteBorderColorOwn: string;
19
+ markdownQuoteBorderColorOther: string;
20
+ markdownQuoteTextColor: string;
21
+ markdownQuoteBackgroundColor: string;
22
+ markdownQuoteMarkerColor: string;
23
+ markdownDividerColorOwn: string;
24
+ markdownDividerColorOther: string;
25
+ markdownH1FontSize: string;
26
+ markdownH2FontSize: string;
27
+ markdownH3FontSize: string;
28
+ markdownTextFontSize: string;
18
29
  }, {
19
30
  StatusIcon: import("../../_mixins").Theme<"Icon", {
20
31
  color: string;
@@ -16,6 +16,17 @@ export declare function self(vars: ThemeCommonVars): {
16
16
  serviceMessageTextColor: string;
17
17
  serviceMessageBackgroundColor: string;
18
18
  messageTitleColor: string;
19
+ markdownQuoteBorderColorOwn: string;
20
+ markdownQuoteBorderColorOther: string;
21
+ markdownQuoteTextColor: string;
22
+ markdownQuoteBackgroundColor: string;
23
+ markdownQuoteMarkerColor: string;
24
+ markdownDividerColorOwn: string;
25
+ markdownDividerColorOther: string;
26
+ markdownH1FontSize: string;
27
+ markdownH2FontSize: string;
28
+ markdownH3FontSize: string;
29
+ markdownTextFontSize: string;
19
30
  };
20
31
  declare const messageBubbleLight: import("../../_mixins").Theme<"MessageBubble", {
21
32
  messageBubbleBackgroundColorOwn: string;
@@ -34,6 +45,17 @@ declare const messageBubbleLight: import("../../_mixins").Theme<"MessageBubble",
34
45
  serviceMessageTextColor: string;
35
46
  serviceMessageBackgroundColor: string;
36
47
  messageTitleColor: string;
48
+ markdownQuoteBorderColorOwn: string;
49
+ markdownQuoteBorderColorOther: string;
50
+ markdownQuoteTextColor: string;
51
+ markdownQuoteBackgroundColor: string;
52
+ markdownQuoteMarkerColor: string;
53
+ markdownDividerColorOwn: string;
54
+ markdownDividerColorOther: string;
55
+ markdownH1FontSize: string;
56
+ markdownH2FontSize: string;
57
+ markdownH3FontSize: string;
58
+ markdownTextFontSize: string;
37
59
  }, {
38
60
  StatusIcon: import("../../_mixins").Theme<"Icon", {
39
61
  color: string;
@@ -9,7 +9,9 @@ export function self(vars) {
9
9
  textPrimary,
10
10
  textSecondary,
11
11
  textTertiary,
12
+ brandPrimary100,
12
13
  brandPrimary400,
14
+ brandPrimary500,
13
15
  staticGreen,
14
16
  staticRed,
15
17
  staticWhite
@@ -30,7 +32,18 @@ export function self(vars) {
30
32
  unreadNotificationTextColor: elementsSecondary,
31
33
  serviceMessageTextColor: textSecondary,
32
34
  serviceMessageBackgroundColor: 'transparent',
33
- messageTitleColor: textPrimary
35
+ messageTitleColor: textPrimary,
36
+ markdownQuoteBorderColorOwn: textPrimary,
37
+ markdownQuoteBorderColorOther: textPrimary,
38
+ markdownQuoteTextColor: textPrimary,
39
+ markdownQuoteBackgroundColor: brandPrimary100,
40
+ markdownQuoteMarkerColor: brandPrimary500,
41
+ markdownDividerColorOwn: textPrimary,
42
+ markdownDividerColorOther: textPrimary,
43
+ markdownH1FontSize: '20px',
44
+ markdownH2FontSize: '18px',
45
+ markdownH3FontSize: '16px',
46
+ markdownTextFontSize: '14px'
34
47
  };
35
48
  }
36
49
  const messageBubbleLight = createTheme({
package/es/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- declare const _default: "2.3.5";
1
+ declare const _default: "2.3.7";
2
2
  export default _default;
package/es/version.mjs CHANGED
@@ -1 +1 @@
1
- export default '2.3.5';
1
+ export default '2.3.7';
@@ -0,0 +1,27 @@
1
+ import type { MarkdownFeature } from '@uzum-tech/ui';
2
+ export declare const HTML_COMMENT_REGEX: RegExp;
3
+ export declare const HTML_CDATA_REGEX: RegExp;
4
+ export declare const HTML_RAW_BLOCK_REGEX: RegExp;
5
+ export declare const HTML_DECLARATION_REGEX: RegExp;
6
+ export declare const HTML_TAG_REGEX: RegExp;
7
+ export declare const ANY_HTML_TAG_REGEX: RegExp;
8
+ export declare const WHITESPACE_REGEX: RegExp;
9
+ export declare const MAX_HEADING_LEVEL = 3;
10
+ export declare const MAX_DIVIDER_INDENT = 4;
11
+ export declare const MIN_DIVIDER_MARKERS = 3;
12
+ export declare const EMPTY_BLOCK_TOKEN_COUNT = 3;
13
+ export declare const CHAR_CODES: {
14
+ TILDE: number;
15
+ EQUALS: number;
16
+ SPACE: number;
17
+ TAB: number;
18
+ };
19
+ export declare const HTML_ENTITY_REPLACEMENTS: Array<[RegExp, string]>;
20
+ export declare const ALL_MARKDOWN_FEATURES: MarkdownFeature[];
21
+ export declare const INVISIBLE_INLINE_TOKEN_TYPES: string[];
22
+ export declare const MARKDOWN_SYMBOL: {
23
+ TILDE: string;
24
+ STRIKETHROUGH_TAG: string;
25
+ PARAGRAPH_TAG: string;
26
+ NEWLINE: string;
27
+ };