@dialpad/dialtone 9.73.0-beta.2 → 9.73.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (444) hide show
  1. package/dist/tokens/doc.json +11721 -11721
  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/common/storybook_utils.cjs +8 -0
  7. package/dist/vue2/common/storybook_utils.cjs.map +1 -0
  8. package/dist/vue2/common/storybook_utils.js +8 -0
  9. package/dist/vue2/common/storybook_utils.js.map +1 -0
  10. package/dist/vue2/component-documentation.json +1 -1
  11. package/dist/vue2/components/avatar/avatar.vue.cjs +24 -13
  12. package/dist/vue2/components/avatar/avatar.vue.cjs.map +1 -1
  13. package/dist/vue2/components/avatar/avatar.vue.js +24 -13
  14. package/dist/vue2/components/avatar/avatar.vue.js.map +1 -1
  15. package/dist/vue2/components/badge/badge.vue.cjs +34 -13
  16. package/dist/vue2/components/badge/badge.vue.cjs.map +1 -1
  17. package/dist/vue2/components/badge/badge.vue.js +34 -13
  18. package/dist/vue2/components/badge/badge.vue.js.map +1 -1
  19. package/dist/vue2/components/chip/chip.vue.cjs +4 -4
  20. package/dist/vue2/components/chip/chip.vue.cjs.map +1 -1
  21. package/dist/vue2/components/chip/chip.vue.js +4 -4
  22. package/dist/vue2/components/chip/chip.vue.js.map +1 -1
  23. package/dist/vue2/components/collapsible/collapsible.vue.cjs +3 -4
  24. package/dist/vue2/components/collapsible/collapsible.vue.cjs.map +1 -1
  25. package/dist/vue2/components/collapsible/collapsible.vue.js +3 -4
  26. package/dist/vue2/components/collapsible/collapsible.vue.js.map +1 -1
  27. package/dist/vue2/components/datepicker/modules/month-year-picker.vue.cjs +6 -14
  28. package/dist/vue2/components/datepicker/modules/month-year-picker.vue.cjs.map +1 -1
  29. package/dist/vue2/components/datepicker/modules/month-year-picker.vue.js +6 -14
  30. package/dist/vue2/components/datepicker/modules/month-year-picker.vue.js.map +1 -1
  31. package/dist/vue2/components/emoji_picker/modules/emoji_search.vue.cjs +5 -6
  32. package/dist/vue2/components/emoji_picker/modules/emoji_search.vue.cjs.map +1 -1
  33. package/dist/vue2/components/emoji_picker/modules/emoji_search.vue.js +5 -6
  34. package/dist/vue2/components/emoji_picker/modules/emoji_search.vue.js.map +1 -1
  35. package/dist/vue2/components/emoji_picker/modules/emoji_tabset.vue.cjs +14 -23
  36. package/dist/vue2/components/emoji_picker/modules/emoji_tabset.vue.cjs.map +1 -1
  37. package/dist/vue2/components/emoji_picker/modules/emoji_tabset.vue.js +14 -23
  38. package/dist/vue2/components/emoji_picker/modules/emoji_tabset.vue.js.map +1 -1
  39. package/dist/vue2/components/empty_state/empty_state.vue.cjs +80 -20
  40. package/dist/vue2/components/empty_state/empty_state.vue.cjs.map +1 -1
  41. package/dist/vue2/components/empty_state/empty_state.vue.js +81 -21
  42. package/dist/vue2/components/empty_state/empty_state.vue.js.map +1 -1
  43. package/dist/vue2/components/empty_state/empty_state_constants.cjs +0 -18
  44. package/dist/vue2/components/empty_state/empty_state_constants.cjs.map +1 -1
  45. package/dist/vue2/components/empty_state/empty_state_constants.js +0 -18
  46. package/dist/vue2/components/empty_state/empty_state_constants.js.map +1 -1
  47. package/dist/vue2/components/icon/icon.vue.cjs +2 -2
  48. package/dist/vue2/components/icon/icon.vue.js +2 -2
  49. package/dist/vue2/components/illustration/illustration.vue.cjs +2 -2
  50. package/dist/vue2/components/illustration/illustration.vue.js +2 -2
  51. package/dist/vue2/components/image_viewer/image_viewer.vue.cjs +4 -4
  52. package/dist/vue2/components/image_viewer/image_viewer.vue.cjs.map +1 -1
  53. package/dist/vue2/components/image_viewer/image_viewer.vue.js +4 -4
  54. package/dist/vue2/components/image_viewer/image_viewer.vue.js.map +1 -1
  55. package/dist/vue2/components/keyboard_shortcut/keyboard_shortcut.vue.cjs +9 -24
  56. package/dist/vue2/components/keyboard_shortcut/keyboard_shortcut.vue.cjs.map +1 -1
  57. package/dist/vue2/components/keyboard_shortcut/keyboard_shortcut.vue.js +7 -22
  58. package/dist/vue2/components/keyboard_shortcut/keyboard_shortcut.vue.js.map +1 -1
  59. package/dist/vue2/components/keyboard_shortcut/keyboard_shortcut_constants.cjs +14 -8
  60. package/dist/vue2/components/keyboard_shortcut/keyboard_shortcut_constants.cjs.map +1 -1
  61. package/dist/vue2/components/keyboard_shortcut/keyboard_shortcut_constants.js +15 -9
  62. package/dist/vue2/components/keyboard_shortcut/keyboard_shortcut_constants.js.map +1 -1
  63. package/dist/vue2/components/list_item/list_item.vue.cjs +3 -3
  64. package/dist/vue2/components/list_item/list_item.vue.cjs.map +1 -1
  65. package/dist/vue2/components/list_item/list_item.vue.js +3 -3
  66. package/dist/vue2/components/list_item/list_item.vue.js.map +1 -1
  67. package/dist/vue2/components/modal/modal.vue.cjs +4 -4
  68. package/dist/vue2/components/modal/modal.vue.cjs.map +1 -1
  69. package/dist/vue2/components/modal/modal.vue.js +4 -4
  70. package/dist/vue2/components/modal/modal.vue.js.map +1 -1
  71. package/dist/vue2/components/notice/notice_action.vue.cjs +4 -4
  72. package/dist/vue2/components/notice/notice_action.vue.cjs.map +1 -1
  73. package/dist/vue2/components/notice/notice_action.vue.js +4 -4
  74. package/dist/vue2/components/notice/notice_action.vue.js.map +1 -1
  75. package/dist/vue2/components/notice/notice_icon.vue.cjs +8 -12
  76. package/dist/vue2/components/notice/notice_icon.vue.cjs.map +1 -1
  77. package/dist/vue2/components/notice/notice_icon.vue.js +8 -12
  78. package/dist/vue2/components/notice/notice_icon.vue.js.map +1 -1
  79. package/dist/vue2/components/pagination/pagination.vue.cjs +5 -11
  80. package/dist/vue2/components/pagination/pagination.vue.cjs.map +1 -1
  81. package/dist/vue2/components/pagination/pagination.vue.js +5 -11
  82. package/dist/vue2/components/pagination/pagination.vue.js.map +1 -1
  83. package/dist/vue2/components/popover/popover_header_footer.vue.cjs +4 -4
  84. package/dist/vue2/components/popover/popover_header_footer.vue.cjs.map +1 -1
  85. package/dist/vue2/components/popover/popover_header_footer.vue.js +4 -4
  86. package/dist/vue2/components/popover/popover_header_footer.vue.js.map +1 -1
  87. package/dist/vue2/dialtone-vue.cjs +3 -0
  88. package/dist/vue2/dialtone-vue.cjs.map +1 -1
  89. package/dist/vue2/dialtone-vue.js +5 -2
  90. package/dist/vue2/lib/general-row.cjs +1 -0
  91. package/dist/vue2/lib/general-row.cjs.map +1 -1
  92. package/dist/vue2/lib/general-row.js +2 -1
  93. package/dist/vue2/lib/keyboard-shortcut.cjs +2 -0
  94. package/dist/vue2/lib/keyboard-shortcut.cjs.map +1 -1
  95. package/dist/vue2/lib/keyboard-shortcut.js +4 -2
  96. package/dist/vue2/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.cjs +5 -5
  97. package/dist/vue2/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.cjs.map +1 -1
  98. package/dist/vue2/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.js +5 -5
  99. package/dist/vue2/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.js.map +1 -1
  100. package/dist/vue2/recipes/cards/ivr_node/ivr_node.vue.cjs +5 -25
  101. package/dist/vue2/recipes/cards/ivr_node/ivr_node.vue.cjs.map +1 -1
  102. package/dist/vue2/recipes/cards/ivr_node/ivr_node.vue.js +6 -26
  103. package/dist/vue2/recipes/cards/ivr_node/ivr_node.vue.js.map +1 -1
  104. package/dist/vue2/recipes/comboboxes/combobox_multi_select/combobox_multi_select.vue.cjs +19 -6
  105. package/dist/vue2/recipes/comboboxes/combobox_multi_select/combobox_multi_select.vue.cjs.map +1 -1
  106. package/dist/vue2/recipes/comboboxes/combobox_multi_select/combobox_multi_select.vue.js +19 -6
  107. package/dist/vue2/recipes/comboboxes/combobox_multi_select/combobox_multi_select.vue.js.map +1 -1
  108. package/dist/vue2/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.cjs +4 -5
  109. package/dist/vue2/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.cjs.map +1 -1
  110. package/dist/vue2/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.js +4 -5
  111. package/dist/vue2/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.js.map +1 -1
  112. package/dist/vue2/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.cjs +3 -3
  113. package/dist/vue2/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.cjs.map +1 -1
  114. package/dist/vue2/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.js +3 -3
  115. package/dist/vue2/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.js.map +1 -1
  116. package/dist/vue2/recipes/conversation_view/editor/editor.vue.cjs +22 -35
  117. package/dist/vue2/recipes/conversation_view/editor/editor.vue.cjs.map +1 -1
  118. package/dist/vue2/recipes/conversation_view/editor/editor.vue.js +22 -35
  119. package/dist/vue2/recipes/conversation_view/editor/editor.vue.js.map +1 -1
  120. package/dist/vue2/recipes/conversation_view/feed_item_row/feed_item_row.vue.cjs +6 -7
  121. package/dist/vue2/recipes/conversation_view/feed_item_row/feed_item_row.vue.cjs.map +1 -1
  122. package/dist/vue2/recipes/conversation_view/feed_item_row/feed_item_row.vue.js +6 -7
  123. package/dist/vue2/recipes/conversation_view/feed_item_row/feed_item_row.vue.js.map +1 -1
  124. package/dist/vue2/recipes/conversation_view/feed_pill/feed_item_pill.vue.cjs +17 -9
  125. package/dist/vue2/recipes/conversation_view/feed_pill/feed_item_pill.vue.cjs.map +1 -1
  126. package/dist/vue2/recipes/conversation_view/feed_pill/feed_item_pill.vue.js +17 -9
  127. package/dist/vue2/recipes/conversation_view/feed_pill/feed_item_pill.vue.js.map +1 -1
  128. package/dist/vue2/recipes/conversation_view/message_input/meeting_pill/MeetingPill.vue.cjs +5 -6
  129. package/dist/vue2/recipes/conversation_view/message_input/meeting_pill/MeetingPill.vue.cjs.map +1 -1
  130. package/dist/vue2/recipes/conversation_view/message_input/meeting_pill/MeetingPill.vue.js +5 -6
  131. package/dist/vue2/recipes/conversation_view/message_input/meeting_pill/MeetingPill.vue.js.map +1 -1
  132. package/dist/vue2/recipes/conversation_view/message_input/message_input.vue.cjs +11 -22
  133. package/dist/vue2/recipes/conversation_view/message_input/message_input.vue.cjs.map +1 -1
  134. package/dist/vue2/recipes/conversation_view/message_input/message_input.vue.js +11 -22
  135. package/dist/vue2/recipes/conversation_view/message_input/message_input.vue.js.map +1 -1
  136. package/dist/vue2/recipes/header/settings_menu_button/settings_menu_button.vue.cjs +6 -6
  137. package/dist/vue2/recipes/header/settings_menu_button/settings_menu_button.vue.cjs.map +1 -1
  138. package/dist/vue2/recipes/header/settings_menu_button/settings_menu_button.vue.js +6 -6
  139. package/dist/vue2/recipes/header/settings_menu_button/settings_menu_button.vue.js.map +1 -1
  140. package/dist/vue2/recipes/item_layout/contact_info/contact_info.vue.cjs +10 -14
  141. package/dist/vue2/recipes/item_layout/contact_info/contact_info.vue.cjs.map +1 -1
  142. package/dist/vue2/recipes/item_layout/contact_info/contact_info.vue.js +10 -14
  143. package/dist/vue2/recipes/item_layout/contact_info/contact_info.vue.js.map +1 -1
  144. package/dist/vue2/recipes/leftbar/callbox/callbox.vue.cjs +3 -6
  145. package/dist/vue2/recipes/leftbar/callbox/callbox.vue.cjs.map +1 -1
  146. package/dist/vue2/recipes/leftbar/callbox/callbox.vue.js +3 -6
  147. package/dist/vue2/recipes/leftbar/callbox/callbox.vue.js.map +1 -1
  148. package/dist/vue2/recipes/leftbar/contact_row/contact_row.vue.cjs +5 -6
  149. package/dist/vue2/recipes/leftbar/contact_row/contact_row.vue.cjs.map +1 -1
  150. package/dist/vue2/recipes/leftbar/contact_row/contact_row.vue.js +5 -6
  151. package/dist/vue2/recipes/leftbar/contact_row/contact_row.vue.js.map +1 -1
  152. package/dist/vue2/recipes/leftbar/general_row/general_row.vue.cjs +7 -8
  153. package/dist/vue2/recipes/leftbar/general_row/general_row.vue.cjs.map +1 -1
  154. package/dist/vue2/recipes/leftbar/general_row/general_row.vue.js +7 -8
  155. package/dist/vue2/recipes/leftbar/general_row/general_row.vue.js.map +1 -1
  156. package/dist/vue2/recipes/leftbar/general_row/general_row_constants.cjs +17 -0
  157. package/dist/vue2/recipes/leftbar/general_row/general_row_constants.cjs.map +1 -1
  158. package/dist/vue2/recipes/leftbar/general_row/general_row_constants.js +17 -0
  159. package/dist/vue2/recipes/leftbar/general_row/general_row_constants.js.map +1 -1
  160. package/dist/vue2/recipes/leftbar/general_row/leftbar_general_row_icon.vue.cjs +4 -36
  161. package/dist/vue2/recipes/leftbar/general_row/leftbar_general_row_icon.vue.cjs.map +1 -1
  162. package/dist/vue2/recipes/leftbar/general_row/leftbar_general_row_icon.vue.js +5 -37
  163. package/dist/vue2/recipes/leftbar/general_row/leftbar_general_row_icon.vue.js.map +1 -1
  164. package/dist/vue2/recipes/leftbar/group_row/group_row.vue.cjs +3 -3
  165. package/dist/vue2/recipes/leftbar/group_row/group_row.vue.cjs.map +1 -1
  166. package/dist/vue2/recipes/leftbar/group_row/group_row.vue.js +3 -3
  167. package/dist/vue2/recipes/leftbar/group_row/group_row.vue.js.map +1 -1
  168. package/dist/vue2/recipes/leftbar/unread_pill/unread_pill.vue.cjs +3 -4
  169. package/dist/vue2/recipes/leftbar/unread_pill/unread_pill.vue.cjs.map +1 -1
  170. package/dist/vue2/recipes/leftbar/unread_pill/unread_pill.vue.js +3 -4
  171. package/dist/vue2/recipes/leftbar/unread_pill/unread_pill.vue.js.map +1 -1
  172. package/dist/vue2/style.css +132 -135
  173. package/dist/vue2/types/common/storybook_utils.d.ts +35 -0
  174. package/dist/vue2/types/common/storybook_utils.d.ts.map +1 -0
  175. package/dist/vue2/types/components/avatar/avatar.vue.d.ts +34 -4
  176. package/dist/vue2/types/components/avatar/avatar.vue.d.ts.map +1 -1
  177. package/dist/vue2/types/components/badge/badge.vue.d.ts +45 -16
  178. package/dist/vue2/types/components/badge/badge.vue.d.ts.map +1 -1
  179. package/dist/vue2/types/components/chip/chip.vue.d.ts +1 -1
  180. package/dist/vue2/types/components/collapsible/collapsible.vue.d.ts +1 -1
  181. package/dist/vue2/types/components/collapsible/collapsible.vue.d.ts.map +1 -1
  182. package/dist/vue2/types/components/emoji_picker/modules/emoji_tabset.vue.d.ts +67 -1
  183. package/dist/vue2/types/components/empty_state/empty_state_constants.d.ts +0 -27
  184. package/dist/vue2/types/components/keyboard_shortcut/index.d.ts +1 -1
  185. package/dist/vue2/types/components/keyboard_shortcut/keyboard_shortcut.vue.d.ts +15 -7
  186. package/dist/vue2/types/components/keyboard_shortcut/keyboard_shortcut.vue.d.ts.map +1 -1
  187. package/dist/vue2/types/components/keyboard_shortcut/keyboard_shortcut_constants.d.ts +11 -0
  188. package/dist/vue2/types/components/keyboard_shortcut/keyboard_shortcut_constants.d.ts.map +1 -1
  189. package/dist/vue2/types/components/modal/modal.vue.d.ts +6 -4
  190. package/dist/vue2/types/components/modal/modal.vue.d.ts.map +1 -1
  191. package/dist/vue2/types/components/notice/notice_action.vue.d.ts +4 -5
  192. package/dist/vue2/types/components/notice/notice_action.vue.d.ts.map +1 -1
  193. package/dist/vue2/types/components/notice/notice_icon.vue.d.ts +1 -1
  194. package/dist/vue2/types/components/notice/notice_icon.vue.d.ts.map +1 -1
  195. package/dist/vue2/types/components/pagination/pagination.vue.d.ts.map +1 -1
  196. package/dist/vue2/types/components/split_button/split_button-omega.vue.d.ts +1 -1
  197. package/dist/vue2/types/recipes/buttons/callbar_button/callbar_button.vue.d.ts +1 -1
  198. package/dist/vue2/types/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts +1 -1
  199. package/dist/vue2/types/recipes/cards/ivr_node/ivr_node.vue.d.ts.map +1 -1
  200. package/dist/vue2/types/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.d.ts.map +1 -1
  201. package/dist/vue2/types/recipes/conversation_view/editor/editor.vue.d.ts +8 -8
  202. package/dist/vue2/types/recipes/conversation_view/editor/editor.vue.d.ts.map +1 -1
  203. package/dist/vue2/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts +1 -0
  204. package/dist/vue2/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts.map +1 -1
  205. package/dist/vue2/types/recipes/conversation_view/feed_pill/feed_item_pill.vue.d.ts +16 -2
  206. package/dist/vue2/types/recipes/conversation_view/feed_pill/feed_item_pill.vue.d.ts.map +1 -1
  207. package/dist/vue2/types/recipes/conversation_view/message_input/message_input.vue.d.ts +6 -4
  208. package/dist/vue2/types/recipes/conversation_view/message_input/message_input.vue.d.ts.map +1 -1
  209. package/dist/vue2/types/recipes/item_layout/contact_info/contact_info.vue.d.ts +16 -3
  210. package/dist/vue2/types/recipes/item_layout/contact_info/contact_info.vue.d.ts.map +1 -1
  211. package/dist/vue2/types/recipes/leftbar/callbox/callbox.vue.d.ts.map +1 -1
  212. package/dist/vue2/types/recipes/leftbar/contact_row/contact_row.vue.d.ts +1 -0
  213. package/dist/vue2/types/recipes/leftbar/contact_row/contact_row.vue.d.ts.map +1 -1
  214. package/dist/vue2/types/recipes/leftbar/general_row/general_row.vue.d.ts +1 -1
  215. package/dist/vue2/types/recipes/leftbar/general_row/general_row.vue.d.ts.map +1 -1
  216. package/dist/vue2/types/recipes/leftbar/general_row/general_row_constants.d.ts +6 -0
  217. package/dist/vue2/types/recipes/leftbar/general_row/general_row_constants.d.ts.map +1 -1
  218. package/dist/vue2/types/recipes/leftbar/general_row/index.d.ts +1 -1
  219. package/dist/vue2/types/recipes/leftbar/general_row/leftbar_general_row_icon.vue.d.ts +1 -1
  220. package/dist/vue2/types/recipes/leftbar/unread_pill/unread_pill.vue.d.ts.map +1 -1
  221. package/dist/vue3/common/sr_only_close_button.vue.cjs +4 -4
  222. package/dist/vue3/common/sr_only_close_button.vue.cjs.map +1 -1
  223. package/dist/vue3/common/sr_only_close_button.vue.js +4 -4
  224. package/dist/vue3/common/sr_only_close_button.vue.js.map +1 -1
  225. package/dist/vue3/common/storybook_utils.cjs +8 -0
  226. package/dist/vue3/common/storybook_utils.cjs.map +1 -0
  227. package/dist/vue3/common/storybook_utils.js +8 -0
  228. package/dist/vue3/common/storybook_utils.js.map +1 -0
  229. package/dist/vue3/component-documentation.json +1 -1
  230. package/dist/vue3/components/avatar/avatar.vue.cjs +41 -30
  231. package/dist/vue3/components/avatar/avatar.vue.cjs.map +1 -1
  232. package/dist/vue3/components/avatar/avatar.vue.js +43 -32
  233. package/dist/vue3/components/avatar/avatar.vue.js.map +1 -1
  234. package/dist/vue3/components/badge/badge.vue.cjs +39 -22
  235. package/dist/vue3/components/badge/badge.vue.cjs.map +1 -1
  236. package/dist/vue3/components/badge/badge.vue.js +40 -23
  237. package/dist/vue3/components/badge/badge.vue.js.map +1 -1
  238. package/dist/vue3/components/chip/chip.vue.cjs +7 -4
  239. package/dist/vue3/components/chip/chip.vue.cjs.map +1 -1
  240. package/dist/vue3/components/chip/chip.vue.js +7 -4
  241. package/dist/vue3/components/chip/chip.vue.js.map +1 -1
  242. package/dist/vue3/components/collapsible/collapsible.vue.cjs +6 -12
  243. package/dist/vue3/components/collapsible/collapsible.vue.cjs.map +1 -1
  244. package/dist/vue3/components/collapsible/collapsible.vue.js +6 -12
  245. package/dist/vue3/components/collapsible/collapsible.vue.js.map +1 -1
  246. package/dist/vue3/components/datepicker/modules/month-year-picker.vue.cjs +17 -5
  247. package/dist/vue3/components/datepicker/modules/month-year-picker.vue.cjs.map +1 -1
  248. package/dist/vue3/components/datepicker/modules/month-year-picker.vue.js +17 -5
  249. package/dist/vue3/components/datepicker/modules/month-year-picker.vue.js.map +1 -1
  250. package/dist/vue3/components/emoji_picker/modules/emoji_search.vue.cjs +9 -4
  251. package/dist/vue3/components/emoji_picker/modules/emoji_search.vue.cjs.map +1 -1
  252. package/dist/vue3/components/emoji_picker/modules/emoji_search.vue.js +10 -5
  253. package/dist/vue3/components/emoji_picker/modules/emoji_search.vue.js.map +1 -1
  254. package/dist/vue3/components/emoji_picker/modules/emoji_tabset.vue.cjs +14 -11
  255. package/dist/vue3/components/emoji_picker/modules/emoji_tabset.vue.cjs.map +1 -1
  256. package/dist/vue3/components/emoji_picker/modules/emoji_tabset.vue.js +15 -12
  257. package/dist/vue3/components/emoji_picker/modules/emoji_tabset.vue.js.map +1 -1
  258. package/dist/vue3/components/empty_state/empty_state.vue.cjs +92 -19
  259. package/dist/vue3/components/empty_state/empty_state.vue.cjs.map +1 -1
  260. package/dist/vue3/components/empty_state/empty_state.vue.js +93 -20
  261. package/dist/vue3/components/empty_state/empty_state.vue.js.map +1 -1
  262. package/dist/vue3/components/empty_state/empty_state_constants.cjs +0 -18
  263. package/dist/vue3/components/empty_state/empty_state_constants.cjs.map +1 -1
  264. package/dist/vue3/components/empty_state/empty_state_constants.js +0 -18
  265. package/dist/vue3/components/empty_state/empty_state_constants.js.map +1 -1
  266. package/dist/vue3/components/icon/icon.vue.cjs +2 -2
  267. package/dist/vue3/components/icon/icon.vue.js +2 -2
  268. package/dist/vue3/components/illustration/illustration.vue.cjs +2 -2
  269. package/dist/vue3/components/illustration/illustration.vue.js +2 -2
  270. package/dist/vue3/components/image_viewer/image_viewer.vue.cjs +5 -4
  271. package/dist/vue3/components/image_viewer/image_viewer.vue.cjs.map +1 -1
  272. package/dist/vue3/components/image_viewer/image_viewer.vue.js +5 -4
  273. package/dist/vue3/components/image_viewer/image_viewer.vue.js.map +1 -1
  274. package/dist/vue3/components/keyboard_shortcut/keyboard_shortcut.vue.cjs +11 -24
  275. package/dist/vue3/components/keyboard_shortcut/keyboard_shortcut.vue.cjs.map +1 -1
  276. package/dist/vue3/components/keyboard_shortcut/keyboard_shortcut.vue.js +10 -23
  277. package/dist/vue3/components/keyboard_shortcut/keyboard_shortcut.vue.js.map +1 -1
  278. package/dist/vue3/components/keyboard_shortcut/keyboard_shortcut_constants.cjs +14 -8
  279. package/dist/vue3/components/keyboard_shortcut/keyboard_shortcut_constants.cjs.map +1 -1
  280. package/dist/vue3/components/keyboard_shortcut/keyboard_shortcut_constants.js +15 -9
  281. package/dist/vue3/components/keyboard_shortcut/keyboard_shortcut_constants.js.map +1 -1
  282. package/dist/vue3/components/list_item/list_item.vue.cjs +5 -4
  283. package/dist/vue3/components/list_item/list_item.vue.cjs.map +1 -1
  284. package/dist/vue3/components/list_item/list_item.vue.js +5 -4
  285. package/dist/vue3/components/list_item/list_item.vue.js.map +1 -1
  286. package/dist/vue3/components/modal/modal.vue.cjs +7 -4
  287. package/dist/vue3/components/modal/modal.vue.cjs.map +1 -1
  288. package/dist/vue3/components/modal/modal.vue.js +7 -4
  289. package/dist/vue3/components/modal/modal.vue.js.map +1 -1
  290. package/dist/vue3/components/notice/notice_action.vue.cjs +7 -4
  291. package/dist/vue3/components/notice/notice_action.vue.cjs.map +1 -1
  292. package/dist/vue3/components/notice/notice_action.vue.js +7 -4
  293. package/dist/vue3/components/notice/notice_action.vue.js.map +1 -1
  294. package/dist/vue3/components/notice/notice_icon.vue.cjs +12 -12
  295. package/dist/vue3/components/notice/notice_icon.vue.cjs.map +1 -1
  296. package/dist/vue3/components/notice/notice_icon.vue.js +13 -13
  297. package/dist/vue3/components/notice/notice_icon.vue.js.map +1 -1
  298. package/dist/vue3/components/pagination/pagination.vue.cjs +15 -10
  299. package/dist/vue3/components/pagination/pagination.vue.cjs.map +1 -1
  300. package/dist/vue3/components/pagination/pagination.vue.js +15 -10
  301. package/dist/vue3/components/pagination/pagination.vue.js.map +1 -1
  302. package/dist/vue3/components/popover/popover_header_footer.vue.cjs +7 -4
  303. package/dist/vue3/components/popover/popover_header_footer.vue.cjs.map +1 -1
  304. package/dist/vue3/components/popover/popover_header_footer.vue.js +7 -4
  305. package/dist/vue3/components/popover/popover_header_footer.vue.js.map +1 -1
  306. package/dist/vue3/dialtone-vue.cjs +3 -0
  307. package/dist/vue3/dialtone-vue.cjs.map +1 -1
  308. package/dist/vue3/dialtone-vue.js +5 -2
  309. package/dist/vue3/lib/general-row.cjs +1 -0
  310. package/dist/vue3/lib/general-row.cjs.map +1 -1
  311. package/dist/vue3/lib/general-row.js +2 -1
  312. package/dist/vue3/lib/keyboard-shortcut.cjs +2 -0
  313. package/dist/vue3/lib/keyboard-shortcut.cjs.map +1 -1
  314. package/dist/vue3/lib/keyboard-shortcut.js +4 -2
  315. package/dist/vue3/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.cjs +5 -4
  316. package/dist/vue3/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.cjs.map +1 -1
  317. package/dist/vue3/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.js +5 -4
  318. package/dist/vue3/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.js.map +1 -1
  319. package/dist/vue3/recipes/cards/ivr_node/ivr_node.vue.cjs +11 -27
  320. package/dist/vue3/recipes/cards/ivr_node/ivr_node.vue.cjs.map +1 -1
  321. package/dist/vue3/recipes/cards/ivr_node/ivr_node.vue.js +13 -29
  322. package/dist/vue3/recipes/cards/ivr_node/ivr_node.vue.js.map +1 -1
  323. package/dist/vue3/recipes/comboboxes/combobox_multi_select/combobox_multi_select.vue.cjs +19 -6
  324. package/dist/vue3/recipes/comboboxes/combobox_multi_select/combobox_multi_select.vue.cjs.map +1 -1
  325. package/dist/vue3/recipes/comboboxes/combobox_multi_select/combobox_multi_select.vue.js +19 -6
  326. package/dist/vue3/recipes/comboboxes/combobox_multi_select/combobox_multi_select.vue.js.map +1 -1
  327. package/dist/vue3/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.cjs +11 -7
  328. package/dist/vue3/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.cjs.map +1 -1
  329. package/dist/vue3/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.js +11 -7
  330. package/dist/vue3/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.js.map +1 -1
  331. package/dist/vue3/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.cjs +7 -4
  332. package/dist/vue3/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.cjs.map +1 -1
  333. package/dist/vue3/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.js +7 -4
  334. package/dist/vue3/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.js.map +1 -1
  335. package/dist/vue3/recipes/conversation_view/editor/editor.vue.cjs +25 -33
  336. package/dist/vue3/recipes/conversation_view/editor/editor.vue.cjs.map +1 -1
  337. package/dist/vue3/recipes/conversation_view/editor/editor.vue.js +26 -34
  338. package/dist/vue3/recipes/conversation_view/editor/editor.vue.js.map +1 -1
  339. package/dist/vue3/recipes/conversation_view/feed_item_row/feed_item_row.vue.cjs +7 -14
  340. package/dist/vue3/recipes/conversation_view/feed_item_row/feed_item_row.vue.cjs.map +1 -1
  341. package/dist/vue3/recipes/conversation_view/feed_item_row/feed_item_row.vue.js +8 -15
  342. package/dist/vue3/recipes/conversation_view/feed_item_row/feed_item_row.vue.js.map +1 -1
  343. package/dist/vue3/recipes/conversation_view/feed_pill/feed_item_pill.vue.cjs +25 -23
  344. package/dist/vue3/recipes/conversation_view/feed_pill/feed_item_pill.vue.cjs.map +1 -1
  345. package/dist/vue3/recipes/conversation_view/feed_pill/feed_item_pill.vue.js +26 -24
  346. package/dist/vue3/recipes/conversation_view/feed_pill/feed_item_pill.vue.js.map +1 -1
  347. package/dist/vue3/recipes/conversation_view/message_input/meeting_pill/MeetingPill.vue.cjs +12 -8
  348. package/dist/vue3/recipes/conversation_view/message_input/meeting_pill/MeetingPill.vue.cjs.map +1 -1
  349. package/dist/vue3/recipes/conversation_view/message_input/meeting_pill/MeetingPill.vue.js +12 -8
  350. package/dist/vue3/recipes/conversation_view/message_input/meeting_pill/MeetingPill.vue.js.map +1 -1
  351. package/dist/vue3/recipes/conversation_view/message_input/message_input.vue.cjs +18 -29
  352. package/dist/vue3/recipes/conversation_view/message_input/message_input.vue.cjs.map +1 -1
  353. package/dist/vue3/recipes/conversation_view/message_input/message_input.vue.js +18 -29
  354. package/dist/vue3/recipes/conversation_view/message_input/message_input.vue.js.map +1 -1
  355. package/dist/vue3/recipes/header/settings_menu_button/settings_menu_button.vue.cjs +12 -6
  356. package/dist/vue3/recipes/header/settings_menu_button/settings_menu_button.vue.cjs.map +1 -1
  357. package/dist/vue3/recipes/header/settings_menu_button/settings_menu_button.vue.js +12 -6
  358. package/dist/vue3/recipes/header/settings_menu_button/settings_menu_button.vue.js.map +1 -1
  359. package/dist/vue3/recipes/item_layout/contact_info/contact_info.vue.cjs +13 -33
  360. package/dist/vue3/recipes/item_layout/contact_info/contact_info.vue.cjs.map +1 -1
  361. package/dist/vue3/recipes/item_layout/contact_info/contact_info.vue.js +14 -34
  362. package/dist/vue3/recipes/item_layout/contact_info/contact_info.vue.js.map +1 -1
  363. package/dist/vue3/recipes/leftbar/callbox/callbox.vue.cjs +4 -13
  364. package/dist/vue3/recipes/leftbar/callbox/callbox.vue.cjs.map +1 -1
  365. package/dist/vue3/recipes/leftbar/callbox/callbox.vue.js +5 -14
  366. package/dist/vue3/recipes/leftbar/callbox/callbox.vue.js.map +1 -1
  367. package/dist/vue3/recipes/leftbar/contact_row/contact_row.vue.cjs +7 -13
  368. package/dist/vue3/recipes/leftbar/contact_row/contact_row.vue.cjs.map +1 -1
  369. package/dist/vue3/recipes/leftbar/contact_row/contact_row.vue.js +8 -14
  370. package/dist/vue3/recipes/leftbar/contact_row/contact_row.vue.js.map +1 -1
  371. package/dist/vue3/recipes/leftbar/general_row/general_row.vue.cjs +13 -9
  372. package/dist/vue3/recipes/leftbar/general_row/general_row.vue.cjs.map +1 -1
  373. package/dist/vue3/recipes/leftbar/general_row/general_row.vue.js +13 -9
  374. package/dist/vue3/recipes/leftbar/general_row/general_row.vue.js.map +1 -1
  375. package/dist/vue3/recipes/leftbar/general_row/general_row_constants.cjs +17 -0
  376. package/dist/vue3/recipes/leftbar/general_row/general_row_constants.cjs.map +1 -1
  377. package/dist/vue3/recipes/leftbar/general_row/general_row_constants.js +17 -0
  378. package/dist/vue3/recipes/leftbar/general_row/general_row_constants.js.map +1 -1
  379. package/dist/vue3/recipes/leftbar/general_row/leftbar_general_row_icon.vue.cjs +11 -39
  380. package/dist/vue3/recipes/leftbar/general_row/leftbar_general_row_icon.vue.cjs.map +1 -1
  381. package/dist/vue3/recipes/leftbar/general_row/leftbar_general_row_icon.vue.js +13 -41
  382. package/dist/vue3/recipes/leftbar/general_row/leftbar_general_row_icon.vue.js.map +1 -1
  383. package/dist/vue3/recipes/leftbar/group_row/group_row.vue.cjs +7 -4
  384. package/dist/vue3/recipes/leftbar/group_row/group_row.vue.cjs.map +1 -1
  385. package/dist/vue3/recipes/leftbar/group_row/group_row.vue.js +7 -4
  386. package/dist/vue3/recipes/leftbar/group_row/group_row.vue.js.map +1 -1
  387. package/dist/vue3/recipes/leftbar/unread_pill/unread_pill.vue.cjs +6 -11
  388. package/dist/vue3/recipes/leftbar/unread_pill/unread_pill.vue.cjs.map +1 -1
  389. package/dist/vue3/recipes/leftbar/unread_pill/unread_pill.vue.js +7 -12
  390. package/dist/vue3/recipes/leftbar/unread_pill/unread_pill.vue.js.map +1 -1
  391. package/dist/vue3/style.css +132 -135
  392. package/dist/vue3/types/common/storybook_utils.d.ts +25 -0
  393. package/dist/vue3/types/common/storybook_utils.d.ts.map +1 -0
  394. package/dist/vue3/types/components/avatar/avatar.vue.d.ts +33 -5
  395. package/dist/vue3/types/components/avatar/avatar.vue.d.ts.map +1 -1
  396. package/dist/vue3/types/components/badge/badge.vue.d.ts +34 -17
  397. package/dist/vue3/types/components/badge/badge.vue.d.ts.map +1 -1
  398. package/dist/vue3/types/components/chip/chip.vue.d.ts +1 -1
  399. package/dist/vue3/types/components/collapsible/collapsible.vue.d.ts +1 -1
  400. package/dist/vue3/types/components/collapsible/collapsible.vue.d.ts.map +1 -1
  401. package/dist/vue3/types/components/emoji_picker/modules/emoji_tabset.vue.d.ts.map +1 -1
  402. package/dist/vue3/types/components/empty_state/empty_state.vue.d.ts +0 -4
  403. package/dist/vue3/types/components/empty_state/empty_state.vue.d.ts.map +1 -1
  404. package/dist/vue3/types/components/empty_state/empty_state_constants.d.ts +0 -27
  405. package/dist/vue3/types/components/image_viewer/image_viewer.vue.d.ts.map +1 -1
  406. package/dist/vue3/types/components/keyboard_shortcut/index.d.ts +1 -1
  407. package/dist/vue3/types/components/keyboard_shortcut/keyboard_shortcut.vue.d.ts +15 -210
  408. package/dist/vue3/types/components/keyboard_shortcut/keyboard_shortcut.vue.d.ts.map +1 -1
  409. package/dist/vue3/types/components/keyboard_shortcut/keyboard_shortcut_constants.d.ts +11 -0
  410. package/dist/vue3/types/components/keyboard_shortcut/keyboard_shortcut_constants.d.ts.map +1 -1
  411. package/dist/vue3/types/components/list_item/list_item.vue.d.ts +8 -2
  412. package/dist/vue3/types/components/list_item/list_item.vue.d.ts.map +1 -1
  413. package/dist/vue3/types/components/notice/notice_action.vue.d.ts +4 -5
  414. package/dist/vue3/types/components/notice/notice_action.vue.d.ts.map +1 -1
  415. package/dist/vue3/types/components/notice/notice_icon.vue.d.ts +1 -30
  416. package/dist/vue3/types/components/notice/notice_icon.vue.d.ts.map +1 -1
  417. package/dist/vue3/types/components/pagination/pagination.vue.d.ts.map +1 -1
  418. package/dist/vue3/types/components/split_button/split_button-omega.vue.d.ts +1 -1
  419. package/dist/vue3/types/recipes/buttons/callbar_button/callbar_button.vue.d.ts +1 -1
  420. package/dist/vue3/types/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts +1 -1
  421. package/dist/vue3/types/recipes/cards/ivr_node/ivr_node.vue.d.ts +1 -30
  422. package/dist/vue3/types/recipes/cards/ivr_node/ivr_node.vue.d.ts.map +1 -1
  423. package/dist/vue3/types/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.d.ts.map +1 -1
  424. package/dist/vue3/types/recipes/conversation_view/editor/editor.vue.d.ts +8 -240
  425. package/dist/vue3/types/recipes/conversation_view/editor/editor.vue.d.ts.map +1 -1
  426. package/dist/vue3/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts +1 -0
  427. package/dist/vue3/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts.map +1 -1
  428. package/dist/vue3/types/recipes/conversation_view/feed_pill/feed_item_pill.vue.d.ts +16 -31
  429. package/dist/vue3/types/recipes/conversation_view/feed_pill/feed_item_pill.vue.d.ts.map +1 -1
  430. package/dist/vue3/types/recipes/conversation_view/message_input/message_input.vue.d.ts +6 -4
  431. package/dist/vue3/types/recipes/conversation_view/message_input/message_input.vue.d.ts.map +1 -1
  432. package/dist/vue3/types/recipes/item_layout/contact_info/contact_info.vue.d.ts +16 -3
  433. package/dist/vue3/types/recipes/item_layout/contact_info/contact_info.vue.d.ts.map +1 -1
  434. package/dist/vue3/types/recipes/leftbar/callbox/callbox.vue.d.ts.map +1 -1
  435. package/dist/vue3/types/recipes/leftbar/contact_row/contact_row.vue.d.ts +1 -0
  436. package/dist/vue3/types/recipes/leftbar/contact_row/contact_row.vue.d.ts.map +1 -1
  437. package/dist/vue3/types/recipes/leftbar/general_row/general_row.vue.d.ts +1 -1
  438. package/dist/vue3/types/recipes/leftbar/general_row/general_row.vue.d.ts.map +1 -1
  439. package/dist/vue3/types/recipes/leftbar/general_row/general_row_constants.d.ts +6 -0
  440. package/dist/vue3/types/recipes/leftbar/general_row/general_row_constants.d.ts.map +1 -1
  441. package/dist/vue3/types/recipes/leftbar/general_row/index.d.ts +1 -1
  442. package/dist/vue3/types/recipes/leftbar/general_row/leftbar_general_row_icon.vue.d.ts +1 -30
  443. package/dist/vue3/types/recipes/leftbar/unread_pill/unread_pill.vue.d.ts.map +1 -1
  444. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"editor.vue.js","sources":["../../../../recipes/conversation_view/editor/editor.vue"],"sourcesContent":["<!-- eslint-disable vue/no-restricted-class -->\n<template>\n <div\n data-qa=\"dt-editor\"\n role=\"presentation\"\n class=\"d-d-flex d-fd-column\"\n @click=\"$refs.richTextEditor.focusEditor()\"\n >\n <!-- Section for the top UI -->\n <dt-stack\n direction=\"row\"\n gap=\"450\"\n class=\"d-p8 dt-editor--top-bar-background\"\n >\n <dt-stack\n v-for=\"buttonGroup in buttonGroups\"\n :key=\"buttonGroup.key\"\n direction=\"row\"\n gap=\"300\"\n >\n <dt-tooltip\n v-for=\"button in buttonGroup.buttonGroup\"\n :key=\"`${buttonGroup.key}-${JSON.stringify(button.selector)}`\"\n :message=\"button.tooltipMessage\"\n placement=\"top\"\n >\n <template #anchor>\n <dt-button\n :data-qa=\"button.dataQA\"\n importance=\"clear\"\n kind=\"muted\"\n :active=\"$refs.richTextEditor?.editor?.isActive(button.selector)\"\n size=\"xs\"\n :aria-label=\"button.tooltipMessage\"\n :class=\"{ 'd-btn--icon-only': !button.label }\"\n @click=\"button.onClick()\"\n >\n <template #icon>\n <component\n :is=\"button.icon\"\n size=\"200\"\n />\n </template>\n {{ button?.label }}\n </dt-button>\n </template>\n </dt-tooltip>\n <div class=\"dt-editor--button-group-divider\" />\n </dt-stack>\n <dt-stack\n v-if=\"linkButton.showBtn\"\n direction=\"row\"\n gap=\"300\"\n >\n <dt-popover\n :open=\"showLinkInput\"\n placement=\"bottom-start\"\n :visually-hidden-close=\"true\"\n :visually-hidden-close-label=\"'Close link input popover'\"\n data-qa=\"dt-editor-link-input-popover\"\n :show-close-button=\"false\"\n @click=\"onInputFocus\"\n @click.stop=\"onInputFocus\"\n @opened=\"updateInput\"\n >\n <template #anchor>\n <dt-tooltip\n :key=\"linkButton.key\"\n :message=\"linkButton.tooltipMessage\"\n placement=\"top\"\n >\n <template #anchor>\n <dt-button\n :data-qa=\"linkButton.dataQA\"\n importance=\"clear\"\n kind=\"muted\"\n class=\"d-ol-none\"\n :active=\"$refs.richTextEditor?.editor?.isActive(linkButton.selector)\"\n size=\"xs\"\n :aria-label=\"linkButton.tooltipMessage\"\n @click=\"linkButton.onClick()\"\n >\n <template #icon>\n <component\n :is=\"linkButton.icon\"\n size=\"200\"\n class=\"d-fw-bold\"\n />\n </template>\n </dt-button>\n </template>\n </dt-tooltip>\n </template>\n\n <template #content>\n <span\n v-if=\"showAddLink.setLinkTitle.length > 0\"\n >\n {{ showAddLink.setLinkTitle }}\n </span>\n <dt-input\n v-model=\"linkInput\"\n :input-aria-label=\"showAddLink.setLinkInputAriaLabel\"\n data-qa=\"dt-editor-link-input\"\n :placeholder=\"setLinkPlaceholder\"\n input-wrapper-class=\"d-bgc-black-100 d-mt6 d-bar5 d-ba d-baw1 d-bc-black-300 d-py2 d-ol-none\"\n @click=\"onInputFocus\"\n @click.stop=\"onInputFocus\"\n @focus=\"onInputFocus\"\n @keydown.enter=\"setLink\"\n />\n </template>\n <template #footerContent>\n <div class=\"d-ml8 d-mr12\">\n <dt-button\n class=\"d-mx2\"\n :aria-label=\"removeLinkButton.ariaLabel\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"sm\"\n data-qa=\"dt-editor-remove-link-btn\"\n @click=\"removeLink\"\n >\n {{ removeLinkButton.label }}\n </dt-button>\n <dt-button\n class=\"d-mx2\"\n :aria-label=\"cancelSetLinkButton.ariaLabel\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"sm\"\n data-qa=\"dt-editor-set-link-cancel-btn\"\n @click=\"closeLinkInput\"\n >\n {{ cancelSetLinkButton.label }}\n </dt-button>\n <dt-button\n class=\"d-mx2\"\n size=\"sm\"\n :aria-label=\"confirmSetLinkButton.ariaLabel\"\n data-qa=\"dt-editor-set-link-confirm-btn\"\n @click=\"setLink\"\n >\n {{ confirmSetLinkButton.label }}\n </dt-button>\n </div>\n </template>\n </dt-popover>\n </dt-stack>\n </dt-stack>\n\n <!-- Some wrapper to restrict the height and show the scrollbar -->\n <div\n class=\"d-of-auto d-mx16 d-mt8 d-mb16 d-c-text\"\n :style=\"{ 'max-height': maxHeight }\"\n >\n <dt-rich-text-editor\n ref=\"richTextEditor\"\n v-model=\"internalInputValue\"\n data-qa=\"dt-rich-text-editor\"\n :editable=\"editable\"\n :input-aria-label=\"inputAriaLabel\"\n :input-class=\"`d-ml16 d-ol-none d-my6 ${inputClass}`\"\n :output-format=\"htmlOutputFormat\"\n :auto-focus=\"autoFocus\"\n :placeholder=\"placeholder\"\n :allow-line-breaks=\"true\"\n :link=\"true\"\n v-bind=\"$attrs\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @input=\"onInput($event)\"\n />\n </div>\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 {\n EDITOR_SUPPORTED_LINK_PROTOCOLS,\n EDITOR_DEFAULT_LINK_PREFIX,\n} from './editor_constants.js';\nimport { DtButton } from '@/components/button';\nimport { DtPopover } from '@/components/popover';\nimport { DtStack } from '@/components/stack';\nimport { DtInput } from '@/components/input';\nimport { DtTooltip } from '@/components/tooltip';\nimport {\n DtIconAlignCenter,\n DtIconAlignJustify,\n DtIconAlignLeft,\n DtIconAlignRight,\n DtIconBold,\n DtIconCodeBlock,\n DtIconItalic,\n DtIconLightningBolt,\n DtIconLink2,\n DtIconListBullet,\n DtIconListOrdered,\n DtIconQuote,\n DtIconStrikethrough,\n DtIconUnderline,\n} from '@dialpad/dialtone-icons/vue3';\n\nexport default {\n name: 'DtRecipeEditor',\n\n components: {\n DtRichTextEditor,\n DtButton,\n DtPopover,\n DtStack,\n DtInput,\n DtTooltip,\n DtIconLightningBolt,\n DtIconBold,\n DtIconItalic,\n DtIconUnderline,\n DtIconStrikethrough,\n DtIconListBullet,\n DtIconListOrdered,\n DtIconAlignLeft,\n DtIconAlignCenter,\n DtIconAlignRight,\n DtIconAlignJustify,\n DtIconQuote,\n DtIconCodeBlock,\n DtIconLink2,\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 value: {\n type: [Object, String],\n default: '',\n },\n\n /**\n * Whether the input is editable\n */\n editable: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Descriptive label for the input element\n */\n inputAriaLabel: {\n type: String,\n required: true,\n default: '',\n },\n\n /**\n * Additional class name for the input element. Only accepts a String value\n * because this is passed to the editor via options. For multiple classes,\n * join them into one string, e.g. \"d-p8 d-hmx96\"\n */\n inputClass: {\n type: String,\n default: '',\n },\n\n /**\n * Whether the input should receive focus after the component has been\n * mounted. Either one of `start`, `end`, `all` or a Boolean or a Number.\n * - `start` Sets the focus to the beginning of the input\n * - `end` Sets the focus to the end of the input\n * - `all` Selects the whole contents of the input\n * - `Number` Sets the focus to a specific position in the input\n * - `true` Defaults to `start`\n * - `false` Disables autofocus\n * @values true, false, start, end, all, number\n */\n autoFocus: {\n type: [Boolean, String, Number],\n default: false,\n validator (autoFocus) {\n if (typeof autoFocus === 'string') {\n return RICH_TEXT_EDITOR_AUTOFOCUS_TYPES.includes(autoFocus);\n }\n return true;\n },\n },\n\n /**\n * Placeholder text\n */\n placeholder: {\n type: String,\n default: '',\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 /**\n * Confirm set link button defaults.\n */\n confirmSetLinkButton: {\n type: Object,\n default: () => ({ label: 'Confirm', ariaLabel: 'Confirm set link' }),\n },\n\n /**\n * Remove link button defaults.\n */\n removeLinkButton: {\n type: Object,\n default: () => ({ label: 'Remove', ariaLabel: 'Remove link' }),\n },\n\n /**\n * Cancel set link button defaults.\n */\n cancelSetLinkButton: {\n type: Object,\n default: () => ({ label: 'Cancel', ariaLabel: 'Cancel set link' }),\n },\n\n /**\n * Placeholder text for the set link input field\n */\n setLinkPlaceholder: {\n type: String,\n default: '',\n },\n\n /**\n * Show button to render text as bold\n */\n showBoldButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to render text in italics\n */\n showItalicsButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to underline text\n */\n showUnderlineButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to strike text\n */\n showStrikeButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to render list items\n */\n showListItemsButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to render ordered list items\n */\n showOrderedListButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to align text to the left\n */\n showAlignLeftButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to align text to the center\n */\n showAlignCenterButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to align text to the right\n */\n showAlignRightButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to justify text\n */\n showAlignJustifyButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to add quote format to text\n */\n showQuoteButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to add code block\n */\n showCodeBlockButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to handle quick replies\n */\n showQuickRepliesButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show add link default config.\n */\n showAddLink: {\n type: Object,\n default: () => ({\n showAddLinkButton: true,\n setLinkTitle: 'Add a link',\n setLinkInputAriaLabel: 'Input field to add link',\n }),\n },\n },\n\n emits: [\n /**\n * Native focus event\n * @event input\n * @type {String|JSON}\n */\n 'focus',\n\n /**\n * Native blur event\n * @event input\n * @type {String|JSON}\n */\n 'blur',\n\n /**\n * Native input event\n * @event input\n * @type {String|JSON}\n */\n 'input',\n\n /**\n * Quick replies button\n * pressed event\n * @event quick-replies-click\n */\n 'quick-replies-click',\n ],\n\n data () {\n return {\n internalInputValue: this.value, // internal input content\n hasFocus: false,\n\n linkOptions: {\n class: 'd-link d-c-text d-d-inline-block',\n },\n\n showLinkInput: false,\n linkInput: '',\n };\n },\n\n computed: {\n inputLength () {\n return this.internalInputValue.length;\n },\n\n htmlOutputFormat () {\n return RICH_TEXT_EDITOR_OUTPUT_FORMATS[2];\n },\n\n showingTextFormatButtons () {\n return this.showBoldButton || this.showItalicsButton || this.showStrikeButton || this.showUnderlineButton;\n },\n\n showingAlignmentButtons () {\n return this.showAlignLeftButton || this.showAlignCenterButton ||\n this.showAlignRightButton || this.showAlignJustifyButton;\n },\n\n showingListButtons () {\n return this.showListItemsButton || this.showOrderedListButton;\n },\n\n buttonGroups () {\n const individualButtonStacks = this.individualButtons.map(buttonData => ({\n key: buttonData.selector,\n buttonGroup: [buttonData],\n }));\n return [\n { key: 'new', buttonGroup: this.newButtons },\n { key: 'format', buttonGroup: this.textFormatButtons },\n { key: 'alignment', buttonGroup: this.alignmentButtons },\n { key: 'list', buttonGroup: this.listButtons },\n ...individualButtonStacks,\n ].filter(buttonGroupData => buttonGroupData.buttonGroup.length > 0);\n },\n\n newButtons () {\n return [\n { showBtn: this.showQuickRepliesButton, label: 'Quick reply', selector: 'quickReplies', icon: DtIconLightningBolt, dataQA: 'dt-editor-quick-replies-btn', tooltipMessage: 'Quick Reply', onClick: this.onQuickRepliesClick },\n ].filter(button => button.showBtn);\n },\n\n textFormatButtons () {\n return [\n { showBtn: this.showBoldButton, selector: 'bold', icon: DtIconBold, dataQA: 'dt-editor-bold-btn', tooltipMessage: 'Bold', onClick: this.onBoldTextToggle },\n { showBtn: this.showItalicsButton, selector: 'italic', icon: DtIconItalic, dataQA: 'dt-editor-italics-btn', tooltipMessage: 'Italics', onClick: this.onItalicTextToggle },\n { showBtn: this.showUnderlineButton, selector: 'underline', icon: DtIconUnderline, dataQA: 'dt-editor-underline-btn', tooltipMessage: 'Underline', onClick: this.onUnderlineTextToggle },\n { showBtn: this.showStrikeButton, selector: 'strike', icon: DtIconStrikethrough, dataQA: 'dt-editor-strike-btn', tooltipMessage: 'Strike', onClick: this.onStrikethroughTextToggle },\n ].filter(button => button.showBtn);\n },\n\n alignmentButtons () {\n return [\n { showBtn: this.showAlignLeftButton, selector: { textAlign: 'left' }, icon: DtIconAlignLeft, dataQA: 'dt-editor-align-left-btn', tooltipMessage: 'Align Left', onClick: () => this.onTextAlign('left') },\n { showBtn: this.showAlignCenterButton, selector: { textAlign: 'center' }, icon: DtIconAlignCenter, dataQA: 'dt-editor-align-center-btn', tooltipMessage: 'Align Center', onClick: () => this.onTextAlign('center') },\n { showBtn: this.showAlignRightButton, selector: { textAlign: 'right' }, icon: DtIconAlignRight, dataQA: 'dt-editor-align-right-btn', tooltipMessage: 'Align Right', onClick: () => this.onTextAlign('right') },\n { showBtn: this.showAlignJustifyButton, selector: { textAlign: 'justify' }, icon: DtIconAlignJustify, dataQA: 'dt-editor-align-justify-btn', tooltipMessage: 'Align Justify', onClick: () => this.onTextAlign('justify') },\n ].filter(button => button.showBtn);\n },\n\n listButtons () {\n return [\n { showBtn: this.showListItemsButton, selector: 'bulletList', icon: DtIconListBullet, dataQA: 'dt-editor-list-items-btn', tooltipMessage: 'Bullet List', onClick: this.onBulletListToggle },\n { showBtn: this.showOrderedListButton, selector: 'orderedList', icon: DtIconListOrdered, dataQA: 'dt-editor-ordered-list-items-btn', tooltipMessage: 'Ordered List', onClick: this.onOrderedListToggle },\n ].filter(button => button.showBtn);\n },\n\n individualButtons () {\n return [\n { showBtn: this.showQuoteButton, selector: 'blockquote', icon: DtIconQuote, dataQA: 'dt-editor-blockquote-btn', tooltipMessage: 'Quote', onClick: this.onBlockquoteToggle },\n { showBtn: this.showCodeBlockButton, selector: 'codeBlock', icon: DtIconCodeBlock, dataQA: 'dt-editor-code-block-btn', tooltipMessage: 'Code', onClick: this.onCodeBlockToggle },\n ].filter(button => button.showBtn);\n },\n\n linkButton () {\n return { showBtn: this.showAddLink.showAddLinkButton, selector: 'link', icon: DtIconLink2, dataQA: 'dt-editor-add-link-btn', tooltipMessage: 'Link', onClick: this.openLinkInput };\n },\n },\n\n watch: {\n value (newValue) {\n this.internalInputValue = newValue;\n },\n },\n\n methods: {\n onInputFocus (event) {\n event?.stopPropagation();\n },\n\n removeLink () {\n this.$refs.richTextEditor?.editor?.chain()?.focus()?.unsetLink()?.run();\n this.closeLinkInput();\n },\n\n setLink (event) {\n const editor = this.$refs.richTextEditor?.editor;\n event?.preventDefault();\n event?.stopPropagation();\n\n if (!this.linkInput) {\n // If link text is set to empty string,\n // remove any existing links.\n this.removeLink();\n return;\n }\n\n // Check if input matches any of the supported link formats\n const prefix = EDITOR_SUPPORTED_LINK_PROTOCOLS.find(prefixRegex => prefixRegex.test(this.linkInput));\n\n if (!prefix) {\n // If no matching pattern is found, prepend default prefix\n this.linkInput = `${EDITOR_DEFAULT_LINK_PREFIX}${this.linkInput}`;\n }\n\n const selection = editor?.view?.state?.selection;\n\n if (selection.anchor === selection.head) {\n // If no text has been selected, manually insert the link text.\n // Do not rely on link options set through DtRichTextEditor\n // component, because they clash with these and cause issues.\n editor\n .chain()\n .focus()\n .insertContentAt(\n selection.anchor,\n `<a class=\"${this.linkOptions.class}\" href=${this.linkInput}>${this.linkInput}</a>`,\n )\n .run();\n } else {\n // Set or edit the link\n editor\n .chain()\n .focus()\n .extendMarkRange('link')\n .setLink({ href: this.linkInput, class: this.linkOptions.class })\n .run();\n }\n\n this.closeLinkInput();\n },\n\n openLinkInput () {\n this.showLinkInput = true;\n },\n\n updateInput (openedInput) {\n if (!openedInput) {\n return this.closeLinkInput();\n }\n this.linkInput = this.$refs.richTextEditor?.editor?.getAttributes('link')?.href;\n },\n\n closeLinkInput () {\n this.showLinkInput = false;\n this.linkInput = '';\n this.$refs.richTextEditor.editor?.chain().focus();\n },\n\n onBoldTextToggle () {\n this.$refs.richTextEditor?.editor?.chain().focus().toggleBold().run();\n },\n\n onItalicTextToggle () {\n this.$refs.richTextEditor?.editor.chain().focus().toggleItalic().run();\n },\n\n onUnderlineTextToggle () {\n this.$refs.richTextEditor?.editor.chain().focus().toggleUnderline().run();\n },\n\n onStrikethroughTextToggle () {\n this.$refs.richTextEditor?.editor.chain().focus().toggleStrike().run();\n },\n\n onTextAlign (alignment) {\n if (this.$refs.richTextEditor?.editor?.isActive({ textAlign: alignment })) {\n // If this alignment type is already set here, unset it\n return this.$refs.richTextEditor?.editor.chain().focus().unsetTextAlign().run();\n }\n this.$refs.richTextEditor?.editor.chain().focus().setTextAlign(alignment).run();\n },\n\n onBulletListToggle () {\n this.$refs.richTextEditor?.editor.chain().focus().toggleBulletList().run();\n },\n\n onOrderedListToggle () {\n this.$refs.richTextEditor?.editor.chain().focus().toggleOrderedList().run();\n },\n\n onCodeBlockToggle () {\n this.$refs.richTextEditor?.editor.chain().focus().toggleCodeBlock().run();\n },\n\n onQuickRepliesClick () {\n this.$emit('quick-replies-click');\n },\n\n onBlockquoteToggle () {\n this.$refs.richTextEditor?.editor.chain().focus().toggleBlockquote().run();\n },\n\n onFocus (event) {\n this.hasFocus = true;\n this.$emit('focus', event);\n },\n\n onBlur (event) {\n this.hasFocus = false;\n this.$emit('blur', event);\n },\n\n onInput (event) {\n this.$emit('input', event);\n },\n\n },\n};\n</script>\n\n<style lang=\"less\">\n.dt-editor--top-bar-background {\n background-color: var(--dt-color-surface-secondary);\n}\n\n.dt-editor--button-group-divider {\n margin-left: var(--dt-space-400);\n height: calc(var(--dt-size-550) + var(--dt-size-300));\n width: var(--dt-size-100);\n background: var(--dt-color-border-subtle);\n}\n</style>\n"],"names":["editor","_createElementVNode","_createElementBlock","_createVNode","_Fragment","_renderList","_createBlock","_openBlock","_normalizeClass","_resolveDynamicComponent","_toDisplayString","_createTextVNode","_mergeProps"],"mappings":"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"}
