@dialpad/dialtone-vue 3.119.0 → 3.120.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 (281) hide show
  1. package/dist/chunks/_plugin-vue_export-helper-6_y-gaV6.js +2 -0
  2. package/dist/chunks/_plugin-vue_export-helper-6_y-gaV6.js.map +1 -0
  3. package/dist/chunks/dropdown-UO3UJalk.js +2 -0
  4. package/dist/chunks/dropdown-UO3UJalk.js.map +1 -0
  5. package/dist/chunks/dropdown_constants-KHFvVI2L.js +2 -0
  6. package/dist/chunks/dropdown_constants-KHFvVI2L.js.map +1 -0
  7. package/dist/chunks/icon_constants-2S_OSQ1t.js +2 -0
  8. package/dist/chunks/icon_constants-2S_OSQ1t.js.map +1 -0
  9. package/dist/chunks/index-6tYeqbgP.js +3 -0
  10. package/dist/chunks/index-6tYeqbgP.js.map +1 -0
  11. package/dist/chunks/index-IBtQ5jRJ.js +2 -0
  12. package/dist/chunks/index-IBtQ5jRJ.js.map +1 -0
  13. package/dist/chunks/input-0Uksk4DP.js +2 -0
  14. package/dist/chunks/input-0Uksk4DP.js.map +1 -0
  15. package/dist/chunks/input_group-AS760Cp7.js +2 -0
  16. package/dist/chunks/input_group-AS760Cp7.js.map +1 -0
  17. package/dist/chunks/keyboard_list_navigation-N74Bpdq7.js +2 -0
  18. package/dist/chunks/keyboard_list_navigation-N74Bpdq7.js.map +1 -0
  19. package/dist/chunks/link_constants-Kn6kP4i1.js +2 -0
  20. package/dist/chunks/link_constants-Kn6kP4i1.js.map +1 -0
  21. package/dist/chunks/list_item_constants-Tsz5CO1m.js +2 -0
  22. package/dist/chunks/list_item_constants-Tsz5CO1m.js.map +1 -0
  23. package/dist/chunks/modal-qEzlo0Sj.js +2 -0
  24. package/dist/chunks/modal-qEzlo0Sj.js.map +1 -0
  25. package/dist/chunks/notice_action-jO199emq.js +2 -0
  26. package/dist/chunks/notice_action-jO199emq.js.map +1 -0
  27. package/dist/chunks/notice_constants-mC6al2Dm.js +2 -0
  28. package/dist/chunks/notice_constants-mC6al2Dm.js.map +1 -0
  29. package/dist/chunks/popover_constants-hOEhklvr.js +2 -0
  30. package/dist/chunks/popover_constants-hOEhklvr.js.map +1 -0
  31. package/dist/chunks/sr_only_close_button-iD7s1Pbj.js +3 -0
  32. package/dist/chunks/sr_only_close_button-iD7s1Pbj.js.map +1 -0
  33. package/dist/chunks/stack_constants-m9Ickqw0.js +2 -0
  34. package/dist/chunks/stack_constants-m9Ickqw0.js.map +1 -0
  35. package/dist/chunks/tab-at7WWglk.js +2 -0
  36. package/dist/chunks/tab-at7WWglk.js.map +1 -0
  37. package/dist/component-documentation.json +1 -1
  38. package/dist/dialtone-vue.cjs +2 -0
  39. package/dist/dialtone-vue.cjs.map +1 -0
  40. package/dist/lib/attachment-carousel.cjs +2 -0
  41. package/dist/lib/attachment-carousel.cjs.map +1 -0
  42. package/dist/lib/attachment-carousel.js +2 -3
  43. package/dist/lib/attachment-carousel.js.map +1 -1
  44. package/dist/lib/avatar.cjs +2 -0
  45. package/dist/lib/avatar.cjs.map +1 -0
  46. package/dist/lib/avatar.js +2 -3
  47. package/dist/lib/avatar.js.map +1 -1
  48. package/dist/lib/badge.cjs +2 -0
  49. package/dist/lib/badge.cjs.map +1 -0
  50. package/dist/lib/badge.js +2 -3
  51. package/dist/lib/badge.js.map +1 -1
  52. package/dist/lib/banner.cjs +3 -0
  53. package/dist/lib/banner.cjs.map +1 -0
  54. package/dist/lib/banner.js +6 -7
  55. package/dist/lib/banner.js.map +1 -1
  56. package/dist/lib/breadcrumbs.cjs +2 -0
  57. package/dist/lib/breadcrumbs.cjs.map +1 -0
  58. package/dist/lib/button-group.cjs +2 -0
  59. package/dist/lib/button-group.cjs.map +1 -0
  60. package/dist/lib/button.cjs +2 -0
  61. package/dist/lib/button.cjs.map +1 -0
  62. package/dist/lib/callbar-button-with-popover.cjs +2 -0
  63. package/dist/lib/callbar-button-with-popover.cjs.map +1 -0
  64. package/dist/lib/callbar-button-with-popover.js +9 -10
  65. package/dist/lib/callbar-button-with-popover.js.map +1 -1
  66. package/dist/lib/callbar-button.cjs +2 -0
  67. package/dist/lib/callbar-button.cjs.map +1 -0
  68. package/dist/lib/callbox.cjs +2 -0
  69. package/dist/lib/callbox.cjs.map +1 -0
  70. package/dist/lib/callbox.js +2 -3
  71. package/dist/lib/callbox.js.map +1 -1
  72. package/dist/lib/card.cjs +2 -0
  73. package/dist/lib/card.cjs.map +1 -0
  74. package/dist/lib/checkbox-group.cjs +2 -0
  75. package/dist/lib/checkbox-group.cjs.map +1 -0
  76. package/dist/lib/checkbox.cjs +2 -0
  77. package/dist/lib/checkbox.cjs.map +1 -0
  78. package/dist/lib/chip.cjs +2 -0
  79. package/dist/lib/chip.cjs.map +1 -0
  80. package/dist/lib/chip.js +10 -11
  81. package/dist/lib/chip.js.map +1 -1
  82. package/dist/lib/codeblock.cjs +3 -0
  83. package/dist/lib/codeblock.cjs.map +1 -0
  84. package/dist/lib/collapsible.cjs +2 -0
  85. package/dist/lib/collapsible.cjs.map +1 -0
  86. package/dist/lib/collapsible.js +7 -8
  87. package/dist/lib/collapsible.js.map +1 -1
  88. package/dist/lib/combobox-multi-select.cjs +2 -0
  89. package/dist/lib/combobox-multi-select.cjs.map +1 -0
  90. package/dist/lib/combobox-with-popover.cjs +2 -0
  91. package/dist/lib/combobox-with-popover.cjs.map +1 -0
  92. package/dist/lib/combobox.cjs +2 -0
  93. package/dist/lib/combobox.cjs.map +1 -0
  94. package/dist/lib/constants.cjs +2 -0
  95. package/dist/lib/constants.cjs.map +1 -0
  96. package/dist/lib/contact-info.cjs +2 -0
  97. package/dist/lib/contact-info.cjs.map +1 -0
  98. package/dist/lib/contact-info.js +2 -3
  99. package/dist/lib/contact-info.js.map +1 -1
  100. package/dist/lib/contact-row.cjs +2 -0
  101. package/dist/lib/contact-row.cjs.map +1 -0
  102. package/dist/lib/datepicker.cjs +2 -0
  103. package/dist/lib/datepicker.cjs.map +1 -0
  104. package/dist/lib/datepicker.js +12 -13
  105. package/dist/lib/datepicker.js.map +1 -1
  106. package/dist/lib/dates.cjs +2 -0
  107. package/dist/lib/dates.cjs.map +1 -0
  108. package/dist/lib/description-list.cjs +2 -0
  109. package/dist/lib/description-list.cjs.map +1 -0
  110. package/dist/lib/dropdown.cjs +2 -0
  111. package/dist/lib/dropdown.cjs.map +1 -0
  112. package/dist/lib/dropdown.js +6 -7
  113. package/dist/lib/dropdown.js.map +1 -1
  114. package/dist/lib/editor.cjs +2 -0
  115. package/dist/lib/editor.cjs.map +1 -0
  116. package/dist/lib/emoji-picker.cjs +2 -0
  117. package/dist/lib/emoji-picker.cjs.map +1 -0
  118. package/dist/lib/emoji-picker.js +2 -3
  119. package/dist/lib/emoji-picker.js.map +1 -1
  120. package/dist/lib/emoji-row.cjs +2 -0
  121. package/dist/lib/emoji-row.cjs.map +1 -0
  122. package/dist/lib/emoji-text-wrapper.cjs +2 -0
  123. package/dist/lib/emoji-text-wrapper.cjs.map +1 -0
  124. package/dist/lib/emoji.cjs +2 -0
  125. package/dist/lib/emoji.cjs.map +1 -0
  126. package/dist/lib/feed-item-row.cjs +2 -0
  127. package/dist/lib/feed-item-row.cjs.map +1 -0
  128. package/dist/lib/feed-item-row.js +11 -12
  129. package/dist/lib/feed-item-row.js.map +1 -1
  130. package/dist/lib/feed-pill.cjs +2 -0
  131. package/dist/lib/feed-pill.cjs.map +1 -0
  132. package/dist/lib/feed-pill.js +2 -3
  133. package/dist/lib/feed-pill.js.map +1 -1
  134. package/dist/lib/general-row.cjs +2 -0
  135. package/dist/lib/general-row.cjs.map +1 -0
  136. package/dist/lib/group-row.cjs +2 -0
  137. package/dist/lib/group-row.cjs.map +1 -0
  138. package/dist/lib/group-row.js +1 -1
  139. package/dist/lib/grouped-chip.cjs +2 -0
  140. package/dist/lib/grouped-chip.cjs.map +1 -0
  141. package/dist/lib/grouped-chip.js +5 -6
  142. package/dist/lib/grouped-chip.js.map +1 -1
  143. package/dist/lib/hovercard.cjs +2 -0
  144. package/dist/lib/hovercard.cjs.map +1 -0
  145. package/dist/lib/hovercard.js +7 -8
  146. package/dist/lib/hovercard.js.map +1 -1
  147. package/dist/lib/icon.cjs +2 -0
  148. package/dist/lib/icon.cjs.map +1 -0
  149. package/dist/lib/icon.js +20 -51
  150. package/dist/lib/icon.js.map +1 -1
  151. package/dist/lib/image-viewer.cjs +2 -0
  152. package/dist/lib/image-viewer.cjs.map +1 -0
  153. package/dist/lib/image-viewer.js +9 -10
  154. package/dist/lib/image-viewer.js.map +1 -1
  155. package/dist/lib/input-group.cjs +2 -0
  156. package/dist/lib/input-group.cjs.map +1 -0
  157. package/dist/lib/input.cjs +2 -0
  158. package/dist/lib/input.cjs.map +1 -0
  159. package/dist/lib/item-layout.cjs +2 -0
  160. package/dist/lib/item-layout.cjs.map +1 -0
  161. package/dist/lib/ivr-node.cjs +2 -0
  162. package/dist/lib/ivr-node.cjs.map +1 -0
  163. package/dist/lib/ivr-node.js +4 -5
  164. package/dist/lib/ivr-node.js.map +1 -1
  165. package/dist/lib/keyboard-shortcut.cjs +2 -0
  166. package/dist/lib/keyboard-shortcut.cjs.map +1 -0
  167. package/dist/lib/keyboard-shortcut.js +4 -5
  168. package/dist/lib/keyboard-shortcut.js.map +1 -1
  169. package/dist/lib/lazy-show.cjs +2 -0
  170. package/dist/lib/lazy-show.cjs.map +1 -0
  171. package/dist/lib/link.cjs +2 -0
  172. package/dist/lib/link.cjs.map +1 -0
  173. package/dist/lib/list-item-group.cjs +2 -0
  174. package/dist/lib/list-item-group.cjs.map +1 -0
  175. package/dist/lib/list-item.cjs +2 -0
  176. package/dist/lib/list-item.cjs.map +1 -0
  177. package/dist/lib/list-item.js +2 -3
  178. package/dist/lib/list-item.js.map +1 -1
  179. package/dist/lib/message-input.cjs +2 -0
  180. package/dist/lib/message-input.cjs.map +1 -0
  181. package/dist/lib/message-input.js +148 -100
  182. package/dist/lib/message-input.js.map +1 -1
  183. package/dist/lib/mixins.cjs +2 -0
  184. package/dist/lib/mixins.cjs.map +1 -0
  185. package/dist/lib/modal.cjs +3 -0
  186. package/dist/lib/modal.cjs.map +1 -0
  187. package/dist/lib/modal.js +11 -12
  188. package/dist/lib/modal.js.map +1 -1
  189. package/dist/lib/notice.cjs +2 -0
  190. package/dist/lib/notice.cjs.map +1 -0
  191. package/dist/lib/notice.js +2 -3
  192. package/dist/lib/notice.js.map +1 -1
  193. package/dist/lib/pagination.cjs +2 -0
  194. package/dist/lib/pagination.cjs.map +1 -0
  195. package/dist/lib/pagination.js +2 -3
  196. package/dist/lib/pagination.js.map +1 -1
  197. package/dist/lib/popover.cjs +2 -0
  198. package/dist/lib/popover.cjs.map +1 -0
  199. package/dist/lib/popover.js +4 -5
  200. package/dist/lib/popover.js.map +1 -1
  201. package/dist/lib/presence.cjs +2 -0
  202. package/dist/lib/presence.cjs.map +1 -0
  203. package/dist/lib/radio-group.cjs +2 -0
  204. package/dist/lib/radio-group.cjs.map +1 -0
  205. package/dist/lib/radio.cjs +2 -0
  206. package/dist/lib/radio.cjs.map +1 -0
  207. package/dist/lib/rich-text-editor.cjs +2 -0
  208. package/dist/lib/rich-text-editor.cjs.map +1 -0
  209. package/dist/lib/rich-text-editor.js +174 -142
  210. package/dist/lib/rich-text-editor.js.map +1 -1
  211. package/dist/lib/root-layout.cjs +2 -0
  212. package/dist/lib/root-layout.cjs.map +1 -0
  213. package/dist/lib/scroller.cjs +2 -0
  214. package/dist/lib/scroller.cjs.map +1 -0
  215. package/dist/lib/select-menu.cjs +2 -0
  216. package/dist/lib/select-menu.cjs.map +1 -0
  217. package/dist/lib/settings-menu-button.cjs +2 -0
  218. package/dist/lib/settings-menu-button.cjs.map +1 -0
  219. package/dist/lib/settings-menu-button.js +2 -3
  220. package/dist/lib/settings-menu-button.js.map +1 -1
  221. package/dist/lib/skeleton.cjs +2 -0
  222. package/dist/lib/skeleton.cjs.map +1 -0
  223. package/dist/lib/stack.cjs +2 -0
  224. package/dist/lib/stack.cjs.map +1 -0
  225. package/dist/lib/tabs.cjs +2 -0
  226. package/dist/lib/tabs.cjs.map +1 -0
  227. package/dist/lib/time-pill.cjs +2 -0
  228. package/dist/lib/time-pill.cjs.map +1 -0
  229. package/dist/lib/toast.cjs +2 -0
  230. package/dist/lib/toast.cjs.map +1 -0
  231. package/dist/lib/toast.js +2 -3
  232. package/dist/lib/toast.js.map +1 -1
  233. package/dist/lib/toggle.cjs +2 -0
  234. package/dist/lib/toggle.cjs.map +1 -0
  235. package/dist/lib/tooltip-directive.cjs +2 -0
  236. package/dist/lib/tooltip-directive.cjs.map +1 -0
  237. package/dist/lib/tooltip.cjs +2 -0
  238. package/dist/lib/tooltip.cjs.map +1 -0
  239. package/dist/lib/top-banner-info.cjs +2 -0
  240. package/dist/lib/top-banner-info.cjs.map +1 -0
  241. package/dist/lib/unread-pill.cjs +2 -0
  242. package/dist/lib/unread-pill.cjs.map +1 -0
  243. package/dist/lib/unread-pill.js +2 -3
  244. package/dist/lib/unread-pill.js.map +1 -1
  245. package/dist/lib/utils.cjs +2 -0
  246. package/dist/lib/utils.cjs.map +1 -0
  247. package/dist/lib/validation-messages.cjs +2 -0
  248. package/dist/lib/validation-messages.cjs.map +1 -0
  249. package/dist/lib/validators.cjs +2 -0
  250. package/dist/lib/validators.cjs.map +1 -0
  251. package/dist/style.css +1 -1
  252. package/dist/types/components/avatar/avatar.vue.d.ts +1 -1
  253. package/dist/types/components/button/button.vue.d.ts +2 -2
  254. package/dist/types/components/card/card.vue.d.ts +1 -1
  255. package/dist/types/components/chip/chip.vue.d.ts +1 -1
  256. package/dist/types/components/collapsible/collapsible.vue.d.ts +2 -2
  257. package/dist/types/components/combobox/combobox.vue.d.ts +1 -1
  258. package/dist/types/components/dropdown/dropdown.vue.d.ts +1 -1
  259. package/dist/types/components/emoji/emoji.vue.d.ts +1 -1
  260. package/dist/types/components/icon/icon.vue.d.ts +1 -19
  261. package/dist/types/components/icon/icon.vue.d.ts.map +1 -1
  262. package/dist/types/components/list_item_group/list_item_group.vue.d.ts +1 -1
  263. package/dist/types/components/modal/modal.vue.d.ts +2 -2
  264. package/dist/types/components/popover/popover_header_footer.vue.d.ts +1 -1
  265. package/dist/types/components/rich_text_editor/rich_text_editor.vue.d.ts +91 -1
  266. package/dist/types/components/rich_text_editor/rich_text_editor.vue.d.ts.map +1 -1
  267. package/dist/types/components/root_layout/root_layout.vue.d.ts +1 -1
  268. package/dist/types/components/skeleton/skeleton-list-item.vue.d.ts +1 -1
  269. package/dist/types/components/skeleton/skeleton-paragraph.vue.d.ts +3 -3
  270. package/dist/types/components/skeleton/skeleton-shape.vue.d.ts +2 -2
  271. package/dist/types/components/skeleton/skeleton-text.vue.d.ts +2 -2
  272. package/dist/types/components/skeleton/skeleton.vue.d.ts +1 -1
  273. package/dist/types/components/tooltip/tooltip.vue.d.ts +2 -2
  274. package/dist/types/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts +1 -1
  275. package/dist/types/recipes/comboboxes/combobox_multi_select/combobox_multi_select.vue.d.ts +1 -1
  276. package/dist/types/recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue.d.ts +2 -2
  277. package/dist/types/recipes/conversation_view/message_input/message_input.vue.d.ts +90 -0
  278. package/dist/types/recipes/conversation_view/message_input/message_input.vue.d.ts.map +1 -1
  279. package/dist/types/recipes/leftbar/general_row/general_row.vue.d.ts +1 -1
  280. package/dist/types/recipes/leftbar/general_row/leftbar_general_row_icon.vue.d.ts +1 -1
  281. package/package.json +9 -8
