@dialpad/dialtone 9.76.0 → 9.77.0-beta.1

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 (436) hide show
  1. package/dist/tokens/doc.json +15453 -15453
  2. package/dist/vue2/common/sr_only_close_button.vue.cjs +3 -3
  3. package/dist/vue2/common/sr_only_close_button.vue.cjs.map +1 -1
  4. package/dist/vue2/common/sr_only_close_button.vue.js +3 -3
  5. package/dist/vue2/common/sr_only_close_button.vue.js.map +1 -1
  6. package/dist/vue2/component-documentation.json +1 -1
  7. package/dist/vue2/components/avatar/avatar.vue.cjs +13 -24
  8. package/dist/vue2/components/avatar/avatar.vue.cjs.map +1 -1
  9. package/dist/vue2/components/avatar/avatar.vue.js +13 -24
  10. package/dist/vue2/components/avatar/avatar.vue.js.map +1 -1
  11. package/dist/vue2/components/badge/badge.vue.cjs +13 -34
  12. package/dist/vue2/components/badge/badge.vue.cjs.map +1 -1
  13. package/dist/vue2/components/badge/badge.vue.js +13 -34
  14. package/dist/vue2/components/badge/badge.vue.js.map +1 -1
  15. package/dist/vue2/components/chip/chip.vue.cjs +4 -4
  16. package/dist/vue2/components/chip/chip.vue.cjs.map +1 -1
  17. package/dist/vue2/components/chip/chip.vue.js +4 -4
  18. package/dist/vue2/components/chip/chip.vue.js.map +1 -1
  19. package/dist/vue2/components/collapsible/collapsible.vue.cjs +4 -3
  20. package/dist/vue2/components/collapsible/collapsible.vue.cjs.map +1 -1
  21. package/dist/vue2/components/collapsible/collapsible.vue.js +4 -3
  22. package/dist/vue2/components/collapsible/collapsible.vue.js.map +1 -1
  23. package/dist/vue2/components/datepicker/modules/month-year-picker.vue.cjs +14 -6
  24. package/dist/vue2/components/datepicker/modules/month-year-picker.vue.cjs.map +1 -1
  25. package/dist/vue2/components/datepicker/modules/month-year-picker.vue.js +14 -6
  26. package/dist/vue2/components/datepicker/modules/month-year-picker.vue.js.map +1 -1
  27. package/dist/vue2/components/emoji_picker/modules/emoji_search.vue.cjs +6 -5
  28. package/dist/vue2/components/emoji_picker/modules/emoji_search.vue.cjs.map +1 -1
  29. package/dist/vue2/components/emoji_picker/modules/emoji_search.vue.js +6 -5
  30. package/dist/vue2/components/emoji_picker/modules/emoji_search.vue.js.map +1 -1
  31. package/dist/vue2/components/emoji_picker/modules/emoji_tabset.vue.cjs +23 -14
  32. package/dist/vue2/components/emoji_picker/modules/emoji_tabset.vue.cjs.map +1 -1
  33. package/dist/vue2/components/emoji_picker/modules/emoji_tabset.vue.js +23 -14
  34. package/dist/vue2/components/emoji_picker/modules/emoji_tabset.vue.js.map +1 -1
  35. package/dist/vue2/components/empty_state/empty_state.vue.cjs +20 -80
  36. package/dist/vue2/components/empty_state/empty_state.vue.cjs.map +1 -1
  37. package/dist/vue2/components/empty_state/empty_state.vue.js +21 -81
  38. package/dist/vue2/components/empty_state/empty_state.vue.js.map +1 -1
  39. package/dist/vue2/components/empty_state/empty_state_constants.cjs +18 -0
  40. package/dist/vue2/components/empty_state/empty_state_constants.cjs.map +1 -1
  41. package/dist/vue2/components/empty_state/empty_state_constants.js +18 -0
  42. package/dist/vue2/components/empty_state/empty_state_constants.js.map +1 -1
  43. package/dist/vue2/components/icon/icon.vue.cjs +2 -2
  44. package/dist/vue2/components/icon/icon.vue.js +2 -2
  45. package/dist/vue2/components/illustration/illustration.vue.cjs +2 -2
  46. package/dist/vue2/components/illustration/illustration.vue.js +2 -2
  47. package/dist/vue2/components/image_viewer/image_viewer.vue.cjs +4 -4
  48. package/dist/vue2/components/image_viewer/image_viewer.vue.cjs.map +1 -1
  49. package/dist/vue2/components/image_viewer/image_viewer.vue.js +4 -4
  50. package/dist/vue2/components/image_viewer/image_viewer.vue.js.map +1 -1
  51. package/dist/vue2/components/keyboard_shortcut/keyboard_shortcut.vue.cjs +24 -9
  52. package/dist/vue2/components/keyboard_shortcut/keyboard_shortcut.vue.cjs.map +1 -1
  53. package/dist/vue2/components/keyboard_shortcut/keyboard_shortcut.vue.js +22 -7
  54. package/dist/vue2/components/keyboard_shortcut/keyboard_shortcut.vue.js.map +1 -1
  55. package/dist/vue2/components/keyboard_shortcut/keyboard_shortcut_constants.cjs +8 -14
  56. package/dist/vue2/components/keyboard_shortcut/keyboard_shortcut_constants.cjs.map +1 -1
  57. package/dist/vue2/components/keyboard_shortcut/keyboard_shortcut_constants.js +9 -15
  58. package/dist/vue2/components/keyboard_shortcut/keyboard_shortcut_constants.js.map +1 -1
  59. package/dist/vue2/components/list_item/list_item.vue.cjs +3 -3
  60. package/dist/vue2/components/list_item/list_item.vue.cjs.map +1 -1
  61. package/dist/vue2/components/list_item/list_item.vue.js +3 -3
  62. package/dist/vue2/components/list_item/list_item.vue.js.map +1 -1
  63. package/dist/vue2/components/modal/modal.vue.cjs +4 -4
  64. package/dist/vue2/components/modal/modal.vue.cjs.map +1 -1
  65. package/dist/vue2/components/modal/modal.vue.js +4 -4
  66. package/dist/vue2/components/modal/modal.vue.js.map +1 -1
  67. package/dist/vue2/components/notice/notice_action.vue.cjs +4 -4
  68. package/dist/vue2/components/notice/notice_action.vue.cjs.map +1 -1
  69. package/dist/vue2/components/notice/notice_action.vue.js +4 -4
  70. package/dist/vue2/components/notice/notice_action.vue.js.map +1 -1
  71. package/dist/vue2/components/notice/notice_icon.vue.cjs +12 -8
  72. package/dist/vue2/components/notice/notice_icon.vue.cjs.map +1 -1
  73. package/dist/vue2/components/notice/notice_icon.vue.js +12 -8
  74. package/dist/vue2/components/notice/notice_icon.vue.js.map +1 -1
  75. package/dist/vue2/components/pagination/pagination.vue.cjs +11 -5
  76. package/dist/vue2/components/pagination/pagination.vue.cjs.map +1 -1
  77. package/dist/vue2/components/pagination/pagination.vue.js +11 -5
  78. package/dist/vue2/components/pagination/pagination.vue.js.map +1 -1
  79. package/dist/vue2/components/popover/popover_header_footer.vue.cjs +4 -4
  80. package/dist/vue2/components/popover/popover_header_footer.vue.cjs.map +1 -1
  81. package/dist/vue2/components/popover/popover_header_footer.vue.js +4 -4
  82. package/dist/vue2/components/popover/popover_header_footer.vue.js.map +1 -1
  83. package/dist/vue2/dialtone-vue.cjs +0 -3
  84. package/dist/vue2/dialtone-vue.cjs.map +1 -1
  85. package/dist/vue2/dialtone-vue.js +2 -5
  86. package/dist/vue2/lib/general-row.cjs +0 -1
  87. package/dist/vue2/lib/general-row.cjs.map +1 -1
  88. package/dist/vue2/lib/general-row.js +1 -2
  89. package/dist/vue2/lib/keyboard-shortcut.cjs +0 -2
  90. package/dist/vue2/lib/keyboard-shortcut.cjs.map +1 -1
  91. package/dist/vue2/lib/keyboard-shortcut.js +2 -4
  92. package/dist/vue2/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.cjs +5 -5
  93. package/dist/vue2/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.cjs.map +1 -1
  94. package/dist/vue2/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.js +5 -5
  95. package/dist/vue2/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.js.map +1 -1
  96. package/dist/vue2/recipes/cards/ivr_node/ivr_node.vue.cjs +25 -5
  97. package/dist/vue2/recipes/cards/ivr_node/ivr_node.vue.cjs.map +1 -1
  98. package/dist/vue2/recipes/cards/ivr_node/ivr_node.vue.js +26 -6
  99. package/dist/vue2/recipes/cards/ivr_node/ivr_node.vue.js.map +1 -1
  100. package/dist/vue2/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.cjs +5 -4
  101. package/dist/vue2/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.cjs.map +1 -1
  102. package/dist/vue2/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.js +5 -4
  103. package/dist/vue2/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.js.map +1 -1
  104. package/dist/vue2/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.cjs +3 -3
  105. package/dist/vue2/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.cjs.map +1 -1
  106. package/dist/vue2/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.js +3 -3
  107. package/dist/vue2/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.js.map +1 -1
  108. package/dist/vue2/recipes/conversation_view/editor/editor.vue.cjs +35 -22
  109. package/dist/vue2/recipes/conversation_view/editor/editor.vue.cjs.map +1 -1
  110. package/dist/vue2/recipes/conversation_view/editor/editor.vue.js +35 -22
  111. package/dist/vue2/recipes/conversation_view/editor/editor.vue.js.map +1 -1
  112. package/dist/vue2/recipes/conversation_view/feed_item_row/feed_item_row.vue.cjs +7 -6
  113. package/dist/vue2/recipes/conversation_view/feed_item_row/feed_item_row.vue.cjs.map +1 -1
  114. package/dist/vue2/recipes/conversation_view/feed_item_row/feed_item_row.vue.js +7 -6
  115. package/dist/vue2/recipes/conversation_view/feed_item_row/feed_item_row.vue.js.map +1 -1
  116. package/dist/vue2/recipes/conversation_view/feed_pill/feed_item_pill.vue.cjs +9 -17
  117. package/dist/vue2/recipes/conversation_view/feed_pill/feed_item_pill.vue.cjs.map +1 -1
  118. package/dist/vue2/recipes/conversation_view/feed_pill/feed_item_pill.vue.js +9 -17
  119. package/dist/vue2/recipes/conversation_view/feed_pill/feed_item_pill.vue.js.map +1 -1
  120. package/dist/vue2/recipes/conversation_view/message_input/meeting_pill/MeetingPill.vue.cjs +6 -5
  121. package/dist/vue2/recipes/conversation_view/message_input/meeting_pill/MeetingPill.vue.cjs.map +1 -1
  122. package/dist/vue2/recipes/conversation_view/message_input/meeting_pill/MeetingPill.vue.js +6 -5
  123. package/dist/vue2/recipes/conversation_view/message_input/meeting_pill/MeetingPill.vue.js.map +1 -1
  124. package/dist/vue2/recipes/conversation_view/message_input/message_input.vue.cjs +22 -11
  125. package/dist/vue2/recipes/conversation_view/message_input/message_input.vue.cjs.map +1 -1
  126. package/dist/vue2/recipes/conversation_view/message_input/message_input.vue.js +22 -11
  127. package/dist/vue2/recipes/conversation_view/message_input/message_input.vue.js.map +1 -1
  128. package/dist/vue2/recipes/header/settings_menu_button/settings_menu_button.vue.cjs +6 -6
  129. package/dist/vue2/recipes/header/settings_menu_button/settings_menu_button.vue.cjs.map +1 -1
  130. package/dist/vue2/recipes/header/settings_menu_button/settings_menu_button.vue.js +6 -6
  131. package/dist/vue2/recipes/header/settings_menu_button/settings_menu_button.vue.js.map +1 -1
  132. package/dist/vue2/recipes/item_layout/contact_info/contact_info.vue.cjs +14 -10
  133. package/dist/vue2/recipes/item_layout/contact_info/contact_info.vue.cjs.map +1 -1
  134. package/dist/vue2/recipes/item_layout/contact_info/contact_info.vue.js +14 -10
  135. package/dist/vue2/recipes/item_layout/contact_info/contact_info.vue.js.map +1 -1
  136. package/dist/vue2/recipes/leftbar/callbox/callbox.vue.cjs +6 -3
  137. package/dist/vue2/recipes/leftbar/callbox/callbox.vue.cjs.map +1 -1
  138. package/dist/vue2/recipes/leftbar/callbox/callbox.vue.js +6 -3
  139. package/dist/vue2/recipes/leftbar/callbox/callbox.vue.js.map +1 -1
  140. package/dist/vue2/recipes/leftbar/contact_row/contact_row.vue.cjs +6 -5
  141. package/dist/vue2/recipes/leftbar/contact_row/contact_row.vue.cjs.map +1 -1
  142. package/dist/vue2/recipes/leftbar/contact_row/contact_row.vue.js +6 -5
  143. package/dist/vue2/recipes/leftbar/contact_row/contact_row.vue.js.map +1 -1
  144. package/dist/vue2/recipes/leftbar/general_row/general_row.vue.cjs +8 -7
  145. package/dist/vue2/recipes/leftbar/general_row/general_row.vue.cjs.map +1 -1
  146. package/dist/vue2/recipes/leftbar/general_row/general_row.vue.js +8 -7
  147. package/dist/vue2/recipes/leftbar/general_row/general_row.vue.js.map +1 -1
  148. package/dist/vue2/recipes/leftbar/general_row/general_row_constants.cjs +0 -17
  149. package/dist/vue2/recipes/leftbar/general_row/general_row_constants.cjs.map +1 -1
  150. package/dist/vue2/recipes/leftbar/general_row/general_row_constants.js +0 -17
  151. package/dist/vue2/recipes/leftbar/general_row/general_row_constants.js.map +1 -1
  152. package/dist/vue2/recipes/leftbar/general_row/leftbar_general_row_icon.vue.cjs +36 -4
  153. package/dist/vue2/recipes/leftbar/general_row/leftbar_general_row_icon.vue.cjs.map +1 -1
  154. package/dist/vue2/recipes/leftbar/general_row/leftbar_general_row_icon.vue.js +37 -5
  155. package/dist/vue2/recipes/leftbar/general_row/leftbar_general_row_icon.vue.js.map +1 -1
  156. package/dist/vue2/recipes/leftbar/group_row/group_row.vue.cjs +3 -3
  157. package/dist/vue2/recipes/leftbar/group_row/group_row.vue.cjs.map +1 -1
  158. package/dist/vue2/recipes/leftbar/group_row/group_row.vue.js +3 -3
  159. package/dist/vue2/recipes/leftbar/group_row/group_row.vue.js.map +1 -1
  160. package/dist/vue2/recipes/leftbar/unread_pill/unread_pill.vue.cjs +4 -3
  161. package/dist/vue2/recipes/leftbar/unread_pill/unread_pill.vue.cjs.map +1 -1
  162. package/dist/vue2/recipes/leftbar/unread_pill/unread_pill.vue.js +4 -3
  163. package/dist/vue2/recipes/leftbar/unread_pill/unread_pill.vue.js.map +1 -1
  164. package/dist/vue2/style.css +127 -124
  165. package/dist/vue2/types/components/avatar/avatar.vue.d.ts +4 -34
  166. package/dist/vue2/types/components/avatar/avatar.vue.d.ts.map +1 -1
  167. package/dist/vue2/types/components/badge/badge.vue.d.ts +16 -45
  168. package/dist/vue2/types/components/badge/badge.vue.d.ts.map +1 -1
  169. package/dist/vue2/types/components/chip/chip.vue.d.ts +1 -1
  170. package/dist/vue2/types/components/collapsible/collapsible.vue.d.ts +1 -1
  171. package/dist/vue2/types/components/collapsible/collapsible.vue.d.ts.map +1 -1
  172. package/dist/vue2/types/components/emoji_picker/modules/emoji_tabset.vue.d.ts +1 -67
  173. package/dist/vue2/types/components/empty_state/empty_state_constants.d.ts +27 -0
  174. package/dist/vue2/types/components/keyboard_shortcut/index.d.ts +1 -1
  175. package/dist/vue2/types/components/keyboard_shortcut/keyboard_shortcut.vue.d.ts +7 -15
  176. package/dist/vue2/types/components/keyboard_shortcut/keyboard_shortcut.vue.d.ts.map +1 -1
  177. package/dist/vue2/types/components/keyboard_shortcut/keyboard_shortcut_constants.d.ts +0 -11
  178. package/dist/vue2/types/components/keyboard_shortcut/keyboard_shortcut_constants.d.ts.map +1 -1
  179. package/dist/vue2/types/components/modal/modal.vue.d.ts +4 -6
  180. package/dist/vue2/types/components/modal/modal.vue.d.ts.map +1 -1
  181. package/dist/vue2/types/components/notice/notice_action.vue.d.ts +5 -4
  182. package/dist/vue2/types/components/notice/notice_action.vue.d.ts.map +1 -1
  183. package/dist/vue2/types/components/notice/notice_icon.vue.d.ts +1 -1
  184. package/dist/vue2/types/components/notice/notice_icon.vue.d.ts.map +1 -1
  185. package/dist/vue2/types/components/pagination/pagination.vue.d.ts.map +1 -1
  186. package/dist/vue2/types/components/split_button/split_button-omega.vue.d.ts +1 -1
  187. package/dist/vue2/types/recipes/buttons/callbar_button/callbar_button.vue.d.ts +1 -1
  188. package/dist/vue2/types/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts +1 -1
  189. package/dist/vue2/types/recipes/cards/ivr_node/ivr_node.vue.d.ts.map +1 -1
  190. package/dist/vue2/types/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.d.ts.map +1 -1
  191. package/dist/vue2/types/recipes/conversation_view/editor/editor.vue.d.ts +8 -8
  192. package/dist/vue2/types/recipes/conversation_view/editor/editor.vue.d.ts.map +1 -1
  193. package/dist/vue2/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts +0 -1
  194. package/dist/vue2/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts.map +1 -1
  195. package/dist/vue2/types/recipes/conversation_view/feed_pill/feed_item_pill.vue.d.ts +2 -16
  196. package/dist/vue2/types/recipes/conversation_view/feed_pill/feed_item_pill.vue.d.ts.map +1 -1
  197. package/dist/vue2/types/recipes/conversation_view/message_input/message_input.vue.d.ts +4 -6
  198. package/dist/vue2/types/recipes/conversation_view/message_input/message_input.vue.d.ts.map +1 -1
  199. package/dist/vue2/types/recipes/item_layout/contact_info/contact_info.vue.d.ts +3 -16
  200. package/dist/vue2/types/recipes/item_layout/contact_info/contact_info.vue.d.ts.map +1 -1
  201. package/dist/vue2/types/recipes/leftbar/callbox/callbox.vue.d.ts.map +1 -1
  202. package/dist/vue2/types/recipes/leftbar/contact_row/contact_row.vue.d.ts +0 -1
  203. package/dist/vue2/types/recipes/leftbar/contact_row/contact_row.vue.d.ts.map +1 -1
  204. package/dist/vue2/types/recipes/leftbar/general_row/general_row.vue.d.ts +1 -1
  205. package/dist/vue2/types/recipes/leftbar/general_row/general_row.vue.d.ts.map +1 -1
  206. package/dist/vue2/types/recipes/leftbar/general_row/general_row_constants.d.ts +0 -6
  207. package/dist/vue2/types/recipes/leftbar/general_row/general_row_constants.d.ts.map +1 -1
  208. package/dist/vue2/types/recipes/leftbar/general_row/index.d.ts +1 -1
  209. package/dist/vue2/types/recipes/leftbar/general_row/leftbar_general_row_icon.vue.d.ts +1 -1
  210. package/dist/vue2/types/recipes/leftbar/unread_pill/unread_pill.vue.d.ts.map +1 -1
  211. package/dist/vue3/common/sr_only_close_button.vue.cjs +4 -4
  212. package/dist/vue3/common/sr_only_close_button.vue.cjs.map +1 -1
  213. package/dist/vue3/common/sr_only_close_button.vue.js +4 -4
  214. package/dist/vue3/common/sr_only_close_button.vue.js.map +1 -1
  215. package/dist/vue3/component-documentation.json +1 -1
  216. package/dist/vue3/components/avatar/avatar.vue.cjs +30 -41
  217. package/dist/vue3/components/avatar/avatar.vue.cjs.map +1 -1
  218. package/dist/vue3/components/avatar/avatar.vue.js +32 -43
  219. package/dist/vue3/components/avatar/avatar.vue.js.map +1 -1
  220. package/dist/vue3/components/badge/badge.vue.cjs +22 -39
  221. package/dist/vue3/components/badge/badge.vue.cjs.map +1 -1
  222. package/dist/vue3/components/badge/badge.vue.js +23 -40
  223. package/dist/vue3/components/badge/badge.vue.js.map +1 -1
  224. package/dist/vue3/components/chip/chip.vue.cjs +4 -7
  225. package/dist/vue3/components/chip/chip.vue.cjs.map +1 -1
  226. package/dist/vue3/components/chip/chip.vue.js +4 -7
  227. package/dist/vue3/components/chip/chip.vue.js.map +1 -1
  228. package/dist/vue3/components/collapsible/collapsible.vue.cjs +12 -6
  229. package/dist/vue3/components/collapsible/collapsible.vue.cjs.map +1 -1
  230. package/dist/vue3/components/collapsible/collapsible.vue.js +12 -6
  231. package/dist/vue3/components/collapsible/collapsible.vue.js.map +1 -1
  232. package/dist/vue3/components/datepicker/modules/month-year-picker.vue.cjs +5 -17
  233. package/dist/vue3/components/datepicker/modules/month-year-picker.vue.cjs.map +1 -1
  234. package/dist/vue3/components/datepicker/modules/month-year-picker.vue.js +5 -17
  235. package/dist/vue3/components/datepicker/modules/month-year-picker.vue.js.map +1 -1
  236. package/dist/vue3/components/emoji_picker/modules/emoji_search.vue.cjs +4 -9
  237. package/dist/vue3/components/emoji_picker/modules/emoji_search.vue.cjs.map +1 -1
  238. package/dist/vue3/components/emoji_picker/modules/emoji_search.vue.js +5 -10
  239. package/dist/vue3/components/emoji_picker/modules/emoji_search.vue.js.map +1 -1
  240. package/dist/vue3/components/emoji_picker/modules/emoji_tabset.vue.cjs +11 -14
  241. package/dist/vue3/components/emoji_picker/modules/emoji_tabset.vue.cjs.map +1 -1
  242. package/dist/vue3/components/emoji_picker/modules/emoji_tabset.vue.js +12 -15
  243. package/dist/vue3/components/emoji_picker/modules/emoji_tabset.vue.js.map +1 -1
  244. package/dist/vue3/components/empty_state/empty_state.vue.cjs +19 -92
  245. package/dist/vue3/components/empty_state/empty_state.vue.cjs.map +1 -1
  246. package/dist/vue3/components/empty_state/empty_state.vue.js +20 -93
  247. package/dist/vue3/components/empty_state/empty_state.vue.js.map +1 -1
  248. package/dist/vue3/components/empty_state/empty_state_constants.cjs +18 -0
  249. package/dist/vue3/components/empty_state/empty_state_constants.cjs.map +1 -1
  250. package/dist/vue3/components/empty_state/empty_state_constants.js +18 -0
  251. package/dist/vue3/components/empty_state/empty_state_constants.js.map +1 -1
  252. package/dist/vue3/components/icon/icon.vue.cjs +2 -2
  253. package/dist/vue3/components/icon/icon.vue.js +2 -2
  254. package/dist/vue3/components/illustration/illustration.vue.cjs +2 -2
  255. package/dist/vue3/components/illustration/illustration.vue.js +2 -2
  256. package/dist/vue3/components/image_viewer/image_viewer.vue.cjs +4 -5
  257. package/dist/vue3/components/image_viewer/image_viewer.vue.cjs.map +1 -1
  258. package/dist/vue3/components/image_viewer/image_viewer.vue.js +4 -5
  259. package/dist/vue3/components/image_viewer/image_viewer.vue.js.map +1 -1
  260. package/dist/vue3/components/keyboard_shortcut/keyboard_shortcut.vue.cjs +24 -11
  261. package/dist/vue3/components/keyboard_shortcut/keyboard_shortcut.vue.cjs.map +1 -1
  262. package/dist/vue3/components/keyboard_shortcut/keyboard_shortcut.vue.js +23 -10
  263. package/dist/vue3/components/keyboard_shortcut/keyboard_shortcut.vue.js.map +1 -1
  264. package/dist/vue3/components/keyboard_shortcut/keyboard_shortcut_constants.cjs +8 -14
  265. package/dist/vue3/components/keyboard_shortcut/keyboard_shortcut_constants.cjs.map +1 -1
  266. package/dist/vue3/components/keyboard_shortcut/keyboard_shortcut_constants.js +9 -15
  267. package/dist/vue3/components/keyboard_shortcut/keyboard_shortcut_constants.js.map +1 -1
  268. package/dist/vue3/components/list_item/list_item.vue.cjs +4 -5
  269. package/dist/vue3/components/list_item/list_item.vue.cjs.map +1 -1
  270. package/dist/vue3/components/list_item/list_item.vue.js +4 -5
  271. package/dist/vue3/components/list_item/list_item.vue.js.map +1 -1
  272. package/dist/vue3/components/modal/modal.vue.cjs +4 -7
  273. package/dist/vue3/components/modal/modal.vue.cjs.map +1 -1
  274. package/dist/vue3/components/modal/modal.vue.js +4 -7
  275. package/dist/vue3/components/modal/modal.vue.js.map +1 -1
  276. package/dist/vue3/components/notice/notice_action.vue.cjs +4 -7
  277. package/dist/vue3/components/notice/notice_action.vue.cjs.map +1 -1
  278. package/dist/vue3/components/notice/notice_action.vue.js +4 -7
  279. package/dist/vue3/components/notice/notice_action.vue.js.map +1 -1
  280. package/dist/vue3/components/notice/notice_icon.vue.cjs +12 -12
  281. package/dist/vue3/components/notice/notice_icon.vue.cjs.map +1 -1
  282. package/dist/vue3/components/notice/notice_icon.vue.js +13 -13
  283. package/dist/vue3/components/notice/notice_icon.vue.js.map +1 -1
  284. package/dist/vue3/components/pagination/pagination.vue.cjs +10 -15
  285. package/dist/vue3/components/pagination/pagination.vue.cjs.map +1 -1
  286. package/dist/vue3/components/pagination/pagination.vue.js +10 -15
  287. package/dist/vue3/components/pagination/pagination.vue.js.map +1 -1
  288. package/dist/vue3/components/popover/popover_header_footer.vue.cjs +4 -7
  289. package/dist/vue3/components/popover/popover_header_footer.vue.cjs.map +1 -1
  290. package/dist/vue3/components/popover/popover_header_footer.vue.js +4 -7
  291. package/dist/vue3/components/popover/popover_header_footer.vue.js.map +1 -1
  292. package/dist/vue3/dialtone-vue.cjs +0 -3
  293. package/dist/vue3/dialtone-vue.cjs.map +1 -1
  294. package/dist/vue3/dialtone-vue.js +2 -5
  295. package/dist/vue3/lib/general-row.cjs +0 -1
  296. package/dist/vue3/lib/general-row.cjs.map +1 -1
  297. package/dist/vue3/lib/general-row.js +1 -2
  298. package/dist/vue3/lib/keyboard-shortcut.cjs +0 -2
  299. package/dist/vue3/lib/keyboard-shortcut.cjs.map +1 -1
  300. package/dist/vue3/lib/keyboard-shortcut.js +2 -4
  301. package/dist/vue3/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.cjs +4 -5
  302. package/dist/vue3/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.cjs.map +1 -1
  303. package/dist/vue3/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.js +4 -5
  304. package/dist/vue3/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.js.map +1 -1
  305. package/dist/vue3/recipes/cards/ivr_node/ivr_node.vue.cjs +27 -11
  306. package/dist/vue3/recipes/cards/ivr_node/ivr_node.vue.cjs.map +1 -1
  307. package/dist/vue3/recipes/cards/ivr_node/ivr_node.vue.js +29 -13
  308. package/dist/vue3/recipes/cards/ivr_node/ivr_node.vue.js.map +1 -1
  309. package/dist/vue3/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.cjs +7 -11
  310. package/dist/vue3/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.cjs.map +1 -1
  311. package/dist/vue3/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.js +7 -11
  312. package/dist/vue3/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.js.map +1 -1
  313. package/dist/vue3/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.cjs +4 -7
  314. package/dist/vue3/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.cjs.map +1 -1
  315. package/dist/vue3/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.js +4 -7
  316. package/dist/vue3/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.js.map +1 -1
  317. package/dist/vue3/recipes/conversation_view/editor/editor.vue.cjs +33 -25
  318. package/dist/vue3/recipes/conversation_view/editor/editor.vue.cjs.map +1 -1
  319. package/dist/vue3/recipes/conversation_view/editor/editor.vue.js +34 -26
  320. package/dist/vue3/recipes/conversation_view/editor/editor.vue.js.map +1 -1
  321. package/dist/vue3/recipes/conversation_view/feed_item_row/feed_item_row.vue.cjs +14 -7
  322. package/dist/vue3/recipes/conversation_view/feed_item_row/feed_item_row.vue.cjs.map +1 -1
  323. package/dist/vue3/recipes/conversation_view/feed_item_row/feed_item_row.vue.js +15 -8
  324. package/dist/vue3/recipes/conversation_view/feed_item_row/feed_item_row.vue.js.map +1 -1
  325. package/dist/vue3/recipes/conversation_view/feed_pill/feed_item_pill.vue.cjs +23 -25
  326. package/dist/vue3/recipes/conversation_view/feed_pill/feed_item_pill.vue.cjs.map +1 -1
  327. package/dist/vue3/recipes/conversation_view/feed_pill/feed_item_pill.vue.js +24 -26
  328. package/dist/vue3/recipes/conversation_view/feed_pill/feed_item_pill.vue.js.map +1 -1
  329. package/dist/vue3/recipes/conversation_view/message_input/meeting_pill/MeetingPill.vue.cjs +8 -12
  330. package/dist/vue3/recipes/conversation_view/message_input/meeting_pill/MeetingPill.vue.cjs.map +1 -1
  331. package/dist/vue3/recipes/conversation_view/message_input/meeting_pill/MeetingPill.vue.js +8 -12
  332. package/dist/vue3/recipes/conversation_view/message_input/meeting_pill/MeetingPill.vue.js.map +1 -1
  333. package/dist/vue3/recipes/conversation_view/message_input/message_input.vue.cjs +29 -18
  334. package/dist/vue3/recipes/conversation_view/message_input/message_input.vue.cjs.map +1 -1
  335. package/dist/vue3/recipes/conversation_view/message_input/message_input.vue.js +29 -18
  336. package/dist/vue3/recipes/conversation_view/message_input/message_input.vue.js.map +1 -1
  337. package/dist/vue3/recipes/header/settings_menu_button/settings_menu_button.vue.cjs +6 -12
  338. package/dist/vue3/recipes/header/settings_menu_button/settings_menu_button.vue.cjs.map +1 -1
  339. package/dist/vue3/recipes/header/settings_menu_button/settings_menu_button.vue.js +6 -12
  340. package/dist/vue3/recipes/header/settings_menu_button/settings_menu_button.vue.js.map +1 -1
  341. package/dist/vue3/recipes/item_layout/contact_info/contact_info.vue.cjs +33 -13
  342. package/dist/vue3/recipes/item_layout/contact_info/contact_info.vue.cjs.map +1 -1
  343. package/dist/vue3/recipes/item_layout/contact_info/contact_info.vue.js +34 -14
  344. package/dist/vue3/recipes/item_layout/contact_info/contact_info.vue.js.map +1 -1
  345. package/dist/vue3/recipes/leftbar/callbox/callbox.vue.cjs +13 -4
  346. package/dist/vue3/recipes/leftbar/callbox/callbox.vue.cjs.map +1 -1
  347. package/dist/vue3/recipes/leftbar/callbox/callbox.vue.js +14 -5
  348. package/dist/vue3/recipes/leftbar/callbox/callbox.vue.js.map +1 -1
  349. package/dist/vue3/recipes/leftbar/contact_row/contact_row.vue.cjs +13 -7
  350. package/dist/vue3/recipes/leftbar/contact_row/contact_row.vue.cjs.map +1 -1
  351. package/dist/vue3/recipes/leftbar/contact_row/contact_row.vue.js +14 -8
  352. package/dist/vue3/recipes/leftbar/contact_row/contact_row.vue.js.map +1 -1
  353. package/dist/vue3/recipes/leftbar/general_row/general_row.vue.cjs +9 -13
  354. package/dist/vue3/recipes/leftbar/general_row/general_row.vue.cjs.map +1 -1
  355. package/dist/vue3/recipes/leftbar/general_row/general_row.vue.js +9 -13
  356. package/dist/vue3/recipes/leftbar/general_row/general_row.vue.js.map +1 -1
  357. package/dist/vue3/recipes/leftbar/general_row/general_row_constants.cjs +0 -17
  358. package/dist/vue3/recipes/leftbar/general_row/general_row_constants.cjs.map +1 -1
  359. package/dist/vue3/recipes/leftbar/general_row/general_row_constants.js +0 -17
  360. package/dist/vue3/recipes/leftbar/general_row/general_row_constants.js.map +1 -1
  361. package/dist/vue3/recipes/leftbar/general_row/leftbar_general_row_icon.vue.cjs +39 -11
  362. package/dist/vue3/recipes/leftbar/general_row/leftbar_general_row_icon.vue.cjs.map +1 -1
  363. package/dist/vue3/recipes/leftbar/general_row/leftbar_general_row_icon.vue.js +41 -13
  364. package/dist/vue3/recipes/leftbar/general_row/leftbar_general_row_icon.vue.js.map +1 -1
  365. package/dist/vue3/recipes/leftbar/group_row/group_row.vue.cjs +4 -7
  366. package/dist/vue3/recipes/leftbar/group_row/group_row.vue.cjs.map +1 -1
  367. package/dist/vue3/recipes/leftbar/group_row/group_row.vue.js +4 -7
  368. package/dist/vue3/recipes/leftbar/group_row/group_row.vue.js.map +1 -1
  369. package/dist/vue3/recipes/leftbar/unread_pill/unread_pill.vue.cjs +11 -6
  370. package/dist/vue3/recipes/leftbar/unread_pill/unread_pill.vue.cjs.map +1 -1
  371. package/dist/vue3/recipes/leftbar/unread_pill/unread_pill.vue.js +12 -7
  372. package/dist/vue3/recipes/leftbar/unread_pill/unread_pill.vue.js.map +1 -1
  373. package/dist/vue3/style.css +127 -124
  374. package/dist/vue3/types/components/avatar/avatar.vue.d.ts +5 -33
  375. package/dist/vue3/types/components/avatar/avatar.vue.d.ts.map +1 -1
  376. package/dist/vue3/types/components/badge/badge.vue.d.ts +17 -34
  377. package/dist/vue3/types/components/badge/badge.vue.d.ts.map +1 -1
  378. package/dist/vue3/types/components/chip/chip.vue.d.ts +1 -1
  379. package/dist/vue3/types/components/collapsible/collapsible.vue.d.ts +1 -1
  380. package/dist/vue3/types/components/collapsible/collapsible.vue.d.ts.map +1 -1
  381. package/dist/vue3/types/components/emoji_picker/modules/emoji_tabset.vue.d.ts.map +1 -1
  382. package/dist/vue3/types/components/empty_state/empty_state.vue.d.ts +4 -0
  383. package/dist/vue3/types/components/empty_state/empty_state.vue.d.ts.map +1 -1
  384. package/dist/vue3/types/components/empty_state/empty_state_constants.d.ts +27 -0
  385. package/dist/vue3/types/components/image_viewer/image_viewer.vue.d.ts.map +1 -1
  386. package/dist/vue3/types/components/keyboard_shortcut/index.d.ts +1 -1
  387. package/dist/vue3/types/components/keyboard_shortcut/keyboard_shortcut.vue.d.ts +210 -15
  388. package/dist/vue3/types/components/keyboard_shortcut/keyboard_shortcut.vue.d.ts.map +1 -1
  389. package/dist/vue3/types/components/keyboard_shortcut/keyboard_shortcut_constants.d.ts +0 -11
  390. package/dist/vue3/types/components/keyboard_shortcut/keyboard_shortcut_constants.d.ts.map +1 -1
  391. package/dist/vue3/types/components/list_item/list_item.vue.d.ts +2 -8
  392. package/dist/vue3/types/components/list_item/list_item.vue.d.ts.map +1 -1
  393. package/dist/vue3/types/components/notice/notice_action.vue.d.ts +5 -4
  394. package/dist/vue3/types/components/notice/notice_action.vue.d.ts.map +1 -1
  395. package/dist/vue3/types/components/notice/notice_icon.vue.d.ts +30 -1
  396. package/dist/vue3/types/components/notice/notice_icon.vue.d.ts.map +1 -1
  397. package/dist/vue3/types/components/pagination/pagination.vue.d.ts.map +1 -1
  398. package/dist/vue3/types/components/split_button/split_button-omega.vue.d.ts +1 -1
  399. package/dist/vue3/types/recipes/buttons/callbar_button/callbar_button.vue.d.ts +1 -1
  400. package/dist/vue3/types/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts +1 -1
  401. package/dist/vue3/types/recipes/cards/ivr_node/ivr_node.vue.d.ts +30 -1
  402. package/dist/vue3/types/recipes/cards/ivr_node/ivr_node.vue.d.ts.map +1 -1
  403. package/dist/vue3/types/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.d.ts.map +1 -1
  404. package/dist/vue3/types/recipes/conversation_view/editor/editor.vue.d.ts +240 -8
  405. package/dist/vue3/types/recipes/conversation_view/editor/editor.vue.d.ts.map +1 -1
  406. package/dist/vue3/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts +0 -1
  407. package/dist/vue3/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts.map +1 -1
  408. package/dist/vue3/types/recipes/conversation_view/feed_pill/feed_item_pill.vue.d.ts +31 -16
  409. package/dist/vue3/types/recipes/conversation_view/feed_pill/feed_item_pill.vue.d.ts.map +1 -1
  410. package/dist/vue3/types/recipes/conversation_view/message_input/message_input.vue.d.ts +4 -6
  411. package/dist/vue3/types/recipes/conversation_view/message_input/message_input.vue.d.ts.map +1 -1
  412. package/dist/vue3/types/recipes/item_layout/contact_info/contact_info.vue.d.ts +3 -16
  413. package/dist/vue3/types/recipes/item_layout/contact_info/contact_info.vue.d.ts.map +1 -1
  414. package/dist/vue3/types/recipes/leftbar/callbox/callbox.vue.d.ts.map +1 -1
  415. package/dist/vue3/types/recipes/leftbar/contact_row/contact_row.vue.d.ts +0 -1
  416. package/dist/vue3/types/recipes/leftbar/contact_row/contact_row.vue.d.ts.map +1 -1
  417. package/dist/vue3/types/recipes/leftbar/general_row/general_row.vue.d.ts +1 -1
  418. package/dist/vue3/types/recipes/leftbar/general_row/general_row.vue.d.ts.map +1 -1
  419. package/dist/vue3/types/recipes/leftbar/general_row/general_row_constants.d.ts +0 -6
  420. package/dist/vue3/types/recipes/leftbar/general_row/general_row_constants.d.ts.map +1 -1
  421. package/dist/vue3/types/recipes/leftbar/general_row/index.d.ts +1 -1
  422. package/dist/vue3/types/recipes/leftbar/general_row/leftbar_general_row_icon.vue.d.ts +30 -1
  423. package/dist/vue3/types/recipes/leftbar/unread_pill/unread_pill.vue.d.ts.map +1 -1
  424. package/package.json +3 -3
  425. package/dist/vue2/common/storybook_utils.cjs +0 -8
  426. package/dist/vue2/common/storybook_utils.cjs.map +0 -1
  427. package/dist/vue2/common/storybook_utils.js +0 -8
  428. package/dist/vue2/common/storybook_utils.js.map +0 -1
  429. package/dist/vue2/types/common/storybook_utils.d.ts +0 -35
  430. package/dist/vue2/types/common/storybook_utils.d.ts.map +0 -1
  431. package/dist/vue3/common/storybook_utils.cjs +0 -8
  432. package/dist/vue3/common/storybook_utils.cjs.map +0 -1
  433. package/dist/vue3/common/storybook_utils.js +0 -8
  434. package/dist/vue3/common/storybook_utils.js.map +0 -1
  435. package/dist/vue3/types/common/storybook_utils.d.ts +0 -25
  436. package/dist/vue3/types/common/storybook_utils.d.ts.map +0 -1