1
+ {"version":3,"file":"editor.vue.js","sources":["../../../../recipes/conversation_view/editor/editor.vue"],"sourcesContent":["<!-- eslint-disable vue/no-restricted-class -->\n<template>\n <div\n data-qa=\"dt-editor\"\n role=\"presentation\"\n class=\"d-d-flex d-fd-column\"\n @click=\"$refs.richTextEditor.focusEditor()\"\n >\n <!-- Section for the top UI -->\n <dt-stack\n direction=\"row\"\n gap=\"450\"\n class=\"d-p8 dt-editor--top-bar-background\"\n >\n <dt-stack\n v-for=\"buttonGroup in buttonGroups\"\n :key=\"buttonGroup.key\"\n direction=\"row\"\n gap=\"300\"\n >\n <dt-tooltip\n v-for=\"button in buttonGroup.buttonGroup\"\n :key=\"`${buttonGroup.key}-${JSON.stringify(button.selector)}`\"\n :message=\"button.tooltipMessage\"\n placement=\"top\"\n >\n <template #anchor>\n <dt-button\n :data-qa=\"button.dataQA\"\n importance=\"clear\"\n kind=\"muted\"\n :active=\"$refs.richTextEditor?.editor?.isActive(button.selector)\"\n size=\"xs\"\n :aria-label=\"button.tooltipMessage\"\n :class=\"{ 'd-btn--icon-only': !button.label }\"\n @click=\"button.onClick()\"\n >\n <template #icon>\n <dt-icon\n :name=\"button.iconName\"\n size=\"200\"\n />\n </template>\n {{ button?.label }}\n </dt-button>\n </template>\n </dt-tooltip>\n <div class=\"dt-editor--button-group-divider\" />\n </dt-stack>\n <dt-stack\n v-if=\"linkButton.showBtn\"\n direction=\"row\"\n gap=\"300\"\n >\n <dt-popover\n :open=\"showLinkInput\"\n placement=\"bottom-start\"\n :visually-hidden-close=\"true\"\n :visually-hidden-close-label=\"'Close link input popover'\"\n data-qa=\"dt-editor-link-input-popover\"\n :show-close-button=\"false\"\n @click=\"onInputFocus\"\n @click.stop=\"onInputFocus\"\n @opened=\"updateInput\"\n >\n <template #anchor>\n <dt-tooltip\n :key=\"linkButton.key\"\n :message=\"linkButton.tooltipMessage\"\n placement=\"top\"\n >\n <template #anchor>\n <dt-button\n :data-qa=\"linkButton.dataQA\"\n importance=\"clear\"\n kind=\"muted\"\n class=\"d-ol-none\"\n :active=\"$refs.richTextEditor?.editor?.isActive(linkButton.selector)\"\n size=\"xs\"\n :aria-label=\"linkButton.tooltipMessage\"\n @click=\"linkButton.onClick()\"\n >\n <template #icon>\n <dt-icon\n :name=\"linkButton.iconName\"\n size=\"200\"\n class=\"d-fw-bold\"\n />\n </template>\n </dt-button>\n </template>\n </dt-tooltip>\n </template>\n\n <template #content>\n <span\n v-if=\"showAddLink.setLinkTitle.length > 0\"\n >\n {{ showAddLink.setLinkTitle }}\n </span>\n <dt-input\n v-model=\"linkInput\"\n :input-aria-label=\"showAddLink.setLinkInputAriaLabel\"\n data-qa=\"dt-editor-link-input\"\n :placeholder=\"setLinkPlaceholder\"\n input-wrapper-class=\"d-bgc-black-100 d-mt6 d-bar5 d-ba d-baw1 d-bc-black-300 d-py2 d-ol-none\"\n @click=\"onInputFocus\"\n @click.stop=\"onInputFocus\"\n @focus=\"onInputFocus\"\n @keydown.enter=\"setLink\"\n />\n </template>\n <template #footerContent>\n <div class=\"d-ml8 d-mr12\">\n <dt-button\n class=\"d-mx2\"\n :aria-label=\"removeLinkButton.ariaLabel\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"sm\"\n data-qa=\"dt-editor-remove-link-btn\"\n @click=\"removeLink\"\n >\n {{ removeLinkButton.label }}\n </dt-button>\n <dt-button\n class=\"d-mx2\"\n :aria-label=\"cancelSetLinkButton.ariaLabel\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"sm\"\n data-qa=\"dt-editor-set-link-cancel-btn\"\n @click=\"closeLinkInput\"\n >\n {{ cancelSetLinkButton.label }}\n </dt-button>\n <dt-button\n class=\"d-mx2\"\n size=\"sm\"\n :aria-label=\"confirmSetLinkButton.ariaLabel\"\n data-qa=\"dt-editor-set-link-confirm-btn\"\n @click=\"setLink\"\n >\n {{ confirmSetLinkButton.label }}\n </dt-button>\n </div>\n </template>\n </dt-popover>\n </dt-stack>\n </dt-stack>\n\n <!-- Some wrapper to restrict the height and show the scrollbar -->\n <div\n class=\"d-of-auto d-mx16 d-mt8 d-mb16 d-c-text\"\n :style=\"{ 'max-height': maxHeight }\"\n >\n <dt-rich-text-editor\n ref=\"richTextEditor\"\n v-model=\"internalInputValue\"\n data-qa=\"dt-rich-text-editor\"\n :editable=\"editable\"\n :input-aria-label=\"inputAriaLabel\"\n :input-class=\"`d-ml16 d-ol-none d-my6 ${inputClass}`\"\n :output-format=\"htmlOutputFormat\"\n :auto-focus=\"autoFocus\"\n :placeholder=\"placeholder\"\n :allow-line-breaks=\"true\"\n :link=\"true\"\n v-bind=\"$attrs\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @input=\"onInput($event)\"\n />\n </div>\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 {\n EDITOR_SUPPORTED_LINK_PROTOCOLS,\n EDITOR_DEFAULT_LINK_PREFIX,\n} from './editor_constants.js';\nimport { DtIcon } from '@/components/icon';\nimport { DtButton } from '@/components/button';\nimport { DtPopover } from '@/components/popover';\nimport { DtStack } from '@/components/stack';\nimport { DtInput } from '@/components/input';\nimport { DtTooltip } from '@/components/tooltip';\n\nexport default {\n name: 'DtRecipeEditor',\n\n components: {\n DtRichTextEditor,\n DtButton,\n DtIcon,\n DtPopover,\n DtStack,\n DtInput,\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 value: {\n type: [Object, String],\n default: '',\n },\n\n /**\n * Whether the input is editable\n */\n editable: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Descriptive label for the input element\n */\n inputAriaLabel: {\n type: String,\n required: true,\n default: '',\n },\n\n /**\n * Additional class name for the input element. Only accepts a String value\n * because this is passed to the editor via options. For multiple classes,\n * join them into one string, e.g. \"d-p8 d-hmx96\"\n */\n inputClass: {\n type: String,\n default: '',\n },\n\n /**\n * Whether the input should receive focus after the component has been\n * mounted. Either one of `start`, `end`, `all` or a Boolean or a Number.\n * - `start` Sets the focus to the beginning of the input\n * - `end` Sets the focus to the end of the input\n * - `all` Selects the whole contents of the input\n * - `Number` Sets the focus to a specific position in the input\n * - `true` Defaults to `start`\n * - `false` Disables autofocus\n * @values true, false, start, end, all, number\n */\n autoFocus: {\n type: [Boolean, String, Number],\n default: false,\n validator (autoFocus) {\n if (typeof autoFocus === 'string') {\n return RICH_TEXT_EDITOR_AUTOFOCUS_TYPES.includes(autoFocus);\n }\n return true;\n },\n },\n\n /**\n * Placeholder text\n */\n placeholder: {\n type: String,\n default: '',\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 /**\n * Confirm set link button defaults.\n */\n confirmSetLinkButton: {\n type: Object,\n default: () => ({ label: 'Confirm', ariaLabel: 'Confirm set link' }),\n },\n\n /**\n * Remove link button defaults.\n */\n removeLinkButton: {\n type: Object,\n default: () => ({ label: 'Remove', ariaLabel: 'Remove link' }),\n },\n\n /**\n * Cancel set link button defaults.\n */\n cancelSetLinkButton: {\n type: Object,\n default: () => ({ label: 'Cancel', ariaLabel: 'Cancel set link' }),\n },\n\n /**\n * Placeholder text for the set link input field\n */\n setLinkPlaceholder: {\n type: String,\n default: '',\n },\n\n /**\n * Show button to render text as bold\n */\n showBoldButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to render text in italics\n */\n showItalicsButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to underline text\n */\n showUnderlineButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to strike text\n */\n showStrikeButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to render list items\n */\n showListItemsButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to render ordered list items\n */\n showOrderedListButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to align text to the left\n */\n showAlignLeftButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to align text to the center\n */\n showAlignCenterButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to align text to the right\n */\n showAlignRightButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to justify text\n */\n showAlignJustifyButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to add quote format to text\n */\n showQuoteButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to add code block\n */\n showCodeBlockButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to handle quick replies\n */\n showQuickRepliesButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show add link default config.\n */\n showAddLink: {\n type: Object,\n default: () => ({\n showAddLinkButton: true,\n setLinkTitle: 'Add a link',\n setLinkInputAriaLabel: 'Input field to add link',\n }),\n },\n },\n\n emits: [\n /**\n * Native focus event\n * @event input\n * @type {String|JSON}\n */\n 'focus',\n\n /**\n * Native blur event\n * @event input\n * @type {String|JSON}\n */\n 'blur',\n\n /**\n * Native input event\n * @event input\n * @type {String|JSON}\n */\n 'input',\n\n /**\n * Quick replies button\n * pressed event\n * @event quick-replies-click\n */\n 'quick-replies-click',\n ],\n\n data () {\n return {\n internalInputValue: this.value, // internal input content\n hasFocus: false,\n\n linkOptions: {\n class: 'd-link d-c-text d-d-inline-block',\n },\n\n showLinkInput: false,\n linkInput: '',\n };\n },\n\n computed: {\n inputLength () {\n return this.internalInputValue.length;\n },\n\n htmlOutputFormat () {\n return RICH_TEXT_EDITOR_OUTPUT_FORMATS[2];\n },\n\n showingTextFormatButtons () {\n return this.showBoldButton || this.showItalicsButton || this.showStrikeButton || this.showUnderlineButton;\n },\n\n showingAlignmentButtons () {\n return this.showAlignLeftButton || this.showAlignCenterButton ||\n this.showAlignRightButton || this.showAlignJustifyButton;\n },\n\n showingListButtons () {\n return this.showListItemsButton || this.showOrderedListButton;\n },\n\n buttonGroups () {\n const individualButtonStacks = this.individualButtons.map(buttonData => ({\n key: buttonData.selector,\n buttonGroup: [buttonData],\n }));\n return [\n { key: 'new', buttonGroup: this.newButtons },\n { key: 'format', buttonGroup: this.textFormatButtons },\n { key: 'alignment', buttonGroup: this.alignmentButtons },\n { key: 'list', buttonGroup: this.listButtons },\n ...individualButtonStacks,\n ].filter(buttonGroupData => buttonGroupData.buttonGroup.length > 0);\n },\n\n newButtons () {\n return [\n { showBtn: this.showQuickRepliesButton, label: 'Quick reply', selector: 'quickReplies', iconName: 'lightning-bolt', dataQA: 'dt-editor-quick-replies-btn', tooltipMessage: 'Quick Reply', onClick: this.onQuickRepliesClick },\n ].filter(button => button.showBtn);\n },\n\n textFormatButtons () {\n return [\n { showBtn: this.showBoldButton, selector: 'bold', iconName: 'bold', dataQA: 'dt-editor-bold-btn', tooltipMessage: 'Bold', onClick: this.onBoldTextToggle },\n { showBtn: this.showItalicsButton, selector: 'italic', iconName: 'italic', dataQA: 'dt-editor-italics-btn', tooltipMessage: 'Italics', onClick: this.onItalicTextToggle },\n { showBtn: this.showUnderlineButton, selector: 'underline', iconName: 'underline', dataQA: 'dt-editor-underline-btn', tooltipMessage: 'Underline', onClick: this.onUnderlineTextToggle },\n { showBtn: this.showStrikeButton, selector: 'strike', iconName: 'strikethrough', dataQA: 'dt-editor-strike-btn', tooltipMessage: 'Strike', onClick: this.onStrikethroughTextToggle },\n ].filter(button => button.showBtn);\n },\n\n alignmentButtons () {\n return [\n { showBtn: this.showAlignLeftButton, selector: { textAlign: 'left' }, iconName: 'align-left', dataQA: 'dt-editor-align-left-btn', tooltipMessage: 'Align Left', onClick: () => this.onTextAlign('left') },\n { showBtn: this.showAlignCenterButton, selector: { textAlign: 'center' }, iconName: 'align-center', dataQA: 'dt-editor-align-center-btn', tooltipMessage: 'Align Center', onClick: () => this.onTextAlign('center') },\n { showBtn: this.showAlignRightButton, selector: { textAlign: 'right' }, iconName: 'align-right', dataQA: 'dt-editor-align-right-btn', tooltipMessage: 'Align Right', onClick: () => this.onTextAlign('right') },\n { showBtn: this.showAlignJustifyButton, selector: { textAlign: 'justify' }, iconName: 'align-justify', dataQA: 'dt-editor-align-justify-btn', tooltipMessage: 'Align Justify', onClick: () => this.onTextAlign('justify') },\n ].filter(button => button.showBtn);\n },\n\n listButtons () {\n return [\n { showBtn: this.showListItemsButton, selector: 'bulletList', iconName: 'list-bullet', dataQA: 'dt-editor-list-items-btn', tooltipMessage: 'Bullet List', onClick: this.onBulletListToggle },\n { showBtn: this.showOrderedListButton, selector: 'orderedList', iconName: 'list-ordered', dataQA: 'dt-editor-ordered-list-items-btn', tooltipMessage: 'Ordered List', onClick: this.onOrderedListToggle },\n ].filter(button => button.showBtn);\n },\n\n individualButtons () {\n return [\n { showBtn: this.showQuoteButton, selector: 'blockquote', iconName: 'quote', dataQA: 'dt-editor-blockquote-btn', tooltipMessage: 'Quote', onClick: this.onBlockquoteToggle },\n { showBtn: this.showCodeBlockButton, selector: 'codeBlock', iconName: 'code-block', dataQA: 'dt-editor-code-block-btn', tooltipMessage: 'Code', onClick: this.onCodeBlockToggle },\n ].filter(button => button.showBtn);\n },\n\n linkButton () {\n return { showBtn: this.showAddLink.showAddLinkButton, selector: 'link', iconName: 'link-2', dataQA: 'dt-editor-add-link-btn', tooltipMessage: 'Link', onClick: this.openLinkInput };\n },\n },\n\n watch: {\n value (newValue) {\n this.internalInputValue = newValue;\n },\n },\n\n methods: {\n onInputFocus (event) {\n event?.stopPropagation();\n },\n\n removeLink () {\n this.$refs.richTextEditor?.editor?.chain()?.focus()?.unsetLink()?.run();\n this.closeLinkInput();\n },\n\n setLink (event) {\n const editor = this.$refs.richTextEditor?.editor;\n event?.preventDefault();\n event?.stopPropagation();\n\n if (!this.linkInput) {\n // If link text is set to empty string,\n // remove any existing links.\n this.removeLink();\n return;\n }\n\n // Check if input matches any of the supported link formats\n const prefix = EDITOR_SUPPORTED_LINK_PROTOCOLS.find(prefixRegex => prefixRegex.test(this.linkInput));\n\n if (!prefix) {\n // If no matching pattern is found, prepend default prefix\n this.linkInput = `${EDITOR_DEFAULT_LINK_PREFIX}${this.linkInput}`;\n }\n\n const selection = editor?.view?.state?.selection;\n\n if (selection.anchor === selection.head) {\n // If no text has been selected, manually insert the link text.\n // Do not rely on link options set through DtRichTextEditor\n // component, because they clash with these and cause issues.\n editor\n .chain()\n .focus()\n .insertContentAt(\n selection.anchor,\n `<a class=\"${this.linkOptions.class}\" href=${this.linkInput}>${this.linkInput}</a>`,\n )\n .run();\n } else {\n // Set or edit the link\n editor\n .chain()\n .focus()\n .extendMarkRange('link')\n .setLink({ href: this.linkInput, class: this.linkOptions.class })\n .run();\n }\n\n this.closeLinkInput();\n },\n\n openLinkInput () {\n this.showLinkInput = true;\n },\n\n updateInput (openedInput) {\n if (!openedInput) {\n return this.closeLinkInput();\n }\n this.linkInput = this.$refs.richTextEditor?.editor?.getAttributes('link')?.href;\n },\n\n closeLinkInput () {\n this.showLinkInput = false;\n this.linkInput = '';\n this.$refs.richTextEditor.editor?.chain().focus();\n },\n\n onBoldTextToggle () {\n this.$refs.richTextEditor?.editor?.chain().focus().toggleBold().run();\n },\n\n onItalicTextToggle () {\n this.$refs.richTextEditor?.editor.chain().focus().toggleItalic().run();\n },\n\n onUnderlineTextToggle () {\n this.$refs.richTextEditor?.editor.chain().focus().toggleUnderline().run();\n },\n\n onStrikethroughTextToggle () {\n this.$refs.richTextEditor?.editor.chain().focus().toggleStrike().run();\n },\n\n onTextAlign (alignment) {\n if (this.$refs.richTextEditor?.editor?.isActive({ textAlign: alignment })) {\n // If this alignment type is already set here, unset it\n return this.$refs.richTextEditor?.editor.chain().focus().unsetTextAlign().run();\n }\n this.$refs.richTextEditor?.editor.chain().focus().setTextAlign(alignment).run();\n },\n\n onBulletListToggle () {\n this.$refs.richTextEditor?.editor.chain().focus().toggleBulletList().run();\n },\n\n onOrderedListToggle () {\n this.$refs.richTextEditor?.editor.chain().focus().toggleOrderedList().run();\n },\n\n onCodeBlockToggle () {\n this.$refs.richTextEditor?.editor.chain().focus().toggleCodeBlock().run();\n },\n\n onQuickRepliesClick () {\n this.$emit('quick-replies-click');\n },\n\n onBlockquoteToggle () {\n this.$refs.richTextEditor?.editor.chain().focus().toggleBlockquote().run();\n },\n\n onFocus (event) {\n this.hasFocus = true;\n this.$emit('focus', event);\n },\n\n onBlur (event) {\n this.hasFocus = false;\n this.$emit('blur', event);\n },\n\n onInput (event) {\n this.$emit('input', event);\n },\n\n },\n};\n</script>\n\n<style lang=\"less\">\n.dt-editor--top-bar-background {\n background-color: var(--dt-color-surface-secondary);\n}\n\n.dt-editor--button-group-divider {\n margin-left: var(--dt-space-400);\n height: calc(var(--dt-size-550) + var(--dt-size-300));\n width: var(--dt-size-100);\n background: var(--dt-color-border-subtle);\n}\n</style>\n"],"names":["editor","_createElementVNode","_createElementBlock","_createVNode","_Fragment","_renderList","_createBlock","_openBlock","_normalizeClass","_toDisplayString","_createTextVNode","_mergeProps"],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  const feed_item_row_constants = require("./feed_item_row_constants.cjs");
3
3
  const modal = require("../../../common/mixins/modal.cjs");
4
- const vue3 = require("@dialpad/dialtone-icons/vue3");
5
4
  const vue = require("vue");
6
5
  ;/* empty css */
7
6
  const _pluginVue_exportHelper = require("../../../_virtual/_plugin-vue_export-helper.cjs");
@@ -15,8 +14,7 @@ const _sfc_main = {
15
14
  DtAvatar: avatar,
16
15
  DtLazyShow: lazy_show,
17
16
  DtListItem: list_item,
18
- DtBadge: badge,
19
- DtIconUser: vue3.DtIconUser
17
+ DtBadge: badge
20
18
  },
21
19
  mixins: [modal],
22
20
  inheritAttrs: false,
@@ -142,6 +140,9 @@ const _sfc_main = {
142
140
  }
143
141
  };