@@ -1,11 +1,11 @@
1
- import { resolveComponent as l, openBlock as m, createElementBlock as k, normalizeClass as S, withKeys as v, withModifiers as L, createElementVNode as u, normalizeStyle as D, createVNode as s, mergeProps as P, renderSlot as F, createBlock as c, withCtx as r, createCommentVNode as d, withDirectives as I, toDisplayString as h, vShow as B, createSlots as E } from "vue";
1
+ import { resolveComponent as s, openBlock as m, createElementBlock as k, normalizeClass as w, withKeys as C, withModifiers as v, createElementVNode as u, normalizeStyle as L, createVNode as r, mergeProps as S, renderSlot as I, createBlock as c, withCtx as l, createCommentVNode as d, withDirectives as D, toDisplayString as h, vShow as F, createSlots as E } from "vue";
2
2
  import { _ as T } from "../chunks/_plugin-vue_export-helper-hUChTQA_.js";
3
3
  import { DtButton as x } from "./button.js";
4
4
  import { DtEmojiPicker as O } from "./emoji-picker.js";
5
5
  import { DtIcon as _ } from "./icon.js";
6
6
  import { DtInput as V } from "./input.js";
7
- import { DtPopover as M } from "./popover.js";
8
- import { DtRichTextEditor as R, RICH_TEXT_EDITOR_AUTOFOCUS_TYPES as U, RICH_TEXT_EDITOR_OUTPUT_FORMATS as q } from "./rich-text-editor.js";
7
+ import { DtPopover as q } from "./popover.js";
8
+ import { DtRichTextEditor as M, RICH_TEXT_EDITOR_AUTOFOCUS_TYPES as U, RICH_TEXT_EDITOR_OUTPUT_FORMATS as R } from "./rich-text-editor.js";
9
9
  import { DtTooltip as z } from "./tooltip.js";
