@mobilon-dev/chotto 0.3.83 → 0.3.85

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 (145) hide show
  1. package/dist/chotto.css +1 -1
  2. package/dist/components/1_atoms/ButtonContextMenu/ButtonContextMenu.vue2.js +3 -2
  3. package/dist/components/1_atoms/ContactContextMenu/ContactContextMenu.vue2.js +3 -2
  4. package/dist/components/1_atoms/EmojiGlyph/EmojiGlyph.vue.js +38 -0
  5. package/dist/components/1_atoms/EmojiGlyph/EmojiGlyph.vue2.js +4 -0
  6. package/dist/components/1_atoms/Tooltip/Tooltip.vue.js +1 -1
  7. package/dist/components/1_atoms/Tooltip/Tooltip.vue2.js +49 -36
  8. package/dist/components/1_icons/CloseIcon.vue.js +21 -0
  9. package/dist/components/2_blocks/CommunicationPanel/CommunicationPanel.vue.js +351 -282
  10. package/dist/components/2_blocks/CommunicationPanel/CommunicationPanelAttributeIndicator.vue.js +38 -33
  11. package/dist/components/2_blocks/CommunicationPanel/composables/useCommunicationActions.js +64 -39
  12. package/dist/components/2_blocks/CommunicationPanel/composables/useCommunicationAttributes.js +116 -61
  13. package/dist/components/2_blocks/CommunicationPanel/composables/useCommunicationChannels.js +1 -1
  14. package/dist/components/2_blocks/CommunicationPanel/composables/useCommunicationMenu.js +30 -16
  15. package/dist/components/2_blocks/CommunicationPanel/composables/useCommunicationRecentSelection.js +47 -0
  16. package/dist/components/2_blocks/CommunicationPanel/icons/{CommunicationPanelConfirmSpinner.vue2.js → CommunicationPanelConfirmSpinner.vue.js} +1 -1
  17. package/dist/components/2_blocks/CommunicationPanel/icons/CommunicationPanelUnconfirmedIcon.vue.js +19 -0
  18. package/dist/components/2_blocks/FeedSearch/FeedSearch.vue2.js +10 -9
  19. package/dist/components/2_chatinput_elements/ButtonCommandsSelector/ButtonCommandsSelector.vue2.js +8 -7
  20. package/dist/components/2_chatinput_elements/ButtonEmojiPicker/ButtonEmojiPicker.vue.js +2 -2
  21. package/dist/components/2_chatinput_elements/ButtonEmojiPicker/ButtonEmojiPicker.vue2.js +48 -37
  22. package/dist/components/2_chatinput_elements/ButtonTemplateSelector/ButtonTemplateSelector.vue2.js +3 -2
  23. package/dist/components/2_chatinput_elements/ButtonWabaTemplateSelector/ButtonWabaTemplateSelector.vue.js +7 -6
  24. package/dist/components/2_chatinput_elements/FilePreview/FilePreview.vue2.js +3 -2
  25. package/dist/components/2_chatinput_elements/FileUploader/FileUploader.vue2.js +3 -2
  26. package/dist/components/2_chatinput_elements/StickerPicker/StickerPicker.vue2.js +3 -2
  27. package/dist/components/2_chatinput_elements/TemplateSelector/TemplateSelector.vue.js +27 -26
  28. package/dist/components/2_chatinput_elements/TextFormatToolbar/TextFormatToolbar.vue2.js +3 -2
  29. package/dist/components/2_chatinput_elements/WABAAttachmentSection/WABAAttachmentSection.vue2.js +3 -2
  30. package/dist/components/2_chatlist_elements/ChatItem/ChatItem.vue2.js +3 -2
  31. package/dist/components/2_elements/AudioRecorder/AudioRecorder.vue2.js +3 -2
  32. package/dist/components/2_elements/ChannelSelector/ChannelSelector.vue.js +6 -5
  33. package/dist/components/2_elements/ThemeMode/ThemeMode.vue.js +10 -9
  34. package/dist/components/2_elements/VideoRecorder/VideoRecorder.vue2.js +3 -2
  35. package/dist/components/2_feed_elements/AudioMessage/AudioMessage.vue.js +1 -1
  36. package/dist/components/2_feed_elements/AudioMessage/AudioMessage.vue2.js +169 -143
  37. package/dist/components/2_feed_elements/BaseReplyMessage/BaseReplyMessage.vue.js +4 -4
  38. package/dist/components/2_feed_elements/BaseReplyMessage/BaseReplyMessage.vue2.js +33 -32
  39. package/dist/components/2_feed_elements/CallMessage/CallMessage.vue2.js +8 -2
  40. package/dist/components/2_feed_elements/FileMessage/FileMessage.vue.js +3 -3
  41. package/dist/components/2_feed_elements/FileMessage/FileMessage.vue2.js +134 -108
  42. package/dist/components/2_feed_elements/ImageMessage/ImageMessage.vue.js +1 -1
  43. package/dist/components/2_feed_elements/ImageMessage/ImageMessage.vue2.js +116 -97
  44. package/dist/components/2_feed_elements/MessageKeyboard/MessageKeyboard.vue2.js +3 -2
  45. package/dist/components/2_feed_elements/MessageReactions/MessageReactions.vue.js +2 -2
  46. package/dist/components/2_feed_elements/MessageReactions/MessageReactions.vue2.js +232 -113
  47. package/dist/components/2_feed_elements/MessageReactions/composables/usePositioning.js +77 -62
  48. package/dist/components/2_feed_elements/MessageReactions/composables/useReactions.js +62 -20
  49. package/dist/components/2_feed_elements/MessageReactions/composables/useReactionsPanel.js +91 -69
  50. package/dist/components/2_feed_elements/MessageReactions/composables/useReactionsState.js +46 -22
  51. package/dist/components/2_feed_elements/MessageReactions/icons/ExpandReactionsIcon.vue.js +21 -0
  52. package/dist/components/2_feed_elements/MessageReactions/icons/ReplyIcon.vue.js +21 -0
  53. package/dist/components/2_feed_elements/MessageReactions/utils/quickReactions.js +2 -8
  54. package/dist/components/2_feed_elements/MessageReactions/utils/reactionTooltip.js +39 -0
  55. package/dist/components/2_feed_elements/MissedCallMessage/MissedCallMessage.vue2.js +26 -20
  56. package/dist/components/2_feed_elements/ReplyAudioMessage/ReplyAudioMessage.vue.js +2 -2
  57. package/dist/components/2_feed_elements/ReplyAudioMessage/ReplyAudioMessage.vue2.js +27 -18
  58. package/dist/components/2_feed_elements/ReplyCallMessage/ReplyCallMessage.vue.js +2 -2
  59. package/dist/components/2_feed_elements/ReplyCallMessage/ReplyCallMessage.vue2.js +16 -15
  60. package/dist/components/2_feed_elements/ReplyFileMessage/ReplyFileMessage.vue.js +3 -3
  61. package/dist/components/2_feed_elements/ReplyFileMessage/ReplyFileMessage.vue2.js +27 -18
  62. package/dist/components/2_feed_elements/ReplyImageMessage/ReplyImageMessage.vue.js +1 -1
  63. package/dist/components/2_feed_elements/ReplyImageMessage/ReplyImageMessage.vue2.js +16 -12
  64. package/dist/components/2_feed_elements/ReplyStickerMessage/ReplyStickerMessage.vue.js +4 -4
  65. package/dist/components/2_feed_elements/ReplyStickerMessage/ReplyStickerMessage.vue2.js +74 -65
  66. package/dist/components/2_feed_elements/ReplyTextMessage/ReplyTextMessage.vue.js +1 -1
  67. package/dist/components/2_feed_elements/ReplyTextMessage/ReplyTextMessage.vue2.js +20 -11
  68. package/dist/components/2_feed_elements/ReplyVideoMessage/ReplyVideoMessage.vue.js +2 -2
  69. package/dist/components/2_feed_elements/ReplyVideoMessage/ReplyVideoMessage.vue2.js +13 -9
  70. package/dist/components/2_feed_elements/StickerMessage/StickerMessage.vue.js +4 -4
  71. package/dist/components/2_feed_elements/StickerMessage/StickerMessage.vue2.js +74 -55
  72. package/dist/components/2_feed_elements/TextMessage/TextMessage.vue.js +4 -4
  73. package/dist/components/2_feed_elements/TextMessage/TextMessage.vue2.js +102 -76
  74. package/dist/components/2_feed_elements/VideoMessage/VideoMessage.vue.js +2 -2
  75. package/dist/components/2_feed_elements/VideoMessage/VideoMessage.vue2.js +74 -55
  76. package/dist/components/3_compounds/ChatInput/ChatInput.vue.js +2 -2
  77. package/dist/components/3_compounds/ChatInput/ChatInput.vue2.js +99 -82
  78. package/dist/components/3_compounds/Feed/Feed.vue.js +3 -3
  79. package/dist/components/3_compounds/Feed/Feed.vue2.js +159 -139
  80. package/dist/components/3_compounds/Feed/composables/useFeedReply.js +22 -25
  81. package/dist/functions/renderAppleEmojis.js +92 -0
  82. package/dist/hooks/messages/buildReplyPayload.js +14 -0
  83. package/dist/hooks/messages/useMessageLinks.js +60 -50
  84. package/dist/hooks/messages/useStartReply.js +29 -0
  85. package/dist/hooks/useEmojiNative.js +19 -0
  86. package/dist/index.js +130 -122
  87. package/dist/themes/dark.css +1 -1
  88. package/dist/themes/default.css +1 -1
  89. package/dist/themes/glass.css +1 -1
  90. package/dist/themes/green.css +1 -1
  91. package/dist/themes/mobilon1.css +1 -1
  92. package/dist/types/apps/data/messages.d.ts +20 -18
  93. package/dist/types/components/1_atoms/EmojiGlyph/EmojiGlyph.vue.d.ts +12 -0
  94. package/dist/types/components/1_atoms/Tooltip/stories/Tooltip.stories.d.ts +3 -0
  95. package/dist/types/components/1_icons/CloseIcon.vue.d.ts +2 -0
  96. package/dist/types/components/2_blocks/CommunicationPanel/CommunicationPanel.vue.d.ts +2 -0
  97. package/dist/types/components/2_blocks/CommunicationPanel/CommunicationPanelAttributeIndicator.vue.d.ts +2 -2
  98. package/dist/types/components/2_blocks/CommunicationPanel/composables/useCommunicationActions.d.ts +10 -1
  99. package/dist/types/components/2_blocks/CommunicationPanel/composables/useCommunicationAttributes.d.ts +23 -2
  100. package/dist/types/components/2_blocks/CommunicationPanel/composables/useCommunicationMenu.d.ts +1 -0
  101. package/dist/types/components/2_blocks/CommunicationPanel/composables/useCommunicationRecentSelection.d.ts +20 -0
  102. package/dist/types/components/2_blocks/CommunicationPanel/icons/CommunicationPanelUnconfirmedIcon.vue.d.ts +2 -0
  103. package/dist/types/components/2_blocks/CommunicationPanel/icons/index.d.ts +1 -0
  104. package/dist/types/components/2_blocks/CommunicationPanel/stories/CommunicationPanel.stories.d.ts +2 -0
  105. package/dist/types/components/2_blocks/CommunicationPanel/styles/types.d.ts +42 -10
  106. package/dist/types/components/2_chatinput_elements/ButtonEmojiPicker/ButtonEmojiPicker.vue.d.ts +9 -1
  107. package/dist/types/components/2_feed_elements/AudioMessage/AudioMessage.vue.d.ts +29 -0
  108. package/dist/types/components/2_feed_elements/AudioMessage/styles/types.d.ts +24 -16
  109. package/dist/types/components/2_feed_elements/BaseReplyMessage/styles/types.d.ts +8 -4
  110. package/dist/types/components/2_feed_elements/FileMessage/FileMessage.vue.d.ts +29 -0
  111. package/dist/types/components/2_feed_elements/FileMessage/styles/types.d.ts +20 -0
  112. package/dist/types/components/2_feed_elements/ImageMessage/ImageMessage.vue.d.ts +29 -0
  113. package/dist/types/components/2_feed_elements/ImageMessage/styles/types.d.ts +2 -0
  114. package/dist/types/components/2_feed_elements/MessageReactions/MessageReactions.vue.d.ts +64 -1
  115. package/dist/types/components/2_feed_elements/MessageReactions/composables/index.d.ts +2 -2
  116. package/dist/types/components/2_feed_elements/MessageReactions/composables/usePositioning.d.ts +11 -1
  117. package/dist/types/components/2_feed_elements/MessageReactions/composables/useReactions.d.ts +20 -12
  118. package/dist/types/components/2_feed_elements/MessageReactions/composables/useReactionsPanel.d.ts +3 -3
  119. package/dist/types/components/2_feed_elements/MessageReactions/composables/useReactionsState.d.ts +13 -22
  120. package/dist/types/components/2_feed_elements/MessageReactions/icons/ExpandReactionsIcon.vue.d.ts +2 -0
  121. package/dist/types/components/2_feed_elements/MessageReactions/icons/ReplyIcon.vue.d.ts +2 -0
  122. package/dist/types/components/2_feed_elements/MessageReactions/styles/types.d.ts +14 -74
  123. package/dist/types/components/2_feed_elements/MessageReactions/utils/quickReactions.d.ts +1 -1
  124. package/dist/types/components/2_feed_elements/MessageReactions/utils/reactionTooltip.d.ts +14 -0
  125. package/dist/types/components/2_feed_elements/ReplyAudioMessage/styles/types.d.ts +6 -0
  126. package/dist/types/components/2_feed_elements/ReplyCallMessage/styles/types.d.ts +6 -0
  127. package/dist/types/components/2_feed_elements/ReplyFileMessage/styles/types.d.ts +6 -0
  128. package/dist/types/components/2_feed_elements/ReplyImageMessage/styles/types.d.ts +6 -0
  129. package/dist/types/components/2_feed_elements/ReplyStickerMessage/styles/types.d.ts +6 -0
  130. package/dist/types/components/2_feed_elements/ReplyTextMessage/styles/types.d.ts +4 -0
  131. package/dist/types/components/2_feed_elements/ReplyVideoMessage/styles/types.d.ts +6 -0
  132. package/dist/types/components/2_feed_elements/StickerMessage/StickerMessage.vue.d.ts +29 -0
  133. package/dist/types/components/2_feed_elements/TextMessage/TextMessage.vue.d.ts +29 -0
  134. package/dist/types/components/2_feed_elements/TextMessage/styles/types.d.ts +22 -0
  135. package/dist/types/components/2_feed_elements/VideoMessage/VideoMessage.vue.d.ts +29 -0
  136. package/dist/types/components/2_feed_elements/types/messages.d.ts +11 -6
  137. package/dist/types/components/3_compounds/ChatInput/styles/types.d.ts +2 -0
  138. package/dist/types/components/3_compounds/Feed/Feed.vue.d.ts +33 -0
  139. package/dist/types/functions/renderAppleEmojis.d.ts +16 -0
  140. package/dist/types/hooks/index.d.ts +1 -0
  141. package/dist/types/hooks/messages/buildReplyPayload.d.ts +11 -0
  142. package/dist/types/hooks/messages/index.d.ts +2 -0
  143. package/dist/types/hooks/messages/useStartReply.d.ts +6 -0
  144. package/dist/types/hooks/useEmojiNative.d.ts +9 -0
  145. package/package.json +1 -1