144
142
  },
143
+ iconName() {
144
+ return this.noInitials ? "user" : null;
145
+ },
145
146
  listItemClasses() {
146
147
  return [
147
148
  "dt-feed-item-row",
@@ -210,7 +211,6 @@ const _hoisted_10 = {
210
211
  class: "dt-feed-item-row__menu"
211
212
  };
212
213
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
213
- const _component_dt_icon_user = vue.resolveComponent("dt-icon-user");
214
214
  const _component_dt_avatar = vue.resolveComponent("dt-avatar");
215
215
  const _component_dt_badge = vue.resolveComponent("dt-badge");
216
216
  const _component_dt_lazy_show = vue.resolveComponent("dt-lazy-show");
@@ -229,16 +229,9 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
229
229
  "full-name": $props.displayName,
230
230
  "image-src": $props.avatarImageUrl,
231
231
  "image-alt": "",
232
+ "icon-name": $options.iconName,
232
233
  seed: $props.avatarSeed
233
- }, vue.createSlots({ _: 2 }, [
234
- $props.noInitials ? {
235
- name: "icon",
236
- fn: vue.withCtx(({ iconSize }) => [
237
- vue.createVNode(_component_dt_icon_user, { size: iconSize }, null, 8, ["size"])
238
- ]),
239
- key: "0"
240
- } : void 0
241
- ]), 1032, ["full-name", "image-src", "seed"])
234
+ }, null, 8, ["full-name", "image-src", "icon-name", "seed"])
242
235
  ], true)