10
10
  import "./utils.js";
11
11
  import "./constants.js";
@@ -18,7 +18,6 @@ import "./validation-messages.js";
18
18
  import "@dialpad/dialtone-icons/vue3";
19
19
  import "../chunks/icon_constants-OpYAAKwF.js";
20
20
  import "@dialpad/dialtone-icons/icons.json";
21
- import "./skeleton.js";
22
21
  import "../chunks/popover_constants-qjlEkroB.js";
23
22
  import "tippy.js";
24
23
  import "./lazy-show.js";
@@ -44,6 +43,7 @@ import "@tiptap/extension-text-align";
44
43
  import "@tiptap/core";
45
44
  import "../chunks/index-mRmwpCBG.js";
46
45
  import "emoji-regex";
46
+ import "./skeleton.js";
47
47
  import "@tiptap/pm/state";
48
48
  import "@tiptap/suggestion";
49
49
  import "./list-item.js";
@@ -62,8 +62,8 @@ const A = {
62
62
  DtEmojiPicker: O,
63
63
  DtIcon: _,
64
64
  DtInput: V,
65
- DtPopover: M,
66
- DtRichTextEditor: R,
65
+ DtPopover: q,
66
+ DtRichTextEditor: M,
67
67
  DtTooltip: z
68
68
  },
69
69
  mixins: [],
