@dialpad/dialtone-vue 3.209.0 → 3.210.0-next.2

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 (402) hide show
  1. package/dist/common/mixins/keyboard-list-navigation.cjs +1 -1
  2. package/dist/common/mixins/keyboard-list-navigation.cjs.map +1 -1
  3. package/dist/common/mixins/keyboard-list-navigation.js +7 -7
  4. package/dist/common/mixins/keyboard-list-navigation.js.map +1 -1
  5. package/dist/component-documentation.json +1 -1
  6. package/dist/dialtone-vue.cjs +1 -1
  7. package/dist/dialtone-vue.js +422 -386
  8. package/dist/dialtone-vue.js.map +1 -1
  9. package/dist/lib/attachment-carousel/attachment-carousel.cjs +1 -1
  10. package/dist/lib/attachment-carousel/attachment-carousel.cjs.map +1 -1
  11. package/dist/lib/attachment-carousel/attachment-carousel.js +64 -117
  12. package/dist/lib/attachment-carousel/attachment-carousel.js.map +1 -1
  13. package/dist/lib/avatar/avatar-constants.cjs +1 -1
  14. package/dist/lib/avatar/avatar-constants.cjs.map +1 -1
  15. package/dist/lib/avatar/avatar-constants.js +169 -43
  16. package/dist/lib/avatar/avatar-constants.js.map +1 -1
  17. package/dist/lib/avatar/avatar.cjs +1 -1
  18. package/dist/lib/avatar/avatar.cjs.map +1 -1
  19. package/dist/lib/avatar/avatar.js +185 -100
  20. package/dist/lib/avatar/avatar.js.map +1 -1
  21. package/dist/lib/avatar/index.cjs +1 -1
  22. package/dist/lib/avatar/index.js +16 -10
  23. package/dist/lib/badge/badge.cjs +1 -1
  24. package/dist/lib/badge/badge.cjs.map +1 -1
  25. package/dist/lib/badge/badge.js +47 -35
  26. package/dist/lib/badge/badge.js.map +1 -1
  27. package/dist/lib/button/button-constants.cjs +1 -1
  28. package/dist/lib/button/button-constants.cjs.map +1 -1
  29. package/dist/lib/button/button-constants.js +23 -19
  30. package/dist/lib/button/button-constants.js.map +1 -1
  31. package/dist/lib/button/button.cjs +1 -1
  32. package/dist/lib/button/button.cjs.map +1 -1
  33. package/dist/lib/button/button.js +138 -60
  34. package/dist/lib/button/button.js.map +1 -1
  35. package/dist/lib/callbar-button/callbar-button.cjs +1 -1
  36. package/dist/lib/callbar-button/callbar-button.cjs.map +1 -1
  37. package/dist/lib/callbar-button/callbar-button.js +8 -9
  38. package/dist/lib/callbar-button/callbar-button.js.map +1 -1
  39. package/dist/lib/callbox/callbox.cjs +1 -1
  40. package/dist/lib/callbox/callbox.cjs.map +1 -1
  41. package/dist/lib/callbox/callbox.js +47 -47
  42. package/dist/lib/callbox/callbox.js.map +1 -1
  43. package/dist/lib/combobox-multi-select/combobox-multi-select.cjs +1 -1
  44. package/dist/lib/combobox-multi-select/combobox-multi-select.cjs.map +1 -1
  45. package/dist/lib/combobox-multi-select/combobox-multi-select.js +31 -31
  46. package/dist/lib/combobox-multi-select/combobox-multi-select.js.map +1 -1
  47. package/dist/lib/contact-centers-row/contact-centers-row.cjs +1 -1
  48. package/dist/lib/contact-centers-row/contact-centers-row.cjs.map +1 -1
  49. package/dist/lib/contact-centers-row/contact-centers-row.js +33 -33
  50. package/dist/lib/contact-centers-row/contact-centers-row.js.map +1 -1
  51. package/dist/lib/contact-info/contact-info.cjs +1 -1
  52. package/dist/lib/contact-info/contact-info.cjs.map +1 -1
  53. package/dist/lib/contact-info/contact-info.js +56 -56
  54. package/dist/lib/contact-info/contact-info.js.map +1 -1
  55. package/dist/lib/contact-row/contact-row.cjs +1 -1
  56. package/dist/lib/contact-row/contact-row.cjs.map +1 -1
  57. package/dist/lib/contact-row/contact-row.js +1 -1
  58. package/dist/lib/contact-row/contact-row.js.map +1 -1
  59. package/dist/lib/datepicker/datepicker.cjs +1 -1
  60. package/dist/lib/datepicker/datepicker.cjs.map +1 -1
  61. package/dist/lib/datepicker/datepicker.js +11 -11
  62. package/dist/lib/datepicker/datepicker.js.map +1 -1
  63. package/dist/lib/editor/editor.cjs +1 -1
  64. package/dist/lib/editor/editor.cjs.map +1 -1
  65. package/dist/lib/editor/editor.js +13 -12
  66. package/dist/lib/editor/editor.js.map +1 -1
  67. package/dist/lib/emoji-picker/emoji-picker.cjs +1 -1
  68. package/dist/lib/emoji-picker/emoji-picker.cjs.map +1 -1
  69. package/dist/lib/emoji-picker/emoji-picker.js +2 -2
  70. package/dist/lib/emoji-picker/emoji-picker.js.map +1 -1
  71. package/dist/lib/feed-item-pill/feed-item-pill.cjs +1 -1
  72. package/dist/lib/feed-item-pill/feed-item-pill.cjs.map +1 -1
  73. package/dist/lib/feed-item-pill/feed-item-pill.js +56 -53
  74. package/dist/lib/feed-item-pill/feed-item-pill.js.map +1 -1
  75. package/dist/lib/feed-item-row/feed-item-row.cjs +1 -1
  76. package/dist/lib/feed-item-row/feed-item-row.cjs.map +1 -1
  77. package/dist/lib/feed-item-row/feed-item-row.js +11 -11
  78. package/dist/lib/feed-item-row/feed-item-row.js.map +1 -1
  79. package/dist/lib/filter-pill/filter-pill.cjs +2 -0
  80. package/dist/lib/filter-pill/filter-pill.cjs.map +1 -0
  81. package/dist/lib/filter-pill/filter-pill.js +346 -0
  82. package/dist/lib/filter-pill/filter-pill.js.map +1 -0
  83. package/dist/lib/filter-pill/index.cjs +2 -0
  84. package/dist/lib/filter-pill/index.cjs.map +1 -0
  85. package/dist/lib/filter-pill/index.js +5 -0
  86. package/dist/lib/filter-pill/index.js.map +1 -0
  87. package/dist/lib/general-row/general-row.cjs +1 -1
  88. package/dist/lib/general-row/general-row.cjs.map +1 -1
  89. package/dist/lib/general-row/general-row.js +153 -99
  90. package/dist/lib/general-row/general-row.js.map +1 -1
  91. package/dist/lib/group-row/group-row.cjs +1 -1
  92. package/dist/lib/group-row/group-row.cjs.map +1 -1
  93. package/dist/lib/group-row/group-row.js +1 -1
  94. package/dist/lib/group-row/group-row.js.map +1 -1
  95. package/dist/lib/grouped-chip/grouped-chip.cjs +1 -1
  96. package/dist/lib/grouped-chip/grouped-chip.cjs.map +1 -1
  97. package/dist/lib/grouped-chip/grouped-chip.js +31 -31
  98. package/dist/lib/grouped-chip/grouped-chip.js.map +1 -1
  99. package/dist/lib/input/input.cjs +1 -1
  100. package/dist/lib/input/input.cjs.map +1 -1
  101. package/dist/lib/input/input.js +53 -42
  102. package/dist/lib/input/input.js.map +1 -1
  103. package/dist/lib/item-layout/item-layout.cjs +3 -3
  104. package/dist/lib/item-layout/item-layout.cjs.map +1 -1
  105. package/dist/lib/item-layout/item-layout.js +74 -39
  106. package/dist/lib/item-layout/item-layout.js.map +1 -1
  107. package/dist/lib/kitchen-sink/kitchen-sink-view.cjs +2 -0
  108. package/dist/lib/kitchen-sink/kitchen-sink-view.cjs.map +1 -0
  109. package/dist/lib/kitchen-sink/kitchen-sink-view.js +263 -0
  110. package/dist/lib/kitchen-sink/kitchen-sink-view.js.map +1 -0
  111. package/dist/lib/link/link.cjs +1 -1
  112. package/dist/lib/link/link.cjs.map +1 -1
  113. package/dist/lib/link/link.js +21 -12
  114. package/dist/lib/link/link.js.map +1 -1
  115. package/dist/lib/list-item/list-item.cjs +1 -1
  116. package/dist/lib/list-item/list-item.cjs.map +1 -1
  117. package/dist/lib/list-item/list-item.js +25 -15
  118. package/dist/lib/list-item/list-item.js.map +1 -1
  119. package/dist/lib/loader/loader.cjs +13 -1
  120. package/dist/lib/loader/loader.cjs.map +1 -1
  121. package/dist/lib/loader/loader.js +31 -20
  122. package/dist/lib/loader/loader.js.map +1 -1
  123. package/dist/lib/message-input/message-input.cjs +1 -1
  124. package/dist/lib/message-input/message-input.cjs.map +1 -1
  125. package/dist/lib/message-input/message-input.js +44 -43
  126. package/dist/lib/message-input/message-input.js.map +1 -1
  127. package/dist/lib/mode-island/index.cjs +2 -0
  128. package/dist/lib/mode-island/index.cjs.map +1 -0
  129. package/dist/lib/mode-island/index.js +7 -0
  130. package/dist/lib/mode-island/index.js.map +1 -0
  131. package/dist/lib/mode-island/mode-island-constants.cjs +2 -0
  132. package/dist/lib/mode-island/mode-island-constants.cjs.map +1 -0
  133. package/dist/lib/mode-island/mode-island-constants.js +12 -0
  134. package/dist/lib/mode-island/mode-island-constants.js.map +1 -0
  135. package/dist/lib/mode-island/mode-island.cjs +2 -0
  136. package/dist/lib/mode-island/mode-island.cjs.map +1 -0
  137. package/dist/lib/mode-island/mode-island.js +130 -0
  138. package/dist/lib/mode-island/mode-island.js.map +1 -0
  139. package/dist/lib/mode-island/utils.cjs +2 -0
  140. package/dist/lib/mode-island/utils.cjs.map +1 -0
  141. package/dist/lib/mode-island/utils.js +32 -0
  142. package/dist/lib/mode-island/utils.js.map +1 -0
  143. package/dist/lib/mode-island/validators.cjs +2 -0
  144. package/dist/lib/mode-island/validators.cjs.map +1 -0
  145. package/dist/lib/mode-island/validators.js +12 -0
  146. package/dist/lib/mode-island/validators.js.map +1 -0
  147. package/dist/lib/pagination/pagination.cjs +1 -1
  148. package/dist/lib/pagination/pagination.cjs.map +1 -1
  149. package/dist/lib/pagination/pagination.js +15 -14
  150. package/dist/lib/pagination/pagination.js.map +1 -1
  151. package/dist/lib/popover/popover.cjs +1 -1
  152. package/dist/lib/popover/popover.cjs.map +1 -1
  153. package/dist/lib/popover/popover.js +1 -1
  154. package/dist/lib/popover/popover.js.map +1 -1
  155. package/dist/lib/progress-circle/index.cjs +2 -0
  156. package/dist/lib/progress-circle/index.cjs.map +1 -0
  157. package/dist/lib/progress-circle/index.js +10 -0
  158. package/dist/lib/progress-circle/index.js.map +1 -0
  159. package/dist/lib/progress-circle/progress-circle-constants.cjs +2 -0
  160. package/dist/lib/progress-circle/progress-circle-constants.cjs.map +1 -0
  161. package/dist/lib/progress-circle/progress-circle-constants.js +25 -0
  162. package/dist/lib/progress-circle/progress-circle-constants.js.map +1 -0
  163. package/dist/lib/progress-circle/progress-circle.cjs +2 -0
  164. package/dist/lib/progress-circle/progress-circle.cjs.map +1 -0
  165. package/dist/lib/progress-circle/progress-circle.js +136 -0
  166. package/dist/lib/progress-circle/progress-circle.js.map +1 -0
  167. package/dist/lib/rich-text-editor/rich-text-editor.cjs +2 -2
  168. package/dist/lib/rich-text-editor/rich-text-editor.cjs.map +1 -1
  169. package/dist/lib/rich-text-editor/rich-text-editor.js +115 -97
  170. package/dist/lib/rich-text-editor/rich-text-editor.js.map +1 -1
  171. package/dist/lib/root-layout/root-layout-constants.cjs +1 -1
  172. package/dist/lib/root-layout/root-layout-constants.cjs.map +1 -1
  173. package/dist/lib/root-layout/root-layout-constants.js +4 -2
  174. package/dist/lib/root-layout/root-layout-constants.js.map +1 -1
  175. package/dist/lib/root-layout/root-layout.cjs +1 -1
  176. package/dist/lib/root-layout/root-layout.cjs.map +1 -1
  177. package/dist/lib/root-layout/root-layout.js +9 -10
  178. package/dist/lib/root-layout/root-layout.js.map +1 -1
  179. package/dist/lib/settings-menu-button/settings-menu-button.cjs +1 -1
  180. package/dist/lib/settings-menu-button/settings-menu-button.cjs.map +1 -1
  181. package/dist/lib/settings-menu-button/settings-menu-button.js +14 -15
  182. package/dist/lib/settings-menu-button/settings-menu-button.js.map +1 -1
  183. package/dist/lib/split-button/split-button-alpha.cjs +1 -1
  184. package/dist/lib/split-button/split-button-alpha.cjs.map +1 -1
  185. package/dist/lib/split-button/split-button-alpha.js +51 -28
  186. package/dist/lib/split-button/split-button-alpha.js.map +1 -1
  187. package/dist/lib/split-button/split-button.cjs +1 -1
  188. package/dist/lib/split-button/split-button.cjs.map +1 -1
  189. package/dist/lib/split-button/split-button.js +235 -89
  190. package/dist/lib/split-button/split-button.js.map +1 -1
  191. package/dist/lib/text/index.cjs +2 -0
  192. package/dist/lib/text/index.cjs.map +1 -0
  193. package/dist/lib/text/index.js +20 -0
  194. package/dist/lib/text/index.js.map +1 -0
  195. package/dist/lib/text/text-constants.cjs +2 -0
  196. package/dist/lib/text/text-constants.cjs.map +1 -0
  197. package/dist/lib/text/text-constants.js +69 -0
  198. package/dist/lib/text/text-constants.js.map +1 -0
  199. package/dist/lib/text/text-tone-tokens.cjs +2 -0
  200. package/dist/lib/text/text-tone-tokens.cjs.map +1 -0
  201. package/dist/lib/text/text-tone-tokens.js +33 -0
  202. package/dist/lib/text/text-tone-tokens.js.map +1 -0
  203. package/dist/lib/text/text.cjs +2 -0
  204. package/dist/lib/text/text.cjs.map +1 -0
  205. package/dist/lib/text/text.js +203 -0
  206. package/dist/lib/text/text.js.map +1 -0
  207. package/dist/lib/top-banner-info/top-banner-info.cjs +1 -1
  208. package/dist/lib/top-banner-info/top-banner-info.cjs.map +1 -1
  209. package/dist/lib/top-banner-info/top-banner-info.js +16 -16
  210. package/dist/lib/top-banner-info/top-banner-info.js.map +1 -1
  211. package/dist/localization/en-US.cjs +2 -0
  212. package/dist/localization/en-US.cjs.map +1 -1
  213. package/dist/localization/en-US.js +2 -0
  214. package/dist/localization/en-US.js.map +1 -1
  215. package/dist/localization/es-LA.cjs +1 -1
  216. package/dist/localization/es-LA.cjs.map +1 -1
  217. package/dist/localization/es-LA.js +1 -1
  218. package/dist/localization/es-LA.js.map +1 -1
  219. package/dist/localization/it-IT.cjs +3 -3
  220. package/dist/localization/it-IT.cjs.map +1 -1
  221. package/dist/localization/it-IT.js +3 -3
  222. package/dist/localization/it-IT.js.map +1 -1
  223. package/dist/localization/nl-NL.cjs +2 -2
  224. package/dist/localization/nl-NL.cjs.map +1 -1
  225. package/dist/localization/nl-NL.js +2 -2
  226. package/dist/localization/nl-NL.js.map +1 -1
  227. package/dist/localization/ru-RU.cjs +1 -1
  228. package/dist/localization/ru-RU.cjs.map +1 -1
  229. package/dist/localization/ru-RU.js +1 -1
  230. package/dist/localization/ru-RU.js.map +1 -1
  231. package/dist/localization/zh-CN.cjs +1 -1
  232. package/dist/localization/zh-CN.cjs.map +1 -1
  233. package/dist/localization/zh-CN.js +1 -1
  234. package/dist/localization/zh-CN.js.map +1 -1
  235. package/dist/node_modules/@tiptap/vue-3.cjs.map +1 -1
  236. package/dist/node_modules/@tiptap/vue-3.js.map +1 -1
  237. package/dist/style.css +1 -1
  238. package/dist/types/common/mixins/keyboard_list_navigation.d.ts.map +1 -1
  239. package/dist/types/common/sr_only_close_button.vue.d.ts +20 -2
  240. package/dist/types/components/avatar/avatar.vue.d.ts +71 -25
  241. package/dist/types/components/avatar/avatar.vue.d.ts.map +1 -1
  242. package/dist/types/components/avatar/avatar_constants.d.ts +86 -29
  243. package/dist/types/components/avatar/avatar_constants.d.ts.map +1 -1
  244. package/dist/types/components/avatar/index.d.ts +1 -1
  245. package/dist/types/components/badge/badge.vue.d.ts.map +1 -1
  246. package/dist/types/components/banner/banner.vue.d.ts +40 -4
  247. package/dist/types/components/banner/banner.vue.d.ts.map +1 -1
  248. package/dist/types/components/breadcrumbs/breadcrumb_item.vue.d.ts +9 -0
  249. package/dist/types/components/breadcrumbs/breadcrumb_item.vue.d.ts.map +1 -1
  250. package/dist/types/components/breadcrumbs/breadcrumbs.vue.d.ts +9 -0
  251. package/dist/types/components/button/button.vue.d.ts +20 -2
  252. package/dist/types/components/button/button.vue.d.ts.map +1 -1
  253. package/dist/types/components/button/button_constants.d.ts +4 -0
  254. package/dist/types/components/button/button_constants.d.ts.map +1 -1
  255. package/dist/types/components/chip/chip.vue.d.ts +20 -2
  256. package/dist/types/components/chip/chip.vue.d.ts.map +1 -1
  257. package/dist/types/components/collapsible/collapsible.vue.d.ts +20 -2
  258. package/dist/types/components/collapsible/collapsible.vue.d.ts.map +1 -1
  259. package/dist/types/components/combobox/combobox.vue.d.ts +79 -13
  260. package/dist/types/components/combobox/combobox.vue.d.ts.map +1 -1
  261. package/dist/types/components/combobox/combobox_empty-list.vue.d.ts +39 -6
  262. package/dist/types/components/combobox/combobox_empty-list.vue.d.ts.map +1 -1
  263. package/dist/types/components/combobox/combobox_loading-list.vue.d.ts +39 -6
  264. package/dist/types/components/combobox/combobox_loading-list.vue.d.ts.map +1 -1
  265. package/dist/types/components/dropdown/dropdown.vue.d.ts +40 -4
  266. package/dist/types/components/dropdown/dropdown.vue.d.ts.map +1 -1
  267. package/dist/types/components/filter_pill/filter_pill.vue.d.ts +2016 -0
  268. package/dist/types/components/filter_pill/filter_pill.vue.d.ts.map +1 -0
  269. package/dist/types/components/filter_pill/index.d.ts +2 -0
  270. package/dist/types/components/filter_pill/index.d.ts.map +1 -0
  271. package/dist/types/components/hovercard/hovercard.vue.d.ts +80 -8
  272. package/dist/types/components/hovercard/hovercard.vue.d.ts.map +1 -1
  273. package/dist/types/components/image_viewer/image_viewer.vue.d.ts +40 -4
  274. package/dist/types/components/image_viewer/image_viewer.vue.d.ts.map +1 -1
  275. package/dist/types/components/input/input.vue.d.ts.map +1 -1
  276. package/dist/types/components/item_layout/item_layout.vue.d.ts +36 -5
  277. package/dist/types/components/item_layout/item_layout.vue.d.ts.map +1 -1
  278. package/dist/types/components/link/link.vue.d.ts +9 -0
  279. package/dist/types/components/list_item/list_item.vue.d.ts +39 -6
  280. package/dist/types/components/list_item/list_item.vue.d.ts.map +1 -1
  281. package/dist/types/components/loader/loader.vue.d.ts +1 -32
  282. package/dist/types/components/loader/loader.vue.d.ts.map +1 -1
  283. package/dist/types/components/modal/modal.vue.d.ts +40 -4
  284. package/dist/types/components/modal/modal.vue.d.ts.map +1 -1
  285. package/dist/types/components/mode_island/index.d.ts +3 -0
  286. package/dist/types/components/mode_island/index.d.ts.map +1 -0
  287. package/dist/types/components/mode_island/mode_island.vue.d.ts +3 -0
  288. package/dist/types/components/mode_island/mode_island.vue.d.ts.map +1 -0
  289. package/dist/types/components/mode_island/mode_island_constants.d.ts +10 -0
  290. package/dist/types/components/mode_island/mode_island_constants.d.ts.map +1 -0
  291. package/dist/types/components/mode_island/utils.d.ts +12 -0
  292. package/dist/types/components/mode_island/utils.d.ts.map +1 -0
  293. package/dist/types/components/mode_island/validators.d.ts +6 -0
  294. package/dist/types/components/mode_island/validators.d.ts.map +1 -0
  295. package/dist/types/components/notice/notice.vue.d.ts +40 -4
  296. package/dist/types/components/notice/notice.vue.d.ts.map +1 -1
  297. package/dist/types/components/notice/notice_action.vue.d.ts +40 -4
  298. package/dist/types/components/notice/notice_action.vue.d.ts.map +1 -1
  299. package/dist/types/components/pagination/pagination.vue.d.ts +20 -2
  300. package/dist/types/components/pagination/pagination.vue.d.ts.map +1 -1
  301. package/dist/types/components/popover/popover.vue.d.ts +40 -4
  302. package/dist/types/components/popover/popover.vue.d.ts.map +1 -1
  303. package/dist/types/components/popover/popover_header_footer.vue.d.ts +20 -2
  304. package/dist/types/components/popover/popover_header_footer.vue.d.ts.map +1 -1
  305. package/dist/types/components/progress_circle/index.d.ts +3 -0
  306. package/dist/types/components/progress_circle/index.d.ts.map +1 -0
  307. package/dist/types/components/progress_circle/progress_circle.vue.d.ts +70 -0
  308. package/dist/types/components/progress_circle/progress_circle.vue.d.ts.map +1 -0
  309. package/dist/types/components/progress_circle/progress_circle_constants.d.ts +23 -0
  310. package/dist/types/components/progress_circle/progress_circle_constants.d.ts.map +1 -0
  311. package/dist/types/components/rich_text_editor/extensions/channels/ChannelComponent.vue.d.ts +9 -0
  312. package/dist/types/components/rich_text_editor/extensions/channels/ChannelComponent.vue.d.ts.map +1 -1
  313. package/dist/types/components/rich_text_editor/extensions/mentions/MentionComponent.vue.d.ts +9 -0
  314. package/dist/types/components/rich_text_editor/extensions/mentions/MentionSuggestion.vue.d.ts +71 -25
  315. package/dist/types/components/rich_text_editor/extensions/suggestion/SuggestionList.vue.d.ts +39 -6
  316. package/dist/types/components/rich_text_editor/extensions/suggestion/SuggestionList.vue.d.ts.map +1 -1
  317. package/dist/types/components/rich_text_editor/extensions/variable/VariableComponent.vue.d.ts +61 -6
  318. package/dist/types/components/rich_text_editor/extensions/variable/VariableComponent.vue.d.ts.map +1 -1
  319. package/dist/types/components/rich_text_editor/extensions/variable/variable.d.ts.map +1 -1
  320. package/dist/types/components/root_layout/root_layout_constants.d.ts +2 -0
  321. package/dist/types/components/root_layout/root_layout_constants.d.ts.map +1 -1
  322. package/dist/types/components/split_button/split_button-alpha.vue.d.ts +21 -3
  323. package/dist/types/components/split_button/split_button-alpha.vue.d.ts.map +1 -1
  324. package/dist/types/components/split_button/split_button-omega.vue.d.ts +20 -2
  325. package/dist/types/components/split_button/split_button-omega.vue.d.ts.map +1 -1
  326. package/dist/types/components/split_button/split_button.vue.d.ts +214 -28
  327. package/dist/types/components/split_button/split_button.vue.d.ts.map +1 -1
  328. package/dist/types/components/tab/tab.vue.d.ts +20 -2
  329. package/dist/types/components/text/index.d.ts +3 -0
  330. package/dist/types/components/text/index.d.ts.map +1 -0
  331. package/dist/types/components/text/scripts/update-text-tone-tokens.d.cts +3 -0
  332. package/dist/types/components/text/scripts/update-text-tone-tokens.d.cts.map +1 -0
  333. package/dist/types/components/text/scripts/update_text_tone_tokens.d.cts +3 -0
  334. package/dist/types/components/text/scripts/update_text_tone_tokens.d.cts.map +1 -0
  335. package/dist/types/components/text/scripts/update_text_tone_tokens.d.ts +1 -0
  336. package/dist/types/components/text/scripts/update_text_tone_tokens.d.ts.map +1 -0
  337. package/dist/types/components/text/text.vue.d.ts +141 -0
  338. package/dist/types/components/text/text.vue.d.ts.map +1 -0
  339. package/dist/types/components/text/text_constants.d.ts +73 -0
  340. package/dist/types/components/text/text_constants.d.ts.map +1 -0
  341. package/dist/types/components/text/text_tone_tokens.d.ts +3 -0
  342. package/dist/types/components/text/text_tone_tokens.d.ts.map +1 -0
  343. package/dist/types/components/toast/layouts/toast_layout_alternate.vue.d.ts +40 -4
  344. package/dist/types/components/toast/layouts/toast_layout_alternate.vue.d.ts.map +1 -1
  345. package/dist/types/components/toast/layouts/toast_layout_default.vue.d.ts +40 -4
  346. package/dist/types/components/toast/layouts/toast_layout_default.vue.d.ts.map +1 -1
  347. package/dist/types/components/toast/toast.vue.d.ts +160 -16
  348. package/dist/types/components/toast/toast.vue.d.ts.map +1 -1
  349. package/dist/types/index.d.ts +4 -0
  350. package/dist/types/recipes/buttons/callbar_button/callbar_button.vue.d.ts +20 -2
  351. package/dist/types/recipes/buttons/callbar_button/callbar_button.vue.d.ts.map +1 -1
  352. package/dist/types/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.d.ts +80 -8
  353. package/dist/types/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.d.ts.map +1 -1
  354. package/dist/types/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts +80 -8
  355. package/dist/types/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts.map +1 -1
  356. package/dist/types/recipes/cards/ivr_node/ivr_node.vue.d.ts +60 -6
  357. package/dist/types/recipes/cards/ivr_node/ivr_node.vue.d.ts.map +1 -1
  358. package/dist/types/recipes/chips/grouped_chip/grouped_chip.vue.d.ts +20 -2
  359. package/dist/types/recipes/chips/grouped_chip/grouped_chip.vue.d.ts.map +1 -1
  360. package/dist/types/recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue.d.ts +198 -30
  361. package/dist/types/recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue.d.ts.map +1 -1
  362. package/dist/types/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.d.ts +124 -12
  363. package/dist/types/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.d.ts.map +1 -1
  364. package/dist/types/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.d.ts +104 -10
  365. package/dist/types/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.d.ts.map +1 -1
  366. package/dist/types/recipes/conversation_view/editor/EditorToolbarButton.vue.d.ts +20 -2
  367. package/dist/types/recipes/conversation_view/editor/EditorToolbarDropdownButton.vue.d.ts +60 -6
  368. package/dist/types/recipes/conversation_view/editor/EditorToolbarDropdownButton.vue.d.ts.map +1 -1
  369. package/dist/types/recipes/conversation_view/editor/EditorToolbarPopoverButton.vue.d.ts +60 -6
  370. package/dist/types/recipes/conversation_view/editor/EditorToolbarPopoverButton.vue.d.ts.map +1 -1
  371. package/dist/types/recipes/conversation_view/emoji_row/emoji_row.vue.d.ts +20 -2
  372. package/dist/types/recipes/conversation_view/emoji_row/emoji_row.vue.d.ts.map +1 -1
  373. package/dist/types/recipes/conversation_view/feed_item_pill/feed_item_pill.vue.d.ts +56 -7
  374. package/dist/types/recipes/conversation_view/feed_item_pill/feed_item_pill.vue.d.ts.map +1 -1
  375. package/dist/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts +110 -31
  376. package/dist/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts.map +1 -1
  377. package/dist/types/recipes/conversation_view/message_input/extensions/meeting_pill/MeetingPill.vue.d.ts +56 -7
  378. package/dist/types/recipes/conversation_view/message_input/extensions/meeting_pill/MeetingPill.vue.d.ts.map +1 -1
  379. package/dist/types/recipes/conversation_view/message_input/message_input_button.vue.d.ts +20 -2
  380. package/dist/types/recipes/conversation_view/message_input/message_input_button.vue.d.ts.map +1 -1
  381. package/dist/types/recipes/conversation_view/message_input/message_input_link.vue.d.ts +80 -8
  382. package/dist/types/recipes/conversation_view/message_input/message_input_link.vue.d.ts.map +1 -1
  383. package/dist/types/recipes/conversation_view/message_input/message_input_topbar.vue.d.ts +20 -2
  384. package/dist/types/recipes/conversation_view/message_input/message_input_topbar.vue.d.ts.map +1 -1
  385. package/dist/types/recipes/header/settings_menu_button/settings_menu_button.vue.d.ts +20 -2
  386. package/dist/types/recipes/header/settings_menu_button/settings_menu_button.vue.d.ts.map +1 -1
  387. package/dist/types/recipes/item_layout/contact_info/contact_info.vue.d.ts +107 -30
  388. package/dist/types/recipes/item_layout/contact_info/contact_info.vue.d.ts.map +1 -1
  389. package/dist/types/recipes/leftbar/callbox/callbox.vue.d.ts +71 -25
  390. package/dist/types/recipes/leftbar/callbox/callbox.vue.d.ts.map +1 -1
  391. package/dist/types/recipes/leftbar/contact_centers_row/contact_centers_row.vue.d.ts +20 -2
  392. package/dist/types/recipes/leftbar/contact_centers_row/contact_centers_row.vue.d.ts.map +1 -1
  393. package/dist/types/recipes/leftbar/contact_row/contact_row.vue.d.ts +449 -28
  394. package/dist/types/recipes/leftbar/contact_row/contact_row.vue.d.ts.map +1 -1
  395. package/dist/types/recipes/leftbar/general_row/general_row.vue.d.ts +378 -3
  396. package/dist/types/recipes/leftbar/general_row/general_row.vue.d.ts.map +1 -1
  397. package/dist/types/recipes/leftbar/group_row/group_row.vue.d.ts +378 -3
  398. package/dist/types/recipes/leftbar/group_row/group_row.vue.d.ts.map +1 -1
  399. package/dist/types/recipes/notices/top_banner_info/top_banner_info.vue.d.ts.map +1 -1
  400. package/package.json +6 -5
  401. package/dist/types/recipes/conversation_view/attachment_carousel/media_components/progress_bar.vue.d.ts +0 -30
  402. package/dist/types/recipes/conversation_view/attachment_carousel/media_components/progress_bar.vue.d.ts.map +0 -1