243
236
  ])) : vue.createCommentVNode("", true),
244
237
  !$props.showHeader ? vue.withDirectives((vue.openBlock(), vue.createElementBlock("span", {
@@ -294,6 +287,6 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
294
287
  _: 3
295
288
  }, 16, ["class"]);
296
289
  }
297
- const feed_item_row = /* @__PURE__ */ _pluginVue_exportHelper(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-731d32a0"]]);
290
+ const feed_item_row = /* @__PURE__ */ _pluginVue_exportHelper(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-418199f0"]]);
298
291
  module.exports = feed_item_row;
299
292
  //# sourceMappingURL=feed_item_row.vue.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"feed_item_row.vue.cjs","sources":["../../../../recipes/conversation_view/feed_item_row/feed_item_row.vue"],"sourcesContent":["<template>\n <dt-list-item\n ref=\"FeedItemRef\"\n navigation-type=\"none\"\n v-bind=\"$attrs\"\n :class=\"['dt-feed-item-row', listItemClasses]\"\n data-qa=\"dt-feed-item-row\"\n v-on=\"feedListeners\"\n >\n <!-- Avatar or time -->\n <template #left>\n <div\n v-if=\"showHeader\"\n class=\"dt-feed-item-row__avatar-container\"\n >\n <!-- @slot Slot to contain the avatar, overrides avatar props. -->\n <slot\n name=\"avatar\"\n >\n <dt-avatar\n :full-name=\"displayName\"\n :image-src=\"avatarImageUrl\"\n image-alt=\"\"\n :seed=\"avatarSeed\"\n >\n <template\n v-if=\"noInitials\"\n #icon=\"{ iconSize }\"\n >\n <dt-icon-user\n :size=\"iconSize\"\n />\n </template>\n </dt-avatar>\n </slot>\n </div>\n <!-- show time instead of avatar when headers not present -->\n <span\n v-if=\"!showHeader\"\n v-show=\"isActive\"\n class=\"dt-feed-item-row__left-time\"\n data-qa=\"dt-feed-item-row--left-time\"\n >\n {{ shortTime }}\n </span>\n </template>\n\n <article class=\"dt-feed-item-row__content\">\n <!-- Feed Item -->\n <div\n v-if=\"showHeader\"\n data-qa=\"dt-feed-item-row--header\"\n class=\"dt-feed-item-row__header\"\n >\n <p class=\"dt-feed-item-row__header__name\">\n {{ displayName }}\n </p>\n <time\n class=\"dt-feed-item-row__header__time\"\n >\n {{ time }}\n </time>\n <dt-badge\n v-if=\"labelText\"\n :text=\"labelText\"\n />\n </div>\n <!-- @slot Default content slot for feed item row -->\n <span\n data-qa=\"dt-feed-item-row--content\"\n >\n <slot />\n </span>\n <div\n v-if=\"$slots.attachment\"\n data-qa=\"dt-feed-item-row--attachment\"\n class=\"dt-feed-item-row__attachment\"\n >\n <slot name=\"attachment\" />\n </div>\n </article>\n\n <template #bottom>\n <div\n v-if=\"$slots.reactions\"\n class=\"dt-feed-item-row__reactions\"\n data-qa=\"dt-feed-item-row--reactions\"\n >\n <!-- @slot Slot for reactions row component -->\n <slot name=\"reactions\" />\n </div>\n <div\n v-if=\"$slots.threading\"\n class=\"dt-feed-item-row__threading\"\n >\n <!-- @slot Slot for threading row component -->\n <slot name=\"threading\" />\n </div>\n </template>\n\n <!-- Action menu -->\n <template #right>\n <div\n v-show=\"isActive\"\n data-qa=\"dt-feed-item-row--menu\"\n class=\"dt-feed-item-row__menu\"\n >\n <dt-lazy-show\n :appear=\"true\"\n transition=\"fade\"\n :show=\"isActive\"\n >\n <!-- @slot Slot for actions hover menu component -->\n <slot name=\"menu\" />\n </dt-lazy-show>\n </div>\n </template>\n </dt-list-item>\n</template>\n\n<script>\n/* eslint-disable max-lines */\nimport { DEFAULT_FEED_ROW_STATE, FEED_ROW_STATE_BACKGROUND_COLOR } from './feed_item_row_constants.js';\nimport { DtAvatar } from '@/components/avatar';\nimport { DtLazyShow } from '@/components/lazy_show';\nimport { DtListItem } from '@/components/list_item';\nimport { DtBadge } from '@/components/badge';\nimport Modal from '@/common/mixins/modal';\nimport { DtIconUser } from '@dialpad/dialtone-icons/vue3';\n\nexport default {\n name: 'DtRecipeFeedItemRow',\n\n components: {\n DtAvatar,\n DtLazyShow,\n DtListItem,\n DtBadge,\n DtIconUser,\n },\n\n mixins: [Modal],\n\n inheritAttrs: false,\n\n props: {\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 * Show avatar, show header text or dont show left time and vice versa\n */\n showHeader: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Optional avatar image url.\n * If not provided it will use extracted initials from displayName.\n */\n avatarImageUrl: {\n type: String,\n default: '',\n },\n\n /**\n * The display name of the sender\n */\n displayName: {\n type: String,\n default: '',\n },\n\n /**\n * Initials will never be shown. Instead it will show a \"User\" icon.\n */\n noInitials: {\n type: Boolean,\n default: false,\n },\n\n /**\n * time string displayed as is.\n * Shown on the header when showHeader is true\n */\n time: {\n type: String,\n default: '',\n },\n\n /**\n * short time string without AM/PM displayed as is.\n * Shown on the left of feed item when showHeader is false and isActive is true\n */\n shortTime: {\n type: String,\n default: '',\n },\n\n /**\n * A label displayed next to the displayName. Will not show if empty.\n */\n labelText: {\n type: String,\n default: '',\n },\n\n /**\n * displays a darkened background on the row.\n */\n isActive: {\n type: Boolean,\n default: false,\n },\n\n /**\n * state for the feed item row. Can be normal, searched & error\n */\n state: {\n type: String,\n default: DEFAULT_FEED_ROW_STATE,\n validator: state => Object.keys(FEED_ROW_STATE_BACKGROUND_COLOR).includes(state),\n },\n },\n\n emits: [\n /**\n * Fires when hovered over feed row\n *\n * @event hover\n * @type {Boolean}\n */\n 'hover',\n\n /**\n * Fires when focused over feed row\n *\n * @event focus\n * @type {Boolean}\n */\n 'focus',\n\n /**\n * Key down event\n *\n * @event keydown\n * @type {KeyboardEvent}\n */\n 'keydown',\n ],\n\n data () {\n return {\n transitionActive: false,\n };\n },\n\n computed: {\n feedListeners () {\n return {\n mouseenter: () => this.setHover(true),\n mouseleave: () => this.setHover(false),\n focusin: () => this.setFocus(true),\n focusout: () => this.setFocus(false),\n transitionend: () => this.transitionComplete(),\n keydown: event => {\n switch (event.code) {\n case 'Tab':\n this.trapFocus(event);\n break;\n }\n this.$emit('keydown', event);\n },\n };\n },\n\n listItemClasses () {\n return [\n 'dt-feed-item-row',\n { 'dt-feed-item-row--active': this.isActive && this.state === DEFAULT_FEED_ROW_STATE },\n { 'dt-feed-item-row--state-transition': this.transitionActive },\n FEED_ROW_STATE_BACKGROUND_COLOR[this.state],\n\n ];\n },\n },\n\n watch: {\n state: {\n immediate: true,\n handler: function (newState, oldState) {\n if (newState !== DEFAULT_FEED_ROW_STATE) {\n this.transitionActive = true;\n }\n },\n },\n },\n\n methods: {\n transitionComplete () {\n if (this.state === DEFAULT_FEED_ROW_STATE) {\n this.transitionActive = false;\n }\n },\n\n trapFocus (e) {\n this.focusTrappedTabPress(e);\n },\n\n setFocus (bool) {\n this.$emit('focus', bool);\n },\n\n setHover (bool) {\n this.$emit('hover', bool);\n },\n },\n};\n</script>\n\n<style lang=\"less\" scoped>\n.dt-feed-item-row {\n\n width: var(--dt-size-100-percent);\n box-sizing: border-box;\n position: relative;\n padding: var(--dt-space-300) var(--dt-space-500);\n\n &:focus-visible {\n box-shadow: var(--dt-shadow-focus-inset);\n }\n\n &--state-searched {\n background-color: var(--dt-color-surface-warning-subtle);\n }\n\n &--state-error {\n background-color: var(--dt-color-surface-critical-subtle);\n }\n\n &--active {\n background-color: var(--dt-color-surface-secondary-opaque);\n }\n\n &--state-transition {\n transition-duration: 2s;\n transition-delay: 0s;\n transition-timing-function: var(--ttf-in-out);\n transition-property: background-color;\n }\n\n &__avatar-container {\n padding-top: var(--dt-space-300);\n padding-bottom: var(--dt-space-300);\n }\n\n &__content {\n padding-left: var(--dt-space-300);\n }\n\n &__attachment {\n padding-top: var(--dt-space-200);\n padding-bottom: var(--dt-space-300);\n\n &:deep(.dt-feed-item-row__image) {\n border: var(--dt-color-border-subtle) solid var(--dt-size-border-100);\n border-radius: var(--dt-size-radius-400);\n display: block;\n max-width: 30rem;\n max-height: 30rem;\n min-width: 5.6rem;\n min-height: 5.6rem;\n }\n\n &:deep(.dt-feed-item-row__video) {\n display: block;\n height: 25.0rem;\n }\n }\n\n &__header {\n display: flex;\n align-items: baseline;\n flex-wrap: wrap;\n gap: var(--dt-space-300);\n font-size: var(--dt-font-size-200);\n line-height: var(--dt-font-line-height-300);\n\n &__name {\n font-weight: var(--dt-font-weight-bold);\n }\n\n &__time {\n font-size: var(--dt-font-size-100);\n color: var(--dt-color-foreground-tertiary);\n flex-shrink: 0;\n }\n }\n\n &__reactions {\n display: flex;\n flex-wrap: wrap;\n padding-top: var(--dt-space-200);\n padding-bottom: var(--dt-space-200);\n padding-left: var(--dt-space-300);\n }\n\n &__threading {\n padding-top: var(--dt-space-200);\n padding-bottom: var(--dt-space-200);\n }\n\n &__left-time {\n color: var(--dt-color-foreground-tertiary);\n font-size: var(--dt-font-size-100);\n font-weight: var(--dt-font-weight-normal);\n vertical-align: middle;\n white-space: nowrap;\n }\n\n &__menu {\n position: absolute;\n top: var(--dt-space-550-negative);\n right: var(--dt-space-450);\n }\n\n &:deep(> .dt-item-layout) {\n font: var(--dt-typography-body-md-compact);\n min-height: initial;\n padding: 0px;\n }\n\n &:deep(> .dt-item-layout > .dt-item-layout--left) {\n align-self: flex-start;\n text-align: end;\n display: block;\n padding-right: var(--dt-space-300);\n padding-left: var(--dt-space-0);\n // min-width = avatar width + padding\n min-width: calc(var(--dt-space-600) + var(--dt-space-300));\n }\n\n &:deep(> .dt-item-layout > .dt-item-layout--right) {\n padding: 0;\n min-width: initial;\n }\n\n &:deep(> .dt-item-layout > .dt-item-layout--content > .dt-item-layout--bottom) {\n display: flex;\n flex-direction: column;\n margin-top: 0;\n }\n}\n</style>\n"],"names":["DtAvatar","DtLazyShow","DtListItem","DtBadge","DtIconUser","Modal","DEFAULT_FEED_ROW_STATE","FEED_ROW_STATE_BACKGROUND_COLOR","_openBlock","_createBlock","_mergeProps","_toHandlers","_createElementBlock","_renderSlot","_createVNode","_withCtx","_withDirectives","_createElementVNode","_toDisplayString"],"mappings":"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"}
1
+ {"version":3,"file":"feed_item_row.vue.cjs","sources":["../../../../recipes/conversation_view/feed_item_row/feed_item_row.vue"],"sourcesContent":["<template>\n <dt-list-item\n ref=\"FeedItemRef\"\n navigation-type=\"none\"\n v-bind=\"$attrs\"\n :class=\"['dt-feed-item-row', listItemClasses]\"\n data-qa=\"dt-feed-item-row\"\n v-on=\"feedListeners\"\n >\n <!-- Avatar or time -->\n <template #left>\n <div\n v-if=\"showHeader\"\n class=\"dt-feed-item-row__avatar-container\"\n >\n <!-- @slot Slot to contain the avatar, overrides avatar props. -->\n <slot\n name=\"avatar\"\n >\n <dt-avatar\n :full-name=\"displayName\"\n :image-src=\"avatarImageUrl\"\n image-alt=\"\"\n :icon-name=\"iconName\"\n :seed=\"avatarSeed\"\n />\n </slot>\n </div>\n <!-- show time instead of avatar when headers not present -->\n <span\n v-if=\"!showHeader\"\n v-show=\"isActive\"\n class=\"dt-feed-item-row__left-time\"\n data-qa=\"dt-feed-item-row--left-time\"\n >\n {{ shortTime }}\n </span>\n </template>\n\n <article class=\"dt-feed-item-row__content\">\n <!-- Feed Item -->\n <div\n v-if=\"showHeader\"\n data-qa=\"dt-feed-item-row--header\"\n class=\"dt-feed-item-row__header\"\n >\n <p class=\"dt-feed-item-row__header__name\">\n {{ displayName }}\n </p>\n <time\n class=\"dt-feed-item-row__header__time\"\n >\n {{ time }}\n </time>\n <dt-badge\n v-if=\"labelText\"\n :text=\"labelText\"\n />\n </div>\n <!-- @slot Default content slot for feed item row -->\n <span\n data-qa=\"dt-feed-item-row--content\"\n >\n <slot />\n </span>\n <div\n v-if=\"$slots.attachment\"\n data-qa=\"dt-feed-item-row--attachment\"\n class=\"dt-feed-item-row__attachment\"\n >\n <slot name=\"attachment\" />\n </div>\n </article>\n\n <template #bottom>\n <div\n v-if=\"$slots.reactions\"\n class=\"dt-feed-item-row__reactions\"\n data-qa=\"dt-feed-item-row--reactions\"\n >\n <!-- @slot Slot for reactions row component -->\n <slot name=\"reactions\" />\n </div>\n <div\n v-if=\"$slots.threading\"\n class=\"dt-feed-item-row__threading\"\n >\n <!-- @slot Slot for threading row component -->\n <slot name=\"threading\" />\n </div>\n </template>\n\n <!-- Action menu -->\n <template #right>\n <div\n v-show=\"isActive\"\n data-qa=\"dt-feed-item-row--menu\"\n class=\"dt-feed-item-row__menu\"\n >\n <dt-lazy-show\n :appear=\"true\"\n transition=\"fade\"\n :show=\"isActive\"\n >\n <!-- @slot Slot for actions hover menu component -->\n <slot name=\"menu\" />\n </dt-lazy-show>\n </div>\n </template>\n </dt-list-item>\n</template>\n\n<script>\n/* eslint-disable max-lines */\nimport { DEFAULT_FEED_ROW_STATE, FEED_ROW_STATE_BACKGROUND_COLOR } from './feed_item_row_constants.js';\nimport { DtAvatar } from '@/components/avatar';\nimport { DtLazyShow } from '@/components/lazy_show';\nimport { DtListItem } from '@/components/list_item';\nimport { DtBadge } from '@/components/badge';\nimport Modal from '@/common/mixins/modal';\n\nexport default {\n name: 'DtRecipeFeedItemRow',\n\n components: {\n DtAvatar,\n DtLazyShow,\n DtListItem,\n DtBadge,\n },\n\n mixins: [Modal],\n\n inheritAttrs: false,\n\n props: {\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 * Show avatar, show header text or dont show left time and vice versa\n */\n showHeader: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Optional avatar image url.\n * If not provided it will use extracted initials from displayName.\n */\n avatarImageUrl: {\n type: String,\n default: '',\n },\n\n /**\n * The display name of the sender\n */\n displayName: {\n type: String,\n default: '',\n },\n\n /**\n * Initials will never be shown. Instead it will show a \"User\" icon.\n */\n noInitials: {\n type: Boolean,\n default: false,\n },\n\n /**\n * time string displayed as is.\n * Shown on the header when showHeader is true\n */\n time: {\n type: String,\n default: '',\n },\n\n /**\n * short time string without AM/PM displayed as is.\n * Shown on the left of feed item when showHeader is false and isActive is true\n */\n shortTime: {\n type: String,\n default: '',\n },\n\n /**\n * A label displayed next to the displayName. Will not show if empty.\n */\n labelText: {\n type: String,\n default: '',\n },\n\n /**\n * displays a darkened background on the row.\n */\n isActive: {\n type: Boolean,\n default: false,\n },\n\n /**\n * state for the feed item row. Can be normal, searched & error\n */\n state: {\n type: String,\n default: DEFAULT_FEED_ROW_STATE,\n validator: state => Object.keys(FEED_ROW_STATE_BACKGROUND_COLOR).includes(state),\n },\n },\n\n emits: [\n /**\n * Fires when hovered over feed row\n *\n * @event hover\n * @type {Boolean}\n */\n 'hover',\n\n /**\n * Fires when focused over feed row\n *\n * @event focus\n * @type {Boolean}\n */\n 'focus',\n\n /**\n * Key down event\n *\n * @event keydown\n * @type {KeyboardEvent}\n */\n 'keydown',\n ],\n\n data () {\n return {\n transitionActive: false,\n };\n },\n\n computed: {\n feedListeners () {\n return {\n mouseenter: () => this.setHover(true),\n mouseleave: () => this.setHover(false),\n focusin: () => this.setFocus(true),\n focusout: () => this.setFocus(false),\n transitionend: () => this.transitionComplete(),\n keydown: event => {\n switch (event.code) {\n case 'Tab':\n this.trapFocus(event);\n break;\n }\n this.$emit('keydown', event);\n },\n };\n },\n\n iconName () {\n return this.noInitials ? 'user' : null;\n },\n\n listItemClasses () {\n return [\n 'dt-feed-item-row',\n { 'dt-feed-item-row--active': this.isActive && this.state === DEFAULT_FEED_ROW_STATE },\n { 'dt-feed-item-row--state-transition': this.transitionActive },\n FEED_ROW_STATE_BACKGROUND_COLOR[this.state],\n\n ];\n },\n },\n\n watch: {\n state: {\n immediate: true,\n handler: function (newState, oldState) {\n if (newState !== DEFAULT_FEED_ROW_STATE) {\n this.transitionActive = true;\n }\n },\n },\n },\n\n methods: {\n transitionComplete () {\n if (this.state === DEFAULT_FEED_ROW_STATE) {\n this.transitionActive = false;\n }\n },\n\n trapFocus (e) {\n this.focusTrappedTabPress(e);\n },\n\n setFocus (bool) {\n this.$emit('focus', bool);\n },\n\n setHover (bool) {\n this.$emit('hover', bool);\n },\n },\n};\n</script>\n\n<style lang=\"less\" scoped>\n.dt-feed-item-row {\n\n width: var(--dt-size-100-percent);\n box-sizing: border-box;\n position: relative;\n padding: var(--dt-space-300) var(--dt-space-500);\n\n &:focus-visible {\n box-shadow: var(--dt-shadow-focus-inset);\n }\n\n &--state-searched {\n background-color: var(--dt-color-surface-warning-subtle);\n }\n\n &--state-error {\n background-color: var(--dt-color-surface-critical-subtle);\n }\n\n &--active {\n background-color: var(--dt-color-surface-secondary-opaque);\n }\n\n &--state-transition {\n transition-duration: 2s;\n transition-delay: 0s;\n transition-timing-function: var(--ttf-in-out);\n transition-property: background-color;\n }\n\n &__avatar-container {\n padding-top: var(--dt-space-300);\n padding-bottom: var(--dt-space-300);\n }\n\n &__content {\n padding-left: var(--dt-space-300);\n }\n\n &__attachment {\n padding-top: var(--dt-space-200);\n padding-bottom: var(--dt-space-300);\n\n &:deep(.dt-feed-item-row__image) {\n border: var(--dt-color-border-subtle) solid var(--dt-size-border-100);\n border-radius: var(--dt-size-radius-400);\n display: block;\n max-width: 30rem;\n max-height: 30rem;\n min-width: 5.6rem;\n min-height: 5.6rem;\n }\n\n &:deep(.dt-feed-item-row__video) {\n display: block;\n height: 25.0rem;\n }\n }\n\n &__header {\n display: flex;\n align-items: baseline;\n flex-wrap: wrap;\n gap: var(--dt-space-300);\n font-size: var(--dt-font-size-200);\n line-height: var(--dt-font-line-height-300);\n\n &__name {\n font-weight: var(--dt-font-weight-bold);\n }\n\n &__time {\n font-size: var(--dt-font-size-100);\n color: var(--dt-color-foreground-tertiary);\n flex-shrink: 0;\n }\n }\n\n &__reactions {\n display: flex;\n flex-wrap: wrap;\n padding-top: var(--dt-space-200);\n padding-bottom: var(--dt-space-200);\n padding-left: var(--dt-space-300);\n }\n\n &__threading {\n padding-top: var(--dt-space-200);\n padding-bottom: var(--dt-space-200);\n }\n\n &__left-time {\n color: var(--dt-color-foreground-tertiary);\n font-size: var(--dt-font-size-100);\n font-weight: var(--dt-font-weight-normal);\n vertical-align: middle;\n white-space: nowrap;\n }\n\n &__menu {\n position: absolute;\n top: var(--dt-space-550-negative);\n right: var(--dt-space-450);\n }\n\n &:deep(> .dt-item-layout) {\n font: var(--dt-typography-body-md-compact);\n min-height: initial;\n padding: 0px;\n }\n\n &:deep(> .dt-item-layout > .dt-item-layout--left) {\n align-self: flex-start;\n text-align: end;\n display: block;\n padding-right: var(--dt-space-300);\n padding-left: var(--dt-space-0);\n // min-width = avatar width + padding\n min-width: calc(var(--dt-space-600) + var(--dt-space-300));\n }\n\n &:deep(> .dt-item-layout > .dt-item-layout--right) {\n padding: 0;\n min-width: initial;\n }\n\n &:deep(> .dt-item-layout > .dt-item-layout--content > .dt-item-layout--bottom) {\n display: flex;\n flex-direction: column;\n margin-top: 0;\n }\n}\n</style>\n"],"names":["DtAvatar","DtLazyShow","DtListItem","DtBadge","Modal","DEFAULT_FEED_ROW_STATE","FEED_ROW_STATE_BACKGROUND_COLOR","_openBlock","_createBlock","_mergeProps","_toHandlers","_createElementBlock","_renderSlot","_createVNode","_withDirectives","_createElementVNode","_toDisplayString"],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  import { DEFAULT_FEED_ROW_STATE, FEED_ROW_STATE_BACKGROUND_COLOR } from "./feed_item_row_constants.js";
2
2
  import Modal from "../../../common/mixins/modal.js";
3
- import { DtIconUser } from "@dialpad/dialtone-icons/vue3";
4
- import { resolveComponent, openBlock, createBlock, mergeProps, toHandlers, withCtx, createElementBlock, renderSlot, createVNode, createSlots, createCommentVNode, withDirectives, toDisplayString, vShow, createElementVNode } from "vue";
3
+ import { resolveComponent, openBlock, createBlock, mergeProps, toHandlers, withCtx, createElementBlock, renderSlot, createVNode, createCommentVNode, withDirectives, toDisplayString, vShow, createElementVNode } from "vue";
5
4
  /* empty css */
6
5
  import _export_sfc from "../../../_virtual/_plugin-vue_export-helper.js";
7
6
  import DtAvatar from "../../../components/avatar/avatar.vue.js";
@@ -14,8 +13,7 @@ const _sfc_main = {
14
13
  DtAvatar,
15
14
  DtLazyShow,
16
15
  DtListItem,
17
- DtBadge,
18
- DtIconUser
16
+ DtBadge
19
17
  },
20
18
  mixins: [Modal],
21
19
  inheritAttrs: false,
@@ -141,6 +139,9 @@ const _sfc_main = {
141
139
  }
142
140
  };
143
141
  },
142
+ iconName() {
143
+ return this.noInitials ? "user" : null;
144
+ },
144
145
  listItemClasses() {
145
146
  return [
146
147
  "dt-feed-item-row",
@@ -209,7 +210,6 @@ const _hoisted_10 = {
209
210
  class: "dt-feed-item-row__menu"
210
211
  };
211
212
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
212
- const _component_dt_icon_user = resolveComponent("dt-icon-user");
213
213
  const _component_dt_avatar = resolveComponent("dt-avatar");
214
214
  const _component_dt_badge = resolveComponent("dt-badge");
215
215
  const _component_dt_lazy_show = resolveComponent("dt-lazy-show");
@@ -228,16 +228,9 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
228
228
  "full-name": $props.displayName,
229
229
  "image-src": $props.avatarImageUrl,
230
230
  "image-alt": "",
231
+ "icon-name": $options.iconName,
231
232
  seed: $props.avatarSeed
232
- }, createSlots({ _: 2 }, [
233
- $props.noInitials ? {
234
- name: "icon",
235
- fn: withCtx(({ iconSize }) => [
236
- createVNode(_component_dt_icon_user, { size: iconSize }, null, 8, ["size"])
237
- ]),
238
- key: "0"
239
- } : void 0
240
- ]), 1032, ["full-name", "image-src", "seed"])
233
+ }, null, 8, ["full-name", "image-src", "icon-name", "seed"])
241
234
  ], true)