@@ -1,10 +1,10 @@
1
1
  import meetingPill from "./meeting_pill/meeting_pill.js";
2
+ import { DtIconImage, DtIconVerySatisfied, DtIconSatisfied, DtIconSend } from "@dialpad/dialtone-icons/vue3";
2
3
  import { resolveComponent, resolveDirective, openBlock, createElementBlock, normalizeClass, withModifiers, renderSlot, withDirectives, normalizeStyle, createVNode, mergeProps, createElementVNode, createBlock, withCtx, createCommentVNode, toDisplayString, vShow, createSlots } from "vue";
3
4
  /* empty css */
4
5
  import _export_sfc from "../../../_virtual/_plugin-vue_export-helper.js";
5
6
  import DtButton from "../../../components/button/button.vue.js";
6
7
  import DtEmojiPicker from "../../../components/emoji_picker/emoji_picker.vue.js";
7
- import DtIcon from "../../../components/icon/icon.vue.js";
8
8
  import DtInput from "../../../components/input/input.vue.js";
9
9
  import DtPopover from "../../../components/popover/popover.vue.js";
10
10
  import DtRichTextEditor from "../../../components/rich_text_editor/rich_text_editor.vue.js";
@@ -15,11 +15,14 @@ const _sfc_main = {
15
15
  components: {
16
16
  DtButton,
17
17
  DtEmojiPicker,
18
- DtIcon,
19
18
  DtInput,
20
19
  DtPopover,
21
20
  DtRichTextEditor,
22
- DtTooltip
21
+ DtTooltip,
22
+ DtIconImage,
23
+ DtIconVerySatisfied,
24
+ DtIconSatisfied,
25
+ DtIconSend
23
26
  },
24
27
  mixins: [],
25
28
  inheritAttrs: false,
@@ -178,7 +181,7 @@ const _sfc_main = {
178
181
  */
179
182
  showSend: {
180
183
  type: [Boolean, Object],
181
- default: () => ({ icon: "send" })
184
+ default: () => ({})
182
185
  },
183
186
  /**
184
187
  * Cancel button defaults.
@@ -366,6 +369,9 @@ const _sfc_main = {
366
369
  };
367
370
  },
368
371
  computed: {
372
+ showSendIcon() {
373
+ return !this.showSend.text;
374
+ },
369
375
  inputLength() {
370
376
  return this.internalInputValue.length;
371
377
  },
@@ -385,6 +391,9 @@ const _sfc_main = {
385
391
  },
386
392
  emojiPickerHovered() {
387
393
  return this.emojiPickerFocus || this.emojiPickerOpened;
394
+ },
395
+ sendIconSize() {
396
+ return "300";
388
397
  }
389
398
  },
390
399
  watch: {
@@ -471,12 +480,15 @@ const _hoisted_5 = { key: 0 };
471
480
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
472
481
  var _a;
473
482
  const _component_dt_rich_text_editor = resolveComponent("dt-rich-text-editor");
474
- const _component_dt_icon = resolveComponent("dt-icon");
483
+ const _component_dt_icon_image = resolveComponent("dt-icon-image");
475
484
  const _component_dt_button = resolveComponent("dt-button");
476
485
  const _component_dt_input = resolveComponent("dt-input");
486
+ const _component_dt_icon_very_satisfied = resolveComponent("dt-icon-very-satisfied");
487
+ const _component_dt_icon_satisfied = resolveComponent("dt-icon-satisfied");
477
488
  const _component_dt_emoji_picker = resolveComponent("dt-emoji-picker");
478
489
  const _component_dt_popover = resolveComponent("dt-popover");
479
490
  const _component_dt_tooltip = resolveComponent("dt-tooltip");
491
+ const _component_dt_icon_send = resolveComponent("dt-icon-send");
480
492
  const _directive_dt_scrollbar = resolveDirective("dt-scrollbar");
481
493
  const _directive_dt_tooltip = resolveDirective("dt-tooltip");
482
494
  return openBlock(), createElementBlock("div", {
@@ -539,10 +551,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
539
551
  onBlur: _cache[4] || (_cache[4] = ($event) => $data.imagePickerFocus = false)
540
552
  }, {
541
553
  icon: withCtx(() => [
542
- createVNode(_component_dt_icon, {
543
- name: "image",
544
- size: "300"
545
- })
554
+ createVNode(_component_dt_icon_image, { size: "300" })
546
555
  ]),
547
556
  _: 1
548
557
  }, 8, ["kind", "aria-label", "onClick"])), [
@@ -581,10 +590,13 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
581
590
  onBlur: _cache[8] || (_cache[8] = ($event) => $data.emojiPickerFocus = false)
582
591
  }), {
583
592
  icon: withCtx(() => [
584
- createVNode(_component_dt_icon, {
585
- name: !$options.emojiPickerHovered ? "satisfied" : "very-satisfied",
593
+ $options.emojiPickerHovered ? (openBlock(), createBlock(_component_dt_icon_very_satisfied, {
594
+ key: 0,
595
+ size: "300"
596
+ })) : (openBlock(), createBlock(_component_dt_icon_satisfied, {
597
+ key: 1,
586
598
  size: "300"
587
- }, null, 8, ["name"])
599
+ }))
588
600
  ]),
589
601
  _: 2
590
602
  }, 1040, ["kind", "aria-label", "onClick"])), [
@@ -653,7 +665,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
653
665
  class: normalizeClass([
654
666
  {
655
667
  "dt-message-input__send-button--disabled": $options.isSendDisabled,
656
- "d-btn--circle": $props.showSend.icon
668
+ "d-btn--circle": $options.showSendIcon
657
669
  }
658
670
  ]),
659
671
  "aria-label": $props.showSend.ariaLabel,
@@ -665,13 +677,12 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
665
677
  ]),
666
678
  _: 2
667
679
  }, [
668
- $props.showSend.icon ? {
680
+ $options.showSendIcon ? {
669
681
  name: "icon",
670
682
  fn: withCtx(() => [
671
- createVNode(_component_dt_icon, {
672
- name: $props.showSend.icon,
673
- size: "300"
674
- }, null, 8, ["name"])
683
+ renderSlot(_ctx.$slots, "sendIcon", { iconSize: $options.sendIconSize }, () => [
684
+ createVNode(_component_dt_icon_send, { size: $options.sendIconSize }, null, 8, ["size"])
685
+ ])
675
686
  ]),
676
687
  key: "0"
677
688
  } : void 0
@@ -1 +1 @@
1
- {"version":3,"file":"message_input.vue.js","sources":["../../../../recipes/conversation_view/message_input/message_input.vue"],"sourcesContent":["<!-- eslint-disable vue/no-restricted-class -->\n<template>\n <div\n data-qa=\"dt-message-input\"\n role=\"presentation\"\n :class=\"['dt-message-input']\"\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 <!-- Some wrapper to restrict the height and show the scrollbar -->\n <div\n v-dt-scrollbar\n class=\"dt-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=\"allowBlockquote\"\n :allow-bold=\"allowBold\"\n :allow-bullet-list=\"allowBulletList\"\n :allow-codeblock=\"allowCodeblock\"\n :allow-italic=\"allowItalic\"\n :allow-strike=\"allowStrike\"\n :allow-underline=\"allowUnderline\"\n :editable=\"editable\"\n :input-aria-label=\"inputAriaLabel\"\n :input-class=\"inputClass\"\n :output-format=\"outputFormat\"\n :auto-focus=\"autoFocus\"\n :link=\"link\"\n :placeholder=\"placeholder\"\n :prevent-typing=\"preventTyping\"\n :mention-suggestion=\"mentionSuggestion\"\n :channel-suggestion=\"channelSuggestion\"\n :slash-command-suggestion=\"slashCommandSuggestion\"\n :additional-extensions=\"additionalExtensions\"\n v-bind=\"$attrs\"\n @input=\"onInput\"\n />\n </div>\n <!-- @slot Slot for attachment carousel -->\n <slot name=\"middle\" />\n <!-- Section for the bottom UI -->\n <section class=\"dt-message-input__bottom-section\">\n <!-- Left content -->\n <div class=\"dt-message-input__bottom-section-left\">\n <dt-button\n v-if=\"showImagePicker\"\n v-dt-tooltip:top-start=\"showImagePicker?.tooltipLabel\"\n data-qa=\"dt-message-input-image-btn\"\n size=\"sm\"\n circle\n :kind=\"imagePickerFocus ? 'default' : 'muted'\"\n importance=\"clear\"\n :aria-label=\"showImagePicker.ariaLabel\"\n @click=\"onSelectImage\"\n @mouseenter=\"imagePickerFocus = true\"\n @mouseleave=\"imagePickerFocus = false\"\n @focus=\"imagePickerFocus = true\"\n @blur=\"imagePickerFocus = false\"\n >\n <template #icon>\n <dt-icon\n name=\"image\"\n size=\"300\"\n />\n </template>\n </dt-button>\n <dt-input\n ref=\"messageInputImageUpload\"\n data-qa=\"dt-message-input-image-input\"\n accept=\"image/*, video/*\"\n type=\"file\"\n class=\"dt-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-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=\"emojiTooltipMessage\"\n v-bind=\"attrs\"\n data-qa=\"dt-message-input-emoji-picker-btn\"\n size=\"sm\"\n circle\n :kind=\"emojiPickerHovered ? 'default' : 'muted'\"\n importance=\"clear\"\n :aria-label=\"emojiButtonAriaLabel\"\n @click=\"toggleEmojiPicker\"\n @mouseenter=\"emojiPickerFocus = true\"\n @mouseleave=\"emojiPickerFocus = false\"\n @focus=\"emojiPickerFocus = true\"\n @blur=\"emojiPickerFocus = false\"\n >\n <template #icon>\n <dt-icon\n :name=\"!emojiPickerHovered ? 'satisfied' : 'very-satisfied'\"\n size=\"300\"\n />\n </template>\n </dt-button>\n </template>\n <template\n #content=\"{ close }\"\n >\n <dt-emoji-picker\n v-bind=\"emojiPickerProps\"\n @skin-tone=\"onSkinTone\"\n @selected-emoji=\"(emoji) => { close(); onSelectEmoji(emoji); }\"\n />\n </template>\n </dt-popover>\n <!-- @slot Slot for emojiGiphy picker -->\n <slot name=\"emojiGiphyPicker\" />\n </div>\n <!-- Right content -->\n <div class=\"dt-message-input__bottom-section-right\">\n <!-- @slot Slot for sms count -->\n <div class=\"d-d-flex d-ai-center\">\n <slot name=\"smsCount\" />\n </div>\n\n <!-- Optionally displayed remaining character counter -->\n <dt-tooltip\n v-if=\"Boolean(showCharacterLimit)\"\n class=\"dt-message-input__remaining-char-tooltip\"\n placement=\"top-end\"\n :enabled=\"characterLimitTooltipEnabled\"\n :message=\"showCharacterLimit.message\"\n :offset=\"[10, 8]\"\n >\n <template #anchor>\n <p\n v-show=\"displayCharacterLimitWarning\"\n class=\"dt-message-input__remaining-char\"\n data-qa=\"dt-message-input-character-limit\"\n >\n {{ showCharacterLimit.count - inputLength }}\n </p>\n </template>\n </dt-tooltip>\n\n <!-- Cancel button for edit mode -->\n <dt-button\n v-if=\"showCancel\"\n data-qa=\"dt-message-input-cancel-button\"\n class=\"dt-message-input__cancel-button\"\n size=\"sm\"\n kind=\"muted\"\n importance=\"clear\"\n :aria-label=\"showCancel.ariaLabel\"\n @click=\"onCancel\"\n >\n <p>{{ showCancel.text }}</p>\n </dt-button>\n\n <!-- @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=\"showSend?.tooltipLabel\"\n data-qa=\"dt-message-input-send-btn\"\n size=\"sm\"\n kind=\"default\"\n importance=\"primary\"\n :class=\"[\n {\n 'dt-message-input__send-button--disabled': isSendDisabled,\n 'd-btn--circle': showSend.icon,\n },\n ]\"\n :aria-label=\"showSend.ariaLabel\"\n :aria-disabled=\"isSendDisabled\"\n @click=\"onSend\"\n >\n <template\n v-if=\"showSend.icon\"\n #icon\n >\n <dt-icon\n :name=\"showSend.icon\"\n size=\"300\"\n />\n </template>\n <template\n v-if=\"showSend.text\"\n >\n <p>{{ showSend.text }}</p>\n </template>\n </dt-button>\n </slot>\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 meetingPill from './meeting_pill/meeting_pill';\nimport { DtButton } from '@/components/button';\nimport { DtIcon } from '@/components/icon';\nimport { DtEmojiPicker } from '@/components/emoji_picker';\nimport { DtPopover } from '@/components/popover';\nimport { DtInput } from '@/components/input';\nimport { DtTooltip } from '@/components/tooltip';\n\nexport default {\n name: 'DtRecipeMessageInput',\n\n components: {\n DtButton,\n DtEmojiPicker,\n DtIcon,\n DtInput,\n DtPopover,\n DtRichTextEditor,\n DtTooltip,\n },\n\n mixins: [],\n\n inheritAttrs: false,\n\n props: {\n /**\n * Value of the input. The object format should match TipTap's JSON\n * document structure: https://tiptap.dev/guide/output#option-1-json\n */\n modelValue: {\n type: [Object, String],\n default: '',\n },\n\n /**\n * Whether the input is editable\n */\n editable: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Descriptive label for the input element\n */\n inputAriaLabel: {\n type: String,\n required: true,\n default: '',\n },\n\n /**\n * 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`. See https://tiptap.dev/guide/output for\n * examples.\n * @values text, json, html\n */\n outputFormat: {\n type: String,\n default: 'text',\n validator (outputFormat) {\n return RICH_TEXT_EDITOR_OUTPUT_FORMATS.includes(outputFormat);\n },\n },\n\n /**\n * Enables the Link extension and optionally passes configurations to it\n */\n link: {\n type: [Boolean, Object],\n default: true,\n },\n\n /**\n * Placeholder text\n */\n placeholder: {\n type: String,\n default: '',\n },\n\n /**\n * Disable Send Button\n */\n disableSend: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Content area needs to dynamically adjust height based on the conversation area height.\n * can be vh|px|rem|em|%\n */\n maxHeight: {\n type: String,\n default: 'unset',\n },\n\n // Emoji picker props\n showEmojiPicker: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Props to pass into the emoji picker.\n */\n emojiPickerProps: {\n type: Object,\n default: () => ({}),\n validate (emojiPickerProps) {\n return [\n 'searchNoResultsLabel',\n 'searchResultsLabel',\n 'searchPlaceholderLabel',\n 'skinSelectorButtonTooltipLabel',\n 'tabSetLabels',\n ].every(prop => emojiPickerProps[prop] != null);\n },\n },\n\n /**\n * Emoji button tooltip label\n */\n emojiTooltipMessage: {\n type: String,\n default: 'Emoji',\n },\n\n // Aria label for buttons\n /**\n * Emoji button aria label\n */\n emojiButtonAriaLabel: {\n type: String,\n default: 'emoji button',\n },\n\n /**\n * Enable character Limit warning\n */\n showCharacterLimit: {\n type: [Boolean, Object],\n default: () => ({ count: 1500, warning: 500, message: '' }),\n },\n\n showImagePicker: {\n type: [Boolean, Object],\n default: () => ({ tooltipLabel: 'Attach Image', ariaLabel: 'image button' }),\n },\n\n /**\n * Send button defaults.\n */\n showSend: {\n type: [Boolean, Object],\n default: () => ({ icon: 'send' }),\n },\n\n /**\n * Cancel button defaults.\n */\n showCancel: {\n type: [Boolean, Object],\n default: () => ({ text: 'Cancel' }),\n },\n\n /**\n * suggestion object containing the items query function.\n * The valid keys passed into this object can be found here: https://tiptap.dev/api/utilities/suggestion\n *\n * The only required key is the items function which is used to query the contacts for suggestion.\n * items({ query }) => { return [ContactObject]; }\n * ContactObject format:\n * { name: string, avatarSrc: string, id: string }\n *\n * When null, it does not add the plugin.\n */\n mentionSuggestion: {\n type: Object,\n default: null,\n },\n\n /**\n * 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 * Whether the input allows for block quote.\n */\n allowBlockquote: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Whether the input allows for bold to be introduced in the text.\n */\n allowBold: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Whether the input allows for bullet list to be introduced in the text.\n */\n allowBulletList: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Whether the input allows for italic to be introduced in the text.\n */\n allowItalic: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Whether the input allows for strike to be introduced in the text.\n */\n allowStrike: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Whether the input allows for underline to be introduced in the text.\n */\n allowUnderline: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Whether the input allows codeblock to be introduced in the text.\n */\n allowCodeblock: {\n type: Boolean,\n default: true,\n },\n },\n\n emits: [\n /**\n * Fires when send button is clicked\n *\n * @event submit\n * @type {String}\n */\n 'submit',\n\n /**\n * Fires when media is selected from image button\n *\n * @event select-media\n * @type {Array}\n */\n 'select-media',\n\n /**\n * Fires when media is dropped into the message input\n *\n * @event add-media\n * @type {Array}\n */\n 'add-media',\n\n /**\n * Fires when media is pasted into the message input\n *\n * @event paste-media\n * @type {Array}\n */\n 'paste-media',\n\n /**\n * Fires when cancel button is pressed (only on edit mode)\n *\n * @event cancel\n * @type {Boolean}\n */\n 'cancel',\n\n /**\n * Fires when skin tone is selected from the emoji picker\n *\n * @event skin-tone\n * @type {String}\n */\n 'skin-tone',\n\n /**\n * Fires when emoji is selected from the emoji picker\n *\n * @event selected-emoji\n * @type {String}\n */\n 'selected-emoji',\n\n /**\n * 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 data () {\n return {\n additionalExtensions: [meetingPill],\n internalInputValue: this.modelValue, // internal input content\n imagePickerFocus: false,\n emojiPickerFocus: false,\n emojiPickerOpened: false,\n };\n },\n\n computed: {\n inputLength () {\n return this.internalInputValue.length;\n },\n\n displayCharacterLimitWarning () {\n return Boolean(this.showCharacterLimit) &&\n ((this.showCharacterLimit.count - this.inputLength) <= this.showCharacterLimit.warning);\n },\n\n characterLimitTooltipEnabled () {\n return this.showCharacterLimit.message && (this.showCharacterLimit.count - this.inputLength < 0);\n },\n\n isSendDisabled () {\n return this.disableSend ||\n (this.showCharacterLimit && this.inputLength > this.showCharacterLimit.count);\n },\n\n computedCloseButtonProps () {\n return {\n ariaLabel: 'Close',\n };\n },\n\n emojiPickerHovered () {\n return this.emojiPickerFocus || this.emojiPickerOpened;\n },\n },\n\n watch: {\n modelValue (newValue) {\n this.internalInputValue = newValue;\n },\n\n 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 }\n },\n\n methods: {\n // Mousedown instead of click because it fires before the blur event.\n onMousedown (e) {\n const isWithinInput = this.$refs.richTextEditor.$el.querySelector('.tiptap').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) {\n if (!emoji) {\n return;\n }\n\n // Insert emoji into the editor\n this.$refs.richTextEditor.editor.commands.insertContent({\n type: 'emoji',\n attrs: {\n code: emoji.shortname,\n },\n });\n this.$emit('selected-emoji', emoji);\n },\n\n onSelectImage () {\n this.$refs.messageInputImageUpload.$refs.input.click();\n },\n\n onImageUpload () {\n this.$emit('select-media', this.$refs.messageInputImageUpload.$refs.input.files);\n },\n\n toggleEmojiPicker () {\n this.emojiPickerOpened = !this.emojiPickerOpened;\n },\n\n onSend () {\n if (this.isSendDisabled) {\n return;\n }\n this.$emit('submit', this.internalInputValue);\n },\n\n onCancel () {\n this.$emit('cancel');\n },\n\n onInput (event) {\n this.$emit('update:modelValue', event);\n },\n },\n};\n</script>\n\n<style lang=\"less\">\n.dt-message-input {\n display: flex;\n flex-direction: column;\n border-radius: var(--dt-size-radius-400);\n border: var(--dt-size-border-100) solid;\n border-color: var(--dt-color-border-default);\n cursor: text;\n\n &:focus-within {\n border-color: var(--dt-color-border-bold);\n box-shadow: var(--dt-shadow-small);\n }\n\n &__editor-wrapper {\n padding: var(--dt-space-400) var(--dt-space-500) var(--dt-space-300);\n }\n\n &__remaining-char-tooltip {\n margin-top: auto;\n margin-bottom: auto;\n }\n\n &__remaining-char {\n color: var(--dt-color-foreground-critical);\n font-size: var(--dt-font-size-100);\n margin-right: var(--dt-space-500);\n }\n\n &__send-button--disabled {\n background-color: unset;\n color: var(--dt-color-foreground-muted);\n cursor: default;\n }\n\n &__cancel-button {\n margin-right: var(--dt-space-300);\n }\n\n &__bottom-section {\n display: flex;\n justify-content: space-between;\n padding: var(--dt-space-300) var(--dt-space-400);\n }\n\n &__bottom-section-left {\n display: flex;\n }\n\n &__bottom-section-right {\n display: flex;\n }\n\n &__image-input {\n position: absolute;\n }\n}\n</style>\n"],"names":["_createElementBlock","_renderSlot","_createVNode","_mergeProps","_createElementVNode","_createBlock","_withCtx","_toDisplayString","_normalizeClass","_a"],"mappings":"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"}
1
+ {"version":3,"file":"message_input.vue.js","sources":["../../../../recipes/conversation_view/message_input/message_input.vue"],"sourcesContent":["<!-- eslint-disable vue/no-restricted-class -->\n<template>\n <div\n data-qa=\"dt-message-input\"\n role=\"presentation\"\n :class=\"['dt-message-input']\"\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 <!-- Some wrapper to restrict the height and show the scrollbar -->\n <div\n v-dt-scrollbar\n class=\"dt-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=\"allowBlockquote\"\n :allow-bold=\"allowBold\"\n :allow-bullet-list=\"allowBulletList\"\n :allow-codeblock=\"allowCodeblock\"\n :allow-italic=\"allowItalic\"\n :allow-strike=\"allowStrike\"\n :allow-underline=\"allowUnderline\"\n :editable=\"editable\"\n :input-aria-label=\"inputAriaLabel\"\n :input-class=\"inputClass\"\n :output-format=\"outputFormat\"\n :auto-focus=\"autoFocus\"\n :link=\"link\"\n :placeholder=\"placeholder\"\n :prevent-typing=\"preventTyping\"\n :mention-suggestion=\"mentionSuggestion\"\n :channel-suggestion=\"channelSuggestion\"\n :slash-command-suggestion=\"slashCommandSuggestion\"\n :additional-extensions=\"additionalExtensions\"\n v-bind=\"$attrs\"\n @input=\"onInput\"\n />\n </div>\n <!-- @slot Slot for attachment carousel -->\n <slot name=\"middle\" />\n <!-- Section for the bottom UI -->\n <section class=\"dt-message-input__bottom-section\">\n <!-- Left content -->\n <div class=\"dt-message-input__bottom-section-left\">\n <dt-button\n v-if=\"showImagePicker\"\n v-dt-tooltip:top-start=\"showImagePicker?.tooltipLabel\"\n data-qa=\"dt-message-input-image-btn\"\n size=\"sm\"\n circle\n :kind=\"imagePickerFocus ? 'default' : 'muted'\"\n importance=\"clear\"\n :aria-label=\"showImagePicker.ariaLabel\"\n @click=\"onSelectImage\"\n @mouseenter=\"imagePickerFocus = true\"\n @mouseleave=\"imagePickerFocus = false\"\n @focus=\"imagePickerFocus = true\"\n @blur=\"imagePickerFocus = false\"\n >\n <template #icon>\n <dt-icon-image\n size=\"300\"\n />\n </template>\n </dt-button>\n <dt-input\n ref=\"messageInputImageUpload\"\n data-qa=\"dt-message-input-image-input\"\n accept=\"image/*, video/*\"\n type=\"file\"\n class=\"dt-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-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=\"emojiTooltipMessage\"\n v-bind=\"attrs\"\n data-qa=\"dt-message-input-emoji-picker-btn\"\n size=\"sm\"\n circle\n :kind=\"emojiPickerHovered ? 'default' : 'muted'\"\n importance=\"clear\"\n :aria-label=\"emojiButtonAriaLabel\"\n @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\n #content=\"{ close }\"\n >\n <dt-emoji-picker\n v-bind=\"emojiPickerProps\"\n @skin-tone=\"onSkinTone\"\n @selected-emoji=\"(emoji) => { close(); onSelectEmoji(emoji); }\"\n />\n </template>\n </dt-popover>\n <!-- @slot Slot for emojiGiphy picker -->\n <slot name=\"emojiGiphyPicker\" />\n </div>\n <!-- Right content -->\n <div class=\"dt-message-input__bottom-section-right\">\n <!-- @slot Slot for sms count -->\n <div class=\"d-d-flex d-ai-center\">\n <slot name=\"smsCount\" />\n </div>\n\n <!-- Optionally displayed remaining character counter -->\n <dt-tooltip\n v-if=\"Boolean(showCharacterLimit)\"\n class=\"dt-message-input__remaining-char-tooltip\"\n placement=\"top-end\"\n :enabled=\"characterLimitTooltipEnabled\"\n :message=\"showCharacterLimit.message\"\n :offset=\"[10, 8]\"\n >\n <template #anchor>\n <p\n v-show=\"displayCharacterLimitWarning\"\n class=\"dt-message-input__remaining-char\"\n data-qa=\"dt-message-input-character-limit\"\n >\n {{ showCharacterLimit.count - inputLength }}\n </p>\n </template>\n </dt-tooltip>\n\n <!-- Cancel button for edit mode -->\n <dt-button\n v-if=\"showCancel\"\n data-qa=\"dt-message-input-cancel-button\"\n class=\"dt-message-input__cancel-button\"\n size=\"sm\"\n kind=\"muted\"\n importance=\"clear\"\n :aria-label=\"showCancel.ariaLabel\"\n @click=\"onCancel\"\n >\n <p>{{ showCancel.text }}</p>\n </dt-button>\n\n <!-- @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=\"showSend?.tooltipLabel\"\n data-qa=\"dt-message-input-send-btn\"\n size=\"sm\"\n kind=\"default\"\n importance=\"primary\"\n :class=\"[\n {\n 'dt-message-input__send-button--disabled': isSendDisabled,\n 'd-btn--circle': showSendIcon,\n },\n ]\"\n :aria-label=\"showSend.ariaLabel\"\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\n :size=\"sendIconSize\"\n />\n </slot>\n </template>\n <template\n v-if=\"showSend.text\"\n >\n <p>{{ showSend.text }}</p>\n </template>\n </dt-button>\n </slot>\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 meetingPill from './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 { DtIconImage, DtIconVerySatisfied, DtIconSatisfied, DtIconSend } from '@dialpad/dialtone-icons/vue3';\n\nexport default {\n name: 'DtRecipeMessageInput',\n\n components: {\n DtButton,\n DtEmojiPicker,\n DtInput,\n DtPopover,\n DtRichTextEditor,\n DtTooltip,\n DtIconImage,\n DtIconVerySatisfied,\n DtIconSatisfied,\n DtIconSend,\n },\n\n mixins: [],\n\n inheritAttrs: false,\n\n props: {\n /**\n * Value of the input. The object format should match TipTap's JSON\n * document structure: https://tiptap.dev/guide/output#option-1-json\n */\n modelValue: {\n type: [Object, String],\n default: '',\n },\n\n /**\n * Whether the input is editable\n */\n editable: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Descriptive label for the input element\n */\n inputAriaLabel: {\n type: String,\n required: true,\n default: '',\n },\n\n /**\n * 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`. See https://tiptap.dev/guide/output for\n * examples.\n * @values text, json, html\n */\n outputFormat: {\n type: String,\n default: 'text',\n validator (outputFormat) {\n return RICH_TEXT_EDITOR_OUTPUT_FORMATS.includes(outputFormat);\n },\n },\n\n /**\n * Enables the Link extension and optionally passes configurations to it\n */\n link: {\n type: [Boolean, Object],\n default: true,\n },\n\n /**\n * Placeholder text\n */\n placeholder: {\n type: String,\n default: '',\n },\n\n /**\n * Disable Send Button\n */\n disableSend: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Content area needs to dynamically adjust height based on the conversation area height.\n * can be vh|px|rem|em|%\n */\n maxHeight: {\n type: String,\n default: 'unset',\n },\n\n // Emoji picker props\n showEmojiPicker: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Props to pass into the emoji picker.\n */\n emojiPickerProps: {\n type: Object,\n default: () => ({}),\n validate (emojiPickerProps) {\n return [\n 'searchNoResultsLabel',\n 'searchResultsLabel',\n 'searchPlaceholderLabel',\n 'skinSelectorButtonTooltipLabel',\n 'tabSetLabels',\n ].every(prop => emojiPickerProps[prop] != null);\n },\n },\n\n /**\n * Emoji button tooltip label\n */\n emojiTooltipMessage: {\n type: String,\n default: 'Emoji',\n },\n\n // Aria label for buttons\n /**\n * Emoji button aria label\n */\n emojiButtonAriaLabel: {\n type: String,\n default: 'emoji button',\n },\n\n /**\n * Enable character Limit warning\n */\n showCharacterLimit: {\n type: [Boolean, Object],\n default: () => ({ count: 1500, warning: 500, message: '' }),\n },\n\n showImagePicker: {\n type: [Boolean, Object],\n default: () => ({ tooltipLabel: 'Attach Image', ariaLabel: 'image button' }),\n },\n\n /**\n * Send button defaults.\n */\n showSend: {\n type: [Boolean, Object],\n default: () => ({}),\n },\n\n /**\n * Cancel button defaults.\n */\n showCancel: {\n type: [Boolean, Object],\n default: () => ({ text: 'Cancel' }),\n },\n\n /**\n * suggestion object containing the items query function.\n * The valid keys passed into this object can be found here: https://tiptap.dev/api/utilities/suggestion\n *\n * The only required key is the items function which is used to query the contacts for suggestion.\n * items({ query }) => { return [ContactObject]; }\n * ContactObject format:\n * { name: string, avatarSrc: string, id: string }\n *\n * When null, it does not add the plugin.\n */\n mentionSuggestion: {\n type: Object,\n default: null,\n },\n\n /**\n * 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 * Whether the input allows for block quote.\n */\n allowBlockquote: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Whether the input allows for bold to be introduced in the text.\n */\n allowBold: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Whether the input allows for bullet list to be introduced in the text.\n */\n allowBulletList: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Whether the input allows for italic to be introduced in the text.\n */\n allowItalic: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Whether the input allows for strike to be introduced in the text.\n */\n allowStrike: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Whether the input allows for underline to be introduced in the text.\n */\n allowUnderline: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Whether the input allows codeblock to be introduced in the text.\n */\n allowCodeblock: {\n type: Boolean,\n default: true,\n },\n },\n\n emits: [\n /**\n * Fires when send button is clicked\n *\n * @event submit\n * @type {String}\n */\n 'submit',\n\n /**\n * Fires when media is selected from image button\n *\n * @event select-media\n * @type {Array}\n */\n 'select-media',\n\n /**\n * Fires when media is dropped into the message input\n *\n * @event add-media\n * @type {Array}\n */\n 'add-media',\n\n /**\n * Fires when media is pasted into the message input\n *\n * @event paste-media\n * @type {Array}\n */\n 'paste-media',\n\n /**\n * Fires when cancel button is pressed (only on edit mode)\n *\n * @event cancel\n * @type {Boolean}\n */\n 'cancel',\n\n /**\n * Fires when skin tone is selected from the emoji picker\n *\n * @event skin-tone\n * @type {String}\n */\n 'skin-tone',\n\n /**\n * Fires when emoji is selected from the emoji picker\n *\n * @event selected-emoji\n * @type {String}\n */\n 'selected-emoji',\n\n /**\n * 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 data () {\n return {\n additionalExtensions: [meetingPill],\n internalInputValue: this.modelValue, // internal input content\n imagePickerFocus: false,\n emojiPickerFocus: false,\n emojiPickerOpened: false,\n };\n },\n\n computed: {\n showSendIcon () {\n return !this.showSend.text;\n },\n\n inputLength () {\n return this.internalInputValue.length;\n },\n\n displayCharacterLimitWarning () {\n return Boolean(this.showCharacterLimit) &&\n ((this.showCharacterLimit.count - this.inputLength) <= this.showCharacterLimit.warning);\n },\n\n characterLimitTooltipEnabled () {\n return this.showCharacterLimit.message && (this.showCharacterLimit.count - this.inputLength < 0);\n },\n\n isSendDisabled () {\n return this.disableSend ||\n (this.showCharacterLimit && this.inputLength > this.showCharacterLimit.count);\n },\n\n computedCloseButtonProps () {\n return {\n ariaLabel: 'Close',\n };\n },\n\n emojiPickerHovered () {\n return this.emojiPickerFocus || this.emojiPickerOpened;\n },\n\n sendIconSize () {\n return '300';\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 }\n },\n\n methods: {\n // Mousedown instead of click because it fires before the blur event.\n onMousedown (e) {\n const isWithinInput = this.$refs.richTextEditor.$el.querySelector('.tiptap').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) {\n if (!emoji) {\n return;\n }\n\n // Insert emoji into the editor\n this.$refs.richTextEditor.editor.commands.insertContent({\n type: 'emoji',\n attrs: {\n code: emoji.shortname,\n },\n });\n this.$emit('selected-emoji', emoji);\n },\n\n onSelectImage () {\n this.$refs.messageInputImageUpload.$refs.input.click();\n },\n\n onImageUpload () {\n this.$emit('select-media', this.$refs.messageInputImageUpload.$refs.input.files);\n },\n\n toggleEmojiPicker () {\n this.emojiPickerOpened = !this.emojiPickerOpened;\n },\n\n onSend () {\n if (this.isSendDisabled) {\n return;\n }\n this.$emit('submit', this.internalInputValue);\n },\n\n onCancel () {\n this.$emit('cancel');\n },\n\n onInput (event) {\n this.$emit('update:modelValue', event);\n },\n },\n};\n</script>\n\n<style lang=\"less\">\n.dt-message-input {\n display: flex;\n flex-direction: column;\n border-radius: var(--dt-size-radius-400);\n border: var(--dt-size-border-100) solid;\n border-color: var(--dt-color-border-default);\n cursor: text;\n\n &:focus-within {\n border-color: var(--dt-color-border-bold);\n box-shadow: var(--dt-shadow-small);\n }\n\n &__editor-wrapper {\n padding: var(--dt-space-400) var(--dt-space-500) var(--dt-space-300);\n }\n\n &__remaining-char-tooltip {\n margin-top: auto;\n margin-bottom: auto;\n }\n\n &__remaining-char {\n color: var(--dt-color-foreground-critical);\n font-size: var(--dt-font-size-100);\n margin-right: var(--dt-space-500);\n }\n\n &__send-button--disabled {\n background-color: unset;\n color: var(--dt-color-foreground-muted);\n cursor: default;\n }\n\n &__cancel-button {\n margin-right: var(--dt-space-300);\n }\n\n &__bottom-section {\n display: flex;\n justify-content: space-between;\n padding: var(--dt-space-300) var(--dt-space-400);\n }\n\n &__bottom-section-left {\n display: flex;\n }\n\n &__bottom-section-right {\n display: flex;\n }\n\n &__image-input {\n position: absolute;\n }\n}\n</style>\n"],"names":["_createElementBlock","_renderSlot","_createVNode","_mergeProps","_createElementVNode","_createBlock","_withCtx","_toDisplayString","_normalizeClass","_a"],"mappings":"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"}
@@ -1,14 +1,14 @@
1
1
  "use strict";
2
2
  const button = require("../../../components/button/button.vue.cjs");
3
+ const vue3 = require("@dialpad/dialtone-icons/vue3");
3
4
  const vue = require("vue");
4
5
  ;/* empty css */
5
6
  const _pluginVue_exportHelper = require("../../../_virtual/_plugin-vue_export-helper.cjs");
6
- const icon = require("../../../components/icon/icon.vue.cjs");
7
7
  const _sfc_main = {
8
8
  name: "DtRecipeSettingsMenuButton",
9
9
  components: {
10
10
  DtButton: button,
11
- DtIcon: icon
11
+ DtIconMoreVertical: vue3.DtIconMoreVertical
12
12
  },
13
13
  inheritAttrs: false,
14
14
  props: {
@@ -31,7 +31,7 @@ const _sfc_main = {
31
31
  }
32
32
  };
33
33
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
34
- const _component_dt_icon = vue.resolveComponent("dt-icon");
34
+ const _component_dt_icon_more_vertical = vue.resolveComponent("dt-icon-more-vertical");
35
35
  const _component_dt_button = vue.resolveComponent("dt-button");
36
36
  return $props.updateAvailable ? (vue.openBlock(), vue.createBlock(_component_dt_button, vue.mergeProps({
37
37
  key: 0,
@@ -42,10 +42,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
42
42
  "aria-label": $props.ariaLabel
43
43
  }, _ctx.$attrs), {
44
44
  icon: vue.withCtx(() => [
45
- vue.createVNode(_component_dt_icon, {
46
- name: "more-vertical",
47
- size: "300"
48
- })
45
+ vue.createVNode(_component_dt_icon_more_vertical, { size: "300" })
49
46
  ]),
50
47
  default: vue.withCtx(() => [
51
48
  vue.renderSlot(_ctx.$slots, "default", {}, void 0, true)
@@ -59,14 +56,11 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
59
56
  "aria-label": $props.ariaLabel
60
57
  }, _ctx.$attrs), {
61
58
  icon: vue.withCtx(() => [
62
- vue.createVNode(_component_dt_icon, {
63
- name: "more-vertical",
64
- size: "300"
65
- })
59
+ vue.createVNode(_component_dt_icon_more_vertical, { size: "300" })
66
60
  ]),
67
61
  _: 1
68
62
  }, 16, ["aria-label"]));
69
63
  }
70
- const settings_menu_button = /* @__PURE__ */ _pluginVue_exportHelper(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-b0dfa8b3"]]);
64
+ const settings_menu_button = /* @__PURE__ */ _pluginVue_exportHelper(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-c72dcd88"]]);
71
65
  module.exports = settings_menu_button;
72
66
  //# sourceMappingURL=settings_menu_button.vue.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"settings_menu_button.vue.cjs","sources":["../../../../recipes/header/settings_menu_button/settings_menu_button.vue"],"sourcesContent":["<template>\n <dt-button\n v-if=\"updateAvailable\"\n importance=\"outlined\"\n size=\"xs\"\n icon-position=\"right\"\n class=\"settings-menu-button-update\"\n :aria-label=\"ariaLabel\"\n v-bind=\"$attrs\"\n >\n <slot />\n <template #icon>\n <dt-icon\n name=\"more-vertical\"\n size=\"300\"\n />\n </template>\n </dt-button>\n <dt-button\n v-else\n importance=\"clear\"\n kind=\"inverted\"\n class=\"settings-menu-button\"\n :aria-label=\"ariaLabel\"\n v-bind=\"$attrs\"\n >\n <template #icon>\n <dt-icon\n name=\"more-vertical\"\n size=\"300\"\n />\n </template>\n </dt-button>\n</template>\n\n<script>\nimport DtButton from '@/components/button/button.vue';\nimport { DtIcon } from '@/components/icon';\n\nexport default {\n name: 'DtRecipeSettingsMenuButton',\n\n components: {\n DtButton,\n DtIcon,\n },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Determines whether the button should display the update state\n * default is false\n * @values true, false\n */\n updateAvailable: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Aria label\n */\n ariaLabel: {\n type: String,\n required: true,\n },\n },\n\n};\n</script>\n\n<style scoped lang=\"less\">\n.settings-menu-button {\n padding: var(--dt-space-0);\n border-radius: var(--dt-size-550);\n height: var(--dt-size-600);\n width: var(--dt-size-550);\n color: var(--dt-theme-topbar-button-color-foreground);\n background-color: var(--dt-theme-topbar-button-color-background);\n\n &:hover {\n background-color: var(--dt-theme-topbar-button-color-background-hover);\n color: var(--dt-theme-topbar-button-color-foreground-hover);\n }\n\n &:active {\n background-color: var(--dt-theme-topbar-button-color-background-active);\n }\n}\n\n.settings-menu-button-update {\n background-color: hsla(var(--dt-color-blue-200-hsl) / 25%);\n color: var(--dt-color-blue-500);\n border-color: hsla(var(--dt-color-blue-200-hsl) / 25%);\n border-radius: var(--dt-size-radius-pill);\n height: var(--dt-size-600);\n\n &:hover {\n background-color: hsla(var(--dt-color-blue-200-hsl) / 50%);\n color: var(--dt-theme-topbar-button-color-foreground-hover);\n }\n}\n</style>\n"],"names":["DtButton","DtIcon","_openBlock","_createBlock","_mergeProps","_createVNode","_renderSlot"],"mappings":";;;;;;AAuCA,MAAK,YAAU;AAAA,EACb,MAAM;AAAA,EAEN,YAAY;AAAA,IACV,UAAAA;AAAAA,IACA,QAAAC;AAAAA,EACD;AAAA,EAED,cAAc;AAAA,EAEd,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAML,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,UAAU;AAAA,IACX;AAAA,EACF;AAEH;;;;SAnEU,OAAe,mBADvBC,IAAAA,aAAAC,IAAAA,YAgBY,sBAhBZC,eAgBY;AAAA;IAdV,YAAW;AAAA,IACX,MAAK;AAAA,IACL,iBAAc;AAAA,IACd,OAAM;AAAA,IACL,cAAY,OAAS;AAAA,KACd,KAAM,MAAA,GAAA;AAAA,IAGH,kBACT,MAGE;AAAA,MAHFC,IAAAA,YAGE,oBAAA;AAAA,QAFA,MAAK;AAAA,QACL,MAAK;AAAA;;yBAJT,MAAQ;AAAA,MAARC,IAAQ,WAAA,KAAA,QAAA,WAAA,CAAA,GAAA,QAAA,IAAA;AAAA;;6BAQVJ,IAAAA,aAAAC,IAAAA,YAcY,sBAdZC,eAcY;AAAA;IAZV,YAAW;AAAA,IACX,MAAK;AAAA,IACL,OAAM;AAAA,IACL,cAAY,OAAS;AAAA,KACd,KAAM,MAAA,GAAA;AAAA,IAEH,kBACT,MAGE;AAAA,MAHFC,IAAAA,YAGE,oBAAA;AAAA,QAFA,MAAK;AAAA,QACL,MAAK;AAAA;;;;;;;"}
1
+ {"version":3,"file":"settings_menu_button.vue.cjs","sources":["../../../../recipes/header/settings_menu_button/settings_menu_button.vue"],"sourcesContent":["<template>\n <dt-button\n v-if=\"updateAvailable\"\n importance=\"outlined\"\n size=\"xs\"\n icon-position=\"right\"\n class=\"settings-menu-button-update\"\n :aria-label=\"ariaLabel\"\n v-bind=\"$attrs\"\n >\n <slot />\n <template #icon>\n <dt-icon-more-vertical\n size=\"300\"\n />\n </template>\n </dt-button>\n <dt-button\n v-else\n importance=\"clear\"\n kind=\"inverted\"\n class=\"settings-menu-button\"\n :aria-label=\"ariaLabel\"\n v-bind=\"$attrs\"\n >\n <template #icon>\n <dt-icon-more-vertical\n size=\"300\"\n />\n </template>\n </dt-button>\n</template>\n\n<script>\nimport DtButton from '@/components/button/button.vue';\nimport { DtIconMoreVertical } from '@dialpad/dialtone-icons/vue3';\n\nexport default {\n name: 'DtRecipeSettingsMenuButton',\n\n components: {\n DtButton,\n DtIconMoreVertical,\n },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Determines whether the button should display the update state\n * default is false\n * @values true, false\n */\n updateAvailable: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Aria label\n */\n ariaLabel: {\n type: String,\n required: true,\n },\n },\n\n};\n</script>\n\n<style scoped lang=\"less\">\n.settings-menu-button {\n padding: var(--dt-space-0);\n border-radius: var(--dt-size-550);\n height: var(--dt-size-600);\n width: var(--dt-size-550);\n color: var(--dt-theme-topbar-button-color-foreground);\n background-color: var(--dt-theme-topbar-button-color-background);\n\n &:hover {\n background-color: var(--dt-theme-topbar-button-color-background-hover);\n color: var(--dt-theme-topbar-button-color-foreground-hover);\n }\n\n &:active {\n background-color: var(--dt-theme-topbar-button-color-background-active);\n }\n}\n\n.settings-menu-button-update {\n background-color: hsla(var(--dt-color-blue-200-hsl) / 25%);\n color: var(--dt-color-blue-500);\n border-color: hsla(var(--dt-color-blue-200-hsl) / 25%);\n border-radius: var(--dt-size-radius-pill);\n height: var(--dt-size-600);\n\n &:hover {\n background-color: hsla(var(--dt-color-blue-200-hsl) / 50%);\n color: var(--dt-theme-topbar-button-color-foreground-hover);\n }\n}\n</style>\n"],"names":["DtButton","DtIconMoreVertical","_openBlock","_createBlock","_mergeProps","_createVNode","_renderSlot"],"mappings":";;;;;;AAqCA,MAAK,YAAU;AAAA,EACb,MAAM;AAAA,EAEN,YAAY;AAAA,IACV,UAAAA;AAAAA,IACA,oBAAAC,KAAkB;AAAA,EACnB;AAAA,EAED,cAAc;AAAA,EAEd,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAML,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,UAAU;AAAA,IACX;AAAA,EACF;AAEH;;;;SAjEU,OAAe,mBADvBC,IAAAA,aAAAC,IAAAA,YAeY,sBAfZC,eAeY;AAAA;IAbV,YAAW;AAAA,IACX,MAAK;AAAA,IACL,iBAAc;AAAA,IACd,OAAM;AAAA,IACL,cAAY,OAAS;AAAA,KACd,KAAM,MAAA,GAAA;AAAA,IAGH,kBACT,MAEE;AAAA,MAFFC,IAAAA,YAEE,kCAAA,EADA,MAAK,MAAK,CAAA;AAAA;yBAHd,MAAQ;AAAA,MAARC,IAAQ,WAAA,KAAA,QAAA,WAAA,CAAA,GAAA,QAAA,IAAA;AAAA;;6BAOVJ,IAAAA,aAAAC,IAAAA,YAaY,sBAbZC,eAaY;AAAA;IAXV,YAAW;AAAA,IACX,MAAK;AAAA,IACL,OAAM;AAAA,IACL,cAAY,OAAS;AAAA,KACd,KAAM,MAAA,GAAA;AAAA,IAEH,kBACT,MAEE;AAAA,MAFFC,IAAAA,YAEE,kCAAA,EADA,MAAK,MAAK,CAAA;AAAA;;;;;;"}
@@ -1,13 +1,13 @@
1
1
  import DtButton from "../../../components/button/button.vue.js";
2
+ import { DtIconMoreVertical } from "@dialpad/dialtone-icons/vue3";
2
3
  import { resolveComponent, openBlock, createBlock, mergeProps, withCtx, createVNode, renderSlot } from "vue";
3
4
  /* empty css */
4
5
  import _export_sfc from "../../../_virtual/_plugin-vue_export-helper.js";
5
- import DtIcon from "../../../components/icon/icon.vue.js";
6
6
  const _sfc_main = {
7
7
  name: "DtRecipeSettingsMenuButton",
8
8
  components: {
9
9
  DtButton,
10
- DtIcon
10
+ DtIconMoreVertical
11
11
  },
12
12
  inheritAttrs: false,
13
13
  props: {
@@ -30,7 +30,7 @@ const _sfc_main = {
30
30
  }
31
31
  };
32
32
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
33
- const _component_dt_icon = resolveComponent("dt-icon");
33
+ const _component_dt_icon_more_vertical = resolveComponent("dt-icon-more-vertical");
34
34
  const _component_dt_button = resolveComponent("dt-button");
35
35
  return $props.updateAvailable ? (openBlock(), createBlock(_component_dt_button, mergeProps({
36
36
  key: 0,
@@ -41,10 +41,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
41
41
  "aria-label": $props.ariaLabel
42
42
  }, _ctx.$attrs), {
43
43
  icon: withCtx(() => [
44
- createVNode(_component_dt_icon, {
45
- name: "more-vertical",
46
- size: "300"
47
- })
44
+ createVNode(_component_dt_icon_more_vertical, { size: "300" })
48
45
  ]),
49
46
  default: withCtx(() => [
50
47
  renderSlot(_ctx.$slots, "default", {}, void 0, true)
@@ -58,15 +55,12 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
58
55
  "aria-label": $props.ariaLabel
59
56
  }, _ctx.$attrs), {
60
57
  icon: withCtx(() => [
61
- createVNode(_component_dt_icon, {
62
- name: "more-vertical",
63
- size: "300"
64
- })
58
+ createVNode(_component_dt_icon_more_vertical, { size: "300" })
65
59
  ]),
66
60
  _: 1
67
61
  }, 16, ["aria-label"]));
68
62
  }
69
- const settings_menu_button = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-b0dfa8b3"]]);
63
+ const settings_menu_button = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-c72dcd88"]]);
70
64
  export {
71
65
  settings_menu_button as default
72
66
  };
@@ -1 +1 @@
1
- {"version":3,"file":"settings_menu_button.vue.js","sources":["../../../../recipes/header/settings_menu_button/settings_menu_button.vue"],"sourcesContent":["<template>\n <dt-button\n v-if=\"updateAvailable\"\n importance=\"outlined\"\n size=\"xs\"\n icon-position=\"right\"\n class=\"settings-menu-button-update\"\n :aria-label=\"ariaLabel\"\n v-bind=\"$attrs\"\n >\n <slot />\n <template #icon>\n <dt-icon\n name=\"more-vertical\"\n size=\"300\"\n />\n </template>\n </dt-button>\n <dt-button\n v-else\n importance=\"clear\"\n kind=\"inverted\"\n class=\"settings-menu-button\"\n :aria-label=\"ariaLabel\"\n v-bind=\"$attrs\"\n >\n <template #icon>\n <dt-icon\n name=\"more-vertical\"\n size=\"300\"\n />\n </template>\n </dt-button>\n</template>\n\n<script>\nimport DtButton from '@/components/button/button.vue';\nimport { DtIcon } from '@/components/icon';\n\nexport default {\n name: 'DtRecipeSettingsMenuButton',\n\n components: {\n DtButton,\n DtIcon,\n },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Determines whether the button should display the update state\n * default is false\n * @values true, false\n */\n updateAvailable: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Aria label\n */\n ariaLabel: {\n type: String,\n required: true,\n },\n },\n\n};\n</script>\n\n<style scoped lang=\"less\">\n.settings-menu-button {\n padding: var(--dt-space-0);\n border-radius: var(--dt-size-550);\n height: var(--dt-size-600);\n width: var(--dt-size-550);\n color: var(--dt-theme-topbar-button-color-foreground);\n background-color: var(--dt-theme-topbar-button-color-background);\n\n &:hover {\n background-color: var(--dt-theme-topbar-button-color-background-hover);\n color: var(--dt-theme-topbar-button-color-foreground-hover);\n }\n\n &:active {\n background-color: var(--dt-theme-topbar-button-color-background-active);\n }\n}\n\n.settings-menu-button-update {\n background-color: hsla(var(--dt-color-blue-200-hsl) / 25%);\n color: var(--dt-color-blue-500);\n border-color: hsla(var(--dt-color-blue-200-hsl) / 25%);\n border-radius: var(--dt-size-radius-pill);\n height: var(--dt-size-600);\n\n &:hover {\n background-color: hsla(var(--dt-color-blue-200-hsl) / 50%);\n color: var(--dt-theme-topbar-button-color-foreground-hover);\n }\n}\n</style>\n"],"names":["_openBlock","_createBlock","_mergeProps","_createVNode","_renderSlot"],"mappings":";;;;;AAuCA,MAAK,YAAU;AAAA,EACb,MAAM;AAAA,EAEN,YAAY;AAAA,IACV;AAAA,IACA;AAAA,EACD;AAAA,EAED,cAAc;AAAA,EAEd,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAML,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,UAAU;AAAA,IACX;AAAA,EACF;AAEH;;;;SAnEU,OAAe,mBADvBA,aAAAC,YAgBY,sBAhBZC,WAgBY;AAAA;IAdV,YAAW;AAAA,IACX,MAAK;AAAA,IACL,iBAAc;AAAA,IACd,OAAM;AAAA,IACL,cAAY,OAAS;AAAA,KACd,KAAM,MAAA,GAAA;AAAA,IAGH,cACT,MAGE;AAAA,MAHFC,YAGE,oBAAA;AAAA,QAFA,MAAK;AAAA,QACL,MAAK;AAAA;;qBAJT,MAAQ;AAAA,MAARC,WAAQ,KAAA,QAAA,WAAA,CAAA,GAAA,QAAA,IAAA;AAAA;;6BAQVJ,aAAAC,YAcY,sBAdZC,WAcY;AAAA;IAZV,YAAW;AAAA,IACX,MAAK;AAAA,IACL,OAAM;AAAA,IACL,cAAY,OAAS;AAAA,KACd,KAAM,MAAA,GAAA;AAAA,IAEH,cACT,MAGE;AAAA,MAHFC,YAGE,oBAAA;AAAA,QAFA,MAAK;AAAA,QACL,MAAK;AAAA;;;;;;"}
1
+ {"version":3,"file":"settings_menu_button.vue.js","sources":["../../../../recipes/header/settings_menu_button/settings_menu_button.vue"],"sourcesContent":["<template>\n <dt-button\n v-if=\"updateAvailable\"\n importance=\"outlined\"\n size=\"xs\"\n icon-position=\"right\"\n class=\"settings-menu-button-update\"\n :aria-label=\"ariaLabel\"\n v-bind=\"$attrs\"\n >\n <slot />\n <template #icon>\n <dt-icon-more-vertical\n size=\"300\"\n />\n </template>\n </dt-button>\n <dt-button\n v-else\n importance=\"clear\"\n kind=\"inverted\"\n class=\"settings-menu-button\"\n :aria-label=\"ariaLabel\"\n v-bind=\"$attrs\"\n >\n <template #icon>\n <dt-icon-more-vertical\n size=\"300\"\n />\n </template>\n </dt-button>\n</template>\n\n<script>\nimport DtButton from '@/components/button/button.vue';\nimport { DtIconMoreVertical } from '@dialpad/dialtone-icons/vue3';\n\nexport default {\n name: 'DtRecipeSettingsMenuButton',\n\n components: {\n DtButton,\n DtIconMoreVertical,\n },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Determines whether the button should display the update state\n * default is false\n * @values true, false\n */\n updateAvailable: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Aria label\n */\n ariaLabel: {\n type: String,\n required: true,\n },\n },\n\n};\n</script>\n\n<style scoped lang=\"less\">\n.settings-menu-button {\n padding: var(--dt-space-0);\n border-radius: var(--dt-size-550);\n height: var(--dt-size-600);\n width: var(--dt-size-550);\n color: var(--dt-theme-topbar-button-color-foreground);\n background-color: var(--dt-theme-topbar-button-color-background);\n\n &:hover {\n background-color: var(--dt-theme-topbar-button-color-background-hover);\n color: var(--dt-theme-topbar-button-color-foreground-hover);\n }\n\n &:active {\n background-color: var(--dt-theme-topbar-button-color-background-active);\n }\n}\n\n.settings-menu-button-update {\n background-color: hsla(var(--dt-color-blue-200-hsl) / 25%);\n color: var(--dt-color-blue-500);\n border-color: hsla(var(--dt-color-blue-200-hsl) / 25%);\n border-radius: var(--dt-size-radius-pill);\n height: var(--dt-size-600);\n\n &:hover {\n background-color: hsla(var(--dt-color-blue-200-hsl) / 50%);\n color: var(--dt-theme-topbar-button-color-foreground-hover);\n }\n}\n</style>\n"],"names":["_openBlock","_createBlock","_mergeProps","_createVNode","_renderSlot"],"mappings":";;;;;AAqCA,MAAK,YAAU;AAAA,EACb,MAAM;AAAA,EAEN,YAAY;AAAA,IACV;AAAA,IACA;AAAA,EACD;AAAA,EAED,cAAc;AAAA,EAEd,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAML,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,UAAU;AAAA,IACX;AAAA,EACF;AAEH;;;;SAjEU,OAAe,mBADvBA,aAAAC,YAeY,sBAfZC,WAeY;AAAA;IAbV,YAAW;AAAA,IACX,MAAK;AAAA,IACL,iBAAc;AAAA,IACd,OAAM;AAAA,IACL,cAAY,OAAS;AAAA,KACd,KAAM,MAAA,GAAA;AAAA,IAGH,cACT,MAEE;AAAA,MAFFC,YAEE,kCAAA,EADA,MAAK,MAAK,CAAA;AAAA;qBAHd,MAAQ;AAAA,MAARC,WAAQ,KAAA,QAAA,WAAA,CAAA,GAAA,QAAA,IAAA;AAAA;;6BAOVJ,aAAAC,YAaY,sBAbZC,WAaY;AAAA;IAXV,YAAW;AAAA,IACX,MAAK;AAAA,IACL,OAAM;AAAA,IACL,cAAY,OAAS;AAAA,KACd,KAAM,MAAA,GAAA;AAAA,IAEH,cACT,MAEE;AAAA,MAFFC,YAEE,kCAAA,EADA,MAAK,MAAK,CAAA;AAAA;;;;;"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  const item_layout = require("../../../components/item_layout/item_layout.vue.cjs");
3
3
  const avatar = require("../../../components/avatar/avatar.vue.cjs");
4
+ const common_utils = require("../../../common/utils.cjs");
4
5
  const vue = require("vue");
5
6
  ;/* empty css */
6
7
  const _pluginVue_exportHelper = require("../../../_virtual/_plugin-vue_export-helper.cjs");
@@ -52,13 +53,6 @@ const _sfc_main = {
52
53
  type: String,
53
54
  default: ""
54
55
  },
55
- /**
56
- * Avatar icon to display if `avatarSrc` is empty.
57
- */
58
- avatarIcon: {
59
- type: String,
60
- default: null
61
- },
62
56
  /**
63
57
  * The size of the avatar
64
58
  * @values xs, sm, md, lg, xl
@@ -108,6 +102,11 @@ const _sfc_main = {
108
102
  }
109
103
  },
110
104
  emits: ["avatar-click"],
105
+ computed: {
106
+ hasAvatarIcon() {
107
+ return common_utils.hasSlotContent(this.$slots.avatarIcon);
108
+ }
109
+ },
111
110
  methods: {
112
111
  avatarClick() {
113
112
  this.$emit("avatar-click");
@@ -161,11 +160,25 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
161
160
  "full-name": avatar2.fullName,
162
161
  "image-src": avatar2.src,
163
162
  "image-alt": "",
164
- "icon-name": $props.avatarIcon,
165
- "overlay-icon": avatar2.icon,
166
163
  "overlay-text": avatar2.text,
167
164
  "avatar-class": [{ "d-mln24": index > 0, "d-bc-brand": !!avatar2.halo }]
168
- }, null, 8, ["size", "seed", "full-name", "image-src", "icon-name", "overlay-icon", "overlay-text", "avatar-class"]);
165
+ }, vue.createSlots({
166
+ icon: vue.withCtx(({ iconSize }) => [
167
+ $options.hasAvatarIcon ? vue.renderSlot(_ctx.$slots, "avatarIcon", {
168
+ key: 0,
169
+ iconSize
170
+ }, void 0, true) : vue.createCommentVNode("", true)
171
+ ]),
172
+ _: 2
173
+ }, [
174
+ avatar2.icon ? {
175
+ name: "overlayIcon",
176
+ fn: vue.withCtx(() => [
177
+ (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(avatar2.icon)))
178
+ ]),
179
+ key: "0"
180
+ } : void 0
181
+ ]), 1032, ["size", "seed", "full-name", "image-src", "overlay-text", "avatar-class"]);
169
182
  }), 128))
170
183
  ])) : (vue.openBlock(), vue.createBlock(_component_dt_avatar, {
171
184
  key: 1,
@@ -173,11 +186,18 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
173
186
  "full-name": $props.avatarFullName,
174
187
  "image-src": $props.avatarSrc,
175
188
  "image-alt": "",
176
- "icon-name": $props.avatarIcon,
177
189
  seed: $props.avatarSeed,
178
190
  color: $props.avatarColor,
179
191
  presence: $props.presence
180
- }, null, 8, ["size", "full-name", "image-src", "icon-name", "seed", "color", "presence"]))
192
+ }, {
193
+ icon: vue.withCtx(({ iconSize }) => [
194
+ $options.hasAvatarIcon ? vue.renderSlot(_ctx.$slots, "avatarIcon", {
195
+ key: 0,
196
+ iconSize
197
+ }, void 0, true) : vue.createCommentVNode("", true)
198
+ ]),
199
+ _: 3
200
+ }, 8, ["size", "full-name", "image-src", "seed", "color", "presence"]))
181
201
  ], 8, _hoisted_1)
182
202
  ]),
183
203
  key: "0"
@@ -202,6 +222,6 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
202
222
  } : void 0
203
223
  ]), 1032, ["role"]);
204
224
  }
205
- const contact_info = /* @__PURE__ */ _pluginVue_exportHelper(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-7b60b2d6"]]);
225
+ const contact_info = /* @__PURE__ */ _pluginVue_exportHelper(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-5e5eddf2"]]);
206
226
  module.exports = contact_info;
207
227
  //# sourceMappingURL=contact_info.vue.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"contact_info.vue.cjs","sources":["../../../../recipes/item_layout/contact_info/contact_info.vue"],"sourcesContent":["<template>\n <dt-item-layout\n :role=\"role\"\n data-qa=\"contact-info\"\n class=\"dt-contact-info\"\n >\n <template\n v-if=\"showAvatar\"\n #left\n >\n <button\n class=\"dt-contact-info__left\"\n data-qa=\"contact-info-left\"\n :aria-labelledby=\"avatarLabelledBy\"\n @click=\"avatarClick\"\n >\n <span\n v-if=\"avatarList\"\n class=\"dt-contact-info--avatars\"\n >\n <dt-avatar\n v-for=\"(avatar, index) in avatarList\"\n :key=\"index\"\n :size=\"avatarSize\"\n :seed=\"avatar.seed\"\n :full-name=\"avatar.fullName\"\n :image-src=\"avatar.src\"\n image-alt=\"\"\n :icon-name=\"avatarIcon\"\n :overlay-icon=\"avatar.icon\"\n :overlay-text=\"avatar.text\"\n :avatar-class=\"[{ 'd-mln24': index > 0, 'd-bc-brand': !!avatar.halo }]\"\n />\n </span>\n <dt-avatar\n v-else\n :size=\"avatarSize\"\n :full-name=\"avatarFullName\"\n :image-src=\"avatarSrc\"\n image-alt=\"\"\n :icon-name=\"avatarIcon\"\n :seed=\"avatarSeed\"\n :color=\"avatarColor\"\n :presence=\"presence\"\n />\n </button>\n </template>\n <template #default>\n <div data-qa=\"contact-info-header\">\n <!-- @slot Slot for header information -->\n <slot name=\"header\" />\n </div>\n </template>\n\n <template #subtitle>\n <div data-qa=\"contact-info-subtitle\">\n <!-- @slot Slot for subtitle information -->\n <slot name=\"subtitle\" />\n </div>\n </template>\n\n <template\n v-if=\"$slots.bottom\"\n #bottom\n >\n <div data-qa=\"contact-info-bottom\">\n <!-- @slot Slot for information at the bottom -->\n <slot name=\"bottom\" />\n </div>\n </template>\n\n <template\n v-if=\"$slots.right\"\n #right\n >\n <div data-qa=\"contact-info-right\">\n <!-- @slot Slot for the right content -->\n <slot name=\"right\" />\n </div>\n </template>\n </dt-item-layout>\n</template>\n\n<script>\nimport DtItemLayout from '@/components/item_layout/item_layout.vue';\nimport DtAvatar from '@/components/avatar/avatar.vue';\n\nexport default {\n name: 'DtRecipeContactInfo',\n\n components: {\n DtAvatar,\n DtItemLayout,\n },\n\n /* inheritAttrs: false is generally an option we want to set on library\n components. This allows any attributes passed in that are not recognized\n as props to be passed down to another element or component using v-bind:$attrs\n more info: https://vuejs.org/v2/api/#inheritAttrs */\n // inheritAttrs: false,\n\n props: {\n /**\n * String to use for the item's role.\n */\n role: {\n type: String,\n default: '',\n },\n\n /**\n * Display avatar if `showAvatar` property is true.\n */\n showAvatar: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Optional avatar image url.\n */\n avatarSrc: {\n type: String,\n default: '',\n },\n\n /**\n * Avatar seed, set this to the user's ID to get the same avatar background gradient each time it is displayed.\n */\n avatarSeed: {\n type: String,\n default: null,\n },\n\n /**\n * Avatar's full name, used to extract initials\n * to display in avatar if `avatarSrc` and `avatarIcon` are empty.\n */\n avatarFullName: {\n type: String,\n default: '',\n },\n\n /**\n * Avatar icon to display if `avatarSrc` is empty.\n */\n avatarIcon: {\n type: String,\n default: null,\n },\n\n /**\n * The size of the avatar\n * @values xs, sm, md, lg, xl\n */\n avatarSize: {\n type: String,\n default: 'lg',\n },\n\n /**\n * The aria-labelledby of the button containing avatars\n */\n avatarLabelledBy: {\n type: String,\n default: '',\n },\n\n /**\n * Avatar color to display if `avatarSrc` is empty.\n */\n avatarColor: {\n type: String,\n default: null,\n },\n\n /**\n * Determines whether to show the presence indicator for\n * Avatar - accepts PRESENCE_STATES values: 'busy', 'away', 'offline',\n * or 'active'. By default, it's null and nothing is shown.\n * @values null, busy, away, offline, active\n */\n presence: {\n type: String,\n default: null,\n },\n\n /**\n * Showing multiple avatars in contact info.\n * The props of array items are: <br>\n * `src` - avatar image url (optional) <br>\n * `fullName` - full name, used to extract initials to display in avatar<br>\n * if `avatarSrc` and `avatarIcon` are empty<br>\n * `seed` - determines uniqueness of avatar background <br>\n * `text` - text that overlays the avatar (optional) <br>\n * `icon` - icon that overlays the avatar (optional) <br>\n * `halo` - halo highlight around the avatar. boolean true/false\n */\n avatarList: {\n type: Array,\n default: null,\n },\n },\n\n emits: ['avatar-click'],\n\n methods: {\n avatarClick () {\n this.$emit('avatar-click');\n },\n },\n};\n</script>\n\n<style lang=\"less\" scoped>\n.dt-contact-info {\n --contact-info-avatar-border-color: var(--dt-color-surface-primary);\n\n display: flex;\n\n &:deep(.dt-item-layout) {\n flex: 1 1 0;\n }\n\n &:deep(.dt-item-layout--content) {\n /*\n DP-74536: Add `min-width` to make the width of \"contact info\" adjustable.\n */\n min-width: var(--dt-space-825);\n }\n\n &:deep(.dt-item-layout--left) {\n /*\n DP-74536: To make 'Avatar' in fixed position when resizing the window.\n */\n min-width: var(--dt-space-650);\n justify-content: flex-start;\n align-items: center;\n }\n\n &:deep(.dt-item-layout--right) {\n /*\n DP-74536: Remove `min-width` which cause extra unused empty space on the right of \"contact info\".\n */\n min-width: 0;\n align-items: center;\n }\n\n &__left {\n position: relative;\n background-color: transparent;\n background-image: none;\n border-width: 0;\n cursor: pointer;\n }\n\n &--avatars {\n margin-right: var(--dt-space-300-negative);\n display: flex;\n flex-direction: row;\n\n .d-avatar {\n border-radius: var(--dt-size-radius-pill);\n border: var(--dt-size-300) solid var(--contact-info-avatar-border-color);\n box-sizing: unset;\n }\n }\n}\n</style>\n"],"names":["DtAvatar","DtItemLayout","_createBlock","_createElementVNode","_renderSlot","_openBlock","_createElementBlock","_Fragment","_renderList","avatar"],"mappings":"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"}
1
+ {"version":3,"file":"contact_info.vue.cjs","sources":["../../../../recipes/item_layout/contact_info/contact_info.vue"],"sourcesContent":["<template>\n <dt-item-layout\n :role=\"role\"\n data-qa=\"contact-info\"\n class=\"dt-contact-info\"\n >\n <template\n v-if=\"showAvatar\"\n #left\n >\n <button\n class=\"dt-contact-info__left\"\n data-qa=\"contact-info-left\"\n :aria-labelledby=\"avatarLabelledBy\"\n @click=\"avatarClick\"\n >\n <span\n v-if=\"avatarList\"\n class=\"dt-contact-info--avatars\"\n >\n <dt-avatar\n v-for=\"(avatar, index) in avatarList\"\n :key=\"index\"\n :size=\"avatarSize\"\n :seed=\"avatar.seed\"\n :full-name=\"avatar.fullName\"\n :image-src=\"avatar.src\"\n image-alt=\"\"\n :overlay-text=\"avatar.text\"\n :avatar-class=\"[{ 'd-mln24': index > 0, 'd-bc-brand': !!avatar.halo }]\"\n >\n <template\n #icon=\"{ iconSize }\"\n >\n <!-- @slot Slot for avatar icon in a list -->\n <slot\n v-if=\"hasAvatarIcon\"\n name=\"avatarIcon\"\n :icon-size=\"iconSize\"\n />\n </template>\n <template\n v-if=\"avatar.icon\"\n #overlayIcon\n >\n <component :is=\"avatar.icon\" />\n </template>\n </dt-avatar>\n </span>\n <dt-avatar\n v-else\n :size=\"avatarSize\"\n :full-name=\"avatarFullName\"\n :image-src=\"avatarSrc\"\n image-alt=\"\"\n :seed=\"avatarSeed\"\n :color=\"avatarColor\"\n :presence=\"presence\"\n >\n <template\n #icon=\"{ iconSize }\"\n >\n <!-- @slot Slot for avatar icon in a list -->\n <slot\n v-if=\"hasAvatarIcon\"\n name=\"avatarIcon\"\n :icon-size=\"iconSize\"\n />\n </template>\n </dt-avatar>\n </button>\n </template>\n <template #default>\n <div data-qa=\"contact-info-header\">\n <!-- @slot Slot for header information -->\n <slot name=\"header\" />\n </div>\n </template>\n\n <template #subtitle>\n <div data-qa=\"contact-info-subtitle\">\n <!-- @slot Slot for subtitle information -->\n <slot name=\"subtitle\" />\n </div>\n </template>\n\n <template\n v-if=\"$slots.bottom\"\n #bottom\n >\n <div data-qa=\"contact-info-bottom\">\n <!-- @slot Slot for information at the bottom -->\n <slot name=\"bottom\" />\n </div>\n </template>\n\n <template\n v-if=\"$slots.right\"\n #right\n >\n <div data-qa=\"contact-info-right\">\n <!-- @slot Slot for the right content -->\n <slot name=\"right\" />\n </div>\n </template>\n </dt-item-layout>\n</template>\n\n<script>\nimport DtItemLayout from '@/components/item_layout/item_layout.vue';\nimport DtAvatar from '@/components/avatar/avatar.vue';\nimport { hasSlotContent } from '@/common/utils/index.js';\n\nexport default {\n name: 'DtRecipeContactInfo',\n\n components: {\n DtAvatar,\n DtItemLayout,\n },\n\n /* inheritAttrs: false is generally an option we want to set on library\n components. This allows any attributes passed in that are not recognized\n as props to be passed down to another element or component using v-bind:$attrs\n more info: https://vuejs.org/v2/api/#inheritAttrs */\n // inheritAttrs: false,\n\n props: {\n /**\n * String to use for the item's role.\n */\n role: {\n type: String,\n default: '',\n },\n\n /**\n * Display avatar if `showAvatar` property is true.\n */\n showAvatar: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Optional avatar image url.\n */\n avatarSrc: {\n type: String,\n default: '',\n },\n\n /**\n * Avatar seed, set this to the user's ID to get the same avatar background gradient each time it is displayed.\n */\n avatarSeed: {\n type: String,\n default: null,\n },\n\n /**\n * Avatar's full name, used to extract initials\n * to display in avatar if `avatarSrc` and `avatarIcon` are empty.\n */\n avatarFullName: {\n type: String,\n default: '',\n },\n\n /**\n * The size of the avatar\n * @values xs, sm, md, lg, xl\n */\n avatarSize: {\n type: String,\n default: 'lg',\n },\n\n /**\n * The aria-labelledby of the button containing avatars\n */\n avatarLabelledBy: {\n type: String,\n default: '',\n },\n\n /**\n * Avatar color to display if `avatarSrc` is empty.\n */\n avatarColor: {\n type: String,\n default: null,\n },\n\n /**\n * Determines whether to show the presence indicator for\n * Avatar - accepts PRESENCE_STATES values: 'busy', 'away', 'offline',\n * or 'active'. By default, it's null and nothing is shown.\n * @values null, busy, away, offline, active\n */\n presence: {\n type: String,\n default: null,\n },\n\n /**\n * Showing multiple avatars in contact info.\n * The props of array items are: <br>\n * `src` - avatar image url (optional) <br>\n * `fullName` - full name, used to extract initials to display in avatar<br>\n * if `avatarSrc` and `avatarIcon` are empty<br>\n * `seed` - determines uniqueness of avatar background <br>\n * `text` - text that overlays the avatar (optional) <br>\n * `icon` - icon that overlays the avatar (optional) <br>\n * `halo` - halo highlight around the avatar. boolean true/false\n */\n avatarList: {\n type: Array,\n default: null,\n },\n },\n\n emits: ['avatar-click'],\n\n computed: {\n hasAvatarIcon () {\n return hasSlotContent(this.$slots.avatarIcon);\n },\n },\n\n methods: {\n avatarClick () {\n this.$emit('avatar-click');\n },\n },\n};\n</script>\n\n<style lang=\"less\" scoped>\n.dt-contact-info {\n --contact-info-avatar-border-color: var(--dt-color-surface-primary);\n\n display: flex;\n\n &:deep(.dt-item-layout) {\n flex: 1 1 0;\n }\n\n &:deep(.dt-item-layout--content) {\n /*\n DP-74536: Add `min-width` to make the width of \"contact info\" adjustable.\n */\n min-width: var(--dt-space-825);\n }\n\n &:deep(.dt-item-layout--left) {\n /*\n DP-74536: To make 'Avatar' in fixed position when resizing the window.\n */\n min-width: var(--dt-space-650);\n justify-content: flex-start;\n align-items: center;\n }\n\n &:deep(.dt-item-layout--right) {\n /*\n DP-74536: Remove `min-width` which cause extra unused empty space on the right of \"contact info\".\n */\n min-width: 0;\n align-items: center;\n }\n\n &__left {\n position: relative;\n background-color: transparent;\n background-image: none;\n border-width: 0;\n cursor: pointer;\n }\n\n &--avatars {\n margin-right: var(--dt-space-300-negative);\n display: flex;\n flex-direction: row;\n\n .d-avatar {\n border-radius: var(--dt-size-radius-pill);\n border: var(--dt-size-300) solid var(--contact-info-avatar-border-color);\n box-sizing: unset;\n }\n }\n}\n</style>\n"],"names":["DtAvatar","DtItemLayout","hasSlotContent","_createBlock","_createElementVNode","_renderSlot","_openBlock","_createElementBlock","_Fragment","_renderList","avatar","_withCtx","_resolveDynamicComponent"],"mappings":"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"}