@@ -115,8 +115,8 @@ const A = {
115
115
  autoFocus: {
116
116
  type: [Boolean, String, Number],
117
117
  default: !1,
118
- validator(t) {
119
- return typeof t == "string" ? U.includes(t) : !0;
118
+ validator(i) {
119
+ return typeof i == "string" ? U.includes(i) : !0;
120
120
  }
121
121
  },
122
122
  /**
@@ -128,8 +128,8 @@ const A = {
128
128
  outputFormat: {
129
129
  type: String,
130
130
  default: "text",
131
- validator(t) {
132
- return q.includes(t);
131
+ validator(i) {
132
+ return R.includes(i);
133
133
  }
134
134
  },
135
135
  /**
@@ -172,14 +172,14 @@ const A = {
172
172
  emojiPickerProps: {
173
173
  type: Object,
174
174
  default: () => ({}),
175
- validate(t) {
175
+ validate(i) {
176
176
  return [
177
177
  "searchNoResultsLabel",
178
178
  "searchResultsLabel",
179
179
  "searchPlaceholderLabel",
180
180
  "skinSelectorButtonTooltipLabel",
181
181
  "tabSetLabels"
182
- ].every((e) => t[e] != null);
182
+ ].every((e) => i[e] != null);
183
183
  }
184
184
  },
185
185
  /**
@@ -236,6 +236,48 @@ const A = {
236
236
  mentionSuggestion: {
237
237
  type: Object,
238
238
  default: null
239
+ },
240
+ /**
241
+ * Whether the input allows for block quote.
242
+ */
243
+ allowBlockquote: {
244
+ type: Boolean,
245
+ default: !0
246
+ },
247
+ /**
248
+ * Whether the input allows for bold to be introduced in the text.
249
+ */
250
+ allowBold: {
251
+ type: Boolean,
252
+ default: !0
253
+ },
254
+ /**
255
+ * Whether the input allows for bullet list to be introduced in the text.
256
+ */
257
+ allowBulletList: {
258
+ type: Boolean,
259
+ default: !0
260
+ },
261
+ /**
262
+ * Whether the input allows for italic to be introduced in the text.
263
+ */
264
+ allowItalic: {
265
+ type: Boolean,
266
+ default: !0
267
+ },
268
+ /**
269
+ * Whether the input allows for strike to be introduced in the text.
270
+ */
271
+ allowStrike: {
272
+ type: Boolean,
273
+ default: !0
274
+ },
275
+ /**
276
+ * Whether the input allows for underline to be introduced in the text.
277
+ */
278
+ allowUnderline: {
279
+ type: Boolean,
280
+ default: !0
239
281
  }
240
282
  },
241
283
  emits: [
@@ -341,40 +383,40 @@ const A = {
341
383
  }
342
384
  },
343
385
  watch: {
344
- modelValue(t) {
345
- this.internalInputValue = t;
386
+ modelValue(i) {
387
+ this.internalInputValue = i;
346
388
  }
347
389
  },
348
390
  methods: {
349
- onDrag(t) {
350
- t.stopPropagation(), t.preventDefault();
351
- },
352
- onDrop(t) {
353
- t.stopPropagation(), t.preventDefault();
354
- const e = t.dataTransfer, i = Array.from(e.files);
355
- this.$emit("add-media", i);
356
- },
357
- onPaste(t) {
358
- if (t.clipboardData.files.length) {
359
- t.stopPropagation(), t.preventDefault();
360
- const e = [...t.clipboardData.files];
391
+ onDrag(i) {
392
+ i.stopPropagation(), i.preventDefault();
393
+ },
394
+ onDrop(i) {
395
+ i.stopPropagation(), i.preventDefault();
396
+ const e = i.dataTransfer, t = Array.from(e.files);
397
+ this.$emit("add-media", t);
398
+ },
399
+ onPaste(i) {
400
+ if (i.clipboardData.files.length) {
401
+ i.stopPropagation(), i.preventDefault();
402
+ const e = [...i.clipboardData.files];
361
403
  this.$emit("paste-media", e);
362
404
  }
363
405
  },
364
- onSkinTone(t) {
365
- this.$emit("skin-tone", t);
406
+ onSkinTone(i) {
407
+ this.$emit("skin-tone", i);
366
408
  },
367
- onSelectEmoji(t) {
368
- if (!t) {
409
+ onSelectEmoji(i) {
410
+ if (!i) {
369
411
  this.emojiPickerOpened = !1;
370
412
  return;
371
413
  }
372
414
  this.$refs.richTextEditor.editor.commands.insertContent({
373
415
  type: "emoji",
374
416
  attrs: {
375
- code: t.shortname
417
+ code: i.shortname
376
418
  }
377
- }), this.emojiPickerOpened = !1, this.$emit("selected-emoji", t);
419
+ }), this.emojiPickerOpened = !1, this.$emit("selected-emoji", i);
378
420
  },
379
421
  onSelectImage() {
380
422
  this.$refs.messageInputImageUpload.$refs.input.click();
@@ -391,24 +433,24 @@ const A = {
391
433
  onCancel() {
392
434
  this.$emit("cancel");
393
435
  },
394
- onFocus(t) {
436
+ onFocus(i) {
395
437
  var e;
396
- this.hasFocus = !0, (e = this.$refs.richTextEditor) == null || e.focusEditor(), this.$emit("focus", t);
438
+ this.hasFocus = !0, (e = this.$refs.richTextEditor) == null || e.focusEditor(), this.$emit("focus", i);
397
439
  },
398
- onBlur(t) {
399
- this.hasFocus = !1, this.$emit("blur", t);
440
+ onBlur(i) {
441
+ this.hasFocus = !1, this.$emit("blur", i);
400
442
  },
401
- onInput(t) {
402
- this.$emit("input", t);
443
+ onInput(i) {
444
+ this.$emit("input", i);
403
445
  }
404
446
  }
405
447
  }, H = { class: "d-d-flex d-jc-space-between d-mx8 d-my4" }, N = { class: "d-d-flex" }, K = { class: "d-d-flex" }, W = { key: 0 };
406
- function X(t, e, i, Y, a, o) {
407
- const j = l("dt-rich-text-editor"), g = l("dt-icon"), p = l("dt-button"), w = l("dt-input"), f = l("dt-tooltip"), y = l("dt-emoji-picker"), C = l("dt-popover");
448
+ function X(i, e, t, Y, a, o) {
449
+ const P = s("dt-rich-text-editor"), g = s("dt-icon"), p = s("dt-button"), j = s("dt-input"), f = s("dt-tooltip"), y = s("dt-emoji-picker"), B = s("dt-popover");
408
450
  return m(), k("div", {
409
451
  "data-qa": "dt-message-input",
410
452
  role: "presentation",
411
- class: S([
453
+ class: w([
412
454
  "d-d-flex",
413
455
  "d-fd-column",
414
456
  "d-bar8",
@@ -419,68 +461,74 @@ function X(t, e, i, Y, a, o) {
419
461
  ]),
420
462
  onClick: e[15] || (e[15] = (n) => {
421
463
  var b;
422
- return (b = t.$refs.richTextEditor) == null ? void 0 : b.focusEditor();
464
+ return (b = i.$refs.richTextEditor) == null ? void 0 : b.focusEditor();
423
465
  }),
424
466
  onDragEnter: e[16] || (e[16] = (...n) => o.onDrag && o.onDrag(...n)),
425
467
  onDragOver: e[17] || (e[17] = (...n) => o.onDrag && o.onDrag(...n)),
426
468
  onDrop: e[18] || (e[18] = (...n) => o.onDrop && o.onDrop(...n)),
427
- onKeydown: e[19] || (e[19] = v(L((...n) => o.onSend && o.onSend(...n), ["exact"]), ["enter"])),
469
+ onKeydown: e[19] || (e[19] = C(v((...n) => o.onSend && o.onSend(...n), ["exact"]), ["enter"])),
428
470
  onPaste: e[20] || (e[20] = (...n) => o.onPaste && o.onPaste(...n))
429
471
  }, [
430
472
  u("div", {
431
473
  class: "d-of-auto d-mx16 d-mt8 d-mb4",
432
- style: D({ "max-height": i.maxHeight })
474
+ style: L({ "max-height": t.maxHeight })
433
475
  }, [
434
- s(j, P({
476
+ r(P, S({
435
477
  ref: "richTextEditor",
436
478
  modelValue: a.internalInputValue,
437
479
  "onUpdate:modelValue": e[0] || (e[0] = (n) => a.internalInputValue = n),
438
- editable: i.editable,
439
- "input-aria-label": i.inputAriaLabel,
440
- "input-class": i.inputClass,
441
- "output-format": i.outputFormat,
442
- "auto-focus": i.autoFocus,
443
- link: i.link,
444
- placeholder: i.placeholder,
445
- "mention-suggestion": i.mentionSuggestion
446
- }, t.$attrs, {
480
+ "allow-blockquote": t.allowBlockquote,
481
+ "allow-bold": t.allowBold,
482
+ "allow-bullet-list": t.allowBulletList,
483
+ "allow-italic": t.allowItalic,
484
+ "allow-strike": t.allowStrike,
485
+ "allow-underline": t.allowUnderline,
486
+ editable: t.editable,
487
+ "input-aria-label": t.inputAriaLabel,
488
+ "input-class": t.inputClass,
489
+ "output-format": t.outputFormat,
490
+ "auto-focus": t.autoFocus,
491
+ link: t.link,
492
+ placeholder: t.placeholder,
493
+ "mention-suggestion": t.mentionSuggestion
494
+ }, i.$attrs, {
447
495
  onFocus: o.onFocus,
448
496
  onBlur: o.onBlur,
449
497
  onInput: e[1] || (e[1] = (n) => o.onInput(n))
450
- }), null, 16, ["modelValue", "editable", "input-aria-label", "input-class", "output-format", "auto-focus", "link", "placeholder", "mention-suggestion", "onFocus", "onBlur"])
498
+ }), null, 16, ["modelValue", "allow-blockquote", "allow-bold", "allow-bullet-list", "allow-italic", "allow-strike", "allow-underline", "editable", "input-aria-label", "input-class", "output-format", "auto-focus", "link", "placeholder", "mention-suggestion", "onFocus", "onBlur"])
451
499
  ], 4),
452
- F(t.$slots, "middle"),
500
+ I(i.$slots, "middle"),
453
501
  u("section", H, [
454
502
  u("div", N, [
455
- i.showImagePicker ? (m(), c(f, {
503
+ t.showImagePicker ? (m(), c(f, {
456
504
  key: 0,
457
505
  placement: "top-start",
458
- message: i.showImagePicker.tooltipLabel,
506
+ message: t.showImagePicker.tooltipLabel,
459
507
  offset: [-4, -4]
460
508
  }, {
461
- anchor: r(() => [
462
- s(p, {
509
+ anchor: l(() => [
510
+ r(p, {
463
511
  "data-qa": "dt-message-input-image-btn",
464
512
  size: "sm",
465
513
  circle: "",
466
514
  kind: a.imagePickerFocus ? "default" : "muted",
467
515
  importance: "clear",
468
- "aria-label": i.showImagePicker.ariaLabel,
516
+ "aria-label": t.showImagePicker.ariaLabel,
469
517
  onClick: o.onSelectImage,
470
518
  onMouseenter: e[2] || (e[2] = (n) => a.imagePickerFocus = !0),
471
519
  onMouseleave: e[3] || (e[3] = (n) => a.imagePickerFocus = !1),
472
520
  onFocus: e[4] || (e[4] = (n) => a.imagePickerFocus = !0),
473
521
  onBlur: e[5] || (e[5] = (n) => a.imagePickerFocus = !1)
474
522
  }, {
475
- icon: r(() => [
476
- s(g, {
523
+ icon: l(() => [
524
+ r(g, {
477
525
  name: "image",
478
526
  size: "300"
479
527
  })
480
528
  ]),
481
529
  _: 1
482
530
  }, 8, ["kind", "aria-label", "onClick"]),
483
- s(w, {
531
+ r(j, {
484
532
  ref: "messageInputImageUpload",
485
533
  "data-qa": "dt-message-input-image-input",
486
534
  type: "file",
@@ -492,7 +540,7 @@ function X(t, e, i, Y, a, o) {
492
540
  ]),
493
541
  _: 1
494
542
  }, 8, ["message"])) : d("", !0),
495
- i.showEmojiPicker ? (m(), c(C, {
543
+ t.showEmojiPicker ? (m(), c(B, {
496
544
  key: 1,
497
545
  "data-qa": "dt-message-input-emoji-picker-popover",
498
546
  open: a.emojiPickerOpened,
@@ -502,19 +550,19 @@ function X(t, e, i, Y, a, o) {
502
550
  a.emojiPickerOpened = n;
503
551
  })
504
552
  }, {
505
- anchor: r(() => [
506
- s(f, {
507
- message: i.emojiTooltipMessage,
553
+ anchor: l(() => [
554
+ r(f, {
555
+ message: t.emojiTooltipMessage,
508
556
  offset: [0, -4]
509
557
  }, {
510
- anchor: r(() => [
511
- s(p, {
558
+ anchor: l(() => [
559
+ r(p, {
512
560
  "data-qa": "dt-message-input-emoji-picker-btn",
513
561
  size: "sm",
514
562
  circle: "",
515
563
  kind: o.emojiPickerHovered ? "default" : "muted",
516
564
  importance: "clear",
517
- "aria-label": i.emojiButtonAriaLabel,
565
+ "aria-label": t.emojiButtonAriaLabel,
518
566
  offset: [0, 0],
519
567
  onClick: o.toggleEmojiPicker,
520
568
  onMouseenter: e[6] || (e[6] = (n) => a.emojiPickerFocus = !0),
@@ -522,8 +570,8 @@ function X(t, e, i, Y, a, o) {
522
570
  onFocus: e[8] || (e[8] = (n) => a.emojiPickerFocus = !0),
523
571
  onBlur: e[9] || (e[9] = (n) => a.emojiPickerFocus = !1)
524
572
  }, {
525
- icon: r(() => [
526
- s(g, {
573
+ icon: l(() => [
574
+ r(g, {
527
575
  name: o.emojiPickerHovered ? "very-satisfied" : "satisfied",
528
576
  size: "300"
529
577
  }, null, 8, ["name"])
@@ -534,8 +582,8 @@ function X(t, e, i, Y, a, o) {
534
582
  _: 1
535
583
  }, 8, ["message"])
536
584
  ]),
537
- content: r(() => [
538
- s(y, P(i.emojiPickerProps, {
585
+ content: l(() => [
586
+ r(y, S(t.emojiPickerProps, {
539
587
  onSkinTone: o.onSkinTone,
540
588
  onSelectedEmoji: o.onSelectEmoji
541
589
  }), null, 16, ["onSkinTone", "onSelectedEmoji"])
@@ -544,60 +592,60 @@ function X(t, e, i, Y, a, o) {
544
592
  }, 8, ["open"])) : d("", !0)
545
593
  ]),
546
594
  u("div", K, [
547
- i.showCharacterLimit ? (m(), c(f, {
595
+ t.showCharacterLimit ? (m(), c(f, {
548
596
  key: 0,
549
597
  class: "dt-message-input--remaining-char-tooltip",
550
598
  placement: "top-end",
551
599
  enabled: o.characterLimitTooltipEnabled,
552
- message: i.showCharacterLimit.message,
600
+ message: t.showCharacterLimit.message,
553
601
  offset: [10, -8]
554
602
  }, {
555
- anchor: r(() => [
556
- I(u("p", {
603
+ anchor: l(() => [
604
+ D(u("p", {
557
605
  class: "d-fc-error d-mr16 dt-message-input--remaining-char",
558
606
  "data-qa": "dt-message-input-character-limit"
559
- }, h(i.showCharacterLimit.count - o.inputLength), 513), [
560
- [B, o.displayCharacterLimitWarning]
607
+ }, h(t.showCharacterLimit.count - o.inputLength), 513), [
608
+ [F, o.displayCharacterLimitWarning]
561
609
  ])
562
610
  ]),
563
611
  _: 1
564
612
  }, 8, ["enabled", "message"])) : d("", !0),
565
- i.showCancel ? (m(), c(p, {
613
+ t.showCancel ? (m(), c(p, {
566
614
  key: 1,
567
615
  "data-qa": "dt-message-input-cancel-button",
568
616
  class: "dt-message-input--cancel-button",
569
617
  size: "sm",
570
618
  kind: "muted",
571
619
  importance: "clear",
572
- "aria-label": i.showCancel.ariaLabel,
620
+ "aria-label": t.showCancel.ariaLabel,
573
621
  onClick: o.onCancel
574
622
  }, {
575
- default: r(() => [
576
- u("p", null, h(i.showCancel.text), 1)
623
+ default: l(() => [
624
+ u("p", null, h(t.showCancel.text), 1)
577
625
  ]),
578
626
  _: 1
579
627
  }, 8, ["aria-label", "onClick"])) : d("", !0),
580
- i.showSend ? (m(), c(f, {
628
+ t.showSend ? (m(), c(f, {
581
629
  key: 2,
582
630
  placement: "top-end",
583
- enabled: !i.showSend,
584
- message: i.showSend.tooltipLabel,
631
+ enabled: !t.showSend,
632
+ message: t.showSend.tooltipLabel,
585
633
  show: !o.isSendDisabled && a.sendButtonFocus,
586
634
  offset: [6, -8]
587
635
  }, {
588
- anchor: r(() => [
589
- s(p, {
636
+ anchor: l(() => [
637
+ r(p, {
590
638
  "data-qa": "dt-message-input-send-btn",
591
639
  size: "sm",
592
640
  kind: "default",
593
641
  importance: "primary",
594
- class: S([
595
- "d-btn--circle",
642
+ class: w([
596
643
  {
597
- "message-input-button__disabled d-fc-muted": o.isSendDisabled
644
+ "message-input-button__disabled d-fc-muted": o.isSendDisabled,
645
+ "d-btn--circle": t.showSend.icon
598
646
  }
599
647
  ]),
600
- "aria-label": i.showSend.ariaLabel,
648
+ "aria-label": t.showSend.ariaLabel,
601
649
  "aria-disabled": o.isSendDisabled,
602
650
  onClick: o.onSend,
603
651
  onMouseenter: e[11] || (e[11] = (n) => a.sendButtonFocus = !0),
@@ -605,16 +653,16 @@ function X(t, e, i, Y, a, o) {
605
653
  onFocus: e[13] || (e[13] = (n) => a.sendButtonFocus = !0),
606
654
  onBlur: e[14] || (e[14] = (n) => a.sendButtonFocus = !1)
607
655
  }, E({
608
- default: r(() => [
609
- i.showSend.text ? (m(), k("p", W, h(i.showSend.text), 1)) : d("", !0)
656
+ default: l(() => [
657
+ t.showSend.text ? (m(), k("p", W, h(t.showSend.text), 1)) : d("", !0)
610
658
  ]),
611
659
  _: 2
612
660
  }, [
613
- i.showSend.icon ? {
661
+ t.showSend.icon ? {
614
662
  name: "icon",
615
- fn: r(() => [
616
- s(g, {
617
- name: i.showSend.icon,
663
+ fn: l(() => [
664
+ r(g, {
665
+ name: t.showSend.icon,
618
666
  size: "300"
619
667
  }, null, 8, ["name"])
620
668
  ]),
@@ -1 +1 @@
1
- {"version":3,"file":"message-input.js","sources":["../../recipes/conversation_view/message_input/message_input.vue"],"sourcesContent":["<!-- eslint-disable vue/no-restricted-class -->\n<template>\n <div\n data-qa=\"dt-message-input\"\n role=\"presentation\"\n :class=\"['d-d-flex', 'd-fd-column', 'd-bar8', 'd-baw1', 'd-ba', 'd-c-text',\n { 'd-bc-bold d-bs-sm': hasFocus, 'd-bc-default': !hasFocus }]\"\n @click=\"$refs.richTextEditor?.focusEditor()\"\n @drag-enter=\"onDrag\"\n @drag-over=\"onDrag\"\n @drop=\"onDrop\"\n @keydown.enter.exact=\"onSend\"\n @paste=\"onPaste\"\n >\n <!-- Some wrapper to restrict the height and show the scrollbar -->\n <div\n class=\"d-of-auto d-mx16 d-mt8 d-mb4\"\n :style=\"{ 'max-height': maxHeight }\"\n >\n <dt-rich-text-editor\n ref=\"richTextEditor\"\n v-model=\"internalInputValue\"\n :editable=\"editable\"\n :input-aria-label=\"inputAriaLabel\"\n :input-class=\"inputClass\"\n :output-format=\"outputFormat\"\n :auto-focus=\"autoFocus\"\n :link=\"link\"\n :placeholder=\"placeholder\"\n :mention-suggestion=\"mentionSuggestion\"\n v-bind=\"$attrs\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @input=\"onInput($event)\"\n />\n </div>\n <!-- @slot Slot for attachment carousel -->\n <slot name=\"middle\" />\n <!-- Section for the bottom UI -->\n <section class=\"d-d-flex d-jc-space-between d-mx8 d-my4\">\n <!-- Left content -->\n <div class=\"d-d-flex\">\n <dt-tooltip\n v-if=\"showImagePicker\"\n placement=\"top-start\"\n :message=\"showImagePicker.tooltipLabel\"\n :offset=\"[-4, -4]\"\n >\n <template #anchor>\n <dt-button\n data-qa=\"dt-message-input-image-btn\"\n size=\"sm\"\n circle\n :kind=\"imagePickerFocus ? 'default' : 'muted'\"\n importance=\"clear\"\n :aria-label=\"showImagePicker.ariaLabel\"\n @click=\"onSelectImage\"\n @mouseenter=\"imagePickerFocus = true\"\n @mouseleave=\"imagePickerFocus = false\"\n @focus=\"imagePickerFocus = true\"\n @blur=\"imagePickerFocus = false\"\n >\n <template #icon>\n <dt-icon\n name=\"image\"\n size=\"300\"\n />\n </template>\n </dt-button>\n <dt-input\n ref=\"messageInputImageUpload\"\n data-qa=\"dt-message-input-image-input\"\n type=\"file\"\n class=\"d-ps-absolute\"\n multiple\n hidden\n @input=\"onImageUpload\"\n />\n </template>\n </dt-tooltip>\n <dt-popover\n v-if=\"showEmojiPicker\"\n data-qa=\"dt-message-input-emoji-picker-popover\"\n :open=\"emojiPickerOpened\"\n initial-focus-element=\"#searchInput\"\n padding=\"none\"\n @opened=\"(open) => { emojiPickerOpened = open }\"\n >\n <template #anchor>\n <dt-tooltip\n :message=\"emojiTooltipMessage\"\n :offset=\"[0, -4]\"\n >\n <template #anchor>\n <dt-button\n data-qa=\"dt-message-input-emoji-picker-btn\"\n size=\"sm\"\n circle\n :kind=\"emojiPickerHovered ? 'default' : 'muted'\"\n importance=\"clear\"\n :aria-label=\"emojiButtonAriaLabel\"\n :offset=\"[0, 0]\"\n @click=\"toggleEmojiPicker\"\n @mouseenter=\"emojiPickerFocus = true\"\n @mouseleave=\"emojiPickerFocus = false\"\n @focus=\"emojiPickerFocus = true\"\n @blur=\"emojiPickerFocus = false\"\n >\n <template #icon>\n <dt-icon\n :name=\"!emojiPickerHovered ? 'satisfied' : 'very-satisfied'\"\n size=\"300\"\n />\n </template>\n </dt-button>\n </template>\n </dt-tooltip>\n </template>\n <template #content>\n <dt-emoji-picker\n v-bind=\"emojiPickerProps\"\n @skin-tone=\"onSkinTone\"\n @selected-emoji=\"onSelectEmoji\"\n />\n </template>\n </dt-popover>\n </div>\n <!-- Right content -->\n <div class=\"d-d-flex\">\n <!-- Optionally displayed remaining character counter -->\n <dt-tooltip\n v-if=\"Boolean(showCharacterLimit)\"\n class=\"dt-message-input--remaining-char-tooltip\"\n placement=\"top-end\"\n :enabled=\"characterLimitTooltipEnabled\"\n :message=\"showCharacterLimit.message\"\n :offset=\"[10, -8]\"\n >\n <template #anchor>\n <p\n v-show=\"displayCharacterLimitWarning\"\n class=\"d-fc-error d-mr16 dt-message-input--remaining-char\"\n data-qa=\"dt-message-input-character-limit\"\n >\n {{ showCharacterLimit.count - inputLength }}\n </p>\n </template>\n </dt-tooltip>\n\n <!-- Cancel button for edit mode -->\n <dt-button\n v-if=\"showCancel\"\n data-qa=\"dt-message-input-cancel-button\"\n class=\"dt-message-input--cancel-button\"\n size=\"sm\"\n kind=\"muted\"\n importance=\"clear\"\n :aria-label=\"showCancel.ariaLabel\"\n @click=\"onCancel\"\n >\n <p>{{ showCancel.text }}</p>\n </dt-button>\n\n <!-- Send button -->\n <dt-tooltip\n v-if=\"showSend\"\n placement=\"top-end\"\n :enabled=\"!showSend\"\n :message=\"showSend.tooltipLabel\"\n :show=\"!isSendDisabled && sendButtonFocus\"\n :offset=\"[6, -8]\"\n >\n <template #anchor>\n <!-- Right positioned UI - send button -->\n <dt-button\n data-qa=\"dt-message-input-send-btn\"\n size=\"sm\"\n kind=\"default\"\n importance=\"primary\"\n :class=\"[\n 'd-btn--circle',\n {\n 'message-input-button__disabled d-fc-muted': isSendDisabled,\n },\n ]\"\n :aria-label=\"showSend.ariaLabel\"\n :aria-disabled=\"isSendDisabled\"\n @click=\"onSend\"\n @mouseenter=\"sendButtonFocus = true\"\n @mouseleave=\"sendButtonFocus = false\"\n @focus=\"sendButtonFocus = true\"\n @blur=\"sendButtonFocus = false\"\n >\n <template\n v-if=\"showSend.icon\"\n #icon\n >\n <dt-icon\n :name=\"showSend.icon\"\n size=\"300\"\n />\n </template>\n <template\n v-if=\"showSend.text\"\n >\n <p>{{ showSend.text }}</p>\n </template>\n </dt-button>\n </template>\n </dt-tooltip>\n </div>\n </section>\n </div>\n</template>\n\n<script>\n/* eslint-disable max-lines */\nimport {\n DtRichTextEditor,\n RICH_TEXT_EDITOR_OUTPUT_FORMATS,\n RICH_TEXT_EDITOR_AUTOFOCUS_TYPES,\n} from '@/components/rich_text_editor';\nimport { DtButton } from '@/components/button';\nimport { DtIcon } from '@/components/icon';\nimport { DtEmojiPicker } from '@/components/emoji_picker';\nimport { DtPopover } from '@/components/popover';\nimport { DtInput } from '@/components/input';\nimport { DtTooltip } from '@/components/tooltip';\n\nexport default {\n name: 'DtRecipeMessageInput',\n\n components: {\n DtButton,\n DtEmojiPicker,\n DtIcon,\n DtInput,\n DtPopover,\n DtRichTextEditor,\n DtTooltip,\n },\n\n mixins: [],\n\n inheritAttrs: false,\n\n props: {\n /**\n * Value of the input. The object format should match TipTap's JSON\n * document structure: https://tiptap.dev/guide/output#option-1-json\n */\n modelValue: {\n type: [Object, String],\n default: '',\n },\n\n /**\n * Whether the input is editable\n */\n editable: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Descriptive label for the input element\n */\n inputAriaLabel: {\n type: String,\n required: true,\n default: '',\n },\n\n /**\n * Additional class name for the input element. Only accepts a String value\n * because this is passed to the editor via options. For multiple classes,\n * join them into one string, e.g. \"d-p8 d-hmx96\"\n */\n inputClass: {\n type: String,\n default: '',\n },\n\n /**\n * Whether the input should receive focus after the component has been\n * mounted. Either one of `start`, `end`, `all` or a Boolean or a Number.\n * - `start` Sets the focus to the beginning of the input\n * - `end` Sets the focus to the end of the input\n * - `all` Selects the whole contents of the input\n * - `Number` Sets the focus to a specific position in the input\n * - `true` Defaults to `start`\n * - `false` Disables autofocus\n * @values true, false, start, end, all, number\n */\n autoFocus: {\n type: [Boolean, String, Number],\n default: false,\n validator (autoFocus) {\n if (typeof autoFocus === 'string') {\n return RICH_TEXT_EDITOR_AUTOFOCUS_TYPES.includes(autoFocus);\n }\n return true;\n },\n },\n\n /**\n * The output format that the editor uses when emitting the \"@input\" event.\n * One of `text`, `json`, `html`. See https://tiptap.dev/guide/output for\n * examples.\n * @values text, json, html\n */\n outputFormat: {\n type: String,\n default: 'text',\n validator (outputFormat) {\n return RICH_TEXT_EDITOR_OUTPUT_FORMATS.includes(outputFormat);\n },\n },\n\n /**\n * Enables the Link extension and optionally passes configurations to it\n */\n link: {\n type: [Boolean, Object],\n default: false,\n },\n\n /**\n * Placeholder text\n */\n placeholder: {\n type: String,\n default: '',\n },\n\n /**\n * Disable Send Button\n */\n disableSend: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Content area needs to dynamically adjust height based on the conversation area height.\n * can be vh|px|rem|em|%\n */\n maxHeight: {\n type: String,\n default: 'unset',\n },\n\n // Emoji picker props\n showEmojiPicker: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Props to pass into the emoji picker.\n */\n emojiPickerProps: {\n type: Object,\n default: () => ({}),\n validate (emojiPickerProps) {\n return [\n 'searchNoResultsLabel',\n 'searchResultsLabel',\n 'searchPlaceholderLabel',\n 'skinSelectorButtonTooltipLabel',\n 'tabSetLabels',\n ].every(prop => emojiPickerProps[prop] != null);\n },\n },\n\n /**\n * Emoji button tooltip label\n */\n emojiTooltipMessage: {\n type: String,\n default: 'Emoji',\n },\n\n // Aria label for buttons\n /**\n * Emoji button aria label\n */\n emojiButtonAriaLabel: {\n type: String,\n default: 'emoji button',\n },\n\n /**\n * Enable character Limit warning\n */\n showCharacterLimit: {\n type: [Boolean, Object],\n default: () => ({ count: 1500, warning: 500, message: '' }),\n },\n\n showImagePicker: {\n type: [Boolean, Object],\n default: () => ({ tooltipLabel: 'Attach Image', ariaLabel: 'image button' }),\n },\n\n /**\n * Send button defaults.\n */\n showSend: {\n type: [Boolean, Object],\n default: () => ({ icon: 'send' }),\n },\n\n /**\n * Cancel button defaults.\n */\n showCancel: {\n type: [Boolean, Object],\n default: () => ({ text: 'Cancel' }),\n },\n\n /**\n * suggestion object containing the items query function.\n * The valid keys passed into this object can be found here: https://tiptap.dev/api/utilities/suggestion\n *\n * The only required key is the items function which is used to query the contacts for suggestion.\n * items({ query }) => { return [ContactObject]; }\n * ContactObject format:\n * { name: string, avatarSrc: string, id: string }\n *\n * When null, it does not add the plugin.\n */\n mentionSuggestion: {\n type: Object,\n default: null,\n },\n },\n\n emits: [\n /**\n * Fires when send button is clicked\n *\n * @event submit\n * @type {String}\n */\n 'submit',\n\n /**\n * Fires when media is selected from image button\n *\n * @event select-media\n * @type {Array}\n */\n 'select-media',\n\n /**\n * Fires when media is dropped into the message input\n *\n * @event add-media\n * @type {Array}\n */\n 'add-media',\n\n /**\n * Fires when media is pasted into the message input\n *\n * @event paste-media\n * @type {Array}\n */\n 'paste-media',\n\n /**\n * Fires when cancel button is pressed (only on edit mode)\n *\n * @event cancel\n * @type {Boolean}\n */\n 'cancel',\n\n /**\n * Fires when skin tone is selected from the emoji picker\n *\n * @event skin-tone\n * @type {String}\n */\n 'skin-tone',\n\n /**\n * Fires when emoji is selected from the emoji picker\n *\n * @event selected-emoji\n * @type {String}\n */\n 'selected-emoji',\n\n /**\n * Native focus event\n * @event input\n * @type {String|JSON}\n */\n 'focus',\n\n /**\n * Native blur event\n * @event input\n * @type {String|JSON}\n */\n 'blur',\n\n /**\n * Native input event\n * @event input\n * @type {String|JSON}\n */\n 'input',\n ],\n\n data () {\n return {\n internalInputValue: this.modelValue, // internal input content\n hasFocus: false,\n imagePickerFocus: false,\n emojiPickerFocus: false,\n sendButtonFocus: false,\n emojiPickerOpened: false,\n };\n },\n\n computed: {\n inputLength () {\n return this.internalInputValue.length;\n },\n\n displayCharacterLimitWarning () {\n return Boolean(this.showCharacterLimit) &&\n ((this.showCharacterLimit.count - this.inputLength) <= this.showCharacterLimit.warning);\n },\n\n characterLimitTooltipEnabled () {\n return this.showCharacterLimit.message && (this.showCharacterLimit.count - this.inputLength < 0);\n },\n\n isSendDisabled () {\n return this.disableSend ||\n (this.showCharacterLimit && this.inputLength > this.showCharacterLimit.count);\n },\n\n computedCloseButtonProps () {\n return {\n ariaLabel: 'Close',\n };\n },\n\n emojiPickerHovered () {\n return this.emojiPickerFocus || this.emojiPickerOpened;\n },\n },\n\n watch: {\n modelValue (newValue) {\n this.internalInputValue = newValue;\n },\n },\n\n methods: {\n onDrag (e) {\n e.stopPropagation();\n e.preventDefault();\n },\n\n onDrop (e) {\n e.stopPropagation();\n e.preventDefault();\n\n const dt = e.dataTransfer;\n const files = Array.from(dt.files);\n this.$emit('add-media', files);\n },\n\n onPaste (e) {\n if (e.clipboardData.files.length) {\n e.stopPropagation();\n e.preventDefault();\n const files = [...e.clipboardData.files];\n this.$emit('paste-media', files);\n }\n },\n\n onSkinTone (skinTone) {\n this.$emit('skin-tone', skinTone);\n },\n\n onSelectEmoji (emoji) {\n if (!emoji) {\n this.emojiPickerOpened = false;\n return;\n }\n\n // Insert emoji into the editor\n this.$refs.richTextEditor.editor.commands.insertContent({\n type: 'emoji',\n attrs: {\n code: emoji.shortname,\n },\n });\n this.emojiPickerOpened = false;\n this.$emit('selected-emoji', emoji);\n },\n\n onSelectImage () {\n this.$refs.messageInputImageUpload.$refs.input.click();\n },\n\n onImageUpload () {\n this.$emit('select-media', this.$refs.messageInputImageUpload.$refs.input.files);\n },\n\n toggleEmojiPicker () {\n this.emojiPickerOpened = !this.emojiPickerOpened;\n },\n\n onSend () {\n if (this.isSendDisabled) {\n return;\n }\n this.$emit('submit', this.internalInputValue);\n },\n\n onCancel () {\n this.$emit('cancel');\n },\n\n onFocus (event) {\n this.hasFocus = true;\n this.$refs.richTextEditor?.focusEditor();\n this.$emit('focus', event);\n },\n\n onBlur (event) {\n this.hasFocus = false;\n this.$emit('blur', event);\n },\n\n onInput (event) {\n this.$emit('input', event);\n },\n },\n};\n</script>\n\n<style lang=\"less\">\n.dt-message-input--remaining-char-tooltip {\n margin-top: auto;\n margin-bottom: auto;\n}\n.dt-message-input--remaining-char {\n font-size: 1.2rem;\n}\n\n.message-input-button__disabled {\n background-color: unset;\n color: var(--theme-sidebar-icon-color);\n cursor: default;\n}\n\n.dt-message-input--cancel-button {\n margin-right: var(--dt-space-300);\n}\n</style>\n"],"names":["_sfc_main","DtButton","DtEmojiPicker","DtIcon","DtInput","DtPopover","DtRichTextEditor","DtTooltip","autoFocus","RICH_TEXT_EDITOR_AUTOFOCUS_TYPES","outputFormat","RICH_TEXT_EDITOR_OUTPUT_FORMATS","emojiPickerProps","prop","newValue","e","dt","files","skinTone","emoji","event","_a","_hoisted_1","_hoisted_2","_hoisted_3","_createElementBlock","_normalizeClass","$data","_cache","$event","_ctx","$options","args","_createElementVNode","$props","_createVNode","_component_dt_rich_text_editor","_mergeProps","_renderSlot","_createBlock","_component_dt_tooltip","_component_dt_button","_component_dt_icon","_component_dt_input","_component_dt_popover","open","_component_dt_emoji_picker","_toDisplayString","_hoisted_4"],"mappings":"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"}
1
+ {"version":3,"file":"message-input.js","sources":["../../recipes/conversation_view/message_input/message_input.vue"],"sourcesContent":["<!-- eslint-disable vue/no-restricted-class -->\n<template>\n <div\n data-qa=\"dt-message-input\"\n role=\"presentation\"\n :class=\"['d-d-flex', 'd-fd-column', 'd-bar8', 'd-baw1', 'd-ba', 'd-c-text',\n { 'd-bc-bold d-bs-sm': hasFocus, 'd-bc-default': !hasFocus }]\"\n @click=\"$refs.richTextEditor?.focusEditor()\"\n @drag-enter=\"onDrag\"\n @drag-over=\"onDrag\"\n @drop=\"onDrop\"\n @keydown.enter.exact=\"onSend\"\n @paste=\"onPaste\"\n >\n <!-- Some wrapper to restrict the height and show the scrollbar -->\n <div\n class=\"d-of-auto d-mx16 d-mt8 d-mb4\"\n :style=\"{ 'max-height': maxHeight }\"\n >\n <dt-rich-text-editor\n ref=\"richTextEditor\"\n v-model=\"internalInputValue\"\n :allow-blockquote=\"allowBlockquote\"\n :allow-bold=\"allowBold\"\n :allow-bullet-list=\"allowBulletList\"\n :allow-italic=\"allowItalic\"\n :allow-strike=\"allowStrike\"\n :allow-underline=\"allowUnderline\"\n :editable=\"editable\"\n :input-aria-label=\"inputAriaLabel\"\n :input-class=\"inputClass\"\n :output-format=\"outputFormat\"\n :auto-focus=\"autoFocus\"\n :link=\"link\"\n :placeholder=\"placeholder\"\n :mention-suggestion=\"mentionSuggestion\"\n v-bind=\"$attrs\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @input=\"onInput($event)\"\n />\n </div>\n <!-- @slot Slot for attachment carousel -->\n <slot name=\"middle\" />\n <!-- Section for the bottom UI -->\n <section class=\"d-d-flex d-jc-space-between d-mx8 d-my4\">\n <!-- Left content -->\n <div class=\"d-d-flex\">\n <dt-tooltip\n v-if=\"showImagePicker\"\n placement=\"top-start\"\n :message=\"showImagePicker.tooltipLabel\"\n :offset=\"[-4, -4]\"\n >\n <template #anchor>\n <dt-button\n data-qa=\"dt-message-input-image-btn\"\n size=\"sm\"\n circle\n :kind=\"imagePickerFocus ? 'default' : 'muted'\"\n importance=\"clear\"\n :aria-label=\"showImagePicker.ariaLabel\"\n @click=\"onSelectImage\"\n @mouseenter=\"imagePickerFocus = true\"\n @mouseleave=\"imagePickerFocus = false\"\n @focus=\"imagePickerFocus = true\"\n @blur=\"imagePickerFocus = false\"\n >\n <template #icon>\n <dt-icon\n name=\"image\"\n size=\"300\"\n />\n </template>\n </dt-button>\n <dt-input\n ref=\"messageInputImageUpload\"\n data-qa=\"dt-message-input-image-input\"\n type=\"file\"\n class=\"d-ps-absolute\"\n multiple\n hidden\n @input=\"onImageUpload\"\n />\n </template>\n </dt-tooltip>\n <dt-popover\n v-if=\"showEmojiPicker\"\n data-qa=\"dt-message-input-emoji-picker-popover\"\n :open=\"emojiPickerOpened\"\n initial-focus-element=\"#searchInput\"\n padding=\"none\"\n @opened=\"(open) => { emojiPickerOpened = open }\"\n >\n <template #anchor>\n <dt-tooltip\n :message=\"emojiTooltipMessage\"\n :offset=\"[0, -4]\"\n >\n <template #anchor>\n <dt-button\n data-qa=\"dt-message-input-emoji-picker-btn\"\n size=\"sm\"\n circle\n :kind=\"emojiPickerHovered ? 'default' : 'muted'\"\n importance=\"clear\"\n :aria-label=\"emojiButtonAriaLabel\"\n :offset=\"[0, 0]\"\n @click=\"toggleEmojiPicker\"\n @mouseenter=\"emojiPickerFocus = true\"\n @mouseleave=\"emojiPickerFocus = false\"\n @focus=\"emojiPickerFocus = true\"\n @blur=\"emojiPickerFocus = false\"\n >\n <template #icon>\n <dt-icon\n :name=\"!emojiPickerHovered ? 'satisfied' : 'very-satisfied'\"\n size=\"300\"\n />\n </template>\n </dt-button>\n </template>\n </dt-tooltip>\n </template>\n <template #content>\n <dt-emoji-picker\n v-bind=\"emojiPickerProps\"\n @skin-tone=\"onSkinTone\"\n @selected-emoji=\"onSelectEmoji\"\n />\n </template>\n </dt-popover>\n </div>\n <!-- Right content -->\n <div class=\"d-d-flex\">\n <!-- Optionally displayed remaining character counter -->\n <dt-tooltip\n v-if=\"Boolean(showCharacterLimit)\"\n class=\"dt-message-input--remaining-char-tooltip\"\n placement=\"top-end\"\n :enabled=\"characterLimitTooltipEnabled\"\n :message=\"showCharacterLimit.message\"\n :offset=\"[10, -8]\"\n >\n <template #anchor>\n <p\n v-show=\"displayCharacterLimitWarning\"\n class=\"d-fc-error d-mr16 dt-message-input--remaining-char\"\n data-qa=\"dt-message-input-character-limit\"\n >\n {{ showCharacterLimit.count - inputLength }}\n </p>\n </template>\n </dt-tooltip>\n\n <!-- Cancel button for edit mode -->\n <dt-button\n v-if=\"showCancel\"\n data-qa=\"dt-message-input-cancel-button\"\n class=\"dt-message-input--cancel-button\"\n size=\"sm\"\n kind=\"muted\"\n importance=\"clear\"\n :aria-label=\"showCancel.ariaLabel\"\n @click=\"onCancel\"\n >\n <p>{{ showCancel.text }}</p>\n </dt-button>\n\n <!-- Send button -->\n <dt-tooltip\n v-if=\"showSend\"\n placement=\"top-end\"\n :enabled=\"!showSend\"\n :message=\"showSend.tooltipLabel\"\n :show=\"!isSendDisabled && sendButtonFocus\"\n :offset=\"[6, -8]\"\n >\n <template #anchor>\n <!-- Right positioned UI - send button -->\n <dt-button\n data-qa=\"dt-message-input-send-btn\"\n size=\"sm\"\n kind=\"default\"\n importance=\"primary\"\n :class=\"[\n {\n 'message-input-button__disabled d-fc-muted': isSendDisabled,\n 'd-btn--circle': showSend.icon,\n },\n ]\"\n :aria-label=\"showSend.ariaLabel\"\n :aria-disabled=\"isSendDisabled\"\n @click=\"onSend\"\n @mouseenter=\"sendButtonFocus = true\"\n @mouseleave=\"sendButtonFocus = false\"\n @focus=\"sendButtonFocus = true\"\n @blur=\"sendButtonFocus = false\"\n >\n <template\n v-if=\"showSend.icon\"\n #icon\n >\n <dt-icon\n :name=\"showSend.icon\"\n size=\"300\"\n />\n </template>\n <template\n v-if=\"showSend.text\"\n >\n <p>{{ showSend.text }}</p>\n </template>\n </dt-button>\n </template>\n </dt-tooltip>\n </div>\n </section>\n </div>\n</template>\n\n<script>\n/* eslint-disable max-lines */\nimport {\n DtRichTextEditor,\n RICH_TEXT_EDITOR_OUTPUT_FORMATS,\n RICH_TEXT_EDITOR_AUTOFOCUS_TYPES,\n} from '@/components/rich_text_editor';\nimport { DtButton } from '@/components/button';\nimport { DtIcon } from '@/components/icon';\nimport { DtEmojiPicker } from '@/components/emoji_picker';\nimport { DtPopover } from '@/components/popover';\nimport { DtInput } from '@/components/input';\nimport { DtTooltip } from '@/components/tooltip';\n\nexport default {\n name: 'DtRecipeMessageInput',\n\n components: {\n DtButton,\n DtEmojiPicker,\n DtIcon,\n DtInput,\n DtPopover,\n DtRichTextEditor,\n DtTooltip,\n },\n\n mixins: [],\n\n inheritAttrs: false,\n\n props: {\n /**\n * Value of the input. The object format should match TipTap's JSON\n * document structure: https://tiptap.dev/guide/output#option-1-json\n */\n modelValue: {\n type: [Object, String],\n default: '',\n },\n\n /**\n * Whether the input is editable\n */\n editable: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Descriptive label for the input element\n */\n inputAriaLabel: {\n type: String,\n required: true,\n default: '',\n },\n\n /**\n * Additional class name for the input element. Only accepts a String value\n * because this is passed to the editor via options. For multiple classes,\n * join them into one string, e.g. \"d-p8 d-hmx96\"\n */\n inputClass: {\n type: String,\n default: '',\n },\n\n /**\n * Whether the input should receive focus after the component has been\n * mounted. Either one of `start`, `end`, `all` or a Boolean or a Number.\n * - `start` Sets the focus to the beginning of the input\n * - `end` Sets the focus to the end of the input\n * - `all` Selects the whole contents of the input\n * - `Number` Sets the focus to a specific position in the input\n * - `true` Defaults to `start`\n * - `false` Disables autofocus\n * @values true, false, start, end, all, number\n */\n autoFocus: {\n type: [Boolean, String, Number],\n default: false,\n validator (autoFocus) {\n if (typeof autoFocus === 'string') {\n return RICH_TEXT_EDITOR_AUTOFOCUS_TYPES.includes(autoFocus);\n }\n return true;\n },\n },\n\n /**\n * The output format that the editor uses when emitting the \"@input\" event.\n * One of `text`, `json`, `html`. See https://tiptap.dev/guide/output for\n * examples.\n * @values text, json, html\n */\n outputFormat: {\n type: String,\n default: 'text',\n validator (outputFormat) {\n return RICH_TEXT_EDITOR_OUTPUT_FORMATS.includes(outputFormat);\n },\n },\n\n /**\n * Enables the Link extension and optionally passes configurations to it\n */\n link: {\n type: [Boolean, Object],\n default: false,\n },\n\n /**\n * Placeholder text\n */\n placeholder: {\n type: String,\n default: '',\n },\n\n /**\n * Disable Send Button\n */\n disableSend: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Content area needs to dynamically adjust height based on the conversation area height.\n * can be vh|px|rem|em|%\n */\n maxHeight: {\n type: String,\n default: 'unset',\n },\n\n // Emoji picker props\n showEmojiPicker: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Props to pass into the emoji picker.\n */\n emojiPickerProps: {\n type: Object,\n default: () => ({}),\n validate (emojiPickerProps) {\n return [\n 'searchNoResultsLabel',\n 'searchResultsLabel',\n 'searchPlaceholderLabel',\n 'skinSelectorButtonTooltipLabel',\n 'tabSetLabels',\n ].every(prop => emojiPickerProps[prop] != null);\n },\n },\n\n /**\n * Emoji button tooltip label\n */\n emojiTooltipMessage: {\n type: String,\n default: 'Emoji',\n },\n\n // Aria label for buttons\n /**\n * Emoji button aria label\n */\n emojiButtonAriaLabel: {\n type: String,\n default: 'emoji button',\n },\n\n /**\n * Enable character Limit warning\n */\n showCharacterLimit: {\n type: [Boolean, Object],\n default: () => ({ count: 1500, warning: 500, message: '' }),\n },\n\n showImagePicker: {\n type: [Boolean, Object],\n default: () => ({ tooltipLabel: 'Attach Image', ariaLabel: 'image button' }),\n },\n\n /**\n * Send button defaults.\n */\n showSend: {\n type: [Boolean, Object],\n default: () => ({ icon: 'send' }),\n },\n\n /**\n * Cancel button defaults.\n */\n showCancel: {\n type: [Boolean, Object],\n default: () => ({ text: 'Cancel' }),\n },\n\n /**\n * suggestion object containing the items query function.\n * The valid keys passed into this object can be found here: https://tiptap.dev/api/utilities/suggestion\n *\n * The only required key is the items function which is used to query the contacts for suggestion.\n * items({ query }) => { return [ContactObject]; }\n * ContactObject format:\n * { name: string, avatarSrc: string, id: string }\n *\n * When null, it does not add the plugin.\n */\n mentionSuggestion: {\n type: Object,\n default: null,\n },\n\n /**\n * Whether the input allows for block quote.\n */\n allowBlockquote: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Whether the input allows for bold to be introduced in the text.\n */\n allowBold: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Whether the input allows for bullet list to be introduced in the text.\n */\n allowBulletList: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Whether the input allows for italic to be introduced in the text.\n */\n allowItalic: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Whether the input allows for strike to be introduced in the text.\n */\n allowStrike: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Whether the input allows for underline to be introduced in the text.\n */\n allowUnderline: {\n type: Boolean,\n default: true,\n },\n },\n\n emits: [\n /**\n * Fires when send button is clicked\n *\n * @event submit\n * @type {String}\n */\n 'submit',\n\n /**\n * Fires when media is selected from image button\n *\n * @event select-media\n * @type {Array}\n */\n 'select-media',\n\n /**\n * Fires when media is dropped into the message input\n *\n * @event add-media\n * @type {Array}\n */\n 'add-media',\n\n /**\n * Fires when media is pasted into the message input\n *\n * @event paste-media\n * @type {Array}\n */\n 'paste-media',\n\n /**\n * Fires when cancel button is pressed (only on edit mode)\n *\n * @event cancel\n * @type {Boolean}\n */\n 'cancel',\n\n /**\n * Fires when skin tone is selected from the emoji picker\n *\n * @event skin-tone\n * @type {String}\n */\n 'skin-tone',\n\n /**\n * Fires when emoji is selected from the emoji picker\n *\n * @event selected-emoji\n * @type {String}\n */\n 'selected-emoji',\n\n /**\n * Native focus event\n * @event input\n * @type {String|JSON}\n */\n 'focus',\n\n /**\n * Native blur event\n * @event input\n * @type {String|JSON}\n */\n 'blur',\n\n /**\n * Native input event\n * @event input\n * @type {String|JSON}\n */\n 'input',\n ],\n\n data () {\n return {\n internalInputValue: this.modelValue, // internal input content\n hasFocus: false,\n imagePickerFocus: false,\n emojiPickerFocus: false,\n sendButtonFocus: false,\n emojiPickerOpened: false,\n };\n },\n\n computed: {\n inputLength () {\n return this.internalInputValue.length;\n },\n\n displayCharacterLimitWarning () {\n return Boolean(this.showCharacterLimit) &&\n ((this.showCharacterLimit.count - this.inputLength) <= this.showCharacterLimit.warning);\n },\n\n characterLimitTooltipEnabled () {\n return this.showCharacterLimit.message && (this.showCharacterLimit.count - this.inputLength < 0);\n },\n\n isSendDisabled () {\n return this.disableSend ||\n (this.showCharacterLimit && this.inputLength > this.showCharacterLimit.count);\n },\n\n computedCloseButtonProps () {\n return {\n ariaLabel: 'Close',\n };\n },\n\n emojiPickerHovered () {\n return this.emojiPickerFocus || this.emojiPickerOpened;\n },\n },\n\n watch: {\n modelValue (newValue) {\n this.internalInputValue = newValue;\n },\n },\n\n methods: {\n onDrag (e) {\n e.stopPropagation();\n e.preventDefault();\n },\n\n onDrop (e) {\n e.stopPropagation();\n e.preventDefault();\n\n const dt = e.dataTransfer;\n const files = Array.from(dt.files);\n this.$emit('add-media', files);\n },\n\n onPaste (e) {\n if (e.clipboardData.files.length) {\n e.stopPropagation();\n e.preventDefault();\n const files = [...e.clipboardData.files];\n this.$emit('paste-media', files);\n }\n },\n\n onSkinTone (skinTone) {\n this.$emit('skin-tone', skinTone);\n },\n\n onSelectEmoji (emoji) {\n if (!emoji) {\n this.emojiPickerOpened = false;\n return;\n }\n\n // Insert emoji into the editor\n this.$refs.richTextEditor.editor.commands.insertContent({\n type: 'emoji',\n attrs: {\n code: emoji.shortname,\n },\n });\n this.emojiPickerOpened = false;\n this.$emit('selected-emoji', emoji);\n },\n\n onSelectImage () {\n this.$refs.messageInputImageUpload.$refs.input.click();\n },\n\n onImageUpload () {\n this.$emit('select-media', this.$refs.messageInputImageUpload.$refs.input.files);\n },\n\n toggleEmojiPicker () {\n this.emojiPickerOpened = !this.emojiPickerOpened;\n },\n\n onSend () {\n if (this.isSendDisabled) {\n return;\n }\n this.$emit('submit', this.internalInputValue);\n },\n\n onCancel () {\n this.$emit('cancel');\n },\n\n onFocus (event) {\n this.hasFocus = true;\n this.$refs.richTextEditor?.focusEditor();\n this.$emit('focus', event);\n },\n\n onBlur (event) {\n this.hasFocus = false;\n this.$emit('blur', event);\n },\n\n onInput (event) {\n this.$emit('input', event);\n },\n },\n};\n</script>\n\n<style lang=\"less\">\n.dt-message-input--remaining-char-tooltip {\n margin-top: auto;\n margin-bottom: auto;\n}\n.dt-message-input--remaining-char {\n font-size: 1.2rem;\n}\n\n.message-input-button__disabled {\n background-color: unset;\n color: var(--theme-sidebar-icon-color);\n cursor: default;\n}\n\n.dt-message-input--cancel-button {\n margin-right: var(--dt-space-300);\n}\n</style>\n"],"names":["_sfc_main","DtButton","DtEmojiPicker","DtIcon","DtInput","DtPopover","DtRichTextEditor","DtTooltip","autoFocus","RICH_TEXT_EDITOR_AUTOFOCUS_TYPES","outputFormat","RICH_TEXT_EDITOR_OUTPUT_FORMATS","emojiPickerProps","prop","newValue","e","dt","files","skinTone","emoji","event","_a","_hoisted_1","_hoisted_2","_hoisted_3","_createElementBlock","_normalizeClass","$data","_cache","$event","_ctx","$options","args","_createElementVNode","$props","_createVNode","_component_dt_rich_text_editor","_mergeProps","_renderSlot","_createBlock","_component_dt_tooltip","_component_dt_button","_component_dt_icon","_component_dt_input","_component_dt_popover","open","_component_dt_emoji_picker","_toDisplayString","_hoisted_4"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../chunks/input-0Uksk4DP.js"),i=require("../chunks/input_group-AS760Cp7.js"),r=require("../chunks/keyboard_list_navigation-N74Bpdq7.js");require("vue");require("./constants.cjs");require("./validators.cjs");require("./utils.cjs");require("./validation-messages.cjs");require("../chunks/_plugin-vue_export-helper-6_y-gaV6.js");exports.DtCheckableInputMixin=e.C;exports.DtGroupableInputMixin=e.G;exports.DtInputMixin=e.I;exports.DtInputGroupMixin=i.I;exports.DtKeyboardListNavigationMixin=r.K;
2
+ //# sourceMappingURL=mixins.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mixins.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}