242
235
  ])) : createCommentVNode("", true),
243
236
  !$props.showHeader ? withDirectives((openBlock(), createElementBlock("span", {
@@ -293,7 +286,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
293
286
  _: 3
294
287
  }, 16, ["class"]);
295
288
  }
296
- const feed_item_row = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-731d32a0"]]);
289
+ const feed_item_row = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-418199f0"]]);
297
290
  export {
298
291
  feed_item_row as default
299
292
  };
@@ -1 +1 @@
1
- {"version":3,"file":"feed_item_row.vue.js","sources":["../../../../recipes/conversation_view/feed_item_row/feed_item_row.vue"],"sourcesContent":["<template>\n <dt-list-item\n ref=\"FeedItemRef\"\n navigation-type=\"none\"\n v-bind=\"$attrs\"\n :class=\"['dt-feed-item-row', listItemClasses]\"\n data-qa=\"dt-feed-item-row\"\n v-on=\"feedListeners\"\n >\n <!-- Avatar or time -->\n <template #left>\n <div\n v-if=\"showHeader\"\n class=\"dt-feed-item-row__avatar-container\"\n >\n <!-- @slot Slot to contain the avatar, overrides avatar props. -->\n <slot\n name=\"avatar\"\n >\n <dt-avatar\n :full-name=\"displayName\"\n :image-src=\"avatarImageUrl\"\n image-alt=\"\"\n :seed=\"avatarSeed\"\n >\n <template\n v-if=\"noInitials\"\n #icon=\"{ iconSize }\"\n >\n <dt-icon-user\n :size=\"iconSize\"\n />\n </template>\n </dt-avatar>\n </slot>\n </div>\n <!-- show time instead of avatar when headers not present -->\n <span\n v-if=\"!showHeader\"\n v-show=\"isActive\"\n class=\"dt-feed-item-row__left-time\"\n data-qa=\"dt-feed-item-row--left-time\"\n >\n {{ shortTime }}\n </span>\n </template>\n\n <article class=\"dt-feed-item-row__content\">\n <!-- Feed Item -->\n <div\n v-if=\"showHeader\"\n data-qa=\"dt-feed-item-row--header\"\n class=\"dt-feed-item-row__header\"\n >\n <p class=\"dt-feed-item-row__header__name\">\n {{ displayName }}\n </p>\n <time\n class=\"dt-feed-item-row__header__time\"\n >\n {{ time }}\n </time>\n <dt-badge\n v-if=\"labelText\"\n :text=\"labelText\"\n />\n </div>\n <!-- @slot Default content slot for feed item row -->\n <span\n data-qa=\"dt-feed-item-row--content\"\n >\n <slot />\n </span>\n <div\n v-if=\"$slots.attachment\"\n data-qa=\"dt-feed-item-row--attachment\"\n class=\"dt-feed-item-row__attachment\"\n >\n <slot name=\"attachment\" />\n </div>\n </article>\n\n <template #bottom>\n <div\n v-if=\"$slots.reactions\"\n class=\"dt-feed-item-row__reactions\"\n data-qa=\"dt-feed-item-row--reactions\"\n >\n <!-- @slot Slot for reactions row component -->\n <slot name=\"reactions\" />\n </div>\n <div\n v-if=\"$slots.threading\"\n class=\"dt-feed-item-row__threading\"\n >\n <!-- @slot Slot for threading row component -->\n <slot name=\"threading\" />\n </div>\n </template>\n\n <!-- Action menu -->\n <template #right>\n <div\n v-show=\"isActive\"\n data-qa=\"dt-feed-item-row--menu\"\n class=\"dt-feed-item-row__menu\"\n >\n <dt-lazy-show\n :appear=\"true\"\n transition=\"fade\"\n :show=\"isActive\"\n >\n <!-- @slot Slot for actions hover menu component -->\n <slot name=\"menu\" />\n </dt-lazy-show>\n </div>\n </template>\n </dt-list-item>\n</template>\n\n<script>\n/* eslint-disable max-lines */\nimport { DEFAULT_FEED_ROW_STATE, FEED_ROW_STATE_BACKGROUND_COLOR } from './feed_item_row_constants.js';\nimport { DtAvatar } from '@/components/avatar';\nimport { DtLazyShow } from '@/components/lazy_show';\nimport { DtListItem } from '@/components/list_item';\nimport { DtBadge } from '@/components/badge';\nimport Modal from '@/common/mixins/modal';\nimport { DtIconUser } from '@dialpad/dialtone-icons/vue3';\n\nexport default {\n name: 'DtRecipeFeedItemRow',\n\n components: {\n DtAvatar,\n DtLazyShow,\n DtListItem,\n DtBadge,\n DtIconUser,\n },\n\n mixins: [Modal],\n\n inheritAttrs: false,\n\n props: {\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 * Show avatar, show header text or dont show left time and vice versa\n */\n showHeader: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Optional avatar image url.\n * If not provided it will use extracted initials from displayName.\n */\n avatarImageUrl: {\n type: String,\n default: '',\n },\n\n /**\n * The display name of the sender\n */\n displayName: {\n type: String,\n default: '',\n },\n\n /**\n * Initials will never be shown. Instead it will show a \"User\" icon.\n */\n noInitials: {\n type: Boolean,\n default: false,\n },\n\n /**\n * time string displayed as is.\n * Shown on the header when showHeader is true\n */\n time: {\n type: String,\n default: '',\n },\n\n /**\n * short time string without AM/PM displayed as is.\n * Shown on the left of feed item when showHeader is false and isActive is true\n */\n shortTime: {\n type: String,\n default: '',\n },\n\n /**\n * A label displayed next to the displayName. Will not show if empty.\n */\n labelText: {\n type: String,\n default: '',\n },\n\n /**\n * displays a darkened background on the row.\n */\n isActive: {\n type: Boolean,\n default: false,\n },\n\n /**\n * state for the feed item row. Can be normal, searched & error\n */\n state: {\n type: String,\n default: DEFAULT_FEED_ROW_STATE,\n validator: state => Object.keys(FEED_ROW_STATE_BACKGROUND_COLOR).includes(state),\n },\n },\n\n emits: [\n /**\n * Fires when hovered over feed row\n *\n * @event hover\n * @type {Boolean}\n */\n 'hover',\n\n /**\n * Fires when focused over feed row\n *\n * @event focus\n * @type {Boolean}\n */\n 'focus',\n\n /**\n * Key down event\n *\n * @event keydown\n * @type {KeyboardEvent}\n */\n 'keydown',\n ],\n\n data () {\n return {\n transitionActive: false,\n };\n },\n\n computed: {\n feedListeners () {\n return {\n mouseenter: () => this.setHover(true),\n mouseleave: () => this.setHover(false),\n focusin: () => this.setFocus(true),\n focusout: () => this.setFocus(false),\n transitionend: () => this.transitionComplete(),\n keydown: event => {\n switch (event.code) {\n case 'Tab':\n this.trapFocus(event);\n break;\n }\n this.$emit('keydown', event);\n },\n };\n },\n\n listItemClasses () {\n return [\n 'dt-feed-item-row',\n { 'dt-feed-item-row--active': this.isActive && this.state === DEFAULT_FEED_ROW_STATE },\n { 'dt-feed-item-row--state-transition': this.transitionActive },\n FEED_ROW_STATE_BACKGROUND_COLOR[this.state],\n\n ];\n },\n },\n\n watch: {\n state: {\n immediate: true,\n handler: function (newState, oldState) {\n if (newState !== DEFAULT_FEED_ROW_STATE) {\n this.transitionActive = true;\n }\n },\n },\n },\n\n methods: {\n transitionComplete () {\n if (this.state === DEFAULT_FEED_ROW_STATE) {\n this.transitionActive = false;\n }\n },\n\n trapFocus (e) {\n this.focusTrappedTabPress(e);\n },\n\n setFocus (bool) {\n this.$emit('focus', bool);\n },\n\n setHover (bool) {\n this.$emit('hover', bool);\n },\n },\n};\n</script>\n\n<style lang=\"less\" scoped>\n.dt-feed-item-row {\n\n width: var(--dt-size-100-percent);\n box-sizing: border-box;\n position: relative;\n padding: var(--dt-space-300) var(--dt-space-500);\n\n &:focus-visible {\n box-shadow: var(--dt-shadow-focus-inset);\n }\n\n &--state-searched {\n background-color: var(--dt-color-surface-warning-subtle);\n }\n\n &--state-error {\n background-color: var(--dt-color-surface-critical-subtle);\n }\n\n &--active {\n background-color: var(--dt-color-surface-secondary-opaque);\n }\n\n &--state-transition {\n transition-duration: 2s;\n transition-delay: 0s;\n transition-timing-function: var(--ttf-in-out);\n transition-property: background-color;\n }\n\n &__avatar-container {\n padding-top: var(--dt-space-300);\n padding-bottom: var(--dt-space-300);\n }\n\n &__content {\n padding-left: var(--dt-space-300);\n }\n\n &__attachment {\n padding-top: var(--dt-space-200);\n padding-bottom: var(--dt-space-300);\n\n &:deep(.dt-feed-item-row__image) {\n border: var(--dt-color-border-subtle) solid var(--dt-size-border-100);\n border-radius: var(--dt-size-radius-400);\n display: block;\n max-width: 30rem;\n max-height: 30rem;\n min-width: 5.6rem;\n min-height: 5.6rem;\n }\n\n &:deep(.dt-feed-item-row__video) {\n display: block;\n height: 25.0rem;\n }\n }\n\n &__header {\n display: flex;\n align-items: baseline;\n flex-wrap: wrap;\n gap: var(--dt-space-300);\n font-size: var(--dt-font-size-200);\n line-height: var(--dt-font-line-height-300);\n\n &__name {\n font-weight: var(--dt-font-weight-bold);\n }\n\n &__time {\n font-size: var(--dt-font-size-100);\n color: var(--dt-color-foreground-tertiary);\n flex-shrink: 0;\n }\n }\n\n &__reactions {\n display: flex;\n flex-wrap: wrap;\n padding-top: var(--dt-space-200);\n padding-bottom: var(--dt-space-200);\n padding-left: var(--dt-space-300);\n }\n\n &__threading {\n padding-top: var(--dt-space-200);\n padding-bottom: var(--dt-space-200);\n }\n\n &__left-time {\n color: var(--dt-color-foreground-tertiary);\n font-size: var(--dt-font-size-100);\n font-weight: var(--dt-font-weight-normal);\n vertical-align: middle;\n white-space: nowrap;\n }\n\n &__menu {\n position: absolute;\n top: var(--dt-space-550-negative);\n right: var(--dt-space-450);\n }\n\n &:deep(> .dt-item-layout) {\n font: var(--dt-typography-body-md-compact);\n min-height: initial;\n padding: 0px;\n }\n\n &:deep(> .dt-item-layout > .dt-item-layout--left) {\n align-self: flex-start;\n text-align: end;\n display: block;\n padding-right: var(--dt-space-300);\n padding-left: var(--dt-space-0);\n // min-width = avatar width + padding\n min-width: calc(var(--dt-space-600) + var(--dt-space-300));\n }\n\n &:deep(> .dt-item-layout > .dt-item-layout--right) {\n padding: 0;\n min-width: initial;\n }\n\n &:deep(> .dt-item-layout > .dt-item-layout--content > .dt-item-layout--bottom) {\n display: flex;\n flex-direction: column;\n margin-top: 0;\n }\n}\n</style>\n"],"names":["_openBlock","_createBlock","_mergeProps","_toHandlers","_createElementBlock","_renderSlot","_createVNode","_withCtx","_withDirectives","_createElementVNode","_toDisplayString"],"mappings":"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"}
1
+ {"version":3,"file":"feed_item_row.vue.js","sources":["../../../../recipes/conversation_view/feed_item_row/feed_item_row.vue"],"sourcesContent":["<template>\n <dt-list-item\n ref=\"FeedItemRef\"\n navigation-type=\"none\"\n v-bind=\"$attrs\"\n :class=\"['dt-feed-item-row', listItemClasses]\"\n data-qa=\"dt-feed-item-row\"\n v-on=\"feedListeners\"\n >\n <!-- Avatar or time -->\n <template #left>\n <div\n v-if=\"showHeader\"\n class=\"dt-feed-item-row__avatar-container\"\n >\n <!-- @slot Slot to contain the avatar, overrides avatar props. -->\n <slot\n name=\"avatar\"\n >\n <dt-avatar\n :full-name=\"displayName\"\n :image-src=\"avatarImageUrl\"\n image-alt=\"\"\n :icon-name=\"iconName\"\n :seed=\"avatarSeed\"\n />\n </slot>\n </div>\n <!-- show time instead of avatar when headers not present -->\n <span\n v-if=\"!showHeader\"\n v-show=\"isActive\"\n class=\"dt-feed-item-row__left-time\"\n data-qa=\"dt-feed-item-row--left-time\"\n >\n {{ shortTime }}\n </span>\n </template>\n\n <article class=\"dt-feed-item-row__content\">\n <!-- Feed Item -->\n <div\n v-if=\"showHeader\"\n data-qa=\"dt-feed-item-row--header\"\n class=\"dt-feed-item-row__header\"\n >\n <p class=\"dt-feed-item-row__header__name\">\n {{ displayName }}\n </p>\n <time\n class=\"dt-feed-item-row__header__time\"\n >\n {{ time }}\n </time>\n <dt-badge\n v-if=\"labelText\"\n :text=\"labelText\"\n />\n </div>\n <!-- @slot Default content slot for feed item row -->\n <span\n data-qa=\"dt-feed-item-row--content\"\n >\n <slot />\n </span>\n <div\n v-if=\"$slots.attachment\"\n data-qa=\"dt-feed-item-row--attachment\"\n class=\"dt-feed-item-row__attachment\"\n >\n <slot name=\"attachment\" />\n </div>\n </article>\n\n <template #bottom>\n <div\n v-if=\"$slots.reactions\"\n class=\"dt-feed-item-row__reactions\"\n data-qa=\"dt-feed-item-row--reactions\"\n >\n <!-- @slot Slot for reactions row component -->\n <slot name=\"reactions\" />\n </div>\n <div\n v-if=\"$slots.threading\"\n class=\"dt-feed-item-row__threading\"\n >\n <!-- @slot Slot for threading row component -->\n <slot name=\"threading\" />\n </div>\n </template>\n\n <!-- Action menu -->\n <template #right>\n <div\n v-show=\"isActive\"\n data-qa=\"dt-feed-item-row--menu\"\n class=\"dt-feed-item-row__menu\"\n >\n <dt-lazy-show\n :appear=\"true\"\n transition=\"fade\"\n :show=\"isActive\"\n >\n <!-- @slot Slot for actions hover menu component -->\n <slot name=\"menu\" />\n </dt-lazy-show>\n </div>\n </template>\n </dt-list-item>\n</template>\n\n<script>\n/* eslint-disable max-lines */\nimport { DEFAULT_FEED_ROW_STATE, FEED_ROW_STATE_BACKGROUND_COLOR } from './feed_item_row_constants.js';\nimport { DtAvatar } from '@/components/avatar';\nimport { DtLazyShow } from '@/components/lazy_show';\nimport { DtListItem } from '@/components/list_item';\nimport { DtBadge } from '@/components/badge';\nimport Modal from '@/common/mixins/modal';\n\nexport default {\n name: 'DtRecipeFeedItemRow',\n\n components: {\n DtAvatar,\n DtLazyShow,\n DtListItem,\n DtBadge,\n },\n\n mixins: [Modal],\n\n inheritAttrs: false,\n\n props: {\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 * Show avatar, show header text or dont show left time and vice versa\n */\n showHeader: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Optional avatar image url.\n * If not provided it will use extracted initials from displayName.\n */\n avatarImageUrl: {\n type: String,\n default: '',\n },\n\n /**\n * The display name of the sender\n */\n displayName: {\n type: String,\n default: '',\n },\n\n /**\n * Initials will never be shown. Instead it will show a \"User\" icon.\n */\n noInitials: {\n type: Boolean,\n default: false,\n },\n\n /**\n * time string displayed as is.\n * Shown on the header when showHeader is true\n */\n time: {\n type: String,\n default: '',\n },\n\n /**\n * short time string without AM/PM displayed as is.\n * Shown on the left of feed item when showHeader is false and isActive is true\n */\n shortTime: {\n type: String,\n default: '',\n },\n\n /**\n * A label displayed next to the displayName. Will not show if empty.\n */\n labelText: {\n type: String,\n default: '',\n },\n\n /**\n * displays a darkened background on the row.\n */\n isActive: {\n type: Boolean,\n default: false,\n },\n\n /**\n * state for the feed item row. Can be normal, searched & error\n */\n state: {\n type: String,\n default: DEFAULT_FEED_ROW_STATE,\n validator: state => Object.keys(FEED_ROW_STATE_BACKGROUND_COLOR).includes(state),\n },\n },\n\n emits: [\n /**\n * Fires when hovered over feed row\n *\n * @event hover\n * @type {Boolean}\n */\n 'hover',\n\n /**\n * Fires when focused over feed row\n *\n * @event focus\n * @type {Boolean}\n */\n 'focus',\n\n /**\n * Key down event\n *\n * @event keydown\n * @type {KeyboardEvent}\n */\n 'keydown',\n ],\n\n data () {\n return {\n transitionActive: false,\n };\n },\n\n computed: {\n feedListeners () {\n return {\n mouseenter: () => this.setHover(true),\n mouseleave: () => this.setHover(false),\n focusin: () => this.setFocus(true),\n focusout: () => this.setFocus(false),\n transitionend: () => this.transitionComplete(),\n keydown: event => {\n switch (event.code) {\n case 'Tab':\n this.trapFocus(event);\n break;\n }\n this.$emit('keydown', event);\n },\n };\n },\n\n iconName () {\n return this.noInitials ? 'user' : null;\n },\n\n listItemClasses () {\n return [\n 'dt-feed-item-row',\n { 'dt-feed-item-row--active': this.isActive && this.state === DEFAULT_FEED_ROW_STATE },\n { 'dt-feed-item-row--state-transition': this.transitionActive },\n FEED_ROW_STATE_BACKGROUND_COLOR[this.state],\n\n ];\n },\n },\n\n watch: {\n state: {\n immediate: true,\n handler: function (newState, oldState) {\n if (newState !== DEFAULT_FEED_ROW_STATE) {\n this.transitionActive = true;\n }\n },\n },\n },\n\n methods: {\n transitionComplete () {\n if (this.state === DEFAULT_FEED_ROW_STATE) {\n this.transitionActive = false;\n }\n },\n\n trapFocus (e) {\n this.focusTrappedTabPress(e);\n },\n\n setFocus (bool) {\n this.$emit('focus', bool);\n },\n\n setHover (bool) {\n this.$emit('hover', bool);\n },\n },\n};\n</script>\n\n<style lang=\"less\" scoped>\n.dt-feed-item-row {\n\n width: var(--dt-size-100-percent);\n box-sizing: border-box;\n position: relative;\n padding: var(--dt-space-300) var(--dt-space-500);\n\n &:focus-visible {\n box-shadow: var(--dt-shadow-focus-inset);\n }\n\n &--state-searched {\n background-color: var(--dt-color-surface-warning-subtle);\n }\n\n &--state-error {\n background-color: var(--dt-color-surface-critical-subtle);\n }\n\n &--active {\n background-color: var(--dt-color-surface-secondary-opaque);\n }\n\n &--state-transition {\n transition-duration: 2s;\n transition-delay: 0s;\n transition-timing-function: var(--ttf-in-out);\n transition-property: background-color;\n }\n\n &__avatar-container {\n padding-top: var(--dt-space-300);\n padding-bottom: var(--dt-space-300);\n }\n\n &__content {\n padding-left: var(--dt-space-300);\n }\n\n &__attachment {\n padding-top: var(--dt-space-200);\n padding-bottom: var(--dt-space-300);\n\n &:deep(.dt-feed-item-row__image) {\n border: var(--dt-color-border-subtle) solid var(--dt-size-border-100);\n border-radius: var(--dt-size-radius-400);\n display: block;\n max-width: 30rem;\n max-height: 30rem;\n min-width: 5.6rem;\n min-height: 5.6rem;\n }\n\n &:deep(.dt-feed-item-row__video) {\n display: block;\n height: 25.0rem;\n }\n }\n\n &__header {\n display: flex;\n align-items: baseline;\n flex-wrap: wrap;\n gap: var(--dt-space-300);\n font-size: var(--dt-font-size-200);\n line-height: var(--dt-font-line-height-300);\n\n &__name {\n font-weight: var(--dt-font-weight-bold);\n }\n\n &__time {\n font-size: var(--dt-font-size-100);\n color: var(--dt-color-foreground-tertiary);\n flex-shrink: 0;\n }\n }\n\n &__reactions {\n display: flex;\n flex-wrap: wrap;\n padding-top: var(--dt-space-200);\n padding-bottom: var(--dt-space-200);\n padding-left: var(--dt-space-300);\n }\n\n &__threading {\n padding-top: var(--dt-space-200);\n padding-bottom: var(--dt-space-200);\n }\n\n &__left-time {\n color: var(--dt-color-foreground-tertiary);\n font-size: var(--dt-font-size-100);\n font-weight: var(--dt-font-weight-normal);\n vertical-align: middle;\n white-space: nowrap;\n }\n\n &__menu {\n position: absolute;\n top: var(--dt-space-550-negative);\n right: var(--dt-space-450);\n }\n\n &:deep(> .dt-item-layout) {\n font: var(--dt-typography-body-md-compact);\n min-height: initial;\n padding: 0px;\n }\n\n &:deep(> .dt-item-layout > .dt-item-layout--left) {\n align-self: flex-start;\n text-align: end;\n display: block;\n padding-right: var(--dt-space-300);\n padding-left: var(--dt-space-0);\n // min-width = avatar width + padding\n min-width: calc(var(--dt-space-600) + var(--dt-space-300));\n }\n\n &:deep(> .dt-item-layout > .dt-item-layout--right) {\n padding: 0;\n min-width: initial;\n }\n\n &:deep(> .dt-item-layout > .dt-item-layout--content > .dt-item-layout--bottom) {\n display: flex;\n flex-direction: column;\n margin-top: 0;\n }\n}\n</style>\n"],"names":["_openBlock","_createBlock","_mergeProps","_toHandlers","_createElementBlock","_renderSlot","_createVNode","_withDirectives","_createElementVNode","_toDisplayString"],"mappings":"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"}
@@ -1,15 +1,22 @@
1
1
  "use strict";
2
2
  const feed_item_pill_constants = require("./feed_item_pill_constants.cjs");
3
- const vue3 = require("@dialpad/dialtone-icons/vue3");
4
3
  const vue = require("vue");
5
4
  ;/* empty css */
6
5
  const _pluginVue_exportHelper = require("../../../_virtual/_plugin-vue_export-helper.cjs");
7
6
  const item_layout = require("../../../components/item_layout/item_layout.vue.cjs");
7
+ const icon = require("../../../components/icon/icon.vue.cjs");
8
8
  const collapsible = require("../../../components/collapsible/collapsible.vue.cjs");
9
9
  const _sfc_main = {
10
10
  name: "DtRecipeFeedItemPill",
11
- components: { DtItemLayout: item_layout, DtCollapsible: collapsible },
11
+ components: { DtItemLayout: item_layout, DtIcon: icon, DtCollapsible: collapsible },
12
12
  props: {
13
+ /**
14
+ * Accepts a DtIcon name to be shown in the left
15
+ */
16
+ iconName: {
17
+ type: String,
18
+ default: () => ""
19
+ },
13
20
  /**
14
21
  * Bolded primary text
15
22
  */
@@ -66,11 +73,12 @@ const _sfc_main = {
66
73
  };
67
74
  },
68
75
  computed: {
69
- toggleIcon() {
70
- return this.expanded ? vue3.DtIconChevronDown : vue3.DtIconChevronRight;
71
- },
72
- showChevronIcon() {
73
- return this.toggleable && this.hover;
76
+ computedIcon() {
77
+ if (this.toggleable && this.hover) {
78
+ return this.expanded ? "chevron-down" : "chevron-right";
79
+ } else {
80
+ return this.iconName;
81
+ }
74
82
  },
75
83
  toggleableClass() {
76
84
  return this.toggleable ? "d-c-pointer" : "";
@@ -89,12 +97,9 @@ const _sfc_main = {
89
97
  const _hoisted_1 = { class: "dt-recipe-feed-item-pill__wrapper" };
90
98
  const _hoisted_2 = ["aria-label"];
91
99
  const _hoisted_3 = { class: "dt-recipe-feed-item-pill__title" };
92
- const _hoisted_4 = {
93
- class: "dt-recipe-feed-item-pill__icon",
94
- "data-qa": "dt-recipe-feed-item-pill__icon"
95
- };
96
- const _hoisted_5 = { class: "dt-recipe-feed-item-pill__content" };
100
+ const _hoisted_4 = { class: "dt-recipe-feed-item-pill__content" };
97
101
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
102
+ const _component_dt_icon = vue.resolveComponent("dt-icon");
98
103
  const _component_dt_item_layout = vue.resolveComponent("dt-item-layout");
99
104
  const _component_dt_collapsible = vue.resolveComponent("dt-collapsible");
100
105
  return vue.openBlock(), vue.createElementBlock("div", {
@@ -115,15 +120,12 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
115
120
  }, [
116
121
  vue.createVNode(_component_dt_item_layout, { class: "dt-recipe-feed-item-pill__layout" }, {
117
122
  left: vue.withCtx(() => [
118
- vue.createElementVNode("div", _hoisted_4, [
119
- $options.showChevronIcon ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent($options.toggleIcon), {
120
- key: 0,
121
- size: "300"
122
- })) : vue.renderSlot(_ctx.$slots, "leftIcon", {
123
- key: 1,
124
- iconSize: "300"
125
- }, void 0, true)
126
- ])
123
+ vue.createVNode(_component_dt_icon, {
124
+ "data-qa": "dt-recipe-feed-item-pill__icon",
125
+ size: "300",
126
+ class: "dt-recipe-feed-item-pill__icon",
127
+ name: $options.computedIcon
128
+ }, null, 8, ["name"])
127
129
  ]),
128
130
  subtitle: vue.withCtx(() => [
129
131
  vue.renderSlot(_ctx.$slots, "subtitle", {}, void 0, true)
@@ -144,7 +146,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
144
146
  ], 42, _hoisted_2)
145
147
  ]),
146
148
  content: vue.withCtx(() => [
147
- vue.createElementVNode("div", _hoisted_5, [
149
+ vue.createElementVNode("div", _hoisted_4, [
148
150
  vue.renderSlot(_ctx.$slots, "content", {}, void 0, true)
149
151
  ])
150
152
  ]),
@@ -153,6 +155,6 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
153
155
  ])
154
156
  ], 2);
155
157
  }
156
- const feed_item_pill = /* @__PURE__ */ _pluginVue_exportHelper(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-83d19d1f"]]);
158
+ const feed_item_pill = /* @__PURE__ */ _pluginVue_exportHelper(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-dab5b252"]]);
157
159
  module.exports = feed_item_pill;
158
160
  //# sourceMappingURL=feed_item_pill.vue.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"feed_item_pill.vue.cjs","sources":["../../../../recipes/conversation_view/feed_pill/feed_item_pill.vue"],"sourcesContent":["<template>\n <div :class=\"['dt-recipe-feed-item-pill__border', borderClass, wrapperClass]\">\n <div class=\"dt-recipe-feed-item-pill__wrapper\">\n <dt-collapsible :open=\"expanded\">\n <template #anchor>\n <button\n data-qa=\"dt-recipe-feed-item-pill\"\n :aria-label=\"ariaLabel\"\n :class=\"['dt-recipe-feed-item-pill__button', toggleableClass, buttonClass]\"\n @focusin=\"hover = true\"\n @focusout=\"hover = false\"\n @mouseenter=\"hover = true\"\n @mouseleave=\"hover = false\"\n @click=\"onClick\"\n >\n <dt-item-layout class=\"dt-recipe-feed-item-pill__layout\">\n <slot name=\"title\">\n <span class=\"dt-recipe-feed-item-pill__title\">{{ title }}</span>\n </slot>\n <template #left>\n <div\n class=\"dt-recipe-feed-item-pill__icon\"\n data-qa=\"dt-recipe-feed-item-pill__icon\"\n >\n <component\n :is=\"toggleIcon\"\n v-if=\"showChevronIcon\"\n size=\"300\"\n />\n <!-- @slot Slot for left icon, icon-size slot prop defaults to '300' -->\n <slot\n v-else\n name=\"leftIcon\"\n :icon-size=\"'300'\"\n />\n </div>\n </template>\n <template #subtitle>\n <slot name=\"subtitle\" />\n </template>\n <template #bottom>\n <slot name=\"bottom\" />\n </template>\n <template #right>\n <slot name=\"right\" />\n </template>\n </dt-item-layout>\n </button>\n </template>\n <template #content>\n <div class=\"dt-recipe-feed-item-pill__content\">\n <slot name=\"content\" />\n </div>\n </template>\n </dt-collapsible>\n </div>\n </div>\n</template>\n\n<script>\nimport { FEED_ITEM_PILL_BORDER_COLORS } from './feed_item_pill_constants';\nimport { DtItemLayout } from '@/components/item_layout';\nimport { DtCollapsible } from '@/components/collapsible';\nimport { DtIconChevronDown, DtIconChevronRight } from '@dialpad/dialtone-icons/vue3';\n\nexport default {\n name: 'DtRecipeFeedItemPill',\n\n components: { DtItemLayout, DtCollapsible },\n\n props: {\n /**\n * Bolded primary text\n */\n title: {\n type: String,\n default: () => '',\n },\n\n /**\n * Additional styling around the pill\n */\n wrapperClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Additional styling for the pill\n */\n buttonClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Aria label for feed pill\n */\n ariaLabel: {\n type: String,\n required: true,\n },\n\n /**\n * Sets whether the pill can be toggled (Icon changing on hover, expanding and collapsing, pointer)\n */\n toggleable: {\n type: Boolean,\n default: () => true,\n },\n\n defaultToggled: {\n type: Boolean,\n default: () => false,\n },\n\n /**\n * Callbox border color\n * @values default, ai, critical\n */\n borderColor: {\n type: String,\n default: 'default',\n validator: (color) => Object.keys(FEED_ITEM_PILL_BORDER_COLORS).includes(color),\n },\n },\n\n data () {\n return {\n hover: false,\n expanded: this.defaultToggled,\n };\n },\n\n computed: {\n toggleIcon () {\n return this.expanded ? DtIconChevronDown : DtIconChevronRight;\n },\n\n showChevronIcon () {\n return this.toggleable && this.hover;\n },\n\n toggleableClass () {\n return this.toggleable ? 'd-c-pointer' : '';\n },\n\n borderClass () {\n return FEED_ITEM_PILL_BORDER_COLORS[this.borderColor];\n },\n },\n\n methods: {\n onClick () {\n if (!this.toggleable) return;\n\n this.expanded = !this.expanded;\n },\n },\n};\n</script>\n\n<style lang=\"less\" scoped>\n.dt-recipe-feed-item-pill {\n &__wrapper {\n background-color: var(--dt-color-surface-secondary);\n padding: var(--dt-space-400);\n }\n\n &__button {\n background-color: var(--dt-color-surface-moderate);\n text-align: left;\n width: 100%;\n cursor: pointer;\n border-width: 0;\n border-radius: var(--dt-size-radius-600);\n --button-padding-x: var(--button-padding-y-md);\n --button-padding-y: var(--button-padding-y-md);\n --button-color-text: var(--dt-action-color-foreground-muted-default);\n --button-border-radius: var(--dt-size-radius-600);\n }\n\n &__layout {\n padding: var(--dt-space-400);\n gap: var(--dt-space-300);\n width: 100%;\n\n &:deep(> .dt-item-layout--left) {\n padding-right: var(--dt-space-0);\n justify-content: center;\n }\n }\n\n &__icon {\n display: flex;\n &:deep(svg) {\n animation: fade 0.15s ease-in;\n }\n }\n\n &__content {\n display: flex;\n justify-content: center;\n }\n\n &__title {\n font-weight: var(--dt-font-weight-bold);\n }\n\n // Gradient radius solution taken from https://stackoverflow.com/a/53037637\n &__border {\n border: double 1px transparent;\n border-radius: var(--dt-size-radius-600);\n background-origin: border-box;\n background-clip: content-box, border-box;\n overflow: hidden;\n }\n\n &__border-default {\n background: var(--dt-color-border-default)\n }\n\n &__border-ai {\n background-image:\n linear-gradient(var(--dt-color-surface-primary), var(--dt-color-surface-primary)),\n var(--dt-badge-color-background-ai);\n }\n\n &__border-critical {\n background: var(--dt-color-foreground-critical);\n }\n\n @keyframes fade {\n 0% {transform: scale(0);}\n 100% {transform: scale(1);}\n }\n}\n</style>\n"],"names":["DtItemLayout","DtCollapsible","FEED_ITEM_PILL_BORDER_COLORS","DtIconChevronDown","DtIconChevronRight","_createElementBlock","_normalizeClass","_createElementVNode","_createVNode","_openBlock","_createBlock","_resolveDynamicComponent","_renderSlot","_toDisplayString"],"mappings":"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"}
1
+ {"version":3,"file":"feed_item_pill.vue.cjs","sources":["../../../../recipes/conversation_view/feed_pill/feed_item_pill.vue"],"sourcesContent":["<template>\n <div :class=\"['dt-recipe-feed-item-pill__border', borderClass, wrapperClass]\">\n <div class=\"dt-recipe-feed-item-pill__wrapper\">\n <dt-collapsible :open=\"expanded\">\n <template #anchor>\n <button\n data-qa=\"dt-recipe-feed-item-pill\"\n :aria-label=\"ariaLabel\"\n :class=\"['dt-recipe-feed-item-pill__button', toggleableClass, buttonClass]\"\n @focusin=\"hover = true\"\n @focusout=\"hover = false\"\n @mouseenter=\"hover = true\"\n @mouseleave=\"hover = false\"\n @click=\"onClick\"\n >\n <dt-item-layout class=\"dt-recipe-feed-item-pill__layout\">\n <slot name=\"title\">\n <span class=\"dt-recipe-feed-item-pill__title\">{{ title }}</span>\n </slot>\n <template #left>\n <dt-icon\n data-qa=\"dt-recipe-feed-item-pill__icon\"\n size=\"300\"\n class=\"dt-recipe-feed-item-pill__icon\"\n :name=\"computedIcon\"\n />\n </template>\n <template #subtitle>\n <slot name=\"subtitle\" />\n </template>\n <template #bottom>\n <slot name=\"bottom\" />\n </template>\n <template #right>\n <slot name=\"right\" />\n </template>\n </dt-item-layout>\n </button>\n </template>\n <template #content>\n <div class=\"dt-recipe-feed-item-pill__content\">\n <slot name=\"content\" />\n </div>\n </template>\n </dt-collapsible>\n </div>\n </div>\n</template>\n\n<script>\nimport { FEED_ITEM_PILL_BORDER_COLORS } from './feed_item_pill_constants';\nimport { DtIcon } from '@/components/icon';\nimport { DtItemLayout } from '@/components/item_layout';\nimport { DtCollapsible } from '@/components/collapsible';\n\nexport default {\n name: 'DtRecipeFeedItemPill',\n\n components: { DtItemLayout, DtIcon, DtCollapsible },\n\n props: {\n /**\n * Accepts a DtIcon name to be shown in the left\n */\n iconName: {\n type: String,\n default: () => '',\n },\n\n /**\n * Bolded primary text\n */\n title: {\n type: String,\n default: () => '',\n },\n\n /**\n * Additional styling around the pill\n */\n wrapperClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Additional styling for the pill\n */\n buttonClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Aria label for feed pill\n */\n ariaLabel: {\n type: String,\n required: true,\n },\n\n /**\n * Sets whether the pill can be toggled (Icon changing on hover, expanding and collapsing, pointer)\n */\n toggleable: {\n type: Boolean,\n default: () => true,\n },\n\n defaultToggled: {\n type: Boolean,\n default: () => false,\n },\n\n /**\n * Callbox border color\n * @values default, ai, critical\n */\n borderColor: {\n type: String,\n default: 'default',\n validator: (color) => Object.keys(FEED_ITEM_PILL_BORDER_COLORS).includes(color),\n },\n },\n\n data () {\n return {\n hover: false,\n expanded: this.defaultToggled,\n };\n },\n\n computed: {\n computedIcon () {\n if (this.toggleable && this.hover) {\n return this.expanded ? 'chevron-down' : 'chevron-right';\n } else {\n return this.iconName;\n }\n },\n\n toggleableClass () {\n return this.toggleable ? 'd-c-pointer' : '';\n },\n\n borderClass () {\n return FEED_ITEM_PILL_BORDER_COLORS[this.borderColor];\n },\n },\n\n methods: {\n onClick () {\n if (!this.toggleable) return;\n\n this.expanded = !this.expanded;\n },\n },\n};\n</script>\n\n<style lang=\"less\" scoped>\n.dt-recipe-feed-item-pill {\n &__wrapper {\n background-color: var(--dt-color-surface-secondary);\n padding: var(--dt-space-400);\n }\n\n &__button {\n background-color: var(--dt-color-surface-moderate);\n text-align: left;\n width: 100%;\n cursor: pointer;\n border-width: 0;\n border-radius: var(--dt-size-radius-600);\n --button-padding-x: var(--button-padding-y-md);\n --button-padding-y: var(--button-padding-y-md);\n --button-color-text: var(--dt-action-color-foreground-muted-default);\n --button-border-radius: var(--dt-size-radius-600);\n }\n\n &__layout {\n padding: var(--dt-space-400);\n gap: var(--dt-space-300);\n width: 100%;\n\n &:deep(> .dt-item-layout--left) {\n padding-right: var(--dt-space-0);\n justify-content: center;\n }\n }\n\n &__icon {\n animation: fade 0.15s ease-in;\n }\n\n &__content {\n display: flex;\n justify-content: center;\n }\n\n &__title {\n font-weight: var(--dt-font-weight-bold);\n }\n\n // Gradient radius solution taken from https://stackoverflow.com/a/53037637\n &__border {\n border: double 1px transparent;\n border-radius: var(--dt-size-radius-600);\n background-origin: border-box;\n background-clip: content-box, border-box;\n overflow: hidden;\n }\n\n &__border-default {\n background: var(--dt-color-border-default)\n }\n\n &__border-ai {\n background-image:\n linear-gradient(var(--dt-color-surface-primary), var(--dt-color-surface-primary)),\n var(--dt-badge-color-background-ai);\n }\n\n &__border-critical {\n background: var(--dt-color-foreground-critical);\n }\n\n @keyframes fade {\n 0% {transform: scale(0);}\n 100% {transform: scale(1);}\n }\n}\n</style>\n"],"names":["DtItemLayout","DtIcon","DtCollapsible","FEED_ITEM_PILL_BORDER_COLORS","_createElementBlock","_normalizeClass","_createElementVNode","_createVNode","_renderSlot","_toDisplayString"],"mappings":"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"}