@@ -1,2 +1,14 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("@dialpad/dialtone-icons/vue3"),e=require("vue"),i=require("../../_plugin-vue_export-helper-BRilXfQE.cjs"),r=require("../icon/icon-constants.cjs"),l={name:"DtLoader",components:{DtIconLoading:n.DtIconLoading},props:{ariaLabel:{type:String,default:""},size:{type:String,default:"500",validator:o=>Object.keys(r.ICON_SIZE_MODIFIERS).includes(o)}}},c=["aria-label"];function d(o,_,t,u,p,g){const a=e.resolveComponent("dt-icon-loading");return e.openBlock(),e.createElementBlock("div",{class:"d-loader","aria-label":t.ariaLabel||"loading","data-qa":"dt-loader"},[e.createVNode(a,{class:"d-loader__icon","data-qa":"dt-loader-icon",size:t.size},null,8,["size"])],8,c)}const s=i._(l,[["render",d]]);exports.default=s;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),o=require("../../_plugin-vue_export-helper-BRilXfQE.cjs"),l=require("../icon/icon-constants.cjs"),r={name:"DtLoader",props:{ariaLabel:{type:String,default:""},size:{type:String,default:"500",validator:n=>Object.keys(l.ICON_SIZE_MODIFIERS).includes(n)}}},i=["aria-label"];function s(n,t,a,c,u,_){return e.openBlock(),e.createElementBlock("div",{class:"d-loader","aria-label":a.ariaLabel||"loading","data-qa":"dt-loader"},[(e.openBlock(),e.createElementBlock("svg",{class:e.normalizeClass(["d-icon",`d-icon--size-${a.size}`,"d-loader__icon"]),"data-qa":"dt-loader-icon",viewBox:"0 0 24 24",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"},[...t[0]||(t[0]=[e.createElementVNode("path",{d:`
2
+ M0.0180664 12.0005
3
+ C0.0180664 5.38305 5.38305 0.0180664 12.0005 0.0180664
4
+ C12.8977 0.0183302 13.6255 0.745766 13.6255 1.64307
5
+ C13.6255 2.54037 12.8977 3.2678 12.0005 3.26807
6
+ C7.17797 3.26807 3.26807 7.17797 3.26807 12.0005
7
+ C3.26833 16.8228 7.17814 20.7319 12.0005 20.7319
8
+ C16.8226 20.7317 20.7317 16.8226 20.7319 12.0005
9
+ C20.7319 11.103 21.4595 10.3755 22.3569 10.3755
10
+ C23.2544 10.3755 23.9819 11.103 23.9819 12.0005
11
+ C23.9817 18.6175 18.6175 23.9817 12.0005 23.9819
12
+ C5.38321 23.9819 0.0183303 18.6177 0.0180664 12.0005Z
13
+ `},null,-1)])],2))],8,i)}const d=o._(r,[["render",s]]);exports.default=d;
2
14
  //# sourceMappingURL=loader.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"loader.cjs","sources":["../../../components/loader/loader.vue"],"sourcesContent":["<template>\n <div\n class=\"d-loader\"\n :aria-label=\"ariaLabel || 'loading'\"\n data-qa=\"dt-loader\"\n >\n <!-- Localize the aria-label -->\n <dt-icon-loading\n class=\"d-loader__icon\"\n data-qa=\"dt-loader-icon\"\n :size=\"size\"\n />\n </div>\n</template>\n\n<script>\nimport { DtIconLoading } from '@dialpad/dialtone-icons/vue3';\nimport { ICON_SIZE_MODIFIERS } from '@/components/icon';\n\nexport default {\n name: 'DtLoader',\n\n components: {\n DtIconLoading,\n },\n\n props: {\n /**\n * The label of the loader as read out by a screen reader.\n * Default is \"loading\"\n */\n ariaLabel: {\n type: String,\n default: '',\n },\n\n /**\n * The size of the icon.\n * @values 100, 200, 300, 400, 500, 600, 700, 800\n */\n size: {\n type: String,\n default: '500',\n validator: (s) => Object.keys(ICON_SIZE_MODIFIERS).includes(s),\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtIconLoading","s","ICON_SIZE_MODIFIERS","_createElementBlock","$props","_createVNode","_component_dt_icon_loading"],"mappings":"+QAmBKA,EAAU,CACb,KAAM,WAEN,WAAY,eACVC,EAAAA,eAGF,MAAO,CAKL,UAAW,CACT,KAAM,OACN,QAAS,IAOX,KAAM,CACJ,KAAM,OACN,QAAS,MACT,UAAYC,GAAM,OAAO,KAAKC,qBAAmB,EAAE,SAASD,CAAC,GAGnE,8GA7CEE,EAAAA,mBAWM,MAAA,CAVJ,MAAM,WACL,aAAYC,EAAA,WAAS,UACtB,UAAQ,cAGRC,EAAAA,YAIEC,EAAA,CAHA,MAAM,iBACN,UAAQ,iBACP,KAAMF,EAAA"}
1
+ {"version":3,"file":"loader.cjs","sources":["../../../components/loader/loader.vue"],"sourcesContent":["<template>\n <div\n class=\"d-loader\"\n :aria-label=\"ariaLabel || 'loading'\"\n data-qa=\"dt-loader\"\n >\n <svg\n :class=\"['d-icon', `d-icon--size-${size}`, 'd-loader__icon']\"\n data-qa=\"dt-loader-icon\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"\n M0.0180664 12.0005\n C0.0180664 5.38305 5.38305 0.0180664 12.0005 0.0180664\n C12.8977 0.0183302 13.6255 0.745766 13.6255 1.64307\n C13.6255 2.54037 12.8977 3.2678 12.0005 3.26807\n C7.17797 3.26807 3.26807 7.17797 3.26807 12.0005\n C3.26833 16.8228 7.17814 20.7319 12.0005 20.7319\n C16.8226 20.7317 20.7317 16.8226 20.7319 12.0005\n C20.7319 11.103 21.4595 10.3755 22.3569 10.3755\n C23.2544 10.3755 23.9819 11.103 23.9819 12.0005\n C23.9817 18.6175 18.6175 23.9817 12.0005 23.9819\n C5.38321 23.9819 0.0183303 18.6177 0.0180664 12.0005Z\n \"\n />\n </svg>\n </div>\n</template>\n\n<script>\nimport { ICON_SIZE_MODIFIERS } from '@/components/icon';\n\nexport default {\n name: 'DtLoader',\n\n props: {\n /**\n * The label of the loader as read out by a screen reader.\n * Default is \"loading\"\n */\n ariaLabel: {\n type: String,\n default: '',\n },\n\n /**\n * The size of the icon.\n * @values 100, 200, 300, 400, 500, 600, 700, 800\n */\n size: {\n type: String,\n default: '500',\n validator: (s) => Object.keys(ICON_SIZE_MODIFIERS).includes(s),\n },\n },\n};\n</script>\n"],"names":["_sfc_main","s","ICON_SIZE_MODIFIERS","_createElementBlock","$props","_createElementVNode"],"mappings":"qOAmCKA,EAAU,CACb,KAAM,WAEN,MAAO,CAKL,UAAW,CACT,KAAM,OACN,QAAS,IAOX,KAAM,CACJ,KAAM,OACN,QAAS,MACT,UAAYC,GAAM,OAAO,KAAKC,qBAAmB,EAAE,SAASD,CAAC,GAGnE,gEAzDEE,EAAAA,mBA4BM,MAAA,CA3BJ,MAAM,WACL,aAAYC,EAAA,WAAS,UACtB,UAAQ,6BAERD,EAAAA,mBAsBM,MAAA,CArBH,iDAAkCC,EAAA,IAAI,GAAA,gBAAA,CAAA,EACvC,UAAQ,iBACR,QAAQ,YACR,KAAK,eACL,MAAM,+CAENC,EAAAA,mBAcE,OAAA,CAbA,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAYD,EAAA,KAAA,EAAA"}
@@ -1,12 +1,8 @@
1
- import { DtIconLoading as t } from "@dialpad/dialtone-icons/vue3";
2
- import { resolveComponent as n, openBlock as r, createElementBlock as d, createVNode as i } from "vue";
3
- import { _ as l } from "../../_plugin-vue_export-helper-CHgC5LLL.js";
4
- import { ICON_SIZE_MODIFIERS as c } from "../icon/icon-constants.js";
1
+ import { openBlock as t, createElementBlock as o, normalizeClass as r, createElementVNode as l } from "vue";
2
+ import { _ as d } from "../../_plugin-vue_export-helper-CHgC5LLL.js";
3
+ import { ICON_SIZE_MODIFIERS as i } from "../icon/icon-constants.js";
5
4
  const s = {
6
5
  name: "DtLoader",
7
- components: {
8
- DtIconLoading: t
9
- },
10
6
  props: {
11
7
  /**
12
8
  * The label of the loader as read out by a screen reader.
@@ -23,26 +19,41 @@ const s = {
23
19
  size: {
24
20
  type: String,
25
21
  default: "500",
26
- validator: (e) => Object.keys(c).includes(e)
22
+ validator: (e) => Object.keys(i).includes(e)
27
23
  }
28
24
  }
29
- }, _ = ["aria-label"];
30
- function m(e, p, o, f, u, g) {
31
- const a = n("dt-icon-loading");
32
- return r(), d("div", {
25
+ }, c = ["aria-label"];
26
+ function C(e, a, n, _, m, p) {
27
+ return t(), o("div", {
33
28
  class: "d-loader",
34
- "aria-label": o.ariaLabel || "loading",
29
+ "aria-label": n.ariaLabel || "loading",
35
30
  "data-qa": "dt-loader"
36
31
  }, [
37
- i(a, {
38
- class: "d-loader__icon",
32
+ (t(), o("svg", {
33
+ class: r(["d-icon", `d-icon--size-${n.size}`, "d-loader__icon"]),
39
34
  "data-qa": "dt-loader-icon",
40
- size: o.size
41
- }, null, 8, ["size"])
42
- ], 8, _);
35
+ viewBox: "0 0 24 24",
36
+ fill: "currentColor",
37
+ xmlns: "http://www.w3.org/2000/svg"
38
+ }, [...a[0] || (a[0] = [
39
+ l("path", { d: `
40
+ M0.0180664 12.0005
41
+ C0.0180664 5.38305 5.38305 0.0180664 12.0005 0.0180664
42
+ C12.8977 0.0183302 13.6255 0.745766 13.6255 1.64307
43
+ C13.6255 2.54037 12.8977 3.2678 12.0005 3.26807
44
+ C7.17797 3.26807 3.26807 7.17797 3.26807 12.0005
45
+ C3.26833 16.8228 7.17814 20.7319 12.0005 20.7319
46
+ C16.8226 20.7317 20.7317 16.8226 20.7319 12.0005
47
+ C20.7319 11.103 21.4595 10.3755 22.3569 10.3755
48
+ C23.2544 10.3755 23.9819 11.103 23.9819 12.0005
49
+ C23.9817 18.6175 18.6175 23.9817 12.0005 23.9819
50
+ C5.38321 23.9819 0.0183303 18.6177 0.0180664 12.0005Z
51
+ ` }, null, -1)
52
+ ])], 2))
53
+ ], 8, c);
43
54
  }
44
- const S = /* @__PURE__ */ l(s, [["render", m]]);
55
+ const b = /* @__PURE__ */ d(s, [["render", C]]);
45
56
  export {
46
- S as default
57
+ b as default
47
58
  };
48
59
  //# sourceMappingURL=loader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sources":["../../../components/loader/loader.vue"],"sourcesContent":["<template>\n <div\n class=\"d-loader\"\n :aria-label=\"ariaLabel || 'loading'\"\n data-qa=\"dt-loader\"\n >\n <!-- Localize the aria-label -->\n <dt-icon-loading\n class=\"d-loader__icon\"\n data-qa=\"dt-loader-icon\"\n :size=\"size\"\n />\n </div>\n</template>\n\n<script>\nimport { DtIconLoading } from '@dialpad/dialtone-icons/vue3';\nimport { ICON_SIZE_MODIFIERS } from '@/components/icon';\n\nexport default {\n name: 'DtLoader',\n\n components: {\n DtIconLoading,\n },\n\n props: {\n /**\n * The label of the loader as read out by a screen reader.\n * Default is \"loading\"\n */\n ariaLabel: {\n type: String,\n default: '',\n },\n\n /**\n * The size of the icon.\n * @values 100, 200, 300, 400, 500, 600, 700, 800\n */\n size: {\n type: String,\n default: '500',\n validator: (s) => Object.keys(ICON_SIZE_MODIFIERS).includes(s),\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtIconLoading","s","ICON_SIZE_MODIFIERS","_createElementBlock","$props","_createVNode","_component_dt_icon_loading"],"mappings":";;;;AAmBA,MAAKA,IAAU;AAAA,EACb,MAAM;AAAA,EAEN,YAAY;AAAA,IACV,eAAAC;AAAA;EAGF,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,IAKL,WAAW;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA;;;;;IAOX,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,SAAS;AAAA,MACT,WAAW,CAACC,MAAM,OAAO,KAAKC,CAAmB,EAAE,SAASD,CAAC;AAAA;;AAGnE;;;cA7CEE,EAWM,OAAA;AAAA,IAVJ,OAAM;AAAA,IACL,cAAYC,EAAA,aAAS;AAAA,IACtB,WAAQ;AAAA;IAGRC,EAIEC,GAAA;AAAA,MAHA,OAAM;AAAA,MACN,WAAQ;AAAA,MACP,MAAMF,EAAA;AAAA;;;;"}
1
+ {"version":3,"file":"loader.js","sources":["../../../components/loader/loader.vue"],"sourcesContent":["<template>\n <div\n class=\"d-loader\"\n :aria-label=\"ariaLabel || 'loading'\"\n data-qa=\"dt-loader\"\n >\n <svg\n :class=\"['d-icon', `d-icon--size-${size}`, 'd-loader__icon']\"\n data-qa=\"dt-loader-icon\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"\n M0.0180664 12.0005\n C0.0180664 5.38305 5.38305 0.0180664 12.0005 0.0180664\n C12.8977 0.0183302 13.6255 0.745766 13.6255 1.64307\n C13.6255 2.54037 12.8977 3.2678 12.0005 3.26807\n C7.17797 3.26807 3.26807 7.17797 3.26807 12.0005\n C3.26833 16.8228 7.17814 20.7319 12.0005 20.7319\n C16.8226 20.7317 20.7317 16.8226 20.7319 12.0005\n C20.7319 11.103 21.4595 10.3755 22.3569 10.3755\n C23.2544 10.3755 23.9819 11.103 23.9819 12.0005\n C23.9817 18.6175 18.6175 23.9817 12.0005 23.9819\n C5.38321 23.9819 0.0183303 18.6177 0.0180664 12.0005Z\n \"\n />\n </svg>\n </div>\n</template>\n\n<script>\nimport { ICON_SIZE_MODIFIERS } from '@/components/icon';\n\nexport default {\n name: 'DtLoader',\n\n props: {\n /**\n * The label of the loader as read out by a screen reader.\n * Default is \"loading\"\n */\n ariaLabel: {\n type: String,\n default: '',\n },\n\n /**\n * The size of the icon.\n * @values 100, 200, 300, 400, 500, 600, 700, 800\n */\n size: {\n type: String,\n default: '500',\n validator: (s) => Object.keys(ICON_SIZE_MODIFIERS).includes(s),\n },\n },\n};\n</script>\n"],"names":["_sfc_main","s","ICON_SIZE_MODIFIERS","_createElementBlock","$props","_createElementVNode"],"mappings":";;;AAmCA,MAAKA,IAAU;AAAA,EACb,MAAM;AAAA,EAEN,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,IAKL,WAAW;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA;;;;;IAOX,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,SAAS;AAAA,MACT,WAAW,CAACC,MAAM,OAAO,KAAKC,CAAmB,EAAE,SAASD,CAAC;AAAA;;AAGnE;;cAzDEE,EA4BM,OAAA;AAAA,IA3BJ,OAAM;AAAA,IACL,cAAYC,EAAA,aAAS;AAAA,IACtB,WAAQ;AAAA;UAERD,EAsBM,OAAA;AAAA,MArBH,oCAAkCC,EAAA,IAAI,IAAA,gBAAA,CAAA;AAAA,MACvC,WAAQ;AAAA,MACR,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,OAAM;AAAA;MAENC,EAcE,QAAA,EAbA,GAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAYD,GAAA,MAAA,EAAA;AAAA;;;;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const P=require("./last-active-nodes.cjs"),k=require("../../common/utils/index.cjs"),f=require("@tiptap/core"),b=require("../../node_modules/@tiptap/vue-3.cjs"),d=require("@dialpad/dialtone-icons/vue3"),T=require("../../localization/index.cjs"),e=require("vue"),v=require("../../_plugin-vue_export-helper-BRilXfQE.cjs"),B=require("../button/button.cjs"),j=require("../item-layout/item-layout.cjs"),V=require("./message-input-topbar.cjs"),N=require("./message-input-link.cjs"),S=require("../editor/editor-constants.cjs"),A=require("../stack/stack.cjs"),M=require("../tooltip/tooltip.cjs"),q=require("../rich-text-editor/rich-text-editor.cjs"),F=require("../popover/popover.cjs"),R=require("../input/input.cjs"),U=require("../emoji-picker/emoji-picker.cjs"),C=require("../rich-text-editor/rich-text-editor-constants.cjs"),z={name:"MeetingPill",components:{NodeViewWrapper:b.NodeViewWrapper,DtItemLayout:j.default,DtIconClose:d.DtIconClose,DtButton:B.default,DtIconVideo:d.DtIconVideo},props:b.nodeViewProps,emits:["meeting-pill-close"],data(){return{i18n:new T.DialtoneLocalization}},computed:{closeButtonTitle(){return this.i18n.$t("DIALTONE_CLOSE_BUTTON")}},methods:{close(i){var o,r,l;const t=(l=(r=(o=this.editor)==null?void 0:o.storage)==null?void 0:r.meetingPill)==null?void 0:l.onClose;t&&typeof t=="function"&&t(i)}}},H={class:"d-recipe-message-input-meeting-pill__icon"},G={class:"d-recipe-message-input-meeting-pill__close"};function W(i,t,o,r,l,n){const m=e.resolveComponent("dt-icon-video"),p=e.resolveComponent("dt-icon-close"),h=e.resolveComponent("dt-button"),g=e.resolveComponent("dt-item-layout"),c=e.resolveComponent("node-view-wrapper");return e.openBlock(),e.createBlock(c,{class:"d-recipe-message-input-meeting-pill"},{default:e.withCtx(()=>[e.createVNode(g,{class:"d-recipe-message-input-meeting-pill__layout",unstyled:""},{left:e.withCtx(()=>[e.createElementVNode("div",H,[e.createVNode(m,{size:"400"})])]),right:e.withCtx(()=>[e.createElementVNode("div",G,[e.createVNode(h,{circle:"",importance:"clear",size:"xs","aria-label":n.closeButtonTitle,title:n.closeButtonTitle,onClick:n.close},{icon:e.withCtx(()=>[e.createVNode(p,{size:"300"})]),_:1},8,["aria-label","title","onClick"])])]),default:e.withCtx(()=>[e.createTextVNode(" "+e.toDisplayString(i.node.attrs.text)+" ",1)]),_:1})]),_:1})}const K=v._(z,[["render",W]]),X=f.Node.create({name:"meetingPill",atom:!0,group:"inline",inline:!0,addOptions(){return{onClose:()=>{}}},addStorage(){return{onClose:this.options.onClose}},addNodeView(){return b.VueNodeViewRenderer(K)},addAttributes(){return{text:{default:'Please pass in "text" attribute'}}},parseHTML(){return[{tag:"meeting-pill"}]},renderText(){return"/dpm"},renderHTML({HTMLAttributes:i}){return["meeting-pill",f.mergeAttributes(i)]}}),Q={compatConfig:{MODE:3},name:"DtRecipeMessageInput",components:{DtButton:B.default,DtEmojiPicker:U.default,DtInput:R.default,DtPopover:F.default,DtRecipeMessageInputTopbar:V.default,DtRecipeMessageInputLink:N.default,DtRichTextEditor:q.default,DtTooltip:M.default,DtStack:A.default,DtIconImage:d.DtIconImage,DtIconVerySatisfied:d.DtIconVerySatisfied,DtIconSatisfied:d.DtIconSatisfied,DtIconSend:d.DtIconSend},inheritAttrs:!1,props:{richText:{type:Boolean,default:!0},modelValue:{type:[Object,String],default:""},editable:{type:Boolean,default:!0},inputAriaLabel:{type:String,required:!0,default:""},preventTyping:{type:Boolean,default:!1},inputClass:{type:String,default:""},autoFocus:{type:[Boolean,String,Number],default:!1,validator(i){return typeof i=="string"?C.RICH_TEXT_EDITOR_AUTOFOCUS_TYPES.includes(i):!0}},outputFormat:{type:String,default:"json",validator(i){return C.RICH_TEXT_EDITOR_OUTPUT_FORMATS.includes(i)}},placeholder:{type:String,default:""},disableSend:{type:Boolean,default:!1},maxHeight:{type:String,default:"unset"},showEmojiPicker:{type:Boolean,default:!0},emojiPickerProps:{type:Object,default:()=>({})},showCharacterLimit:{type:[Boolean,Object],default:()=>({count:1500,warning:500,message:""})},showImagePicker:{type:[Boolean,Object],default:()=>({})},showSend:{type:[Boolean,Object],default:()=>({})},showCancel:{type:[Boolean,Object],default:()=>({})},mentionSuggestion:{type:Object,default:null},channelSuggestion:{type:Object,default:null},slashCommandSuggestion:{type:Object,default:null},boldButtonOptions:{type:Object,default:()=>({keyboardShortcutText:"Mod + B"})},italicButtonOptions:{type:Object,default:()=>({keyboardShortcutText:"Mod + I"})},strikeButtonOptions:{type:Object,default:()=>({keyboardShortcutText:"Mod + Shift + S"})},linkButtonOptions:{type:Object,default:()=>({keyboardShortcutText:"Mod + K",linkPlaceholder:"e.g. https://www.dialpad.com"})},bulletListButtonOptions:{type:Object,default:()=>({keyboardShortcutText:"Mod + Shift + 8"})},orderedListButtonOptions:{type:Object,default:()=>({keyboardShortcutText:"Mod + Shift + 7"})},blockQuoteButtonOptions:{type:Object,default:()=>({keyboardShortcutText:"Mod + Shift + B"})},codeButtonOptions:{type:Object,default:()=>({keyboardShortcutText:"Mod + E"})},codeBlockButtonOptions:{type:Object,default:()=>({keyboardShortcutText:"Mod + Alt + C"})}},emits:["submit","select-media","add-media","paste-media","cancel","skin-tone","selected-emoji","selected-command","meeting-pill-close","update:modelValue","text-input","markdown-input","add-emoji","emoji-scroll-bottom-reached"],data(){return{lastActiveNodes:P.default,additionalExtensions:[X.configure({onClose:i=>{this.$emit("meeting-pill-close",i)}})],internalInputValue:this.modelValue,imagePickerFocus:!1,emojiPickerFocus:!1,emojiPickerOpened:!1,isFocused:!1,linkOptions:{class:"d-link d-c-text d-d-inline-block"},linkDialogOpen:!1,selectedText:"",text:"",hideLinkBubbleMenu:!1,i18n:new T.DialtoneLocalization}},computed:{showSendIcon(){return!this.showSend.text},inputLength(){return this.text.length},displayCharacterLimitWarning(){return!!this.showCharacterLimit&&this.showCharacterLimit.count-this.inputLength<=this.showCharacterLimit.warning},characterLimitTooltipEnabled(){return this.showCharacterLimit.message&&this.showCharacterLimit.count-this.inputLength<0},isSendDisabled(){return this.disableSend||this.showCharacterLimit&&this.inputLength>this.showCharacterLimit.count},emojiPickerHovered(){return this.emojiPickerFocus||this.emojiPickerOpened},sendIconSize(){return"300"},sendButtonLabel(){return this.i18n.$t("DIALTONE_MESSAGE_INPUT_SEND_BUTTON_ARIA_LABEL")},imagePickerButtonLabel(){return this.i18n.$t("DIALTONE_MESSAGE_INPUT_IMAGE_PICKER_BUTTON_ARIA_LABEL")},emojiPickerButtonLabel(){return this.i18n.$t("DIALTONE_MESSAGE_INPUT_EMOJI_PICKER_BUTTON_ARIA_LABEL")},cancelButtonLabel(){return this.i18n.$t("DIALTONE_MESSAGE_INPUT_CANCEL_BUTTON_ARIA_LABEL")}},watch:{modelValue(i){this.internalInputValue=i},emojiPickerOpened(i){var t;i||(t=this.$refs.richTextEditor)==null||t.focusEditor()}},created(){this.modelValue&&this.outputFormat==="text"?this.internalInputValue=this.modelValue.replace(/\n/g,"<br>"):this.internalInputValue=this.modelValue},methods:{removeClassStyleAttrs:k.removeClassStyleAttrs,addClassStyleAttrs:k.addClassStyleAttrs,linkDialogOpened(i){var t;this.linkDialogOpen=i,i===!0?this.initLinkDialog():(this.hideLinkBubbleMenu=!1,(t=this.$refs.richTextEditor)==null||t.focusEditor())},handleTopbarClick(i){var r;const t=(r=this.$refs.richTextEditor)==null?void 0:r.editor,o={bold:()=>t==null?void 0:t.chain().focus().toggleBold().run(),italic:()=>t==null?void 0:t.chain().focus().toggleItalic().run(),strike:()=>t==null?void 0:t.chain().focus().toggleStrike().run(),bulletList:()=>t==null?void 0:t.chain().focus().toggleBulletList().run(),orderedList:()=>t==null?void 0:t.chain().focus().toggleOrderedList().run(),blockquote:()=>t==null?void 0:t.chain().focus().toggleBlockquote().run(),code:()=>t==null?void 0:t.chain().focus().toggleCode().run(),codeBlock:()=>t==null?void 0:t.chain().focus().toggleCodeBlock().run()};t&&o[i]&&o[i]()},isSelectionActive(i){var t,o,r,l;return["bulletList","orderedList"].includes(i)?this.richText?this.lastActiveNodes((o=(t=this.$refs.richTextEditor)==null?void 0:t.editor)==null?void 0:o.state,[{type:"bulletList"},{type:"orderedList"}]).includes(i)&&this.isFocused:!1:((l=(r=this.$refs.richTextEditor)==null?void 0:r.editor)==null?void 0:l.isActive(i))&&this.isFocused},initLinkDialog(){var i,t,o;this.$refs.link.setInitialValues(this.selectedText,(o=(t=(i=this.$refs.richTextEditor)==null?void 0:i.editor)==null?void 0:t.getAttributes("link"))==null?void 0:o.href),this.hideLinkBubbleMenu=!0,this.linkDialogOpen=!0},removeLink(){var i;(i=this.$refs.richTextEditor)==null||i.removeLink(),this.linkDialogOpen=!1},setLink(i,t){this.$refs.richTextEditor.setLink(t,i,this.linkOptions,S.EDITOR_SUPPORTED_LINK_PROTOCOLS,S.EDITOR_DEFAULT_LINK_PREFIX),this.linkDialogOpen=!1},onMousedown(i){k.returnFirstEl(this.$refs.richTextEditor.$el).querySelector(".tiptap").contains(i.target)||(i.preventDefault(),this.$refs.richTextEditor.focusEditor())},onDrop(i){const t=i.dataTransfer,o=Array.from(t.files);this.$emit("add-media",o)},onPaste(i){if(i.clipboardData.files.length){i.stopPropagation(),i.preventDefault();const t=[...i.clipboardData.files];this.$emit("paste-media",t)}},onSkinTone(i){this.$emit("skin-tone",i)},onSelectEmoji(i,t){i&&(i.shift_key||t(),this.$refs.richTextEditor.editor.commands.insertContent({type:"emoji",attrs:{code:i.shortname,image:i.image,name:i.name}}),this.$emit("selected-emoji",i))},onSelectImage(){this.$refs.messageInputImageUpload.$refs.input.click()},onImageUpload(){this.$emit("select-media",this.$refs.messageInputImageUpload.$refs.input.files)},toggleEmojiPicker(){this.emojiPickerOpened=!this.emojiPickerOpened},onSend(){this.isSendDisabled||this.$emit("submit",this.internalInputValue)},onCancel(){this.$emit("cancel")},onInput(i){this.$emit("update:modelValue",i)},onTextInput(i){this.text=i,this.$emit("text-input",i)},onMarkdownInput(i){this.$emit("markdown-input",i)}}},J={class:"d-recipe-message-input__bottom-section"},Y={class:"d-recipe-message-input__bottom-section-left"},Z={class:"d-recipe-message-input__bottom-section-right"},$={class:"d-recipe-message-input__schedule-message"},ee={class:"d-recipe-message-input__sms-count"},te={key:0};function ie(i,t,o,r,l,n){const m=e.resolveComponent("dt-recipe-message-input-link"),p=e.resolveComponent("dt-recipe-message-input-topbar"),h=e.resolveComponent("dt-rich-text-editor"),g=e.resolveComponent("dt-icon-image"),c=e.resolveComponent("dt-button"),I=e.resolveComponent("dt-input"),w=e.resolveComponent("dt-icon-very-satisfied"),L=e.resolveComponent("dt-icon-satisfied"),y=e.resolveComponent("dt-emoji-picker"),E=e.resolveComponent("dt-popover"),_=e.resolveComponent("dt-stack"),O=e.resolveComponent("dt-tooltip"),x=e.resolveComponent("dt-icon-send"),D=e.resolveDirective("dt-scrollbar"),u=e.resolveDirective("dt-tooltip");return e.openBlock(),e.createElementBlock("div",e.mergeProps({"data-qa":"dt-recipe-message-input",role:"presentation",class:"d-recipe-message-input"},n.addClassStyleAttrs(i.$attrs),{onDragover:t[16]||(t[16]=e.withModifiers(()=>{},["prevent"])),onDrop:t[17]||(t[17]=e.withModifiers((...s)=>n.onDrop&&n.onDrop(...s),["prevent"])),onPaste:t[18]||(t[18]=(...s)=>n.onPaste&&n.onPaste(...s)),onMousedown:t[19]||(t[19]=(...s)=>n.onMousedown&&n.onMousedown(...s))}),[e.renderSlot(i.$slots,"top"),o.richText?(e.openBlock(),e.createBlock(p,{key:l.selectedText,"bold-button-options":o.boldButtonOptions,"italic-button-options":o.italicButtonOptions,"strike-button-options":o.strikeButtonOptions,"bullet-list-button-options":o.bulletListButtonOptions,"ordered-list-button-options":o.orderedListButtonOptions,"block-quote-button-options":o.blockQuoteButtonOptions,"code-button-options":o.codeButtonOptions,"code-block-button-options":o.codeBlockButtonOptions,"is-selection-active":n.isSelectionActive,onClick:n.handleTopbarClick},{link:e.withCtx(()=>[e.createVNode(m,{ref:"link",open:l.linkDialogOpen,"link-button-options":o.linkButtonOptions,"is-selection-active":n.isSelectionActive,onOpened:n.linkDialogOpened,onSetLink:n.setLink,onRemoveLink:n.removeLink},null,8,["open","link-button-options","is-selection-active","onOpened","onSetLink","onRemoveLink"])]),_:1},8,["bold-button-options","italic-button-options","strike-button-options","bullet-list-button-options","ordered-list-button-options","block-quote-button-options","code-button-options","code-block-button-options","is-selection-active","onClick"])):e.createCommentVNode("",!0),e.withDirectives((e.openBlock(),e.createElementBlock("div",{class:"d-recipe-message-input__editor-wrapper",style:e.normalizeStyle({"max-height":o.maxHeight})},[e.createVNode(h,e.mergeProps({ref:"richTextEditor",modelValue:l.internalInputValue,"onUpdate:modelValue":t[0]||(t[0]=s=>l.internalInputValue=s),"allow-blockquote":o.richText,"allow-bold":o.richText,"allow-bullet-list":o.richText,"allow-code":o.richText,"allow-codeblock":o.richText,"allow-italic":o.richText,"allow-strike":o.richText,"allow-underline":o.richText,"paste-rich-text":o.richText,editable:o.editable,"input-aria-label":o.inputAriaLabel,"input-class":o.inputClass,"output-format":o.outputFormat,"auto-focus":o.autoFocus,link:o.richText,placeholder:o.placeholder,"prevent-typing":o.preventTyping,"mention-suggestion":o.mentionSuggestion,"channel-suggestion":o.channelSuggestion,"slash-command-suggestion":o.slashCommandSuggestion,"additional-extensions":l.additionalExtensions,"hide-link-bubble-menu":l.hideLinkBubbleMenu},n.removeClassStyleAttrs(i.$attrs),{onInput:n.onInput,onTextInput:n.onTextInput,onMarkdownInput:n.onMarkdownInput,onEnter:n.onSend,onSelected:t[1]||(t[1]=s=>l.selectedText=s),onSelectedCommand:t[2]||(t[2]=s=>i.$emit("selected-command",s)),onEditLink:n.initLinkDialog,onFocus:t[3]||(t[3]=s=>l.isFocused=!0),onBlur:t[4]||(t[4]=s=>l.isFocused=!1)}),null,16,["modelValue","allow-blockquote","allow-bold","allow-bullet-list","allow-code","allow-codeblock","allow-italic","allow-strike","allow-underline","paste-rich-text","editable","input-aria-label","input-class","output-format","auto-focus","link","placeholder","prevent-typing","mention-suggestion","channel-suggestion","slash-command-suggestion","additional-extensions","hide-link-bubble-menu","onInput","onTextInput","onMarkdownInput","onEnter","onEditLink"])],4)),[[D]]),e.renderSlot(i.$slots,"middle"),e.createElementVNode("section",J,[e.createElementVNode("div",Y,[e.createVNode(_,{gap:"200",direction:"row"},{default:e.withCtx(()=>[o.showImagePicker?e.withDirectives((e.openBlock(),e.createBlock(c,{key:0,"data-qa":"dt-recipe-message-input-image-btn",size:"sm",class:"d-recipe-message-input__button",kind:"muted",importance:"clear","aria-label":n.imagePickerButtonLabel,onClick:n.onSelectImage,onMouseenter:t[5]||(t[5]=s=>l.imagePickerFocus=!0),onMouseleave:t[6]||(t[6]=s=>l.imagePickerFocus=!1),onFocus:t[7]||(t[7]=s=>l.imagePickerFocus=!0),onBlur:t[8]||(t[8]=s=>l.imagePickerFocus=!1)},{icon:e.withCtx(()=>[e.createVNode(g,{size:"300"})]),_:1},8,["aria-label","onClick"])),[[u,n.imagePickerButtonLabel,"top-start"]]):e.createCommentVNode("",!0),e.createVNode(I,{ref:"messageInputImageUpload","data-qa":"dt-recipe-message-input-image-input",accept:"image/*, video/*",type:"file",class:"d-recipe-message-input__image-input",multiple:"",hidden:"",onInput:n.onImageUpload},null,8,["onInput"]),o.showEmojiPicker?(e.openBlock(),e.createBlock(E,{key:1,open:l.emojiPickerOpened,"onUpdate:open":t[15]||(t[15]=s=>l.emojiPickerOpened=s),"data-qa":"dt-recipe-message-input-emoji-picker-popover","initial-focus-element":"#searchInput",padding:"none"},{anchor:e.withCtx(({attrs:s})=>[e.withDirectives((e.openBlock(),e.createBlock(c,e.mergeProps(s,{"data-qa":"dt-recipe-message-input-emoji-picker-btn",size:"sm",class:"d-recipe-message-input__button",kind:"muted",importance:"clear","aria-label":n.emojiPickerButtonLabel,onClick:n.toggleEmojiPicker,onMouseenter:t[9]||(t[9]=a=>l.emojiPickerFocus=!0),onMouseleave:t[10]||(t[10]=a=>l.emojiPickerFocus=!1),onFocus:t[11]||(t[11]=a=>l.emojiPickerFocus=!0),onBlur:t[12]||(t[12]=a=>l.emojiPickerFocus=!1)}),{icon:e.withCtx(()=>[n.emojiPickerHovered?(e.openBlock(),e.createBlock(w,{key:0,size:"300"})):(e.openBlock(),e.createBlock(L,{key:1,size:"300"}))]),_:1},16,["aria-label","onClick"])),[[u,n.emojiPickerButtonLabel]])]),content:e.withCtx(({close:s})=>[e.createVNode(y,e.mergeProps(o.emojiPickerProps,{onAddEmoji:t[13]||(t[13]=a=>i.$emit("add-emoji")),onSkinTone:n.onSkinTone,onSelectedEmoji:a=>n.onSelectEmoji(a,s),onScrollBottomReached:t[14]||(t[14]=a=>i.$emit("emoji-scroll-bottom-reached"))}),null,16,["onSkinTone","onSelectedEmoji"])]),_:1},8,["open"])):e.createCommentVNode("",!0),e.renderSlot(i.$slots,"emojiGiphyPicker"),e.renderSlot(i.$slots,"customActionIcons")]),_:3})]),e.createElementVNode("div",Z,[e.createVNode(_,{direction:"row",gap:"300"},{default:e.withCtx(()=>[e.createElementVNode("div",$,[e.renderSlot(i.$slots,"scheduleMessage")]),e.createElementVNode("div",ee,[e.renderSlot(i.$slots,"smsCount")]),o.showCharacterLimit?(e.openBlock(),e.createBlock(O,{key:0,class:"d-recipe-message-input__remaining-char-tooltip",placement:"top-end",enabled:n.characterLimitTooltipEnabled,message:o.showCharacterLimit.message,offset:[10,8]},{anchor:e.withCtx(()=>[e.withDirectives(e.createElementVNode("p",{class:"d-recipe-message-input__remaining-char","data-qa":"dt-recipe-message-input-character-limit"},e.toDisplayString(o.showCharacterLimit.count-n.inputLength),513),[[e.vShow,n.displayCharacterLimitWarning]])]),_:1},8,["enabled","message"])):e.createCommentVNode("",!0),o.showCancel?e.withDirectives((e.openBlock(),e.createBlock(c,{key:1,"data-qa":"dt-recipe-message-input-cancel-button",class:"d-recipe-message-input__button d-recipe-message-input__cancel-button",size:"sm",kind:"muted",importance:"clear","aria-label":n.cancelButtonLabel,onClick:n.onCancel},{default:e.withCtx(()=>[e.createElementVNode("p",null,e.toDisplayString(n.cancelButtonLabel),1)]),_:1},8,["aria-label","onClick"])),[[u,n.cancelButtonLabel]]):e.createCommentVNode("",!0),e.renderSlot(i.$slots,"sendButton",{},()=>[o.showSend?e.withDirectives((e.openBlock(),e.createBlock(c,{key:0,"data-qa":"dt-recipe-message-input-send-btn",size:"sm",kind:"default",importance:"primary",class:e.normalizeClass(["d-recipe-message-input__button d-recipe-message-input__send-button",{"d-recipe-message-input__send-button--disabled":n.isSendDisabled,"d-btn--icon-only":n.showSendIcon}]),"aria-label":n.sendButtonLabel,"aria-disabled":n.isSendDisabled,onClick:n.onSend},e.createSlots({default:e.withCtx(()=>[o.showSend.text?(e.openBlock(),e.createElementBlock("p",te,e.toDisplayString(o.showSend.text),1)):e.createCommentVNode("",!0)]),_:2},[n.showSendIcon?{name:"icon",fn:e.withCtx(()=>[e.renderSlot(i.$slots,"sendIcon",{iconSize:n.sendIconSize},()=>[e.createVNode(x,{size:n.sendIconSize},null,8,["size"])])]),key:"0"}:void 0]),1032,["class","aria-label","aria-disabled","onClick"])),[[u,n.sendButtonLabel,"top-end"]]):e.createCommentVNode("",!0)])]),_:3})])])],16)}const oe=v._(Q,[["render",ie]]);exports.default=oe;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const P=require("./last-active-nodes.cjs"),k=require("../../common/utils/index.cjs"),f=require("@tiptap/core"),b=require("../../node_modules/@tiptap/vue-3.cjs"),d=require("@dialpad/dialtone-icons/vue3"),T=require("../../localization/index.cjs"),e=require("vue"),v=require("../../_plugin-vue_export-helper-BRilXfQE.cjs"),B=require("../button/button.cjs"),j=require("../item-layout/item-layout.cjs"),V=require("./message-input-topbar.cjs"),N=require("./message-input-link.cjs"),S=require("../editor/editor-constants.cjs"),A=require("../stack/stack.cjs"),M=require("../tooltip/tooltip.cjs"),q=require("../rich-text-editor/rich-text-editor.cjs"),F=require("../popover/popover.cjs"),R=require("../input/input.cjs"),U=require("../emoji-picker/emoji-picker.cjs"),C=require("../rich-text-editor/rich-text-editor-constants.cjs"),z={name:"MeetingPill",components:{NodeViewWrapper:b.NodeViewWrapper,DtItemLayout:j.default,DtIconClose:d.DtIconClose,DtButton:B.default,DtIconVideo:d.DtIconVideo},props:b.nodeViewProps,emits:["meeting-pill-close"],data(){return{i18n:new T.DialtoneLocalization}},computed:{closeButtonTitle(){return this.i18n.$t("DIALTONE_CLOSE_BUTTON")}},methods:{close(i){var o,r,l;const t=(l=(r=(o=this.editor)==null?void 0:o.storage)==null?void 0:r.meetingPill)==null?void 0:l.onClose;t&&typeof t=="function"&&t(i)}}},H={class:"d-recipe-message-input-meeting-pill__icon"},G={class:"d-recipe-message-input-meeting-pill__close"};function W(i,t,o,r,l,n){const m=e.resolveComponent("dt-icon-video"),p=e.resolveComponent("dt-icon-close"),h=e.resolveComponent("dt-button"),g=e.resolveComponent("dt-item-layout"),c=e.resolveComponent("node-view-wrapper");return e.openBlock(),e.createBlock(c,{class:"d-recipe-message-input-meeting-pill"},{default:e.withCtx(()=>[e.createVNode(g,{class:"d-recipe-message-input-meeting-pill__layout",unstyled:""},{start:e.withCtx(()=>[e.createElementVNode("div",H,[e.createVNode(m,{size:"400"})])]),end:e.withCtx(()=>[e.createElementVNode("div",G,[e.createVNode(h,{circle:"",importance:"clear",size:"xs","aria-label":n.closeButtonTitle,title:n.closeButtonTitle,onClick:n.close},{icon:e.withCtx(()=>[e.createVNode(p,{size:"300"})]),_:1},8,["aria-label","title","onClick"])])]),default:e.withCtx(()=>[e.createTextVNode(" "+e.toDisplayString(i.node.attrs.text)+" ",1)]),_:1})]),_:1})}const K=v._(z,[["render",W]]),X=f.Node.create({name:"meetingPill",atom:!0,group:"inline",inline:!0,addOptions(){return{onClose:()=>{}}},addStorage(){return{onClose:this.options.onClose}},addNodeView(){return b.VueNodeViewRenderer(K)},addAttributes(){return{text:{default:'Please pass in "text" attribute'}}},parseHTML(){return[{tag:"meeting-pill"}]},renderText(){return"/dpm"},renderHTML({HTMLAttributes:i}){return["meeting-pill",f.mergeAttributes(i)]}}),Q={compatConfig:{MODE:3},name:"DtRecipeMessageInput",components:{DtButton:B.default,DtEmojiPicker:U.default,DtInput:R.default,DtPopover:F.default,DtRecipeMessageInputTopbar:V.default,DtRecipeMessageInputLink:N.default,DtRichTextEditor:q.default,DtTooltip:M.default,DtStack:A.default,DtIconImage:d.DtIconImage,DtIconVerySatisfied:d.DtIconVerySatisfied,DtIconSatisfied:d.DtIconSatisfied,DtIconSend:d.DtIconSend},inheritAttrs:!1,props:{richText:{type:Boolean,default:!0},modelValue:{type:[Object,String],default:""},editable:{type:Boolean,default:!0},inputAriaLabel:{type:String,required:!0,default:""},preventTyping:{type:Boolean,default:!1},inputClass:{type:String,default:""},autoFocus:{type:[Boolean,String,Number],default:!1,validator(i){return typeof i=="string"?C.RICH_TEXT_EDITOR_AUTOFOCUS_TYPES.includes(i):!0}},outputFormat:{type:String,default:"json",validator(i){return C.RICH_TEXT_EDITOR_OUTPUT_FORMATS.includes(i)}},placeholder:{type:String,default:""},disableSend:{type:Boolean,default:!1},maxHeight:{type:String,default:"unset"},showEmojiPicker:{type:Boolean,default:!0},emojiPickerProps:{type:Object,default:()=>({})},showCharacterLimit:{type:[Boolean,Object],default:()=>({count:1500,warning:500,message:""})},showImagePicker:{type:[Boolean,Object],default:()=>({})},showSend:{type:[Boolean,Object],default:()=>({})},showCancel:{type:[Boolean,Object],default:()=>({})},mentionSuggestion:{type:Object,default:null},channelSuggestion:{type:Object,default:null},slashCommandSuggestion:{type:Object,default:null},boldButtonOptions:{type:Object,default:()=>({keyboardShortcutText:"Mod + B"})},italicButtonOptions:{type:Object,default:()=>({keyboardShortcutText:"Mod + I"})},strikeButtonOptions:{type:Object,default:()=>({keyboardShortcutText:"Mod + Shift + S"})},linkButtonOptions:{type:Object,default:()=>({keyboardShortcutText:"Mod + K",linkPlaceholder:"e.g. https://www.dialpad.com"})},bulletListButtonOptions:{type:Object,default:()=>({keyboardShortcutText:"Mod + Shift + 8"})},orderedListButtonOptions:{type:Object,default:()=>({keyboardShortcutText:"Mod + Shift + 7"})},blockQuoteButtonOptions:{type:Object,default:()=>({keyboardShortcutText:"Mod + Shift + B"})},codeButtonOptions:{type:Object,default:()=>({keyboardShortcutText:"Mod + E"})},codeBlockButtonOptions:{type:Object,default:()=>({keyboardShortcutText:"Mod + Alt + C"})}},emits:["submit","select-media","add-media","paste-media","cancel","skin-tone","selected-emoji","selected-command","meeting-pill-close","update:modelValue","text-input","markdown-input","add-emoji","emoji-scroll-bottom-reached"],data(){return{lastActiveNodes:P.default,additionalExtensions:[X.configure({onClose:i=>{this.$emit("meeting-pill-close",i)}})],internalInputValue:this.modelValue,imagePickerFocus:!1,emojiPickerFocus:!1,emojiPickerOpened:!1,isFocused:!1,linkOptions:{class:"d-link d-c-text d-d-inline-block"},linkDialogOpen:!1,selectedText:"",text:"",hideLinkBubbleMenu:!1,i18n:new T.DialtoneLocalization}},computed:{showSendIcon(){return!this.showSend.text},inputLength(){return this.text.length},displayCharacterLimitWarning(){return!!this.showCharacterLimit&&this.showCharacterLimit.count-this.inputLength<=this.showCharacterLimit.warning},characterLimitTooltipEnabled(){return this.showCharacterLimit.message&&this.showCharacterLimit.count-this.inputLength<0},isSendDisabled(){return this.disableSend||this.showCharacterLimit&&this.inputLength>this.showCharacterLimit.count},emojiPickerHovered(){return this.emojiPickerFocus||this.emojiPickerOpened},sendIconSize(){return"300"},sendButtonLabel(){return this.i18n.$t("DIALTONE_MESSAGE_INPUT_SEND_BUTTON_ARIA_LABEL")},imagePickerButtonLabel(){return this.i18n.$t("DIALTONE_MESSAGE_INPUT_IMAGE_PICKER_BUTTON_ARIA_LABEL")},emojiPickerButtonLabel(){return this.i18n.$t("DIALTONE_MESSAGE_INPUT_EMOJI_PICKER_BUTTON_ARIA_LABEL")},cancelButtonLabel(){return this.i18n.$t("DIALTONE_MESSAGE_INPUT_CANCEL_BUTTON_ARIA_LABEL")}},watch:{modelValue(i){this.internalInputValue=i},emojiPickerOpened(i){var t;i||(t=this.$refs.richTextEditor)==null||t.focusEditor()}},created(){this.modelValue&&this.outputFormat==="text"?this.internalInputValue=this.modelValue.replace(/\n/g,"<br>"):this.internalInputValue=this.modelValue},methods:{removeClassStyleAttrs:k.removeClassStyleAttrs,addClassStyleAttrs:k.addClassStyleAttrs,linkDialogOpened(i){var t;this.linkDialogOpen=i,i===!0?this.initLinkDialog():(this.hideLinkBubbleMenu=!1,(t=this.$refs.richTextEditor)==null||t.focusEditor())},handleTopbarClick(i){var r;const t=(r=this.$refs.richTextEditor)==null?void 0:r.editor,o={bold:()=>t==null?void 0:t.chain().focus().toggleBold().run(),italic:()=>t==null?void 0:t.chain().focus().toggleItalic().run(),strike:()=>t==null?void 0:t.chain().focus().toggleStrike().run(),bulletList:()=>t==null?void 0:t.chain().focus().toggleBulletList().run(),orderedList:()=>t==null?void 0:t.chain().focus().toggleOrderedList().run(),blockquote:()=>t==null?void 0:t.chain().focus().toggleBlockquote().run(),code:()=>t==null?void 0:t.chain().focus().toggleCode().run(),codeBlock:()=>t==null?void 0:t.chain().focus().toggleCodeBlock().run()};t&&o[i]&&o[i]()},isSelectionActive(i){var t,o,r,l;return["bulletList","orderedList"].includes(i)?this.richText?this.lastActiveNodes((o=(t=this.$refs.richTextEditor)==null?void 0:t.editor)==null?void 0:o.state,[{type:"bulletList"},{type:"orderedList"}]).includes(i)&&this.isFocused:!1:((l=(r=this.$refs.richTextEditor)==null?void 0:r.editor)==null?void 0:l.isActive(i))&&this.isFocused},initLinkDialog(){var i,t,o;this.$refs.link.setInitialValues(this.selectedText,(o=(t=(i=this.$refs.richTextEditor)==null?void 0:i.editor)==null?void 0:t.getAttributes("link"))==null?void 0:o.href),this.hideLinkBubbleMenu=!0,this.linkDialogOpen=!0},removeLink(){var i;(i=this.$refs.richTextEditor)==null||i.removeLink(),this.linkDialogOpen=!1},setLink(i,t){this.$refs.richTextEditor.setLink(t,i,this.linkOptions,S.EDITOR_SUPPORTED_LINK_PROTOCOLS,S.EDITOR_DEFAULT_LINK_PREFIX),this.linkDialogOpen=!1},onMousedown(i){k.returnFirstEl(this.$refs.richTextEditor.$el).querySelector(".tiptap").contains(i.target)||(i.preventDefault(),this.$refs.richTextEditor.focusEditor())},onDrop(i){const t=i.dataTransfer,o=Array.from(t.files);this.$emit("add-media",o)},onPaste(i){if(i.clipboardData.files.length){i.stopPropagation(),i.preventDefault();const t=[...i.clipboardData.files];this.$emit("paste-media",t)}},onSkinTone(i){this.$emit("skin-tone",i)},onSelectEmoji(i,t){i&&(i.shift_key||t(),this.$refs.richTextEditor.editor.commands.insertContent({type:"emoji",attrs:{code:i.shortname,image:i.image,name:i.name}}),this.$emit("selected-emoji",i))},onSelectImage(){this.$refs.messageInputImageUpload.$refs.input.click()},onImageUpload(){this.$emit("select-media",this.$refs.messageInputImageUpload.$refs.input.files)},toggleEmojiPicker(){this.emojiPickerOpened=!this.emojiPickerOpened},onSend(){this.isSendDisabled||this.$emit("submit",this.internalInputValue)},onCancel(){this.$emit("cancel")},onInput(i){this.$emit("update:modelValue",i)},onTextInput(i){this.text=i,this.$emit("text-input",i)},onMarkdownInput(i){this.$emit("markdown-input",i)}}},J={class:"d-recipe-message-input__bottom-section"},Y={class:"d-recipe-message-input__bottom-section-left"},Z={class:"d-recipe-message-input__bottom-section-right"},$={class:"d-recipe-message-input__schedule-message"},ee={class:"d-recipe-message-input__sms-count"},te={key:0};function ie(i,t,o,r,l,n){const m=e.resolveComponent("dt-recipe-message-input-link"),p=e.resolveComponent("dt-recipe-message-input-topbar"),h=e.resolveComponent("dt-rich-text-editor"),g=e.resolveComponent("dt-icon-image"),c=e.resolveComponent("dt-button"),I=e.resolveComponent("dt-input"),w=e.resolveComponent("dt-icon-very-satisfied"),L=e.resolveComponent("dt-icon-satisfied"),y=e.resolveComponent("dt-emoji-picker"),E=e.resolveComponent("dt-popover"),_=e.resolveComponent("dt-stack"),O=e.resolveComponent("dt-tooltip"),x=e.resolveComponent("dt-icon-send"),D=e.resolveDirective("dt-scrollbar"),u=e.resolveDirective("dt-tooltip");return e.openBlock(),e.createElementBlock("div",e.mergeProps({"data-qa":"dt-recipe-message-input",role:"presentation",class:"d-recipe-message-input"},n.addClassStyleAttrs(i.$attrs),{onDragover:t[16]||(t[16]=e.withModifiers(()=>{},["prevent"])),onDrop:t[17]||(t[17]=e.withModifiers((...s)=>n.onDrop&&n.onDrop(...s),["prevent"])),onPaste:t[18]||(t[18]=(...s)=>n.onPaste&&n.onPaste(...s)),onMousedown:t[19]||(t[19]=(...s)=>n.onMousedown&&n.onMousedown(...s))}),[i.$slots.blockStart?e.renderSlot(i.$slots,"blockStart",{key:0}):e.renderSlot(i.$slots,"top",{key:1}),o.richText?(e.openBlock(),e.createBlock(p,{key:l.selectedText,"bold-button-options":o.boldButtonOptions,"italic-button-options":o.italicButtonOptions,"strike-button-options":o.strikeButtonOptions,"bullet-list-button-options":o.bulletListButtonOptions,"ordered-list-button-options":o.orderedListButtonOptions,"block-quote-button-options":o.blockQuoteButtonOptions,"code-button-options":o.codeButtonOptions,"code-block-button-options":o.codeBlockButtonOptions,"is-selection-active":n.isSelectionActive,onClick:n.handleTopbarClick},{link:e.withCtx(()=>[e.createVNode(m,{ref:"link",open:l.linkDialogOpen,"link-button-options":o.linkButtonOptions,"is-selection-active":n.isSelectionActive,onOpened:n.linkDialogOpened,onSetLink:n.setLink,onRemoveLink:n.removeLink},null,8,["open","link-button-options","is-selection-active","onOpened","onSetLink","onRemoveLink"])]),_:1},8,["bold-button-options","italic-button-options","strike-button-options","bullet-list-button-options","ordered-list-button-options","block-quote-button-options","code-button-options","code-block-button-options","is-selection-active","onClick"])):e.createCommentVNode("",!0),e.withDirectives((e.openBlock(),e.createElementBlock("div",{class:"d-recipe-message-input__editor-wrapper",style:e.normalizeStyle({"max-height":o.maxHeight})},[e.createVNode(h,e.mergeProps({ref:"richTextEditor",modelValue:l.internalInputValue,"onUpdate:modelValue":t[0]||(t[0]=s=>l.internalInputValue=s),"allow-blockquote":o.richText,"allow-bold":o.richText,"allow-bullet-list":o.richText,"allow-code":o.richText,"allow-codeblock":o.richText,"allow-italic":o.richText,"allow-strike":o.richText,"allow-underline":o.richText,"paste-rich-text":o.richText,editable:o.editable,"input-aria-label":o.inputAriaLabel,"input-class":o.inputClass,"output-format":o.outputFormat,"auto-focus":o.autoFocus,link:o.richText,placeholder:o.placeholder,"prevent-typing":o.preventTyping,"mention-suggestion":o.mentionSuggestion,"channel-suggestion":o.channelSuggestion,"slash-command-suggestion":o.slashCommandSuggestion,"additional-extensions":l.additionalExtensions,"hide-link-bubble-menu":l.hideLinkBubbleMenu},n.removeClassStyleAttrs(i.$attrs),{onInput:n.onInput,onTextInput:n.onTextInput,onMarkdownInput:n.onMarkdownInput,onEnter:n.onSend,onSelected:t[1]||(t[1]=s=>l.selectedText=s),onSelectedCommand:t[2]||(t[2]=s=>i.$emit("selected-command",s)),onEditLink:n.initLinkDialog,onFocus:t[3]||(t[3]=s=>l.isFocused=!0),onBlur:t[4]||(t[4]=s=>l.isFocused=!1)}),null,16,["modelValue","allow-blockquote","allow-bold","allow-bullet-list","allow-code","allow-codeblock","allow-italic","allow-strike","allow-underline","paste-rich-text","editable","input-aria-label","input-class","output-format","auto-focus","link","placeholder","prevent-typing","mention-suggestion","channel-suggestion","slash-command-suggestion","additional-extensions","hide-link-bubble-menu","onInput","onTextInput","onMarkdownInput","onEnter","onEditLink"])],4)),[[D]]),e.renderSlot(i.$slots,"middle"),e.createElementVNode("section",J,[e.createElementVNode("div",Y,[e.createVNode(_,{gap:"200",direction:"row"},{default:e.withCtx(()=>[o.showImagePicker?e.withDirectives((e.openBlock(),e.createBlock(c,{key:0,"data-qa":"dt-recipe-message-input-image-btn",size:"sm",class:"d-recipe-message-input__button",kind:"muted",importance:"clear","aria-label":n.imagePickerButtonLabel,onClick:n.onSelectImage,onMouseenter:t[5]||(t[5]=s=>l.imagePickerFocus=!0),onMouseleave:t[6]||(t[6]=s=>l.imagePickerFocus=!1),onFocus:t[7]||(t[7]=s=>l.imagePickerFocus=!0),onBlur:t[8]||(t[8]=s=>l.imagePickerFocus=!1)},{icon:e.withCtx(()=>[e.createVNode(g,{size:"300"})]),_:1},8,["aria-label","onClick"])),[[u,n.imagePickerButtonLabel,"top-start"]]):e.createCommentVNode("",!0),e.createVNode(I,{ref:"messageInputImageUpload","data-qa":"dt-recipe-message-input-image-input",accept:"image/*, video/*",type:"file",class:"d-recipe-message-input__image-input",multiple:"",hidden:"",onInput:n.onImageUpload},null,8,["onInput"]),o.showEmojiPicker?(e.openBlock(),e.createBlock(E,{key:1,open:l.emojiPickerOpened,"onUpdate:open":t[15]||(t[15]=s=>l.emojiPickerOpened=s),"data-qa":"dt-recipe-message-input-emoji-picker-popover","initial-focus-element":"#searchInput",padding:"none"},{anchor:e.withCtx(({attrs:s})=>[e.withDirectives((e.openBlock(),e.createBlock(c,e.mergeProps(s,{"data-qa":"dt-recipe-message-input-emoji-picker-btn",size:"sm",class:"d-recipe-message-input__button",kind:"muted",importance:"clear","aria-label":n.emojiPickerButtonLabel,onClick:n.toggleEmojiPicker,onMouseenter:t[9]||(t[9]=a=>l.emojiPickerFocus=!0),onMouseleave:t[10]||(t[10]=a=>l.emojiPickerFocus=!1),onFocus:t[11]||(t[11]=a=>l.emojiPickerFocus=!0),onBlur:t[12]||(t[12]=a=>l.emojiPickerFocus=!1)}),{icon:e.withCtx(()=>[n.emojiPickerHovered?(e.openBlock(),e.createBlock(w,{key:0,size:"300"})):(e.openBlock(),e.createBlock(L,{key:1,size:"300"}))]),_:1},16,["aria-label","onClick"])),[[u,n.emojiPickerButtonLabel]])]),content:e.withCtx(({close:s})=>[e.createVNode(y,e.mergeProps(o.emojiPickerProps,{onAddEmoji:t[13]||(t[13]=a=>i.$emit("add-emoji")),onSkinTone:n.onSkinTone,onSelectedEmoji:a=>n.onSelectEmoji(a,s),onScrollBottomReached:t[14]||(t[14]=a=>i.$emit("emoji-scroll-bottom-reached"))}),null,16,["onSkinTone","onSelectedEmoji"])]),_:1},8,["open"])):e.createCommentVNode("",!0),e.renderSlot(i.$slots,"emojiGiphyPicker"),e.renderSlot(i.$slots,"customActionIcons"),e.renderSlot(i.$slots,"messagePolish")]),_:3})]),e.createElementVNode("div",Z,[e.createVNode(_,{direction:"row",gap:"300"},{default:e.withCtx(()=>[e.createElementVNode("div",$,[e.renderSlot(i.$slots,"scheduleMessage")]),e.createElementVNode("div",ee,[e.renderSlot(i.$slots,"smsCount")]),o.showCharacterLimit?(e.openBlock(),e.createBlock(O,{key:0,class:"d-recipe-message-input__remaining-char-tooltip",placement:"top-end",enabled:n.characterLimitTooltipEnabled,message:o.showCharacterLimit.message,offset:[10,8]},{anchor:e.withCtx(()=>[e.withDirectives(e.createElementVNode("p",{class:"d-recipe-message-input__remaining-char","data-qa":"dt-recipe-message-input-character-limit"},e.toDisplayString(o.showCharacterLimit.count-n.inputLength),513),[[e.vShow,n.displayCharacterLimitWarning]])]),_:1},8,["enabled","message"])):e.createCommentVNode("",!0),o.showCancel?e.withDirectives((e.openBlock(),e.createBlock(c,{key:1,"data-qa":"dt-recipe-message-input-cancel-button",class:"d-recipe-message-input__button d-recipe-message-input__cancel-button",size:"sm",kind:"muted",importance:"clear","aria-label":n.cancelButtonLabel,onClick:n.onCancel},{default:e.withCtx(()=>[e.createElementVNode("p",null,e.toDisplayString(n.cancelButtonLabel),1)]),_:1},8,["aria-label","onClick"])),[[u,n.cancelButtonLabel]]):e.createCommentVNode("",!0),e.renderSlot(i.$slots,"sendButton",{},()=>[o.showSend?e.withDirectives((e.openBlock(),e.createBlock(c,{key:0,"data-qa":"dt-recipe-message-input-send-btn",size:"sm",kind:"default",importance:"primary",class:e.normalizeClass(["d-recipe-message-input__button d-recipe-message-input__send-button",{"d-recipe-message-input__send-button--disabled":n.isSendDisabled,"d-btn--icon-only":n.showSendIcon}]),"aria-label":n.sendButtonLabel,"aria-disabled":n.isSendDisabled,onClick:n.onSend},e.createSlots({default:e.withCtx(()=>[o.showSend.text?(e.openBlock(),e.createElementBlock("p",te,e.toDisplayString(o.showSend.text),1)):e.createCommentVNode("",!0)]),_:2},[n.showSendIcon?{name:"icon",fn:e.withCtx(()=>[e.renderSlot(i.$slots,"sendIcon",{iconSize:n.sendIconSize},()=>[e.createVNode(x,{size:n.sendIconSize},null,8,["size"])])]),key:"0"}:void 0]),1032,["class","aria-label","aria-disabled","onClick"])),[[u,n.sendButtonLabel,"top-end"]]):e.createCommentVNode("",!0)])]),_:3})])])],16)}const oe=v._(Q,[["render",ie]]);exports.default=oe;
2
2
  //# sourceMappingURL=message-input.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"message-input.cjs","sources":["../../../recipes/conversation_view/message_input/extensions/meeting_pill/MeetingPill.vue","../../../recipes/conversation_view/message_input/extensions/meeting_pill/meeting_pill.js","../../../recipes/conversation_view/message_input/message_input.vue"],"sourcesContent":["<template>\n <node-view-wrapper class=\"d-recipe-message-input-meeting-pill\">\n <dt-item-layout\n class=\"d-recipe-message-input-meeting-pill__layout\"\n unstyled\n >\n <template #left>\n <div class=\"d-recipe-message-input-meeting-pill__icon\">\n <dt-icon-video\n size=\"400\"\n />\n </div>\n </template>\n {{ node.attrs.text }}\n <template #right>\n <div class=\"d-recipe-message-input-meeting-pill__close\">\n <dt-button\n circle\n importance=\"clear\"\n size=\"xs\"\n :aria-label=\"closeButtonTitle\"\n :title=\"closeButtonTitle\"\n @click=\"close\"\n >\n <template #icon>\n <dt-icon-close\n size=\"300\"\n />\n </template>\n </dt-button>\n </div>\n </template>\n </dt-item-layout>\n </node-view-wrapper>\n</template>\n\n<script>\nimport { NodeViewWrapper, nodeViewProps } from '@tiptap/vue-3';\nimport { DtItemLayout } from '@/components/item_layout';\nimport { DtIconClose, DtIconVideo } from '@dialpad/dialtone-icons/vue3';\nimport { DtButton } from '@/components/button';\nimport { DialtoneLocalization } from '@/localization';\n\nexport default {\n name: 'MeetingPill',\n\n components: {\n NodeViewWrapper,\n DtItemLayout,\n DtIconClose,\n DtButton,\n DtIconVideo,\n },\n\n props: nodeViewProps,\n\n emits: ['meeting-pill-close'],\n\n data () {\n return {\n i18n: new DialtoneLocalization(),\n };\n },\n\n computed: {\n closeButtonTitle () {\n return this.i18n.$t('DIALTONE_CLOSE_BUTTON');\n },\n },\n\n methods: {\n close (e) {\n // Get the callback from extension storage\n const onCloseCallback = this.editor?.storage?.meetingPill?.onClose;\n\n if (onCloseCallback && typeof onCloseCallback === 'function') {\n onCloseCallback(e);\n }\n },\n },\n};\n</script>\n","import { mergeAttributes, Node } from '@tiptap/core';\nimport { VueNodeViewRenderer } from '@tiptap/vue-3';\nimport MeetingPill from './MeetingPill.vue';\n\nexport default Node.create({\n name: 'meetingPill',\n\n atom: true,\n group: 'inline',\n inline: true,\n\n addOptions () {\n return {\n onClose: () => {},\n };\n },\n\n addStorage () {\n return {\n onClose: this.options.onClose,\n };\n },\n\n addNodeView () {\n return VueNodeViewRenderer(MeetingPill);\n },\n\n addAttributes () {\n return {\n text: {\n default: 'Please pass in \"text\" attribute',\n },\n };\n },\n\n parseHTML () {\n return [\n {\n tag: 'meeting-pill',\n },\n ];\n },\n\n renderText () {\n return '/dpm';\n },\n\n renderHTML ({ HTMLAttributes }) {\n return ['meeting-pill', mergeAttributes(HTMLAttributes)];\n },\n});\n","<!-- eslint-disable max-lines -->\n<template>\n <div\n data-qa=\"dt-recipe-message-input\"\n role=\"presentation\"\n class=\"d-recipe-message-input\"\n v-bind=\"addClassStyleAttrs($attrs)\"\n @dragover.prevent\n @drop.prevent=\"onDrop\"\n @paste=\"onPaste\"\n @mousedown=\"onMousedown\"\n >\n <!-- @slot Renders above the input, but still within the borders. -->\n <slot name=\"top\" />\n\n <!-- set key to selectedText to force update. otherwise this component may not reflect the active selection -->\n <dt-recipe-message-input-topbar\n v-if=\"richText\"\n :key=\"selectedText\"\n :bold-button-options=\"boldButtonOptions\"\n :italic-button-options=\"italicButtonOptions\"\n :strike-button-options=\"strikeButtonOptions\"\n :bullet-list-button-options=\"bulletListButtonOptions\"\n :ordered-list-button-options=\"orderedListButtonOptions\"\n :block-quote-button-options=\"blockQuoteButtonOptions\"\n :code-button-options=\"codeButtonOptions\"\n :code-block-button-options=\"codeBlockButtonOptions\"\n :is-selection-active=\"isSelectionActive\"\n @click=\"handleTopbarClick\"\n >\n <template #link>\n <dt-recipe-message-input-link\n ref=\"link\"\n :open=\"linkDialogOpen\"\n :link-button-options=\"linkButtonOptions\"\n :is-selection-active=\"isSelectionActive\"\n @opened=\"linkDialogOpened\"\n @set-link=\"setLink\"\n @remove-link=\"removeLink\"\n />\n </template>\n </dt-recipe-message-input-topbar>\n <!-- Some wrapper to restrict the height and show the scrollbar -->\n <div\n v-dt-scrollbar\n class=\"d-recipe-message-input__editor-wrapper\"\n :style=\"{ 'max-height': maxHeight }\"\n >\n <dt-rich-text-editor\n ref=\"richTextEditor\"\n v-model=\"internalInputValue\"\n :allow-blockquote=\"richText\"\n :allow-bold=\"richText\"\n :allow-bullet-list=\"richText\"\n :allow-code=\"richText\"\n :allow-codeblock=\"richText\"\n :allow-italic=\"richText\"\n :allow-strike=\"richText\"\n :allow-underline=\"richText\"\n :paste-rich-text=\"richText\"\n :editable=\"editable\"\n :input-aria-label=\"inputAriaLabel\"\n :input-class=\"inputClass\"\n :output-format=\"outputFormat\"\n :auto-focus=\"autoFocus\"\n :link=\"richText\"\n :placeholder=\"placeholder\"\n :prevent-typing=\"preventTyping\"\n :mention-suggestion=\"mentionSuggestion\"\n :channel-suggestion=\"channelSuggestion\"\n :slash-command-suggestion=\"slashCommandSuggestion\"\n :additional-extensions=\"additionalExtensions\"\n :hide-link-bubble-menu=\"hideLinkBubbleMenu\"\n v-bind=\"removeClassStyleAttrs($attrs)\"\n @input=\"onInput\"\n @text-input=\"onTextInput\"\n @markdown-input=\"onMarkdownInput\"\n @enter=\"onSend\"\n @selected=\"selectedText = $event\"\n @selected-command=\"$emit('selected-command', $event)\"\n @edit-link=\"initLinkDialog\"\n @focus=\"isFocused = true\"\n @blur=\"isFocused = false\"\n />\n </div>\n <!-- @slot Slot for attachment carousel -->\n <slot name=\"middle\" />\n <!-- Section for the bottom UI -->\n <section class=\"d-recipe-message-input__bottom-section\">\n <!-- Left content -->\n <div class=\"d-recipe-message-input__bottom-section-left\">\n <dt-stack\n gap=\"200\"\n direction=\"row\"\n >\n <dt-button\n v-if=\"showImagePicker\"\n v-dt-tooltip:top-start=\"imagePickerButtonLabel\"\n data-qa=\"dt-recipe-message-input-image-btn\"\n size=\"sm\"\n class=\"d-recipe-message-input__button\"\n kind=\"muted\"\n importance=\"clear\"\n :aria-label=\"imagePickerButtonLabel\"\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-image size=\"300\" />\n </template>\n </dt-button>\n <dt-input\n ref=\"messageInputImageUpload\"\n data-qa=\"dt-recipe-message-input-image-input\"\n accept=\"image/*, video/*\"\n type=\"file\"\n class=\"d-recipe-message-input__image-input\"\n multiple\n hidden\n @input=\"onImageUpload\"\n />\n <dt-popover\n v-if=\"showEmojiPicker\"\n v-model:open=\"emojiPickerOpened\"\n data-qa=\"dt-recipe-message-input-emoji-picker-popover\"\n initial-focus-element=\"#searchInput\"\n padding=\"none\"\n >\n <template #anchor=\"{ attrs }\">\n <dt-button\n v-dt-tooltip=\"emojiPickerButtonLabel\"\n v-bind=\"attrs\"\n data-qa=\"dt-recipe-message-input-emoji-picker-btn\"\n size=\"sm\"\n class=\"d-recipe-message-input__button\"\n kind=\"muted\"\n importance=\"clear\"\n :aria-label=\"emojiPickerButtonLabel\"\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-very-satisfied\n v-if=\"emojiPickerHovered\"\n size=\"300\"\n />\n <dt-icon-satisfied\n v-else\n size=\"300\"\n />\n </template>\n </dt-button>\n </template>\n <template #content=\"{ close }\">\n <dt-emoji-picker\n v-bind=\"emojiPickerProps\"\n @add-emoji=\"$emit('add-emoji')\"\n @skin-tone=\"onSkinTone\"\n @selected-emoji=\"(emoji) => onSelectEmoji(emoji, close)\"\n @scroll-bottom-reached=\"$emit('emoji-scroll-bottom-reached')\"\n />\n </template>\n </dt-popover>\n <!-- @slot Slot for emojiGiphy picker -->\n <slot name=\"emojiGiphyPicker\" />\n <!-- @slot Slot to add extra action icons next to default ones -->\n <slot name=\"customActionIcons\" />\n </dt-stack>\n </div>\n <!-- Right content -->\n <div class=\"d-recipe-message-input__bottom-section-right\">\n <dt-stack\n direction=\"row\"\n gap=\"300\"\n >\n <!-- @slot Slot for schedule message -->\n <div class=\"d-recipe-message-input__schedule-message\">\n <slot name=\"scheduleMessage\" />\n </div>\n\n <!-- @slot Slot for sms count -->\n <div class=\"d-recipe-message-input__sms-count\">\n <slot name=\"smsCount\" />\n </div>\n\n <!-- Optionally displayed remaining character counter -->\n <dt-tooltip\n v-if=\"Boolean(showCharacterLimit)\"\n class=\"d-recipe-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-recipe-message-input__remaining-char\"\n data-qa=\"dt-recipe-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 v-dt-tooltip=\"cancelButtonLabel\"\n data-qa=\"dt-recipe-message-input-cancel-button\"\n class=\"d-recipe-message-input__button d-recipe-message-input__cancel-button\"\n size=\"sm\"\n kind=\"muted\"\n importance=\"clear\"\n :aria-label=\"cancelButtonLabel\"\n @click=\"onCancel\"\n >\n <p>{{ cancelButtonLabel }}</p>\n </dt-button>\n\n <!-- @slot Slot for sendButton picker -->\n <slot name=\"sendButton\">\n <!-- Send button -->\n <!-- Right positioned UI - send button -->\n <dt-button\n v-if=\"showSend\"\n v-dt-tooltip:top-end=\"sendButtonLabel\"\n data-qa=\"dt-recipe-message-input-send-btn\"\n size=\"sm\"\n kind=\"default\"\n importance=\"primary\"\n :class=\"[\n 'd-recipe-message-input__button d-recipe-message-input__send-button',\n {\n 'd-recipe-message-input__send-button--disabled': isSendDisabled,\n 'd-btn--icon-only': showSendIcon,\n },\n ]\"\n :aria-label=\"sendButtonLabel\"\n :aria-disabled=\"isSendDisabled\"\n @click=\"onSend\"\n >\n <template\n v-if=\"showSendIcon\"\n #icon\n >\n <!-- @slot Slot for send button icon -->\n <slot\n name=\"sendIcon\"\n :icon-size=\"sendIconSize\"\n >\n <dt-icon-send :size=\"sendIconSize\" />\n </slot>\n </template>\n <template v-if=\"showSend.text\">\n <p>{{ showSend.text }}</p>\n </template>\n </dt-button>\n </slot>\n </dt-stack>\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 lastActiveNodes from './last_active_nodes';\nimport { removeClassStyleAttrs, returnFirstEl, addClassStyleAttrs } from '@/common/utils';\nimport MeetingPill from './extensions/meeting_pill/meeting_pill';\nimport { DtButton } from '@/components/button';\nimport { DtEmojiPicker } from '@/components/emoji_picker';\nimport { DtPopover } from '@/components/popover';\nimport { DtInput } from '@/components/input';\nimport { DtTooltip } from '@/components/tooltip';\nimport { DtStack } from '@/components/stack';\nimport {\n DtIconImage, DtIconVerySatisfied, DtIconSatisfied, DtIconSend,\n} from '@dialpad/dialtone-icons/vue3';\nimport DtRecipeMessageInputTopbar from './message_input_topbar.vue';\nimport DtRecipeMessageInputLink from './message_input_link.vue';\nimport { DialtoneLocalization } from '@/localization';\n\nimport {\n EDITOR_SUPPORTED_LINK_PROTOCOLS,\n EDITOR_DEFAULT_LINK_PREFIX,\n} from '../editor/editor_constants.js';\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtRecipeMessageInput',\n\n components: {\n DtButton,\n DtEmojiPicker,\n DtInput,\n DtPopover,\n DtRecipeMessageInputTopbar,\n DtRecipeMessageInputLink,\n DtRichTextEditor,\n DtTooltip,\n DtStack,\n DtIconImage,\n DtIconVerySatisfied,\n DtIconSatisfied,\n DtIconSend,\n },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Displays all the buttons for rich text formatting above the message input, and enables it within the editor.\n * Rich text formatting for the purposes of this component is defined as:\n *\n * bold, italic, strikethrough, lists, blockquotes, inline code tags, and code blocks.\n *\n * If you are sending a message to a phone rather than a Dialpad to Dialpad message, you should have this as false.\n */\n richText: {\n type: Boolean,\n default: true,\n },\n\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 * Prevents the user from typing any further. Deleting text will still work.\n */\n preventTyping: {\n type: Boolean,\n default: false,\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`, `markdown`. See https://tiptap.dev/guide/output for\n * examples.\n * @values text, json, html, markdown\n */\n outputFormat: {\n type: String,\n default: 'json',\n validator (outputFormat) {\n return RICH_TEXT_EDITOR_OUTPUT_FORMATS.includes(outputFormat);\n },\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 },\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: () => ({}),\n },\n\n /**\n * Send button defaults.\n * TODO (Dialtone 10):\n * - Change to `showSendButton`, boolean only.\n */\n showSend: {\n type: [Boolean, Object],\n default: () => ({}),\n },\n\n /**\n * TODO (Dialtone 10):\n * - Add a prop `iconOnly` default: true to control if localized send button text should be shown\n */\n\n /**\n * Cancel button defaults.\n * TODO (Dialtone 10): Change to `showCancelButton`, boolean only.\n */\n showCancel: {\n type: [Boolean, Object],\n default: () => ({}),\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 * 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 channels for suggestion.\n * items({ query }) => { return [ChannelObject]; }\n * ChannelObject format:\n * { name: string, id: string, locked: boolean }\n *\n * When null, it does not add the plugin. Setting locked to true will display a lock rather than hash.\n */\n channelSuggestion: {\n type: Object,\n default: null,\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 slash commands for suggestion.\n * items({ query }) => { return [SlashCommandObject]; }\n * SlashCommandObject format:\n * { command: string, description: string, parametersExample?: string }\n * The \"parametersExample\" parameter is optional, and describes an example\n * of the parameters that command can take.\n *\n * When null, it does not add the plugin.\n */\n slashCommandSuggestion: {\n type: Object,\n default: null,\n },\n\n /**\n * descriptive text fields for the bold button\n *\n * object format:\n * { keyboardShortcutText: string }\n */\n boldButtonOptions: {\n type: Object,\n default: () => ({\n keyboardShortcutText: 'Mod + B',\n }),\n },\n\n /**\n * descriptive text fields for the italic button\n *\n * object format:\n * { keyboardShortcutText: string }\n */\n italicButtonOptions: {\n type: Object,\n default: () => ({\n keyboardShortcutText: 'Mod + I',\n }),\n },\n\n /**\n * descriptive text fields for the strikethrough button\n *\n * object format:\n * { keyboardShortcutText: string }\n */\n strikeButtonOptions: {\n type: Object,\n default: () => ({\n keyboardShortcutText: 'Mod + Shift + S',\n }),\n },\n\n /**\n * descriptive text fields for the link button\n *\n * object format:\n * { keyboardShortcutText: string }\n */\n linkButtonOptions: {\n type: Object,\n default: () => ({\n // TODO: implement mod k\n keyboardShortcutText: 'Mod + K',\n linkPlaceholder: 'e.g. https://www.dialpad.com',\n }),\n },\n\n /**\n * descriptive text fields for the bullet list button\n *\n * object format:\n * { keyboardShortcutText: string }\n */\n bulletListButtonOptions: {\n type: Object,\n default: () => ({\n keyboardShortcutText: 'Mod + Shift + 8',\n }),\n },\n\n /**\n * descriptive text fields for the ordered list button\n *\n * object format:\n * { keyboardShortcutText: string }\n */\n orderedListButtonOptions: {\n type: Object,\n default: () => ({\n keyboardShortcutText: 'Mod + Shift + 7',\n }),\n },\n\n /**\n * descriptive text fields for the italic button\n *\n * object format:\n * { keyboardShortcutText: string }\n */\n blockQuoteButtonOptions: {\n type: Object,\n default: () => ({\n keyboardShortcutText: 'Mod + Shift + B',\n }),\n },\n\n /**\n * descriptive text fields for the code button\n *\n * object format:\n * { keyboardShortcutText: string }\n */\n codeButtonOptions: {\n type: Object,\n default: () => ({\n keyboardShortcutText: 'Mod + E',\n }),\n },\n\n /**\n * descriptive text fields for the code block button\n *\n * object format:\n * { keyboardShortcutText: string }\n */\n codeBlockButtonOptions: {\n type: Object,\n default: () => ({\n keyboardShortcutText: 'Mod + Alt + C',\n }),\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 * Fires when a slash command is selected\n *\n * @event selected-command\n * @type {String}\n */\n 'selected-command',\n\n /**\n * Fires when meeting pill is closed\n *\n * @event meeting-pill-close\n * @type {String}\n */\n 'meeting-pill-close',\n\n /**\n * Event to sync the value with the parent\n * @event update:modelValue\n * @type {String|JSON}\n */\n 'update:modelValue',\n\n /**\n * Emitted when input changes, returns text content only\n * @event text-input\n * @type {String}\n */\n 'text-input',\n\n /**\n * Emitted when input changes, returns markdown content only\n * @event markdown-input\n * @type {String}\n */\n 'markdown-input',\n\n /**\n * Emitted when the 'Add emoji' button is clicked\n * @event add-emoji\n * @type {Boolean}\n */\n 'add-emoji',\n\n /**\n * Emitted when the emoji picker scroll reaches the bottom\n * @event emoji-scroll-bottom-reached\n */\n 'emoji-scroll-bottom-reached',\n ],\n\n data () {\n return {\n // If an ordered list is nested within an unordered list, we only want to show the currently selected list as\n // active. This function performs the logic to determine the farthest active node from the root.\n lastActiveNodes,\n additionalExtensions: [\n MeetingPill.configure({\n onClose: (event) => {\n this.$emit('meeting-pill-close', event);\n },\n }),\n ],\n\n internalInputValue: this.modelValue, // internal input content\n imagePickerFocus: false,\n emojiPickerFocus: false,\n emojiPickerOpened: false,\n isFocused: false,\n linkOptions: {\n class: 'd-link d-c-text d-d-inline-block',\n },\n\n linkDialogOpen: false,\n selectedText: '',\n text: '',\n hideLinkBubbleMenu: false,\n i18n: new DialtoneLocalization(),\n };\n },\n\n computed: {\n showSendIcon () {\n return !this.showSend.text;\n },\n\n inputLength () {\n return this.text.length;\n },\n\n displayCharacterLimitWarning () {\n return (\n Boolean(this.showCharacterLimit) &&\n this.showCharacterLimit.count - this.inputLength <=\n this.showCharacterLimit.warning\n );\n },\n\n characterLimitTooltipEnabled () {\n return (\n this.showCharacterLimit.message &&\n this.showCharacterLimit.count - this.inputLength < 0\n );\n },\n\n isSendDisabled () {\n return (\n this.disableSend ||\n (this.showCharacterLimit &&\n this.inputLength > this.showCharacterLimit.count)\n );\n },\n\n emojiPickerHovered () {\n return this.emojiPickerFocus || this.emojiPickerOpened;\n },\n\n sendIconSize () {\n return '300';\n },\n\n sendButtonLabel () {\n return this.i18n.$t('DIALTONE_MESSAGE_INPUT_SEND_BUTTON_ARIA_LABEL');\n },\n\n imagePickerButtonLabel () {\n return this.i18n.$t('DIALTONE_MESSAGE_INPUT_IMAGE_PICKER_BUTTON_ARIA_LABEL');\n },\n\n emojiPickerButtonLabel () {\n return this.i18n.$t('DIALTONE_MESSAGE_INPUT_EMOJI_PICKER_BUTTON_ARIA_LABEL');\n },\n\n cancelButtonLabel () {\n return this.i18n.$t('DIALTONE_MESSAGE_INPUT_CANCEL_BUTTON_ARIA_LABEL');\n },\n },\n\n watch: {\n modelValue (newValue) {\n this.internalInputValue = newValue;\n },\n\n emojiPickerOpened (newValue) {\n if (!newValue) {\n this.$refs.richTextEditor?.focusEditor();\n }\n },\n },\n\n created () {\n if (this.modelValue && this.outputFormat === 'text') {\n this.internalInputValue = this.modelValue.replace(/\\n/g, '<br>');\n } else {\n this.internalInputValue = this.modelValue;\n }\n },\n\n methods: {\n removeClassStyleAttrs,\n addClassStyleAttrs,\n\n linkDialogOpened (value) {\n this.linkDialogOpen = value;\n if (value === true) {\n this.initLinkDialog();\n } else {\n this.hideLinkBubbleMenu = false;\n this.$refs.richTextEditor?.focusEditor();\n }\n },\n\n handleTopbarClick (type) {\n const editor = this.$refs.richTextEditor?.editor;\n // Key is the name returned in the event, value is the name of the TipTap command function to run.\n const typeToCommandMap = {\n bold: () => editor?.chain().focus().toggleBold().run(),\n italic: () => editor?.chain().focus().toggleItalic().run(),\n strike: () => editor?.chain().focus().toggleStrike().run(),\n bulletList: () => editor?.chain().focus().toggleBulletList().run(),\n orderedList: () => editor?.chain().focus().toggleOrderedList().run(),\n blockquote: () => editor?.chain().focus().toggleBlockquote().run(),\n code: () => editor?.chain().focus().toggleCode().run(),\n codeBlock: () => editor?.chain().focus().toggleCodeBlock().run(),\n };\n\n if (editor && typeToCommandMap[type]) {\n typeToCommandMap[type]();\n }\n },\n\n // Checks if the node currently selected is active ex/ the bold button is active if the selected text is bold\n\n // eslint-disable-next-line complexity\n isSelectionActive (type) {\n if (['bulletList', 'orderedList'].includes(type)) {\n // List extensions are only loaded when richText is true\n if (!this.richText) return false;\n return this.lastActiveNodes(this.$refs.richTextEditor?.editor?.state, [{ type: 'bulletList' }, { type: 'orderedList' }]).includes(type) && this.isFocused;\n }\n return this.$refs.richTextEditor?.editor?.isActive(type) && this.isFocused;\n },\n\n initLinkDialog () {\n this.$refs.link.setInitialValues(this.selectedText, this.$refs.richTextEditor?.editor?.getAttributes('link')?.href);\n this.hideLinkBubbleMenu = true;\n this.linkDialogOpen = true;\n },\n\n removeLink () {\n this.$refs.richTextEditor?.removeLink();\n this.linkDialogOpen = false;\n },\n\n setLink (linkText, linkInput) {\n this.$refs.richTextEditor.setLink(\n linkInput, linkText, this.linkOptions, EDITOR_SUPPORTED_LINK_PROTOCOLS, EDITOR_DEFAULT_LINK_PREFIX,\n );\n this.linkDialogOpen = false;\n },\n\n // Mousedown instead of click because it fires before the blur event.\n onMousedown (e) {\n const isWithinInput = returnFirstEl(this.$refs.richTextEditor.$el)\n .querySelector('.tiptap')\n .contains(e.target);\n\n // If the click is not within the tiptap rich text editor input itself, but still within the wrapping div,\n // focus the editor.\n if (!isWithinInput) {\n // Prevent default prevents blurring the rich text editor input when it is already focused.\n e.preventDefault();\n this.$refs.richTextEditor.focusEditor();\n }\n },\n\n onDrop (e) {\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, close) {\n if (!emoji) {\n return;\n }\n\n if (!emoji.shift_key) {\n close();\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 image: emoji.image,\n name: emoji.name,\n },\n });\n this.$emit('selected-emoji', emoji);\n },\n\n onSelectImage () {\n this.$refs.messageInputImageUpload.$refs.input.click();\n },\n\n onImageUpload () {\n this.$emit(\n 'select-media',\n this.$refs.messageInputImageUpload.$refs.input.files,\n );\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 onInput (event) {\n this.$emit('update:modelValue', event);\n },\n\n onTextInput (event) {\n this.text = event;\n this.$emit('text-input', event);\n },\n\n onMarkdownInput (event) {\n this.$emit('markdown-input', event);\n },\n },\n};\n</script>\n"],"names":["_sfc_main","NodeViewWrapper","DtItemLayout","DtIconClose","DtButton","DtIconVideo","nodeViewProps","DialtoneLocalization","e","onCloseCallback","_c","_b","_a","_hoisted_1","_hoisted_2","_createBlock","_component_node_view_wrapper","_createVNode","_component_dt_item_layout","_createElementVNode","_component_dt_icon_video","_component_dt_button","$options","_component_dt_icon_close","_createTextVNode","_ctx","MeetingPill","Node","VueNodeViewRenderer","HTMLAttributes","mergeAttributes","DtEmojiPicker","DtInput","DtPopover","DtRecipeMessageInputTopbar","DtRecipeMessageInputLink","DtRichTextEditor","DtTooltip","DtStack","DtIconImage","DtIconVerySatisfied","DtIconSatisfied","DtIconSend","autoFocus","RICH_TEXT_EDITOR_AUTOFOCUS_TYPES","outputFormat","RICH_TEXT_EDITOR_OUTPUT_FORMATS","lastActiveNodes","event","newValue","removeClassStyleAttrs","addClassStyleAttrs","value","type","editor","typeToCommandMap","_d","linkText","linkInput","EDITOR_SUPPORTED_LINK_PROTOCOLS","EDITOR_DEFAULT_LINK_PREFIX","returnFirstEl","dt","files","skinTone","emoji","close","_hoisted_3","_hoisted_4","_hoisted_5","_openBlock","_createElementBlock","_mergeProps","args","_renderSlot","$props","_component_dt_recipe_message_input_topbar","$data","_component_dt_recipe_message_input_link","_component_dt_rich_text_editor","$event","_cache","_component_dt_stack","_component_dt_icon_image","_directive_dt_tooltip","_component_dt_input","_component_dt_popover","_withCtx","attrs","_component_dt_icon_very_satisfied","_component_dt_icon_satisfied","_component_dt_emoji_picker","_component_dt_tooltip","_normalizeClass","_hoisted_6","_toDisplayString","_component_dt_icon_send"],"mappings":"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"}
1
+ {"version":3,"file":"message-input.cjs","sources":["../../../recipes/conversation_view/message_input/extensions/meeting_pill/MeetingPill.vue","../../../recipes/conversation_view/message_input/extensions/meeting_pill/meeting_pill.js","../../../recipes/conversation_view/message_input/message_input.vue"],"sourcesContent":["<template>\n <node-view-wrapper class=\"d-recipe-message-input-meeting-pill\">\n <dt-item-layout\n class=\"d-recipe-message-input-meeting-pill__layout\"\n unstyled\n >\n <template #start>\n <div class=\"d-recipe-message-input-meeting-pill__icon\">\n <dt-icon-video\n size=\"400\"\n />\n </div>\n </template>\n {{ node.attrs.text }}\n <template #end>\n <div class=\"d-recipe-message-input-meeting-pill__close\">\n <dt-button\n circle\n importance=\"clear\"\n size=\"xs\"\n :aria-label=\"closeButtonTitle\"\n :title=\"closeButtonTitle\"\n @click=\"close\"\n >\n <template #icon>\n <dt-icon-close\n size=\"300\"\n />\n </template>\n </dt-button>\n </div>\n </template>\n </dt-item-layout>\n </node-view-wrapper>\n</template>\n\n<script>\nimport { NodeViewWrapper, nodeViewProps } from '@tiptap/vue-3';\nimport { DtItemLayout } from '@/components/item_layout';\nimport { DtIconClose, DtIconVideo } from '@dialpad/dialtone-icons/vue3';\nimport { DtButton } from '@/components/button';\nimport { DialtoneLocalization } from '@/localization';\n\nexport default {\n name: 'MeetingPill',\n\n components: {\n NodeViewWrapper,\n DtItemLayout,\n DtIconClose,\n DtButton,\n DtIconVideo,\n },\n\n props: nodeViewProps,\n\n emits: ['meeting-pill-close'],\n\n data () {\n return {\n i18n: new DialtoneLocalization(),\n };\n },\n\n computed: {\n closeButtonTitle () {\n return this.i18n.$t('DIALTONE_CLOSE_BUTTON');\n },\n },\n\n methods: {\n close (e) {\n // Get the callback from extension storage\n const onCloseCallback = this.editor?.storage?.meetingPill?.onClose;\n\n if (onCloseCallback && typeof onCloseCallback === 'function') {\n onCloseCallback(e);\n }\n },\n },\n};\n</script>\n","import { mergeAttributes, Node } from '@tiptap/core';\nimport { VueNodeViewRenderer } from '@tiptap/vue-3';\nimport MeetingPill from './MeetingPill.vue';\n\nexport default Node.create({\n name: 'meetingPill',\n\n atom: true,\n group: 'inline',\n inline: true,\n\n addOptions () {\n return {\n onClose: () => {},\n };\n },\n\n addStorage () {\n return {\n onClose: this.options.onClose,\n };\n },\n\n addNodeView () {\n return VueNodeViewRenderer(MeetingPill);\n },\n\n addAttributes () {\n return {\n text: {\n default: 'Please pass in \"text\" attribute',\n },\n };\n },\n\n parseHTML () {\n return [\n {\n tag: 'meeting-pill',\n },\n ];\n },\n\n renderText () {\n return '/dpm';\n },\n\n renderHTML ({ HTMLAttributes }) {\n return ['meeting-pill', mergeAttributes(HTMLAttributes)];\n },\n});\n","<!-- eslint-disable max-lines -->\n<template>\n <div\n data-qa=\"dt-recipe-message-input\"\n role=\"presentation\"\n class=\"d-recipe-message-input\"\n v-bind=\"addClassStyleAttrs($attrs)\"\n @dragover.prevent\n @drop.prevent=\"onDrop\"\n @paste=\"onPaste\"\n @mousedown=\"onMousedown\"\n >\n <!-- @slot Renders above the input, but still within the borders. -->\n <slot\n v-if=\"$slots.blockStart\"\n name=\"blockStart\"\n />\n <!-- @slot @deprecated Use blockStart -->\n <slot\n v-else\n name=\"top\"\n />\n\n <!-- set key to selectedText to force update. otherwise this component may not reflect the active selection -->\n <dt-recipe-message-input-topbar\n v-if=\"richText\"\n :key=\"selectedText\"\n :bold-button-options=\"boldButtonOptions\"\n :italic-button-options=\"italicButtonOptions\"\n :strike-button-options=\"strikeButtonOptions\"\n :bullet-list-button-options=\"bulletListButtonOptions\"\n :ordered-list-button-options=\"orderedListButtonOptions\"\n :block-quote-button-options=\"blockQuoteButtonOptions\"\n :code-button-options=\"codeButtonOptions\"\n :code-block-button-options=\"codeBlockButtonOptions\"\n :is-selection-active=\"isSelectionActive\"\n @click=\"handleTopbarClick\"\n >\n <template #link>\n <dt-recipe-message-input-link\n ref=\"link\"\n :open=\"linkDialogOpen\"\n :link-button-options=\"linkButtonOptions\"\n :is-selection-active=\"isSelectionActive\"\n @opened=\"linkDialogOpened\"\n @set-link=\"setLink\"\n @remove-link=\"removeLink\"\n />\n </template>\n </dt-recipe-message-input-topbar>\n <!-- Some wrapper to restrict the height and show the scrollbar -->\n <div\n v-dt-scrollbar\n class=\"d-recipe-message-input__editor-wrapper\"\n :style=\"{ 'max-height': maxHeight }\"\n >\n <dt-rich-text-editor\n ref=\"richTextEditor\"\n v-model=\"internalInputValue\"\n :allow-blockquote=\"richText\"\n :allow-bold=\"richText\"\n :allow-bullet-list=\"richText\"\n :allow-code=\"richText\"\n :allow-codeblock=\"richText\"\n :allow-italic=\"richText\"\n :allow-strike=\"richText\"\n :allow-underline=\"richText\"\n :paste-rich-text=\"richText\"\n :editable=\"editable\"\n :input-aria-label=\"inputAriaLabel\"\n :input-class=\"inputClass\"\n :output-format=\"outputFormat\"\n :auto-focus=\"autoFocus\"\n :link=\"richText\"\n :placeholder=\"placeholder\"\n :prevent-typing=\"preventTyping\"\n :mention-suggestion=\"mentionSuggestion\"\n :channel-suggestion=\"channelSuggestion\"\n :slash-command-suggestion=\"slashCommandSuggestion\"\n :additional-extensions=\"additionalExtensions\"\n :hide-link-bubble-menu=\"hideLinkBubbleMenu\"\n v-bind=\"removeClassStyleAttrs($attrs)\"\n @input=\"onInput\"\n @text-input=\"onTextInput\"\n @markdown-input=\"onMarkdownInput\"\n @enter=\"onSend\"\n @selected=\"selectedText = $event\"\n @selected-command=\"$emit('selected-command', $event)\"\n @edit-link=\"initLinkDialog\"\n @focus=\"isFocused = true\"\n @blur=\"isFocused = false\"\n />\n </div>\n <!-- @slot Slot for attachment carousel -->\n <slot name=\"middle\" />\n <!-- Section for the bottom UI -->\n <section class=\"d-recipe-message-input__bottom-section\">\n <!-- Left content -->\n <div class=\"d-recipe-message-input__bottom-section-left\">\n <dt-stack\n gap=\"200\"\n direction=\"row\"\n >\n <dt-button\n v-if=\"showImagePicker\"\n v-dt-tooltip:top-start=\"imagePickerButtonLabel\"\n data-qa=\"dt-recipe-message-input-image-btn\"\n size=\"sm\"\n class=\"d-recipe-message-input__button\"\n kind=\"muted\"\n importance=\"clear\"\n :aria-label=\"imagePickerButtonLabel\"\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-image size=\"300\" />\n </template>\n </dt-button>\n <dt-input\n ref=\"messageInputImageUpload\"\n data-qa=\"dt-recipe-message-input-image-input\"\n accept=\"image/*, video/*\"\n type=\"file\"\n class=\"d-recipe-message-input__image-input\"\n multiple\n hidden\n @input=\"onImageUpload\"\n />\n <dt-popover\n v-if=\"showEmojiPicker\"\n v-model:open=\"emojiPickerOpened\"\n data-qa=\"dt-recipe-message-input-emoji-picker-popover\"\n initial-focus-element=\"#searchInput\"\n padding=\"none\"\n >\n <template #anchor=\"{ attrs }\">\n <dt-button\n v-dt-tooltip=\"emojiPickerButtonLabel\"\n v-bind=\"attrs\"\n data-qa=\"dt-recipe-message-input-emoji-picker-btn\"\n size=\"sm\"\n class=\"d-recipe-message-input__button\"\n kind=\"muted\"\n importance=\"clear\"\n :aria-label=\"emojiPickerButtonLabel\"\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-very-satisfied\n v-if=\"emojiPickerHovered\"\n size=\"300\"\n />\n <dt-icon-satisfied\n v-else\n size=\"300\"\n />\n </template>\n </dt-button>\n </template>\n <template #content=\"{ close }\">\n <dt-emoji-picker\n v-bind=\"emojiPickerProps\"\n @add-emoji=\"$emit('add-emoji')\"\n @skin-tone=\"onSkinTone\"\n @selected-emoji=\"(emoji) => onSelectEmoji(emoji, close)\"\n @scroll-bottom-reached=\"$emit('emoji-scroll-bottom-reached')\"\n />\n </template>\n </dt-popover>\n <!-- @slot Slot for emojiGiphy picker -->\n <slot name=\"emojiGiphyPicker\" />\n <!-- @slot Slot to add extra action icons next to default ones -->\n <slot name=\"customActionIcons\" />\n <!-- @slot Slot for message polish -->\n <slot name=\"messagePolish\" />\n </dt-stack>\n </div>\n <!-- Right content -->\n <div class=\"d-recipe-message-input__bottom-section-right\">\n <dt-stack\n direction=\"row\"\n gap=\"300\"\n >\n <!-- @slot Slot for schedule message -->\n <div class=\"d-recipe-message-input__schedule-message\">\n <slot name=\"scheduleMessage\" />\n </div>\n\n <!-- @slot Slot for sms count -->\n <div class=\"d-recipe-message-input__sms-count\">\n <slot name=\"smsCount\" />\n </div>\n\n <!-- Optionally displayed remaining character counter -->\n <dt-tooltip\n v-if=\"Boolean(showCharacterLimit)\"\n class=\"d-recipe-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-recipe-message-input__remaining-char\"\n data-qa=\"dt-recipe-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 v-dt-tooltip=\"cancelButtonLabel\"\n data-qa=\"dt-recipe-message-input-cancel-button\"\n class=\"d-recipe-message-input__button d-recipe-message-input__cancel-button\"\n size=\"sm\"\n kind=\"muted\"\n importance=\"clear\"\n :aria-label=\"cancelButtonLabel\"\n @click=\"onCancel\"\n >\n <p>{{ cancelButtonLabel }}</p>\n </dt-button>\n\n <!-- @slot Slot for sendButton picker -->\n <slot name=\"sendButton\">\n <!-- Send button -->\n <!-- Right positioned UI - send button -->\n <dt-button\n v-if=\"showSend\"\n v-dt-tooltip:top-end=\"sendButtonLabel\"\n data-qa=\"dt-recipe-message-input-send-btn\"\n size=\"sm\"\n kind=\"default\"\n importance=\"primary\"\n :class=\"[\n 'd-recipe-message-input__button d-recipe-message-input__send-button',\n {\n 'd-recipe-message-input__send-button--disabled': isSendDisabled,\n 'd-btn--icon-only': showSendIcon,\n },\n ]\"\n :aria-label=\"sendButtonLabel\"\n :aria-disabled=\"isSendDisabled\"\n @click=\"onSend\"\n >\n <template\n v-if=\"showSendIcon\"\n #icon\n >\n <!-- @slot Slot for send button icon -->\n <slot\n name=\"sendIcon\"\n :icon-size=\"sendIconSize\"\n >\n <dt-icon-send :size=\"sendIconSize\" />\n </slot>\n </template>\n <template v-if=\"showSend.text\">\n <p>{{ showSend.text }}</p>\n </template>\n </dt-button>\n </slot>\n </dt-stack>\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 lastActiveNodes from './last_active_nodes';\nimport { removeClassStyleAttrs, returnFirstEl, addClassStyleAttrs } from '@/common/utils';\nimport MeetingPill from './extensions/meeting_pill/meeting_pill';\nimport { DtButton } from '@/components/button';\nimport { DtEmojiPicker } from '@/components/emoji_picker';\nimport { DtPopover } from '@/components/popover';\nimport { DtInput } from '@/components/input';\nimport { DtTooltip } from '@/components/tooltip';\nimport { DtStack } from '@/components/stack';\nimport {\n DtIconImage, DtIconVerySatisfied, DtIconSatisfied, DtIconSend,\n} from '@dialpad/dialtone-icons/vue3';\nimport DtRecipeMessageInputTopbar from './message_input_topbar.vue';\nimport DtRecipeMessageInputLink from './message_input_link.vue';\nimport { DialtoneLocalization } from '@/localization';\n\nimport {\n EDITOR_SUPPORTED_LINK_PROTOCOLS,\n EDITOR_DEFAULT_LINK_PREFIX,\n} from '../editor/editor_constants.js';\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtRecipeMessageInput',\n\n components: {\n DtButton,\n DtEmojiPicker,\n DtInput,\n DtPopover,\n DtRecipeMessageInputTopbar,\n DtRecipeMessageInputLink,\n DtRichTextEditor,\n DtTooltip,\n DtStack,\n DtIconImage,\n DtIconVerySatisfied,\n DtIconSatisfied,\n DtIconSend,\n },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Displays all the buttons for rich text formatting above the message input, and enables it within the editor.\n * Rich text formatting for the purposes of this component is defined as:\n *\n * bold, italic, strikethrough, lists, blockquotes, inline code tags, and code blocks.\n *\n * If you are sending a message to a phone rather than a Dialpad to Dialpad message, you should have this as false.\n */\n richText: {\n type: Boolean,\n default: true,\n },\n\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 * Prevents the user from typing any further. Deleting text will still work.\n */\n preventTyping: {\n type: Boolean,\n default: false,\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`, `markdown`. See https://tiptap.dev/guide/output for\n * examples.\n * @values text, json, html, markdown\n */\n outputFormat: {\n type: String,\n default: 'json',\n validator (outputFormat) {\n return RICH_TEXT_EDITOR_OUTPUT_FORMATS.includes(outputFormat);\n },\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 },\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: () => ({}),\n },\n\n /**\n * Send button defaults.\n * TODO (Dialtone 10):\n * - Change to `showSendButton`, boolean only.\n */\n showSend: {\n type: [Boolean, Object],\n default: () => ({}),\n },\n\n /**\n * TODO (Dialtone 10):\n * - Add a prop `iconOnly` default: true to control if localized send button text should be shown\n */\n\n /**\n * Cancel button defaults.\n * TODO (Dialtone 10): Change to `showCancelButton`, boolean only.\n */\n showCancel: {\n type: [Boolean, Object],\n default: () => ({}),\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 * 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 channels for suggestion.\n * items({ query }) => { return [ChannelObject]; }\n * ChannelObject format:\n * { name: string, id: string, locked: boolean }\n *\n * When null, it does not add the plugin. Setting locked to true will display a lock rather than hash.\n */\n channelSuggestion: {\n type: Object,\n default: null,\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 slash commands for suggestion.\n * items({ query }) => { return [SlashCommandObject]; }\n * SlashCommandObject format:\n * { command: string, description: string, parametersExample?: string }\n * The \"parametersExample\" parameter is optional, and describes an example\n * of the parameters that command can take.\n *\n * When null, it does not add the plugin.\n */\n slashCommandSuggestion: {\n type: Object,\n default: null,\n },\n\n /**\n * descriptive text fields for the bold button\n *\n * object format:\n * { keyboardShortcutText: string }\n */\n boldButtonOptions: {\n type: Object,\n default: () => ({\n keyboardShortcutText: 'Mod + B',\n }),\n },\n\n /**\n * descriptive text fields for the italic button\n *\n * object format:\n * { keyboardShortcutText: string }\n */\n italicButtonOptions: {\n type: Object,\n default: () => ({\n keyboardShortcutText: 'Mod + I',\n }),\n },\n\n /**\n * descriptive text fields for the strikethrough button\n *\n * object format:\n * { keyboardShortcutText: string }\n */\n strikeButtonOptions: {\n type: Object,\n default: () => ({\n keyboardShortcutText: 'Mod + Shift + S',\n }),\n },\n\n /**\n * descriptive text fields for the link button\n *\n * object format:\n * { keyboardShortcutText: string }\n */\n linkButtonOptions: {\n type: Object,\n default: () => ({\n // TODO: implement mod k\n keyboardShortcutText: 'Mod + K',\n linkPlaceholder: 'e.g. https://www.dialpad.com',\n }),\n },\n\n /**\n * descriptive text fields for the bullet list button\n *\n * object format:\n * { keyboardShortcutText: string }\n */\n bulletListButtonOptions: {\n type: Object,\n default: () => ({\n keyboardShortcutText: 'Mod + Shift + 8',\n }),\n },\n\n /**\n * descriptive text fields for the ordered list button\n *\n * object format:\n * { keyboardShortcutText: string }\n */\n orderedListButtonOptions: {\n type: Object,\n default: () => ({\n keyboardShortcutText: 'Mod + Shift + 7',\n }),\n },\n\n /**\n * descriptive text fields for the italic button\n *\n * object format:\n * { keyboardShortcutText: string }\n */\n blockQuoteButtonOptions: {\n type: Object,\n default: () => ({\n keyboardShortcutText: 'Mod + Shift + B',\n }),\n },\n\n /**\n * descriptive text fields for the code button\n *\n * object format:\n * { keyboardShortcutText: string }\n */\n codeButtonOptions: {\n type: Object,\n default: () => ({\n keyboardShortcutText: 'Mod + E',\n }),\n },\n\n /**\n * descriptive text fields for the code block button\n *\n * object format:\n * { keyboardShortcutText: string }\n */\n codeBlockButtonOptions: {\n type: Object,\n default: () => ({\n keyboardShortcutText: 'Mod + Alt + C',\n }),\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 * Fires when a slash command is selected\n *\n * @event selected-command\n * @type {String}\n */\n 'selected-command',\n\n /**\n * Fires when meeting pill is closed\n *\n * @event meeting-pill-close\n * @type {String}\n */\n 'meeting-pill-close',\n\n /**\n * Event to sync the value with the parent\n * @event update:modelValue\n * @type {String|JSON}\n */\n 'update:modelValue',\n\n /**\n * Emitted when input changes, returns text content only\n * @event text-input\n * @type {String}\n */\n 'text-input',\n\n /**\n * Emitted when input changes, returns markdown content only\n * @event markdown-input\n * @type {String}\n */\n 'markdown-input',\n\n /**\n * Emitted when the 'Add emoji' button is clicked\n * @event add-emoji\n * @type {Boolean}\n */\n 'add-emoji',\n\n /**\n * Emitted when the emoji picker scroll reaches the bottom\n * @event emoji-scroll-bottom-reached\n */\n 'emoji-scroll-bottom-reached',\n ],\n\n data () {\n return {\n // If an ordered list is nested within an unordered list, we only want to show the currently selected list as\n // active. This function performs the logic to determine the farthest active node from the root.\n lastActiveNodes,\n additionalExtensions: [\n MeetingPill.configure({\n onClose: (event) => {\n this.$emit('meeting-pill-close', event);\n },\n }),\n ],\n\n internalInputValue: this.modelValue, // internal input content\n imagePickerFocus: false,\n emojiPickerFocus: false,\n emojiPickerOpened: false,\n isFocused: false,\n linkOptions: {\n class: 'd-link d-c-text d-d-inline-block',\n },\n\n linkDialogOpen: false,\n selectedText: '',\n text: '',\n hideLinkBubbleMenu: false,\n i18n: new DialtoneLocalization(),\n };\n },\n\n computed: {\n showSendIcon () {\n return !this.showSend.text;\n },\n\n inputLength () {\n return this.text.length;\n },\n\n displayCharacterLimitWarning () {\n return (\n Boolean(this.showCharacterLimit) &&\n this.showCharacterLimit.count - this.inputLength <=\n this.showCharacterLimit.warning\n );\n },\n\n characterLimitTooltipEnabled () {\n return (\n this.showCharacterLimit.message &&\n this.showCharacterLimit.count - this.inputLength < 0\n );\n },\n\n isSendDisabled () {\n return (\n this.disableSend ||\n (this.showCharacterLimit &&\n this.inputLength > this.showCharacterLimit.count)\n );\n },\n\n emojiPickerHovered () {\n return this.emojiPickerFocus || this.emojiPickerOpened;\n },\n\n sendIconSize () {\n return '300';\n },\n\n sendButtonLabel () {\n return this.i18n.$t('DIALTONE_MESSAGE_INPUT_SEND_BUTTON_ARIA_LABEL');\n },\n\n imagePickerButtonLabel () {\n return this.i18n.$t('DIALTONE_MESSAGE_INPUT_IMAGE_PICKER_BUTTON_ARIA_LABEL');\n },\n\n emojiPickerButtonLabel () {\n return this.i18n.$t('DIALTONE_MESSAGE_INPUT_EMOJI_PICKER_BUTTON_ARIA_LABEL');\n },\n\n cancelButtonLabel () {\n return this.i18n.$t('DIALTONE_MESSAGE_INPUT_CANCEL_BUTTON_ARIA_LABEL');\n },\n },\n\n watch: {\n modelValue (newValue) {\n this.internalInputValue = newValue;\n },\n\n emojiPickerOpened (newValue) {\n if (!newValue) {\n this.$refs.richTextEditor?.focusEditor();\n }\n },\n },\n\n created () {\n if (this.modelValue && this.outputFormat === 'text') {\n this.internalInputValue = this.modelValue.replace(/\\n/g, '<br>');\n } else {\n this.internalInputValue = this.modelValue;\n }\n },\n\n methods: {\n removeClassStyleAttrs,\n addClassStyleAttrs,\n\n linkDialogOpened (value) {\n this.linkDialogOpen = value;\n if (value === true) {\n this.initLinkDialog();\n } else {\n this.hideLinkBubbleMenu = false;\n this.$refs.richTextEditor?.focusEditor();\n }\n },\n\n handleTopbarClick (type) {\n const editor = this.$refs.richTextEditor?.editor;\n // Key is the name returned in the event, value is the name of the TipTap command function to run.\n const typeToCommandMap = {\n bold: () => editor?.chain().focus().toggleBold().run(),\n italic: () => editor?.chain().focus().toggleItalic().run(),\n strike: () => editor?.chain().focus().toggleStrike().run(),\n bulletList: () => editor?.chain().focus().toggleBulletList().run(),\n orderedList: () => editor?.chain().focus().toggleOrderedList().run(),\n blockquote: () => editor?.chain().focus().toggleBlockquote().run(),\n code: () => editor?.chain().focus().toggleCode().run(),\n codeBlock: () => editor?.chain().focus().toggleCodeBlock().run(),\n };\n\n if (editor && typeToCommandMap[type]) {\n typeToCommandMap[type]();\n }\n },\n\n // Checks if the node currently selected is active ex/ the bold button is active if the selected text is bold\n\n // eslint-disable-next-line complexity\n isSelectionActive (type) {\n if (['bulletList', 'orderedList'].includes(type)) {\n // List extensions are only loaded when richText is true\n if (!this.richText) return false;\n return this.lastActiveNodes(this.$refs.richTextEditor?.editor?.state, [{ type: 'bulletList' }, { type: 'orderedList' }]).includes(type) && this.isFocused;\n }\n return this.$refs.richTextEditor?.editor?.isActive(type) && this.isFocused;\n },\n\n initLinkDialog () {\n this.$refs.link.setInitialValues(this.selectedText, this.$refs.richTextEditor?.editor?.getAttributes('link')?.href);\n this.hideLinkBubbleMenu = true;\n this.linkDialogOpen = true;\n },\n\n removeLink () {\n this.$refs.richTextEditor?.removeLink();\n this.linkDialogOpen = false;\n },\n\n setLink (linkText, linkInput) {\n this.$refs.richTextEditor.setLink(\n linkInput, linkText, this.linkOptions, EDITOR_SUPPORTED_LINK_PROTOCOLS, EDITOR_DEFAULT_LINK_PREFIX,\n );\n this.linkDialogOpen = false;\n },\n\n // Mousedown instead of click because it fires before the blur event.\n onMousedown (e) {\n const isWithinInput = returnFirstEl(this.$refs.richTextEditor.$el)\n .querySelector('.tiptap')\n .contains(e.target);\n\n // If the click is not within the tiptap rich text editor input itself, but still within the wrapping div,\n // focus the editor.\n if (!isWithinInput) {\n // Prevent default prevents blurring the rich text editor input when it is already focused.\n e.preventDefault();\n this.$refs.richTextEditor.focusEditor();\n }\n },\n\n onDrop (e) {\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, close) {\n if (!emoji) {\n return;\n }\n\n if (!emoji.shift_key) {\n close();\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 image: emoji.image,\n name: emoji.name,\n },\n });\n this.$emit('selected-emoji', emoji);\n },\n\n onSelectImage () {\n this.$refs.messageInputImageUpload.$refs.input.click();\n },\n\n onImageUpload () {\n this.$emit(\n 'select-media',\n this.$refs.messageInputImageUpload.$refs.input.files,\n );\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 onInput (event) {\n this.$emit('update:modelValue', event);\n },\n\n onTextInput (event) {\n this.text = event;\n this.$emit('text-input', event);\n },\n\n onMarkdownInput (event) {\n this.$emit('markdown-input', event);\n },\n },\n};\n</script>\n"],"names":["_sfc_main","NodeViewWrapper","DtItemLayout","DtIconClose","DtButton","DtIconVideo","nodeViewProps","DialtoneLocalization","e","onCloseCallback","_c","_b","_a","_hoisted_1","_hoisted_2","_createBlock","_component_node_view_wrapper","_createVNode","_component_dt_item_layout","_createElementVNode","_component_dt_icon_video","_component_dt_button","$options","_component_dt_icon_close","_createTextVNode","_ctx","MeetingPill","Node","VueNodeViewRenderer","HTMLAttributes","mergeAttributes","DtEmojiPicker","DtInput","DtPopover","DtRecipeMessageInputTopbar","DtRecipeMessageInputLink","DtRichTextEditor","DtTooltip","DtStack","DtIconImage","DtIconVerySatisfied","DtIconSatisfied","DtIconSend","autoFocus","RICH_TEXT_EDITOR_AUTOFOCUS_TYPES","outputFormat","RICH_TEXT_EDITOR_OUTPUT_FORMATS","lastActiveNodes","event","newValue","removeClassStyleAttrs","addClassStyleAttrs","value","type","editor","typeToCommandMap","_d","linkText","linkInput","EDITOR_SUPPORTED_LINK_PROTOCOLS","EDITOR_DEFAULT_LINK_PREFIX","returnFirstEl","dt","files","skinTone","emoji","close","_hoisted_3","_hoisted_4","_hoisted_5","_openBlock","_createElementBlock","_mergeProps","args","_renderSlot","$props","_component_dt_recipe_message_input_topbar","$data","_component_dt_recipe_message_input_link","_component_dt_rich_text_editor","$event","_cache","_component_dt_stack","_component_dt_icon_image","_directive_dt_tooltip","_component_dt_input","_component_dt_popover","_withCtx","attrs","_component_dt_icon_very_satisfied","_component_dt_icon_satisfied","_component_dt_emoji_picker","_component_dt_tooltip","_normalizeClass","_hoisted_6","_toDisplayString","_component_dt_icon_send"],"mappings":"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"}