@@ -12,6 +12,8 @@ export interface ReplyFileMessageThemeCSSVariables {
12
12
  '--chotto-replyfilemessage-p-white-space': string;
13
13
  /** Размер шрифта абзаца */
14
14
  '--chotto-replyfilemessage-p-font-size': string;
15
+ /** Жирность абзаца (заголовок «В ответ») */
16
+ '--chotto-replyfilemessage-p-font-weight': string;
15
17
  /** Цвет абзаца */
16
18
  '--chotto-replyfilemessage-p-color': string;
17
19
  /** Переполнение абзаца */
@@ -30,6 +32,8 @@ export interface ReplyFileMessageThemeCSSVariables {
30
32
  '--chotto-replyfilemessage-text-margin-top': string;
31
33
  /** Размер шрифта текста */
32
34
  '--chotto-replyfilemessage-text-font-size': string;
35
+ /** Жирность текста */
36
+ '--chotto-replyfilemessage-text-font-weight': string;
33
37
  /** Цвет текста */
34
38
  '--chotto-replyfilemessage-text-color': string;
35
39
  /** Отображение ссылки на файл */
@@ -60,6 +64,8 @@ export interface ReplyFileMessageThemeCSSVariables {
60
64
  '--chotto-replyfilemessage-filename-text-margin-right': string;
61
65
  /** Размер шрифта имени файла */
62
66
  '--chotto-replyfilemessage-filename-text-font-size': string;
67
+ /** Жирность имени файла */
68
+ '--chotto-replyfilemessage-filename-text-font-weight': string;
63
69
  /** Цвет имени файла */
64
70
  '--chotto-replyfilemessage-filename-text-color': string;
65
71
  /** Подчёркивание имени файла */
@@ -6,6 +6,8 @@ export interface ReplyImageMessageThemeCSSVariables {
6
6
  '--chotto-replyimagemessage-p-margin': string;
7
7
  /** Размер шрифта абзаца */
8
8
  '--chotto-replyimagemessage-p-font-size': string;
9
+ /** Жирность абзаца (заголовок «В ответ») */
10
+ '--chotto-replyimagemessage-p-font-weight': string;
9
11
  /** Цвет абзаца */
10
12
  '--chotto-replyimagemessage-p-color': string;
11
13
  /** Переполнение абзаца */
@@ -62,6 +64,8 @@ export interface ReplyImageMessageThemeCSSVariables {
62
64
  '--chotto-replyimagemessage-text-margin-top': string;
63
65
  /** Размер шрифта текста */
64
66
  '--chotto-replyimagemessage-text-font-size': string;
67
+ /** Жирность текста */
68
+ '--chotto-replyimagemessage-text-font-weight': string;
65
69
  /** Цвет текста */
66
70
  '--chotto-replyimagemessage-text-color': string;
67
71
  /** Отображение описания ответа */
@@ -76,6 +80,8 @@ export interface ReplyImageMessageThemeCSSVariables {
76
80
  '--chotto-replyimagemessage-reply-description-white-space': string;
77
81
  /** Цвет спана в описании ответа */
78
82
  '--chotto-replyimagemessage-reply-description-span-color': string;
83
+ /** Жирность текста «Фотография» */
84
+ '--chotto-replyimagemessage-reply-description-p-font-weight': string;
79
85
  /** Переход появления модального окна */
80
86
  '--chotto-replyimagemessage-modal-fade-enter-active-transition': string;
81
87
  /** Прозрачность модального окна в начале */
@@ -6,6 +6,8 @@ export interface ReplyStickerMessageThemeCSSVariables {
6
6
  '--chotto-replystickermessage-p-margin': string;
7
7
  /** Размер шрифта абзаца */
8
8
  '--chotto-replystickermessage-p-font-size': string;
9
+ /** Жирность абзаца (заголовок «В ответ») */
10
+ '--chotto-replystickermessage-p-font-weight': string;
9
11
  /** Цвет абзаца */
10
12
  '--chotto-replystickermessage-p-color': string;
11
13
  /** Переполнение абзаца */
@@ -84,6 +86,8 @@ export interface ReplyStickerMessageThemeCSSVariables {
84
86
  '--chotto-replystickermessage-text-margin-top': string;
85
87
  /** Размер шрифта текста */
86
88
  '--chotto-replystickermessage-text-font-size': string;
89
+ /** Жирность текста */
90
+ '--chotto-replystickermessage-text-font-weight': string;
87
91
  /** Цвет текста */
88
92
  '--chotto-replystickermessage-text-color': string;
89
93
  /** Отображение описания ответа */
@@ -98,6 +102,8 @@ export interface ReplyStickerMessageThemeCSSVariables {
98
102
  '--chotto-replystickermessage-reply-description-white-space': string;
99
103
  /** Цвет спана в описании ответа */
100
104
  '--chotto-replystickermessage-reply-description-span-color': string;
105
+ /** Жирность текста «Стикер» */
106
+ '--chotto-replystickermessage-reply-description-p-font-weight': string;
101
107
  /** Переход появления модального окна */
102
108
  '--chotto-replystickermessage-modal-fade-enter-active-transition': string;
103
109
  /** Прозрачность модального окна в начале */
@@ -12,10 +12,14 @@ export interface ReplyTextMessageThemeCSSVariables {
12
12
  '--chotto-replytextmessage-text-font-size': string;
13
13
  /** Цвет текста ответа */
14
14
  '--chotto-replytextmessage-text-color': string;
15
+ /** Жирность текста ответа */
16
+ '--chotto-replytextmessage-text-font-weight': string;
15
17
  /** Внешние отступы абзаца */
16
18
  '--chotto-replytextmessage-p-margin': string;
17
19
  /** Размер шрифта абзаца */
18
20
  '--chotto-replytextmessage-p-font-size': string;
21
+ /** Жирность абзаца */
22
+ '--chotto-replytextmessage-p-font-weight': string;
19
23
  /** Цвет абзаца */
20
24
  '--chotto-replytextmessage-p-color': string;
21
25
  /** Правила переноса строк */
@@ -6,6 +6,8 @@ export interface ReplyVideoMessageThemeCSSVariables {
6
6
  '--chotto-replyvideomessage-p-margin': string;
7
7
  /** Размер шрифта текста ответа */
8
8
  '--chotto-replyvideomessage-p-font-size': string;
9
+ /** Жирность абзаца (заголовок «В ответ») */
10
+ '--chotto-replyvideomessage-p-font-weight': string;
9
11
  /** Цвет текста ответа */
10
12
  '--chotto-replyvideomessage-p-color': string;
11
13
  /** Переполнение текста ответа */
@@ -48,6 +50,8 @@ export interface ReplyVideoMessageThemeCSSVariables {
48
50
  '--chotto-replyvideomessage-text-margin-top': string;
49
51
  /** Размер шрифта текста */
50
52
  '--chotto-replyvideomessage-text-font-size': string;
53
+ /** Жирность текста */
54
+ '--chotto-replyvideomessage-text-font-weight': string;
51
55
  /** Цвет текста */
52
56
  '--chotto-replyvideomessage-text-color': string;
53
57
  /** Отображение описания ответа */
@@ -60,6 +64,8 @@ export interface ReplyVideoMessageThemeCSSVariables {
60
64
  '--chotto-replyvideomessage-reply-description-margin-bottom': string;
61
65
  /** Цвет текста описания ответа */
62
66
  '--chotto-replyvideomessage-reply-description-span-color': string;
67
+ /** Жирность текста «Видео» */
68
+ '--chotto-replyvideomessage-reply-description-p-font-weight': string;
63
69
  /** Ширина видео в модальном окне */
64
70
  '--chotto-replyvideomessage-modal-video-width': string;
65
71
  /** Высота видео в модальном окне */
@@ -17,6 +17,19 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
17
17
  type: BooleanConstructor;
18
18
  default: boolean;
19
19
  };
20
+ reactionsMode: {
21
+ type: () => "single" | "multi";
22
+ default: string;
23
+ validator: (value: string) => boolean;
24
+ };
25
+ currentUserId: {
26
+ type: () => string | number | undefined;
27
+ default: undefined;
28
+ };
29
+ reactionUserNames: {
30
+ type: () => Record<string, string>;
31
+ default: undefined;
32
+ };
20
33
  channel: {
21
34
  type: StringConstructor;
22
35
  required: false;
@@ -43,6 +56,19 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
43
56
  type: BooleanConstructor;
44
57
  default: boolean;
45
58
  };
59
+ reactionsMode: {
60
+ type: () => "single" | "multi";
61
+ default: string;
62
+ validator: (value: string) => boolean;
63
+ };
64
+ currentUserId: {
65
+ type: () => string | number | undefined;
66
+ default: undefined;
67
+ };
68
+ reactionUserNames: {
69
+ type: () => Record<string, string>;
70
+ default: undefined;
71
+ };
46
72
  channel: {
47
73
  type: StringConstructor;
48
74
  required: false;
@@ -54,8 +80,11 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
54
80
  "onSms-invite"?: ((...args: any[]) => any) | undefined;
55
81
  }>, {
56
82
  channel: string;
83
+ currentUserId: string | number | undefined;
84
+ reactionUserNames: Record<string, string>;
57
85
  applyStyle: Function;
58
86
  isFirstInSeries: boolean;
59
87
  reactionsEnabled: boolean;
88
+ reactionsMode: "single" | "multi";
60
89
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
61
90
  export default _default;
@@ -16,6 +16,19 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
16
16
  type: BooleanConstructor;
17
17
  default: boolean;
18
18
  };
19
+ reactionsMode: {
20
+ type: () => "single" | "multi";
21
+ default: string;
22
+ validator: (value: string) => boolean;
23
+ };
24
+ currentUserId: {
25
+ type: () => string | number | undefined;
26
+ default: undefined;
27
+ };
28
+ reactionUserNames: {
29
+ type: () => Record<string, string>;
30
+ default: undefined;
31
+ };
19
32
  subtextTooltipData: {
20
33
  type: () => Record<string, string>;
21
34
  required: false;
@@ -47,6 +60,19 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
47
60
  type: BooleanConstructor;
48
61
  default: boolean;
49
62
  };
63
+ reactionsMode: {
64
+ type: () => "single" | "multi";
65
+ default: string;
66
+ validator: (value: string) => boolean;
67
+ };
68
+ currentUserId: {
69
+ type: () => string | number | undefined;
70
+ default: undefined;
71
+ };
72
+ reactionUserNames: {
73
+ type: () => Record<string, string>;
74
+ default: undefined;
75
+ };
50
76
  subtextTooltipData: {
51
77
  type: () => Record<string, string>;
52
78
  required: false;
@@ -63,9 +89,12 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
63
89
  "onSms-invite"?: ((...args: any[]) => any) | undefined;
64
90
  }>, {
65
91
  channel: string;
92
+ currentUserId: string | number | undefined;
93
+ reactionUserNames: Record<string, string>;
66
94
  applyStyle: Function;
67
95
  isFirstInSeries: boolean;
68
96
  reactionsEnabled: boolean;
97
+ reactionsMode: "single" | "multi";
69
98
  subtextTooltipData: Record<string, string>;
70
99
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
71
100
  export default _default;
@@ -52,6 +52,24 @@ export interface TextMessageThemeCSSVariables {
52
52
  '--chotto-textmessage-right-after-z-index': string;
53
53
  /** Фильтр псевдоэлемента справа */
54
54
  '--chotto-textmessage-right-after-filter': string;
55
+ /** Обрезка хвостика справа (скрывает часть внутри пузыря) */
56
+ '--chotto-textmessage-right-after-clip-path': string;
57
+ /** Отображение футера (реакции + время) */
58
+ '--chotto-textmessage-footer-display': string;
59
+ /** Выравнивание элементов футера по поперечной оси */
60
+ '--chotto-textmessage-footer-align-items': string;
61
+ /** Выравнивание элементов футера по главной оси */
62
+ '--chotto-textmessage-footer-justify-content': string;
63
+ /** Промежуток между элементами футера */
64
+ '--chotto-textmessage-footer-column-gap': string;
65
+ /** Отступ сверху футера при наличии реакций */
66
+ '--chotto-textmessage-footer-margin-top': string;
67
+ /** Растягивание блока реакций в футере */
68
+ '--chotto-textmessage-reactions-flex': string;
69
+ /** Перенос реакций */
70
+ '--chotto-textmessage-reactions-flex-wrap': string;
71
+ /** Минимальная ширина блока реакций */
72
+ '--chotto-textmessage-reactions-min-width': string;
55
73
  /** Отображение контейнера информации */
56
74
  '--chotto-textmessage-info-container-display': string;
57
75
  /** Выравнивание элементов контейнера информации по поперечной оси */
@@ -60,6 +78,10 @@ export interface TextMessageThemeCSSVariables {
60
78
  '--chotto-textmessage-info-container-justify-content': string;
61
79
  /** Промежуток между элементами контейнера информации */
62
80
  '--chotto-textmessage-info-container-column-gap': string;
81
+ /** Сжатие контейнера информации */
82
+ '--chotto-textmessage-info-container-flex-shrink': string;
83
+ /** Отступ слева у контейнера информации */
84
+ '--chotto-textmessage-info-container-margin-left': string;
63
85
  /** Отображение блока просмотров */
64
86
  '--chotto-textmessage-views-display': string;
65
87
  /** Выравнивание элементов блока просмотров */
@@ -16,6 +16,19 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
16
16
  type: BooleanConstructor;
17
17
  default: boolean;
18
18
  };
19
+ reactionsMode: {
20
+ type: () => "single" | "multi";
21
+ default: string;
22
+ validator: (value: string) => boolean;
23
+ };
24
+ currentUserId: {
25
+ type: () => string | number | undefined;
26
+ default: undefined;
27
+ };
28
+ reactionUserNames: {
29
+ type: () => Record<string, string>;
30
+ default: undefined;
31
+ };
19
32
  subtextTooltipData: {
20
33
  type: () => Record<string, string>;
21
34
  required: false;
@@ -47,6 +60,19 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
47
60
  type: BooleanConstructor;
48
61
  default: boolean;
49
62
  };
63
+ reactionsMode: {
64
+ type: () => "single" | "multi";
65
+ default: string;
66
+ validator: (value: string) => boolean;
67
+ };
68
+ currentUserId: {
69
+ type: () => string | number | undefined;
70
+ default: undefined;
71
+ };
72
+ reactionUserNames: {
73
+ type: () => Record<string, string>;
74
+ default: undefined;
75
+ };
50
76
  subtextTooltipData: {
51
77
  type: () => Record<string, string>;
52
78
  required: false;
@@ -63,9 +89,12 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
63
89
  "onSms-invite"?: ((...args: any[]) => any) | undefined;
64
90
  }>, {
65
91
  channel: string;
92
+ currentUserId: string | number | undefined;
93
+ reactionUserNames: Record<string, string>;
66
94
  applyStyle: Function;
67
95
  isFirstInSeries: boolean;
68
96
  reactionsEnabled: boolean;
97
+ reactionsMode: "single" | "multi";
69
98
  subtextTooltipData: Record<string, string>;
70
99
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
71
100
  export default _default;
@@ -16,22 +16,27 @@ export interface ILinkPreview {
16
16
  description: string;
17
17
  }
18
18
  export type ReactionKey = string;
19
+ /** Одна реакция от конкретного пользователя */
19
20
  export interface MessageReactionItem {
20
21
  key: ReactionKey;
21
- count: number;
22
- reactedByMe?: boolean;
23
- }
24
- export interface MessageRecentReaction {
25
22
  userId: string | number;
26
- key: ReactionKey;
27
23
  date?: number;
24
+ /** Имя автора (snapshot); если нет — берётся из reactionUserNames */
25
+ name?: string;
26
+ }
27
+ /** Агрегированный чип для отображения (считается в UI) */
28
+ export interface MessageReactionChip {
29
+ key: ReactionKey;
30
+ count: number;
31
+ reactedByMe: boolean;
32
+ /** Исходные события по этому эмодзи (для тултипа) */
33
+ events: MessageReactionItem[];
28
34
  }
29
35
  export interface MessageReactions {
30
36
  items: MessageReactionItem[];
31
37
  meta?: {
32
38
  mode?: 'single' | 'multi';
33
39
  };
34
- recent?: MessageRecentReaction[];
35
40
  vendor?: {
36
41
  telegram?: {
37
42
  total_count?: number;
@@ -26,6 +26,8 @@ export interface ChatInputThemeCSSVariables {
26
26
  '--chotto-chatinput-reply-line-grid-row': string;
27
27
  /** Отображение строки ответа */
28
28
  '--chotto-chatinput-reply-line-display': string;
29
+ /** Отступ снизу строки ответа */
30
+ '--chotto-chatinput-reply-line-margin-bottom': string;
29
31
  /** Колонка сетки строки файла */
30
32
  '--chotto-chatinput-file-line-grid-column': string;
31
33
  /** Строка сетки строки файла */
@@ -75,6 +75,21 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
75
75
  type: BooleanConstructor;
76
76
  default: boolean;
77
77
  };
78
+ reactionsMode: {
79
+ type: () => "single" | "multi";
80
+ default: string;
81
+ validator: (value: string) => boolean;
82
+ };
83
+ /** Id текущего пользователя — для расчёта «моих» реакций */
84
+ currentUserId: {
85
+ type: () => string | number | undefined;
86
+ default: undefined;
87
+ };
88
+ /** userId → имя для тултипов реакций */
89
+ reactionUserNames: {
90
+ type: () => Record<string, string>;
91
+ default: undefined;
92
+ };
78
93
  subtextTooltipData: {
79
94
  type: ObjectConstructor;
80
95
  required: false;
@@ -170,6 +185,21 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
170
185
  type: BooleanConstructor;
171
186
  default: boolean;
172
187
  };
188
+ reactionsMode: {
189
+ type: () => "single" | "multi";
190
+ default: string;
191
+ validator: (value: string) => boolean;
192
+ };
193
+ /** Id текущего пользователя — для расчёта «моих» реакций */
194
+ currentUserId: {
195
+ type: () => string | number | undefined;
196
+ default: undefined;
197
+ };
198
+ /** userId → имя для тултипов реакций */
199
+ reactionUserNames: {
200
+ type: () => Record<string, string>;
201
+ default: undefined;
202
+ };
173
203
  subtextTooltipData: {
174
204
  type: ObjectConstructor;
175
205
  required: false;
@@ -198,8 +228,11 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
198
228
  }>, {
199
229
  typing: boolean | IFeedTyping;
200
230
  chatBackground: string;
231
+ currentUserId: string | number | undefined;
232
+ reactionUserNames: Record<string, string>;
201
233
  applyStyle: Function;
202
234
  reactionsEnabled: boolean;
235
+ reactionsMode: "single" | "multi";
203
236
  subtextTooltipData: Record<string, any>;
204
237
  enableDoubleClickReply: boolean;
205
238
  buttonParams: IFeedUnreadButton;
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Рендер Unicode-эмодзi картинками Apple (тот же CDN, что vue3-emoji-picker-ru при native=false).
3
+ */
4
+ export declare const APPLE_EMOJI_CDN = "https://cdn.jsdelivr.net/npm/emoji-datasource-apple@6.0.1/img/apple/64";
5
+ /** Имена файлов emoji-datasource совпадают с полем u: все codepoints через дефис, включая fe0f/fe0e */
6
+ export declare function emojiToAppleCode(emoji: string, options?: {
7
+ stripVariationSelectors?: boolean;
8
+ }): string;
9
+ export declare function getAppleEmojiUrl(emoji: string): string;
10
+ /** Альтернативный URL, если основной codepoint не совпал с именем файла в emoji-datasource */
11
+ export declare function getAppleEmojiFallbackUrl(emoji: string): string | null;
12
+ export declare function createAppleEmojiImgHtml(emoji: string): string;
13
+ /** Plain text → HTML с Apple-эмодзi (для зеркала инпута) */
14
+ export declare function textToAppleEmojiHtml(text: string): string;
15
+ /** HTML → HTML, эмодзi в текстовых узлах заменяются на img */
16
+ export declare function replaceEmojisInHtml(html: string): string;
@@ -4,6 +4,7 @@ export * from './useImmediateDebouncedRef';
4
4
  export * from './useMessageDraft';
5
5
  export * from './useSearchModel';
6
6
  export * from './useTheme';
7
+ export * from './useEmojiNative';
7
8
  export * from './modals';
8
9
  export * from './validators';
9
10
  export * from './messages';
@@ -0,0 +1,11 @@
1
+ import type { Reply } from '@/types';
2
+ export interface ReplyMessageSource {
3
+ messageId: string | number;
4
+ type?: string;
5
+ text?: string;
6
+ url?: string;
7
+ filename?: string;
8
+ header?: string;
9
+ callDuration?: string;
10
+ }
11
+ export declare function buildReplyPayload(message: ReplyMessageSource, fallbackType: string): Reply;
@@ -2,3 +2,5 @@ export * from './useMessageActions';
2
2
  export * from './useMessageLinks';
3
3
  export * from './useChannelAccentColor';
4
4
  export * from './useSubtextTooltip';
5
+ export * from './useStartReply';
6
+ export * from './buildReplyPayload';
@@ -0,0 +1,6 @@
1
+ import type { Reply } from '@/types';
2
+ export declare function showReplyPreview(chatAppId: string): void;
3
+ export declare function hideReplyPreview(chatAppId: string): void;
4
+ export declare function useStartReply(chatAppId: string): {
5
+ startReply: (reply: Reply) => void;
6
+ };
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Общий флаг native/3D-эмодзи для инстанса чата (ключ — chatAppId).
3
+ * Источник правды — prop `native` у ButtonEmojiPicker.
4
+ */
5
+ export declare const useEmojiNative: (outId: string) => {
6
+ isNative: import("vue").ComputedRef<boolean>;
7
+ getNative: () => boolean;
8
+ setNative: (native: boolean) => void;
9
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mobilon-dev/chotto",
3
- "version": "0.3.83",
3
+ "version": "0.3.85",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",